kbpgp icon indicating copy to clipboard operation
kbpgp copied to clipboard

BcPGP Encrypted Message is Unable to be Decrypted

Open xhh2a opened this issue 10 years ago • 2 comments

Packets encoded by Bouncy Castle are not decryptable using kbpgp. Openpgp node library can decode them fine. GPG can decrypt the encoded message properly while Keybase complains it could not find an encrypted data packet. I'm using kbpgp as the server side while a Java/Android client is sending an encrypted message (the key is generated by the server and a public key transmitted to the client prior to encryption). If anyone knows of how to get either to work, that would be great.

Packet information:

> gpg --list-packet dummy.encoded
gpg: invalid armor header: hIwDekHa+rNFZMQBA/9RLKMIi0nABHaqwMRxASK7pGW+NxnqPQFEHsDzlMfzd8q+\n
:pubkey enc packet: version 3, algo 1, keyid 7A41DAFAB34564C4
    data: [1023 bits]
:encrypted data packet:
    length: 1020
gpg: encrypted with RSA key, ID B34564C4

Java code

    /**
     * Attempts to encrypt UNENCRYPTED message using KEY
     */
    public static String encrypt(String unencrypted, PGPPublicKey key) throws IOException, PGPException, NoSuchProviderException {
        String result = new String(encrypt(unencrypted.getBytes(), key, null, PGPEncryptedDataGenerator.AES_256));
//        Log.d("PGPUtils", result);
        return result;
    }

    /**
     * From their examples
     */
    public static byte[] encrypt(
            byte[] clearData,
            PGPPublicKey publicKey,
            String fileName,
            int algorithm)
            throws IOException, PGPException, NoSuchProviderException {
        if (fileName == null) {
            fileName = PGPLiteralData.CONSOLE;
        }

        byte[] compressedData = compress(clearData, fileName);

        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
        ArmoredOutputStream out = new ArmoredOutputStream(bOut);

        PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator(new JcePGPDataEncryptorBuilder(algorithm).setSecureRandom(new SecureRandom()).setProvider("SC").setWithIntegrityPacket(false));
        encGen.addMethod(new JcePublicKeyKeyEncryptionMethodGenerator(publicKey).setProvider("SC"));
        OutputStream encOut = encGen.open(out, compressedData.length);

        encOut.write(compressedData);
        encOut.close();
        out.close();
        bOut.close();

        return bOut.toByteArray();
    }

    private static byte[] compress(byte[] clearData, String fileName) throws IOException {
        ByteArrayOutputStream bOut = new ByteArrayOutputStream();

        PGPLiteralDataGenerator lData = new PGPLiteralDataGenerator();
        OutputStream pOut = lData.open(bOut, // the compressed output stream
                PGPLiteralData.BINARY,
                fileName,  // "filename" to store
                clearData.length, // length of clear data
                new Date()  // current time
        );

        pOut.write(clearData);
        pOut.close();
        lData.close();

        return bOut.toByteArray();
    }

xhh2a avatar May 18 '15 04:05 xhh2a

Example private key:

