コード例 #1
0
ファイル: RSATests.cs プロジェクト: ZeevoX/elasmobranch
        public void RSANumberEncryptionTest(int encrypted, int publicKey, int commonKey, int message)
        {
            // private key = -1, we won't need it for encryption!
            var rsaKey = new RivestShamirAdleman(-1, publicKey, commonKey);

            Assert.AreEqual(new BigInteger(encrypted), rsaKey.Encrypt(message));
        }
コード例 #2
0
ファイル: RSATests.cs プロジェクト: ZeevoX/elasmobranch
        public void RSATest()
        {
            var rsaKey = new RivestShamirAdleman();

            TestContext.WriteLine(
                $"privateKey: {rsaKey.PrivateKey}, publicKey: {rsaKey.PublicKey}, commonKey: {rsaKey.CommonKey}");

            var encrypted = rsaKey.Encrypt("topSecret123");

            TestContext.WriteLine(encrypted);
            Assert.AreEqual("topSecret123", rsaKey.Decrypt(encrypted));
        }
コード例 #3
0
ファイル: RSATests.cs プロジェクト: ZeevoX/elasmobranch
 // TODO Fix RSA algorithm for longer numbers
 // [TestCase(7)]
 // [TestCase(8)]
 // [TestCase(9)]
 // [TestCase(10)]
 // [TestCase(20)]
 // [TestCase(100)]
 public void RSAKeyPairGenerationTest(int messageLength)
 {
     for (var i = 0; i < 5; i++)
     {
         var rsaKey = new RivestShamirAdleman();
         for (var j = 0; j < 10; j++)
         {
             var number    = BigInteger.Parse(GenerateRandomNumberString(messageLength));
             var encrypted = rsaKey.Encrypt(number);
             var decrypted = rsaKey.Decrypt(encrypted);
             TestContext.WriteLine(
                 $"privateKey: {rsaKey.PrivateKey}, publicKey: {rsaKey.PublicKey}, commonKey: {rsaKey.CommonKey}");
             TestContext.WriteLine($"input: {number}, encrypted: {encrypted}, decrypted: {decrypted}");
             Assert.AreEqual(number, decrypted);
         }
     }
 }