summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2009-12-14 18:28:16 +0000
committerSam Hartman <hartmans@mit.edu>2009-12-14 18:28:16 +0000
commitacd672680307a3f1bad828e6573fa34bd7779203 (patch)
tree1ae4e45b4ca1b11872c93a2b2bfd9f6810a4522b /src/lib/crypto
parent6899a43b722c3cb2672a38eba28490141d9bd32f (diff)
fast negotiation projec
Merge branches/fast-negotiate into trunk. This implements http://k5wiki.kerberos.org/wiki/Projects/Fast_negotiation Additional changes: * krb5_c_make_checksum with checksum type 0 uses mandatory checksum for given key enctype Conflicts: src/lib/crypto/krb/make_checksum.c ticket: 6595 Tags: enhancement git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23465 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto')
-rw-r--r--src/lib/crypto/krb/make_checksum.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/crypto/krb/make_checksum.c b/src/lib/crypto/krb/make_checksum.c
index aa4545780..d0dc62237 100644
--- a/src/lib/crypto/krb/make_checksum.c
+++ b/src/lib/crypto/krb/make_checksum.c
@@ -30,6 +30,8 @@
#include "etypes.h"
#include "dk.h"
+/* A 0 checksum type means use the mandatory checksum. */
+
krb5_error_code KRB5_CALLCONV
krb5_k_make_checksum(krb5_context context, krb5_cksumtype cksumtype,
krb5_key key, krb5_keyusage usage,
@@ -41,6 +43,12 @@ krb5_k_make_checksum(krb5_context context, krb5_cksumtype cksumtype,
krb5_octet *trunc;
krb5_error_code ret;
+ if (cksumtype == 0) {
+ ret = krb5int_c_mandatory_cksumtype(context, key->keyblock.enctype,
+ &cksumtype);
+ if (ret != 0)
+ return ret;
+ }
ctp = find_cksumtype(cksumtype);
if (ctp == NULL)
return KRB5_BAD_ENCTYPE;