OpenSSL 1.1.1-pre2
This commit is contained in:
@@ -254,7 +254,7 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
|
||||
|
||||
static int int_dsa_size(const EVP_PKEY *pkey)
|
||||
{
|
||||
return (DSA_size(pkey->pkey.dsa));
|
||||
return DSA_size(pkey->pkey.dsa);
|
||||
}
|
||||
|
||||
static int dsa_bits(const EVP_PKEY *pkey)
|
||||
@@ -369,7 +369,7 @@ static int do_dsa_print(BIO *bp, const DSA *x, int off, int ptype)
|
||||
goto err;
|
||||
ret = 1;
|
||||
err:
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int dsa_param_decode(EVP_PKEY *pkey,
|
||||
|
||||
@@ -75,7 +75,7 @@ static int dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
}
|
||||
|
||||
ASN1_SEQUENCE_cb(DSAPrivateKey, dsa_cb) = {
|
||||
ASN1_SIMPLE(DSA, version, LONG),
|
||||
ASN1_EMBED(DSA, version, INT32),
|
||||
ASN1_SIMPLE(DSA, p, BIGNUM),
|
||||
ASN1_SIMPLE(DSA, q, BIGNUM),
|
||||
ASN1_SIMPLE(DSA, g, BIGNUM),
|
||||
@@ -111,15 +111,15 @@ int DSA_sign(int type, const unsigned char *dgst, int dlen,
|
||||
unsigned char *sig, unsigned int *siglen, DSA *dsa)
|
||||
{
|
||||
DSA_SIG *s;
|
||||
RAND_seed(dgst, dlen);
|
||||
|
||||
s = DSA_do_sign(dgst, dlen, dsa);
|
||||
if (s == NULL) {
|
||||
*siglen = 0;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
*siglen = i2d_DSA_SIG(s, &sig);
|
||||
DSA_SIG_free(s);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* data has already been hashed (probably with SHA or SHA-1). */
|
||||
@@ -140,7 +140,7 @@ int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
|
||||
|
||||
s = DSA_SIG_new();
|
||||
if (s == NULL)
|
||||
return (ret);
|
||||
return ret;
|
||||
if (d2i_DSA_SIG(&s, &p, siglen) == NULL)
|
||||
goto err;
|
||||
/* Ensure signature uses DER and doesn't have trailing garbage */
|
||||
@@ -151,5 +151,5 @@ int DSA_verify(int type, const unsigned char *dgst, int dgst_len,
|
||||
err:
|
||||
OPENSSL_clear_free(der, derlen);
|
||||
DSA_SIG_free(s);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
+46
-47
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Generated by util/mkerr.pl DO NOT EDIT
|
||||
* Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -8,56 +8,56 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/dsaerr.h>
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
|
||||
# define ERR_FUNC(func) ERR_PACK(ERR_LIB_DSA,func,0)
|
||||
# define ERR_REASON(reason) ERR_PACK(ERR_LIB_DSA,0,reason)
|
||||
|
||||
static ERR_STRING_DATA DSA_str_functs[] = {
|
||||
{ERR_FUNC(DSA_F_DSAPARAMS_PRINT), "DSAparams_print"},
|
||||
{ERR_FUNC(DSA_F_DSAPARAMS_PRINT_FP), "DSAparams_print_fp"},
|
||||
{ERR_FUNC(DSA_F_DSA_BUILTIN_PARAMGEN), "dsa_builtin_paramgen"},
|
||||
{ERR_FUNC(DSA_F_DSA_BUILTIN_PARAMGEN2), "dsa_builtin_paramgen2"},
|
||||
{ERR_FUNC(DSA_F_DSA_DO_SIGN), "DSA_do_sign"},
|
||||
{ERR_FUNC(DSA_F_DSA_DO_VERIFY), "DSA_do_verify"},
|
||||
{ERR_FUNC(DSA_F_DSA_METH_DUP), "DSA_meth_dup"},
|
||||
{ERR_FUNC(DSA_F_DSA_METH_NEW), "DSA_meth_new"},
|
||||
{ERR_FUNC(DSA_F_DSA_METH_SET1_NAME), "DSA_meth_set1_name"},
|
||||
{ERR_FUNC(DSA_F_DSA_NEW_METHOD), "DSA_new_method"},
|
||||
{ERR_FUNC(DSA_F_DSA_PARAM_DECODE), "dsa_param_decode"},
|
||||
{ERR_FUNC(DSA_F_DSA_PRINT_FP), "DSA_print_fp"},
|
||||
{ERR_FUNC(DSA_F_DSA_PRIV_DECODE), "dsa_priv_decode"},
|
||||
{ERR_FUNC(DSA_F_DSA_PRIV_ENCODE), "dsa_priv_encode"},
|
||||
{ERR_FUNC(DSA_F_DSA_PUB_DECODE), "dsa_pub_decode"},
|
||||
{ERR_FUNC(DSA_F_DSA_PUB_ENCODE), "dsa_pub_encode"},
|
||||
{ERR_FUNC(DSA_F_DSA_SIGN), "DSA_sign"},
|
||||
{ERR_FUNC(DSA_F_DSA_SIGN_SETUP), "DSA_sign_setup"},
|
||||
{ERR_FUNC(DSA_F_DSA_SIG_NEW), "DSA_SIG_new"},
|
||||
{ERR_FUNC(DSA_F_OLD_DSA_PRIV_DECODE), "old_dsa_priv_decode"},
|
||||
{ERR_FUNC(DSA_F_PKEY_DSA_CTRL), "pkey_dsa_ctrl"},
|
||||
{ERR_FUNC(DSA_F_PKEY_DSA_KEYGEN), "pkey_dsa_keygen"},
|
||||
static const ERR_STRING_DATA DSA_str_functs[] = {
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSAPARAMS_PRINT, 0), "DSAparams_print"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSAPARAMS_PRINT_FP, 0), "DSAparams_print_fp"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_BUILTIN_PARAMGEN, 0),
|
||||
"dsa_builtin_paramgen"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_BUILTIN_PARAMGEN2, 0),
|
||||
"dsa_builtin_paramgen2"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_DO_SIGN, 0), "DSA_do_sign"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_DO_VERIFY, 0), "DSA_do_verify"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_METH_DUP, 0), "DSA_meth_dup"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_METH_NEW, 0), "DSA_meth_new"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_METH_SET1_NAME, 0), "DSA_meth_set1_name"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_NEW_METHOD, 0), "DSA_new_method"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PARAM_DECODE, 0), "dsa_param_decode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PRINT_FP, 0), "DSA_print_fp"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PRIV_DECODE, 0), "dsa_priv_decode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PRIV_ENCODE, 0), "dsa_priv_encode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PUB_DECODE, 0), "dsa_pub_decode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_PUB_ENCODE, 0), "dsa_pub_encode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_SIGN, 0), "DSA_sign"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_SIGN_SETUP, 0), "DSA_sign_setup"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_DSA_SIG_NEW, 0), "DSA_SIG_new"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_OLD_DSA_PRIV_DECODE, 0),
|
||||
"old_dsa_priv_decode"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_PKEY_DSA_CTRL, 0), "pkey_dsa_ctrl"},
|
||||
{ERR_PACK(ERR_LIB_DSA, DSA_F_PKEY_DSA_KEYGEN, 0), "pkey_dsa_keygen"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
static ERR_STRING_DATA DSA_str_reasons[] = {
|
||||
{ERR_REASON(DSA_R_BAD_Q_VALUE), "bad q value"},
|
||||
{ERR_REASON(DSA_R_BN_DECODE_ERROR), "bn decode error"},
|
||||
{ERR_REASON(DSA_R_BN_ERROR), "bn error"},
|
||||
{ERR_REASON(DSA_R_DECODE_ERROR), "decode error"},
|
||||
{ERR_REASON(DSA_R_INVALID_DIGEST_TYPE), "invalid digest type"},
|
||||
{ERR_REASON(DSA_R_INVALID_PARAMETERS), "invalid parameters"},
|
||||
{ERR_REASON(DSA_R_MISSING_PARAMETERS), "missing parameters"},
|
||||
{ERR_REASON(DSA_R_MODULUS_TOO_LARGE), "modulus too large"},
|
||||
{ERR_REASON(DSA_R_NO_PARAMETERS_SET), "no parameters set"},
|
||||
{ERR_REASON(DSA_R_PARAMETER_ENCODING_ERROR), "parameter encoding error"},
|
||||
{ERR_REASON(DSA_R_Q_NOT_PRIME), "q not prime"},
|
||||
{ERR_REASON(DSA_R_SEED_LEN_SMALL),
|
||||
"seed_len is less than the length of q"},
|
||||
static const ERR_STRING_DATA DSA_str_reasons[] = {
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_BAD_Q_VALUE), "bad q value"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_BN_DECODE_ERROR), "bn decode error"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_BN_ERROR), "bn error"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_DECODE_ERROR), "decode error"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_INVALID_DIGEST_TYPE),
|
||||
"invalid digest type"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_INVALID_PARAMETERS), "invalid parameters"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_MISSING_PARAMETERS), "missing parameters"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_MODULUS_TOO_LARGE), "modulus too large"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_NO_PARAMETERS_SET), "no parameters set"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_PARAMETER_ENCODING_ERROR),
|
||||
"parameter encoding error"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_Q_NOT_PRIME), "q not prime"},
|
||||
{ERR_PACK(ERR_LIB_DSA, 0, DSA_R_SEED_LEN_SMALL),
|
||||
"seed_len is less than the length of q"},
|
||||
{0, NULL}
|
||||
};
|
||||
|
||||
@@ -66,10 +66,9 @@ static ERR_STRING_DATA DSA_str_reasons[] = {
|
||||
int ERR_load_DSA_strings(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_ERR
|
||||
|
||||
if (ERR_func_error_string(DSA_str_functs[0].error) == NULL) {
|
||||
ERR_load_strings(0, DSA_str_functs);
|
||||
ERR_load_strings(0, DSA_str_reasons);
|
||||
ERR_load_strings_const(DSA_str_functs);
|
||||
ERR_load_strings_const(DSA_str_reasons);
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
|
||||
@@ -38,7 +38,7 @@ static int dsa_builtin_keygen(DSA *dsa)
|
||||
priv_key = dsa->priv_key;
|
||||
|
||||
do
|
||||
if (!BN_rand_range(priv_key, dsa->q))
|
||||
if (!BN_priv_rand_range(priv_key, dsa->q))
|
||||
goto err;
|
||||
while (BN_is_zero(priv_key)) ;
|
||||
|
||||
@@ -73,5 +73,5 @@ static int dsa_builtin_keygen(DSA *dsa)
|
||||
if (priv_key != dsa->priv_key)
|
||||
BN_free(priv_key);
|
||||
BN_CTX_free(ctx);
|
||||
return (ok);
|
||||
return ok;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@@ -7,10 +7,9 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "internal/cryptlib.h"
|
||||
#include "internal/refcount.h"
|
||||
#include <openssl/bn.h>
|
||||
#include "dsa_locl.h"
|
||||
#include <openssl/asn1.h>
|
||||
@@ -106,7 +105,7 @@ void DSA_free(DSA *r)
|
||||
if (r == NULL)
|
||||
return;
|
||||
|
||||
CRYPTO_atomic_add(&r->references, -1, &i, r->lock);
|
||||
CRYPTO_DOWN_REF(&r->references, &i, r->lock);
|
||||
REF_PRINT_COUNT("DSA", r);
|
||||
if (i > 0)
|
||||
return;
|
||||
@@ -134,7 +133,7 @@ int DSA_up_ref(DSA *r)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (CRYPTO_atomic_add(&r->references, 1, &i, r->lock) <= 0)
|
||||
if (CRYPTO_UP_REF(&r->references, &i, r->lock) <= 0)
|
||||
return 0;
|
||||
|
||||
REF_PRINT_COUNT("DSA", r);
|
||||
@@ -161,17 +160,17 @@ int DSA_size(const DSA *r)
|
||||
i = i2d_ASN1_INTEGER(&bs, NULL);
|
||||
i += i; /* r and s */
|
||||
ret = ASN1_object_size(1, i, V_ASN1_SEQUENCE);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int DSA_set_ex_data(DSA *d, int idx, void *arg)
|
||||
{
|
||||
return (CRYPTO_set_ex_data(&d->ex_data, idx, arg));
|
||||
return CRYPTO_set_ex_data(&d->ex_data, idx, arg);
|
||||
}
|
||||
|
||||
void *DSA_get_ex_data(DSA *d, int idx)
|
||||
{
|
||||
return (CRYPTO_get_ex_data(&d->ex_data, idx));
|
||||
return CRYPTO_get_ex_data(&d->ex_data, idx);
|
||||
}
|
||||
|
||||
int DSA_security_bits(const DSA *d)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
#include <openssl/dsa.h>
|
||||
#include "internal/refcount.h"
|
||||
|
||||
struct dsa_st {
|
||||
/*
|
||||
@@ -15,7 +16,7 @@ struct dsa_st {
|
||||
* instead of of a EVP_PKEY
|
||||
*/
|
||||
int pad;
|
||||
long version;
|
||||
int32_t version;
|
||||
BIGNUM *p;
|
||||
BIGNUM *q; /* == 20 */
|
||||
BIGNUM *g;
|
||||
@@ -24,7 +25,7 @@ struct dsa_st {
|
||||
int flags;
|
||||
/* Normally used to cache montgomery values */
|
||||
BN_MONT_CTX *method_mont_p;
|
||||
int references;
|
||||
CRYPTO_REF_COUNT references;
|
||||
CRYPTO_EX_DATA ex_data;
|
||||
const DSA_METHOD *meth;
|
||||
/* functional reference if 'meth' is ENGINE-provided */
|
||||
|
||||
@@ -132,7 +132,7 @@ int DSA_meth_set_sign_setup(DSA_METHOD *dsam,
|
||||
}
|
||||
|
||||
int (*DSA_meth_get_verify(const DSA_METHOD *dsam))
|
||||
(const unsigned char *, int , DSA_SIG *, DSA *)
|
||||
(const unsigned char *, int, DSA_SIG *, DSA *)
|
||||
{
|
||||
return dsam->dsa_do_verify;
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "internal/cryptlib.h"
|
||||
#include <openssl/bn.h>
|
||||
@@ -186,7 +184,7 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in,
|
||||
if (!BN_generate_dsa_nonce(k, dsa->q, dsa->priv_key, dgst,
|
||||
dlen, ctx))
|
||||
goto err;
|
||||
} else if (!BN_rand_range(k, dsa->q))
|
||||
} else if (!BN_priv_rand_range(k, dsa->q))
|
||||
goto err;
|
||||
} while (BN_is_zero(k));
|
||||
|
||||
@@ -349,17 +347,17 @@ static int dsa_do_verify(const unsigned char *dgst, int dgst_len,
|
||||
BN_free(u1);
|
||||
BN_free(u2);
|
||||
BN_free(t1);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int dsa_init(DSA *dsa)
|
||||
{
|
||||
dsa->flags |= DSA_FLAG_CACHE_MONT_P;
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int dsa_finish(DSA *dsa)
|
||||
{
|
||||
BN_MONT_CTX_free(dsa->method_mont_p);
|
||||
return (1);
|
||||
return 1;
|
||||
}
|
||||
@@ -31,8 +31,8 @@ typedef struct {
|
||||
|
||||
static int pkey_dsa_init(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
DSA_PKEY_CTX *dctx;
|
||||
dctx = OPENSSL_malloc(sizeof(*dctx));
|
||||
DSA_PKEY_CTX *dctx = OPENSSL_malloc(sizeof(*dctx));
|
||||
|
||||
if (dctx == NULL)
|
||||
return 0;
|
||||
dctx->nbits = 1024;
|
||||
@@ -50,6 +50,7 @@ static int pkey_dsa_init(EVP_PKEY_CTX *ctx)
|
||||
static int pkey_dsa_copy(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)
|
||||
{
|
||||
DSA_PKEY_CTX *dctx, *sctx;
|
||||
|
||||
if (!pkey_dsa_init(dst))
|
||||
return 0;
|
||||
sctx = src->data;
|
||||
@@ -116,6 +117,7 @@ static int pkey_dsa_verify(EVP_PKEY_CTX *ctx,
|
||||
static int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)
|
||||
{
|
||||
DSA_PKEY_CTX *dctx = ctx->data;
|
||||
|
||||
switch (type) {
|
||||
case EVP_PKEY_CTRL_DSA_PARAMGEN_BITS:
|
||||
if (p1 < 256)
|
||||
@@ -200,6 +202,7 @@ static int pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
|
||||
DSA_PKEY_CTX *dctx = ctx->data;
|
||||
BN_GENCB *pcb;
|
||||
int ret;
|
||||
|
||||
if (ctx->pkey_gencb) {
|
||||
pcb = BN_GENCB_new();
|
||||
if (pcb == NULL)
|
||||
@@ -225,6 +228,7 @@ static int pkey_dsa_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
|
||||
static int pkey_dsa_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)
|
||||
{
|
||||
DSA *dsa = NULL;
|
||||
|
||||
if (ctx->pkey == NULL) {
|
||||
DSAerr(DSA_F_PKEY_DSA_KEYGEN, DSA_R_NO_PARAMETERS_SET);
|
||||
return 0;
|
||||
|
||||
@@ -20,12 +20,12 @@ int DSA_print_fp(FILE *fp, const DSA *x, int off)
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
DSAerr(DSA_F_DSA_PRINT_FP, ERR_R_BUF_LIB);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
BIO_set_fp(b, fp, BIO_NOCLOSE);
|
||||
ret = DSA_print(b, x, off);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int DSAparams_print_fp(FILE *fp, const DSA *x)
|
||||
@@ -35,12 +35,12 @@ int DSAparams_print_fp(FILE *fp, const DSA *x)
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
DSAerr(DSA_F_DSAPARAMS_PRINT_FP, ERR_R_BUF_LIB);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
BIO_set_fp(b, fp, BIO_NOCLOSE);
|
||||
ret = DSAparams_print(b, x);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
|
||||
|
||||
#include "internal/cryptlib.h"
|
||||
#include "dsa_locl.h"
|
||||
#include <openssl/bn.h>
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
/* Original version from Steven Schoch <schoch@sheba.arc.nasa.gov> */
|
||||
|
||||
#include "internal/cryptlib.h"
|
||||
#include "dsa_locl.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user