OpenCoverage

v3_genn.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/v3_genn.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 1999-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/asn1t.h>-
13#include <openssl/conf.h>-
14#include <openssl/x509v3.h>-
15-
16ASN1_SEQUENCE(OTHERNAME) = {-
17 ASN1_SIMPLE(OTHERNAME, type_id, ASN1_OBJECT),-
18 /* Maybe have a true ANY DEFINED BY later */-
19 ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)-
20} ASN1_SEQUENCE_END(OTHERNAME)-
21-
22IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME)
never executed: end of block
never executed: return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(OTHERNAME_it)));
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(OTHERNAME_it)));
never executed: return (OTHERNAME *)ASN1_item_new((&(OTHERNAME_it)));
0
23-
24ASN1_SEQUENCE(EDIPARTYNAME) = {-
25 ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),-
26 ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)-
27} ASN1_SEQUENCE_END(EDIPARTYNAME)-
28-
29IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME)
never executed: end of block
never executed: return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(EDIPARTYNAME_it)));
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(EDIPARTYNAME_it)));
never executed: return (EDIPARTYNAME *)ASN1_item_new((&(EDIPARTYNAME_it)));
0
30-
31ASN1_CHOICE(GENERAL_NAME) = {-
32 ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME),-
33 ASN1_IMP(GENERAL_NAME, d.rfc822Name, ASN1_IA5STRING, GEN_EMAIL),-
34 ASN1_IMP(GENERAL_NAME, d.dNSName, ASN1_IA5STRING, GEN_DNS),-
35 /* Don't decode this */-
36 ASN1_IMP(GENERAL_NAME, d.x400Address, ASN1_SEQUENCE, GEN_X400),-
37 /* X509_NAME is a CHOICE type so use EXPLICIT */-
38 ASN1_EXP(GENERAL_NAME, d.directoryName, X509_NAME, GEN_DIRNAME),-
39 ASN1_IMP(GENERAL_NAME, d.ediPartyName, EDIPARTYNAME, GEN_EDIPARTY),-
40 ASN1_IMP(GENERAL_NAME, d.uniformResourceIdentifier, ASN1_IA5STRING, GEN_URI),-
41 ASN1_IMP(GENERAL_NAME, d.iPAddress, ASN1_OCTET_STRING, GEN_IPADD),-
42 ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)-
43} ASN1_CHOICE_END(GENERAL_NAME)-
44-
45IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME)
executed 102 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
never executed: return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(GENERAL_NAME_it)));
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(GENERAL_NAME_it)));
executed 110 times by 1 test: return (GENERAL_NAME *)ASN1_item_new((&(GENERAL_NAME_it)));
Executed by:
  • libcrypto.so.1.1
0-110
46-
47ASN1_ITEM_TEMPLATE(GENERAL_NAMES) =-
48 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME)-
49ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES)-
50-
51IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES)
executed 56514 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
never executed: return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(GENERAL_NAMES_it)));
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(GENERAL_NAMES_it)));
executed 1 time by 1 test: return (GENERAL_NAMES *)ASN1_item_new((&(GENERAL_NAMES_it)));
Executed by:
  • libcrypto.so.1.1
