QCA
qcaprovider.h
Go to the documentation of this file.
253 virtual void setup(Direction dir, const SymmetricKey &key, const InitializationVector &iv, const AuthTag &tag) = 0;
792 virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0;
866 virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0;
1572 virtual QByteArray toPKCS7(const QList<CertContext *> &certs, const QList<CRLContext *> &crls) const = 0;
1588 fromPKCS7(const QByteArray &a, QList<CertContext *> *certs, QList<CRLContext *> *crls) const = 0;
1639 virtual CertContext *signRequest(const CSRContext &req, const QDateTime ¬ValidAfter) const = 0;
1648 virtual CertContext *createCertificate(const PKeyContext &pub, const CertificateOptions &opts) const = 0;
1670 updateCRL(const CRLContext &crl, const QList<CRLEntry> &entries, const QDateTime &nextUpdate) const = 0;
2298 };
2638 };
2869 setClientParams(const QString *user, const QString *authzid, const SecureArray *pass, const QString *realm) = 0;
2926 };
2971 setupSign(const SecureMessageKeyList &keys, SecureMessage::SignMode m, bool bundleSigner, bool smime) = 0;
virtual QCA::Provider * createProvider()=0
Returns a newly allocated Provider instance.
virtual CertContext * certificate() const =0
Returns a copy of the CA's certificate.
virtual CertContext * createCertificate(const PKeyContext &pub, const CertificateOptions &opts) const =0
Issue a certificate based on a public key and options, and return the certificate.
virtual CRLContext * updateCRL(const CRLContext &crl, const QList< CRLEntry > &entries, const QDateTime &nextUpdate) const =0
Update an existing CRL, by examining an old one and creating a new one based on it.
virtual CRLContext * createCRL(const QDateTime &nextUpdate) const =0
Create a new CRL and return it.
virtual CertContext * signRequest(const CSRContext &req, const QDateTime ¬ValidAfter) const =0
Issue a certificate based on a certificate request, and return the certificate.
virtual void setup(const CertContext &cert, const PKeyContext &priv)=0
Prepare the object for usage.
SignatureAlgorithm sigalgo
The signature algorithm used by the issuer to sign the CRL.
Definition qcaprovider.h:1304
QDateTime nextUpdate
The time this CRL expires, and the next CRL should be fetched.
Definition qcaprovider.h:1289
virtual const CRLContextProps * props() const =0
Returns a pointer to the properties of this CRL.
virtual bool compare(const CRLContext *other) const =0
Returns true if this CRL is equal to another CRL, otherwise false.
virtual bool compare(const CSRContext *other) const =0
Returns true if this certificate request is equal to another certificate request, otherwise false.
virtual QString toSPKAC() const =0
Convert this certificate request to Netscape SPKAC format, and return the value.
virtual bool canUseFormat(CertificateRequestFormat f) const =0
Returns true if the provider of this object supports the specified format, otherwise false.
virtual const CertContextProps * props() const =0
Returns a pointer to the properties of this certificate request.
virtual PKeyContext * subjectPublicKey() const =0
Returns a copy of this certificate request's public key.
virtual bool createRequest(const CertificateOptions &opts, const PKeyContext &priv)=0
Create a certificate request based on the given options and private key.
virtual ConvertResult fromSPKAC(const QString &s)=0
Read Netscape SPKAC input and convert it into a certificate request.
virtual QByteArray toDER() const =0
Convert this object to DER format, and return the value.
virtual ConvertResult fromDER(const QByteArray &a)=0
Read DER-formatted input and convert it into this object.
virtual ConvertResult fromPEM(const QString &s)=0
Read PEM-formatted input and convert it into this object.
virtual QString toPEM() const =0
Convert this object to PEM format, and return the value.
virtual QByteArray toPKCS7(const QList< CertContext * > &certs, const QList< CRLContext * > &crls) const =0
Create PKCS#7 DER output based on the input certificates and CRLs.
virtual ConvertResult fromPKCS7(const QByteArray &a, QList< CertContext * > *certs, QList< CRLContext * > *crls) const =0
Read PKCS#7 DER input and convert it into a list of certificates and CRLs.
X.509 certificate or certificate request properties.
Definition qcaprovider.h:1126
QDateTime start
The time the certificate becomes valid (often the time of create)
Definition qcaprovider.h:1140
CertificateRequestFormat format
The format used for the certificate request.
Definition qcaprovider.h:1253
SignatureAlgorithm sigalgo
The signature algorithm used to create the signature.
Definition qcaprovider.h:1225
bool isCA
True if the certificate is a CA or the certificate request is requesting to be a CA,...
Definition qcaprovider.h:1203
virtual bool compare(const CertContext *other) const =0
Returns true if this certificate is equal to another certificate, otherwise false.
virtual bool isIssuerOf(const CertContext *other) const =0
Returns true if this certificate is an issuer of another certificate, otherwise false.
virtual Validity validate(const QList< CertContext * > &trusted, const QList< CertContext * > &untrusted, const QList< CRLContext * > &crls, UsageMode u, ValidateFlags vf) const =0
Validate this certificate.
virtual Validity validate_chain(const QList< CertContext * > &chain, const QList< CertContext * > &trusted, const QList< CRLContext * > &crls, UsageMode u, ValidateFlags vf) const =0
Validate a certificate chain.
virtual const CertContextProps * props() const =0
Returns a pointer to the properties of this certificate.
virtual PKeyContext * subjectPublicKey() const =0
Returns a copy of this certificate's public key.
virtual bool createSelfSigned(const CertificateOptions &opts, const PKeyContext &priv)=0
Create a self-signed certificate based on the given options and private key.
virtual void setup(Direction dir, const SymmetricKey &key, const InitializationVector &iv, const AuthTag &tag)=0
Set up the object for encrypt/decrypt.
virtual AuthTag tag() const =0
Returns the authentication tag for this cipher.
virtual KeyLength keyLength() const =0
Returns the KeyLength for this cipher.
virtual int blockSize() const =0
Returns the block size for this cipher.
virtual bool update(const SecureArray &in, SecureArray *out)=0
Process a chunk of data.
virtual BigInteger x() const =0
Returns the private X component of this Diffie-Hellman key.
virtual void createPrivate(const DLGroup &domain, bool block)=0
Generate a Diffie-Hellman private key.
virtual BigInteger y() const =0
Returns the public Y component of this Diffie-Hellman key.
virtual DLGroup domain() const =0
Returns the public domain component of this Diffie-Hellman key.
virtual void createPublic(const DLGroup &domain, const BigInteger &y)=0
Create a Diffie-Hellman public key based on its numeric components.
virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x)=0
Create a Diffie-Hellman private key based on its numeric components.
virtual void getResult(BigInteger *p, BigInteger *q, BigInteger *g) const =0
Obtain the result of the operation.
virtual bool isNull() const =0
Returns true if there is a result to obtain.
void finished()
Emitted when the fetchGroup() operation completes in non-blocking mode.
virtual void fetchGroup(DLGroupSet set, bool block)=0
Attempt to create P, Q, and G values from the specified group set.
virtual QList< DLGroupSet > supportedGroupSets() const =0
The DLGroupSets supported by this object.
virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x)=0
Create a DSA private key based on its numeric components.
virtual void createPrivate(const DLGroup &domain, bool block)=0
Generate a DSA private key.
virtual DLGroup domain() const =0
Returns the public domain component of this DSA key.
virtual void createPublic(const DLGroup &domain, const BigInteger &y)=0
Create a DSA public key based on its numeric components.
virtual SymmetricKey makeKey(const SecureArray &secret, const InitializationVector &salt, const InitializationVector &info, unsigned int keyLength)=0
Create a key and return it.
virtual QStringList supportedHashTypes() const
The hash algorithms supported by the provider.
virtual QStringList supportedMACTypes() const
The mac algorithms supported by the provider.
virtual QStringList supportedCipherTypes() const
The cipher algorithms supported by the provider.
virtual SymmetricKey makeKey(const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, int msecInterval, unsigned int *iterationCount)=0
Create a key and return it.
virtual SymmetricKey makeKey(const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, unsigned int iterationCount)=0
Create a key and return it.
virtual QString storeId() const =0
Returns the id of the store that contains this entry.
virtual bool isAvailable() const
Returns true if the private key of this entry is present for use.
virtual QString serialize() const =0
Serialize the information about this entry.
virtual bool ensureAccess()
Attempt to ensure the private key of this entry is usable and accessible, potentially prompting the u...
virtual KeyBundle keyBundle() const
If this entry is of type KeyStoreEntry::TypeKeyBundle, this function returns the KeyBundle of the ent...
virtual QString storeName() const =0
Returns the name of the store that contains this entry.
virtual PGPKey pgpPublicKey() const
If this entry is of type KeyStoreEntry::TypePGPPublicKey or KeyStoreEntry::TypePGPSecretKey,...
virtual PGPKey pgpSecretKey() const
If this entry is of type KeyStoreEntry::TypePGPSecretKey, this function returns the secret PGPKey of ...
virtual CRL crl() const
If this entry is of type KeyStoreEntry::TypeCRL, this function returns the CRL of the entry.
virtual Certificate certificate() const
If this entry is of type KeyStoreEntry::TypeCertificate, this function returns the Certificate of the...
virtual QString writeEntry(int id, const Certificate &cert)
Write a Certificate to the store.
virtual QString writeEntry(int id, const KeyBundle &kb)
Write a KeyBundle to the store.
void updated()
Indicates the list of keystores has changed, and that QCA should call keyStores() to obtain the lates...
virtual KeyStoreEntryContext * entry(int id, const QString &entryId)
Returns a single entry in the store, if the entry id is already known.
virtual KeyStore::Type type(int id) const =0
Returns the type of the specified store, or -1 if the integer context id is invalid.
virtual bool removeEntry(int id, const QString &entryId)
Remove an entry from the store.
virtual QList< KeyStoreEntry::Type > entryTypes(int id) const =0
Returns the types supported by the store, or an empty list if the integer context id is invalid.
virtual KeyStoreEntryContext * entryPassive(const QString &serialized)
Returns a single entry, created from the serialization string of a previous entry (using KeyStoreEntr...
void storeUpdated(int id)
Indicates that the entry list of a keystore has changed (entries added, removed, or modified)
virtual QList< int > keyStores()=0
Returns a list of integer context ids, each representing a keystore instance.
void diagnosticText(const QString &str)
Emitted when there is diagnostic text to report.
void busyStart()
Emit this when the provider is busy looking for keystores.
virtual void setUpdatesEnabled(bool enabled)
Enables or disables update events.
virtual bool isReadOnly(int id) const
Returns true if the store is read-only.
virtual QList< KeyStoreEntryContext * > entryList(int id)=0
Returns the entries of the store, or an empty list if the integer context id is invalid.
virtual QString storeId(int id) const =0
Returns the string id of the store, or an empty string if the integer context id is invalid.
virtual QString writeEntry(int id, const CRL &crl)
Write a CRL to the store.
virtual QString writeEntry(int id, const PGPKey &key)
Write a PGPKey to the store.
virtual QString name(int id) const =0
Returns the friendly name of the store, or an empty string if the integer context id is invalid.
KeyLength anyKeyLength() const
Returns a KeyLength that supports any length.
Definition qcaprovider.h:341
virtual KeyLength keyLength() const =0
Returns the KeyLength for this MAC algorithm.
virtual void start(SecureMessage::Format f, Operation op)=0
Begins the secure message operation.
virtual QString diagnosticText() const
Returns any diagnostic text for the operation, potentially useful to show the user in the event the o...
virtual void setupEncrypt(const SecureMessageKeyList &keys)=0
Configure a new encrypting operation.
virtual int written()=0
Returns the number of input bytes accepted since the last call to update()
virtual void setupVerify(const QByteArray &detachedSig)=0
Configure a new verify operation.
virtual QString hashName() const =0
Returns the name of the hash used to generate the signature, in the case of a signature operation.
virtual bool success() const =0
Returns true if the operation was successful.
virtual void setupSign(const SecureMessageKeyList &keys, SecureMessage::SignMode m, bool bundleSigner, bool smime)=0
Configure a new signing operation.
virtual bool finished() const =0
Returns true if the operation has finished, otherwise false.
virtual void update(const QByteArray &in)=0
Provide input to the message operation.
void updated()
Emitted when there is data to read, if input data has been accepted, or if the operation has finished...
virtual SecureMessage::Error errorCode() const =0
Returns the reason for failure, if the operation was not successful.
virtual QByteArray signature() const =0
Returns the signature, in the case of a detached signature operation.
virtual SecureMessageSignatureList signers() const =0
Returns a list of signatures, in the case of a verify or decrypt and verify operation.
virtual bool waitForFinished(int msecs)=0
Waits for the secure message operation to complete.
virtual bool canSignMultiple() const =0
Returns true if the provider supports multiple signers for signature creation or signature verificati...
virtual SecureMessage::Type type() const =0
The type of secure message (e.g.
bool inKeyring
True if this key is in a keyring (and thus usable), otherwise false.
Definition qcaprovider.h:1785
QStringList userIds
List of user id strings for the key, the first one being the primary user id.
Definition qcaprovider.h:1757
virtual QString toAscii() const =0
Convert the key to ascii-armored format, and return the value.
virtual const PGPKeyContextProps * props() const =0
Returns a pointer to the properties of this key.
virtual QByteArray toBinary() const =0
Convert the key to binary format, and return the value.
virtual ConvertResult fromBinary(const QByteArray &a)=0
Read binary input and convert it into a key.
virtual ConvertResult fromAscii(const QString &s)=0
Read ascii-armored input and convert it into a key.
virtual QByteArray toPKCS12(const QString &name, const QList< const CertContext * > &chain, const PKeyContext &priv, const SecureArray &passphrase) const =0
Create PKCS#12 DER output based on a set of input items.
virtual ConvertResult fromPKCS12(const QByteArray &in, const SecureArray &passphrase, QString *name, QList< CertContext * > *chain, PKeyContext **priv) const =0
Read PKCS#12 DER input and convert it into a set of output items.
virtual void convertToPublic()=0
If the key is a private key, this function will convert it into a public key (all private key data in...
virtual bool isPrivate() const =0
Returns true if this is a private key, otherwise false.
virtual void update(const MemoryRegion &in)
Process the plaintext input data for either signing or verifying, whichever operation is active.
virtual bool decrypt(const SecureArray &in, SecureArray *out, EncryptionAlgorithm alg)
Decrypt data.
virtual SymmetricKey deriveKey(const PKeyBase &theirs)
Compute a symmetric key based on this private key and some other public key.
virtual int maximumEncryptSize(EncryptionAlgorithm alg) const
Returns the maximum number of bytes that can be encrypted by this key.
virtual bool endVerify(const QByteArray &sig)
Complete a verify operation, and return true if successful.
virtual QByteArray endSign()
Complete a signing operation, and return the signature value.
virtual void startVerify(SignatureAlgorithm alg, SignatureFormat format)
Begin a verify operation.
virtual SecureArray encrypt(const SecureArray &in, EncryptionAlgorithm alg)
Encrypt data.
virtual bool canExport() const =0
Returns true if the components of this key are accessible and whether it can be serialized into an ou...
virtual void startSign(SignatureAlgorithm alg, SignatureFormat format)
Begin a signing operation.
virtual ConvertResult privateFromPEM(const QString &s, const SecureArray &passphrase)
Read PEM-formatted input and convert it into a private key.
virtual ConvertResult publicFromPEM(const QString &s)
Read PEM-formatted input and convert it into a public key.
virtual const PKeyBase * key() const =0
Returns the key held by this object, or 0 if there is no key.
virtual QList< PBEAlgorithm > supportedPBEAlgorithms() const =0
Returns a list of password-based encryption algorithms that are supported for private key serializati...
virtual QList< PKey::Type > supportedIOTypes() const =0
Returns a list of public key types that can be serialized and deserialized into DER and PEM format.
virtual bool importKey(const PKeyBase *key)=0
Attempt to import a key from another provider.
virtual ConvertResult privateFromDER(const SecureArray &a, const SecureArray &passphrase)
Read DER-formatted input and convert it into a private key.
virtual QList< PKey::Type > supportedTypes() const =0
Returns a list of supported public key types.
virtual PKeyBase * key()=0
Returns the key held by this object, or 0 if there is no key.
virtual QByteArray publicToDER() const
Convert a public key to DER format, and return the value.
virtual ConvertResult publicFromDER(const QByteArray &a)
Read DER-formatted input and convert it into a public key.
virtual QString publicToPEM() const
Convert a public key to PEM format, and return the value.
virtual SecureArray privateToDER(const SecureArray &passphrase, PBEAlgorithm pbe) const
Convert a private key to DER format, and return the value.
virtual QString privateToPEM(const SecureArray &passphrase, PBEAlgorithm pbe) const
Convert a private key to PEM format, and return the value.
Internal context class used for the plugin.
virtual void createPublic(const BigInteger &n, const BigInteger &e)=0
Create an RSA public key based on the two public components.
virtual void createPrivate(const BigInteger &n, const BigInteger &e, const BigInteger &p, const BigInteger &q, const BigInteger &d)=0
Create an RSA private key based on the five components.
virtual void createPrivate(int bits, int exp, bool block)=0
Generate an RSA private key.
virtual SecureArray nextBytes(int size)=0
Return an array of random bytes.
Convenience class to hold an IP address and an associated port.
virtual void serverFirstStep(const QString &mech, const QByteArray *clientInit)=0
Finishes server startup.
virtual QByteArray to_net()=0
Returns data that should be sent across the network (for the security layer)
virtual SASL::AuthCondition authCondition() const =0
Returns the reason for failure, if the authentication was not successful.
virtual QString authzid() const =0
Returns the authzid attempting to authorize (server mode only)
virtual void setup(const QString &service, const QString &host, const HostPort *local, const HostPort *remote, const QString &ext_id, int ext_ssf)=0
Configure a new session.
virtual QString username() const =0
Returns the username attempting to authenticate (server mode only)
virtual int encoded() const =0
Returns the number of bytes of plaintext data that is encoded inside of to_net()
virtual void startServer(const QString &realm, bool disableServerSendLast)=0
Begins the session in server mode, starting with the authentication.
virtual SASL::Params clientParams() const =0
Returns the needed/optional client parameters.
virtual QByteArray stepData() const =0
Returns an authentication payload for to be transmitted over the network.
void resultsReady()
Emit this when a startClient(), startServer(), serverFirstStep(), nextStep(), tryAgain(),...
virtual bool waitForResultsReady(int msecs)=0
Waits for a startClient(), startServer(), serverFirstStep(), nextStep(), tryAgain(),...
virtual QStringList mechlist() const =0
Returns the mechanism list (server mode only)
virtual bool haveClientInit() const =0
Returns true if the client has initialization data.
virtual QByteArray to_app()=0
Returns data that is decoded from the network and should be processed by the application.
virtual void setClientParams(const QString *user, const QString *authzid, const SecureArray *pass, const QString *realm)=0
Set some of the client parameters (pass 0 to not set a field)
virtual QStringList realmlist() const =0
Returns the realm list (client mode only)
virtual void update(const QByteArray &from_net, const QByteArray &from_app)=0
Performs one iteration of the SASL security layer processing.
virtual void startClient(const QStringList &mechlist, bool allowClientSendFirst)=0
Begins the session in client mode, starting with the authentication.
virtual void nextStep(const QByteArray &from_net)=0
Perform another step of the SASL authentication.
virtual void setConstraints(SASL::AuthFlags f, int minSSF, int maxSSF)=0
Set the constraints of the session using SSF values.
virtual void setTrustedCertificates(const CertificateCollection &trusted)
Set the trusted certificates and for this secure message system, to be used for validation.
virtual void setUntrustedCertificates(const CertificateCollection &untrusted)
Set the untrusted certificates and CRLs for this secure message system, to be used for validation.
virtual void setPrivateKeys(const QList< SecureMessageKey > &keys)
Set the private keys for this secure message system, to be used for decryption.
virtual MessageContext * createMessage()=0
Create a new message object for this system.
Information about an active TLS connection.
bool isCompressed
True if the TLS connection is compressed, otherwise false.
Definition qcaprovider.h:2258
TLSSessionContext * id
Pointer to the id of this TLS session, for use with resuming.
Definition qcaprovider.h:2287
TLS::Version version
The TLS protocol version being used for this connection.
Definition qcaprovider.h:2263
int cipherMaxBits
The maximum bit size possible of the cipher used for this connection.
Definition qcaprovider.h:2281
virtual void setCertificate(const CertificateChain &cert, const PrivateKey &key)=0
Set the local certificate.
virtual Validity peerCertificateValidity() const =0
Returns the QCA::Validity of the peer certificate.
virtual SessionInfo sessionInfo() const =0
Returns information about the active TLS session.
virtual QByteArray to_net()=0
Returns data that should be sent across the network.
virtual int maxSSF() const =0
Returns the maximum SSF supported by this provider.
virtual QByteArray to_app()=0
Returns data that is decoded from the network and should be processed by the application.
virtual bool clientHelloReceived() const =0
Returns true if the TLS client hello has been received.
virtual int encoded() const =0
Returns the number of bytes of plaintext data that is encoded inside of to_net()
virtual void setConstraints(const QStringList &cipherSuiteList)=0
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void update(const QByteArray &from_net, const QByteArray &from_app)=0
Performs one iteration of the TLS session processing.
virtual bool serverHelloReceived() const =0
Returns true if the TLS server hello has been received.
virtual void setSessionId(const TLSSessionContext &id)=0
Set the TLS session id, for session resuming.
virtual bool canCompress() const =0
Returns true if the provider supports compression.
void resultsReady()
Emit this when a start() or update() operation has completed.
virtual QString hostName() const =0
Returns the host name sent by the client using server name indication (server mode only)
virtual void setTrustedCertificates(const CertificateCollection &trusted)=0
Set the list of trusted certificates.
virtual void setIssuerList(const QList< CertificateInfoOrdered > &issuerList)=0
Set the list of acceptable issuers.
virtual void setConstraints(int minSSF, int maxSSF)=0
Set the constraints of the session using SSF values.
virtual QList< CertificateInfoOrdered > issuerList() const =0
Returns the issuer list sent by the server (client mode only)
virtual bool waitForResultsReady(int msecs)=0
Waits for a start() or update() operation to complete.
virtual QStringList supportedCipherSuites(const TLS::Version &version) const =0
Returns a list of supported cipher suites for the specified SSL/TLS version.
virtual bool certificateRequested() const =0
Returns true if the peer is requesting a certificate.
virtual CertificateChain peerCertificateChain() const =0
Returns the peer certificate chain.
virtual bool canSetHostName() const =0
Returns true if the provider supports server name indication.
virtual QByteArray unprocessed()=0
Returns any unprocessed network input data.
virtual void setup(bool serverMode, const QString &hostName, bool compress)=0
Configure a new session.
void dtlsTimeout()
Emit this to force the application to call update(), even with empty arguments.
Header file for classes for cryptographic primitives (basic operations).
Header file for PGP key and X.509 certificate related classes.
Header file for core QCA infrastructure.
Header file for classes that provide and manage keys.
Header file for PublicKey and PrivateKey related classes.
Header file for SecureLayer and its subclasses.
Header file for secure message (PGP, CMS) classes.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 8 2024 11:53:13 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Nov 8 2024 11:53:13 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.