generated from erangel1/generic-template
initial commit. phase 1 complete
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
import { flattenedVerify } from '../flattened/verify.js';
|
||||
import { JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';
|
||||
import isObject from '../../lib/is_object.js';
|
||||
export async function generalVerify(jws, key, options) {
|
||||
if (!isObject(jws)) {
|
||||
throw new JWSInvalid('General JWS must be an object');
|
||||
}
|
||||
if (!Array.isArray(jws.signatures) || !jws.signatures.every(isObject)) {
|
||||
throw new JWSInvalid('JWS Signatures missing or incorrect type');
|
||||
}
|
||||
for (const signature of jws.signatures) {
|
||||
try {
|
||||
return await flattenedVerify({
|
||||
header: signature.header,
|
||||
payload: jws.payload,
|
||||
protected: signature.protected,
|
||||
signature: signature.signature,
|
||||
}, key, options);
|
||||
}
|
||||
catch (_a) {
|
||||
}
|
||||
}
|
||||
throw new JWSSignatureVerificationFailed();
|
||||
}
|
||||
Reference in New Issue
Block a user