Пример #1
0
        public void TestDecrypt()
        {
            string sIn     = @"<?xml version=""1.0""?>
<AccountModel xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
  <id>2022</id>  
  <name>xero1</name> 
  <apikey>DFECQTB5KOK7IHIGGW5S2KXBNLLAV8</apikey>  
  <secret>MWOWLLN0LOGVUPF9BLBUGBM0EOCLWR</sercet> 
  <limitDays>0</limitDays>  
  <accountTypeName>XERO</accountTypeName> 
  <displayName>[email protected]</displayName>  
  <publicCert>-----BEGIN CERTIFICATE-----MIICaDCCAdGgAwIBAgIJAI88EON8XhSeMA0GCSqGSIb3DQEBBQUAME0xCzAJBgNVBAYTAlVLMQ4wDAYDVQQKDAVlemJvYjEOMAwGA1UEAwwFZXpib2IxHjAcBgkqhkiG9w0BCQEWD2V6Ym9iQGV6Ym9iLmNvbTAeFw0xNDA3MjExMTQ2NDdaFw0xOTA3MjAxMTQ2NDdaME0xCzAJBgNVBAYTAlVLMQ4wDAYDVQQKDAVlemJvYjEOMAwGA1UEAwwFZXpib2IxHjAcBgkqhkiG9w0BCQEWD2V6Ym9iQGV6Ym9iLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAx85lHKJsulizOsWLLVW/NdF5fh4WJwXwwbmXRweTlvITHkfoJn7Kh6WeFj23QMspLZuN88L55dJdM7PUFgMS8PRO8ul2MegJ3oTOceIke0Ks49RH2kaeXvHt7xY+nAvgKZuqVlz9sjijkcQLUJ/AuNWsMvjkAooxns4kDB4gS48CAwEAAaNQME4wHQYDVR0OBBYEFDAtGGKmWyhFxidHpPO0VzWtRi2uMB8GA1UdIwQYMBaAFDAtGGKmWyhFxidHpPO0VzWtRi2uMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARHwqcwcDhiRNrVPWJZmlhMnOmftcfNcP3ak0lyBIe8SrSxLvHmWRonZa84G1/S/u5aaa/Kh2LX3LN1ypj1DEQJfsi8lwj7Lk9NiJQLi66azs73Z6gdVNAJ0KapVt6S81yV9Hf1xs5qRZU/+Ex/OZ+12QMGpe4X7bF8tOXarBROQ=-----END CERTIFICATE-----</publicCert>  <privateKey>-----BEGIN RSA PRIVATE KEY-----MIICXwIBAAKBgQDHzmUcomy6WLM6xYstVb810Xl+HhYnBfDBuZdHB5OW8hMeR+gmfsqHpZ4WPbdAyyktm43zwvnl0l0zs9QWAxLw9E7y6XYx6AnehM5x4iR7Qqzj1EfaRp5e8e3vFj6cC+Apm6pWXP2yOKORxAtQn8C41awy+OQCijGeziQMHiBLjwIDAQABAoGBAJiVhaHYaC/mjPjU4vQ8B0mSLrWhREmIv9MxZ9VWc99R/kehoifDq+brE07o0okonMm3gTAmNbDMdWCGc/BbaJo/8amH3pgbCtEfLUKN7bokiREUQG8rSOxXkjUXAesrLUI+5ZVKQzNPKB20xAEF9vmj/+Ew4q/aaOKSKiw8WHgBAkEA79Jah/WpFWkau8gSGLsoSu7NHbNPNMxy/zR4Sa8uCfX4jdht3hgVpIeDRfqr3gCyVdmC3c1MvT8mVLDinAxOGQJBANVI/JZ+aB5l8L82UwtK1nmwuEgrHS2vwTlxYPtraIn5WHB7DZIWEv21XJXKT+sKAxZxwtf1eo/uOvR5Y+jYy+cCQQC8H2VWu5TsL6uB3Bqd/cpIpXSPNMYQI8SdfrpRCrLxq1pTYpAkpP3tN0P5k/5XwnIiN+KZPN9SoIPf8XWBdYGZAkEArDvbVcBQXjPd/NtmpljR58Uwm37NekZSmAuZ0I5FBh5oL7T/GXhf76dUU9XjQZ99LNPDD1g5mB8+VovshW0FAwJBAKEbR4WNRWgoc0qV2rJ8gUpCXns9yjVEPTkxyDUGIMn/qTHAicTdl0G4NVJ6H9AYrIvFa4ICwOninM+6k/AiRg4=-----END RSA PRIVATE KEY-----</privateKey>
</AccountModel>";
            var    sOutEn  = new Encrypted(new Serialized(sIn));
            string sOutDec = Encrypted.Decrypt(sOutEn);

            //string sOutput = null;
            ////xero
            //string sInput  = "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";
            ////not xero
            //string sInput2 = "C0/PLr+re1WYbSklttMpN43371tjwPz5G/zRdZgtika0HJyXaOvvimQX/Y+8jYj5iAWuST9WIh6vRp6ZDC6UVL2ahn27SVIM94HkYcTf6bcAMlwGlXVgp7gAzSM0EY2kUv/JJ3loK5KEZnMGdOCkn62c7Gj1Uj829SqUstX1aBgwxlpnYzPKKRFQ1SCXXvb40MKvVAe68p69Uq33wQJYXECV3DjpYD7U60WkLeHKClz8ZrwS7YqpcQLcfgnTgmLyPeGxClc0nu8aHB7SwvGWEXU0kbS8Vo0qBBeOCVusFH9v5ns8l5XqFd38fUZzxIkxhVDS4wNOFBpnwO1eNl6vhHxkFQQFSXXlw2HMi3P86LXTDrLh95ozcdt6taSP4BxQALRWUQD8T9UOXiOyK3i3G6S3+ZYvtPiiG25jWvtjMO4CullL5WrIwxX/vJJXxfpoq2u5H8CtmfDpWCoGBL/wlrlrpfbpId8FkMtzEzElQ1wu00DAEfYRUsJACuWMcFsR9+cimVXJCo+4ZXqXoKsxa28FiVXZbkpi7tLoEV4FmNOZPzSHA+3PhuabCJh176xasjkWmw9c+0jowArfPBiSYY84HykegweBVbUyUeyKIQ5gE0XXyyTROdzqtORPdbkzPcVNpqmvcn7Nz0E5dgThx/04zRC6K2IFjOAsY23WQDRV3mjlgCKnY43sYMh5/TsU3PzvPD/WsGs7GjpFmxeml7+j1hB/o6MYCznKWjirQjIiUuYXE8XpaE/nvIxQLuEA/YAPq/kUI+PuXyhOR9WKE/XoQ2WYv0KOJ3Ct4eZy+43LwmbVHBGk8//Pp0kZwmbOpWT6CqSd32zTIDxhZL6yEbkjt9wWP5h0yZ4aze64JC8t7f4xjLimn90ocYp/lvgtN9JvOTfik5fIazhOCPeWAh/Zm+cFNiPH++3NlmNcwB1qzmhvKJ+RzodAL16D7tOQF49YyVt8VuJG+rlXRlx12AL80OkH5Q1KXjP2AGbRSkc7QLCYzxd0NVX2GGPN30OmZ2nQGy1ze689h86LsZDjpUCXR01anflqBOYblRenIGqIwEXJXtbqVujriANlZhhSK6SAByjK7WfdTkgbGM2hFl9pjZPPcopjdPCgJdLJ6C7Oo3gyjkH3vL8qe4idcmi0";
            //try
            //{
            //	sOutput = Encrypted.Decrypt(sInput2);
            //	sOutput = Encrypted.Decrypt(sInput);
            //}
            //catch (Exception e)
            //{
            //	m_oLog.Warn(e, "Failed to decrypt.");
            //	sOutput = string.Empty;
            //} // try
            Console.WriteLine(sOutDec);
            Assert.IsFalse(String.IsNullOrEmpty(sOutDec));
        }
