Qt Cryptographic Architecture
|
Go to the documentation of this file.
47 class CertificateCollection;
48 class CertificateChain;
175 Section section()
const;
230 return !(*
this == other);
235 QSharedDataPointer<Private> d;
285 QString value()
const;
303 return !(*
this == other);
308 QSharedDataPointer<Private> d;
419 Section section()
const;
471 return !(*
this == other);
476 QSharedDataPointer<Private> d;
519 ValidateRevoked = 0x01,
520 ValidateExpired = 0x02,
521 ValidatePolicy = 0x04
651 bool isValid()
const;
660 QString challenge()
const;
685 QStringList policies()
const;
694 QStringList crlLocations()
const;
703 QStringList issuerLocations()
const;
710 QStringList ocspLocations()
const;
723 int pathLimit()
const;
737 QDateTime notValidBefore()
const;
744 QDateTime notValidAfter()
const;
754 void setChallenge(
const QString &s);
781 void setConstraints(
const Constraints &constraints);
788 void setPolicies(
const QStringList &policies);
797 void setCRLLocations(
const QStringList &locations);
806 void setIssuerLocations(
const QStringList &locations);
813 void setOCSPLocations(
const QStringList &locations);
820 void setAsCA(
int pathLimit = 8);
840 void setValidityPeriod(
const QDateTime &start,
const QDateTime &end);
908 QDateTime notValidBefore()
const;
913 QDateTime notValidAfter()
const;
986 QStringList policies()
const;
993 QStringList crlLocations()
const;
1000 QStringList issuerLocations()
const;
1005 QStringList ocspLocations()
const;
1013 QString commonName()
const;
1037 bool isSelfSigned()
const;
1053 int pathLimit()
const;
1063 QByteArray subjectKeyId()
const;
1068 QByteArray issuerKeyId()
const;
1089 QByteArray toDER()
const;
1094 QString toPEM()
const;
1101 bool toPEMFile(
const QString &fileName)
const;
1116 fromDER(
const QByteArray &a,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1130 static Certificate fromPEM(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1146 fromPEMFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1160 bool matchesHostName(
const QString &host)
const;
1178 return !(*
this == other);
1190 friend class Private;
1191 QSharedDataPointer<Private> d;
1296 Validity * result =
nullptr)
const;
1306 return first().chain_validate(*
this, trusted, untrusted_crls, u, vf);
1313 return first().chain_complete(*
this, issuers, result);
1373 bool isNull()
const;
1426 QStringList policies()
const;
1446 int pathLimit()
const;
1451 QString challenge()
const;
1475 return !(*
this == other);
1483 QByteArray toDER()
const;
1490 QString toPEM()
const;
1499 bool toPEMFile(
const QString &fileName)
const;
1516 fromDER(
const QByteArray &a,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1534 fromPEM(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1552 fromPEMFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1561 QString toString()
const;
1578 fromString(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1589 friend class Private;
1590 QSharedDataPointer<Private> d;
1613 CessationOfOperation,
1667 QDateTime time()
const;
1672 bool isNull()
const;
1680 Reason reason()
const;
1689 bool operator<(
const CRLEntry &a)
const;
1698 bool operator==(
const CRLEntry &a)
const;
1707 return !(*
this == other);
1758 CRL &operator=(
const CRL &from);
1765 bool isNull()
const;
1796 QDateTime thisUpdate()
const;
1803 QDateTime nextUpdate()
const;
1818 QByteArray issuerKeyId()
const;
1827 bool operator==(
const CRL &a)
const;
1836 return !(*
this == other);
1844 QByteArray toDER()
const;
1851 QString toPEM()
const;
1859 bool toPEMFile(
const QString &fileName)
const;
1872 static CRL fromDER(
const QByteArray &a,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1885 static CRL fromPEM(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1900 fromPEMFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
1911 friend class Private;
1912 QSharedDataPointer<Private> d;
1965 void addCRL(
const CRL &crl);
2008 static bool canUsePKCS7(
const QString &provider = QString());
2018 bool toFlatTextFile(
const QString &fileName);
2030 bool toPKCS7File(
const QString &fileName,
const QString &provider = QString());
2046 fromFlatTextFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
2062 fromPKCS7File(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
2066 QSharedDataPointer<Private> d;
2138 CRL createCRL(
const QDateTime &nextUpdate)
const;
2221 bool isNull()
const;
2232 QString name()
const;
2253 void setName(
const QString &s);
2289 QByteArray toArray(
const SecureArray &passphrase,
const QString &provider = QString())
const;
2315 bool toFile(
const QString &fileName,
const SecureArray &passphrase,
const QString &provider = QString())
const;
2347 static KeyBundle fromArray(
const QByteArray & a,
2350 const QString & provider = QString());
2382 static KeyBundle fromFile(
const QString & fileName,
2385 const QString & provider = QString());
2389 QSharedDataPointer<Private> d;
2423 PGPKey(
const QString &fileName);
2446 bool isNull()
const;
2451 QString keyId()
const;
2456 QString primaryUserId()
const;
2461 QStringList userIds()
const;
2468 bool isSecret()
const;
2473 QDateTime creationDate()
const;
2478 QDateTime expirationDate()
const;
2486 QString fingerprint()
const;
2496 bool inKeyring()
const;
2503 bool isTrusted()
const;
2514 QByteArray toArray()
const;
2524 QString toString()
const;
2531 bool toFile(
const QString &fileName)
const;
2542 static PGPKey fromArray(
const QByteArray &a,
ConvertResult *result =
nullptr,
const QString &provider = QString());
2553 static PGPKey fromString(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
2566 fromFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
2633 void loadPrivateKeyFromPEMFile(
const QString &fileName);
2643 void loadPrivateKeyFromPEM(
const QString &s);
2663 void loadKeyBundleFromFile(
const QString &fileName);
2672 void loadKeyBundleFromArray(
const QByteArray &a);
2716 friend class Private;
@ DN
Distinguished name (the primary name)
Definition: qca_cert.h:127
@ IncorporationLocality
The locality of incorporation (EV certificates), id = "1.3.6.1.4.1.311.60.2.1.1".
Definition: qca_cert.h:72
CertificateChain complete(const QList< Certificate > &issuers=QList< Certificate >(), Validity *result=nullptr) const
Complete a certificate chain for the primary certificate, using the rest of the certificates in the c...
Definition: qca_cert.h:1309
@ KeyAgreement
Certificate can be used for key agreement, id = "KeyUsage.keyAgreement"
Definition: qca_cert.h:323
Definition: qca_cert.h:2077
@ ErrorExpiredCA
The Certificate Authority has expired.
Definition: qca_cert.h:509
@ ErrorInvalidPurpose
The purpose does not match the intended usage.
Definition: qca_cert.h:503
Section
Section of the certificate that the constraint belongs in.
Definition: qca_cert.h:369
bool operator!=(const CRL &other) const
Inequality operator.
Definition: qca_cert.h:1834
bool operator!=(const CertificateInfoType &other) const
Inequality operator.
Definition: qca_cert.h:228
Definition: qca_cert.h:119
CertificateInfoOrdered dnOnly() const
Return a new CertificateInfoOrdered that only contains the Distinguished Name (DN) types found in thi...
Definition: qca_cert.h:582
@ ErrorExpired
The certificate has expired, or is not yet valid (e.g.
Definition: qca_cert.h:507
@ ErrorPathLengthExceeded
The path length from the root CA to this certificate is too long.
Definition: qca_cert.h:506
QCA_EXPORT QStringList makeFriendlyNames(const QList< Certificate > &list)
Create a list of unique friendly names among a list of certificates.
@ RemoveFromCRL
certificate was previously in a CRL, but is now valid
Definition: qca_cert.h:1615
@ IncorporationCountry
The country of incorporation (EV certificates), id = "1.3.6.1.4.1.311.60.2.1.3".
Definition: qca_cert.h:76
@ IPAddress
IP address, id = "GeneralName.iPAddress".
Definition: qca_cert.h:79
@ Email
Email address, id = "GeneralName.rfc822Name".
Definition: qca_cert.h:67
Definition: qca_publickey.h:832
@ KeyCertificateSign
Certificate can be used for key certificate signing, id = "KeyUsage.keyCertSign"
Definition: qca_cert.h:324
@ DataEncipherment
Certificate can be used for encrypting / decrypting data, id = "KeyUsage.dataEncipherment"
Definition: qca_cert.h:322
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
@ KeyCompromise
private key has been compromised
Definition: qca_cert.h:1609
Definition: qca_core.h:1163
Definition: qca_cert.h:245
@ OrganizationalUnit
An part of an organisation (eg a division or branch), id = "2.5.4.11".
Definition: qca_cert.h:70
@ UsageTimeStamping
time stamping certificate
Definition: qca_cert.h:489
@ OCSPSigning
Certificate can be used to sign an Online Certificate Status Protocol (OCSP) assertion,...
Definition: qca_cert.h:346
Definition: qcaprovider.h:1324
SignatureAlgorithm
Signature algorithm variants.
Definition: qca_publickey.h:73
Definition: qca_cert.h:1928
Section
Section of the certificate that the information belongs in.
Definition: qca_cert.h:125
QCA_EXPORT QString orderedToDNString(const CertificateInfoOrdered &in)
Convert to RFC 1779 string format.
Validity validate(const CertificateCollection &trusted, const QList< CRL > &untrusted_crls=QList< CRL >(), UsageMode u=UsageAny, ValidateFlags vf=ValidateAll) const
Check the validity of a certificate chain.
Definition: qca_cert.h:1299
@ CommonName
The common name (eg person), id = "2.5.4.3".
Definition: qca_cert.h:66
@ ValidityGood
The certificate is valid.
Definition: qca_cert.h:498
@ IncorporationState
The state of incorporation (EV certificates), id = "1.3.6.1.4.1.311.60.2.1.2".
Definition: qca_cert.h:74
@ State
The state within the country, id = "2.5.4.8".
Definition: qca_cert.h:73
@ UsageTLSServer
server side of a TLS or SSL connection
Definition: qca_cert.h:485
@ IPSecEndSystem
Certificate can be used to authenticate a endpoint in IPSEC, id = "1.3.6.1.5.5.7.3....
Definition: qca_cert.h:338
CertificateRequestFormat
Certificate Request Format.
Definition: qca_cert.h:53
QList< ConstraintType > Constraints
Certificate constraints type
Definition: qca_cert.h:590
@ UsageAny
Any application, or unspecified.
Definition: qca_cert.h:484
bool operator!=(const CertificateInfoPair &other) const
Inequality operator.
Definition: qca_cert.h:301
@ IPSecTunnel
Certificate can be used to authenticate a tunnel in IPSEC, id = "1.3.6.1.5.5.7.3.6".
Definition: qca_cert.h:340
@ EmailLegacy
PKCS#9 Email field, id = "1.2.840.113549.1.9.1".
Definition: qca_cert.h:68
Definition: qca_cert.h:1225
@ DNS
DNS name, id = "GeneralName.dNSName".
Definition: qca_cert.h:78
@ CACompromise
certificate authority has been compromised
Definition: qca_cert.h:1610
@ ErrorRejected
The root CA rejected the certificate purpose.
Definition: qca_cert.h:499
CertificateChain()
Create an empty certificate chain.
Definition: qca_cert.h:1231
@ DigitalSignature
Certificate can be used to create digital signatures, id = "KeyUsage.digitalSignature"
Definition: qca_cert.h:319
Definition: qca_cert.h:1325
ConstraintTypeKnown
Known types of certificate constraints.
Definition: qca_cert.h:316
const QCA_EXPORT SecureArray operator+(const SecureArray &a, const SecureArray &b)
Returns an array that is the result of concatenating a and b.
@ ServerAuth
Certificate can be used for server authentication (e.g.
Definition: qca_cert.h:330
@ Country
The country, id = "2.5.4.6".
Definition: qca_cert.h:75
QMultiMap< CertificateInfoType, QString > CertificateInfo
Certificate properties type.
Definition: qca_cert.h:535
@ ErrorInvalidCA
The Certificate Authority is invalid.
Definition: qca_cert.h:502
@ EmailProtection
Certificate can be used to sign / encrypt email, id = "1.3.6.1.5.5.7.3.4".
Definition: qca_cert.h:336
@ UsageEmailProtection
email (S/MIME) certificate
Definition: qca_cert.h:488
Definition: qcaprovider.h:1428
Definition: qca_tools.h:316
Definition: qca_cert.h:547
Definition: qca_cert.h:856
UsageMode
Specify the intended usage of a certificate.
Definition: qca_cert.h:482
Definition: qca_tools.h:570
Definition: qca_cert.h:1739
@ CodeSigning
Certificate can be used to sign code, id = "1.3.6.1.5.5.7.3.3".
Definition: qca_cert.h:334
@ ErrorSelfSigned
The certificate is self-signed, and is not found in the list of trusted certificates.
Definition: qca_cert.h:504
@ UsageCRLSigning
certificate revocation list signing certificate
Definition: qca_cert.h:490
Definition: qca_cert.h:2175
QCA_EXPORT CertificateInfoOrdered orderedDNOnly(const CertificateInfoOrdered &in)
Return a new CertificateInfoOrdered that only contains the Distinguished Name (DN) types found in the...
Definition: qcaprovider.h:1512
bool operator!=(const CRLEntry &other) const
Inequality operator.
Definition: qca_cert.h:1705
@ CRLSign
Certificate can be used to sign Certificate Revocation Lists, id = "KeyUsage.crlSign"
Definition: qca_cert.h:325
@ UsageCodeSigning
code signing certificate
Definition: qca_cert.h:487
@ CertificateHold
certificate is on hold
Definition: qca_cert.h:1614
bool operator!=(const Certificate &other) const
Inequality operator.
Definition: qca_cert.h:1176
const Certificate & primary() const
Return the primary (end-user) Certificate.
Definition: qca_cert.h:1249
ValidateFlags
The conditions to validate for a certificate.
Definition: qca_cert.h:516
ConvertResult
Return value from a format conversion.
Definition: qca_publickey.h:118
@ Unspecified
reason is unknown
Definition: qca_cert.h:1608
@ ClientAuth
Certificate can be used for client authentication (e.g.
Definition: qca_cert.h:332
CertificateInfoTypeKnown
Known types of information stored in certificates.
Definition: qca_cert.h:64
@ Organization
An organisation (eg company), id = "2.5.4.10".
Definition: qca_cert.h:69
bool operator!=(const CertificateRequest &other) const
Inequality operator.
Definition: qca_cert.h:1473
@ TimeStamping
Certificate can be used to create a "time stamp" signature, id = "1.3.6.1.5.5.7.3....
Definition: qca_cert.h:344
@ URI
Uniform Resource Identifier, id = "GeneralName.uniformResourceIdentifier".
Definition: qca_cert.h:77
@ ErrorRevoked
The certificate has been revoked.
Definition: qca_cert.h:505
Definition: qca_cert.h:363
@ IPSecUser
Certificate can be used to authenticate a user in IPSEC, id = "1.3.6.1.5.5.7.3.7".
Definition: qca_cert.h:342
Definition: qca_cert.h:609
@ ErrorValidityUnknown
Validity is unknown.
Definition: qca_cert.h:510
@ UsageTLSClient
client side of a TLS or SSL connection
Definition: qca_cert.h:486
@ KeyUsage
Stored in the key usage section.
Definition: qca_cert.h:371
@ Locality
The locality (eg city, a shire, or part of a state), id = "2.5.4.7".
Definition: qca_cert.h:71
Definition: qca_cert.h:1600
Definition: qca_cert.h:2406
@ NonRepudiation
Certificate can be used for non-repudiation, id = "KeyUsage.nonRepudiation"
Definition: qca_cert.h:320
bool operator!=(const ConstraintType &other) const
Inequality operator.
Definition: qca_cert.h:469
@ XMPP
XMPP address (see http://www.ietf.org/rfc/rfc3920.txt), id = "1.3.6.1.5.5.7.8.5".
Definition: qca_cert.h:80
Definition: qca_cert.h:2612
Definition: qca_publickey.h:528
Validity
The validity (or otherwise) of a certificate.
Definition: qca_cert.h:496
@ EncipherOnly
Certificate can only be used for encryption, id = "KeyUsage.encipherOnly"
Definition: qca_cert.h:326
@ SPKAC
Signed Public Key and Challenge (Netscape) format.
Definition: qca_cert.h:56
@ ErrorUntrusted
The certificate is not trusted.
Definition: qca_cert.h:500
@ ErrorSignatureFailed
The signature does not match.
Definition: qca_cert.h:501
QString toString() const
Convert to RFC 1779 string format.
Definition: qca_cert.h:577
@ PKCS10
standard PKCS#10 format
Definition: qca_cert.h:55
CertificateChain(const Certificate &primary)
Create a certificate chain, starting at the specified certificate.
Definition: qca_cert.h:1241
@ DecipherOnly
Certificate can only be used for decryption, id = "KeyUsage.decipherOnly"
Definition: qca_cert.h:327
@ KeyEncipherment
Certificate can be used for encrypting / decrypting keys, id = "KeyUsage.keyEncipherment"
Definition: qca_cert.h:321
@ Superseded
certificate has been superseded
Definition: qca_cert.h:1612
Reason
The reason why the certificate has been revoked.
Definition: qca_cert.h:1606