Branch Coverage

AES.xs
Criterion Covered Total %
branch 90 114 78.9


line true false branch
40 61 19 if (hv_exists(options, name, strlen(name))) {
42 61 0 if (SvIOKp(*svp)) {
54 135 41 if (hv_exists(options, name, strlen(name))) {
71 23 57 if (keysize == 16) {
72 1 22 if (name == NULL)
74 7 15 else if (strcmp(name, "AES-128-ECB") == 0)
76 2 13 else if (strcmp(name, "AES-128-CBC") == 0)
78 1 12 else if (strcmp(name, "AES-128-CFB") == 0)
80 1 11 else if (strcmp(name, "AES-128-CTR") == 0)
86 1 10 else if (strcmp(name, "AES-128-OFB") == 0)
90 23 34 } else if (keysize == 24) {
91 1 22 if (name == NULL)
93 7 15 else if (strcmp(name, "AES-192-ECB") == 0)
95 2 13 else if (strcmp(name, "AES-192-CBC") == 0)
97 1 12 else if (strcmp(name, "AES-192-CFB") == 0)
99 1 11 else if (strcmp(name, "AES-192-CTR") == 0)
105 1 10 else if (strcmp(name, "AES-192-OFB") == 0)
109 34 0 } else if (keysize == 32) {
110 4 30 if (name == NULL)
112 10 20 else if (strcmp(name, "AES-256-ECB") == 0)
114 5 15 else if (strcmp(name, "AES-256-CBC") == 0)
116 1 14 else if (strcmp(name, "AES-256-CFB") == 0)
118 1 13 else if (strcmp(name, "AES-256-CTR") == 0)
124 1 12 else if (strcmp(name, "AES-256-OFB") == 0)
136 6 42 if (value == NULL) {
137 1 5 if (keysize == 16)
139 1 4 else if (keysize == 24)
141 4 0 else if (keysize == 32)
160 76 0 if (!SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVHV)
0 76 if (!SvROK(sv) || SvTYPE(SvRV(sv)) != SVt_PVHV)
197 76 4 if (items > 2)
200 0 80 if (!SvPOK (key_sv))
206 57 23 if (keysize != 16 && keysize != 24 && keysize != 32)
34 23 if (keysize != 16 && keysize != 24 && keysize != 32)
0 34 if (keysize != 16 && keysize != 24 && keysize != 32)
215 40 8 if ((strcmp(cipher_name, "AES-128-ECB") == 0 ||
216 32 8 strcmp(cipher_name, "AES-192-ECB") == 0 ||
217 14 18 strcmp(cipher_name, "AES-256-ECB") == 0)
218 1 29 && hv_exists(options, "iv", strlen("iv")))
222 0 47 if(!(RETVAL->enc_ctx = EVP_CIPHER_CTX_new()))
225 0 47 if(!(RETVAL->dec_ctx = EVP_CIPHER_CTX_new()))
228 0 47 if(1 != EVP_EncryptInit_ex(RETVAL->enc_ctx, cipher,
232 0 47 if(1 != EVP_DecryptInit_ex(RETVAL->dec_ctx, cipher,
263 38 0 if (size)
266 4 34 if((size % block_size != 0) && self->padding != 1) {
2 2 if((size % block_size != 0) && self->padding != 1) {
273 0 36 THROW(EVP_EncryptUpdate(self->enc_ctx, (unsigned char *) ciphertext , &out_len, plaintext, size));
277 0 36 THROW(EVP_EncryptFinal_ex(self->enc_ctx, (unsigned char *) ciphertext + ciphertext_len, &out_len));
284 36 0 if (ciphertext != NULL) Safefree(ciphertext);
285 0 36 if(error)
317 35 0 if (size)
320 0 35 if ((size % block_size != 0) && self->padding != 1) {
0 0 if ((size % block_size != 0) && self->padding != 1) {
326 0 35 THROW(EVP_DecryptUpdate(self->dec_ctx, (unsigned char *) plaintext, &out_len, ciphertext, size));
330 0 35 THROW(EVP_DecryptFinal_ex(self->dec_ctx, (unsigned char *) plaintext + out_len, &out_len));
340 35 0 if(plaintext != NULL) Safefree(plaintext);
341 0 35 if(error)