Skip to content

Commit f196e81

Browse files
committed
Update to .Net 8
1 parent f2d7774 commit f196e81

16 files changed

+1419
-1479
lines changed

Effortless.Net.Encryption.Tests.Unit/ByteTests.cs

Lines changed: 247 additions & 250 deletions
Large diffs are not rendered by default.
Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,48 @@
11
using NUnit.Framework;
2+
using NUnit.Framework.Legacy;
23

3-
namespace Effortless.Net.Encryption.Tests.Unit
4+
namespace Effortless.Net.Encryption.Tests.Unit;
5+
6+
[TestFixture]
7+
public class DiffieHellmanTests
48
{
5-
[TestFixture]
6-
public class DiffieHellmanTests
9+
[Test]
10+
public void Encrypt_Decrypt()
711
{
8-
[Test]
9-
public void Encrypt_Decrypt()
10-
{
11-
const string text = "Hello World!";
12-
13-
var alice = new DiffieHellman();
14-
var bob = new DiffieHellman();
15-
16-
// Bob uses Alice's public key to encrypt his message.
17-
var secretMessage = bob.Encrypt(alice, text);
18-
19-
// Alice uses Bob's public key and IV to decrypt the secret message.
20-
var decryptedMessage = alice.Decrypt(bob, secretMessage);
21-
Assert.AreEqual(text, decryptedMessage);
22-
}
23-
24-
[Test]
25-
public void MultipleTests()
26-
{
27-
const string text = "Hello World!";
28-
29-
var alice = new DiffieHellman();
30-
var bob = new DiffieHellman();
31-
32-
var secretMessageA = alice.Encrypt(bob, text);
33-
var secretMessage1 = bob.Encrypt(alice, text);
34-
var decryptedMessage = alice.Decrypt(bob, secretMessage1);
35-
var secretMessageB = alice.Encrypt(bob, text);
36-
Assert.AreEqual(text, decryptedMessage);
37-
Assert.AreEqual(secretMessageA, secretMessageB);
38-
39-
// See if its repeatable due to IV being replaced by previous decryption
40-
var secretMessage2 = bob.Encrypt(alice, text);
41-
decryptedMessage = alice.Decrypt(bob, secretMessage2);
42-
Assert.AreEqual(text, decryptedMessage);
43-
44-
// Should be the same if nothing has changed
45-
Assert.AreEqual(secretMessage1, secretMessage2);
46-
}
12+
const string text = "Hello World!";
13+
14+
var alice = new DiffieHellman();
15+
var bob = new DiffieHellman();
16+
17+
// Bob uses Alice's public key to encrypt his message.
18+
var secretMessage = bob.Encrypt(alice, text);
19+
20+
// Alice uses Bob's public key and IV to decrypt the secret message.
21+
var decryptedMessage = alice.Decrypt(bob, secretMessage);
22+
ClassicAssert.AreEqual(text, decryptedMessage);
23+
}
24+
25+
[Test]
26+
public void MultipleTests()
27+
{
28+
const string text = "Hello World!";
29+
30+
var alice = new DiffieHellman();
31+
var bob = new DiffieHellman();
32+
33+
var secretMessageA = alice.Encrypt(bob, text);
34+
var secretMessage1 = bob.Encrypt(alice, text);
35+
var decryptedMessage = alice.Decrypt(bob, secretMessage1);
36+
var secretMessageB = alice.Encrypt(bob, text);
37+
ClassicAssert.AreEqual(text, decryptedMessage);
38+
ClassicAssert.AreEqual(secretMessageA, secretMessageB);
39+
40+
// See if its repeatable due to IV being replaced by previous decryption
41+
var secretMessage2 = bob.Encrypt(alice, text);
42+
decryptedMessage = alice.Decrypt(bob, secretMessage2);
43+
ClassicAssert.AreEqual(text, decryptedMessage);
44+
45+
// Should be the same if nothing has changed
46+
ClassicAssert.AreEqual(secretMessage1, secretMessage2);
4747
}
4848
}
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
using NUnit.Framework;
2+
using NUnit.Framework.Legacy;
23

