diff --git a/FitConnect/EncryptionBaseClass.cs b/FitConnect/EncryptionBaseClass.cs
index 8e7919c0ff00c86116a91255ea1508854a03f519..76e7802a312e7c7c3678ff9ee1c074f8462a6827 100644
--- a/FitConnect/EncryptionBaseClass.cs
+++ b/FitConnect/EncryptionBaseClass.cs
@@ -10,9 +10,12 @@ public class EncryptionBaseClass {
     private RSA? _publicKey;
     private RSA? _privateKey;
 
-    protected EncryptionBaseClass(ILogger? logger) {
+    protected EncryptionBaseClass(ILogger? logger, X509Certificate2? certificate) {
         _logger = logger;
         _rsa = RSA.Create(4096);
+
+        if (certificate != null)
+            ImportCertificate(certificate);
     }
 
 
@@ -31,15 +34,10 @@ public class EncryptionBaseClass {
         }
 
         _publicKey = cert.GetRSAPublicKey();
-        // _publicKey = RSA.Create(2048);
-        // _publicKey.ImportRSAPublicKey(cert.GetPublicKey(), out int _);
 
         if ((_publicKey?.KeySize ?? 0) == 0)
             throw new Exception("Invalid certificate, no public key");
 
-        _logger.LogInformation("Public key imported {}",
-            Convert.ToBase64String(_publicKey.ExportRSAPrivateKey()));
-
         if (cert.HasPrivateKey) {
             _privateKey = cert.GetRSAPrivateKey();
         }
diff --git a/FitConnect/FunctionalBaseClass.cs b/FitConnect/FunctionalBaseClass.cs
index 844b2fe928b0703b19f3eeb3e45b2b0896667352..787a62d167b9ef9e712eb25bcac3df4512e4056f 100644
--- a/FitConnect/FunctionalBaseClass.cs
+++ b/FitConnect/FunctionalBaseClass.cs
@@ -1,5 +1,6 @@
 using System.Net.Http.Headers;
 using System.Net.Http.Json;
+using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using FitConnect.Models;
 using Microsoft.Extensions.Logging;
@@ -15,7 +16,7 @@ public class FunctionalBaseClass : EncryptionBaseClass {
     /// </summary>
     /// <param name="logger">ILogger implementation</param>
     /// <param name="endpoints">FitConnect endpoints</param>
-    protected FunctionalBaseClass(ILogger? logger, FitConnectEndpoints? endpoints) : base(logger) {
+    protected FunctionalBaseClass(ILogger? logger, FitConnectEndpoints? endpoints, X509Certificate2? certificate) : base(logger, certificate) {
         Endpoints = endpoints ??
                     FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development);
 
diff --git a/FitConnect/Sender.cs b/FitConnect/Sender.cs
index aea7797415c5d49c82a8b4426ef1075d8e36d185..f5172c83a8c885106dfe090639e979f1f6a71ac1 100644
--- a/FitConnect/Sender.cs
+++ b/FitConnect/Sender.cs
@@ -1,13 +1,14 @@
 using System.Buffers.Text;
 using System.ComponentModel;
 using System.Security.Cryptography;
+using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using Microsoft.Extensions.Logging;
 
 namespace FitConnect;
 
 public class Sender : FunctionalBaseClass {
-    public Sender(ILogger? logger, FitConnectEndpoints endpoints) : base(logger, endpoints) {
+    public Sender(ILogger? logger, FitConnectEndpoints endpoints, X509Certificate2? certificate = null) : base(logger, endpoints, certificate) {
     }
 
     /// <summary>
diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs
index d96cc0d14feb7da9d956fc536fcafed49776bb1b..47ec56c1cb50a700e9efb2d0e22b11589e3c522c 100644
--- a/FitConnect/Subscriber.cs
+++ b/FitConnect/Subscriber.cs
@@ -1,4 +1,5 @@
 using System.Reflection;
+using System.Security.Cryptography.X509Certificates;
 using FitConnect.Models;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json.Linq;
@@ -7,7 +8,8 @@ using Newtonsoft.Json.Schema;
 namespace FitConnect;
 
 public class Subscriber : FunctionalBaseClass {
-    public Subscriber(ILogger logger, FitConnectEndpoints endpoints) : base(logger, endpoints) {
+    public Subscriber(ILogger logger, FitConnectEndpoints endpoints,
+        X509Certificate2? certificate = null) : base(logger, endpoints, certificate) {
     }
 
 
diff --git a/SenderTest/SenderEncryptionWithImportedCertificateTest.cs b/SenderTest/SenderEncryptionWithImportedCertificateTest.cs
index 772bcfde18b62e23b2591303d38c739db24c393b..16507d1f6b673b43b404fe61a79583a65b4ba328 100644
--- a/SenderTest/SenderEncryptionWithImportedCertificateTest.cs
+++ b/SenderTest/SenderEncryptionWithImportedCertificateTest.cs
@@ -1,4 +1,44 @@
+using System.Security.Cryptography.X509Certificates;
+using FitConnect;
+using Microsoft.Extensions.Logging;
+using NUnit.Framework;
+
 namespace SenderTest;
 
 public class SenderEncryptionWithImportedCertificateTest {
+    private Sender _sender = null!;
+    private ILogger _logger = null!;
+
+    [OneTimeSetUp]
+    public void OneTimeSetUp() {
+        // Import certificate
+        
+    }
+
+    [SetUp]
+    public void SetUp() {
+        // Create a new Sender
+        var fileName = "certificate.pfx";
+        var cert = new X509Certificate2(fileName);
+        _logger = LoggerFactory.Create(cfg => cfg.AddConsole())
+            .CreateLogger<SenderEncryptionWithSelfSignedCertificateTest>();
+
+        _sender = new Sender(_logger,
+            FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development), cert);
+    }
+
+    [TearDown]
+    public void TearDown() {
+        // Dispose the Sender
+    }
+
+    [OneTimeTearDown]
+    public void OneTimeTearDown() {
+        // Delete certificate
+    }
+
+    [Test]
+    public void TestEncryption() {
+        // Encrypt a message
+    }
 }
diff --git a/SenderTest/SenderEncryptionWithSelfSignedCertificateTest.cs b/SenderTest/SenderEncryptionWithSelfSignedCertificateTest.cs
index b9ee72802b98f9da0cc3eac0c3e3dd410f576ed3..e6468cf666611fd04923c5a66185ad5f5311c3a9 100644
--- a/SenderTest/SenderEncryptionWithSelfSignedCertificateTest.cs
+++ b/SenderTest/SenderEncryptionWithSelfSignedCertificateTest.cs
@@ -4,6 +4,7 @@ using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using FitConnect;
+using FluentAssertions;
 using Microsoft.Extensions.Logging;
 using NUnit.Framework;
 
@@ -13,6 +14,10 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
     private Sender _sender = null!;
     private ILogger<SenderEncryptionWithSelfSignedCertificateTest> _logger = null!;
     private X509Certificate2 _certificate = null!;
+    private static byte[]? cypher;
+
+    private const string ToEncrypt = "This is a test message";
+
 
     /*
      * Encryption test must be changed for production to only allow extern signed certificates
@@ -43,12 +48,20 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
 
 
     [Test]
+    [Order(10)]
     public void CryptWithOutPublicKeyImport() {
-        var cypher = _sender.EncryptData(Encoding.UTF8.GetBytes("test"));
+        cypher = _sender.EncryptData(Encoding.UTF8.GetBytes(ToEncrypt));
 
         _logger.LogInformation("Cypher: {}", Convert.ToBase64String(cypher));
     }
 
+    [Test]
+    [Order(20)]
+    public void Decrypt_ResultShouldMatchToEncrypt() {
+        var result = _sender.DecryptDataAsync(cypher!);
+        Encoding.UTF8.GetString(result).Should().Be(ToEncrypt);
+    }
+
 
     [Test]
     public void ExportPrivateKey() {
@@ -67,8 +80,13 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
     /// <returns></returns>
     /// <exception cref="Exception"></exception>
     private X509Certificate2 CreateSelfSignedCertificate(string? exportPath = null) {
-        var req = new CertificateRequest("cn=foobar", ECDsa.Create(), HashAlgorithmName.SHA256);
-        var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5));
+        var rsa = RSA.Create(4096);
+
+        var req = new CertificateRequest("c=DE, cn=fitconnect.de",
+            rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
+
+        var cert = req.CreateSelfSigned(DateTimeOffset.Now.AddSeconds(-5),
+            DateTimeOffset.Now.AddYears(5));
 
         if (cert.GetRSAPublicKey() == null)
             throw new Exception("Certificate does not contain a public key");