Key agreement (X25519) and signing (ed25519), X25519 keys.
Go to file
nielsandriesse c3bc075d1e Update for shared sender keys 2020-06-30 11:15:32 +10:00
BuildTests Update podspec 2020-06-04 14:38:50 +10:00
Classes Update for shared sender keys 2020-06-30 11:15:32 +10:00
Sources Respond to CR. 2018-09-19 15:09:11 -04:00
.clang-format Clean up formatting. 2018-07-27 10:36:28 -04:00
.gitignore 1.2 release 2014-07-23 18:35:58 -10:00
.travis.yml Travis updating xctool 2014-10-21 13:15:03 +02:00
LICENSE Initial commit 2014-07-22 16:24:54 -10:00
README.md Syntax fixes, return non-mutable bytes 2014-10-21 12:58:00 +02:00
SessionCurve25519Kit.podspec Update for shared sender keys 2020-06-30 11:15:32 +10:00

README.md

25519 Build Status

Curve25519 is a fast and secure curve used for key agreement. Unfortunately, it does not support signing out of the box. This pod translates the point curves to do ed25519 signing with curve25519 keys.

Usage

Generating a curve25519 key:

ECKeyPair *curve25519Key = [Curve25519 generateKeyPair];

ECKeyPair conforms to NSCoding to make storage of it more convenient.


Generating a curve25519 shared secret:

NSData *sharedSecret = [Curve25519 generateSharedSecretFromPublicKey:aPublicKey andKeyPair:anECKeyPair];

ed25519-sign message with curve25519 key pair:

NSData *signature = [Ed25519 sign:message withKeyPair:ecKeyPair]

ed25519-verify message with curve25519 key pair:

BOOL validSignature = [Ed25519 verifySignature:signature publicKey:ecPublicKey msg:message;

Documentation

API reference is available on CocoaDocs.

Installation

Add this line to your Podfile

pod '25519', '~> version number'

Cryptographic Implementations

The Curve25519 key pair and ECDH is done with Adam Langleys curve25519-donna. The point conversion algorithm was written by the inimitable Trevor Perrin.

License

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html