singe/thirdparty/openssl/wycheproof/schemas/ecdsa_verify_schema.json
2023-11-16 22:15:24 -06:00

203 lines
5 KiB
JSON

{
"type": "object",
"definitions": {
"EcdsaTestGroup": {
"type": "object",
"properties": {
"type": {
"enum": [
"EcdsaVerify"
]
},
"key": {
"$ref": "#/definitions/EcPublicKey",
"description": "unenocded EC public key"
},
"keyDer": {
"type": "string",
"format": "Der",
"description": "DER encoded public key"
},
"keyPem": {
"type": "string",
"format": "Pem",
"description": "Pem encoded public key"
},
"sha": {
"type": "string",
"description": "the hash function used for ECDSA"
},
"tests": {
"type": "array",
"items": {
"$ref": "#/definitions/AsnSignatureTestVector"
}
}
}
},
"EcPublicKey": {
"type": "object",
"properties": {
"curve": {
"anyOf": [
{
"$ref": "#/definitions/EcUnnamedGroup"
},
{
"type": "string",
"description": "the name of the EC group"
}
],
"description": "the EC group used by this public key"
},
"keySize": {
"type": "integer",
"description": "the key size in bits"
},
"type": {
"type": "string",
"description": "the key type",
"enum": [
"EcPublicKey"
]
},
"uncompressed": {
"type": "string",
"format": "HexBytes",
"description": "encoded public key point"
},
"wx": {
"type": "string",
"format": "BigInt",
"description": "the x-coordinate of the public key point"
},
"wy": {
"type": "string",
"format": "BigInt",
"description": "the y-coordinate of the public key point"
}
}
},
"EcUnnamedGroup": {
"type": "object",
"properties": {
"a": {
"type": "string",
"format": "BigInt",
"description": "coefficient a of the elliptic curve equation"
},
"b": {
"type": "string",
"format": "BigInt",
"description": "coefficient b of the elliptic curve equation"
},
"gx": {
"type": "string",
"format": "BigInt",
"description": "the x-coordinate of the generator"
},
"gy": {
"type": "string",
"format": "BigInt",
"description": "the y-coordinate of the generator"
},
"h": {
"type": "integer",
"description": "the cofactor"
},
"n": {
"type": "string",
"format": "BigInt",
"description": "the order of the generator"
},
"p": {
"type": "string",
"format": "BigInt",
"description": "the order of the underlying field"
},
"type": {
"type": "string",
"description": "an unnamed EC group over a prime field in Weierstrass form",
"enum": [
"PrimeOrderCurve"
]
}
}
},
"AsnSignatureTestVector": {
"type": "object",
"properties": {
"tcId": {
"type": "integer",
"description": "Identifier of the test case"
},
"comment": {
"type": "string",
"description": "A brief description of the test case"
},
"msg": {
"type": "string",
"format": "HexBytes",
"description": "The message to sign"
},
"sig": {
"type": "string",
"format": "Asn",
"description": "An ASN encoded signature for msg"
},
"result": {
"type": "string",
"description": "Test result",
"enum": [
"valid",
"invalid",
"acceptable"
]
},
"flags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of flags"
}
}
}
},
"properties": {
"algorithm": {
"type": "string",
"description": "the primitive tested in the test file"
},
"generatorVersion": {
"type": "string",
"description": "the version of the test vectors."
},
"header": {
"type": "array",
"items": {
"type": "string"
},
"description": "additional documentation"
},
"notes": {
"type": "object",
"description": "a description of the labels used in the test vectors"
},
"numberOfTests": {
"type": "integer",
"description": "the number of test vectors in this test"
},
"schema": {
"enum": [
"ecdsa_verify_schema.json"
]
},
"testGroups": {
"type": "array",
"items": {
"$ref": "#/definitions/EcdsaTestGroup"
}
}
}
}