mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-16 18:31:26 +01:00
WIP of SMIME support: Add method to extract certificate's info from pkcs12
This commit is contained in:
parent
efbb02b1b7
commit
572ae1d77e
@ -20,7 +20,9 @@ use Horde_Crypt_Smime;
|
|||||||
*/
|
*/
|
||||||
class Smime extends Horde_Crypt_Smime
|
class Smime extends Horde_Crypt_Smime
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* SMIME types
|
||||||
|
*/
|
||||||
static $SMIME_TYPES = array (
|
static $SMIME_TYPES = array (
|
||||||
'application/pkcs8',
|
'application/pkcs8',
|
||||||
'application/pkcs7',
|
'application/pkcs7',
|
||||||
@ -32,6 +34,27 @@ class Smime extends Horde_Crypt_Smime
|
|||||||
'application/pkcs7-mime',
|
'application/pkcs7-mime',
|
||||||
'application/pkcs7-signature',
|
'application/pkcs7-signature',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SMIME public key regular expresion
|
||||||
|
*/
|
||||||
|
static public $pubkey_regexp = '/-----BEGIN PUBLIC KEY-----.*-----END PUBLIC KEY-----\r?\n/s/';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SMIME encrypted private key regular expresion
|
||||||
|
*/
|
||||||
|
static public $privkey_encrypted_regexp = '/-----BEGIN ENCRYPTED PRIVATE KEY-----.*-----END ENCRYPTED PRIVATE KEY-----\r?\n/s/';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SMIME private key regular expresion
|
||||||
|
*/
|
||||||
|
static public $privkey_regexp = '/-----BEGIN PRIVATE KEY-----.*-----END PRIVATE KEY-----\r?\n/s/';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SMIME certificate regular expresion
|
||||||
|
*/
|
||||||
|
static public $certificate_regexp = '/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----\r?\n/s/';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
@ -82,4 +105,24 @@ class Smime extends Horde_Crypt_Smime
|
|||||||
$keyData = openssl_pkey_get_details($handle);
|
$keyData = openssl_pkey_get_details($handle);
|
||||||
return $keyData['key'];
|
return $keyData['key'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract certificates info from a p12 file
|
||||||
|
*
|
||||||
|
* @param string $pkcs12
|
||||||
|
* @param string $passphrase
|
||||||
|
* @return boolean|array returns array of certs info or false if not successful
|
||||||
|
*/
|
||||||
|
public function extractCertPKCS12 ($pkcs12, $passphrase)
|
||||||
|
{
|
||||||
|
$certs = array ();
|
||||||
|
if (openssl_pkcs12_read($pkcs12, $certs, $passphrase))
|
||||||
|
{
|
||||||
|
return $certs;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user