123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace Aws\Crypto\Cipher;
- use Aws\Exception\CryptoException;
- trait CipherBuilderTrait
- {
- /**
- * Returns an identifier recognizable by `openssl_*` functions, such as
- * `aes-256-cbc` or `aes-128-ctr`.
- *
- * @param string $cipherName Name of the cipher being used for encrypting
- * or decrypting.
- * @param int $keySize Size of the encryption key, in bits, that will be
- * used.
- *
- * @return string
- */
- protected function getCipherOpenSslName($cipherName, $keySize)
- {
- return "aes-{$keySize}-{$cipherName}";
- }
- /**
- * Constructs a CipherMethod for the given name, initialized with the other
- * data passed for use in encrypting or decrypting.
- *
- * @param string $cipherName Name of the cipher to generate for encrypting.
- * @param string $iv Base Initialization Vector for the cipher.
- * @param int $keySize Size of the encryption key, in bits, that will be
- * used.
- *
- * @return CipherMethod
- *
- * @internal
- */
- protected function buildCipherMethod($cipherName, $iv, $keySize)
- {
- switch ($cipherName) {
- case 'cbc':
- return new Cbc(
- $iv,
- $keySize
- );
- default:
- return null;
- }
- }
- /**
- * Performs a reverse lookup to get the openssl_* cipher name from the
- * AESName passed in from the MetadataEnvelope.
- *
- * @param $aesName
- *
- * @return string
- *
- * @internal
- */
- protected function getCipherFromAesName($aesName)
- {
- switch ($aesName) {
- case 'AES/GCM/NoPadding':
- return 'gcm';
- case 'AES/CBC/PKCS5Padding':
- return 'cbc';
- default:
- throw new CryptoException('Unrecognized or unsupported'
- . ' AESName for reverse lookup.');
- }
- }
- }
|