|  Download OpenSSLX509Factory classextends OpenSSLBase, implements OpenSSLInterface Wrapper for PHP OpenSSL X509 functions, encapsulates the X509 resource.<br>
Note: You need to have a valid openssl.cnf installed for this to operate correctly.<br>
You will find convenient constants in OpenSSLInterface.<br>
Require a Psr\Log logger, provided by LoggerDepot.<br> Class constants X509RESOURCETYPE
 Class properties x509certData  string/resource
               1. An X.509 resource returned from openssl_x509_read()
               2. A string having the format (file://)path/to/cert.pem
                  The named file must contain a PEM encoded certificate
               3. A string containing the content of a PEM encoded certificate
x509Resource resource
               x509 resource, type 'OpenSSL X.509'
 >Class constructor and factory methods OpenSSLX509Factory::__construct( [ x509certData ] ) If argument x509certData is set, a new X509 resource is set
 
 x509certData  string|resource
               1. An X.509 resource returned from openssl_x509_read()
               2. A string having the format (file://)path/to/cert.pem;
                  the named file must contain a PEM encoded certificate
               3. A string containing the content of a PEM encoded certificate
               
 throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::factory( [ x509certData ] ) x509certData  string|resource
               1. An X.509 resource returned from openssl_x509_read()
               2. A string having the format (file://)path/to/cert.pem;
                  the named file must contain a PEM encoded certificate
               3. A string containing the content of a PEM encoded certificate
               
throws InvalidArgumentException, RunTimeException on error
return static
static method
 OpenSSLX509Factory::csrFactory( caCert, array dn, privateKeyId [, configArgs [, extraAttribs [, days [, serial ]]]] )Class factory method, producing a CSR cert 'under the hood'
caCert        resource|string
                The generated certificate will be signed by caCert.
                If caCert is NULL, the generated certificate will be a self-signed certificate.
                1. An X.509 resource returned from openssl_x509_read()
                2. A string having the format (file://)path/to/cert.pem;
                   the named file must contain a PEM encoded certificate
                3. A string containing the content of a PEM encoded certificate
dn            array
                The Distinguished Name or subject fields to be used in the certificate.
                Assoc array whose keys are converted to OIDs and applied to the relevant part of the request.
privateKeyId  string|array|resource
                A private key
                1. private key resource
                2. PEM string
                3. ('file://')fileName with PEM string content
                4. array( 2/3, passPhrase )
 configArgs   array
                Finetuning the CSR signing
 extraAttribs array
                Additional configuration options for the CSR
                Assoc array whose keys are converted to OIDs and applied to the relevant part of the request.
days          int
                Length of time for which the generated certificate will be valid, in days (default 365).
serial        int
                Optional the serial number of issued certificate (default 0)
return static
throws InvalidArgumentException, RunTimeException on error
static method
 >Class logic methods OpenSSLX509Factory::checkPrivateKey( key [, passPhrase ] )uses openssl_x509_check_private_key
The function does not check if key is indeed a private key or not.
It merely compares the public materials (e.g. exponent and modulus of an RSA key)
and/or key parameters (e.g. EC params of an EC key) of a key pair.
key         resource|string
               1. A pkey resource
               2. A string having the format (file://)path/to/file.pem.
                  The named file must contain a PEM encoded certificate/private key (it may contain both).
               3. A string, PEM formatted private key.
passPhrase  string
return bool    true if the (private) key corresponds to the certificate
throws InvalidArgumentException, RuntimeException on error
 OpenSSLX509Factory::checkPurpose( purpose [, caInfo [, unTrustedFile ]]  )uses openssl_x509_checkpurpose
purpose        int
                 (https://www.php.net/manual/en/openssl.purpose-check.php)
caInfo         array
                 an array containing file and directory names
                 that specify the locations of trusted CA files.
                 If a directory is specified,
                 then it must be a correctly formed hashed directory
                 as the openssl command would use.
unTrustedFile  string
                 If specified, this should be the name of a PEM encoded file holding certificates
                 that can be used to help verify the certificate,
                 although no trust is placed in the certificates that come from that file.
               
return bool   true if a certificate can be used for a particular purpose
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::export( [ noText ] )uses openssl_x509_export
noText       bool   
               optional, default true, affects the verbosity of the output;
               if it is FALSE, then additional human-readable information is included in the output.
               
return string  an X509 certificate in a PEM encoded format
throws RuntimeException on error
 OpenSSLX509Factory::getX509CertAsPemString( [ noText ] )alias of OpenSSLX509Factory::export
return string  an X509 certificate in a PEM encoded format
 OpenSSLX509Factory::getX509CertAsDerString()extends OpenSSLX509Factory::export
return string  an X509 certificate in a DER encoded format
 OpenSSLX509Factory::getX509CertAsDerString()extends OpenSSLX509Factory::export
return string  an X509 certificate in a DER encoded format
 OpenSSLX509Factory::exportToFile( fileName [, noText ] )uses openssl_x509_export_to_file
Save (PEM encoded) information from an X509 certificate to named fileName
fileName  string
                Path to the output file. (ext: pem, crt, cer)
noText    bool  
                optional, default true, affects the verbosity of the output;
                if it is FALSE, then additional human-readable information is included in the output.
               
return static
throws InvalidArgumentException, RuntimeException on error
 OpenSSLX509Factory::saveX509CertIntoPemFile( fileName[, noText ] )alias of OpenSSLX509Factory::exportToFile
Save (PEM encoded) information from an X509 certificate to named fileName
 OpenSSLX509Factory::saveX509CertIntoDerFile( fileName )extends OpenSSLX509Factory::export
Save (DER encoded) information from an X509 certificate to named fileName
 fileName  string
noText    bool  
                optional, default true, affects the verbosity of the output;
                if it is FALSE, then additional human-readable information is included in the output.
 OpenSSLX509Factory::fingerprint( [ hashAlgorithm [, rawOutput ]] )uses openssl_x509_fingerprint
Return the fingerprint, or digest, of a given X.509 certificate -
hashAlgorithm  string
                 The digest method or hash algorithm to use, default "sha1"
rawOutput      bool
                 TRUE, outputs raw binary data. FALSE (default) outputs lowercase hexits
                 
return string  a string containing the calculated certificate fingerprint
throws InvalidArgumentException, RuntimeException on error
 OpenSSLX509Factory::getDigestHash( [ hashAlgorithm [, rawOutput ]] )alias of OpenSSLX509Factory::fingerprint
 OpenSSLX509Factory::parse( [ shortNames ] )uses openssl_x509_parse
Return (array) information from X509 certificate
shortNames   bool
               controls how the data is indexed in the array
               if shortNames is TRUE (the default) then fields will be indexed with the short name form,
               otherwise, the long name form will be used - e.g.: CN is the shortName form of commonName.
               
return array
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::getCertInfo( [ shortNames [, key [, subKey  ]]] )extends OpenSSLX509Factory::parse
shortNames   bool
               default true
key          string
               certificate information (array-)key, default null
               see OpenSSLInterface constants
subKey       string  certificate information (array-)key/subKey, default null
               see OpenSSLInterface constants
               
return array|string  cert info array(key/subKey)
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::getCertSubjectDN( [ shortNames [, key ]] )extends OpenSSLX509Factory::parse
shortNames   bool
               default true
key          string
               opt. subject DN subKey (see OpenSSLInterface constants)
               
return array|string  (parsed) subject DN information from X509 certificate
               null if subject DN key not found
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::getCertIssuerDN( [ shortNames [, key ] ] )extends OpenSSLX509Factory::parse
shortNames   bool
               default true
key         string
               opt. issuer DN subKey (see OpenSSLInterface constants)
               
return array|string  (parsed) issuer DN information from X509 certificate
               null if issuer DN key not found
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::isCertInfoKeySet( [ shortNames [, key [, subKey ]]] )extends OpenSSLX509Factory::parse
shortNames   bool
               default true
key          string
               certificate information (array-)key, default null
               see OpenSSLInterface constants
subKey       string  
               certificate information (array-)key/subKey, default null
               see OpenSSLInterface constants
               
return bool    true if parse array key(/subKey) is set
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::read( [ x509certData] )uses openssl_x509_read
Set resource identifier from a parsed X.509 certificate
x509certData string
               1. An X.509 resource (returned from openssl_x509_read())
               2. A string having the format (file://)path/to/cert.pem;
               the named file must contain a PEM encoded certificate
               3. A string containing a PEM encoded certificate
               
return static
throws InvalidArgumentException, RunTimeException on error
 OpenSSLX509Factory::createX509ResourceFromString( x509CertificateString )alias of OpenSSLX509Factory::read
 OpenSSLX509Factory::createX509ResourceFromFile( x509CertificateFile )alias of OpenSSLX509Factory::read
 >Getters and setters etc OpenSSLX509Factory::assertCaInfo( array caInfo, argIx = null )Assert caInfo array contains valid (readable) fileNames or directories
caInfo       array
argIx        int|string
throws InvalidArgumentException on error
static method
 OpenSSLX509Factory::freeX509certData()uses openssl_x509_free
return static
 OpenSSLX509Factory::getX509certData()return string|resource
 OpenSSLX509Factory::isX509certDataSet()return bool  true is x509Certdata is set
 OpenSSLX509Factory::setX509certData( x509certData )x509certData string|resource
               1. An X.509 resource returned from openssl_x509_read()
               2. A string having the format (file://)path/to/cert.pem;
                  the named file must contain a PEM encoded certificate
               3. A string containing the content of a PEM encoded certificate,
               
return static
throws InvalidArgumentException on error
 OpenSSLX509Factory::assertX509( x509, argIx = null, fileToString = false )x509         resource|string
               1. An X.509 resource returned from openssl_x509_read()
               2. A string having the format (file://)path/to/cert.pem
                  The named file must contain a PEM encoded certificate
               3. A string containing a PEM encoded certificate
argIx        int|string
fileToString bool
               if true and x509 is file, return file content
               
return resource|string       if file, 'file://'-prefixed
throws InvalidArgumentException on error
static method
 OpenSSLX509Factory::isValidX509Resource( x509 )x509         string|resource
return bool  true if x509 resource is valid
static method
 OpenSSLX509Factory::freeX509Resource()uses openssl_x509_free
return static
 OpenSSLX509Factory::getX509Resource()return x509 resource
 OpenSSLX509Factory::isX509ResourceSet()return bool   true is x509Resource is set
 OpenSSLX509Factory::setX509Resource( x509Resource )x509Resource  resource
return static
throws InvalidArgumentException on error
 Usage and examplesPlease review test/OpenSSLX509FactoryTest.php certDataTest11
  __construct    certData sources
 csrFactoryTest12
  csrFactory (caCert)
    create x509 instance, set/create x509 resource from resource/file/string
 csrFactoryTest13
  set/create x509 resource from resource/file/string
 checkPrivateKeyTest24
  __construct
  read
  checkPrivateKey
 checkPurposeTest31
  checkPurpose
 exportTest32
  getX509CertAsPemString
  getX509CertAsDerString
 saveX509CertIntoFileTest33
  saveX509CertIntoPemFile
  saveX509CertIntoDerFile
 fingerprintTest34
  getDigestHash (fingerprint)
 parseTest35
  parse
 csrX509Test24  (Traits\CsrX509Trait)
  getCertInfo
  getCertName
  getCertSubjectDN
  getCertIssuerDN
 Test4
  Exception tests
 [return to docs][return to README] |