36 lines
917 B
JavaScript
36 lines
917 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;
|