tpm2-tss 3.2.1
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
11TSS2_RC
13 const IFAPI_PROFILE *profile,
14 const TPMT_PUBLIC *tpmPublic,
15 TPMT_SIG_SCHEME *signatureScheme);
16
17TSS2_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
25TSS2_RC
27 const TPMT_SIGNATURE *tpmSignature,
28 uint8_t **signature,
29 size_t *signatureSize);
30
31TSS2_RC
33 const TPM2B_PUBLIC *tpmPublicKey,
34 char **pemKey,
35 int *pemKeySize);
36
37TSS2_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
45TSS2_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
57TSS2_RC
60 TPM2_ALG_ID hashAlgorithm);
61
62TSS2_RC
65 const uint8_t *buffer,
66 size_t size);
67
68TSS2_RC
71 uint8_t *digest,
72 size_t *digestSize);
73
74void
77
78TSS2_RC
80 const uint8_t *certBuffer,
81 size_t certBufferSize,
82 char **pemCert,
83 TPM2_ALG_ID *certAlgorithmId,
84 TPM2B_PUBLIC *tpmPublic);
85
86size_t
88 TPM2_ALG_ID hashAlgorithm);
89
90TSS2_RC
92 const char *pemKey,
93 TPM2B_PUBLIC *tpmPublic);
94
95TSS2_RC
97 uint16_t size,
98 TPMI_ALG_HASH *hashAlgorithm);
99
100TSS2_RC
102 const char* pem_cert,
103 TPM2B_PUBLIC *tpm_public);
104
105TSS2_RC
107 TPM2_ALG_ID signatureAlgorithm,
108 TPM2B_PUBLIC *template);
109
110TPM2_ALG_ID
112 const char *pemKey);
113
114TSS2_RC
116 char* root_cert_pem,
117 char* intermed_cert_pem,
118 char* ek_cert_pem);
119
120TSS2_RC
122 const TPM2B_PUBLIC *tpmPublicKey,
123 TPMI_ALG_HASH hashAlg,
124 TPM2B_DIGEST *fingerprint);
125
126#endif /* FAPI_CRYPTO_H */
void ifapi_crypto_hash_abort(IFAPI_CRYPTO_CONTEXT_BLOB **context)
Definition: fapi_crypto.c:1720
TSS2_RC ifapi_crypto_hash_start(IFAPI_CRYPTO_CONTEXT_BLOB **context, TPM2_ALG_ID hashAlgorithm)
Definition: fapi_crypto.c:1572
TPM2_ALG_ID ifapi_get_signature_algorithm_from_pem(const char *pemKey)
Definition: fapi_crypto.c:1228
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_cert_to_pem(const uint8_t *certBuffer, size_t certBufferSize, char **pemCert, TPM2_ALG_ID *certAlgorithmId, TPM2B_PUBLIC *tpmPublic)
Definition: fapi_crypto.c:1811
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_tpm_ecc_sig_to_der(const TPMT_SIGNATURE *tpmSignature, uint8_t **signature, size_t *signatureSize)
Definition: fapi_crypto.c:334
TSS2_RC ifapi_pub_pem_key_from_tpm(const TPM2B_PUBLIC *tpmPublicKey, char **pemKey, int *pemKeySize)
Definition: fapi_crypto.c:657
size_t ifapi_hash_get_digest_size(TPM2_ALG_ID hashAlgorithm)
Definition: fapi_crypto.c:1536
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_verify_ek_cert(char *root_cert_pem, char *intermed_cert_pem, char *ek_cert_pem)
Definition: fapi_crypto.c:2031
TSS2_RC ifapi_get_hash_alg_for_size(uint16_t size, TPMI_ALG_HASH *hashAlgorithm)
Definition: fapi_crypto.c:1903
TSS2_RC ifapi_initialize_sign_public(TPM2_ALG_ID signatureAlgorithm, TPM2B_PUBLIC *template)
Definition: fapi_crypto.c:189
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
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_tpm2b_public_from_pem(const char *pemKey, TPM2B_PUBLIC *tpmPublic)
Definition: fapi_crypto.c:1273
TSS2_RC ifapi_get_public_from_pem_cert(const char *pem_cert, TPM2B_PUBLIC *tpm_public)
Definition: fapi_crypto.c:1965
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_crypto_hash_update(IFAPI_CRYPTO_CONTEXT_BLOB *context, const uint8_t *buffer, size_t size)
Definition: fapi_crypto.c:1644
Definition: fapi_crypto.c:50
Definition: ifapi_keystore.h:145
Definition: ifapi_profiles.h:15