anchor.diff:          .toString();
   
       // TODO: is ecpEndpoint used?
  -    print(ecpEndpoint);
   
       // TODO: base64EncodedWithEncryptedPassword has the incorrect value
       // structure of call is correct
  
positive.code:   }
  }
  
  void doLogin(String email, String password) async {
    final publicKeyFile = await rootBundle.loadString('assets/public_key.txt');
    final rsaParser = RSAKeyParser();
    final RSAPublicKey publicKey = rsaParser.parse(publicKeyFile);
  
    final encrypter = Encrypter(RSA(publicKey: publicKey));
    Encrypted encryptedPassword = encrypter.encrypt(password);
    //print(encryptedPassword.base64);
  
    Codec<String, String> stringToBase64 = utf8.fuse(base64);
    final String userPassword = email + ':' + encryptedPassword.base64;
    final String base64EncodedWithEncryptedPassword =
        stringToBase64.encode(userPassword);
    //print('encoded user:pass ' + base64EncodedWithEncryptedPassword);
    String ecpIdpPackage;
    String ecpEndpoint;
  
    var cipher = PKCS1Encoding(RSAEngine());
    cipher.init(true, pc.PublicKeyParameter<RSAPublicKey>(publicKey));
    Uint8List output = cipher.process(utf8.encode(password));
    var base64EncodedText = base64Encode(output);
    final String res = stringToBase64.encode(email + ':' + base64EncodedText);
    print(res);
  
    // Step 1
    // get ECP endpoint URL
    getResponseConsumerUrl('get response consumer URL', ecpTokenUrl, headerValues)
        .then((response) {
      ecpIdpPackage = response; // save for use in request to ECP
      print('ecpIdPackage ' + ecpIdpPackage);
      // parse SOAP XML for 'responseConsumerURL' attribute value
      var document = xml.parse(response);
  
  
negative.code: 
  import 'package:encrypt/encrypt.dart';
  import 'package:flutter/material.dart';
  import 'package:http/http.dart' as http;
  import 'package:pointycastle/asymmetric/oaep.dart';
  import 'package:pointycastle/pointycastle.dart' as pc;
  import 'package:xml/xml.dart' as xml;
  
  // QA Environment
  