Skip to content

Commit 5e2385c

Browse files
committed
Refactor name of algorithm identifiers.
1 parent bdfc092 commit 5e2385c

File tree

5 files changed

+51
-56
lines changed

5 files changed

+51
-56
lines changed

sign/schemes/schemes.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,18 @@ var allSchemes = [...]sign.Scheme{
3939
mldsa44.Scheme(),
4040
mldsa65.Scheme(),
4141
mldsa87.Scheme(),
42-
slhdsa.SHA2Small128.Scheme(),
43-
slhdsa.SHAKESmall128.Scheme(),
44-
slhdsa.SHA2Fast128.Scheme(),
45-
slhdsa.SHAKEFast128.Scheme(),
46-
slhdsa.SHA2Small192.Scheme(),
47-
slhdsa.SHAKESmall192.Scheme(),
48-
slhdsa.SHA2Fast192.Scheme(),
49-
slhdsa.SHAKEFast192.Scheme(),
50-
slhdsa.SHA2Small256.Scheme(),
51-
slhdsa.SHAKESmall256.Scheme(),
52-
slhdsa.SHA2Fast256.Scheme(),
53-
slhdsa.SHAKEFast256.Scheme(),
42+
slhdsa.SHA2_128s.Scheme(),
43+
slhdsa.SHAKE_128s.Scheme(),
44+
slhdsa.SHA2_128f.Scheme(),
45+
slhdsa.SHAKE_128f.Scheme(),
46+
slhdsa.SHA2_192s.Scheme(),
47+
slhdsa.SHAKE_192s.Scheme(),
48+
slhdsa.SHA2_192f.Scheme(),
49+
slhdsa.SHAKE_192f.Scheme(),
50+
slhdsa.SHA2_256s.Scheme(),
51+
slhdsa.SHAKE_256s.Scheme(),
52+
slhdsa.SHA2_256f.Scheme(),
53+
slhdsa.SHAKE_256f.Scheme(),
5454
}
5555

5656
var allSchemeNames map[string]sign.Scheme

sign/slhdsa/hypertree.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package slhdsa
22

3-
import "crypto/subtle"
3+
import "bytes"
44

55
// See FIPS 205 -- Section 7
66
// SLH-DSA uses a hypertree to sign the FORS keys.
@@ -64,5 +64,5 @@ func (s *state) htVerify(
6464
s.xmssPkFromSig(node, node, sig[j], idxLeaf, addr)
6565
}
6666

67-
return subtle.ConstantTimeCompare(node, root) == 1
67+
return bytes.Equal(node, root)
6868
}

sign/slhdsa/params.go

