// Copyright 2009 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.// SHA256 block step.// In its own file so that a faster assembly or C version// can be substituted easily.package sha256importvar _K = []uint32{0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2,}func blockGeneric( *digest, []byte) {var [64]uint32 , , , , , , , := .h[0], .h[1], .h[2], .h[3], .h[4], .h[5], .h[6], .h[7]forlen() >= chunk {// Can interlace the computation of w with the // rounds below if needed for speed.for := 0; < 16; ++ { := * 4 [] = uint32([])<<24 | uint32([+1])<<16 | uint32([+2])<<8 | uint32([+3]) }for := 16; < 64; ++ { := [-2] := (bits.RotateLeft32(, -17)) ^ (bits.RotateLeft32(, -19)) ^ ( >> 10) := [-15] := (bits.RotateLeft32(, -7)) ^ (bits.RotateLeft32(, -18)) ^ ( >> 3) [] = + [-7] + + [-16] } , , , , , , , := , , , , , , , for := 0; < 64; ++ { := + ((bits.RotateLeft32(, -6)) ^ (bits.RotateLeft32(, -11)) ^ (bits.RotateLeft32(, -25))) + (( & ) ^ (^ & )) + _K[] + [] := ((bits.RotateLeft32(, -2)) ^ (bits.RotateLeft32(, -13)) ^ (bits.RotateLeft32(, -22))) + (( & ) ^ ( & ) ^ ( & )) = = = = + = = = = + } += += += += += += += += = [chunk:] } .h[0], .h[1], .h[2], .h[3], .h[4], .h[5], .h[6], .h[7] = , , , , , , , }
The pages are generated with Goldsv0.7.0-preview. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.