33#ifndef QCA_SECUREMESSAGE_H
34#define QCA_SECUREMESSAGE_H
45class SecureMessageSystem;
169 QSharedDataPointer<Private> d;
257 QSharedDataPointer<Private> d;
788 friend class Private;
850 explicit OpenPGP(
QObject *parent =
nullptr,
const QString &provider = QString());
896 explicit CMS(
QObject *parent =
nullptr,
const QString &provider = QString());
General superclass for an algorithm.
Definition qca_core.h:1164
Cryptographic Message Syntax messaging system.
Definition qca_securemessage.h:886
CertificateCollection trustedCertificates() const
Return the trusted certificates set for this object.
CMS(QObject *parent=nullptr, const QString &provider=QString())
Standard constructor.
void setTrustedCertificates(const CertificateCollection &trusted)
Set the trusted certificates to use for the messages built using this CMS object.
SecureMessageKeyList privateKeys() const
Return the private keys set for this object.
void setUntrustedCertificates(const CertificateCollection &untrusted)
Set the untrusted certificates to use for the messages built using this CMS object.
CertificateCollection untrustedCertificates() const
Return the untrusted certificates set for this object.
void setPrivateKeys(const SecureMessageKeyList &keys)
Set the private keys to use for the messages built using this CMS object.
A chain of related Certificates.
Definition qca_cert.h:1226
Bundle of Certificates and CRLs.
Definition qca_cert.h:1929
Certificate chain and private key pair.
Definition qca_cert.h:2176
Pretty Good Privacy messaging system.
Definition qca_securemessage.h:840
OpenPGP(QObject *parent=nullptr, const QString &provider=QString())
Standard constructor.
Pretty Good Privacy key.
Definition qca_cert.h:2407
Generic private key.
Definition qca_publickey.h:833
Key for SecureMessage system.
Definition qca_securemessage.h:55
Type type() const
The key type.
SecureMessageKey()
Construct an empty key.
SecureMessageKey & operator=(const SecureMessageKey &from)
Standard assignment operator.
SecureMessageKey(const SecureMessageKey &from)
Standard copy constructor.
PrivateKey x509PrivateKey() const
The X.509 private key part of this key.
void setX509PrivateKey(const PrivateKey &k)
Set the private key part of this X.509 key.
void setPGPPublicKey(const PGPKey &pub)
Set the public key part of a PGP key.
PGPKey pgpPublicKey() const
Public key part of a PGP key.
PGPKey pgpSecretKey() const
Private key part of a PGP key.
bool isNull() const
Returns true for null object.
bool havePrivate() const
Test if this key contains a private key part.
QString name() const
The name associated with this key.
CertificateChain x509CertificateChain() const
The X.509 certificate chain (public part) for this key.
void setX509CertificateChain(const CertificateChain &c)
Set the public key part of this X.509 key.
void setX509KeyBundle(const KeyBundle &kb)
Set the public and private part of this X.509 key with KeyBundle.
void setPGPSecretKey(const PGPKey &sec)
Set the private key part of a PGP key.
Type
The key type.
Definition qca_securemessage.h:61
@ None
no key
Definition qca_securemessage.h:62
@ PGP
Pretty Good Privacy key.
Definition qca_securemessage.h:63
SecureMessage signature.
Definition qca_securemessage.h:185
IdentityResult identityResult() const
get the results of the identity check on this signature
IdentityResult
The result of identity verification.
Definition qca_securemessage.h:191
@ InvalidSignature
valid key provided, but signature failed
Definition qca_securemessage.h:193
@ Valid
indentity is verified, matches signature
Definition qca_securemessage.h:192
@ InvalidKey
invalid key provided
Definition qca_securemessage.h:194
QDateTime timestamp() const
get the timestamp associated with this signature
SecureMessageSignature & operator=(const SecureMessageSignature &from)
Standard assignment operator.
SecureMessageKey key() const
get the key associated with this signature
Validity keyValidity() const
get the results of the key validation check on this signature
SecureMessageSignature(IdentityResult r, Validity v, const SecureMessageKey &key, const QDateTime &ts)
Create a signature check object.
SecureMessageSignature()
Create an empty signature check object.
SecureMessageSignature(const SecureMessageSignature &from)
Standard copy constructor.
Abstract superclass for secure messaging systems.
Definition qca_securemessage.h:803
SecureMessageSystem(QObject *parent, const QString &type, const QString &provider)
Protected constructor for SecureMessageSystem classes.
Class representing a secure message.
Definition qca_securemessage.h:320
bool success() const
Indicates whether or not the operation was successful or failed.
void reset()
Reset the object state to that of original construction.
void setRecipient(const SecureMessageKey &key)
Set the recipient for an encrypted message.
SecureMessage(SecureMessageSystem *system)
Create a new secure message.
SecureMessageKeyList signerKeys() const
Return the signer(s) set for this message with setSigner() or setSigners()
SecureMessageKeyList recipientKeys() const
Return the recipient(s) set for this message with setRecipient() or setRecipients()
bool verifySuccess() const
Verify that the message signature is correct.
Format format() const
Return the format type set for this message.
bool smimeAttributesEnabled() const
Returns true if inclusion of S/MIME attributes is enabled.
QByteArray signature() const
The signature for the message.
Type
The type of secure message.
Definition qca_securemessage.h:327
@ OpenPGP
a Pretty Good Privacy message
Definition qca_securemessage.h:328
bool waitForFinished(int msecs=30000)
Block until the operation (encryption, decryption, signing or verifying) completes.
void setFormat(Format f)
Set the Format used for messages.
void startSign(SignMode m=Message)
void readyRead()
This signal is emitted when there is some data to read.
SecureMessageSignature signer() const
Information on the signer for the message.
void setSigner(const SecureMessageKey &key)
Set the signer for a signed message.
QString diagnosticText() const
Returns a log of technical information about the operation, which may be useful for presenting to the...
void startSignAndEncrypt()
Start a combined signing and encrypting operation.
int bytesAvailable() const
The number of bytes available to be read.
Type type() const
The Type of secure message.
void startVerify(const QByteArray &detachedSig=QByteArray())
Start a verification operation.
QByteArray read()
Read the available data.
void setRecipients(const SecureMessageKeyList &keys)
Set the list of recipients for an encrypted message.
void setBundleSignerEnabled(bool b)
For CMS only, this will bundle the signer certificate chain into the message.
bool canSignAndEncrypt() const
True if the SecureMessageSystem can both sign and encrypt (in the same operation).
Error
Errors for secure messages.
Definition qca_securemessage.h:355
@ ErrorSignatureExpired
signature is expired
Definition qca_securemessage.h:367
@ ErrorSignerRevoked
signing key is revoked
Definition qca_securemessage.h:366
@ ErrorUnknown
other error
Definition qca_securemessage.h:365
@ ErrorSignerExpired
signing key is expired
Definition qca_securemessage.h:358
@ ErrorEncryptExpired
encrypting key is expired
Definition qca_securemessage.h:360
@ ErrorSignerInvalid
signing key is invalid in some way
Definition qca_securemessage.h:359
@ ErrorEncryptUntrusted
encrypting key is untrusted
Definition qca_securemessage.h:361
@ ErrorEncryptInvalid
encrypting key is invalid in some way
Definition qca_securemessage.h:362
@ ErrorCertKeyMismatch
certificate and private key don't match
Definition qca_securemessage.h:364
@ ErrorFormat
input format was bad
Definition qca_securemessage.h:357
@ ErrorPassphrase
passphrase was either wrong or not provided
Definition qca_securemessage.h:356
@ ErrorNeedCard
pgp card is missing
Definition qca_securemessage.h:363
void end()
Complete an operation.
SignMode
The type of message signature.
Definition qca_securemessage.h:336
@ Message
the message includes the signature
Definition qca_securemessage.h:337
@ Clearsign
the message is clear signed
Definition qca_securemessage.h:338
bool bundleSignerEnabled() const
Returns true if bundling of the signer certificate chain is enabled.
bool canSignMultiple() const
Test if the message type supports multiple (parallel) signatures.
SecureMessageSignatureList signers() const
Information on the signers for the message.
Format
Formats for secure messages.
Definition qca_securemessage.h:346
@ Binary
DER/binary.
Definition qca_securemessage.h:347
void finished()
This signal is emitted when the message is fully processed.
Error errorCode() const
Returns the failure code.
bool wasSigned() const
Test if the message was signed.
QString hashName() const
The name of the hash used for the signature process.
void setSigners(const SecureMessageKeyList &keys)
Set the list of signers for a signed message.
void setSMIMEAttributesEnabled(bool b)
For CMS only, this will put extra attributes into the message related to S/MIME, such as the preferre...
void bytesWritten(int bytes)
This signal is emitted when data has been accepted by the message processor.
void update(const QByteArray &in)
Process a message (or the next part of a message) in the current operation.
bool canClearsign() const
True if the SecureMessageSystem can clearsign messages.
QCA - the Qt Cryptographic Architecture.
Definition qca_basic.h:41
QList< SecureMessageSignature > SecureMessageSignatureList
A list of signatures.
Definition qca_securemessage.h:263
QList< SecureMessageKey > SecureMessageKeyList
A list of message keys.
Definition qca_securemessage.h:175
Validity
The validity (or otherwise) of a certificate.
Definition qca_cert.h:497
Header file for PGP key and X.509 certificate related classes.
Header file for core QCA infrastructure.
Header file for PublicKey and PrivateKey related classes.