blob: 6b15e717db59e41b8e38f65c202a4aece73aa3df [file] [log] [blame]
Juan Castilloa57a4d52015-04-02 15:44:20 +01001#
dp-arm52b1fe52017-03-07 10:08:42 +00002# Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
Juan Castilloa57a4d52015-04-02 15:44:20 +01003#
dp-armfa3cf0b2017-05-03 09:38:09 +01004# SPDX-License-Identifier: BSD-3-Clause
Juan Castilloa57a4d52015-04-02 15:44:20 +01005#
6
7include drivers/auth/mbedtls/mbedtls_common.mk
8
David Cunadob1010182017-05-08 09:48:34 +01009# The platform may define the variable 'TF_MBEDTLS_KEY_ALG' to select the key
Soby Mathew13b16052017-08-31 11:49:32 +010010# algorithm to use. If the variable is not defined, select it based on algorithm
11# used for key generation `KEY_ALG`. If `KEY_ALG` is not defined or is
Soby Mathew2fd70f62017-08-31 11:50:29 +010012# defined to `rsa`/`rsa_1_5`, then set the variable to `rsa`.
David Cunadob1010182017-05-08 09:48:34 +010013ifeq (${TF_MBEDTLS_KEY_ALG},)
Soby Mathew13b16052017-08-31 11:49:32 +010014 ifeq (${KEY_ALG}, ecdsa)
15 TF_MBEDTLS_KEY_ALG := ecdsa
16 else
17 TF_MBEDTLS_KEY_ALG := rsa
18 endif
Juan Castilloa57a4d52015-04-02 15:44:20 +010019endif
20
David Cunadob1010182017-05-08 09:48:34 +010021# If MBEDTLS_KEY_ALG build flag is defined use it to set TF_MBEDTLS_KEY_ALG for
22# backward compatibility
23ifdef MBEDTLS_KEY_ALG
24 ifeq (${ERROR_DEPRECATED},1)
25 $(error "MBEDTLS_KEY_ALG is deprecated. Please use the new build flag TF_MBEDTLS_KEY_ALG")
26 endif
27 $(warning "MBEDTLS_KEY_ALG is deprecated. Please use the new build flag TF_MBEDTLS_KEY_ALG")
28 TF_MBEDTLS_KEY_ALG := ${MBEDTLS_KEY_ALG}
29endif
30
Juan Castilloa57a4d52015-04-02 15:44:20 +010031MBEDTLS_CRYPTO_SOURCES := drivers/auth/mbedtls/mbedtls_crypto.c \
32 $(addprefix ${MBEDTLS_DIR}/library/, \
33 bignum.c \
34 md.c \
35 md_wrap.c \
36 pk.c \
37 pk_wrap.c \
38 pkparse.c \
39 pkwrite.c \
Juan Castilloa57a4d52015-04-02 15:44:20 +010040 )
41
Qixiang Xu1a1f2912017-11-09 13:56:29 +080042ifeq (${HASH_ALG}, sha384)
43 MBEDTLS_CRYPTO_SOURCES += \
44 $(addprefix ${MBEDTLS_DIR}/library/, \
45 sha256.c \
46 sha512.c \
47 )
48 TF_MBEDTLS_HASH_ALG_ID := TF_MBEDTLS_SHA384
49else ifeq (${HASH_ALG}, sha512)
50 MBEDTLS_CRYPTO_SOURCES += \
51 $(addprefix ${MBEDTLS_DIR}/library/, \
52 sha256.c \
53 sha512.c \
54 )
55 TF_MBEDTLS_HASH_ALG_ID := TF_MBEDTLS_SHA512
56else
57 MBEDTLS_CRYPTO_SOURCES += \
58 $(addprefix ${MBEDTLS_DIR}/library/, \
59 sha256.c \
60 )
61 TF_MBEDTLS_HASH_ALG_ID := TF_MBEDTLS_SHA256
62endif
63
Juan Castilloa57a4d52015-04-02 15:44:20 +010064# Key algorithm specific files
Qixiang Xuaa05eea2017-08-24 15:26:39 +080065MBEDTLS_ECDSA_CRYPTO_SOURCES += $(addprefix ${MBEDTLS_DIR}/library/, \
66 ecdsa.c \
67 ecp_curves.c \
68 ecp.c \
69 )
70
71MBEDTLS_RSA_CRYPTO_SOURCES += $(addprefix ${MBEDTLS_DIR}/library/, \
72 rsa.c \
73 )
74
David Cunadob1010182017-05-08 09:48:34 +010075ifeq (${TF_MBEDTLS_KEY_ALG},ecdsa)
Qixiang Xuaa05eea2017-08-24 15:26:39 +080076 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_ECDSA_CRYPTO_SOURCES)
David Cunadoc7a1b192017-05-10 16:38:44 +010077 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_ECDSA
David Cunadob1010182017-05-08 09:48:34 +010078else ifeq (${TF_MBEDTLS_KEY_ALG},rsa)
Qixiang Xuaa05eea2017-08-24 15:26:39 +080079 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_RSA_CRYPTO_SOURCES)
David Cunadoc7a1b192017-05-10 16:38:44 +010080 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_RSA
Qixiang Xuaa05eea2017-08-24 15:26:39 +080081else ifeq (${TF_MBEDTLS_KEY_ALG},rsa+ecdsa)
82 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_ECDSA_CRYPTO_SOURCES)
83 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_RSA_CRYPTO_SOURCES)
84 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_RSA_AND_ECDSA
Juan Castilloa57a4d52015-04-02 15:44:20 +010085else
David Cunadob1010182017-05-08 09:48:34 +010086 $(error "TF_MBEDTLS_KEY_ALG=${TF_MBEDTLS_KEY_ALG} not supported on mbed TLS")
Juan Castilloa57a4d52015-04-02 15:44:20 +010087endif
88
dp-arm52b1fe52017-03-07 10:08:42 +000089# Needs to be set to drive mbed TLS configuration correctly
David Cunadoc7a1b192017-05-10 16:38:44 +010090$(eval $(call add_define,TF_MBEDTLS_KEY_ALG_ID))
Qixiang Xu1a1f2912017-11-09 13:56:29 +080091$(eval $(call add_define,TF_MBEDTLS_HASH_ALG_ID))