Skip to content

Commit e11e77e

Browse files
author
Palmer Cox
committed
---
yaml --- r: 64991 b: refs/heads/snap-stage3 c: 3cac628 h: refs/heads/master i: 64989: 0daffbf 64987: c5d354f 64983: 40580fe 64975: 7f291d6 64959: f4843b8 v: v3
1 parent ce88133 commit e11e77e

File tree

2 files changed

+51
-74
lines changed

2 files changed

+51
-74
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 2d28d645422c1617be58c8ca7ad9a457264ca850
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: 5b0155515505f0898d21d2dc49dd30e32a916264
4+
refs/heads/snap-stage3: 3cac62822edf3715afdaa2770333f00f38a51545
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/libextra/crypto/sha2.rs

Lines changed: 50 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -267,48 +267,6 @@ impl Engine512 {
267267

268268
self.finished = true;
269269
}
270-
271-
fn result_512(&mut self, out: &mut [u8]) {
272-
self.finish();
273-
274-
from_u64(self.H0, out.mut_slice(0, 8));
275-
from_u64(self.H1, out.mut_slice(8, 16));
276-
from_u64(self.H2, out.mut_slice(16, 24));
277-
from_u64(self.H3, out.mut_slice(24, 32));
278-
from_u64(self.H4, out.mut_slice(32, 40));
279-
from_u64(self.H5, out.mut_slice(40, 48));
280-
from_u64(self.H6, out.mut_slice(48, 56));
281-
from_u64(self.H7, out.mut_slice(56, 64));
282-
}
283-
284-
fn result_384(&mut self, out: &mut [u8]) {
285-
self.finish();
286-
287-
from_u64(self.H0, out.mut_slice(0, 8));
288-
from_u64(self.H1, out.mut_slice(8, 16));
289-
from_u64(self.H2, out.mut_slice(16, 24));
290-
from_u64(self.H3, out.mut_slice(24, 32));
291-
from_u64(self.H4, out.mut_slice(32, 40));
292-
from_u64(self.H5, out.mut_slice(40, 48));
293-
}
294-
295-
fn result_256(&mut self, out: &mut [u8]) {
296-
self.finish();
297-
298-
from_u64(self.H0, out.mut_slice(0, 8));
299-
from_u64(self.H1, out.mut_slice(8, 16));
300-
from_u64(self.H2, out.mut_slice(16, 24));
301-
from_u64(self.H3, out.mut_slice(24, 32));
302-
}
303-
304-
fn result_224(&mut self, out: &mut [u8]) {
305-
self.finish();
306-
307-
from_u64(self.H0, out.mut_slice(0, 8));
308-
from_u64(self.H1, out.mut_slice(8, 16));
309-
from_u64(self.H2, out.mut_slice(16, 24));
310-
from_u32((self.H3 >> 32) as u32, out.mut_slice(24, 28));
311-
}
312270
}
313271

314272
// Constants necessary for SHA-2 512 family of digests.
@@ -372,7 +330,17 @@ impl Digest for Sha512 {
372330
}
373331

374332
fn result(&mut self, out: &mut [u8]) {
375-
self.engine.result_512(out)
333+
self.engine.finish();
334+
335+
from_u64(self.engine.H0, out.mut_slice(0, 8));
336+
from_u64(self.engine.H1, out.mut_slice(8, 16));
337+
from_u64(self.engine.H2, out.mut_slice(16, 24));
338+
from_u64(self.engine.H3, out.mut_slice(24, 32));
339+
from_u64(self.engine.H4, out.mut_slice(32, 40));
340+
from_u64(self.engine.H5, out.mut_slice(40, 48));
341+
from_u64(self.engine.H6, out.mut_slice(48, 56));
342+
from_u64(self.engine.H7, out.mut_slice(56, 64));
343+
376344
}
377345

