Add a utils.h file that contains common functions
The new header contains common information across various mbed TLS modules and avoids code duplication. To start, utils.h currently only contains the mbedtls_zeroize() function.
This commit is contained in:
parent
4ca9a45756
commit
614d9c0667
39
include/mbedtls/utils.h
Normal file
39
include/mbedtls/utils.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* \file utils.h
|
||||||
|
*
|
||||||
|
* \brief mbed TLS utility functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017, 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_UTILS_H
|
||||||
|
#define MBEDTLS_UTILS_H
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Securely zeroize a buffer
|
||||||
|
*
|
||||||
|
* \param buf Buffer to be zeroized
|
||||||
|
* \param len Length of the buffer in bytes
|
||||||
|
*
|
||||||
|
* \note This implementation should never be optimized out by the
|
||||||
|
* compiler
|
||||||
|
*/
|
||||||
|
void mbedtls_zeroize( void *buf, size_t len );
|
||||||
|
|
||||||
|
#endif /* MBEDTLS_UTILS_H */
|
@ -57,6 +57,7 @@ set(src_crypto
|
|||||||
version.c
|
version.c
|
||||||
version_features.c
|
version_features.c
|
||||||
xtea.c
|
xtea.c
|
||||||
|
utils.c
|
||||||
)
|
)
|
||||||
|
|
||||||
set(src_x509
|
set(src_x509
|
||||||
|
@ -65,7 +65,8 @@ OBJS_CRYPTO= aes.o aesni.o arc4.o \
|
|||||||
ripemd160.o rsa_internal.o rsa.o \
|
ripemd160.o rsa_internal.o rsa.o \
|
||||||
sha1.o sha256.o sha512.o \
|
sha1.o sha256.o sha512.o \
|
||||||
threading.o timing.o version.o \
|
threading.o timing.o version.o \
|
||||||
version_features.o xtea.o
|
version_features.o xtea.o \
|
||||||
|
utils.o
|
||||||
|
|
||||||
OBJS_X509= certs.o pkcs11.o x509.o \
|
OBJS_X509= certs.o pkcs11.o x509.o \
|
||||||
x509_create.o x509_crl.o x509_crt.o \
|
x509_create.o x509_crl.o x509_crt.o \
|
||||||
|
33
library/utils.c
Normal file
33
library/utils.c
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* mbedtls utility functions
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017, 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)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "mbedtls/utils.h"
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
/* This implementation should never be optimized out by the compiler */
|
||||||
|
void mbedtls_zeroize( void *buf, size_t len )
|
||||||
|
{
|
||||||
|
volatile unsigned char *p = (unsigned char *)buf;
|
||||||
|
|
||||||
|
while( len-- )
|
||||||
|
*p++ = 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user