36 lines
		
	
	
		
			918 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			918 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright (c) 2021, Oracle and/or its affiliates.
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| const Packet = require('../packets/packet');
 | |
| 
 | |
| class AuthNextFactor {
 | |
|   constructor(opts) {
 | |
|     this.pluginName = opts.pluginName;
 | |
|     this.pluginData = opts.pluginData;
 | |
|   }
 | |
| 
 | |
|   toPacket(encoding) {
 | |
|     const length = 6 + this.pluginName.length + this.pluginData.length;
 | |
|     const buffer = Buffer.allocUnsafe(length);
 | |
|     const packet = new Packet(0, buffer, 0, length);
 | |
|     packet.offset = 4;
 | |
|     packet.writeInt8(0x02);
 | |
|     packet.writeNullTerminatedString(this.pluginName, encoding);
 | |
|     packet.writeBuffer(this.pluginData);
 | |
|     return packet;
 | |
|   }
 | |
| 
 | |
|   static fromPacket(packet, encoding) {
 | |
|     packet.readInt8(); // marker
 | |
|     const name = packet.readNullTerminatedString(encoding);
 | |
|     const data = packet.readBuffer();
 | |
|     return new AuthNextFactor({
 | |
|       pluginName: name,
 | |
|       pluginData: data,
 | |
|     });
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = AuthNextFactor;
 |