verify.js 575 B

12345678910111213141516
  1. import subtleAlgorithm from './subtle_dsa.js';
  2. import crypto from './webcrypto.js';
  3. import checkKeyLength from './check_key_length.js';
  4. import getVerifyKey from './get_sign_verify_key.js';
  5. const verify = async (alg, key, signature, data) => {
  6. const cryptoKey = await getVerifyKey(alg, key, 'verify');
  7. checkKeyLength(alg, cryptoKey);
  8. const algorithm = subtleAlgorithm(alg, cryptoKey.algorithm);
  9. try {
  10. return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);
  11. }
  12. catch (_a) {
  13. return false;
  14. }
  15. };
  16. export default verify;