Result:
found more than 1151 distributions - search limited to the first 2001 files matching your query ( run in 2.556 )


Digest-CubeHash-XS

 view release on metacpan or  search on metacpan

XS.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::CubeHash::XS self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

XS.xs  view on Meta::CPAN

    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;
    }

XS.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


Digest-ECHO

 view release on metacpan or  search on metacpan

ECHO.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::ECHO self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

ECHO.xs  view on Meta::CPAN

    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;
    }

ECHO.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


Digest-EdonR

 view release on metacpan or  search on metacpan

EdonR.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::EdonR self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

EdonR.xs  view on Meta::CPAN

    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;
    }

EdonR.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


Digest-FNV

 view release on metacpan or  search on metacpan

FNV.xs  view on Meta::CPAN

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 {

FNV.xs  view on Meta::CPAN

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


Digest-FarmHash

 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


Digest-Fugue

 view release on metacpan or  search on metacpan

Fugue.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Fugue self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Fugue.xs  view on Meta::CPAN

    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;
    }

Fugue.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


Digest-GOST

 view release on metacpan or  search on metacpan

GOST.xs  view on Meta::CPAN

    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);

GOST.xs  view on Meta::CPAN

    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


Digest-Groestl

 view release on metacpan or  search on metacpan

Groestl.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Groestl self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Groestl.xs  view on Meta::CPAN

    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;
    }

Groestl.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


Digest-Hamsi

 view release on metacpan or  search on metacpan

Hamsi.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Hamsi self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Hamsi.xs  view on Meta::CPAN

    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;
    }

Hamsi.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


Digest-JH

 view release on metacpan or  search on metacpan

JH.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::JH self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

JH.xs  view on Meta::CPAN

    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;
    }

JH.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


Digest-Keccak

 view release on metacpan or  search on metacpan

Keccak.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Keccak self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Keccak.xs  view on Meta::CPAN

    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;
    }

Keccak.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


Digest-Luffa

 view release on metacpan or  search on metacpan

Luffa.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Luffa self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Luffa.xs  view on Meta::CPAN

    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;
    }

Luffa.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


Digest-MD2

 view release on metacpan or  search on metacpan

MD2.xs  view on Meta::CPAN

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();

MD2.xs  view on Meta::CPAN

	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)));

MD2.xs  view on Meta::CPAN

    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 */

MD2.xs  view on Meta::CPAN

	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.xs  view on Meta::CPAN

	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


Digest-MD4

 view release on metacpan or  search on metacpan

MD4.xs  view on Meta::CPAN

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;

MD4.xs  view on Meta::CPAN

	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));

MD4.xs  view on Meta::CPAN

    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 */

MD4.xs  view on Meta::CPAN

	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.xs  view on Meta::CPAN

	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


Digest-MD5-M4p

 view release on metacpan or  search on metacpan

M4p.xs  view on Meta::CPAN

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;

M4p.xs  view on Meta::CPAN

	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)));

M4p.xs  view on Meta::CPAN

    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 */

M4p.xs  view on Meta::CPAN

	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);

M4p.xs  view on Meta::CPAN

	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


Digest-MD5

 view release on metacpan or  search on metacpan

MD5.xs  view on Meta::CPAN

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));

MD5.xs  view on Meta::CPAN

	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);

MD5.xs  view on Meta::CPAN

    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));

MD5.xs  view on Meta::CPAN

	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);

MD5.xs  view on Meta::CPAN

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.xs  view on Meta::CPAN

	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


Digest-MD6

 view release on metacpan or  search on metacpan

MD6.xs  view on Meta::CPAN

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);

MD6.xs  view on Meta::CPAN

	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));

MD6.xs  view on Meta::CPAN

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, ...)

MD6.xs  view on Meta::CPAN

  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.xs  view on Meta::CPAN

    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));

MD6.xs  view on Meta::CPAN

    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.xs  view on Meta::CPAN

    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


Digest-MurmurHash3

 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


Digest-OAT

 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


Digest-SHA

 view release on metacpan or  search on metacpan

SHA.xs  view on Meta::CPAN

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) {

SHA.xs  view on Meta::CPAN

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;

SHA.xs  view on Meta::CPAN

	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);

SHA.xs  view on Meta::CPAN

	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


Digest-SHA1

 view release on metacpan or  search on metacpan

SHA1.xs  view on Meta::CPAN

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();

SHA1.xs  view on Meta::CPAN

        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));

SHA1.xs  view on Meta::CPAN

    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 */

SHA1.xs  view on Meta::CPAN

	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);

SHA1.xs  view on Meta::CPAN

	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) {

SHA1.xs  view on Meta::CPAN

        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


Digest-SHA3

 view release on metacpan or  search on metacpan

SHA3.xs  view on Meta::CPAN

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) {

SHA3.xs  view on Meta::CPAN

	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);

SHA3.xs  view on Meta::CPAN

	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


Digest-SHAvite3

 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


Digest-SIMD

 view release on metacpan or  search on metacpan

SIMD.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::SIMD self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

SIMD.xs  view on Meta::CPAN

    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;
    }

SIMD.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


Digest-Shabal

 view release on metacpan or  search on metacpan

Shabal.xs  view on Meta::CPAN

    RETVAL

void
reset (self)
    Digest::Shabal self
PPCODE:
    if (Init(self, self->hashbitlen) != SUCCESS)
        XSRETURN_UNDEF;
    XSRETURN(1);

int

Shabal.xs  view on Meta::CPAN

    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;
    }

Shabal.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


Digest-Skein

 view release on metacpan or  search on metacpan

Skein.xs  view on Meta::CPAN


char *
Skein(hashbitlen, data)
		int   hashbitlen
		const BitSequence *     data
	PPCODE:
		if (hashbitlen < 0)
			croak("hashbitlen < 0");
	{
		BitSequence     hashval[128];
		char ret[256 + 1];

Skein.xs  view on Meta::CPAN

	}

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));

Skein.xs  view on Meta::CPAN

	}

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));

Skein.xs  view on Meta::CPAN

	}

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));

Skein.xs  view on Meta::CPAN


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;

Skein.xs  view on Meta::CPAN

	}

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");

Skein.xs  view on Meta::CPAN


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;

Skein.xs  view on Meta::CPAN

	}

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");

Skein.xs  view on Meta::CPAN


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;

Skein.xs  view on Meta::CPAN

	}

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


Digest-SpookyHash

 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


Digest-Tiger

 view release on metacpan or  search on metacpan

Tiger.xs  view on Meta::CPAN

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);

Tiger.xs  view on Meta::CPAN

  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


Digest-Trivial

 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


Digest-Whirlpool

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

         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


( run in 2.556 seconds using v1.01-cache-2.11-cpan-71847e10f99 )