PHP 5.4.33 Released

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose Überprüft, ob ein Zertifikat für einen bestimmten Zweck benutzt werden kann

Beschreibung

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

openssl_x509_checkpurpose() überprüft ein Zertifikat um festzustellen, ob es für den in purpose angegebenen Zweck eingesetzt werden kann.

Parameter-Liste

x509cert

Das zu prüfende Zertifikat.

purpose

openssl_x509_checkpurpose() Zweck
Konstante Beschreibung
X509_PURPOSE_SSL_CLIENT Kann das Zertifikat für die Clientseite einer SSL-Verbindung benutzt werden?
X509_PURPOSE_SSL_SERVER Kann das Zertifikat für die Serverseite einer SSL-Verbindung benutzt werden?
X509_PURPOSE_NS_SSL_SERVER Kann das Zertifikat für den Netscape SSL-Server benutzt werden?
X509_PURPOSE_SMIME_SIGN Kann das Zertifikat zum Signieren einer S/MIME-Email benutzt werden?
X509_PURPOSE_SMIME_ENCRYPT Kann das Zertifikat zum Verschlüsseln einer S/MIME-Email benutzt werden?
X509_PURPOSE_CRL_SIGN Kann das Zertifikat zum Signieren einer Zertifikatswiderrufliste (CRL) benutzt werden?
X509_PURPOSE_ANY Kann das Zertifikat für beliebige/alle Zwecke benutzt werden?
Diese Optionen sind keine Bitfelder, nur eine kann angegeben werden!

cainfo

cainfo sollte ein Array von vertrauenswürdigen CA-Dateien / -Verzeichnissen sein, wie in Zertifikatprüfung beschrieben. Default ist ein leeres Array.

untrustedfile

Wenn angegeben sollte dies der Name einer PEM-kodierten Datei sein, die Zertifikate enthält die bei der Prüfung des Zertifikats helfen können. Die Zertifikate aus dieser Datei werden als nicht vertrauenswürdig erachtet.

Rückgabewerte

Gibt TRUE zurück wenn das Zertifikat für den angegebenen Zweck benutzt werden kann, ansonsten FALSE; im Falle eines Fehlers wird -1 zurückgegeben.

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