3-
namespace Effortless.Net.Encryption.Tests.Unit
4+
namespace Effortless.Net.Encryption.Tests.Unit;
5+
6+
public class DigestTests
47
{
5-
public class DigestTests
8+
[Test]
9+
[TestCase(HashType.MD5, "", "ED8DEEF5BA6E0731D0C01EE7C4BAFC36")]
10+
[TestCase(HashType.SHA1, "", "D2EFCBBA102ED3339947E85F4141EB08926E40E9")]
11+
[TestCase(HashType.SHA256, "", "A07E4F7343246C82B26F32E56F85418D518D8B2F2DAE77F1D56FE7AF50DB97AF")]
12+
[TestCase(HashType.SHA384, "", "7428EA564921C0E1F5C927D4E72F0C4A01D9A7AC3D7A204C5A9D3040A88249953090D9763FEDA173FEE3FA71F75E27DD")]
13+
[TestCase(HashType.SHA512, "", "2C5F15C7829564C32AF70D9AEE7389BDE5D0544534010C9058D0D7A0CC7DE49656E0674041A0907B80B1B05E18B459B5428AE8EE0F43A680F0922EE3D00E6A14")]
14+
[TestCase(HashType.MD5, "key", "63602C271DFB9E8A2B16823A5DC5020E")]
15+
[TestCase(HashType.SHA1, "key", "6FD75D8D3D3A7FB244F04178AA50C8AF2180BA72")]
16+
[TestCase(HashType.SHA256, "key", "F7AAE2D999881387B8362976AD878D041527F78F7EFF7D1EAFA1A6212A2A4061")]
17+
[TestCase(HashType.SHA384, "key", "B78E547A75A256B7902F05378D452AB6C8192D48232E312B466E40E5ED9BE1A5B77053251C5D0177EFF1DDC2A6DE9B1E")]
18+
[TestCase(HashType.SHA512, "key", "A300C834A06AA8935B27991C2F3D044009AC1952E0B51845DD8AE2178F778C82F012C3A343266C41A493A8D16966C25A4F88E2A8FBEAE6AD8D5F0AA6FE29665A")]
19+
public void CreateAndCreateFromString(HashType hashType, string secretKey, string hash)
620
{
7-
[Test]
8-
[TestCase(HashType.MD5, "", "ED8DEEF5BA6E0731D0C01EE7C4BAFC36")]
9-
[TestCase(HashType.SHA1, "", "D2EFCBBA102ED3339947E85F4141EB08926E40E9")]
10-
[TestCase(HashType.SHA256, "", "A07E4F7343246C82B26F32E56F85418D518D8B2F2DAE77F1D56FE7AF50DB97AF")]
11-
[TestCase(HashType.SHA384, "", "7428EA564921C0E1F5C927D4E72F0C4A01D9A7AC3D7A204C5A9D3040A88249953090D9763FEDA173FEE3FA71F75E27DD")]
12-
[TestCase(HashType.SHA512, "", "2C5F15C7829564C32AF70D9AEE7389BDE5D0544534010C9058D0D7A0CC7DE49656E0674041A0907B80B1B05E18B459B5428AE8EE0F43A680F0922EE3D00E6A14")]
13-
[TestCase(HashType.MD5, "key", "63602C271DFB9E8A2B16823A5DC5020E")]
14-
[TestCase(HashType.SHA1, "key", "6FD75D8D3D3A7FB244F04178AA50C8AF2180BA72")]
15-
[TestCase(HashType.SHA256, "key", "F7AAE2D999881387B8362976AD878D041527F78F7EFF7D1EAFA1A6212A2A4061")]
16-
[TestCase(HashType.SHA384, "key", "B78E547A75A256B7902F05378D452AB6C8192D48232E312B466E40E5ED9BE1A5B77053251C5D0177EFF1DDC2A6DE9B1E")]
17-
[TestCase(HashType.SHA512, "key", "A300C834A06AA8935B27991C2F3D044009AC1952E0B51845DD8AE2178F778C82F012C3A343266C41A493A8D16966C25A4F88E2A8FBEAE6AD8D5F0AA6FE29665A")]
18-
public void CreateAndCreateFromString(HashType hashType, string secretKey, string hash)
19-
{
20-
const string data = "Hello";
21-
var digest1 = Digest.Create(hashType, data, secretKey);
22-
Assert.AreEqual(hash, digest1.Hash);
23-
Assert.AreEqual(data, digest1.Data);
24-
Assert.AreEqual(hashType, digest1.HashType);
21+
const string data = "Hello";
22+
var digest1 = Digest.Create(hashType, data, secretKey);
23+
ClassicAssert.AreEqual(hash, digest1.Hash);
24+
ClassicAssert.AreEqual(data, digest1.Data);
25+
ClassicAssert.AreEqual(hashType, digest1.HashType);
2526

26-
// Check its reversable
27-
var digest1String = digest1.ToString();
28-
var digest2 = Digest.CreateFromString(digest1String, secretKey);
29-
Assert.AreEqual(digest1.Data, digest2.Data);
30-
Assert.AreEqual(digest1.Hash, digest2.Hash);
31-
Assert.AreEqual(hashType, digest2.HashType);
32-
}
27+
// Check its reversable
28+
var digest1String = digest1.ToString();
29+
var digest2 = Digest.CreateFromString(digest1String, secretKey);
30+
ClassicAssert.AreEqual(digest1.Data, digest2.Data);
31+
ClassicAssert.AreEqual(digest1.Hash, digest2.Hash);
32+
ClassicAssert.AreEqual(hashType, digest2.HashType);
3333
}
3434
}
Lines changed: 81 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,99 @@
11
using System;
22
using NUnit.Framework;
3+
using NUnit.Framework.Legacy;
34