Пример #2
0
        public void test_refresh_not_mfa()
        {
            var m = new YodleeMain();

            m.LoginUser("*****@*****.**", Encrypted.Decrypt("sykuYcJcd+ShmykTY/pi0qBpRJK0a9HBiiw9NN0Dgjg="));
            m.RefreshNotMFAItem(10334329, true);
        }
Пример #3
0
        public Encrypted <ScenarioInfo> GetScenarioInfo(Encrypted <string> scenarioId)
        {
            return(Handle((user) =>
            {
                var scenario = GetScenario(scenarioId.Decrypt(_secretKey));
                var executeScenarioAction = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute);
                var viewScenarioAction = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue);

                var currentValue = string.Empty;
                var canSetValue = true;
                var isAvailable = true;
                try
                {
                    currentValue = scenario.CalculateCurrentValue(viewScenarioAction, null);
                    canSetValue = scenario.IsAccessAvailable(executeScenarioAction);
                }
                catch
                {
                    isAvailable = false;
                    canSetValue = false;
                    currentValue = scenario.ValueType.DefaultValue;
                }

                return new Encrypted <ScenarioInfo>(new ScenarioInfo()
                {
                    CurrentValue = currentValue,
                    ScenarioId = scenario.Id,
                    ValueType = scenario.ValueType,
                    VisualSettings = GetVisualSettings(user, scenario.Id),
                    Name = scenario.Name,
                    OnlyGetValue = !canSetValue,
                    IsAvailable = isAvailable && scenario.GetIsAvailable()
                }, _secretKey);
            }));
        }