0-56514
52-
53GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a)-
54{-
55 return (GENERAL_NAME *)ASN1_dup((i2d_of_void *)i2d_GENERAL_NAME,
never executed: return (GENERAL_NAME *)ASN1_dup((i2d_of_void *)i2d_GENERAL_NAME, (d2i_of_void *)d2i_GENERAL_NAME, (char *)a);
0
56 (d2i_of_void *)d2i_GENERAL_NAME,
never executed: return (GENERAL_NAME *)ASN1_dup((i2d_of_void *)i2d_GENERAL_NAME, (d2i_of_void *)d2i_GENERAL_NAME, (char *)a);
0
57 (char *)a);
never executed: return (GENERAL_NAME *)ASN1_dup((i2d_of_void *)i2d_GENERAL_NAME, (d2i_of_void *)d2i_GENERAL_NAME, (char *)a);
0
58}-
59-
60/* Returns 0 if they are equal, != 0 otherwise. */-
61int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b)-
62{-
63 int result = -1;-
64-
65 if (!a || !b || a->type != b->type)
!aDescription
TRUEnever evaluated
FALSEnever evaluated
!bDescription
TRUEnever evaluated
FALSEnever evaluated
a->type != b->typeDescription
TRUEnever evaluated
FALSEnever evaluated
0
66 return -1;
never executed: return -1;
0
67 switch (a->type) {-
68 case GEN_X400:
never executed: case 3:
0
69 case GEN_EDIPARTY:
never executed: case 5:
0
70 result = ASN1_TYPE_cmp(a->d.other, b->d.other);-
71 break;
never executed: break;
0
72-
73 case GEN_OTHERNAME:
never executed: case 0:
0
74 result = OTHERNAME_cmp(a->d.otherName, b->d.otherName);-
75 break;
never executed: break;
0
76-
77 case GEN_EMAIL:
never executed: case 1:
0
78 case GEN_DNS:
never executed: case 2:
0
79 case GEN_URI:
never executed: case 6:
0
80 result = ASN1_STRING_cmp(a->d.ia5, b->d.ia5);-
81 break;
never executed: break;
0
82-
83 case GEN_DIRNAME:
never executed: case 4:
0
84 result = X509_NAME_cmp(a->d.dirn, b->d.dirn);-
85 break;
never executed: break;
0
86-
87 case GEN_IPADD:
never executed: case 7:
0
88 result = ASN1_OCTET_STRING_cmp(a->d.ip, b->d.ip);-
89 break;
never executed: break;
0
90-
91 case GEN_RID:
never executed: case 8:
0
92 result = OBJ_cmp(a->d.rid, b->d.rid);-
93 break;
never executed: break;
0
94 }-
95 return result;
never executed: return result;
0
96}-
97-
98/* Returns 0 if they are equal, != 0 otherwise. */-
99int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b)-
100{-
101 int result = -1;-
102-
103 if (!a || !b)
!aDescription
TRUEnever evaluated
FALSEnever evaluated
!bDescription
TRUEnever evaluated
FALSEnever evaluated
0
104 return -1;
never executed: return -1;
0
105 /* Check their type first. */-
106 if ((result = OBJ_cmp(a->type_id, b->type_id)) != 0)
(result = OBJ_...type_id)) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
107 return result;
never executed: return result;
0
108 /* Check the value. */-
109 result = ASN1_TYPE_cmp(a->value, b->value);-
110 return result;
never executed: return result;
0
111}-
112-
113void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value)-
114{-
115 switch (type) {-
116 case GEN_X400:
never executed: case 3:
0
117 case GEN_EDIPARTY:
never executed: case 5:
0
118 a->d.other = value;-
119 break;
never executed: break;
0
120-
121 case GEN_OTHERNAME:
never executed: case 0:
0
122 a->d.otherName = value;-
123 break;
never executed: break;
0
124-
125 case GEN_EMAIL:
executed 51 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
51
126 case GEN_DNS:
executed 51 times by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
51
127 case GEN_URI:
never executed: case 6:
0
128 a->d.ia5 = value;-
129 break;
executed 102 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
102
130-
131 case GEN_DIRNAME:
never executed: case 4:
0
132 a->d.dirn = value;-
133 break;
never executed: break;
0
134-
135 case GEN_IPADD:
never executed: case 7:
0
136 a->d.ip = value;-
137 break;
never executed: break;
0
138-
139 case GEN_RID:
never executed: case 8:
0
140 a->d.rid = value;-
141 break;
never executed: break;
0
142 }-
143 a->type = type;-
144}
executed 102 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
102
145-
146void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype)-
147{-
148 if (ptype)
ptypeDescription
TRUEnever evaluated
FALSEnever evaluated
0
149 *ptype = a->type;
never executed: *ptype = a->type;
0
150 switch (a->type) {-
151 case GEN_X400:
never executed: case 3:
0
152 case GEN_EDIPARTY:
never executed: case 5:
0
153 return a->d.other;
never executed: return a->d.other;
0
154-
155 case GEN_OTHERNAME:
never executed: case 0:
0
156 return a->d.otherName;
never executed: return a->d.otherName;
0
157-
158 case GEN_EMAIL:
never executed: case 1:
0
159 case GEN_DNS:
never executed: case 2:
0
160 case GEN_URI:
never executed: case 6:
0
161 return a->d.ia5;
never executed: return a->d.ia5;
0
162-
163 case GEN_DIRNAME:
never executed: case 4:
0
164 return a->d.dirn;
never executed: return a->d.dirn;
0
165-
166 case GEN_IPADD:
never executed: case 7:
0
167 return a->d.ip;
never executed: return a->d.ip;
0
168-
169 case GEN_RID:
never executed: case 8:
0
170 return a->d.rid;
never executed: return a->d.rid;
0
171-
172 default:
never executed: default:
0
173 return NULL;
never executed: return ((void *)0) ;
0
174 }-
175}-
176-
177int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,-
178 ASN1_OBJECT *oid, ASN1_TYPE *value)-
179{-
180 OTHERNAME *oth;-
181 oth = OTHERNAME_new();-
182 if (oth == NULL)
oth == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
183 return 0;
never executed: return 0;
0
184 ASN1_TYPE_free(oth->value);-
185 oth->type_id = oid;-
186 oth->value = value;-
187 GENERAL_NAME_set0_value(gen, GEN_OTHERNAME, oth);-
188 return 1;
never executed: return 1;
0
189}-
190-
191int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen,-
192 ASN1_OBJECT **poid, ASN1_TYPE **pvalue)-
193{-
194 if (gen->type != GEN_OTHERNAME)
gen->type != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
195 return 0;
never executed: return 0;
0
196 if (poid)
poidDescription
TRUEnever evaluated
FALSEnever evaluated
0
197 *poid = gen->d.otherName->type_id;
never executed: *poid = gen->d.otherName->type_id;
0
198 if (pvalue)
pvalueDescription
TRUEnever evaluated
FALSEnever evaluated
0
199 *pvalue = gen->d.otherName->value;
never executed: *pvalue = gen->d.otherName->value;
0
200 return 1;
never executed: return 1;
0
201}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2