<?php
 declare(strict_types=1); namespace SpomkyLabs\Pki\CryptoTypes\AlgorithmIdentifier\Cipher; use SpomkyLabs\Pki\ASN1\Type\UnspecifiedType; use SpomkyLabs\Pki\CryptoTypes\AlgorithmIdentifier\SpecificAlgorithmIdentifier; use UnexpectedValueException; final class AES128CBCAlgorithmIdentifier extends AESCBCAlgorithmIdentifier { protected function __construct(string $iv) { parent::__construct(self::OID_AES_128_CBC, $iv); } public static function create(string $iv): self { return new self($iv); } public static function fromASN1Params(?UnspecifiedType $params = null): SpecificAlgorithmIdentifier { if (! isset($params)) { throw new UnexpectedValueException('No parameters.'); } $iv = $params->asOctetString() ->string(); return self::create($iv); } public function name(): string { return 'aes128-CBC'; } public function keySize(): int { return 16; } } 