public void RSASerializeDeserializeKey() { //Arrange var cryptograpgicService = new RSACryptographicService(); var rsaPairKeys = cryptograpgicService.GenerateKeyParameters(); var privateKeyParameters = rsaPairKeys.PrivateKeyParameters; var publicKeyParameters = rsaPairKeys.PublicKeyParameters; //Act serializationService.SerializeKey(privateKeyParameters, path); var deserializedKey = serializationService.DeserializeKey(path); File.Delete(path); //Assert CollectionAssert.AreEqual(privateKeyParameters.D, deserializedKey.D); CollectionAssert.AreEqual(privateKeyParameters.DP, deserializedKey.DP); CollectionAssert.AreEqual(privateKeyParameters.DQ, deserializedKey.DQ); CollectionAssert.AreEqual(privateKeyParameters.Exponent, deserializedKey.Exponent); CollectionAssert.AreEqual(privateKeyParameters.InverseQ, deserializedKey.InverseQ); CollectionAssert.AreEqual(privateKeyParameters.Modulus, deserializedKey.Modulus); CollectionAssert.AreEqual(privateKeyParameters.P, deserializedKey.P); CollectionAssert.AreEqual(privateKeyParameters.Q, deserializedKey.Q); CollectionAssert.AreEqual(publicKeyParameters.Exponent, deserializedKey.Exponent); CollectionAssert.AreEqual(publicKeyParameters.Modulus, deserializedKey.Modulus); }
public void RSACompareKeyModulesTest() { //Arrange var rsaCryptographicService = new RSACryptographicService(); var rsaPairKeyParameters1 = rsaCryptographicService.GenerateKeyParameters(); var rsaPairKeyParameters2 = rsaCryptographicService.GenerateKeyParameters(); //Act var isFromTheSameBase1 = rsaCryptographicService.CompareKeyBases( rsaPairKeyParameters1.PrivateKeyParameters, rsaPairKeyParameters1.PrivateKeyParameters); var isFromTheSameBase2 = rsaCryptographicService.CompareKeyBases( rsaPairKeyParameters1.PublicKeyParameters, rsaPairKeyParameters2.PublicKeyParameters); var isFromTheSameBase3 = rsaCryptographicService.CompareKeyBases( rsaPairKeyParameters2.PrivateKeyParameters, rsaPairKeyParameters2.PublicKeyParameters); //Assert Assert.IsTrue(isFromTheSameBase1); Assert.IsFalse(isFromTheSameBase2); Assert.IsTrue(isFromTheSameBase3); }
public void RSAEncryptDecryptTest() { //Arrange var text = "This is simple Example text to testing."; var byteArrayFromText = Encoding.Default.GetBytes(text); int bufferLength = 40; byte[] baseBuffer = new byte[bufferLength]; var random = new Random(); for (int i = 0; i < bufferLength; i++) { baseBuffer[i] = (byte)random.Next(255); } var rsaCryptographicService = new RSACryptographicService(); var pairKeys = rsaCryptographicService.GenerateKeyParameters(); var publicKey = pairKeys.PublicKeyParameters; var privateKey = pairKeys.PrivateKeyParameters; //Act var encryptedArray1 = rsaCryptographicService.Encrypt(byteArrayFromText, publicKey); var encryptedArray2 = rsaCryptographicService.Encrypt(byteArrayFromText, privateKey); var encryptedArray3 = rsaCryptographicService.Encrypt(text, Encoding.Default, publicKey); var encryptedArray4 = rsaCryptographicService.Encrypt(text, Encoding.Default, privateKey); var encryptedArray5 = rsaCryptographicService.Encrypt(baseBuffer, privateKey); var encryptedArray6 = rsaCryptographicService.Encrypt(baseBuffer, publicKey); var decryptedArray1 = rsaCryptographicService.Decrypt(encryptedArray1, privateKey); var decryptedArray2 = rsaCryptographicService.Decrypt(encryptedArray2, privateKey); var decryptedArray3 = rsaCryptographicService.Decrypt(encryptedArray3, privateKey); var decryptedArray4 = rsaCryptographicService.Decrypt(encryptedArray4, privateKey); var decryptedArray5 = rsaCryptographicService.Decrypt(encryptedArray5, privateKey); var decryptedArray6 = rsaCryptographicService.Decrypt(encryptedArray6, privateKey); var dectyptedText1 = Encoding.Default.GetString(decryptedArray1); var decryptedText2 = Encoding.Default.GetString(decryptedArray2); var decryptedText3 = Encoding.Default.GetString(decryptedArray3); var decryptedText4 = Encoding.Default.GetString(decryptedArray4); //Assert Assert.AreEqual(text, dectyptedText1); Assert.AreEqual(text, decryptedText2); Assert.AreEqual(text, decryptedText3); Assert.AreEqual(text, decryptedText4); Assert.AreEqual(text, decryptedText3); Assert.AreEqual(text, decryptedText4); CollectionAssert.AreEqual(baseBuffer, decryptedArray5); CollectionAssert.AreEqual(baseBuffer, decryptedArray6); }
public void RSAGenerateKeys() { //Arrange var rsaCryptographicService = new RSACryptographicService(); //Act var pairKeys = rsaCryptographicService.GenerateKeyParameters(); var privateKey = pairKeys.PrivateKeyParameters; var publicKey = pairKeys.PublicKeyParameters; //Assert Assert.IsNotNull(pairKeys); Assert.IsNotNull(privateKey); Assert.IsNotNull(publicKey); }