/** * @bunkor/crypto - Configuration * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Bunkor API Configuration * Configure your Bunkor instance endpoints and credentials */ export interface BunkorConfig { /** Bunkor API base URL (e.g., https://api.bunkor.io or your self-hosted instance) */ apiUrl: string; /** API authentication token */ apiToken?: string; /** Organization ID or account identifier */ organizationId?: string; /** Enable debug logging */ debug?: boolean; /** Request timeout in milliseconds (default: 30000) */ timeout?: number; /** Maximum file size for chunked upload in bytes (default: 5MB) */ chunkSize?: number; } /** * Default Bunkor configuration * Override with your environment-specific settings */ export declare const DEFAULT_BUNKOR_CONFIG: Partial; /** * Bunkor encryption defaults */ export declare const ENCRYPTION_DEFAULTS: { /** Default PBKDF2 iterations for password derivation (industry standard: 600K+) */ PBKDF2_ITERATIONS: number; /** Default key length in bits (256 = 32 bytes) */ KEY_LENGTH_BITS: number; /** Default encryption algorithm (recommended: AES-256-GCM) */ DEFAULT_ALGORITHM: "AES-256-GCM"; /** Supported algorithms */ SUPPORTED_ALGORITHMS: readonly ["AES-256-GCM", "AES-256-CBC", "AES-256-CTR", "Kyber-768-AES", "Kyber-1024-AES"]; /** IV sizes by algorithm (in bytes) */ IV_SIZES: { readonly 'AES-256-GCM': 12; readonly 'AES-256-CBC': 16; readonly 'AES-256-CTR': 16; readonly 'Kyber-768-AES': 12; readonly 'Kyber-1024-AES': 12; }; /** Encryption overhead by algorithm (in bytes) */ OVERHEAD: { readonly 'AES-256-GCM': 16; readonly 'AES-256-CBC': 16; readonly 'AES-256-CTR': 0; readonly 'Kyber-768-AES': number; readonly 'Kyber-1024-AES': number; }; }; /** * Bunkor API endpoints */ export declare const BUNKOR_ENDPOINTS: { /** File upload endpoint */ readonly UPLOAD: "/v1/files/upload"; /** File download endpoint */ readonly DOWNLOAD: "/v1/files/:fileId/download"; /** Get file metadata */ readonly GET_FILE: "/v1/files/:fileId"; /** List files */ readonly LIST_FILES: "/v1/files"; /** Delete file */ readonly DELETE_FILE: "/v1/files/:fileId"; /** Share file access */ readonly SHARE: "/v1/files/:fileId/share"; /** Get share link */ readonly GET_SHARE: "/v1/shares/:shareId"; /** Audit log */ readonly AUDIT_LOG: "/v1/files/:fileId/audit"; /** Key management */ readonly KEYS: "/v1/keys"; readonly GET_KEY: "/v1/keys/:keyId"; readonly WRAP_KEY: "/v1/keys/wrap"; readonly UNWRAP_KEY: "/v1/keys/unwrap"; /** Health check */ readonly HEALTH: "/v1/health"; }; /** * Security guidelines */ export declare const SECURITY_GUIDELINES: { /** * Minimum password strength requirements */ PASSWORD: { MIN_LENGTH: number; REQUIRE_UPPERCASE: boolean; REQUIRE_LOWERCASE: boolean; REQUIRE_NUMBERS: boolean; REQUIRE_SPECIAL_CHARS: boolean; RECOMMENDED_LENGTH: number; }; /** * Key management best practices */ KEY_MANAGEMENT: { NEVER_LOG_KEYS: boolean; NEVER_STORE_PLAINTEXT_KEYS: boolean; USE_SECURE_STORAGE: boolean; ROTATE_KEYS_PERIODICALLY: boolean; ROTATION_INTERVAL_DAYS: number; }; /** * File encryption best practices */ FILE_ENCRYPTION: { USE_AES_GCM: boolean; GENERATE_UNIQUE_IV: boolean; VERIFY_AUTHENTICATION_TAG: boolean; USE_STRONG_PASSWORDS: boolean; }; }; //# sourceMappingURL=config.d.ts.map