OpenCoverage

names.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/evp/names.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: names.c,v 1.14 2018/03/17 16:20:01 beck Exp $ */-
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)-
3 * All rights reserved.-
4 *-
5 * This package is an SSL implementation written-
6 * by Eric Young (eay@cryptsoft.com).-
7 * The implementation was written so as to conform with Netscapes SSL.-
8 *-
9 * This library is free for commercial and non-commercial use as long as-
10 * the following conditions are aheared to. The following conditions-
11 * apply to all code found in this distribution, be it the RC4, RSA,-
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation-
13 * included with this distribution is covered by the same copyright terms-
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).-
15 *-
16 * Copyright remains Eric Young's, and as such any Copyright notices in-
17 * the code are not to be removed.-
18 * If this package is used in a product, Eric Young should be given attribution-
19 * as the author of the parts of the library used.-
20 * This can be in the form of a textual message at program startup or-
21 * in documentation (online or textual) provided with the package.-
22 *-
23 * Redistribution and use in source and binary forms, with or without-
24 * modification, are permitted provided that the following conditions-
25 * are met:-
26 * 1. Redistributions of source code must retain the copyright-
27 * notice, this list of conditions and the following disclaimer.-
28 * 2. Redistributions in binary form must reproduce the above copyright-
29 * notice, this list of conditions and the following disclaimer in the-
30 * documentation and/or other materials provided with the distribution.-
31 * 3. All advertising materials mentioning features or use of this software-
32 * must display the following acknowledgement:-
33 * "This product includes cryptographic software written by-
34 * Eric Young (eay@cryptsoft.com)"-
35 * The word 'cryptographic' can be left out if the rouines from the library-
36 * being used are not cryptographic related :-).-
37 * 4. If you include any Windows specific code (or a derivative thereof) from-
38 * the apps directory (application code) you must include an acknowledgement:-
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"-
40 *-
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND-
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE-
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE-
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL-
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS-
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT-
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY-
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF-
51 * SUCH DAMAGE.-
52 *-
53 * The licence and distribution terms for any publically available version or-
54 * derivative of this code cannot be changed. i.e. this code cannot simply be-
55 * copied and put under another distribution licence-
56 * [including the GNU Public Licence.]-
57 */-
58-
59#include <stdio.h>-
60-
61#include <openssl/evp.h>-
62#include <openssl/objects.h>-
63#include <openssl/x509.h>-
64-
65int-
66EVP_add_cipher(const EVP_CIPHER *c)-
67{-
68 int r;-
69-
70 if (c == NULL)
c == ((void *)0)Description
TRUEevaluated 1250 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
FALSEevaluated 30107 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
1250-30107
71 return 0;
executed 1250 times by 33 tests: return 0;
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
1250
72-
73 r = OBJ_NAME_add(OBJ_nid2sn(c->nid), OBJ_NAME_TYPE_CIPHER_METH,-
74 (const char *)c);-
75 if (r == 0)
r == 0Description
TRUEnever evaluated
FALSEevaluated 30107 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
0-30107
76 return (0);
never executed: return (0);
0
77 check_defer(c->nid);-
78 r = OBJ_NAME_add(OBJ_nid2ln(c->nid), OBJ_NAME_TYPE_CIPHER_METH,-
79 (const char *)c);-
80 return (r);
executed 30107 times by 33 tests: return (r);
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
30107
81}-
82-
83int-
84EVP_add_digest(const EVP_MD *md)-
85{-
86 int r;-
87 const char *name;-
88-
89 name = OBJ_nid2sn(md->type);-
90 r = OBJ_NAME_add(name, OBJ_NAME_TYPE_MD_METH, (const char *)md);-
91 if (r == 0)
r == 0Description
TRUEnever evaluated
FALSEevaluated 8960 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
0-8960
92 return (0);
never executed: return (0);
0
93 check_defer(md->type);-
94 r = OBJ_NAME_add(OBJ_nid2ln(md->type), OBJ_NAME_TYPE_MD_METH,-
95 (const char *)md);-
96 if (r == 0)
r == 0Description
TRUEnever evaluated
FALSEevaluated 8960 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
0-8960
97 return (0);
never executed: return (0);
0
98-
99 if (md->pkey_type && md->type != md->pkey_type) {
md->pkey_typeDescription
TRUEevaluated 6168 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
FALSEevaluated 2792 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
md->type != md->pkey_typeDescription
TRUEevaluated 4626 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
FALSEevaluated 1542 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
1542-6168
100 r = OBJ_NAME_add(OBJ_nid2sn(md->pkey_type),-
101 OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS, name);-
102 if (r == 0)
r == 0Description
TRUEnever evaluated
FALSEevaluated 4626 times by 33 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
0-4626
103 return (0);
never executed: return (0);
0
104 check_defer(md->pkey_type);-
105 r = OBJ_NAME_add(OBJ_nid2ln(md->pkey_type),-
106 OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS, name);-
107 }
executed 4626 times by 33 tests: end of block
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
4626
108 return (r);
executed 8960 times by 33 tests: return (r);
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • hkdftest
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rc4test
  • rsa_test
  • ...
8960
109}-
110-
111const EVP_CIPHER *-
112EVP_get_cipherbyname(const char *name)-
113{-
114 const EVP_CIPHER *cp;-
115-
116 if (!OPENSSL_init_crypto(0, NULL))
!OPENSSL_init_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2819 times by 17 tests
Evaluated by:
  • asn1test
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • evptest
  • gost2814789t
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssl_versions
  • ssltest
  • tls_ext_alpn
  • tls_prf
  • tlsexttest
  • tlstest
  • verifytest
0-2819
117 return NULL;
never executed: return ((void *)0) ;
0
118-
119 cp = (const EVP_CIPHER *)OBJ_NAME_get(name, OBJ_NAME_TYPE_CIPHER_METH);-
120 return (cp);
executed 2819 times by 17 tests: return (cp);
Executed by:
  • asn1test
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • evptest
  • gost2814789t
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssl_versions
  • ssltest
  • tls_ext_alpn
  • tls_prf
  • tlsexttest
  • tlstest
  • verifytest
2819
121}-
122-
123const EVP_MD *-
124EVP_get_digestbyname(const char *name)-
125{-
126 const EVP_MD *cp;-
127-
128 if (!OPENSSL_init_crypto(0, NULL))
!OPENSSL_init_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2517 times by 18 tests
Evaluated by:
  • asn1test
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • evptest
  • gost2814789t
  • libcrypto.so.44.0.1
  • pbkdf2
  • pkcs7test
  • servertest
  • ssl_versions
  • ssltest
  • tls_ext_alpn
  • tls_prf
  • tlsexttest
  • tlstest
  • verifytest
0-2517
129 return NULL;
never executed: return ((void *)0) ;
0
130-
131 cp = (const EVP_MD *)OBJ_NAME_get(name, OBJ_NAME_TYPE_MD_METH);-
132 return (cp);
executed 2517 times by 18 tests: return (cp);
Executed by:
  • asn1test
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • evptest
  • gost2814789t
  • libcrypto.so.44.0.1
  • pbkdf2
  • pkcs7test
  • servertest
  • ssl_versions
  • ssltest
  • tls_ext_alpn
  • tls_prf
  • tlsexttest
  • tlstest
  • verifytest
2517
133}-
134-
135void-
136EVP_cleanup(void)-
137{-
138 OBJ_NAME_cleanup(OBJ_NAME_TYPE_CIPHER_METH);-
139 OBJ_NAME_cleanup(OBJ_NAME_TYPE_MD_METH);-
140 /* The above calls will only clean out the contents of the name-
141 hash table, but not the hash table itself. The following line-
142 does that part. -- Richard Levitte */-
143 OBJ_NAME_cleanup(-1);-
144-
145 EVP_PBE_cleanup();-
146 if (obj_cleanup_defer == 2) {
obj_cleanup_defer == 2Description
TRUEnever evaluated
FALSEevaluated 263 times by 4 tests
Evaluated by:
  • evptest
  • libcrypto.so.44.0.1
  • pbkdf2
  • ssltest
0-263
147 obj_cleanup_defer = 0;-
148 OBJ_cleanup();-
149 }
never executed: end of block
0
150 OBJ_sigid_free();-
151}
executed 263 times by 4 tests: end of block
Executed by:
  • evptest
  • libcrypto.so.44.0.1
  • pbkdf2
  • ssltest
