Stage 0: the package datekeys and its test data at spec-v0.11
A pure Dart package, without Flutter, for the app that the author will
write in Flutter (docs/PLAN_dart.md, stage 0):
- pubspec.yaml: the package datekeys, unpublished, for Dart 3.13; at run
time only package:crypto, and in development only package:test, which
the author approved on 5 October.
- testdata/ vendored from datekeys-go at the tag spec-v0.11 (ae33434),
124 files, with the same testdata/SOURCE.json that datekeys-ts writes for
that commit.
- tool/sync_testdata.dart, the port of scripts/sync-testdata.mjs, and
test/testdata_test.dart, which checks the copy and that every file names
specVersion; test/version_test.dart keeps pubspec.yaml and
lib/src/version.dart in step.
- tool/check.sh, the local gate: format, analysis with every info fatal,
tests, and the copy against ../datekeys-go.
- The licence, Apache-2.0, as the other two implementations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 days ago
|
|
|
|
{
|
|
|
|
|
|
"spec": "0.11",
|
|
|
|
|
|
"description": "Ed25519 signatures and the result of the strict profile of the author signature (spec v0.11, §29.9), after the cases of «Taming the many EdDSAs»; stdlib is the result of crypto/ed25519 of Go, for the record. Generated by the reference implementation. See testdata/README.md.",
|
|
|
|
|
|
"vectors": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "a valid signature",
|
|
|
|
|
|
"message": "446174654b657973",
|
|
|
|
|
|
"public_key": "10770005d22145b75334902d3dbd10491a6f210afa80d3937d761a56c308d5ea",
|
|
|
|
|
|
"signature": "5119b0822de6d25331d7c21c528f4945b8b77253241cc6b83c16ba265409ff0f1fdd979c37e18f4bd6bc9c1c18d4b8746ffdee1ce723e404feb1ca90288c3900",
|
|
|
|
|
|
"valid": true,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "S + ℓ",
|
|
|
|
|
|
"message": "446174654b657973",
|
|
|
|
|
|
"public_key": "10770005d22145b75334902d3dbd10491a6f210afa80d3937d761a56c308d5ea",
|
|
|
|
|
|
"signature": "5119b0822de6d25331d7c21c528f4945b8b77253241cc6b83c16ba265409ff0f0cb18df95144a2a3ac5994bff6cd97896ffdee1ce723e404feb1ca90288c3910",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": false
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "S with bit 253 set",
|
|
|
|
|
|
"message": "446174654b657973",
|
|
|
|
|
|
"public_key": "10770005d22145b75334902d3dbd10491a6f210afa80d3937d761a56c308d5ea",
|
|
|
|
|
|
"signature": "5119b0822de6d25331d7c21c528f4945b8b77253241cc6b83c16ba265409ff0f1fdd979c37e18f4bd6bc9c1c18d4b8746ffdee1ce723e404feb1ca90288c3920",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": false
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "R not canonical",
|
|
|
|
|
|
"message": "446174654b657973",
|
|
|
|
|
|
"public_key": "10770005d22145b75334902d3dbd10491a6f210afa80d3937d761a56c308d5ea",
|
|
|
|
|
|
"signature": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f1fdd979c37e18f4bd6bc9c1c18d4b8746ffdee1ce723e404feb1ca90288c3900",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": false
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 0 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000002",
|
|
|
|
|
|
"public_key": "0100000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 1 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b65797320000000000000000d",
|
|
|
|
|
|
"public_key": "c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 2 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000001",
|
|
|
|
|
|
"public_key": "0000000000000000000000000000000000000000000000000000000000000080",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 3 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000002",
|
|
|
|
|
|
"public_key": "26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 4 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b65797320000000000000000f",
|
|
|
|
|
|
"public_key": "ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 5 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000019",
|
|
|
|
|
|
"public_key": "26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 6 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000002",
|
|
|
|
|
|
"public_key": "0000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of small order, the point 7 of the torsion, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000001",
|
|
|
|
|
|
"public_key": "c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A not canonical, y = p, sign 0, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000002",
|
|
|
|
|
|
"public_key": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A not canonical, y = p, sign 1, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000001",
|
|
|
|
|
|
"public_key": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A the identity with the sign bit, R the identity and S = 0",
|
|
|
|
|
|
"message": "446174654b657973200000000000000000",
|
|
|
|
|
|
"public_key": "0100000000000000000000000000000000000000000000000000000000000080",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of mixed order, 8 divides k: the equation without the cofactor holds",
|
|
|
|
|
|
"message": "446174654b657973200000000000000006",
|
|
|
|
|
|
"public_key": "b95f1903e3141ba54412bd1138119fbc7ab21aba35be980650ec3337b0a5c5e1",
|
|
|
|
|
|
"signature": "57890b19a0fb99cfa5fae15f2f8364a4d2d70474bea04f66c611aa5e250026a60ccf279cc11141ef368a21cfdad37a727e43f59936c20d753dea73a0e508d60e",
|
|
|
|
|
|
"valid": true,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "A of mixed order, 8 does not divide k: only the equation with the cofactor holds",
|
|
|
|
|
|
"message": "446174654b657973200000000000000000",
|
|
|
|
|
|
"public_key": "b95f1903e3141ba54412bd1138119fbc7ab21aba35be980650ec3337b0a5c5e1",
|
|
|
|
|
|
"signature": "57890b19a0fb99cfa5fae15f2f8364a4d2d70474bea04f66c611aa5e250026a642a681ccd920aa6da440dc535484ec7ec2904a332dd86256e024a37f6040900f",
|
|
|
|
|
|
"valid": false,
|
|
|
|
|
|
"stdlib": false
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "R the identity, A of prime order",
|
|
|
|
|
|
"message": "446174654b6579733a205220746865206964656e74697479",
|
|
|
|
|
|
"public_key": "0368d6193d5242089bb4a5c019cceffe6a55d83495e57de52d7711ed864ca77d",
|
|
|
|
|
|
"signature": "01000000000000000000000000000000000000000000000000000000000000007b2ee545c254e47cbe2f2774f74d640944034cc59d1ba903de7ecb767cf95304",
|
|
|
|
|
|
"valid": true,
|
|
|
|
|
|
"stdlib": true
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|