remove a bunch of blank lines in keccak_gen.go
parent
b64eff8ecd
commit
5e1178f8c2
34
gen.go
34
gen.go
|
@ -8,6 +8,8 @@ import (
|
||||||
"text/template"
|
"text/template"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Requires Go 1.6+ for whitespace control in text/template
|
||||||
|
|
||||||
var roundc [24]uint64
|
var roundc [24]uint64
|
||||||
var rotc [5][5]int
|
var rotc [5][5]int
|
||||||
|
|
||||||
|
@ -78,38 +80,38 @@ package keccak
|
||||||
|
|
||||||
// round implements one round of the keccak-f[1600] permutation.
|
// round implements one round of the keccak-f[1600] permutation.
|
||||||
func roundGo(a *[25]uint64) {
|
func roundGo(a *[25]uint64) {
|
||||||
{{ range $x := count 5 }}
|
{{ range $x := count 5 -}}
|
||||||
var b{{$x}}0, b{{$x}}1, b{{$x}}2, b{{$x}}3, b{{$x}}4 uint64
|
var b{{$x}}0, b{{$x}}1, b{{$x}}2, b{{$x}}3, b{{$x}}4 uint64
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
// Theta
|
// Theta
|
||||||
var c0, c1, c2, c3, c4 uint64
|
var c0, c1, c2, c3, c4 uint64
|
||||||
{{ range $x := count 5 }}
|
{{ range $x := count 5 -}}
|
||||||
c{{$x}} = {{a $x 0}} ^ {{a $x 1}} ^ {{a $x 2}} ^ {{a $x 3}} ^ {{a $x 4}}
|
c{{$x}} = {{a $x 0}} ^ {{a $x 1}} ^ {{a $x 2}} ^ {{a $x 3}} ^ {{a $x 4}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
var d0, d1, d2, d3, d4 uint64
|
var d0, d1, d2, d3, d4 uint64
|
||||||
{{ range $x := count 5 }}
|
{{ range $x := count 5 -}}
|
||||||
{{ $x4 := add $x 4 | mod }}
|
{{ $x4 := add $x 4 | mod -}}
|
||||||
{{ $x1 := add $x 1 | mod }}
|
{{ $x1 := add $x 1 | mod -}}
|
||||||
d{{$x}} = c{{$x4}} ^ (c{{$x1}}<<1 | c{{$x1}}>>63)
|
d{{$x}} = c{{$x4}} ^ (c{{$x1}}<<1 | c{{$x1}}>>63)
|
||||||
{{ range $y := count 5 }}
|
{{ range $y := count 5 -}}
|
||||||
{{b $x $y}} = {{a $x $y}} ^ d{{$x}}
|
{{b $x $y}} = {{a $x $y}} ^ d{{$x}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ range $y := count 5 }}
|
{{ range $y := count 5 -}}
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
{{ range $x := count 5 }}
|
{{ range $x := count 5 -}}
|
||||||
{{ $x0 := add $x (mul $y 3) }}
|
{{ $x0 := add $x (mul $y 3) -}}
|
||||||
{{ $y0 := $x }}
|
{{ $y0 := $x -}}
|
||||||
{{ $b := b $x0 $y0 }}
|
{{ $b := b $x0 $y0 -}}
|
||||||
{{ $r := rotc $x0 $y0 }}
|
{{ $r := rotc $x0 $y0 -}}
|
||||||
c{{$x}} = {{$b}}<<{{$r}} | {{$b}}>>{{sub 64 $r}}
|
c{{$x}} = {{$b}}<<{{$r}} | {{$b}}>>{{sub 64 $r}}
|
||||||
{{ end }}
|
{{ end -}}
|
||||||
// Chi
|
// Chi
|
||||||
{{ range $x := count 5 }}
|
{{ range $x := count 5 -}}
|
||||||
{{ $x1 := add $x 1 | mod }}
|
{{ $x1 := add $x 1 | mod -}}
|
||||||
{{ $x2 := add $x 2 | mod }}
|
{{ $x2 := add $x 2 | mod -}}
|
||||||
{{a $x $y}} = c{{$x}} ^ (c{{$x2}} &^ c{{$x1}})
|
{{a $x $y}} = c{{$x}} ^ (c{{$x2}} &^ c{{$x1}})
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -5,210 +5,119 @@ package keccak
|
||||||
|
|
||||||
// round implements one round of the keccak-f[1600] permutation.
|
// round implements one round of the keccak-f[1600] permutation.
|
||||||
func roundGo(a *[25]uint64) {
|
func roundGo(a *[25]uint64) {
|
||||||
|
|
||||||
var b00, b01, b02, b03, b04 uint64
|
var b00, b01, b02, b03, b04 uint64
|
||||||
|
|
||||||
var b10, b11, b12, b13, b14 uint64
|
var b10, b11, b12, b13, b14 uint64
|
||||||
|
|
||||||
var b20, b21, b22, b23, b24 uint64
|
var b20, b21, b22, b23, b24 uint64
|
||||||
|
|
||||||
var b30, b31, b32, b33, b34 uint64
|
var b30, b31, b32, b33, b34 uint64
|
||||||
|
|
||||||
var b40, b41, b42, b43, b44 uint64
|
var b40, b41, b42, b43, b44 uint64
|
||||||
|
|
||||||
// Theta
|
// Theta
|
||||||
var c0, c1, c2, c3, c4 uint64
|
var c0, c1, c2, c3, c4 uint64
|
||||||
|
|
||||||
c0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
|
c0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
|
||||||
|
|
||||||
c1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
|
c1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
|
||||||
|
|
||||||
c2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
|
c2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
|
||||||
|
|
||||||
c3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
|
c3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
|
||||||
|
|
||||||
c4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
|
c4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
|
||||||
|
|
||||||
var d0, d1, d2, d3, d4 uint64
|
var d0, d1, d2, d3, d4 uint64
|
||||||
|
|
||||||
d0 = c4 ^ (c1<<1 | c1>>63)
|
d0 = c4 ^ (c1<<1 | c1>>63)
|
||||||
|
|
||||||
b00 = a[0] ^ d0
|
b00 = a[0] ^ d0
|
||||||
|
|
||||||
b01 = a[5] ^ d0
|
b01 = a[5] ^ d0
|
||||||
|
|
||||||
b02 = a[10] ^ d0
|
b02 = a[10] ^ d0
|
||||||
|
|
||||||
b03 = a[15] ^ d0
|
b03 = a[15] ^ d0
|
||||||
|
|
||||||
b04 = a[20] ^ d0
|
b04 = a[20] ^ d0
|
||||||
|
|
||||||
d1 = c0 ^ (c2<<1 | c2>>63)
|
d1 = c0 ^ (c2<<1 | c2>>63)
|
||||||
|
|
||||||
b10 = a[1] ^ d1
|
b10 = a[1] ^ d1
|
||||||
|
|
||||||
b11 = a[6] ^ d1
|
b11 = a[6] ^ d1
|
||||||
|
|
||||||
b12 = a[11] ^ d1
|
b12 = a[11] ^ d1
|
||||||
|
|
||||||
b13 = a[16] ^ d1
|
b13 = a[16] ^ d1
|
||||||
|
|
||||||
b14 = a[21] ^ d1
|
b14 = a[21] ^ d1
|
||||||
|
|
||||||
d2 = c1 ^ (c3<<1 | c3>>63)
|
d2 = c1 ^ (c3<<1 | c3>>63)
|
||||||
|
|
||||||
b20 = a[2] ^ d2
|
b20 = a[2] ^ d2
|
||||||
|
|
||||||
b21 = a[7] ^ d2
|
b21 = a[7] ^ d2
|
||||||
|
|
||||||
b22 = a[12] ^ d2
|
b22 = a[12] ^ d2
|
||||||
|
|
||||||
b23 = a[17] ^ d2
|
b23 = a[17] ^ d2
|
||||||
|
|
||||||
b24 = a[22] ^ d2
|
b24 = a[22] ^ d2
|
||||||
|
|
||||||
d3 = c2 ^ (c4<<1 | c4>>63)
|
d3 = c2 ^ (c4<<1 | c4>>63)
|
||||||
|
|
||||||
b30 = a[3] ^ d3
|
b30 = a[3] ^ d3
|
||||||
|
|
||||||
b31 = a[8] ^ d3
|
b31 = a[8] ^ d3
|
||||||
|
|
||||||
b32 = a[13] ^ d3
|
b32 = a[13] ^ d3
|
||||||
|
|
||||||
b33 = a[18] ^ d3
|
b33 = a[18] ^ d3
|
||||||
|
|
||||||
b34 = a[23] ^ d3
|
b34 = a[23] ^ d3
|
||||||
|
|
||||||
d4 = c3 ^ (c0<<1 | c0>>63)
|
d4 = c3 ^ (c0<<1 | c0>>63)
|
||||||
|
|
||||||
b40 = a[4] ^ d4
|
b40 = a[4] ^ d4
|
||||||
|
|
||||||
b41 = a[9] ^ d4
|
b41 = a[9] ^ d4
|
||||||
|
|
||||||
b42 = a[14] ^ d4
|
b42 = a[14] ^ d4
|
||||||
|
|
||||||
b43 = a[19] ^ d4
|
b43 = a[19] ^ d4
|
||||||
|
|
||||||
b44 = a[24] ^ d4
|
b44 = a[24] ^ d4
|
||||||
|
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
|
|
||||||
c0 = b00<<0 | b00>>64
|
c0 = b00<<0 | b00>>64
|
||||||
|
|
||||||
c1 = b11<<44 | b11>>20
|
c1 = b11<<44 | b11>>20
|
||||||
|
|
||||||
c2 = b22<<43 | b22>>21
|
c2 = b22<<43 | b22>>21
|
||||||
|
|
||||||
c3 = b33<<21 | b33>>43
|
c3 = b33<<21 | b33>>43
|
||||||
|
|
||||||
c4 = b44<<14 | b44>>50
|
c4 = b44<<14 | b44>>50
|
||||||
|
|
||||||
// Chi
|
// Chi
|
||||||
|
|
||||||
a[0] = c0 ^ (c2 &^ c1)
|
a[0] = c0 ^ (c2 &^ c1)
|
||||||
|
|
||||||
a[1] = c1 ^ (c3 &^ c2)
|
a[1] = c1 ^ (c3 &^ c2)
|
||||||
|
|
||||||
a[2] = c2 ^ (c4 &^ c3)
|
a[2] = c2 ^ (c4 &^ c3)
|
||||||
|
|
||||||
a[3] = c3 ^ (c0 &^ c4)
|
a[3] = c3 ^ (c0 &^ c4)
|
||||||
|
|
||||||
a[4] = c4 ^ (c1 &^ c0)
|
a[4] = c4 ^ (c1 &^ c0)
|
||||||
|
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
|
|
||||||
c0 = b30<<28 | b30>>36
|
c0 = b30<<28 | b30>>36
|
||||||
|
|
||||||
c1 = b41<<20 | b41>>44
|
c1 = b41<<20 | b41>>44
|
||||||
|
|
||||||
c2 = b02<<3 | b02>>61
|
c2 = b02<<3 | b02>>61
|
||||||
|
|
||||||
c3 = b13<<45 | b13>>19
|
c3 = b13<<45 | b13>>19
|
||||||
|
|
||||||
c4 = b24<<61 | b24>>3
|
c4 = b24<<61 | b24>>3
|
||||||
|
|
||||||
// Chi
|
// Chi
|
||||||
|
|
||||||
a[5] = c0 ^ (c2 &^ c1)
|
a[5] = c0 ^ (c2 &^ c1)
|
||||||
|
|
||||||
a[6] = c1 ^ (c3 &^ c2)
|
a[6] = c1 ^ (c3 &^ c2)
|
||||||
|
|
||||||
a[7] = c2 ^ (c4 &^ c3)
|
a[7] = c2 ^ (c4 &^ c3)
|
||||||
|
|
||||||
a[8] = c3 ^ (c0 &^ c4)
|
a[8] = c3 ^ (c0 &^ c4)
|
||||||
|
|
||||||
a[9] = c4 ^ (c1 &^ c0)
|
a[9] = c4 ^ (c1 &^ c0)
|
||||||
|
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
|
|
||||||
c0 = b10<<1 | b10>>63
|
c0 = b10<<1 | b10>>63
|
||||||
|
|
||||||
c1 = b21<<6 | b21>>58
|
c1 = b21<<6 | b21>>58
|
||||||
|
|
||||||
c2 = b32<<25 | b32>>39
|
c2 = b32<<25 | b32>>39
|
||||||
|
|
||||||
c3 = b43<<8 | b43>>56
|
c3 = b43<<8 | b43>>56
|
||||||
|
|
||||||
c4 = b04<<18 | b04>>46
|
c4 = b04<<18 | b04>>46
|
||||||
|
|
||||||
// Chi
|
// Chi
|
||||||
|
|
||||||
a[10] = c0 ^ (c2 &^ c1)
|
a[10] = c0 ^ (c2 &^ c1)
|
||||||
|
|
||||||
a[11] = c1 ^ (c3 &^ c2)
|
a[11] = c1 ^ (c3 &^ c2)
|
||||||
|
|
||||||
a[12] = c2 ^ (c4 &^ c3)
|
a[12] = c2 ^ (c4 &^ c3)
|
||||||
|
|
||||||
a[13] = c3 ^ (c0 &^ c4)
|
a[13] = c3 ^ (c0 &^ c4)
|
||||||
|
|
||||||
a[14] = c4 ^ (c1 &^ c0)
|
a[14] = c4 ^ (c1 &^ c0)
|
||||||
|
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
|
|
||||||
c0 = b40<<27 | b40>>37
|
c0 = b40<<27 | b40>>37
|
||||||
|
|
||||||
c1 = b01<<36 | b01>>28
|
c1 = b01<<36 | b01>>28
|
||||||
|
|
||||||
c2 = b12<<10 | b12>>54
|
c2 = b12<<10 | b12>>54
|
||||||
|
|
||||||
c3 = b23<<15 | b23>>49
|
c3 = b23<<15 | b23>>49
|
||||||
|
|
||||||
c4 = b34<<56 | b34>>8
|
c4 = b34<<56 | b34>>8
|
||||||
|
|
||||||
// Chi
|
// Chi
|
||||||
|
|
||||||
a[15] = c0 ^ (c2 &^ c1)
|
a[15] = c0 ^ (c2 &^ c1)
|
||||||
|
|
||||||
a[16] = c1 ^ (c3 &^ c2)
|
a[16] = c1 ^ (c3 &^ c2)
|
||||||
|
|
||||||
a[17] = c2 ^ (c4 &^ c3)
|
a[17] = c2 ^ (c4 &^ c3)
|
||||||
|
|
||||||
a[18] = c3 ^ (c0 &^ c4)
|
a[18] = c3 ^ (c0 &^ c4)
|
||||||
|
|
||||||
a[19] = c4 ^ (c1 &^ c0)
|
a[19] = c4 ^ (c1 &^ c0)
|
||||||
|
|
||||||
// Rho / Pi
|
// Rho / Pi
|
||||||
|
|
||||||
c0 = b20<<62 | b20>>2
|
c0 = b20<<62 | b20>>2
|
||||||
|
|
||||||
c1 = b31<<55 | b31>>9
|
c1 = b31<<55 | b31>>9
|
||||||
|
|
||||||
c2 = b42<<39 | b42>>25
|
c2 = b42<<39 | b42>>25
|
||||||
|
|
||||||
c3 = b03<<41 | b03>>23
|
c3 = b03<<41 | b03>>23
|
||||||
|
|
||||||
c4 = b14<<2 | b14>>62
|
c4 = b14<<2 | b14>>62
|
||||||
|
|
||||||
// Chi
|
// Chi
|
||||||
|
|
||||||
a[20] = c0 ^ (c2 &^ c1)
|
a[20] = c0 ^ (c2 &^ c1)
|
||||||
|
|
||||||
a[21] = c1 ^ (c3 &^ c2)
|
a[21] = c1 ^ (c3 &^ c2)
|
||||||
|
|
||||||
a[22] = c2 ^ (c4 &^ c3)
|
a[22] = c2 ^ (c4 &^ c3)
|
||||||
|
|
||||||
a[23] = c3 ^ (c0 &^ c4)
|
a[23] = c3 ^ (c0 &^ c4)
|
||||||
|
|
||||||
a[24] = c4 ^ (c1 &^ c0)
|
a[24] = c4 ^ (c1 &^ c0)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue