gitextract_6vi1w9d7/ ├── .bazelversion ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ └── feature_request.md │ └── workflows/ │ └── codeql-analysis.yml ├── .gitignore ├── BUILD.bazel ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cc/ │ ├── .bazelignore │ ├── .bazelrc │ ├── .bazelversion │ ├── BUILD.bazel │ ├── CMakeLists.txt │ ├── WORKSPACE │ ├── aead/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aead_config.cc │ │ ├── aead_config.h │ │ ├── aead_config_test.cc │ │ ├── aead_factory.cc │ │ ├── aead_factory.h │ │ ├── aead_factory_test.cc │ │ ├── aead_key.h │ │ ├── aead_key_templates.cc │ │ ├── aead_key_templates.h │ │ ├── aead_key_templates_test.cc │ │ ├── aead_parameters.h │ │ ├── aead_wrapper.cc │ │ ├── aead_wrapper.h │ │ ├── aead_wrapper_test.cc │ │ ├── aes_ctr_hmac_aead_key.cc │ │ ├── aes_ctr_hmac_aead_key.h │ │ ├── aes_ctr_hmac_aead_key_manager.cc │ │ ├── aes_ctr_hmac_aead_key_manager.h │ │ ├── aes_ctr_hmac_aead_key_manager_test.cc │ │ ├── aes_ctr_hmac_aead_key_test.cc │ │ ├── aes_ctr_hmac_aead_parameters.cc │ │ ├── aes_ctr_hmac_aead_parameters.h │ │ ├── aes_ctr_hmac_aead_parameters_test.cc │ │ ├── aes_ctr_hmac_aead_proto_serialization.cc │ │ ├── aes_ctr_hmac_aead_proto_serialization.h │ │ ├── aes_ctr_hmac_aead_proto_serialization_test.cc │ │ ├── aes_eax_key.cc │ │ ├── aes_eax_key.h │ │ ├── aes_eax_key_manager.h │ │ ├── aes_eax_key_manager_test.cc │ │ ├── aes_eax_key_test.cc │ │ ├── aes_eax_parameters.cc │ │ ├── aes_eax_parameters.h │ │ ├── aes_eax_parameters_test.cc │ │ ├── aes_eax_proto_serialization.cc │ │ ├── aes_eax_proto_serialization.h │ │ ├── aes_eax_proto_serialization_test.cc │ │ ├── aes_gcm_key.cc │ │ ├── aes_gcm_key.h │ │ ├── aes_gcm_key_manager.h │ │ ├── aes_gcm_key_manager_test.cc │ │ ├── aes_gcm_key_test.cc │ │ ├── aes_gcm_parameters.cc │ │ ├── aes_gcm_parameters.h │ │ ├── aes_gcm_parameters_test.cc │ │ ├── aes_gcm_proto_serialization.cc │ │ ├── aes_gcm_proto_serialization.h │ │ ├── aes_gcm_proto_serialization_test.cc │ │ ├── aes_gcm_siv_key.cc │ │ ├── aes_gcm_siv_key.h │ │ ├── aes_gcm_siv_key_manager.h │ │ ├── aes_gcm_siv_key_manager_test.cc │ │ ├── aes_gcm_siv_key_test.cc │ │ ├── aes_gcm_siv_parameters.cc │ │ ├── aes_gcm_siv_parameters.h │ │ ├── aes_gcm_siv_parameters_test.cc │ │ ├── aes_gcm_siv_proto_serialization.cc │ │ ├── aes_gcm_siv_proto_serialization.h │ │ ├── aes_gcm_siv_proto_serialization_test.cc │ │ ├── chacha20_poly1305_key.cc │ │ ├── chacha20_poly1305_key.h │ │ ├── chacha20_poly1305_key_test.cc │ │ ├── chacha20_poly1305_parameters.cc │ │ ├── chacha20_poly1305_parameters.h │ │ ├── chacha20_poly1305_parameters_test.cc │ │ ├── chacha20_poly1305_proto_serialization.cc │ │ ├── chacha20_poly1305_proto_serialization.h │ │ ├── chacha20_poly1305_proto_serialization_test.cc │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── cord_aead.h │ │ ├── cord_aead_wrapper.cc │ │ ├── cord_aead_wrapper.h │ │ ├── cord_aead_wrapper_test.cc │ │ ├── failing_aead.cc │ │ ├── failing_aead.h │ │ ├── failing_aead_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── aead_from_zero_copy.cc │ │ │ ├── aead_from_zero_copy.h │ │ │ ├── aead_from_zero_copy_test.cc │ │ │ ├── aead_util.cc │ │ │ ├── aead_util.h │ │ │ ├── aead_util_test.cc │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── cord_aes_gcm_boringssl.cc │ │ │ ├── cord_aes_gcm_boringssl.h │ │ │ ├── cord_aes_gcm_boringssl_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ ├── key_gen_config_v0.h │ │ │ ├── mock_zero_copy_aead.h │ │ │ ├── ssl_aead.cc │ │ │ ├── ssl_aead.h │ │ │ ├── ssl_aead_large_inputs_test.cc │ │ │ ├── ssl_aead_test.cc │ │ │ ├── wycheproof_aead.cc │ │ │ ├── wycheproof_aead.h │ │ │ ├── zero_copy_aead.h │ │ │ ├── zero_copy_aead_wrapper.cc │ │ │ ├── zero_copy_aead_wrapper.h │ │ │ ├── zero_copy_aead_wrapper_test.cc │ │ │ ├── zero_copy_aes_gcm_boringssl.cc │ │ │ ├── zero_copy_aes_gcm_boringssl.h │ │ │ └── zero_copy_aes_gcm_boringssl_test.cc │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ ├── kms_aead_key_manager.h │ │ ├── kms_aead_key_manager_test.cc │ │ ├── kms_envelope_aead.cc │ │ ├── kms_envelope_aead.h │ │ ├── kms_envelope_aead_key_manager.cc │ │ ├── kms_envelope_aead_key_manager.h │ │ ├── kms_envelope_aead_key_manager_test.cc │ │ ├── kms_envelope_aead_test.cc │ │ ├── mock_aead.h │ │ ├── subtle/ │ │ │ ├── BUILD.bazel │ │ │ └── CMakeLists.txt │ │ ├── xchacha20_poly1305_key.cc │ │ ├── xchacha20_poly1305_key.h │ │ ├── xchacha20_poly1305_key_manager.h │ │ ├── xchacha20_poly1305_key_manager_test.cc │ │ ├── xchacha20_poly1305_key_test.cc │ │ ├── xchacha20_poly1305_parameters.cc │ │ ├── xchacha20_poly1305_parameters.h │ │ ├── xchacha20_poly1305_parameters_test.cc │ │ ├── xchacha20_poly1305_proto_serialization.cc │ │ ├── xchacha20_poly1305_proto_serialization.h │ │ └── xchacha20_poly1305_proto_serialization_test.cc │ ├── aead.h │ ├── aead_config.h │ ├── aead_factory.h │ ├── aead_key_templates.h │ ├── big_integer.h │ ├── binary_keyset_reader.h │ ├── binary_keyset_writer.h │ ├── chunked_mac.h │ ├── cleartext_keyset_handle.h │ ├── config/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── config_util.cc │ │ ├── config_util.h │ │ ├── config_util_test.cc │ │ ├── fips_140_2.cc │ │ ├── fips_140_2.h │ │ ├── fips_140_2_test.cc │ │ ├── global_registry.cc │ │ ├── global_registry.h │ │ ├── global_registry_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ └── CMakeLists.txt │ │ ├── key_gen_fips_140_2.cc │ │ ├── key_gen_fips_140_2.h │ │ ├── key_gen_fips_140_2_test.cc │ │ ├── key_gen_v0.cc │ │ ├── key_gen_v0.h │ │ ├── tink_config.cc │ │ ├── tink_config.h │ │ ├── tink_config_test.cc │ │ ├── tink_fips.cc │ │ ├── tink_fips.h │ │ ├── tink_fips_test.cc │ │ ├── v0.cc │ │ ├── v0.h │ │ └── v0_test.cc │ ├── configuration.h │ ├── core/ │ │ ├── big_integer.cc │ │ ├── big_integer_test.cc │ │ ├── binary_keyset_reader.cc │ │ ├── binary_keyset_reader_test.cc │ │ ├── binary_keyset_writer.cc │ │ ├── binary_keyset_writer_test.cc │ │ ├── cleartext_keyset_handle.cc │ │ ├── cleartext_keyset_handle_test.cc │ │ ├── crypto_format.cc │ │ ├── crypto_format_test.cc │ │ ├── ec_point_test.cc │ │ ├── json_keyset_reader.cc │ │ ├── json_keyset_reader_test.cc │ │ ├── json_keyset_writer.cc │ │ ├── json_keyset_writer_test.cc │ │ ├── key_access_test.cc │ │ ├── key_manager.cc │ │ ├── key_manager_impl.h │ │ ├── key_manager_impl_test.cc │ │ ├── key_manager_test.cc │ │ ├── key_type_manager.h │ │ ├── key_type_manager_test.cc │ │ ├── keyset_handle.cc │ │ ├── keyset_handle_builder.cc │ │ ├── keyset_handle_builder_test.cc │ │ ├── keyset_handle_test.cc │ │ ├── keyset_manager.cc │ │ ├── keyset_manager_test.cc │ │ ├── kms_clients.cc │ │ ├── kms_clients_test.cc │ │ ├── partial_key_access_token_test.cc │ │ ├── primitive_set_test.cc │ │ ├── private_key_manager_impl.h │ │ ├── private_key_manager_impl_test.cc │ │ ├── private_key_type_manager.h │ │ ├── restricted_big_integer.cc │ │ ├── restricted_big_integer_test.cc │ │ ├── restricted_data.cc │ │ ├── restricted_data_test.cc │ │ ├── template_util.h │ │ ├── template_util_test.cc │ │ ├── version.cc │ │ └── version_test.cc │ ├── crypto_format.h │ ├── daead/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aes_siv_key.cc │ │ ├── aes_siv_key.h │ │ ├── aes_siv_key_manager.h │ │ ├── aes_siv_key_manager_test.cc │ │ ├── aes_siv_key_test.cc │ │ ├── aes_siv_parameters.cc │ │ ├── aes_siv_parameters.h │ │ ├── aes_siv_parameters_test.cc │ │ ├── aes_siv_proto_serialization.cc │ │ ├── aes_siv_proto_serialization.h │ │ ├── aes_siv_proto_serialization_test.cc │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── deterministic_aead_config.cc │ │ ├── deterministic_aead_config.h │ │ ├── deterministic_aead_config_test.cc │ │ ├── deterministic_aead_factory.cc │ │ ├── deterministic_aead_factory.h │ │ ├── deterministic_aead_factory_test.cc │ │ ├── deterministic_aead_key.h │ │ ├── deterministic_aead_key_templates.cc │ │ ├── deterministic_aead_key_templates.h │ │ ├── deterministic_aead_key_templates_test.cc │ │ ├── deterministic_aead_parameters.h │ │ ├── deterministic_aead_wrapper.cc │ │ ├── deterministic_aead_wrapper.h │ │ ├── deterministic_aead_wrapper_test.cc │ │ ├── failing_daead.cc │ │ ├── failing_daead.h │ │ ├── failing_daead_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ └── key_gen_config_v0.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aead_or_daead.cc │ │ ├── aead_or_daead.h │ │ └── aead_or_daead_test.cc │ ├── deterministic_aead.h │ ├── deterministic_aead_config.h │ ├── deterministic_aead_factory.h │ ├── deterministic_aead_key_templates.h │ ├── ec_point.h │ ├── examples/ │ │ ├── .bazelrc │ │ ├── .bazelversion │ │ ├── CMakeLists.txt │ │ ├── WORKSPACE │ │ ├── aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── aead_cli.cc │ │ │ ├── aead_cli_test.sh │ │ │ └── aead_test_keyset.json │ │ ├── daead/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── deterministic_aead_cli.cc │ │ │ ├── deterministic_aead_cli_test.sh │ │ │ └── deterministic_aead_test_keyset.json │ │ ├── digital_signatures/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── digital_signature_private_keyset.json │ │ │ ├── digital_signature_public_keyset.json │ │ │ ├── digital_signatures_cli.cc │ │ │ └── digital_signatures_cli_test.sh │ │ ├── hybrid_encryption/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── hybrid_cli.cc │ │ │ ├── hybrid_cli_test.sh │ │ │ └── testdata/ │ │ │ ├── BUILD.bazel │ │ │ ├── hpke_test_private_keyset.json │ │ │ ├── hpke_test_public_keyset.json │ │ │ ├── hybrid_test_private_keyset.json │ │ │ └── hybrid_test_public_keyset.json │ │ ├── jwt/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── jwt_generate_public_jwk_set.cc │ │ │ ├── jwt_sign.cc │ │ │ ├── jwt_signature_cli_test.sh │ │ │ ├── jwt_signature_private_keyset.json │ │ │ ├── jwt_signature_public_keyset.json │ │ │ └── jwt_verify.cc │ │ ├── key_derivation/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── key_derivation_cli.cc │ │ │ ├── key_derivation_cli_test.sh │ │ │ └── keyset.json │ │ ├── mac/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── mac_cli.cc │ │ │ ├── mac_cli_test.sh │ │ │ └── mac_test_keyset.json │ │ ├── util/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── util.cc │ │ │ └── util.h │ │ └── walkthrough/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── create_keyset.cc │ │ ├── create_keyset.h │ │ ├── create_keyset_test.cc │ │ ├── load_cleartext_keyset.cc │ │ ├── load_cleartext_keyset.h │ │ ├── load_cleartext_keyset_test.cc │ │ ├── load_encrypted_keyset.cc │ │ ├── load_encrypted_keyset.h │ │ ├── load_encrypted_keyset_test.cc │ │ ├── obtain_and_use_a_primitive.cc │ │ ├── obtain_and_use_a_primitive.h │ │ ├── obtain_and_use_a_primitive_test.cc │ │ ├── test_util.cc │ │ ├── test_util.h │ │ ├── write_cleartext_keyset.cc │ │ ├── write_cleartext_keyset.h │ │ ├── write_cleartext_keyset_test.cc │ │ ├── write_keyset.cc │ │ ├── write_keyset.h │ │ └── write_keyset_test.cc │ ├── experimental/ │ │ └── pqcrypto/ │ │ ├── README.md │ │ ├── kem/ │ │ │ ├── BUILD.bazel │ │ │ ├── cecpq2_aead_hkdf_dem_helper.cc │ │ │ ├── cecpq2_aead_hkdf_dem_helper.h │ │ │ ├── cecpq2_aead_hkdf_dem_helper_test.cc │ │ │ ├── cecpq2_aead_hkdf_private_key_manager.cc │ │ │ ├── cecpq2_aead_hkdf_private_key_manager.h │ │ │ ├── cecpq2_aead_hkdf_private_key_manager_test.cc │ │ │ ├── cecpq2_aead_hkdf_public_key_manager.cc │ │ │ ├── cecpq2_aead_hkdf_public_key_manager.h │ │ │ ├── cecpq2_aead_hkdf_public_key_manager_test.cc │ │ │ ├── cecpq2_hybrid_config.cc │ │ │ ├── cecpq2_hybrid_config.h │ │ │ ├── cecpq2_hybrid_config_test.cc │ │ │ ├── cecpq2_hybrid_key_templates.cc │ │ │ ├── cecpq2_hybrid_key_templates.h │ │ │ ├── cecpq2_hybrid_key_templates_test.cc │ │ │ ├── subtle/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_decrypt.cc │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_decrypt.h │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_decrypt_test.cc │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_encrypt.cc │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_encrypt.h │ │ │ │ ├── cecpq2_aead_hkdf_hybrid_encrypt_test.cc │ │ │ │ ├── cecpq2_hkdf_recipient_kem_boringssl.cc │ │ │ │ ├── cecpq2_hkdf_recipient_kem_boringssl.h │ │ │ │ ├── cecpq2_hkdf_recipient_kem_boringssl_test.cc │ │ │ │ ├── cecpq2_hkdf_sender_kem_boringssl.cc │ │ │ │ ├── cecpq2_hkdf_sender_kem_boringssl.h │ │ │ │ ├── cecpq2_hkdf_sender_kem_boringssl_test.cc │ │ │ │ ├── cecpq2_subtle_boringssl_util.cc │ │ │ │ ├── cecpq2_subtle_boringssl_util.h │ │ │ │ └── cecpq2_subtle_boringssl_util_test.cc │ │ │ └── util/ │ │ │ ├── BUILD.bazel │ │ │ ├── test_util.cc │ │ │ ├── test_util.h │ │ │ └── test_util_test.cc │ │ ├── proto/ │ │ │ └── BUILD.bazel │ │ └── signature/ │ │ ├── dilithium_key_template.cc │ │ ├── dilithium_key_template.h │ │ ├── dilithium_key_template_test.cc │ │ ├── dilithium_sign_key_manager.cc │ │ ├── dilithium_sign_key_manager.h │ │ ├── dilithium_sign_key_manager_test.cc │ │ ├── dilithium_verify_key_manager.cc │ │ ├── dilithium_verify_key_manager.h │ │ ├── dilithium_verify_key_manager_test.cc │ │ ├── falcon_key_template.cc │ │ ├── falcon_key_template.h │ │ ├── falcon_key_template_test.cc │ │ ├── falcon_sign_key_manager.cc │ │ ├── falcon_sign_key_manager.h │ │ ├── falcon_sign_key_manager_test.cc │ │ ├── falcon_verify_key_manager.cc │ │ ├── falcon_verify_key_manager.h │ │ ├── falcon_verify_key_manager_test.cc │ │ ├── signature_config.cc │ │ ├── signature_config.h │ │ ├── signature_config_test.cc │ │ ├── signature_config_util_test.cc │ │ ├── slh_dsa_parameters.cc │ │ ├── slh_dsa_parameters.h │ │ ├── slh_dsa_parameters_test.cc │ │ ├── slh_dsa_private_key.cc │ │ ├── slh_dsa_private_key.h │ │ ├── slh_dsa_private_key_test.cc │ │ ├── slh_dsa_proto_serialization.cc │ │ ├── slh_dsa_proto_serialization.h │ │ ├── slh_dsa_proto_serialization_test.cc │ │ ├── slh_dsa_public_key.cc │ │ ├── slh_dsa_public_key.h │ │ ├── slh_dsa_public_key_test.cc │ │ ├── sphincs_key_template.cc │ │ ├── sphincs_key_template.h │ │ ├── sphincs_key_template_test.cc │ │ ├── sphincs_sign_key_manager.cc │ │ ├── sphincs_sign_key_manager.h │ │ ├── sphincs_sign_key_manager_test.cc │ │ ├── sphincs_verify_key_manager.cc │ │ ├── sphincs_verify_key_manager.h │ │ ├── sphincs_verify_key_manager_test.cc │ │ ├── subtle/ │ │ │ ├── dilithium_avx2_sign.cc │ │ │ ├── dilithium_avx2_sign.h │ │ │ ├── dilithium_avx2_sign_test.cc │ │ │ ├── dilithium_avx2_verify.cc │ │ │ ├── dilithium_avx2_verify.h │ │ │ ├── dilithium_avx2_verify_test.cc │ │ │ ├── dilithium_key.cc │ │ │ ├── dilithium_key.h │ │ │ ├── dilithium_key_test.cc │ │ │ ├── falcon_sign.cc │ │ │ ├── falcon_sign.h │ │ │ ├── falcon_sign_test.cc │ │ │ ├── falcon_subtle_utils.cc │ │ │ ├── falcon_subtle_utils.h │ │ │ ├── falcon_subtle_utils_test.cc │ │ │ ├── falcon_verify.cc │ │ │ ├── falcon_verify.h │ │ │ ├── falcon_verify_test.cc │ │ │ ├── sphincs_helper_pqclean.cc │ │ │ ├── sphincs_helper_pqclean.h │ │ │ ├── sphincs_sign.cc │ │ │ ├── sphincs_sign.h │ │ │ ├── sphincs_sign_test.cc │ │ │ ├── sphincs_subtle_utils.cc │ │ │ ├── sphincs_subtle_utils.h │ │ │ ├── sphincs_subtle_utils_test.cc │ │ │ ├── sphincs_verify.cc │ │ │ ├── sphincs_verify.h │ │ │ └── sphincs_verify_test.cc │ │ └── util/ │ │ ├── enums.cc │ │ ├── enums.h │ │ └── enums_test.cc │ ├── exported_symbols.lds │ ├── hybrid/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── ecies_aead_hkdf_dem_helper.cc │ │ ├── ecies_aead_hkdf_dem_helper.h │ │ ├── ecies_aead_hkdf_dem_helper_test.cc │ │ ├── ecies_aead_hkdf_hybrid_decrypt.cc │ │ ├── ecies_aead_hkdf_hybrid_decrypt.h │ │ ├── ecies_aead_hkdf_hybrid_decrypt_test.cc │ │ ├── ecies_aead_hkdf_hybrid_encrypt.cc │ │ ├── ecies_aead_hkdf_hybrid_encrypt.h │ │ ├── ecies_aead_hkdf_hybrid_encrypt_test.cc │ │ ├── ecies_aead_hkdf_private_key_manager.cc │ │ ├── ecies_aead_hkdf_private_key_manager.h │ │ ├── ecies_aead_hkdf_private_key_manager_test.cc │ │ ├── ecies_aead_hkdf_public_key_manager.cc │ │ ├── ecies_aead_hkdf_public_key_manager.h │ │ ├── ecies_aead_hkdf_public_key_manager_test.cc │ │ ├── ecies_parameters.cc │ │ ├── ecies_parameters.h │ │ ├── ecies_parameters_test.cc │ │ ├── ecies_private_key.cc │ │ ├── ecies_private_key.h │ │ ├── ecies_private_key_test.cc │ │ ├── ecies_proto_serialization.cc │ │ ├── ecies_proto_serialization.h │ │ ├── ecies_proto_serialization_test.cc │ │ ├── ecies_public_key.cc │ │ ├── ecies_public_key.h │ │ ├── ecies_public_key_test.cc │ │ ├── failing_hybrid.cc │ │ ├── failing_hybrid.h │ │ ├── failing_hybrid_test.cc │ │ ├── hpke_config.cc │ │ ├── hpke_config.h │ │ ├── hpke_config_test.cc │ │ ├── hpke_parameters.cc │ │ ├── hpke_parameters.h │ │ ├── hpke_parameters_test.cc │ │ ├── hpke_private_key.cc │ │ ├── hpke_private_key.h │ │ ├── hpke_private_key_test.cc │ │ ├── hpke_proto_serialization.cc │ │ ├── hpke_proto_serialization.h │ │ ├── hpke_proto_serialization_test.cc │ │ ├── hpke_public_key.cc │ │ ├── hpke_public_key.h │ │ ├── hpke_public_key_test.cc │ │ ├── hybrid_config.cc │ │ ├── hybrid_config.h │ │ ├── hybrid_config_test.cc │ │ ├── hybrid_decrypt_factory.cc │ │ ├── hybrid_decrypt_factory.h │ │ ├── hybrid_decrypt_factory_test.cc │ │ ├── hybrid_decrypt_wrapper.cc │ │ ├── hybrid_decrypt_wrapper.h │ │ ├── hybrid_decrypt_wrapper_test.cc │ │ ├── hybrid_encrypt_factory.cc │ │ ├── hybrid_encrypt_factory.h │ │ ├── hybrid_encrypt_factory_test.cc │ │ ├── hybrid_encrypt_wrapper.cc │ │ ├── hybrid_encrypt_wrapper.h │ │ ├── hybrid_encrypt_wrapper_test.cc │ │ ├── hybrid_key_templates.cc │ │ ├── hybrid_key_templates.h │ │ ├── hybrid_key_templates_test.cc │ │ ├── hybrid_parameters.h │ │ ├── hybrid_private_key.h │ │ ├── hybrid_public_key.h │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── hpke_context.cc │ │ │ ├── hpke_context.h │ │ │ ├── hpke_context_boringssl.cc │ │ │ ├── hpke_context_boringssl.h │ │ │ ├── hpke_context_boringssl_test.cc │ │ │ ├── hpke_context_test.cc │ │ │ ├── hpke_decrypt.cc │ │ │ ├── hpke_decrypt.h │ │ │ ├── hpke_decrypt_boringssl.cc │ │ │ ├── hpke_decrypt_boringssl.h │ │ │ ├── hpke_decrypt_boringssl_test.cc │ │ │ ├── hpke_decrypt_test.cc │ │ │ ├── hpke_encrypt.cc │ │ │ ├── hpke_encrypt.h │ │ │ ├── hpke_encrypt_boringssl.cc │ │ │ ├── hpke_encrypt_boringssl.h │ │ │ ├── hpke_encrypt_boringssl_test.cc │ │ │ ├── hpke_encrypt_test.cc │ │ │ ├── hpke_key_boringssl.cc │ │ │ ├── hpke_key_boringssl.h │ │ │ ├── hpke_key_boringssl_test.cc │ │ │ ├── hpke_key_manager_util.cc │ │ │ ├── hpke_key_manager_util.h │ │ │ ├── hpke_key_manager_util_test.cc │ │ │ ├── hpke_private_key_manager.cc │ │ │ ├── hpke_private_key_manager.h │ │ │ ├── hpke_private_key_manager_test.cc │ │ │ ├── hpke_public_key_manager.cc │ │ │ ├── hpke_public_key_manager.h │ │ │ ├── hpke_public_key_manager_test.cc │ │ │ ├── hpke_test_util.cc │ │ │ ├── hpke_test_util.h │ │ │ ├── hpke_util.cc │ │ │ ├── hpke_util.h │ │ │ ├── hpke_util_boringssl.cc │ │ │ ├── hpke_util_boringssl.h │ │ │ ├── hpke_util_boringssl_test.cc │ │ │ ├── hpke_util_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ ├── key_gen_config_v0.h │ │ │ ├── test_hpke_context_boringssl.cc │ │ │ └── test_hpke_context_boringssl.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── hybrid_config.h │ ├── hybrid_decrypt.h │ ├── hybrid_decrypt_factory.h │ ├── hybrid_encrypt.h │ ├── hybrid_encrypt_factory.h │ ├── hybrid_key_templates.h │ ├── input_stream.h │ ├── insecure_secret_key_access.h │ ├── integration/ │ │ ├── awskms/ │ │ │ ├── .bazelrc │ │ │ ├── .bazelversion │ │ │ ├── BUILD.bazel │ │ │ ├── WORKSPACE │ │ │ ├── aws_kms_aead.cc │ │ │ ├── aws_kms_aead.h │ │ │ ├── aws_kms_aead_integration_test.cc │ │ │ ├── aws_kms_client.cc │ │ │ ├── aws_kms_client.h │ │ │ ├── aws_kms_client_test.cc │ │ │ ├── internal/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── test_file_util.h │ │ │ │ └── test_file_util_bazel.cc │ │ │ ├── template_rule.bzl │ │ │ ├── testdata/ │ │ │ │ └── aws/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── README.md │ │ │ │ ├── access_keys_bad.csv │ │ │ │ ├── credentials.cred │ │ │ │ ├── credentials.csv │ │ │ │ ├── credentials.ini │ │ │ │ ├── credentials_bad.csv │ │ │ │ ├── credentials_bad.ini │ │ │ │ ├── key_arn.txt │ │ │ │ └── key_arn_bad.txt │ │ │ ├── third_party/ │ │ │ │ ├── aws_c_common.BUILD.bazel │ │ │ │ ├── aws_c_event_stream.BUILD.bazel │ │ │ │ ├── aws_checksums.BUILD.bazel │ │ │ │ ├── aws_sdk_cpp.BUILD.bazel │ │ │ │ ├── curl.BUILD.bazel │ │ │ │ └── zlib.BUILD.bazel │ │ │ └── tink_cc_awskms_deps.bzl │ │ └── gcpkms/ │ │ ├── .bazelrc │ │ ├── .bazelversion │ │ ├── BUILD.bazel │ │ ├── WORKSPACE │ │ ├── gcp_kms_aead.cc │ │ ├── gcp_kms_aead.h │ │ ├── gcp_kms_aead_integration_test.cc │ │ ├── gcp_kms_aead_test.cc │ │ ├── gcp_kms_client.cc │ │ ├── gcp_kms_client.h │ │ ├── gcp_kms_client_test.cc │ │ ├── gcp_kms_public_key_sign.cc │ │ ├── gcp_kms_public_key_sign.h │ │ ├── gcp_kms_public_key_sign_test.cc │ │ ├── testdata/ │ │ │ └── gcp/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── credential.json │ │ │ ├── credential_bad.json │ │ │ ├── key_name.txt │ │ │ └── key_name_bad.txt │ │ ├── tink_cc_gcpkms_deps.bzl │ │ └── tink_cc_gcpkms_deps_init.bzl │ ├── internal/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aes_util.cc │ │ ├── aes_util.h │ │ ├── aes_util_test.cc │ │ ├── bn_encoding_util.cc │ │ ├── bn_encoding_util.h │ │ ├── bn_encoding_util_test.cc │ │ ├── bn_util.cc │ │ ├── bn_util.h │ │ ├── bn_util_test.cc │ │ ├── call_with_core_dump_protection.h │ │ ├── call_with_core_dump_protection_test.cc │ │ ├── configuration_impl.h │ │ ├── configuration_impl_test.cc │ │ ├── ec_util.cc │ │ ├── ec_util.h │ │ ├── ec_util_test.cc │ │ ├── err_util.cc │ │ ├── err_util.h │ │ ├── err_util_test.cc │ │ ├── fips_utils.cc │ │ ├── fips_utils.h │ │ ├── fips_utils_test.cc │ │ ├── key_gen_configuration_impl.h │ │ ├── key_gen_configuration_impl_test.cc │ │ ├── key_info.cc │ │ ├── key_info.h │ │ ├── key_info_test.cc │ │ ├── key_parser.h │ │ ├── key_parser_test.cc │ │ ├── key_serializer.h │ │ ├── key_serializer_test.cc │ │ ├── key_status_util.cc │ │ ├── key_status_util.h │ │ ├── key_status_util_test.cc │ │ ├── key_type_info_store.cc │ │ ├── key_type_info_store.h │ │ ├── key_type_info_store_test.cc │ │ ├── keyset_handle_builder_entry.cc │ │ ├── keyset_handle_builder_entry.h │ │ ├── keyset_handle_builder_entry_test.cc │ │ ├── keyset_wrapper.h │ │ ├── keyset_wrapper_impl.h │ │ ├── keyset_wrapper_impl_test.cc │ │ ├── keyset_wrapper_store.h │ │ ├── keyset_wrapper_store_test.cc │ │ ├── legacy_proto_key.cc │ │ ├── legacy_proto_key.h │ │ ├── legacy_proto_key_test.cc │ │ ├── legacy_proto_parameters.cc │ │ ├── legacy_proto_parameters.h │ │ ├── legacy_proto_parameters_test.cc │ │ ├── md_util.cc │ │ ├── md_util.h │ │ ├── md_util_test.cc │ │ ├── monitoring_util.h │ │ ├── monitoring_util_test.cc │ │ ├── mutable_serialization_registry.cc │ │ ├── mutable_serialization_registry.h │ │ ├── mutable_serialization_registry_test.cc │ │ ├── parameters_parser.h │ │ ├── parameters_parser_test.cc │ │ ├── parameters_serializer.h │ │ ├── parameters_serializer_test.cc │ │ ├── parser_index.h │ │ ├── parser_index_test.cc │ │ ├── proto_key_serialization.cc │ │ ├── proto_key_serialization.h │ │ ├── proto_key_serialization_test.cc │ │ ├── proto_parameters_serialization.cc │ │ ├── proto_parameters_serialization.h │ │ ├── proto_parameters_serialization_test.cc │ │ ├── registry_impl.cc │ │ ├── registry_impl.h │ │ ├── registry_impl_test.cc │ │ ├── rsa_util.cc │ │ ├── rsa_util.h │ │ ├── rsa_util_test.cc │ │ ├── safe_stringops.h │ │ ├── safe_stringops_test.cc │ │ ├── serialization.h │ │ ├── serialization_registry.cc │ │ ├── serialization_registry.h │ │ ├── serialization_registry_test.cc │ │ ├── serialization_test_util.h │ │ ├── serialization_test_util_test.cc │ │ ├── serializer_index.h │ │ ├── serializer_index_test.cc │ │ ├── ssl_unique_ptr.h │ │ ├── ssl_util.h │ │ ├── test_file_util.cc │ │ ├── test_file_util.h │ │ ├── test_file_util_bazel.cc │ │ ├── test_file_util_cmake.cc │ │ ├── test_random_access_stream.cc │ │ ├── test_random_access_stream.h │ │ ├── test_random_access_stream_test.cc │ │ ├── util.cc │ │ ├── util.h │ │ └── util_test.cc │ ├── json_keyset_reader.h │ ├── json_keyset_writer.h │ ├── jwt/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── json_util.cc │ │ │ ├── json_util.h │ │ │ ├── json_util_test.cc │ │ │ ├── jwt_ecdsa_sign_key_manager.cc │ │ │ ├── jwt_ecdsa_sign_key_manager.h │ │ │ ├── jwt_ecdsa_sign_verify_key_manager_test.cc │ │ │ ├── jwt_ecdsa_verify_key_manager.cc │ │ │ ├── jwt_ecdsa_verify_key_manager.h │ │ │ ├── jwt_format.cc │ │ │ ├── jwt_format.h │ │ │ ├── jwt_format_test.cc │ │ │ ├── jwt_hmac_key_manager.cc │ │ │ ├── jwt_hmac_key_manager.h │ │ │ ├── jwt_hmac_key_manager_test.cc │ │ │ ├── jwt_mac_impl.cc │ │ │ ├── jwt_mac_impl.h │ │ │ ├── jwt_mac_impl_test.cc │ │ │ ├── jwt_mac_internal.h │ │ │ ├── jwt_mac_wrapper.cc │ │ │ ├── jwt_mac_wrapper.h │ │ │ ├── jwt_mac_wrapper_test.cc │ │ │ ├── jwt_public_key_sign_impl.cc │ │ │ ├── jwt_public_key_sign_impl.h │ │ │ ├── jwt_public_key_sign_internal.h │ │ │ ├── jwt_public_key_sign_verify_impl_test.cc │ │ │ ├── jwt_public_key_sign_wrapper.cc │ │ │ ├── jwt_public_key_sign_wrapper.h │ │ │ ├── jwt_public_key_verify_impl.cc │ │ │ ├── jwt_public_key_verify_impl.h │ │ │ ├── jwt_public_key_verify_internal.h │ │ │ ├── jwt_public_key_verify_wrapper.cc │ │ │ ├── jwt_public_key_verify_wrapper.h │ │ │ ├── jwt_public_key_wrappers_test.cc │ │ │ ├── jwt_rsa_ssa_pkcs1_sign_key_manager.cc │ │ │ ├── jwt_rsa_ssa_pkcs1_sign_key_manager.h │ │ │ ├── jwt_rsa_ssa_pkcs1_sign_verify_key_manager_test.cc │ │ │ ├── jwt_rsa_ssa_pkcs1_verify_key_manager.cc │ │ │ ├── jwt_rsa_ssa_pkcs1_verify_key_manager.h │ │ │ ├── jwt_rsa_ssa_pss_sign_key_manager.cc │ │ │ ├── jwt_rsa_ssa_pss_sign_key_manager.h │ │ │ ├── jwt_rsa_ssa_pss_sign_verify_key_manager_test.cc │ │ │ ├── jwt_rsa_ssa_pss_verify_key_manager.cc │ │ │ ├── jwt_rsa_ssa_pss_verify_key_manager.h │ │ │ ├── raw_jwt_ecdsa_sign_key_manager.cc │ │ │ ├── raw_jwt_ecdsa_sign_key_manager.h │ │ │ ├── raw_jwt_ecdsa_sign_key_manager_test.cc │ │ │ ├── raw_jwt_ecdsa_verify_key_manager.cc │ │ │ ├── raw_jwt_ecdsa_verify_key_manager.h │ │ │ ├── raw_jwt_ecdsa_verify_key_manager_test.cc │ │ │ ├── raw_jwt_hmac_key_manager.cc │ │ │ ├── raw_jwt_hmac_key_manager.h │ │ │ ├── raw_jwt_hmac_key_manager_test.cc │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_sign_key_manager.cc │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_sign_key_manager.h │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_sign_key_manager_test.cc │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_verify_key_manager.cc │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_verify_key_manager.h │ │ │ ├── raw_jwt_rsa_ssa_pkcs1_verify_key_manager_test.cc │ │ │ ├── raw_jwt_rsa_ssa_pss_sign_key_manager.cc │ │ │ ├── raw_jwt_rsa_ssa_pss_sign_key_manager.h │ │ │ ├── raw_jwt_rsa_ssa_pss_sign_key_manager_test.cc │ │ │ ├── raw_jwt_rsa_ssa_pss_verify_key_manager.cc │ │ │ ├── raw_jwt_rsa_ssa_pss_verify_key_manager.h │ │ │ └── raw_jwt_rsa_ssa_pss_verify_key_manager_test.cc │ │ ├── jwk_set_converter.cc │ │ ├── jwk_set_converter.h │ │ ├── jwk_set_converter_test.cc │ │ ├── jwt_hmac_key.cc │ │ ├── jwt_hmac_key.h │ │ ├── jwt_hmac_key_test.cc │ │ ├── jwt_hmac_parameters.cc │ │ ├── jwt_hmac_parameters.h │ │ ├── jwt_hmac_parameters_test.cc │ │ ├── jwt_hmac_proto_serialization.cc │ │ ├── jwt_hmac_proto_serialization.h │ │ ├── jwt_hmac_proto_serialization_test.cc │ │ ├── jwt_key_templates.cc │ │ ├── jwt_key_templates.h │ │ ├── jwt_key_templates_test.cc │ │ ├── jwt_mac.h │ │ ├── jwt_mac_config.cc │ │ ├── jwt_mac_config.h │ │ ├── jwt_mac_config_test.cc │ │ ├── jwt_mac_key.h │ │ ├── jwt_mac_parameters.h │ │ ├── jwt_public_key_sign.h │ │ ├── jwt_public_key_verify.h │ │ ├── jwt_signature_config.cc │ │ ├── jwt_signature_config.h │ │ ├── jwt_signature_config_test.cc │ │ ├── jwt_signature_parameters.h │ │ ├── jwt_signature_private_key.h │ │ ├── jwt_signature_public_key.h │ │ ├── jwt_validator.cc │ │ ├── jwt_validator.h │ │ ├── jwt_validator_test.cc │ │ ├── raw_jwt.cc │ │ ├── raw_jwt.h │ │ ├── raw_jwt_test.cc │ │ ├── verified_jwt.cc │ │ ├── verified_jwt.h │ │ └── verified_jwt_test.cc │ ├── kem/ │ │ └── internal/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── raw_kem_decapsulate.h │ │ └── raw_kem_encapsulate.h │ ├── key.h │ ├── key_access.h │ ├── key_gen_configuration.h │ ├── key_manager.h │ ├── key_status.h │ ├── keyderivation/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_prf_for_deriver.h │ │ │ ├── config_prf_for_deriver_test.cc │ │ │ ├── key_derivers.cc │ │ │ ├── key_derivers.h │ │ │ ├── key_derivers_test.cc │ │ │ ├── prf_based_deriver.cc │ │ │ ├── prf_based_deriver.h │ │ │ ├── prf_based_deriver_key_manager.h │ │ │ ├── prf_based_deriver_key_manager_test.cc │ │ │ └── prf_based_deriver_test.cc │ │ ├── key_derivation_config.cc │ │ ├── key_derivation_config.h │ │ ├── key_derivation_config_test.cc │ │ ├── key_derivation_key_templates.cc │ │ ├── key_derivation_key_templates.h │ │ ├── key_derivation_key_templates_test.cc │ │ ├── keyset_deriver.h │ │ ├── keyset_deriver_test.cc │ │ ├── keyset_deriver_wrapper.cc │ │ ├── keyset_deriver_wrapper.h │ │ ├── keyset_deriver_wrapper_test.cc │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── keyset_handle.h │ ├── keyset_handle_builder.h │ ├── keyset_manager.h │ ├── keyset_reader.h │ ├── keyset_writer.h │ ├── kms_client.h │ ├── kms_clients.h │ ├── mac/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aes_cmac_key.cc │ │ ├── aes_cmac_key.h │ │ ├── aes_cmac_key_manager.h │ │ ├── aes_cmac_key_manager_test.cc │ │ ├── aes_cmac_key_test.cc │ │ ├── aes_cmac_parameters.cc │ │ ├── aes_cmac_parameters.h │ │ ├── aes_cmac_parameters_test.cc │ │ ├── aes_cmac_proto_serialization.cc │ │ ├── aes_cmac_proto_serialization.h │ │ ├── aes_cmac_proto_serialization_test.cc │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── failing_mac.cc │ │ ├── failing_mac.h │ │ ├── failing_mac_test.cc │ │ ├── hmac_key.cc │ │ ├── hmac_key.h │ │ ├── hmac_key_manager.cc │ │ ├── hmac_key_manager.h │ │ ├── hmac_key_manager_test.cc │ │ ├── hmac_key_test.cc │ │ ├── hmac_parameters.cc │ │ ├── hmac_parameters.h │ │ ├── hmac_parameters_test.cc │ │ ├── hmac_proto_serialization.cc │ │ ├── hmac_proto_serialization.h │ │ ├── hmac_proto_serialization_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── chunked_mac_impl.cc │ │ │ ├── chunked_mac_impl.h │ │ │ ├── chunked_mac_impl_test.cc │ │ │ ├── chunked_mac_test.cc │ │ │ ├── chunked_mac_wrapper.cc │ │ │ ├── chunked_mac_wrapper.h │ │ │ ├── chunked_mac_wrapper_test.cc │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ └── key_gen_config_v0.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ ├── mac_config.cc │ │ ├── mac_config.h │ │ ├── mac_config_test.cc │ │ ├── mac_factory.cc │ │ ├── mac_factory.h │ │ ├── mac_factory_test.cc │ │ ├── mac_key.h │ │ ├── mac_key_templates.cc │ │ ├── mac_key_templates.h │ │ ├── mac_key_templates_test.cc │ │ ├── mac_parameters.h │ │ ├── mac_wrapper.cc │ │ ├── mac_wrapper.h │ │ ├── mac_wrapper_test.cc │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── mac.h │ ├── mac_config.h │ ├── mac_factory.h │ ├── mac_key_templates.h │ ├── monitoring/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── monitoring.h │ │ └── monitoring_client_mocks.h │ ├── output_stream.h │ ├── output_stream_with_result.h │ ├── parameters.h │ ├── partial_key_access.h │ ├── partial_key_access_token.h │ ├── prf/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aes_cmac_prf_key_manager.h │ │ ├── aes_cmac_prf_key_manager_test.cc │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── failing_prfset.cc │ │ ├── failing_prfset.h │ │ ├── failing_prfset_test.cc │ │ ├── hkdf_prf_key_manager.h │ │ ├── hkdf_prf_key_manager_test.cc │ │ ├── hmac_prf_key_manager.cc │ │ ├── hmac_prf_key_manager.h │ │ ├── hmac_prf_key_manager_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ └── key_gen_config_v0.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ ├── prf_config.cc │ │ ├── prf_config.h │ │ ├── prf_config_test.cc │ │ ├── prf_key_templates.cc │ │ ├── prf_key_templates.h │ │ ├── prf_key_templates_test.cc │ │ ├── prf_set.cc │ │ ├── prf_set.h │ │ ├── prf_set_test.cc │ │ ├── prf_set_wrapper.cc │ │ ├── prf_set_wrapper.h │ │ ├── prf_set_wrapper_test.cc │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── primitive_set.h │ ├── primitive_wrapper.h │ ├── private_key.h │ ├── proto/ │ │ ├── BUILD.bazel │ │ ├── aes_cmac.proto │ │ ├── aes_cmac_prf.proto │ │ ├── aes_ctr.proto │ │ ├── aes_ctr_hmac_aead.proto │ │ ├── aes_ctr_hmac_streaming.proto │ │ ├── aes_eax.proto │ │ ├── aes_gcm.proto │ │ ├── aes_gcm_hkdf_streaming.proto │ │ ├── aes_gcm_siv.proto │ │ ├── aes_siv.proto │ │ ├── chacha20_poly1305.proto │ │ ├── common.proto │ │ ├── config.proto │ │ ├── ecdsa.proto │ │ ├── ecies_aead_hkdf.proto │ │ ├── ed25519.proto │ │ ├── empty.proto │ │ ├── experimental/ │ │ │ └── pqcrypto/ │ │ │ ├── BUILD.bazel │ │ │ ├── cecpq2_aead_hkdf.proto │ │ │ ├── dilithium.proto │ │ │ ├── falcon.proto │ │ │ ├── slh_dsa.proto │ │ │ └── sphincs.proto │ │ ├── hkdf_prf.proto │ │ ├── hmac.proto │ │ ├── hmac_prf.proto │ │ ├── hpke.proto │ │ ├── jwt_ecdsa.proto │ │ ├── jwt_hmac.proto │ │ ├── jwt_rsa_ssa_pkcs1.proto │ │ ├── jwt_rsa_ssa_pss.proto │ │ ├── kms_aead.proto │ │ ├── kms_envelope.proto │ │ ├── prf_based_deriver.proto │ │ ├── rsa_ssa_pkcs1.proto │ │ ├── rsa_ssa_pss.proto │ │ ├── test_proto.proto │ │ ├── tink.proto │ │ └── xchacha20_poly1305.proto │ ├── proto_keyset_format.cc │ ├── proto_keyset_format.h │ ├── proto_keyset_format_test.cc │ ├── public_key_sign.h │ ├── public_key_sign_factory.h │ ├── public_key_verify.h │ ├── public_key_verify_factory.h │ ├── random_access_stream.h │ ├── registry.h │ ├── restricted_big_integer.h │ ├── restricted_data.h │ ├── secret_key_access.h │ ├── secret_key_access_token.h │ ├── signature/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── ecdsa_parameters.cc │ │ ├── ecdsa_parameters.h │ │ ├── ecdsa_parameters_test.cc │ │ ├── ecdsa_private_key.cc │ │ ├── ecdsa_private_key.h │ │ ├── ecdsa_private_key_test.cc │ │ ├── ecdsa_proto_serialization.cc │ │ ├── ecdsa_proto_serialization.h │ │ ├── ecdsa_proto_serialization_test.cc │ │ ├── ecdsa_public_key.cc │ │ ├── ecdsa_public_key.h │ │ ├── ecdsa_public_key_test.cc │ │ ├── ecdsa_sign_key_manager.cc │ │ ├── ecdsa_sign_key_manager.h │ │ ├── ecdsa_sign_key_manager_test.cc │ │ ├── ecdsa_verify_key_manager.cc │ │ ├── ecdsa_verify_key_manager.h │ │ ├── ecdsa_verify_key_manager_test.cc │ │ ├── ed25519_parameters.cc │ │ ├── ed25519_parameters.h │ │ ├── ed25519_parameters_test.cc │ │ ├── ed25519_private_key.cc │ │ ├── ed25519_private_key.h │ │ ├── ed25519_private_key_test.cc │ │ ├── ed25519_proto_serialization.cc │ │ ├── ed25519_proto_serialization.h │ │ ├── ed25519_proto_serialization_test.cc │ │ ├── ed25519_public_key.cc │ │ ├── ed25519_public_key.h │ │ ├── ed25519_public_key_test.cc │ │ ├── ed25519_sign_key_manager.cc │ │ ├── ed25519_sign_key_manager.h │ │ ├── ed25519_sign_key_manager_test.cc │ │ ├── ed25519_verify_key_manager.cc │ │ ├── ed25519_verify_key_manager.h │ │ ├── ed25519_verify_key_manager_test.cc │ │ ├── failing_signature.cc │ │ ├── failing_signature.h │ │ ├── failing_signature_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_fips_140_2.cc │ │ │ ├── config_fips_140_2.h │ │ │ ├── config_fips_140_2_test.cc │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── ecdsa_raw_sign_boringssl.cc │ │ │ ├── ecdsa_raw_sign_boringssl.h │ │ │ ├── ecdsa_raw_sign_boringssl_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ └── key_gen_config_v0.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ ├── public_key_sign_factory.cc │ │ ├── public_key_sign_factory.h │ │ ├── public_key_sign_factory_test.cc │ │ ├── public_key_sign_wrapper.cc │ │ ├── public_key_sign_wrapper.h │ │ ├── public_key_sign_wrapper_test.cc │ │ ├── public_key_verify_factory.cc │ │ ├── public_key_verify_factory.h │ │ ├── public_key_verify_factory_test.cc │ │ ├── public_key_verify_wrapper.cc │ │ ├── public_key_verify_wrapper.h │ │ ├── public_key_verify_wrapper_test.cc │ │ ├── rsa_ssa_pkcs1_parameters.cc │ │ ├── rsa_ssa_pkcs1_parameters.h │ │ ├── rsa_ssa_pkcs1_parameters_test.cc │ │ ├── rsa_ssa_pkcs1_private_key.cc │ │ ├── rsa_ssa_pkcs1_private_key.h │ │ ├── rsa_ssa_pkcs1_private_key_test.cc │ │ ├── rsa_ssa_pkcs1_proto_serialization.cc │ │ ├── rsa_ssa_pkcs1_proto_serialization.h │ │ ├── rsa_ssa_pkcs1_proto_serialization_test.cc │ │ ├── rsa_ssa_pkcs1_public_key.cc │ │ ├── rsa_ssa_pkcs1_public_key.h │ │ ├── rsa_ssa_pkcs1_public_key_test.cc │ │ ├── rsa_ssa_pkcs1_sign_key_manager.cc │ │ ├── rsa_ssa_pkcs1_sign_key_manager.h │ │ ├── rsa_ssa_pkcs1_sign_key_manager_test.cc │ │ ├── rsa_ssa_pkcs1_verify_key_manager.cc │ │ ├── rsa_ssa_pkcs1_verify_key_manager.h │ │ ├── rsa_ssa_pkcs1_verify_key_manager_test.cc │ │ ├── rsa_ssa_pss_parameters.cc │ │ ├── rsa_ssa_pss_parameters.h │ │ ├── rsa_ssa_pss_parameters_test.cc │ │ ├── rsa_ssa_pss_private_key.cc │ │ ├── rsa_ssa_pss_private_key.h │ │ ├── rsa_ssa_pss_private_key_test.cc │ │ ├── rsa_ssa_pss_proto_serialization.cc │ │ ├── rsa_ssa_pss_proto_serialization.h │ │ ├── rsa_ssa_pss_proto_serialization_test.cc │ │ ├── rsa_ssa_pss_public_key.cc │ │ ├── rsa_ssa_pss_public_key.h │ │ ├── rsa_ssa_pss_public_key_test.cc │ │ ├── rsa_ssa_pss_sign_key_manager.cc │ │ ├── rsa_ssa_pss_sign_key_manager.h │ │ ├── rsa_ssa_pss_sign_key_manager_test.cc │ │ ├── rsa_ssa_pss_verify_key_manager.cc │ │ ├── rsa_ssa_pss_verify_key_manager.h │ │ ├── rsa_ssa_pss_verify_key_manager_test.cc │ │ ├── sig_util.cc │ │ ├── sig_util.h │ │ ├── signature_config.cc │ │ ├── signature_config.h │ │ ├── signature_config_test.cc │ │ ├── signature_key_templates.cc │ │ ├── signature_key_templates.h │ │ ├── signature_key_templates_test.cc │ │ ├── signature_parameters.h │ │ ├── signature_pem_keyset_reader.cc │ │ ├── signature_pem_keyset_reader.h │ │ ├── signature_pem_keyset_reader_test.cc │ │ ├── signature_private_key.h │ │ ├── signature_public_key.h │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── signature_config.h │ ├── signature_key_templates.h │ ├── streaming_aead.h │ ├── streaming_aead_config.h │ ├── streaming_aead_key_templates.h │ ├── streaming_mac.h │ ├── streamingaead/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aes_ctr_hmac_streaming_key_manager.cc │ │ ├── aes_ctr_hmac_streaming_key_manager.h │ │ ├── aes_ctr_hmac_streaming_key_manager_test.cc │ │ ├── aes_gcm_hkdf_streaming_key_manager.cc │ │ ├── aes_gcm_hkdf_streaming_key_manager.h │ │ ├── aes_gcm_hkdf_streaming_key_manager_test.cc │ │ ├── buffered_input_stream.cc │ │ ├── buffered_input_stream.h │ │ ├── buffered_input_stream_test.cc │ │ ├── config_v0.cc │ │ ├── config_v0.h │ │ ├── config_v0_test.cc │ │ ├── decrypting_input_stream.cc │ │ ├── decrypting_input_stream.h │ │ ├── decrypting_input_stream_test.cc │ │ ├── decrypting_random_access_stream.cc │ │ ├── decrypting_random_access_stream.h │ │ ├── decrypting_random_access_stream_test.cc │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── config_v0.cc │ │ │ ├── config_v0.h │ │ │ ├── config_v0_test.cc │ │ │ ├── key_gen_config_v0.cc │ │ │ └── key_gen_config_v0.h │ │ ├── key_gen_config_v0.cc │ │ ├── key_gen_config_v0.h │ │ ├── shared_input_stream.h │ │ ├── shared_input_stream_test.cc │ │ ├── shared_random_access_stream.h │ │ ├── shared_random_access_stream_test.cc │ │ ├── streaming_aead_config.cc │ │ ├── streaming_aead_config.h │ │ ├── streaming_aead_config_test.cc │ │ ├── streaming_aead_key_templates.cc │ │ ├── streaming_aead_key_templates.h │ │ ├── streaming_aead_key_templates_test.cc │ │ ├── streaming_aead_wrapper.cc │ │ ├── streaming_aead_wrapper.h │ │ ├── streaming_aead_wrapper_test.cc │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ └── CMakeLists.txt │ ├── subtle/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── aead_test_util.cc │ │ ├── aead_test_util.h │ │ ├── aead_test_util_test.cc │ │ ├── aes_cmac_boringssl.cc │ │ ├── aes_cmac_boringssl.h │ │ ├── aes_cmac_boringssl_test.cc │ │ ├── aes_ctr_boringssl.cc │ │ ├── aes_ctr_boringssl.h │ │ ├── aes_ctr_boringssl_test.cc │ │ ├── aes_ctr_hmac_streaming.cc │ │ ├── aes_ctr_hmac_streaming.h │ │ ├── aes_ctr_hmac_streaming_test.cc │ │ ├── aes_eax_boringssl.cc │ │ ├── aes_eax_boringssl.h │ │ ├── aes_eax_boringssl_test.cc │ │ ├── aes_gcm_boringssl.cc │ │ ├── aes_gcm_boringssl.h │ │ ├── aes_gcm_boringssl_test.cc │ │ ├── aes_gcm_hkdf_stream_segment_decrypter.cc │ │ ├── aes_gcm_hkdf_stream_segment_decrypter.h │ │ ├── aes_gcm_hkdf_stream_segment_decrypter_test.cc │ │ ├── aes_gcm_hkdf_stream_segment_encrypter.cc │ │ ├── aes_gcm_hkdf_stream_segment_encrypter.h │ │ ├── aes_gcm_hkdf_stream_segment_encrypter_test.cc │ │ ├── aes_gcm_hkdf_streaming.cc │ │ ├── aes_gcm_hkdf_streaming.h │ │ ├── aes_gcm_hkdf_streaming_test.cc │ │ ├── aes_gcm_siv_boringssl.cc │ │ ├── aes_gcm_siv_boringssl.h │ │ ├── aes_gcm_siv_boringssl_test.cc │ │ ├── aes_siv_boringssl.cc │ │ ├── aes_siv_boringssl.h │ │ ├── aes_siv_boringssl_test.cc │ │ ├── common_enums.cc │ │ ├── common_enums.h │ │ ├── common_enums_test.cc │ │ ├── decrypting_random_access_stream.cc │ │ ├── decrypting_random_access_stream.h │ │ ├── decrypting_random_access_stream_test.cc │ │ ├── ec_util.h │ │ ├── ecdsa_sign_boringssl.cc │ │ ├── ecdsa_sign_boringssl.h │ │ ├── ecdsa_sign_boringssl_test.cc │ │ ├── ecdsa_verify_boringssl.cc │ │ ├── ecdsa_verify_boringssl.h │ │ ├── ecdsa_verify_boringssl_test.cc │ │ ├── ecies_hkdf_recipient_kem_boringssl.cc │ │ ├── ecies_hkdf_recipient_kem_boringssl.h │ │ ├── ecies_hkdf_recipient_kem_boringssl_test.cc │ │ ├── ecies_hkdf_sender_kem_boringssl.cc │ │ ├── ecies_hkdf_sender_kem_boringssl.h │ │ ├── ecies_hkdf_sender_kem_boringssl_test.cc │ │ ├── ed25519_sign_boringssl.cc │ │ ├── ed25519_sign_boringssl.h │ │ ├── ed25519_sign_boringssl_test.cc │ │ ├── ed25519_verify_boringssl.cc │ │ ├── ed25519_verify_boringssl.h │ │ ├── ed25519_verify_boringssl_test.cc │ │ ├── encrypt_then_authenticate.cc │ │ ├── encrypt_then_authenticate.h │ │ ├── encrypt_then_authenticate_test.cc │ │ ├── hkdf.cc │ │ ├── hkdf.h │ │ ├── hkdf_test.cc │ │ ├── hmac_boringssl.cc │ │ ├── hmac_boringssl.h │ │ ├── hmac_boringssl_test.cc │ │ ├── hybrid_test_util.cc │ │ ├── hybrid_test_util.h │ │ ├── hybrid_test_util_test.cc │ │ ├── ind_cpa_cipher.h │ │ ├── mac/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ └── stateful_mac.h │ │ ├── nonce_based_streaming_aead.cc │ │ ├── nonce_based_streaming_aead.h │ │ ├── pem_parser_boringssl.cc │ │ ├── pem_parser_boringssl.h │ │ ├── pem_parser_boringssl_test.cc │ │ ├── prf/ │ │ │ ├── BUILD.bazel │ │ │ ├── CMakeLists.txt │ │ │ ├── hkdf_streaming_prf.cc │ │ │ ├── hkdf_streaming_prf.h │ │ │ ├── hkdf_streaming_prf_test.cc │ │ │ ├── prf_set_util.cc │ │ │ ├── prf_set_util.h │ │ │ ├── prf_set_util_test.cc │ │ │ ├── streaming_prf.h │ │ │ ├── streaming_prf_wrapper.cc │ │ │ ├── streaming_prf_wrapper.h │ │ │ └── streaming_prf_wrapper_test.cc │ │ ├── random.cc │ │ ├── random.h │ │ ├── random_test.cc │ │ ├── rsa_ssa_pkcs1_sign_boringssl.cc │ │ ├── rsa_ssa_pkcs1_sign_boringssl.h │ │ ├── rsa_ssa_pkcs1_sign_boringssl_test.cc │ │ ├── rsa_ssa_pkcs1_verify_boringssl.cc │ │ ├── rsa_ssa_pkcs1_verify_boringssl.h │ │ ├── rsa_ssa_pkcs1_verify_boringssl_test.cc │ │ ├── rsa_ssa_pss_sign_boringssl.cc │ │ ├── rsa_ssa_pss_sign_boringssl.h │ │ ├── rsa_ssa_pss_sign_boringssl_test.cc │ │ ├── rsa_ssa_pss_verify_boringssl.cc │ │ ├── rsa_ssa_pss_verify_boringssl.h │ │ ├── rsa_ssa_pss_verify_boringssl_test.cc │ │ ├── stateful_cmac_boringssl.cc │ │ ├── stateful_cmac_boringssl.h │ │ ├── stateful_cmac_boringssl_test.cc │ │ ├── stateful_hmac_boringssl.cc │ │ ├── stateful_hmac_boringssl.h │ │ ├── stateful_hmac_boringssl_test.cc │ │ ├── stream_segment_decrypter.h │ │ ├── stream_segment_encrypter.h │ │ ├── streaming_aead_decrypting_stream.cc │ │ ├── streaming_aead_decrypting_stream.h │ │ ├── streaming_aead_decrypting_stream_test.cc │ │ ├── streaming_aead_encrypting_stream.cc │ │ ├── streaming_aead_encrypting_stream.h │ │ ├── streaming_aead_encrypting_stream_test.cc │ │ ├── streaming_aead_test_util.cc │ │ ├── streaming_aead_test_util.h │ │ ├── streaming_aead_test_util_test.cc │ │ ├── streaming_mac_impl.cc │ │ ├── streaming_mac_impl.h │ │ ├── streaming_mac_impl_test.cc │ │ ├── subtle_util.cc │ │ ├── subtle_util.h │ │ ├── subtle_util_boringssl.h │ │ ├── subtle_util_test.cc │ │ ├── test_util.cc │ │ ├── test_util.h │ │ ├── wycheproof_util.cc │ │ ├── wycheproof_util.h │ │ ├── xchacha20_poly1305_boringssl.cc │ │ ├── xchacha20_poly1305_boringssl.h │ │ └── xchacha20_poly1305_boringssl_test.cc │ ├── template_rule.bzl │ ├── testvectors/ │ │ └── BUILD.bazel │ ├── third_party/ │ │ ├── BUILD.bazel │ │ ├── boringssl_fips/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── WORKSPACE │ │ │ └── boringssl_fips.sh │ │ └── rapidjson.BUILD.bazel │ ├── tink_cc_deps.bzl │ ├── tink_cc_deps_init.bzl │ ├── tink_config.h │ ├── tink_version.bzl │ ├── util/ │ │ ├── BUILD.bazel │ │ ├── CMakeLists.txt │ │ ├── buffer.cc │ │ ├── buffer.h │ │ ├── buffer_test.cc │ │ ├── constants.cc │ │ ├── constants.h │ │ ├── enums.cc │ │ ├── enums.h │ │ ├── enums_test.cc │ │ ├── errors.h │ │ ├── errors_test.cc │ │ ├── fake_kms_client.cc │ │ ├── fake_kms_client.h │ │ ├── fake_kms_client_test.cc │ │ ├── file_input_stream.cc │ │ ├── file_input_stream.h │ │ ├── file_input_stream_test.cc │ │ ├── file_output_stream.cc │ │ ├── file_output_stream.h │ │ ├── file_output_stream_test.cc │ │ ├── file_random_access_stream.cc │ │ ├── file_random_access_stream.h │ │ ├── file_random_access_stream_test.cc │ │ ├── input_stream_util.cc │ │ ├── input_stream_util.h │ │ ├── input_stream_util_test.cc │ │ ├── istream_input_stream.cc │ │ ├── istream_input_stream.h │ │ ├── istream_input_stream_test.cc │ │ ├── keyset_util.cc │ │ ├── keyset_util.h │ │ ├── ostream_output_stream.cc │ │ ├── ostream_output_stream.h │ │ ├── ostream_output_stream_test.cc │ │ ├── protobuf_helper.h │ │ ├── secret_data.h │ │ ├── secret_data_internal.h │ │ ├── secret_data_test.cc │ │ ├── secret_proto.h │ │ ├── secret_proto_test.cc │ │ ├── status.h │ │ ├── statusor.h │ │ ├── test_keyset_handle.cc │ │ ├── test_keyset_handle.h │ │ ├── test_matchers.h │ │ ├── test_util.cc │ │ ├── test_util.h │ │ ├── test_util_test.cc │ │ ├── validation.cc │ │ ├── validation.h │ │ └── validation_test.cc │ ├── version.h.templ │ └── version_script.lds ├── cmake/ │ ├── HttpArchive.cmake │ ├── TinkBuildRules.cmake │ ├── TinkUtil.cmake │ └── TinkWorkspace.cmake ├── docs/ │ ├── CMAKE-HOWTO.md │ ├── CONTRIBUTING.md │ ├── CPP-HOWTO.md │ ├── FIPS.md │ ├── GOLANG-HOWTO.md │ ├── JAVA-HOWTO.md │ ├── JWT-HOWTO.md │ ├── KEY-MANAGEMENT.md │ ├── KNOWN-ISSUES.md │ ├── OBJC-HOWTO.md │ ├── PRIMITIVES.md │ ├── PYTHON-HOWTO.md │ ├── SECURITY-USABILITY.md │ ├── SECURITY.md │ ├── TINKEY.md │ └── WIRE-FORMAT.md ├── go/ │ ├── .bazelversion │ ├── BUILD.bazel │ ├── README.md │ ├── WORKSPACE │ ├── aead/ │ │ ├── BUILD.bazel │ │ ├── aead.go │ │ ├── aead_benchmark_test.go │ │ ├── aead_factory.go │ │ ├── aead_factory_test.go │ │ ├── aead_init_test.go │ │ ├── aead_key_templates.go │ │ ├── aead_key_templates_test.go │ │ ├── aead_test.go │ │ ├── aes_ctr_hmac_aead_key_manager.go │ │ ├── aes_ctr_hmac_aead_key_manager_test.go │ │ ├── aes_gcm_key_manager.go │ │ ├── aes_gcm_key_manager_test.go │ │ ├── aes_gcm_siv_key_manager.go │ │ ├── aes_gcm_siv_key_manager_test.go │ │ ├── chacha20poly1305_key_manager.go │ │ ├── chacha20poly1305_key_manager_test.go │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ └── testing/ │ │ │ ├── BUILD.bazel │ │ │ └── kmsaead/ │ │ │ ├── BUILD.bazel │ │ │ ├── key_manager.go │ │ │ └── key_manager_test.go │ │ ├── kms_envelope_aead.go │ │ ├── kms_envelope_aead_example_test.go │ │ ├── kms_envelope_aead_key_manager.go │ │ ├── kms_envelope_aead_key_manager_test.go │ │ ├── kms_envelope_aead_test.go │ │ ├── subtle/ │ │ │ ├── BUILD.bazel │ │ │ ├── aes_ctr.go │ │ │ ├── aes_ctr_test.go │ │ │ ├── aes_gcm.go │ │ │ ├── aes_gcm_siv.go │ │ │ ├── aes_gcm_siv_test.go │ │ │ ├── aes_gcm_test.go │ │ │ ├── chacha20poly1305.go │ │ │ ├── chacha20poly1305_test.go │ │ │ ├── chacha20poly1305_vectors_test.go │ │ │ ├── encrypt_then_authenticate.go │ │ │ ├── encrypt_then_authenticate_test.go │ │ │ ├── ind_cpa.go │ │ │ ├── polyval.go │ │ │ ├── polyval_test.go │ │ │ ├── subtle.go │ │ │ ├── subtle_test.go │ │ │ ├── xchacha20poly1305.go │ │ │ ├── xchacha20poly1305_test.go │ │ │ └── xchacha20poly1305_vectors_test.go │ │ ├── xchacha20poly1305_key_manager.go │ │ └── xchacha20poly1305_key_manager_test.go │ ├── core/ │ │ ├── cryptofmt/ │ │ │ ├── BUILD.bazel │ │ │ ├── cryptofmt.go │ │ │ └── cryptofmt_test.go │ │ ├── primitiveset/ │ │ │ ├── BUILD.bazel │ │ │ ├── primitiveset.go │ │ │ └── primitiveset_test.go │ │ └── registry/ │ │ ├── BUILD.bazel │ │ ├── custom_key_manager_test.go │ │ ├── key_manager.go │ │ ├── kms_client.go │ │ ├── private_key_manager.go │ │ ├── registry.go │ │ └── registry_test.go │ ├── daead/ │ │ ├── BUILD.bazel │ │ ├── aes_siv_key_manager.go │ │ ├── aes_siv_key_manager_test.go │ │ ├── daead.go │ │ ├── daead_benchmark_test.go │ │ ├── daead_factory.go │ │ ├── daead_factory_test.go │ │ ├── daead_init_test.go │ │ ├── daead_key_templates.go │ │ ├── daead_key_templates_test.go │ │ ├── daead_test.go │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── aes_siv.go │ │ └── aes_siv_test.go │ ├── deps.bzl │ ├── go.mod │ ├── go.sum │ ├── hybrid/ │ │ ├── BUILD.bazel │ │ ├── ecies_aead_hkdf_dem_helper.go │ │ ├── ecies_aead_hkdf_dem_helper_test.go │ │ ├── ecies_aead_hkdf_hybrid_decrypt_test.go │ │ ├── ecies_aead_hkdf_hybrid_encrypt_test.go │ │ ├── ecies_aead_hkdf_private_key_manager.go │ │ ├── ecies_aead_hkdf_private_key_manager_test.go │ │ ├── ecies_aead_hkdf_public_key_manager.go │ │ ├── ecies_aead_hkdf_public_key_manager_test.go │ │ ├── ecies_aead_hkdf_test.go │ │ ├── hpke_private_key_manager.go │ │ ├── hpke_private_key_manager_test.go │ │ ├── hpke_public_key_manager.go │ │ ├── hpke_public_key_manager_test.go │ │ ├── hybrid.go │ │ ├── hybrid_benchmark_test.go │ │ ├── hybrid_decrypt_factory.go │ │ ├── hybrid_encrypt_factory.go │ │ ├── hybrid_factory_test.go │ │ ├── hybrid_key_templates.go │ │ ├── hybrid_key_templates_test.go │ │ ├── hybrid_test.go │ │ ├── internal/ │ │ │ └── hpke/ │ │ │ ├── BUILD.bazel │ │ │ ├── aead.go │ │ │ ├── aes_gcm_aead.go │ │ │ ├── aes_gcm_aead_test.go │ │ │ ├── chacha20poly1305_aead.go │ │ │ ├── chacha20poly1305_aead_test.go │ │ │ ├── context.go │ │ │ ├── context_test.go │ │ │ ├── decrypt.go │ │ │ ├── encrypt.go │ │ │ ├── encrypt_decrypt_test.go │ │ │ ├── hkdf_kdf.go │ │ │ ├── hkdf_kdf_test.go │ │ │ ├── hpke.go │ │ │ ├── hpke_test.go │ │ │ ├── kdf.go │ │ │ ├── kem.go │ │ │ ├── primitive_factory.go │ │ │ ├── primitive_factory_test.go │ │ │ ├── x25519_kem.go │ │ │ └── x25519_kem_test.go │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── ecies_aead_hkdf_dem_helper.go │ │ ├── ecies_aead_hkdf_hybrid_decrypt.go │ │ ├── ecies_aead_hkdf_hybrid_encrypt.go │ │ ├── ecies_hkdf_recipient_kem.go │ │ ├── ecies_hkdf_sender_kem.go │ │ ├── elliptic_curves.go │ │ ├── elliptic_curves_test.go │ │ ├── public_key.go │ │ ├── public_key_test.go │ │ ├── subtle.go │ │ └── subtle_test.go │ ├── insecurecleartextkeyset/ │ │ ├── BUILD.bazel │ │ ├── example_test.go │ │ ├── insecurecleartextkeyset.go │ │ └── insecurecleartextkeyset_test.go │ ├── integration/ │ │ ├── awskms/ │ │ │ ├── BUILD.bazel │ │ │ ├── aws_kms_aead.go │ │ │ ├── aws_kms_client.go │ │ │ ├── aws_kms_client_test.go │ │ │ ├── aws_kms_integration_test.go │ │ │ └── internal/ │ │ │ └── fakeawskms/ │ │ │ ├── BUILD.bazel │ │ │ ├── fakeawskms.go │ │ │ └── fakeawskms_test.go │ │ ├── gcpkms/ │ │ │ ├── BUILD.bazel │ │ │ ├── gcp_kms_aead.go │ │ │ ├── gcp_kms_aead_test.go │ │ │ ├── gcp_kms_client.go │ │ │ ├── gcp_kms_client_test.go │ │ │ └── gcp_kms_integration_test.go │ │ └── hcvault/ │ │ ├── BUILD.bazel │ │ ├── hcvault_aead.go │ │ ├── hcvault_aead_internal_test.go │ │ ├── hcvault_aead_test.go │ │ ├── hcvault_client.go │ │ └── hcvault_client_test.go │ ├── internal/ │ │ ├── BUILD.bazel │ │ ├── aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── aead.go │ │ │ ├── aead_test.go │ │ │ ├── aes_gcm_insecure_iv.go │ │ │ ├── aes_gcm_insecure_iv_test.go │ │ │ ├── chacha20poly1305_insecure_nonce.go │ │ │ ├── chacha20poly1305_insecure_nonce_test.go │ │ │ └── chacha20poly1305_insecure_nonce_vectors_test.go │ │ ├── internal.go │ │ ├── internalapi/ │ │ │ ├── BUILD.bazel │ │ │ └── token.go │ │ ├── internalregistry/ │ │ │ ├── BUILD.bazel │ │ │ ├── derivable_key_manager.go │ │ │ ├── internal_registry.go │ │ │ ├── internal_registry_test.go │ │ │ ├── key_derivation.go │ │ │ └── key_derivation_test.go │ │ ├── monitoringutil/ │ │ │ ├── BUILD.bazel │ │ │ ├── monitoring_util.go │ │ │ └── monitoring_util_test.go │ │ ├── registryconfig/ │ │ │ ├── BUILD.bazel │ │ │ ├── registry_config.go │ │ │ └── registry_config_test.go │ │ ├── signature/ │ │ │ ├── BUILD.bazel │ │ │ ├── rsa.go │ │ │ ├── rsa_test.go │ │ │ ├── rsassapkcs1_signer.go │ │ │ ├── rsassapkcs1_signer_verifier_test.go │ │ │ ├── rsassapkcs1_verifier.go │ │ │ ├── rsassapss_signer.go │ │ │ ├── rsassapss_signer_verifier_test.go │ │ │ ├── rsassapss_verifier.go │ │ │ └── signature.go │ │ ├── testing/ │ │ │ └── stubkeymanager/ │ │ │ ├── BUILD.bazel │ │ │ ├── stubkeymanager.go │ │ │ └── stubkeymanager_test.go │ │ └── tinkerror/ │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ ├── tinkerror.go │ │ ├── tinkerror_test.go │ │ └── tinkerrortest/ │ │ ├── BUILD.bazel │ │ ├── doc.go │ │ └── tinkerrortest.go │ ├── jwt/ │ │ ├── BUILD.bazel │ │ ├── jwk_converter.go │ │ ├── jwk_converter_test.go │ │ ├── jwt.go │ │ ├── jwt_ecdsa_signer_key_manager.go │ │ ├── jwt_ecdsa_signer_key_manager_test.go │ │ ├── jwt_ecdsa_verifier_key_manager.go │ │ ├── jwt_ecdsa_verifier_key_manager_test.go │ │ ├── jwt_encoding.go │ │ ├── jwt_encoding_test.go │ │ ├── jwt_hmac_key_manager.go │ │ ├── jwt_hmac_key_manager_test.go │ │ ├── jwt_key_templates.go │ │ ├── jwt_key_templates_test.go │ │ ├── jwt_mac.go │ │ ├── jwt_mac_factory.go │ │ ├── jwt_mac_factory_test.go │ │ ├── jwt_mac_kid.go │ │ ├── jwt_mac_kid_test.go │ │ ├── jwt_rsa_ssa_pkcs1_signer_key_manager.go │ │ ├── jwt_rsa_ssa_pkcs1_signer_key_manager_test.go │ │ ├── jwt_rsa_ssa_pkcs1_verifier_key_manager.go │ │ ├── jwt_rsa_ssa_pkcs1_verifier_key_manager_test.go │ │ ├── jwt_rsa_ssa_pss_signer_key_manager.go │ │ ├── jwt_rsa_ssa_pss_signer_key_manager_test.go │ │ ├── jwt_rsa_ssa_pss_verify_key_manager.go │ │ ├── jwt_rsa_ssa_pss_verify_key_manager_test.go │ │ ├── jwt_signer.go │ │ ├── jwt_signer_factory.go │ │ ├── jwt_signer_kid.go │ │ ├── jwt_signer_verifier_factory_test.go │ │ ├── jwt_signer_verifier_kid_test.go │ │ ├── jwt_test.go │ │ ├── jwt_validator.go │ │ ├── jwt_validator_test.go │ │ ├── jwt_verifier.go │ │ ├── jwt_verifier_factory.go │ │ ├── jwt_verifier_kid.go │ │ ├── raw_jwt.go │ │ ├── raw_jwt_test.go │ │ ├── verified_jwt.go │ │ └── verified_jwt_test.go │ ├── keyderivation/ │ │ ├── BUILD.bazel │ │ ├── internal/ │ │ │ └── streamingprf/ │ │ │ ├── BUILD.bazel │ │ │ ├── hkdf_streaming_prf.go │ │ │ ├── hkdf_streaming_prf_key_manager.go │ │ │ ├── hkdf_streaming_prf_key_manager_test.go │ │ │ ├── hkdf_streaming_prf_test.go │ │ │ ├── streaming_prf.go │ │ │ ├── streaming_prf_factory.go │ │ │ ├── streaming_prf_factory_test.go │ │ │ └── streaming_prf_test.go │ │ ├── keyderivation.go │ │ ├── keyderivation_key_templates.go │ │ ├── keyderivation_key_templates_test.go │ │ ├── keyderivation_test.go │ │ ├── keyset_deriver.go │ │ ├── keyset_deriver_factory.go │ │ ├── keyset_deriver_factory_test.go │ │ ├── keyset_deriver_factory_x_test.go │ │ ├── prf_based_deriver.go │ │ ├── prf_based_deriver_key_manager.go │ │ ├── prf_based_deriver_key_manager_test.go │ │ └── prf_based_deriver_test.go │ ├── keyset/ │ │ ├── BUILD.bazel │ │ ├── binary_io.go │ │ ├── binary_io_test.go │ │ ├── handle.go │ │ ├── handle_test.go │ │ ├── json_io.go │ │ ├── json_io_test.go │ │ ├── keyset.go │ │ ├── keyset_test.go │ │ ├── manager.go │ │ ├── manager_test.go │ │ ├── mem_io.go │ │ ├── mem_io_test.go │ │ ├── option.go │ │ ├── reader.go │ │ ├── validation.go │ │ ├── validation_test.go │ │ └── writer.go │ ├── kwp/ │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── kwp.go │ │ └── kwp_test.go │ ├── mac/ │ │ ├── BUILD.bazel │ │ ├── aes_cmac_key_manager.go │ │ ├── aes_cmac_key_manager_test.go │ │ ├── hmac_key_manager.go │ │ ├── hmac_key_manager_test.go │ │ ├── internal/ │ │ │ └── mactest/ │ │ │ ├── BUILD.bazel │ │ │ ├── mactest.go │ │ │ └── mactest_test.go │ │ ├── mac.go │ │ ├── mac_benchmark_test.go │ │ ├── mac_factory.go │ │ ├── mac_factory_test.go │ │ ├── mac_init_test.go │ │ ├── mac_key_templates.go │ │ ├── mac_key_templates_test.go │ │ ├── mac_test.go │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── cmac.go │ │ ├── cmac_test.go │ │ ├── hmac.go │ │ └── hmac_test.go │ ├── monitoring/ │ │ ├── BUILD.bazel │ │ └── monitoring.go │ ├── prf/ │ │ ├── BUILD.bazel │ │ ├── aes_cmac_prf_key_manager.go │ │ ├── aes_cmac_prf_key_manager_test.go │ │ ├── hkdf_prf_key_manager.go │ │ ├── hkdf_prf_key_manager_test.go │ │ ├── hmac_prf_key_manager.go │ │ ├── hmac_prf_key_manager_test.go │ │ ├── prf_benchmark_test.go │ │ ├── prf_key_templates.go │ │ ├── prf_key_templates_test.go │ │ ├── prf_set.go │ │ ├── prf_set_factory.go │ │ ├── prf_set_factory_test.go │ │ ├── prf_test.go │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── aes_cmac.go │ │ ├── aes_cmac_test.go │ │ ├── hkdf.go │ │ ├── hkdf_test.go │ │ ├── hmac.go │ │ ├── hmac_test.go │ │ ├── subtle.go │ │ └── subtle_test.go │ ├── proto/ │ │ ├── aes_cmac_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_cmac.pb.go │ │ ├── aes_cmac_prf_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_cmac_prf.pb.go │ │ ├── aes_ctr_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_ctr.pb.go │ │ ├── aes_ctr_hmac_aead_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_ctr_hmac_aead.pb.go │ │ ├── aes_ctr_hmac_streaming_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_ctr_hmac_streaming.pb.go │ │ ├── aes_gcm_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_gcm.pb.go │ │ ├── aes_gcm_hkdf_streaming_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_gcm_hkdf_streaming.pb.go │ │ ├── aes_gcm_siv_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_gcm_siv.pb.go │ │ ├── aes_siv_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── aes_siv.pb.go │ │ ├── chacha20_poly1305_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── chacha20_poly1305.pb.go │ │ ├── common_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── common.pb.go │ │ ├── ecdsa_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── ecdsa.pb.go │ │ ├── ecies_aead_hkdf_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── ecies_aead_hkdf.pb.go │ │ ├── ed25519_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── ed25519.pb.go │ │ ├── hkdf_prf_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── hkdf_prf.pb.go │ │ ├── hmac_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── hmac.pb.go │ │ ├── hmac_prf_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── hmac_prf.pb.go │ │ ├── hpke_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── hpke.pb.go │ │ ├── jwt_ecdsa_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── jwt_ecdsa.pb.go │ │ ├── jwt_hmac_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── jwt_hmac.pb.go │ │ ├── jwt_rsa_ssa_pkcs1_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── jwt_rsa_ssa_pkcs1.pb.go │ │ ├── jwt_rsa_ssa_pss_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── jwt_rsa_ssa_pss.pb.go │ │ ├── kms_aead_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── kms_aead.pb.go │ │ ├── kms_envelope_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── kms_envelope.pb.go │ │ ├── prf_based_deriver_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── prf_based_deriver.pb.go │ │ ├── rsa_ssa_pkcs1_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── rsa_ssa_pkcs1.pb.go │ │ ├── rsa_ssa_pss_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── rsa_ssa_pss.pb.go │ │ ├── tink_go_proto/ │ │ │ ├── BUILD.bazel │ │ │ └── tink.pb.go │ │ └── xchacha20_poly1305_go_proto/ │ │ ├── BUILD.bazel │ │ └── xchacha20_poly1305.pb.go │ ├── signature/ │ │ ├── BUILD.bazel │ │ ├── ecdsa_signer_key_manager.go │ │ ├── ecdsa_signer_key_manager_test.go │ │ ├── ecdsa_verifier_key_manager.go │ │ ├── ecdsa_verifier_key_manager_test.go │ │ ├── ed25519_signer_key_manager.go │ │ ├── ed25519_signer_key_manager_test.go │ │ ├── ed25519_verifier_key_manager.go │ │ ├── ed25519_verifier_key_manager_test.go │ │ ├── proto.go │ │ ├── rsa.go │ │ ├── rsassapkcs1_signer_key_manager.go │ │ ├── rsassapkcs1_signer_key_manager_test.go │ │ ├── rsassapkcs1_verifier_key_manager.go │ │ ├── rsassapkcs1_verifier_key_manager_test.go │ │ ├── rsassapss_signer_key_manager.go │ │ ├── rsassapss_signer_key_manager_test.go │ │ ├── rsassapss_verifier_key_manager.go │ │ ├── rsassapss_verifier_key_manager_test.go │ │ ├── signature.go │ │ ├── signature_benchmark_test.go │ │ ├── signature_factory_test.go │ │ ├── signature_init_test.go │ │ ├── signature_key_templates.go │ │ ├── signature_key_templates_test.go │ │ ├── signature_test.go │ │ ├── signer_factory.go │ │ ├── subtle/ │ │ │ ├── BUILD.bazel │ │ │ ├── ecdsa.go │ │ │ ├── ecdsa_signer.go │ │ │ ├── ecdsa_signer_verifier_test.go │ │ │ ├── ecdsa_test.go │ │ │ ├── ecdsa_verifier.go │ │ │ ├── ed25519_signer.go │ │ │ ├── ed25519_signer_verifier_test.go │ │ │ ├── ed25519_verifier.go │ │ │ ├── encoding.go │ │ │ ├── subtle.go │ │ │ └── subtle_test.go │ │ └── verifier_factory.go │ ├── streamingaead/ │ │ ├── BUILD.bazel │ │ ├── aes_ctr_hmac_key_manager.go │ │ ├── aes_ctr_hmac_key_manager_test.go │ │ ├── aes_gcm_hkdf_key_manager.go │ │ ├── aes_gcm_hkdf_key_manager_test.go │ │ ├── decrypt_reader.go │ │ ├── decrypt_reader_test.go │ │ ├── streamingaead.go │ │ ├── streamingaead_factory.go │ │ ├── streamingaead_factory_test.go │ │ ├── streamingaead_key_templates.go │ │ ├── streamingaead_key_templates_test.go │ │ ├── streamingaead_test.go │ │ └── subtle/ │ │ ├── BUILD.bazel │ │ ├── aes_ctr_hmac.go │ │ ├── aes_ctr_hmac_test.go │ │ ├── aes_gcm_hkdf.go │ │ ├── aes_gcm_hkdf_test.go │ │ ├── noncebased/ │ │ │ ├── BUILD.bazel │ │ │ ├── noncebased.go │ │ │ └── noncebased_test.go │ │ ├── subtle.go │ │ └── subtle_test.go │ ├── subtle/ │ │ ├── BUILD.bazel │ │ ├── hkdf.go │ │ ├── hkdf_test.go │ │ ├── random/ │ │ │ ├── BUILD.bazel │ │ │ ├── random.go │ │ │ └── random_test.go │ │ ├── subtle.go │ │ ├── subtle_test.go │ │ ├── x25519.go │ │ └── x25519_test.go │ ├── testdata/ │ │ ├── BUILD.bazel │ │ ├── aws/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── access_keys_bad.csv │ │ │ ├── credentials.cred │ │ │ ├── credentials.csv │ │ │ ├── credentials.ini │ │ │ ├── credentials_bad.csv │ │ │ ├── credentials_bad.ini │ │ │ ├── key_arn.txt │ │ │ └── key_arn_bad.txt │ │ ├── gcp/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── credential.json │ │ │ ├── credential_bad.json │ │ │ ├── key_name.txt │ │ │ └── key_name_bad.txt │ │ ├── keysets/ │ │ │ └── BUILD.bazel │ │ └── testvectors/ │ │ ├── BUILD.bazel │ │ └── hpke_boringssl.json │ ├── testing/ │ │ ├── fakekms/ │ │ │ ├── BUILD.bazel │ │ │ ├── fakekms.go │ │ │ └── fakekms_test.go │ │ └── fakemonitoring/ │ │ ├── BUILD.bazel │ │ ├── fakemonitoring.go │ │ └── fakemonitoring_test.go │ ├── testkeyset/ │ │ ├── BUILD.bazel │ │ ├── testkeyset.go │ │ └── testkeyset_test.go │ ├── testutil/ │ │ ├── BUILD.bazel │ │ ├── constant.go │ │ ├── hybrid/ │ │ │ ├── BUILD.bazel │ │ │ ├── private_key.go │ │ │ └── private_key_test.go │ │ ├── testutil.go │ │ ├── testutil_test.go │ │ ├── wycheproofutil.go │ │ └── wycheproofutil_test.go │ ├── tink/ │ │ ├── BUILD.bazel │ │ ├── aead.go │ │ ├── deterministic_aead.go │ │ ├── hybrid_decrypt.go │ │ ├── hybrid_encrypt.go │ │ ├── mac.go │ │ ├── signer.go │ │ ├── streamingaead.go │ │ ├── tink.go │ │ ├── verifier.go │ │ └── version.go │ └── tink_version.bzl ├── java_src/ │ ├── .bazelignore │ ├── .bazelrc │ ├── .bazelversion │ ├── BUILD.bazel │ ├── WORKSPACE │ ├── examples/ │ │ ├── .bazelignore │ │ ├── .bazelrc │ │ ├── .bazelversion │ │ ├── BUILD.bazel │ │ ├── WORKSPACE │ │ ├── aead/ │ │ │ ├── AeadExample.java │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── aead_example_test.sh │ │ │ └── aead_test_keyset.json │ │ ├── android/ │ │ │ └── helloworld/ │ │ │ ├── README.md │ │ │ ├── app/ │ │ │ │ ├── build.gradle │ │ │ │ ├── maven_local.gradle │ │ │ │ ├── maven_snapshot.gradle │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── helloworld/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── TinkApplication.java │ │ │ │ └── res/ │ │ │ │ ├── layout/ │ │ │ │ │ └── activity_main.xml │ │ │ │ └── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── cleartextkeyset/ │ │ │ ├── BUILD.bazel │ │ │ ├── CleartextKeysetExample.java │ │ │ ├── README.md │ │ │ └── cleartext_keyset_example_test.sh │ │ ├── deterministicaead/ │ │ │ ├── BUILD.bazel │ │ │ ├── DeterministicAeadExample.java │ │ │ ├── README.md │ │ │ ├── deterministic_aead_test.sh │ │ │ └── deterministic_aead_test_keyset.json │ │ ├── encryptedkeyset/ │ │ │ ├── BUILD.bazel │ │ │ ├── EncryptedKeysetExample.java │ │ │ ├── README.md │ │ │ └── encrypted_keyset_example_test.sh │ │ ├── envelopeaead/ │ │ │ ├── BUILD.bazel │ │ │ ├── EnvelopeAeadExample.java │ │ │ ├── README.md │ │ │ └── envelope_aead_example_test.sh │ │ ├── gcs/ │ │ │ ├── BUILD.bazel │ │ │ ├── GcsEnvelopeAeadExample.java │ │ │ ├── README.md │ │ │ └── gcs_envelope_aead_example_test.sh │ │ ├── hybrid/ │ │ │ ├── BUILD.bazel │ │ │ ├── HybridExample.java │ │ │ ├── README.md │ │ │ ├── hybrid_example_test.sh │ │ │ ├── hybrid_test_private_keyset.json │ │ │ └── hybrid_test_public_keyset.json │ │ ├── jwt/ │ │ │ ├── BUILD.bazel │ │ │ ├── JwtGeneratePublicJwkSet.java │ │ │ ├── JwtSign.java │ │ │ ├── JwtVerify.java │ │ │ ├── README.md │ │ │ ├── jwt_signature_example_test.sh │ │ │ └── jwt_signature_test_private_keyset.json │ │ ├── mac/ │ │ │ ├── BUILD.bazel │ │ │ ├── MacExample.java │ │ │ ├── README.md │ │ │ ├── mac_example_test.sh │ │ │ └── mac_test_keyset.json │ │ ├── signature/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── SignatureExample.java │ │ │ ├── signature_example_test.sh │ │ │ ├── signature_test_private_keyset.json │ │ │ └── signature_test_public_keyset.json │ │ ├── streamingaead/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── StreamingAeadExample.java │ │ │ ├── streaming_aead_example_test.sh │ │ │ └── streaming_aead_test_keyset.json │ │ ├── testdata/ │ │ │ └── gcp/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── credential.json │ │ │ ├── credential_bad.json │ │ │ ├── key_name.txt │ │ │ └── key_name_bad.txt │ │ └── walkthrough/ │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── walkthrough/ │ │ │ ├── BUILD.bazel │ │ │ ├── CreateKeysetExample.java │ │ │ ├── ObtainAndUseAeadPrimitiveExample.java │ │ │ ├── ReadCleartextKeysetExample.java │ │ │ ├── ReadKeysetExample.java │ │ │ ├── WriteCleartextKeysetExample.java │ │ │ └── WriteKeysetExample.java │ │ └── test/ │ │ └── java/ │ │ └── walkthrough/ │ │ ├── BUILD.bazel │ │ ├── CreateKesetExampleTest.java │ │ ├── ObtainAndUseAeadPrimitiveExampleTest.java │ │ ├── ReadCleartextKeysetExampleTest.java │ │ ├── ReadKeysetExampleTest.java │ │ ├── WriteCleartextKeysetExampleTest.java │ │ └── WriteKeysetExampleTest.java │ ├── jar_jar_rules.txt │ ├── proto/ │ │ ├── BUILD.bazel │ │ ├── aes_cmac.proto │ │ ├── aes_cmac_prf.proto │ │ ├── aes_ctr.proto │ │ ├── aes_ctr_hmac_aead.proto │ │ ├── aes_ctr_hmac_streaming.proto │ │ ├── aes_eax.proto │ │ ├── aes_gcm.proto │ │ ├── aes_gcm_hkdf_streaming.proto │ │ ├── aes_gcm_siv.proto │ │ ├── aes_siv.proto │ │ ├── chacha20_poly1305.proto │ │ ├── common.proto │ │ ├── config.proto │ │ ├── ecdsa.proto │ │ ├── ecies_aead_hkdf.proto │ │ ├── ed25519.proto │ │ ├── empty.proto │ │ ├── hkdf_prf.proto │ │ ├── hmac.proto │ │ ├── hmac_prf.proto │ │ ├── hpke.proto │ │ ├── jwt_ecdsa.proto │ │ ├── jwt_hmac.proto │ │ ├── jwt_rsa_ssa_pkcs1.proto │ │ ├── jwt_rsa_ssa_pss.proto │ │ ├── kms_aead.proto │ │ ├── kms_envelope.proto │ │ ├── prf_based_deriver.proto │ │ ├── rsa_ssa_pkcs1.proto │ │ ├── rsa_ssa_pss.proto │ │ ├── test_proto.proto │ │ ├── tink.proto │ │ └── xchacha20_poly1305.proto │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── crypto/ │ │ │ │ └── tink/ │ │ │ │ ├── AccessesPartialKey.java │ │ │ │ ├── Aead.java │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── BinaryKeysetReader.java │ │ │ │ ├── BinaryKeysetWriter.java │ │ │ │ ├── Catalogue.java │ │ │ │ ├── CleartextKeysetHandle.java │ │ │ │ ├── Config.java │ │ │ │ ├── Configuration.java │ │ │ │ ├── ConfigurationFips140v2.java │ │ │ │ ├── ConfigurationV0.java │ │ │ │ ├── CryptoFormat.java │ │ │ │ ├── DeterministicAead.java │ │ │ │ ├── HybridDecrypt.java │ │ │ │ ├── HybridEncrypt.java │ │ │ │ ├── InsecureSecretKeyAccess.java │ │ │ │ ├── JsonKeysetReader.java │ │ │ │ ├── JsonKeysetWriter.java │ │ │ │ ├── Key.java │ │ │ │ ├── KeyManager.java │ │ │ │ ├── KeyStatus.java │ │ │ │ ├── KeyTemplate.java │ │ │ │ ├── KeyTemplates.java │ │ │ │ ├── KeyWrap.java │ │ │ │ ├── KeysetHandle.java │ │ │ │ ├── KeysetManager.java │ │ │ │ ├── KeysetReader.java │ │ │ │ ├── KeysetWriter.java │ │ │ │ ├── KmsClient.java │ │ │ │ ├── KmsClients.java │ │ │ │ ├── KmsClientsTestUtil.java │ │ │ │ ├── LegacyKeysetSerialization.java │ │ │ │ ├── Mac.java │ │ │ │ ├── NoSecretKeysetHandle.java │ │ │ │ ├── Parameters.java │ │ │ │ ├── PemKeyType.java │ │ │ │ ├── PrimitiveWrapper.java │ │ │ │ ├── PrivateKey.java │ │ │ │ ├── PrivateKeyManager.java │ │ │ │ ├── PublicKeySign.java │ │ │ │ ├── PublicKeyVerify.java │ │ │ │ ├── Registry.java │ │ │ │ ├── RegistryConfiguration.java │ │ │ │ ├── SecretKeyAccess.java │ │ │ │ ├── StreamingAead.java │ │ │ │ ├── TinkJsonProtoKeysetFormat.java │ │ │ │ ├── TinkProtoKeysetFormat.java │ │ │ │ ├── TinkProtoParametersFormat.java │ │ │ │ ├── Util.java │ │ │ │ ├── Version.java.templ │ │ │ │ ├── aead/ │ │ │ │ │ ├── AeadConfig.java │ │ │ │ │ ├── AeadFactory.java │ │ │ │ │ ├── AeadKey.java │ │ │ │ │ ├── AeadKeyTemplates.java │ │ │ │ │ ├── AeadParameters.java │ │ │ │ │ ├── AeadWrapper.java │ │ │ │ │ ├── AesCtrHmacAeadKey.java │ │ │ │ │ ├── AesCtrHmacAeadKeyManager.java │ │ │ │ │ ├── AesCtrHmacAeadParameters.java │ │ │ │ │ ├── AesEaxKey.java │ │ │ │ │ ├── AesEaxKeyManager.java │ │ │ │ │ ├── AesEaxParameters.java │ │ │ │ │ ├── AesGcmKey.java │ │ │ │ │ ├── AesGcmKeyManager.java │ │ │ │ │ ├── AesGcmParameters.java │ │ │ │ │ ├── AesGcmSivKey.java │ │ │ │ │ ├── AesGcmSivKeyManager.java │ │ │ │ │ ├── AesGcmSivParameters.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── ChaCha20Poly1305Key.java │ │ │ │ │ ├── ChaCha20Poly1305KeyManager.java │ │ │ │ │ ├── ChaCha20Poly1305Parameters.java │ │ │ │ │ ├── KmsAeadKeyManager.java │ │ │ │ │ ├── KmsEnvelopeAead.java │ │ │ │ │ ├── KmsEnvelopeAeadKeyManager.java │ │ │ │ │ ├── LegacyKmsAeadKey.java │ │ │ │ │ ├── LegacyKmsAeadParameters.java │ │ │ │ │ ├── LegacyKmsAeadProtoSerialization.java │ │ │ │ │ ├── LegacyKmsEnvelopeAeadKey.java │ │ │ │ │ ├── LegacyKmsEnvelopeAeadParameters.java │ │ │ │ │ ├── LegacyKmsEnvelopeAeadProtoSerialization.java │ │ │ │ │ ├── PredefinedAeadParameters.java │ │ │ │ │ ├── XChaCha20Poly1305Key.java │ │ │ │ │ ├── XChaCha20Poly1305KeyManager.java │ │ │ │ │ ├── XChaCha20Poly1305Parameters.java │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── AesCtrHmacAeadProtoSerialization.java │ │ │ │ │ │ ├── AesEaxProtoSerialization.java │ │ │ │ │ │ ├── AesGcmProtoSerialization.java │ │ │ │ │ │ ├── AesGcmSivProtoSerialization.java │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── ChaCha20Poly1305Jce.java │ │ │ │ │ │ ├── ChaCha20Poly1305ProtoSerialization.java │ │ │ │ │ │ ├── ChaCha20Util.java │ │ │ │ │ │ ├── InsecureNonceAesGcmJce.java │ │ │ │ │ │ ├── InsecureNonceChaCha20.java │ │ │ │ │ │ ├── InsecureNonceChaCha20Base.java │ │ │ │ │ │ ├── InsecureNonceChaCha20Poly1305.java │ │ │ │ │ │ ├── InsecureNonceChaCha20Poly1305Base.java │ │ │ │ │ │ ├── InsecureNonceChaCha20Poly1305Jce.java │ │ │ │ │ │ ├── InsecureNonceXChaCha20.java │ │ │ │ │ │ ├── InsecureNonceXChaCha20Poly1305.java │ │ │ │ │ │ ├── LegacyAesCtrHmacTestKeyManager.java │ │ │ │ │ │ ├── LegacyFullAead.java │ │ │ │ │ │ ├── Poly1305.java │ │ │ │ │ │ ├── XChaCha20Poly1305Jce.java │ │ │ │ │ │ └── XChaCha20Poly1305ProtoSerialization.java │ │ │ │ │ └── subtle/ │ │ │ │ │ ├── AeadFactory.java │ │ │ │ │ ├── AesGcmFactory.java │ │ │ │ │ ├── AesGcmSiv.java │ │ │ │ │ └── BUILD.bazel │ │ │ │ ├── annotations/ │ │ │ │ │ ├── Alpha.java │ │ │ │ │ └── BUILD.bazel │ │ │ │ ├── config/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── TinkConfig.java │ │ │ │ │ ├── TinkFips.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── TinkFipsDisabled.java │ │ │ │ │ ├── TinkFipsEnabled.java │ │ │ │ │ └── TinkFipsUtil.java │ │ │ │ ├── daead/ │ │ │ │ │ ├── AesSivKey.java │ │ │ │ │ ├── AesSivKeyManager.java │ │ │ │ │ ├── AesSivParameters.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── DeterministicAeadConfig.java │ │ │ │ │ ├── DeterministicAeadFactory.java │ │ │ │ │ ├── DeterministicAeadKey.java │ │ │ │ │ ├── DeterministicAeadKeyTemplates.java │ │ │ │ │ ├── DeterministicAeadParameters.java │ │ │ │ │ ├── DeterministicAeadWrapper.java │ │ │ │ │ ├── PredefinedDeterministicAeadParameters.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── AesSivProtoSerialization.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── LegacyFullDeterministicAead.java │ │ │ │ │ └── testing/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ └── LegacyAesSivTestKeyManager.java │ │ │ │ ├── hybrid/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── EciesAeadHkdfPrivateKeyManager.java │ │ │ │ │ ├── EciesAeadHkdfPublicKeyManager.java │ │ │ │ │ ├── EciesParameters.java │ │ │ │ │ ├── EciesPrivateKey.java │ │ │ │ │ ├── EciesPublicKey.java │ │ │ │ │ ├── HpkeParameters.java │ │ │ │ │ ├── HpkePrivateKey.java │ │ │ │ │ ├── HpkeProtoSerialization.java │ │ │ │ │ ├── HpkePublicKey.java │ │ │ │ │ ├── HybridConfig.java │ │ │ │ │ ├── HybridDecryptConfig.java │ │ │ │ │ ├── HybridDecryptFactory.java │ │ │ │ │ ├── HybridDecryptWrapper.java │ │ │ │ │ ├── HybridEncryptConfig.java │ │ │ │ │ ├── HybridEncryptFactory.java │ │ │ │ │ ├── HybridEncryptWrapper.java │ │ │ │ │ ├── HybridKeyTemplates.java │ │ │ │ │ ├── HybridParameters.java │ │ │ │ │ ├── HybridPrivateKey.java │ │ │ │ │ ├── HybridPublicKey.java │ │ │ │ │ ├── HybridUtil.java │ │ │ │ │ ├── PredefinedHybridParameters.java │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── AesGcmHpkeAead.java │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── ChaCha20Poly1305HpkeAead.java │ │ │ │ │ │ ├── EciesProtoSerialization.java │ │ │ │ │ │ ├── HkdfHpkeKdf.java │ │ │ │ │ │ ├── HpkeAead.java │ │ │ │ │ │ ├── HpkeContext.java │ │ │ │ │ │ ├── HpkeDecrypt.java │ │ │ │ │ │ ├── HpkeEncrypt.java │ │ │ │ │ │ ├── HpkeKdf.java │ │ │ │ │ │ ├── HpkeKem.java │ │ │ │ │ │ ├── HpkeKemEncapOutput.java │ │ │ │ │ │ ├── HpkeKemKeyFactory.java │ │ │ │ │ │ ├── HpkeKemPrivateKey.java │ │ │ │ │ │ ├── HpkePrimitiveFactory.java │ │ │ │ │ │ ├── HpkePrivateKeyManager.java │ │ │ │ │ │ ├── HpkePublicKeyManager.java │ │ │ │ │ │ ├── HpkeUtil.java │ │ │ │ │ │ ├── LegacyFullHybridDecrypt.java │ │ │ │ │ │ ├── LegacyFullHybridEncrypt.java │ │ │ │ │ │ ├── NistCurvesHpkeKem.java │ │ │ │ │ │ ├── NistCurvesHpkeKemPrivateKey.java │ │ │ │ │ │ ├── X25519HpkeKem.java │ │ │ │ │ │ ├── X25519HpkeKemPrivateKey.java │ │ │ │ │ │ └── testing/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── EciesAeadHkdfTestUtil.java │ │ │ │ │ │ ├── HpkeTestUtil.java │ │ │ │ │ │ ├── HybridTestVector.java │ │ │ │ │ │ ├── LegacyHybridDecryptKeyManager.java │ │ │ │ │ │ └── LegacyHybridEncryptKeyManager.java │ │ │ │ │ └── subtle/ │ │ │ │ │ ├── AeadOrDaead.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── RsaKem.java │ │ │ │ │ ├── RsaKemHybridDecrypt.java │ │ │ │ │ └── RsaKemHybridEncrypt.java │ │ │ │ ├── integration/ │ │ │ │ │ ├── android/ │ │ │ │ │ │ ├── AndroidKeysetManager.java │ │ │ │ │ │ ├── AndroidKeystoreAesGcm.java │ │ │ │ │ │ ├── AndroidKeystoreKmsClient.java │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── SharedPrefKeysetReader.java │ │ │ │ │ │ ├── SharedPrefKeysetWriter.java │ │ │ │ │ │ └── internal/ │ │ │ │ │ │ └── FakeAndroidKeystoreProvider.java │ │ │ │ │ ├── awskms/ │ │ │ │ │ │ ├── AwsKmsAead.java │ │ │ │ │ │ ├── AwsKmsClient.java │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ └── FakeAwsKms.java │ │ │ │ │ ├── gcpkms/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── FakeCloudKms.java │ │ │ │ │ │ ├── FakeKeyManagementServiceClient.java │ │ │ │ │ │ ├── GcpKmsAead.java │ │ │ │ │ │ └── GcpKmsClient.java │ │ │ │ │ └── hcvault/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── FakeHcVault.java │ │ │ │ │ └── HcVaultAead.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── BigIntegerEncoding.java │ │ │ │ │ ├── BuildDispatchedCode.java │ │ │ │ │ ├── Curve25519.java │ │ │ │ │ ├── Ed25519.java │ │ │ │ │ ├── Ed25519Constants.java │ │ │ │ │ ├── EllipticCurvesUtil.java │ │ │ │ │ ├── EnumTypeProtoConverter.java │ │ │ │ │ ├── Field25519.java │ │ │ │ │ ├── InternalConfiguration.java │ │ │ │ │ ├── JsonParser.java │ │ │ │ │ ├── KeyManagerRegistry.java │ │ │ │ │ ├── KeyParser.java │ │ │ │ │ ├── KeySerializer.java │ │ │ │ │ ├── KeyStatusTypeProtoConverter.java │ │ │ │ │ ├── KeyTemplateProtoConverter.java │ │ │ │ │ ├── KeyTester.java │ │ │ │ │ ├── LegacyKeyManagerImpl.java │ │ │ │ │ ├── LegacyProtoKey.java │ │ │ │ │ ├── LegacyProtoParameters.java │ │ │ │ │ ├── MonitoringUtil.java │ │ │ │ │ ├── MutableKeyCreationRegistry.java │ │ │ │ │ ├── MutableKeyDerivationRegistry.java │ │ │ │ │ ├── MutableMonitoringRegistry.java │ │ │ │ │ ├── MutableParametersRegistry.java │ │ │ │ │ ├── MutablePrimitiveRegistry.java │ │ │ │ │ ├── MutableSerializationRegistry.java │ │ │ │ │ ├── OutputPrefixUtil.java │ │ │ │ │ ├── ParametersParser.java │ │ │ │ │ ├── ParametersSerializer.java │ │ │ │ │ ├── PrimitiveConstructor.java │ │ │ │ │ ├── PrimitiveFactory.java │ │ │ │ │ ├── PrimitiveRegistry.java │ │ │ │ │ ├── PrimitiveSet.java │ │ │ │ │ ├── ProtoKeySerialization.java │ │ │ │ │ ├── ProtoParametersSerialization.java │ │ │ │ │ ├── Random.java │ │ │ │ │ ├── RegistryConfiguration.java │ │ │ │ │ ├── Serialization.java │ │ │ │ │ ├── SerializationRegistry.java │ │ │ │ │ ├── SlowInputStream.java │ │ │ │ │ ├── TinkBugException.java │ │ │ │ │ ├── Util.java │ │ │ │ │ └── testing/ │ │ │ │ │ ├── Asserts.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── BigIntegerTestUtil.java │ │ │ │ │ ├── FakeMonitoringClient.java │ │ │ │ │ ├── KeyWithSerialization.java │ │ │ │ │ └── ParametersWithSerialization.java │ │ │ │ ├── jwt/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── JsonUtil.java │ │ │ │ │ ├── JwkSetConverter.java │ │ │ │ │ ├── JwtEcdsaParameters.java │ │ │ │ │ ├── JwtEcdsaPrivateKey.java │ │ │ │ │ ├── JwtEcdsaProtoSerialization.java │ │ │ │ │ ├── JwtEcdsaPublicKey.java │ │ │ │ │ ├── JwtEcdsaSignKeyManager.java │ │ │ │ │ ├── JwtEcdsaVerifyKeyManager.java │ │ │ │ │ ├── JwtFormat.java │ │ │ │ │ ├── JwtHmacKey.java │ │ │ │ │ ├── JwtHmacKeyManager.java │ │ │ │ │ ├── JwtHmacParameters.java │ │ │ │ │ ├── JwtHmacProtoSerialization.java │ │ │ │ │ ├── JwtInvalidException.java │ │ │ │ │ ├── JwtMac.java │ │ │ │ │ ├── JwtMacConfig.java │ │ │ │ │ ├── JwtMacKey.java │ │ │ │ │ ├── JwtMacParameters.java │ │ │ │ │ ├── JwtMacWrapper.java │ │ │ │ │ ├── JwtNames.java │ │ │ │ │ ├── JwtPublicKeySign.java │ │ │ │ │ ├── JwtPublicKeySignInternal.java │ │ │ │ │ ├── JwtPublicKeySignWrapper.java │ │ │ │ │ ├── JwtPublicKeyVerify.java │ │ │ │ │ ├── JwtPublicKeyVerifyInternal.java │ │ │ │ │ ├── JwtPublicKeyVerifyWrapper.java │ │ │ │ │ ├── JwtRsaSsaPkcs1Parameters.java │ │ │ │ │ ├── JwtRsaSsaPkcs1PrivateKey.java │ │ │ │ │ ├── JwtRsaSsaPkcs1ProtoSerialization.java │ │ │ │ │ ├── JwtRsaSsaPkcs1PublicKey.java │ │ │ │ │ ├── JwtRsaSsaPkcs1SignKeyManager.java │ │ │ │ │ ├── JwtRsaSsaPkcs1VerifyKeyManager.java │ │ │ │ │ ├── JwtRsaSsaPssParameters.java │ │ │ │ │ ├── JwtRsaSsaPssPrivateKey.java │ │ │ │ │ ├── JwtRsaSsaPssProtoSerialization.java │ │ │ │ │ ├── JwtRsaSsaPssPublicKey.java │ │ │ │ │ ├── JwtRsaSsaPssSignKeyManager.java │ │ │ │ │ ├── JwtRsaSsaPssVerifyKeyManager.java │ │ │ │ │ ├── JwtSignatureConfig.java │ │ │ │ │ ├── JwtSignatureParameters.java │ │ │ │ │ ├── JwtSignaturePrivateKey.java │ │ │ │ │ ├── JwtSignaturePublicKey.java │ │ │ │ │ ├── JwtValidator.java │ │ │ │ │ ├── RawJwt.java │ │ │ │ │ └── VerifiedJwt.java │ │ │ │ ├── keyderivation/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── KeyDerivationConfig.java │ │ │ │ │ ├── KeyDerivationKey.java │ │ │ │ │ ├── KeyDerivationParameters.java │ │ │ │ │ ├── KeysetDeriver.java │ │ │ │ │ ├── KeysetDeriverWrapper.java │ │ │ │ │ ├── PrfBasedKeyDerivationKey.java │ │ │ │ │ ├── PrfBasedKeyDerivationParameters.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── KeyDeriver.java │ │ │ │ │ ├── KeysetDeriverWrapper.java │ │ │ │ │ ├── PrfBasedDeriverKeyManager.java │ │ │ │ │ ├── PrfBasedKeyDerivationKeyProtoSerialization.java │ │ │ │ │ └── PrfBasedKeyDeriver.java │ │ │ │ ├── mac/ │ │ │ │ │ ├── AesCmacKey.java │ │ │ │ │ ├── AesCmacKeyManager.java │ │ │ │ │ ├── AesCmacParameters.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── ChunkedMac.java │ │ │ │ │ ├── ChunkedMacComputation.java │ │ │ │ │ ├── ChunkedMacVerification.java │ │ │ │ │ ├── ChunkedMacWrapper.java │ │ │ │ │ ├── HmacKey.java │ │ │ │ │ ├── HmacKeyManager.java │ │ │ │ │ ├── HmacParameters.java │ │ │ │ │ ├── MacConfig.java │ │ │ │ │ ├── MacFactory.java │ │ │ │ │ ├── MacKey.java │ │ │ │ │ ├── MacKeyTemplates.java │ │ │ │ │ ├── MacParameters.java │ │ │ │ │ ├── MacWrapper.java │ │ │ │ │ ├── PredefinedMacParameters.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── AesCmacProtoSerialization.java │ │ │ │ │ ├── AesCmacTestUtil.java │ │ │ │ │ ├── AesUtil.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── ChunkedAesCmacComputation.java │ │ │ │ │ ├── ChunkedAesCmacImpl.java │ │ │ │ │ ├── ChunkedAesCmacVerification.java │ │ │ │ │ ├── ChunkedHmacComputation.java │ │ │ │ │ ├── ChunkedHmacImpl.java │ │ │ │ │ ├── ChunkedHmacVerification.java │ │ │ │ │ ├── HmacProtoSerialization.java │ │ │ │ │ ├── HmacTestUtil.java │ │ │ │ │ ├── LegacyFullMac.java │ │ │ │ │ └── LegacyHmacTestKeyManager.java │ │ │ │ ├── monitoring/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── MonitoringAnnotations.java │ │ │ │ │ ├── MonitoringClient.java │ │ │ │ │ └── MonitoringKeysetInfo.java │ │ │ │ ├── prf/ │ │ │ │ │ ├── AesCmacPrfKey.java │ │ │ │ │ ├── AesCmacPrfKeyManager.java │ │ │ │ │ ├── AesCmacPrfParameters.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── HkdfPrfKey.java │ │ │ │ │ ├── HkdfPrfKeyManager.java │ │ │ │ │ ├── HkdfPrfParameters.java │ │ │ │ │ ├── HmacPrfKey.java │ │ │ │ │ ├── HmacPrfKeyManager.java │ │ │ │ │ ├── HmacPrfParameters.java │ │ │ │ │ ├── PredefinedPrfParameters.java │ │ │ │ │ ├── Prf.java │ │ │ │ │ ├── PrfConfig.java │ │ │ │ │ ├── PrfKey.java │ │ │ │ │ ├── PrfKeyTemplates.java │ │ │ │ │ ├── PrfParameters.java │ │ │ │ │ ├── PrfSet.java │ │ │ │ │ ├── PrfSetWrapper.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── AesCmacPrfProtoSerialization.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── HkdfPrfProtoSerialization.java │ │ │ │ │ ├── HmacPrfProtoSerialization.java │ │ │ │ │ ├── LegacyFullPrf.java │ │ │ │ │ ├── LegacyHmacPrfTestKeyManager.java │ │ │ │ │ └── LegacyHmacPrfTestUtil.java │ │ │ │ ├── signature/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── EcdsaParameters.java │ │ │ │ │ ├── EcdsaPrivateKey.java │ │ │ │ │ ├── EcdsaPublicKey.java │ │ │ │ │ ├── EcdsaSignKeyManager.java │ │ │ │ │ ├── EcdsaVerifyKeyManager.java │ │ │ │ │ ├── Ed25519Parameters.java │ │ │ │ │ ├── Ed25519PrivateKey.java │ │ │ │ │ ├── Ed25519PrivateKeyManager.java │ │ │ │ │ ├── Ed25519PublicKey.java │ │ │ │ │ ├── Ed25519PublicKeyManager.java │ │ │ │ │ ├── PredefinedSignatureParameters.java │ │ │ │ │ ├── PublicKeySignConfig.java │ │ │ │ │ ├── PublicKeySignFactory.java │ │ │ │ │ ├── PublicKeySignWrapper.java │ │ │ │ │ ├── PublicKeyVerifyConfig.java │ │ │ │ │ ├── PublicKeyVerifyFactory.java │ │ │ │ │ ├── PublicKeyVerifyWrapper.java │ │ │ │ │ ├── RsaSsaPkcs1Parameters.java │ │ │ │ │ ├── RsaSsaPkcs1PrivateKey.java │ │ │ │ │ ├── RsaSsaPkcs1PublicKey.java │ │ │ │ │ ├── RsaSsaPkcs1SignKeyManager.java │ │ │ │ │ ├── RsaSsaPkcs1VerifyKeyManager.java │ │ │ │ │ ├── RsaSsaPssParameters.java │ │ │ │ │ ├── RsaSsaPssPrivateKey.java │ │ │ │ │ ├── RsaSsaPssPublicKey.java │ │ │ │ │ ├── RsaSsaPssSignKeyManager.java │ │ │ │ │ ├── RsaSsaPssVerifyKeyManager.java │ │ │ │ │ ├── SignatureConfig.java │ │ │ │ │ ├── SignatureKeyTemplates.java │ │ │ │ │ ├── SignatureParameters.java │ │ │ │ │ ├── SignaturePemKeysetReader.java │ │ │ │ │ ├── SignaturePrivateKey.java │ │ │ │ │ ├── SignaturePublicKey.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── EcdsaProtoSerialization.java │ │ │ │ │ ├── Ed25519ProtoSerialization.java │ │ │ │ │ ├── LegacyFullSign.java │ │ │ │ │ ├── LegacyFullVerify.java │ │ │ │ │ ├── RsaSsaPkcs1ProtoSerialization.java │ │ │ │ │ ├── RsaSsaPssProtoSerialization.java │ │ │ │ │ ├── SigUtil.java │ │ │ │ │ └── testing/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── EcdsaTestUtil.java │ │ │ │ │ ├── Ed25519TestUtil.java │ │ │ │ │ ├── LegacyPublicKeySignKeyManager.java │ │ │ │ │ ├── LegacyPublicKeyVerifyKeyManager.java │ │ │ │ │ ├── RsaSsaPkcs1TestUtil.java │ │ │ │ │ ├── RsaSsaPssTestUtil.java │ │ │ │ │ └── SignatureTestVector.java │ │ │ │ ├── streamingaead/ │ │ │ │ │ ├── AesCtrHmacStreamingKey.java │ │ │ │ │ ├── AesCtrHmacStreamingKeyManager.java │ │ │ │ │ ├── AesCtrHmacStreamingParameters.java │ │ │ │ │ ├── AesGcmHkdfStreamingKey.java │ │ │ │ │ ├── AesGcmHkdfStreamingKeyManager.java │ │ │ │ │ ├── AesGcmHkdfStreamingParameters.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── InputStreamDecrypter.java │ │ │ │ │ ├── PredefinedStreamingAeadParameters.java │ │ │ │ │ ├── ReadableByteChannelDecrypter.java │ │ │ │ │ ├── SeekableByteChannelDecrypter.java │ │ │ │ │ ├── StreamingAeadConfig.java │ │ │ │ │ ├── StreamingAeadFactory.java │ │ │ │ │ ├── StreamingAeadHelper.java │ │ │ │ │ ├── StreamingAeadKey.java │ │ │ │ │ ├── StreamingAeadKeyTemplates.java │ │ │ │ │ ├── StreamingAeadParameters.java │ │ │ │ │ ├── StreamingAeadUtil.java │ │ │ │ │ ├── StreamingAeadWrapper.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── AesCtrHmacStreamingProtoSerialization.java │ │ │ │ │ ├── AesGcmHkdfStreamingProtoSerialization.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── LegacyAesGcmHkdfStreamingTestKeyManager.java │ │ │ │ │ └── LegacyFullStreamingAead.java │ │ │ │ ├── subtle/ │ │ │ │ │ ├── AesCtrHmacStreaming.java │ │ │ │ │ ├── AesCtrJceCipher.java │ │ │ │ │ ├── AesEaxJce.java │ │ │ │ │ ├── AesGcmHkdfStreaming.java │ │ │ │ │ ├── AesGcmJce.java │ │ │ │ │ ├── AesSiv.java │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── Base64.java │ │ │ │ │ ├── Bytes.java │ │ │ │ │ ├── ChaCha20.java │ │ │ │ │ ├── ChaCha20Poly1305.java │ │ │ │ │ ├── EcdsaSignJce.java │ │ │ │ │ ├── EcdsaVerifyJce.java │ │ │ │ │ ├── EciesAeadHkdfDemHelper.java │ │ │ │ │ ├── EciesAeadHkdfHybridDecrypt.java │ │ │ │ │ ├── EciesAeadHkdfHybridEncrypt.java │ │ │ │ │ ├── EciesHkdfRecipientKem.java │ │ │ │ │ ├── EciesHkdfSenderKem.java │ │ │ │ │ ├── Ed25519Sign.java │ │ │ │ │ ├── Ed25519Verify.java │ │ │ │ │ ├── EllipticCurves.java │ │ │ │ │ ├── EncryptThenAuthenticate.java │ │ │ │ │ ├── EngineFactory.java │ │ │ │ │ ├── EngineWrapper.java │ │ │ │ │ ├── Enums.java │ │ │ │ │ ├── Hex.java │ │ │ │ │ ├── Hkdf.java │ │ │ │ │ ├── IndCpaCipher.java │ │ │ │ │ ├── Kwp.java │ │ │ │ │ ├── NonceBasedStreamingAead.java │ │ │ │ │ ├── PemKeyType.java │ │ │ │ │ ├── PrfAesCmac.java │ │ │ │ │ ├── PrfHmacJce.java │ │ │ │ │ ├── PrfMac.java │ │ │ │ │ ├── Random.java │ │ │ │ │ ├── RewindableReadableByteChannel.java │ │ │ │ │ ├── RsaSsaPkcs1SignJce.java │ │ │ │ │ ├── RsaSsaPkcs1VerifyJce.java │ │ │ │ │ ├── RsaSsaPssSignJce.java │ │ │ │ │ ├── RsaSsaPssVerifyJce.java │ │ │ │ │ ├── SelfKeyTestValidators.java │ │ │ │ │ ├── StreamSegmentDecrypter.java │ │ │ │ │ ├── StreamSegmentEncrypter.java │ │ │ │ │ ├── StreamingAeadDecryptingChannel.java │ │ │ │ │ ├── StreamingAeadDecryptingStream.java │ │ │ │ │ ├── StreamingAeadEncryptingChannel.java │ │ │ │ │ ├── StreamingAeadEncryptingStream.java │ │ │ │ │ ├── StreamingAeadSeekableDecryptingChannel.java │ │ │ │ │ ├── SubtleUtil.java │ │ │ │ │ ├── Validators.java │ │ │ │ │ ├── X25519.java │ │ │ │ │ ├── XChaCha20.java │ │ │ │ │ ├── XChaCha20Poly1305.java │ │ │ │ │ └── prf/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── HkdfStreamingPrf.java │ │ │ │ │ ├── PrfImpl.java │ │ │ │ │ └── StreamingPrf.java │ │ │ │ ├── testing/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── FakeKmsClient.java │ │ │ │ │ ├── HpkeTestEncryption.java │ │ │ │ │ ├── HpkeTestId.java │ │ │ │ │ ├── HpkeTestSetup.java │ │ │ │ │ ├── HpkeTestUtil.java │ │ │ │ │ ├── HpkeTestVector.java │ │ │ │ │ ├── StreamingTestUtil.java │ │ │ │ │ ├── TestUtil.java │ │ │ │ │ └── WycheproofTestUtil.java │ │ │ │ ├── tinkkey/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── KeyAccess.java │ │ │ │ │ ├── KeyHandle.java │ │ │ │ │ ├── SecretKeyAccess.java │ │ │ │ │ ├── TinkKey.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── InternalKeyHandle.java │ │ │ │ │ └── ProtoKey.java │ │ │ │ └── util/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── Bytes.java │ │ │ │ ├── KeysDownloader.java │ │ │ │ ├── SecretBigInteger.java │ │ │ │ └── SecretBytes.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── proguard/ │ │ │ └── protobuf.pro │ │ └── test/ │ │ ├── BUILD.bazel │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── crypto/ │ │ └── tink/ │ │ ├── BUILD.bazel │ │ ├── BinaryKeysetReaderTest.java │ │ ├── CleartextKeysetHandleTest.java │ │ ├── ConfigTest.java │ │ ├── ConfigurationFips140v2Test.java │ │ ├── ConfigurationFips140v2WithoutConscryptTest.java │ │ ├── ConfigurationV0Test.java │ │ ├── CryptoFormatTest.java │ │ ├── IntegrationTest.java │ │ ├── JsonKeysetReaderTest.java │ │ ├── JsonKeysetWriterTest.java │ │ ├── KeyTemplateTest.java │ │ ├── KeyTemplatesAsParametersTest.java │ │ ├── KeyTemplatesTest.java │ │ ├── KeysetHandleFullPrimitiveTest.java │ │ ├── KeysetHandleTest.java │ │ ├── KeysetManagerTest.java │ │ ├── LateRegistrationTest.java │ │ ├── LegacyKeysetSerializationTest.java │ │ ├── MonitoringUtilTest.java │ │ ├── NoSecretKeysetHandleTest.java │ │ ├── PemKeyTypeTest.java │ │ ├── RegistryConfigurationTest.java │ │ ├── RegistryMultithreadTest.java │ │ ├── RegistryTest.java │ │ ├── SecretKeyAccessTest.java │ │ ├── TinkJsonProtoKeysetFormatTest.java │ │ ├── TinkProtoKeysetFormatTest.java │ │ ├── TinkProtoParametersFormatTest.java │ │ ├── TinkProtoTest.java │ │ ├── UtilTest.java │ │ ├── VersionTest.java │ │ ├── aead/ │ │ │ ├── AeadConfigTest.java │ │ │ ├── AeadFactoryTest.java │ │ │ ├── AeadFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── AeadKeyTemplatesTest.java │ │ │ ├── AeadTest.java │ │ │ ├── AeadWrapperTest.java │ │ │ ├── AesCtrHmacAeadKeyManagerTest.java │ │ │ ├── AesCtrHmacAeadKeyTest.java │ │ │ ├── AesCtrHmacAeadParametersTest.java │ │ │ ├── AesEaxKeyManagerTest.java │ │ │ ├── AesEaxKeyTest.java │ │ │ ├── AesEaxParametersTest.java │ │ │ ├── AesGcmKeyManagerTest.java │ │ │ ├── AesGcmKeyTest.java │ │ │ ├── AesGcmParametersTest.java │ │ │ ├── AesGcmSivKeyManagerTest.java │ │ │ ├── AesGcmSivKeyTest.java │ │ │ ├── AesGcmSivParametersTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── ChaCha20Poly1305KeyManagerTest.java │ │ │ ├── ChaCha20Poly1305KeyTest.java │ │ │ ├── ChaCha20Poly1305ParametersTest.java │ │ │ ├── KmsAeadKeyManagerTest.java │ │ │ ├── KmsEnvelopeAeadKeyManagerTest.java │ │ │ ├── KmsEnvelopeAeadTest.java │ │ │ ├── LegacyKmsAeadKeyTest.java │ │ │ ├── LegacyKmsAeadParametersTest.java │ │ │ ├── LegacyKmsAeadProtoSerializationTest.java │ │ │ ├── LegacyKmsEnvelopeAeadKeyTest.java │ │ │ ├── LegacyKmsEnvelopeAeadParametersTest.java │ │ │ ├── LegacyKmsEnvelopeAeadProtoSerializationTest.java │ │ │ ├── PredefinedAeadParametersTest.java │ │ │ ├── XChaCha20Poly1305KeyManagerTest.java │ │ │ ├── XChaCha20Poly1305KeyTest.java │ │ │ ├── XChaCha20Poly1305ParametersTest.java │ │ │ ├── internal/ │ │ │ │ ├── AesCtrHmacAeadProtoSerializationTest.java │ │ │ │ ├── AesEaxProtoSerializationTest.java │ │ │ │ ├── AesGcmProtoSerializationTest.java │ │ │ │ ├── AesGcmSivProtoSerializationTest.java │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── ChaCha20Poly1305JceTest.java │ │ │ │ ├── ChaCha20Poly1305ProtoSerializationTest.java │ │ │ │ ├── ChaCha20UtilTest.java │ │ │ │ ├── InsecureNonceAesGcmJceTest.java │ │ │ │ ├── InsecureNonceChaCha20Poly1305JceTest.java │ │ │ │ ├── InsecureNonceChaCha20Poly1305Test.java │ │ │ │ ├── InsecureNonceChaCha20Test.java │ │ │ │ ├── InsecureNonceXChaCha20Poly1305Test.java │ │ │ │ ├── InsecureNonceXChaCha20Test.java │ │ │ │ ├── LegacyAesCtrHmacTestKeyManagerTest.java │ │ │ │ ├── LegacyFullAeadIntegrationTest.java │ │ │ │ ├── LegacyFullAeadTest.java │ │ │ │ ├── Poly1305Test.java │ │ │ │ ├── XChaCha20Poly1305JceTest.java │ │ │ │ └── XChaCha20Poly1305ProtoSerializationTest.java │ │ │ └── subtle/ │ │ │ ├── AesGcmSivTest.java │ │ │ └── BUILD.bazel │ │ ├── config/ │ │ │ ├── BUILD.bazel │ │ │ ├── TinkConfigTest.java │ │ │ ├── TinkFipsTest.java │ │ │ └── internal/ │ │ │ ├── BUILD.bazel │ │ │ └── TinkFipsUtilTest.java │ │ ├── custom/ │ │ │ ├── BUILD.bazel │ │ │ └── CustomAeadKeyManagerTest.java │ │ ├── daead/ │ │ │ ├── AesSivKeyManagerTest.java │ │ │ ├── AesSivKeyTest.java │ │ │ ├── AesSivParametersTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── DaeadTest.java │ │ │ ├── DeterministicAeadConfigTest.java │ │ │ ├── DeterministicAeadFactoryTest.java │ │ │ ├── DeterministicAeadFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── DeterministicAeadKeyTemplatesTest.java │ │ │ ├── DeterministicAeadWrapperTest.java │ │ │ ├── KeyManagerIntegrationTest.java │ │ │ ├── PredefinedDeterministicAeadParametersTest.java │ │ │ └── internal/ │ │ │ ├── AesSivProtoSerializationTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── LegacyFullDeterministicAeadTest.java │ │ │ └── testing/ │ │ │ ├── BUILD.bazel │ │ │ └── LegacyAesSivTestKeyManagerTest.java │ │ ├── hybrid/ │ │ │ ├── BUILD.bazel │ │ │ ├── EciesAeadHkdfHybridDecryptTest.java │ │ │ ├── EciesAeadHkdfHybridEncryptTest.java │ │ │ ├── EciesAeadHkdfPrivateKeyManagerTest.java │ │ │ ├── EciesParametersTest.java │ │ │ ├── EciesPrivateKeyTest.java │ │ │ ├── EciesPublicKeyTest.java │ │ │ ├── HpkeParametersTest.java │ │ │ ├── HpkePrivateKeyTest.java │ │ │ ├── HpkeProtoSerializationTest.java │ │ │ ├── HpkePublicKeyTest.java │ │ │ ├── HybridConfigTest.java │ │ │ ├── HybridDecryptFactoryTest.java │ │ │ ├── HybridDecryptWrapperTest.java │ │ │ ├── HybridEncryptDecryptFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── HybridEncryptFactoryTest.java │ │ │ ├── HybridEncryptWrapperTest.java │ │ │ ├── HybridKeyTemplatesTest.java │ │ │ ├── HybridTest.java │ │ │ ├── KeyManagerIntegrationTest.java │ │ │ ├── PredefinedHybridParametersTest.java │ │ │ ├── internal/ │ │ │ │ ├── AesGcmHpkeAeadTest.java │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── ChaCha20Poly1305HpkeAeadTest.java │ │ │ │ ├── EciesProtoSerializationTest.java │ │ │ │ ├── HkdfHpkeKdfTest.java │ │ │ │ ├── HpkeContextTest.java │ │ │ │ ├── HpkeEncryptDecryptTest.java │ │ │ │ ├── HpkeKemKeyFactoryTest.java │ │ │ │ ├── HpkePrimitiveFactoryTest.java │ │ │ │ ├── HpkePrivateKeyManagerTest.java │ │ │ │ ├── HpkeUtilTest.java │ │ │ │ ├── LegacyFullHybridDecryptTest.java │ │ │ │ ├── LegacyFullHybridEncryptTest.java │ │ │ │ ├── NistCurvesHpkeKemTest.java │ │ │ │ ├── X25519HpkeKemPrivateKeyTest.java │ │ │ │ ├── X25519HpkeKemTest.java │ │ │ │ └── testing/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── LegacyHybridDecryptKeyManagerTest.java │ │ │ │ └── LegacyHybridEncryptKeyManagerTest.java │ │ │ └── subtle/ │ │ │ ├── AeadOrDaeadTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── RsaKemHybridDecryptTest.java │ │ │ ├── RsaKemHybridEncryptTest.java │ │ │ └── RsaKemTest.java │ │ ├── integration/ │ │ │ ├── awskms/ │ │ │ │ ├── AwsKmsAeadTest.java │ │ │ │ ├── AwsKmsClientTest.java │ │ │ │ ├── BUILD.bazel │ │ │ │ └── FakeAwsKmsTest.java │ │ │ ├── gcpkms/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── FakeCloudKmsTest.java │ │ │ │ ├── GcpKmsAeadTest.java │ │ │ │ ├── GcpKmsClientTest.java │ │ │ │ └── GcpKmsIntegrationTest.java │ │ │ └── hcvault/ │ │ │ ├── BUILD.bazel │ │ │ ├── FakeHcVaultTest.java │ │ │ └── HcVaultAeadTest.java │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── BigIntegerEncodingTest.java │ │ │ ├── Curve25519Test.java │ │ │ ├── Ed25519Test.java │ │ │ ├── EllipticCurvesUtilTest.java │ │ │ ├── EnumTypeProtoConverterTest.java │ │ │ ├── Field25519Test.java │ │ │ ├── InternalConfigurationTest.java │ │ │ ├── JsonParserTest.java │ │ │ ├── KeyManagerRegistryTest.java │ │ │ ├── KeyParserTest.java │ │ │ ├── KeySerializerTest.java │ │ │ ├── KeyTemplateProtoConverterTest.java │ │ │ ├── KeyTesterTest.java │ │ │ ├── LegacyKeyManagerImplTest.java │ │ │ ├── LegacyProtoKeyTest.java │ │ │ ├── LegacyProtoParametersTest.java │ │ │ ├── MutableKeyCreationRegistryTest.java │ │ │ ├── MutableKeyDerivationRegistryTest.java │ │ │ ├── MutableMonitoringRegistryTest.java │ │ │ ├── MutableParametersRegistryTest.java │ │ │ ├── MutablePrimitiveRegistryMultithreadTest.java │ │ │ ├── MutablePrimitiveRegistryTest.java │ │ │ ├── MutableSerializationRegistryMultithreadTest.java │ │ │ ├── MutableSerializationRegistryTest.java │ │ │ ├── OutputPrefixUtilTest.java │ │ │ ├── ParametersParserTest.java │ │ │ ├── ParametersSerializerTest.java │ │ │ ├── PrimitiveConstructorTest.java │ │ │ ├── PrimitiveRegistryTest.java │ │ │ ├── PrimitiveSetTest.java │ │ │ ├── ProtoKeySerializationTest.java │ │ │ ├── ProtoParametersSerializationTest.java │ │ │ ├── RandomTest.java │ │ │ ├── RandomWithoutConscryptTest.java │ │ │ ├── RandomWithoutInstallingConscryptTest.java │ │ │ ├── RegistryConfigurationTest.java │ │ │ ├── SerializationRegistryTest.java │ │ │ ├── SlowInputStreamTest.java │ │ │ ├── TinkBugExceptionTest.java │ │ │ ├── UtilTest.java │ │ │ └── testing/ │ │ │ ├── AssertsTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── BigIntegerTestUtilTest.java │ │ │ ├── FakeMonitoringClientTest.java │ │ │ ├── KeyWithSerializationTest.java │ │ │ └── ParametersWithSerializationTest.java │ │ ├── jwt/ │ │ │ ├── BUILD.bazel │ │ │ ├── JsonUtilTest.java │ │ │ ├── JwkSetConverterTest.java │ │ │ ├── JwtEcdsaParametersTest.java │ │ │ ├── JwtEcdsaPrivateKeyTest.java │ │ │ ├── JwtEcdsaProtoSerializationTest.java │ │ │ ├── JwtEcdsaPublicKeyTest.java │ │ │ ├── JwtEcdsaSignKeyManagerTest.java │ │ │ ├── JwtEcdsaVerifyKeyManagerTest.java │ │ │ ├── JwtFormatTest.java │ │ │ ├── JwtHmacKeyManagerTest.java │ │ │ ├── JwtHmacKeyTest.java │ │ │ ├── JwtHmacParametersTest.java │ │ │ ├── JwtHmacProtoSerializationTest.java │ │ │ ├── JwtMacConfigTest.java │ │ │ ├── JwtMacWrapperTest.java │ │ │ ├── JwtPublicKeySignVerifyWrappersTest.java │ │ │ ├── JwtRsaSsaPkcs1ParametersTest.java │ │ │ ├── JwtRsaSsaPkcs1PrivateKeyTest.java │ │ │ ├── JwtRsaSsaPkcs1ProtoSerializationTest.java │ │ │ ├── JwtRsaSsaPkcs1PublicKeyTest.java │ │ │ ├── JwtRsaSsaPkcs1SignKeyManagerTest.java │ │ │ ├── JwtRsaSsaPssParametersTest.java │ │ │ ├── JwtRsaSsaPssPrivateKeyTest.java │ │ │ ├── JwtRsaSsaPssProtoSerializationTest.java │ │ │ ├── JwtRsaSsaPssPublicKeyTest.java │ │ │ ├── JwtRsaSsaPssSignKeyManagerTest.java │ │ │ ├── JwtRsaSsaPssVerifyKeyManagerTest.java │ │ │ ├── JwtSignatureConfigTest.java │ │ │ ├── JwtSignatureTest.java │ │ │ ├── JwtTest.java │ │ │ ├── JwtValidatorTest.java │ │ │ ├── RawJwtTest.java │ │ │ └── VerifiedJwtTest.java │ │ ├── keyderivation/ │ │ │ ├── BUILD.bazel │ │ │ ├── KeyDerivationConfigTest.java │ │ │ ├── KeyDerivationTest.java │ │ │ ├── KeysetDeriverWrapperTest.java │ │ │ ├── PrfBasedKeyDerivationKeyTest.java │ │ │ ├── PrfBasedKeyDerivationParametersTest.java │ │ │ └── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── KeysetDeriverWrapperTest.java │ │ │ ├── PrfBasedDeriverKeyManagerTest.java │ │ │ ├── PrfBasedDeriverSecondTest.java │ │ │ ├── PrfBasedKeyDerivationKeyProtoSerializationTest.java │ │ │ └── PrfBasedKeyDeriverTest.java │ │ ├── mac/ │ │ │ ├── AesCmacKeyManagerTest.java │ │ │ ├── AesCmacKeyTest.java │ │ │ ├── AesCmacParametersTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── ChunkedMacTest.java │ │ │ ├── ChunkedMacWrapperTest.java │ │ │ ├── HmacKeyManagerTest.java │ │ │ ├── HmacKeyTest.java │ │ │ ├── HmacParametersTest.java │ │ │ ├── MacConfigTest.java │ │ │ ├── MacFactoryTest.java │ │ │ ├── MacFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── MacKeyTemplatesTest.java │ │ │ ├── MacTest.java │ │ │ ├── MacWrapperTest.java │ │ │ ├── PredefinedMacParametersTest.java │ │ │ └── internal/ │ │ │ ├── AesCmacProtoSerializationTest.java │ │ │ ├── AesUtilTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── ChunkedAesCmacTest.java │ │ │ ├── ChunkedHmacTest.java │ │ │ ├── HmacProtoSerializationTest.java │ │ │ ├── LegacyFullMacIntegrationTest.java │ │ │ └── LegacyFullMacTest.java │ │ ├── monitoring/ │ │ │ ├── BUILD.bazel │ │ │ ├── MonitoringAnnotationsTest.java │ │ │ └── MonitoringKeysetInfoTest.java │ │ ├── prf/ │ │ │ ├── AesCmacPrfKeyManagerTest.java │ │ │ ├── AesCmacPrfKeyTest.java │ │ │ ├── AesCmacPrfParametersTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── HkdfPrfKeyManagerTest.java │ │ │ ├── HkdfPrfKeyTest.java │ │ │ ├── HkdfPrfParametersTest.java │ │ │ ├── HmacPrfKeyManagerTest.java │ │ │ ├── HmacPrfKeyTest.java │ │ │ ├── HmacPrfParametersTest.java │ │ │ ├── PredefinedPrfParametersTest.java │ │ │ ├── PrfConfigTest.java │ │ │ ├── PrfKeyTemplatesTest.java │ │ │ ├── PrfSetWrapperTest.java │ │ │ ├── PrfTest.java │ │ │ └── internal/ │ │ │ ├── AesCmacPrfProtoSerializationTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── HkdfPrfProtoSerializationTest.java │ │ │ ├── HmacPrfProtoSerializationTest.java │ │ │ ├── LegacyFullPrfIntegrationTest.java │ │ │ ├── LegacyFullPrfTest.java │ │ │ └── LegacyHmacPrfTestKeyManagerTest.java │ │ ├── signature/ │ │ │ ├── BUILD.bazel │ │ │ ├── EcdsaParametersTest.java │ │ │ ├── EcdsaPrivateKeyTest.java │ │ │ ├── EcdsaPublicKeyTest.java │ │ │ ├── EcdsaSignKeyManagerTest.java │ │ │ ├── EcdsaVerifyKeyManagerTest.java │ │ │ ├── Ed25519ParametersTest.java │ │ │ ├── Ed25519PrivateKeyManagerTest.java │ │ │ ├── Ed25519PrivateKeyTest.java │ │ │ ├── Ed25519PublicKeyManagerTest.java │ │ │ ├── Ed25519PublicKeyTest.java │ │ │ ├── KeyConversionTest.java │ │ │ ├── KeyManagerIntegrationTest.java │ │ │ ├── PredefinedSignatureParametersTest.java │ │ │ ├── PublicKeySignFactoryTest.java │ │ │ ├── PublicKeySignVerifyFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── PublicKeySignWrapperTest.java │ │ │ ├── PublicKeyVerifyFactoryTest.java │ │ │ ├── PublicKeyVerifyWrapperTest.java │ │ │ ├── RsaSsaPkcs1ParametersTest.java │ │ │ ├── RsaSsaPkcs1PrivateKeyTest.java │ │ │ ├── RsaSsaPkcs1PublicKeyTest.java │ │ │ ├── RsaSsaPkcs1SignKeyManagerTest.java │ │ │ ├── RsaSsaPkcs1VerifyKeyManagerTest.java │ │ │ ├── RsaSsaPssParametersTest.java │ │ │ ├── RsaSsaPssPrivateKeyTest.java │ │ │ ├── RsaSsaPssPublicKeyTest.java │ │ │ ├── RsaSsaPssSignKeyManagerTest.java │ │ │ ├── RsaSsaPssVerifyKeyManagerTest.java │ │ │ ├── SignatureConfigTest.java │ │ │ ├── SignatureKeyTemplatesTest.java │ │ │ ├── SignaturePemKeysetReaderTest.java │ │ │ ├── SignatureTest.java │ │ │ └── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── EcdsaProtoSerializationTest.java │ │ │ ├── Ed25519ProtoSerializationTest.java │ │ │ ├── LegacyFullSignTest.java │ │ │ ├── LegacyFullVerifyTest.java │ │ │ ├── RsaSsaPkcs1ProtoSerializationTest.java │ │ │ ├── RsaSsaPssProtoSerializationTest.java │ │ │ ├── SigUtilTest.java │ │ │ └── testing/ │ │ │ ├── BUILD.bazel │ │ │ ├── LegacyPublicKeySignKeyManagerTest.java │ │ │ └── LegacyPublicKeyVerifyKeyManagerTest.java │ │ ├── streamingaead/ │ │ │ ├── AesCtrHmacStreamingKeyManagerTest.java │ │ │ ├── AesCtrHmacStreamingKeyTest.java │ │ │ ├── AesCtrHmacStreamingParametersTest.java │ │ │ ├── AesGcmHkdfStreamingKeyManagerTest.java │ │ │ ├── AesGcmHkdfStreamingKeyTest.java │ │ │ ├── AesGcmHkdfStreamingParametersTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── PredefinedStreamingAeadParametersTest.java │ │ │ ├── StreamingAeadConfigTest.java │ │ │ ├── StreamingAeadFactoryTest.java │ │ │ ├── StreamingAeadFactoryWithoutWrapperRegisteredTest.java │ │ │ ├── StreamingAeadKeyTemplatesTest.java │ │ │ ├── StreamingAeadTest.java │ │ │ ├── StreamingAeadUtilTest.java │ │ │ ├── StreamingAeadWrapperLegacyTest.java │ │ │ ├── StreamingAeadWrapperTest.java │ │ │ └── internal/ │ │ │ ├── AesCtrHmacStreamingProtoSerializationTest.java │ │ │ ├── AesGcmHkdfStreamingProtoSerializationTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── LegacyAesGcmHkdfStreamingTestKeyManagerTest.java │ │ │ ├── LegacyFullStreamingAeadIntegrationTest.java │ │ │ └── LegacyFullStreamingAeadTest.java │ │ ├── subtle/ │ │ │ ├── AeadThreadSafetyTest.java │ │ │ ├── AesCtrHmacStreamingTest.java │ │ │ ├── AesCtrJceCipherTest.java │ │ │ ├── AesEaxJceTest.java │ │ │ ├── AesGcmHkdfStreamingTest.java │ │ │ ├── AesGcmJceTest.java │ │ │ ├── AesSivTest.java │ │ │ ├── BUILD.bazel │ │ │ ├── Base64Test.java │ │ │ ├── BytesTest.java │ │ │ ├── ChaCha20Poly1305Test.java │ │ │ ├── ChaCha20Test.java │ │ │ ├── DaeadThreadSafetyTest.java │ │ │ ├── EcdsaSignJceTest.java │ │ │ ├── EcdsaVerifyJceTest.java │ │ │ ├── Ed25519SignTest.java │ │ │ ├── Ed25519VerifyTest.java │ │ │ ├── EllipticCurvesTest.java │ │ │ ├── EncryptThenAuthenticateTest.java │ │ │ ├── EngineFactoryFipsTest.java │ │ │ ├── EngineFactoryTest.java │ │ │ ├── HkdfTest.java │ │ │ ├── KwpTest.java │ │ │ ├── PemKeyTypeTest.java │ │ │ ├── PrfAesCmacTest.java │ │ │ ├── PrfHmacJceTest.java │ │ │ ├── PrfMacTest.java │ │ │ ├── RandomTest.java │ │ │ ├── RewindableReadableByteChannelTest.java │ │ │ ├── RsaSsaPkcs1SignJceTest.java │ │ │ ├── RsaSsaPkcs1VerifyJceTest.java │ │ │ ├── RsaSsaPssSignJceTest.java │ │ │ ├── RsaSsaPssVerifyJceTest.java │ │ │ ├── SelfKeyTestValidatorsTest.java │ │ │ ├── SignatureThreadSafetyTest.java │ │ │ ├── StreamingAeadThreadSafetyTest.java │ │ │ ├── SubtleUtilTest.java │ │ │ ├── ValidatorsTest.java │ │ │ ├── X25519Test.java │ │ │ ├── XChaCha20Poly1305Test.java │ │ │ ├── XChaCha20Test.java │ │ │ └── prf/ │ │ │ ├── BUILD.bazel │ │ │ ├── HkdfStreamingPrfTest.java │ │ │ └── PrfImplTest.java │ │ ├── testing/ │ │ │ ├── BUILD.bazel │ │ │ ├── FakeKmsClientTest.java │ │ │ ├── HpkeTestUtilTest.java │ │ │ └── TestUtilTest.java │ │ ├── tinkkey/ │ │ │ ├── BUILD.bazel │ │ │ ├── KeyAccessTest.java │ │ │ ├── KeyHandleTest.java │ │ │ ├── SecretKeyAccessTest.java │ │ │ └── internal/ │ │ │ ├── BUILD.bazel │ │ │ └── ProtoKeyTest.java │ │ └── util/ │ │ ├── BUILD.bazel │ │ ├── BytesTest.java │ │ ├── KeysDownloaderTest.java │ │ ├── SecretBigIntegerTest.java │ │ └── SecretBytesTest.java │ ├── src_android/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── crypto/ │ │ └── tink/ │ │ └── internal/ │ │ ├── BUILD.bazel │ │ └── BuildDispatchedCode.java │ ├── template_rule.bzl │ ├── testdata/ │ │ ├── BUILD.bazel │ │ ├── aws/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── access_keys_bad.csv │ │ │ ├── credentials.cred │ │ │ ├── credentials.csv │ │ │ ├── credentials.ini │ │ │ ├── credentials_bad.csv │ │ │ ├── credentials_bad.ini │ │ │ ├── key_arn.txt │ │ │ └── key_arn_bad.txt │ │ ├── gcp/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── credential.json │ │ │ ├── credential_bad.json │ │ │ ├── key_name.txt │ │ │ └── key_name_bad.txt │ │ ├── keysets/ │ │ │ └── BUILD.bazel │ │ └── testvectors/ │ │ ├── BUILD.bazel │ │ └── hpke_boringssl.json │ ├── tink_java_deps.bzl │ ├── tink_java_deps_init.bzl │ ├── tink_version.bzl │ └── tools/ │ ├── BUILD.bazel │ ├── check_deps.bzl │ ├── gen_java_test_rules.bzl │ ├── gen_maven_jar_rules.bzl │ ├── jar_jar.bzl │ ├── java_single_jar.bzl │ ├── javadoc.bzl │ └── refaster/ │ ├── README.md │ └── java/ │ └── com/ │ └── google/ │ ├── tink1_templates/ │ │ └── AllChanges.java │ └── tinkuser/ │ ├── TinkUser.java │ └── TinkUser.java_expected ├── kokoro/ │ ├── README.md │ ├── gcp_ubuntu_per_language/ │ │ ├── cc/ │ │ │ ├── bazel/ │ │ │ │ └── run_tests.sh │ │ │ ├── bazel_fips/ │ │ │ │ └── run_tests.sh │ │ │ ├── cmake/ │ │ │ │ └── run_tests.sh │ │ │ ├── cmake_openssl/ │ │ │ │ └── run_tests.sh │ │ │ └── examples/ │ │ │ ├── cmake/ │ │ │ │ └── run_tests.sh │ │ │ └── cmake_openssl/ │ │ │ └── run_tests.sh │ │ ├── go/ │ │ │ ├── bazel/ │ │ │ │ └── run_tests.sh │ │ │ └── gomod/ │ │ │ └── run_tests.sh │ │ ├── java_src/ │ │ │ └── run_tests.sh │ │ └── python/ │ │ └── pip/ │ │ └── run_tests.sh │ ├── macos_external/ │ │ ├── cc/ │ │ │ ├── bazel/ │ │ │ │ └── run_tests.sh │ │ │ ├── cmake/ │ │ │ │ └── run_tests.sh │ │ │ └── examples/ │ │ │ └── cmake/ │ │ │ └── run_tests.sh │ │ ├── go/ │ │ │ ├── bazel/ │ │ │ │ └── run_tests.sh │ │ │ └── gomod/ │ │ │ └── run_tests.sh │ │ ├── java_src/ │ │ │ └── run_tests.sh │ │ ├── python/ │ │ │ └── pip/ │ │ │ └── run_tests.sh │ │ └── tools/ │ │ └── run_tests.sh │ ├── run_tests.sh │ └── testutils/ │ ├── check_go_generated_files_up_to_date.sh │ ├── copy_credentials.sh │ ├── create_main_build_file.py │ ├── install_cmake.sh │ ├── install_go.sh │ ├── install_openssl.sh │ ├── install_protoc.sh │ ├── install_python3.sh │ ├── install_tink_via_pip.sh │ ├── install_vault.sh │ ├── run_bazel_tests.sh │ ├── run_cmake_tests.sh │ ├── run_go_mod_tests.sh │ ├── run_hcvault_test_server.sh │ ├── test_utils.sh │ ├── update_android_sdk.sh │ └── upgrade_gcc.sh ├── passing_test.sh ├── proto/ │ ├── BUILD.bazel │ ├── CMakeLists.txt │ ├── aes_cmac.proto │ ├── aes_cmac_prf.proto │ ├── aes_ctr.proto │ ├── aes_ctr_hmac_aead.proto │ ├── aes_ctr_hmac_streaming.proto │ ├── aes_eax.proto │ ├── aes_gcm.proto │ ├── aes_gcm_hkdf_streaming.proto │ ├── aes_gcm_siv.proto │ ├── aes_siv.proto │ ├── chacha20_poly1305.proto │ ├── common.proto │ ├── config.proto │ ├── ecdsa.proto │ ├── ecies_aead_hkdf.proto │ ├── ed25519.proto │ ├── empty.proto │ ├── experimental/ │ │ └── pqcrypto/ │ │ ├── BUILD.bazel │ │ ├── cecpq2_aead_hkdf.proto │ │ ├── dilithium.proto │ │ ├── falcon.proto │ │ ├── slh_dsa.proto │ │ └── sphincs.proto │ ├── hkdf_prf.proto │ ├── hmac.proto │ ├── hmac_prf.proto │ ├── hpke.proto │ ├── jwt_ecdsa.proto │ ├── jwt_hmac.proto │ ├── jwt_rsa_ssa_pkcs1.proto │ ├── jwt_rsa_ssa_pss.proto │ ├── kms_aead.proto │ ├── kms_envelope.proto │ ├── prf_based_deriver.proto │ ├── rsa_ssa_pkcs1.proto │ ├── rsa_ssa_pss.proto │ ├── test_proto.proto │ ├── tink.proto │ └── xchacha20_poly1305.proto ├── python/ │ ├── .bazelignore │ ├── .bazelrc │ ├── .bazelversion │ ├── BUILD.bazel │ ├── MANIFEST.in │ ├── README.md │ ├── VERSION │ ├── WORKSPACE │ ├── examples/ │ │ ├── .bazelrc │ │ ├── .bazelversion │ │ ├── BUILD.bazel │ │ ├── WORKSPACE │ │ ├── aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── aead_basic.py │ │ │ ├── aead_basic_test.py │ │ │ ├── aead_cli.py │ │ │ ├── aead_cli_test.sh │ │ │ └── aead_test_keyset.json │ │ ├── cleartext_keyset/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── cleartext_keyset_cli.py │ │ │ └── cleartext_keyset_cli_test.sh │ │ ├── deterministic_aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── deterministic_aead_basic.py │ │ │ ├── deterministic_aead_basic_test.py │ │ │ ├── deterministic_aead_cli.py │ │ │ ├── deterministic_aead_cli_test.sh │ │ │ └── deterministic_aead_test_keyset.json │ │ ├── encrypted_keyset/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── encrypted_keyset_cli.py │ │ │ └── encrypted_keyset_cli_test.sh │ │ ├── envelope_aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── envelope_cli.py │ │ │ └── envelope_cli_test.sh │ │ ├── gcs/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── gcs_envelope_aead_cli.py │ │ │ └── gcs_envelope_aead_cli_test.sh │ │ ├── hybrid/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── hybrid_basic.py │ │ │ ├── hybrid_basic_test.py │ │ │ ├── hybrid_cli.py │ │ │ ├── hybrid_cli_test.sh │ │ │ ├── hybrid_test_private_keyset.json │ │ │ └── hybrid_test_public_keyset.json │ │ ├── jwt/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── jwt_generate_public_jwk_set.py │ │ │ ├── jwt_sign_cli.py │ │ │ ├── jwt_signature_test.sh │ │ │ ├── jwt_test_private_keyset.json │ │ │ ├── jwt_test_public_keyset.json │ │ │ └── jwt_verify_cli.py │ │ ├── mac/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── mac_basic.py │ │ │ ├── mac_basic_test.py │ │ │ ├── mac_cli.py │ │ │ ├── mac_cli_test.sh │ │ │ └── mac_test_keyset.json │ │ ├── requirements.in │ │ ├── requirements.txt │ │ ├── signature/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── signature_basic.py │ │ │ ├── signature_basic_test.py │ │ │ ├── signature_cli.py │ │ │ ├── signature_cli_test.sh │ │ │ ├── signature_test_private_keyset.json │ │ │ └── signature_test_public_keyset.json │ │ ├── streaming_aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── streaming_aead_cli.py │ │ │ ├── streaming_aead_cli_test.sh │ │ │ └── streaming_aead_keyset.json │ │ ├── testdata/ │ │ │ └── gcp/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── credential.json │ │ │ ├── credential_bad.json │ │ │ ├── key_name.txt │ │ │ └── key_name_bad.txt │ │ └── walkthrough/ │ │ ├── BUILD.bazel │ │ ├── create_keyset.py │ │ ├── create_keyset_test.py │ │ ├── load_cleartext_keyset.py │ │ ├── load_cleartext_keyset_test.py │ │ ├── load_encrypted_keyset.py │ │ ├── load_encrypted_keyset_test.py │ │ ├── obtain_and_use_a_primitive.py │ │ ├── obtain_and_use_a_primitive_test.py │ │ ├── write_cleartext_keyset.py │ │ ├── write_cleartext_keyset_test.py │ │ ├── write_keyset.py │ │ └── write_keyset_test.py │ ├── requirements.in │ ├── requirements.txt │ ├── requirements_all.txt │ ├── requirements_awskms.in │ ├── requirements_gcpkms.in │ ├── requirements_hcvault.in │ ├── setup.py │ ├── testdata/ │ │ ├── aws/ │ │ │ ├── BUILD.bazel │ │ │ ├── README.md │ │ │ ├── access_keys_bad.csv │ │ │ ├── credentials.cred │ │ │ ├── credentials.csv │ │ │ ├── credentials.ini │ │ │ ├── credentials_bad.csv │ │ │ ├── credentials_bad.ini │ │ │ ├── key_arn.txt │ │ │ └── key_arn_bad.txt │ │ └── gcp/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── credential.json │ │ ├── credential_bad.json │ │ ├── key_name.txt │ │ └── key_name_bad.txt │ ├── tink/ │ │ ├── BUILD.bazel │ │ ├── __init__.py │ │ ├── _insecure_keyset_handle.py │ │ ├── _insecure_keyset_handle_test.py │ │ ├── _json_proto_keyset_format.py │ │ ├── _json_proto_keyset_format_test.py │ │ ├── _keyset_handle.py │ │ ├── _keyset_handle_test.py │ │ ├── _keyset_reader.py │ │ ├── _keyset_reader_test.py │ │ ├── _keyset_writer.py │ │ ├── _keyset_writer_test.py │ │ ├── _kms_clients.py │ │ ├── _kms_clients_test.py │ │ ├── _proto_keyset_format.py │ │ ├── _proto_keyset_format_test.py │ │ ├── _secret_key_access.py │ │ ├── aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _aead.py │ │ │ ├── _aead_key_manager.py │ │ │ ├── _aead_key_manager_test.py │ │ │ ├── _aead_key_templates.py │ │ │ ├── _aead_key_templates_test.py │ │ │ ├── _aead_wrapper.py │ │ │ ├── _aead_wrapper_test.py │ │ │ ├── _kms_aead_key_manager.py │ │ │ ├── _kms_aead_key_manager_test.py │ │ │ ├── _kms_envelope_aead.py │ │ │ └── _kms_envelope_aead_test.py │ │ ├── cc/ │ │ │ ├── BUILD.bazel │ │ │ ├── cc_hpke_config.cc │ │ │ ├── cc_hpke_config.h │ │ │ ├── cc_jwt_config.cc │ │ │ ├── cc_jwt_config.h │ │ │ ├── cc_key_manager.h │ │ │ ├── cc_streaming_aead_wrappers.cc │ │ │ ├── cc_streaming_aead_wrappers.h │ │ │ ├── cc_streaming_aead_wrappers_test.cc │ │ │ ├── cc_tink_config.cc │ │ │ ├── cc_tink_config.h │ │ │ ├── input_stream_adapter.cc │ │ │ ├── input_stream_adapter.h │ │ │ ├── input_stream_adapter_test.cc │ │ │ ├── output_stream_adapter.cc │ │ │ ├── output_stream_adapter.h │ │ │ ├── output_stream_adapter_test.cc │ │ │ ├── pybind/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── aead.cc │ │ │ │ ├── aead.h │ │ │ │ ├── cc_hpke_config.cc │ │ │ │ ├── cc_hpke_config.h │ │ │ │ ├── cc_jwt_config.cc │ │ │ │ ├── cc_jwt_config.h │ │ │ │ ├── cc_key_manager.cc │ │ │ │ ├── cc_key_manager.h │ │ │ │ ├── cc_key_manager_test.py │ │ │ │ ├── cc_streaming_aead_wrappers.cc │ │ │ │ ├── cc_streaming_aead_wrappers.h │ │ │ │ ├── cc_tink_config.cc │ │ │ │ ├── cc_tink_config.h │ │ │ │ ├── cc_tink_config_test.py │ │ │ │ ├── deterministic_aead.cc │ │ │ │ ├── deterministic_aead.h │ │ │ │ ├── hybrid_decrypt.cc │ │ │ │ ├── hybrid_decrypt.h │ │ │ │ ├── hybrid_encrypt.cc │ │ │ │ ├── hybrid_encrypt.h │ │ │ │ ├── import_helper.cc │ │ │ │ ├── import_helper.h │ │ │ │ ├── input_stream_adapter.cc │ │ │ │ ├── input_stream_adapter.h │ │ │ │ ├── mac.cc │ │ │ │ ├── mac.h │ │ │ │ ├── output_stream_adapter.cc │ │ │ │ ├── output_stream_adapter.h │ │ │ │ ├── prf.cc │ │ │ │ ├── prf.h │ │ │ │ ├── public_key_sign.cc │ │ │ │ ├── public_key_sign.h │ │ │ │ ├── public_key_verify.cc │ │ │ │ ├── public_key_verify.h │ │ │ │ ├── python_file_object_adapter.cc │ │ │ │ ├── python_file_object_adapter.h │ │ │ │ ├── streaming_aead.cc │ │ │ │ ├── streaming_aead.h │ │ │ │ ├── tink_bindings.cc │ │ │ │ └── tink_exception.h │ │ │ ├── python_file_object_adapter.h │ │ │ ├── python_input_stream.cc │ │ │ ├── python_input_stream.h │ │ │ ├── python_input_stream_test.cc │ │ │ ├── python_output_stream.cc │ │ │ ├── python_output_stream.h │ │ │ ├── python_output_stream_test.cc │ │ │ └── test_util.h │ │ ├── cleartext_keyset_handle.py │ │ ├── cleartext_keyset_handle_test.py │ │ ├── core/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _crypto_format.py │ │ │ ├── _crypto_format_test.py │ │ │ ├── _key_manager.py │ │ │ ├── _primitive_set.py │ │ │ ├── _primitive_set_test.py │ │ │ ├── _primitive_wrapper.py │ │ │ ├── _registry.py │ │ │ ├── _registry_test.py │ │ │ └── _tink_error.py │ │ ├── daead/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _deterministic_aead.py │ │ │ ├── _deterministic_aead_key_manager.py │ │ │ ├── _deterministic_aead_key_manager_test.py │ │ │ ├── _deterministic_aead_key_templates.py │ │ │ ├── _deterministic_aead_key_templates_test.py │ │ │ ├── _deterministic_aead_wrapper.py │ │ │ └── _deterministic_aead_wrapper_test.py │ │ ├── hybrid/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _hybrid_decrypt.py │ │ │ ├── _hybrid_encrypt.py │ │ │ ├── _hybrid_key_manager.py │ │ │ ├── _hybrid_key_manager_test.py │ │ │ ├── _hybrid_key_templates.py │ │ │ ├── _hybrid_key_templates_test.py │ │ │ ├── _hybrid_wrapper.py │ │ │ └── _hybrid_wrapper_test.py │ │ ├── integration/ │ │ │ ├── __init__.py │ │ │ ├── awskms/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── __init__.py │ │ │ │ ├── _aws_kms_client.py │ │ │ │ ├── _aws_kms_client_test.py │ │ │ │ └── _aws_kms_integration_test.py │ │ │ ├── gcpkms/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── __init__.py │ │ │ │ ├── _gcp_kms_aead_test.py │ │ │ │ ├── _gcp_kms_client.py │ │ │ │ ├── _gcp_kms_client_integration_test.py │ │ │ │ ├── _gcp_kms_client_test.py │ │ │ │ └── _gcp_kms_integration_test.py │ │ │ └── hcvault/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _hcvault_kms_aead.py │ │ │ ├── _hcvault_kms_aead_test.py │ │ │ └── _hcvault_kms_integration_test.py │ │ ├── internal/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── big_integer_util.py │ │ │ └── big_integer_util_test.py │ │ ├── jwt/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _json_util.py │ │ │ ├── _json_util_test.py │ │ │ ├── _jwk_set_converter.py │ │ │ ├── _jwk_set_converter_test.py │ │ │ ├── _jwt_error.py │ │ │ ├── _jwt_format.py │ │ │ ├── _jwt_format_test.py │ │ │ ├── _jwt_hmac_key_manager.py │ │ │ ├── _jwt_hmac_key_manager_test.py │ │ │ ├── _jwt_key_templates.py │ │ │ ├── _jwt_key_templates_test.py │ │ │ ├── _jwt_mac.py │ │ │ ├── _jwt_mac_wrapper.py │ │ │ ├── _jwt_mac_wrapper_test.py │ │ │ ├── _jwt_public_key_sign.py │ │ │ ├── _jwt_public_key_verify.py │ │ │ ├── _jwt_signature_key_manager.py │ │ │ ├── _jwt_signature_key_manager_test.py │ │ │ ├── _jwt_signature_wrappers.py │ │ │ ├── _jwt_signature_wrappers_test.py │ │ │ ├── _jwt_validator.py │ │ │ ├── _jwt_validator_test.py │ │ │ ├── _raw_jwt.py │ │ │ ├── _raw_jwt_test.py │ │ │ ├── _verified_jwt.py │ │ │ └── _verified_jwt_test.py │ │ ├── mac/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _mac.py │ │ │ ├── _mac_key_manager.py │ │ │ ├── _mac_key_manager_test.py │ │ │ ├── _mac_key_templates.py │ │ │ ├── _mac_key_templates_test.py │ │ │ ├── _mac_wrapper.py │ │ │ └── _mac_wrapper_test.py │ │ ├── prf/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _prf_key_manager.py │ │ │ ├── _prf_key_manager_test.py │ │ │ ├── _prf_key_templates.py │ │ │ ├── _prf_set.py │ │ │ ├── _prf_set_wrapper.py │ │ │ └── _prf_set_wrapper_test.py │ │ ├── proto/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── aes_cmac.proto │ │ │ ├── aes_cmac_prf.proto │ │ │ ├── aes_ctr.proto │ │ │ ├── aes_ctr_hmac_aead.proto │ │ │ ├── aes_ctr_hmac_streaming.proto │ │ │ ├── aes_eax.proto │ │ │ ├── aes_gcm.proto │ │ │ ├── aes_gcm_hkdf_streaming.proto │ │ │ ├── aes_gcm_siv.proto │ │ │ ├── aes_siv.proto │ │ │ ├── chacha20_poly1305.proto │ │ │ ├── common.proto │ │ │ ├── config.proto │ │ │ ├── ecdsa.proto │ │ │ ├── ecies_aead_hkdf.proto │ │ │ ├── ed25519.proto │ │ │ ├── empty.proto │ │ │ ├── hkdf_prf.proto │ │ │ ├── hmac.proto │ │ │ ├── hmac_prf.proto │ │ │ ├── hpke.proto │ │ │ ├── jwt_ecdsa.proto │ │ │ ├── jwt_hmac.proto │ │ │ ├── jwt_rsa_ssa_pkcs1.proto │ │ │ ├── jwt_rsa_ssa_pss.proto │ │ │ ├── kms_aead.proto │ │ │ ├── kms_envelope.proto │ │ │ ├── prf_based_deriver.proto │ │ │ ├── rsa_ssa_pkcs1.proto │ │ │ ├── rsa_ssa_pss.proto │ │ │ ├── test_proto.proto │ │ │ ├── tink.proto │ │ │ └── xchacha20_poly1305.proto │ │ ├── secret_key_access.py │ │ ├── secret_key_access_import_test.py │ │ ├── secret_key_access_test.py │ │ ├── signature/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _public_key_sign.py │ │ │ ├── _public_key_verify.py │ │ │ ├── _signature_key_manager.py │ │ │ ├── _signature_key_manager_test.py │ │ │ ├── _signature_key_templates.py │ │ │ ├── _signature_wrapper.py │ │ │ └── _signature_wrapper_test.py │ │ ├── streaming_aead/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── _decrypting_stream.py │ │ │ ├── _decrypting_stream_test.py │ │ │ ├── _encrypting_stream.py │ │ │ ├── _encrypting_stream_test.py │ │ │ ├── _file_object_adapter.py │ │ │ ├── _file_object_adapter_test.py │ │ │ ├── _pybind11_python_file_object_adapter_test.py │ │ │ ├── _raw_streaming_aead.py │ │ │ ├── _rewindable_input_stream.py │ │ │ ├── _rewindable_input_stream_test.py │ │ │ ├── _streaming_aead.py │ │ │ ├── _streaming_aead_key_manager.py │ │ │ ├── _streaming_aead_key_manager_test.py │ │ │ ├── _streaming_aead_key_templates.py │ │ │ ├── _streaming_aead_key_templates_test.py │ │ │ ├── _streaming_aead_test.py │ │ │ ├── _streaming_aead_wrapper.py │ │ │ └── _streaming_aead_wrapper_test.py │ │ ├── testing/ │ │ │ ├── BUILD.bazel │ │ │ ├── __init__.py │ │ │ ├── bytes_io.py │ │ │ ├── bytes_io_test.py │ │ │ ├── fake_kms.py │ │ │ ├── fake_kms_test.py │ │ │ ├── helper.py │ │ │ ├── helper_test.py │ │ │ ├── keyset_builder.py │ │ │ └── keyset_builder_test.py │ │ ├── tink_config.py │ │ └── tink_config_test.py │ ├── tink_py_deps.bzl │ ├── tink_py_deps_init.bzl │ └── tools/ │ ├── BUILD.bazel │ └── distribution/ │ ├── README.md │ ├── build_linux_binary_wheels.sh │ ├── create_release.sh │ ├── requirements.in │ ├── requirements.txt │ └── test_linux_binary_wheels.sh ├── testdata/ │ ├── BUILD.bazel │ ├── aws/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── access_keys_bad.csv │ │ ├── credentials.cred │ │ ├── credentials.csv │ │ ├── credentials.ini │ │ ├── credentials_bad.csv │ │ ├── credentials_bad.ini │ │ ├── key_arn.txt │ │ └── key_arn_bad.txt │ ├── gcp/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── credential.json │ │ ├── credential_bad.json │ │ ├── key_name.txt │ │ └── key_name_bad.txt │ ├── keysets/ │ │ └── BUILD.bazel │ └── testvectors/ │ ├── BUILD.bazel │ └── hpke_boringssl.json ├── testing/ │ └── cross_language/ │ └── testdata/ │ ├── aws/ │ │ ├── BUILD.bazel │ │ ├── README.md │ │ ├── access_keys_bad.csv │ │ ├── credentials.cred │ │ ├── credentials.csv │ │ ├── credentials.ini │ │ ├── credentials_bad.csv │ │ ├── credentials_bad.ini │ │ ├── key_arn.txt │ │ └── key_arn_bad.txt │ └── gcp/ │ ├── BUILD.bazel │ ├── README.md │ ├── credential.json │ ├── credential_bad.json │ ├── key_name.txt │ └── key_name_bad.txt ├── tinkey.rb └── tools/ ├── .bazelrc ├── .bazelversion ├── BUILD.bazel ├── WORKSPACE ├── build_defs/ │ └── BUILD.bazel ├── coverage.sh ├── release_tinkey.sh ├── requirements.txt └── tinkey/ ├── BUILD.bazel ├── README.md └── src/ ├── main/ │ └── java/ │ └── com/ │ └── google/ │ └── crypto/ │ └── tink/ │ └── tinkey/ │ ├── AddKeyCommand.java │ ├── AddRotateOptions.java │ ├── BUILD.bazel │ ├── Command.java │ ├── ConvertKeysetCommand.java │ ├── ConvertKeysetOptions.java │ ├── CreateKeysetCommand.java │ ├── CreateKeysetOptions.java │ ├── CreatePublicKeysetCommand.java │ ├── DeleteKeyCommand.java │ ├── DestroyKeyCommand.java │ ├── DisableKeyCommand.java │ ├── EnableKeyCommand.java │ ├── HelpCommand.java │ ├── InOptions.java │ ├── InputStreamHandler.java │ ├── KeyIdHandler.java │ ├── KeyIdOptions.java │ ├── KeyTemplateHandler.java │ ├── KmsClientsFactory.java │ ├── ListKeyTemplatesCommand.java │ ├── ListKeysetCommand.java │ ├── OutOptions.java │ ├── OutputStreamHandler.java │ ├── PromoteKeyCommand.java │ ├── RotateKeysetCommand.java │ ├── Tinkey.java │ ├── TinkeyCommands.java │ ├── TinkeyKeyTemplates.java │ ├── TinkeyTestKmsClient.java │ └── TinkeyUtil.java └── test/ └── java/ └── com/ └── google/ └── crypto/ └── tink/ └── tinkey/ ├── AddKeyCommandTest.java ├── BUILD.bazel ├── ConvertKeysetCommandTest.java ├── CreateKeysetCommandTest.java ├── CreatePublicKeysetCommandTest.java ├── KmsClientsFactoryTest.java ├── RotateKeysetCommandTest.java └── TinkeyTestKmsClientTest.java