(一)创建公钥和私钥的示例

news/2024/2/27 21:13:26

        此工程提供了两个文件,rsa_private.txtrsa_public.txt。这些文件包含一个示例私钥和公钥,它们仅作为占位符提供,以帮助您使生成系统正常工作。在投入生产之前,应该将它们替换为您自己的文件。

        本节介绍如何生成一组公钥和私钥,将它们格式化为“C”格式,以及使用新密钥更新源文件。
此外,本应用程序说明还描述了带有示例驱动程序库(SDL)的示例代码。本应用程序说明中的代码片段是SDL的一部分。请参阅SDL的参考资料。请参阅sdl_additional_code_examples中16_AN228680_Scure_configuration文件夹的secure configuration.pptx以进行安全配置设置。
此示例代码应用于GHS MULTI环境的CYT2B7系列MCU。

Additional tools required

1. OpenSSL v1.0.2 or later
2. Python 3 (Required for one of the provided scripts that is used to format the public key.)
3. SDL 7.5 or later

        有几种方法可以生成RSA私钥和公钥。在以下方法中,您需要在计算机上安装OpenSSL/Python。OpenSSL的这些源代码或二进制文件可以从互联网上的几个源代码下载。

Scripts

        该项目提供了两个脚本,用于将OpenSSL的输出转换为与C和Secure Image用于存储公钥的结构兼容的格式。这些脚本在以下路径中可用:

<user>\tviibe1m\04_Util\Scripts\Key_2K, Key_3K or Key_4K
<user>: Sample project stored folder

        批处理脚本rsa_keygen.bat调用OpenSSL函数。因此,必须在您的计算机上安装OpenSSL。批处理文件创建一个名为“keys_generated”的目录。将创建两个文件,其中包含使用OpenSSL生成的私钥和公钥。“rsa_private.txt”作为私钥,“rsa_public.txt”作为公钥。
        接下来,批处理文件将调用Python脚本“rsa\o_c.py”。该脚本将生成的公钥文件中的数据格式化为与c和Cypress公钥格式兼容。输出与公钥和私钥文件一起放置在keys_generated目录中的文件rsa\o_c_generated.txt中。
下面显示了用于生成rsa-2048私钥和公钥的rsa_keygen.bat

set OUT_DIR="%~dp0\keys_generated"
set PRIV_NAME=rsa_private_generated.txt
set PUB_NAME=rsa_public_generated.txt
set PRIV_RNAME=rsa_private.txt
set PUB_RNAME=rsa_public.txt
set MOD_NAME=rsa_to_c_generated.txt
if not exist %OUT_DIR% mkdir %OUT_DIR%
:: Generate the RSA-2K public and private keys
openssl genrsa -out %OUT_DIR%\%PRIV_NAME% 2048
openssl rsa -in %OUT_DIR%\%PRIV_NAME% -outform PEM -pubout -out %OUT_DIR%\%PUB_NAME%
copy %OUT_DIR%\%PRIV_NAME% %OUT_DIR%\%PRIV_RNAME%
copy %OUT_DIR%\%PUB_NAME% %OUT_DIR%\%PUB_RNAME%
:: Create C-code ready public key
python %~dp0\rsa_to_c.py %OUT_DIR%\%PUB_NAME% > %OUT_DIR%\%MOD_NAME%

        如果为RSA-3072生成私钥和公钥,请将上面bat文件中的2048(line 9)中的文本更改为3072。如果是RSA-4096,请将文本更改为4096。

9.3 运行脚本
 

        批处理文件rsa_keygen.bat可以从命令行界面调用,也可以在Windows 7或10环境中双击(a)调用。脚本运行后,验证keys_generated文件夹(b)中是否已生成以下文件。

