mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
document an openssl gotcha
svn:r947
This commit is contained in:
parent
21cc01299b
commit
389eb48690
@ -997,7 +997,7 @@ int crypto_dh_compute_secret(crypto_dh_env_t *dh,
|
|||||||
goto error;
|
goto error;
|
||||||
secret_tmp = tor_malloc(crypto_dh_get_bytes(dh)+1);
|
secret_tmp = tor_malloc(crypto_dh_get_bytes(dh)+1);
|
||||||
secret_len = DH_compute_key(secret_tmp, pubkey_bn, dh->dh);
|
secret_len = DH_compute_key(secret_tmp, pubkey_bn, dh->dh);
|
||||||
assert(secret_len == crypto_dh_get_bytes(dh));
|
/* sometimes secret_len might be less than 128, e.g., 127. that's ok. */
|
||||||
for (i = 0; i < secret_bytes_out; i += 20) {
|
for (i = 0; i < secret_bytes_out; i += 20) {
|
||||||
secret_tmp[secret_len] = (unsigned char) i/20;
|
secret_tmp[secret_len] = (unsigned char) i/20;
|
||||||
if (crypto_SHA_digest(secret_tmp, secret_len+1, hash))
|
if (crypto_SHA_digest(secret_tmp, secret_len+1, hash))
|
||||||
@ -1012,8 +1012,7 @@ int crypto_dh_compute_secret(crypto_dh_env_t *dh,
|
|||||||
done:
|
done:
|
||||||
if (pubkey_bn)
|
if (pubkey_bn)
|
||||||
BN_free(pubkey_bn);
|
BN_free(pubkey_bn);
|
||||||
if (secret_tmp)
|
tor_free(secret_tmp);
|
||||||
free(secret_tmp);
|
|
||||||
return secret_len;
|
return secret_len;
|
||||||
}
|
}
|
||||||
void crypto_dh_free(crypto_dh_env_t *dh)
|
void crypto_dh_free(crypto_dh_env_t *dh)
|
||||||
|
@ -99,7 +99,7 @@ crypto_cipher_env_t *crypto_create_init_cipher(int cipher_type, char *key, char
|
|||||||
|
|
||||||
/* SHA-1 */
|
/* SHA-1 */
|
||||||
int crypto_SHA_digest(const unsigned char *m, int len, unsigned char *digest);
|
int crypto_SHA_digest(const unsigned char *m, int len, unsigned char *digest);
|
||||||
crypto_digest_env_t *crypto_digest_new_env(int type);
|
crypto_digest_env_t *crypto_new_digest_env(int type);
|
||||||
void crypto_free_digest_env(crypto_digest_env_t *digest);
|
void crypto_free_digest_env(crypto_digest_env_t *digest);
|
||||||
void crypto_digest_add_bytes(crypto_digest_env_t *digest, const char *data,
|
void crypto_digest_add_bytes(crypto_digest_env_t *digest, const char *data,
|
||||||
size_t len);
|
size_t len);
|
||||||
|
Loading…
Reference in New Issue
Block a user