Пример #4
0
 public Encrypted <string> GetScenarioValue(Encrypted <string> scenarioId)
 {
     return(Handle((user) => {
         var scenarioActionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue);
         return new Encrypted <string>(GetScenario(scenarioId.Decrypt(_secretKey)).CalculateCurrentValue(scenarioActionSource, null), _secretKey);
     }));
 }
Пример #5
0
 public EncryptedList <StatisticsItem> GetStatistics(DateTime since, DateTime to, Encrypted <StatisticsScenarioInfo> encryptedInfo)
 {
     return(Handle((user) => {
         var info = encryptedInfo.Decrypt(_secretKey);
         return new EncryptedList <StatisticsItem>(StatisticsManager.GetItems(info, since, to, new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue)), _secretKey);
     }));
 }
Пример #6
0
        public static SessionToken Deserialize(string sToken)
        {
            try {
                string sDecoded = Encrypted.Decrypt(Convert.FromBase64String(sToken));

                string[] ary = sDecoded.Split(new string[] { Separator }, StringSplitOptions.RemoveEmptyEntries);

                if (ary.Length != 4)
                {
                    ms_oLog.Alert(
                        "Supplied token '{0}' has been de-serialised successfully to '{1}' but contains unexpected number of fields.",
                        sToken,
                        sDecoded
                        );

                    return(null);
                }                 // if

                return(new SessionToken(ary[0], ary[1], ary[2], ary[3]));
            }
            catch (Exception e) {
                ms_oLog.Alert(e, "Failed to de-serialise session token from '{0}'.", sToken);
                return(null);
            }     // try
        }         // Deserialize
Пример #7
0
        public ActionResult RefreshYodlee(string displayName = null)
        {
            var yodleeAccount = this.yodleeAccountsRepository.Search(this.customer.Id);
            var yodleeMain    = new YodleeMain();

            var oEsi = new YodleeServiceInfo();

            var yodlees = this.customer.CustomerMarketPlaces
                          .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId)
                          .ToList();

            if (yodlees.Count == 0)
            {
                return(View(new { error = "Error loading bank accounts" }));
            }

            var lu = yodleeMain.LoginUser(yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password));

            if (lu == null)
            {
                return(View(new { error = "Error logging to yodlee account" }));
            }

            MP_CustomerMarketPlace umi = displayName == null ? yodlees[0] : yodlees.FirstOrDefault(y => y.DisplayName == displayName);             //TODO Currently refreshes the first one

            if (umi == null)
            {
                return(View(new { error = "Account not found" }));
            }
            var    callback = Url.Action("RecheckYodleeCallback", "YodleeMarketPlaces", new { Area = "Customer" }, "https") + "/" + umi.Id;
            string finalUrl = yodleeMain.GetEditAccountUrl(Serialized.Deserialize <YodleeSecurityInfo>(umi.SecurityData).ItemId, callback, yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password));

            return(Redirect(finalUrl));
        }
