我有两个c数组。 private_key_der和public_key_der。其中之一是私钥数据,其他是公钥数据。如何使用libtomcrypt将其导入我的加密应用程序?
我已经通过以下步骤完成了键数组的设置:
我尝试使用rsa_import
功能:
static rsa_key private_key;
static rsa_key public_key;
if (err = rsa_import(private_key_der, sizeof(private_key_der),
&private_key) != CRYPT_OK)) {
EMSG("PRIVATE import failed: %d", err);
}
if (err = rsa_import(public_key_der, sizeof(public_key_der),
&public_key) != CRYPT_OK)) {
EMSG("PUBLIC import failed: %d", err);
}
私有密钥的导入总是成功的,但是我对公共密钥有麻烦。在公开密钥的情况下,rsa_import()返回CRYPT_INVALID_PACKET。
我尝试调试libtocrypt,并了解到此代码INTO rsa_import()函数在libtomcrypt中发生了一些错误
/* not SSL public key, try to match against PKCS #1 standards */
if ((err = der_decode_sequence_multi(in, inlen,
LTC_ASN1_INTEGER, 1UL, key->N,
LTC_ASN1_EOL, 0UL, NULL)) != CRYPT_OK) {
goto LBL_ERR;
}
我希望我的结果与this相同。
我已经确定了此问题,并需要帮助将tomcrypt从github official repo更新到最新版本。
rsa_import()正确,并与公钥der数组和私钥一起使用。