sync with OpenBSD -current
This commit is contained in:
parent
087a435dae
commit
f10aa4cb8b
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: dsa_gen.c,v 1.31 2024/03/02 09:33:14 tb Exp $ */
|
/* $OpenBSD: dsa_gen.c,v 1.32 2024/05/11 06:43:50 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@ -75,24 +75,19 @@ int
|
|||||||
DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in,
|
DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in,
|
||||||
int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb)
|
int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb)
|
||||||
{
|
{
|
||||||
if (ret->meth->dsa_paramgen)
|
const EVP_MD *evpmd;
|
||||||
return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len,
|
size_t qbits;
|
||||||
counter_ret, h_ret, cb);
|
|
||||||
else {
|
|
||||||
const EVP_MD *evpmd;
|
|
||||||
size_t qbits;
|
|
||||||
|
|
||||||
if (bits >= 2048) {
|
if (bits >= 2048) {
|
||||||
qbits = 256;
|
qbits = 256;
|
||||||
evpmd = EVP_sha256();
|
evpmd = EVP_sha256();
|
||||||
} else {
|
} else {
|
||||||
qbits = 160;
|
qbits = 160;
|
||||||
evpmd = EVP_sha1();
|
evpmd = EVP_sha1();
|
||||||
}
|
|
||||||
|
|
||||||
return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in,
|
|
||||||
seed_len, NULL, counter_ret, h_ret, cb);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len,
|
||||||
|
NULL, counter_ret, h_ret, cb);
|
||||||
}
|
}
|
||||||
LCRYPTO_ALIAS(DSA_generate_parameters_ex);
|
LCRYPTO_ALIAS(DSA_generate_parameters_ex);
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: dsa_key.c,v 1.36 2024/05/10 04:53:55 tb Exp $ */
|
/* $OpenBSD: dsa_key.c,v 1.37 2024/05/11 06:43:50 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@ -76,9 +76,6 @@ DSA_generate_key(DSA *dsa)
|
|||||||
BN_CTX *ctx = NULL;
|
BN_CTX *ctx = NULL;
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
|
|
||||||
if (dsa->meth->dsa_keygen != NULL)
|
|
||||||
return dsa->meth->dsa_keygen(dsa);
|
|
||||||
|
|
||||||
if ((priv_key = BN_new()) == NULL)
|
if ((priv_key = BN_new()) == NULL)
|
||||||
goto err;
|
goto err;
|
||||||
if ((pub_key = BN_new()) == NULL)
|
if ((pub_key = BN_new()) == NULL)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: dsa_local.h,v 1.3 2023/11/29 21:35:57 tb Exp $ */
|
/* $OpenBSD: dsa_local.h,v 1.4 2024/05/11 06:43:50 tb Exp $ */
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 2007 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 2007 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
@ -69,20 +69,9 @@ struct dsa_method {
|
|||||||
BIGNUM **rp);
|
BIGNUM **rp);
|
||||||
int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len,
|
int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len,
|
||||||
DSA_SIG *sig, DSA *dsa);
|
DSA_SIG *sig, DSA *dsa);
|
||||||
int (*dsa_mod_exp)(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1,
|
|
||||||
BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx,
|
|
||||||
BN_MONT_CTX *in_mont);
|
|
||||||
int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
|
|
||||||
const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); /* Can be null */
|
|
||||||
int (*init)(DSA *dsa);
|
int (*init)(DSA *dsa);
|
||||||
int (*finish)(DSA *dsa);
|
int (*finish)(DSA *dsa);
|
||||||
int flags;
|
int flags;
|
||||||
char *app_data;
|
|
||||||
/* If this is non-NULL, it is used to generate DSA parameters */
|
|
||||||
int (*dsa_paramgen)(DSA *dsa, int bits, const unsigned char *seed,
|
|
||||||
int seed_len, int *counter_ret, unsigned long *h_ret, BN_GENCB *cb);
|
|
||||||
/* If this is non-NULL, it is used to generate DSA keys */
|
|
||||||
int (*dsa_keygen)(DSA *dsa);
|
|
||||||
} /* DSA_METHOD */;
|
} /* DSA_METHOD */;
|
||||||
|
|
||||||
struct dsa_st {
|
struct dsa_st {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: dsa_ossl.c,v 1.55 2024/05/09 20:57:49 tb Exp $ */
|
/* $OpenBSD: dsa_ossl.c,v 1.56 2024/05/11 06:43:50 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@ -268,15 +268,8 @@ dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
|
|||||||
!bn_copy(k, BN_num_bits(l) > q_bits ? l : m))
|
!bn_copy(k, BN_num_bits(l) > q_bits ? l : m))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
if (dsa->meth->bn_mod_exp != NULL) {
|
if (!BN_mod_exp_mont_ct(r, dsa->g, k, dsa->p, ctx, dsa->method_mont_p))
|
||||||
if (!dsa->meth->bn_mod_exp(dsa, r, dsa->g, k, dsa->p, ctx,
|
goto err;
|
||||||
dsa->method_mont_p))
|
|
||||||
goto err;
|
|
||||||
} else {
|
|
||||||
if (!BN_mod_exp_mont_ct(r, dsa->g, k, dsa->p, ctx,
|
|
||||||
dsa->method_mont_p))
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!BN_mod_ct(r, r, dsa->q, ctx))
|
if (!BN_mod_ct(r, r, dsa->q, ctx))
|
||||||
goto err;
|
goto err;
|
||||||
@ -372,15 +365,9 @@ dsa_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dsa->meth->dsa_mod_exp != NULL) {
|
if (!BN_mod_exp2_mont(t1, dsa->g, u1, dsa->pub_key, u2, dsa->p,
|
||||||
if (!dsa->meth->dsa_mod_exp(dsa, t1, dsa->g, u1, dsa->pub_key,
|
ctx, mont))
|
||||||
u2, dsa->p, ctx, mont))
|
goto err;
|
||||||
goto err;
|
|
||||||
} else {
|
|
||||||
if (!BN_mod_exp2_mont(t1, dsa->g, u1, dsa->pub_key, u2,
|
|
||||||
dsa->p, ctx, mont))
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* let u1 = u1 mod q */
|
/* let u1 = u1 mod q */
|
||||||
if (!BN_mod_ct(u1, t1, dsa->q, ctx))
|
if (!BN_mod_ct(u1, t1, dsa->q, ctx))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.\" $OpenBSD: DSA_set_method.3,v 1.11 2023/11/19 10:34:26 tb Exp $
|
.\" $OpenBSD: DSA_set_method.3,v 1.12 2024/05/11 06:53:19 tb Exp $
|
||||||
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
.\" OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
|
||||||
.\"
|
.\"
|
||||||
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
|
||||||
@ -48,7 +48,7 @@
|
|||||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd $Mdocdate: November 19 2023 $
|
.Dd $Mdocdate: May 11 2024 $
|
||||||
.Dt DSA_SET_METHOD 3
|
.Dt DSA_SET_METHOD 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -127,44 +127,23 @@ The
|
|||||||
.Vt DSA_METHOD
|
.Vt DSA_METHOD
|
||||||
structure is defined as follows:
|
structure is defined as follows:
|
||||||
.Bd -literal
|
.Bd -literal
|
||||||
struct
|
struct {
|
||||||
{
|
/* name of the implementation */
|
||||||
/* name of the implementation */
|
|
||||||
const char *name;
|
const char *name;
|
||||||
|
/* sign */
|
||||||
/* sign */
|
|
||||||
DSA_SIG *(*dsa_do_sign)(const unsigned char *dgst, int dlen,
|
DSA_SIG *(*dsa_do_sign)(const unsigned char *dgst, int dlen,
|
||||||
DSA *dsa);
|
DSA *dsa);
|
||||||
|
/* pre-compute k^-1 and r */
|
||||||
/* pre-compute k^-1 and r */
|
|
||||||
int (*dsa_sign_setup)(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
int (*dsa_sign_setup)(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
BIGNUM **rp);
|
BIGNUM **rp);
|
||||||
|
/* verify */
|
||||||
/* verify */
|
|
||||||
int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len,
|
int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len,
|
||||||
DSA_SIG *sig, DSA *dsa);
|
DSA_SIG *sig, DSA *dsa);
|
||||||
|
/* called at DSA_new */
|
||||||
/* compute rr = a1^p1 * a2^p2 mod m (May be NULL for some
|
int (*init)(DSA *DSA);
|
||||||
implementations) */
|
/* called at DSA_free */
|
||||||
int (*dsa_mod_exp)(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1,
|
int (*finish)(DSA *DSA);
|
||||||
BIGNUM *a2, BIGNUM *p2, BIGNUM *m,
|
int flags;
|
||||||
BN_CTX *ctx, BN_MONT_CTX *in_mont);
|
|
||||||
|
|
||||||
/* compute r = a ^ p mod m (May be NULL for some implementations) */
|
|
||||||
int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a,
|
|
||||||
const BIGNUM *p, const BIGNUM *m,
|
|
||||||
BN_CTX *ctx, BN_MONT_CTX *m_ctx);
|
|
||||||
|
|
||||||
/* called at DSA_new */
|
|
||||||
int (*init)(DSA *DSA);
|
|
||||||
|
|
||||||
/* called at DSA_free */
|
|
||||||
int (*finish)(DSA *DSA);
|
|
||||||
|
|
||||||
int flags;
|
|
||||||
|
|
||||||
char *app_data; /* ?? */
|
|
||||||
|
|
||||||
} DSA_METHOD;
|
} DSA_METHOD;
|
||||||
.Ed
|
.Ed
|
||||||
.Sh RETURN VALUES
|
.Sh RETURN VALUES
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: pem.h,v 1.27 2024/03/29 02:22:18 jsing Exp $ */
|
/* $OpenBSD: pem.h,v 1.28 2024/05/11 05:41:28 tb Exp $ */
|
||||||
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
|
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@ -142,55 +142,6 @@ extern "C" {
|
|||||||
#define PEM_TYPE_MIC_CLEAR 30
|
#define PEM_TYPE_MIC_CLEAR 30
|
||||||
#define PEM_TYPE_CLEAR 40
|
#define PEM_TYPE_CLEAR 40
|
||||||
|
|
||||||
typedef struct pem_recip_st {
|
|
||||||
char *name;
|
|
||||||
X509_NAME *dn;
|
|
||||||
|
|
||||||
int cipher;
|
|
||||||
int key_enc;
|
|
||||||
/* char iv[8]; unused and wrong size */
|
|
||||||
} PEM_USER;
|
|
||||||
|
|
||||||
typedef struct pem_ctx_st {
|
|
||||||
int type; /* what type of object */
|
|
||||||
|
|
||||||
struct {
|
|
||||||
int version;
|
|
||||||
int mode;
|
|
||||||
} proc_type;
|
|
||||||
|
|
||||||
char *domain;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
int cipher;
|
|
||||||
/* unused, and wrong size
|
|
||||||
unsigned char iv[8]; */
|
|
||||||
} DEK_info;
|
|
||||||
|
|
||||||
PEM_USER *originator;
|
|
||||||
|
|
||||||
int num_recipient;
|
|
||||||
PEM_USER **recipient;
|
|
||||||
|
|
||||||
/* XXX(ben): don#t think this is used!
|
|
||||||
STACK *x509_chain; / * certificate chain */
|
|
||||||
EVP_MD *md; /* signature type */
|
|
||||||
|
|
||||||
int md_enc; /* is the md encrypted or not? */
|
|
||||||
int md_len; /* length of md_data */
|
|
||||||
char *md_data; /* message digest, could be pkey encrypted */
|
|
||||||
|
|
||||||
EVP_CIPHER *dec; /* date encryption cipher */
|
|
||||||
int key_len; /* key length */
|
|
||||||
unsigned char *key; /* key */
|
|
||||||
/* unused, and wrong size
|
|
||||||
unsigned char iv[8]; */
|
|
||||||
|
|
||||||
int data_enc; /* is the data encrypted */
|
|
||||||
int data_len;
|
|
||||||
unsigned char *data;
|
|
||||||
} PEM_CTX;
|
|
||||||
|
|
||||||
#ifndef LIBRESSL_INTERNAL
|
#ifndef LIBRESSL_INTERNAL
|
||||||
/* These macros make the PEM_read/PEM_write functions easier to maintain and
|
/* These macros make the PEM_read/PEM_write functions easier to maintain and
|
||||||
* write. Now they are all implemented with either:
|
* write. Now they are all implemented with either:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: iosfvar.h,v 1.1 2023/04/23 00:20:26 dlg Exp $ */
|
/* $OpenBSD: iosfvar.h,v 1.2 2024/05/11 14:49:56 jsg Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2023 David Gwynne <dlg@openbsd.org>
|
* Copyright (c) 2023 David Gwynne <dlg@openbsd.org>
|
||||||
@ -43,7 +43,7 @@ int iosf_mbi_available(void);
|
|||||||
|
|
||||||
/* for i2c */
|
/* for i2c */
|
||||||
int iosf_i2c_acquire(int);
|
int iosf_i2c_acquire(int);
|
||||||
void iosf_i2c_relese(int);
|
void iosf_i2c_release(int);
|
||||||
|
|
||||||
/* for drm to coordinate with the rest of the kernel */
|
/* for drm to coordinate with the rest of the kernel */
|
||||||
void iosf_mbi_punit_acquire(void);
|
void iosf_mbi_punit_acquire(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user