Ejemplo n.º 1
0
        public void TestVerifyPoke()
        {
            var vector =
                "A96E2D8D9B99DBFB934939C097E3AC101C7D48CEC52FCA717B14B19890208592045C430035DD09A31446142E9EA33CF3E6B6E69484B6D2EED500B8389048013491602403DBE7B814EA069667CFADAFE74895217D78037B4A456FAB2CAFD71E69504F4B4509000000000000"
                .ToByteArray();
            var vector2 =
                "A96E2D8D9B99DBFB934939C097E3AC101C7D48CEC52FCA717B14B19890208592045C430035DD09A31446142E9EA33CF3E6B6E69484B6D2EED500B8389048013491602403DBE7B814EA069667CFADAFE74895217D78037B4A456FAB2CAFD71E690000504F4B4509000000000000"
                .ToByteArray();

            Assert.True(MemeCrypto.VerifyMemePOKE(vector, out var _));
            Assert.True(MemeCrypto.VerifyMemePOKE(vector2, out var _));
        }
Ejemplo n.º 2
0
    public void TestVerifyMemeBuffer()
    {
        var encrypted =
            "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F4185F2713D5A8BCFFBFF47F86867DF680354913FEFEF08D0D0F1054CB054B508E7DE3AA789AC444D087AB9412CEE965A6D38E45EA010C77FF174F8F8D9993AEAFB9C0616E287B74487E0FF3F1874291B8170C71113971752717F8D188A319EA6"
            .ToByteArray();
        var decrypted =
            "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7431E10EF7681217C"
            .ToByteArray();

        Assert.True(MemeCrypto.VerifyMemeData(encrypted, out var actual, MemeKeyIndex.PokedexAndSaveFile));
        for (var i = 0; i < decrypted.Length; i++)
        {
            Assert.Equal(decrypted[i], actual[i]);
        }
    }
Ejemplo n.º 3
0
        public static RentalTeam DecryptQRCode(Image QR)
        {
            //Read the bytes of the QR code
            byte[] data = ParseQR(QR);

            //All data is shifted to the left by 4. Shift the data to the correct location.
            data = ShiftArray(data);

            //ZXing has added the header bytes to the raw bytes. These are the first 3, so skip them.
            var qrue = data.Skip(3).ToArray();

            //MEME CRYPTO!!! De-Meme the data
            if (!MemeCrypto.VerifyMemePOKE(qrue, out var qrt))
            {
                Console.WriteLine("it failed");
                return(null);
            }

            //unencrypt the data in the plaintext.
            byte[] qrDec = QR_t(qrt);

            //build the rental team.
            return(new RentalTeam(qrDec));
        }
Ejemplo n.º 4
0
 public void CanUseMemeCrypto()
 {
     Assert.IsTrue(MemeCrypto.CanUseMemeCrypto());
 }
Ejemplo n.º 5
0
 public void TestVerifyKnownKeys(MemeKeyIndex keyIndex, byte[] key)
 {
     MemeCrypto.VerifyMemeData(key, out _, keyIndex).Should().BeTrue("because they key should be valid");
 }