UNPKG

@shard-auth/client

Version:

Next-generation API authentication without secret keys - MPC-based authentication with FROST threshold signatures

100 lines 2.33 kB
/** * Shard-Auth 型定義 * FROST (Flexible Round-Optimized Schnorr Threshold) 署名の実装 */ export interface DKGConfig { threshold: number; parties: number; curve: 'secp256k1' | 'ed25519'; transport?: 'https' | 'wss'; } export interface DKGSession { id: string; config: DKGConfig; status: 'initialized' | 'in_progress' | 'completed' | 'failed'; startTime: bigint; commitments: Map<number, Buffer>; getTransportSecurity(): TransportSecurity; } export interface Share { index: number; share: Buffer; publicKeyShare: Buffer; commitment: Buffer; } export interface ShareA extends Share { index: 1; } export interface ShareB extends Share { index: 2; } export interface DKGResult { shareA: ShareA; shareB: ShareB; publicKey: Buffer; groupPublicKey: Buffer; } export interface Nonce { hiding: Buffer; binding: Buffer; } export interface NonceCommitment { hiding: Buffer; binding: Buffer; } export interface PartialSignature { index: number; signature: Buffer; proof: Buffer; nonceCommitment: NonceCommitment; } export interface FROSTSignature { r: Buffer; s: Buffer; verify(message: Buffer, publicKey: Buffer): Promise<boolean>; } export interface TransportSecurity { protocol: string; version: number; cipherSuite: string; } export interface SigningPackage { message: Buffer; commitments: Map<number, NonceCommitment>; bindingFactors: Map<number, Buffer>; } export interface SignatureSessionRequest { method: string; path: string; bodyHash: Buffer; timestamp: string; clientNonceCommitment?: NonceCommitment; } export interface SignatureSessionResponse { sessionId: string; serverNonceCommitment: NonceCommitment; expiresAt: string; } export interface CompleteSignatureRequest { sessionId: string; partialSignature: PartialSignature; } export interface CompleteSignatureResponse { signature: { r: string; s: string; }; authorizationHeader: string; } export interface VerificationResult { isValid: boolean; publicKey?: string; error?: string; } export interface APIRequestDetails { method: string; path: string; bodyHash: Buffer; timestamp: string; } //# sourceMappingURL=types.d.ts.map