56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import fs from "fs";
|
|
import path from "path";
|
|
import { Result } from "sim-shared/domain/Result.js";
|
|
|
|
export type P12Cert = {
|
|
cainfo: string,
|
|
p12cert: string
|
|
}
|
|
|
|
export type SSLCert = {
|
|
cainfo: string,
|
|
sslcert: string,
|
|
keypem: string
|
|
}
|
|
|
|
/**
|
|
* TODO:
|
|
* - Se ha usado https.Agent en su lugar, eliminar si no se usa
|
|
*/
|
|
export class SSLCertificateLoader {
|
|
|
|
constructor(
|
|
private certificatesDir: string,
|
|
) {
|
|
}
|
|
|
|
public loadCertificatesP12(caFile: string, certFile: string): Result<string, P12Cert> {
|
|
try {
|
|
const cainfo = fs.readFileSync(path.resolve(this.certificatesDir, caFile)).toString();
|
|
const p12cert = fs.readFileSync(path.resolve(this.certificatesDir, certFile)).toString();
|
|
return { data: { cainfo, p12cert } };
|
|
} catch (e) {
|
|
console.error("[x] Error cargando los certificados P12", e)
|
|
return {
|
|
error: String(e)
|
|
}
|
|
}
|
|
}
|
|
|
|
public loadCertificatesSSL(caFile: string, certFile: string, keyFile: string): Result<string, SSLCert> {
|
|
try {
|
|
const cainfo = fs.readFileSync(path.resolve(this.certificatesDir, caFile)).toString();
|
|
const sslcert = fs.readFileSync(path.resolve(this.certificatesDir, certFile), { encoding: null }).toString();
|
|
const keypem = fs.readFileSync(path.resolve(this.certificatesDir, keyFile), { encoding: null }).toString();
|
|
return { data: { cainfo, sslcert, keypem } };
|
|
} catch (e) {
|
|
console.error("[x] Error cargando los certificados SSL", e)
|
|
return {
|
|
error: String(e)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|