Branch Coverage

inc/CryptX_Mode_ECB.xs.inc
Criterion Covered Total %
branch 96 146 65.7


line true false branch
12 0 136 if (!RETVAL) croak("FATAL: Newz failed");
18 0 136 if (RETVAL->cipher_id == -1) {
45 330 0 if (!SvPOK_spec(key)) croak("FATAL: key must be string/buffer scalar");
0 330 if (!SvPOK_spec(key)) croak("FATAL: key must be string/buffer scalar");
0 0 if (!SvPOK_spec(key)) croak("FATAL: key must be string/buffer scalar");
0 0 if (!SvPOK_spec(key)) croak("FATAL: key must be string/buffer scalar");
0 0 if (!SvPOK_spec(key)) croak("FATAL: key must be string/buffer scalar");
49 0 330 if (rv != CRYPT_OK) {
53 165 165 self->direction = ix == 1 ? 1 : -1;
55 0 330 XPUSHs(ST(0)); /* return self */
68 3487 3486 for (j = 1; j < items; j++) {
73 3485 2 if (in_data_len > 0) {
74 1682 1803 if (self->direction == 1) {
76 1356 326 if (self->padlen > 0) {
78 585 771 if (in_data_len >= i) { /* enough data to fill pad */
83 0 585 if (rv != CRYPT_OK) {
98 741 941 if (in_data_len > 0 && i > 0) { /* save tail of data into pad */
628 113 if (in_data_len > 0 && i > 0) { /* save tail of data into pad */
104 257 1425 if (in_data_len > 0) {
105 96 161 i = (unsigned long)(has_tmp_block ? in_data_len + blen : in_data_len);
106 257 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + i + 1) + out_len;
250 7 out_data = (unsigned char*)SvGROW(RETVAL, out_len + i + 1) + out_len;
108 96 161 if (has_tmp_block) {
113 0 257 if (rv != CRYPT_OK) {
118 489 936 else if (has_tmp_block) {
119 489 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + blen + 1) + out_len;
489 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + blen + 1) + out_len;
124 1802 1 else if (self->direction == -1) {
125 116 1686 if (self->padlen == blen) {
127 0 116 if (rv != CRYPT_OK) {
134 1470 216 else if (self->padlen > 0) {
136 633 837 if (in_data_len >= i) { /* enough data to fill pad */
141 196 437 if (in_data_len>0 || self->padding_mode == 0) {
64 132 if (in_data_len>0 || self->padding_mode == 0) {
143 0 501 if (rv != CRYPT_OK) {
159 769 1033 if (in_data_len>0) {
161 633 136 if (i>0) { /* save tail of data into pad */
168 275 1527 if (in_data_len>0) {
169 136 139 if (self->padlen == 0 && self->padding_mode !=0) {
62 74 if (self->padlen == 0 && self->padding_mode !=0) {
175 142 133 i = (unsigned long)(has_tmp_block ? in_data_len + blen : in_data_len);
176 273 2 if (i > 0) {
177 273 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + i + 1) + out_len;
266 7 out_data = (unsigned char*)SvGROW(RETVAL, out_len + i + 1) + out_len;
179 142 131 if (has_tmp_block) {
184 0 273 if (rv != CRYPT_OK) {
190 475 1052 else if (has_tmp_block) {
191 475 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + blen + 1) + out_len;
475 0 out_data = (unsigned char*)SvGROW(RETVAL, out_len + blen + 1) + out_len;
202 1494 1992 if (out_len > 0) SvCUR_set(RETVAL, out_len);
216 165 166 if (self->direction == 1) {
217 165 0 if (self->padlen < 0 || self->padlen >= (int)blen) croak("FATAL: invalid padlen");
0 165 if (self->padlen < 0 || self->padlen >= (int)blen) croak("FATAL: invalid padlen");
218 79 86 if (self->padding_mode != 0) {
219 79 0 if (self->padding_mode == 1) { padmode = LTC_PAD_PKCS7 | (&self->state)->blocklen; }
220 0 0 else if (self->padding_mode == 2) { padmode = LTC_PAD_ONE_AND_ZERO | (&self->state)->blocklen; }
221 0 0 else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
222 0 0 else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
223 0 0 else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
227 0 79 if (rv != CRYPT_OK) croak("FATAL: padding_pad failed: %s", error_to_string(rv));
229 0 79 if (rv != CRYPT_OK) croak("FATAL: ecb_encrypt failed: %s", error_to_string(rv));
232 0 86 if (self->padlen > 0) croak("FATAL: ecb_encrypt, input data length not multiple of %d", (int)blen);
236 165 1 else if (self->direction == -1) {
237 78 87 if (self->padlen > 0) {
238 0 78 if (self->padlen != (int)blen) croak("FATAL: cipher text length has to be multiple of %d (%d)", (int)blen, self->padlen);
240 0 78 if (rv != CRYPT_OK) croak("FATAL: ecb_decrypt failed: %s", error_to_string(rv));
241 78 0 if (self->padding_mode != 0) {
242 78 0 if (self->padding_mode == 1) { padmode = LTC_PAD_PKCS7 | (&self->state)->blocklen; }
243 0 0 else if (self->padding_mode == 2) { padmode = LTC_PAD_ONE_AND_ZERO | (&self->state)->blocklen; }
244 0 0 else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
245 0 0 else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
246 0 0 else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
249 0 78 if (rv != CRYPT_OK) croak("FATAL: padding_depad failed: %s", error_to_string(rv));