mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-30 15:49:34 +00:00

Add the support needed to enable using CryptoCell integration with with RSA 3K support. Signed-off-by: Gilad Ben-Yossef <gilad.benyossef@arm.com> Change-Id: I95527cb0c41ae012109e8968dd20a4ae9fe67f17
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
/*
|
|
* Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef _SECURE_BOOT_GEN_DEFS_H
|
|
#define _SECURE_BOOT_GEN_DEFS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/*! @file
|
|
@brief This file contains all of the definitions and structures that are used for the secure boot.
|
|
*/
|
|
|
|
#include "cc_pal_sb_plat.h"
|
|
#include "cc_sec_defs.h"
|
|
|
|
|
|
/* General definitions */
|
|
/***********************/
|
|
|
|
/*RSA definitions*/
|
|
#if (KEY_SIZE == 2048)
|
|
#define SB_RSA_MOD_SIZE_IN_WORDS 64
|
|
#elif (KEY_SIZE == 3072)
|
|
#define SB_RSA_MOD_SIZE_IN_WORDS 96
|
|
#else
|
|
#error Unsupported CryptoCell key size requested
|
|
#endif
|
|
|
|
#define SB_RSA_HW_PKI_PKA_BARRETT_MOD_TAG_SIZE_IN_WORDS 5
|
|
|
|
|
|
/*! Public key data structure. */
|
|
typedef struct {
|
|
uint32_t N[SB_RSA_MOD_SIZE_IN_WORDS]; /*!< N public key, big endian representation. */
|
|
uint32_t Np[SB_RSA_HW_PKI_PKA_BARRETT_MOD_TAG_SIZE_IN_WORDS]; /*!< Np (Barrett n' value). */
|
|
} CCSbNParams_t;
|
|
|
|
/*! Signature structure. */
|
|
typedef struct {
|
|
uint32_t sig[SB_RSA_MOD_SIZE_IN_WORDS]; /*!< RSA PSS signature. */
|
|
} CCSbSignature_t;
|
|
|
|
|
|
/********* Supported algorithms definitions ***********/
|
|
|
|
/*! RSA supported algorithms */
|
|
/* Note: this applies to either 2k or 3k based on CryptoCell SBROM library
|
|
* version - it means 2k in version 1 and 3k in version 2 (yes, really).
|
|
*/
|
|
typedef enum {
|
|
RSA_PSS = 0x01, /*!< RSA PSS after hash SHA 256 */
|
|
RSA_PKCS15 = 0x02, /*!< RSA PKX15 */
|
|
RSA_Last = 0x7FFFFFFF
|
|
} CCSbRsaAlg_t;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|