X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fdh%2Fdh_key.c;h=6c7a45726706de542aa6117a0011b82e9b8f798c;hp=bba83be312cf4fe3bd27387c94737593308927c0;hb=bc91494e064ebdcff68f987947f97e404fbca0b5;hpb=a1e7883edb9041aff44700fc9817891c800ac703 diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c index bba83be312..6c7a457267 100644 --- a/crypto/dh/dh_key.c +++ b/crypto/dh/dh_key.c @@ -86,6 +86,21 @@ int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) return dh->meth->compute_key(key, pub_key, dh); } +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh) + { + int rv, pad; + rv = dh->meth->compute_key(key, pub_key, dh); + if (rv <= 0) + return rv; + pad = BN_num_bytes(dh->p) - rv; + if (pad > 0) + { + memmove(key + pad, key, rv); + memset(key, 0, pad); + } + return rv + pad; + } + static DH_METHOD dh_ossl = { "OpenSSL DH Method", generate_key,