吃什么能提升血小板| 奉献是什么意思| 中药一剂是什么意思| 更年期失眠吃什么药调理效果好| 更年期潮热出汗吃什么药| 李白有什么之称| 睡觉嗓子干是什么原因| 做梦梦见死去的亲人是什么意思| 怀孕了为什么还会出血| 鳄鱼的天敌是什么动物| 阳痿吃什么药| 月经提前10天正常吗是什么原因| 有人的地方就有江湖什么意思| 211属于什么大学| 偏头痛吃什么药效果好| 孕妇感冒挂什么科| 一天吃一个苹果有什么好处| vps是什么| 郑字五行属什么| 四点底和什么有关| 笑气是什么气体| 两面三刀是什么生肖| 二级建造师什么时候出成绩| 多西他赛是什么药| 什么动物怕热| 梦见在河里抓鱼是什么征兆| 十一月二十五是什么星座| 魏大勋什么星座| ol是什么| 什么是佛跳墙| 太阴是什么意思| 性生活后尿路感染是什么原因| 他不懂你的心假装冷静是什么歌| 杯酒释兵权是什么意思| 有什么蔬菜| 2012年什么年| 剑桥英语和新概念英语有什么区别| 什么叫转基因| 梦见被狗追是什么意思| 什么的天安门| 家里为什么有隐翅虫| 异型增生是什么意思啊| eb病毒是什么| 苍蝇是什么味道| 皮革胃是什么意思| 牙齿出血是什么病| 志字五行属什么| 吃什么可以增强抵抗力和免疫力| 感染性腹泻吃什么药| 湿疹是什么原因造成的| 神是什么偏旁| 10月11号是什么星座| 打狂犬疫苗后注意什么| br是什么意思| 冬至广东吃什么| 经常闪腰是什么原因引起的| 歧途什么意思| ad是什么的缩写| 白手起家是什么生肖| 打粉是什么意思| 牛顿发明了什么| 沸点是什么意思| 可乐饼为什么叫可乐饼| 肺结节增殖灶什么意思| 什么水果对皮肤好| 猕猴桃什么季节成熟| 海姆立克急救法是什么| 什么是佝偻病有什么症状| 间质性肺炎是什么意思| 济公是什么罗汉| 胃上面是什么器官| maggie是什么意思| 狗哭了代表什么预兆| 孩子磨牙是什么原因| 华在姓氏里读什么| 占是什么意思| 出栏是什么意思| 无功无过是什么意思| 血清钙偏高是什么原因| 五脏六腑指的是什么| 性张力是什么意思| 坎宅是什么意思| 痛风石是什么| 毛肚是什么动物身上的| 胸闷气短吃什么药疗效比较好| 什么原因导致高血压| 9月初是什么星座| 气血两虚吃什么补最快| 梦见自己怀孕大肚子是什么预兆| 问加一笔是什么字| 好事多磨什么意思| 美国为什么打朝鲜| 跟风是什么意思| 嘴巴经常长溃疡是什么原因| 手指甲有月牙代表什么| 天河水命是什么意思| 脖子长痘是什么原因引起的| 月经推迟量少是什么原因| 别有什么什么| giada是什么牌子| 铁补多了有什么副作用| 白葡萄酒配什么食物| 安慰什么意思| 欧金金什么意思| 科目一考试需要带什么| 为什么来完月经下面痒| 五香粉是什么| 阴超是检查什么的| 食之无味什么意思| 小孩疳积有什么症状| 人流后什么时候来月经| 什么运动有助于长高| 什么是唐氏儿| 喝酒后不能吃什么药| 淋球菌是什么病| 夜间尿多是什么原因| 亚麻是什么植物| 唇炎看什么科最好| 青黄不接是什么意思| 鹞子是什么鸟| 夕阳无限好只是近黄昏是什么意思| 钟鸣鼎食是什么意思| 失眠什么药最好| 泌尿科看什么病| 什么的哲理| hys是什么意思| 李登辉是什么人| 养什么鱼招财转运| 什么的猴子| 体检胸片是检查什么的| 冷面是用什么面做的| 一月份生日是什么星座| 副乳挂什么科| 子宫内膜脱落是什么原因| mri是什么检查| 胃疼吃什么药最好| 细胞学说揭示了什么| 做梦梦到蛆是什么意思| 脸上痒是什么原因| 血小板减少有什么症状| 淋巴结肿大是什么样子| 孕妇吃维生素c有什么好处| 石斛是什么东西| 单脱是什么意思| 奇怪的什么| 三月初九是什么星座| 佛法无边是什么生肖| cov是什么意思| 喝酒不能吃什么| 嗤笑什么意思| 857是什么意思| 女人喝劲酒有什么好处| 甲沟炎是什么症状| 最毒的蛇是什么蛇| 高中校长什么级别| 男人气虚吃什么补得快| 压迫硬膜囊是什么意思| 月亮什么时候是圆的| 白细胞低要吃什么| 农历十月是什么月| 海绵体供血不足吃什么药| hcg值低是什么原因| 胸腔积液是什么原因造成的| 倾倒是什么意思| 秋天是什么时候| 什么是静脉血栓| 七夕节是什么意思| 地包天是什么意思| 玉对人身体健康有什么好处| 肾动脉彩超主要查什么| 尿路感染吃什么药好得快| 平行班是什么意思| 什么颜色的床单有助于睡眠| 梦见一群羊是什么意思| 女人血稠吃什么食物好| 肚子中间疼是什么原因| 膝盖不舒服挂什么科| 市政府办公室主任是什么级别| 长期服用二甲双胍有什么副作用| 高考三百多分能上什么学校| 什么疾什么快| 胎儿头围偏大什么原因| 咳嗽买什么药| 定海神针什么意思| 口腔溃疡为什么那么痛| 早泄什么症状| 列文虎克发明了什么| 害羞的近义词是什么| 无名指和食指一样长代表什么| 口臭口干口苦是什么原因| 贫血貌是什么表现| 肠系膜脂膜炎是什么病| 宀与什么有关| 后腰左侧疼痛是什么原因男性| 弊是什么意思| 大吉大利是什么生肖| 露水夫妻是什么意思| 头发细软是什么原因| 降血糖喝什么茶好| 女性吃辅酶q10有什么好处| youngor是什么牌子| 小儿积食吃什么药| 膀胱破裂什么症状| 十二月六号是什么星座| 血虚吃什么好| 心肌标志物是查什么的| 关节痛吃什么药| 鱿鱼属于什么类| 喝柠檬水有什么好处| 腰疼是什么原因引起的女性| 血气是什么意思| 继发不孕什么意思| 犯罪心理学属于什么专业| 猫上门为什么不能赶走| 腹腔淋巴结是什么意思| 口腔溃疡可以吃什么药| 尿频是什么原因引起的| 牙齿出血是什么原因| 唇红齿白是什么生肖| 米放什么不生虫子| 骨折长骨痂有什么反应| 平衡液又叫什么名字| 淘宝什么时候有活动| 请多指教是什么意思| 左腹部疼是什么原因| 总是心慌是什么原因| 开户名是什么| 脾脏大是什么原因| 接触是什么意思| 12.29是什么星座| 糖化血红蛋白高是什么意思| 控制欲强的人最怕什么| 葛粉吃了有什么好处| 阴毛是什么| 单三是什么| 痨病是什么病| 高回声是什么意思| 境字五行属什么| 茂密的枝叶像什么| 沐字五行属什么| 什么的莲蓬| 顺理成章是什么意思| 尿液中有血是什么原因| 招蚊子咬是什么原因| 梅毒螺旋体抗体阳性是什么意思| 盗汗和自汗有什么区别| 吃什么东西补血快| 吃什么食物可以降尿酸| 活检是什么检查| 早上8点属于什么时辰| 家里为什么有蟑螂| 增加胃动力最好的药是什么药| 阎王是什么意思| 多吃核桃有什么好处和坏处| 舌头有裂纹是什么原因| 胎盘早剥是什么意思| 石斛主治什么| 褪黑素有什么用| 民航是什么意思| 小孩突然抽搐失去意识是什么原因| gender什么意思| 潴留性囊肿是什么意思| 护照补办需要什么材料| 麦芽是什么| 百度
打印
[其他ST产品]

