示例#1
0
        public static AcmeClient GetClient(VaultInfo config, RegistrationInfo reg)
        {
            var c = GetClient(config);

            c.Signer = GetSigner(reg.SignerProvider);
            c.Signer.Init();
            c.Registration = reg.Registration;

            if (reg.SignerState != null)
            {
                using (var s = new MemoryStream(Convert.FromBase64String(
                                                    reg.SignerState)))
                {
                    c.Signer.Load(s);
                }
            }
            else
            {
                using (var s = new MemoryStream())
                {
                    c.Signer.Save(s);
                    reg.SignerState = Convert.ToBase64String(s.ToArray());
                }
            }

            return(c);
        }
示例#2
0
 public void ReloadVaultConfig()
 {
     lock (VAULT_LOCK)
     {
         this.vaultConfig = LoadVaultFromFile();
     }
 }
示例#3
0
        private static void DumpVault(int index, VaultInfo vaultInfo, Session session)
        {
            Console.WriteLine("{0}: '{1}', '{2}':", index + 1, vaultInfo.Id, vaultInfo.Name);

            var vault = Client.OpenVault(vaultInfo, session);

            for (var i = 0; i < vault.Accounts.Length; ++i)
            {
                var account = vault.Accounts[i];
                Console.WriteLine("  {0}:\n" +
                                  "          id: {1}\n" +
                                  "        name: {2}\n" +
                                  "    username: {3}\n" +
                                  "    password: {4}\n" +
                                  "         url: {5}\n" +
                                  "        note: {6}\n",
                                  i + 1,
                                  account.Id,
                                  account.Name,
                                  account.Username,
                                  account.Password,
                                  account.MainUrl,
                                  account.Note);
            }
        }
示例#4
0
        private static Encryption.Vault LoadVault()
        {
            string    vaultPath = DefaultConfiguration.GetAppSetting("vaultPath");
            VaultInfo vaultInfo = new VaultInfo(new FileInfo(vaultPath));
            Vault     vault     = vaultInfo.Load();

            return(vault);
        }
示例#5
0
        public static void Init(VaultInfo config, AcmeClient client)
        {
            client.Init();

            if (config.GetInitialDirectory)
            {
                client.GetDirectory(config.UseRelativeInitialDirectory);
            }
        }
示例#6
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Regex re = new Regex("[^0-9.-]+");

            if (string.IsNullOrEmpty(textbox1.Text) || re.IsMatch(textbox1.Text))
            {
                MessageBoxResult mes = MessageBox.Show("请输入数字", "错误", MessageBoxButton.OK);
            }

            try
            {
                using (var context = new BankContext2())
                {
                    var vaultinfo = context.VaultInfo.Where(x => x.Account == "admin").FirstOrDefault();
                    if (vaultinfo == null)
                    {
                        vaultinfo = new VaultInfo
                        {
                            Id       = Guid.NewGuid(),
                            Account  = "admin",
                            Password = "******",
                            Name     = "管理员",
                            Balance  = 10000
                        };
                        context.VaultInfo.Add(vaultinfo);
                        context.SaveChanges();
                    }
                    var recordinfo = new RecordInfo
                    {
                        Id         = Guid.NewGuid(),
                        AccountId  = vaultinfo.Id,
                        Amount     = Convert.ToDouble(textbox1.Text),
                        Remark     = "存钱",
                        CreateTime = DateTime.Now
                    };
                    recordinfo.Balance = vaultinfo.Balance + recordinfo.Amount;
                    vaultinfo.Balance  = recordinfo.Balance;
                    //添加
                    context.RecordInfo.Add(recordinfo);
                    //更新
                    context.VaultInfo.Attach(vaultinfo);
                    context.Entry(vaultinfo).State = System.Data.Entity.EntityState.Modified;
                    //存储到数据库
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                MessageBoxResult mes2 = MessageBox.Show(ex.Message, "错误", MessageBoxButton.OK);
                //throw new Exception(ex.Message);
            }

            MessageBoxResult mes3 = MessageBox.Show("操作成功", "提示", MessageBoxButton.OK);

            Close();
        }
