crys_chacha

nRF5 SDK v13.1.0

This file contains all of the enums and definitions that are used for the CRYS CHACHA APIs, as well as the APIs themselves. More...

Data Structures

struct CRYS_CHACHAUserContext_t

Macros

#define CRYS_CHACHA_USER_CTX_SIZE_IN_WORDS 17
#define CRYS_CHACHA_BLOCK_SIZE_IN_WORDS 16
#define CRYS_CHACHA_BLOCK_SIZE_IN_BYTES (CRYS_CHACHA_BLOCK_SIZE_IN_WORDS * sizeof(uint32_t))
#define CRYS_CHACHA_NONCE_MAX_SIZE_IN_WORDS 3
#define CRYS_CHACHA_NONCE_MAX_SIZE_IN_BYTES ( CRYS_CHACHA_NONCE_MAX_SIZE_IN_WORDS * sizeof(uint32_t))
#define CRYS_CHACHA_KEY_MAX_SIZE_IN_WORDS 8
#define CRYS_CHACHA_KEY_MAX_SIZE_IN_BYTES ( CRYS_CHACHA_KEY_MAX_SIZE_IN_WORDS * sizeof(uint32_t))

Typedefs

typedef uint8_t CRYS_CHACHA_Nonce_t [(3 *sizeof(uint32_t))]
typedef uint8_t CRYS_CHACHA_Key_t [(8 *sizeof(uint32_t))]
typedef struct
CRYS_CHACHAUserContext_t
CRYS_CHACHAUserContext_t

Enumerations

enum CRYS_CHACHA_EncryptMode_t {
CRYS_CHACHA_Encrypt = 0,
CRYS_CHACHA_Decrypt = 1,
CRYS_CHACHA_EncryptNumOfOptions ,
CRYS_CHACHA_EncryptModeLast = 0x7FFFFFFF
}
enum CRYS_CHACHA_NonceSize_t {
CRYS_CHACHA_Nonce64BitSize = 0,
CRYS_CHACHA_Nonce96BitSize = 1,
CRYS_CHACHA_NonceSizeNumOfOptions ,
CRYS_CHACHA_NonceSizeLast = 0x7FFFFFFF
}

Functions

CRYSError_t CRYS_CHACHA_Init ( CRYS_CHACHAUserContext_t *pContextID, CRYS_CHACHA_Nonce_t pNonce, CRYS_CHACHA_NonceSize_t nonceSize, CRYS_CHACHA_Key_t pKey, uint32_t initialCounter, CRYS_CHACHA_EncryptMode_t EncryptDecryptFlag)
This function is used to initialize the context for CHACHA operations. More...
CRYSError_t CRYS_CHACHA_Block ( CRYS_CHACHAUserContext_t *pContextID, uint8_t *pDataIn, uint32_t dataInSize, uint8_t *pDataOut)
This function is used to process aligned blocks of CHACHA. The data in size should be a multiple of chacha block size. More...
CRYSError_t CRYS_CHACHA_Finish ( CRYS_CHACHAUserContext_t *pContextID, uint8_t *pDataIn, uint32_t dataInSize, uint8_t *pDataOut)
This function is used to process the remaining data of CHACHA. The data in size should be smaller than chacha block size. More...
CRYSError_t CRYS_CHACHA_Free ( CRYS_CHACHAUserContext_t *pContextID)
This function is used to free the context of CHACHA operations. More...
CRYSError_t CRYS_CHACHA ( CRYS_CHACHA_Nonce_t pNonce, CRYS_CHACHA_NonceSize_t nonceSize, CRYS_CHACHA_Key_t pKey, uint32_t initialCounter, CRYS_CHACHA_EncryptMode_t encryptDecryptFlag, uint8_t *pDataIn, uint32_t dataInSize, uint8_t *pDataOut)
This function is used to perform the CHACHA operation in one integrated process. More...

Detailed Description

This file contains all of the enums and definitions that are used for the CRYS CHACHA APIs, as well as the APIs themselves.

Macro Definition Documentation

#define CRYS_CHACHA_KEY_MAX_SIZE_IN_WORDS   8

The maximum size of the CHACHA KEY in words and bytes.

#define CRYS_CHACHA_NONCE_MAX_SIZE_IN_WORDS   3

The max size of the nonce buffer.

Typedef Documentation

typedef uint8_t CRYS_CHACHA_Key_t[(8 *sizeof(uint32_t))]

Defines the CHACHA key buffer.

typedef uint8_t CRYS_CHACHA_Nonce_t[(3 *sizeof(uint32_t))]

