KSSLCertificate

#include <ksslcertificate.h>

Public Types

enum  KSSLPurpose {
  None = 0, SSLServer = 1, SSLClient = 2, SMIMESign = 3,
  SMIMEEncrypt = 4, Any = 5
}
 
enum  KSSLValidation {
  Unknown, Ok, NoCARoot, InvalidPurpose,
  PathLengthExceeded, InvalidCA, Expired, SelfSigned,
  ErrorReadingRoot, NoSSL, Revoked, Untrusted,
  SignatureFailed, Rejected, PrivateKeyFailed, InvalidHost,
  Irrelevant, SelfSignedChain, GetIssuerCertFailed, DecodeIssuerPublicKeyFailed,
  GetIssuerCertLocallyFailed, CertificateNotYetValid, CertificateHasExpired, CRLNotYetValid,
  CRLHasExpired, CertificateFieldNotBeforeErroneous, CertificateFieldNotAfterErroneous, CRLFieldLastUpdateErroneous,
  CRLFieldNextUpdateErroneous, CertificateRevoked, CertificateUntrusted, VerifyLeafSignatureFailed,
  CertificateSignatureFailed, CRLSignatureFailed, DecryptCertificateSignatureFailed, DecryptCRLSignatureFailed,
  CertificateRejected, SelfSignedInChain, ApplicationVerificationFailed, AuthAndSubjectKeyIDAndNameMismatched,
  AuthAndSubjectKeyIDMismatched, OutOfMemory, GetCRLFailed, CertificateChainTooLong,
  KeyMayNotSignCertificate, IssuerSubjectMismatched
}
 
typedef QList< KSSLValidationKSSLValidationList
 

Public Member Functions

 KSSLCertificate (const KSSLCertificate &x)
 
 ~KSSLCertificate ()
 
KSSLCertChainchain ()
 
void getEmails (QStringList &to) const
 
QString getIssuer () const
 
QString getKDEKey () const
 
QString getKeyType () const
 
QString getMD5Digest () const
 
QString getMD5DigestText () const
 
QString getNotAfter () const
 
QString getNotBefore () const
 
QString getPublicKeyText () const
 
QDateTime getQDTNotAfter () const
 
QDateTime getQDTNotBefore () const
 
QString getSerialNumber () const
 
QString getSignatureText () const
 
QString getSubject () const
 
bool isSigner ()
 
bool isValid ()
 
bool isValid (KSSLPurpose p)
 
KSSLCertificatereplicate ()
 
KSSLValidation revalidate ()
 
KSSLValidation revalidate (KSSLPurpose p)
 
bool setCert (const QString &cert)
 
QStringList subjAltNames () const
 
QByteArray toDer ()
 
QByteArray toNetscape ()
 
QByteArray toPem ()
 
QString toString ()
 
QString toText ()
 
KSSLValidation validate ()
 
KSSLValidation validate (KSSLPurpose p)
 
KSSLValidationList validateVerbose (KSSLPurpose p)
 
KSSLValidationList validateVerbose (KSSLPurpose p, KSSLCertificate *ca)
 
KSSLX509V3x509V3Extensions ()
 

Static Public Member Functions

static KSSLCertificatefromString (const QByteArray &cert)
 
static KSSLCertificatefromX509 (X509 *x5)
 
static QString getMD5DigestFromKDEKey (const QString &k)
 
static QString verifyText (KSSLValidation x)
 

Protected Member Functions

X509 * getCert ()
 
KSSLValidation processError (int ec)
 
void setCert (X509 *c)
 
void setChain (void *c)
 

Friends

int operator!= (KSSLCertificate &x, KSSLCertificate &y)
 
int operator== (KSSLCertificate &x, KSSLCertificate &y)
 

Detailed Description

KDE X.509 Certificate.

This class represents an X.509 (SSL) certificate. Note: this object is VERY HEAVY TO COPY. Please try to use reference or pointer whenever possible

Author
George Staikos staik[email protected][email protected][email protected]de.or[email protected]g
See also
KSSL KDE X.509 Certificate
Deprecated:
since 5.0, use QSslCertificate

Definition at line 73 of file ksslcertificate.h.

Member Enumeration Documentation

