bip340 0.3.0 copy "bip340: ^0.3.0" to clipboard
bip340: ^0.3.0 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 test 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 lowercase hex-encoded, i.e., 64 characters.
  • message must also be lowercase 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 lowercase hex-encoded, i.e., 64 characters (if you have a pubkey with 33 bytes just remove the first one).
  • message must also be lowercase hex-encoded (a hash of the actual message).
  • signature must be 64-bytes lowercase 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 32-bytes hex-encoded string, i.e. 64 characters.
  • Returns a public key as also 32-bytes hex-encoded.

Made for integration with Nostr.

5
likes
125
pub points
76%
popularity

Publisher

unverified uploader

BIP340 (Schnorr) signature and verification.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

crypto, pointycastle

More

Packages that depend on bip340