183 #ifndef ti_drivers_ECCROMCC26XX__include 184 #define ti_drivers_ECCROMCC26XX__include 203 #define ECCROMCC26XX_STATUS_SUCCESS 0 204 #define ECCROMCC26XX_STATUS_MALLOC_FAIL -1 205 #define ECCROMCC26XX_STATUS_ILLEGAL_PARAM -2 206 #define ECCROMCC26XX_STATUS_TIMEOUT -3 209 #define ECCROMCC26XX_STATUS_MODULUS_EVEN 0xDC 210 #define ECCROMCC26XX_STATUS_MODULUS_LARGER_THAN_255_WORDS 0xD2 211 #define ECCROMCC26XX_STATUS_MODULUS_LENGTH_ZERO 0x08 212 #define ECCROMCC26XX_STATUS_MODULUS_MSW_IS_ZERO 0x30 213 #define ECCROMCC26XX_STATUS_SCALAR_TOO_LONG 0x35 214 #define ECCROMCC26XX_STATUS_SCALAR_LENGTH_ZERO 0x53 215 #define ECCROMCC26XX_STATUS_ORDER_TOO_LONG 0xC6 216 #define ECCROMCC26XX_STATUS_ORDER_LENGTH_ZERO 0x6C 217 #define ECCROMCC26XX_STATUS_X_COORD_TOO_LONG 0x3C 218 #define ECCROMCC26XX_STATUS_X_COORD_LENGTH_ZERO 0xC3 219 #define ECCROMCC26XX_STATUS_Y_COORD_TOO_LONG 0x65 220 #define ECCROMCC26XX_STATUS_Y_COORD_LENGTH_ZERO 0x56 221 #define ECCROMCC26XX_STATUS_A_COEF_TOO_LONG 0x5C 222 #define ECCROMCC26XX_STATUS_A_COEF_LENGTH_ZERO 0xC5 223 #define ECCROMCC26XX_STATUS_BAD_WINDOW_SIZE 0x66 224 #define ECCROMCC26XX_STATUS_SCALAR_MUL_OK 0x99 226 #define ECCROMCC26XX_STATUS_ORDER_LARGER_THAN_255_WORDS 0x28 227 #define ECCROMCC26XX_STATUS_ORDER_EVEN 0x82 228 #define ECCROMCC26XX_STATUS_ORDER_MSW_IS_ZERO 0x23 229 #define ECCROMCC26XX_STATUS_ECCROMCC26XX_STATUS_KEY_TOO_LONG 0x25 230 #define ECCROMCC26XX_STATUS_ECCROMCC26XX_STATUS_KEY_LENGTH_ZERO 0x52 231 #define ECCROMCC26XX_STATUS_DIGEST_TOO_LONG 0x27 232 #define ECCROMCC26XX_STATUS_DIGEST_LENGTH_ZERO 0x72 233 #define ECCROMCC26XX_STATUS_ECDSA_SIGN_OK 0x32 234 #define ECCROMCC26XX_STATUS_ECDSA_INVALID_SIGNATURE 0x5A 235 #define ECCROMCC26XX_STATUS_ECDSA_VALID_SIGNATURE 0xA5 236 #define ECCROMCC26XX_STATUS_SIG_P1_TOO_LONG 0x11 237 #define ECCROMCC26XX_STATUS_SIG_P1_LENGTH_ZERO 0x12 238 #define ECCROMCC26XX_STATUS_SIG_P2_TOO_LONG 0x22 239 #define ECCROMCC26XX_STATUS_SIG_P2_LENGTH_ZERO 0x21 241 #define ECCROMCC26XX_STATUS_ECDH_KEYGEN_OK ECCROMCC26XX_STATUS_SCALAR_MUL_OK 242 #define ECCROMCC26XX_STATUS_ECDH_COMMON_KEY_OK ECCROMCC26XX_STATUS_SCALAR_MUL_OK 243 #define ECCROMCC26XX_STATUS_ECDH_X_ZERO 0x1 244 #define ECCROMCC26XX_STATUS_ECDH_Y_ZERO 0x2 245 #define ECCROMCC26XX_STATUS_ECDH_X_LARGER_THAN_PRIME 0x3 246 #define ECCROMCC26XX_STATUS_ECDH_Y_LARGER_THAN_PRIME 0x4 247 #define ECCROMCC26XX_STATUS_ECDH_PT_CHECK_FAIL 0x5 255 #define ECCROMCC26XX_NIST_P256_WORKZONE_LEN_IN_BYTES 684 260 #define ECCROMCC26XX_NIST_P256_KEY_LEN_IN_BYTES 32 271 #define ECCROMCC26XX_WORKZONE_LEN_IN_BYTES(len, win) (4 * ((13 * (len)) + 13 + (3 * (len) * (1 << ((win) - 2))))) 301 typedef uint8_t *(*ECCROMCC26XX_MallocCB)(uint16_t
len);
404 uint8_t *publicKeyY, uint8_t *dHKeyX,
433 const uint8_t *curvePointX,
434 const uint8_t *curvePointY,
ECCROMCC26XX Parameters.
Definition: ECCROMCC26XX.h:319
uint32_t * param_gy
Definition: ECCROMCC26XX.h:289
void ECCROMCC26XX_init(void)
Initializes module's synchronization resources. Only needs to be called once, but safe to call multip...
int8_t status
Definition: ECCROMCC26XX.h:324
uint8_t windowSize
Definition: ECCROMCC26XX.h:283
ECCROMCC26XX_MallocCB malloc
Definition: ECCROMCC26XX.h:321
uint32_t * param_r
Definition: ECCROMCC26XX.h:285
uint32_t * param_a
Definition: ECCROMCC26XX.h:286
uint32_t * param_gx
Definition: ECCROMCC26XX.h:288
int8_t ECCROMCC26XX_genKeys(uint8_t *privateKey, uint8_t *publicKeyX, uint8_t *publicKeyY, ECCROMCC26XX_Params *params)
Generate Public Key X and Y Coordinates.
uint16_t workzoneLen
Definition: ECCROMCC26XX.h:282
ECCROMCC26XX_CurveParams curve
Definition: ECCROMCC26XX.h:320
uint32_t timeout
Definition: ECCROMCC26XX.h:323
struct ECCROMCC26XX_Params ECCROMCC26XX_Params
ECCROMCC26XX Parameters.
void ECCROMCC26XX_Params_init(ECCROMCC26XX_Params *params)
Function to initialize the ECCROMCC26XX_Params struct to its defaults. params should not be modified ...
ECCROMCC26XX_FreeCB free
Definition: ECCROMCC26XX.h:322
uint32_t len
Image length in bytes.
Definition: oad_image_header.h:529
void(* ECCROMCC26XX_FreeCB)(uint8_t *pBuf)
ECCROMCC26XX Free Callback.
Definition: ECCROMCC26XX.h:312
int8_t ECC_VerifyPublicKeyWeierstrass(ECCROMCC26XX_Params *params, const uint8_t *curvePointX, const uint8_t *curvePointY, uint32_t length)
Verify if the X an Y coordinates are on the right ECC curve.
ECCROMCC26XX Curve Parameters.
Definition: ECCROMCC26XX.h:279
int8_t ECCROMCC26XX_genDHKey(uint8_t *privateKey, uint8_t *publicKeyX, uint8_t *publicKeyY, uint8_t *dHKeyX, uint8_t *dHKeyY, ECCROMCC26XX_Params *params)
Generate Diffie-Hellman Shared Secret Key X and Y Coordinates.
uint32_t * param_b
Definition: ECCROMCC26XX.h:287
uint32_t * param_p
Definition: ECCROMCC26XX.h:284
uint8_t keyLen
Definition: ECCROMCC26XX.h:281
uint8_t *(* ECCROMCC26XX_MallocCB)(uint16_t len)
ECCROMCC26XX Malloc Callback.
Definition: ECCROMCC26XX.h:301
struct ECCROMCC26XX_CurveParams ECCROMCC26XX_CurveParams
ECCROMCC26XX Curve Parameters.