#21: Add signature validation during installations [partial]
This commit is contained in:
58
src/helpers.test.js
Normal file
58
src/helpers.test.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const helpers = require('./helpers');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const Constants = require('./constants');
|
||||
|
||||
test('verify signature success', () => {
|
||||
return helpers
|
||||
.verifySignature(
|
||||
path.resolve('test/test_verify_signature.dat'),
|
||||
path.resolve('test/test_verify_signature.dat.sig'),
|
||||
path.resolve('blockstorage_dev_public.pem'))
|
||||
.then(stdout => {
|
||||
expect(stdout).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
test('verify signature fail', () => {
|
||||
return expect(helpers
|
||||
.verifySignature(
|
||||
path.resolve('test/test_verify_signature_fail.dat'),
|
||||
path.resolve('test/test_verify_signature.dat.sig'),
|
||||
path.resolve('blockstorage_dev_public.pem')))
|
||||
.rejects
|
||||
.toThrow()
|
||||
});
|
||||
|
||||
test('create temp signature files', () => {
|
||||
const b64signature = fs.readFileSync(path.resolve('test/test_create_signature.sig.b64'), {encoding: 'utf8'}).replace(/(\r\n|\n|\r)/gm,"");
|
||||
const data = helpers
|
||||
.createSignatureFiles(
|
||||
b64signature,
|
||||
Constants.DEV_PUBLIC_KEY);
|
||||
expect(data).toBeDefined();
|
||||
expect(data.PublicKeyFile).toBeDefined();
|
||||
expect(data.SignatureFile).toBeDefined();
|
||||
|
||||
expect(fs.statSync(data.SignatureFile).isFile()).toBe(true);
|
||||
expect(fs.statSync(data.PublicKeyFile).isFile()).toBe(true);
|
||||
|
||||
const b64signature2 = fs.readFileSync(data.SignatureFile).toString('base64').replace(/(\r\n|\n|\r)/gm,"");
|
||||
expect(b64signature2).toEqual(b64signature);
|
||||
|
||||
expect(fs.readFileSync(data.PublicKeyFile, {encoding: 'utf8'})).toEqual(Constants.DEV_PUBLIC_KEY);
|
||||
fs.unlinkSync(data.PublicKeyFile);
|
||||
fs.unlinkSync(data.SignatureFile);
|
||||
});
|
||||
|
||||
test('verify sha56 success', ()=> {
|
||||
const hash = fs.readFileSync('test/test_verify_sha256.dat.sha256', {encoding: 'utf8'});
|
||||
return expect(helpers.verifyHash(path.resolve('test/test_verify_sha256.dat'), hash))
|
||||
.resolves.toBe(hash)
|
||||
});
|
||||
|
||||
test('verify sha56 fail', ()=> {
|
||||
const hash = fs.readFileSync('test/test_verify_sha256.dat.sha256', {encoding: 'utf8'});
|
||||
return expect(helpers.verifyHash(path.resolve('test/test_verify_sha256_fail.dat'), hash))
|
||||
.rejects.toThrow();
|
||||
});
|
||||
Reference in New Issue
Block a user