| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pkcs12/p12_decr.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||
|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||
| 2 | - | |||||||
| 3 | - | |||||||
| 4 | - | |||||||
| 5 | - | |||||||
| 6 | - | |||||||
| 7 | unsigned char * | - | ||||||
| 8 | PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, int passlen, | - | ||||||
| 9 | const unsigned char *in, int inlen, unsigned char **data, int *datalen, | - | ||||||
| 10 | int en_de) | - | ||||||
| 11 | { | - | ||||||
| 12 | unsigned char *out; | - | ||||||
| 13 | int outlen, i; | - | ||||||
| 14 | EVP_CIPHER_CTX ctx; | - | ||||||
| 15 | - | |||||||
| 16 | EVP_CIPHER_CTX_init(&ctx); | - | ||||||
| 17 | - | |||||||
| 18 | if (!EVP_PBE_CipherInit(algor->algorithm, pass, passlen,
| 0 | ||||||
| 19 | algor->parameter, &ctx, en_de)
| 0 | ||||||
| 20 | out = | - | ||||||
| 21 | ((void *)0) | - | ||||||
| 22 | ; | - | ||||||
| 23 | ERR_put_error(35,(0xfff),(115),__FILE__,83); | - | ||||||
| 24 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 25 | } | - | ||||||
| 26 | - | |||||||
| 27 | if (!(out = malloc(inlen + EVP_CIPHER_CTX_block_size(&ctx)))
| 0 | ||||||
| 28 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,88); | - | ||||||
| 29 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 30 | } | - | ||||||
| 31 | - | |||||||
| 32 | if (!EVP_CipherUpdate(&ctx, out, &i, in, inlen)
| 0 | ||||||
| 33 | free(out); | - | ||||||
| 34 | out = | - | ||||||
| 35 | ((void *)0) | - | ||||||
| 36 | ; | - | ||||||
| 37 | ERR_put_error(35,(0xfff),(6),__FILE__,95); | - | ||||||
| 38 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 39 | } | - | ||||||
| 40 | - | |||||||
| 41 | outlen = i; | - | ||||||
| 42 | if (!EVP_CipherFinal_ex(&ctx, out + i, &i)
| 0 | ||||||
| 43 | free(out); | - | ||||||
| 44 | out = | - | ||||||
| 45 | ((void *)0) | - | ||||||
| 46 | ; | - | ||||||
| 47 | ERR_put_error(35,(0xfff),(116),__FILE__,103); | - | ||||||
| 48 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 49 | } | - | ||||||
| 50 | outlen += i; | - | ||||||
| 51 | if (datalen
| 0 | ||||||
| 52 | * never executed: datalen = outlen;*datalen = outlen;never executed: *datalen = outlen; | 0 | ||||||
| 53 | if (data
| 0 | ||||||
| 54 | * never executed: data = out;*data = out;never executed: *data = out; | 0 | ||||||
| 55 | - | |||||||
| 56 | err: code before this statement never executed: err: | 0 | ||||||
| 57 | EVP_CIPHER_CTX_cleanup(&ctx); | - | ||||||
| 58 | return never executed: out;return out;never executed: return out; | 0 | ||||||
| 59 | - | |||||||
| 60 | } | - | ||||||
| 61 | - | |||||||
| 62 | - | |||||||
| 63 | - | |||||||
| 64 | - | |||||||
| 65 | - | |||||||
| 66 | void * | - | ||||||
| 67 | PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, | - | ||||||
| 68 | const char *pass, int passlen, const ASN1_OCTET_STRING *oct, int zbuf) | - | ||||||
| 69 | { | - | ||||||
| 70 | unsigned char *out; | - | ||||||
| 71 | const unsigned char *p; | - | ||||||
| 72 | void *ret; | - | ||||||
| 73 | int outlen; | - | ||||||
| 74 | - | |||||||
| 75 | if (!PKCS12_pbe_crypt(algor, pass, passlen, oct->data, oct->length,
| 0 | ||||||
| 76 | &out, &outlen, 0)
| 0 | ||||||
| 77 | ERR_put_error(35,(0xfff),(117),__FILE__,133); | - | ||||||
| 78 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 79 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 80 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 81 | } | - | ||||||
| 82 | p = out; | - | ||||||
| 83 | ret = ASN1_item_d2i( | - | ||||||
| 84 | ((void *)0) | - | ||||||
| 85 | , &p, outlen, it); | - | ||||||
| 86 | if (zbuf
| 0 | ||||||
| 87 | explicit_bzero(out, outlen); never executed: explicit_bzero(out, outlen); | 0 | ||||||
| 88 | if (!ret
| 0 | ||||||
| 89 | ERR_put_error(35,(0xfff),(101),__FILE__,141); never executed: ERR_put_error(35,(0xfff),(101),__FILE__,141); | 0 | ||||||
| 90 | free(out); | - | ||||||
| 91 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||
| 92 | } | - | ||||||
| 93 | - | |||||||
| 94 | - | |||||||
| 95 | - | |||||||
| 96 | - | |||||||
| 97 | - | |||||||
| 98 | ASN1_OCTET_STRING * | - | ||||||
| 99 | PKCS12_item_i2d_encrypt(X509_ALGOR *algor, const ASN1_ITEM *it, | - | ||||||
| 100 | const char *pass, int passlen, | - | ||||||
| 101 | void *obj, int zbuf) | - | ||||||
| 102 | { | - | ||||||
| 103 | ASN1_OCTET_STRING *oct; | - | ||||||
| 104 | unsigned char *in = | - | ||||||
| 105 | ((void *)0) | - | ||||||
| 106 | ; | - | ||||||
| 107 | int inlen; | - | ||||||
| 108 | - | |||||||
| 109 | if (!(oct = ASN1_OCTET_STRING_new ())
| 0 | ||||||
| 110 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,160); | - | ||||||
| 111 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 112 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 113 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 114 | } | - | ||||||
| 115 | inlen = ASN1_item_i2d(obj, &in, it); | - | ||||||
| 116 | if (!in
| 0 | ||||||
| 117 | ERR_put_error(35,(0xfff),(102),__FILE__,165); | - | ||||||
| 118 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 119 | } | - | ||||||
| 120 | if (!PKCS12_pbe_crypt(algor, pass, passlen, in, inlen, &oct->data,
| 0 | ||||||
| 121 | &oct->length, 1)
| 0 | ||||||
| 122 | ERR_put_error(35,(0xfff),(103),__FILE__,170); | - | ||||||
| 123 | goto never executed: err;goto err;never executed: goto err; | 0 | ||||||
| 124 | } | - | ||||||
| 125 | if (zbuf
| 0 | ||||||
| 126 | explicit_bzero(in, inlen); never executed: explicit_bzero(in, inlen); | 0 | ||||||
| 127 | free(in); | - | ||||||
| 128 | return never executed: oct;return oct;never executed: return oct; | 0 | ||||||
| 129 | - | |||||||
| 130 | err: | - | ||||||
| 131 | free(in); | - | ||||||
| 132 | ASN1_OCTET_STRING_free(oct); | - | ||||||
| 133 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||
| 134 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
| 135 | ; never executed: return ((void *)0) ; | 0 | ||||||
| 136 | } | - | ||||||
| 137 | - | |||||||
| 138 | - | |||||||
| Switch to Source code | Preprocessed file |