diff options
author | Ken Raeburn <raeburn@mit.edu> | 2003-06-24 02:41:07 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2003-06-24 02:41:07 +0000 |
commit | b3013084520501572335d9a6f7bfdd956c5d6236 (patch) | |
tree | 3f6cae126fba6ca287474fd6047fc0bebf3dc57c /src | |
parent | aaeeeefe2c6fa2ecc9a40756965c58fe39b839b6 (diff) | |
download | krb5-b3013084520501572335d9a6f7bfdd956c5d6236.tar.gz krb5-b3013084520501572335d9a6f7bfdd956c5d6236.tar.xz krb5-b3013084520501572335d9a6f7bfdd956c5d6236.zip |
* cksumtypes.c (krb5_cksumtypes_list): Add aes128/256 hmacs, with new
trunc_size field.
* make_checksum.c (krb5_c_make_checksum): If trunc_size is specified, shrink
the computed checksum down to the indicated size.
ticket: 1621
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15650 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/crypto/ChangeLog | 9 | ||||
-rw-r--r-- | src/lib/crypto/cksumtypes.c | 8 | ||||
-rw-r--r-- | src/lib/crypto/make_checksum.c | 7 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/crypto/ChangeLog b/src/lib/crypto/ChangeLog index e15663a07d..0801bb263a 100644 --- a/src/lib/crypto/ChangeLog +++ b/src/lib/crypto/ChangeLog @@ -1,3 +1,12 @@ +2003-06-23 Ken Raeburn <raeburn@mit.edu> + + * cksumtypes.c (krb5_cksumtypes_list): Add aes128/256 hmacs, with + new trunc_size field. + + * make_checksum.c (krb5_c_make_checksum): If trunc_size is + specified, shrink the computed checksum down to the indicated + size. + 2003-06-05 Sam Hartman <hartmans@mit.edu> * string_to_key.c (krb5_c_string_to_key_with_params): Only allow diff --git a/src/lib/crypto/cksumtypes.c b/src/lib/crypto/cksumtypes.c index 76882f87d1..ae7ed5f874 100644 --- a/src/lib/crypto/cksumtypes.c +++ b/src/lib/crypto/cksumtypes.c @@ -84,6 +84,14 @@ const struct krb5_cksumtypes krb5_cksumtypes_list[] = { ENCTYPE_ARCFOUR_HMAC, &krb5int_keyhash_hmac_md5, NULL }, + { CKSUMTYPE_HMAC_SHA1_96_AES128, KRB5_CKSUMFLAG_DERIVE, + "hmac-sha1-96-aes128", "HMAC-SHA1 AES128 key", + 0, NULL, + &krb5int_hash_sha1, 12 }, + { CKSUMTYPE_HMAC_SHA1_96_AES256, KRB5_CKSUMFLAG_DERIVE, + "hmac-sha1-96-aes256", "HMAC-SHA1 AES256 key", + 0, NULL, + &krb5int_hash_sha1, 12 }, }; const int krb5_cksumtypes_length = diff --git a/src/lib/crypto/make_checksum.c b/src/lib/crypto/make_checksum.c index 5d7be934b5..8a384e710a 100644 --- a/src/lib/crypto/make_checksum.c +++ b/src/lib/crypto/make_checksum.c @@ -108,6 +108,13 @@ krb5_c_make_checksum(context, cksumtype, key, usage, input, cksum) if (!ret) { cksum->magic = KV5M_CHECKSUM; cksum->checksum_type = cksumtype; + if (krb5_cksumtypes_list[i].trunc_size) { + krb5_octet *trunc; + cksum->length = krb5_cksumtypes_list[i].trunc_size; + trunc = (krb5_octet *) realloc(cksum->contents, cksum->length); + if (trunc) + cksum->contents = trunc; + } } cleanup: |