0

Using QCA (libqca.so) OpenPGP library, I try to read a Private Key into a QCA::PGPKey object, but it appears QCA transforms it into the Public Key. The keypair is in keyring but QCA does not recognize it too.

Here are the codes:

   #include <QCoreApplication>

int main(int argc, char *argv[])

QCoreApplication a(argc, argv);

QCA::Initializer init;
if(!QCA::isSupported("openpgp")){
    throw std::exception();
}

QFile file("file.txt");
if(!file.open(QFile::WriteOnly | QFile::Text))
    throw std::exception();
QTextStream stream(&file);

QFile pubkey("slclientpub.asc");
if(!pubkey.open(QFile::ReadOnly | QFile::Text))
    throw std::exception();

QString pubkey_str = pubkey.readAll();
stream << "pubkey_str:\n"<< pubkey_str;

pubkey.flush();
pubkey.close();

QFile prikey("slclientsecret.asc");
if(!prikey.open(QFile::ReadOnly | QFile::Text))
    throw std::exception();

QString prikey_str = prikey.readAll();
stream << "prikey_str:\n"<< prikey_str;

prikey.flush();
prikey.close();

QCA::ConvertResult cr1, cr2;
QCA::PGPKey public_key_1 = QCA::PGPKey::fromString(pubkey_str,&cr1);
QCA::PGPKey private_key_2 = QCA::PGPKey::fromString(pubkey_str,&cr2);
QCA::PGPKey public_key_3("slclientpub.asc");
QCA::PGPKey private_key_4("slclientsecret.asc");


if((cr1 != QCA::ConvertGood) || (cr2 != QCA::ConvertGood)){
    throw std::exception();
}

stream<<"public_key_1 data:\n"
     <<"Secret: " << public_key_1.isSecret()
    <<"\nIn Keyring: " << public_key_1.inKeyring()
   <<"\n Data: \n"<<public_key_1.toString();

stream<<"private_key_2 data:\n"
     <<"Secret: " << private_key_2.isSecret()
    <<"\nIn Keyring: " << private_key_2.inKeyring()
   <<"\n Data: \n"<<private_key_2.toString();

stream<<"public_key_3 data:\n"
     <<"Secret: " << public_key_3.isSecret()
    <<"\nIn Keyring: " << public_key_3.inKeyring()
   <<"\n Data: \n"<<public_key_3.toString();

stream<<"private_key_4 data:\n"
     <<"Secret: " << private_key_4.isSecret()
    <<"\nIn Keyring: " << private_key_4.inKeyring()
   <<"\n Data: \n"<<private_key_4.toString();

stream.flush();
file.flush();
file.close();

return a.exec();
}

file.txt(OUTPUT):

pubkey_str:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAG0HFNsQ2xpZW50IDxzbGNs
aUBmdWNrLmNvbS56YT6JAT4EEwECACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEOsdWacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQ
SCs8+CFLUgo2SAUd/nkG4scpZj1tfh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtT
gayFPhIihetFxyESswFhWrBYk+fI9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJD
XCMZCTpScJUhQLgmyersH/t8N3imoglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/D
UJao0yFppEOJ5CefBUVhfqzLDL3h+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0
EDiZo2FRDpZzHMibXcTDyJmNxFdQmvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=EKsG
-----END PGP PUBLIC KEY BLOCK-----
prikey_str:
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

lQOYBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAEAB/9MZNbIi9XGpYF1B4dS
jXG+WR7aDFvaCkzIPW65E+Qnd5z9zPRYbJN3zr+qhWMr31tH1+WXcL01HHOjbEn9
V+7sEOCrBq+lEueuDW/7+/LoSJp1m/2MSLTlS1AKlEu77Sd26ya2pURNAug7yq4O
tZ9uwsOnCd7Vi+XNF61kG/4vcW6sGBqmGpND6oEE416Hyy6F3RVuCJgEq33DKo+d
tNNY7cP29Twmeo/4pQNdGNleEV44girRCfCW29oRrfXl1BfC9diDnVpfPtFPNIV1
q8yeE9rXkFXUa4rBx3JBS68jgDa60Fohrso7youmOS2guIZ4o2Zgs9Wune+y0Z0n
NhABBADEQ3MVgvUWqpQ+KzSyj7etZtq57rwy0bA+WNvzSzKuEZrmV2ETFEkR/tz8
+zyMLEfzwB1r1P4YDRE7bz+/nDJucGrQN0NJQ6F4IUDVHl/Lc1hfyQfhHQG+h9lZ
6KlKkOdYSja3/G81lHP0gD0bhqVQdIt25XzUyh7JpWfA4lkGtwQA9xFK87yh0TSH
0Dq211T1Pmbe+V1JQge/M/sgMVkVKM886dczancXO1WBIKslxONDWkRBhm/06gPm
Yfzfg2gMvyxjrHcRmSpmoFIrYErSi1r+A9UA9mHGboihQauOwGSnOx4VsIKqf0Ft
Z93Zkp68u0OJqM1IfjDXkbEWmdTL1+ED/2YfqFt/SvIIvzh2QZ+00EEEu4T7t8XE
Np7aCuEhZoHiLYhRVA8P1iB60AH3X99SIyWbsPaVpV7lEEQyLt919EwCrgr9ByPC
hPjN/ngUErJZv1/Gk97RMJgSzZ2HtlA3TUUW9y+eGo7wszuB1Rl9kuju92+qRDSm
opGew4zLcrx9SKS0HFNsQ2xpZW50IDxzbGNsaUBmdWNrLmNvbS56YT6JAT4EEwEC
ACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOsd
WacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQSCs8+CFLUgo2SAUd/nkG4scpZj1t
fh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtTgayFPhIihetFxyESswFhWrBYk+fI
9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJDXCMZCTpScJUhQLgmyersH/t8N3im
oglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/DUJao0yFppEOJ5CefBUVhfqzLDL3h
+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0EDiZo2FRDpZzHMibXcTDyJmNxFdQ
mvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=DBRP
-----END PGP PRIVATE KEY BLOCK-----
public_key_1 data:
Secret: 0
In Keyring: 0
 Data: 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAG0HFNsQ2xpZW50IDxzbGNs
