QCA无法导入OpenPGP私钥 - 它变成了公钥

时间:2014-03-22 09:50:46

标签: c++ qt encryption openpgp secret-key

使用QCA(libqca.so)OpenPGP库,我尝试将私钥读入QCA :: PGPKey对象,但看起来QCA将其转换为公钥。 密钥对是密钥环,但QCA也不承认它。

以下是代码:

   #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-----

0 个答案:

没有答案