public string Encrypt(string plainTextMessage, IPublicKeyProvider publicKeyProvider) { var publicKey = AsymetricKeyParameterExtensions .GetPublicKeyFromString(publicKeyProvider .GetPublicKeyString(folderProvider.GetFolderName())); var csp = new RSACryptoServiceProvider(2048); csp.ImportParameters(publicKey); var bytesPlainText = Encoding.Unicode.GetBytes(plainTextMessage); var bytesCipherText = csp.Encrypt(bytesPlainText, false); return(Convert.ToBase64String(bytesCipherText)); }
public void SaveKeyPair(AsymmetricCipherKeyPair keyPair, string folderName) { var publicKey = AsymetricKeyParameterExtensions.GetKeyStringFromParameter(keyPair.Public); var privateKey = AsymetricKeyParameterExtensions.GetKeyStringFromParameter(keyPair.Private); var basePath = Path.Combine(AppDataFolder, $"{folderName}.data"); Directory.CreateDirectory(basePath); var publicKeyPath = Path.Combine(basePath, "public.pem"); var privateKeyPath = Path.Combine(basePath, "private.pem"); File.WriteAllText(publicKeyPath, publicKey); File.WriteAllText(privateKeyPath, privateKey); }