diff --git a/dist/services/CryptoService/CryptoServiceNode.d.ts b/dist/services/CryptoService/CryptoServiceNode.d.ts
index 9b91b3caabc22a7c3cd53dabfb017c040546a537..882cbc3426402696ae2dfac619dcbdf9ab204e03 100644
--- a/dist/services/CryptoService/CryptoServiceNode.d.ts
+++ b/dist/services/CryptoService/CryptoServiceNode.d.ts
@@ -1,8 +1,8 @@
 /// <reference types="node" />
 import { AESGCMOutput, RSAKeys, ICryptoService } from "./ICryptoService";
 declare class CryptoServiceNode implements ICryptoService {
-    encryptAESGCM(data: string): Promise<AESGCMOutput>;
-    encryptAESGCM(data: ArrayBuffer): Promise<AESGCMOutput>;
+    encryptAESGCM(data: string, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
+    encryptAESGCM(data: ArrayBuffer, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
     decryptAESGCM(data: ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer): Promise<string>;
     decryptAESGCM(data: ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, returnBuffer: true): Promise<ArrayBuffer>;
     generateRSAKeys(): Promise<RSAKeys>;
diff --git a/dist/services/CryptoService/CryptoServiceWeb.d.ts b/dist/services/CryptoService/CryptoServiceWeb.d.ts
index 3ab743beca0bad3313a4e703de3d659fcd3aaa02..3db528f5803cc287e7b19ec07847f8765a940306 100644
--- a/dist/services/CryptoService/CryptoServiceWeb.d.ts
+++ b/dist/services/CryptoService/CryptoServiceWeb.d.ts
@@ -1,7 +1,8 @@
+/// <reference types="node" />
 import { AESGCMOutput, ICryptoService, RSAKeys } from "./ICryptoService";
 declare class CryptoServiceWeb implements ICryptoService {
-    encryptAESGCM(data: string): Promise<AESGCMOutput>;
-    encryptAESGCM(data: ArrayBuffer): Promise<AESGCMOutput>;
+    encryptAESGCM(data: string, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
+    encryptAESGCM(data: ArrayBuffer, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
     decryptAESGCM(data: ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer): Promise<string>;
     decryptAESGCM(data: ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, returnBuffer: true): Promise<ArrayBuffer>;
     verifyRSASignature(publicKeyPEM: string, data: ArrayBuffer, signature: ArrayBuffer): Promise<boolean>;
diff --git a/dist/services/CryptoService/ICryptoService.d.ts b/dist/services/CryptoService/ICryptoService.d.ts
index 9bbea01ae3b7796f6eeda8329a49eb082af2c685..8193da99eafb83c2f4e8268ee450a6cd5b3ad7a7 100644
--- a/dist/services/CryptoService/ICryptoService.d.ts
+++ b/dist/services/CryptoService/ICryptoService.d.ts
@@ -10,7 +10,7 @@ export interface RSAKeys {
 }
 export interface ICryptoService {
     encryptAESGCM: {
-        (data: string): Promise<AESGCMOutput>;
+        (data: string, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
         (data: ArrayBuffer, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
     };
     decryptAESGCM: {
diff --git a/src/services/CryptoService/CryptoServiceNode.ts b/src/services/CryptoService/CryptoServiceNode.ts
index 5f5163d15807e8debfab33706e807ebb66b19352..addea23b55e26241494508ceb452d7ee9621bbdb 100644
--- a/src/services/CryptoService/CryptoServiceNode.ts
+++ b/src/services/CryptoService/CryptoServiceNode.ts
@@ -23,8 +23,16 @@ const getBytes = (
 };
 
 class CryptoServiceNode implements ICryptoService {
-  public async encryptAESGCM(data: string): Promise<AESGCMOutput>;
-  public async encryptAESGCM(data: ArrayBuffer): Promise<AESGCMOutput>;
+  public async encryptAESGCM(
+    data: string,
+    key?: Buffer,
+    iv?: Buffer
+  ): Promise<AESGCMOutput>;
+  public async encryptAESGCM(
+    data: ArrayBuffer,
+    key?: Buffer,
+    iv?: Buffer
+  ): Promise<AESGCMOutput>;
   public async encryptAESGCM(
     data: string | ArrayBuffer,
     key?: Buffer,
diff --git a/src/services/CryptoService/CryptoServiceWeb.ts b/src/services/CryptoService/CryptoServiceWeb.ts
index 831e038306a39eb403591c5775480f77b16555e0..b11809e18f7303c1556bcd5fc4e89a702f5bf92f 100644
--- a/src/services/CryptoService/CryptoServiceWeb.ts
+++ b/src/services/CryptoService/CryptoServiceWeb.ts
@@ -39,8 +39,16 @@ const getBytes = (value: string | ArrayBuffer, encoding): ArrayBuffer => {
 };
 
 class CryptoServiceWeb implements ICryptoService {
-  public async encryptAESGCM(data: string): Promise<AESGCMOutput>;
-  public async encryptAESGCM(data: ArrayBuffer): Promise<AESGCMOutput>;
+  public async encryptAESGCM(
+    data: string,
+    key?: Buffer,
+    iv?: Buffer
+  ): Promise<AESGCMOutput>;
+  public async encryptAESGCM(
+    data: ArrayBuffer,
+    key?: Buffer,
+    iv?: Buffer
+  ): Promise<AESGCMOutput>;
   public async encryptAESGCM(
     data: string | ArrayBuffer,
     key?: Buffer | CryptoKey,
diff --git a/src/services/CryptoService/ICryptoService.ts b/src/services/CryptoService/ICryptoService.ts
index 0867a3b80ce04f260f99ddd5dca1d652596e578e..d0d4dc9da01090ed6bd4e217829bd13dfdeb828a 100644
--- a/src/services/CryptoService/ICryptoService.ts
+++ b/src/services/CryptoService/ICryptoService.ts
@@ -11,7 +11,7 @@ export interface RSAKeys {
 
 export interface ICryptoService {
   encryptAESGCM: {
-    (data: string): Promise<AESGCMOutput>;
+    (data: string, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
     (data: ArrayBuffer, key?: Buffer, iv?: Buffer): Promise<AESGCMOutput>;
   };
   decryptAESGCM: {