mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 19:14:28 +00:00
fix(tools): update the fiptool and certtool to fix POSIX build
This patch fixes below issue raised: https://github.com/TrustedFirmware-A/trusted-firmware-a/issues/8 https://github.com/TrustedFirmware-A/trusted-firmware-a/issues/9 https://github.com/TrustedFirmware-A/trusted-firmware-a/issues/10 Change-Id: I521bf7410535ffe49198789ba183cc401b3b88a0 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
This commit is contained in:
parent
241ec3a5af
commit
ccbfd01d95
9 changed files with 46 additions and 52 deletions
|
@ -1405,6 +1405,7 @@ subsections:
|
||||||
- git-hooks
|
- git-hooks
|
||||||
|
|
||||||
- title: Tools
|
- title: Tools
|
||||||
|
scope: tools
|
||||||
|
|
||||||
subsections:
|
subsections:
|
||||||
- title: STM32 Image
|
- title: STM32 Image
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved.
|
* Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -65,35 +65,35 @@ typedef struct key_s {
|
||||||
const char *desc; /* Key description (debug purposes) */
|
const char *desc; /* Key description (debug purposes) */
|
||||||
char *fn; /* Filename to load/store the key */
|
char *fn; /* Filename to load/store the key */
|
||||||
EVP_PKEY *key; /* Key container */
|
EVP_PKEY *key; /* Key container */
|
||||||
} key_t;
|
} cert_key_t;
|
||||||
|
|
||||||
/* Exported API */
|
/* Exported API */
|
||||||
int key_init(void);
|
int key_init(void);
|
||||||
key_t *key_get_by_opt(const char *opt);
|
cert_key_t *key_get_by_opt(const char *opt);
|
||||||
#if !USING_OPENSSL3
|
#if !USING_OPENSSL3
|
||||||
int key_new(key_t *key);
|
int key_new(cert_key_t *key);
|
||||||
#endif
|
#endif
|
||||||
int key_create(key_t *key, int type, int key_bits);
|
int key_create(cert_key_t *key, int type, int key_bits);
|
||||||
unsigned int key_load(key_t *key);
|
unsigned int key_load(cert_key_t *key);
|
||||||
int key_store(key_t *key);
|
int key_store(cert_key_t *key);
|
||||||
void key_cleanup(void);
|
void key_cleanup(void);
|
||||||
|
|
||||||
/* Macro to register the keys used in the CoT */
|
/* Macro to register the keys used in the CoT */
|
||||||
#define REGISTER_KEYS(_keys) \
|
#define REGISTER_KEYS(_keys) \
|
||||||
key_t *def_keys = &_keys[0]; \
|
cert_key_t *def_keys = &_keys[0]; \
|
||||||
const unsigned int num_def_keys = sizeof(_keys)/sizeof(_keys[0])
|
const unsigned int num_def_keys = sizeof(_keys)/sizeof(_keys[0])
|
||||||
|
|
||||||
/* Macro to register the platform defined keys used in the CoT */
|
/* Macro to register the platform defined keys used in the CoT */
|
||||||
#define PLAT_REGISTER_KEYS(_pdef_keys) \
|
#define PLAT_REGISTER_KEYS(_pdef_keys) \
|
||||||
key_t *pdef_keys = &_pdef_keys[0]; \
|
cert_key_t *pdef_keys = &_pdef_keys[0]; \
|
||||||
const unsigned int num_pdef_keys = sizeof(_pdef_keys)/sizeof(_pdef_keys[0])
|
const unsigned int num_pdef_keys = sizeof(_pdef_keys)/sizeof(_pdef_keys[0])
|
||||||
|
|
||||||
/* Exported variables */
|
/* Exported variables */
|
||||||
extern key_t *def_keys;
|
extern cert_key_t *def_keys;
|
||||||
extern const unsigned int num_def_keys;
|
extern const unsigned int num_def_keys;
|
||||||
extern key_t *pdef_keys;
|
extern cert_key_t *pdef_keys;
|
||||||
extern const unsigned int num_pdef_keys;
|
extern const unsigned int num_pdef_keys;
|
||||||
|
|
||||||
extern key_t *keys;
|
extern cert_key_t *keys;
|
||||||
extern unsigned int num_keys;
|
extern unsigned int num_keys;
|
||||||
#endif /* KEY_H */
|
#endif /* KEY_H */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022-2023, Arm Limited. All rights reserved.
|
* Copyright (c) 2022-2024, Arm Limited. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -410,7 +410,7 @@ static ext_t cot_ext[] = {
|
||||||
REGISTER_EXTENSIONS(cot_ext);
|
REGISTER_EXTENSIONS(cot_ext);
|
||||||
|
|
||||||
/* Keys used to establish the chain of trust. */
|
/* Keys used to establish the chain of trust. */
|
||||||
static key_t cot_keys[] = {
|
static cert_key_t cot_keys[] = {
|
||||||
[ROT_KEY] = {
|
[ROT_KEY] = {
|
||||||
.id = ROT_KEY,
|
.id = ROT_KEY,
|
||||||
.opt = "rot-key",
|
.opt = "rot-key",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2020, Arm Limited. All rights reserved.
|
* Copyright (c) 2020-2024, Arm Limited. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -536,7 +536,7 @@ REGISTER_EXTENSIONS(cot_ext);
|
||||||
|
|
||||||
|
|
||||||
/* Keys used to establish the chain of trust. */
|
/* Keys used to establish the chain of trust. */
|
||||||
static key_t cot_keys[] = {
|
static cert_key_t cot_keys[] = {
|
||||||
[ROT_KEY] = {
|
[ROT_KEY] = {
|
||||||
.id = ROT_KEY,
|
.id = ROT_KEY,
|
||||||
.opt = "rot-key",
|
.opt = "rot-key",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2023, Arm Limited and Contributors. All rights reserved.
|
* Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -26,14 +26,14 @@
|
||||||
|
|
||||||
#define MAX_FILENAME_LEN 1024
|
#define MAX_FILENAME_LEN 1024
|
||||||
|
|
||||||
key_t *keys;
|
cert_key_t *keys;
|
||||||
unsigned int num_keys;
|
unsigned int num_keys;
|
||||||
|
|
||||||
#if !USING_OPENSSL3
|
#if !USING_OPENSSL3
|
||||||
/*
|
/*
|
||||||
* Create a new key container
|
* Create a new key container
|
||||||
*/
|
*/
|
||||||
int key_new(key_t *key)
|
int key_new(cert_key_t *key)
|
||||||
{
|
{
|
||||||
/* Create key pair container */
|
/* Create key pair container */
|
||||||
key->key = EVP_PKEY_new();
|
key->key = EVP_PKEY_new();
|
||||||
|
@ -45,7 +45,7 @@ int key_new(key_t *key)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int key_create_rsa(key_t *key, int key_bits)
|
static int key_create_rsa(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
#if USING_OPENSSL3
|
#if USING_OPENSSL3
|
||||||
EVP_PKEY *rsa = EVP_RSA_gen(key_bits);
|
EVP_PKEY *rsa = EVP_RSA_gen(key_bits);
|
||||||
|
@ -99,7 +99,7 @@ err2:
|
||||||
|
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
#if USING_OPENSSL3
|
#if USING_OPENSSL3
|
||||||
static int key_create_ecdsa(key_t *key, int key_bits, const char *curve)
|
static int key_create_ecdsa(cert_key_t *key, int key_bits, const char *curve)
|
||||||
{
|
{
|
||||||
EVP_PKEY *ec = EVP_EC_gen(curve);
|
EVP_PKEY *ec = EVP_EC_gen(curve);
|
||||||
if (ec == NULL) {
|
if (ec == NULL) {
|
||||||
|
@ -111,7 +111,7 @@ static int key_create_ecdsa(key_t *key, int key_bits, const char *curve)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int key_create_ecdsa_nist(key_t *key, int key_bits)
|
static int key_create_ecdsa_nist(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
if (key_bits == 384) {
|
if (key_bits == 384) {
|
||||||
return key_create_ecdsa(key, key_bits, "secp384r1");
|
return key_create_ecdsa(key, key_bits, "secp384r1");
|
||||||
|
@ -121,17 +121,17 @@ static int key_create_ecdsa_nist(key_t *key, int key_bits)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int key_create_ecdsa_brainpool_r(key_t *key, int key_bits)
|
static int key_create_ecdsa_brainpool_r(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
return key_create_ecdsa(key, key_bits, "brainpoolP256r1");
|
return key_create_ecdsa(key, key_bits, "brainpoolP256r1");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int key_create_ecdsa_brainpool_t(key_t *key, int key_bits)
|
static int key_create_ecdsa_brainpool_t(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
return key_create_ecdsa(key, key_bits, "brainpoolP256t1");
|
return key_create_ecdsa(key, key_bits, "brainpoolP256t1");
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static int key_create_ecdsa(key_t *key, int key_bits, const int curve_id)
|
static int key_create_ecdsa(cert_key_t *key, int key_bits, const int curve_id)
|
||||||
{
|
{
|
||||||
EC_KEY *ec;
|
EC_KEY *ec;
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ err:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int key_create_ecdsa_nist(key_t *key, int key_bits)
|
static int key_create_ecdsa_nist(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
if (key_bits == 384) {
|
if (key_bits == 384) {
|
||||||
return key_create_ecdsa(key, key_bits, NID_secp384r1);
|
return key_create_ecdsa(key, key_bits, NID_secp384r1);
|
||||||
|
@ -169,12 +169,12 @@ static int key_create_ecdsa_nist(key_t *key, int key_bits)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||||
static int key_create_ecdsa_brainpool_r(key_t *key, int key_bits)
|
static int key_create_ecdsa_brainpool_r(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
return key_create_ecdsa(key, key_bits, NID_brainpoolP256r1);
|
return key_create_ecdsa(key, key_bits, NID_brainpoolP256r1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int key_create_ecdsa_brainpool_t(key_t *key, int key_bits)
|
static int key_create_ecdsa_brainpool_t(cert_key_t *key, int key_bits)
|
||||||
{
|
{
|
||||||
return key_create_ecdsa(key, key_bits, NID_brainpoolP256t1);
|
return key_create_ecdsa(key, key_bits, NID_brainpoolP256t1);
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ static int key_create_ecdsa_brainpool_t(key_t *key, int key_bits)
|
||||||
#endif /* USING_OPENSSL3 */
|
#endif /* USING_OPENSSL3 */
|
||||||
#endif /* OPENSSL_NO_EC */
|
#endif /* OPENSSL_NO_EC */
|
||||||
|
|
||||||
typedef int (*key_create_fn_t)(key_t *key, int key_bits);
|
typedef int (*key_create_fn_t)(cert_key_t *key, int key_bits);
|
||||||
static const key_create_fn_t key_create_fn[KEY_ALG_MAX_NUM] = {
|
static const key_create_fn_t key_create_fn[KEY_ALG_MAX_NUM] = {
|
||||||
[KEY_ALG_RSA] = key_create_rsa,
|
[KEY_ALG_RSA] = key_create_rsa,
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
|
@ -194,7 +194,7 @@ static const key_create_fn_t key_create_fn[KEY_ALG_MAX_NUM] = {
|
||||||
#endif /* OPENSSL_NO_EC */
|
#endif /* OPENSSL_NO_EC */
|
||||||
};
|
};
|
||||||
|
|
||||||
int key_create(key_t *key, int type, int key_bits)
|
int key_create(cert_key_t *key, int type, int key_bits)
|
||||||
{
|
{
|
||||||
if (type >= KEY_ALG_MAX_NUM) {
|
if (type >= KEY_ALG_MAX_NUM) {
|
||||||
printf("Invalid key type\n");
|
printf("Invalid key type\n");
|
||||||
|
@ -243,7 +243,7 @@ err:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int key_load(key_t *key)
|
unsigned int key_load(cert_key_t *key)
|
||||||
{
|
{
|
||||||
if (key->fn == NULL) {
|
if (key->fn == NULL) {
|
||||||
VERBOSE("Key not specified\n");
|
VERBOSE("Key not specified\n");
|
||||||
|
@ -273,7 +273,7 @@ unsigned int key_load(key_t *key)
|
||||||
return KEY_ERR_NONE;
|
return KEY_ERR_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int key_store(key_t *key)
|
int key_store(cert_key_t *key)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
|
@ -301,7 +301,7 @@ int key_store(key_t *key)
|
||||||
int key_init(void)
|
int key_init(void)
|
||||||
{
|
{
|
||||||
cmd_opt_t cmd_opt;
|
cmd_opt_t cmd_opt;
|
||||||
key_t *key;
|
cert_key_t *key;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
keys = malloc((num_def_keys * sizeof(def_keys[0]))
|
keys = malloc((num_def_keys * sizeof(def_keys[0]))
|
||||||
|
@ -341,9 +341,9 @@ int key_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
key_t *key_get_by_opt(const char *opt)
|
cert_key_t *key_get_by_opt(const char *opt)
|
||||||
{
|
{
|
||||||
key_t *key;
|
cert_key_t *key;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
/* Sequential search. This is not a performance concern since the number
|
/* Sequential search. This is not a performance concern since the number
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define _POSIX_C_SOURCE 200809L
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
@ -69,16 +71,6 @@ static int print_cert;
|
||||||
static const char build_msg[] = "Built : " __TIME__ ", " __DATE__;
|
static const char build_msg[] = "Built : " __TIME__ ", " __DATE__;
|
||||||
static const char platform_msg[] = PLAT_MSG;
|
static const char platform_msg[] = PLAT_MSG;
|
||||||
|
|
||||||
static char *strdup(const char *str)
|
|
||||||
{
|
|
||||||
int n = strlen(str) + 1;
|
|
||||||
char *dup = malloc(n);
|
|
||||||
if (dup) {
|
|
||||||
strcpy(dup, str);
|
|
||||||
}
|
|
||||||
return dup;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *key_algs_str[] = {
|
static const char *key_algs_str[] = {
|
||||||
[KEY_ALG_RSA] = "rsa",
|
[KEY_ALG_RSA] = "rsa",
|
||||||
#ifndef OPENSSL_NO_EC
|
#ifndef OPENSSL_NO_EC
|
||||||
|
@ -178,7 +170,7 @@ static void check_cmd_params(void)
|
||||||
{
|
{
|
||||||
cert_t *cert;
|
cert_t *cert;
|
||||||
ext_t *ext;
|
ext_t *ext;
|
||||||
key_t *key;
|
cert_key_t *key;
|
||||||
int i, j;
|
int i, j;
|
||||||
bool valid_size;
|
bool valid_size;
|
||||||
|
|
||||||
|
@ -303,7 +295,7 @@ int main(int argc, char *argv[])
|
||||||
STACK_OF(X509_EXTENSION) * sk;
|
STACK_OF(X509_EXTENSION) * sk;
|
||||||
X509_EXTENSION *cert_ext = NULL;
|
X509_EXTENSION *cert_ext = NULL;
|
||||||
ext_t *ext;
|
ext_t *ext;
|
||||||
key_t *key;
|
cert_key_t *key;
|
||||||
cert_t *cert;
|
cert_t *cert;
|
||||||
FILE *file;
|
FILE *file;
|
||||||
int i, j, ext_nid, nvctr;
|
int i, j, ext_nid, nvctr;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
*
|
*
|
||||||
* The order of the keys must follow the enumeration specified in tbb_key.h
|
* The order of the keys must follow the enumeration specified in tbb_key.h
|
||||||
*/
|
*/
|
||||||
static key_t tbb_keys[] = {
|
static cert_key_t tbb_keys[] = {
|
||||||
[ROT_KEY] = {
|
[ROT_KEY] = {
|
||||||
.id = ROT_KEY,
|
.id = ROT_KEY,
|
||||||
.opt = "rot-key",
|
.opt = "rot-key",
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2023, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2016-2024, Arm Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _MSC_VER
|
#ifdef __linux__
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#include <pdef_tbb_key.h>
|
#include <pdef_tbb_key.h>
|
||||||
|
|
||||||
static key_t pdef_tbb_keys[] = {
|
static cert_key_t pdef_tbb_keys[] = {
|
||||||
[DDR_FW_CONTENT_KEY - DDR_FW_CONTENT_KEY] = {
|
[DDR_FW_CONTENT_KEY - DDR_FW_CONTENT_KEY] = {
|
||||||
.id = DDR_FW_CONTENT_KEY,
|
.id = DDR_FW_CONTENT_KEY,
|
||||||
.opt = "ddr-fw-key",
|
.opt = "ddr-fw-key",
|
||||||
|
|
Loading…
Add table
Reference in a new issue