OpenCoverage

pem_lib.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pem/pem_lib.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: pem_lib.c,v 1.48 2018/08/24 19:48:39 tb 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 <ctype.h>-
60#include <stdio.h>-
61#include <stdlib.h>-
62#include <string.h>-
63-
64#include <openssl/opensslconf.h>-
65-
66#include <openssl/buffer.h>-
67#include <openssl/err.h>-
68#include <openssl/evp.h>-
69#include <openssl/objects.h>-
70#include <openssl/pem.h>-
71#include <openssl/pkcs12.h>-
72#include <openssl/x509.h>-
73-
74#ifndef OPENSSL_NO_DES-
75#include <openssl/des.h>-
76#endif-
77#ifndef OPENSSL_NO_ENGINE-
78#include <openssl/engine.h>-
79#endif-
80-
81#include "asn1_locl.h"-
82-
83#define MIN_LENGTH 4-
84-
85static int load_iv(char **fromp, unsigned char *to, int num);-
86static int check_pem(const char *nm, const char *name);-
87int pem_check_suffix(const char *pem_str, const char *suffix);-
88-
89/* XXX LSSL ABI XXX return value and `num' ought to be size_t */-
90int-
91PEM_def_callback(char *buf, int num, int w, void *key)-
92{-
93 size_t l;-
94 int i;-
95 const char *prompt;-
96-
97 if (num < 0)
num < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
98 return -1;
never executed: return -1;
0
99-
100 if (key) {
keyDescription
TRUEnever evaluated
FALSEnever evaluated
0
101 l = strlen(key);-
102 if (l > (size_t)num)
l > (size_t)numDescription
TRUEnever evaluated
FALSEnever evaluated
0
103 l = (size_t)num;
never executed: l = (size_t)num;
0
104 memcpy(buf, key, l);-
105 return (int)l;
never executed: return (int)l;
0
106 }-
107-
108 prompt = EVP_get_pw_prompt();-
109 if (prompt == NULL)
prompt == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
110 prompt = "Enter PEM pass phrase:";
never executed: prompt = "Enter PEM pass phrase:";
0
111-
112 for (;;) {-
113 i = EVP_read_pw_string_min(buf, MIN_LENGTH, num, prompt, w);-
114 if (i != 0) {
i != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
115 PEMerror(PEM_R_PROBLEMS_GETTING_PASSWORD);-
116 memset(buf, 0, num);-
117 return (-1);
never executed: return (-1);
0
118 }-
119 l = strlen(buf);-
120 if (l < MIN_LENGTH) {
l < 4Description
TRUEnever evaluated
FALSEnever evaluated
0
121 fprintf(stderr, "phrase is too short, "-
122 "needs to be at least %zu chars\n",-
123 (size_t)MIN_LENGTH);-
124 } else
never executed: end of block
0
125 break;
never executed: break;
0
126 }-
127 return (int)l;
never executed: return (int)l;
0
128}-
129-
130void-
131PEM_proc_type(char *buf, int type)-
132{-
133 const char *str;-
134-
135 if (type == PEM_TYPE_ENCRYPTED)
type == 10Description
TRUEnever evaluated
FALSEnever evaluated
0
136 str = "ENCRYPTED";
never executed: str = "ENCRYPTED";
0
137 else if (type == PEM_TYPE_MIC_CLEAR)
type == 30Description
TRUEnever evaluated
FALSEnever evaluated
0
138 str = "MIC-CLEAR";
never executed: str = "MIC-CLEAR";
0
139 else if (type == PEM_TYPE_MIC_ONLY)
type == 20Description
TRUEnever evaluated
FALSEnever evaluated
0
140 str = "MIC-ONLY";
never executed: str = "MIC-ONLY";
0
141 else-
142 str = "BAD-TYPE";
never executed: str = "BAD-TYPE";
0
143-
144 strlcat(buf, "Proc-Type: 4,", PEM_BUFSIZE);-
145 strlcat(buf, str, PEM_BUFSIZE);-
146 strlcat(buf, "\n", PEM_BUFSIZE);-
147}
never executed: end of block
0
148-
149void-
150PEM_dek_info(char *buf, const char *type, int len, char *str)-
151{-
152 static const unsigned char map[17] = "0123456789ABCDEF";-
153 long i;-
154 int j;-
155-
156 strlcat(buf, "DEK-Info: ", PEM_BUFSIZE);-
157 strlcat(buf, type, PEM_BUFSIZE);-
158 strlcat(buf, ",", PEM_BUFSIZE);-
159 j = strlen(buf);-
160 if (j + (len * 2) + 1 > PEM_BUFSIZE)
j + (len * 2) + 1 > 1024Description
TRUEnever evaluated
FALSEnever evaluated
0
161 return;
never executed: return;
0
162 for (i = 0; i < len; i++) {
i < lenDescription
TRUEnever evaluated
FALSEnever evaluated
0
163 buf[j + i * 2] = map[(str[i] >> 4) & 0x0f];-
164 buf[j + i * 2 + 1] = map[(str[i]) & 0x0f];-
165 }
never executed: end of block
0
166 buf[j + i * 2] = '\n';-
167 buf[j + i * 2 + 1] = '\0';-
168}
never executed: end of block
0
169-
170void *-
171PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,-
172 pem_password_cb *cb, void *u)-
173{-
174 BIO *b;-
175 void *ret;-
176-
177 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
178 PEMerror(ERR_R_BUF_LIB);-
179 return (0);
never executed: return (0);
0
180 }-
181 BIO_set_fp(b, fp, BIO_NOCLOSE);-
182 ret = PEM_ASN1_read_bio(d2i, name, b, x, cb, u);-
183 BIO_free(b);-
184 return (ret);
never executed: return (ret);
0
185}-
186-
187static int-
188check_pem(const char *nm, const char *name)-
189{-
190 /* Normal matching nm and name */-
191 if (!strcmp(nm, name))
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_... name )))); })Description
TRUEevaluated 68 times by 6 tests
Evaluated by:
  • asn1test
  • keypairtest
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 141 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-141
192 return 1;
executed 68 times by 6 tests: return 1;
Executed by:
  • asn1test
  • keypairtest
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
68
193-
194 /* Make PEM_STRING_EVP_PKEY match any private key */-
195-
196 if (!strcmp(name, PEM_STRING_EVP_PKEY)) {
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ANY PRIVATE KEY" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_... KEY" )))); })Description
TRUEevaluated 128 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 13 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-128
197 int slen;-
198 const EVP_PKEY_ASN1_METHOD *ameth;-
199 if (!strcmp(nm, PEM_STRING_PKCS8))
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ENCRYPTED PRIVATE KEY" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_... KEY" )))); })Description
TRUEnever evaluated
FALSEevaluated 128 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-128
200 return 1;
never executed: return 1;
0
201 if (!strcmp(nm, PEM_STRING_PKCS8INF))
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "PRIVATE KEY" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_... KEY" )))); })Description
TRUEnever evaluated
FALSEevaluated 128 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-128
202 return 1;
never executed: return 1;
0
203 slen = pem_check_suffix(nm, "PRIVATE KEY");-
204 if (slen > 0) {
slen > 0Description
TRUEevaluated 65 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 63 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
63-65
205 /* NB: ENGINE implementations wont contain-
206 * a deprecated old private key decode function-
207 * so don't look for them.-
208 */-
209 ameth = EVP_PKEY_asn1_find_str(NULL, nm, slen);-
210 if (ameth && ameth->old_priv_decode)
amethDescription
TRUEevaluated 65 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
ameth->old_priv_decodeDescription
TRUEevaluated 65 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
0-65
211 return 1;
executed 65 times by 5 tests: return 1;
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
65
212 }
never executed: end of block
0
213 return 0;
executed 63 times by 3 tests: return 0;
Executed by:
  • servertest
  • ssltest
  • tlstest
