2022-09-18 20:12:32 +02:00
|
|
|
import test from 'tape';
|
|
|
|
// import sync from '../sync.js';
|
|
|
|
import { generateSalt, generateSaltSeed, deriveSecrets, walletHmac } from './sync.js';
|
2022-10-07 22:18:45 +02:00
|
|
|
export default function doTest() {
|
2022-09-18 20:12:32 +02:00
|
|
|
|
|
|
|
test('Generate sync seed', (assert) => {
|
|
|
|
const seed = generateSaltSeed();
|
|
|
|
console.log('seed', seed);
|
|
|
|
assert.pass(seed.length === 64);
|
|
|
|
assert.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Generate salt', (assert) => {
|
|
|
|
const seed = '80b3aff252588c4097df8f79ad42c8a5cf8d7c9e5339efec8bdb8bc7c5cf25ca';
|
|
|
|
const email = 'example@example.com';
|
|
|
|
const salt = generateSalt(email, seed);
|
|
|
|
console.log('salt', salt);
|
|
|
|
const expected = 'be6074a96f3ce812ea51b95d48e4b10493e14f6a329df7c0816018c6239661fe';
|
|
|
|
const actual = salt;
|
|
|
|
|
|
|
|
assert.equal(actual, expected,
|
|
|
|
'salt is expected value.');
|
|
|
|
assert.end();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('Derive Keys', (assert) => {
|
|
|
|
const seed = '80b3aff252588c4097df8f79ad42c8a5cf8d7c9e5339efec8bdb8bc7c5cf25ca';
|
|
|
|
const email = 'example@example.com';
|
|
|
|
|
|
|
|
const expectedHmacKey = 'bCxUIryLK0Lf9nKg9yiZDlGleMuGJkadLzTje1PAI+8='; //base64
|
|
|
|
const expectedLbryIdPassword = 'HKo/J+x4Hsy2NkMvj2JB9RI0yrvEiB4QSA/NHPaT/cA=';
|
|
|
|
|
|
|
|
function cb(e, r) {
|
2022-10-07 22:18:45 +02:00
|
|
|
console.log('result', r);
|
|
|
|
assert.equal(r.hmacKey, expectedHmacKey, 'hmac is expected value');
|
|
|
|
assert.equal(r.lbryIdPassword, expectedLbryIdPassword, 'lbryid password is expected value');
|
2022-09-18 20:12:32 +02:00
|
|
|
assert.end();
|
|
|
|
}
|
|
|
|
|
|
|
|
deriveSecrets('pass', email, seed, cb);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('CreateHmac', (assert) => {
|
|
|
|
const hmacKey = 'bCxUIryLK0Lf9nKg9yiZDlGleMuGJkadLzTje1PAI+8=';
|
|
|
|
const sequence = 1;
|
|
|
|
const walletState = `zo4MTkyOjE2OjE68QlIU76+W91/v/F1tu8h+kGB0Ee`;
|
|
|
|
const expectedHmacHex = '52edbad5b0f9d8cf6189795702790cc2cb92060be24672913ab3e4b69c03698b';
|
|
|
|
|
|
|
|
const input_str = `${sequence}:${walletState}`;
|
|
|
|
const hmacHex = walletHmac(input_str);
|
|
|
|
assert.equal(hmacHex, expectedHmacHex);
|
|
|
|
assert.end();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-10-07 22:18:45 +02:00
|
|
|
doTest();
|