263
152-
153struct doall_cipher {-
154 void *arg;-
155 void (*fn)(const EVP_CIPHER *ciph, const char *from, const char *to,-
156 void *arg);-
157};-
158-
159static void-
160do_all_cipher_fn(const OBJ_NAME *nm, void *arg)-
161{-
162 struct doall_cipher *dc = arg;-
163-
164 if (nm->alias)
nm->aliasDescription
TRUEnever evaluated
FALSEnever evaluated
0
165 dc->fn(NULL, nm->name, nm->data, dc->arg);
never executed: dc->fn( ((void *)0) , nm->name, nm->data, dc->arg);
0
166 else-
167 dc->fn((const EVP_CIPHER *)nm->data, nm->name, NULL, dc->arg);
never executed: dc->fn((const EVP_CIPHER *)nm->data, nm->name, ((void *)0) , dc->arg);
0
168}-
169-
170void-
171EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *ciph, const char *from,-
172 const char *to, void *x), void *arg)-
173{-
174 struct doall_cipher dc;-
175-
176 /* Prayer and clean living lets you ignore errors, OpenSSL style */-
177 (void) OPENSSL_init_crypto(0, NULL);-
178-
179 dc.fn = fn;-
180 dc.arg = arg;-
181 OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH, do_all_cipher_fn, &dc);-
182}
never executed: end of block
0
183-
184void-
185EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *ciph, const char *from,-
186 const char *to, void *x), void *arg)-
187{-
188 struct doall_cipher dc;-
189-
190 /* Prayer and clean living lets you ignore errors, OpenSSL style */-
191 (void) OPENSSL_init_crypto(0, NULL);-
192-
193 dc.fn = fn;-
194 dc.arg = arg;-
195 OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH,-
196 do_all_cipher_fn, &dc);-
197}
never executed: end of block
0
198-
199struct doall_md {-
200 void *arg;-
201 void (*fn)(const EVP_MD *ciph, const char *from, const char *to,-
202 void *arg);-
203};-
204-
205static void-
206do_all_md_fn(const OBJ_NAME *nm, void *arg)-
207{-
208 struct doall_md *dc = arg;-
209-
210 if (nm->alias)
nm->aliasDescription
TRUEnever evaluated
FALSEnever evaluated
0
211 dc->fn(NULL, nm->name, nm->data, dc->arg);
never executed: dc->fn( ((void *)0) , nm->name, nm->data, dc->arg);
0
212 else-
213 dc->fn((const EVP_MD *)nm->data, nm->name, NULL, dc->arg);
never executed: dc->fn((const EVP_MD *)nm->data, nm->name, ((void *)0) , dc->arg);
0
214}-
215-
216void-
217EVP_MD_do_all(void (*fn)(const EVP_MD *md, const char *from, const char *to,-
218 void *x), void *arg)-
219{-
220 struct doall_md dc;-
221-
222 /* Prayer and clean living lets you ignore errors, OpenSSL style */-
223 (void) OPENSSL_init_crypto(0, NULL);-
224-
225 dc.fn = fn;-
226 dc.arg = arg;-
227 OBJ_NAME_do_all(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);-
228}
never executed: end of block
0
229-
230void-
231EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *md,-
232 const char *from, const char *to, void *x), void *arg)-
233{-
234 struct doall_md dc;-
235-
236 /* Prayer and clean living lets you ignore errors, OpenSSL style */-
237 (void) OPENSSL_init_crypto(0, NULL);-
238-
239 dc.fn = fn;-
240 dc.arg = arg;-
241 OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);-
242}
never executed: end of block
0
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2