Exemplo n.º 1
0
 public static RSACryptoServiceProvider DecodePrivateKey(byte[] archivo, string pass, string format)
 {
     try
     {
         if (format == ".pem")
         {
             var datos = Encoding.ASCII.GetString(archivo);
             datos   = datos.Replace("-----BEGIN ENCRYPTED PRIVATE KEY-----", "");
             datos   = datos.Replace("-----END ENCRYPTED PRIVATE KEY-----", "");
             archivo = Convert.FromBase64String(datos);
         }
         var key = PrivateKeyFactory.DecryptKey(pass.ToCharArray(), archivo);
         RsaPrivateCrtKeyParameters pars = (RsaPrivateCrtKeyParameters)key;
         RSAParameters            parms  = DotNetUtils.ToRSAParameters(pars);
         RSACryptoServiceProvider rsa    = new RSACryptoServiceProvider();
         rsa.ImportParameters(parms);
         return(rsa);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }