Crypt-Bear
view release on metacpan or search on metacpan
lib/Crypt/Bear.xs view on Meta::CPAN
RETVAL
MODULE = Crypt::Bear PACKAGE = Crypt::Bear::EC PREFIX = br_ec_
BOOT:
ec_default = br_ec_get_default();
ec_sign_default = br_ecdsa_sign_asn1_get_default();
ec_verify_default = br_ecdsa_vrfy_asn1_get_default();
void br_ec_supported_curves(class)
PPCODE:
for (UV i = 0; i < 31; i++) {
if (ec_default->supported_curves & (1 << i)) {
union value value = { .integer = i };
const entry* entry = map_reverse_find(curves, value);
mXPUSHp(entry->key, entry->length);
}
}
MODULE = Crypt::Bear PACKAGE = Crypt::Bear::EC::PublicKey PREFIX = br_ec_public_key_
lib/Crypt/Bear.xs view on Meta::CPAN
flags |= lookup_pem_flag(ST(i));
}
size_t length = br_pem_encode(NULL, data, STRLEN_length_of_data, banner, flags);
RETVAL = make_buffer(length);
br_pem_encode(SvPV_nolen(RETVAL), data, STRLEN_length_of_data, banner, flags);
OUTPUT:
RETVAL
SV* br_pem_pem_decode(const char* data, size_t length(data))
PPCODE:
pem_decoder decoder;
br_pem_decoder_init(&decoder.decoder);
#ifdef MULTIPLICITY
decoder.aTHX = aTHX;
#endif
size_t left = STRLEN_length_of_data;
while (left) {
size_t pushed = br_pem_decoder_push(&decoder.decoder, data, left);
data += pushed;
lib/Crypt/Bear.xs view on Meta::CPAN
CODE:
for (size_t i = 0; i < other->used; i++) {
const br_x509_trust_anchor* old = other->array + i;
br_x509_trust_anchor anchor = { .flags = old->flags };
dn_copy(&anchor.dn, &old->dn);
x509_key_copy(&anchor.pkey, &old->pkey);
trust_anchors_push(self, &anchor);
}
void br_x509_trust_anchors_names(Crypt::Bear::X509::TrustAnchors self)
PPCODE:
for (size_t i = 0; i < self->used; i++) {
const br_x509_trust_anchor* anchor = self->array + i;
mXPUSHp((const char*)anchor->dn.data, anchor->dn.len);
}
UV br_x509_trust_anchors_count(Crypt::Bear::X509::TrustAnchors self)
CODE:
RETVAL = self->used;
OUTPUT:
RETVAL
lib/Crypt/Bear.xs view on Meta::CPAN
unsigned error = br_ssl_engine_last_error(&RETVAL->context.eng);
if (error) {
Safefree(RETVAL);
Perl_croak(aTHX_ "Could not instantiate server: %s", lookup_error(error));
}
OUTPUT:
RETVAL
void br_ssl_server_get_client_suites(Crypt::Bear::SSL::Server self)
PPCODE:
size_t len;
const br_suite_translated* suites = br_ssl_server_get_client_suites(&self->context, &len);
for (size_t i = 0; i < len; i++) {
AV* pair = newAV();
av_push(pair, newSVuv(suites[i][0]));
av_push(pair, newSVuv(suites[i][1]));
mXPUSHs(newRV_noinc((SV*)pair));
}
( run in 2.155 seconds using v1.01-cache-2.11-cpan-71847e10f99 )