378346
fn reset(&mut self) {
@@ -428,7 +396,14 @@ impl Digest for Sha384 {
428396
}
429397

430398
fn result(&mut self, out: &mut [u8]) {
431-
self.engine.result_384(out)
399+
self.engine.finish();
400+
401+
from_u64(self.engine.H0, out.mut_slice(0, 8));
402+
from_u64(self.engine.H1, out.mut_slice(8, 16));
403+
from_u64(self.engine.H2, out.mut_slice(16, 24));
404+
from_u64(self.engine.H3, out.mut_slice(24, 32));
405+
from_u64(self.engine.H4, out.mut_slice(32, 40));
406+
from_u64(self.engine.H5, out.mut_slice(40, 48));
432407
}
433408

434409
fn reset(&mut self) {
@@ -484,7 +459,12 @@ impl Digest for Sha512Trunc256 {
484459
}
485460

486461
fn result(&mut self, out: &mut [u8]) {
487-
self.engine.result_256(out)
462+
self.engine.finish();
463+
464+
from_u64(self.engine.H0, out.mut_slice(0, 8));
465+
from_u64(self.engine.H1, out.mut_slice(8, 16));
466+
from_u64(self.engine.H2, out.mut_slice(16, 24));
467+
from_u64(self.engine.H3, out.mut_slice(24, 32));
488468
}
489469

490470
fn reset(&mut self) {
@@ -540,7 +520,12 @@ impl Digest for Sha512Trunc224 {
540520
}
541521

542522
fn result(&mut self, out: &mut [u8]) {
543-
self.engine.result_224(out)
523+
self.engine.finish();
524+
525+
from_u64(self.engine.H0, out.mut_slice(0, 8));
526+
from_u64(self.engine.H1, out.mut_slice(8, 16));
527+
from_u64(self.engine.H2, out.mut_slice(16, 24));
528+
from_u32((self.engine.H3 >> 32) as u32, out.mut_slice(24, 28));
544529
}
545530

546531
fn reset(&mut self) {
@@ -774,31 +759,6 @@ impl Engine256 {
774759

775760
self.finished = true;
776761
}
777-
778-
fn result_256(&mut self, out: &mut [u8]) {
779-
self.finish();
780-
781-
from_u32(self.H0, out.mut_slice(0, 4));
782-
from_u32(self.H1, out.mut_slice(4, 8));
783-
from_u32(self.H2, out.mut_slice(8, 12));
784-
from_u32(self.H3, out.mut_slice(12, 16));
785-
from_u32(self.H4, out.mut_slice(16, 20));
786-
from_u32(self.H5, out.mut_slice(20, 24));
787-
from_u32(self.H6, out.mut_slice(24, 28));
788-
from_u32(self.H7, out.mut_slice(28, 32));
789-
}
790-
791-
fn result_224(&mut self, out: &mut [u8]) {
792-
self.finish();
793-
794-
from_u32(self.H0, out.mut_slice(0, 4));
795-
from_u32(self.H1, out.mut_slice(4, 8));
796-
from_u32(self.H2, out.mut_slice(8, 12));
797-
from_u32(self.H3, out.mut_slice(12, 16));
798-
from_u32(self.H4, out.mut_slice(16, 20));
799-
from_u32(self.H5, out.mut_slice(20, 24));
800-
from_u32(self.H6, out.mut_slice(24, 28));
801-
}
802762
}
803763

804764
static K32: [u32, ..64] = [
@@ -857,7 +817,16 @@ impl Digest for Sha256 {
857817
}
858818

859819
fn result(&mut self, out: &mut [u8]) {
860-
self.engine.result_256(out)
820+
self.engine.finish();
821+
822+
from_u32(self.engine.H0, out.mut_slice(0, 4));
823+
from_u32(self.engine.H1, out.mut_slice(4, 8));
824+
from_u32(self.engine.H2, out.mut_slice(8, 12));
825+
from_u32(self.engine.H3, out.mut_slice(12, 16));
826+
from_u32(self.engine.H4, out.mut_slice(16, 20));
827+
from_u32(self.engine.H5, out.mut_slice(20, 24));
828+
from_u32(self.engine.H6, out.mut_slice(24, 28));
829+
from_u32(self.engine.H7, out.mut_slice(28, 32));
861830
}
862831

863832
fn reset(&mut self) {
@@ -913,7 +882,15 @@ impl Digest for Sha224 {
913882
}
914883

915884
fn result(&mut self, out: &mut [u8]) {
916-
self.engine.result_224(out)
885+
self.engine.finish();
886+
887+
from_u32(self.engine.H0, out.mut_slice(0, 4));
888+
from_u32(self.engine.H1, out.mut_slice(4, 8));
889+
from_u32(self.engine.H2, out.mut_slice(8, 12));
890+
from_u32(self.engine.H3, out.mut_slice(12, 16));
891+
from_u32(self.engine.H4, out.mut_slice(16, 20));
892+
from_u32(self.engine.H5, out.mut_slice(20, 24));
893+
from_u32(self.engine.H6, out.mut_slice(24, 28));
917894
}
918895

919896
fn reset(&mut self) {

0 commit comments

Comments
 (0)