Beispiel #1
0
        internal async Task <e_error> connect(string password)
        {
            y_register_x y      = new();
            var          dv_key = p_crypto.create_symmetrical_keys();

            y.a_key_data = m_key.create(dv_key);
            y.a_key_data = p_crypto.Encrypt(y.a_key_data, public_key.data);
            var login_m = new m_register_x()
            {
                a_xid      = all_command.x_center,
                a_password = password
            };

            y.a_register_data = p_crypto.convert(login_m);
            y.a_register_data = p_crypto.Encrypt(y.a_register_data, dv_key);
            var o = await y.run(a.api3.c_run());

            if (o.z_error == e_error.non)
            {
                dv_key.id = o.a_deviceid;
                var db = a.api3.s_db.general_x <m_data>();
                await db.upsert(new m_data()
                {
                    id   = "key",
                    data = p_crypto.convert(dv_key)
                });

                a.api3.c_key = dv_key;
            }
            return(o.z_error);
        }
Beispiel #2
0
        async Task <bool> check_login(m_register_x val)
        {
            if (val.a_xid.Substring(0, 2) != "x_")
            {
                return(false);
            }
            var password = await a.get_password(val.a_xid);

            return(val.a_password == password);
        }