Qt Cryptographic Architecture
qca_publickey.h
Go to the documentation of this file.
1/*
2 * qca_publickey.h - Qt Cryptographic Architecture
3 * Copyright (C) 2003-2007 Justin Karneges <justin@affinix.com>
4 * Copyright (C) 2004,2005 Brad Hards <bradh@frogmouth.net>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 * 02110-1301 USA
20 *
21 */
22
33#ifndef QCA_PUBLICKEY_H
34#define QCA_PUBLICKEY_H
35
36#include "qca_core.h"
37#include <QObject>
38
39namespace QCA {
40
41class PublicKey;
42class PrivateKey;
43class KeyGenerator;
44class RSAPublicKey;
45class RSAPrivateKey;
46class DSAPublicKey;
47class DSAPrivateKey;
48class DHPublicKey;
49class DHPrivateKey;
50
61
88
98
111
125
149
162QCA_EXPORT QByteArray emsa3Encode(const QString &hashName, const QByteArray &digest, int size = -1);
163
171class QCA_EXPORT DLGroup
172{
173public:
174 DLGroup();
175
183 DLGroup(const BigInteger &p, const BigInteger &q, const BigInteger &g);
184
191 DLGroup(const BigInteger &p, const BigInteger &g);
192
198 DLGroup(const DLGroup &from);
199 ~DLGroup();
200
206 DLGroup &operator=(const DLGroup &from);
207
214 static QList<DLGroupSet> supportedGroupSets(const QString &provider = QString());
215
219 bool isNull() const;
220
224 BigInteger p() const;
225
229 BigInteger q() const;
230
234 BigInteger g() const;
235
236private:
237 class Private;
238 Private *d;
239};
240
250class QCA_EXPORT PKey : public Algorithm
251{
252public:
256 enum Type
257 {
260 DH
261 };
262
267
273 PKey(const PKey &from);
274
275 ~PKey() override;
276
282 PKey &operator=(const PKey &from);
283
315 static QList<Type> supportedTypes(const QString &provider = QString());
316
346 static QList<Type> supportedIOTypes(const QString &provider = QString());
347
353 bool isNull() const;
354
360 Type type() const;
361
365 int bitSize() const;
366
370 bool isRSA() const;
371
375 bool isDSA() const;
376
380 bool isDH() const;
381
385 bool isPublic() const;
386
390 bool isPrivate() const;
391
396 bool canExport() const;
397
401 bool canKeyAgree() const;
402
410
415
421 bool operator==(const PKey &a) const;
422
428 bool operator!=(const PKey &a) const;
429
430protected:
437 PKey(const QString &type, const QString &provider);
438
444 void set(const PKey &k);
445
456
467
478
489
500
511
512private:
513 void assignToPublic(PKey *dest) const;
514 void assignToPrivate(PKey *dest) const;
515
516 class Private;
517 Private *d;
518};
519
528class QCA_EXPORT PublicKey : public PKey
529{
530public:
535
542
550 PublicKey(const QString &fileName);
551
557 PublicKey(const PublicKey &from);
558
559 ~PublicKey() override;
560
567
575
583
591
597 bool canEncrypt() const;
598
604 bool canDecrypt() const;
605
611 bool canVerify() const;
612
620
628
640
647 void startVerify(SignatureAlgorithm alg, SignatureFormat format = DefaultFormat);
648
654 void update(const MemoryRegion &a);
655
681 bool validSignature(const QByteArray &sig);
682
697 const QByteArray &sig,
699 SignatureFormat format = DefaultFormat);
700
704 QByteArray toDER() const;
705
714 QString toPEM() const;
715
727 bool toPEMFile(const QString &fileName) const;
728
751 static PublicKey fromDER(const QByteArray &a, ConvertResult *result = nullptr, const QString &provider = QString());
752
778 static PublicKey fromPEM(const QString &s, ConvertResult *result = nullptr, const QString &provider = QString());
779
807 static PublicKey
808 fromPEMFile(const QString &fileName, ConvertResult *result = nullptr, const QString &provider = QString());
809
810protected:
817 PublicKey(const QString &type, const QString &provider);
818
819private:
820 class Private;
821 Private *d;
822};
823
832class QCA_EXPORT PrivateKey : public PKey
833{
834public:
839
851 explicit PrivateKey(const QString &fileName, const SecureArray &passphrase = SecureArray());
852
858 PrivateKey(const PrivateKey &from);
859
860 ~PrivateKey() override;
861
868
873
878
883
889 bool canDecrypt() const;
890
896 bool canEncrypt() const;
897
903 bool canSign() const;
904
912
924
932
942 void startSign(SignatureAlgorithm alg, SignatureFormat format = DefaultFormat);
943
952 void update(const MemoryRegion &a);
953
960 QByteArray signature();
961
974 QByteArray signMessage(const MemoryRegion &a, SignatureAlgorithm alg, SignatureFormat format = DefaultFormat);
975
982
990 static QList<PBEAlgorithm> supportedPBEAlgorithms(const QString &provider = QString());
991
1002 SecureArray toDER(const SecureArray &passphrase = SecureArray(), PBEAlgorithm pbe = PBEDefault) const;
1003
1016 QString toPEM(const SecureArray &passphrase = SecureArray(), PBEAlgorithm pbe = PBEDefault) const;
1017
1034 bool toPEMFile(const QString &fileName,
1035 const SecureArray &passphrase = SecureArray(),
1036 PBEAlgorithm pbe = PBEDefault) const;
1037
1057 const SecureArray &passphrase = SecureArray(),
1058 ConvertResult *result = nullptr,
1059 const QString &provider = QString());
1060
1079 static PrivateKey fromPEM(const QString &s,
1080 const SecureArray &passphrase = SecureArray(),
1081 ConvertResult *result = nullptr,
1082 const QString &provider = QString());
1083
1106 static PrivateKey fromPEMFile(const QString &fileName,
1107 const SecureArray &passphrase = SecureArray(),
1108 ConvertResult *result = nullptr,
1109 const QString &provider = QString());
1110
1111protected:
1119 PrivateKey(const QString &type, const QString &provider);
1120
1121private:
1122 class Private;
1123 Private *d;
1124};
1125
1137class QCA_EXPORT KeyGenerator : public QObject
1138{
1139 Q_OBJECT
1140public:
1146 KeyGenerator(QObject *parent = nullptr);
1147
1148 ~KeyGenerator() override;
1149
1158 bool blockingEnabled() const;
1159
1169
1175 bool isBusy() const;
1176
1193 PrivateKey createRSA(int bits, int exp = 65537, const QString &provider = QString());
1194
1210 PrivateKey createDSA(const DLGroup &domain, const QString &provider = QString());
1211
1226 PrivateKey createDH(const DLGroup &domain, const QString &provider = QString());
1227
1235
1244 DLGroup createDLGroup(QCA::DLGroupSet set, const QString &provider = QString());
1245
1250
1251Q_SIGNALS:
1257 void finished();
1258
1259private:
1260 Q_DISABLE_COPY(KeyGenerator)
1261
1262 class Private;
1263 friend class Private;
1264 Private *d;
1265};
1266
1275class QCA_EXPORT RSAPublicKey : public PublicKey
1276{
1277public:
1282
1291 RSAPublicKey(const BigInteger &n, const BigInteger &e, const QString &provider = QString());
1292
1299
1307 BigInteger n() const;
1308
1315 BigInteger e() const;
1316};
1317
1326class QCA_EXPORT RSAPrivateKey : public PrivateKey
1327{
1328public:
1333
1346 const BigInteger &e,
1347 const BigInteger &p,
1348 const BigInteger &q,
1349 const BigInteger &d,
1350 const QString &provider = QString());
1351
1359 BigInteger n() const;
1360
1367 BigInteger e() const;
1368
1372 BigInteger p() const;
1373
1378 BigInteger q() const;
1379
1383 BigInteger d() const;
1384};
1385
1394class QCA_EXPORT DSAPublicKey : public PublicKey
1395{
1396public:
1401
1410 DSAPublicKey(const DLGroup &domain, const BigInteger &y, const QString &provider = QString());
1411
1418
1423
1427 BigInteger y() const;
1428};
1429
1438class QCA_EXPORT DSAPrivateKey : public PrivateKey
1439{
1440public:
1445
1455 DSAPrivateKey(const DLGroup &domain, const BigInteger &y, const BigInteger &x, const QString &provider = QString());
1456
1461
1465 BigInteger y() const;
1466
1470 BigInteger x() const;
1471};
1472
1481class QCA_EXPORT DHPublicKey : public PublicKey
1482{
1483public:
1488
1497 DHPublicKey(const DLGroup &domain, const BigInteger &y, const QString &provider = QString());
1498
1505
1510
1514 BigInteger y() const;
1515};
1516
1525class QCA_EXPORT DHPrivateKey : public PrivateKey
1526{
1527public:
1532
1542 DHPrivateKey(const DLGroup &domain, const BigInteger &y, const BigInteger &x, const QString &provider = QString());
1543
1548
1552 BigInteger y() const;
1553
1557 BigInteger x() const;
1558};
1560}
1561
1562#endif
General superclass for an algorithm.
Definition qca_core.h:1164
Arbitrary precision integer.
Definition qca_tools.h:571
Diffie-Hellman Private Key.
Definition qca_publickey.h:1526
BigInteger y() const
The public random value associated with this key.
DHPrivateKey()
Create an empty Diffie-Hellman private key.
DLGroup domain() const
The discrete logarithm group that is being used.
BigInteger x() const
The private random value associated with this key.
DHPrivateKey(const DLGroup &domain, const BigInteger &y, const BigInteger &x, const QString &provider=QString())
Create a Diffie-Hellman private key.
Diffie-Hellman Public Key.
Definition qca_publickey.h:1482
DLGroup domain() const
The discrete logarithm group that is being used.
DHPublicKey(const DLGroup &domain, const BigInteger &y, const QString &provider=QString())
Create a Diffie-Hellman public key.
BigInteger y() const
The public random value associated with this key.
DHPublicKey(const DHPrivateKey &k)
Create a Diffie-Hellman public key from a specified private key.
DHPublicKey()
Create an empty Diffie-Hellman public key.
A discrete logarithm group.
Definition qca_publickey.h:172
DLGroup(const DLGroup &from)
Standard copy constructor.
BigInteger p() const
Provide the p component of the group.
DLGroup & operator=(const DLGroup &from)
Standard assignment operator.
static QList< DLGroupSet > supportedGroupSets(const QString &provider=QString())
Provide a list of the supported group sets.
bool isNull() const
Test if the group is empty.
DLGroup(const BigInteger &p, const BigInteger &g)
Construct a discrete logarithm group from raw parameters.
DLGroup(const BigInteger &p, const BigInteger &q, const BigInteger &g)
Construct a discrete logarithm group from raw parameters.
BigInteger g() const
Provide the g component of the group.
BigInteger q() const
Provide the q component of the group.
Digital Signature Algorithm Private Key.
Definition qca_publickey.h:1439
DLGroup domain() const
The discrete logarithm group that is being used.
BigInteger y() const
the public random value
DSAPrivateKey(const DLGroup &domain, const BigInteger &y, const BigInteger &x, const QString &provider=QString())
Create a DSA public key.
DSAPrivateKey()
Create an empty DSA private key.
BigInteger x() const
the private random value
Digital Signature Algorithm Public Key.
Definition qca_publickey.h:1395
DSAPublicKey()
Create an empty DSA public key.
DSAPublicKey(const DSAPrivateKey &k)
Create a DSA public key from a specified private key.
BigInteger y() const
The public random value associated with this key.
DLGroup domain() const
The discrete logarithm group that is being used.
DSAPublicKey(const DLGroup &domain, const BigInteger &y, const QString &provider=QString())
Create a DSA public key.
Class for generating asymmetric key pairs.
Definition qca_publickey.h:1138
PrivateKey createDH(const DLGroup &domain, const QString &provider=QString())
Generate a Diffie-Hellman key.
PrivateKey key() const
Return the last generated key.
DLGroup dlGroup() const
The current discrete logarithm group.
bool blockingEnabled() const
Test whether the key generator is set to operate in blocking mode, or not.
void finished()
Emitted when the key generation is complete.
PrivateKey createDSA(const DLGroup &domain, const QString &provider=QString())
Generate a DSA key.
PrivateKey createRSA(int bits, int exp=65537, const QString &provider=QString())
Generate an RSA key of the specified length.
DLGroup createDLGroup(QCA::DLGroupSet set, const QString &provider=QString())
Create a new discrete logarithm group.
bool isBusy() const
Test if the key generator is currently busy, or not.
KeyGenerator(QObject *parent=nullptr)
Create a new key generator.
void setBlockingEnabled(bool b)
Set whether the key generator is in blocking mode, nor not.
Array of bytes that may be optionally secured.
Definition qca_tools.h:91
General superclass for public (PublicKey) and private (PrivateKey) keys used with asymmetric encrypti...
Definition qca_publickey.h:251
void set(const PKey &k)
Set the key.
bool operator==(const PKey &a) const
test if two keys are equal
PKey(const PKey &from)
Standard copy constructor.
int bitSize() const
Report the number of bits in the key.
static QList< Type > supportedIOTypes(const QString &provider=QString())
Type type() const
Report the Type of key (eg RSA, DSA or Diffie Hellman)
DSAPublicKey toDSAPublicKey() const
Interpret this key as an DSAPublicKey.
RSAPrivateKey toRSAPrivateKey() const
Interpret this key as an RSAPrivateKey.
bool isDSA() const
Test if the key is a DSA key.
DHPrivateKey toDHPrivateKey() const
Interpret this key as a DHPrivateKey.
DHPublicKey toDHPublicKey() const
Interpret this key as an DHPublicKey.
bool isPublic() const
Test if the key is a public key.
bool isPrivate() const
Test if the key is a private key.
PKey()
Standard constructor.
PrivateKey toPrivateKey() const
Interpret this key as a PrivateKey.
bool isDH() const
Test if the key is a Diffie Hellman key.
PublicKey toPublicKey() const
Interpret this key as a PublicKey.
static QList< Type > supportedTypes(const QString &provider=QString())
bool operator!=(const PKey &a) const
test if two keys are not equal
bool isNull() const
Test if the key is null (empty)
RSAPublicKey toRSAPublicKey() const
Interpret this key as an RSAPublicKey.
bool canKeyAgree() const
Test if the key can be used for key agreement.
PKey & operator=(const PKey &from)
Standard assignment operator.
PKey(const QString &type, const QString &provider)
Create a key of the specified type.
DSAPrivateKey toDSAPrivateKey() const
Interpret this key as a DSAPrivateKey.
bool isRSA() const
Test if the key is an RSA key.
Type
Types of public key cryptography keys supported by QCA.
Definition qca_publickey.h:257
@ RSA
RSA key.
Definition qca_publickey.h:258
@ DSA
DSA key.
Definition qca_publickey.h:259
bool canExport() const
Test if the key data can be exported.
Generic private key.
Definition qca_publickey.h:833
static PrivateKey fromPEM(const QString &s, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
Import the key from Privacy Enhanced Mail (PEM) format.
PrivateKey(const QString &fileName, const SecureArray &passphrase=SecureArray())
Import a private key from a PEM representation in a file.
void update(const MemoryRegion &a)
Update the signature process.
bool toPEMFile(const QString &fileName, const SecureArray &passphrase=SecureArray(), PBEAlgorithm pbe=PBEDefault) const
Export the key in Privacy Enhanced Mail (PEM) format to a file.
static QList< PBEAlgorithm > supportedPBEAlgorithms(const QString &provider=QString())
List the supported Password Based Encryption Algorithms that can be used to protect the key.
bool decrypt(const SecureArray &in, SecureArray *out, EncryptionAlgorithm alg)
Decrypt the message.
SecureArray encrypt(const SecureArray &a, EncryptionAlgorithm alg)
Encrypt a message using a specified algorithm.
QByteArray signature()
The resulting signature.
RSAPrivateKey toRSA() const
Interpret / convert the key to an RSA key.
PrivateKey & operator=(const PrivateKey &from)
Assignment operator.
bool canDecrypt() const
Test if this key can be used for decryption.
DSAPrivateKey toDSA() const
Interpret / convert the key to a DSA key.
PrivateKey(const PrivateKey &from)
Copy constructor.
QByteArray signMessage(const MemoryRegion &a, SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)
One step signature process.
PrivateKey(const QString &type, const QString &provider)
Create a new private key.
int maximumEncryptSize(EncryptionAlgorithm alg) const
The maximum message size that can be encrypted with a specified algorithm.
static PrivateKey fromPEMFile(const QString &fileName, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
Import the key in Privacy Enhanced Mail (PEM) format from a file.
SecureArray toDER(const SecureArray &passphrase=SecureArray(), PBEAlgorithm pbe=PBEDefault) const
Export the key in Distinguished Encoding Rules (DER) format.
void startSign(SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)
Initialise the message signature process.
DHPrivateKey toDH() const
Interpret / convert the key to a Diffie-Hellman key.
PrivateKey()
Create an empty private key.
bool canEncrypt() const
Test if this key can be used for encryption.
SymmetricKey deriveKey(const PublicKey &theirs)
Derive a shared secret key from a public key.
static PrivateKey fromDER(const SecureArray &a, const SecureArray &passphrase=SecureArray(), ConvertResult *result=nullptr, const QString &provider=QString())
Import the key from Distinguished Encoding Rules (DER) format.
QString toPEM(const SecureArray &passphrase=SecureArray(), PBEAlgorithm pbe=PBEDefault) const
Export the key in Privacy Enhanced Mail (PEM) format.
bool canSign() const
Test if this key can be used for signing.
Generic public key.
Definition qca_publickey.h:529
PublicKey(const PublicKey &from)
Copy constructor.
void update(const MemoryRegion &a)
Update the signature verification process with more data.
DSAPublicKey toDSA() const
Convenience method to convert this key to a DSAPublicKey.
RSAPublicKey toRSA() const
Convenience method to convert this key to an RSAPublicKey.
bool verifyMessage(const MemoryRegion &a, const QByteArray &sig, SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)
Single step message verification.
PublicKey(const QString &type, const QString &provider)
Create a new key of a specified type.
QByteArray toDER() const
Export the key in Distinguished Encoding Rules (DER) format.
bool canEncrypt() const
Test if this key can be used for encryption.
bool validSignature(const QByteArray &sig)
DHPublicKey toDH() const
Convenience method to convert this key to a DHPublicKey.
static PublicKey fromPEM(const QString &s, ConvertResult *result=nullptr, const QString &provider=QString())
static PublicKey fromPEMFile(const QString &fileName, ConvertResult *result=nullptr, const QString &provider=QString())
bool decrypt(const SecureArray &in, SecureArray *out, EncryptionAlgorithm alg)
Decrypt the message.
bool toPEMFile(const QString &fileName) const
Export the key in Privacy Enhanced Mail (PEM) to a file.
void startVerify(SignatureAlgorithm alg, SignatureFormat format=DefaultFormat)
Initialise the signature verification process.
static PublicKey fromDER(const QByteArray &a, ConvertResult *result=nullptr, const QString &provider=QString())
PublicKey(const PrivateKey &k)
Create a public key based on a specified private key.
bool canVerify() const
Test if the key can be used for verifying signatures.
int maximumEncryptSize(EncryptionAlgorithm alg) const
The maximum message size that can be encrypted with a specified algorithm.
PublicKey & operator=(const PublicKey &from)
Assignment operator.
PublicKey(const QString &fileName)
Import a public key from a PEM representation in a file.
bool canDecrypt() const
Test if this key can be used for decryption.
PublicKey()
Create an empty (null) public key.
SecureArray encrypt(const SecureArray &a, EncryptionAlgorithm alg)
Encrypt a message using a specified algorithm.
QString toPEM() const
Export the key in Privacy Enhanced Mail (PEM) format.
RSA Private Key.
Definition qca_publickey.h:1327
RSAPrivateKey()
Generate an empty RSA private key.
BigInteger q() const
The second of the two random primes used to generate the private key.
BigInteger d() const
The inverse of the exponent, module (p-1)(q-1)
BigInteger n() const
The public key value.
BigInteger e() const
The public key exponent.
BigInteger p() const
One of the two random primes used to generate the private key.
RSAPrivateKey(const BigInteger &n, const BigInteger &e, const BigInteger &p, const BigInteger &q, const BigInteger &d, const QString &provider=QString())
Generate an RSA private key from specified parameters.
RSA Public Key.
Definition qca_publickey.h:1276
RSAPublicKey()
Generate an empty RSA public key.
RSAPublicKey(const BigInteger &n, const BigInteger &e, const QString &provider=QString())
Generate an RSA public key from specified parameters.
RSAPublicKey(const RSAPrivateKey &k)
Extract the public key components from an RSA private key.
BigInteger n() const
The public key value.
BigInteger e() const
The public key exponent.
Secure array of bytes.
Definition qca_tools.h:317
Container for keys for symmetric encryption algorithms.
Definition qca_core.h:1264
QCA - the Qt Cryptographic Architecture.
Definition qca_basic.h:41
DLGroupSet
Well known discrete logarithm group sets.
Definition qca_publickey.h:135
@ DSA_512
512 bit group, for compatibility with JCE
Definition qca_publickey.h:136
@ DSA_768
768 bit group, for compatibility with JCE
Definition qca_publickey.h:137
@ IETF_1536
1536-bit MODP Group ("group 5") from RFC3526 Section 2.
Definition qca_publickey.h:141
@ IETF_3072
3072-bit MODP Group ("group 15") from RFC3526 Section 4.
Definition qca_publickey.h:143
@ IETF_1024
Group 2 from RFC 2412, Section E.2.
Definition qca_publickey.h:140
@ DSA_1024
1024 bit group, for compatibility with JCE
Definition qca_publickey.h:138
@ IETF_8192
8192-bit MODP Group ("group 18") from RFC3526 Section 7.
Definition qca_publickey.h:146
@ IETF_6144
6144-bit MODP Group ("group 17") from RFC3526 Section 6.
Definition qca_publickey.h:145
@ IETF_768
Group 1 from RFC 2412, Section E.1.
Definition qca_publickey.h:139
@ IETF_4096
4096-bit MODP Group ("group 16") from RFC3526 Section 5.
Definition qca_publickey.h:144
@ IETF_2048
2048-bit MODP Group ("group 14") from RFC3526 Section 3.
Definition qca_publickey.h:142
EncryptionAlgorithm
Encryption algorithms.
Definition qca_publickey.h:55
@ EME_PKCS1v15
Block type 2 (PKCS#1, Version 1.5)
Definition qca_publickey.h:56
@ EME_PKCS1v15_SSL
PKCS#1, Version 1.5 with an SSL-specific modification.
Definition qca_publickey.h:58
@ EME_NO_PADDING
Raw RSA encryption.
Definition qca_publickey.h:59
@ EME_PKCS1_OAEP
Optimal asymmetric encryption padding (PKCS#1, Version 2.0)
Definition qca_publickey.h:57
PBEAlgorithm
Password-based encryption.
Definition qca_publickey.h:103
@ PBES2_AES192_SHA1
PKCS#5 v2.0 AES-192/CBC,SHA1.
Definition qca_publickey.h:108
@ PBES2_DES_SHA1
PKCS#5 v2.0 DES/CBC,SHA1.
Definition qca_publickey.h:105
@ PBEDefault
Use modern default (same as PBES2_TripleDES_SHA1)
Definition qca_publickey.h:104
@ PBES2_TripleDES_SHA1
PKCS#5 v2.0 TripleDES/CBC,SHA1.
Definition qca_publickey.h:106
@ PBES2_AES128_SHA1
PKCS#5 v2.0 AES-128/CBC,SHA1.
Definition qca_publickey.h:107
@ PBES2_AES256_SHA1
PKCS#5 v2.0 AES-256/CBC,SHA1.
Definition qca_publickey.h:109
ConvertResult
Return value from a format conversion.
Definition qca_publickey.h:119
@ ErrorFile
Failure because of incorrect file.
Definition qca_publickey.h:123
@ ErrorPassphrase
Failure because of incorrect passphrase.
Definition qca_publickey.h:122
@ ConvertGood
Conversion succeeded, results should be valid.
Definition qca_publickey.h:120
@ ErrorDecode
General failure in the decode stage.
Definition qca_publickey.h:121
QCA_EXPORT QByteArray emsa3Encode(const QString &hashName, const QByteArray &digest, int size=-1)
Encode a hash result in EMSA3 (PKCS#1) format.
SignatureAlgorithm
Signature algorithm variants.
Definition qca_publickey.h:74
@ EMSA3_RIPEMD160
RIPEMD160, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:80
@ EMSA3_Raw
EMSA3 without computing a message digest or a DigestInfo encoding (identical to PKCS#11's CKM_RSA_PKC...
Definition qca_publickey.h:81
@ EMSA3_SHA1
SHA1, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:77
@ EMSA1_SHA1
SHA1, with EMSA1 (IEEE1363-2000) encoding (this is the usual DSA algorithm - FIPS186)
Definition qca_publickey.h:76
@ EMSA3_SHA512
SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:86
@ EMSA3_SHA256
SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:84
@ EMSA3_SHA224
SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:83
@ EMSA3_SHA384
SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:85
@ EMSA3_MD2
MD2, with EMSA3 (ie PKCS#1 Version 1.5) encoding.
Definition qca_publickey.h:79
@ EMSA3_MD5
MD5, with EMSA3 (ie PKCS#1 Version 1.5) encoding (this is the usual RSA algorithm)
Definition qca_publickey.h:78
@ SignatureUnknown
Unknown signing algorithm.
Definition qca_publickey.h:75
SignatureFormat
Signature formats (DSA only)
Definition qca_publickey.h:93
@ DERSequence
Signature wrapped in DER formatting (OpenSSL/Java)
Definition qca_publickey.h:96
@ DefaultFormat
For DSA, this is the same as IEEE_1363.
Definition qca_publickey.h:94
@ IEEE_1363
40-byte format from IEEE 1363 (Botan/.NET)
Definition qca_publickey.h:95
Header file for core QCA infrastructure.