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); } }