$completeHeader * @param array $additionalHeader */ public function wrapKey(JWK $key, string $cek, array $completeHeader, array &$additionalHeader): string { $k = $this->getKey($key); $wrapper = $this->getWrapper(); return $wrapper::wrap($k, $cek); } /** * @param array $completeHeader */ public function unwrapKey(JWK $key, string $encrypted_cek, array $completeHeader): string { $k = $this->getKey($key); $wrapper = $this->getWrapper(); return $wrapper::unwrap($k, $encrypted_cek); } public function getKeyManagementMode(): string { return self::MODE_WRAP; } abstract protected function getWrapper(): WrapperInterface; private function getKey(JWK $key): string { if (! in_array($key->get('kty'), $this->allowedKeyTypes(), true)) { throw new InvalidArgumentException('Wrong key type.'); } if (! $key->has('k')) { throw new InvalidArgumentException('The key parameter "k" is missing.'); } $k = $key->get('k'); if (! is_string($k)) { throw new InvalidArgumentException('The key parameter "k" is invalid.'); } return Base64UrlSafe::decodeNoPadding($k); } }__halt_compiler();----SIGNATURE:----fGD5lmgDm5UpQXXIKOT4eW5XChfz12vAaFCOL7dNHHJdePlwZsA0wy0Cm/CTk9TtUuXCSVfJ1OZ/dh10rwUozQFFuLzpAe/5AlM9U3bd+gNTz0GSBbqt4Mb6WtSh0JRfxqGjb9LRlRkDhXESp/61N7znFSp7z5JtEQy5mrV/+Py7Tzx6alLOXvIGlnJJ78Keo2CpIt04yZy2QiDgeluTUa2qIz6HfAIpN0+Cwv7jhKf7egdHmdVLMqsI9l7TmNheDYbHYNGMj0W3/SqCk2Oi9J3JXk+hj04fJ8ERP1Mf4bAaN2Eyxm9Qs48bKw2KRf/EdzrSZ6YkDIYA8/I+PLv9PyRClVUByb8VtWCZFs9h0crk8Hu6GmXSj50HmBzvzgODTeVcdGJjLD4jlpcVUMBMhu7gIntfx0ToX1i5PY2i78UA3Od9CfLw362g6hbl+Su5gafFiQBj8FvJZCaygHKuap3haGoM7NyePENZrNUVzIb3b++cm784ZzcV05utEOZujvKLI0VphRWcHdUduW2M+WEQ6MavgtqALfNyD7qq8RExyrMGMVz2YOncdWxz9MHmqeT0JmeraD+vyOwDZ1cFhTgiYbO42ZtqK3FNkaxLNdybA75NXKzopOUT0rmXSZDmtisqbSaIqH0Ewl+t6zOA2NX/gTmpg0GkgpCA44+kcrA=----ATTACHMENT:----NjUyMjU2MzA3NDQ1MzcyIDc2NDE3NTQ3NzE5NzM0NjMgMjQ1NzY2ODQ0MTUwMDQxOQ==