Skip to content

Instantly share code, notes, and snippets.

@trevorfoskett
trevorfoskett / decrypt.js
Created November 25, 2019 19:22
Decryption function.
async function decrypt(fileName){
const decryptParams = new Virtru.DecryptParamsBuilder() // Changed to 'decryptParams'
.withFileSource(`./decrypt-in/${fileName}`)
.build();
const stream = await client.decrypt(decryptParams); // Changed to 'client.decrypt'
// Decrypt to stream
// Naming logic
var i = 1;
var array = fileName.split('.');
@trevorfoskett
trevorfoskett / uniqueFileName2.js
Created November 25, 2019 19:17
Assigning a unique filename if filename already exists.
var i = 1;
var array = fileName.split('.');
var encryptFileName = `${array[0]}.${array[1]}.tdf3.html`;
while (fs.existsSync(`./encrypt-out/${encryptFileName}`)) {
encryptFileName = `${array[0]} (${i}).${array[1]}.tdf3.html`;
i++;
}
@trevorfoskett
trevorfoskett / uniqueFileName2.js
Created November 25, 2019 19:16
Assigning a unique filename if filename already exists.
var i = 1;
var array = fileName.split('.');
var encryptFileName = `${array[0]}.${array[1]}.tdf3.html`;
while (fs.existsSync(`./encrypt-out/${encryptFileName}`)) {
encryptFileName = `${array[0]} (${i}).${array[1]}.tdf3.html`;
i++;
}
@trevorfoskett
trevorfoskett / encrypToFile.js
Created November 25, 2019 19:15
Encrypting to a file instead of to string.
/*
* Encryption function.
*
* @param {string} fileName Name of the file to encrypt.
*/
async function encrypt(fileName){
const encryptParams = new Virtru.EncryptParamsBuilder()
.withFileSource(`./encrypt-in/${fileName}`)
.withDisplayfileName(fileName)
.build();
@trevorfoskett
trevorfoskett / encryptWithoutUpload.js
Created November 25, 2019 19:14
Removing the Drive upload functionality from existing encrypt function.
/*
* Encryption function.
*
* @param {string} fileName Name of the file to encrypt.
*/
async function encrypt(fileName){
const encryptParams = new Virtru.EncryptParamsBuilder()
.withFileSource(`./encrypt-in/${fileName}`)
.withDisplayfileName(fileName)
.build();
@trevorfoskett
trevorfoskett / countFileName.js
Created November 22, 2019 07:20
Check if filename exists and if so, count up for files of same name.
var i = 1;
var array = fileName.split('.');
var decryptFileName = `${array[0]}.${array[1]}`;
while (fs.existsSync(`./decrypt-out/${decryptFileName}`)) {
decryptFileName = `${array[0]} (${i}).${array[1]}`;
i++;
}
@trevorfoskett
trevorfoskett / uniqueFileName.js
Created November 22, 2019 07:18
Assign a unique filename to each file.
...
var fileName = file.name;
// Assign a unique name (uFileName) to each file (fileName
// + randnum)to ensure client will not attempt to use same
//set of keys for multiple files of the same name.
var uFileName = `${fileName}|${Math.random()}`;
// Set temporary storage location in /tmp/
var dest = fs.createWriteStream(`/tmp/${uFileName}`);
...
@trevorfoskett
trevorfoskett / streamToTmp
Last active November 22, 2019 07:33
Set the download location for the stream data to /tmp.
...
var dest = fs.createWriteStream(`/tmp/${uFileName}`); // download encrypted content to /tmp
drive.files.get({
fileId: fileId,
alt: 'media'
}, {
responseType: 'stream'
}...
...
@trevorfoskett
trevorfoskett / listDownload.js
Created November 22, 2019 07:13
List, then download encrypted files in Drive by ID.
drive.files.list({
fields: 'nextPageToken, files(id, name)',
q: `'${folderId}' in parents and name contains "tdf3.html" and trashed = false`
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
// Generate list of files.
const files = res.data.files;
if (files.length) {
files.map((file) => {
// Get name and ID of each file.
@trevorfoskett
trevorfoskett / encryptUpload.js
Created November 22, 2019 07:01
Added upload functionality to the encrypt function.
async function encrypt(fileName, auth){
const encryptParams = new Virtru.EncryptParamsBuilder()
.withFileSource(`./encrypt-in/${fileName}`)
.withDisplayFilename(fileName)
.build();
ct = await client.encrypt(encryptParams);
var ctString = await ct.toString();
const drive = google.drive({version: 'v3', auth});