Qt Cryptographic Architecture
|
Go to the documentation of this file.
46 #ifndef DOXYGEN_NO_PROVIDER_API
96 Q_DECLARE_INTERFACE(
QCAPlugin,
"com.affinix.qca.Plugin/1.0")
124 virtual QStringList supportedHashTypes()
const;
129 virtual QStringList supportedCipherTypes()
const;
134 virtual QStringList supportedMACTypes()
const;
191 virtual void clear() = 0;
249 virtual int blockSize()
const = 0;
254 virtual AuthTag tag()
const = 0;
377 unsigned int keyLength,
379 unsigned int *iterationCount) = 0;
445 virtual bool isNull()
const = 0;
460 virtual void fetchGroup(
DLGroupSet set,
bool block) = 0;
508 virtual bool isNull()
const = 0;
518 virtual bool isPrivate()
const = 0;
525 virtual bool canExport()
const = 0;
533 virtual void convertToPublic() = 0;
538 virtual int bits()
const = 0;
595 virtual QByteArray endSign();
604 virtual bool endVerify(
const QByteArray &sig);
660 virtual void createPrivate(
int bits,
int exp,
bool block) = 0;
742 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
764 virtual DLGroup domain()
const = 0;
812 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
836 virtual DLGroup domain()
const = 0;
900 virtual const PKeyBase *key()
const = 0;
909 virtual void setKey(
PKeyBase *key) = 0;
922 virtual bool importKey(
const PKeyBase *key) = 0;
929 virtual QByteArray publicToDER()
const;
936 virtual QString publicToPEM()
const;
1031 virtual QByteArray toDER()
const = 0;
1038 virtual QString toPEM()
const = 0;
1309 virtual bool compare(
const CertContext *other)
const = 0;
1315 virtual PKeyContext *subjectPublicKey()
const = 0;
1323 virtual bool isIssuerOf(
const CertContext *other)
const = 0;
1410 virtual bool compare(
const CSRContext *other)
const = 0;
1416 virtual PKeyContext *subjectPublicKey()
const = 0;
1424 virtual QString toSPKAC()
const = 0;
1469 virtual bool compare(
const CRLContext *other)
const = 0;
1584 virtual CRLContext *createCRL(
const QDateTime &nextUpdate)
const = 0;
1738 virtual QByteArray toBinary()
const = 0;
1743 virtual QString toAscii()
const = 0;
1798 virtual QString id()
const = 0;
1803 virtual QString name()
const = 0;
1808 virtual QString storeId()
const = 0;
1813 virtual QString storeName()
const = 0;
1818 virtual bool isAvailable()
const;
1828 virtual QString serialize()
const = 0;
1846 virtual CRL crl()
const;
1852 virtual PGPKey pgpSecretKey()
const;
1859 virtual PGPKey pgpPublicKey()
const;
1869 virtual bool ensureAccess();
1896 virtual void start();
1906 virtual void setUpdatesEnabled(
bool enabled);
1938 virtual QString storeId(
int id)
const = 0;
1946 virtual QString name(
int id)
const = 0;
1956 virtual bool isReadOnly(
int id)
const;
2013 virtual QString writeEntry(
int id,
const KeyBundle &kb);
2024 virtual QString writeEntry(
int id,
const Certificate &cert);
2035 virtual QString writeEntry(
int id,
const CRL &crl);
2046 virtual QString writeEntry(
int id,
const PGPKey &key);
2057 virtual bool removeEntry(
int id,
const QString &entryId);
2099 void diagnosticText(
const QString &str);
2107 void storeUpdated(
int id);
2214 virtual void reset() = 0;
2223 virtual QStringList supportedCipherSuites(
const TLS::Version &version)
const = 0;
2228 virtual bool canCompress()
const = 0;
2233 virtual bool canSetHostName()
const = 0;
2238 virtual int maxSSF()
const = 0;
2250 virtual void setup(
bool serverMode,
const QString &hostName,
bool compress) = 0;
2260 virtual void setConstraints(
int minSSF,
int maxSSF) = 0;
2274 virtual void setConstraints(
const QStringList &cipherSuiteList) = 0;
2323 virtual void shutdown() = 0;
2332 virtual void setMTU(
int size);
2346 virtual void start() = 0;
2373 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2384 virtual bool waitForResultsReady(
int msecs) = 0;
2389 virtual Result result()
const = 0;
2394 virtual QByteArray to_net() = 0;
2400 virtual int encoded()
const = 0;
2406 virtual QByteArray to_app() = 0;
2411 virtual bool eof()
const = 0;
2419 virtual bool clientHelloReceived()
const = 0;
2426 virtual bool serverHelloReceived()
const = 0;
2434 virtual QString hostName()
const = 0;
2441 virtual bool certificateRequested()
const = 0;
2455 virtual Validity peerCertificateValidity()
const = 0;
2469 virtual SessionInfo sessionInfo()
const = 0;
2476 virtual QByteArray unprocessed() = 0;
2482 void resultsReady();
2550 virtual void reset() = 0;
2573 virtual void setup(
const QString &service,
const QString &host,
const HostPort *local,
const HostPort *remote,
const QString &ext_id,
int ext_ssf) = 0;
2585 virtual void setConstraints(
SASL::AuthFlags f,
int minSSF,
int maxSSF) = 0;
2602 virtual void startClient(
const QStringList &mechlist,
bool allowClientSendFirst) = 0;
2619 virtual void startServer(
const QString &realm,
bool disableServerSendLast) = 0;
2634 virtual void serverFirstStep(
const QString &mech,
const QByteArray *clientInit) = 0;
2647 virtual void nextStep(
const QByteArray &from_net) = 0;
2658 virtual void tryAgain() = 0;
2672 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2684 virtual bool waitForResultsReady(
int msecs) = 0;
2689 virtual Result result()
const = 0;
2694 virtual QStringList mechlist()
const = 0;
2699 virtual QString mech()
const = 0;
2704 virtual bool haveClientInit()
const = 0;
2710 virtual QByteArray stepData()
const = 0;
2716 virtual QByteArray to_net() = 0;
2722 virtual int encoded()
const = 0;
2728 virtual QByteArray to_app() = 0;
2735 virtual int ssf()
const = 0;
2760 virtual void setClientParams(
const QString *user,
const QString *authzid,
const SecureArray *pass,
const QString *realm) = 0;
2768 virtual QStringList realmlist()
const = 0;
2775 virtual QString username()
const = 0;
2782 virtual QString authzid()
const = 0;
2789 void resultsReady();
2831 virtual bool canSignMultiple()
const = 0;
2841 virtual void reset() = 0;
2865 virtual void setupVerify(
const QByteArray &detachedSig) = 0;
2887 virtual void update(
const QByteArray &in) = 0;
2892 virtual QByteArray read() = 0;
2898 virtual int written() = 0;
2903 virtual void end() = 0;
2908 virtual bool finished()
const = 0;
2919 virtual bool waitForFinished(
int msecs) = 0;
2926 virtual bool success()
const = 0;
2942 virtual QByteArray signature()
const = 0;
2950 virtual QString hashName()
const = 0;
2967 virtual QString diagnosticText()
const;
@ AuthCheck
Client login can be inspected (server only)
Definition: qcaprovider.h:2536
Definition: qca_publickey.h:170
QByteArray sig
The signature data.
Definition: qcaprovider.h:1170
Definition: qcaprovider.h:1218
Definition: qcaprovider.h:392
Direction
Direction settings for symmetric algorithms.
Definition: qca_core.h:140
MessageContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2825
QString challenge
The SPKAC challenge value.
Definition: qcaprovider.h:1196
Definition: qcaprovider.h:1014
CertificateInfoOrdered subject
The subject information.
Definition: qcaprovider.h:1102
Definition: qcaprovider.h:344
CertificateInfoOrdered issuer
The issuer information.
Definition: qcaprovider.h:1109
Definition: qca_core.h:752
QList< CRLEntry > revoked
The revoked entries.
Definition: qcaprovider.h:1244
Definition: qcaprovider.h:426
QDateTime end
The time the certificate expires.
Definition: qcaprovider.h:1097
quint16 port
The port.
Definition: qcaprovider.h:2525
Definition: qca_securelayer.h:906
KeyLength anyKeyLength() const
Returns a KeyLength that supports any length.
Definition: qcaprovider.h:324
Definition: qcaprovider.h:110
Definition: qcaprovider.h:1719
Definition: qcaprovider.h:2803
Error
Errors for secure messages.
Definition: qca_securemessage.h:355
SignatureFormat
Signature formats (DSA only)
Definition: qca_publickey.h:91
DHContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:797
QStringList policies
The policies.
Definition: qcaprovider.h:1119
CAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1540
QDateTime expirationDate
The time the key expires.
Definition: qcaprovider.h:1687
SMSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2998
Definition: qca_publickey.h:826
KeyStoreEntryContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1786
KDFContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:354
InfoContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:119
PGPKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1728
Definition: qcaprovider.h:1483
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
Definition: qcaprovider.h:1660
DLGroupContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:435
@ Params
Parameters are needed to complete authentication.
Definition: qcaprovider.h:2535
Version
Version of TLS or SSL.
Definition: qca_securelayer.h:305
TLSSessionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2129
Definition: qca_core.h:1251
Type
The type of entry in the KeyStore.
Definition: qca_keystore.h:146
Definition: qcaprovider.h:82
QStringList crlLocations
A list of URIs for CRLs.
Definition: qcaprovider.h:1126
Definition: qcaprovider.h:1274
TLS::Version version
The TLS protocol version being used for this connection.
Definition: qcaprovider.h:2166
Definition: qcaprovider.h:1777
CertContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1283
SignatureAlgorithm sigalgo
The signature algorithm used by the issuer to sign the CRL.
Definition: qcaprovider.h:1254
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1189
SignatureAlgorithm
Signature algorithm variants.
Definition: qca_publickey.h:73
Definition: qca_cert.h:1890
Definition: qca_core.h:1297
MACContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:292
PKCS12Context(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1617
bool isCA
True if the certificate is a CA or the certificate request is requesting to be a CA,...
Definition: qcaprovider.h:1153
Definition: qcaprovider.h:216
QString fingerprint
The hex fingerprint of the key.
Definition: qcaprovider.h:1694
Definition: qcaprovider.h:147
bool isSecret
True if this key is a secret key, otherwise false.
Definition: qcaprovider.h:1677
CertificateRequestFormat
Certificate Request Format.
Definition: qca_cert.h:54
QList< ConstraintType > Constraints
Certificate constraints type
Definition: qca_cert.h:582
Definition: qcaprovider.h:2120
@ Success
Operation completed.
Definition: qcaprovider.h:2198
Result
Result of a TLS operation.
Definition: qcaprovider.h:2196
CipherContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:229
@ Decrypt
Decrypt (or Decrypt and Verify) operation.
Definition: qcaprovider.h:2813
EncryptionAlgorithm
Encryption algorithms.
Definition: qca_publickey.h:54
Definition: qcaprovider.h:2142
RSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:644
Definition: qcaprovider.h:1531
QByteArray sig
The signature data of the CRL.
Definition: qcaprovider.h:1249
bool isCompressed
True if the TLS connection is compressed, otherwise false.
Definition: qcaprovider.h:2161
Definition: qcaprovider.h:635
Definition: qca_cert.h:1207
CRLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1457
Operation
The type of operation being performed.
Definition: qcaprovider.h:2810
int pathLimit
The path limit.
Definition: qcaprovider.h:1165
TLSSessionContext * id
Pointer to the id of this TLS session, for use with resuming.
Definition: qcaprovider.h:2190
QStringList userIds
List of user id strings for the key, the first one being the primary user id.
Definition: qcaprovider.h:1672
@ Encrypt
Encrypt operation.
Definition: qcaprovider.h:2812
Definition: qcaprovider.h:788
KeyStoreListContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1891
Format
Formats for secure messages.
Definition: qca_securemessage.h:346
@ Sign
Sign operation.
Definition: qcaprovider.h:2814
CertificateRequestFormat format
The format used for the certificate request.
Definition: qcaprovider.h:1203
Definition: qcaprovider.h:1367
@ Error
Operation failed.
Definition: qcaprovider.h:2534
Definition: qca_tools.h:316
Definition: qca_cert.h:539
bool inKeyring
True if this key is in a keyring (and thus usable), otherwise false.
Definition: qcaprovider.h:1700
Definition: qcaprovider.h:176
Definition: qcaprovider.h:2988
Definition: qca_cert.h:848
RandomContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:156
UsageMode
Specify the intended usage of a certificate.
Definition: qca_cert.h:475
Definition: qca_tools.h:570
Definition: qca_cert.h:1702
Definition: qcaprovider.h:2501
Result
Result of a SASL operation.
Definition: qcaprovider.h:2531
Definition: qcaprovider.h:491
Definition: qca_cert.h:2135
HKDFContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:402
Type
The type of secure message.
Definition: qca_securemessage.h:327
HashContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:186
Type
Types of public key cryptography keys supported by QCA.
Definition: qca_publickey.h:255
int cipherMaxBits
The maximum bit size possible of the cipher used for this connection.
Definition: qcaprovider.h:2184
QDateTime start
The time the certificate becomes valid (often the time of create)
Definition: qcaprovider.h:1090
int cipherBits
The bit size of the cipher used for this connection.
Definition: qcaprovider.h:2178
TLSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2209
Definition: qcaprovider.h:2514
Definition: qcaprovider.h:1448
QDateTime creationDate
The time the key was created.
Definition: qcaprovider.h:1682
ValidateFlags
The conditions to validate for a certificate.
Definition: qca_cert.h:508
Definition: qcaprovider.h:283
bool isSelfSigned
True if the certificate is self-signed.
Definition: qcaprovider.h:1160
ConvertResult
Return value from a format conversion.
Definition: qca_publickey.h:117
SignatureAlgorithm sigalgo
The signature algorithm used to create the signature.
Definition: qcaprovider.h:1175
Definition: qcaprovider.h:2155
PBEAlgorithm
Password-based encryption.
Definition: qca_publickey.h:101
Definition: qcaprovider.h:1882
AuthCondition
Possible authentication error states.
Definition: qca_securelayer.h:848
SASLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2545
Constraints constraints
The constraints.
Definition: qcaprovider.h:1114
Definition: qcaprovider.h:1075
CertCollectionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1492
QByteArray subjectId
The subject id.
Definition: qcaprovider.h:1182
Definition: qca_tools.h:90
AuthFlags
Authentication requirement flag values.
Definition: qca_securelayer.h:867
QStringList ocspLocations
A list of URIs for OCSP services.
Definition: qcaprovider.h:1140
QString keyId
The key id.
Definition: qcaprovider.h:1666
Type
The type of keystore.
Definition: qca_keystore.h:423
Definition: qca_cert.h:601
QDateTime thisUpdate
The time this CRL was created.
Definition: qcaprovider.h:1234
CSRContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1376
int version
The X.509 certificate version, usually 3.
Definition: qcaprovider.h:1083
virtual ~QCAPlugin()
Destructs the object.
Definition: qcaprovider.h:88
CertificateInfoOrdered issuer
The issuer information of the CRL.
Definition: qcaprovider.h:1224
Definition: qca_cert.h:2360
bool isTrusted
True if this key is trusted (e.g.
Definition: qcaprovider.h:1706
Definition: qca_core.h:1334
QStringList issuerLocations
A list of URIs for issuer certificates.
Definition: qcaprovider.h:1133
Definition: qca_core.h:997
QString addr
The IP address.
Definition: qcaprovider.h:2520
Definition: qcaprovider.h:1608
PKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:873
Validity
The validity (or otherwise) of a certificate.
Definition: qca_cert.h:489
Definition: qca_core.h:700
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1259
Definition: qcaprovider.h:718
DSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:727
BigInteger serial
The certificate serial number.
Definition: qcaprovider.h:1147
int number
The CRL number, which increases at each update.
Definition: qcaprovider.h:1229
QDateTime nextUpdate
The time this CRL expires, and the next CRL should be fetched.
Definition: qcaprovider.h:1239
QString cipherSuite
The cipher suite being used for this connection.
Definition: qcaprovider.h:2173
@ Error
Operation failed.
Definition: qcaprovider.h:2199
@ Verify
Verify operation.
Definition: qcaprovider.h:2815
@ Success
Operation completed.
Definition: qcaprovider.h:2533
SignMode
The type of message signature.
Definition: qca_securemessage.h:336
Definition: qcaprovider.h:864
DLGroupSet
Well known discrete logarithm group sets.
Definition: qca_publickey.h:133
CertBase(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:1024