Skip to content

Commit d0f25ee

Browse files
onlykeybmatusiak
andauthored
Development (#30)
* test * Updated * testing recent changes * My Next PR of changes (#24) * removed chat plugin from dev build * disabled xterm console from build * more xterm removal * pw gen fix * fix for encrypt-file * fix for decryptFile * allow target_blank passtrough during link-takeover * update Co-authored-by: onlykey <onlykey@users.noreply.github.com> * update for heroku test * update for heroku test * updates * update * Merge branch 'heroku-deploy' into development # Conflicts: # src/app-src.html # src/onlykey-fido2/onlykey/kbpgp-2.1.0.ok.ecc.js # src/onlykey-fido2/onlykey/onlykey-api.js Co-authored-by: Bradley Matusiak <bmatusiak@gmail.com>
1 parent 4b5e4a4 commit d0f25ee

7 files changed

Lines changed: 43 additions & 31 deletions

File tree

past_releases/Beta8/src/onlykey-api.js

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var hw_RNG = {};
88
var appId = window.location.origin;
99
var version = "U2F_V2";
1010
var OKversion;
11+
var FWversion;
1112
var browser = "Chrome";
1213
var os = getOS();
1314
var packetnum=0;
@@ -70,7 +71,7 @@ initok = async function () {
7071
if (os=='Android') await wait(6000);
7172
else await wait(3000);
7273
}
73-
await wait(1000);
74+
await wait(2000);
7475
if (typeof(sharedsec) === "undefined" && window._status != 'Encrypt Only') {
7576
if (browser=='Firefox') headermsg("OnlyKey not connected! Close this tab and open a new one to try again.");
7677
else headermsg("OnlyKey not connected! Refresh this page to try again.");
@@ -110,7 +111,11 @@ IntToByteArray = function(int) {
110111
function get_pin (byte) {
111112
if (byte < 6) return 1;
112113
else {
113-
return (byte % 5) + 1;
114+
if (FWversion.indexOf('beta') > -1) {
115+
return (byte % 5) + 1;
116+
} else {
117+
return (byte % 6) + 1;
118+
}
114119
}
115120
}
116121

@@ -289,16 +294,23 @@ async function msg_polling(params = {}, cb) {
289294
_setStatus('pending_challenge');
290295
data = 1;
291296
} else if (type == 1) {
292-
okPub = response.slice(21, 53);
293-
console.info("OnlyKey Public Key: ", okPub );
297+
FWversion = bytes2string(response.slice(8, 20));
298+
299+
if (FWversion.indexOf('beta') > -1) {
300+
okPub = response.slice(21, 53);
301+
OKversion = response[19] == 99 ? 'Color' : 'Original';
302+
} else {
303+
FWversion = bytes2string(response.slice(32+8, 32+20));
304+
okPub = response.slice(0, 32);
305+
OKversion = response[32+19] == 99 ? 'Color' : 'Go';
306+
}
294307
sharedsec = nacl.box.before(Uint8Array.from(okPub), appKey.secretKey);
295-
console.info("NACL shared secret: ", sharedsec );
296-
OKversion = response[19] == 99 ? 'Color' : 'Original';
297-
var FWversion = bytes2string(response.slice(8, 20));
298-
msg("OnlyKey " + OKversion + " " + FWversion + " secure encrypted connection established using NACL shared secret and AES256 GCM encryption\n");
308+
var key = sha256(sharedsec); //AES256 key sha256 hash of shared secret
309+
msg("OnlyKey " + FWversion + " secure encrypted connection established using NACL shared secret and AES256 GCM encryption\n");
299310
id('header_messages').innerHTML = "<br>";
300311
headermsg("OnlyKey " + FWversion + " Secure Connection Established\n");
301-
var key = sha256(sharedsec); //AES256 key sha256 hash of shared secret
312+
console.info("OnlyKey Public Key: ", okPub );
313+
console.info("NACL shared secret: ", sharedsec );
302314
console.info("AES Key", key);
303315
return;
304316
} /*else if (type == 2) {
@@ -668,6 +680,7 @@ async function ctaphid_via_webauthn(cmd, opt1, opt2, opt3, data, timeout) {
668680
timeout: timeout,
669681
//rpId: 'apps.crp.to',
670682
userVerification: 'discouraged',
683+
//requireResidentKey: 'required',
671684
//userPresence: 'false',
672685
//mediation: 'silent',
673686
//extensions: {

src/app-src.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ <h1 id="fancy-icons">
5252
<i class="fi-b fa fa-long-arrow-right fa-2x" aria-hidden="true"></i>
5353
<i class="fi-c fa fa-lock fa-2x" aria-hidden="true"></i>
5454
</h1>
55-
<h5><div id="header_messages"></div></h5>
55+
<div id="header_messages"></div>
5656
</div>
5757
<div id="container">
5858
<div class="text-center">

src/onlykey-fido2/onlykey/kbpgp-2.1.0.ok.ecc.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,13 +1583,8 @@
15831583

15841584
Curve25519.prototype.decrypt = function(x, V) {
15851585
var S;
1586-
1587-
console.log("Curve25519:decrypt:x",x);
15881586
x = Curve25519.reverse_buf(x);
15891587
S = kbnacl.alloc({}).scalarmult(x, V);
1590-
console.log("Curve25519:decrypt:V",V);
1591-
console.log("Curve25519:decrypt:xREV",x);
1592-
console.log("Curve25519:decrypt:S",S);
15931588
return S;
15941589
};
15951590

@@ -5555,7 +5550,7 @@ _break()
55555550
for (i = _i = 0, _len = hex_key_ids.length; _i < _len; i = ++_i) {
55565551
id = hex_key_ids[i];
55575552
k = this._keys[id];
5558-
if (onlykey.is_ecc) {
5553+
if (onlykey.is_ecc || (k != null ? (_ref = k.key) != null ? _ref.can_perform(ops) : void 0 : void 0)) {
55595554
ret_i = i;
55605555
km = this._kms[id];
55615556
break;

src/onlykey-fido2/onlykey/onlykey-api.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ module.exports = function(imports) {
8080
}
8181

8282
if (typeof(onlykey_api.sharedsec) === "undefined") {
83-
if (onlykey_api.browser == 'Firefox') headermsg("OnlyKey not connected! Close this tab and open a new one to try again.");
84-
else headermsg("OnlyKey not connected! Refresh this page to try again.");
83+
if (onlykey_api.browser == 'Firefox') headermsg("<p class='text-danger'>OnlyKey not connected! Close this tab and open a new one to try again.</p>");
84+
else headermsg("<p class='text-danger'>OnlyKey not connected! Refresh this page to try again.</p>");
8585
if (callback && typeof callback == "function")
8686
callback(true);
8787
resolve();
@@ -152,8 +152,8 @@ module.exports = function(imports) {
152152
response = ctaphid_response.data;
153153

154154
if (!response) {
155-
if (onlykey_api.browser == 'Firefox') headermsg("OnlyKey not connected! Close this tab and open a new one to try again.");
156-
else headermsg("OnlyKey not connected! Refresh this page to try again.");
155+
if (onlykey_api.browser == 'Firefox') headermsg("<p class='text-danger'>OnlyKey not connected! Close this tab and open a new one to try again.</p>");
156+
else headermsg("<p class='text-danger'>OnlyKey not connected! Refresh this page to try again.</p>");
157157
imports.app.emit("ok-disconnected");
158158
}
159159
else {
@@ -189,11 +189,10 @@ module.exports = function(imports) {
189189
onlykey_api.OKversion = response[19] == 99 ? 'Color' : 'Original';
190190
onlykey_api.FWversion = bytes2string(response.slice(8, 20));
191191
console.info("Version:",[onlykey_api.OKversion, onlykey_api.FWversion]);
192-
headermsg("OnlyKey " + onlykey_api.FWversion + " Secure Connection Established\n");
193-
194192
imports.app.emit("ok-connected");
195193
cb(null);
196194
}
195+
headermsg("<p class='text-success'>OnlyKey " + onlykey_api.FWversion + " Secure Connection Established</p>\n");
197196
break;
198197
default:
199198
imports.app.emit("ok-disconnected");
@@ -297,6 +296,9 @@ module.exports = function(imports) {
297296
}
298297
default:
299298
console.warn("ctap_error_code", ctap_error_codes[error_code]);
299+
if (ctap_error_codes[error_code] == 'CTAP2_ERR_EXTENSION_NOT_SUPPORTED') {
300+
error = ctap_error_codes[error_code];
301+
}
300302
break;
301303
}
302304

@@ -414,10 +416,9 @@ module.exports = function(imports) {
414416
function id(s) { return document.getElementById(s); }
415417

416418
function headermsg(s) {
417-
418-
if(imports.app)
419-
imports.app.emit("ok-message",s);
420-
else
419+
//if(imports.app)
420+
// imports.app.emit("ok-message",s);
421+
//else
421422
id('header_messages').innerHTML += "<br>" + s;
422423

423424
}

src/onlykey-fido2/onlykey/onlykey-pgp.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,8 @@ module.exports = function(imports) {
567567
console.info(decryptedMessage);
568568
_api.emit("done");
569569
callback(null, decryptedMessage);
570+
_$status('finished');
571+
imports.app.emit("ok-connected");
570572
resolve(decryptedMessage);
571573
});
572574
});
@@ -673,6 +675,8 @@ module.exports = function(imports) {
673675
saveAs(finalfile, filename);
674676
_api.emit("done");
675677
callback();
678+
_$status('finished');
679+
imports.app.emit("ok-connected");
676680
resolve();
677681
});
678682

@@ -796,10 +800,10 @@ module.exports = function(imports) {
796800
else {
797801
_api.emit("status", 'Done :) Click here to copy message, then paste encrypted message into an email, IM, whatever.');
798802
}
799-
800-
_$status("finished");
801803
_api.emit("done");
802804
callback(null, results);
805+
_$status('finished');
806+
imports.app.emit("ok-connected");
803807
return resolve(results);
804808
});
805809
});
@@ -914,7 +918,6 @@ module.exports = function(imports) {
914918
_api.emit("status", 'Done :) downloading signed file ' + filename + '.zip.gpg');
915919
else
916920
_api.emit("status", 'Done :) downloading encrypted file ' + filename + '.zip.gpg');
917-
_$status("finished");
918921
if (usevirtru != null) {
919922
try {
920923
_api.emit("status", 'Done :) downloading encrypted file ' + filename + '.tdf');
@@ -933,6 +936,8 @@ module.exports = function(imports) {
933936
saveAs(finalfile, filename + ".zip.gpg");
934937
_api.emit("done");
935938
callback();
939+
_$status('finished');
940+
imports.app.emit("ok-connected");
936941
return resolve();
937942
}
938943
});

src/plugins/decrypt/decrypt-file.page.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<h5><div id=header_messages></div></h5>
21
<h4>
32
<font size="+2">Securely decrypt and verify files using
43
<a href="https://onlykey.io" target="_blank">OnlyKey</a>

src/plugins/decrypt/decrypt.page.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<h5><div id=header_messages></div></h5>
21
<h4>
32
<font size="+2">Securely decrypt and verify messages using
43
<a href="https://onlykey.io" target="_blank">OnlyKey</a></font>

0 commit comments

Comments
 (0)