My requirements are:
Requirement 1: Share public key to java server.
- Generate public-private keys in iOS app.
- Store the generated keys in keychain.
- Send generated public key to java server.
- Java server shall be able to store shared public key in database.
Requirement 2: Store public key sent by java server.
- Java server sends public key of other user.
- Process data sent by java server and generate public key from it.
- Store generated key in keychain, which can be later retrieved for encrypting message to be transferred.
I am able to achieve steps 1-2 in requirement 1 by using below method defined in SecKeyWrapper class (CommonCrypto sample):
Question 1: Now problem is- how shall I send that key to java server?
getPublicKeyBits method in the same class, which returns an NSData object, on some googling I found that it is in DER encoded format.
Question 2: If I send the same NSData object to server, which I guess it will interpret as ByteBuffer object, will it be possible for other devices, in my case it could be android, to interpret that data?
Question 3: What is the best way to share public key in above scenarios?