From 1b1f1e94727849c1b07757a996a7fccbab19b97c Mon Sep 17 00:00:00 2001 From: John Kohl Date: Tue, 13 Feb 1990 16:49:47 +0000 Subject: [PATCH] store the input length as the length integer in the encoding git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@357 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/kdb/encrypt_key.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/kdb/encrypt_key.c b/src/lib/kdb/encrypt_key.c index 98a11e910..f3a5a5df4 100644 --- a/src/lib/kdb/encrypt_key.c +++ b/src/lib/kdb/encrypt_key.c @@ -33,14 +33,12 @@ krb5_encrypt_block *eblock; krb5_keyblock *in; krb5_keyblock *out; { - /* encrypted rep has a length encrypted along with the key, - so that we win if the keysize != blocksize. - However, this means an extra block (at least) if - keysize == blocksize. */ + /* encrypted rep has the real (unencrypted) key length stored + along with the encrypted key */ krb5_error_code retval; - *out = *in; + out->keytype = in->keytype; out->length = krb5_encrypt_size(in->length, eblock->crypto_entry); out->length += sizeof(out->length); out->contents = (krb5_octet *)malloc(out->length); @@ -49,7 +47,9 @@ krb5_keyblock *out; out->length = 0; return ENOMEM; } - bcopy((char *)&out->length, (char *)out->contents, sizeof(out->length)); + /* copy in real length */ + bcopy((char *)&in->length, (char *)out->contents, sizeof(out->length)); + /* and arrange for encrypted key */ if (retval = (*eblock->crypto_entry-> encrypt_func)((krb5_pointer) in->contents, (krb5_pointer) (((char *) out->contents) + -- 2.26.2