Home | History | Annotate | Download | only in tpm2
      1 // This file was extracted from the TCG Published
      2 // Trusted Platform Module Library
      3 // Part 4: Supporting Routines
      4 // Family "2.0"
      5 // Level 00 Revision 01.16
      6 // October 30, 2014
      7 
      8 #ifndef        _CRYPTDATAECC_H_
      9 #define        _CRYPTDATAECC_H_
     10 //
     11 //     Structure for the curve parameters. This is an analog to the TPMS_ALGORITHM_DETAIL_ECC
     12 //
     13 typedef struct {
     14    const TPM2B     *p;         // a prime number
     15    const TPM2B     *a;         // linear coefficient
     16    const TPM2B     *b;         // constant term
     17    const TPM2B     *x;         // generator x coordinate
     18    const TPM2B     *y;         // generator y coordinate
     19    const TPM2B     *n;         // the order of the curve
     20    const TPM2B     *h;         // cofactor
     21 } ECC_CURVE_DATA;
     22 typedef struct
     23 {
     24    TPM_ECC_CURVE            curveId;
     25    UINT16                   keySizeBits;
     26    TPMT_KDF_SCHEME          kdf;
     27    TPMT_ECC_SCHEME          sign;
     28    const ECC_CURVE_DATA    *curveData; // the address of the curve data
     29 } ECC_CURVE;
     30 extern const ECC_CURVE_DATA SM2_P256;
     31 extern const ECC_CURVE_DATA NIST_P256;
     32 extern const ECC_CURVE_DATA BN_P256;
     33 extern const ECC_CURVE eccCurves[];
     34 extern const UINT16 ECC_CURVE_COUNT;
     35 #endif
     36