ltc sync
Karel Miko
6 years ago
43 | 43 | ltc/misc/error_to_string.o ltc/misc/mem_neq.o ltc/misc/pk_get_oid.o ltc/misc/zeromem.o \ |
44 | 44 | ltc/misc/base64/base64_decode.o ltc/misc/base64/base64_encode.o ltc/misc/crypt/crypt.o \ |
45 | 45 | ltc/misc/crypt/crypt_argchk.o ltc/misc/crypt/crypt_cipher_descriptor.o ltc/misc/crypt/crypt_cipher_is_valid.o \ |
46 | ltc/misc/crypt/crypt_find_cipher.o ltc/misc/crypt/crypt_find_cipher_any.o ltc/misc/crypt/crypt_find_cipher_id.o \ | |
47 | ltc/misc/crypt/crypt_find_hash.o ltc/misc/crypt/crypt_find_hash_any.o ltc/misc/crypt/crypt_find_hash_id.o \ | |
48 | ltc/misc/crypt/crypt_find_hash_oid.o ltc/misc/crypt/crypt_find_prng.o ltc/misc/crypt/crypt_fsa.o \ | |
49 | ltc/misc/crypt/crypt_hash_descriptor.o ltc/misc/crypt/crypt_hash_is_valid.o ltc/misc/crypt/crypt_inits.o \ | |
50 | ltc/misc/crypt/crypt_ltc_mp_descriptor.o ltc/misc/crypt/crypt_prng_descriptor.o ltc/misc/crypt/crypt_prng_is_valid.o \ | |
46 | ltc/misc/crypt/crypt_constants.o ltc/misc/crypt/crypt_find_cipher.o ltc/misc/crypt/crypt_find_cipher_any.o \ | |
47 | ltc/misc/crypt/crypt_find_cipher_id.o ltc/misc/crypt/crypt_find_hash.o ltc/misc/crypt/crypt_find_hash_any.o \ | |
48 | ltc/misc/crypt/crypt_find_hash_id.o ltc/misc/crypt/crypt_find_hash_oid.o ltc/misc/crypt/crypt_find_prng.o \ | |
49 | ltc/misc/crypt/crypt_fsa.o ltc/misc/crypt/crypt_hash_descriptor.o ltc/misc/crypt/crypt_hash_is_valid.o \ | |
50 | ltc/misc/crypt/crypt_inits.o ltc/misc/crypt/crypt_ltc_mp_descriptor.o ltc/misc/crypt/crypt_prng_descriptor.o \ | |
51 | ltc/misc/crypt/crypt_prng_is_valid.o ltc/misc/crypt/crypt_prng_rng_descriptor.o ltc/misc/crypt/crypt_register_all_ciphers.o \ | |
52 | ltc/misc/crypt/crypt_register_all_hashes.o ltc/misc/crypt/crypt_register_all_prngs.o \ | |
51 | 53 | ltc/misc/crypt/crypt_register_cipher.o ltc/misc/crypt/crypt_register_hash.o ltc/misc/crypt/crypt_register_prng.o \ |
52 | ltc/misc/crypt/crypt_unregister_cipher.o ltc/misc/crypt/crypt_unregister_hash.o ltc/misc/crypt/crypt_unregister_prng.o \ | |
53 | ltc/misc/hkdf/hkdf.o ltc/misc/pkcs5/pkcs_5_1.o ltc/misc/pkcs5/pkcs_5_2.o ltc/modes/cbc/cbc_decrypt.o \ | |
54 | ltc/modes/cbc/cbc_done.o ltc/modes/cbc/cbc_encrypt.o ltc/modes/cbc/cbc_getiv.o ltc/modes/cbc/cbc_setiv.o \ | |
55 | ltc/modes/cbc/cbc_start.o ltc/modes/cfb/cfb_decrypt.o ltc/modes/cfb/cfb_done.o ltc/modes/cfb/cfb_encrypt.o \ | |
56 | ltc/modes/cfb/cfb_getiv.o ltc/modes/cfb/cfb_setiv.o ltc/modes/cfb/cfb_start.o ltc/modes/ctr/ctr_decrypt.o \ | |
57 | ltc/modes/ctr/ctr_done.o ltc/modes/ctr/ctr_encrypt.o ltc/modes/ctr/ctr_getiv.o ltc/modes/ctr/ctr_setiv.o \ | |
58 | ltc/modes/ctr/ctr_start.o ltc/modes/ecb/ecb_decrypt.o ltc/modes/ecb/ecb_done.o ltc/modes/ecb/ecb_encrypt.o \ | |
59 | ltc/modes/ecb/ecb_start.o ltc/modes/ofb/ofb_decrypt.o ltc/modes/ofb/ofb_done.o ltc/modes/ofb/ofb_encrypt.o \ | |
60 | ltc/modes/ofb/ofb_getiv.o ltc/modes/ofb/ofb_setiv.o ltc/modes/ofb/ofb_start.o ltc/pk/asn1/der/bit/der_decode_bit_string.o \ | |
61 | ltc/pk/asn1/der/bit/der_decode_raw_bit_string.o ltc/pk/asn1/der/bit/der_encode_bit_string.o \ | |
62 | ltc/pk/asn1/der/bit/der_encode_raw_bit_string.o ltc/pk/asn1/der/bit/der_length_bit_string.o \ | |
63 | ltc/pk/asn1/der/boolean/der_decode_boolean.o ltc/pk/asn1/der/boolean/der_encode_boolean.o \ | |
64 | ltc/pk/asn1/der/boolean/der_length_boolean.o ltc/pk/asn1/der/choice/der_decode_choice.o \ | |
65 | ltc/pk/asn1/der/generalizedtime/der_decode_generalizedtime.o ltc/pk/asn1/der/generalizedtime/der_encode_generalizedtime.o \ | |
66 | ltc/pk/asn1/der/generalizedtime/der_length_generalizedtime.o ltc/pk/asn1/der/ia5/der_decode_ia5_string.o \ | |
67 | ltc/pk/asn1/der/ia5/der_encode_ia5_string.o ltc/pk/asn1/der/ia5/der_length_ia5_string.o \ | |
68 | ltc/pk/asn1/der/integer/der_decode_integer.o ltc/pk/asn1/der/integer/der_encode_integer.o \ | |
69 | ltc/pk/asn1/der/integer/der_length_integer.o ltc/pk/asn1/der/object_identifier/der_decode_object_identifier.o \ | |
70 | ltc/pk/asn1/der/object_identifier/der_encode_object_identifier.o ltc/pk/asn1/der/object_identifier/der_length_object_identifier.o \ | |
71 | ltc/pk/asn1/der/octet/der_decode_octet_string.o ltc/pk/asn1/der/octet/der_encode_octet_string.o \ | |
72 | ltc/pk/asn1/der/octet/der_length_octet_string.o ltc/pk/asn1/der/printable_string/der_decode_printable_string.o \ | |
73 | ltc/pk/asn1/der/printable_string/der_encode_printable_string.o ltc/pk/asn1/der/printable_string/der_length_printable_string.o \ | |
74 | ltc/pk/asn1/der/sequence/der_decode_sequence_ex.o ltc/pk/asn1/der/sequence/der_decode_sequence_flexi.o \ | |
75 | ltc/pk/asn1/der/sequence/der_decode_sequence_multi.o ltc/pk/asn1/der/sequence/der_decode_subject_public_key_info.o \ | |
76 | ltc/pk/asn1/der/sequence/der_encode_sequence_ex.o ltc/pk/asn1/der/sequence/der_encode_sequence_multi.o \ | |
77 | ltc/pk/asn1/der/sequence/der_encode_subject_public_key_info.o ltc/pk/asn1/der/sequence/der_length_sequence.o \ | |
78 | ltc/pk/asn1/der/sequence/der_sequence_free.o ltc/pk/asn1/der/set/der_encode_set.o \ | |
54 | ltc/misc/crypt/crypt_sizes.o ltc/misc/crypt/crypt_unregister_cipher.o ltc/misc/crypt/crypt_unregister_hash.o \ | |
55 | ltc/misc/crypt/crypt_unregister_prng.o ltc/misc/hkdf/hkdf.o ltc/misc/pkcs5/pkcs_5_1.o \ | |
56 | ltc/misc/pkcs5/pkcs_5_2.o ltc/modes/cbc/cbc_decrypt.o ltc/modes/cbc/cbc_done.o ltc/modes/cbc/cbc_encrypt.o \ | |
57 | ltc/modes/cbc/cbc_getiv.o ltc/modes/cbc/cbc_setiv.o ltc/modes/cbc/cbc_start.o ltc/modes/cfb/cfb_decrypt.o \ | |
58 | ltc/modes/cfb/cfb_done.o ltc/modes/cfb/cfb_encrypt.o ltc/modes/cfb/cfb_getiv.o ltc/modes/cfb/cfb_setiv.o \ | |
59 | ltc/modes/cfb/cfb_start.o ltc/modes/ctr/ctr_decrypt.o ltc/modes/ctr/ctr_done.o ltc/modes/ctr/ctr_encrypt.o \ | |
60 | ltc/modes/ctr/ctr_getiv.o ltc/modes/ctr/ctr_setiv.o ltc/modes/ctr/ctr_start.o ltc/modes/ecb/ecb_decrypt.o \ | |
61 | ltc/modes/ecb/ecb_done.o ltc/modes/ecb/ecb_encrypt.o ltc/modes/ecb/ecb_start.o ltc/modes/ofb/ofb_decrypt.o \ | |
62 | ltc/modes/ofb/ofb_done.o ltc/modes/ofb/ofb_encrypt.o ltc/modes/ofb/ofb_getiv.o ltc/modes/ofb/ofb_setiv.o \ | |
63 | ltc/modes/ofb/ofb_start.o ltc/pk/asn1/der/bit/der_decode_bit_string.o ltc/pk/asn1/der/bit/der_decode_raw_bit_string.o \ | |
64 | ltc/pk/asn1/der/bit/der_encode_bit_string.o ltc/pk/asn1/der/bit/der_encode_raw_bit_string.o \ | |
65 | ltc/pk/asn1/der/bit/der_length_bit_string.o ltc/pk/asn1/der/boolean/der_decode_boolean.o \ | |
66 | ltc/pk/asn1/der/boolean/der_encode_boolean.o ltc/pk/asn1/der/boolean/der_length_boolean.o \ | |
67 | ltc/pk/asn1/der/choice/der_decode_choice.o ltc/pk/asn1/der/generalizedtime/der_decode_generalizedtime.o \ | |
68 | ltc/pk/asn1/der/generalizedtime/der_encode_generalizedtime.o ltc/pk/asn1/der/generalizedtime/der_length_generalizedtime.o \ | |
69 | ltc/pk/asn1/der/ia5/der_decode_ia5_string.o ltc/pk/asn1/der/ia5/der_encode_ia5_string.o \ | |
70 | ltc/pk/asn1/der/ia5/der_length_ia5_string.o ltc/pk/asn1/der/integer/der_decode_integer.o \ | |
71 | ltc/pk/asn1/der/integer/der_encode_integer.o ltc/pk/asn1/der/integer/der_length_integer.o \ | |
72 | ltc/pk/asn1/der/object_identifier/der_decode_object_identifier.o ltc/pk/asn1/der/object_identifier/der_encode_object_identifier.o \ | |
73 | ltc/pk/asn1/der/object_identifier/der_length_object_identifier.o ltc/pk/asn1/der/octet/der_decode_octet_string.o \ | |
74 | ltc/pk/asn1/der/octet/der_encode_octet_string.o ltc/pk/asn1/der/octet/der_length_octet_string.o \ | |
75 | ltc/pk/asn1/der/printable_string/der_decode_printable_string.o ltc/pk/asn1/der/printable_string/der_encode_printable_string.o \ | |
76 | ltc/pk/asn1/der/printable_string/der_length_printable_string.o ltc/pk/asn1/der/sequence/der_decode_sequence_ex.o \ | |
77 | ltc/pk/asn1/der/sequence/der_decode_sequence_flexi.o ltc/pk/asn1/der/sequence/der_decode_sequence_multi.o \ | |
78 | ltc/pk/asn1/der/sequence/der_decode_subject_public_key_info.o ltc/pk/asn1/der/sequence/der_encode_sequence_ex.o \ | |
79 | ltc/pk/asn1/der/sequence/der_encode_sequence_multi.o ltc/pk/asn1/der/sequence/der_encode_subject_public_key_info.o \ | |
80 | ltc/pk/asn1/der/sequence/der_length_sequence.o ltc/pk/asn1/der/sequence/der_sequence_free.o \ | |
81 | ltc/pk/asn1/der/sequence/der_sequence_shrink.o ltc/pk/asn1/der/set/der_encode_set.o \ | |
79 | 82 | ltc/pk/asn1/der/set/der_encode_setof.o ltc/pk/asn1/der/short_integer/der_decode_short_integer.o \ |
80 | 83 | ltc/pk/asn1/der/short_integer/der_encode_short_integer.o ltc/pk/asn1/der/short_integer/der_length_short_integer.o \ |
81 | 84 | ltc/pk/asn1/der/teletex_string/der_decode_teletex_string.o ltc/pk/asn1/der/teletex_string/der_length_teletex_string.o \ |
46 | 46 | ltc/misc/error_to_string.obj ltc/misc/mem_neq.obj ltc/misc/pk_get_oid.obj ltc/misc/zeromem.obj \ |
47 | 47 | ltc/misc/base64/base64_decode.obj ltc/misc/base64/base64_encode.obj ltc/misc/crypt/crypt.obj \ |
48 | 48 | ltc/misc/crypt/crypt_argchk.obj ltc/misc/crypt/crypt_cipher_descriptor.obj ltc/misc/crypt/crypt_cipher_is_valid.obj \ |
49 | ltc/misc/crypt/crypt_find_cipher.obj ltc/misc/crypt/crypt_find_cipher_any.obj ltc/misc/crypt/crypt_find_cipher_id.obj \ | |
50 | ltc/misc/crypt/crypt_find_hash.obj ltc/misc/crypt/crypt_find_hash_any.obj ltc/misc/crypt/crypt_find_hash_id.obj \ | |
51 | ltc/misc/crypt/crypt_find_hash_oid.obj ltc/misc/crypt/crypt_find_prng.obj ltc/misc/crypt/crypt_fsa.obj \ | |
52 | ltc/misc/crypt/crypt_hash_descriptor.obj ltc/misc/crypt/crypt_hash_is_valid.obj ltc/misc/crypt/crypt_inits.obj \ | |
53 | ltc/misc/crypt/crypt_ltc_mp_descriptor.obj ltc/misc/crypt/crypt_prng_descriptor.obj \ | |
54 | ltc/misc/crypt/crypt_prng_is_valid.obj ltc/misc/crypt/crypt_register_cipher.obj ltc/misc/crypt/crypt_register_hash.obj \ | |
55 | ltc/misc/crypt/crypt_register_prng.obj ltc/misc/crypt/crypt_unregister_cipher.obj \ | |
56 | ltc/misc/crypt/crypt_unregister_hash.obj ltc/misc/crypt/crypt_unregister_prng.obj \ | |
57 | ltc/misc/hkdf/hkdf.obj ltc/misc/pkcs5/pkcs_5_1.obj ltc/misc/pkcs5/pkcs_5_2.obj ltc/modes/cbc/cbc_decrypt.obj \ | |
58 | ltc/modes/cbc/cbc_done.obj ltc/modes/cbc/cbc_encrypt.obj ltc/modes/cbc/cbc_getiv.obj \ | |
59 | ltc/modes/cbc/cbc_setiv.obj ltc/modes/cbc/cbc_start.obj ltc/modes/cfb/cfb_decrypt.obj \ | |
60 | ltc/modes/cfb/cfb_done.obj ltc/modes/cfb/cfb_encrypt.obj ltc/modes/cfb/cfb_getiv.obj \ | |
61 | ltc/modes/cfb/cfb_setiv.obj ltc/modes/cfb/cfb_start.obj ltc/modes/ctr/ctr_decrypt.obj \ | |
62 | ltc/modes/ctr/ctr_done.obj ltc/modes/ctr/ctr_encrypt.obj ltc/modes/ctr/ctr_getiv.obj \ | |
63 | ltc/modes/ctr/ctr_setiv.obj ltc/modes/ctr/ctr_start.obj ltc/modes/ecb/ecb_decrypt.obj \ | |
64 | ltc/modes/ecb/ecb_done.obj ltc/modes/ecb/ecb_encrypt.obj ltc/modes/ecb/ecb_start.obj \ | |
65 | ltc/modes/ofb/ofb_decrypt.obj ltc/modes/ofb/ofb_done.obj ltc/modes/ofb/ofb_encrypt.obj \ | |
66 | ltc/modes/ofb/ofb_getiv.obj ltc/modes/ofb/ofb_setiv.obj ltc/modes/ofb/ofb_start.obj \ | |
67 | ltc/pk/asn1/der/bit/der_decode_bit_string.obj ltc/pk/asn1/der/bit/der_decode_raw_bit_string.obj \ | |
68 | ltc/pk/asn1/der/bit/der_encode_bit_string.obj ltc/pk/asn1/der/bit/der_encode_raw_bit_string.obj \ | |
69 | ltc/pk/asn1/der/bit/der_length_bit_string.obj ltc/pk/asn1/der/boolean/der_decode_boolean.obj \ | |
70 | ltc/pk/asn1/der/boolean/der_encode_boolean.obj ltc/pk/asn1/der/boolean/der_length_boolean.obj \ | |
71 | ltc/pk/asn1/der/choice/der_decode_choice.obj ltc/pk/asn1/der/generalizedtime/der_decode_generalizedtime.obj \ | |
72 | ltc/pk/asn1/der/generalizedtime/der_encode_generalizedtime.obj ltc/pk/asn1/der/generalizedtime/der_length_generalizedtime.obj \ | |
73 | ltc/pk/asn1/der/ia5/der_decode_ia5_string.obj ltc/pk/asn1/der/ia5/der_encode_ia5_string.obj \ | |
74 | ltc/pk/asn1/der/ia5/der_length_ia5_string.obj ltc/pk/asn1/der/integer/der_decode_integer.obj \ | |
75 | ltc/pk/asn1/der/integer/der_encode_integer.obj ltc/pk/asn1/der/integer/der_length_integer.obj \ | |
76 | ltc/pk/asn1/der/object_identifier/der_decode_object_identifier.obj ltc/pk/asn1/der/object_identifier/der_encode_object_identifier.obj \ | |
77 | ltc/pk/asn1/der/object_identifier/der_length_object_identifier.obj ltc/pk/asn1/der/octet/der_decode_octet_string.obj \ | |
78 | ltc/pk/asn1/der/octet/der_encode_octet_string.obj ltc/pk/asn1/der/octet/der_length_octet_string.obj \ | |
79 | ltc/pk/asn1/der/printable_string/der_decode_printable_string.obj ltc/pk/asn1/der/printable_string/der_encode_printable_string.obj \ | |
80 | ltc/pk/asn1/der/printable_string/der_length_printable_string.obj ltc/pk/asn1/der/sequence/der_decode_sequence_ex.obj \ | |
81 | ltc/pk/asn1/der/sequence/der_decode_sequence_flexi.obj ltc/pk/asn1/der/sequence/der_decode_sequence_multi.obj \ | |
82 | ltc/pk/asn1/der/sequence/der_decode_subject_public_key_info.obj ltc/pk/asn1/der/sequence/der_encode_sequence_ex.obj \ | |
83 | ltc/pk/asn1/der/sequence/der_encode_sequence_multi.obj ltc/pk/asn1/der/sequence/der_encode_subject_public_key_info.obj \ | |
84 | ltc/pk/asn1/der/sequence/der_length_sequence.obj ltc/pk/asn1/der/sequence/der_sequence_free.obj \ | |
49 | ltc/misc/crypt/crypt_constants.obj ltc/misc/crypt/crypt_find_cipher.obj ltc/misc/crypt/crypt_find_cipher_any.obj \ | |
50 | ltc/misc/crypt/crypt_find_cipher_id.obj ltc/misc/crypt/crypt_find_hash.obj ltc/misc/crypt/crypt_find_hash_any.obj \ | |
51 | ltc/misc/crypt/crypt_find_hash_id.obj ltc/misc/crypt/crypt_find_hash_oid.obj ltc/misc/crypt/crypt_find_prng.obj \ | |
52 | ltc/misc/crypt/crypt_fsa.obj ltc/misc/crypt/crypt_hash_descriptor.obj ltc/misc/crypt/crypt_hash_is_valid.obj \ | |
53 | ltc/misc/crypt/crypt_inits.obj ltc/misc/crypt/crypt_ltc_mp_descriptor.obj ltc/misc/crypt/crypt_prng_descriptor.obj \ | |
54 | ltc/misc/crypt/crypt_prng_is_valid.obj ltc/misc/crypt/crypt_prng_rng_descriptor.obj \ | |
55 | ltc/misc/crypt/crypt_register_all_ciphers.obj ltc/misc/crypt/crypt_register_all_hashes.obj \ | |
56 | ltc/misc/crypt/crypt_register_all_prngs.obj ltc/misc/crypt/crypt_register_cipher.obj \ | |
57 | ltc/misc/crypt/crypt_register_hash.obj ltc/misc/crypt/crypt_register_prng.obj ltc/misc/crypt/crypt_sizes.obj \ | |
58 | ltc/misc/crypt/crypt_unregister_cipher.obj ltc/misc/crypt/crypt_unregister_hash.obj \ | |
59 | ltc/misc/crypt/crypt_unregister_prng.obj ltc/misc/hkdf/hkdf.obj ltc/misc/pkcs5/pkcs_5_1.obj \ | |
60 | ltc/misc/pkcs5/pkcs_5_2.obj ltc/modes/cbc/cbc_decrypt.obj ltc/modes/cbc/cbc_done.obj \ | |
61 | ltc/modes/cbc/cbc_encrypt.obj ltc/modes/cbc/cbc_getiv.obj ltc/modes/cbc/cbc_setiv.obj \ | |
62 | ltc/modes/cbc/cbc_start.obj ltc/modes/cfb/cfb_decrypt.obj ltc/modes/cfb/cfb_done.obj \ | |
63 | ltc/modes/cfb/cfb_encrypt.obj ltc/modes/cfb/cfb_getiv.obj ltc/modes/cfb/cfb_setiv.obj \ | |
64 | ltc/modes/cfb/cfb_start.obj ltc/modes/ctr/ctr_decrypt.obj ltc/modes/ctr/ctr_done.obj \ | |
65 | ltc/modes/ctr/ctr_encrypt.obj ltc/modes/ctr/ctr_getiv.obj ltc/modes/ctr/ctr_setiv.obj \ | |
66 | ltc/modes/ctr/ctr_start.obj ltc/modes/ecb/ecb_decrypt.obj ltc/modes/ecb/ecb_done.obj \ | |
67 | ltc/modes/ecb/ecb_encrypt.obj ltc/modes/ecb/ecb_start.obj ltc/modes/ofb/ofb_decrypt.obj \ | |
68 | ltc/modes/ofb/ofb_done.obj ltc/modes/ofb/ofb_encrypt.obj ltc/modes/ofb/ofb_getiv.obj \ | |
69 | ltc/modes/ofb/ofb_setiv.obj ltc/modes/ofb/ofb_start.obj ltc/pk/asn1/der/bit/der_decode_bit_string.obj \ | |
70 | ltc/pk/asn1/der/bit/der_decode_raw_bit_string.obj ltc/pk/asn1/der/bit/der_encode_bit_string.obj \ | |
71 | ltc/pk/asn1/der/bit/der_encode_raw_bit_string.obj ltc/pk/asn1/der/bit/der_length_bit_string.obj \ | |
72 | ltc/pk/asn1/der/boolean/der_decode_boolean.obj ltc/pk/asn1/der/boolean/der_encode_boolean.obj \ | |
73 | ltc/pk/asn1/der/boolean/der_length_boolean.obj ltc/pk/asn1/der/choice/der_decode_choice.obj \ | |
74 | ltc/pk/asn1/der/generalizedtime/der_decode_generalizedtime.obj ltc/pk/asn1/der/generalizedtime/der_encode_generalizedtime.obj \ | |
75 | ltc/pk/asn1/der/generalizedtime/der_length_generalizedtime.obj ltc/pk/asn1/der/ia5/der_decode_ia5_string.obj \ | |
76 | ltc/pk/asn1/der/ia5/der_encode_ia5_string.obj ltc/pk/asn1/der/ia5/der_length_ia5_string.obj \ | |
77 | ltc/pk/asn1/der/integer/der_decode_integer.obj ltc/pk/asn1/der/integer/der_encode_integer.obj \ | |
78 | ltc/pk/asn1/der/integer/der_length_integer.obj ltc/pk/asn1/der/object_identifier/der_decode_object_identifier.obj \ | |
79 | ltc/pk/asn1/der/object_identifier/der_encode_object_identifier.obj ltc/pk/asn1/der/object_identifier/der_length_object_identifier.obj \ | |
80 | ltc/pk/asn1/der/octet/der_decode_octet_string.obj ltc/pk/asn1/der/octet/der_encode_octet_string.obj \ | |
81 | ltc/pk/asn1/der/octet/der_length_octet_string.obj ltc/pk/asn1/der/printable_string/der_decode_printable_string.obj \ | |
82 | ltc/pk/asn1/der/printable_string/der_encode_printable_string.obj ltc/pk/asn1/der/printable_string/der_length_printable_string.obj \ | |
83 | ltc/pk/asn1/der/sequence/der_decode_sequence_ex.obj ltc/pk/asn1/der/sequence/der_decode_sequence_flexi.obj \ | |
84 | ltc/pk/asn1/der/sequence/der_decode_sequence_multi.obj ltc/pk/asn1/der/sequence/der_decode_subject_public_key_info.obj \ | |
85 | ltc/pk/asn1/der/sequence/der_encode_sequence_ex.obj ltc/pk/asn1/der/sequence/der_encode_sequence_multi.obj \ | |
86 | ltc/pk/asn1/der/sequence/der_encode_subject_public_key_info.obj ltc/pk/asn1/der/sequence/der_length_sequence.obj \ | |
87 | ltc/pk/asn1/der/sequence/der_sequence_free.obj ltc/pk/asn1/der/sequence/der_sequence_shrink.obj \ | |
85 | 88 | ltc/pk/asn1/der/set/der_encode_set.obj ltc/pk/asn1/der/set/der_encode_setof.obj ltc/pk/asn1/der/short_integer/der_decode_short_integer.obj \ |
86 | 89 | ltc/pk/asn1/der/short_integer/der_encode_short_integer.obj ltc/pk/asn1/der/short_integer/der_length_short_integer.obj \ |
87 | 90 | ltc/pk/asn1/der/teletex_string/der_decode_teletex_string.obj ltc/pk/asn1/der/teletex_string/der_length_teletex_string.obj \ |
54 | 54 | /* default to zero */ |
55 | 55 | *stat = 0; |
56 | 56 | |
57 | /* limit taglen */ | |
58 | taglen = MIN(taglen, MAXBLOCKSIZE); | |
59 | ||
57 | 60 | /* allocate ram */ |
58 | 61 | buf = XMALLOC(taglen); |
59 | 62 | eax = XMALLOC(sizeof(*eax)); |
167 | 167 | |
168 | 168 | /* endianness fallback */ |
169 | 169 | #if !defined(ENDIAN_BIG) && !defined(ENDIAN_LITTLE) |
170 | #if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || \ | |
170 | #if defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN || \ | |
171 | defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || \ | |
171 | 172 | defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ || \ |
172 | defined(__BIG_ENDIAN__) || defined(_BIG_ENDIAN) || \ | |
173 | defined(__BIG_ENDIAN__) || \ | |
173 | 174 | defined(__ARMEB__) || defined(__THUMBEB__) || defined(__AARCH64EB__) || \ |
174 | 175 | defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__) |
175 | 176 | #define ENDIAN_BIG |
176 | #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \ | |
177 | #elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN || \ | |
178 | defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \ | |
177 | 179 | defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ || \ |
178 | defined(__LITTLE_ENDIAN__) || defined(_LITTLE_ENDIAN) || \ | |
180 | defined(__LITTLE_ENDIAN__) || \ | |
179 | 181 | defined(__ARMEL__) || defined(__THUMBEL__) || defined(__AARCH64EL__) || \ |
180 | 182 | defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__) |
181 | 183 | #define ENDIAN_LITTLE |
70 | 70 | #define LTC_NO_PK |
71 | 71 | #define LTC_NO_PKCS |
72 | 72 | #define LTC_NO_MISC |
73 | #define LTC_NO_FILE | |
74 | 73 | #endif /* LTC_NOTHING */ |
75 | 74 | |
76 | 75 | /* Easy button? */ |
578 | 577 | #error LTC_BLAKE2BMAC requires LTC_BLAKE2B |
579 | 578 | #endif |
580 | 579 | |
580 | #if defined(LTC_SPRNG) && !defined(LTC_RNG_GET_BYTES) | |
581 | #error LTC_SPRNG requires LTC_RNG_GET_BYTES | |
582 | #endif | |
583 | ||
581 | 584 | #if defined(LTC_NO_MATH) && (defined(LTM_DESC) || defined(TFM_DESC) || defined(GMP_DESC)) |
582 | 585 | #error LTC_NO_MATH defined, but also a math descriptor |
583 | 586 | #endif |
596 | 596 | /* internal helper functions */ |
597 | 597 | int der_length_sequence_ex(ltc_asn1_list *list, unsigned long inlen, |
598 | 598 | unsigned long *outlen, unsigned long *payloadlen); |
599 | ||
600 | 599 | /* SUBJECT PUBLIC KEY INFO */ |
601 | 600 | int der_encode_subject_public_key_info(unsigned char *out, unsigned long *outlen, |
602 | 601 | unsigned int algorithm, void* public_key, unsigned long public_key_len, |
32 | 32 | */ |
33 | 33 | int radix_to_bin(const void *in, int radix, void *out, unsigned long *len) |
34 | 34 | { |
35 | size_t l; | |
35 | unsigned long l; | |
36 | 36 | void* mpi; |
37 | 37 | int err; |
38 | 38 |
377 | 377 | #endif |
378 | 378 | |
379 | 379 | "\nVarious others: " |
380 | #if defined(ARGTYPE) | |
381 | " " NAME_VALUE(ARGTYPE) " " | |
382 | #endif | |
380 | 383 | #if defined(LTC_ADLER32) |
381 | 384 | " ADLER32 " |
382 | 385 | #endif |
427 | 430 | #endif |
428 | 431 | #if defined(LTC_TEST) |
429 | 432 | " LTC_TEST " |
433 | #endif | |
434 | #if defined(LTC_TEST_DBG) | |
435 | " " NAME_VALUE(LTC_TEST_DBG) " " | |
430 | 436 | #endif |
431 | 437 | #if defined(LTC_TEST_EXT) |
432 | 438 | " LTC_TEST_EXT " |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | #include "tomcrypt.h" | |
9 | ||
10 | /** | |
11 | @file crypt_constants.c | |
12 | ||
13 | Make various constants available to dynamic languages | |
14 | like Python - Larry Bugbee, February 2013 | |
15 | ||
16 | LB - Dec 2013 - revised to include compiler define options | |
17 | LB - Mar 2014 - added endianness and word size | |
18 | */ | |
19 | ||
20 | typedef struct { | |
21 | const char *name; | |
22 | const int value; | |
23 | } crypt_constant; | |
24 | ||
25 | #define _C_STRINGIFY(s) { #s, s } | |
26 | ||
27 | static const crypt_constant _crypt_constants[] = { | |
28 | _C_STRINGIFY(PK_PUBLIC), | |
29 | _C_STRINGIFY(PK_PRIVATE), | |
30 | ||
31 | _C_STRINGIFY(PKA_RSA), | |
32 | _C_STRINGIFY(PKA_DSA), | |
33 | ||
34 | #ifdef LTC_PKCS_1 | |
35 | {"LTC_PKCS_1", 1}, | |
36 | /* Block types */ | |
37 | _C_STRINGIFY(LTC_PKCS_1_EMSA), | |
38 | _C_STRINGIFY(LTC_PKCS_1_EME), | |
39 | ||
40 | /* Padding types */ | |
41 | _C_STRINGIFY(LTC_PKCS_1_V1_5), | |
42 | _C_STRINGIFY(LTC_PKCS_1_OAEP), | |
43 | _C_STRINGIFY(LTC_PKCS_1_PSS), | |
44 | #else | |
45 | {"LTC_PKCS_1", 0}, | |
46 | #endif | |
47 | ||
48 | #ifdef LTC_MRSA | |
49 | {"LTC_MRSA", 1}, | |
50 | _C_STRINGIFY(MIN_RSA_SIZE), | |
51 | _C_STRINGIFY(MAX_RSA_SIZE), | |
52 | #else | |
53 | {"LTC_MRSA", 0}, | |
54 | #endif | |
55 | ||
56 | #ifdef LTC_MKAT | |
57 | {"LTC_MKAT", 1}, | |
58 | _C_STRINGIFY(MIN_KAT_SIZE), | |
59 | _C_STRINGIFY(MAX_KAT_SIZE), | |
60 | #else | |
61 | {"LTC_MKAT", 0}, | |
62 | #endif | |
63 | ||
64 | #ifdef LTC_MECC | |
65 | {"LTC_MECC", 1}, | |
66 | _C_STRINGIFY(ECC_BUF_SIZE), | |
67 | _C_STRINGIFY(ECC_MAXSIZE), | |
68 | #else | |
69 | {"LTC_MECC", 0}, | |
70 | #endif | |
71 | ||
72 | #ifdef LTC_MDSA | |
73 | {"LTC_MDSA", 1}, | |
74 | _C_STRINGIFY(LTC_MDSA_DELTA), | |
75 | _C_STRINGIFY(LTC_MDSA_MAX_GROUP), | |
76 | #else | |
77 | {"LTC_MDSA", 0}, | |
78 | #endif | |
79 | ||
80 | #ifdef LTC_DER_MAX_PUBKEY_SIZE | |
81 | _C_STRINGIFY(LTC_DER_MAX_PUBKEY_SIZE), | |
82 | #endif | |
83 | #ifdef LTC_MILLER_RABIN_REPS | |
84 | _C_STRINGIFY(LTC_MILLER_RABIN_REPS), | |
85 | #endif | |
86 | ||
87 | #ifdef LTC_CTR_MODE | |
88 | {"LTC_CTR_MODE", 1}, | |
89 | _C_STRINGIFY(CTR_COUNTER_LITTLE_ENDIAN), | |
90 | _C_STRINGIFY(CTR_COUNTER_BIG_ENDIAN), | |
91 | _C_STRINGIFY(LTC_CTR_RFC3686), | |
92 | #else | |
93 | {"LTC_CTR_MODE", 0}, | |
94 | #endif | |
95 | ||
96 | _C_STRINGIFY(MAXBLOCKSIZE), | |
97 | _C_STRINGIFY(TAB_SIZE), | |
98 | _C_STRINGIFY(ARGTYPE), | |
99 | ||
100 | #ifdef LTM_DESC | |
101 | {"LTM_DESC", 1}, | |
102 | #else | |
103 | {"LTM_DESC", 0}, | |
104 | #endif | |
105 | #ifdef TFM_DESC | |
106 | {"TFM_DESC", 1}, | |
107 | #else | |
108 | {"TFM_DESC", 0}, | |
109 | #endif | |
110 | #ifdef GMP_DESC | |
111 | {"GMP_DESC", 1}, | |
112 | #else | |
113 | {"GMP_DESC", 0}, | |
114 | #endif | |
115 | ||
116 | #ifdef LTC_FAST | |
117 | {"LTC_FAST", 1}, | |
118 | #else | |
119 | {"LTC_FAST", 0}, | |
120 | #endif | |
121 | ||
122 | #ifdef LTC_NO_FILE | |
123 | {"LTC_NO_FILE", 1}, | |
124 | #else | |
125 | {"LTC_NO_FILE", 0}, | |
126 | #endif | |
127 | ||
128 | #ifdef ENDIAN_LITTLE | |
129 | {"ENDIAN_LITTLE", 1}, | |
130 | #else | |
131 | {"ENDIAN_LITTLE", 0}, | |
132 | #endif | |
133 | ||
134 | #ifdef ENDIAN_BIG | |
135 | {"ENDIAN_BIG", 1}, | |
136 | #else | |
137 | {"ENDIAN_BIG", 0}, | |
138 | #endif | |
139 | ||
140 | #ifdef ENDIAN_32BITWORD | |
141 | {"ENDIAN_32BITWORD", 1}, | |
142 | #else | |
143 | {"ENDIAN_32BITWORD", 0}, | |
144 | #endif | |
145 | ||
146 | #ifdef ENDIAN_64BITWORD | |
147 | {"ENDIAN_64BITWORD", 1}, | |
148 | #else | |
149 | {"ENDIAN_64BITWORD", 0}, | |
150 | #endif | |
151 | ||
152 | #ifdef ENDIAN_NEUTRAL | |
153 | {"ENDIAN_NEUTRAL", 1}, | |
154 | #else | |
155 | {"ENDIAN_NEUTRAL", 0}, | |
156 | #endif | |
157 | }; | |
158 | ||
159 | ||
160 | /* crypt_get_constant() | |
161 | * valueout will be the value of the named constant | |
162 | * return -1 if named item not found | |
163 | */ | |
164 | int crypt_get_constant(const char* namein, int *valueout) { | |
165 | int i; | |
166 | int _crypt_constants_len = sizeof(_crypt_constants) / sizeof(_crypt_constants[0]); | |
167 | for (i=0; i<_crypt_constants_len; i++) { | |
168 | if (XSTRCMP(_crypt_constants[i].name, namein) == 0) { | |
169 | *valueout = _crypt_constants[i].value; | |
170 | return 0; | |
171 | } | |
172 | } | |
173 | return 1; | |
174 | } | |
175 | ||
176 | /* crypt_list_all_constants() | |
177 | * if names_list is NULL, names_list_size will be the minimum | |
178 | * number of bytes needed to receive the complete names_list | |
179 | * if names_list is NOT NULL, names_list must be the addr of | |
180 | * sufficient memory allocated into which the names_list | |
181 | * is to be written. Also, the value in names_list_size | |
182 | * sets the upper bound of the number of characters to be | |
183 | * written. | |
184 | * a -1 return value signifies insufficient space made available | |
185 | */ | |
186 | int crypt_list_all_constants(char *names_list, unsigned int *names_list_size) { | |
187 | int i; | |
188 | unsigned int total_len = 0; | |
189 | char number[32], *ptr; | |
190 | int number_len; | |
191 | int count = sizeof(_crypt_constants) / sizeof(_crypt_constants[0]); | |
192 | ||
193 | /* calculate amount of memory required for the list */ | |
194 | for (i=0; i<count; i++) { | |
195 | total_len += (unsigned int)strlen(_crypt_constants[i].name) + 1; | |
196 | /* the above +1 is for the commas */ | |
197 | number_len = snprintf(number, sizeof(number), "%d", _crypt_constants[i].value); | |
198 | if ((number_len < 0) || | |
199 | ((unsigned int)number_len >= sizeof(number))) | |
200 | return -1; | |
201 | total_len += number_len + 1; | |
202 | /* this last +1 is for newlines (and ending NULL) */ | |
203 | } | |
204 | ||
205 | if (names_list == NULL) { | |
206 | *names_list_size = total_len; | |
207 | } else { | |
208 | if (total_len > *names_list_size) { | |
209 | return -1; | |
210 | } | |
211 | /* build the names list */ | |
212 | ptr = names_list; | |
213 | for (i=0; i<count; i++) { | |
214 | strcpy(ptr, _crypt_constants[i].name); | |
215 | ptr += strlen(_crypt_constants[i].name); | |
216 | strcpy(ptr, ","); | |
217 | ptr += 1; | |
218 | ||
219 | number_len = snprintf(number, sizeof(number), "%d", _crypt_constants[i].value); | |
220 | strcpy(ptr, number); | |
221 | ptr += number_len; | |
222 | strcpy(ptr, "\n"); | |
223 | ptr += 1; | |
224 | } | |
225 | /* to remove the trailing new-line */ | |
226 | ptr -= 1; | |
227 | *ptr = 0; | |
228 | } | |
229 | return 0; | |
230 | } | |
231 | ||
232 | ||
233 | /* ref: $Format:%D$ */ | |
234 | /* git commit: $Format:%H$ */ | |
235 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | #include "tomcrypt.h" | |
9 | ||
10 | #ifdef LTC_PRNG_ENABLE_LTC_RNG | |
11 | unsigned long (*ltc_rng)(unsigned char *out, unsigned long outlen, void (*callback)(void)); | |
12 | #endif | |
13 | ||
14 | /* ref: $Format:%D$ */ | |
15 | /* git commit: $Format:%H$ */ | |
16 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | ||
9 | #include "tomcrypt.h" | |
10 | ||
11 | /** | |
12 | @file crypt_register_all_ciphers.c | |
13 | ||
14 | Steffen Jaeckel | |
15 | */ | |
16 | ||
17 | #define REGISTER_CIPHER(h) do {\ | |
18 | LTC_ARGCHK((err = register_cipher(h)) != -1); \ | |
19 | } while(0) | |
20 | ||
21 | int register_all_ciphers(void) | |
22 | { | |
23 | int err = CRYPT_NOP; | |
24 | ||
25 | #ifdef LTC_RIJNDAEL | |
26 | #ifdef ENCRYPT_ONLY | |
27 | /* alternative would be | |
28 | * register_cipher(&rijndael_enc_desc); | |
29 | */ | |
30 | REGISTER_CIPHER(&aes_enc_desc); | |
31 | #else | |
32 | /* alternative would be | |
33 | * register_cipher(&rijndael_desc); | |
34 | */ | |
35 | REGISTER_CIPHER(&aes_desc); | |
36 | #endif | |
37 | #endif | |
38 | #ifdef LTC_BLOWFISH | |
39 | REGISTER_CIPHER(&blowfish_desc); | |
40 | #endif | |
41 | #ifdef LTC_XTEA | |
42 | REGISTER_CIPHER(&xtea_desc); | |
43 | #endif | |
44 | #ifdef LTC_RC5 | |
45 | REGISTER_CIPHER(&rc5_desc); | |
46 | #endif | |
47 | #ifdef LTC_RC6 | |
48 | REGISTER_CIPHER(&rc6_desc); | |
49 | #endif | |
50 | #ifdef LTC_SAFERP | |
51 | REGISTER_CIPHER(&saferp_desc); | |
52 | #endif | |
53 | #ifdef LTC_TWOFISH | |
54 | REGISTER_CIPHER(&twofish_desc); | |
55 | #endif | |
56 | #ifdef LTC_SAFER | |
57 | REGISTER_CIPHER(&safer_k64_desc); | |
58 | REGISTER_CIPHER(&safer_sk64_desc); | |
59 | REGISTER_CIPHER(&safer_k128_desc); | |
60 | REGISTER_CIPHER(&safer_sk128_desc); | |
61 | #endif | |
62 | #ifdef LTC_RC2 | |
63 | REGISTER_CIPHER(&rc2_desc); | |
64 | #endif | |
65 | #ifdef LTC_DES | |
66 | REGISTER_CIPHER(&des_desc); | |
67 | REGISTER_CIPHER(&des3_desc); | |
68 | #endif | |
69 | #ifdef LTC_CAST5 | |
70 | REGISTER_CIPHER(&cast5_desc); | |
71 | #endif | |
72 | #ifdef LTC_NOEKEON | |
73 | REGISTER_CIPHER(&noekeon_desc); | |
74 | #endif | |
75 | #ifdef LTC_SKIPJACK | |
76 | REGISTER_CIPHER(&skipjack_desc); | |
77 | #endif | |
78 | #ifdef LTC_ANUBIS | |
79 | REGISTER_CIPHER(&anubis_desc); | |
80 | #endif | |
81 | #ifdef LTC_KHAZAD | |
82 | REGISTER_CIPHER(&khazad_desc); | |
83 | #endif | |
84 | #ifdef LTC_KSEED | |
85 | REGISTER_CIPHER(&kseed_desc); | |
86 | #endif | |
87 | #ifdef LTC_KASUMI | |
88 | REGISTER_CIPHER(&kasumi_desc); | |
89 | #endif | |
90 | #ifdef LTC_MULTI2 | |
91 | REGISTER_CIPHER(&multi2_desc); | |
92 | #endif | |
93 | #ifdef LTC_CAMELLIA | |
94 | REGISTER_CIPHER(&camellia_desc); | |
95 | #endif | |
96 | return err; | |
97 | } | |
98 | ||
99 | /* ref: $Format:%D$ */ | |
100 | /* git commit: $Format:%H$ */ | |
101 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | ||
9 | #include "tomcrypt.h" | |
10 | ||
11 | /** | |
12 | @file crypt_register_all_hashes.c | |
13 | ||
14 | Steffen Jaeckel | |
15 | */ | |
16 | ||
17 | #define REGISTER_HASH(h) do {\ | |
18 | LTC_ARGCHK((err = register_hash(h)) != -1); \ | |
19 | } while(0) | |
20 | ||
21 | int register_all_hashes(void) | |
22 | { | |
23 | int err = CRYPT_NOP; | |
24 | #ifdef LTC_TIGER | |
25 | REGISTER_HASH(&tiger_desc); | |
26 | #endif | |
27 | #ifdef LTC_MD2 | |
28 | REGISTER_HASH(&md2_desc); | |
29 | #endif | |
30 | #ifdef LTC_MD4 | |
31 | REGISTER_HASH(&md4_desc); | |
32 | #endif | |
33 | #ifdef LTC_MD5 | |
34 | REGISTER_HASH(&md5_desc); | |
35 | #endif | |
36 | #ifdef LTC_SHA1 | |
37 | REGISTER_HASH(&sha1_desc); | |
38 | #endif | |
39 | #ifdef LTC_SHA224 | |
40 | REGISTER_HASH(&sha224_desc); | |
41 | #endif | |
42 | #ifdef LTC_SHA256 | |
43 | REGISTER_HASH(&sha256_desc); | |
44 | #endif | |
45 | #ifdef LTC_SHA384 | |
46 | REGISTER_HASH(&sha384_desc); | |
47 | #endif | |
48 | #ifdef LTC_SHA512 | |
49 | REGISTER_HASH(&sha512_desc); | |
50 | #endif | |
51 | #ifdef LTC_SHA512_224 | |
52 | REGISTER_HASH(&sha512_224_desc); | |
53 | #endif | |
54 | #ifdef LTC_SHA512_256 | |
55 | REGISTER_HASH(&sha512_256_desc); | |
56 | #endif | |
57 | #ifdef LTC_SHA3 | |
58 | REGISTER_HASH(&sha3_224_desc); | |
59 | REGISTER_HASH(&sha3_256_desc); | |
60 | REGISTER_HASH(&sha3_384_desc); | |
61 | REGISTER_HASH(&sha3_512_desc); | |
62 | #endif | |
63 | #ifdef LTC_RIPEMD128 | |
64 | REGISTER_HASH(&rmd128_desc); | |
65 | #endif | |
66 | #ifdef LTC_RIPEMD160 | |
67 | REGISTER_HASH(&rmd160_desc); | |
68 | #endif | |
69 | #ifdef LTC_RIPEMD256 | |
70 | REGISTER_HASH(&rmd256_desc); | |
71 | #endif | |
72 | #ifdef LTC_RIPEMD320 | |
73 | REGISTER_HASH(&rmd320_desc); | |
74 | #endif | |
75 | #ifdef LTC_WHIRLPOOL | |
76 | REGISTER_HASH(&whirlpool_desc); | |
77 | #endif | |
78 | #ifdef LTC_BLAKE2S | |
79 | REGISTER_HASH(&blake2s_128_desc); | |
80 | REGISTER_HASH(&blake2s_160_desc); | |
81 | REGISTER_HASH(&blake2s_224_desc); | |
82 | REGISTER_HASH(&blake2s_256_desc); | |
83 | #endif | |
84 | #ifdef LTC_BLAKE2S | |
85 | REGISTER_HASH(&blake2b_160_desc); | |
86 | REGISTER_HASH(&blake2b_256_desc); | |
87 | REGISTER_HASH(&blake2b_384_desc); | |
88 | REGISTER_HASH(&blake2b_512_desc); | |
89 | #endif | |
90 | #ifdef LTC_CHC_HASH | |
91 | REGISTER_HASH(&chc_desc); | |
92 | LTC_ARGCHK((err = chc_register(find_cipher_any("aes", 8, 16))) == CRYPT_OK); | |
93 | #endif | |
94 | return err; | |
95 | } | |
96 | ||
97 | /* ref: $Format:%D$ */ | |
98 | /* git commit: $Format:%H$ */ | |
99 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | ||
9 | #include "tomcrypt.h" | |
10 | ||
11 | /** | |
12 | @file crypt_register_all_prngs.c | |
13 | ||
14 | Steffen Jaeckel | |
15 | */ | |
16 | ||
17 | #define REGISTER_PRNG(h) do {\ | |
18 | LTC_ARGCHK((err = register_prng(h)) != -1); \ | |
19 | } while(0) | |
20 | ||
21 | int register_all_prngs(void) | |
22 | { | |
23 | int err = CRYPT_NOP; | |
24 | #ifdef LTC_YARROW | |
25 | REGISTER_PRNG(&yarrow_desc); | |
26 | #endif | |
27 | #ifdef LTC_FORTUNA | |
28 | REGISTER_PRNG(&fortuna_desc); | |
29 | #endif | |
30 | #ifdef LTC_RC4 | |
31 | REGISTER_PRNG(&rc4_desc); | |
32 | #endif | |
33 | #ifdef LTC_CHACHA20_PRNG | |
34 | REGISTER_PRNG(&chacha20_prng_desc); | |
35 | #endif | |
36 | #ifdef LTC_SOBER128 | |
37 | REGISTER_PRNG(&sober128_desc); | |
38 | #endif | |
39 | #ifdef LTC_SPRNG | |
40 | REGISTER_PRNG(&sprng_desc); | |
41 | #endif | |
42 | ||
43 | return err; | |
44 | } | |
45 | ||
46 | /* ref: $Format:%D$ */ | |
47 | /* git commit: $Format:%H$ */ | |
48 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | #include "tomcrypt.h" | |
9 | ||
10 | /** | |
11 | @file crypt_sizes.c | |
12 | ||
13 | Make various struct sizes available to dynamic languages | |
14 | like Python - Larry Bugbee, February 2013 | |
15 | ||
16 | LB - Dec 2013 - revised to include compiler define options | |
17 | */ | |
18 | ||
19 | ||
20 | typedef struct { | |
21 | const char *name; | |
22 | const unsigned int size; | |
23 | } crypt_size; | |
24 | ||
25 | #define _SZ_STRINGIFY_S(s) { #s, sizeof(struct s) } | |
26 | #define _SZ_STRINGIFY_T(s) { #s, sizeof(s) } | |
27 | ||
28 | static const crypt_size _crypt_sizes[] = { | |
29 | /* hash state sizes */ | |
30 | _SZ_STRINGIFY_S(ltc_hash_descriptor), | |
31 | _SZ_STRINGIFY_T(hash_state), | |
32 | #ifdef LTC_SHA256 | |
33 | _SZ_STRINGIFY_S(sha256_state), | |
34 | #endif | |
35 | #ifdef LTC_SHA3 | |
36 | _SZ_STRINGIFY_S(sha3_state), | |
37 | #endif | |
38 | #ifdef LTC_SHA512 | |
39 | _SZ_STRINGIFY_S(sha512_state), | |
40 | #endif | |
41 | #ifdef LTC_WHIRLPOOL | |
42 | _SZ_STRINGIFY_S(whirlpool_state), | |
43 | #endif | |
44 | #ifdef LTC_MD2 | |
45 | _SZ_STRINGIFY_S(md2_state), | |
46 | #endif | |
47 | #ifdef LTC_MD4 | |
48 | _SZ_STRINGIFY_S(md4_state), | |
49 | #endif | |
50 | #ifdef LTC_MD5 | |
51 | _SZ_STRINGIFY_S(md5_state), | |
52 | #endif | |
53 | #ifdef LTC_RIPEMD128 | |
54 | _SZ_STRINGIFY_S(rmd128_state), | |
55 | #endif | |
56 | #ifdef LTC_RIPEMD160 | |
57 | _SZ_STRINGIFY_S(rmd160_state), | |
58 | #endif | |
59 | #ifdef LTC_RIPEMD256 | |
60 | _SZ_STRINGIFY_S(rmd256_state), | |
61 | #endif | |
62 | #ifdef LTC_RIPEMD320 | |
63 | _SZ_STRINGIFY_S(rmd320_state), | |
64 | #endif | |
65 | #ifdef LTC_SHA1 | |
66 | _SZ_STRINGIFY_S(sha1_state), | |
67 | #endif | |
68 | #ifdef LTC_TIGER | |
69 | _SZ_STRINGIFY_S(tiger_state), | |
70 | #endif | |
71 | #ifdef LTC_BLAKE2S | |
72 | _SZ_STRINGIFY_S(blake2s_state), | |
73 | #endif | |
74 | #ifdef LTC_BLAKE2B | |
75 | _SZ_STRINGIFY_S(blake2b_state), | |
76 | #endif | |
77 | #ifdef LTC_CHC_HASH | |
78 | _SZ_STRINGIFY_S(chc_state), | |
79 | #endif | |
80 | ||
81 | /* block cipher key sizes */ | |
82 | _SZ_STRINGIFY_S(ltc_cipher_descriptor), | |
83 | _SZ_STRINGIFY_T(symmetric_key), | |
84 | #ifdef LTC_ANUBIS | |
85 | _SZ_STRINGIFY_S(anubis_key), | |
86 | #endif | |
87 | #ifdef LTC_CAMELLIA | |
88 | _SZ_STRINGIFY_S(camellia_key), | |
89 | #endif | |
90 | #ifdef LTC_BLOWFISH | |
91 | _SZ_STRINGIFY_S(blowfish_key), | |
92 | #endif | |
93 | #ifdef LTC_CAST5 | |
94 | _SZ_STRINGIFY_S(cast5_key), | |
95 | #endif | |
96 | #ifdef LTC_DES | |
97 | _SZ_STRINGIFY_S(des_key), | |
98 | _SZ_STRINGIFY_S(des3_key), | |
99 | #endif | |
100 | #ifdef LTC_KASUMI | |
101 | _SZ_STRINGIFY_S(kasumi_key), | |
102 | #endif | |
103 | #ifdef LTC_KHAZAD | |
104 | _SZ_STRINGIFY_S(khazad_key), | |
105 | #endif | |
106 | #ifdef LTC_KSEED | |
107 | _SZ_STRINGIFY_S(kseed_key), | |
108 | #endif | |
109 | #ifdef LTC_MULTI2 | |
110 | _SZ_STRINGIFY_S(multi2_key), | |
111 | #endif | |
112 | #ifdef LTC_NOEKEON | |
113 | _SZ_STRINGIFY_S(noekeon_key), | |
114 | #endif | |
115 | #ifdef LTC_RC2 | |
116 | _SZ_STRINGIFY_S(rc2_key), | |
117 | #endif | |
118 | #ifdef LTC_RC5 | |
119 | _SZ_STRINGIFY_S(rc5_key), | |
120 | #endif | |
121 | #ifdef LTC_RC6 | |
122 | _SZ_STRINGIFY_S(rc6_key), | |
123 | #endif | |
124 | #ifdef LTC_SKIPJACK | |
125 | _SZ_STRINGIFY_S(skipjack_key), | |
126 | #endif | |
127 | #ifdef LTC_XTEA | |
128 | _SZ_STRINGIFY_S(xtea_key), | |
129 | #endif | |
130 | #ifdef LTC_RIJNDAEL | |
131 | _SZ_STRINGIFY_S(rijndael_key), | |
132 | #endif | |
133 | #ifdef LTC_SAFER | |
134 | _SZ_STRINGIFY_S(safer_key), | |
135 | #endif | |
136 | #ifdef LTC_SAFERP | |
137 | _SZ_STRINGIFY_S(saferp_key), | |
138 | #endif | |
139 | #ifdef LTC_TWOFISH | |
140 | _SZ_STRINGIFY_S(twofish_key), | |
141 | #endif | |
142 | ||
143 | /* mode sizes */ | |
144 | #ifdef LTC_CBC_MODE | |
145 | _SZ_STRINGIFY_T(symmetric_CBC), | |
146 | #endif | |
147 | #ifdef LTC_CFB_MODE | |
148 | _SZ_STRINGIFY_T(symmetric_CFB), | |
149 | #endif | |
150 | #ifdef LTC_CTR_MODE | |
151 | _SZ_STRINGIFY_T(symmetric_CTR), | |
152 | #endif | |
153 | #ifdef LTC_ECB_MODE | |
154 | _SZ_STRINGIFY_T(symmetric_ECB), | |
155 | #endif | |
156 | #ifdef LTC_F8_MODE | |
157 | _SZ_STRINGIFY_T(symmetric_F8), | |
158 | #endif | |
159 | #ifdef LTC_LRW_MODE | |
160 | _SZ_STRINGIFY_T(symmetric_LRW), | |
161 | #endif | |
162 | #ifdef LTC_OFB_MODE | |
163 | _SZ_STRINGIFY_T(symmetric_OFB), | |
164 | #endif | |
165 | ||
166 | /* MAC sizes -- no states for ccm, lrw */ | |
167 | #ifdef LTC_F9_MODE | |
168 | _SZ_STRINGIFY_T(f9_state), | |
169 | #endif | |
170 | #ifdef LTC_HMAC | |
171 | _SZ_STRINGIFY_T(hmac_state), | |
172 | #endif | |
173 | #ifdef LTC_OMAC | |
174 | _SZ_STRINGIFY_T(omac_state), | |
175 | #endif | |
176 | #ifdef LTC_PELICAN | |
177 | _SZ_STRINGIFY_T(pelican_state), | |
178 | #endif | |
179 | #ifdef LTC_PMAC | |
180 | _SZ_STRINGIFY_T(pmac_state), | |
181 | #endif | |
182 | #ifdef LTC_XCBC | |
183 | _SZ_STRINGIFY_T(xcbc_state), | |
184 | #endif | |
185 | #ifdef LTC_OCB_MODE | |
186 | _SZ_STRINGIFY_T(ocb_state), | |
187 | #endif | |
188 | #ifdef LTC_OCB3_MODE | |
189 | _SZ_STRINGIFY_T(ocb3_state), | |
190 | #endif | |
191 | #ifdef LTC_GCM_MODE | |
192 | _SZ_STRINGIFY_T(gcm_state), | |
193 | #endif | |
194 | #ifdef LTC_EAX_MODE | |
195 | _SZ_STRINGIFY_T(eax_state), | |
196 | #endif | |
197 | #ifdef LTC_CCM_MODE | |
198 | /* not defined */ | |
199 | #endif | |
200 | #ifdef LRW_MODE | |
201 | /* not defined */ | |
202 | #endif | |
203 | ||
204 | /* asymmetric keys */ | |
205 | #ifdef LTC_MRSA | |
206 | _SZ_STRINGIFY_T(rsa_key), | |
207 | #endif | |
208 | #ifdef LTC_MDSA | |
209 | _SZ_STRINGIFY_T(dsa_key), | |
210 | #endif | |
211 | #ifdef LTC_MDH | |
212 | _SZ_STRINGIFY_T(dh_key), | |
213 | #endif | |
214 | #ifdef LTC_MECC | |
215 | _SZ_STRINGIFY_T(ltc_ecc_set_type), | |
216 | _SZ_STRINGIFY_T(ecc_key), | |
217 | _SZ_STRINGIFY_T(ecc_point), | |
218 | #endif | |
219 | #ifdef LTC_MKAT | |
220 | _SZ_STRINGIFY_T(katja_key), | |
221 | #endif | |
222 | ||
223 | /* prng state sizes */ | |
224 | _SZ_STRINGIFY_S(ltc_prng_descriptor), | |
225 | _SZ_STRINGIFY_T(prng_state), | |
226 | #ifdef LTC_FORTUNA | |
227 | _SZ_STRINGIFY_S(fortuna_prng), | |
228 | #endif | |
229 | #ifdef LTC_CHACHA20_PRNG | |
230 | _SZ_STRINGIFY_S(chacha20_prng), | |
231 | #endif | |
232 | #ifdef LTC_RC4 | |
233 | _SZ_STRINGIFY_S(rc4_prng), | |
234 | #endif | |
235 | #ifdef LTC_SOBER128 | |
236 | _SZ_STRINGIFY_S(sober128_prng), | |
237 | #endif | |
238 | #ifdef LTC_YARROW | |
239 | _SZ_STRINGIFY_S(yarrow_prng), | |
240 | #endif | |
241 | /* sprng has no state as it uses other potentially available sources */ | |
242 | /* like /dev/random. See Developers Guide for more info. */ | |
243 | ||
244 | #ifdef LTC_ADLER32 | |
245 | _SZ_STRINGIFY_T(adler32_state), | |
246 | #endif | |
247 | #ifdef LTC_CRC32 | |
248 | _SZ_STRINGIFY_T(crc32_state), | |
249 | #endif | |
250 | }; | |
251 | ||
252 | /* crypt_get_size() | |
253 | * sizeout will be the size (bytes) of the named struct or union | |
254 | * return -1 if named item not found | |
255 | */ | |
256 | int crypt_get_size(const char* namein, unsigned int *sizeout) { | |
257 | int i; | |
258 | int count = sizeof(_crypt_sizes) / sizeof(_crypt_sizes[0]); | |
259 | for (i=0; i<count; i++) { | |
260 | if (XSTRCMP(_crypt_sizes[i].name, namein) == 0) { | |
261 | *sizeout = _crypt_sizes[i].size; | |
262 | return 0; | |
263 | } | |
264 | } | |
265 | return -1; | |
266 | } | |
267 | ||
268 | /* crypt_list_all_sizes() | |
269 | * if names_list is NULL, names_list_size will be the minimum | |
270 | * size needed to receive the complete names_list | |
271 | * if names_list is NOT NULL, names_list must be the addr with | |
272 | * sufficient memory allocated into which the names_list | |
273 | * is to be written. Also, the value in names_list_size | |
274 | * sets the upper bound of the number of characters to be | |
275 | * written. | |
276 | * a -1 return value signifies insufficient space made available | |
277 | */ | |
278 | int crypt_list_all_sizes(char *names_list, unsigned int *names_list_size) { | |
279 | int i; | |
280 | unsigned int total_len = 0; | |
281 | char number[32], *ptr; | |
282 | int number_len; | |
283 | int count = sizeof(_crypt_sizes) / sizeof(_crypt_sizes[0]); | |
284 | ||
285 | /* calculate amount of memory required for the list */ | |
286 | for (i=0; i<count; i++) { | |
287 | total_len += (unsigned int)strlen(_crypt_sizes[i].name) + 1; | |
288 | /* the above +1 is for the commas */ | |
289 | number_len = snprintf(number, sizeof(number), "%u", _crypt_sizes[i].size); | |
290 | if ((number_len < 0) || | |
291 | ((unsigned int)number_len >= sizeof(number))) | |
292 | return -1; | |
293 | total_len += (unsigned int)strlen(number) + 1; | |
294 | /* this last +1 is for newlines (and ending NULL) */ | |
295 | } | |
296 | ||
297 | if (names_list == NULL) { | |
298 | *names_list_size = total_len; | |
299 | } else { | |
300 | if (total_len > *names_list_size) { | |
301 | return -1; | |
302 | } | |
303 | /* build the names list */ | |
304 | ptr = names_list; | |
305 | for (i=0; i<count; i++) { | |
306 | strcpy(ptr, _crypt_sizes[i].name); | |
307 | ptr += strlen(_crypt_sizes[i].name); | |
308 | strcpy(ptr, ","); | |
309 | ptr += 1; | |
310 | ||
311 | number_len = snprintf(number, sizeof(number), "%u", _crypt_sizes[i].size); | |
312 | strcpy(ptr, number); | |
313 | ptr += number_len; | |
314 | strcpy(ptr, "\n"); | |
315 | ptr += 1; | |
316 | } | |
317 | /* to remove the trailing new-line */ | |
318 | ptr -= 1; | |
319 | *ptr = 0; | |
320 | } | |
321 | return 0; | |
322 | } | |
323 | ||
324 | ||
325 | /* ref: $Format:%D$ */ | |
326 | /* git commit: $Format:%H$ */ | |
327 | /* commit time: $Format:%ai$ */ |
0 | /* LibTomCrypt, modular cryptographic library -- Tom St Denis | |
1 | * | |
2 | * LibTomCrypt is a library that provides various cryptographic | |
3 | * algorithms in a highly modular and flexible manner. | |
4 | * | |
5 | * The library is free for all purposes without any express | |
6 | * guarantee it works. | |
7 | */ | |
8 | #include "tomcrypt.h" | |
9 | ||
10 | /** | |
11 | @file der_sequence_shrink.c | |
12 | Free memory allocated for CONSTRUCTED, SET or SEQUENCE elements by der_decode_sequence_flexi(), Steffen Jaeckel | |
13 | */ | |
14 | ||
15 | #ifdef LTC_DER | |
16 | ||
17 | /** | |
18 | Free memory allocated for CONSTRUCTED, | |
19 | SET or SEQUENCE elements by der_decode_sequence_flexi() | |
20 | @param in The list to shrink | |
21 | */ | |
22 | void der_sequence_shrink(ltc_asn1_list *in) | |
23 | { | |
24 | if (!in) return; | |
25 | ||
26 | /* now walk the list and free stuff */ | |
27 | while (in != NULL) { | |
28 | /* is there a child? */ | |
29 | if (in->child) { | |
30 | der_sequence_shrink(in->child); | |
31 | } | |
32 | ||
33 | switch (in->type) { | |
34 | case LTC_ASN1_CONSTRUCTED: | |
35 | case LTC_ASN1_SET: | |
36 | case LTC_ASN1_SEQUENCE : if (in->data != NULL) { XFREE(in->data); in->data = NULL; } break; | |
37 | default: break; | |
38 | } | |
39 | ||
40 | /* move to next and free current */ | |
41 | in = in->next; | |
42 | } | |
43 | } | |
44 | ||
45 | #endif | |
46 | ||
47 | /* ref: $Format:%D$ */ | |
48 | /* git commit: $Format:%H$ */ | |
49 | /* commit time: $Format:%ai$ */ |
17 | 17 | void dh_free(dh_key *key) |
18 | 18 | { |
19 | 19 | LTC_ARGCHKVD(key != NULL); |
20 | mp_cleanup_multi(&key->base, &key->prime, &key->x, &key->y, NULL); | |
20 | mp_cleanup_multi(&key->prime, &key->base, &key->y, &key->x, NULL); | |
21 | 21 | } |
22 | 22 | |
23 | 23 | #endif /* LTC_MDH */ |
90 | 90 | zeromem(buf, keysize); |
91 | 91 | XFREE(buf); |
92 | 92 | freemp: |
93 | if (err != CRYPT_OK) mp_clear_multi(key->x, key->y, key->base, key->prime, NULL); | |
93 | if (err != CRYPT_OK) dh_free(key); | |
94 | 94 | return err; |
95 | 95 | } |
96 | 96 |
27 | 27 | LTC_ARGCHK(key != NULL); |
28 | 28 | |
29 | 29 | /* init */ |
30 | if ((err = mp_init_multi(&key->prime, &key->base, &key->x, &key->y, NULL)) != CRYPT_OK) { | |
30 | if ((err = mp_init_multi(&key->x, &key->y, &key->base, &key->prime, NULL)) != CRYPT_OK) { | |
31 | 31 | return err; |
32 | 32 | } |
33 | 33 | |
85 | 85 | return CRYPT_OK; |
86 | 86 | |
87 | 87 | error: |
88 | mp_clear_multi(key->prime, key->base, key->y, key->x, NULL); | |
88 | dh_free(key); | |
89 | 89 | return err; |
90 | 90 | } |
91 | 91 |
130 | 130 | LTC_ASN1_INTEGER, 1UL, key->qP, |
131 | 131 | LTC_ASN1_EOL, 0UL, NULL); |
132 | 132 | if (err != CRYPT_OK) { goto LBL_ERR; } |
133 | mp_clear_multi(zero, iter, NULL); | |
134 | 133 | key->type = PK_PRIVATE; |
135 | 134 | err = CRYPT_OK; |
136 | 135 | goto LBL_FREE2; |
137 | 136 | |
138 | 137 | LBL_ERR: |
139 | mp_clear_multi(key->d, key->e, key->N, key->dQ, key->dP, key->qP, key->p, key->q, zero, iter, NULL); | |
138 | rsa_free(key); | |
140 | 139 | LBL_FREE2: |
140 | mp_clear_multi(iter, zero, NULL); | |
141 | 141 | XFREE(buf2); |
142 | 142 | LBL_FREE1: |
143 | 143 | XFREE(buf1); |