summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/Symbols.namespace65
-rw-r--r--src/lib/libcrypto/dsa/dsa_asn1.c19
-rw-r--r--src/lib/libcrypto/dsa/dsa_err.c3
-rw-r--r--src/lib/libcrypto/dsa/dsa_gen.c4
-rw-r--r--src/lib/libcrypto/dsa/dsa_key.c3
-rw-r--r--src/lib/libcrypto/dsa/dsa_lib.c29
-rw-r--r--src/lib/libcrypto/dsa/dsa_meth.c9
-rw-r--r--src/lib/libcrypto/dsa/dsa_ossl.c8
-rw-r--r--src/lib/libcrypto/dsa/dsa_prn.c6
-rw-r--r--src/lib/libcrypto/hidden/openssl/dsa.h94
10 files changed, 232 insertions, 8 deletions
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace
index 3dc0c33921..7676e45f90 100644
--- a/src/lib/libcrypto/Symbols.namespace
+++ b/src/lib/libcrypto/Symbols.namespace
@@ -2566,3 +2566,68 @@ _libre_CMAC_Init
2566_libre_CMAC_Update 2566_libre_CMAC_Update
2567_libre_CMAC_Final 2567_libre_CMAC_Final
2568_libre_CMAC_resume 2568_libre_CMAC_resume
2569_libre_d2i_DSAparams_bio
2570_libre_i2d_DSAparams_bio
2571_libre_d2i_DSAparams_fp
2572_libre_i2d_DSAparams_fp
2573_libre_DSAparams_dup
2574_libre_DSA_SIG_new
2575_libre_DSA_SIG_free
2576_libre_i2d_DSA_SIG
2577_libre_d2i_DSA_SIG
2578_libre_DSA_SIG_get0
2579_libre_DSA_SIG_set0
2580_libre_DSA_do_sign
2581_libre_DSA_do_verify
2582_libre_DSA_OpenSSL
2583_libre_DSA_set_default_method
2584_libre_DSA_get_default_method
2585_libre_DSA_set_method
2586_libre_DSA_new
2587_libre_DSA_new_method
2588_libre_DSA_free
2589_libre_DSA_up_ref
2590_libre_DSA_size
2591_libre_DSA_bits
2592_libre_DSA_sign_setup
2593_libre_DSA_sign
2594_libre_DSA_verify
2595_libre_DSA_get_ex_new_index
2596_libre_DSA_set_ex_data
2597_libre_DSA_get_ex_data
2598_libre_DSA_security_bits
2599_libre_d2i_DSAPublicKey
2600_libre_i2d_DSAPublicKey
2601_libre_d2i_DSAPrivateKey
2602_libre_i2d_DSAPrivateKey
2603_libre_d2i_DSAparams
2604_libre_i2d_DSAparams
2605_libre_DSA_generate_parameters
2606_libre_DSA_generate_parameters_ex
2607_libre_DSA_generate_key
2608_libre_DSAparams_print
2609_libre_DSA_print
2610_libre_DSAparams_print_fp
2611_libre_DSA_print_fp
2612_libre_DSA_dup_DH
2613_libre_DSA_get0_pqg
2614_libre_DSA_set0_pqg
2615_libre_DSA_get0_key
2616_libre_DSA_set0_key
2617_libre_DSA_get0_p
2618_libre_DSA_get0_q
2619_libre_DSA_get0_g
2620_libre_DSA_get0_pub_key
2621_libre_DSA_get0_priv_key
2622_libre_DSA_clear_flags
2623_libre_DSA_test_flags
2624_libre_DSA_set_flags
2625_libre_DSA_get0_engine
2626_libre_DSA_meth_new
2627_libre_DSA_meth_free
2628_libre_DSA_meth_dup
2629_libre_DSA_meth_get0_name
2630_libre_DSA_meth_set1_name
2631_libre_DSA_meth_set_sign
2632_libre_DSA_meth_set_finish
2633_libre_ERR_load_DSA_strings
diff --git a/src/lib/libcrypto/dsa/dsa_asn1.c b/src/lib/libcrypto/dsa/dsa_asn1.c
index 70a826ca95..5e4f882cfc 100644
--- a/src/lib/libcrypto/dsa/dsa_asn1.c
+++ b/src/lib/libcrypto/dsa/dsa_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_asn1.c,v 1.30 2023/03/25 09:09:28 tb Exp $ */ 1/* $OpenBSD: dsa_asn1.c,v 1.31 2023/07/08 14:28:15 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2000. 3 * project 2000.
4 */ 4 */
@@ -126,12 +126,14 @@ d2i_DSA_SIG(DSA_SIG **a, const unsigned char **in, long len)
126 return (DSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 126 return (DSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
127 &DSA_SIG_it); 127 &DSA_SIG_it);
128} 128}
129LCRYPTO_ALIAS(d2i_DSA_SIG);
129 130
130int 131int
131i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out) 132i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out)
132{ 133{
133 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it); 134 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it);
134} 135}
136LCRYPTO_ALIAS(i2d_DSA_SIG);
135 137
136void 138void
137DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) 139DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
@@ -141,6 +143,7 @@ DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
141 if (ps != NULL) 143 if (ps != NULL)
142 *ps = sig->s; 144 *ps = sig->s;
143} 145}
146LCRYPTO_ALIAS(DSA_SIG_get0);
144 147
145int 148int
146DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s) 149DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
@@ -155,6 +158,7 @@ DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
155 158
156 return 1; 159 return 1;
157} 160}
161LCRYPTO_ALIAS(DSA_SIG_set0);
158 162
159/* Override the default free and new methods */ 163/* Override the default free and new methods */
160static int 164static int
@@ -243,12 +247,14 @@ d2i_DSAPrivateKey(DSA **a, const unsigned char **in, long len)
243 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 247 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
244 &DSAPrivateKey_it); 248 &DSAPrivateKey_it);
245} 249}
250LCRYPTO_ALIAS(d2i_DSAPrivateKey);
246 251
247int 252int
248i2d_DSAPrivateKey(const DSA *a, unsigned char **out) 253i2d_DSAPrivateKey(const DSA *a, unsigned char **out)
249{ 254{
250 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it); 255 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPrivateKey_it);
251} 256}
257LCRYPTO_ALIAS(i2d_DSAPrivateKey);
252 258
253static const ASN1_AUX DSAparams_aux = { 259static const ASN1_AUX DSAparams_aux = {
254 .app_data = NULL, 260 .app_data = NULL,
@@ -299,36 +305,42 @@ d2i_DSAparams(DSA **a, const unsigned char **in, long len)
299 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 305 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
300 &DSAparams_it); 306 &DSAparams_it);
301} 307}
308LCRYPTO_ALIAS(d2i_DSAparams);
302 309
303int 310int
304i2d_DSAparams(const DSA *a, unsigned char **out) 311i2d_DSAparams(const DSA *a, unsigned char **out)
305{ 312{
306 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAparams_it); 313 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAparams_it);
307} 314}
315LCRYPTO_ALIAS(i2d_DSAparams);
308 316
309DSA * 317DSA *
310d2i_DSAparams_bio(BIO *bp, DSA **a) 318d2i_DSAparams_bio(BIO *bp, DSA **a)
311{ 319{
312 return ASN1_item_d2i_bio(&DSAparams_it, bp, a); 320 return ASN1_item_d2i_bio(&DSAparams_it, bp, a);
313} 321}
322LCRYPTO_ALIAS(d2i_DSAparams_bio);
314 323
315int 324int
316i2d_DSAparams_bio(BIO *bp, DSA *a) 325i2d_DSAparams_bio(BIO *bp, DSA *a)
317{ 326{
318 return ASN1_item_i2d_bio(&DSAparams_it, bp, a); 327 return ASN1_item_i2d_bio(&DSAparams_it, bp, a);
319} 328}
329LCRYPTO_ALIAS(i2d_DSAparams_bio);
320 330
321DSA * 331DSA *
322d2i_DSAparams_fp(FILE *fp, DSA **a) 332d2i_DSAparams_fp(FILE *fp, DSA **a)
323{ 333{
324 return ASN1_item_d2i_fp(&DSAparams_it, fp, a); 334 return ASN1_item_d2i_fp(&DSAparams_it, fp, a);
325} 335}
336LCRYPTO_ALIAS(d2i_DSAparams_fp);
326 337
327int 338int
328i2d_DSAparams_fp(FILE *fp, DSA *a) 339i2d_DSAparams_fp(FILE *fp, DSA *a)
329{ 340{
330 return ASN1_item_i2d_fp(&DSAparams_it, fp, a); 341 return ASN1_item_i2d_fp(&DSAparams_it, fp, a);
331} 342}
343LCRYPTO_ALIAS(i2d_DSAparams_fp);
332 344
333static const ASN1_AUX DSAPublicKey_aux = { 345static const ASN1_AUX DSAPublicKey_aux = {
334 .app_data = NULL, 346 .app_data = NULL,
@@ -385,18 +397,21 @@ d2i_DSAPublicKey(DSA **a, const unsigned char **in, long len)
385 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 397 return (DSA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
386 &DSAPublicKey_it); 398 &DSAPublicKey_it);
387} 399}
400LCRYPTO_ALIAS(d2i_DSAPublicKey);
388 401
389int 402int
390i2d_DSAPublicKey(const DSA *a, unsigned char **out) 403i2d_DSAPublicKey(const DSA *a, unsigned char **out)
391{ 404{
392 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it); 405 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSAPublicKey_it);
393} 406}
407LCRYPTO_ALIAS(i2d_DSAPublicKey);
394 408
395DSA * 409DSA *
396DSAparams_dup(DSA *dsa) 410DSAparams_dup(DSA *dsa)
397{ 411{
398 return ASN1_item_dup(&DSAparams_it, dsa); 412 return ASN1_item_dup(&DSAparams_it, dsa);
399} 413}
414LCRYPTO_ALIAS(DSAparams_dup);
400 415
401int 416int
402DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig, 417DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
@@ -422,6 +437,7 @@ DSA_sign(int type, const unsigned char *dgst, int dlen, unsigned char *sig,
422 437
423 return ret; 438 return ret;
424} 439}
440LCRYPTO_ALIAS(DSA_sign);
425 441
426/* 442/*
427 * data has already been hashed (probably with SHA or SHA-1). 443 * data has already been hashed (probably with SHA or SHA-1).
@@ -457,3 +473,4 @@ DSA_verify(int type, const unsigned char *dgst, int dgst_len,
457 473
458 return ret; 474 return ret;
459} 475}
476LCRYPTO_ALIAS(DSA_verify);
diff --git a/src/lib/libcrypto/dsa/dsa_err.c b/src/lib/libcrypto/dsa/dsa_err.c
index 8f105a8759..6934fe14f0 100644
--- a/src/lib/libcrypto/dsa/dsa_err.c
+++ b/src/lib/libcrypto/dsa/dsa_err.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_err.c,v 1.18 2023/03/04 20:47:04 tb Exp $ */ 1/* $OpenBSD: dsa_err.c,v 1.19 2023/07/08 14:28:15 beck Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. 3 * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved.
4 * 4 *
@@ -101,3 +101,4 @@ void ERR_load_DSA_strings(void)
101 } 101 }
102#endif 102#endif
103 } 103 }
104LCRYPTO_ALIAS(ERR_load_DSA_strings);
diff --git a/src/lib/libcrypto/dsa/dsa_gen.c b/src/lib/libcrypto/dsa/dsa_gen.c
index 4a16278b5a..490c7e51bb 100644
--- a/src/lib/libcrypto/dsa/dsa_gen.c
+++ b/src/lib/libcrypto/dsa/dsa_gen.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_gen.c,v 1.29 2023/04/13 14:58:27 tb Exp $ */ 1/* $OpenBSD: dsa_gen.c,v 1.30 2023/07/08 14:28:15 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -94,6 +94,7 @@ DSA_generate_parameters_ex(DSA *ret, int bits, const unsigned char *seed_in,
94 seed_len, NULL, counter_ret, h_ret, cb); 94 seed_len, NULL, counter_ret, h_ret, cb);
95 } 95 }
96} 96}
97LCRYPTO_ALIAS(DSA_generate_parameters_ex);
97 98
98int 99int
99dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd, 100dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, const EVP_MD *evpmd,
@@ -375,5 +376,6 @@ DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len,
375 DSA_free(ret); 376 DSA_free(ret);
376 return NULL; 377 return NULL;
377} 378}
379LCRYPTO_ALIAS(DSA_generate_parameters);
378 380
379#endif 381#endif
diff --git a/src/lib/libcrypto/dsa/dsa_key.c b/src/lib/libcrypto/dsa/dsa_key.c
index 890f991df9..c378707e36 100644
--- a/src/lib/libcrypto/dsa/dsa_key.c
+++ b/src/lib/libcrypto/dsa/dsa_key.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_key.c,v 1.33 2023/01/11 04:35:26 jsing Exp $ */ 1/* $OpenBSD: dsa_key.c,v 1.34 2023/07/08 14:28:15 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -78,6 +78,7 @@ DSA_generate_key(DSA *dsa)
78 return dsa->meth->dsa_keygen(dsa); 78 return dsa->meth->dsa_keygen(dsa);
79 return dsa_builtin_keygen(dsa); 79 return dsa_builtin_keygen(dsa);
80} 80}
81LCRYPTO_ALIAS(DSA_generate_key);
81 82
82static int 83static int
83dsa_builtin_keygen(DSA *dsa) 84dsa_builtin_keygen(DSA *dsa)
diff --git a/src/lib/libcrypto/dsa/dsa_lib.c b/src/lib/libcrypto/dsa/dsa_lib.c
index 6986f9ad6b..46a7dbcfbe 100644
--- a/src/lib/libcrypto/dsa/dsa_lib.c
+++ b/src/lib/libcrypto/dsa/dsa_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_lib.c,v 1.42 2023/03/11 15:29:03 tb Exp $ */ 1/* $OpenBSD: dsa_lib.c,v 1.43 2023/07/08 14:28:15 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -84,6 +84,7 @@ DSA_set_default_method(const DSA_METHOD *meth)
84{ 84{
85 default_DSA_method = meth; 85 default_DSA_method = meth;
86} 86}
87LCRYPTO_ALIAS(DSA_set_default_method);
87 88
88const DSA_METHOD * 89const DSA_METHOD *
89DSA_get_default_method(void) 90DSA_get_default_method(void)
@@ -92,12 +93,14 @@ DSA_get_default_method(void)
92 default_DSA_method = DSA_OpenSSL(); 93 default_DSA_method = DSA_OpenSSL();
93 return default_DSA_method; 94 return default_DSA_method;
94} 95}
96LCRYPTO_ALIAS(DSA_get_default_method);
95 97
96DSA * 98DSA *
97DSA_new(void) 99DSA_new(void)
98{ 100{
99 return DSA_new_method(NULL); 101 return DSA_new_method(NULL);
100} 102}
103LCRYPTO_ALIAS(DSA_new);
101 104
102int 105int
103DSA_set_method(DSA *dsa, const DSA_METHOD *meth) 106DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
@@ -119,6 +122,7 @@ DSA_set_method(DSA *dsa, const DSA_METHOD *meth)
119 meth->init(dsa); 122 meth->init(dsa);
120 return 1; 123 return 1;
121} 124}
125LCRYPTO_ALIAS(DSA_set_method);
122 126
123DSA * 127DSA *
124DSA_new_method(ENGINE *engine) 128DSA_new_method(ENGINE *engine)
@@ -179,6 +183,7 @@ DSA_new_method(ENGINE *engine)
179 183
180 return ret; 184 return ret;
181} 185}
186LCRYPTO_ALIAS(DSA_new_method);
182 187
183void 188void
184DSA_free(DSA *r) 189DSA_free(DSA *r)
@@ -209,6 +214,7 @@ DSA_free(DSA *r)
209 BN_free(r->r); 214 BN_free(r->r);
210 free(r); 215 free(r);
211} 216}
217LCRYPTO_ALIAS(DSA_free);
212 218
213int 219int
214DSA_up_ref(DSA *r) 220DSA_up_ref(DSA *r)
@@ -216,6 +222,7 @@ DSA_up_ref(DSA *r)
216 int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DSA); 222 int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DSA);
217 return i > 1 ? 1 : 0; 223 return i > 1 ? 1 : 0;
218} 224}
225LCRYPTO_ALIAS(DSA_up_ref);
219 226
220int 227int
221DSA_size(const DSA *r) 228DSA_size(const DSA *r)
@@ -231,6 +238,7 @@ DSA_size(const DSA *r)
231 238
232 return ret; 239 return ret;
233} 240}
241LCRYPTO_ALIAS(DSA_size);
234 242
235int 243int
236DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 244DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
@@ -239,18 +247,21 @@ DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
239 return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, argl, argp, 247 return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, argl, argp,
240 new_func, dup_func, free_func); 248 new_func, dup_func, free_func);
241} 249}
250LCRYPTO_ALIAS(DSA_get_ex_new_index);
242 251
243int 252int
244DSA_set_ex_data(DSA *d, int idx, void *arg) 253DSA_set_ex_data(DSA *d, int idx, void *arg)
245{ 254{
246 return CRYPTO_set_ex_data(&d->ex_data, idx, arg); 255 return CRYPTO_set_ex_data(&d->ex_data, idx, arg);
247} 256}
257LCRYPTO_ALIAS(DSA_set_ex_data);
248 258
249void * 259void *
250DSA_get_ex_data(DSA *d, int idx) 260DSA_get_ex_data(DSA *d, int idx)
251{ 261{
252 return CRYPTO_get_ex_data(&d->ex_data, idx); 262 return CRYPTO_get_ex_data(&d->ex_data, idx);
253} 263}
264LCRYPTO_ALIAS(DSA_get_ex_data);
254 265
255int 266int
256DSA_security_bits(const DSA *d) 267DSA_security_bits(const DSA *d)
@@ -260,6 +271,7 @@ DSA_security_bits(const DSA *d)
260 271
261 return BN_security_bits(BN_num_bits(d->p), BN_num_bits(d->q)); 272 return BN_security_bits(BN_num_bits(d->p), BN_num_bits(d->q));
262} 273}
274LCRYPTO_ALIAS(DSA_security_bits);
263 275
264#ifndef OPENSSL_NO_DH 276#ifndef OPENSSL_NO_DH
265DH * 277DH *
@@ -301,6 +313,7 @@ err:
301 DH_free(ret); 313 DH_free(ret);
302 return NULL; 314 return NULL;
303} 315}
316LCRYPTO_ALIAS(DSA_dup_DH);
304#endif 317#endif
305 318
306void 319void
@@ -313,6 +326,7 @@ DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
313 if (g != NULL) 326 if (g != NULL)
314 *g = d->g; 327 *g = d->g;
315} 328}
329LCRYPTO_ALIAS(DSA_get0_pqg);
316 330
317int 331int
318DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g) 332DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
@@ -336,6 +350,7 @@ DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
336 350
337 return 1; 351 return 1;
338} 352}
353LCRYPTO_ALIAS(DSA_set0_pqg);
339 354
340void 355void
341DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key) 356DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
@@ -345,6 +360,7 @@ DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
345 if (priv_key != NULL) 360 if (priv_key != NULL)
346 *priv_key = d->priv_key; 361 *priv_key = d->priv_key;
347} 362}
363LCRYPTO_ALIAS(DSA_get0_key);
348 364
349int 365int
350DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key) 366DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
@@ -363,66 +379,77 @@ DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
363 379
364 return 1; 380 return 1;
365} 381}
382LCRYPTO_ALIAS(DSA_set0_key);
366 383
367const BIGNUM * 384const BIGNUM *
368DSA_get0_p(const DSA *d) 385DSA_get0_p(const DSA *d)
369{ 386{
370 return d->p; 387 return d->p;
371} 388}
389LCRYPTO_ALIAS(DSA_get0_p);
372 390
373const BIGNUM * 391const BIGNUM *
374DSA_get0_q(const DSA *d) 392DSA_get0_q(const DSA *d)
375{ 393{
376 return d->q; 394 return d->q;
377} 395}
396LCRYPTO_ALIAS(DSA_get0_q);
378 397
379const BIGNUM * 398const BIGNUM *
380DSA_get0_g(const DSA *d) 399DSA_get0_g(const DSA *d)
381{ 400{
382 return d->g; 401 return d->g;
383} 402}
403LCRYPTO_ALIAS(DSA_get0_g);
384 404
385const BIGNUM * 405const BIGNUM *
386DSA_get0_pub_key(const DSA *d) 406DSA_get0_pub_key(const DSA *d)
387{ 407{
388 return d->pub_key; 408 return d->pub_key;
389} 409}
410LCRYPTO_ALIAS(DSA_get0_pub_key);
390 411
391const BIGNUM * 412const BIGNUM *
392DSA_get0_priv_key(const DSA *d) 413DSA_get0_priv_key(const DSA *d)
393{ 414{
394 return d->priv_key; 415 return d->priv_key;
395} 416}
417LCRYPTO_ALIAS(DSA_get0_priv_key);
396 418
397void 419void
398DSA_clear_flags(DSA *d, int flags) 420DSA_clear_flags(DSA *d, int flags)
399{ 421{
400 d->flags &= ~flags; 422 d->flags &= ~flags;
401} 423}
424LCRYPTO_ALIAS(DSA_clear_flags);
402 425
403int 426int
404DSA_test_flags(const DSA *d, int flags) 427DSA_test_flags(const DSA *d, int flags)
405{ 428{
406 return d->flags & flags; 429 return d->flags & flags;
407} 430}
431LCRYPTO_ALIAS(DSA_test_flags);
408 432
409void 433void
410DSA_set_flags(DSA *d, int flags) 434DSA_set_flags(DSA *d, int flags)
411{ 435{
412 d->flags |= flags; 436 d->flags |= flags;
413} 437}
438LCRYPTO_ALIAS(DSA_set_flags);
414 439
415ENGINE * 440ENGINE *
416DSA_get0_engine(DSA *d) 441DSA_get0_engine(DSA *d)
417{ 442{
418 return d->engine; 443 return d->engine;
419} 444}
445LCRYPTO_ALIAS(DSA_get0_engine);
420 446
421int 447int
422DSA_bits(const DSA *dsa) 448DSA_bits(const DSA *dsa)
423{ 449{
424 return BN_num_bits(dsa->p); 450 return BN_num_bits(dsa->p);
425} 451}
452LCRYPTO_ALIAS(DSA_bits);
426 453
427int 454int
428dsa_check_key(const DSA *dsa) 455dsa_check_key(const DSA *dsa)
diff --git a/src/lib/libcrypto/dsa/dsa_meth.c b/src/lib/libcrypto/dsa/dsa_meth.c
index 392afb84df..c84b5287e1 100644
--- a/src/lib/libcrypto/dsa/dsa_meth.c
+++ b/src/lib/libcrypto/dsa/dsa_meth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_meth.c,v 1.6 2022/11/26 16:08:52 tb Exp $ */ 1/* $OpenBSD: dsa_meth.c,v 1.7 2023/07/08 14:28:15 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -38,6 +38,7 @@ DSA_meth_new(const char *name, int flags)
38 38
39 return meth; 39 return meth;
40} 40}
41LCRYPTO_ALIAS(DSA_meth_new);
41 42
42void 43void
43DSA_meth_free(DSA_METHOD *meth) 44DSA_meth_free(DSA_METHOD *meth)
@@ -48,6 +49,7 @@ DSA_meth_free(DSA_METHOD *meth)
48 free(meth->name); 49 free(meth->name);
49 free(meth); 50 free(meth);
50} 51}
52LCRYPTO_ALIAS(DSA_meth_free);
51 53
52DSA_METHOD * 54DSA_METHOD *
53DSA_meth_dup(const DSA_METHOD *meth) 55DSA_meth_dup(const DSA_METHOD *meth)
@@ -64,12 +66,14 @@ DSA_meth_dup(const DSA_METHOD *meth)
64 66
65 return copy; 67 return copy;
66} 68}
69LCRYPTO_ALIAS(DSA_meth_dup);
67 70
68const char * 71const char *
69DSA_meth_get0_name(const DSA_METHOD *meth) 72DSA_meth_get0_name(const DSA_METHOD *meth)
70{ 73{
71 return meth->name; 74 return meth->name;
72} 75}
76LCRYPTO_ALIAS(DSA_meth_get0_name);
73 77
74int 78int
75DSA_meth_set1_name(DSA_METHOD *meth, const char *name) 79DSA_meth_set1_name(DSA_METHOD *meth, const char *name)
@@ -86,6 +90,7 @@ DSA_meth_set1_name(DSA_METHOD *meth, const char *name)
86 90
87 return 1; 91 return 1;
88} 92}
93LCRYPTO_ALIAS(DSA_meth_set1_name);
89 94
90int 95int
91DSA_meth_set_sign(DSA_METHOD *meth, 96DSA_meth_set_sign(DSA_METHOD *meth,
@@ -94,6 +99,7 @@ DSA_meth_set_sign(DSA_METHOD *meth,
94 meth->dsa_do_sign = sign; 99 meth->dsa_do_sign = sign;
95 return 1; 100 return 1;
96} 101}
102LCRYPTO_ALIAS(DSA_meth_set_sign);
97 103
98int 104int
99DSA_meth_set_finish(DSA_METHOD *meth, int (*finish)(DSA *)) 105DSA_meth_set_finish(DSA_METHOD *meth, int (*finish)(DSA *))
@@ -101,3 +107,4 @@ DSA_meth_set_finish(DSA_METHOD *meth, int (*finish)(DSA *))
101 meth->finish = finish; 107 meth->finish = finish;
102 return 1; 108 return 1;
103} 109}
110LCRYPTO_ALIAS(DSA_meth_set_finish);
diff --git a/src/lib/libcrypto/dsa/dsa_ossl.c b/src/lib/libcrypto/dsa/dsa_ossl.c
index b69cf1a03f..36b2a63462 100644
--- a/src/lib/libcrypto/dsa/dsa_ossl.c
+++ b/src/lib/libcrypto/dsa/dsa_ossl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_ossl.c,v 1.51 2023/03/27 10:25:02 tb Exp $ */ 1/* $OpenBSD: dsa_ossl.c,v 1.52 2023/07/08 14:28:15 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -91,6 +91,7 @@ DSA_OpenSSL(void)
91{ 91{
92 return &openssl_dsa_meth; 92 return &openssl_dsa_meth;
93} 93}
94LCRYPTO_ALIAS(DSA_OpenSSL);
94 95
95/* 96/*
96 * Since DSA parameters are entirely arbitrary and checking them to be 97 * Since DSA parameters are entirely arbitrary and checking them to be
@@ -440,6 +441,7 @@ DSA_SIG_new(void)
440{ 441{
441 return calloc(1, sizeof(DSA_SIG)); 442 return calloc(1, sizeof(DSA_SIG));
442} 443}
444LCRYPTO_ALIAS(DSA_SIG_new);
443 445
444void 446void
445DSA_SIG_free(DSA_SIG *sig) 447DSA_SIG_free(DSA_SIG *sig)
@@ -451,21 +453,25 @@ DSA_SIG_free(DSA_SIG *sig)
451 BN_free(sig->s); 453 BN_free(sig->s);
452 free(sig); 454 free(sig);
453} 455}
456LCRYPTO_ALIAS(DSA_SIG_free);
454 457
455int 458int
456DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp) 459DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)
457{ 460{
458 return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp); 461 return dsa->meth->dsa_sign_setup(dsa, ctx_in, kinvp, rp);
459} 462}
463LCRYPTO_ALIAS(DSA_sign_setup);
460 464
461DSA_SIG * 465DSA_SIG *
462DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa) 466DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
463{ 467{
464 return dsa->meth->dsa_do_sign(dgst, dlen, dsa); 468 return dsa->meth->dsa_do_sign(dgst, dlen, dsa);
465} 469}
470LCRYPTO_ALIAS(DSA_do_sign);
466 471
467int 472int
468DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa) 473DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, DSA *dsa)
469{ 474{
470 return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa); 475 return dsa->meth->dsa_do_verify(dgst, dgst_len, sig, dsa);
471} 476}
477LCRYPTO_ALIAS(DSA_do_verify);
diff --git a/src/lib/libcrypto/dsa/dsa_prn.c b/src/lib/libcrypto/dsa/dsa_prn.c
index 4ed656a04a..f276d82482 100644
--- a/src/lib/libcrypto/dsa/dsa_prn.c
+++ b/src/lib/libcrypto/dsa/dsa_prn.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dsa_prn.c,v 1.9 2022/11/19 06:33:00 tb Exp $ */ 1/* $OpenBSD: dsa_prn.c,v 1.10 2023/07/08 14:28:15 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -77,6 +77,7 @@ DSA_print_fp(FILE *fp, const DSA *x, int off)
77 BIO_free(b); 77 BIO_free(b);
78 return ret; 78 return ret;
79} 79}
80LCRYPTO_ALIAS(DSA_print_fp);
80 81
81int 82int
82DSAparams_print_fp(FILE *fp, const DSA *x) 83DSAparams_print_fp(FILE *fp, const DSA *x)
@@ -93,6 +94,7 @@ DSAparams_print_fp(FILE *fp, const DSA *x)
93 BIO_free(b); 94 BIO_free(b);
94 return ret; 95 return ret;
95} 96}
97LCRYPTO_ALIAS(DSAparams_print_fp);
96 98
97int 99int
98DSA_print(BIO *bp, const DSA *x, int off) 100DSA_print(BIO *bp, const DSA *x, int off)
@@ -111,6 +113,7 @@ DSA_print(BIO *bp, const DSA *x, int off)
111 EVP_PKEY_free(pk); 113 EVP_PKEY_free(pk);
112 return ret; 114 return ret;
113} 115}
116LCRYPTO_ALIAS(DSA_print);
114 117
115int 118int
116DSAparams_print(BIO *bp, const DSA *x) 119DSAparams_print(BIO *bp, const DSA *x)
@@ -129,3 +132,4 @@ DSAparams_print(BIO *bp, const DSA *x)
129 EVP_PKEY_free(pk); 132 EVP_PKEY_free(pk);
130 return ret; 133 return ret;
131} 134}
135LCRYPTO_ALIAS(DSAparams_print);
diff --git a/src/lib/libcrypto/hidden/openssl/dsa.h b/src/lib/libcrypto/hidden/openssl/dsa.h
new file mode 100644
index 0000000000..b2b0058cb9
--- /dev/null
+++ b/src/lib/libcrypto/hidden/openssl/dsa.h
@@ -0,0 +1,94 @@
1/* $OpenBSD: dsa.h,v 1.1 2023/07/08 14:28:15 beck Exp $ */
2/*
3 * Copyright (c) 2023 Bob Beck <beck@openbsd.org>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#ifndef _LIBCRYPTO_DSA_H
19#define _LIBCRYPTO_DSA_H
20
21#ifndef _MSC_VER
22#include_next <openssl/dsa.h>
23#else
24#include "../include/openssl/dsa.h"
25#endif
26#include "crypto_namespace.h"
27
28LCRYPTO_USED(d2i_DSAparams_bio);
29LCRYPTO_USED(i2d_DSAparams_bio);
30LCRYPTO_USED(d2i_DSAparams_fp);
31LCRYPTO_USED(i2d_DSAparams_fp);
32LCRYPTO_USED(DSAparams_dup);
33LCRYPTO_USED(DSA_SIG_new);
34LCRYPTO_USED(DSA_SIG_free);
35LCRYPTO_USED(i2d_DSA_SIG);
36LCRYPTO_USED(d2i_DSA_SIG);
37LCRYPTO_USED(DSA_SIG_get0);
38LCRYPTO_USED(DSA_SIG_set0);
39LCRYPTO_USED(DSA_do_sign);
40LCRYPTO_USED(DSA_do_verify);
41LCRYPTO_USED(DSA_OpenSSL);
42LCRYPTO_USED(DSA_set_default_method);
43LCRYPTO_USED(DSA_get_default_method);
44LCRYPTO_USED(DSA_set_method);
45LCRYPTO_USED(DSA_new);
46LCRYPTO_USED(DSA_new_method);
47LCRYPTO_USED(DSA_free);
48LCRYPTO_USED(DSA_up_ref);
49LCRYPTO_USED(DSA_size);
50LCRYPTO_USED(DSA_bits);
51LCRYPTO_USED(DSA_sign_setup);
52LCRYPTO_USED(DSA_sign);
53LCRYPTO_USED(DSA_verify);
54LCRYPTO_USED(DSA_get_ex_new_index);
55LCRYPTO_USED(DSA_set_ex_data);
56LCRYPTO_USED(DSA_get_ex_data);
57LCRYPTO_USED(DSA_security_bits);
58LCRYPTO_USED(d2i_DSAPublicKey);
59LCRYPTO_USED(i2d_DSAPublicKey);
60LCRYPTO_USED(d2i_DSAPrivateKey);
61LCRYPTO_USED(i2d_DSAPrivateKey);
62LCRYPTO_USED(d2i_DSAparams);
63LCRYPTO_USED(i2d_DSAparams);
64LCRYPTO_USED(DSA_generate_parameters);
65LCRYPTO_USED(DSA_generate_parameters_ex);
66LCRYPTO_USED(DSA_generate_key);
67LCRYPTO_USED(DSAparams_print);
68LCRYPTO_USED(DSA_print);
69LCRYPTO_USED(DSAparams_print_fp);
70LCRYPTO_USED(DSA_print_fp);
71LCRYPTO_USED(DSA_dup_DH);
72LCRYPTO_USED(DSA_get0_pqg);
73LCRYPTO_USED(DSA_set0_pqg);
74LCRYPTO_USED(DSA_get0_key);
75LCRYPTO_USED(DSA_set0_key);
76LCRYPTO_USED(DSA_get0_p);
77LCRYPTO_USED(DSA_get0_q);
78LCRYPTO_USED(DSA_get0_g);
79LCRYPTO_USED(DSA_get0_pub_key);
80LCRYPTO_USED(DSA_get0_priv_key);
81LCRYPTO_USED(DSA_clear_flags);
82LCRYPTO_USED(DSA_test_flags);
83LCRYPTO_USED(DSA_set_flags);
84LCRYPTO_USED(DSA_get0_engine);
85LCRYPTO_USED(DSA_meth_new);
86LCRYPTO_USED(DSA_meth_free);
87LCRYPTO_USED(DSA_meth_dup);
88LCRYPTO_USED(DSA_meth_get0_name);
89LCRYPTO_USED(DSA_meth_set1_name);
90LCRYPTO_USED(DSA_meth_set_sign);
91LCRYPTO_USED(DSA_meth_set_finish);
92LCRYPTO_USED(ERR_load_DSA_strings);
93
94#endif /* _LIBCRYPTO_DSA_H */