Пример #8
0
        }         // CheckHmrc

        private bool IsSameMarketPlace(int nMpID, byte[] oSecData, MP_MarketplaceType oMp, string sShopID)
        {
            VendorInfo vi = Integration.ChannelGrabberConfig.Configuration.Instance.GetVendorInfo(oMp.Name);

            if (vi == null)
            {
                return(false);
            }

            try {
                var am = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(oSecData));
                return(am.Fill().UniqueID() == sShopID);
            } catch (Exception e) {
                string sXml = System.Text.Encoding.Default.GetString(oSecData);

                new SafeILog(this).Warn(
                    e,
                    "Failed to de-serialize security data. Marketplace ID = {0}, Security data: {1}",
                    nMpID,
                    sXml
                    );

                return(false);
            }     // try
        }         // IsSameMarketPlace
Пример #9
0
        public ViewResult YodleeCallback()
        {
            Log.InfoFormat("Got to yodlee's callback with params:{0}", HttpContext.Request.Params);
            foreach (string key in HttpContext.Request.Params.Keys)
            {
                if (key == "oauth_error_code")
                {
                    Log.WarnFormat("Yodlee returned an error. oauth_error_code:{0} oauth_error_problem:{1}", HttpContext.Request.Params["oauth_error_code"], HttpContext.Request.Params["oauth_error_problem"]);
                    if (HttpContext.Request.Params["oauth_error_code"] == "407")
                    {
                        return(View(new { error = "Failure linking account" }));
                    }
                }
            }

            var yodleeAccount = this.yodleeAccountsRepository.Search(this.customer.Id);

            string decryptedPassword = Encrypted.Decrypt(yodleeAccount.Password);
            string displayname;
            long   csId;

            var yodleeMain = new YodleeMain();
            var oEsi       = new YodleeServiceInfo();

            var items = this.customer.CustomerMarketPlaces
                        .Where(mp => mp.Marketplace.InternalId == oEsi.InternalId)
                        .Select(mp => Serialized.Deserialize <YodleeSecurityInfo>(mp.SecurityData).ItemId).ToList();

            long itemId = yodleeMain.GetItemId(yodleeAccount.Username, decryptedPassword, items, out displayname, out csId);

            if (itemId == -1)
            {
                return(View(new { error = "Failure linking account" }));
            }

            int marketPlaceId = this.mpTypes
                                .GetAll()
                                .First(a => a.InternalId == oEsi.InternalId)
                                .Id;

            var securityData = new YodleeSecurityInfo
            {
                ItemId        = itemId,
                Name          = yodleeAccount.Username,
                Password      = yodleeAccount.Password,
                MarketplaceId = marketPlaceId,
                CsId          = csId
            };

            var yodleeDatabaseMarketPlace = new YodleeDatabaseMarketPlace();

            var marketPlace = this.dbHelper.SaveOrUpdateCustomerMarketplace(displayname, yodleeDatabaseMarketPlace, securityData, this.customer);

            Log.InfoFormat("Added or updated yodlee marketplace: {0}", marketPlace.Id);

            this.serviceClient.Instance.UpdateMarketplace(this.context.Customer.Id, marketPlace.Id, true, this.context.UserId);

            return(View(YodleeAccountModel.ToModel(marketPlace, this.yodleeBanksRepository)));
        }
Пример #10
0
 public void ExecuteScenario(Encrypted <string> scenarioId, Encrypted <string> value)
 {
     Handle((user) =>
     {
         var scenario     = GetScenario(scenarioId.Decrypt(_secretKey));
         var actionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute);
         scenario.Execute(actionSource, value.Decrypt(_secretKey), out string executionId);
     });
 }
Пример #11
0
        }         // GetDisplayName

        private void GetPassword()
        {
            try {
                Password = Encrypted.Decrypt(m_sRawPassword);
            }
            catch (Exception e) {
                throw new StrategyWarning(this, "Failed to get password from " + m_sRawPassword, e);
            }
        }         // GetPassword
Пример #12
0
        public void can_encrypt_and_decrypt()
        {
            const string text      = "Hello World";
            var          encrypted = new Encrypted(text);
            var          decrypted = encrypted.Decrypt();

            Assert.That(decrypted, Is.EqualTo(text));
            Assert.That(encrypted.ToString(), Is.Not.EqualTo(text));
        } // can_encrypt_and_decrypt() {
