Branch Coverage

inc/CryptX_PK_ECC.xs.inc
Criterion Covered Total %
branch 110 186 59.1


line true false branch
11 0 253 if (!RETVAL) croak("FATAL: Newz failed");
14 0 253 if (RETVAL->pindex == -1) {
19 0 253 if (rv != CRYPT_OK) {
34 0 3 if (rv != CRYPT_OK) croak("FATAL: ecc_set_curve failed: %s", error_to_string(rv));
37 0 3 if (rv != CRYPT_OK) croak("FATAL: ecc_generate_key failed: %s", error_to_string(rv));
38 0 3 XPUSHs(ST(0)); /* return self */
49 76 0 data = (unsigned char *)SvPVbyte(key_data, data_len);
50 8 68 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }
52 13 63 if (rv != CRYPT_OK) croak("FATAL: ecc_import_openssl failed: %s", error_to_string(rv));
53 0 63 XPUSHs(ST(0)); /* return self */
64 13 0 data = (unsigned char *)SvPVbyte(key_data, data_len);
65 0 13 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }
67 5 8 if (rv != CRYPT_OK) croak("FATAL: ecc_import failed: %s", error_to_string(rv));
68 0 8 XPUSHs(ST(0)); /* return self */
79 9 0 data = (unsigned char *)SvPVbyte(key_data, data_len);
80 5 4 if (SvOK(passwd)) {
5 0 if (SvOK(passwd)) {
0 5 if (SvOK(passwd)) {
81 4 0 pwd = (unsigned char *)SvPVbyte(passwd, pwd_len);
83 4 5 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }
85 0 9 if (rv != CRYPT_OK) croak("FATAL: ecc_import_pkcs8 failed: %s", error_to_string(rv));
86 0 9 XPUSHs(ST(0)); /* return self */
97 0 0 data = (unsigned char *)SvPVbyte(key_data, data_len);
98 0 0 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }
100 0 0 if (rv != CRYPT_OK) croak("FATAL: ecc_import_x509 failed: %s", error_to_string(rv));
101 0 0 XPUSHs(ST(0)); /* return self */
112 187 0 data = (unsigned char *)SvPVbyte(key_data, data_len);
113 6 181 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }
116 0 187 if (rv != CRYPT_OK) croak("FATAL: ecc_set_curve failed: %s", error_to_string(rv));
120 0 187 if (rv != CRYPT_OK) croak("FATAL: ecc_set_key failed: %s", error_to_string(rv));
121 0 187 XPUSHs(ST(0)); /* return self */
127 0 64 if (self->key.type == -1) XSRETURN_UNDEF;
135 0 5 if (self->key.type == -1) XSRETURN_UNDEF;
148 0 29 if (self->key.type == -1) XSRETURN_UNDEF;
152 29 0 siz = (self->key.k) ? mp_unsigned_bin_size(self->key.k) : 0;
153 0 29 if (siz>10000) {
156 16 13 if (siz>0) {
164 29 0 siz = (self->key.pubkey.x) ? mp_unsigned_bin_size(self->key.pubkey.x) : 0;
165 0 29 if (siz>10000) {
168 29 0 if (siz>0) {
176 29 0 siz = (self->key.pubkey.y) ? mp_unsigned_bin_size(self->key.pubkey.y) : 0;
177 0 29 if (siz>10000) {
180 29 0 if (siz>0) {
205 27 2 if (self->key.dp.oidlen > 0) {
214 136 27 for(i = 0; i < self->key.dp.oidlen - 1; i++) sv_catpvf(oid, "%lu.", self->key.dp.oid[i]);
220 27 0 if ((h = get_hv("Crypt::PK::ECC::curve_oid2name", 0)) != NULL) {
222 27 0 if (pref) {
223 27 0 cname_ptr = SvPV(*pref, cname_len);
248 1 26 if (self->key.type == -1) croak("FATAL: export_key_der no key");
249 5 21 if (strnEQ(type, "private_short", 16)) {
251 1 4 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PRIVATE|PK_CURVEOID) failed: %s", error_to_string(rv));
254 0 21 else if (strnEQ(type, "private_compressed", 16)) {
256 0 0 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PRIVATE|PK_CURVEOID|PK_COMPRESSED) failed: %s", error_to_string(rv));
259 10 11 else if (strnEQ(type, "private", 7)) {
261 0 10 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PRIVATE) failed: %s", error_to_string(rv));
264 0 11 else if (strnEQ(type, "public_compressed", 15)) {
266 0 0 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PUBLIC|PK_CURVEOID|PK_COMPRESSED) failed: %s", error_to_string(rv));
269 3 8 else if (strnEQ(type, "public_short", 15)) {
271 0 3 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PUBLIC|PK_CURVEOID) failed: %s", error_to_string(rv));
274 8 0 else if (strnEQ(type, "public", 6)) {
276 0 8 if (rv != CRYPT_OK) croak("FATAL: ecc_export_openssl(PK_PUBLIC) failed: %s", error_to_string(rv));
294 0 420 if (self->key.type == -1) croak("FATAL: export_key_der no key");
295 60 360 if (strnEQ(type, "private", 7)) {
297 0 60 if (rv != CRYPT_OK) croak("FATAL: ecc_get_key(private) failed: %s", error_to_string(rv));
300 180 180 else if (strnEQ(type, "public_compressed", 17)) {
302 0 180 if (rv != CRYPT_OK) croak("FATAL: ecc_get_key(public_compressed) failed: %s", error_to_string(rv));
305 180 0 else if (strnEQ(type, "public", 6)) {
307 0 180 if (rv != CRYPT_OK) croak("FATAL: ecc_get_key(public) failed: %s", error_to_string(rv));
327 2 0 data_ptr = (unsigned char *)SvPVbyte(data, data_len);
330 0 2 if (hash_id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
334 0 2 if (rv != CRYPT_OK) croak("FATAL: ecc_encrypt_key failed: %s", error_to_string(rv));
350 2 0 data_ptr = (unsigned char *)SvPVbyte(data, data_len);
353 0 2 if (rv != CRYPT_OK) croak("FATAL: ecc_decrypt_key_ex failed: %s", error_to_string(rv));
372 5 0 data_ptr = (unsigned char *)SvPVbyte(data, data_len);
373 3 2 if (ix == 1 || ix == 2) {
1 2 if (ix == 1 || ix == 2) {
375 0 3 if (id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
377 0 3 if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv));
381 4 1 if (ix == 2 || ix == 3) {
0 4 if (ix == 2 || ix == 3) {
391 0 5 if (rv != CRYPT_OK) croak("FATAL: ecc_sign_hash_ex failed: %s", error_to_string(rv));
410 125 0 data_ptr = (unsigned char *)SvPVbyte(data, data_len);
411 125 0 sig_ptr = (unsigned char *)SvPVbyte(sig, sig_len);
412 3 122 if (ix == 1 || ix == 2) {
1 2 if (ix == 1 || ix == 2) {
414 0 123 if (id == -1) croak("FATAL: find_hash failed for '%s'", hash_name);
416 0 123 if (rv != CRYPT_OK) croak("FATAL: hash_memory failed: %s", error_to_string(rv));
422 124 1 if (ix == 2 || ix == 3) {
0 124 if (ix == 2 || ix == 3) {
428 125 0 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
0 125 if (rv != CRYPT_OK || stat != 1) RETVAL = 0;
442 0 4 if (rv != CRYPT_OK) croak("FATAL: ecc_shared_secret failed: %s", error_to_string(rv));
451 252 1 if (self->key.type != -1) { ecc_free(&self->key); self->key.type = -1; }