mirror of
https://github.com/ARMmbed/mbedtls.git
synced 2025-05-12 01:42:21 +08:00

Add new functions, psa_load_persistent_key(), psa_free_persistent_key_data(), and psa_save_persistent_key(), for managing persistent keys. These functions load to or save from our internal representation of key slots. Serialization is a concern of the storage backend implementation and doesn't abstraction-leak into the lifetime management code. An initial implementation for files is provided. Additional storage backends can implement this interface for other storage types.
238 lines
5.5 KiB
Makefile
238 lines
5.5 KiB
Makefile
###########################################################################
|
|
#
|
|
# 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.
|
|
#
|
|
###########################################################################
|
|
|
|
#
|
|
# Use this file to export an Mbed Crypto release tarball as follows, from the
|
|
# top level of the mbedtls repo:
|
|
#
|
|
# 1) make -f scripts/mbed_crypto.make
|
|
#
|
|
|
|
.PHONY: all clean FORCE
|
|
|
|
all: mbedcrypto.tar.gz
|
|
|
|
#
|
|
# Crypto-necessary library files
|
|
#
|
|
LIB_FILES := \
|
|
aes.c \
|
|
aesni.c \
|
|
arc4.c \
|
|
asn1parse.c \
|
|
asn1write.c \
|
|
base64.c \
|
|
bignum.c \
|
|
blowfish.c \
|
|
camellia.c \
|
|
ccm.c \
|
|
cipher.c \
|
|
cipher_wrap.c \
|
|
cmac.c \
|
|
ctr_drbg.c \
|
|
des.c \
|
|
ecdsa.c \
|
|
ecp.c \
|
|
ecp_curves.c \
|
|
entropy.c \
|
|
entropy_poll.c \
|
|
gcm.c \
|
|
hmac_drbg.c \
|
|
md.c \
|
|
md2.c \
|
|
md4.c \
|
|
md5.c \
|
|
md_wrap.c \
|
|
oid.c \
|
|
pem.c \
|
|
pk.c \
|
|
pk_wrap.c \
|
|
pkcs12.c \
|
|
pkcs5.c \
|
|
pkparse.c \
|
|
pkwrite.c \
|
|
platform.c \
|
|
platform_util.c \
|
|
psa_crypto.c \
|
|
psa_crypto_storage.h \
|
|
psa_crypto_storage.c \
|
|
psa_crypto_storage_backend.h \
|
|
psa_crypto_storage_file.c \
|
|
ripemd160.c \
|
|
rsa_internal.c \
|
|
rsa.c \
|
|
sha1.c \
|
|
sha256.c \
|
|
sha512.c \
|
|
xtea.c \
|
|
# Don't delete this line.
|
|
|
|
#
|
|
# Crypto-necessary include files
|
|
#
|
|
INC_FILES := \
|
|
mbedcrypto/aes.h \
|
|
mbedcrypto/aesni.h \
|
|
mbedcrypto/arc4.h \
|
|
mbedcrypto/asn1.h \
|
|
mbedcrypto/asn1write.h \
|
|
mbedcrypto/base64.h \
|
|
mbedcrypto/bignum.h \
|
|
mbedcrypto/blowfish.h \
|
|
mbedcrypto/bn_mul.h \
|
|
mbedcrypto/camellia.h \
|
|
mbedcrypto/ccm.h \
|
|
mbedcrypto/certs.h \
|
|
mbedcrypto/check_config.h \
|
|
mbedcrypto/cipher.h \
|
|
mbedcrypto/cipher_internal.h \
|
|
mbedcrypto/cmac.h \
|
|
mbedcrypto/config.h \
|
|
mbedcrypto/ctr_drbg.h \
|
|
mbedcrypto/des.h \
|
|
mbedcrypto/ecdsa.h \
|
|
mbedcrypto/ecp.h \
|
|
mbedcrypto/ecp_internal.h \
|
|
mbedcrypto/entropy.h \
|
|
mbedcrypto/entropy_poll.h \
|
|
mbedcrypto/error.h \
|
|
mbedcrypto/gcm.h \
|
|
mbedcrypto/hmac_drbg.h \
|
|
mbedcrypto/md.h \
|
|
mbedcrypto/md2.h \
|
|
mbedcrypto/md4.h \
|
|
mbedcrypto/md5.h \
|
|
mbedcrypto/md_internal.h \
|
|
mbedcrypto/oid.h \
|
|
mbedcrypto/pem.h \
|
|
mbedcrypto/pk.h \
|
|
mbedcrypto/pk_internal.h \
|
|
mbedcrypto/pkcs11.h \
|
|
mbedcrypto/pkcs12.h \
|
|
mbedcrypto/pkcs5.h \
|
|
mbedcrypto/platform.h \
|
|
mbedcrypto/platform_util.h \
|
|
mbedcrypto/ripemd160.h \
|
|
mbedcrypto/rsa.h \
|
|
mbedcrypto/rsa_internal.h \
|
|
mbedcrypto/sha1.h \
|
|
mbedcrypto/sha256.h \
|
|
mbedcrypto/sha512.h \
|
|
mbedcrypto/threading.h \
|
|
mbedcrypto/xtea.h \
|
|
psa/crypto.h \
|
|
psa/crypto_extra.h \
|
|
psa/crypto_platform.h \
|
|
psa/crypto_sizes.h \
|
|
psa/crypto_struct.h \
|
|
# Don't delete this line.
|
|
|
|
TEST_FILES := \
|
|
tests/scripts/generate_test_code.py \
|
|
tests/scripts/mbedtls_test.py \
|
|
tests/scripts/test_generate_test_code.py \
|
|
tests/scripts/run-test-suites.pl \
|
|
tests/suites/helpers.function \
|
|
tests/suites/host_test.function \
|
|
tests/suites/main_test.function \
|
|
tests/suites/target_test.function \
|
|
tests/suites/test_suite_psa_crypto.data \
|
|
tests/suites/test_suite_psa_crypto.function \
|
|
tests/suites/test_suite_psa_crypto_hash.data \
|
|
tests/suites/test_suite_psa_crypto_hash.function \
|
|
tests/suites/test_suite_psa_crypto_metadata.data \
|
|
tests/suites/test_suite_psa_crypto_metadata.function \
|
|
tests/suites/test_suite_psa_crypto_storage_file.data \
|
|
tests/suites/test_suite_psa_crypto_storage_file.function \
|
|
# Don't delete this line.
|
|
|
|
OTHER_FILES := \
|
|
LICENSE \
|
|
VERSION.txt \
|
|
programs/psa/crypto_examples.c \
|
|
programs/psa/key_ladder_demo.c \
|
|
programs/psa/key_ladder_demo.sh \
|
|
programs/psa/psa_constant_names.c \
|
|
scripts/config.pl \
|
|
scripts/generate_psa_constants.py \
|
|
# Don't delete this line.
|
|
|
|
# Prepend destination directory
|
|
LIB_FILES := $(addprefix crypto/library/,$(LIB_FILES))
|
|
INC_FILES := $(addprefix crypto/include/,$(INC_FILES))
|
|
TEST_FILES := $(addprefix crypto/,$(TEST_FILES))
|
|
OTHER_FILES := $(addprefix crypto/,$(OTHER_FILES))
|
|
|
|
define rename_mbedcrypto
|
|
@sed -i -e 's/Mbed TLS/Mbed Crypto/g' $(1)
|
|
@sed -i -e 's/mbed TLS/Mbed Crypto/g' $(1)
|
|
@sed -i -e 's/MBEDTLS_/MBEDCRYPTO_/g' $(1)
|
|
@sed -i -e 's/mbedtls/mbedcrypto/g' $(1)
|
|
@sed -i -e 's/MbedTls/MbedCrypto/g' $(1)
|
|
@sed -i -e 's/include\/mbedtls/include\/mbedcrypto/g' $(1)
|
|
endef
|
|
|
|
crypto/include/mbedcrypto/config.h: configs/config-psa-crypto.h
|
|
@echo $@
|
|
@mkdir -p $(dir $@)
|
|
@cp $< $@
|
|
@#Rename the file in the comments
|
|
@sed -i -e 's/config-psa-crypto.h/config.h/g' $@
|
|
$(call rename_mbedcrypto,$@)
|
|
|
|
crypto/tests/data_files/%: tests/data_files/%
|
|
@echo $@
|
|
@mkdir -p $(dir $@)
|
|
@cp $< $@
|
|
@#Don't rename things inside data files
|
|
|
|
crypto/include/mbedcrypto/%.h: include/mbedtls/%.h
|
|
@echo $@
|
|
@mkdir -p $(dir $@)
|
|
@cp $< $@
|
|
$(call rename_mbedcrypto,$@)
|
|
|
|
crypto/LICENSE: apache-2.0.txt
|
|
@echo $@
|
|
@mkdir -p $(dir $@)
|
|
@cp $< $@
|
|
@#Don't rename anything in the license
|
|
|
|
crypto/%: %
|
|
@echo $@
|
|
@mkdir -p $(dir $@)
|
|
@cp $< $@
|
|
$(call rename_mbedcrypto,$@)
|
|
|
|
crypto/VERSION.txt: FORCE
|
|
@git describe --tags --abbrev=12 --dirty --always > $@
|
|
|
|
mbedcrypto.tar.gz: $(LIB_FILES) $(INC_FILES) $(TEST_FILES) $(OTHER_FILES)
|
|
@echo $@
|
|
@tar czf mbedcrypto.tar.gz crypto
|
|
|
|
clean:
|
|
@echo clean
|
|
@rm -rf mbedcrypto.tar.gz \
|
|
$(LIB_FILES) $(INC_FILES) $(TEST_FILES) $(OTHER_FILES)
|
|
|
|
FORCE:
|
|
|
|
# vi: ft=make
|