Defines the Nonce buffer 12 bytes array.

Function Documentation

CRYSError_t CRYS_CHACHA ( CRYS_CHACHA_Nonce_t pNonce ,
CRYS_CHACHA_NonceSize_t nonceSize ,
CRYS_CHACHA_Key_t pKey ,
uint32_t initialCounter ,
CRYS_CHACHA_EncryptMode_t encryptDecryptFlag ,
uint8_t * pDataIn ,
uint32_t dataInSize ,
uint8_t * pDataOut
)

This function is used to perform the CHACHA operation in one integrated process.

Returns
CRYS_OK on success.
A non-zero value on failure as defined crys_chacha_error.h.
Parameters
[in] pNonce A buffer containing an nonce.
[in] nonceSize Enumerator defining the nonce size (only 64 and 96 bit are valid).
[in] pKey A pointer to the user's key buffer.
[in] initialCounter An initial counter.
[in] encryptDecryptFlag A flag specifying whether the CHACHA should perform an Encrypt operation or a Decrypt operation.
[in] pDataIn A pointer to the buffer of the input data to the CHACHA. The pointer does not need to be aligned. must not be null.
[in] dataInSize The size of the input data. must not be 0.
[out] pDataOut A pointer to the buffer of the output data from the CHACHA. The pointer does not need to be aligned. must not be null.
CRYSError_t CRYS_CHACHA_Block ( CRYS_CHACHAUserContext_t * pContextID ,
uint8_t * pDataIn ,
uint32_t dataInSize ,
uint8_t * pDataOut
)

This function is used to process aligned blocks of CHACHA. The data in size should be a multiple of chacha block size.

Returns
CRYS_OK on success.
A non-zero value on failure as defined crys_chacha_error.h.
Parameters
[in] pContextID Pointer to the context buffer.
[in] pDataIn A pointer to the buffer of the input data to the CHACHA. The pointer does not need to be aligned. must not be null.
[in] dataInSize The size of the input data. Must be a multiple of CRYS_CHACHA_BLOCK_SIZE_IN_BYTES bytes and must not be 0.
[out] pDataOut A pointer to the buffer of the output data from the CHACHA. The pointer does not need to be aligned. must not be null.
CRYSError_t CRYS_CHACHA_Finish ( CRYS_CHACHAUserContext_t * pContextID ,
uint8_t * pDataIn ,
uint32_t dataInSize ,
uint8_t * pDataOut
)

This function is used to process the remaining data of CHACHA. The data in size should be smaller than chacha block size.

Returns
CRYS_OK on success.
A non-zero value on failure as defined crys_chacha_error.h.
Parameters
[in] pContextID Pointer to the context buffer.
[in] pDataIn A pointer to the buffer of the input data to the CHACHA. The pointer does not need to be aligned. If dataInSize = 0, input buffer is not required.
[in] dataInSize The size of the input data. zero and non multiple of CRYS_CHACHA_BLOCK_SIZE_IN_BYTES are valid.
[out] pDataOut A pointer to the buffer of the output data from the CHACHA. The pointer does not need to be aligned. If dataInSize = 0, output buffer is not required.
CRYSError_t CRYS_CHACHA_Free ( CRYS_CHACHAUserContext_t * pContextID )

This function is used to free the context of CHACHA operations.

Returns
CRYS_OK on success.
A non-zero value on failure as defined crys_chacha_error.h.
Parameters
[in] pContextID Pointer to the context buffer.
CRYSError_t CRYS_CHACHA_Init ( CRYS_CHACHAUserContext_t * pContextID ,
CRYS_CHACHA_Nonce_t pNonce ,
CRYS_CHACHA_NonceSize_t nonceSize ,
CRYS_CHACHA_Key_t pKey ,
uint32_t initialCounter ,
CRYS_CHACHA_EncryptMode_t EncryptDecryptFlag
)

This function is used to initialize the context for CHACHA operations.

Returns
CRYS_OK on success.
A non-zero value on failure as defined crys_chacha_error.h.
Parameters
[in] pContextID Pointer to the CHACHA context buffer that is allocated by the user and is used for the CHACHA operation.
[in] pNonce A buffer containing an nonce.
[in] nonceSize Enumerator defining the nonce size (only 64 and 96 bit are valid).
[in] pKey A pointer to the user's key buffer.
[in] initialCounter An initial counter.
[in] EncryptDecryptFlag A flag specifying whether the CHACHA should perform an Encrypt operation or a Decrypt operation.