aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_kdf.c
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-09-08 12:33:09 +0000
committerng0 <ng0@n0.is>2019-09-08 12:33:09 +0000
commitd41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb (patch)
tree9efd18ea7d425652085ed0bd5e8e45604bc5f6b9 /src/util/crypto_kdf.c
parenta0fce305c565c0937d917a92712f15e9c5736260 (diff)
downloadgnunet-d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb.tar.gz
gnunet-d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb.zip
uncrustify as demanded.
Diffstat (limited to 'src/util/crypto_kdf.c')
-rw-r--r--src/util/crypto_kdf.c136
1 files changed, 68 insertions, 68 deletions
diff --git a/src/util/crypto_kdf.c b/src/util/crypto_kdf.c
index ac68ed7f1..ef96889b2 100644
--- a/src/util/crypto_kdf.c
+++ b/src/util/crypto_kdf.c
@@ -11,12 +11,12 @@
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU Affero General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18 SPDX-License-Identifier: AGPL3.0-or-later 18 SPDX-License-Identifier: AGPL3.0-or-later
19*/ 19 */
20 20
21/** 21/**
22 * @file src/util/crypto_kdf.c 22 * @file src/util/crypto_kdf.c
@@ -30,7 +30,7 @@
30#include "platform.h" 30#include "platform.h"
31#include "gnunet_crypto_lib.h" 31#include "gnunet_crypto_lib.h"
32 32
33#define LOG(kind,...) GNUNET_log_from (kind, "util-crypto-kdf", __VA_ARGS__) 33#define LOG(kind, ...) GNUNET_log_from(kind, "util-crypto-kdf", __VA_ARGS__)
34 34
35/** 35/**
36 * @brief Derive key 36 * @brief Derive key
@@ -44,13 +44,13 @@
44 * @return #GNUNET_YES on success 44 * @return #GNUNET_YES on success
45 */ 45 */
46int 46int
47GNUNET_CRYPTO_kdf_v (void *result, 47GNUNET_CRYPTO_kdf_v(void *result,
48 size_t out_len, 48 size_t out_len,
49 const void *xts, 49 const void *xts,
50 size_t xts_len, 50 size_t xts_len,
51 const void *skm, 51 const void *skm,
52 size_t skm_len, 52 size_t skm_len,
53 va_list argp) 53 va_list argp)
54{ 54{
55 /* 55 /*
56 * "Finally, we point out to a particularly advantageous instantiation using 56 * "Finally, we point out to a particularly advantageous instantiation using
@@ -64,15 +64,15 @@ GNUNET_CRYPTO_kdf_v (void *result,
64 * http://eprint.iacr.org/2010/264 64 * http://eprint.iacr.org/2010/264
65 */ 65 */
66 66
67 return GNUNET_CRYPTO_hkdf_v (result, 67 return GNUNET_CRYPTO_hkdf_v(result,
68 out_len, 68 out_len,
69 GCRY_MD_SHA512, 69 GCRY_MD_SHA512,
70 GCRY_MD_SHA256, 70 GCRY_MD_SHA256,
71 xts, 71 xts,
72 xts_len, 72 xts_len,
73 skm, 73 skm,
74 skm_len, 74 skm_len,
75 argp); 75 argp);
76} 76}
77 77
78 78
@@ -88,25 +88,25 @@ GNUNET_CRYPTO_kdf_v (void *result,
88 * @return #GNUNET_YES on success 88 * @return #GNUNET_YES on success
89 */ 89 */
90int 90int
91GNUNET_CRYPTO_kdf (void *result, 91GNUNET_CRYPTO_kdf(void *result,
92 size_t out_len, 92 size_t out_len,
93 const void *xts, 93 const void *xts,
94 size_t xts_len, 94 size_t xts_len,
95 const void *skm, 95 const void *skm,
96 size_t skm_len, ...) 96 size_t skm_len, ...)
97{ 97{
98 va_list argp; 98 va_list argp;
99 int ret; 99 int ret;
100 100
101 va_start (argp, skm_len); 101 va_start(argp, skm_len);
102 ret = GNUNET_CRYPTO_kdf_v (result, 102 ret = GNUNET_CRYPTO_kdf_v(result,
103 out_len, 103 out_len,
104 xts, 104 xts,
105 xts_len, 105 xts_len,
106 skm, 106 skm,
107 skm_len, 107 skm_len,
108 argp); 108 argp);
109 va_end (argp); 109 va_end(argp);
110 110
111 return ret; 111 return ret;
112} 112}
@@ -125,50 +125,50 @@ GNUNET_CRYPTO_kdf (void *result,
125 * @param ctx context string 125 * @param ctx context string
126 */ 126 */
127void 127void
128GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r, 128GNUNET_CRYPTO_kdf_mod_mpi(gcry_mpi_t *r,
129 gcry_mpi_t n, 129 gcry_mpi_t n,
130 const void *xts, size_t xts_len, 130 const void *xts, size_t xts_len,
131 const void *skm, size_t skm_len, 131 const void *skm, size_t skm_len,
132 const char *ctx) 132 const char *ctx)
133{ 133{
134 gcry_error_t rc; 134 gcry_error_t rc;
135 unsigned int nbits; 135 unsigned int nbits;
136 size_t rsize; 136 size_t rsize;
137 unsigned int ctr; 137 unsigned int ctr;
138 138
139 nbits = gcry_mpi_get_nbits (n); 139 nbits = gcry_mpi_get_nbits(n);
140 /* GNUNET_assert (nbits > 512); */ 140 /* GNUNET_assert (nbits > 512); */
141 141
142 ctr = 0; 142 ctr = 0;
143 while (1) 143 while (1)
144 { 144 {
145 /* Ain't clear if n is always divisible by 8 */ 145 /* Ain't clear if n is always divisible by 8 */
146 uint8_t buf[ (nbits-1)/8 + 1 ]; 146 uint8_t buf[ (nbits - 1) / 8 + 1 ];
147 147
148 rc = GNUNET_CRYPTO_kdf (buf, 148 rc = GNUNET_CRYPTO_kdf(buf,
149 sizeof (buf), 149 sizeof(buf),
150 xts, xts_len, 150 xts, xts_len,
151 skm, skm_len, 151 skm, skm_len,
152 ctx, strlen(ctx), 152 ctx, strlen(ctx),
153 &ctr, sizeof(ctr), 153 &ctr, sizeof(ctr),
154 NULL, 0); 154 NULL, 0);
155 GNUNET_assert (GNUNET_YES == rc); 155 GNUNET_assert(GNUNET_YES == rc);
156 156
157 rc = gcry_mpi_scan (r, 157 rc = gcry_mpi_scan(r,
158 GCRYMPI_FMT_USG, 158 GCRYMPI_FMT_USG,
159 (const unsigned char *) buf, 159 (const unsigned char *)buf,
160 sizeof (buf), 160 sizeof(buf),
161 &rsize); 161 &rsize);
162 GNUNET_assert (0 == rc); /* Allocation erro? */ 162 GNUNET_assert(0 == rc); /* Allocation erro? */
163 163
164 gcry_mpi_clear_highbit (*r, nbits); 164 gcry_mpi_clear_highbit(*r, nbits);
165 GNUNET_assert( 0 == gcry_mpi_test_bit (*r, nbits) ); 165 GNUNET_assert(0 == gcry_mpi_test_bit(*r, nbits));
166 ++ctr; 166 ++ctr;
167 /* We reject this FDH if either *r > n and retry with another ctr */ 167 /* We reject this FDH if either *r > n and retry with another ctr */
168 if (0 > gcry_mpi_cmp(*r, n)) 168 if (0 > gcry_mpi_cmp(*r, n))
169 break; 169 break;
170 gcry_mpi_release (*r); 170 gcry_mpi_release(*r);
171 } 171 }
172} 172}
173 173
174/* end of crypto_kdf.c */ 174/* end of crypto_kdf.c */