63
214 }-
215-
216 if (!strcmp(name, PEM_STRING_PARAMETERS)) {
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "PARAMETERS" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...TERS" )))); })Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
FALSEevaluated 12 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-12
217 int slen;-
218 const EVP_PKEY_ASN1_METHOD *ameth;-
219 slen = pem_check_suffix(nm, "PARAMETERS");-
220 if (slen > 0) {
slen > 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
FALSEnever evaluated
0-1
221 ENGINE *e;-
222 ameth = EVP_PKEY_asn1_find_str(&e, nm, slen);-
223 if (ameth) {
amethDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
FALSEnever evaluated
0-1
224 int r;-
225 if (ameth->param_decode)
ameth->param_decodeDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
FALSEnever evaluated
0-1
226 r = 1;
executed 1 time by 1 test: r = 1;
Executed by:
  • libcrypto.so.44.0.1
1
227 else-
228 r = 0;
never executed: r = 0;
0
229#ifndef OPENSSL_NO_ENGINE-
230 ENGINE_finish(e);-
231#endif-
232 return r;
executed 1 time by 1 test: return r;
Executed by:
  • libcrypto.so.44.0.1
1
233 }-
234 }
never executed: end of block
0
235 return 0;
never executed: return 0;
0
236 }-
237-
238 /* Permit older strings */-
239-
240 if (!strcmp(nm, PEM_STRING_X509_OLD) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "X509 CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEnever evaluated
FALSEevaluated 12 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-12
241 !strcmp(name, PEM_STRING_X509))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
242 return 1;
never executed: return 1;
0
243-
244 if (!strcmp(nm, PEM_STRING_X509_REQ_OLD) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "NEW CERTIFICATE REQUEST" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...UEST" )))); })Description
TRUEnever evaluated
FALSEevaluated 12 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-12
245 !strcmp(name, PEM_STRING_X509_REQ))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "CERTIFICATE REQUEST" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...UEST" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
246 return 1;
never executed: return 1;
0
247-
248 /* Allow normal certs to be read as trusted certs */-
249 if (!strcmp(nm, PEM_STRING_X509) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEevaluated 8 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
FALSEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-8
250 !strcmp(name, PEM_STRING_X509_TRUSTED))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "TRUSTED CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEevaluated 8 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-8
251 return 1;
executed 8 times by 3 tests: return 1;
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
8
252-
253 if (!strcmp(nm, PEM_STRING_X509_OLD) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "X509 CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-4
254 !strcmp(name, PEM_STRING_X509_TRUSTED))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "TRUSTED CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
255 return 1;
never executed: return 1;
0
256-
257 /* Some CAs use PKCS#7 with CERTIFICATE headers */-
258 if (!strcmp(nm, PEM_STRING_X509) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "CERTIFICATE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...CATE" )))); })Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-4
259 !strcmp(name, PEM_STRING_PKCS7))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "PKCS7" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...KCS7" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
260 return 1;
never executed: return 1;
0
261-
262 if (!strcmp(nm, PEM_STRING_PKCS7_SIGNED) &&
never executed: __result = (((const unsigned char *) (const char *) ( nm ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "PKCS #7 SIGNED DATA" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...DATA" )))); })Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-4
263 !strcmp(name, PEM_STRING_PKCS7))
never executed: __result = (((const unsigned char *) (const char *) ( name ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "PKCS7" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
! __extension_...KCS7" )))); })Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
264 return 1;
never executed: return 1;
0
265-
266-
267 return 0;
executed 4 times by 1 test: return 0;
Executed by:
  • tlstest
4
268}-
269-
270int-
271PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,-
272 const char *name, BIO *bp, pem_password_cb *cb, void *u)-
273{-
274 EVP_CIPHER_INFO cipher;-
275 char *nm = NULL, *header = NULL;-
276 unsigned char *data = NULL;-
277 long len;-
278 int ret = 0;-
279-
280 for (;;) {-
281 if (!PEM_read_bio(bp, &nm, &header, &data, &len)) {
!PEM_read_bio(..., &data, &len)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
FALSEevaluated 209 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
4-209
282 if (ERR_GET_REASON(ERR_peek_error()) ==
(int)((ERR_pee...0xfffL) == 108Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
FALSEnever evaluated
0-4
283 PEM_R_NO_START_LINE)
(int)((ERR_pee...0xfffL) == 108Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • tlstest
FALSEnever evaluated
0-4
284 ERR_asprintf_error_data("Expecting: %s", name);
executed 4 times by 1 test: ERR_asprintf_error_data("Expecting: %s", name);
Executed by:
  • tlstest
4
285 return 0;
executed 4 times by 1 test: return 0;
Executed by:
  • tlstest
4
286 }-
287 if (check_pem(nm, name))
check_pem(nm, name)Description
TRUEevaluated 142 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 67 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
67-142
288 break;
executed 142 times by 7 tests: break;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
142
289 free(nm);-
290 free(header);-
291 free(data);-
292 }
executed 67 times by 3 tests: end of block
Executed by:
  • servertest
  • ssltest
  • tlstest
67
293 if (!PEM_get_EVP_CIPHER_INFO(header, &cipher))
!PEM_get_EVP_C...ader, &cipher)Description
TRUEnever evaluated
FALSEevaluated 142 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-142
294 goto err;
never executed: goto err;
0
295 if (!PEM_do_header(&cipher, data, &len, cb, u))
!PEM_do_header..., &len, cb, u)Description
TRUEnever evaluated
FALSEevaluated 142 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-142
296 goto err;
never executed: goto err;
0
297-
298 *pdata = data;-
299 *plen = len;-
300-
301 if (pnm)
pnmDescription
TRUEevaluated 66 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 76 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
66-76
302 *pnm = nm;
executed 66 times by 5 tests: *pnm = nm;
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
66
303-
304 ret = 1;-
305-
306err:
code before this statement executed 142 times by 7 tests: err:
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
142
307 if (!ret || !pnm)
!retDescription
TRUEnever evaluated
FALSEevaluated 142 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
!pnmDescription
TRUEevaluated 76 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 66 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-142
308 free(nm);
executed 76 times by 7 tests: free(nm);
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
76
309 free(header);-
310 if (!ret)
!retDescription
TRUEnever evaluated
FALSEevaluated 142 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-142
311 free(data);
never executed: free(data);
0
312 return ret;
executed 142 times by 7 tests: return ret;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
142
313}-
314-
315int-
316PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, void *x,-
317 const EVP_CIPHER *enc, unsigned char *kstr, int klen,-
318 pem_password_cb *callback, void *u)-
319{-
320 BIO *b;-
321 int ret;-
322-
323 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
324 PEMerror(ERR_R_BUF_LIB);-
325 return (0);
never executed: return (0);
0
326 }-
327 BIO_set_fp(b, fp, BIO_NOCLOSE);-
328 ret = PEM_ASN1_write_bio(i2d, name, b, x, enc, kstr, klen, callback, u);-
329 BIO_free(b);-
330 return (ret);
never executed: return (ret);
0
331}-
332-
333int-
334PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x,-
335 const EVP_CIPHER *enc, unsigned char *kstr, int klen,-
336 pem_password_cb *callback, void *u)-
337{-
338 EVP_CIPHER_CTX ctx;-
339 int dsize = 0, i, j, ret = 0;-
340 unsigned char *p, *data = NULL;-
341 const char *objstr = NULL;-
342 char buf[PEM_BUFSIZE];-
343 unsigned char key[EVP_MAX_KEY_LENGTH];-
344 unsigned char iv[EVP_MAX_IV_LENGTH];-
345-
346 if (enc != NULL) {
enc != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
347 objstr = OBJ_nid2sn(EVP_CIPHER_nid(enc));-
348 if (objstr == NULL) {
objstr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
349 PEMerror(PEM_R_UNSUPPORTED_CIPHER);-
350 goto err;
never executed: goto err;
0
351 }-
352 }
never executed: end of block
0
353-
354 if ((dsize = i2d(x, NULL)) < 0) {
(dsize = i2d(x...id *)0) )) < 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
355 PEMerror(ERR_R_ASN1_LIB);-
356 dsize = 0;-
357 goto err;
never executed: goto err;
0
358 }-
359 /* dzise + 8 bytes are needed */-
360 /* actually it needs the cipher block size extra... */-
361 data = malloc(dsize + 20);-
362 if (data == NULL) {
data == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
363 PEMerror(ERR_R_MALLOC_FAILURE);-
364 goto err;
never executed: goto err;
0
365 }-
366 p = data;-
367 i = i2d(x, &p);-
368-
369 if (enc != NULL) {
enc != ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
370 if (kstr == NULL) {
kstr == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
371 if (callback == NULL)
callback == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
372 klen = PEM_def_callback(buf, PEM_BUFSIZE, 1, u);
never executed: klen = PEM_def_callback(buf, 1024, 1, u);
0
373 else-
374 klen = (*callback)(buf, PEM_BUFSIZE, 1, u);
never executed: klen = (*callback)(buf, 1024, 1, u);
0
375 if (klen <= 0) {
klen <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
376 PEMerror(PEM_R_READ_KEY);-
377 goto err;
never executed: goto err;
0
378 }-
379 kstr = (unsigned char *)buf;-
380 }
never executed: end of block
0
381 if ((size_t)enc->iv_len > sizeof(iv)) {
(size_t)enc->i...n > sizeof(iv)Description
TRUEnever evaluated
FALSEnever evaluated
0
382 PEMerror(EVP_R_IV_TOO_LARGE);-
383 goto err;
never executed: goto err;
0
384 }-
385 arc4random_buf(iv, enc->iv_len); /* Generate a salt */-
386 /* The 'iv' is used as the iv and as a salt. It is-
387 * NOT taken from the BytesToKey function */-
388 if (!EVP_BytesToKey(enc, EVP_md5(), iv, kstr, klen, 1,
!EVP_BytesToKe... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
389 key, NULL))
!EVP_BytesToKe... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
390 goto err;
never executed: goto err;
0
391-
392 if (kstr == (unsigned char *)buf)
kstr == (unsigned char *)bufDescription
TRUEnever evaluated
FALSEnever evaluated
0
393 explicit_bzero(buf, PEM_BUFSIZE);
never executed: explicit_bzero(buf, 1024);
0
394-
395 if (strlen(objstr) + 23 + 2 * enc->iv_len + 13 > sizeof buf) {
strlen(objstr)...3 > sizeof bufDescription
TRUEnever evaluated
FALSEnever evaluated
0
396 PEMerror(ASN1_R_BUFFER_TOO_SMALL);-
397 goto err;
never executed: goto err;
0
398 }-
399-
400 buf[0] = '\0';-
401 PEM_proc_type(buf, PEM_TYPE_ENCRYPTED);-
402 PEM_dek_info(buf, objstr, enc->iv_len, (char *)iv);-
403 /* k=strlen(buf); */-
404-
405 EVP_CIPHER_CTX_init(&ctx);-
406 ret = 1;-
407 if (!EVP_EncryptInit_ex(&ctx, enc, NULL, key, iv) ||
!EVP_EncryptIn...)0) , key, iv)Description
TRUEnever evaluated
FALSEnever evaluated
0
408 !EVP_EncryptUpdate(&ctx, data, &j, data, i) ||
!EVP_EncryptUp..., &j, data, i)Description
TRUEnever evaluated
FALSEnever evaluated
0
409 !EVP_EncryptFinal_ex(&ctx, &(data[j]), &i))
!EVP_EncryptFi...(data[j]), &i)Description
TRUEnever evaluated
FALSEnever evaluated
0
410 ret = 0;
never executed: ret = 0;
0
411 EVP_CIPHER_CTX_cleanup(&ctx);-
412 if (ret == 0)
ret == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
413 goto err;
never executed: goto err;
0
414 i += j;-
415 } else {
never executed: end of block
0
416 ret = 1;-
417 buf[0] = '\0';-
418 }
executed 14 times by 3 tests: end of block
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
419 i = PEM_write_bio(bp, name, buf, data, i);-
420 if (i <= 0)
i <= 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
421 ret = 0;
never executed: ret = 0;
0
422err:
code before this statement executed 14 times by 3 tests: err:
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
423 explicit_bzero(key, sizeof(key));-
424 explicit_bzero(iv, sizeof(iv));-
425 explicit_bzero((char *)&ctx, sizeof(ctx));-
426 explicit_bzero(buf, PEM_BUFSIZE);-
427 freezero(data, (unsigned int)dsize);-
428 return (ret);
executed 14 times by 3 tests: return (ret);
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
429}-
430-
431int-
432PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,-
433 pem_password_cb *callback, void *u)-
434{-
435 int i, j, o, klen;-
436 long len;-
437 EVP_CIPHER_CTX ctx;-
438 unsigned char key[EVP_MAX_KEY_LENGTH];-
439 char buf[PEM_BUFSIZE];-
440-
441 len = *plen;-
442-
443 if (cipher->cipher == NULL)
cipher->cipher == ((void *)0)Description
TRUEevaluated 190 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
0-190
444 return (1);
executed 190 times by 7 tests: return (1);
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
190
445 if (callback == NULL)
callback == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
446 klen = PEM_def_callback(buf, PEM_BUFSIZE, 0, u);
never executed: klen = PEM_def_callback(buf, 1024, 0, u);
0
447 else-
448 klen = callback(buf, PEM_BUFSIZE, 0, u);
never executed: klen = callback(buf, 1024, 0, u);
0
449 if (klen <= 0) {
klen <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
450 PEMerror(PEM_R_BAD_PASSWORD_READ);-
451 return (0);
never executed: return (0);
0
452 }-
453 if (!EVP_BytesToKey(cipher->cipher, EVP_md5(), &(cipher->iv[0]),
!EVP_BytesToKe... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
454 (unsigned char *)buf, klen, 1, key, NULL))
!EVP_BytesToKe... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
455 return 0;
never executed: return 0;
0
456-
457 j = (int)len;-
458 EVP_CIPHER_CTX_init(&ctx);-
459 o = EVP_DecryptInit_ex(&ctx, cipher->cipher, NULL, key,-
460 &(cipher->iv[0]));-
461 if (o)
oDescription
TRUEnever evaluated
FALSEnever evaluated
0
462 o = EVP_DecryptUpdate(&ctx, data, &i, data, j);
never executed: o = EVP_DecryptUpdate(&ctx, data, &i, data, j);
0
463 if (o)
oDescription
TRUEnever evaluated
FALSEnever evaluated
0
464 o = EVP_DecryptFinal_ex(&ctx, &(data[i]), &j);
never executed: o = EVP_DecryptFinal_ex(&ctx, &(data[i]), &j);
0
465 EVP_CIPHER_CTX_cleanup(&ctx);-
466 explicit_bzero((char *)buf, sizeof(buf));-
467 explicit_bzero((char *)key, sizeof(key));-
468 if (!o) {
!oDescription
TRUEnever evaluated
FALSEnever evaluated
0
469 PEMerror(PEM_R_BAD_DECRYPT);-
470 return (0);
never executed: return (0);
0
471 }-
472 *plen = j + i;-
473 return (1);
never executed: return (1);
0
474}-
475-
476int-
477PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)-
478{-
479 const EVP_CIPHER *enc = NULL;-
480 char *p, c;-
481 char **header_pp = &header;-
482-
483 cipher->cipher = NULL;-
484 if ((header == NULL) || (*header == '\0') || (*header == '\n'))
(header == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 190 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
(*header == '\0')Description
TRUEevaluated 190 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
(*header == '\n')Description
TRUEnever evaluated
FALSEnever evaluated
0-190
485 return (1);
executed 190 times by 7 tests: return (1);
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
190
486 if (strncmp(header, "Proc-Type: ", 11) != 0) {
never executed: __result = (((const unsigned char *) (const char *) ( header ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "Proc-Type: " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__... , 11 ))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 11 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...t_p ( header )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( heade...ize_t) ( 11 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...Proc-Type: " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "Proc...ize_t) ( 11 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
487 PEMerror(PEM_R_NOT_PROC_TYPE);-
488 return (0);
never executed: return (0);
0
489 }-
490 header += 11;-
491 if (*header != '4')
*header != '4'Description
TRUEnever evaluated
FALSEnever evaluated
0
492 return (0);
never executed: return (0);
0
493 header++;-
494 if (*header != ',')
*header != ','Description
TRUEnever evaluated
FALSEnever evaluated
0
495 return (0);
never executed: return (0);
0
496 header++;-
497 if (strncmp(header, "ENCRYPTED", 9) != 0) {
never executed: __result = (((const unsigned char *) (const char *) ( header ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "ENCRYPTED" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__..." , 9 ))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 9 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...t_p ( header )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( heade...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... "ENCRYPTED" )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "ENCR...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
498 PEMerror(PEM_R_NOT_ENCRYPTED);-
499 return (0);
never executed: return (0);
0
500 }-
501 for (; (*header != '\n') && (*header != '\0'); header++)
(*header != '\n')Description
TRUEnever evaluated
FALSEnever evaluated
(*header != '\0')Description
TRUEnever evaluated
FALSEnever evaluated
0
502 ;
never executed: ;
0
503 if (*header == '\0') {
*header == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
504 PEMerror(PEM_R_SHORT_HEADER);-
505 return (0);
never executed: return (0);
0
506 }-
507 header++;-
508 if (strncmp(header, "DEK-Info: ", 10) != 0) {
never executed: __result = (((const unsigned char *) (const char *) ( header ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "DEK-Info: " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__... , 10 ))) != 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 10 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...t_p ( header )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( heade...ize_t) ( 10 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons..."DEK-Info: " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "DEK-...ize_t) ( 10 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
509 PEMerror(PEM_R_NOT_DEK_INFO);-
510 return (0);
never executed: return (0);
0
511 }-
512 header += 10;-
513-
514 p = header;-
515 for (;;) {-
516 c= *header;-
517 if (!( ((c >= 'A') && (c <= 'Z')) || (c == '-') ||
(c >= 'A')Description
TRUEnever evaluated
FALSEnever evaluated
(c <= 'Z')Description
TRUEnever evaluated
FALSEnever evaluated
(c == '-')Description
TRUEnever evaluated
FALSEnever evaluated
0
518 ((c >= '0') && (c <= '9'))))
(c >= '0')Description
TRUEnever evaluated
FALSEnever evaluated
(c <= '9')Description
TRUEnever evaluated
FALSEnever evaluated
0
519 break;
never executed: break;
0
520 header++;-
521 }
never executed: end of block
0
522 *header = '\0';-
523 cipher->cipher = enc = EVP_get_cipherbyname(p);-
524 *header = c;-
525 header++;-
526-
527 if (enc == NULL) {
enc == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
528 PEMerror(PEM_R_UNSUPPORTED_ENCRYPTION);-
529 return (0);
never executed: return (0);
0
530 }-
531 if (!load_iv(header_pp, &(cipher->iv[0]), enc->iv_len))
!load_iv(heade..., enc->iv_len)Description
TRUEnever evaluated
FALSEnever evaluated
0
532 return (0);
never executed: return (0);
0
533-
534 return (1);
never executed: return (1);
0
535}-
536-
537static int-
538load_iv(char **fromp, unsigned char *to, int num)-
539{-
540 int v, i;-
541 char *from;-
542-
543 from= *fromp;-
544 for (i = 0; i < num; i++)
i < numDescription
TRUEnever evaluated
FALSEnever evaluated
0
545 to[i] = 0;
never executed: to[i] = 0;
0
546 num *= 2;-
547 for (i = 0; i < num; i++) {
i < numDescription
TRUEnever evaluated
FALSEnever evaluated
0
548 if ((*from >= '0') && (*from <= '9'))
(*from >= '0')Description
TRUEnever evaluated
FALSEnever evaluated
(*from <= '9')Description
TRUEnever evaluated
FALSEnever evaluated
0
549 v = *from - '0';
never executed: v = *from - '0';
0
550 else if ((*from >= 'A') && (*from <= 'F'))
(*from >= 'A')Description
TRUEnever evaluated
FALSEnever evaluated
(*from <= 'F')Description
TRUEnever evaluated
FALSEnever evaluated
0
551 v = *from - 'A' + 10;
never executed: v = *from - 'A' + 10;
0
552 else if ((*from >= 'a') && (*from <= 'f'))
(*from >= 'a')Description
TRUEnever evaluated
FALSEnever evaluated
(*from <= 'f')Description
TRUEnever evaluated
FALSEnever evaluated
0
553 v = *from - 'a' + 10;
never executed: v = *from - 'a' + 10;
0
554 else {-
555 PEMerror(PEM_R_BAD_IV_CHARS);-
556 return (0);
never executed: return (0);
0
557 }-
558 from++;-
559 to[i / 2] |= v << (long)((!(i & 1)) * 4);-
560 }
never executed: end of block
0
561-
562 *fromp = from;-
563 return (1);
never executed: return (1);
0
564}-
565-
566int-
567PEM_write(FILE *fp, const char *name, const char *header,-
568 const unsigned char *data, long len)-
569{-
570 BIO *b;-
571 int ret;-
572-
573 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
574 PEMerror(ERR_R_BUF_LIB);-
575 return (0);
never executed: return (0);
0
576 }-
577 BIO_set_fp(b, fp, BIO_NOCLOSE);-
578 ret = PEM_write_bio(b, name, header, data, len);-
579 BIO_free(b);-
580 return (ret);
never executed: return (ret);
0
581}-
582-
583int-
584PEM_write_bio(BIO *bp, const char *name, const char *header,-
585 const unsigned char *data, long len)-
586{-
587 int nlen, n, i, j, outl;-
588 unsigned char *buf = NULL;-
589 EVP_ENCODE_CTX ctx;-
590 int reason = ERR_R_BUF_LIB;-
591-
592 EVP_EncodeInit(&ctx);-
593 nlen = strlen(name);-
594-
595 if ((BIO_write(bp, "-----BEGIN ", 11) != 11) ||
(BIO_write(bp,... ", 11) != 11)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
596 (BIO_write(bp, name, nlen) != nlen) ||
(BIO_write(bp,...nlen) != nlen)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
597 (BIO_write(bp, "-----\n", 6) != 6))
(BIO_write(bp,...-\n", 6) != 6)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
598 goto err;
never executed: goto err;
0
599-
600 i = strlen(header);-
601 if (i > 0) {
i > 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
602 if ((BIO_write(bp, header, i) != i) ||
(BIO_write(bp,...ader, i) != i)Description
TRUEnever evaluated
FALSEnever evaluated
0
603 (BIO_write(bp, "\n", 1) != 1))
(BIO_write(bp, "\n", 1) != 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
604 goto err;
never executed: goto err;
0
605 }
never executed: end of block
0
606-
607 buf = reallocarray(NULL, PEM_BUFSIZE, 8);-
608 if (buf == NULL) {
buf == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
609 reason = ERR_R_MALLOC_FAILURE;-
610 goto err;
never executed: goto err;
0
611 }-
612-
613 i = j = 0;-
614 while (len > 0) {
len > 0Description
TRUEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
615 n = (int)((len > (PEM_BUFSIZE * 5)) ? (PEM_BUFSIZE * 5) : len);
(len > (1024 * 5))Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
616 if (!EVP_EncodeUpdate(&ctx, buf, &outl, &(data[j]), n))
!EVP_EncodeUpd...&(data[j]), n)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
617 goto err;
never executed: goto err;
0
618 if ((outl) && (BIO_write(bp, (char *)buf, outl) != outl))
(outl)Description
TRUEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
FALSEnever evaluated
(BIO_write(bp,...outl) != outl)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
619 goto err;
never executed: goto err;
0
620 i += outl;-
621 len -= n;-
622 j += n;-
623 }
executed 14 times by 3 tests: end of block
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
624 EVP_EncodeFinal(&ctx, buf, &outl);-
625 if ((outl > 0) && (BIO_write(bp, (char *)buf, outl) != outl))
(outl > 0)Description
TRUEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
FALSEnever evaluated
(BIO_write(bp,...outl) != outl)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
626 goto err;
never executed: goto err;
0
627 freezero(buf, PEM_BUFSIZE * 8);-
628 buf = NULL;-
629 if ((BIO_write(bp, "-----END ", 9) != 9) ||
(BIO_write(bp,...ND ", 9) != 9)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
630 (BIO_write(bp, name, nlen) != nlen) ||
(BIO_write(bp,...nlen) != nlen)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
631 (BIO_write(bp, "-----\n", 6) != 6))
(BIO_write(bp,...-\n", 6) != 6)Description
TRUEnever evaluated
FALSEevaluated 14 times by 3 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
0-14
632 goto err;
never executed: goto err;
0
633 return (i + outl);
executed 14 times by 3 tests: return (i + outl);
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • tlstest
14
634-
635err:-
636 freezero(buf, PEM_BUFSIZE * 8);-
637 PEMerror(reason);-
638 return (0);
never executed: return (0);
0
639}-
640-
641int-
642PEM_read(FILE *fp, char **name, char **header, unsigned char **data, long *len)-
643{-
644 BIO *b;-
645 int ret;-
646-
647 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
648 PEMerror(ERR_R_BUF_LIB);-
649 return (0);
never executed: return (0);
0
650 }-
651 BIO_set_fp(b, fp, BIO_NOCLOSE);-
652 ret = PEM_read_bio(b, name, header, data, len);-
653 BIO_free(b);-
654 return (ret);
never executed: return (ret);
0
655}-
656-
657int-
658PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data,-
659 long *len)-
660{-
661 EVP_ENCODE_CTX ctx;-
662 int end = 0, i, k, bl = 0, hl = 0, nohead = 0;-
663 char buf[256];-
664 BUF_MEM *nameB;-
665 BUF_MEM *headerB;-
666 BUF_MEM *dataB, *tmpB;-
667-
668 nameB = BUF_MEM_new();-
669 headerB = BUF_MEM_new();-
670 dataB = BUF_MEM_new();-
671 if ((nameB == NULL) || (headerB == NULL) || (dataB == NULL)) {
(nameB == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 285 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
(headerB == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 285 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
(dataB == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 285 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-285
672 BUF_MEM_free(nameB);-
673 BUF_MEM_free(headerB);-
674 BUF_MEM_free(dataB);-
675 PEMerror(ERR_R_MALLOC_FAILURE);-
676 return (0);
never executed: return (0);
0
677 }-
678-
679 buf[254] = '\0';-
680 for (;;) {-
681 i = BIO_gets(bp, buf, 254);-
682-
683 if (i <= 0) {
i <= 0Description
TRUEevaluated 28 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
28-521
684 PEMerror(PEM_R_NO_START_LINE);-
685 goto err;
executed 28 times by 2 tests: goto err;
Executed by:
  • ssltest
  • tlstest
28
686 }-
687-
688 while ((i >= 0) && (buf[i] <= ' '))
(i >= 0)Description
TRUEevaluated 1565 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
(buf[i] <= ' ')Description
TRUEevaluated 1044 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-1565
689 i--;
executed 1044 times by 7 tests: i--;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
1044
690 buf[++i] = '\n';-
691 buf[++i] = '\0';-
692-
693 if (strncmp(buf, "-----BEGIN ", 11) == 0) {
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----BEGIN " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__... , 11 ))) == 0Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 264 times by 5 tests
Evaluated by:
  • keypairtest
  • libcrypto.so.44.0.1
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( 11 )Description
TRUEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
strlen ( buf )...ize_t) ( 11 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...-----BEGIN " )Description
TRUEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
strlen ( "----...ize_t) ( 11 ))Description
TRUEnever evaluated
FALSEevaluated 521 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-521
694 i = strlen(&(buf[11]));-
695-
696 if (strncmp(&(buf[11 + i - 6]), "-----\n", 6) != 0)
never executed: __result = (((const unsigned char *) (const char *) ( &(buf[11 + i - 6]) ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----\n" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__..." , 6 ))) != 0Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( 6 )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
__builtin_cons...11 + i - 6]) )Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
strlen ( &(buf...size_t) ( 6 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... ( "-----\n" )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
strlen ( "----...size_t) ( 6 ))Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-257
697 continue;
never executed: continue;
0
698 if (!BUF_MEM_grow(nameB, i + 9)) {
!BUF_MEM_grow(nameB, i + 9)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
699 PEMerror(ERR_R_MALLOC_FAILURE);-
700 goto err;
never executed: goto err;
0
701 }-
702 memcpy(nameB->data, &(buf[11]), i - 6);-
703 nameB->data[i - 6] = '\0';-
704 break;
executed 257 times by 7 tests: break;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
257
705 }-
706 }
executed 264 times by 5 tests: end of block
Executed by:
  • keypairtest
  • libcrypto.so.44.0.1
  • servertest
  • ssltest
  • tlstest
264
707 hl = 0;-
708 if (!BUF_MEM_grow(headerB, 256)) {
!BUF_MEM_grow(headerB, 256)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
709 PEMerror(ERR_R_MALLOC_FAILURE);-
710 goto err;
never executed: goto err;
0
711 }-
712 headerB->data[0] = '\0';-
713 for (;;) {-
714 i = BIO_gets(bp, buf, 254);-
715 if (i <= 0)
i <= 0Description
TRUEnever evaluated
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-5789
716 break;
never executed: break;
0
717-
718 while ((i >= 0) && (buf[i] <= ' '))
(i >= 0)Description
TRUEevaluated 17414 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
(buf[i] <= ' ')Description
TRUEevaluated 11625 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-17414
719 i--;
executed 11625 times by 7 tests: i--;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
11625
720 buf[++i] = '\n';-
721 buf[++i] = '\0';-
722-
723 if (buf[0] == '\n')
buf[0] == '\n'Description
TRUEnever evaluated
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-5789
724 break;
never executed: break;
0
725 if (!BUF_MEM_grow(headerB, hl + i + 9)) {
!BUF_MEM_grow(...B, hl + i + 9)Description
TRUEnever evaluated
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-5789
726 PEMerror(ERR_R_MALLOC_FAILURE);-
727 goto err;
never executed: goto err;
0
728 }-
729 if (strncmp(buf, "-----END ", 9) == 0) {
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----END " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__..." , 9 ))) == 0Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 5532 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( 9 )Description
TRUEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
strlen ( buf )...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... "-----END " )Description
TRUEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
strlen ( "----...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEevaluated 5789 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-5789
730 nohead = 1;-
731 break;
executed 257 times by 7 tests: break;
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
257
732 }-
733 memcpy(&(headerB->data[hl]), buf, i);-
734 headerB->data[hl + i] = '\0';-
735 hl += i;-
736 }
executed 5532 times by 7 tests: end of block
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
5532
737-
738 bl = 0;-
739 if (!BUF_MEM_grow(dataB, 1024)) {
!BUF_MEM_grow(dataB, 1024)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
740 PEMerror(ERR_R_MALLOC_FAILURE);-
741 goto err;
never executed: goto err;
0
742 }-
743 dataB->data[0] = '\0';-
744 if (!nohead) {
!noheadDescription
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
745 for (;;) {-
746 i = BIO_gets(bp, buf, 254);-
747 if (i <= 0)
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
748 break;
never executed: break;
0
749-
750 while ((i >= 0) && (buf[i] <= ' '))
(i >= 0)Description
TRUEnever evaluated
FALSEnever evaluated
(buf[i] <= ' ')Description
TRUEnever evaluated
FALSEnever evaluated
0
751 i--;
never executed: i--;
0
752 buf[++i] = '\n';-
753 buf[++i] = '\0';-
754-
755 if (i != 65)
i != 65Description
TRUEnever evaluated
FALSEnever evaluated
0
756 end = 1;
never executed: end = 1;
0
757 if (strncmp(buf, "-----END ", 9) == 0)
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----END " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__..." , 9 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 9 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( buf )...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... "-----END " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "----...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
758 break;
never executed: break;
0
759 if (i > 65)
i > 65Description
TRUEnever evaluated
FALSEnever evaluated
0
760 break;
never executed: break;
0
761 if (!BUF_MEM_grow_clean(dataB, i + bl + 9)) {
!BUF_MEM_grow_...B, i + bl + 9)Description
TRUEnever evaluated
FALSEnever evaluated
0
762 PEMerror(ERR_R_MALLOC_FAILURE);-
763 goto err;
never executed: goto err;
0
764 }-
765 memcpy(&(dataB->data[bl]), buf, i);-
766 dataB->data[bl + i] = '\0';-
767 bl += i;-
768 if (end) {
endDescription
TRUEnever evaluated
FALSEnever evaluated
0
769 buf[0] = '\0';-
770 i = BIO_gets(bp, buf, 254);-
771 if (i <= 0)
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
772 break;
never executed: break;
0
773-
774 while ((i >= 0) && (buf[i] <= ' '))
(i >= 0)Description
TRUEnever evaluated
FALSEnever evaluated
(buf[i] <= ' ')Description
TRUEnever evaluated
FALSEnever evaluated
0
775 i--;
never executed: i--;
0
776 buf[++i] = '\n';-
777 buf[++i] = '\0';-
778-
779 break;
never executed: break;
0
780 }-
781 }
never executed: end of block
0
782 } else {
never executed: end of block
0
783 tmpB = headerB;-
784 headerB = dataB;-
785 dataB = tmpB;-
786 bl = hl;-
787 }
executed 257 times by 7 tests: end of block
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
257
788 i = strlen(nameB->data);-
789 if ((strncmp(buf, "-----END ", 9) != 0) ||
never executed: __result = (((const unsigned char *) (const char *) ( buf ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----END " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( (__extension... , 9 ))) != 0)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( 9 )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
__builtin_constant_p ( buf )Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
strlen ( buf )...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... "-----END " )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
strlen ( "----...size_t) ( 9 ))Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-257
790 (strncmp(nameB->data, &(buf[9]), i) != 0) ||
never executed: __result = (((const unsigned char *) (const char *) ( nameB->data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( &(buf[9]) ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( (__extension... , i ))) != 0)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( i )Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_cons... nameB->data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( nameB...size_t) ( i ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... ( &(buf[9]) )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( &(buf...size_t) ( i ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-257
791 (strncmp(&(buf[9 + i]), "-----\n", 6) != 0)) {
never executed: __result = (((const unsigned char *) (const char *) ( &(buf[9 + i]) ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "-----\n" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
( (__extension... , 6 ))) != 0)Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__builtin_constant_p ( 6 )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
__builtin_cons...(buf[9 + i]) )Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
strlen ( &(buf...size_t) ( 6 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons... ( "-----\n" )Description
TRUEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
FALSEnever evaluated
strlen ( "----...size_t) ( 6 ))Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-257
792 PEMerror(PEM_R_BAD_END_LINE);-
793 goto err;
never executed: goto err;
0
794 }-
795-
796 EVP_DecodeInit(&ctx);-
797 i = EVP_DecodeUpdate(&ctx,-
798 (unsigned char *)dataB->data, &bl,-
799 (unsigned char *)dataB->data, bl);-
800 if (i < 0) {
i < 0Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
801 PEMerror(PEM_R_BAD_BASE64_DECODE);-
802 goto err;
never executed: goto err;
0
803 }-
804 i = EVP_DecodeFinal(&ctx, (unsigned char *)&(dataB->data[bl]), &k);-
805 if (i < 0) {
i < 0Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
806 PEMerror(PEM_R_BAD_BASE64_DECODE);-
807 goto err;
never executed: goto err;
0
808 }-
809 bl += k;-
810-
811 if (bl == 0)
bl == 0Description
TRUEnever evaluated
FALSEevaluated 257 times by 7 tests
Evaluated by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-257
812 goto err;
never executed: goto err;
0
813 *name = nameB->data;-
814 *header = headerB->data;-
815 *data = (unsigned char *)dataB->data;-
816 *len = bl;-
817 free(nameB);-
818 free(headerB);-
819 free(dataB);-
820 return (1);
executed 257 times by 7 tests: return (1);
Executed by:
  • asn1test
  • keypairtest
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
257
821-
822err:-
823 BUF_MEM_free(nameB);-
824 BUF_MEM_free(headerB);-
825 BUF_MEM_free(dataB);-
826 return (0);
executed 28 times by 2 tests: return (0);
Executed by:
  • ssltest
  • tlstest
28
827}-
828-
829/* Check pem string and return prefix length.-
830 * If for example the pem_str == "RSA PRIVATE KEY" and suffix = "PRIVATE KEY"-
831 * the return value is 3 for the string "RSA".-
832 */-
833-
834int-
835pem_check_suffix(const char *pem_str, const char *suffix)-
836{-
837 int pem_len = strlen(pem_str);-
838 int suffix_len = strlen(suffix);-
839 const char *p;-
840-
841 if (suffix_len + 1 >= pem_len)
suffix_len + 1 >= pem_lenDescription
TRUEevaluated 63 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
FALSEevaluated 132 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
63-132
842 return 0;
executed 63 times by 3 tests: return 0;
Executed by:
  • servertest
  • ssltest
  • tlstest
63
843 p = pem_str + pem_len - suffix_len;-
844 if (strcmp(p, suffix))
never executed: __result = (((const unsigned char *) (const char *) ( p ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( suffix ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
__extension__ ...uffix )))); })Description
TRUEnever evaluated
FALSEevaluated 132 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-132
845 return 0;
never executed: return 0;
0
846 p--;-
847 if (*p != ' ')
*p != ' 'Description
TRUEnever evaluated
FALSEevaluated 132 times by 5 tests
Evaluated by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
0-132
848 return 0;
never executed: return 0;
0
849 return p - pem_str;
executed 132 times by 5 tests: return p - pem_str;
Executed by:
  • libcrypto.so.44.0.1
  • pkcs7test
  • servertest
  • ssltest
  • tlstest
132
850}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2