components/openssl/openssl-fips/inline-t4/dh_check.c
author Misaki Miyashita <misaki.miyashita@oracle.com>
Sat, 19 Nov 2016 19:35:47 -0800
changeset 7362 8875826c2bcb
permissions -rw-r--r--
25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7362
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     1
/* crypto/dh/dh_check.c */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     2
/* Copyright (C) 1995-1998 Eric Young ([email protected])
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     3
 * All rights reserved.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     4
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     5
 * This package is an SSL implementation written
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     6
 * by Eric Young ([email protected]).
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     7
 * The implementation was written so as to conform with Netscapes SSL.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     8
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
     9
 * This library is free for commercial and non-commercial use as long as
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    10
 * the following conditions are aheared to.  The following conditions
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    11
 * apply to all code found in this distribution, be it the RC4, RSA,
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    12
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    13
 * included with this distribution is covered by the same copyright terms
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    14
 * except that the holder is Tim Hudson ([email protected]).
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    15
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    16
 * Copyright remains Eric Young's, and as such any Copyright notices in
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    17
 * the code are not to be removed.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    18
 * If this package is used in a product, Eric Young should be given attribution
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    19
 * as the author of the parts of the library used.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    20
 * This can be in the form of a textual message at program startup or
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    21
 * in documentation (online or textual) provided with the package.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    22
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    23
 * Redistribution and use in source and binary forms, with or without
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    24
 * modification, are permitted provided that the following conditions
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    25
 * are met:
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    26
 * 1. Redistributions of source code must retain the copyright
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    27
 *    notice, this list of conditions and the following disclaimer.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    28
 * 2. Redistributions in binary form must reproduce the above copyright
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    29
 *    notice, this list of conditions and the following disclaimer in the
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    30
 *    documentation and/or other materials provided with the distribution.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    31
 * 3. All advertising materials mentioning features or use of this software
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    32
 *    must display the following acknowledgement:
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    33
 *    "This product includes cryptographic software written by
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    34
 *     Eric Young ([email protected])"
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    35
 *    The word 'cryptographic' can be left out if the rouines from the library
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    36
 *    being used are not cryptographic related :-).
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    37
 * 4. If you include any Windows specific code (or a derivative thereof) from
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    38
 *    the apps directory (application code) you must include an acknowledgement:
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    39
 *    "This product includes software written by Tim Hudson ([email protected])"
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    40
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    41
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    42
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    43
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    44
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    45
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    46
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    47
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    48
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    49
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    50
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    51
 * SUCH DAMAGE.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    52
 *
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    53
 * The licence and distribution terms for any publically available version or
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    54
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    55
 * copied and put under another distribution licence
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    56
 * [including the GNU Public Licence.]
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    57
 */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    58
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    59
#include <stdio.h>
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    60
#include "cryptlib.h"
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    61
#include <openssl/bn.h>
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    62
#include <openssl/dh.h>
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    63
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    64
/*-
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    65
 * Check that p is a safe prime and
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    66
 * if g is 2, 3 or 5, check that it is a suitable generator
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    67
 * where
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    68
 * for 2, p mod 24 == 11
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    69
 * for 3, p mod 12 == 5
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    70
 * for 5, p mod 10 == 3 or 7
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    71
 * should hold.
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    72
 */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    73
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    74
int DH_check(const DH *dh, int *ret)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    75
{
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    76
    int ok = 0;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    77
    BN_CTX *ctx = NULL;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    78
    BN_ULONG l;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    79
    BIGNUM *t1 = NULL, *t2 = NULL;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    80
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    81
    *ret = 0;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    82
    ctx = BN_CTX_new();
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    83
    if (ctx == NULL)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    84
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    85
    BN_CTX_start(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    86
    t1 = BN_CTX_get(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    87
    if (t1 == NULL)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    88
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    89
    t2 = BN_CTX_get(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    90
    if (t2 == NULL)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    91
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    92
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    93
    if (dh->q) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    94
        if (BN_cmp(dh->g, BN_value_one()) <= 0)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    95
            *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    96
        else if (BN_cmp(dh->g, dh->p) >= 0)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    97
            *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    98
        else {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
    99
            /* Check g^q == 1 mod p */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   100
            if (!BN_mod_exp(t1, dh->g, dh->q, dh->p, ctx))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   101
                goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   102
            if (!BN_is_one(t1))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   103
                *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   104
        }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   105
        if (!BN_is_prime_ex(dh->q, BN_prime_checks, ctx, NULL))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   106
            *ret |= DH_CHECK_P_NOT_SAFE_PRIME;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   107
        /* Check p == 1 mod q  i.e. q divides p - 1 */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   108
        if (!BN_div(t1, t2, dh->p, dh->q, ctx))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   109
            goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   110
        if (!BN_is_one(t2))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   111
            *ret |= DH_CHECK_P_NOT_SAFE_PRIME;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   112
        if (dh->j && BN_cmp(dh->j, t1))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   113
            *ret |= DH_CHECK_P_NOT_SAFE_PRIME;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   114
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   115
    } else if (BN_is_word(dh->g, DH_GENERATOR_2)) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   116
        l = BN_mod_word(dh->p, 24);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   117
        if (l != 11)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   118
            *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   119
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   120
#if 0
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   121
    else if (BN_is_word(dh->g, DH_GENERATOR_3)) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   122
        l = BN_mod_word(dh->p, 12);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   123
        if (l != 5)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   124
            *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   125
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   126
#endif
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   127
    else if (BN_is_word(dh->g, DH_GENERATOR_5)) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   128
        l = BN_mod_word(dh->p, 10);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   129
        if ((l != 3) && (l != 7))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   130
            *ret |= DH_NOT_SUITABLE_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   131
    } else
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   132
        *ret |= DH_UNABLE_TO_CHECK_GENERATOR;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   133
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   134
    if (!BN_is_prime_ex(dh->p, BN_prime_checks, ctx, NULL))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   135
        *ret |= DH_CHECK_P_NOT_PRIME;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   136
    else if (!dh->q) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   137
        if (!BN_rshift1(t1, dh->p))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   138
            goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   139
        if (!BN_is_prime_ex(t1, BN_prime_checks, ctx, NULL))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   140
            *ret |= DH_CHECK_P_NOT_SAFE_PRIME;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   141
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   142
    ok = 1;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   143
 err:
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   144
    if (ctx != NULL) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   145
        BN_CTX_end(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   146
        BN_CTX_free(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   147
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   148
    return (ok);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   149
}
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   150
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   151
int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   152
{
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   153
    int ok = 0;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   154
    BIGNUM *tmp = NULL;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   155
    BN_CTX *ctx = NULL;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   156
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   157
    *ret = 0;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   158
    ctx = BN_CTX_new();
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   159
    if (ctx == NULL)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   160
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   161
    BN_CTX_start(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   162
    tmp = BN_CTX_get(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   163
    if (tmp == NULL || !BN_set_word(tmp, 1))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   164
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   165
    if (BN_cmp(pub_key, tmp) <= 0)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   166
        *ret |= DH_CHECK_PUBKEY_TOO_SMALL;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   167
    if (BN_copy(tmp, dh->p) == NULL || !BN_sub_word(tmp, 1))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   168
        goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   169
    if (BN_cmp(pub_key, tmp) >= 0)
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   170
        *ret |= DH_CHECK_PUBKEY_TOO_LARGE;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   171
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   172
    if (dh->q != NULL) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   173
        /* Check pub_key^q == 1 mod p */
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   174
        if (!BN_mod_exp(tmp, pub_key, dh->q, dh->p, ctx))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   175
            goto err;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   176
        if (!BN_is_one(tmp))
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   177
            *ret |= DH_CHECK_PUBKEY_TOO_LARGE;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   178
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   179
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   180
    ok = 1;
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   181
 err:
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   182
    if (ctx != NULL) {
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   183
        BN_CTX_end(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   184
        BN_CTX_free(ctx);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   185
    }
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   186
    return (ok);
8875826c2bcb 25067396 The 'dhtest_rfc5114_2048_224_bad_y' in dhtest.c didn't fail in FIPS mode
Misaki Miyashita <misaki.miyashita@oracle.com>
parents:
diff changeset
   187
}