public void ShouldEncryptXmlWithGost_R3410_2012_512(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; // Получатель экспортирует отправителю информацию о своем открытом ключе var keyContainer = certificate.GetPrivateKeyInfo(); var privateKey = new Gost_R3410_2012_512_AsymmetricAlgorithm(keyContainer); var publicKeyInfo = privateKey.ExportParameters(false); // Отправитель импортирует от получателя информацию о его открытом ключе var publicKey = new Gost_R3410_2012_512_AsymmetricAlgorithm(); publicKey.ImportParameters(publicKeyInfo); var xmlDocument = CreateXmlDocument(); var expectedXml = xmlDocument.OuterXml; // When var encryptedXmlDocument = EncryptXmlDocument(xmlDocument, publicKey); var decryptedXmlDocument = DecryptXmlDocument(encryptedXmlDocument, privateKey); var actualXml = decryptedXmlDocument.OuterXml; // Then Assert.AreEqual(expectedXml, actualXml); }
public void ShouldSignXml(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var xmlDocument = CreateXmlDocument(); // When var signedXmlDocument = SignXmlDocument(xmlDocument, certificate); // Then Assert.IsTrue(VerifyXmlDocumentSignature(signedXmlDocument)); }
public void ShouldSign(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var message = CreateMessage(); // When var detachedSignature = SignMessage(certificate, message); var isValidDetachedSignature = VerifyMessage(message, detachedSignature); // Then Assert.IsTrue(isValidDetachedSignature); }
public void ShouldEncryptAndDecrypt(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var message = CreateMessage(); // When var encryptedMessage = EncryptMessage(certificate, message); var decryptedMessage = DecryptMessage(encryptedMessage); // Then Assert.IsTrue(message.SequenceEqual(decryptedMessage)); }
public void ShouldSignXmlWithGost_R3410_2012_512(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var keyContainer = certificate.GetPrivateKeyInfo(); var signingKey = new Gost_R3410_2012_512_AsymmetricAlgorithm(keyContainer); var xmlDocument = CreateXmlDocument(); // When var signedXmlDocument = SignXmlDocument(xmlDocument, new Gost_R3410_2012_512_KeyValue(signingKey)); // Then Assert.IsTrue(VerifyXmlDocumentSignature(signedXmlDocument)); }
public void ShouldEncryptXml(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var xmlDocument = CreateXmlDocument(); var expectedXml = xmlDocument.OuterXml; // When var encryptedXmlDocument = EncryptXmlDocument(xmlDocument, certificate); var decryptedXmlDocument = DecryptXmlDocument(encryptedXmlDocument); var actualXml = decryptedXmlDocument.OuterXml; // Then Assert.AreEqual(expectedXml, actualXml); }
public void ShouldEncryptAndDecrypt(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var privateKey = (GostAsymmetricAlgorithm)certificate.GetPrivateKeyAlgorithm(); var publicKey = (GostAsymmetricAlgorithm)certificate.GetPublicKeyAlgorithm(); var dataStream = CreateDataStream(); // When var encryptedDataStream = SendEncryptedDataStream(publicKey, dataStream, out var iv, out var sessionKey); var decryptedDataStream = ReceiveEncryptedDataStream(privateKey, encryptedDataStream, iv, sessionKey); // Then Assert.That(dataStream, Is.EqualTo(decryptedDataStream)); }
public void ShouldSignDataStream(TestCertificateInfo testCase) { // Given var certificate = testCase.Certificate; var privateKey = (GostAsymmetricAlgorithm)certificate.GetPrivateKeyAlgorithm(); var publicKey = (GostAsymmetricAlgorithm)certificate.GetPublicKeyAlgorithm(); var dataStream = CreateDataStream(); // When dataStream.Seek(0, SeekOrigin.Begin); var signature = CreateSignature(privateKey, dataStream); dataStream.Seek(0, SeekOrigin.Begin); var isValidSignature = VerifySignature(publicKey, dataStream, signature); // Then Assert.IsTrue(isValidSignature); }
public void ShouldSetContainerPassword_R3410_2012_512(TestCertificateInfo testCase) { // Given var data = GetSomeData(); var certificate = testCase.Certificate; var securePassword = CreateSecureString(TestConfig.ContainerPassword); // When var privateKeyInfo = certificate.GetPrivateKeyInfo(); var privateKey = new Gost_R3410_2012_512_AsymmetricAlgorithm(privateKeyInfo); privateKey.SetContainerPassword(securePassword); var signature = CreateSignature(privateKey, data); var isValidSignature = VerifySignature(privateKey, data, signature); // Then Assert.IsTrue(isValidSignature); }