Qore::SSLCertificate Class Reference

SSLCertificate objects allow Qore code to work with X.509 certificate data. More...

Inheritance diagram for Qore::SSLCertificate:
[legend]

## Public Member Functions

| constructor (string pem)
| Creates the SSLCertificate object from the PEM-encoded version of the X.509 certificate. More...
| constructor (binary der)
| Creates the SSLCertificate object from the DER-encoded version of the X.509 certificate. More...
| copy ()
| Returns a copy of the certificate object. More...
binary | getDER ()
| Returns a binary object in DER format representing the certificate. More...
hash< auto > | getInfo ()
| Returns a hash of all information for the certificate. More...
hash< auto > | getIssuerHash ()
| Returns a hash of strings representing the issuer information of the certificate. More...
date | getNotAfterDate ()
| Returns a date/time value representing the end date of the certificate. More...
date | getNotBeforeDate ()
| Returns a date/time value representing the start date of the certificate. More...
string | getPEM ()
| Returns a string in PEM format representing the certificate. More...
*binary | getPublicKey ()
| Returns a binary object representing the public key of the certificate in DER (Distinguished Encoding Rules) format or NOTHING if no public key is present in the certificate. More...
string | getPublicKeyAlgorithm ()
| Returns the name of the public key algorithm of the certificate. More...
hash< auto > | getPurposeHash ()
| Returns a hash of booleans representing the allowed purposes of the certificate. More...
int | getSerialNumber ()
| Returns the integer serial number of the certificate. More...
binary | getSignature ()
| Returns a binary object representing the signature of the certificate. More...
string | getSignatureType ()
| Returns the signature type of the certificate. More...
hash< auto > | getSubjectHash ()
| Returns a hash of strings representing the subject information of the certificate. More...
int | getVersion ()
| Returns the version of the certificate as an integer. More...
Public Member Functions inherited from Qore::Serializable
| constructor ()
| The constructor does not perform any action; this class is just used to mark a class as serializable by inheriting this class.
| copy ()
| The copy constructor does not perform any action; this class is just used to mark a class as serializable by inheriting this class.
| serialize (OutputStream stream)
| converts the object to binary data representing the object More...
binary | serialize ()
| converts the object to binary data representing the object More...
hash< SerializationInfo > | serializeToData ()
| converts the object to a serialization hash representing the object More...

## Additional Inherited Members

Static Public Member Functions inherited from Qore::Serializable
static auto | deserialize (InputStream stream)
| Deserializes data produced with serialize() and returns the value represented by the data. More...
static auto | deserialize (binary bin)
| Deserializes data produced with serialize() and returns the value represented by the data. More...
static auto | deserialize (string bin)
| Deserializes data produced with serialize() and returns the value represented by the data. More...
static auto | deserialize (hash< SerializationInfo > data)
| Deserializes data produced with serializeToData() and returns the value represented by the data. More...
static hash< SerializationInfo > | deserializeToData (InputStream stream)
| Deserializes data produced with serialize() and returns the value represented by the data. More...
static hash< SerializationInfo > | deserializeToData (binary bin)
| Deserializes data produced with serialize() and returns the value represented by the data. More...
static | serialize (auto val, OutputStream stream)
| serializes the data and writes the serialized data to the given output stream More...
static binary | serialize (auto val)
| serializes the data and returns the serialized data as a binary object More...
static hash< SerializationInfo > | serializeToData (auto val)
| converts the value to a serialization hash representing the value More...

## Detailed Description

SSLCertificate objects allow Qore code to work with X.509 certificate data.

The SSLCertificate class supports data serialization; note that the serialized data is a representation of the data that does not require a password, so for source data that requires a password to use, the serialized representation of the private key should be protected carefully (transmitted only in an encrypted stream)

## Member Function Documentation

## constructor() [1/2]

Qore::SSLCertificate::constructor | ( | binary | der | ) |

Creates the SSLCertificate object from the DER-encoded version of the X.509 certificate.

Parameters

  der | the DER-encoded representation of the X.509 certificate

Example:
  SSLCertificate cert(der_cert);

Exceptions

  SSLCERTIFICATE-CONSTRUCTOR-ERROR | invalid X.509 certificate data

## constructor() [2/2]

Qore::SSLCertificate::constructor | ( | string | pem | ) |

Creates the SSLCertificate object from the PEM-encoded version of the X.509 certificate.

Parameters

  pem | the PEM representation of the X.509 certificate

Example:
  SSLCertificate cert(pem_cert_string);

Exceptions

  SSLCERTIFICATE-CONSTRUCTOR-ERROR | invalid X.509 certificate data

Since
  0.8.4: the deprecated functionality where the if the string passed was less than 200 bytes long, it was assumed to be a file name has been removed; the string is assumed to be the PEM-encoded X.509 Certificate itself

## copy()

Qore::SSLCertificate::copy | ( |  | ) |

Returns a copy of the certificate object.

Since
  Qore 0.9

## getDER()

binary Qore::SSLCertificate::getDER | ( |  | ) |

Returns a binary object in DER format representing the certificate.

Code Flags:
  RET_VALUE_ONLY

Example:
  binary der = cert.getDER();

Returns
  a binary object in DER format representing the certificate