点入移动李勇谈团队管理 谋变和文化凝聚的大智慧

[复制链接]
1804|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
概述
ST官方在很多年前就推出了自己的加密库,配合ST芯片用起来非常方便,支持ST的所有MCU,官方已经给出了例程,移植起来非常简单方便,其他厂家Cotex-M内核芯片应该也可以使用吧,没试过,各位看官可以试一下,我使用的是最新版的V4.0.2 / 13-March-2023,下面也是以该版本进行移植。



STM32 Cryptographic V4版本下载(建议使用V4,比上一代优化了):

X-CUBE-CRYPTOLIB - STM32 cryptographic firmware library software expansion for STM32Cube - STMicroelectronics

V3版本下载:

X-CUBE-CRYPTO-V3 - STM32 cryptographic firmware library software expansion for STM32Cube (UM1924) - STMicroelectronics



所有Cryptolib V4相关的文档都通过STM32 MCU Wiki以网页形式提供,不再提供单独的UM和其他文档,官方文档:


Category:Cryptographic library - stm32mcu (stmicroelectronics.cn)



沙发
实际测量不符|  楼主 | 2025-08-04 14:49 | 只看该作者
V3版本与V4版本比较




板凳
实际测量不符|  楼主 | 2025-08-04 14:49 | 只看该作者
V4的参考例程则类似Cube/X-Cube包的结构,在Projects目录下的各个系列的子目录中提供。
新版本示例工程支持的系列包括STM32G0,STM32G4
STM32H7
STM32L0,STM32L1,STM32L4,STM32L5,STM32U5 (V4.0.1中包含)
STM32WB,STM32WL


