Example #1
0
        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);
                }
            }
        }
Example #2
0
        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;
        }
Example #3
0
        //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
            }
        }