Esempio n. 1
0
        public void GetBytes_NullExceptionTest()
        {
            SharpRandom rng = new SharpRandom();

            Assert.Throws <ArgumentNullException>(() => rng.GetBytes(null));
            Assert.Throws <ArgumentNullException>(() => rng.GetBytes(new byte[0]));
        }
Esempio n. 2
0
        public void GetBytes_ObjectDisposedExceptionTest()
        {
            SharpRandom rng = new SharpRandom();

            rng.Dispose();

            Assert.Throws <ObjectDisposedException>(() => rng.GetBytes(new byte[1]));
        }
Esempio n. 3
0
 public virtual net.minecraft.src.WorldGenerator GetRandomWorldGenForTrees(SharpRandom random)
 {
     if (random.Next(10) == 0)
     {
         return(new net.minecraft.src.WorldGenBigTree());
     }
     else
     {
         return(new net.minecraft.src.WorldGenTrees());
     }
 }
Esempio n. 4
0
 public override net.minecraft.src.WorldGenerator GetRandomWorldGenForTrees(SharpRandom random)
 {
     if (random.Next(3) == 0)
     {
         return(new net.minecraft.src.WorldGenTaiga1());
     }
     else
     {
         return(new net.minecraft.src.WorldGenTaiga2());
     }
 }
Esempio n. 5
0
        public void GetBytesTest()
        {
            using SharpRandom rng = new SharpRandom();
            byte[] actual1 = new byte[32];
            byte[] actual2 = new byte[32];
            Assert.Equal(actual1, actual2);
            rng.GetBytes(actual1);
            rng.GetBytes(actual2);

            Assert.NotEqual(actual1, actual2);
        }
Esempio n. 6
0
 public override int IdDropped(int i, SharpRandom random)
 {
     if (Func_22020_d(i))
     {
         return(0);
     }
     else
     {
         return(net.minecraft.src.Item.BED.ID);
     }
 }
Esempio n. 7
0
        public void EncryptDecrypt_LongTest()
        {
            using SharpRandom rng       = new SharpRandom();
            using PrivateKey privateKey = new PrivateKey(rng);
            PublicKey pubkey = privateKey.ToPublicKey();

            string message = $"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ac lectus metus. Donec ac mollis ex, sed feugiat leo. In aliquet erat et maximus vestibulum. Mauris non purus vitae nibh rhoncus scelerisque id at mauris. Maecenas id condimentum massa, quis fermentum quam. Suspendisse maximus nunc eget dapibus pulvinar. Nam at metus volutpat, molestie velit sit amet, pulvinar libero. Suspendisse eu pellentesque enim. Nullam porta molestie leo at sagittis. Pellentesque lacinia in ipsum et accumsan. Quisque cursus a nisi vel bibendum. Vivamus consectetur leo non eros convallis elementum.\r\nPhasellus diam massa, commodo pulvinar mauris sit amet, pellentesque gravida metus. Nullam dapibus sed tortor sed lobortis. Duis sodales, urna vel tincidunt sagittis, metus nisi sodales massa, at gravida eros ipsum sed tortor. Morbi rutrum augue augue, vel ornare felis faucibus at. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ut gravida libero. Cras consectetur, est ut faucibus euismod, elit massa porta ipsum, in faucibus enim odio non felis. Fusce sed mi eu mi consectetur dignissim ut quis odio. Fusce non sapien mauris. Curabitur viverra tempor auctor. Nullam lobortis eleifend tincidunt. Ut arcu ante, porttitor vitae iaculis ut, condimentum eget purus. Phasellus pretium, dui eget dictum aliquam, lectus turpis gravida erat, in pretium libero neque vel dui.\r\nDonec semper, eros vulputate fringilla pellentesque, nibh ligula vestibulum risus, eu pretium nunc erat vitae purus. Nam maximus lacus vel erat mollis suscipit. Duis eget placerat odio, ac efficitur risus. Phasellus porta blandit bibendum. Aliquam ut odio sed nibh egestas sagittis. Nunc sodales urna velit, ac bibendum lacus pharetra ut. Sed ac sem a odio consequat pretium sed a dui. In ut dapibus lacus. Nam pulvinar nunc et nisl hendrerit mattis. Donec faucibus feugiat lacinia. Fusce congue, mauris vehicula ornare suscipit, dolor leo interdum libero, eu euismod sapien erat dignissim lorem.";
            string enc     = pubkey.Encrypt(message);
            string dec     = privateKey.Decrypt(enc);

            Assert.Equal(dec, message);
        }
