Skip to content
Snippets Groups Projects
Commit f3604f05 authored by Xavier Jouslin de Noray's avatar Xavier Jouslin de Noray
Browse files

CRL: make accessible the crl for root and sfl

Gitlab: #12
Change-Id: If9e93db6adba0a9fda26e07e417cbb3144eed05c
parent 52c6b351
No related branches found
No related tags found
No related merge requests found
......@@ -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> {
......
......@@ -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';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment