最近搞TEE里面Crypto模块,遇到RSA2048 Private key(d因子)只有255byte

而在解密的时候我直接使用长度为256byte,导致解密失败(原因是末尾补零出现公私钥不匹配)

解决方法要么使用255byte,要么高位补零(比256小都需要高位补零)
TEE_GetObjectBufferAttribute(key, attributeID, d, &dL);
uint32_t cnt = 256 - dL;
if (cnt > 0) {
char tmp[512] = { 0 };
memcpy(tmp + cnt, d, dL);
memset(d, 0x00, 256);
memcpy(d, tmp, dL + cnt);
}

本文探讨了在TEE Crypto模块中遇到的RSA2048私钥(d因子)长度为255字节的问题,如何处理末尾补零以确保公私钥匹配,并提供了调整和填充私钥的代码实例。
210

被折叠的 条评论
为什么被折叠?



