#! /usr/bin/env runjs var jose = require('component-jose.js'); var args = require('component-args.js'); var main = () => { var parsedArgs = args.parseARGS(); var secureosssendfileConfRFile = __.rfile.from('~/.jssp/config/secureosssendfile.jwk'); if (secureosssendfileConfRFile.notExists()) { xprintln('[ERROR] secureosssendfile.jwk NOT found.'); return; } var jwk = jose.jwk.load(secureosssendfileConfRFile.string()); var osssendfilejsRFile = __.rfile.from('~/bin/osssendfile.js'); if (osssendfilejsRFile.notExists()) { xprintln('[ERROR] osssendfile.js NOT found.') return; } if ((parsedArgs.args.length != 2) && (parsedArgs.args.length != 3)) { println('secureosssendfile.js -- secure upload file to playsecurity.org'); println(); println('secureosssendfile.js file.ext [newFn] keywords'); return; } var fn = parsedArgs.args[0]; var newFn = fn; var kw; if (parsedArgs.args.length == 2) { kw = parsedArgs.args[1]; } else { newFn = parsedArgs.args[1]; kw = parsedArgs.args[2]; } if ($STR(newFn) == '_IN') { print('Input new fn: '); newFn = java.lang.System.console().readLine(); println('[INFO] Input file name: ' + newFn); } var encFn = $$.date().millis() + '.gpg'; xprintln('[INFO] GPG encrypt file: ' + fn + " -> " + encFn) $$.shell(true).commands('gpg', '-e', '-r', 'D0386B7F', '-o', encFn, fn).run(); var jweNewFn = 'JWE:' + jose.jwe.enc(jwk, newFn); xprintln('[INFO] Send file: ' + encFn + ' -> ' + jweNewFn); $$.shell(true).commands('osssendfile.js', encFn, jweNewFn, kw).run(); $$.file(encFn).delete(); xprintln('[INFO] Done!') }; main();