Esempio n. 8
0
        public override void UpdateTick(net.minecraft.src.World world, int i, int j, int
                                        k, SharpRandom random)
        {
            if (world.singleplayerWorld)
            {
                return;
            }
            int l = world.GetBlockMetadata(i, j, k);

            if ((l & 8) == 0)
            {
                return;
            }
            world.SetBlockMetadataWithNotify(i, j, k, l & 7);
            world.NotifyBlocksOfNeighborChange(i, j, k, ID);
            int i1 = l & 7;

            if (i1 == 1)
            {
                world.NotifyBlocksOfNeighborChange(i - 1, j, k, ID);
            }
            else
            {
                if (i1 == 2)
                {
                    world.NotifyBlocksOfNeighborChange(i + 1, j, k, ID);
                }
                else
                {
                    if (i1 == 3)
                    {
                        world.NotifyBlocksOfNeighborChange(i, j, k - 1, ID);
                    }
                    else
                    {
                        if (i1 == 4)
                        {
                            world.NotifyBlocksOfNeighborChange(i, j, k + 1, ID);
                        }
                        else
                        {
                            world.NotifyBlocksOfNeighborChange(i, j - 1, k, ID);
                        }
                    }
                }
            }
            world.PlaySoundEffect((double)i + 0.5D, (double)j + 0.5D, (double)k + 0.5D, "random.click"
                                  , 0.3F, 0.5F);
            world.MarkBlocksDirty(i, j, k, i, j, k);
        }
Esempio n. 9
0
        public void EncryptDecryptTest()
        {
            using SharpRandom rng       = new SharpRandom();
            using PrivateKey privateKey = new PrivateKey(rng);
            PublicKey pubkey = privateKey.ToPublicKey();

            for (int i = 0; i < 100; i++)
            {
                string message = new string(Enumerable.Repeat('a', i).ToArray());
                string enc     = pubkey.Encrypt(message);
                string dec     = privateKey.Decrypt(enc);

                Assert.Equal(dec, message);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Encrypts a message with this public key using Elliptic Curve Integrated Encryption Scheme (ECIES)
        /// with AES-128-CBC as cipher and HMAC-SHA256 as MAC.
        /// </summary>
        /// <exception cref="ArgumentNullException"/>
        /// <param name="message">Message to encrypt</param>
        /// <param name="magic">
        /// [Default value = BIE1]
        /// A magic string added to encrypted result before computing its HMAC-SHA256
        /// </param>
        /// <returns>Encrypted result as a base-64 encoded string</returns>
        public string Encrypt(string message, string magic = "BIE1")
        {
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message), "Mesage can not be null.");
            }
            if (magic is null)
            {
                throw new ArgumentNullException(nameof(magic), "Magic can not be null.");
            }

            byte[] magicBytes = Encoding.UTF8.GetBytes(magic);

            // TODO: investigate if this can become deterministic (it can't be based on message or pubkey
            //       otherwise the ephemeral key is revealed)
            using SharpRandom rng      = new SharpRandom();
            using PrivateKey ephemeral = new PrivateKey(rng);

            byte[] ecdhKey = new PublicKey(calc.Multiply(ephemeral.ToBigInt(), point)).ToByteArray(true);
            using Sha512 sha512 = new Sha512();
            byte[] key = sha512.ComputeHash(ecdhKey);

            using Aes aes = new AesManaged
                  {
                      KeySize = 128,
                      Key     = key.SubArray(16, 16),
                      Mode    = CipherMode.CBC,
                      IV      = key.SubArray(0, 16),
                      Padding = PaddingMode.PKCS7
                  };
            using ICryptoTransform encryptor = aes.CreateEncryptor();
            using MemoryStream encStream     = new MemoryStream();
            using CryptoStream cryptStream   = new CryptoStream(encStream, encryptor, CryptoStreamMode.Write);
            using (StreamWriter swEncrypt = new StreamWriter(cryptStream))
            {
                swEncrypt.Write(message);
            }

            byte[] encrypted = magicBytes.ConcatFast(ephemeral.ToPublicKey().ToByteArray(true)).ConcatFast(encStream.ToArray());
            using HmacSha256 hmac = new HmacSha256();
            byte[] mac = hmac.ComputeHash(encrypted, key.SubArray(32));

            return(encrypted.ConcatFast(mac).ToBase64());
        }
Esempio n. 11
0
 public override void UpdateTick(net.minecraft.src.World world, int i, int j, int
                                 k, SharpRandom random)
 {
     if (world.IsAirBlock(i, j + 1, k))
     {
         int l;
         for (l = 1; world.GetBlockId(i, j - l, k) == ID; l++)
         {
         }
         if (l < 3)
         {
             int i1 = world.GetBlockMetadata(i, j, k);
             if (i1 == 15)
             {
                 world.SetBlockWithNotify(i, j + 1, k, ID);
                 world.SetBlockMetadataWithNotify(i, j, k, 0);
             }
             else
             {
                 world.SetBlockMetadataWithNotify(i, j, k, i1 + 1);
             }
         }
     }
 }
Esempio n. 12
0
 public virtual int IdDropped(int i, SharpRandom random)
 {
     return(ID);
 }
Esempio n. 13
0
 public virtual int QuantityDropped(SharpRandom random)
 {
     return(1);
 }
Esempio n. 14
0
 public virtual void UpdateTick(net.minecraft.src.World world, int i, int j, int k
                                , SharpRandom random)
 {
 }
Esempio n. 15
0
 public override int QuantityDropped(SharpRandom random)
 {
     return(0);
 }