#! /usr/bin/env runjs function generateLoginUrl() { var exp = (new Date().getTime() + 1000*10) + ''; var digest_hex = __.digests.sha256().digest(__.bytes.from(exp).bytes()).asHex(); var result = $$.shell().commands('card-cli', 'piv-ecsign', '-s', 'r1', '-x', digest_hex, '--json').start(); var out = result[0].string(); var outJson = JSON.parse(out); var signatureBase64 = outJson.signed_data_base64; return 'https://hatter.ink/login/direct_sign_login.jssp?__auth_before=' + exp + '&__auth_keys=&__auth_sign=' + encodeURIComponent(signatureBase64); } function main() { var url = generateLoginUrl(); println('Open URL: ' + url); $$.shell().commands('open', url).start(); } main();