OxL Reference

data ed25519

Ed25519 signatures (RFC 8032): 32-byte keys, 64-byte signatures.

Example:

oxl✓ checked in CI
use std.crypto { ed25519 }
use std.ser { bytesOf }

fn main() io, rand {
  let kp = ed25519.generate()
  let msg = bytesOf(&"pay 10")
  let sig = ed25519.sign(&kp.secretKey, msg)!
  print("{ed25519.verify(kp.publicKey, msg, sig)}")
}
Output
true
pub(api) data ed25519

Thread safety. pure functions apart from `generate`; safe from any task.

Since. 1.0.0-beta

Methods

generate() -> KeyPair rand
A new random Ed25519 key pair.
publicKey(secretKey: &secret<bytes>) -> bytes | CryptoError
The public key of a 32-byte private key.
sign(secretKey: &secret<bytes>, message: bytes) -> bytes | CryptoError
The 64-byte signature of message.
verify(publicKey: bytes, message: bytes, signature: bytes) -> bool
True when signature is valid for message under publicKey (any malformed input is simply false).

Defined in: std/crypto/crypto.oxl:575

See also