static async Task CreateKeypairIfNotExist() { string KeyPath = @"C:\Users\ethan\keypair"; using DataContext db = new(); if ((App.ActiveUser = db.Users.FirstOrDefault(x => x.Active)) != null) { return; } AsymmetricCipherKeyPair pair = CryptoService.GenerateKeypair(512); string key = CryptoService.ExportKeypair(pair, CryptoService.KeyType.Private); File.WriteAllText(KeyPath, key); key = CryptoService.ExportKeypair(pair, CryptoService.KeyType.Public); File.WriteAllText($"{KeyPath}.pub", key); ClientModels.Users.User user = await APIClient.v1.Users.Register(new ClientModels.Users.CreateModel { ExchangePem = key }); Models.User createdUser = Models.User.FromBase(ref user); createdUser.Active = true; createdUser.PEMPath = KeyPath; db.Users.Add(createdUser); await db.SaveChangesAsync(); App.ActiveUser = createdUser; }
public static User FromBase(ref ClientModels.Users.User b) => JsonConvert.DeserializeObject <User>(JsonConvert.SerializeObject(b));