示例#1
0
        public void EncryptTest()
        {
            var str          = "HelloWorld!";
            var rsaEncrypter = new RsaEncryptor(PublicKey, PrivateKey);
            var encrypted    = rsaEncrypter.Encrypt(str);

            Assert.Equal(str, rsaEncrypter.Decrypt(encrypted));

            var rsa2Encrypter = new RsaEncryptor(PublicKey, PrivateKey);

            rsa2Encrypter.SetHashAlg("RSA2");
            var encrypted2 = rsa2Encrypter.Encrypt(str);

            Assert.Equal(str, rsa2Encrypter.Decrypt(encrypted2));


            var rsaEncrypter2 = new RsaEncryptor();

            rsaEncrypter2.SetHashAlg("RSA");
            rsaEncrypter2.LoadPublicKey(PublicKey);
            rsaEncrypter2.LoadPrivateKey(PrivateKey);
            var encrypted2_2 = rsaEncrypter2.Encrypt(str);

            Assert.Equal(str, rsaEncrypter2.Decrypt(encrypted2_2));
        }
示例#2
0
        private ClientGame(string name, MainWindow window, ClientNetwork network)
        {
            MainWindow   = window;
            this.network = network;
            Chat         = new ChatHandler(this);
            Player       = new Player(this, MainWindow.PlayerCard1, MainWindow.PlayerCard2, MainWindow.PlayerCard3, MainWindow.PlayerCard4)
            {
                Name = name
            };
            Opponent = new Player(this, MainWindow.OpponentCard1, MainWindow.OpponentCard2, MainWindow.OpponentCard3, MainWindow.OpponentCard4);

            // Sends init packet to server
            var packet = new Packet(CMSGPackets.CMSG_INIT_PACKET);
            var rsa    = new RsaEncryptor(RSAKey.Modulus, RSAKey.Exponent);

            aes = new AesEncryptor(AesEncryptionType.Aes256Bits)
            {
                PaddingMode = PaddingMode.PKCS7
            };
            network.Encryptor = aes;
            packet.Write(rsa.Encrypt(aes.Encryptors));
            packet.Write(aes.Encrypt(name));
            rsa.Dispose();

            SendPacket(packet, false);
            networkConnectionTask = Task.Run(UpdateAsync, tokenSource.Token);
        }
示例#3
0
        public void GenerateKeyPair_Test()
        {
            var keyPair = RsaUtil.GenerateKeyPair(RSAKeyFormat.PKCS1, 512);

            Assert.NotEmpty(keyPair.PublicKey);
            var rsaEncryptor = new RsaEncryptor(keyPair.PublicKey, keyPair.PrivateKey);
            var d1           = rsaEncryptor.Encrypt("hello");
            var d2           = rsaEncryptor.Decrypt(d1);

            Assert.Equal("hello", d2);

            var sign = rsaEncryptor.SignData("string1");

            Assert.True(rsaEncryptor.VerifyData("string1", sign));


            var rsaParams1 = RsaUtil.ReadPrivateKeyInfo(keyPair.PrivateKey);

            var rsaParams2     = RsaUtil.ReadPrivateKeyInfo(keyPair.PrivateKey);
            var rsaPrivateKey2 = RsaUtil.ExportPrivateKeyPkcs8(rsaParams2);
            var rsaEncryptor2  = new RsaEncryptor();

            rsaEncryptor2.LoadPrivateKey(rsaPrivateKey2);

            var d3 = rsaEncryptor2.Decrypt(d1);

            Assert.Equal("hello", d3);
        }
示例#4
0
        public void TrimKey_Test()
        {
            var keyPair          = RsaUtil.GenerateFormatKeyPair();
            var trimedPublicKey  = RsaUtil.TrimKey(keyPair.PublicKey);
            var trimedPrivateKey = RsaUtil.TrimKey(keyPair.PrivateKey);

            Assert.Contains("-", keyPair.PublicKey);
            Assert.Contains("-", keyPair.PrivateKey);
            Assert.DoesNotContain("-", trimedPublicKey);
            Assert.DoesNotContain("-", trimedPrivateKey);
            var rsaEncryptor = new RsaEncryptor(trimedPublicKey, trimedPrivateKey);
            var encrypted1   = rsaEncryptor.Encrypt("china");
            var decrypted1   = rsaEncryptor.Decrypt(encrypted1);

            Assert.Equal("china", decrypted1);
        }
示例#5
0
        public void Pkcs8_Pkcs1_Conver_Test()
        {
            var keyPair       = RsaUtil.GenerateKeyPair();
            var rsaEncryptor1 = new RsaEncryptor(keyPair.PublicKey, keyPair.PrivateKey);

            var pkcs8Key      = RsaUtil.Pkcs1ToPkcs8(keyPair.PrivateKey);
            var rsaEncryptor2 = new RsaEncryptor(keyPair.PublicKey, pkcs8Key);

            var d1 = rsaEncryptor1.Encrypt("123456");
            var d2 = rsaEncryptor2.Encrypt("123456");
            //Assert.Equal(d1, d2);

            var d3 = rsaEncryptor1.Decrypt(d1);

            Assert.Equal("123456", d3);
            var d4 = rsaEncryptor2.Decrypt(d2);

            var pkcs1Key = RsaUtil.Pkcs8ToPkcs1(pkcs8Key);

            Assert.Equal(keyPair.PrivateKey, pkcs1Key);
        }
        public void Encrypt_should_throw_NotImplementedException()
        {
            var sut = new RsaEncryptor(null);

            Assert.Throws <NotImplementedException>(() => sut.Encrypt(null, null));
        }
 public byte[] Encrypt(byte[] data)
 {
     return(_rsaEncryptor.Encrypt(data));
 }
        private void EncryptMessage(object obj)
        {
            var encryptedMessage = rsaEncryptor.Encrypt(Encoding.UTF8.GetBytes(messageToEncrypt), Convert.FromBase64String(Modulus), Convert.FromBase64String(Exponent));

            EncryptedMessageAsString = Convert.ToBase64String(encryptedMessage);
        }