Skip to content

Commit ac298a8

Browse files
committed
crypto/internal/boring: use internal/byteorder
1 parent 0fe775e commit ac298a8

File tree

1 file changed

+45
-81
lines changed
  • src/crypto/internal/boring

1 file changed

+45
-81
lines changed

src/crypto/internal/boring/sha.go

Lines changed: 45 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import "C"
5959
import (
6060
"errors"
6161
"hash"
62+
"internal/byteorder"
6263
"unsafe"
6364
)
6465

@@ -162,14 +163,14 @@ func (h *sha1Hash) MarshalBinary() ([]byte, error) {
162163
d := (*sha1Ctx)(unsafe.Pointer(&h.ctx))
163164
b := make([]byte, 0, sha1MarshaledSize)
164165
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])
170171
b = append(b, d.x[:d.nx]...)
171172
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)
173174
return b, nil
174175
}
175176

@@ -288,35 +289,35 @@ func (h *sha224Hash) MarshalBinary() ([]byte, error) {
288289
d := (*sha256Ctx)(unsafe.Pointer(&h.ctx))
289290
b := make([]byte, 0, marshaledSize256)
290291
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])
299300
b = append(b, d.x[:d.nx]...)
300301
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)
302303
return b, nil
303304
}
304305

305306
func (h *sha256Hash) MarshalBinary() ([]byte, error) {
306307
d := (*sha256Ctx)(unsafe.Pointer(&h.ctx))
307308
b := make([]byte, 0, marshaledSize256)
308309
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])
317318
b = append(b, d.x[:d.nx]...)
318319
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)
320321
return b, nil
321322
}
322323

@@ -465,35 +466,35 @@ func (h *sha384Hash) MarshalBinary() ([]byte, error) {
465466
d := (*sha512Ctx)(unsafe.Pointer(&h.ctx))
466467
b := make([]byte, 0, marshaledSize512)
467468
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])
476477
b = append(b, d.x[:d.nx]...)
477478
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)
479480
return b, nil
480481
}
481482

482483
func (h *sha512Hash) MarshalBinary() ([]byte, error) {
483484
d := (*sha512Ctx)(unsafe.Pointer(&h.ctx))
484485
b := make([]byte, 0, marshaledSize512)
485486
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])
494495
b = append(b, d.x[:d.nx]...)
495496
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)
497498
return b, nil
498499
}
499500

@@ -553,47 +554,10 @@ func (h *sha512Hash) UnmarshalBinary(b []byte) error {
553554
return nil
554555
}
555556

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-
568557
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)
573559
}
574560

575561
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)
599563
}

0 commit comments

Comments
 (0)