@icp-sdk/core/identity/secp256k1
The @icp-sdk/core/identity/secp256k1
module provides an implementation of the SignIdentity
interface for the secp256k1 elliptic curve. It allows you to create and manage key pairs for signing and verification of messages.
Usage
Here's an example of how to use the Secp256k1KeyIdentity
class to generate a new key pair and sign and verify a message:
import { Secp256k1KeyIdentity } from '@icp-sdk/core/identity/secp256k1';
const identity = Secp256k1KeyIdentity.generate();
const message = 'Hello, world!';
const signature = identity.sign(message);
const isValid = identity.verify(message, signature);
console.log(`Signature is ${isValid ? 'valid' : 'invalid'}`);
You can also use a seed to generate deterministic key pairs:
import { Secp256k1KeyIdentity } from '@icp-sdk/core/identity/secp256k1';
const seed = Buffer.from('my-secret-seed', 'utf8');
const identity = Secp256k1KeyIdentity.generate(seed);
The Secp256k1KeyIdentity class also provides methods for converting the key pair to and from JSON-serializable objects:
import { Secp256k1KeyIdentity } from '@icp-sdk/core/identity/secp256k1';
const identity = Secp256k1KeyIdentity.generate();
const json = identity.toJson();
const restoredIdentity = Secp256k1KeyIdentity.fromJson(json);
API Reference
Additional API Documentation can be found here.