+25-24
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ import (
1717
// Note that the zero value is not a valid identifier.
1818
type ID byte
1919

20+
//nolint:stylecheck
2021
const (
21-
SHA2Small128 ID = iota + 1 // SLH-DSA-SHA2-128s
22-
SHAKESmall128 // SLH-DSA-SHAKE-128s
23-
SHA2Fast128 // SLH-DSA-SHA2-128f
24-
SHAKEFast128 // SLH-DSA-SHAKE-128f
25-
SHA2Small192 // SLH-DSA-SHA2-192s
26-
SHAKESmall192 // SLH-DSA-SHAKE-192s
27-
SHA2Fast192 // SLH-DSA-SHA2-192f
28-
SHAKEFast192 // SLH-DSA-SHAKE-192f
29-
SHA2Small256 // SLH-DSA-SHA2-256s
30-
SHAKESmall256 // SLH-DSA-SHAKE-256s
31-
SHA2Fast256 // SLH-DSA-SHA2-256f
32-
SHAKEFast256 // SLH-DSA-SHAKE-256f
22+
SHA2_128s ID = iota + 1 // SLH-DSA-SHA2-128s
23+
SHAKE_128s // SLH-DSA-SHAKE-128s
24+
SHA2_128f // SLH-DSA-SHA2-128f
25+
SHAKE_128f // SLH-DSA-SHAKE-128f
26+
SHA2_192s // SLH-DSA-SHA2-192s
27+
SHAKE_192s // SLH-DSA-SHAKE-192s
28+
SHA2_192f // SLH-DSA-SHA2-192f
29+
SHAKE_192f // SLH-DSA-SHAKE-192f
30+
SHA2_256s // SLH-DSA-SHA2-256s
31+
SHAKE_256s // SLH-DSA-SHAKE-256s
32+
SHA2_256f // SLH-DSA-SHA2-256f
33+
SHAKE_256f // SLH-DSA-SHAKE-256f
3334
_MaxParams
3435
)
3536

@@ -85,18 +86,18 @@ type params struct {
8586

8687
// Stores all the supported (read-only) parameter sets.
8788
var supportedParams = [_MaxParams - 1]params{
88-
{ID: SHA2Small128, n: 16, h: 63, d: 7, hPrime: 9, a: 12, k: 14, m: 30, isSHA2: true, name: "SLH-DSA-SHA2-128s"},
89-
{ID: SHAKESmall128, n: 16, h: 63, d: 7, hPrime: 9, a: 12, k: 14, m: 30, isSHA2: false, name: "SLH-DSA-SHAKE-128s"},
90-
{ID: SHA2Fast128, n: 16, h: 66, d: 22, hPrime: 3, a: 6, k: 33, m: 34, isSHA2: true, name: "SLH-DSA-SHA2-128f"},
91-
{ID: SHAKEFast128, n: 16, h: 66, d: 22, hPrime: 3, a: 6, k: 33, m: 34, isSHA2: false, name: "SLH-DSA-SHAKE-128f"},
92-
{ID: SHA2Small192, n: 24, h: 63, d: 7, hPrime: 9, a: 14, k: 17, m: 39, isSHA2: true, name: "SLH-DSA-SHA2-192s"},
93-
{ID: SHAKESmall192, n: 24, h: 63, d: 7, hPrime: 9, a: 14, k: 17, m: 39, isSHA2: false, name: "SLH-DSA-SHAKE-192s"},
94-
{ID: SHA2Fast192, n: 24, h: 66, d: 22, hPrime: 3, a: 8, k: 33, m: 42, isSHA2: true, name: "SLH-DSA-SHA2-192f"},
95-
{ID: SHAKEFast192, n: 24, h: 66, d: 22, hPrime: 3, a: 8, k: 33, m: 42, isSHA2: false, name: "SLH-DSA-SHAKE-192f"},
96-
{ID: SHA2Small256, n: 32, h: 64, d: 8, hPrime: 8, a: 14, k: 22, m: 47, isSHA2: true, name: "SLH-DSA-SHA2-256s"},
97-
{ID: SHAKESmall256, n: 32, h: 64, d: 8, hPrime: 8, a: 14, k: 22, m: 47, isSHA2: false, name: "SLH-DSA-SHAKE-256s"},
98-
{ID: SHA2Fast256, n: 32, h: 68, d: 17, hPrime: 4, a: 9, k: 35, m: 49, isSHA2: true, name: "SLH-DSA-SHA2-256f"},
99-
{ID: SHAKEFast256, n: 32, h: 68, d: 17, hPrime: 4, a: 9, k: 35, m: 49, isSHA2: false, name: "SLH-DSA-SHAKE-256f"},
89+
{ID: SHA2_128s, n: 16, h: 63, d: 7, hPrime: 9, a: 12, k: 14, m: 30, isSHA2: true, name: "SLH-DSA-SHA2-128s"},
90+
{ID: SHAKE_128s, n: 16, h: 63, d: 7, hPrime: 9, a: 12, k: 14, m: 30, isSHA2: false, name: "SLH-DSA-SHAKE-128s"},
91+
{ID: SHA2_128f, n: 16, h: 66, d: 22, hPrime: 3, a: 6, k: 33, m: 34, isSHA2: true, name: "SLH-DSA-SHA2-128f"},
92+
{ID: SHAKE_128f, n: 16, h: 66, d: 22, hPrime: 3, a: 6, k: 33, m: 34, isSHA2: false, name: "SLH-DSA-SHAKE-128f"},
93+
{ID: SHA2_192s, n: 24, h: 63, d: 7, hPrime: 9, a: 14, k: 17, m: 39, isSHA2: true, name: "SLH-DSA-SHA2-192s"},
94+
{ID: SHAKE_192s, n: 24, h: 63, d: 7, hPrime: 9, a: 14, k: 17, m: 39, isSHA2: false, name: "SLH-DSA-SHAKE-192s"},
95+
{ID: SHA2_192f, n: 24, h: 66, d: 22, hPrime: 3, a: 8, k: 33, m: 42, isSHA2: true, name: "SLH-DSA-SHA2-192f"},
96+
{ID: SHAKE_192f, n: 24, h: 66, d: 22, hPrime: 3, a: 8, k: 33, m: 42, isSHA2: false, name: "SLH-DSA-SHAKE-192f"},
97+
{ID: SHA2_256s, n: 32, h: 64, d: 8, hPrime: 8, a: 14, k: 22, m: 47, isSHA2: true, name: "SLH-DSA-SHA2-256s"},
98+
{ID: SHAKE_256s, n: 32, h: 64, d: 8, hPrime: 8, a: 14, k: 22, m: 47, isSHA2: false, name: "SLH-DSA-SHAKE-256s"},
99+
{ID: SHA2_256f, n: 32, h: 68, d: 17, hPrime: 4, a: 9, k: 35, m: 49, isSHA2: true, name: "SLH-DSA-SHA2-256f"},
100+
{ID: SHAKE_256f, n: 32, h: 68, d: 17, hPrime: 4, a: 9, k: 35, m: 49, isSHA2: false, name: "SLH-DSA-SHAKE-256f"},
100101
}
101102

102103
// See FIPS-205, Section 11.1 and Section 11.2.

sign/slhdsa/slhdsa.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
// the following parameter sets:
55
//
66
// Category 1
7-
// - Based on SHA2: [SHA2Small128] and [SHA2Fast128].
8-
// - Based on SHAKE: [SHAKESmall128] and [SHAKEFast128].
7+
// - Based on SHA2: [SHA2_128s] and [SHA2_128f].
8+
// - Based on SHAKE: [SHAKE_128s] and [SHAKE_128f].
99
//
1010
// Category 3
11-
// - Based on SHA2: [SHA2Small192] and [SHA2Fast192]
12-
// - Based on SHAKE: [SHAKESmall192] and [SHAKEFast192]
11+
// - Based on SHA2: [SHA2_192s] and [SHA2_192f]
12+
// - Based on SHAKE: [SHAKE_192s] and [SHAKE_192f]
1313
//
1414
// Category 5
15-
// - Based on SHA2: [SHA2Small256] and [SHA2Fast256].
16-
// - Based on SHAKE: [SHAKESmall256] and [SHAKEFast256].
15+
// - Based on SHA2: [SHA2_256s] and [SHA2_256f].
16+
// - Based on SHAKE: [SHAKE_256s] and [SHAKE_256f].
1717
//
1818
// [FIPS 205]: https://doi.org/10.6028/NIST.FIPS.205
1919
package slhdsa

sign/slhdsa/slhdsa_test.go

+6-12
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,15 @@ import (
1313
)
1414

1515
var fastSign = [...]slhdsa.ID{
16-
slhdsa.SHA2Fast128,
17-
slhdsa.SHAKEFast128,
18-
slhdsa.SHA2Fast192,
19-
slhdsa.SHAKEFast192,
20-
slhdsa.SHA2Fast256,
21-
slhdsa.SHAKEFast256,
16+
slhdsa.SHA2_128f, slhdsa.SHAKE_128f,
17+
slhdsa.SHA2_192f, slhdsa.SHAKE_192f,
18+
slhdsa.SHA2_256f, slhdsa.SHAKE_256f,
2219
}
2320

2421
var smallSign = [...]slhdsa.ID{
25-
slhdsa.SHA2Small128,
26-
slhdsa.SHAKESmall128,
27-
slhdsa.SHA2Small192,
28-
slhdsa.SHAKESmall192,
29-
slhdsa.SHA2Small256,
30-
slhdsa.SHAKESmall256,
22+
slhdsa.SHA2_128s, slhdsa.SHAKE_128s,
23+
slhdsa.SHA2_192s, slhdsa.SHAKE_192s,
24+
slhdsa.SHA2_256s, slhdsa.SHAKE_256s,
3125
}
3226

3327
func TestInnerFast(t *testing.T) { slhdsa.InnerTest(t, fastSign[:]) }

0 commit comments

Comments
 (0)