-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplayground.js
More file actions
40 lines (32 loc) · 1.29 KB
/
playground.js
File metadata and controls
40 lines (32 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var UTILS = require("./modules/utils");
var utils = new UTILS();
//Time format
var ZT = require("./modules/ztime");
var ztime = new ZT();
var sshpk = require('sshpk');
var fs = require('fs');
/* Read in an OpenSSH/PEM *private* key */
var keyPriv = fs.readFileSync('/etc/ssh/ssh_host_ecdsa_key');
var key = sshpk.parsePrivateKey(keyPriv, 'pem');
var data = 'asdfert';
/* Sign some data with the key */
var s = key.createSign('sha1');
s.update(data);
var signature = s.sign();
/* Now load the public key (could also use just key.toPublic()) */
//var keyPub = fs.readFileSync('/etc/ssh/ssh_host_ecdsa_key.pub');
//console.log(keyPub)
keyPubStr = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM0ObqgLyX+IRkpclBq7FiknDohMyvu5hyhZjVqrHGbdoYiY1x7nmb44IwnobHnRgdEVff308IwiyBCbUmRcRoM= root@maics-appliance-01"
keyPub = Buffer.from(keyPubStr, 'utf8');
key = sshpk.parseKey(keyPub, 'ssh');
buf = "MEQCIFaXUWVQJjrxICmI0+Hru0u8nTTPQJwPayoK8qraEWzfAiB2wABU8p0SwJgjnjKGiWj/A/GlnZmoU7A79Hb/VTmCwg=="
tmp = sshpk.parseSignature(buf, "ecdsa", "asn1")
console.log(tmp)
/* Make a crypto.Verifier with this key */
var v = key.createVerify('sha256');
v.update(data);
var valid = v.verify(tmp);
console.log(valid)
/* => true! */
console.log(ztime.current())
console.log(ztime.minutesDiff("20201202221750Z"))