Improve ECSignature schema to check signature parameters and that v is 27 or 28
This commit is contained in:
parent
0b8ddc1ee1
commit
fa559377c8
@ -1,9 +1,19 @@
|
|||||||
|
export const ECSignatureParameter = {
|
||||||
|
id: '/ECSignatureParameter',
|
||||||
|
type: 'string',
|
||||||
|
pattern: '^0[xX][0-9A-Fa-f]{64}$',
|
||||||
|
};
|
||||||
|
|
||||||
export const ECSignatureSchema = {
|
export const ECSignatureSchema = {
|
||||||
id: '/ECSignature',
|
id: '/ECSignature',
|
||||||
properties: {
|
properties: {
|
||||||
v: {type: 'number'},
|
v: {
|
||||||
r: {type: 'string'},
|
type: 'number',
|
||||||
s: {type: 'string'},
|
minimum: 27,
|
||||||
|
maximum: 28,
|
||||||
|
},
|
||||||
|
r: {$ref: '/ECSignatureParameter'},
|
||||||
|
s: {$ref: '/ECSignatureParameter'},
|
||||||
},
|
},
|
||||||
required: ['v', 'r', 's'],
|
required: ['v', 'r', 's'],
|
||||||
type: 'object',
|
type: 'object',
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import {Validator as V, ValidatorResult} from 'jsonschema';
|
import {Validator as V, ValidatorResult} from 'jsonschema';
|
||||||
import {ECSignatureSchema} from '../schemas/ec_signature_schema';
|
import {ECSignatureSchema, ECSignatureParameter} from '../schemas/ec_signature_schema';
|
||||||
|
|
||||||
export class SchemaValidator {
|
export class SchemaValidator {
|
||||||
private v: V;
|
private v: V;
|
||||||
constructor() {
|
constructor() {
|
||||||
this.v = new V();
|
this.v = new V();
|
||||||
|
this.v.addSchema(ECSignatureParameter, ECSignatureParameter.id);
|
||||||
this.v.addSchema(ECSignatureSchema, ECSignatureSchema.id);
|
this.v.addSchema(ECSignatureSchema, ECSignatureSchema.id);
|
||||||
}
|
}
|
||||||
public validate(instance: object, schema: Schema): ValidatorResult {
|
public validate(instance: object, schema: Schema): ValidatorResult {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user