@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.
@@ -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":"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"}
1
+ {"version":3,"file":"testMexCreation.js","sourceRoot":"","sources":["../../__tests__/testMexCreation.ts"],"names":[],"mappings":"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"}