RSA Encryption using public key

2019-03-11 16:52发布

问题:

I am writing iOS Application. Server sends RSA public key to application. Now application has to encrypt some information using RSA algorithm

Kindly provide me some reference. Thanks

回答1:

iOS has no special API for RSA, but there are some APIs about Certificate. You can use these APIs to encrypt your data by RSA.

First, you must use openssl to generate your RSA private key and public key. The most important thing is that the public key must be signed. Here is a instruction to generate the keys.

openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650

However, if you already has a private key(.pem file), you can follow the instructions:

openssl req -new -out cert.csr -key private_key.pem
openssl x509 -req -in cert.csr -out public_key.der -outform der -signkey private_key.pem -days 3650

You can check the public_key.der by opening it in xcode.

When you get the correct public_key.der file, you can view the RSA.h and RSA.m here. I'm sorry that I have no time to rewrite this post by English again.



回答2:

This Pod encapsulates the encryption: https://github.com/xjunior/XRSA



回答3:

I don't know much about iOS but the Certificate, Key, and Trust Services Reference seems to be what you need. It appears the SecKeyEncrypt will be used by you at some point.