| /** |
| * \file platform_util.h |
| * |
| * \brief Common and shared functions used by multiple modules in the Mbed TLS |
| * library. |
| */ |
| /* |
| * Copyright (C) 2018, Arm Limited, All Rights Reserved |
| * SPDX-License-Identifier: Apache-2.0 |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may |
| * not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * This file is part of Mbed TLS (https://tls.mbed.org) |
| */ |
| #ifndef MBEDTLS_PLATFORM_UTIL_H |
| #define MBEDTLS_PLATFORM_UTIL_H |
| |
| #include <stddef.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * \brief Securely zeroize a buffer |
| * |
| * The function is meant to wipe the data contained in a buffer so |
| * that it can no longer be recovered even if the program memory |
| * is later compromised. Call this function on sensitive data |
| * stored on the stack before returning from a function, and on |
| * sensitive data stored on the heap before freeing the heap |
| * object. |
| * |
| * It is extremely difficult to guarantee that calls to |
| * mbedtls_platform_zeroize() are not removed by aggressive |
| * compiler optimizations in a portable way. For this reason, Mbed |
| * TLS provides the configuration option |
| * MBEDTLS_PLATFORM_ZEROIZE_ALT, which allows users to configure |
| * mbedtls_platform_zeroize() to use a suitable implementation for |
| * their platform and needs |
| * |
| * \param buf Buffer to be zeroized |
| * \param len Length of the buffer in bytes |
| * |
| */ |
| void mbedtls_platform_zeroize( void *buf, size_t len ); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* MBEDTLS_PLATFORM_UTIL_H */ |