• rsa_private.txt (Private RSA key)
• rsa_public.txt (Public RSA key)
• rsa_to_c_generated.txt (Public key in C format)

 1、首先使用 openssl 生成一个 2048 位的密钥文件rsa_private_generated.txt (私钥),打开rsa_private_generated.txt 文件,私钥文件(RSA-2048)示例内容如下(BEGIN 和END 之间的为密钥):

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1evv29SIGUMM/2JHIhZPKVflDKB0iIu87V4zZ6WTyIh9BAJZ
qej3LUSD02JwvoejoVJZrkdUAA1jzNw5mGmbelQyMfBwal78GhYXX2BiKJfmlwob
07NSIQYfmAZGfcJzTKj/DAUK9bDNZvNhwUc8+j8zcuICAVXqzy25qwmSAXwqQuaf
wplzD3zrevOs7N9p973116F1o5AH+uacmVGb1FF7xtrPYH7P9QEALLWy4TIm1bPw
aUVKfex+PX2wdtU6YKl73HOUHXV8IAhGP8rX0H5YA6+uWv8M4RhbcjGFx764MRoL
4rsCpwhaFZtYLdfNq6uLxItF8TwUWZIGOuZY1QIDAQABAoIBAQCyaunOq2An0aiR
h+JUJ882aDx9X4ZSLFoSj7LIC21Kn6vFIECwWcFuW+qm7z+haXesIQbzOEJzGLfY
MQVIfSxTxs1moWbhEP+qsiokPjsgKDEGYEP9OV6SdIz9Op6oXPnVQk4WNE6DxEZM
S0mI7mWJQhUjCCUsAACrczOb14uS9/kUX/X79d3TRU83l4nkqvdIHmmT9UCGZynz
SBB/v7oO6txje7rQpntAlDUqD6fiveCq76kPoXQPuuHlGk27qpEUR/i5aUA/zq8D
8ig2VnDsJU8kHaDBU92y/KM550SRI6dk/NF/32TiC0An2MnyqUpvCGAV2m/ndFNp
OiJG3gUBAoGBAPk9uDcd/UdT78udQ2ttJ5qkFAR42h/G+EAQQ5tRwy7gLRabdTPq
pvdJkBTz+HYAo3sIJEGqXUEmKbNk1TdP5ZgbcameMYTXACvuzUayZ9sfGqrHmS+Q
riw6zqko4ltPQpo2qbmjz8L+5RM9NAJ9yOr7zvK2GNF4+zoVVdRxfWVRAoGBANu5
BdHkFN2WexJt8jFLA+hXSlENZ1cUvXjY/6VHGw2fbDl9Vr2N7dJhJQTuytReJEiV
fSeaHqqP38j0SjDGAUcdvZiS0GSMIo1PGw5ZjldMEMNthfVc1OG901froKp6ZQjJ
gSuTWU6suhzPe1pa5aDMSWi2WRmB4aumK1FGHupFAoGAbgPQTIPwSIvETRwdpk2I
Lbo/G7o8jcpFygFj1itA/G/3dwMnuMLa8EyITLdj9LJTdvshBdstTpSJ06Wud7vM
nFeA1F3/faNpb/r4oTwem5ofK0LvWw+B0gQjNIfXYnaZ73gxcr/b9TaN5vAdBPyA
szhzIK9ARTYhroG8YQm3UAECgYAMqbglJZDySFbldAKuRpV+EXHOBAi9owtcaJ0r
KFLt0Q9KrOeP2xsmscSRaTW1UYujx0HEQ4Sa7dnG2hVghDjUoWko3uU1tkHThQiZ
Jh4m99JLgQdkYao/LFJ+0aybxpwGCp7wJPjTqO689FQ2m+B6COv+JewypSKdYuFC
ONlVRQKBgQDfC2AcKSr8z/Ky0XiBWvlH8s1pdZQT1bjY7fpgNuJAbG2rTdTRVozB
2RYWTUTw257dL/Pq9hHIi8al83mawKOPzc1tfeiVbNRPtU7DwP2lzB4ml9UvvRJa
c1lnmciiiHj9lCTEPw3O8OsQA0Q+M3oMoe9P18mJLn6jtH0woOqWgw==
-----END RSA PRIVATE KEY-----