Пример #13
0
 private string TryDecrypt(byte[] oEncoded)
 {
     try {
         return(Encrypted.Decrypt(oEncoded));
     }
     catch (Exception) {
         return("FAILED TO DECRYPT");
     } // try
 }     // TryDecrypt
Пример #14
0
        }         // GetCustomerID

        private void GetDisplayName()
        {
            try {
                m_sDisplayName = Encrypted.Decrypt(m_sRawDisplayName);
            }
            catch (Exception e) {
                throw new StrategyWarning(this, "Failed to get display name from " + m_sRawDisplayName, e);
            }
        }         // GetDisplayName
Пример #15
0
 private void GetCustomerID()
 {
     try {
         CustomerID = int.Parse(Encrypted.Decrypt(m_sRawCustomerID));
     }
     catch (Exception e) {
         throw new StrategyWarning(this, "Failed to get customer ID from " + m_sRawCustomerID, e);
     }
 }         // GetCustomerID
Пример #16
0
 public void AsyncExecuteScenarioParallel(Encrypted <string> scenarioId, Encrypted <string> value)
 {
     Handle((user) =>
     {
         var scenario     = GetScenario(scenarioId.Decrypt(_secretKey));
         var actionSource = new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.Execute);
         scenario.ExecuteAsyncParallel(actionSource, value.Decrypt(_secretKey), null);
     });
 }
Пример #17
0
 public Encrypted <AddictionalData> SyncAddictionalData(Encrypted <AddictionalData> encryptedData)
 {
     return(Handle((user) => {
         WarningHandler.InfoFormat("User AddictionalData sync: [{0}];", user.Name);
         var data = encryptedData.Decrypt(_secretKey);
         AddictionalDataManager.Handle(data, user);
         var preparedData = AddictionalDataManager.Prepare(user);
         return new Encrypted <AddictionalData>(preparedData, _secretKey);
     }));
 }
Пример #18
0
        }         // encrypt clicked

        private void btnDecrypt_Click(object sender, EventArgs e)
        {
            try {
                this.txtOutput.Text = Encrypted.Decrypt(this.txtInput.Text);
            } catch (Exception ex) {
                this.txtOutput.Text = ex.Message;
            }             // try

            this.txtOutput.Update();
        }         // decrypt clicked
Пример #19
0
 public Encrypted <StatisticsScenarioInfo> GetStatisticsInfoForScenario(Encrypted <ScenarioInfo> info)
 {
     return(Handle((user) => {
         var scenarioId = info.Decrypt(_secretKey).ScenarioId;
         var scenario = ScenariosRepository.Scenarios.FirstOrDefault(x => x.Id == scenarioId);
         if (scenario == null)
         {
             return null;
         }
         return new Encrypted <StatisticsScenarioInfo>(StatisticsManager.GetStatisticsInfoForScenario(scenario, new ScenarioActionSource(user, ScenarioStartupSource.Network, ScenarioAction.ViewValue)), _secretKey);
     }));
 }
Пример #20
0
        public static string Stringify(this YodleeSecurityInfo oInfo)
        {
            if (oInfo == null)
            {
                return(string.Empty);
            }

            return(string.Format(
                       "Name: {0}, ItemID: {1}, CsId: {2}, Password: {3}",
                       oInfo.Name, oInfo.ItemId, oInfo.CsId, Encrypted.Decrypt(oInfo.Password)
                       ));
        } // Stringify
Пример #21
0
        private static YodleeAccounts CreateUnallocatedAccount()
        {
            YodleeAccounts account = AccountRepository.CreateAccount(YodleePasswordGenerator.GenerateRandomPassword);

            log.InfoFormat("Registering yodlee user: {0}", account.Username);
            if (!yodleeMain.RegisterUser(account.Username, Encrypted.Decrypt(account.Password), account.Username))
            {
                AccountRepository.Delete(account);
            }

            return(account);
        }
Пример #22
0
        }         // constructor

        public override IMarketPlaceSecurityInfo RetrieveCustomerSecurityInfo(
            int customerMarketPlaceId
            )
        {
            var account = GetDatabaseCustomerMarketPlace(customerMarketPlaceId);

            try {
                return(Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(account.SecurityData)));
            } catch (Exception e) {
                throw new ApiException(string.Format("Failed to de-serialise security data for marketplace {0} ({1})",
                                                     account.DisplayName, account.Id), e);
            }     // try
        }         // RetrieveSecurityInfo