示例#7
0
        public void _5_ShouldBeAbleToLoadVaultInfo()
        {
            VaultInfo info = new VaultInfo {
                FilePath = testFile, Name = "TestVault"
            };
            Vault vault = info.Load();

            vault.Keys.Each(key =>
            {
                OutLineFormat("{0}={1}", key, vault[key]);
            });
        }
        public VaultInfo GetVaultInfo()
        {
            VaultInfo vlt = null;

            for (int it = 0; it < 2 && vlt == null; it++)
            {
                vlt = new GetVault().GetValue <VaultInfo>();

                if (vlt == null)
                {
                    new InitializeVault {
                        BaseUri = "https://acme-v01.api.letsencrypt.org/"
                    }
                }
    void Start()
    {
        saveTimer = Time.time + 120;
        EarthqTimer = Time.time + Random.Range(0, 900);
        //EarthqTimer = Time.time + Random.Range(1, 2);
        Vi = GameObject.Find("Vault").GetComponent<VaultInfo>();
        Pc = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>();

        if (GameObject.Find("ToLoad"))
        {
            GameObject.FindGameObjectWithTag("SaveLoad").GetComponent<SaveAndLoad>().Load("Save.save");
            Destroy(GameObject.Find("ToLoad"));
        }
        //GameObject.Find("A*").GetComponent<AstarPath>().astarData.LoadFromCache();
    }
示例#10
0
        public static AcmeClient GetClient(VaultInfo Config)
        {
            var p       = Config.Proxy;
            var _Client = new AcmeClient();

            _Client.RootUrl   = new Uri(Config.BaseUri);
            _Client.Directory = Config.ServerDirectory;

            if (Config.Proxy != null)
            {
                _Client.Proxy = Config.Proxy.GetWebProxy();
            }

            return(_Client);
        }
示例#11
0
        public static AcmeClient GetClient(VaultInfo Config)
        {
            var _Client = new AcmeClient();

            _Client.UserAgent = $"Certify/{0} {_Client.UserAgent}";
            _Client.Language  = "en-US, en;q=0.8";
            _Client.RootUrl   = new Uri(Config.BaseUri);
            _Client.Directory = Config.ServerDirectory;

            if (Config.Proxy != null)
            {
                _Client.Proxy = Config.Proxy.GetWebProxy();
            }

            return(_Client);
        }
示例#12
0
        /// <summary>
        /// 初始化vault
        /// </summary>
        public static void InitializeVault()
        {
            string baseuri = ACMESharpUtils.WELL_KNOWN_BASE_SERVICES[ACMESharpUtils.WELL_KNOWN_LE];

            using (var vlt = ACMESharpUtils.GetVault())
            {
                vlt.InitStorage(true);
                var v = new VaultInfo
                {
                    Id              = ACMESharp.Vault.Util.EntityHelper.NewId(),
                    Alias           = "ztimage",
                    Label           = string.Empty,
                    Memo            = string.Empty,
                    BaseService     = string.Empty,
                    BaseUri         = baseuri,
                    ServerDirectory = new ACMESharp.AcmeServerDirectory()
                };
                vlt.SaveVault(v);
            }
        }
        public void SaveVault(VaultInfo vault)
        {
            AssertOpen();

            var now = DateTime.Now;
            var who = $"{Environment.UserDomainName}\\{Environment.UserName}";

            if (_vaultMeta == null)
            {
                _vaultMeta = new EntityMeta <VaultInfo>
                {
                    CreateDate = now,
                    CreateUser = who,
                    CreateHost = Environment.MachineName,
                }
            }
            ;

            _vaultMeta.UpdateDate = now;
            _vaultMeta.UpdateUser = who;
            _vaultMeta.Entity     = vault;

            // Create a backup just in case there's any fault
            if (File.Exists(_vaultFile))
            {
                File.Copy(_vaultFile, $"{_vaultFile}.bak", true);
            }
            // Sort of a 2-phase commit
            var tmp = $"{_vaultFile}.tmp{DateTime.Now.ToFileTime()}";

            using (var s = new FileStream(tmp, FileMode.Create))
            {
                JsonHelper.Save(s, _vaultMeta, false);
            }
            // Now commit the changes
            File.Copy(tmp, _vaultFile, true);
            File.Delete(tmp);
        }
示例#14
0
        public static AcmeClient GetClient(VaultInfo Config)
        {
            var p       = Config.Proxy;
            var _Client = new AcmeClient();

            // depends on https://github.com/ebekker/ACMESharp/pull/300
            //_Client.UserAgent = $"Certify/{0} {_Client.UserAgent}";
            //_Client.Language = "en-US, en;q=0.8";
            _Client.BeforeGetResponseAction = req =>
            {
                var version = typeof(ClientHelper).Assembly.GetName().Version;
                req.UserAgent = $"Certify/{version} {req.UserAgent}";
                req.Headers[HttpRequestHeader.AcceptLanguage] = "en-US; en;q=0.8";
            };
            _Client.RootUrl   = new Uri(Config.BaseUri);
            _Client.Directory = Config.ServerDirectory;

            if (Config.Proxy != null)
            {
                _Client.Proxy = Config.Proxy.GetWebProxy();
            }

            return(_Client);
        }
        private static void GetTranslatorAndLanguageDb(out SQLiteDatabase languageDb, out YandexTranslationProvider translator)
        {
            string vaultPath       = DefaultConfiguration.GetAppSetting("vaultPath");
            string translationPath = DefaultConfiguration.GetAppSetting("translationDatabasePath");
            string languagePath    = DefaultConfiguration.GetAppSetting("languageDatabasePath");

            Args.ThrowIfNullOrEmpty(vaultPath, "vaultPath was not in the config file");
            Args.ThrowIfNullOrEmpty(translationPath, "databasePath was not in the config file");

            VaultInfo      vaultInfo       = new VaultInfo(new FileInfo(vaultPath));
            FileInfo       translationFile = new FileInfo(translationPath);
            FileInfo       languageFile    = new FileInfo(languagePath);
            SQLiteDatabase translationDb   = new SQLiteDatabase(translationFile.Directory.FullName, Path.GetFileNameWithoutExtension(translationFile.Name));

            languageDb = (SQLiteDatabase)LanguageDatabase.Default;//(); new SQLiteDatabase(languageFile.Directory.FullName, Path.GetFileNameWithoutExtension(languageFile.Name));
            translator = new YandexTranslationProvider(vaultInfo.Load(), languageDb, translationDb);
            ConsoleLogger logger = new ConsoleLogger();

            logger.AddDetails = false;
            logger.UseColors  = true;
            logger.StartLoggingThread();
            translator.Logger = logger;
            translator.EnsureLanguages();
        }
示例#16
0
        protected override void ProcessRecord()
        {
            var baseUri = BaseUri;

            if (string.IsNullOrEmpty(baseUri))
            {
                if (!string.IsNullOrEmpty(BaseService) &&
                    WELL_KNOWN_BASE_SERVICES.ContainsKey(BaseService))
                {
                    baseUri = WELL_KNOWN_BASE_SERVICES[BaseService];
                    WriteVerbose($"Resolved Base URI from Base Service [{baseUri}]");
                }
                else
                {
                    throw new PSInvalidOperationException("either a base service or URI is required");
                }
            }

            using (var vlt = Util.VaultHelper.GetVault(VaultProfile))
            {
                WriteVerbose("Initializing Storage Backend");
                vlt.InitStorage(Force);
                var v = new VaultInfo
                {
                    Id              = EntityHelper.NewId(),
                    Alias           = Alias,
                    Label           = Label,
                    Memo            = Memo,
                    BaseService     = BaseService,
                    BaseUri         = baseUri,
                    ServerDirectory = new AcmeServerDirectory()
                };

                vlt.SaveVault(v);
            }
        }
示例#17
0
        private void populateTreeView(VaultInfo vaultConfig)
        {
            if (this.treeView1.Nodes != null)
            {
                this.treeView1.Nodes.Clear();
            }

            CertificateManager certManager = new CertificateManager();
            // start off by adding a base treeview node
            TreeNode mainNode = new TreeNode();

            mainNode.Name               = "Vault";
            mainNode.Text               = "Vault";
            mainNode.ImageIndex         = (int)ImageList.Vault;
            mainNode.SelectedImageIndex = mainNode.ImageIndex;

            this.treeView1.Nodes.Add(mainNode);

            if (vaultConfig.Identifiers != null)
            {
                var domainsNode = new TreeNode("Domains & Certificates (" + vaultConfig.Identifiers.Count + ")");

                domainsNode.ImageIndex         = (int)ImageList.Globe;
                domainsNode.SelectedImageIndex = domainsNode.ImageIndex;

                foreach (var i in vaultConfig.Identifiers)
                {
                    var node = new TreeNode(i.Dns);
                    node.Tag = i;

                    node.ImageIndex         = (int)ImageList.Globe;
                    node.SelectedImageIndex = node.ImageIndex;

                    if (vaultConfig.Certificates != null)
                    {
                        foreach (var c in vaultConfig.Certificates)
                        {
                            if (c.IdentifierRef == i.Id)
                            {
                                //add cert
                                var certNode = new TreeNode(c.Alias);
                                certNode.Tag = c;

                                certNode.ImageIndex         = (int)ImageList.Cert;
                                certNode.SelectedImageIndex = certNode.ImageIndex;

                                //get info from get if possible, use that to style the parent node (expiry warning)

                                string certPath       = VaultManager.GetCertificateFilePath(c.Id);
                                string crtDerFilePath = certPath + "\\" + c.CrtDerFile;

                                if (File.Exists(crtDerFilePath))
                                {
                                    var cert = certManager.GetCertificate(crtDerFilePath);

                                    DateTime expiryDate = DateTime.Parse(cert.GetExpirationDateString());
                                    TimeSpan timeLeft   = expiryDate - DateTime.Now;
                                    node.Text += " (" + timeLeft.Days + " days remaining)";
                                    if (timeLeft.Days < 30)
                                    {
                                        node.ForeColor = Color.Orange;
                                    }
                                    if (timeLeft.Days < 7)
                                    {
                                        node.ForeColor = Color.Red;
                                    }
                                }
                                else
                                {
                                    node.ForeColor = Color.Gray;
                                }
                                node.Nodes.Add(certNode);
                            }
                        }
                    }
                    domainsNode.Nodes.Add(node);
                }

                mainNode.Nodes.Add(domainsNode);
                domainsNode.Expand();
            }

            if (vaultConfig.Registrations != null)
            {
                var contactsNode = new TreeNode("Registered Contacts (" + vaultConfig.Registrations.Count + ")");

                contactsNode.ImageIndex         = (int)ImageList.Person;
                contactsNode.SelectedImageIndex = contactsNode.ImageIndex;

                foreach (var i in vaultConfig.Registrations)
                {
                    var title = i.Registration.Contacts.FirstOrDefault();
                    var node  = new TreeNode(title);
                    node.Tag = i;

                    node.ImageIndex         = (int)ImageList.Person;
                    node.SelectedImageIndex = node.ImageIndex;

                    contactsNode.Nodes.Add(node);
                }

                mainNode.Nodes.Add(contactsNode);

                contactsNode.Expand();
            }

            if (mainNode.Nodes.Count == 0)
            {
                mainNode.Nodes.Add("(Empty)");
            }
            else
            {
                mainNode.Expand();
            }

            // this.treeView1.ExpandAll();
        }
示例#18
0
 public void ReloadVaultConfig()
 {
     this.vaultConfig = LoadVaultFromFile();
 }
示例#19
0
        public bool InitVault(bool staging = true)
        {
            string apiURI = ACMESharpUtils.WELL_KNOWN_BASE_SERVICES[ACMESharpUtils.WELL_KNOWN_LESTAGE];

            if (!staging)
            {
                //live api
                apiURI = ACMESharpUtils.WELL_KNOWN_BASE_SERVICES[ACMESharpUtils.WELL_KNOWN_LE];
            }

            bool vaultExists = false;

            lock (VAULT_LOCK)
            {
                using (var vlt = ACMESharpUtils.GetVault(this.vaultProfile))
                {
                    OpenVaultStorage(vlt, true);
                    var v = vlt.LoadVault(false);
                    if (v != null)
                    {
                        vaultExists = true;
                    }
                }
            }

            if (!vaultExists)
            {
                var baseUri = apiURI;
                if (string.IsNullOrEmpty(baseUri))
                {
                    throw new InvalidOperationException("either a base service or URI is required");
                }

                lock (VAULT_LOCK)
                {
                    using (var vlt = ACMESharpUtils.GetVault(this.vaultProfile))
                    {
                        this.LogAction("InitVault", "Creating Vault");

                        OpenVaultStorage(vlt, true);

                        var v = new VaultInfo
                        {
                            Id              = EntityHelper.NewId(),
                            BaseUri         = baseUri,
                            ServerDirectory = new AcmeServerDirectory()
                        };

                        vlt.SaveVault(v);
                    }
                }
            }
            else
            {
                this.LogAction("InitVault", "Vault exists.");
            }

            this.vaultFolderPath = GetVaultPath();

            return(true);
        }
示例#20
0
    //public delegate void FunctionHandler();
    //Dictionary<string, FunctionHandler> commands = new Dictionary<string, FunctionHandler>();
    void Awake()
    {
        //commands.Add("GUISaveAndExit", GUISaveAndExit);

        pc = GetComponent<PlayerController>();
        pi = GetComponent<PlayerInfo>();
        vi = GameObject.Find("Vault").GetComponent<VaultInfo>();
        foreach (GameObject obj in GameObject.FindGameObjectsWithTag("MyGUI"))
        {
            GUIContainer container = obj.GetComponent<GUIContainer>();
            if (container)
                container.playerGUI = this;
        }

        // Setup GUI Var
        Transform _t = GameObject.Find("PlayerGUIContainer").transform;
        for (int i = 0; i < _t.childCount; i++)
        {
            Transform stk = _t.GetChild(i);
            if (stk.name == "Stack")
                inventory.Add(stk.GetComponent<GUIBlock>());
        }

        inventoryMenu = _t.FindChild("InventoryMenu").GetComponent<GUIContainer>();
        pauseMenu = _t.FindChild("PauseMenu").GetComponent<GUIContainer>();
        charBlock = _t.FindChild("Character").GetComponent<GUIBlock>();
        exit = _t.FindChild("SaveAndExit").GetComponent<GUIBlock>();

        age = _t.FindChild("Age").GetComponent<TextMesh>();
        roomHealth = _t.FindChild("RoomHealth").GetComponent<TextMesh>();
        hunger = _t.FindChild("Hunger").GetComponent<TextMesh>();
        health = _t.FindChild("Health").GetComponent<TextMesh>();
        radiation = _t.FindChild("Radiation").GetComponent<TextMesh>();
        suitBar = _t.FindChild("Suit");
        suitBarStartWidth = suitBar.localScale;
        // End Setup
    }
示例#21
0
        private void populateTreeView(VaultInfo vaultConfig)
        {
            if (this.treeView1.Nodes != null)
            {
                this.treeView1.Nodes.Clear();
            }

            // start off by adding a base treeview node
            TreeNode mainNode = new TreeNode();

            mainNode.Name               = "Vault";
            mainNode.Text               = "Vault";
            mainNode.ImageIndex         = (int)ImageList.Vault;
            mainNode.SelectedImageIndex = mainNode.ImageIndex;

            this.treeView1.Nodes.Add(mainNode);

            if (vaultConfig.Identifiers != null)
            {
                var domainsNode = new TreeNode("Domains & Certificates (" + vaultConfig.Identifiers.Count + ")");

                domainsNode.ImageIndex         = (int)ImageList.Globe;
                domainsNode.SelectedImageIndex = domainsNode.ImageIndex;

                foreach (var i in vaultConfig.Identifiers)
                {
                    var node = new TreeNode(i.Dns);
                    node.Tag = i;

                    node.ImageIndex         = (int)ImageList.Globe;
                    node.SelectedImageIndex = node.ImageIndex;

                    if (vaultConfig.Certificates != null)
                    {
                        foreach (var c in vaultConfig.Certificates)
                        {
                            if (c.IdentifierRef == i.Id)
                            {
                                //add cert
                                var certNode = new TreeNode(c.Alias);
                                certNode.Tag = c;

                                certNode.ImageIndex         = (int)ImageList.Cert;
                                certNode.SelectedImageIndex = certNode.ImageIndex;

                                node.Nodes.Add(certNode);
                            }
                        }
                    }
                    domainsNode.Nodes.Add(node);
                }

                mainNode.Nodes.Add(domainsNode);
            }

            if (vaultConfig.Registrations != null)
            {
                var contactsNode = new TreeNode("Registered Contacts (" + vaultConfig.Registrations.Count + ")");

                contactsNode.ImageIndex         = (int)ImageList.Person;
                contactsNode.SelectedImageIndex = contactsNode.ImageIndex;

                foreach (var i in vaultConfig.Registrations)
                {
                    var title = i.Registration.Contacts.FirstOrDefault();
                    var node  = new TreeNode(title);
                    node.Tag = i;

                    node.ImageIndex         = (int)ImageList.Person;
                    node.SelectedImageIndex = node.ImageIndex;

                    contactsNode.Nodes.Add(node);
                }

                mainNode.Nodes.Add(contactsNode);
            }

            if (mainNode.Nodes.Count == 0)
            {
                mainNode.Nodes.Add("(Empty)");
            }
        }
示例#22
0
        /// <summary>
        /// 重写OnStartup
        /// </summary>
        /// <param name="e"></param>
        protected override void OnStartup(StartupEventArgs e)
        {
            ///
            string connectionString = AppDomain.CurrentDomain.BaseDirectory + @"Data\";

            //string connectionString = AppDomain.CurrentDomain.BaseDirectory;
            AppDomain.CurrentDomain.SetData("DataDirectory", connectionString);

            SQLiteBaseForEF.ExistsDBFile(connectionString, "Bank.s3db");

            //初始一个admin账户
            using (var context = new BankContext2())
            {
                var info = context.VaultInfo.Where(x => x.Account == "admin").FirstOrDefault();

                if (info == null)
                {
                    info = new VaultInfo
                    {
                        Id       = Guid.NewGuid(),
                        Account  = "admin",
                        Password = "******",
                        Name     = "管理员",
                        Balance  = 10000
                    };
                    context.VaultInfo.Add(info);
                    context.SaveChanges();
                }

                //var upList = context.RecordInfo.Where(x => x.Remark == "测试").ToList();
                //for (int i = 0; i < 5; i++)
                //{
                //    var recordinfo = new RecordInfo
                //    {
                //        Id = Guid.Empty,
                //        AccountId = Guid.Empty,
                //        Amount = 0,
                //        Remark = "测试",
                //        CreateTime = DateTime.Now
                //    };
                //    upList.Add(recordinfo);
                //}

                //foreach(var item in upList)
                //{
                //    if(item.Id == Guid.Empty)
                //    {
                //        item.Id = Guid.NewGuid();
                //        context.RecordInfo.Add(item);
                //    }
                //    else
                //    {
                //        item.Remark = "测试";
                //        context.RecordInfo.Attach(item);
                //        context.Entry(info).State = System.Data.Entity.EntityState.Modified;
                //    }
                //}
                //context.SaveChanges();

                //var recordinfo = new RecordInfo
                //{
                //    Id = Guid.NewGuid(),
                //    AccountId = Guid.Empty,
                //    Amount = 1,
                //    Remark = "存钱",
                //    CreateTime = DateTime.Now
                //};
            }

            base.OnStartup(e);
        }
示例#23
0
 public Vault(VaultInfo info, Account[] accounts)
 {
     Info     = info;
     Accounts = accounts;
 }