コード例 #1
0
        private void SaveKeys()
        {
            string          aux;
            string          dir               = Path.GetTempFileName();
            StringBuilder   namesList         = new StringBuilder();
            KeyBinario      serializadorKeys  = new KeyBinario();
            ElementoBinario stringSerialitzer = ElementoBinario.GetSerializador <string>();

            aux = Path.Combine(dir, MASTERKEYFILE);
            serializadorKeys.GetBytes(MasterKey).Save(aux);//como aun  no tiene asignada la MasterKey puedo usar este serializador
            File.Encrypt(aux);

            stringSerialitzer.Key = MasterKey;
            serializadorKeys.Key  = MasterKey;
            Directory.CreateDirectory(dir);
            foreach (var item in DicKeys)
            {
                aux = Path.GetTempFileName();
                namesList.AppendLine($"{item.Key.EscaparCaracteresXML()}{CARACTERSPLIT}{aux.EscaparCaracteresXML()}");
                aux = Path.Combine(dir, aux + EXTENSIONKEY);
                serializadorKeys.GetBytes(item.Value).Save(aux);
            }
            aux = Path.Combine(dir, IDSLIST);
            File.WriteAllBytes(aux, stringSerialitzer.GetBytes(namesList.ToString()));
            if (Directory.Exists(FOLDER))
            {
                Directory.Delete(FOLDER);
            }
            Directory.Move(dir, FOLDER);
        }
コード例 #2
0
        static bool TestClases <T>(GetElement <T> getElement)
        {
            T clase = getElement();
            ElementoBinario serializador = ElementoBinario.GetSerializador <T>();

            byte[] data = serializador.GetBytes(clase);
            T      claseDeserializada = (T)serializador.GetObject(data);

            return(Equals(clase, claseDeserializada));
        }
コード例 #3
0
        public void KeyValuePairTiposAnidados()
        {
            KeyValuePair <IdUnico, KeyValuePair <long, string> > pair = new KeyValuePair <IdUnico, KeyValuePair <long, string> >(new IdUnico(), new KeyValuePair <long, string>(125, "Gabriel"));
            ElementoBinario serializador = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            KeyValuePair <IdUnico, KeyValuePair <long, string> > pairDeserializada = (KeyValuePair <IdUnico, KeyValuePair <long, string> >)serializador.GetObject(data);

            Assert.IsTrue(pair.Key.GetId().ArrayEqual(pairDeserializada.Key.GetId()) && pair.Value.Key.Equals(pairDeserializada.Value.Key) && pair.Value.Value.Equals(pairDeserializada.Value.Value));
        }
コード例 #4
0
        public void KeyValuePairTiposMios()
        {
            KeyValuePair <IdUnico, byte[]> pair = new KeyValuePair <IdUnico, byte[]>(new IdUnico(), Serializar.GetBytes("Gabriel"));
            ElementoBinario serializador        = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            KeyValuePair <IdUnico, byte[]> pairDeserializada = (KeyValuePair <IdUnico, byte[]>)serializador.GetObject(data);

            Assert.IsTrue(pair.Key.GetId().ArrayEqual(pairDeserializada.Key.GetId()) && pair.Value.ArrayEqual(pairDeserializada.Value));
        }
コード例 #5
0
        public void KeyValuePairTiposBasicos()
        {
            KeyValuePair <long, string> pair         = new KeyValuePair <long, string>(125, "Gabriel");
            ElementoBinario             serializador = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            KeyValuePair <long, string> pairDeserializada = (KeyValuePair <long, string>)serializador.GetObject(data);

            Assert.IsTrue(pair.Key.Equals(pairDeserializada.Key) && pair.Value.Equals(pairDeserializada.Value));
        }
