line |
true |
false |
branch |
243
|
1 |
0 |
if (trace && SvIOK(trace) && SvIV(trace)>=level) { |
|
1 |
0 |
if (trace && SvIOK(trace) && SvIV(trace)>=level) { |
|
1 |
0 |
if (trace && SvIOK(trace) && SvIV(trace)>=level) { |
|
0 |
1 |
if (trace && SvIOK(trace) && SvIV(trace)>=level) { |
431
|
50 |
39 |
if (!m) return; /* Skip aliases */ |
433
|
18 |
21 |
if (strcmp(from, mname)) return; /* Skip shortnames */ |
435
|
5 |
16 |
if (EVP_MD_flags(m) & EVP_MD_FLAG_PKEY_DIGEST) return; /* Skip clones */ |
437
|
0 |
16 |
if (strchr(mname, ' ')) mname= EVP_MD_name(m); |
493
|
10 |
0 |
if (cb) { |
497
|
1 |
9 |
cb->data = (data == &PL_sv_undef) ? NULL : data; |
504
|
9 |
0 |
if (cb) { |
505
|
9 |
0 |
if (cb->func) { |
509
|
1 |
8 |
if (cb->data) { |
525
|
0 |
353 |
len = my_snprintf(key_name, sizeof(key_name), "ptr_%p", ptr); |
526
|
0 |
353 |
if (len == sizeof(key_name)) return 0; /* error - key_name too short*/ |
530
|
178 |
175 |
if (svtmp == NULL) { |
535
|
0 |
175 |
if (!SvOK(*svtmp) || !SvROK(*svtmp)) return 0; |
|
0 |
0 |
if (!SvOK(*svtmp) || !SvROK(*svtmp)) return 0; |
|
0 |
0 |
if (!SvOK(*svtmp) || !SvROK(*svtmp)) return 0; |
|
0 |
175 |
if (!SvOK(*svtmp) || !SvROK(*svtmp)) return 0; |
545
|
344 |
9 |
if (data!=NULL) { |
546
|
150 |
194 |
if (SvOK(data)) |
|
150 |
0 |
if (SvOK(data)) |
|
0 |
150 |
if (SvOK(data)) |
564
|
0 |
1113 |
len = my_snprintf(key_name, sizeof(key_name), "ptr_%p", ptr); |
565
|
0 |
1113 |
if (len == sizeof(key_name)) return &PL_sv_undef; /* return undef on error - key_name too short*/ |
569
|
3 |
1110 |
if (svtmp == NULL) return &PL_sv_undef; |
570
|
0 |
1110 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
|
0 |
0 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
|
0 |
0 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
571
|
0 |
1110 |
if (!SvROK(*svtmp)) return &PL_sv_undef; |
580
|
480 |
630 |
if (svtmp == NULL) return &PL_sv_undef; |
581
|
0 |
630 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
|
0 |
0 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
|
0 |
0 |
if (!SvOK(*svtmp)) return &PL_sv_undef; |
592
|
0 |
350 |
len = my_snprintf(key_name, sizeof(key_name), "ptr_%p", ptr); |
593
|
0 |
350 |
if (len == sizeof(key_name)) return 0; /* error - key_name too short*/ |
612
|
3 |
18 |
if (!SvOK(cb_func)) { |
|
3 |
0 |
if (!SvOK(cb_func)) { |
|
3 |
0 |
if (!SvOK(cb_func)) { |
617
|
0 |
21 |
if (!SvOK(cb_func)) |
|
0 |
0 |
if (!SvOK(cb_func)) |
|
0 |
0 |
if (!SvOK(cb_func)) |
625
|
0 |
21 |
PUSHMARK(sp); |
626
|
0 |
21 |
EXTEND( sp, 2 ); |
637
|
0 |
21 |
if (count != 1) |
640
|
21 |
0 |
res = POPi; |
643
|
21 |
0 |
FREETMPS; |
660
|
0 |
5 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
666
|
0 |
5 |
PUSHMARK(sp); |
667
|
0 |
5 |
XPUSHs(sv_2mortal(newSViv(rwflag))); |
668
|
0 |
5 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
675
|
0 |
5 |
if (count != 1) |
678
|
5 |
0 |
res = POPp; |
680
|
0 |
5 |
if (res == NULL) { |
688
|
5 |
0 |
FREETMPS; |
766
|
0 |
1 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
772
|
0 |
1 |
PUSHMARK(SP); |
773
|
0 |
1 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(x509_store_ctx)))); |
774
|
0 |
1 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
781
|
0 |
1 |
if (count != 1) |
784
|
1 |
0 |
res = POPi; |
787
|
1 |
0 |
FREETMPS; |
807
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
813
|
0 |
0 |
PUSHMARK(SP); |
814
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
815
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
822
|
0 |
0 |
if (count != 1) |
825
|
0 |
0 |
res = POPi; |
828
|
0 |
0 |
FREETMPS; |
850
|
0 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
854
|
0 |
0 |
if (p) ocsp_response = d2i_OCSP_RESPONSE(NULL, &p, len); |
859
|
0 |
0 |
PUSHMARK(SP); |
860
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
862
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
866
|
0 |
0 |
if (ocsp_response) OCSP_RESPONSE_free(ocsp_response); |
870
|
0 |
0 |
if (nres != 1) |
873
|
0 |
0 |
res = POPi; |
876
|
0 |
0 |
FREETMPS; |
891
|
1 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
1 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
897
|
0 |
1 |
PUSHMARK(SP); |
898
|
0 |
1 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
899
|
0 |
1 |
XPUSHs(sv_2mortal(newSVpvn((const char *)data, len))); |
900
|
0 |
1 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
907
|
0 |
1 |
if (nres != 1) |
910
|
1 |
0 |
res = POPi; |
913
|
1 |
0 |
FREETMPS; |
938
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
944
|
0 |
0 |
PUSHMARK(SP); |
946
|
0 |
0 |
XPUSHs(secretsv); |
947
|
0 |
0 |
for (i=0; i
|
951
|
0 |
0 |
XPUSHs(sv_2mortal(newRV_inc((SV*)ciphers))); |
952
|
0 |
0 |
XPUSHs(sv_2mortal(newRV_inc(pref_cipher))); |
953
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
961
|
0 |
0 |
if (count != 1) |
964
|
0 |
0 |
res = POPi; |
965
|
0 |
0 |
if (res) { |
967
|
0 |
0 |
if (SvIOK(pref_cipher)) |
968
|
0 |
0 |
*cipher = sk_SSL_CIPHER_value(peer_ciphers, SvIV(pref_cipher)); |
984
|
0 |
0 |
FREETMPS; |
1012
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
1018
|
0 |
0 |
PUSHMARK(SP); |
1019
|
0 |
0 |
if (hint != NULL) { |
1021
|
0 |
0 |
XPUSHs(hintsv); |
1030
|
0 |
0 |
if (count != 2) |
1033
|
0 |
0 |
psk_val = POPpx; |
1034
|
0 |
0 |
identity_val = POPpx; |
1036
|
0 |
0 |
my_snprintf(identity, max_identity_len, "%s", identity_val); |
|
0 |
0 |
my_snprintf(identity, max_identity_len, "%s", identity_val); |
1038
|
0 |
0 |
if (BN_hex2bn(&psk_bn, psk_val) > 0) { |
1039
|
0 |
0 |
if (BN_num_bytes(psk_bn) <= max_psk_len) { |
1046
|
0 |
0 |
FREETMPS; |
1072
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
1078
|
0 |
0 |
PUSHMARK(SP); |
1079
|
0 |
0 |
if (hint != NULL) { |
1081
|
0 |
0 |
XPUSHs(hintsv); |
1090
|
0 |
0 |
if (count != 2) |
1093
|
0 |
0 |
psk_val = POPpx; |
1094
|
0 |
0 |
identity_val = POPpx; |
1096
|
0 |
0 |
my_snprintf(identity, max_identity_len, "%s", identity_val); |
|
0 |
0 |
my_snprintf(identity, max_identity_len, "%s", identity_val); |
1098
|
0 |
0 |
if (BN_hex2bn(&psk_bn, psk_val) > 0) { |
1099
|
0 |
0 |
if (BN_num_bytes(psk_bn) <= max_psk_len) { |
1106
|
0 |
0 |
FREETMPS; |
1120
|
0 |
8 |
if (last_index<0) return 0; |
1121
|
16 |
8 |
for(i=0; i<=last_index; i++) { |
1122
|
16 |
0 |
char *p = SvPV_nolen(*av_fetch(list, i, 0)); |
1124
|
0 |
16 |
if (len>255) return 0; |
1125
|
8 |
8 |
if (out) { |
1139
|
0 |
0 |
if (!list || inlen<2) return 0; |
|
0 |
0 |
if (!list || inlen<2) return 0; |
1140
|
0 |
0 |
while (i
|
1142
|
0 |
0 |
if (i+il > inlen) return 0; |
1171
|
0 |
1 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
|
0 |
0 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
1177
|
0 |
0 |
if (!next_proto_helper_protodata2AV(list, in, inlen)) return SSL_TLSEXT_ERR_ALERT_FATAL; |
1181
|
0 |
0 |
PUSHMARK(SP); |
1182
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1183
|
0 |
0 |
XPUSHs(sv_2mortal(newRV_inc((SV*)list))); |
1184
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1188
|
0 |
0 |
if (count != 2) |
1190
|
0 |
0 |
next_proto_data = (unsigned char*)POPpx; |
1191
|
0 |
0 |
next_proto_status = POPi; |
1194
|
0 |
0 |
if (next_proto_len<=255) { |
1204
|
0 |
0 |
FREETMPS; |
1207
|
0 |
0 |
return next_proto_len>255 ? SSL_TLSEXT_ERR_ALERT_FATAL : SSL_TLSEXT_ERR_OK; |
1209
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
1212
|
0 |
1 |
if (!next_proto_data) return SSL_TLSEXT_ERR_ALERT_FATAL; |
1217
|
0 |
1 |
if (next_proto_status != OPENSSL_NPN_NEGOTIATED) { |
1243
|
0 |
1 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
|
0 |
0 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
1248
|
0 |
0 |
PUSHMARK(SP); |
1249
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1250
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1254
|
0 |
0 |
if (count != 1) |
1257
|
0 |
0 |
if (SvOK(tmpsv) && SvROK(tmpsv) && (SvTYPE(SvRV(tmpsv)) == SVt_PVAV)) { |
|
0 |
0 |
if (SvOK(tmpsv) && SvROK(tmpsv) && (SvTYPE(SvRV(tmpsv)) == SVt_PVAV)) { |
|
0 |
0 |
if (SvOK(tmpsv) && SvROK(tmpsv) && (SvTYPE(SvRV(tmpsv)) == SVt_PVAV)) { |
|
0 |
0 |
if (SvOK(tmpsv) && SvROK(tmpsv) && (SvTYPE(SvRV(tmpsv)) == SVt_PVAV)) { |
|
0 |
0 |
if (SvOK(tmpsv) && SvROK(tmpsv) && (SvTYPE(SvRV(tmpsv)) == SVt_PVAV)) { |
1261
|
0 |
0 |
if (protodata) next_proto_helper_AV2protodata(tmpav, protodata); |
1264
|
0 |
0 |
FREETMPS; |
1267
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
1271
|
1 |
0 |
if (protodata) next_proto_helper_AV2protodata(tmpav, protodata); |
1273
|
1 |
0 |
if (protodata) { |
1300
|
0 |
1 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
|
0 |
0 |
if (SvROK(cb_func) && (SvTYPE(SvRV(cb_func)) == SVt_PVCV)) { |
1307
|
0 |
0 |
if (!next_proto_helper_protodata2AV(list, in, inlen)) return SSL_TLSEXT_ERR_ALERT_FATAL; |
1311
|
0 |
0 |
PUSHMARK(SP); |
1312
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1313
|
0 |
0 |
XPUSHs(sv_2mortal(newRV_inc((SV*)list))); |
1314
|
0 |
0 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1318
|
0 |
0 |
if (count != 1) |
1321
|
0 |
0 |
if (SvOK(alpn_data_sv)) { |
|
0 |
0 |
if (SvOK(alpn_data_sv)) { |
|
0 |
0 |
if (SvOK(alpn_data_sv)) { |
1322
|
0 |
0 |
alpn_data = (unsigned char*)SvPV_nolen(alpn_data_sv); |
1324
|
0 |
0 |
if (alpn_len <= 255) { |
1334
|
0 |
0 |
FREETMPS; |
1337
|
0 |
0 |
if (alpn_len>255) return SSL_TLSEXT_ERR_ALERT_FATAL; |
1338
|
0 |
0 |
return alpn_data ? SSL_TLSEXT_ERR_OK : SSL_TLSEXT_ERR_NOACK; |
1340
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(cb_data) && (SvTYPE(SvRV(cb_data)) == SVt_PVAV)) { |
1345
|
0 |
1 |
if (!alpn_data) return SSL_TLSEXT_ERR_ALERT_FATAL; |
1351
|
0 |
1 |
if (status != OPENSSL_NPN_NEGOTIATED) { |
1355
|
1 |
0 |
return status == OPENSSL_NPN_NEGOTIATED ? SSL_TLSEXT_ERR_OK : SSL_TLSEXT_ERR_NOACK; |
1372
|
2 |
0 |
if (cb->func && SvOK(cb->func)) { |
|
0 |
2 |
if (cb->func && SvOK(cb->func)) { |
|
0 |
0 |
if (cb->func && SvOK(cb->func)) { |
|
0 |
0 |
if (cb->func && SvOK(cb->func)) { |
1376
|
0 |
2 |
PUSHMARK(sp); |
1378
|
0 |
2 |
XPUSHs(sv_2mortal( newSViv(bufsize-1) )); |
1379
|
0 |
2 |
XPUSHs(sv_2mortal( newSViv(rwflag) )); |
1380
|
0 |
2 |
if (cb->data) XPUSHs( cb->data ); |
|
0 |
0 |
if (cb->data) XPUSHs( cb->data ); |
1389
|
0 |
2 |
if (count != 1) { |
1393
|
2 |
0 |
str = POPpx; |
1395
|
2 |
0 |
if (str_len+1 < bufsize) { |
1405
|
2 |
0 |
FREETMPS; |
1418
|
641 |
0 |
if (cb->func && SvOK(cb->func)) { |
|
447 |
194 |
if (cb->func && SvOK(cb->func)) { |
|
447 |
0 |
if (cb->func && SvOK(cb->func)) { |
|
0 |
447 |
if (cb->func && SvOK(cb->func)) { |
1422
|
0 |
194 |
PUSHMARK(sp); |
1424
|
0 |
194 |
XPUSHs(sv_2mortal( newSViv(i) )); |
1425
|
0 |
194 |
XPUSHs(sv_2mortal( newSViv(n) )); |
1426
|
60 |
134 |
if (cb->data) XPUSHs( cb->data ); |
|
0 |
60 |
if (cb->data) XPUSHs( cb->data ); |
1432
|
0 |
193 |
if (count != 0) |
1437
|
193 |
0 |
FREETMPS; |
1450
|
16 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
16 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
1456
|
0 |
16 |
PUSHMARK(SP); |
1457
|
0 |
16 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1458
|
0 |
16 |
XPUSHs(sv_2mortal(newSViv(where)) ); |
1459
|
0 |
16 |
XPUSHs(sv_2mortal(newSViv(ret)) ); |
1460
|
0 |
16 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1467
|
16 |
0 |
FREETMPS; |
1480
|
457 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
457 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
1486
|
0 |
457 |
PUSHMARK(SP); |
1487
|
0 |
457 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1488
|
0 |
457 |
XPUSHs(sv_2mortal(newSViv(where)) ); |
1489
|
0 |
457 |
XPUSHs(sv_2mortal(newSViv(ret)) ); |
1490
|
0 |
457 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1497
|
457 |
0 |
FREETMPS; |
1509
|
24 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
24 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
1515
|
0 |
24 |
PUSHMARK(SP); |
1516
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(write_p))); |
1517
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(version))); |
1518
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(content_type))); |
1519
|
0 |
24 |
XPUSHs(sv_2mortal(newSVpv((const char*)buf, len))); |
1520
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(len))); |
1521
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1522
|
0 |
24 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1529
|
24 |
0 |
FREETMPS; |
1542
|
24 |
0 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
24 |
if ( ! SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
1548
|
0 |
24 |
PUSHMARK(SP); |
1549
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(write_p))); |
1550
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(version))); |
1551
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(content_type))); |
1552
|
0 |
24 |
XPUSHs(sv_2mortal(newSVpv((const char*)buf, len))); |
1553
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(len))); |
1554
|
0 |
24 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1555
|
0 |
24 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1562
|
24 |
0 |
FREETMPS; |
1595
|
7 |
0 |
if (!SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
|
0 |
7 |
if (!SvROK(cb_func) || (SvTYPE(SvRV(cb_func)) != SVt_PVCV)) |
1600
|
0 |
7 |
PUSHMARK(SP); |
1602
|
0 |
7 |
XPUSHs(sv_2mortal(newSVsv(cb_data))); |
1604
|
4 |
3 |
if (!enc) { |
1606
|
0 |
4 |
XPUSHs(sv_2mortal(newSVpv((const char *)key_name,16))); |
1617
|
0 |
7 |
if (count>2) |
1621
|
6 |
1 |
if (count>0) { |
1623
|
0 |
6 |
if (SvOK(sname)) { |
|
0 |
0 |
if (SvOK(sname)) { |
|
0 |
0 |
if (SvOK(sname)) { |
1624
|
6 |
0 |
unsigned char *pname = (unsigned char *)SvPV(sname,svlen); |
1625
|
0 |
6 |
if (svlen > 16) |
1627
|
0 |
6 |
if (svlen == 0) |
1634
|
6 |
1 |
if (count>1) { |
1636
|
0 |
6 |
if (SvOK(skey)) { |
|
0 |
0 |
if (SvOK(skey)) { |
|
0 |
0 |
if (SvOK(skey)) { |
1637
|
6 |
0 |
unsigned char *pkey = (unsigned char *)SvPV(skey,svlen); |
1638
|
0 |
6 |
if (svlen != 32 && svlen != 48) |
|
0 |
0 |
if (svlen != 32 && svlen != 48) |
1647
|
7 |
0 |
FREETMPS; |
1650
|
4 |
3 |
if (!enc && usable_rv_count == 0) { |
|
1 |
3 |
if (!enc && usable_rv_count == 0) { |
1654
|
0 |
6 |
if (usable_rv_count != 2) |
1657
|
3 |
3 |
if (enc) { |
1669
|
2 |
1 |
if (memcmp(name,key_name,16) == 0) |
1689
|
0 |
6 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
1695
|
0 |
6 |
PUSHMARK(sp); |
1696
|
0 |
6 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ssl)))); |
1697
|
0 |
6 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(sess)))); |
1704
|
0 |
6 |
if (count != 1) |
1707
|
6 |
0 |
remove = POPi; |
1710
|
6 |
0 |
FREETMPS; |
1724
|
0 |
6 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
|
0 |
0 |
if(!SvOK(cb_func)) |
1730
|
0 |
6 |
PUSHMARK(sp); |
1731
|
0 |
6 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(ctx)))); |
1732
|
0 |
6 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(sess)))); |
1740
|
6 |
0 |
FREETMPS; |
1822
|
0 |
0 |
if (asn1t->type == V_ASN1_UTCTIME) { |
1823
|
0 |
0 |
if (asn1t->length<12 || asn1t->length>17) return 0; |
|
0 |
0 |
if (asn1t->length<12 || asn1t->length>17) return 0; |
1824
|
0 |
0 |
if (asn1t->length>12) tz = 12; |
1826
|
0 |
0 |
if (asn1t->length<14) return 0; |
1827
|
0 |
0 |
if (asn1t->length>14) { |
1828
|
0 |
0 |
if (p[14] == '.') { |
1830
|
0 |
0 |
for(i=msec+1;ilength && p[i]>='0' && p[i]<='9';i++) ; |
|
0 |
0 |
for(i=msec+1;ilength && p[i]>='0' && p[i]<='9';i++) ; |
|
0 |
0 |
for(i=msec+1;ilength && p[i]>='0' && p[i]<='9';i++) ; |
1831
|
0 |
0 |
if (ilength) tz = i; |
1838
|
0 |
0 |
l = msec ? msec : tz ? tz : asn1t->length; |
|
0 |
0 |
l = msec ? msec : tz ? tz : asn1t->length; |
1839
|
0 |
0 |
for(i=0;i
|
1840
|
0 |
0 |
if (p[i]<'0' || p[i]>'9') return 0; |
|
0 |
0 |
if (p[i]<'0' || p[i]>'9') return 0; |
1845
|
0 |
0 |
if (asn1t->type == V_ASN1_UTCTIME) { /* YY - two digit year */ |
1847
|
0 |
0 |
if (t.tm_year < 70) t.tm_year += 100; |
1862
|
0 |
0 |
if (tz) { |
1864
|
0 |
0 |
if (p[tz] == 'Z') { |
1865
|
0 |
0 |
if (asn1t->length>tz+1 ) return 0; |
1866
|
0 |
0 |
} else if (asn1t->length
|
|
0 |
0 |
} else if (asn1t->length
|
|
0 |
0 |
} else if (asn1t->length
|
1869
|
0 |
0 |
if (asn1t->length>tz+5 ) return 0; |
1870
|
0 |
0 |
for(i=tz+1;i
|
1871
|
0 |
0 |
if (p[i]<'0' || p[i]>'9') return 0; |
|
0 |
0 |
if (p[i]<'0' || p[i]>'9') return 0; |
1875
|
0 |
0 |
if (p[tz]=='+') adj*= -1; /* +0500: subtract 5 hours to get UTC */ |
1880
|
0 |
0 |
if (result == -1) return 0; /* broken time */ |
1882
|
0 |
0 |
if (gmtoff && *gmtoff == -1) { |
|
0 |
0 |
if (gmtoff && *gmtoff == -1) { |
1896
|
0 |
0 |
if (chain) { |
1897
|
0 |
0 |
for(i=0;i
|
1898
|
0 |
0 |
if ( X509_check_issued(sk_X509_value(chain,i),cert) == X509_V_OK ) { |
1905
|
0 |
0 |
if ( !issuer && store ) { |
|
0 |
0 |
if ( !issuer && store ) { |
1907
|
0 |
0 |
if (stx && X509_STORE_CTX_init(stx,store,cert,NULL)) { |
|
0 |
0 |
if (stx && X509_STORE_CTX_init(stx,store,cert,NULL)) { |
1909
|
0 |
0 |
if (ok<0) { |
1911
|
0 |
0 |
if(err) { |
1916
|
0 |
0 |
} else if (ok == 0 ) { |
1922
|
0 |
0 |
if (stx) X509_STORE_CTX_free(stx); |
1931
|
8 |
0 |
: &PL_sv_undef; |
2168
|
7 |
0 |
RETVAL = SSL_CTX_load_verify_locations (ctx, |
|
7 |
0 |
RETVAL = SSL_CTX_load_verify_locations (ctx, |
2169
|
7 |
0 |
CAfile?(*CAfile?CAfile:NULL):NULL, |
2170
|
0 |
7 |
CApath?(*CApath?CApath:NULL):NULL |
2189
|
1 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
1 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback) || !SvTRUE(callback)) { |
2236
|
6 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
6 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
2250
|
6 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
6 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
2361
|
18 |
288 |
if (got <= 0 && SSL_ERROR_ZERO_RETURN != SSL_get_error(s, got)) |
|
6 |
12 |
if (got <= 0 && SSL_ERROR_ZERO_RETURN != SSL_get_error(s, got)) |
2368
|
306 |
0 |
if (GIMME_V==G_LIST) { |
|
286 |
20 |
if (GIMME_V==G_LIST) { |
2369
|
0 |
286 |
EXTEND(SP, 2); |
2370
|
281 |
5 |
PUSHs(sv_2mortal(succeeded ? newSVpvn(buf, got) : newSV(0))); |
2375
|
0 |
20 |
EXTEND(SP, 1); |
2376
|
19 |
1 |
PUSHs(sv_2mortal(succeeded ? newSVpvn(buf, got) : newSV(0))); |
2393
|
2 |
3 |
if (got <= 0 && SSL_ERROR_ZERO_RETURN != SSL_get_error(s, got)) |
|
2 |
0 |
if (got <= 0 && SSL_ERROR_ZERO_RETURN != SSL_get_error(s, got)) |
2400
|
5 |
0 |
if (GIMME_V==G_LIST) { |
|
2 |
3 |
if (GIMME_V==G_LIST) { |
2401
|
0 |
2 |
EXTEND(SP, 2); |
2402
|
1 |
1 |
PUSHs(sv_2mortal(succeeded ? newSVpvn(buf, got) : newSV(0))); |
2407
|
0 |
3 |
EXTEND(SP, 1); |
2408
|
2 |
1 |
PUSHs(sv_2mortal(succeeded ? newSVpvn(buf, got) : newSV(0))); |
2517
|
0 |
22 |
if (len < 0) { |
2670
|
2 |
2 |
if( sk == NULL ) { |
2673
|
194 |
2 |
for (i=0; i
|
2675
|
0 |
194 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(c)))); |
2701
|
7 |
0 |
if(SSL_get_shared_ciphers(s, buf, sizeof(buf))) |
2717
|
0 |
0 |
if( chain == NULL ) { |
2720
|
0 |
0 |
for (i=0; i
|
2722
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(x)))); |
2731
|
7 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
7 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
2794
|
0 |
3 |
if (!(len = i2d_SSL_SESSION(sess,NULL))) croak("invalid SSL_SESSION"); |
2796
|
0 |
3 |
if (!pc) croak("out of memory"); |
2799
|
0 |
3 |
XPUSHs(sv_2mortal(newSVpv((char*)pc,len))); |
2808
|
7 |
0 |
if (SvPOK(pv)) { |
2811
|
7 |
0 |
p = (unsigned char*)SvPV(pv,len); |
3083
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
3233
|
43 |
1 |
if (!LIB_initialized) { |
3331
|
0 |
0 |
RAND_add((const void *)SvPV(buf, len), num, entropy); |
3346
|
0 |
3 |
if (!RAND_file_name(buf, num)) { |
3385
|
0 |
0 |
RETVAL = X509_check_host(cert, name, 0, flags, (items == 4) ? &c_peername : NULL); |
3386
|
0 |
0 |
if (items == 4) |
3391
|
0 |
0 |
if (c_peername) |
3407
|
0 |
0 |
c_address = (unsigned char *)SvPV(address, addresslen); |
3514
|
17 |
0 |
if ((buf = X509_NAME_oneline(name, NULL, 0))) { |
3531
|
13 |
0 |
if (bp) { |
3532
|
13 |
0 |
if (X509_NAME_print_ex(bp, name, ident, flags)) { |
3535
|
13 |
0 |
if (buf) { |
3537
|
13 |
0 |
if (i>=0 && i<=n) { |
|
13 |
0 |
if (i>=0 && i<=n) { |
3539
|
0 |
13 |
if (utf8_decode) sv_utf8_decode(ST(0)); |
3558
|
1 |
0 |
if (length>=0) { |
3560
|
1 |
0 |
if (X509_NAME_get_text_by_NID(name, nid, buf, length + 1)>=0) |
3720
|
1 |
0 |
if (crl && crl_number) |
|
1 |
0 |
if (crl && crl_number) |
3721
|
1 |
0 |
if (X509_CRL_add1_ext_i2d(crl, NID_crl_number, crl_number, 0, 0)) RETVAL = 1; |
3732
|
1 |
0 |
if (!RETVAL || i==-1) XSRETURN_UNDEF; |
|
0 |
1 |
if (!RETVAL || i==-1) XSRETURN_UNDEF; |
3752
|
2 |
0 |
if (rev) { |
3753
|
2 |
0 |
if (BN_hex2bn(&bn, serial_hex)) { |
3755
|
2 |
0 |
if (sn) { |
3763
|
0 |
2 |
if (!rv) XSRETURN_IV(0); |
3765
|
0 |
2 |
if (!rev_time) XSRETURN_IV(0); |
3766
|
0 |
2 |
if (!X509_REVOKED_set_revocationDate(rev, rev_time)) XSRETURN_IV(0); |
3768
|
2 |
0 |
if(reason_code) { |
3771
|
2 |
0 |
if (rsn) { |
3772
|
2 |
0 |
if (ASN1_ENUMERATED_set(rsn, reason_code)) |
3773
|
2 |
0 |
if (X509_REVOKED_add1_ext_i2d(rev, NID_crl_reason, rsn, 0, 0)) |
3777
|
0 |
2 |
if (!rv) XSRETURN_IV(0); |
3780
|
2 |
0 |
if(comp_time) { |
3784
|
0 |
2 |
if(!X509_CRL_add0_revoked(crl, rev)) XSRETURN_IV(0); |
3857
|
1 |
1 |
for (i=0; i
|
3860
|
0 |
1 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(s)))); |
3875
|
1 |
0 |
if (items>1) { |
3878
|
6 |
1 |
while(i+1
|
3879
|
6 |
0 |
nid = SvIV(ST(i)); |
3880
|
6 |
0 |
data = SvPV_nolen(ST(i+1)); |
3883
|
6 |
0 |
if (ex) |
3907
|
1 |
0 |
if (items>1) { |
3909
|
6 |
1 |
while(i+1
|
3910
|
6 |
0 |
nid = SvIV(ST(i)); |
3911
|
6 |
0 |
data = SvPV_nolen(ST(i+1)); |
3915
|
6 |
0 |
if (ex) { |
3942
|
1 |
0 |
if (items>1) { |
3944
|
1 |
1 |
while(i+1
|
3945
|
1 |
0 |
nid = SvIV(ST(i)); |
3946
|
1 |
0 |
data = SvPV_nolen(ST(i+1)); |
3950
|
1 |
0 |
if (ex) { |
3977
|
1 |
0 |
if (!x509 || !x509_req) XSRETURN_IV(0); |
|
0 |
1 |
if (!x509 || !x509_req) XSRETURN_IV(0); |
3979
|
6 |
1 |
for(i = 0; i < sk_X509_EXTENSION_num(exts); i++) { |
3984
|
0 |
6 |
if (idx != -1) { |
3985
|
0 |
0 |
if (override) continue; /* don't override existing extension */ |
3992
|
0 |
0 |
} while (idx != -1); |
3994
|
0 |
6 |
if (!X509_add_ext(x509, ext, -1)) ret = 0; |
4048
|
9 |
0 |
if (!k && !strcmp(type,"md5")) { |
|
4 |
5 |
if (!k && !strcmp(type,"md5")) { |
4052
|
5 |
4 |
if (!k && !strcmp(type,"sha1")) { |
|
4 |
1 |
if (!k && !strcmp(type,"sha1")) { |
4057
|
1 |
8 |
if (!k && !strcmp(type,"sha256")) { |
|
0 |
1 |
if (!k && !strcmp(type,"sha256")) { |
4062
|
1 |
8 |
if (!k && !strcmp(type,"ripemd160")) { |
|
0 |
1 |
if (!k && !strcmp(type,"ripemd160")) { |
4065
|
1 |
8 |
if (!k) /* Default digest */ |
4067
|
0 |
9 |
if ( digest_tp == NULL ) { |
4071
|
0 |
9 |
if (!X509_digest(cert, digest_tp, digest, &dsz)) { |
4076
|
164 |
9 |
for(k=0; k
|
4092
|
3 |
2 |
if ( (i = X509_get_ext_by_NID(cert, NID_subject_alt_name, -1)) >= 0 |
4093
|
3 |
0 |
&& (subjAltNameExt = X509_get_ext(cert, i)) |
4094
|
3 |
0 |
&& (subjAltNameDNs = X509V3_EXT_d2i(subjAltNameExt))) |
4098
|
16 |
3 |
for (j = 0; j < num_gnames; j++) |
4105
|
0 |
2 |
EXTEND(SP, 2); |
4118
|
0 |
8 |
EXTEND(SP, 2); |
4131
|
0 |
0 |
EXTEND(SP, 2); |
4142
|
2 |
0 |
if (len < 0 || len > (int)((sizeof(buf) - 1))) |
|
2 |
0 |
if (len < 0 || len > (int)((sizeof(buf) - 1))) |
4144
|
0 |
2 |
EXTEND(SP, 2); |
4152
|
0 |
4 |
EXTEND(SP, 2); |
4177
|
2 |
4 |
for (i = 0; i < sk_DIST_POINT_num(points); i++) { |
4179
|
0 |
2 |
if (!p->distpoint) |
4181
|
2 |
0 |
if (p->distpoint->type == 0) { |
4184
|
2 |
2 |
for (j = 0; j < sk_GENERAL_NAME_num(gnames); j++) { |
4187
|
2 |
0 |
if (gn->type == GEN_URI) { |
4191
|
0 |
2 |
XPUSHs(sv_2mortal(newSVpv((char*)ASN1_STRING_data(gn->d.ia5),ASN1_STRING_length(gn->d.ia5)))); |
4228
|
0 |
0 |
if (!info) XSRETURN_UNDEF; |
4230
|
0 |
0 |
for (i = 0; i < sk_ACCESS_DESCRIPTION_num(info); i++) { |
4232
|
0 |
0 |
if (OBJ_obj2nid(ad->method) == NID_ad_OCSP |
4233
|
0 |
0 |
&& ad->location->type == GEN_URI) { |
4240
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpv( |
4245
|
0 |
0 |
if (GIMME == G_SCALAR) break; /* get only first */ |
|
0 |
0 |
if (GIMME == G_SCALAR) break; /* get only first */ |
4262
|
76 |
16 |
for(i = 0; i < sk_ASN1_OBJECT_num(extusage); i++) { |
4266
|
19 |
57 |
if(format==0) |
4267
|
0 |
19 |
XPUSHs(sv_2mortal(newSVpv(buffer,0))); /* format 0: oid */ |
4268
|
19 |
38 |
else if(format==1 && nid>0) |
|
16 |
3 |
else if(format==1 && nid>0) |
4269
|
0 |
16 |
XPUSHs(sv_2mortal(newSViv(nid))); /* format 1: nid */ |
4270
|
19 |
22 |
else if(format==2 && nid>0) |
|
16 |
3 |
else if(format==2 && nid>0) |
4271
|
0 |
16 |
XPUSHs(sv_2mortal(newSVpv(OBJ_nid2sn(nid),0))); /* format 2: shortname */ |
4272
|
19 |
6 |
else if(format==3 && nid>0) |
|
16 |
3 |
else if(format==3 && nid>0) |
4273
|
0 |
16 |
XPUSHs(sv_2mortal(newSVpv(OBJ_nid2ln(nid),0))); /* format 3: longname */ |
4286
|
4 |
0 |
if (u) { |
4287
|
4 |
0 |
if (ASN1_BIT_STRING_get_bit(u,0)) XPUSHs(sv_2mortal(newSVpv("digitalSignature",0))); |
|
0 |
4 |
if (ASN1_BIT_STRING_get_bit(u,0)) XPUSHs(sv_2mortal(newSVpv("digitalSignature",0))); |
4288
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,1)) XPUSHs(sv_2mortal(newSVpv("nonRepudiation",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,1)) XPUSHs(sv_2mortal(newSVpv("nonRepudiation",0))); |
4289
|
4 |
0 |
if (ASN1_BIT_STRING_get_bit(u,2)) XPUSHs(sv_2mortal(newSVpv("keyEncipherment",0))); |
|
0 |
4 |
if (ASN1_BIT_STRING_get_bit(u,2)) XPUSHs(sv_2mortal(newSVpv("keyEncipherment",0))); |
4290
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,3)) XPUSHs(sv_2mortal(newSVpv("dataEncipherment",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,3)) XPUSHs(sv_2mortal(newSVpv("dataEncipherment",0))); |
4291
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,4)) XPUSHs(sv_2mortal(newSVpv("keyAgreement",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,4)) XPUSHs(sv_2mortal(newSVpv("keyAgreement",0))); |
4292
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,5)) XPUSHs(sv_2mortal(newSVpv("keyCertSign",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,5)) XPUSHs(sv_2mortal(newSVpv("keyCertSign",0))); |
4293
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,6)) XPUSHs(sv_2mortal(newSVpv("cRLSign",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,6)) XPUSHs(sv_2mortal(newSVpv("cRLSign",0))); |
4294
|
0 |
4 |
if (ASN1_BIT_STRING_get_bit(u,7)) XPUSHs(sv_2mortal(newSVpv("encipherOnly",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,7)) XPUSHs(sv_2mortal(newSVpv("encipherOnly",0))); |
4295
|
1 |
3 |
if (ASN1_BIT_STRING_get_bit(u,8)) XPUSHs(sv_2mortal(newSVpv("decipherOnly",0))); |
|
0 |
1 |
if (ASN1_BIT_STRING_get_bit(u,8)) XPUSHs(sv_2mortal(newSVpv("decipherOnly",0))); |
4306
|
0 |
4 |
if (u) { |
4307
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,0)) XPUSHs(sv_2mortal(newSVpv("client",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,0)) XPUSHs(sv_2mortal(newSVpv("client",0))); |
4308
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,1)) XPUSHs(sv_2mortal(newSVpv("server",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,1)) XPUSHs(sv_2mortal(newSVpv("server",0))); |
4309
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,2)) XPUSHs(sv_2mortal(newSVpv("email",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,2)) XPUSHs(sv_2mortal(newSVpv("email",0))); |
4310
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,3)) XPUSHs(sv_2mortal(newSVpv("objsign",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,3)) XPUSHs(sv_2mortal(newSVpv("objsign",0))); |
4311
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,4)) XPUSHs(sv_2mortal(newSVpv("reserved",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,4)) XPUSHs(sv_2mortal(newSVpv("reserved",0))); |
4312
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,5)) XPUSHs(sv_2mortal(newSVpv("sslCA",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,5)) XPUSHs(sv_2mortal(newSVpv("sslCA",0))); |
4313
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,6)) XPUSHs(sv_2mortal(newSVpv("emailCA",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,6)) XPUSHs(sv_2mortal(newSVpv("emailCA",0))); |
4314
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,7)) XPUSHs(sv_2mortal(newSVpv("objCA",0))); |
|
0 |
0 |
if (ASN1_BIT_STRING_get_bit(u,7)) XPUSHs(sv_2mortal(newSVpv("objCA",0))); |
4368
|
21 |
0 |
if (bp) { |
4369
|
21 |
0 |
if(X509V3_EXT_print(bp,ext,flags,indent)) { |
4372
|
21 |
0 |
if (buf) { |
4374
|
21 |
0 |
if (i>=0 && i<=n) { |
|
21 |
0 |
if (i>=0 && i<=n) { |
4376
|
0 |
21 |
if (utf8_decode) sv_utf8_decode(ST(0)); |
4537
|
0 |
3 |
if (!BN_hex2bn(&bn, str)) XSRETURN_IV(0); |
4538
|
0 |
3 |
if (!BN_to_ASN1_INTEGER(bn, i)) rv = 0; |
4551
|
0 |
1 |
if (!BN_dec2bn(&bn, str)) XSRETURN_IV(0); |
4552
|
0 |
1 |
if (!BN_to_ASN1_INTEGER(bn, i)) rv = 0; |
4564
|
0 |
6 |
if (!bn) XSRETURN_UNDEF; |
4568
|
0 |
6 |
if (!result) XSRETURN_UNDEF; |
4569
|
0 |
6 |
XPUSHs(sv_2mortal(newSVpv((const char*)result, strlen(result)))); |
4580
|
0 |
5 |
if (!bn) XSRETURN_UNDEF; |
4584
|
0 |
5 |
if (!result) XSRETURN_UNDEF; |
4585
|
0 |
5 |
XPUSHs(sv_2mortal(newSVpv((const char*)result, strlen(result)))); |
4600
|
43 |
44 |
if (utf8_decode) sv_utf8_decode(u8); |
4601
|
0 |
87 |
XPUSHs(sv_2mortal(u8)); |
4673
|
4 |
0 |
if (tm) { |
4675
|
4 |
0 |
if (bp) { |
4679
|
4 |
0 |
if (i>0) |
4698
|
34 |
0 |
if (tmp) { |
4699
|
34 |
0 |
if (ASN1_GENERALIZEDTIME_check(tmp)) { |
4700
|
34 |
0 |
if (strlen((char*)tmp->data)>=14 && strlen((char*)tmp->data)<200) { |
|
34 |
0 |
if (strlen((char*)tmp->data)>=14 && strlen((char*)tmp->data)<200) { |
4708
|
34 |
0 |
if (strlen((char*)tmp->data)>14) strcat(buf+19,(char*)tmp->data+14); |
4725
|
0 |
13 |
if (!tm) XSRETURN_UNDEF; |
4727
|
0 |
13 |
if (strlen(str) < 19) XSRETURN_UNDEF; |
4728
|
52 |
0 |
for (i=0; i<4; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
52 |
for (i=0; i<4; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
52 |
13 |
for (i=0; i<4; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4729
|
26 |
0 |
for (i=5; i<7; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
26 |
for (i=5; i<7; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
26 |
13 |
for (i=5; i<7; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4730
|
26 |
0 |
for (i=8; i<10; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
26 |
for (i=8; i<10; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
26 |
13 |
for (i=8; i<10; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4731
|
26 |
0 |
for (i=11; i<13; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
26 |
for (i=11; i<13; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
26 |
13 |
for (i=11; i<13; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4732
|
26 |
0 |
for (i=14; i<16; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
26 |
for (i=14; i<16; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
26 |
13 |
for (i=14; i<16; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4733
|
26 |
0 |
for (i=17; i<19; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
0 |
26 |
for (i=17; i<19; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
|
26 |
13 |
for (i=17; i<19; i++) if ((str[i] > '9') || (str[i] < '0')) XSRETURN_UNDEF; |
4741
|
13 |
0 |
if (strlen(str)>19 && strlen(str)<200) strcat(buf,str+19); |
|
13 |
0 |
if (strlen(str)>19 && strlen(str)<200) strcat(buf,str+19); |
4749
|
13 |
0 |
if (!ASN1_TIME_check(&t)) { |
4751
|
0 |
13 |
if (!ASN1_TIME_check(&t)) XSRETURN_UNDEF; |
4755
|
0 |
13 |
if (!ASN1_STRING_set(tm,t.data,t.length)) XSRETURN_UNDEF; |
4809
|
3 |
0 |
if (bp && x509) { |
|
3 |
0 |
if (bp && x509) { |
4813
|
3 |
0 |
if (buf) { |
4815
|
3 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
|
3 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
4831
|
1 |
0 |
if (bp && x509_req) { |
|
1 |
0 |
if (bp && x509_req) { |
4835
|
1 |
0 |
if (buf) { |
4837
|
1 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
|
1 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
4853
|
1 |
0 |
if (bp && x509_crl) { |
|
1 |
0 |
if (bp && x509_crl) { |
4857
|
1 |
0 |
if (buf) { |
4859
|
1 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
|
1 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
4880
|
6 |
0 |
if (bp && pk) { |
|
6 |
0 |
if (bp && pk) { |
4881
|
2 |
4 |
if (passwd) passwd_len = strlen(passwd); |
4882
|
2 |
4 |
if (passwd_len>0) { |
4884
|
1 |
1 |
if (!enc_alg) |
4895
|
6 |
0 |
if (buf) { |
4897
|
6 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
|
6 |
0 |
if (i>=0 && i<=n) sv_setpvn(ST(0), buf, i); |
4916
|
0 |
0 |
if (bio) { |
4922
|
0 |
0 |
if ((p12 = d2i_PKCS12_bio(bio, NULL))) { |
4923
|
0 |
0 |
if (PKCS12_parse(p12, password, &private_key, &certificate, NULL)) { |
4924
|
0 |
0 |
if (private_key) { |
4925
|
0 |
0 |
if (SSL_CTX_use_PrivateKey(ctx, private_key)) RETVAL = 1; |
4928
|
0 |
0 |
if (certificate) { |
4929
|
0 |
0 |
if (SSL_CTX_use_certificate(ctx, certificate)) RETVAL = 1; |
4935
|
0 |
0 |
if (!RETVAL) ERR_print_errors_fp(stderr); |
4956
|
4 |
0 |
if (bio) { |
4962
|
4 |
0 |
if ((p12 = d2i_PKCS12_bio(bio, NULL))) { |
4963
|
3 |
1 |
if(load_chain) |
4967
|
4 |
0 |
if (result) { |
4968
|
4 |
0 |
if (private_key) |
4969
|
0 |
4 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(private_key)))); |
4971
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpv(NULL,0))); /* undef */ |
4972
|
4 |
0 |
if (certificate) |
4973
|
0 |
4 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(certificate)))); |
4975
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpv(NULL,0))); /* undef */ |
4976
|
1 |
3 |
if (cachain) { |
4977
|
2 |
1 |
for (i=0; i
|
4979
|
0 |
2 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(x)))); |
5019
|
9 |
0 |
if (MD4(data,len,md)) { |
5037
|
9 |
0 |
if (MD5(data,len,md)) { |
5055
|
9 |
0 |
if (RIPEMD160(data,len,md)) { |
5073
|
8 |
0 |
if (SHA1(data,len,md)) { |
5090
|
8 |
0 |
if (SHA256(data,len,md)) { |
5107
|
8 |
0 |
if (SHA512(data,len,md)) { |
5298
|
55 |
83 |
if ((got = BIO_read(s, buf, max)) >= 0) |
5375
|
0 |
194 |
if(description == NULL) { |
5378
|
0 |
194 |
XPUSHs(sv_2mortal(newSVpv(description, 0))); |
5389
|
0 |
390 |
if (items > 2) croak("SSL_CIPHER_get_bits: Need to call with one or two parameters"); |
5390
|
194 |
196 |
if (items > 1) sv_setsv(ST(1), sv_2mortal(newSViv(alg_bits))); |
5457
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
5486
|
4 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
4 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
5503
|
2 |
0 |
if (data==NULL || !SvOK(data)) { |
|
0 |
2 |
if (data==NULL || !SvOK(data)) { |
|
0 |
0 |
if (data==NULL || !SvOK(data)) { |
|
0 |
0 |
if (data==NULL || !SvOK(data)) { |
5619
|
3 |
1 |
if (count > finished_len) |
5638
|
3 |
1 |
if (count > finished_len) |
5756
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
5772
|
148 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
148 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
5788
|
2 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
5804
|
2 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
6119
|
0 |
1 |
if (SvIOK(curve)) { |
6120
|
0 |
0 |
nid = SvIV(curve); |
6122
|
1 |
0 |
nid = OBJ_sn2nid(SvPV_nolen(curve)); |
6124
|
0 |
1 |
if (!nid) nid = EC_curve_nist2nid(SvPV_nolen(curve)); |
|
0 |
0 |
if (!nid) nid = EC_curve_nist2nid(SvPV_nolen(curve)); |
6126
|
0 |
1 |
if (!nid) croak("unknown curve %s",SvPV_nolen(curve)); |
|
0 |
0 |
if (!nid) croak("unknown curve %s",SvPV_nolen(curve)); |
6130
|
0 |
1 |
if (!group) croak("unknown curve nid=%d",nid); |
6134
|
1 |
0 |
if ( eckey |
6135
|
1 |
0 |
&& EC_KEY_set_group(eckey, group) |
6136
|
1 |
0 |
&& EC_KEY_generate_key(eckey)) { |
6139
|
0 |
0 |
if (eckey) EC_KEY_free(eckey); |
6141
|
1 |
0 |
if (group) EC_GROUP_free(group); |
6354
|
0 |
8 |
if(!e) |
6360
|
0 |
8 |
if(!ret) { |
6382
|
7 |
0 |
if (rc == -1 || ret == NULL) { |
|
0 |
7 |
if (rc == -1 || ret == NULL) { |
6383
|
0 |
0 |
if (ret) RSA_free(ret); |
6436
|
0 |
1 |
XPUSHs(bn2sv(rsa->n)); |
6437
|
0 |
1 |
XPUSHs(bn2sv(rsa->e)); |
6438
|
0 |
1 |
XPUSHs(bn2sv(rsa->d)); |
6439
|
0 |
1 |
XPUSHs(bn2sv(rsa->p)); |
6440
|
0 |
1 |
XPUSHs(bn2sv(rsa->q)); |
6441
|
0 |
1 |
XPUSHs(bn2sv(rsa->dmp1)); |
6442
|
0 |
1 |
XPUSHs(bn2sv(rsa->dmq1)); |
6443
|
0 |
1 |
XPUSHs(bn2sv(rsa->iqmp)); |
6569
|
6 |
2 |
if (SvOK(perl_cb)) { |
|
6 |
0 |
if (SvOK(perl_cb)) { |
|
0 |
6 |
if (SvOK(perl_cb)) { |
6575
|
6 |
0 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
6 |
0 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
6 |
0 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
4 |
2 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
0 |
4 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
|
2 |
0 |
else if (!SvOK(perl_cb) && SvOK(perl_data) && SvPOK(perl_data)) { |
6579
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
|
4 |
0 |
else if (!SvOK(perl_cb) && !SvOK(perl_data)) { |
6732
|
1 |
0 |
if (s == NULL || |
|
1 |
0 |
if (s == NULL || |
6733
|
1 |
0 |
s->enc_read_ctx == NULL || |
6734
|
0 |
1 |
s->enc_read_ctx->cipher == NULL || |
6752
|
1 |
0 |
if (s->s3) |
6765
|
1 |
0 |
: -1; |
6782
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
6802
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
6816
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
6835
|
3 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
3 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
6929
|
57 |
0 |
if (EVP_DigestFinal(ctx,md,&md_size)) |
6941
|
9 |
0 |
if (EVP_DigestFinal_ex(ctx,md,&md_size)) |
6957
|
48 |
0 |
if (EVP_Digest(data,len,md,&md_size,type,impl)) |
7279
|
4 |
0 |
if (X509_pubkey_digest(data,type,md,&md_size)) |
7294
|
4 |
0 |
if (X509_digest(data,type,md,&md_size)) |
7306
|
1 |
0 |
if (X509_CRL_digest(data,type,md,&md_size)) |
7318
|
1 |
0 |
if (X509_REQ_digest(data,type,md,&md_size)) |
7330
|
0 |
0 |
if (X509_NAME_digest(data,type,md,&md_size)) |
7379
|
0 |
1 |
if (!(pkey = X509_get_X509_PUBKEY(x))) croak("invalid certificate"); |
7380
|
0 |
1 |
if (!(len = i2d_X509_PUBKEY(pkey, NULL))) croak("invalid certificate public key"); |
7382
|
0 |
1 |
if (!pc) croak("out of memory"); |
7385
|
0 |
1 |
if (pi-pc != len) croak("invalid encoded length"); |
7386
|
0 |
1 |
XPUSHs(sv_2mortal(newSVpv((char*)pc,len))); |
7398
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
7404
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
7411
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
7430
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
7436
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
7443
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
7463
|
0 |
2 |
XPUSHs(sv_2mortal(newSVpv((char *)data, len))); |
7469
|
0 |
1 |
XPUSHs(sv_2mortal(newSVsv(cb_data_advanced_get((void*)s, "next_proto_select_cb!!last_status")))); |
7503
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
7507
|
0 |
0 |
} else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
|
0 |
0 |
} else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
7524
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
7528
|
1 |
0 |
} else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
|
1 |
0 |
} else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
7548
|
1 |
0 |
if (ticketlen > 0) { |
7550
|
0 |
1 |
if (!p) |
7566
|
0 |
0 |
if (SvPOK(pv)) { |
7569
|
0 |
0 |
p = (unsigned char*)SvPV(pv,len); |
7581
|
0 |
0 |
if (!(len = i2d_OCSP_RESPONSE(r,NULL))) croak("invalid OCSP response"); |
7583
|
0 |
0 |
if (!pc) croak("out of memory"); |
7586
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpv((char*)pc,len))); |
7599
|
0 |
0 |
if (SvPOK(pv)) { |
7602
|
0 |
0 |
p = (unsigned char*)SvPV(pv,len); |
7614
|
0 |
0 |
if (!(len = i2d_OCSP_REQUEST(r,NULL))) croak("invalid OCSP request"); |
7616
|
0 |
0 |
if (!pc) croak("out of memory"); |
7619
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpv((char*)pc,len))); |
7647
|
0 |
0 |
if (!ssl) croak("not a SSL object"); |
7649
|
0 |
0 |
if (!ctx) croak("invalid SSL object - no context"); |
7653
|
0 |
0 |
for(i=0;i
|
7654
|
0 |
0 |
cert = INT2PTR(X509*,SvIV(ST(i+1))); |
7655
|
0 |
0 |
if (X509_check_issued(cert,cert) == X509_V_OK) |
7657
|
0 |
0 |
if (!(issuer = find_issuer(cert,store,chain))) |
7661
|
0 |
0 |
if (!id) |
7665
|
0 |
0 |
if (!(len = i2d_OCSP_CERTID(id,&pi))) |
7667
|
0 |
0 |
XPUSHs(sv_2mortal(newSVpvn((char *)pi, len))); |
7682
|
0 |
0 |
if (!req) croak("out of memory"); |
7685
|
0 |
0 |
for(i=0;i
|
7687
|
0 |
0 |
const unsigned char *p = (unsigned char*)SvPV(ST(i),len); |
7689
|
0 |
0 |
if (!id) { |
7714
|
0 |
0 |
if (!ssl) croak("not a SSL object"); |
7716
|
0 |
0 |
if (!ctx) croak("invalid SSL object - no context"); |
7719
|
0 |
0 |
if (!bsr) croak("invalid OCSP response"); |
7723
|
0 |
0 |
if (svreq && SvOK(svreq) && |
|
0 |
0 |
if (svreq && SvOK(svreq) && |
|
0 |
0 |
if (svreq && SvOK(svreq) && |
|
0 |
0 |
if (svreq && SvOK(svreq) && |
|
0 |
0 |
if (svreq && SvOK(svreq) && |
7724
|
0 |
0 |
(req = INT2PTR(OCSP_REQUEST*,SvIV(svreq)))) { |
7726
|
0 |
0 |
if ( i <= 0 ) { |
7727
|
0 |
0 |
if (i == -1) { |
7737
|
0 |
0 |
if ((store = SSL_CTX_get_cert_store(ctx))) { |
7742
|
0 |
0 |
for(i=0;i
|
7747
|
0 |
0 |
if (chain && !RETVAL) { |
|
0 |
0 |
if (chain && !RETVAL) { |
7755
|
0 |
0 |
if (last && (issuer = find_issuer(last,store,chain))) { |
|
0 |
0 |
if (last && (issuer = find_issuer(last,store,chain))) { |
7779
|
0 |
0 |
if (!bsr) croak("invalid OCSP response"); |
7781
|
0 |
0 |
want_array = (GIMME == G_LIST); |
7785
|
0 |
0 |
for(i=0; i < (getall ? sksn : items-1); i++) { |
|
0 |
0 |
for(i=0; i < (getall ? sksn : items-1); i++) { |
7793
|
0 |
0 |
if(getall) { |
7800
|
0 |
0 |
if (!SvOK(idsv)) croak("undefined certid in arguments"); |
|
0 |
0 |
if (!SvOK(idsv)) croak("undefined certid in arguments"); |
|
0 |
0 |
if (!SvOK(idsv)) croak("undefined certid in arguments"); |
7801
|
0 |
0 |
p = (unsigned char*)SvPV(idsv,len); |
7802
|
0 |
0 |
if (!(certid = d2i_OCSP_CERTID(NULL,&p,len))) { |
7807
|
0 |
0 |
if (first >= 0) |
7811
|
0 |
0 |
if (sir) |
7817
|
0 |
0 |
if (status == V_OCSP_CERTSTATUS_REVOKED) |
7822
|
0 |
0 |
if (status == V_OCSP_CERTSTATUS_REVOKED) { |
7824
|
0 |
0 |
} else if (status != V_OCSP_CERTSTATUS_GOOD) { |
7827
|
0 |
0 |
else if (!OCSP_check_validity(thisupdate, nextupdate, 0, -1)) { |
7835
|
0 |
0 |
if (want_array) { |
7837
|
0 |
0 |
if (!idsv) { |
7845
|
0 |
0 |
if(!len) continue; |
7847
|
0 |
0 |
if (!pc) croak("out of memory"); |
7861
|
0 |
0 |
av_push(idav, error ? newSVpv(error,0) : newSV(0)); |
7862
|
0 |
0 |
if (sir) { |
7867
|
0 |
0 |
if (nextupdate) hv_store(details,"nextUpdate",10, |
7869
|
0 |
0 |
if (thisupdate) hv_store(details,"thisUpdate",10, |
7871
|
0 |
0 |
if (status == V_OCSP_CERTSTATUS_REVOKED) { |
7882
|
0 |
0 |
XPUSHs(sv_2mortal(newRV_noinc((SV*)idav))); |
7883
|
0 |
0 |
} else if (!error) { |
7886
|
0 |
0 |
if (!nextupd || nextupd>nu) nextupd = nu; |
|
0 |
0 |
if (!nextupd || nextupd>nu) nextupd = nu; |
7889
|
0 |
0 |
if (certid) OCSP_CERTID_free(certid); |
7890
|
0 |
0 |
if (error && !want_array) { |
|
0 |
0 |
if (error && !want_array) { |
7896
|
0 |
0 |
if (!want_array) |
7897
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(nextupd))); |
7912
|
1 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
1 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
|
0 |
0 |
if (callback==NULL || !SvOK(callback)) { |
7918
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
|
1 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVAV)) { |
7925
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
|
0 |
0 |
else if (SvROK(callback) && (SvTYPE(SvRV(callback)) == SVt_PVCV)) { |
7948
|
1 |
0 |
if (!SvROK(data) || (SvTYPE(SvRV(data)) != SVt_PVAV)) |
|
0 |
1 |
if (!SvROK(data) || (SvTYPE(SvRV(data)) != SVt_PVAV)) |
7952
|
0 |
1 |
if (!alpn_data) |
7972
|
0 |
0 |
if (!SvROK(data) || (SvTYPE(SvRV(data)) != SVt_PVAV)) |
|
0 |
0 |
if (!SvROK(data) || (SvTYPE(SvRV(data)) != SVt_PVAV)) |
7976
|
0 |
0 |
if (!alpn_data) |
7993
|
0 |
2 |
XPUSHs(sv_2mortal(newSVpv((char *)data, len))); |
8016
|
9 |
6 |
if (context != &PL_sv_undef) { |
8018
|
9 |
0 |
context_arg = SvPV( ST(3), contextlen); |
8021
|
15 |
0 |
PUSHs(sv_2mortal(ret>0 ? newSVpvn((const char *)out, outlen) : newSV(0))); |
8022
|
0 |
15 |
EXTEND(SP, 1); |