地板
实际测量不符|  楼主 | 2025-08-04 14:49 | 只看该作者
移植
下载下加密库后,其文件夹各内容如下所示:

5
实际测量不符|  楼主 | 2025-08-04 14:50 | 只看该作者
在【projects】文件夹下有很多ST的芯片的不同加密算法的加密实例,我们自己写程序时就可以参考里面的实例进行修改和使用,如下所示:
6
实际测量不符|  楼主 | 2025-08-04 14:50 | 只看该作者
我们移植主要使用的是【\Middlewares\ST\STM32_Cryptographic】这个文件里的内容,你可以简单粗暴直接把STM32_Cryptographic文件夹复制到工程文件里,也可以只复制【include】【lib】和【interface】这3个文件夹到工程文件里,我们加密算法使用的就是这两个文件夹里的文件。其中需要注意的是【interface】这个文件夹里存放的【cmox_low_level_template.c】文件是芯片CRC使能和失能的配置文件,ST的加密库需要打开CRC才能使用,我们需要根据所使用的芯片编修改该文件;【include】文件存放的是一些头文件,不需要修改,【lib】文件夹存放的是加密库文件,根据不同的内核选择加密库;注意:V3版本的加密库使用的不是以内核来划分的。
7
实际测量不符|  楼主 | 2025-08-04 14:50 | 只看该作者
修改Keil工程添加文件:
1.将【include】文件中的头文件包含在工程中

8
实际测量不符|  楼主 | 2025-08-04 14:50 | 只看该作者
2.添加加密库lib文件中.a后缀的库,我这里是M4内核的
9
实际测量不符|  楼主 | 2025-08-04 14:51 | 只看该作者
如果添加的.a后缀编译不识别就进行如下操作配置成库文件:

