示例#1
0
        private BankRawMessage GenerateZoneKeys(NetworkManagementModel model, HostCryptography hostCrypt)
        {
            _zoneKeySet1 = hostCrypt.GenerateSetOfZoneKeys(_keKs);
            if (_zoneKeySet1["ErrorCode"] == "00")
            {
                model.Mti           = "0820";
                model.Stan          = _rrnSequence.GetStan;
                model.AddtlDataPriv = _zoneKeySet1["ZAK(ZMK)"].Substring(1) +
                                      _zoneKeySet1["ZPK(ZMK)"].Substring(1);
                model.Mti            = "0820";
                model.FwdInstIdCode  = 579944;
                model.RecvInstIdCode = 61100016;
                model.NetMgtInfoCode = "101";
                int nodeNumber = model.SecControlInfo;
                using (Session2805Data data = new Session2805Data())
                {
                    data.UpdateSession_Send_as2805(_zoneKeySet1["ZPK(LMK)"], _zoneKeySet1["ZPK(ZMK)"],
                                                   _zoneKeySet1["ZPK Check Value"], _zoneKeySet1["ZAK(LMK)"], _zoneKeySet1["ZAK(ZMK)"],
                                                   _zoneKeySet1["ZAK Check Value"], _zoneKeySet1["ZEK(LMK)"], _zoneKeySet1["ZEK(ZMK)"],
                                                   _zoneKeySet1["ZEK Check Value"], nodeNumber.ToString());
                    _log.Info("GenerateZoneKeys under LMK : ZAK : " + _zoneKeySet1["ZAK(LMK)"] + " ZAK check value : " +
                              _zoneKeySet1["ZAK Check Value"] + "ZPK : " + _zoneKeySet1["ZPK(LMK)"] +
                              "ZPK Check Value : " + _zoneKeySet1["ZPK Check Value"]);
                }

                return(new BankRawMessage(_responseBuilder.NetworkManagementAdviceRequest(model)));
            }
            _log.Error("0820 _keKs Validation Request Error");
            throw new InvalidOperationException("0820 _keKs Validation Request Error");
        }
示例#2
0
        public BankRawMessage GenerateSignOnResponse(NetworkManagementModel model)
        {
            HostCryptography hostCrypt = new HostCryptography();

            _log.Debug("Generating Validation Response");
            return(GenerateValidationResponse(model, hostCrypt));
        }
示例#3
0
        private BankRawMessage TranslateZoneKeys(NetworkManagementModel model, HostCryptography hostCrypt)
        {
            var    value      = model.AddtlDataPriv;
            string zak        = value.Substring(0, 32);
            string zpk        = value.Substring(32);
            int    nodeNumber = model.SecControlInfo;

            _log.Info("Keys received under ZMK. ZAK = " + zak + " and ZPK = " + zpk);

            Dictionary <string, string> zoneKeySet2 = hostCrypt.TranslateSetOfZoneKeys(_keKr, zpk, zak, "11111111111111111111111111111111");

            if (zoneKeySet2["ErrorCode"] == "00")
            {
                using (Session2805Data data = new Session2805Data())
                {
                    data.UpdateSession_Recieve_as2805(zoneKeySet2["ZPK(LMK)"], zpk, zoneKeySet2["ZPK Check Value"],
                                                      zoneKeySet2["ZAK(LMK)"], zak, zoneKeySet2["ZAK Check Value"], zoneKeySet2["ZEK(LMK)"],
                                                      zoneKeySet2["ZEK Check Value"], nodeNumber.ToString());
                }
                _log.Info("Sent keys under LMK : ZAK : " + zoneKeySet2["ZAK(LMK)"] + " ZAK check value : " + zoneKeySet2["ZAK Check Value"] + "ZPK : " + zoneKeySet2["ZPK(LMK)"] + "ZPK Check Value : " + zoneKeySet2["ZPK Check Value"]);

                model.Mti            = "0830";
                model.RespCode       = "00";
                model.NetMgtInfoCode = "101";
                model.AddtlDataPriv  = zoneKeySet2["ZAK Check Value"] + zoneKeySet2["ZPK Check Value"];

                _log.Info("Sending key exchange response");
                return(new BankRawMessage(_responseBuilder.NetworkManagementAdviceResponse(model)));
            }

            _log.Error("Error Translating Set of Zone Keys");
            zoneKeySet2.Clear();
            model.RespCode = "30";
            return(new BankRawMessage(_responseBuilder.NetworkManagementAdviceResponse(model)));
        }
