bip340 0.0.3
bip340: ^0.0.3 copied to clipboard

BIP340 (Schnorr) signature and verification.

bip340 Pub #

Implements basic signing and verification functions for the BIP-340 Schnorr Signature Scheme.

It passes the tests attached to the BIP (dart run example/example.dart to run that), but no guarantees are made of anything and this is not safe cryptography, do not use to store Bitcoins.

Provides these functions:

  1. String sign(String privateKey, String message, String aux)

Generates a schnorr signature using the BIP-340 scheme.

  • privateKey must be 32-bytes hex-encoded, i.e., 64 characters.
  • message must also be 32-bytes hex-encoded (a hash of the actual message).
  • aux must be 32-bytes random bytes, generated at signature time.
  • Returns the signature as a string of 64 bytes hex-encoded, i.e., 128 characters.
  1. bool verify(String publicKey, String message, String signature)

Verifies a schnorr signature using the BIP-340 scheme.

  • publicKey must be 32-bytes hex-encoded, i.e., 64 characters (if you have a pubkey with 33 bytes just remove the first one).
  • message must also be 32-bytes hex-encoded (a hash of the actual message).
  • signature must be 64-bytes hex-encoded, i.e., 128 characters.
  • Returns true if the signature is valid, false otherwise.
  1. String getPublicKey(String privateKey)

Produces the public key from a private key

  • privateKey must be a 31-bytes hex-encoded string, i.e. 64 characters.
  • Returns a public key as also 32-bytes hex-encoded.

Made for integration with Nostr.

1
likes
75
pub points
0%
popularity

BIP340 (Schnorr) signature and verification.

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

fiatjaf@gmail.com

License

MIT (LICENSE)

Dependencies

convert, crypto, pointycastle

More

Packages that depend on bip340