[Qt-interest] QCA big string encryption
Nicholas Shatokhin
n.shatokhin at gmail.com
Sun Apr 24 20:52:53 CEST 2011
What do you mean?
There is my code below. What must I add? (I use 1024bit rsa key and
message truncate to 1024bit)
bool CCryptor::generateKeys(int size)
{
if(init())
{
QCA::PrivateKey seckey = QCA::KeyGenerator().createRSA(size);
if(seckey.isNull())
{
std::cout << "Failed to make private RSA key" << std::endl;
return false;
}
QCA::PublicKey pubkey = seckey.toPublicKey();
privateKey = seckey;
publicKey = pubkey;
return true;
}
else
return false;
}
QByteArray CCryptor::dataEnrypt(QByteArray data)
{
// check if the key can encrypt
if(!publicKey.canEncrypt())
{
std::cout << "Error: this kind of key cannot encrypt" << std::endl;
return QByteArray();
}
QCA::SecureArray arg = data;
// encrypt some data - note that only the public key is required
// you must also choose the algorithm to be used
QCA::SecureArray result = publicKey.encrypt(arg, QCA::EME_PKCS1_OAEP);
if(result.isEmpty()) {
std::cout << "Error encrypting" << std::endl;
return QByteArray();
}
return result.toByteArray();
}
QByteArray CCryptor::dataDecrypt(QByteArray data)
{
QCA::SecureArray encrypt = data;
QCA::SecureArray decrypt;
if(0 == privateKey.decrypt(encrypt, &decrypt, QCA::EME_PKCS1_OAEP))
{
std::cout << "Error decrypting.\n";
return QByteArray();
}
return decrypt.data();
}
Sun, 24 Apr 2011 21:31:38 +0300 було написано Jason H <scorp1us at yahoo.com>:
> It's beena while since I used QCA, but do you need to finalize() it for
> the
> last block?
>
>
>
>
> ----- Original Message ----
> From: Nicholas Shatokhin <n.shatokhin at gmail.com>
> To: qt-interest at qt.nokia.com
> Sent: Sun, April 24, 2011 1:12:41 PM
> Subject: [Qt-interest] QCA big string encryption
>
> Hello.
>
> I'm trying to encrypt end decrypt long string. But after decryption, I
> get
> only part of string. What's wrong?
>
> Code:
>
> QCA::SecureArray arg = data;
> qDebug() << arg.toByteArray();
> QCA::SecureArray result = publicKey.encrypt(arg,
> QCA::EME_PKCS1_OAEP);
> privateKey.decrypt(result, &arg, QCA::EME_PKCS1_OAEP);
> qDebug() << arg.toByteArray();
>
> Output:
>
> "{"method": 1, "data": {"email": "dfgh", "usePassword": "false",
> "password": "", "useFingerprint": false, "fingerprint": "", "publicKey":
> "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDN05UNjd6R1pHajZpbDc5K3ErOWo5K2s5cApnVHJJOGxRVlFoQkxuVWxBNFArS01selBEOU9aOEk0UXRWNEdjT0ZOYWFyTjByZFlacllKaVF2VjBUQkdSSnRWCnNEOTVsZzNPMHFzVHBuSVdrYW5rUTVFUmdiTDlqQ0grb0taNFBrUEd0OW9MVjhCOGphNjFRazdhLytBVUZ1UUQKeDBMUGZvUyt5VkVoYXNjM0x3SURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo="}
> }"
>
> "{"method": 1, "data": {"email": "dfgh", "usePassword": "false",
> "password": "", "useFi"
>
>
> Best regards,
> Nick.
>
--
За використання революційного клієнта електронної пошти Opera:
http://www.opera.com/mail/
More information about the Qt-interest-old
mailing list