44using Xunit ;
55using SauceControl . Blake2Fast ;
66
7- internal static class ArrayExtension
8- {
9- public static ArraySegment < T > Slice < T > ( this T [ ] a , int start , int count ) => new ArraySegment < T > ( a , start , count ) ;
10- }
11-
127public class RfcSelfTest
138{
149 private static readonly byte [ ] blake2bCheck = new byte [ ] {
@@ -128,26 +123,28 @@ private static bool blake2bHmacSelfTest()
128123
129124 foreach ( int diglen in new [ ] { 20 , 32 , 48 , 64 } )
130125 {
131- var halg = Blake2b . CreateHashAlgorithm ( diglen ) ;
132- var hmac = Blake2b . CreateHMAC ( diglen , getTestSequence ( diglen ) ) ;
133-
134- foreach ( int msglen in new [ ] { 0 , 3 , 128 , 129 , 255 , 1024 } )
126+ using ( var halg = Blake2b . CreateHashAlgorithm ( diglen ) )
127+ using ( var hmac = Blake2b . CreateHMAC ( diglen , getTestSequence ( diglen ) ) )
135128 {
136- var msg = getTestSequence ( msglen ) ;
129+ foreach ( int msglen in new [ ] { 0 , 3 , 128 , 129 , 255 , 1024 } )
130+ {
131+ var msg = getTestSequence ( msglen ) ;
137132
138133#if ICRYPTOTRANSFORM
139- inc . TransformBlock ( halg . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
140- inc . TransformBlock ( hmac . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
134+ inc . TransformBlock ( halg . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
135+ inc . TransformBlock ( hmac . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
141136#else
142- inc . Update ( halg . ComputeHash ( msg ) ) ;
143- inc . Update ( hmac . ComputeHash ( msg ) ) ;
137+ inc . Update ( halg . ComputeHash ( msg ) ) ;
138+ inc . Update ( hmac . ComputeHash ( msg ) ) ;
144139#endif
140+ }
145141 }
146142 }
147143
148144#if ICRYPTOTRANSFORM
149145 inc . TransformFinalBlock ( Array . Empty < byte > ( ) , 0 , 0 ) ;
150146 var hash = inc . Hash ;
147+ inc . Dispose ( ) ;
151148#else
152149 var hash = inc . Finish ( ) ;
153150#endif
@@ -165,26 +162,28 @@ private static bool blake2sHmacSelfTest()
165162
166163 foreach ( int diglen in new [ ] { 16 , 20 , 28 , 32 } )
167164 {
168- var halg = Blake2s . CreateHashAlgorithm ( diglen ) ;
169- var hmac = Blake2s . CreateHMAC ( diglen , getTestSequence ( diglen ) ) ;
170-
171- foreach ( int msglen in new [ ] { 0 , 3 , 64 , 65 , 255 , 1024 } )
165+ using ( var halg = Blake2s . CreateHashAlgorithm ( diglen ) )
166+ using ( var hmac = Blake2s . CreateHMAC ( diglen , getTestSequence ( diglen ) ) )
172167 {
173- var msg = getTestSequence ( msglen ) ;
168+ foreach ( int msglen in new [ ] { 0 , 3 , 64 , 65 , 255 , 1024 } )
169+ {
170+ var msg = getTestSequence ( msglen ) ;
174171
175172#if ICRYPTOTRANSFORM
176- inc . TransformBlock ( halg . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
177- inc . TransformBlock ( hmac . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
173+ inc . TransformBlock ( halg . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
174+ inc . TransformBlock ( hmac . ComputeHash ( msg ) , 0 , diglen , null , 0 ) ;
178175#else
179- inc . Update ( halg . ComputeHash ( msg ) ) ;
180- inc . Update ( hmac . ComputeHash ( msg ) ) ;
176+ inc . Update ( halg . ComputeHash ( msg ) ) ;
177+ inc . Update ( hmac . ComputeHash ( msg ) ) ;
181178#endif
179+ }
182180 }
183181 }
184182
185183#if ICRYPTOTRANSFORM
186184 inc . TransformFinalBlock ( Array . Empty < byte > ( ) , 0 , 0 ) ;
187185 var hash = inc . Hash ;
186+ inc . Dispose ( ) ;
188187#else
189188 var hash = inc . Finish ( ) ;
190189#endif
0 commit comments