@digabi/exam-engine-mastering 23.25.0 → 23.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/testMexCreation.js +19 -0
- package/dist/__tests__/testMexCreation.js.map +1 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/createMex.d.ts +7 -2
- package/dist/createMex.d.ts.map +1 -1
- package/dist/createMex.js +24 -2
- package/dist/createMex.js.map +1 -1
- package/package.json +4 -5
|
@@ -73,6 +73,25 @@ describe('Mex exam package creation', () => {
|
|
|
73
73
|
const koeUpdate = stream_1.Readable.from(['mock koe-update.zip']);
|
|
74
74
|
await expectCorrectMexIsCreated(koeUpdate);
|
|
75
75
|
});
|
|
76
|
+
it('does not add a required-server-version manifest when no required version is given', async () => {
|
|
77
|
+
const mexEntries = await expectCorrectMexIsCreated();
|
|
78
|
+
expect(mexEntries.find(e => e.filename === createMex_1.REQUIRED_SERVER_VERSION_FILENAME)).toBeUndefined();
|
|
79
|
+
});
|
|
80
|
+
it('adds an unencrypted, signed required-server-version manifest when a required version is given', async () => {
|
|
81
|
+
const requiredServerVersion = '1.54.4';
|
|
82
|
+
const { mexStream, mexBuffers } = getMexStreamAndBuffers();
|
|
83
|
+
await (0, createMex_1.createMex)(xml, attachments, nsaScripts, null, passphrase, privateKey, mexStream, undefined, ktpUpdate, undefined, requiredServerVersion);
|
|
84
|
+
const mexEntries = await expectZipEntriesAreCorrect(mexBuffers, e => ({
|
|
85
|
+
fileName: e.filename,
|
|
86
|
+
uncompressedSize: e.filename === 'rendering.zip.bin' ? 0 : e.uncompressedSize
|
|
87
|
+
}));
|
|
88
|
+
const manifest = await toBuffer(await mexEntries.find(e => e.filename === createMex_1.REQUIRED_SERVER_VERSION_FILENAME).openReadStream());
|
|
89
|
+
const manifestSignature = (await toBuffer(await mexEntries.find(e => e.filename === `${createMex_1.REQUIRED_SERVER_VERSION_FILENAME}.sig`).openReadStream())).toString('utf8');
|
|
90
|
+
// The manifest is plaintext JSON (not encrypted) so the server can read it before decryption.
|
|
91
|
+
expect(JSON.parse(manifest.toString('utf8'))).toEqual({ requiredServerVersion });
|
|
92
|
+
// The signature is over the plaintext bytes and verifies with the public key (no passphrase needed).
|
|
93
|
+
expect((0, crypto_utils_1.verifyWithSHA256AndRSA)(manifest, publicKey, manifestSignature)).toBeTruthy();
|
|
94
|
+
});
|
|
76
95
|
});
|
|
77
96
|
describe('with createMultiMex', () => {
|
|
78
97
|
async function expectCorrectMultiMexIsCreated(koeUpdate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testMexCreation.js","sourceRoot":"","sources":["../../__tests__/testMexCreation.ts"],"names":[],"mappings":";;;;;AAAA,2BAAmC;AACnC,gDAAuB;AACvB,kEAAiC;AACjC,mCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"testMexCreation.js","sourceRoot":"","sources":["../../__tests__/testMexCreation.ts"],"names":[],"mappings":"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"}
|