OpenCoverage

pem_all.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/pem/pem_all.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include <stdio.h>-
11#include "internal/cryptlib.h"-
12#include <openssl/bio.h>-
13#include <openssl/evp.h>-
14#include <openssl/x509.h>-
15#include <openssl/pkcs7.h>-
16#include <openssl/pem.h>-
17#include <openssl/rsa.h>-
18#include <openssl/dsa.h>-
19#include <openssl/dh.h>-
20-
21#ifndef OPENSSL_NO_RSA-
22static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa);-
23#endif-
24#ifndef OPENSSL_NO_DSA-
25static DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa);-
26#endif-
27-
28#ifndef OPENSSL_NO_EC-
29static EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey);-
30#endif-
31-
32IMPLEMENT_PEM_rw(X509_REQ, X509_REQ, PEM_STRING_X509_REQ, X509_REQ)
executed 23 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_REQ, "CERTIFICATE REQUEST",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_X509_REQ, "CERTIFICATE REQUEST",fp,(void **)x,cb,u);
executed 17 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_REQ,"CERTIFICATE REQUEST",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_X509_REQ,"CERTIFICATE REQUEST",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-23
33-
34IMPLEMENT_PEM_write(X509_REQ_NEW, X509_REQ, PEM_STRING_X509_REQ_OLD, X509_REQ)
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_REQ,"NEW CERTIFICATE REQUEST",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_X509_REQ,"NEW CERTIFICATE REQUEST",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0
35IMPLEMENT_PEM_rw(X509_CRL, X509_CRL, PEM_STRING_X509_CRL, X509_CRL)
executed 13 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_CRL, "X509 CRL",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_X509_CRL, "X509 CRL",fp,(void **)x,cb,u);
executed 4 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_CRL,"X509 CRL",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_X509_CRL,"X509 CRL",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-13
36IMPLEMENT_PEM_rw(PKCS7, PKCS7, PEM_STRING_PKCS7, PKCS7)
executed 8 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_PKCS7, "PKCS7",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_PKCS7, "PKCS7",fp,(void **)x,cb,u);
executed 6 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_PKCS7,"PKCS7",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_PKCS7,"PKCS7",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-8
37-
38IMPLEMENT_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE,
never executed: return PEM_ASN1_read_bio((d2i_of_void *)d2i_NETSCAPE_CERT_SEQUENCE, "CERTIFICATE",bp,(void **)x,cb,u);
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_NETSCAPE_CERT_SEQUENCE, "CERTIFICATE",fp,(void **)x,cb,u);
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_NETSCAPE_CERT_SEQUENCE,"CERTIFICATE",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_NETSCAPE_CERT_SEQUENCE,"CERTIFICATE",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0
39 PEM_STRING_X509, NETSCAPE_CERT_SEQUENCE)-
40#ifndef OPENSSL_NO_RSA-
41/*-
42 * We treat RSA or DSA private keys as a special case. For private keys we-
43 * read in an EVP_PKEY structure with PEM_read_bio_PrivateKey() and extract-
44 * the relevant private key: this means can handle "traditional" and PKCS#8-
45 * formats transparently.-
46 */-
47static RSA *pkey_get_rsa(EVP_PKEY *key, RSA **rsa)-
48{-
49 RSA *rtmp;-
50 if (!key)
!keyDescription
TRUEnever evaluated
FALSEnever evaluated
0
51 return NULL;
never executed: return ((void *)0) ;
0
52 rtmp = EVP_PKEY_get1_RSA(key);-
53 EVP_PKEY_free(key);-
54 if (!rtmp)
!rtmpDescription
TRUEnever evaluated
FALSEnever evaluated
0
55 return NULL;
never executed: return ((void *)0) ;
0
56 if (rsa) {
rsaDescription
TRUEnever evaluated
FALSEnever evaluated
0
57 RSA_free(*rsa);-
58 *rsa = rtmp;-
59 }
never executed: end of block
0
60 return rtmp;
never executed: return rtmp;
0
61}-
62-
63RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **rsa, pem_password_cb *cb,-
64 void *u)-
65{-
66 EVP_PKEY *pktmp;-
67 pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);-
68 return pkey_get_rsa(pktmp, rsa);
never executed: return pkey_get_rsa(pktmp, rsa);
0
69}-
70-
71# ifndef OPENSSL_NO_STDIO-
72-
73RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb, void *u)-
74{-
75 EVP_PKEY *pktmp;-
76 pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);-
77 return pkey_get_rsa(pktmp, rsa);
never executed: return pkey_get_rsa(pktmp, rsa);
0
78}-
79-
80# endif-
81-
82IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA,
executed 9 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSAPrivateKey,"RSA PRIVATE KEY",bp,(void *)x,enc,kstr,klen,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_RSAPrivateKey,"RSA PRIVATE KEY",fp,x,enc,kstr,klen,cb,u);
0-9
83 RSAPrivateKey)-
84-
85-
86IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC,
never executed: return PEM_ASN1_read_bio((d2i_of_void *)d2i_RSAPublicKey, "RSA PUBLIC KEY",bp,(void **)x,cb,u);
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_RSAPublicKey, "RSA PUBLIC KEY",fp,(void **)x,cb,u);
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSAPublicKey,"RSA PUBLIC KEY",bp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_RSAPublicKey,"RSA PUBLIC KEY",fp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0
87 RSAPublicKey) IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA,
never executed: return PEM_ASN1_read_bio((d2i_of_void *)d2i_RSA_PUBKEY, "PUBLIC KEY",bp,(void **)x,cb,u);
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_RSA_PUBKEY, "PUBLIC KEY",fp,(void **)x,cb,u);
executed 4 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSA_PUBKEY,"PUBLIC KEY",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_RSA_PUBKEY,"PUBLIC KEY",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-4
88 PEM_STRING_PUBLIC,-
89 RSA_PUBKEY)-
90#endif-
91#ifndef OPENSSL_NO_DSA-
92static DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa)-
93{-
94 DSA *dtmp;-
95 if (!key)
!keyDescription
TRUEnever evaluated
FALSEevaluated 1801 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1801
96 return NULL;
never executed: return ((void *)0) ;
0
97 dtmp = EVP_PKEY_get1_DSA(key);-
98 EVP_PKEY_free(key);-
99 if (!dtmp)
!dtmpDescription
TRUEnever evaluated
FALSEevaluated 1801 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1801
100 return NULL;
never executed: return ((void *)0) ;
0
101 if (dsa) {
dsaDescription
TRUEnever evaluated
FALSEevaluated 1801 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1801
102 DSA_free(*dsa);-
103 *dsa = dtmp;-
104 }
never executed: end of block
0
105 return dtmp;
executed 1801 times by 1 test: return dtmp;
Executed by:
  • libcrypto.so.1.1
1801
106}-
107-
108DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb,-
109 void *u)-
110{-
111 EVP_PKEY *pktmp;-
112 pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);-
113 return pkey_get_dsa(pktmp, dsa); /* will free pktmp */
executed 1801 times by 1 test: return pkey_get_dsa(pktmp, dsa);
Executed by:
  • libcrypto.so.1.1
