| /* SPDX-License-Identifier: BSD-2-Clause */ |
| /******************************************************************************* |
| * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG |
| * All rights reserved. |
| ******************************************************************************/ |
| #ifndef FAPI_CRYPTO_H |
| #define FAPI_CRYPTO_H |
| |
| #include "fapi_int.h" |
| |
| TSS2_RC |
| ifapi_get_profile_sig_scheme( |
| const IFAPI_PROFILE *profile, |
| const TPMT_PUBLIC *tpmPublic, |
| TPMT_SIG_SCHEME *signatureScheme); |
| |
| TSS2_RC |
| ifapi_der_sig_to_tpm( |
| const TPMT_PUBLIC *tpmPublic, |
| const unsigned char *signature, |
| size_t signatureSize, |
| TPMI_ALG_HASH hashAlgorithm, |
| TPMT_SIGNATURE *tpmSignature); |
| |
| TSS2_RC |
| ifapi_tpm_ecc_sig_to_der( |
| const TPMT_SIGNATURE *tpmSignature, |
| uint8_t **signature, |
| size_t *signatureSize); |
| |
| TSS2_RC |
| ifapi_pub_pem_key_from_tpm( |
| const TPM2B_PUBLIC *tpmPublicKey, |
| char **pemKey, |
| int *pemKeySize); |
| |
| TSS2_RC |
| ifapi_verify_signature( |
| const IFAPI_OBJECT *keyObject, |
| const uint8_t *signature, |
| size_t signatureSize, |
| const uint8_t *digest, |
| size_t digestSize); |
| |
| TSS2_RC |
| ifapi_verify_signature_quote( |
| const IFAPI_OBJECT *keyObject, |
| const uint8_t *signature, |
| size_t signatureSize, |
| const uint8_t *digest, |
| size_t digestSize, |
| const TPMT_SIG_SCHEME *signatureScheme); |
| |
| |
| typedef struct _IFAPI_CRYPTO_CONTEXT IFAPI_CRYPTO_CONTEXT_BLOB; |
| |
| TSS2_RC |
| ifapi_crypto_hash_start( |
| IFAPI_CRYPTO_CONTEXT_BLOB **context, |
| TPM2_ALG_ID hashAlgorithm); |
| |
| TSS2_RC |
| ifapi_crypto_hash_update( |
| IFAPI_CRYPTO_CONTEXT_BLOB *context, |
| const uint8_t *buffer, |
| size_t size); |
| |
| TSS2_RC |
| ifapi_crypto_hash_finish( |
| IFAPI_CRYPTO_CONTEXT_BLOB **context, |
| uint8_t *digest, |
| size_t *digestSize); |
| |
| void |
| ifapi_crypto_hash_abort( |
| IFAPI_CRYPTO_CONTEXT_BLOB **context); |
| |
| TSS2_RC |
| ifapi_cert_to_pem( |
| const uint8_t *certBuffer, |
| size_t certBufferSize, |
| char **pemCert, |
| TPM2_ALG_ID *certAlgorithmId, |
| TPM2B_PUBLIC *tpmPublic); |
| |
| size_t |
| ifapi_hash_get_digest_size( |
| TPM2_ALG_ID hashAlgorithm); |
| |
| TSS2_RC |
| ifapi_get_tpm2b_public_from_pem( |
| const char *pemKey, |
| TPM2B_PUBLIC *tpmPublic); |
| |
| TSS2_RC |
| ifapi_get_hash_alg_for_size( |
| uint16_t size, |
| TPMI_ALG_HASH *hashAlgorithm); |
| |
| TSS2_RC |
| ifapi_get_public_from_pem_cert( |
| const char* pem_cert, |
| TPM2B_PUBLIC *tpm_public); |
| |
| TSS2_RC |
| ifapi_initialize_sign_public( |
| TPM2_ALG_ID signatureAlgorithm, |
| TPM2B_PUBLIC *template); |
| |
| TPM2_ALG_ID |
| ifapi_get_signature_algorithm_from_pem( |
| const char *pemKey); |
| |
| TSS2_RC |
| ifapi_verify_ek_cert( |
| char* root_cert_pem, |
| char* intermed_cert_pem, |
| char* ek_cert_pem); |
| |
| TSS2_RC |
| ifapi_get_tpm_key_fingerprint( |
| const TPM2B_PUBLIC *tpmPublicKey, |
| TPMI_ALG_HASH hashAlg, |
| TPM2B_DIGEST *fingerprint); |
| |
| #endif /* FAPI_CRYPTO_H */ |