@shard-auth/client
Version:
Next-generation API authentication without secret keys - MPC-based authentication with FROST threshold signatures
100 lines • 2.33 kB
TypeScript
/**
* 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