summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2003-06-24 02:41:07 +0000
committerKen Raeburn <raeburn@mit.edu>2003-06-24 02:41:07 +0000
commitb3013084520501572335d9a6f7bfdd956c5d6236 (patch)
tree3f6cae126fba6ca287474fd6047fc0bebf3dc57c /src
parentaaeeeefe2c6fa2ecc9a40756965c58fe39b839b6 (diff)
downloadkrb5-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/ChangeLog9
-rw-r--r--src/lib/crypto/cksumtypes.c8
-rw-r--r--src/lib/crypto/make_checksum.c7
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: