20#if defined(BOTAN_TARGET_OS_HAS_RTLSECUREZEROMEMORY)
21 ::RtlSecureZeroMemory(ptr, n);
23#elif defined(BOTAN_TARGET_OS_HAS_EXPLICIT_BZERO)
24 ::explicit_bzero(ptr, n);
26#elif defined(BOTAN_TARGET_OS_HAS_EXPLICIT_MEMSET)
27 (void)::explicit_memset(ptr, 0, n);
29#elif defined(BOTAN_USE_VOLATILE_MEMSET_FOR_ZERO) && (BOTAN_USE_VOLATILE_MEMSET_FOR_ZERO == 1)
37 static void* (*
const volatile memset_ptr)(
void*,
int,
size_t) = std::memset;
38 (memset_ptr)(ptr, 0, n);
41 volatile uint8_t* p =
reinterpret_cast<volatile uint8_t*
>(ptr);
43 for(
size_t i = 0; i != n; ++i)