auth_next_factor.js 917 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright (c) 2021, Oracle and/or its affiliates.
  2. 'use strict';
  3. const Packet = require('../packets/packet');
  4. class AuthNextFactor {
  5. constructor(opts) {
  6. this.pluginName = opts.pluginName;
  7. this.pluginData = opts.pluginData;
  8. }
  9. toPacket(encoding) {
  10. const length = 6 + this.pluginName.length + this.pluginData.length;
  11. const buffer = Buffer.allocUnsafe(length);
  12. const packet = new Packet(0, buffer, 0, length);
  13. packet.offset = 4;
  14. packet.writeInt8(0x02);
  15. packet.writeNullTerminatedString(this.pluginName, encoding);
  16. packet.writeBuffer(this.pluginData);
  17. return packet;
  18. }
  19. static fromPacket(packet, encoding) {
  20. packet.readInt8(); // marker
  21. const name = packet.readNullTerminatedString(encoding);
  22. const data = packet.readBuffer();
  23. return new AuthNextFactor({
  24. pluginName: name,
  25. pluginData: data
  26. });
  27. }
  28. }
  29. module.exports = AuthNextFactor;