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)15void 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