Crypt-NaCl-Tweet
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void onetimeauth_verify(SV *auth, SV *msg, SV *key)
PREINIT:
STRLEN auth_len, key_len, msg_len;
unsigned char *auth_buf, *key_buf, *msg_buf;
PPCODE:
auth_buf = SvPVbyte(auth, auth_len);
if (auth_len != crypto_onetimeauth_BYTES)
croak("Invalid authenticator length");
key_buf = SvPVbyte(key, key_len);
if (key_len != crypto_onetimeauth_KEYBYTES)
croak("Invalid key length");
msg_buf = SvPVbyte(msg, msg_len);
void sign_keypair()
PREINIT:
SV *pk, *sk;
STRLEN pk_len, sk_len;
unsigned char d[64], *pk_buf, *sk_buf;
long long p[4];
int i, n;
PPCODE:
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSViv(crypto_sign_SECRETKEYBYTES)));
PUTBACK;
n = call_pv("Crypt::NaCl::Tweet::random_bytes", G_SCALAR);
SPAGAIN;
if (n != 1)
croak("Failed to get random bytes (%d)", n);
sk = POPs;
ALIAS:
verify_16 = 1
verify_32 = 2
PREINIT:
STRLEN x_len, y_len, req_len;
unsigned char *x_buf, *y_buf;
int (*func) (const unsigned char *, const unsigned char *);
PPCODE:
switch(ix) {
case 2:
req_len = 32;
func = crypto_verify_32_tweet;
break;
default:
req_len = 16;
func = crypto_verify_16_tweet;
break;
}
( run in 2.493 seconds using v1.01-cache-2.11-cpan-71847e10f99 )