feat: scripts
This commit is contained in:
59
scripts/secureosssendfile.js
Normal file
59
scripts/secureosssendfile.js
Normal file
@@ -0,0 +1,59 @@
|
||||
#! /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();
|
||||
|
||||
Reference in New Issue
Block a user