求解
同样的私钥和需要加密数据,在嵌入式平台使用wolfssl 进行RSA签名 和使用openssl 进行RSA签名得到的数据不一致;
但是同样使用openssl进行公钥加密,得到的加密数据导入嵌入式平台能够使用私钥进行解密。这是为什么呢?Padding方式也一致都是RSA_PKCS1_PADDING(V1.5)
这种情况可能是因为嵌入式平台和openssl的实现存在细微差别,导致使用相同私钥和明文进行签名时,两个平台使用的签名算法和签名格式不同,导致了签名结果不一致。
或者,也可能是在嵌入式平台和openssl中,对于RSA算法内部的某些细节实现方面存在差异,例如加密算法和加密模式等影响加密结果的细节,可能对密文产生了微小的影响,导致了两个平台产生的签名结果不一致。
不过,公钥加密能够被私钥解密这个现象应该是因为嵌入式平台和openssl使用的RSA算法和RSA密钥对是相同的,在加密时使用了相同的填充方式,所以嵌入式平台能够成功用私钥解密openssl产生的密文。
为了确定问题的根本原因,建议对两个平台的签名算法和签名格式进行详细比较,并尝试对密文进行解析,查看密文是否完全一致。另外,建议检查两个平台的RSA密钥对是否完全一致。如果密钥对没有问题,可以考虑通过调整填充方式解决问题。