我在理解使用什么函数将密钥加载到RSA中时遇到了一些麻烦。从C中的字符串加载openssl RSA密钥
我得到这样的字符串形式的键从本地数据库:
-----开始公钥----- migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqdcz4npasjgxrcv8fwqcrdw +捷克 76l3inzil3mquizvuyyn5heqqsrvg7/4mu1czc5fghcuk2pbfjgk9ev3xz6soxpk pkhkxot87xgkmi1hulszcyouhvrtgkgcbk/kuktqozklgbolxf + cxigdptpgareg DP + 6ieuziwsfpjrkjwidaqab -----结束公钥-----
然后我尝试这样的事情(在Objective-C):
long len = [key length];
const unsigned char *p = (unsigned char *)[key UTF8String];
RSA *r = d2i_RSA_PUBKEY(NULL, &p, len);
r总是返回null,所以我在那里做错了事。我尝试了其他一些东西,但我只是想念它。最终的目标是从我的公钥创建RSA,然后使用类似
RSA_public_encrypt (1, hash, secret, r, RSA_PKCS1_OAEP_PADDING);
要加密哈希,但我卡在装载了我的钥匙:)任何帮助表示赞赏。
谢谢。
尝试使用'ERR_get_error()'获取有关OpenSSL错误的信息。 – arrowd
谢谢,我得到错误号218529960哪个google告诉我意味着asn1编码例程:ASN1_CHECK_TLEN:错误的标记 –