SchnorrkelSignature.fromBytes constructor
Creates a signature from raw bytes.
Implementation
factory SchnorrkelSignature.fromBytes(List<int> signatureBytes) {
_KeyUtils._checkKeysBytes(
signatureBytes,
SchnorrkelKeyCost.signatureLength,
"signature",
"SchnorrkelSignature",
);
final r = signatureBytes.sublist(0, 32);
final s = signatureBytes.sublist(32, SchnorrkelKeyCost.signatureLength);
if (s[31] & 128 == 0) {
throw const CryptoException(
"Signature not marked as schnorrkel, maybe try ed25519 instead.",
);
}
final canonicalS = _KeyUtils.toCanonical(s);
if (canonicalS != null) {
return SchnorrkelSignature._(canonicalS, r);
}
throw const CryptoException("invalid schnorrkel signature");
}