diff options
Diffstat (limited to 'src/lib/libcrypto/objects/obj_xref.c')
-rw-r--r-- | src/lib/libcrypto/objects/obj_xref.c | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/lib/libcrypto/objects/obj_xref.c b/src/lib/libcrypto/objects/obj_xref.c index 94dd6293dd..3e8730d1c6 100644 --- a/src/lib/libcrypto/objects/obj_xref.c +++ b/src/lib/libcrypto/objects/obj_xref.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: obj_xref.c,v 1.7 2014/06/12 15:49:30 deraadt Exp $ */ | 1 | /* $OpenBSD: obj_xref.c,v 1.8 2017/01/21 04:44:43 jsing 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 | */ |
@@ -68,8 +68,24 @@ sig_cmp(const nid_triple *a, const nid_triple *b) | |||
68 | return a->sign_id - b->sign_id; | 68 | return a->sign_id - b->sign_id; |
69 | } | 69 | } |
70 | 70 | ||
71 | DECLARE_OBJ_BSEARCH_CMP_FN(nid_triple, nid_triple, sig); | 71 | static int sig_cmp_BSEARCH_CMP_FN(const void *, const void *); |
72 | IMPLEMENT_OBJ_BSEARCH_CMP_FN(nid_triple, nid_triple, sig); | 72 | static int sig_cmp(nid_triple const *, nid_triple const *); |
73 | static nid_triple *OBJ_bsearch_sig(nid_triple *key, nid_triple const *base, int num); | ||
74 | |||
75 | static int | ||
76 | sig_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) | ||
77 | { | ||
78 | nid_triple const *a = a_; | ||
79 | nid_triple const *b = b_; | ||
80 | return sig_cmp(a, b); | ||
81 | } | ||
82 | |||
83 | static nid_triple * | ||
84 | OBJ_bsearch_sig(nid_triple *key, nid_triple const *base, int num) | ||
85 | { | ||
86 | return (nid_triple *)OBJ_bsearch_(key, base, num, sizeof(nid_triple), | ||
87 | sig_cmp_BSEARCH_CMP_FN); | ||
88 | } | ||
73 | 89 | ||
74 | static int | 90 | static int |
75 | sig_sk_cmp(const nid_triple * const *a, const nid_triple * const *b) | 91 | sig_sk_cmp(const nid_triple * const *a, const nid_triple * const *b) |
@@ -77,7 +93,9 @@ sig_sk_cmp(const nid_triple * const *a, const nid_triple * const *b) | |||
77 | return (*a)->sign_id - (*b)->sign_id; | 93 | return (*a)->sign_id - (*b)->sign_id; |
78 | } | 94 | } |
79 | 95 | ||
80 | DECLARE_OBJ_BSEARCH_CMP_FN(const nid_triple *, const nid_triple *, sigx); | 96 | static int sigx_cmp_BSEARCH_CMP_FN(const void *, const void *); |
97 | static int sigx_cmp(const nid_triple * const *, const nid_triple * const *); | ||
98 | static const nid_triple * *OBJ_bsearch_sigx(const nid_triple * *key, const nid_triple * const *base, int num); | ||
81 | 99 | ||
82 | static int | 100 | static int |
83 | sigx_cmp(const nid_triple * const *a, const nid_triple * const *b) | 101 | sigx_cmp(const nid_triple * const *a, const nid_triple * const *b) |
@@ -90,7 +108,21 @@ sigx_cmp(const nid_triple * const *a, const nid_triple * const *b) | |||
90 | return (*a)->pkey_id - (*b)->pkey_id; | 108 | return (*a)->pkey_id - (*b)->pkey_id; |
91 | } | 109 | } |
92 | 110 | ||
93 | IMPLEMENT_OBJ_BSEARCH_CMP_FN(const nid_triple *, const nid_triple *, sigx); | 111 | |
112 | static int | ||
113 | sigx_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) | ||
114 | { | ||
115 | const nid_triple * const *a = a_; | ||
116 | const nid_triple * const *b = b_; | ||
117 | return sigx_cmp(a, b); | ||
118 | } | ||
119 | |||
120 | static const nid_triple * * | ||
121 | OBJ_bsearch_sigx(const nid_triple * *key, const nid_triple * const *base, int num) | ||
122 | { | ||
123 | return (const nid_triple * *)OBJ_bsearch_(key, base, num, sizeof(const nid_triple *), | ||
124 | sigx_cmp_BSEARCH_CMP_FN); | ||
125 | } | ||
94 | 126 | ||
95 | int | 127 | int |
96 | OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid) | 128 | OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid) |