123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- #ifndef CRYS_CHACHA_H
- #define CRYS_CHACHA_H
- #include "ssi_pal_types.h"
- #include "crys_error.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #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))
- typedef enum {
-
- CRYS_CHACHA_Encrypt = 0,
-
- CRYS_CHACHA_Decrypt = 1,
-
- CRYS_CHACHA_EncryptNumOfOptions,
-
- CRYS_CHACHA_EncryptModeLast = 0x7FFFFFFF,
- }CRYS_CHACHA_EncryptMode_t;
- typedef enum {
-
- CRYS_CHACHA_Nonce64BitSize = 0,
-
- CRYS_CHACHA_Nonce96BitSize = 1,
-
- CRYS_CHACHA_NonceSizeNumOfOptions,
-
- CRYS_CHACHA_NonceSizeLast = 0x7FFFFFFF,
- }CRYS_CHACHA_NonceSize_t;
- typedef uint8_t CRYS_CHACHA_Nonce_t[CRYS_CHACHA_NONCE_MAX_SIZE_IN_BYTES];
- typedef uint8_t CRYS_CHACHA_Key_t[CRYS_CHACHA_KEY_MAX_SIZE_IN_BYTES];
- typedef struct CRYS_CHACHAUserContext_t {
-
-
- uint32_t buff[CRYS_CHACHA_USER_CTX_SIZE_IN_WORDS];
- }CRYS_CHACHAUserContext_t;
- CIMPORT_C 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
- );
- CIMPORT_C CRYSError_t CRYS_CHACHA_Block(
- CRYS_CHACHAUserContext_t *pContextID,
- uint8_t *pDataIn,
- uint32_t dataInSize,
- uint8_t *pDataOut
- );
- CIMPORT_C CRYSError_t CRYS_CHACHA_Finish(
- CRYS_CHACHAUserContext_t *pContextID,
- uint8_t *pDataIn,
- uint32_t dataInSize,
- uint8_t *pDataOut
- );
- CIMPORT_C CRYSError_t CRYS_CHACHA_Free(
- CRYS_CHACHAUserContext_t *pContextID
- );
- CIMPORT_C 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
- );
- #ifdef __cplusplus
- }
- #endif
- #endif
|