onSasl2Success method

  1. @override
Future<Result<bool, NegotiatorError>> onSasl2Success(
  1. XMLNode response
)
override

Called by the SASL2 negotiator when the SASL2 negotiations are done. response is the entire response nonza. This method is only called when the previous element contains an item with xmlns equal to negotiatingXmlns.

Implementation

@override
Future<Result<bool, NegotiatorError>> onSasl2Success(XMLNode response) async {
  // When we're done with SASL2, check the additional data to verify the server
  // signature.
  state = NegotiatorState.done;
  final additionalData = response.firstTag('additional-data');
  if (additionalData == null) {
    return Result(NoAdditionalDataError());
  }

  if (!_checkSignature(additionalData.innerText())) {
    return Result(InvalidServerSignatureError());
  }

  return const Result(true);
}