diff --git a/E2ETests/OAuthServiceTest.cs b/E2ETests/OAuthServiceTest.cs
index bb7bdc5e37e0e3b8c438c96f1f45917558a39afa..c00e31940dd921e3c79c8e71abbdf36158b028b8 100644
--- a/E2ETests/OAuthServiceTest.cs
+++ b/E2ETests/OAuthServiceTest.cs
@@ -47,7 +47,7 @@ public class OAuthServiceTest {
 
     [Test]
     public void GetAccessToken_ExpiresInShouldBe1800_WithoutScope() {
-        var token = _oAuthService.GetTokenAsync(_clientId, _clientSecret).Result;
+        var token = _oAuthService.AuthenticateAsync(_clientId, _clientSecret).Result;
         token.Should().NotBeNull();
         token!.ExpiresIn.Should().Be(1800);
         token.Scope.Should().Be("send:region:DE");
@@ -55,7 +55,7 @@ public class OAuthServiceTest {
 
     [Test]
     public void GetAccessToken_ScopeShouldMatch_WithScope() {
-        var token = _oAuthService.GetTokenAsync(_clientId, _clientSecret, "send:region:DE01010")
+        var token = _oAuthService.AuthenticateAsync(_clientId, _clientSecret, "send:region:DE01010")
             .Result;
         token.Should().NotBeNull();
         token!.ExpiresIn.Should().Be(1800);
diff --git a/FitConnect/BaseClasses/FunctionalBaseClass.cs b/FitConnect/BaseClasses/FunctionalBaseClass.cs
index f5eaba499a863934da001648c64b95f8ccf8ebc7..99143f74a7a8c35828c2ef7d2065039e79906fa9 100644
--- a/FitConnect/BaseClasses/FunctionalBaseClass.cs
+++ b/FitConnect/BaseClasses/FunctionalBaseClass.cs
@@ -41,8 +41,8 @@ public abstract class FunctionalBaseClass {
     /// <param name="clientSecret"></param>
     /// <param name="scope"></param>
     /// <returns></returns>
-    public Task<OAuthAccessToken?> GetOAuthTokenAsync(string clientId, string clientSecret, string? scope) {
-        return ApiService.OAuthService.GetTokenAsync(clientId, clientSecret, scope);
+    public Task<OAuthAccessToken?> AuthenticateAsync(string clientId, string clientSecret, string? scope) {
+        return ApiService.OAuthService.AuthenticateAsync(clientId, clientSecret, scope);
     }
 
     /// <summary>
diff --git a/FitConnect/Client.cs b/FitConnect/Client.cs
index ea32ff5c5c437d4a8417fb9a42cc5e2370911cbd..c7a95da841f021445eb8a6abd70fdfc13a8cf020 100644
--- a/FitConnect/Client.cs
+++ b/FitConnect/Client.cs
@@ -61,7 +61,7 @@ public class Client {
 
         // Anlagen verschlüsseln
         var encryptedAttachments = submission.Attachments
-            .Select(a => _sender.EncryptAttachment(a)).ToList();
+            .Select(a => _sender.Encrypt("", a)).ToList();
 
         // Anlagen hochladen
         await _sender.UploadAttachmentsAsync(encryptedAttachments);
@@ -70,7 +70,7 @@ public class Client {
         var metaData = await _sender.CreateMetadataAsync("", new byte[] { });
 
         // Fachdaten verschlüsseln
-        var encryptedData = _sender.EncryptDataAsync(submission.Data);
+        var encryptedData = _sender.Encrypt("", submission.Data);
 
         // Fachdaten & Metadaten hochladen und Einreichung absenden
         await _sender.SubmitSubmissionAsync(submission);
diff --git a/FitConnect/Sender.cs b/FitConnect/Sender.cs
index 906240e4697f1961e1b00016a58cf451fab4f17b..76245eb25a091ebce732bb5ebcc5f48a7d98c15a 100644
--- a/FitConnect/Sender.cs
+++ b/FitConnect/Sender.cs
@@ -21,15 +21,11 @@ public class Sender : FunctionalBaseClass {
         throw new NotImplementedException();
     }
 
-    /// <summary>
-    ///     Encrypt attachments (Anhänge)
-    /// </summary>
-    /// <param name="attachment"></param>
-    /// <returns></returns>
-    public async Task<string> EncryptAttachment(string attachment, string publicKey) {
+    public async Task<string> Encrypt(string publicKey, byte[] attachment) {
         throw new NotImplementedException();
     }
 
+
     /// <summary>
     ///     Create Metadata incl. Hash
     /// </summary>
@@ -50,11 +46,11 @@ public class Sender : FunctionalBaseClass {
     }
 
     /// <summary>
-    ///     Encrypt Data (Fachdaten)
+    ///     Encrypt Data
     /// </summary>
     /// <param name="data"></param>
     /// <returns></returns>
-    public string EncryptDataAsync(string? data) {
+    public string Encrypt(string publicKey, string? data) {
         if (data == null) return "";
         throw new NotImplementedException();
     }
@@ -62,9 +58,10 @@ public class Sender : FunctionalBaseClass {
     /// <summary>
     ///     Encrypt attachments (Anhänge)
     /// </summary>
+    /// <param name="publicKey"></param>
     /// <param name="attachment"></param>
     /// <returns></returns>
-    public KeyValuePair<string, string> EncryptAttachment(Attachment attachment) {
+    public KeyValuePair<string, string> Encrypt(string publicKey, Attachment attachment) {
         throw new NotImplementedException();
     }
 
diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs
index eaf535549d9ed95fabde9213c6cd4c41c2920d33..59dc16f21b0b3fffb1e3ba23126a93694f314622 100644
--- a/FitConnect/Subscriber.cs
+++ b/FitConnect/Subscriber.cs
@@ -35,18 +35,20 @@ public class Subscriber : FunctionalBaseClass {
     /// <summary>
     ///     Decrypt Data (Fachdaten)
     /// </summary>
+    /// <param name="privateKey"></param>
     /// <param name="data">(Fachdaten)</param>
     /// <returns></returns>
-    public async Task<string> DecryptDataAsync(string data) {
+    public async Task<string> DecryptToStringAsync(string privateKey, string data) {
         throw new NotImplementedException();
     }
 
     /// <summary>
     ///     Decrypt attachments (Anhänge)
     /// </summary>
-    /// <param name="attachment">Encrypted attachments</param>
+    /// <param name="privateKey"></param>
+    /// <param name="data">Encrypted attachments</param>
     /// <returns></returns>
-    public async Task<byte[]> DecryptAttachmentAsync(string attachment) {
+    public async Task<byte[]> DecryptToBytesAsync(string privateKey, string data) {
         throw new NotImplementedException();
     }
 
diff --git a/Services/OAuthService.cs b/Services/OAuthService.cs
index bc1d939fe0dd0f45825866950cb405cdb374675f..af61802a897b1a303bb23ce0463932c2585e65f8 100644
--- a/Services/OAuthService.cs
+++ b/Services/OAuthService.cs
@@ -23,7 +23,7 @@ public class OAuthService {
     /// <param name="clientSecret">Your client Secret</param>
     /// <param name="scope">Scope if needed</param>
     /// <returns>The received token or null</returns>
-    public async Task<OAuthAccessToken?> GetTokenAsync(string clientId, string clientSecret,
+    public async Task<OAuthAccessToken?> AuthenticateAsync(string clientId, string clientSecret,
         string? scope = null) {
         var client = new HttpClient();
         client.DefaultRequestHeaders.Accept.Add(