// Test that a valid key passes the key validation function - needs changes to // OTPgenerator to work properly public int[] testGoodDecrypt() { int[] passed = new int[2]; passed[1] = 1; string seed = "A021E0A80264A33C08B6C2884AC0685C"; string key = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7"; key = VerifyKeys.removeHexPrefix(key); byte[] otp = new byte[32]; byte[] seedByte = new byte[14]; byte[] encryptedKey = new byte[34]; byte[] keyByte = Encoding.ASCII.GetBytes(key); seedByte = Encoding.ASCII.GetBytes(seed); byte[] goodKey = OTPworker.OTPxor(seedByte, keyByte); byte[] decryptedKey = OTPworker.decryptFromBlob(seed, Convert.ToBase64String(goodKey)); string finalKey = Encoding.ASCII.GetString(keyByte); if (finalKey == key) { passed[0] = 1; } return(passed); }
// Test that an invalid key fails the key validation function public void testBadDecrypt() { string seed = "A021E0A80264A33C08B6C2884AC0685C"; string badBlob = "aaaabbbbaaaabbbbaaaabbbbaaaabbbb"; byte[] keyByte = OTPworker.decryptFromBlob(seed, badBlob); string finalKey = Encoding.ASCII.GetString(keyByte); Debug.Log("Bad decrypted key: " + finalKey); }
// Test decrypting a key from a didery blob - needs the bug fix for OTPgenerator to work public int[] testDecryptFromBlob() { int[] passed = new int[2]; passed[1] = 1; byte[] key = new byte[16]; byte[] seed = new byte[16]; byte[] encryptedKey = new byte[16]; byte[] decryptedKey = new byte[16]; byte[] decryptedBlob = new byte[16]; byte[] otp = new byte[32]; for (int i = 0; i < key.Length; i++) { key[i] = (byte)(i + 1); } for (int i = 0; i < seed.Length; i++) { seed[i] = (byte)(i + 1); } OTPworker.OTPGenerator(otp, 32, seed); encryptedKey = OTPworker.OTPxor(key, otp); decryptedKey = OTPworker.OTPxor(encryptedKey, otp); string seedString = OTPworker.ByteArrayToHex(seed); string keyString = OTPworker.ByteArrayToHex(key); string decryptedString = OTPworker.ByteArrayToHex(decryptedKey); if (keyString == decryptedString) { passed[0] += 1; } else { Debug.Log("Decrypt key test failed. Key: " + OTPworker.ByteArrayToHex(key)); Debug.Log("Decrypted key: " + OTPworker.ByteArrayToHex(decryptedKey)); } decryptedBlob = OTPworker.decryptFromBlob(seedString, Convert.ToBase64String(encryptedKey)); passed[1] += 1; if (keyString == OTPworker.ByteArrayToHex(decryptedBlob)) { passed[0] += 1; } else { Debug.Log("Decrypt blob test failed. Key string: " + keyString + " decrypted blob: " + OTPworker.ByteArrayToHex(decryptedBlob)); } //Debug.Log("Decrypted blob: " + OTPworker.ByteArrayToHex(decryptedBlob)); return(passed); }
public void testDecrypt() { string seed = SeedManager.InputSeed; Debug.Log("Seed: " + seed); byte[] keyByte = OTPworker.decryptFromBlob(seed, DideryDemoManager.DemoBlob); string finalKey = Encoding.ASCII.GetString(keyByte); keyString.text = finalKey; Debug.Log("Decrypted key: " + finalKey); }
// Decrypt the key from DideryDemoManager.demoBlob public void decryptKey() { if (DideryDemoManager.IsDemo) { keyString.text = DideryDemoManager.DemoBlob; } else { byte[] keyByte = OTPworker.decryptFromBlob(SeedManager.RecoveredSeed, dideryDemoManager.demoBlob); finalKey = Encoding.ASCII.GetString(keyByte); keyString.text = finalKey; } //copyButton.SetActive(true); }
// Test that an invalid key fails the key validation function public int[] testBadDecrypt() { int[] passed = new int[2]; passed[1] = 1; string seed = "A021E0A80264A33C08B6C2884AC0685C"; string badBlob = "aaaabbbbaaaabbbbaaaabbbbaaaabbbb"; byte[] keyByte = OTPworker.decryptFromBlob(seed, badBlob); string finalKey = Encoding.ASCII.GetString(keyByte); //Debug.Log("Bad decrypted key: " + finalKey); // if the function has gotten to this point, and hasn't crashed, it's passed passed[0] = 1; return(passed); }
// Test that a valid key passes the key validation function public void testGoodDecrypt() { string seed = "A021E0A80264A33C08B6C2884AC0685C"; string key = "0xb5b1870957d373ef0eeffecc6e4812c0fd08f554b37b233526acc331bf1544f7"; key = VerifyKeys.removeHexPrefix(key); byte[] otp = new byte[32]; byte[] seedByte = new byte[14]; byte[] encryptedKey = new byte[34]; byte[] keyByte = Encoding.ASCII.GetBytes(key); seedByte = Encoding.ASCII.GetBytes(seed); byte[] goodKey = OTPworker.OTPxor(seedByte, keyByte); byte[] decryptedKey = OTPworker.decryptFromBlob(seed, Convert.ToBase64String(goodKey)); string finalKey = Encoding.ASCII.GetString(keyByte); Debug.Log("Bad decrypted key: " + finalKey); }
public void Start() { copied = GameObject.FindGameObjectWithTag("Copied Text").GetComponent <TextMeshProUGUI>(); copied.text = ""; copied.gameObject.SetActive(false); if (DideryDemoManager.IsDemo) { keyString.text = DideryDemoManager.DemoBlob; } else { byte[] keyByte = OTPworker.decryptFromBlob(SeedManager.RecoveredSeed, dideryDemoManager.demoBlob); finalKey = Encoding.ASCII.GetString(keyByte); keyString.text = finalKey; } copy.onClick.AddListener(onClickCopyKey); menu.onClick.AddListener(onClickMainMenu); quit.onClick.AddListener(onClickQuit); //PathManager.ResetPathManager(); //copyButton.SetActive(false); }