nilajs-digital-signature
v1.0.0
Published
A simple library for generating elliptic curve (secp256k1) key pairs, digital signature, signing data, verifying signatures, and validating public keys.
Downloads
3
Readme
nilajs-digital-signature
A digital signature is a cryptographic mechanism used to verify the authenticity and integrity of digital messages or documents. It provides assurances that the message was indeed created by a particular entity (authentication) and that the message has not been altered or tampered with since it was signed (integrity).
A simple library for generating elliptic curve (secp256k1) key pairs, signing data, verifying signatures, and validating public keys.
Installation
You can install the package via npm:
npm install nilajs-digital-signature
Usage
Import the Library
const {
generateWallet,
checkPublicKeyValid,
signData,
verifySignature
} = require('nilajs-digital-signature');
Generate Wallet
Generate a new wallet (elliptic curve (secp256k1) key pair) :
const { publicKey, privateKey } = generateWallet();
console.log(`Public Key: ${publicKey}`);
console.log(`Private Key: ${privateKey}`);
Validate Public Key
Check if a given public key is valid:
const publicKey = 'YOUR_PUBLIC_KEY';
const result = checkPublicKeyValid(publicKey);
console.log(result); // { valid: true/false, public_key: 'YOUR_PUBLIC_KEY' }
Sign Data
Sign a piece of data with a private key:
const privateKey = 'YOUR_PRIVATE_KEY';
const data = 'This is the data to be signed';
const signatureObject = signData(privateKey, data);
console.log(signatureObject);
/*
{
data: 'This is the data to be signed',
signature: {
r: 'SIGNATURE_R',
s: 'SIGNATURE_S'
}
}
*/
Verify Signature
Verify the signature of the data with a public key:
const publicKey = 'YOUR_PUBLIC_KEY';
const data = 'This is the data to be signed';
const signature = {
r: 'SIGNATURE_R',
s: 'SIGNATURE_S'
};
const verificationResult = verifySignature(publicKey, data, signature);
console.log(verificationResult);
/*
{
data: 'This is the data to be signed',
signature: {
r: 'SIGNATURE_R',
s: 'SIGNATURE_S'
},
is_verified: true/false
}
*/
API Reference
generateWallet()
Generates a new elliptic curve (secp256k1) key pair.
Returns:
Object
: An object containing thepublicKey
andprivateKey
as hexadecimal strings.
checkPublicKeyValid(publicKey)
Checks if a given public key is valid.
Parameters:
publicKey
(string
): The public key to validate.
Returns:
Object
: An object containing:valid
(boolean
): Whether the public key is valid.public_key
(string
): The provided public key.
signData(privateKey, data)
Signs a piece of data with a private key.
Parameters:
privateKey
(string
): The private key to sign with.data
(string
): The data to sign.
Returns:
Object
: An object containing the signeddata
andsignature
(withr
ands
as hexadecimal strings).
verifySignature(publicKey, data, signature)
Verifies the signature of the data with a public key.
Parameters:
publicKey
(string
): The public key to verify with.data
(string
): The signed data.signature
(Object
): The signature object containingr
ands
as hexadecimal strings.
Returns:
Object
: An object containing:data
(string
): The signed data.signature
(Object
): The signature object.is_verified
(boolean
): Whether the signature is valid.
License
MIT