summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x509_lu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x509_lu.c')
-rw-r--r--src/lib/libcrypto/x509/x509_lu.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/lib/libcrypto/x509/x509_lu.c b/src/lib/libcrypto/x509/x509_lu.c
index 90d75497dd..80ff1ed429 100644
--- a/src/lib/libcrypto/x509/x509_lu.c
+++ b/src/lib/libcrypto/x509/x509_lu.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_lu.c,v 1.55 2022/01/14 07:53:45 tb Exp $ */ 1/* $OpenBSD: x509_lu.c,v 1.56 2022/11/14 17:48:50 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 @@ X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
84 84
85 return lu; 85 return lu;
86} 86}
87LCRYPTO_ALIAS(X509_LOOKUP_new)
87 88
88void 89void
89X509_LOOKUP_free(X509_LOOKUP *ctx) 90X509_LOOKUP_free(X509_LOOKUP *ctx)
@@ -94,6 +95,7 @@ X509_LOOKUP_free(X509_LOOKUP *ctx)
94 ctx->method->free(ctx); 95 ctx->method->free(ctx);
95 free(ctx); 96 free(ctx);
96} 97}
98LCRYPTO_ALIAS(X509_LOOKUP_free)
97 99
98int 100int
99X509_LOOKUP_init(X509_LOOKUP *ctx) 101X509_LOOKUP_init(X509_LOOKUP *ctx)
@@ -104,6 +106,7 @@ X509_LOOKUP_init(X509_LOOKUP *ctx)
104 return 1; 106 return 1;
105 return ctx->method->init(ctx); 107 return ctx->method->init(ctx);
106} 108}
109LCRYPTO_ALIAS(X509_LOOKUP_init)
107 110
108int 111int
109X509_LOOKUP_shutdown(X509_LOOKUP *ctx) 112X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
@@ -114,6 +117,7 @@ X509_LOOKUP_shutdown(X509_LOOKUP *ctx)
114 return 1; 117 return 1;
115 return ctx->method->shutdown(ctx); 118 return ctx->method->shutdown(ctx);
116} 119}
120LCRYPTO_ALIAS(X509_LOOKUP_shutdown)
117 121
118int 122int
119X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, 123X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl,
@@ -125,6 +129,7 @@ X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl,
125 return 1; 129 return 1;
126 return ctx->method->ctrl(ctx, cmd, argc, argl, ret); 130 return ctx->method->ctrl(ctx, cmd, argc, argl, ret);
127} 131}
132LCRYPTO_ALIAS(X509_LOOKUP_ctrl)
128 133
129int 134int
130X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name, 135X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name,
@@ -134,6 +139,7 @@ X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, X509_NAME *name,
134 return 0; 139 return 0;
135 return ctx->method->get_by_subject(ctx, type, name, ret); 140 return ctx->method->get_by_subject(ctx, type, name, ret);
136} 141}
142LCRYPTO_ALIAS(X509_LOOKUP_by_subject)
137 143
138int 144int
139X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 145X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
@@ -143,6 +149,7 @@ X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
143 return 0; 149 return 0;
144 return ctx->method->get_by_issuer_serial(ctx, type, name, serial, ret); 150 return ctx->method->get_by_issuer_serial(ctx, type, name, serial, ret);
145} 151}
152LCRYPTO_ALIAS(X509_LOOKUP_by_issuer_serial)
146 153
147int 154int
148X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, 155X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
@@ -152,6 +159,7 @@ X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type,
152 return 0; 159 return 0;
153 return ctx->method->get_by_fingerprint(ctx, type, bytes, len, ret); 160 return ctx->method->get_by_fingerprint(ctx, type, bytes, len, ret);
154} 161}
162LCRYPTO_ALIAS(X509_LOOKUP_by_fingerprint)
155 163
156int 164int
157X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str, 165X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str,
@@ -161,6 +169,7 @@ X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, const char *str,
161 return 0; 169 return 0;
162 return ctx->method->get_by_alias(ctx, type, str, len, ret); 170 return ctx->method->get_by_alias(ctx, type, str, len, ret);
163} 171}
172LCRYPTO_ALIAS(X509_LOOKUP_by_alias)
164 173
165static int 174static int
166x509_object_cmp(const X509_OBJECT * const *a, const X509_OBJECT * const *b) 175x509_object_cmp(const X509_OBJECT * const *a, const X509_OBJECT * const *b)
@@ -208,6 +217,7 @@ X509_STORE_new(void)
208 217
209 return NULL; 218 return NULL;
210} 219}
220LCRYPTO_ALIAS(X509_STORE_new)
211 221
212X509_OBJECT * 222X509_OBJECT *
213X509_OBJECT_new(void) 223X509_OBJECT_new(void)
@@ -223,6 +233,7 @@ X509_OBJECT_new(void)
223 233
224 return obj; 234 return obj;
225} 235}
236LCRYPTO_ALIAS(X509_OBJECT_new)
226 237
227void 238void
228X509_OBJECT_free(X509_OBJECT *a) 239X509_OBJECT_free(X509_OBJECT *a)
@@ -241,6 +252,7 @@ X509_OBJECT_free(X509_OBJECT *a)
241 252
242 free(a); 253 free(a);
243} 254}
255LCRYPTO_ALIAS(X509_OBJECT_free)
244 256
245void 257void
246X509_STORE_free(X509_STORE *store) 258X509_STORE_free(X509_STORE *store)
@@ -268,12 +280,14 @@ X509_STORE_free(X509_STORE *store)
268 X509_VERIFY_PARAM_free(store->param); 280 X509_VERIFY_PARAM_free(store->param);
269 free(store); 281 free(store);
270} 282}
283LCRYPTO_ALIAS(X509_STORE_free)
271 284
272int 285int
273X509_STORE_up_ref(X509_STORE *store) 286X509_STORE_up_ref(X509_STORE *store)
274{ 287{
275 return CRYPTO_add(&store->references, 1, CRYPTO_LOCK_X509_STORE) > 1; 288 return CRYPTO_add(&store->references, 1, CRYPTO_LOCK_X509_STORE) > 1;
276} 289}
290LCRYPTO_ALIAS(X509_STORE_up_ref)
277 291
278X509_LOOKUP * 292X509_LOOKUP *
279X509_STORE_add_lookup(X509_STORE *store, X509_LOOKUP_METHOD *method) 293X509_STORE_add_lookup(X509_STORE *store, X509_LOOKUP_METHOD *method)
@@ -302,6 +316,7 @@ X509_STORE_add_lookup(X509_STORE *store, X509_LOOKUP_METHOD *method)
302 316
303 return lu; 317 return lu;
304} 318}
319LCRYPTO_ALIAS(X509_STORE_add_lookup)
305 320
306X509_OBJECT * 321X509_OBJECT *
307X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, 322X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
@@ -318,6 +333,7 @@ X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
318 333
319 return obj; 334 return obj;
320} 335}
336LCRYPTO_ALIAS(X509_STORE_CTX_get_obj_by_subject)
321 337
322int 338int
323X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, 339X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
@@ -356,6 +372,7 @@ X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type,
356 372
357 return 1; 373 return 1;
358} 374}
375LCRYPTO_ALIAS(X509_STORE_CTX_get_by_subject)
359 376
360/* Add obj to the store. Takes ownership of obj. */ 377/* Add obj to the store. Takes ownership of obj. */
361static int 378static int
@@ -407,6 +424,7 @@ X509_STORE_add_cert(X509_STORE *store, X509 *x)
407 424
408 return X509_STORE_add_object(store, obj); 425 return X509_STORE_add_object(store, obj);
409} 426}
427LCRYPTO_ALIAS(X509_STORE_add_cert)
410 428
411int 429int
412X509_STORE_add_crl(X509_STORE *store, X509_CRL *x) 430X509_STORE_add_crl(X509_STORE *store, X509_CRL *x)
@@ -429,6 +447,7 @@ X509_STORE_add_crl(X509_STORE *store, X509_CRL *x)
429 447
430 return X509_STORE_add_object(store, obj); 448 return X509_STORE_add_object(store, obj);
431} 449}
450LCRYPTO_ALIAS(X509_STORE_add_crl)
432 451
433int 452int
434X509_OBJECT_up_ref_count(X509_OBJECT *a) 453X509_OBJECT_up_ref_count(X509_OBJECT *a)
@@ -441,12 +460,14 @@ X509_OBJECT_up_ref_count(X509_OBJECT *a)
441 } 460 }
442 return 1; 461 return 1;
443} 462}
463LCRYPTO_ALIAS(X509_OBJECT_up_ref_count)
444 464
445X509_LOOKUP_TYPE 465X509_LOOKUP_TYPE
446X509_OBJECT_get_type(const X509_OBJECT *a) 466X509_OBJECT_get_type(const X509_OBJECT *a)
447{ 467{
448 return a->type; 468 return a->type;
449} 469}
470LCRYPTO_ALIAS(X509_OBJECT_get_type)
450 471
451static int 472static int
452x509_object_idx_cnt(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, 473x509_object_idx_cnt(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
@@ -498,6 +519,7 @@ X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
498{ 519{
499 return x509_object_idx_cnt(h, type, name, NULL); 520 return x509_object_idx_cnt(h, type, name, NULL);
500} 521}
522LCRYPTO_ALIAS(X509_OBJECT_idx_by_subject)
501 523
502X509_OBJECT * 524X509_OBJECT *
503X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, 525X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
@@ -510,6 +532,7 @@ X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type,
510 return NULL; 532 return NULL;
511 return sk_X509_OBJECT_value(h, idx); 533 return sk_X509_OBJECT_value(h, idx);
512} 534}
535LCRYPTO_ALIAS(X509_OBJECT_retrieve_by_subject)
513 536
514X509 * 537X509 *
515X509_OBJECT_get0_X509(const X509_OBJECT *xo) 538X509_OBJECT_get0_X509(const X509_OBJECT *xo)
@@ -518,6 +541,7 @@ X509_OBJECT_get0_X509(const X509_OBJECT *xo)
518 return xo->data.x509; 541 return xo->data.x509;
519 return NULL; 542 return NULL;
520} 543}
544LCRYPTO_ALIAS(X509_OBJECT_get0_X509)
521 545
522X509_CRL * 546X509_CRL *
523X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo) 547X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo)
@@ -526,6 +550,7 @@ X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo)
526 return xo->data.crl; 550 return xo->data.crl;
527 return NULL; 551 return NULL;
528} 552}
553LCRYPTO_ALIAS(X509_OBJECT_get0_X509_CRL)
529 554
530static STACK_OF(X509) * 555static STACK_OF(X509) *
531X509_get1_certs_from_cache(X509_STORE *store, X509_NAME *name) 556X509_get1_certs_from_cache(X509_STORE *store, X509_NAME *name)
@@ -589,6 +614,7 @@ X509_STORE_get1_certs(X509_STORE_CTX *ctx, X509_NAME *name)
589 614
590 return X509_get1_certs_from_cache(store, name); 615 return X509_get1_certs_from_cache(store, name);
591} 616}
617LCRYPTO_ALIAS(X509_STORE_get1_certs)
592 618
593STACK_OF(X509_CRL) * 619STACK_OF(X509_CRL) *
594X509_STORE_get1_crls(X509_STORE_CTX *ctx, X509_NAME *name) 620X509_STORE_get1_crls(X509_STORE_CTX *ctx, X509_NAME *name)
@@ -639,6 +665,7 @@ X509_STORE_get1_crls(X509_STORE_CTX *ctx, X509_NAME *name)
639 sk_X509_CRL_pop_free(sk, X509_CRL_free); 665 sk_X509_CRL_pop_free(sk, X509_CRL_free);
640 return NULL; 666 return NULL;
641} 667}
668LCRYPTO_ALIAS(X509_STORE_get1_crls)
642 669
643X509_OBJECT * 670X509_OBJECT *
644X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x) 671X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x)
@@ -667,6 +694,7 @@ X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x)
667 } 694 }
668 return NULL; 695 return NULL;
669} 696}
697LCRYPTO_ALIAS(X509_OBJECT_retrieve_match)
670 698
671/* Try to get issuer certificate from store. Due to limitations 699/* Try to get issuer certificate from store. Due to limitations
672 * of the API this can only retrieve a single certificate matching 700 * of the API this can only retrieve a single certificate matching
@@ -757,30 +785,35 @@ X509_STORE_CTX_get1_issuer(X509 **out_issuer, X509_STORE_CTX *ctx, X509 *x)
757 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE); 785 CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
758 return ret; 786 return ret;
759} 787}
788LCRYPTO_ALIAS(X509_STORE_CTX_get1_issuer)
760 789
761STACK_OF(X509_OBJECT) * 790STACK_OF(X509_OBJECT) *
762X509_STORE_get0_objects(X509_STORE *xs) 791X509_STORE_get0_objects(X509_STORE *xs)
763{ 792{
764 return xs->objs; 793 return xs->objs;
765} 794}
795LCRYPTO_ALIAS(X509_STORE_get0_objects)
766 796
767void * 797void *
768X509_STORE_get_ex_data(X509_STORE *xs, int idx) 798X509_STORE_get_ex_data(X509_STORE *xs, int idx)
769{ 799{
770 return CRYPTO_get_ex_data(&xs->ex_data, idx); 800 return CRYPTO_get_ex_data(&xs->ex_data, idx);
771} 801}
802LCRYPTO_ALIAS(X509_STORE_get_ex_data)
772 803
773int 804int
774X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data) 805X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data)
775{ 806{
776 return CRYPTO_set_ex_data(&xs->ex_data, idx, data); 807 return CRYPTO_set_ex_data(&xs->ex_data, idx, data);
777} 808}
809LCRYPTO_ALIAS(X509_STORE_set_ex_data)
778 810
779int 811int
780X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags) 812X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
781{ 813{
782 return X509_VERIFY_PARAM_set_flags(ctx->param, flags); 814 return X509_VERIFY_PARAM_set_flags(ctx->param, flags);
783} 815}
816LCRYPTO_ALIAS(X509_STORE_set_flags)
784 817
785int 818int
786X509_STORE_set_depth(X509_STORE *ctx, int depth) 819X509_STORE_set_depth(X509_STORE *ctx, int depth)
@@ -788,51 +821,60 @@ X509_STORE_set_depth(X509_STORE *ctx, int depth)
788 X509_VERIFY_PARAM_set_depth(ctx->param, depth); 821 X509_VERIFY_PARAM_set_depth(ctx->param, depth);
789 return 1; 822 return 1;
790} 823}
824LCRYPTO_ALIAS(X509_STORE_set_depth)
791 825
792int 826int
793X509_STORE_set_purpose(X509_STORE *ctx, int purpose) 827X509_STORE_set_purpose(X509_STORE *ctx, int purpose)
794{ 828{
795 return X509_VERIFY_PARAM_set_purpose(ctx->param, purpose); 829 return X509_VERIFY_PARAM_set_purpose(ctx->param, purpose);
796} 830}
831LCRYPTO_ALIAS(X509_STORE_set_purpose)
797 832
798int 833int
799X509_STORE_set_trust(X509_STORE *ctx, int trust) 834X509_STORE_set_trust(X509_STORE *ctx, int trust)
800{ 835{
801 return X509_VERIFY_PARAM_set_trust(ctx->param, trust); 836 return X509_VERIFY_PARAM_set_trust(ctx->param, trust);
802} 837}
838LCRYPTO_ALIAS(X509_STORE_set_trust)
803 839
804int 840int
805X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param) 841X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
806{ 842{
807 return X509_VERIFY_PARAM_set1(ctx->param, param); 843 return X509_VERIFY_PARAM_set1(ctx->param, param);
808} 844}
845LCRYPTO_ALIAS(X509_STORE_set1_param)
809 846
810X509_VERIFY_PARAM * 847X509_VERIFY_PARAM *
811X509_STORE_get0_param(X509_STORE *ctx) 848X509_STORE_get0_param(X509_STORE *ctx)
812{ 849{
813 return ctx->param; 850 return ctx->param;
814} 851}
852LCRYPTO_ALIAS(X509_STORE_get0_param)
815 853
816void 854void
817X509_STORE_set_verify(X509_STORE *store, X509_STORE_CTX_verify_fn verify) 855X509_STORE_set_verify(X509_STORE *store, X509_STORE_CTX_verify_fn verify)
818{ 856{
819 store->verify = verify; 857 store->verify = verify;
820} 858}
859LCRYPTO_ALIAS(X509_STORE_set_verify)
821 860
822X509_STORE_CTX_verify_fn 861X509_STORE_CTX_verify_fn
823X509_STORE_get_verify(X509_STORE *store) 862X509_STORE_get_verify(X509_STORE *store)
824{ 863{
825 return store->verify; 864 return store->verify;
826} 865}
866LCRYPTO_ALIAS(X509_STORE_get_verify)
827 867
828void 868void
829X509_STORE_set_verify_cb(X509_STORE *store, X509_STORE_CTX_verify_cb verify_cb) 869X509_STORE_set_verify_cb(X509_STORE *store, X509_STORE_CTX_verify_cb verify_cb)
830{ 870{
831 store->verify_cb = verify_cb; 871 store->verify_cb = verify_cb;
832} 872}
873LCRYPTO_ALIAS(X509_STORE_set_verify_cb)
833 874
834X509_STORE_CTX_verify_cb 875X509_STORE_CTX_verify_cb
835X509_STORE_get_verify_cb(X509_STORE *store) 876X509_STORE_get_verify_cb(X509_STORE *store)
836{ 877{
837 return store->verify_cb; 878 return store->verify_cb;
838} 879}
880LCRYPTO_ALIAS(X509_STORE_get_verify_cb)