Exceptions

  X509-ERROR | could not create DER data from certificate data

Since
  Qore 0.9

## getInfo()

hash<auto> Qore::SSLCertificate::getInfo | ( |  | ) |

Returns a hash of all information for the certificate.

Returns
  a hash of all information for the certificate with the following keys:
  - `"version"`: The version of the X.509 certificate (see SSLCertificate::getVersion())
  - `"serialNumber"`: The serial number of the X.509 certificate (see SSLCertificate::getSerialNumber())
  - `"subject"`: The subject hash of the X.509 certificate (see SSLCertificate::getSubjectHash())
  - `"issuer"`: The issuer hash of the X.509 certificate (see SSLCertificate::getIssuerHash())
  - `"purposes"`: The purpose hash of the X.509 certificate (see SSLCertificate::getPurposeHash())
  - `"notBefore"`: The "not before date" of the X.509 certificate (see SSLCertificate::getNotBeforeDate())
  - `"notAfter"`: The "not after date" of the X.509 certificate (see SSLCertificate::getNotAfterDate())
  - `"signatureType"`: The signature type string of the X.509 certificate (see SSLCertificate::getSignatureType())
  - `"signature"`: The binary signature of the X.509 certificate (see SSLCertificate::getSignature())
  - `"publicKey"`: The binary public key of the X.509 certificate (see SSLCertificate::getPublicKey())

Code Flags:
  CONSTANT

Example:
  hash<auto> h = cert.getInfo();

## getIssuerHash()

hash<auto> Qore::SSLCertificate::getIssuerHash | ( |  | ) |

Returns a hash of strings representing the issuer information of the certificate.

Returns
  a hash of key-value pairs representing the issuer information of the certificate

Code Flags:
  CONSTANT

Example:
  hash<auto> h = cert.getIssuerHash();

## getNotAfterDate()

date Qore::SSLCertificate::getNotAfterDate | ( |  | ) |

Returns a date/time value representing the end date of the certificate.

Returns
  a date/time value representing the end date of the certificate

Code Flags:
  CONSTANT

Example:
  date end = cert.getNotAfterDate();

## getNotBeforeDate()

date Qore::SSLCertificate::getNotBeforeDate | ( |  | ) |

Returns a date/time value representing the start date of the certificate.

Returns
  a date/time value representing the start date of the certificate

Code Flags:
  CONSTANT

Example:
  date start = cert.getNotBeforeDate();

## getPEM()

string Qore::SSLCertificate::getPEM | ( |  | ) |

Returns a string in PEM format representing the certificate.

Returns
  a string in PEM format representing the certificate

Example:
  string pem_str = cert.getPEM();

Exceptions

  X509-ERROR | could not create PEM string from X509 certificate data

## getPublicKey()

*binary Qore::SSLCertificate::getPublicKey | ( |  | ) |

Returns a binary object representing the public key of the certificate in DER (Distinguished Encoding Rules) format or NOTHING if no public key is present in the certificate.

Returns
  a binary object representing the public key of the certificate in DER (Distinguished Encoding Rules) format or NOTHING if no public key is present in the certificate

Code Flags:
  CONSTANT

Example:
  *binary bin = cert.getPublicKey();

## getPublicKeyAlgorithm()

string Qore::SSLCertificate::getPublicKeyAlgorithm | ( |  | ) |

Returns the name of the public key algorithm of the certificate.

Returns
  the name of the public key algorithm of the certificate

Code Flags:
  CONSTANT

Example:
  string str = cert.getPublicKeyAlgorithm();

## getPurposeHash()

hash<auto> Qore::SSLCertificate::getPurposeHash | ( |  | ) |

Returns a hash of booleans representing the allowed purposes of the certificate.

Returns
  a hash of booleans representing the allowed purposes of the certificate

Code Flags:
  CONSTANT

Example:
  hash<auto> h = cert.getPurposeHash();

## getSerialNumber()

int Qore::SSLCertificate::getSerialNumber | ( |  | ) |

Returns the integer serial number of the certificate.

Returns
  the integer serial number of the certificate

Code Flags:
  CONSTANT

Example:
  int sn = cert.getSerialNumber();

## getSignature()

binary Qore::SSLCertificate::getSignature | ( |  | ) |

Returns a binary object representing the signature of the certificate.

Returns
  a binary object representing the signature of the certificate

Code Flags:
  CONSTANT

Example:
  binary bin = cert.getSignature();

## getSignatureType()

string Qore::SSLCertificate::getSignatureType | ( |  | ) |

Returns the signature type of the certificate.

Returns
  the signature type of the certificate

Code Flags:
  CONSTANT

Example:
  string str = cert.getSignatureType();

## getSubjectHash()

hash<auto> Qore::SSLCertificate::getSubjectHash | ( |  | ) |

Returns a hash of strings representing the subject information of the certificate.

Returns
  a hash of key-value pairs representing the subject information of the certificate

Code Flags:
  CONSTANT

Example:
  hash<auto> h = cert.getSubjectHash();

## getVersion()

int Qore::SSLCertificate::getVersion | ( |  | ) |

Returns the version of the certificate as an integer.

Returns
  the version of the certificate as an integer

Code Flags:
  CONSTANT

Example:
  int ver = cert.getVersion();