A pure MoonBit Ed25519 signing and verification package.
{
"deps": {
"hustcer/ed25519": "0.3.0"
}
}import {
"hustcer/ed25519" @ed25519,
}pub fn derive_public_key(BytesView) -> Result[Bytes, String]
pub fn sign(BytesView, BytesView) -> Result[Bytes, String]
pub fn verify(BytesView, BytesView, BytesView) -> Bool
pub fn verify_result(BytesView, BytesView, BytesView) -> Result[Bool, String]
pub struct SigningKey
pub fn SigningKey::from_seed(BytesView) -> Result[SigningKey, String]
pub fn SigningKey::public_key(SigningKey) -> Bytes
pub fn SigningKey::sign(SigningKey, BytesView) -> Bytes
pub struct VerifyingKey
pub fn VerifyingKey::from_public_key(BytesView) -> Result[VerifyingKey, String]
pub fn VerifyingKey::public_key(VerifyingKey) -> Bytes
pub fn VerifyingKey::verify(VerifyingKey, BytesView, BytesView) -> Bool
pub fn VerifyingKey::verify_result(
VerifyingKey,
BytesView,
BytesView,
) -> Result[Bool, String]///|
let seed : Bytes = b"\x9d\x61\xb1\x9d\xef\xfd\x5a\x60\xba\x84\x4a\xf4\x92\xec\x2c\xc4\x44\x49\xc5\x69\x7b\x32\x69\x19\x70\x3b\xac\x03\x1c\xae\x7f\x60"
///|
let message : Bytes = b"license"
///|
let public_key = @ed25519.derive_public_key(seed).unwrap()
///|
let signature = @ed25519.sign(seed, message).unwrap()
///|
let ok = @ed25519.verify(public_key, message, signature)///|
let signing_key = @ed25519.SigningKey::from_seed(seed).unwrap()
///|
let public_key = signing_key.public_key()
///|
let signature = signing_key.sign(message)///|
let verifying_key = @ed25519.VerifyingKey::from_public_key(public_key).unwrap()
///|
let ok = verifying_key.verify(message, signature)moon fmt
moon check
moon test
moon infomoon bench --releasenu tools/openssl-interop.nupub struct SigningKey {
// private fields
}pub struct VerifyingKey {
// private fields
}fn VerifyingKey::verify_result(self : VerifyingKey, message : BytesView, signature : BytesView) -> Result[Bool, String]fn derive_public_key(seed : BytesView) -> Result[Bytes, String]fn sign(seed : BytesView, message : BytesView) -> Result[Bytes, String]fn verify(public_key : BytesView, message : BytesView, signature : BytesView) -> Boolfn verify_result(public_key : BytesView, message : BytesView, signature : BytesView) -> Result[Bool, String]Install
Download zipA pure MoonBit Ed25519 signing and verification package.