Crypt-SecretBuffer
view release on metacpan or search on metacpan
SecretBuffer.xs view on Meta::CPAN
bool
_can_count_copies_in_process_memory()
CODE:
RETVAL= false;
OUTPUT:
RETVAL
IV
_count_matches_in_mem(buf, addr0, addr1)
secret_buffer *buf
UV addr0
UV addr1
CODE:
if (!buf->len)
croak("Empty buffer");
RETVAL= scan_mapped_memory_in_range(addr0, addr1, buf->data, buf->len);
if (RETVAL < 0)
croak("Unimplemented");
OUTPUT:
RETVAL
MODULE = Crypt::SecretBuffer PACKAGE = Crypt::SecretBuffer::Exports
void
unmask_secrets_to(coderef, ...)
SV *coderef
INIT:
int count= 0, i;
secret_buffer *buf= NULL;
PPCODE:
PUSHMARK(SP);
EXTEND(SP, items);
for (i= 1; i < items; i++) {
if (SvOK(ST(i)) && SvROK(ST(i)) && (buf= secret_buffer_from_magic(ST(i), 0)))
PUSHs(secret_buffer_get_stringify_sv(buf));
else
PUSHs(ST(i));
}
PUTBACK;
count= call_sv(coderef, GIMME_V);
SPAGAIN;
XSRETURN(count);
bool
_wait_fh_readable(handle, timeout_sv)
PerlIO *handle
SV *timeout_sv
CODE:
RETVAL= sb_wait_fh_readable(aTHX_ handle, timeout_sv);
OUTPUT:
RETVAL
void
_debug_charset(cset)
secret_buffer_charset *cset
INIT:
HV *hv;
PPCODE:
PUSHs(sv_2mortal((SV*)newRV_noinc((SV*)(hv= newHV()))));
hv_stores(hv, "bitmap", newSVpvn((char*)cset->bitmap, sizeof(cset->bitmap)));
hv_stores(hv, "unicode_above_7F", newSViv(cset->unicode_above_7F));
MODULE = Crypt::SecretBuffer PACKAGE = Crypt::SecretBuffer::AsyncResult
void
wait(result, timeout=-1)
secret_buffer_async_result *result
NV timeout
INIT:
IV os_err, bytes_written;
PPCODE:
if (secret_buffer_async_result_recv(result, (IV)(timeout*1000), &bytes_written, &os_err)) {
EXTEND(sp, 2);
ST(0)= sv_2mortal(newSViv(bytes_written));
ST(1)= sv_2mortal(newSViv(os_err));
XSRETURN(2);
} else {
XSRETURN(0);
}
MODULE = Crypt::SecretBuffer PACKAGE = Crypt::SecretBuffer::ConsoleState
void
new(pkg, ...)
const char *pkg;
ALIAS:
maybe_new = 1
INIT:
sb_console_state cstate, *magic_cstate;
PerlIO *handle= NULL;
SV *auto_restore= NULL;
SV *set_echo= NULL;
SV *set_line_input= NULL;
SV *objref;
bool already_set= true;
if (items == 2) {
IO *io = sv_2io(ST(1));
handle= io? IoIFP(io) : NULL;
} else if (items > 2) {
int i= 1;
if ((items - 1) & 1)
croak("expected even-length key/value attribute list");
for (; i < items; i+= 2) {
STRLEN len;
const char *name= SvPV(ST(i), len);
SV *val= ST(i+1);
if (len == 4 && memcmp(name, "echo", 4) == 0) {
if (SvOK(val)) set_echo= val;
}
else if (len == 6 && memcmp(name, "handle", 6) == 0) {
IO *io = sv_2io(val);
handle= io? IoIFP(io) : NULL;
}
else if (len == 10 && memcmp(name, "line_input", 10) == 0) {
if (SvOK(val)) set_line_input= val;
}
else if (len == 12 && memcmp(name, "auto_restore", 12) == 0) {
if (SvOK(val)) auto_restore= val;
}
else {
croak("Unknown option '%s'", name);
( run in 1.364 second using v1.01-cache-2.11-cpan-e1769b4cff6 )