10
实际测量不符|  楼主 | 2025-08-04 14:51 | 只看该作者
3.将cmox_low_level_template.c改成cmox_low_level.c文件添加到工程中(改不改都无所谓,添加进来就行),然后在cmox_ll_init()函数内修改为自己使用芯片的CRC使能配置;
11
实际测量不符|  楼主 | 2025-08-04 14:51 | 只看该作者
原cmox_low_level_template.c文件:
#include "cmox_init.h"
#include "cmox_low_level.h"
/* #include "stm32<series>xx_hal.h" */

/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]          CMOX library low level initialization
  * @param          pArg User defined parameter that is transmitted from initialize service
  * @retval         Initialization status: [url=home.php?mod=space&uid=144993]@ref[/url] CMOX_INIT_SUCCESS / @ref CMOX_INIT_FAIL
  */
cmox_init_retval_t cmox_ll_init(void *pArg)
{
  (void)pArg;
  /* Ensure CRC is enabled for cryptographic processing */
  __HAL_RCC_CRC_RELEASE_RESET();
  __HAL_RCC_CRC_CLK_ENABLE();
  return CMOX_INIT_SUCCESS;
}

/**
  * @brief          CMOX library low level de-initialization
  * @param          pArg User defined parameter that is transmitted from finalize service
  * @retval         De-initialization status: @ref CMOX_INIT_SUCCESS / @ref CMOX_INIT_FAIL
  */
cmox_init_retval_t cmox_ll_deInit(void *pArg)
{
  (void)pArg;
  /* Do not turn off CRC to avoid side effect on other SW parts using it */
  return CMOX_INIT_SUCCESS;
}
12
实际测量不符|  楼主 | 2025-08-04 14:51 | 只看该作者
修改为我使用的F411芯片的CRC使能:

/**
  ******************************************************************************
  * @file    cmox_low_level_template.c
  * @brief
  ******************************************************************************
  * @attention
  *
  * Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.
  *
  * This software is licensed under terms that can be found in the LICENSE file
  * in the root directory of this software component.
  * If no LICENSE file comes with this software, it is provided AS-IS.
  *
  ******************************************************************************
  */

#include "cmox_init.h"
#include "cmox_low_level.h"
#include "stm32f4xx.h"
/* #include "stm32<series>xx_hal.h" */

/**
  * @brief          CMOX library low level initialization
  * @param          pArg User defined parameter that is transmitted from initialize service
  * @retval         Initialization status: @ref CMOX_INIT_SUCCESS / @ref CMOX_INIT_FAIL
  */
cmox_init_retval_t cmox_ll_init(void *pArg)
{
  (void)pArg;
  /* Ensure CRC is enabled for cryptographic processing */
        RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_CRC, DISABLE);   //失能CRC
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);    //使能CRC时钟
  return CMOX_INIT_SUCCESS;
}

/**
  * @brief          CMOX library low level de-initialization
  * @param          pArg User defined parameter that is transmitted from finalize service
  * @retval         De-initialization status: @ref CMOX_INIT_SUCCESS / @ref CMOX_INIT_FAIL
  */
cmox_init_retval_t cmox_ll_deInit(void *pArg)
{
  (void)pArg;
  /* Do not turn off CRC to avoid side effect on other SW parts using it */
  return CMOX_INIT_SUCCESS;
}

13
实际测量不符|  楼主 | 2025-08-04 14:51 | 只看该作者
移植步骤就做完了,下面进行验证
14
实际测量不符|  楼主 | 2025-08-04 14:52 | 只看该作者
验证加密库
验证的话可以直接在移植文件夹的【Projects】内找到相同内核的芯片选择一个你要使用的加密方式将其main文件拷贝到你的工程中修改后进行验证,我这里使用的是AES加密,程序如下:
#include "main.h"
#include "communicate.h"
#include "cmox_crypto.h"

int lv_usart1_init(void);
int lv_delay_init(void);

/* Global variables ----------------------------------------------------------*/
/* CBC context handle */
cmox_cbc_handle_t Cbc_Ctx;

