mirror of https://github.com/keeweb/keeweb.git
signature verifier tests
This commit is contained in:
parent
7feed36dac
commit
a035796503
|
@ -31,13 +31,12 @@ const SignatureVerifier = {
|
|||
signature = kdbxweb.ByteUtils.base64ToBytes(signature);
|
||||
}
|
||||
const signatureData = kdbxweb.ByteUtils.arrayToBuffer(signature);
|
||||
const subtle = window.crypto.subtle;
|
||||
const keyFormat = 'spki';
|
||||
subtle
|
||||
crypto.subtle
|
||||
.importKey(keyFormat, pkData, algo, false, ['verify'])
|
||||
.then((cryptoKey) => {
|
||||
try {
|
||||
subtle
|
||||
crypto.subtle
|
||||
.verify(
|
||||
algo,
|
||||
cryptoKey,
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/* eslint-disable */
|
||||
|
||||
const Module = require('module');
|
||||
const path = require('path');
|
||||
const originalResolveFilename = Module._resolveFilename;
|
||||
import * as path from 'path';
|
||||
import * as fs from 'fs';
|
||||
|
||||
const appBasePath = path.resolve(__dirname, '..', 'app');
|
||||
|
||||
|
@ -13,6 +13,7 @@ const replacements = [
|
|||
}
|
||||
];
|
||||
|
||||
const originalResolveFilename = Module._resolveFilename;
|
||||
Module._resolveFilename = function (request: string, _parent: any): string {
|
||||
for (const { match, replace } of replacements) {
|
||||
request = request.replace(match, replace);
|
||||
|
@ -20,3 +21,23 @@ Module._resolveFilename = function (request: string, _parent: any): string {
|
|||
arguments[0] = request;
|
||||
return originalResolveFilename.apply(this, arguments);
|
||||
};
|
||||
|
||||
function requireTextFile(filePath: string): () => { default: string } {
|
||||
return () => {
|
||||
filePath = path.resolve(__dirname, '..', filePath);
|
||||
return { default: fs.readFileSync(filePath, 'utf8') };
|
||||
};
|
||||
}
|
||||
|
||||
const knownModules: { [name: string]: any } = {
|
||||
'public-key.pem': requireTextFile('keys/public-key.pem'),
|
||||
'public-key-new.pem': requireTextFile('keys/public-key-new.pem')
|
||||
};
|
||||
|
||||
const originalRequire = Module.prototype.require;
|
||||
Module.prototype.require = function (request: string, ...args: any[]): any {
|
||||
if (knownModules[request]) {
|
||||
return knownModules[request]();
|
||||
}
|
||||
return originalRequire.call(this, request, ...args);
|
||||
};
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import { expect } from 'chai';
|
||||
import { SignatureVerifier } from 'util/data/signature-verifier';
|
||||
|
||||
describe('SignatureVerifier', () => {
|
||||
it('verifies an invalid signature', async () => {
|
||||
const valid = await SignatureVerifier.verify(new Uint8Array([1, 2, 3]), 'aaaa');
|
||||
expect(valid).to.eql(false);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue