Merge pull request #134 from abartlet/allow-null-authenticator

gssapi: Allow a NULL authenticator
This commit is contained in:
Love Hörnquist Åstrand
2015-08-03 20:18:16 +02:00

View File

@@ -511,13 +511,8 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
return ret;
}
if (authenticator->cksum == NULL) {
krb5_free_authenticator(context, &authenticator);
*minor_status = 0;
return GSS_S_BAD_BINDINGS;
}
if (authenticator->cksum->cksumtype == CKSUMTYPE_GSSAPI) {
if (authenticator->cksum != NULL
&& authenticator->cksum->cksumtype == CKSUMTYPE_GSSAPI) {
ret = _gsskrb5_verify_8003_checksum(minor_status,
input_chan_bindings,
authenticator->cksum,
@@ -529,6 +524,7 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
return ret;
}
} else {
if (authenticator->cksum != NULL) {
krb5_crypto crypto;
kret = krb5_crypto_init(context,
@@ -558,11 +554,14 @@ gsskrb5_acceptor_start(OM_uint32 * minor_status,
*minor_status = kret;
return ret;
}
}
/*
* Samba style get some flags (but not DCE-STYLE), use
* ap_options to guess the mutual flag.
* If there is no checksum or a kerberos checksum (which Windows
* and Samba accept), we use the ap_options to guess the mutual
* flag.
*/
ctx->flags = GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG;
if (ap_options & AP_OPTS_MUTUAL_REQUIRED)
ctx->flags |= GSS_C_MUTUAL_FLAG;