You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			46 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
| 
											7 years ago
										 | import { getCliOptions, getPrintableError } from './common'; | ||
|  | import { keyPair } from './curve'; | ||
|  | import { writeHexToPath } from './signature'; | ||
|  | 
 | ||
|  | /* tslint:disable:no-console */ | ||
|  | 
 | ||
|  | const OPTIONS = [ | ||
|  |   { | ||
|  |     names: ['help', 'h'], | ||
|  |     type: 'bool', | ||
|  |     help: 'Print this help and exit.', | ||
|  |   }, | ||
|  |   { | ||
|  |     names: ['key', 'k'], | ||
|  |     type: 'string', | ||
|  |     help: 'Path where public key will go', | ||
|  |     default: 'public.key', | ||
|  |   }, | ||
|  |   { | ||
|  |     names: ['private', 'p'], | ||
|  |     type: 'string', | ||
|  |     help: 'Path where private key will go', | ||
|  |     default: 'private.key', | ||
|  |   }, | ||
|  | ]; | ||
|  | 
 | ||
|  | type OptionsType = { | ||
|  |   key: string; | ||
|  |   private: string; | ||
|  | }; | ||
|  | 
 | ||
|  | const cliOptions = getCliOptions<OptionsType>(OPTIONS); | ||
|  | go(cliOptions).catch(error => { | ||
|  |   console.error('Something went wrong!', getPrintableError(error)); | ||
|  | }); | ||
|  | 
 | ||
|  | async function go(options: OptionsType) { | ||
|  |   const { key: publicKeyPath, private: privateKeyPath } = options; | ||
|  |   const { publicKey, privateKey } = keyPair(); | ||
|  | 
 | ||
|  |   await Promise.all([ | ||
|  |     writeHexToPath(publicKeyPath, publicKey), | ||
|  |     writeHexToPath(privateKeyPath, privateKey), | ||
|  |   ]); | ||
|  | } |