static void Main(string[] args) { try { //Friendly name Argument if (args.Length > 0) { _FriendlyName = args[0]; } //Certpath argument if (args.Length > 1) { _CertPath = args[1]; } //Set and open the Store _oCurrStore = new StoreClass(); _oCurrStore.Open( CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE, _currStoreName, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); //Call the import certificate function importCert(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(args[0]); } }
public void SetForType_SetValueIsRetrieved() { var storeValue = new StoreClass(); _store.SetForType <TestClass>(storeValue); Assert.AreSame(storeValue, _store.GetForType <TestClass>()); }
public void GetForType_DefinedForInterface_FetchedOnClass_ReturnsStoredValue() { var storeValue = new StoreClass(); _store.SetForType <ITestClass>(storeValue); Assert.AreSame(storeValue, _store.GetForType <TestClass>()); }
public MainPage() { this.InitializeComponent(); DataContext = this; StoreClass store = new StoreClass(); InStockList.ItemsSource = store.GetCurrentStockList(); StockToAddList.ItemsSource = store.GetCurrentDeliverysList(); CustomerList = new ObservableCollection <CustomerClass>(store.GetCurrentCustomerList()); StockList = new ObservableCollection <StockClass>(store.GetCurrentStockList()); #region OLD //this.CreateOrderTabCustomersComboBox.ItemsSource = store.GetCurrentStockList(); //InStockList.ItemsSource = dataSets.GetDefaultStockList(); //StockToAddList.ItemsSource = dataSets.GetDefaultDeliverysList(); //CustomerList = store.GetCurrentCustomerList(); //CustomerList = dataSets.GetDefaultCustomerList(); #endregion #region OLD //PopulateCustomerComboBox(store); //PopulateCreateOrderComboBox(store); #endregion }
/// <summary> /// 初始化页面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> protected void Page_Load(object sender, EventArgs e) { string username = Request.QueryString["username"]; if (!userLogin.CheckLogin(username)) { string js = "alert('" + GetLangStr("Department18", "您没有登录或操作超时,请重新登录!") + "');window.top.location.href='" + StaticInfo.LoginPage + "'"; System.Web.HttpContext.Current.Response.Write("<script type='text/javascript'>" + js + "</script>"); return; } if (!X.IsAjaxRequest) { SystemID = "00"; StoreClass.DataSource = GetRedisData.GetData("t_sys_code:140004"); StoreClass.DataBind(); DataTable dt = settingManager.GetConfigDepartment(SystemID);//Bll.Common.ChangColName(ToDataTable(GetRedisData.GetData("t_cfg_department").Select("", "class asc,departid asc"))); while (dt.Columns.Count > 3) { dt.Columns.RemoveAt(3); } dtSsjg = dt; Storedepart.DataSource = dt; jgname = dt.Rows[0]["col2"].ToString(); Storedepart.DataBind(); FirstGetSysConfig(); UserInfo userinfo = Session["Userinfo"] as UserInfo; uName = userinfo.UserName; nowIp = userinfo.NowIp; logManager.InsertLogRunning(userinfo.UserName, GetLangStr("Department18", "访问:") + Request.QueryString["funcname"], userinfo.NowIp, "0"); } this.DataBind(); }
public ResultJSON <List <Store> > GetByClass(StoreClass sc) { return(new ResultJSON <List <Store> > { Code = 0, Data = r.GetByClass(sc) }); }
public ActionResult Edit([Bind(Include = "StoreClassID,ClassName,ClassDescription")] StoreClass storeClass) { if (ModelState.IsValid) { db.Entry(storeClass).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(storeClass)); }
public void SetForType_SetValueOverridesExisting() { var storeValue = new StoreClass(); _store.SetForType <TestClass>(storeValue); var newStoreValue = new StoreClass(); _store.SetForType <TestClass>(newStoreValue); Assert.AreSame(newStoreValue, _store.GetForType <TestClass>()); }
private byte[] CoSignBuffer(byte[] data, byte[] signdata) { X509Certificate2 m_cert = cbCerts.SelectedItem as X509Certificate2; if (m_cert == null) { MessageBox.Show("не найден сертификат!"); return(null); } SignedData signedData = new SignedDataClass(); Utilities utilities = new UtilitiesClass(); byte[] array = data; Signer signer = new SignerClass(); IStore store = new StoreClass(); bool flag2 = false; store.Open(CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY); foreach (ICertificate certificate in store.Certificates) { if (certificate.Thumbprint == m_cert.Thumbprint) { signer.Certificate = certificate; flag2 = true; break; } } if (!flag2) { throw new Exception("Не удалось найти сертификат подписи!"); } CapiComRCW.Attribute attribute = new AttributeClass(); attribute.Name = CAPICOM_ATTRIBUTE.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME; attribute.Value = DateTime.Now.ToUniversalTime(); signer.AuthenticatedAttributes.Add(attribute); byte[] array3; byte[] array2 = signdata; ((CapiComRCW.ISignedData)signedData).set_Content(utilities.ByteArrayToBinaryString(array)); signedData.Verify(Convert.ToBase64String(array2), true, CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_ONLY); Store store2 = new StoreClass(); store2.Open(CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, "AddressBook", CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_WRITE); for (int i = 1; i <= signedData.Signers.Count; i++) { Signer signer2 = (Signer)signedData.Signers[i]; Certificate pVal = (Certificate)signer2.Certificate; store2.Add(pVal); } store2.Close(); string s = signedData.CoSign(signer, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64); array3 = Convert.FromBase64String(s); return(array3); }
public ActionResult Create([Bind(Include = "StoreClassID,ClassName,ClassDescription")] StoreClass storeClass) { if (ModelState.IsValid) { db.StoreClasses.Add(storeClass); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(storeClass)); }
public List <Store> GetByClass(StoreClass sc) { if (sc == StoreClass.全部) { return(LoadPageList(1, 30, out int count, true, false, s => s.StoreClass == StoreClass.存储仓 || s.StoreClass == StoreClass.销售仓).OrderBy(s => s.Name).ToList()); } else { return(LoadPageList(1, 30, out int count, true, false, s => s.StoreClass == sc).OrderBy(s => s.Name).ToList()); } }
public void NewStoreHasStock() { // arrange & act StoreClass SUT = new StoreClass("Test Name"); // assert foreach (KeyValuePair <string, int> entry in SUT.Invantory) { Assert.NotEqual(0, entry.Value); } }
internal static Store Map(StoreClass location) { return(new Store { StoreId = location.StoreID, StoreName = location.Name, Street = location.Address.Street, Street2 = location.Address.Apartment, City = location.Address.City, Zip = location.Address.Zip, State = location.Address.State }); }
public MainPage() { this.InitializeComponent(); DataContext = this; StoreClass store = new StoreClass(); InStockList.ItemsSource = store.GetCurrentStockList(); StockToAddList.ItemsSource = store.GetCurrentDeliverysList(); CustomerList = new ObservableCollection <CustomerClass>(store.GetCurrentCustomerList()); StockList = new ObservableCollection <StockClass>(store.GetCurrentStockList()); CustomerOrders = new ObservableCollection <CustomerOrderClass>(store.GetCurrentCustomerOrders()); }
public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } StoreClass storeClass = db.StoreClasses.Find(id); if (storeClass == null) { return(HttpNotFound()); } return(View(storeClass)); }
internal static StoreUI Map(StoreClass Store) { if (Store == null) { return(null); } return(new StoreUI { StoreID = Store.StoreID, Name = Store.Name, Invantory = Store.Invantory, Address = Map(Store.Address) }); }
static void Main(string[] args) { //We take one argument, a starting store name if (args.Length > 0) { _currStoreName = args[0]; } _oCurrStore = new StoreClass(); _oCurrStore.Open( CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, _currStoreName, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); waitForInput(); }
public ActionResult DeleteConfirmed(int id) { StoreClass storeClass = db.StoreClasses.Find(id); var hasDate = db.ClassDates.FirstOrDefault(x => x.StoreClassID == id); string className = db.StoreClasses.FirstOrDefault(x => x.StoreClassID == id).ClassName; if (hasDate != null) { ViewBag.ErrorMessageDelete = className + "currently has class dates scheduled and you cannot remove it."; return(View(storeClass)); } db.StoreClasses.Remove(storeClass); db.SaveChanges(); return(RedirectToAction("Index")); }
public bool AddContactCertificate(string strContactID, X509Certificate cert) { if (strContactID == null || strContactID.Length == 0) { throw new ArgumentException("Invalid contact ID", "strContactID"); } if (cert == null) { throw new ArgumentNullException("cert", "Invalid Contact X509 Certificate"); } // Prevent any attempt to add multiple certificates for a contact if (IsContactCertificateInStore(strContactID)) { return(true); } bool bRetVal = true; // Use CAPICOM (v2.0) support to add certificate StoreClass store = new StoreClass(); store.Open(CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE, X509CertificateStore.MyStore, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); // Store certificate // Convert cert to base64 string string strBase64Cert = cert.ToBase64String(); // Save to temp file string strTempFile = Guid.NewGuid().ToString(); StreamWriter sw = new StreamWriter(File.Create(strTempFile)); sw.Write(strBase64Cert); sw.Flush(); sw.Close(); // Load cert from temp file store.Load(strTempFile, Constants.DEFAULT_CERT_PSWD, CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_DEFAULT | CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_EXPORTABLE); // Delete temp file File.Delete(strTempFile); // Close store store.CloseHandle(store.StoreHandle); // Return true return(bRetVal); }
public X509Certificate FindCertificate() { oStore = new StoreClass(); oStore.Open( CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, storeName, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY ); oCerts = (Certificates)oStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, "", false); /*oCerts = (Certificates)oCerts.Find( * CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, filter, false);*/ // foreach(Certificate ocert in oCerts) //Certificates is IEnumerable // { // ocert.Display(); // } //--- get first cert using indexer, retrieve ICertContext and use from managed code ----- if (oCerts.Count > 0) { Certificate firstcert = (Certificate)oCerts[1]; //firstcert.Display() ; ICertContext iCertCntxt = (ICertContext)firstcert; int certcntxt = iCertCntxt.CertContext; IntPtr hCertCntxt = new IntPtr(certcntxt); if (hCertCntxt != IntPtr.Zero) { //use certcontext from managed code string s = ""; s += " CertContext: " + hCertCntxt.ToInt32(); X509Certificate foundcert = new X509Certificate(hCertCntxt); s += " subject name: " + foundcert.GetName(); s += " serial no: " + foundcert.GetSerialNumberString(); s += " hash string:" + foundcert.GetCertHashString(); return(foundcert); } } return(null); }
public void RemoveLocation(StoreClass location) { var orders = _db.PizzaOrder.Where(po => po.StoreId == location.StoreID); foreach (var order in orders) { order.StoreId = 1; } _db.Update(orders); var adds = _db.CustomerAddress.Where(ca => ca.StoreId == location.StoreID); foreach (var add in adds) { add.StoreId = 1; } _db.Update(orders); _db.Remove(_db.Store.Where(s => s.StoreName == location.Name)); Save(); }
public bool RemoveContactCertificate(string strContactID) { if (strContactID == null || strContactID.Length == 0) { throw new ArgumentException("Invalid contact ID", "strContactID"); } // Prevent any attempt to add multiple certificates for a contact if (!IsContactCertificateInStore(strContactID)) { return(true); } bool bRetVal = true; // Use CAPICOM (v2.0) support to remove certificate StoreClass store = new StoreClass(); store.Open(CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE, X509CertificateStore.MyStore, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); // Remove "CN=" prefix from contact ID // Hack because CAPICOM Find by Subject name will not ignore the "CN=" // unlike Microsoft.Web.Services.Security.X509.X509CertificateStore int nStart = strContactID.LastIndexOf("="); strContactID = strContactID.Substring(nStart + 1); // Find the cert to remove Certificates certCol = ((Certificates)store.Certificates).Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, strContactID, false); IEnumerator it = certCol.GetEnumerator(); while (it.MoveNext()) { store.Remove((Certificate)it.Current); } // Close store store.CloseHandle(store.StoreHandle); return(bRetVal); }
/// <summary> /// Loads the Client Certificate from the Certificate Store /// </summary> /// <param name="certStore"></param> /// <param name="isMachineStore"></param> /// <param name="subjectsName"></param> public void LoadCliCertFromCerStore(string certStore, bool isMachineStore, string subjectsName) { try { // Store store = new Store(); // // store.Open(isMachineStore ? CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE : CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, // certStore, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY); // // int nr = 0; // foreach (Certificate cert in store.Certificates) // { // nr++; // if (cert.SubjectName.IndexOf(subjectsName) > 0) // { // ClientCert = cert; // store.Close(); // return; // } // } // store.Close(); StoreClass oStore = new StoreClass(); oStore.Open( CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE, certStore, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_ONLY ); Certificates oCerts = (Certificates)oStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, "", false); if (oCerts.Count > 0) { ClientCert = (Certificate)oCerts[1]; } } catch (COMException e) { throw e; } }
internal static OrderClass Map(PizzaOrder order, CustomerClass customer, StoreClass store) { OrderClass ret = new OrderClass { Store = store, Customer = customer, DeliveryAddress = Map(order.CustomerAddress), OrderID = order.PizzaOrderId, DatePlaced = order.DatePlaced, }; foreach (var PiO in order.PizzasInOrder) { ret.pizzas.Add(Map(PiO.Pizza)); } ret.UpdateTotal(); return(ret); }
// Add item from the Deliveries page to stock. private void BtnAddDeliveredMerchandise_Click(object sender, RoutedEventArgs e) { var parent = (sender as Button).Parent; // Get the objects containing data. TextBox valueToAdd = parent.GetChildrenOfType <TextBox>().First(x => x.Name == "TxtBoxAddQty"); TextBlock valueToCheck = parent.GetChildrenOfType <TextBlock>().First(x => x.Name == "QTY"); TextBlock itemToAdd = parent.GetChildrenOfType <TextBlock>().First(x => x.Name == "ItemName"); string toConvert = valueToAdd.Text; int intValueToAdd = 0; int intValueToCheck = Convert.ToInt32(valueToCheck.Text); if (int.TryParse(toConvert, out intValueToAdd)) { if (intValueToAdd > intValueToCheck) { MessageToUser($"Enter the correct number of stock to submit, maximum number to submit is: {intValueToCheck} "); valueToAdd.Text = ""; } else { StockClass merch = null; foreach (var item in StockList) { if (item.ItemName == itemToAdd.Text) { merch = item; } } StoreClass.AddToStock(merch, intValueToAdd); MessageToUser($"You have added: {valueToAdd.Text} {itemToAdd.Text} to your stock"); valueToAdd.Text = ""; } } else { MessageToUser("You must enter an integer"); } }
private void BtnAddDeliveredMerchandise_Click(object sender, RoutedEventArgs e) { var parent = (sender as Button).Parent; TextBox valueToAdd = parent.GetChildrenOfType <TextBox>().First(x => x.Name == "TxtBoxAddQty"); TextBlock valueToCheck = parent.GetChildrenOfType <TextBlock>().First(x => x.Name == "QTY"); TextBlock itemToAdd = parent.GetChildrenOfType <TextBlock>().First(x => x.Name == "ItemName"); int intValueToAdd = Convert.ToInt32(valueToAdd.Text); int intValueToCheck = Convert.ToInt32(valueToCheck.Text); if (intValueToAdd > intValueToCheck) { MessageToUser($"Ange rätt antal att in leverera, max antal att in leverera: {intValueToCheck} "); valueToAdd.Text = ""; } else { StockClass merch = new StockClass(); foreach (var item in StockList) { if (item.ItemName == itemToAdd.Text) { merch = item; } } StoreClass.AddToStock(merch, intValueToAdd); MessageToUser($"You have added: {valueToAdd.Text} {itemToAdd.Text} to your stock"); valueToAdd.Text = ""; } Debug.WriteLine(valueToAdd.Text); Debug.WriteLine(valueToCheck.Text); }
public IEnumerable <OrderClass> LoadOrdersByLocation(StoreClass location) { int locID = _db.Store.Where(s => s.StoreName == location.Name).First().StoreId; var dict = GenerateIngrediantDictionary(); List <PizzaOrder> temp = _db.PizzaOrder .Include(po => po.Customer) .ThenInclude(c => c.CustomerAddress) .Include(po => po.Store) .Include(po => po.PizzasInOrder) .ThenInclude(PiO => PiO.Pizza) .ThenInclude(p => p.IngrediantsOnPizza) .ThenInclude(IoP => IoP.Ingrediant) .ThenInclude(I => I.IngrediantName) .Where(o => o.StoreId == locID).ToList(); List <OrderClass> ret = new List <OrderClass>(); foreach (var order in temp) { ret.Add(Map(order, Map(order.Customer), Map(order.Store))); } return(ret); }
public static uint openStore(String szStoreName) { uint pStoreContext = 0; // system store handle ICertStore iStore; Store oStore; // CAPICOM object //verify that valid system store name was passed in if (szStoreName.ToLower() != "my" & szStoreName.ToLower() != "ca" & szStoreName.ToLower() != "root") { displayHelp(); return(0); } try { //open system store, use default CSP pStoreContext = Win32.CertOpenSystemStore( 0, szStoreName); // API bridging oStore = new StoreClass(); iStore = (ICertStore)oStore; iStore.StoreHandle = (int)pStoreContext; Console.WriteLine("The store has " + oStore.Certificates.Count + " certificates"); return(pStoreContext); } catch (Exception e) { Console.WriteLine("Error in " + e.Source + ": " + e.Message); return(0); } }
internal static StoreClass Map(Store store) { StoreClass ret = new StoreClass { Name = store.StoreName, Address = new AddressClass { Street = store.Street, Apartment = store.Street2, City = store.City, Zip = store.Zip, State = store.State }, StoreID = store.StoreId, }; ret.Invantory = new Dictionary <string, int>(); foreach (var Inv in store.Invantory) { ret.Invantory.Add(Inv.Ingrediant.IngrediantName, Inv.Quantity); } return(ret); }
static bool parseCommandLine( String input) { ArrayList alArgs = ParseArgs(input); Certificate oCert = null; switch ((String)alArgs[0]) { case "cd": { //This is the 'change directory' command String storename; if (alArgs.Count > 1) { storename = (String)alArgs[1]; } else { storename = _currStoreName; //reset store name } if (storename.Equals("..") && _currStoreName.Length > 0 ) { _oCurrStore = new StoreClass(); storename = null; _currFilter = null; _currStoreName = ""; } else if (storename.StartsWith("..") && _currStoreName.Length > 0 ) { _oCurrStore = new StoreClass(); _currFilter = null; storename = storename.Substring(3,storename.Length - 3); _currStoreName = ""; } else if (storename.Equals("..")) { storename = null; } else if (storename.Equals("\\" + LocalMachine) || storename.Equals("\\lm" )) { _oCurrStore = new StoreClass(); _currStoreName = ""; storename = null; _currStoreLocation = LocalMachine; _currFilter = null; } else if (storename.Equals("\\" + CurrentUser) || storename.Equals("\\cu" )) { _oCurrStore = new StoreClass(); _currStoreName = ""; storename = null; _currStoreLocation = CurrentUser; _currFilter = null; } if (storename != null && _currStoreName.Equals("")) { try { CAPICOM_STORE_LOCATION OpenMode = CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE; if (_currStoreLocation.Equals(LocalMachine)) { OpenMode = CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE; } //Open the store MAX_ALLOWED in case the user wants to import/rem/export //They may not have permission to modify HKLM stores _oCurrStore.Open( OpenMode, storename, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_EXISTING_ONLY | CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); _currStoreName = storename; } catch (Exception e) { Console.WriteLine (e.Message); } } return false; } case "q": case "quit": { return true; } case "h": case "help": { DisplayHelp(); return false; } case "v": case "view": try { oCert = GetCertByIndex(Convert.ToInt32(alArgs[1])); if (oCert != null ) { DisplayCertificate(oCert, ""); } else { Console.WriteLine ("No certificate with that index (" + alArgs[1] + ") could be found."); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "y": case "display": try { oCert = GetCertByIndex(Convert.ToInt32(alArgs[1])); if (oCert != null ) { oCert.Display(); } else { Console.WriteLine ("No certificate with that index (" + alArgs[1] + ") could be found."); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "rem": try { oCert = GetCertByIndex(Convert.ToInt32(alArgs[1])); if (oCert != null ) { String answer = "n"; Console.WriteLine( ToColumn (oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME), CERTNAME_LENGTH) + " " + ToColumn (oCert.Thumbprint, THUMBPRINT_LENGTH )); Console.WriteLine ("Issuer: " + oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME)); Console.WriteLine ("Validity Period: " + oCert.ValidFromDate + " - " + oCert.ValidToDate); DisplayEKU(oCert.ExtendedKeyUsage().EKUs); Console.WriteLine(); Console.Write("Are you sure you want to remove this certificate (y/n)? "); answer = Console.ReadLine(); if (!answer.Equals("y")) { break; } if (oCert.HasPrivateKey() && !oCert.PrivateKey.IsHardwareDevice() ) { oCert.PrivateKey.Delete(); Console.WriteLine ("The private key was deleted."); } try { _oCurrStore.Remove(oCert); Console.WriteLine("The certificate was removed."); } catch { Console.WriteLine("The certificate could not be removed."); } } else { Console.WriteLine ("No certificate with that index (" + alArgs[1] + ") could be found."); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "e": case "export": try { oCert = GetCertByIndex(Convert.ToInt32(alArgs[1])); if (oCert != null ) { String filename = (String)alArgs[2]; if (filename != null) { oCert.Save(filename, "", CAPICOM_CERTIFICATE_SAVE_AS_TYPE.CAPICOM_CERTIFICATE_SAVE_AS_CER, CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY); } else { Console.WriteLine("No filename specified."); } } else { Console.WriteLine ("No certificate with that index (" + alArgs[1] + ") could be found."); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "i": case "import": try { String filename = null; String password = null; CAPICOM_KEY_STORAGE_FLAG iFlag = CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_DEFAULT; if (alArgs.Count >= 2) { filename = (String)alArgs[1]; } if (alArgs.Count >= 3) { password = (String)alArgs[2]; } if (alArgs.Count >= 4) { String flag = null; if (alArgs.Count == 4) { password = null; flag = (String)alArgs[3]; } else if (alArgs.Count == 5) { flag = (String)alArgs[4]; } if (flag.Equals ("e")) { iFlag = CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_EXPORTABLE; } else if (flag.Equals ("p")) { iFlag = CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_USER_PROTECTED; } else if (flag.Equals ("ep") || flag.Equals ("pe")) { iFlag = CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_USER_PROTECTED | CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_EXPORTABLE; } } _oCurrStore.Load(filename, password, iFlag); } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "p": case "pfxexport": try { oCert = GetCertByIndex(Convert.ToInt32(alArgs[1])); if (oCert != null ) { String filename = (String)alArgs[2]; String password = (String)alArgs[3]; if (filename != null) { oCert.Save(filename, password, CAPICOM_CERTIFICATE_SAVE_AS_TYPE.CAPICOM_CERTIFICATE_SAVE_AS_PFX, CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN); } else { Console.WriteLine("No filename specified."); } } else { Console.WriteLine ("No certificate with that index (" + alArgs[1] + ") could be found."); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "c": case "create": case "del": try { // Opening it is the same whether we're creating or deleting if (alArgs.Count == 1) { Console.WriteLine ("Please enter a name for the store"); break; } String name = (String) alArgs[1]; for (int i = 2; i < alArgs.Count; i++) { name += " " + alArgs[i]; } Store newStore = new Store(); CAPICOM_STORE_LOCATION storeLoc = CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE; if (_currStoreLocation.Equals(LocalMachine)) { storeLoc = CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE; } newStore.Open(storeLoc, name, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_READ_WRITE); // Now delete if that is what was chosen if (alArgs[0].Equals("del")) { if (_currStoreName.Equals(name)) { Console.WriteLine("You cannot delete the store you are currently viewing"); Console.WriteLine("Please use the <cd> command to change stores first"); break; } newStore.Delete(); } } catch (Exception e) { Console.WriteLine ("An error was encountered processing the " + alArgs[0] + " command: " + e.Message); } break; case "d": case "dir": { Certificates oCerts; Listing listing = Listing.Brief; if ((_currStoreLocation.Equals(CurrentUser) || _currStoreLocation.Equals(LocalMachine)) && _currStoreName.Length == 0) { uint retval = 0; uint dwFlags = CERT_SYSTEM_STORE_CURRENT_USER; CertEnumSystemStoreCallback StoreCallback = new CertEnumSystemStoreCallback(Storesh.CertEnumSystemStoreCallback); if (_currStoreLocation.Equals(LocalMachine)) { dwFlags = CERT_SYSTEM_STORE_LOCAL_MACHINE; } retval= Win32.CertEnumSystemStore( dwFlags, 0, _currStoreName, StoreCallback ); } else if (alArgs.Count >= 1) { int i =0 ; try { _currFilter = _oCurrStore.Certificates.GetEnumerator(); for (i = 1; i < alArgs.Count; i++) { String param = ((String)alArgs[i]).ToLower(); if (param.Equals("/l") || param.Equals("-l")) { listing = Listing.Long; } else if (param.Equals("/subject") || param.Equals("-subject")) { Object filter = (System.String)alArgs[++i]; oCerts = (Certificates)_oCurrStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, filter, false); _currFilter = oCerts.GetEnumerator(); } else if (param.Equals("/eku") || param.Equals("-eku")) { Object filter = (System.String)alArgs[++i]; oCerts = (Certificates)_oCurrStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY, filter, false); _currFilter = oCerts.GetEnumerator(); } else if (param.Equals("/issuer") || param.Equals("-issuer")) { Object filter = (System.String)alArgs[++i]; oCerts = (Certificates)_oCurrStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME, filter, false); _currFilter = oCerts.GetEnumerator(); } else if (param.Equals("/sha1") || param.Equals("-sha1")) { String filter = (String)alArgs[++i]; oCerts = (Certificates)_oCurrStore.Certificates; oCerts = (Certificates)oCerts.Find(CAPICOM_CERTIFICATE_FIND_TYPE.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, filter, false); _currFilter = oCerts.GetEnumerator(); } } i = 1; while (_currFilter.MoveNext() == true) { oCert = (Certificate) _currFilter.Current; Console.Write ( (i++ + ". ").PadRight(4,' ')); switch (listing) { case Listing.Brief: Console.WriteLine( ToColumn (oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME), CERTNAME_LENGTH) + " " + ToColumn (oCert.ValidToDate.ToString(), VALIDITY_LENGTH) + ToColumn (oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME), CERTNAME_LENGTH) ); break; case Listing.Long: { Console.WriteLine( ToColumn (oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME), CERTNAME_LENGTH) + " " + ToColumn (oCert.Thumbprint, THUMBPRINT_LENGTH )); Console.WriteLine ("Issuer: " + oCert.GetInfo(CAPICOM_CERT_INFO_TYPE.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME)); Console.WriteLine ("Validity Period: " + oCert.ValidFromDate + " - " + oCert.ValidToDate); DisplayEKU(oCert.ExtendedKeyUsage().EKUs); Console.WriteLine(); break; } } } } catch (Exception e) { Console.WriteLine("An error was encountered: " + e.Message); } } break; } default: DisplayHelp(); break; } return false; }
private ICertificate2 GetCert() { try { Store store = new StoreClass(); CAPICOM_STORE_LOCATION storeLocation = CAPICOM_STORE_LOCATION.CAPICOM_CURRENT_USER_STORE; NameValueCollection section = (NameValueCollection) ConfigurationManager.GetSection("securitySettings"); string storeName = null; if (section != null) { string str2 = section["CAPICOM_STORE_LOCATION"]; if (str2 != null) { try { storeLocation = (CAPICOM_STORE_LOCATION) Enum.Parse(typeof(CAPICOM_STORE_LOCATION), str2, true); } catch { } storeName = section["StoreName"]; } } else { LoggingService.Error("没有找到Security配置节!"); } storeName = (storeName == null) ? "MY" : storeName; store.Open(storeLocation, storeName, CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); Certificates certificates = ((ICertificates2) store.Certificates).Select("置信自动化办公系统", "请选择你使用的私有数字证书", false); ICertificate2 certificate = (ICertificate2) store.Certificates[1]; if (!certificate.HasPrivateKey()) { MessageBox.Show("该证书没有私钥,请确认是否是你的私有数字证书!"); return null; } if (certificate.PublicKey().Algorithm.FriendlyName != "RSA") { MessageBox.Show("你选择的证书采用算法不是:RSA算法,不能使用!"); return null; } CspParameters parameters = new CspParameters(); parameters.KeyContainerName = certificate.PrivateKey.ContainerName; parameters.ProviderName = certificate.PrivateKey.ProviderName; parameters.ProviderType = Convert.ToInt32(certificate.PrivateKey.ProviderType); switch (certificate.PrivateKey.KeySpec) { case CAPICOM_KEY_SPEC.CAPICOM_KEY_SPEC_KEYEXCHANGE: parameters.KeyNumber = 1; break; case CAPICOM_KEY_SPEC.CAPICOM_KEY_SPEC_SIGNATURE: parameters.KeyNumber = 2; break; } if (certificate.PrivateKey.IsMachineKeyset()) { parameters.Flags = CspProviderFlags.UseMachineKeyStore; } new RSACryptoServiceProvider(parameters).SignData(Convert.FromBase64String("test"), typeof(SHA1)); return certificate; } catch (Exception exception) { MessageBox.Show("发生错误:" + exception.Message); return null; } }
public void NewStoreHasNameGivenToConstructor(string testName) { StoreClass SUT = new StoreClass(testName); Assert.Equal(testName, SUT.Name); }
public static uint openStore(String szStoreName) { uint pStoreContext = 0; // system store handle ICertStore iStore; Store oStore; // CAPICOM object //verify that valid system store name was passed in if (szStoreName.ToLower() != "my" & szStoreName.ToLower() != "ca" & szStoreName.ToLower() != "root") { displayHelp(); return 0; } try { //open system store, use default CSP pStoreContext = Win32.CertOpenSystemStore( 0, szStoreName); // API bridging oStore = new StoreClass(); iStore = (ICertStore)oStore; iStore.StoreHandle = (int)pStoreContext; Console.WriteLine ("The store has " + oStore.Certificates.Count + " certificates"); return pStoreContext; } catch (Exception e) { Console.WriteLine("Error in " + e.Source + ": " + e.Message); return 0; } }