Skip to content
Key agreement (X25519) and signing (ed25519), X25519 keys.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
BuildTests Adding support for signing data larger than 256 bytes. May 1, 2015
Classes Infer fixes. Jun 14, 2015
Sources Infer fixes. Jun 14, 2015
.gitignore 1.2 release Jul 24, 2014
.travis.yml Travis updating xctool Oct 21, 2014

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.


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;


API reference is available on CocoaDocs.


Add this line to your Podfile

pod '25519', '~> version number'

Cryptographic Implementations

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


Licensed under the GPLv3:

You can’t perform that action at this time.