//__IO TestStatus glob_status = FAILED;
/* Private typedef -----------------------------------------------------------*/
/* Private defines -----------------------------------------------------------*/
#define CHUNK_SIZE  48u   /* Chunk size (in bytes) when data to encrypt or decrypt are processed by chunk */
/* Private macros ------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/

//密钥
const uint8_t Key[] =
{
    0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
};
//偏移量
const uint8_t IV[] =
{
    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
};
const uint8_t Plaintext[] =
{
    0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a,
    0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51,
    0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef,
    0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10
};
const uint8_t Expected_Ciphertext[] =
{
    0x76, 0x49, 0xab, 0xac, 0x81, 0x19, 0xb2, 0x46, 0xce, 0xe9, 0x8e, 0x9b, 0x12, 0xe9, 0x19, 0x7d,
    0x50, 0x86, 0xcb, 0x9b, 0x50, 0x72, 0x19, 0xee, 0x95, 0xdb, 0x11, 0x3a, 0x91, 0x76, 0x78, 0xb2,
    0x73, 0xbe, 0xd6, 0xb8, 0xe3, 0xc1, 0x74, 0x3b, 0x71, 0x16, 0xe6, 0x9e, 0x22, 0x22, 0x95, 0x16,
    0x3f, 0xf1, 0xca, 0xa1, 0x68, 0x1f, 0xac, 0x09, 0x12, 0x0e, 0xca, 0x30, 0x75, 0x86, 0xe1, 0xa7
};

/* Computed data buffer */
uint8_t Computed_Ciphertext[sizeof(Expected_Ciphertext)];
uint8_t Computed_Plaintext[sizeof(Plaintext)];


RCC_ClocksTypeDef  get_rcc_clock;


