/* Copyright (c) (2012,2013,2014,2015,2016,2017,2018,2019,2020) Apple Inc. All rights reserved. * * corecrypto is licensed under Apple Inc.’s Internal Use License Agreement (which * is contained in the License.txt file distributed with corecrypto) and only to * people who accept that license. IMPORTANT: Any license rights granted to you by * Apple Inc. (if any) are limited to internal use within your organization only on * devices and computers you own or control, for the sole purpose of verifying the * security characteristics and correct functioning of the Apple Software. You may * not, directly or indirectly, redistribute the Apple Software or any portions thereof. */ //#include // -------------------------------------------------------------- // while the include above is correct for iOS and OSX builds it // fails for the simulator build // -------------------------------------------------------------- #include "../cc/corecrypto/cc_config.h" #include #ifndef _CORECRYPTO_CC_CONFIG_H_ #error "CC_CONFIG was not included, it is required for the logic below to be correct" #endif _fipspost_post _cc_abort _cc_atfork_prepare _cc_atfork_parent _cc_atfork_child _cc_cmp_safe _cc_clear _ccaes_cbc_decrypt_mode _ccaes_cbc_encrypt_mode _ccaes_ccm_decrypt_mode _ccaes_ccm_encrypt_mode _ccaes_cfb8_decrypt_mode _ccaes_cfb8_encrypt_mode _ccaes_cfb_decrypt_mode _ccaes_cfb_encrypt_mode _ccaes_ctr_crypt_mode _ccaes_ecb_decrypt_mode _ccaes_ecb_encrypt_mode _ccaes_gladman_cbc_decrypt_mode _ccaes_gladman_cbc_encrypt_mode _ccaes_gcm_decrypt_mode _ccaes_gcm_encrypt_mode _ccgcm_init_with_iv _ccgcm_inc_iv _ccgcm_one_shot _ccgcm_one_shot_legacy _ccgcm_set_iv_legacy _cccbc_one_shot _ccaes_ltc_ecb_encrypt_mode _ccaes_ltc_ecb_decrypt_mode _ccaes_ofb_crypt_mode _ccaes_xts_decrypt_mode _ccaes_xts_encrypt_mode _ccxts_one_shot _ccaes_siv_encrypt_mode _ccaes_siv_decrypt_mode _ccaes_siv_hmac_sha256_decrypt_mode _ccaes_siv_hmac_sha256_encrypt_mode _ccaes_unwind _ccsiv_hmac_plaintext_size _ccsiv_hmac_ciphertext_size _ccsiv_hmac_init _ccsiv_hmac_aad _ccsiv_hmac_set_nonce _ccsiv_hmac_crypt _ccsiv_hmac_reset _ccsiv_hmac_one_shot _ccblowfish_cbc_decrypt_mode _ccblowfish_cbc_encrypt_mode _ccblowfish_cfb8_decrypt_mode _ccblowfish_cfb8_encrypt_mode _ccblowfish_cfb_decrypt_mode _ccblowfish_cfb_encrypt_mode _ccblowfish_ctr_crypt_mode _ccblowfish_ecb_decrypt_mode _ccblowfish_ecb_encrypt_mode _ccblowfish_ofb_crypt_mode _cccast_cbc_decrypt_mode _cccast_cbc_encrypt_mode _cccast_cfb8_decrypt_mode _cccast_cfb8_encrypt_mode _cccast_cfb_decrypt_mode _cccast_cfb_encrypt_mode _cccast_ctr_crypt_mode _cccast_ecb_decrypt_mode _cccast_ecb_encrypt_mode _cccast_ofb_crypt_mode _ccchacha20 _ccchacha20_init _ccchacha20_reset _ccchacha20_setnonce _ccchacha20_setcounter _ccchacha20_update _ccchacha20_final _ccchacha20poly1305_info _ccchacha20poly1305_init _ccchacha20poly1305_reset _ccchacha20poly1305_setnonce _ccchacha20poly1305_incnonce _ccchacha20poly1305_aad _ccchacha20poly1305_decrypt _ccchacha20poly1305_verify _ccchacha20poly1305_decrypt_oneshot _ccchacha20poly1305_encrypt _ccchacha20poly1305_finalize _ccchacha20poly1305_encrypt_oneshot _cchkdf _cchkdf_extract _cchkdf_expand _cccmac_init _cccmac_update _cccmac_final_verify _cccmac_final_generate _cccmac_one_shot_generate _cccmac_one_shot_verify _cccurve25519 _ccder_decode_bitstring _ccder_decode_constructed_tl _ccder_decode_dhparams _ccder_decode_dhparam_n _ccder_decode_eckey _ccder_decode_len _ccder_decode_len_strict _ccder_decode_oid _ccder_decode_seqii _ccder_decode_seqii_strict _ccder_decode_sequence_tl _ccder_decode_sequence_tl_strict _ccder_decode_rsa_pub_n _ccder_decode_rsa_pub _ccder_decode_rsa_pub_x509_n _ccder_decode_rsa_pub_x509 _ccder_decode_rsa_priv_n _ccder_decode_rsa_priv _ccder_decode_tag _ccder_decode_tl _ccder_decode_tl_strict _ccder_decode_uint_n _ccder_decode_uint _ccder_decode_uint_strict _ccder_decode_uint64 _ccder_encode_body _ccder_encode_body_nocopy _ccder_encode_constructed_tl _ccder_decode_constructed_tl_strict _ccder_encode_dhparams _ccder_encode_dhparams_size _ccder_encode_implicit_integer _ccder_encode_implicit_octet_string _ccder_encode_implicit_raw_octet_string _ccder_encode_implicit_uint64 _ccder_encode_integer _ccder_encode_len _ccder_encode_octet_string _ccder_encode_oid _ccder_encode_raw_octet_string _ccder_encode_rsa_pub_size _ccder_encode_rsa_pub _ccder_encode_rsa_priv_size _ccder_encode_rsa_priv _ccder_encode_tag _ccder_encode_tl _ccder_encode_uint64 _ccder_encode_eckey _ccder_encode_eckey_size _ccder_sizeof_implicit_integer _ccder_sizeof_implicit_octet_string _ccder_sizeof_implicit_raw_octet_string _ccder_sizeof_implicit_uint64 _ccder_sizeof_integer _ccder_sizeof_octet_string _ccder_sizeof_raw_octet_string _ccder_sizeof_uint64 _ccder_sizeof_len _ccder_sizeof_oid _ccder_sizeof_tag _ccder_sizeof _ccdes3_cbc_decrypt_mode _ccdes3_cbc_encrypt_mode _ccdes3_cfb8_decrypt_mode _ccdes3_cfb8_encrypt_mode _ccdes3_cfb_decrypt_mode _ccdes3_cfb_encrypt_mode _ccdes3_ctr_crypt_mode _ccdes3_ecb_decrypt_mode _ccdes3_ecb_encrypt_mode _ccdes3_ltc_ecb_decrypt_mode _ccdes3_ltc_ecb_encrypt_mode _ccdes3_ofb_crypt_mode _ccdes_cbc_cksum _ccdes_cbc_decrypt_mode _ccdes_cbc_encrypt_mode _ccdes_cfb8_decrypt_mode _ccdes_cfb8_encrypt_mode _ccdes_cfb_decrypt_mode _ccdes_cfb_encrypt_mode _ccdes_ctr_crypt_mode _ccdes_ecb_decrypt_mode _ccdes_ecb_encrypt_mode _ccdes_key_is_weak _ccdes_key_set_odd_parity _ccdes_ofb_crypt_mode _ccdh_compute_key _ccdh_compute_shared_secret _ccdh_export_pub _ccdh_generate_key _ccdh_lookup_gp _ccdh_gp_apple768 _ccdh_gp_rfc5114_MODP_1024_160 _ccdh_gp_rfc5114_MODP_2048_224 _ccdh_gp_rfc5114_MODP_2048_256 _ccdh_gp_rfc2409group02 _ccdh_gp_rfc3526group05 _ccdh_gp_rfc3526group14 _ccdh_gp_rfc3526group15 _ccdh_gp_rfc3526group16 _ccdh_gp_rfc3526group17 _ccdh_gp_rfc3526group18 _ccdh_import_priv _ccdh_import_full _ccdh_import_pub _ccdh_init_gp _ccdh_init_gp_with_order _ccdh_init_gp_from_bytes _ccdigest _ccdigest_init _ccdigest_oid_lookup _ccdigest_update _ccdrbg_factory_nistctr _ccdrbg_factory_nisthmac _ccec_compute_key _ccec_cp_192 _ccec_cp_224 _ccec_cp_256 _ccec_cp_384 _ccec_cp_521 _ccec_curve_for_length_lookup _ccec_der_import_priv _ccec_der_import_priv_keytype _ccec_export_pub _ccec_der_export_priv_size _ccec_der_export_priv _ccec_generate_key _ccec_generate_key_fips _ccec_generate_key_legacy _ccec_generate_key_deterministic _ccec_generate_key_internal_fips _ccec_get_cp _ccec_get_fullkey_components _ccec_get_pubkey_components _ccec_import_pub _ccec_keysize_is_supported _ccec_pairwise_consistency_check _ccec_validate_pub _ccec_make_priv _ccec_make_pub _ccec_rfc6637_dh_curve_p256 _ccec_rfc6637_dh_curve_p521 _ccec_rfc6637_unwrap_key _ccec_rfc6637_unwrap_sha256_kek_aes128 _ccec_rfc6637_unwrap_sha512_kek_aes256 _ccec_rfc6637_wrap_key _ccec_rfc6637_wrap_key_size _ccec_rfc6637_wrap_sha256_kek_aes128 _ccec_rfc6637_wrap_sha512_kek_aes256 _ccec_signature_r_s_size _CCEC_FAULT_CANARY _ccec_sign _ccec_sign_msg _ccec_sign_composite _ccec_sign_composite_msg _ccec_verify _ccec_verify_msg _ccec_verify_digest _ccec_verify_composite _ccec_verify_composite_msg _ccec_verify_composite_digest _ccec_x963_export _ccec_x963_import_priv _ccec_x963_import_priv_size _ccec_x963_import_pub _ccec_x963_import_pub_size _ccecdh_generate_key _ccecdh_compute_shared_secret _ccec_compact_generate_key _ccec_compact_transform_key _ccec_compact_import_pub _ccec_compact_import_pub_size _ccec_compact_import_priv _ccec_compact_import_priv_size _ccec_compact_export _ccec_compact_export_pub _ccec_compressed_x962_import_pub _ccec_compressed_x962_export_pub _ccec_compressed_x962_export_pub_size _ccec_extract_rs _ccec_generate_blinding_keys _ccec_blind _ccec_unblind _cced25519_make_pub _cced25519_make_key_pair _cced25519_sign _cced25519_verify _cchmac _cchmac_final _cchmac_init _cchmac_update _ccmd2_ltc_di _ccmd4_ltc_di _ccmd5_di _ccmd5_ltc_di _ccmode_factory_ccm_decrypt _ccmode_factory_ccm_encrypt _ccmode_factory_gcm_decrypt _ccmode_factory_gcm_encrypt _ccmode_factory_xts_decrypt _ccmode_factory_xts_encrypt _ccmode_factory_cbc_decrypt _ccmode_factory_cbc_encrypt _ccmode_factory_ctr_crypt _ccmode_factory_ofb_crypt _ccmode_factory_omac_decrypt _ccmode_factory_omac_encrypt _ccmode_factory_cfb_decrypt _ccmode_factory_cfb_encrypt _ccmode_factory_cfb8_decrypt _ccmode_factory_cfb8_encrypt _ccmode_factory_siv_encrypt _ccmode_factory_siv_decrypt _ccn_add _ccn_add1 _ccn_sub1 _ccn_bitlen _ccn_cmp _ccn_cmpn _ccn_n _ccn_read_uint _ccn_set _ccn_write_int _ccn_write_int_size _ccn_write_uint _ccn_write_uint_size _ccn_write_uint_padded_ct _ccn_zero_multi _ccn_random_bits _ccnistkdf_ctr_hmac _ccnistkdf_ctr_hmac_fixed _ccnistkdf_ctr_cmac _ccnistkdf_ctr_cmac_fixed _ccnistkdf_fb_hmac _ccnistkdf_fb_hmac_fixed _ccpad_pkcs7_decrypt _ccpad_pkcs7_encrypt _ccpad_pkcs7_ecb_decrypt _ccpad_pkcs7_ecb_encrypt _ccpad_pkcs7_decode _ccpad_xts_decrypt _ccpad_xts_encrypt _ccscrypt _ccscrypt_storage_size _ccpbkdf2_hmac _ccpoly1305 _ccpoly1305_final _ccpoly1305_init _ccpoly1305_update _ccrc2_cbc_decrypt_mode _ccrc2_cbc_encrypt_mode _ccrc2_cfb8_decrypt_mode _ccrc2_cfb8_encrypt_mode _ccrc2_cfb_decrypt_mode _ccrc2_cfb_encrypt_mode _ccrc2_ctr_crypt_mode _ccrc2_ecb_decrypt_mode _ccrc2_ecb_encrypt_mode _ccrc2_ofb_crypt_mode _ccrc4 _ccrc4_eay _ccrmd160_ltc_di _ccrng _ccrng_uniform _ccrng_pbkdf2_prng_init _ccrng_system_done _ccrng_system_init _ccrng_sequence_init _ccrng_ecfips_test_init _ccrng_rsafips_test_init _ccrng_rsafips_test_set_next _ccrng_drbg_init _ccrng_drbg_reseed _ccrng_drbg_done _ccrng_drbg_init_withdrbg _ccrng_test_init _ccrng_test_done // RSA exports _ccrsa_decrypt_eme_pkcs1v15 _ccrsa_decrypt_eme_pkcs1v15_blinded _ccrsa_decrypt_oaep _ccrsa_decrypt_oaep_blinded _ccrsa_emsa_pkcs1v15_encode _ccrsa_emsa_pkcs1v15_verify _ccrsa_emsa_pss_decode _ccrsa_emsa_pss_encode _ccrsa_encrypt_eme_pkcs1v15 _ccrsa_encrypt_oaep _ccrsa_eme_pkcs1v15_encode _ccrsa_eme_pkcs1v15_decode _ccrsa_export_pub _ccrsa_generate_key _ccrsa_generate_fips186_key _ccrsa_get_fullkey_components _ccrsa_get_pubkey_components _ccrsa_pubkeylength _ccrsa_import_pub _ccrsa_init_pub _ccrsa_make_pub _ccrsa_make_priv _ccrsa_oaep_decode_parameter _ccrsa_oaep_encode_parameter _ccrsa_priv_crypt _ccrsa_priv_crypt_blinded _ccrsa_pub_crypt _ccrsa_recover_priv _CCRSA_PKCS1_FAULT_CANARY _CCRSA_PSS_FAULT_CANARY _ccrsa_sign_pss _ccrsa_sign_pkcs1v15 _ccrsa_sign_pss_msg _ccrsa_sign_pkcs1v15 _ccrsa_sign_pkcs1v15_msg _ccrsa_verify_pss _ccrsa_verify_pss_msg _ccrsa_verify_pss_digest _ccrsa_verify_pkcs1v15 _ccrsa_verify_pkcs1v15_msg _ccrsa_verify_pkcs1v15_digest _ccrsa_verify_pkcs1v15_allowshortsigs _ccmgf // to help debug on client side _ccrsa_dump_public_key _ccrsa_dump_full_key // SHA exports _ccsha1_di _ccsha1_eay_di _ccsha1_ltc_di _ccsha224_di _ccsha224_ltc_di _ccsha256_di _ccsha256_ltc_di _ccsha384_di _ccsha384_ltc_di _ccsha512_di _ccsha512_256_di _ccsha512_ltc_di _ccsha512_256_ltc_di _ccsrp_gp_rfc5054_1024 _ccsrp_gp_rfc5054_2048 _ccsrp_gp_rfc5054_3072 _ccsrp_gp_rfc5054_4096 _ccsrp_gp_rfc5054_8192 _ccsrp_generate_salt_and_verification _ccsrp_generate_verifier _ccsrp_client_process_challenge _ccsrp_client_start_authentication _ccsrp_client_verify_session _ccsrp_server_start_authentication _ccsrp_server_generate_public_key _ccsrp_server_compute_session _ccsrp_server_verify_session _ccsrp_test_calculations _cczp_init _cczp_init_with_recip _cczp_power _ccz_add _ccz_addi _ccz_bit _ccz_bitlen _ccz_cmp _ccz_cmpi _ccz_divmod _ccz_expmod _ccz_free _ccz_init _ccz_is_negative _ccz_is_one _ccz_is_prime _ccz_is_zero _ccz_lsl _ccz_lsr _ccz_mod _ccz_mul _ccz_muli _ccz_mulmod _ccz_neg _ccz_random_bits _ccz_read_radix _ccz_read_uint _ccz_set _ccz_set_bit _ccz_seti _ccz_size _ccz_sub _ccz_subi _ccz_trailing_zeros _ccz_write_int _ccz_write_int_size _ccz_write_radix _ccz_write_radix_size _ccz_write_uint _ccz_write_uint_size _ccz_zero _ccpad_cts1_decrypt _ccpad_cts1_encrypt _ccpad_cts2_decrypt _ccpad_cts2_encrypt _ccpad_cts3_decrypt _ccpad_cts3_encrypt #if CCAES_ARM_ASM _ccaes_arm_ecb_encrypt_mode _ccaes_arm_ecb_decrypt_mode _ccaes_arm_cbc_encrypt_mode _ccaes_arm_cbc_decrypt_mode _ccaes_arm_xts_encrypt_mode _ccaes_arm_xts_decrypt_mode _ccaes_arm_cfb_encrypt_mode _ccaes_arm_cfb_decrypt_mode _ccaes_arm_ofb_crypt_mode #endif #if CCAES_INTEL_ASM // VNG exports _ccaes_intel_cbc_decrypt_aesni_mode _ccaes_intel_cbc_decrypt_opt_mode _ccaes_intel_cbc_encrypt_aesni_mode _ccaes_intel_cbc_encrypt_opt_mode _ccaes_intel_ecb_decrypt_aesni_mode _ccaes_intel_ecb_decrypt_opt_mode _ccaes_intel_ecb_encrypt_aesni_mode _ccaes_intel_ecb_encrypt_opt_mode _ccaes_intel_xts_decrypt_aesni_mode _ccaes_intel_xts_decrypt_opt_mode _ccaes_intel_xts_encrypt_aesni_mode _ccaes_intel_xts_encrypt_opt_mode #endif #if CCSHA1_VNG_INTEL _ccsha1_vng_intel_SupplementalSSE3_di #endif #if CCSHA1_VNG_ARM _ccsha1_vng_arm_di #endif #if CCSHA2_VNG_INTEL _ccsha224_vng_intel_SupplementalSSE3_di _ccsha256_vng_intel_SupplementalSSE3_di #endif #if CCSHA2_VNG_ARM _ccsha224_vng_arm_di _ccsha256_vng_arm_di #if defined(__arm64__) && CC_ACCELERATECRYPTO _ccsha256_vng_arm64neon_di #endif _ccsha384_vng_arm_di _ccsha512_vng_arm_di _ccsha512_256_vng_arm_di #endif #if CCAES_MUX _ccaes_ios_hardware_cbc_decrypt_mode _ccaes_ios_hardware_cbc_encrypt_mode _ccaes_ios_mux_cbc_encrypt_mode _ccaes_ios_mux_cbc_decrypt_mode _ccaes_ios_hardware_ctr_crypt_mode _ccaes_ios_mux_ctr_crypt_mode _ccaes_ios_hardware_enabled #endif // ECDSA exports _ccec_print_full_key _ccec_print_public_key _ccwrap_wrapped_size _ccwrap_unwrapped_size _ccwrap_auth_encrypt _ccwrap_auth_decrypt _ccwrap_auth_encrypt_withiv _ccwrap_auth_decrypt_withiv _ccansikdf_x963 // ECIES _ccecies_encrypt_gcm _ccecies_decrypt_gcm _ccecies_encrypt_gcm_setup _ccecies_decrypt_gcm_setup _ccecies_decrypt_gcm_plaintext_size _ccecies_decrypt_gcm_plaintext_size_cp _ccecies_encrypt_gcm_ciphertext_size _ccecies_pub_key_size _ccecies_pub_key_size_cp _ccecies_encrypt_gcm_composite _ccecies_decrypt_gcm_composite _ccecies_encrypt_gcm_from_shared_secret _ccecies_decrypt_gcm_from_shared_secret _ccecies_import_eph_pub // Diversified EC public keys _ccec_der_export_diversified_pub _ccec_der_export_diversified_pub_size _ccec_der_import_diversified_pub _ccec_diversify_pub _ccec_diversify_pub_twin _ccec_diversify_priv_twin _ccec_diversify_min_entropy_len _ccec_rfc6637_wrap_key_diversified // for testing ccn_div() _ccn_addmul1 _ccn_mul1 _ccn_div_euclid //for cczp testing _ccn_print _cc_muxp _ccn_mul _ccn_sub _ccn_shift_right _ccn_lprint //fipspost _fipspost_trace_vtable //exported for corecrypto_test _ccec_raw_import_pub _ccec_raw_import_priv_only // SPAKE2+ _ccspake_cp_256 _ccspake_cp_384 _ccspake_cp_521 _ccspake_mac_hkdf_cmac_aes128_sha256 _ccspake_mac_hkdf_hmac_sha256 _ccspake_mac_hkdf_hmac_sha512 _ccspake_sizeof_ctx _ccspake_sizeof_point _ccspake_sizeof_w _ccspake_generate_L _ccspake_prover_init _ccspake_verifier_init _ccspake_kex_generate _ccspake_kex_process _ccspake_mac_compute _ccspake_mac_verify_and_get_session_key // IRTF VRF _ccvrf_derive_public_key _ccvrf_factory_irtfdraft03 _ccvrf_factory_irtfdraft03_default _ccvrf_sizeof_hash _ccvrf_sizeof_proof _ccvrf_sizeof_public_key _ccvrf_sizeof_secret_key _ccvrf_prove _ccvrf_proof_to_hash _ccvrf_verify // CKG _ccckg_sizeof_ctx _ccckg_sizeof_commitment _ccckg_sizeof_share _ccckg_sizeof_opening _ccckg_init _ccckg_contributor_commit _ccckg_owner_generate_share _ccckg_contributor_finish _ccckg_owner_finish // CCH2C _cch2c _cch2c_name _cch2c_p256_sha256_sae_compat_info _cch2c_p256_sha256_sswu_ro_info _cch2c_p384_sha384_sae_compat_info _cch2c_p384_sha512_sswu_ro_info _cch2c_p521_sha512_sswu_ro_info