FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_core/security/certificate.c @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_core/security/certificate.c Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,221 @@ +/* @(#) nom : certificate.c SID: 1.2 date : 02/17/03 */ +/* Filename: certificate.c */ +/* Version: 1.2 */ +/****************************************************************************** + * WIRELESS COMMUNICATION SYSTEM DEVELOPMENT + * + * (C) 2002 Texas Instruments France. All rights reserved + * + * Author : Francois AMAND + * + * + * Important Note + * -------------- + * + * This S/W is a preliminary version. It contains information on a product + * under development and is issued for evaluation purposes only. Features + * characteristics, data and other information are subject to change. + * + * The S/W is furnished under Non Disclosure Agreement and may be used or + * copied only in accordance with the terms of the agreement. It is an offence + * to copy the software in any way except as specifically set out in the + * agreement. No part of this document may be reproduced or transmitted in any + * form or by any means, electronic or mechanical, including photocopying and + * recording, for any purpose without the express written permission of Texas + * Instruments Inc. + * + ****************************************************************************** + * + * FILE NAME: firmware.c + * + * + * PURPOSE: Simulation of Firmware application located in FLASH. + * Used to generate COFF file with certificate management. + * + * + * + * FILE REFERENCES: + * + * Name IO Description + * ------------- -- --------------------------------------------- + * + * + * + * EXTERNAL VARIABLES: + * + * Source: + * + * Name Type IO Description + * ------------- --------------- -- ------------------------------ + * + * + * EXTERNAL REFERENCES: + * + * Name Description + * ------------------ ------------------------------------------------------- + * + * + * + * ABNORMAL TERMINATION CONDITIONS, ERROR AND WARNING MESSAGES: + * + * + * + * ASSUMPTION, CONSTRAINTS, RESTRICTIONS: + * + * + * + * NOTES: + * + * + * + * REQUIREMENTS/FUNCTIONAL SPECIFICATION REFERENCES: + * + * + * + * + * DEVELOPMENT HISTORY: + * + * Date Name(s) Version Description + * ---------- -------------- ------- -------------------------------------- + * + * + * ALGORITHM: + * + * + *****************************************************************************/ + +#include "l1sw.cfg" +#include "chipset.cfg" + +#if (CHIPSET == 12) + +#if (OP_L1_STANDALONE == 0) + #include "main/sys_types.h" +#else + #include "sys_types.h" +#endif + + +typedef unsigned char UWORD8; +typedef unsigned short int UWORD16; +typedef unsigned long int UWORD32; + +typedef signed long int WORD32; + +typedef unsigned char BOOLEAN; + + +#include "secure_types.h" + + +/* + * Certificate variable + */ +extern void ResetVector(void); +#pragma DATA_SECTION(d_firmware_certificate, ".cert") + +volatile const T_MANUFACTURER_CERTIFICATE d_firmware_certificate = + { + (UWORD16)sizeof(T_MANUFACTURER_CERTIFICATE), // Size of Certificate + (UWORD8)C_CERTTYPE_MAN, // Type of Certificate + (UWORD8)C_DEBUGREQUEST, // Confidentiality request + (UWORD32)0x00000000L, // Address of code + (UWORD32)0x00000000L, // Size of code : To be defined by tool + (UWORD32)ResetVector, // Entry point address + // Manufacturer Public key : To be defined by tool + { + //Public Modulus + { + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L + }, + //Public Modulus length in bytes + (UWORD32)1024/8, + //Public Exponent + 0x00000000L, + }, + // Originator Public key : To be defined by tool + { + //Public Modulus + { + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L + }, + //Public Modulus length in bytes + (UWORD32)1024/8, + //Public Exponent + 0x00000000L, + }, + // Originator Public key Signature + { + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L + }, + // Software Signature + { + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L + }, + // Configuration parameters + { + 0x0EA5, // CONF_CS5 register + 0x7BC2, // EXWS_CS5 register + 0x0000, // EX_CTRL register + C_CSIMGNOREQUEST, // CS image request + 0x01000000L, // FLASH size in bytes + 1 // Granularity in word + }, + // Certificate Signature + { + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L, + 0x00000000L, 0x00000000L, 0x00000000L, 0x00000000L + } + }; + +#endif /* (CHIPSET == 12) */