赞
踩
最近搞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);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。