2. 然后从 rsa_private_generated.txt密钥文件中生成公钥 rsa_public_generated.txt(格式为pem base64编码

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1evv29SIGUMM/2JHIhZP
KVflDKB0iIu87V4zZ6WTyIh9BAJZqej3LUSD02JwvoejoVJZrkdUAA1jzNw5mGmb
elQyMfBwal78GhYXX2BiKJfmlwob07NSIQYfmAZGfcJzTKj/DAUK9bDNZvNhwUc8
+j8zcuICAVXqzy25qwmSAXwqQuafwplzD3zrevOs7N9p973116F1o5AH+uacmVGb
1FF7xtrPYH7P9QEALLWy4TIm1bPwaUVKfex+PX2wdtU6YKl73HOUHXV8IAhGP8rX
0H5YA6+uWv8M4RhbcjGFx764MRoL4rsCpwhaFZtYLdfNq6uLxItF8TwUWZIGOuZY
1QIDAQAB
-----END PUBLIC KEY-----

3、python脚本中会执行如下语句解析获取公钥

    try:# build openssl command linecmd_line = ['openssl', 'rsa', '-text', '-pubin', '-in',sys.argv[1],'-noout']output, error = subprocess.Popen(cmd_line, universal_newlines=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

sys.argv[1]为rsa_public_generated.txt输入文件

cmd_line意思是解析公钥内容,不输出公钥文本

9.4安装公钥

        最后,将生成的rsa_to_c_generated.txt文件中的代码复制到main_cm0plus.c源文件中,更新Secure Image中的公钥的,该文件是Secure Image项目的一部分。此文件更新后的示例如下所示。生成的密钥数据中的替换代码如下所示。以下是RSA-2048的示例:

/** Public key in SFlash */
CY_SECTION(".cy_SFlash_public_key") __USED const cy_si_stc_public_key_t cy_publicKey =
{.objSize = sizeof(cy_si_stc_public_key_t),.signatureScheme = 0UL,.publicKeyStruct ={.moduloAddr = CY_SI_PUBLIC_KEY + offsetof(cy_si_stc_public_key_t, moduloData),.moduloSize = CY_SI_PUBLIC_KEY_SIZEOF_BYTE * CY_SI_PUBLIC_KEY_MODULOLENGTH,.expAddr = CY_SI_PUBLIC_KEY + offsetof(cy_si_stc_public_key_t, expData),.expSize = CY_SI_PUBLIC_KEY_SIZEOF_BYTE * CY_SI_PUBLIC_KEY_EXPLENGTH,.barrettAddr = CY_SI_PUBLIC_KEY + offsetof(cy_si_stc_public_key_t, barrettData),.inverseModuloAddr = CY_SI_PUBLIC_KEY + offsetof(cy_si_stc_public_key_t,                 inverseModuloData),.rBarAddr = CY_SI_PUBLIC_KEY + offsetof(cy_si_stc_public_key_t, rBarData),},.moduloData ={0x39u, 0xAAu, 0x09u, 0x31u, 0x9Cu, 0x10u, 0x98u, 0x1Eu,0x2Bu, 0x32u, 0x5Cu, 0x3Du, 0x72u, 0x5Au, 0xFFu, 0x47u,0x26u, 0x18u, 0x63u, 0x86u, 0x65u, 0x3Fu, 0x3Bu, 0x57u,0x0Fu, 0xA6u, 0xA3u, 0x8Du, 0x21u, 0x37u, 0x60u, 0xC0u,0xF5u, 0xB2u, 0xBDu, 0x4Cu, 0xA8u, 0xE5u, 0xBAu, 0x50u,0x21u, 0xE8u, 0xA4u, 0x80u, 0x85u, 0xB1u, 0x32u, 0x9Bu,0x9Au, 0xBBu, 0xCFu, 0xBCu, 0x1Au, 0xA1u, 0x94u, 0x80u,0x48u, 0x9Au, 0x75u, 0xD0u, 0xAEu, 0x0Au, 0x6Du, 0xDAu,0x05u, 0x60u, 0x49u, 0xC5u, 0x8Eu, 0x80u, 0xA0u, 0xB0u,0xC1u, 0xA3u, 0x8Eu, 0x86u, 0x95u, 0xF6u, 0xF0u, 0xFFu,0x95u, 0xC6u, 0x98u, 0x49u, 0x52u, 0x2Du, 0x0Au, 0x0Bu,0xBCu, 0xBAu, 0x0Fu, 0xBEu, 0xC2u, 0x2Du, 0xE6u, 0x71u,0x45u, 0x7Eu, 0x6Au, 0xC2u, 0x8Fu, 0x30u, 0xF3u, 0x1Bu,0x3Du, 0xD0u, 0x14u, 0x95u, 0x19u, 0x9Au, 0x32u, 0xCAu,0x28u, 0x8Du, 0xC1u, 0x5Bu, 0xFFu, 0xD8u, 0x76u, 0x40u,0xAAu, 0x5Bu, 0x43u, 0xEBu, 0x6Eu, 0xBBu, 0x87u, 0xC4u,0x3Du, 0x3Cu, 0xE6u, 0x73u, 0x06u, 0xEEu, 0xEFu, 0x7Fu,0x43u, 0xD5u, 0x12u, 0x40u, 0x90u, 0x82u, 0x6Bu, 0x40u,0x73u, 0x2Eu, 0x15u, 0xF3u, 0x08u, 0xA8u, 0x67u, 0xFEu,0xEAu, 0x76u, 0x41u, 0xFEu, 0xD3u, 0x5Du, 0x36u, 0x5Bu,0x45u, 0x42u, 0x5Cu, 0xD7u, 0xE7u, 0x79u, 0xA0u, 0xDFu,0xF8u, 0xBAu, 0x12u, 0x21u, 0x2Eu, 0x3Au, 0x36u, 0x6Du,0xF6u, 0x79u, 0x16u, 0xB5u, 0x77u, 0x5Du, 0x80u, 0xB3u,0xADu, 0x09u, 0x85u, 0xACu, 0xD4u, 0x9Eu, 0x98u, 0x06u,0xFFu, 0xAEu, 0x35u, 0xAFu, 0x1Au, 0xBFu, 0xC6u, 0x7Du,0xB9u, 0xCBu, 0x89u, 0x30u, 0x02u, 0xEBu, 0x88u, 0xE8u,0x58u, 0xC8u, 0x42u, 0x73u, 0x46u, 0xDDu, 0x01u, 0x58u,0x8Fu, 0xAEu, 0xAFu, 0x88u, 0x74u, 0x93u, 0x15u, 0xA5u,0x4Cu, 0xEEu, 0x5Cu, 0x5Au, 0x21u, 0xADu, 0x8Cu, 0x99u,0x09u, 0x1Cu, 0x31u, 0x1Bu, 0x64u, 0x37u, 0x02u, 0x23u,0xE1u, 0x01u, 0xC6u, 0x6Cu, 0x4Cu, 0x77u, 0xBCu, 0xD7u,0xC9u, 0x6Eu, 0xC9u, 0x30u, 0x92u, 0xD2u, 0x52u, 0xB3u,},.expData ={0x01u, 0x00u, 0x01u, 0x00u,},.barrettData ={0xA2u, 0x78u, 0x5Cu, 0x68u, 0x49u, 0xBBu, 0x85u, 0xD6u,0xF0u, 0x36u, 0xE3u, 0xAAu, 0xF7u, 0x33u, 0x48u, 0x40u,0xC2u, 0xE2u, 0x75u, 0x03u, 0x7Eu, 0x18u, 0xCAu, 0x0Bu,0x21u, 0xF3u, 0xDFu, 0x70u, 0xF4u, 0x73u, 0xBCu, 0x4Bu,0xA2u, 0xFDu, 0x98u, 0x3Cu, 0x71u, 0x20u, 0xD3u, 0xECu,0x57u, 0xC4u, 0xFEu, 0xE5u, 0xBBu, 0x38u, 0xEEu, 0x0Bu,0x38u, 0x25u, 0xA5u, 0x0Au, 0xABu, 0xF5u, 0x88u, 0xE5u,0x8Eu, 0x98u, 0xA7u, 0xA6u, 0x6Du, 0x2Fu, 0x12u, 0x40u,0xC3u, 0x2Du, 0xD5u, 0x34u, 0x15u, 0x7Du, 0x6Au, 0x18u,0xE8u, 0x64u, 0x3Au, 0x47u, 0x1Eu, 0xAFu, 0x0Cu, 0x8Eu,0x75u, 0xE0u, 0x39u, 0x2Cu, 0x09u, 0x8Cu, 0xE0u, 0x96u,0x6Du, 0xD4u, 0xB4u, 0x9Bu, 0x77u, 0xF0u, 0xA8u, 0xDAu,0x7Cu, 0x60u, 0x09u, 0xF0u, 0x82u, 0xACu, 0x68u, 0x14u,0x46u, 0xEEu, 0x1Du, 0xF7u, 0xCCu, 0x45u, 0xE8u, 0xCAu,0x83u, 0x5Au, 0x19u, 0x74u, 0x1Bu, 0xEFu, 0xBAu, 0x98u,0x4Bu, 0xC7u, 0x20u, 0x97u, 0x15u, 0xC8u, 0x8Bu, 0x17u,0x09u, 0x06u, 0xB3u, 0x6Fu, 0x85u, 0x7Du, 0xC5u, 0x72u,0xDCu, 0xD3u, 0x8Du, 0x14u, 0x12u, 0x8Bu, 0x6Cu, 0x81u,0x33u, 0x6Fu, 0x57u, 0xF2u, 0x3Bu, 0x1Fu, 0x66u, 0x1Cu,0xF9u, 0x3Au, 0xE3u, 0xE3u, 0x3Eu, 0x1Du, 0x86u, 0xDCu,0xDCu, 0x85u, 0x29u, 0xD2u, 0x83u, 0x35u, 0x83u, 0x1Du,0x44u, 0x51u, 0xD3u, 0x68u, 0x74u, 0x6Au, 0xBFu, 0xAEu,0x3Eu, 0xCDu, 0x2Bu, 0xC6u, 0x7Fu, 0xDDu, 0xB5u, 0xB8u,0x3Eu, 0x6Au, 0xEFu, 0x72u, 0x14u, 0xE9u, 0x56u, 0xBEu,0xD0u, 0xD2u, 0xA0u, 0xA5u, 0x0Du, 0x68u, 0xA4u, 0x4Du,0x76u, 0x7Au, 0x1Fu, 0xDFu, 0xD8u, 0x19u, 0x84u, 0x4Cu,0x5Eu, 0xE4u, 0x5Fu, 0x1Au, 0xD7u, 0x7Bu, 0x79u, 0xCEu,0xF9u, 0xFFu, 0x2Fu, 0x0Au, 0xFFu, 0xC5u, 0x3Au, 0xA8u,0xFAu, 0x62u, 0xC5u, 0xDEu, 0x75u, 0xE7u, 0x22u, 0x01u,0x4Du, 0x48u, 0x15u, 0x76u, 0x79u, 0x35u, 0x25u, 0x9Du,0x33u, 0x0Fu, 0xFAu, 0xA5u, 0xE7u, 0x41u, 0xEDu, 0x06u,0xD0u, 0x83u, 0x4Bu, 0xC4u, 0xA4u, 0x5Du, 0x76u, 0x6Du,0x01u, 0x00u, 0x00u, 0x00u,},.inverseModuloData ={0xF7u, 0xDBu, 0x7Eu, 0xBBu, 0x40u, 0x73u, 0x6Eu, 0x72u,0xEFu, 0xA6u, 0x8Au, 0x7Fu, 0x8Au, 0x28u, 0x8Du, 0xB5u,0x35u, 0x2Fu, 0xD7u, 0x6Cu, 0x67u, 0x0Au, 0xBAu, 0xE3u,0x0Cu, 0xFEu, 0x8Fu, 0xDBu, 0x86u, 0xA7u, 0x3Cu, 0xC4u,0xACu, 0x26u, 0xF9u, 0x57u, 0x82u, 0xCAu, 0x66u, 0xC9u,0x76u, 0x9Fu, 0x3Bu, 0x36u, 0x38u, 0x14u, 0x72u, 0xF2u,0x28u, 0xFCu, 0xBDu, 0x2Eu, 0xFDu, 0x65u, 0x89u, 0x35u,0x78u, 0x7Du, 0x99u, 0x07u, 0x1Au, 0x53u, 0xC8u, 0x3Eu,0x51u, 0xD3u, 0xF2u, 0xFDu, 0xCEu, 0x92u, 0x8Fu, 0x10u,0xD2u, 0x27u, 0xC7u, 0xCCu, 0x0Fu, 0xF4u, 0xC9u, 0xAEu,0xCEu, 0x50u, 0x68u, 0x8Cu, 0x76u, 0xE9u, 0x91u, 0xD9u,0x42u, 0x55u, 0x1Fu, 0x25u, 0x04u, 0xB1u, 0xBDu, 0xABu,0xA1u, 0x16u, 0xBCu, 0xD7u, 0x2Cu, 0x8Bu, 0x55u, 0xC2u,0x02u, 0x96u, 0x04u, 0x44u, 0xB4u, 0x71u, 0x88u, 0xF9u,0x79u, 0xD0u, 0xF0u, 0x2Du, 0x58u, 0xF9u, 0x93u, 0xD5u,0x91u, 0x24u, 0xB8u, 0x2Bu, 0xA9u, 0x3Eu, 0x6Au, 0xE3u,0x07u, 0x44u, 0xDCu, 0xD5u, 0x8Du, 0xB1u, 0xA3u, 0xC3u,0x09u, 0x57u, 0xC5u, 0x9Au, 0xAEu, 0x93u, 0x0Cu, 0xEEu,0x29u, 0xEAu, 0x03u, 0x41u, 0xD0u, 0xE6u, 0xA1u, 0xFFu,0x65u, 0x02u, 0x17u, 0x7Eu, 0x31u, 0x3Cu, 0x00u, 0x4Cu,0xA9u, 0x32u, 0xF3u, 0xC6u, 0x8Du, 0xA9u, 0x33u, 0xDBu,0x62u, 0x23u, 0x4Eu, 0xE3u, 0x1Au, 0xEAu, 0x97u, 0x60u,0xA8u, 0x34u, 0xE3u, 0x3Bu, 0x96u, 0xBCu, 0xE5u, 0x2Fu,0xC2u, 0x66u, 0x40u, 0xE6u, 0xFFu, 0x92u, 0x84u, 0xF6u,0x38u, 0xB7u, 0x59u, 0x81u, 0x96u, 0xEFu, 0x1Fu, 0xD9u,0xA9u, 0x20u, 0x8Bu, 0xB2u, 0x77u, 0x49u, 0x0Fu, 0xA9u,0x0Fu, 0x7Fu, 0x60u, 0xD4u, 0x6Bu, 0xBAu, 0xC6u, 0x73u,0xA2u, 0x25u, 0x44u, 0xA2u, 0xEAu, 0x91u, 0xDBu, 0xA3u,0xC2u, 0x8Cu, 0x27u, 0x38u, 0xFCu, 0xEAu, 0xFEu, 0x00u,0x6Du, 0x93u, 0xB6u, 0x0Du, 0xF8u, 0x74u, 0xFDu, 0x14u,0xC7u, 0xD5u, 0xE7u, 0x7Du, 0x32u, 0x08u, 0x52u, 0x8Du,0xACu, 0x66u, 0x03u, 0x4Fu, 0xA9u, 0x33u, 0xA0u, 0x7Bu,},.rBarData ={0xC7u, 0x55u, 0xF6u, 0xCEu, 0x63u, 0xEFu, 0x67u, 0xE1u,0xD4u, 0xCDu, 0xA3u, 0xC2u, 0x8Du, 0xA5u, 0x00u, 0xB8u,0xD9u, 0xE7u, 0x9Cu, 0x79u, 0x9Au, 0xC0u, 0xC4u, 0xA8u,0xF0u, 0x59u, 0x5Cu, 0x72u, 0xDEu, 0xC8u, 0x9Fu, 0x3Fu,0x0Au, 0x4Du, 0x42u, 0xB3u, 0x57u, 0x1Au, 0x45u, 0xAFu,0xDEu, 0x17u, 0x5Bu, 0x7Fu, 0x7Au, 0x4Eu, 0xCDu, 0x64u,0x65u, 0x44u, 0x30u, 0x43u, 0xE5u, 0x5Eu, 0x6Bu, 0x7Fu,0xB7u, 0x65u, 0x8Au, 0x2Fu, 0x51u, 0xF5u, 0x92u, 0x25u,0xFAu, 0x9Fu, 0xB6u, 0x3Au, 0x71u, 0x7Fu, 0x5Fu, 0x4Fu,0x3Eu, 0x5Cu, 0x71u, 0x79u, 0x6Au, 0x09u, 0x0Fu, 0x00u,0x6Au, 0x39u, 0x67u, 0xB6u, 0xADu, 0xD2u, 0xF5u, 0xF4u,0x43u, 0x45u, 0xF0u, 0x41u, 0x3Du, 0xD2u, 0x19u, 0x8Eu,0xBAu, 0x81u, 0x95u, 0x3Du, 0x70u, 0xCFu, 0x0Cu, 0xE4u,0xC2u, 0x2Fu, 0xEBu, 0x6Au, 0xE6u, 0x65u, 0xCDu, 0x35u,0xD7u, 0x72u, 0x3Eu, 0xA4u, 0x00u, 0x27u, 0x89u, 0xBFu,0x55u, 0xA4u, 0xBCu, 0x14u, 0x91u, 0x44u, 0x78u, 0x3Bu,0xC2u, 0xC3u, 0x19u, 0x8Cu, 0xF9u, 0x11u, 0x10u, 0x80u,0xBCu, 0x2Au, 0xEDu, 0xBFu, 0x6Fu, 0x7Du, 0x94u, 0xBFu,0x8Cu, 0xD1u, 0xEAu, 0x0Cu, 0xF7u, 0x57u, 0x98u, 0x01u,0x15u, 0x89u, 0xBEu, 0x01u, 0x2Cu, 0xA2u, 0xC9u, 0xA4u,0xBAu, 0xBDu, 0xA3u, 0x28u, 0x18u, 0x86u, 0x5Fu, 0x20u,0x07u, 0x45u, 0xEDu, 0xDEu, 0xD1u, 0xC5u, 0xC9u, 0x92u,0x09u, 0x86u, 0xE9u, 0x4Au, 0x88u, 0xA2u, 0x7Fu, 0x4Cu,0x52u, 0xF6u, 0x7Au, 0x53u, 0x2Bu, 0x61u, 0x67u, 0xF9u,0x00u, 0x51u, 0xCAu, 0x50u, 0xE5u, 0x40u, 0x39u, 0x82u,0x46u, 0x34u, 0x76u, 0xCFu, 0xFDu, 0x14u, 0x77u, 0x17u,0xA7u, 0x37u, 0xBDu, 0x8Cu, 0xB9u, 0x22u, 0xFEu, 0xA7u,0x70u, 0x51u, 0x50u, 0x77u, 0x8Bu, 0x6Cu, 0xEAu, 0x5Au,0xB3u, 0x11u, 0xA3u, 0xA5u, 0xDEu, 0x52u, 0x73u, 0x66u,0xF6u, 0xE3u, 0xCEu, 0xE4u, 0x9Bu, 0xC8u, 0xFDu, 0xDCu,0x1Eu, 0xFEu, 0x39u, 0x93u, 0xB3u, 0x88u, 0x43u, 0x28u,0x36u, 0x91u, 0x36u, 0xCFu, 0x6Du, 0x2Du, 0xADu, 0x4Cu,},
};

        Cy_FB_Isvalidkey可以检查公钥结构是否有效。See the “Flash Boot” chapter in the architecture TRM [2] for more details。
        根据RSA密钥的大小,需要在以下文件中更改公钥格式的模数位长度

<user>\ tviibe1m\src\cy_si_keystorage.h
<user>: Sample project stored folder
 

#define CY_SI_PUBLIC_KEY_MODULOLENGTH (256UL) /**< Modulus length of the RSA 2K key */
//#define CY_SI_PUBLIC_KEY_MODULOLENGTH (384UL) /**< Modulus length of the RSA 3K key */
//#define CY_SI_PUBLIC_KEY_MODULOLENGTH (512UL) /**< Modulus length of the RSA 4K key */


http://www.ppmy.cn/news/857077.html

相关文章

你为什么没有男朋友

一月。放寒假&#xff0c;买票回家。小A托老乡学长代买&#xff0c;请饭答谢&#xff0c;一来二去&#xff0c;学长遂成男友&#xff1b; 一月。放寒假&#xff0c;你自己半夜去车站排队。然后&#xff0c;就没有然后了。 二月。同学聚会&#xff0c;小B与当年暧昧的男同学的再…

jflash(jfla是谁)

jlink jflash怎么烧写程序 仿真器驱动装好了吗 换一款芯片试试&#xff0c;如果也不行到话&#xff0c;仿真器重新更新一下固件&#xff1b;如果别的芯片可以到话&#xff0c;仿真器没问题&#xff0c;需要在芯片上电之前&#xff0c;将BOOT0引脚拉高&#xff0c;然后上电&…

假期训练计划

如果想要在icpc的战场上面拥有一席之地&#xff0c;离不开对codeforce的大量练习,如果想拿到牌子&#xff0c;分数必须在2100的分数段上才能有可能&#xff0c;因此我制定了接下来的训练计划 计划 大体上来说&#xff1a;大道至简&#xff0c;越简单越好&#xff1a;一天三套di…

逆波兰式是什么?

1. 逆波兰式是什么&#xff1f; 逆波兰式&#xff0c;也称逆波兰记法&#xff08;Reverse Polish Notation&#xff0c;缩写为RPN&#xff09;&#xff0c;是一种在数学和计算机科学中用于表示算术表达式的方法。它的特点是操作符在操作数的后面&#xff0c;不需要括号来改变运…

PTA公路村村通

题目 现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09…

7-9 公路村村通

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;&#…

关于卫星互联网的最强入门科普

小枣君&#xff1a;今天这篇文章&#xff0c;是《风雨沧桑50年&#xff1a;中国卫星通信的发展历程》系列文章的最后一篇&#xff08;下篇&#xff09;。 最近十年以来&#xff0c;整个社会对卫星通信的关注度不断提升&#xff0c;各种新闻报道层出不穷。 究其原因&#xff0c;…

09-最小生成树 公路村村通

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;&…

DS村村通工程(Kruskal算法)

题目描述 "村村通"是国家一个系统工程&#xff0c;其包涵有&#xff1a;公路、电力、生活和饮用水、电话网、有线电视网、互联网等等。 村村通公路工程&#xff0c;是国家为构建和谐社会&#xff0c;支持新农村建设的一项重大举措&#xff0c;是一项民心工程。又称…

P1536 村村通题解【并查集】

村村通 题目描述 某市调查城镇交通状况,得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。市政府 “村村通工程” 的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要相互之间可达即可)。请你计算出最少还需要建设多少条道路? 输入…