int main(void)
{
    cmox_cipher_retval_t retval;
    size_t computed_size;
    /* General cipher context */
    cmox_cipher_handle_t *cipher_ctx;
    /* Index for piecemeal processing */
    uint32_t index;


    lv_usart1_init();
    lv_delay_init();

    /*开启CRC,使用ST加密库需要开启CRC*/
    if (cmox_initialize(NULL) != CMOX_INIT_SUCCESS)
    {
        printf("init error\r\n");
    }
       
        /***************************************************************************************************
        * CRC-None加密
        ***************************************************************************************************/
    retval = cmox_cipher_encrypt(CMOX_AESSMALL_CBC_ENC_ALGO,                  /* Use AES CBC algorithm */
                                 Plaintext, sizeof(Plaintext)-1,           /* Plaintext to encrypt */
                                 Key, sizeof(Key),                       /* AES key to use */
                                 IV, sizeof(IV),                         /* Initialization vector */
                                 Computed_Ciphertext, &computed_size);   /* Data buffer to receive generated ciphertext */

    /* Verify API returned value */
    if (retval != CMOX_CIPHER_SUCCESS)
    {
        printf("CBC ERROR\r\n");
    }

    printf("CBC encrypt data:\r\n");
    for(int i=0; i<computed_size; i++)
    {
        printf("%x",Computed_Ciphertext[i]);
    }
    printf("\r\n");
    /* Compute directly the plaintext passing all the needed parameters */
    /* Note: CMOX_AES_CBC_DEC_ALGO refer to the default AES implementation
     * selected in cmox_default_config.h. To use a specific implementation, user can
     * directly choose:
     * - CMOX_AESFAST_CBC_DEC_ALGO to select the AES fast implementation
     * - CMOX_AESSMALL_CBC_DEC_ALGO to select the AES small implementation
     */
       
        /********************************************************************************
        *CRC-None解密
        ********************************************************************************/
    retval = cmox_cipher_decrypt(CMOX_AES_CBC_DEC_ALGO,                 /* Use AES CBC algorithm */
                                 Computed_Ciphertext, computed_size, /* Ciphertext to decrypt */
                                 Key, sizeof(Key),                      /* AES key to use */
                                 IV, sizeof(IV),                        /* Initialization vector */
                                 Computed_Plaintext, &computed_size);   /* Data buffer to receive generated plaintext */

    /* Verify API returned value */
    if (retval != CMOX_CIPHER_SUCCESS)
    {
        printf("CBC decrypt ERROR\r\n");
    }
    printf("CBC decrypt data:\r\n");

    {
        for(int i=0; i<computed_size; i++)
        {
            printf("%x",Computed_Plaintext[i]);
        }
    }
    printf("\r\ncomputed_size:%d\r\n",computed_size);

    /*******************************************************************************************
    *
    *SHA256演示
    ********************************************************************************************/
    const uint8_t Message[] =
    {
        0x6b, 0x91, 0x8f, 0xb1, 0xa5, 0xad, 0x1f, 0x9c, 0x5e, 0x5d, 0xbd, 0xf1, 0x0a, 0x93, 0xa9, 0xc8,
        0xf6, 0xbc, 0xa8, 0x9f, 0x37, 0xe7, 0x9c, 0x9f, 0xe1, 0x2a, 0x57, 0x22, 0x79, 0x41, 0xb1, 0x73,
        0xac, 0x79, 0xd8, 0xd4, 0x40, 0xcd, 0xe8, 0xc6, 0x4c, 0x4e, 0xbc, 0x84, 0xa4, 0xc8, 0x03, 0xd1,
        0x98, 0xa2, 0x96, 0xf3, 0xde, 0x06, 0x09, 0x00, 0xcc, 0x42, 0x7f, 0x58, 0xca, 0x6e, 0xc3, 0x73,
        0x08, 0x4f, 0x95, 0xdd, 0x6c, 0x7c, 0x42, 0x7e, 0xcf, 0xbf, 0x78, 0x1f, 0x68, 0xbe, 0x57, 0x2a,
        0x88, 0xdb, 0xcb, 0xb1, 0x88, 0x58, 0x1a, 0xb2, 0x00, 0xbf, 0xb9, 0x9a, 0x3a, 0x81, 0x64, 0x07,
        0xe7, 0xdd, 0x6d, 0xd2, 0x10, 0x03, 0x55, 0x4d, 0x4f, 0x7a, 0x99, 0xc9, 0x3e, 0xbf, 0xce, 0x5c,
        0x30, 0x2f, 0xf0, 0xe1, 0x1f, 0x26, 0xf8, 0x3f, 0xe6, 0x69, 0xac, 0xef, 0xb0, 0xc1, 0xbb, 0xb8,
        0xb1, 0xe9, 0x09, 0xbd, 0x14, 0xaa, 0x48, 0xba, 0x34, 0x45, 0xc8, 0x8b, 0x0e, 0x11, 0x90, 0xee,
        0xf7, 0x65, 0xad, 0x89, 0x8a, 0xb8, 0xca, 0x2f, 0xe5, 0x07, 0x01, 0x5f, 0x15, 0x78, 0xf1, 0x0d,
        0xce, 0x3c, 0x11, 0xa5, 0x5f, 0xb9, 0x43, 0x4e, 0xe6, 0xe9, 0xad, 0x6c, 0xc0, 0xfd, 0xc4, 0x68,
        0x44, 0x47, 0xa9, 0xb3, 0xb1, 0x56, 0xb9, 0x08, 0x64, 0x63, 0x60, 0xf2, 0x4f, 0xec, 0x2d, 0x8f,
        0xa6, 0x9e, 0x2c, 0x93, 0xdb, 0x78, 0x70, 0x8f, 0xcd, 0x2e, 0xef, 0x74, 0x3d, 0xcb, 0x93, 0x53,
        0x81, 0x9b, 0x8d, 0x66, 0x7c, 0x48, 0xed, 0x54, 0xcd, 0x43, 0x6f, 0xb1, 0x47, 0x65, 0x98, 0xc4,
        0xa1, 0xd7, 0x02, 0x8e, 0x6f, 0x2f, 0xf5, 0x07, 0x51, 0xdb, 0x36, 0xab, 0x6b, 0xc3, 0x24, 0x35,
        0x15, 0x2a, 0x00, 0xab, 0xd3, 0xd5, 0x8d, 0x9a, 0x87, 0x70, 0xd9, 0xa3, 0xe5, 0x2d, 0x5a, 0x36,
        0x28, 0xae, 0x3c, 0x9e, 0x03, 0x25
    };
    uint8_t computed_hash[CMOX_SHA256_SIZE];

    retval = cmox_hash_compute(CMOX_SHA256_ALGO,         /* Use SHA256 algorithm */
                               Message, sizeof(Message), /* Message to digest */
                               computed_hash,            /* Data buffer to receive digest data */
                               CMOX_SHA256_SIZE,         /* Expected digest size */
                               &computed_size);          /* Size of computed digest */

    /* Verify API returned value */
    if (retval != CMOX_HASH_SUCCESS)
    {
        printf("HASH ERROR\r\n");
    }
    printf("HASH data:\r\n");
    for(int i=0; i<computed_size; i++)
    {
        printf("%x ",computed_hash[i]);
    }

    while(1)
    {


    }

}

