@@ -59,6 +59,7 @@ import "C"
59
59
import (
60
60
"errors"
61
61
"hash"
62
+ "internal/byteorder"
62
63
"unsafe"
63
64
)
64
65
@@ -162,14 +163,14 @@ func (h *sha1Hash) MarshalBinary() ([]byte, error) {
162
163
d := (* sha1Ctx )(unsafe .Pointer (& h .ctx ))
163
164
b := make ([]byte , 0 , sha1MarshaledSize )
164
165
b = append (b , sha1Magic ... )
165
- b = appendUint32 (b , d .h [0 ])
166
- b = appendUint32 (b , d .h [1 ])
167
- b = appendUint32 (b , d .h [2 ])
168
- b = appendUint32 (b , d .h [3 ])
169
- b = appendUint32 (b , d .h [4 ])
166
+ b = byteorder . BeAppendUint32 (b , d .h [0 ])
167
+ b = byteorder . BeAppendUint32 (b , d .h [1 ])
168
+ b = byteorder . BeAppendUint32 (b , d .h [2 ])
169
+ b = byteorder . BeAppendUint32 (b , d .h [3 ])
170
+ b = byteorder . BeAppendUint32 (b , d .h [4 ])
170
171
b = append (b , d .x [:d .nx ]... )
171
172
b = b [:len (b )+ len (d .x )- int (d .nx )] // already zero
172
- b = appendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
173
+ b = byteorder . BeAppendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
173
174
return b , nil
174
175
}
175
176
@@ -288,35 +289,35 @@ func (h *sha224Hash) MarshalBinary() ([]byte, error) {
288
289
d := (* sha256Ctx )(unsafe .Pointer (& h .ctx ))
289
290
b := make ([]byte , 0 , marshaledSize256 )
290
291
b = append (b , magic224 ... )
291
- b = appendUint32 (b , d .h [0 ])
292
- b = appendUint32 (b , d .h [1 ])
293
- b = appendUint32 (b , d .h [2 ])
294
- b = appendUint32 (b , d .h [3 ])
295
- b = appendUint32 (b , d .h [4 ])
296
- b = appendUint32 (b , d .h [5 ])
297
- b = appendUint32 (b , d .h [6 ])
298
- b = appendUint32 (b , d .h [7 ])
292
+ b = byteorder . BeAppendUint32 (b , d .h [0 ])
293
+ b = byteorder . BeAppendUint32 (b , d .h [1 ])
294
+ b = byteorder . BeAppendUint32 (b , d .h [2 ])
295
+ b = byteorder . BeAppendUint32 (b , d .h [3 ])
296
+ b = byteorder . BeAppendUint32 (b , d .h [4 ])
297
+ b = byteorder . BeAppendUint32 (b , d .h [5 ])
298
+ b = byteorder . BeAppendUint32 (b , d .h [6 ])
299
+ b = byteorder . BeAppendUint32 (b , d .h [7 ])
299
300
b = append (b , d .x [:d .nx ]... )
300
301
b = b [:len (b )+ len (d .x )- int (d .nx )] // already zero
301
- b = appendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
302
+ b = byteorder . BeAppendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
302
303
return b , nil
303
304
}
304
305
305
306
func (h * sha256Hash ) MarshalBinary () ([]byte , error ) {
306
307
d := (* sha256Ctx )(unsafe .Pointer (& h .ctx ))
307
308
b := make ([]byte , 0 , marshaledSize256 )
308
309
b = append (b , magic256 ... )
309
- b = appendUint32 (b , d .h [0 ])
310
- b = appendUint32 (b , d .h [1 ])
311
- b = appendUint32 (b , d .h [2 ])
312
- b = appendUint32 (b , d .h [3 ])
313
- b = appendUint32 (b , d .h [4 ])
314
- b = appendUint32 (b , d .h [5 ])
315
- b = appendUint32 (b , d .h [6 ])
316
- b = appendUint32 (b , d .h [7 ])
310
+ b = byteorder . BeAppendUint32 (b , d .h [0 ])
311
+ b = byteorder . BeAppendUint32 (b , d .h [1 ])
312
+ b = byteorder . BeAppendUint32 (b , d .h [2 ])
313
+ b = byteorder . BeAppendUint32 (b , d .h [3 ])
314
+ b = byteorder . BeAppendUint32 (b , d .h [4 ])
315
+ b = byteorder . BeAppendUint32 (b , d .h [5 ])
316
+ b = byteorder . BeAppendUint32 (b , d .h [6 ])
317
+ b = byteorder . BeAppendUint32 (b , d .h [7 ])
317
318
b = append (b , d .x [:d .nx ]... )
318
319
b = b [:len (b )+ len (d .x )- int (d .nx )] // already zero
319
- b = appendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
320
+ b = byteorder . BeAppendUint64 (b , uint64 (d .nl )>> 3 | uint64 (d .nh )<< 29 )
320
321
return b , nil
321
322
}
322
323
@@ -465,35 +466,35 @@ func (h *sha384Hash) MarshalBinary() ([]byte, error) {
465
466
d := (* sha512Ctx )(unsafe .Pointer (& h .ctx ))
466
467
b := make ([]byte , 0 , marshaledSize512 )
467
468
b = append (b , magic384 ... )
468
- b = appendUint64 (b , d .h [0 ])
469
- b = appendUint64 (b , d .h [1 ])
470
- b = appendUint64 (b , d .h [2 ])
471
- b = appendUint64 (b , d .h [3 ])
472
- b = appendUint64 (b , d .h [4 ])
473
- b = appendUint64 (b , d .h [5 ])
474
- b = appendUint64 (b , d .h [6 ])
475
- b = appendUint64 (b , d .h [7 ])
469
+ b = byteorder . BeAppendUint64 (b , d .h [0 ])
470
+ b = byteorder . BeAppendUint64 (b , d .h [1 ])
471
+ b = byteorder . BeAppendUint64 (b , d .h [2 ])
472
+ b = byteorder . BeAppendUint64 (b , d .h [3 ])
473
+ b = byteorder . BeAppendUint64 (b , d .h [4 ])
474
+ b = byteorder . BeAppendUint64 (b , d .h [5 ])
475
+ b = byteorder . BeAppendUint64 (b , d .h [6 ])
476
+ b = byteorder . BeAppendUint64 (b , d .h [7 ])
476
477
b = append (b , d .x [:d .nx ]... )
477
478
b = b [:len (b )+ len (d .x )- int (d .nx )] // already zero
478
- b = appendUint64 (b , d .nl >> 3 | d .nh << 61 )
479
+ b = byteorder . BeAppendUint64 (b , d .nl >> 3 | d .nh << 61 )
479
480
return b , nil
480
481
}
481
482
482
483
func (h * sha512Hash ) MarshalBinary () ([]byte , error ) {
483
484
d := (* sha512Ctx )(unsafe .Pointer (& h .ctx ))
484
485
b := make ([]byte , 0 , marshaledSize512 )
485
486
b = append (b , magic512 ... )
486
- b = appendUint64 (b , d .h [0 ])
487
- b = appendUint64 (b , d .h [1 ])
488
- b = appendUint64 (b , d .h [2 ])
489
- b = appendUint64 (b , d .h [3 ])
490
- b = appendUint64 (b , d .h [4 ])
491
- b = appendUint64 (b , d .h [5 ])
492
- b = appendUint64 (b , d .h [6 ])
493
- b = appendUint64 (b , d .h [7 ])
487
+ b = byteorder . BeAppendUint64 (b , d .h [0 ])
488
+ b = byteorder . BeAppendUint64 (b , d .h [1 ])
489
+ b = byteorder . BeAppendUint64 (b , d .h [2 ])
490
+ b = byteorder . BeAppendUint64 (b , d .h [3 ])
491
+ b = byteorder . BeAppendUint64 (b , d .h [4 ])
492
+ b = byteorder . BeAppendUint64 (b , d .h [5 ])
493
+ b = byteorder . BeAppendUint64 (b , d .h [6 ])
494
+ b = byteorder . BeAppendUint64 (b , d .h [7 ])
494
495
b = append (b , d .x [:d .nx ]... )
495
496
b = b [:len (b )+ len (d .x )- int (d .nx )] // already zero
496
- b = appendUint64 (b , d .nl >> 3 | d .nh << 61 )
497
+ b = byteorder . BeAppendUint64 (b , d .nl >> 3 | d .nh << 61 )
497
498
return b , nil
498
499
}
499
500
@@ -553,47 +554,10 @@ func (h *sha512Hash) UnmarshalBinary(b []byte) error {
553
554
return nil
554
555
}
555
556
556
- func appendUint64 (b []byte , x uint64 ) []byte {
557
- var a [8 ]byte
558
- putUint64 (a [:], x )
559
- return append (b , a [:]... )
560
- }
561
-
562
- func appendUint32 (b []byte , x uint32 ) []byte {
563
- var a [4 ]byte
564
- putUint32 (a [:], x )
565
- return append (b , a [:]... )
566
- }
567
-
568
557
func consumeUint64 (b []byte ) ([]byte , uint64 ) {
569
- _ = b [7 ]
570
- x := uint64 (b [7 ]) | uint64 (b [6 ])<< 8 | uint64 (b [5 ])<< 16 | uint64 (b [4 ])<< 24 |
571
- uint64 (b [3 ])<< 32 | uint64 (b [2 ])<< 40 | uint64 (b [1 ])<< 48 | uint64 (b [0 ])<< 56
572
- return b [8 :], x
558
+ return b [8 :], byteorder .BeUint64 (b )
573
559
}
574
560
575
561
func consumeUint32 (b []byte ) ([]byte , uint32 ) {
576
- _ = b [3 ]
577
- x := uint32 (b [3 ]) | uint32 (b [2 ])<< 8 | uint32 (b [1 ])<< 16 | uint32 (b [0 ])<< 24
578
- return b [4 :], x
579
- }
580
-
581
- func putUint64 (x []byte , s uint64 ) {
582
- _ = x [7 ]
583
- x [0 ] = byte (s >> 56 )
584
- x [1 ] = byte (s >> 48 )
585
- x [2 ] = byte (s >> 40 )
586
- x [3 ] = byte (s >> 32 )
587
- x [4 ] = byte (s >> 24 )
588
- x [5 ] = byte (s >> 16 )
589
- x [6 ] = byte (s >> 8 )
590
- x [7 ] = byte (s )
591
- }
592
-
593
- func putUint32 (x []byte , s uint32 ) {
594
- _ = x [3 ]
595
- x [0 ] = byte (s >> 24 )
596
- x [1 ] = byte (s >> 16 )
597
- x [2 ] = byte (s >> 8 )
598
- x [3 ] = byte (s )
562
+ return b [4 :], byteorder .BeUint32 (b )
599
563
}
0 commit comments