Esempio n. 1
0
 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]);
     }
 }
Esempio n. 2
0
        public void SetForType_SetValueIsRetrieved()
        {
            var storeValue = new StoreClass();

            _store.SetForType <TestClass>(storeValue);
            Assert.AreSame(storeValue, _store.GetForType <TestClass>());
        }
Esempio n. 3
0
        public void GetForType_DefinedForInterface_FetchedOnClass_ReturnsStoredValue()
        {
            var storeValue = new StoreClass();

            _store.SetForType <ITestClass>(storeValue);
            Assert.AreSame(storeValue, _store.GetForType <TestClass>());
        }
Esempio n. 4
0
        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();
        }
Esempio n. 6
0
 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));
 }
Esempio n. 8
0
        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>());
        }
Esempio n. 9
0
        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());
     }
 }
Esempio n. 12
0
        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
     });
 }
Esempio n. 14
0
        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));
        }
Esempio n. 16
0
 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)
     });
 }
Esempio n. 17
0
 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);
        }
Esempio n. 23
0
        /// <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);
        }
Esempio n. 25
0
        // 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");
            }
        }
Esempio n. 26
0
        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);
        }
Esempio n. 28
0
        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);
        }
Esempio n. 30
0
        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;
        }
Esempio n. 31
0
        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;
            }
        }
Esempio n. 32
0
 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();
 }
Esempio n. 33
0
        public void NewStoreHasNameGivenToConstructor(string testName)
        {
            StoreClass SUT = new StoreClass(testName);

            Assert.Equal(testName, SUT.Name);
        }
Esempio n. 34
0
        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;
            }
        }