From 10b01f0f1f2d0326d8b89c858eba6fe5eb2e2cfb Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Thu, 21 Nov 2024 07:17:04 -0800 Subject: [PATCH] clean up requests --- .../key-connector-user-key.request.spec.ts | 66 ------------------- .../request/key-connector-user-key.request.ts | 4 -- .../models/response/init-tunnel.response.ts | 3 + 3 files changed, 3 insertions(+), 70 deletions(-) delete mode 100644 libs/common/src/auth/models/request/key-connector-user-key.request.spec.ts diff --git a/libs/common/src/auth/models/request/key-connector-user-key.request.spec.ts b/libs/common/src/auth/models/request/key-connector-user-key.request.spec.ts deleted file mode 100644 index 1e6d93ae630..00000000000 --- a/libs/common/src/auth/models/request/key-connector-user-key.request.spec.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { makeEncString, makeStaticByteArray, makeSymmetricCryptoKey } from "../../../../spec"; -import { TunnelVersion } from "../../../platform/communication-tunnel/communication-tunnel"; - -import { - KeyConnectorGetUserKeyRequest, - KeyConnectorSetUserKeyRequest, -} from "./key-connector-user-key.request"; - -describe("KeyConnectorSetUserKeyRequest", () => { - const masterKey = makeSymmetricCryptoKey(64); - const tunnel = { - protect: jest.fn(), - encapsulatedKey: makeEncString("encapsulatedKey"), - } as any; - const protectedKey = makeStaticByteArray(32, 100); - - it("creates a cleartext instance", async () => { - tunnel.tunnelVersion = TunnelVersion.CLEAR_TEXT; - - const request = await KeyConnectorSetUserKeyRequest.BuildForTunnel(tunnel, masterKey); - expect(request).toBeInstanceOf(KeyConnectorSetUserKeyRequest); - expect(request.key).toBe(masterKey.encKeyB64); - expect(request.encryptedKey).toBeUndefined(); - expect(request.sharedKey).toBeUndefined(); - expect(request.tunnelVersion).toBeUndefined(); - }); - - it("creates an encapsulated instance", async () => { - tunnel.tunnelVersion = TunnelVersion.RSA_ENCAPSULATED_AES_256_GCM; - tunnel.protect.mockResolvedValue(protectedKey); - - const request = await KeyConnectorSetUserKeyRequest.BuildForTunnel(tunnel, masterKey); - expect(request).toBeInstanceOf(KeyConnectorSetUserKeyRequest); - expect(request.key).toBeUndefined(); - expect(request.sharedKey).toEqualBuffer(tunnel.encapsulatedKey.dataBytes); - expect(request.encryptedKey).toEqualBuffer(protectedKey); - expect(request.tunnelVersion).toBe(TunnelVersion.RSA_ENCAPSULATED_AES_256_GCM); - - expect(tunnel.protect).toHaveBeenCalledWith(masterKey.encKey); - }); -}); - -describe("KeyConnectorGetUserKeyRequest", () => { - const tunnel = { - protect: jest.fn(), - encapsulatedKey: makeEncString("encapsulatedKey"), - } as any; - - it("creates a cleartext instance", async () => { - tunnel.tunnelVersion = TunnelVersion.CLEAR_TEXT; - const request = KeyConnectorGetUserKeyRequest.BuildForTunnel(tunnel); - - expect(request).toBeInstanceOf(KeyConnectorGetUserKeyRequest); - expect(request.tunnelVersion).toBeUndefined(); - expect(request.sharedKey).toBeUndefined(); - }); - - it("creates an encapsulated instance", async () => { - tunnel.tunnelVersion = TunnelVersion.RSA_ENCAPSULATED_AES_256_GCM; - const request = KeyConnectorGetUserKeyRequest.BuildForTunnel(tunnel); - - expect(request).toBeInstanceOf(KeyConnectorGetUserKeyRequest); - expect(request.tunnelVersion).toBe(TunnelVersion.RSA_ENCAPSULATED_AES_256_GCM); - expect(request.sharedKey).toEqualBuffer(tunnel.encapsulatedKey.dataBytes); - }); -}); diff --git a/libs/common/src/auth/models/request/key-connector-user-key.request.ts b/libs/common/src/auth/models/request/key-connector-user-key.request.ts index 48c0d6a87fb..1e8829fe30b 100644 --- a/libs/common/src/auth/models/request/key-connector-user-key.request.ts +++ b/libs/common/src/auth/models/request/key-connector-user-key.request.ts @@ -1,9 +1,5 @@ import { UserId } from "../../../types/guid"; -/** - * @typedef { import("../response/key-connector-init-communication.response").KeyConnectorInitCommunicationResponse } KeyConnectorInitCommunicationResponse - */ - export class KeyConnectorSetUserKeyRequest { /** * diff --git a/libs/common/src/auth/models/response/init-tunnel.response.ts b/libs/common/src/auth/models/response/init-tunnel.response.ts index 83168485df7..ccbe7e4e359 100644 --- a/libs/common/src/auth/models/response/init-tunnel.response.ts +++ b/libs/common/src/auth/models/response/init-tunnel.response.ts @@ -5,6 +5,9 @@ export class InitTunnelResponse extends BaseResponse { readonly encapsulationKey: Uint8Array; readonly tunnelVersion: TunnelVersion; readonly tunnelIdentifier: string; + /** + * Can be used to pro-actively re-up tunnels in the future. + */ readonly tunnelDurationSeconds: number; constructor(response: any) {