public WalletData Login() { Boolean passAccepted; if (WalletName == "") { Caller.SemaphoricExceptionCallLogin("No wallet name specified"); return(null); } string WalletFilePath = AppDomain.CurrentDomain.BaseDirectory + @"bin\\WalletData\\" + WalletName + ".bin"; if (!File.Exists(WalletFilePath) && MustCreateWallet) { if (PasswordManager.CheckPassRequirements(passString)) { WalletDataLocal = GenerateWallet.NewWallet(WalletName, WalletFilePath, passString); Caller.SemaphoricExceptionCallLogin("Wallet created!"); return(WalletDataLocal); } else { Caller.SemaphoricExceptionCallLogin("Passcode does not comply with requirements !"); return(null); } } else if (File.Exists(WalletFilePath) && MustCreateWallet) { Caller.SemaphoricExceptionCallLogin("Wallet already exists!"); return(null); } else if (!File.Exists(WalletFilePath)) { Caller.SemaphoricExceptionCallLogin("Wallet does not exist"); return(null); } else { WalletDataLocal = WalletData.ReadBlobToWalletData(WalletName); //Checking passWord passAccepted = PasswordManager.CheckPass(passString, Convert.ToBase64String(WalletDataLocal.passCode)); passString = ""; //Dispose of the pass, we don't want any traces left if (!passAccepted) { System.Threading.Thread.Sleep(1 * 1000); Caller.SemaphoricExceptionCallLogin("Wrong passcode entered!"); return(null); } return(WalletDataLocal); } }
//this class will hold all required code for creating a new wallet from scratch public static WalletData NewWallet(String _walletName, String _walletfilePath, string _passCode) { String passString = _passCode; Keys KeysClass; Boolean passAcceptable; WalletData WalletDataCreate; passAcceptable = PasswordManager.CheckPassRequirements(passString); if (passAcceptable) { KeysClass = KeyManager.GenerateKeySet(_passCode, _walletName); WalletDataCreate = new WalletData(); WalletDataCreate = WalletDataCreate.CreateNewWalletData(KeysClass, _passCode, _walletName); return(WalletDataCreate); } else { return(null); } }