• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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