ISARA Radiate™ Quantum-safe Library Version 3.1

Quantum-safe cryptographic primitives and algorithms.

iqr_chacha20.h
Go to the documentation of this file.
1 
21 #ifndef IQR_CHACHA20_H
22 #define IQR_CHACHA20_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #include "iqr_api.h"
29 #include "iqr_retval.h"
30 
31 #include <stddef.h>
32 #include <stdint.h>
33 
34 // ---------------------------------------------------------------------------------------------------------------------------------
35 // Constants.
36 // ---------------------------------------------------------------------------------------------------------------------------------
37 
39 #define IQR_CHACHA20_KEY_SIZE 32
40 
42 #define IQR_CHACHA20_NONCE_SIZE 12
43 
44 // ---------------------------------------------------------------------------------------------------------------------------------
45 // RFC 8439 ChaCha20.
46 // ---------------------------------------------------------------------------------------------------------------------------------
47 
88 IQR_API
89 iqr_retval iqr_ChaCha20Encrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter,
90  const uint8_t *plaintext, size_t plaintext_size, uint8_t *ciphertext, size_t ciphertext_size);
91 
133 IQR_API
134 iqr_retval iqr_ChaCha20Decrypt(const uint8_t *key, size_t key_size, const uint8_t *nonce, size_t nonce_size, uint32_t counter,
135  const uint8_t *ciphertext, size_t ciphertext_size, uint8_t *plaintext, size_t plaintext_size);
136 
137 #ifdef __cplusplus
138 }
139 #endif
140 
141 #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)
ISARA Radiate Quantum-Safe Library's return values.
iqr_retval
Definition: iqr_retval.h:28
ISARA Radiate Quantum-Safe Library's API declarations.