CCFor一个项目我正在寻找一个简单的RSA实现,通过一个不安全但现有的通信协议来交换一个小秘密。为了保持它小巧,易于移植到不同平台,我不想链接OpenSSL或Crypto ++。我发现这是axTLS项目的一部分,它具有合适的许可证和易于提取的RSA算法。用于加密的rsa函数需要两个组件(因为它使用公钥)。 pup_exp是65537,模数是密钥的公共部分,priv_exp是私有的。
void RSA_priv_key_new(RSA_CTX **ctx,
const uint8_t *modulus, int mod_len,
const uint8_t *pub_exp, int pub_len,
const uint8_t *priv_exp, int priv_len
)
为方便用户使用,我希望加载像OpenSSL这样的库生成的X.509或PEM等证书,但是在C或C ++代码中不包含整个OpenSSL内容。但目前我甚至没有找到一个可理解的常用密钥文件格式文档。
答案 0 :(得分:1)
有两种类型的RSA公钥格式被广泛使用,它们是PKCS#1和X.509(SubjectPublicKeyInfo)。 我使用了libtomcrypt(http://libtom.org/?page=features)。它支持RSA密钥格式和非常便携。许可证不受限制。