summaryrefslogtreecommitdiff
path: root/src/common/crypto.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/crypto.c')
-rw-r--r--src/common/crypto.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c
index c75ab2694d..2fd0e3042f 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -1458,6 +1458,12 @@ int crypto_dh_compute_secret(crypto_dh_env_t *dh,
}
secret_len = result;
/* sometimes secret_len might be less than 128, e.g., 127. that's ok. */
+ /* Actually, http://www.faqs.org/rfcs/rfc2631.html says:
+ * Leading zeros MUST be preserved, so that ZZ occupies as many
+ * octets as p. For instance, if p is 1024 bits, ZZ should be 128
+ * bytes long.
+ * What are the security implications here?
+ */
for (i = 0; i < secret_bytes_out; i += DIGEST_LEN) {
secret_tmp[secret_len] = (unsigned char) i/DIGEST_LEN;
if (crypto_digest(hash, secret_tmp, secret_len+1))