public void RevealHiddenBanknotes() { revealed_banknotes = new List<Banknote>(); for (int i = 0; i < hidden_banknotes.Count(); i++) { if (i != banknote_index) { var r = secrets[i]; var y = hidden_banknotes[i]; var m = new Banknote(); m.amount = BitConverter.ToInt64(rsa.UnblindObject(y.amount, r), 0); m.id = BitConverter.ToInt64(rsa.UnblindObject(y.id, r), 0); Console.WriteLine("\t[debug]: Revealing banknote {0}\t\twith secret {1}.", m.id, r); m.s_series = new List<Series>(); m.t_series = new List<Series>(); m.u_hashes = new List<byte[]>(); m.w_hashes = new List<byte[]>(); for (int j = 0; j < y.s_series.Count(); j++) { m.s_series.Add(new Series(rsa.UnblindObject(y.s_series[j], r))); m.t_series.Add(new Series(rsa.UnblindObject(y.t_series[j], r))); m.u_hashes.Add(rsa.UnblindObject(y.u_hashes[j], r)); m.w_hashes.Add(rsa.UnblindObject(y.w_hashes[j], r)); } revealed_banknotes.Add(m); //Console.WriteLine("\t[debug]: Banknote number {0}. revealed.", revealed_banknotes[i].id); } else { revealed_banknotes.Add(null); } } }
public bool checkIfBanknoteIsNotUsed(Banknote banknote) { int length = used_banknotes.Count; for (int i = 0; i < length; i++) { if (banknote.id != used_banknotes[i].id && banknote.u_hashes != used_banknotes[i].u_hashes && banknote.w_hashes != used_banknotes[i].w_hashes) { for (int j = 0; j < 99; j++) { if(banknote.s_series[j].values != used_banknotes[i].s_series[j].values && banknote.t_series[j].values != used_banknotes[i].t_series[j].values) { } else { return false; } } } else { return false; } } return true; }
//step 14 //Sprzedawca wysyla banknot do Banku, poniewaz chce uzyskac uznanie konta owymi pieniedzmi. public void sendBanknoteAndGetMoney(Banknote banknote) { byte[] amount_byte = BitConverter.GetBytes(banknote.amount); //wysylamy kwote byte[] id_byte = BitConverter.GetBytes(banknote.id); for (int i = 0; i < 99; i++) { byte[] s_byte = banknote.s_series[i].values; //wysylamy byte[] t_byte = banknote.t_series[i].values; //wysylamy byte[] u_byte = banknote.u_hashes[i]; //wysylamy byte[] w_byte = banknote.u_hashes[i]; //wysylamy } }