示例#1
0
        public void Test_PEK_Encryption()
        {
            byte[] encryptedBytes     = Dukpt.Encrypt(_bdk, _ksn, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.PIN);
            string encryptedHexResult = BitConverter.ToString(encryptedBytes).Replace("-", "");

            Assert.AreEqual(encryptedHexResult, _expectedEncryptedHexPEK);
        }
示例#2
0
        public void Test_PEK_Decryption()
        {
            byte[] decryptedBytes = Dukpt.Decrypt(_bdk, _ksn, _expectedEncryptedHexPEK.HexStringToByteArray(), DUKPTVariant.PIN);
            string decryptedData  = Encoding.UTF8.GetString(decryptedBytes);

            Assert.AreEqual(decryptedData, _clearData);
        }
        public void TestEncryption()
        {
            var clear = "%B5452300551227189^HOGAN/PAUL      ^08043210000000725000000?\0\0\0\0";
            var bdk   = "0123456789ABCDEFFEDCBA9876543210";
            var ksn   = "FFFF9876543210E00008";
            var track = "C25C1D1197D31CAA87285D59A892047426D9182EC11353C051ADD6D0F072A6CB3436560B3071FC1FD11D9F7E74886742D9BEE0CFD1EA1064C213BB55278B2F12";

            var encBytes = Dukpt.Encrypt(bdk, ksn, Encoding.UTF8.GetBytes(clear));

            var encrypted = BitConverter.ToString(encBytes).Replace("-", "");

            Assert.AreEqual(encrypted, track);
        }
        public void TestIdTechDecryption()
        {
            var clear = "%B4266841088889999^BUSH JR/GEORGE W.MR^0809101100001100000000046000000?!";
            var bdk   = "0123456789ABCDEFFEDCBA9876543210";
            var ksn   = "62994901190000000002";
            var track = "DA7F2A52BD3F6DD8B96C50FC39C7E6AF22F06ED1F033BE0FB23D6BD33DC5A1F808512F7AE18D47A60CC3F4559B1B093563BE7E07459072ABF8FAAB5338C6CC8815FF87797AE3A7BE";

            var decBytes = Dukpt.DecryptIdTech(bdk, ksn, track.HexStringToByteArray());

            var decrypted = Encoding.UTF8.GetString(decBytes);

            Assert.AreEqual(decrypted, clear);
        }
        public void TestDecryption()
        {
            var clear = "%B5452300551227189^HOGAN/PAUL      ^08043210000000725000000?\0\0\0\0";
            var bdk   = "0123456789ABCDEFFEDCBA9876543210";
            var ksn   = "FFFF9876543210E00008";
            var track = "C25C1D1197D31CAA87285D59A892047426D9182EC11353C051ADD6D0F072A6CB3436560B3071FC1FD11D9F7E74886742D9BEE0CFD1EA1064C213BB55278B2F12";

            var decBytes = Dukpt.Decrypt(bdk, ksn, track.HexStringToByteArray());

            var decrypted = Encoding.UTF8.GetString(decBytes);

            Assert.AreEqual(decrypted, clear);
        }
示例#6
0
        static void Main(string[] args)
        {
            var test = "%B5452300551227189^HOGAN/PAUL      ^08043210000000725000000?\0\0\0\0";

            // Decrypting
            var bdk       = "0123456789ABCDEFFEDCBA9876543210";
            var ksn       = "FFFF9876543210E00008";
            var track     = "C25C1D1197D31CAA87285D59A892047426D9182EC11353C051ADD6D0F072A6CB3436560B3071FC1FD11D9F7E74886742D9BEE0CFD1EA1064C213BB55278B2F12";
            var decBytes  = Dukpt.Decrypt(bdk, ksn, BigInt.FromHex(track).GetBytes());
            var decrypted = UTF8Encoding.UTF8.GetString(decBytes);

            Console.WriteLine(decrypted == test);

            // Encrypting
            var encBytes  = Dukpt.Encrypt(bdk, ksn, decBytes);
            var encrypted = BitConverter.ToString(encBytes).Replace("-", "");

            Console.WriteLine(encrypted == track);
        }
示例#7
0
 public void Test_DEK_Decryption_Empty_KSN()
 {
     byte[] decryptedBytes = Dukpt.Decrypt(_bdk, string.Empty, _expectedEncryptedHexDEK.HexStringToByteArray(), DUKPTVariant.Data);
 }
示例#8
0
 public void Test_PEK_Decryption_Invalid_Length_KSN()
 {
     byte[] encryptedBytes = Dukpt.Decrypt(_bdk, _ksn.Substring(0, 2), _expectedEncryptedHexPEK.HexStringToByteArray(), DUKPTVariant.PIN);
 }
示例#9
0
 public void Test_DEK_Encryption_Invalid_Length_BDK()
 {
     byte[] encryptedBytes = Dukpt.Encrypt(_bdk.Substring(0, _bdk.Length / 2), _ksn, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.Data);
 }
示例#10
0
 public void Test_PEK_Encryption_Empty_KSN()
 {
     byte[] decryptedBytes = Dukpt.Encrypt(_bdk, string.Empty, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.PIN);
 }
示例#11
0
 public void Test_PEK_Encryption_Null_BDK()
 {
     byte[] decryptedBytes = Dukpt.Encrypt(null, _ksn, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.PIN);
 }
示例#12
0
 public void Test_PEK_Encryption_Null_Data()
 {
     byte[] decryptedBytes = Dukpt.Encrypt(_bdk, _ksn, null, DUKPTVariant.PIN);
 }
示例#13
0
 public void Test_PEK_Decryption_Empty_BDK()
 {
     byte[] decryptedBytes = Dukpt.Decrypt(string.Empty, _ksn, _expectedEncryptedHexDEK.HexStringToByteArray(), DUKPTVariant.PIN);
 }
示例#14
0
 public void Test_DEK_Decryption_Null_BDK()
 {
     byte[] decryptedBytes = Dukpt.Decrypt(null, _ksn, _expectedEncryptedHexDEK.HexStringToByteArray(), DUKPTVariant.Data);
 }
示例#15
0
 public void Test_DEK_Decryption_Null_Data()
 {
     byte[] decryptedBytes = Dukpt.Decrypt(_bdk, _ksn, null, DUKPTVariant.Data);
 }
示例#16
0
 public void Test_DEK_Decryption_Invalid_Length_BDK()
 {
     byte[] encryptedBytes = Dukpt.Decrypt(_bdk.Substring(0, _bdk.Length / 2), _ksn, _expectedEncryptedHexDEK.HexStringToByteArray(), DUKPTVariant.Data);
 }
示例#17
0
 public void Test_DEK_Encryption_Null_KSN()
 {
     byte[] decryptedBytes = Dukpt.Encrypt(_bdk, null, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.Data);
 }
示例#18
0
 public void Test_DEK_Encryption_Empty_BDK()
 {
     byte[] decryptedBytes = Dukpt.Encrypt(string.Empty, _ksn, Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.Data);
 }
示例#19
0
 public void Test_PEK_Encryption_Invalid_Length_KSN()
 {
     byte[] encryptedBytes = Dukpt.Encrypt(_bdk, _ksn.Substring(0, 2), Encoding.UTF8.GetBytes(_clearData), DUKPTVariant.PIN);
 }
示例#20
0
 public void Test_PEK_Decryption_Null_KSN()
 {
     byte[] decryptedBytes = Dukpt.Decrypt(_bdk, null, _expectedEncryptedHexDEK.HexStringToByteArray(), DUKPTVariant.PIN);
 }