├── .ci ├── Valgrind-Ubuntu_focal.supp ├── build.sh ├── check_source.sh ├── clang-tidy.sh ├── coverage.sh ├── coverage_more.sh ├── meta_builds.sh ├── printinfo.sh ├── run.sh ├── testbuild.sh └── valgrind.sh ├── .clang-format ├── .github ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── main.yml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── appveyor.yml ├── changes ├── cmake-format.py ├── contrib ├── libtomcrypt.cmake └── sbom.cdx.json ├── coverity.sh ├── demos ├── CMakeLists.txt ├── aesgcm.c ├── constants.c ├── crypt.c ├── demo_dynamic.py ├── gcm-file │ ├── gcm_file.c │ └── gcm_filehandle.c ├── hashsum.c ├── ltc ├── openssh-privkey.c ├── openssl-enc.c ├── pem-info.c ├── sizes.c ├── small.c ├── timing.c └── tv_gen.c ├── doc ├── Doxyfile ├── crypt.tex ├── libtomsm.png └── makefile ├── helper.pl ├── hooks └── pre-commit ├── libtomcrypt.pc.in ├── libtomcrypt_VS2008.sln ├── libtomcrypt_VS2008.vcproj ├── makefile ├── makefile.mingw ├── makefile.msvc ├── makefile.shared ├── makefile.unix ├── makefile_include.mk ├── notes ├── base64_tv.txt ├── ccm_tv.txt ├── cipher_tv.txt ├── eax_tv.txt ├── ecc_tv.txt ├── etc │ ├── NoekeonVects.java │ ├── saferp_optimizer.c │ ├── whirlgen.c │ └── whirltest.c ├── gcm_tv.txt ├── hash_tv.txt ├── hashsum_tv.txt ├── hmac_tv.txt ├── lrw_tv.txt ├── ocb3_tv.txt ├── ocb_tv.txt ├── omac_tv.txt ├── pmac_tv.txt ├── rsa-testvectors │ ├── makefile │ ├── oaep-int.txt │ ├── oaep-vect.c │ ├── oaep-vect.txt │ ├── pkcs1v15crypt-vectors.c │ ├── pkcs1v15crypt-vectors.txt │ ├── pkcs1v15sign-vectors.c │ ├── pkcs1v15sign-vectors.txt │ ├── pss-int.txt │ ├── pss-vect.c │ ├── pss-vect.txt │ ├── readme.txt │ └── rt.py ├── tech0001.txt ├── tech0002.txt ├── tech0003.txt ├── tech0004.txt ├── tech0005.txt ├── tech0006.txt └── tech0007.txt ├── sources.cmake ├── src ├── ciphers │ ├── aes │ │ ├── aes.c │ │ ├── aes_desc.c │ │ ├── aes_tab.c │ │ └── aesni.c │ ├── anubis.c │ ├── blowfish.c │ ├── camellia.c │ ├── cast5.c │ ├── des.c │ ├── idea.c │ ├── kasumi.c │ ├── khazad.c │ ├── kseed.c │ ├── multi2.c │ ├── noekeon.c │ ├── rc2.c │ ├── rc5.c │ ├── rc6.c │ ├── safer │ │ ├── safer.c │ │ ├── safer_tab.c │ │ └── saferp.c │ ├── serpent.c │ ├── skipjack.c │ ├── sm4.c │ ├── tea.c │ ├── twofish │ │ ├── twofish.c │ │ └── twofish_tab.c │ └── xtea.c ├── encauth │ ├── ccm │ │ ├── ccm_add_aad.c │ │ ├── ccm_add_nonce.c │ │ ├── ccm_done.c │ │ ├── ccm_init.c │ │ ├── ccm_memory.c │ │ ├── ccm_process.c │ │ ├── ccm_reset.c │ │ └── ccm_test.c │ ├── chachapoly │ │ ├── chacha20poly1305_add_aad.c │ │ ├── chacha20poly1305_decrypt.c │ │ ├── chacha20poly1305_done.c │ │ ├── chacha20poly1305_encrypt.c │ │ ├── chacha20poly1305_init.c │ │ ├── chacha20poly1305_memory.c │ │ ├── chacha20poly1305_setiv.c │ │ ├── chacha20poly1305_setiv_rfc7905.c │ │ └── chacha20poly1305_test.c │ ├── eax │ │ ├── eax_addheader.c │ │ ├── eax_decrypt.c │ │ ├── eax_decrypt_verify_memory.c │ │ ├── eax_done.c │ │ ├── eax_encrypt.c │ │ ├── eax_encrypt_authenticate_memory.c │ │ ├── eax_init.c │ │ └── eax_test.c │ ├── gcm │ │ ├── gcm_add_aad.c │ │ ├── gcm_add_iv.c │ │ ├── gcm_done.c │ │ ├── gcm_gf_mult.c │ │ ├── gcm_init.c │ │ ├── gcm_memory.c │ │ ├── gcm_mult_h.c │ │ ├── gcm_process.c │ │ ├── gcm_reset.c │ │ └── gcm_test.c │ ├── ocb │ │ ├── ocb_decrypt.c │ │ ├── ocb_decrypt_verify_memory.c │ │ ├── ocb_done_decrypt.c │ │ ├── ocb_done_encrypt.c │ │ ├── ocb_encrypt.c │ │ ├── ocb_encrypt_authenticate_memory.c │ │ ├── ocb_init.c │ │ ├── ocb_ntz.c │ │ ├── ocb_shift_xor.c │ │ ├── ocb_test.c │ │ └── s_ocb_done.c │ ├── ocb3 │ │ ├── ocb3_add_aad.c │ │ ├── ocb3_decrypt.c │ │ ├── ocb3_decrypt_last.c │ │ ├── ocb3_decrypt_verify_memory.c │ │ ├── ocb3_done.c │ │ ├── ocb3_encrypt.c │ │ ├── ocb3_encrypt_authenticate_memory.c │ │ ├── ocb3_encrypt_last.c │ │ ├── ocb3_init.c │ │ ├── ocb3_int_ntz.c │ │ ├── ocb3_int_xor_blocks.c │ │ └── ocb3_test.c │ └── siv │ │ └── siv.c ├── hashes │ ├── blake2b.c │ ├── blake2s.c │ ├── chc │ │ └── chc.c │ ├── helper │ │ ├── hash_file.c │ │ ├── hash_filehandle.c │ │ ├── hash_memory.c │ │ └── hash_memory_multi.c │ ├── md2.c │ ├── md4.c │ ├── md5.c │ ├── rmd128.c │ ├── rmd160.c │ ├── rmd256.c │ ├── rmd320.c │ ├── sha1.c │ ├── sha2 │ │ ├── sha224.c │ │ ├── sha256.c │ │ ├── sha384.c │ │ ├── sha512.c │ │ ├── sha512_224.c │ │ └── sha512_256.c │ ├── sha3.c │ ├── sha3_test.c │ ├── tiger.c │ └── whirl │ │ ├── whirl.c │ │ └── whirltab.c ├── headers │ ├── tomcrypt.h │ ├── tomcrypt_argchk.h │ ├── tomcrypt_cfg.h │ ├── tomcrypt_cipher.h │ ├── tomcrypt_custom.h │ ├── tomcrypt_hash.h │ ├── tomcrypt_mac.h │ ├── tomcrypt_macros.h │ ├── tomcrypt_math.h │ ├── tomcrypt_misc.h │ ├── tomcrypt_pk.h │ ├── tomcrypt_pkcs.h │ ├── tomcrypt_private.h │ └── tomcrypt_prng.h ├── mac │ ├── blake2 │ │ ├── blake2bmac.c │ │ ├── blake2bmac_file.c │ │ ├── blake2bmac_memory.c │ │ ├── blake2bmac_memory_multi.c │ │ ├── blake2bmac_test.c │ │ ├── blake2smac.c │ │ ├── blake2smac_file.c │ │ ├── blake2smac_memory.c │ │ ├── blake2smac_memory_multi.c │ │ └── blake2smac_test.c │ ├── f9 │ │ ├── f9_done.c │ │ ├── f9_file.c │ │ ├── f9_init.c │ │ ├── f9_memory.c │ │ ├── f9_memory_multi.c │ │ ├── f9_process.c │ │ └── f9_test.c │ ├── hmac │ │ ├── hmac_done.c │ │ ├── hmac_file.c │ │ ├── hmac_init.c │ │ ├── hmac_memory.c │ │ ├── hmac_memory_multi.c │ │ ├── hmac_process.c │ │ └── hmac_test.c │ ├── omac │ │ ├── omac_done.c │ │ ├── omac_file.c │ │ ├── omac_init.c │ │ ├── omac_memory.c │ │ ├── omac_memory_multi.c │ │ ├── omac_process.c │ │ └── omac_test.c │ ├── pelican │ │ ├── pelican.c │ │ ├── pelican_memory.c │ │ └── pelican_test.c │ ├── pmac │ │ ├── pmac_done.c │ │ ├── pmac_file.c │ │ ├── pmac_init.c │ │ ├── pmac_memory.c │ │ ├── pmac_memory_multi.c │ │ ├── pmac_ntz.c │ │ ├── pmac_process.c │ │ ├── pmac_shift_xor.c │ │ └── pmac_test.c │ ├── poly1305 │ │ ├── poly1305.c │ │ ├── poly1305_file.c │ │ ├── poly1305_memory.c │ │ ├── poly1305_memory_multi.c │ │ └── poly1305_test.c │ └── xcbc │ │ ├── xcbc_done.c │ │ ├── xcbc_file.c │ │ ├── xcbc_init.c │ │ ├── xcbc_memory.c │ │ ├── xcbc_memory_multi.c │ │ ├── xcbc_process.c │ │ └── xcbc_test.c ├── math │ ├── fp │ │ └── ltc_ecc_fp_mulmod.c │ ├── gmp_desc.c │ ├── ltm_desc.c │ ├── multi.c │ ├── radix_to_bin.c │ ├── rand_bn.c │ ├── rand_prime.c │ └── tfm_desc.c ├── misc │ ├── adler32.c │ ├── base16 │ │ ├── base16_decode.c │ │ └── base16_encode.c │ ├── base32 │ │ ├── base32_decode.c │ │ └── base32_encode.c │ ├── base64 │ │ ├── base64_decode.c │ │ └── base64_encode.c │ ├── bcrypt │ │ └── bcrypt.c │ ├── burn_stack.c │ ├── compare_testvector.c │ ├── copy_or_zeromem.c │ ├── crc32.c │ ├── crypt │ │ ├── crypt.c │ │ ├── crypt_argchk.c │ │ ├── crypt_cipher_descriptor.c │ │ ├── crypt_cipher_is_valid.c │ │ ├── crypt_constants.c │ │ ├── crypt_find_cipher.c │ │ ├── crypt_find_cipher_any.c │ │ ├── crypt_find_cipher_id.c │ │ ├── crypt_find_hash.c │ │ ├── crypt_find_hash_any.c │ │ ├── crypt_find_hash_id.c │ │ ├── crypt_find_hash_oid.c │ │ ├── crypt_find_prng.c │ │ ├── crypt_fsa.c │ │ ├── crypt_hash_descriptor.c │ │ ├── crypt_hash_is_valid.c │ │ ├── crypt_inits.c │ │ ├── crypt_ltc_mp_descriptor.c │ │ ├── crypt_prng_descriptor.c │ │ ├── crypt_prng_is_valid.c │ │ ├── crypt_prng_rng_descriptor.c │ │ ├── crypt_register_all_ciphers.c │ │ ├── crypt_register_all_hashes.c │ │ ├── crypt_register_all_prngs.c │ │ ├── crypt_register_cipher.c │ │ ├── crypt_register_hash.c │ │ ├── crypt_register_prng.c │ │ ├── crypt_sizes.c │ │ ├── crypt_unregister_cipher.c │ │ ├── crypt_unregister_hash.c │ │ └── crypt_unregister_prng.c │ ├── error_to_string.c │ ├── hkdf │ │ ├── hkdf.c │ │ └── hkdf_test.c │ ├── mem_neq.c │ ├── padding │ │ ├── padding_depad.c │ │ └── padding_pad.c │ ├── password_free.c │ ├── pbes │ │ ├── pbes.c │ │ ├── pbes1.c │ │ └── pbes2.c │ ├── pem │ │ ├── pem.c │ │ ├── pem_pkcs.c │ │ ├── pem_read.c │ │ └── pem_ssh.c │ ├── pkcs12 │ │ ├── pkcs12_kdf.c │ │ └── pkcs12_utf8_to_utf16.c │ ├── pkcs5 │ │ ├── pkcs_5_1.c │ │ ├── pkcs_5_2.c │ │ └── pkcs_5_test.c │ ├── ssh │ │ ├── ssh_decode_sequence_multi.c │ │ └── ssh_encode_sequence_multi.c │ └── zeromem.c ├── modes │ ├── cbc │ │ ├── cbc_decrypt.c │ │ ├── cbc_done.c │ │ ├── cbc_encrypt.c │ │ ├── cbc_getiv.c │ │ ├── cbc_setiv.c │ │ └── cbc_start.c │ ├── cfb │ │ ├── cfb_decrypt.c │ │ ├── cfb_done.c │ │ ├── cfb_encrypt.c │ │ ├── cfb_getiv.c │ │ ├── cfb_setiv.c │ │ └── cfb_start.c │ ├── ctr │ │ ├── ctr_decrypt.c │ │ ├── ctr_done.c │ │ ├── ctr_encrypt.c │ │ ├── ctr_getiv.c │ │ ├── ctr_setiv.c │ │ ├── ctr_start.c │ │ └── ctr_test.c │ ├── ecb │ │ ├── ecb_decrypt.c │ │ ├── ecb_done.c │ │ ├── ecb_encrypt.c │ │ └── ecb_start.c │ ├── f8 │ │ ├── f8_decrypt.c │ │ ├── f8_done.c │ │ ├── f8_encrypt.c │ │ ├── f8_getiv.c │ │ ├── f8_setiv.c │ │ ├── f8_start.c │ │ └── f8_test_mode.c │ ├── lrw │ │ ├── lrw_decrypt.c │ │ ├── lrw_done.c │ │ ├── lrw_encrypt.c │ │ ├── lrw_getiv.c │ │ ├── lrw_process.c │ │ ├── lrw_setiv.c │ │ ├── lrw_start.c │ │ └── lrw_test.c │ ├── ofb │ │ ├── ofb_decrypt.c │ │ ├── ofb_done.c │ │ ├── ofb_encrypt.c │ │ ├── ofb_getiv.c │ │ ├── ofb_setiv.c │ │ └── ofb_start.c │ └── xts │ │ ├── xts_decrypt.c │ │ ├── xts_done.c │ │ ├── xts_encrypt.c │ │ ├── xts_init.c │ │ ├── xts_mult_x.c │ │ └── xts_test.c ├── pk │ ├── asn1 │ │ ├── der │ │ │ ├── bit │ │ │ │ ├── der_decode_bit_string.c │ │ │ │ ├── der_decode_raw_bit_string.c │ │ │ │ ├── der_encode_bit_string.c │ │ │ │ ├── der_encode_raw_bit_string.c │ │ │ │ └── der_length_bit_string.c │ │ │ ├── boolean │ │ │ │ ├── der_decode_boolean.c │ │ │ │ ├── der_encode_boolean.c │ │ │ │ └── der_length_boolean.c │ │ │ ├── choice │ │ │ │ └── der_decode_choice.c │ │ │ ├── custom_type │ │ │ │ ├── der_decode_custom_type.c │ │ │ │ ├── der_encode_custom_type.c │ │ │ │ └── der_length_custom_type.c │ │ │ ├── general │ │ │ │ ├── der_asn1_maps.c │ │ │ │ ├── der_decode_asn1_identifier.c │ │ │ │ ├── der_decode_asn1_length.c │ │ │ │ ├── der_encode_asn1_identifier.c │ │ │ │ ├── der_encode_asn1_length.c │ │ │ │ ├── der_length_asn1_identifier.c │ │ │ │ └── der_length_asn1_length.c │ │ │ ├── generalizedtime │ │ │ │ ├── der_decode_generalizedtime.c │ │ │ │ ├── der_encode_generalizedtime.c │ │ │ │ └── der_length_generalizedtime.c │ │ │ ├── ia5 │ │ │ │ ├── der_decode_ia5_string.c │ │ │ │ ├── der_encode_ia5_string.c │ │ │ │ └── der_length_ia5_string.c │ │ │ ├── integer │ │ │ │ ├── der_decode_integer.c │ │ │ │ ├── der_encode_integer.c │ │ │ │ └── der_length_integer.c │ │ │ ├── object_identifier │ │ │ │ ├── der_decode_object_identifier.c │ │ │ │ ├── der_encode_object_identifier.c │ │ │ │ └── der_length_object_identifier.c │ │ │ ├── octet │ │ │ │ ├── der_decode_octet_string.c │ │ │ │ ├── der_encode_octet_string.c │ │ │ │ └── der_length_octet_string.c │ │ │ ├── printable_string │ │ │ │ ├── der_decode_printable_string.c │ │ │ │ ├── der_encode_printable_string.c │ │ │ │ └── der_length_printable_string.c │ │ │ ├── sequence │ │ │ │ ├── der_decode_sequence_ex.c │ │ │ │ ├── der_decode_sequence_flexi.c │ │ │ │ ├── der_decode_sequence_multi.c │ │ │ │ ├── der_encode_sequence_ex.c │ │ │ │ ├── der_encode_sequence_multi.c │ │ │ │ ├── der_flexi_sequence_cmp.c │ │ │ │ ├── der_length_sequence.c │ │ │ │ ├── der_sequence_free.c │ │ │ │ └── der_sequence_shrink.c │ │ │ ├── set │ │ │ │ ├── der_encode_set.c │ │ │ │ └── der_encode_setof.c │ │ │ ├── short_integer │ │ │ │ ├── der_decode_short_integer.c │ │ │ │ ├── der_encode_short_integer.c │ │ │ │ └── der_length_short_integer.c │ │ │ ├── teletex_string │ │ │ │ ├── der_decode_teletex_string.c │ │ │ │ └── der_length_teletex_string.c │ │ │ ├── utctime │ │ │ │ ├── der_decode_utctime.c │ │ │ │ ├── der_encode_utctime.c │ │ │ │ └── der_length_utctime.c │ │ │ └── utf8 │ │ │ │ ├── der_decode_utf8_string.c │ │ │ │ ├── der_encode_utf8_string.c │ │ │ │ └── der_length_utf8_string.c │ │ ├── oid │ │ │ ├── pk_get.c │ │ │ ├── pk_oid_cmp.c │ │ │ └── pk_oid_str.c │ │ ├── pkcs8 │ │ │ ├── pkcs8_decode_flexi.c │ │ │ └── pkcs8_get.c │ │ └── x509 │ │ │ ├── x509_decode_public_key_from_certificate.c │ │ │ ├── x509_decode_spki.c │ │ │ ├── x509_decode_subject_public_key_info.c │ │ │ └── x509_encode_subject_public_key_info.c │ ├── dh │ │ ├── dh.c │ │ ├── dh_check_pubkey.c │ │ ├── dh_export.c │ │ ├── dh_export_key.c │ │ ├── dh_free.c │ │ ├── dh_generate_key.c │ │ ├── dh_import.c │ │ ├── dh_import_pkcs8.c │ │ ├── dh_set.c │ │ ├── dh_set_pg_dhparam.c │ │ └── dh_shared_secret.c │ ├── dsa │ │ ├── dsa_decrypt_key.c │ │ ├── dsa_encrypt_key.c │ │ ├── dsa_export.c │ │ ├── dsa_free.c │ │ ├── dsa_generate_key.c │ │ ├── dsa_generate_pqg.c │ │ ├── dsa_import.c │ │ ├── dsa_import_pkcs8.c │ │ ├── dsa_init.c │ │ ├── dsa_make_key.c │ │ ├── dsa_set.c │ │ ├── dsa_set_pqg_dsaparam.c │ │ ├── dsa_shared_secret.c │ │ ├── dsa_sign_hash.c │ │ ├── dsa_verify_hash.c │ │ └── dsa_verify_key.c │ ├── ec25519 │ │ ├── ec25519_crypto_ctx.c │ │ ├── ec25519_export.c │ │ ├── ec25519_import_pkcs8.c │ │ └── tweetnacl.c │ ├── ecc │ │ ├── ecc.c │ │ ├── ecc_ansi_x963_export.c │ │ ├── ecc_ansi_x963_import.c │ │ ├── ecc_decrypt_key.c │ │ ├── ecc_encrypt_key.c │ │ ├── ecc_export.c │ │ ├── ecc_export_openssl.c │ │ ├── ecc_find_curve.c │ │ ├── ecc_free.c │ │ ├── ecc_get_key.c │ │ ├── ecc_get_oid_str.c │ │ ├── ecc_get_size.c │ │ ├── ecc_import.c │ │ ├── ecc_import_openssl.c │ │ ├── ecc_import_pkcs8.c │ │ ├── ecc_import_x509.c │ │ ├── ecc_make_key.c │ │ ├── ecc_recover_key.c │ │ ├── ecc_set_curve.c │ │ ├── ecc_set_curve_internal.c │ │ ├── ecc_set_key.c │ │ ├── ecc_shared_secret.c │ │ ├── ecc_sign_hash.c │ │ ├── ecc_sign_hash_eth27.c │ │ ├── ecc_sign_hash_internal.c │ │ ├── ecc_sign_hash_rfc5656.c │ │ ├── ecc_sign_hash_rfc7518.c │ │ ├── ecc_sizes.c │ │ ├── ecc_ssh_ecdsa_encode_name.c │ │ ├── ecc_verify_hash.c │ │ ├── ecc_verify_hash_eth27.c │ │ ├── ecc_verify_hash_internal.c │ │ ├── ecc_verify_hash_rfc5656.c │ │ ├── ecc_verify_hash_rfc7518.c │ │ ├── ltc_ecc_export_point.c │ │ ├── ltc_ecc_import_point.c │ │ ├── ltc_ecc_is_point.c │ │ ├── ltc_ecc_is_point_at_infinity.c │ │ ├── ltc_ecc_map.c │ │ ├── ltc_ecc_mul2add.c │ │ ├── ltc_ecc_mulmod.c │ │ ├── ltc_ecc_mulmod_timing.c │ │ ├── ltc_ecc_points.c │ │ ├── ltc_ecc_projective_add_point.c │ │ ├── ltc_ecc_projective_dbl_point.c │ │ └── ltc_ecc_verify_key.c │ ├── ed25519 │ │ ├── ed25519_export.c │ │ ├── ed25519_import.c │ │ ├── ed25519_import_pkcs8.c │ │ ├── ed25519_import_raw.c │ │ ├── ed25519_import_x509.c │ │ ├── ed25519_make_key.c │ │ ├── ed25519_sign.c │ │ └── ed25519_verify.c │ ├── pka_key.c │ ├── pkcs1 │ │ ├── pkcs_1_i2osp.c │ │ ├── pkcs_1_mgf1.c │ │ ├── pkcs_1_oaep_decode.c │ │ ├── pkcs_1_oaep_encode.c │ │ ├── pkcs_1_os2ip.c │ │ ├── pkcs_1_pss_decode.c │ │ ├── pkcs_1_pss_encode.c │ │ ├── pkcs_1_v1_5_decode.c │ │ └── pkcs_1_v1_5_encode.c │ ├── rsa │ │ ├── rsa_decrypt_key.c │ │ ├── rsa_encrypt_key.c │ │ ├── rsa_export.c │ │ ├── rsa_exptmod.c │ │ ├── rsa_get_size.c │ │ ├── rsa_import.c │ │ ├── rsa_import_pkcs8.c │ │ ├── rsa_import_x509.c │ │ ├── rsa_key.c │ │ ├── rsa_make_key.c │ │ ├── rsa_set.c │ │ ├── rsa_sign_hash.c │ │ ├── rsa_sign_saltlen_get.c │ │ └── rsa_verify_hash.c │ └── x25519 │ │ ├── x25519_export.c │ │ ├── x25519_import.c │ │ ├── x25519_import_pkcs8.c │ │ ├── x25519_import_raw.c │ │ ├── x25519_import_x509.c │ │ ├── x25519_make_key.c │ │ └── x25519_shared_secret.c ├── prngs │ ├── chacha20.c │ ├── fortuna.c │ ├── rc4.c │ ├── rng_get_bytes.c │ ├── rng_make_prng.c │ ├── sober128.c │ ├── sprng.c │ └── yarrow.c └── stream │ ├── chacha │ ├── chacha_crypt.c │ ├── chacha_done.c │ ├── chacha_ivctr32.c │ ├── chacha_ivctr64.c │ ├── chacha_keystream.c │ ├── chacha_memory.c │ ├── chacha_setup.c │ └── chacha_test.c │ ├── rabbit │ ├── rabbit.c │ └── rabbit_memory.c │ ├── rc4 │ ├── rc4_stream.c │ ├── rc4_stream_memory.c │ └── rc4_test.c │ ├── salsa20 │ ├── salsa20_crypt.c │ ├── salsa20_done.c │ ├── salsa20_ivctr64.c │ ├── salsa20_keystream.c │ ├── salsa20_memory.c │ ├── salsa20_setup.c │ ├── salsa20_test.c │ ├── xsalsa20_memory.c │ ├── xsalsa20_setup.c │ └── xsalsa20_test.c │ ├── sober128 │ ├── sober128_stream.c │ ├── sober128_stream_memory.c │ ├── sober128_test.c │ └── sober128tab.c │ └── sosemanuk │ ├── sosemanuk.c │ ├── sosemanuk_memory.c │ └── sosemanuk_test.c ├── testme.sh ├── tests ├── CMakeLists.txt ├── asn1 │ ├── 0x00.crt │ ├── 0x80.crt │ ├── 0xff.crt │ ├── illegal_padding1.crt │ ├── illegal_padding2.crt │ ├── illegal_padding3.crt │ ├── oid_overflow_test.der │ ├── oid_size_test.der │ ├── private.der │ ├── root-ca.der │ └── type0x08.crt ├── base16_test.c ├── base32_test.c ├── base64_test.c ├── bcrypt_test.c ├── cipher_hash_test.c ├── common.c ├── common.h ├── der_test.c ├── dh_test.c ├── dsa_test.c ├── ecc_test.c ├── ed25519_test.c ├── file_test.c ├── mac_test.c ├── misc_test.c ├── modes_test.c ├── mpi_test.c ├── multi_test.c ├── no_null_termination_check_test.c ├── no_prng.c ├── padding_test.c ├── pem │ ├── non-tfm │ │ ├── ssh_rsa_4096_openssh │ │ ├── ssh_rsa_4096_openssh_pw │ │ ├── ssh_rsa_4096_pem │ │ ├── ssh_rsa_4096_pem.pub │ │ ├── ssh_rsa_4096_pem_pw │ │ ├── ssh_rsa_4096_pkcs8 │ │ ├── ssh_rsa_4096_pkcs8.pub │ │ ├── ssh_rsa_4096_pkcs8_pw │ │ ├── ssh_rsa_4096_rfc4716.pub │ │ ├── ssh_rsa_8192_openssh │ │ ├── ssh_rsa_8192_openssh_pw │ │ ├── ssh_rsa_8192_pem │ │ ├── ssh_rsa_8192_pem.pub │ │ ├── ssh_rsa_8192_pem_pw │ │ ├── ssh_rsa_8192_pkcs8 │ │ ├── ssh_rsa_8192_pkcs8.pub │ │ ├── ssh_rsa_8192_pkcs8_pw │ │ └── ssh_rsa_8192_rfc4716.pub │ ├── pkcs │ │ ├── dh-encrypted.pk8 │ │ ├── dh.pk8 │ │ ├── dsa-encrypted.pem │ │ ├── dsa-encrypted.pk8 │ │ ├── dsa-pub.pem │ │ ├── dsa.pem │ │ ├── dsa.pk8 │ │ ├── ecc-encrypted.pem │ │ ├── ecc-encrypted.pk8 │ │ ├── ecc-pkcs8 │ │ │ ├── long_pri_pkcs8_pbe_md5_des.pem │ │ │ ├── long_pri_pkcs8_pbe_md5_rc2_64.pem │ │ │ ├── long_pri_pkcs8_pbe_sha1_des.pem │ │ │ ├── long_pri_pkcs8_pbe_sha1_rc2_64.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_des_cbc.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_des_ede3_cbc.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_rc2_cbc.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_sha224_des_ede3_cbc.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_sha256_des_ede3_cbc.pem │ │ │ ├── long_pri_pkcs8_pbkdf2_sha384_des_ede3_cbc.pem │ │ │ └── long_pri_pkcs8_pbkdf2_sha512_des_ede3_cbc.pem │ │ ├── ecc-pub.pem │ │ ├── ecc.pem │ │ ├── ecc.pk8 │ │ ├── ed25519-pub.pem │ │ ├── ed25519.pem │ │ ├── ed25519_attrs.pem │ │ ├── extra │ │ │ ├── ed25519-cryptx.pem │ │ │ ├── ed25519-selfsigned.pem │ │ │ ├── rsa.pem │ │ │ └── rsa_cryptx_issue110_2407279713 │ │ ├── invalid │ │ │ ├── single_line │ │ │ ├── single_line.pub │ │ │ ├── tall_multi_line │ │ │ ├── tall_multi_line.pub │ │ │ └── weird_multi_line.pub │ │ ├── invalid_but_supported │ │ │ ├── narrow_multi_line │ │ │ └── narrow_multi_line.pub │ │ ├── rsa-aes-128-cbc.pem │ │ ├── rsa-aes-128-cfb.pem │ │ ├── rsa-aes-128-cfb1.pem │ │ ├── rsa-aes-128-cfb8.pem │ │ ├── rsa-aes-128-ctr.pem │ │ ├── rsa-aes-128-ofb.pem │ │ ├── rsa-aes-192-cbc.pem │ │ ├── rsa-aes-192-cfb.pem │ │ ├── rsa-aes-192-cfb1.pem │ │ ├── rsa-aes-192-cfb8.pem │ │ ├── rsa-aes-192-ctr.pem │ │ ├── rsa-aes-192-ofb.pem │ │ ├── rsa-aes-256-cbc.pem │ │ ├── rsa-aes-256-cfb.pem │ │ ├── rsa-aes-256-cfb1.pem │ │ ├── rsa-aes-256-cfb8.pem │ │ ├── rsa-aes-256-ctr.pem │ │ ├── rsa-aes-256-ofb.pem │ │ ├── rsa-bf-cbc.pem │ │ ├── rsa-bf-cfb.pem │ │ ├── rsa-bf-ofb.pem │ │ ├── rsa-camellia-128-cbc.pem │ │ ├── rsa-camellia-128-cfb.pem │ │ ├── rsa-camellia-128-cfb1.pem │ │ ├── rsa-camellia-128-cfb8.pem │ │ ├── rsa-camellia-128-ctr.pem │ │ ├── rsa-camellia-128-ofb.pem │ │ ├── rsa-camellia-192-cbc.pem │ │ ├── rsa-camellia-192-cfb.pem │ │ ├── rsa-camellia-192-cfb1.pem │ │ ├── rsa-camellia-192-cfb8.pem │ │ ├── rsa-camellia-192-ctr.pem │ │ ├── rsa-camellia-192-ofb.pem │ │ ├── rsa-camellia-256-cbc.pem │ │ ├── rsa-camellia-256-cfb.pem │ │ ├── rsa-camellia-256-cfb1.pem │ │ ├── rsa-camellia-256-cfb8.pem │ │ ├── rsa-camellia-256-ctr.pem │ │ ├── rsa-camellia-256-ofb.pem │ │ ├── rsa-cast5-cbc.pem │ │ ├── rsa-cast5-cfb.pem │ │ ├── rsa-cast5-ofb.pem │ │ ├── rsa-chacha20.pem │ │ ├── rsa-des-cbc.pem │ │ ├── rsa-des-cfb.pem │ │ ├── rsa-des-cfb1.pem │ │ ├── rsa-des-cfb8.pem │ │ ├── rsa-des-ede-cbc.pem │ │ ├── rsa-des-ede-cfb.pem │ │ ├── rsa-des-ede-ofb.pem │ │ ├── rsa-des-ede3-cbc.pem │ │ ├── rsa-des-ede3-cfb.pem │ │ ├── rsa-des-ede3-cfb1.pem │ │ ├── rsa-des-ede3-cfb8.pem │ │ ├── rsa-des-ede3-ofb.pem │ │ ├── rsa-des-ofb.pem │ │ ├── rsa-desx-cbc.pem │ │ ├── rsa-encrypted.pk8 │ │ ├── rsa-idea-cbc.pem │ │ ├── rsa-idea-cfb.pem │ │ ├── rsa-idea-ofb.pem │ │ ├── rsa-pub.pem │ │ ├── rsa-rc2-40-cbc.pem │ │ ├── rsa-rc2-64-cbc.pem │ │ ├── rsa-rc2-cbc.pem │ │ ├── rsa-rc2-cfb.pem │ │ ├── rsa-rc2-ofb.pem │ │ ├── rsa-rc5-cbc.pem │ │ ├── rsa-rc5-cfb.pem │ │ ├── rsa-rc5-ofb.pem │ │ ├── rsa-seed-cbc.pem │ │ ├── rsa-seed-cfb.pem │ │ ├── rsa-seed-ofb.pem │ │ ├── rsa.pem │ │ ├── rsa.pk8 │ │ ├── unsupported │ │ │ ├── rsa-aria-128-cbc.pem │ │ │ ├── rsa-aria-128-cfb.pem │ │ │ ├── rsa-aria-128-cfb1.pem │ │ │ ├── rsa-aria-128-cfb8.pem │ │ │ ├── rsa-aria-128-ctr.pem │ │ │ ├── rsa-aria-128-ofb.pem │ │ │ ├── rsa-aria-192-cbc.pem │ │ │ ├── rsa-aria-192-cfb.pem │ │ │ ├── rsa-aria-192-cfb1.pem │ │ │ ├── rsa-aria-192-cfb8.pem │ │ │ ├── rsa-aria-192-ctr.pem │ │ │ ├── rsa-aria-192-ofb.pem │ │ │ ├── rsa-aria-256-cbc.pem │ │ │ ├── rsa-aria-256-cfb.pem │ │ │ ├── rsa-aria-256-cfb1.pem │ │ │ ├── rsa-aria-256-cfb8.pem │ │ │ ├── rsa-aria-256-ctr.pem │ │ │ └── rsa-aria-256-ofb.pem │ │ ├── x25519-encrypted.pk8 │ │ └── x25519-pub.pem │ ├── pubkeys │ │ ├── authorized_keys │ │ │ ├── all.pub │ │ │ ├── ssh_dsa_1024_openssh.pub │ │ │ ├── ssh_ecdsa_256_openssh.pub │ │ │ ├── ssh_ecdsa_384_openssh.pub │ │ │ ├── ssh_ecdsa_521_openssh.pub │ │ │ ├── ssh_ed25519_openssh-no_comment.pub │ │ │ ├── ssh_ed25519_openssh.pub │ │ │ ├── ssh_rsa_1024_openssh.pub │ │ │ ├── ssh_rsa_1536_openssh.pub │ │ │ ├── ssh_rsa_2048_openssh.pub │ │ │ ├── ssh_rsa_4096_openssh.pub │ │ │ ├── ssh_rsa_768_openssh.pub │ │ │ └── ssh_rsa_8192_openssh.pub │ │ ├── ssh_dsa_1024_pkcs8.pub │ │ ├── ssh_dsa_1024_rfc4716.pub │ │ ├── ssh_ecdsa_256_pkcs8.pub │ │ ├── ssh_ecdsa_256_rfc4716.pub │ │ ├── ssh_ecdsa_384_pkcs8.pub │ │ ├── ssh_ecdsa_384_rfc4716.pub │ │ ├── ssh_ecdsa_521_pkcs8.pub │ │ ├── ssh_ecdsa_521_rfc4716.pub │ │ ├── ssh_ed25519_rfc4716.pub │ │ ├── ssh_rsa_1024_pkcs8.pub │ │ ├── ssh_rsa_1024_rfc4716.pub │ │ ├── ssh_rsa_1536_pkcs8.pub │ │ ├── ssh_rsa_1536_rfc4716.pub │ │ ├── ssh_rsa_2048_pkcs8.pub │ │ ├── ssh_rsa_2048_rfc4716.pub │ │ ├── ssh_rsa_768_pkcs8.pub │ │ └── ssh_rsa_768_rfc4716.pub │ ├── ssh │ │ ├── authorized_keys-invalid │ │ │ └── ssh_ed25519_openssh-wrong_type.pub │ │ ├── authorized_keys │ │ │ ├── ssh-rsa-3des-cbc.pub │ │ │ ├── ssh-rsa-aes128-cbc.pub │ │ │ ├── ssh-rsa-aes128-ctr.pub │ │ │ ├── ssh-rsa-aes128-gcm.pub │ │ │ ├── ssh-rsa-aes192-cbc.pub │ │ │ ├── ssh-rsa-aes192-ctr.pub │ │ │ ├── ssh-rsa-aes256-cbc.pub │ │ │ ├── ssh-rsa-aes256-ctr.pub │ │ │ ├── ssh-rsa-aes256-gcm.pub │ │ │ └── ssh-rsa-chacha20-poly1305.pub │ │ ├── extra │ │ │ ├── dsa-private.pem │ │ │ ├── dsa-public.pem │ │ │ ├── ecdsa256-public.pem │ │ │ └── rsa-public.pem │ │ ├── ssh-rsa-3des-cbc │ │ ├── ssh-rsa-aes128-cbc │ │ ├── ssh-rsa-aes128-ctr │ │ ├── ssh-rsa-aes128-gcm │ │ ├── ssh-rsa-aes192-cbc │ │ ├── ssh-rsa-aes192-ctr │ │ ├── ssh-rsa-aes256-cbc │ │ ├── ssh-rsa-aes256-ctr │ │ ├── ssh-rsa-aes256-gcm │ │ ├── ssh-rsa-chacha20-poly1305 │ │ ├── ssh-testkey-ecdsa-521 │ │ ├── ssh-testkey-ecdsa-521-plain │ │ ├── ssh-testkey-ed25519 │ │ ├── ssh-testkey-ed25519-aesctr │ │ ├── ssh-testkey-ed25519-plain │ │ ├── ssh-testkey-ed25519-pub │ │ ├── ssh-testkey-rsa │ │ ├── ssh-testkey-rsa-8192 │ │ ├── ssh-testkey-rsa-8192-plain │ │ └── ssh-testkey-rsa-plain │ ├── ssh_dsa_1024_openssh │ ├── ssh_dsa_1024_openssh_pw │ ├── ssh_dsa_1024_pem │ ├── ssh_dsa_1024_pem_pw │ ├── ssh_dsa_1024_pkcs8 │ ├── ssh_dsa_1024_pkcs8_pw │ ├── ssh_ecdsa_256_openssh │ ├── ssh_ecdsa_256_openssh_pw │ ├── ssh_ecdsa_256_pem │ ├── ssh_ecdsa_256_pem_pw │ ├── ssh_ecdsa_256_pkcs8 │ ├── ssh_ecdsa_256_pkcs8_pw │ ├── ssh_ecdsa_384_openssh │ ├── ssh_ecdsa_384_openssh_pw │ ├── ssh_ecdsa_384_pem │ ├── ssh_ecdsa_384_pem_pw │ ├── ssh_ecdsa_384_pkcs8 │ ├── ssh_ecdsa_384_pkcs8_pw │ ├── ssh_ecdsa_521_openssh │ ├── ssh_ecdsa_521_openssh_pw │ ├── ssh_ecdsa_521_pem │ ├── ssh_ecdsa_521_pem_pw │ ├── ssh_ecdsa_521_pkcs8 │ ├── ssh_ecdsa_521_pkcs8_pw │ ├── ssh_ed25519_openssh │ ├── ssh_ed25519_openssh_pw │ ├── ssh_rsa_1024_openssh │ ├── ssh_rsa_1024_openssh_pw │ ├── ssh_rsa_1024_pem │ ├── ssh_rsa_1024_pem.pub │ ├── ssh_rsa_1024_pem_pw │ ├── ssh_rsa_1024_pkcs8 │ ├── ssh_rsa_1024_pkcs8_pw │ ├── ssh_rsa_1536_openssh │ ├── ssh_rsa_1536_openssh_pw │ ├── ssh_rsa_1536_pem │ ├── ssh_rsa_1536_pem.pub │ ├── ssh_rsa_1536_pem_pw │ ├── ssh_rsa_1536_pkcs8 │ ├── ssh_rsa_1536_pkcs8_pw │ ├── ssh_rsa_2048_openssh │ ├── ssh_rsa_2048_openssh_pw │ ├── ssh_rsa_2048_pem │ ├── ssh_rsa_2048_pem.pub │ ├── ssh_rsa_2048_pem_pw │ ├── ssh_rsa_2048_pkcs8 │ ├── ssh_rsa_2048_pkcs8_pw │ ├── ssh_rsa_768_openssh │ ├── ssh_rsa_768_openssh_pw │ ├── ssh_rsa_768_pem │ ├── ssh_rsa_768_pem.pub │ ├── ssh_rsa_768_pem_pw │ ├── ssh_rsa_768_pkcs8 │ └── ssh_rsa_768_pkcs8_pw ├── pem_test.c ├── pkcs_1_eme_test.c ├── pkcs_1_emsa_test.c ├── pkcs_1_oaep_test.c ├── pkcs_1_pss_test.c ├── pkcs_1_test.c ├── prng_test.c ├── rotate_test.c ├── rsa-pkcs8 │ ├── README.txt │ ├── key_pkcs8.der │ ├── key_pkcs8_pbe_md2_des.der │ ├── key_pkcs8_pbe_md2_rc2_64.der │ ├── key_pkcs8_pbe_md5_des.der │ ├── key_pkcs8_pbe_md5_rc2_64.der │ ├── key_pkcs8_pbe_sha1_3des.der │ ├── key_pkcs8_pbe_sha1_des.der │ ├── key_pkcs8_pbe_sha1_rc2_64.der │ ├── key_pkcs8_pbkdf2_des_cbc.der │ ├── key_pkcs8_pbkdf2_des_ede3_cbc.der │ ├── key_pkcs8_pbkdf2_rc2_cbc.der │ ├── key_pkcs8_pbkdf2_sha224_des_ede3_cbc.der │ ├── key_pkcs8_pbkdf2_sha256_des_ede3_cbc.der │ ├── key_pkcs8_pbkdf2_sha384_des_ede3_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_224_aes256_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_256_aes256_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_256_rc2_40_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_256_rc2_64_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_aes128_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_aes192_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_aes256_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_des_ede3_cbc.der │ ├── key_pkcs8_pbkdf2_sha512_rc2_40_cbc.der │ └── key_pkcs8_pbkdf2_sha512_rc2_64_cbc.der ├── rsa │ ├── rsa_size_1024_bits.der │ ├── rsa_size_16384_bits.der │ ├── rsa_size_1999_bits.der │ ├── rsa_size_2048_bits.der │ ├── rsa_size_4096_bits.der │ ├── rsa_size_512_bits.der │ └── rsa_size_8192_bits.der ├── rsa_test.c ├── sources.cmake ├── ssh_test.c ├── store_test.c ├── test.c ├── test.der ├── test.key ├── test_dsa.key ├── tomcrypt_test.h └── x25519_test.c └── updatemakes.sh /.ci/Valgrind-Ubuntu_focal.supp: -------------------------------------------------------------------------------- 1 | { 2 | 3 | Memcheck:Cond 4 | ... 5 | fun:s_decode_header 6 | } 7 | -------------------------------------------------------------------------------- /.ci/check_source.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # output version 4 | bash .ci/printinfo.sh 5 | 6 | make clean > /dev/null 7 | 8 | echo "checking..." 9 | ./helper.pl --check-all || exit 1 10 | 11 | exit 0 12 | -------------------------------------------------------------------------------- /.ci/coverage_more.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ "$#" = "1" -a "$(echo $1 | grep 'gmp')" != "" ]; then 6 | ./test t gmp 7 | fi 8 | 9 | ./sizes 10 | ./constants 11 | 12 | for i in $(for j in $(echo $(./hashsum -h | awk '/Algorithms/,EOF' | tail -n +2)); do echo $j; done | sort); do echo -n "$i: " && ./hashsum -a $i tests/test.key ; done > hashsum_tv.txt 13 | difftroubles=$(diff -i -w -B hashsum_tv.txt notes/hashsum_tv.txt | grep '^<') || true 14 | if [ -n "$difftroubles" ]; then 15 | echo "FAILURE: hashsum_tv.tx" 16 | diff -i -w -B hashsum_tv.txt notes/hashsum_tv.txt 17 | echo "hashsum failed" 18 | exit 1 19 | else 20 | echo "hashsum okay" 21 | fi 22 | 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /.ci/printinfo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | version=$(git describe --tags --always --dirty 2>/dev/null) 4 | if [ ! -e ".git" ] || [ -z $version ] 5 | then 6 | version=$(grep "^VERSION=" makefile_include.mk | sed "s/.*=//") 7 | fi 8 | echo "Testing version:" $version 9 | #grep "VERSION=" makefile | perl -e "@a = split('=', <>); print @a[1];"` 10 | 11 | # get uname 12 | echo "uname="`uname -a` 13 | 14 | # get gcc name 15 | if [ -z ${CC} ] 16 | then 17 | CC="gcc" 18 | fi 19 | echo "${CC}="`${CC} -dumpversion` 20 | echo 21 | -------------------------------------------------------------------------------- /.ci/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # output version 4 | bash .ci/printinfo.sh 5 | 6 | bash .ci/build.sh " $1" "$2" "$3" "$4" "$5" 7 | if [ -a testok.txt ] && [ -f testok.txt ]; then 8 | echo 9 | else 10 | echo 11 | echo "Test failed" 12 | exit 1 13 | fi 14 | 15 | rm -f testok.txt 16 | bash .ci/build.sh " $1" "$2" "$3 LTC_DEBUG=1" "$4" "$5" 17 | if [ -a testok.txt ] && [ -f testok.txt ]; then 18 | echo 19 | else 20 | echo 21 | echo "Test failed" 22 | exit 1 23 | fi 24 | 25 | rm -f testok.txt 26 | bash .ci/build.sh " $1" "$2 -O2" "$3 IGNORE_SPEED=1" "$4" "$5" 27 | if [ -a testok.txt ] && [ -f testok.txt ]; then 28 | echo 29 | else 30 | echo 31 | echo "Test failed" 32 | exit 1 33 | fi 34 | 35 | rm -f testok.txt 36 | bash .ci/build.sh " $1" "$2" "$3 IGNORE_SPEED=1 LTC_SMALL=1" "$4" "$5" 37 | if [ -a testok.txt ] && [ -f testok.txt ]; then 38 | echo 39 | else 40 | echo 41 | echo "Test failed" 42 | exit 1 43 | fi 44 | 45 | exit 0 46 | -------------------------------------------------------------------------------- /.ci/testbuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # output version 4 | bash .ci/printinfo.sh 5 | 6 | if [ -f /proc/cpuinfo ] 7 | then 8 | MAKE_JOBS=$(( ($(cat /proc/cpuinfo | grep -E '^processor[[:space:]]*:' | tail -n -1 | cut -d':' -f2) + 1) * 2 + 1 )) 9 | else 10 | MAKE_JOBS=8 11 | fi 12 | 13 | echo "$1 (Build Only, $2, $3)..." 14 | make clean 1>/dev/null 2>/dev/null 15 | echo -n "building..." 16 | touch testok.txt 17 | make -j$MAKE_JOBS -f $3 test tv_gen CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" 1>gcc_1.txt 2>gcc_2.txt || (echo "build $1 failed see gcc_2.txt for more information" && cat gcc_2.txt && rm -f testok.txt && exit 1) 18 | if find testok.txt -type f 1>/dev/null 2>/dev/null ; then 19 | echo "successful" 20 | exit 0 21 | fi 22 | exit 1 23 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | ### Checklist 10 | 11 | 12 | * [ ] documentation is added or updated 13 | * [ ] tests are added or updated 14 | -------------------------------------------------------------------------------- /contrib/libtomcrypt.cmake: -------------------------------------------------------------------------------- 1 | # To find libtomcrypt no matter what the installation look like, start with 2 | # looking for the CMake specific configuration, and failing that, try the 3 | # pkg-config package instead. The resulting target is different in each 4 | # case, but is recorded in the variable ${LIBTOMCRYPT}, so please use that 5 | # for all targets that depend on libtomcrypt. 6 | 7 | find_package(libtomcrypt QUIET) 8 | if (libtomcrypt_FOUND) 9 | set(LIBTOMCRYPT libtomcrypt) 10 | else() 11 | find_package(PkgConfig) 12 | pkg_check_modules(libtomcrypt REQUIRED IMPORTED_TARGET libtomcrypt) 13 | set(LIBTOMCRYPT PkgConfig::libtomcrypt) 14 | endif() 15 | -------------------------------------------------------------------------------- /contrib/sbom.cdx.json: -------------------------------------------------------------------------------- 1 | { 2 | "bomFormat": "CycloneDX", 3 | "specVersion": "1.6", 4 | "version": 1, 5 | "metadata": { 6 | "authors": [ 7 | { 8 | "name": "@VCS_SBOM_AUTHORS@" 9 | } 10 | ] 11 | }, 12 | "components": [ 13 | { 14 | "type": "library", 15 | "bom-ref": "pkg:github/libtom/libtomcrypt@@VCS_TAG@", 16 | "cpe": "cpe:2.3:a:libtom:libtomcrypt:@VCS_TAG@:*:*:*:*:*:*:*", 17 | "name": "libtomcrypt", 18 | "version": "@VCS_VERSION@", 19 | "description": "Modular and portable cryptographic toolkit", 20 | "authors": [ 21 | { 22 | "name": "libtomcrypt developers" 23 | } 24 | ], 25 | "licenses": [ 26 | { 27 | "license": { 28 | "id": "Unlicense" 29 | } 30 | } 31 | ], 32 | "externalReferences": [ 33 | { 34 | "type": "vcs", 35 | "url": "https://github.com/libtom/libtomcrypt" 36 | } 37 | ] 38 | } 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /demos/ltc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | RELDIR="/$0" 4 | RELDIR="${RELDIR%/*}" 5 | RELDIR="${RELDIR:-.}" 6 | RELDIR="${RELDIR##/}/" 7 | 8 | BINDIR=`cd "$RELDIR"; pwd` 9 | 10 | err_out() { 11 | err=$1 12 | shift 13 | echo $* >&2 14 | exit $err 15 | } 16 | 17 | usage() { 18 | cat >&$(($1 + 1)) << EOF 19 | Available commands are: 20 | `ls -1 $BINDIR/ltc-* | sed "s@$BINDIR/ltc-@ @g"` 21 | help 22 | EOF 23 | exit $1 24 | } 25 | 26 | [ $# -gt 0 ] || usage 1 27 | 28 | TOOL="$1" 29 | shift 30 | [ "$TOOL" == "help" ] || [ "$TOOL" == "--help" ] || [ "$TOOL" == "-h" ] && usage 0 31 | 32 | test -x "$BINDIR/ltc-$TOOL" || err_out 1 "Unknown command: $TOOL" 33 | 34 | [ $# -gt 0 ] && "$BINDIR/ltc-$TOOL" "$@" || "$BINDIR/ltc-$TOOL" 35 | -------------------------------------------------------------------------------- /demos/small.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | /* small demo app that just includes a cipher/hash/prng */ 4 | #include 5 | 6 | int main(void) 7 | { 8 | #ifdef LTC_RIJNDAEL 9 | #ifdef ENCRYPT_ONLY 10 | register_cipher(&rijndael_enc_desc); 11 | #endif 12 | #endif 13 | register_prng(&yarrow_desc); 14 | register_hash(&sha256_desc); 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /doc/libtomsm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/doc/libtomsm.png -------------------------------------------------------------------------------- /libtomcrypt.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ 3 | includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@PROJECT_NAME@ 4 | 5 | Name: LibTomCrypt 6 | Description: public domain open source cryptographic toolkit 7 | Version: @PROJECT_VERSION@ 8 | Libs: -L${libdir} -ltomcrypt @PKG_CONFIG_LIBS@ 9 | Cflags: -I${includedir} @PKG_CONFIG_CFLAGS@ 10 | -------------------------------------------------------------------------------- /notes/etc/whirltest.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) 4 | { 5 | char buf[4096]; 6 | int x; 7 | 8 | while (fgets(buf, sizeof(buf)-2, stdin) != NULL) { 9 | for (x = 0; x < 128; ) { 10 | printf("0x%c%c, ", buf[x], buf[x+1]); 11 | if (!((x += 2) & 31)) printf("\n"); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /notes/rsa-testvectors/makefile: -------------------------------------------------------------------------------- 1 | default: regen 2 | 3 | clean: 4 | rm -f *.c 5 | 6 | regen: 7 | python rt.py pss-vect.txt pss > pss-vect.c 8 | python rt.py oaep-vect.txt oaep > oaep-vect.c 9 | python rt.py pkcs1v15sign-vectors.txt emsa > pkcs1v15sign-vectors.c 10 | python rt.py pkcs1v15crypt-vectors.txt eme > pkcs1v15crypt-vectors.c 11 | 12 | -------------------------------------------------------------------------------- /notes/rsa-testvectors/readme.txt: -------------------------------------------------------------------------------- 1 | ==================== 2 | pkcs-1v2-1-vec.zip 3 | ==================== 4 | 5 | This directory contains test vectors for RSAES-OAEP and 6 | RSASSA-PSS as defined in PKCS #1 v2.1. 7 | 8 | The files: 9 | 10 | readme.txt This file. 11 | 12 | oaep-vect.txt Test vectors for RSAES-OAEP encryption. 13 | 14 | oaep-int.txt Intermediate values for RSAES-OAEP 15 | encryption and RSA decryption with CRT. 16 | Also, DER-encoded RSAPrivateKey and 17 | RSAPublicKey types. 18 | 19 | pss-vect.txt Test vectors for RSASSA-PSS signing. 20 | 21 | pss-int.txt Intermediate values for RSASSA-PSS 22 | signing. 23 | -------------------------------------------------------------------------------- /notes/tech0005.txt: -------------------------------------------------------------------------------- 1 | Tech Note 0005 2 | Minimizing Code Space 3 | Tom St Denis 4 | 5 | Introduction 6 | ------------ 7 | 8 | Tweaking... 9 | 10 | You can disable whole classes of algorithms on the command line with the LTC_NO_* defines. From there you can manually turn on what you want to enable. 11 | 12 | The following build with GCC 3.4.4 on an AMD64 box gets you AES, CTR mode, SHA-256, HMAC, Yarrow, full RSA PKCS #1, PKCS #5 and ASN.1 DER in 13 | roughly 40KB of code (49KB on the ARMv4) (both excluding the math library). 14 | 15 | CFLAGS="-DLTC_NO_CIPHERS -DLTC_NO_HASHES -DLTC_NO_PRNGS -DLTC_NO_MACS -DLTC_NO_MODES -DLTC_NO_PK -DLTC_RIJNDAEL -DLTC_CTR_MODE -DSHA256 \ 16 | -DLTC_HMAC -DYARROW -DMRSA -DMPI -DTFM_DESC -DARGTYPE=3 -Os -DLTC_SMALL_CODE -fomit-frame-pointer" make IGNORE_SPEED=1 17 | 18 | Obviously this won't get you performance but if you need to pack a crypto lib in a device with limited means it's more than enough... 19 | 20 | Neato eh? 21 | -------------------------------------------------------------------------------- /notes/tech0007.txt: -------------------------------------------------------------------------------- 1 | Tech Note #7 2 | Quick building for testing with LTM 3 | 4 | EXTRALIBS=-ltommath CFLAGS="-g3 -DLTC_NO_ASM -DUSE_LTM -DLTM_DESC" make -j3 IGNORE_SPEED=1 test 5 | 6 | -------------------------------------------------------------------------------- /src/encauth/ccm/ccm_reset.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | #ifdef LTC_CCM_MODE 6 | 7 | /** 8 | Reset a CCM state to as if you just called ccm_init(). This saves the initialization time. 9 | @param ccm The CCM state to reset 10 | @return CRYPT_OK on success 11 | */ 12 | int ccm_reset(ccm_state *ccm) 13 | { 14 | LTC_ARGCHK(ccm != NULL); 15 | zeromem(ccm->PAD, sizeof(ccm->PAD)); 16 | zeromem(ccm->ctr, sizeof(ccm->ctr)); 17 | zeromem(ccm->CTRPAD, sizeof(ccm->CTRPAD)); 18 | ccm->CTRlen = 0; 19 | ccm->current_ptlen = 0; 20 | ccm->current_aadlen = 0; 21 | 22 | return CRYPT_OK; 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /src/encauth/chachapoly/chacha20poly1305_add_aad.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_CHACHA20POLY1305_MODE 7 | 8 | /** 9 | Add AAD to the ChaCha20Poly1305 state 10 | @param st The ChaCha20Poly1305 state 11 | @param in The additional authentication data to add to the ChaCha20Poly1305 state 12 | @param inlen The length of the ChaCha20Poly1305 data. 13 | @return CRYPT_OK on success 14 | */ 15 | int chacha20poly1305_add_aad(chacha20poly1305_state *st, const unsigned char *in, unsigned long inlen) 16 | { 17 | int err; 18 | 19 | if (inlen == 0) return CRYPT_OK; /* nothing to do */ 20 | LTC_ARGCHK(st != NULL); 21 | 22 | if (st->aadflg == 0) return CRYPT_ERROR; 23 | if ((err = poly1305_process(&st->poly, in, inlen)) != CRYPT_OK) return err; 24 | st->aadlen += (ulong64)inlen; 25 | return CRYPT_OK; 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/encauth/chachapoly/chacha20poly1305_init.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_CHACHA20POLY1305_MODE 7 | 8 | /** 9 | Initialize an ChaCha20Poly1305 context (only the key) 10 | @param st [out] The destination of the ChaCha20Poly1305 state 11 | @param key The secret key 12 | @param keylen The length of the secret key (octets) 13 | @return CRYPT_OK if successful 14 | */ 15 | int chacha20poly1305_init(chacha20poly1305_state *st, const unsigned char *key, unsigned long keylen) 16 | { 17 | XMEMSET(st, 0, sizeof(*st)); 18 | return chacha_setup(&st->chacha, key, keylen, 20); 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/encauth/eax/eax_addheader.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | /** 4 | @file eax_addheader.c 5 | EAX implementation, add meta-data, by Tom St Denis 6 | */ 7 | #include "tomcrypt_private.h" 8 | 9 | #ifdef LTC_EAX_MODE 10 | 11 | /** 12 | add header (metadata) to the stream 13 | @param eax The current EAX state 14 | @param header The header (meta-data) data you wish to add to the state 15 | @param length The length of the header data 16 | @return CRYPT_OK if successful 17 | */ 18 | int eax_addheader(eax_state *eax, const unsigned char *header, 19 | unsigned long length) 20 | { 21 | LTC_ARGCHK(eax != NULL); 22 | LTC_ARGCHK(header != NULL); 23 | return omac_process(&eax->headeromac, header, length); 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/encauth/gcm/gcm_reset.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /** 5 | @file gcm_reset.c 6 | GCM implementation, reset a used state so it can accept IV data, by Tom St Denis 7 | */ 8 | #include "tomcrypt_private.h" 9 | 10 | #ifdef LTC_GCM_MODE 11 | 12 | /** 13 | Reset a GCM state to as if you just called gcm_init(). This saves the initialization time. 14 | @param gcm The GCM state to reset 15 | @return CRYPT_OK on success 16 | */ 17 | int gcm_reset(gcm_state *gcm) 18 | { 19 | LTC_ARGCHK(gcm != NULL); 20 | 21 | zeromem(gcm->buf, sizeof(gcm->buf)); 22 | zeromem(gcm->X, sizeof(gcm->X)); 23 | gcm->mode = LTC_GCM_MODE_IV; 24 | gcm->ivmode = 0; 25 | gcm->buflen = 0; 26 | gcm->totlen = 0; 27 | gcm->pttotlen = 0; 28 | 29 | return CRYPT_OK; 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/encauth/ocb/ocb_ntz.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /** 5 | @file ocb_ntz.c 6 | OCB implementation, internal function, by Tom St Denis 7 | */ 8 | 9 | #include "tomcrypt_private.h" 10 | 11 | #ifdef LTC_OCB_MODE 12 | 13 | /** 14 | Returns the number of leading zero bits [from lsb up] 15 | @param x The 32-bit value to observe 16 | @return The number of bits [from the lsb up] that are zero 17 | */ 18 | int ocb_ntz(unsigned long x) 19 | { 20 | int c; 21 | x &= 0xFFFFFFFFUL; 22 | c = 0; 23 | while ((x & 1) == 0) { 24 | ++c; 25 | x >>= 1; 26 | } 27 | return c; 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/encauth/ocb/ocb_shift_xor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /** 5 | @file ocb_shift_xor.c 6 | OCB implementation, internal function, by Tom St Denis 7 | */ 8 | #include "tomcrypt_private.h" 9 | 10 | #ifdef LTC_OCB_MODE 11 | 12 | /** 13 | Compute the shift/xor for OCB (internal function) 14 | @param ocb The OCB state 15 | @param Z The destination of the shift 16 | */ 17 | void ocb_shift_xor(ocb_state *ocb, unsigned char *Z) 18 | { 19 | int x, y; 20 | y = ocb_ntz(ocb->block_index++); 21 | for (x = 0; x < ocb->block_len; x++) { 22 | ocb->Li[x] ^= ocb->Ls[y][x]; 23 | Z[x] = ocb->Li[x] ^ ocb->R[x]; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/encauth/ocb3/ocb3_int_ntz.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /** 5 | @file ocb3_int_ntz.c 6 | OCB implementation, INTERNAL ONLY helper, by Tom St Denis 7 | */ 8 | #include "tomcrypt_private.h" 9 | 10 | #ifdef LTC_OCB3_MODE 11 | 12 | /** 13 | Returns the number of leading zero bits [from lsb up] (internal function) 14 | @param x The 32-bit value to observe 15 | @return The number of bits [from the lsb up] that are zero 16 | */ 17 | int ocb3_int_ntz(unsigned long x) 18 | { 19 | int c; 20 | x &= 0xFFFFFFFFUL; 21 | c = 0; 22 | while ((x & 1) == 0) { 23 | ++c; 24 | x >>= 1; 25 | } 26 | return c; 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /src/encauth/ocb3/ocb3_int_xor_blocks.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /** 5 | @file ocb3_int_xor_blocks.c 6 | OCB implementation, INTERNAL ONLY helper, by Karel Miko 7 | */ 8 | #include "tomcrypt_private.h" 9 | 10 | #ifdef LTC_OCB3_MODE 11 | 12 | /** 13 | Compute xor for two blocks of bytes 'out = block_a XOR block_b' (internal function) 14 | @param out The block of bytes (output) 15 | @param block_a The block of bytes (input) 16 | @param block_b The block of bytes (input) 17 | @param block_len The size of block_a, block_b, out 18 | */ 19 | void ocb3_int_xor_blocks(unsigned char *out, const unsigned char *block_a, const unsigned char *block_b, unsigned long block_len) 20 | { 21 | int x; 22 | if (out == block_a) { 23 | for (x = 0; x < (int)block_len; x++) out[x] ^= block_b[x]; 24 | } 25 | else { 26 | for (x = 0; x < (int)block_len; x++) out[x] = block_a[x] ^ block_b[x]; 27 | } 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/mac/hmac/hmac_process.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file hmac_process.c 7 | HMAC support, process data, Tom St Denis/Dobes Vandermeer 8 | */ 9 | 10 | #ifdef LTC_HMAC 11 | 12 | /** 13 | Process data through HMAC 14 | @param hmac The hmac state 15 | @param in The data to send through HMAC 16 | @param inlen The length of the data to HMAC (octets) 17 | @return CRYPT_OK if successful 18 | */ 19 | int hmac_process(hmac_state *hmac, const unsigned char *in, unsigned long inlen) 20 | { 21 | int err; 22 | LTC_ARGCHK(hmac != NULL); 23 | LTC_ARGCHK(in != NULL); 24 | if ((err = hash_is_valid(hmac->hash)) != CRYPT_OK) { 25 | return err; 26 | } 27 | return hash_descriptor[hmac->hash].process(&hmac->md, in, inlen); 28 | } 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /src/mac/pmac/pmac_ntz.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file pmac_ntz.c 7 | PMAC implementation, internal function, by Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_PMAC 11 | 12 | /** 13 | Internal PMAC function 14 | */ 15 | int pmac_ntz(unsigned long x) 16 | { 17 | int c; 18 | x &= 0xFFFFFFFFUL; 19 | c = 0; 20 | while ((x & 1) == 0) { 21 | ++c; 22 | x >>= 1; 23 | } 24 | return c; 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/mac/pmac/pmac_shift_xor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file pmac_shift_xor.c 7 | PMAC implementation, internal function, by Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_PMAC 11 | 12 | /** 13 | Internal function. Performs the state update (adding correct multiple) 14 | @param pmac The PMAC state. 15 | */ 16 | void pmac_shift_xor(pmac_state *pmac) 17 | { 18 | int x, y; 19 | y = pmac_ntz(pmac->block_index++); 20 | #ifdef LTC_FAST 21 | for (x = 0; x < pmac->block_len; x += sizeof(LTC_FAST_TYPE)) { 22 | *(LTC_FAST_TYPE_PTR_CAST((unsigned char *)pmac->Li + x)) ^= 23 | *(LTC_FAST_TYPE_PTR_CAST((unsigned char *)pmac->Ls[y] + x)); 24 | } 25 | #else 26 | for (x = 0; x < pmac->block_len; x++) { 27 | pmac->Li[x] ^= pmac->Ls[y][x]; 28 | } 29 | #endif 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /src/misc/burn_stack.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file burn_stack.c 7 | Burn stack, Tom St Denis 8 | */ 9 | 10 | /** 11 | Burn some stack memory 12 | @param len amount of stack to burn in bytes 13 | */ 14 | void burn_stack(unsigned long len) 15 | { 16 | unsigned char buf[32]; 17 | zeromem(buf, sizeof(buf)); 18 | if (len > (unsigned long)sizeof(buf)) { 19 | burn_stack(len - sizeof(buf)); 20 | } 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_argchk.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_argchk.c 7 | Perform argument checking, Tom St Denis 8 | */ 9 | 10 | #if (ARGTYPE == 0) 11 | void crypt_argchk(const char *v, const char *s, int d) 12 | { 13 | fprintf(stderr, "LTC_ARGCHK '%s' failure on line %d of file %s\n", 14 | v, d, s); 15 | abort(); 16 | } 17 | #endif 18 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_cipher_descriptor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_cipher_descriptor.c 7 | Stores the cipher descriptor table, Tom St Denis 8 | */ 9 | 10 | struct ltc_cipher_descriptor cipher_descriptor[TAB_SIZE] = { 11 | { NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } 12 | }; 13 | 14 | LTC_MUTEX_GLOBAL(ltc_cipher_mutex) 15 | 16 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_cipher_is_valid.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_cipher_is_valid.c 7 | Determine if cipher is valid, Tom St Denis 8 | */ 9 | 10 | /* 11 | Test if a cipher index is valid 12 | @param idx The index of the cipher to search for 13 | @return CRYPT_OK if valid 14 | */ 15 | int cipher_is_valid(int idx) 16 | { 17 | LTC_MUTEX_LOCK(<c_cipher_mutex); 18 | if (idx < 0 || idx >= TAB_SIZE || cipher_descriptor[idx].name == NULL) { 19 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 20 | return CRYPT_INVALID_CIPHER; 21 | } 22 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 23 | return CRYPT_OK; 24 | } 25 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_cipher.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_cipher.c 7 | Find a cipher in the descriptor tables, Tom St Denis 8 | */ 9 | 10 | /** 11 | Find a registered cipher by name 12 | @param name The name of the cipher to look for 13 | @return >= 0 if found, -1 if not present 14 | */ 15 | int find_cipher(const char *name) 16 | { 17 | int x; 18 | LTC_ARGCHK(name != NULL); 19 | LTC_MUTEX_LOCK(<c_cipher_mutex); 20 | for (x = 0; x < TAB_SIZE; x++) { 21 | if (cipher_descriptor[x].name != NULL && !XSTRCMP(cipher_descriptor[x].name, name)) { 22 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 23 | return x; 24 | } 25 | } 26 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 27 | return -1; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_cipher_id.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_cipher_id.c 7 | Find cipher by ID, Tom St Denis 8 | */ 9 | 10 | /** 11 | Find a cipher by ID number 12 | @param ID The ID (not same as index) of the cipher to find 13 | @return >= 0 if found, -1 if not present 14 | */ 15 | int find_cipher_id(unsigned char ID) 16 | { 17 | int x; 18 | LTC_MUTEX_LOCK(<c_cipher_mutex); 19 | for (x = 0; x < TAB_SIZE; x++) { 20 | if (cipher_descriptor[x].ID == ID) { 21 | x = (cipher_descriptor[x].name == NULL) ? -1 : x; 22 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 23 | return x; 24 | } 25 | } 26 | LTC_MUTEX_UNLOCK(<c_cipher_mutex); 27 | return -1; 28 | } 29 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_hash.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_hash.c 7 | Find a hash, Tom St Denis 8 | */ 9 | 10 | /** 11 | Find a registered hash by name 12 | @param name The name of the hash to look for 13 | @return >= 0 if found, -1 if not present 14 | */ 15 | int find_hash(const char *name) 16 | { 17 | int x; 18 | LTC_ARGCHK(name != NULL); 19 | LTC_MUTEX_LOCK(<c_hash_mutex); 20 | for (x = 0; x < TAB_SIZE; x++) { 21 | if (hash_descriptor[x].name != NULL && XSTRCMP(hash_descriptor[x].name, name) == 0) { 22 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 23 | return x; 24 | } 25 | } 26 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 27 | return -1; 28 | } 29 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_hash_id.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_hash_id.c 7 | Find hash by ID, Tom St Denis 8 | */ 9 | 10 | /** 11 | Find a hash by ID number 12 | @param ID The ID (not same as index) of the hash to find 13 | @return >= 0 if found, -1 if not present 14 | */ 15 | int find_hash_id(unsigned char ID) 16 | { 17 | int x; 18 | LTC_MUTEX_LOCK(<c_hash_mutex); 19 | for (x = 0; x < TAB_SIZE; x++) { 20 | if (hash_descriptor[x].ID == ID) { 21 | x = (hash_descriptor[x].name == NULL) ? -1 : x; 22 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 23 | return x; 24 | } 25 | } 26 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 27 | return -1; 28 | } 29 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_hash_oid.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_hash_oid.c 7 | Find a hash, Tom St Denis 8 | */ 9 | 10 | int find_hash_oid(const unsigned long *ID, unsigned long IDlen) 11 | { 12 | int x; 13 | LTC_ARGCHK(ID != NULL); 14 | LTC_MUTEX_LOCK(<c_hash_mutex); 15 | for (x = 0; x < TAB_SIZE; x++) { 16 | if (hash_descriptor[x].name != NULL && hash_descriptor[x].OIDlen == IDlen && !XMEMCMP(hash_descriptor[x].OID, ID, sizeof(unsigned long) * IDlen)) { 17 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 18 | return x; 19 | } 20 | } 21 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 22 | return -1; 23 | } 24 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_find_prng.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_find_prng.c 7 | Find a PRNG, Tom St Denis 8 | */ 9 | 10 | /** 11 | Find a registered PRNG by name 12 | @param name The name of the PRNG to look for 13 | @return >= 0 if found, -1 if not present 14 | */ 15 | int find_prng(const char *name) 16 | { 17 | int x; 18 | LTC_ARGCHK(name != NULL); 19 | LTC_MUTEX_LOCK(<c_prng_mutex); 20 | for (x = 0; x < TAB_SIZE; x++) { 21 | if ((prng_descriptor[x].name != NULL) && XSTRCMP(prng_descriptor[x].name, name) == 0) { 22 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 23 | return x; 24 | } 25 | } 26 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 27 | return -1; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_hash_descriptor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_hash_descriptor.c 7 | Stores the hash descriptor table, Tom St Denis 8 | */ 9 | 10 | struct ltc_hash_descriptor hash_descriptor[TAB_SIZE] = { 11 | { NULL, 0, 0, 0, { 0 }, 0, NULL, NULL, NULL, NULL, NULL } 12 | }; 13 | 14 | LTC_MUTEX_GLOBAL(ltc_hash_mutex) 15 | 16 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_hash_is_valid.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_hash_is_valid.c 7 | Determine if hash is valid, Tom St Denis 8 | */ 9 | 10 | /* 11 | Test if a hash index is valid 12 | @param idx The index of the hash to search for 13 | @return CRYPT_OK if valid 14 | */ 15 | int hash_is_valid(int idx) 16 | { 17 | LTC_MUTEX_LOCK(<c_hash_mutex); 18 | if (idx < 0 || idx >= TAB_SIZE || hash_descriptor[idx].name == NULL) { 19 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 20 | return CRYPT_INVALID_HASH; 21 | } 22 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 23 | return CRYPT_OK; 24 | } 25 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_ltc_mp_descriptor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /* Initialize ltc_mp to nulls, to force allocation on all platforms, including macOS. */ 6 | ltc_math_descriptor ltc_mp = { 0 }; 7 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_prng_descriptor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_prng_descriptor.c 7 | Stores the PRNG descriptors, Tom St Denis 8 | */ 9 | struct ltc_prng_descriptor prng_descriptor[TAB_SIZE] = { 10 | { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } 11 | }; 12 | 13 | LTC_MUTEX_GLOBAL(ltc_prng_mutex) 14 | 15 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_prng_is_valid.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_prng_is_valid.c 7 | Determine if PRNG is valid, Tom St Denis 8 | */ 9 | 10 | /* 11 | Test if a PRNG index is valid 12 | @param idx The index of the PRNG to search for 13 | @return CRYPT_OK if valid 14 | */ 15 | int prng_is_valid(int idx) 16 | { 17 | LTC_MUTEX_LOCK(<c_prng_mutex); 18 | if (idx < 0 || idx >= TAB_SIZE || prng_descriptor[idx].name == NULL) { 19 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 20 | return CRYPT_INVALID_PRNG; 21 | } 22 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 23 | return CRYPT_OK; 24 | } 25 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_prng_rng_descriptor.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | #ifdef LTC_PRNG_ENABLE_LTC_RNG 6 | unsigned long (*ltc_rng)(unsigned char *out, unsigned long outlen, void (*callback)(void)); 7 | #endif 8 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_register_all_prngs.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | /** 7 | @file crypt_register_all_prngs.c 8 | 9 | Steffen Jaeckel 10 | */ 11 | 12 | #define REGISTER_PRNG(h) do {\ 13 | LTC_ARGCHK(register_prng(h) != -1); \ 14 | } while(0) 15 | 16 | int register_all_prngs(void) 17 | { 18 | #ifdef LTC_YARROW 19 | REGISTER_PRNG(&yarrow_desc); 20 | #endif 21 | #ifdef LTC_FORTUNA 22 | REGISTER_PRNG(&fortuna_desc); 23 | #endif 24 | #ifdef LTC_RC4 25 | REGISTER_PRNG(&rc4_desc); 26 | #endif 27 | #ifdef LTC_CHACHA20_PRNG 28 | REGISTER_PRNG(&chacha20_prng_desc); 29 | #endif 30 | #ifdef LTC_SOBER128 31 | REGISTER_PRNG(&sober128_desc); 32 | #endif 33 | #ifdef LTC_SPRNG 34 | REGISTER_PRNG(&sprng_desc); 35 | #endif 36 | 37 | return CRYPT_OK; 38 | } 39 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_unregister_hash.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_unregister_hash.c 7 | Unregister a hash, Tom St Denis 8 | */ 9 | 10 | /** 11 | Unregister a hash from the descriptor table 12 | @param hash The hash descriptor to remove 13 | @return CRYPT_OK on success 14 | */ 15 | int unregister_hash(const struct ltc_hash_descriptor *hash) 16 | { 17 | int x; 18 | 19 | LTC_ARGCHK(hash != NULL); 20 | 21 | /* is it already registered? */ 22 | LTC_MUTEX_LOCK(<c_hash_mutex); 23 | for (x = 0; x < TAB_SIZE; x++) { 24 | if (XMEMCMP(&hash_descriptor[x], hash, sizeof(struct ltc_hash_descriptor)) == 0) { 25 | hash_descriptor[x].name = NULL; 26 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 27 | return CRYPT_OK; 28 | } 29 | } 30 | LTC_MUTEX_UNLOCK(<c_hash_mutex); 31 | return CRYPT_ERROR; 32 | } 33 | -------------------------------------------------------------------------------- /src/misc/crypt/crypt_unregister_prng.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file crypt_unregister_prng.c 7 | Unregister a PRNG, Tom St Denis 8 | */ 9 | 10 | /** 11 | Unregister a PRNG from the descriptor table 12 | @param prng The PRNG descriptor to remove 13 | @return CRYPT_OK on success 14 | */ 15 | int unregister_prng(const struct ltc_prng_descriptor *prng) 16 | { 17 | int x; 18 | 19 | LTC_ARGCHK(prng != NULL); 20 | 21 | /* is it already registered? */ 22 | LTC_MUTEX_LOCK(<c_prng_mutex); 23 | for (x = 0; x < TAB_SIZE; x++) { 24 | if (XMEMCMP(&prng_descriptor[x], prng, sizeof(struct ltc_prng_descriptor)) == 0) { 25 | prng_descriptor[x].name = NULL; 26 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 27 | return CRYPT_OK; 28 | } 29 | } 30 | LTC_MUTEX_UNLOCK(<c_prng_mutex); 31 | return CRYPT_ERROR; 32 | } 33 | -------------------------------------------------------------------------------- /src/misc/password_free.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file password_free.c 7 | Free the password inside a `struct password`, Steffen Jaeckel 8 | */ 9 | 10 | /** 11 | Free a password 12 | @param pw The password to be free'd 13 | @param ctx The password context 14 | */ 15 | void password_free(struct password *pw, const struct password_ctx *ctx) 16 | { 17 | if (!ctx || !pw || !pw->pw) 18 | return; 19 | 20 | zeromem(pw->pw, pw->l); 21 | if (ctx->free) { 22 | ctx->free(pw->pw); 23 | } else { 24 | XFREE(pw->pw); 25 | } 26 | pw->pw = NULL; 27 | pw->l = 0; 28 | } 29 | -------------------------------------------------------------------------------- /src/misc/zeromem.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file zeromem.c 7 | Zero a block of memory, Tom St Denis 8 | */ 9 | 10 | /** 11 | Zero a block of memory 12 | @param out The destination of the area to zero 13 | @param outlen The length of the area to zero (octets) 14 | */ 15 | void zeromem(volatile void *out, size_t outlen) 16 | { 17 | volatile char *mem = out; 18 | LTC_ARGCHKVD(out != NULL); 19 | while (outlen-- > 0) { 20 | *mem++ = '\0'; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/modes/cbc/cbc_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file cbc_done.c 7 | CBC implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CBC_MODE 11 | 12 | /** Terminate the chain 13 | @param cbc The CBC chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int cbc_done(symmetric_CBC *cbc) 17 | { 18 | int err; 19 | LTC_ARGCHK(cbc != NULL); 20 | 21 | if ((err = cipher_is_valid(cbc->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[cbc->cipher].done(&cbc->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/cbc/cbc_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file cbc_getiv.c 7 | CBC implementation, get IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CBC_MODE 11 | 12 | /** 13 | Get the current initialization vector 14 | @param IV [out] The destination of the initialization vector 15 | @param len [in/out] The max size and resulting size of the initialization vector 16 | @param cbc The CBC state 17 | @return CRYPT_OK if successful 18 | */ 19 | int cbc_getiv(unsigned char *IV, unsigned long *len, const symmetric_CBC *cbc) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(cbc != NULL); 24 | if ((unsigned long)cbc->blocklen > *len) { 25 | *len = cbc->blocklen; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | XMEMCPY(IV, cbc->IV, cbc->blocklen); 29 | *len = cbc->blocklen; 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/cbc/cbc_setiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file cbc_setiv.c 7 | CBC implementation, set IV, Tom St Denis 8 | */ 9 | 10 | 11 | #ifdef LTC_CBC_MODE 12 | 13 | /** 14 | Set an initialization vector 15 | @param IV The initialization vector 16 | @param len The length of the vector (in octets) 17 | @param cbc The CBC state 18 | @return CRYPT_OK if successful 19 | */ 20 | int cbc_setiv(const unsigned char *IV, unsigned long len, symmetric_CBC *cbc) 21 | { 22 | LTC_ARGCHK(IV != NULL); 23 | LTC_ARGCHK(cbc != NULL); 24 | if (len != (unsigned long)cbc->blocklen) { 25 | return CRYPT_INVALID_ARG; 26 | } 27 | XMEMCPY(cbc->IV, IV, len); 28 | return CRYPT_OK; 29 | } 30 | 31 | #endif 32 | 33 | -------------------------------------------------------------------------------- /src/modes/cfb/cfb_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file cfb_done.c 7 | CFB implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CFB_MODE 11 | 12 | /** Terminate the chain 13 | @param cfb The CFB chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int cfb_done(symmetric_CFB *cfb) 17 | { 18 | int err; 19 | LTC_ARGCHK(cfb != NULL); 20 | 21 | if ((err = cipher_is_valid(cfb->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[cfb->cipher].done(&cfb->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/cfb/cfb_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file cfb_getiv.c 7 | CFB implementation, get IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CFB_MODE 11 | 12 | /** 13 | Get the current initialization vector 14 | @param IV [out] The destination of the initialization vector 15 | @param len [in/out] The max size and resulting size of the initialization vector 16 | @param cfb The CFB state 17 | @return CRYPT_OK if successful 18 | */ 19 | int cfb_getiv(unsigned char *IV, unsigned long *len, const symmetric_CFB *cfb) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(cfb != NULL); 24 | if ((unsigned long)cfb->blocklen > *len) { 25 | *len = cfb->blocklen; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | XMEMCPY(IV, cfb->pad, cfb->blocklen); 29 | *len = cfb->blocklen; 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/ctr/ctr_decrypt.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ctr_decrypt.c 7 | CTR implementation, decrypt data, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CTR_MODE 11 | 12 | /** 13 | CTR decrypt 14 | @param ct Ciphertext 15 | @param pt [out] Plaintext 16 | @param len Length of ciphertext (octets) 17 | @param ctr CTR state 18 | @return CRYPT_OK if successful 19 | */ 20 | int ctr_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_CTR *ctr) 21 | { 22 | LTC_ARGCHK(pt != NULL); 23 | LTC_ARGCHK(ct != NULL); 24 | LTC_ARGCHK(ctr != NULL); 25 | 26 | return ctr_encrypt(ct, pt, len, ctr); 27 | } 28 | 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /src/modes/ctr/ctr_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ctr_done.c 7 | CTR implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CTR_MODE 11 | 12 | /** Terminate the chain 13 | @param ctr The CTR chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int ctr_done(symmetric_CTR *ctr) 17 | { 18 | int err; 19 | LTC_ARGCHK(ctr != NULL); 20 | 21 | if ((err = cipher_is_valid(ctr->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[ctr->cipher].done(&ctr->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/ctr/ctr_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ctr_getiv.c 7 | CTR implementation, get IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_CTR_MODE 11 | 12 | /** 13 | Get the current initialization vector 14 | @param IV [out] The destination of the initialization vector 15 | @param len [in/out] The max size and resulting size of the initialization vector 16 | @param ctr The CTR state 17 | @return CRYPT_OK if successful 18 | */ 19 | int ctr_getiv(unsigned char *IV, unsigned long *len, const symmetric_CTR *ctr) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(ctr != NULL); 24 | if ((unsigned long)ctr->blocklen > *len) { 25 | *len = ctr->blocklen; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | XMEMCPY(IV, ctr->ctr, ctr->blocklen); 29 | *len = ctr->blocklen; 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/ecb/ecb_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ecb_done.c 7 | ECB implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_ECB_MODE 11 | 12 | /** Terminate the chain 13 | @param ecb The ECB chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int ecb_done(symmetric_ECB *ecb) 17 | { 18 | int err; 19 | LTC_ARGCHK(ecb != NULL); 20 | 21 | if ((err = cipher_is_valid(ecb->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[ecb->cipher].done(&ecb->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/f8/f8_decrypt.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file f8_decrypt.c 7 | F8 implementation, decrypt data, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_F8_MODE 11 | 12 | /** 13 | F8 decrypt 14 | @param ct Ciphertext 15 | @param pt [out] Plaintext 16 | @param len Length of ciphertext (octets) 17 | @param f8 F8 state 18 | @return CRYPT_OK if successful 19 | */ 20 | int f8_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_F8 *f8) 21 | { 22 | LTC_ARGCHK(pt != NULL); 23 | LTC_ARGCHK(ct != NULL); 24 | LTC_ARGCHK(f8 != NULL); 25 | return f8_encrypt(ct, pt, len, f8); 26 | } 27 | 28 | 29 | #endif 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/modes/f8/f8_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file f8_done.c 7 | F8 implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_F8_MODE 11 | 12 | /** Terminate the chain 13 | @param f8 The F8 chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int f8_done(symmetric_F8 *f8) 17 | { 18 | int err; 19 | LTC_ARGCHK(f8 != NULL); 20 | 21 | if ((err = cipher_is_valid(f8->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[f8->cipher].done(&f8->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/f8/f8_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ofb_getiv.c 7 | F8 implementation, get IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_F8_MODE 11 | 12 | /** 13 | Get the current initialization vector 14 | @param IV [out] The destination of the initialization vector 15 | @param len [in/out] The max size and resulting size of the initialization vector 16 | @param f8 The F8 state 17 | @return CRYPT_OK if successful 18 | */ 19 | int f8_getiv(unsigned char *IV, unsigned long *len, const symmetric_F8 *f8) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(f8 != NULL); 24 | if ((unsigned long)f8->blocklen > *len) { 25 | *len = f8->blocklen; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | XMEMCPY(IV, f8->IV, f8->blocklen); 29 | *len = f8->blocklen; 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/f8/f8_setiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file f8_setiv.c 7 | F8 implementation, set IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_F8_MODE 11 | 12 | /** 13 | Set an initialization vector 14 | @param IV The initialization vector 15 | @param len The length of the vector (in octets) 16 | @param f8 The F8 state 17 | @return CRYPT_OK if successful 18 | */ 19 | int f8_setiv(const unsigned char *IV, unsigned long len, symmetric_F8 *f8) 20 | { 21 | int err; 22 | 23 | LTC_ARGCHK(IV != NULL); 24 | LTC_ARGCHK(f8 != NULL); 25 | 26 | if ((err = cipher_is_valid(f8->cipher)) != CRYPT_OK) { 27 | return err; 28 | } 29 | 30 | if (len != (unsigned long)f8->blocklen) { 31 | return CRYPT_INVALID_ARG; 32 | } 33 | 34 | /* force next block */ 35 | f8->padlen = 0; 36 | return cipher_descriptor[f8->cipher].ecb_encrypt(IV, f8->IV, &f8->key); 37 | } 38 | 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /src/modes/lrw/lrw_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file lrw_done.c 7 | LRW_MODE implementation, Free resources, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_LRW_MODE 11 | 12 | /** 13 | Terminate a LRW state 14 | @param lrw The state to terminate 15 | @return CRYPT_OK if successful 16 | */ 17 | int lrw_done(symmetric_LRW *lrw) 18 | { 19 | int err; 20 | 21 | LTC_ARGCHK(lrw != NULL); 22 | 23 | if ((err = cipher_is_valid(lrw->cipher)) != CRYPT_OK) { 24 | return err; 25 | } 26 | cipher_descriptor[lrw->cipher].done(&lrw->key); 27 | 28 | return CRYPT_OK; 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/modes/lrw/lrw_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file lrw_getiv.c 7 | LRW_MODE implementation, Retrieve the current IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_LRW_MODE 11 | 12 | /** 13 | Get the IV for LRW 14 | @param IV [out] The IV, must be 16 octets 15 | @param len Length ... must be at least 16 :-) 16 | @param lrw The LRW state to read 17 | @return CRYPT_OK if successful 18 | */ 19 | int lrw_getiv(unsigned char *IV, unsigned long *len, const symmetric_LRW *lrw) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(lrw != NULL); 24 | if (*len < 16) { 25 | *len = 16; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | 29 | XMEMCPY(IV, lrw->IV, 16); 30 | *len = 16; 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/ofb/ofb_decrypt.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ofb_decrypt.c 7 | OFB implementation, decrypt data, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_OFB_MODE 11 | 12 | /** 13 | OFB decrypt 14 | @param ct Ciphertext 15 | @param pt [out] Plaintext 16 | @param len Length of ciphertext (octets) 17 | @param ofb OFB state 18 | @return CRYPT_OK if successful 19 | */ 20 | int ofb_decrypt(const unsigned char *ct, unsigned char *pt, unsigned long len, symmetric_OFB *ofb) 21 | { 22 | LTC_ARGCHK(pt != NULL); 23 | LTC_ARGCHK(ct != NULL); 24 | LTC_ARGCHK(ofb != NULL); 25 | return ofb_encrypt(ct, pt, len, ofb); 26 | } 27 | 28 | 29 | #endif 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/modes/ofb/ofb_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ofb_done.c 7 | OFB implementation, finish chain, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_OFB_MODE 11 | 12 | /** Terminate the chain 13 | @param ofb The OFB chain to terminate 14 | @return CRYPT_OK on success 15 | */ 16 | int ofb_done(symmetric_OFB *ofb) 17 | { 18 | int err; 19 | LTC_ARGCHK(ofb != NULL); 20 | 21 | if ((err = cipher_is_valid(ofb->cipher)) != CRYPT_OK) { 22 | return err; 23 | } 24 | cipher_descriptor[ofb->cipher].done(&ofb->key); 25 | return CRYPT_OK; 26 | } 27 | 28 | 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/modes/ofb/ofb_getiv.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ofb_getiv.c 7 | OFB implementation, get IV, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_OFB_MODE 11 | 12 | /** 13 | Get the current initialization vector 14 | @param IV [out] The destination of the initialization vector 15 | @param len [in/out] The max size and resulting size of the initialization vector 16 | @param ofb The OFB state 17 | @return CRYPT_OK if successful 18 | */ 19 | int ofb_getiv(unsigned char *IV, unsigned long *len, const symmetric_OFB *ofb) 20 | { 21 | LTC_ARGCHK(IV != NULL); 22 | LTC_ARGCHK(len != NULL); 23 | LTC_ARGCHK(ofb != NULL); 24 | if ((unsigned long)ofb->blocklen > *len) { 25 | *len = ofb->blocklen; 26 | return CRYPT_BUFFER_OVERFLOW; 27 | } 28 | XMEMCPY(IV, ofb->IV, ofb->blocklen); 29 | *len = ofb->blocklen; 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/modes/xts/xts_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | Source donated by Elliptic Semiconductor Inc (www.ellipticsemi.com) to the LibTom Projects 7 | */ 8 | 9 | #ifdef LTC_XTS_MODE 10 | 11 | /** Terminate XTS state 12 | @param xts The state to terminate 13 | */ 14 | void xts_done(symmetric_xts *xts) 15 | { 16 | LTC_ARGCHKVD(xts != NULL); 17 | cipher_descriptor[xts->cipher].done(&xts->key1); 18 | cipher_descriptor[xts->cipher].done(&xts->key2); 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /src/modes/xts/xts_mult_x.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | Source donated by Elliptic Semiconductor Inc (www.ellipticsemi.com) to the LibTom Projects 7 | */ 8 | 9 | #ifdef LTC_XTS_MODE 10 | 11 | /** multiply by x 12 | @param I The value to multiply by x (LFSR shift) 13 | */ 14 | void xts_mult_x(unsigned char *I) 15 | { 16 | int x; 17 | unsigned char t, tt; 18 | 19 | for (x = t = 0; x < 16; x++) { 20 | tt = I[x] >> 7; 21 | I[x] = ((I[x] << 1) | t) & 0xFF; 22 | t = tt; 23 | } 24 | if (tt) { 25 | I[0] ^= 0x87; 26 | } 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /src/pk/asn1/der/bit/der_length_bit_string.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_bit_string.c 7 | ASN.1 DER, get length of BIT STRING, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_DER 11 | /** 12 | Gets length of DER encoding of BIT STRING 13 | @param nbits The number of bits in the string to encode 14 | @param outlen [out] The length of the DER encoding for the given string 15 | @return CRYPT_OK if successful 16 | */ 17 | int der_length_bit_string(unsigned long nbits, unsigned long *outlen) 18 | { 19 | unsigned long nbytes, x; 20 | int err; 21 | 22 | LTC_ARGCHK(outlen != NULL); 23 | 24 | /* get the number of the bytes */ 25 | nbytes = (nbits >> 3) + ((nbits & 7) ? 1 : 0) + 1; 26 | 27 | if ((err = der_length_asn1_length(nbytes, &x)) != CRYPT_OK) { 28 | return err; 29 | } 30 | *outlen = 1 + x + nbytes; 31 | 32 | return CRYPT_OK; 33 | } 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /src/pk/asn1/der/boolean/der_decode_boolean.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_decode_boolean.c 7 | ASN.1 DER, decode a BOOLEAN, Tom St Denis 8 | */ 9 | 10 | 11 | #ifdef LTC_DER 12 | 13 | /** 14 | Read a BOOLEAN 15 | @param in The destination for the DER encoded BOOLEAN 16 | @param inlen The size of the DER BOOLEAN 17 | @param out [out] The boolean to decode 18 | @return CRYPT_OK if successful 19 | */ 20 | int der_decode_boolean(const unsigned char *in, unsigned long inlen, 21 | int *out) 22 | { 23 | LTC_ARGCHK(in != NULL); 24 | LTC_ARGCHK(out != NULL); 25 | 26 | if (inlen < 3 || in[0] != 0x01 || in[1] != 0x01 || (in[2] != 0x00 && in[2] != 0xFF)) { 27 | return CRYPT_INVALID_ARG; 28 | } 29 | 30 | *out = (in[2]==0xFF) ? 1 : 0; 31 | 32 | return CRYPT_OK; 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/pk/asn1/der/boolean/der_encode_boolean.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_encode_boolean.c 7 | ASN.1 DER, encode a BOOLEAN, Tom St Denis 8 | */ 9 | 10 | 11 | #ifdef LTC_DER 12 | 13 | /** 14 | Store a BOOLEAN 15 | @param in The boolean to encode 16 | @param out [out] The destination for the DER encoded BOOLEAN 17 | @param outlen [in/out] The max size and resulting size of the DER BOOLEAN 18 | @return CRYPT_OK if successful 19 | */ 20 | int der_encode_boolean(int in, 21 | unsigned char *out, unsigned long *outlen) 22 | { 23 | LTC_ARGCHK(outlen != NULL); 24 | LTC_ARGCHK(out != NULL); 25 | 26 | if (*outlen < 3) { 27 | *outlen = 3; 28 | return CRYPT_BUFFER_OVERFLOW; 29 | } 30 | 31 | *outlen = 3; 32 | out[0] = 0x01; 33 | out[1] = 0x01; 34 | out[2] = in ? 0xFF : 0x00; 35 | 36 | return CRYPT_OK; 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/pk/asn1/der/boolean/der_length_boolean.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_boolean.c 7 | ASN.1 DER, get length of a BOOLEAN, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_DER 11 | /** 12 | Gets length of DER encoding of a BOOLEAN 13 | @param outlen [out] The length of the DER encoding 14 | @return CRYPT_OK if successful 15 | */ 16 | int der_length_boolean(unsigned long *outlen) 17 | { 18 | LTC_ARGCHK(outlen != NULL); 19 | *outlen = 3; 20 | return CRYPT_OK; 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/pk/asn1/der/general/der_length_asn1_identifier.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_asn1_identifier.c 7 | ASN.1 DER, determine the length when encoding the ASN.1 Identifier, Steffen Jaeckel 8 | */ 9 | 10 | #ifdef LTC_DER 11 | /** 12 | Determine the length required when encoding the ASN.1 Identifier 13 | @param id The ASN.1 identifier to encode 14 | @param idlen [out] The required length to encode list 15 | @return CRYPT_OK if successful 16 | */ 17 | 18 | int der_length_asn1_identifier(const ltc_asn1_list *id, unsigned long *idlen) 19 | { 20 | return der_encode_asn1_identifier(id, NULL, idlen); 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/pk/asn1/der/general/der_length_asn1_length.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_asn1_length.c 7 | ASN.1 DER, determine the length of the ASN.1 length field, Steffen Jaeckel 8 | */ 9 | 10 | #ifdef LTC_DER 11 | /** 12 | Determine the length required to encode len in the ASN.1 length field 13 | @param len The length to encode 14 | @param outlen [out] The length that's required to store len 15 | @return CRYPT_OK if successful 16 | */ 17 | int der_length_asn1_length(unsigned long len, unsigned long *outlen) 18 | { 19 | return der_encode_asn1_length(len, NULL, outlen); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /src/pk/asn1/der/octet/der_length_octet_string.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_octet_string.c 7 | ASN.1 DER, get length of OCTET STRING, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_DER 11 | /** 12 | Gets length of DER encoding of OCTET STRING 13 | @param noctets The number of octets in the string to encode 14 | @param outlen [out] The length of the DER encoding for the given string 15 | @return CRYPT_OK if successful 16 | */ 17 | int der_length_octet_string(unsigned long noctets, unsigned long *outlen) 18 | { 19 | unsigned long x; 20 | int err; 21 | 22 | LTC_ARGCHK(outlen != NULL); 23 | 24 | if ((err = der_length_asn1_length(noctets, &x)) != CRYPT_OK) { 25 | return err; 26 | } 27 | *outlen = 1 + x + noctets; 28 | 29 | return CRYPT_OK; 30 | } 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /src/pk/asn1/der/sequence/der_decode_sequence_ex.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | 6 | /** 7 | @file der_decode_sequence_ex.c 8 | ASN.1 DER, decode a SEQUENCE, Tom St Denis 9 | */ 10 | 11 | #ifdef LTC_DER 12 | 13 | /** 14 | Decode a SEQUENCE 15 | @param in The DER encoded input 16 | @param inlen The size of the input 17 | @param list The list of items to decode 18 | @param outlen The number of items in the list 19 | @param flags c.f. enum ltc_der_seq 20 | @return CRYPT_OK on success 21 | */ 22 | int der_decode_sequence_ex(const unsigned char *in, unsigned long inlen, 23 | ltc_asn1_list *list, unsigned long outlen, unsigned int flags) 24 | { 25 | return der_decode_custom_type_ex(in, inlen, NULL, list, outlen, flags); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/pk/asn1/der/utctime/der_length_utctime.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file der_length_utctime.c 7 | ASN.1 DER, get length of UTCTIME, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_DER 11 | 12 | /** 13 | Gets length of DER encoding of UTCTIME 14 | @param utctime The UTC time structure to get the size of 15 | @param outlen [out] The length of the DER encoding 16 | @return CRYPT_OK if successful 17 | */ 18 | int der_length_utctime(const ltc_utctime *utctime, unsigned long *outlen) 19 | { 20 | LTC_ARGCHK(outlen != NULL); 21 | LTC_ARGCHK(utctime != NULL); 22 | 23 | if (utctime->off_hh == 0 && utctime->off_mm == 0) { 24 | /* we encode as YYMMDDhhmmssZ */ 25 | *outlen = 2 + 13; 26 | } else { 27 | /* we encode as YYMMDDhhmmss{+|-}hh'mm' */ 28 | *outlen = 2 + 17; 29 | } 30 | 31 | return CRYPT_OK; 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/pk/dh/dh_free.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_MDH 7 | 8 | /** 9 | Free the allocated ram for a DH key 10 | @param key The key which you wish to free 11 | */ 12 | void dh_free(dh_key *key) 13 | { 14 | LTC_ARGCHKVD(key != NULL); 15 | ltc_mp_cleanup_multi(&key->prime, &key->base, &key->y, &key->x, LTC_NULL); 16 | } 17 | 18 | #endif /* LTC_MDH */ 19 | -------------------------------------------------------------------------------- /src/pk/dsa/dsa_free.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file dsa_free.c 7 | DSA implementation, free a DSA key, Tom St Denis 8 | */ 9 | 10 | #ifdef LTC_MDSA 11 | 12 | /** 13 | Free a DSA key 14 | @param key The key to free from memory 15 | */ 16 | void dsa_free(dsa_key *key) 17 | { 18 | LTC_ARGCHKVD(key != NULL); 19 | ltc_mp_cleanup_multi(&key->y, &key->x, &key->q, &key->g, &key->p, LTC_NULL); 20 | key->type = key->qord = 0; 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/pk/dsa/dsa_init.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | 6 | #ifdef LTC_MDSA 7 | 8 | /** 9 | Init DSA key 10 | @param key [out] the key to init 11 | @return CRYPT_OK if successful. 12 | */ 13 | int dsa_int_init(dsa_key *key) 14 | { 15 | LTC_ARGCHK(key != NULL); 16 | LTC_ARGCHK(ltc_mp.name != NULL); 17 | 18 | /* init key */ 19 | return ltc_mp_init_multi(&key->p, &key->g, &key->q, &key->x, &key->y, LTC_NULL); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /src/pk/dsa/dsa_make_key.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file dsa_make_key.c 7 | DSA implementation, generate a DSA key 8 | */ 9 | 10 | #ifdef LTC_MDSA 11 | 12 | /** 13 | Old-style creation of a DSA key 14 | @param prng An active PRNG state 15 | @param wprng The index of the PRNG desired 16 | @param group_size Size of the multiplicative group (octets) 17 | @param modulus_size Size of the modulus (octets) 18 | @param key [out] Where to store the created key 19 | @return CRYPT_OK if successful. 20 | */ 21 | int dsa_make_key(prng_state *prng, int wprng, int group_size, int modulus_size, dsa_key *key) 22 | { 23 | int err; 24 | 25 | if ((err = dsa_generate_pqg(prng, wprng, group_size, modulus_size, key)) != CRYPT_OK) { return err; } 26 | if ((err = dsa_generate_key(prng, wprng, key)) != CRYPT_OK) { return err; } 27 | 28 | return CRYPT_OK; 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/pk/ecc/ecc_ansi_x963_export.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | /** 7 | @file ecc_ansi_x963_export.c 8 | ECC Crypto, Tom St Denis 9 | */ 10 | 11 | #ifdef LTC_MECC 12 | 13 | /** ECC X9.63 (Sec. 4.3.6) uncompressed export 14 | @param key Key to export 15 | @param out [out] destination of export 16 | @param outlen [in/out] Length of destination and final output size 17 | Return CRYPT_OK on success 18 | */ 19 | int ecc_ansi_x963_export(const ecc_key *key, unsigned char *out, unsigned long *outlen) 20 | { 21 | return ecc_get_key(out, outlen, PK_PUBLIC, key); 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /src/pk/ecc/ecc_free.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | /** 7 | @file ecc_free.c 8 | ECC Crypto, Tom St Denis 9 | */ 10 | 11 | #ifdef LTC_MECC 12 | 13 | /** 14 | Free an ECC key from memory 15 | @param key The key you wish to free 16 | */ 17 | void ecc_free(ecc_key *key) 18 | { 19 | LTC_ARGCHKVD(key != NULL); 20 | 21 | ltc_mp_cleanup_multi(&key->dp.prime, &key->dp.order, 22 | &key->dp.A, &key->dp.B, 23 | &key->dp.base.x, &key->dp.base.y, &key->dp.base.z, 24 | &key->pubkey.x, &key->pubkey.y, &key->pubkey.z, 25 | &key->k, NULL); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/pk/ecc/ecc_get_oid_str.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_MECC 7 | 8 | /** Extract OID as a string from ECC key 9 | @param out [out] destination buffer 10 | @param outlen [in/out] Length of destination buffer and final output size (without terminating NUL byte) 11 | @param key The ECC key 12 | Return CRYPT_OK on success 13 | */ 14 | 15 | int ecc_get_oid_str(char *out, unsigned long *outlen, const ecc_key *key) 16 | { 17 | LTC_ARGCHK(key != NULL); 18 | 19 | return pk_oid_num_to_str(key->dp.oid, key->dp.oidlen, out, outlen); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /src/pk/ecc/ecc_get_size.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | /** 7 | @file ecc_get_size.c 8 | ECC Crypto, Tom St Denis 9 | */ 10 | 11 | #ifdef LTC_MECC 12 | 13 | /** 14 | Get the size of an ECC key 15 | @param key The key to get the size of 16 | @return The size (octets) of the key or INT_MAX on error 17 | */ 18 | int ecc_get_size(const ecc_key *key) 19 | { 20 | if (key == NULL) { 21 | return INT_MAX; 22 | } 23 | return key->dp.size; 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/pk/ecc/ecc_sizes.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | /** 7 | @file ecc_sizes.c 8 | ECC Crypto, Tom St Denis 9 | */ 10 | 11 | #ifdef LTC_MECC 12 | 13 | void ecc_sizes(int *low, int *high) 14 | { 15 | int i, size; 16 | void *prime; 17 | 18 | LTC_ARGCHKVD(low != NULL); 19 | LTC_ARGCHKVD(high != NULL); 20 | 21 | *low = INT_MAX; 22 | *high = 0; 23 | 24 | if (ltc_mp_init(&prime) == CRYPT_OK) { 25 | for (i = 0; ltc_ecc_curves[i].prime != NULL; i++) { 26 | if (ltc_mp_read_radix(prime, ltc_ecc_curves[i].prime, 16) == CRYPT_OK) { 27 | size = ltc_mp_unsigned_bin_size(prime); 28 | if (size < *low) *low = size; 29 | if (size > *high) *high = size; 30 | } 31 | } 32 | ltc_mp_clear(prime); 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /src/pk/ed25519/ed25519_export.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ed25519_export.c 7 | Export an Ed25519 key to a binary packet, Steffen Jaeckel 8 | */ 9 | 10 | #ifdef LTC_CURVE25519 11 | 12 | /** 13 | Export an Ed25519 key to a binary packet 14 | @param out [out] The destination for the key 15 | @param outlen [in/out] The max size and resulting size of the Ed25519 key 16 | @param type Which type of key (PK_PRIVATE, PK_PUBLIC|PK_STD or PK_PUBLIC) 17 | @param key The key you wish to export 18 | @return CRYPT_OK if successful 19 | */ 20 | int ed25519_export( unsigned char *out, unsigned long *outlen, 21 | int which, 22 | const curve25519_key *key) 23 | { 24 | LTC_ARGCHK(key != NULL); 25 | 26 | if (key->pka != LTC_PKA_ED25519) return CRYPT_PK_INVALID_TYPE; 27 | 28 | return ec25519_export(out, outlen, which, key); 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/pk/ed25519/ed25519_make_key.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file ed25519_make_key.c 7 | Create an Ed25519 key, Steffen Jaeckel 8 | */ 9 | 10 | #ifdef LTC_CURVE25519 11 | 12 | /** 13 | Create an Ed25519 key 14 | @param prng An active PRNG state 15 | @param wprng The index of the PRNG desired 16 | @param key [out] Destination of a newly created private key pair 17 | @return CRYPT_OK if successful 18 | */ 19 | int ed25519_make_key(prng_state *prng, int wprng, curve25519_key *key) 20 | { 21 | int err; 22 | 23 | LTC_ARGCHK(prng != NULL); 24 | LTC_ARGCHK(key != NULL); 25 | 26 | if ((err = tweetnacl_crypto_sign_keypair(prng, wprng, key->pub, key->priv)) != CRYPT_OK) { 27 | return err; 28 | } 29 | 30 | key->type = PK_PRIVATE; 31 | key->pka = LTC_PKA_ED25519; 32 | 33 | return err; 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /src/pk/pkcs1/pkcs_1_os2ip.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file pkcs_1_os2ip.c 7 | Octet to Integer OS2IP, Tom St Denis 8 | */ 9 | #ifdef LTC_PKCS_1 10 | 11 | /** 12 | Read a binary string into an mp_int 13 | @param n [out] The mp_int destination 14 | @param in The binary string to read 15 | @param inlen The length of the binary string 16 | @return CRYPT_OK if successful 17 | */ 18 | int pkcs_1_os2ip(void *n, unsigned char *in, unsigned long inlen) 19 | { 20 | return ltc_mp_read_unsigned_bin(n, in, inlen); 21 | } 22 | 23 | #endif /* LTC_PKCS_1 */ 24 | 25 | -------------------------------------------------------------------------------- /src/pk/rsa/rsa_get_size.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file rsa_get_size.c 7 | Retrieve the size of an RSA key, Steffen Jaeckel. 8 | */ 9 | 10 | #ifdef LTC_MRSA 11 | 12 | /** 13 | Retrieve the size in bytes of an RSA key. 14 | @param key The RSA key 15 | @return The size in bytes of the RSA key or INT_MAX on error. 16 | */ 17 | int rsa_get_size(const rsa_key *key) 18 | { 19 | int ret = INT_MAX; 20 | LTC_ARGCHK(key != NULL); 21 | 22 | if (key) 23 | { 24 | ret = ltc_mp_unsigned_bin_size(key->N); 25 | } /* if */ 26 | 27 | return ret; 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/pk/x25519/x25519_export.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include "tomcrypt_private.h" 4 | 5 | /** 6 | @file x25519_export.c 7 | Export a X25519 key to a binary packet, Steffen Jaeckel 8 | */ 9 | 10 | #ifdef LTC_CURVE25519 11 | 12 | /** 13 | Export a X25519 key to a binary packet 14 | @param out [out] The destination for the key 15 | @param outlen [in/out] The max size and resulting size of the X25519 key 16 | @param type Which type of key (PK_PRIVATE, PK_PUBLIC|PK_STD or PK_PUBLIC) 17 | @param key The key you wish to export 18 | @return CRYPT_OK if successful 19 | */ 20 | int x25519_export( unsigned char *out, unsigned long *outlen, 21 | int which, 22 | const curve25519_key *key) 23 | { 24 | LTC_ARGCHK(key != NULL); 25 | 26 | if (key->pka != LTC_PKA_X25519) return CRYPT_PK_INVALID_TYPE; 27 | 28 | return ec25519_export(out, outlen, which, key); 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/stream/chacha/chacha_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_CHACHA 7 | 8 | /** 9 | Terminate and clear ChaCha state 10 | @param st The ChaCha state 11 | @return CRYPT_OK on success 12 | */ 13 | int chacha_done(chacha_state *st) 14 | { 15 | LTC_ARGCHK(st != NULL); 16 | zeromem(st, sizeof(chacha_state)); 17 | return CRYPT_OK; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/stream/chacha/chacha_keystream.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /* The implementation is based on: 5 | * chacha-ref.c version 20080118 6 | * Public domain from D. J. Bernstein 7 | */ 8 | 9 | #include "tomcrypt_private.h" 10 | 11 | #ifdef LTC_CHACHA 12 | 13 | /** 14 | Generate a stream of random bytes via ChaCha 15 | @param st The ChaCha20 state 16 | @param out [out] The output buffer 17 | @param outlen The output length 18 | @return CRYPT_OK on success 19 | */ 20 | int chacha_keystream(chacha_state *st, unsigned char *out, unsigned long outlen) 21 | { 22 | if (outlen == 0) return CRYPT_OK; /* nothing to do */ 23 | LTC_ARGCHK(out != NULL); 24 | XMEMSET(out, 0, outlen); 25 | return chacha_crypt(st, out, outlen, out); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/stream/salsa20/salsa20_done.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #include "tomcrypt_private.h" 5 | 6 | #ifdef LTC_SALSA20 7 | 8 | /** 9 | Terminate and clear Salsa20 state 10 | @param st The Salsa20 state 11 | @return CRYPT_OK on success 12 | */ 13 | int salsa20_done(salsa20_state *st) 14 | { 15 | LTC_ARGCHK(st != NULL); 16 | zeromem(st, sizeof(salsa20_state)); 17 | return CRYPT_OK; 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/stream/salsa20/salsa20_keystream.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | /* The implementation is based on: 5 | * "Salsa20 specification", http://cr.yp.to/snuffle/spec.pdf 6 | * and salsa20-ref.c version 20051118 7 | * Public domain from D. J. Bernstein 8 | */ 9 | 10 | #include "tomcrypt_private.h" 11 | 12 | #ifdef LTC_SALSA20 13 | 14 | /** 15 | Generate a stream of random bytes via Salsa20 16 | @param st The Salsa20 state 17 | @param out [out] The output buffer 18 | @param outlen The output length 19 | @return CRYPT_OK on success 20 | */ 21 | int salsa20_keystream(salsa20_state *st, unsigned char *out, unsigned long outlen) 22 | { 23 | if (outlen == 0) return CRYPT_OK; /* nothing to do */ 24 | LTC_ARGCHK(out != NULL); 25 | XMEMSET(out, 0, outlen); 26 | return salsa20_crypt(st, out, outlen, out); 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /tests/asn1/0x00.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/0x00.crt -------------------------------------------------------------------------------- /tests/asn1/0x80.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/0x80.crt -------------------------------------------------------------------------------- /tests/asn1/0xff.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/0xff.crt -------------------------------------------------------------------------------- /tests/asn1/illegal_padding1.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/illegal_padding1.crt -------------------------------------------------------------------------------- /tests/asn1/illegal_padding2.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/illegal_padding2.crt -------------------------------------------------------------------------------- /tests/asn1/illegal_padding3.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/illegal_padding3.crt -------------------------------------------------------------------------------- /tests/asn1/oid_overflow_test.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/oid_overflow_test.der -------------------------------------------------------------------------------- /tests/asn1/oid_size_test.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/oid_size_test.der -------------------------------------------------------------------------------- /tests/asn1/private.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/private.der -------------------------------------------------------------------------------- /tests/asn1/root-ca.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/root-ca.der -------------------------------------------------------------------------------- /tests/asn1/type0x08.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/asn1/type0x08.crt -------------------------------------------------------------------------------- /tests/misc_test.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | #include 4 | 5 | int misc_test(void) 6 | { 7 | #ifdef LTC_BCRYPT 8 | DO(bcrypt_test()); 9 | #endif 10 | #ifdef LTC_HKDF 11 | DO(hkdf_test()); 12 | #endif 13 | #ifdef LTC_PKCS_5 14 | DO(pkcs_5_test()); 15 | #endif 16 | #ifdef LTC_PADDING 17 | DO(padding_test()); 18 | #endif 19 | #ifdef LTC_BASE64 20 | DO(base64_test()); 21 | #endif 22 | #ifdef LTC_BASE32 23 | DO(base32_test()); 24 | #endif 25 | #ifdef LTC_BASE16 26 | DO(base16_test()); 27 | #endif 28 | #ifdef LTC_ADLER32 29 | DO(adler32_test()); 30 | #endif 31 | #ifdef LTC_CRC32 32 | DO(crc32_test()); 33 | #endif 34 | #ifdef LTC_SSH 35 | ssh_test(); 36 | #endif 37 | no_null_termination_check_test(); 38 | return 0; 39 | } 40 | -------------------------------------------------------------------------------- /tests/no_null_termination_check_test.c: -------------------------------------------------------------------------------- 1 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis */ 2 | /* SPDX-License-Identifier: Unlicense */ 3 | 4 | #define LTC_NO_NULL_TERMINATION_CHECK 5 | #include "tomcrypt.h" 6 | 7 | #define NNTCT_NULL ((void *)0) 8 | 9 | int no_null_termination_check_test(void) 10 | { 11 | return crypt_fsa(NNTCT_NULL, NNTCT_NULL, NNTCT_NULL, NNTCT_NULL, NNTCT_NULL, NNTCT_NULL, 0); 12 | } 13 | -------------------------------------------------------------------------------- /tests/pem/non-tfm/ssh_rsa_4096_pem.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIICCgKCAgEAo6FKkV/bSemFY/hO2NA/aMtkglLaC5jaqLzDnP21gfhYPBoBEDaf 3 | fV7x+qfv1wyGODJvdUPaNa8nVpwJxyrP/SzskqTlDW235Q7BbLTfGa6qsrj4iKGa 4 | msEL2HsZNP9GcjXJAPX1gCmQyaJtTeQ7rQSueQ4KuNMh5KQAep5anVi2PCGm9FeC 5 | yk7TQRsna3T0fANdCOeJA5BccfNjTmTSfYau0GGCQ7C+S3v3wfj6iJLD+aqNpX2j 6 | yXvcbce5uPhSCUUEDi6xXn/ytLTtWb9FOXVTR5llockzeLZ8KBF+KWe2JBx3pnAR 7 | Yl+Mbe9P86bxuXLiDzMCSAOT+9sOwOYnykqEy65EBsu8lv3s8sa5uNjYOYzUG/o7 8 | IrkIXJ1PyCoqe8TtSts8Uj4XMA0USDxhsJAnzK6+TxuBFZ/TyQnlv8nUKTpuMrCW 9 | svAGcckKIT9Y0WrLrPqlBqLzhw+q44g64NJQ6SWOwn+hLT1P2dBhcn+VmOPedpUY 10 | msCFy4tFTgHsRv7P5/niIsE4hTrZ5lEY0Yyyd05ZFcvwvSMOkwWibBfQ1vzDeAXm 11 | DEgFaHVY6lici0HO7pW8poLjLjZ5IQ40NV0dElzcPX80/ZRPjQvhDsMcrDrvsvRK 12 | 1epQPJhMcLZrv2vcx1J8rp11M/GVRYeplIT9E3O1/xf0Nl008c8wuI8CAwEAAQ== 13 | -----END RSA PUBLIC KEY----- 14 | -------------------------------------------------------------------------------- /tests/pem/non-tfm/ssh_rsa_4096_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo6FKkV/bSemFY/hO2NA/ 3 | aMtkglLaC5jaqLzDnP21gfhYPBoBEDaffV7x+qfv1wyGODJvdUPaNa8nVpwJxyrP 4 | /SzskqTlDW235Q7BbLTfGa6qsrj4iKGamsEL2HsZNP9GcjXJAPX1gCmQyaJtTeQ7 5 | rQSueQ4KuNMh5KQAep5anVi2PCGm9FeCyk7TQRsna3T0fANdCOeJA5BccfNjTmTS 6 | fYau0GGCQ7C+S3v3wfj6iJLD+aqNpX2jyXvcbce5uPhSCUUEDi6xXn/ytLTtWb9F 7 | OXVTR5llockzeLZ8KBF+KWe2JBx3pnARYl+Mbe9P86bxuXLiDzMCSAOT+9sOwOYn 8 | ykqEy65EBsu8lv3s8sa5uNjYOYzUG/o7IrkIXJ1PyCoqe8TtSts8Uj4XMA0USDxh 9 | sJAnzK6+TxuBFZ/TyQnlv8nUKTpuMrCWsvAGcckKIT9Y0WrLrPqlBqLzhw+q44g6 10 | 4NJQ6SWOwn+hLT1P2dBhcn+VmOPedpUYmsCFy4tFTgHsRv7P5/niIsE4hTrZ5lEY 11 | 0Yyyd05ZFcvwvSMOkwWibBfQ1vzDeAXmDEgFaHVY6lici0HO7pW8poLjLjZ5IQ40 12 | NV0dElzcPX80/ZRPjQvhDsMcrDrvsvRK1epQPJhMcLZrv2vcx1J8rp11M/GVRYep 13 | lIT9E3O1/xf0Nl008c8wuI8CAwEAAQ== 14 | -----END PUBLIC KEY----- 15 | -------------------------------------------------------------------------------- /tests/pem/non-tfm/ssh_rsa_4096_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "4096-bit RSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAACAQCjoUqRX9tJ6YVj+E7Y0D9oy2SCUtoLmNqovMOc/b 4 | WB+Fg8GgEQNp99XvH6p+/XDIY4Mm91Q9o1rydWnAnHKs/9LOySpOUNbbflDsFstN8Zrqqy 5 | uPiIoZqawQvYexk0/0ZyNckA9fWAKZDJom1N5DutBK55Dgq40yHkpAB6nlqdWLY8Iab0V4 6 | LKTtNBGydrdPR8A10I54kDkFxx82NOZNJ9hq7QYYJDsL5Le/fB+PqIksP5qo2lfaPJe9xt 7 | x7m4+FIJRQQOLrFef/K0tO1Zv0U5dVNHmWWhyTN4tnwoEX4pZ7YkHHemcBFiX4xt70/zpv 8 | G5cuIPMwJIA5P72w7A5ifKSoTLrkQGy7yW/ezyxrm42Ng5jNQb+jsiuQhcnU/IKip7xO1K 9 | 2zxSPhcwDRRIPGGwkCfMrr5PG4EVn9PJCeW/ydQpOm4ysJay8AZxyQohP1jRasus+qUGov 10 | OHD6rjiDrg0lDpJY7Cf6EtPU/Z0GFyf5WY4952lRiawIXLi0VOAexG/s/n+eIiwTiFOtnm 11 | URjRjLJ3TlkVy/C9Iw6TBaJsF9DW/MN4BeYMSAVodVjqWJyLQc7ulbymguMuNnkhDjQ1XR 12 | 0SXNw9fzT9lE+NC+EOwxysOu+y9ErV6lA8mExwtmu/a9zHUnyunXUz8ZVFh6mUhP0Tc7X/ 13 | F/Q2XTTxzzC4jw== 14 | ---- END SSH2 PUBLIC KEY ---- 15 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dh-encrypted.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBjTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQI+JYkd4NoIU4CAggA 3 | MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBCNnY9OuYIvCurJu9sEYkz6BIIB 4 | MGzX4GwCvBQV/dOiy0PvbY443xkKZHPTtNbirE+9NLVVrTI7EUQv5UO5Xl0wVHje 5 | R4hADBzpIKAd0zjsGYfMQ6rEabIdO4R+UBKoibTgyOzt7Y5Ge/4+pYy14bMFeZ44 6 | 6OaP6jXRsn1/DIi0mxcBo9eDfZX3FzgANWiDvFA2VWC+qEbsm4JBB8uDJ+aWtjyR 7 | mct/FXzGHwi+IGuPBzo9dIywisW4whmBwh1XpFBMxjmMLqWInuUailAkIARJ0w04 8 | GdGZ6HYlKmsTvAKv4WRK+EnwZ8JmBiVl6ulcX8k1zbrT2ElyBUCFneMktFKULE1l 9 | myVMuAQCuuGfWdquegqLOyvgK6S9p3wfVyzkney8qBN07WZHE+UUW8AQrZS6J5nS 10 | wSAjBu3wmDmDo7AWEQZFMK4= 11 | -----END ENCRYPTED PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dh.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIBIQIBADCBlQYJKoZIhvcNAQMBMIGHAoGBANL7HwrNQcDtDCkqzYxzMCFLFCdJ 3 | qkp7v5RtqHzNM+5VQZp/xo2BzWF5PLJQ9ssE5QYtl7zQGM8eK1Z4/ACKwm2GJR4d 4 | 5kkr3SCbK2zoedDj/LJy1xBWjtRa81W6LtBAnEH7w5hgwJiPPFbc5X2i2uv6bcRk 5 | wk7SBstON/Nn+7KLAgECBIGDAoGAceccNmflU1P1oAb6pyQoWKokZXdkwSepQo65 6 | Fub3B2YW9/qI7DHiSskfQptl4ifeQRFGwq11kqsNUI+mcdGODs1r5MUZ99g1Bh3u 7 | X3XOfTgZoyDY5uHwBLl6HndN/QcJ+nq9y3URt4ltklQQ3WFPzHTdJNg9qBeLqNVe 8 | GaFVEJo= 9 | -----END PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dsa-encrypted.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-256-CBC,B2C493F67D2CD758E063D3F1CDB32CF1 4 | 5 | RA0nxX4tNhRbTvuHOelQ7XftpZuAA0tb8htZykyIjlNnGVunWQi98pGSTMhGvbxE 6 | qAD3HJMiVKYh8zcIiQs0stGd0ZwbTSX+U17eWYQuGGcDj0I4G9MW2A+jbi7qhaQV 7 | Nv8J6KWxvdTPXxGZojePtwUF+b1YJ4aDBrdCtS4aRTmFy/mL8J5UXmP7agg+x1o3 8 | 3BSXedVqhB/JTWiojk4XRnf+PiPRsQ9gZkbeI2d5IN+I3QEO06UQSJASxH0o58Oi 9 | NrTTS7BZkrRCpC7ljFcMS/lRV0sSZ8kfY77/vuK/R87F7snIvSda6SgvWwQxqV/A 10 | rd+Y2xlu7+2taIsCYm8fgHg+PpXUOe/PwfILp7JqP6PwTBAgXIr5i4xUhes1RNXI 11 | zyytK5b2i5WoY7rb20duzm3lwLAf51hBJ87/T9AWar+j/+8VNw0OAv64Q+1G6SZ8 12 | B6fv3hllr9QVhkGxQgheNOh2yU/ztNGdnstfXFI896r8RC0SoDHdOW8aDu+tjqDZ 13 | oVvGoeZ4ruWHUBV30Qiug5/1je48Pf/BRMHo74I0uK+IlTqU9INiYYO6fCUWU6yP 14 | kulpB6DiO+77d1yWNSyP4g== 15 | -----END DSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dsa-encrypted.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBrTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIhl5UM+zVfdsCAggA 3 | MAwGCCqGSIb3DQILBQAwHQYJYIZIAWUDBAEqBBCKg6jOje2Z2PFCPX+F4SLmBIIB 4 | UDhr7k75REqmtbMaTF/cHI/CYCVmIv5TzQPz9qWF1nrKrZ705TIUTtEFiMZ9fArM 5 | nRGUHURbTaCpD+wFVBuYDuoNLcgnxtjKWW7HIykGPY6imkJ3wYGUt7mVGd9uikly 6 | 3sLtG1fVfDH79ZqKoaFTxVL89H5HwluOSaYYghenLXxcieTJ23zgsXFYlw+mbNpd 7 | NtYUje4rmgtYJoB28b/7NNhBVEXq0VvyuWW3paRRzkIsZo+6dAPLO45KPHSBpQCa 8 | iRXB4Sikq0og9RJyrw2Nxcwipzs+s61gfEHxjBnn1ZbJSQJ3kmzA4r3QtypTbKDR 9 | ay9VEgvQY3yu3I9yJmTqLKMDAad3zzvotULylUmAIhY1Ejek+Rt9BTseKMOz8nIA 10 | sQgxXr02g2kMAba8HaDU1kaSNV8Tj5Bwrl2DeiKfZfxQcVo2v5TBvYwjHYqljloW 11 | sA== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dsa-pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBtjCCASsGByqGSM44BAEwggEeAoGBAMUKN1Fcq9YY1aJwvUpva0r54TmVDyuZ 3 | OH2aZNZMtZZ63O2sqKzGG2Va3tsAYSUaGCzuoQeQYl5NEjGQxwMh+gnnsXPXjq/b 4 | /b+z763RoSoDbecGkkqFKv96AWZTH+rGZ0GEWsBs7WL5wmJiBaT6SKBm7DXJqBH+ 5 | uYGr7r4xtr/PAhUAqlvX9OUGJBPliDXKAMemNXFhlMUCgYA7kuT/WSkVCwiZWnvy 6 | rRRAVW+gR/+QmbNEs9T8RRUFrmciQ5y6NxCliUc37Mz1rq2otHo1y52TXO3msH6W 7 | lMSmDH3WcIoJT4FKDsIT++sWv+qk9Fb/cjAF3opEP77GhSZV1i0dHtsV2qRFgzwX 8 | l5gLjYfzSQ2QvamrZ26HaHIj3AOBhAACgYBTFrD7v1mKXlWVwU+sQ7gIU+bPDZIj 9 | +rGEWVI5v8vyLTg63ZNSBUl+KxLEYXPjb1S9luWnqqlaWKS3Z9LAvcgesToST5jA 10 | Be85XWq6tws72LeV3XluotKEc0cDiLRk2bm4T/HJNLv5c2b1fC4R/sMx5gg4WWeB 11 | 621BJ9cNdK+gNQ== 12 | -----END PUBLIC KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dsa.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQDFCjdRXKvWGNWicL1Kb2tK+eE5lQ8rmTh9mmTWTLWWetztrKis 3 | xhtlWt7bAGElGhgs7qEHkGJeTRIxkMcDIfoJ57Fz146v2/2/s++t0aEqA23nBpJK 4 | hSr/egFmUx/qxmdBhFrAbO1i+cJiYgWk+kigZuw1yagR/rmBq+6+Mba/zwIVAKpb 5 | 1/TlBiQT5Yg1ygDHpjVxYZTFAoGAO5Lk/1kpFQsImVp78q0UQFVvoEf/kJmzRLPU 6 | /EUVBa5nIkOcujcQpYlHN+zM9a6tqLR6Ncudk1zt5rB+lpTEpgx91nCKCU+BSg7C 7 | E/vrFr/qpPRW/3IwBd6KRD++xoUmVdYtHR7bFdqkRYM8F5eYC42H80kNkL2pq2du 8 | h2hyI9wCgYBTFrD7v1mKXlWVwU+sQ7gIU+bPDZIj+rGEWVI5v8vyLTg63ZNSBUl+ 9 | KxLEYXPjb1S9luWnqqlaWKS3Z9LAvcgesToST5jABe85XWq6tws72LeV3XluotKE 10 | c0cDiLRk2bm4T/HJNLv5c2b1fC4R/sMx5gg4WWeB621BJ9cNdK+gNQIVAJk25eTp 11 | +yi+kfUGX+jJNbP12B/F 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/dsa.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAMUKN1Fcq9YY1aJwvUpva0r54TmV 3 | DyuZOH2aZNZMtZZ63O2sqKzGG2Va3tsAYSUaGCzuoQeQYl5NEjGQxwMh+gnnsXPX 4 | jq/b/b+z763RoSoDbecGkkqFKv96AWZTH+rGZ0GEWsBs7WL5wmJiBaT6SKBm7DXJ 5 | qBH+uYGr7r4xtr/PAhUAqlvX9OUGJBPliDXKAMemNXFhlMUCgYA7kuT/WSkVCwiZ 6 | WnvyrRRAVW+gR/+QmbNEs9T8RRUFrmciQ5y6NxCliUc37Mz1rq2otHo1y52TXO3m 7 | sH6WlMSmDH3WcIoJT4FKDsIT++sWv+qk9Fb/cjAF3opEP77GhSZV1i0dHtsV2qRF 8 | gzwXl5gLjYfzSQ2QvamrZ26HaHIj3AQXAhUAmTbl5On7KL6R9QZf6Mk1s/XYH8U= 9 | -----END PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-encrypted.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-256-CBC,AB9C64372F927A0D0C27AFF8808FA408 4 | 5 | 7vsYSX4TxsNKVJ9rdDQ0KJV5fIjv8cmtm0hCfY3dXPaoBy7dnQmtoS1cB2L7/5lg 6 | Qr/COJFKg0PY7y+aB+wK96rFZUvmHSwxjOUbz1/+e4PHbDaSJJCEJpqzS5Clo+nO 7 | q/FKjfXmQ9yANLO0o4QcSRwSjxIuIK5KWG2EXWm9gCsR1tPW9UmSCSFOn02puF6e 8 | HJZnrq7SHvTvuZ3Tbzzyhp7Z7LofSLPaHaCdWrGlY/AlsnUdOywHD3ATCvvjTVqJ 9 | GelaUv12BEJK+B945LmgMkj+BRhKcLXmK5Q2am3ZdvwyZW7E9JcDLPjX08VEfxY3 10 | aOBv1mysIroniX3UEZmNR/gUnQTSGa9m+ZsQvZYoZsqK0dn9THf70fW6scmBvfR/ 11 | wRnS1fe3WYsjkXAvAq/a/5Ev6go6G0xgKHI+TJMeFxC2v1r2aTlDKw8AcGwUzsll 12 | HIbyabEaVwQviNuH6NHNpw== 13 | -----END EC PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-encrypted.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBzTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIDvEXvzqHE1ICAggA 3 | MAwGCCqGSIb3DQILBQAwHQYJYIZIAWUDBAEqBBCj/pJclOyl8T9QLQ5hST9UBIIB 4 | cAhS99K8b/rp2TaTvSSuwTS1qFcJ0O33zSSIprhVriNdArgQC0sX3XZKe5tyzWSD 5 | +ZJZXJhcnQKRauDGhiF7dJWSgM0MbL90ZgwFyQvwzl1kxfKheaS8Hv/xGDvx+eAU 6 | XwOAddifqcSediLUwtf5SRUmPy12gxcMFN0gY7fvjA0Wb/fDn6UuG0iu+y/msiu/ 7 | S+dW+PbOZBDiQb1u/U+wKTdvQxowlu6zkapxRFRWC1i2S7vBtdK7aLTERUJwdEf/ 8 | RdAMLXQdr5zhKHTjx7nQiPCksbNrpdTQHw/nsrNtE0pPvde3MCNIfvaDgHXyCV8F 9 | Fo/fn97YhaKH8zCfvWhduuY2Bj3M1jBLRxGQZ2cs4hb6Ua3R2GiTD0h5zp9uNXRH 10 | SrECToksdY5jNz1qMV6TA7gAOZ477sZCkJ0WU68B0jUVJKlEYCPzyTVcoy3a1hiF 11 | Lx2H5WbsXSsZGaX+wyUUicYm8J+YnGtVd+FgS5e8Lh4w 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbe_md5_des.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBiTAbBgkqhkiG9w0BBQMwDgQIzN684k11RQMCAggABIIBaL9W5ZvbQUeDz4Zb 3 | jISViw6ehWft1lmvZpqzA8Fik3zFIhxSZ9qr03mRdh9fU6VOfLX15NyMdFxwcYnR 4 | c4a/CWz/tu7XTlY4sA0lvI0tJLrTOQNcZdNUlUTbnrQ1N1VaAVWbmP4m+r+NUivz 5 | 7ml0q3wcClRZmADg9NcTx1KnZQrbboGjIfG9mSNcpuN9OYa8muat9ytCRlBj43Fa 6 | YKe6xYgKwWUzBdjArIufsdeCwDnfj5qFJ/7DUOgFaGS1mzCP/zJaZHWRd5ArchP/ 7 | NVYwIonzPgmH7UP/VHJaFiKc7qmaHP7WHuGWMci8pMH1fnpCFDshQfwBHmCwCdar 8 | lUy3Kwu4DUarhyde3jbDFyMwM/ffu9VJor+KZXokTYNjXPzuuM5ZBx7ZKYnFTuMJ 9 | NpaH+chSxK3Peif03mWQMJZuiBNh3tAGfkFb+gMAdhxzgWpDhhtE1c8Zbnwyc+Sk 10 | MMNju1uX2plDFluAxQ== 11 | -----END ENCRYPTED PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbe_md5_rc2_64.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBiTAbBgkqhkiG9w0BBQYwDgQIUliSQEiAS8wCAggABIIBaMP+c+hNliY66qDg 3 | 33YhJJfuzxVkmW95vpDNw5UqF4jWBW+3xoJHpPJk2zON5nkENQkFU2B/7HY23tLT 4 | lPuWoA5GDotPEMadDMLvxzuynRL9ywZjLVouKNngcLSgxZC5+LS5BqwBlfvcCqk6 5 | 3d0XXB616f4CocTA9s6FHM24vgVEJujjj7K7V4otW7kYfLUTx8ZQ+YUNCCXI/2jB 6 | c0UzHlCWFQ4oZuqINzc/W04HIOerjfGhK1SN/cUboN/PJ090wFzqEPE2MWf8/2ug 7 | N5V2vMkrwwN5uIUumFGY7+vXWOdbs7TAplZQDGlS6I5hnJXqJMXysnweAmw/TOKl 8 | UM25+LQSf6V5FeRh1q7cUzRtzahXX/YKICBYHgOChVj8B5QI31RNFRUpOYOFpjeo 9 | fCMvNI6Qp3U9sW462xq4hvemBUUSOuM5P8M+mZxpAXxB56W5bfVTD8nWTzdMH38o 10 | sfWwu/7anoMxI6YN8w== 11 | -----END ENCRYPTED PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbe_sha1_des.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBiTAbBgkqhkiG9w0BBQowDgQIT35B+lfH22gCAggABIIBaNDnpB3HZ1IxSmgD 3 | 9icYYXhKwHT9lpyAzlX8h43ccwROt/WR4N9+Q0Xcfdktv/5pVKkzkGsXD1u0x6OM 4 | Oevtj/O7DbfzpW3pOUAB5aaA21QOksVAvjtjuwZ8eRGa4h6aXaMUQYOo5AQAHH8/ 5 | Ev0MqqJucgEzONByZTp9B6FwWwbioEhap9h8qX6oQ09SXQnKCNi3KxD2IDAwMDMm 6 | Ss+wMmq6xiGR2UUHg/+tiMHCmLTcCkvhTg6l7rsH6LEO4W3G0teholWSrke73yeO 7 | NhU3O0AZjUCMXqli1WxeJByermRVAIY2lnMlG6+8sDQMEVePutd7x9Y7D223VwZR 8 | ou59pwdJt+OHNKMCMiPIFNht5iir3zpJ+yP5wP5CDigb+RS5e03LGmT9An+8j/Kb 9 | PZURQSa0aqQasn2QTAF7zRlLTOPpBlSPgmWuZolZbHqkDbX0xPJYO9BlfY5nX8hS 10 | /18lPQ0wUIBYG19yuQ== 11 | -----END ENCRYPTED PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbe_sha1_rc2_64.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBiTAbBgkqhkiG9w0BBQswDgQIh4GKHk4SmIcCAggABIIBaFWSw80nmDwiKdqt 3 | u/t4WtFeyVbdtDZqX9pK1Um5lWVpdYNHBZFGtc+mQA4QTUGg7jCbOHC4YiO5FQtw 4 | FVay9nMGd/MAfITULLUCNr7DERM9OgP3Iy8fvnloFV7DLafDeFGlreTrGVaEzb6+ 5 | vHkys/Q107k3UpNNZl7LUSZ+u1olENDIkm/VhInmDS8fWgOt8KfKdmQB9hpnW3Q0 6 | WOiUBC/SEau/o0tLc9jqwXbkUxG4tYfFlQgA6ll1N7OPmX0XOleGsVJkeyakkkZm 7 | 78QQDDsEeDuS3Jk+L6VUbJimxUOFNzy27YhFYKFwvEoxVmAsKgBP+ycOQqIOM0Bu 8 | NwtfNQm4gIySqfkMGnGIrOFpXT9nk2ouIoTnT1prGBHP7IosgJATlTytChhfXCj+ 9 | pm119VBAHho+Rx0K7WPfWh6F7gBf8v+dtlPgYdtg9KgxsESkHqLQNAOxTgyw6Wv/ 10 | f2Ma7GbDLKr98YTwEw== 11 | -----END ENCRYPTED PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_des_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBuTBLBgkqhkiG9w0BBQ0wPjApBgkqhkiG9w0BBQwwHAQISIYM8rI/jPMCAggA 3 | MAwGCCqGSIb3DQIJBQAwEQYFKw4DAgcECDtoK11BLZ8yBIIBaBWpKqU/zd8dK45s 4 | iC3X+IdPeXmg/tlJZyKJdlLgyZMzq2hwmqpNW6OqcVUf6vRJXrmUvLXdzbc8LmHi 5 | hBUwtXAenYJHOt/dY2bQmHsh3UE6Rjo98CNUQkPY254kscMDCYIH2kYk5m7Axx9s 6 | r/GSteJ73i1snCMlguBnAw4Hfn63aWJ+quu91lTupoZ5GzP2JmByNaobOzPbLj+o 7 | RkQEdqjOCnRhnVKh6b7jJlJZjKC+pSrMovuVfrjfGk74MTnWDrYBBbM2whY2/1gV 8 | JHjfI+2UUg2AJXqrZL6aNXgRAypWqEWm74quPzw1oED1xeBv3n3qTT8ibYHNXXcl 9 | GGe8nduOm2sv+FZNx6LaKhutbSiCGW+TT14Rf7iYjDxDz2Zo+ngh9USb04VFhvN2 10 | rcdv3x2tetKqbQ6THhM9LfyArYpDF4tC2GRNCdmMcQClIMQIEwvabg14XORdYWBl 11 | ETQPMiGjep69gcsCLg== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_des_ede3_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBvDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIuVWjGRuwrEYCAggA 3 | MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECPNKy7KzuZplBIIBaMCytdZYGgmG 4 | HnRqZZefHmq6QoFtPFy0UcUx/k4QyPX98gftQZsOMQUjK3SYb0E1stwvJyuOxMk2 5 | QAAkSvQgdB4/O9Bn+YcAr2yN1kQ3ZGs4GhKeFdCVzha6DFXPnfumxB7nqH1A7hvq 6 | 6e/DkOPnfcwfq7yy8ydmfubZ5ycdQmCn/s6UuxmipSG3viAWXOWxxj0ujOuwcti0 7 | UtVNDYfiat77khdEmkbTjWek/ClaQhbs8c0ihQ3VTjjzNumCjK95SDWzNfyXr1Cz 8 | BOz940PYzy/CWJ9kcPHtAzF9ZKBCE0iDx6dlAqUpMr8+cUDGHtoxeMG0SEhuneEx 9 | +2PyO8eHACl+UZ7gvMRvU0HikmIXLIDuE4W/5bFwLlwe+W0vWx+/RrxSUhotY2f3 10 | tIUMchZH0V9e2bjcZEpoOgAbJFwpv4BhSzPFGUtCvaW02GprDFbkvpdeVEAOeJCo 11 | AERV4FOHuiQN5xICywgs8w== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_rc2_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBxDBWBgkqhkiG9w0BBQ0wSTAsBgkqhkiG9w0BBQwwHwQID289hiP8sNACAggA 3 | AgEQMAwGCCqGSIb3DQIJBQAwGQYIKoZIhvcNAwIwDQIBOgQIS6rg/BDDyx0EggFo 4 | +EP7A0v/HXDb7sIKUaSRo31UgIvfB3ReCYvjl99OhGohyPKU5d0SG1P+a5qACAtM 5 | 9NOPIB8UdjjrKxz8i3hjpWEOCMQAdaXhkIiYaDbPvAVQwlfEA8LUlUoJce1JbyUy 6 | O/BJx2FvSuQYMpzYdjj+PXifngb3qKAC7W+72D3d/npwCFMAfo/Bp9rCk/0MWakp 7 | KpUspNT9b69YI0yGKxRpJNaX5B4FuaLe1O31Tveq0ImyiWEcSC6bsFfi8xWXmNMR 8 | pw72Pv6FEgSc1aaSiViQVvkDaes1M4Po4K2geld07bnXn9e1JzInYquBnhFUe9Rs 9 | HyGTqJp0S1Yyqdt46e13NIfM8knvapl9/0fZ/QJ9UIPbINpFRGeFBJY5pR1xEvNK 10 | EST6HZIw84U0iMfGl2e9oyC4r+1hZfkELHSK3d/s/SRiRhw1yTOGU1dFMwUz8yif 11 | CCNNR0cFDfSKHYQOu78bUZ+Nmt7ydzn5 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_sha224_des_ede3_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBvDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIF1hZIYPOrdkCAggA 3 | MAwGCCqGSIb3DQIIBQAwFAYIKoZIhvcNAwcECO1sfQDcxpkyBIIBaHKe707yztqL 4 | ZqMI2BkJdLhNUeysatW7IP9WLN4+kM9IGx8d3jVthFK28kmQv2yHjFqbuTYnJJz+ 5 | 7sskqfbv+xO+LmSlppeD2XaolcoCCu0ic/JmE++CORaR/cswkjZD6dDaB3saZO/T 6 | gKleto54fMnMNUAF43aIKZGr1xOv6utMqWXULCIMkk1RtqRv5l/bTavFnnoHfuUW 7 | +eNH+z4yopTuJYMSvYcxcTFaTx+SpoR+Cyp9HJAGmNk4LS3abxIu/QtB3Is1QZpS 8 | tBmizAv+5pmIshWIAsIXbgK3a6VboxzJI1Twt74pPYEv+OJbOtvmDNrM8Anqc6pk 9 | gc+0W9/CZ+gL9Zo0MZFnehnuK2EwpPmzHrRoyCM762wcImyz+5EVVpJrixUGpq8F 10 | wjtw1xOMhyQ3K5j/kQWdLgoR47s9fbkkgSxIggY9JrWA8VY6uqm/AWJKrITFM6hx 11 | 75lOxEX6Cw/B4y0V+xZ1rw== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_sha256_des_ede3_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBvDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIqmXjSIb59wUCAggA 3 | MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECAhqA2qQFwcrBIIBaACt+al/ytm9 4 | NKroYGO1rExbTYC87yT9N4Q3im7IHTrUXrWxm12t8PHJCpr+2OIrCaTC6bcAMcRI 5 | cJEgsp6MISxZQXkFFt8zauC6cegsBnIngi3lPzpo+66v+jq3F26XXE1E6jWexcev 6 | osngyT8Ng1lddwSeUZ6qmIoajOdliaZKt9zEnNre9uGi1tqjXyAjtMzRNPOdj8qK 7 | 6LS8U8bZlhNk/5LQiYdq/s93oA4XvIZaiVmNDnirfqYLWXhpPuk6pinZZIf45bNj 8 | WpHR6nlS6zrfMbu7OsOVMk1dYMS0wyWf4V7c33EUGq3V+UpCwf7lHiXpKHf3VUql 9 | ATJLCH0rVpVtSLQKzu+AtQ5hXWM5L95eDgJH4cHMvUZyH5fXBD0XVwGwF6jl5Bgu 10 | qpiQrk0N4SINtOTUz6cpkCg2i1rT/y1OFtfzlcaU2O73MlEcRSo9X1FFQuKSY978 11 | XJWKmss54p2ZDZXjI9hKIQ== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_sha384_des_ede3_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBvDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIsCQVVRoBSP0CAggA 3 | MAwGCCqGSIb3DQIKBQAwFAYIKoZIhvcNAwcECO8+o1eRBcmTBIIBaDM+16hmyXFa 4 | Nh02rGpKlggDDWc/bcpLnmi0vEyHIG5wpwS8RYiKY7AlJv/soNuGh/62kFJzvJyl 5 | gwhAdqE4Q8u1ECKvIz9VUJkY7etvSP3Pu2lNeE2wVPk6k36RjSib7cwefrawJrTQ 6 | 50J9gdxw2vl/vep7nZRPVerqod9Us2x1/M0DMYtcm9iWgNGXKnF1bXE/TzDaWmUG 7 | 4Isx49V4CaUSNbdP/Y9wfj1LARi/qZ8sIMQmi7rWFZJOutJ2HBJcvkiAOUWtxGrV 8 | PTPkWsCk8MQ6gzi0RTcotqC3Z8cJm7TQ0kVpytNAGNavuK+VklApSEPwK1RiLL5a 9 | 04KuIyO0qf/Yh+e7i1miX9aNcA8U7XrgrgUguccFm+25JPhwvKerEvgbthQtd4DL 10 | 09z8ClPcOqarLRzbpswcVppBmfI27TbQC5HS+UjPGa4CSTgOjwFmoFoV8P06E7/J 11 | DB2MLT7THaLfYdv+dewaLA== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pkcs8/long_pri_pkcs8_pbkdf2_sha512_des_ede3_cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBvDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIuyUx21YswXgCAggA 3 | MAwGCCqGSIb3DQILBQAwFAYIKoZIhvcNAwcECHopIpIBxzQyBIIBaKCdLeYJSoYs 4 | 0tuuykMqh5YwG3yzsI5RoDHZVkuissmreb6AgFkwoH1PpvvbwY4NkAEZ3CADeeAr 5 | R+CPBI2GZP83/VoJKgk4WZ3518FZPUks4obIE5/AVNjYTJXhfwPCXdf21h6DoAUr 6 | OeSi4U72rsKTmNM/ARa44JJjkgC+77+Ith4+ayeq2h+v4ylRx533AkL8kbzBDVey 7 | pyLENNSnwwZHUpAhV0ZlurXLHc0eNHyn6LzIXig1RawC0uuYKb+CxZrkbtX9R/HO 8 | mTUf7EZrVvJb/G5H9Buhs8gi8Ul/C2LFnCdy2VbBkubnbK70mIyQ4HLY04NGpw+b 9 | 6TXHODwrSEwCHNdIyVEuIFW4TkQtWmKAqT2/wupJ8PWo83/mxlTb6NQlhSFFY/Tu 10 | FiPRHi2q4rI3+283NJ/W624esG44u3+OBqHNZe1F7IXbEzM+iGo4osI7CXvvQrfo 11 | PJAUlYc9TtaTQAqdJcVjdA== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc-pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBMzCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA//////////////// 3 | /////////////////////v///C8wRAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4 | AAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBEEEeb5m 5 | fvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hIOtp3JqPEZV2k+/wOEQio/Re0 6 | SKaFVBmcR9CP+xDUuAIhAP////////////////////66rtzmr0igO7/SXozQNkFB 7 | AgEBA0IABCr5C9q+cWae0c8S0CSvurZ/+5YnPi+9HtX5jWxzncUWkb2yuRtAEFq3 8 | bG4yW/djYpQkJNvsP4vlbktkNzEkeU0= 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIIBUQIBAQQgDPGtLwP3kRu6A88jN8jy9zbOZfGELX2fX54h2V5JvSOggeMwgeAC 3 | AQEwLAYHKoZIzj0BAQIhAP////////////////////////////////////7///wv 4 | MEQEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAAAAAAAAAAAAAA 5 | AAAAAAAAAAAAAAAAAAAAAAAAAAAABwRBBHm+Zn753LusVaBilc6HCwcCm/zbLc4o 6 | 2VnygVsW+BeYSDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj/sQ1LgCIQD///// 7 | ///////////////+uq7c5q9IoDu/0l6M0DZBQQIBAaFEA0IABCr5C9q+cWae0c8S 8 | 0CSvurZ/+5YnPi+9HtX5jWxzncUWkb2yuRtAEFq3bG4yW/djYpQkJNvsP4vlbktk 9 | NzEkeU0= 10 | -----END EC PRIVATE KEY----- 11 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ecc.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIBYQIBADCB7AYHKoZIzj0CATCB4AIBATAsBgcqhkjOPQEBAiEA//////////// 3 | /////////////////////////v///C8wRAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4 | AAAAAAAAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBEEE 5 | eb5mfvncu6xVoGKVzocLBwKb/NstzijZWfKBWxb4F5hIOtp3JqPEZV2k+/wOEQio 6 | /Re0SKaFVBmcR9CP+xDUuAIhAP////////////////////66rtzmr0igO7/SXozQ 7 | NkFBAgEBBG0wawIBAQQgDPGtLwP3kRu6A88jN8jy9zbOZfGELX2fX54h2V5JvSOh 8 | RANCAAQq+QvavnFmntHPEtAkr7q2f/uWJz4vvR7V+Y1sc53FFpG9srkbQBBat2xu 9 | Mlv3Y2KUJCTb7D+L5W5LZDcxJHlN 10 | -----END PRIVATE KEY----- 11 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ed25519-pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MCowBQYDK2VwAyEAGb9ECWmEzf6FQbrBZ9w7lshQhqowtrbLDFw4rXAxZuE= 3 | -----END PUBLIC KEY----- 4 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ed25519.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC 3 | -----END PRIVATE KEY----- 4 | -------------------------------------------------------------------------------- /tests/pem/pkcs/ed25519_attrs.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MHICAQEwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC 3 | oB8wHQYKKoZIhvcNAQkJFDEPDA1DdXJkbGUgQ2hhaXJzgSEAGb9ECWmEzf6FQbrB 4 | Z9w7lshQhqowtrbLDFw4rXAxZuE= 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/pkcs/extra/ed25519-cryptx.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBODCB66ADAgECAhRWDU9FZBBUZ7KTdX8f7Bco8jsoaTAFBgMrZXAwETEPMA0G 3 | A1UEAwwGQ3J5cHRYMCAXDTIwMDExOTEzMDIwMloYDzIyOTMxMTAyMTMwMjAyWjAR 4 | MQ8wDQYDVQQDDAZDcnlwdFgwKjAFBgMrZXADIQCgXRrqWDCsmmXN+zhGYNSX42l8 5 | RrQZzyzshd6L0kVFnaNTMFEwHQYDVR0OBBYEFHCGFtVibAxxWYyRt5wazMpqSZDV 6 | MB8GA1UdIwQYMBaAFHCGFtVibAxxWYyRt5wazMpqSZDVMA8GA1UdEwEB/wQFMAMB 7 | Af8wBQYDK2VwA0EAqG/+98smzqF/wmFX3zHXSaA67as202HnBJod1Tiurw1f+lr3 8 | BX6OMtsDpgRq9O77IF1Qyx/MdJEwwErczOIbAA== 9 | -----END CERTIFICATE----- 10 | -------------------------------------------------------------------------------- /tests/pem/pkcs/extra/ed25519-selfsigned.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBhDCCATagAwIBAgIUHDa8kJUZeCuIhknPJ/wDeBW6gZgwBQYDK2VwMDgxNjA0 3 | BgNVBAMMLVB1YmxpYyBkb21haW4gZWQyNTUxOSBzZWxmLXNpZ25lZCBjZXJ0aWZp 4 | Y2F0ZTAgFw0xOTA1MjMyMTAxMTZaGA8yMTE5MDUyNDIxMDExNlowODE2MDQGA1UE 5 | AwwtUHVibGljIGRvbWFpbiBlZDI1NTE5IHNlbGYtc2lnbmVkIGNlcnRpZmljYXRl 6 | MCowBQYDK2VwAyEAUEiKvHT0KHXOtNjIhaImokxbiog+Ki6lcgce05tf9UKjUDBO 7 | MB0GA1UdDgQWBBS3fmpWaPK2fNpblEmg4tG4ZHO2BDAfBgNVHSMEGDAWgBS3fmpW 8 | aPK2fNpblEmg4tG4ZHO2BDAMBgNVHRMEBTADAQH/MAUGAytlcANBADOnwkj8etmx 9 | mTaXUP29RaenxpN8dQoQ4wnnIJwxQxTcVWOt2PlUxCFoB9gs0+YZOzhXnQg4hfqk 10 | t/HPExwoZQg= 11 | -----END CERTIFICATE----- 12 | -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid/single_line: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY-----MHcCAQEEIFF9oAGC6vxNLIU8D+nuvM8ms1QQlPtpGzQTfzEBVB06oAoGCCqGSM49AwEHoUQDQgAE3VU0nT1p5W0zKHDknAgQpsOODuM2/AoZ/6wNqC9AoUCEpQempFg0aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2mlw==-----END EC PRIVATE KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid/single_line.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY-----MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3VU0nT1p5W0zKHDknAgQpsOODuM2/AoZ/6wNqC9AoUCEpQempFg0aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2mlw==-----END PUBLIC KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid/tall_multi_line: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | 3 | MHcCAQEEIFF9oAGC6vxNLIU8D+nuvM8ms1QQlPtpGzQTfzEBVB06oAoGCCqGSM49 4 | 5 | AwEHoUQDQgAE3VU0nT1p5W0zKHDknAgQpsOODuM2/AoZ/6wNqC9AoUCEpQempFg0 6 | 7 | aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2mlw== 8 | 9 | -----END EC PRIVATE KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid/tall_multi_line.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | 3 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3VU0nT1p5W0zKHDknAgQpsOODuM2 4 | 5 | /AoZ/6wNqC9AoUCEpQempFg0aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2mlw== 6 | 7 | -----END PUBLIC KEY-----' -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid/weird_multi_line.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHcCAQEEIFF9oAGC6vxNLIU8D+nuvM8ms1QQlPtp 3 | GzQTfzEBVB06oAoGCCqGSM49AwEHoUQDQgAE3VU0 4 | nT1p5W0zKHDknAgQpsOODuM2/AoZ/6wNqC9AoUCE 5 | pQempFg0aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2m 6 | lw==-----END PUBLIC KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid_but_supported/narrow_multi_line: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIFF9oAGC6vxNLIU8D+nuvM8m 3 | s1QQlPtpGzQTfzEBVB06oAoGCCqGSM49 4 | AwEHoUQDQgAE3VU0nT1p5W0zKHDknAgQ 5 | psOODuM2/AoZ/6wNqC9AoUCEpQempFg0 6 | aBqxleOP0uW0HG1YwCnOF8N0D8Q2RR2m 7 | lw== 8 | -----END EC PRIVATE KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/invalid_but_supported/narrow_multi_line.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD 3 | QgAE3VU0nT1p5W0zKHDknAgQpsOODuM2 4 | /AoZ/6wNqC9AoUCEpQempFg0aBqxleOP 5 | 0uW0HG1YwCnOF8N0D8Q2RR2mlw== 6 | -----END PUBLIC KEY----- -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-bf-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: BF-CBC,A2E3F3B8C60F1B85 4 | 5 | aCYCwYq5jG18juJP4JVrMg2+Wq6Crj/wI406D2c5W9TVe8siHY32uAbz6o59mjnE 6 | cZTmm9CDXdKtPPEfdeU6Auh/ys6PFgQqCwTlZkiDvzTUxK4E/64feV9MfwRj9w9E 7 | 2xLPIUwS4LsC0CmJK5nk1tObvk/nOEzSieD+kq5oE50mAuMbUnBTCiAZt0/82oEg 8 | 3ASkenCuwk2NgHQXp19PCd6A6L1tDmP0AbMLz1Oe7SXUCboFh3RMaJfg9S8Kv0nP 9 | lPty/okSQIOku5Ja0C5TXFsEXzmzn28Qu261H2OHoy56hyJmulaQCu6yNjrbHL0j 10 | JnuE8mnSyHqSEq+2/R2VEof0uVfNUO7It93ODJDoFRqs219R9P3JEb46PttIJG5A 11 | imutE6iASRdwq9Y0/UgPK1d7nSnWjG5bqBgzkomA2kkJXQave72LvnJ0zwgOSor1 12 | md3GifM7YW0VeCnW8Lh33/GI+qUPvhPlrR0fjDfYMEKLkNE5aI/iYcxa7/jR5nP5 13 | WbxLLQUPQ93kbcPQ5+2lBWxilqqpmFXhWpi1W4triT81EDFH9/szHTnaZ0nwja3K 14 | /AUXMccrgTSYaD4pXPY1BXz9fn8ok/Rn0TbdqobnggVbjFoSvehWtyfsq+3lNetA 15 | b7ENuQaUKxAFVuKOSrXzanvFFSs7l+TIglJXxu6Zerbn0/UH/LlGshrkLNwhv+ba 16 | Whg77NM2jFs31WYyCiPzH1RuxQkdGe6rnm+aSeEYc0g9dHnCDApImChEuiOEA3wt 17 | YjWyRgLjQPQGgEl6dfeBpwSzx7dXC8Bhvv3IZY58lvgTxArFWWATVA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-bf-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: BF-CFB,A1DD43A6698F0FDC 4 | 5 | mZV1GprXm3ZfUX3gSKoKrKf6OIfx3PuYoccsJQH1L+ftFpEpfFGMuPqG/6hLKPCg 6 | Q4TYkL8HmP/b8RCTbGK0o3YsD5PdTygAsYP0VVbCmhzalcdUufI5ODeTZik/HF4S 7 | 3cszCR89IWEg1XK/ffa/0apB6nKAjzDTCVYUydGFwQ8gcwVKCz8gZVEc7Xk5XZJT 8 | N9QWVLmrw/HGQfaImwpfMUi3hbhKGIYvQy3A40Ky4673IqcaTea99en4VeuAMrP5 9 | LjedSDu+tr8JB5XsjJj8bzCEyhMwbJyYiFBmRG421vocGResEwLhMLxc0VWIqHUN 10 | KxGzlzQZPMIoF3bLOybtOYknxfIStRVuPhbdWZWOWPr+qe9NB+A1BESTM1huTVHp 11 | ofgz1hggJtYrJqu5qKpURFIsRo0pOGadqbjYKV7ZrEBEmZsZXWbzWp69bVGbFwAj 12 | ba4GExErLZBjwSvYXzusGgLv0HP4cECFbEOKGLIEHWm9pLXWFTTJBu2aSPp9P5RC 13 | adrCDgb0zo9JtfQ/P8Bhk3EYd76GpMnJ/VIL3ID8IV7kD/EVOsGPSu1AtX/Zd/1y 14 | BieSNSTL+WEil8YjzZ+Ijh75WYeFtQDn2x1LkpDDwFtZVXBjB4txGvHUQgwOcj6K 15 | 26Eng4rZtdDP3yu9txnNvrLVskBw823cuB9w91beq8Nzdk9A7QWdcNSH07evTUpQ 16 | 7mpWJQyU54TwG5Avsz//ErfpiwEIqXCtUWH5ROlCmyMboHDmiizsFdFJG1X72/fE 17 | 1oTOfDUbGb6aIAZQBD6axopqAPsIshHHR6CKPcMDMRvUww== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-bf-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: BF-OFB,6FF31D757E4299BA 4 | 5 | YSeBBk0kGRtQHi71/k7+QQCJXKPX05derG0Y9qqKonereIBEp4ef8OVbghyx1JoC 6 | bBj3wOZbaiQUCvV2u26kAQjvTALR1Tie6mJTXec+phPczPnbQY0r3r7uB0JLECr5 7 | sYwSPkdgDOQXLINy55MAjHbpxo7srZOD2OxuUzT5AbNMReflKOlBbyH9GDeFcCN4 8 | 6loM/KrPbpBVsm/ZPdRdKdUerGIVl7IesVQSyF8x3+HCtgenWtIsJxCGXKUsEz36 9 | iDFdR5vPZ7dInWNnJzq+Ay6Ldz99O8WeTLUwp9SaMn0+grTn2R13d9nP5091YkgS 10 | K6FlQkn9nHkKhJtY21WvRJ+1QWZb8PvPIElYG8AFDzcMjVbG163mC7JD5MTc08GG 11 | jlegCYDnhWkahj4zv3DbELq5Ysiv6MNObDBaXAJQSKNNcdkq6m7Qx+48ehq8+F/d 12 | h188DCR4hMp2aQ/LvGL9m6YEUPAclrC91lIZQG+ohgI+0ih6r+0SYokn6gzQ2Cz5 13 | 1qMB60blEX6U/pgQ00iSluR55499rSS1F1BrBXQ5hjFELnZeMN63+nfquGJQZYa4 14 | G72ZxnctzTX/P4CyWrmIeYMdP4MayZg+BQGnP9hcY4WlcVHtN/XJnVh9WZu596nO 15 | FMQaDjBK/ll8I2yMZTHKsW5FtDBL5cjv/Qd9DFC+Z0hwvY06Cx5UAMkTwn1g2dBy 16 | lcDpPYHWf0wR91/W34EPdggA8sWnF0+XOk00whQdY9hAQPGT2qvu6LI2COalCG4X 17 | 9nJHc6exhTktatfBFn4TcXFk+TKS4+gbFTmB0DHXDLXl3g== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-cast5-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: CAST5-CBC,1333844494EA1A4F 4 | 5 | sX7saRVhAgQPnj8aQWyxeqi6XPORizi+iOvXGAbrOnIl4dVflDkgyFrnKeedzfRh 6 | ehAXwCJHJCnc7LWVHaCx7LnSHT3KxOzSaT18kxIpPu8BiuDAiO1Yz9x9BezKaTyH 7 | 4GlyE68zdNGHL8qkb0A8nHQig9uSeNDd4OV64MisJJKaulxqQfx+CotVHZchttZX 8 | DCoD3+Qq3MDD8Yw6vkxQe/U2m3K71lenJuaVB0+60+jj4KweUfXT7GJsGKmT4G6l 9 | L+SORqLGl8GcP7fSI/KmyOAcnQONuz854RtIC6el86/LFuC/IYISlAIo5lBhvwBd 10 | pR1+jwyFsBv9wn4x1HiBl2TXQCvjaIviSAvIpQzpP/cbGG+5GszMUroRJgetw64D 11 | dCVbvOxW/hsy08v5W/1zZzvZx3VRJXUmey7sF/OLjrjviTuN3ApEYaLKL9w3HZqf 12 | Uw96GA7LPG+zWzyXdhEahy5IwRnK8N7TC8Um3b+bj/qLAq0PC7wOnzt/wOGV0SaL 13 | jBg3GN8uGJdrunyNPCwq+LDXHVg3MSGI1UOT8mLnqp30fVx5zelD1Dm5qUq+RgPg 14 | NgQW8A4mmrILUbIRYU+Ef+QaWXwmPSj2W6y1+0UBbugXTFE36kuUG2Kg1QIbVbfe 15 | c7RGOYbPpYuvhSUJYXKQdNmKz8Rb4dpDJ16OtlozRLTvzekEyhXVSrSH/NgHZ31N 16 | WNIFlSpdnQfIRgiCW88gQ9iZMwHcjGNlXdwO4KtHG/beKw9An424h51rLKs8eU3j 17 | /e+YenlOjNg7ck3YMDgYg4uwswaBmK6akXTgjDKgcN+jQpZsD31whQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-cast5-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: CAST5-CFB,D9A10C14570FD7DB 4 | 5 | IgrLkHZq1o5WFKcMR4wYNh11nWLTGuExAGChZ92oLLMnbIdYNN+kQvEzYH6q9eJD 6 | MwzZ1M39ymsY5YzCzloN1r5U5OPvw5Bh6X1i/9zg+mT+TpXeppaZOYnDb5MYHvlV 7 | /qRX0jdImuVTGtArNQaHnvpQVKi1elu1+Uifv+xW53BOUjKzRfV5lQqYeAzZzkAm 8 | Tm+Olsj1RJvDPAE/269Xgm6/PMhLVH4Y35jkHqUh/Fes6JfWNgc4ZjAZH1xZybxA 9 | k2edwsENkwwMfZjYnCjb9Lkw4GO74w6PT2t482A5yWx3BjvvcpRRvKAYExWXGd7P 10 | R2pJXzu7OH+8yRnHp2x5P9OsGKUIoQyzvCvdB9owsVj50HZQ7C3hchmiS2bfOXUm 11 | 1IlDH76EjnuLOeDuPOaKMZa5lEge0JDu9wWgMrEfC+t/9xybQMekfTCGfzwz3Dnj 12 | i0fNNqRGSRTPQJ/RhSrBL5IUNdaZvO0+49jdQ29GTnS1/zypPb2tchUwd8N/XK+f 13 | tKJyoDwhgRTttuB6+xepFMgqQUZNa8/NlAS0kyX6UROsiuKjLS6nHBQ+QaS9c6Va 14 | KZWZMMdV7l/NzXWrvF+Zr92QusMPbN7hHAfW5raGGlT0KCno62WpU1MaWszYS77P 15 | uW0ndVlbOQYE3PnTe6hyHU0zlbSNb3DIpJ2B7gwhAwh/xk2Wl7b8pifBQMTYc+bU 16 | HJLORpuFrNS9oCOBA5V27wfwkVXk7m7X1eZvqS9IypRz/aNvWIHkZyEgEyGN16/x 17 | VriluGDqIQOPiS9RF88SfRFtmqczcB55e+gVmptoYNQcRw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-cast5-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: CAST5-OFB,5DDA6D06E3E7B3AF 4 | 5 | j5nKw8XtGUSba7pObNE2hiOpqJAblYVtNp6LwgssM27FU8iOZL1b3KKt6KxZD/Zw 6 | cD0if7jta5pRP8javi8ceeQcnwhVYY+Iop0+LLhNMPWYnjrJsBgjYNrFcPMrZXQE 7 | le3TaXgprSPPS0eBxO0MUXxnVHbLK+kMKdzRCl6o15TY8ALrdlWqThrnP03t8yN2 8 | k0FBBLxvNh41n4NQOwyP81NxKR9EksClDFBh8AckE1skvpjGbqXfcjaREwgKXbxo 9 | NInk0M21ckyAWoiD8WZfwZPJxaC4Wmulb2s49yoD9ps+zzmYTod0oLFbgXPrj6Mc 10 | QyXhtBfwq/nvVN15DkKE7KCeveBh5ZkDQsQaZtGMmDm4IfLQzQ83wV7BgOe1n19J 11 | FUnWSUVs6ftq9Cm5QiHxQGTX5D/m89QJEDhmTX7uLQR7+0RgXQ+6a2on4nEGnNra 12 | x5q50TdOvg93JP1z9K4PlVpvcXbEqqCkdiOtYlyVeLjVaulBUJB7Tw2xgs/bASla 13 | xjJq7fma7LG8NM6adX3+zm80Rq+5UopwfJqov+NwjNXTwNaokdANbL8FiUJBvRur 14 | jn7YCQENe3+1N6EamE9xBt3RElp/UWu37nlX3FSWhtC/ipjc2x2HClf3LzZlv4G/ 15 | NqBLMAAEPIE6Kb7+EIhaxhHQ7otPy0BvVCiPmKeS9ZoMcdwmqJPsLR7ayCvtuETy 16 | ew4TPVGyuomAo3uS96t9G2j6V1ufLKnTVw0gjwQzu4iQtgM8jOfeec9x+96hXcGq 17 | MVf+tLo24RRkmpj+TS3yrw6p/Yl3fdLUQDGj/ZdNlGG8GQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-chacha20.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: ChaCha20,76D5D46424252459EF8D96B1119F49F3 4 | 5 | joUj0jac3xH3O69VFpuogUKCf3neWW0AX43N6eJJQsPUXwC7TZ1TgJOUF/LZa6gl 6 | i/5yAGOjovMyUGhVZVlxEQusYyOtiI8lol0AaEv1n+nvMHxn6px93+9DHEDD6XqV 7 | c8e4mo/1aSbTH19sozD2Tt9xwUAMXpVEu8b9dts+lXE5MXAfwpok2W+kLLHL+5+8 8 | 63pRot7CzIMOTY+Z4C5KtRI6Pgw9fmGDx0IC6CuAjsg2pzeLDngDIVcdDlfelHfy 9 | KhpDnPUZeY+fQLqTDjllZa7l6rjjW9r7uAtOfpPkbV5e9+bMjhkCnrn5OUqlz0KA 10 | 2rC24wOnfQ5r3ILpZTkIx19baPr/mShz9Grb2+0+aJOEx3Vifk+h2q2igVut0Hzn 11 | UHJzmreg8BXVEyZv5UcNDIfHmFwKnZQAdGhbbNSfHllFgorZ4DOn7Mcc2wR7m4Jh 12 | v1Tkdjb4VtqOF5zTP2TbIGU1y8Umi+eXNtXUK6whAFPVlFhDrFfHpn1YBIsu9kcI 13 | UjgY+VIcT8Jj7TrXYMPY8P59uXfta+07X+pkT4xkDbr6qjYwslllmPAMRbhS7xNM 14 | 8+y0QTeB5Z4txEywwjkFn67kXwnJj3lYNS0xZFsjCz3+6Sq75TwpMKN91CTK2cG3 15 | swT2CGHUk+l/ypec/5QpCdFS9N7MhAOZEJpmX2W/hnarYWI8UmohrqRtz1duM9QJ 16 | PzLi3cgPzeN2Q7e70GDJ3x3JO6BObqXCtlmEdCIwmrPY1HZ1fgTwDJg/SYfnttl2 17 | 3WmERtFppmbvtUBb+dahnQQdVU/Jw/t9WubmJF7VeHayPw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-CBC,DA8680AB93BE83A6 4 | 5 | 2c9R3NnVdmpJzxxm5es5QvX3vi0Du5e+QMSPHm0NRIsTRi4MQSm1GEq13J8SXOEU 6 | UJ8zEYfZYQFcnqnvyg31yLYNBNLXdv8DRqIC8JQoGp19BY+sxojTMiG+Ac0CftWP 7 | WGthPPaD73Gb/26YULMFfph4jl4RxjtnAN45WmajVRXWQtqdDFdnzJqLgDGKnrWf 8 | vf9Im5YZcBqmEeEipdG6WUBIjbdAz5QATobo7zuxztbIJL+/r5PfidT2yyahgFLA 9 | DPkoWggfO6aXorYO1o58pUsPjJDRz9ID/rH8ibkvrVKF8NchlyP81CneL9DTV//i 10 | ZSwv3fcuZObDREPNqh5Rr4wJ1xcsqHh4KmUgnTcaU24kl8w6/v10FSVTS5bT9ces 11 | TPkPL2GeqT9c+XKztyWUSlSheji4vS6YfjcXbGyNwMZ+2DBy6XzgZOYXj5fQrPG2 12 | ioKZYwrpUQuCYRLpdcghej2owKlwxE4A7MB+APZHaYP9ItwD6BD5YZHncXOa4XUU 13 | 87+e26FbFq3joI+2qWLy9+Nnvbh1M6RwP+zcDedhR+S5lh/SYlODZitlp/l2Re9N 14 | IaRwbQdS5vqHKIYOkMELNK1Rty6G7fFDwevrI20mnb3mcwpOOtDqLbsJrNjVjvdl 15 | Nn3QIeh4IE1qa0opnncOezJzNIniypLiS0o2MFmFSIhcwHTqBk6A8bAuQf4cUNvA 16 | yGqvXDQdY0LPYMIqZe4hcVIq+qsUSWSjhPw6LEXeQ6u0q7CPOHo7DDrVL9ui5gKw 17 | hf5g3fMe2ixrfTPbX2h/Le6Rxmj3hQD4L94qeYrcVqS8NOsypp/IZw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-CFB,376CF2DFB180933E 4 | 5 | xsTzYGzuTb8ZXsuNaQ9LHDkHLDRu9WdpQWzfb7BHqmjZppteaQGaULfdEMGvgxW/ 6 | RhE9n41jMFanAHpWXmhfAYwnnEVW2Voy3TE4EXKTjRr0gWIHeplb25GOsnZipOgB 7 | uT6x8GzdX02/xHpDMzDJXy3vuAiMLucy7dUD0bQgj7+c3elYTLRRUOH1SEXg7qRp 8 | VIcYg4xAvVmmOCzX6Qg6jB/gnJNyu2LgfEhYQFt+uKi+STzbuCPS+Wms7wX6w8gG 9 | Ve6Kjc/sr6EYjypk99j6wblJds0FwmXfwwKyOAjz+M6DTPxvYZ73hhsRjpOJmiW0 10 | Y3hqPoK6O5U9Zq7ZwkmsTezRASHv/OnJkNSjsWTiWqXYdgn9cfGhtiK1ed8jc4BU 11 | KCAJfR0Xq3MJMoxi3X3NeBuaUXaFus+02scF8DwEaF508lxbRyqGng0xXLGnDznC 12 | UCLdiq2IQyUQQxq05bNHXcbNqC65vrA1wVqVBRztI+jBLy8lDhMsV5PnFxM++c1u 13 | XbNTKaJ7UczgX7/Digwpx55eyUQVpNU3hwuLW39sYysZchnEnUCP9RikyU8A3KUS 14 | to4NwK9RtAtIfk6AYeKoDtTHX5ErHcBbUmQGArpsy/pyunfhNE5G9VPPa0QjnihU 15 | 2nQII/EGeNB4JN+/qY8mQRr9rYvIl/ecnkM8wSFN4RIsgV7tUQwKMZTvcAln6wUd 16 | agdAkVr+uOdbPtsAiZ6lb87jGok2oo86dwJeLfTPoCrKblN/aCA6LB7jAU277xh+ 17 | A1yPdRSvQp1R7f2hJXvpspYaozyxum2qAQcsmqs5Rtq04Q== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-cfb1.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-CFB1,6293609157F95999 4 | 5 | oZByTXPct/RlUsozirjTviYda7DTEWSKD9TmuJ4wWKtk/mUnvWUXocUXlVB3DLQj 6 | 9JQiv2G5asaeKnJUI8LlKURctZ68n3uRfUX69izEGhawsbFqVujw9EyVM4/RwUf+ 7 | vfUKThsgyBRGWltqQ/M5ntURKMDteOpwk+3legOYDjj+4qdKidggH1AK0qeHXdvq 8 | LFhf+pxYk+uqhMpF+zI83iQW29KA5ogo3qdy/xabnRyiLhMuzEa9i51pJGL82I4z 9 | jzWy/ntcV7+ok1VCPYwBLO8Kys7qs/awS4cDb9sd+Bv7xKBdTIJeqJv6cjtC0HZB 10 | k893z5Jt5KOPzMWV6QsYjEAh59ov/2UXQTfaSLZcVA1fGdy1mNV4UjVfyOVhhesC 11 | jrktiBa5k2TJK7Y42L9YVTNPgPOjV2/eeyCWZmvIJcn7n69NyFLYBdq6Cmm1Eys0 12 | EFDpVv7JOVFha1S0xZlJ79SAroaa+hSgltIblxbS2MyGLCCf3z2fZ4knkRC2a42e 13 | LOfcPx9enLqFUXOUtckwRhG6As07u8waavRfFI7LVQfgEcVHBtK2K5dd2trguJ7f 14 | WA92CWqE+yRvzz2hUS63u87u67nsZSLrqT9Dc4az50A12oQk6qwxFpMHTyo2joRA 15 | T7vI8GLdtk43AGYceKZwhwTTFLwPa7caX5Kq4L3TPaU9B9tvriOqNFwqlLOC2sd6 16 | xhqF8OBdN76uapL1GMbpAxEp/cbFXj8hzbKppTnGsGyZU6wqqCUraETNFjkNX2YB 17 | xLKfIDCwvNWFK/8qCO0L0XHaG5Y2sDX/Djit1cDhqtDD6Q== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-cfb8.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-CFB8,D403C0C1F32C3152 4 | 5 | vq1T+cbqR7fdU7qVO3pdk8mVuIJXsdfDx40me5Y20QBHGjrKN62YIgguEGRaGxwZ 6 | mvAa5f4juiQ+T+5a7krNqmRbJcgTo1egWPoMR2iPsdrrMZbLRjcPuyXa+Moon3XY 7 | Xg3OC+bOcn4NRPsnfm99J5aXzV2Qz92CU9eIsQbEgmtJoJRAcjElt50b2vAFC3qP 8 | 4WlyeYHH/0LD02yvWlCzOdgnvVAV1dvN6gTdpAYs9sl0MdSasHVl0M4cnR1yBnNh 9 | qzNHV6tzijjrloFG+GNSEMDWY5dV+OFIA2lqfX0EQYbACbPHypEQ/ZK/SyFf7L84 10 | 0G6zcfP6CktYDTxG1MJkXc69LWiO1O9/Voyu40eDruUjxpMJVCSIlQwI3mfNQA67 11 | BLe5TMku/+Xf0d/YcDp9pNU7/+TV9yJJCzxtuAp1qBa5XVCTMD87jQ5ZMCvPBGdz 12 | i/DOygrL8tr4ASLqSbNZYoZPzSBNasj7ke5cmRBKZBtt7TMNYi6DOiZccRtivqPd 13 | Y7BpPZ1BvgAO8bT3DPC//ojY+XHKQltgMGStGrJOTXhPyTrz4vEfPK+RE644VLNV 14 | 1SQ0EdzumkeQi6h13Q/gMowqqYCWGwIvT4O07E+Dra3fwHBV38t7W/DhtgJF9tHo 15 | sT2p7LnYQxnw79brYeiEctIqLbmqizhW6VzvmbPFfMSy9o3QFjcZ4KGP18Mj1USR 16 | TKCBfnbVqZLEIOq/rSVTiOFTHnN2l6KRbqEzy1itwR0bvfmeXN30B4eY66Lsr7g3 17 | BqoWYmRZHXvhCAwaF5XoVZBqG38C5Y1wOovK7dmf1jTPog== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE-CBC,28FFB61FA9A6BB4B 4 | 5 | gQbFrtQNCdJ7vIPX/P3ZcQeeIusVjP8te7F5eRwX3WksJGnvpgVwiM2G9kphg2P+ 6 | 3AGBymUYON28CN8rpZWF5sEGo79Y0tBjAS1bK1RZJTdpJAc7yOeJsXqOFyfSLhJI 7 | 1qy6W6kaN4feoSNldNdEjmc7vq2rqGR2N5aunnljV2JBegnUgtuOUGpuD1ZZABhp 8 | O4ay0fyfzKjdDTTmZBvepBlpNOCbkhYoVzOoLJRxvgCkot5ZE01ei6CYK0esT7DU 9 | O/wZfq+XNpQjDvH3ZVEj1Km4cp2xa1m9a4XHMUyYuDkott/KhaHf4z9drjQ0c/VT 10 | CvR8SXRjrQLpogDwZmooYb3OUkdvQpGCdnpGJlK2lixr22EMrBRqcdVPveakpX60 11 | hFJKBq/pue9Z8GdedBwczlHIsrpahD4wtEoBJrVvY2xwZQlBBg07lbaRJEzJFMjO 12 | tXY+NwhpyRXJ+XpvSn3Z72MsCLJxJFssB+3DHYYeoBMYCXg6OZ5gSGPVQ7tbqCw8 13 | X6aDDYXN6iPh3hLSml/NFy6C44WNT8QsnBrrU+sxmCwMqi1BoJVFc74w42Bi5g1O 14 | aIp6ja4cWU64PhQ5acoP6c2J5psr8+qoPvMwcV3DEGopRXuXOCJYjKB1vkt9gWfQ 15 | 7XNaUH/xEzkvPP4uh8da8925hO/3/IztMq8JoTbcUxwcqX6Cb4NrE25g9JmvfKWz 16 | 53G+ThNJ+MsVWqXam0uHk8XYrOYVtlx4KYe7A3Bw4XLqxpKbeo18zoOeBnIyPKYE 17 | XRfdGUWVQTW10yXlkntEcQ7EuZmE4YsCaTVvw+klmHsLnbSzBpn/RA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE-CFB,D2EC2E14E45CF3A5 4 | 5 | w8ho8faFohU73C4+Khm1G6qHcCv3k5HuaC8e4gnXify76kDRMQtOLiDXR9bhUvC0 6 | LRsE9PQ/VV33posoTdwht7gvrDxGb/OPmynIuMBztwSCQ5M0Sy9cVmGIdSV7IqhY 7 | q2UaL+vkoEH5tQs29IkUB1nDDJ2hMSk4C44edbDwc/qwhwsN/aQIj+v0GiH2N7F2 8 | 9lpS4idwtERKWisaxWYo27D5K03AA4952Xinh2cVORcrV43Zky/XwxB3Kunshrl0 9 | w6vVRwgTLMVHxCe1mfM18lCp4hMRbJ4H/yKsOEPKj3QyvJEzTTicvD+v2IuvlaO2 10 | 3ca5rOu/J48KK7q+dm5P+HDZkxMUejeVebvbnn+b4Wx4dhjbAIJqFJ8nTl25Ksk3 11 | R95FO6xPT5X8TQrrJWgi50cXx1Tx06eYuILG6nlN2Rb26DVuoaQHdrCQ9/22Zkbb 12 | gHBtXbhCxTFWJENt6tiRFAlJ314KwVoTXOtwH2ILWGu1BsUBVzOnlA8WP5gAfzPp 13 | /zj2ttbZ70YNdNTX25BpAO2klbzchu4d+RLGnhQH/GgRA0ilm8DJ5gpSMG239IJY 14 | a3dHoraCPTYldcKv9tRbxIejlVZ/f/4uXh/YhkS9YL7q6TK5hoUK8gqa2k9HPeLL 15 | S9h+c5v8sHWXBt7OQpSsi3uEHnwC7FhIMNwKjg4cPrGBuVzTaptIsdBTJyiLfD6S 16 | PMFYaq1GUe5VRjjJqyl2Zm5uAWEnzxvP+arZIEBsYVsCFapmsP29SxKS2Ofn7Nlm 17 | CYtJK936wPvqF30v6no9mxrPfYok1QttxZAr1PQT5e4ZLg== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE-OFB,325013F43C2C8DFC 4 | 5 | o825cb02Mq6/X3ifbQxkLFHWO+hQQeuebohmv5Tw27EBmrAJ6eUBgNJGfrBzNnao 6 | XLa15Ok1bmV0iEu8dn3kxb7vi9xNjqi6CXWrOcBVgesxPTGwPPAurHGK/tBG9Rf0 7 | jKAUS6i0cnAanACOO42P287Ll01ajyRv54lc6jpJP1CaEzsKSownSg/kKvILxgMx 8 | 4M6/LwgPzNXmyq/yDkW9EkulPT0BlvbWrl3WxlOCzzhlP3yN+yOF7+5vWXSnFOU1 9 | hk8SHEwRnIQEpXhCEVLMS47jaB9/SHfSfY1eS1tWVaV10tzSMuuSFC7jqhLJR8wo 10 | KZdZV31w1lvAGfRHc7dl0KJx0H2UMgVCLl7XMErmf4Zug17RpgW86QHH09r4Z80a 11 | uY96GHAJu4PF1EhNTjCjB6QQQruhwuJ8XWZutu3oOYSLr8/dBGnBOtvud07wwGPe 12 | wkuXvknEvwBYfxv157LaKKeapvpBof9MvIqhGf153/xSPaQHUwKFovfwTiIDPDBh 13 | e6TCsUHp2H68jbJyYD3PM8oeaah8oJsB3gwwD63stVnqSgU4gQhZd718r8ULLhUr 14 | uoUtcxYVDThjvr/dxmOz4J6HYIosQrDSQmS2KYaCb4hO8NpuJFcy8u4x3kFbMRq8 15 | HPPbAOy87H7RwLRS4WapLxSxJmC05CalANXZrN591Uw8fHac96P2qG/Ma0lUCJWE 16 | +2LnOK2pDRzAP1ZKC6ZhcuuqGTOB+940J+B00jyzlUjot4JMm4bvC+4CInNRThEF 17 | 7qhd2lOT6+BK1/6qYSVu/cHkp7Bo9vpmXZhztau2WznC0A== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede3-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,3DEAD22ADB3BD3C4 4 | 5 | qJgIg8z1UdUEE6HOrwcYALUiYGIGYrmXJm2J3wxfdX9Km/2U9YVPR3sZv5V57gLb 6 | xo9EpU+d0d5pmacbspGQeY9FtyXlkg5Y8TwaOTIfFs7EyBFj0BdsS0lXoIllIieg 7 | ux3yHTYrA8lgXVMAdjOiFgJ7IMdGsKrxqz2TgZudz8hk6ErGQ1nI9Rh38tTiIqEO 8 | tEBsxyEYFYLOy+RhTWw+OnELQZ8U4FtEjTYlfwfUIN+LZ2RBvJk2e8ndRpYYSsNY 9 | Lc6rgEwFEJmooXqfHQuCRr7nC/pG95GaLqHRrWBHjK7dTRc8CmJ0t1CB9GQDCIv2 10 | 9CnfrKcUWzXtfFkL7NjtYlz3B641pb1TsE/XPPqYnz6pi6cyApF1dpZvz1I2e/jW 11 | H43Dun38wjPumJ7zd0YKh0waAaHpT197hM8BNyW51XSKAN3EFB3vhpZY6sgQyUQP 12 | 8PjCGkPEupCUloyGd/wK1gV5FTWl5Uv0vsrGlOJtdsDAV2LgzZ2n4Ho/KmuWfGUo 13 | 1CtfPejogme8pp5LlOEwGpr2ceb11U7CuplwjWs/Z7fo6kF+w6TQdA+f0FPBBZbF 14 | b8K+vL4tYq9JgrtrUrgo04d8T9h/CMPJYJnytM5+0F2QiWlXGLvAi6gQIRnKL1qR 15 | r/VGyVx2pVwL0TUAJpkYN9MHcdngVL8PmKYDs66b6zgLJxUxuhCb5Ps4xaqXzMhL 16 | 0QOtLUh3pMN3QD0yJOOcbNA1Pdbda+/7KIFLLuj0ouo5RQu/qz1WcREvXwiSvj4j 17 | sB+X7S9GHFbytD6tO8Jj/YIgXBWeRHFeCXKcx6mLdXADlm+81qSqaA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede3-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CFB,BCD5DC47A5C62CA6 4 | 5 | BgN0xi5XHTlT3ZwAeVUWyE95ud/9GBW7ghC08yqp4FIYiN9j0OsiWM/4rWjSonDq 6 | ZOyr2Aq7Tc6Yx+zv3VY/4bHs0sGh9YFdaU9GAlFUGeb4kxyeuHZ272+BRaGDOeaD 7 | cpd+jSfJgCI5pNE1YBrJM6EjkrcUfLnMu0uxY0d2S2tYtocaIRhJVDWwUfpTdXCz 8 | z4cVnGJAV8T+O//Q5njrWnSy1COAHqaJZpERt35EmnpR3p7L0qtLFDY3HhJZiYSt 9 | IttaRNucVF3T1czWHLxsx0n3ObLQRD2I09i4qIq/N/ek9uamHX9eGyW6AiDpVhGj 10 | f8gt4EmCOnGAy5xOo1UwYkc7HS+SwComsEqm8cPKyWrndCdctYU3viH2C2zussNY 11 | o/YqVfjGE4tg0/m+PHUfeuiiVErFMewJUDQ9TIrubdI+W76qVh+5YWRTZa7zGpw+ 12 | +doVqgJgsi0gAH/c/RSwOO+Os0aHCrJ8jDhQ/KcVlRg5hAozzOtWrslxnCZ3e6ar 13 | 7PuqvHjJ8UgS7ahvyQXTAhmjyPma1+2TAlu5K8Nsse9r3AA1ZrKnjXssqE2NHepC 14 | 1cOlfTZjVHWrMh2GOVLqIBU0jb08EWC4gnv3Wy48To/1v219uxfBZItH7HMijirp 15 | ikOgX0YpYuKR+dgjmKfxTJR/tr3HRBbmXzIiJiRi5BWXpw8RsD9tZxXLmaPotz0Y 16 | u87od428FOhwqhipKChtzv8rTK2OebWQ6iAfx/Fqd6YAwQWDbKjMGMnDSamYcGwt 17 | cxZI2F68DZK7soNSWgdQgUW8edE+FWW2laGa9lD2Fey00g== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede3-cfb1.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CFB1,0419E39778AFC124 4 | 5 | GEeMgB+RzmdnJx9i6qX3jmy4i2CyTvxbV/GlRwUPeuMRXLb31Yvc8R2FwKZ3rl/H 6 | CRaMYGig/GelIdcOr5U6haOp57fTJ0BQIyYksTB4wi3fbVBVIl6xgMo1UWLT2IR2 7 | odu5d0Y+AAh+QzKHHYqnOguM3EmQ2rTGQFbzPWuRpMIu8TZjmsPWMgQlW6mDf90V 8 | iCJfbuQPHmnUQH/pQPnxiSacsxBrxJkxCHEvgBrlRcG2z+ttDqhISBJQ0L2sDQuQ 9 | 2Ukab2bZxWdWR5d06X5lb8N+XB1vxIuhB7s/PgaOhus8Hf5OwUfYHN0w7v5aymyS 10 | nBvQlF9CnsmGWjUVjqWWCNUtV5Ip/W7NGFbBPKDr6MeNTOEmTUS7m1XZt77AcC7L 11 | 8NWMaT3mAdixrgwTbwJj5Jn+IMR1UXBn0+az32+ttqIiOFp/NQk0VNayfUz4TBKg 12 | PH1wUzBVRlCDks3pUguKuQh/AG9HWhqFGQLysXPtriVlud+ERQ0BeHnkAU4c2yFc 13 | unEnyXiz60C68xCQsDvt//Meoft8DL8oyBe+qG/fYBj+jspuLorlAGFLChkhM8Ms 14 | 2t/RfNvAQlF4DZ9rBvMB1glpQX5OIwL10iqjD8OvMD8WG/MrP1ncoWuSqdrDSaXI 15 | GZnIS75EDBcjJu7nW0p409XaGu5665G4k78zN6PHBNnf+WW7M7pNOFAjC638fFFO 16 | 3vD5DbWuWWsiu3+u3Qqg4c6HdpCVGUMgmODDH/VamYmas6eXJpumJ7ro2yZNmeBg 17 | FIO5SdUJhnhiPW0fum1mV6vBvLeo3HhTPW03zq1eR4dczg== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede3-cfb8.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CFB8,2EAF80F254E8E368 4 | 5 | FYxKFpbGlvyR3Fy4fbDFKxaSPibxBg444Qj9K/sN6vHsmJNCM8TiSKz3Rzz3pYlV 6 | bGV6HCi/Rh5W3wFJpMjvyzqRfZnkUWo2u5ZwygoBA7qFaWfp5hJil201bV0DNx7b 7 | c9yAQGGnoqsXw+brgrCoIIxUXnRAPNIVmJWKdvLn40ksfxbbk9z4/6xSyX90TpiD 8 | oUY5v8zeereJgZN3FS0+DSY63oq8dM2oHtHYih0iO4m4G52Rf3xa9adZeFqObGXL 9 | TMEVD1dwkxiYgkwKt/bNC1STBHxF/a++OreUKOMrHV5TLyIlQz9wnI94aTnO+3/m 10 | +olRJJTLIt8uADWcyl3/RmiksIyxKosOZ1VKJy6dFG1EaGdqbWZEXfZZl6J+SVQj 11 | TIifbvR56+6d8XzP6d+WSE5njIaXsQ3jWhn1EGzHCnPJ/Ed+6SCOpUbPig+TdoaR 12 | EkwfhooOaodwJdu2TJfTsrydB++C9/uAxAP2zWjVWzKsot7f+nKah51Tbb2ILeB+ 13 | PuQbt3q41iJPZvBmWhM+wCsu5nwMF/z8jMOF/gOiJYI/9k+XMDUc+kJ9d7lk3/Jt 14 | aRQ7/DGJ22cgGbVor4jChTS1ZQyvlURhBsegBoGPZeOA/1/V/vKdqax4pK+icpQN 15 | +cmfSxQQBqZl36xlSEH8KBnh5L7ZxSUTPfF7x+ooDK2e05LDZz5em2d5gLVIMzJf 16 | /zbJES9R594RKBtOry3ePqa7yAgorbK70rHUu4pfmx3dRr+MefgeDrtyOmC0i5Oy 17 | J9/pbFaX4pkBHoGWJExaYwbpJW/Iq9sGeb8WIwEvzEpEjg== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ede3-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-OFB,7B40A4B78B61CC27 4 | 5 | iAoUqthNG7mdy4xupBkFsc2GD39Pm9yreaCDnj8G5zEzHKNddpkomod7IC0OOFqi 6 | f92qtpmAlDfaS+vd3vcBicy6/Ki2Xl8jZhTsrVqNoDrQgMRNuniNgO5M0uMfyvUD 7 | NATWulb40OPMy5qGbwSZ0kJJJzqw36L5pMGShmxRAd9QxRtrpn0v6lUUex0Rlt6T 8 | ueqZnnmqq4OcN6WFWsIaHPVu/clwNyboXgMs8jEEGMXz+0/9DZVqAYlt7GBycLHQ 9 | Nlr2y+1NruQZXsctZ+d4OMEEcG1R5+tZWjOEQf2T4ne/XOOnYEzj7vgCo/iN4xnF 10 | zNf75U3X0gz/wFzGhOHw/HIX9ON9rEj8OdbsH+tZYu410Yp4jP3VN4cFPt2RFbuE 11 | TXBfRfbOSd3GiGWSTEkukvjvl36Ig2XM25/6gGHQ4g0W0/A2XeQHwOyWaKAwPx2f 12 | qUonclgL6/ASDoF80odedgbaZqw+gWm74BhNMXDzGPc+7EuKkFpvVhw7jSTvXwYu 13 | XPM4Zk2+dusUkhxJ8n8RdPF/0GmjbPQ4APG7zFLaasi7448NV2z39ViYSBlvUwXv 14 | Po6CPYIRvoKH285Ax0r10PT3U46pjuAa9e0Qadrux6hCLUx7iwludTsEEsrnEUQQ 15 | Fyncv1JjSL4Ca46P08IsZLy+zZS0g06aIVPFpq/HsGZJ0k28z9cl5aFKlC5rFcfQ 16 | x9PX3bkzEMV3qcm/Nc9wD3PDpiXwIP9pMI/JOZoWDsUMzFWshihWDRp5CpKJQ6ih 17 | hYycIyxnSJ2k8f/N20Dkz82+zJXHA8ArYTyxrnKFW4Q8qg== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-des-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-OFB,D54F59B32E69FED6 4 | 5 | kmgjwZgAfTs+sJ+bVuQmTxi3D3yrVHEoj/MCEVCizBvcaDQvcCIoeM8cr0kCZuVf 6 | rwtW4j0tFPscjtsdf2qvAwpOmLbPtwp2QfEDZrYXjYo9Kc3V/1nb8eoKSrmpVwn1 7 | yNjM4+/ojNiP8cqfh7YfcSdnJnIzAS6Vp58WHxECTPNwAAqKH0C2ioN6IRkscz9j 8 | h/PhTmpZkBGS5HwAX5sUSexa8VnzA+aSusrO2BNIRETEF7K7V9XTLTZQJKADNxC9 9 | aFGd7TH7rbbDZ435zmWwhZzbVxfZquFDWMTju2NxyvYJ9HvAq7COCiJ+TL70RRif 10 | 2tGX30aA4uUOTMIPgBM5TA/gm/iy7Z/InDU2urwN56syw0ot4IIs6n/lszWqhGZL 11 | jEzbn6uiA1fq9Ln6Z6lQOLNkZOngtKrCztHmf3U5mUUHxp88UhH0G00bDlGAVFxa 12 | HaY0kmk8mkDxHF0bnFNWE57KPqRGbFQdJR4n1qlW/FJ1rFfY/MUPw3ZAUYt5sHFB 13 | 5aEc5Dz6N48p3YiY9fYKqwSn8QbN1cKNC/+nh3Q20WeG2V8p7Qh4Cn+8lpE7kY7K 14 | rFU1mwlC8WG4ggNwa5Pbn2aWX3cpIRhsd2VL4fJwOVmfIA4vmIKadva4UT48g3qU 15 | ORT344NDyVHeewK3wI14FmpUkz8gK1mGXNMRIlsh+1658ghVoNueO5eYUDOaqqOV 16 | eqTBLjHnhAz4RnIrUdTNRW9gcNzfJXey/rJmOWXqnutvExESA2e8gDqpdB9k5xA0 17 | PDkyFEsdtXjVxqFZ0Qrk5PgivCCXXlQKT52U4Gr2XLZ9LA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-desx-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DESX-CBC,7C6B3D1DF2ED3BE2 4 | 5 | kib+IhIUbbFzTAWj1noqVveQDvmSdsaZsbGpn8+dGBvQid+0ktvurQptooMR0omH 6 | 8FvKLX7rQaVk5VejPzYAz9Qq+78JVDI+hxzdWEqSiRvuKDWKOssUa1m4k5pxxnJz 7 | tC9WYREulZ8QLHHOeWNDK0WZWrLGNuXX6m6P5wZw68diBV9MQqxLvao69lJ1sVb2 8 | F8xRolutpVBVe5avHlV2U9KqA4Sz/L5276C0763/mXFRGOM+OZ8nQOmQbK5sziI9 9 | BzK3Tje4bLQ0rjDGERVseDHGUF85T+xwoRRBK6GH0RYDf3cHNRYYi0p+6XdfM45t 10 | AOU6XXMrXQEBo7kpFcdg17JucHupBWvI40vlNuRxoHceT0GYv5kZQn0l0zP2qLF/ 11 | G3HIo/LCTRSUD5QKccS7uS849RIgDatD+iebTTiHqbu+WfSkRX5/HWRKesRwT3wt 12 | WOtwyMpXjRo4IT2Yfu1lD9+Xawwu5BuRPeLFadgf3XdwTHhmY9NL4oPSY5dCwcG8 13 | uvI0mG6tM87elUr8X85sQn9ipWEKBTo0fJZ9MXgAJSESjJ/Z1wQvx5qHHJGXB8/R 14 | qt/ZIkNtaHZ6Qu+tcCbcz6waGxMXz2NjqDMYV3W4Pjm9+wn+OxHr7nZ+mwcRTHU5 15 | e8wn95JZCbbbJa9DodhhEbxDbIJ5NRd6GEYbk9q6CtnUpNIoN1jJ9mneBb0d0BI5 16 | t+pGbFxmoKVBt8AJ6Pi8pUQu7yokGiMsjoh4Me0UEFk0pEc2TZdb7v+HZPa+Wg1i 17 | ZLmjVjlwlFMtwvAN+ihuO84d8pjuLnIJ06QmE9x5gh3xC7nkUCNMKQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-idea-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: IDEA-CBC,52254EE5ADBA46C4 4 | 5 | 3mltPg7ZYhnrVIUn1sy9D1DrE5q/vlYZoAsgUGIdI5UisVVR1XZIWxkxjVhQd240 6 | d7OImY9aLL9Lw4cQUuRk6+j++OlWw2K2oKatlCo1S3+Uh/lNcYgi44lDtcYbqOcy 7 | qCLqqusyHKH7Bp/fMm3A5SaKMwcb27CkcW9eKsZRkgEoYHU+kddnjF0S3CSZEFX6 8 | /UT0bJOil1ca096EFeFJzEdKrsWPqNHlkgQvkEIp4ZZQG2vSo5AvLYykUbpxx3lL 9 | ieEDPzPRl22EIO994gLckkovVIrv7X7UE/hGJ1LhaOAYFgfqhjowDQ6GngKKKaYY 10 | 4eviXS/ZxHzTYJYT2R/UtYbFrZiEAWO6wSddiMHY8mP769hqfZOdCBgkhlJBSzga 11 | pKEFKM8TTcVUW09at+mWuyQsIE3vriqJGb3AQo2Tv0feDThwnUVYHzgHgWQIFpgB 12 | amjAdHi2fw0bG09VIVyxKYs0cP4OzEtRCRhAmZ739ozlBTazihbDyFOF5a21HAAv 13 | URWfleIU6cmk1TjH/20Aqx5vArL56+2gXf7JixZ0WT9yH/pqx1SgosoSW79UT74V 14 | rPbIIKdaLg7xZ3Y5iSG+tvz+Gpe4RofjsfIIQ+qMkmGVr/qALt0HYdk3oRjeQpKF 15 | nEcgM4W1c93x8eoKoJmx302PdUJqrsfKXDQMAGrAVEBtwbfSVFfWJxE1Jm1N+HiG 16 | Ec7vaTRnaYbJpKxaAcah2roZiF/APR8RN5hq6V0sJNGlRIFK4FZGjJUpB3HVIGty 17 | XRj1m3z9DWqLbC4hJoqEALrP4oGfGdW23VNNkjliOJyd+UpXmohc6Q== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-idea-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: IDEA-CFB,E870DDC34933C104 4 | 5 | CzZsDfyRn8n/6ogbTDLibvmBelG2atvGG4aa2kqOV6DkM9q7zwvYEFO/CaDRLGD6 6 | 1lq8HNf0di/UvxwafZlqc+JTwppZPmmIsm53YnN9JbRvRacA1FKkbN89/qQ6VZ6r 7 | iYDF1U7KM+pMg1ieMUiQbaVDc30v0qokRJaURRaiIVB1tC7cb98gagY9kWAAYTli 8 | wKc13VeSpldoFMwnGKNJZxhrLWXxIY5XsoPCb++3DZAcA3PJ+fIFmzhrieWddXpQ 9 | 3+3PcaSFySaY4WQkC49ibW3CZH5/kklmUa+CdLGgm2uEAGS/RxmUVU/Kw1nxfNN/ 10 | +7CTD6S+rnEUUok/bPsQiRBgdxH8Qah5Rlfy5FSbYGnk6IUjqWhWaALWbMYsLfhe 11 | Yabz0h8j+fG/hfy9QMaOMf0HDp1nchUe8MhLbpOAnYiQhnl+ypuz4bt1LYwE2xbA 12 | cN0bSJ3+Nd1GQjMzNfBpI7rBQS/yccCUgdcnuAtGrCuctf2ZEWnZfR7r46DVKYgD 13 | J+jcRpbpKyAkx0xNcIj96BwINbkxjSs2CCCvM+Xkwc5fHn1Ehqo+OUwqaEzv2+FP 14 | LWrBdyKY4RQ/XTfiSuYgPxHL3tIZxwUi5Uhi0FaUyRWuR9vA8F9WQjxwKfsFVn7T 15 | 1zgOY59dSXKJRXKRt73VoVarypf6bkyGfdMygI2rvJ0g1VMxKkKu5NNZadO0O8UC 16 | 9t1vkKD5eaHB+qeuLkqyCG8RzFRYu8IHwmmDYaKkt7Mr1ciDryfCi8qfGOI46QML 17 | ngVeR+Mt0j+YSWy6ucuZJTsPBFGyJo4RMTPC0i8Q58AgoQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-idea-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: IDEA-OFB,07F5E5868555E462 4 | 5 | 4STX7Z1jUIgBOvcBUJVcxMTjzGK9Mli/v425w/L3dRSFMHCnIBEwaFMk9Jg/V/Uy 6 | qn9dTGyG2CQkR6R1HSvWLUZPTUYXtOmUvCI92t4w68x7N9BCJI2g1VUIe5Wrv4qv 7 | vsWMDZKMUAp8DRTibFuy/l6UFKaTVG0ClRgkzhMV+Artls9CMQJLaukvgby18ATJ 8 | +iDRoFzQwSZ6lxTQEMMN11DjUeal+8iYUdmmQXJgWaRf56B8iOQX9W8c52YIOrow 9 | XqS1ft9hJLI2eft5DiPRPIfl77eJQdWL5Y+0M7ZDFOcKTtxkFP1gmk3m4j99vi9j 10 | YnecbsB7J55x3Vbh4als/z5fVpIcwVuxuH2nGx6h4ayKQN00PeCY+xOSoyDCx8pD 11 | SVpk/YpMfwoWVoIOId4AXjX4BSVuyi/2+0q0mj2aQXgJMw5g1xgd9ZscMJhc/naN 12 | 7xGYXPghBZLLwpqVyqiC9Z01cjhnX7opDFB4b2vBqInBLcTy740aOgtDSiR0RZNR 13 | 7zqy8og9Z59+O4+AprjmP65HlnnyPaOhGGwX1ibVXnk8mbczlB0gSnHu1ZHu7NBN 14 | PZyj5wgnQisNtvvhuB6qkFZ8BVay0Oq/8ILybOBUzmDm+4JIT84he1F7txWX6/sj 15 | pyDrxxIjw2vpGyjoj6J+yX1b+7Va+mTNI6nrNjNFBLDRpVMSM10mbNACSLnUaXlN 16 | h1BzQaIpK5Ck3v/3T4DfI0hd0Apq51/YOEUUfsGuhs2/8AcQ8VQtg/y0ZMrOSwUJ 17 | 9unSbJij4e7g6vqV/ZzFGt0jBIbzhJCMYi0x9RvgVWZzmQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPmt5kitrIMyCp14MxGVSymoWn 3 | obd1M7aprIQks97bfYUtlmXlP3KVJJ8oaMpP20QcPmASit0mpev/C17UiDhJKm5b 4 | vxI3R70Fa7zb8+7kEY5BaHxhE9dCyIC+No/cCItPrKTidgzJY2xJWJPtzKrcJTsK 5 | YD+LVDrDTTHnlKRE/QIDAQAB 6 | -----END PUBLIC KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc2-40-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC2-40-CBC,B3B2E2267CBC8E5C 4 | 5 | rICswWUUfbNtNYdP0Ub9F9VgRu5HJTY4y22XGGTV/V0MlZPus6cu4oOIJmhFL77J 6 | VM27qUwAFlsjvgNhxcKNrbdLt8jtaPE+y8T/hX0jTEd007SPpu2DyZG6GngVkq5j 7 | 6OjLiI2/wif5xxtZuooM4ZDX4VTHBbvL6fpnYbl9ETziSAiO2ulvy1n92+mjXebM 8 | dw30V9AmqRwb6nXQYkikasQuuOpEjHn+Mg80jIiKtq2oXKmzC1CvFdO08KYu806i 9 | FCKffXbW6hqFNQgFepE28u0FS/TxqismDlh1ytAlbMihGaXgLdRrdN7NQdUhmXL6 10 | rM+ZOps/2ff2HN2FA1Bc+YO1B9WEcRZCSrlmIaW5zwyHMRTJAoq8DmpgK9LuhPSS 11 | aSUXeZpGWnGLzuInEDNHt0krCt+Z4HoLExPoZpw1ilkN4xZfuz1wD0aa8KegYdmL 12 | eytqJ+jiq2UP92izUb4lQYJM3uBM/o5q+FgkfB1GZUhjLoMx8vDGOGY56JqFucy9 13 | 0bsMvh1ibedSAkSnIEWpFKLLYf+MEi42DI0uDrZteuf8yCfdyZbzj/eKOCPtIq+a 14 | oAMyALOPI01g+3WN0uxfL/vyEkB+8dKyTaPix02gDSSxmZI1JY/V4Q30EmUOYrQz 15 | 4EqpJEiRokuBDF6zXTLHAPQpsh1xBOLemtB/l+lNUd0tG7TVvgXbM3azh9UyvLnV 16 | ZcWnNle/wAXHeOtgk81EXNhBWnTP4zRrS1ONaTC6A8MsY25HNbExr16rLg94s3ls 17 | as/JrUSq6sd7w0BV2kLomwYkASBiEm+GAQCmP2dYbUO38Mly4Y38MA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc2-64-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC2-64-CBC,09EB4FC3DA39725C 4 | 5 | jpPfTgJg2Go9eX1H/GqBM436WutjRhEQa6jiEG1w8LTGlhQPLc/xoYw64GChpZ/n 6 | o94WvN/y0Jn+Rwo/Vwm2h36aY7BSSyBklZ57uejQ9ONeBj+Hk8Bm7QyxB/3jILnm 7 | GEVDbzetmeDkGn39zTrxqKIpwiSiXPVhdg2dG0SA325kIf7tyPgRdBshlEylHoI3 8 | nFlhuBe2mxHOiaCB2ZqxhXwgxIxPcUnAWqBk6ezYx/xEvWOd2YiZcp9pLmiQp4s2 9 | Pf6Bew7bkcMaxmnHqVlJ5bColqh/g2voPpFIR69QNtGXmTpOb44Ml2uOanCS5L1f 10 | XFeKl25Jnb4I3ql40eWtYxCcPVq2pqyeu+6o/eOS19v/Q9jCHbFxL0UIgaIm9qh5 11 | VUrWDYvOoaqFL8bA6hy3KnwECZUdc7OwOpi5B+56vffw+PJG7vIPwNhXsO+W+dIp 12 | WR1UqMAztsh6jieVqOPaBc+X+QtRZ+mkAlo+apGkCynLQZN33ZCwpzWgiSBP06jq 13 | G0t2bJkfPHi45FXgvJxv8OOOX27bkHU8CT0XfdnODD912GcVQaRrgirJXKIGCtS3 14 | qAX5HZ4aXhjGSq99f4V8FKbLeAIGEOUXrvuMmecxwsHpDnJ/s59pu8vHfU0s6UGF 15 | S6hOLMfuIFxR8YnfzkCcDM9vudzXmkHv4zth8nTAEA26oOpfhn79RNBraG+nA/J9 16 | VP5r46gJxBWjLVXFiNDEWbdWn7HfJkAzdHIkdUT4Fn4lABZ4sUOZKLdzEmlwoBht 17 | 1463jKL4wIZnR/mZ40SVPQISjqmXucuFW5b2BizmbDLTaGqwD9EOHA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc2-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC2-CBC,E15277F46A0D4382 4 | 5 | +K6qWzPBSC2XWsDthT7L6DUuad80lpVf+WV/LQM1wvSwrHejHtly/RaoPjJhjaz4 6 | 0jzTya9Phpep2j7yflkLD397JmsJUHTbgSUpNg7X4g1QGO93w4726EVWtHljNcPf 7 | vZzW+D0tsjQtmOPjnw0OhBaBuqyS+dGi78YhtD/gG1geNDzcKsM5lXUci7QiJD6m 8 | 69frJVTh9sIfijKU0CQ9I5x0Eu74fP3f/Y0jyLpVCYhzsXjS03gheGmIGnZjmrY8 9 | 1SlZrUPxk0DTBjvOw2Tnepb38rA63xidQ1ilLHt02npUFpEvT3X1OJC3DCc7oys/ 10 | F8iIl0PYniRaQU8RWnvE08ckZOKIV5Vw5dXC0nVYNIpu7LFghuUiqgUEMpsS5R/u 11 | AUZRrNKUGhXLbo6IuyDAFKBHWgbiOa8WxR0meZkIU0JxXL9SjfQ/XbeSCCrQqC15 12 | OWPZUsn5p3KJjZEDpzBshgr1+PAwZntUsCzplhYv+swQqzMFkIvEZxQo4vytYas3 13 | nPWLidJL3T6n0Lc53zOuj9qfWETjcfGoJAHjG0pZoDbg4RMfKXSHH81SZMTwd8V4 14 | 7JYS6d4avGLVb5TtI/6YtIAWLO3bmYBd0BdMLQDhPLjadnUv8/7SXyEouYiqJbfi 15 | qU12DZli3snK0U5hLO51vpl6Gk4LHOtBJKbQNxK4flOTlAWQFx4vPLPZYPqrsVmQ 16 | 6qjN8Wour1F2hTcJcSDYILBZIUAzMNXF5/CWfZNQJeJ4rbHorKrjRazs2BK5GsHV 17 | m4+TB1bNv2cGdRQTkN4ohzo8SNz4UMJv90G2uV7NMZuUcEUNaNSPDw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc2-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC2-CFB,70E45EC369F2C0D3 4 | 5 | /Chxzf+eMWYQr1+GjTKQgFYLqMT8DLT5okfCfwa5C6Gg22/qzFLhXCfiY+PEwW+l 6 | 2cgKj9Dht0+EQr769DHiOtKUM9pB80u9AeWk1fnwwK37BPrL1ycvveMrqyHeevaa 7 | i6V1t3BLVB0OVvq6c2g6q1Jvjip3ZUISF60ozlk58k5j+q3fmC0+tatUFouvk1dH 8 | iwMVtLPPtR/bD+80IAuUAI8JYfvM3rFKcoO965STDQzIQlRoR2ea6E/4EFe3HzXZ 9 | 11wthzX+d85GLyEx/IfA2vFv45wznqGagIC43ZpB2JuvWatBV+ey5iaqxzophrX7 10 | 9f7OLSo4AlYzR68Z8DneLGHuK2kag3JI2V1QJywz9EccLcdWqYWqm2bIMayV/Q4C 11 | 0QtIA2Uax+Y4FeUnDqdrTq3hhOk10Vg80ZHv4IkAj3LjcLQ8D1DX0XG+EFrmy2qR 12 | RJEVXOYxuRDa1nZTRULVsEcVE8+giInooPxY39ozCykIhaYtswZpPtUx6x6AxMbp 13 | ucXIAFrlN8l3Hg68q3X5iYJmJquSnxB+nI0eFG3oRPtwpTaCgodL4eB5BgIOCg56 14 | bk/dzrfrCZ9tB8ZAVEcsBsCXYI0eGpCdutOzE49FpKkJgESJ6Jhf9ijg9xf2bQ6m 15 | rt2rm94CiaF+k5FUP/zdLJIRK/6nhaC3P2Ls2Y7RzcGrdxcSx2anm1Kp24A1kMnG 16 | hlrbRzArX3U8wQ8jnoCUxBSYdXdhD7ruj07eZvKH4vR/ebGJboVhMFWN0DLi+MRm 17 | mzwqwAS+L3nR8DQJHwikR+KV1u2OLRup1sPEcib4y5jmHQ== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc2-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC2-OFB,C5B0AE4B71C5CA69 4 | 5 | QQdY1zNfQ1i2FJKlnDouwSDAOXT9VV6dndgOrD+JqfDwSxMukZrSSfBExpaOtBTq 6 | 74vP8Ae39JLfAq4H/pZjngNIgbpcOmSFxBVucykqNMLj0j9qoZe7YPXaLeYc6BYv 7 | NWRsf+LQvOxIPuLGNsUCANWwuowZiGDEBnheUy9pR5DCPe8rp+aYc+/s/3CysTse 8 | WoBSwNV+oJlzx6FfwNGT3oULouwBPSFnMtJ096WbQ4qkQHh4ZVq8c00PMFACNqJw 9 | b+LXKKXVf9DeUd78qZ5/08u7c/w5OLX5FxNMMKfkZ8pddSlw/W6NQzLAhWC2b/7p 10 | aqmf2Bpz+o+cNOcYtBOvzD7ygY+MDMrJlup4HuIRTyzQ2nb6dWc0Q776c8/qJsKu 11 | HWB5cxm3F0Jg/P8p/vKst87WQxGzytzMsHbYSxqz930TJlyGkVauxNvJ2o3VlZJ9 12 | JPjKVM58Ge1Y0Mpo5koTSBTEC70xqrlZSAQtUsI3wbDXb+w7rRmtxkr4atzKGH1c 13 | 4jVvRejGDmLF3bh0wOAwFZKK8DaUbg3nSiF+I3y1WZLn6dLsYCUx6WFt3u+BHsAO 14 | y8SblBJ6RO2Nz8vtA97qizPzjcBdVUqte8BY0W9Py0B0pVr2JT8nZ91e6Z2GhipE 15 | PFTLnDWxRUlCJZc0/CvX6VbjwwvDCnOW+HsRMAAWr/gChVvqiK6OXj12wmS5JI+r 16 | Z6e6k3gF4PoZ7Ui3VSQ7FAgxxxonh5P/RbhWhXhejTToSB5AQhp9emGv7GkJMpw0 17 | wPY9hiIRIurDJX5MBZFXqMt/pCJ4f7LzV6wCfdp8Yq6gZA== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc5-cbc.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC5-CBC,0F357D2C058DFC7D 4 | 5 | 7R9clYlXUzb8YN+pmbAZVq/Z+v3HfcvaICjvia4Y8Yu6SzARsx3xlgVtv3SjWlPw 6 | OyKV85M9WhaEVoRR149s0q7jlechbotUQxYhbtY+2xb9/JQBVWQWNHMiAiEILAjU 7 | CH4aQjcKFlrDCzgts12DmHOmy+8KkKimvD4vjEezYRW83CQugcq15F8M34Jdhbjx 8 | 8drEjtAAC5QBllqaXmytLc9ON9HJLeN7+pao58lmYEV+/9aN8Kqtc05MPhkscpz4 9 | sT1APYt3vPy1nmzxLfQDfH+eYSt82ad47Btjvqa7lBGI2zvUTQOe1nUQHzqtXGDD 10 | 1CvtaioEsKFHUhZ/v+TpzNEsxXjpcmyuBR299h501O3D71r507JqGKZhz70aJxvV 11 | gHh/4TDvdddQzx6Jm4jU4dj9XYqFber/IeYsCk1IIeLFZg6MVdebI4nS0Fe6pO8C 12 | GUT4M3oiJu1/+1ztvbSsXkAO/l7a1c+Ww8hbQDiZJc+R398dUibcaU+rW9e14uu0 13 | dGFuLUZrIl6/26u5oiOA7nP2aGWZzAtwewY1TEWA//etdp6LxZoCchumLuUij3Wk 14 | LZZCucFwWIURCf7iMmOJhNBu7laEZUyzO8r0bUNSiKeKjmxGsdSxunBM59yCtQbK 15 | utrGyg8T7vk8gPjXPwco98XfN9f3ijlSB2Djkz4YpGt0OzPxd6ussq4PEWtZzY+k 16 | cARtW3sBqk3ZOGXbsZDX8yGKlZQ31+++x4+2Vbnkbq0uSvo4ppKVpPYqG+am11wL 17 | aS/2MAGDgO9HwRO2GklUKgRNTeBYMu9RaJYic1kPcPXf4X9lolMM0Q== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc5-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC5-CFB,45BBB5113B6228E9 4 | 5 | hYBLZX2gE1Bgx93IvKmqxmgyHubVzuVNx1eL9JVS+fhJBh4Zy142QNaT4hHbt9mL 6 | E6LTc/myv2uBCrROWHkL66irVyBIWRRRiwSC1jhkiA5xFLvCrKBM6tHqvQ9Ag60e 7 | hrsQI2lbEyy8pQcAfMkI496jyTSHDuJWHT5HnMODk5rPNGpXmx1iq9bnNd+xU76I 8 | JV+v+gHrZiMY+JwVWTxBf8aVtxHGqXiYp5wP5cjaQwsYjEypCwlqdrwChBH194Xo 9 | bsxS0O1ms3lyIEDL04Thm7GVxIHohzkGUjCoYI8crk7sIFhf70ARqSbe33fIyLLq 10 | 2W1Ha598OXpDkpnk76NiHmTRmpl3mSOD1/ek1ZgTTyYjHg5/iOfqIY42MiwW99sp 11 | Da0ObP3ZAM5VN2N2UtjO0RnpAUk2GGrRaMdco6GzsXALQJdKCJUSBMZjLMUfyMas 12 | XEcRm54r1YpzobM8nglm1Jwg+h0ksUpkAHLQyguVknHn11rqTrPPBSbNDd48v/wG 13 | OF3qQwWWreOy4VQ3aPVoOUiFyswHKTtvwqnnqeMxsa3dr3d3XSk6LNrLZ+hVJf9x 14 | 5L3MElYMZ/vKFnpbStgyEHo/vbkkT7jKWMQ6HWlRnoikPBFCwokYy/XSW4BJxD8r 15 | tbj3JK4eqXVjXn6ZajDZEzVE9T3PEjz3kt21N2RQq5Z5keVpfDAhqvaszASkwu6u 16 | FgSG3ugJXT/tldlmQzc0BdKsmWD++1s+fP/LmO5QTWG4mjCainSVthEeg17h8cC3 17 | AsHR4YOlSimlHehNh7jLRBKY0IhrxBLJQyEObN6HN8hUqw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-rc5-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: RC5-OFB,10777ECDF98A48B0 4 | 5 | e8Qi/eDAgoqpYdYGHLKHrsHIoTYG0n27BYf6n7DUn9G4ngcoyQL6s3goOh08g8LV 6 | 5RyvDi9U7ZUEAGVzM1e8wpjil9FAbfCMTs5am+9u2WPNWWI7miuEPxhbxkvQ0GZJ 7 | 0TuFMybFXw4DTgjdcjcllwnKfDjXIs+RGPbzJlZC3PTgiicgm+w5/lZ3B3rPw/t/ 8 | UK6Rk/7QNz/RglXKnzTpuaIabLOxNzZvpqcVWW96FILHOe1Yb+HJ1JkytMRe0XKf 9 | Ck4p6WEKF8GnE/wrt3CpibGWQnwzNcSmJzJLUuJ7uLyyUtAzP0goM+Ir3weyNJuw 10 | lFHbi71//IjccrHvWKK3J2uCnUemxuvXzsBw/1bQiR4AmpFc6wSMJnjJK6ALZ55W 11 | IYPVz99L7lWzyF8Y3O5KLHwEeMlqZ1ny8Aa13r76UR4wZmXVRrsp2MRudtSLrqUU 12 | W1VanZCHku143qNbrZeDMyYGY6YnZ+kCtngZg7fxims+2Hum1HP9aqTlxoA34IiQ 13 | tXcDHn6Ftdpo2ZwwfswP49rkBbHKs6WAKc4AEFuHTbF0lLCBuf6fY6Nli3oYbO+B 14 | MqZ9mRoVNGl65F5U2ToCVvVJ5i19oAJx8ylfUyDYra7w2Yo06dmg7UGImaEX3FTW 15 | pvoDZmE/WOv+OFuD+yNzScMPHfP/mDuoXMertzNrZJJYTogT1xeXBtKWc1qieBrk 16 | HF4oIW6UEJI+rv0f8HMjS+SLNZOXlZodiBVdkwZBbZ75h7ZoDbsFAAnEqcQ/YAge 17 | PFTpcMxFiB45J3LAtIQthZRJgpHgfSuOBpwDS970erZB1w== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-seed-cfb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: SEED-CFB,8672C1DE1F4BA884DB37F0AF8A994FCC 4 | 5 | +vw6/VbJH5Of2S/afQyfQ2yz4MhyR82vyXf60vWH7qB5xuQjBUxyM+4ei8HeKTkC 6 | 5bKklX70v4oo0j8czzVZzkeSoH9ASisT1LTGomD6KwpiQhFVV7i+4aMADTuRlF10 7 | 77hMInEXIDuS01N3/zTLJ+sEvm8nYej/BYJbyQhsQN3v/aY5AKQTyVtG2u+Qx4pq 8 | wtDUDsmYFH/dfZJoikGlO1FQLKlIuWPIMXe2k8pV3kidMBfdeM8tyePI7YJXxDDr 9 | 0sc/nJAEbxjVsJaDOCUh3dqFQL0q6hYuyBeiY/PYvBrBzh7V+WxvhE0J3W6tlwZN 10 | a4NDzZCnAmqKgLcfF9M+EUuLRoYv+0CBRQOuqwkhNjV5ytEObgOwEEFfCzWHGeID 11 | /tRmfzWa5oqtbZACLtGnVm03NKRmF8OyKVHTKKh7FC11UdbWKFbkib8aNOafK10S 12 | rTka7RGlTBh59F1MOp0Zt/siwUxyq4xqVT9R6K2GivTyijfl/iUiQlydkb+E+nwy 13 | OghPqlb4Fz1RfW1l3fF5M2lv8+qmwkm3S7nta2iXVcdOWi6HlS3zVSN1mcZM5YQL 14 | 2JTTgNpxDTbLkQVMAroAdC08ZoLI9Ge5OXkDgpN+G1v79hcP6WvRtfbVsP0Gkqp6 15 | De4bG07wZBB9nCdxyxHwZRgff+0ZRAz9Jm/ezotjgrBSnh+g0gqAXGjfh3458d2a 16 | 6KEqm0RGaX9oZLRLcQhwQBbElRu+FJjhiC6X8Uik/AR5e/gMQq8l8Q3khl6vB57J 17 | F9bNwo0dKHP6XFNA8BA/ivlnmGZKrv3j1rb6V7arQY/wpw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa-seed-ofb.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: SEED-OFB,28E4F629E7D1A0F23C9C80AF45928BB5 4 | 5 | c8Cxs84U5Ton42kFOr5H/JWzQTMOWjDz7uGVR4AZMq5m9v+TjwN+jEL9Bwyo152c 6 | x2sIdee34yAddLxZimopADlZKNbgAMP0j6P0idUvc4nKqDTv6DInwAdfnQBFqtIP 7 | 2P4lWobJRuqSS5EQV0eMQsaPgPL8XMyPINTJy/6+NizamyqA7FSkfvvniy9gE5ac 8 | F2C0vU5j8B5uuctpCCRgkNbg7Bso02/aGiXgNLWkMs+XUX6vh6VmBnNsT06e+Lv7 9 | syrDDm39d1e/tvzA8rWXIEBiDEdfNj34kgmVbvpGzgwF0LhRnAjvPV6cOhumyGW2 10 | 91Bw+vdLI6ngpIS0E1p0cBunHYFUVkxYpsoN/atUnk/qeKcNn4wTtn9mVfYE+/Ut 11 | 54ZU1sIBuULCKRhzzchl70iuYPsPenzY5WlEHkajVFbx1eqq7q9xRrhYFNvEriss 12 | NPXfYZbYrBK09UDpIB8EM5pC1mjX9dyxFD+n9gLLT+wLmEx6Da37xevHwRA6ojsw 13 | Yd2Rto/Bfk7FbBVKmv4IJDUG+xP964alQqmAk9G7xbc4D1PPHTG8p3gelRJXh+9i 14 | s+igHv5sl2TCT5Aevo5Xmo0PqsEZuF7I3kC1QyyvWq6ui3ZQerdl95KblxdWCd8H 15 | t8ETYzTdAEtV6ETO15RYCA/cw12oDQXZ/e2LKV8bwGCOF3BA2CMFRFq4ZPSRTnzQ 16 | gnDcQEfcdiZm/KycfMZL74L0bTOAv1oG4vTbOTb8N/kdmHD6pV0ASh3fMMoGBCaU 17 | i7jMzfc1QoOu5wC85dH0kuhCmD1TtAVFA3cbFXeSnAOmIw== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXgIBAAKBgQDPmt5kitrIMyCp14MxGVSymoWnobd1M7aprIQks97bfYUtlmXl 3 | P3KVJJ8oaMpP20QcPmASit0mpev/C17UiDhJKm5bvxI3R70Fa7zb8+7kEY5BaHxh 4 | E9dCyIC+No/cCItPrKTidgzJY2xJWJPtzKrcJTsKYD+LVDrDTTHnlKRE/QIDAQAB 5 | AoGBAMhiuereRFMdVpfZl54azzAeCohFhikwo02fYWVz4NaHj7bzBqOC3Hys/pso 6 | mq79+/4vDtiXBOO7H9HsDbqjSX9HrIpEBH6GtzlCP60etw6lUfRAYx79veqfQZ+o 7 | kB1vClqVExENgK9fZJiKLHhoZbAri6JTh8rxZASr8nvbg8iBAkEA975eI8MyP7+L 8 | jjru/PzL5ffxC7xCgq7Vej7K99VpP2Qloh+3dXUFkkLruPHzCgXjlNFVeDWgNqCb 9 | fJKEbN3cTQJBANaGDoVCCwQIhCFg8A4NiP0eNhBlTx5TtAhygFw/WWYX5pjy6Wx6 10 | Bkysdj3tjKHOrRu9tH0ovOMOOI2Z2AW1o3ECQG3rwy0u8F6kiDEFKQCK0ZUpm4PP 11 | ddsx43on3jp0MAx2TNRQKkAtOdmZY6ldgK5TypQ/BSMe+AUE4bg18hezoIkCQQCr 12 | kIj6YAgpUJpDi6BQzNha/pdkY3F0IqMgAlrP68YWlVTRy6uNGsYA+giSnHHVUlI1 13 | lnFLi5IM0Om/rWMLpemxAkEA3MwnyOTcYkjVm6/1q2D2If1T4rddCckaoQSp/GEs 14 | XQRYOlo58UohVmf9zCCjj3gYWnk9Lo5+hgrmqDPBBBdKnw== 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/pkcs/rsa.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAM+a3mSK2sgzIKnX 3 | gzEZVLKahaeht3UztqmshCSz3tt9hS2WZeU/cpUknyhoyk/bRBw+YBKK3Sal6/8L 4 | XtSIOEkqblu/EjdHvQVrvNvz7uQRjkFofGET10LIgL42j9wIi0+spOJ2DMljbElY 5 | k+3MqtwlOwpgP4tUOsNNMeeUpET9AgMBAAECgYEAyGK56t5EUx1Wl9mXnhrPMB4K 6 | iEWGKTCjTZ9hZXPg1oePtvMGo4LcfKz+myiarv37/i8O2JcE47sf0ewNuqNJf0es 7 | ikQEfoa3OUI/rR63DqVR9EBjHv296p9Bn6iQHW8KWpUTEQ2Ar19kmIoseGhlsCuL 8 | olOHyvFkBKvye9uDyIECQQD3vl4jwzI/v4uOOu78/Mvl9/ELvEKCrtV6Psr31Wk/ 9 | ZCWiH7d1dQWSQuu48fMKBeOU0VV4NaA2oJt8koRs3dxNAkEA1oYOhUILBAiEIWDw 10 | Dg2I/R42EGVPHlO0CHKAXD9ZZhfmmPLpbHoGTKx2Pe2Moc6tG720fSi84w44jZnY 11 | BbWjcQJAbevDLS7wXqSIMQUpAIrRlSmbg8912zHjeifeOnQwDHZM1FAqQC052Zlj 12 | qV2ArlPKlD8FIx74BQThuDXyF7OgiQJBAKuQiPpgCClQmkOLoFDM2Fr+l2RjcXQi 13 | oyACWs/rxhaVVNHLq40axgD6CJKccdVSUjWWcUuLkgzQ6b+tYwul6bECQQDczCfI 14 | 5NxiSNWbr/WrYPYh/VPit10JyRqhBKn8YSxdBFg6WjnxSiFWZ/3MIKOPeBhaeT0u 15 | jn6GCuaoM8EEF0qf 16 | -----END PRIVATE KEY----- 17 | -------------------------------------------------------------------------------- /tests/pem/pkcs/x25519-encrypted.pk8: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIGbMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAjemFQzTzUb/QICCAAw 3 | DAYIKoZIhvcNAgkFADAdBglghkgBZQMEAQIEEPhFOISMQdpDb6MkjW9pEkQEQP4C 4 | Du/QGJw0fzI07h36dP6wSFeWj4Po0LD0AIcYpD8gsggm9H7huFuVv4MsXLFJWfZX 5 | D4yrLu8Y1KC2Dc8kkZ4= 6 | -----END ENCRYPTED PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/pkcs/x25519-pub.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MCowBQYDK2VuAyEAk4OBwskGGOapbeWgTLKCz4XM2PzZorXOuyJQEbMmVmk= 3 | -----END PUBLIC KEY----- 4 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_dsa_1024_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAKU8/avmkFeGnSqwYG7dZnQlG+01QNaxu3F5v0NcL/SRUW7IdpUq8t14siK0mA6yjphLhOf5t8gugTEVBllP86ANSbFigH7WN3v6ydJWqm60pNhNHN//50cnNtIsXbxeq3VtsI64pkH1OJqeZDHLmu73k4T0EKOzsylSfF/wtVBJAAAAFQChpubLHViwPB+jSvUb8e4THS7PBQAAAIAJD1PMCiTCQa1xyD/NCWOajCufTOIzKAhm6l+nlBVPiKI+262XpYt127Ke4mPL8XJBizoTjSQN08uHMg/8L6W/cdO2aZ+mhkBnS1xAm83DAwqLrDraR1w/4QRFxr5Vbyy8qnejrPjTJobBN1BGsv84wHkjmoCn6pFIfkGYeATlJgAAAIAHYPU1zMVBTDWru7SNC4G2UyWGWYYLjLytBVHfQmBa51CmqrSs2kCfGLGA1ynfYENsxcJq9nsXrb4i17H5BHJFkH0g7BUDpeBeLr8gsK3WgfqWwtZsDkltObw9chUD/siK6q/dk/fSIB2Ho0inev7k68Z5ZkNI4XOwuEssAVhmwA== This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_ecdsa_256_openssh.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI4QIXX6Mg0NWD6OvWqb/L88sTs56hqs5sXkAh6vr9NleFczaijCUyn/9qLz/CfWg1pqj3KgOiFZ4ByT3xYfJIs= This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_ecdsa_384_openssh.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBJZCFyqAiU2okJefOdynhpMGIakbXkkmywbUzl4jfAdCUaQg+lFDVrO5GSk4NlERd8iFqT++/fvydsCc2gkTr2H7HCLVbiEezPiqXBq0dckzBymK2LCHM9BkJtuOm4hmNA== This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_ecdsa_521_openssh.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAFk35srteP9twCwYKvU9ovMBi77Dd6lEBPrFaMEb0CZdZ5MC3nSqflGHRWkSbUpjdPdO7cYQNpK9YXHbNSO5hbU1gFZgyiGFxwJYYz8NAjedBXMgyH4JWplK5FQm5P5cvaglItC9qkKioUXhCc67YMYBtivXlUe0PgIq6kbHTqbX6+5Nw== This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_ed25519_openssh-no_comment.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL0XsiFcRDp6Hpsoak8OdiiBMJhM2UKszNTxoGS7dJ++ 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_ed25519_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL0XsiFcRDp6Hpsoak8OdiiBMJhM2UKszNTxoGS7dJ++ This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_rsa_1024_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC458k0igFgcvkrDjUKo0gIgPW0+7QEPck7/DXIpGAkHzHDTQLu7/IzxBDCL7iQhF2eQwaR/s9SXjs2DV/OT3SXM3QjJO4PS3nHkzfP7Zjqm9LGSicBgR8x5LPmxoNVA3qOInMP5xhhgbKYYusuBMAlpEgq/T9uCvLIuvRnGhBTDw== This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_rsa_1536_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAwQCkYHef/kFhdtEwG4YZfanYY92cmDX9gqw7OE2dxMyQyj5Eyn/ztaIIERJGv2BG7TlEi8Gd83wFvSrqk4diHycQm2FbLtp258buy/PYCY3cvxYL1imUxt6aPeLphzxQpt2dSwCom6M5Dq/sxB4YV+lvVpWZEuIFzsfGtqiLO7U4x80lXC1430MtN5Z6nYTOVtktYkFJCmMSThYice6L4RHdTNejQZlmKGfLEKeR3wTwBIfLO9XFkSlHz2Uk4q/Clr0= This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_rsa_2048_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdxjN0+2xc7pdreBqYc/mDRC8OuWrS7wre5fEUBpylorQjbhtUVUU+Ox/6RSZbbeNg3EvcWTT7NQY71w7LGSgiNK9bgU1K1516zpvY0F2IGgx9xZvvIJVELSXQRFgIBSFesamVZvJRd5+szgq1jmMTibo9fyPJoZLPys5SFxPHDeyKUz8lzYHVmuOhzOhSjSNHQGVP0Hoe8N7dQaFU40A8JSsUh567vgjXlts13KErGaBey244oe4J+xlwzWHsigAj1DoCGMaDdSQ8WfE/BEUJq5mNEp+GxQe4hHMwbbg2RJZZ8kFRKOiCUicQkVCFA3yWao+5odcgyI03sqfnrgkb This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_rsa_4096_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCjoUqRX9tJ6YVj+E7Y0D9oy2SCUtoLmNqovMOc/bWB+Fg8GgEQNp99XvH6p+/XDIY4Mm91Q9o1rydWnAnHKs/9LOySpOUNbbflDsFstN8ZrqqyuPiIoZqawQvYexk0/0ZyNckA9fWAKZDJom1N5DutBK55Dgq40yHkpAB6nlqdWLY8Iab0V4LKTtNBGydrdPR8A10I54kDkFxx82NOZNJ9hq7QYYJDsL5Le/fB+PqIksP5qo2lfaPJe9xtx7m4+FIJRQQOLrFef/K0tO1Zv0U5dVNHmWWhyTN4tnwoEX4pZ7YkHHemcBFiX4xt70/zpvG5cuIPMwJIA5P72w7A5ifKSoTLrkQGy7yW/ezyxrm42Ng5jNQb+jsiuQhcnU/IKip7xO1K2zxSPhcwDRRIPGGwkCfMrr5PG4EVn9PJCeW/ydQpOm4ysJay8AZxyQohP1jRasus+qUGovOHD6rjiDrg0lDpJY7Cf6EtPU/Z0GFyf5WY4952lRiawIXLi0VOAexG/s/n+eIiwTiFOtnmURjRjLJ3TlkVy/C9Iw6TBaJsF9DW/MN4BeYMSAVodVjqWJyLQc7ulbymguMuNnkhDjQ1XR0SXNw9fzT9lE+NC+EOwxysOu+y9ErV6lA8mExwtmu/a9zHUnyunXUz8ZVFh6mUhP0Tc7X/F/Q2XTTxzzC4jw== This is a test key! 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/authorized_keys/ssh_rsa_768_openssh.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAYQDYebeGQFCnlQiNRE7r9UEbjr+DQMTdw1ZHGB2w6xD/DzKem8761GdCpqsLrGaw2D7aSIoP1B5Sz870YoVWHn6Ao7Hvm17V3Kxfn4B01GNQTM5+L26mdYs5iJNGu/ltUdc= comment for rsa/768 key 2 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_dsa_1024_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBtjCCASsGByqGSM44BAEwggEeAoGBAKU8/avmkFeGnSqwYG7dZnQlG+01QNax 3 | u3F5v0NcL/SRUW7IdpUq8t14siK0mA6yjphLhOf5t8gugTEVBllP86ANSbFigH7W 4 | N3v6ydJWqm60pNhNHN//50cnNtIsXbxeq3VtsI64pkH1OJqeZDHLmu73k4T0EKOz 5 | sylSfF/wtVBJAhUAoabmyx1YsDwfo0r1G/HuEx0uzwUCgYAJD1PMCiTCQa1xyD/N 6 | CWOajCufTOIzKAhm6l+nlBVPiKI+262XpYt127Ke4mPL8XJBizoTjSQN08uHMg/8 7 | L6W/cdO2aZ+mhkBnS1xAm83DAwqLrDraR1w/4QRFxr5Vbyy8qnejrPjTJobBN1BG 8 | sv84wHkjmoCn6pFIfkGYeATlJgOBhAACgYAHYPU1zMVBTDWru7SNC4G2UyWGWYYL 9 | jLytBVHfQmBa51CmqrSs2kCfGLGA1ynfYENsxcJq9nsXrb4i17H5BHJFkH0g7BUD 10 | peBeLr8gsK3WgfqWwtZsDkltObw9chUD/siK6q/dk/fSIB2Ho0inev7k68Z5ZkNI 11 | 4XOwuEssAVhmwA== 12 | -----END PUBLIC KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_dsa_1024_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "1024-bit DSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1kc3MAAACBAKU8/avmkFeGnSqwYG7dZnQlG+01QNaxu3F5v0NcL/SRUW7Idp 4 | Uq8t14siK0mA6yjphLhOf5t8gugTEVBllP86ANSbFigH7WN3v6ydJWqm60pNhNHN//50cn 5 | NtIsXbxeq3VtsI64pkH1OJqeZDHLmu73k4T0EKOzsylSfF/wtVBJAAAAFQChpubLHViwPB 6 | +jSvUb8e4THS7PBQAAAIAJD1PMCiTCQa1xyD/NCWOajCufTOIzKAhm6l+nlBVPiKI+262X 7 | pYt127Ke4mPL8XJBizoTjSQN08uHMg/8L6W/cdO2aZ+mhkBnS1xAm83DAwqLrDraR1w/4Q 8 | RFxr5Vbyy8qnejrPjTJobBN1BGsv84wHkjmoCn6pFIfkGYeATlJgAAAIAHYPU1zMVBTDWr 9 | u7SNC4G2UyWGWYYLjLytBVHfQmBa51CmqrSs2kCfGLGA1ynfYENsxcJq9nsXrb4i17H5BH 10 | JFkH0g7BUDpeBeLr8gsK3WgfqWwtZsDkltObw9chUD/siK6q/dk/fSIB2Ho0inev7k68Z5 11 | ZkNI4XOwuEssAVhmwA== 12 | ---- END SSH2 PUBLIC KEY ---- 13 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_256_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjhAhdfoyDQ1YPo69apv8vzyxOznq 3 | GqzmxeQCHq+v02V4VzNqKMJTKf/2ovP8J9aDWmqPcqA6IVngHJPfFh8kiw== 4 | -----END PUBLIC KEY----- 5 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_256_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "256-bit ECDSA, converted by miko@YUE from OpenSSH" 3 | AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI4QIXX6Mg0NWD6OvW 4 | qb/L88sTs56hqs5sXkAh6vr9NleFczaijCUyn/9qLz/CfWg1pqj3KgOiFZ4ByT3xYfJIs= 5 | ---- END SSH2 PUBLIC KEY ---- 6 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_384_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAElkIXKoCJTaiQl5853KeGkwYhqRteSSbL 3 | BtTOXiN8B0JRpCD6UUNWs7kZKTg2URF3yIWpP779+/J2wJzaCROvYfscItVuIR7M 4 | +KpcGrR1yTMHKYrYsIcz0GQm246biGY0 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_384_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "384-bit ECDSA, converted by miko@YUE from OpenSSH" 3 | AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBJZCFyqAiU2okJefOd 4 | ynhpMGIakbXkkmywbUzl4jfAdCUaQg+lFDVrO5GSk4NlERd8iFqT++/fvydsCc2gkTr2H7 5 | HCLVbiEezPiqXBq0dckzBymK2LCHM9BkJtuOm4hmNA== 6 | ---- END SSH2 PUBLIC KEY ---- 7 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_521_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBZN+bK7Xj/bcAsGCr1PaLzAYu+w3e 3 | pRAT6xWjBG9AmXWeTAt50qn5Rh0VpEm1KY3T3Tu3GEDaSvWFx2zUjuYW1NYBWYMo 4 | hhccCWGM/DQI3nQVzIMh+CVqZSuRUJuT+XL2oJSLQvapCoqFF4QnOu2DGAbYr15V 5 | HtD4CKupGx06m1+vuTc= 6 | -----END PUBLIC KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ecdsa_521_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "521-bit ECDSA, converted by miko@YUE from OpenSSH" 3 | AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAFk35srteP9twCwYK 4 | vU9ovMBi77Dd6lEBPrFaMEb0CZdZ5MC3nSqflGHRWkSbUpjdPdO7cYQNpK9YXHbNSO5hbU 5 | 1gFZgyiGFxwJYYz8NAjedBXMgyH4JWplK5FQm5P5cvaglItC9qkKioUXhCc67YMYBtivXl 6 | Ue0PgIq6kbHTqbX6+5Nw== 7 | ---- END SSH2 PUBLIC KEY ---- 8 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_ed25519_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "256-bit ED25519, converted by miko@YUE from OpenSSH" 3 | AAAAC3NzaC1lZDI1NTE5AAAAIL0XsiFcRDp6Hpsoak8OdiiBMJhM2UKszNTxoGS7dJ++ 4 | ---- END SSH2 PUBLIC KEY ---- 5 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_1024_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC458k0igFgcvkrDjUKo0gIgPW0 3 | +7QEPck7/DXIpGAkHzHDTQLu7/IzxBDCL7iQhF2eQwaR/s9SXjs2DV/OT3SXM3Qj 4 | JO4PS3nHkzfP7Zjqm9LGSicBgR8x5LPmxoNVA3qOInMP5xhhgbKYYusuBMAlpEgq 5 | /T9uCvLIuvRnGhBTDwIDAQAB 6 | -----END PUBLIC KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_1024_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "1024-bit RSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAAAgQC458k0igFgcvkrDjUKo0gIgPW0+7QEPck7/DXIpG 4 | AkHzHDTQLu7/IzxBDCL7iQhF2eQwaR/s9SXjs2DV/OT3SXM3QjJO4PS3nHkzfP7Zjqm9LG 5 | SicBgR8x5LPmxoNVA3qOInMP5xhhgbKYYusuBMAlpEgq/T9uCvLIuvRnGhBTDw== 6 | ---- END SSH2 PUBLIC KEY ---- 7 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_1536_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIHfMA0GCSqGSIb3DQEBAQUAA4HNADCByQKBwQCkYHef/kFhdtEwG4YZfanYY92c 3 | mDX9gqw7OE2dxMyQyj5Eyn/ztaIIERJGv2BG7TlEi8Gd83wFvSrqk4diHycQm2Fb 4 | Ltp258buy/PYCY3cvxYL1imUxt6aPeLphzxQpt2dSwCom6M5Dq/sxB4YV+lvVpWZ 5 | EuIFzsfGtqiLO7U4x80lXC1430MtN5Z6nYTOVtktYkFJCmMSThYice6L4RHdTNej 6 | QZlmKGfLEKeR3wTwBIfLO9XFkSlHz2Uk4q/Clr0CAwEAAQ== 7 | -----END PUBLIC KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_1536_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "1536-bit RSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAAAwQCkYHef/kFhdtEwG4YZfanYY92cmDX9gqw7OE2dxM 4 | yQyj5Eyn/ztaIIERJGv2BG7TlEi8Gd83wFvSrqk4diHycQm2FbLtp258buy/PYCY3cvxYL 5 | 1imUxt6aPeLphzxQpt2dSwCom6M5Dq/sxB4YV+lvVpWZEuIFzsfGtqiLO7U4x80lXC1430 6 | MtN5Z6nYTOVtktYkFJCmMSThYice6L4RHdTNejQZlmKGfLEKeR3wTwBIfLO9XFkSlHz2Uk 7 | 4q/Clr0= 8 | ---- END SSH2 PUBLIC KEY ---- 9 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_2048_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3cYzdPtsXO6Xa3gamHP5 3 | g0QvDrlq0u8K3uXxFAacpaK0I24bVFVFPjsf+kUmW23jYNxL3Fk0+zUGO9cOyxko 4 | IjSvW4FNStedes6b2NBdiBoMfcWb7yCVRC0l0ERYCAUhXrGplWbyUXefrM4KtY5j 5 | E4m6PX8jyaGSz8rOUhcTxw3silM/Jc2B1ZrjoczoUo0jR0BlT9B6HvDe3UGhVONA 6 | PCUrFIeeu74I15bbNdyhKxmgXstuOKHuCfsZcM1h7IoAI9Q6AhjGg3UkPFnxPwRF 7 | CauZjRKfhsUHuIRzMG24NkSWWfJBUSjoglInEJFQhQN8lmqPuaHXIMiNN7Kn564J 8 | GwIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_2048_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "2048-bit RSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAABAQDdxjN0+2xc7pdreBqYc/mDRC8OuWrS7wre5fEUBp 4 | ylorQjbhtUVUU+Ox/6RSZbbeNg3EvcWTT7NQY71w7LGSgiNK9bgU1K1516zpvY0F2IGgx9 5 | xZvvIJVELSXQRFgIBSFesamVZvJRd5+szgq1jmMTibo9fyPJoZLPys5SFxPHDeyKUz8lzY 6 | HVmuOhzOhSjSNHQGVP0Hoe8N7dQaFU40A8JSsUh567vgjXlts13KErGaBey244oe4J+xlw 7 | zWHsigAj1DoCGMaDdSQ8WfE/BEUJq5mNEp+GxQe4hHMwbbg2RJZZ8kFRKOiCUicQkVCFA3 8 | yWao+5odcgyI03sqfnrgkb 9 | ---- END SSH2 PUBLIC KEY ---- 10 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_768_pkcs8.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHwwDQYJKoZIhvcNAQEBBQADawAwaAJhANh5t4ZAUKeVCI1ETuv1QRuOv4NAxN3D 3 | VkcYHbDrEP8PMp6bzvrUZ0KmqwusZrDYPtpIig/UHlLPzvRihVYefoCjse+bXtXc 4 | rF+fgHTUY1BMzn4vbqZ1izmIk0a7+W1R1wIDAQAB 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/pubkeys/ssh_rsa_768_rfc4716.pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "768-bit RSA, converted by miko@HIROKO from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAAAYQDYebeGQFCnlQiNRE7r9UEbjr+DQMTdw1ZHGB2w6x 4 | D/DzKem8761GdCpqsLrGaw2D7aSIoP1B5Sz870YoVWHn6Ao7Hvm17V3Kxfn4B01GNQTM5+ 5 | L26mdYs5iJNGu/ltUdc= 6 | ---- END SSH2 PUBLIC KEY ---- 7 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys-invalid/ssh_ed25519_openssh-wrong_type.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAC3NzaC1lZDI1NTE5AAAAIL0XsiFcRDp6Hpsoak8OdiiBMJhM2UKszNTxoGS7dJ++ 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-3des-cbc.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDOxmrbSd4tw4r+XNX6XPziEMZ47NWr405J81yZGdqhqpftvmTadMXCUi3RqrYVeRASmLQyTj2NAKB4hm024gB7ObkYD3rkeDO04J7aGEzHDKCSIH/uRavFOx9SrOVyxj2D6rBLr35KOqq8Vw6nkPTlrEit1+VK5+6hS0e1NJHm1o2o/DSTQyDV/p4tpud7VIR/rZfHBeSiwY1AfhyJFx7PiNW1cmDeT4+CGr0iIehS6j0ZSLbNQBt8ngFtcs4ihk7rB0WspTSFFF2OjAguv0lxRalIQxTFb/fQpgihdST2dCL/GZ/kN2F+iS3GrlEW8BJIchRpgmNa6UCnJxPdVu+iwCSiBEb0gBrWC3qdVpJ+5S/zRJWfsiIdyRvNQxxhi6Ok8FWEkxrRXzSbHRBErYO4RzLZ0hdglRWC5JZGGnzChxZFnLf9iCzYfn2kV6Pa6BjF0nk4XKUG8WhvpvEVG9fcH6Bb9Ua6BWGGKt8lIBhaNptAmYEmMvHx25t0f6yssME= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes128-cbc.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxRCdPxlhZhS03U/Y6Fv5vR/AaBpGi1UKaH5cyfNGp75ywZJYWcXzp7fCesPwdTzDakqK31XMGQqGlavfj7AkW++iXC9aVmACg/RQeoSHCJotSeBnJZH+MTGJ1iskcfmzDiEOAqzWegh8hakj4RQQKznvhqoZ31B4K+4g7Hwu+srnPjQabDDmV2JoF8Ns7kAA4Uq+dJTaRJasJmPR5Kz3Gy1hWwTZ92LWdhCiNAM2bLLcERpTaB8FG+J8qNqrUp41I4u4B8zZPPZVK0NnYqAZt472CywnfRRFoZgM0zBw01w26manTvyFOadFngPOlvmu9smioKVU3FIlz/GKQn9U9WqMRURu7Vw2W7FwSBfq/ssfXAa8OkQIQHaq/+MOSt7hwkXKY9XgmHlN6ob6hoIql+rEHjxnpwXzl9aNiSEqqFMGBpvyXeUhjcCYFPsNyxshjNdMcKk9MrRQLPrSWP8uNTO7UZxktSBAgIoRJt3LZjkNm/2zzR1icP6NeJZLe+H0= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes128-ctr.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4y4UcYFe6sz/jLqBIgCoZWTneQ+NCOHz7+r6AgY8CJdt+osvXEv3FzpuSjrMkkY9ftcn/NWv3r6EFD4JuNzPecjqiSnunCM6v1+uOAsmYI8S3YmUoRAZOWhEgWsf/4QWj3cjNcJo0MPTYfJsM1LgXt/g85tRy1KsdifHSiJcgyK4piGqJYdw0BiUKd1Gj+KwglddbVEVqZDoaUYo/Wun10RAVzcgAWhglrbQLc1/U9VgY9zFIy5HOjJ1g87DQg2ZycP3clyLbR/RuHK6zyfuXna7yAqG4Eddtr1JBYWqCndBik5+unzD0vP2nNVHlvnQjzYfVxHcsP5X52LhI45GDfJZtbLsT14DYe9tXiaDIyMUpuuE7s0n2M+NI+5YOoDq8hzJwY+31T4/ZybIqs6HJve8XDFD7SwbUnYTlRO31AAELxTaq/t+oCCi0fHDfw+ugFYcEVb1yjpUghKMJsH21JNVYor0wxjX0Onq1Y109bQn6lMB5iB8cMheRiz/PYmU= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes128-gcm.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCp8bq6umYo3MZaQ1hg2kxJgWTA0O66Gq7ynGRtdm7xsSQX18QqXikKqqhez8z5fjh1gHVT8TyLFdIFJieSvKjIAQRDOw/cWGQpfbnPzr89ePuCY6Nzu37EvrN2W7ymVfOxvAYUkS0THv1/UoY3rC++1bX2P2cgOrZMp9ITrZfzXFxaOLuB34T+Qm1seUWJJJtSJqrxrAAXYYS/xDLx7AiD1zRjjwvBoIHZO2mpLz2YeB/6XrFWREIDaicUYrCXNBwZwV5nevaGgCjHCFKsjcQIzXFV/bcppwkaPSOgNfZCS9oDKUx1wj+yuhjCVydC4q3WJzwPK3ctN2wAqJAMR7TWih3j1kfHkDbV5vOFX4QYwqEZNTi8BWblGowhRdqINzIC+tret0VcojAWuvKt1p3q53k0YvCxSp7S78duv+NfoOHEorWQuXo+5RajQ3n2j1icRa0JxVDe7e/OnxY2Xzg5RISGV2JwqX9XTjfJCF64ytCneEc8Gqnf53aFAKFH4R0= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes192-cbc.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDtWi3Z2q4/wtt8vjC9dN4Ma20U+rjD1uxalqmWpSPRpxGi/cB0qvGz0KhvGLbQrU/8djSkjCrN3Wj+AyWMnmMEedPM7ezD/F6B2I57QnKkv8J3rEq+0gKAo+W1FsFc08m9rHDxvoSVHv+OlWtk+IU1vn6eFmptfax+1ZMlBjwwbr0MCoarP9UzXhP1wCPUGZqIJJlJxu3IR3YE/1qJ/TQtxJaMyUrMwRdH9bjjMWEhobkmLOuM2kiuMXRbolwHXsvSPwfhvDWkqzdTK07xyet5B4RJJwAVolUTturkp9jbHkv4nXhrcM22D6NoP/h5GpgraGmU+SdALypWilArhU+uRROEQFXdabMhqKkzRNl8oDG2lIv5lYjkQ2RhEvREdA+PnSwtjpjtdBxZesvdu1cQqE5MvAzlqCTqf+oNE/8AqRgEevyLwamjkOPTz+IhyQs/m9uUrY4otje8kF8RJLYhH0QCR7Tk+uHD2Gbk+MghCMnlklaGlXaXm/+Pp6i+ync= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes192-ctr.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQD6r3dSEicm7KBlQpO4xF+ZCthECwvuKaIOU3QU2VWqSsq5YpxnJbhba8NLZuc73mS1D8t2xGQHkjYO7pWzcsa3YJAKL5NC+qtc98Pi/bbW6BrXfqnajU1IVyOXtKJUclG6TFYMk/3xgkGqeu7NXEaUUjJNWqNnU4Gr4FHzK7vK2IGidi0SCt2Q5OypGB31/pgI9nR2tn8oFkl21911tQ5rOiM6jBEQmMgIY7Bua8ocQm+TBTHaQDA8tATQdbkqMpBjl/VaA4mByomdj6exk+/RDIwp4wg0kaCcxZq9696xy2Yq1fZx/nS5Un+lVQZc8FJ8tCGofPobjTiDiFUS5+rbbeSmVZepBgbjTuFsUndWqZ/tGbrp5tGMqz89M76yAZoOvC2z6SVzbC2JItWYAfaZHrB1THunWr9XFDrB0a+EaMu9zcab7uVuZvfSPyLWb7mjvCRZxc6WEsFSTHZfEa4yPLWTC3D9Y2SfT+P1Vj2OEIYw955DeOboJhjjmghTM= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes256-cbc.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC9fAOIIsW2S5tTCLh/Bd/9v7fQBZ673gXHHk5PyGilWchnLM2RRX4xgJ3lf+iHYdHHcHJo3w3d+48iO22tdplKOmsuje2wETxQVLTQ7pOlMRDXZXA1Vnia33d9GHFoas682FXGOtzEu6lVXM6U9KsvM9JA9CD1ddHg4XhVDXrDPgrs0Dvf3GyxuUkmFioKVIh8cj20AXLiaEhMjEygs0gOwEoPAmZyswe3Kjf2muOsEqErGYZajPKG2lBJUehlBMfDEcZTsqo9lG/7HszNTXDVJ2wMTEir7S7wtcB1qO23hwfT5IC6Lz/WhLFNt6x66OzL0S5j8zjLqkQvriwMQAIj20LjUs8yvvUtcYLPXBS9G4krkUwZ8LVrZfFPOOYcY0ssJj77hIzwe3AEJ0R24guG8aYz9ZeYzmIVW7yjIS+SYNhNky+AbsKaK52ZLaeruqnU39z3diojVTNeBdG/7wPgRye09bSsgTvRSMtYqbQY1ZyE8Wb4Qtx3kNT2bs1DL3E= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes256-ctr.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC1U21x/saMfUgICTl0ZFkK5KDq3eeKHtR44xkkbcSmC5zxXxUO4c0EofKLx0YMDp3U+ozUydc0ZJwVF5iXVsiGlPSkgmGntrCeT3nA9YC8rEx/EE60DPSOU7we9eG8GmR2DL5uM2bmU9kx+Bh7Q9sno7PpUufBS8CLAADdv6Dro/pVTI7FIkrNGY/SD0DQtGm0cBjM2fA1b/1lUdQdznM5T/1Yn7fx84oxhJaJHsIXpU58lovieWPq/NT7rTG34Lz+MU/Ng31mFyamsY4IFFeq9AlDNWLtjOeEMRdNxDUbTGjT4ZjZrA7SuL/fGhl++rrGLpFw0f3dnR9AdbGu5UlM+6Kg3adlCkypVgPmhF6FVpgqWsMabC/tCeuMI8ajKizPRdGxvxr2DTkTCkJEtzdLUk7ifImIdL4m1OM3NnDpjZ/WJTlkU1x75T0QIy8HafrpRIRphXrpdwyt1E/OVWEb7suhWaYKxE9xXPTsFPDJi20/rGRup+jQ78JdDm8t8vE= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-aes256-gcm.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCodvU8nAv6a9nBw2XgPchNvzcx+ITion2Xm8uo+TKetw4k99Q04iT6MT4qzhjwkUHlIA4lfSLXRphSoy27oBpYwqctveZ4i/xR3+tt0WpGDHXLrB9EiCH1nbO0jRdl0cUDArNcXvAEI1T9C88Eqh37JULulgEYjdhsE2gNirXqlDBqj/9kVjULC57YTVrz8P0H3hwMcAqXXafTm136kTNJij1itVlWDeev7EAcysNTnhKgNRLhtE+3SvWUxEBb/oV4nSWeSKFnP1vpk0faE8H2norYDJEy7NxPSIF7z57WRiRU7NnuURHSpWPVJnyf0x1lq8OrRWEf1zqPR6bkgsJ2NyovR+KQIdd73+CDWbMHza+acDjWLfWIfpMmRE5T1UlcGZnUS8j3xQ09szuJdeSVOgGUQNb3m+ixGrXMyYonMiS+9BHqVxFnJZyGCDw4l/BCM5ERLrtMQsaNo+ZTy1nm9roSt/GtMgdlom/ZOqurouWwH5oT7DjiH3mta6TBCa0= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/authorized_keys/ssh-rsa-chacha20-poly1305.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCL+P6OOxPshBtH7Z2UuYyPAtxjKkY7iNNQkkTr1MDPpxmoT5Z2whASASlMaSYxyh8XuEoFg60atbd0LaFELALZFBaKa183NhYoDWVROzrHFoYXmwQ4P+jHboUWcbY6A0Y2WDx0RuYaKKDPff8wJZxHybjB9YtCm+wKjZJ7O8k2sFa+VIZOzYL7mbn23w6JyV4BF8T+vnYRJMXI8SP5S8Kri0uBq2dOtDd3Fg0FmCBN9JqiXf/Dwdy2rQ0aJyPf8f4eTnxesUaEkkht1LUZLS4txLXfKOeL6ddzTVsmV/uyngbC9Rd/Sq2jIU4oflimW9cdhMZP/WBlVJ2FO5NM1UwAc8o553vQIFt7cX6S4IPIjZxGenW43MJ9prOFGwOY7Jk/Ojr8pTm1DxNiYQ+S0HuyUJw9sbbjWnfA0uiER6NpJkodmkrZmv8gmDo6PWUOpLjkkDqL/hOHvE7NQ+4gYYjJmBN+O1EkYG1/mMKVshNFIbR0+CMkhXFq828yLM1C5qc= jaeckel@draupnir 2 | -------------------------------------------------------------------------------- /tests/pem/ssh/extra/dsa-public.pem: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "1024-bit DSA, converted by user@machine from OpenSSH" 3 | AAAAB3NzaC1kc3MAAACBAKU8/avmkFeGnSqwYG7dZnQlG+01QNaxu3F5v0NcL/SRUW7Idp 4 | Uq8t14siK0mA6yjphLhOf5t8gugTEVBllP86ANSbFigH7WN3v6ydJWqm60pNhNHN//50cn 5 | NtIsXbxeq3VtsI64pkH1OJqeZDHLmu73k4T0EKOzsylSfF/wtVBJAAAAFQChpubLHViwPB 6 | +jSvUb8e4THS7PBQAAAIAJD1PMCiTCQa1xyD/NCWOajCufTOIzKAhm6l+nlBVPiKI+262X 7 | pYt127Ke4mPL8XJBizoTjSQN08uHMg/8L6W/cdO2aZ+mhkBnS1xAm83DAwqLrDraR1w/4Q 8 | RFxr5Vbyy8qnejrPjTJobBN1BGsv84wHkjmoCn6pFIfkGYeATlJgAAAIAHYPU1zMVBTDWr 9 | u7SNC4G2UyWGWYYLjLytBVHfQmBa51CmqrSs2kCfGLGA1ynfYENsxcJq9nsXrb4i17H5BH 10 | JFkH0g7BUDpeBeLr8gsK3WgfqWwtZsDkltObw9chUD/siK6q/dk/fSIB2Ho0inev7k68Z5 11 | ZkNI4XOwuEssAVhmwA== 12 | ---- END SSH2 PUBLIC KEY ---- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh/extra/ecdsa256-public.pem: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "256-bit ECDSA, converted by miko@YUE from OpenSSH" 3 | AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI4QIXX6Mg0NWD6OvW 4 | qb/L88sTs56hqs5sXkAh6vr9NleFczaijCUyn/9qLz/CfWg1pqj3KgOiFZ4ByT3xYfJIs= 5 | ---- END SSH2 PUBLIC KEY ---- 6 | -------------------------------------------------------------------------------- /tests/pem/ssh/extra/rsa-public.pem: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "1024-bit RSA, converted by miko@YUE from OpenSSH" 3 | AAAAB3NzaC1yc2EAAAADAQABAAAAgQC458k0igFgcvkrDjUKo0gIgPW0+7QEPck7/DXIpG 4 | AkHzHDTQLu7/IzxBDCL7iQhF2eQwaR/s9SXjs2DV/OT3SXM3QjJO4PS3nHkzfP7Zjqm9LG 5 | SicBgR8x5LPmxoNVA3qOInMP5xhhgbKYYusuBMAlpEgq/T9uCvLIuvRnGhBTDw== 6 | ---- END SSH2 PUBLIC KEY ---- 7 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ecdsa-521: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABDPkTaUCD 3 | 8+sCQ1AWJVXCBTAAAAEAAAAAEAAACsAAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlz 4 | dHA1MjEAAACFBAAn3wQoJ/ZfNuF2xsfUh8kIZ+UXjzW1vOgTqMA6bpLYN6sVccJTFII4zO 5 | RSM+gEFymy/P4INPTcwTc0B4zjpwzcmABsNnUTf/N6DZBmcFbM0zTuZij4Ck/rXRfrVfMI 6 | kr2oVcvqj1lKZcfKwHwK1dTHy9xHveKB4LkPl7i/VrWNDbYxOQAAARC7v80llW0VqWeSp3 7 | VgKXZtdSXD1XW+NDYmmbwR5cBhqqnniBUqXb+hlPc/jFo/Cb3IaLzumY8C8X4+cjQZa7i4 8 | os69nB/mc1FpfQLmu/7nW16mN/a14VMrZS3Ub6eO4DUYxfuSgLZ6vgBc5CKpH609Z4cpnv 9 | lONyI3dhwq+29ruFFrccerzMoYRBLDGis2MH/U+AJEABQlwNeMp3DCY1+yAKNjz6dmzyP0 10 | mzkUhlTgqXCrh5lGdImK5crb+A+8QJIGkZtXz+N7rhJxKqBudMyIWls9bS7eCTkoazM9IB 11 | 3tBZvpCl2msrGxemTaeUeFWoZjlALOXgKQKN7pBMJfyTLF5Q33GDU5ZFVtyq/V0kBsFg== 12 | 13 | -----END OPENSSH PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ecdsa-521-plain: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS 3 | 1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQAk8/IJIoDcA9yeNTV52Em3IE+4e1G 4 | nS8BHsmAbH48ESjQljooUWSl5ZER9zzr88nR8Sd/rpQNf3wtKvD7xqok8F8A+vp9pv8jd1 5 | RodyVHeLKjGkL6uNki3a8fvotA1hPBjEQa/19WaSmNk3CBdsBpqltXwYgQxZn3CwS51BPo 6 | KsAj8bMAAAEQ5btEZ+W7RGcAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ 7 | AAAIUEAJPPyCSKA3APcnjU1edhJtyBPuHtRp0vAR7JgGx+PBEo0JY6KFFkpeWREfc86/PJ 8 | 0fEnf66UDX98LSrw+8aqJPBfAPr6fab/I3dUaHclR3iyoxpC+rjZIt2vH76LQNYTwYxEGv 9 | 9fVmkpjZNwgXbAaapbV8GIEMWZ9wsEudQT6CrAI/GzAAAAQgCRG0oaSe873pTZZRVmTaJm 10 | 1275E/qlCjN0eddd8osii6BPTICINvKU5C74bMkdR69NNxpWOxWfj3WE9grM6cVA1AAAAA 11 | tsaWJ0b21jcnlwdAECAwQFBgc= 12 | -----END OPENSSH PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ed25519: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABAMGtBgdw 3 | V5lwgRRqXm8vD/AAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAINmcW0NUcZtRAxOC 4 | p99u1X65FTEP4rIyj6mp6NUxGXZuAAAAkKYfVXz5BP6ZUThjdsyEBPoeXTpKYD98yt28Ab 5 | 9kk3hSwgfK/7BWp4+Q9A6YK477kBfn8GRvfb9zHL2e/Td5Kx/hzrhjPWzfzGwaChDegWWv 6 | yygQgdBV4ye7o7ir9KJpsqLxNQzKcy8DydcAJgVGkopFAhR77HuDTPymPFv7o+lyLIh7/v 7 | wxHkZDd4TvKXzpGw== 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ed25519-aesctr: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBYWWGgpa 3 | +aAsoGsV6JUqJ3AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIEVemuQ8wNLBW205 4 | dbGF8l0DjxP7xLIWvmollyOm+9RoAAAAkK4XJkJqpHsZ0rYuwfnZu02gpmy3GnNmexMcyU 5 | SEtgIJNuTJbIlIn0oGBNt5xIWN6hweHq34gPvb6q9nbxgb6eS5WBFJI7+4Xng2hOrZ8rTm 6 | WR1YJLCnw4zk8dKKDehik+K6psMb5l7JqIUvu/F95NzO+LZXErhZ2/e6v2X2mqhSelg9fm 7 | gSe+OOWNesOUNtCQ== 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ed25519-plain: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACCgWG/eiYfhjT1VUcm+IEEsJPvkfPVQG4Pj1P5z8iwYGwAAAJCLGRhrixkY 4 | awAAAAtzc2gtZWQyNTUxOQAAACCgWG/eiYfhjT1VUcm+IEEsJPvkfPVQG4Pj1P5z8iwYGw 5 | AAAEARECjst66ZUM0FBOHx7Kjf4kqAvQupHtxkMhs02jNeHqBYb96Jh+GNPVVRyb4gQSwk 6 | ++R89VAbg+PU/nPyLBgbAAAAC2xpYnRvbWNyeXB0AQI= 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/ssh/ssh-testkey-ed25519-pub: -------------------------------------------------------------------------------- 1 | ---- BEGIN SSH2 PUBLIC KEY ---- 2 | Comment: "256-bit ED25519, converted by root@b9ac43ae19a4 from OpenSSH" 3 | AAAAC3NzaC1lZDI1NTE5AAAAIKBYb96Jh+GNPVVRyb4gQSwk++R89VAbg+PU/nPyLBgb 4 | ---- END SSH2 PUBLIC KEY ---- 5 | -------------------------------------------------------------------------------- /tests/pem/ssh_dsa_1024_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQClPP2r5pBXhp0qsGBu3WZ0JRvtNUDWsbtxeb9DXC/0kVFuyHaV 3 | KvLdeLIitJgOso6YS4Tn+bfILoExFQZZT/OgDUmxYoB+1jd7+snSVqputKTYTRzf 4 | /+dHJzbSLF28Xqt1bbCOuKZB9TianmQxy5ru95OE9BCjs7MpUnxf8LVQSQIVAKGm 5 | 5ssdWLA8H6NK9Rvx7hMdLs8FAoGACQ9TzAokwkGtccg/zQljmowrn0ziMygIZupf 6 | p5QVT4iiPtutl6WLdduynuJjy/FyQYs6E40kDdPLhzIP/C+lv3HTtmmfpoZAZ0tc 7 | QJvNwwMKi6w62kdcP+EERca+VW8svKp3o6z40yaGwTdQRrL/OMB5I5qAp+qRSH5B 8 | mHgE5SYCgYAHYPU1zMVBTDWru7SNC4G2UyWGWYYLjLytBVHfQmBa51CmqrSs2kCf 9 | GLGA1ynfYENsxcJq9nsXrb4i17H5BHJFkH0g7BUDpeBeLr8gsK3WgfqWwtZsDklt 10 | Obw9chUD/siK6q/dk/fSIB2Ho0inev7k68Z5ZkNI4XOwuEssAVhmwAIVAJjBvZ2W 11 | /WS2qshYFM74ef4InjBE 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh_dsa_1024_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,FC53412322B9C202AED2949BF06265AD 4 | 5 | ohmK3nDoFdyf6WPogk70WVUp2LdIJK4pRaCRp717Idj8veVXn+RLiojuFIcrViWF 6 | Hlmzold9A/pYegoXEwcKJCvoJm9UZf0sfBANMhe/MuauwyRelDnnA4OPoeyHnTV3 7 | HV6nHE/p0sJQtxDJ+QTG4eMHjX1MgurMVY+9W3iuu3vrWc3iBa8O61+AthNSWSWa 8 | upy6t40Yu5BIwZYEyOY1nyJY8OWUvMj5uc3zTACa+Ua4GJ5L0eY7H5N8gn5ifN8W 9 | itQBB2TEOjJc5ixTgJf/G+bZikLiK/7xJGAAlecPa+TWCy/c/rXZA4acBn0Ax3PZ 10 | bZT3m5/9Xa3d/BIkScwSHLIyM7K/wL2DnFnNY2xZempIYW7FFnpexTfBOilr1YoY 11 | 2EYxuVZv8KcACRv4c6yC30MEE6r6MiemvvIwgs2HCbx+krpr0Dvxqxo3IoapSdO4 12 | CrxGGu490+v+ZqTQZH+pfAmrr8RdMFEwVdRNT7UN+ZwaqD/bAMlcUjIErNq5/Yf9 13 | hSl6Bi3ekOlJMyt53N/rpAa7f4RNPAuOBsHkIavCA09jjnmDawZtfChiQg+Lb27n 14 | 6/pfxpqEiejCIttRCW8/dQ== 15 | -----END DSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/ssh_dsa_1024_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAKU8/avmkFeGnSqwYG7dZnQlG+01 3 | QNaxu3F5v0NcL/SRUW7IdpUq8t14siK0mA6yjphLhOf5t8gugTEVBllP86ANSbFi 4 | gH7WN3v6ydJWqm60pNhNHN//50cnNtIsXbxeq3VtsI64pkH1OJqeZDHLmu73k4T0 5 | EKOzsylSfF/wtVBJAhUAoabmyx1YsDwfo0r1G/HuEx0uzwUCgYAJD1PMCiTCQa1x 6 | yD/NCWOajCufTOIzKAhm6l+nlBVPiKI+262XpYt127Ke4mPL8XJBizoTjSQN08uH 7 | Mg/8L6W/cdO2aZ+mhkBnS1xAm83DAwqLrDraR1w/4QRFxr5Vbyy8qnejrPjTJobB 8 | N1BGsv84wHkjmoCn6pFIfkGYeATlJgQXAhUAmMG9nZb9ZLaqyFgUzvh5/gieMEQ= 9 | -----END PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/ssh_dsa_1024_pkcs8_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBrTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIC1Dl0imCfgMCAggA 3 | MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBChlIQxZfVu1iB5k+1BDnkyBIIB 4 | UNCHjRWVQROFx7kHHqLIFP8riXrATt0CbYcyOMaJsFSIoIRz6G9UDBCgdYmVHe19 5 | LfmXMQ+IuXVc0IP3HJnoDNfXvbKmqdEtCZfg2efcLeWNTP+ck2jZmoXsq+tsFl5Y 6 | 4cB/5MEJah9R7/ashHJ22X0VpQBXzqcXaHiqCzudPYOmGT32CD8ECs1dkHVIHQIB 7 | rhqlU4j3Lf+1C/ui1tG6gJRQkKaMmU9Rtgn3BcLf7iKRJZGFcmc1ND13mAqaS0II 8 | aBvsRUao10ItfN5M0llaQrJoC2RFCg/3Mif0VOXJy5XUOE60JOVsLAdNBtaUtDD/ 9 | 8w6qlJf9c7qud2gNN4Ct2viXsOEZ+D83EmuGowIcJABMaHFKdBVfzO9kbUw6HAV1 10 | scIcbCsYzczr5fJXd/wQ5/jWYEvGLZZeFcddkwjnGkg5GZCgxVoC+b272BLqSsfo 11 | 7w== 12 | -----END ENCRYPTED PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_openssh: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS 3 | 1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQSOECF1+jINDVg+jr1qm/y/PLE7Oeoa 4 | rObF5AIer6/TZXhXM2oowlMp//ai8/wn1oNaao9yoDohWeAck98WHySLAAAAsDnMKZ45zC 5 | meAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBI4QIXX6Mg0NWD6O 6 | vWqb/L88sTs56hqs5sXkAh6vr9NleFczaijCUyn/9qLz/CfWg1pqj3KgOiFZ4ByT3xYfJI 7 | sAAAAgawKIwHs3k5dhRXIdHgA+9C6labiTG/M+XejrsL4lqiMAAAATVGhpcyBpcyBhIHRl 8 | c3Qga2V5IQECAwQF 9 | -----END OPENSSH PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_openssh_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAn5/9Dp+ 3 | 3e5/CONojF0m0zAAAAEAAAAAEAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlz 4 | dHAyNTYAAABBBI4QIXX6Mg0NWD6OvWqb/L88sTs56hqs5sXkAh6vr9NleFczaijCUyn/9q 5 | Lz/CfWg1pqj3KgOiFZ4ByT3xYfJIsAAACwdmVChYQWUHPXdRjHIakF5mpsXJCuad7ytcaP 6 | Hfi4EpadWiB08WtFpfmefLLaICd5b7dqJyVqTLOi1euFQOtOOjkn9kFfIUZiS97RgTDJX1 7 | YpVgDr30M4rj83SdeaCsmkp4/cAqF3NGjzljMX6wpaSAFpTsCjnp7Cm4wcT02DRTJ/7/KG 8 | OcvrFyuab2vtVWSBU4lmNs4Xg9GFstkp0ecf5ThbGhQkYkkSILM1sMnBmoA= 9 | -----END OPENSSH PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIGsCiMB7N5OXYUVyHR4APvQupWm4kxvzPl3o67C+JaojoAoGCCqGSM49 3 | AwEHoUQDQgAEjhAhdfoyDQ1YPo69apv8vzyxOznqGqzmxeQCHq+v02V4VzNqKMJT 4 | Kf/2ovP8J9aDWmqPcqA6IVngHJPfFh8kiw== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,9D82B6C20F99509D97334341A49FB673 4 | 5 | v81D80E80YvIpPvV7k+e1TC1AQ4McvsmS3WavIAC8bN60seWSN0Q0A6tD+q6SET2 6 | MHM8Op660IeoZ8BdTfKjH8CwiRlDBiSKl2zpAb+R3wiq9M4XdbG0h5+NiztoErB6 7 | VPeHeML4pd4fFt5fyOliMgw9VW7ZAhH2akXcZumtsME= 8 | -----END EC PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgawKIwHs3k5dhRXId 3 | HgA+9C6labiTG/M+XejrsL4lqiOhRANCAASOECF1+jINDVg+jr1qm/y/PLE7Oeoa 4 | rObF5AIer6/TZXhXM2oowlMp//ai8/wn1oNaao9yoDohWeAck98WHySL 5 | -----END PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_256_pkcs8_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIHsMFcGCSqGSIb3DQEFDTBKMCkGCSqGSIb3DQEFDDAcBAjv0zzuInVzRQICCAAw 3 | DAYIKoZIhvcNAgkFADAdBglghkgBZQMEAQIEEK/HPCZMTSzrXy+kuS337CoEgZBX 4 | nUxLaCttKGUGwBTPAXFmihMfI54wNG3rSPCI1YQ0vs197hGST+V6EChSRVJWG2Zq 5 | 9vbdqsZUGaAqfNwd4e0vq8dkG45+mnYapI9p1QT2+kpFT1Vfgf7BdZiwunNHyT1H 6 | 2bxbs4dy4WNqVjOGIl7HW6G1wuqTTxkEBKuk68aBvJiYDq92ccXzUMuL+kv8eJE= 7 | -----END ENCRYPTED PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_openssh: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAiAAAABNlY2RzYS 3 | 1zaGEyLW5pc3RwMzg0AAAACG5pc3RwMzg0AAAAYQSWQhcqgIlNqJCXnzncp4aTBiGpG15J 4 | JssG1M5eI3wHQlGkIPpRQ1azuRkpODZREXfIhak/vv378nbAnNoJE69h+xwi1W4hHsz4ql 5 | watHXJMwcpitiwhzPQZCbbjpuIZjQAAADgAwOSlwMDkpcAAAATZWNkc2Etc2hhMi1uaXN0 6 | cDM4NAAAAAhuaXN0cDM4NAAAAGEElkIXKoCJTaiQl5853KeGkwYhqRteSSbLBtTOXiN8B0 7 | JRpCD6UUNWs7kZKTg2URF3yIWpP779+/J2wJzaCROvYfscItVuIR7M+KpcGrR1yTMHKYrY 8 | sIcz0GQm246biGY0AAAAMQD3dcLYMCsBbWxLYEQybGLLM6eUtV3ANwkys6qIxd39ZBIJOX 9 | Q6Rh53xIuu1X8HFlwAAAATVGhpcyBpcyBhIHRlc3Qga2V5IQECAwQ= 10 | -----END OPENSSH PRIVATE KEY----- 11 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_openssh_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBsDCK4+N 3 | u8awAwogYgkan4AAAAEAAAAAEAAACIAAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlz 4 | dHAzODQAAABhBJZCFyqAiU2okJefOdynhpMGIakbXkkmywbUzl4jfAdCUaQg+lFDVrO5GS 5 | k4NlERd8iFqT++/fvydsCc2gkTr2H7HCLVbiEezPiqXBq0dckzBymK2LCHM9BkJtuOm4hm 6 | NAAAAOCP90SKhFjPa4AQkGEBDdUgE9XeFIcfF6LMGU9kAvcxQEMzrgNyH8HqB2eaqmp/u4 7 | 5+HuE/MUhS4f245E40AMCqD3RnQuQDw9j+M/YzV15xadIz/Ks2TAL0aKlagyxfzRpJWhFq 8 | g+7V6bu3gc60ktvxM3kNcvc5w9uATfVPc0K4ZqRyYMYBoMoR/MFhwurTK8xBU1bldu1T7k 9 | xWy3N0+OUA6kCx7CPHV2Wf5PTFkX98l5KjU/E4vqrr6z5QpiGcnrIJ4V5C3BjToqdrTR50 10 | QI624LZ3MHyL060gUXgMbSlnkg== 11 | -----END OPENSSH PRIVATE KEY----- 12 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGkAgEBBDD3dcLYMCsBbWxLYEQybGLLM6eUtV3ANwkys6qIxd39ZBIJOXQ6Rh53 3 | xIuu1X8HFlygBwYFK4EEACKhZANiAASWQhcqgIlNqJCXnzncp4aTBiGpG15JJssG 4 | 1M5eI3wHQlGkIPpRQ1azuRkpODZREXfIhak/vv378nbAnNoJE69h+xwi1W4hHsz4 5 | qlwatHXJMwcpitiwhzPQZCbbjpuIZjQ= 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,578CCBDEBACEA1887BD7E416B5644199 4 | 5 | 55LvNV4jryWi7gkFMIRChGAoI18K+3GDuqBnRQ5GosqtVDa94XGZ38UcbY9BEqas 6 | G6S5JgS00UKFUVOvYiwcZ+hGG4LW38Q6eDo82notKIrVd1GSlXkAEInrXNwuK0kl 7 | OTQ3wSRrbjlndB4Taut3YKu3LqpNfAcA1q/KabjXTsLX80tj2ONMrLMikSqut1tr 8 | uKaNYDsxhW+wm1seFKYxUOHJ7M3eRhd7DPL5LuyIXR0= 9 | -----END EC PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDD3dcLYMCsBbWxLYEQy 3 | bGLLM6eUtV3ANwkys6qIxd39ZBIJOXQ6Rh53xIuu1X8HFlyhZANiAASWQhcqgIlN 4 | qJCXnzncp4aTBiGpG15JJssG1M5eI3wHQlGkIPpRQ1azuRkpODZREXfIhak/vv37 5 | 8nbAnNoJE69h+xwi1W4hHsz4qlwatHXJMwcpitiwhzPQZCbbjpuIZjQ= 6 | -----END PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_384_pkcs8_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBHDBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIohYB0kuf38cCAggA 3 | MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBDU9x93yJ82oFkEaN8CK4BTBIHA 4 | 74OxXzZLYTPnedtq5wq6j4Dq4TNtyp6zqKPTiB3nva6QsrO8ekzf+lc4rj3+Tald 5 | GuAIysEKglscGLb4er53tuzceYE0R18yMQgK3/RAHcf9K9UkfeXkAlVTJGAwj0LE 6 | tBD2b/q5B4lf6ofGs+UCbQdJMFEGa4fcPUAeSmp4ftoLoCmizEo2AtnWBoR6DQH6 7 | wUDaC3/xMZpz70CBeNw06KAqO75lQgFtQS5MDz/OvBIu6jaYs46Dpg6qCi+3R35J 8 | -----END ENCRYPTED PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_openssh: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS 3 | 1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQBZN+bK7Xj/bcAsGCr1PaLzAYu+w3e 4 | pRAT6xWjBG9AmXWeTAt50qn5Rh0VpEm1KY3T3Tu3GEDaSvWFx2zUjuYW1NYBWYMohhccCW 5 | GM/DQI3nQVzIMh+CVqZSuRUJuT+XL2oJSLQvapCoqFF4QnOu2DGAbYr15VHtD4CKupGx06 6 | m1+vuTcAAAEY56EKgOehCoAAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ 7 | AAAIUEAWTfmyu14/23ALBgq9T2i8wGLvsN3qUQE+sVowRvQJl1nkwLedKp+UYdFaRJtSmN 8 | 0907txhA2kr1hcds1I7mFtTWAVmDKIYXHAlhjPw0CN50FcyDIfglamUrkVCbk/ly9qCUi0 9 | L2qQqKhReEJzrtgxgG2K9eVR7Q+AirqRsdOptfr7k3AAAAQgDeJefvwF/LJrhUok7XvKgI 10 | WcZ2BoXq2ebXKSDC4GyYElLhjLtz4eIxp0kySKDqvw0RrelJV7dqbiItueACXH5uDgAAAB 11 | NUaGlzIGlzIGEgdGVzdCBrZXkhAQIDBAUGBw== 12 | -----END OPENSSH PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_openssh_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCH9NIw7T 3 | kdQ3+vJ7X7mK9mAAAAEAAAAAEAAACsAAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlz 4 | dHA1MjEAAACFBAFk35srteP9twCwYKvU9ovMBi77Dd6lEBPrFaMEb0CZdZ5MC3nSqflGHR 5 | WkSbUpjdPdO7cYQNpK9YXHbNSO5hbU1gFZgyiGFxwJYYz8NAjedBXMgyH4JWplK5FQm5P5 6 | cvaglItC9qkKioUXhCc67YMYBtivXlUe0PgIq6kbHTqbX6+5NwAAASBhW6bs4n2BCSwr/d 7 | 36a0+zTe0UZIrEPZR1bVKIdUvsGzT6m9vt+X72Qzx+RtatepwcddgU7Y9MnO0Idn6N24DM 8 | YeG75MHMX4kVOpaLDyCQe6xlFJevAJUnsv+cLLih3kv+YSg3sTb3GIYLrxwgngPKkCiG+F 9 | 69gbLh/nxxqbLzl67Xt5Yblmy6lV+sZRJMrNUQT66+2WX4aN2MLfAM0Umaue+aq4ijwV4+ 10 | RNXNwXv/Eyhac2jDQW2+UgdWVSjqNwWmgaSi6m2gXKXIWxggdwgJlklVIQJIPkTZHd5r4P 11 | KI5MysGGZYoFU209vyiii4nY2zckbuyM1j1AwzHwfqIMka/+Zy+h4yVupwljm+NncOy82q 12 | 5x/hgkh3zs+zCkZPPt8= 13 | -----END OPENSSH PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIA3iXn78Bfyya4VKJO17yoCFnGdgaF6tnm1ykgwuBsmBJS4Yy7c+Hi 3 | MadJMkig6r8NEa3pSVe3am4iLbngAlx+bg6gBwYFK4EEACOhgYkDgYYABAFk35sr 4 | teP9twCwYKvU9ovMBi77Dd6lEBPrFaMEb0CZdZ5MC3nSqflGHRWkSbUpjdPdO7cY 5 | QNpK9YXHbNSO5hbU1gFZgyiGFxwJYYz8NAjedBXMgyH4JWplK5FQm5P5cvaglItC 6 | 9qkKioUXhCc67YMYBtivXlUe0PgIq6kbHTqbX6+5Nw== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,CDE898660DF24DC4638A0C291D395218 4 | 5 | ZQz9iMCd17RSwBBzi5dMk4hom1b9KKsfwCMOhfnh5bNtmMmwy00GoCDZgNmAsezC 6 | vQ/t5f0S8ZNtJaUOr2JgQl30wPP7GAWcc7BCJP3Qp8wqqF4ByEbsIvcX5nmIT4ft 7 | RK6SjBEU5HrsZEB5hOyl81C1ZwiqK8QgYOb034y2scT+CunraBOvXKiffuDUs0NO 8 | hyulD92+jmfGlReoLFZjcPFH+H099QvZwKCoQ57hxrnVHsmozRAaPoPdWAMNHrkq 9 | B6OLFk5UMge5Ctolb8JEK8fNdRj5xTNT7Xh99G8edT8= 10 | -----END EC PRIVATE KEY----- 11 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIA3iXn78Bfyya4VKJO 3 | 17yoCFnGdgaF6tnm1ykgwuBsmBJS4Yy7c+HiMadJMkig6r8NEa3pSVe3am4iLbng 4 | Alx+bg6hgYkDgYYABAFk35srteP9twCwYKvU9ovMBi77Dd6lEBPrFaMEb0CZdZ5M 5 | C3nSqflGHRWkSbUpjdPdO7cYQNpK9YXHbNSO5hbU1gFZgyiGFxwJYYz8NAjedBXM 6 | gyH4JWplK5FQm5P5cvaglItC9qkKioUXhCc67YMYBtivXlUe0PgIq6kbHTqbX6+5 7 | Nw== 8 | -----END PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh_ecdsa_521_pkcs8_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIBXTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIj/klIHUYLiQCAggA 3 | MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAECBBA7Rd+K0DxULl6ZqNjQB0QiBIIB 4 | AKnis0COKrS7sq9kRq08FksIbkGJi+i0z/JQ3txzqWIE6NLgAkiZ7EJjk2DyTj5+ 5 | XbNQwZB456Wt+6LxJQesRxL2DYrRZkWbmUIRIurdO0t2b0ibdAPoubEKW+SvhS6l 6 | GihBpM3njn/C6z67P7DekGmWBWdkk36qaBKaYVQsE53sQ2whAtZt2EKrJxjONKBI 7 | z5Yak6S00tgjHTf/DBSVLnh/2Y+Q1uGxmzgJORmtexssmqeVmF/uJhyOcshyIPQn 8 | frpJ6Rw/4aLckxjZ5nwlULFM1B/3hGi/IH+rfcQOg0Jv7WnP/arfQyylWnPq4V8P 9 | ztPdEmIvZ5+OADu9zhbZHX4= 10 | -----END ENCRYPTED PRIVATE KEY----- 11 | -------------------------------------------------------------------------------- /tests/pem/ssh_ed25519_openssh: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACC9F7IhXEQ6eh6bKGpPDnYogTCYTNlCrMzU8aBku3SfvgAAAJiavUZAmr1G 4 | QAAAAAtzc2gtZWQyNTUxOQAAACC9F7IhXEQ6eh6bKGpPDnYogTCYTNlCrMzU8aBku3Sfvg 5 | AAAEDVvPqQHjnRzlV/e2kq+R5egY12xCIw9mJIuVWBm05ZBL0XsiFcRDp6Hpsoak8OdiiB 6 | MJhM2UKszNTxoGS7dJ++AAAAE1RoaXMgaXMgYSB0ZXN0IGtleSEBAg== 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/ssh_ed25519_openssh_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABBS5x65zJ 3 | 2KlBbJ8giugjyEAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIL0XsiFcRDp6Hpso 4 | ak8OdiiBMJhM2UKszNTxoGS7dJ++AAAAoIG2oeen4YUUXyDj3RS2qGYLFhXBg5zjs6eWUt 5 | f/f7o7o41LkZavIAC3bBc8PTPQwXg6QnGtGNkQaHae1Xe1Ca0dFDivSiOtrKSWzvgObcFG 6 | JhEuxuPnFtNBVzpJGxJf3bCXZujIWobOQM5tNgJuVzpUUzWl0yYFUILAHS9AXwVnO1zUZ2 7 | Ddv7nyEbUXx1fGK4WFFBFGFxk9HDDQFxXqfiw= 8 | -----END OPENSSH PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_1024_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICWwIBAAKBgQC458k0igFgcvkrDjUKo0gIgPW0+7QEPck7/DXIpGAkHzHDTQLu 3 | 7/IzxBDCL7iQhF2eQwaR/s9SXjs2DV/OT3SXM3QjJO4PS3nHkzfP7Zjqm9LGSicB 4 | gR8x5LPmxoNVA3qOInMP5xhhgbKYYusuBMAlpEgq/T9uCvLIuvRnGhBTDwIDAQAB 5 | AoGAD5UhBLd4pDssOm+pEqtt/6F2k3j+07itQ8vecHlBzOmAFRhhXeeEvs4QJ31E 6 | DZHKHfNCE32o1SUx0j1QTJ+vkIWHcQmLR89cLROlB4cyb+e4ki483ROr6niDNhni 7 | KeaeW9QGMEHIAbf8UbguA2vU4p+9wcemNiFUJcwiQ740zNECQQD2GyyQbzEUbiiw 8 | GjGbH131aVvO2FtYpYWckQhgfrBdwkLECUDRL4ggqGpOgjnF4WFXa2UC/BvLySAE 9 | jfwBhUy3AkEAwFbCKDQWIblrQoCeFHU75fASbCXwEGtMIO/+GT9hcpUAB5iQjwOe 10 | AMQEbs7aezSufGbIyUUL6AJBGoRGRVcEaQJALwEPqOJjyFgl00Sddtgt1OJzk3UF 11 | NVAfzcBxjiSEQNQKdnCh/ZILeNlRvH7o099w/QZY+5H1KR3XzKblm9C+zwJAavKS 12 | 6Tn1KHFqg8Lyo1uAn9160OnTb73JyfLIbo+Ahu704kRh9TPEspZMBLU+ZQ2pDAE3 13 | GjsrYKmIO89bJ4k4KQJADF9+tNJ1xtW1z/wS/u1IGTkMLYApyqUMf2ewf5yvD8yx 14 | H4PEeYEC96+kn6bdEErk6ssOP2O1n9jwIlRyZgcKOg== 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_1024_pem.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIGJAoGBALjnyTSKAWBy+SsONQqjSAiA9bT7tAQ9yTv8NcikYCQfMcNNAu7v8jPE 3 | EMIvuJCEXZ5DBpH+z1JeOzYNX85PdJczdCMk7g9LeceTN8/tmOqb0sZKJwGBHzHk 4 | s+bGg1UDeo4icw/nGGGBsphi6y4EwCWkSCr9P24K8si69GcaEFMPAgMBAAE= 5 | -----END RSA PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_1024_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,E477849D4A0566B706D2DFDD516E2F3E 4 | 5 | mkf+MOS5kcOUMqKEyiBiBgrB3Lv4KFQyc7V26EkYIziNwriuKArhBv8Vt5SBmrzk 6 | z9nVqPVw/CgpTlf/4BkR78EHkV4DoCgt8JIOKz1kDl9GLyRPsHIPL+g0IpBg1+LK 7 | B0uDFoP5/aQfSl+5t1RODd11wrUg6T1BSRzRTJvzvXagrelVrZlxieTNYHd0B5AX 8 | eJyX39DpaEIoOfyfaQFWQIaMns2Vd1y0uYdhUd8DdTHyD176KNBW10qrbzjNrIDl 9 | 3TTx6RtU0m7qxRC1++BZ/ZeKo1EnUdzPzeFNq2mO2Th2i7n2VaSuYIrArAtewYCw 10 | CiZPVFFZhwWc6PqR27hqC5wn8nX2NrlmBHiJ16Jrkb1jLW6jUMOJRITtEjCEjcQO 11 | 05Jcj+dk60VduXG25N6EfH3Ff1P256fRZfJOaN1abyc9TlFPO701OStTLiKm/O8O 12 | CwOSHK75CAnvbeHeLxA7r5s+y10toEZw2eR6lbUnMsu9WkwF0J/6GbQh44sVfCIQ 13 | WNqwX76qCPxZWzMY2mLdNAl0noNMNZVlYlw1t6a23P7lzWXOOI/nO42braR/OApQ 14 | Xn6wiLh1CzL3CvgraDocbYEBGrx0wIiz/emKJKHDTuxbcR8QNYzcr1k7z6WWQP/8 15 | tiV/8xqneg4f4BM8zPat8fJXnr50ZB1u7UcLwDOK6ergkksRgIA7wJeL7yhZVJP8 16 | s39x8w57HSFY0JWIlap7hJDD7MnnLNbQzdJ4d4HyY53uOEtYA/hFzOPGEsWL+c90 17 | ulbWwNz2ew2VCUuTg4CDnsckR0OUGSXQIY4xUzcTwcw= 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_1024_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALjnyTSKAWBy+SsO 3 | NQqjSAiA9bT7tAQ9yTv8NcikYCQfMcNNAu7v8jPEEMIvuJCEXZ5DBpH+z1JeOzYN 4 | X85PdJczdCMk7g9LeceTN8/tmOqb0sZKJwGBHzHks+bGg1UDeo4icw/nGGGBsphi 5 | 6y4EwCWkSCr9P24K8si69GcaEFMPAgMBAAECgYAPlSEEt3ikOyw6b6kSq23/oXaT 6 | eP7TuK1Dy95weUHM6YAVGGFd54S+zhAnfUQNkcod80ITfajVJTHSPVBMn6+QhYdx 7 | CYtHz1wtE6UHhzJv57iSLjzdE6vqeIM2GeIp5p5b1AYwQcgBt/xRuC4Da9Tin73B 8 | x6Y2IVQlzCJDvjTM0QJBAPYbLJBvMRRuKLAaMZsfXfVpW87YW1ilhZyRCGB+sF3C 9 | QsQJQNEviCCoak6COcXhYVdrZQL8G8vJIASN/AGFTLcCQQDAVsIoNBYhuWtCgJ4U 10 | dTvl8BJsJfAQa0wg7/4ZP2FylQAHmJCPA54AxARuztp7NK58ZsjJRQvoAkEahEZF 11 | VwRpAkAvAQ+o4mPIWCXTRJ122C3U4nOTdQU1UB/NwHGOJIRA1Ap2cKH9kgt42VG8 12 | fujT33D9Blj7kfUpHdfMpuWb0L7PAkBq8pLpOfUocWqDwvKjW4Cf3XrQ6dNvvcnJ 13 | 8shuj4CG7vTiRGH1M8SylkwEtT5lDakMATcaOytgqYg7z1sniTgpAkAMX3600nXG 14 | 1bXP/BL+7UgZOQwtgCnKpQx/Z7B/nK8PzLEfg8R5gQL3r6Sfpt0QSuTqyw4/Y7Wf 15 | 2PAiVHJmBwo6 16 | -----END PRIVATE KEY----- 17 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_1536_pem.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIHJAoHBAKRgd5/+QWF20TAbhhl9qdhj3ZyYNf2CrDs4TZ3EzJDKPkTKf/O1oggR 3 | Eka/YEbtOUSLwZ3zfAW9KuqTh2IfJxCbYVsu2nbnxu7L89gJjdy/FgvWKZTG3po9 4 | 4umHPFCm3Z1LAKibozkOr+zEHhhX6W9WlZkS4gXOx8a2qIs7tTjHzSVcLXjfQy03 5 | lnqdhM5W2S1iQUkKYxJOFiJx7ovhEd1M16NBmWYoZ8sQp5HfBPAEh8s71cWRKUfP 6 | ZSTir8KWvQIDAQAB 7 | -----END RSA PUBLIC KEY----- 8 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_2048_pem.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MIIBCgKCAQEA3cYzdPtsXO6Xa3gamHP5g0QvDrlq0u8K3uXxFAacpaK0I24bVFVF 3 | Pjsf+kUmW23jYNxL3Fk0+zUGO9cOyxkoIjSvW4FNStedes6b2NBdiBoMfcWb7yCV 4 | RC0l0ERYCAUhXrGplWbyUXefrM4KtY5jE4m6PX8jyaGSz8rOUhcTxw3silM/Jc2B 5 | 1ZrjoczoUo0jR0BlT9B6HvDe3UGhVONAPCUrFIeeu74I15bbNdyhKxmgXstuOKHu 6 | CfsZcM1h7IoAI9Q6AhjGg3UkPFnxPwRFCauZjRKfhsUHuIRzMG24NkSWWfJBUSjo 7 | glInEJFQhQN8lmqPuaHXIMiNN7Kn564JGwIDAQAB 8 | -----END RSA PUBLIC KEY----- 9 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_openssh: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAdwAAAAdz 3 | c2gtcnNhAAAAAwEAAQAAAGEA2Hm3hkBQp5UIjURO6/VBG46/g0DE3cNWRxgdsOsQ 4 | /w8ynpvO+tRnQqarC6xmsNg+2kiKD9QeUs/O9GKFVh5+gKOx75te1dysX5+AdNRj 5 | UEzOfi9upnWLOYiTRrv5bVHXAAABoBEnz2cRJ89nAAAAB3NzaC1yc2EAAABhANh5 6 | t4ZAUKeVCI1ETuv1QRuOv4NAxN3DVkcYHbDrEP8PMp6bzvrUZ0KmqwusZrDYPtpI 7 | ig/UHlLPzvRihVYefoCjse+bXtXcrF+fgHTUY1BMzn4vbqZ1izmIk0a7+W1R1wAA 8 | AAMBAAEAAABhAKvBNwm/sb6lEpnzHqM8fiH9Spo7I3fIaoYR7kzW1S9pwYHyoXCG 9 | Yj+RuZiTew7JIu+4Kl5DZNnuP4V3swURYFvX/ufD++5Qs4kNmu39uFBiX3y2sW8C 10 | uySjsjjcgb+vAQAAADAEjSqGRZ0zY1NzZ2pxqlpOJVYT5+cebGlBxCbR+AJ1/IFh 11 | Pi5sQOp8N3nzPDbcUqIAAAAxAO7sYlU1v/3oyV8QjvqRXgmeB0wuxOGFImzox4sO 12 | 0HBeAxfCxYcQfZiC4uVSxF5glwAAADEA5/KZlRMxLcRTSJ6Yco0C8GOFH8+jqWMU 13 | aUez5zzukKy3D8ivg7Xc69oLf2FWPYDBAAAAE1RoaXMgaXMgYSB0ZXN0IGtleSEB 14 | AgMEBQYH 15 | -----END OPENSSH PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_openssh_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAC 3 | J8hSzoIyLx3E5jPIB2+dAAAAEAAAAAEAAAB3AAAAB3NzaC1yc2EAAAADAQABAAAA 4 | YQDYebeGQFCnlQiNRE7r9UEbjr+DQMTdw1ZHGB2w6xD/DzKem8761GdCpqsLrGaw 5 | 2D7aSIoP1B5Sz870YoVWHn6Ao7Hvm17V3Kxfn4B01GNQTM5+L26mdYs5iJNGu/lt 6 | UdcAAAGg5KEoKEGcbJHtDO+YEzKTpVbR3vJgiVQa+uZRbxxF4MSa/8/4KmXVAe4F 7 | hcLVJ+lmuebATIlH/3E1nefqrshZNbStiJIDf810UBd0b4C56CPCgb3SUmS0FWeh 8 | TTFdqXmJhMFlhLlCNVYxJrTEAmpFIBuhmz9Unj2B/qhhwgtDJny6RXwNklfwdAh+ 9 | 0K2xI7nQMY+9n/80PrIetXxdrI9Rauh4MIIhVzgif5ps02VbJ8Ts2BMpFBzaS6gY 10 | +G/5IXqM2vmqIpe1zetvRCJP1WRTmaYGJ6El57m0OQ8ZwzCBGNGEfp74ouEIlS2A 11 | LMuhSUwCfHfUK19t5lzrjBvjQp4XutST/bbjKhIRdQOwK1nusZazivxNocLLEYzD 12 | UIL6OECmIRdeUVJZzQlYUvJR8oYVXvGX/cF/kA6ppyzZhoonBtGRwALplo6OfdOt 13 | pNPk/ZmlyIUmV+Eil522Q9WO3a+e7sCGxGbj/Ua8/C8NJHs/rRvyZ8yfL6lvJKMi 14 | Yk96FZiXS7rEi1p63A8oxgO4rYbghwIfXAN6UDgRpaM7ulC4Lao= 15 | -----END OPENSSH PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBywIBAAJhANh5t4ZAUKeVCI1ETuv1QRuOv4NAxN3DVkcYHbDrEP8PMp6bzvrU 3 | Z0KmqwusZrDYPtpIig/UHlLPzvRihVYefoCjse+bXtXcrF+fgHTUY1BMzn4vbqZ1 4 | izmIk0a7+W1R1wIDAQABAmEAq8E3Cb+xvqUSmfMeozx+If1Kmjsjd8hqhhHuTNbV 5 | L2nBgfKhcIZiP5G5mJN7Dski77gqXkNk2e4/hXezBRFgW9f+58P77lCziQ2a7f24 6 | UGJffLaxbwK7JKOyONyBv68BAjEA7uxiVTW//ejJXxCO+pFeCZ4HTC7E4YUibOjH 7 | iw7QcF4DF8LFhxB9mILi5VLEXmCXAjEA5/KZlRMxLcRTSJ6Yco0C8GOFH8+jqWMU 8 | aUez5zzukKy3D8ivg7Xc69oLf2FWPYDBAjAz9+i/ngxfvzWl3uUqrVnl/6CYuoeK 9 | gjnltJBKt/MwrdJAZdYvNbAL71RJC0K5QIsCMQDTAoQv947E6RcvOIDNrXUgBhmk 10 | z/w+7BE0mfOTiX4rBcVgSZ1KwFckBXBySLXxK8ECMASNKoZFnTNjU3NnanGqWk4l 11 | VhPn5x5saUHEJtH4AnX8gWE+LmxA6nw3efM8NtxSog== 12 | -----END RSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_pem.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PUBLIC KEY----- 2 | MGgCYQDYebeGQFCnlQiNRE7r9UEbjr+DQMTdw1ZHGB2w6xD/DzKem8761GdCpqsL 3 | rGaw2D7aSIoP1B5Sz870YoVWHn6Ao7Hvm17V3Kxfn4B01GNQTM5+L26mdYs5iJNG 4 | u/ltUdcCAwEAAQ== 5 | -----END RSA PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_pem_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,B8B44B077A4C4A63144875D0A8319272 4 | 5 | 4S9dwwHP6kvCq+PHpCOEuJV9eFZo30ujR4V4ju2GEDxoNzl+RvBurSABRv+MOwOO 6 | +7cXxFOCNFOnhKxvwENLyJ/wvkO7X0al1lF0yFHoF5scWFG1LRxQKp3kpW+k/ncW 7 | +eO72S7Er0fv3DbMC7ZqXXecHc5RauC16quRWqHrYuRHpGj8VqzveEz2r4XAg0zB 8 | OBq+osTF/fxydpncrtChRwcgyCZ7Er9eMEID0T+vlJFmuNEUYvYW9j4BVqMcmoKA 9 | qKr5vr95ss4Hq8lOnha4OQlVzod883QzB3MCMLFkE3e9x3DyvyfGgm0CIIZzz/I4 10 | 3w40pmq1tB/yrp2V8PvdC+ksWHx/2MFuzhcgeugfnrE0my9khsGLkaS2k1fbueBl 11 | s83tIODLBbvjS26KxrADo5vHltwGD9GK6CpnAbL4tS2YVHiOaaI8fqWjNNq8EoXI 12 | tmMve/dEej0HILbjIp0IqKs/rOtrTxf4UBKAhf+j2S8VxDq1gf28YR34zHEpzM3p 13 | bMTPlg0KZRYJ9x7VNz818a4FSBJOWMI8VXBbb7lW/iSQwvQ3orX5rhNrdkHa4B2W 14 | aYaiT78/MwUzjmexGRSgNhymDmHrNx76cg40MeWV6vU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_pkcs8: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIB5QIBADANBgkqhkiG9w0BAQEFAASCAc8wggHLAgEAAmEA2Hm3hkBQp5UIjURO 3 | 6/VBG46/g0DE3cNWRxgdsOsQ/w8ynpvO+tRnQqarC6xmsNg+2kiKD9QeUs/O9GKF 4 | Vh5+gKOx75te1dysX5+AdNRjUEzOfi9upnWLOYiTRrv5bVHXAgMBAAECYQCrwTcJ 5 | v7G+pRKZ8x6jPH4h/UqaOyN3yGqGEe5M1tUvacGB8qFwhmI/kbmYk3sOySLvuCpe 6 | Q2TZ7j+Fd7MFEWBb1/7nw/vuULOJDZrt/bhQYl98trFvArsko7I43IG/rwECMQDu 7 | 7GJVNb/96MlfEI76kV4JngdMLsThhSJs6MeLDtBwXgMXwsWHEH2YguLlUsReYJcC 8 | MQDn8pmVEzEtxFNInphyjQLwY4Ufz6OpYxRpR7PnPO6QrLcPyK+Dtdzr2gt/YVY9 9 | gMECMDP36L+eDF+/NaXe5SqtWeX/oJi6h4qCOeW0kEq38zCt0kBl1i81sAvvVEkL 10 | QrlAiwIxANMChC/3jsTpFy84gM2tdSAGGaTP/D7sETSZ85OJfisFxWBJnUrAVyQF 11 | cHJItfErwQIwBI0qhkWdM2NTc2dqcapaTiVWE+fnHmxpQcQm0fgCdfyBYT4ubEDq 12 | fDd58zw23FKi 13 | -----END PRIVATE KEY----- 14 | -------------------------------------------------------------------------------- /tests/pem/ssh_rsa_768_pkcs8_pw: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICTTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIEaKL7XuBIEICAggA 3 | MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBCZ+XyUGrg7gYyFqeguoe1NBIIB 4 | 8Go4EfQEXAYL36fZ4VFayZ+TsC788ISC4fPlpw9mGDH2rzC0TvB8qAUhMaGkKyx3 5 | jxCs0jPObG3cW1W7R54ZN7Vc3HgXnqizEsImab8nejjJZc/MdgUU7vvUg+gPg6s2 6 | KdVIyJb5fQqKVR/412UEnZ5HZtKsi+L2EMBaorOWav7ZexEnJo9UTgdW1Fxt1LVy 7 | qZmwJgZ6M0tlniWlBJXmTlsiaUW8rgXi7X+0YQLYslboSQdRw+Wkkjks/mHi2720 8 | fuoc/n4gR+Ijc8p8VrB8cjvTVNRJ2Ldi1ecmZqnpY2nZ5+7rVAbMzb+1LrJjYxuI 9 | LICjRrJqI12/HGic1GQEz89pBKLQrO2S3yEDQfz88I5oEfG4tisKD4vctiWyp9BQ 10 | AT3NWGuOS1jYMXwLGGQOPbC84GzZbzrtdHXKvboLlPg5RX5Chhw05na53rue5XI+ 11 | pLRPr+ohw77Q9Dv0A4LZIJlDowdzmEzOl2fYluEHbFm0Qega+Dub+8U8eCejb9S4 12 | qBvZWpfNjNpcAypwHi9PHL7pHdY1w/l/Mwj/pn/4cN0dLz33u65sgDz590nkDVfG 13 | peomL/xbDKMHHFIG/217RpDkIPS0sRbIdO3DgnUIjTle4OGRTpCsMW6VKfPy4liv 14 | cRCMx2Tt+IfOdLWW38hi6u4= 15 | -----END ENCRYPTED PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_md2_des.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_md2_des.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_md2_rc2_64.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_md2_rc2_64.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_md5_des.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_md5_des.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_md5_rc2_64.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_md5_rc2_64.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_sha1_3des.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_sha1_3des.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_sha1_des.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_sha1_des.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbe_sha1_rc2_64.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbe_sha1_rc2_64.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_des_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_des_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_des_ede3_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_des_ede3_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_rc2_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_rc2_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha224_des_ede3_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha224_des_ede3_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha256_des_ede3_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha256_des_ede3_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha384_des_ede3_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha384_des_ede3_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_224_aes256_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_224_aes256_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_aes256_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_aes256_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_rc2_40_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_rc2_40_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_rc2_64_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_256_rc2_64_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes128_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes128_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes192_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes192_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes256_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_aes256_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_des_ede3_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_des_ede3_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_rc2_40_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_rc2_40_cbc.der -------------------------------------------------------------------------------- /tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_rc2_64_cbc.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa-pkcs8/key_pkcs8_pbkdf2_sha512_rc2_64_cbc.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_1024_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_1024_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_16384_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_16384_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_1999_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_1999_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_2048_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_2048_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_4096_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_4096_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_512_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_512_bits.der -------------------------------------------------------------------------------- /tests/rsa/rsa_size_8192_bits.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/rsa/rsa_size_8192_bits.der -------------------------------------------------------------------------------- /tests/sources.cmake: -------------------------------------------------------------------------------- 1 | set(SOURCES 2 | base16_test.c 3 | base32_test.c 4 | base64_test.c 5 | bcrypt_test.c 6 | cipher_hash_test.c 7 | common.c 8 | der_test.c 9 | dh_test.c 10 | dsa_test.c 11 | ecc_test.c 12 | ed25519_test.c 13 | file_test.c 14 | mac_test.c 15 | misc_test.c 16 | modes_test.c 17 | mpi_test.c 18 | multi_test.c 19 | no_null_termination_check_test.c 20 | no_prng.c 21 | padding_test.c 22 | pem_test.c 23 | pkcs_1_eme_test.c 24 | pkcs_1_emsa_test.c 25 | pkcs_1_oaep_test.c 26 | pkcs_1_pss_test.c 27 | pkcs_1_test.c 28 | prng_test.c 29 | rotate_test.c 30 | rsa_test.c 31 | ssh_test.c 32 | store_test.c 33 | test.c 34 | x25519_test.c 35 | ) 36 | 37 | -------------------------------------------------------------------------------- /tests/test.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libtom/libtomcrypt/d448df1938e8988bcdb0eed6591387e82b26874b/tests/test.der -------------------------------------------------------------------------------- /tests/test.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXgIBAAKBgQDPmt5kitrIMyCp14MxGVSymoWnobd1M7aprIQks97bfYUtlmXl 3 | P3KVJJ8oaMpP20QcPmASit0mpev/C17UiDhJKm5bvxI3R70Fa7zb8+7kEY5BaHxh 4 | E9dCyIC+No/cCItPrKTidgzJY2xJWJPtzKrcJTsKYD+LVDrDTTHnlKRE/QIDAQAB 5 | AoGBAMhiuereRFMdVpfZl54azzAeCohFhikwo02fYWVz4NaHj7bzBqOC3Hys/pso 6 | mq79+/4vDtiXBOO7H9HsDbqjSX9HrIpEBH6GtzlCP60etw6lUfRAYx79veqfQZ+o 7 | kB1vClqVExENgK9fZJiKLHhoZbAri6JTh8rxZASr8nvbg8iBAkEA975eI8MyP7+L 8 | jjru/PzL5ffxC7xCgq7Vej7K99VpP2Qloh+3dXUFkkLruPHzCgXjlNFVeDWgNqCb 9 | fJKEbN3cTQJBANaGDoVCCwQIhCFg8A4NiP0eNhBlTx5TtAhygFw/WWYX5pjy6Wx6 10 | Bkysdj3tjKHOrRu9tH0ovOMOOI2Z2AW1o3ECQG3rwy0u8F6kiDEFKQCK0ZUpm4PP 11 | ddsx43on3jp0MAx2TNRQKkAtOdmZY6ldgK5TypQ/BSMe+AUE4bg18hezoIkCQQCr 12 | kIj6YAgpUJpDi6BQzNha/pdkY3F0IqMgAlrP68YWlVTRy6uNGsYA+giSnHHVUlI1 13 | lnFLi5IM0Om/rWMLpemxAkEA3MwnyOTcYkjVm6/1q2D2If1T4rddCckaoQSp/GEs 14 | XQRYOlo58UohVmf9zCCjj3gYWnk9Lo5+hgrmqDPBBBdKnw== 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /tests/test_dsa.key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQDFCjdRXKvWGNWicL1Kb2tK+eE5lQ8rmTh9mmTWTLWWetztrKis 3 | xhtlWt7bAGElGhgs7qEHkGJeTRIxkMcDIfoJ57Fz146v2/2/s++t0aEqA23nBpJK 4 | hSr/egFmUx/qxmdBhFrAbO1i+cJiYgWk+kigZuw1yagR/rmBq+6+Mba/zwIVAKpb 5 | 1/TlBiQT5Yg1ygDHpjVxYZTFAoGAO5Lk/1kpFQsImVp78q0UQFVvoEf/kJmzRLPU 6 | /EUVBa5nIkOcujcQpYlHN+zM9a6tqLR6Ncudk1zt5rB+lpTEpgx91nCKCU+BSg7C 7 | E/vrFr/qpPRW/3IwBd6KRD++xoUmVdYtHR7bFdqkRYM8F5eYC42H80kNkL2pq2du 8 | h2hyI9wCgYBTFrD7v1mKXlWVwU+sQ7gIU+bPDZIj+rGEWVI5v8vyLTg63ZNSBUl+ 9 | KxLEYXPjb1S9luWnqqlaWKS3Z9LAvcgesToST5jABe85XWq6tws72LeV3XluotKE 10 | c0cDiLRk2bm4T/HJNLv5c2b1fC4R/sMx5gg4WWeB621BJ9cNdK+gNQIVAJk25eTp 11 | +yi+kfUGX+jJNbP12B/F 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /updatemakes.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./helper.pl --update-makefiles || exit 1 4 | 5 | makefiles=(makefile makefile_include.mk makefile.shared makefile.unix makefile.mingw makefile.msvc sources.cmake tests/sources.cmake) 6 | vcproj=(libtomcrypt_VS2008.vcproj) 7 | 8 | if [ $# -eq 1 ] && [ "$1" == "-c" ]; then 9 | git add ${makefiles[@]} ${vcproj[@]} doc/Doxyfile && git commit -m 'Update makefiles' 10 | fi 11 | 12 | exit 0 13 | --------------------------------------------------------------------------------