Server IP : 184.154.167.98 / Your IP : 3.146.107.49 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/puertode/public_html/fotografico/3rdparty/aws/aws-sdk-php/src/Crypto/ |
Upload File : |
<?php namespace Aws\Crypto; abstract class MaterialsProvider { private static $supportedKeySizes = [ 128 => true, 192 => true, 256 => true, ]; /** * Returns if the requested size is supported by AES. * * @param int $keySize Size of the requested key in bits. * * @return bool */ public static function isSupportedKeySize($keySize) { return isset(self::$supportedKeySizes[$keySize]); } /** * Performs further initialization of the MaterialsProvider based on the * data inside the MetadataEnvelope. * * @param MetadataEnvelope $envelope A storage envelope for encryption * metadata to be read from. * * @return MaterialsProvider * * @throws \RuntimeException Thrown when there is an empty or improperly * formed materials description in the envelope. * * @internal */ abstract public function fromDecryptionEnvelope(MetadataEnvelope $envelope); /** * Returns the material description for this Provider so it can be verified * by encryption mechanisms. * * @return string */ abstract public function getMaterialsDescription(); /** * Returns the wrap algorithm name for this Provider. * * @return string */ abstract public function getWrapAlgorithmName(); /** * Takes a content encryption key (CEK) and description to return an * encrypted key according to the Provider's specifications. * * @param string $unencryptedCek Key for use in encrypting other data * that itself needs to be encrypted by the * Provider. * @param string $materialDescription Material Description for use in * encrypting the $cek. * * @return string */ abstract public function encryptCek($unencryptedCek, $materialDescription); /** * Takes an encrypted content encryption key (CEK) and material description * for use decrypting the key according to the Provider's specifications. * * @param string $encryptedCek Encrypted key to be decrypted by the Provider * for use decrypting other data. * @param string $materialDescription Material Description for use in * encrypting the $cek. * * @return string */ abstract public function decryptCek($encryptedCek, $materialDescription); /** * @param string $keySize Length of a cipher key in bits for generating a * random content encryption key (CEK). * * @return string */ public function generateCek($keySize) { return openssl_random_pseudo_bytes($keySize / 8); } /** * @param string $openSslName Cipher OpenSSL name to use for generating * an initialization vector. * * @return string */ public function generateIv($openSslName) { return openssl_random_pseudo_bytes( openssl_cipher_iv_length($openSslName) ); } }