diff --git a/backend/e2e-test/vitest-environment-knex.ts b/backend/e2e-test/vitest-environment-knex.ts index ce8301690..866b0f45f 100644 --- a/backend/e2e-test/vitest-environment-knex.ts +++ b/backend/e2e-test/vitest-environment-knex.ts @@ -16,7 +16,7 @@ import { initDbConnection } from "@app/db"; import { queueServiceFactory } from "@app/queue"; import { keyStoreFactory } from "@app/keystore/keystore"; import { Redis } from "ioredis"; -import { initializeHsmModule } from "@app/services/hsm/hsm-fns"; +import { initializeHsmModule } from "@app/ee/services/hsm/hsm-fns"; dotenv.config({ path: path.join(__dirname, "../../.env.test"), debug: true }); export default { diff --git a/backend/src/services/hsm/hsm-fns.ts b/backend/src/ee/services/hsm/hsm-fns.ts similarity index 100% rename from backend/src/services/hsm/hsm-fns.ts rename to backend/src/ee/services/hsm/hsm-fns.ts diff --git a/backend/src/services/hsm/hsm-service.ts b/backend/src/ee/services/hsm/hsm-service.ts similarity index 99% rename from backend/src/services/hsm/hsm-service.ts rename to backend/src/ee/services/hsm/hsm-service.ts index a2dd14bc7..253065138 100644 --- a/backend/src/services/hsm/hsm-service.ts +++ b/backend/src/ee/services/hsm/hsm-service.ts @@ -88,7 +88,7 @@ export const hsmServiceFactory = ({ hsmModule: { module, graphene } }: THsmServi const appCfg = getConfig(); // Constants for buffer structure - const IV_LENGTH = 16; + const IV_LENGTH = 12; const TAG_LENGTH = 16; const $findMasterKey = (session: grapheneLib.Session) => { diff --git a/backend/src/services/hsm/hsm-types.ts b/backend/src/ee/services/hsm/hsm-types.ts similarity index 100% rename from backend/src/services/hsm/hsm-types.ts rename to backend/src/ee/services/hsm/hsm-types.ts diff --git a/backend/src/main.ts b/backend/src/main.ts index db67e7a59..f8adea33f 100644 --- a/backend/src/main.ts +++ b/backend/src/main.ts @@ -1,6 +1,8 @@ import dotenv from "dotenv"; import path from "path"; +import { initializeHsmModule } from "@app/ee/services/hsm/hsm-fns"; + import { initAuditLogDbConnection, initDbConnection } from "./db"; import { keyStoreFactory } from "./keystore/keystore"; import { formatSmtpConfig, initEnvConfig, IS_PACKAGED } from "./lib/config/env"; @@ -9,7 +11,6 @@ import { initLogger } from "./lib/logger"; import { queueServiceFactory } from "./queue"; import { main } from "./server/app"; import { bootstrapCheck } from "./server/boot-strap-check"; -import { initializeHsmModule } from "./services/hsm/hsm-fns"; import { smtpServiceFactory } from "./services/smtp/smtp-service"; dotenv.config(); diff --git a/backend/src/server/app.ts b/backend/src/server/app.ts index 4d002f3f5..fa2c9910a 100644 --- a/backend/src/server/app.ts +++ b/backend/src/server/app.ts @@ -14,10 +14,10 @@ import fastify from "fastify"; import { Knex } from "knex"; import { Logger } from "pino"; +import { HsmModule } from "@app/ee/services/hsm/hsm-types"; import { TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig, IS_PACKAGED } from "@app/lib/config/env"; import { TQueueServiceFactory } from "@app/queue"; -import { HsmModule } from "@app/services/hsm/hsm-types"; import { TSmtpService } from "@app/services/smtp/smtp-service"; import { globalRateLimiterCfg } from "./config/rateLimiter"; diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index 0ef53e14e..88bfaaaae 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -30,6 +30,8 @@ import { externalKmsServiceFactory } from "@app/ee/services/external-kms/externa import { groupDALFactory } from "@app/ee/services/group/group-dal"; import { groupServiceFactory } from "@app/ee/services/group/group-service"; import { userGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; +import { hsmServiceFactory } from "@app/ee/services/hsm/hsm-service"; +import { HsmModule } from "@app/ee/services/hsm/hsm-types"; import { identityProjectAdditionalPrivilegeDALFactory } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-dal"; import { identityProjectAdditionalPrivilegeServiceFactory } from "@app/ee/services/identity-project-additional-privilege/identity-project-additional-privilege-service"; import { identityProjectAdditionalPrivilegeV2ServiceFactory } from "@app/ee/services/identity-project-additional-privilege-v2/identity-project-additional-privilege-v2-service"; @@ -107,8 +109,6 @@ import { externalMigrationServiceFactory } from "@app/services/external-migratio import { groupProjectDALFactory } from "@app/services/group-project/group-project-dal"; import { groupProjectMembershipRoleDALFactory } from "@app/services/group-project/group-project-membership-role-dal"; import { groupProjectServiceFactory } from "@app/services/group-project/group-project-service"; -import { hsmServiceFactory } from "@app/services/hsm/hsm-service"; -import { HsmModule } from "@app/services/hsm/hsm-types"; import { identityDALFactory } from "@app/services/identity/identity-dal"; import { identityMetadataDALFactory } from "@app/services/identity/identity-metadata-dal"; import { identityOrgDALFactory } from "@app/services/identity/identity-org-dal"; diff --git a/backend/src/server/routes/v1/admin-router.ts b/backend/src/server/routes/v1/admin-router.ts index f3c121233..9891f58e5 100644 --- a/backend/src/server/routes/v1/admin-router.ts +++ b/backend/src/server/routes/v1/admin-router.ts @@ -198,7 +198,7 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { server.route({ method: "GET", - url: "/root-kms-config", + url: "/encryption-strategies", config: { rateLimit: readLimit }, @@ -228,7 +228,7 @@ export const registerAdminRouter = async (server: FastifyZodProvider) => { }); server.route({ - method: "POST", + method: "PATCH", url: "/encryption-strategies", config: { rateLimit: writeLimit diff --git a/backend/src/services/kms/kms-service.ts b/backend/src/services/kms/kms-service.ts index 92b909870..007d33e61 100644 --- a/backend/src/services/kms/kms-service.ts +++ b/backend/src/services/kms/kms-service.ts @@ -9,6 +9,7 @@ import { KmsProviders, TExternalKmsProviderFns } from "@app/ee/services/external-kms/providers/model"; +import { THsmServiceFactory } from "@app/ee/services/hsm/hsm-service"; import { KeyStorePrefixes, TKeyStoreFactory } from "@app/keystore/keystore"; import { getConfig } from "@app/lib/config/env"; import { randomSecureBytes } from "@app/lib/crypto"; @@ -19,7 +20,6 @@ import { logger } from "@app/lib/logger"; import { alphaNumericNanoId } from "@app/lib/nanoid"; import { getByteLengthForAlgorithm, KMS_ROOT_CONFIG_UUID } from "@app/services/kms/kms-fns"; -import { THsmServiceFactory } from "../hsm/hsm-service"; import { TOrgDALFactory } from "../org/org-dal"; import { TProjectDALFactory } from "../project/project-dal"; import { TInternalKmsDALFactory } from "./internal-kms-dal"; diff --git a/frontend/src/hooks/api/admin/mutation.ts b/frontend/src/hooks/api/admin/mutation.ts index 30fffca3b..6cd13050e 100644 --- a/frontend/src/hooks/api/admin/mutation.ts +++ b/frontend/src/hooks/api/admin/mutation.ts @@ -91,7 +91,7 @@ export const useUpdateServerEncryptionStrategy = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: async (strategy: RootKeyEncryptionStrategy) => { - await apiRequest.post("/api/v1/admin/encryption-strategies", { strategy }); + await apiRequest.patch("/api/v1/admin/encryption-strategies", { strategy }); }, onSuccess: () => { queryClient.invalidateQueries(adminQueryKeys.getServerEncryptionStrategies()); diff --git a/frontend/src/hooks/api/admin/queries.ts b/frontend/src/hooks/api/admin/queries.ts index 0ab3750e4..a1d32bce3 100644 --- a/frontend/src/hooks/api/admin/queries.ts +++ b/frontend/src/hooks/api/admin/queries.ts @@ -85,7 +85,7 @@ export const useGetServerRootKmsEncryptionDetails = () => { queryKey: adminQueryKeys.getServerEncryptionStrategies(), queryFn: async () => { const { data } = await apiRequest.get( - "/api/v1/admin/root-kms-config" + "/api/v1/admin/encryption-strategies" ); return data;