1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/core/platform/Security.h>
7 
8 #include <string.h>
9 
10 namespace Aws
11 {
12 namespace Security
13 {
14 
SecureMemClear(unsigned char * data,size_t length)15 void SecureMemClear(unsigned char *data, size_t length)
16 {
17 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
18     memset_s(data, length, 0, length);
19 #elif defined(__DragonFly__)
20     explicit_bzero(data, length);
21 #else
22     memset(data, 0, length);
23     asm volatile("" : "+m" (data));
24 #endif
25 }
26 
27 } // namespace Security
28 } // namespace Aws
29