| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/p5_pbe.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||
| 2 | - | |||||||
| 3 | - | |||||||
| 4 | - | |||||||
| 5 | static const ASN1_TEMPLATE PBEPARAM_seq_tt[] = { | - | ||||||
| 6 | { | - | ||||||
| 7 | .offset = | - | ||||||
| 8 | __builtin_offsetof ( | - | ||||||
| 9 | PBEPARAM | - | ||||||
| 10 | , | - | ||||||
| 11 | salt | - | ||||||
| 12 | ) | - | ||||||
| 13 | , | - | ||||||
| 14 | .field_name = "salt", | - | ||||||
| 15 | .item = &ASN1_OCTET_STRING_it, | - | ||||||
| 16 | }, | - | ||||||
| 17 | { | - | ||||||
| 18 | .offset = | - | ||||||
| 19 | __builtin_offsetof ( | - | ||||||
| 20 | PBEPARAM | - | ||||||
| 21 | , | - | ||||||
| 22 | iter | - | ||||||
| 23 | ) | - | ||||||
| 24 | , | - | ||||||
| 25 | .field_name = "iter", | - | ||||||
| 26 | .item = &ASN1_INTEGER_it, | - | ||||||
| 27 | }, | - | ||||||
| 28 | }; | - | ||||||
| 29 | - | |||||||
| 30 | const ASN1_ITEM PBEPARAM_it = { | - | ||||||
| 31 | .itype = 0x1, | - | ||||||
| 32 | .utype = 16, | - | ||||||
| 33 | .templates = PBEPARAM_seq_tt, | - | ||||||
| 34 | .tcount = sizeof(PBEPARAM_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||
| 35 | .size = sizeof(PBEPARAM), | - | ||||||
| 36 | .sname = "PBEPARAM", | - | ||||||
| 37 | }; | - | ||||||
| 38 | - | |||||||
| 39 | - | |||||||
| 40 | PBEPARAM * | - | ||||||
| 41 | d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len) | - | ||||||
| 42 | { | - | ||||||
| 43 | return never executed: (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it);never executed: return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it); | 0 | ||||||
| 44 | &PBEPARAM_it); never executed: return (PBEPARAM *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &PBEPARAM_it); | 0 | ||||||
| 45 | } | - | ||||||
| 46 | - | |||||||
| 47 | int | - | ||||||
| 48 | i2d_PBEPARAM(PBEPARAM *a, unsigned char **out) | - | ||||||
| 49 | { | - | ||||||
| 50 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it);never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &PBEPARAM_it); | 0 | ||||||
| 51 | } | - | ||||||
| 52 | - | |||||||
| 53 | PBEPARAM * | - | ||||||
| 54 | PBEPARAM_new(void) | - | ||||||
| 55 | { | - | ||||||
| 56 | return never executed: (PBEPARAM *)ASN1_item_new(&PBEPARAM_it);return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it);never executed: return (PBEPARAM *)ASN1_item_new(&PBEPARAM_it); | 0 | ||||||
| 57 | } | - | ||||||
| 58 | - | |||||||
| 59 | void | - | ||||||
| 60 | PBEPARAM_free(PBEPARAM *a) | - | ||||||
| 61 | { | - | ||||||
| 62 | ASN1_item_free((ASN1_VALUE *)a, &PBEPARAM_it); | - | ||||||
| 63 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||
| 64 | - | |||||||
| 65 | - | |||||||
| 66 | - | |||||||
| 67 | - | |||||||
| 68 | int | - | ||||||
| 69 | PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, | - | ||||||
| 70 | const unsigned char *salt, int saltlen) | - | ||||||
| 71 | { | - | ||||||
| 72 | PBEPARAM *pbe = | - | ||||||
| 73 | ((void *)0) | - | ||||||
| 74 | ; | - | ||||||
| 75 | ASN1_STRING *pbe_str = | - | ||||||
| 76 | ((void *)0) | - | ||||||
| 77 | ; | - | ||||||
| 78 | unsigned char *sstr; | - | ||||||
| 79 | - | |||||||
| 80 | pbe = PBEPARAM_new(); | - | ||||||
| 81 | if (!pbe
| 0 | ||||||
| 82 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,130); | - | ||||||
| 83 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 84 | } | - | ||||||
| 85 | if (iter <= 0
| 0 | ||||||
| 86 | iter = 2048; never executed: iter = 2048; | 0 | ||||||
| 87 | if (!ASN1_INTEGER_set(pbe->iter, iter)
| 0 | ||||||
| 88 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,136); | - | ||||||
| 89 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 90 | } | - | ||||||
| 91 | if (!saltlen
| 0 | ||||||
| 92 | saltlen = 8; never executed: saltlen = 8; | 0 | ||||||
| 93 | if (!ASN1_STRING_set(pbe->salt,
| 0 | ||||||
| 94 | ((void *)0)
| 0 | ||||||
| 95 | , saltlen)
| 0 | ||||||
| 96 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,142); | - | ||||||
| 97 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 98 | } | - | ||||||
| 99 | sstr = ASN1_STRING_data(pbe->salt); | - | ||||||
| 100 | if (salt
| 0 | ||||||
| 101 | memcpy(sstr, salt, saltlen); never executed: memcpy(sstr, salt, saltlen); | 0 | ||||||
| 102 | else | - | ||||||
| 103 | arc4random_buf(sstr, saltlen); never executed: arc4random_buf(sstr, saltlen); | 0 | ||||||
| 104 | - | |||||||
| 105 | if (!ASN1_item_pack(pbe, &PBEPARAM_it, &pbe_str)
| 0 | ||||||
| 106 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,152); | - | ||||||
| 107 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 108 | } | - | ||||||
| 109 | - | |||||||
| 110 | PBEPARAM_free(pbe); | - | ||||||
| 111 | pbe = | - | ||||||
| 112 | ((void *)0) | - | ||||||
| 113 | ; | - | ||||||
| 114 | - | |||||||
| 115 | if (X509_ALGOR_set0(algor, OBJ_nid2obj(alg), 16, pbe_str)
| 0 | ||||||
| 116 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||
| 117 | - | |||||||
| 118 | err: code before this statement never executed: err: | 0 | ||||||
| 119 | if (pbe !=
| 0 | ||||||
| 120 | ((void *)0)
| 0 | ||||||
| 121 | ) | - | ||||||
| 122 | PBEPARAM_free(pbe); never executed: PBEPARAM_free(pbe); | 0 | ||||||
| 123 | ASN1_STRING_free(pbe_str); | - | ||||||
| 124 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||
| 125 | } | - | ||||||
| 126 | - | |||||||
| 127 | - | |||||||
| 128 | - | |||||||
| 129 | X509_ALGOR * | - | ||||||
| 130 | PKCS5_pbe_set(int alg, int iter, const unsigned char *salt, int saltlen) | - | ||||||
| 131 | { | - | ||||||
| 132 | X509_ALGOR *ret; | - | ||||||
| 133 | ret = X509_ALGOR_new(); | - | ||||||
| 134 | if (!ret
| 0 | ||||||
| 135 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,177); | - | ||||||
| 136 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 137 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 138 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 139 | } | - | ||||||
| 140 | - | |||||||
| 141 | if (PKCS5_pbe_set0_algor(ret, alg, iter, salt, saltlen)
| 0 | ||||||
| 142 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||
| 143 | - | |||||||
| 144 | X509_ALGOR_free(ret); | - | ||||||
| 145 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 146 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 147 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 148 | } | - | ||||||
| Switch to Source code | Preprocessed file |