Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/p8_pkey.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | - | |||||||
3 | - | |||||||
4 | static int | - | ||||||
5 | pkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | - | ||||||
6 | { | - | ||||||
7 | - | |||||||
8 | if (operation == 2
| 1-6 | ||||||
9 | PKCS8_PRIV_KEY_INFO *key = (PKCS8_PRIV_KEY_INFO *)*pval; | - | ||||||
10 | if (key->pkey !=
| 0-1 | ||||||
11 | ((void *)0)
| 0-1 | ||||||
12 | ) | - | ||||||
13 | explicit_bzero(key->pkey->data, key->pkey->length); executed 1 time by 1 test: explicit_bzero(key->pkey->data, key->pkey->length); Executed by:
| 1 | ||||||
14 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||
15 | return executed 7 times by 1 test: 1;return 1; Executed by:
executed 7 times by 1 test: return 1; Executed by:
| 7 | ||||||
16 | } | - | ||||||
17 | - | |||||||
18 | static const ASN1_AUX PKCS8_PRIV_KEY_INFO_aux = { | - | ||||||
19 | .asn1_cb = pkey_cb, | - | ||||||
20 | }; | - | ||||||
21 | static const ASN1_TEMPLATE PKCS8_PRIV_KEY_INFO_seq_tt[] = { | - | ||||||
22 | { | - | ||||||
23 | .offset = | - | ||||||
24 | __builtin_offsetof ( | - | ||||||
25 | PKCS8_PRIV_KEY_INFO | - | ||||||
26 | , | - | ||||||
27 | version | - | ||||||
28 | ) | - | ||||||
29 | , | - | ||||||
30 | .field_name = "version", | - | ||||||
31 | .item = &ASN1_INTEGER_it, | - | ||||||
32 | }, | - | ||||||
33 | { | - | ||||||
34 | .offset = | - | ||||||
35 | __builtin_offsetof ( | - | ||||||
36 | PKCS8_PRIV_KEY_INFO | - | ||||||
37 | , | - | ||||||
38 | pkeyalg | - | ||||||
39 | ) | - | ||||||
40 | , | - | ||||||
41 | .field_name = "pkeyalg", | - | ||||||
42 | .item = &X509_ALGOR_it, | - | ||||||
43 | }, | - | ||||||
44 | { | - | ||||||
45 | .offset = | - | ||||||
46 | __builtin_offsetof ( | - | ||||||
47 | PKCS8_PRIV_KEY_INFO | - | ||||||
48 | , | - | ||||||
49 | pkey | - | ||||||
50 | ) | - | ||||||
51 | , | - | ||||||
52 | .field_name = "pkey", | - | ||||||
53 | .item = &ASN1_OCTET_STRING_it, | - | ||||||
54 | }, | - | ||||||
55 | { | - | ||||||
56 | .flags = (0x1 << 3)|(0x2<<6) | (0x1 << 1) | (0x1), | - | ||||||
57 | .offset = | - | ||||||
58 | __builtin_offsetof ( | - | ||||||
59 | PKCS8_PRIV_KEY_INFO | - | ||||||
60 | , | - | ||||||
61 | attributes | - | ||||||
62 | ) | - | ||||||
63 | , | - | ||||||
64 | .field_name = "attributes", | - | ||||||
65 | .item = &X509_ATTRIBUTE_it, | - | ||||||
66 | }, | - | ||||||
67 | }; | - | ||||||
68 | - | |||||||
69 | const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it = { | - | ||||||
70 | .itype = 0x1, | - | ||||||
71 | .utype = 16, | - | ||||||
72 | .templates = PKCS8_PRIV_KEY_INFO_seq_tt, | - | ||||||
73 | .tcount = sizeof(PKCS8_PRIV_KEY_INFO_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||
74 | .funcs = &PKCS8_PRIV_KEY_INFO_aux, | - | ||||||
75 | .size = sizeof(PKCS8_PRIV_KEY_INFO), | - | ||||||
76 | .sname = "PKCS8_PRIV_KEY_INFO", | - | ||||||
77 | }; | - | ||||||
78 | - | |||||||
79 | - | |||||||
80 | PKCS8_PRIV_KEY_INFO * | - | ||||||
81 | d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len) | - | ||||||
82 | { | - | ||||||
83 | return never executed: (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PKCS8_PRIV_KEY_INFO_it); never executed: return (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PKCS8_PRIV_KEY_INFO_it); | 0 | ||||||
84 | &PKCS8_PRIV_KEY_INFO_it); never executed: return (PKCS8_PRIV_KEY_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PKCS8_PRIV_KEY_INFO_it); | 0 | ||||||
85 | } | - | ||||||
86 | - | |||||||
87 | int | - | ||||||
88 | i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out) | - | ||||||
89 | { | - | ||||||
90 | return executed 2 times by 1 test: ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS8_PRIV_KEY_INFO_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS8_PRIV_KEY_INFO_it); Executed by:
executed 2 times by 1 test: return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS8_PRIV_KEY_INFO_it); Executed by:
| 2 | ||||||
91 | } | - | ||||||
92 | - | |||||||
93 | PKCS8_PRIV_KEY_INFO * | - | ||||||
94 | PKCS8_PRIV_KEY_INFO_new(void) | - | ||||||
95 | { | - | ||||||
96 | return executed 1 time by 1 test: (PKCS8_PRIV_KEY_INFO *)ASN1_item_new(&PKCS8_PRIV_KEY_INFO_it);return (PKCS8_PRIV_KEY_INFO *)ASN1_item_new(&PKCS8_PRIV_KEY_INFO_it); Executed by:
executed 1 time by 1 test: return (PKCS8_PRIV_KEY_INFO *)ASN1_item_new(&PKCS8_PRIV_KEY_INFO_it); Executed by:
| 1 | ||||||
97 | } | - | ||||||
98 | - | |||||||
99 | void | - | ||||||
100 | PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a) | - | ||||||
101 | { | - | ||||||
102 | ASN1_item_free((ASN1_VALUE *)a, &PKCS8_PRIV_KEY_INFO_it); | - | ||||||
103 | } executed 2 times by 2 tests: end of block Executed by:
| 2 | ||||||
104 | - | |||||||
105 | int | - | ||||||
106 | PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, int version, | - | ||||||
107 | int ptype, void *pval, unsigned char *penc, int penclen) | - | ||||||
108 | { | - | ||||||
109 | if (version >= 0
| 0-1 | ||||||
110 | if (!ASN1_INTEGER_set(priv->version, version)
| 0-1 | ||||||
111 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
112 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||
113 | if (!X509_ALGOR_set0(priv->pkeyalg, aobj, ptype, pval)
| 0-1 | ||||||
114 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
115 | if (penc !=
| 0-1 | ||||||
116 | ((void *)0)
| 0-1 | ||||||
117 | ) | - | ||||||
118 | ASN1_STRING_set0(priv->pkey, penc, penclen); executed 1 time by 1 test: ASN1_STRING_set0(priv->pkey, penc, penclen); Executed by:
| 1 | ||||||
119 | return executed 1 time by 1 test: 1;return 1; Executed by:
executed 1 time by 1 test: return 1; Executed by:
| 1 | ||||||
120 | } | - | ||||||
121 | - | |||||||
122 | int | - | ||||||
123 | PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, const unsigned char **pk, | - | ||||||
124 | int *ppklen, const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8) | - | ||||||
125 | { | - | ||||||
126 | if (ppkalg !=
| 0 | ||||||
127 | ((void *)0)
| 0 | ||||||
128 | ) | - | ||||||
129 | * never executed: ppkalg = p8->pkeyalg->algorithm;*ppkalg = p8->pkeyalg->algorithm; never executed: *ppkalg = p8->pkeyalg->algorithm; | 0 | ||||||
130 | if (pk !=
| 0 | ||||||
131 | ((void *)0)
| 0 | ||||||
132 | ) { | - | ||||||
133 | *pk = ASN1_STRING_data(p8->pkey); | - | ||||||
134 | *ppklen = ASN1_STRING_length(p8->pkey); | - | ||||||
135 | } never executed: end of block | 0 | ||||||
136 | if (pa !=
| 0 | ||||||
137 | ((void *)0)
| 0 | ||||||
138 | ) | - | ||||||
139 | * never executed: pa = p8->pkeyalg;*pa = p8->pkeyalg; never executed: *pa = p8->pkeyalg; | 0 | ||||||
140 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
141 | } | - | ||||||
142 | - | |||||||
143 | const struct stack_st_X509_ATTRIBUTE * | - | ||||||
144 | PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8) | - | ||||||
145 | { | - | ||||||
146 | return never executed: p8->attributes;return p8->attributes; never executed: return p8->attributes; | 0 | ||||||
147 | } | - | ||||||
148 | - | |||||||
149 | int | - | ||||||
150 | PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, | - | ||||||
151 | const unsigned char *bytes, int len) | - | ||||||
152 | { | - | ||||||
153 | if (X509at_add1_attr_by_NID(&p8->attributes, nid, type, bytes,
| 0 | ||||||
154 | len) !=
| 0 | ||||||
155 | ((void *)0)
| 0 | ||||||
156 | ) | - | ||||||
157 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
158 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
159 | } | - | ||||||
Switch to Source code | Preprocessed file |