1 /*
2 * Copyright (c) 2012, Jouni Malinen <j@w1.fi>
3 *
4 * This software may be distributed under the terms of the BSD license.
5 * See README for more details.
6 */
7
8 #include "rtw_crypto_wrap.h"
9
10 #ifndef DEBUG_CRYPTO
11 #define DEBUG_CRYPTO 0
12 #endif /* DEBUG_CRYTO */
13
os_memcmp(const void * s1,const void * s2,size_t n)14 int os_memcmp(const void *s1, const void *s2, size_t n)
15 {
16 return _rtw_memcmp2(s1, s2, n);
17 }
18
os_memcmp_const(const void * a,const void * b,size_t len)19 int os_memcmp_const(const void *a, const void *b, size_t len)
20 {
21 const u8 *aa = a;
22 const u8 *bb = b;
23 size_t i;
24 u8 res;
25
26 for (res = 0, i = 0; i < len; i++)
27 res |= aa[i] ^ bb[i];
28
29 return res;
30 }
31
os_memdup(const void * src,u32 sz)32 void* os_memdup(const void *src, u32 sz)
33 {
34 void *r = rtw_malloc(sz);
35
36 if (r && src)
37 _rtw_memcpy(r, src, sz);
38 return r;
39 }
40
os_strlen(const char * s)41 size_t os_strlen(const char *s)
42 {
43 const char *p = s;
44 while (*p)
45 p++;
46 return p - s;
47 }
48
49
forced_memzero(void * ptr,size_t len)50 void forced_memzero(void *ptr, size_t len)
51 {
52 _rtw_memset(ptr, 0, len);
53 }
54
bin_clear_free(void * bin,size_t len)55 void bin_clear_free(void *bin, size_t len)
56 {
57 if (bin) {
58 forced_memzero(bin, len);
59 rtw_mfree(bin, len);
60 }
61 }
62
wpa_printf(int level,const char * fmt,...)63 void wpa_printf(int level, const char *fmt, ...)
64 {
65 #if DEBUG_CRYPTO
66 #define MSG_LEN 100
67 va_list args;
68 u8 buf[MSG_LEN] = { 0 };
69 int err;
70
71 va_start(args, fmt);
72 err = vsnprintf(buf, MSG_LEN, fmt, args);
73 va_end(args);
74
75 RTW_INFO("%s", buf);
76 #undef MSG_LEN
77 #endif /* DEBUG_CRYPTO */
78 }
79
wpa_hexdump(int level,const char * title,const void * buf,size_t len)80 void wpa_hexdump(int level, const char *title, const void *buf, size_t len)
81 {
82 #if DEBUG_CRYPTO
83 RTW_INFO_DUMP((u8 *)title, buf, len);
84 #endif /* DEBUG_CRYPTO */
85 }
86
wpa_hexdump_key(int level,const char * title,const void * buf,size_t len)87 void wpa_hexdump_key(int level, const char *title, const void *buf, size_t len)
88 {
89 #if DEBUG_CRYPTO
90 RTW_INFO_DUMP((u8 *)title, buf, len);
91 #endif /* DEBUG_CRYPTO */
92 }
93