| /* |
| * 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 |