Update ACVP URLs.
NIST breaks these URLs so often it's unclear if it's worth including
them. If they do it again it might be a signal to remove them all.
However, until then, this change updates many of them. Some were deleted
because the format of the anchors has been switched and all the section
numbers remove, and I don't think it's worth trying to unpick all that.
Change-Id: I31457c225e68ee44d383a5a148fdcc80a3430864
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/47464
Commit-Queue: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/util/fipstools/acvp/ACVP.md b/util/fipstools/acvp/ACVP.md
index 201bcf9..97ec423 100644
--- a/util/fipstools/acvp/ACVP.md
+++ b/util/fipstools/acvp/ACVP.md
@@ -98,7 +98,7 @@
| SHA2-512/256/MCT | Initial seed¹ | Digest |
| TLSKDF/<1.0\|1.2>/<HASH> | Number output bytes, secret, label, seed1, seed2 | Output |
-¹ The iterated tests would result in excessive numbers of round trips if the module wrapper handled only basic operations. Thus some ACVP logic is pushed down for these tests so that the inner loop can be handled locally. Either read the NIST documentation ([block-ciphers](https://usnistgov.github.io/ACVP/draft-celi-acvp-symmetric.html#name-monte-carlo-tests-for-block) [hashes](https://pages.nist.gov/ACVP/draft-celi-acvp-sha.html#name-monte-carlo-tests-for-sha-1)) to understand the iteration count and return values or, probably more fruitfully, see how these functions are handled in the `modulewrapper` directory.
+¹ The iterated tests would result in excessive numbers of round trips if the module wrapper handled only basic operations. Thus some ACVP logic is pushed down for these tests so that the inner loop can be handled locally. Either read the NIST documentation ([block-ciphers](https://pages.nist.gov/ACVP/draft-celi-acvp-symmetric.html#name-monte-carlo-tests-for-block) [hashes](https://pages.nist.gov/ACVP/draft-celi-acvp-sha.html#name-monte-carlo-tests-for-sha-1)) to understand the iteration count and return values or, probably more fruitfully, see how these functions are handled in the `modulewrapper` directory.
## Online operation
diff --git a/util/fipstools/acvp/acvptool/acvp/acvp.go b/util/fipstools/acvp/acvptool/acvp/acvp.go
index c0d375c..04f0932 100644
--- a/util/fipstools/acvp/acvptool/acvp/acvp.go
+++ b/util/fipstools/acvp/acvptool/acvp/acvp.go
@@ -479,7 +479,7 @@
)
// GetPaged returns an array of records of some type using one or more requests to the server. See
-// https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#paging_response
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#paging_response
func (server *Server) GetPaged(out interface{}, endPoint string, condition Query) error {
output := reflect.ValueOf(out)
if output.Kind() != reflect.Ptr {
@@ -555,7 +555,7 @@
return nil
}
-// https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.8.3.1
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#rfc.section.11.8.3.1
type Vendor struct {
URL string `json:"url,omitempty"`
Name string `json:"name,omitempty"`
@@ -566,7 +566,7 @@
Addresses []Address `json:"addresses,omitempty"`
}
-// https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.9
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#rfc.section.11.9
type Address struct {
URL string `json:"url,omitempty"`
Street1 string `json:"street1,omitempty"`
@@ -578,7 +578,7 @@
PostalCode string `json:"postalCode,omitempty"`
}
-// https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.10
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#rfc.section.11.10
type Person struct {
URL string `json:"url,omitempty"`
FullName string `json:"fullName,omitempty"`
@@ -590,7 +590,7 @@
} `json:"phoneNumbers,omitempty"`
}
-// https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.11
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-spec.html#rfc.section.11.11
type Module struct {
URL string `json:"url,omitempty"`
Name string `json:"name,omitempty"`
diff --git a/util/fipstools/acvp/acvptool/interactive.go b/util/fipstools/acvp/acvptool/interactive.go
index 36d5e6c..b13a549 100644
--- a/util/fipstools/acvp/acvptool/interactive.go
+++ b/util/fipstools/acvp/acvptool/interactive.go
@@ -578,12 +578,10 @@
resultType: reflect.TypeOf(&acvp.RequestStatus{}),
canEnumerate: true,
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.8
env.variables["vendors"] = ServerObjectSet{
env: env,
name: "vendors",
searchKeys: map[string][]acvp.Relation{
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.8.1
"name": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"website": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"email": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
@@ -609,12 +607,10 @@
},
resultType: reflect.TypeOf(&acvp.Vendor{}),
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.9
env.variables["persons"] = ServerObjectSet{
env: env,
name: "persons",
searchKeys: map[string][]acvp.Relation{
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.10.1
"fullName": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"email": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"phoneNumber": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
@@ -622,12 +618,10 @@
},
resultType: reflect.TypeOf(&acvp.Person{}),
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.11
env.variables["modules"] = ServerObjectSet{
env: env,
name: "modules",
searchKeys: map[string][]acvp.Relation{
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.10.1
"name": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"version": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"website": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
@@ -637,29 +631,24 @@
},
resultType: reflect.TypeOf(&acvp.Module{}),
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.12
env.variables["oes"] = ServerObjectSet{
env: env,
name: "oes",
searchKeys: map[string][]acvp.Relation{
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.12.1
"name": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
},
resultType: reflect.TypeOf(&acvp.OperationalEnvironment{}),
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.13
env.variables["deps"] = ServerObjectSet{
env: env,
name: "dependencies",
searchKeys: map[string][]acvp.Relation{
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.12.1
"name": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"type": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
"description": []acvp.Relation{acvp.Equals, acvp.StartsWith, acvp.EndsWith, acvp.Contains},
},
resultType: reflect.TypeOf(&acvp.Dependency{}),
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.14
env.variables["algos"] = Algorithms{
ServerObjectSet{
env: env,
@@ -668,7 +657,6 @@
canEnumerate: true,
},
}
- // https://usnistgov.github.io/ACVP/artifacts/draft-fussell-acvp-spec-00.html#rfc.section.11.15
env.variables["sessions"] = ServerObjectSet{
env: env,
name: "testSessions",
diff --git a/util/fipstools/acvp/acvptool/subprocess/drbg.go b/util/fipstools/acvp/acvptool/subprocess/drbg.go
index 03268e4..b9a1cb8 100644
--- a/util/fipstools/acvp/acvptool/subprocess/drbg.go
+++ b/util/fipstools/acvp/acvptool/subprocess/drbg.go
@@ -22,7 +22,7 @@
)
// The following structures reflect the JSON of ACVP DRBG tests. See
-// https://usnistgov.github.io/ACVP/artifacts/acvp_sub_drbg.html#rfc.section.4
+// https://pages.nist.gov/ACVP/draft-vassilev-acvp-drbg.html#name-test-vectors
type drbgTestVectorSet struct {
Groups []drbgTestGroup `json:"testGroups"`
@@ -79,7 +79,7 @@
var ret []drbgTestGroupResponse
// See
- // https://usnistgov.github.io/ACVP/artifacts/acvp_sub_drbg.html#rfc.section.4
+ // https://pages.nist.gov/ACVP/draft-vassilev-acvp-drbg.html#name-test-vectors
// for details about the tests.
for _, group := range parsed.Groups {
response := drbgTestGroupResponse{
@@ -146,7 +146,7 @@
return nil, fmt.Errorf("wrong length DRBG result: %d bytes but wanted %d", l, outLen)
}
- // https://usnistgov.github.io/ACVP/artifacts/acvp_sub_drbg.html#rfc.section.4
+ // https://pages.nist.gov/ACVP/draft-vassilev-acvp-drbg.html#name-responses
response.Tests = append(response.Tests, drbgTestResponse{
ID: test.ID,
OutHex: hex.EncodeToString(result[0]),
diff --git a/util/fipstools/acvp/acvptool/subprocess/ecdsa.go b/util/fipstools/acvp/acvptool/subprocess/ecdsa.go
index 1ccae41..4f688d3 100644
--- a/util/fipstools/acvp/acvptool/subprocess/ecdsa.go
+++ b/util/fipstools/acvp/acvptool/subprocess/ecdsa.go
@@ -22,7 +22,7 @@
)
// The following structures reflect the JSON of ACVP hash tests. See
-// https://usnistgov.github.io/ACVP/artifacts/acvp_sub_ecdsa.html#test_vectors
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-ecdsa.html#name-test-vectors
type ecdsaTestVectorSet struct {
Groups []ecdsaTestGroup `json:"testGroups"`
@@ -80,7 +80,7 @@
var ret []ecdsaTestGroupResponse
// See
- // https://usnistgov.github.io/ACVP/artifacts/draft-celi-acvp-sha-00.html#rfc.section.3
+ // https://pages.nist.gov/ACVP/draft-fussell-acvp-ecdsa.html#name-test-vectors
// for details about the tests.
for _, group := range parsed.Groups {
if _, ok := e.curves[group.Curve]; !ok {
diff --git a/util/fipstools/acvp/acvptool/subprocess/hash.go b/util/fipstools/acvp/acvptool/subprocess/hash.go
index 4c3ddf0..b58c6f6 100644
--- a/util/fipstools/acvp/acvptool/subprocess/hash.go
+++ b/util/fipstools/acvp/acvptool/subprocess/hash.go
@@ -21,7 +21,7 @@
)
// The following structures reflect the JSON of ACVP hash tests. See
-// https://usnistgov.github.io/ACVP/artifacts/draft-celi-acvp-sha-00.html#test_vectors
+// https://pages.nist.gov/ACVP/draft-celi-acvp-sha.html#name-test-vectors
type hashTestVectorSet struct {
Groups []hashTestGroup `json:"testGroups"`
@@ -70,7 +70,7 @@
var ret []hashTestGroupResponse
// See
- // https://usnistgov.github.io/ACVP/artifacts/draft-celi-acvp-sha-00.html#rfc.section.3
+ // https://pages.nist.gov/ACVP/draft-celi-acvp-sha.html#name-test-vectors
// for details about the tests.
for _, group := range parsed.Groups {
response := hashTestGroupResponse{
diff --git a/util/fipstools/acvp/acvptool/subprocess/hmac.go b/util/fipstools/acvp/acvptool/subprocess/hmac.go
index fb299c7..2fd90ea 100644
--- a/util/fipstools/acvp/acvptool/subprocess/hmac.go
+++ b/util/fipstools/acvp/acvptool/subprocess/hmac.go
@@ -22,7 +22,7 @@
)
// The following structures reflect the JSON of ACVP HMAC tests. See
-// https://usnistgov.github.io/ACVP/artifacts/acvp_sub_mac.html#hmac_test_vectors
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-mac.html#name-test-vectors
type hmacTestVectorSet struct {
Groups []hmacTestGroup `json:"testGroups"`
@@ -84,7 +84,7 @@
var ret []hmacTestGroupResponse
// See
- // https://usnistgov.github.io/ACVP/artifacts/acvp_sub_mac.html#hmac_test_vectors
+ // https://pages.nist.gov/ACVP/draft-fussell-acvp-mac.html#name-test-vectors
// for details about the tests.
for _, group := range parsed.Groups {
response := hmacTestGroupResponse{
@@ -111,7 +111,7 @@
return nil, fmt.Errorf("failed to decode key in test case %d/%d: %s", group.ID, test.ID, err)
}
- // https://usnistgov.github.io/ACVP/artifacts/acvp_sub_mac.html#hmac_vector_responses
+ // https://pages.nist.gov/ACVP/draft-fussell-acvp-mac.html#name-test-vectors
response.Tests = append(response.Tests, hmacTestResponse{
ID: test.ID,
MACHex: hex.EncodeToString(h.hmac(msg, key, group.MACBits, m)),
diff --git a/util/fipstools/acvp/acvptool/subprocess/kas.go b/util/fipstools/acvp/acvptool/subprocess/kas.go
index e63e660..cb1eb91 100644
--- a/util/fipstools/acvp/acvptool/subprocess/kas.go
+++ b/util/fipstools/acvp/acvptool/subprocess/kas.go
@@ -74,7 +74,7 @@
return nil, err
}
- // See https://usnistgov.github.io/ACVP/draft-hammett-acvp-kas-ssc-ecc.html
+ // See https://pages.nist.gov/ACVP/draft-fussell-acvp-kas-ecc.html#name-test-vectors
var ret []kasTestGroupResponse
for _, group := range parsed.Groups {
response := kasTestGroupResponse{
diff --git a/util/fipstools/acvp/acvptool/subprocess/kdf.go b/util/fipstools/acvp/acvptool/subprocess/kdf.go
index e8e16a0..a80a53f 100644
--- a/util/fipstools/acvp/acvptool/subprocess/kdf.go
+++ b/util/fipstools/acvp/acvptool/subprocess/kdf.go
@@ -22,7 +22,7 @@
)
// The following structures reflect the JSON of ACVP KDF tests. See
-// https://usnistgov.github.io/ACVP/artifacts/acvp_sub_kdf108.html#rfc.section.3
+// https://pages.nist.gov/ACVP/draft-celi-acvp-kdf-tls.html#name-test-vectors
type kdfTestVectorSet struct {
Groups []kdfTestGroup `json:"testGroups"`
diff --git a/util/fipstools/acvp/acvptool/subprocess/keyedMac.go b/util/fipstools/acvp/acvptool/subprocess/keyedMac.go
index ebd2c0d..94be186 100644
--- a/util/fipstools/acvp/acvptool/subprocess/keyedMac.go
+++ b/util/fipstools/acvp/acvptool/subprocess/keyedMac.go
@@ -21,7 +21,7 @@
)
// The following structures reflect the JSON of CMAC-AES tests. See
-// https://usnistgov.github.io/ACVP/artifacts/acvp_sub_mac.html#rfc.section.4.2
+// https://pages.nist.gov/ACVP/draft-fussell-acvp-mac.html#name-test-vectors
type keyedMACTestVectorSet struct {
Groups []keyedMACTestGroup `json:"testGroups"`
diff --git a/util/fipstools/acvp/acvptool/subprocess/rsa.go b/util/fipstools/acvp/acvptool/subprocess/rsa.go
index d2de73d..2f5197e 100644
--- a/util/fipstools/acvp/acvptool/subprocess/rsa.go
+++ b/util/fipstools/acvp/acvptool/subprocess/rsa.go
@@ -20,7 +20,7 @@
"fmt"
)
-// See https://usnistgov.github.io/ACVP/draft-celi-acvp-rsa.html#section-7.4
+// See https://pages.nist.gov/ACVP/draft-celi-acvp-rsa.html#name-test-vectors
// although, at the time of writing, that spec doesn't match what the NIST demo
// server actually produces. This code matches the server.
diff --git a/util/fipstools/acvp/acvptool/subprocess/tlskdf.go b/util/fipstools/acvp/acvptool/subprocess/tlskdf.go
index 4a8f7ee..2e2b65d 100644
--- a/util/fipstools/acvp/acvptool/subprocess/tlskdf.go
+++ b/util/fipstools/acvp/acvptool/subprocess/tlskdf.go
@@ -67,7 +67,7 @@
return nil, err
}
- // See https://usnistgov.github.io/ACVP/draft-celi-acvp-kdf-tls.html
+ // See https://pages.nist.gov/ACVP/draft-celi-acvp-kdf-tls.html
var ret []tlsKDFTestGroupResponse
for _, group := range parsed.Groups {
response := tlsKDFTestGroupResponse{