PHP WebShell
Текущая директория: /opt/BitGoJS/modules/abstract-lightning/test/unit/lightning
Просмотр файла: signature.ts
import assert from 'assert';
import * as utxolib from '@bitgo/utxo-lib';
import { createMessageSignature, verifyMessageSignature } from '../../../src/lightning';
import crypto from 'crypto';
type Request = {
invoice: string;
fee?: number;
};
function getKey(seed: string): utxolib.BIP32Interface {
return utxolib.bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
}
describe('verifySignature', function () {
const key = getKey('key');
const keyPub = key.neutered();
const wrongKey = getKey('wrongKey');
it('returns true on valid signature', function () {
const request: Request = {
invoice: 'some data',
};
const signature = createMessageSignature(request, key.toBase58());
const result = verifyMessageSignature(request, signature, keyPub.toBase58());
assert(result);
});
it('returns true on different order', function () {
const request: Request = {
invoice: 'some data',
fee: 123,
};
const otherRequest: Request = {
fee: 123,
invoice: 'some data',
};
const signature = createMessageSignature(request, key.toBase58());
const result = verifyMessageSignature(otherRequest, signature, keyPub.toBase58());
assert(result);
});
it('returns false on wrong message', function () {
const request: Request = {
invoice: 'some data',
};
const wrongRequest: Request = {
invoice: 'some other data',
};
const signature = createMessageSignature(request, key.toBase58());
const result = verifyMessageSignature(wrongRequest, signature, keyPub.toBase58());
assert(!result);
});
it('returns false on wrong key', function () {
const request: Request = {
invoice: 'some data',
};
const signature = createMessageSignature(request, wrongKey.toBase58());
const result = verifyMessageSignature(request, signature, keyPub.toBase58());
assert(!result);
});
});
Выполнить команду
Для локальной разработки. Не используйте в интернете!