tpm2-tss  3.2.0
TPM Software stack 2.0 TCG spec compliant implementation
fapi_crypto.h
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*******************************************************************************
3  * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4  * All rights reserved.
5  ******************************************************************************/
6 #ifndef FAPI_CRYPTO_H
7 #define FAPI_CRYPTO_H
8 
9 #include "fapi_int.h"
10 
11 TSS2_RC
13  const IFAPI_PROFILE *profile,
14  const TPMT_PUBLIC *tpmPublic,
15  TPMT_SIG_SCHEME *signatureScheme);
16 
17 TSS2_RC
19  const TPMT_PUBLIC *tpmPublic,
20  const unsigned char *signature,
21  size_t signatureSize,
22  TPMI_ALG_HASH hashAlgorithm,
23  TPMT_SIGNATURE *tpmSignature);
24 
25 TSS2_RC
27  const TPMT_SIGNATURE *tpmSignature,
28  uint8_t **signature,
29  size_t *signatureSize);
30 
31 TSS2_RC
33  const TPM2B_PUBLIC *tpmPublicKey,
34  char **pemKey,
35  int *pemKeySize);
36 
37 TSS2_RC
39  const IFAPI_OBJECT *keyObject,
40  const uint8_t *signature,
41  size_t signatureSize,
42  const uint8_t *digest,
43  size_t digestSize);
44 
45 TSS2_RC
47  const IFAPI_OBJECT *keyObject,
48  const uint8_t *signature,
49  size_t signatureSize,
50  const uint8_t *digest,
51  size_t digestSize,
52  const TPMT_SIG_SCHEME *signatureScheme);
53 
54 
56 
57 TSS2_RC
59  IFAPI_CRYPTO_CONTEXT_BLOB **context,
60  TPM2_ALG_ID hashAlgorithm);
61 
62 TSS2_RC
65  const uint8_t *buffer,
66  size_t size);
67 
68 TSS2_RC
70  IFAPI_CRYPTO_CONTEXT_BLOB **context,
71  uint8_t *digest,
72  size_t *digestSize);
73 
74 void
76  IFAPI_CRYPTO_CONTEXT_BLOB **context);
77 
78 TSS2_RC
80  const uint8_t *certBuffer,
81  size_t certBufferSize,
82  char **pemCert,
83  TPM2_ALG_ID *certAlgorithmId,
84  TPM2B_PUBLIC *tpmPublic);
85 
86 size_t
88  TPM2_ALG_ID hashAlgorithm);
89 
90 TSS2_RC
92  const char *pemKey,
93  TPM2B_PUBLIC *tpmPublic);
94 
95 TSS2_RC
97  uint16_t size,
98  TPMI_ALG_HASH *hashAlgorithm);
99 
100 TSS2_RC
102  const char* pem_cert,
103  TPM2B_PUBLIC *tpm_public);
104 
105 TSS2_RC
107  TPM2_ALG_ID signatureAlgorithm,
108  TPM2B_PUBLIC *template);
109 
110 TPM2_ALG_ID
112  const char *pemKey);
113 
114 TSS2_RC
116  char* root_cert_pem,
117  char* intermed_cert_pem,
118  char* ek_cert_pem);
119 
120 TSS2_RC
122  const TPM2B_PUBLIC *tpmPublicKey,
123  TPMI_ALG_HASH hashAlg,
124  TPM2B_DIGEST *fingerprint);
125 
126 #endif /* FAPI_CRYPTO_H */
TSS2_RC ifapi_crypto_hash_update(IFAPI_CRYPTO_CONTEXT_BLOB *context, const uint8_t *buffer, size_t size)
Definition: fapi_crypto.c:1644
size_t ifapi_hash_get_digest_size(TPM2_ALG_ID hashAlgorithm)
Definition: fapi_crypto.c:1536
TPM2_ALG_ID ifapi_get_signature_algorithm_from_pem(const char *pemKey)
Definition: fapi_crypto.c:1228
TSS2_RC ifapi_cert_to_pem(const uint8_t *certBuffer, size_t certBufferSize, char **pemCert, TPM2_ALG_ID *certAlgorithmId, TPM2B_PUBLIC *tpmPublic)
Definition: fapi_crypto.c:1811
Definition: ifapi_keystore.h:143
TSS2_RC ifapi_get_tpm_key_fingerprint(const TPM2B_PUBLIC *tpmPublicKey, TPMI_ALG_HASH hashAlg, TPM2B_DIGEST *fingerprint)
Definition: fapi_crypto.c:2223
TSS2_RC ifapi_crypto_hash_start(IFAPI_CRYPTO_CONTEXT_BLOB **context, TPM2_ALG_ID hashAlgorithm)
Definition: fapi_crypto.c:1572
TSS2_RC ifapi_get_tpm2b_public_from_pem(const char *pemKey, TPM2B_PUBLIC *tpmPublic)
Definition: fapi_crypto.c:1273
TSS2_RC ifapi_pub_pem_key_from_tpm(const TPM2B_PUBLIC *tpmPublicKey, char **pemKey, int *pemKeySize)
Definition: fapi_crypto.c:657
TSS2_RC ifapi_tpm_ecc_sig_to_der(const TPMT_SIGNATURE *tpmSignature, uint8_t **signature, size_t *signatureSize)
Definition: fapi_crypto.c:334
TSS2_RC ifapi_initialize_sign_public(TPM2_ALG_ID signatureAlgorithm, TPM2B_PUBLIC *template)
Definition: fapi_crypto.c:189
Definition: fapi_crypto.c:50
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)
Definition: fapi_crypto.c:780
TSS2_RC ifapi_get_hash_alg_for_size(uint16_t size, TPMI_ALG_HASH *hashAlgorithm)
Definition: fapi_crypto.c:1903
Definition: ifapi_profiles.h:15
TSS2_RC ifapi_verify_ek_cert(char *root_cert_pem, char *intermed_cert_pem, char *ek_cert_pem)
Definition: fapi_crypto.c:2031
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)
Definition: fapi_crypto.c:1323
TSS2_RC ifapi_verify_signature(const IFAPI_OBJECT *keyObject, const uint8_t *signature, size_t signatureSize, const uint8_t *digest, size_t digestSize)
Definition: fapi_crypto.c:1462
void ifapi_crypto_hash_abort(IFAPI_CRYPTO_CONTEXT_BLOB **context)
Definition: fapi_crypto.c:1720
TSS2_RC ifapi_crypto_hash_finish(IFAPI_CRYPTO_CONTEXT_BLOB **context, uint8_t *digest, size_t *digestSize)
Definition: fapi_crypto.c:1677
TSS2_RC ifapi_get_profile_sig_scheme(const IFAPI_PROFILE *profile, const TPMT_PUBLIC *tpmPublic, TPMT_SIG_SCHEME *signatureScheme)
Definition: fapi_crypto.c:94
TSS2_RC ifapi_get_public_from_pem_cert(const char *pem_cert, TPM2B_PUBLIC *tpm_public)
Definition: fapi_crypto.c:1965