PHP 5.4.32 Released

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurposeVérifie l'usage d'un certificat

Description

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )

openssl_x509_checkpurpose() examine le certificat spécifié par x509cert, pour voir s'il peut être utilisé pour une opération particulière purpose.

Liste de paramètres

x509cert

Le certificat examiné.

purpose

Utilisation de openssl_x509_checkpurpose()
Constante Description
X509_PURPOSE_SSL_CLIENT Est-ce que le certificat peut être utilisé avec le client d'une connexion SSL ?
X509_PURPOSE_SSL_SERVER Est-ce que le certificat peut être utilisé avec le serveur d'une connexion SSL ?
X509_PURPOSE_NS_SSL_SERVER Est-ce que le certificat peut être utilisé avec un serveur Netscape d'une connexion SSL ?
X509_PURPOSE_SMIME_SIGN Est-ce que le certificat peut être utilisé pour signer des courriers à la norme S/MIME ?
X509_PURPOSE_SMIME_ENCRYPT Est-ce que le certificat peut être utilisé pour chiffrer un courrier au format S/MIME ?
X509_PURPOSE_CRL_SIGN Est-ce que le certificat peut être utilisé pour chiffrer une liste de révocation de certificats ? (CRL)?
X509_PURPOSE_ANY Est-ce que le certificat peut être utilisé pour n'importe lequel de ces cas ?
Ces options ne sont pas des champs de bits : vous ne pouvez en passer qu'une seule à la fois.

cainfo

cainfo doit être un tableau de dossiers/fichiers de CA de confiance comme décrit dans la Vérification des certificats.

untrustedfile

Si spécifié, est le nom d'un fichier au format PEM contenant les certificats qui pourront aider lors de la vérification du certificat, même si une confiance limitée doit leur être portée.

Valeurs de retour

Retourne TRUE si le certificat peut être utilisé pour un but particulier, FALSE s'il ne le peut pas, ou -1 si une erreur survient.

add a note add a note

User Contributed Notes 2 notes

up
0
adr at NOSPAM dot entropymatrix dot com
1 year ago
The following is an example usage of openssl_x509_checkpurpose. It is equivalent to the openssl verify command as follows:
openssl verify -CApath $openssl_cadir -purpose sslserver $openssl_crtfile

<?php
$openssl_crtfile
='auth.combined.pem';
$openssl_cadir='./ca';

$x509_res = openssl_x509_read(file_get_contents($openssl_crtfile));
if(empty(
$x509_res)) {
        echo
'x509 cert could not be read'."\n";
}
$valid = openssl_x509_checkpurpose($x509_res,X509_PURPOSE_SSL_SERVER,array($openssl_cadir));
if (
$valid === true) {
        echo
'Certificate is valid for use as SSL server'."\n";
} else {
        echo
'Certificate validation returned'.$valid."\n";
}
?>
up
-1
chaoszcat at gmail dot com
2 years ago
Few days ago I dual boot my system into Windows 8 and play around with it, and then I boot it back to windows 7, and all of sudden this function fails by returning me 0 all the time.

Spent almost two hours digging google for no result, I almost end my research.

Then (I don't know why) I did a system time update (synchronize with time.nist.gov), and all of sudden, this function returns me 1 (true).

It's true that when I boot back to Windows 7 my time has been screwed by a few hours later than my current time, and I did a manual change on it. I doubt this has anything to do with this function?

Hope it helps.

Keywords: google discovery, openid, discovery
Platform: Windows 7 64bit, PHP 5.3.13
To Top