コード例 #6
0
        public void KeyValuePairTiposAnidados()
        {
            TwoKeys <IdUnico, TwoKeys <long, string> > pair = new TwoKeys <IdUnico, TwoKeys <long, string> >(new IdUnico(), new TwoKeys <long, string>(125, "Gabriel"));
            ElementoBinario serializador = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            TwoKeys <IdUnico, TwoKeys <long, string> > pairDeserializada = (TwoKeys <IdUnico, TwoKeys <long, string> >)serializador.GetObject(data);

            Assert.IsTrue(pair.Key1.GetId().ArrayEqual(pairDeserializada.Key1.GetId()) && pair.Key2.Key1.Equals(pairDeserializada.Key2.Key1) && pair.Key2.Key2.Equals(pairDeserializada.Key2.Key2));
        }
コード例 #7
0
        public void TwoKeysTiposMios()
        {
            TwoKeys <IdUnico, byte[]> pair         = new TwoKeys <IdUnico, byte[]>(new IdUnico(), Serializar.GetBytes("Gabriel"));
            ElementoBinario           serializador = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            TwoKeys <IdUnico, byte[]> pairDeserializada = (TwoKeys <IdUnico, byte[]>)serializador.GetObject(data);

            Assert.IsTrue(pair.Key1.GetId().ArrayEqual(pairDeserializada.Key1.GetId()) && pair.Key2.ArrayEqual(pairDeserializada.Key2));
        }
コード例 #8
0
        public void TwoKeysTiposBasicos()
        {
            TwoKeys <long, string> pair         = new TwoKeys <long, string>(125, "Gabriel");
            ElementoBinario        serializador = ElementoBinario.GetSerializador(pair.GetType());

            byte[] data = serializador.GetBytes(pair);
            TwoKeys <long, string> pairDeserializada = (TwoKeys <long, string>)serializador.GetObject(data);

            Assert.IsTrue(pair.Key1.Equals(pairDeserializada.Key1) && pair.Key2.Equals(pairDeserializada.Key2));
        }
コード例 #9
0
        public void IListMio()
        {
            const int ELEMENTS = 10;

            byte[]          data;
            List <IdUnico>  lstDeserializada;
            List <IdUnico>  lst          = new List <IdUnico>();
            ElementoBinario serializador = ElementoBinario.GetSerializador(lst.GetType());

            for (int i = 0; i < ELEMENTS; i++)
            {
                lst.Add(new IdUnico());
            }
            data             = serializador.GetBytes(lst);
            lstDeserializada = (List <IdUnico>)serializador.GetObject(data);
            Assert.IsTrue(lst.AreEquals(lstDeserializada));
        }
コード例 #10
0
        public void IListBasic()
        {
            const int ELEMENTS = 10;

            byte[]          data;
            List <long>     lstDeserializada;
            List <long>     lst          = new List <long>();
            ElementoBinario serializador = ElementoBinario.GetSerializador(lst.GetType());

            for (int i = 0; i < ELEMENTS; i++)
            {
                lst.Add(DateTime.Now.Ticks);
            }
            data             = serializador.GetBytes(lst);
            lstDeserializada = (List <long>)serializador.GetObject(data);
            Assert.IsTrue(lst.AreEquals(lstDeserializada));
        }
コード例 #11
0
        public void IListMioAnidada()
        {
            const int ELEMENTS = 10;

            byte[]                 data;
            List <IdUnico>         aux;
            List <List <IdUnico> > lstDeserializada;
            List <List <IdUnico> > lst          = new List <List <IdUnico> >();
            ElementoBinario        serializador = ElementoBinario.GetSerializador(lst.GetType());

            for (int i = 0; i < ELEMENTS; i++)
            {
                aux = new List <IdUnico>();
                for (int j = 0; j < ELEMENTS; j++)
                {
                    aux.Add(new IdUnico());
                }
                lst.Add(aux);
            }
            data             = serializador.GetBytes(lst);
            lstDeserializada = (List <List <IdUnico> >)serializador.GetObject(data);
            Assert.IsTrue(Equals(lst, lstDeserializada));
        }
コード例 #12
0
 public byte[] GetBytes() => Serializador.GetBytes(this);
コード例 #13
0
 public string SaveStringBase64()
 {
     byte[] data = Serializador.GetBytes(this);
     return(Convert.ToBase64String(data));
 }