|
|
LXXI. OpenSSLAvertissement | Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concr�tement, TOUT ce qui est document� ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utiliser ce module � vos risques et p�rils. |
Cette extension utilise les fonctions de
pour g�n�rer
et v�rifier les signatures, ainsi que pour sceller (chiffrer)
et ouvrir (d�chiffrer) les donn�es. Vous avez besoin de
OpenSSL >= 0.9.5 pour utiliser ce module.
Cette extension supporte aussi la signature et le cryptage des
courrier �l�ctroniques. Il est aussi possible de
sp�cifier des couples cl�s/certificats d'un grand nombre de
cas, qui rendent le code PHP plus facile � lire. Ces
fonctionnalit�s sont disponibles en d�veloppement sur CVS, et
probablement avec PHP 4.0.6.
ATTENTION : cette extension est encore
exp�rimentale!
OpenSSL offre de nombreuses fonctionnalit�s qui ne sont pas
encore support�es par ce module. Elle seront ajout�es
ult�rieurement.
Un bon nombre de fonctions OpenSSL demandent une cl� et un certificat
comme param�tres. PHP 4.0.5 et plus r�cent utilisait
des cl�s ou certificats sous forme de ressource, retourn�e
par l'une des fonctions openssl_get_xxx(). Les versions ult�rieures
utilisent l'une des m�thodes suivantes :
Certificats
Une ressource X.509 retourn�e par
openssl_x509_read()
Une cha�ne au format
file://path/to/cert.pem;
Le fichier ainsi rep�r� doit contenir un certificat,
encod� au format PEM
Une cha�ne contenant le contenu d'un certificat, encod�
au format PEM.
Cl�s publiques/priv�e
Une ressource cl�, retourn�e par la fonction
openssl_get_publickey() ou
openssl_get_privatekey()
Pour les cl�s publiques seulement : une ressource
X.509
Une cha�ne avec le format :
file://path/to/file.pem.
Le fichier doit contenir une cl� priv� ou un certificat,
encod� au format PEM (il peut contenir les deux).
Une cha�ne contenant une cl� ou un certificat
encod� au format PEM
Pour les cl�s priv�es, vous pouvez aussi utiliser la
syntaxe array($key, $passphrase), o� $key
repr�sente une cl� sp�cifi�e par un
fichier ou une repr�sentation textuelle comme
cit� ci-dessus, et $passphrase repr�sente une
cha�ne contenant la passe-phrase de cette cl�
priv�e.
Lorsque vous appelez une fonction qui va v�rifier une signature ou
un certificat, le param�tre cainfo doit �tre un
tableau contenant les noms d'un dossier et d'un fichier contenant les
tiers de confiance. Si un dossier est sp�cifi�, il doit �tre correct,
car openssl va l'utiliser.
Les fonctions S/MIME utilisent des flags qui sont sp�cifi�s
par un champs de bits. Les valeurs valides sont :
Tableau 1. Constantes PKCS7 Constante | Description |
---|
PKCS7_TEXT |
Ajoute le texte plein en clair dans les en-t�tes du message
sign�/chiffr�. Lors du d�chiffrement ou la v�rification,
il supprime purement et simplement ces donn�es. Si le
message chiffr� ou sign� n'est pas du type MIME, une erreur
surviendra.
| PKCS7_BINARY |
Normalement, le message est converti au format canonique
qui utilise effectivement des CR et LF comme fin de ligne,
comme demand� dans les sp�cification de S/MIME.
Lorsque cette option est activ�e, le message ne sera
pas converti. Cela sert lorsque vous manipulez des donn�es
binaires qui ne sont pas au format MIME.
| PKCS7_NOINTERN |
Lors de la v�rification d'un message, les certificats
(s'il y en a) inclus dans le message sont normalement
utilis� pour rechercher le certificat de signature. Avec
cette option, seul le certificat sp�cifi� par le
param�tre extracerts de la fonction
openssl_pkcs7_verify() est utilis�.
Les certificats fournis peuvent toujours �tre utilis�,
avec un niveau de confiance r�duit.
| PKCS7_NOVERIFY |
Ne v�rifie pas les certificats des signataires d'un message
sign�.
| PKCS7_NOCHAIN |
N'enchaine pas les v�rifications des signataires de
certificats. C'est-�-dire, n'utilise pas les certificats
contenu dans le message.
| PKCS7_NOCERTS |
Lors de la signature d'un message, le certificat du signataire
est normalement inclus. Avec cette option, c'est
d�sactiv�. Cela va r�duire la taille du message,
mais le v�rificateur devra avoir une copie local du certificat
du signataire (pass�e au param�tre
extracerts, avec la fonction
openssl_pkcs7_verify()).
| PKCS7_NOATTR |
Normalement, lorsqu'un message est sign�, un jeu d'attributs
contenant l'heure de signature et l'algorithme sym�trique
support�, est inclus dans le message. Avec cette option,
il n'est pas inclus.
| PKCS7_DETACHED |
Lors de la signature d'un message, utilise la signature
en texte claire, avec le type MIME "multipart/signed".
C'est la valeur par d�faut du param�tre
flags
pour la fonction openssl_pkcs7_sign().
Si vous annulez cette optoin, le message sera sign� de
mani�re opaque, ce qui resiste mieux � la traduction
des relais mails (certains serveur mail anciens corrompent les
messages), mais emp�che la lecture par les client mails qui ne
connaissent pas S/MIME.
| PKCS7_NOSIGS |
Ne v�rifie pas les signatures d'une message
|
Note�:
Ces constantes ont �t� ajout�es en PHP 4.0.6.
User Contributed Notes OpenSSL |
|
[email protected]
06-Apr-2001 09:19 |
|
I had a hard time to make OpenSSL extension to load on Win98+Apache
1.3.17+Php4.0.4pl1.
Always complained about missing
extension.
Eventually I found this page:
and
there was the magic: One seems to need the files "libeay32.dll"
and "ssleay32.dll" in system32 directory.
You can get
them from
download
an apache .zip file, for example
"Apache_1.3.19-Mod_SSL_2.8.2-OpenSSL_0.9.6-WIN32.zip", extract
it, and copy the mentioned files from that Apache directory.
At
least phpinfo() says OpenSSL as loaded extension. Now I can start to
play with it :)
-jukkis
-www.jukkis.net
|
|
[email protected]
02-Jun-2001 07:05 |
|
PHP 4.0.5 and OpenSSL
if you got an error message where php
complains about missing dlls, copy all files from /php/dll directory to
your windows/system(32) directory.
If it still can't load because the
MSVCR70.DLL is missing (not provided with the release found on this page),
go to this link, download it and place it in
windows/system(32).
|
|
[email protected]
29-Jan-2002 09:38 |
|
in trying to install the win32 extensions php_curl and php_openssl with php
loaded as an apache module. Starting apache said that. it could not load
the libraries due to missing dlls, i check the existence of the dlls in
the php/dll directory and pasted them everywhere i could think imginable.
the promlem lay in the php.ini file, for what ever reason the
extension_dir was chanegd to the dir of my php install
"./newphp" i changed it to the correct
"c:\windows\system" and it worked beautifully, now if i could
only get mcrypt to work.
|
|
[email protected]
13-Feb-2002 08:19 |
|
Why not PHP use openSSL's BIGNUM library to replace the liscensed BCMath
functions? This does not seems very hard to do!
|
|
[email protected]
15-Mar-2002 03:28 |
|
The BCMath library has been released under the LGPL
|
|
[email protected]
08-Jul-2002 09:07 |
|
Can someone please post a "howto" or "getting started"
for the openssl + php? I'd like to encrypt data in my database with a
public key, and later, decrypt this with an off-site private
key.
The only thing I have done so far is recompile PHP with ssl
support. And the 'openssl' command on my rh7.3 linux system is short on
the documentation.
Thanks John
|
|
[email protected]
10-Jul-2002 05:04 |
|
I want to create a CA , andd i want to know how can i generate csr with
openSSL (win32) without intercative mode?
|
|
|
| |