示例#4
0
        public void TranslateZoneKeys(string kekr)
        {
            var    value       = this.AddtlDataPriv;
            string zak         = value.Substring(0, 32);
            string zpk         = value.Substring(32);
            int    node_number = this.SecControlInfo;

            _log.Info("Keys received under ZMK. ZAK = " + zak + " and ZPK = " + zpk);

            var hostCrypt = new HostCryptography();

            _log.Debug("Translating Zone Keys");
            Dictionary <string, string> zoneKeySet2 = hostCrypt.TranslateSetOfZoneKeys(kekr, zpk, zak, "11111111111111111111111111111111");

            using (Session2805Data data = new Session2805Data())
            {
                if (zoneKeySet2["ErrorCode"] == "00")
                {
                    data.UpdateSession_Recieve_as2805(zoneKeySet2["ZPK(LMK)"], zpk, zoneKeySet2["ZPK Check Value"], zoneKeySet2["ZAK(LMK)"], zak, zoneKeySet2["ZAK Check Value"], zoneKeySet2["ZEK(LMK)"], zoneKeySet2["ZEK Check Value"], node_number.ToString());
                    _log.Info("Sent keys under LMK : ZAK : " + zoneKeySet2["ZAK(LMK)"] + " ZAK check value : " + zoneKeySet2["ZAK Check Value"] + "ZPK : " + zoneKeySet2["ZPK(LMK)"] + "ZPK Check Value : " + zoneKeySet2["ZPK Check Value"]);
                    this.Mti            = "0830";
                    this.NetMgtInfoCode = "101";
                    this.RespCode       = "00";
                    this.AddtlDataPriv  = zoneKeySet2["ZAK Check Value"] + zoneKeySet2["ZPK Check Value"];
                    _log.Info("Sending key exchange response");
                }
                else
                {
                    _log.Error("Error Translating Set of Zone Keys");
                    zoneKeySet2.Clear();
                    this.RespCode = "30";
                }
            }
        }
示例#5
0
        public BankRawMessage GenerateKeyExchangeRequest(NetworkManagementModel model)
        {
            HostCryptography hostCrypt = new HostCryptography();

            _log.Debug("Generating Zone Keys");
            return(GenerateZoneKeys(model, hostCrypt));
        }
示例#6
0
        public BankRawMessage GenerateSignOnRequest()
        {
            NetworkManagementModel model = new NetworkManagementModel();

            HostCryptography hostCrypt = new HostCryptography();

            _log.Debug("Generating Validation Request");
            return(GenerateValidationRequest(model, hostCrypt));
        }
示例#7
0
        public void Test_GenerateMAC()
        {
            HostCryptography            hostCrypto = new HostCryptography();
            Dictionary <String, String> response   = hostCrypto.CalculateMAC_ZAK("01101100011101010110110001110101", "UDBEFF18B28C6CCC659F17A2B642DE795");

            if (response.ContainsKey("ErrorCode"))
            {
                Assert.AreEqual((response["ErrorCode"]), "00");
            }
        }
示例#8
0
        public void Test_TranslatedSetOfZoneKeys()
        {
            HostCryptography            hostCrypto = new HostCryptography();  //          kekr                                        zpk_zmk                             zak_zmk                                zek_zmk
            Dictionary <String, String> response   = hostCrypto.TranslateSetOfZoneKeys("U6991809FE5FD03B5CE28F671CB1DCB32", "D65FC0A3A2DE8D08084E03D28EBD3287", "753EECC690F068E93DE3C1259F14D991", "H005E7BE78AB407278E48F66D32AD5214");

            if (response.ContainsKey("ErrorCode"))
            {
                Assert.AreEqual((response["ErrorCode"]), "00");
            }
        }
示例#9
0
        public void Test_GenerateSetOfZoneKeys()
        {
            HostCryptography            hostCrypto = new HostCryptography();
            Dictionary <String, String> response   = hostCrypto.GenerateSetOfZoneKeys("U186C568AD0CA98BA70150B0787AED8A3"); // keks from db

            if (response.ContainsKey("ErrorCode"))
            {
                Assert.AreEqual((response["ErrorCode"]), "00");
            }
        }
示例#10
0
        public void Test_GenerateRandomNumber()
        {
            HostCryptography hostCrypto = new HostCryptography();
            var response = hostCrypto.GenerateRandomNumber();

            if (response.ContainsKey("ErrorCode"))
            {
                Assert.AreEqual((response["ErrorCode"]), "00");
            }
        }
示例#11
0
        public void Test_VerifyMAC()
        {
            HostCryptography hostCrypto = new HostCryptography();
            var response = hostCrypto.VerifyMAC("68B65A3C", "01101100011101010110110001110101", "", "UDBEFF18B28C6CCC659F17A2B642DE795");

            if (response.Length == 0)
            {
                Assert.Fail("The method did not return any value");
            }
        }
示例#12
0
        public void Test_KeksValidationRequest()
        {
            HostCryptography            hostCrypto = new HostCryptography();
            Dictionary <String, String> response   = hostCrypto.Generate_KEKs_Validation_Request("U186C568AD0CA98BA70150B0787AED8A3"); // keks from database

            if (response.ContainsKey("ErrorCode"))
            {
                Assert.AreEqual((response["ErrorCode"]), "00");
            }
        }