15
实际测量不符|  楼主 | 2025-08-04 14:52 | 只看该作者
结果:



验证:

AES加密
16
实际测量不符|  楼主 | 2025-08-04 14:53 | 只看该作者
SHA256
17
童雨竹| | 2024-8-16 08:02 | 只看该作者

做多层板可将做好的两块双面板用特制的粘合剂“压合”起来
18
Wordsworth| | 2024-8-16 09:05 | 只看该作者

清除与电镀动作都会在化学过程中完成
19
Clyde011| | 2024-8-16 10:08 | 只看该作者

负片转印(Subtractive transfer)的方式将设计好的PCB线路板的线路底片“印刷”在金属导体上。
20
公羊子丹| | 2024-8-16 11:01 | 只看该作者

将整个表面铺上一层薄薄的铜箔,并且把多余的部份给消除
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

605

帖子

1

粉丝
hpv吃什么药 乙肝看什么指标 67年属什么生肖 医院验光挂什么科 欣赏一个人是什么意思
谷丙转氨酶偏高吃什么药 升学宴选什么日子好 手指尖发麻是什么原因 冬是什么结构 星月菩提五行属什么
trance什么意思 慢性胃炎用什么药效果最好 叶公好龙是什么生肖 ca登录是什么意思 老是掉头发什么原因
彩虹什么颜色 头疼吃什么药效果好 早上吃什么 神经性头疼吃什么药效果好 人流后吃什么补身体
阴道口有点痒用什么药hcv8jop4ns0r.cn 老年人缺钾是什么原因引起的hcv8jop4ns6r.cn 百花齐放是什么生肖hcv8jop4ns0r.cn 查生化是查些什么hcv9jop1ns3r.cn 皮肤长癣是什么原因hcv8jop3ns7r.cn
做脑部ct挂什么科hcv8jop6ns7r.cn 欲壑难填是什么意思baiqunet.com 死皮是什么yanzhenzixun.com 碟中谍是什么意思jinxinzhichuang.com 1979年是什么年hcv9jop0ns5r.cn
陆勤合格什么意思hcv8jop8ns8r.cn 染色体变异发生在什么时期hcv8jop0ns7r.cn 月桂酸是什么hcv8jop0ns5r.cn 相思成疾是什么意思hcv8jop9ns3r.cn 大学硕士点是什么意思hcv8jop6ns5r.cn
10个油是什么意思hcv8jop3ns1r.cn 放屁是什么意思shenchushe.com 日不落是什么意思tiangongnft.com 姜黄粉是什么做的hcv9jop6ns5r.cn 军士长是什么军衔hcv9jop7ns3r.cn
百度