xref: /netbsd-src/sys/external/isc/libsodium/include/utils.h (revision a5b568d2b48c11c3ad18eebbe13a39088222eb4b)
1 #ifndef __SODIUM_UTILS_H__
2 #define __SODIUM_UTILS_H__
3 
4 /* This overwrites dist/src/libsodium/include/sodium/utils.h */
5 
6 #define SODIUM_C99(X) X
7 
8 static inline void
sodium_memzero(void * const pnt,const size_t len)9 sodium_memzero(void *const pnt, const size_t len)
10 {
11 
12 	explicit_memset(pnt, 0, len);
13 }
14 
15 /* Just copied from dist/src/libsodium/sodium/utils.c */
16 static inline int
sodium_is_zero(const unsigned char * n,const size_t nlen)17 sodium_is_zero(const unsigned char *n, const size_t nlen)
18 {
19     size_t                 i;
20     volatile unsigned char d = 0U;
21 
22     for (i = 0U; i < nlen; i++) {
23         d |= n[i];
24     }
25     return 1 & ((d - 1) >> 8);
26 }
27 #endif /* __SODIUM_UTILS_H__ */
28