Result of the validate() call.

A CA certificate can be validated as Irrelevant when it was not used to sign any other relevant certificate.

Definition at line 117 of file ksslcertificate.h.

Constructor & Destructor Documentation

KSSLCertificate::~KSSLCertificate ( )

Destroy this X.509 certificate.

Definition at line 113 of file ksslcertificate.cpp.

KSSLCertificate::KSSLCertificate ( const KSSLCertificate x)

Copy constructor.

Beware, this is very expensive.

Parameters
xthe object to copy from

Definition at line 100 of file ksslcertificate.cpp.

Member Function Documentation

KSSLCertChain & KSSLCertificate::chain ( )

Get a reference to the certificate chain.

Returns
reference to the chain

Definition at line 123 of file ksslcertificate.cpp.

KSSLCertificate * KSSLCertificate::fromString ( const QByteArray cert)
static

Create an X.509 certificate from a base64 encoded string.

Parameters
certthe certificate in base64 form
Returns
the X.509 certificate, or NULL

Definition at line 140 of file ksslcertificate.cpp.

KSSLCertificate * KSSLCertificate::fromX509 ( X509 *  x5)
static

Create an X.509 certificate from the internal representation.

This one duplicates the X509 object for itself.

Parameters
x5the OpenSSL representation of the certificate
Returns
the X.509 certificate, or NULL

Definition at line 128 of file ksslcertificate.cpp.

void KSSLCertificate::getEmails ( QStringList to) const

FIXME: document.

Definition at line 224 of file ksslcertificate.cpp.

QString KSSLCertificate::getIssuer ( ) const

Get the issuer of the certificate (X.509 map).

Returns
the issuer

Definition at line 437 of file ksslcertificate.cpp.

QString KSSLCertificate::getKDEKey ( ) const

KDEKey is a concatenation "Subject (MD5)", mostly needed for SMIME.

The result of getKDEKey might change and should not be used for persistant storage.

Definition at line 243 of file ksslcertificate.cpp.

QString KSSLCertificate::getKeyType ( ) const

Get the key type (RSA, DSA, etc).

Returns
the key type as a string

Definition at line 308 of file ksslcertificate.cpp.

QString KSSLCertificate::getMD5Digest ( ) const

Get the MD5 digest of the certificate.

Returns
the MD5 digest in a hexidecimal string

Definition at line 286 of file ksslcertificate.cpp.

QString KSSLCertificate::getMD5DigestFromKDEKey ( const QString k)
static

Aegypten semantics force us to search by MD5Digest only.

Definition at line 248 of file ksslcertificate.cpp.

QString KSSLCertificate::getMD5DigestText ( ) const

Get the MD5 digest of the certificate.

Result is padded with : to separate bytes - it's a text version!

Returns
the MD5 digest in a hexidecimal string

Definition at line 261 of file ksslcertificate.cpp.

QString KSSLCertificate::getNotAfter ( ) const

Get the date that the certificate is valid until.

Returns
the date as a string, localised

Definition at line 1002 of file ksslcertificate.cpp.

QString KSSLCertificate::getNotBefore ( ) const

Get the date that the certificate becomes valid on.

Returns
the date as a string, localised

Definition at line 993 of file ksslcertificate.cpp.

QString KSSLCertificate::getPublicKeyText ( ) const

Get the public key.

Returns
the public key as a hexidecimal string

Definition at line 333 of file ksslcertificate.cpp.

QDateTime KSSLCertificate::getQDTNotAfter ( ) const

Get the date that the certificate is valid until.

Returns
the date

Definition at line 1020 of file ksslcertificate.cpp.

QDateTime KSSLCertificate::getQDTNotBefore ( ) const

Get the date that the certificate becomes valid on.

Returns
the date

Definition at line 1011 of file ksslcertificate.cpp.

QString KSSLCertificate::getSerialNumber ( ) const

Get the serial number of the certificate.

Returns
the serial number as a string

Definition at line 176 of file ksslcertificate.cpp.

QString KSSLCertificate::getSignatureText ( ) const

Get the signature.

Returns
the signature in text format

Definition at line 190 of file ksslcertificate.cpp.

QString KSSLCertificate::getSubject ( ) const

