gpt4 book ai didi

c - 宏定义语法 "0000"

转载 作者:行者123 更新时间:2023-11-30 19:30:25 25 4
gpt4 key购买 nike

当我在 Xilinx SDK(C 语言)中遇到以下语法时,我正在使用 Xilinx 芯片:

#define XSK_EFUSEPS_PPK0_HASH   "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

从用户指南中似乎指定值“0000 ... 0000”似乎表示 AES 的位数(在本例中应为 384 位)。这个语法到底是什么以及宏如何指定位数而不是常量?

最佳答案

Presumably this link is the user guide you refer to?

在这种情况下this is the associated header file.

他们在评论中所说的

/*
* ...
* The value mentioned in this will be converted to hex buffer and written
* into the ZynqMP Ps eFUSE array when write API used. This value should
* be given in string format. It should be 96 or 64 characters long, valid
* characters are 0-9,a-f,A-F. Any other character is considered as invalid
* string and will not burn PPK0 hash.
*...
*/

链接的用户指南中的注释是相同的。

他们明确表示这应该是 96 或 64 个字符的字符串(在您的示例中为 96)。这与位数无关。

此外,if this is the associated c file ,那么用法如下:

PsStatus = XilSKey_Efuse_ValidateKey(
(char *)XSK_EFUSEPS_PPK0_HASH,
XSK_EFUSEPS_PPK_SHA3_HASH_STRING_LEN_96);

或者

XilSKey_Efuse_ConvertStringToHexBE(
(char *)XSK_EFUSEPS_PPK0_HASH,
&PsInstancePtr->Ppk0Hash[0],
XSK_EFUSEPS_PPK_SHA3HASH_LEN_IN_BITS_384);

在调用中明确指出(也许不必要)这两个函数需要一个指向 char 序列的指针(在 C 中每个文字字符串都会衰减为该序列)

关于c - 宏定义语法 "0000",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51065408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com