UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

45 lines 1.94 kB
import type { P2PCoordinator } from '../coordinator.js'; import { type DiscoveryAdvertisement, type DiscoveryCriteria, type SecurityValidationResult, type ReputationData, type SecurityPolicy } from './types.js'; export declare class DiscoverySecurityValidator { private readonly coordinator; private readonly reputationData; private readonly seenAdvertisements; private readonly rateLimitTracker; private readonly policy; private cleanupTimer?; constructor(coordinator: P2PCoordinator, policy?: Partial<SecurityPolicy>); validateAdvertisement(advertisement: DiscoveryAdvertisement, criteria?: DiscoveryCriteria): Promise<SecurityValidationResult>; updateReputation(peerId: string, success: boolean, weight?: number, reason?: string): void; getReputation(peerId: string): ReputationData; checkRateLimit(peerId: string, operation: 'advertise' | 'discover'): boolean; start(): void; stop(): void; getSecurityStats(): { totalPeers: number; averageReputation: number; lowReputationPeers: number; rateLimitViolations: number; replayAttacksPrevented: number; }; private validateSignature; private constructSignedMessage; private checkReplayAttack; private validateCriteriaMatch; private calculateDistance; private toRadians; private cleanup; } export declare function createSecurityPolicy(protocol: string, overrides?: Partial<SecurityPolicy>): SecurityPolicy; export declare const musig2Validator: { name: string; validator: (advertisement: DiscoveryAdvertisement) => Promise<boolean>; }; export declare const locationValidator: { name: string; validator: (advertisement: DiscoveryAdvertisement) => Promise<boolean>; }; export declare const capabilityValidator: { name: string; validator: (advertisement: DiscoveryAdvertisement) => Promise<boolean>; }; //# sourceMappingURL=security.d.ts.map