1- import type { SessionToken } from '../../sessions/types' ;
2- import type { Metadata } from '@grpc/grpc-js' ;
3-
41import type PolykeyClient from '../../PolykeyClient' ;
52import CommandPolykey from '../CommandPolykey' ;
63import * as binUtils from '../utils' ;
@@ -17,10 +14,7 @@ class CommandUnlock extends CommandPolykey {
1714 this . addOption ( binOptions . clientPort ) ;
1815 this . action ( async ( options ) => {
1916 const { default : PolykeyClient } = await import ( '../../PolykeyClient' ) ;
20- const sessionsPB = await import (
21- '../../proto/js/polykey/v1/sessions/sessions_pb'
22- ) ;
23-
17+ const utilsPB = await import ( '../../proto/js/polykey/v1/utils/utils_pb' ) ;
2418 const clientOptions = await binProcessors . processClientOptions (
2519 options . nodePath ,
2620 options . nodeId ,
@@ -29,41 +23,29 @@ class CommandUnlock extends CommandPolykey {
2923 this . fs ,
3024 this . logger . getChild ( binProcessors . processClientOptions . name ) ,
3125 ) ;
32-
33- let pkClient : PolykeyClient | undefined ;
26+ const meta = await binProcessors . processAuthentication (
27+ options . passwordFile ,
28+ this . fs ,
29+ ) ;
30+ let pkClient : PolykeyClient ;
3431 this . exitHandlers . handlers . push ( async ( ) => {
3532 if ( pkClient != null ) await pkClient . stop ( ) ;
3633 } ) ;
3734 try {
3835 pkClient = await PolykeyClient . createPolykeyClient ( {
39- nodePath : options . nodePath ,
4036 nodeId : clientOptions . nodeId ,
4137 host : clientOptions . clientHost ,
4238 port : clientOptions . clientPort ,
39+ nodePath : options . nodePath ,
4340 logger : this . logger . getChild ( PolykeyClient . name ) ,
4441 } ) ;
45-
46- const password = await binProcessors . processPassword (
47- options . passwordFile ,
48- this . fs ,
42+ const emptyMessage = new utilsPB . EmptyMessage ( ) ;
43+ await binUtils . retryAuthentication (
44+ ( auth ) => pkClient . grpcClient . sessionsUnlock ( emptyMessage , auth ) ,
45+ meta ,
4946 ) ;
50- const grpcClient = pkClient . grpcClient ;
51- const passwordMessage = new sessionsPB . Password ( ) ;
52- passwordMessage . setPassword ( password ) ;
53- const responseMessage = await binUtils . retryAuthentication (
54- ( metaRetried ?: Metadata ) => {
55- return metaRetried != null
56- ? grpcClient . sessionsUnlock ( passwordMessage , metaRetried )
57- : grpcClient . sessionsUnlock ( passwordMessage ) ;
58- } ,
59- ) ;
60- const token : SessionToken = responseMessage . getToken ( ) as SessionToken ;
61-
62- // Write token to file
63- await pkClient . session . writeToken ( token ) ;
64- process . stdout . write ( 'Client session started' ) ;
6547 } finally {
66- if ( pkClient != null ) await pkClient . stop ( ) ;
48+ if ( pkClient ! != null ) await pkClient . stop ( ) ;
6749 }
6850 } ) ;
6951 }
0 commit comments