123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace Aws\Crypto;
- abstract class MaterialsProvider implements MaterialsProviderInterface
- {
- private static $supportedKeySizes = [
- 128 => true,
- 192 => true,
- 256 => true,
- ];
-
- public static function isSupportedKeySize($keySize)
- {
- return isset(self::$supportedKeySizes[$keySize]);
- }
-
- abstract public function fromDecryptionEnvelope(MetadataEnvelope $envelope);
-
- abstract public function getMaterialsDescription();
-
- abstract public function getWrapAlgorithmName();
-
- abstract public function encryptCek($unencryptedCek, $materialDescription);
-
- abstract public function decryptCek($encryptedCek, $materialDescription);
-
- public function generateCek($keySize)
- {
- return openssl_random_pseudo_bytes($keySize / 8);
- }
-
- public function generateIv($openSslName)
- {
- return openssl_random_pseudo_bytes(
- openssl_cipher_iv_length($openSslName)
- );
- }
- }
|