private static void ParseDekAlgName( string dekAlgName, out PemBaseAlg baseAlg, out PemMode mode) { try { mode = PemMode.ECB; if (dekAlgName == "DES-EDE" || dekAlgName == "DES-EDE3") { baseAlg = (PemBaseAlg)Enums.GetEnumValue(typeof(PemBaseAlg), dekAlgName); return; } int pos = dekAlgName.LastIndexOf('-'); if (pos >= 0) { baseAlg = (PemBaseAlg)Enums.GetEnumValue(typeof(PemBaseAlg), dekAlgName.Substring(0, pos)); mode = (PemMode)Enums.GetEnumValue(typeof(PemMode), dekAlgName.Substring(pos + 1)); return; } } catch (ArgumentException) { } throw new EncryptionException("Unknown DEK algorithm: " + dekAlgName); }