33 #ifndef QCA_PUBLICKEY_H 34 #define QCA_PUBLICKEY_H 162 QCA_EXPORT QByteArray
emsa3Encode(
const QString &hashName,
const QByteArray &digest,
int size = -1);
214 static QList<DLGroupSet> supportedGroupSets(
const QString &provider = QString());
315 static QList<Type> supportedTypes(
const QString &provider = QString());
346 static QList<Type> supportedIOTypes(
const QString &provider = QString());
385 bool isPublic()
const;
390 bool isPrivate()
const;
396 bool canExport()
const;
401 bool canKeyAgree()
const;
421 bool operator==(
const PKey &a)
const;
428 bool operator!=(
const PKey &a)
const;
437 PKey(
const QString &type,
const QString &provider);
444 void set(
const PKey &k);
513 void assignToPublic(
PKey *dest)
const;
514 void assignToPrivate(
PKey *dest)
const;
597 bool canEncrypt()
const;
604 bool canDecrypt()
const;
611 bool canVerify()
const;
681 bool validSignature(
const QByteArray &sig);
697 const QByteArray & sig,
704 QByteArray toDER()
const;
714 QString toPEM()
const;
727 bool toPEMFile(
const QString &fileName)
const;
751 static PublicKey fromDER(
const QByteArray &a,
ConvertResult *result =
nullptr,
const QString &provider = QString());
778 static PublicKey fromPEM(
const QString &s,
ConvertResult *result =
nullptr,
const QString &provider = QString());
808 fromPEMFile(
const QString &fileName,
ConvertResult *result =
nullptr,
const QString &provider = QString());
817 PublicKey(
const QString &type,
const QString &provider);
889 bool canDecrypt()
const;
896 bool canEncrypt()
const;
903 bool canSign()
const;
960 QByteArray signature();
1034 bool toPEMFile(
const QString & fileName,
1059 const QString & provider = QString());
1082 const QString & provider = QString());
1106 static PrivateKey fromPEMFile(
const QString & fileName,
1109 const QString & provider = QString());
1119 PrivateKey(
const QString &type,
const QString &provider);
1158 bool blockingEnabled()
const;
1168 void setBlockingEnabled(
bool b);
1175 bool isBusy()
const;
1193 PrivateKey createRSA(
int bits,
int exp = 65537,
const QString &provider = QString());
1210 PrivateKey createDSA(
const DLGroup &domain,
const QString &provider = QString());
1226 PrivateKey createDH(
const DLGroup &domain,
const QString &provider = QString());
1263 friend class Private;
1350 const QString & provider = QString());
ConvertResult
Return value from a format conversion.
Definition: qca_publickey.h:118
For DSA, this is the same as IEEE_1363.
Definition: qca_publickey.h:94
PBEAlgorithm
Password-based encryption.
Definition: qca_publickey.h:102
General superclass for an algorithm.
Definition: qca_core.h:1163
4096-bit MODP Group ("group 16") from RFC3526 Section 5.
Definition: qca_publickey.h:144
RSA Public Key.
Definition: qca_publickey.h:1275
Generic private key.
Definition: qca_publickey.h:832
SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:85
General failure in the decode stage.
Definition: qca_publickey.h:121
Group 1 from RFC 2412, Section E.1.
Definition: qca_publickey.h:139
SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:84
RSA key.
Definition: qca_publickey.h:258
PKCS#5 v2.0 AES-256/CBC,SHA1.
Definition: qca_publickey.h:109
1024 bit group, for compatibility with JCE
Definition: qca_publickey.h:138
Unknown signing algorithm.
Definition: qca_publickey.h:75
QCA_EXPORT QByteArray emsa3Encode(const QString &hashName, const QByteArray &digest, int size=-1)
Encode a hash result in EMSA3 (PKCS#1) format.
Digital Signature Algorithm Private Key.
Definition: qca_publickey.h:1438
Raw RSA encryption.
Definition: qca_publickey.h:59
RSA Private Key.
Definition: qca_publickey.h:1326
Conversion succeeded, results should be valid.
Definition: qca_publickey.h:120
Block type 2 (PKCS#1, Version 1.5)
Definition: qca_publickey.h:56
Diffie-Hellman Private Key.
Definition: qca_publickey.h:1525
768 bit group, for compatibility with JCE
Definition: qca_publickey.h:137
SHA1, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:77
Digital Signature Algorithm Public Key.
Definition: qca_publickey.h:1394
3072-bit MODP Group ("group 15") from RFC3526 Section 4.
Definition: qca_publickey.h:143
SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:86
2048-bit MODP Group ("group 14") from RFC3526 Section 3.
Definition: qca_publickey.h:142
Container for keys for symmetric encryption algorithms.
Definition: qca_core.h:1263
Signature wrapped in DER formatting (OpenSSL/Java)
Definition: qca_publickey.h:96
PKCS#5 v2.0 AES-128/CBC,SHA1.
Definition: qca_publickey.h:107
40-byte format from IEEE 1363 (Botan/.NET)
Definition: qca_publickey.h:95
Optimal asymmetric encryption padding (PKCS#1, Version 2.0)
Definition: qca_publickey.h:57
Header file for core QCA infrastructure.
Failure because of incorrect passphrase.
Definition: qca_publickey.h:122
SignatureAlgorithm
Signature algorithm variants.
Definition: qca_publickey.h:73
A discrete logarithm group.
Definition: qca_publickey.h:171
DLGroupSet
Well known discrete logarithm group sets.
Definition: qca_publickey.h:134
MD5, with EMSA3 (ie PKCS#1 Version 1.5) encoding (this is the usual RSA algorithm) ...
Definition: qca_publickey.h:78
QCA - the Qt Cryptographic Architecture.
Definition: qca_basic.h:41
EMSA3 without computing a message digest or a DigestInfo encoding (identical to PKCS#11's CKM_RSA_PKC...
Definition: qca_publickey.h:81
Failure because of incorrect file.
Definition: qca_publickey.h:123
SHA1, with EMSA1 (IEEE1363-2000) encoding (this is the usual DSA algorithm - FIPS186) ...
Definition: qca_publickey.h:76
SignatureFormat
Signature formats (DSA only)
Definition: qca_publickey.h:92
Type
Types of public key cryptography keys supported by QCA.
Definition: qca_publickey.h:256
Secure array of bytes.
Definition: qca_tools.h:316
8192-bit MODP Group ("group 18") from RFC3526 Section 7.
Definition: qca_publickey.h:146
Group 2 from RFC 2412, Section E.2.
Definition: qca_publickey.h:140
PKCS#5 v2.0 DES/CBC,SHA1.
Definition: qca_publickey.h:105
512 bit group, for compatibility with JCE
Definition: qca_publickey.h:136
DSA key.
Definition: qca_publickey.h:259
EncryptionAlgorithm
Encryption algorithms.
Definition: qca_publickey.h:54
Class for generating asymmetric key pairs.
Definition: qca_publickey.h:1137
General superclass for public (PublicKey) and private (PrivateKey) keys used with asymmetric encrypti...
Definition: qca_publickey.h:250
SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:83
1536-bit MODP Group ("group 5") from RFC3526 Section 2.
Definition: qca_publickey.h:141
Arbitrary precision integer.
Definition: qca_tools.h:570
PKCS#1, Version 1.5 with an SSL-specific modification.
Definition: qca_publickey.h:58
Generic public key.
Definition: qca_publickey.h:528
MD2, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:79
Diffie-Hellman Public Key.
Definition: qca_publickey.h:1481
PKCS#5 v2.0 AES-192/CBC,SHA1.
Definition: qca_publickey.h:108
RIPEMD160, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition: qca_publickey.h:80
PKCS#5 v2.0 TripleDES/CBC,SHA1.
Definition: qca_publickey.h:106
Array of bytes that may be optionally secured.
Definition: qca_tools.h:90
Use modern default (same as PBES2_TripleDES_SHA1)
Definition: qca_publickey.h:104
6144-bit MODP Group ("group 17") from RFC3526 Section 6.
Definition: qca_publickey.h:145