public static List enum_certificates(string store_name) { X509Store store = null; try { store = new X509Store(store_name, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); var result = new List(); foreach (var cert in store.Certificates) { string format = cert.GetFormat(); switch (format) { case "X509": format = "x509_asn"; break; default: format = "unknown"; break; } var set = new SetCollection(); bool found = false; foreach (var ext in cert.Extensions) { var keyUsage = ext as X509EnhancedKeyUsageExtension; if (keyUsage != null) { foreach (var oid in keyUsage.EnhancedKeyUsages) { set.add(oid.Value); } found = true; break; } } result.Add(PythonTuple.MakeTuple(new Bytes(cert.RawData.ToList()), format, found ? set : ScriptingRuntimeHelpers.True)); } return(result); } catch { } finally { if (store != null) { #if NETSTANDARD store.Dispose(); #else store.Close(); #endif } } return(new List()); }
private object UpdateStack(object res) { ProcStack curStack = _stack.Peek(); switch (curStack.StackType) { case StackType.Dict: PythonDictionary od = curStack.StackObj as PythonDictionary; if (curStack.HaveKey) { od[curStack.Key] = res; curStack.HaveKey = false; } else { curStack.HaveKey = true; curStack.Key = res; } break; case StackType.Tuple: List <object> objs = curStack.StackObj as List <object>; objs.Add(res); curStack.StackCount--; if (curStack.StackCount == 0) { _stack.Pop(); object tuple = PythonTuple.Make(objs); if (_stack.Count == 0) { _result = tuple; } return(tuple); } break; case StackType.List: PythonList ol = curStack.StackObj as PythonList; ol.AddNoLock(res); curStack.StackCount--; if (curStack.StackCount == 0) { _stack.Pop(); if (_stack.Count == 0) { _result = ol; } return(ol); } break; case StackType.Set: SetCollection os = curStack.StackObj as SetCollection; os.add(res); curStack.StackCount--; if (curStack.StackCount == 0) { _stack.Pop(); if (_stack.Count == 0) { _result = os; } return(os); } break; case StackType.FrozenSet: List <object> ofs = curStack.StackObj as List <object>; ofs.Add(res); curStack.StackCount--; if (curStack.StackCount == 0) { _stack.Pop(); object frozenSet = FrozenSetCollection.Make(TypeCache.FrozenSet, ofs); if (_stack.Count == 0) { _result = frozenSet; } return(frozenSet); } break; } return(null); }