====== ScriptlogCryptonize ====== **Layer:** ''Core'' · **Source:** ''lib/core/ScriptlogCryptonize.php:23'' (lines 23–608) ---- class ScriptlogCryptonize ======= Docblock Metadata ======= ^ Tag ^ Value ^ | ''@category'' | Core Class | | ''@author'' | M.Noermoehammad | | ''@license'' | MIT | | ''@version'' | 1.1 | | ''@since'' | Since Release 1.0 | ======= Inheritance ======= //No parent, interface or trait. This is a root type.// ======= Constants (4) ======= ^ Visibility ^ Name ^ Value ^ Line ^ | ''-'' | ''METHOD'' | '''AES-256-CBC';'' | 25 | | ''-'' | ''ENCRYPTION_KEY_LEN'' | ''32;'' | 26 | | ''-'' | ''HMAC_KEY_LEN'' | ''32;'' | 27 | | ''-'' | ''TOTAL_KEY_LEN'' | ''64;'' | 28 | ======= Properties (0) ======= //None declared.// ======= Methods (18) ======= ^ Visibility ^ Method ^ Summary ^ Line ^ | public static | ''generateSecretKey()'' | Generate a secure secret key (64 bytes for encryption+HMAC) | 35 | | private static | ''deriveKeys()'' | Derive encryption key and HMAC key from master key | 47 | | public static | ''cipherMessage()'' | Encrypt a message using Laminas\Crypt | 82 | | public static | ''decipherMessage()'' | Decrypt a message using Laminas\Crypt | 97 | | public static | ''scriptlogCipher()'' | Encrypt a message using Defuse\Crypto | 112 | | public static | ''scriptlogDecipher()'' | Decrypt a message using Defuse\Crypto | 124 | | public static | ''encryptAES()'' | Encrypt data using AES-256-CBC with HMAC authentication | 136 | | public static | ''decryptAES()'' | Decrypt data using AES-256-CBC with HMAC authentication | 187 | | public static | ''scriptlogCipherKey()'' | Load or generate a Defuse\Crypto key | 262 | | private static | ''updateConfigKeyPath()'' | Update config.php, .env, and database with new key path | 333 | | private static | ''updateDatabaseKeyPath()'' | Update defuse_key_path in database settings table | 367 | | private static | ''resolvePath()'' | Resolve a path - returns absolute path as-is, resolves relative from app root | 412 | | private static | ''getDefuseKeyPath()'' | Get the Defuse key path - checks config, database, then scans default directory… | 427 | | private static | ''getKeyPathFromDatabase()'' | Get defuse key path from database settings | 474 | | private static | ''generateSecureKey()'' | Generate a new secure key in the default directory | 526 | | private static | ''generateRandomBytes()'' | Generate random bytes securely | 553 | | private static | ''saveKeyToFile()'' | Save encryption key to a file in the given directory | 576 | | private static | ''logError()'' | Log encryption errors | 597 | ======== generateSecretKey() ======== public static function generateSecretKey(): string //lines 35–38 (4)// Generate a secure secret key (64 bytes for encryption+HMAC) //Takes no parameters.// **Returns:** ''string'' — string ======== deriveKeys() ======== private static function deriveKeys(string $masterKey): array //lines 47–73 (27)// Derive encryption key and HMAC key from master key ^ Parameter ^ Type ^ Default ^ Description ^ | ''$masterKey'' | ''string'' | //required// | The 64-byte master key | **Returns:** ''array'' — array Returns ['encryption' => string, 'hmac' => string] **Throws:** [[scriptlog:lib:core:scriptlogcryptonizeexception|''ScriptlogCryptonizeException'']] ======== cipherMessage() ======== public static function cipherMessage(string $message, string $key): string //lines 82–88 (7)// Encrypt a message using Laminas\Crypt ^ Parameter ^ Type ^ Default ^ Description ^ | ''$message'' | ''string'' | //required// | //none// | | ''$key'' | ''string'' | //required// | //none// | **Returns:** ''string'' — string ======== decipherMessage() ======== public static function decipherMessage(string $ciphertext, string $key) //lines 97–103 (7)// Decrypt a message using Laminas\Crypt ^ Parameter ^ Type ^ Default ^ Description ^ | ''$ciphertext'' | ''string'' | //required// | //none// | | ''$key'' | ''string'' | //required// | //none// | **Returns:** ''(none declared)'' — string|bool ======== scriptlogCipher() ======== public static function scriptlogCipher(string $message, Key $key): string //lines 112–115 (4)// Encrypt a message using Defuse\Crypto ^ Parameter ^ Type ^ Default ^ Description ^ | ''$message'' | ''string'' | //required// | //none// | | ''$key'' | ''Key'' | //required// | //none// | **Returns:** ''string'' — string ======== scriptlogDecipher() ======== public static function scriptlogDecipher(string $ciphertext, Key $key): string //lines 124–127 (4)// Decrypt a message using Defuse\Crypto ^ Parameter ^ Type ^ Default ^ Description ^ | ''$ciphertext'' | ''string'' | //required// | //none// | | ''$key'' | ''Key'' | //required// | //none// | **Returns:** ''string'' — string ======== encryptAES() ======== public static function encryptAES(string $plaintext, string $masterKey): string //lines 136–177 (42)// Encrypt data using AES-256-CBC with HMAC authentication ^ Parameter ^ Type ^ Default ^ Description ^ | ''$plaintext'' | ''string'' | //required// | //none// | | ''$masterKey'' | ''string'' | //required// | 64-byte master key (or 32-byte for backward compat) | **Returns:** ''string'' — string Base64 encoded combined ciphertext ======== decryptAES() ======== public static function decryptAES(string $ciphertextBase64, string $masterKey): string //lines 187–255 (69)// Decrypt data using AES-256-CBC with HMAC authentication ^ Parameter ^ Type ^ Default ^ Description ^ | ''$ciphertextBase64'' | ''string'' | //required// | Base64 encoded combined ciphertext | | ''$masterKey'' | ''string'' | //required// | 64-byte master key | **Returns:** ''string'' — string **Throws:** [[scriptlog:lib:core:scriptlogcryptonizeexception|''ScriptlogCryptonizeException'']] ======== scriptlogCipherKey() ======== public static function scriptlogCipherKey(): Key //lines 262–326 (65)// Load or generate a Defuse\Crypto key //Takes no parameters.// **Returns:** ''Key'' — Key ======== updateConfigKeyPath() ======== private static function updateConfigKeyPath(string $newKeyPath): void //lines 333–359 (27)// Update config.php, .env, and database with new key path ^ Parameter ^ Type ^ Default ^ Description ^ | ''$newKeyPath'' | ''string'' | //required// | Absolute path to the key file | **Returns:** ''void'' ======== updateDatabaseKeyPath() ======== private static function updateDatabaseKeyPath(string $newKeyPath, string $configPath): void //lines 367–404 (38)// Update defuse_key_path in database settings table ^ Parameter ^ Type ^ Default ^ Description ^ | ''$newKeyPath'' | ''string'' | //required// | //none// | | ''$configPath'' | ''string'' | //required// | //none// | **Returns:** ''void'' ======== resolvePath() ======== private static function resolvePath(string $path): string //lines 412–420 (9)// Resolve a path - returns absolute path as-is, resolves relative from app root ^ Parameter ^ Type ^ Default ^ Description ^ | ''$path'' | ''string'' | //required// | //none// | **Returns:** ''string'' — string ======== getDefuseKeyPath() ======== private static function getDefuseKeyPath(): string //lines 427–466 (40)// Get the Defuse key path - checks config, database, then scans default directory for existing keys //Takes no parameters.// **Returns:** ''string'' — string ======== getKeyPathFromDatabase() ======== private static function getKeyPathFromDatabase(string $configPath): ?string //lines 474–518 (45)// Get defuse key path from database settings ^ Parameter ^ Type ^ Default ^ Description ^ | ''$configPath'' | ''string'' | //required// | //none// | **Returns:** ''?string'' — string|null ======== generateSecureKey() ======== private static function generateSecureKey(string $keyDir): string //lines 526–544 (19)// Generate a new secure key in the default directory ^ Parameter ^ Type ^ Default ^ Description ^ | ''$keyDir'' | ''string'' | //required// | //none// | **Returns:** ''string'' — string ======== generateRandomBytes() ======== private static function generateRandomBytes(int $length): string //lines 553–567 (15)// Generate random bytes securely ^ Parameter ^ Type ^ Default ^ Description ^ | ''$length'' | ''int'' | //required// | //none// | **Returns:** ''string'' — string **Throws:** ''\RuntimeException'' ======== saveKeyToFile() ======== private static function saveKeyToFile(string $keyAscii, string $keyDir): string //lines 576–590 (15)// Save encryption key to a file in the given directory ^ Parameter ^ Type ^ Default ^ Description ^ | ''$keyAscii'' | ''string'' | //required// | ASCII-safe key string | | ''$keyDir'' | ''string'' | //required// | Directory to save the key | **Returns:** ''string'' — string Path to the saved key file ======== logError() ======== private static function logError(\Throwable $e): void //lines 597–607 (11)// Log encryption errors ^ Parameter ^ Type ^ Default ^ Description ^ | ''$e'' | ''\Throwable'' | //required// | //none// | **Returns:** ''void'' ======= Imports ======= ^ Alias ^ Fully-qualified name ^ | ''Crypto'' | ''Defuse\Crypto\Crypto'' | | ''BadFormatException'' | ''Defuse\Crypto\Exception\BadFormatException'' | | ''Key'' | ''Defuse\Crypto\Key'' | | ''BlockCipher'' | ''Laminas\Crypt\BlockCipher'' | ---- //This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//