view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::CubeHash::XS self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::CubeHash::XS self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::ECHO self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::ECHO self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::EdonR self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::EdonR self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
Fnv64_t *
fnv64_t(a)
SV * a
INIT:
Fnv64_t * tfnv;
PPCODE:
tfnv = fnv64_t(SvPV_nolen(a));
if (tfnv==0UL) {
XPUSHs(sv_2mortal(newSVnv(-1)));
}
else {
Fnv64_t *
fnv64a_t(a)
SV * a
INIT:
Fnv64_t * tfnv;
PPCODE:
tfnv = fnv64a_t(SvPV_nolen(a));
if (tfnv==0UL) {
XPUSHs(sv_2mortal(newSVnv(-1)));
}
else {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Digest/FarmHash.xs view on Meta::CPAN
void
farmhash128(const char* data, size_t length(data), ...)
PREINIT:
uint128_t ret;
PPCODE:
if (items == 1) {
ret = Hash128(data, STRLEN_length_of_data);
} else if (items == 3) {
ret = Hash128WithSeed(data, STRLEN_length_of_data, Uint128(SvUV(ST(1)), SvUV(ST(2))));
} else {
lib/Digest/FarmHash.xs view on Meta::CPAN
void
farmhash_fingerprint128(const char* data, size_t length(data))
PREINIT:
uint128_t ret;
PPCODE:
ret = Fingerprint128(data, STRLEN_length_of_data);
EXTEND(SP, 2);
mPUSHu(Uint128Low64(ret));
mPUSHu(Uint128High64(ret));
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Fugue self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Fugue self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::GOST self
PPCODE:
rhash_gost_init(self);
XSRETURN(1);
void
add (self, ...)
Digest::GOST self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
rhash_gost_update(self, data, len);
}
XSRETURN(1);
RETVAL
void
reset (self)
Digest::GOST::CryptoPro self
PPCODE:
rhash_gost_cryptopro_init(self);
XSRETURN(1);
void
digest (self)
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Groestl self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Groestl self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Hamsi self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Hamsi self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::JH self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::JH self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Keccak self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Keccak self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Luffa self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Luffa self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass)
SV* xclass
PREINIT:
MD2_CTX* context;
PPCODE:
if (!SvROK(xclass)) {
STRLEN my_na;
char *sclass = SvPV(xclass, my_na);
New(55, context, 1, MD2_CTX);
ST(0) = sv_newmortal();
SV* self
PREINIT:
MD2_CTX* cont = get_md2_ctx(self);
char *myname = sv_reftype(SvRV(self),TRUE);
MD2_CTX* context;
PPCODE:
STRLEN my_na;
New(55, context, 1, MD2_CTX);
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), myname , (void*)context);
SvREADONLY_on(SvRV(ST(0)));
PREINIT:
MD2_CTX* context = get_md2_ctx(self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPVbyte(ST(i), len));
MD2Update(context, data, len);
}
XSRETURN(1); /* self */
Digest::MD2::digest = F_BIN
Digest::MD2::hexdigest = F_HEX
Digest::MD2::b64digest = F_B64
PREINIT:
unsigned char digeststr[16];
PPCODE:
MD2Final(digeststr, context);
MD2Init(context); /* In case it is reused */
ST(0) = make_mortal_sv(digeststr, ix);
XSRETURN(1);
MD2_CTX ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[16];
PPCODE:
MD2Init(&ctx);
if (DOWARN) {
char *msg = 0;
if (items == 1) {
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass)
SV* xclass
PREINIT:
MD4_CTX* context;
PPCODE:
if (!SvROK(xclass)) {
STRLEN my_na;
char *sclass = SvPV(xclass, my_na);
New(55, context, 1, MD4_CTX);
context->signature = MD4_CTX_SIGNATURE;
SV* self
PREINIT:
MD4_CTX* cont = get_md4_ctx(self);
const char *myname = sv_reftype(SvRV(self),TRUE);
MD4_CTX* context;
PPCODE:
New(55, context, 1, MD4_CTX);
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), myname , (void*)context);
SvREADONLY_on(SvRV(ST(0)));
memcpy(context,cont,sizeof(MD4_CTX));
PREINIT:
MD4_CTX* context = get_md4_ctx(self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPVbyte(ST(i), len));
MD4Update(context, data, len);
}
XSRETURN(1); /* self */
Digest::MD4::digest = F_BIN
Digest::MD4::hexdigest = F_HEX
Digest::MD4::b64digest = F_B64
PREINIT:
unsigned char digeststr[16];
PPCODE:
MD4Final(digeststr, context);
MD4Init(context); /* In case it is reused */
ST(0) = make_mortal_sv(digeststr, ix);
XSRETURN(1);
MD4_CTX ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[16];
PPCODE:
MD4Init(&ctx);
if (DOWARN) {
char *msg = 0;
if (items == 1) {
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass)
SV* xclass
PREINIT:
MD5_CTX* context;
PPCODE:
if (!SvROK(xclass)) {
STRLEN my_na;
char *sclass = SvPV(xclass, my_na);
New(55, context, 1, MD5_CTX);
context->signature = MD5_CTX_SIGNATURE;
SV* self
PREINIT:
MD5_CTX* cont = get_md5_ctx(aTHX_ self);
char *myname = sv_reftype(SvRV(self),TRUE);
MD5_CTX* context;
PPCODE:
STRLEN my_na;
New(55, context, 1, MD5_CTX);
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), myname , (void*)context);
SvREADONLY_on(SvRV(ST(0)));
PREINIT:
MD5_CTX* context = get_md5_ctx(aTHX_ self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPVbyte(ST(i), len));
MD5Update(context, data, len);
}
XSRETURN(1); /* self */
Digest::MD5::M4p::digest = F_BIN
Digest::MD5::M4p::hexdigest = F_HEX
Digest::MD5::M4p::b64digest = F_B64
PREINIT:
unsigned char digeststr[16];
PPCODE:
MD5Final(digeststr, context);
MD5Init(context); /* In case it is reused */
ST(0) = make_mortal_sv(aTHX_ digeststr, ix);
XSRETURN(1);
MD5_CTX ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[16];
PPCODE:
MD5Init(&ctx);
if (DOWARN) {
char *msg = 0;
if (items == 1) {
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass)
SV* xclass
PREINIT:
MD5_CTX* context;
PPCODE:
if (!SvROK(xclass)) {
STRLEN my_na;
const char *sclass = SvPV(xclass, my_na);
New(55, context, 1, MD5_CTX);
ST(0) = sv_2mortal(new_md5_ctx(aTHX_ context, sclass));
SV* self
PREINIT:
MD5_CTX* cont = get_md5_ctx(aTHX_ self);
const char *myname = sv_reftype(SvRV(self),TRUE);
MD5_CTX* context;
PPCODE:
New(55, context, 1, MD5_CTX);
ST(0) = sv_2mortal(new_md5_ctx(aTHX_ context, myname));
memcpy(context,cont,sizeof(MD5_CTX));
XSRETURN(1);
PREINIT:
MD5_CTX* context = get_md5_ctx(aTHX_ self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
U32 had_utf8 = SvUTF8(ST(i));
data = (unsigned char *)(SvPVbyte(ST(i), len));
MD5Update(context, data, len);
if (had_utf8) sv_utf8_upgrade(ST(i));
Digest::MD5::digest = F_BIN
Digest::MD5::hexdigest = F_HEX
Digest::MD5::b64digest = F_B64
PREINIT:
unsigned char digeststr[16];
PPCODE:
MD5Final(digeststr, context);
MD5Init(context); /* In case it is reused */
ST(0) = make_mortal_sv(aTHX_ digeststr, ix);
XSRETURN(1);
context(ctx, ...)
MD5_CTX* ctx
PREINIT:
char out[16];
U32 w;
PPCODE:
if (items > 2) {
STRLEN len;
unsigned long blocks = SvUV(ST(1));
unsigned char *buf = (unsigned char *)(SvPV(ST(2), len));
ctx->A = buf[ 0] | (buf[ 1]<<8) | (buf[ 2]<<16) | (buf[ 3]<<24);
MD5_CTX ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[16];
PPCODE:
MD5Init(&ctx);
if ((PL_dowarn & G_WARN_ON) || ckWARN(WARN_SYNTAX)) {
const char *msg = 0;
if (items == 1) {
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass, ...)
SV* xclass
PREINIT:
md6_state* context;
PPCODE:
int digest_len = (int) SvIV(get_sv("Digest::MD6::HASH_LENGTH", FALSE));
if (!SvROK(xclass)) {
STRLEN my_na;
char *sclass = SvPV(xclass, my_na);
New(55, context, 1, md6_state);
SV* self
PREINIT:
md6_state* cont = get_md6_ctx(aTHX_ self);
const char *myname = sv_reftype(SvRV(self),TRUE);
md6_state* context;
PPCODE:
New(55, context, 1, md6_state);
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), myname , (void*)context);
SvREADONLY_on(SvRV(ST(0)));
memcpy(context,cont,sizeof(md6_state));
void
reset(self)
SV* self
PREINIT:
md6_state* context = get_md6_ctx(aTHX_ self);
PPCODE:
MD6Init(context, context->d);
XSRETURN(1); /* self */
void
add(self, ...)
PREINIT:
md6_state* context = get_md6_ctx(aTHX_ self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
MD6Update(context, data, len);
}
XSRETURN(1); /* self */
md6_state* context = get_md6_ctx(aTHX_ self);
int i;
unsigned char *data;
STRLEN len;
IV bits;
PPCODE:
if (!(items & 1)) {
croak("add_bits expects a number of data, length pairs");
}
for (i = 1; i < items; i += 2) {
data = (unsigned char *)(SvPV(ST(i), len));
Digest::MD6::digest = F_BIN
Digest::MD6::hexdigest = F_HEX
Digest::MD6::b64digest = F_B64
PREINIT:
unsigned char digeststr[HASH_MAX_BYTES];
PPCODE:
MD6Final(digeststr, context);
MD6Init(context, context->d); /* In case it is reused */
ST(0) = make_mortal_sv(aTHX_ digeststr, context->d, ix);
XSRETURN(1);
md6_state ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[HASH_MAX_BYTES];
PPCODE:
int digest_len = (int) SvIV(get_sv("Digest::MD6::HASH_LENGTH", FALSE));
MD6Init(&ctx, digest_len);
if (DOWARN) {
char *msg = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
src/perl-murmurhash3.xs view on Meta::CPAN
void
murmur32( char *key, UV seed = 0, IV length(key) )
PREINIT:
uint32_t out;
PPCODE:
MurmurHash3_x86_32( key, STRLEN_length_of_key, seed, &out );
EXTEND(SP, 1);
mXPUSHu( out );
void
murmur128_x86 ( char *key, UV seed = 0, IV length(key) )
PREINIT:
uint32_t out[4];
PPCODE:
MurmurHash3_x86_128( key, STRLEN_length_of_key, seed, &out );
EXTEND(SP, 4);
mXPUSHu( out[0] );
mXPUSHu( out[1] );
mXPUSHu( out[2] );
src/perl-murmurhash3.xs view on Meta::CPAN
void
murmur128_x64 ( char *key, UV seed = 0, IV length(key) )
PREINIT:
uint64_t out[2];
PPCODE:
MurmurHash3_x64_128( key, STRLEN_length_of_key, seed, &out );
EXTEND(SP, 2);
mXPUSHu( out[0] );
mXPUSHu( out[1] );
view all matches for this distribution
view release on metacpan or search on metacpan
const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
type = constant(aTHX_ s, len);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch (type) {
case PERL_constant_NOTFOUND:
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
int i;
UCHR *data;
STRLEN len;
SHA *state;
PPCODE:
if ((state = getSHA(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
for (i = 1; i < items; i++) {
data = (UCHR *) (SvPVbyte(ST(i), len));
while (len > MAX_WRITE_SIZE) {
PREINIT:
UINT bc;
STRLEN len;
SHA *state;
UCHR *data;
PPCODE:
if ((state = getSHA(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
data = (UCHR *) SvPV(packed_state, len);
if (len != (state->alg <= SHA256 ? 116U : 212U))
XSRETURN_UNDEF;
PerlIO * f
PREINIT:
SHA *state;
int n;
UCHR in[IO_BUFFER_SIZE];
PPCODE:
if (!f || (state = getSHA(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
while ((n = (int) PerlIO_read(f, in, sizeof(in))) > 0)
shawrite(in, (ULNG) n << 3, state);
XSRETURN(1);
int n;
int cr = 0;
UCHR *src, *dst;
UCHR in[IO_BUFFER_SIZE+1];
SHA *state;
PPCODE:
if (!f || (state = getSHA(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
while ((n = (int) PerlIO_read(f, in+1, IO_BUFFER_SIZE)) > 0) {
for (dst = in, src = in + 1; n; n--) {
c = *src++;
view all matches for this distribution
view release on metacpan or search on metacpan
void
new(xclass)
SV* xclass
PREINIT:
SHA_INFO* context;
PPCODE:
if (!SvROK(xclass)) {
STRLEN my_na;
char *sclass = SvPV(xclass, my_na);
New(55, context, 1, SHA_INFO);
ST(0) = sv_newmortal();
SV* self
PREINIT:
SHA_INFO* cont = get_sha_info(aTHX_ self);
const char *myname = sv_reftype(SvRV(self),TRUE);
SHA_INFO* context;
PPCODE:
New(55, context, 1, SHA_INFO);
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), myname , (void*)context);
SvREADONLY_on(SvRV(ST(0)));
memcpy(context,cont,sizeof(SHA_INFO));
PREINIT:
SHA_INFO* context = get_sha_info(aTHX_ self);
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPVbyte(ST(i), len));
sha_update(context, data, len);
}
XSRETURN(1); /* self */
Digest::SHA1::digest = F_BIN
Digest::SHA1::hexdigest = F_HEX
Digest::SHA1::b64digest = F_B64
PREINIT:
unsigned char digeststr[20];
PPCODE:
sha_final(digeststr, context);
sha_init(context); /* In case it is reused */
ST(0) = make_mortal_sv(aTHX_ digeststr, ix);
XSRETURN(1);
SHA_INFO ctx;
int i;
unsigned char *data;
STRLEN len;
unsigned char digeststr[20];
PPCODE:
sha_init(&ctx);
if (DOWARN) {
const char *msg = 0;
if (items == 1) {
SHA_INFO ctx;
unsigned char *data_pv;
unsigned char test[64];
STRLEN len;
unsigned char digeststr[20];
PPCODE:
sha_init(&ctx);
memset (test, 0, 64);
data_pv = (unsigned char *)(SvPVbyte(data, len));
memcpy (test, data_pv, len);
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
int i;
UCHR *data;
STRLEN len;
SHA3 *state;
PPCODE:
if ((state = getSHA3(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
for (i = 1; i < items; i++) {
data = (UCHR *) (SvPVbyte(ST(i), len));
while (len > MAX_WRITE_SIZE) {
PerlIO * f
PREINIT:
SHA3 *state;
int n;
UCHR in[IO_BUFFER_SIZE];
PPCODE:
if (!f || (state = getSHA3(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
while ((n = (int) PerlIO_read(f, in, sizeof(in))) > 0)
shawrite(in, (ULNG) n << 3, state);
XSRETURN(1);
int n;
int cr = 0;
UCHR *src, *dst;
UCHR in[IO_BUFFER_SIZE+1];
SHA3 *state;
PPCODE:
if (!f || (state = getSHA3(aTHX_ self)) == NULL)
XSRETURN_UNDEF;
while ((n = (int) PerlIO_read(f, in+1, IO_BUFFER_SIZE)) > 0) {
for (dst = in, src = in + 1; n; n--) {
c = *src++;
view all matches for this distribution
view release on metacpan or search on metacpan
SHAvite3.xs view on Meta::CPAN
RETVAL
void
reset (self)
Digest::SHAvite3 self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
SHAvite3.xs view on Meta::CPAN
Digest::SHAvite3 self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
SHAvite3.xs view on Meta::CPAN
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::SIMD self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::SIMD self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void
reset (self)
Digest::Shabal self
PPCODE:
if (Init(self, self->hashbitlen) != SUCCESS)
XSRETURN_UNDEF;
XSRETURN(1);
int
Digest::Shabal self
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
for (i = 1; i < items; i++) {
data = (unsigned char *)(SvPV(ST(i), len));
if (Update(self, data, len << 3) != SUCCESS)
XSRETURN_UNDEF;
}
int bitlen
PREINIT:
int i;
unsigned char *data;
STRLEN len;
PPCODE:
if (! bitlen)
XSRETURN(1);
data = (unsigned char *)(SvPV(msg, len));
if (bitlen > len << 3)
bitlen = len << 3;
view all matches for this distribution
view release on metacpan or search on metacpan
char *
Skein(hashbitlen, data)
int hashbitlen
const BitSequence * data
PPCODE:
if (hashbitlen < 0)
croak("hashbitlen < 0");
{
BitSequence hashval[128];
char ret[256 + 1];
}
char *
skein_256(data)
const BitSequence * data
PPCODE:
{
BitSequence hashval[256/8];
if ( Hash( 256, data, (DataLength) SvCUR(ST(0)) * 8, hashval ) != SUCCESS )
croak("Hash(256) failed");
ST(0) = sv_2mortal(newSVpv(hashval, 256/8));
}
char *
skein_512(data)
const BitSequence * data
PPCODE:
{
char hashval[512/8];
if ( Hash( 512, data, (DataLength) SvCUR(ST(0)) * 8, hashval ) != SUCCESS )
croak("Hash(512) failed");
ST(0) = sv_2mortal(newSVpv(hashval, 512/8));
}
char *
skein_1024(data)
const BitSequence * data
PPCODE:
{
char hashval[1024/8];
if ( Hash( 1024, data, (DataLength) SvCUR(ST(0)) * 8, hashval ) != SUCCESS )
croak("Hash(1024) failed");
ST(0) = sv_2mortal(newSVpv(hashval, 1024/8));
Digest::Skein::256
new(package, hashbitlen=256)
SV* package
int hashbitlen
PPCODE:
if (hashbitlen > 256)
croak("hashbitlen > 256");
if (SvROK(package)) { /* called as $digest->new or $digest->reset */
IV tmp;
Digest__Skein__256 ctx;
}
char *
digest(ctx)
Digest::Skein::256 ctx
PPCODE:
{
char hashval[256/8];
int len = (ctx->h.hashBitLen + 7) >> 3;
if ( Skein_256_Final(ctx, hashval) != SUCCESS )
croak("final() failed");
Digest::Skein::512
new(package, hashbitlen=512)
SV* package
int hashbitlen
PPCODE:
if (hashbitlen > 512)
croak("hashbitlen > 512");
if (SvROK(package)) { /* called as $digest->new or $digest->reset */
IV tmp;
Digest__Skein__512 ctx;
}
char *
digest(ctx)
Digest::Skein::512 ctx
PPCODE:
{
char hashval[512/8];
int len = (ctx->h.hashBitLen + 7) >> 3;
if ( Skein_512_Final(ctx, hashval) != SUCCESS )
croak("final() failed");
Digest::Skein::1024
new(package, hashbitlen=1024)
SV* package
int hashbitlen
PPCODE:
if (hashbitlen > 1024)
croak("hashbitlen > 1024");
if (SvROK(package)) { /* called as $digest->new or $digest->reset */
IV tmp;
Digest__Skein__1024 ctx;
}
char *
digest(ctx)
Digest::Skein::1024 ctx
PPCODE:
{
char hashval[1024/8];
int len = (ctx->h.hashBitLen + 7) >> 3;
if ( Skein1024_Final(ctx, hashval) != SUCCESS )
croak("final() failed");
view all matches for this distribution
view release on metacpan or search on metacpan
src/Spooky.xs view on Meta::CPAN
void
spooky64(const char * key, UV seed_ = 0, IV length(key))
PREINIT:
uint64_t hash;
uint64_t seed;
PPCODE:
{
seed = seed_;
hash = SpookyHash::Hash64(key, STRLEN_length_of_key,seed);
EXTEND(SP, 1);
mXPUSHu( hash );
src/Spooky.xs view on Meta::CPAN
void
spooky128(const char * key, UV seed1 = 0, UV seed2 = 0, IV length(key))
PREINIT:
uint64_t hash1;
uint64_t hash2;
PPCODE:
{
hash1 = seed1;
hash2 = seed2;
SpookyHash::Hash128(key, STRLEN_length_of_key, &hash1, &hash2);
EXTEND(SP, 2);
view all matches for this distribution
view release on metacpan or search on metacpan
hash(...)
PREINIT:
unsigned char *data;
STRLEN len;
word64 res[3];
PPCODE:
data = (unsigned char *)(SvPV(ST(0), len));
tiger(data, len, res);
endian_swap(res);
PREINIT:
unsigned char *data;
STRLEN len;
word64 res[3];
char hexhash_string[49];
PPCODE:
data = (unsigned char *)(SvPV(ST(0), len));
tiger(data, len, res);
/* we don't need an endian swap */
view all matches for this distribution
view release on metacpan or search on metacpan
const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
type = constant(aTHX_ s, len);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch (type) {
case PERL_constant_NOTFOUND:
view all matches for this distribution
view release on metacpan or search on metacpan
redifining a macro that was defined in hv_func.h. Most of
these macros & typedefs weren't used at all, so I've just
removed them.
Get rid of warnings about unused variables with selective use
of PERL_UNUSED_VAR. I could also just move to PPCODE for some
of this stuff, but meh..
2.01 2014 October 4
Get rid of M::I autoinstall cancer which requires
view all matches for this distribution