Exemple #1
0
 this.gpg.changeCard(cc, (res: Result) => {
   console.log('run:-6', m.header.action);
   ws.send(Message.prepare(header, Progress.info(res.stdOut)));
   ws.send(Message.prepare(header, Progress.error(res.stdErr)));
   ws.send(Message.prepare(header.setAction('ChangeCard.Completed')));
   // send cardlist
 });
Exemple #2
0
 this.gpg.deletePublicKey(payload.fpr, (rs: Result) => {
   myws.send(Message.prepare(header, Progress.info(rs.stdOut)));
   myws.send(Message.prepare(header, Progress.error(rs.stdErr)));
   myws.send(
     Message.prepare(header, Progress.ok('DeleteKey Successfull', true))
   );
 });
Exemple #3
0
 public run(observer: Observer, ws: WebSocket, m: Message.Message): boolean {
   console.log('GpgChangeCard.run', m.header);
   if (m.header.action != 'ChangeCard.Request') {
     // ws.send(Message.prepare('Progressor.Clavator', Progress.fail('Ohh')))
     return false;
   }
   const a = JSON.parse(m.data) || {};
   const cc = ChangeCard.fill(a);
   console.log('run:-1', m.header.action);
   // console.log(m, a, kg)
   // console.log(kg.valid(), kg.errText())
   const header = Message.toHeader(m, 'Progressor.Clavator');
   console.log('run:-2', m.header.action);
   if (!cc.valid) {
     console.log('run:-3', m.header.action, cc);
     ws.send(Message.prepare(header, Progress.fail('Failed received ChangeCard is not valid')));
     return;
   }
   // console.log('>>>', kg.masterCommand())
   console.log('run:-4', m.header.action);
   ws.send(Message.prepare(header, Progress.info(`ChangeCard Action`)));
   console.log('run:-5', m.header.action);
   this.gpg.changeCard(cc, (res: Result) => {
     console.log('run:-6', m.header.action);
     ws.send(Message.prepare(header, Progress.info(res.stdOut)));
     ws.send(Message.prepare(header, Progress.error(res.stdErr)));
     ws.send(Message.prepare(header.setAction('ChangeCard.Completed')));
     // send cardlist
   });
   return true;
 }
 ws.on('message', (message) => {
     console.log('received: %s', message);
     try {
         
         let msg:ISocketMessage = JSON.parse(message)
         console.log("Message OK")
         console.log(msg.event)
         
         switch(msg.event) {
             
             case "folder": {
                 fc.handle(msg, ws)
                 break;
             }
             
             case "image": {
                 ic.handle(msg, ws)
                 break;
             }
             
             default: {
                 ws.send(JSON.stringify({event: "error", message: "event not recognized"}))
             }
         }
         //ws.send(JSON.stringify({event: "ok", payload: ""}))    
     } catch (err) {
         ws.send(JSON.stringify({event: "error", message: err.message}))
     }
     
 });
 gpg.createSubkey(fpr, ki, ki.subKeys.get(cnt), (res: Result) => {
   // console.log('createSubKeys:4');
   ws.send(Message.prepare(header, Progress.info(res.stdOut)));
   ws.send(Message.prepare(header, Progress.error(res.stdErr)));
   // console.log('createSubKeys:5');
   this.createSubKeys(gpg, header, ws, cnt + 1, fpr, ki, cb);
 });
	function send(data: string | ArrayBuffer) {
		if (typeof data !== 'string') {
			socket.send(new Buffer(data));
		} else {
			socket.send(data);
		}
	}
 this.gpg.changePin(rcp.action, rcp,  (res: Result) => {
   if (res.exitCode != 0) {
     ws.send(Message.prepare(header, Progress.fail(res.stdOut + '\n' + res.stdErr)));
   } else {
     ws.send(Message.prepare(header, Progress.ok(`pin for ${rcp.action} changed`, true)));
   }
   ws.send(Message.prepare(header.setAction('GpgChangePinYubikey.Completed'), null));
 });
 private sendKeysToCard(
   observer: Observer,
   ws: WebSocket,
   header: Message.Header,
   ksk: SecretKey,
   syk: SimpleYubikey,
   idx = 0
 ): void {
   if (idx == 0) {
     console.log('start-suspend observer');
     observer.suspend();
   }
   if (idx >= ksk.subKeys.length) {
     ws.send(Message.prepare(header.setAction('SimpleYubiKey.Completed')));
     console.log('completed-resume observer');
     observer.resume();
     return;
   }
   const subkey = ksk.subKeys[idx];
   ws.send(
     Message.prepare(
       header,
       Progress.ok(`start keyToYubiKey for ${subkey.fingerPrint.fpr}:${idx}`)
     )
   );
   this.gpg.keyToYubiKey(
     syk.asKeyToYubiKey(subkey.fingerPrint.fpr, idx + 1),
     (res: Result) => {
       if (res.exitCode != 0) {
         console.error('error-resume observer', res, res.runQueue[0]);
         // observer.resume();
         ws.send(
           Message.prepare(
             header,
             Progress.fail(res.stdOut + '\n' + res.stdErr)
           )
         );
       } else {
         ws.send(
           Message.prepare(
             header,
             Progress.ok(
               `keyToYubiKey for ${subkey.fingerPrint.fpr}:${idx} changed`,
               true
             )
           )
         );
         this.sendKeysToCard(observer, ws, header, ksk, syk, idx + 1);
       }
     }
   );
 }
Exemple #9
0
 this.gpg.resetYubikey((res: Result) => {
   // ws.send(Message.prepare(header, res));
   if (res.stdOut.split('\n').find((i: string) => { return i.startsWith('ERR '); })) {
     res.stdOut.split('\n').forEach((s: string) => {
       ws.send(Message.prepare(header, Progress.fail(s)));
     });
   } else {
     ws.send(Message.prepare(header,
       Progress.ok('Almost done. Remove your Yubikey now and plug it in again.', true)));
     // res.stdOut.split('\n').forEach((s: string) => {
     //   ws.send(Message.prepare('Progressor.Clavator', Progress.ok(s)))
     // })
   }
   ws.send(Message.prepare(header.setAction('GpgResetYubikey.Completed'), null));
 });
Exemple #10
0
 () => {
     if (socket.readyState === WebSocket.OPEN) {
         socket.send('')
     } else if (socket.readyState === WebSocket.CLOSED) {
         clearInterval(timer)
     }
 },