Static
compressCompresses an uncompressed public key using the elliptic curve secp256k1. This method takes a public key in its uncompressed form and returns a compressed representation of the public key. Elliptic curve public keys can be represented in a shorter form known as compressed format which saves space and still retains the full public key's capabilities. The method uses the elliptic library to convert the uncompressed public key into its compressed form.
The steps involved in the process are:
A Buffer containing the uncompressed public key.
Buffer Returns a Buffer containing the compressed public key.
Error Throws an error if the provided public key cannot be compressed, typically indicating that the key is not valid.
Static
toXOnlyConverts a 33-byte Bitcoin public key to a 32-byte x-only public key as used in Taproot. This function checks if the provided public key buffer is already 32 bytes long, in which case it returns the buffer unchanged. If the buffer is 33 bytes long, it assumes that the first byte is the parity byte used for indicating the y-coordinate in traditional SEC1 encoding and removes this byte, thereby converting the public key to an x-only format suitable for use with Bitcoin's Taproot.
Adopted from https://github.com/ACken2/bip322-js/pull/6 by Czino
The buffer containing the 33-byte or 32-byte public key to be converted.
A 32-byte buffer of the x-only public key.
If the public key is neither 32-byte nor 33-byte long
Static
uncompressUncompresses a given public key using the elliptic curve secp256k1. This method accepts a compressed public key and attempts to convert it into its uncompressed form. Public keys are often compressed to save space, but certain operations require the full uncompressed key. This method uses the elliptic library to perform the conversion.
The function operates as follows:
A Buffer containing the compressed public key.
Buffer The uncompressed public key as a Buffer.
Error Throws an error if the provided public key cannot be uncompressed, typically indicating that the key is not valid.
Class that implement key-related utility functions.