. */ namespace SP\Domain\Crypt; use Defuse\Crypto\Exception\CryptoException; use SP\Infrastructure\Common\Repositories\NoSuchItemException; /** * Class TemporaryMasterPassService * * @package SP\Domain\Crypt\Services */ interface TemporaryMasterPassServiceInterface { /** * Crea una clave temporal para encriptar la clave maestra y guardarla. * * @param int $maxTime El tiempo máximo de validez de la clave * * @return string * @throws \SP\Domain\Common\Services\ServiceException */ public function create(int $maxTime = 14400): string; /** * Comprueba si la clave temporal es válida * * @param string $pass clave a comprobar * * @return bool * @throws \SP\Domain\Common\Services\ServiceException */ public function checkTempMasterPass(string $pass): bool; /** * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Domain\Common\Services\ServiceException * @throws \PHPMailer\PHPMailer\Exception */ public function sendByEmailForGroup(int $groupId, string $key): void; /** * @throws \PHPMailer\PHPMailer\Exception * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Domain\Common\Services\ServiceException */ public function sendByEmailForAllUsers(string $key): void; /** * Devuelve la clave maestra que ha sido encriptada con la clave temporal * * @param $key string con la clave utilizada para encriptar * * @return string con la clave maestra desencriptada * @throws NoSuchItemException * @throws \SP\Domain\Common\Services\ServiceException * @throws CryptoException */ public function getUsingKey(string $key): string; }