Changes for CryptX TODO: - add support for PKCS#8 encrypted RSA+ECC private keys "-----BEGIN ENCRYPTED PRIVATE KEY-----" - RSA|DSA|ECC: verify_key($level) (basic check + extented primality test) - better primality testing: http://questhub.io/realm/perl/quest/519032ee1088c76505000035 (idea: mp_prime_lucas) - DSA: generate_key($p, $q, $g), generate_key(\$dsa_params_der), generate_key($dsa_params_file) - DH: generate_key($base, $prime), generate_key(\$dh_params_der), generate_key($dh_params_file) - DH: key2hash should dump $base and $prime as well (perhasp add base, prime to dh_key struct) - XS croaks should report the "real caller" (Crypt::Mac::*, Crypt::Mode::*, ...) - maybe: add CCM interface for new-add-add-done mode - maybe: switch yarrow > fortuna for Crypt::PK::* - maybe: add enc_b64/dec_b64 + enc_b64u/dec_b64u + enc_b32/dec_b32 - maybe: x509_rsa_pubkey + x509_rsa_pubkey_alg 0.028 2016/03/23 - IMPORTANT: switch from Module::Build to ExtUtils::MakeMaker - fix for broken DSA key (ssh format) loading 0.027 2016/01/25 - sync with https://github.com/libtom/libtomcrypt (branch develop) - sync with https://github.com/libtom/libtommath (branch develop) - HP-UX related fixes - JSON dependency is now optional (we check JSON::PP, JSON::XS, Cpanel::JSON::XS) - skip jwk.t if no JSON::* module available - does not require MIME::Base64 (we use base64 routines from libtomcrypt) 0.026 2015/11/28 - switch to JSON::MaybeXS - Crypt::PRNG - rand/irand related cosmetics - consistently using UNIX newlines 0.025 2015/07/07 - Crypt::PK::ECC+RSA export_key_jwk() allows to export a perl HASH with JWK structure 0.024 2015/06/29 - new Crypt::PK::ECC methods verify_message_rfc7518() sign_message_rfc7518() curve2hash() - fix for Crypt::PK::RSA - bug in loading private key in JWK format 0.023 2015/06/10 - support for older compilers (gcc3, vc6) - typo in documentation (by tomhukins) 0.022 2015/05/22 - new: Crypt::PK::ECC+RSA export_key_jwk() - exporting JWK format - new: Crypt::Digest::SHA512_224 - new: Crypt::Digest::SHA512_256 - Crypt::PK::ECC+RSA import_key() - support for: * public/private keys in JWK format * private keys in PKCS8 PEM/DER format (unencrypted only) - Crypt::PK::ECC+RSA+DSA import_key() - support for: * public keys in SSH format * public/private keys as a hashref exported via key2hash - libtomcrypt updated to the latest develop branch, commit aeaa6d4a51 Apr 17 08:59:35 2015 +0200 - libtommath updated to the latest develop branch, commit 0fd5e6c17f Dec 11 14:59:35 2014 +0100 - documentation fixes 0.021 2014/01/23 - fixed asm(...) related compiler failures - dsa_encrypt_key small correction - optimized ecc_encrypt_key 0.020 2014/01/18 - INCOMPATIBLE CHANGE: huge redesign of Crypt::PK::ECC - ECC now supports curves y^2 = x^3 + a*x + b - ECC you can use custom curves - ECC import/export of keys in DER/PEM format now compatible with openssl - enabling compile options ASM + ECC_TIMING_RESISTANT - added many test vectors (RSA, DSA, EC) for interoperability with openssl 0.019 2013/10/20 - fixed broken CAMELLIA implementation 0.018 2013/10/18 - DSA: make_key + sign_hash fixes 0.017 2013/09/24 - lowering MIME::Base64 version requirement - support for import/export of password protected RSA/DSA keys - RSA: added - export_key_pem('public_x509') - better handling of dh_free/rsa_free/dsa_free/ecc_free - added openssl test vectors - fixed compiler warnings (RSA/DSA/ECC/DH) 0.016 2013/09/15 - added missing test for key2hash, sign_hash, verify_hash - fixed build failures on VC6 0.015 2013/09/12 - only documentation fixes 0.014 2013/09/11 - Crypt::Digest::NNN + Crypt::Mac::NNN - can produce Base64-URL-Safe encoded digest/mac - Crypt::PRNG + Crypt::PRNG::NNN - Base64-URL-Safe encoded random bytes (random_bytes_b64u/bytes_b64u) - Crypt::PK::RSA/DSA/DH/ECC - sign/verify replaced by sign_message/verify_message + sign_hash/verify_hash - Crypt::PK::RSA/DSA/DH/ECC - new method key2hash - documentation fixes 0.013 2013/08/28 - DSA/RSA/ECC/DH - importing keys from string changed - now: $pk->import_key(\$buffer_with_key) - DSA/RSA/ECC/DH - size() and is_private() now return undef if no key loaded - improved RSA doc 0.012 2013/06/17 - README, LICENSE etc. to improve CPANTS score - somehow works with perl 5.6.2 0.011 2013/06/15 - fixing various compiler warnings 0.009 2013/05/19 - doc fixes - requires perl 5.8.8 or higher - INCOMPATIBILITY: all digest related 'xxx_base64' functions renamed to 'xxx_b64' 0.008 2013/05/02 - fixed prng test failures - Crypt::Digest::* croaks with the "real caller" (not a nice solution) 0.007 2013/04/23 - Crypt::PRNG supports add_entropy() - without params - Crypt::PRNG fork-safe & thread-safe - random_string has default $len = 20 - doc fixes - cpan tester failure fix for pk_dsa.t 0.006 2013/04/19 - added Crypt::KeyDerivation - Win64 compatibility 0.005 2013/04/18 - added Crypt::PRNG::Fortuna|RC4|Sober128|Yarrow - added Crypt::PK::RSA|DSA|ECC|DH 0.004 2013/04/16 - removing illegal Crypt::Random 0.003 2013/04/16 - added Crypt::Mode::CBC|CFB|CTR|ECB|OFB - added Crypt::AuthEnc::CCM|EAX|GCM|OCB 0.002 2013/04/11 - first release on CPAN