feat: added support for custom extended key usages

This commit is contained in:
Sheen Capadngan
2024-09-11 22:38:36 +08:00
parent c1f61f2db4
commit a8759e7410
14 changed files with 306 additions and 45 deletions
@@ -10,7 +10,8 @@ export const sanitizedCertificateTemplate = CertificateTemplatesSchema.pick({
subjectAlternativeName: true,
pkiCollectionId: true,
ttl: true,
keyUsages: true
keyUsages: true,
extendedKeyUsages: true
}).merge(
z.object({
projectId: z.string(),
@@ -58,7 +58,8 @@ export const certificateTemplateServiceFactory = ({
actorAuthMethod,
actor,
actorOrgId,
keyUsages
keyUsages,
extendedKeyUsages
}: TCreateCertTemplateDTO) => {
const ca = await certificateAuthorityDAL.findById(caId);
if (!ca) {
@@ -88,7 +89,8 @@ export const certificateTemplateServiceFactory = ({
commonName,
subjectAlternativeName,
ttl,
keyUsages
keyUsages,
extendedKeyUsages
},
tx
);
@@ -116,7 +118,8 @@ export const certificateTemplateServiceFactory = ({
actorAuthMethod,
actor,
actorOrgId,
keyUsages
keyUsages,
extendedKeyUsages
}: TUpdateCertTemplateDTO) => {
const certTemplate = await certificateTemplateDAL.getById(id);
if (!certTemplate) {
@@ -157,7 +160,8 @@ export const certificateTemplateServiceFactory = ({
subjectAlternativeName,
name,
ttl,
keyUsages
keyUsages,
extendedKeyUsages
},
tx
);
@@ -1,5 +1,5 @@
import { TProjectPermission } from "@app/lib/types";
import { CertKeyUsage } from "@app/services/certificate/certificate-types";
import { CertExtendedKeyUsage, CertKeyUsage } from "@app/services/certificate/certificate-types";
export type TCreateCertTemplateDTO = {
caId: string;
@@ -9,6 +9,7 @@ export type TCreateCertTemplateDTO = {
subjectAlternativeName: string;
ttl: string;
keyUsages: CertKeyUsage[];
extendedKeyUsages: CertExtendedKeyUsage[];
} & Omit<TProjectPermission, "projectId">;
export type TUpdateCertTemplateDTO = {
@@ -20,6 +21,7 @@ export type TUpdateCertTemplateDTO = {
subjectAlternativeName?: string;
ttl?: string;
keyUsages?: CertKeyUsage[];
extendedKeyUsages?: CertExtendedKeyUsage[];
} & Omit<TProjectPermission, "projectId">;
export type TGetCertTemplateDTO = {