diff --git a/src/services/certificate.manager.service.ts b/src/services/certificate.manager.service.ts index 5b402b59d16dfae5ecfbddd1371926fd286187ed..f2638df2cfde7e43d9875025acb8204ca0ce3405 100644 --- a/src/services/certificate.manager.service.ts +++ b/src/services/certificate.manager.service.ts @@ -29,37 +29,48 @@ export class CertificateManager { } async getCaCrlPath(): Promise<string> { - const crlFilePath = - (process.env.DATA_DIRECTORY as string) + '/' + 'root.crl'; - const isCRLFileExist = await this.fileManager.isFileExist(crlFilePath); - if (process.env.DATA_DIRECTORY === undefined || !isCRLFileExist) { - return ''; - } - return crlFilePath; + return await this.getCrlPath( + // eslint-disable-next-line + __dirname + '/../..' + (process.env.DATA_DIRECTORY as string), + 'root.crl' + ); } async getSflCrlPath(): Promise<string> { - const crlFilePath = - (process.env.DATA_DIRECTORY as string) + '/' + 'SFL.crl'; - const isCRLFileExist = await this.fileManager.isFileExist(crlFilePath); - if (process.env.DATA_DIRECTORY === undefined || !isCRLFileExist) { + return await this.getCrlPath( + // eslint-disable-next-line + __dirname + '/../..' + (process.env.DATA_DIRECTORY as string), + 'SFL.crl' + ); + } + + async getCrlPath(path: string, file: string): Promise<string> { + const crlPath = path + '/' + file; + const isCrlFileExist = await this.fileManager.isFileExist(crlPath); + if (process.env.DATA_DIRECTORY === undefined || !isCrlFileExist) { return ''; } - return crlFilePath; + return crlPath; } - async getCaCrl(): Promise<string> { + async getCaCrl(): Promise<Buffer> { if (process.env.DATA_DIRECTORY === undefined) { - return ''; + return Buffer.from(''); } - return await this.readCRL(process.env.DATA_DIRECTORY + '/' + 'ca.crl'); + return await this.readCRL( + // eslint-disable-next-line + __dirname + '/../..' + process.env.DATA_DIRECTORY + '/' + 'root.crl' + ); } - async getSflCrl(): Promise<string> { + async getSflCrl(): Promise<Buffer> { if (process.env.DATA_DIRECTORY === undefined) { - return ''; + return Buffer.from(''); } - return await this.readCRL(process.env.DATA_DIRECTORY + '/' + 'sfl.crl'); + return await this.readCRL( + // eslint-disable-next-line + __dirname + '/../..' + process.env.DATA_DIRECTORY + '/' + 'sfl.crl' + ); } verifySignature(signature: Buffer, checkSignature: Buffer): boolean { @@ -74,8 +85,8 @@ export class CertificateManager { }); } - private async readCRL(file: string): Promise<string> { - return (await this.fileManager.readFile(file)).toString(); + private async readCRL(file: string): Promise<Buffer> { + return await this.fileManager.readFile(file); } parseDN(dn: string): Record<string, string> { diff --git a/tests/certificate.manager.test.ts b/tests/certificate.manager.test.ts index 24535693593ca4e617f9248352f87c03571d96ae..effea63a2d458f541d1b9f172f1a58e889cf91d0 100644 --- a/tests/certificate.manager.test.ts +++ b/tests/certificate.manager.test.ts @@ -70,21 +70,21 @@ describe('Certificate manager service tests', function () { const expectedCRL = 'test'; fileManager.readFile.resolves(Buffer.from(expectedCRL, 'utf-8')); const crl = await certificateManager['readCRL'](path + '/' + file); - expect(crl).toEqual(expectedCRL); + expect(crl).toEqual(Buffer.from(expectedCRL, 'utf-8')); }); it('should return sfl crl', async () => { const expectedCRL = 'test'; fileManager.readFile.resolves(Buffer.from(expectedCRL, 'utf-8')); const crl = await certificateManager.getSflCrl(); - expect(crl).toEqual(expectedCRL); + expect(crl).toEqual(Buffer.from(expectedCRL, 'utf-8')); }); it('should return ca crl', async () => { const expectedCRL = 'test'; fileManager.readFile.resolves(Buffer.from(expectedCRL, 'utf-8')); const crl = await certificateManager.getCaCrl(); - expect(crl).toEqual(expectedCRL); + expect(crl).toEqual(Buffer.from(expectedCRL, 'utf-8')); }); it('should parse the DN correctly', () => { const dn = 'CN=John Doe\nO=Acme Corp';