-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: Keybase OpenPGP v2.0.10 Comment: https://keybase.io/crypto
xcLYBFVZbLwBCAC9uWsXHOkqH/gAdySj/28yRfchBqzbj1X2AgDgnFmos1SPmYT8
UYhIb2oW9S3bXsJy+FKWqdXtJQmd+l+Ro+P58Aav9tUpNUPyt2yy7xt6f1thfdmt
fCOrhHeI8LdPXk0eZudzTW4uVQzg6MLNpGeHgiHrLdLf1UhB8UeSupZQuYw9PgBv
VMzwc5H2/99/DvbFE4ry+lhEc+VZKLYUIw4QgL+KkMqhRYfQIFFhlXJS8ou/951N
XkKrvj/SPTSskFbACmsTYol9DWYiYpAVurPiYe/Ch5VllErVDG6bT/125CIDvTbQ
vN5fYYZRdPvVVxOPV6Nl8T/xy/kz5Knyqrm1ABEBAAEAB/0Y0XGF031YylfJz8wW
O+rS274pLtNb4VMwXDC7MRi1bcgJBN8VlqDKQPDS0f3OrYWoPn2nQc4/OFIavU7V
IWhIILLvP83AlzwtOvtYKNkiXBibFzhrbkrIPAra+gowsrhJ2tI6Dg30t6F4plod
Rn1Yh5hiSFtGdoL+RU7Eje3t3y23dAWvF+zHvp6QxJ0AexcCmRDshfqskrMgclB9
oB3gvowCvQ444LpdF/0ANv9QuQxxvMH5FR/AKKol8JM41ycSUlshTgRxkJ6qyCuQ
xDGVYoysdPOyEkmvRAHjyoEMICxOqmSnXrFS/djht3/13Rb9f6/EbvMc8r0Cvui4
jLHhBAD5ABoM/i3zv/CbmvyE7GMNttPb6UJnBl+tLhPimr5K0/IvqPh5d17vpD/j
HWybE+DT+1agIyG0DVtIcUGv+0rQFgieGogNEFqebnAHO8V4ct2uuZ5MjfCxrhFE
ivC1UoDQfgBRhqDqmVI9W0jiea+drJv3dlbKdzbabJ8+pf/jSQQAww6+ctszVYqX
QjmjNSdv7zdlLH9BTEXU7DJxovOY6kTvaMEp6+BiTVg1xWzM+NGWU49wpv2IDRot
vpg75Ow01hSoj9s6DKMDk9oVwqogo9AkufFNX+yhyLRiD7PZt69Lr3DQalQDRCO6
qYQPrkt3xsq7/f2tKmGIjMXHzxybtw0D/2aFgqYiC4JudybYHK7tyR0gbP4Iy8ek
uK+EiZaz+O0tyjAkFdJSeRmh5BNTudNVgJgU0KOnr5BRkgdHPjHg7n4VXkxdRTOS
dfy9RjPCj5bgWQ13P+9+IYnf16ligEtrMxPNa6SL4M5MBcI6nx0ZFN55CGRt5axL
EH4Af1ke3ka8Q/vNEXhoaDJhQGhvdG1haWwuY29twsB2BBMBCgAgBQJVWWy8Ahsv
AwsJBwMVCggCHgECF4ACGQEFCQAAqMAACgkQYFkQ8jpVnEkRMggAkRKyyMeonstC
/ZkkUkJdyzwWlSSPrzZfGjZTXSSMEqLFn2PnVytmRD1HACFg1m3pgIHlVgVZtUuU
zirpAtqqWzIVXBMEQ1EABvrapnrZGXXwLc928Ew7UHm2WaV8KSdTeZJtgArytzRC
3awF+fh+qE+D7IXwVhUCkRc3S7frO/aC9hzjH4LigvskstKOUSwIRaDRD6KhsXXC
veyCNY9qxQTJi0r8hv4P0O3/2epy03CpI/GThPAmXRIwXgJ15Fosrmr34lRJ/a8+
nzjwvJG4jvYA2qoRDrS9nP55nCY8xaTY9rUwAFJgDQpf4y139w5ldfD016Bddn+t
6iMhFHvqIg==
=SJFi
-----END PGP PRIVATE KEY BLOCK----- 

Example encoded message:

