Ed25519(SHA3) by pure swift
Ed25519 can be used, distributed and modified user the zlib license.
Ed25519 requires Swift 4.
macOS, iOS
pod 'ed25519swift', :git => 'https://github.com/luca3104/ed25519swift.git'
CryptoSwift for sha3-512
BigInt for reference implementation that is not included main Ed25519 library.
import Ed25519macOS // direct
or
import ed25519swift // pods
static func generate_keypair() -> (pub:String, pri:String)
static func sign(_ msg:String, _ pri:String, _ pub:String)) -> String
static func verify(_ sig:String, _ msg:String, _ pub:String) -> Bool
It is ported from SUPERCOP
You can check the algorithm in these papers and RFC.
Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, and Bo-Yin Yang, High-speed high-security signatures. 2012
Huseyin Hisl, Kenneth Koon-Ho Wong, Gary Carter, Ed Dawson, Twisted Edwards curves revisited. 2008
RFC8032 Edward-Curve Digital Signature Algorithm (EdDSA)
On MacBook Pro 2017 2.3Ghz Intel Core i5 11 sec for 1024 message validation 10 msec for a message validation
no measurement