ISARA Quantum Resistant Toolkit  Version 1.1
Quantum resistant cryptographic primitives and algorithms.
iqr_chacha20.h
Go to the documentation of this file.
1 
22 #ifndef IQR_CHACHA20_H
23 #define IQR_CHACHA20_H
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include <stddef.h>
30 #include <stdint.h>
31 #include <stdlib.h>
32 
33 #include "iqr_retval.h"
34 
35 // ---------------------------------------------------------------------------------------------------------------------------------
36 // Constants.
37 // ---------------------------------------------------------------------------------------------------------------------------------
38 
40 #define IQR_CHACHA20_KEY_SIZE 32
41 
43 #define IQR_CHACHA20_NONCE_SIZE 12
44 
45 // ---------------------------------------------------------------------------------------------------------------------------------
46 // RFC-7539 ChaCha20.
47 // ---------------------------------------------------------------------------------------------------------------------------------
48 
82 IQR_API
83 iqr_retval iqr_ChaCha20Encrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter,
84  const uint8_t *plaintext, size_t plaintext_size, uint8_t *ciphertext, size_t ciphertext_size);
85 
119 IQR_API
120 iqr_retval iqr_ChaCha20Decrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter,
121  const uint8_t *ciphertext, size_t ciphertext_size, uint8_t *plaintext, size_t plaintext_size);
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 
127 #endif /* IQR_CHACHA20_H */
IQR_API iqr_retval iqr_ChaCha20Decrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter, const uint8_t *ciphertext, size_t ciphertext_size, uint8_t *plaintext, size_t plaintext_size)
IQR_API iqr_retval iqr_ChaCha20Encrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter, const uint8_t *plaintext, size_t plaintext_size, uint8_t *ciphertext, size_t ciphertext_size)
iqr_retval
Definition: iqr_retval.h:26