-----BEGIN PGP MESSAGE-----
Version: 1.51
hQEMA2BZEPI6VZxJAQf9FS+OYJ+jriou0T/hon7LRLZ7vc1wbB+cepahowTnaHfK
dBQOq6Zd01+tCpkYPRaGu0FqTaZ/CEATs+5ei0B/0AfhBtfhIm2Dv1qh0J1ysEBs
qpLcd8H5jaVl5EzmSwCthdh4qvYOs1PAyGFSWx7bcOdeCnT3hQuHSpDQmmrlfH9Y
hHVDztFCQCoJALzymuUH0zBP8uzr0RyE0GgSz2Nlohsg82nYsN5sAaW878UkAuLr
YtB1kjjwCNxR2q9sreqs5rNusT85s/MDBqwvhvdAGYxOuy3gLszrBSPvNa02PHnN
O2ku1EY21OwwGqYMBApJ47AqFFWwDSYf4K0WcM0rT8nDMnnNVQ9lOdExi2qUfT51
eJOCAQ/Z3598Fg97HlrRUxTAfl3q9ktru2VggjJLDR44e3W0PYxB4gqluQJpXeKU
zDKy0CkYwlzRrhurG7h5/R3qCNJ5WJF5KN0ldaqP+uKSuJbazxQLH5zroUwqFY+Z
AXJK0ecNZlcQM6EMBwiC0yQJwVY2UimfPJJdejdxU9Y6eSyN99GQQ1PfOJfOoXXG
XVu8igDneu2T1sH3CKyEcDuEzwTWsz4r6x87DK3hTnxF8Rs2zyjECVCDEoJdyz8D
FFyuqK5oVj9MuBHGwxrYkRCB5ZausLf/N9ZXnnZaKQNDbWlb6X7Ra0SHcNJUoZ19
hj7lBWfERFWPuA1iIb4/N56lciDwZEBVHiZcBqHgyFMVwFOWRnYMvqn3byWx/eab
X8bLAuhhqrI3iPRY0gYrIbcxQ9Van41nI+Qo4oTk9FibQkdKyIGA6mrZgL8HOzba
+EaDgEwui6kOrfzxvBtTiOlBnflRsgHPj/jd/VsyVeDZNVjEgiP2zHkYdZFTYXtw
xyM9jpDueCxIhBsHsrcI+2ppE3rTljj72jfjTZvJI6t0pZFtbBZiYyYdUu01Jjkz
i174TqRvsJh15hR6ZQxCQVTdyQXteaH0C0daFMC7VtAmcwfKTX1RQtZ3LeLH1iim
9pMQc5XE4aJBrIkpjIm1pzFQxOG1x/QGr/OsnhHpAmaxfsS/TulUn1Nz4iAwiVr2
cn+WMtfGUVIrodABeliDiGho8UMVBnS1WkobiG9X0nUw2JE+/OqAv2cv63M0Dx4s
WsEvsyQP84W4TYSlbw1JyT3Y5vhH8wnbtZEOKYueKkta1t+saI9iR2iqWiG0ErPd
JKpJ3/MSBMTXUTuFl3U+msQG/gXWbEVf+7nIXsVHM2E+taWfqrr/84mJlL/GFg2r
mzYudp4UzrYUTgHZX4ADnOvDTQJYx71R2J5OwhO/dHaD7itq9towvnG1RWqQa/eY
f2sp2bbGQWlKErXXEMgoSx4CltO3USxERlfmuuUICt4UcjtFzMKdL+IdX+6DMrbl
5hgQ8zwGzvIkDxF1AhGqcqhPuoPoCxzMlSAxlUZ0T+d88hPF2QFmA0RZ+Or3pV9l
F33yxPVxJvhiuTJTl7Vx2Yc+qqQRl+vM+NP3zmpNnBeZeAo2VJOpxe8J+BvAvCHV
459o+18G7emuwNHKVBYu5KbG6dYpY5Y4UT8PoqlGgfVPalnThrOQyFlX58gC7uuj
MsakWq6GH0vX4LPmfp3jtxVHfpeNs2pf8eqCh5XVr8BGdTlQLJj/8J0RAQmpoioZ
tuZ7hwuvJ/UPVJGZZuycqi0cihtAiRT2dke81/5TxHwiFwO3
=Gp9z
-----END PGP MESSAGE-----

xhh2a avatar May 18 '15 06:05 xhh2a

I have the same problem, Any help here?

mchavarriae avatar Nov 26 '16 00:11 mchavarriae