TI BLE-Stack for Bluetooth 4.2 API Documentation
3.01.00.07
|
ECC ROM driver implementation for a CC26XX device.
============================================================================
The ECC ROM header file should be included in an application as follows:
The ECCROMCC26XX driver provides reentrant access to the ROM based ECC module. Access is given first come, first serve and subsequent calls block until all preceding callers have returned or the caller times out in which case execution returns to the caller but the operation is not performed.
Note: this implementation differs in byte ordering from the NIST Standard. It is not expected that keys input from a different implementation will match the output here.
This driver is dependent on TRNGCC26XX driver for random number generation. TRNGCC26XX driver should always be included in the project.
For code examples, see Use Cases below.
### Performing a key and shared secret generation operation #
If an error occur during key generation, an error status will be returned and stored in the status field of the ECCROMCC26XX_Params instance passed as an argument.
API function | Description |
---|---|
ECCROMCC26XX_init() | Initializes module's synchronization resources |
ECCROMCC26XX_Params_init() | Initialize parameters for Key Generation |
ECCROMCC26XX_genKeys() | Generate Public Key X and Y Coordinates |
ECCROMCC26XX_genDHKey() | Generate Diffie-Hellman Shared Secret |
ECCROMCC26XX_signHash() | Generates |
ECCROMCC26XX_verifyHash() | Verifies a previously generated signature |
============================================================================
Go to the source code of this file.
Data Structures | |
struct | ECCROMCC26XX_CurveParams |
ECCROMCC26XX Curve Parameters. More... | |
struct | ECCROMCC26XX_Params |
ECCROMCC26XX Parameters. More... | |
Typedefs | |
typedef struct ECCROMCC26XX_CurveParams | ECCROMCC26XX_CurveParams |
ECCROMCC26XX Curve Parameters. More... | |
typedef void(* | ECCROMCC26XX_FreeCB) (uint8_t *pBuf) |
ECCROMCC26XX Free Callback. More... | |
typedef uint8_t *(* | ECCROMCC26XX_MallocCB) (uint16_t len) |
ECCROMCC26XX Malloc Callback. More... | |
typedef struct ECCROMCC26XX_Params | ECCROMCC26XX_Params |
ECCROMCC26XX Parameters. More... | |
Functions | |
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. More... | |
int8_t | ECCROMCC26XX_genKeys (uint8_t *privateKey, uint8_t *publicKeyX, uint8_t *publicKeyY, ECCROMCC26XX_Params *params) |
Generate Public Key X and Y Coordinates. More... | |
void | ECCROMCC26XX_init (void) |
Initializes module's synchronization resources. Only needs to be called once, but safe to call multiple times. More... | |
void | ECCROMCC26XX_Params_init (ECCROMCC26XX_Params *params) |
Function to initialize the ECCROMCC26XX_Params struct to its defaults. params should not be modified until after this function is called. Default parameters use the NIST P-256 curve, timeout is set to wait indefinitely, malloc and free are NULL and status is set to ECCROMCC26XX_STATUS_SUCCESS. A client may call this function with the same params instance any number of times. More... | |
int8_t | ECCROMCC26XX_signHash (uint8_t *privateKey, const uint8_t *hash, uint32_t hashLen, uint8_t *sign1, uint8_t *sign2, ECCROMCC26XX_Params *params) |
Compute the signature of a previously hashed message. More... | |
int8_t | ECCROMCC26XX_verifyHash (uint8_t *publicKeyX, uint8_t *publicKeyY, uint8_t *sign1, uint8_t *sign2, uint8_t *hash, uint32_t hashLen, ECCROMCC26XX_Params *params) |
Verify the signature of a previously hashed message. More... | |