I tried to encode and decode file, but input file doesn't match the output. (via openpgp#204)
I tried to do this input.tar.gz -> bin -> encrypt -> medium.txt -> decrypt -> bin -> output.tar.gz
with this code, but input.tar.gz is not equal to output.tar.gz. What I'm doing wrong?
code:
var express = require('express');
var fs = require('fs');
var http = require('http');
var _ = require('lodash');
var app = express();
var bodyParser = require('body-parser');
var multer = require('multer');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var crypto = require('crypto');
var sh = require('shelljs');
var Targz = require('tar.gz');
var Email = require('email').Email;
var dest = './blackbox-tmp/';
var openpgp = require('openpgp');
var key = openpgp.generateKeyPair(1, 512, 'black', 'box');
var privateKeys = openpgp.key.readArmored(key.privateKeyArmored);
var publicKeys = openpgp.key.readArmored(key.publicKeyArmored);
var privateKey = privateKeys.keys[0];
var publicKey = publicKeys.keys[0];
var input = 'input.tar.gz';
var encrypted = 'middle.txt';
var decrypted = 'output.tar.gz';
// ENCRYPT
fs.readFile(input, { flag: 'r' }, function(err, fd) {
if (err) throw err;
console.log('Read input');
var file = new Buffer(fd, 'binary').toString();
console.log(fd);
var encryptedMsg = openpgp.encryptMessage(publicKeys.keys, file);
console.log('Encrypt archive');
fs.writeFile(encrypted, encryptedMsg, { flag: 'w', encoding: 'utf8' }, function(err) {
if (err) throw err;
console.log('Encrypted file has been writed');
// DECRYPT
fs.readFile(encrypted, { flag: 'r', encoding: 'utf8' }, function(err, msg) {
if (err) throw err;
console.log('Encrypted has been read');
// console.log(msg);
msg = openpgp.message.readArmored(msg);
if (privateKey.decrypt('box')) {
console.log('decrypt archive');
var decryptedMsg = openpgp.decryptMessage(privateKey, msg);
var body = new Buffer(decryptedMsg);
console.log('converted it to binary');
console.log(body);
fs.writeFile(decrypted, body, { flag: 'w' }, function(err) {
if (err) throw err;
console.log('Decrypted file has been writed');
});
}
});
});
});
PS.
input.txt == output.txt // true
input.txt.zip == output.txt.zip // false WHY?
maybe because of this error issue #210?