11using System ;
22using 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}
0 commit comments