Get the subject of the certificate (X.509 map).

Returns
the subject

Definition at line 161 of file ksslcertificate.cpp.

bool KSSLCertificate::isSigner ( )

Check if this is a signer certificate.

Returns
true if this is a signer certificate

Definition at line 1293 of file ksslcertificate.cpp.

bool KSSLCertificate::isValid ( )

Check if this is a valid certificate.

Will use cached data.

Returns
true if it is valid

Definition at line 608 of file ksslcertificate.cpp.

bool KSSLCertificate::isValid ( KSSLCertificate::KSSLPurpose  p)

Check if this is a valid certificate.

Will use cached data.

Parameters
pthe purpose to validate for
Returns
true if it is valid

Definition at line 603 of file ksslcertificate.cpp.

KSSLCertificate * KSSLCertificate::replicate ( )

Explicitly make a copy of this certificate.

Returns
a copy of the certificate

Definition at line 1041 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidation KSSLCertificate::revalidate ( )

Check if this is a valid certificate.

Will NOT use cached data.

Returns
the result of the validation

Definition at line 795 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidation KSSLCertificate::revalidate ( KSSLCertificate::KSSLPurpose  p)

Check if this is a valid certificate.

Will NOT use cached data.

Parameters
pthe purpose to validate for
Returns
the result of the validation

Definition at line 800 of file ksslcertificate.cpp.

bool KSSLCertificate::setCert ( const QString cert)

Re-set the certificate from a base64 string.

Parameters
certthe certificate to set to
Returns
true on success

Definition at line 1273 of file ksslcertificate.cpp.

QStringList KSSLCertificate::subjAltNames ( ) const

The alternate subject name.

Returns
string list with subjectAltName

Definition at line 1298 of file ksslcertificate.cpp.

QByteArray KSSLCertificate::toDer ( )

Convert the certificate to DER (ASN.1) format.

Returns
the binary data of the DER encoding

Definition at line 1161 of file ksslcertificate.cpp.

QByteArray KSSLCertificate::toNetscape ( )

Convert the certificate to Netscape format.

Returns
the binary data of the Netscape encoding

Definition at line 1221 of file ksslcertificate.cpp.

QByteArray KSSLCertificate::toPem ( )

Convert the certificate to PEM (base64) format.

Returns
the binary data of the PEM encoding

Definition at line 1182 of file ksslcertificate.cpp.

QString KSSLCertificate::toString ( )

Convert this certificate to a string.

Returns
the certificate in base64 format

Definition at line 1055 of file ksslcertificate.cpp.

QString KSSLCertificate::toText ( )

Convert the certificate to OpenSSL plain text format.

Returns
the OpenSSL text encoding

Definition at line 1248 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidation KSSLCertificate::validate ( )

Check if this is a valid certificate.

Will use cached data.

Returns
the result of the validation

Definition at line 633 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidation KSSLCertificate::validate ( KSSLCertificate::KSSLPurpose  purpose)

Check if this is a valid certificate.

Will use cached data.

Parameters
pthe purpose to validate for
Returns
the result of the validation

Definition at line 638 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose ( KSSLCertificate::KSSLPurpose  purpose)

Check if this is a valid certificate.

Will use cached data.

Parameters
pthe purpose to validate for
Returns
all problems encountered during validation

Definition at line 653 of file ksslcertificate.cpp.

KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose ( KSSLCertificate::KSSLPurpose  purpose,
KSSLCertificate ca 
)

Check if the certificate ca is a proper CA for this certificate.

Parameters
pthe purpose to validate for
cathe certificate to check
Returns
all problems encountered during validation

Definition at line 658 of file ksslcertificate.cpp.

QString KSSLCertificate::verifyText ( KSSLValidation  x)
static

Obtain the localized message that corresponds to a validation result.

Parameters
xthe code to look up
Returns
the message text corresponding to the validation code

Definition at line 1060 of file ksslcertificate.cpp.

KSSLX509V3 & KSSLCertificate::x509V3Extensions ( )

Access the X.509v3 parameters.

Returns
reference to the extension object
See also
KSSLX509V3

Definition at line 1288 of file ksslcertificate.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Aug 10 2020 23:02:33 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.