nexstream-api / backend /tests /lite /cipher.lite.test.js
nexstream-deploy
deploy: nexstream backend (experiment)
2276d59
Raw
History Blame Contribute Delete
1.54 kB
#!/usr/bin/env node
// pure node test: low memory usage
// runs in <100MB, won't kill termux
import assert from 'node:assert/strict';
import tls from 'node:tls';
import { test } from 'node:test';
import {
randomizeCiphers,
startCipherRotation,
} from '../../dist/backend/src/utils/network/cipher.util.js';
const ORIGINAL = tls.DEFAULT_CIPHERS;
test('cipher: changes order on each call', () => {
randomizeCiphers();
const first = tls.DEFAULT_CIPHERS;
randomizeCiphers();
const second = tls.DEFAULT_CIPHERS;
assert.notEqual(first, ORIGINAL);
assert.notEqual(second, first);
tls.DEFAULT_CIPHERS = ORIGINAL;
});
test('cipher: preserves count', () => {
randomizeCiphers();
assert.equal(
tls.DEFAULT_CIPHERS.split(':').length,
ORIGINAL.split(':').length
);
tls.DEFAULT_CIPHERS = ORIGINAL;
});
test('cipher: only top 8 shuffled', () => {
randomizeCiphers();
const after = tls.DEFAULT_CIPHERS.split(':');
const before = ORIGINAL.split(':');
assert.deepEqual(after.slice(8), before.slice(8));
tls.DEFAULT_CIPHERS = ORIGINAL;
});
test('cipher: top 8 has same items', () => {
randomizeCiphers();
const sortedAfter = tls.DEFAULT_CIPHERS.split(':').slice(0, 8).sort();
const sortedBefore = ORIGINAL.split(':').slice(0, 8).sort();
assert.deepEqual(sortedAfter, sortedBefore);
tls.DEFAULT_CIPHERS = ORIGINAL;
});
test('cipher: startCipherRotation applies immediately', () => {
startCipherRotation();
assert.notEqual(tls.DEFAULT_CIPHERS, ORIGINAL);
tls.DEFAULT_CIPHERS = ORIGINAL;
});