version 1.33, 2001/04/05 10:42:50 |
version 1.34, 2001/04/30 15:50:46 |
|
|
|
|
/* K1 = HASH(K || H || "A" || session_id) */ |
/* K1 = HASH(K || H || "A" || session_id) */ |
EVP_DigestInit(&md, evp_md); |
EVP_DigestInit(&md, evp_md); |
EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); |
if (!(datafellows & SSH_BUG_DERIVEKEY)) |
|
EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); |
EVP_DigestUpdate(&md, hash, mdsz); |
EVP_DigestUpdate(&md, hash, mdsz); |
EVP_DigestUpdate(&md, &c, 1); |
EVP_DigestUpdate(&md, &c, 1); |
EVP_DigestUpdate(&md, kex->session_id, kex->session_id_len); |
EVP_DigestUpdate(&md, kex->session_id, kex->session_id_len); |
|
|
*/ |
*/ |
for (have = mdsz; need > have; have += mdsz) { |
for (have = mdsz; need > have; have += mdsz) { |
EVP_DigestInit(&md, evp_md); |
EVP_DigestInit(&md, evp_md); |
EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); |
if (!(datafellows & SSH_BUG_DERIVEKEY)) |
|
EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); |
EVP_DigestUpdate(&md, hash, mdsz); |
EVP_DigestUpdate(&md, hash, mdsz); |
EVP_DigestUpdate(&md, digest, have); |
EVP_DigestUpdate(&md, digest, have); |
EVP_DigestFinal(&md, digest + have, NULL); |
EVP_DigestFinal(&md, digest + have, NULL); |