예제 #1
0
        public static string RsaDecrypt(this string encryptText)
        {
            try
            {
                //first, get our bytes back from the base64 string ...
                var bytesCypherText = Convert.FromBase64String(encryptText);

                //we want to decrypt, therefore we need a csp and load our private key

                var pemReader = new PemReader(File.OpenText(@"privatekey.pem"));
                var rsaCryptoServiceProvider = new RSACryptoServiceProvider();
                rsaCryptoServiceProvider.ImportParameters(pemReader.ReadPrivatekey());

                //decrypt and strip pkcs#1.5 padding
                var bytesPlainTextData = rsaCryptoServiceProvider.Decrypt(bytesCypherText, false);

                //get our original plainText back...
                var plainTextData = Encoding.UTF8.GetString(bytesPlainTextData);

                return(plainTextData);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
예제 #2
0
 private void InitializeRsa()
 {
     using (RSA publicRsa = RSA.Create())
     {
         var publicKeyXml = _settings.UseRsaFilePath ?
                            System.IO.File.ReadAllText(_settings.RsaPublicKeyXML) :
                            _settings.RsaPublicKeyXML;
         RSACryptoServiceProviderExtensions.FromXmlString(publicRsa, publicKeyXml);
         _issuerSigningKey = new RsaSecurityKey(publicRsa);
     }
     if (_settings.RsaPrivateKey.Empty())
     {
         return;
     }
     using (RSA privateRsa = RSA.Create())
     {
         if (_settings.UseRsaFilePath)
         {
             using (var streamReader = File.OpenText(_settings.RsaPrivateKey))
             {
                 var pemReader = new PemReader(streamReader);
                 privateRsa.ImportParameters(pemReader.ReadPrivatekey());
             }
         }
         else
         {
             using (var stringReader = new StringReader(_settings.RsaPrivateKey))
             {
                 var pemReader = new PemReader(stringReader);
                 privateRsa.ImportParameters(pemReader.ReadPrivatekey());
             }
         }
         var privateKey = new RsaSecurityKey(privateRsa);
         _signingCredentials = new SigningCredentials(privateKey, SecurityAlgorithms.RsaSha256);
     }
 }