From 93bbc1af6f16874dead72daf4e8328dc352c4592 Mon Sep 17 00:00:00 2001 From: Rhys Weatherley Date: Thu, 26 Apr 2018 06:56:28 +1000 Subject: [PATCH] Update docs --- AES128_8cpp_source.html | 2 +- AES192_8cpp_source.html | 2 +- AES256_8cpp_source.html | 2 +- AESCommon_8cpp_source.html | 2 +- AESEsp32_8cpp_source.html | 2 +- AES_8h_source.html | 2 +- Acorn128AVR_8cpp_source.html | 657 ++++++++++++++++++ Acorn128_8cpp_source.html | 699 ++++++++++++++++++++ Acorn128_8h_source.html | 203 ++++++ AuthenticatedCipher_8cpp_source.html | 2 +- AuthenticatedCipher_8h_source.html | 2 +- BLAKE2b_8cpp_source.html | 2 +- BLAKE2b_8h_source.html | 2 +- BLAKE2s_8cpp_source.html | 2 +- BLAKE2s_8h_source.html | 2 +- BigNumberUtil_8cpp_source.html | 2 +- BigNumberUtil_8h_source.html | 2 +- BlockCipher_8cpp_source.html | 2 +- BlockCipher_8h_source.html | 2 +- CBC_8cpp_source.html | 2 +- CBC_8h_source.html | 2 +- CFB_8cpp_source.html | 2 +- CFB_8h_source.html | 2 +- CTR_8cpp_source.html | 2 +- CTR_8h_source.html | 2 +- ChaChaPoly_8cpp_source.html | 2 +- ChaChaPoly_8h_source.html | 2 +- ChaCha_8cpp_source.html | 2 +- ChaCha_8h_source.html | 2 +- Cipher_8cpp_source.html | 2 +- Cipher_8h_source.html | 2 +- CryptoLW_8h_source.html | 127 ++++ Crypto_8cpp_source.html | 2 +- Crypto_8h_source.html | 2 +- Curve25519_8cpp_source.html | 2 +- Curve25519_8h_source.html | 2 +- EAX_8cpp_source.html | 2 +- EAX_8h_source.html | 2 +- Ed25519_8cpp_source.html | 2 +- Ed25519_8h_source.html | 2 +- GCM_8cpp_source.html | 368 +++++------ GCM_8h_source.html | 16 +- GF128_8cpp_source.html | 2 +- GF128_8h_source.html | 2 +- GHASH_8cpp_source.html | 2 +- GHASH_8h_source.html | 2 +- Hash_8cpp_source.html | 2 +- Hash_8h_source.html | 2 +- KeccakCore_8cpp_source.html | 2 +- KeccakCore_8h_source.html | 2 +- NewHope_8cpp_source.html | 2 +- NewHope_8h_source.html | 2 +- NoiseSource_8cpp_source.html | 2 +- NoiseSource_8h_source.html | 2 +- OFB_8cpp_source.html | 2 +- OFB_8h_source.html | 2 +- OMAC_8cpp_source.html | 2 +- OMAC_8h_source.html | 2 +- P521_8cpp_source.html | 2 +- P521_8h_source.html | 2 +- Poly1305_8cpp_source.html | 2 +- Poly1305_8h_source.html | 2 +- RNG_8cpp_source.html | 8 +- RNG_8h_source.html | 2 +- RingOscillatorNoiseSource_8cpp_source.html | 2 +- RingOscillatorNoiseSource_8h_source.html | 2 +- SHA256_8cpp_source.html | 2 +- SHA256_8h_source.html | 2 +- SHA3_8cpp_source.html | 2 +- SHA3_8h_source.html | 2 +- SHA512_8cpp_source.html | 2 +- SHA512_8h_source.html | 2 +- SHAKE_8cpp_source.html | 2 +- SHAKE_8h_source.html | 2 +- SpeckSmall_8cpp_source.html | 2 +- SpeckSmall_8h_source.html | 2 +- SpeckTiny_8cpp_source.html | 2 +- SpeckTiny_8h_source.html | 2 +- Speck_8cpp_source.html | 2 +- Speck_8h_source.html | 2 +- TransistorNoiseSource_8cpp_source.html | 2 +- TransistorNoiseSource_8h_source.html | 2 +- XOF_8cpp_source.html | 2 +- XOF_8h_source.html | 2 +- XTS_8cpp_source.html | 2 +- XTS_8h_source.html | 2 +- annotated.html | 119 ++-- classAES128-members.html | 2 +- classAES128.html | 2 +- classAES192-members.html | 2 +- classAES192.html | 2 +- classAES256-members.html | 2 +- classAES256.html | 2 +- classAESCommon-members.html | 2 +- classAESCommon.html | 2 +- classAESSmall128-members.html | 2 +- classAESSmall128.html | 2 +- classAESSmall256-members.html | 2 +- classAESSmall256.html | 2 +- classAESTiny128-members.html | 2 +- classAESTiny128.html | 2 +- classAESTiny256-members.html | 2 +- classAESTiny256.html | 2 +- classAcorn128-members.html | 117 ++++ classAcorn128.html | 643 ++++++++++++++++++ classAcorn128.png | Bin 0 -> 682 bytes classAuthenticatedCipher-members.html | 2 +- classAuthenticatedCipher.html | 23 +- classAuthenticatedCipher.png | Bin 1745 -> 2048 bytes classBLAKE2b-members.html | 2 +- classBLAKE2b.html | 2 +- classBLAKE2s-members.html | 2 +- classBLAKE2s.html | 2 +- classBigNumberUtil-members.html | 2 +- classBigNumberUtil.html | 2 +- classBlockCipher-members.html | 2 +- classBlockCipher.html | 2 +- classCBC-members.html | 2 +- classCBC.html | 2 +- classCBCCommon-members.html | 2 +- classCBCCommon.html | 2 +- classCFB-members.html | 2 +- classCFB.html | 2 +- classCFBCommon-members.html | 2 +- classCFBCommon.html | 2 +- classCTR-members.html | 2 +- classCTR.html | 2 +- classCTRCommon-members.html | 2 +- classCTRCommon.html | 2 +- classChaCha-members.html | 2 +- classChaCha.html | 2 +- classChaChaPoly-members.html | 2 +- classChaChaPoly.html | 2 +- classCipher-members.html | 2 +- classCipher.html | 45 +- classCipher.png | Bin 3557 -> 3973 bytes classCurve25519-members.html | 2 +- classCurve25519.html | 2 +- classEAX-members.html | 2 +- classEAX.html | 2 +- classEAXCommon-members.html | 2 +- classEAXCommon.html | 2 +- classEd25519-members.html | 2 +- classEd25519.html | 2 +- classGCM-members.html | 2 +- classGCM.html | 2 +- classGCMCommon-members.html | 2 +- classGCMCommon.html | 16 +- classGF128-members.html | 2 +- classGF128.html | 2 +- classGHASH-members.html | 2 +- classGHASH.html | 2 +- classHash-members.html | 2 +- classHash.html | 2 +- classKeccakCore-members.html | 2 +- classKeccakCore.html | 2 +- classNewHope-members.html | 2 +- classNewHope.html | 2 +- classNoiseSource-members.html | 2 +- classNoiseSource.html | 2 +- classOFB-members.html | 2 +- classOFB.html | 2 +- classOFBCommon-members.html | 2 +- classOFBCommon.html | 2 +- classOMAC-members.html | 2 +- classOMAC.html | 2 +- classP521-members.html | 2 +- classP521.html | 2 +- classPoly1305-members.html | 2 +- classPoly1305.html | 2 +- classRNGClass-members.html | 2 +- classRNGClass.html | 2 +- classRingOscillatorNoiseSource-members.html | 2 +- classRingOscillatorNoiseSource.html | 2 +- classSHA256-members.html | 2 +- classSHA256.html | 2 +- classSHA3__256-members.html | 2 +- classSHA3__256.html | 2 +- classSHA3__512-members.html | 2 +- classSHA3__512.html | 2 +- classSHA512-members.html | 2 +- classSHA512.html | 2 +- classSHAKE-members.html | 2 +- classSHAKE.html | 2 +- classSHAKE128-members.html | 2 +- classSHAKE128.html | 2 +- classSHAKE256-members.html | 2 +- classSHAKE256.html | 2 +- classSpeck-members.html | 2 +- classSpeck.html | 2 +- classSpeckSmall-members.html | 2 +- classSpeckSmall.html | 2 +- classSpeckTiny-members.html | 2 +- classSpeckTiny.html | 2 +- classTransistorNoiseSource-members.html | 2 +- classTransistorNoiseSource.html | 2 +- classXOF-members.html | 2 +- classXOF.html | 2 +- classXTS-members.html | 2 +- classXTS.html | 2 +- classXTSCommon-members.html | 2 +- classXTSCommon.html | 2 +- classXTSSingleKey-members.html | 2 +- classXTSSingleKey.html | 2 +- classXTSSingleKeyCommon-members.html | 2 +- classXTSSingleKeyCommon.html | 2 +- classes.html | 46 +- crypto-esp_8dox.html | 2 +- crypto-rng-ring_8dox.html | 2 +- crypto-rng_8dox.html | 2 +- crypto.html | 8 +- crypto_8dox.html | 2 +- crypto_esp.html | 2 +- crypto_rng.html | 2 +- crypto_rng_ring.html | 2 +- dir_3dd03323535933fb3f714c41ff7a94da.html | 2 +- dir_470c03f38356b1f63943514897cb198b.html | 2 +- dir_5317e98f2689b9014cdaec1c78a27590.html | 105 +++ dir_58d2f659e0f0f847cf173d02114010b9.html | 99 +++ dir_7e6ab9b017486261fe80629d442521f0.html | 2 +- dir_bc0718b08fb2015b8e59c47b2805f60c.html | 4 +- dir_e2ce51835550ba18edf07a8311722290.html | 2 +- files.html | 170 ++--- functions.html | 8 +- functions_b.html | 2 +- functions_c.html | 11 +- functions_d.html | 5 +- functions_e.html | 5 +- functions_enum.html | 2 +- functions_eval.html | 2 +- functions_f.html | 2 +- functions_func.html | 8 +- functions_func_b.html | 2 +- functions_func_c.html | 11 +- functions_func_d.html | 5 +- functions_func_e.html | 5 +- functions_func_f.html | 2 +- functions_func_g.html | 2 +- functions_func_h.html | 2 +- functions_func_i.html | 5 +- functions_func_k.html | 5 +- functions_func_l.html | 2 +- functions_func_m.html | 2 +- functions_func_n.html | 2 +- functions_func_o.html | 2 +- functions_func_p.html | 2 +- functions_func_r.html | 2 +- functions_func_s.html | 8 +- functions_func_t.html | 5 +- functions_func_u.html | 2 +- functions_func_v.html | 2 +- functions_func_x.html | 2 +- functions_func_~.html | 5 +- functions_g.html | 2 +- functions_h.html | 2 +- functions_i.html | 5 +- functions_k.html | 5 +- functions_l.html | 2 +- functions_m.html | 2 +- functions_n.html | 2 +- functions_o.html | 2 +- functions_p.html | 2 +- functions_r.html | 2 +- functions_s.html | 8 +- functions_t.html | 5 +- functions_u.html | 2 +- functions_v.html | 2 +- functions_vars.html | 2 +- functions_x.html | 2 +- functions_~.html | 5 +- hierarchy.html | 89 +-- index.html | 2 +- mainpage_8dox.html | 2 +- newhope-small_8dox.html | 2 +- newhope_small.html | 2 +- pages.html | 2 +- search/all_0.js | 3 +- search/all_10.js | 4 +- search/all_11.js | 2 +- search/all_15.js | 1 + search/all_2.js | 6 +- search/all_3.js | 2 +- search/all_4.js | 2 +- search/all_8.js | 2 +- search/all_9.js | 2 +- search/classes_0.js | 1 + search/functions_0.js | 3 +- search/functions_10.js | 4 +- search/functions_11.js | 2 +- search/functions_15.js | 1 + search/functions_2.js | 6 +- search/functions_3.js | 2 +- search/functions_4.js | 2 +- search/functions_8.js | 2 +- search/functions_9.js | 2 +- structNewHopePrivateKey.html | 2 +- 296 files changed, 3447 insertions(+), 750 deletions(-) create mode 100644 Acorn128AVR_8cpp_source.html create mode 100644 Acorn128_8cpp_source.html create mode 100644 Acorn128_8h_source.html create mode 100644 CryptoLW_8h_source.html create mode 100644 classAcorn128-members.html create mode 100644 classAcorn128.html create mode 100644 classAcorn128.png create mode 100644 dir_5317e98f2689b9014cdaec1c78a27590.html create mode 100644 dir_58d2f659e0f0f847cf173d02114010b9.html diff --git a/AES128_8cpp_source.html b/AES128_8cpp_source.html index fdac2209..c83346c6 100644 --- a/AES128_8cpp_source.html +++ b/AES128_8cpp_source.html @@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AES192_8cpp_source.html b/AES192_8cpp_source.html index 1f89934f..9ceb1cbb 100644 --- a/AES192_8cpp_source.html +++ b/AES192_8cpp_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AES256_8cpp_source.html b/AES256_8cpp_source.html index f09e1665..7dd9c0d3 100644 --- a/AES256_8cpp_source.html +++ b/AES256_8cpp_source.html @@ -421,7 +421,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AESCommon_8cpp_source.html b/AESCommon_8cpp_source.html index 06c0ae42..b7ad6d32 100644 --- a/AESCommon_8cpp_source.html +++ b/AESCommon_8cpp_source.html @@ -417,7 +417,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AESEsp32_8cpp_source.html b/AESEsp32_8cpp_source.html index 953e3835..1f05a00d 100644 --- a/AESEsp32_8cpp_source.html +++ b/AESEsp32_8cpp_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AES_8h_source.html b/AES_8h_source.html index 25376bde..27e54316 100644 --- a/AES_8h_source.html +++ b/AES_8h_source.html @@ -391,7 +391,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Acorn128AVR_8cpp_source.html b/Acorn128AVR_8cpp_source.html new file mode 100644 index 00000000..620d4c01 --- /dev/null +++ b/Acorn128AVR_8cpp_source.html @@ -0,0 +1,657 @@ + + + + + + +Arduino Cryptography Library: Acorn128AVR.cpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
Acorn128AVR.cpp
+
+
+
1 /*
+
2  * Copyright (C) 2018 Southern Storm Software, Pty Ltd.
+
3  *
+
4  * Permission is hereby granted, free of charge, to any person obtaining a
+
5  * copy of this software and associated documentation files (the "Software"),
+
6  * to deal in the Software without restriction, including without limitation
+
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+
8  * and/or sell copies of the Software, and to permit persons to whom the
+
9  * Software is furnished to do so, subject to the following conditions:
+
10  *
+
11  * The above copyright notice and this permission notice shall be included
+
12  * in all copies or substantial portions of the Software.
+
13  *
+
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+
20  * DEALINGS IN THE SOFTWARE.
+
21  */
+
22 
+
23 #include "Acorn128.h"
+
24 
+
25 #if defined(CRYPTO_ACORN128_AVR)
+
26 
+
27 // Acorn128 constants for ca and cb.
+
28 #define CA_0 ((uint32_t)0x00000000)
+
29 #define CA_1 ((uint32_t)0xFFFFFFFF)
+
30 #define CB_0 ((uint32_t)0x00000000)
+
31 #define CB_1 ((uint32_t)0xFFFFFFFF)
+
32 #define CA_0_BYTE ((uint8_t)0x00)
+
33 #define CA_1_BYTE ((uint8_t)0xFF)
+
34 #define CB_0_BYTE ((uint8_t)0x00)
+
35 #define CB_1_BYTE ((uint8_t)0xFF)
+
36 
+
37 // Imports from Acorn128.cpp
+
38 extern void acornPad(Acorn128State *state, uint32_t cb);
+
39 
+
40 // Force the acornEncrypt8() and acornDecrypt8() functions to always inline.
+
41 static uint8_t acornEncrypt8
+
42  (Acorn128State *state, uint8_t plaintext, uint8_t ca, uint8_t cb)
+
43  __attribute__((always_inline));
+
44 static uint8_t acornDecrypt8(Acorn128State *state, uint8_t ciphertext)
+
45  __attribute__((always_inline));
+
46 
+
47 static uint8_t acornEncrypt8
+
48  (Acorn128State *state, uint8_t plaintext, uint8_t ca, uint8_t cb)
+
49 {
+
50  // Automatically generated by the genacorn tool.
+
51  uint8_t ciphertext;
+
52  __asm__ __volatile__ (
+
53  "ldd r15,Z+34\n"
+
54  "ldd r14,Z+33\n"
+
55  "ldd r0,Z+32\n"
+
56  "lsl r0\n"
+
57  "rol r14\n"
+
58  "rol r15\n"
+
59  "lsl r0\n"
+
60  "rol r14\n"
+
61  "rol r15\n"
+
62  "lsl r0\n"
+
63  "rol r14\n"
+
64  "ldd r13,Z+28\n"
+
65  "ldd r0,Z+29\n"
+
66  "lsr r0\n"
+
67  "ror r13\n"
+
68  "lsr r0\n"
+
69  "ror r13\n"
+
70  "lsr r0\n"
+
71  "ror r13\n"
+
72  "ldd r0,Z+20\n"
+
73  "ldd r12,Z+21\n"
+
74  "lsl r0\n"
+
75  "rol r12\n"
+
76  "lsl r0\n"
+
77  "rol r12\n"
+
78  "ldd r16,Z+16\n"
+
79  "ldd r17,Z+17\n"
+
80  "swap r16\n"
+
81  "swap r17\n"
+
82  "andi r16,0x0F\n"
+
83  "andi r17,0xF0\n"
+
84  "or r16,r17\n"
+
85  "ldd r0,Z+8\n"
+
86  "ldd r11,Z+9\n"
+
87  "lsl r0\n"
+
88  "rol r11\n"
+
89  "lsl r0\n"
+
90  "rol r11\n"
+
91  "lsl r0\n"
+
92  "rol r11\n"
+
93  "ldd r10,Z+3\n"
+
94  "ldd r9,Z+2\n"
+
95  "ldd r0,Z+1\n"
+
96  "lsl r0\n"
+
97  "rol r9\n"
+
98  "rol r10\n"
+
99  "lsl r0\n"
+
100  "rol r9\n"
+
101  "lsl r0\n"
+
102  "rol r9\n"
+
103  "lsl r0\n"
+
104  "rol r9\n"
+
105  "ldd r8,Z+40\n"
+
106  "eor r8,r14\n"
+
107  "ldd r7,Z+32\n"
+
108  "eor r8,r7\n"
+
109  "eor r7,r13\n"
+
110  "ldd r6,Z+28\n"
+
111  "eor r7,r6\n"
+
112  "eor r6,r12\n"
+
113  "ldd r23,Z+20\n"
+
114  "eor r6,r23\n"
+
115  "eor r23,r16\n"
+
116  "ldd r22,Z+16\n"
+
117  "eor r23,r22\n"
+
118  "eor r22,r11\n"
+
119  "ldd r21,Z+8\n"
+
120  "eor r22,r21\n"
+
121  "eor r21,r10\n"
+
122  "ld r20,Z\n"
+
123  "eor r21,r20\n"
+
124  "eor r9,r23\n"
+
125  "mov r0,r14\n"
+
126  "and r0,r21\n"
+
127  "eor r9,r0\n"
+
128  "and r14,r6\n"
+
129  "eor r9,r14\n"
+
130  "mov r0,r21\n"
+
131  "and r0,r6\n"
+
132  "eor r9,r0\n"
+
133  "and r16,r7\n"
+
134  "eor r9,r16\n"
+
135  "mov r0,r7\n"
+
136  "com r0\n"
+
137  "and r11,r0\n"
+
138  "eor r9,r11\n"
+
139  "mov r16,r22\n"
+
140  "com r16\n"
+
141  "eor r16,r20\n"
+
142  "mov r0,r15\n"
+
143  "and r0,r10\n"
+
144  "eor r16,r0\n"
+
145  "and r10,r12\n"
+
146  "eor r16,r10\n"
+
147  "and r15,r12\n"
+
148  "eor r16,r15\n"
+
149  "and r13,%3\n"
+
150  "eor r16,r13\n"
+
151  "mov r0,r9\n"
+
152  "and r0,%4\n"
+
153  "eor r16,r0\n"
+
154  "eor r16,%2\n"
+
155  "swap r16\n"
+
156  "mov r17,r16\n"
+
157  "andi r17,0xF0\n"
+
158  "eor r8,r17\n"
+
159  "andi r16,0x0F\n"
+
160  "std Z+40,r16\n"
+
161  "ldd r0,Z+33\n"
+
162  "std Z+32,r0\n"
+
163  "ldd r0,Z+34\n"
+
164  "std Z+33,r0\n"
+
165  "ldd r0,Z+35\n"
+
166  "std Z+34,r0\n"
+
167  "ldd r0,Z+36\n"
+
168  "std Z+35,r0\n"
+
169  "ldd r0,Z+37\n"
+
170  "std Z+36,r0\n"
+
171  "ldd r0,Z+38\n"
+
172  "std Z+37,r0\n"
+
173  "ldd r0,Z+39\n"
+
174  "clr r15\n"
+
175  "lsl r8\n"
+
176  "rol r15\n"
+
177  "lsl r8\n"
+
178  "rol r15\n"
+
179  "lsl r8\n"
+
180  "rol r15\n"
+
181  "or r0,r8\n"
+
182  "std Z+38,r0\n"
+
183  "std Z+39,r15\n"
+
184  "ldd r0,Z+29\n"
+
185  "std Z+28,r0\n"
+
186  "ldd r0,Z+30\n"
+
187  "std Z+29,r0\n"
+
188  "ldd r0,Z+31\n"
+
189  "std Z+30,r0\n"
+
190  "ldd r0,Z+26\n"
+
191  "clr r15\n"
+
192  "lsr r7\n"
+
193  "ror r15\n"
+
194  "lsr r7\n"
+
195  "ror r15\n"
+
196  "lsr r7\n"
+
197  "ror r15\n"
+
198  "or r0,r15\n"
+
199  "std Z+31,r0\n"
+
200  "std Z+26,r7\n"
+
201  "ldd r0,Z+21\n"
+
202  "std Z+20,r0\n"
+
203  "ldd r0,Z+22\n"
+
204  "std Z+21,r0\n"
+
205  "ldd r0,Z+23\n"
+
206  "std Z+22,r0\n"
+
207  "ldd r0,Z+24\n"
+
208  "clr r15\n"
+
209  "lsr r6\n"
+
210  "ror r15\n"
+
211  "or r0,r15\n"
+
212  "std Z+23,r0\n"
+
213  "std Z+24,r6\n"
+
214  "ldd r0,Z+17\n"
+
215  "std Z+16,r0\n"
+
216  "ldd r0,Z+18\n"
+
217  "std Z+17,r0\n"
+
218  "ldd r0,Z+19\n"
+
219  "std Z+18,r0\n"
+
220  "ldd r0,Z+14\n"
+
221  "std Z+19,r0\n"
+
222  "ldd r0,Z+15\n"
+
223  "clr r15\n"
+
224  "lsr r23\n"
+
225  "ror r15\n"
+
226  "or r0,r15\n"
+
227  "std Z+14,r0\n"
+
228  "std Z+15,r23\n"
+
229  "ldd r0,Z+9\n"
+
230  "std Z+8,r0\n"
+
231  "ldd r0,Z+10\n"
+
232  "std Z+9,r0\n"
+
233  "ldd r0,Z+11\n"
+
234  "std Z+10,r0\n"
+
235  "ldd r0,Z+12\n"
+
236  "std Z+11,r0\n"
+
237  "ldd r0,Z+13\n"
+
238  "clr r15\n"
+
239  "lsr r22\n"
+
240  "ror r15\n"
+
241  "lsr r22\n"
+
242  "ror r15\n"
+
243  "or r0,r15\n"
+
244  "std Z+12,r0\n"
+
245  "std Z+13,r22\n"
+
246  "ldd r0,Z+1\n"
+
247  "st Z,r0\n"
+
248  "ldd r0,Z+2\n"
+
249  "std Z+1,r0\n"
+
250  "ldd r0,Z+3\n"
+
251  "std Z+2,r0\n"
+
252  "ldd r0,Z+4\n"
+
253  "std Z+3,r0\n"
+
254  "ldd r0,Z+5\n"
+
255  "std Z+4,r0\n"
+
256  "ldd r0,Z+6\n"
+
257  "std Z+5,r0\n"
+
258  "ldd r0,Z+7\n"
+
259  "clr r15\n"
+
260  "lsr r21\n"
+
261  "ror r15\n"
+
262  "lsr r21\n"
+
263  "ror r15\n"
+
264  "lsr r21\n"
+
265  "ror r15\n"
+
266  "or r0,r15\n"
+
267  "std Z+6,r0\n"
+
268  "std Z+7,r21\n"
+
269  "mov %0,%2\n"
+
270  "eor %0,r9\n"
+
271  : "=r"(ciphertext)
+
272  : "z"(&state->s1_l), "r"(plaintext), "r"((uint8_t)ca), "r"((uint8_t)cb)
+
273  : "r16", "r17", "r20", "r21", "r22", "r23", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "memory"
+
274  );
+
275  return ciphertext;
+
276 }
+
277 
+
278 static uint8_t acornDecrypt8(Acorn128State *state, uint8_t ciphertext)
+
279 {
+
280  // Automatically generated by the genacorn tool.
+
281  uint8_t plaintext;
+
282  __asm__ __volatile__ (
+
283  "ldd r15,Z+34\n"
+
284  "ldd r14,Z+33\n"
+
285  "ldd r0,Z+32\n"
+
286  "lsl r0\n"
+
287  "rol r14\n"
+
288  "rol r15\n"
+
289  "lsl r0\n"
+
290  "rol r14\n"
+
291  "rol r15\n"
+
292  "lsl r0\n"
+
293  "rol r14\n"
+
294  "ldd r13,Z+28\n"
+
295  "ldd r0,Z+29\n"
+
296  "lsr r0\n"
+
297  "ror r13\n"
+
298  "lsr r0\n"
+
299  "ror r13\n"
+
300  "lsr r0\n"
+
301  "ror r13\n"
+
302  "ldd r0,Z+20\n"
+
303  "ldd r12,Z+21\n"
+
304  "lsl r0\n"
+
305  "rol r12\n"
+
306  "lsl r0\n"
+
307  "rol r12\n"
+
308  "ldd r16,Z+16\n"
+
309  "ldd r17,Z+17\n"
+
310  "swap r16\n"
+
311  "swap r17\n"
+
312  "andi r16,0x0F\n"
+
313  "andi r17,0xF0\n"
+
314  "or r16,r17\n"
+
315  "ldd r0,Z+8\n"
+
316  "ldd r11,Z+9\n"
+
317  "lsl r0\n"
+
318  "rol r11\n"
+
319  "lsl r0\n"
+
320  "rol r11\n"
+
321  "lsl r0\n"
+
322  "rol r11\n"
+
323  "ldd r10,Z+3\n"
+
324  "ldd r9,Z+2\n"
+
325  "ldd r0,Z+1\n"
+
326  "lsl r0\n"
+
327  "rol r9\n"
+
328  "rol r10\n"
+
329  "lsl r0\n"
+
330  "rol r9\n"
+
331  "lsl r0\n"
+
332  "rol r9\n"
+
333  "lsl r0\n"
+
334  "rol r9\n"
+
335  "ldd r8,Z+40\n"
+
336  "eor r8,r14\n"
+
337  "ldd r7,Z+32\n"
+
338  "eor r8,r7\n"
+
339  "eor r7,r13\n"
+
340  "ldd r6,Z+28\n"
+
341  "eor r7,r6\n"
+
342  "eor r6,r12\n"
+
343  "ldd r23,Z+20\n"
+
344  "eor r6,r23\n"
+
345  "eor r23,r16\n"
+
346  "ldd r22,Z+16\n"
+
347  "eor r23,r22\n"
+
348  "eor r22,r11\n"
+
349  "ldd r21,Z+8\n"
+
350  "eor r22,r21\n"
+
351  "eor r21,r10\n"
+
352  "ld r20,Z\n"
+
353  "eor r21,r20\n"
+
354  "eor r9,r23\n"
+
355  "mov r0,r14\n"
+
356  "and r0,r21\n"
+
357  "eor r9,r0\n"
+
358  "and r14,r6\n"
+
359  "eor r9,r14\n"
+
360  "mov r0,r21\n"
+
361  "and r0,r6\n"
+
362  "eor r9,r0\n"
+
363  "and r16,r7\n"
+
364  "eor r9,r16\n"
+
365  "mov r0,r7\n"
+
366  "com r0\n"
+
367  "and r11,r0\n"
+
368  "eor r9,r11\n"
+
369  "mov r16,r22\n"
+
370  "com r16\n"
+
371  "eor r16,r20\n"
+
372  "mov r0,r15\n"
+
373  "and r0,r10\n"
+
374  "eor r16,r0\n"
+
375  "and r10,r12\n"
+
376  "eor r16,r10\n"
+
377  "and r15,r12\n"
+
378  "eor r16,r15\n"
+
379  "eor r16,r13\n"
+
380  "eor r9,%2\n"
+
381  "eor r16,r9\n"
+
382  "swap r16\n"
+
383  "mov r17,r16\n"
+
384  "andi r17,0xF0\n"
+
385  "eor r8,r17\n"
+
386  "andi r16,0x0F\n"
+
387  "std Z+40,r16\n"
+
388  "ldd r0,Z+33\n"
+
389  "std Z+32,r0\n"
+
390  "ldd r0,Z+34\n"
+
391  "std Z+33,r0\n"
+
392  "ldd r0,Z+35\n"
+
393  "std Z+34,r0\n"
+
394  "ldd r0,Z+36\n"
+
395  "std Z+35,r0\n"
+
396  "ldd r0,Z+37\n"
+
397  "std Z+36,r0\n"
+
398  "ldd r0,Z+38\n"
+
399  "std Z+37,r0\n"
+
400  "ldd r0,Z+39\n"
+
401  "clr r15\n"
+
402  "lsl r8\n"
+
403  "rol r15\n"
+
404  "lsl r8\n"
+
405  "rol r15\n"
+
406  "lsl r8\n"
+
407  "rol r15\n"
+
408  "or r0,r8\n"
+
409  "std Z+38,r0\n"
+
410  "std Z+39,r15\n"
+
411  "ldd r0,Z+29\n"
+
412  "std Z+28,r0\n"
+
413  "ldd r0,Z+30\n"
+
414  "std Z+29,r0\n"
+
415  "ldd r0,Z+31\n"
+
416  "std Z+30,r0\n"
+
417  "ldd r0,Z+26\n"
+
418  "clr r15\n"
+
419  "lsr r7\n"
+
420  "ror r15\n"
+
421  "lsr r7\n"
+
422  "ror r15\n"
+
423  "lsr r7\n"
+
424  "ror r15\n"
+
425  "or r0,r15\n"
+
426  "std Z+31,r0\n"
+
427  "std Z+26,r7\n"
+
428  "ldd r0,Z+21\n"
+
429  "std Z+20,r0\n"
+
430  "ldd r0,Z+22\n"
+
431  "std Z+21,r0\n"
+
432  "ldd r0,Z+23\n"
+
433  "std Z+22,r0\n"
+
434  "ldd r0,Z+24\n"
+
435  "clr r15\n"
+
436  "lsr r6\n"
+
437  "ror r15\n"
+
438  "or r0,r15\n"
+
439  "std Z+23,r0\n"
+
440  "std Z+24,r6\n"
+
441  "ldd r0,Z+17\n"
+
442  "std Z+16,r0\n"
+
443  "ldd r0,Z+18\n"
+
444  "std Z+17,r0\n"
+
445  "ldd r0,Z+19\n"
+
446  "std Z+18,r0\n"
+
447  "ldd r0,Z+14\n"
+
448  "std Z+19,r0\n"
+
449  "ldd r0,Z+15\n"
+
450  "clr r15\n"
+
451  "lsr r23\n"
+
452  "ror r15\n"
+
453  "or r0,r15\n"
+
454  "std Z+14,r0\n"
+
455  "std Z+15,r23\n"
+
456  "ldd r0,Z+9\n"
+
457  "std Z+8,r0\n"
+
458  "ldd r0,Z+10\n"
+
459  "std Z+9,r0\n"
+
460  "ldd r0,Z+11\n"
+
461  "std Z+10,r0\n"
+
462  "ldd r0,Z+12\n"
+
463  "std Z+11,r0\n"
+
464  "ldd r0,Z+13\n"
+
465  "clr r15\n"
+
466  "lsr r22\n"
+
467  "ror r15\n"
+
468  "lsr r22\n"
+
469  "ror r15\n"
+
470  "or r0,r15\n"
+
471  "std Z+12,r0\n"
+
472  "std Z+13,r22\n"
+
473  "ldd r0,Z+1\n"
+
474  "st Z,r0\n"
+
475  "ldd r0,Z+2\n"
+
476  "std Z+1,r0\n"
+
477  "ldd r0,Z+3\n"
+
478  "std Z+2,r0\n"
+
479  "ldd r0,Z+4\n"
+
480  "std Z+3,r0\n"
+
481  "ldd r0,Z+5\n"
+
482  "std Z+4,r0\n"
+
483  "ldd r0,Z+6\n"
+
484  "std Z+5,r0\n"
+
485  "ldd r0,Z+7\n"
+
486  "clr r15\n"
+
487  "lsr r21\n"
+
488  "ror r15\n"
+
489  "lsr r21\n"
+
490  "ror r15\n"
+
491  "lsr r21\n"
+
492  "ror r15\n"
+
493  "or r0,r15\n"
+
494  "std Z+6,r0\n"
+
495  "std Z+7,r21\n"
+
496  "mov %0,r9\n"
+
497  : "=r"(plaintext)
+
498  : "z"(&state->s1_l), "r"(ciphertext)
+
499  : "r16", "r17", "r20", "r21", "r22", "r23", "r6", "r7", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "memory"
+
500  );
+
501  return plaintext;
+
502 }
+
503 
+
504 uint32_t acornEncrypt32
+
505  (Acorn128State *state, uint32_t plaintext, uint32_t ca, uint32_t cb)
+
506 {
+
507  uint32_t ciphertext;
+
508  ciphertext = acornEncrypt8
+
509  (state, (uint8_t)plaintext, (uint8_t)ca, (uint8_t)cb);
+
510  ciphertext |= ((uint32_t)(acornEncrypt8
+
511  (state, (uint8_t)(plaintext >> 8), (uint8_t)ca, (uint8_t)cb))) << 8;
+
512  ciphertext |= ((uint32_t)(acornEncrypt8
+
513  (state, (uint8_t)(plaintext >> 16), (uint8_t)ca, (uint8_t)cb))) << 16;
+
514  ciphertext |= ((uint32_t)(acornEncrypt8
+
515  (state, (uint8_t)(plaintext >> 24), (uint8_t)ca, (uint8_t)cb))) << 24;
+
516  return ciphertext;
+
517 }
+
518 
+
519 void Acorn128::encrypt(uint8_t *output, const uint8_t *input, size_t len)
+
520 {
+
521  uint32_t temp;
+
522  if (!state.authDone) {
+
523  acornPad(&state, CB_1);
+
524  state.authDone = 1;
+
525  }
+
526  while (len > 0) {
+
527  *output++ = acornEncrypt8(&state, *input++, CA_1_BYTE, CB_0_BYTE);
+
528  --len;
+
529  }
+
530 }
+
531 
+
532 void Acorn128::decrypt(uint8_t *output, const uint8_t *input, size_t len)
+
533 {
+
534  uint32_t temp;
+
535  if (!state.authDone) {
+
536  acornPad(&state, CB_1);
+
537  state.authDone = 1;
+
538  }
+
539  while (len > 0) {
+
540  *output++ = acornDecrypt8(&state, *input++);
+
541  --len;
+
542  }
+
543 }
+
544 
+
545 void Acorn128::addAuthData(const void *data, size_t len)
+
546 {
+
547  if (state.authDone)
+
548  return;
+
549  const uint8_t *input = (const uint8_t *)data;
+
550  while (len > 0) {
+
551  acornEncrypt8(&state, *input++, CA_1_BYTE, CB_1_BYTE);
+
552  --len;
+
553  }
+
554 }
+
555 
+
556 #endif // CRYPTO_ACORN128_AVR
+
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: Acorn128.cpp:554
+
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: Acorn128.cpp:581
+
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: Acorn128.cpp:608
+
+ + + + diff --git a/Acorn128_8cpp_source.html b/Acorn128_8cpp_source.html new file mode 100644 index 00000000..86b0fd1f --- /dev/null +++ b/Acorn128_8cpp_source.html @@ -0,0 +1,699 @@ + + + + + + +Arduino Cryptography Library: Acorn128.cpp Source File + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
Acorn128.cpp
+
+
+
1 /*
+
2  * Copyright (C) 2018 Southern Storm Software, Pty Ltd.
+
3  *
+
4  * Permission is hereby granted, free of charge, to any person obtaining a
+
5  * copy of this software and associated documentation files (the "Software"),
+
6  * to deal in the Software without restriction, including without limitation
+
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+
8  * and/or sell copies of the Software, and to permit persons to whom the
+
9  * Software is furnished to do so, subject to the following conditions:
+
10  *
+
11  * The above copyright notice and this permission notice shall be included
+
12  * in all copies or substantial portions of the Software.
+
13  *
+
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+
20  * DEALINGS IN THE SOFTWARE.
+
21  */
+
22 
+
23 #include "Acorn128.h"
+
24 #include "Crypto.h"
+
25 #include "utility/EndianUtil.h"
+
26 #include <string.h>
+
27 
+ +
47 {
+
48  state.authDone = 0;
+
49 }
+
50 
+ +
55 {
+
56  clean(state);
+
57 }
+
58 
+
64 size_t Acorn128::keySize() const
+
65 {
+
66  return 16;
+
67 }
+
68 
+
77 size_t Acorn128::ivSize() const
+
78 {
+
79  return 16;
+
80 }
+
81 
+
87 size_t Acorn128::tagSize() const
+
88 {
+
89  return 16;
+
90 }
+
91 
+
92 // Acorn128 constants for ca and cb.
+
93 #define CA_0 ((uint32_t)0x00000000)
+
94 #define CA_1 ((uint32_t)0xFFFFFFFF)
+
95 #define CB_0 ((uint32_t)0x00000000)
+
96 #define CB_1 ((uint32_t)0xFFFFFFFF)
+
97 #define CA_0_BYTE ((uint8_t)0x00)
+
98 #define CA_1_BYTE ((uint8_t)0xFF)
+
99 #define CB_0_BYTE ((uint8_t)0x00)
+
100 #define CB_1_BYTE ((uint8_t)0xFF)
+
101 
+
102 #if defined(CRYPTO_ACORN128_DEFAULT) || defined(CRYPTO_DOC)
+
103 
+
104 // maj() and ch() functions for mixing the state.
+
105 #define maj(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
+
106 #define ch(x, y, z) (((x) & (y)) ^ ((~(x)) & (z)))
+
107 
+
118 static uint8_t acornEncrypt8
+
119  (Acorn128State *state, uint8_t plaintext, uint8_t ca, uint8_t cb)
+
120 {
+
121  // Extract out various sub-parts of the state as 8-bit bytes.
+
122  #define s_extract_8(name, shift) \
+
123  ((uint8_t)(state->name##_l >> (shift)))
+
124  uint8_t s244 = s_extract_8(s6, 14);
+
125  uint8_t s235 = s_extract_8(s6, 5);
+
126  uint8_t s196 = s_extract_8(s5, 3);
+
127  uint8_t s160 = s_extract_8(s4, 6);
+
128  uint8_t s111 = s_extract_8(s3, 4);
+
129  uint8_t s66 = s_extract_8(s2, 5);
+
130  uint8_t s23 = s_extract_8(s1, 23);
+
131  uint8_t s12 = s_extract_8(s1, 12);
+
132 
+
133  // Update the LFSR's.
+
134  uint8_t s7_l = state->s7 ^ s235 ^ state->s6_l;
+
135  state->s6_l ^= s196 ^ ((uint8_t)(state->s5_l));
+
136  state->s5_l ^= s160 ^ ((uint8_t)(state->s4_l));
+
137  state->s4_l ^= s111 ^ ((uint8_t)(state->s3_l));
+
138  state->s3_l ^= s66 ^ ((uint8_t)(state->s2_l));
+
139  state->s2_l ^= s23 ^ ((uint8_t)(state->s1_l));
+
140 
+
141  // Generate the next 8 keystream bits.
+
142  // k = S[12] ^ S[154] ^ maj(S[235], S[61], S[193])
+
143  // ^ ch(S[230], S[111], S[66])
+
144  uint8_t ks = s12 ^ state->s4_l ^
+
145  maj(s235, state->s2_l, state->s5_l) ^
+
146  ch(state->s6_l, s111, s66);
+
147 
+
148  // Generate the next 8 non-linear feedback bits.
+
149  // f = S[0] ^ ~S[107] ^ maj(S[244], S[23], S[160])
+
150  // ^ (ca & S[196]) ^ (cb & ks)
+
151  // f ^= plaintext
+
152  uint8_t f = state->s1_l ^ (~state->s3_l) ^
+
153  maj(s244, s23, s160) ^ (ca & s196) ^ (cb & ks);
+
154  f ^= plaintext;
+
155 
+
156  // Shift the state downwards by 8 bits.
+
157  #define s_shift_8(name1, name2, shift) \
+
158  (state->name1##_l = (state->name1##_l >> 8) | \
+
159  (((uint32_t)(state->name1##_h)) << 24), \
+
160  state->name1##_h = (state->name1##_h >> 8) | \
+
161  ((state->name2##_l & 0xFF) << ((shift) - 40)))
+
162  #define s_shift_8_mixed(name1, name2, shift) \
+
163  (state->name1##_l = (state->name1##_l >> 8) | \
+
164  (((uint32_t)(state->name1##_h)) << 24) | \
+
165  (state->name2##_l << ((shift) - 8)), \
+
166  state->name1##_h = ((state->name2##_l & 0xFF) >> (40 - (shift))))
+
167  s7_l ^= (f << 4);
+
168  state->s7 = f >> 4;
+
169  s_shift_8(s1, s2, 61);
+
170  s_shift_8(s2, s3, 46);
+
171  s_shift_8(s3, s4, 47);
+
172  s_shift_8_mixed(s4, s5, 39);
+
173  s_shift_8_mixed(s5, s6, 37);
+
174  state->s6_l = (state->s6_l >> 8) | (state->s6_h << 24);
+
175  state->s6_h = (state->s6_h >> 8) | (((uint32_t)s7_l) << 19);
+
176 
+
177  // Return the ciphertext byte to the caller.
+
178  return plaintext ^ ks;
+
179 }
+
180 
+
191 static uint32_t acornEncrypt32
+
192  (Acorn128State *state, uint32_t plaintext, uint32_t ca, uint32_t cb)
+
193 {
+
194  // Extract out various sub-parts of the state as 32-bit words.
+
195  #define s_extract_32(name, shift) \
+
196  ((state->name##_l >> (shift)) | \
+
197  (((uint32_t)(state->name##_h)) << (32 - (shift))))
+
198  uint32_t s244 = s_extract_32(s6, 14);
+
199  uint32_t s235 = s_extract_32(s6, 5);
+
200  uint32_t s196 = s_extract_32(s5, 3);
+
201  uint32_t s160 = s_extract_32(s4, 6);
+
202  uint32_t s111 = s_extract_32(s3, 4);
+
203  uint32_t s66 = s_extract_32(s2, 5);
+
204  uint32_t s23 = s_extract_32(s1, 23);
+
205  uint32_t s12 = s_extract_32(s1, 12);
+
206 
+
207  // Update the LFSR's.
+
208  uint32_t s7_l = state->s7 ^ s235 ^ state->s6_l;
+
209  state->s6_l ^= s196 ^ state->s5_l;
+
210  state->s5_l ^= s160 ^ state->s4_l;
+
211  state->s4_l ^= s111 ^ state->s3_l;
+
212  state->s3_l ^= s66 ^ state->s2_l;
+
213  state->s2_l ^= s23 ^ state->s1_l;
+
214 
+
215  // Generate the next 32 keystream bits.
+
216  // k = S[12] ^ S[154] ^ maj(S[235], S[61], S[193])
+
217  // ^ ch(S[230], S[111], S[66])
+
218  uint32_t ks = s12 ^ state->s4_l ^
+
219  maj(s235, state->s2_l, state->s5_l) ^
+
220  ch(state->s6_l, s111, s66);
+
221 
+
222  // Generate the next 32 non-linear feedback bits.
+
223  // f = S[0] ^ ~S[107] ^ maj(S[244], S[23], S[160])
+
224  // ^ (ca & S[196]) ^ (cb & ks)
+
225  // f ^= plaintext
+
226  uint32_t f = state->s1_l ^ (~state->s3_l) ^
+
227  maj(s244, s23, s160) ^ (ca & s196) ^ (cb & ks);
+
228  f ^= plaintext;
+
229 
+
230  // Shift the state downwards by 32 bits.
+
231  #define s_shift_32(name1, name2, shift) \
+
232  (state->name1##_l = state->name1##_h | (state->name2##_l << (shift)), \
+
233  state->name1##_h = (state->name2##_l >> (32 - (shift))))
+
234  s7_l ^= (f << 4);
+
235  state->s7 = (uint8_t)(f >> 28);
+
236  s_shift_32(s1, s2, 29);
+
237  s_shift_32(s2, s3, 14);
+
238  s_shift_32(s3, s4, 15);
+
239  s_shift_32(s4, s5, 7);
+
240  s_shift_32(s5, s6, 5);
+
241  state->s6_l = state->s6_h | (s7_l << 27);
+
242  state->s6_h = s7_l >> 5;
+
243 
+
244  // Return the ciphertext word to the caller.
+
245  return plaintext ^ ks;
+
246 }
+
247 
+
258 static inline uint32_t acornEncrypt32Fast
+
259  (Acorn128State *state, uint32_t plaintext)
+
260 {
+
261  // Extract out various sub-parts of the state as 32-bit words.
+
262  #define s_extract_32(name, shift) \
+
263  ((state->name##_l >> (shift)) | \
+
264  (((uint32_t)(state->name##_h)) << (32 - (shift))))
+
265  uint32_t s244 = s_extract_32(s6, 14);
+
266  uint32_t s235 = s_extract_32(s6, 5);
+
267  uint32_t s196 = s_extract_32(s5, 3);
+
268  uint32_t s160 = s_extract_32(s4, 6);
+
269  uint32_t s111 = s_extract_32(s3, 4);
+
270  uint32_t s66 = s_extract_32(s2, 5);
+
271  uint32_t s23 = s_extract_32(s1, 23);
+
272  uint32_t s12 = s_extract_32(s1, 12);
+
273 
+
274  // Update the LFSR's.
+
275  uint32_t s7_l = state->s7 ^ s235 ^ state->s6_l;
+
276  state->s6_l ^= s196 ^ state->s5_l;
+
277  state->s5_l ^= s160 ^ state->s4_l;
+
278  state->s4_l ^= s111 ^ state->s3_l;
+
279  state->s3_l ^= s66 ^ state->s2_l;
+
280  state->s2_l ^= s23 ^ state->s1_l;
+
281 
+
282  // Generate the next 32 keystream bits.
+
283  // k = S[12] ^ S[154] ^ maj(S[235], S[61], S[193])
+
284  // ^ ch(S[230], S[111], S[66])
+
285  uint32_t ks = s12 ^ state->s4_l ^
+
286  maj(s235, state->s2_l, state->s5_l) ^
+
287  ch(state->s6_l, s111, s66);
+
288 
+
289  // Generate the next 32 non-linear feedback bits.
+
290  // f = S[0] ^ ~S[107] ^ maj(S[244], S[23], S[160])
+
291  // ^ (ca & S[196]) ^ (cb & ks)
+
292  // f ^= plaintext
+
293  // Note: ca will always be 1 and cb will always be 0.
+
294  uint32_t f = state->s1_l ^ (~state->s3_l) ^ maj(s244, s23, s160) ^ s196;
+
295  f ^= plaintext;
+
296 
+
297  // Shift the state downwards by 32 bits.
+
298  #define s_shift_32(name1, name2, shift) \
+
299  (state->name1##_l = state->name1##_h | (state->name2##_l << (shift)), \
+
300  state->name1##_h = (state->name2##_l >> (32 - (shift))))
+
301  s7_l ^= (f << 4);
+
302  state->s7 = (uint8_t)(f >> 28);
+
303  s_shift_32(s1, s2, 29);
+
304  s_shift_32(s2, s3, 14);
+
305  s_shift_32(s3, s4, 15);
+
306  s_shift_32(s4, s5, 7);
+
307  s_shift_32(s5, s6, 5);
+
308  state->s6_l = state->s6_h | (s7_l << 27);
+
309  state->s6_h = s7_l >> 5;
+
310 
+
311  // Return the ciphertext word to the caller.
+
312  return plaintext ^ ks;
+
313 }
+
314 
+
323 static inline uint8_t acornDecrypt8(Acorn128State *state, uint8_t ciphertext)
+
324 {
+
325  // Extract out various sub-parts of the state as 8-bit bytes.
+
326  #define s_extract_8(name, shift) \
+
327  ((uint8_t)(state->name##_l >> (shift)))
+
328  uint8_t s244 = s_extract_8(s6, 14);
+
329  uint8_t s235 = s_extract_8(s6, 5);
+
330  uint8_t s196 = s_extract_8(s5, 3);
+
331  uint8_t s160 = s_extract_8(s4, 6);
+
332  uint8_t s111 = s_extract_8(s3, 4);
+
333  uint8_t s66 = s_extract_8(s2, 5);
+
334  uint8_t s23 = s_extract_8(s1, 23);
+
335  uint8_t s12 = s_extract_8(s1, 12);
+
336 
+
337  // Update the LFSR's.
+
338  uint8_t s7_l = state->s7 ^ s235 ^ state->s6_l;
+
339  state->s6_l ^= s196 ^ ((uint8_t)(state->s5_l));
+
340  state->s5_l ^= s160 ^ ((uint8_t)(state->s4_l));
+
341  state->s4_l ^= s111 ^ ((uint8_t)(state->s3_l));
+
342  state->s3_l ^= s66 ^ ((uint8_t)(state->s2_l));
+
343  state->s2_l ^= s23 ^ ((uint8_t)(state->s1_l));
+
344 
+
345  // Generate the next 8 keystream bits and decrypt the ciphertext.
+
346  // k = S[12] ^ S[154] ^ maj(S[235], S[61], S[193])
+
347  // ^ ch(S[230], S[111], S[66])
+
348  uint8_t ks = s12 ^ state->s4_l ^
+
349  maj(s235, state->s2_l, state->s5_l) ^
+
350  ch(state->s6_l, s111, s66);
+
351  uint8_t plaintext = ciphertext ^ ks;
+
352 
+
353  // Generate the next 8 non-linear feedback bits.
+
354  // f = S[0] ^ ~S[107] ^ maj(S[244], S[23], S[160])
+
355  // ^ (ca & S[196]) ^ (cb & ks)
+
356  // f ^= plaintext
+
357  // Note: ca will always be 1 and cb will always be 0.
+
358  uint8_t f = state->s1_l ^ (~state->s3_l) ^ maj(s244, s23, s160) ^ s196;
+
359  f ^= plaintext;
+
360 
+
361  // Shift the state downwards by 8 bits.
+
362  #define s_shift_8(name1, name2, shift) \
+
363  (state->name1##_l = (state->name1##_l >> 8) | \
+
364  (((uint32_t)(state->name1##_h)) << 24), \
+
365  state->name1##_h = (state->name1##_h >> 8) | \
+
366  ((state->name2##_l & 0xFF) << ((shift) - 40)))
+
367  #define s_shift_8_mixed(name1, name2, shift) \
+
368  (state->name1##_l = (state->name1##_l >> 8) | \
+
369  (((uint32_t)(state->name1##_h)) << 24) | \
+
370  (state->name2##_l << ((shift) - 8)), \
+
371  state->name1##_h = ((state->name2##_l & 0xFF) >> (40 - (shift))))
+
372  s7_l ^= (f << 4);
+
373  state->s7 = f >> 4;
+
374  s_shift_8(s1, s2, 61);
+
375  s_shift_8(s2, s3, 46);
+
376  s_shift_8(s3, s4, 47);
+
377  s_shift_8_mixed(s4, s5, 39);
+
378  s_shift_8_mixed(s5, s6, 37);
+
379  state->s6_l = (state->s6_l >> 8) | (state->s6_h << 24);
+
380  state->s6_h = (state->s6_h >> 8) | (((uint32_t)s7_l) << 19);
+
381 
+
382  // Return the plaintext byte to the caller.
+
383  return plaintext;
+
384 }
+
385 
+
394 static inline uint32_t acornDecrypt32(Acorn128State *state, uint32_t ciphertext)
+
395 {
+
396  // Extract out various sub-parts of the state as 32-bit words.
+
397  #define s_extract_32(name, shift) \
+
398  ((state->name##_l >> (shift)) | \
+
399  (((uint32_t)(state->name##_h)) << (32 - (shift))))
+
400  uint32_t s244 = s_extract_32(s6, 14);
+
401  uint32_t s235 = s_extract_32(s6, 5);
+
402  uint32_t s196 = s_extract_32(s5, 3);
+
403  uint32_t s160 = s_extract_32(s4, 6);
+
404  uint32_t s111 = s_extract_32(s3, 4);
+
405  uint32_t s66 = s_extract_32(s2, 5);
+
406  uint32_t s23 = s_extract_32(s1, 23);
+
407  uint32_t s12 = s_extract_32(s1, 12);
+
408 
+
409  // Update the LFSR's.
+
410  uint32_t s7_l = state->s7 ^ s235 ^ state->s6_l;
+
411  state->s6_l ^= s196 ^ state->s5_l;
+
412  state->s5_l ^= s160 ^ state->s4_l;
+
413  state->s4_l ^= s111 ^ state->s3_l;
+
414  state->s3_l ^= s66 ^ state->s2_l;
+
415  state->s2_l ^= s23 ^ state->s1_l;
+
416 
+
417  // Generate the next 32 keystream bits and decrypt the ciphertext.
+
418  // k = S[12] ^ S[154] ^ maj(S[235], S[61], S[193])
+
419  // ^ ch(S[230], S[111], S[66])
+
420  uint32_t ks = s12 ^ state->s4_l ^
+
421  maj(s235, state->s2_l, state->s5_l) ^
+
422  ch(state->s6_l, s111, s66);
+
423  uint32_t plaintext = ciphertext ^ ks;
+
424 
+
425  // Generate the next 32 non-linear feedback bits.
+
426  // f = S[0] ^ ~S[107] ^ maj(S[244], S[23], S[160])
+
427  // ^ (ca & S[196]) ^ (cb & ks)
+
428  // f ^= plaintext
+
429  // Note: ca will always be 1 and cb will always be 0.
+
430  uint32_t f = state->s1_l ^ (~state->s3_l) ^ maj(s244, s23, s160) ^ s196;
+
431  f ^= plaintext;
+
432 
+
433  // Shift the state downwards by 32 bits.
+
434  #define s_shift_32(name1, name2, shift) \
+
435  (state->name1##_l = state->name1##_h | (state->name2##_l << (shift)), \
+
436  state->name1##_h = (state->name2##_l >> (32 - (shift))))
+
437  s7_l ^= (f << 4);
+
438  state->s7 = (uint8_t)(f >> 28);
+
439  s_shift_32(s1, s2, 29);
+
440  s_shift_32(s2, s3, 14);
+
441  s_shift_32(s3, s4, 15);
+
442  s_shift_32(s4, s5, 7);
+
443  s_shift_32(s5, s6, 5);
+
444  state->s6_l = state->s6_h | (s7_l << 27);
+
445  state->s6_h = s7_l >> 5;
+
446 
+
447  // Return the plaintext word to the caller.
+
448  return plaintext;
+
449 }
+
450 
+
451 #elif defined(CRYPTO_ACORN128_AVR)
+
452 
+
453 // Import definitions from Acorn128AVR.cpp
+
454 extern uint32_t acornEncrypt32
+
455  (Acorn128State *state, uint32_t plaintext, uint32_t ca, uint32_t cb);
+
456 
+
457 #endif // CRYPTO_ACORN128_AVR
+
458 
+
465 void acornPad(Acorn128State *state, uint32_t cb)
+
466 {
+
467  acornEncrypt32(state, 1, CA_1, cb);
+
468  acornEncrypt32(state, 0, CA_1, cb);
+
469  acornEncrypt32(state, 0, CA_1, cb);
+
470  acornEncrypt32(state, 0, CA_1, cb);
+
471  acornEncrypt32(state, 0, CA_0, cb);
+
472  acornEncrypt32(state, 0, CA_0, cb);
+
473  acornEncrypt32(state, 0, CA_0, cb);
+
474  acornEncrypt32(state, 0, CA_0, cb);
+
475 }
+
476 
+
477 bool Acorn128::setKey(const uint8_t *key, size_t len)
+
478 {
+
479  // We cannot initialize the key block until we also have the IV.
+
480  // So we simply validate the length and save the key away for later.
+
481  if (len == 16) {
+
482  memcpy(state.k, key, 16);
+
483 #if !defined(CRYPTO_LITTLE_ENDIAN)
+
484  state.k[0] = le32toh(state.k[0]);
+
485  state.k[1] = le32toh(state.k[1]);
+
486  state.k[2] = le32toh(state.k[2]);
+
487  state.k[3] = le32toh(state.k[3]);
+
488 #endif
+
489  return true;
+
490  } else {
+
491  return false;
+
492  }
+
493 }
+
494 
+
495 bool Acorn128::setIV(const uint8_t *iv, size_t len)
+
496 {
+
497  if (len != 16)
+
498  return false;
+
499 
+
500  // Unpack the iv into four 32-bit words.
+
501  uint32_t ivwords[4];
+
502  memcpy(ivwords, iv, 16);
+
503 #if !defined(CRYPTO_LITTLE_ENDIAN)
+
504  ivwords[0] = le32toh(ivwords[0]);
+
505  ivwords[1] = le32toh(ivwords[1]);
+
506  ivwords[2] = le32toh(ivwords[2]);
+
507  ivwords[3] = le32toh(ivwords[3]);
+
508 #endif
+
509 
+
510  // Initialize the state to zero.
+
511  state.s1_l = 0;
+
512  state.s1_h = 0;
+
513  state.s2_l = 0;
+
514  state.s2_h = 0;
+
515  state.s3_h = 0;
+
516  state.s3_l = 0;
+
517  state.s4_l = 0;
+
518  state.s4_h = 0;
+
519  state.s5_h = 0;
+
520  state.s5_l = 0;
+
521  state.s6_l = 0;
+
522  state.s6_h = 0;
+
523  state.s7 = 0;
+
524  state.authDone = 0;
+
525 
+
526  // Run the cipher for 1792 steps, 32 at a time,
+
527  // which mixes the key and IV into the cipher state.
+
528  acornEncrypt32(&state, state.k[0], CA_1, CB_1);
+
529  acornEncrypt32(&state, state.k[1], CA_1, CB_1);
+
530  acornEncrypt32(&state, state.k[2], CA_1, CB_1);
+
531  acornEncrypt32(&state, state.k[3], CA_1, CB_1);
+
532  acornEncrypt32(&state, ivwords[0], CA_1, CB_1);
+
533  acornEncrypt32(&state, ivwords[1], CA_1, CB_1);
+
534  acornEncrypt32(&state, ivwords[2], CA_1, CB_1);
+
535  acornEncrypt32(&state, ivwords[3], CA_1, CB_1);
+
536  acornEncrypt32(&state, state.k[0] ^ 0x00000001, CA_1, CB_1);
+
537  acornEncrypt32(&state, state.k[1], CA_1, CB_1);
+
538  acornEncrypt32(&state, state.k[2], CA_1, CB_1);
+
539  acornEncrypt32(&state, state.k[3], CA_1, CB_1);
+
540  for (uint8_t i = 0; i < 11; ++i) {
+
541  acornEncrypt32(&state, state.k[0], CA_1, CB_1);
+
542  acornEncrypt32(&state, state.k[1], CA_1, CB_1);
+
543  acornEncrypt32(&state, state.k[2], CA_1, CB_1);
+
544  acornEncrypt32(&state, state.k[3], CA_1, CB_1);
+
545  }
+
546 
+
547  // Clean up and exit.
+
548  clean(ivwords);
+
549  return true;
+
550 }
+
551 
+
552 #if defined(CRYPTO_ACORN128_DEFAULT) || defined(CRYPTO_DOC)
+
553 
+
554 void Acorn128::encrypt(uint8_t *output, const uint8_t *input, size_t len)
+
555 {
+
556  uint32_t temp;
+
557  if (!state.authDone) {
+
558  acornPad(&state, CB_1);
+
559  state.authDone = 1;
+
560  }
+
561  while (len >= 4) {
+
562  uint32_t temp = ((uint32_t)input[0]) |
+
563  (((uint32_t)input[1]) << 8) |
+
564  (((uint32_t)input[2]) << 16) |
+
565  (((uint32_t)input[3]) << 24);
+
566  temp = acornEncrypt32Fast(&state, temp);
+
567  output[0] = (uint8_t)temp;
+
568  output[1] = (uint8_t)(temp >> 8);
+
569  output[2] = (uint8_t)(temp >> 16);
+
570  output[3] = (uint8_t)(temp >> 24);
+
571  input += 4;
+
572  output += 4;
+
573  len -= 4;
+
574  }
+
575  while (len > 0) {
+
576  *output++ = acornEncrypt8(&state, *input++, CA_1_BYTE, CB_0_BYTE);
+
577  --len;
+
578  }
+
579 }
+
580 
+
581 void Acorn128::decrypt(uint8_t *output, const uint8_t *input, size_t len)
+
582 {
+
583  uint32_t temp;
+
584  if (!state.authDone) {
+
585  acornPad(&state, CB_1);
+
586  state.authDone = 1;
+
587  }
+
588  while (len >= 4) {
+
589  uint32_t temp = ((uint32_t)input[0]) |
+
590  (((uint32_t)input[1]) << 8) |
+
591  (((uint32_t)input[2]) << 16) |
+
592  (((uint32_t)input[3]) << 24);
+
593  temp = acornDecrypt32(&state, temp);
+
594  output[0] = (uint8_t)temp;
+
595  output[1] = (uint8_t)(temp >> 8);
+
596  output[2] = (uint8_t)(temp >> 16);
+
597  output[3] = (uint8_t)(temp >> 24);
+
598  input += 4;
+
599  output += 4;
+
600  len -= 4;
+
601  }
+
602  while (len > 0) {
+
603  *output++ = acornDecrypt8(&state, *input++);
+
604  --len;
+
605  }
+
606 }
+
607 
+
608 void Acorn128::addAuthData(const void *data, size_t len)
+
609 {
+
610  // Cannot add any more auth data if we've started to encrypt or decrypt.
+
611  if (state.authDone)
+
612  return;
+
613 
+
614  // Encrypt the auth data with ca = 1, cb = 1.
+
615  const uint8_t *input = (const uint8_t *)data;
+
616  while (len >= 4) {
+
617  uint32_t temp = ((uint32_t)input[0]) |
+
618  (((uint32_t)input[1]) << 8) |
+
619  (((uint32_t)input[2]) << 16) |
+
620  (((uint32_t)input[3]) << 24);
+
621  acornEncrypt32(&state, temp, CA_1, CB_1);
+
622  input += 4;
+
623  len -= 4;
+
624  }
+
625  while (len > 0) {
+
626  acornEncrypt8(&state, *input++, CA_1_BYTE, CB_1_BYTE);
+
627  --len;
+
628  }
+
629 }
+
630 
+
631 #endif // CRYPTO_ACORN128_DEFAULT
+
632 
+
633 void Acorn128::computeTag(void *tag, size_t len)
+
634 {
+
635  // Finalize the data and apply padding.
+
636  if (!state.authDone)
+
637  acornPad(&state, CB_1);
+
638  acornPad(&state, CB_0);
+
639 
+
640  // Encrypt 768 zero bits and extract the last 128 for the tag.
+
641  uint32_t temp[4];
+
642  for (uint8_t i = 0; i < 20; ++i)
+
643  acornEncrypt32(&state, 0, CA_1, CB_1);
+
644  temp[0] = acornEncrypt32(&state, 0, CA_1, CB_1);
+
645  temp[1] = acornEncrypt32(&state, 0, CA_1, CB_1);
+
646  temp[2] = acornEncrypt32(&state, 0, CA_1, CB_1);
+
647  temp[3] = acornEncrypt32(&state, 0, CA_1, CB_1);
+
648 #if !defined(CRYPTO_LITTLE_ENDIAN)
+
649  temp[0] = htole32(temp[0]);
+
650  temp[1] = htole32(temp[1]);
+
651  temp[2] = htole32(temp[2]);
+
652  temp[3] = htole32(temp[3]);
+
653 #endif
+
654 
+
655  // Truncate to the requested length and return the value.
+
656  if (len > 16)
+
657  len = 16;
+
658  memcpy(tag, temp, len);
+
659  clean(temp);
+
660 }
+
661 
+
662 bool Acorn128::checkTag(const void *tag, size_t len)
+
663 {
+
664  // Can never match if the expected tag length is too long.
+
665  if (len > 16)
+
666  return false;
+
667 
+
668  // Compute the authentication tag and check it.
+
669  uint8_t temp[16];
+
670  computeTag(temp, len);
+
671  bool equal = secure_compare(temp, tag, len);
+
672  clean(temp);
+
673  return equal;
+
674 }
+
675 
+ +
680 {
+
681  clean(state);
+
682 }
+
size_t keySize() const
Gets the size of the Acorn128 key in bytes.
Definition: Acorn128.cpp:64
+
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: Acorn128.cpp:554
+
void clear()
Clears all security-sensitive state from this cipher object.
Definition: Acorn128.cpp:679
+
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: Acorn128.cpp:633
+
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: Acorn128.cpp:581
+
virtual ~Acorn128()
Destroys this Acorn128 authenticated cipher.
Definition: Acorn128.cpp:54
+
bool setKey(const uint8_t *key, size_t len)
Sets the key to use for future encryption and decryption operations.
Definition: Acorn128.cpp:477
+
size_t ivSize() const
Gets the size of the Acorn128 initialization vector in bytes.
Definition: Acorn128.cpp:77
+
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: Acorn128.cpp:662
+
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: Acorn128.cpp:495
+
Acorn128()
Constructs a new Acorn128 authenticated cipher.
Definition: Acorn128.cpp:46
+
size_t tagSize() const
Gets the size of the Acorn128 authentication tag in bytes.
Definition: Acorn128.cpp:87
+
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: Acorn128.cpp:608
+
+ + + + diff --git a/Acorn128_8h_source.html b/Acorn128_8h_source.html new file mode 100644 index 00000000..e4f1aaf0 --- /dev/null +++ b/Acorn128_8h_source.html @@ -0,0 +1,203 @@ + + + + + + +Arduino Cryptography Library: Acorn128.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
Acorn128.h
+
+
+
1 /*
+
2  * Copyright (C) 2018 Southern Storm Software, Pty Ltd.
+
3  *
+
4  * Permission is hereby granted, free of charge, to any person obtaining a
+
5  * copy of this software and associated documentation files (the "Software"),
+
6  * to deal in the Software without restriction, including without limitation
+
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+
8  * and/or sell copies of the Software, and to permit persons to whom the
+
9  * Software is furnished to do so, subject to the following conditions:
+
10  *
+
11  * The above copyright notice and this permission notice shall be included
+
12  * in all copies or substantial portions of the Software.
+
13  *
+
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+
20  * DEALINGS IN THE SOFTWARE.
+
21  */
+
22 
+
23 #ifndef CRYPTO_ACORN128_H
+
24 #define CRYPTO_ACORN128_H
+
25 
+
26 #include "AuthenticatedCipher.h"
+
27 
+
30 // The ACORN-128 state consists of 293 bits split across six
+
31 // Linear Feedback Shift Registers (LFSR's) and 4 bits spare.
+
32 // In this implementation, each LFSR is represented by a
+
33 // 48-bit or 64-bit register split into 32/16-bit words.
+
34 // The optimized reference implementation from the algorithm's
+
35 // authors uses 7 uint64_t registers, for a total state size
+
36 // of 448 bits. This version uses 328 bits for same data and
+
37 // should be efficient on 8-bit and 32-bit microcontrollers.
+
38 typedef struct
+
39 {
+
40  uint32_t k[4]; // Cached copy of the key for multiple requests.
+
41  uint32_t s1_l; // LFSR1, 61 bits, 0..60, low word
+
42  uint32_t s1_h; // LFSR1, high word
+
43  uint32_t s2_l; // LFSR2, 46 bits, 61..106, low word
+
44  uint16_t s2_h; // LFSR2, high word
+
45  uint16_t s3_h; // LFSR3, 47 bits, 107..153, high word
+
46  uint32_t s3_l; // LFSR3, low word
+
47  uint32_t s4_l; // LFSR4, 39 bits, 154..192, low word
+
48  uint16_t s4_h; // LFSR4, high word
+
49  uint16_t s5_h; // LFSR5, 37 bits, 193..229, high word
+
50  uint32_t s5_l; // LFSR5, low word
+
51  uint32_t s6_l; // LFSR6, 59 bits, 230..288, low word
+
52  uint32_t s6_h; // LFSR6, high word
+
53  uint8_t s7; // Top most 4 bits, 289..292
+
54  uint8_t authDone; // Non-zero once authentication is done.
+
55 
+
56 } Acorn128State;
+
57 
+
58 // Determine which Acorn128 implementation to export to applications.
+
59 #if defined(__AVR__)
+
60 #define CRYPTO_ACORN128_AVR 1
+
61 #else
+
62 #define CRYPTO_ACORN128_DEFAULT 1
+
63 #endif
+
64 
+ +
68 {
+
69 public:
+
70  Acorn128();
+
71  virtual ~Acorn128();
+
72 
+
73  size_t keySize() const;
+
74  size_t ivSize() const;
+
75  size_t tagSize() const;
+
76 
+
77  bool setKey(const uint8_t *key, size_t len);
+
78  bool setIV(const uint8_t *iv, size_t len);
+
79 
+
80  void encrypt(uint8_t *output, const uint8_t *input, size_t len);
+
81  void decrypt(uint8_t *output, const uint8_t *input, size_t len);
+
82 
+
83  void addAuthData(const void *data, size_t len);
+
84 
+
85  void computeTag(void *tag, size_t len);
+
86  bool checkTag(const void *tag, size_t len);
+
87 
+
88  void clear();
+
89 
+
90 private:
+
91  Acorn128State state;
+
92 };
+
93 
+
94 #endif
+
size_t keySize() const
Gets the size of the Acorn128 key in bytes.
Definition: Acorn128.cpp:64
+
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: Acorn128.cpp:554
+
Abstract base class for authenticated ciphers.
+
void clear()
Clears all security-sensitive state from this cipher object.
Definition: Acorn128.cpp:679
+
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: Acorn128.cpp:633
+
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: Acorn128.cpp:581
+
virtual ~Acorn128()
Destroys this Acorn128 authenticated cipher.
Definition: Acorn128.cpp:54
+
bool setKey(const uint8_t *key, size_t len)
Sets the key to use for future encryption and decryption operations.
Definition: Acorn128.cpp:477
+
ACORN-128 authenticated cipher.
Definition: Acorn128.h:67
+
size_t ivSize() const
Gets the size of the Acorn128 initialization vector in bytes.
Definition: Acorn128.cpp:77
+
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: Acorn128.cpp:662
+
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: Acorn128.cpp:495
+
Acorn128()
Constructs a new Acorn128 authenticated cipher.
Definition: Acorn128.cpp:46
+
size_t tagSize() const
Gets the size of the Acorn128 authentication tag in bytes.
Definition: Acorn128.cpp:87
+
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: Acorn128.cpp:608
+
+ + + + diff --git a/AuthenticatedCipher_8cpp_source.html b/AuthenticatedCipher_8cpp_source.html index e04ecb55..9de2dbfd 100644 --- a/AuthenticatedCipher_8cpp_source.html +++ b/AuthenticatedCipher_8cpp_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/AuthenticatedCipher_8h_source.html b/AuthenticatedCipher_8h_source.html index c22d5fc3..fef5e060 100644 --- a/AuthenticatedCipher_8h_source.html +++ b/AuthenticatedCipher_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BLAKE2b_8cpp_source.html b/BLAKE2b_8cpp_source.html index d7935913..16c4f778 100644 --- a/BLAKE2b_8cpp_source.html +++ b/BLAKE2b_8cpp_source.html @@ -363,7 +363,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BLAKE2b_8h_source.html b/BLAKE2b_8h_source.html index 746e1c09..877fa4d5 100644 --- a/BLAKE2b_8h_source.html +++ b/BLAKE2b_8h_source.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BLAKE2s_8cpp_source.html b/BLAKE2s_8cpp_source.html index 7d8484e2..e5557073 100644 --- a/BLAKE2s_8cpp_source.html +++ b/BLAKE2s_8cpp_source.html @@ -355,7 +355,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BLAKE2s_8h_source.html b/BLAKE2s_8h_source.html index f6b33489..43c86822 100644 --- a/BLAKE2s_8h_source.html +++ b/BLAKE2s_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BigNumberUtil_8cpp_source.html b/BigNumberUtil_8cpp_source.html index 93aa85aa..d26d3834 100644 --- a/BigNumberUtil_8cpp_source.html +++ b/BigNumberUtil_8cpp_source.html @@ -681,7 +681,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BigNumberUtil_8h_source.html b/BigNumberUtil_8h_source.html index 9431d74e..b878db91 100644 --- a/BigNumberUtil_8h_source.html +++ b/BigNumberUtil_8h_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BlockCipher_8cpp_source.html b/BlockCipher_8cpp_source.html index 5b3bca20..eb1ae94e 100644 --- a/BlockCipher_8cpp_source.html +++ b/BlockCipher_8cpp_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/BlockCipher_8h_source.html b/BlockCipher_8h_source.html index 37b52f01..a4572d13 100644 --- a/BlockCipher_8h_source.html +++ b/BlockCipher_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CBC_8cpp_source.html b/CBC_8cpp_source.html index ac12617d..bda15e0c 100644 --- a/CBC_8cpp_source.html +++ b/CBC_8cpp_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CBC_8h_source.html b/CBC_8h_source.html index 648e5ac3..95ce1b55 100644 --- a/CBC_8h_source.html +++ b/CBC_8h_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CFB_8cpp_source.html b/CFB_8cpp_source.html index b9cc826e..9732ef1f 100644 --- a/CFB_8cpp_source.html +++ b/CFB_8cpp_source.html @@ -232,7 +232,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CFB_8h_source.html b/CFB_8h_source.html index 1e1b6d7b..512654e7 100644 --- a/CFB_8h_source.html +++ b/CFB_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CTR_8cpp_source.html b/CTR_8cpp_source.html index 6130e032..b86c85e8 100644 --- a/CTR_8cpp_source.html +++ b/CTR_8cpp_source.html @@ -227,7 +227,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CTR_8h_source.html b/CTR_8h_source.html index 74e88c71..fa2d2b77 100644 --- a/CTR_8h_source.html +++ b/CTR_8h_source.html @@ -174,7 +174,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/ChaChaPoly_8cpp_source.html b/ChaChaPoly_8cpp_source.html index 57981803..e7c77a8d 100644 --- a/ChaChaPoly_8cpp_source.html +++ b/ChaChaPoly_8cpp_source.html @@ -262,7 +262,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/ChaChaPoly_8h_source.html b/ChaChaPoly_8h_source.html index 279f459e..cedc6350 100644 --- a/ChaChaPoly_8h_source.html +++ b/ChaChaPoly_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/ChaCha_8cpp_source.html b/ChaCha_8cpp_source.html index 4aa637be..95c9a722 100644 --- a/ChaCha_8cpp_source.html +++ b/ChaCha_8cpp_source.html @@ -310,7 +310,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/ChaCha_8h_source.html b/ChaCha_8h_source.html index 969e3a32..6078c019 100644 --- a/ChaCha_8h_source.html +++ b/ChaCha_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Cipher_8cpp_source.html b/Cipher_8cpp_source.html index eef663cd..6e72f2eb 100644 --- a/Cipher_8cpp_source.html +++ b/Cipher_8cpp_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Cipher_8h_source.html b/Cipher_8h_source.html index 6615e9bf..a8343988 100644 --- a/Cipher_8h_source.html +++ b/Cipher_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/CryptoLW_8h_source.html b/CryptoLW_8h_source.html new file mode 100644 index 00000000..02803af6 --- /dev/null +++ b/CryptoLW_8h_source.html @@ -0,0 +1,127 @@ + + + + + + +Arduino Cryptography Library: CryptoLW.h Source File + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
CryptoLW.h
+
+
+
1 /*
+
2  * Copyright (C) 2018 Southern Storm Software, Pty Ltd.
+
3  *
+
4  * Permission is hereby granted, free of charge, to any person obtaining a
+
5  * copy of this software and associated documentation files (the "Software"),
+
6  * to deal in the Software without restriction, including without limitation
+
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+
8  * and/or sell copies of the Software, and to permit persons to whom the
+
9  * Software is furnished to do so, subject to the following conditions:
+
10  *
+
11  * The above copyright notice and this permission notice shall be included
+
12  * in all copies or substantial portions of the Software.
+
13  *
+
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+
20  * DEALINGS IN THE SOFTWARE.
+
21  */
+
22 
+
23 #ifndef CRYPTO_LW_H
+
24 #define CRYPTO_LW_H
+
25 
+
26 // This header exists to make the Arudino IDE add the library to the
+
27 // include and link paths when the sketch includes <CryptoLW.h>.
+
28 
+
29 #endif
+
+ + + + diff --git a/Crypto_8cpp_source.html b/Crypto_8cpp_source.html index ec814f56..6fff4b8d 100644 --- a/Crypto_8cpp_source.html +++ b/Crypto_8cpp_source.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Crypto_8h_source.html b/Crypto_8h_source.html index 3bb9f279..89704037 100644 --- a/Crypto_8h_source.html +++ b/Crypto_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Curve25519_8cpp_source.html b/Curve25519_8cpp_source.html index 55574343..3075585a 100644 --- a/Curve25519_8cpp_source.html +++ b/Curve25519_8cpp_source.html @@ -1458,7 +1458,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Curve25519_8h_source.html b/Curve25519_8h_source.html index 5e2b1b6b..438a16e1 100644 --- a/Curve25519_8h_source.html +++ b/Curve25519_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/EAX_8cpp_source.html b/EAX_8cpp_source.html index 0df417cb..01dbe64c 100644 --- a/EAX_8cpp_source.html +++ b/EAX_8cpp_source.html @@ -300,7 +300,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/EAX_8h_source.html b/EAX_8h_source.html index addd4522..2bdea76a 100644 --- a/EAX_8h_source.html +++ b/EAX_8h_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Ed25519_8cpp_source.html b/Ed25519_8cpp_source.html index 4402c075..908eee26 100644 --- a/Ed25519_8cpp_source.html +++ b/Ed25519_8cpp_source.html @@ -570,7 +570,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Ed25519_8h_source.html b/Ed25519_8h_source.html index 8b941e7b..fb88959a 100644 --- a/Ed25519_8h_source.html +++ b/Ed25519_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/GCM_8cpp_source.html b/GCM_8cpp_source.html index 4d3260d8..c13fc01e 100644 --- a/GCM_8cpp_source.html +++ b/GCM_8cpp_source.html @@ -147,212 +147,208 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
77 bool GCMCommon::setKey(const uint8_t *key, size_t len)
78 {
79  // Set the encryption key for the block cipher.
-
80  if (!blockCipher->setKey(key, len))
-
81  return false;
+
80  return blockCipher->setKey(key, len);
+
81 }
82 
-
83  // Construct the hashing key by encrypting a zero block.
-
84  memset(state.nonce, 0, 16);
-
85  blockCipher->encryptBlock(state.nonce, state.nonce);
-
86  ghash.reset(state.nonce);
-
87  return true;
-
88 }
-
89 
-
90 bool GCMCommon::setIV(const uint8_t *iv, size_t len)
-
91 {
-
92  // Note: We assume that setKey() has already been called to
-
93  // set the hashing key in the "ghash" object and that the
-
94  // hashing key itself is still stored in "state.nonce".
-
95 
-
96  // Format the counter block from the IV.
-
97  if (len == 12) {
-
98  // IV's of exactly 96 bits are used directly as the counter block.
-
99  memcpy(state.counter, iv, 12);
-
100  state.counter[12] = 0;
-
101  state.counter[13] = 0;
-
102  state.counter[14] = 0;
-
103  state.counter[15] = 1;
-
104  } else {
-
105  // IV's of other sizes are hashed to produce the counter block.
-
106  ghash.update(iv, len);
-
107  ghash.pad();
-
108  uint64_t sizes[2] = {0, htobe64(((uint64_t)len) * 8)};
-
109  ghash.update(sizes, sizeof(sizes));
-
110  clean(sizes);
-
111  ghash.finalize(state.counter, 16);
-
112  ghash.reset(state.nonce);
-
113  }
-
114 
-
115  // Reset the GCM object ready to process auth or payload data.
-
116  state.authSize = 0;
-
117  state.dataSize = 0;
-
118  state.dataStarted = false;
-
119  state.posn = 16;
-
120 
-
121  // Replace the hash key in "nonce" with the encrypted counter.
-
122  // This value will be XOR'ed with the final authentication hash
-
123  // value in computeTag().
-
124  blockCipher->encryptBlock(state.nonce, state.counter);
-
125  return true;
-
126 }
-
127 
-
133 static inline void increment(uint8_t counter[16])
-
134 {
-
135  uint16_t carry = 1;
-
136  carry += counter[15];
-
137  counter[15] = (uint8_t)carry;
-
138  carry = (carry >> 8) + counter[14];
-
139  counter[14] = (uint8_t)carry;
-
140  carry = (carry >> 8) + counter[13];
-
141  counter[13] = (uint8_t)carry;
-
142  carry = (carry >> 8) + counter[12];
-
143  counter[12] = (uint8_t)carry;
-
144 }
-
145 
-
146 void GCMCommon::encrypt(uint8_t *output, const uint8_t *input, size_t len)
-
147 {
-
148  // Finalize the authenticated data if necessary.
-
149  if (!state.dataStarted) {
-
150  ghash.pad();
-
151  state.dataStarted = true;
-
152  }
-
153 
-
154  // Encrypt the plaintext using the block cipher in counter mode.
-
155  uint8_t *out = output;
-
156  size_t size = len;
-
157  while (size > 0) {
-
158  // Create a new keystream block if necessary.
-
159  if (state.posn >= 16) {
-
160  increment(state.counter);
-
161  blockCipher->encryptBlock(state.stream, state.counter);
-
162  state.posn = 0;
-
163  }
-
164 
-
165  // Encrypt as many bytes as we can using the keystream block.
-
166  uint8_t temp = 16 - state.posn;
-
167  if (temp > size)
-
168  temp = size;
-
169  uint8_t *stream = state.stream + state.posn;
-
170  state.posn += temp;
-
171  size -= temp;
-
172  while (temp > 0) {
-
173  *out++ = *input++ ^ *stream++;
-
174  --temp;
-
175  }
-
176  }
-
177 
-
178  // Feed the ciphertext into the hash.
-
179  ghash.update(output, len);
-
180  state.dataSize += len;
-
181 }
-
182 
-
183 void GCMCommon::decrypt(uint8_t *output, const uint8_t *input, size_t len)
-
184 {
-
185  // Finalize the authenticated data if necessary.
-
186  if (!state.dataStarted) {
-
187  ghash.pad();
-
188  state.dataStarted = true;
-
189  }
+
83 bool GCMCommon::setIV(const uint8_t *iv, size_t len)
+
84 {
+
85  // Format the counter block from the IV.
+
86  if (len == 12) {
+
87  // IV's of exactly 96 bits are used directly as the counter block.
+
88  memcpy(state.counter, iv, 12);
+
89  state.counter[12] = 0;
+
90  state.counter[13] = 0;
+
91  state.counter[14] = 0;
+
92  state.counter[15] = 1;
+
93  } else {
+
94  // IV's of other sizes are hashed to produce the counter block.
+
95  memset(state.nonce, 0, 16);
+
96  blockCipher->encryptBlock(state.nonce, state.nonce);
+
97  ghash.reset(state.nonce);
+
98  ghash.update(iv, len);
+
99  ghash.pad();
+
100  uint64_t sizes[2] = {0, htobe64(((uint64_t)len) * 8)};
+
101  ghash.update(sizes, sizeof(sizes));
+
102  clean(sizes);
+
103  ghash.finalize(state.counter, 16);
+
104  }
+
105 
+
106  // Reset the GCM object ready to process auth or payload data.
+
107  state.authSize = 0;
+
108  state.dataSize = 0;
+
109  state.dataStarted = false;
+
110  state.posn = 16;
+
111 
+
112  // Construct the hashing key by encrypting a zero block.
+
113  memset(state.nonce, 0, 16);
+
114  blockCipher->encryptBlock(state.nonce, state.nonce);
+
115  ghash.reset(state.nonce);
+
116 
+
117  // Replace the hash key in "nonce" with the encrypted counter.
+
118  // This value will be XOR'ed with the final authentication hash
+
119  // value in computeTag().
+
120  blockCipher->encryptBlock(state.nonce, state.counter);
+
121  return true;
+
122 }
+
123 
+
129 static inline void increment(uint8_t counter[16])
+
130 {
+
131  uint16_t carry = 1;
+
132  carry += counter[15];
+
133  counter[15] = (uint8_t)carry;
+
134  carry = (carry >> 8) + counter[14];
+
135  counter[14] = (uint8_t)carry;
+
136  carry = (carry >> 8) + counter[13];
+
137  counter[13] = (uint8_t)carry;
+
138  carry = (carry >> 8) + counter[12];
+
139  counter[12] = (uint8_t)carry;
+
140 }
+
141 
+
142 void GCMCommon::encrypt(uint8_t *output, const uint8_t *input, size_t len)
+
143 {
+
144  // Finalize the authenticated data if necessary.
+
145  if (!state.dataStarted) {
+
146  ghash.pad();
+
147  state.dataStarted = true;
+
148  }
+
149 
+
150  // Encrypt the plaintext using the block cipher in counter mode.
+
151  uint8_t *out = output;
+
152  size_t size = len;
+
153  while (size > 0) {
+
154  // Create a new keystream block if necessary.
+
155  if (state.posn >= 16) {
+
156  increment(state.counter);
+
157  blockCipher->encryptBlock(state.stream, state.counter);
+
158  state.posn = 0;
+
159  }
+
160 
+
161  // Encrypt as many bytes as we can using the keystream block.
+
162  uint8_t temp = 16 - state.posn;
+
163  if (temp > size)
+
164  temp = size;
+
165  uint8_t *stream = state.stream + state.posn;
+
166  state.posn += temp;
+
167  size -= temp;
+
168  while (temp > 0) {
+
169  *out++ = *input++ ^ *stream++;
+
170  --temp;
+
171  }
+
172  }
+
173 
+
174  // Feed the ciphertext into the hash.
+
175  ghash.update(output, len);
+
176  state.dataSize += len;
+
177 }
+
178 
+
179 void GCMCommon::decrypt(uint8_t *output, const uint8_t *input, size_t len)
+
180 {
+
181  // Finalize the authenticated data if necessary.
+
182  if (!state.dataStarted) {
+
183  ghash.pad();
+
184  state.dataStarted = true;
+
185  }
+
186 
+
187  // Feed the ciphertext into the hash before we decrypt it.
+
188  ghash.update(input, len);
+
189  state.dataSize += len;
190 
-
191  // Feed the ciphertext into the hash before we decrypt it.
-
192  ghash.update(input, len);
-
193  state.dataSize += len;
-
194 
-
195  // Decrypt the plaintext using the block cipher in counter mode.
-
196  while (len > 0) {
-
197  // Create a new keystream block if necessary.
-
198  if (state.posn >= 16) {
-
199  increment(state.counter);
-
200  blockCipher->encryptBlock(state.stream, state.counter);
-
201  state.posn = 0;
-
202  }
-
203 
-
204  // Decrypt as many bytes as we can using the keystream block.
-
205  uint8_t temp = 16 - state.posn;
-
206  if (temp > len)
-
207  temp = len;
-
208  uint8_t *stream = state.stream + state.posn;
-
209  state.posn += temp;
-
210  len -= temp;
-
211  while (temp > 0) {
-
212  *output++ = *input++ ^ *stream++;
-
213  --temp;
-
214  }
-
215  }
-
216 }
-
217 
-
218 void GCMCommon::addAuthData(const void *data, size_t len)
-
219 {
-
220  if (!state.dataStarted) {
-
221  ghash.update(data, len);
-
222  state.authSize += len;
-
223  }
-
224 }
-
225 
-
226 void GCMCommon::computeTag(void *tag, size_t len)
-
227 {
-
228  // Pad the hashed data and add the sizes.
-
229  ghash.pad();
-
230  uint64_t sizes[2] = {
-
231  htobe64(state.authSize * 8),
-
232  htobe64(state.dataSize * 8)
-
233  };
-
234  ghash.update(sizes, sizeof(sizes));
-
235  clean(sizes);
-
236 
-
237  // Get the finalized hash, encrypt it with the nonce, and return the tag.
-
238  ghash.finalize(state.stream, 16);
-
239  for (uint8_t posn = 0; posn < 16; ++posn)
-
240  state.stream[posn] ^= state.nonce[posn];
-
241  if (len > 16)
-
242  len = 16;
-
243  memcpy(tag, state.stream, len);
-
244 }
-
245 
-
246 bool GCMCommon::checkTag(const void *tag, size_t len)
-
247 {
-
248  // Can never match if the expected tag length is too long.
-
249  if (len > 16)
-
250  return false;
-
251 
-
252  // Compute the tag and check it.
-
253  computeTag(state.counter, 16);
-
254  return secure_compare(state.counter, tag, len);
-
255 }
-
256 
-
257 void GCMCommon::clear()
-
258 {
-
259  blockCipher->clear();
-
260  ghash.clear();
-
261  clean(state);
-
262  state.posn = 16;
-
263 }
-
264 
-
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: GCM.cpp:226
+
191  // Decrypt the plaintext using the block cipher in counter mode.
+
192  while (len > 0) {
+
193  // Create a new keystream block if necessary.
+
194  if (state.posn >= 16) {
+
195  increment(state.counter);
+
196  blockCipher->encryptBlock(state.stream, state.counter);
+
197  state.posn = 0;
+
198  }
+
199 
+
200  // Decrypt as many bytes as we can using the keystream block.
+
201  uint8_t temp = 16 - state.posn;
+
202  if (temp > len)
+
203  temp = len;
+
204  uint8_t *stream = state.stream + state.posn;
+
205  state.posn += temp;
+
206  len -= temp;
+
207  while (temp > 0) {
+
208  *output++ = *input++ ^ *stream++;
+
209  --temp;
+
210  }
+
211  }
+
212 }
+
213 
+
214 void GCMCommon::addAuthData(const void *data, size_t len)
+
215 {
+
216  if (!state.dataStarted) {
+
217  ghash.update(data, len);
+
218  state.authSize += len;
+
219  }
+
220 }
+
221 
+
222 void GCMCommon::computeTag(void *tag, size_t len)
+
223 {
+
224  // Pad the hashed data and add the sizes.
+
225  ghash.pad();
+
226  uint64_t sizes[2] = {
+
227  htobe64(state.authSize * 8),
+
228  htobe64(state.dataSize * 8)
+
229  };
+
230  ghash.update(sizes, sizeof(sizes));
+
231  clean(sizes);
+
232 
+
233  // Get the finalized hash, encrypt it with the nonce, and return the tag.
+
234  ghash.finalize(state.stream, 16);
+
235  for (uint8_t posn = 0; posn < 16; ++posn)
+
236  state.stream[posn] ^= state.nonce[posn];
+
237  if (len > 16)
+
238  len = 16;
+
239  memcpy(tag, state.stream, len);
+
240 }
+
241 
+
242 bool GCMCommon::checkTag(const void *tag, size_t len)
+
243 {
+
244  // Can never match if the expected tag length is too long.
+
245  if (len > 16)
+
246  return false;
+
247 
+
248  // Compute the tag and check it.
+
249  computeTag(state.counter, 16);
+
250  return secure_compare(state.counter, tag, len);
+
251 }
+
252 
+
253 void GCMCommon::clear()
+
254 {
+
255  blockCipher->clear();
+
256  ghash.clear();
+
257  clean(state);
+
258  state.posn = 16;
+
259 }
+
260 
+
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: GCM.cpp:222
bool setKey(const uint8_t *key, size_t len)
Sets the key to use for future encryption and decryption operations.
Definition: GCM.cpp:77
size_t tagSize() const
Returns the size of the authentication tag.
Definition: GCM.cpp:72
-
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: GCM.cpp:146
-
void clear()
Clears all security-sensitive state from this cipher.
Definition: GCM.cpp:257
-
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: GCM.cpp:246
+
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: GCM.cpp:142
+
void clear()
Clears all security-sensitive state from this cipher.
Definition: GCM.cpp:253
+
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: GCM.cpp:242
size_t ivSize() const
Size of the initialization vector for this cipher, in bytes.
Definition: GCM.cpp:66
void finalize(void *token, size_t len)
Finalizes the authentication process and returns the token.
Definition: GHASH.cpp:121
-
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: GCM.cpp:218
+
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: GCM.cpp:214
void update(const void *data, size_t len)
Updates the message authenticator with more data.
Definition: GHASH.cpp:85
virtual void encryptBlock(uint8_t *output, const uint8_t *input)=0
Encrypts a single block using this cipher.
-
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: GCM.cpp:183
+
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: GCM.cpp:179
virtual bool setKey(const uint8_t *key, size_t len)=0
Sets the key to use for future encryption and decryption operations.
GCMCommon()
Constructs a new cipher in GCM mode.
Definition: GCM.cpp:44
void pad()
Pads the input stream with zero bytes to a multiple of 16.
Definition: GHASH.cpp:137
virtual void clear()=0
Clears all security-sensitive state from this block cipher.
void clear()
Clears the authenticator's state, removing all sensitive data.
Definition: GHASH.cpp:150
virtual ~GCMCommon()
Destroys this cipher object after clearing sensitive information.
Definition: GCM.cpp:56
-
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: GCM.cpp:90
+
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: GCM.cpp:83
virtual size_t keySize() const =0
Default size of the key for this block cipher, in bytes.
size_t keySize() const
Default size of the key for this cipher, in bytes.
Definition: GCM.cpp:61
void reset(const void *key)
Resets the GHASH message authenticator for a new session.
Definition: GHASH.cpp:67
diff --git a/GCM_8h_source.html b/GCM_8h_source.html index 9c3f7fc5..ca24e7ba 100644 --- a/GCM_8h_source.html +++ b/GCM_8h_source.html @@ -167,30 +167,30 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
78 };
79 
80 #endif
-
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: GCM.cpp:226
+
void computeTag(void *tag, size_t len)
Finalizes the encryption process and computes the authentication tag.
Definition: GCM.cpp:222
Implementation of the Galois Counter Mode (GCM).
Definition: GCM.h:71
bool setKey(const uint8_t *key, size_t len)
Sets the key to use for future encryption and decryption operations.
Definition: GCM.cpp:77
size_t tagSize() const
Returns the size of the authentication tag.
Definition: GCM.cpp:72
-
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: GCM.cpp:146
+
void encrypt(uint8_t *output, const uint8_t *input, size_t len)
Encrypts an input buffer and writes the ciphertext to an output buffer.
Definition: GCM.cpp:142
Abstract base class for block ciphers.
Definition: BlockCipher.h:29
GCM()
Constructs a new GCM object for the block cipher T.
Definition: GCM.h:74
Abstract base class for authenticated ciphers.
Concrete base class to assist with implementing GCM for 128-bit block ciphers.
Definition: GCM.h:30
-
void clear()
Clears all security-sensitive state from this cipher.
Definition: GCM.cpp:257
-
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: GCM.cpp:246
+
void clear()
Clears all security-sensitive state from this cipher.
Definition: GCM.cpp:253
+
bool checkTag(const void *tag, size_t len)
Finalizes the decryption process and checks the authentication tag.
Definition: GCM.cpp:242
size_t ivSize() const
Size of the initialization vector for this cipher, in bytes.
Definition: GCM.cpp:66
-
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: GCM.cpp:218
-
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: GCM.cpp:183
+
void addAuthData(const void *data, size_t len)
Adds extra data that will be authenticated but not encrypted.
Definition: GCM.cpp:214
+
void decrypt(uint8_t *output, const uint8_t *input, size_t len)
Decrypts an input buffer and writes the plaintext to an output buffer.
Definition: GCM.cpp:179
GCMCommon()
Constructs a new cipher in GCM mode.
Definition: GCM.cpp:44
void setBlockCipher(BlockCipher *cipher)
Sets the block cipher to use for this GCM object.
Definition: GCM.h:54
Implementation of the GHASH message authenticator.
Definition: GHASH.h:29
virtual ~GCMCommon()
Destroys this cipher object after clearing sensitive information.
Definition: GCM.cpp:56
-
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: GCM.cpp:90
+
bool setIV(const uint8_t *iv, size_t len)
Sets the initialization vector to use for future encryption and decryption operations.
Definition: GCM.cpp:83
size_t keySize() const
Default size of the key for this cipher, in bytes.
Definition: GCM.cpp:61
diff --git a/GF128_8cpp_source.html b/GF128_8cpp_source.html index 170e96b6..a27eaaec 100644 --- a/GF128_8cpp_source.html +++ b/GF128_8cpp_source.html @@ -577,7 +577,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/GF128_8h_source.html b/GF128_8h_source.html index 9c51e054..2785da7d 100644 --- a/GF128_8h_source.html +++ b/GF128_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/GHASH_8cpp_source.html b/GHASH_8cpp_source.html index 07367115..910c4ec6 100644 --- a/GHASH_8cpp_source.html +++ b/GHASH_8cpp_source.html @@ -189,7 +189,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/GHASH_8h_source.html b/GHASH_8h_source.html index abe75d36..ede7a2bd 100644 --- a/GHASH_8h_source.html +++ b/GHASH_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Hash_8cpp_source.html b/Hash_8cpp_source.html index 196107ad..bddf9f76 100644 --- a/Hash_8cpp_source.html +++ b/Hash_8cpp_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Hash_8h_source.html b/Hash_8h_source.html index 21beda31..fc82174c 100644 --- a/Hash_8h_source.html +++ b/Hash_8h_source.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/KeccakCore_8cpp_source.html b/KeccakCore_8cpp_source.html index e2886718..887df2df 100644 --- a/KeccakCore_8cpp_source.html +++ b/KeccakCore_8cpp_source.html @@ -1990,7 +1990,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/KeccakCore_8h_source.html b/KeccakCore_8h_source.html index fa569202..391b8629 100644 --- a/KeccakCore_8h_source.html +++ b/KeccakCore_8h_source.html @@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/NewHope_8cpp_source.html b/NewHope_8cpp_source.html index 5088ea82..2d294f9e 100644 --- a/NewHope_8cpp_source.html +++ b/NewHope_8cpp_source.html @@ -1293,7 +1293,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/NewHope_8h_source.html b/NewHope_8h_source.html index 1c00b705..411855bf 100644 --- a/NewHope_8h_source.html +++ b/NewHope_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/NoiseSource_8cpp_source.html b/NoiseSource_8cpp_source.html index f21c8283..f79bc6cd 100644 --- a/NoiseSource_8cpp_source.html +++ b/NoiseSource_8cpp_source.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/NoiseSource_8h_source.html b/NoiseSource_8h_source.html index d81fc1b0..4312caa8 100644 --- a/NoiseSource_8h_source.html +++ b/NoiseSource_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/OFB_8cpp_source.html b/OFB_8cpp_source.html index 6abbbfac..c73b2815 100644 --- a/OFB_8cpp_source.html +++ b/OFB_8cpp_source.html @@ -205,7 +205,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/OFB_8h_source.html b/OFB_8h_source.html index 42326dce..9cc69009 100644 --- a/OFB_8h_source.html +++ b/OFB_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/OMAC_8cpp_source.html b/OMAC_8cpp_source.html index 87b053bf..8880830d 100644 --- a/OMAC_8cpp_source.html +++ b/OMAC_8cpp_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/OMAC_8h_source.html b/OMAC_8h_source.html index 26ac995c..471c05d8 100644 --- a/OMAC_8h_source.html +++ b/OMAC_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/P521_8cpp_source.html b/P521_8cpp_source.html index 619886a8..961b73ac 100644 --- a/P521_8cpp_source.html +++ b/P521_8cpp_source.html @@ -1333,7 +1333,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/P521_8h_source.html b/P521_8h_source.html index 8e9bd076..39fef748 100644 --- a/P521_8h_source.html +++ b/P521_8h_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Poly1305_8cpp_source.html b/Poly1305_8cpp_source.html index 5de4af04..825b03a4 100644 --- a/Poly1305_8cpp_source.html +++ b/Poly1305_8cpp_source.html @@ -357,7 +357,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Poly1305_8h_source.html b/Poly1305_8h_source.html index 82af92ad..91dc3490 100644 --- a/Poly1305_8h_source.html +++ b/Poly1305_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/RNG_8cpp_source.html b/RNG_8cpp_source.html index 40b7c7d7..c14366e5 100644 --- a/RNG_8cpp_source.html +++ b/RNG_8cpp_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
173 #define RNG_REKEY_BLOCKS 16
174 
175 // Maximum entropy credit that can be contained in the pool.
-
176 #define RNG_MAX_CREDITS 384
+
176 #define RNG_MAX_CREDITS 384u
177 
180 // Imported from Crypto.cpp.
181 extern uint8_t crypto_crc8(uint8_t tag, const void *data, unsigned size);
@@ -486,7 +486,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
571  begin(0);
572 
573  // Decrease the amount of entropy in the pool.
-
574  if (len > (credits / 8))
+
574  if (len > (credits / 8u))
575  credits = 0;
576  else
577  credits -= len * 8;
@@ -538,7 +538,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
662  if (len >= (RNG_MAX_CREDITS / 8))
663  return credits >= RNG_MAX_CREDITS;
664  else
-
665  return len <= (credits / 8);
+
665  return len <= (credits / 8u);
666 }
667 
693 void RNGClass::stir(const uint8_t *data, size_t len, unsigned int credit)
@@ -815,7 +815,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/RNG_8h_source.html b/RNG_8h_source.html index c6a8d966..08a4b78f 100644 --- a/RNG_8h_source.html +++ b/RNG_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/RingOscillatorNoiseSource_8cpp_source.html b/RingOscillatorNoiseSource_8cpp_source.html index 70c2a842..283fe5f8 100644 --- a/RingOscillatorNoiseSource_8cpp_source.html +++ b/RingOscillatorNoiseSource_8cpp_source.html @@ -284,7 +284,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/RingOscillatorNoiseSource_8h_source.html b/RingOscillatorNoiseSource_8h_source.html index 028f99e3..88a5073b 100644 --- a/RingOscillatorNoiseSource_8h_source.html +++ b/RingOscillatorNoiseSource_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA256_8cpp_source.html b/SHA256_8cpp_source.html index 1ccf85b9..5d792380 100644 --- a/SHA256_8cpp_source.html +++ b/SHA256_8cpp_source.html @@ -338,7 +338,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA256_8h_source.html b/SHA256_8h_source.html index a4a347a0..3a75209d 100644 --- a/SHA256_8h_source.html +++ b/SHA256_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA3_8cpp_source.html b/SHA3_8cpp_source.html index 71c0c8dc..d853e66e 100644 --- a/SHA3_8cpp_source.html +++ b/SHA3_8cpp_source.html @@ -256,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA3_8h_source.html b/SHA3_8h_source.html index 5b3744ae..f89f99a8 100644 --- a/SHA3_8h_source.html +++ b/SHA3_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA512_8cpp_source.html b/SHA512_8cpp_source.html index 53cab146..a2de3027 100644 --- a/SHA512_8cpp_source.html +++ b/SHA512_8cpp_source.html @@ -354,7 +354,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHA512_8h_source.html b/SHA512_8h_source.html index 3d13c0fe..25c1f708 100644 --- a/SHA512_8h_source.html +++ b/SHA512_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHAKE_8cpp_source.html b/SHAKE_8cpp_source.html index 763b8eca..4d3dffa3 100644 --- a/SHAKE_8cpp_source.html +++ b/SHAKE_8cpp_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SHAKE_8h_source.html b/SHAKE_8h_source.html index 851d37fa..cb004711 100644 --- a/SHAKE_8h_source.html +++ b/SHAKE_8h_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SpeckSmall_8cpp_source.html b/SpeckSmall_8cpp_source.html index 334c2c36..cad90a11 100644 --- a/SpeckSmall_8cpp_source.html +++ b/SpeckSmall_8cpp_source.html @@ -648,7 +648,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SpeckSmall_8h_source.html b/SpeckSmall_8h_source.html index 569516d2..8576d7ce 100644 --- a/SpeckSmall_8h_source.html +++ b/SpeckSmall_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SpeckTiny_8cpp_source.html b/SpeckTiny_8cpp_source.html index d9a611a9..5e5119b2 100644 --- a/SpeckTiny_8cpp_source.html +++ b/SpeckTiny_8cpp_source.html @@ -516,7 +516,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/SpeckTiny_8h_source.html b/SpeckTiny_8h_source.html index 617ba263..7df06d43 100644 --- a/SpeckTiny_8h_source.html +++ b/SpeckTiny_8h_source.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Speck_8cpp_source.html b/Speck_8cpp_source.html index b4780a29..b0b6b0be 100644 --- a/Speck_8cpp_source.html +++ b/Speck_8cpp_source.html @@ -617,7 +617,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/Speck_8h_source.html b/Speck_8h_source.html index 29db3477..901e9ccb 100644 --- a/Speck_8h_source.html +++ b/Speck_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/TransistorNoiseSource_8cpp_source.html b/TransistorNoiseSource_8cpp_source.html index 5b33b93d..459ca401 100644 --- a/TransistorNoiseSource_8cpp_source.html +++ b/TransistorNoiseSource_8cpp_source.html @@ -294,7 +294,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/TransistorNoiseSource_8h_source.html b/TransistorNoiseSource_8h_source.html index e472bea8..66ab1837 100644 --- a/TransistorNoiseSource_8h_source.html +++ b/TransistorNoiseSource_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/XOF_8cpp_source.html b/XOF_8cpp_source.html index ddc81b28..0ecac472 100644 --- a/XOF_8cpp_source.html +++ b/XOF_8cpp_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/XOF_8h_source.html b/XOF_8h_source.html index 8fe2bd24..87fbe0bc 100644 --- a/XOF_8h_source.html +++ b/XOF_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/XTS_8cpp_source.html b/XTS_8cpp_source.html index eba6b1f6..1fbad48b 100644 --- a/XTS_8cpp_source.html +++ b/XTS_8cpp_source.html @@ -289,7 +289,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/XTS_8h_source.html b/XTS_8h_source.html index b1b1cb52..23a9a4be 100644 --- a/XTS_8h_source.html +++ b/XTS_8h_source.html @@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/annotated.html b/annotated.html index 96c04e3f..2ef87f36 100644 --- a/annotated.html +++ b/annotated.html @@ -88,70 +88,71 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
Here are the classes, structs, unions and interfaces with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
oCAES128AES block cipher with 128-bit keys
oCAES192AES block cipher with 192-bit keys
oCAES256AES block cipher with 256-bit keys
oCAESCommonAbstract base class for AES block ciphers
oCAESSmall128AES block cipher with 128-bit keys and reduced memory usage
oCAESSmall256AES block cipher with 256-bit keys and reduced memory usage
oCAESTiny128AES block cipher with 128-bit keys and tiny memory usage
oCAESTiny256AES block cipher with 256-bit keys and tiny memory usage
oCAuthenticatedCipherAbstract base class for authenticated ciphers
oCBigNumberUtilUtilities to assist with implementing big number arithmetic
oCBLAKE2bBLAKE2b hash algorithm
oCBLAKE2sBLAKE2s hash algorithm
oCBlockCipherAbstract base class for block ciphers
oCCBCImplementation of the Cipher Block Chaining (CBC) mode for 128-bit block ciphers
oCCBCCommonConcrete base class to assist with implementing CBC for 128-bit block ciphers
oCCFBImplementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers
oCCFBCommonConcrete base class to assist with implementing CFB for 128-bit block ciphers
oCChaChaChaCha stream cipher
oCChaChaPolyAuthenticated cipher based on ChaCha and Poly1305
oCCipherAbstract base class for stream ciphers
oCCTRImplementation of the Counter (CTR) mode for 128-bit block ciphers
oCCTRCommonConcrete base class to assist with implementing CTR mode for 128-bit block ciphers
oCCurve25519Diffie-Hellman key agreement based on the elliptic curve modulo 2^255 - 19
oCEAXImplementation of the EAX authenticated cipher
oCEAXCommonConcrete base class to assist with implementing EAX for 128-bit block ciphers
oCEd25519Digital signatures based on the elliptic curve modulo 2^255 - 19
oCGCMImplementation of the Galois Counter Mode (GCM)
oCGCMCommonConcrete base class to assist with implementing GCM for 128-bit block ciphers
oCGF128Operations in the Galois field GF(2^128)
oCGHASHImplementation of the GHASH message authenticator
oCHashAbstract base class for cryptographic hash algorithms
oCKeccakCoreKeccak core sponge function
oCNewHopeNewHope post-quantum key exchange algorithm
oCNewHopePrivateKeyNewHope private key representation
oCNoiseSourceAbstract base class for random noise sources
oCOFBImplementation of the Output Feedback (OFB) mode for 128-bit block ciphers
oCOFBCommonConcrete base class to assist with implementing OFB for 128-bit block ciphers
oCOMACImplementation of the OMAC message authenticator
oCP521Elliptic curve operations with the NIST P-521 curve
oCPoly1305Poly1305 message authenticator
oCRingOscillatorNoiseSourceProcesses the signal from a ring oscillator based noise source
oCRNGClassPseudo random number generator suitable for cryptography
oCSHA256SHA-256 hash algorithm
oCSHA3_256SHA3-256 hash algorithm
oCSHA3_512SHA3-512 hash algorithm
oCSHA512SHA-512 hash algorithm
oCSHAKEAbstract base class for the SHAKE Extendable-Output Functions (XOFs)
oCSHAKE128SHAKE Extendable-Output Function (XOF) with 128-bit security
oCSHAKE256SHAKE Extendable-Output Function (XOF) with 256-bit security
oCSpeckSpeck block cipher with a 128-bit block size
oCSpeckSmallSpeck block cipher with a 128-bit block size (small-memory version)
oCSpeckTinySpeck block cipher with a 128-bit block size (tiny-memory version)
oCTransistorNoiseSourceProcesses the signal from a transistor-based noise source
oCXOFAbstract base class for Extendable-Output Functions (XOFs)
oCXTSImplementation of the XTS mode for 128-bit block ciphers
oCXTSCommonConcrete base class to assist with implementing XTS mode for 128-bit block ciphers
oCXTSSingleKeyImplementation of the single-key XTS mode for 128-bit block ciphers
\CXTSSingleKeyCommonConcrete base class to assist with implementing single-key XTS mode for 128-bit block ciphers
oCAcorn128ACORN-128 authenticated cipher
oCAES128AES block cipher with 128-bit keys
oCAES192AES block cipher with 192-bit keys
oCAES256AES block cipher with 256-bit keys
oCAESCommonAbstract base class for AES block ciphers
oCAESSmall128AES block cipher with 128-bit keys and reduced memory usage
oCAESSmall256AES block cipher with 256-bit keys and reduced memory usage
oCAESTiny128AES block cipher with 128-bit keys and tiny memory usage
oCAESTiny256AES block cipher with 256-bit keys and tiny memory usage
oCAuthenticatedCipherAbstract base class for authenticated ciphers
oCBigNumberUtilUtilities to assist with implementing big number arithmetic
oCBLAKE2bBLAKE2b hash algorithm
oCBLAKE2sBLAKE2s hash algorithm
oCBlockCipherAbstract base class for block ciphers
oCCBCImplementation of the Cipher Block Chaining (CBC) mode for 128-bit block ciphers
oCCBCCommonConcrete base class to assist with implementing CBC for 128-bit block ciphers
oCCFBImplementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers
oCCFBCommonConcrete base class to assist with implementing CFB for 128-bit block ciphers
oCChaChaChaCha stream cipher
oCChaChaPolyAuthenticated cipher based on ChaCha and Poly1305
oCCipherAbstract base class for stream ciphers
oCCTRImplementation of the Counter (CTR) mode for 128-bit block ciphers
oCCTRCommonConcrete base class to assist with implementing CTR mode for 128-bit block ciphers
oCCurve25519Diffie-Hellman key agreement based on the elliptic curve modulo 2^255 - 19
oCEAXImplementation of the EAX authenticated cipher
oCEAXCommonConcrete base class to assist with implementing EAX for 128-bit block ciphers
oCEd25519Digital signatures based on the elliptic curve modulo 2^255 - 19
oCGCMImplementation of the Galois Counter Mode (GCM)
oCGCMCommonConcrete base class to assist with implementing GCM for 128-bit block ciphers
oCGF128Operations in the Galois field GF(2^128)
oCGHASHImplementation of the GHASH message authenticator
oCHashAbstract base class for cryptographic hash algorithms
oCKeccakCoreKeccak core sponge function
oCNewHopeNewHope post-quantum key exchange algorithm
oCNewHopePrivateKeyNewHope private key representation
oCNoiseSourceAbstract base class for random noise sources
oCOFBImplementation of the Output Feedback (OFB) mode for 128-bit block ciphers
oCOFBCommonConcrete base class to assist with implementing OFB for 128-bit block ciphers
oCOMACImplementation of the OMAC message authenticator
oCP521Elliptic curve operations with the NIST P-521 curve
oCPoly1305Poly1305 message authenticator
oCRingOscillatorNoiseSourceProcesses the signal from a ring oscillator based noise source
oCRNGClassPseudo random number generator suitable for cryptography
oCSHA256SHA-256 hash algorithm
oCSHA3_256SHA3-256 hash algorithm
oCSHA3_512SHA3-512 hash algorithm
oCSHA512SHA-512 hash algorithm
oCSHAKEAbstract base class for the SHAKE Extendable-Output Functions (XOFs)
oCSHAKE128SHAKE Extendable-Output Function (XOF) with 128-bit security
oCSHAKE256SHAKE Extendable-Output Function (XOF) with 256-bit security
oCSpeckSpeck block cipher with a 128-bit block size
oCSpeckSmallSpeck block cipher with a 128-bit block size (small-memory version)
oCSpeckTinySpeck block cipher with a 128-bit block size (tiny-memory version)
oCTransistorNoiseSourceProcesses the signal from a transistor-based noise source
oCXOFAbstract base class for Extendable-Output Functions (XOFs)
oCXTSImplementation of the XTS mode for 128-bit block ciphers
oCXTSCommonConcrete base class to assist with implementing XTS mode for 128-bit block ciphers
oCXTSSingleKeyImplementation of the single-key XTS mode for 128-bit block ciphers
\CXTSSingleKeyCommonConcrete base class to assist with implementing single-key XTS mode for 128-bit block ciphers
diff --git a/classAES128-members.html b/classAES128-members.html index ef254ab7..063285bb 100644 --- a/classAES128-members.html +++ b/classAES128-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAES128.html b/classAES128.html index 0d1cfd42..49ab5f71 100644 --- a/classAES128.html +++ b/classAES128.html @@ -264,7 +264,7 @@ Additional Inherited Members diff --git a/classAES192-members.html b/classAES192-members.html index 4b7e86e3..09622d64 100644 --- a/classAES192-members.html +++ b/classAES192-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAES192.html b/classAES192.html index f76a88d6..f7eecbb2 100644 --- a/classAES192.html +++ b/classAES192.html @@ -264,7 +264,7 @@ Additional Inherited Members diff --git a/classAES256-members.html b/classAES256-members.html index b275fb81..de30cccd 100644 --- a/classAES256-members.html +++ b/classAES256-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAES256.html b/classAES256.html index 1c691a56..8564dfa5 100644 --- a/classAES256.html +++ b/classAES256.html @@ -264,7 +264,7 @@ Additional Inherited Members diff --git a/classAESCommon-members.html b/classAESCommon-members.html index 47283c4c..a5ca4752 100644 --- a/classAESCommon-members.html +++ b/classAESCommon-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAESCommon.html b/classAESCommon.html index 7fbf1a16..91b4bc3e 100644 --- a/classAESCommon.html +++ b/classAESCommon.html @@ -337,7 +337,7 @@ class AESSmall256 diff --git a/classAESSmall128-members.html b/classAESSmall128-members.html index e5649532..196ce4d8 100644 --- a/classAESSmall128-members.html +++ b/classAESSmall128-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAESSmall128.html b/classAESSmall128.html index 8bc3a6a9..674ee647 100644 --- a/classAESSmall128.html +++ b/classAESSmall128.html @@ -307,7 +307,7 @@ Public Member Functions diff --git a/classAESSmall256-members.html b/classAESSmall256-members.html index 8d17f2b1..574b361c 100644 --- a/classAESSmall256-members.html +++ b/classAESSmall256-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAESSmall256.html b/classAESSmall256.html index 37787c36..6981b428 100644 --- a/classAESSmall256.html +++ b/classAESSmall256.html @@ -307,7 +307,7 @@ Public Member Functions diff --git a/classAESTiny128-members.html b/classAESTiny128-members.html index 022eff3b..22057446 100644 --- a/classAESTiny128-members.html +++ b/classAESTiny128-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAESTiny128.html b/classAESTiny128.html index 05404b77..ed60c398 100644 --- a/classAESTiny128.html +++ b/classAESTiny128.html @@ -422,7 +422,7 @@ Public Member Functions diff --git a/classAESTiny256-members.html b/classAESTiny256-members.html index a6b8b8c0..4b91dc47 100644 --- a/classAESTiny256-members.html +++ b/classAESTiny256-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAESTiny256.html b/classAESTiny256.html index caee43bd..902de2e7 100644 --- a/classAESTiny256.html +++ b/classAESTiny256.html @@ -422,7 +422,7 @@ Public Member Functions diff --git a/classAcorn128-members.html b/classAcorn128-members.html new file mode 100644 index 00000000..7a3416e1 --- /dev/null +++ b/classAcorn128-members.html @@ -0,0 +1,117 @@ + + + + + + +Arduino Cryptography Library: Member List + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ +
+
+
+
Acorn128 Member List
+
+
+ +

This is the complete list of members for Acorn128, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
Acorn128()Acorn128
addAuthData(const void *data, size_t len)Acorn128virtual
AuthenticatedCipher()AuthenticatedCipher
checkTag(const void *tag, size_t len)Acorn128virtual
Cipher()Cipher
clear()Acorn128virtual
computeTag(void *tag, size_t len)Acorn128virtual
decrypt(uint8_t *output, const uint8_t *input, size_t len)Acorn128virtual
encrypt(uint8_t *output, const uint8_t *input, size_t len)Acorn128virtual
ivSize() const Acorn128virtual
keySize() const Acorn128virtual
setIV(const uint8_t *iv, size_t len)Acorn128virtual
setKey(const uint8_t *key, size_t len)Acorn128virtual
tagSize() const Acorn128virtual
~Acorn128()Acorn128virtual
~AuthenticatedCipher()AuthenticatedCiphervirtual
~Cipher()Ciphervirtual
+ + + + diff --git a/classAcorn128.html b/classAcorn128.html new file mode 100644 index 00000000..5356a5d8 --- /dev/null +++ b/classAcorn128.html @@ -0,0 +1,643 @@ + + + + + + +Arduino Cryptography Library: Acorn128 Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Arduino Cryptography Library +
+
+
+ + + + + + + + + +
+ +
+ +
+
+ +
+
Acorn128 Class Reference
+
+
+ +

ACORN-128 authenticated cipher. + More...

+ +

#include <Acorn128.h>

+
+Inheritance diagram for Acorn128:
+
+
+ + +AuthenticatedCipher +Cipher + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Acorn128 ()
 Constructs a new Acorn128 authenticated cipher.
 
+virtual ~Acorn128 ()
 Destroys this Acorn128 authenticated cipher.
 
size_t keySize () const
 Gets the size of the Acorn128 key in bytes. More...
 
size_t ivSize () const
 Gets the size of the Acorn128 initialization vector in bytes. More...
 
size_t tagSize () const
 Gets the size of the Acorn128 authentication tag in bytes. More...
 
bool setKey (const uint8_t *key, size_t len)
 Sets the key to use for future encryption and decryption operations. More...
 
bool setIV (const uint8_t *iv, size_t len)
 Sets the initialization vector to use for future encryption and decryption operations. More...
 
void encrypt (uint8_t *output, const uint8_t *input, size_t len)
 Encrypts an input buffer and writes the ciphertext to an output buffer. More...
 
void decrypt (uint8_t *output, const uint8_t *input, size_t len)
 Decrypts an input buffer and writes the plaintext to an output buffer. More...
 
void addAuthData (const void *data, size_t len)
 Adds extra data that will be authenticated but not encrypted. More...
 
void computeTag (void *tag, size_t len)
 Finalizes the encryption process and computes the authentication tag. More...
 
bool checkTag (const void *tag, size_t len)
 Finalizes the decryption process and checks the authentication tag. More...
 
+void clear ()
 Clears all security-sensitive state from this cipher object.
 
- Public Member Functions inherited from AuthenticatedCipher
AuthenticatedCipher ()
 Constructs a new authenticated cipher.
 
+virtual ~AuthenticatedCipher ()
 Destroys this authenticated cipher.
 
- Public Member Functions inherited from Cipher
Cipher ()
 Constructs a new cipher object.
 
virtual ~Cipher ()
 Destroys this cipher object. More...
 
+

Detailed Description

+

ACORN-128 authenticated cipher.

+

Acorn128 is an authenticated cipher designed for memory-limited environments with a 128-bit key, a 128-bit initialization vector, and a 128-bit authentication tag. It was one of the finalists in the CAESAR AEAD competition.

+

References: http://competitions.cr.yp.to/round3/acornv3.pdf, http://competitions.cr.yp.to/caesar-submissions.html

+
See Also
AuthenticatedCipher
+ +

Definition at line 67 of file Acorn128.h.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Acorn128::addAuthData (const void * data,
size_t len 
)
+
+virtual
+
+ +

Adds extra data that will be authenticated but not encrypted.

+
Parameters
+ + + +
dataThe extra data to be authenticated.
lenThe number of bytes of extra data to be authenticated.
+
+
+

This function must be called before the first call to encrypt() or decrypt(). That is, it is assumed that all extra data for authentication is available before the first payload data block and that it will be prepended to the payload for authentication. If the subclass needs to process the extra data after the payload, then it is responsible for saving data away until it is needed during computeTag() or checkTag().

+

This function can be called multiple times with separate extra data blocks for authentication. All such data will be concatenated into a single block for authentication purposes.

+ +

Implements AuthenticatedCipher.

+ +

Definition at line 608 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Acorn128::checkTag (const void * tag,
size_t len 
)
+
+virtual
+
+ +

Finalizes the decryption process and checks the authentication tag.

+
Parameters
+ + + +
tagThe tag value from the incoming ciphertext to be checked.
lenThe length of the tag value in bytes, which may be less than tagSize().
+
+
+
Returns
Returns true if the tag is identical to the first len bytes of the authentication tag that was calculated during the decryption process. Returns false otherwise.
+

This function must be called after the final block of ciphertext is passed to decrypt() to determine if the data could be authenticated.

+
Note
Authenticated cipher modes usually require that if the tag could not be verified, then all of the data that was previously decrypted must be discarded. It is unwise to use the decrypted data for any purpose before it can be verified. Callers are responsible for ensuring that any data returned via previous calls to decrypt() is discarded if checkTag() returns false.
+
See Also
computeTag()
+ +

Implements AuthenticatedCipher.

+ +

Definition at line 662 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Acorn128::computeTag (void * tag,
size_t len 
)
+
+virtual
+
+ +

Finalizes the encryption process and computes the authentication tag.

+
Parameters
+ + + +
tagPoints to the buffer to write the tag to.
lenThe length of the tag, which may be less than tagSize() to truncate the tag to the first len bytes.
+
+
+
See Also
checkTag()
+ +

Implements AuthenticatedCipher.

+ +

Definition at line 633 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Acorn128::decrypt (uint8_t * output,
const uint8_t * input,
size_t len 
)
+
+virtual
+
+ +

Decrypts an input buffer and writes the plaintext to an output buffer.

+
Parameters
+ + + + +
outputThe output buffer to write to, which may be the same buffer as input. The output buffer must have at least as many bytes as the input buffer.
inputThe input buffer to read from.
lenThe number of bytes to decrypt.
+
+
+

The decrypt() function can be called multiple times with different regions of the ciphertext data.

+
See Also
encrypt()
+ +

Implements Cipher.

+ +

Definition at line 581 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Acorn128::encrypt (uint8_t * output,
const uint8_t * input,
size_t len 
)
+
+virtual
+
+ +

Encrypts an input buffer and writes the ciphertext to an output buffer.

+
Parameters
+ + + + +
outputThe output buffer to write to, which may be the same buffer as input. The output buffer must have at least as many bytes as the input buffer.
inputThe input buffer to read from.
lenThe number of bytes to encrypt.
+
+
+

The encrypt() function can be called multiple times with different regions of the plaintext data.

+
See Also
decrypt()
+ +

Implements Cipher.

+ +

Definition at line 554 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t Acorn128::ivSize () const
+
+virtual
+
+ +

Gets the size of the Acorn128 initialization vector in bytes.

+
Returns
Always returns 16, indicating a 128-bit IV.
+

Authentication tags may be truncated to 8 bytes, but the algorithm authors recommend using a full 16-byte tag.

+ +

Implements Cipher.

+ +

Definition at line 77 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t Acorn128::keySize () const
+
+virtual
+
+ +

Gets the size of the Acorn128 key in bytes.

+
Returns
Always returns 16, indicating a 128-bit key.
+ +

Implements Cipher.

+ +

Definition at line 64 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Acorn128::setIV (const uint8_t * iv,
size_t len 
)
+
+virtual
+
+ +

Sets the initialization vector to use for future encryption and decryption operations.

+
Parameters
+ + + +
ivThe initialization vector to use.
lenThe length of the initialization vector in bytes.
+
+
+
Returns
Returns false if the length is not supported.
+

Initialization vectors should be set before the first call to encrypt() or decrypt() after a setKey() call. If the initialization vector is changed after encryption or decryption begins, then the behaviour is undefined.

+
Note
The IV is not encoded into the output stream by encrypt(). The caller is responsible for communicating the IV to the other party.
+
See Also
ivSize()
+ +

Implements Cipher.

+ +

Definition at line 495 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Acorn128::setKey (const uint8_t * key,
size_t len 
)
+
+virtual
+
+ +

Sets the key to use for future encryption and decryption operations.

+
Parameters
+ + + +
keyThe key to use.
lenThe length of the key in bytes.
+
+
+
Returns
Returns false if the key length is not supported, or the key is somehow "weak" and unusable by this cipher.
+

Use clear() or the destructor to remove the key and any other sensitive data from the object once encryption or decryption is complete.

+

Calling setKey() resets the cipher. Any temporary data that was being retained for encrypting partial blocks will be abandoned.

+
See Also
keySize(), clear()
+ +

Implements Cipher.

+ +

Definition at line 477 of file Acorn128.cpp.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
size_t Acorn128::tagSize () const
+
+virtual
+
+ +

Gets the size of the Acorn128 authentication tag in bytes.

+
Returns
Always returns 16, indicating a 128-bit authentication tag.
+ +

Implements AuthenticatedCipher.

+ +

Definition at line 87 of file Acorn128.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/classAcorn128.png b/classAcorn128.png new file mode 100644 index 0000000000000000000000000000000000000000..982b8fd7cab8fdfbbf4acd2a789f9dce310f832c GIT binary patch literal 682 zcmV;b0#*HqP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0006xNkl5_vW5C)r%D&PN+S5Y}UV>Fpm?PRw_VWc^R zAxUp@)t_vQ@~i$V>u*B87U?b(!@`UWmj-mlpT>}jsdXHMB)!C~`EL|gx8phgDlsML zlt<_PMmoNm|ErDv&idEqKj;6PcPyJylKR zG8E0o(|z@NiJM}Ie;)Qk>M}1w^HkN9*yUTrzt!0^m=pg}qM-8MZqz!q-o;gsBPxHD zGK-0i3%upeO{<_i{~|H7f2`P9(`tPhe;eCW9L&E?$4&oY<9F8oVE=O_?{#+IpHq0s z^D6)6?iTr94n}^tKL0uY>&`azUy?q-&cS!T|NgoE7yL2CXa~R@IsikA{at4}0Aqiz zHywbr|KI1o`vDAbKY$(X2e8Ba0Cu<^zz+8V*x`NvJKPU&gAhV6gaBZM``r(4%6Zrr zF{E@U01kQ8e;PM?N2UVcn5+JFdP8mhH#JoY@w9*LZ!x{WoT&YuSpV7&gbnJp=jWfk zDqr!J>x2H>>8XDa0C30~{(Aqv?O)~p%0F+^!{;C16S&{~09Lp^gb)n*1EH2QDhksO Q(*OVf07*qoM6N<$f|qhw00000 literal 0 HcmV?d00001 diff --git a/classAuthenticatedCipher-members.html b/classAuthenticatedCipher-members.html index f345c2ed..e257ec7f 100644 --- a/classAuthenticatedCipher-members.html +++ b/classAuthenticatedCipher-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classAuthenticatedCipher.html b/classAuthenticatedCipher.html index a51d92c0..a8206520 100644 --- a/classAuthenticatedCipher.html +++ b/classAuthenticatedCipher.html @@ -100,12 +100,13 @@ Inheritance diagram for AuthenticatedCipher:
-Cipher -ChaChaPoly -EAXCommon -GCMCommon -EAX< T > -GCM< T > +Cipher +Acorn128 +ChaChaPoly +EAXCommon +GCMCommon +EAX< T > +GCM< T >
@@ -214,7 +215,7 @@ virtual  diff --git a/classBLAKE2s-members.html b/classBLAKE2s-members.html index 94992d3d..15966aff 100644 --- a/classBLAKE2s-members.html +++ b/classBLAKE2s-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
encrypt() or decrypt(). That is, it is assumed that all extra data for authentication is available before the first payload data block and that it will be prepended to the payload for authentication. If the subclass needs to process the extra data after the payload, then it is responsible for saving data away until it is needed during computeTag() or checkTag().

This function can be called multiple times with separate extra data blocks for authentication. All such data will be concatenated into a single block for authentication purposes.

-

Implemented in ChaChaPoly, EAXCommon, and GCMCommon.

+

Implemented in Acorn128, ChaChaPoly, EAXCommon, and GCMCommon.

@@ -263,7 +264,7 @@ virtual 
Note
Authenticated cipher modes usually require that if the tag could not be verified, then all of the data that was previously decrypted must be discarded. It is unwise to use the decrypted data for any purpose before it can be verified. Callers are responsible for ensuring that any data returned via previous calls to decrypt() is discarded if checkTag() returns false.
See Also
computeTag()
-

Implemented in ChaChaPoly, EAXCommon, and GCMCommon.

+

Implemented in Acorn128, ChaChaPoly, EAXCommon, and GCMCommon.

@@ -309,7 +310,7 @@ virtual 
See Also
checkTag()
-

Implemented in ChaChaPoly, EAXCommon, and GCMCommon.

+

Implemented in Acorn128, ChaChaPoly, EAXCommon, and GCMCommon.

@@ -339,7 +340,7 @@ virtual 
See Also
computeTag()
-

Implemented in ChaChaPoly, EAXCommon, and GCMCommon.

+

Implemented in Acorn128, ChaChaPoly, EAXCommon, and GCMCommon.

@@ -350,7 +351,7 @@ virtual 
diff --git a/classAuthenticatedCipher.png b/classAuthenticatedCipher.png index 3dc82a1cdbe01654cc3509a8e48dc5364dfc92e6..582c780f4e39b899413c35271b31b44f09ea55e3 100644 GIT binary patch literal 2048 zcmcIldr(tX8V@9%>?gc}4ZB2B+e-+brs z{m$?Eozk6Ap#(dU9R`CTgolMhV=&ev(3jX?fjzuuYYu3fcSbO%X0sV|CuZgk^Z!{6 zdar+pM6#?@;{k>?Inhxu7!YLn)ITydV=(XV!$X1?`BpmZfxL@XiPTZ9+}UKVEhwnE zu1e|PpBouWv%`}r?PM_cJElw zOytEd9VoB*me|X-EL8u*uO(JxWfuo~sh<@*o9$fsX~6(!^c z{ur>`S7}Uh%9;4)_jx2;Po(T5T$dywOQg<1)@Qcv+3S)ra(2J#zJdrPPrpE15jHx} zaY{}*q^G=eb6659qgYd0_OpzQ%Ewu4LaW_RI=OTChPSUVVE4JVhi~||_nU^vlYtzH z%-$OJ!7gyAKHYmX91H+;hY$JhT#~^cP(Mk@zKS`6we4obA?4*&sV(R$ z=fP4Tu(r`~B$os%L`E#7z!6rEVHhi*6)|8!`~@iko-bFrDRca59AMbtGm6ualSA;! zKKpKmYHkfgzrD=QzQ80f9$mVLq8{HLq-FUH+vX>o?LZAvS zOFu=2v>i}*tcbPZ;-@@xvgMcu^8$(chbDAi;Kx*Pt91R4uhytxz{jq&i=^xwy@?Ro z(ETzN(ighCx5*R(y;>6k&ue_##HdvJ#pao;BM+KrOW2HFow!+=a?>2eo1Qp{ThMy! z+*_WCP7U8zZD}oE;2Tq-8_<@XJv=2oZ<|ITXFl=U)Ct3UfIV9juXp9T)lVn3ELC5E zVXxTOM+W1SB;CBoS8)!lJm55b7;1T7&axgMGOI~2Ebco3p=jc$4+4Z}vy0txe#G@W zZoEo}HW)V`1>HSV9*PW$+rMSN+sQ#Fx(_f5MJyJ^(X>(R*s@pMyqR2=^*7Rr0)bxrTy`wzGX1n1cft`OOG@M_uM|n; zzv=Vu9RF3Y|96h3zF$9K7oO1iE9RDGerWTzU@D3RNTYcu%6Ed!dm|wPP&ESliV_kX z3lbGtVQ({1xAsOg=FRFN4o;mBll@A>RVEHN zV$NOt9s147oYO)pA9E;@P%N$vA^hT96Fru8y}zPiBe(s_4mQj?B-j>Q6SWdL&(sl* zYws&!j`@9%-s_hHpKerd8FxmX?XoPOxIjv$e(`vs>KWv{cn!UUvg|G%Kl)L)ic^`c z>bgCCxxjEoB#lE-)trUr0#d8)siKMX@z1GDkH=rGp<{Q&HnB#+uGH$Z^{p>PWr%B0 z0#PLLT>h7&Fw4%7Ap64NwQ5k=ZXlW0`3h(%4v-K;!Vx+_Ku1bQACiBA<*O%b6Zs#u b&naycSNB||@-c>tDZG)dWspohI)rHG*jAam(yQ$Q zO;ir+9hyp`gf-TL*yyYzAE6o~MMlcUX!gx+drrHjKX&gq_ul88`#k49zu)t__wsjn zxZu@DY8VU#@5*%Y#9&ll)Ry4BK}WgYwPWa{z02L(S*cW_=F8VJ2|2%>My;hTkw}*D z`zh!WcgWMj3xhg+YF(|~TQQh#gI%3=cpp}I^K?8>UaRi>Yihs9H@G!w)8=6MRVslI9Lc zTH+b+XDEhJTgLkZtlp!gZ+Uf9` zk(RTKm07-Ma19g?H3x!&M8HhmM3*1Swq*p%HUaSsqUd#d#Y4t65n=UKWb(yxWyw43 zdJ!b$Cp6wDJ78}Edb%4VVg8joJ`z5b4|i5%oruw)_sK(58OMiTG`Zc%cRU79^;~|| zu1hb>)0`mD`|M-N{gU3p)wit$_i+6~{VhH#MjcFQ-lmva-|Fz6?hg52Y3dT+*w8dq zIMNrf+i-!qdIfuE$Qs5yvuwu-z3)H$2EATEkyf>uKGi2)Lf_QCs$z|rA%VOW>4Ho0^q7D zWa^taL575KgA9r0za5lGd{pIilEnOyv1Pd}G?wE91hH+ps|kXXtGf+0IYCk;*k#Ny zWFXw{sGguB??71P0*{Pv$vy@3Bp>5Zr5Bjc9-8qa$tEdjYWu0Z;0&NgyD6it9!f3a zMTF^%UAfy`kW(>fdDF^2Y)fO^j{92t@@Ct)WdF^B+Vq)vp>)c8wj}vzTy3pI9m3`N zWS39qHrZsS@IpK+gV#)|#dNyP zJ&h|X9}$(xXLad;0Xhm=#`$V_5D>AwFm~f;Xbkdrin&2!ZI6-sG>klO<`uS9GDcc? zoxDq)U>E+901%Qt&g+)-21xz018Q?!$c5Cn8{EKXJ-@+7S)9h)C=}2`I;U=$Zx<|^ z9}t)MHTOZfkB_y5#I6eWN?0vgOD}gBAC45e3(Q4p&R^z$V0Us1g?_|kR7HLKN#t*= zE~`EFYhz^Z7EIONR(bzo?g`GQ#iDf1w9(vTNzFV}iktA{kDvIKh(vxMn3M@4 zBm)Mg7}-MrK=Y+iR2ZOz$P~bl`6V4UHcM%&&e8oBaEg$shv^o4i4mW$Uz*rgOpGR` zv(ZN&GmxC(eT8N4)|I200t?7iUsaRp|K57LrzA2zDA=0S`3{TMN@s5c!Bj{LBS;Pb zeKCFbFsl1IEJ)!D6f8#A*3IfsNPP%0Auop4XV1yD^^WH$%mHDgbJH+8&9k|a@qV%J z_&};a;oYUljvxYd)VNn^^tsXOEe5B!$K%S|^|ss>GSqbfGn1{()Zfi1FKL>({;{EP z&hhNw-WJ;&AtR_w*3k}ksUO{)(T1-=UfJ4R0ItGx_-S`mo? diff --git a/classBLAKE2b.html b/classBLAKE2b.html index 16787936..8e2165df 100644 --- a/classBLAKE2b.html +++ b/classBLAKE2b.html @@ -599,7 +599,7 @@ Additional Inherited Members
diff --git a/classBLAKE2s.html b/classBLAKE2s.html index fbdbd695..09052292 100644 --- a/classBLAKE2s.html +++ b/classBLAKE2s.html @@ -599,7 +599,7 @@ Additional Inherited Members diff --git a/classBigNumberUtil-members.html b/classBigNumberUtil-members.html index 63c6ee11..8e316a54 100644 --- a/classBigNumberUtil-members.html +++ b/classBigNumberUtil-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classBigNumberUtil.html b/classBigNumberUtil.html index d622308e..cdb8cd51 100644 --- a/classBigNumberUtil.html +++ b/classBigNumberUtil.html @@ -942,7 +942,7 @@ Static Public Member Functions diff --git a/classBlockCipher-members.html b/classBlockCipher-members.html index 4e63b31a..c620e199 100644 --- a/classBlockCipher-members.html +++ b/classBlockCipher-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classBlockCipher.html b/classBlockCipher.html index c962ce45..1e897b8b 100644 --- a/classBlockCipher.html +++ b/classBlockCipher.html @@ -413,7 +413,7 @@ Public Member Functions diff --git a/classCBC-members.html b/classCBC-members.html index f76a66af..914c0fdc 100644 --- a/classCBC-members.html +++ b/classCBC-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCBC.html b/classCBC.html index 230d568f..ebfbc143 100644 --- a/classCBC.html +++ b/classCBC.html @@ -184,7 +184,7 @@ class CBC< T > diff --git a/classCBCCommon-members.html b/classCBCCommon-members.html index 1b6b6744..78cbe445 100644 --- a/classCBCCommon-members.html +++ b/classCBCCommon-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCBCCommon.html b/classCBCCommon.html index f23f7623..409c42f3 100644 --- a/classCBCCommon.html +++ b/classCBCCommon.html @@ -533,7 +533,7 @@ Protected Member Functions diff --git a/classCFB-members.html b/classCFB-members.html index 6a600173..0b9deb7c 100644 --- a/classCFB-members.html +++ b/classCFB-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCFB.html b/classCFB.html index a8692e6c..9ea3f108 100644 --- a/classCFB.html +++ b/classCFB.html @@ -184,7 +184,7 @@ class CFB< T > diff --git a/classCFBCommon-members.html b/classCFBCommon-members.html index 94eca675..879142aa 100644 --- a/classCFBCommon-members.html +++ b/classCFBCommon-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCFBCommon.html b/classCFBCommon.html index d5e39771..4621187b 100644 --- a/classCFBCommon.html +++ b/classCFBCommon.html @@ -533,7 +533,7 @@ Protected Member Functions diff --git a/classCTR-members.html b/classCTR-members.html index fcd4dd70..df5a533b 100644 --- a/classCTR-members.html +++ b/classCTR-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCTR.html b/classCTR.html index 8f7ba91d..db396e9b 100644 --- a/classCTR.html +++ b/classCTR.html @@ -180,7 +180,7 @@ class CTR< T > diff --git a/classCTRCommon-members.html b/classCTRCommon-members.html index 5f642d6c..9233ed33 100644 --- a/classCTRCommon-members.html +++ b/classCTRCommon-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCTRCommon.html b/classCTRCommon.html index c5f0651c..3f20bd70 100644 --- a/classCTRCommon.html +++ b/classCTRCommon.html @@ -562,7 +562,7 @@ Protected Member Functions diff --git a/classChaCha-members.html b/classChaCha-members.html index f92dd7ff..073dd2b2 100644 --- a/classChaCha-members.html +++ b/classChaCha-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classChaCha.html b/classChaCha.html index 535c5e69..98c509c2 100644 --- a/classChaCha.html +++ b/classChaCha.html @@ -672,7 +672,7 @@ class ChaChaPoly< diff --git a/classChaChaPoly-members.html b/classChaChaPoly-members.html index 42f845fd..c2effd57 100644 --- a/classChaChaPoly-members.html +++ b/classChaChaPoly-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classChaChaPoly.html b/classChaChaPoly.html index 875f4d8b..d095fcab 100644 --- a/classChaChaPoly.html +++ b/classChaChaPoly.html @@ -664,7 +664,7 @@ virtual  diff --git a/classCipher-members.html b/classCipher-members.html index 7a314f16..7e8b339d 100644 --- a/classCipher-members.html +++ b/classCipher-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classCipher.html b/classCipher.html index b0ea9bdd..36a678df 100644 --- a/classCipher.html +++ b/classCipher.html @@ -100,21 +100,20 @@ Inheritance diagram for Cipher:
-AuthenticatedCipher -CBCCommon -CFBCommon -ChaCha -CTRCommon -OFBCommon -ChaChaPoly -EAXCommon -GCMCommon -CBC< T > -CFB< T > -CTR< T > -OFB< T > -EAX< T > -GCM< T > +AuthenticatedCipher +CBCCommon +CFBCommon +ChaCha +CTRCommon +OFBCommon +Acorn128 +ChaChaPoly +EAXCommon +GCMCommon +CBC< T > +CFB< T > +CTR< T > +OFB< T >
@@ -210,7 +209,7 @@ Public Member Functions

Clears all security-sensitive state from this cipher.

Security-sensitive information includes key schedules, initialization vectors, and any temporary state that is used by encrypt() or decrypt() which is stored in the cipher itself.

-

Implemented in ChaChaPoly, EAXCommon, GCMCommon, ChaCha, CTRCommon, CBCCommon, CFBCommon, and OFBCommon.

+

Implemented in Acorn128, ChaChaPoly, EAXCommon, GCMCommon, ChaCha, CTRCommon, CBCCommon, CFBCommon, and OFBCommon.

@@ -264,7 +263,7 @@ Public Member Functions

The decrypt() function can be called multiple times with different regions of the ciphertext data.

See Also
encrypt()
-

Implemented in ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

@@ -318,7 +317,7 @@ Public Member Functions

The encrypt() function can be called multiple times with different regions of the plaintext data.

See Also
decrypt()
-

Implemented in ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

@@ -346,7 +345,7 @@ Public Member Functions

Size of the initialization vector for this cipher, in bytes.

If the cipher does not need an initialization vector, this function will return zero.

-

Implemented in ChaCha, ChaChaPoly, EAXCommon, GCMCommon, CBCCommon, CFBCommon, CTRCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, EAXCommon, GCMCommon, CBCCommon, CFBCommon, CTRCommon, and OFBCommon.

@@ -375,7 +374,7 @@ Public Member Functions

If the cipher supports variable-sized keys, keySize() indicates the default or recommended key size. The cipher may support other key sizes.

See Also
setKey(), ivSize()
-

Implemented in ChaCha, ChaChaPoly, EAXCommon, GCMCommon, CBCCommon, CFBCommon, CTRCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, EAXCommon, GCMCommon, CBCCommon, CFBCommon, CTRCommon, and OFBCommon.

@@ -424,7 +423,7 @@ Public Member Functions
Note
The IV is not encoded into the output stream by encrypt(). The caller is responsible for communicating the IV to the other party.
See Also
ivSize()
-

Implemented in ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

@@ -473,7 +472,7 @@ Public Member Functions

Calling setKey() resets the cipher. Any temporary data that was being retained for encrypting partial blocks will be abandoned.

See Also
keySize(), clear()
-

Implemented in ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

+

Implemented in Acorn128, ChaCha, ChaChaPoly, CTRCommon, EAXCommon, GCMCommon, CBCCommon, CFBCommon, and OFBCommon.

@@ -484,7 +483,7 @@ Public Member Functions diff --git a/classCipher.png b/classCipher.png index 53a4b2a9e0761920256b228c7315b074d925d9eb..4a29bb82c06629c324c3ec1e122941c494d9b4ec 100644 GIT binary patch literal 3973 zcmds4eK?fq8W)PQvf9fjszuc5+EXE4DKsU-3az~3TWpqkHF7F5GBTBowM5v+u+$Nb zcNn5~s1af_`tUjDWoMWqMLq^2X4IIO^SpEZ*v{E&&p+p%z0O?M%zMxKJkR~y_w&1d z&+~iIj(Q!|{$$f9Dk>`4?rzRLDk^HIipnYrO*Qc5__yUQ;Guu?h_8!6p#bLFnWea_ zw(G!Bep_2xSEmgdfxnvPeY}pTfKK=ad+KYcqN4L>cjtq?@vDS_(Y(>G^i%qT&jM!^ zIa#hAKUmz`@}{X=yyZN@3)@OFerZp#E$q@bc;G-Q;UcThS8LTOi95P(U2igOI=cO8 z#@7~h%?_;mTYfde>UpR4Yl5IcNg%gXJM!^?YD1(tkiwD&p6TU~dryELqB%ausDJ0b zkN?Qk@0o3byqJceUq1TMuIN0?-%Yu6OX3Q0I z9)*^6Gpbm~)QR$-Qt)e;jldm0nC8HJ8K}u)*b=@Sg3z}=G{SGa0O^&rR7EeI;i=+jlVsd#nN6NkYBpE?k z*wpAFQ495dF)DO}u8n;&dd856e5laq=^Xv;bRNN&;{96kF0|3QqGv?*lLQKau*NE} z#UxD@taMXBm|r*uVY;&~HbpTO@22@;cHL2N(pU&CbH*B9RPCj05J%Je} zN#)OAi9)3HDt=~ud0Cs5aB5|4f*DXG8+($KHD}*kQ4d$p{Mp(Z)b1xH_x{R7>Nyhx z8F#3&Dc3P;kMD6t;LmddP->JI%wS;XxHSqhBRkC&b&4p@6K|U}TDO!asN^iMaq)h} z1>3#0&61Uhj>;Zc9k;5vhA%pA(DKMjhyLzs$R_$OJYt=VY~n1B>PaKUad&x$n5SD8 zjP{s!U4whLRi4*M?-zA9QT8pRv$^&Us>KtwdOeRXJXrAbgKVZpVOo^so>EV2#y{2s zvdMg>(^41GW5PfljMiXg7o7}i#Bmf3><-^I2-H3G9s;=R3jto=tFr+-L9{AuF(TB}X;_T_K7+v_ zXuHMQ615#xfNuv2IxW@$#;1gzT;p&;>u!ftPT4`LI&0o0i>*Ow#4o{`FO$S;Oi$QE zZSzQuj5t+i6XwcVQ{|I4z9`~t*5|<8Zh33EI{PD{TQg2;`no8DH*LJsiN+rF&-?EHa95WFHkx?kDz_+`N)~_)zI|i8I~wbeXR1U$+J~gv%%;0_ z?}E*2az3*wl16I+gqj>(&y&3>8Cf|;`OsRQ#cv@`Oqg3`3z7@6R=5rcO!8S%vQFq< zT@3^2j|a=yFeUvc6epNV+h_Lzf&}8XKddBmF1APRpX$3NdhNWS=r9M%tav%o@}|4< zkVpM8|9lXM`lW2|hj(TC;;VW@ds&7l9ieCD`we+*!&tQG!wkoyHm&BbsSI<fN7m zcMUaPD!F+U!ghHO?caAkDYe&&dIXoyIetX;FB>mB;FpOt9cGg;A{N=Pi0%oFro{|; z%Wm8RH65Q|!jVQzh+MGdml+QJ!nSB`2uj*ki0qR{za410jZBr7G0~_B*$mI%Sisvr z>7qmPbRgTi0_hM9Z@e%S$bM~jnL}zA5?am@J{!C6i!XLRU28UoAsa@;-;|CAQdvg( zDb*qIqL(0Z5 z6!6Z^f6O^-eVw(Eej&N|HdVPHFd*Akt0Cf)4+*J89+(1RDv4@Rxgq8Ws0cveI8V?5 z4(OBLy7=rG&M9+8L0wGIK?^u(dpD(oFW)*6p`Q}j`V<_RiM@k6yUyZ@p*8vr&?avW z;+n|t4{km>i+u`WU#G5~h^}T-15yCNH=-0izY$I^NmvZIp@a=ekJnDn*nYU1R*p;s zgEZ$POjz~z*n5;j*6Sa8vuKnm(Mc-l4k>5Ap96i?JTk;^+-8?1 z;*XA>0)v-ZQSsuPN|xiwxy@NX4Sw%Uq`qA+N-c!XxE8|3FKJoUeAY9wfh?UWmn4*=i19*|LYWVI@%<>9h8+FP0Zy5&q_huA3*!vjEz~*|?vY zd|2@r3G`Q7_CjQS_i#@d3HJwxkRS)NOL0Z{Thw;?3&GAY0bunDVuBt(bpEF%{zxAG z!AyT9A80t8E0-?Su)=^UGXg64_Y!R?<9Er)@$quSt|%GsDb9d5_*9n$|6m~gw{YGd24EZ7qN%wI zYZ3924NpnAV!zpW9#Ij&Obk~ebvw}3=@3Nw7Z7FqLq)k76)6?wL`W6@7GO@2346O| z>U6-IP?~u=C%HmnOluF{O9{TOFd#oSTBL;8BDAC?3TLSFA%iblT42HqTfGx!f%pWH zA7DR%imQ4@B97s=y>OhvfQ8_SHpp;PrywytFQ4D_#NOb^)&95{o6Qj%50vPbr8|B; z)KUqmqC*eAxH$-kploYEsNg;ba#KyXu5@BljYGUHw#1ugk8iP!Tn&c61q1`Sl`zEH t`FJ@<-ut7{lgjy{a5=DLOBg0sgRWmpuFZ{a1b1c?cNZ^brc>CJe*zXHkk9}C literal 3557 zcmcIn3pkYN9(M~}MABQNU=O6BO9;!VoU$1Jm@=OgICkEJY{uLRas4wrP->a zpseOc!-kX%>KbIBO7kvBjI#{Z|EAH?gcX((D%mOmCKkTCtbv?xqCSNf zG~c`7TQDMg@lG&9r_HvH^_)y$sVy#@tAeg%cZxKzrSYF19ODVrARrP-Hj_U?z+*wM z^!qTD;MXoXoMGi-U6Fpy$HxopUE{8 zY@yv5>B1Tt+`q(08tdP~_|)G=c;BdRrn3F_;Hc~$%yHC#Xmeb(!ng6+xuuz@+RCJ@ z%9ANZa?E@7tvXgMI&NupEIDpo;APFg%SDb_ehHKN%l4|3HFV^!DYg`T4Q7*$1hpx9 zYQ}!XT&ut|G$t$P(g~=kemOLrhmMn*-UY&(b_W_7 zRL<6Xl#Xvb%x46Sd&H%xb`1YX=apeIx z{h`+!k@y{q)HkG7nhX^q)~A!=yr+G2Rm{^)X!&SBbSjG0GNIl_?>Lh8Ka1unN@i7h zaqcjI^#=EtR8Y9A2z5GCC=y4&oR_z!>I6AV4MUB5-?`*;#q9cWs5flZr4QtLgLzi0 z1@vJ!tM8%sMD8BQPbkM~D#dYOZ-@0`%LfO<9d!{tvi2&NVlSuGUx zd{ocaiSw>`a12FdJEMm7;xml{4C=73J(}W|78lQy;>z`oeer;ptsc>EKoAkhLiTv=X zGo~E{!>2t(la}^12`-PTOm5#4XZol_Ymg!5#hhW1)BG zkI`}UDh8Fg>7EZ>;z#bkc3rUZ5j$RgI!t$*C+>Wn{M#50O{@06J0;C*M&bnO-$hmw zQRvjhUp@C6f{j@x1>piGfdV23zwkv z!kU&`4^9EDg-usUf%?xbL$1dggx+Umbx+!l#7c%5;~9|1^=cnEc4S|<=RwygL3SL8 zhCb|=dNv)<<%2(@VbMZ^ahVh@5!-PvQrZ0eeMipAg^-`P^Y>4L5%nd#%{i{uVTST_LU&gBPSrf{P|wj)2mgPRAQBCYwdS)=lx zpuusEpB|MrB`c7QP``43IV!D65&uac9Lu1OrLdZ>(#bJjE;n>>V<=ps7p)U7PgN7X zx}d8Qett^y=GKsnKKBrU_0{bS*E9 zvW7NRwgXmtpG7%dQ54#Co$`1z=5R%kdC#bLn>5Uy4_z!sAY8y|^6SZqx++UV^?iE4 zCk|u3{Kb+nx&PJHPo4eVxQzyePO;M`rspdbW}?kc&&vxf6ImcUjN$-a0U*6FDsxaP zI}5ewIAM$k=&e-=>=R=?z>*?MhAzf%fIe;UftL#~q6Dmmp>Bi`qGsSaBp1Gd5g#DQ zo2p>1|6}8vKCcXN23={7>)!}a$BIr4T4v@C&PsNnxy>1diT=H3P_*!ZCd>((-!es~Y%e8z zHuM+2fs1_&Gns;&6HgoeOpFNNw1rgd_8sGWxM`x}34I8Uiba}I^@c0FL**&Al?|(f zKOQzYcP}cqte^t#kK9R447tkNFu@B-Ua+zE*ztTgc=l(g*>?_YPRpy>gNS4wh7=I3 z2`H6oRv4UpHwITkHNmMGKAN6|Ul2FhdOa|X$v@aC*@e93eAa9EnCZuT-oZY6cB1_*l`9S@q%y*?d&Gh!k1e4=+V#ayZ{n)4yzw90eC_9j9nGY& zVx`|a3()b^s!HDwEHZeiV>~6(dk65F?mh>E=qo(e{&Ln0j!d>fyu+STA0UZPsCa%L z_1FYYq(t`}9Otlxqra}(+EVk)0u6$WR-k$UPkWDXe_pv)5tZA%t+1QBLlBPZv*VZK zQ&r-aZD?O4oH@p8n_)Eek{fP} zqq|?)zqAW$j8lDGvKQuT!L7LWeQF=TfGl=c0{t@NQ#ER?H(ffb_tUfXbbRja!!Z1A z9K%L;lNla8;={9sR!(HEo3r?H|j5*r;TC*;$6-6~B zPKXa9-d6@m_{_+qY`|{oHM?8wVUB9r$4p&FfvVP$P8Xo0tqyScSqMcr5?j14SF7d# z%)xH;b%;C6kemYp&{ojL1Stz@5$5QK>Wbar9W-D{M|2DIXtf7Mf)YTcgC=IlP#1<* zYA+du`4_$~LP?t7`iHTLL6}bkRW-6R_^FXg`>X?voI#p0P@YT#o!bBx?fB*i?v;xg zCRn#D>eh{Ho@;HCi4`W`PA&>I|H@TU&>#A0CXXJ~0z$Xn1n7$2iNcQ}?H@Gozo+f~ zkIN+bAN7{mDmkEcD{9qUNC{_H%oKk0S z+T+?%54HMj?D+|OC8?IDdKFO58AIl6M^8o>?Wv}Y^Dd3ne#uCaiujGzqUcy7kCMZLPy$?opE2K6RYihne4#9}^QVuv4@C(QPT zEkuc;jTZZ6a-pt>=G4g}C dPtqhZm1{4VgjVA_!8@6ZqphpWop1dT{|Z*Nb!Pwo diff --git a/classCurve25519-members.html b/classCurve25519-members.html index af97079e..5410ec42 100644 --- a/classCurve25519-members.html +++ b/classCurve25519-members.html @@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
diff --git a/classCurve25519.html b/classCurve25519.html index ba635731..192d39df 100644 --- a/classCurve25519.html +++ b/classCurve25519.html @@ -302,7 +302,7 @@ class Ed25519 diff --git a/classEAX-members.html b/classEAX-members.html index 82f203d6..255cb0ae 100644 --- a/classEAX-members.html +++ b/classEAX-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classEAX.html b/classEAX.html index e3304940..636636df 100644 --- a/classEAX.html +++ b/classEAX.html @@ -218,7 +218,7 @@ class EAX< T > diff --git a/classEAXCommon-members.html b/classEAXCommon-members.html index 0dd4f941..86f28250 100644 --- a/classEAXCommon-members.html +++ b/classEAXCommon-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classEAXCommon.html b/classEAXCommon.html index 7f44bd47..28dff6a8 100644 --- a/classEAXCommon.html +++ b/classEAXCommon.html @@ -731,7 +731,7 @@ Protected Member Functions diff --git a/classEd25519-members.html b/classEd25519-members.html index c6964bce..afd594ee 100644 --- a/classEd25519-members.html +++ b/classEd25519-members.html @@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classEd25519.html b/classEd25519.html index 00a4e9eb..a26caa8f 100644 --- a/classEd25519.html +++ b/classEd25519.html @@ -353,7 +353,7 @@ Static Public Member Functions diff --git a/classGCM-members.html b/classGCM-members.html index 5beff75a..aed957c3 100644 --- a/classGCM-members.html +++ b/classGCM-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classGCM.html b/classGCM.html index 28b2533e..a91b4087 100644 --- a/classGCM.html +++ b/classGCM.html @@ -222,7 +222,7 @@ class GCM< T > diff --git a/classGCMCommon-members.html b/classGCMCommon-members.html index 38a053ae..505aed3e 100644 --- a/classGCMCommon-members.html +++ b/classGCMCommon-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classGCMCommon.html b/classGCMCommon.html index 7a997cda..6217723d 100644 --- a/classGCMCommon.html +++ b/classGCMCommon.html @@ -254,7 +254,7 @@ Protected Member Functions

Implements AuthenticatedCipher.

-

Definition at line 218 of file GCM.cpp.

+

Definition at line 214 of file GCM.cpp.

@@ -305,7 +305,7 @@ Protected Member Functions

Implements AuthenticatedCipher.

-

Definition at line 246 of file GCM.cpp.

+

Definition at line 242 of file GCM.cpp.

@@ -335,7 +335,7 @@ Protected Member Functions

Implements Cipher.

-

Definition at line 257 of file GCM.cpp.

+

Definition at line 253 of file GCM.cpp.

@@ -383,7 +383,7 @@ Protected Member Functions

Implements AuthenticatedCipher.

-

Definition at line 226 of file GCM.cpp.

+

Definition at line 222 of file GCM.cpp.

@@ -439,7 +439,7 @@ Protected Member Functions

Implements Cipher.

-

Definition at line 183 of file GCM.cpp.

+

Definition at line 179 of file GCM.cpp.

@@ -495,7 +495,7 @@ Protected Member Functions

Implements Cipher.

-

Definition at line 146 of file GCM.cpp.

+

Definition at line 142 of file GCM.cpp.

@@ -641,7 +641,7 @@ Protected Member Functions

Implements Cipher.

-

Definition at line 90 of file GCM.cpp.

+

Definition at line 83 of file GCM.cpp.

@@ -735,7 +735,7 @@ Protected Member Functions diff --git a/classGF128-members.html b/classGF128-members.html index d6de8030..9e6926c1 100644 --- a/classGF128-members.html +++ b/classGF128-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classGF128.html b/classGF128.html index 7eea866d..29d5557c 100644 --- a/classGF128.html +++ b/classGF128.html @@ -333,7 +333,7 @@ Static Public Member Functions diff --git a/classGHASH-members.html b/classGHASH-members.html index fec9433e..376d1ade 100644 --- a/classGHASH-members.html +++ b/classGHASH-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classGHASH.html b/classGHASH.html index b3276f63..b9cb0ffc 100644 --- a/classGHASH.html +++ b/classGHASH.html @@ -264,7 +264,7 @@ void  diff --git a/classHash-members.html b/classHash-members.html index 6e0aa0d6..2987137e 100644 --- a/classHash-members.html +++ b/classHash-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classHash.html b/classHash.html index ee3ec2f4..6f8892fe 100644 --- a/classHash.html +++ b/classHash.html @@ -574,7 +574,7 @@ Protected Member Functions diff --git a/classKeccakCore-members.html b/classKeccakCore-members.html index eb66c5d5..600367af 100644 --- a/classKeccakCore-members.html +++ b/classKeccakCore-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classKeccakCore.html b/classKeccakCore.html index bd7d4836..d2ec1657 100644 --- a/classKeccakCore.html +++ b/classKeccakCore.html @@ -474,7 +474,7 @@ void  diff --git a/classNewHope-members.html b/classNewHope-members.html index b5e41b8b..8b6eba45 100644 --- a/classNewHope-members.html +++ b/classNewHope-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classNewHope.html b/classNewHope.html index 2c1bdb2c..c73dc28b 100644 --- a/classNewHope.html +++ b/classNewHope.html @@ -361,7 +361,7 @@ Static Public Member Functions diff --git a/classNoiseSource-members.html b/classNoiseSource-members.html index d2206349..7dc64e1d 100644 --- a/classNoiseSource-members.html +++ b/classNoiseSource-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classNoiseSource.html b/classNoiseSource.html index f84ae9cf..8c0d5945 100644 --- a/classNoiseSource.html +++ b/classNoiseSource.html @@ -288,7 +288,7 @@ Protected Member Functions diff --git a/classOFB-members.html b/classOFB-members.html index e4d26e38..facc3654 100644 --- a/classOFB-members.html +++ b/classOFB-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classOFB.html b/classOFB.html index 3f3329bc..80254968 100644 --- a/classOFB.html +++ b/classOFB.html @@ -180,7 +180,7 @@ class OFB< T > diff --git a/classOFBCommon-members.html b/classOFBCommon-members.html index 7d02b347..ae1a3c02 100644 --- a/classOFBCommon-members.html +++ b/classOFBCommon-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classOFBCommon.html b/classOFBCommon.html index b803ab2d..a0a48c4b 100644 --- a/classOFBCommon.html +++ b/classOFBCommon.html @@ -533,7 +533,7 @@ Protected Member Functions diff --git a/classOMAC-members.html b/classOMAC-members.html index b30de79c..36ed695b 100644 --- a/classOMAC-members.html +++ b/classOMAC-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classOMAC.html b/classOMAC.html index 697feebd..a35c1af2 100644 --- a/classOMAC.html +++ b/classOMAC.html @@ -386,7 +386,7 @@ void  diff --git a/classP521-members.html b/classP521-members.html index 0987baeb..f1a6f766 100644 --- a/classP521-members.html +++ b/classP521-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classP521.html b/classP521.html index 94321ade..311445d3 100644 --- a/classP521.html +++ b/classP521.html @@ -645,7 +645,7 @@ Static Public Member Functions diff --git a/classPoly1305-members.html b/classPoly1305-members.html index 60b915f6..4847e059 100644 --- a/classPoly1305-members.html +++ b/classPoly1305-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classPoly1305.html b/classPoly1305.html index 2db03a4d..39c57257 100644 --- a/classPoly1305.html +++ b/classPoly1305.html @@ -279,7 +279,7 @@ void  diff --git a/classRNGClass-members.html b/classRNGClass-members.html index 707f11bc..cd8f29e0 100644 --- a/classRNGClass-members.html +++ b/classRNGClass-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classRNGClass.html b/classRNGClass.html index 8900aa6f..7cea6e81 100644 --- a/classRNGClass.html +++ b/classRNGClass.html @@ -531,7 +531,7 @@ Static Public Attributes diff --git a/classRingOscillatorNoiseSource-members.html b/classRingOscillatorNoiseSource-members.html index d87c2c13..53fa8bbe 100644 --- a/classRingOscillatorNoiseSource-members.html +++ b/classRingOscillatorNoiseSource-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classRingOscillatorNoiseSource.html b/classRingOscillatorNoiseSource.html index 56be5632..93061464 100644 --- a/classRingOscillatorNoiseSource.html +++ b/classRingOscillatorNoiseSource.html @@ -252,7 +252,7 @@ Additional Inherited Members diff --git a/classSHA256-members.html b/classSHA256-members.html index db5852c0..96ee2544 100644 --- a/classSHA256-members.html +++ b/classSHA256-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHA256.html b/classSHA256.html index d9d9bee6..2b997b4b 100644 --- a/classSHA256.html +++ b/classSHA256.html @@ -505,7 +505,7 @@ Additional Inherited Members diff --git a/classSHA3__256-members.html b/classSHA3__256-members.html index 9cc11969..7c24ff46 100644 --- a/classSHA3__256-members.html +++ b/classSHA3__256-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHA3__256.html b/classSHA3__256.html index ef5b97ee..0df789d2 100644 --- a/classSHA3__256.html +++ b/classSHA3__256.html @@ -505,7 +505,7 @@ Additional Inherited Members diff --git a/classSHA3__512-members.html b/classSHA3__512-members.html index 9d5d2043..bac01256 100644 --- a/classSHA3__512-members.html +++ b/classSHA3__512-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHA3__512.html b/classSHA3__512.html index b8fc4e53..3a2319d1 100644 --- a/classSHA3__512.html +++ b/classSHA3__512.html @@ -505,7 +505,7 @@ Additional Inherited Members diff --git a/classSHA512-members.html b/classSHA512-members.html index 60ed116c..1ebcb32b 100644 --- a/classSHA512-members.html +++ b/classSHA512-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHA512.html b/classSHA512.html index 60e2223a..2674a2c7 100644 --- a/classSHA512.html +++ b/classSHA512.html @@ -512,7 +512,7 @@ Additional Inherited Members diff --git a/classSHAKE-members.html b/classSHAKE-members.html index 89043a99..7b53eced 100644 --- a/classSHAKE-members.html +++ b/classSHAKE-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHAKE.html b/classSHAKE.html index b6149b0a..8d0c117a 100644 --- a/classSHAKE.html +++ b/classSHAKE.html @@ -442,7 +442,7 @@ Protected Member Functions diff --git a/classSHAKE128-members.html b/classSHAKE128-members.html index 5a003f8d..513f1fea 100644 --- a/classSHAKE128-members.html +++ b/classSHAKE128-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHAKE128.html b/classSHAKE128.html index d92d2db3..b519434f 100644 --- a/classSHAKE128.html +++ b/classSHAKE128.html @@ -170,7 +170,7 @@ Additional Inherited Members diff --git a/classSHAKE256-members.html b/classSHAKE256-members.html index 21aec00a..0c1b279c 100644 --- a/classSHAKE256-members.html +++ b/classSHAKE256-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSHAKE256.html b/classSHAKE256.html index 24677b10..bf6887ca 100644 --- a/classSHAKE256.html +++ b/classSHAKE256.html @@ -170,7 +170,7 @@ Additional Inherited Members diff --git a/classSpeck-members.html b/classSpeck-members.html index 826f6132..323872f8 100644 --- a/classSpeck-members.html +++ b/classSpeck-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSpeck.html b/classSpeck.html index fce14b07..2a737d5d 100644 --- a/classSpeck.html +++ b/classSpeck.html @@ -414,7 +414,7 @@ Public Member Functions diff --git a/classSpeckSmall-members.html b/classSpeckSmall-members.html index 8facda65..a10a7f79 100644 --- a/classSpeckSmall-members.html +++ b/classSpeckSmall-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSpeckSmall.html b/classSpeckSmall.html index b4e15dcc..f4176445 100644 --- a/classSpeckSmall.html +++ b/classSpeckSmall.html @@ -318,7 +318,7 @@ Public Member Functions diff --git a/classSpeckTiny-members.html b/classSpeckTiny-members.html index 25907ed3..b4db03d7 100644 --- a/classSpeckTiny-members.html +++ b/classSpeckTiny-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classSpeckTiny.html b/classSpeckTiny.html index b3975d13..e7256cff 100644 --- a/classSpeckTiny.html +++ b/classSpeckTiny.html @@ -427,7 +427,7 @@ class SpeckSmall< diff --git a/classTransistorNoiseSource-members.html b/classTransistorNoiseSource-members.html index 1a1954a0..8f962db8 100644 --- a/classTransistorNoiseSource-members.html +++ b/classTransistorNoiseSource-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classTransistorNoiseSource.html b/classTransistorNoiseSource.html index f89f2609..a2570b67 100644 --- a/classTransistorNoiseSource.html +++ b/classTransistorNoiseSource.html @@ -279,7 +279,7 @@ Additional Inherited Members diff --git a/classXOF-members.html b/classXOF-members.html index c99e89dc..a4bd247a 100644 --- a/classXOF-members.html +++ b/classXOF-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classXOF.html b/classXOF.html index 23fd12a7..62c74031 100644 --- a/classXOF.html +++ b/classXOF.html @@ -507,7 +507,7 @@ Public Member Functions diff --git a/classXTS-members.html b/classXTS-members.html index e7ec6228..d66db838 100644 --- a/classXTS-members.html +++ b/classXTS-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classXTS.html b/classXTS.html index 2b3c2a81..9d1a21ec 100644 --- a/classXTS.html +++ b/classXTS.html @@ -219,7 +219,7 @@ template<typename T1, typename T2 = T1> diff --git a/classXTSCommon-members.html b/classXTSCommon-members.html index 7c5caceb..3f5bcec5 100644 --- a/classXTSCommon-members.html +++ b/classXTSCommon-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classXTSCommon.html b/classXTSCommon.html index 8d382056..d915d62c 100644 --- a/classXTSCommon.html +++ b/classXTSCommon.html @@ -496,7 +496,7 @@ class XTSSingleKeyCommon diff --git a/classXTSSingleKey-members.html b/classXTSSingleKey-members.html index 60a1cc3e..5cff06ab 100644 --- a/classXTSSingleKey-members.html +++ b/classXTSSingleKey-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classXTSSingleKey.html b/classXTSSingleKey.html index af7a230c..b21df5a8 100644 --- a/classXTSSingleKey.html +++ b/classXTSSingleKey.html @@ -217,7 +217,7 @@ template<typename T > diff --git a/classXTSSingleKeyCommon-members.html b/classXTSSingleKeyCommon-members.html index 257f2935..ef3abee5 100644 --- a/classXTSSingleKeyCommon-members.html +++ b/classXTSSingleKeyCommon-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/classXTSSingleKeyCommon.html b/classXTSSingleKeyCommon.html index cd3f854c..0250c394 100644 --- a/classXTSSingleKeyCommon.html +++ b/classXTSSingleKeyCommon.html @@ -256,7 +256,7 @@ Protected Member Functions diff --git a/classes.html b/classes.html index 02941ada..fdafac51 100644 --- a/classes.html +++ b/classes.html @@ -89,46 +89,46 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
A | B | C | E | G | H | K | N | O | P | R | S | T | X
+ - - + - - + - - - - + + - - + + - - + + - - - - + + + - +
  A  
-
CBCCommon   GF128   
  P  
+
  C  
+
GCMCommon   OMAC   Speck   
GF128   
  P  
SpeckSmall   
CFB   GHASH   SpeckTiny   
AES128   CFBCommon   
  H  
+
Acorn128   CBC   GHASH   SpeckTiny   
AES128   CBCCommon   
  H  
P521   
  T  
AES192   ChaCha   Poly1305   
AES256   ChaChaPoly   Hash   
  R  
+
AES192   CFB   Poly1305   
AES256   CFBCommon   Hash   
  R  
TransistorNoiseSource   
AESCommon   Cipher   
  K  
+
AESCommon   ChaCha   
  K  
  X  
AESSmall128   CTR   RingOscillatorNoiseSource   
AESSmall256   CTRCommon   KeccakCore   RNGClass   XOF   
AESTiny128   Curve25519   
  N  
+
AESSmall128   ChaChaPoly   RingOscillatorNoiseSource   
AESSmall256   Cipher   KeccakCore   RNGClass   XOF   
AESTiny128   CTR   
  N  
  S  
XTS   
AESTiny256   
  E  
-
XTSCommon   
AuthenticatedCipher   NewHope   SHA256   XTSSingleKey   
AESTiny256   CTRCommon   XTSCommon   
AuthenticatedCipher   Curve25519   NewHope   SHA256   XTSSingleKey   
  B  
-
EAX   NewHopePrivateKey   SHA3_256   XTSSingleKeyCommon   
EAXCommon   NoiseSource   SHA3_512   
BigNumberUtil   Ed25519   
  O  
+
  E  
+
NewHopePrivateKey   SHA3_256   XTSSingleKeyCommon   
NoiseSource   SHA3_512   
BigNumberUtil   EAX   
  O  
SHA512   
BLAKE2b   
  G  
-
SHAKE   
BLAKE2s   OFB   SHAKE128   
BlockCipher   GCM   OFBCommon   SHAKE256   
  C  
-
GCMCommon   OMAC   Speck   
BLAKE2b   EAXCommon   SHAKE   
BLAKE2s   Ed25519   OFB   SHAKE128   
BlockCipher   
  G  
+
OFBCommon   SHAKE256   
CBC   
GCM   
A | B | C | E | G | H | K | N | O | P | R | S | T | X
diff --git a/crypto-esp_8dox.html b/crypto-esp_8dox.html index 3381270e..28e016e6 100644 --- a/crypto-esp_8dox.html +++ b/crypto-esp_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/crypto-rng-ring_8dox.html b/crypto-rng-ring_8dox.html index 4a8e4273..5f3f2115 100644 --- a/crypto-rng-ring_8dox.html +++ b/crypto-rng-ring_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/crypto-rng_8dox.html b/crypto-rng_8dox.html index 3d89cffd..030401fa 100644 --- a/crypto-rng_8dox.html +++ b/crypto-rng_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/crypto.html b/crypto.html index 1f1bc97d..050269db 100644 --- a/crypto.html +++ b/crypto.html @@ -84,7 +84,7 @@ Supported Algorithms
  • Block ciphers: AES128, AES192, AES256, Speck
  • Block cipher modes: CTR, CFB, CBC, OFB, EAX, GCM, XTS
  • Stream ciphers: ChaCha
  • -
  • Authenticated encryption with associated data (AEAD): ChaChaPoly, EAX, GCM
  • +
  • Authenticated encryption with associated data (AEAD): ChaChaPoly, EAX, GCM, Acorn128
  • Hash algorithms: SHA256, SHA512, SHA3_256, SHA3_512, BLAKE2s, BLAKE2b (regular and HMAC modes)
  • Extendable output functions (XOF's): SHAKE128, SHAKE256
  • Message authenticators: Poly1305, GHASH, OMAC
  • @@ -181,6 +181,8 @@ Performance on AVR EAX<SpeckTiny> (256-bit key)78.20us78.20us1269.19us122 +Acorn12820.39us20.06us4817.82us60 + Hash AlgorithmHashing (per byte)FinalizationState Size (bytes) @@ -332,6 +334,8 @@ Performance on ARM EAX<SpeckTiny> (256-bit key)6.69us6.69us110.91us144 +Acorn1280.75us0.75us175.70us64 + Hash AlgorithmHashing (per byte)FinalizationState Size (bytes) @@ -415,7 +419,7 @@ Performance on ARM diff --git a/crypto_8dox.html b/crypto_8dox.html index f268c1ea..a6c079c7 100644 --- a/crypto_8dox.html +++ b/crypto_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/crypto_esp.html b/crypto_esp.html index 6004d53c..b9990e4a 100644 --- a/crypto_esp.html +++ b/crypto_esp.html @@ -102,7 +102,7 @@ Stack space diff --git a/crypto_rng.html b/crypto_rng.html index 4807a5b1..7c557811 100644 --- a/crypto_rng.html +++ b/crypto_rng.html @@ -189,7 +189,7 @@ Destroying secret data diff --git a/crypto_rng_ring.html b/crypto_rng_ring.html index e8b43746..db69234f 100644 --- a/crypto_rng_ring.html +++ b/crypto_rng_ring.html @@ -150,7 +150,7 @@ Connecting to the Arduino diff --git a/dir_3dd03323535933fb3f714c41ff7a94da.html b/dir_3dd03323535933fb3f714c41ff7a94da.html index ed141ffe..3ed6102b 100644 --- a/dir_3dd03323535933fb3f714c41ff7a94da.html +++ b/dir_3dd03323535933fb3f714c41ff7a94da.html @@ -93,7 +93,7 @@ Files diff --git a/dir_470c03f38356b1f63943514897cb198b.html b/dir_470c03f38356b1f63943514897cb198b.html index 3b3b861e..776772cc 100644 --- a/dir_470c03f38356b1f63943514897cb198b.html +++ b/dir_470c03f38356b1f63943514897cb198b.html @@ -93,7 +93,7 @@ Files diff --git a/dir_5317e98f2689b9014cdaec1c78a27590.html b/dir_5317e98f2689b9014cdaec1c78a27590.html new file mode 100644 index 00000000..8afe4c16 --- /dev/null +++ b/dir_5317e98f2689b9014cdaec1c78a27590.html @@ -0,0 +1,105 @@ + + + + + + +Arduino Cryptography Library: src Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Arduino Cryptography Library +
    +
    +
    + + + + + + + + +
    + +
    + + +
    +
    +
    +
    src Directory Reference
    +
    +
    + + + + + + + + + + +

    +Files

    file  Acorn128.cpp [code]
     
    file  Acorn128.h [code]
     
    file  Acorn128AVR.cpp [code]
     
    file  CryptoLW.h [code]
     
    +
    + + + + diff --git a/dir_58d2f659e0f0f847cf173d02114010b9.html b/dir_58d2f659e0f0f847cf173d02114010b9.html new file mode 100644 index 00000000..0259b455 --- /dev/null +++ b/dir_58d2f659e0f0f847cf173d02114010b9.html @@ -0,0 +1,99 @@ + + + + + + +Arduino Cryptography Library: CryptoLW Directory Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    Arduino Cryptography Library +
    +
    +
    + + + + + + + + +
    + +
    + + +
    +
    +
    +
    CryptoLW Directory Reference
    +
    +
    + + + + +

    +Directories

    directory  src
     
    +
    + + + + diff --git a/dir_7e6ab9b017486261fe80629d442521f0.html b/dir_7e6ab9b017486261fe80629d442521f0.html index 8b7ff3ed..46429d44 100644 --- a/dir_7e6ab9b017486261fe80629d442521f0.html +++ b/dir_7e6ab9b017486261fe80629d442521f0.html @@ -93,7 +93,7 @@ Files diff --git a/dir_bc0718b08fb2015b8e59c47b2805f60c.html b/dir_bc0718b08fb2015b8e59c47b2805f60c.html index 41655e81..982de1a7 100644 --- a/dir_bc0718b08fb2015b8e59c47b2805f60c.html +++ b/dir_bc0718b08fb2015b8e59c47b2805f60c.html @@ -87,6 +87,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); Directories directory  Crypto   +directory  CryptoLW +  directory  NewHope   directory  RingOscillatorNoiseSource @@ -97,7 +99,7 @@ Directories diff --git a/dir_e2ce51835550ba18edf07a8311722290.html b/dir_e2ce51835550ba18edf07a8311722290.html index 225cc348..e342ff8a 100644 --- a/dir_e2ce51835550ba18edf07a8311722290.html +++ b/dir_e2ce51835550ba18edf07a8311722290.html @@ -241,7 +241,7 @@ Files diff --git a/files.html b/files.html index 8920aebe..800adcc0 100644 --- a/files.html +++ b/files.html @@ -85,94 +85,98 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
    Here is a list of all documented files with brief descriptions:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    o*AES.h
    o*AES128.cpp
    o*AES192.cpp
    o*AES256.cpp
    o*AESCommon.cpp
    o*AESEsp32.cpp
    o*AuthenticatedCipher.cpp
    o*AuthenticatedCipher.h
    o*BigNumberUtil.cpp
    o*BigNumberUtil.h
    o*BLAKE2b.cpp
    o*BLAKE2b.h
    o*BLAKE2s.cpp
    o*BLAKE2s.h
    o*BlockCipher.cpp
    o*BlockCipher.h
    o*CBC.cpp
    o*CBC.h
    o*CFB.cpp
    o*CFB.h
    o*ChaCha.cpp
    o*ChaCha.h
    o*ChaChaPoly.cpp
    o*ChaChaPoly.h
    o*Cipher.cpp
    o*Cipher.h
    o*Crypto.cpp
    o*Crypto.h
    o*CTR.cpp
    o*CTR.h
    o*Curve25519.cpp
    o*Curve25519.h
    o*EAX.cpp
    o*EAX.h
    o*Ed25519.cpp
    o*Ed25519.h
    o*GCM.cpp
    o*GCM.h
    o*GF128.cpp
    o*GF128.h
    o*GHASH.cpp
    o*GHASH.h
    o*Hash.cpp
    o*Hash.h
    o*KeccakCore.cpp
    o*KeccakCore.h
    o*NewHope.cpp
    o*NewHope.h
    o*NoiseSource.cpp
    o*NoiseSource.h
    o*OFB.cpp
    o*OFB.h
    o*OMAC.cpp
    o*OMAC.h
    o*P521.cpp
    o*P521.h
    o*Poly1305.cpp
    o*Poly1305.h
    o*RingOscillatorNoiseSource.cpp
    o*RingOscillatorNoiseSource.h
    o*RNG.cpp
    o*RNG.h
    o*SHA256.cpp
    o*SHA256.h
    o*SHA3.cpp
    o*SHA3.h
    o*SHA512.cpp
    o*SHA512.h
    o*SHAKE.cpp
    o*SHAKE.h
    o*Speck.cpp
    o*Speck.h
    o*SpeckSmall.cpp
    o*SpeckSmall.h
    o*SpeckTiny.cpp
    o*SpeckTiny.h
    o*TransistorNoiseSource.cpp
    o*TransistorNoiseSource.h
    o*XOF.cpp
    o*XOF.h
    o*XTS.cpp
    \*XTS.h
    o*Acorn128.cpp
    o*Acorn128.h
    o*Acorn128AVR.cpp
    o*AES.h
    o*AES128.cpp
    o*AES192.cpp
    o*AES256.cpp
    o*AESCommon.cpp
    o*AESEsp32.cpp
    o*AuthenticatedCipher.cpp
    o*AuthenticatedCipher.h
    o*BigNumberUtil.cpp
    o*BigNumberUtil.h
    o*BLAKE2b.cpp
    o*BLAKE2b.h
    o*BLAKE2s.cpp
    o*BLAKE2s.h
    o*BlockCipher.cpp
    o*BlockCipher.h
    o*CBC.cpp
    o*CBC.h
    o*CFB.cpp
    o*CFB.h
    o*ChaCha.cpp
    o*ChaCha.h
    o*ChaChaPoly.cpp
    o*ChaChaPoly.h
    o*Cipher.cpp
    o*Cipher.h
    o*Crypto.cpp
    o*Crypto.h
    o*CryptoLW.h
    o*CTR.cpp
    o*CTR.h
    o*Curve25519.cpp
    o*Curve25519.h
    o*EAX.cpp
    o*EAX.h
    o*Ed25519.cpp
    o*Ed25519.h
    o*GCM.cpp
    o*GCM.h
    o*GF128.cpp
    o*GF128.h
    o*GHASH.cpp
    o*GHASH.h
    o*Hash.cpp
    o*Hash.h
    o*KeccakCore.cpp
    o*KeccakCore.h
    o*NewHope.cpp
    o*NewHope.h
    o*NoiseSource.cpp
    o*NoiseSource.h
    o*OFB.cpp
    o*OFB.h
    o*OMAC.cpp
    o*OMAC.h
    o*P521.cpp
    o*P521.h
    o*Poly1305.cpp
    o*Poly1305.h
    o*RingOscillatorNoiseSource.cpp
    o*RingOscillatorNoiseSource.h
    o*RNG.cpp
    o*RNG.h
    o*SHA256.cpp
    o*SHA256.h
    o*SHA3.cpp
    o*SHA3.h
    o*SHA512.cpp
    o*SHA512.h
    o*SHAKE.cpp
    o*SHAKE.h
    o*Speck.cpp
    o*Speck.h
    o*SpeckSmall.cpp
    o*SpeckSmall.h
    o*SpeckTiny.cpp
    o*SpeckTiny.h
    o*TransistorNoiseSource.cpp
    o*TransistorNoiseSource.h
    o*XOF.cpp
    o*XOF.h
    o*XTS.cpp
    \*XTS.h
    diff --git a/functions.html b/functions.html index b44dd036..1ae4185d 100644 --- a/functions.html +++ b/functions.html @@ -120,6 +120,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
    Here is a list of all documented class members with links to the class documentation for each member:

    - a -

      +
    • Acorn128() +: Acorn128 +
    • add() : BigNumberUtil
    • @@ -127,7 +130,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : BigNumberUtil
    • addAuthData() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -172,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_b.html b/functions_b.html index 38762cbb..db76e240 100644 --- a/functions_b.html +++ b/functions_b.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_c.html b/functions_c.html index 5e1bbab5..7273a1fb 100644 --- a/functions_c.html +++ b/functions_c.html @@ -147,7 +147,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : ChaChaPoly
    • checkTag() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -156,7 +157,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Cipher
    • clear() -: AESCommon +: Acorn128 +, AESCommon , AESSmall128 , AESSmall256 , AESTiny128 @@ -190,7 +192,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , XTSCommon
    • computeTag() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -205,7 +208,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_d.html b/functions_d.html index a969399d..ce6ccbd3 100644 --- a/functions_d.html +++ b/functions_d.html @@ -130,7 +130,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : GF128
    • decrypt() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -174,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_e.html b/functions_e.html index 80fe2d4b..71a744b2 100644 --- a/functions_e.html +++ b/functions_e.html @@ -127,7 +127,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : EAXCommon
    • encrypt() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -166,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_enum.html b/functions_enum.html index 83a56e1b..32bf8c34 100644 --- a/functions_enum.html +++ b/functions_enum.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_eval.html b/functions_eval.html index 237058e5..6e2d0467 100644 --- a/functions_eval.html +++ b/functions_eval.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_f.html b/functions_f.html index 8aa9b3f3..07c71c75 100644 --- a/functions_f.html +++ b/functions_f.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func.html b/functions_func.html index ca915beb..3711dfd7 100644 --- a/functions_func.html +++ b/functions_func.html @@ -120,6 +120,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');  

      - a -

        +
      • Acorn128() +: Acorn128 +
      • add() : BigNumberUtil
      • @@ -127,7 +130,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : BigNumberUtil
      • addAuthData() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -172,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_b.html b/functions_func_b.html index f6b0bdb3..5ca76509 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_c.html b/functions_func_c.html index 80b94bdf..63db20e1 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -147,7 +147,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : ChaChaPoly
      • checkTag() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -156,7 +157,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : Cipher
      • clear() -: AESCommon +: Acorn128 +, AESCommon , AESSmall128 , AESSmall256 , AESTiny128 @@ -190,7 +192,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , XTSCommon
      • computeTag() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -205,7 +208,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_d.html b/functions_func_d.html index c283fa6a..d6738d1f 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -130,7 +130,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : GF128
      • decrypt() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -174,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_e.html b/functions_func_e.html index ac1012f7..22a8495a 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -127,7 +127,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : EAXCommon
      • encrypt() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -166,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_f.html b/functions_func_f.html index 76915ba0..30dc8db8 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_g.html b/functions_func_g.html index 56a95efd..2b6d6d20 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_h.html b/functions_func_h.html index a776e048..76e588d5 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_i.html b/functions_func_i.html index 2daf2dbb..bc2455a4 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -139,7 +139,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : BigNumberUtil
      • ivSize() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -153,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_k.html b/functions_func_k.html index 30c8c3a4..ab3d76c1 100644 --- a/functions_func_k.html +++ b/functions_func_k.html @@ -127,7 +127,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : NewHope
      • keySize() -: AES128 +: Acorn128 +, AES128 , AES192 , AES256 , AESTiny128 @@ -151,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_l.html b/functions_func_l.html index 8b12fa4d..a47cc9bd 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_m.html b/functions_func_m.html index d12fa12f..0ebd8506 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_n.html b/functions_func_n.html index ad9e413c..8246d604 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_o.html b/functions_func_o.html index f6cd076c..677d6548 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_p.html b/functions_func_p.html index 9aa1de66..b56dad7b 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_r.html b/functions_func_r.html index 79a5dc3b..778f38c4 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_s.html b/functions_func_s.html index dae71352..3652402e 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -154,7 +154,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : KeccakCore
      • setIV() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -165,7 +166,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , OFBCommon
      • setKey() -: AES128 +: Acorn128 +, AES128 , AES192 , AES256 , AESSmall128 @@ -253,7 +255,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_t.html b/functions_func_t.html index f116d2ca..2b13dd3d 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -121,7 +121,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');

        - t -

        • tagSize() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -136,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_u.html b/functions_func_u.html index b895e414..726f4ff4 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_v.html b/functions_func_v.html index eb42a248..5e0646c1 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_x.html b/functions_func_x.html index 70fe00de..c888c1c4 100644 --- a/functions_func_x.html +++ b/functions_func_x.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_func_~.html b/functions_func_~.html index d87b1029..245dd46a 100644 --- a/functions_func_~.html +++ b/functions_func_~.html @@ -120,6 +120,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');  

          - ~ -

            +
          • ~Acorn128() +: Acorn128 +
          • ~AESCommon() : AESCommon
          • @@ -214,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_g.html b/functions_g.html index f6898edf..25f957f7 100644 --- a/functions_g.html +++ b/functions_g.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_h.html b/functions_h.html index b0df2137..26673a1a 100644 --- a/functions_h.html +++ b/functions_h.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_i.html b/functions_i.html index a96b08c4..789a6e63 100644 --- a/functions_i.html +++ b/functions_i.html @@ -139,7 +139,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : BigNumberUtil
          • ivSize() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -153,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_k.html b/functions_k.html index 3b79ec64..6b16bdba 100644 --- a/functions_k.html +++ b/functions_k.html @@ -127,7 +127,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : NewHope
          • keySize() -: AES128 +: Acorn128 +, AES128 , AES192 , AES256 , AESTiny128 @@ -151,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_l.html b/functions_l.html index 03b3d1f9..08c5de6a 100644 --- a/functions_l.html +++ b/functions_l.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_m.html b/functions_m.html index becc7a88..fc3e14ec 100644 --- a/functions_m.html +++ b/functions_m.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_n.html b/functions_n.html index 4b359cac..abc97ab0 100644 --- a/functions_n.html +++ b/functions_n.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_o.html b/functions_o.html index 848db6c0..4fd10ca4 100644 --- a/functions_o.html +++ b/functions_o.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_p.html b/functions_p.html index b9c5b508..013b6e99 100644 --- a/functions_p.html +++ b/functions_p.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_r.html b/functions_r.html index f18198b9..d4d71f3b 100644 --- a/functions_r.html +++ b/functions_r.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_s.html b/functions_s.html index 56991de3..a7e7fd8d 100644 --- a/functions_s.html +++ b/functions_s.html @@ -157,7 +157,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : KeccakCore
          • setIV() -: CBCCommon +: Acorn128 +, CBCCommon , CFBCommon , ChaCha , ChaChaPoly @@ -168,7 +169,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , OFBCommon
          • setKey() -: AES128 +: Acorn128 +, AES128 , AES192 , AES256 , AESSmall128 @@ -256,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_t.html b/functions_t.html index ff9b71bf..70c112ea 100644 --- a/functions_t.html +++ b/functions_t.html @@ -121,7 +121,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');

            - t -

            • tagSize() -: AuthenticatedCipher +: Acorn128 +, AuthenticatedCipher , ChaChaPoly , EAXCommon , GCMCommon @@ -139,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_u.html b/functions_u.html index 7965e4e3..215b7dab 100644 --- a/functions_u.html +++ b/functions_u.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_v.html b/functions_v.html index e9ffeb56..875cc7c6 100644 --- a/functions_v.html +++ b/functions_v.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_vars.html b/functions_vars.html index 1e65aab5..b075cf17 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_x.html b/functions_x.html index e4699cf7..2ca89c74 100644 --- a/functions_x.html +++ b/functions_x.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/functions_~.html b/functions_~.html index cd1d72ce..3dcc4361 100644 --- a/functions_~.html +++ b/functions_~.html @@ -120,6 +120,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
              Here is a list of all documented class members with links to the class documentation for each member:

              - ~ -

                +
              • ~Acorn128() +: Acorn128 +
              • ~AESCommon() : AESCommon
              • @@ -214,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/hierarchy.html b/hierarchy.html index 65d09648..b1bb488d 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -103,55 +103,56 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); | \CSpeckSmallSpeck block cipher with a 128-bit block size (small-memory version) oCCipherAbstract base class for stream ciphers |oCAuthenticatedCipherAbstract base class for authenticated ciphers -||oCChaChaPolyAuthenticated cipher based on ChaCha and Poly1305 -||oCEAXCommonConcrete base class to assist with implementing EAX for 128-bit block ciphers -|||\CEAX< T >Implementation of the EAX authenticated cipher -||\CGCMCommonConcrete base class to assist with implementing GCM for 128-bit block ciphers -|| \CGCM< T >Implementation of the Galois Counter Mode (GCM) -|oCCBCCommonConcrete base class to assist with implementing CBC for 128-bit block ciphers -||\CCBC< T >Implementation of the Cipher Block Chaining (CBC) mode for 128-bit block ciphers -|oCCFBCommonConcrete base class to assist with implementing CFB for 128-bit block ciphers -||\CCFB< T >Implementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers -|oCChaChaChaCha stream cipher -|oCCTRCommonConcrete base class to assist with implementing CTR mode for 128-bit block ciphers -||\CCTR< T >Implementation of the Counter (CTR) mode for 128-bit block ciphers -|\COFBCommonConcrete base class to assist with implementing OFB for 128-bit block ciphers -| \COFB< T >Implementation of the Output Feedback (OFB) mode for 128-bit block ciphers -oCCurve25519Diffie-Hellman key agreement based on the elliptic curve modulo 2^255 - 19 -oCEd25519Digital signatures based on the elliptic curve modulo 2^255 - 19 -oCGF128Operations in the Galois field GF(2^128) -oCGHASHImplementation of the GHASH message authenticator -oCHashAbstract base class for cryptographic hash algorithms -|oCBLAKE2bBLAKE2b hash algorithm -|oCBLAKE2sBLAKE2s hash algorithm -|oCSHA256SHA-256 hash algorithm -|oCSHA3_256SHA3-256 hash algorithm -|oCSHA3_512SHA3-512 hash algorithm -|\CSHA512SHA-512 hash algorithm -oCKeccakCoreKeccak core sponge function -oCNewHopeNewHope post-quantum key exchange algorithm -oCNewHopePrivateKeyNewHope private key representation -oCNoiseSourceAbstract base class for random noise sources -|oCRingOscillatorNoiseSourceProcesses the signal from a ring oscillator based noise source -|\CTransistorNoiseSourceProcesses the signal from a transistor-based noise source -oCOMACImplementation of the OMAC message authenticator -oCP521Elliptic curve operations with the NIST P-521 curve -oCPoly1305Poly1305 message authenticator -oCRNGClassPseudo random number generator suitable for cryptography -oCXOFAbstract base class for Extendable-Output Functions (XOFs) -|\CSHAKEAbstract base class for the SHAKE Extendable-Output Functions (XOFs) -| oCSHAKE128SHAKE Extendable-Output Function (XOF) with 128-bit security -| \CSHAKE256SHAKE Extendable-Output Function (XOF) with 256-bit security -\CXTSCommonConcrete base class to assist with implementing XTS mode for 128-bit block ciphers - oCXTS< T1, T2 >Implementation of the XTS mode for 128-bit block ciphers - \CXTSSingleKeyCommonConcrete base class to assist with implementing single-key XTS mode for 128-bit block ciphers -  \CXTSSingleKey< T >Implementation of the single-key XTS mode for 128-bit block ciphers +||oCAcorn128ACORN-128 authenticated cipher +||oCChaChaPolyAuthenticated cipher based on ChaCha and Poly1305 +||oCEAXCommonConcrete base class to assist with implementing EAX for 128-bit block ciphers +|||\CEAX< T >Implementation of the EAX authenticated cipher +||\CGCMCommonConcrete base class to assist with implementing GCM for 128-bit block ciphers +|| \CGCM< T >Implementation of the Galois Counter Mode (GCM) +|oCCBCCommonConcrete base class to assist with implementing CBC for 128-bit block ciphers +||\CCBC< T >Implementation of the Cipher Block Chaining (CBC) mode for 128-bit block ciphers +|oCCFBCommonConcrete base class to assist with implementing CFB for 128-bit block ciphers +||\CCFB< T >Implementation of the Cipher Feedback (CFB) mode for 128-bit block ciphers +|oCChaChaChaCha stream cipher +|oCCTRCommonConcrete base class to assist with implementing CTR mode for 128-bit block ciphers +||\CCTR< T >Implementation of the Counter (CTR) mode for 128-bit block ciphers +|\COFBCommonConcrete base class to assist with implementing OFB for 128-bit block ciphers +| \COFB< T >Implementation of the Output Feedback (OFB) mode for 128-bit block ciphers +oCCurve25519Diffie-Hellman key agreement based on the elliptic curve modulo 2^255 - 19 +oCEd25519Digital signatures based on the elliptic curve modulo 2^255 - 19 +oCGF128Operations in the Galois field GF(2^128) +oCGHASHImplementation of the GHASH message authenticator +oCHashAbstract base class for cryptographic hash algorithms +|oCBLAKE2bBLAKE2b hash algorithm +|oCBLAKE2sBLAKE2s hash algorithm +|oCSHA256SHA-256 hash algorithm +|oCSHA3_256SHA3-256 hash algorithm +|oCSHA3_512SHA3-512 hash algorithm +|\CSHA512SHA-512 hash algorithm +oCKeccakCoreKeccak core sponge function +oCNewHopeNewHope post-quantum key exchange algorithm +oCNewHopePrivateKeyNewHope private key representation +oCNoiseSourceAbstract base class for random noise sources +|oCRingOscillatorNoiseSourceProcesses the signal from a ring oscillator based noise source +|\CTransistorNoiseSourceProcesses the signal from a transistor-based noise source +oCOMACImplementation of the OMAC message authenticator +oCP521Elliptic curve operations with the NIST P-521 curve +oCPoly1305Poly1305 message authenticator +oCRNGClassPseudo random number generator suitable for cryptography +oCXOFAbstract base class for Extendable-Output Functions (XOFs) +|\CSHAKEAbstract base class for the SHAKE Extendable-Output Functions (XOFs) +| oCSHAKE128SHAKE Extendable-Output Function (XOF) with 128-bit security +| \CSHAKE256SHAKE Extendable-Output Function (XOF) with 256-bit security +\CXTSCommonConcrete base class to assist with implementing XTS mode for 128-bit block ciphers + oCXTS< T1, T2 >Implementation of the XTS mode for 128-bit block ciphers + \CXTSSingleKeyCommonConcrete base class to assist with implementing single-key XTS mode for 128-bit block ciphers +  \CXTSSingleKey< T >Implementation of the single-key XTS mode for 128-bit block ciphers diff --git a/index.html b/index.html index ec3ce729..f154980e 100644 --- a/index.html +++ b/index.html @@ -85,7 +85,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/mainpage_8dox.html b/mainpage_8dox.html index 70eed191..bf0940ce 100644 --- a/mainpage_8dox.html +++ b/mainpage_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/newhope-small_8dox.html b/newhope-small_8dox.html index 946ccbbb..1b6c5e4a 100644 --- a/newhope-small_8dox.html +++ b/newhope-small_8dox.html @@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/newhope_small.html b/newhope_small.html index 8809a335..73936331 100644 --- a/newhope_small.html +++ b/newhope_small.html @@ -249,7 +249,7 @@ Summary diff --git a/pages.html b/pages.html index 23d00d5b..4c3e312b 100644 --- a/pages.html +++ b/pages.html @@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/search/all_0.js b/search/all_0.js index 5b21bf9b..9cec1d81 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -1,8 +1,9 @@ var searchData= [ + ['acorn128',['Acorn128',['../classAcorn128.html',1,'Acorn128'],['../classAcorn128.html#af42823fb01dcbdeb8a93fa4103edebf2',1,'Acorn128::Acorn128()']]], ['add',['add',['../classBigNumberUtil.html#aa6904b2727af6b767fe041b1b7f27414',1,'BigNumberUtil']]], ['add_5fp',['add_P',['../classBigNumberUtil.html#ab9a9f532fcfc182433adac44d8e4ee20',1,'BigNumberUtil']]], - ['addauthdata',['addAuthData',['../classAuthenticatedCipher.html#abdb081bdf0d59c138cbcffd23c044b10',1,'AuthenticatedCipher::addAuthData()'],['../classChaChaPoly.html#a4aa3514d1fb6272da977a7467ae6734b',1,'ChaChaPoly::addAuthData()'],['../classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8',1,'EAXCommon::addAuthData()'],['../classGCMCommon.html#ad926e980ae2d61c10c9bf82813154a25',1,'GCMCommon::addAuthData()']]], + ['addauthdata',['addAuthData',['../classAuthenticatedCipher.html#abdb081bdf0d59c138cbcffd23c044b10',1,'AuthenticatedCipher::addAuthData()'],['../classChaChaPoly.html#a4aa3514d1fb6272da977a7467ae6734b',1,'ChaChaPoly::addAuthData()'],['../classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8',1,'EAXCommon::addAuthData()'],['../classGCMCommon.html#ad926e980ae2d61c10c9bf82813154a25',1,'GCMCommon::addAuthData()'],['../classAcorn128.html#a9a893539010c729c7d93a7acfd76ae67',1,'Acorn128::addAuthData()']]], ['added',['added',['../classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba',1,'NoiseSource']]], ['addnoisesource',['addNoiseSource',['../classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db',1,'RNGClass']]], ['aes128',['AES128',['../classAES128.html',1,'AES128'],['../classAES128.html#af826ce33301767919bb60f27ad3ff693',1,'AES128::AES128()']]], diff --git a/search/all_10.js b/search/all_10.js index b7ead5f4..8cb8b3bf 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -11,8 +11,8 @@ var searchData= ['setcounter',['setCounter',['../classChaCha.html#acab9109b7189ea88d9e5417a3a209eac',1,'ChaCha']]], ['setcountersize',['setCounterSize',['../classCTRCommon.html#ae2bc6b33a864412598b426320d853337',1,'CTRCommon']]], ['sethmackey',['setHMACKey',['../classKeccakCore.html#aeff6b3357916bf426b60d3629db52628',1,'KeccakCore']]], - ['setiv',['setIV',['../classCBCCommon.html#ac7a586217835055b3a354bb932db160c',1,'CBCCommon::setIV()'],['../classCFBCommon.html#a597040eb7df40adbbef94b4c3975cd80',1,'CFBCommon::setIV()'],['../classChaCha.html#a734f3246b1e6810c63637b8cda26b259',1,'ChaCha::setIV()'],['../classChaChaPoly.html#a308056b17b3a4a496e9612ae19a2fd6f',1,'ChaChaPoly::setIV()'],['../classCipher.html#a3777acd8ff776a4e945bb7c9f2d044d9',1,'Cipher::setIV()'],['../classCTRCommon.html#aad289af3eb013cb3ffda6d7e8e8b3d04',1,'CTRCommon::setIV()'],['../classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45',1,'EAXCommon::setIV()'],['../classGCMCommon.html#a2545135fe42c832e40e057b603824524',1,'GCMCommon::setIV()'],['../classOFBCommon.html#a4a35364cf30d78f1968cc00803686caf',1,'OFBCommon::setIV()']]], - ['setkey',['setKey',['../classAES128.html#a42d7548eb5084a2c3e2d5aa5f6f98ba4',1,'AES128::setKey()'],['../classAES192.html#a4ab37cff19fb05ceef1533ebc5e37cde',1,'AES192::setKey()'],['../classAES256.html#a6af085d2d6a730ff1e025f982121bbda',1,'AES256::setKey()'],['../classAESTiny256.html#abc162075b181bfca34144f4eec6deec7',1,'AESTiny256::setKey()'],['../classAESSmall256.html#ae7e05119a6183d5f7fc520206f97c0e0',1,'AESSmall256::setKey()'],['../classAESTiny128.html#a475b147be367e6053ff64e30bf79694c',1,'AESTiny128::setKey()'],['../classAESSmall128.html#a6ca13e59f88498c8c3da338e76f47de5',1,'AESSmall128::setKey()'],['../classBlockCipher.html#a9a05307664469777592799c8f77397c4',1,'BlockCipher::setKey()'],['../classCBCCommon.html#add75ea4342a190e560cee26a8e9efc37',1,'CBCCommon::setKey()'],['../classCFBCommon.html#a45b9be25fb96f0e3ca5211b064e2baea',1,'CFBCommon::setKey()'],['../classChaCha.html#a6b2bdffbd3705e388bb458edb2f40c90',1,'ChaCha::setKey()'],['../classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09',1,'ChaChaPoly::setKey()'],['../classCipher.html#a0dfe133bda81dfa680b668f5908ccbe5',1,'Cipher::setKey()'],['../classCTRCommon.html#a79da937dc2c444a174176beab33c055a',1,'CTRCommon::setKey()'],['../classEAXCommon.html#af5be5115c119610abb351028263d28de',1,'EAXCommon::setKey()'],['../classGCMCommon.html#a397c5dddde828c59eb63367385aec562',1,'GCMCommon::setKey()'],['../classOFBCommon.html#ac3a98e81d95ebc6c883baef5f4cfbefb',1,'OFBCommon::setKey()'],['../classSpeck.html#a7a07fc025bd25d832e9899333b5dabef',1,'Speck::setKey()'],['../classSpeckSmall.html#a3345df135f6530bad475d630ef6c1038',1,'SpeckSmall::setKey()'],['../classSpeckTiny.html#a05180c773b9d26d3b67ff569dc86fc2d',1,'SpeckTiny::setKey()'],['../classXTSCommon.html#a68b1ad6bad0b29aeb97dea80e4e03170',1,'XTSCommon::setKey()'],['../classXTSSingleKeyCommon.html#af150ada65640d0dcd1f5e09817f63769',1,'XTSSingleKeyCommon::setKey()']]], + ['setiv',['setIV',['../classCBCCommon.html#ac7a586217835055b3a354bb932db160c',1,'CBCCommon::setIV()'],['../classCFBCommon.html#a597040eb7df40adbbef94b4c3975cd80',1,'CFBCommon::setIV()'],['../classChaCha.html#a734f3246b1e6810c63637b8cda26b259',1,'ChaCha::setIV()'],['../classChaChaPoly.html#a308056b17b3a4a496e9612ae19a2fd6f',1,'ChaChaPoly::setIV()'],['../classCipher.html#a3777acd8ff776a4e945bb7c9f2d044d9',1,'Cipher::setIV()'],['../classCTRCommon.html#aad289af3eb013cb3ffda6d7e8e8b3d04',1,'CTRCommon::setIV()'],['../classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45',1,'EAXCommon::setIV()'],['../classGCMCommon.html#a2545135fe42c832e40e057b603824524',1,'GCMCommon::setIV()'],['../classOFBCommon.html#a4a35364cf30d78f1968cc00803686caf',1,'OFBCommon::setIV()'],['../classAcorn128.html#ae4e9ecf2030c4d2e3f32a19f937de845',1,'Acorn128::setIV()']]], + ['setkey',['setKey',['../classAES128.html#a42d7548eb5084a2c3e2d5aa5f6f98ba4',1,'AES128::setKey()'],['../classAES192.html#a4ab37cff19fb05ceef1533ebc5e37cde',1,'AES192::setKey()'],['../classAES256.html#a6af085d2d6a730ff1e025f982121bbda',1,'AES256::setKey()'],['../classAESTiny256.html#abc162075b181bfca34144f4eec6deec7',1,'AESTiny256::setKey()'],['../classAESSmall256.html#ae7e05119a6183d5f7fc520206f97c0e0',1,'AESSmall256::setKey()'],['../classAESTiny128.html#a475b147be367e6053ff64e30bf79694c',1,'AESTiny128::setKey()'],['../classAESSmall128.html#a6ca13e59f88498c8c3da338e76f47de5',1,'AESSmall128::setKey()'],['../classBlockCipher.html#a9a05307664469777592799c8f77397c4',1,'BlockCipher::setKey()'],['../classCBCCommon.html#add75ea4342a190e560cee26a8e9efc37',1,'CBCCommon::setKey()'],['../classCFBCommon.html#a45b9be25fb96f0e3ca5211b064e2baea',1,'CFBCommon::setKey()'],['../classChaCha.html#a6b2bdffbd3705e388bb458edb2f40c90',1,'ChaCha::setKey()'],['../classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09',1,'ChaChaPoly::setKey()'],['../classCipher.html#a0dfe133bda81dfa680b668f5908ccbe5',1,'Cipher::setKey()'],['../classCTRCommon.html#a79da937dc2c444a174176beab33c055a',1,'CTRCommon::setKey()'],['../classEAXCommon.html#af5be5115c119610abb351028263d28de',1,'EAXCommon::setKey()'],['../classGCMCommon.html#a397c5dddde828c59eb63367385aec562',1,'GCMCommon::setKey()'],['../classOFBCommon.html#ac3a98e81d95ebc6c883baef5f4cfbefb',1,'OFBCommon::setKey()'],['../classSpeck.html#a7a07fc025bd25d832e9899333b5dabef',1,'Speck::setKey()'],['../classSpeckSmall.html#a3345df135f6530bad475d630ef6c1038',1,'SpeckSmall::setKey()'],['../classSpeckTiny.html#a05180c773b9d26d3b67ff569dc86fc2d',1,'SpeckTiny::setKey()'],['../classXTSCommon.html#a68b1ad6bad0b29aeb97dea80e4e03170',1,'XTSCommon::setKey()'],['../classXTSSingleKeyCommon.html#af150ada65640d0dcd1f5e09817f63769',1,'XTSSingleKeyCommon::setKey()'],['../classAcorn128.html#a2a2b2285ffc4d0ed57d661d739d22302',1,'Acorn128::setKey()']]], ['setnumrounds',['setNumRounds',['../classChaCha.html#a1a0911e0be8f4590d7fb76884d98c541',1,'ChaCha']]], ['setsectorsize',['setSectorSize',['../classXTSCommon.html#a7e0aa61628285073545a8f8e0b0d981d',1,'XTSCommon']]], ['settweak',['setTweak',['../classXTSCommon.html#a744a533d46078de5ea9723139f74bcdb',1,'XTSCommon']]], diff --git a/search/all_11.js b/search/all_11.js index 988bbd45..4eba3746 100644 --- a/search/all_11.js +++ b/search/all_11.js @@ -1,6 +1,6 @@ var searchData= [ - ['tagsize',['tagSize',['../classAuthenticatedCipher.html#a50c9de15b1ac1f3079dcfef626238759',1,'AuthenticatedCipher::tagSize()'],['../classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a',1,'ChaChaPoly::tagSize()'],['../classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9',1,'EAXCommon::tagSize()'],['../classGCMCommon.html#a935f343858e98ee331706daf43e34805',1,'GCMCommon::tagSize()']]], + ['tagsize',['tagSize',['../classAuthenticatedCipher.html#a50c9de15b1ac1f3079dcfef626238759',1,'AuthenticatedCipher::tagSize()'],['../classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a',1,'ChaChaPoly::tagSize()'],['../classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9',1,'EAXCommon::tagSize()'],['../classGCMCommon.html#a935f343858e98ee331706daf43e34805',1,'GCMCommon::tagSize()'],['../classAcorn128.html#a75c8953cea6b9cd59aa5034dfe739889',1,'Acorn128::tagSize()']]], ['torref',['Torref',['../classNewHope.html#a679601da301134f037c3a5786bd7085fae270e706968a8e01e5c1cb40422b22c6',1,'NewHope']]], ['transistornoisesource',['TransistorNoiseSource',['../classTransistorNoiseSource.html',1,'TransistorNoiseSource'],['../classTransistorNoiseSource.html#a05bab61c301a5397021048c95ca3107d',1,'TransistorNoiseSource::TransistorNoiseSource()']]], ['tweaksize',['tweakSize',['../classXTSCommon.html#afb3ebf14c7879bcbc92e3d6cc70b19a9',1,'XTSCommon']]] diff --git a/search/all_15.js b/search/all_15.js index 9f1ab013..36631f25 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -1,5 +1,6 @@ var searchData= [ + ['_7eacorn128',['~Acorn128',['../classAcorn128.html#a170c189599a1cf332db5496dd6bc1df4',1,'Acorn128']]], ['_7eaescommon',['~AESCommon',['../classAESCommon.html#a8f67970c86c23affb0297fc1bb10fad8',1,'AESCommon']]], ['_7eauthenticatedcipher',['~AuthenticatedCipher',['../classAuthenticatedCipher.html#ae52a07be5b7265ea5898529ec21a79e4',1,'AuthenticatedCipher']]], ['_7eblake2b',['~BLAKE2b',['../classBLAKE2b.html#ad0287d7284000ff236153e6afa0130f1',1,'BLAKE2b']]], diff --git a/search/all_2.js b/search/all_2.js index 62fcfb3b..8a48833f 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -8,10 +8,10 @@ var searchData= ['cfbcommon',['CFBCommon',['../classCFBCommon.html',1,'CFBCommon'],['../classCFBCommon.html#adad0210430c83817c993bdca30d562a6',1,'CFBCommon::CFBCommon()']]], ['chacha',['ChaCha',['../classChaCha.html',1,'ChaCha'],['../classChaCha.html#a5831811b705d3c80e97f0242597f0c7e',1,'ChaCha::ChaCha()']]], ['chachapoly',['ChaChaPoly',['../classChaChaPoly.html',1,'ChaChaPoly'],['../classChaChaPoly.html#a1b6779227eff97b0336bbc849c7e2e1c',1,'ChaChaPoly::ChaChaPoly()']]], - ['checktag',['checkTag',['../classAuthenticatedCipher.html#a4bb33d194e2c7d30c4e5a713e59786ff',1,'AuthenticatedCipher::checkTag()'],['../classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953',1,'ChaChaPoly::checkTag()'],['../classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963',1,'EAXCommon::checkTag()'],['../classGCMCommon.html#a70229be2fe2274c4109fe7511481075a',1,'GCMCommon::checkTag()']]], + ['checktag',['checkTag',['../classAuthenticatedCipher.html#a4bb33d194e2c7d30c4e5a713e59786ff',1,'AuthenticatedCipher::checkTag()'],['../classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953',1,'ChaChaPoly::checkTag()'],['../classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963',1,'EAXCommon::checkTag()'],['../classGCMCommon.html#a70229be2fe2274c4109fe7511481075a',1,'GCMCommon::checkTag()'],['../classAcorn128.html#a0a1c914c76d15af00bbb348f160bbacb',1,'Acorn128::checkTag()']]], ['cipher',['Cipher',['../classCipher.html',1,'Cipher'],['../classCipher.html#a6a61077eca3ccd5900f92ceac58fb09c',1,'Cipher::Cipher()']]], - ['clear',['clear',['../classAESCommon.html#a83e43f7d07e31d90fd7b768a93ecfce6',1,'AESCommon::clear()'],['../classAESTiny256.html#ae4cac6af2e78cbf399b7f6d0e613a578',1,'AESTiny256::clear()'],['../classAESSmall256.html#ac63bf2dff7de8a73ba57f4bb0f1df444',1,'AESSmall256::clear()'],['../classAESTiny128.html#a17e56d025f9e55041150953d8561c793',1,'AESTiny128::clear()'],['../classAESSmall128.html#a215b28599d388c2149aba2206d40863d',1,'AESSmall128::clear()'],['../classBLAKE2b.html#a21623759bd381285ebf7e75a00c9c8a9',1,'BLAKE2b::clear()'],['../classBLAKE2s.html#a0848885f52df51dc53949d32a206e72d',1,'BLAKE2s::clear()'],['../classBlockCipher.html#a6f27d46e9dfa7761d014d828ad5f955b',1,'BlockCipher::clear()'],['../classCBCCommon.html#a7befadfe7384e0e857a96a59bf3845e9',1,'CBCCommon::clear()'],['../classCFBCommon.html#a847d320b0fe7f329385f26511b42c40d',1,'CFBCommon::clear()'],['../classChaCha.html#af533905f679066c41f4d6cd76bddb4cb',1,'ChaCha::clear()'],['../classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a',1,'ChaChaPoly::clear()'],['../classCipher.html#a4b7c3965646441a70d9ab934a7c92ab1',1,'Cipher::clear()'],['../classCTRCommon.html#ac0d6381c02fe2a8a017ad66d006a6ef2',1,'CTRCommon::clear()'],['../classEAXCommon.html#afa88b0f589e09103e9c69ace081db0af',1,'EAXCommon::clear()'],['../classGCMCommon.html#a06868ebd67a571aa68d88d5d072cece9',1,'GCMCommon::clear()'],['../classGHASH.html#a4b1ee789debf56f7f24807960ef0556e',1,'GHASH::clear()'],['../classHash.html#a4a959469433cd9348ab7f3ac6228bb34',1,'Hash::clear()'],['../classKeccakCore.html#aeff1df56e4a3103c99c1fe4307e60c66',1,'KeccakCore::clear()'],['../classOFBCommon.html#a55bf2396beb91c457bfc4c20ef5c8123',1,'OFBCommon::clear()'],['../classOMAC.html#a072715dbda39dc9c360cfcaab31d6aa7',1,'OMAC::clear()'],['../classPoly1305.html#ae3f3392b9a2bd0f3472e7e50dd7e21dd',1,'Poly1305::clear()'],['../classSHA256.html#add0d1649d533b27005ccd8508398c689',1,'SHA256::clear()'],['../classSHA3__256.html#a531467f995ef6fc901ad8c2b5776a8d1',1,'SHA3_256::clear()'],['../classSHA3__512.html#acfbc5e9b4d394f011d5132a2b156d260',1,'SHA3_512::clear()'],['../classSHA512.html#a0a9104dce5f099aeba216e5fbcb1ee1a',1,'SHA512::clear()'],['../classSHAKE.html#ab86f52425c1d5b0e5c924b4f96121fe0',1,'SHAKE::clear()'],['../classSpeck.html#aa3866273282addabb9d3703c41fdc95f',1,'Speck::clear()'],['../classSpeckSmall.html#aa93d9f0b5153425dc04e8fb8faff7513',1,'SpeckSmall::clear()'],['../classSpeckTiny.html#a303ecc2639459e47c6eeb21991d52ccf',1,'SpeckTiny::clear()'],['../classXOF.html#ac34cb22f251642b58b3dd78a6480aff3',1,'XOF::clear()'],['../classXTSCommon.html#a96e3cb4a3d35dc4e3a5acbae19b4465b',1,'XTSCommon::clear()']]], - ['computetag',['computeTag',['../classAuthenticatedCipher.html#a73fa4306053ed457e5c533b3127391c9',1,'AuthenticatedCipher::computeTag()'],['../classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95',1,'ChaChaPoly::computeTag()'],['../classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3',1,'EAXCommon::computeTag()'],['../classGCMCommon.html#a444634bd4469bb5d404ac882d1d8fdf4',1,'GCMCommon::computeTag()']]], + ['clear',['clear',['../classAESCommon.html#a83e43f7d07e31d90fd7b768a93ecfce6',1,'AESCommon::clear()'],['../classAESTiny256.html#ae4cac6af2e78cbf399b7f6d0e613a578',1,'AESTiny256::clear()'],['../classAESSmall256.html#ac63bf2dff7de8a73ba57f4bb0f1df444',1,'AESSmall256::clear()'],['../classAESTiny128.html#a17e56d025f9e55041150953d8561c793',1,'AESTiny128::clear()'],['../classAESSmall128.html#a215b28599d388c2149aba2206d40863d',1,'AESSmall128::clear()'],['../classBLAKE2b.html#a21623759bd381285ebf7e75a00c9c8a9',1,'BLAKE2b::clear()'],['../classBLAKE2s.html#a0848885f52df51dc53949d32a206e72d',1,'BLAKE2s::clear()'],['../classBlockCipher.html#a6f27d46e9dfa7761d014d828ad5f955b',1,'BlockCipher::clear()'],['../classCBCCommon.html#a7befadfe7384e0e857a96a59bf3845e9',1,'CBCCommon::clear()'],['../classCFBCommon.html#a847d320b0fe7f329385f26511b42c40d',1,'CFBCommon::clear()'],['../classChaCha.html#af533905f679066c41f4d6cd76bddb4cb',1,'ChaCha::clear()'],['../classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a',1,'ChaChaPoly::clear()'],['../classCipher.html#a4b7c3965646441a70d9ab934a7c92ab1',1,'Cipher::clear()'],['../classCTRCommon.html#ac0d6381c02fe2a8a017ad66d006a6ef2',1,'CTRCommon::clear()'],['../classEAXCommon.html#afa88b0f589e09103e9c69ace081db0af',1,'EAXCommon::clear()'],['../classGCMCommon.html#a06868ebd67a571aa68d88d5d072cece9',1,'GCMCommon::clear()'],['../classGHASH.html#a4b1ee789debf56f7f24807960ef0556e',1,'GHASH::clear()'],['../classHash.html#a4a959469433cd9348ab7f3ac6228bb34',1,'Hash::clear()'],['../classKeccakCore.html#aeff1df56e4a3103c99c1fe4307e60c66',1,'KeccakCore::clear()'],['../classOFBCommon.html#a55bf2396beb91c457bfc4c20ef5c8123',1,'OFBCommon::clear()'],['../classOMAC.html#a072715dbda39dc9c360cfcaab31d6aa7',1,'OMAC::clear()'],['../classPoly1305.html#ae3f3392b9a2bd0f3472e7e50dd7e21dd',1,'Poly1305::clear()'],['../classSHA256.html#add0d1649d533b27005ccd8508398c689',1,'SHA256::clear()'],['../classSHA3__256.html#a531467f995ef6fc901ad8c2b5776a8d1',1,'SHA3_256::clear()'],['../classSHA3__512.html#acfbc5e9b4d394f011d5132a2b156d260',1,'SHA3_512::clear()'],['../classSHA512.html#a0a9104dce5f099aeba216e5fbcb1ee1a',1,'SHA512::clear()'],['../classSHAKE.html#ab86f52425c1d5b0e5c924b4f96121fe0',1,'SHAKE::clear()'],['../classSpeck.html#aa3866273282addabb9d3703c41fdc95f',1,'Speck::clear()'],['../classSpeckSmall.html#aa93d9f0b5153425dc04e8fb8faff7513',1,'SpeckSmall::clear()'],['../classSpeckTiny.html#a303ecc2639459e47c6eeb21991d52ccf',1,'SpeckTiny::clear()'],['../classXOF.html#ac34cb22f251642b58b3dd78a6480aff3',1,'XOF::clear()'],['../classXTSCommon.html#a96e3cb4a3d35dc4e3a5acbae19b4465b',1,'XTSCommon::clear()'],['../classAcorn128.html#ac98fa6f3ad9f12b090d678d94ffff56f',1,'Acorn128::clear()']]], + ['computetag',['computeTag',['../classAuthenticatedCipher.html#a73fa4306053ed457e5c533b3127391c9',1,'AuthenticatedCipher::computeTag()'],['../classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95',1,'ChaChaPoly::computeTag()'],['../classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3',1,'EAXCommon::computeTag()'],['../classGCMCommon.html#a444634bd4469bb5d404ac882d1d8fdf4',1,'GCMCommon::computeTag()'],['../classAcorn128.html#a333c98509f0ba55dff684d54781c0242',1,'Acorn128::computeTag()']]], ['crypto_2desp_2edox',['crypto-esp.dox',['../crypto-esp_8dox.html',1,'']]], ['crypto_2drng_2dring_2edox',['crypto-rng-ring.dox',['../crypto-rng-ring_8dox.html',1,'']]], ['crypto_2drng_2edox',['crypto-rng.dox',['../crypto-rng_8dox.html',1,'']]], diff --git a/search/all_3.js b/search/all_3.js index 726db646..2c816b99 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -3,7 +3,7 @@ var searchData= ['dbl',['dbl',['../classGF128.html#aef22f6b7be5937f60ed2b7bcf831e52d',1,'GF128']]], ['dbleax',['dblEAX',['../classGF128.html#a56000a4cd7d436de42360e9d43eecde4',1,'GF128']]], ['dblxts',['dblXTS',['../classGF128.html#a3732c9471771c36ac1b518e974d46b3e',1,'GF128']]], - ['decrypt',['decrypt',['../classCBCCommon.html#ab46a2625cae9a654c708e1f31a0e22b6',1,'CBCCommon::decrypt()'],['../classCFBCommon.html#aaaa3d61c5743e30e355207c193c0b0ef',1,'CFBCommon::decrypt()'],['../classChaCha.html#a1f54b2b51b59428010f81a6c4dc4e42c',1,'ChaCha::decrypt()'],['../classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0',1,'ChaChaPoly::decrypt()'],['../classCipher.html#ac6099d1a0d7f2ff67b0e4ccb4a17eb08',1,'Cipher::decrypt()'],['../classCTRCommon.html#a0943387cf1124258389702e0690740fe',1,'CTRCommon::decrypt()'],['../classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2',1,'EAXCommon::decrypt()'],['../classGCMCommon.html#a60912d3ab5766aa68dc9b3111ac2c0d7',1,'GCMCommon::decrypt()'],['../classOFBCommon.html#aeb3636d7175b150e2bf16367e51c2e36',1,'OFBCommon::decrypt()'],['../classXOF.html#a1c322679dfd211cd77ae05fb201a32e8',1,'XOF::decrypt()']]], + ['decrypt',['decrypt',['../classCBCCommon.html#ab46a2625cae9a654c708e1f31a0e22b6',1,'CBCCommon::decrypt()'],['../classCFBCommon.html#aaaa3d61c5743e30e355207c193c0b0ef',1,'CFBCommon::decrypt()'],['../classChaCha.html#a1f54b2b51b59428010f81a6c4dc4e42c',1,'ChaCha::decrypt()'],['../classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0',1,'ChaChaPoly::decrypt()'],['../classCipher.html#ac6099d1a0d7f2ff67b0e4ccb4a17eb08',1,'Cipher::decrypt()'],['../classCTRCommon.html#a0943387cf1124258389702e0690740fe',1,'CTRCommon::decrypt()'],['../classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2',1,'EAXCommon::decrypt()'],['../classGCMCommon.html#a60912d3ab5766aa68dc9b3111ac2c0d7',1,'GCMCommon::decrypt()'],['../classOFBCommon.html#aeb3636d7175b150e2bf16367e51c2e36',1,'OFBCommon::decrypt()'],['../classXOF.html#a1c322679dfd211cd77ae05fb201a32e8',1,'XOF::decrypt()'],['../classAcorn128.html#a7eacfc496f19b691207f64ba58b4c14a',1,'Acorn128::decrypt()']]], ['decryptblock',['decryptBlock',['../classAESCommon.html#a95a806adf42f975765ff62907efdc639',1,'AESCommon::decryptBlock()'],['../classAESTiny256.html#abdf72a52c37c060a9089693c118585bc',1,'AESTiny256::decryptBlock()'],['../classAESSmall256.html#aaba6d59d07d2f40efa8c962375c15888',1,'AESSmall256::decryptBlock()'],['../classAESTiny128.html#a631c417a0f12c7e43f633c555b950182',1,'AESTiny128::decryptBlock()'],['../classAESSmall128.html#aabdb20c638b2107b5b5e3e41dc6dae26',1,'AESSmall128::decryptBlock()'],['../classBlockCipher.html#ac3ba2450222aa1ea804ae4881ab6440c',1,'BlockCipher::decryptBlock()'],['../classSpeck.html#ad8c040df1c52d2559da8fdb3963d28b4',1,'Speck::decryptBlock()'],['../classSpeckSmall.html#acced022717603980ecca21b3f953bf51',1,'SpeckSmall::decryptBlock()'],['../classSpeckTiny.html#a19e54aef7d1b3ef92e8140dd9c308c3c',1,'SpeckTiny::decryptBlock()']]], ['decryptsector',['decryptSector',['../classXTSCommon.html#a7dd21d5a994724e2af433872ecc3a90b',1,'XTSCommon']]], ['derivepublickey',['derivePublicKey',['../classEd25519.html#ab62bac52ed07f77f76f3ff0fccd71cb2',1,'Ed25519::derivePublicKey()'],['../classP521.html#a15ca802e298c7ff3be06924b0edb7daa',1,'P521::derivePublicKey()']]], diff --git a/search/all_4.js b/search/all_4.js index a1ba1ba4..2b8c3d07 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -3,7 +3,7 @@ var searchData= ['eax',['EAX',['../classEAX.html',1,'EAX< T >'],['../classEAX.html#a7a1f89270e885a1ca245ca978b66e09b',1,'EAX::EAX()']]], ['eaxcommon',['EAXCommon',['../classEAXCommon.html',1,'EAXCommon'],['../classEAXCommon.html#ae09c9df956bf87cde02ca36c26c32f79',1,'EAXCommon::EAXCommon()']]], ['ed25519',['Ed25519',['../classEd25519.html',1,'']]], - ['encrypt',['encrypt',['../classCBCCommon.html#a41d2f655a7df13cfcd009b2882e13147',1,'CBCCommon::encrypt()'],['../classCFBCommon.html#a57af3692389bed300d3cfdf351351c51',1,'CFBCommon::encrypt()'],['../classChaCha.html#acd4fff140b8871c233d9a31abf753ed8',1,'ChaCha::encrypt()'],['../classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3',1,'ChaChaPoly::encrypt()'],['../classCipher.html#ad2832bd61039d61560e34ea3382ca562',1,'Cipher::encrypt()'],['../classCTRCommon.html#a201bda584d111552ce8ec09fac759963',1,'CTRCommon::encrypt()'],['../classEAXCommon.html#aad2c563f749535f539b8efbd74b09099',1,'EAXCommon::encrypt()'],['../classGCMCommon.html#a01ac69afe3d9fc4d72b2ea5dc242e55c',1,'GCMCommon::encrypt()'],['../classKeccakCore.html#acaf5c13452003e6e2e7793939f62a123',1,'KeccakCore::encrypt()'],['../classOFBCommon.html#a984d81a460e0799895b19dc48c3b5cf8',1,'OFBCommon::encrypt()'],['../classSHAKE.html#a6621c9d1ffbf8c34780b901275ceb81f',1,'SHAKE::encrypt()'],['../classXOF.html#aa6c027228f0459b07b61fb51c7b47c94',1,'XOF::encrypt()']]], + ['encrypt',['encrypt',['../classCBCCommon.html#a41d2f655a7df13cfcd009b2882e13147',1,'CBCCommon::encrypt()'],['../classCFBCommon.html#a57af3692389bed300d3cfdf351351c51',1,'CFBCommon::encrypt()'],['../classChaCha.html#acd4fff140b8871c233d9a31abf753ed8',1,'ChaCha::encrypt()'],['../classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3',1,'ChaChaPoly::encrypt()'],['../classCipher.html#ad2832bd61039d61560e34ea3382ca562',1,'Cipher::encrypt()'],['../classCTRCommon.html#a201bda584d111552ce8ec09fac759963',1,'CTRCommon::encrypt()'],['../classEAXCommon.html#aad2c563f749535f539b8efbd74b09099',1,'EAXCommon::encrypt()'],['../classGCMCommon.html#a01ac69afe3d9fc4d72b2ea5dc242e55c',1,'GCMCommon::encrypt()'],['../classKeccakCore.html#acaf5c13452003e6e2e7793939f62a123',1,'KeccakCore::encrypt()'],['../classOFBCommon.html#a984d81a460e0799895b19dc48c3b5cf8',1,'OFBCommon::encrypt()'],['../classSHAKE.html#a6621c9d1ffbf8c34780b901275ceb81f',1,'SHAKE::encrypt()'],['../classXOF.html#aa6c027228f0459b07b61fb51c7b47c94',1,'XOF::encrypt()'],['../classAcorn128.html#a4273a0b1eb880d98e34f2f9123fa167b',1,'Acorn128::encrypt()']]], ['encryptblock',['encryptBlock',['../classAESCommon.html#a2d95f6159abfcd92b5841f9018e44296',1,'AESCommon::encryptBlock()'],['../classAESTiny256.html#a36e4ffc85f7d7604d01a5629c185d0ef',1,'AESTiny256::encryptBlock()'],['../classAESTiny128.html#a9e343baf2c3c815f8482222c52ebb3a3',1,'AESTiny128::encryptBlock()'],['../classBlockCipher.html#aed0788b25f6bb2f1bd47d5a5f0c5db33',1,'BlockCipher::encryptBlock()'],['../classSpeck.html#af6b8b91929e4b5b2023400688c9437f9',1,'Speck::encryptBlock()'],['../classSpeckTiny.html#a5dd2cf40dc48addb6a393e78a58a07c0',1,'SpeckTiny::encryptBlock()']]], ['encryptsector',['encryptSector',['../classXTSCommon.html#a8bf1cbd4c1a5422a3cf285fe995fe0e7',1,'XTSCommon']]], ['eval',['eval',['../classCurve25519.html#a2e4b7dd83a019b32c76584c99bfda21a',1,'Curve25519::eval()'],['../classP521.html#ac2e07ce7e846ba180938b41b4a2ae563',1,'P521::eval()']]], diff --git a/search/all_8.js b/search/all_8.js index 69f8d082..c1a1784a 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -6,5 +6,5 @@ var searchData= ['isvalidprivatekey',['isValidPrivateKey',['../classP521.html#a5802ebd25142789bb2df930ecd765d39',1,'P521']]], ['isvalidpublickey',['isValidPublicKey',['../classP521.html#af0bd7851bb15b737a821320b394aec96',1,'P521']]], ['iszero',['isZero',['../classBigNumberUtil.html#ad0aafacd8e224bd543341973c62ff1dd',1,'BigNumberUtil']]], - ['ivsize',['ivSize',['../classCBCCommon.html#a016277533730284a38bb6ad8cd6f91ce',1,'CBCCommon::ivSize()'],['../classCFBCommon.html#a55db1be69de87aafe5601d31be918ebb',1,'CFBCommon::ivSize()'],['../classChaCha.html#afaa3df343a7d07976bd7e03a0c1bf43c',1,'ChaCha::ivSize()'],['../classChaChaPoly.html#ac3ebfaaaffe9d607905681949e75140d',1,'ChaChaPoly::ivSize()'],['../classCipher.html#ab8b53ddc4ce431f03c2a1903d70ace9c',1,'Cipher::ivSize()'],['../classCTRCommon.html#a98c1717d11d8da8e1fa108607358774a',1,'CTRCommon::ivSize()'],['../classEAXCommon.html#abc6ccfb9338c94699458723f669513bf',1,'EAXCommon::ivSize()'],['../classGCMCommon.html#a01cff072505e861fd20f6cfee1e10fb2',1,'GCMCommon::ivSize()'],['../classOFBCommon.html#a67b4639aaece17a796fcba3a2ce8b43c',1,'OFBCommon::ivSize()']]] + ['ivsize',['ivSize',['../classCBCCommon.html#a016277533730284a38bb6ad8cd6f91ce',1,'CBCCommon::ivSize()'],['../classCFBCommon.html#a55db1be69de87aafe5601d31be918ebb',1,'CFBCommon::ivSize()'],['../classChaCha.html#afaa3df343a7d07976bd7e03a0c1bf43c',1,'ChaCha::ivSize()'],['../classChaChaPoly.html#ac3ebfaaaffe9d607905681949e75140d',1,'ChaChaPoly::ivSize()'],['../classCipher.html#ab8b53ddc4ce431f03c2a1903d70ace9c',1,'Cipher::ivSize()'],['../classCTRCommon.html#a98c1717d11d8da8e1fa108607358774a',1,'CTRCommon::ivSize()'],['../classEAXCommon.html#abc6ccfb9338c94699458723f669513bf',1,'EAXCommon::ivSize()'],['../classGCMCommon.html#a01cff072505e861fd20f6cfee1e10fb2',1,'GCMCommon::ivSize()'],['../classOFBCommon.html#a67b4639aaece17a796fcba3a2ce8b43c',1,'OFBCommon::ivSize()'],['../classAcorn128.html#a4141564021e8233727beb5b9f645dc4e',1,'Acorn128::ivSize()']]] ]; diff --git a/search/all_9.js b/search/all_9.js index 966cfce5..c8ddee81 100644 --- a/search/all_9.js +++ b/search/all_9.js @@ -2,5 +2,5 @@ var searchData= [ ['keccakcore',['KeccakCore',['../classKeccakCore.html',1,'KeccakCore'],['../classKeccakCore.html#a850c8e85bdb6b347411239716535d9c9',1,'KeccakCore::KeccakCore()']]], ['keygen',['keygen',['../classNewHope.html#a335b17b40949f66aa579d1035384662c',1,'NewHope']]], - ['keysize',['keySize',['../classAES128.html#aa871832a156f0ea61b964e489670ae9d',1,'AES128::keySize()'],['../classAES192.html#ade28843e51e262b30eb55791c83fd791',1,'AES192::keySize()'],['../classAES256.html#af8ed6412bae6fc78274f60344899366a',1,'AES256::keySize()'],['../classAESTiny256.html#a7b5a2ba4829e79283c53248d3d8a7a06',1,'AESTiny256::keySize()'],['../classAESTiny128.html#a6ff732873f0df88d93c3f7df1fb7a168',1,'AESTiny128::keySize()'],['../classBlockCipher.html#afde6004a859e015d877eab3c37042a0f',1,'BlockCipher::keySize()'],['../classCBCCommon.html#adb7daacfe2a4fca3d13b62b75372fe4e',1,'CBCCommon::keySize()'],['../classCFBCommon.html#a82899da983bc70bc8152ee67f424552e',1,'CFBCommon::keySize()'],['../classChaCha.html#af286083291fab2bd36dc7ad1f54d5cd7',1,'ChaCha::keySize()'],['../classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb',1,'ChaChaPoly::keySize()'],['../classCipher.html#a4cea432ea0278c865441f17cbb88b1ab',1,'Cipher::keySize()'],['../classCTRCommon.html#a29ce8e13a302350397fc6790a686bea2',1,'CTRCommon::keySize()'],['../classEAXCommon.html#a027956913eecfa0bc760f20f3b62df29',1,'EAXCommon::keySize()'],['../classGCMCommon.html#a134ba35e740a18bee3c45502b4149eae',1,'GCMCommon::keySize()'],['../classOFBCommon.html#a76ea9f9ea9dd137778338813e534a8ce',1,'OFBCommon::keySize()'],['../classSpeck.html#a061e43c1363178cda088c3f46e07d87b',1,'Speck::keySize()'],['../classSpeckTiny.html#a5587909ba48776b01bbd40b339b1262e',1,'SpeckTiny::keySize()'],['../classXTSCommon.html#a2da350825a438355665683ab9eb57aa7',1,'XTSCommon::keySize()'],['../classXTSSingleKeyCommon.html#ac017d457a08001a3ea44a9900dee2b64',1,'XTSSingleKeyCommon::keySize()']]] + ['keysize',['keySize',['../classAES128.html#aa871832a156f0ea61b964e489670ae9d',1,'AES128::keySize()'],['../classAES192.html#ade28843e51e262b30eb55791c83fd791',1,'AES192::keySize()'],['../classAES256.html#af8ed6412bae6fc78274f60344899366a',1,'AES256::keySize()'],['../classAESTiny256.html#a7b5a2ba4829e79283c53248d3d8a7a06',1,'AESTiny256::keySize()'],['../classAESTiny128.html#a6ff732873f0df88d93c3f7df1fb7a168',1,'AESTiny128::keySize()'],['../classBlockCipher.html#afde6004a859e015d877eab3c37042a0f',1,'BlockCipher::keySize()'],['../classCBCCommon.html#adb7daacfe2a4fca3d13b62b75372fe4e',1,'CBCCommon::keySize()'],['../classCFBCommon.html#a82899da983bc70bc8152ee67f424552e',1,'CFBCommon::keySize()'],['../classChaCha.html#af286083291fab2bd36dc7ad1f54d5cd7',1,'ChaCha::keySize()'],['../classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb',1,'ChaChaPoly::keySize()'],['../classCipher.html#a4cea432ea0278c865441f17cbb88b1ab',1,'Cipher::keySize()'],['../classCTRCommon.html#a29ce8e13a302350397fc6790a686bea2',1,'CTRCommon::keySize()'],['../classEAXCommon.html#a027956913eecfa0bc760f20f3b62df29',1,'EAXCommon::keySize()'],['../classGCMCommon.html#a134ba35e740a18bee3c45502b4149eae',1,'GCMCommon::keySize()'],['../classOFBCommon.html#a76ea9f9ea9dd137778338813e534a8ce',1,'OFBCommon::keySize()'],['../classSpeck.html#a061e43c1363178cda088c3f46e07d87b',1,'Speck::keySize()'],['../classSpeckTiny.html#a5587909ba48776b01bbd40b339b1262e',1,'SpeckTiny::keySize()'],['../classXTSCommon.html#a2da350825a438355665683ab9eb57aa7',1,'XTSCommon::keySize()'],['../classXTSSingleKeyCommon.html#ac017d457a08001a3ea44a9900dee2b64',1,'XTSSingleKeyCommon::keySize()'],['../classAcorn128.html#af13cffd088e6ec25f9f781bea22fba12',1,'Acorn128::keySize()']]] ]; diff --git a/search/classes_0.js b/search/classes_0.js index d71e79da..5660d3dc 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -1,5 +1,6 @@ var searchData= [ + ['acorn128',['Acorn128',['../classAcorn128.html',1,'']]], ['aes128',['AES128',['../classAES128.html',1,'']]], ['aes192',['AES192',['../classAES192.html',1,'']]], ['aes256',['AES256',['../classAES256.html',1,'']]], diff --git a/search/functions_0.js b/search/functions_0.js index 8631cb0e..d593d3b4 100644 --- a/search/functions_0.js +++ b/search/functions_0.js @@ -1,8 +1,9 @@ var searchData= [ + ['acorn128',['Acorn128',['../classAcorn128.html#af42823fb01dcbdeb8a93fa4103edebf2',1,'Acorn128']]], ['add',['add',['../classBigNumberUtil.html#aa6904b2727af6b767fe041b1b7f27414',1,'BigNumberUtil']]], ['add_5fp',['add_P',['../classBigNumberUtil.html#ab9a9f532fcfc182433adac44d8e4ee20',1,'BigNumberUtil']]], - ['addauthdata',['addAuthData',['../classAuthenticatedCipher.html#abdb081bdf0d59c138cbcffd23c044b10',1,'AuthenticatedCipher::addAuthData()'],['../classChaChaPoly.html#a4aa3514d1fb6272da977a7467ae6734b',1,'ChaChaPoly::addAuthData()'],['../classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8',1,'EAXCommon::addAuthData()'],['../classGCMCommon.html#ad926e980ae2d61c10c9bf82813154a25',1,'GCMCommon::addAuthData()']]], + ['addauthdata',['addAuthData',['../classAuthenticatedCipher.html#abdb081bdf0d59c138cbcffd23c044b10',1,'AuthenticatedCipher::addAuthData()'],['../classChaChaPoly.html#a4aa3514d1fb6272da977a7467ae6734b',1,'ChaChaPoly::addAuthData()'],['../classEAXCommon.html#acdf2c51fb11c068202311b5c95767db8',1,'EAXCommon::addAuthData()'],['../classGCMCommon.html#ad926e980ae2d61c10c9bf82813154a25',1,'GCMCommon::addAuthData()'],['../classAcorn128.html#a9a893539010c729c7d93a7acfd76ae67',1,'Acorn128::addAuthData()']]], ['added',['added',['../classNoiseSource.html#a48d0efabd71ff6e557a0898be79c49ba',1,'NoiseSource']]], ['addnoisesource',['addNoiseSource',['../classRNGClass.html#aacf23b192b0e4cc8726d9abe05f5a9db',1,'RNGClass']]], ['aes128',['AES128',['../classAES128.html#af826ce33301767919bb60f27ad3ff693',1,'AES128']]], diff --git a/search/functions_10.js b/search/functions_10.js index 3ab9fbb4..b0495840 100644 --- a/search/functions_10.js +++ b/search/functions_10.js @@ -9,8 +9,8 @@ var searchData= ['setcounter',['setCounter',['../classChaCha.html#acab9109b7189ea88d9e5417a3a209eac',1,'ChaCha']]], ['setcountersize',['setCounterSize',['../classCTRCommon.html#ae2bc6b33a864412598b426320d853337',1,'CTRCommon']]], ['sethmackey',['setHMACKey',['../classKeccakCore.html#aeff6b3357916bf426b60d3629db52628',1,'KeccakCore']]], - ['setiv',['setIV',['../classCBCCommon.html#ac7a586217835055b3a354bb932db160c',1,'CBCCommon::setIV()'],['../classCFBCommon.html#a597040eb7df40adbbef94b4c3975cd80',1,'CFBCommon::setIV()'],['../classChaCha.html#a734f3246b1e6810c63637b8cda26b259',1,'ChaCha::setIV()'],['../classChaChaPoly.html#a308056b17b3a4a496e9612ae19a2fd6f',1,'ChaChaPoly::setIV()'],['../classCipher.html#a3777acd8ff776a4e945bb7c9f2d044d9',1,'Cipher::setIV()'],['../classCTRCommon.html#aad289af3eb013cb3ffda6d7e8e8b3d04',1,'CTRCommon::setIV()'],['../classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45',1,'EAXCommon::setIV()'],['../classGCMCommon.html#a2545135fe42c832e40e057b603824524',1,'GCMCommon::setIV()'],['../classOFBCommon.html#a4a35364cf30d78f1968cc00803686caf',1,'OFBCommon::setIV()']]], - ['setkey',['setKey',['../classAES128.html#a42d7548eb5084a2c3e2d5aa5f6f98ba4',1,'AES128::setKey()'],['../classAES192.html#a4ab37cff19fb05ceef1533ebc5e37cde',1,'AES192::setKey()'],['../classAES256.html#a6af085d2d6a730ff1e025f982121bbda',1,'AES256::setKey()'],['../classAESTiny256.html#abc162075b181bfca34144f4eec6deec7',1,'AESTiny256::setKey()'],['../classAESSmall256.html#ae7e05119a6183d5f7fc520206f97c0e0',1,'AESSmall256::setKey()'],['../classAESTiny128.html#a475b147be367e6053ff64e30bf79694c',1,'AESTiny128::setKey()'],['../classAESSmall128.html#a6ca13e59f88498c8c3da338e76f47de5',1,'AESSmall128::setKey()'],['../classBlockCipher.html#a9a05307664469777592799c8f77397c4',1,'BlockCipher::setKey()'],['../classCBCCommon.html#add75ea4342a190e560cee26a8e9efc37',1,'CBCCommon::setKey()'],['../classCFBCommon.html#a45b9be25fb96f0e3ca5211b064e2baea',1,'CFBCommon::setKey()'],['../classChaCha.html#a6b2bdffbd3705e388bb458edb2f40c90',1,'ChaCha::setKey()'],['../classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09',1,'ChaChaPoly::setKey()'],['../classCipher.html#a0dfe133bda81dfa680b668f5908ccbe5',1,'Cipher::setKey()'],['../classCTRCommon.html#a79da937dc2c444a174176beab33c055a',1,'CTRCommon::setKey()'],['../classEAXCommon.html#af5be5115c119610abb351028263d28de',1,'EAXCommon::setKey()'],['../classGCMCommon.html#a397c5dddde828c59eb63367385aec562',1,'GCMCommon::setKey()'],['../classOFBCommon.html#ac3a98e81d95ebc6c883baef5f4cfbefb',1,'OFBCommon::setKey()'],['../classSpeck.html#a7a07fc025bd25d832e9899333b5dabef',1,'Speck::setKey()'],['../classSpeckSmall.html#a3345df135f6530bad475d630ef6c1038',1,'SpeckSmall::setKey()'],['../classSpeckTiny.html#a05180c773b9d26d3b67ff569dc86fc2d',1,'SpeckTiny::setKey()'],['../classXTSCommon.html#a68b1ad6bad0b29aeb97dea80e4e03170',1,'XTSCommon::setKey()'],['../classXTSSingleKeyCommon.html#af150ada65640d0dcd1f5e09817f63769',1,'XTSSingleKeyCommon::setKey()']]], + ['setiv',['setIV',['../classCBCCommon.html#ac7a586217835055b3a354bb932db160c',1,'CBCCommon::setIV()'],['../classCFBCommon.html#a597040eb7df40adbbef94b4c3975cd80',1,'CFBCommon::setIV()'],['../classChaCha.html#a734f3246b1e6810c63637b8cda26b259',1,'ChaCha::setIV()'],['../classChaChaPoly.html#a308056b17b3a4a496e9612ae19a2fd6f',1,'ChaChaPoly::setIV()'],['../classCipher.html#a3777acd8ff776a4e945bb7c9f2d044d9',1,'Cipher::setIV()'],['../classCTRCommon.html#aad289af3eb013cb3ffda6d7e8e8b3d04',1,'CTRCommon::setIV()'],['../classEAXCommon.html#a33a5da1f210f01c3622fbf27208f3d45',1,'EAXCommon::setIV()'],['../classGCMCommon.html#a2545135fe42c832e40e057b603824524',1,'GCMCommon::setIV()'],['../classOFBCommon.html#a4a35364cf30d78f1968cc00803686caf',1,'OFBCommon::setIV()'],['../classAcorn128.html#ae4e9ecf2030c4d2e3f32a19f937de845',1,'Acorn128::setIV()']]], + ['setkey',['setKey',['../classAES128.html#a42d7548eb5084a2c3e2d5aa5f6f98ba4',1,'AES128::setKey()'],['../classAES192.html#a4ab37cff19fb05ceef1533ebc5e37cde',1,'AES192::setKey()'],['../classAES256.html#a6af085d2d6a730ff1e025f982121bbda',1,'AES256::setKey()'],['../classAESTiny256.html#abc162075b181bfca34144f4eec6deec7',1,'AESTiny256::setKey()'],['../classAESSmall256.html#ae7e05119a6183d5f7fc520206f97c0e0',1,'AESSmall256::setKey()'],['../classAESTiny128.html#a475b147be367e6053ff64e30bf79694c',1,'AESTiny128::setKey()'],['../classAESSmall128.html#a6ca13e59f88498c8c3da338e76f47de5',1,'AESSmall128::setKey()'],['../classBlockCipher.html#a9a05307664469777592799c8f77397c4',1,'BlockCipher::setKey()'],['../classCBCCommon.html#add75ea4342a190e560cee26a8e9efc37',1,'CBCCommon::setKey()'],['../classCFBCommon.html#a45b9be25fb96f0e3ca5211b064e2baea',1,'CFBCommon::setKey()'],['../classChaCha.html#a6b2bdffbd3705e388bb458edb2f40c90',1,'ChaCha::setKey()'],['../classChaChaPoly.html#ae300892647dd92cbce711b834aa20c09',1,'ChaChaPoly::setKey()'],['../classCipher.html#a0dfe133bda81dfa680b668f5908ccbe5',1,'Cipher::setKey()'],['../classCTRCommon.html#a79da937dc2c444a174176beab33c055a',1,'CTRCommon::setKey()'],['../classEAXCommon.html#af5be5115c119610abb351028263d28de',1,'EAXCommon::setKey()'],['../classGCMCommon.html#a397c5dddde828c59eb63367385aec562',1,'GCMCommon::setKey()'],['../classOFBCommon.html#ac3a98e81d95ebc6c883baef5f4cfbefb',1,'OFBCommon::setKey()'],['../classSpeck.html#a7a07fc025bd25d832e9899333b5dabef',1,'Speck::setKey()'],['../classSpeckSmall.html#a3345df135f6530bad475d630ef6c1038',1,'SpeckSmall::setKey()'],['../classSpeckTiny.html#a05180c773b9d26d3b67ff569dc86fc2d',1,'SpeckTiny::setKey()'],['../classXTSCommon.html#a68b1ad6bad0b29aeb97dea80e4e03170',1,'XTSCommon::setKey()'],['../classXTSSingleKeyCommon.html#af150ada65640d0dcd1f5e09817f63769',1,'XTSSingleKeyCommon::setKey()'],['../classAcorn128.html#a2a2b2285ffc4d0ed57d661d739d22302',1,'Acorn128::setKey()']]], ['setnumrounds',['setNumRounds',['../classChaCha.html#a1a0911e0be8f4590d7fb76884d98c541',1,'ChaCha']]], ['setsectorsize',['setSectorSize',['../classXTSCommon.html#a7e0aa61628285073545a8f8e0b0d981d',1,'XTSCommon']]], ['settweak',['setTweak',['../classXTSCommon.html#a744a533d46078de5ea9723139f74bcdb',1,'XTSCommon']]], diff --git a/search/functions_11.js b/search/functions_11.js index 47744346..ee7b0e6d 100644 --- a/search/functions_11.js +++ b/search/functions_11.js @@ -1,6 +1,6 @@ var searchData= [ - ['tagsize',['tagSize',['../classAuthenticatedCipher.html#a50c9de15b1ac1f3079dcfef626238759',1,'AuthenticatedCipher::tagSize()'],['../classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a',1,'ChaChaPoly::tagSize()'],['../classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9',1,'EAXCommon::tagSize()'],['../classGCMCommon.html#a935f343858e98ee331706daf43e34805',1,'GCMCommon::tagSize()']]], + ['tagsize',['tagSize',['../classAuthenticatedCipher.html#a50c9de15b1ac1f3079dcfef626238759',1,'AuthenticatedCipher::tagSize()'],['../classChaChaPoly.html#a086c2aea395ab31136ebe7805591fd0a',1,'ChaChaPoly::tagSize()'],['../classEAXCommon.html#a8804341b21f752a5b8178a3bdb123fd9',1,'EAXCommon::tagSize()'],['../classGCMCommon.html#a935f343858e98ee331706daf43e34805',1,'GCMCommon::tagSize()'],['../classAcorn128.html#a75c8953cea6b9cd59aa5034dfe739889',1,'Acorn128::tagSize()']]], ['transistornoisesource',['TransistorNoiseSource',['../classTransistorNoiseSource.html#a05bab61c301a5397021048c95ca3107d',1,'TransistorNoiseSource']]], ['tweaksize',['tweakSize',['../classXTSCommon.html#afb3ebf14c7879bcbc92e3d6cc70b19a9',1,'XTSCommon']]] ]; diff --git a/search/functions_15.js b/search/functions_15.js index 9f1ab013..36631f25 100644 --- a/search/functions_15.js +++ b/search/functions_15.js @@ -1,5 +1,6 @@ var searchData= [ + ['_7eacorn128',['~Acorn128',['../classAcorn128.html#a170c189599a1cf332db5496dd6bc1df4',1,'Acorn128']]], ['_7eaescommon',['~AESCommon',['../classAESCommon.html#a8f67970c86c23affb0297fc1bb10fad8',1,'AESCommon']]], ['_7eauthenticatedcipher',['~AuthenticatedCipher',['../classAuthenticatedCipher.html#ae52a07be5b7265ea5898529ec21a79e4',1,'AuthenticatedCipher']]], ['_7eblake2b',['~BLAKE2b',['../classBLAKE2b.html#ad0287d7284000ff236153e6afa0130f1',1,'BLAKE2b']]], diff --git a/search/functions_2.js b/search/functions_2.js index a9b25ff0..ad90e58f 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -8,10 +8,10 @@ var searchData= ['cfbcommon',['CFBCommon',['../classCFBCommon.html#adad0210430c83817c993bdca30d562a6',1,'CFBCommon']]], ['chacha',['ChaCha',['../classChaCha.html#a5831811b705d3c80e97f0242597f0c7e',1,'ChaCha']]], ['chachapoly',['ChaChaPoly',['../classChaChaPoly.html#a1b6779227eff97b0336bbc849c7e2e1c',1,'ChaChaPoly']]], - ['checktag',['checkTag',['../classAuthenticatedCipher.html#a4bb33d194e2c7d30c4e5a713e59786ff',1,'AuthenticatedCipher::checkTag()'],['../classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953',1,'ChaChaPoly::checkTag()'],['../classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963',1,'EAXCommon::checkTag()'],['../classGCMCommon.html#a70229be2fe2274c4109fe7511481075a',1,'GCMCommon::checkTag()']]], + ['checktag',['checkTag',['../classAuthenticatedCipher.html#a4bb33d194e2c7d30c4e5a713e59786ff',1,'AuthenticatedCipher::checkTag()'],['../classChaChaPoly.html#aeffb3e0df0b4da03f72f30251243d953',1,'ChaChaPoly::checkTag()'],['../classEAXCommon.html#a72c403f52cefab57566bc5f634c1b963',1,'EAXCommon::checkTag()'],['../classGCMCommon.html#a70229be2fe2274c4109fe7511481075a',1,'GCMCommon::checkTag()'],['../classAcorn128.html#a0a1c914c76d15af00bbb348f160bbacb',1,'Acorn128::checkTag()']]], ['cipher',['Cipher',['../classCipher.html#a6a61077eca3ccd5900f92ceac58fb09c',1,'Cipher']]], - ['clear',['clear',['../classAESCommon.html#a83e43f7d07e31d90fd7b768a93ecfce6',1,'AESCommon::clear()'],['../classAESTiny256.html#ae4cac6af2e78cbf399b7f6d0e613a578',1,'AESTiny256::clear()'],['../classAESSmall256.html#ac63bf2dff7de8a73ba57f4bb0f1df444',1,'AESSmall256::clear()'],['../classAESTiny128.html#a17e56d025f9e55041150953d8561c793',1,'AESTiny128::clear()'],['../classAESSmall128.html#a215b28599d388c2149aba2206d40863d',1,'AESSmall128::clear()'],['../classBLAKE2b.html#a21623759bd381285ebf7e75a00c9c8a9',1,'BLAKE2b::clear()'],['../classBLAKE2s.html#a0848885f52df51dc53949d32a206e72d',1,'BLAKE2s::clear()'],['../classBlockCipher.html#a6f27d46e9dfa7761d014d828ad5f955b',1,'BlockCipher::clear()'],['../classCBCCommon.html#a7befadfe7384e0e857a96a59bf3845e9',1,'CBCCommon::clear()'],['../classCFBCommon.html#a847d320b0fe7f329385f26511b42c40d',1,'CFBCommon::clear()'],['../classChaCha.html#af533905f679066c41f4d6cd76bddb4cb',1,'ChaCha::clear()'],['../classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a',1,'ChaChaPoly::clear()'],['../classCipher.html#a4b7c3965646441a70d9ab934a7c92ab1',1,'Cipher::clear()'],['../classCTRCommon.html#ac0d6381c02fe2a8a017ad66d006a6ef2',1,'CTRCommon::clear()'],['../classEAXCommon.html#afa88b0f589e09103e9c69ace081db0af',1,'EAXCommon::clear()'],['../classGCMCommon.html#a06868ebd67a571aa68d88d5d072cece9',1,'GCMCommon::clear()'],['../classGHASH.html#a4b1ee789debf56f7f24807960ef0556e',1,'GHASH::clear()'],['../classHash.html#a4a959469433cd9348ab7f3ac6228bb34',1,'Hash::clear()'],['../classKeccakCore.html#aeff1df56e4a3103c99c1fe4307e60c66',1,'KeccakCore::clear()'],['../classOFBCommon.html#a55bf2396beb91c457bfc4c20ef5c8123',1,'OFBCommon::clear()'],['../classOMAC.html#a072715dbda39dc9c360cfcaab31d6aa7',1,'OMAC::clear()'],['../classPoly1305.html#ae3f3392b9a2bd0f3472e7e50dd7e21dd',1,'Poly1305::clear()'],['../classSHA256.html#add0d1649d533b27005ccd8508398c689',1,'SHA256::clear()'],['../classSHA3__256.html#a531467f995ef6fc901ad8c2b5776a8d1',1,'SHA3_256::clear()'],['../classSHA3__512.html#acfbc5e9b4d394f011d5132a2b156d260',1,'SHA3_512::clear()'],['../classSHA512.html#a0a9104dce5f099aeba216e5fbcb1ee1a',1,'SHA512::clear()'],['../classSHAKE.html#ab86f52425c1d5b0e5c924b4f96121fe0',1,'SHAKE::clear()'],['../classSpeck.html#aa3866273282addabb9d3703c41fdc95f',1,'Speck::clear()'],['../classSpeckSmall.html#aa93d9f0b5153425dc04e8fb8faff7513',1,'SpeckSmall::clear()'],['../classSpeckTiny.html#a303ecc2639459e47c6eeb21991d52ccf',1,'SpeckTiny::clear()'],['../classXOF.html#ac34cb22f251642b58b3dd78a6480aff3',1,'XOF::clear()'],['../classXTSCommon.html#a96e3cb4a3d35dc4e3a5acbae19b4465b',1,'XTSCommon::clear()']]], - ['computetag',['computeTag',['../classAuthenticatedCipher.html#a73fa4306053ed457e5c533b3127391c9',1,'AuthenticatedCipher::computeTag()'],['../classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95',1,'ChaChaPoly::computeTag()'],['../classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3',1,'EAXCommon::computeTag()'],['../classGCMCommon.html#a444634bd4469bb5d404ac882d1d8fdf4',1,'GCMCommon::computeTag()']]], + ['clear',['clear',['../classAESCommon.html#a83e43f7d07e31d90fd7b768a93ecfce6',1,'AESCommon::clear()'],['../classAESTiny256.html#ae4cac6af2e78cbf399b7f6d0e613a578',1,'AESTiny256::clear()'],['../classAESSmall256.html#ac63bf2dff7de8a73ba57f4bb0f1df444',1,'AESSmall256::clear()'],['../classAESTiny128.html#a17e56d025f9e55041150953d8561c793',1,'AESTiny128::clear()'],['../classAESSmall128.html#a215b28599d388c2149aba2206d40863d',1,'AESSmall128::clear()'],['../classBLAKE2b.html#a21623759bd381285ebf7e75a00c9c8a9',1,'BLAKE2b::clear()'],['../classBLAKE2s.html#a0848885f52df51dc53949d32a206e72d',1,'BLAKE2s::clear()'],['../classBlockCipher.html#a6f27d46e9dfa7761d014d828ad5f955b',1,'BlockCipher::clear()'],['../classCBCCommon.html#a7befadfe7384e0e857a96a59bf3845e9',1,'CBCCommon::clear()'],['../classCFBCommon.html#a847d320b0fe7f329385f26511b42c40d',1,'CFBCommon::clear()'],['../classChaCha.html#af533905f679066c41f4d6cd76bddb4cb',1,'ChaCha::clear()'],['../classChaChaPoly.html#a2d7fc3fd05a0b6c7c9c21fff6e939c9a',1,'ChaChaPoly::clear()'],['../classCipher.html#a4b7c3965646441a70d9ab934a7c92ab1',1,'Cipher::clear()'],['../classCTRCommon.html#ac0d6381c02fe2a8a017ad66d006a6ef2',1,'CTRCommon::clear()'],['../classEAXCommon.html#afa88b0f589e09103e9c69ace081db0af',1,'EAXCommon::clear()'],['../classGCMCommon.html#a06868ebd67a571aa68d88d5d072cece9',1,'GCMCommon::clear()'],['../classGHASH.html#a4b1ee789debf56f7f24807960ef0556e',1,'GHASH::clear()'],['../classHash.html#a4a959469433cd9348ab7f3ac6228bb34',1,'Hash::clear()'],['../classKeccakCore.html#aeff1df56e4a3103c99c1fe4307e60c66',1,'KeccakCore::clear()'],['../classOFBCommon.html#a55bf2396beb91c457bfc4c20ef5c8123',1,'OFBCommon::clear()'],['../classOMAC.html#a072715dbda39dc9c360cfcaab31d6aa7',1,'OMAC::clear()'],['../classPoly1305.html#ae3f3392b9a2bd0f3472e7e50dd7e21dd',1,'Poly1305::clear()'],['../classSHA256.html#add0d1649d533b27005ccd8508398c689',1,'SHA256::clear()'],['../classSHA3__256.html#a531467f995ef6fc901ad8c2b5776a8d1',1,'SHA3_256::clear()'],['../classSHA3__512.html#acfbc5e9b4d394f011d5132a2b156d260',1,'SHA3_512::clear()'],['../classSHA512.html#a0a9104dce5f099aeba216e5fbcb1ee1a',1,'SHA512::clear()'],['../classSHAKE.html#ab86f52425c1d5b0e5c924b4f96121fe0',1,'SHAKE::clear()'],['../classSpeck.html#aa3866273282addabb9d3703c41fdc95f',1,'Speck::clear()'],['../classSpeckSmall.html#aa93d9f0b5153425dc04e8fb8faff7513',1,'SpeckSmall::clear()'],['../classSpeckTiny.html#a303ecc2639459e47c6eeb21991d52ccf',1,'SpeckTiny::clear()'],['../classXOF.html#ac34cb22f251642b58b3dd78a6480aff3',1,'XOF::clear()'],['../classXTSCommon.html#a96e3cb4a3d35dc4e3a5acbae19b4465b',1,'XTSCommon::clear()'],['../classAcorn128.html#ac98fa6f3ad9f12b090d678d94ffff56f',1,'Acorn128::clear()']]], + ['computetag',['computeTag',['../classAuthenticatedCipher.html#a73fa4306053ed457e5c533b3127391c9',1,'AuthenticatedCipher::computeTag()'],['../classChaChaPoly.html#a92d850ad7027829e4072c43bd5028f95',1,'ChaChaPoly::computeTag()'],['../classEAXCommon.html#ab5a61bba48561d6e7e6b8bafc51d91e3',1,'EAXCommon::computeTag()'],['../classGCMCommon.html#a444634bd4469bb5d404ac882d1d8fdf4',1,'GCMCommon::computeTag()'],['../classAcorn128.html#a333c98509f0ba55dff684d54781c0242',1,'Acorn128::computeTag()']]], ['ctr',['CTR',['../classCTR.html#a7025ab5d79f0f0763f751aeabc425ca9',1,'CTR']]], ['ctrcommon',['CTRCommon',['../classCTRCommon.html#abeb01342f17023e99776001d397c51ff',1,'CTRCommon']]] ]; diff --git a/search/functions_3.js b/search/functions_3.js index 726db646..2c816b99 100644 --- a/search/functions_3.js +++ b/search/functions_3.js @@ -3,7 +3,7 @@ var searchData= ['dbl',['dbl',['../classGF128.html#aef22f6b7be5937f60ed2b7bcf831e52d',1,'GF128']]], ['dbleax',['dblEAX',['../classGF128.html#a56000a4cd7d436de42360e9d43eecde4',1,'GF128']]], ['dblxts',['dblXTS',['../classGF128.html#a3732c9471771c36ac1b518e974d46b3e',1,'GF128']]], - ['decrypt',['decrypt',['../classCBCCommon.html#ab46a2625cae9a654c708e1f31a0e22b6',1,'CBCCommon::decrypt()'],['../classCFBCommon.html#aaaa3d61c5743e30e355207c193c0b0ef',1,'CFBCommon::decrypt()'],['../classChaCha.html#a1f54b2b51b59428010f81a6c4dc4e42c',1,'ChaCha::decrypt()'],['../classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0',1,'ChaChaPoly::decrypt()'],['../classCipher.html#ac6099d1a0d7f2ff67b0e4ccb4a17eb08',1,'Cipher::decrypt()'],['../classCTRCommon.html#a0943387cf1124258389702e0690740fe',1,'CTRCommon::decrypt()'],['../classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2',1,'EAXCommon::decrypt()'],['../classGCMCommon.html#a60912d3ab5766aa68dc9b3111ac2c0d7',1,'GCMCommon::decrypt()'],['../classOFBCommon.html#aeb3636d7175b150e2bf16367e51c2e36',1,'OFBCommon::decrypt()'],['../classXOF.html#a1c322679dfd211cd77ae05fb201a32e8',1,'XOF::decrypt()']]], + ['decrypt',['decrypt',['../classCBCCommon.html#ab46a2625cae9a654c708e1f31a0e22b6',1,'CBCCommon::decrypt()'],['../classCFBCommon.html#aaaa3d61c5743e30e355207c193c0b0ef',1,'CFBCommon::decrypt()'],['../classChaCha.html#a1f54b2b51b59428010f81a6c4dc4e42c',1,'ChaCha::decrypt()'],['../classChaChaPoly.html#a42f556f202b1166486434ee15b6d95a0',1,'ChaChaPoly::decrypt()'],['../classCipher.html#ac6099d1a0d7f2ff67b0e4ccb4a17eb08',1,'Cipher::decrypt()'],['../classCTRCommon.html#a0943387cf1124258389702e0690740fe',1,'CTRCommon::decrypt()'],['../classEAXCommon.html#a63ce8ae45db137ec9d447216b84245c2',1,'EAXCommon::decrypt()'],['../classGCMCommon.html#a60912d3ab5766aa68dc9b3111ac2c0d7',1,'GCMCommon::decrypt()'],['../classOFBCommon.html#aeb3636d7175b150e2bf16367e51c2e36',1,'OFBCommon::decrypt()'],['../classXOF.html#a1c322679dfd211cd77ae05fb201a32e8',1,'XOF::decrypt()'],['../classAcorn128.html#a7eacfc496f19b691207f64ba58b4c14a',1,'Acorn128::decrypt()']]], ['decryptblock',['decryptBlock',['../classAESCommon.html#a95a806adf42f975765ff62907efdc639',1,'AESCommon::decryptBlock()'],['../classAESTiny256.html#abdf72a52c37c060a9089693c118585bc',1,'AESTiny256::decryptBlock()'],['../classAESSmall256.html#aaba6d59d07d2f40efa8c962375c15888',1,'AESSmall256::decryptBlock()'],['../classAESTiny128.html#a631c417a0f12c7e43f633c555b950182',1,'AESTiny128::decryptBlock()'],['../classAESSmall128.html#aabdb20c638b2107b5b5e3e41dc6dae26',1,'AESSmall128::decryptBlock()'],['../classBlockCipher.html#ac3ba2450222aa1ea804ae4881ab6440c',1,'BlockCipher::decryptBlock()'],['../classSpeck.html#ad8c040df1c52d2559da8fdb3963d28b4',1,'Speck::decryptBlock()'],['../classSpeckSmall.html#acced022717603980ecca21b3f953bf51',1,'SpeckSmall::decryptBlock()'],['../classSpeckTiny.html#a19e54aef7d1b3ef92e8140dd9c308c3c',1,'SpeckTiny::decryptBlock()']]], ['decryptsector',['decryptSector',['../classXTSCommon.html#a7dd21d5a994724e2af433872ecc3a90b',1,'XTSCommon']]], ['derivepublickey',['derivePublicKey',['../classEd25519.html#ab62bac52ed07f77f76f3ff0fccd71cb2',1,'Ed25519::derivePublicKey()'],['../classP521.html#a15ca802e298c7ff3be06924b0edb7daa',1,'P521::derivePublicKey()']]], diff --git a/search/functions_4.js b/search/functions_4.js index f7b87692..bb9abb00 100644 --- a/search/functions_4.js +++ b/search/functions_4.js @@ -2,7 +2,7 @@ var searchData= [ ['eax',['EAX',['../classEAX.html#a7a1f89270e885a1ca245ca978b66e09b',1,'EAX']]], ['eaxcommon',['EAXCommon',['../classEAXCommon.html#ae09c9df956bf87cde02ca36c26c32f79',1,'EAXCommon']]], - ['encrypt',['encrypt',['../classCBCCommon.html#a41d2f655a7df13cfcd009b2882e13147',1,'CBCCommon::encrypt()'],['../classCFBCommon.html#a57af3692389bed300d3cfdf351351c51',1,'CFBCommon::encrypt()'],['../classChaCha.html#acd4fff140b8871c233d9a31abf753ed8',1,'ChaCha::encrypt()'],['../classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3',1,'ChaChaPoly::encrypt()'],['../classCipher.html#ad2832bd61039d61560e34ea3382ca562',1,'Cipher::encrypt()'],['../classCTRCommon.html#a201bda584d111552ce8ec09fac759963',1,'CTRCommon::encrypt()'],['../classEAXCommon.html#aad2c563f749535f539b8efbd74b09099',1,'EAXCommon::encrypt()'],['../classGCMCommon.html#a01ac69afe3d9fc4d72b2ea5dc242e55c',1,'GCMCommon::encrypt()'],['../classKeccakCore.html#acaf5c13452003e6e2e7793939f62a123',1,'KeccakCore::encrypt()'],['../classOFBCommon.html#a984d81a460e0799895b19dc48c3b5cf8',1,'OFBCommon::encrypt()'],['../classSHAKE.html#a6621c9d1ffbf8c34780b901275ceb81f',1,'SHAKE::encrypt()'],['../classXOF.html#aa6c027228f0459b07b61fb51c7b47c94',1,'XOF::encrypt()']]], + ['encrypt',['encrypt',['../classCBCCommon.html#a41d2f655a7df13cfcd009b2882e13147',1,'CBCCommon::encrypt()'],['../classCFBCommon.html#a57af3692389bed300d3cfdf351351c51',1,'CFBCommon::encrypt()'],['../classChaCha.html#acd4fff140b8871c233d9a31abf753ed8',1,'ChaCha::encrypt()'],['../classChaChaPoly.html#a7df4acd04f459ecf9d3b24317bde94a3',1,'ChaChaPoly::encrypt()'],['../classCipher.html#ad2832bd61039d61560e34ea3382ca562',1,'Cipher::encrypt()'],['../classCTRCommon.html#a201bda584d111552ce8ec09fac759963',1,'CTRCommon::encrypt()'],['../classEAXCommon.html#aad2c563f749535f539b8efbd74b09099',1,'EAXCommon::encrypt()'],['../classGCMCommon.html#a01ac69afe3d9fc4d72b2ea5dc242e55c',1,'GCMCommon::encrypt()'],['../classKeccakCore.html#acaf5c13452003e6e2e7793939f62a123',1,'KeccakCore::encrypt()'],['../classOFBCommon.html#a984d81a460e0799895b19dc48c3b5cf8',1,'OFBCommon::encrypt()'],['../classSHAKE.html#a6621c9d1ffbf8c34780b901275ceb81f',1,'SHAKE::encrypt()'],['../classXOF.html#aa6c027228f0459b07b61fb51c7b47c94',1,'XOF::encrypt()'],['../classAcorn128.html#a4273a0b1eb880d98e34f2f9123fa167b',1,'Acorn128::encrypt()']]], ['encryptblock',['encryptBlock',['../classAESCommon.html#a2d95f6159abfcd92b5841f9018e44296',1,'AESCommon::encryptBlock()'],['../classAESTiny256.html#a36e4ffc85f7d7604d01a5629c185d0ef',1,'AESTiny256::encryptBlock()'],['../classAESTiny128.html#a9e343baf2c3c815f8482222c52ebb3a3',1,'AESTiny128::encryptBlock()'],['../classBlockCipher.html#aed0788b25f6bb2f1bd47d5a5f0c5db33',1,'BlockCipher::encryptBlock()'],['../classSpeck.html#af6b8b91929e4b5b2023400688c9437f9',1,'Speck::encryptBlock()'],['../classSpeckTiny.html#a5dd2cf40dc48addb6a393e78a58a07c0',1,'SpeckTiny::encryptBlock()']]], ['encryptsector',['encryptSector',['../classXTSCommon.html#a8bf1cbd4c1a5422a3cf285fe995fe0e7',1,'XTSCommon']]], ['eval',['eval',['../classCurve25519.html#a2e4b7dd83a019b32c76584c99bfda21a',1,'Curve25519::eval()'],['../classP521.html#ac2e07ce7e846ba180938b41b4a2ae563',1,'P521::eval()']]], diff --git a/search/functions_8.js b/search/functions_8.js index 69f8d082..c1a1784a 100644 --- a/search/functions_8.js +++ b/search/functions_8.js @@ -6,5 +6,5 @@ var searchData= ['isvalidprivatekey',['isValidPrivateKey',['../classP521.html#a5802ebd25142789bb2df930ecd765d39',1,'P521']]], ['isvalidpublickey',['isValidPublicKey',['../classP521.html#af0bd7851bb15b737a821320b394aec96',1,'P521']]], ['iszero',['isZero',['../classBigNumberUtil.html#ad0aafacd8e224bd543341973c62ff1dd',1,'BigNumberUtil']]], - ['ivsize',['ivSize',['../classCBCCommon.html#a016277533730284a38bb6ad8cd6f91ce',1,'CBCCommon::ivSize()'],['../classCFBCommon.html#a55db1be69de87aafe5601d31be918ebb',1,'CFBCommon::ivSize()'],['../classChaCha.html#afaa3df343a7d07976bd7e03a0c1bf43c',1,'ChaCha::ivSize()'],['../classChaChaPoly.html#ac3ebfaaaffe9d607905681949e75140d',1,'ChaChaPoly::ivSize()'],['../classCipher.html#ab8b53ddc4ce431f03c2a1903d70ace9c',1,'Cipher::ivSize()'],['../classCTRCommon.html#a98c1717d11d8da8e1fa108607358774a',1,'CTRCommon::ivSize()'],['../classEAXCommon.html#abc6ccfb9338c94699458723f669513bf',1,'EAXCommon::ivSize()'],['../classGCMCommon.html#a01cff072505e861fd20f6cfee1e10fb2',1,'GCMCommon::ivSize()'],['../classOFBCommon.html#a67b4639aaece17a796fcba3a2ce8b43c',1,'OFBCommon::ivSize()']]] + ['ivsize',['ivSize',['../classCBCCommon.html#a016277533730284a38bb6ad8cd6f91ce',1,'CBCCommon::ivSize()'],['../classCFBCommon.html#a55db1be69de87aafe5601d31be918ebb',1,'CFBCommon::ivSize()'],['../classChaCha.html#afaa3df343a7d07976bd7e03a0c1bf43c',1,'ChaCha::ivSize()'],['../classChaChaPoly.html#ac3ebfaaaffe9d607905681949e75140d',1,'ChaChaPoly::ivSize()'],['../classCipher.html#ab8b53ddc4ce431f03c2a1903d70ace9c',1,'Cipher::ivSize()'],['../classCTRCommon.html#a98c1717d11d8da8e1fa108607358774a',1,'CTRCommon::ivSize()'],['../classEAXCommon.html#abc6ccfb9338c94699458723f669513bf',1,'EAXCommon::ivSize()'],['../classGCMCommon.html#a01cff072505e861fd20f6cfee1e10fb2',1,'GCMCommon::ivSize()'],['../classOFBCommon.html#a67b4639aaece17a796fcba3a2ce8b43c',1,'OFBCommon::ivSize()'],['../classAcorn128.html#a4141564021e8233727beb5b9f645dc4e',1,'Acorn128::ivSize()']]] ]; diff --git a/search/functions_9.js b/search/functions_9.js index e61599ce..490a24c2 100644 --- a/search/functions_9.js +++ b/search/functions_9.js @@ -2,5 +2,5 @@ var searchData= [ ['keccakcore',['KeccakCore',['../classKeccakCore.html#a850c8e85bdb6b347411239716535d9c9',1,'KeccakCore']]], ['keygen',['keygen',['../classNewHope.html#a335b17b40949f66aa579d1035384662c',1,'NewHope']]], - ['keysize',['keySize',['../classAES128.html#aa871832a156f0ea61b964e489670ae9d',1,'AES128::keySize()'],['../classAES192.html#ade28843e51e262b30eb55791c83fd791',1,'AES192::keySize()'],['../classAES256.html#af8ed6412bae6fc78274f60344899366a',1,'AES256::keySize()'],['../classAESTiny256.html#a7b5a2ba4829e79283c53248d3d8a7a06',1,'AESTiny256::keySize()'],['../classAESTiny128.html#a6ff732873f0df88d93c3f7df1fb7a168',1,'AESTiny128::keySize()'],['../classBlockCipher.html#afde6004a859e015d877eab3c37042a0f',1,'BlockCipher::keySize()'],['../classCBCCommon.html#adb7daacfe2a4fca3d13b62b75372fe4e',1,'CBCCommon::keySize()'],['../classCFBCommon.html#a82899da983bc70bc8152ee67f424552e',1,'CFBCommon::keySize()'],['../classChaCha.html#af286083291fab2bd36dc7ad1f54d5cd7',1,'ChaCha::keySize()'],['../classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb',1,'ChaChaPoly::keySize()'],['../classCipher.html#a4cea432ea0278c865441f17cbb88b1ab',1,'Cipher::keySize()'],['../classCTRCommon.html#a29ce8e13a302350397fc6790a686bea2',1,'CTRCommon::keySize()'],['../classEAXCommon.html#a027956913eecfa0bc760f20f3b62df29',1,'EAXCommon::keySize()'],['../classGCMCommon.html#a134ba35e740a18bee3c45502b4149eae',1,'GCMCommon::keySize()'],['../classOFBCommon.html#a76ea9f9ea9dd137778338813e534a8ce',1,'OFBCommon::keySize()'],['../classSpeck.html#a061e43c1363178cda088c3f46e07d87b',1,'Speck::keySize()'],['../classSpeckTiny.html#a5587909ba48776b01bbd40b339b1262e',1,'SpeckTiny::keySize()'],['../classXTSCommon.html#a2da350825a438355665683ab9eb57aa7',1,'XTSCommon::keySize()'],['../classXTSSingleKeyCommon.html#ac017d457a08001a3ea44a9900dee2b64',1,'XTSSingleKeyCommon::keySize()']]] + ['keysize',['keySize',['../classAES128.html#aa871832a156f0ea61b964e489670ae9d',1,'AES128::keySize()'],['../classAES192.html#ade28843e51e262b30eb55791c83fd791',1,'AES192::keySize()'],['../classAES256.html#af8ed6412bae6fc78274f60344899366a',1,'AES256::keySize()'],['../classAESTiny256.html#a7b5a2ba4829e79283c53248d3d8a7a06',1,'AESTiny256::keySize()'],['../classAESTiny128.html#a6ff732873f0df88d93c3f7df1fb7a168',1,'AESTiny128::keySize()'],['../classBlockCipher.html#afde6004a859e015d877eab3c37042a0f',1,'BlockCipher::keySize()'],['../classCBCCommon.html#adb7daacfe2a4fca3d13b62b75372fe4e',1,'CBCCommon::keySize()'],['../classCFBCommon.html#a82899da983bc70bc8152ee67f424552e',1,'CFBCommon::keySize()'],['../classChaCha.html#af286083291fab2bd36dc7ad1f54d5cd7',1,'ChaCha::keySize()'],['../classChaChaPoly.html#a666760e68cb53f28ba0a8dc09039c0fb',1,'ChaChaPoly::keySize()'],['../classCipher.html#a4cea432ea0278c865441f17cbb88b1ab',1,'Cipher::keySize()'],['../classCTRCommon.html#a29ce8e13a302350397fc6790a686bea2',1,'CTRCommon::keySize()'],['../classEAXCommon.html#a027956913eecfa0bc760f20f3b62df29',1,'EAXCommon::keySize()'],['../classGCMCommon.html#a134ba35e740a18bee3c45502b4149eae',1,'GCMCommon::keySize()'],['../classOFBCommon.html#a76ea9f9ea9dd137778338813e534a8ce',1,'OFBCommon::keySize()'],['../classSpeck.html#a061e43c1363178cda088c3f46e07d87b',1,'Speck::keySize()'],['../classSpeckTiny.html#a5587909ba48776b01bbd40b339b1262e',1,'SpeckTiny::keySize()'],['../classXTSCommon.html#a2da350825a438355665683ab9eb57aa7',1,'XTSCommon::keySize()'],['../classXTSSingleKeyCommon.html#ac017d457a08001a3ea44a9900dee2b64',1,'XTSSingleKeyCommon::keySize()'],['../classAcorn128.html#af13cffd088e6ec25f9f781bea22fba12',1,'Acorn128::keySize()']]] ]; diff --git a/structNewHopePrivateKey.html b/structNewHopePrivateKey.html index b27a4f12..bbaa2733 100644 --- a/structNewHopePrivateKey.html +++ b/structNewHopePrivateKey.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');