public long newpub(byte[] pubkey, string name) { var id1 = conn.Query<long>("select id from pubkeys order by id desc limit 1", new { }); long id = id1.Count() == 0 ? 1 : id1.First() + 1; var iv = ArrayrXor(prvkey_iv, id); var obj = new { id = id, k = enc(pubkey, iv), n = enc(name, iv) }; conn.Execute("insert into pubkeys(id, key, name) select @id, @k, @n", obj); pubkeys.Add(new Public_Keys() { id = id, key = pubkey, name = name }); return id; }
public bool newprv(byte[] prv, string name, Client client) { foreach (var v in GetPrivateKeys()) { if (prv.ArraysEqual(v.key)) { return false;//already exist } } var id1 = conn.Query<long>("select id from prvkeys order by id desc limit 1", new { }); long id = id1.Count() == 0 ? 1 : id1.First() + 1; var iv = ArrayrXor(prvkey_iv, id); var obj = new { id = id, k = enc(prv, iv), n = enc(name, iv), d = enc(0, iv) }; client.RegisterPublicKey(prv, Utils.ExtractPublicKey(prv)); conn.Execute("insert into prvkeys(id, key, name, last_date) select @id, @k, @n, @d", obj); prvkeys.Add(new Private_Keys() { id = id, key = prv, name = name, visit_date = 0 }); return true; }