gsskrb5: fix test_context. after gss_wrap_iov changes
metze Signed-off-by: Love Hornquist Astrand <lha@h5l.org>
This commit is contained in:

committed by
Love Hornquist Astrand

parent
40a6abd116
commit
03998aeccb
@@ -269,7 +269,7 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid)
|
|||||||
OM_uint32 min_stat, maj_stat;
|
OM_uint32 min_stat, maj_stat;
|
||||||
gss_qop_t qop_state;
|
gss_qop_t qop_state;
|
||||||
int conf_state, conf_state2;
|
int conf_state, conf_state2;
|
||||||
gss_iov_buffer_desc iov[5];
|
gss_iov_buffer_desc iov[6];
|
||||||
unsigned char *p;
|
unsigned char *p;
|
||||||
int iov_len;
|
int iov_len;
|
||||||
char header_data[9] = "ABCheader";
|
char header_data[9] = "ABCheader";
|
||||||
@@ -298,9 +298,6 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid)
|
|||||||
|
|
||||||
memset(iov, 0, sizeof(iov));
|
memset(iov, 0, sizeof(iov));
|
||||||
|
|
||||||
if (flags & USE_HEADER_ONLY)
|
|
||||||
iov_len -= 1; /* skip trailer */
|
|
||||||
|
|
||||||
iov[0].type = GSS_IOV_BUFFER_TYPE_HEADER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE;
|
iov[0].type = GSS_IOV_BUFFER_TYPE_HEADER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE;
|
||||||
|
|
||||||
if (header.length != 0) {
|
if (header.length != 0) {
|
||||||
@@ -324,11 +321,24 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid)
|
|||||||
iov[3].buffer.length = 0;
|
iov[3].buffer.length = 0;
|
||||||
iov[3].buffer.value = NULL;
|
iov[3].buffer.value = NULL;
|
||||||
}
|
}
|
||||||
iov[4].type = GSS_IOV_BUFFER_TYPE_TRAILER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE;
|
if (dce_style_flag) {
|
||||||
|
iov[4].type = GSS_IOV_BUFFER_TYPE_EMPTY;
|
||||||
|
} else {
|
||||||
|
iov[4].type = GSS_IOV_BUFFER_TYPE_PADDING | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE;
|
||||||
|
}
|
||||||
iov[4].buffer.length = 0;
|
iov[4].buffer.length = 0;
|
||||||
iov[4].buffer.value = 0;
|
iov[4].buffer.value = 0;
|
||||||
|
if (dce_style_flag) {
|
||||||
|
iov[5].type = GSS_IOV_BUFFER_TYPE_EMPTY;
|
||||||
|
} else if (flags & USE_HEADER_ONLY) {
|
||||||
|
iov[5].type = GSS_IOV_BUFFER_TYPE_EMPTY;
|
||||||
|
} else {
|
||||||
|
iov[5].type = GSS_IOV_BUFFER_TYPE_TRAILER | GSS_IOV_BUFFER_TYPE_FLAG_ALLOCATE;
|
||||||
|
}
|
||||||
|
iov[5].buffer.length = 0;
|
||||||
|
iov[5].buffer.value = 0;
|
||||||
|
|
||||||
maj_stat = gss_wrap_iov(&min_stat, cctx, flags & USE_CONF, 0, &conf_state,
|
maj_stat = gss_wrap_iov(&min_stat, cctx, dce_style_flag || flags & USE_CONF, 0, &conf_state,
|
||||||
iov, iov_len);
|
iov, iov_len);
|
||||||
if (maj_stat != GSS_S_COMPLETE)
|
if (maj_stat != GSS_S_COMPLETE)
|
||||||
errx(1, "gss_wrap_iov failed");
|
errx(1, "gss_wrap_iov failed");
|
||||||
@@ -338,7 +348,8 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid)
|
|||||||
iov[1].buffer.length +
|
iov[1].buffer.length +
|
||||||
iov[2].buffer.length +
|
iov[2].buffer.length +
|
||||||
iov[3].buffer.length +
|
iov[3].buffer.length +
|
||||||
iov[4].buffer.length;
|
iov[4].buffer.length +
|
||||||
|
iov[5].buffer.length;
|
||||||
token.data = emalloc(token.length);
|
token.data = emalloc(token.length);
|
||||||
|
|
||||||
p = token.data;
|
p = token.data;
|
||||||
@@ -352,6 +363,8 @@ wrapunwrap_iov(gss_ctx_id_t cctx, gss_ctx_id_t sctx, int flags, gss_OID mechoid)
|
|||||||
p += iov[3].buffer.length;
|
p += iov[3].buffer.length;
|
||||||
memcpy(p, iov[4].buffer.value, iov[4].buffer.length);
|
memcpy(p, iov[4].buffer.value, iov[4].buffer.length);
|
||||||
p += iov[4].buffer.length;
|
p += iov[4].buffer.length;
|
||||||
|
memcpy(p, iov[5].buffer.value, iov[5].buffer.length);
|
||||||
|
p += iov[5].buffer.length;
|
||||||
|
|
||||||
assert(p - ((unsigned char *)token.data) == token.length);
|
assert(p - ((unsigned char *)token.data) == token.length);
|
||||||
|
|
||||||
@@ -733,13 +746,17 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
if (iov_flag) {
|
if (iov_flag) {
|
||||||
wrapunwrap_iov(cctx, sctx, 0, actual_mech);
|
wrapunwrap_iov(cctx, sctx, 0, actual_mech);
|
||||||
|
wrapunwrap_iov(cctx, sctx, USE_HEADER_ONLY, actual_mech);
|
||||||
wrapunwrap_iov(cctx, sctx, USE_CONF, actual_mech);
|
wrapunwrap_iov(cctx, sctx, USE_CONF, actual_mech);
|
||||||
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY, actual_mech);
|
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY, actual_mech);
|
||||||
|
|
||||||
wrapunwrap_iov(cctx, sctx, FORCE_IOV, actual_mech);
|
wrapunwrap_iov(cctx, sctx, FORCE_IOV, actual_mech);
|
||||||
wrapunwrap_iov(cctx, sctx, USE_CONF|FORCE_IOV, actual_mech);
|
wrapunwrap_iov(cctx, sctx, USE_CONF|FORCE_IOV, actual_mech);
|
||||||
|
wrapunwrap_iov(cctx, sctx, USE_HEADER_ONLY|FORCE_IOV, actual_mech);
|
||||||
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY|FORCE_IOV, actual_mech);
|
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY|FORCE_IOV, actual_mech);
|
||||||
|
|
||||||
|
wrapunwrap_iov(cctx, sctx, USE_SIGN_ONLY, actual_mech);
|
||||||
|
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_SIGN_ONLY, actual_mech);
|
||||||
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY|USE_SIGN_ONLY, actual_mech);
|
wrapunwrap_iov(cctx, sctx, USE_CONF|USE_HEADER_ONLY|USE_SIGN_ONLY, actual_mech);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user