Wed Nov 7 00:39:07 2018 UTC ()
Fix build on Tribblix without introducing warnings on NetBSD. From
riastradh@ ("commit!") with help from maya@.


(schmonz)
diff -r1.1 -r1.2 pkgsrc/pkgtools/digest/files/blake2b.c

cvs diff -r1.1 -r1.2 pkgsrc/pkgtools/digest/files/blake2b.c (expand / switch to unified diff)

--- pkgsrc/pkgtools/digest/files/blake2b.c 2018/10/06 14:32:45 1.1
+++ pkgsrc/pkgtools/digest/files/blake2b.c 2018/11/07 00:39:07 1.2
@@ -14,37 +14,35 @@ @@ -14,37 +14,35 @@
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE. 24 * SUCH DAMAGE.
25 */ 25 */
26 26
27#define _POSIX_C_SOURCE 200809L 
28 
29#include <assert.h> 27#include <assert.h>
30#include <stdint.h> 28#include <stdint.h>
31#include <string.h> 29#include <string.h>
32 30
33#include "blake2b.h" 31#include "blake2b.h"
34 32
35void *(*volatile blake2b_explicit_memset_impl)(void *, int, size_t) = &memset; 33void *(*volatile blake2b_explicit_memset_impl)(void *, int, size_t) = &memset;
36static void * 34static void *
37explicit_memset(void *buf, int c, size_t n) 35blake2b_explicit_memset(void *buf, int c, size_t n)
38{ 36{
39 37
40 return (*blake2b_explicit_memset_impl)(buf, c, n); 38 return (*blake2b_explicit_memset_impl)(buf, c, n);
41} 39}
42 40
43static inline uint64_t 41static inline uint64_t
44rotr64(uint64_t x, unsigned c) 42rotr64(uint64_t x, unsigned c)
45{ 43{
46 44
47 return ((x >> c) | (x << (64 - c))); 45 return ((x >> c) | (x << (64 - c)));
48} 46}
49 47
50static inline uint64_t 48static inline uint64_t
@@ -159,27 +157,27 @@ blake2b_compress(uint64_t h[8], uint64_t @@ -159,27 +157,27 @@ blake2b_compress(uint64_t h[8], uint64_t
159 BLAKE2B_G(v3, v4, v9, v14, m[sigma[14]], m[sigma[15]]); 157 BLAKE2B_G(v3, v4, v9, v14, m[sigma[14]], m[sigma[15]]);
160 } 158 }
161 159
162 /* Update the state. */ 160 /* Update the state. */
163 h[0] ^= v0 ^ v8; 161 h[0] ^= v0 ^ v8;
164 h[1] ^= v1 ^ v9; 162 h[1] ^= v1 ^ v9;
165 h[2] ^= v2 ^ v10; 163 h[2] ^= v2 ^ v10;
166 h[3] ^= v3 ^ v11; 164 h[3] ^= v3 ^ v11;
167 h[4] ^= v4 ^ v12; 165 h[4] ^= v4 ^ v12;
168 h[5] ^= v5 ^ v13; 166 h[5] ^= v5 ^ v13;
169 h[6] ^= v6 ^ v14; 167 h[6] ^= v6 ^ v14;
170 h[7] ^= v7 ^ v15; 168 h[7] ^= v7 ^ v15;
171 169
172 (void)explicit_memset(m, 0, sizeof m); 170 (void)blake2b_explicit_memset(m, 0, sizeof m);
173} 171}
174 172
175void 173void
176blake2b_init(struct blake2b *B, size_t dlen, const void *key, size_t keylen) 174blake2b_init(struct blake2b *B, size_t dlen, const void *key, size_t keylen)
177{ 175{
178 uint64_t param0; 176 uint64_t param0;
179 unsigned i; 177 unsigned i;
180 178
181 assert(0 < dlen); 179 assert(0 < dlen);
182 assert(dlen <= 64); 180 assert(dlen <= 64);
183 assert(keylen <= 64); 181 assert(keylen <= 64);
184 182
185 /* Record the digest length. */ 183 /* Record the digest length. */
@@ -271,27 +269,27 @@ blake2b_final(struct blake2b *B, void *d @@ -271,27 +269,27 @@ blake2b_final(struct blake2b *B, void *d
271 dlen -= 8*i; 269 dlen -= 8*i;
272 270
273 /* If the caller wants a partial word, reveal that too. */ 271 /* If the caller wants a partial word, reveal that too. */
274 if (dlen) { 272 if (dlen) {
275 uint64_t hi = B->h[i]; 273 uint64_t hi = B->h[i];
276 274
277 do { 275 do {
278 *d++ = hi; 276 *d++ = hi;
279 hi >>= 8; 277 hi >>= 8;
280 } while (--dlen); 278 } while (--dlen);
281 } 279 }
282 280
283 /* Erase the state. */ 281 /* Erase the state. */
284 (void)explicit_memset(B, 0, sizeof B); 282 (void)blake2b_explicit_memset(B, 0, sizeof B);
285} 283}
286 284
287void 285void
288blake2b(void *digest, size_t dlen, const void *key, size_t keylen, 286blake2b(void *digest, size_t dlen, const void *key, size_t keylen,
289 const void *in, size_t inlen) 287 const void *in, size_t inlen)
290{ 288{
291 struct blake2b ctx; 289 struct blake2b ctx;
292 290
293 blake2b_init(&ctx, dlen, key, keylen); 291 blake2b_init(&ctx, dlen, key, keylen);
294 blake2b_update(&ctx, in, inlen); 292 blake2b_update(&ctx, in, inlen);
295 blake2b_final(&ctx, digest); 293 blake2b_final(&ctx, digest);
296} 294}
297 295