@smartledger/lumen-signatures
v1.0.2
Published
BSV-ECDSA-DER cryptographic signatures for LumenChat agent verification
Maintainers
Readme
@lumenchat/signatures
BSV-ECDSA-DER cryptographic signatures for LumenChat agent verification.
Features
- Key Generation: Generate cryptographic keys for agents and platforms
- Signing: Create DER-encoded ECDSA signatures
- Verification: Verify signatures against public keys
- Envelopes: Wrap data with cryptographic proof
- Agent Identity: Unique cryptographic identity per agent session
Installation
npm install @lumenchat/signaturesUsage
Generate Keys
import { generateKeys } from '@lumenchat/signatures';
const keys = generateKeys();
// {
// privateKey: 'L5oLkpV...', // WIF format
// publicKey: '02abc123...', // Hex
// address: '1ABC...' // BSV address
// }Create Agent Keys
import { createAgentKeys } from '@lumenchat/signatures';
const agentKeys = createAgentKeys('MyAgent');
// {
// privateKey: '...',
// publicKey: '...',
// address: '...',
// agentName: 'MyAgent',
// created: '2025-11-20T...'
// }Sign Data
import { signData } from '@lumenchat/signatures';
const signature = signData('Hello World', keys.privateKey);
// '304402207bdb86a9be5e...' (DER hex)Verify Signature
import { verifySignature } from '@lumenchat/signatures';
const isValid = verifySignature('Hello World', signature, keys.publicKey);
// trueCreate Signed Envelope
import { createSignedEnvelope } from '@lumenchat/signatures';
const envelope = createSignedEnvelope(
{ message: 'Hello' },
agentKeys,
{ agentIdentity: 'MyAgent-session-123' }
);
// {
// data: { message: 'Hello' },
// _signature: {
// signature: '3044022...',
// publicKey: '02abc...',
// address: '1XYZ...',
// timestamp: '2025-11-20T...',
// algorithm: 'BSV-ECDSA-DER',
// responseHash: 'a1b2c3...',
// agentIdentity: 'MyAgent-session-123'
// }
// }Verify Signed Envelope
import { verifySignedEnvelope } from '@lumenchat/signatures';
const result = verifySignedEnvelope(envelope);
// {
// verified: true,
// publicKey: '02abc...',
// address: '1XYZ...',
// agentIdentity: 'MyAgent-session-123',
// timestamp: '2025-11-20T...'
// }API Reference
generateKeys()
Generate new cryptographic keys.
Returns: { privateKey, publicKey, address }
createAgentKeys(agentName, options)
Create agent-specific keys with metadata.
Parameters:
agentName(string): Agent identifieroptions(object): Additional metadata
Returns: { privateKey, publicKey, address, agentName, created, ...options }
signData(data, privateKeyWIF)
Sign data using BSV-ECDSA-DER.
Parameters:
data(string): Data to signprivateKeyWIF(string): Private key in WIF format
Returns: string - DER-encoded signature (hex)
verifySignature(data, signatureHex, publicKey)
Verify a signature.
Parameters:
data(string): Original datasignatureHex(string): DER signature in hexpublicKey(string): Public key
Returns: boolean
createSignedEnvelope(data, agentKey, metadata)
Wrap data with cryptographic signature.
Parameters:
data(string|object): Data to signagentKey(object): Agent keys with privateKey, publicKey, addressmetadata(object): Optional metadata
Returns: { data, _signature }
verifySignedEnvelope(envelope)
Verify a signed envelope.
Parameters:
envelope(object): Signed envelope
Returns: { verified, publicKey, address, agentIdentity, timestamp }
initializePlatformKeys()
Initialize platform keys from PLATFORM_PRIVATE_KEY env var or generate new ones.
Returns: { privateKey, publicKey, address }
License
PROPRIETARY - Copyright © 2025 Gregory J. Ward and SmartLedger.Technology
