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;
411 virtual bool isNull()
const = 0;
426 virtual void fetchGroup(
DLGroupSet set,
bool block) = 0;
474 virtual bool isNull()
const = 0;
484 virtual bool isPrivate()
const = 0;
491 virtual bool canExport()
const = 0;
499 virtual void convertToPublic() = 0;
504 virtual int bits()
const = 0;
561 virtual QByteArray endSign();
570 virtual bool endVerify(
const QByteArray &sig);
626 virtual void createPrivate(
int bits,
int exp,
bool block) = 0;
708 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
730 virtual DLGroup domain()
const = 0;
778 virtual void createPrivate(
const DLGroup &domain,
bool block) = 0;
802 virtual DLGroup domain()
const = 0;
866 virtual const PKeyBase *key()
const = 0;
875 virtual void setKey(
PKeyBase *key) = 0;
888 virtual bool importKey(
const PKeyBase *key) = 0;
895 virtual QByteArray publicToDER()
const;
902 virtual QString publicToPEM()
const;
997 virtual QByteArray toDER()
const = 0;
1004 virtual QString toPEM()
const = 0;
1275 virtual bool compare(
const CertContext *other)
const = 0;
1281 virtual PKeyContext *subjectPublicKey()
const = 0;
1289 virtual bool isIssuerOf(
const CertContext *other)
const = 0;
1376 virtual bool compare(
const CSRContext *other)
const = 0;
1382 virtual PKeyContext *subjectPublicKey()
const = 0;
1390 virtual QString toSPKAC()
const = 0;
1435 virtual bool compare(
const CRLContext *other)
const = 0;
1550 virtual CRLContext *createCRL(
const QDateTime &nextUpdate)
const = 0;
1704 virtual QByteArray toBinary()
const = 0;
1709 virtual QString toAscii()
const = 0;
1764 virtual QString id()
const = 0;
1769 virtual QString name()
const = 0;
1774 virtual QString storeId()
const = 0;
1779 virtual QString storeName()
const = 0;
1784 virtual bool isAvailable()
const;
1794 virtual QString serialize()
const = 0;
1812 virtual CRL crl()
const;
1818 virtual PGPKey pgpSecretKey()
const;
1825 virtual PGPKey pgpPublicKey()
const;
1835 virtual bool ensureAccess();
1862 virtual void start();
1872 virtual void setUpdatesEnabled(
bool enabled);
1904 virtual QString storeId(
int id)
const = 0;
1912 virtual QString
name(
int id)
const = 0;
1922 virtual bool isReadOnly(
int id)
const;
1979 virtual QString writeEntry(
int id,
const KeyBundle &kb);
1990 virtual QString writeEntry(
int id,
const Certificate &cert);
2001 virtual QString writeEntry(
int id,
const CRL &crl);
2012 virtual QString writeEntry(
int id,
const PGPKey &key);
2023 virtual bool removeEntry(
int id,
const QString &entryId);
2065 void diagnosticText(
const QString &str);
2073 void storeUpdated(
int id);
2180 virtual void reset() = 0;
2189 virtual QStringList supportedCipherSuites(
const TLS::Version &version)
const = 0;
2194 virtual bool canCompress()
const = 0;
2199 virtual bool canSetHostName()
const = 0;
2204 virtual int maxSSF()
const = 0;
2216 virtual void setup(
bool serverMode,
const QString &hostName,
bool compress) = 0;
2226 virtual void setConstraints(
int minSSF,
int maxSSF) = 0;
2240 virtual void setConstraints(
const QStringList &cipherSuiteList) = 0;
2289 virtual void shutdown() = 0;
2298 virtual void setMTU(
int size);
2312 virtual void start() = 0;
2339 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2350 virtual bool waitForResultsReady(
int msecs) = 0;
2355 virtual Result result()
const = 0;
2360 virtual QByteArray to_net() = 0;
2366 virtual int encoded()
const = 0;
2372 virtual QByteArray to_app() = 0;
2377 virtual bool eof()
const = 0;
2385 virtual bool clientHelloReceived()
const = 0;
2392 virtual bool serverHelloReceived()
const = 0;
2400 virtual QString hostName()
const = 0;
2407 virtual bool certificateRequested()
const = 0;
2421 virtual Validity peerCertificateValidity()
const = 0;
2435 virtual SessionInfo sessionInfo()
const = 0;
2442 virtual QByteArray unprocessed() = 0;
2448 void resultsReady();
2516 virtual void reset() = 0;
2539 virtual void setup(
const QString &service,
const QString &host,
const HostPort *local,
const HostPort *remote,
const QString &ext_id,
int ext_ssf) = 0;
2551 virtual void setConstraints(
SASL::AuthFlags f,
int minSSF,
int maxSSF) = 0;
2568 virtual void startClient(
const QStringList &mechlist,
bool allowClientSendFirst) = 0;
2585 virtual void startServer(
const QString &realm,
bool disableServerSendLast) = 0;
2600 virtual void serverFirstStep(
const QString &mech,
const QByteArray *clientInit) = 0;
2613 virtual void nextStep(
const QByteArray &from_net) = 0;
2624 virtual void tryAgain() = 0;
2638 virtual void update(
const QByteArray &from_net,
const QByteArray &from_app) = 0;
2650 virtual bool waitForResultsReady(
int msecs) = 0;
2655 virtual Result result()
const = 0;
2660 virtual QStringList mechlist()
const = 0;
2665 virtual QString mech()
const = 0;
2670 virtual bool haveClientInit()
const = 0;
2676 virtual QByteArray stepData()
const = 0;
2682 virtual QByteArray to_net() = 0;
2688 virtual int encoded()
const = 0;
2694 virtual QByteArray to_app() = 0;
2701 virtual int ssf()
const = 0;
2726 virtual void setClientParams(
const QString *user,
const QString *authzid,
const SecureArray *pass,
const QString *realm) = 0;
2734 virtual QStringList realmlist()
const = 0;
2741 virtual QString username()
const = 0;
2748 virtual QString authzid()
const = 0;
2755 void resultsReady();
2797 virtual bool canSignMultiple()
const = 0;
2807 virtual void reset() = 0;
2831 virtual void setupVerify(
const QByteArray &detachedSig) = 0;
2853 virtual void update(
const QByteArray &in) = 0;
2858 virtual QByteArray read() = 0;
2864 virtual int written() = 0;
2869 virtual void end() = 0;
2874 virtual bool finished()
const = 0;
2885 virtual bool waitForFinished(
int msecs) = 0;
2892 virtual bool success()
const = 0;
2908 virtual QByteArray signature()
const = 0;
2916 virtual QString hashName()
const = 0;
2933 virtual QString diagnosticText()
const;
ConvertResult
Return value from a format conversion.
Definition: qca_publickey.h:117
X.509 certificate request provider.
Definition: qcaprovider.h:1333
CertificateInfoOrdered issuer
The issuer information of the CRL.
Definition: qcaprovider.h:1190
bool isCompressed
True if the TLS connection is compressed, otherwise false.
Definition: qcaprovider.h:2127
X.509 certificate provider.
Definition: qcaprovider.h:1240
PKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:839
PBEAlgorithm
Password-based encryption.
Definition: qca_publickey.h:101
Version
Version of TLS or SSL.
Definition: qca_securelayer.h:305
Diffie-Hellman provider.
Definition: qcaprovider.h:754
MessageContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2791
Message authentication code provider.
Definition: qcaprovider.h:283
QDateTime end
The time the certificate expires.
Definition: qcaprovider.h:1063
X.509 certificate or certificate request properties.
Definition: qcaprovider.h:1041
Parameter flags for the SASL authentication.
Definition: qca_securelayer.h:914
CSRContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1342
Generic private key.
Definition: qca_publickey.h:826
QString challenge
The SPKAC challenge value.
Definition: qcaprovider.h:1162
CertificateInfoOrdered subject
The subject information.
Definition: qcaprovider.h:1068
int cipherBits
The bit size of the cipher used for this connection.
Definition: qcaprovider.h:2144
CRLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1423
KeyStore provider.
Definition: qcaprovider.h:1848
CertificateInfoOrdered issuer
The issuer information.
Definition: qcaprovider.h:1075
int number
The CRL number, which increases at each update.
Definition: qcaprovider.h:1195
X.509 certificate revocation list provider.
Definition: qcaprovider.h:1414
OpenPGP key properties.
Definition: qcaprovider.h:1626
QDateTime thisUpdate
The time this CRL was created.
Definition: qcaprovider.h:1200
Type
The type of entry in the KeyStore.
Definition: qca_keystore.h:146
Certificate chain and private key pair.
Definition: qca_cert.h:2135
Provider plugin base class
Definition: qcaprovider.h:82
Discrete logarithm provider.
Definition: qcaprovider.h:392
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:1220
Operation completed.
Definition: qcaprovider.h:2164
X.509 certificate revocation list properties.
Definition: qcaprovider.h:1184
SecureMessage provider.
Definition: qcaprovider.h:2769
ValidateFlags
The conditions to validate for a certificate.
Definition: qca_cert.h:508
DSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:693
Validity
The validity (or otherwise) of a certificate.
Definition: qca_cert.h:489
QStringList policies
The policies.
Definition: qcaprovider.h:1085
Header file for SecureLayer and its subclasses.
Algorithm provider.
Definition: qca_core.h:749
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1225
bool inKeyring
True if this key is in a keyring (and thus usable), otherwise false.
Definition: qcaprovider.h:1666
RSAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:610
QString addr
The IP address.
Definition: qcaprovider.h:2486
Hash provider.
Definition: qcaprovider.h:176
Encrypt operation.
Definition: qcaprovider.h:2778
Header file for PublicKey and PrivateKey related classes.
RandomContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:156
KeyStoreEntry provider.
Definition: qcaprovider.h:1743
Decrypt (or Decrypt and Verify) operation.
Definition: qcaprovider.h:2779
QStringList userIds
List of user id strings for the key, the first one being the primary user id.
Definition: qcaprovider.h:1638
CAContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1506
TLS "session" provider.
Definition: qcaprovider.h:2086
PKCS12Context(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1583
TLSSessionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2095
PKCS#12 provider.
Definition: qcaprovider.h:1574
DHContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:763
CertCollectionContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1458
bool isCA
True if the certificate is a CA or the certificate request is requesting to be a CA, otherwise false.
Definition: qcaprovider.h:1119
Information about an active TLS connection.
Definition: qcaprovider.h:2121
QStringList crlLocations
A list of URIs for CRLs.
Definition: qcaprovider.h:1092
DSA provider.
Definition: qcaprovider.h:684
Type
The type of secure message.
Definition: qca_securemessage.h:327
QString keyId
The key id.
Definition: qcaprovider.h:1632
X.509 certificate collection provider.
Definition: qcaprovider.h:1449
SASL provider.
Definition: qcaprovider.h:2467
Certificate Revocation List
Definition: qca_cert.h:1702
Convenience class to hold an IP address and an associated port.
Definition: qcaprovider.h:2480
Error
Errors for secure messages.
Definition: qca_securemessage.h:355
QByteArray issuerId
The issuer id.
Definition: qcaprovider.h:1155
Container for keys for symmetric encryption algorithms.
Definition: qca_core.h:1248
Container for authentication tag.
Definition: qca_core.h:1331
QList< CRLEntry > revoked
The revoked entries.
Definition: qcaprovider.h:1210
Simple container for acceptable key lengths
Definition: qca_core.h:697
CertContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1249
Header file for core QCA infrastructure.
TLSSessionContext * id
Pointer to the id of this TLS session, for use with resuming.
Definition: qcaprovider.h:2156
Result
Result of a TLS operation.
Definition: qcaprovider.h:2162
Public key implementation provider base.
Definition: qcaprovider.h:457
Operation completed.
Definition: qcaprovider.h:2499
quint16 port
The port.
Definition: qcaprovider.h:2491
SignatureAlgorithm
Signature algorithm variants.
Definition: qca_publickey.h:73
A discrete logarithm group.
Definition: qca_publickey.h:170
InfoContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:119
CertificateRequestFormat format
The format used for the certificate request.
Definition: qcaprovider.h:1169
Ordered certificate properties type.
Definition: qca_cert.h:539
DLGroupSet
Well known discrete logarithm group sets
Definition: qca_publickey.h:133
Client login can be inspected (server only)
Definition: qcaprovider.h:2502
Header file for classes that provide and manage keys.
CipherContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:229
Parameters are needed to complete authentication.
Definition: qcaprovider.h:2501
Container for initialisation vectors and nonces.
Definition: qca_core.h:1294
Format
Formats for secure messages.
Definition: qca_securemessage.h:346
TLSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2175
bool isTrusted
True if this key is trusted (e.g.
Definition: qcaprovider.h:1672
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:1205
Public key container provider.
Definition: qcaprovider.h:830
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:48
CertBase(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:990
SASLContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:2511
int pathLimit
The path limit.
Definition: qcaprovider.h:1131
Base class to use for primitive provider contexts.
Definition: qca_core.h:994
QString cipherSuite
The cipher suite being used for this connection.
Definition: qcaprovider.h:2139
virtual QString name() const =0
The name of the provider.
KDFContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:354
HashContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:186
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:875
Verify operation.
Definition: qcaprovider.h:2781
int cipherMaxBits
The maximum bit size possible of the cipher used for this connection.
Definition: qcaprovider.h:2150
Sign operation.
Definition: qcaprovider.h:2780
bool isSelfSigned
True if the certificate is self-signed.
Definition: qcaprovider.h:1126
Header file for classes for cryptographic primitives (basic operations).
SignatureFormat
Signature formats (DSA only)
Definition: qca_publickey.h:91
SignatureAlgorithm sigalgo
The signature algorithm used to create the signature.
Definition: qcaprovider.h:1141
QDateTime start
The time the certificate becomes valid (often the time of create)
Definition: qcaprovider.h:1056
Type
Types of public key cryptography keys supported by QCA.
Definition: qca_publickey.h:255
Secure array of bytes.
Definition: qca_tools.h:316
OpenPGP key provider.
Definition: qcaprovider.h:1685
MACContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:292
Result
Result of a SASL operation.
Definition: qcaprovider.h:2497
AuthCondition
Possible authentication error states.
Definition: qca_securelayer.h:856
KeyStoreListContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1857
bool isSecret
True if this key is a secret key, otherwise false.
Definition: qcaprovider.h:1643
virtual ~QCAPlugin()
Destructs the object.
Definition: qcaprovider.h:88
CertificateRequestFormat
Certificate Request Format.
Definition: qca_cert.h:54
QList< ConstraintType > Constraints
Certificate constraints type
Definition: qca_cert.h:582
Certificate options
Definition: qca_cert.h:601
TLS provider.
Definition: qcaprovider.h:2108
RSA provider.
Definition: qcaprovider.h:601
Key derivation function provider.
Definition: qcaprovider.h:344
EncryptionAlgorithm
Encryption algorithms.
Definition: qca_publickey.h:54
DLGroupContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:401
QByteArray sig
The signature data of the CRL.
Definition: qcaprovider.h:1215
A chain of related Certificates.
Definition: qca_cert.h:1207
Operation failed.
Definition: qcaprovider.h:2165
Operation
The type of operation being performed.
Definition: qcaprovider.h:2776
QDateTime expirationDate
The time the key expires.
Definition: qcaprovider.h:1653
QStringList issuerLocations
A list of URIs for issuer certificates.
Definition: qcaprovider.h:1099
Constraints constraints
The constraints.
Definition: qcaprovider.h:1080
QByteArray subjectId
The subject id.
Definition: qcaprovider.h:1148
Extended provider information.
Definition: qcaprovider.h:110
QStringList ocspLocations
A list of URIs for OCSP services.
Definition: qcaprovider.h:1106
QString type() const
The type of context, as passed to the constructor.
QString fingerprint
The hex fingerprint of the key.
Definition: qcaprovider.h:1660
Public Key (X.509) certificate.
Definition: qca_cert.h:848
SMSContext(Provider *p, const QString &type)
Standard constructor.
Definition: qcaprovider.h:2964
SecureMessageSystem provider.
Definition: qcaprovider.h:2954
BigInteger serial
The certificate serial number.
Definition: qcaprovider.h:1113
int version
The X.509 certificate version, usually 3.
Definition: qcaprovider.h:1049
SignMode
The type of message signature.
Definition: qca_securemessage.h:336
Operation failed.
Definition: qcaprovider.h:2500
PGPKeyContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1694
Internal context class used for the plugin.
QDateTime creationDate
The time the key was created.
Definition: qcaprovider.h:1648
KeyStoreEntryContext(Provider *p)
Standard constructor.
Definition: qcaprovider.h:1752
UsageMode
Specify the intended usage of a certificate.
Definition: qca_cert.h:475
Arbitrary precision integer
Definition: qca_tools.h:570
X.509 certificate and certificate request provider base.
Definition: qcaprovider.h:980
Cipher provider.
Definition: qcaprovider.h:216
TLS::Version version
The TLS protocol version being used for this connection.
Definition: qcaprovider.h:2132
Pretty Good Privacy key.
Definition: qca_cert.h:2360
Bundle of Certificates and CRLs.
Definition: qca_cert.h:1890
KeyLength anyKeyLength() const
Returns a KeyLength that supports any length.
Definition: qcaprovider.h:324
Random provider.
Definition: qcaprovider.h:147
X.509 certificate authority provider.
Definition: qcaprovider.h:1497
Array of bytes that may be optionally secured.
Definition: qca_tools.h:90
QByteArray sig
The signature data.
Definition: qcaprovider.h:1136