wickr-crypto-c
stream_iv.h
1 /*
2  * Copyright © 2012-2020 Wickr Inc. All rights reserved.
3  *
4  * This code is being released for EDUCATIONAL, ACADEMIC, AND CODE REVIEW PURPOSES
5  * ONLY. COMMERCIAL USE OF THE CODE IS EXPRESSLY PROHIBITED. For additional details,
6  * please see LICENSE
7  *
8  * THE CODE IS MADE AVAILABLE "AS-IS" AND WITHOUT ANY EXPRESS OR
9  * IMPLIED GUARANTEES AS TO FITNESS, MERCHANTABILITY, NON-
10  * INFRINGEMENT OR OTHERWISE. IT IS NOT BEING PROVIDED IN TRADE BUT ON
11  * A VOLUNTARY BASIS ON BEHALF OF THE AUTHOR’S PART FOR THE BENEFIT
12  * OF THE LICENSEE AND IS NOT MADE AVAILABLE FOR CONSUMER USE OR ANY
13  * OTHER USE OUTSIDE THE TERMS OF THIS LICENSE. ANYONE ACCESSING THE
14  * CODE SHOULD HAVE THE REQUISITE EXPERTISE TO SECURE THEIR SYSTEM
15  * AND DEVICES AND TO ACCESS AND USE THE CODE FOR REVIEW PURPOSES
16  * ONLY. LICENSEE BEARS THE RISK OF ACCESSING AND USING THE CODE. IN
17  * PARTICULAR, AUTHOR BEARS NO LIABILITY FOR ANY INTERFERENCE WITH OR
18  * ADVERSE EFFECT THAT MAY OCCUR AS A RESULT OF THE LICENSEE
19  * ACCESSING AND/OR USING THE CODE ON LICENSEE’S SYSTEM.
20  */
21 
22 #ifndef stream_iv_h
23 #define stream_iv_h
24 
25 #include "crypto_engine.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
57  uint64_t gen_count;
58 };
59 
60 typedef struct wickr_stream_iv wickr_stream_iv_t;
61 
73 
84 
93 
94 
105 
106 #ifdef __cplusplus
107 }
108 #endif
109 
110 #endif /* stream_iv_h */
wickr_stream_iv
A deterministic random IV generator using a 64 byte secure random seed and HMAC-SHA512.
Definition: stream_iv.h:53
wickr_crypto_engine
Interface to a set of cryptographic operations used throughout the library. Currently the default imp...
Definition: crypto_engine.h:53
wickr_stream_iv::seed
wickr_buffer_t * seed
Definition: stream_iv.h:55
wickr_stream_iv::cipher
wickr_cipher_t cipher
Definition: stream_iv.h:56
wickr_stream_iv_create
wickr_stream_iv_t * wickr_stream_iv_create(const wickr_crypto_engine_t engine, wickr_cipher_t cipher)
wickr_stream_iv_generate
wickr_buffer_t * wickr_stream_iv_generate(wickr_stream_iv_t *iv)
wickr_stream_iv_copy
wickr_stream_iv_t * wickr_stream_iv_copy(const wickr_stream_iv_t *iv)
wickr_stream_iv::engine
wickr_crypto_engine_t engine
Definition: stream_iv.h:54
wickr_stream_iv::gen_count
uint64_t gen_count
Definition: stream_iv.h:57
wickr_buffer
Represents an array of bytes and the length of the allocation associated with those bytes.
Definition: buffer.h:51
wickr_cipher
Represents a cipher that can be used in the crypto_engine. This meta object holds parameters for the ...
Definition: cipher.h:56
wickr_stream_iv_destroy
void wickr_stream_iv_destroy(wickr_stream_iv_t **iv)