aboutsummaryrefslogtreecommitdiff
path: root/CpriDataEcc.h
blob: 7d31caa91b771f3da841755eed3ce44eb808634f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// This file was extracted from the TCG Published
// Trusted Platform Module Library
// Part 4: Supporting Routines
// Family "2.0"
// Level 00 Revision 01.16
// October 30, 2014

#ifndef        _CRYPTDATAECC_H_
#define        _CRYPTDATAECC_H_
//
//     Structure for the curve parameters. This is an analog to the TPMS_ALGORITHM_DETAIL_ECC
//
typedef struct {
   const TPM2B     *p;         // a prime number
   const TPM2B     *a;         // linear coefficient
   const TPM2B     *b;         // constant term
   const TPM2B     *x;         // generator x coordinate
   const TPM2B     *y;         // generator y coordinate
   const TPM2B     *n;         // the order of the curve
   const TPM2B     *h;         // cofactor
} ECC_CURVE_DATA;
typedef struct
{
   TPM_ECC_CURVE            curveId;
   UINT16                   keySizeBits;
   TPMT_KDF_SCHEME          kdf;
   TPMT_ECC_SCHEME          sign;
   const ECC_CURVE_DATA    *curveData; // the address of the curve data
} ECC_CURVE;
extern const ECC_CURVE_DATA SM2_P256;
extern const ECC_CURVE_DATA NIST_P256;
extern const ECC_CURVE_DATA BN_P256;
extern const ECC_CURVE eccCurves[];
extern const UINT16 ECC_CURVE_COUNT;
#endif