blob: 6efa1f1daea3377d4d949e617a078b2fa845299f [file] [edit]
// Code generated by github.com/atombender/go-jsonschema, DO NOT EDIT.
package wycheproof
import "encoding/json"
import "fmt"
import "reflect"
import "unicode/utf8"
type AeadTestGroup struct {
// the IV size in bits
IvSize int `json:"ivSize"`
// the keySize in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// the expected size of the tag in bits
TagSize int `json:"tagSize"`
// Tests corresponds to the JSON schema field "tests".
Tests []AeadTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type AeadTestGroupType `json:"type"`
}
type AeadTestGroupType string
const AeadTestGroupTypeAeadTest AeadTestGroupType = "AeadTest"
var enumValues_AeadTestGroupType = []interface{}{
"AeadTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AeadTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_AeadTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_AeadTestGroupType, v)
}
*j = AeadTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AeadTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["ivSize"]; raw != nil && !ok {
return fmt.Errorf("field ivSize in AeadTestGroup: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in AeadTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in AeadTestGroup: required")
}
if _, ok := raw["tagSize"]; raw != nil && !ok {
return fmt.Errorf("field tagSize in AeadTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in AeadTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in AeadTestGroup: required")
}
type Plain AeadTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = AeadTestGroup(plain)
return nil
}
type AeadTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema AeadTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []AeadTestGroup `json:"testGroups"`
}
type AeadTestSchemaV1JsonSchema string
const AeadTestSchemaV1JsonSchemaAeadTestSchemaV1Json AeadTestSchemaV1JsonSchema = "aead_test_schema_v1.json"
var enumValues_AeadTestSchemaV1JsonSchema = []interface{}{
"aead_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AeadTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_AeadTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_AeadTestSchemaV1JsonSchema, v)
}
*j = AeadTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AeadTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in AeadTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in AeadTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in AeadTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in AeadTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in AeadTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in AeadTestSchemaV1Json: required")
}
type Plain AeadTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = AeadTestSchemaV1Json(plain)
return nil
}
type AeadTestVector struct {
// additional authenticated data
Aad string `json:"aad"`
// A brief description of the test case
Comment string `json:"comment"`
// the ciphertext (without iv and tag)
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags"`
// the nonce
Iv string `json:"iv"`
// the key
Key string `json:"key"`
// the plaintext
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the authentication tag
Tag string `json:"tag"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AeadTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["aad"]; raw != nil && !ok {
return fmt.Errorf("field aad in AeadTestVector: required")
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in AeadTestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in AeadTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in AeadTestVector: required")
}
if _, ok := raw["iv"]; raw != nil && !ok {
return fmt.Errorf("field iv in AeadTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in AeadTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in AeadTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in AeadTestVector: required")
}
if _, ok := raw["tag"]; raw != nil && !ok {
return fmt.Errorf("field tag in AeadTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in AeadTestVector: required")
}
type Plain AeadTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = AeadTestVector(plain)
return nil
}
type AsnSignatureTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The message to sign
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// An ASN encoded signature for msg
Sig string `json:"sig"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *AsnSignatureTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in AsnSignatureTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in AsnSignatureTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in AsnSignatureTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in AsnSignatureTestVector: required")
}
if _, ok := raw["sig"]; raw != nil && !ok {
return fmt.Errorf("field sig in AsnSignatureTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in AsnSignatureTestVector: required")
}
type Plain AsnSignatureTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = AsnSignatureTestVector(plain)
return nil
}
type BlsAggregateVerifySchemaJson struct {
// The primitive tested in the test file
Algorithm string `json:"algorithm"`
// Additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// The number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema BlsAggregateVerifySchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []BlsAggregateVerifyTestGroup `json:"testGroups"`
}
type BlsAggregateVerifySchemaJsonSchema string
const BlsAggregateVerifySchemaJsonSchemaBlsAggregateVerifySchemaJson BlsAggregateVerifySchemaJsonSchema = "bls_aggregate_verify_schema.json"
var enumValues_BlsAggregateVerifySchemaJsonSchema = []interface{}{
"bls_aggregate_verify_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsAggregateVerifySchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsAggregateVerifySchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsAggregateVerifySchemaJsonSchema, v)
}
*j = BlsAggregateVerifySchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsAggregateVerifySchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in BlsAggregateVerifySchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in BlsAggregateVerifySchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in BlsAggregateVerifySchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in BlsAggregateVerifySchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in BlsAggregateVerifySchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in BlsAggregateVerifySchemaJson: required")
}
type Plain BlsAggregateVerifySchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsAggregateVerifySchemaJson(plain)
return nil
}
type BlsAggregateVerifyTestGroup struct {
// The BLS ciphersuite identifier
Ciphersuite string `json:"ciphersuite"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []BlsAggregateVerifyTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type BlsAggregateVerifyTestGroupType `json:"type"`
}
type BlsAggregateVerifyTestGroupType string
const BlsAggregateVerifyTestGroupTypeBlsAggregateVerify BlsAggregateVerifyTestGroupType = "BlsAggregateVerify"
var enumValues_BlsAggregateVerifyTestGroupType = []interface{}{
"BlsAggregateVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsAggregateVerifyTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsAggregateVerifyTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsAggregateVerifyTestGroupType, v)
}
*j = BlsAggregateVerifyTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsAggregateVerifyTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["ciphersuite"]; raw != nil && !ok {
return fmt.Errorf("field ciphersuite in BlsAggregateVerifyTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in BlsAggregateVerifyTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in BlsAggregateVerifyTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in BlsAggregateVerifyTestGroup: required")
}
type Plain BlsAggregateVerifyTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsAggregateVerifyTestGroup(plain)
return nil
}
type BlsAggregateVerifyTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The messages that were signed
Messages []string `json:"messages"`
// The compressed public keys
Pubkeys []string `json:"pubkeys"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The aggregated BLS signature in compressed form
Sig string `json:"sig"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsAggregateVerifyTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["messages"]; raw != nil && !ok {
return fmt.Errorf("field messages in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["pubkeys"]; raw != nil && !ok {
return fmt.Errorf("field pubkeys in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["sig"]; raw != nil && !ok {
return fmt.Errorf("field sig in BlsAggregateVerifyTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in BlsAggregateVerifyTestVector: required")
}
type Plain BlsAggregateVerifyTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsAggregateVerifyTestVector(plain)
return nil
}
type BlsHashToG2SchemaJson struct {
// The primitive tested in the test file
Algorithm string `json:"algorithm"`
// Additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// The number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema BlsHashToG2SchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []BlsHashToG2TestGroup `json:"testGroups"`
}
type BlsHashToG2SchemaJsonSchema string
const BlsHashToG2SchemaJsonSchemaBlsHashToG2SchemaJson BlsHashToG2SchemaJsonSchema = "bls_hash_to_g2_schema.json"
var enumValues_BlsHashToG2SchemaJsonSchema = []interface{}{
"bls_hash_to_g2_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsHashToG2SchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsHashToG2SchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsHashToG2SchemaJsonSchema, v)
}
*j = BlsHashToG2SchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsHashToG2SchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in BlsHashToG2SchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in BlsHashToG2SchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in BlsHashToG2SchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in BlsHashToG2SchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in BlsHashToG2SchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in BlsHashToG2SchemaJson: required")
}
type Plain BlsHashToG2SchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsHashToG2SchemaJson(plain)
return nil
}
type BlsHashToG2TestGroup struct {
// The domain separation tag used for hash_to_curve
Dst string `json:"dst"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []BlsHashToG2TestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type BlsHashToG2TestGroupType `json:"type"`
}
type BlsHashToG2TestGroupType string
const BlsHashToG2TestGroupTypeBlsHashToG2 BlsHashToG2TestGroupType = "BlsHashToG2"
var enumValues_BlsHashToG2TestGroupType = []interface{}{
"BlsHashToG2",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsHashToG2TestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsHashToG2TestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsHashToG2TestGroupType, v)
}
*j = BlsHashToG2TestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsHashToG2TestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["dst"]; raw != nil && !ok {
return fmt.Errorf("field dst in BlsHashToG2TestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in BlsHashToG2TestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in BlsHashToG2TestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in BlsHashToG2TestGroup: required")
}
type Plain BlsHashToG2TestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsHashToG2TestGroup(plain)
return nil
}
type BlsHashToG2TestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// The expected hash-to-curve output point in compressed form
Expected string `json:"expected"`
// A list of flags
Flags []string `json:"flags"`
// The input message
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsHashToG2TestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in BlsHashToG2TestVector: required")
}
if _, ok := raw["expected"]; raw != nil && !ok {
return fmt.Errorf("field expected in BlsHashToG2TestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in BlsHashToG2TestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in BlsHashToG2TestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in BlsHashToG2TestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in BlsHashToG2TestVector: required")
}
type Plain BlsHashToG2TestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsHashToG2TestVector(plain)
return nil
}
type BlsPublicKey struct {
// The group the public key belongs to
Group BlsPublicKeyGroup `json:"group"`
// The size of the public key in bytes
KeySize int `json:"keySize"`
// The compressed public key
Pk string `json:"pk"`
}
type BlsPublicKeyGroup string
const BlsPublicKeyGroupG1 BlsPublicKeyGroup = "G1"
const BlsPublicKeyGroupG2 BlsPublicKeyGroup = "G2"
var enumValues_BlsPublicKeyGroup = []interface{}{
"G1",
"G2",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsPublicKeyGroup) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsPublicKeyGroup {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsPublicKeyGroup, v)
}
*j = BlsPublicKeyGroup(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsPublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["group"]; raw != nil && !ok {
return fmt.Errorf("field group in BlsPublicKey: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in BlsPublicKey: required")
}
if _, ok := raw["pk"]; raw != nil && !ok {
return fmt.Errorf("field pk in BlsPublicKey: required")
}
type Plain BlsPublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsPublicKey(plain)
return nil
}
type BlsSigVerifySchemaJson struct {
// The primitive tested in the test file
Algorithm string `json:"algorithm"`
// Additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// The number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema BlsSigVerifySchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []BlsSigVerifyTestGroup `json:"testGroups"`
}
type BlsSigVerifySchemaJsonSchema string
const BlsSigVerifySchemaJsonSchemaBlsSigVerifySchemaJson BlsSigVerifySchemaJsonSchema = "bls_sig_verify_schema.json"
var enumValues_BlsSigVerifySchemaJsonSchema = []interface{}{
"bls_sig_verify_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsSigVerifySchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsSigVerifySchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsSigVerifySchemaJsonSchema, v)
}
*j = BlsSigVerifySchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsSigVerifySchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in BlsSigVerifySchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in BlsSigVerifySchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in BlsSigVerifySchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in BlsSigVerifySchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in BlsSigVerifySchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in BlsSigVerifySchemaJson: required")
}
type Plain BlsSigVerifySchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsSigVerifySchemaJson(plain)
return nil
}
type BlsSigVerifyTestGroup struct {
// The BLS ciphersuite identifier, e.g.
// BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_
Ciphersuite string `json:"ciphersuite"`
// PublicKey corresponds to the JSON schema field "publicKey".
PublicKey BlsPublicKey `json:"publicKey"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type BlsSigVerifyTestGroupType `json:"type"`
}
type BlsSigVerifyTestGroupType string
const BlsSigVerifyTestGroupTypeBlsSigVerify BlsSigVerifyTestGroupType = "BlsSigVerify"
var enumValues_BlsSigVerifyTestGroupType = []interface{}{
"BlsSigVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsSigVerifyTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_BlsSigVerifyTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_BlsSigVerifyTestGroupType, v)
}
*j = BlsSigVerifyTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *BlsSigVerifyTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["ciphersuite"]; raw != nil && !ok {
return fmt.Errorf("field ciphersuite in BlsSigVerifyTestGroup: required")
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in BlsSigVerifyTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in BlsSigVerifyTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in BlsSigVerifyTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in BlsSigVerifyTestGroup: required")
}
type Plain BlsSigVerifyTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = BlsSigVerifyTestGroup(plain)
return nil
}
type DaeadTestGroup struct {
// the keySize in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []DaeadTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type DaeadTestGroupType `json:"type"`
}
type DaeadTestGroupType string
const DaeadTestGroupTypeDaeadTest DaeadTestGroupType = "DaeadTest"
var enumValues_DaeadTestGroupType = []interface{}{
"DaeadTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DaeadTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DaeadTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DaeadTestGroupType, v)
}
*j = DaeadTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DaeadTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in DaeadTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in DaeadTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in DaeadTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in DaeadTestGroup: required")
}
type Plain DaeadTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DaeadTestGroup(plain)
return nil
}
type DaeadTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema DaeadTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []DaeadTestGroup `json:"testGroups"`
}
type DaeadTestSchemaV1JsonSchema string
const DaeadTestSchemaV1JsonSchemaDaeadTestSchemaV1Json DaeadTestSchemaV1JsonSchema = "daead_test_schema_v1.json"
var enumValues_DaeadTestSchemaV1JsonSchema = []interface{}{
"daead_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DaeadTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DaeadTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DaeadTestSchemaV1JsonSchema, v)
}
*j = DaeadTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DaeadTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in DaeadTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in DaeadTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in DaeadTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in DaeadTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in DaeadTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in DaeadTestSchemaV1Json: required")
}
type Plain DaeadTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DaeadTestSchemaV1Json(plain)
return nil
}
type DaeadTestVector struct {
// additional authenticated data
Aad string `json:"aad"`
// A brief description of the test case
Comment string `json:"comment"`
// the ciphertext including tag
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags,omitempty"`
// the key
Key string `json:"key"`
// the plaintext
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DaeadTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["aad"]; raw != nil && !ok {
return fmt.Errorf("field aad in DaeadTestVector: required")
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in DaeadTestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in DaeadTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in DaeadTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in DaeadTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in DaeadTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in DaeadTestVector: required")
}
type Plain DaeadTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DaeadTestVector(plain)
return nil
}
type DsaP1363TestGroup struct {
// unencoded EC public key
PublicKey DsaPublicKey `json:"publicKey"`
// DER encoded public key
PublicKeyDer string `json:"publicKeyDer"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// the hash function used for DSA
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type DsaP1363TestGroupType `json:"type"`
}
type DsaP1363TestGroupType string
const DsaP1363TestGroupTypeDsaP1363Verify DsaP1363TestGroupType = "DsaP1363Verify"
var enumValues_DsaP1363TestGroupType = []interface{}{
"DsaP1363Verify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaP1363TestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DsaP1363TestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DsaP1363TestGroupType, v)
}
*j = DsaP1363TestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaP1363TestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in DsaP1363TestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in DsaP1363TestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in DsaP1363TestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in DsaP1363TestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in DsaP1363TestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in DsaP1363TestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in DsaP1363TestGroup: required")
}
type Plain DsaP1363TestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DsaP1363TestGroup(plain)
return nil
}
type DsaP1363VerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema DsaP1363VerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []DsaP1363TestGroup `json:"testGroups"`
}
type DsaP1363VerifySchemaV1JsonSchema string
const DsaP1363VerifySchemaV1JsonSchemaDsaP1363VerifySchemaV1Json DsaP1363VerifySchemaV1JsonSchema = "dsa_p1363_verify_schema_v1.json"
var enumValues_DsaP1363VerifySchemaV1JsonSchema = []interface{}{
"dsa_p1363_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaP1363VerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DsaP1363VerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DsaP1363VerifySchemaV1JsonSchema, v)
}
*j = DsaP1363VerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaP1363VerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in DsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in DsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in DsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in DsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in DsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in DsaP1363VerifySchemaV1Json: required")
}
type Plain DsaP1363VerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DsaP1363VerifySchemaV1Json(plain)
return nil
}
type DsaPublicKey struct {
// the generator of the multiplicative subgroup
G string `json:"g"`
// the key size in bits
KeySize int `json:"keySize"`
// the modulus p
P string `json:"p"`
// the order of the generator g
Q string `json:"q"`
// the key type
Type DsaPublicKeyType `json:"type"`
// the public key value
Y string `json:"y"`
}
type DsaPublicKeyType string
const DsaPublicKeyTypeDsaPublicKey DsaPublicKeyType = "DsaPublicKey"
var enumValues_DsaPublicKeyType = []interface{}{
"DsaPublicKey",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaPublicKeyType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DsaPublicKeyType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DsaPublicKeyType, v)
}
*j = DsaPublicKeyType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaPublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["g"]; raw != nil && !ok {
return fmt.Errorf("field g in DsaPublicKey: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in DsaPublicKey: required")
}
if _, ok := raw["p"]; raw != nil && !ok {
return fmt.Errorf("field p in DsaPublicKey: required")
}
if _, ok := raw["q"]; raw != nil && !ok {
return fmt.Errorf("field q in DsaPublicKey: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in DsaPublicKey: required")
}
if _, ok := raw["y"]; raw != nil && !ok {
return fmt.Errorf("field y in DsaPublicKey: required")
}
type Plain DsaPublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DsaPublicKey(plain)
return nil
}
type DsaTestGroup struct {
// unenocded DSA public key
PublicKey DsaPublicKey `json:"publicKey"`
// DER encoded public key
PublicKeyDer string `json:"publicKeyDer"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// the hash function used for DSA
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []AsnSignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type DsaTestGroupType `json:"type"`
}
type DsaTestGroupType string
const DsaTestGroupTypeDsaVerify DsaTestGroupType = "DsaVerify"
var enumValues_DsaTestGroupType = []interface{}{
"DsaVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DsaTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DsaTestGroupType, v)
}
*j = DsaTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in DsaTestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in DsaTestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in DsaTestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in DsaTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in DsaTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in DsaTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in DsaTestGroup: required")
}
type Plain DsaTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DsaTestGroup(plain)
return nil
}
type DsaVerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema DsaVerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []DsaTestGroup `json:"testGroups"`
}
type DsaVerifySchemaV1JsonSchema string
const DsaVerifySchemaV1JsonSchemaDsaVerifySchemaV1Json DsaVerifySchemaV1JsonSchema = "dsa_verify_schema_v1.json"
var enumValues_DsaVerifySchemaV1JsonSchema = []interface{}{
"dsa_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaVerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_DsaVerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_DsaVerifySchemaV1JsonSchema, v)
}
*j = DsaVerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *DsaVerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in DsaVerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in DsaVerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in DsaVerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in DsaVerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in DsaVerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in DsaVerifySchemaV1Json: required")
}
type Plain DsaVerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = DsaVerifySchemaV1Json(plain)
return nil
}
// A test for checking elliptic curve domain parameters.
type EcCurveTest struct {
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []EcCurveTestTestsElem `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcCurveTestType `json:"type"`
}
type EcCurveTestSchemaJson struct {
// Algorithm corresponds to the JSON schema field "algorithm".
Algorithm EcCurveTestSchemaJsonAlgorithm `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcCurveTestSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcCurveTest `json:"testGroups"`
}
type EcCurveTestSchemaJsonAlgorithm string
const EcCurveTestSchemaJsonAlgorithmEcCurveTest EcCurveTestSchemaJsonAlgorithm = "EcCurveTest"
var enumValues_EcCurveTestSchemaJsonAlgorithm = []interface{}{
"EcCurveTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTestSchemaJsonAlgorithm) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcCurveTestSchemaJsonAlgorithm {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcCurveTestSchemaJsonAlgorithm, v)
}
*j = EcCurveTestSchemaJsonAlgorithm(v)
return nil
}
type EcCurveTestSchemaJsonSchema string
const EcCurveTestSchemaJsonSchemaEcCurveTestSchemaJson EcCurveTestSchemaJsonSchema = "ec_curve_test_schema.json"
var enumValues_EcCurveTestSchemaJsonSchema = []interface{}{
"ec_curve_test_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTestSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcCurveTestSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcCurveTestSchemaJsonSchema, v)
}
*j = EcCurveTestSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTestSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcCurveTestSchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcCurveTestSchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcCurveTestSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcCurveTestSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcCurveTestSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcCurveTestSchemaJson: required")
}
type Plain EcCurveTestSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcCurveTestSchemaJson(plain)
return nil
}
type EcCurveTestTestsElem struct {
// Coefficient a of the curve's Weierstrass equation
A string `json:"a"`
// Coefficient b of the curve's Weierstrass equation
B string `json:"b"`
// A brief description of the test case
Comment *string `json:"comment,omitempty"`
// A list of flags
Flags []string `json:"flags,omitempty"`
// x coordinate of the curve's generator
Gx string `json:"gx"`
// y coordinate of the curve's generator
Gy string `json:"gy"`
// Cofactor of the curve
H int `json:"h"`
// Order of the curve
N string `json:"n"`
// Name identifying the elliptic curve
Name *string `json:"name,omitempty"`
// Object identifier of the ellptic curve
Oid string `json:"oid"`
// Prime identifying the field of definition
P string `json:"p"`
// Standard containing the domain parameters
Ref *string `json:"ref,omitempty"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTestTestsElem) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["a"]; raw != nil && !ok {
return fmt.Errorf("field a in EcCurveTestTestsElem: required")
}
if _, ok := raw["b"]; raw != nil && !ok {
return fmt.Errorf("field b in EcCurveTestTestsElem: required")
}
if _, ok := raw["gx"]; raw != nil && !ok {
return fmt.Errorf("field gx in EcCurveTestTestsElem: required")
}
if _, ok := raw["gy"]; raw != nil && !ok {
return fmt.Errorf("field gy in EcCurveTestTestsElem: required")
}
if _, ok := raw["h"]; raw != nil && !ok {
return fmt.Errorf("field h in EcCurveTestTestsElem: required")
}
if _, ok := raw["n"]; raw != nil && !ok {
return fmt.Errorf("field n in EcCurveTestTestsElem: required")
}
if _, ok := raw["oid"]; raw != nil && !ok {
return fmt.Errorf("field oid in EcCurveTestTestsElem: required")
}
if _, ok := raw["p"]; raw != nil && !ok {
return fmt.Errorf("field p in EcCurveTestTestsElem: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in EcCurveTestTestsElem: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in EcCurveTestTestsElem: required")
}
type Plain EcCurveTestTestsElem
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcCurveTestTestsElem(plain)
return nil
}
type EcCurveTestType string
const EcCurveTestTypeEcCurveTest EcCurveTestType = "EcCurveTest"
var enumValues_EcCurveTestType = []interface{}{
"EcCurveTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTestType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcCurveTestType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcCurveTestType, v)
}
*j = EcCurveTestType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcCurveTest) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcCurveTest: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcCurveTest: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcCurveTest: required")
}
type Plain EcCurveTest
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcCurveTest(plain)
return nil
}
type EcPublicKey struct {
// the EC group used by this public key
Curve string `json:"curve"`
// the key size in bits
KeySize int `json:"keySize"`
// the key type
Type EcPublicKeyType `json:"type"`
// encoded public key point
Uncompressed string `json:"uncompressed"`
// the x-coordinate of the public key point
Wx string `json:"wx"`
// the y-coordinate of the public key point
Wy string `json:"wy"`
}
type EcPublicKeyType string
const EcPublicKeyTypeEcPublicKey EcPublicKeyType = "EcPublicKey"
var enumValues_EcPublicKeyType = []interface{}{
"EcPublicKey",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcPublicKeyType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcPublicKeyType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcPublicKeyType, v)
}
*j = EcPublicKeyType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcPublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in EcPublicKey: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in EcPublicKey: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcPublicKey: required")
}
if _, ok := raw["uncompressed"]; raw != nil && !ok {
return fmt.Errorf("field uncompressed in EcPublicKey: required")
}
if _, ok := raw["wx"]; raw != nil && !ok {
return fmt.Errorf("field wx in EcPublicKey: required")
}
if _, ok := raw["wy"]; raw != nil && !ok {
return fmt.Errorf("field wy in EcPublicKey: required")
}
type Plain EcPublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcPublicKey(plain)
return nil
}
type EcdhEcpointTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// the encoding of the public key
Encoding string `json:"encoding"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []EcdhEcpointTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdhEcpointTestGroupType `json:"type"`
}
type EcdhEcpointTestGroupType string
const EcdhEcpointTestGroupTypeEcdhEcpointTest EcdhEcpointTestGroupType = "EcdhEcpointTest"
var enumValues_EcdhEcpointTestGroupType = []interface{}{
"EcdhEcpointTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhEcpointTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhEcpointTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhEcpointTestGroupType, v)
}
*j = EcdhEcpointTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhEcpointTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in EcdhEcpointTestGroup: required")
}
if _, ok := raw["encoding"]; raw != nil && !ok {
return fmt.Errorf("field encoding in EcdhEcpointTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdhEcpointTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdhEcpointTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdhEcpointTestGroup: required")
}
type Plain EcdhEcpointTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhEcpointTestGroup(plain)
return nil
}
type EcdhEcpointTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdhEcpointTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdhEcpointTestGroup `json:"testGroups"`
}
type EcdhEcpointTestSchemaV1JsonSchema string
const EcdhEcpointTestSchemaV1JsonSchemaEcdhEcpointTestSchemaV1Json EcdhEcpointTestSchemaV1JsonSchema = "ecdh_ecpoint_test_schema_v1.json"
var enumValues_EcdhEcpointTestSchemaV1JsonSchema = []interface{}{
"ecdh_ecpoint_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhEcpointTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhEcpointTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhEcpointTestSchemaV1JsonSchema, v)
}
*j = EcdhEcpointTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhEcpointTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdhEcpointTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdhEcpointTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdhEcpointTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdhEcpointTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdhEcpointTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdhEcpointTestSchemaV1Json: required")
}
type Plain EcdhEcpointTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhEcpointTestSchemaV1Json(plain)
return nil
}
type EcdhEcpointTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The private exponent
Private string `json:"private"`
// ASN encoded public point
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The shared secret key
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhEcpointTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in EcdhEcpointTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in EcdhEcpointTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in EcdhEcpointTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in EcdhEcpointTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in EcdhEcpointTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in EcdhEcpointTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in EcdhEcpointTestVector: required")
}
type Plain EcdhEcpointTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhEcpointTestVector(plain)
return nil
}
type EcdhPemTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// the encoding of the public key
Encoding string `json:"encoding"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []EcdhPemTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdhPemTestGroupType `json:"type"`
}
type EcdhPemTestGroupType string
const EcdhPemTestGroupTypeEcdhPemTest EcdhPemTestGroupType = "EcdhPemTest"
var enumValues_EcdhPemTestGroupType = []interface{}{
"EcdhPemTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhPemTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhPemTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhPemTestGroupType, v)
}
*j = EcdhPemTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhPemTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in EcdhPemTestGroup: required")
}
if _, ok := raw["encoding"]; raw != nil && !ok {
return fmt.Errorf("field encoding in EcdhPemTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdhPemTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdhPemTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdhPemTestGroup: required")
}
type Plain EcdhPemTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhPemTestGroup(plain)
return nil
}
type EcdhPemTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdhPemTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdhPemTestGroup `json:"testGroups"`
}
type EcdhPemTestSchemaV1JsonSchema string
const EcdhPemTestSchemaV1JsonSchemaEcdhPemTestSchemaV1Json EcdhPemTestSchemaV1JsonSchema = "ecdh_pem_test_schema_v1.json"
var enumValues_EcdhPemTestSchemaV1JsonSchema = []interface{}{
"ecdh_pem_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhPemTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhPemTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhPemTestSchemaV1JsonSchema, v)
}
*j = EcdhPemTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhPemTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdhPemTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdhPemTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdhPemTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdhPemTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdhPemTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdhPemTestSchemaV1Json: required")
}
type Plain EcdhPemTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhPemTestSchemaV1Json(plain)
return nil
}
type EcdhPemTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// Pem encoded private key
Private string `json:"private"`
// Pem encoded public key
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The shared secret key
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhPemTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in EcdhPemTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in EcdhPemTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in EcdhPemTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in EcdhPemTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in EcdhPemTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in EcdhPemTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in EcdhPemTestVector: required")
}
type Plain EcdhPemTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhPemTestVector(plain)
return nil
}
type EcdhTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// the encoding of the public key
Encoding string `json:"encoding"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []EcdhTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdhTestGroupType `json:"type"`
}
type EcdhTestGroupType string
const EcdhTestGroupTypeEcdhTest EcdhTestGroupType = "EcdhTest"
var enumValues_EcdhTestGroupType = []interface{}{
"EcdhTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhTestGroupType, v)
}
*j = EcdhTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in EcdhTestGroup: required")
}
if _, ok := raw["encoding"]; raw != nil && !ok {
return fmt.Errorf("field encoding in EcdhTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdhTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdhTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdhTestGroup: required")
}
type Plain EcdhTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhTestGroup(plain)
return nil
}
type EcdhTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdhTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdhTestGroup `json:"testGroups"`
}
type EcdhTestSchemaV1JsonSchema string
const EcdhTestSchemaV1JsonSchemaEcdhTestSchemaV1Json EcdhTestSchemaV1JsonSchema = "ecdh_test_schema_v1.json"
var enumValues_EcdhTestSchemaV1JsonSchema = []interface{}{
"ecdh_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhTestSchemaV1JsonSchema, v)
}
*j = EcdhTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdhTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdhTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdhTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdhTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdhTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdhTestSchemaV1Json: required")
}
type Plain EcdhTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhTestSchemaV1Json(plain)
return nil
}
type EcdhTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the private key
Private string `json:"private"`
// Encoded public key
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The shared secret key
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in EcdhTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in EcdhTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in EcdhTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in EcdhTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in EcdhTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in EcdhTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in EcdhTestVector: required")
}
type Plain EcdhTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhTestVector(plain)
return nil
}
type EcdhWebcryptoTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// the encoding of the public key
Encoding string `json:"encoding"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []EcdhWebcryptoTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdhWebcryptoTestGroupType `json:"type"`
}
type EcdhWebcryptoTestGroupType string
const EcdhWebcryptoTestGroupTypeEcdhWebcryptoTest EcdhWebcryptoTestGroupType = "EcdhWebcryptoTest"
var enumValues_EcdhWebcryptoTestGroupType = []interface{}{
"EcdhWebcryptoTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhWebcryptoTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhWebcryptoTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhWebcryptoTestGroupType, v)
}
*j = EcdhWebcryptoTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhWebcryptoTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in EcdhWebcryptoTestGroup: required")
}
if _, ok := raw["encoding"]; raw != nil && !ok {
return fmt.Errorf("field encoding in EcdhWebcryptoTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdhWebcryptoTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdhWebcryptoTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdhWebcryptoTestGroup: required")
}
type Plain EcdhWebcryptoTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhWebcryptoTestGroup(plain)
return nil
}
type EcdhWebcryptoTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdhWebcryptoTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdhWebcryptoTestGroup `json:"testGroups"`
}
type EcdhWebcryptoTestSchemaV1JsonSchema string
const EcdhWebcryptoTestSchemaV1JsonSchemaEcdhWebcryptoTestSchemaV1Json EcdhWebcryptoTestSchemaV1JsonSchema = "ecdh_webcrypto_test_schema_v1.json"
var enumValues_EcdhWebcryptoTestSchemaV1JsonSchema = []interface{}{
"ecdh_webcrypto_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhWebcryptoTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdhWebcryptoTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdhWebcryptoTestSchemaV1JsonSchema, v)
}
*j = EcdhWebcryptoTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhWebcryptoTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdhWebcryptoTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdhWebcryptoTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdhWebcryptoTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdhWebcryptoTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdhWebcryptoTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdhWebcryptoTestSchemaV1Json: required")
}
type Plain EcdhWebcryptoTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhWebcryptoTestSchemaV1Json(plain)
return nil
}
type EcdhWebcryptoTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// Private key in webcrypto format
Private EcdhWebcryptoTestVectorPrivate `json:"private"`
// Public key in webcrypto format
Public EcdhWebcryptoTestVectorPublic `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The shared secret key
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// Private key in webcrypto format
type EcdhWebcryptoTestVectorPrivate map[string]interface{}
// Public key in webcrypto format
type EcdhWebcryptoTestVectorPublic map[string]interface{}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdhWebcryptoTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in EcdhWebcryptoTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in EcdhWebcryptoTestVector: required")
}
type Plain EcdhWebcryptoTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdhWebcryptoTestVector(plain)
return nil
}
type EcdsaP1363TestGroup struct {
// unencoded EC public key
PublicKey EcPublicKey `json:"publicKey"`
// DER encoded public key
PublicKeyDer string `json:"publicKeyDer"`
// PublicKeyJwk corresponds to the JSON schema field "publicKeyJwk".
PublicKeyJwk *JsonWebKey `json:"publicKeyJwk,omitempty"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// the hash function used for ECDSA
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdsaP1363TestGroupType `json:"type"`
}
type EcdsaP1363TestGroupType string
const EcdsaP1363TestGroupTypeEcdsaP1363Verify EcdsaP1363TestGroupType = "EcdsaP1363Verify"
var enumValues_EcdsaP1363TestGroupType = []interface{}{
"EcdsaP1363Verify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaP1363TestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdsaP1363TestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdsaP1363TestGroupType, v)
}
*j = EcdsaP1363TestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaP1363TestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in EcdsaP1363TestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in EcdsaP1363TestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in EcdsaP1363TestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in EcdsaP1363TestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdsaP1363TestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdsaP1363TestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdsaP1363TestGroup: required")
}
type Plain EcdsaP1363TestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdsaP1363TestGroup(plain)
return nil
}
type EcdsaP1363VerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdsaP1363VerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdsaP1363TestGroup `json:"testGroups"`
}
type EcdsaP1363VerifySchemaV1JsonSchema string
const EcdsaP1363VerifySchemaV1JsonSchemaEcdsaP1363VerifySchemaV1Json EcdsaP1363VerifySchemaV1JsonSchema = "ecdsa_p1363_verify_schema_v1.json"
var enumValues_EcdsaP1363VerifySchemaV1JsonSchema = []interface{}{
"ecdsa_p1363_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaP1363VerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdsaP1363VerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdsaP1363VerifySchemaV1JsonSchema, v)
}
*j = EcdsaP1363VerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaP1363VerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdsaP1363VerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdsaP1363VerifySchemaV1Json: required")
}
type Plain EcdsaP1363VerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdsaP1363VerifySchemaV1Json(plain)
return nil
}
type EcdsaTestGroup struct {
// unencoded EC public key
PublicKey EcPublicKey `json:"publicKey"`
// DER encoded public key
PublicKeyDer string `json:"publicKeyDer"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// the hash function used for ECDSA
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []AsnSignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EcdsaTestGroupType `json:"type"`
}
type EcdsaTestGroupType string
const EcdsaTestGroupTypeEcdsaVerify EcdsaTestGroupType = "EcdsaVerify"
var enumValues_EcdsaTestGroupType = []interface{}{
"EcdsaVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdsaTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdsaTestGroupType, v)
}
*j = EcdsaTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in EcdsaTestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in EcdsaTestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in EcdsaTestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in EcdsaTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EcdsaTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EcdsaTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EcdsaTestGroup: required")
}
type Plain EcdsaTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdsaTestGroup(plain)
return nil
}
type EcdsaVerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EcdsaVerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EcdsaTestGroup `json:"testGroups"`
}
type EcdsaVerifySchemaV1JsonSchema string
const EcdsaVerifySchemaV1JsonSchemaEcdsaVerifySchemaV1Json EcdsaVerifySchemaV1JsonSchema = "ecdsa_verify_schema_v1.json"
var enumValues_EcdsaVerifySchemaV1JsonSchema = []interface{}{
"ecdsa_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaVerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EcdsaVerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EcdsaVerifySchemaV1JsonSchema, v)
}
*j = EcdsaVerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EcdsaVerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EcdsaVerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EcdsaVerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EcdsaVerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EcdsaVerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EcdsaVerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EcdsaVerifySchemaV1Json: required")
}
type Plain EcdsaVerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EcdsaVerifySchemaV1Json(plain)
return nil
}
type EddsaTestGroup struct {
// PublicKey corresponds to the JSON schema field "publicKey".
PublicKey PublicKey `json:"publicKey"`
// Asn encoded public key
PublicKeyDer string `json:"publicKeyDer"`
// the public key in webcrypto format
PublicKeyJwk *JsonWebKey `json:"publicKeyJwk,omitempty"`
// PEM encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type EddsaTestGroupType `json:"type"`
}
type EddsaTestGroupType string
const EddsaTestGroupTypeEddsaVerify EddsaTestGroupType = "EddsaVerify"
var enumValues_EddsaTestGroupType = []interface{}{
"EddsaVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EddsaTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EddsaTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EddsaTestGroupType, v)
}
*j = EddsaTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EddsaTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in EddsaTestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in EddsaTestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in EddsaTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in EddsaTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in EddsaTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in EddsaTestGroup: required")
}
type Plain EddsaTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EddsaTestGroup(plain)
return nil
}
type EddsaVerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema EddsaVerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []EddsaTestGroup `json:"testGroups"`
}
type EddsaVerifySchemaV1JsonSchema string
const EddsaVerifySchemaV1JsonSchemaEddsaVerifySchemaV1Json EddsaVerifySchemaV1JsonSchema = "eddsa_verify_schema_v1.json"
var enumValues_EddsaVerifySchemaV1JsonSchema = []interface{}{
"eddsa_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EddsaVerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_EddsaVerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_EddsaVerifySchemaV1JsonSchema, v)
}
*j = EddsaVerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *EddsaVerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in EddsaVerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in EddsaVerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in EddsaVerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in EddsaVerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in EddsaVerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in EddsaVerifySchemaV1Json: required")
}
type Plain EddsaVerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = EddsaVerifySchemaV1Json(plain)
return nil
}
type HkdfTestGroup struct {
// the size of the ikm in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []HkdfTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type HkdfTestGroupType `json:"type"`
}
type HkdfTestGroupType string
const HkdfTestGroupTypeHkdfTest HkdfTestGroupType = "HkdfTest"
var enumValues_HkdfTestGroupType = []interface{}{
"HkdfTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *HkdfTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_HkdfTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_HkdfTestGroupType, v)
}
*j = HkdfTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *HkdfTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in HkdfTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in HkdfTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in HkdfTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in HkdfTestGroup: required")
}
type Plain HkdfTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = HkdfTestGroup(plain)
return nil
}
type HkdfTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema HkdfTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []HkdfTestGroup `json:"testGroups"`
}
type HkdfTestSchemaV1JsonSchema string
const HkdfTestSchemaV1JsonSchemaHkdfTestSchemaV1Json HkdfTestSchemaV1JsonSchema = "hkdf_test_schema_v1.json"
var enumValues_HkdfTestSchemaV1JsonSchema = []interface{}{
"hkdf_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *HkdfTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_HkdfTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_HkdfTestSchemaV1JsonSchema, v)
}
*j = HkdfTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *HkdfTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in HkdfTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in HkdfTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in HkdfTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in HkdfTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in HkdfTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in HkdfTestSchemaV1Json: required")
}
type Plain HkdfTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = HkdfTestSchemaV1Json(plain)
return nil
}
type HkdfTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the key (input key material)
Ikm string `json:"ikm"`
// additional information used in the key derivation
Info string `json:"info"`
// the generated bytes (output key material)
Okm string `json:"okm"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the salt for the key derivation
Salt string `json:"salt"`
// the size of the output in bytes
Size int `json:"size"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *HkdfTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in HkdfTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in HkdfTestVector: required")
}
if _, ok := raw["ikm"]; raw != nil && !ok {
return fmt.Errorf("field ikm in HkdfTestVector: required")
}
if _, ok := raw["info"]; raw != nil && !ok {
return fmt.Errorf("field info in HkdfTestVector: required")
}
if _, ok := raw["okm"]; raw != nil && !ok {
return fmt.Errorf("field okm in HkdfTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in HkdfTestVector: required")
}
if _, ok := raw["salt"]; raw != nil && !ok {
return fmt.Errorf("field salt in HkdfTestVector: required")
}
if _, ok := raw["size"]; raw != nil && !ok {
return fmt.Errorf("field size in HkdfTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in HkdfTestVector: required")
}
type Plain HkdfTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = HkdfTestVector(plain)
return nil
}
type IndCpaTestGroup struct {
// the IV size in bits
IvSize int `json:"ivSize"`
// the keySize in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []IndCpaTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type IndCpaTestGroupType `json:"type"`
}
type IndCpaTestGroupType string
const IndCpaTestGroupTypeIndCpaTest IndCpaTestGroupType = "IndCpaTest"
var enumValues_IndCpaTestGroupType = []interface{}{
"IndCpaTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *IndCpaTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_IndCpaTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_IndCpaTestGroupType, v)
}
*j = IndCpaTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *IndCpaTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["ivSize"]; raw != nil && !ok {
return fmt.Errorf("field ivSize in IndCpaTestGroup: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in IndCpaTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in IndCpaTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in IndCpaTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in IndCpaTestGroup: required")
}
type Plain IndCpaTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = IndCpaTestGroup(plain)
return nil
}
type IndCpaTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema IndCpaTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []IndCpaTestGroup `json:"testGroups"`
}
type IndCpaTestSchemaV1JsonSchema string
const IndCpaTestSchemaV1JsonSchemaIndCpaTestSchemaV1Json IndCpaTestSchemaV1JsonSchema = "ind_cpa_test_schema_v1.json"
var enumValues_IndCpaTestSchemaV1JsonSchema = []interface{}{
"ind_cpa_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *IndCpaTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_IndCpaTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_IndCpaTestSchemaV1JsonSchema, v)
}
*j = IndCpaTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *IndCpaTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in IndCpaTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in IndCpaTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in IndCpaTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in IndCpaTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in IndCpaTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in IndCpaTestSchemaV1Json: required")
}
type Plain IndCpaTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = IndCpaTestSchemaV1Json(plain)
return nil
}
type IndCpaTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// the raw ciphertext (without IV)
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags"`
// the initialization vector
Iv string `json:"iv"`
// the key
Key string `json:"key"`
// the plaintext
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *IndCpaTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in IndCpaTestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in IndCpaTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in IndCpaTestVector: required")
}
if _, ok := raw["iv"]; raw != nil && !ok {
return fmt.Errorf("field iv in IndCpaTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in IndCpaTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in IndCpaTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in IndCpaTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in IndCpaTestVector: required")
}
type Plain IndCpaTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = IndCpaTestVector(plain)
return nil
}
type JsonWebCryptoSchemaV1Json struct {
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema JsonWebCryptoSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []JsonWebCryptoTestGroup `json:"testGroups"`
}
type JsonWebCryptoSchemaV1JsonSchema string
const JsonWebCryptoSchemaV1JsonSchemaJsonWebCryptoSchemaV1Json JsonWebCryptoSchemaV1JsonSchema = "json_web_crypto_schema_v1.json"
var enumValues_JsonWebCryptoSchemaV1JsonSchema = []interface{}{
"json_web_crypto_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebCryptoSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebCryptoSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebCryptoSchemaV1JsonSchema, v)
}
*j = JsonWebCryptoSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebCryptoSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in JsonWebCryptoSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in JsonWebCryptoSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in JsonWebCryptoSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in JsonWebCryptoSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in JsonWebCryptoSchemaV1Json: required")
}
type Plain JsonWebCryptoSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebCryptoSchemaV1Json(plain)
return nil
}
type JsonWebCryptoTestGroup struct {
// a description of what these tests have in common
Comment *string `json:"comment,omitempty"`
// the private or secret key in webcrypto format
Private JsonWebKeyOrKeyset `json:"private,omitempty"`
// [optional] the public key in webcrypto format
Public JsonWebKeyOrKeyset `json:"public,omitempty"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []JsonWebCryptoTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type *JsonWebCryptoTestGroupType `json:"type,omitempty"`
}
type JsonWebCryptoTestGroupType string
const JsonWebCryptoTestGroupTypeJsonWebCrypto JsonWebCryptoTestGroupType = "JsonWebCrypto"
var enumValues_JsonWebCryptoTestGroupType = []interface{}{
"JsonWebCrypto",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebCryptoTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebCryptoTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebCryptoTestGroupType, v)
}
*j = JsonWebCryptoTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebCryptoTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in JsonWebCryptoTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in JsonWebCryptoTestGroup: required")
}
type Plain JsonWebCryptoTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebCryptoTestGroup(plain)
return nil
}
type JsonWebCryptoTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The JSON Web Encryption
Jwe interface{} `json:"jwe,omitempty"`
// The JSON Web Signature
Jws interface{} `json:"jws,omitempty"`
// [optional] Plaintext
Pt *string `json:"pt,omitempty"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebCryptoTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in JsonWebCryptoTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in JsonWebCryptoTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in JsonWebCryptoTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in JsonWebCryptoTestVector: required")
}
type Plain JsonWebCryptoTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebCryptoTestVector(plain)
return nil
}
type JsonWebEncryptionSchemaV1Json struct {
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema JsonWebEncryptionSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []JsonWebEncryptionTestGroup `json:"testGroups"`
}
type JsonWebEncryptionSchemaV1JsonSchema string
const JsonWebEncryptionSchemaV1JsonSchemaJsonWebEncryptionSchemaV1Json JsonWebEncryptionSchemaV1JsonSchema = "json_web_encryption_schema_v1.json"
var enumValues_JsonWebEncryptionSchemaV1JsonSchema = []interface{}{
"json_web_encryption_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebEncryptionSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebEncryptionSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebEncryptionSchemaV1JsonSchema, v)
}
*j = JsonWebEncryptionSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebEncryptionSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in JsonWebEncryptionSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in JsonWebEncryptionSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in JsonWebEncryptionSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in JsonWebEncryptionSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in JsonWebEncryptionSchemaV1Json: required")
}
type Plain JsonWebEncryptionSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebEncryptionSchemaV1Json(plain)
return nil
}
type JsonWebEncryptionTestGroup struct {
// a description of what these tests have in common
Comment *string `json:"comment,omitempty"`
// the private key
Private *JsonWebKey `json:"private,omitempty"`
// the [optional] public key
Public *JsonWebKey `json:"public,omitempty"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []JsonWebEncryptionTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type *JsonWebEncryptionTestGroupType `json:"type,omitempty"`
}
type JsonWebEncryptionTestGroupType string
const JsonWebEncryptionTestGroupTypeJsonWebEncryption JsonWebEncryptionTestGroupType = "JsonWebEncryption"
var enumValues_JsonWebEncryptionTestGroupType = []interface{}{
"JsonWebEncryption",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebEncryptionTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebEncryptionTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebEncryptionTestGroupType, v)
}
*j = JsonWebEncryptionTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebEncryptionTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in JsonWebEncryptionTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in JsonWebEncryptionTestGroup: required")
}
type Plain JsonWebEncryptionTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebEncryptionTestGroup(plain)
return nil
}
type JsonWebEncryptionTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// the content encryption algorithm
Enc string `json:"enc"`
// A list of flags
Flags []string `json:"flags"`
// The JSON Web Encryption in compact form
Jwe string `json:"jwe"`
// [optional] Plaintext
Pt *string `json:"pt,omitempty"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebEncryptionTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in JsonWebEncryptionTestVector: required")
}
if _, ok := raw["enc"]; raw != nil && !ok {
return fmt.Errorf("field enc in JsonWebEncryptionTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in JsonWebEncryptionTestVector: required")
}
if _, ok := raw["jwe"]; raw != nil && !ok {
return fmt.Errorf("field jwe in JsonWebEncryptionTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in JsonWebEncryptionTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in JsonWebEncryptionTestVector: required")
}
type Plain JsonWebEncryptionTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebEncryptionTestVector(plain)
return nil
}
// see https://tools.ietf.org/html/rfc7517#section-4 and
// https://tools.ietf.org/html/rfc7518#section-6
type JsonWebKey struct {
// the encryption/signing algorithm to use
Alg *string `json:"alg,omitempty"`
// which defined curve to use
Crv *JsonWebKeyCrv `json:"crv,omitempty"`
// the private key value of an EC key or private exponent for RSA
D *string `json:"d,omitempty"`
// the first factor Chinese Remainder Theorem exponent of an RSA key
Dp *string `json:"dp,omitempty"`
// the second factor Chinese Remainder Theorem exponent of an RSA key
Dq *string `json:"dq,omitempty"`
// the public exponent of an RSA key
E *string `json:"e,omitempty"`
// the secret key value of an oct key
K *string `json:"k,omitempty"`
// an alternative to use
KeyOps []string `json:"key_ops,omitempty"`
// the ID of the key entry
Kid *string `json:"kid,omitempty"`
// the family of algorithms the key belongs to
Kty *JsonWebKeyKty `json:"kty,omitempty"`
// the public modulus of an RSA key
N *string `json:"n,omitempty"`
// the first prime factgor of an RSA key
P *string `json:"p,omitempty"`
// the second prime factor of an RSA key
Q *string `json:"q,omitempty"`
// the first factor Chinese Remainder Theorem coefficient of an RSA key
Qi *string `json:"qi,omitempty"`
// what type of crypto operation to perform
Use *JsonWebKeyUse `json:"use,omitempty"`
// the x-coordinate of an EC key point
X *string `json:"x,omitempty"`
// the y-coordinate of an EC key point
Y *string `json:"y,omitempty"`
}
type JsonWebKeyCrv string
const JsonWebKeyCrvEd25519 JsonWebKeyCrv = "Ed25519"
const JsonWebKeyCrvEd448 JsonWebKeyCrv = "Ed448"
const JsonWebKeyCrvP256 JsonWebKeyCrv = "P-256"
const JsonWebKeyCrvP256K JsonWebKeyCrv = "P-256K"
const JsonWebKeyCrvP384 JsonWebKeyCrv = "P-384"
const JsonWebKeyCrvP521 JsonWebKeyCrv = "P-521"
const JsonWebKeyCrvSecp256K1 JsonWebKeyCrv = "secp256k1"
const JsonWebKeyCrvX25519 JsonWebKeyCrv = "X25519"
const JsonWebKeyCrvX448 JsonWebKeyCrv = "X448"
var enumValues_JsonWebKeyCrv = []interface{}{
"P-256",
"P-256K",
"P-384",
"P-521",
"secp256k1",
"X448",
"X25519",
"Ed25519",
"Ed448",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyCrv) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebKeyCrv {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebKeyCrv, v)
}
*j = JsonWebKeyCrv(v)
return nil
}
type JsonWebKeyKty string
const JsonWebKeyKtyBlank JsonWebKeyKty = ""
const JsonWebKeyKtyEC JsonWebKeyKty = "EC"
const JsonWebKeyKtyOKP JsonWebKeyKty = "OKP"
const JsonWebKeyKtyOct JsonWebKeyKty = "oct"
const JsonWebKeyKtyRSA JsonWebKeyKty = "RSA"
var enumValues_JsonWebKeyKty = []interface{}{
"",
"oct",
"EC",
"RSA",
"OKP",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyKty) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebKeyKty {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebKeyKty, v)
}
*j = JsonWebKeyKty(v)
return nil
}
type JsonWebKeyOrKeyset interface{}
type JsonWebKeySchemaV1Json struct {
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema JsonWebKeySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []JsonWebKeyTestGroup `json:"testGroups"`
}
type JsonWebKeySchemaV1JsonSchema string
const JsonWebKeySchemaV1JsonSchemaJsonWebKeySchemaV1Json JsonWebKeySchemaV1JsonSchema = "json_web_key_schema_v1.json"
var enumValues_JsonWebKeySchemaV1JsonSchema = []interface{}{
"json_web_key_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebKeySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebKeySchemaV1JsonSchema, v)
}
*j = JsonWebKeySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in JsonWebKeySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in JsonWebKeySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in JsonWebKeySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in JsonWebKeySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in JsonWebKeySchemaV1Json: required")
}
type Plain JsonWebKeySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebKeySchemaV1Json(plain)
return nil
}
type JsonWebKeyTestGroup struct {
// a description of what these tests have in common
Comment *string `json:"comment,omitempty"`
// the private or secret keyset in webcrypto format
Private *JsonWebKeyset `json:"private,omitempty"`
// the public keyset in webcrypto format
Public *JsonWebKeyset `json:"public,omitempty"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []JsonWebKeyTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type *JsonWebKeyTestGroupType `json:"type,omitempty"`
}
type JsonWebKeyTestGroupType string
const JsonWebKeyTestGroupTypeJsonWebKey JsonWebKeyTestGroupType = "JsonWebKey"
var enumValues_JsonWebKeyTestGroupType = []interface{}{
"JsonWebKey",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebKeyTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebKeyTestGroupType, v)
}
*j = JsonWebKeyTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in JsonWebKeyTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in JsonWebKeyTestGroup: required")
}
type Plain JsonWebKeyTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebKeyTestGroup(plain)
return nil
}
type JsonWebKeyTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The JSON Web Signature in compact form
Jws string `json:"jws"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in JsonWebKeyTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in JsonWebKeyTestVector: required")
}
if _, ok := raw["jws"]; raw != nil && !ok {
return fmt.Errorf("field jws in JsonWebKeyTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in JsonWebKeyTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in JsonWebKeyTestVector: required")
}
type Plain JsonWebKeyTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebKeyTestVector(plain)
return nil
}
type JsonWebKeyUse string
const JsonWebKeyUseEnc JsonWebKeyUse = "enc"
const JsonWebKeyUseSig JsonWebKeyUse = "sig"
var enumValues_JsonWebKeyUse = []interface{}{
"sig",
"enc",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebKeyUse) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebKeyUse {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebKeyUse, v)
}
*j = JsonWebKeyUse(v)
return nil
}
// see https://tools.ietf.org/html/rfc7517#section-5
type JsonWebKeyset struct {
// Keys corresponds to the JSON schema field "keys".
Keys []JsonWebKey `json:"keys,omitempty"`
}
type JsonWebSignatureSchemaV1Json struct {
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema JsonWebSignatureSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []JsonWebSignatureTestGroup `json:"testGroups"`
}
type JsonWebSignatureSchemaV1JsonSchema string
const JsonWebSignatureSchemaV1JsonSchemaJsonWebSignatureSchemaV1Json JsonWebSignatureSchemaV1JsonSchema = "json_web_signature_schema_v1.json"
var enumValues_JsonWebSignatureSchemaV1JsonSchema = []interface{}{
"json_web_signature_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebSignatureSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebSignatureSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebSignatureSchemaV1JsonSchema, v)
}
*j = JsonWebSignatureSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebSignatureSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in JsonWebSignatureSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in JsonWebSignatureSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in JsonWebSignatureSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in JsonWebSignatureSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in JsonWebSignatureSchemaV1Json: required")
}
type Plain JsonWebSignatureSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebSignatureSchemaV1Json(plain)
return nil
}
type JsonWebSignatureTestGroup struct {
// a description of what these tests have in common
Comment *string `json:"comment,omitempty"`
// the private or secret key in webcrypto format
Private *JsonWebKey `json:"private,omitempty"`
// [optional] the public key in webcrypto format
Public *JsonWebKey `json:"public,omitempty"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []JsonWebSignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type *JsonWebSignatureTestGroupType `json:"type,omitempty"`
}
type JsonWebSignatureTestGroupType string
const JsonWebSignatureTestGroupTypeJsonWebSignature JsonWebSignatureTestGroupType = "JsonWebSignature"
var enumValues_JsonWebSignatureTestGroupType = []interface{}{
"JsonWebSignature",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebSignatureTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_JsonWebSignatureTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_JsonWebSignatureTestGroupType, v)
}
*j = JsonWebSignatureTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebSignatureTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in JsonWebSignatureTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in JsonWebSignatureTestGroup: required")
}
type Plain JsonWebSignatureTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebSignatureTestGroup(plain)
return nil
}
type JsonWebSignatureTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The JSON Web Signature in compact form
Jws string `json:"jws"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *JsonWebSignatureTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in JsonWebSignatureTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in JsonWebSignatureTestVector: required")
}
if _, ok := raw["jws"]; raw != nil && !ok {
return fmt.Errorf("field jws in JsonWebSignatureTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in JsonWebSignatureTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in JsonWebSignatureTestVector: required")
}
type Plain JsonWebSignatureTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = JsonWebSignatureTestVector(plain)
return nil
}
type KeywrapTestGroup struct {
// the keySize in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []KeywrapTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type KeywrapTestGroupType `json:"type"`
}
type KeywrapTestGroupType string
const KeywrapTestGroupTypeKeywrapTest KeywrapTestGroupType = "KeywrapTest"
var enumValues_KeywrapTestGroupType = []interface{}{
"KeywrapTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *KeywrapTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_KeywrapTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_KeywrapTestGroupType, v)
}
*j = KeywrapTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *KeywrapTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in KeywrapTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in KeywrapTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in KeywrapTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in KeywrapTestGroup: required")
}
type Plain KeywrapTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = KeywrapTestGroup(plain)
return nil
}
type KeywrapTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema KeywrapTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []KeywrapTestGroup `json:"testGroups"`
}
type KeywrapTestSchemaV1JsonSchema string
const KeywrapTestSchemaV1JsonSchemaKeywrapTestSchemaV1Json KeywrapTestSchemaV1JsonSchema = "keywrap_test_schema_v1.json"
var enumValues_KeywrapTestSchemaV1JsonSchema = []interface{}{
"keywrap_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *KeywrapTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_KeywrapTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_KeywrapTestSchemaV1JsonSchema, v)
}
*j = KeywrapTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *KeywrapTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in KeywrapTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in KeywrapTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in KeywrapTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in KeywrapTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in KeywrapTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in KeywrapTestSchemaV1Json: required")
}
type Plain KeywrapTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = KeywrapTestSchemaV1Json(plain)
return nil
}
type KeywrapTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// the wrapped key
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags"`
// the wrapping key
Key string `json:"key"`
// the key bytes to wrap
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *KeywrapTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in KeywrapTestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in KeywrapTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in KeywrapTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in KeywrapTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in KeywrapTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in KeywrapTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in KeywrapTestVector: required")
}
type Plain KeywrapTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = KeywrapTestVector(plain)
return nil
}
// A test for ML-KEM decapsulation validation
type MLKEMDecapsTestGroup struct {
// ParameterSet corresponds to the JSON schema field "parameterSet".
ParameterSet MLKEMDecapsTestGroupParameterSet `json:"parameterSet"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MLKEMDecapsTestGroupTestsElem `json:"tests"`
// Test type for decapsulation validation
Type MLKEMDecapsTestGroupType `json:"type"`
}
type MLKEMDecapsTestGroupParameterSet string
const MLKEMDecapsTestGroupParameterSetMLKEM1024 MLKEMDecapsTestGroupParameterSet = "ML-KEM-1024"
const MLKEMDecapsTestGroupParameterSetMLKEM512 MLKEMDecapsTestGroupParameterSet = "ML-KEM-512"
const MLKEMDecapsTestGroupParameterSetMLKEM768 MLKEMDecapsTestGroupParameterSet = "ML-KEM-768"
var enumValues_MLKEMDecapsTestGroupParameterSet = []interface{}{
"ML-KEM-512",
"ML-KEM-768",
"ML-KEM-1024",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMDecapsTestGroupParameterSet) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMDecapsTestGroupParameterSet {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMDecapsTestGroupParameterSet, v)
}
*j = MLKEMDecapsTestGroupParameterSet(v)
return nil
}
type MLKEMDecapsTestGroupTestsElem struct {
// An input ciphertext
C string `json:"c"`
// A brief description of the test case
Comment *string `json:"comment,omitempty"`
// The full decapsulation key
Dk string `json:"dk"`
// A list of flags
Flags []string `json:"flags"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMDecapsTestGroupTestsElem) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["c"]; raw != nil && !ok {
return fmt.Errorf("field c in MLKEMDecapsTestGroupTestsElem: required")
}
if _, ok := raw["dk"]; raw != nil && !ok {
return fmt.Errorf("field dk in MLKEMDecapsTestGroupTestsElem: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MLKEMDecapsTestGroupTestsElem: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MLKEMDecapsTestGroupTestsElem: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MLKEMDecapsTestGroupTestsElem: required")
}
type Plain MLKEMDecapsTestGroupTestsElem
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMDecapsTestGroupTestsElem(plain)
return nil
}
type MLKEMDecapsTestGroupType string
const MLKEMDecapsTestGroupTypeMLKEMDecapsValidationTest MLKEMDecapsTestGroupType = "MLKEMDecapsValidationTest"
var enumValues_MLKEMDecapsTestGroupType = []interface{}{
"MLKEMDecapsValidationTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMDecapsTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMDecapsTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMDecapsTestGroupType, v)
}
*j = MLKEMDecapsTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMDecapsTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["parameterSet"]; raw != nil && !ok {
return fmt.Errorf("field parameterSet in MLKEMDecapsTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MLKEMDecapsTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MLKEMDecapsTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MLKEMDecapsTestGroup: required")
}
type Plain MLKEMDecapsTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMDecapsTestGroup(plain)
return nil
}
// A test for Encaps
type MLKEMEncapsTestGroup struct {
// ParameterSet corresponds to the JSON schema field "parameterSet".
ParameterSet MLKEMEncapsTestGroupParameterSet `json:"parameterSet"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MLKEMEncapsTestGroupTestsElem `json:"tests"`
// A legacy field, test files contain only one type per file
Type *MLKEMEncapsTestGroupType `json:"type,omitempty"`
}
type MLKEMEncapsTestGroupParameterSet string
const MLKEMEncapsTestGroupParameterSetMLKEM1024 MLKEMEncapsTestGroupParameterSet = "ML-KEM-1024"
const MLKEMEncapsTestGroupParameterSetMLKEM512 MLKEMEncapsTestGroupParameterSet = "ML-KEM-512"
const MLKEMEncapsTestGroupParameterSetMLKEM768 MLKEMEncapsTestGroupParameterSet = "ML-KEM-768"
var enumValues_MLKEMEncapsTestGroupParameterSet = []interface{}{
"ML-KEM-512",
"ML-KEM-768",
"ML-KEM-1024",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMEncapsTestGroupParameterSet) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMEncapsTestGroupParameterSet {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMEncapsTestGroupParameterSet, v)
}
*j = MLKEMEncapsTestGroupParameterSet(v)
return nil
}
type MLKEMEncapsTestGroupTestsElem struct {
// The output shared secret
K string `json:"K"`
// The output ciphertext
C string `json:"c"`
// A brief description of the test case
Comment *string `json:"comment,omitempty"`
// The encapsulation key
Ek string `json:"ek"`
// A list of flags
Flags []string `json:"flags"`
// The ML-KEM.Encaps_internal m input
M string `json:"m"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMEncapsTestGroupTestsElem) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["K"]; raw != nil && !ok {
return fmt.Errorf("field K in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["c"]; raw != nil && !ok {
return fmt.Errorf("field c in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["ek"]; raw != nil && !ok {
return fmt.Errorf("field ek in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["m"]; raw != nil && !ok {
return fmt.Errorf("field m in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MLKEMEncapsTestGroupTestsElem: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MLKEMEncapsTestGroupTestsElem: required")
}
type Plain MLKEMEncapsTestGroupTestsElem
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMEncapsTestGroupTestsElem(plain)
return nil
}
type MLKEMEncapsTestGroupType string
const MLKEMEncapsTestGroupTypeMLKEMEncapsTest MLKEMEncapsTestGroupType = "MLKEMEncapsTest"
var enumValues_MLKEMEncapsTestGroupType = []interface{}{
"MLKEMEncapsTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMEncapsTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMEncapsTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMEncapsTestGroupType, v)
}
*j = MLKEMEncapsTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMEncapsTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["parameterSet"]; raw != nil && !ok {
return fmt.Errorf("field parameterSet in MLKEMEncapsTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MLKEMEncapsTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MLKEMEncapsTestGroup: required")
}
type Plain MLKEMEncapsTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMEncapsTestGroup(plain)
return nil
}
// A test for KeyGen using seed format
type MLKEMKeyGenTestGroup struct {
// ParameterSet corresponds to the JSON schema field "parameterSet".
ParameterSet MLKEMKeyGenTestGroupParameterSet `json:"parameterSet"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MLKEMKeyGenTestGroupTestsElem `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MLKEMKeyGenTestGroupType `json:"type"`
}
type MLKEMKeyGenTestGroupParameterSet string
const MLKEMKeyGenTestGroupParameterSetMLKEM1024 MLKEMKeyGenTestGroupParameterSet = "ML-KEM-1024"
const MLKEMKeyGenTestGroupParameterSetMLKEM512 MLKEMKeyGenTestGroupParameterSet = "ML-KEM-512"
const MLKEMKeyGenTestGroupParameterSetMLKEM768 MLKEMKeyGenTestGroupParameterSet = "ML-KEM-768"
var enumValues_MLKEMKeyGenTestGroupParameterSet = []interface{}{
"ML-KEM-512",
"ML-KEM-768",
"ML-KEM-1024",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMKeyGenTestGroupParameterSet) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMKeyGenTestGroupParameterSet {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMKeyGenTestGroupParameterSet, v)
}
*j = MLKEMKeyGenTestGroupParameterSet(v)
return nil
}
type MLKEMKeyGenTestGroupTestsElem struct {
// A brief description of the test case
Comment *string `json:"comment,omitempty"`
// The expected expanded decapsulation key
Dk string `json:"dk"`
// The expected encapsulation key
Ek string `json:"ek"`
// A list of flags
Flags []string `json:"flags,omitempty"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The d || z seed for key generation
Seed string `json:"seed"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMKeyGenTestGroupTestsElem) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["dk"]; raw != nil && !ok {
return fmt.Errorf("field dk in MLKEMKeyGenTestGroupTestsElem: required")
}
if _, ok := raw["ek"]; raw != nil && !ok {
return fmt.Errorf("field ek in MLKEMKeyGenTestGroupTestsElem: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MLKEMKeyGenTestGroupTestsElem: required")
}
if _, ok := raw["seed"]; raw != nil && !ok {
return fmt.Errorf("field seed in MLKEMKeyGenTestGroupTestsElem: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MLKEMKeyGenTestGroupTestsElem: required")
}
type Plain MLKEMKeyGenTestGroupTestsElem
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMKeyGenTestGroupTestsElem(plain)
return nil
}
type MLKEMKeyGenTestGroupType string
const MLKEMKeyGenTestGroupTypeMLKEMKeyGen MLKEMKeyGenTestGroupType = "MLKEMKeyGen"
var enumValues_MLKEMKeyGenTestGroupType = []interface{}{
"MLKEMKeyGen",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMKeyGenTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMKeyGenTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMKeyGenTestGroupType, v)
}
*j = MLKEMKeyGenTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMKeyGenTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["parameterSet"]; raw != nil && !ok {
return fmt.Errorf("field parameterSet in MLKEMKeyGenTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MLKEMKeyGenTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MLKEMKeyGenTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MLKEMKeyGenTestGroup: required")
}
type Plain MLKEMKeyGenTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMKeyGenTestGroup(plain)
return nil
}
// A test for KeyGen and/or Decaps
type MLKEMTestGroup struct {
// ParameterSet corresponds to the JSON schema field "parameterSet".
ParameterSet MLKEMTestGroupParameterSet `json:"parameterSet"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MLKEMTestGroupTestsElem `json:"tests"`
// A legacy field, test files contain only one type per file
Type MLKEMTestGroupType `json:"type"`
}
type MLKEMTestGroupParameterSet string
const MLKEMTestGroupParameterSetMLKEM1024 MLKEMTestGroupParameterSet = "ML-KEM-1024"
const MLKEMTestGroupParameterSetMLKEM512 MLKEMTestGroupParameterSet = "ML-KEM-512"
const MLKEMTestGroupParameterSetMLKEM768 MLKEMTestGroupParameterSet = "ML-KEM-768"
var enumValues_MLKEMTestGroupParameterSet = []interface{}{
"ML-KEM-512",
"ML-KEM-768",
"ML-KEM-1024",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMTestGroupParameterSet) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMTestGroupParameterSet {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMTestGroupParameterSet, v)
}
*j = MLKEMTestGroupParameterSet(v)
return nil
}
type MLKEMTestGroupTestsElem struct {
// The output shared secret
K string `json:"K"`
// An input ciphertext
C string `json:"c"`
// A brief description of the test case
Comment *string `json:"comment,omitempty"`
// The encapsulation key derived from the seed
Ek *string `json:"ek,omitempty"`
// A list of flags
Flags []string `json:"flags"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The d || z seed
Seed string `json:"seed"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMTestGroupTestsElem) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["K"]; raw != nil && !ok {
return fmt.Errorf("field K in MLKEMTestGroupTestsElem: required")
}
if _, ok := raw["c"]; raw != nil && !ok {
return fmt.Errorf("field c in MLKEMTestGroupTestsElem: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MLKEMTestGroupTestsElem: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MLKEMTestGroupTestsElem: required")
}
if _, ok := raw["seed"]; raw != nil && !ok {
return fmt.Errorf("field seed in MLKEMTestGroupTestsElem: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MLKEMTestGroupTestsElem: required")
}
type Plain MLKEMTestGroupTestsElem
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMTestGroupTestsElem(plain)
return nil
}
type MLKEMTestGroupType string
const MLKEMTestGroupTypeMLKEMTest MLKEMTestGroupType = "MLKEMTest"
var enumValues_MLKEMTestGroupType = []interface{}{
"MLKEMTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MLKEMTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MLKEMTestGroupType, v)
}
*j = MLKEMTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MLKEMTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["parameterSet"]; raw != nil && !ok {
return fmt.Errorf("field parameterSet in MLKEMTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MLKEMTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MLKEMTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MLKEMTestGroup: required")
}
type Plain MLKEMTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MLKEMTestGroup(plain)
return nil
}
type MacTestGroup struct {
// the keySize in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// the expected size of the tag in bits
TagSize int `json:"tagSize"`
// Tests corresponds to the JSON schema field "tests".
Tests []MacTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MacTestGroupType `json:"type"`
}
type MacTestGroupType string
const MacTestGroupTypeMacTest MacTestGroupType = "MacTest"
var enumValues_MacTestGroupType = []interface{}{
"MacTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MacTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MacTestGroupType, v)
}
*j = MacTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in MacTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MacTestGroup: required")
}
if _, ok := raw["tagSize"]; raw != nil && !ok {
return fmt.Errorf("field tagSize in MacTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MacTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MacTestGroup: required")
}
type Plain MacTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacTestGroup(plain)
return nil
}
type MacTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MacTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MacTestGroup `json:"testGroups"`
}
type MacTestSchemaV1JsonSchema string
const MacTestSchemaV1JsonSchemaMacTestSchemaV1Json MacTestSchemaV1JsonSchema = "mac_test_schema_v1.json"
var enumValues_MacTestSchemaV1JsonSchema = []interface{}{
"mac_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MacTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MacTestSchemaV1JsonSchema, v)
}
*j = MacTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MacTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in MacTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in MacTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MacTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MacTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MacTestSchemaV1Json: required")
}
type Plain MacTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacTestSchemaV1Json(plain)
return nil
}
type MacTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the key
Key string `json:"key"`
// the plaintext
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the authentication tag
Tag string `json:"tag"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in MacTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MacTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in MacTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in MacTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MacTestVector: required")
}
if _, ok := raw["tag"]; raw != nil && !ok {
return fmt.Errorf("field tag in MacTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MacTestVector: required")
}
type Plain MacTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacTestVector(plain)
return nil
}
type MacWithIvTestGroup struct {
// the IV size in bits
IvSize int `json:"ivSize"`
// the key size in bits
KeySize int `json:"keySize"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// the expected size of the tag in bits
TagSize int `json:"tagSize"`
// Tests corresponds to the JSON schema field "tests".
Tests []MacWithIvTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MacWithIvTestGroupType `json:"type"`
}
type MacWithIvTestGroupType string
const MacWithIvTestGroupTypeMacWithIvTest MacWithIvTestGroupType = "MacWithIvTest"
var enumValues_MacWithIvTestGroupType = []interface{}{
"MacWithIvTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacWithIvTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MacWithIvTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MacWithIvTestGroupType, v)
}
*j = MacWithIvTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacWithIvTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["ivSize"]; raw != nil && !ok {
return fmt.Errorf("field ivSize in MacWithIvTestGroup: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in MacWithIvTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MacWithIvTestGroup: required")
}
if _, ok := raw["tagSize"]; raw != nil && !ok {
return fmt.Errorf("field tagSize in MacWithIvTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MacWithIvTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MacWithIvTestGroup: required")
}
type Plain MacWithIvTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacWithIvTestGroup(plain)
return nil
}
type MacWithIvTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MacWithIvTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MacWithIvTestGroup `json:"testGroups"`
}
type MacWithIvTestSchemaV1JsonSchema string
const MacWithIvTestSchemaV1JsonSchemaMacWithIvTestSchemaV1Json MacWithIvTestSchemaV1JsonSchema = "mac_with_iv_test_schema_v1.json"
var enumValues_MacWithIvTestSchemaV1JsonSchema = []interface{}{
"mac_with_iv_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacWithIvTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MacWithIvTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MacWithIvTestSchemaV1JsonSchema, v)
}
*j = MacWithIvTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacWithIvTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MacWithIvTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in MacWithIvTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in MacWithIvTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MacWithIvTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MacWithIvTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MacWithIvTestSchemaV1Json: required")
}
type Plain MacWithIvTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacWithIvTestSchemaV1Json(plain)
return nil
}
type MacWithIvTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the initialisation vector
Iv string `json:"iv"`
// the key
Key string `json:"key"`
// the plaintext
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the authentication tag
Tag string `json:"tag"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MacWithIvTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in MacWithIvTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MacWithIvTestVector: required")
}
if _, ok := raw["iv"]; raw != nil && !ok {
return fmt.Errorf("field iv in MacWithIvTestVector: required")
}
if _, ok := raw["key"]; raw != nil && !ok {
return fmt.Errorf("field key in MacWithIvTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in MacWithIvTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MacWithIvTestVector: required")
}
if _, ok := raw["tag"]; raw != nil && !ok {
return fmt.Errorf("field tag in MacWithIvTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MacWithIvTestVector: required")
}
type Plain MacWithIvTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MacWithIvTestVector(plain)
return nil
}
type MlDsaSignNoSeedTestGroup struct {
// Encoded ML-DSA private key
PrivateKey string `json:"privateKey"`
// Encoded ML-DSA public key derived from the private key, or null if the private
// key is invalid
PublicKey interface{} `json:"publicKey"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MlDsaSignTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MlDsaSignNoSeedTestGroupType `json:"type"`
}
type MlDsaSignNoSeedTestGroupType string
const MlDsaSignNoSeedTestGroupTypeMlDsaSign MlDsaSignNoSeedTestGroupType = "MlDsaSign"
var enumValues_MlDsaSignNoSeedTestGroupType = []interface{}{
"MlDsaSign",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaSignNoSeedTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlDsaSignNoSeedTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlDsaSignNoSeedTestGroupType, v)
}
*j = MlDsaSignNoSeedTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaSignNoSeedTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["privateKey"]; raw != nil && !ok {
return fmt.Errorf("field privateKey in MlDsaSignNoSeedTestGroup: required")
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in MlDsaSignNoSeedTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MlDsaSignNoSeedTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MlDsaSignNoSeedTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MlDsaSignNoSeedTestGroup: required")
}
type Plain MlDsaSignNoSeedTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlDsaSignNoSeedTestGroup(plain)
return nil
}
type MlDsaSignTestGroup struct {
// Private key as a DER-encoded PrivateKeyInfo, using the seed form
PrivateKeyPkcs8 *string `json:"privateKeyPkcs8,omitempty"`
// 32-byte seed that generated the private key
PrivateSeed string `json:"privateSeed"`
// Encoded ML-DSA public key derived from the private seed, or null if the private
// seed is invalid
PublicKey interface{} `json:"publicKey"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []MlDsaSignTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MlDsaSignTestGroupType `json:"type"`
}
type MlDsaSignTestGroupType string
const MlDsaSignTestGroupTypeMlDsaSign MlDsaSignTestGroupType = "MlDsaSign"
var enumValues_MlDsaSignTestGroupType = []interface{}{
"MlDsaSign",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaSignTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlDsaSignTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlDsaSignTestGroupType, v)
}
*j = MlDsaSignTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaSignTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["privateSeed"]; raw != nil && !ok {
return fmt.Errorf("field privateSeed in MlDsaSignTestGroup: required")
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in MlDsaSignTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in MlDsaSignTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MlDsaSignTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MlDsaSignTestGroup: required")
}
type Plain MlDsaSignTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlDsaSignTestGroup(plain)
return nil
}
type MlDsaSignTestVector interface{}
type MlDsaVerifyTestGroup struct {
// Encoded ML-DSA public key
PublicKey string `json:"publicKey"`
// Public key as a DER-encoded SubjectPublicKeyInfo
PublicKeyDer string `json:"publicKeyDer"`
// Source corresponds to the JSON schema field "source".
Source *Source `json:"source,omitempty"`
// Tests corresponds to the JSON schema field "tests".
Tests []MlDsaVerifyTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type MlDsaVerifyTestGroupType `json:"type"`
}
type MlDsaVerifyTestGroupType string
const MlDsaVerifyTestGroupTypeMlDsaVerify MlDsaVerifyTestGroupType = "MlDsaVerify"
var enumValues_MlDsaVerifyTestGroupType = []interface{}{
"MlDsaVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaVerifyTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlDsaVerifyTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlDsaVerifyTestGroupType, v)
}
*j = MlDsaVerifyTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaVerifyTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in MlDsaVerifyTestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in MlDsaVerifyTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in MlDsaVerifyTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in MlDsaVerifyTestGroup: required")
}
type Plain MlDsaVerifyTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlDsaVerifyTestGroup(plain)
return nil
}
type MlDsaVerifyTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// [optional] The additional context string (empty if not provided)
Ctx *string `json:"ctx,omitempty"`
// A list of flags
Flags []string `json:"flags"`
// The message to verify
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// The encoded signature
Sig string `json:"sig"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlDsaVerifyTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in MlDsaVerifyTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in MlDsaVerifyTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in MlDsaVerifyTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in MlDsaVerifyTestVector: required")
}
if _, ok := raw["sig"]; raw != nil && !ok {
return fmt.Errorf("field sig in MlDsaVerifyTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in MlDsaVerifyTestVector: required")
}
type Plain MlDsaVerifyTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlDsaVerifyTestVector(plain)
return nil
}
type MldsaSignNoseedSchemaJson struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MldsaSignNoseedSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MlDsaSignNoSeedTestGroup `json:"testGroups"`
}
type MldsaSignNoseedSchemaJsonSchema string
const MldsaSignNoseedSchemaJsonSchemaMldsaSignNoseedSchemaJson MldsaSignNoseedSchemaJsonSchema = "mldsa_sign_noseed_schema.json"
var enumValues_MldsaSignNoseedSchemaJsonSchema = []interface{}{
"mldsa_sign_noseed_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaSignNoseedSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MldsaSignNoseedSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MldsaSignNoseedSchemaJsonSchema, v)
}
*j = MldsaSignNoseedSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaSignNoseedSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MldsaSignNoseedSchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in MldsaSignNoseedSchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in MldsaSignNoseedSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MldsaSignNoseedSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MldsaSignNoseedSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MldsaSignNoseedSchemaJson: required")
}
type Plain MldsaSignNoseedSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MldsaSignNoseedSchemaJson(plain)
return nil
}
type MldsaSignSeedSchemaJson struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MldsaSignSeedSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MlDsaSignTestGroup `json:"testGroups"`
}
type MldsaSignSeedSchemaJsonSchema string
const MldsaSignSeedSchemaJsonSchemaMldsaSignSeedSchemaJson MldsaSignSeedSchemaJsonSchema = "mldsa_sign_seed_schema.json"
var enumValues_MldsaSignSeedSchemaJsonSchema = []interface{}{
"mldsa_sign_seed_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaSignSeedSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MldsaSignSeedSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MldsaSignSeedSchemaJsonSchema, v)
}
*j = MldsaSignSeedSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaSignSeedSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MldsaSignSeedSchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in MldsaSignSeedSchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in MldsaSignSeedSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MldsaSignSeedSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MldsaSignSeedSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MldsaSignSeedSchemaJson: required")
}
type Plain MldsaSignSeedSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MldsaSignSeedSchemaJson(plain)
return nil
}
type MldsaVerifySchemaJson struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MldsaVerifySchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MlDsaVerifyTestGroup `json:"testGroups"`
}
type MldsaVerifySchemaJsonSchema string
const MldsaVerifySchemaJsonSchemaMldsaVerifySchemaJson MldsaVerifySchemaJsonSchema = "mldsa_verify_schema.json"
var enumValues_MldsaVerifySchemaJsonSchema = []interface{}{
"mldsa_verify_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaVerifySchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MldsaVerifySchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MldsaVerifySchemaJsonSchema, v)
}
*j = MldsaVerifySchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MldsaVerifySchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MldsaVerifySchemaJson: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in MldsaVerifySchemaJson: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in MldsaVerifySchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MldsaVerifySchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MldsaVerifySchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MldsaVerifySchemaJson: required")
}
type Plain MldsaVerifySchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MldsaVerifySchemaJson(plain)
return nil
}
type MlkemEncapsTestSchemaJson struct {
// Algorithm corresponds to the JSON schema field "algorithm".
Algorithm MlkemEncapsTestSchemaJsonAlgorithm `json:"algorithm"`
// additional documentation
Header []string `json:"header,omitempty"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes,omitempty"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MlkemEncapsTestSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MLKEMEncapsTestGroup `json:"testGroups"`
}
type MlkemEncapsTestSchemaJsonAlgorithm string
const MlkemEncapsTestSchemaJsonAlgorithmMLKEM MlkemEncapsTestSchemaJsonAlgorithm = "ML-KEM"
var enumValues_MlkemEncapsTestSchemaJsonAlgorithm = []interface{}{
"ML-KEM",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemEncapsTestSchemaJsonAlgorithm) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemEncapsTestSchemaJsonAlgorithm {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemEncapsTestSchemaJsonAlgorithm, v)
}
*j = MlkemEncapsTestSchemaJsonAlgorithm(v)
return nil
}
type MlkemEncapsTestSchemaJsonSchema string
const MlkemEncapsTestSchemaJsonSchemaMlkemEncapsTestSchemaJson MlkemEncapsTestSchemaJsonSchema = "mlkem_encaps_test_schema.json"
var enumValues_MlkemEncapsTestSchemaJsonSchema = []interface{}{
"mlkem_encaps_test_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemEncapsTestSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemEncapsTestSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemEncapsTestSchemaJsonSchema, v)
}
*j = MlkemEncapsTestSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemEncapsTestSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MlkemEncapsTestSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MlkemEncapsTestSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MlkemEncapsTestSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MlkemEncapsTestSchemaJson: required")
}
type Plain MlkemEncapsTestSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlkemEncapsTestSchemaJson(plain)
return nil
}
type MlkemKeygenSeedTestSchemaJson struct {
// Algorithm corresponds to the JSON schema field "algorithm".
Algorithm MlkemKeygenSeedTestSchemaJsonAlgorithm `json:"algorithm"`
// additional documentation
Header []string `json:"header,omitempty"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes,omitempty"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MlkemKeygenSeedTestSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MLKEMKeyGenTestGroup `json:"testGroups"`
}
type MlkemKeygenSeedTestSchemaJsonAlgorithm string
const MlkemKeygenSeedTestSchemaJsonAlgorithmMLKEM MlkemKeygenSeedTestSchemaJsonAlgorithm = "ML-KEM"
var enumValues_MlkemKeygenSeedTestSchemaJsonAlgorithm = []interface{}{
"ML-KEM",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemKeygenSeedTestSchemaJsonAlgorithm) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemKeygenSeedTestSchemaJsonAlgorithm {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemKeygenSeedTestSchemaJsonAlgorithm, v)
}
*j = MlkemKeygenSeedTestSchemaJsonAlgorithm(v)
return nil
}
type MlkemKeygenSeedTestSchemaJsonSchema string
const MlkemKeygenSeedTestSchemaJsonSchemaMlkemKeygenSeedTestSchemaJson MlkemKeygenSeedTestSchemaJsonSchema = "mlkem_keygen_seed_test_schema.json"
var enumValues_MlkemKeygenSeedTestSchemaJsonSchema = []interface{}{
"mlkem_keygen_seed_test_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemKeygenSeedTestSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemKeygenSeedTestSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemKeygenSeedTestSchemaJsonSchema, v)
}
*j = MlkemKeygenSeedTestSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemKeygenSeedTestSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MlkemKeygenSeedTestSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MlkemKeygenSeedTestSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MlkemKeygenSeedTestSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MlkemKeygenSeedTestSchemaJson: required")
}
type Plain MlkemKeygenSeedTestSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlkemKeygenSeedTestSchemaJson(plain)
return nil
}
type MlkemSemiExpandedDecapsTestSchemaJson struct {
// Algorithm corresponds to the JSON schema field "algorithm".
Algorithm MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm `json:"algorithm"`
// additional documentation
Header []string `json:"header,omitempty"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes,omitempty"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MlkemSemiExpandedDecapsTestSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MLKEMDecapsTestGroup `json:"testGroups"`
}
type MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm string
const MlkemSemiExpandedDecapsTestSchemaJsonAlgorithmMLKEM MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm = "ML-KEM"
var enumValues_MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm = []interface{}{
"ML-KEM",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm, v)
}
*j = MlkemSemiExpandedDecapsTestSchemaJsonAlgorithm(v)
return nil
}
type MlkemSemiExpandedDecapsTestSchemaJsonSchema string
const MlkemSemiExpandedDecapsTestSchemaJsonSchemaMlkemSemiExpandedDecapsTestSchemaJson MlkemSemiExpandedDecapsTestSchemaJsonSchema = "mlkem_semi_expanded_decaps_test_schema.json"
var enumValues_MlkemSemiExpandedDecapsTestSchemaJsonSchema = []interface{}{
"mlkem_semi_expanded_decaps_test_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemSemiExpandedDecapsTestSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemSemiExpandedDecapsTestSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemSemiExpandedDecapsTestSchemaJsonSchema, v)
}
*j = MlkemSemiExpandedDecapsTestSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemSemiExpandedDecapsTestSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MlkemSemiExpandedDecapsTestSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MlkemSemiExpandedDecapsTestSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MlkemSemiExpandedDecapsTestSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MlkemSemiExpandedDecapsTestSchemaJson: required")
}
type Plain MlkemSemiExpandedDecapsTestSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlkemSemiExpandedDecapsTestSchemaJson(plain)
return nil
}
type MlkemTestSchemaJson struct {
// Algorithm corresponds to the JSON schema field "algorithm".
Algorithm MlkemTestSchemaJsonAlgorithm `json:"algorithm"`
// additional documentation
Header []string `json:"header,omitempty"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes,omitempty"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema MlkemTestSchemaJsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []MLKEMTestGroup `json:"testGroups"`
}
type MlkemTestSchemaJsonAlgorithm string
const MlkemTestSchemaJsonAlgorithmMLKEM MlkemTestSchemaJsonAlgorithm = "ML-KEM"
var enumValues_MlkemTestSchemaJsonAlgorithm = []interface{}{
"ML-KEM",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemTestSchemaJsonAlgorithm) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemTestSchemaJsonAlgorithm {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemTestSchemaJsonAlgorithm, v)
}
*j = MlkemTestSchemaJsonAlgorithm(v)
return nil
}
type MlkemTestSchemaJsonSchema string
const MlkemTestSchemaJsonSchemaMlkemTestSchemaJson MlkemTestSchemaJsonSchema = "mlkem_test_schema.json"
var enumValues_MlkemTestSchemaJsonSchema = []interface{}{
"mlkem_test_schema.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemTestSchemaJsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_MlkemTestSchemaJsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_MlkemTestSchemaJsonSchema, v)
}
*j = MlkemTestSchemaJsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *MlkemTestSchemaJson) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in MlkemTestSchemaJson: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in MlkemTestSchemaJson: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in MlkemTestSchemaJson: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in MlkemTestSchemaJson: required")
}
type Plain MlkemTestSchemaJson
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = MlkemTestSchemaJson(plain)
return nil
}
type NoteEntry struct {
// The type of the bug tested for
BugType string `json:"bugType"`
// A list of potentially related CVEs
Cves []string `json:"cves,omitempty"`
// A description of the flag
Description *string `json:"description,omitempty"`
// The expected effect of failing the test vector
Effect *string `json:"effect,omitempty"`
// A list of potentially related references
Links []string `json:"links,omitempty"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *NoteEntry) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["bugType"]; raw != nil && !ok {
return fmt.Errorf("field bugType in NoteEntry: required")
}
type Plain NoteEntry
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = NoteEntry(plain)
return nil
}
type Notes map[string]NoteEntry
type PrimalityTestGroup struct {
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []PrimalityTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type PrimalityTestGroupType `json:"type"`
}
type PrimalityTestGroupType string
const PrimalityTestGroupTypePrimalityTest PrimalityTestGroupType = "PrimalityTest"
var enumValues_PrimalityTestGroupType = []interface{}{
"PrimalityTest",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrimalityTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_PrimalityTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_PrimalityTestGroupType, v)
}
*j = PrimalityTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrimalityTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in PrimalityTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in PrimalityTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in PrimalityTestGroup: required")
}
type Plain PrimalityTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = PrimalityTestGroup(plain)
return nil
}
type PrimalityTestSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema PrimalityTestSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []PrimalityTestGroup `json:"testGroups"`
}
type PrimalityTestSchemaV1JsonSchema string
const PrimalityTestSchemaV1JsonSchemaPrimalityTestSchemaV1Json PrimalityTestSchemaV1JsonSchema = "primality_test_schema_v1.json"
var enumValues_PrimalityTestSchemaV1JsonSchema = []interface{}{
"primality_test_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrimalityTestSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_PrimalityTestSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_PrimalityTestSchemaV1JsonSchema, v)
}
*j = PrimalityTestSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrimalityTestSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in PrimalityTestSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in PrimalityTestSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in PrimalityTestSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in PrimalityTestSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in PrimalityTestSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in PrimalityTestSchemaV1Json: required")
}
type Plain PrimalityTestSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = PrimalityTestSchemaV1Json(plain)
return nil
}
type PrimalityTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
// the integer to test
Value string `json:"value"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrimalityTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in PrimalityTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in PrimalityTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in PrimalityTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in PrimalityTestVector: required")
}
if _, ok := raw["value"]; raw != nil && !ok {
return fmt.Errorf("field value in PrimalityTestVector: required")
}
type Plain PrimalityTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = PrimalityTestVector(plain)
return nil
}
type PrivateKey struct {
// Coefficient corresponds to the JSON schema field "coefficient".
Coefficient *string `json:"coefficient,omitempty"`
// Exponent1 corresponds to the JSON schema field "exponent1".
Exponent1 *string `json:"exponent1,omitempty"`
// Exponent2 corresponds to the JSON schema field "exponent2".
Exponent2 *string `json:"exponent2,omitempty"`
// Modulus corresponds to the JSON schema field "modulus".
Modulus string `json:"modulus"`
// OtherPrimeInfos corresponds to the JSON schema field "otherPrimeInfos".
OtherPrimeInfos [][]string `json:"otherPrimeInfos,omitempty"`
// Prime1 corresponds to the JSON schema field "prime1".
Prime1 *string `json:"prime1,omitempty"`
// Prime2 corresponds to the JSON schema field "prime2".
Prime2 *string `json:"prime2,omitempty"`
// PrivateExponent corresponds to the JSON schema field "privateExponent".
PrivateExponent string `json:"privateExponent"`
// PublicExponent corresponds to the JSON schema field "publicExponent".
PublicExponent string `json:"publicExponent"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PrivateKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["modulus"]; raw != nil && !ok {
return fmt.Errorf("field modulus in PrivateKey: required")
}
if _, ok := raw["privateExponent"]; raw != nil && !ok {
return fmt.Errorf("field privateExponent in PrivateKey: required")
}
if _, ok := raw["publicExponent"]; raw != nil && !ok {
return fmt.Errorf("field publicExponent in PrivateKey: required")
}
type Plain PrivateKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = PrivateKey(plain)
return nil
}
type PublicKey struct {
// the name of the curve
Curve string `json:"curve"`
// the size of the key in bits
KeySize int `json:"keySize"`
// the public key
Pk string `json:"pk"`
// Type corresponds to the JSON schema field "type".
Type PublicKeyType `json:"type"`
}
type PublicKeyType string
const PublicKeyTypeECDSAPublicKey PublicKeyType = "ECDSAPublicKey"
const PublicKeyTypeEDDSAPublicKey PublicKeyType = "EDDSAPublicKey"
var enumValues_PublicKeyType = []interface{}{
"ECDSAPublicKey",
"EDDSAPublicKey",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PublicKeyType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_PublicKeyType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_PublicKeyType, v)
}
*j = PublicKeyType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *PublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in PublicKey: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in PublicKey: required")
}
if _, ok := raw["pk"]; raw != nil && !ok {
return fmt.Errorf("field pk in PublicKey: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in PublicKey: required")
}
type Plain PublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = PublicKey(plain)
return nil
}
// Recipient specific information Section 7.2.1 of RFC 7516
type Recipient struct {
// EncryptedKey corresponds to the JSON schema field "encrypted_key".
EncryptedKey *string `json:"encrypted_key,omitempty"`
// header information that is not integrity protected
Header RecipientHeader `json:"header,omitempty"`
}
// header information that is not integrity protected
type RecipientHeader map[string]interface{}
type Result string
const ResultAcceptable Result = "acceptable"
const ResultInvalid Result = "invalid"
const ResultValid Result = "valid"
var enumValues_Result = []interface{}{
"valid",
"invalid",
"acceptable",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *Result) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_Result {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_Result, v)
}
*j = Result(v)
return nil
}
type RsaesOaepDecryptSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema RsaesOaepDecryptSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []RsaesOaepTestGroup `json:"testGroups"`
}
type RsaesOaepDecryptSchemaV1JsonSchema string
const RsaesOaepDecryptSchemaV1JsonSchemaRsaesOaepDecryptSchemaV1Json RsaesOaepDecryptSchemaV1JsonSchema = "rsaes_oaep_decrypt_schema_v1.json"
var enumValues_RsaesOaepDecryptSchemaV1JsonSchema = []interface{}{
"rsaes_oaep_decrypt_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesOaepDecryptSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsaesOaepDecryptSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsaesOaepDecryptSchemaV1JsonSchema, v)
}
*j = RsaesOaepDecryptSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesOaepDecryptSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in RsaesOaepDecryptSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in RsaesOaepDecryptSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in RsaesOaepDecryptSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in RsaesOaepDecryptSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in RsaesOaepDecryptSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in RsaesOaepDecryptSchemaV1Json: required")
}
type Plain RsaesOaepDecryptSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesOaepDecryptSchemaV1Json(plain)
return nil
}
type RsaesOaepTestGroup struct {
// the keySize in bits
KeySize int `json:"keySize"`
// the message generating function (e.g. MGF1)
Mgf string `json:"mgf"`
// The hash function used for the message generating function.
MgfSha string `json:"mgfSha"`
// PrivateKey corresponds to the JSON schema field "privateKey".
PrivateKey PrivateKey `json:"privateKey"`
// PrivateKeyJwk corresponds to the JSON schema field "privateKeyJwk".
PrivateKeyJwk *JsonWebKey `json:"privateKeyJwk,omitempty"`
// Pem encoded private key
PrivateKeyPem string `json:"privateKeyPem"`
// Pkcs 8 encoded private key.
PrivateKeyPkcs8 string `json:"privateKeyPkcs8"`
// The hash function for hashing the label.
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []RsaesOaepTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type RsaesOaepTestGroupType `json:"type"`
}
type RsaesOaepTestGroupType string
const RsaesOaepTestGroupTypeRsaesOaepDecrypt RsaesOaepTestGroupType = "RsaesOaepDecrypt"
var enumValues_RsaesOaepTestGroupType = []interface{}{
"RsaesOaepDecrypt",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesOaepTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsaesOaepTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsaesOaepTestGroupType, v)
}
*j = RsaesOaepTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesOaepTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in RsaesOaepTestGroup: required")
}
if _, ok := raw["mgf"]; raw != nil && !ok {
return fmt.Errorf("field mgf in RsaesOaepTestGroup: required")
}
if _, ok := raw["mgfSha"]; raw != nil && !ok {
return fmt.Errorf("field mgfSha in RsaesOaepTestGroup: required")
}
if _, ok := raw["privateKey"]; raw != nil && !ok {
return fmt.Errorf("field privateKey in RsaesOaepTestGroup: required")
}
if _, ok := raw["privateKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPem in RsaesOaepTestGroup: required")
}
if _, ok := raw["privateKeyPkcs8"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPkcs8 in RsaesOaepTestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in RsaesOaepTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in RsaesOaepTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in RsaesOaepTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in RsaesOaepTestGroup: required")
}
type Plain RsaesOaepTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesOaepTestGroup(plain)
return nil
}
type RsaesOaepTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// An encryption of msg
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags"`
// The label used for the encryption
Label string `json:"label"`
// The encrypted message
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesOaepTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in RsaesOaepTestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in RsaesOaepTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in RsaesOaepTestVector: required")
}
if _, ok := raw["label"]; raw != nil && !ok {
return fmt.Errorf("field label in RsaesOaepTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in RsaesOaepTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in RsaesOaepTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in RsaesOaepTestVector: required")
}
type Plain RsaesOaepTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesOaepTestVector(plain)
return nil
}
type RsaesPkcs1DecryptSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema RsaesPkcs1DecryptSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []RsaesPkcs1TestGroup `json:"testGroups"`
}
type RsaesPkcs1DecryptSchemaV1JsonSchema string
const RsaesPkcs1DecryptSchemaV1JsonSchemaRsaesPkcs1DecryptSchemaV1Json RsaesPkcs1DecryptSchemaV1JsonSchema = "rsaes_pkcs1_decrypt_schema_v1.json"
var enumValues_RsaesPkcs1DecryptSchemaV1JsonSchema = []interface{}{
"rsaes_pkcs1_decrypt_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesPkcs1DecryptSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsaesPkcs1DecryptSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsaesPkcs1DecryptSchemaV1JsonSchema, v)
}
*j = RsaesPkcs1DecryptSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesPkcs1DecryptSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in RsaesPkcs1DecryptSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in RsaesPkcs1DecryptSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in RsaesPkcs1DecryptSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in RsaesPkcs1DecryptSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in RsaesPkcs1DecryptSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in RsaesPkcs1DecryptSchemaV1Json: required")
}
type Plain RsaesPkcs1DecryptSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesPkcs1DecryptSchemaV1Json(plain)
return nil
}
type RsaesPkcs1TestGroup struct {
// The size of the key in bits
KeySize int `json:"keySize"`
// PrivateKey corresponds to the JSON schema field "privateKey".
PrivateKey PrivateKey `json:"privateKey"`
// JWK encoded private key
PrivateKeyJwk *JsonWebKey `json:"privateKeyJwk,omitempty"`
// Pem encoded private key
PrivateKeyPem string `json:"privateKeyPem"`
// Pkcs 8 encoded private key.
PrivateKeyPkcs8 string `json:"privateKeyPkcs8"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []RsaesPkcs1TestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type RsaesPkcs1TestGroupType `json:"type"`
}
type RsaesPkcs1TestGroupType string
const RsaesPkcs1TestGroupTypeRsaesPkcs1Decrypt RsaesPkcs1TestGroupType = "RsaesPkcs1Decrypt"
var enumValues_RsaesPkcs1TestGroupType = []interface{}{
"RsaesPkcs1Decrypt",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesPkcs1TestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsaesPkcs1TestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsaesPkcs1TestGroupType, v)
}
*j = RsaesPkcs1TestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesPkcs1TestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["privateKey"]; raw != nil && !ok {
return fmt.Errorf("field privateKey in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["privateKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPem in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["privateKeyPkcs8"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPkcs8 in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in RsaesPkcs1TestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in RsaesPkcs1TestGroup: required")
}
type Plain RsaesPkcs1TestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesPkcs1TestGroup(plain)
return nil
}
type RsaesPkcs1TestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// An encryption of msg
Ct string `json:"ct"`
// A list of flags
Flags []string `json:"flags"`
// The encrypted message
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsaesPkcs1TestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in RsaesPkcs1TestVector: required")
}
if _, ok := raw["ct"]; raw != nil && !ok {
return fmt.Errorf("field ct in RsaesPkcs1TestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in RsaesPkcs1TestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in RsaesPkcs1TestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in RsaesPkcs1TestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in RsaesPkcs1TestVector: required")
}
type Plain RsaesPkcs1TestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsaesPkcs1TestVector(plain)
return nil
}
type RsassaPkcs1GenTestGroup struct {
// DER encoding of the sequence [n, e]
KeyAsn string `json:"keyAsn"`
// DER encoding of the public key
KeyDer string `json:"keyDer"`
// [Optional] Private key in JWK format
KeyJwk *JsonWebKey `json:"keyJwk,omitempty"`
// Pem encoded public key
KeyPem string `json:"keyPem"`
// the size of the modulus in bits
KeySize int `json:"keySize"`
// PrivateKey corresponds to the JSON schema field "privateKey".
PrivateKey PrivateKey `json:"privateKey"`
// [Optional] Private key in JWK format
PrivateKeyJwk *JsonWebKey `json:"privateKeyJwk,omitempty"`
// Pem encoded private key
PrivateKeyPem string `json:"privateKeyPem"`
// DER encoding of the PKCS8 private key
PrivateKeyPkcs8 string `json:"privateKeyPkcs8"`
// the hash function used for the message
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type RsassaPkcs1GenTestGroupType `json:"type"`
}
type RsassaPkcs1GenTestGroupType string
const RsassaPkcs1GenTestGroupTypeRsassaPkcs1Generate RsassaPkcs1GenTestGroupType = "RsassaPkcs1Generate"
var enumValues_RsassaPkcs1GenTestGroupType = []interface{}{
"RsassaPkcs1Generate",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1GenTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPkcs1GenTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPkcs1GenTestGroupType, v)
}
*j = RsassaPkcs1GenTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1GenTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keyAsn"]; raw != nil && !ok {
return fmt.Errorf("field keyAsn in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["keyDer"]; raw != nil && !ok {
return fmt.Errorf("field keyDer in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["keyPem"]; raw != nil && !ok {
return fmt.Errorf("field keyPem in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["privateKey"]; raw != nil && !ok {
return fmt.Errorf("field privateKey in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["privateKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPem in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["privateKeyPkcs8"]; raw != nil && !ok {
return fmt.Errorf("field privateKeyPkcs8 in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in RsassaPkcs1GenTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in RsassaPkcs1GenTestGroup: required")
}
type Plain RsassaPkcs1GenTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPkcs1GenTestGroup(plain)
return nil
}
type RsassaPkcs1GenerateSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema RsassaPkcs1GenerateSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []RsassaPkcs1GenTestGroup `json:"testGroups"`
}
type RsassaPkcs1GenerateSchemaV1JsonSchema string
const RsassaPkcs1GenerateSchemaV1JsonSchemaRsassaPkcs1GenerateSchemaV1Json RsassaPkcs1GenerateSchemaV1JsonSchema = "rsassa_pkcs1_generate_schema_v1.json"
var enumValues_RsassaPkcs1GenerateSchemaV1JsonSchema = []interface{}{
"rsassa_pkcs1_generate_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1GenerateSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPkcs1GenerateSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPkcs1GenerateSchemaV1JsonSchema, v)
}
*j = RsassaPkcs1GenerateSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1GenerateSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in RsassaPkcs1GenerateSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in RsassaPkcs1GenerateSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in RsassaPkcs1GenerateSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in RsassaPkcs1GenerateSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in RsassaPkcs1GenerateSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in RsassaPkcs1GenerateSchemaV1Json: required")
}
type Plain RsassaPkcs1GenerateSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPkcs1GenerateSchemaV1Json(plain)
return nil
}
type RsassaPkcs1TestGroup struct {
// KeyJwk corresponds to the JSON schema field "keyJwk".
KeyJwk *JsonWebKey `json:"keyJwk,omitempty"`
// the size of the modulus in bits
KeySize int `json:"keySize"`
// PublicKey corresponds to the JSON schema field "publicKey".
PublicKey RsassaPkcs1TestGroupPublicKey `json:"publicKey"`
// ASN encoding of the sequence [n, e]
PublicKeyAsn string `json:"publicKeyAsn"`
// ASN encoding of the public key
PublicKeyDer string `json:"publicKeyDer"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// the hash function used for the message
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []SignatureTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type RsassaPkcs1TestGroupType `json:"type"`
}
type RsassaPkcs1TestGroupPublicKey struct {
// The modulus of the key
Modulus string `json:"modulus"`
// The public exponent
PublicExponent string `json:"publicExponent"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1TestGroupPublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["modulus"]; raw != nil && !ok {
return fmt.Errorf("field modulus in RsassaPkcs1TestGroupPublicKey: required")
}
if _, ok := raw["publicExponent"]; raw != nil && !ok {
return fmt.Errorf("field publicExponent in RsassaPkcs1TestGroupPublicKey: required")
}
type Plain RsassaPkcs1TestGroupPublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPkcs1TestGroupPublicKey(plain)
return nil
}
type RsassaPkcs1TestGroupType string
const RsassaPkcs1TestGroupTypeRsassaPkcs1Verify RsassaPkcs1TestGroupType = "RsassaPkcs1Verify"
var enumValues_RsassaPkcs1TestGroupType = []interface{}{
"RsassaPkcs1Verify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1TestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPkcs1TestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPkcs1TestGroupType, v)
}
*j = RsassaPkcs1TestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1TestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["publicKeyAsn"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyAsn in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in RsassaPkcs1TestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in RsassaPkcs1TestGroup: required")
}
type Plain RsassaPkcs1TestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPkcs1TestGroup(plain)
return nil
}
type RsassaPkcs1VerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema RsassaPkcs1VerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []RsassaPkcs1TestGroup `json:"testGroups"`
}
type RsassaPkcs1VerifySchemaV1JsonSchema string
const RsassaPkcs1VerifySchemaV1JsonSchemaRsassaPkcs1VerifySchemaV1Json RsassaPkcs1VerifySchemaV1JsonSchema = "rsassa_pkcs1_verify_schema_v1.json"
var enumValues_RsassaPkcs1VerifySchemaV1JsonSchema = []interface{}{
"rsassa_pkcs1_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1VerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPkcs1VerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPkcs1VerifySchemaV1JsonSchema, v)
}
*j = RsassaPkcs1VerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPkcs1VerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in RsassaPkcs1VerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in RsassaPkcs1VerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in RsassaPkcs1VerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in RsassaPkcs1VerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in RsassaPkcs1VerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in RsassaPkcs1VerifySchemaV1Json: required")
}
type Plain RsassaPkcs1VerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPkcs1VerifySchemaV1Json(plain)
return nil
}
type RsassaPssTestGroup struct {
// the size of the modulus in bits
KeySize int `json:"keySize"`
// the message generating function (e.g. MGF1)
Mgf string `json:"mgf"`
// The hash function used for the message generating function.
MgfSha string `json:"mgfSha"`
// PublicKey corresponds to the JSON schema field "publicKey".
PublicKey RsassaPssTestGroupPublicKey `json:"publicKey"`
// ASN encoding of the sequence [n, e]
PublicKeyAsn string `json:"publicKeyAsn"`
// ASN encoding of the public key
PublicKeyDer string `json:"publicKeyDer"`
// PublicKeyJwk corresponds to the JSON schema field "publicKeyJwk".
PublicKeyJwk *JsonWebKey `json:"publicKeyJwk,omitempty"`
// Pem encoded public key
PublicKeyPem string `json:"publicKeyPem"`
// The salt length
SLen int `json:"sLen"`
// The hash function for hashing the message.
Sha string `json:"sha"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []RsassaPssTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type RsassaPssTestGroupType `json:"type"`
}
type RsassaPssTestGroupPublicKey struct {
// The modulus of the key
Modulus string `json:"modulus"`
// The public exponent
PublicExponent string `json:"publicExponent"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssTestGroupPublicKey) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["modulus"]; raw != nil && !ok {
return fmt.Errorf("field modulus in RsassaPssTestGroupPublicKey: required")
}
if _, ok := raw["publicExponent"]; raw != nil && !ok {
return fmt.Errorf("field publicExponent in RsassaPssTestGroupPublicKey: required")
}
type Plain RsassaPssTestGroupPublicKey
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPssTestGroupPublicKey(plain)
return nil
}
type RsassaPssTestGroupType string
const RsassaPssTestGroupTypeRsassaPssVerify RsassaPssTestGroupType = "RsassaPssVerify"
var enumValues_RsassaPssTestGroupType = []interface{}{
"RsassaPssVerify",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPssTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPssTestGroupType, v)
}
*j = RsassaPssTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["keySize"]; raw != nil && !ok {
return fmt.Errorf("field keySize in RsassaPssTestGroup: required")
}
if _, ok := raw["mgf"]; raw != nil && !ok {
return fmt.Errorf("field mgf in RsassaPssTestGroup: required")
}
if _, ok := raw["mgfSha"]; raw != nil && !ok {
return fmt.Errorf("field mgfSha in RsassaPssTestGroup: required")
}
if _, ok := raw["publicKey"]; raw != nil && !ok {
return fmt.Errorf("field publicKey in RsassaPssTestGroup: required")
}
if _, ok := raw["publicKeyAsn"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyAsn in RsassaPssTestGroup: required")
}
if _, ok := raw["publicKeyDer"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyDer in RsassaPssTestGroup: required")
}
if _, ok := raw["publicKeyPem"]; raw != nil && !ok {
return fmt.Errorf("field publicKeyPem in RsassaPssTestGroup: required")
}
if _, ok := raw["sLen"]; raw != nil && !ok {
return fmt.Errorf("field sLen in RsassaPssTestGroup: required")
}
if _, ok := raw["sha"]; raw != nil && !ok {
return fmt.Errorf("field sha in RsassaPssTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in RsassaPssTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in RsassaPssTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in RsassaPssTestGroup: required")
}
type Plain RsassaPssTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPssTestGroup(plain)
return nil
}
type RsassaPssTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The message to sign
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// a signature for msg
Sig string `json:"sig"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in RsassaPssTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in RsassaPssTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in RsassaPssTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in RsassaPssTestVector: required")
}
if _, ok := raw["sig"]; raw != nil && !ok {
return fmt.Errorf("field sig in RsassaPssTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in RsassaPssTestVector: required")
}
type Plain RsassaPssTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPssTestVector(plain)
return nil
}
type RsassaPssVerifySchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema RsassaPssVerifySchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []RsassaPssTestGroup `json:"testGroups"`
}
type RsassaPssVerifySchemaV1JsonSchema string
const RsassaPssVerifySchemaV1JsonSchemaRsassaPssVerifySchemaV1Json RsassaPssVerifySchemaV1JsonSchema = "rsassa_pss_verify_schema_v1.json"
var enumValues_RsassaPssVerifySchemaV1JsonSchema = []interface{}{
"rsassa_pss_verify_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssVerifySchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_RsassaPssVerifySchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_RsassaPssVerifySchemaV1JsonSchema, v)
}
*j = RsassaPssVerifySchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *RsassaPssVerifySchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in RsassaPssVerifySchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in RsassaPssVerifySchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in RsassaPssVerifySchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in RsassaPssVerifySchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in RsassaPssVerifySchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in RsassaPssVerifySchemaV1Json: required")
}
type Plain RsassaPssVerifySchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = RsassaPssVerifySchemaV1Json(plain)
return nil
}
type SignatureTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// The message to sign
Msg string `json:"msg"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// A signature for msg
Sig string `json:"sig"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *SignatureTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in SignatureTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in SignatureTestVector: required")
}
if _, ok := raw["msg"]; raw != nil && !ok {
return fmt.Errorf("field msg in SignatureTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in SignatureTestVector: required")
}
if _, ok := raw["sig"]; raw != nil && !ok {
return fmt.Errorf("field sig in SignatureTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in SignatureTestVector: required")
}
type Plain SignatureTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = SignatureTestVector(plain)
return nil
}
type Source struct {
// Name corresponds to the JSON schema field "name".
Name string `json:"name"`
// Version corresponds to the JSON schema field "version".
Version string `json:"version"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *Source) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["name"]; raw != nil && !ok {
return fmt.Errorf("field name in Source: required")
}
if _, ok := raw["version"]; raw != nil && !ok {
return fmt.Errorf("field version in Source: required")
}
type Plain Source
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
if utf8.RuneCountInString(string(plain.Name)) < 1 {
return fmt.Errorf("field %s length: must be >= %d", "name", 1)
}
if utf8.RuneCountInString(string(plain.Version)) < 1 {
return fmt.Errorf("field %s length: must be >= %d", "version", 1)
}
*j = Source(plain)
return nil
}
type XdhAsnCompSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema XdhAsnCompSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []XdhAsnTestGroup `json:"testGroups"`
}
type XdhAsnCompSchemaV1JsonSchema string
const XdhAsnCompSchemaV1JsonSchemaXdhAsnCompSchemaV1Json XdhAsnCompSchemaV1JsonSchema = "xdh_asn_comp_schema_v1.json"
var enumValues_XdhAsnCompSchemaV1JsonSchema = []interface{}{
"xdh_asn_comp_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhAsnCompSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhAsnCompSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhAsnCompSchemaV1JsonSchema, v)
}
*j = XdhAsnCompSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhAsnCompSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in XdhAsnCompSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in XdhAsnCompSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in XdhAsnCompSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in XdhAsnCompSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in XdhAsnCompSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in XdhAsnCompSchemaV1Json: required")
}
type Plain XdhAsnCompSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhAsnCompSchemaV1Json(plain)
return nil
}
type XdhAsnTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []XdhAsnTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type XdhAsnTestGroupType `json:"type"`
}
type XdhAsnTestGroupType string
const XdhAsnTestGroupTypeXdhAsnComp XdhAsnTestGroupType = "XdhAsnComp"
var enumValues_XdhAsnTestGroupType = []interface{}{
"XdhAsnComp",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhAsnTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhAsnTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhAsnTestGroupType, v)
}
*j = XdhAsnTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhAsnTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in XdhAsnTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in XdhAsnTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in XdhAsnTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in XdhAsnTestGroup: required")
}
type Plain XdhAsnTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhAsnTestGroup(plain)
return nil
}
type XdhAsnTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// PKCS #8 encoded private key
Private string `json:"private"`
// X.509 encoded the public key
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the shared secret
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhAsnTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in XdhAsnTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in XdhAsnTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in XdhAsnTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in XdhAsnTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in XdhAsnTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in XdhAsnTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in XdhAsnTestVector: required")
}
type Plain XdhAsnTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhAsnTestVector(plain)
return nil
}
type XdhCompSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema XdhCompSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []XdhTestGroup `json:"testGroups"`
}
type XdhCompSchemaV1JsonSchema string
const XdhCompSchemaV1JsonSchemaXdhCompSchemaV1Json XdhCompSchemaV1JsonSchema = "xdh_comp_schema_v1.json"
var enumValues_XdhCompSchemaV1JsonSchema = []interface{}{
"xdh_comp_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhCompSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhCompSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhCompSchemaV1JsonSchema, v)
}
*j = XdhCompSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhCompSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in XdhCompSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in XdhCompSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in XdhCompSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in XdhCompSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in XdhCompSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in XdhCompSchemaV1Json: required")
}
type Plain XdhCompSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhCompSchemaV1Json(plain)
return nil
}
type XdhJwkCompSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema XdhJwkCompSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []XdhJwkTestGroup `json:"testGroups"`
}
type XdhJwkCompSchemaV1JsonSchema string
const XdhJwkCompSchemaV1JsonSchemaXdhJwkCompSchemaV1Json XdhJwkCompSchemaV1JsonSchema = "xdh_jwk_comp_schema_v1.json"
var enumValues_XdhJwkCompSchemaV1JsonSchema = []interface{}{
"xdh_jwk_comp_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhJwkCompSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhJwkCompSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhJwkCompSchemaV1JsonSchema, v)
}
*j = XdhJwkCompSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhJwkCompSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in XdhJwkCompSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in XdhJwkCompSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in XdhJwkCompSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in XdhJwkCompSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in XdhJwkCompSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in XdhJwkCompSchemaV1Json: required")
}
type Plain XdhJwkCompSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhJwkCompSchemaV1Json(plain)
return nil
}
type XdhJwkTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []XdhJwkTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type XdhJwkTestGroupType `json:"type"`
}
type XdhJwkTestGroupType string
const XdhJwkTestGroupTypeXdhJwkComp XdhJwkTestGroupType = "XdhJwkComp"
var enumValues_XdhJwkTestGroupType = []interface{}{
"XdhJwkComp",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhJwkTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhJwkTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhJwkTestGroupType, v)
}
*j = XdhJwkTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhJwkTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in XdhJwkTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in XdhJwkTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in XdhJwkTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in XdhJwkTestGroup: required")
}
type Plain XdhJwkTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhJwkTestGroup(plain)
return nil
}
type XdhJwkTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the private key in jwk format
Private JsonWebKey `json:"private"`
// the public key in jwk format
Public JsonWebKey `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the shared secret
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhJwkTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in XdhJwkTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in XdhJwkTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in XdhJwkTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in XdhJwkTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in XdhJwkTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in XdhJwkTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in XdhJwkTestVector: required")
}
type Plain XdhJwkTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhJwkTestVector(plain)
return nil
}
type XdhPemCompSchemaV1Json struct {
// the primitive tested in the test file
Algorithm string `json:"algorithm"`
// DEPRECATED: prefer "source" property in test group
GeneratorVersion *string `json:"generatorVersion,omitempty"`
// additional documentation
Header []string `json:"header"`
// Notes corresponds to the JSON schema field "notes".
Notes Notes `json:"notes"`
// the number of test vectors in this test
NumberOfTests int `json:"numberOfTests"`
// Schema corresponds to the JSON schema field "schema".
Schema XdhPemCompSchemaV1JsonSchema `json:"schema"`
// TestGroups corresponds to the JSON schema field "testGroups".
TestGroups []XdhPemTestGroup `json:"testGroups"`
}
type XdhPemCompSchemaV1JsonSchema string
const XdhPemCompSchemaV1JsonSchemaXdhPemCompSchemaV1Json XdhPemCompSchemaV1JsonSchema = "xdh_pem_comp_schema_v1.json"
var enumValues_XdhPemCompSchemaV1JsonSchema = []interface{}{
"xdh_pem_comp_schema_v1.json",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhPemCompSchemaV1JsonSchema) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhPemCompSchemaV1JsonSchema {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhPemCompSchemaV1JsonSchema, v)
}
*j = XdhPemCompSchemaV1JsonSchema(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhPemCompSchemaV1Json) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["algorithm"]; raw != nil && !ok {
return fmt.Errorf("field algorithm in XdhPemCompSchemaV1Json: required")
}
if _, ok := raw["header"]; raw != nil && !ok {
return fmt.Errorf("field header in XdhPemCompSchemaV1Json: required")
}
if _, ok := raw["notes"]; raw != nil && !ok {
return fmt.Errorf("field notes in XdhPemCompSchemaV1Json: required")
}
if _, ok := raw["numberOfTests"]; raw != nil && !ok {
return fmt.Errorf("field numberOfTests in XdhPemCompSchemaV1Json: required")
}
if _, ok := raw["schema"]; raw != nil && !ok {
return fmt.Errorf("field schema in XdhPemCompSchemaV1Json: required")
}
if _, ok := raw["testGroups"]; raw != nil && !ok {
return fmt.Errorf("field testGroups in XdhPemCompSchemaV1Json: required")
}
type Plain XdhPemCompSchemaV1Json
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhPemCompSchemaV1Json(plain)
return nil
}
type XdhPemTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []XdhPemTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type XdhPemTestGroupType `json:"type"`
}
type XdhPemTestGroupType string
const XdhPemTestGroupTypeXdhPemComp XdhPemTestGroupType = "XdhPemComp"
var enumValues_XdhPemTestGroupType = []interface{}{
"XdhPemComp",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhPemTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhPemTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhPemTestGroupType, v)
}
*j = XdhPemTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhPemTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in XdhPemTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in XdhPemTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in XdhPemTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in XdhPemTestGroup: required")
}
type Plain XdhPemTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhPemTestGroup(plain)
return nil
}
type XdhPemTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// a raw private key
Private string `json:"private"`
// PEM encoded public key
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the shared secret
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhPemTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in XdhPemTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in XdhPemTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in XdhPemTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in XdhPemTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in XdhPemTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in XdhPemTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in XdhPemTestVector: required")
}
type Plain XdhPemTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhPemTestVector(plain)
return nil
}
type XdhTestGroup struct {
// the name of the curve
Curve string `json:"curve"`
// Source corresponds to the JSON schema field "source".
Source Source `json:"source"`
// Tests corresponds to the JSON schema field "tests".
Tests []XdhTestVector `json:"tests"`
// Type corresponds to the JSON schema field "type".
Type XdhTestGroupType `json:"type"`
}
type XdhTestGroupType string
const XdhTestGroupTypeXdhComp XdhTestGroupType = "XdhComp"
var enumValues_XdhTestGroupType = []interface{}{
"XdhComp",
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhTestGroupType) UnmarshalJSON(value []byte) error {
var v string
if err := json.Unmarshal(value, &v); err != nil {
return err
}
var ok bool
for _, expected := range enumValues_XdhTestGroupType {
if reflect.DeepEqual(v, expected) {
ok = true
break
}
}
if !ok {
return fmt.Errorf("invalid value (expected one of %#v): %#v", enumValues_XdhTestGroupType, v)
}
*j = XdhTestGroupType(v)
return nil
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhTestGroup) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["curve"]; raw != nil && !ok {
return fmt.Errorf("field curve in XdhTestGroup: required")
}
if _, ok := raw["source"]; raw != nil && !ok {
return fmt.Errorf("field source in XdhTestGroup: required")
}
if _, ok := raw["tests"]; raw != nil && !ok {
return fmt.Errorf("field tests in XdhTestGroup: required")
}
if _, ok := raw["type"]; raw != nil && !ok {
return fmt.Errorf("field type in XdhTestGroup: required")
}
type Plain XdhTestGroup
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhTestGroup(plain)
return nil
}
type XdhTestVector struct {
// A brief description of the test case
Comment string `json:"comment"`
// A list of flags
Flags []string `json:"flags"`
// the raw bytes of private key
Private string `json:"private"`
// the raw bytes of the public key
Public string `json:"public"`
// Result corresponds to the JSON schema field "result".
Result Result `json:"result"`
// the shared secret
Shared string `json:"shared"`
// Identifier of the test case
TcId int `json:"tcId"`
}
// UnmarshalJSON implements json.Unmarshaler.
func (j *XdhTestVector) UnmarshalJSON(value []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(value, &raw); err != nil {
return err
}
if _, ok := raw["comment"]; raw != nil && !ok {
return fmt.Errorf("field comment in XdhTestVector: required")
}
if _, ok := raw["flags"]; raw != nil && !ok {
return fmt.Errorf("field flags in XdhTestVector: required")
}
if _, ok := raw["private"]; raw != nil && !ok {
return fmt.Errorf("field private in XdhTestVector: required")
}
if _, ok := raw["public"]; raw != nil && !ok {
return fmt.Errorf("field public in XdhTestVector: required")
}
if _, ok := raw["result"]; raw != nil && !ok {
return fmt.Errorf("field result in XdhTestVector: required")
}
if _, ok := raw["shared"]; raw != nil && !ok {
return fmt.Errorf("field shared in XdhTestVector: required")
}
if _, ok := raw["tcId"]; raw != nil && !ok {
return fmt.Errorf("field tcId in XdhTestVector: required")
}
type Plain XdhTestVector
var plain Plain
if err := json.Unmarshal(value, &plain); err != nil {
return err
}
*j = XdhTestVector(plain)
return nil
}