46 #ifndef DOXYGEN_NO_PROVIDER_API 98 Q_DECLARE_INTERFACE(
QCAPlugin,
"com.affinix.qca.Plugin/1.0")
129 virtual QStringList supportedHashTypes()
const;
134 virtual QStringList supportedCipherTypes()
const;
139 virtual QStringList supportedMACTypes()
const;
202 virtual void clear() = 0;
263 virtual int blockSize()
const = 0;
268 virtual AuthTag tag()
const = 0;
386 unsigned int keyLength,
387 unsigned int iterationCount) = 0;
400 unsigned int keyLength,
402 unsigned int * iterationCount) = 0;
441 unsigned int keyLength) = 0;
464 :
Provider::Context(p, QStringLiteral(
"dlgroup"))
476 virtual bool isNull()
const = 0;
491 virtual void fetchGroup(
DLGroupSet set,
bool block) = 0;
539 virtual bool isNull()
const = 0;
549 virtual bool isPrivate()
const = 0;
556 virtual bool canExport()
const = 0;
564 virtual void convertToPublic() = 0;
569 virtual int bits()
const = 0;
626 virtual QByteArray endSign();
635 virtual bool endVerify(
const QByteArray &sig);
676 :
PKeyBase(p, QStringLiteral(
"rsa"))
694 virtual void createPrivate(
int bits,
int exp,
bool block) = 0;
705 virtual void createPrivate(
const BigInteger &n,
766 :
PKeyBase(p, QStringLiteral(
"dsa"))
783 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
805 virtual DLGroup domain()
const = 0;
856 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
880 virtual DLGroup domain()
const = 0;
947 virtual const PKeyBase *key()
const = 0;
956 virtual void setKey(
PKeyBase *key) = 0;
969 virtual bool importKey(
const PKeyBase *key) = 0;
976 virtual QByteArray publicToDER()
const;
983 virtual QString publicToPEM()
const;
1081 virtual QByteArray toDER()
const = 0;
1088 virtual QString toPEM()
const = 0;
1334 :
CertBase(p, QStringLiteral(
"cert"))
1362 virtual bool compare(
const CertContext *other)
const = 0;
1368 virtual PKeyContext *subjectPublicKey()
const = 0;
1376 virtual bool isIssuerOf(
const CertContext *other)
const = 0;
1438 :
CertBase(p, QStringLiteral(
"csr"))
1474 virtual bool compare(
const CSRContext *other)
const = 0;
1480 virtual PKeyContext *subjectPublicKey()
const = 0;
1488 virtual QString toSPKAC()
const = 0;
1522 :
CertBase(p, QStringLiteral(
"crl"))
1536 virtual bool compare(
const CRLContext *other)
const = 0;
1658 virtual CRLContext *createCRL(
const QDateTime &nextUpdate)
const = 0;
1707 virtual QByteArray toPKCS12(
const QString & name,
1826 virtual QByteArray toBinary()
const = 0;
1831 virtual QString toAscii()
const = 0;
1889 virtual QString id()
const = 0;
1894 virtual QString name()
const = 0;
1899 virtual QString storeId()
const = 0;
1904 virtual QString storeName()
const = 0;
1909 virtual bool isAvailable()
const;
1919 virtual QString serialize()
const = 0;
1937 virtual CRL crl()
const;
1943 virtual PGPKey pgpSecretKey()
const;
1950 virtual PGPKey pgpPublicKey()
const;
1960 virtual bool ensureAccess();
1983 :
Provider::Context(p, QStringLiteral(
"keystorelist"))
1990 virtual void start();
2000 virtual void setUpdatesEnabled(
bool enabled);
2032 virtual QString storeId(
int id)
const = 0;
2040 virtual QString name(
int id)
const = 0;
2050 virtual bool isReadOnly(
int id)
const;
2107 virtual QString writeEntry(
int id,
const KeyBundle &kb);
2118 virtual QString writeEntry(
int id,
const Certificate &cert);
2129 virtual QString writeEntry(
int id,
const CRL &crl);
2140 virtual QString writeEntry(
int id,
const PGPKey &key);
2151 virtual bool removeEntry(
int id,
const QString &entryId);
2193 void diagnosticText(
const QString &str);
2201 void storeUpdated(
int id);
2314 virtual void reset() = 0;
2323 virtual QStringList supportedCipherSuites(
const TLS::Version &version)
const = 0;
2328 virtual bool canCompress()
const = 0;
2333 virtual bool canSetHostName()
const = 0;
2338 virtual int maxSSF()
const = 0;
2350 virtual void setup(
bool serverMode,
const QString &hostName,
bool compress) = 0;
2360 virtual void setConstraints(
int minSSF,
int maxSSF) = 0;
2374 virtual void setConstraints(
const QStringList &cipherSuiteList) = 0;
2423 virtual void shutdown() = 0;
2432 virtual void setMTU(
int size);
2446 virtual void start() = 0;
2473 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2484 virtual bool waitForResultsReady(
int msecs) = 0;
2489 virtual Result result()
const = 0;
2494 virtual QByteArray to_net() = 0;
2500 virtual int encoded()
const = 0;
2506 virtual QByteArray to_app() = 0;
2511 virtual bool eof()
const = 0;
2519 virtual bool clientHelloReceived()
const = 0;
2526 virtual bool serverHelloReceived()
const = 0;
2534 virtual QString hostName()
const = 0;
2541 virtual bool certificateRequested()
const = 0;
2555 virtual Validity peerCertificateValidity()
const = 0;
2576 virtual QByteArray unprocessed() = 0;
2582 void resultsReady();
2646 :
Provider::Context(p, QStringLiteral(
"sasl"))
2653 virtual void reset() = 0;
2676 virtual void setup(
const QString & service,
2677 const QString & host,
2680 const QString & ext_id,
2693 virtual void setConstraints(
SASL::AuthFlags f,
int minSSF,
int maxSSF) = 0;
2710 virtual void startClient(
const QStringList &mechlist,
bool allowClientSendFirst) = 0;
2727 virtual void startServer(
const QString &realm,
bool disableServerSendLast) = 0;
2742 virtual void serverFirstStep(
const QString &mech,
const QByteArray *clientInit) = 0;
2755 virtual void nextStep(
const QByteArray &from_net) = 0;
2766 virtual void tryAgain() = 0;
2780 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2792 virtual bool waitForResultsReady(
int msecs) = 0;
2797 virtual Result result()
const = 0;
2802 virtual QStringList mechlist()
const = 0;
2807 virtual QString mech()
const = 0;
2812 virtual bool haveClientInit()
const = 0;
2818 virtual QByteArray stepData()
const = 0;
2824 virtual QByteArray to_net() = 0;
2830 virtual int encoded()
const = 0;
2836 virtual QByteArray to_app() = 0;
2843 virtual int ssf()
const = 0;
2869 setClientParams(
const QString *user,
const QString *authzid,
const SecureArray *pass,
const QString *realm) = 0;
2877 virtual QStringList realmlist()
const = 0;
2884 virtual QString username()
const = 0;
2891 virtual QString authzid()
const = 0;
2898 void resultsReady();
2943 virtual bool canSignMultiple()
const = 0;
2953 virtual void reset() = 0;
2978 virtual void setupVerify(
const QByteArray &detachedSig) = 0;
3000 virtual void update(
const QByteArray &in) = 0;
3005 virtual QByteArray read() = 0;
3011 virtual int written() = 0;
3016 virtual void end() = 0;
3021 virtual bool finished()
const = 0;
3032 virtual bool waitForFinished(
int msecs) = 0;
3039 virtual bool success()
const = 0;
3055 virtual QByteArray signature()
const = 0;
3063 virtual QString hashName()
const = 0;
3080 virtual QString diagnosticText()
const;
ConvertResult
Return value from a format conversion.
Definition: qca_publickey.h:118
X.509 certificate request provider.
Definition: qcaprovider.h:1428
CertificateInfoOrdered issuer
The issuer information of the CRL.
Definition: qcaprovider.h:1274
bool isCompressed
True if the TLS connection is compressed, otherwise false.
Definition: qcaprovider.h:2258
X.509 certificate provider.
Definition: qcaprovider.h:1324
PKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:917
PBEAlgorithm
Password-based encryption.
Definition: qca_publickey.h:102
Version
Version of TLS or SSL.
Definition: qca_securelayer.h:305
Diffie-Hellman provider.
Definition: qcaprovider.h:829
MessageContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2934
Message authentication code provider.
Definition: qcaprovider.h:297
QDateTime end
The time the certificate expires.
Definition: qcaprovider.h:1147
X.509 certificate or certificate request properties.
Definition: qcaprovider.h:1125
Parameter flags for the SASL authentication.
Definition: qca_securelayer.h:906
CSRContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1437
Generic private key.
Definition: qca_publickey.h:832
QString challenge
The SPKAC challenge value.
Definition: qcaprovider.h:1246
CertificateInfoOrdered subject
The subject information.
Definition: qcaprovider.h:1152
int cipherBits
The bit size of the cipher used for this connection.
Definition: qcaprovider.h:2275
CRLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1521
KeyStore provider.
Definition: qcaprovider.h:1973
CertificateInfoOrdered issuer
The issuer information.
Definition: qcaprovider.h:1159
int number
The CRL number, which increases at each update.
Definition: qcaprovider.h:1279
X.509 certificate revocation list provider.
Definition: qcaprovider.h:1512
OpenPGP key properties.
Definition: qcaprovider.h:1745
QDateTime thisUpdate
The time this CRL was created.
Definition: qcaprovider.h:1284
Type
The type of entry in the KeyStore.
Definition: qca_keystore.h:146
Certificate chain and private key pair.
Definition: qca_cert.h:2175
Provider plugin base class.
Definition: qcaprovider.h:82
Discrete logarithm provider.
Definition: qcaprovider.h:454
Header file for PGP key and X.509 certificate related classes.
SignatureAlgorithm sigalgo
The signature algorithm used by the issuer to sign the CRL.
Definition: qcaprovider.h:1304
Operation completed.
Definition: qcaprovider.h:2295
X.509 certificate revocation list properties.
Definition: qcaprovider.h:1268
SecureMessage provider.
Definition: qcaprovider.h:2912
ValidateFlags
The conditions to validate for a certificate.
Definition: qca_cert.h:516
DSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:765
Validity
The validity (or otherwise) of a certificate.
Definition: qca_cert.h:496
QStringList policies
The policies.
Definition: qcaprovider.h:1169
Header file for SecureLayer and its subclasses.
Algorithm provider.
Definition: qca_core.h:764
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1309
bool inKeyring
True if this key is in a keyring (and thus usable), otherwise false.
Definition: qcaprovider.h:1785
RSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:675
QString addr
The IP address.
Definition: qcaprovider.h:2620
Hash provider.
Definition: qcaprovider.h:184
Encrypt operation.
Definition: qcaprovider.h:2921
Header file for PublicKey and PrivateKey related classes.
RandomContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:161
KeyStoreEntry provider.
Definition: qcaprovider.h:1865
Decrypt (or Decrypt and Verify) operation.
Definition: qcaprovider.h:2922
QStringList userIds
List of user id strings for the key, the first one being the primary user id.
Definition: qcaprovider.h:1757
CAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1611
TLS "session" provider.
Definition: qcaprovider.h:2214
PKCS12Context(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1692
TLSSessionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2223
PKCS#12 provider.
Definition: qcaprovider.h:1683
DHContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:838
CertCollectionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1559
bool isCA
True if the certificate is a CA or the certificate request is requesting to be a CA, otherwise false.
Definition: qcaprovider.h:1203
Information about an active TLS connection.
Definition: qcaprovider.h:2252
QStringList crlLocations
A list of URIs for CRLs.
Definition: qcaprovider.h:1176
DSA provider.
Definition: qcaprovider.h:756
Type
The type of secure message.
Definition: qca_securemessage.h:326
QString keyId
The key id.
Definition: qcaprovider.h:1751
X.509 certificate collection provider.
Definition: qcaprovider.h:1550
SASL provider.
Definition: qcaprovider.h:2601
Certificate Revocation List
Definition: qca_cert.h:1739
Convenience class to hold an IP address and an associated port.
Definition: qcaprovider.h:2614
Error
Errors for secure messages.
Definition: qca_securemessage.h:354
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1239
Container for keys for symmetric encryption algorithms.
Definition: qca_core.h:1263
Container for authentication tag.
Definition: qca_core.h:1346
QList< CRLEntry > revoked
The revoked entries.
Definition: qcaprovider.h:1294
Simple container for acceptable key lengths.
Definition: qca_core.h:700
CertContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1333
Header file for core QCA infrastructure.
TLSSessionContext * id
Pointer to the id of this TLS session, for use with resuming.
Definition: qcaprovider.h:2287
Result
Result of a TLS operation.
Definition: qcaprovider.h:2293
Public key implementation provider base.
Definition: qcaprovider.h:522
Operation completed.
Definition: qcaprovider.h:2633
quint16 port
The port.
Definition: qcaprovider.h:2625
SignatureAlgorithm
Signature algorithm variants.
Definition: qca_publickey.h:73
A discrete logarithm group.
Definition: qca_publickey.h:171
InfoContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:121
CertificateRequestFormat format
The format used for the certificate request.
Definition: qcaprovider.h:1253
Ordered certificate properties type.
Definition: qca_cert.h:547
DLGroupSet
Well known discrete logarithm group sets.
Definition: qca_publickey.h:134
Client login can be inspected (server only)
Definition: qcaprovider.h:2636
Header file for classes that provide and manage keys.
CipherContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:240
Parameters are needed to complete authentication.
Definition: qcaprovider.h:2635
Container for initialisation vectors and nonces.
Definition: qca_core.h:1309
Format
Formats for secure messages.
Definition: qca_securemessage.h:345
TLSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2306
bool isTrusted
True if this key is trusted (e.g.
Definition: qcaprovider.h:1791
Direction
Direction settings for symmetric algorithms.
Definition: qca_core.h:140
QDateTime nextUpdate
The time this CRL expires, and the next CRL should be fetched.
Definition: qcaprovider.h:1289
Public key container provider.
Definition: qcaprovider.h:908
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
CertBase(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:1071
SASLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2645
int pathLimit
The path limit.
Definition: qcaprovider.h:1215
Base class to use for primitive provider contexts.
Definition: qca_core.h:1009
QString cipherSuite
The cipher suite being used for this connection.
Definition: qcaprovider.h:2270
KDFContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:371
HashContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:194
Header file for secure message (PGP, CMS) classes.
Type
The type of keystore.
Definition: qca_keystore.h:423
AuthFlags
Authentication requirement flag values.
Definition: qca_securelayer.h:867
Verify operation.
Definition: qcaprovider.h:2924
int cipherMaxBits
The maximum bit size possible of the cipher used for this connection.
Definition: qcaprovider.h:2281
Sign operation.
Definition: qcaprovider.h:2923
bool isSelfSigned
True if the certificate is self-signed.
Definition: qcaprovider.h:1210
Header file for classes for cryptographic primitives (basic operations).
SignatureFormat
Signature formats (DSA only)
Definition: qca_publickey.h:92
SignatureAlgorithm sigalgo
The signature algorithm used to create the signature.
Definition: qcaprovider.h:1225
QDateTime start
The time the certificate becomes valid (often the time of create)
Definition: qcaprovider.h:1140
Type
Types of public key cryptography keys supported by QCA.
Definition: qca_publickey.h:256
Secure array of bytes.
Definition: qca_tools.h:316
OpenPGP key provider.
Definition: qcaprovider.h:1804
MACContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:306
Result
Result of a SASL operation.
Definition: qcaprovider.h:2631
AuthCondition
Possible authentication error states.
Definition: qca_securelayer.h:848
KeyStoreListContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1982
bool isSecret
True if this key is a secret key, otherwise false.
Definition: qcaprovider.h:1762
virtual ~QCAPlugin()
Destructs the object.
Definition: qcaprovider.h:88
CertificateRequestFormat
Certificate Request Format.
Definition: qca_cert.h:53
QList< ConstraintType > Constraints
Certificate constraints type
Definition: qca_cert.h:590
HKDF provider.
Definition: qcaprovider.h:415
Certificate options
Definition: qca_cert.h:609
TLS provider.
Definition: qcaprovider.h:2239
RSA provider.
Definition: qcaprovider.h:666
Key derivation function provider.
Definition: qcaprovider.h:361
EncryptionAlgorithm
Encryption algorithms.
Definition: qca_publickey.h:54
DLGroupContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:463
QByteArray sig
The signature data of the CRL.
Definition: qcaprovider.h:1299
A chain of related Certificates.
Definition: qca_cert.h:1225
Operation failed.
Definition: qcaprovider.h:2296
Operation
The type of operation being performed.
Definition: qcaprovider.h:2919
QDateTime expirationDate
The time the key expires.
Definition: qcaprovider.h:1772
QStringList issuerLocations
A list of URIs for issuer certificates.
Definition: qcaprovider.h:1183
Constraints constraints
The constraints.
Definition: qcaprovider.h:1164
QByteArray subjectId
The subject id.
Definition: qcaprovider.h:1232
Extended provider information.
Definition: qcaprovider.h:112
QStringList ocspLocations
A list of URIs for OCSP services.
Definition: qcaprovider.h:1190
QString fingerprint
The hex fingerprint of the key.
Definition: qcaprovider.h:1779
Public Key (X.509) certificate.
Definition: qca_cert.h:856
SMSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:3111
SecureMessageSystem provider.
Definition: qcaprovider.h:3101
BigInteger serial
The certificate serial number.
Definition: qcaprovider.h:1197
int version
The X.509 certificate version, usually 3.
Definition: qcaprovider.h:1133
SignMode
The type of message signature.
Definition: qca_securemessage.h:335
Operation failed.
Definition: qcaprovider.h:2634
PGPKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1813
Internal context class used for the plugin.
QDateTime creationDate
The time the key was created.
Definition: qcaprovider.h:1767
KeyStoreEntryContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1874
UsageMode
Specify the intended usage of a certificate.
Definition: qca_cert.h:482
Arbitrary precision integer.
Definition: qca_tools.h:570
X.509 certificate and certificate request provider base.
Definition: qcaprovider.h:1061
Cipher provider.
Definition: qcaprovider.h:227
TLS::Version version
The TLS protocol version being used for this connection.
Definition: qcaprovider.h:2263
Pretty Good Privacy key.
Definition: qca_cert.h:2406
Bundle of Certificates and CRLs.
Definition: qca_cert.h:1928
HKDFContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:425
KeyLength anyKeyLength() const
Returns a KeyLength that supports any length.
Definition: qcaprovider.h:341
Random provider.
Definition: qcaprovider.h:152
X.509 certificate authority provider.
Definition: qcaprovider.h:1602
Array of bytes that may be optionally secured.
Definition: qca_tools.h:90
QByteArray sig
The signature data.
Definition: qcaprovider.h:1220