gpt4 book ai didi

objective-c - 使用 C 或 Obj-C 中的 X509 和 PKCS#8 编码的 OpenSSL RSA key 对

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:27 25 4
gpt4 key购买 nike

我已经苦苦挣扎了好几天,在互联网上找不到任何准确的示例/教程,所以现在我在这里寻求帮助。

我有一个创建 RSA key 对的 Java 应用程序。此 key 对用于加密和解密对称 key 。 (但首先要测试我想使用一个简单的文本字符串)。生成 key 对后,对 key 进行编码。

PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(pbKey));

PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(pvBytes);

现在我正在 iOS 上创建一个应用程序。我想在 iOS(C 或 Objective-C)中使用 OpenSSL 做同样的事情。

有人可以帮我解决这个问题吗?

我正在这样创建 key

RSA_generate_key_ex(rsa, modulus, e, NULL);

最佳答案

基本上,您拥有的是私钥 (ks) 的 PKCS#8 编码。 IE。原始 ASN.1。

我假设您将其写成原始编码( Java asymmetric encryption: preferred way to store public/private keysDecrypted string not the same as pre encrypted string )。

因此假设 rsa 已填充; 'enc' 是

    const EVP_CIPHER *enc=NULL;

或更有可能

    const EVP_CIPHER *enc=EVP_aes_XXX_cbc();

其中 XXX 类似于 128 位,然后您可以使用类似以下内容调用 PEM_write_bio_RSAPrivateKey:

    PW_CB_DATA cb_data;
cb_data.password = passout;
cb_data.prompt_info = outfile;

BIO_set_fp(out,stdout,BIO_NOCLOSE);

if (!PEM_write_bio_RSAPrivateKey(out,rsa,enc,NULL,0,
(pem_password_cb *)password_callback,&cb_data))
goto err;

大概就是这样。可以从任何 openssl 源代码分发中的 apps/genrsa.c 中提取代码。

关于objective-c - 使用 C 或 Obj-C 中的 X509 和 PKCS#8 编码的 OpenSSL RSA key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com