Branch Coverage

inc/CryptX_AuthEnc_ChaCha20Poly1305.xs.inc
Criterion Covered Total %
branch 52 132 39.3


line true false branch
13 0 3 if (!SvPOK(key)) croak("FATAL: key must be string/buffer scalar");
14 3 0 k = (unsigned char *) SvPVbyte(key, k_len);
15 3 0 if (nonce) {
16 0 3 if (!SvPOK(nonce)) croak("FATAL: nonce must be string/buffer scalar");
17 3 0 iv = (unsigned char *) SvPVbyte(nonce, iv_len);
21 0 3 if (!RETVAL) croak("FATAL: Newz failed");
24 0 3 if (rv != CRYPT_OK) {
29 3 0 if (iv && iv_len > 0) {
3 0 if (iv && iv_len > 0) {
31 0 3 if (rv != CRYPT_OK) {
49 0 0 if (!RETVAL) croak("FATAL: Newz failed");
62 0 0 if (!SvPOK(nonce)) croak("FATAL: nonce must be string/buffer scalar");
63 0 0 iv = (unsigned char *) SvPVbyte(nonce, iv_len);
65 0 0 if (rv != CRYPT_OK) croak("FATAL: chacha20poly1305_setiv failed: %s", error_to_string(rv));
66 0 0 XPUSHs(ST(0)); /* return self */;
77 0 0 if (!SvPOK(nonce)) croak("FATAL: nonce must be string/buffer scalar");
78 0 0 iv = (unsigned char *) SvPVbyte(nonce, iv_len);
80 0 0 if (rv != CRYPT_OK) croak("FATAL: chacha20poly1305_setiv_rfc7905 failed: %s", error_to_string(rv));
81 0 0 XPUSHs(ST(0)); /* return self */
92 3 0 in_data = (unsigned char *)SvPVbyte(data, in_data_len);
94 0 3 if (rv != CRYPT_OK) croak("FATAL: chacha20poly1305_add_aad failed: %s", error_to_string(rv));
95 0 3 XPUSHs(ST(0)); /* return self */
106 1 20 in_data = (unsigned char *)SvPVbyte(data, in_data_len);
107 0 21 if (in_data_len == 0) {
116 0 21 if (rv != CRYPT_OK) {
133 2 0 in_data = (unsigned char *)SvPVbyte(data, in_data_len);
134 0 2 if (in_data_len == 0) {
143 0 2 if (rv != CRYPT_OK) {
161 0 1 if (rv != CRYPT_OK) croak("FATAL: chacha20poly1305_done failed: %s", error_to_string(rv));
162 0 1 XPUSHs(sv_2mortal(newSVpvn((char*)tag, tag_len)));
176 0 2 if (rv != CRYPT_OK) croak("FATAL: chacha20poly1305_done failed: %s", error_to_string(rv));
177 2 0 if (items == 1) {
178 0 2 XPUSHs(sv_2mortal(newSVpvn((char*)tag, tag_len)));
181 0 0 if (!SvPOK(ST(1))) croak("FATAL: expected_tag must be string/buffer scalar");
182 0 0 expected_tag = (unsigned char *) SvPVbyte(ST(1), expected_tag_len);
183 0 0 if (expected_tag_len!=tag_len) {
184 0 0 XPUSHs(sv_2mortal(newSViv(0))); /* false */
186 0 0 else if (memNE(expected_tag, tag, tag_len)) {
187 0 0 XPUSHs(sv_2mortal(newSViv(0))); /* false */
190 0 0 XPUSHs(sv_2mortal(newSViv(1))); /* true */
206 2 0 if (SvPOK(key)) k = (unsigned char *) SvPVbyte(key, k_len);
2 0 if (SvPOK(key)) k = (unsigned char *) SvPVbyte(key, k_len);
207 2 0 if (SvPOK(nonce)) n = (unsigned char *) SvPVbyte(nonce, n_len);
2 0 if (SvPOK(nonce)) n = (unsigned char *) SvPVbyte(nonce, n_len);
208 2 0 if (SvPOK(plaintext)) pt = (unsigned char *) SvPVbyte(plaintext, pt_len);
2 0 if (SvPOK(plaintext)) pt = (unsigned char *) SvPVbyte(plaintext, pt_len);
209 2 0 if (SvPOK(header)) h = (unsigned char *) SvPVbyte(header, h_len);
2 0 if (SvPOK(header)) h = (unsigned char *) SvPVbyte(header, h_len);
211 2 0 output = NEWSV(0, pt_len > 0 ? pt_len : 1); /* avoid zero! */
219 0 2 if (rv != CRYPT_OK) {
223 0 2 XPUSHs(sv_2mortal(output));
224 0 2 XPUSHs(sv_2mortal(newSVpvn((char*)tag, tag_len)));
238 4 0 if (SvPOK(key)) k = (unsigned char *) SvPVbyte(key, k_len);
4 0 if (SvPOK(key)) k = (unsigned char *) SvPVbyte(key, k_len);
239 4 0 if (SvPOK(nonce)) n = (unsigned char *) SvPVbyte(nonce, n_len);
4 0 if (SvPOK(nonce)) n = (unsigned char *) SvPVbyte(nonce, n_len);
240 4 0 if (SvPOK(ciphertext)) ct = (unsigned char *) SvPVbyte(ciphertext, ct_len);
4 0 if (SvPOK(ciphertext)) ct = (unsigned char *) SvPVbyte(ciphertext, ct_len);
241 4 0 if (SvPOK(tagsv)) t = (unsigned char *) SvPVbyte(tagsv, t_len);
4 0 if (SvPOK(tagsv)) t = (unsigned char *) SvPVbyte(tagsv, t_len);
242 4 0 if (SvPOK(header)) h = (unsigned char *) SvPVbyte(header, h_len);
4 0 if (SvPOK(header)) h = (unsigned char *) SvPVbyte(header, h_len);
244 4 0 output = NEWSV(0, ct_len > 0 ? ct_len : 1); /* avoid zero! */
254 2 2 if (rv != CRYPT_OK) {
256 0 2 XPUSHs(sv_2mortal(newSVpvn(NULL,0))); /* undef */
259 0 2 XPUSHs(sv_2mortal(output));