From 807cd39192cef4d5533753281ba7d94394225cc5 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sat, 4 Jan 2020 14:24:06 +0100 Subject: [PATCH] Added test case for different encodings --- Ed25519 Tests/SignerTests.cs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Ed25519 Tests/SignerTests.cs b/Ed25519 Tests/SignerTests.cs index 38ed73c..c3975ae 100644 --- a/Ed25519 Tests/SignerTests.cs +++ b/Ed25519 Tests/SignerTests.cs @@ -88,6 +88,40 @@ namespace Ed25519_Tests Assert.That(signatureOriginal.ToArray(), Is.Not.EqualTo(signatureAltered.ToArray())); } + [Test] + public void TestSigner06() + { + var messageOriginal = Encoding.ASCII.GetBytes("This is a test message."); + var privateKey = new Span(new byte[32]); + RandomNumberGenerator.Create().GetBytes(privateKey); + + var publicKey = privateKey.ExtractPublicKey(); + var signatureOriginal = Signer.Sign(messageOriginal, privateKey, publicKey); + + var messageAltered = Encoding.UTF32.GetBytes("This is a test message."); + var signatureAltered = Signer.Sign(messageAltered, privateKey, publicKey); + + // Two equal messages with different encoding must produce different signatures: + Assert.That(signatureOriginal.ToArray(), Is.Not.EqualTo(signatureAltered.ToArray())); + } + + [Test] + public void TestSigner07() + { + var messageOriginal = Encoding.ASCII.GetBytes("This is a test message with umlauts äöü."); + var privateKey = new Span(new byte[32]); + RandomNumberGenerator.Create().GetBytes(privateKey); + + var publicKey = privateKey.ExtractPublicKey(); + var signatureOriginal = Signer.Sign(messageOriginal, privateKey, publicKey); + + var messageAltered = Encoding.UTF8.GetBytes("This is a test message with umlauts äöü."); + var signatureAltered = Signer.Sign(messageAltered, privateKey, publicKey); + + // Two equal messages with different encoding must produce different signatures: + Assert.That(signatureOriginal.ToArray(), Is.Not.EqualTo(signatureAltered.ToArray())); + } + // See https://tools.ietf.org/html/rfc8032#section-7.1 [Test] public void TestRFC8032Test01()