diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/crypto/krb/checksum/hmac_md5.c | 2 | ||||
-rw-r--r-- | src/lib/crypto/krb/cksumtypes.c | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/crypto/krb/checksum/hmac_md5.c b/src/lib/crypto/krb/checksum/hmac_md5.c index 1dc05ea..4812907 100644 --- a/src/lib/crypto/krb/checksum/hmac_md5.c +++ b/src/lib/crypto/krb/checksum/hmac_md5.c @@ -48,6 +48,8 @@ krb5_error_code krb5int_hmacmd5_checksum(const struct krb5_cksumtypes *ctp, krb5_data ds = empty_data(), hashval = empty_data(); char t[4]; + if (key == NULL || key->keyblock.length > ctp->hash->blocksize) + return KRB5_BAD_ENCTYPE; if (ctp->ctype == CKSUMTYPE_HMAC_MD5_ARCFOUR) { /* Compute HMAC(key, "signaturekey\0") to get the signing key ks. */ ret = alloc_data(&ds, key->keyblock.length); diff --git a/src/lib/crypto/krb/cksumtypes.c b/src/lib/crypto/krb/cksumtypes.c index 74fd158..6e16b4e 100644 --- a/src/lib/crypto/krb/cksumtypes.c +++ b/src/lib/crypto/krb/cksumtypes.c @@ -82,8 +82,8 @@ const struct krb5_cksumtypes krb5int_cksumtypes_list[] = { { CKSUMTYPE_HMAC_MD5_ARCFOUR, "hmac-md5-rc4", { "hmac-md5-enc", "hmac-md5-earcfour" }, - "Microsoft HMAC MD5 (RC4 key)", - &krb5int_enc_arcfour, &krb5int_hash_md5, + "Microsoft HMAC MD5", + NULL, &krb5int_hash_md5, krb5int_hmacmd5_checksum, NULL, 16, 16, 0 }, @@ -100,8 +100,8 @@ const struct krb5_cksumtypes krb5int_cksumtypes_list[] = { 20, 12, 0 }, { CKSUMTYPE_MD5_HMAC_ARCFOUR, - "md5-hmac-rc4", { 0 }, "Microsoft MD5 HMAC (RC4 key)", - &krb5int_enc_arcfour, &krb5int_hash_md5, + "md5-hmac-rc4", { 0 }, "Microsoft MD5 HMAC", + NULL, &krb5int_hash_md5, krb5int_hmacmd5_checksum, NULL, 16, 16, 0 }, }; |