33 #ifndef QCA_SECUREMESSAGE_H
34 #define QCA_SECUREMESSAGE_H
45 class 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
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.
SecureMessageSignature & operator=(const SecureMessageSignature &from)
Standard assignment operator.
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.