aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/sha3/xor_generic.go
diff options
context:
space:
mode:
authorRicardo Catalinas Jiménez <r@untroubled.be>2016-02-22 06:05:00 +0800
committerRicardo Catalinas Jiménez <r@untroubled.be>2016-02-22 06:34:34 +0800
commite4b138a5931b309805162610870df50165e61a8f (patch)
tree6f97b16fcffc263dfab7094a07288a0a28a5af6c /crypto/sha3/xor_generic.go
parent0a1da69fac3766b48a116580295f98df93122503 (diff)
downloadgo-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar.gz
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar.bz2
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar.lz
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar.xz
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.tar.zst
go-tangerine-e4b138a5931b309805162610870df50165e61a8f.zip
crypto/sha3: Copy latest code from "golang.org/x/crypto/sha3"
Revision: 1f22c0103821b9390939b6776727195525381532
Diffstat (limited to 'crypto/sha3/xor_generic.go')
-rw-r--r--crypto/sha3/xor_generic.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/crypto/sha3/xor_generic.go b/crypto/sha3/xor_generic.go
new file mode 100644
index 000000000..fd35f02ef
--- /dev/null
+++ b/crypto/sha3/xor_generic.go
@@ -0,0 +1,28 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package sha3
+
+import "encoding/binary"
+
+// xorInGeneric xors the bytes in buf into the state; it
+// makes no non-portable assumptions about memory layout
+// or alignment.
+func xorInGeneric(d *state, buf []byte) {
+ n := len(buf) / 8
+
+ for i := 0; i < n; i++ {
+ a := binary.LittleEndian.Uint64(buf)
+ d.a[i] ^= a
+ buf = buf[8:]
+ }
+}
+
+// copyOutGeneric copies ulint64s to a byte buffer.
+func copyOutGeneric(d *state, b []byte) {
+ for i := 0; len(b) >= 8; i++ {
+ binary.LittleEndian.PutUint64(b, d.a[i])
+ b = b[8:]
+ }
+}