123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /********************************************************************************/
- /* */
- /* constant definitions used for self-test. */
- /* Written by Ken Goldman */
- /* IBM Thomas J. Watson Research Center */
- /* $Id: CryptTest.h 1594 2020-03-26 22:15:48Z kgoldman $ */
- /* */
- /* Licenses and Notices */
- /* */
- /* 1. Copyright Licenses: */
- /* */
- /* - Trusted Computing Group (TCG) grants to the user of the source code in */
- /* this specification (the "Source Code") a worldwide, irrevocable, */
- /* nonexclusive, royalty free, copyright license to reproduce, create */
- /* derivative works, distribute, display and perform the Source Code and */
- /* derivative works thereof, and to grant others the rights granted herein. */
- /* */
- /* - The TCG grants to the user of the other parts of the specification */
- /* (other than the Source Code) the rights to reproduce, distribute, */
- /* display, and perform the specification solely for the purpose of */
- /* developing products based on such documents. */
- /* */
- /* 2. Source Code Distribution Conditions: */
- /* */
- /* - Redistributions of Source Code must retain the above copyright licenses, */
- /* this list of conditions and the following disclaimers. */
- /* */
- /* - Redistributions in binary form must reproduce the above copyright */
- /* licenses, this list of conditions and the following disclaimers in the */
- /* documentation and/or other materials provided with the distribution. */
- /* */
- /* 3. Disclaimers: */
- /* */
- /* - THE COPYRIGHT LICENSES SET FORTH ABOVE DO NOT REPRESENT ANY FORM OF */
- /* LICENSE OR WAIVER, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, WITH */
- /* RESPECT TO PATENT RIGHTS HELD BY TCG MEMBERS (OR OTHER THIRD PARTIES) */
- /* THAT MAY BE NECESSARY TO IMPLEMENT THIS SPECIFICATION OR OTHERWISE. */
- /* Contact TCG Administration (admin@trustedcomputinggroup.org) for */
- /* information on specification licensing rights available through TCG */
- /* membership agreements. */
- /* */
- /* - THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO EXPRESS OR IMPLIED */
- /* WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR */
- /* FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS, OR */
- /* NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS, OR ANY WARRANTY */
- /* OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. */
- /* */
- /* - Without limitation, TCG and its members and licensors disclaim all */
- /* liability, including liability for infringement of any proprietary */
- /* rights, relating to use of information in this specification and to the */
- /* implementation of this specification, and TCG disclaims all liability for */
- /* cost of procurement of substitute goods or services, lost profits, loss */
- /* of use, loss of data or any incidental, consequential, direct, indirect, */
- /* or special damages, whether under contract, tort, warranty or otherwise, */
- /* arising in any way out of use or reliance upon this specification or any */
- /* information herein. */
- /* */
- /* (c) Copyright IBM Corp. and others, 2016 - 2020 */
- /* */
- /********************************************************************************/
- #ifndef CRYPTTEST_H
- #define CRYPTTEST_H
- /* 10.1.7 CryptTest.h */
- /* This file contains constant definitions used for self test */
- /* This is the definition of a bit array with one bit per algorithm */
- /* NOTE: Since bit numbering starts at zero, when TPM_ALG_LAST is a multiple of 8,
- ALGORITHM_VECTOR will need to have byte for the single bit in the last byte. So, for example,
- when TPM_ALG_LAST is 8, ALGORITHM_VECTOR will need 2 bytes. */
- #define ALGORITHM_VECTOR_BYTES ((TPM_ALG_LAST + 8) / 8)
- typedef BYTE ALGORITHM_VECTOR[ALGORITHM_VECTOR_BYTES];
- #ifdef TEST_SELF_TEST
- LIB_EXPORT extern ALGORITHM_VECTOR LibToTest;
- #endif
- /* This structure is used to contain self-test tracking information for the cryptographic
- modules. Each of the major modules is given a 32-bit value in which it may maintain its own self
- test information. The convention for this state is that when all of the bits in this structure
- are 0, all functions need to be tested. */
- typedef struct
- {
- UINT32 rng;
- UINT32 hash;
- UINT32 sym;
- #if ALG_RSA
- UINT32 rsa;
- #endif
- #if ALG_ECC
- UINT32 ecc;
- #endif
- } CRYPTO_SELF_TEST_STATE;
- #endif // _CRYPT_TEST_H
|