4-
namespace Effortless.Net.Encryption.Tests.Unit
5+
namespace Effortless.Net.Encryption.Tests.Unit;
6+
7+
[TestFixture]
8+
public class DigitalSignatureTests
59
{
6-
[TestFixture]
7-
public class DigitalSignatureTests
10+
[OneTimeSetUp]
11+
public void OneTimeSetUp()
812
{
9-
private byte[] _hash;
13+
_hash = Hash.Create(HashType.SHA256, "Hello world", string.Empty);
14+
}
1015

11-
[OneTimeSetUp]
12-
public void OneTimeSetUp()
13-
{
14-
_hash = Hash.Create(HashType.SHA256, "Hello world", string.Empty);
15-
}
16-
17-
[Test]
18-
[TestCase(512)]
19-
[TestCase(1024)]
20-
[TestCase(2048)]
21-
[TestCase(4096)]
22-
//[TestCase(8192)] // Slow
23-
//[TestCase(16384)] // Very slow
24-
public void KeySizeTests(int keySize)
25-
{
26-
var ds = new DigitalSignature(keySize, "SHA256");
27-
ds.AssignNewKey();
28-
29-
var signature = ds.SignData(_hash);
30-
var result = ds.VerifySignature(_hash, signature);
31-
Assert.IsTrue(result);
32-
}
33-
34-
[Test]
35-
[TestCase(1024, "SHA1")]
36-
[TestCase(1024, "SHA256")]
37-
[TestCase(1024, "SHA384")]
38-
[TestCase(1024, "SHA512")]
39-
[TestCase(2048, "SHA1")]
40-
[TestCase(2048, "SHA256")]
41-
[TestCase(2048, "SHA384")]
42-
[TestCase(2048, "SHA512")]
43-
public void HashAlgorithmTests(int keySize, string hashAlgorithm)
44-
{
45-
var ds = new DigitalSignature(keySize, hashAlgorithm);
46-
ds.AssignNewKey();
47-
48-
byte[] hash;
49-
switch (hashAlgorithm)
50-
{
51-
case "SHA1":
52-
hash = Hash.Create(HashType.SHA1, "Hello world", string.Empty);
53-
break;
54-
case "SHA256":
55-
hash = Hash.Create(HashType.SHA256, "Hello world", string.Empty);
56-
break;
57-
case "SHA384":
58-
hash = Hash.Create(HashType.SHA384, "Hello world", string.Empty);
59-
break;
60-
case "SHA512":
61-
hash = Hash.Create(HashType.SHA512, "Hello world", string.Empty);
62-
break;
63-
default:
64-
throw new ArgumentException("hashAlgorithm");
65-
}
66-
var signature = ds.SignData(hash);
67-
var result = ds.VerifySignature(hash, signature);
68-
Assert.IsTrue(result);
69-
}
70-
71-
[Test]
72-
public void SavedPublicAndPrivateKeysMatch()
73-
{
74-
var ds = new DigitalSignature();
75-
ds.AssignNewKey();
16+
private byte[] _hash;
17+
18+
[Test]
19+
[TestCase(512)]
20+
[TestCase(1024)]
21+
[TestCase(2048)]
22+
[TestCase(4096)]
23+
//[TestCase(8192)] // Slow
24+
//[TestCase(16384)] // Very slow
25+
public void KeySizeTests(int keySize)
26+
{
27+
var ds = new DigitalSignature(keySize, "SHA256");
28+
ds.AssignNewKey();
7629

77-
ds.SavePublicKey(out var exponent1, out var modulus1);
78-
ds.SavePrivateKey(out var exponent2, out var modulus2, out var p, out var q, out var dp, out var dq, out var inverseQ, out var d);
30+
var signature = ds.SignData(_hash);
31+
var result = ds.VerifySignature(_hash, signature);
32+
ClassicAssert.IsTrue(result);
33+
}
7934

80-
Assert.AreEqual(exponent1, exponent2);
81-
Assert.AreEqual(modulus1, modulus2);
82-
}
35+
[Test]
36+
[TestCase(1024, "SHA1")]
37+
[TestCase(1024, "SHA256")]
38+
[TestCase(1024, "SHA384")]
39+
[TestCase(1024, "SHA512")]
40+
[TestCase(2048, "SHA1")]
41+
[TestCase(2048, "SHA256")]
42+
[TestCase(2048, "SHA384")]
43+
[TestCase(2048, "SHA512")]
44+
public void HashAlgorithmTests(int keySize, string hashAlgorithm)
45+
{
46+
var ds = new DigitalSignature(keySize, hashAlgorithm);
47+
ds.AssignNewKey();
8348

84-
[Test]
85-
public void SaveAndLoadKeys()
49+
var hash = hashAlgorithm switch
8650
{
87-
var ds = new DigitalSignature();
88-
ds.AssignNewKey();
51+
"SHA1" => Hash.Create(HashType.SHA1, "Hello world", string.Empty),
52+
"SHA256" => Hash.Create(HashType.SHA256, "Hello world", string.Empty),
53+
"SHA384" => Hash.Create(HashType.SHA384, "Hello world", string.Empty),
54+
"SHA512" => Hash.Create(HashType.SHA512, "Hello world", string.Empty),
55+
_ => throw new ArgumentException("hashAlgorithm")
56+
};
57+
var signature = ds.SignData(hash);
58+
var result = ds.VerifySignature(hash, signature);
59+
ClassicAssert.IsTrue(result);
60+
}
61+
62+
[Test]
63+
public void SavedPublicAndPrivateKeysMatch()
64+
{
65+
var ds = new DigitalSignature();
66+
ds.AssignNewKey();
67+
68+
ds.SavePublicKey(out var exponent1, out var modulus1);
69+
ds.SavePrivateKey(out var exponent2, out var modulus2, out _, out _, out _, out _, out _, out _);
70+
71+
ClassicAssert.AreEqual(exponent1, exponent2);
72+
ClassicAssert.AreEqual(modulus1, modulus2);
73+
}
74+
75+
[Test]
76+
public void SaveAndLoadKeys()
77+
{
78+
var ds = new DigitalSignature();
79+
ds.AssignNewKey();
8980

90-
ds.SavePublicKey(out var exponent1, out var modulus1);
91-
ds.SavePrivateKey(out var exponent2, out var modulus2, out var p, out var q, out var dp, out var dq, out var inverseQ, out var d);
81+
ds.SavePublicKey(out var exponent1, out var modulus1);
82+
ds.SavePrivateKey(out var exponent2, out var modulus2, out var p, out var q, out var dp, out var dq, out var inverseQ, out var d);
9283

93-
var signature1 = ds.SignData(_hash);
94-
var result1 = ds.VerifySignature(_hash, signature1);
95-
Assert.IsTrue(result1);
84+
var signature1 = ds.SignData(_hash);
85+
var result1 = ds.VerifySignature(_hash, signature1);
86+
ClassicAssert.IsTrue(result1);
9687

9788

98-
var sut = new DigitalSignature();
99-
sut.LoadPublicKey(exponent1, modulus1);
100-
sut.LoadPrivateKey(exponent2, modulus2, p, q, dp, dq, inverseQ, d);
89+
var sut = new DigitalSignature();
90+
sut.LoadPublicKey(exponent1, modulus1);
91+
sut.LoadPrivateKey(exponent2, modulus2, p, q, dp, dq, inverseQ, d);
10192

102-
var signature2 = ds.SignData(_hash);
103-
var result2 = ds.VerifySignature(_hash, signature2);
104-
Assert.IsTrue(result2);
93+
var signature2 = ds.SignData(_hash);
94+
var result2 = ds.VerifySignature(_hash, signature2);
95+
ClassicAssert.IsTrue(result2);
10596

106-
Assert.AreEqual(signature1, signature2);
107-
}
97+
ClassicAssert.AreEqual(signature1, signature2);
10898
}
10999
}

Effortless.Net.Encryption.Tests.Unit/Effortless.Net.Encryption.Tests.Unit.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net5.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
9-
<PackageReference Include="NUnit" Version="3.13.2" />
10-
<PackageReference Include="NUnit3TestAdapter" Version="4.1.0" />
8+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
9+
<PackageReference Include="NUnit" Version="4.1.0" />
10+
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
1111
</ItemGroup>
1212

1313
<ItemGroup>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">Latest</s:String></wpf:ResourceDictionary>

0 commit comments

Comments
 (0)