[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