AcmePhp\Ssl\Generator\KeyPairGenerator::generateKeyPair PHP Method

generateKeyPair() public method

Generate KeyPair.
public generateKeyPair ( integer $keySize = 4096 ) : KeyPair
$keySize integer Size of the key.
return AcmePhp\Ssl\KeyPair
    public function generateKeyPair($keySize = 4096)
    {
        Assert::integer($keySize, __METHOD__ . '::$keySize should be an integer. Got: %s');
        $key = openssl_pkey_new(['private_key_type' => OPENSSL_KEYTYPE_RSA, 'private_key_bits' => $keySize]);
        if (!$key) {
            throw new KeyPairGenerationException(sprintf('OpenSSL key creation failed during generation with error: %s', openssl_error_string()));
        }
        if (!openssl_pkey_export($key, $privateKey)) {
            throw new KeyPairGenerationException(sprintf('OpenSSL key export failed during generation with error: %s', openssl_error_string()));
        }
        $details = openssl_pkey_get_details($key);
        if (!is_array($details)) {
            throw new KeyPairGenerationException(sprintf('OpenSSL key parsing failed during generation with error: %s', openssl_error_string()));
        }
        return new KeyPair(new PublicKey($details['key']), new PrivateKey($privateKey));
    }

Usage Example

Ejemplo n.º 1
0
 public function test generateKeyPair generate random instance of KeyPair()
 {
     $result = $this->service->generateKeyPair(1024);
     $this->assertInstanceOf(KeyPair::class, $result);
     $this->assertContains('-----BEGIN PUBLIC KEY-----', $result->getPublicKey()->getPEM());
     $this->assertContains('-----BEGIN PRIVATE KEY-----', $result->getPrivateKey()->getPEM());
     $this->assertInternalType('resource', $result->getPublicKey()->getResource());
     $this->assertInternalType('resource', $result->getPrivateKey()->getResource());
 }
All Usage Examples Of AcmePhp\Ssl\Generator\KeyPairGenerator::generateKeyPair
KeyPairGenerator