1801
114}-
115-
116IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA,
executed 4 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAPrivateKey,"DSA PRIVATE KEY",bp,(void *)x,enc,kstr,klen,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_DSAPrivateKey,"DSA PRIVATE KEY",fp,x,enc,kstr,klen,cb,u);
0-4
117 DSAPrivateKey)-
118 IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY)
never executed: return PEM_ASN1_read_bio((d2i_of_void *)d2i_DSA_PUBKEY, "PUBLIC KEY",bp,(void **)x,cb,u);
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_DSA_PUBKEY, "PUBLIC KEY",fp,(void **)x,cb,u);
executed 4 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSA_PUBKEY,"PUBLIC KEY",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_DSA_PUBKEY,"PUBLIC KEY",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-4
119# ifndef OPENSSL_NO_STDIO-
120DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb, void *u)-
121{-
122 EVP_PKEY *pktmp;-
123 pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);-
124 return pkey_get_dsa(pktmp, dsa); /* will free pktmp */
never executed: return pkey_get_dsa(pktmp, dsa);
0
125}-
126-
127# endif-
128-
129IMPLEMENT_PEM_rw_const(DSAparams, DSA, PEM_STRING_DSAPARAMS, DSAparams)
executed 1 time by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_DSAparams, "DSA PARAMETERS",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_DSAparams, "DSA PARAMETERS",fp,(void **)x,cb,u);
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAparams,"DSA PARAMETERS",bp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_DSAparams,"DSA PARAMETERS",fp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-1
130#endif-
131#ifndef OPENSSL_NO_EC-
132static EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey)-
133{-
134 EC_KEY *dtmp;-
135 if (!key)
!keyDescription
TRUEnever evaluated
FALSEevaluated 1805 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1805
136 return NULL;
never executed: return ((void *)0) ;
0
137 dtmp = EVP_PKEY_get1_EC_KEY(key);-
138 EVP_PKEY_free(key);-
139 if (!dtmp)
!dtmpDescription
TRUEnever evaluated
FALSEevaluated 1805 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1805
140 return NULL;
never executed: return ((void *)0) ;
0
141 if (eckey) {
eckeyDescription
TRUEnever evaluated
FALSEevaluated 1805 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1805
142 EC_KEY_free(*eckey);-
143 *eckey = dtmp;-
144 }
never executed: end of block
0
145 return dtmp;
executed 1805 times by 1 test: return dtmp;
Executed by:
  • libcrypto.so.1.1
1805
146}-
147-
148EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb,-
149 void *u)-
150{-
151 EVP_PKEY *pktmp;-
152 pktmp = PEM_read_bio_PrivateKey(bp, NULL, cb, u);-
153 return pkey_get_eckey(pktmp, key); /* will free pktmp */
executed 1805 times by 1 test: return pkey_get_eckey(pktmp, key);
Executed by:
  • libcrypto.so.1.1
1805
154}-
155-
156IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS,
executed 134 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_ECPKParameters, "EC PARAMETERS",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_ECPKParameters, "EC PARAMETERS",fp,(void **)x,cb,u);
executed 1 time by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_ECPKParameters,"EC PARAMETERS",bp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_ECPKParameters,"EC PARAMETERS",fp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-134
157 ECPKParameters)-
158-
159-
160IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY,
executed 3 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_ECPrivateKey,"EC PRIVATE KEY",bp,x,enc,kstr,klen,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_ECPrivateKey,"EC PRIVATE KEY",fp,x,enc,kstr,klen,cb,u);
0-3
161 ECPrivateKey)-
162IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY)
executed 4 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_EC_PUBKEY, "PUBLIC KEY",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_EC_PUBKEY, "PUBLIC KEY",fp,(void **)x,cb,u);
executed 3 times by 1 test: return PEM_ASN1_write_bio((i2d_of_void *)i2d_EC_PUBKEY,"PUBLIC KEY",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_EC_PUBKEY,"PUBLIC KEY",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-4
163# ifndef OPENSSL_NO_STDIO-
164EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb,-
165 void *u)-
166{-
167 EVP_PKEY *pktmp;-
168 pktmp = PEM_read_PrivateKey(fp, NULL, cb, u);-
169 return pkey_get_eckey(pktmp, eckey); /* will free pktmp */
never executed: return pkey_get_eckey(pktmp, eckey);
0
170}-
171-
172# endif-
173-
174#endif-
175-
176#ifndef OPENSSL_NO_DH-
177-
178IMPLEMENT_PEM_write_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams)
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_DHparams,"DH PARAMETERS",bp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_DHparams,"DH PARAMETERS",fp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0
179 IMPLEMENT_PEM_write_const(DHxparams, DH, PEM_STRING_DHXPARAMS, DHxparams)
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_DHxparams,"X9.42 DH PARAMETERS",bp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_DHxparams,"X9.42 DH PARAMETERS",fp,(void *)x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0
180#endif-
181IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY)
executed 1205 times by 1 test: return PEM_ASN1_read_bio((d2i_of_void *)d2i_PUBKEY, "PUBLIC KEY",bp,(void **)x,cb,u);
Executed by:
  • libcrypto.so.1.1
never executed: return PEM_ASN1_read((d2i_of_void *)d2i_PUBKEY, "PUBLIC KEY",fp,(void **)x,cb,u);
never executed: return PEM_ASN1_write_bio((i2d_of_void *)i2d_PUBKEY,"PUBLIC KEY",bp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
never executed: return PEM_ASN1_write((i2d_of_void *)i2d_PUBKEY,"PUBLIC KEY",fp,x, ((void *)0) , ((void *)0) ,0, ((void *)0) , ((void *)0) );
0-1205
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2