Пример #23
0
        public void CanEncryptWithStringExtension()
        {
            RsaUtils.KeyLength      = RsaKeyLengths.Bit1024;
            RsaUtils.DefaultKeyPair = RsaUtils.CreatePublicAndPrivateKeyPair();

            string TestStart = "Mr. Watson--come here--I want to see you.";
            string Encrypted;
            string Decrypted;

            Encrypted = TestStart.Encrypt();
            Assert.AreNotEqual(Encrypted, TestStart);

            Decrypted = Encrypted.Decrypt();
            Assert.AreEqual(Decrypted, TestStart);
        }
Пример #24
0
        }         // constructor

        protected virtual void ReLoad()
        {
            m_oData.Clear();
            m_oByID.Clear();

            DB.ForEachRowSafe(
                (sr, bRowsetStart) => {
                Variables nVar;
                string sName = sr["Name"];

                if (Enum.TryParse(sName, out nVar))
                {
                    string sValue = sr["Value"];

                    if (sr["IsEncrypted"])
                    {
                        try {
                            sValue = Encrypted.Decrypt(sValue);
                        }
                        catch (Exception e) {
                            Log.Alert(e, "Failed to decrypt a value of {0}.", nVar);
                        }                         // try
                    }                             // if

                    var vv = new VariableValue(sr["ID"], nVar, sValue, sr["Description"], Log);

                    m_oData[vv.Name] = vv;
                    m_oByID[vv.ID]   = vv;
                }
                else
                {
                    Log.Warn("Unknown configuration variable detected: {0}", sName);
                }

                return(ActionResult.Continue);
            },
                "GetAllConfigurationVariables",
                CommandSpecies.StoredProcedure
                );

            m_oLastReloadTime = DateTime.UtcNow;

            VariableValue.LogVerbosityLevel = UnsafeGet(Variables.VerboseConfigurationLogging)
                                ? LogVerbosityLevel.Verbose
                                : LogVerbosityLevel.Compact;

            m_oUploadLimitations.Load();
        }         // ReLoad
Пример #25
0
 public void SaveVisualSettings(Encrypted <UserVisualSettings> visualSettings)
 {
     Handle((user) =>
     {
         var decryptedVS = visualSettings.Decrypt(_secretKey);
         decryptedVS     = new UserVisualSettings()
         {
             AddictionalData = decryptedVS.AddictionalData,
             VisualIndex     = decryptedVS.VisualIndex,
             ScenarioId      = decryptedVS.ScenarioId,
             UserId          = user.Id
         };
         VisualSettings.Add(decryptedVS);
         VisualSettings.Save();
     });
 }
Пример #26
0
        public long test_get_itemId()
        {
            var    m = new YodleeMain();
            string dName;
            long   csId;

            // halifax "*****@*****.**", Encrypted.Decrypt("D61Ggo7aGrQTD/ZNsnqUfteq4mlqW00xAG1yL8wpfBA="  10321216 WBkLy450
            // dag "*****@*****.**", Encrypted.Decrypt("sykuYcJcd+ShmykTY/pi0qBpRJK0a9HBiiw9NN0Dgjg="
            // mfa "*****@*****.**", Encrypted.Decrypt("qcw25++Ggp8/yi4bNkeB2Q64ABGU5YL+r7DPAZDrkkE="
            var  pass   = Encrypted.Decrypt("SH24xKutqoIefQ9oz2gjD9rITakU29ZXQpGA9SY8UMw=");
            long itemId = m.GetItemId("*****@*****.**", pass, null, out dName, out csId);

            Console.WriteLine("{0} {1}", dName, itemId);
            Assert.That(itemId != -1);
            return(itemId);
        }
Пример #27
0
        }         // ToModel

        public static AccountModel ToModel(IDatabaseCustomerMarketPlace account)
        {
            try {
                var m = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(account.SecurityData));
                m.id = account.Id;
                return(m);
            } catch (Exception e) {
                throw new ApiException(
                          string.Format(
                              "Failed to de-serialize security data for marketplace {0} ({1})",
                              account.DisplayName,
                              account.Id
                              ),
                          e
                          );
            }     // try
        }         // ToModel
