2023-10-17 14:21:01 +00:00
|
|
|
# ****************************************************************************
|
|
|
|
# Ledger App OpenPGP
|
|
|
|
# (c) 2016-2024 Ledger SAS.
|
2018-03-05 20:51:57 +00:00
|
|
|
#
|
2023-10-17 14:21:01 +00:00
|
|
|
# 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
|
2018-03-05 20:51:57 +00:00
|
|
|
#
|
2023-10-17 14:21:01 +00:00
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
2018-03-05 20:51:57 +00:00
|
|
|
#
|
2023-10-17 14:21:01 +00:00
|
|
|
# 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.
|
|
|
|
# ****************************************************************************
|
|
|
|
|
2017-03-28 17:24:02 +00:00
|
|
|
ifeq ($(BOLOS_SDK),)
|
|
|
|
$(error Environment variable BOLOS_SDK is not set)
|
|
|
|
endif
|
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
include $(BOLOS_SDK)/Makefile.defines
|
2018-03-12 18:18:57 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
########################################
|
|
|
|
# Mandatory configuration #
|
|
|
|
########################################
|
|
|
|
# Application name
|
2019-08-08 11:04:39 +00:00
|
|
|
ifeq ($(APPNAME),)
|
|
|
|
APPNAME = OpenPGP
|
2019-01-31 15:35:23 +00:00
|
|
|
endif
|
2019-08-08 11:04:39 +00:00
|
|
|
ifeq ($(APPNAME),OpenPGP)
|
2023-02-16 17:21:01 +00:00
|
|
|
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
2018-10-10 21:24:49 +00:00
|
|
|
GPG_MULTISLOT:=0
|
2023-02-16 17:21:01 +00:00
|
|
|
else
|
|
|
|
GPG_MULTISLOT:=1
|
|
|
|
endif
|
2019-08-08 11:04:39 +00:00
|
|
|
else ifeq ($(APPNAME),OpenPGP.XL)
|
2018-10-10 21:24:49 +00:00
|
|
|
GPG_MULTISLOT:=1
|
2019-11-12 13:12:55 +00:00
|
|
|
else
|
2019-08-08 11:04:39 +00:00
|
|
|
$(error APPNAME ($(APPNAME)) is not set or unknown)
|
2018-10-10 21:24:49 +00:00
|
|
|
endif
|
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
APPVERSION_M = 2
|
|
|
|
APPVERSION_N = 0
|
|
|
|
APPVERSION_P = 0
|
|
|
|
APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)"
|
2017-03-21 15:32:26 +00:00
|
|
|
|
2019-06-14 08:38:37 +00:00
|
|
|
SPECVERSION:="3.3.1"
|
|
|
|
DEFINES += SPEC_VERSION=$(SPECVERSION)
|
2017-03-21 15:32:26 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
# Application source files
|
|
|
|
APP_SOURCE_PATH += src
|
|
|
|
APP_SOURCE_FILES += $(BOLOS_SDK)/lib_cxng/src/cx_rsa.c
|
|
|
|
APP_SOURCE_FILES += $(BOLOS_SDK)/lib_cxng/src/cx_pkcs1.c
|
|
|
|
APP_SOURCE_FILES += $(BOLOS_SDK)/lib_cxng/src/cx_utils.c
|
2018-03-05 20:51:57 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
INCLUDES_PATH += $(BOLOS_SDK)/lib_cxng/src
|
2019-11-12 13:12:55 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
# Application icons following guidelines:
|
|
|
|
# https://developers.ledger.com/docs/embedded-app/design-requirements/#device-icon
|
|
|
|
ICON_NANOS = icons/gpg_16px.gif
|
|
|
|
ICON_NANOX = icons/gpg_14px.gif
|
|
|
|
ICON_NANOSP = icons/gpg_14px.gif
|
|
|
|
|
|
|
|
# Application allowed derivation curves.
|
|
|
|
# Possibles curves are: secp256k1, secp256r1, ed25519 and bls12381g1
|
|
|
|
# If your app needs it, you can specify multiple curves by using:
|
|
|
|
# `CURVE_APP_LOAD_PARAMS = <curve1> <curve2>`
|
|
|
|
CURVE_APP_LOAD_PARAMS = secp256k1
|
|
|
|
|
|
|
|
# Application allowed derivation paths.
|
|
|
|
# You should request a specific path for your app.
|
|
|
|
# This serve as an isolation mechanism.
|
|
|
|
# Most application will have to request a path according to the BIP-0044
|
|
|
|
# and SLIP-0044 standards.
|
|
|
|
# If your app needs it, you can specify multiple path by using:
|
|
|
|
# `PATH_APP_LOAD_PARAMS = "44'/1'" "45'/1'"`
|
|
|
|
PATH_APP_LOAD_PARAMS = "2152157255'"
|
|
|
|
|
|
|
|
# Setting to allow building variant applications
|
|
|
|
# - <VARIANT_PARAM> is the name of the parameter which should be set
|
|
|
|
# to specify the variant that should be build.
|
|
|
|
# - <VARIANT_VALUES> a list of variant that can be build using this app code.
|
|
|
|
# * It must at least contains one value.
|
|
|
|
# * Values can be the app ticker or anything else but should be unique.
|
|
|
|
VARIANT_PARAM = APPNAME
|
2023-02-16 17:21:01 +00:00
|
|
|
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
2023-10-17 14:21:01 +00:00
|
|
|
VARIANT_VALUES = OpenPGP OpenPGP.XL
|
2023-02-16 17:21:01 +00:00
|
|
|
else
|
2023-10-17 14:21:01 +00:00
|
|
|
VARIANT_VALUES = OpenPGP
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Enabling DEBUG flag will enable PRINTF and disable optimizations
|
|
|
|
#DEBUG = 1
|
|
|
|
|
|
|
|
########################################
|
|
|
|
# Application custom permissions #
|
|
|
|
########################################
|
|
|
|
# See SDK `include/appflags.h` for the purpose of each permission
|
|
|
|
#HAVE_APPLICATION_FLAG_DERIVE_MASTER = 1
|
|
|
|
#HAVE_APPLICATION_FLAG_GLOBAL_PIN = 1
|
|
|
|
#HAVE_APPLICATION_FLAG_BOLOS_SETTINGS = 1
|
|
|
|
#HAVE_APPLICATION_FLAG_LIBRARY = 1
|
|
|
|
|
|
|
|
########################################
|
|
|
|
# Application communication interfaces #
|
|
|
|
########################################
|
|
|
|
#ENABLE_BLUETOOTH = 1
|
|
|
|
#ENABLE_NFC = 1
|
|
|
|
|
|
|
|
########################################
|
|
|
|
# NBGL custom features #
|
|
|
|
########################################
|
|
|
|
#ENABLE_NBGL_QRCODE = 1
|
|
|
|
#ENABLE_NBGL_KEYBOARD = 1
|
|
|
|
#ENABLE_NBGL_KEYPAD = 1
|
|
|
|
|
|
|
|
########################################
|
|
|
|
# Features disablers #
|
|
|
|
########################################
|
|
|
|
# These advanced settings allow to disable some feature that are by
|
|
|
|
# default enabled in the SDK `Makefile.standard_app`.
|
|
|
|
DISABLE_STANDARD_APP_FILES = 1
|
|
|
|
#DISABLE_DEFAULT_IO_SEPROXY_BUFFER_SIZE = 1 # To allow custom size declaration
|
|
|
|
#DISABLE_STANDARD_APP_DEFINES = 1 # Will set all the following disablers
|
|
|
|
#DISABLE_STANDARD_SNPRINTF = 1
|
|
|
|
#DISABLE_STANDARD_USB = 1
|
|
|
|
DISABLE_STANDARD_WEBUSB = 1
|
|
|
|
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
|
|
|
DISABLE_STANDARD_BAGL_UX_FLOW = 1
|
2023-02-16 17:21:01 +00:00
|
|
|
endif
|
2023-10-17 14:21:01 +00:00
|
|
|
#DISABLE_DEBUG_LEDGER_ASSERT = 1
|
|
|
|
#DISABLE_DEBUG_THROW = 1
|
2023-02-16 17:21:01 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
########################################
|
|
|
|
# Main app configuration #
|
|
|
|
########################################
|
2017-03-21 15:32:26 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
DEFINES += GPG_MULTISLOT=$(GPG_MULTISLOT)
|
2019-06-14 08:38:37 +00:00
|
|
|
DEFINES += CUSTOM_IO_APDU_BUFFER_SIZE=\(255+5+64\)
|
2019-11-12 13:12:55 +00:00
|
|
|
DEFINES += HAVE_LEGACY_PID
|
2018-03-12 18:18:57 +00:00
|
|
|
DEFINES += HAVE_USB_CLASS_CCID
|
2023-10-17 14:21:01 +00:00
|
|
|
DEFINES += HAVE_RSA
|
2019-06-14 08:38:37 +00:00
|
|
|
|
2022-02-02 15:54:52 +00:00
|
|
|
ifeq ($(TARGET_NAME),TARGET_NANOS)
|
2023-10-17 14:21:01 +00:00
|
|
|
DEFINES += UI_NANO_S
|
2019-11-12 13:12:55 +00:00
|
|
|
else
|
2023-10-17 14:21:01 +00:00
|
|
|
DEFINES += UI_NANO_X
|
|
|
|
DEFINES += GPG_SHAKE256
|
2019-06-14 08:38:37 +00:00
|
|
|
endif
|
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
#########################
|
2017-03-21 15:32:26 +00:00
|
|
|
|
2023-10-17 14:21:01 +00:00
|
|
|
# Import generic rules from the SDK
|
|
|
|
include $(BOLOS_SDK)/Makefile.standard_app
|