Data Structures | Typedefs
ECDHCC26X2.h File Reference

Detailed Description

ECDH driver implementation for the CC26XX family.

============================================================================

Warning
This is a beta API. It may change in future releases.

This file should only be included in the board file to fill the ECDH_config struct.

The CC26XX family has a dedicated public key accelerator. It is capable of multiple mathematical operations including dedicated ECC point addition, doubling, and scalar multiplication. Only one operation can be carried out on the accerator at a time. Mutual exclusion is implemented at the driver level and coordinated between all drivers relying on the accelerator. It is transparent to the application and only noted ensure sensible access timeouts are set.

The large number maths engine (LNME) uses a dedicated 2kB block of RAM (PKA RAM) for its operations. The operands of the maths operations must be copied into and results out of the PKA ram. This necessitates a significant number of reads and writes for each operation. The bus interface to the RAM only allows for word-aligned reads and writes. The CPU splits the reads and writes from and to general SRAM from unaligned addresses into multiple bus operations while accumulating the data in a register until it is full. The result of this hardware process is that providing buffers such as plaintext CryptoKey keying material to ECC APIs that are word-aligned will significantly speed up the operation and reduce power consumption.

The driver implementation does not perform runtime checks for most input parameters. Only values that are likely to have a stochastic element to them are checked (such as whether a driver is already open). Higher input paramter validation coverage is achieved by turning on assertions when compiling the driver.

#include <stdint.h>
#include <stdbool.h>
#include <ti/drivers/Power.h>
#include <ti/drivers/ECDH.h>
#include <ti/drivers/cryptoutils/ecc/ECCParams.h>
#include <ti/drivers/cryptoutils/cryptokey/CryptoKey.h>
#include <ti/devices/DeviceFamily.h>
#include <ti/drivers/dpl/HwiP.h>
#include <ti/drivers/dpl/SwiP.h>
#include <ti/drivers/dpl/SemaphoreP.h>

Go to the source code of this file.

Data Structures

struct  ECDHCC26X2_HWAttrs_
 ECDHCC26X2 Hardware Attributes. More...
 
struct  ECDHCC26X2_Object_
 ECDHCC26X2 Object. More...
 

Typedefs

typedef struct ECDHCC26X2_HWAttrs_ ECDHCC26X2_HWAttrs
 ECDHCC26X2 Hardware Attributes. More...
 
typedef struct ECDHCC26X2_Object_ ECDHCC26X2_Object
 ECDHCC26X2 Object. More...
 

Typedef Documentation

§ ECDHCC26X2_HWAttrs

ECDHCC26X2 Hardware Attributes.

ECC26XX hardware attributes should be included in the board file and pointed to by the ECDH_config struct.

§ ECDHCC26X2_Object

ECDHCC26X2 Object.

The application must not access any member variables of this structure!

Copyright 2017, Texas Instruments Incorporated