Пример #28
0
        public void test_get_data_for_item()
        {
            var m    = new YodleeMain();
            var pass = Encrypted.Decrypt("SH24xKutqoIefQ9oz2gjD9rITakU29ZXQpGA9SY8UMw=");

            m.LoginUser("*****@*****.**", pass);
            GetBankData g = new GetBankData();
            string      s1;
            string      err;
            Dictionary <BankData, List <BankTransactionData> > data;
            //var itemId = test_get_itemId();
            long itemId = 10403741;

            g.GetBankDataForItem(m.UserContext, itemId, out s1, out err, out data);

            Console.WriteLine("info {0}, errors:{1}, count of data:{2}", s1, err, data.Keys.Count);
        }
Пример #29
0
        public ActionResult TryRecheckYodlee(int umi)
        {
            var mp            = _customerMarketplaces.Get(umi);
            var yodleeMain    = new YodleeMain();
            var yodleeAccount = _yodleeAccountsRepository.Search(mp.Customer.Id);

            if (yodleeAccount == null)
            {
                return(View(new { error = "Yodlee Account was not found" }));
            }

            var  securityInfo = Serialized.Deserialize <YodleeSecurityInfo>(mp.SecurityData);
            long itemId       = securityInfo.ItemId;
            var  lu           = yodleeMain.LoginUser(yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password));

            if (lu == null)
            {
                return(View(new { error = "Error Loging to Yodlee Account" }));
            }

            if (!yodleeMain.IsMFA(itemId))
            {
                bool isRefreshed;
                try {
                    isRefreshed = yodleeMain.RefreshNotMFAItem(itemId);
                } catch (RefreshYodleeException ex) {
                    Log.Warn(ex, "TryRecheckYodlee exception");
                    return(View(new { error = ex.ToString() }));
                }
                if (isRefreshed)
                {
                    var customer = mp.Customer;
                    m_oServiceClient.Instance.UpdateMarketplace(customer.Id, umi, true, _context.UserId);
                    return(View(new { success = true }));
                }

                return(View(new { error = "Account wasn't refreshed successfully" }));
            }

            //MFA Account for testing redirecting to Yodlee LAW
            var    callback = Url.Action("YodleeCallback", "YodleeRecheck", new { Area = "Underwriter" }, "https") + "/" + umi;
            string finalUrl = yodleeMain.GetEditAccountUrl(securityInfo.ItemId, callback, yodleeAccount.Username, Encrypted.Decrypt(yodleeAccount.Password));

            return(Redirect(finalUrl));
        }         // TryRecheckYodlee
Пример #30
0
        }         // CheckEkm

        private void CheckHmrc(LoadCustomerMarketplaceSecurityData.ResultRow hmrc)
        {
            AccountModel oSecInfo;

            try {
                oSecInfo = Serialized.Deserialize <AccountModel>(Encrypted.Decrypt(hmrc.SecurityData));
            }
            catch (Exception e) {
                Log.Alert(
                    e,
                    "Failed to de-serialise security data for HMRC marketplace {0} ({1}).",
                    hmrc.DisplayName,
                    hmrc.CustomerMarketplaceID
                    );

                return;
            }             // try

            if ((oSecInfo.login == m_oCustomerData.Mail) && (oSecInfo.password == VendorInfo.TopSecret))
            {
                if (hmrc.UpdatingStart.HasValue && hmrc.UpdatingStart.Value.AddDays(1) < DateTime.UtcNow)
                {
                    Result.HasUploadedHmrc = true;
                }
                return;
            }

            try {
                var ctr = new Connector(oSecInfo.Fill(), Log, m_oCustomerData.Id, m_oCustomerData.Mail);

                if (ctr.Init())
                {
                    ctr.Run(true);
                    ctr.Done();
                }                 // if
            }
            catch (InvalidCredentialsException) {
                Log.Debug("Invalid credentials detected for linked HMRC account {0} ({1}).", hmrc.CustomerMarketplaceID, oSecInfo.login);
                Result.LinkedHmrc.Add(oSecInfo.login);
            }
            catch (Exception e) {
                Log.Warn(e, "Failed to validate credentials for linked HMRC account {0} ({1}).", hmrc.CustomerMarketplaceID, oSecInfo.login);
            }     // try
        }         // CheckHmrc