示例#13
0
        public BankRawMessage GenerateKeyExchangeRequest()
        {
            NetworkManagementModel model = _baseModel as NetworkManagementModel;

            using (Session2805Data data = new Session2805Data())
            {
                HostCryptography hostCrypt = new HostCryptography();
                _log.Debug("Generating Zone Keys");
                return(GenerateZoneKeys(model, data, hostCrypt));
            }
        }
示例#14
0
        public BankRawMessage GenerateSignOnResponse()
        {
            NetworkManagementModel model = _baseModel as NetworkManagementModel;

            using (Session2805Data data = new Session2805Data())
            {
                HostCryptography hostCrypt = new HostCryptography();
                _log.Debug("Generating Validation Response");
                return(GenerateValidationResponse(model, data, hostCrypt));
            }
        }
示例#15
0
        public void Test_KekrValidationResponse()
        {
            HostCryptography            hostCrypto = new HostCryptography();
            Dictionary <String, String> response   = hostCrypto.Generate_KEKr_Validation_Response("U6991809FE5FD03B5CE28F671CB1DCB32", "U6991809FE5FD03B5CE28F671CB1DCB32"); // kekr from db,

            if (response.ContainsKey("ErrorCode"))
            {
                if (response.ContainsKey("ErrorCode"))
                {
                    Assert.AreEqual((response["ErrorCode"]), "00");
                }
            }
        }
示例#16
0
        public void ValidateKeys(string kekr)
        {
            var krsReceived        = this.AddtlDataPriv;
            var hostCrypt          = new HostCryptography();
            var validationResponse = hostCrypt.Generate_KEKr_Validation_Response(kekr, krsReceived);

            if (validationResponse["ErrorCode"] == "00")
            {
                this.AddtlDataPriv = validationResponse["KRr"];
                this.Mti           = "0810";
                this.RespCode      = "00";
            }
            else
            {
                _log.Error("0810 KRr Response Error");
                this.RespCode = "30"; //format error
            }
        }
示例#17
0
        public void ValidateKeys(string keks, int stan)
        {
            var hostCrypt             = new HostCryptography();
            var keksValidationRequest = hostCrypt.Generate_KEKs_Validation_Request(keks);

            if (keksValidationRequest["ErrorCode"] == "00")
            {
                string krsSent;
                keksValidationRequest.TryGetValue("KRs", out krsSent);
                this.Stan           = stan;
                this.FwdInstIdCode  = 579944;
                this.NetMgtInfoCode = "001";
                this.RecvInstIdCode = 61100016;
                this.AddtlDataPriv  = krsSent;
            }
            else
            {
                _log.Error("0800 KEKs Validation Request Error");
            }
        }
示例#18
0
        private BankRawMessage GenerateValidationResponse(NetworkManagementModel model, Session2805Data data,
                                                          HostCryptography hostCrypt)
        {
            _log.Debug("Building 0810");
            //build 0810


            var krsReceived        = model.AddtlDataPriv;
            var validationResponse = hostCrypt.Generate_KEKr_Validation_Response(KEKr, krsReceived);

            if (validationResponse["ErrorCode"] == "00")
            {
                model.Mti            = "0810";
                model.AddtlDataPriv  = validationResponse["KRr"];
                model.RespCode       = "00";
                model.NetMgtInfoCode = "001";
                return(new BankRawMessage(_responseBuilder.NetworkManagementResponse(model)));
            }

            _log.Error("0810 KRr Response Error");
            model.RespCode = "30"; //format error
            return(new BankRawMessage(_responseBuilder.NetworkManagementResponse(model)));
        }
示例#19
0
        private BankRawMessage GenerateValidationRequest(NetworkManagementModel model, Session2805Data data, HostCryptography hostCrypt)
        {
            _log.Debug("Building 0800");
            //build 0800

            var keksValidationRequest = hostCrypt.Generate_KEKs_Validation_Request(KEKs);

            if (keksValidationRequest["ErrorCode"] == "00")
            {
                string krsSent;
                keksValidationRequest.TryGetValue("KRs", out krsSent);
                model.Mti            = "0800";
                model.Stan           = _rrnSequence.GetStan;
                model.FwdInstIdCode  = 579944;
                model.NetMgtInfoCode = "001";
                model.RecvInstIdCode = 61001001;
                model.AddtlDataPriv  = krsSent;


                return(new BankRawMessage(_responseBuilder.NetworkManagementRequest(model)));
            }
            _log.Error("0800 KEKs Validation Request Error");
            throw new InvalidOperationException("0800 KEKs Validation Request Error");
        }
示例#20
0
        public Dictionary <string, string> GenerateZoneKeys(string keks)
        {
            var hostCrypt = new HostCryptography();

            return(hostCrypt.GenerateSetOfZoneKeys(keks));
        }