typedef struct {
uint32_t bits;
uint8_t modulus[MAX_RSA_MODULUS_LEN];
uint8_t exponent[4];
} R_RSA_PUBLIC_KEY;
const R_RSA_PUBLIC_KEY mtPosPPublicKey = {
1024,
"\xcf\xcc\xf7\xb4\xda\x91\x4d...", // 必須為字串常量,長度匹配 modulus 陣列
{0x00, 0x01, 0x00, 0x01}
};
若 `gbszPublicKey` 為執行期填充的 `uint8_t gbszPublicKey[256+1]`,**無法在定義時直接用變數初始化結構體陣列成員**,必須先定義結構體變數,再用 `memcpy`/`strcpy` 複製:
R_RSA_PUBLIC_KEY key;
key.bits = 1024;
// 假設 gbszPublicKey 已填滿 256 字節 (不含結束符)
memcpy(key.modulus, gbszPublicKey, sizeof(key.modulus)); // 安全複製
key.exponent[0] = 0x00;
key.exponent[1] = 0x01;
key.exponent[2] = 0x00;
key.exponent[3] = 0x01;
總結:靜態常量用初始化列表;動態資料用 memcpy 逐成員賦值。