47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | var RSA = require('../').RSA; | ||
|  | 
 | ||
|  | RSA.generateKeypair(null, function (err, keys) { | ||
|  |   if (!keys || !keys.privateKeyJwk) { | ||
|  |     throw new Error("Expected privateKeyJwk, but it is missing"); | ||
|  |   } | ||
|  | 
 | ||
|  |   if ( | ||
|  |      keys.publicKeyJwk | ||
|  |   || keys.privateKeyPem | ||
|  |   || keys.publicKeyPem | ||
|  |   || keys.thumbprint | ||
|  |   || keys._ursa | ||
|  |   || keys._forge | ||
|  |   ) { | ||
|  |     console.error(Object.keys(keys)); | ||
|  |     throw new Error("Got unexpected keys"); | ||
|  |   } | ||
|  | 
 | ||
|  |   var options = { | ||
|  |     public: true        // export public keys
 | ||
|  |   , pem: true           // export pems
 | ||
|  |   , jwk: false          // export jwks
 | ||
|  |   , internal: true      // preserve internal intermediate formats (_ursa, _forge)
 | ||
|  |   //, thumbprint: true    // JWK sha256 thumbprint
 | ||
|  |   , bitlen: 2048 | ||
|  |   , exp: 65537 | ||
|  |   }; | ||
|  |   RSA.generateKeypair(options, function (err, keys) { | ||
|  |     if ( | ||
|  |         (keys.publicKeyJwk && !keys.thumbprint) | ||
|  |     || !keys.privateKeyPem | ||
|  |     || !keys.publicKeyPem | ||
|  |     //|| !keys.thumbprint
 | ||
|  |     || !(keys._ursa || keys._forge) | ||
|  |     ) { | ||
|  |       console.error(Object.keys(keys)); | ||
|  |       throw new Error("Missing expected keys"); | ||
|  |     } | ||
|  | 
 | ||
|  |     console.log('All is well!'); | ||
|  |   }); | ||
|  | 
 | ||
|  | }); |