| /* |
| * Copyright 2015 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef __TPM2_CPRIRSA_FP_H |
| #define __TPM2_CPRIRSA_FP_H |
| |
| LIB_EXPORT BOOL _cpri__RsaStartup(void); |
| |
| #endif // __TPM2_CPRIRSA_FP_H |
| LIB_EXPORT CRYPT_RESULT _cpri__DecryptRSA( |
| UINT32 *dOutSize, // OUT: the size of the decrypted data |
| BYTE *dOut, // OUT: the decrypted data |
| RSA_KEY *key, // IN: the key to use for decryption |
| TPM_ALG_ID padType, // IN: the type of padding |
| UINT32 cInSize, // IN: the amount of data to decrypt |
| BYTE *cIn, // IN: the data to decrypt |
| TPM_ALG_ID hashAlg, // IN: in case this is needed for the scheme |
| const char *label // IN: in case it is needed for the scheme |
| ); |
| LIB_EXPORT CRYPT_RESULT _cpri__EncryptRSA( |
| UINT32 *cOutSize, // OUT: the size of the encrypted data |
| BYTE *cOut, // OUT: the encrypted data |
| RSA_KEY *key, // IN: the key to use for encryption |
| TPM_ALG_ID padType, // IN: the type of padding |
| UINT32 dInSize, // IN: the amount of data to encrypt |
| BYTE *dIn, // IN: the data to encrypt |
| TPM_ALG_ID hashAlg, // IN: in case this is needed |
| const char *label // IN: in case it is needed |
| ); |
| LIB_EXPORT CRYPT_RESULT _cpri__GenerateKeyRSA( |
| TPM2B *n, // OUT: The public modulu |
| TPM2B *p, // OUT: One of the prime factors of n |
| UINT16 keySizeInBits, // IN: Size of the public modulus in bit |
| UINT32 e, // IN: The public exponent |
| TPM_ALG_ID hashAlg, // IN: hash algorithm to use in the key |
| // generation proce |
| TPM2B *seed, // IN: the seed to use |
| const char *label, // IN: A label for the generation process. |
| TPM2B *extra, // IN: Party 1 data for the KDF |
| UINT32 *counter // IN/OUT: Counter value to allow KFD iteration |
| // to be propagated across multiple routine |
| ); |
| LIB_EXPORT CRYPT_RESULT _cpri__SignRSA( |
| UINT32 *sigOutSize, // OUT: size of signature |
| BYTE *sigOut, // OUT: signature |
| RSA_KEY *key, // IN: key to use |
| TPM_ALG_ID scheme, // IN: the scheme to use |
| TPM_ALG_ID hashAlg, // IN: hash algorithm for PKSC1v1_5 |
| UINT32 hInSize, // IN: size of digest to be signed |
| BYTE *hIn // IN: digest buffer |
| ); |
| LIB_EXPORT CRYPT_RESULT _cpri__TestKeyRSA( |
| TPM2B *d, // OUT: the address to receive the private |
| // exponent |
| UINT32 exponent, // IN: the public modulu |
| TPM2B *publicKey, // IN/OUT: an input if only one prime is |
| // provided. an output if both primes are |
| // provided |
| TPM2B *prime1, // IN: a first prime |
| TPM2B *prime2 // IN: an optional second prime |
| ); |
| LIB_EXPORT CRYPT_RESULT _cpri__ValidateSignatureRSA( |
| RSA_KEY *key, // IN: key to use |
| TPM_ALG_ID scheme, // IN: the scheme to use |
| TPM_ALG_ID hashAlg, // IN: hash algorithm |
| UINT32 hInSize, // IN: size of digest to be checked |
| BYTE *hIn, // IN: digest buffer |
| UINT32 sigInSize, // IN: size of signature |
| BYTE *sigIn, // IN: signature |
| UINT16 saltSize // IN: salt size for PSS |
| ); |