Issue in DH Algorithm Keys Generation in OpenSSL 3.3.0

Viktor Dukhovni openssl-users at dukhovni.org
Fri May 31 12:52:20 UTC 2024


On Fri, May 31, 2024 at 07:47:40AM +0000, Vishal Kevat via openssl-users wrote:
> Hi OpenSSL users,
> 
> I am using OpenSSL source version 3.3.0 and facing an issue in key generation part of Diffie Hellman (DH) Algorithm. Below are the APIs I am using for generating Public and Private Keys:
> 
> static unsigned char DH_PRIME_128[] = { /* 128 bit prime */
>       0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
>       0xc9, 0x0f, 0xda, 0xa2, 0x21, 0x68, 0xc2, 0x34
> };

You've copied only the leading 128 bits of two of the standard
prime groups.  The above isn't the droid you're looking for.

    https://isrc.iscas.ac.cn/gitlab/mirrors/github.com/wolfssl_wolfssl/-/raw/c9be50c3a0eadc7925f9ff987fe3d361b1a6e602/src/ssl.c

    /* This sets a big number with the 768-bit prime from RFC 2409.
     *
     * bn  if not NULL then the big number structure is used. If NULL then a new
     *     big number structure is created.
     *
     * Returns a WOLFSSL_BIGNUM structure on success and NULL with failure.
     */
    WOLFSSL_BIGNUM* wolfSSL_DH_768_prime(WOLFSSL_BIGNUM* bn)
    {
        const char prm[] = {
            "FFFFFFFFFFFFFFFFC90FDAA22168C234"
            "C4C6628B80DC1CD129024E088A67CC74"
            "020BBEA63B139B22514A08798E3404DD"
            "EF9519B3CD3A431B302B0A6DF25F1437"
            "4FE1356D6D51C245E485B576625E7EC6"
            "F44C42E9A63A3620FFFFFFFFFFFFFFFF"
        };
        ...
    }

    /* This sets a big number with the 1024-bit prime from RFC 2409.
     *
     * bn  if not NULL then the big number structure is used. If NULL then a new
     *     big number structure is created.
     *
     * Returns a WOLFSSL_BIGNUM structure on success and NULL with failure.
     */
    WOLFSSL_BIGNUM* wolfSSL_DH_1024_prime(WOLFSSL_BIGNUM* bn)
    {
        const char prm[] = {
            "FFFFFFFFFFFFFFFFC90FDAA22168C234"
            "C4C6628B80DC1CD129024E088A67CC74"
            "020BBEA63B139B22514A08798E3404DD"
            "EF9519B3CD3A431B302B0A6DF25F1437"
            "4FE1356D6D51C245E485B576625E7EC6"
            "F44C42E9A637ED6B0BFF5CB6F406B7ED"
            "EE386BFB5A899FA5AE9F24117C4B1FE6"
            "49286651ECE65381FFFFFFFFFFFFFFFF"
        };
        ...
    }

-- 
    Viktor.


More information about the openssl-users mailing list