Commit 42acb69f authored by Vitezslav Cizek's avatar Vitezslav Cizek Committed by Dr. Matthias St. Pierre
Browse files

DSA: Check for sanity of input parameters



dsa_builtin_paramgen2 expects the L parameter to be greater than N,
otherwise the generation will get stuck in an infinite loop.

Reviewed-by: default avatarBernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: default avatarPaul Dale <paul.dale@oracle.com>
Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
Reviewed-by: default avatarMatthias St. Pierre <Matthias.St.Pierre@ncp-e.com>

(cherry picked from commit 3afd38b277a806b901e039c6ad281c5e5c97ef67)

(Merged from https://github.com/openssl/openssl/pull/7493)
parent eaa32f36
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -327,6 +327,12 @@ int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N,
    if (mctx == NULL)
    if (mctx == NULL)
        goto err;
        goto err;


    /* make sure L > N, otherwise we'll get trapped in an infinite loop */
    if (L <= N) {
        DSAerr(DSA_F_DSA_BUILTIN_PARAMGEN2, DSA_R_INVALID_PARAMETERS);
        goto err;
    }

    if (evpmd == NULL) {
    if (evpmd == NULL) {
        if (N == 160)
        if (N == 160)
            evpmd = EVP_sha1();
            evpmd = EVP_sha1();