村村通 c语言实现

村村通设计系统 设计目的 在计算机科学中&#xff0c;数据结构是一般程序设计的基础。通过综合设计&#xff0c;使学生学会分析研究数据结构的特征&#xff0c;以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法&#xff0c;掌握算法的时间复杂度分析技术。另一方…

DS村村通工程(Prim算法)

题目描述 "村村通"是国家一个系统工程&#xff0c;其包涵有&#xff1a;公路、电力、生活和饮用水、电话网、有线电视网、互联网等等。 村村通公路工程&#xff0c;是国家为构建和谐社会&#xff0c;支持新农村建设的一项重大举措&#xff0c;是一项民心工程。又称…

公路村村通——求最小生成树

题目描述 现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;…

P1536 村村通 并查集

题目&#xff1a; 样例&#xff1a; input: 4 2 1 3 4 3 3 3 1 2 1 3 2 3 5 2 1 2 3 5 999 0 0 output: 1 0 2 998 思路&#xff1a; 如果道路数量为0&#xff0c;则直接输出n-1。如果不为0&#xff0c;则在输入后&#xff0c;求出有几个fa,然后-1(把几个fa连起来所需的线条个…

八、图(下):公路村村通

目录 题目描述代码解题思路和出现的问题 题目描述 现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和…

村村通

题目描述 某市调查城镇交通状况&#xff0c;得到现有城镇道路统计表。表中列出了每条道路直接连通的城镇。市政府“村村通工程”的目标是使全市任何两个城镇间都可以实现交通&#xff08;但不一定有直接的道路相连&#xff0c;只要相互之间可达即可&#xff09;。请你计算出最少…

公路村村通

公路村村通 现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#…

PTA 公路村村通(Prim思想)

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;&…

08-图7 公路村村通

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤&#xff09;和候选道路数目M&#xff08;≤&#xff09;&#xff1b…

pta7-2 公路村村通

现有村落间道路的统计数据表中&#xff0c;列出了有可能建设成标准公路的若干条道路的成本&#xff0c;求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N&#xff08;≤1000&#xff09;和候选道路数目M&#xff08;≤3N&#xff09;&…
最新文章