@@ -270,48 +270,6 @@ impl Engine512 {
270
270
271
271
self . finished = true ;
272
272
}
273
-
274
- fn result_512 ( & mut self , out : & mut [ u8 ] ) {
275
- self . finish ( ) ;
276
-
277
- from_u64 ( self . H0 , out. mut_slice ( 0 , 8 ) ) ;
278
- from_u64 ( self . H1 , out. mut_slice ( 8 , 16 ) ) ;
279
- from_u64 ( self . H2 , out. mut_slice ( 16 , 24 ) ) ;
280
- from_u64 ( self . H3 , out. mut_slice ( 24 , 32 ) ) ;
281
- from_u64 ( self . H4 , out. mut_slice ( 32 , 40 ) ) ;
282
- from_u64 ( self . H5 , out. mut_slice ( 40 , 48 ) ) ;
283
- from_u64 ( self . H6 , out. mut_slice ( 48 , 56 ) ) ;
284
- from_u64 ( self . H7 , out. mut_slice ( 56 , 64 ) ) ;
285
- }
286
-
287
- fn result_384 ( & mut self , out : & mut [ u8 ] ) {
288
- self . finish ( ) ;
289
-
290
- from_u64 ( self . H0 , out. mut_slice ( 0 , 8 ) ) ;
291
- from_u64 ( self . H1 , out. mut_slice ( 8 , 16 ) ) ;
292
- from_u64 ( self . H2 , out. mut_slice ( 16 , 24 ) ) ;
293
- from_u64 ( self . H3 , out. mut_slice ( 24 , 32 ) ) ;
294
- from_u64 ( self . H4 , out. mut_slice ( 32 , 40 ) ) ;
295
- from_u64 ( self . H5 , out. mut_slice ( 40 , 48 ) ) ;
296
- }
297
-
298
- fn result_256 ( & mut self , out : & mut [ u8 ] ) {
299
- self . finish ( ) ;
300
-
301
- from_u64 ( self . H0 , out. mut_slice ( 0 , 8 ) ) ;
302
- from_u64 ( self . H1 , out. mut_slice ( 8 , 16 ) ) ;
303
- from_u64 ( self . H2 , out. mut_slice ( 16 , 24 ) ) ;
304
- from_u64 ( self . H3 , out. mut_slice ( 24 , 32 ) ) ;
305
- }
306
-
307
- fn result_224 ( & mut self , out : & mut [ u8 ] ) {
308
- self . finish ( ) ;
309
-
310
- from_u64 ( self . H0 , out. mut_slice ( 0 , 8 ) ) ;
311
- from_u64 ( self . H1 , out. mut_slice ( 8 , 16 ) ) ;
312
- from_u64 ( self . H2 , out. mut_slice ( 16 , 24 ) ) ;
313
- from_u32 ( ( self . H3 >> 32 ) as u32 , out. mut_slice ( 24 , 28 ) ) ;
314
- }
315
273
}
316
274
317
275
// Constants necessary for SHA-2 512 family of digests.
@@ -375,7 +333,17 @@ impl Digest for Sha512 {
375
333
}
376
334
377
335
fn result ( & mut self , out : & mut [ u8 ] ) {
378
- self . engine . result_512 ( out)
336
+ self . engine . finish ( ) ;
337
+
338
+ from_u64 ( self . engine . H0 , out. mut_slice ( 0 , 8 ) ) ;
339
+ from_u64 ( self . engine . H1 , out. mut_slice ( 8 , 16 ) ) ;
340
+ from_u64 ( self . engine . H2 , out. mut_slice ( 16 , 24 ) ) ;
341
+ from_u64 ( self . engine . H3 , out. mut_slice ( 24 , 32 ) ) ;
342
+ from_u64 ( self . engine . H4 , out. mut_slice ( 32 , 40 ) ) ;
343
+ from_u64 ( self . engine . H5 , out. mut_slice ( 40 , 48 ) ) ;
344
+ from_u64 ( self . engine . H6 , out. mut_slice ( 48 , 56 ) ) ;
345
+ from_u64 ( self . engine . H7 , out. mut_slice ( 56 , 64 ) ) ;
346
+
379
347
}
380
348
381
349
fn reset ( & mut self ) {
@@ -431,7 +399,14 @@ impl Digest for Sha384 {
431
399
}
432
400
433
401
fn result ( & mut self , out : & mut [ u8 ] ) {
434
- self . engine . result_384 ( out)
402
+ self . engine . finish ( ) ;
403
+
404
+ from_u64 ( self . engine . H0 , out. mut_slice ( 0 , 8 ) ) ;
405
+ from_u64 ( self . engine . H1 , out. mut_slice ( 8 , 16 ) ) ;
406
+ from_u64 ( self . engine . H2 , out. mut_slice ( 16 , 24 ) ) ;
407
+ from_u64 ( self . engine . H3 , out. mut_slice ( 24 , 32 ) ) ;
408
+ from_u64 ( self . engine . H4 , out. mut_slice ( 32 , 40 ) ) ;
409
+ from_u64 ( self . engine . H5 , out. mut_slice ( 40 , 48 ) ) ;
435
410
}
436
411
437
412
fn reset ( & mut self ) {
@@ -487,7 +462,12 @@ impl Digest for Sha512Trunc256 {
487
462
}
488
463
489
464
fn result ( & mut self , out : & mut [ u8 ] ) {
490
- self . engine . result_256 ( out)
465
+ self . engine . finish ( ) ;
466
+
467
+ from_u64 ( self . engine . H0 , out. mut_slice ( 0 , 8 ) ) ;
468
+ from_u64 ( self . engine . H1 , out. mut_slice ( 8 , 16 ) ) ;
469
+ from_u64 ( self . engine . H2 , out. mut_slice ( 16 , 24 ) ) ;
470
+ from_u64 ( self . engine . H3 , out. mut_slice ( 24 , 32 ) ) ;
491
471
}
492
472
493
473
fn reset ( & mut self ) {
@@ -543,7 +523,12 @@ impl Digest for Sha512Trunc224 {
543
523
}
544
524
545
525
fn result ( & mut self , out : & mut [ u8 ] ) {
546
- self . engine . result_224 ( out)
526
+ self . engine . finish ( ) ;
527
+
528
+ from_u64 ( self . engine . H0 , out. mut_slice ( 0 , 8 ) ) ;
529
+ from_u64 ( self . engine . H1 , out. mut_slice ( 8 , 16 ) ) ;
530
+ from_u64 ( self . engine . H2 , out. mut_slice ( 16 , 24 ) ) ;
531
+ from_u32 ( ( self . engine . H3 >> 32 ) as u32 , out. mut_slice ( 24 , 28 ) ) ;
547
532
}
548
533
549
534
fn reset ( & mut self ) {
@@ -777,31 +762,6 @@ impl Engine256 {
777
762
778
763
self . finished = true ;
779
764
}
780
-
781
- fn result_256 ( & mut self , out : & mut [ u8 ] ) {
782
- self . finish ( ) ;
783
-
784
- from_u32 ( self . H0 , out. mut_slice ( 0 , 4 ) ) ;
785
- from_u32 ( self . H1 , out. mut_slice ( 4 , 8 ) ) ;
786
- from_u32 ( self . H2 , out. mut_slice ( 8 , 12 ) ) ;
787
- from_u32 ( self . H3 , out. mut_slice ( 12 , 16 ) ) ;
788
- from_u32 ( self . H4 , out. mut_slice ( 16 , 20 ) ) ;
789
- from_u32 ( self . H5 , out. mut_slice ( 20 , 24 ) ) ;
790
- from_u32 ( self . H6 , out. mut_slice ( 24 , 28 ) ) ;
791
- from_u32 ( self . H7 , out. mut_slice ( 28 , 32 ) ) ;
792
- }
793
-
794
- fn result_224 ( & mut self , out : & mut [ u8 ] ) {
795
- self . finish ( ) ;
796
-
797
- from_u32 ( self . H0 , out. mut_slice ( 0 , 4 ) ) ;
798
- from_u32 ( self . H1 , out. mut_slice ( 4 , 8 ) ) ;
799
- from_u32 ( self . H2 , out. mut_slice ( 8 , 12 ) ) ;
800
- from_u32 ( self . H3 , out. mut_slice ( 12 , 16 ) ) ;
801
- from_u32 ( self . H4 , out. mut_slice ( 16 , 20 ) ) ;
802
- from_u32 ( self . H5 , out. mut_slice ( 20 , 24 ) ) ;
803
- from_u32 ( self . H6 , out. mut_slice ( 24 , 28 ) ) ;
804
- }
805
765
}
806
766
807
767
static K32 : [ u32 , ..64 ] = [
@@ -860,7 +820,16 @@ impl Digest for Sha256 {
860
820
}
861
821
862
822
fn result ( & mut self , out : & mut [ u8 ] ) {
863
- self . engine . result_256 ( out)
823
+ self . engine . finish ( ) ;
824
+
825
+ from_u32 ( self . engine . H0 , out. mut_slice ( 0 , 4 ) ) ;
826
+ from_u32 ( self . engine . H1 , out. mut_slice ( 4 , 8 ) ) ;
827
+ from_u32 ( self . engine . H2 , out. mut_slice ( 8 , 12 ) ) ;
828
+ from_u32 ( self . engine . H3 , out. mut_slice ( 12 , 16 ) ) ;
829
+ from_u32 ( self . engine . H4 , out. mut_slice ( 16 , 20 ) ) ;
830
+ from_u32 ( self . engine . H5 , out. mut_slice ( 20 , 24 ) ) ;
831
+ from_u32 ( self . engine . H6 , out. mut_slice ( 24 , 28 ) ) ;
832
+ from_u32 ( self . engine . H7 , out. mut_slice ( 28 , 32 ) ) ;
864
833
}
865
834
866
835
fn reset ( & mut self ) {
@@ -916,7 +885,15 @@ impl Digest for Sha224 {
916
885
}
917
886
918
887
fn result ( & mut self , out : & mut [ u8 ] ) {
919
- self . engine . result_224 ( out)
888
+ self . engine . finish ( ) ;
889
+
890
+ from_u32 ( self . engine . H0 , out. mut_slice ( 0 , 4 ) ) ;
891
+ from_u32 ( self . engine . H1 , out. mut_slice ( 4 , 8 ) ) ;
892
+ from_u32 ( self . engine . H2 , out. mut_slice ( 8 , 12 ) ) ;
893
+ from_u32 ( self . engine . H3 , out. mut_slice ( 12 , 16 ) ) ;
894
+ from_u32 ( self . engine . H4 , out. mut_slice ( 16 , 20 ) ) ;
895
+ from_u32 ( self . engine . H5 , out. mut_slice ( 20 , 24 ) ) ;
896
+ from_u32 ( self . engine . H6 , out. mut_slice ( 24 , 28 ) ) ;
920
897
}
921
898
922
899
fn reset ( & mut self ) {
0 commit comments