| 
									
										
										
										
											2019-10-15 04:12:46 -06:00
										 |  |  | // Copyright 2016-2018 AJ ONeal. All rights reserved
 | 
					
						
							|  |  |  | /* This Source Code Form is subject to the terms of the Mozilla Public | 
					
						
							|  |  |  |  * License, v. 2.0. If a copy of the MPL was not distributed with this | 
					
						
							|  |  |  |  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
					
						
							|  |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-28 15:42:32 -06:00
										 |  |  | module.exports = function (bitlen, exp) { | 
					
						
							| 
									
										
										
										
											2019-10-15 04:12:46 -06:00
										 |  |  | 	var ursa; | 
					
						
							|  |  |  | 	try { | 
					
						
							|  |  |  | 		ursa = require('ursa'); | 
					
						
							|  |  |  | 	} catch (e) { | 
					
						
							|  |  |  | 		ursa = require('ursa-optional'); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	var keypair = ursa.generatePrivateKey(bitlen, exp); | 
					
						
							|  |  |  | 	var result = { | 
					
						
							| 
									
										
										
										
											2020-07-28 15:42:32 -06:00
										 |  |  | 		privateKeyPem: keypair.toPrivatePem().toString('ascii').trim() | 
					
						
							| 
									
										
										
										
											2019-10-15 04:12:46 -06:00
										 |  |  | 	}; | 
					
						
							|  |  |  | 	return result; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (require.main === module) { | 
					
						
							|  |  |  | 	var keypair = module.exports(2048, 0x10001); | 
					
						
							|  |  |  | 	console.info(keypair.privateKeyPem); | 
					
						
							|  |  |  | } |