createAuthMessage static method
String
createAuthMessage(
- String authId,
- String helloNonce,
- HashMap authExtra,
- Extra challengeExtra, {
- AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8,
This creates the SCRAM authmessage according to the WAMP-SCRAM specs
Implementation
static String createAuthMessage(
String authId, String helloNonce, HashMap authExtra, Extra challengeExtra,
{AuthenticationStringEncoding stringEncoding =
AuthenticationStringEncoding.utf8}) {
var clientFirstBare = 'n=${Saslprep.saslprep(authId)},r=$helloNonce';
var serverFirst =
'r=${challengeExtra.nonce!},s=${challengeExtra.salt!},i=${challengeExtra.iterations}';
String? cBindName = authExtra['channel_binding'];
String? cBindData = authExtra['cbind_data'];
var cBindFlag = cBindName == null ? 'n' : 'p=$cBindName';
var cBindInput =
'$cBindFlag,,${cBindData == null ? '' : base64.decode(cBindData) as String}';
var clientFinalNoProof =
'c=${base64.encode(CraAuthentication.encodeString(cBindInput, stringEncoding: stringEncoding))},r=${authExtra['nonce']}';
return '$clientFirstBare,$serverFirst,$clientFinalNoProof';
}