aUBmdWNrLmNvbS56YT6JAT4EEwECACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEOsdWacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQ
SCs8+CFLUgo2SAUd/nkG4scpZj1tfh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtT
gayFPhIihetFxyESswFhWrBYk+fI9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJD
XCMZCTpScJUhQLgmyersH/t8N3imoglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/D
UJao0yFppEOJ5CefBUVhfqzLDL3h+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0
EDiZo2FRDpZzHMibXcTDyJmNxFdQmvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=EKsG
-----END PGP PUBLIC KEY BLOCK-----
private_key_2 data:
Secret: 0
In Keyring: 0
 Data: 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAG0HFNsQ2xpZW50IDxzbGNs
aUBmdWNrLmNvbS56YT6JAT4EEwECACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEOsdWacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQ
SCs8+CFLUgo2SAUd/nkG4scpZj1tfh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtT
gayFPhIihetFxyESswFhWrBYk+fI9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJD
XCMZCTpScJUhQLgmyersH/t8N3imoglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/D
UJao0yFppEOJ5CefBUVhfqzLDL3h+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0
EDiZo2FRDpZzHMibXcTDyJmNxFdQmvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=EKsG
-----END PGP PUBLIC KEY BLOCK-----
public_key_3 data:
Secret: 0
In Keyring: 0
 Data: 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAG0HFNsQ2xpZW50IDxzbGNs
aUBmdWNrLmNvbS56YT6JAT4EEwECACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEOsdWacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQ
SCs8+CFLUgo2SAUd/nkG4scpZj1tfh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtT
gayFPhIihetFxyESswFhWrBYk+fI9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJD
XCMZCTpScJUhQLgmyersH/t8N3imoglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/D
UJao0yFppEOJ5CefBUVhfqzLDL3h+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0
EDiZo2FRDpZzHMibXcTDyJmNxFdQmvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=EKsG
-----END PGP PUBLIC KEY BLOCK-----
private_key_4 data:
Secret: 0
In Keyring: 0
 Data: 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQENBFMaIpgBCAC9alX6wbA3vcEIJSfsXaPBf/kOrNd2JFPcJbk+oXICIOU+ZEhD
4g1ejJ/bej52aq8tvrxGQoZBVVCUdFpIO1Cerk1xMdjAzKzy4K2mi+vlTYIm9VaM
xIFgFFoXSVvlRwGWzhQppXPHqbxsWQtnPdAA83ioHJH4WxLWcf/1jai2FdvZdPVl
S9bPl3SDZ9pFxtx46u7pIqXyQ3XhFR6F82T1TxrrkeLZY08QsmCdXAaXFh3DmY4J
9EN3+87U9JCwqcUUkgHi68yzswacY7sWnPnsZ60uQk7dA107bNrjilUtzW9oXfeM
NCpmgfmpwfPSEnbPbDQxeZvWRV84IiaT/5fXABEBAAG0HFNsQ2xpZW50IDxzbGNs
aUBmdWNrLmNvbS56YT6JAT4EEwECACgFAlMaIpgCGy8FCQPC9kgGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEOsdWacrjyQGE10H/2Q1Zk6RcQr7WeiTI3H+tomQ
SCs8+CFLUgo2SAUd/nkG4scpZj1tfh/DrYCY0ZoJB0CxkE00lMo/raIH4IhZsLtT
gayFPhIihetFxyESswFhWrBYk+fI9+okZbVmSoZXkqJJU1AzBp4Bzq4P88CDbZJD
XCMZCTpScJUhQLgmyersH/t8N3imoglH1suIGPlv3SvM9adU3//TBgB9h6gmeH/D
UJao0yFppEOJ5CefBUVhfqzLDL3h+jpf1rcEDg7KIPEUDR7Y+oBVB55Y2U1YfVC0
EDiZo2FRDpZzHMibXcTDyJmNxFdQmvE9YH8sMoA4fFrcA27RnHeEOoprP+jnJRs=
=EKsG
-----END PGP PUBLIC KEY BLOCK-----
  • 1
    Why does your question start with "friends"? What does that mean? And there's no need to write "thanks in advance", in fact, it's explicitly discouraged. Please edit your post and remove all salutations and "thanks" from it. – sashoalm Mar 22 '14 at 14:29
  • Great, and I've removed my downvote. Thanks for showing willingness to improve your question! But can you do one more thing - edit your question to indent the code properly? Right now it's not indented at all. By the way - did you right it in notepad? Most editors and IDEs will indent it automatically for you, so I was wondering. – sashoalm Mar 23 '14 at 10:41
  • Yes, I can. I had to space line by line when I copied into Stack Overflow, I didn't know how to do in a better way. I'll try to do it today. – user3000075 Mar 24 '14 at 19:51

0 Answers0