lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
45 lines • 1.94 kB
TypeScript
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