<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.openssl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.openssl-pkey-new.php',
    1 => 'openssl_pkey_new',
    2 => 'Gera uma nova chave privada',
  ),
  'up' => 
  array (
    0 => 'ref.openssl.php',
    1 => 'Fun&ccedil;&otilde;es de OpenSSL',
  ),
  'prev' => 
  array (
    0 => 'function.openssl-pkey-get-public.php',
    1 => 'openssl_pkey_get_public',
  ),
  'next' => 
  array (
    0 => 'function.openssl-private-decrypt.php',
    1 => 'openssl_private_decrypt',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/openssl/functions/openssl-pkey-new.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.openssl-pkey-new" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">openssl_pkey_new</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.2.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">openssl_pkey_new</span> &mdash; <span class="dc-title">Gera uma nova chave privada</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.openssl-pkey-new-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>openssl_pkey_new</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><span class="type"><a href="class.opensslasymmetrickey.php" class="type OpenSSLAsymmetricKey">OpenSSLAsymmetricKey</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>openssl_pkey_new()</strong></span> gera uma nova chave
   privada.
   Como obter o componente público da chave é mostrado no exemplo abaixo.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
 <span class="simpara">
  É preciso ter um arquivo <var class="filename">openssl.cnf</var> válido instalado
  para que esta função funcione corretamente.
  Consulte as notas na <a href="openssl.installation.php" class="link">seção de
  instalação</a> para obter mais informações.
 </span>
</p></blockquote>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.openssl-pkey-new-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">options</code></dt>
     <dd>
      <p class="para">
       É possível fazer ajuste fino na geração de chaves (como especificar o número de
       bits ou parâmetros) usando <code class="parameter">options</code>.
       Estas opções podem ser parâmetro específicos do algoritmo usado para geração da chave
       ou opções genéricas usadas também na geração de <abbr title="Certificate Signing Request">CSR</abbr> se não especificadas.
       Consulte <span class="function"><a href="function.openssl-csr-new.php" class="function">openssl_csr_new()</a></span> para obter mais informações sobre
       como usar o parâmetro <code class="parameter">options</code> para um <abbr title="Certificate Signing Request">CSR</abbr>.
       Entre estas opções, somente <code class="literal">private_key_bits</code>,
       <code class="literal">private_key_type</code>, <code class="literal">curve_name</code>,
       e <code class="literal">config</code> são usadas para geração de chaves.
       Opções específicas de algoritmos são usadas se o array associativo incluir uma das chaves específicas.
       <ul class="itemizedlist">
        <li class="listitem">
         <span class="simpara">
          Chave <code class="literal">&quot;rsa&quot;</code> para definir os parâmetros RSA.
         </span>
         <table class="doctable informaltable">
          
           <thead>
            <tr>
             <th>Opções</th>
             <th>Tipo</th>
             <th>Formato</th>
             <th>Obrigatória</th>
             <th>Descrição</th>
            </tr>

           </thead>

           <tbody class="tbody">
            <tr>
             <td><code class="literal">&quot;n&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>sim</td>
             <td>resto</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;e&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>expoente público</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;d&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>sim</td>
             <td>expoente privado</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;p&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>primo 1</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;q&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>primo 2</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;dmp1&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>expoente 1, d mod (p-1)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;dmq1&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>expoente 2, d mod (q-1)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;iqmp&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coeficiente, (inverso de q) mod p</td>
            </tr>

           </tbody>
          
         </table>

        </li>
        <li class="listitem">
         <span class="simpara">
          Chave <code class="literal">&quot;dsa&quot;</code> para definir parâmetros DSA.
         </span>
         <table class="doctable informaltable">
          
           <thead>
            <tr>
             <th>Opções</th>
             <th>Tipo</th>
             <th>Formato</th>
             <th>Obrigatória</th>
             <th>description</th>
            </tr>

           </thead>

           <tbody class="tbody">
            <tr>
             <td><code class="literal">&quot;p&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>número primo (público)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;q&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>subprimo de 160 bits, q | p-1 (público)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;g&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>gerador de subgrupo (público)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;priv_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>chave privada x</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;pub_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>chave pública y = g^x</td>
            </tr>

           </tbody>
          
         </table>

        </li>
        <li class="listitem">
         <span class="simpara">
          Chave <code class="literal">&quot;dh&quot;</code> para parâmetros DH (troca de chaves Diffie–Hellman).
         </span>
         <table class="doctable informaltable">
          
           <thead>
            <tr>
             <th>Opções</th>
             <th>Tipo</th>
             <th>Formato</th>
             <th>Obrigatória</th>
             <th>Descrição</th>
            </tr>

           </thead>

           <tbody class="tbody">
            <tr>
             <td><code class="literal">&quot;p&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>número primo (compartilhado)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;g&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>gerador de Z_p (compartilhado)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;priv_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>valor x do DH privado</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;pub_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>valor g^x do DH público</td>
            </tr>

           </tbody>
          
         </table>

        </li>
        <li class="listitem">
         <span class="simpara">
          Chave <code class="literal">&quot;ec&quot;</code> para parâmetros de curva elíptica
         </span>
         <table class="doctable informaltable">
          
           <thead>
            <tr>
             <th>Opções</th>
             <th>Tipo</th>
             <th>Formato</th>
             <th>Obrigatória</th>
             <th>Descrição</th>
            </tr>

           </thead>

           <tbody class="tbody">
            <tr>
             <td><code class="literal">&quot;curve_name&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>Nome</td>
             <td>não</td>
             <td>Nome da curva, consulte <span class="function"><a href="function.openssl-get-curve-names.php" class="function">openssl_get_curve_names()</a></span></td>
            </tr>

            <tr>
             <td><code class="literal">&quot;p&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>primo do campo para a curva sobre Fp</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;a&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coeficiente da curva para Fp: y^2 mod p = x^3 + ax + b mod p</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;b&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coeficiente da curva para Fp: y^2 mod p = x^3 + ax + b mod p</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;seed&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>semente de número aleatório opcional usada para gerar o coeficiente b</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;generator&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>ponto codificado em binário</td>
             <td>não</td>
             <td>ponto de geração da curva</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;g_x&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coordenada x do ponto de geração da curva</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;g_y&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coordenada y do ponto de geração da curva</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;cofactor&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>co-fator da curva</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;order&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>ordem da curva</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;x&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coordenada x (pública)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;y&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>coordenada y (pública)</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;d&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>número binário</td>
             <td>não</td>
             <td>chave privada</td>
            </tr>

           </tbody>
          
         </table>

        </li>
        <li class="listitem">
         <span class="simpara">
          Chaves <code class="literal">&quot;x25519&quot;</code>, <code class="literal">&quot;x448&quot;</code>,
          <code class="literal">&quot;ed25519&quot;</code> e <code class="literal">&quot;ed448&quot;</code> para
          parâmetros Curve25519 e Curve448.
         </span>
         <table class="doctable informaltable">
          
           <thead>
            <tr>
             <th>Opções</th>
             <th>Tipo</th>
             <th>Formato</th>
             <th>Obrigatória</th>
             <th>Descrição</th>
            </tr>

           </thead>

           <tbody class="tbody">
             <tr>
             <td><code class="literal">&quot;priv_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>chave privada</td>
            </tr>

            <tr>
             <td><code class="literal">&quot;pub_key&quot;</code></td>
             <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
             <td>chave PEM</td>
             <td>não</td>
             <td>chave pública</td>
            </tr>

           </tbody>
          
         </table>

        </li>
       </ul>
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.openssl-pkey-new-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Retorna uma instância de <span class="classname"><a href="class.opensslasymmetrickey.php" class="classname">OpenSSLAsymmetricKey</a></span> para
   a chave privada em caso de sucesso ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> em caso de erro.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.openssl-pkey-new-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versão</th>
      <th>Descrição</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.4.0</td>
      <td>
       Adicionado suporte para chaves baseadas em Curve25519 e Curve448 com a instrodução dos
       campos <code class="literal">x25519</code>, <code class="literal">ed25519</code>, <code class="literal">x448</code>
       e <code class="literal">ed448</code>.
      </td>
     </tr>

     <tr>
      <td>8.3.0</td>
      <td>
       Adicionado suporte para geração de chaves EC com parâmetros EC customizados.
       Especificamente, com a introdução das opções EC:
       <code class="literal">p</code>, <code class="literal">a</code>, <code class="literal">b</code>, <code class="literal">seed</code>,
       <code class="literal">generator</code>, <code class="literal">g_x</code>, <code class="literal">g_y</code>,
       <code class="literal">cofactor</code> e <code class="literal">order</code>.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       Em caso de sucesso, esta função retorna uma instância <span class="classname"><a href="class.opensslasymmetrickey.php" class="classname">OpenSSLAsymmetricKey</a></span> agora;
       anteriormente, retornava um <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> do tipo <code class="literal">OpenSSL key</code>.
      </td>
     </tr>

     <tr>
      <td>7.1.0</td>
      <td>
       A chave <code class="literal">curve_name</code> do parâmetro <code class="parameter">options</code> foi
       adicionada para tornar possível a criação de chaves EC com base nos algoritmos de Curva Elíptica.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.openssl-pkey-new-examples">
  <h3 class="title">Exemplos</h3>
  <div class="example" id="function.openssl-pkey-new.example.public-key">
   <p><strong>Exemplo #1 Obtendo a chave pública de uma chave privada</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$private_key </span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_pkey_new</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$public_key_pem </span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_pkey_get_details</span><span style="color: #007700">(</span><span style="color: #0000BB">$private_key</span><span style="color: #007700">)[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">];<br />echo </span><span style="color: #0000BB">$public_key_pem</span><span style="color: #007700">, </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$public_key </span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_pkey_get_public</span><span style="color: #007700">(</span><span style="color: #0000BB">$public_key_pem</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$public_key</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>O exemplo acima produzirá
algo semelhante a:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">// Saída anterior ao PHP 8.0.0; observe que a função retorna um recurso
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA
hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv
3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ
rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI
dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH
x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08
5wIDAQAB
-----END PUBLIC KEY-----

resource(6) of type (OpenSSL key)

// Saída a partir do PHP 8.0.0; observe que a função retorna um objeto
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA
hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv
3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ
rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI
dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH
x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08
5wIDAQAB
-----END PUBLIC KEY-----

object(OpenSSLAsymmetricKey)#2 (0) {
}</pre>
</div>
   </div>
  </div>

  <div class="example" id="function.openssl-pkey-new.example.rsa-key">
   <p><strong>Exemplo #2 Gerando chave RSA a partir de parâmetros</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$nhex </span><span style="color: #007700">= </span><span style="color: #DD0000">"BBF82F090682CE9C2338AC2B9DA871F7368D07EED41043A440D6B6F07454F51F" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"B8DFBAAF035C02AB61EA48CEEB6FCD4876ED520D60E1EC4619719D8A5B8B807F" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"AFB8E0A3DFC737723EE6B4B7D93A2584EE6A649D060953748834B2454598394E" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"E0AAB12D7B61A51F527A9A41F6C1687FE2537298CA2A8F5946F8E5FD091DBDCB"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$ehex </span><span style="color: #007700">= </span><span style="color: #DD0000">"11"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$dhex </span><span style="color: #007700">= </span><span style="color: #DD0000">"A5DAFC5341FAF289C4B988DB30C1CDF83F31251E0668B42784813801579641B2" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"9410B3C7998D6BC465745E5C392669D6870DA2C082A939E37FDCB82EC93EDAC9" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"7FF3AD5950ACCFBC111C76F1A9529444E56AAF68C56C092CD38DC3BEF5D20A93" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"9926ED4F74A13EDDFBE1A1CECC4894AF9428C2B7B8883FE4463A4BC85B1CB3C1"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$phex </span><span style="color: #007700">= </span><span style="color: #DD0000">"EECFAE81B1B9B3C908810B10A1B5600199EB9F44AEF4FDA493B81A9E3D84F632" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"124EF0236E5D1E3B7E28FAE7AA040A2D5B252176459D1F397541BA2A58FB6599"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$qhex </span><span style="color: #007700">= </span><span style="color: #DD0000">"C97FB1F027F453F6341233EAAAD1D9353F6C42D08866B1D05A0F2035028B9D86" </span><span style="color: #007700">.<br />        </span><span style="color: #DD0000">"9840B41666B42E92EA0DA3B43204B5CFCE3352524D0416A5A441E700AF461503"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$dphex </span><span style="color: #007700">= </span><span style="color: #DD0000">"11"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$dqhex </span><span style="color: #007700">= </span><span style="color: #DD0000">"11"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$qinvhex </span><span style="color: #007700">= </span><span style="color: #DD0000">"b06c4fdabb6301198d265bdbae9423b380f271f73453885093077fcd39e2119f" </span><span style="color: #007700">.<br />           </span><span style="color: #DD0000">"c98632154f5883b167a967bf402b4e9e2e0f9656e698ea3666edfb25798039f7"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$rsa</span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_pkey_new</span><span style="color: #007700">([<br />    </span><span style="color: #DD0000">'rsa' </span><span style="color: #007700">=&gt; [<br />        </span><span style="color: #DD0000">'n' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$nhex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'e' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$ehex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'d' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$dhex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'p' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$phex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'q' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$qhex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'dmp1' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$dphex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'dmq1' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$dqhex</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'iqmp' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">hex2bin</span><span style="color: #007700">(</span><span style="color: #0000BB">$qinvhex</span><span style="color: #007700">),<br />    ],<br />]);<br /></span><span style="color: #0000BB">$details </span><span style="color: #007700">= </span><span style="color: #0000BB">openssl_pkey_get_details</span><span style="color: #007700">(</span><span style="color: #0000BB">$rsa</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$details</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


</div><?php manual_footer($setup); ?>