From: Pekka Riikonen Date: Sun, 22 Jul 2001 17:01:48 +0000 (+0000) Subject: updates. X-Git-Tag: robodoc-323~50 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=ef80e65efb3fe110f29c61f546e804f6872b7f27 updates. --- diff --git a/CHANGES b/CHANGES index 1068685b..84de1bcc 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +Sun Jul 22 19:40:30 EEST 2001 Pekka Riikonen + + * Changed the key material distribution function in case when + the hash output is too short. The data is now concatenated + a bit differently than it used to. Made the change to the + SKE protocol specification. + + * Submitted new drafts to the IETF. + Fri Jul 20 13:16:00 EEST 2001 Pekka Riikonen * Fixed a minor bug in SKE that might cause some problem on diff --git a/doc/draft-riikonen-silc-ke-auth-03.nroff b/doc/draft-riikonen-silc-ke-auth-03.nroff index f4a7f21f..747da20d 100644 --- a/doc/draft-riikonen-silc-ke-auth-03.nroff +++ b/doc/draft-riikonen-silc-ke-auth-03.nroff @@ -630,15 +630,15 @@ be produced in the following manner: .in 6 K1 = hash(2 | KEY | HASH) -K2 = hash(KEY | K1) -K3 = hash(KEY | K1 | K2) ... +K2 = hash(KEY | HASH | K1) +K3 = hash(KEY | HASH | K1 | K2) ... Sending Encryption Key = K1 | K2 | K3 ... K1 = hash(3 | KEY | HASH) -K2 = hash(KEY | K1) -K3 = hash(KEY | K1 | K2) ... +K2 = hash(KEY | HASH | K1) +K3 = hash(KEY | HASH | K1 | K2) ... Receiving Encryption Key = K1 | K2 | K3 ... .in 3 diff --git a/lib/silcske/silcske.c b/lib/silcske/silcske.c index 6cf7c952..575c347e 100644 --- a/lib/silcske/silcske.c +++ b/lib/silcske/silcske.c @@ -1714,7 +1714,7 @@ silc_ske_process_key_material_data(unsigned char *data, SILC_STR_END); memset(k2, 0, sizeof(k2)); silc_hash_make(hash, dist->data, dist->len, k2); - + /* Take third round */ dist = silc_buffer_realloc(dist, data_len + hash_len + hash_len); silc_buffer_pull_tail(dist, hash_len); @@ -1730,7 +1730,7 @@ silc_ske_process_key_material_data(unsigned char *data, dtmp = silc_calloc((3 * hash_len), sizeof(unsigned char)); memcpy(dtmp, k1, hash_len); memcpy(dtmp + hash_len, k2, hash_len); - memcpy(dtmp + hash_len, k3, hash_len); + memcpy(dtmp + hash_len + hash_len, k3, hash_len); key->send_enc_key = silc_calloc(enc_key_len, sizeof(unsigned char)); memcpy(key->send_enc_key, dtmp, enc_key_len); @@ -1790,7 +1790,7 @@ silc_ske_process_key_material_data(unsigned char *data, dtmp = silc_calloc((3 * hash_len), sizeof(unsigned char)); memcpy(dtmp, k1, hash_len); memcpy(dtmp + hash_len, k2, hash_len); - memcpy(dtmp + hash_len, k3, hash_len); + memcpy(dtmp + hash_len + hash_len, k3, hash_len); key->receive_enc_key = silc_calloc(enc_key_len, sizeof(unsigned char)); memcpy(key->receive_enc_key, dtmp, enc_key_len);