public byte[] CreateSignature(byte[] data, string signCertCN) { X509Certificate2 certificateSign = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, signCertCN); return(DigitalSignature.Create(data, HashAlgorithm.SHA1, certificateSign)); }
public bool ResetPinCode(SecureString pin) { try { X509Certificate2 certificate = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, username); X509Certificate2 certificateSign = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, username + "Sign"); // hash klijentskog PINa byte[] hash = DigitalSignature.CreateHash(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1"); /// Create a signature using SHA1 hash algorithm byte[] signature = DigitalSignature.Create(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1", certificateSign); Console.WriteLine("Delete all cert files and press any key"); Console.ReadKey(); return(ResetPinCode(signature, certificate)); } catch (Exception e) { Console.WriteLine("[ResetPinCode] ERROR = {0}", e.Message); return(false); } }
public bool WithdrawSmartCardClient(SecureString pin) { try { X509Certificate2 certificateSign = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, username + "Sign"); // hash klijentskog PINa byte[] hash = DigitalSignature.CreateHash(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1"); /// Create a signature using SHA1 hash algorithm byte[] signature = DigitalSignature.Create(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1", certificateSign); return(factory.WithdrawSmartCardClient(signature)); } catch (Exception e) { Console.WriteLine("[WithdrawSmartCardClient] ERROR = {0}", e.Message); return(false); } }
public bool SendPin(SecureString pin) { try { string signCertCN = Formatter.ParseName(WindowsIdentity.GetCurrent().Name) + "Sign"; /// Create a signature based on the "signCertCN" X509Certificate2 signCert = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, signCertCN); // hash klijentskog PINa byte[] hash = DigitalSignature.CreateHash(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1"); /// Create a signature using SHA1 hash algorithm byte[] signature = DigitalSignature.Create(new System.Net.NetworkCredential(string.Empty, pin).Password, "SHA1", signCert); return(SendPin(signature)); } catch (Exception e) { Console.WriteLine("[SendPin] ERROR = {0}", e.Message); return(false); } }
public void CreateAlarm(int period, X509Certificate2 signCert) { while (!StopThread) { try { string[] messages = File.ReadAllLines(@"../../../Publisher/messages.txt"); Random randomInt = new Random(); Alarm alarm = new Alarm(DateTime.Now, messages[randomInt.Next(0, messages.Count())], randomInt.Next(1, 101)); byte[] signature = DigitalSignature.Create(alarm, "SHA1", signCert); Publish(alarm, signature); } catch (Exception e) { Console.WriteLine(e.Message); } Thread.Sleep(period * 1000); } }
public Tuple <bool, byte[]> WriteDB(string name, Element e) { signCert = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, Config.ServisSign); Tuple <bool, byte[]> rVal = new Tuple <bool, byte[]>(Commandos.WriteDB(name, e), DigitalSignature.Create(name, "SHA1", signCert)); return(rVal); }
public Tuple <float, byte[]> MedianMonthlyIncomeByCity(string name, string city) { signCert = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, Config.ServisSign); Tuple <float, byte[]> rVal = new Tuple <float, byte[]>(Commandos.MedianMonthlyIncomeByCity(name, city), DigitalSignature.Create(name, "SHA1", signCert)); return(rVal); }
public Tuple <Dictionary <string, Element>, byte[]> MaxIncomeByCountry(string name) { signCert = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, Config.ServisSign); Tuple <Dictionary <string, Element>, byte[]> rVal = new Tuple <Dictionary <string, Element>, byte[]>(Commandos.MaxIncomeByCountry(name), DigitalSignature.Create(name, "SHA1", signCert)); return(rVal); }
private static void Main(string[] args) { NetTcpBinding binding = new NetTcpBinding(); string address = "net.tcp://localhost:9999/FileManager"; string signCertCN = Formatter.ParseName(WindowsIdentity.GetCurrent().Name.ToLower()) + "_sign"; //client_sign invalidUser_sign Client invalidUser Console.ReadLine(); try { using (ClientProxy proxy = new ClientProxy(binding, new EndpointAddress(new Uri(address)))) { if (signCertCN == "invaliduser_sign") { signCertCN = "invalidUser_sign"; } X509Certificate2 clientCERT = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, signCertCN); Console.WriteLine("Connected to Services"); byte[] signature; while (true) { Console.WriteLine("*****************Menu*****************"); Console.WriteLine("1. Dodaj fajl\n2. Azuriraj fajl\n3.Exit"); Console.Write("Choose option: "); int choice = int.Parse(Console.ReadLine()); switch (choice) { case 1: Console.WriteLine("Unesite ime fajla u kom zelite da unesete tekst"); string filename = Console.ReadLine(); Console.WriteLine("Unesite tekst koji zelite da upisete u fajl koji ste uneli"); string text = Console.ReadLine(); signature = DigitalSignature.Create(text, HashAlgorithms.SHA1, clientCERT); proxy.AddFile(filename, signature, text); break; case 2: Console.WriteLine("Unesite ime fajla u kom zelite da promenite tekst"); filename = Console.ReadLine(); Console.WriteLine("Unesite tekst koji zelite da izmenite"); text = Console.ReadLine(); signature = DigitalSignature.Create(text, HashAlgorithms.SHA1, clientCERT); proxy.EditFile(filename, signature, text); break; case 3: Console.WriteLine("Press any key to exit the application.."); Console.ReadLine(); return; default: Console.WriteLine("Niste uneli ispravnu opciju."); break; } } } } catch (Exception e) { Console.WriteLine("Something went wrong while starting Client service"); Console.WriteLine("[ERROR] {0}", e.Message); Console.WriteLine("[StackTrace] {0}", e.StackTrace); } }
public static void ExecuteCommandWriter(IWriterService proxy, int op, X509Certificate2 signCert) { string name = ""; if (op != 0) { name = HelperFunctions.ReadDatabaseName(); } switch (op) { case 1: CheckIfExecuted(proxy.CreateDB(name, DigitalSignature.Create(name, "SHA1", signCert))); break; case 2: CheckIfExecuted(proxy.DeleteDB(name, DigitalSignature.Create(name, "SHA1", signCert))); break; case 3: Element tmpElem = Element.LoadFromConsole(); CheckIfExecuted(proxy.WriteDB(name, tmpElem, DigitalSignature.Create(name, "SHA1", signCert))); break; case 4: List <Element> elems = proxy.ReadDB(name, DigitalSignature.Create(name, "SHA1", signCert)); Console.WriteLine("Ids of all elements:"); DisplayAllElements(elems, true); Element toEdit = GetElementToEdit(elems); Element newElem = Element.LoadFromConsole(); newElem.Id = toEdit.Id; CheckIfExecuted(proxy.EditDB(name, newElem, DigitalSignature.Create(name, "SHA1", signCert))); break; case 5: DisplayAllElements(proxy.ReadDB(name, DigitalSignature.Create(name, "SHA1", signCert))); break; case 6: string city = HelperFunctions.ReadCity(); Console.Write("Prosecna plata za grad " + city + ": "); Console.WriteLine(proxy.MedianMonthlyIncomeByCity(name, city, DigitalSignature.Create(name, "SHA1", signCert))); break; case 7: string country = HelperFunctions.ReadCountry(); Console.WriteLine("Unesi godinu:"); int year = int.Parse(Console.ReadLine()); float medianMonthlyIncome = proxy.MedianMonthlyIncome(name, country, year, DigitalSignature.Create(name, "SHA1", signCert)); Console.WriteLine("Prosecna plata za " + country + " u " + year + " god.:" + medianMonthlyIncome); break; case 8: var tmpDict = proxy.MaxIncomeByCountry(name, DigitalSignature.Create(name, "SHA1", signCert)); Console.WriteLine("Najveca plata za svaku drzavu:"); foreach (KeyValuePair <string, Element> kvp in tmpDict) { Console.WriteLine(kvp.Key + " : id:" + kvp.Value.Id + " plata:" + kvp.Value.Income); } break; case 0: Console.WriteLine("Cao poz"); break; } }
private static void SelectOption(WCFClient proxy, string option) { //Debugger.Launch(); string databaseName = String.Empty; string returnedValueString = String.Empty; string city = String.Empty; string country = String.Empty; string payday = String.Empty; string temp = String.Empty; string message = String.Empty; byte[] signature; short fromAge; short toAge; if (option != "9") { Console.Write("\nEnter database name: "); databaseName = Console.ReadLine(); } switch (option) { case "1": returnedValueString = proxy.CreateDatabase(databaseName); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "2": returnedValueString = proxy.DeleteDatabase(databaseName); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "3": message = CreateMessage(databaseName, "Insert"); signature = DigitalSignature.Create(message, proxy.Credentials.ClientCertificate.Certificate); returnedValueString = proxy.Insert(message, signature); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "4": message = CreateMessage(databaseName, "Edit"); signature = DigitalSignature.Create(message, proxy.Credentials.ClientCertificate.Certificate); returnedValueString = proxy.Edit(message, signature); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "5": returnedValueString = DataCryptography.DecryptData(proxy.Credentials.ClientCertificate.Certificate, proxy.ViewAll(databaseName)); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "6": returnedValueString = DataCryptography.DecryptData(proxy.Credentials.ClientCertificate.Certificate, proxy.ViewMaxPayed(databaseName)); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "7": Console.Write("Country: "); country = Console.ReadLine(); do { Console.Write("Payday: "); payday = Console.ReadLine(); } while (!Int32.TryParse(payday, out int id)); returnedValueString = DataCryptography.DecryptData(proxy.Credentials.ClientCertificate.Certificate, proxy.AverageSalaryByCountryAndPayday(databaseName, country, payday)); //returnedValueString = proxy.AverageSalaryByCountryAndPayday(databaseName, country, payday); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "8": Console.Write("City: "); city = Console.ReadLine(); do { do { Console.Write("From age: "); temp = Console.ReadLine(); } while (!short.TryParse(temp, out fromAge)); do { Console.Write("To age: "); temp = Console.ReadLine(); } while (!short.TryParse(temp, out toAge)); } while (fromAge > toAge); returnedValueString = DataCryptography.DecryptData(proxy.Credentials.ClientCertificate.Certificate, proxy.AverageSalaryByCityAndAge(databaseName, city, fromAge, toAge)); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "9": returnedValueString = DataCryptography.DecryptData(proxy.Credentials.ClientCertificate.Certificate, proxy.ViewDatabasesNames()); Console.WriteLine(Environment.NewLine + returnedValueString); break; case "10": Console.WriteLine("Exit"); break; default: Console.WriteLine("Unknown command"); break; } }
static void Main(string[] args) { Console.ReadKey(); ClientSCSProxy clientSCSProxy = new ClientSCSProxy(); X509Certificate2 cert = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, Formatter.ParseName(WindowsIdentity.GetCurrent().Name)); if (cert == null) { int option = 0; while (option != 2) { Console.WriteLine("Do you want to make SmartCard?\n\t1. Yes\n\t2. No"); try { option = Int32.Parse(Console.ReadLine()); if (option == 1) { if (clientSCSProxy.CertificateIssue()) { Console.WriteLine("Your SmartCard is successfully created. Please install it and press any key when you are done."); Console.ReadKey(); break; } } else if (option == 2) { Console.WriteLine("Goodbye. Press any key to exit."); break; } } catch (Exception e) { Console.WriteLine(e.Message); } } } else { ClientATMProxy clientATMProxy = new ClientATMProxy(); X509Certificate2 certSign = CertManager.GetCertificateFromStorage(StoreName.My, StoreLocation.LocalMachine, Formatter.ParseName(WindowsIdentity.GetCurrent().Name + "Sign")); if (certSign != null) { int option = 0; while (option != 5) { Console.WriteLine("\nInsert PIN : "); string pin = Console.ReadLine(); byte[] signPin = DigitalSignature.Create(pin, HashAlgorithm.SHA1, certSign); string username = Formatter.ParseName(WindowsIdentity.GetCurrent().Name); byte[] signUsername = DigitalSignature.Create(username, HashAlgorithm.SHA1, certSign); try { if (clientATMProxy.ValidatePIN(pin, signPin, username, signUsername)) { while (option != 5) { Console.WriteLine("\nDo you want to:\n\t1. PayIn\n\t2. PayOut\n\t3. Print all users\n\t4. Change Pin\n\t5. Exit"); try { option = Int32.Parse(Console.ReadLine()); string amount; if (option == 1) { Console.WriteLine("Amount: "); amount = Console.ReadLine(); try { byte[] signAmount = DigitalSignature.Create(amount, Manager.HashAlgorithm.SHA1, certSign); Console.WriteLine(clientATMProxy.PayIn(username, signUsername, amount, signAmount)); } catch (Exception e) { Console.WriteLine(e.Message); } } else if (option == 2) { Console.WriteLine("Amount: "); amount = Console.ReadLine(); byte[] signAmount = DigitalSignature.Create(amount, Manager.HashAlgorithm.SHA1, certSign); Console.WriteLine(clientATMProxy.PayOut(username, signUsername, amount, signAmount)); } else if (option == 3) { Console.WriteLine(clientATMProxy.PrintAllClients()); } else if (option == 4) { if (clientSCSProxy.ChangePin(username)) { Console.WriteLine("Change PIN successfully executed."); break; } else { Console.WriteLine("Change PIN failed."); } } } catch (Exception e) { Console.WriteLine(e.Message); } } } else { Console.WriteLine("Invalid PIN."); } } catch { Console.WriteLine("ACCES DENIED."); break; } } } else { Console.WriteLine("User does not have sign certificate (or manage private keys)."); } } Console.WriteLine("Goodbye. Press any key to exit."); Console.ReadKey(); }