blob: d6fc7eb53ecfebea3b56e51e8d620bd523b64908 [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 \
40 sha256.c \
41 )
42
43# Key algorithm specific files
Qixiang Xuaa05eea2017-08-24 15:26:39 +080044MBEDTLS_ECDSA_CRYPTO_SOURCES += $(addprefix ${MBEDTLS_DIR}/library/, \
45 ecdsa.c \
46 ecp_curves.c \
47 ecp.c \
48 )
49
50MBEDTLS_RSA_CRYPTO_SOURCES += $(addprefix ${MBEDTLS_DIR}/library/, \
51 rsa.c \
52 )
53
David Cunadob1010182017-05-08 09:48:34 +010054ifeq (${TF_MBEDTLS_KEY_ALG},ecdsa)
Qixiang Xuaa05eea2017-08-24 15:26:39 +080055 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_ECDSA_CRYPTO_SOURCES)
David Cunadoc7a1b192017-05-10 16:38:44 +010056 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_ECDSA
David Cunadob1010182017-05-08 09:48:34 +010057else ifeq (${TF_MBEDTLS_KEY_ALG},rsa)
Qixiang Xuaa05eea2017-08-24 15:26:39 +080058 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_RSA_CRYPTO_SOURCES)
David Cunadoc7a1b192017-05-10 16:38:44 +010059 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_RSA
Qixiang Xuaa05eea2017-08-24 15:26:39 +080060else ifeq (${TF_MBEDTLS_KEY_ALG},rsa+ecdsa)
61 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_ECDSA_CRYPTO_SOURCES)
62 MBEDTLS_CRYPTO_SOURCES += $(MBEDTLS_RSA_CRYPTO_SOURCES)
63 TF_MBEDTLS_KEY_ALG_ID := TF_MBEDTLS_RSA_AND_ECDSA
Juan Castilloa57a4d52015-04-02 15:44:20 +010064else
David Cunadob1010182017-05-08 09:48:34 +010065 $(error "TF_MBEDTLS_KEY_ALG=${TF_MBEDTLS_KEY_ALG} not supported on mbed TLS")
Juan Castilloa57a4d52015-04-02 15:44:20 +010066endif
67
dp-arm52b1fe52017-03-07 10:08:42 +000068# Needs to be set to drive mbed TLS configuration correctly
David Cunadoc7a1b192017-05-10 16:38:44 +010069$(eval $(call add_define,TF_MBEDTLS_KEY_ALG_ID))
Juan Castilloa57a4d52015-04-02 15:44:20 +010070
71BL1_SOURCES += ${MBEDTLS_CRYPTO_SOURCES}
72BL2_SOURCES += ${MBEDTLS_CRYPTO_SOURCES}