Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 91 additions & 9 deletions Minisign.Net.Tests/BaseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public void GenerateKeyTest()
}

[Fact]
public void SignTest()
public void SignAndValidateTest()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
Expand All @@ -47,7 +47,7 @@ public void SignTest()
}

[Fact]
public void Sign2Test()
public void SignAndValidate2Test()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
Expand All @@ -68,15 +68,85 @@ public void Sign2Test()
}

[Fact]
public void ValidateLegacySignature()
public void SignAndValidateHashedTest()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
const string privateKey = "456453634232aeb543fbea3467ad996ac237b38646bcbc12e6232fbc0a8cd9a1ed46c7263af200000002000000000000004000000000992f22d875591d3bb7dc3f77caba3229e2f7b8afe655140bafabcb6c5d8b259366a2897624de65743de71f8f2dcc545a96c4b530ffd796d92f35eb02425f4196ab9a37ff2f542774d676625f8de689fa2da3e0a0250efd58347c35b927ca49ec4d93687be59d6e1a";
var minisignPrivateKey = Core.LoadPrivateKey(Utilities.HexToBinary(privateKey), Encoding.UTF8.GetBytes(seckeypass));

var file = Path.Combine("Data", "testfile.jpg");
var signedFile = Core.SignHashed(file, minisignPrivateKey);

var minisignSignature = Core.LoadSignatureFromFile(signedFile);
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));
Assert.Equal(expected, Utilities.BinaryToHex(minisignSignature.KeyId));
Assert.Equal(expected, Utilities.BinaryToHex(minisignPublicKey.KeyId));

Assert.True(Core.ValidateHashedSignature(file, minisignSignature, minisignPublicKey));
File.Delete(signedFile);
}

[Fact]
public void SignAndValidateHashed2Test()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
const string privateKey = "456453634232aeb543fbea3467ad996ac237b38646bcbc12e6232fbc0a8cd9a1ed46c7263af200000002000000000000004000000000992f22d875591d3bb7dc3f77caba3229e2f7b8afe655140bafabcb6c5d8b259366a2897624de65743de71f8f2dcc545a96c4b530ffd796d92f35eb02425f4196ab9a37ff2f542774d676625f8de689fa2da3e0a0250efd58347c35b927ca49ec4d93687be59d6e1a";
var minisignPrivateKey = Core.LoadPrivateKey(Utilities.HexToBinary(privateKey), Encoding.UTF8.GetBytes(seckeypass));

var file = Path.Combine("Data", "testfile.jpg");
var fileBinary = File.ReadAllBytes(file);
var signedFile = Core.SignHashed(file, minisignPrivateKey);

var minisignSignature = Core.LoadSignatureFromFile(Path.Combine("Data", "test.jpg.minisig"));
var minisignSignature = Core.LoadSignatureFromFile(signedFile);
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));
Assert.Equal(expected, Utilities.BinaryToHex(minisignSignature.KeyId));
Assert.Equal(expected, Utilities.BinaryToHex(minisignPublicKey.KeyId));

Assert.True(Core.ValidateSignature(file, minisignSignature, minisignPublicKey));
Assert.True(Core.ValidateHashedSignature(fileBinary, minisignSignature, minisignPublicKey));
File.Delete(signedFile);
}

[Fact]
public void SignAndValidateLegacyTest()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
const string privateKey = "456453634232aeb543fbea3467ad996ac237b38646bcbc12e6232fbc0a8cd9a1ed46c7263af200000002000000000000004000000000992f22d875591d3bb7dc3f77caba3229e2f7b8afe655140bafabcb6c5d8b259366a2897624de65743de71f8f2dcc545a96c4b530ffd796d92f35eb02425f4196ab9a37ff2f542774d676625f8de689fa2da3e0a0250efd58347c35b927ca49ec4d93687be59d6e1a";
var minisignPrivateKey = Core.LoadPrivateKey(Utilities.HexToBinary(privateKey), Encoding.UTF8.GetBytes(seckeypass));

var file = Path.Combine("Data", "testfile.jpg");
var signedFile = Core.SignLegacy(file, minisignPrivateKey);

var minisignSignature = Core.LoadSignatureFromFile(signedFile);
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));
Assert.Equal(expected, Utilities.BinaryToHex(minisignSignature.KeyId));
Assert.Equal(expected, Utilities.BinaryToHex(minisignPublicKey.KeyId));

Assert.True(Core.ValidateLegacySignature(file, minisignSignature, minisignPublicKey));
File.Delete(signedFile);
}

[Fact]
public void SignAndValidateLegacy2Test()
{
const string expected = "9d6f33b5e347042e";
const string seckeypass = "7e725ac9f52336f74dc54bbe2912855f79baacc08b008437809fq5527f1b2256";
const string privateKey = "456453634232aeb543fbea3467ad996ac237b38646bcbc12e6232fbc0a8cd9a1ed46c7263af200000002000000000000004000000000992f22d875591d3bb7dc3f77caba3229e2f7b8afe655140bafabcb6c5d8b259366a2897624de65743de71f8f2dcc545a96c4b530ffd796d92f35eb02425f4196ab9a37ff2f542774d676625f8de689fa2da3e0a0250efd58347c35b927ca49ec4d93687be59d6e1a";
var minisignPrivateKey = Core.LoadPrivateKey(Utilities.HexToBinary(privateKey), Encoding.UTF8.GetBytes(seckeypass));

var file = Path.Combine("Data", "testfile.jpg");
var fileBinary = File.ReadAllBytes(file);
var signedFile = Core.SignLegacy(file, minisignPrivateKey);

var minisignSignature = Core.LoadSignatureFromFile(signedFile);
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));
Assert.Equal(expected, Utilities.BinaryToHex(minisignSignature.KeyId));
Assert.Equal(expected, Utilities.BinaryToHex(minisignPublicKey.KeyId));

