*/ class KeyPairGenerator { private $generator; public function __construct(?PrivateKeyGeneratorInterface $generator = null) { $this->generator = $generator ?: new ChainPrivateKeyGenerator( [ new RsaKeyGenerator(), new EcKeyGenerator(), new DhKeyGenerator(), new DsaKeyGenerator(), ] ); } /** * @param KeyOption|null $keyOption configuration of the key to generate * * @throws KeyPairGenerationException when OpenSSL failed to generate keys */ public function generateKeyPair(?KeyOption $keyOption = null): KeyPair { if (null === $keyOption) { $keyOption = new RsaKeyOption(); } try { $privateKey = $this->generator->generatePrivateKey($keyOption); } catch (KeyGenerationException $e) { throw new KeyPairGenerationException('Fail to generate a KeyPair with the given options', 0, $e); } return new KeyPair( $privateKey->getPublicKey(), $privateKey ); } }__halt_compiler();----SIGNATURE:----HFvMhK90MttnZlgT4QYnLnFYZGrLxlV6if+A9qcMA2ERc6VjPOYc1K2S5jRI9YhljhTREBPJZWlD16ot9rILe20zqUoWzQr+R2TY9LrPz9QYFACBhrwnyCH7Yw6RDOnEjVezYGp4++VIA7AM1F6l4w6lqGllkPD1rzfbThGUNyUJCu5O2fIqWMx4I5rTn2E9A2AosSOwUPbZgZCAdZ7hJU290e6QLgBZeYNCNf0uJ+A2pm/KyfgujvVATpeg7eRxB83mfVxQ0FvjeAkcv5v/sCBG9kmyCjv1GqpdZ2KAapPhgAiRwxHsKtlkExh2Q0asBEkj9OFOo5SvH45z2IPW7qObRtJW+9poFbhS0YwjLetmNE1SRCnLJN4xXVBhr3ysye/k/YdBNHE4z9xOaTQQ/J0f+yClloLkbf5rz90Vv0ALt0O1g1NmSCCAp2GTzKBz2E5Xl487R4tb3FNY9PKWVR0uPnRY8+kqMjvVL2D/hWFpUjRArP6Mqa8JkLjRIl/tJcI5s/g+s2BtRyUZFnY6qFBRXg5ifL13t4eiSdq5pjOpBHhPugk7Do1uIfHVZi77c1mUaxv7GRLoULxibwxZ2eYLSO2n9XqNgkAFyf9ZMBb+cA9nOawPnhKSNMHe1aIEH0Q2xotbbARtYMIO5nk4LDh3/RAcKG6Ufqc1dUgXXfk=----ATTACHMENT:----OTU5MjAzODcyNTAzNTgwIDY0NzcwNzQ5NjI5Njc3MjAgMjYzOTEwMjc1NzgwOTU5NQ==