Library: Crypto
Package: Certificate
Header: Poco/Crypto/X509Certificate.h
This class represents a X509 Certificate.
Known Derived Classes: Poco::Net::X509Certificate
Member Functions: certificate, commonName, expiresOn, extractNames, init, issuedBy, issuerName, load, operator =, save, subjectName, swap, validFrom
Name identifier for extracting information from a certificate subject's or issuer's distinguished name.
NID_COMMON_NAME = 13
NID_COUNTRY = 14
NID_LOCALITY_NAME = 15
NID_ORGANIZATION_UNIT_NAME = 18
explicit X509Certificate(
std::istream & istr
);
Creates the X509Certificate object by reading a certificate in PEM format from a stream.
explicit X509Certificate(
const std::string & path
);
Creates the X509Certificate object by reading a certificate in PEM format from a file.
explicit X509Certificate(
X509 * pCert
);
Creates the X509Certificate from an existing OpenSSL certificate. Ownership is taken of the certificate.
X509Certificate(
const X509Certificate & cert
);
Creates the certificate by copying another one.
X509Certificate(
X509 * pCert,
bool shared
);
Creates the X509Certificate from an existing OpenSSL certificate. Ownership is taken of the certificate. If shared is true, the certificate's reference count is incremented.
~X509Certificate();
Destroys the X509Certificate.
const X509 * certificate() const;
Returns the underlying OpenSSL certificate.
std::string commonName() const;
Returns the common name stored in the certificate subject's distinguished name.
Poco::DateTime expiresOn() const;
Returns the date and time the certificate expires.
void extractNames(
std::string & commonName,
std::set < std::string > & domainNames
) const;
Extracts the common name and the alias domain names from the certificate.
bool issuedBy(
const X509Certificate & issuerCertificate
) const;
Checks whether the certificate has been issued by the issuer given by issuerCertificate. This can be used to validate a certificate chain.
Verifies if the certificate has been signed with the issuer's private key, using the public key from the issuer certificate.
Returns true if verification against the issuer certificate was successfull, false otherwise.
const std::string & issuerName() const;
Returns the certificate issuer's distinguished name.
std::string issuerName(
NID nid
) const;
Extracts the information specified by the given NID (name identifier) from the certificate issuer's distinguished name.
X509Certificate & operator = (
const X509Certificate & cert
);
Assigns a certificate.
void save(
std::ostream & stream
) const;
Writes the certificate to the given stream. The certificate is written in PEM format.
void save(
const std::string & path
) const;
Writes the certificate to the file given by path. The certificate is written in PEM format.
const std::string & subjectName() const;
Returns the certificate subject's distinguished name.
std::string subjectName(
NID nid
) const;
Extracts the information specified by the given NID (name identifier) from the certificate subject's distinguished name.
void swap(
X509Certificate & cert
);
Exchanges the certificate with another one.
Poco::DateTime validFrom() const;
Returns the date and time the certificate is valid from.
void init();
Extracts issuer and subject name from the certificate.
void load(
std::istream & stream
);
Loads the certificate from the given stream. The certificate must be in PEM format.
void load(
const std::string & path
);
Loads the certificate from the given file. The certificate must be in PEM format.