Assert.True(Core.ValidateLegacySignature(fileBinary, minisignSignature, minisignPublicKey));
File.Delete(signedFile);
}

[Fact]
Expand All @@ -85,18 +155,30 @@ public void ValidateHashedSignature()
var file = Path.Combine("Data", "testfile.jpg");
var fileBinary = File.ReadAllBytes(file);

var minisignSignature = Core.LoadSignatureFromFile(Path.Combine("Data", "test.jpg.minisig-hashed"));
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test2.pub"));
var minisignSignature = Core.LoadSignatureFromFile(Path.Combine("Data", "test.jpg.minisig"));
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));

Assert.True(Core.ValidateSignature(file, minisignSignature, minisignPublicKey));
Assert.True(Core.ValidateHashedSignature(fileBinary, minisignSignature, minisignPublicKey));
}

[Fact]
public void ValidateLegacySignature()
{
var file = Path.Combine("Data", "testfile.jpg");
var fileBinary = File.ReadAllBytes(file);

var minisignSignature = Core.LoadSignatureFromFile(Path.Combine("Data", "test.jpg.minisig-legacy"));
var minisignPublicKey = Core.LoadPublicKeyFromFile(Path.Combine("Data", "test.pub"));

Assert.True(Core.ValidateLegacySignature(file, minisignSignature, minisignPublicKey));
}

[Fact]
public void LoadSignatureFromStringTest()
{
const string expected = "9d6f33b5e347042e";
const string signatureString = "RWSdbzO140cELi+edKSQMZw/yrCDB3aetMNoPYsESNapZuUfHeE8JunmfFNykkZbXWRMy+0Y8aaONyhdGSZtbEXlw32RpDtMmgw=";
const string trustedComment = "trusted comment: timestamp: 1439294334 file: testfile.jpg";
const string trustedComment = "trusted comment: timestamp: 1439294334 file: testfile.jpg";
const string globalSignature = "sXw0VdGKvIgZibPYp9bR5jz01dRkBbWzEBFLpY/+u7MGwk4HJT/Kj8aB1iXW3w6n9/gSv33cd2sk7uDVFclIAA==";
var minisignSignature = Core.LoadSignatureFromString(signatureString, trustedComment, globalSignature);
Assert.Equal(expected, Utilities.BinaryToHex(minisignSignature.KeyId));
Expand Down
6 changes: 3 additions & 3 deletions Minisign.Net.Tests/Data/test.jpg.minisig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
untrusted comment: signature from minisign secret key
RWSdbzO140cELi+edKSQMZw/yrCDB3aetMNoPYsESNapZuUfHeE8JunmfFNykkZbXWRMy+0Y8aaONyhdGSZtbEXlw32RpDtMmgw=
trusted comment: timestamp: 1439294334 file: testfile.jpg
sXw0VdGKvIgZibPYp9bR5jz01dRkBbWzEBFLpY/+u7MGwk4HJT/Kj8aB1iXW3w6n9/gSv33cd2sk7uDVFclIAA==
RUSdbzO140cELjvXFidzF+eQAAZBjdqVGnUCcfR0q/uK4Cq2ApHdQuX4W8n0VA/ep4+vRnwWD9wuH3rlSqvmHjqq9saALhfHTAs=
trusted comment: timestamp:1763291678 file:testfile.jpg hashed
EmgYQcdc0B/35ZL202oDGlTmczYv40NlWOatNxjCu4FboErErG1L8Fh6OMsxjw5NPb5+LYf9eH3Nng4Lg8+ECw==
4 changes: 0 additions & 4 deletions Minisign.Net.Tests/Data/test.jpg.minisig-hashed

This file was deleted.

4 changes: 4 additions & 0 deletions Minisign.Net.Tests/Data/test.jpg.minisig-legacy
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RWSdbzO140cELve9DYyCHUaAHZ9x9L4TD5g4sze4h/myqaMr/jHyXO/SkUCXa17kzVk3hT7Pvntf5Yf2RXGY+YwaxZygyF+9nQ0=
trusted comment: timestamp:1763291664 file:testfile.jpg
eYe0V7nYy5w/zq/tFqOuJ4LhVH/Zy/38d2LphbWZCRQHfi0fMDSpEzg67sHZD9MMQX51TEs2SsDE2M7Z084CCA==
2 changes: 0 additions & 2 deletions Minisign.Net.Tests/Data/test2.key

This file was deleted.

2 changes: 0 additions & 2 deletions Minisign.Net.Tests/Data/test2.pub

This file was deleted.

9 changes: 2 additions & 7 deletions Minisign.Net.Tests/Minisign.Net.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

<ItemGroup>
<None Remove="Data\test.jpg.minisig" />
<None Remove="Data\test.jpg.minisig-legacy" />
<None Remove="Data\test.key" />
<None Remove="Data\test.pub" />
<None Remove="Data\testfile.jpg" />
Expand All @@ -19,7 +20,7 @@
<Content Include="Data\test.jpg.minisig">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\test.jpg.minisig-hashed">
<Content Include="Data\test.jpg.minisig-legacy">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\test.key">
Expand All @@ -28,12 +29,6 @@
<Content Include="Data\test.pub">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\test2.key">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\test2.pub">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Data\testfile.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Expand Down
Loading