This series implements ECDSA signature verification for FIT images. The ECDSA code itself is taken from the Kernel. Currently only supported way to specify a ECDSA key is to compile it into the binary using CONFIG_CRYPTO_ECDSA_KEY, taking it from a device tree is not yet supported. Changes since v2: - fix endianess problems when ECDSA keys are built for a machine with different endianess - add struct public_key as a container for different key types - make FIT image code use generic public key functions - drop ECDSA dts snippet support (not needed, doesn't work) - pass NULL to EVP_PKEY_get_utf8_string_param() Sascha Hauer (15): keytoc: remove ECDSA dts support keytoc: fail in case gen_key() fails keytoc: fix ECDSA endianess problems keytoc: remove duplicate __ENV__ check crypto: Makefile: make simpler keytoc: make key name hint optional crypto: rsa: include key name hint into CONFIG_CRYPTO_RSA_KEY crypto: rsa: encapsulate rsa keys in public keys struct crypto: add public_key functions crypto: builtin_keys: Allow to specify multiple keys in CONFIG_CRYPTO_PUBLIC_KEYS crypto: public-keys: use array of public_keys crypto: rsa: create static inline wrapper for rsa_verify() Add elliptic curve cryptography (ECC) helper functions crypto: add ECDSA support crypto: make RSA a visible option common/Kconfig | 1 - common/image-fit.c | 20 +- crypto/Kconfig | 37 +- crypto/Makefile | 20 +- crypto/ecc.c | 1661 +++++++++++++++++++++++++++++ crypto/ecc_curve_defs.h | 155 +++ crypto/ecdsa.c | 140 +++ crypto/public-keys.c | 107 ++ crypto/rsa.c | 95 +- include/asm-generic/barebox.lds.h | 10 +- include/crypto/ecc_curve.h | 62 ++ include/crypto/ecdh.h | 83 ++ include/crypto/internal/ecc.h | 278 +++++ include/crypto/public_key.h | 36 + include/ecdsa.h | 42 + include/rsa.h | 35 +- scripts/Makefile.lib | 2 +- scripts/keytoc.c | 119 ++- 18 files changed, 2718 insertions(+), 185 deletions(-) create mode 100644 crypto/ecc.c create mode 100644 crypto/ecc_curve_defs.h create mode 100644 crypto/ecdsa.c create mode 100644 crypto/public-keys.c create mode 100644 include/crypto/ecc_curve.h create mode 100644 include/crypto/ecdh.h create mode 100644 include/crypto/internal/ecc.h create mode 100644 include/crypto/public_key.h create mode 100644 include/ecdsa.h -- 2.39.2