Skip to content

Commit

Permalink
Adding JSON schemas for the test vectors.
Browse files Browse the repository at this point in the history
Requires test vectors with version 0.7 or higher.

NOKEYCHECK=True
PiperOrigin-RevId: 228853889
GitOrigin-RevId: d669cb263964511c7c95cb32f83e1f07f4bf6b51
  • Loading branch information
bleichen authored and Tink Team committed Nov 26, 2019
1 parent 7c9c6db commit 18175b3
Show file tree
Hide file tree
Showing 24 changed files with 3,011 additions and 0 deletions.
128 changes: 128 additions & 0 deletions schemas/aead_test_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
"type": "object",
"definitions": {
"AeadTestGroup": {
"type": "object",
"properties": {
"type": {
"enum": [
"AeadTest"
]
},
"ivSize": {
"type": "integer",
"description": "the IV size in bits"
},
"keySize": {
"type": "integer",
"description": "the keySize in bits"
},
"tagSize": {
"type": "integer",
"description": "the expected size of the tag in bits"
},
"tests": {
"type": "array",
"items": {
"$ref": "#/definitions/AeadTestVector"
}
}
}
},
"AeadTestVector": {
"type": "object",
"properties": {
"tcId": {
"type": "integer",
"description": "Identifier of the test case"
},
"comment": {
"type": "string",
"description": "A brief description of the test case"
},
"key": {
"type": "string",
"format": "HexBytes",
"description": "the key"
},
"iv": {
"type": "string",
"format": "HexBytes",
"description": "the nonce"
},
"aad": {
"type": "string",
"format": "HexBytes",
"description": "additional authenticated data"
},
"msg": {
"type": "string",
"format": "HexBytes",
"description": "the plaintext"
},
"ct": {
"type": "string",
"format": "HexBytes",
"description": "the ciphertext (without iv and tag)"
},
"tag": {
"type": "string",
"format": "HexBytes",
"description": "the authentication tag"
},
"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": [
"aead_test_schema.json"
]
},
"testGroups": {
"type": "array",
"items": {
"$ref": "#/definitions/AeadTestGroup"
}
}
}
}
110 changes: 110 additions & 0 deletions schemas/daead_test_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
{
"type": "object",
"definitions": {
"DaeadTestGroup": {
"type": "object",
"properties": {
"type": {
"enum": [
"DaeadTest"
]
},
"keySize": {
"type": "integer",
"description": "the keySize in bits"
},
"tests": {
"type": "array",
"items": {
"$ref": "#/definitions/DaeadTestVector"
}
}
}
},
"DaeadTestVector": {
"type": "object",
"properties": {
"tcId": {
"type": "integer",
"description": "Identifier of the test case"
},
"comment": {
"type": "string",
"description": "A brief description of the test case"
},
"key": {
"type": "string",
"format": "HexBytes",
"description": "the key"
},
"aad": {
"type": "string",
"format": "HexBytes",
"description": "additional authenticated data"
},
"msg": {
"type": "string",
"format": "HexBytes",
"description": "the plaintext"
},
"ct": {
"type": "string",
"format": "HexBytes",
"description": "the ciphertext including tag"
},
"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": [
"daead_test_schema.json"
]
},
"testGroups": {
"type": "array",
"items": {
"$ref": "#/definitions/DaeadTestGroup"
}
}
}
}
150 changes: 150 additions & 0 deletions schemas/dsa_verify_schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
{
"type": "object",
"definitions": {
"DsaTestGroup": {
"type": "object",
"properties": {
"type": {
"enum": [
"DsaVerify"
]
},
"key": {
"$ref": "#/definitions/DsaPublicKey",
"description": "unenocded DSA 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 DSA"
},
"tests": {
"type": "array",
"items": {
"$ref": "#/definitions/AsnSignatureTestVector"
}
}
}
},
"DsaPublicKey": {
"type": "object",
"properties": {
"g": {
"type": "string",
"format": "BigInt",
"description": "the generator of the multiplicative subgroup"
},
"keySize": {
"type": "integer",
"description": "the key size in bits"
},
"p": {
"type": "string",
"format": "BigInt",
"description": "the modulus p"
},
"q": {
"type": "string",
"format": "BigInt",
"description": "the order of the generator g"
},
"type": {
"type": "string",
"description": "the key type",
"enum": [
"DsaPublicKey"
]
},
"y": {
"type": "string",
"format": "BigInt",
"description": "the public key value"
}
}
},
"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": [
"dsa_verify_schema.json"
]
},
"testGroups": {
"type": "array",
"items": {
"$ref": "#/definitions/DsaTestGroup"
}
}
}
}
Loading

0 comments on commit 18175b3

Please sign in to comment.