mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			No EOL
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			No EOL
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
| * @description MeshCentral accelerator
 | |
| * @author Ylian Saint-Hilaire
 | |
| * @copyright Intel Corporation 2018-2019
 | |
| * @license Apache-2.0
 | |
| * @version v0.0.1
 | |
| */
 | |
| 
 | |
| /*xjslint node: true */
 | |
| /*xjslint plusplus: true */
 | |
| /*xjslint maxlen: 256 */
 | |
| /*jshint node: true */
 | |
| /*jshint strict: false */
 | |
| /*jshint esversion: 6 */
 | |
| "use strict";
 | |
| 
 | |
| const crypto = require('crypto');
 | |
| var certStore = null;
 | |
| 
 | |
| process.on('message', function (message) {
 | |
|     switch (message.action) {
 | |
|         case 'sign': {
 | |
|             if (typeof message.key == 'number') { message.key = certStore[message.key].key; }
 | |
|             try {
 | |
|                 const sign = crypto.createSign('SHA384');
 | |
|                 sign.end(Buffer.from(message.data, 'binary'));
 | |
|                 process.send(sign.sign(message.key).toString('binary'));
 | |
|             } catch (e) { process.send(null); }
 | |
|             break;
 | |
|         }
 | |
|         case 'setState': {
 | |
|             certStore = message.certs;
 | |
|             break;
 | |
|         }
 | |
|         default: {
 | |
|             console.log('Unknown accelerator action: ' + message.action + '.');
 | |
|             break;
 | |
|         }
 | |
|     }
 | |
| }); |