. * */ namespace OCA_Encryption; /** * Class for hook specific logic */ class Hooks { # TODO: use passphrase for encrypting private key that is separate to the login password /** * @brief Startup encryption backend upon user login * @note This method should never be called for users using client side encryption */ public static function login( $params ) { if ( Crypt::mode( $params['uid'] ) == 'server' ) { $view = new \OC_FilesystemView( '/' ); $util = new Util( $view, $params['uid'] ); if ( !$util->ready()) { return $util->setupServerSide( $params['password'] ); } $encryptedKey = Keymanager::getPrivateKey( $params['uid'] ); $_SESSION['enckey'] = Crypt::symmetricEncryptFileContent( $encryptedKey, $params['password'] ); } return true; } /** * @brief update the encryption key of the file uploaded by the client */ public static function updateKeyfile( $params ) { if (Crypt::mode(\OCP\User::getUser()) == 'client') if (isset($params['properties']['key'])) { Keymanager::setFileKey(\OCP\User::getUser(), $params['path'], $params['properties']['key']); } else { error_log("Client side encryption is enabled but the client doesn't provide a encryption key for the file!"); } } } ?>