| 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 |