diff options
author | gregor herrmann <gregoa@debian.org> | 2018-01-03 20:36:37 +0100 |
---|---|---|
committer | gregor herrmann <gregoa@debian.org> | 2018-01-03 20:36:37 +0100 |
commit | 5b7253046b660592f2e7db7afd2857c8ac517621 (patch) | |
tree | 0bb309447b14b81de91bc8542da855a8083732b9 /inc | |
parent | b3d0c9e280ed278158bcf1d15963b7c6f66057df (diff) | |
parent | 6e8abedfd93462d12874c2ba837012f2ab5eaaf9 (diff) |
New upstream version 0.056
Diffstat (limited to 'inc')
-rw-r--r-- | inc/CryptX_AuthEnc_CCM.xs.inc | 8 | ||||
-rw-r--r-- | inc/CryptX_Checksum_CRC32.xs.inc | 1 | ||||
-rw-r--r-- | inc/CryptX_Cipher.xs.inc | 4 | ||||
-rw-r--r-- | inc/CryptX_Digest_SHAKE.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_PK_DH.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_PK_DSA.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_PK_ECC.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_PK_RSA.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_Stream_ChaCha.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_Stream_RC4.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_Stream_Rabbit.xs.inc | 97 | ||||
-rw-r--r-- | inc/CryptX_Stream_Salsa20.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_Stream_Sober128.xs.inc | 2 | ||||
-rw-r--r-- | inc/CryptX_Stream_Sosemanuk.xs.inc | 2 |
14 files changed, 113 insertions, 17 deletions
diff --git a/inc/CryptX_AuthEnc_CCM.xs.inc b/inc/CryptX_AuthEnc_CCM.xs.inc index 5711acfe..f2be57a1 100644 --- a/inc/CryptX_AuthEnc_CCM.xs.inc +++ b/inc/CryptX_AuthEnc_CCM.xs.inc @@ -27,7 +27,7 @@ _new(char * cipher_name, SV * key, SV * nonce, SV * adata, int tag_len, int pt_l Newz(0, RETVAL, 1, struct ccm_struct); if (!RETVAL) croak("FATAL: Newz failed"); - rv = ccm_init(&RETVAL->state, id, k, (unsigned long)k_len, pt_len, tag_len, h_len); + rv = ccm_init(&RETVAL->state, id, k, (int)k_len, (int)pt_len, (int)tag_len, (int)h_len); /* XXX-TODO why int? */ if (rv != CRYPT_OK) { Safefree(RETVAL); croak("FATAL: ccm_init failed: %s", error_to_string(rv)); @@ -90,7 +90,7 @@ encrypt_add(Crypt::AuthEnc::CCM self, SV * data) SvREFCNT_dec(RETVAL); croak("FATAL: ccm_process failed: %s", error_to_string(rv)); } - self->pt_len -= in_data_len; + self->pt_len -= (unsigned long)in_data_len; } } OUTPUT: @@ -100,7 +100,7 @@ SV * decrypt_add(Crypt::AuthEnc::CCM self, SV * data) CODE: { - int rv, i; + int rv; STRLEN in_data_len; unsigned char *in_data, *out_data; @@ -123,7 +123,7 @@ decrypt_add(Crypt::AuthEnc::CCM self, SV * data) SvREFCNT_dec(RETVAL); croak("FATAL: ccm_process failed: %s", error_to_string(rv)); } - self->pt_len -= in_data_len; + self->pt_len -= (unsigned long)in_data_len; } } OUTPUT: diff --git a/inc/CryptX_Checksum_CRC32.xs.inc b/inc/CryptX_Checksum_CRC32.xs.inc index b31ddebd..b4d591a7 100644 --- a/inc/CryptX_Checksum_CRC32.xs.inc +++ b/inc/CryptX_Checksum_CRC32.xs.inc @@ -4,7 +4,6 @@ Crypt::Checksum::CRC32 new(Class) CODE: { - int rv; Newz(0, RETVAL, 1, crc32_state); if (!RETVAL) croak("FATAL: Newz failed"); crc32_init(RETVAL); /* returns void */ diff --git a/inc/CryptX_Cipher.xs.inc b/inc/CryptX_Cipher.xs.inc index 65fee1b4..b45c40a9 100644 --- a/inc/CryptX_Cipher.xs.inc +++ b/inc/CryptX_Cipher.xs.inc @@ -83,7 +83,7 @@ encrypt(self, data) if (len == 0) { RETVAL = newSVpvn("", 0); } - else if (len == self->desc->block_length) { + else if (len == (STRLEN)self->desc->block_length) { RETVAL = NEWSV(0, len); SvPOK_only(RETVAL); SvCUR_set(RETVAL, len); @@ -113,7 +113,7 @@ decrypt(self, data) if (len == 0) { RETVAL = newSVpvn("", 0); } - else if (len == self->desc->block_length) { + else if (len == (STRLEN)self->desc->block_length) { RETVAL = NEWSV(0, len); SvPOK_only(RETVAL); SvCUR_set(RETVAL, len); diff --git a/inc/CryptX_Digest_SHAKE.xs.inc b/inc/CryptX_Digest_SHAKE.xs.inc index cb8906a5..1ab196bc 100644 --- a/inc/CryptX_Digest_SHAKE.xs.inc +++ b/inc/CryptX_Digest_SHAKE.xs.inc @@ -72,7 +72,7 @@ done(Crypt::Digest::SHAKE self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = sha3_shake_done(&self->state, out_data, out_len); + rv = sha3_shake_done(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: sha3_shake_done failed: %s", error_to_string(rv)); diff --git a/inc/CryptX_PK_DH.xs.inc b/inc/CryptX_PK_DH.xs.inc index 15f21787..0898e805 100644 --- a/inc/CryptX_PK_DH.xs.inc +++ b/inc/CryptX_PK_DH.xs.inc @@ -66,7 +66,7 @@ _generate_key_dhparam(Crypt::PK::DH self, SV * dhparam) STRLEN data_len=0; data = (unsigned char *)SvPVbyte(dhparam, data_len); /* load d p q */ - rv = dh_set_pg_dhparam(data, data_len, &self->key); + rv = dh_set_pg_dhparam(data, (unsigned long)data_len, &self->key); if (rv != CRYPT_OK) croak("FATAL: dh_set_pg_dhparam failed: %s", error_to_string(rv)); /* gen the key */ rv = dh_generate_key(&self->pstate, self->pindex, &self->key); diff --git a/inc/CryptX_PK_DSA.xs.inc b/inc/CryptX_PK_DSA.xs.inc index 3f8839b0..aebb53a3 100644 --- a/inc/CryptX_PK_DSA.xs.inc +++ b/inc/CryptX_PK_DSA.xs.inc @@ -42,7 +42,7 @@ _generate_key_dsaparam(Crypt::PK::DSA self, SV * dsaparam) STRLEN data_len=0; data = (unsigned char *)SvPVbyte(dsaparam, data_len); /* load d p q */ - rv = dsa_set_pqg_dsaparam(data, data_len, &self->key); + rv = dsa_set_pqg_dsaparam(data, (unsigned long)data_len, &self->key); if (rv != CRYPT_OK) croak("FATAL: dsa_set_pqg_dsaparam failed: %s", error_to_string(rv)); /* gen the key */ rv = dsa_generate_key(&self->pstate, self->pindex, &self->key); diff --git a/inc/CryptX_PK_ECC.xs.inc b/inc/CryptX_PK_ECC.xs.inc index 65176349..239376f2 100644 --- a/inc/CryptX_PK_ECC.xs.inc +++ b/inc/CryptX_PK_ECC.xs.inc @@ -64,7 +64,7 @@ _import_pkcs8(Crypt::PK::ECC self, SV * key_data, SV * passwd) pwd = (unsigned char *)SvPVbyte(passwd, pwd_len); } _ecc_free_key(&self->key, &self->dp); - rv = ecc_import_pkcs8(data, (unsigned long)data_len, pwd, pwd_len, &self->key, &self->dp); + rv = ecc_import_pkcs8(data, (unsigned long)data_len, pwd, (unsigned long)pwd_len, &self->key, &self->dp); if (rv != CRYPT_OK) croak("FATAL: ecc_import_pkcs8 failed: %s", error_to_string(rv)); XPUSHs(ST(0)); /* return self */ } diff --git a/inc/CryptX_PK_RSA.xs.inc b/inc/CryptX_PK_RSA.xs.inc index ded33713..0c0cf852 100644 --- a/inc/CryptX_PK_RSA.xs.inc +++ b/inc/CryptX_PK_RSA.xs.inc @@ -62,7 +62,7 @@ _import_pkcs8(Crypt::PK::RSA self, SV * key_data, SV * passwd) pwd = (unsigned char *)SvPVbyte(passwd, pwd_len); } if (self->key.type != -1) { rsa_free(&self->key); self->key.type = -1; } - rv = rsa_import_pkcs8(data, (unsigned long)data_len, pwd, pwd_len, &self->key); + rv = rsa_import_pkcs8(data, (unsigned long)data_len, pwd, (unsigned long)pwd_len, &self->key); if (rv != CRYPT_OK) croak("FATAL: rsa_import_pkcs8 failed: %s", error_to_string(rv)); XPUSHs(ST(0)); /* return self */ } diff --git a/inc/CryptX_Stream_ChaCha.xs.inc b/inc/CryptX_Stream_ChaCha.xs.inc index bb7d7e80..4b71a090 100644 --- a/inc/CryptX_Stream_ChaCha.xs.inc +++ b/inc/CryptX_Stream_ChaCha.xs.inc @@ -70,7 +70,7 @@ keystream(Crypt::Stream::ChaCha self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = chacha_keystream(&self->state, out_data, out_len); + rv = chacha_keystream(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: chacha_keystream failed: %s", error_to_string(rv)); diff --git a/inc/CryptX_Stream_RC4.xs.inc b/inc/CryptX_Stream_RC4.xs.inc index bc0a1eb2..09a56147 100644 --- a/inc/CryptX_Stream_RC4.xs.inc +++ b/inc/CryptX_Stream_RC4.xs.inc @@ -49,7 +49,7 @@ keystream(Crypt::Stream::RC4 self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = rc4_stream_keystream(&self->state, out_data, out_len); + rv = rc4_stream_keystream(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: rc4_stream_keystream failed: %s", error_to_string(rv)); diff --git a/inc/CryptX_Stream_Rabbit.xs.inc b/inc/CryptX_Stream_Rabbit.xs.inc new file mode 100644 index 00000000..6ef18249 --- /dev/null +++ b/inc/CryptX_Stream_Rabbit.xs.inc @@ -0,0 +1,97 @@ +MODULE = CryptX PACKAGE = Crypt::Stream::Rabbit + +Crypt::Stream::Rabbit +new(Class, SV * key, SV * nonce=&PL_sv_undef) + CODE: + { + int rv; + STRLEN iv_len=0, k_len=0; + unsigned char *iv=NULL, *k=NULL; + + if (!SvPOK(key)) croak("FATAL: key must be string/buffer scalar"); + k = (unsigned char *)SvPVbyte(key, k_len); + + Newz(0, RETVAL, 1, struct rabbit_struct); + if (!RETVAL) croak("FATAL: Newz failed"); + + rv = rabbit_setup(&RETVAL->state, k, (unsigned long)k_len); + if (rv != CRYPT_OK) { + Safefree(RETVAL); + croak("FATAL: rabbit_setup failed: %s", error_to_string(rv)); + } + + if (SvOK(nonce)) { + if (!SvPOK(nonce)) croak("FATAL: nonce must be string/buffer scalar"); + iv = (unsigned char *)SvPVbyte(nonce, iv_len); + rv = rabbit_setiv(&RETVAL->state, iv, (unsigned long)iv_len); + if (rv != CRYPT_OK) { + Safefree(RETVAL); + croak("FATAL: rabbit_setiv failed: %s", error_to_string(rv)); + } + } + + } + OUTPUT: + RETVAL + +void +DESTROY(Crypt::Stream::Rabbit self) + CODE: + rabbit_done(&self->state); + Safefree(self); + +Crypt::Stream::Rabbit +clone(Crypt::Stream::Rabbit self) + CODE: + Newz(0, RETVAL, 1, struct rabbit_struct); + if (!RETVAL) croak("FATAL: Newz failed"); + Copy(&self->state, &RETVAL->state, 1, struct rabbit_struct); + OUTPUT: + RETVAL + +SV * +keystream(Crypt::Stream::Rabbit self, STRLEN out_len) + CODE: + { + int rv; + unsigned char *out_data; + + RETVAL = NEWSV(0, out_len); + SvPOK_only(RETVAL); + SvCUR_set(RETVAL, out_len); + out_data = (unsigned char *)SvPVX(RETVAL); + rv = rabbit_keystream(&self->state, out_data, (unsigned long)out_len); + if (rv != CRYPT_OK) { + SvREFCNT_dec(RETVAL); + croak("FATAL: rabbit_keystream failed: %s", error_to_string(rv)); + } + } + OUTPUT: + RETVAL + +SV * +crypt(Crypt::Stream::Rabbit self, SV * data) + CODE: + { + int rv; + STRLEN in_data_len; + unsigned char *in_data, *out_data; + + in_data = (unsigned char *)SvPVbyte(data, in_data_len); + if (in_data_len == 0) { + RETVAL = newSVpvn("", 0); + } + else { + RETVAL = NEWSV(0, in_data_len); + SvPOK_only(RETVAL); + SvCUR_set(RETVAL, in_data_len); + out_data = (unsigned char *)SvPVX(RETVAL); + rv = rabbit_crypt(&self->state, in_data, (unsigned long)in_data_len, out_data); + if (rv != CRYPT_OK) { + SvREFCNT_dec(RETVAL); + croak("FATAL: rabbit_crypt failed: %s", error_to_string(rv)); + } + } + } + OUTPUT: + RETVAL diff --git a/inc/CryptX_Stream_Salsa20.xs.inc b/inc/CryptX_Stream_Salsa20.xs.inc index c21f7990..7430c3dc 100644 --- a/inc/CryptX_Stream_Salsa20.xs.inc +++ b/inc/CryptX_Stream_Salsa20.xs.inc @@ -57,7 +57,7 @@ keystream(Crypt::Stream::Salsa20 self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = salsa20_keystream(&self->state, out_data, out_len); + rv = salsa20_keystream(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: salsa20_keystream failed: %s", error_to_string(rv)); diff --git a/inc/CryptX_Stream_Sober128.xs.inc b/inc/CryptX_Stream_Sober128.xs.inc index 497643fb..7802bb16 100644 --- a/inc/CryptX_Stream_Sober128.xs.inc +++ b/inc/CryptX_Stream_Sober128.xs.inc @@ -57,7 +57,7 @@ keystream(Crypt::Stream::Sober128 self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = sober128_stream_keystream(&self->state, out_data, out_len); + rv = sober128_stream_keystream(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: sober128_stream_keystream failed: %s", error_to_string(rv)); diff --git a/inc/CryptX_Stream_Sosemanuk.xs.inc b/inc/CryptX_Stream_Sosemanuk.xs.inc index 16a49a9c..2f46859d 100644 --- a/inc/CryptX_Stream_Sosemanuk.xs.inc +++ b/inc/CryptX_Stream_Sosemanuk.xs.inc @@ -63,7 +63,7 @@ keystream(Crypt::Stream::Sosemanuk self, STRLEN out_len) SvPOK_only(RETVAL); SvCUR_set(RETVAL, out_len); out_data = (unsigned char *)SvPVX(RETVAL); - rv = sosemanuk_keystream(&self->state, out_data, out_len); + rv = sosemanuk_keystream(&self->state, out_data, (unsigned long)out_len); if (rv != CRYPT_OK) { SvREFCNT_dec(RETVAL); croak("FATAL: sosemanuk_keystream failed: %s", error_to_string(rv)); |