UNPKG

native-update

Version:

Foundation package for building a comprehensive update system for Capacitor apps. Provides architecture and interfaces but requires backend implementation.

94 lines (93 loc) 2.59 kB
export declare class SecurityValidator { private static instance; private readonly configManager; private readonly logger; private constructor(); static getInstance(): SecurityValidator; /** * Validate URL is HTTPS */ static validateUrl(url: string): boolean; /** * Validate checksum format */ static validateChecksum(checksum: string): boolean; /** * Sanitize input string */ static sanitizeInput(input: string): string; /** * Validate bundle size */ static validateBundleSize(size: number): boolean; /** * Calculate SHA-256 checksum of data */ calculateChecksum(data: ArrayBuffer): Promise<string>; /** * Verify checksum matches expected value */ verifyChecksum(data: ArrayBuffer, expectedChecksum: string): Promise<boolean>; /** * Alias for verifyChecksum for backward compatibility */ validateChecksum(data: ArrayBuffer, expectedChecksum: string): Promise<boolean>; /** * Verify digital signature using Web Crypto API */ verifySignature(data: ArrayBuffer, signature: string): Promise<boolean>; /** * Convert PEM to ArrayBuffer */ private pemToArrayBuffer; /** * Convert base64 to ArrayBuffer */ private base64ToArrayBuffer; /** * Sanitize file path to prevent directory traversal */ sanitizePath(path: string): string; /** * Validate bundle ID format */ validateBundleId(bundleId: string): void; /** * Validate semantic version format */ validateVersion(version: string): void; /** * Check if version is a downgrade */ isVersionDowngrade(currentVersion: string, newVersion: string): boolean; /** * Parse semantic version */ private parseVersion; /** * Validate URL format and security */ validateUrl(url: string): void; /** * Validate file size */ validateFileSize(size: number): void; /** * Generate a secure random ID */ generateSecureId(): string; /** * Validate certificate pinning for HTTPS connections * Note: This is a placeholder for web implementation as certificate pinning * is primarily implemented at the native layer */ validateCertificatePin(hostname: string, certificate: string): Promise<boolean>; /** * Calculate SHA-256 hash of certificate */ private calculateCertificateHash; /** * Validate metadata object */ validateMetadata(metadata: unknown): void; }