PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

openssl_private_decrypt> <openssl_pkey_get_public
Last updated: Fri, 01 Aug 2008

view this page in

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_newGenerates a new private key

Descrierea

resource openssl_pkey_new ([ array $configargs ] )

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public().

Notă: Trebuie să aveţi un fişier openssl.cnf valid instalat pentru ca această funcţie să opereze corect. Vedeţi notele în secţiunea de instalare pentru informaţii suplimentare.

Parametri

configargs

You can finetune the key generation (such as specifying the number of bits) using configargs . See openssl_csr_new() for more information about configargs .

Valorile întroarse

Returns a resource identifier for the pkey on success, or FALSE on error.



add a note add a note User Contributed Notes
openssl_pkey_new
Brad
02-Apr-2008 10:17
It's easier than all that, if you just want the keys:

<?php
// Create the keypair
$res=openssl_pkey_new();

// Get private key
openssl_pkey_export($res, $privkey);

// Get public key
$pubkey=openssl_pkey_get_details($res);
$pubkey=$pubkey["key"];
?>
NOSPAM dot alchaemist at hiperlinux dot com dot ar
30-May-2004 09:17
As you probably found, getting the public key is not as direct as you might think with this documentation.

You can easily get into messages like:

Warning: openssl_pkey_get_public(): Don't know how to get public key from this private key (the documentation lied) in D:\www\keys.php on line 4

The correct steps to get the whole thing seem to be these:

<?
$dn
= array("countryName" => 'XX', "stateOrProvinceName" => 'State', "localityName" => 'SomewhereCity', "organizationName" => 'MySelf', "organizationalUnitName" => 'Whatever', "commonName" => 'mySelf', "emailAddress" => 'user@domain.com');
$privkeypass = '1234';
$numberofdays = 365;

$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, $numberofdays);
openssl_x509_export($sscert, $publickey);
openssl_pkey_export($privkey, $privatekey, $privkeypass);
openssl_csr_export($csr, $csrStr);

echo
$privatekey; // Will hold the exported PriKey
echo $publickey// Will hold the exported PubKey
echo $csrStr;     // Will hold the exported Certificate
?>

Now all you need to do is to make some research on each individual function.

openssl_private_decrypt> <openssl_pkey_get_public
Last updated: Fri, 01 Aug 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites