Server IP : 184.154.167.98 / Your IP : 18.190.219.200 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/www/sesiones/3rdparty/aws/aws-sdk-php/src/Crypto/ |
Upload File : |
<?php namespace Aws\Crypto; use GuzzleHttp\Psr7; use GuzzleHttp\Psr7\StreamDecoratorTrait; use Psr\Http\Message\StreamInterface; use \RuntimeException; /** * @internal Represents a stream of data to be gcm encrypted. */ class AesGcmEncryptingStream implements AesStreamInterface { use StreamDecoratorTrait; private $aad; private $initializationVector; private $key; private $keySize; private $plaintext; private $tag = ''; private $tagLength; /** * @param StreamInterface $plaintext * @param string $key * @param string $initializationVector * @param string $aad * @param int $tagLength * @param int $keySize */ public function __construct( StreamInterface $plaintext, $key, $initializationVector, $aad = '', $tagLength = 16, $keySize = 256 ) { if (version_compare(PHP_VERSION, '7.1', '<')) { throw new RuntimeException( 'AES-GCM decryption is only supported in PHP 7.1 or greater' ); } $this->plaintext = $plaintext; $this->key = $key; $this->initializationVector = $initializationVector; $this->aad = $aad; $this->tagLength = $tagLength; $this->keySize = $keySize; } public function getOpenSslName() { return "aes-{$this->keySize}-gcm"; } public function getAesName() { return 'AES/GCM/NoPadding'; } public function getCurrentIv() { return $this->initializationVector; } public function createStream() { return Psr7\stream_for(openssl_encrypt( (string) $this->plaintext, $this->getOpenSslName(), $this->key, OPENSSL_RAW_DATA, $this->initializationVector, $this->tag, $this->aad, $this->tagLength )); } /** * @return string */ public function getTag() { return $this->tag; } public function isWritable() { return false; } }