public void GetKeyringInfoGetsCorrectName()
        {
            string      keyringName = "login";
            KeyringInfo info        = Ring.GetKeyringInfo(keyringName);

            Assert.AreEqual(keyringName, info.Name);
        }
        public void SetKeyringLockOnIdleUpdatesInfo()
        {
            string keyringName = "theamazingtestkeyring";

            Ring.CreateKeyring(keyringName, "password");

            try {
                KeyringInfo info = Ring.GetKeyringInfo(keyringName);
                info.LockOnIdle = !info.LockOnIdle;
                Assert.AreNotEqual(info.LockOnIdle, Ring.GetKeyringInfo(keyringName).LockOnIdle);

                Ring.SetKeyringInfo(keyringName, info);
                Assert.AreEqual(info.LockOnIdle, Ring.GetKeyringInfo(keyringName).LockOnIdle);
            } finally {
                Ring.DeleteKeyring(keyringName);
            }
        }
        public void SetKeyringInfoUpdatesLockTimeout()
        {
            string keyringName = "testkeyring";

            Ring.CreateKeyring(keyringName, "password");

            try {
                KeyringInfo info = Ring.GetKeyringInfo(keyringName);
                info.LockTimeoutSeconds++;
                Assert.AreNotEqual(info.LockTimeoutSeconds, Ring.GetKeyringInfo(keyringName).LockTimeoutSeconds);

                Ring.Unlock(keyringName, null);
                Ring.SetKeyringInfo(keyringName, info);
                Assert.AreEqual(info.LockTimeoutSeconds, Ring.GetKeyringInfo(keyringName).LockTimeoutSeconds);
            } finally {
                Ring.DeleteKeyring(keyringName);
            }
        }
Esempio n. 4
0
        static void Main()
        {
            if (!Ring.Available)
            {
                Console.WriteLine("The gnome-keyring-daemon cannot be reached.");
                return;
            }

            string deflt = Ring.GetDefaultKeyring();

            Console.WriteLine("The default keyring is '{0}'", deflt);
            Console.Write("Other rings available: ");

            foreach (string s in Ring.GetKeyrings())
            {
                if (s != deflt)
                {
                    Console.Write("'{0}' ", s);
                }
            }
            Console.WriteLine();

            // This is equivalent to...
            foreach (ItemData s in Ring.FindNetworkPassword("gonzalo", null, null, null, null, null, 0))
            {
                Console.WriteLine("HERE");
                Console.WriteLine(s);
            }

            // ... this other search.
            Hashtable tbl = new Hashtable();

            tbl ["user"] = "******";
            foreach (ItemData s in Ring.Find(ItemType.NetworkPassword, tbl))
            {
                Console.WriteLine(s);
            }

            tbl            = new Hashtable();
            tbl ["user"]   = "******";
            tbl ["domain"] = "MiDomain";
            Console.WriteLine("Creating item");
            int      i  = Ring.CreateItem(null, ItemType.NetworkPassword, "*****@*****.**", tbl, "laclave", true);
            ItemData d2 = Ring.GetItemInfo(deflt, i);

            Ring.SetItemInfo(deflt, d2.ItemID, ItemType.NetworkPassword, "cambioesto@lalala", "otraclave");
            Hashtable atts = Ring.GetItemAttributes(deflt, i);

            foreach (string key in atts.Keys)
            {
                Console.WriteLine("{0}: {1}", key, atts [key]);
            }

            atts ["object"] = "new attributes";
            Ring.SetItemAttributes(deflt, i, atts);
            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();

            Console.WriteLine("Deleting it (ID = {0})", i);
            Ring.DeleteItem(Ring.GetDefaultKeyring(), i);
            Console.WriteLine("Existing IDs...");
            foreach (int nn in Ring.ListItemIDs(deflt))
            {
                Console.WriteLine(nn);
            }

            KeyringInfo info = new KeyringInfo(true, 15);

            Ring.SetKeyringInfo(deflt, info);

            info = Ring.GetKeyringInfo(deflt);
            Console.WriteLine(info);
            ArrayList acl_list = Ring.GetItemACL(deflt, 3);

            foreach (ItemACL acl in acl_list)
            {
                Console.WriteLine(acl);
            }

            ArrayList list2 = new ArrayList(acl_list);

            list2.Add(new ItemACL("test", "/test", AccessRights.Read));
            Ring.SetItemACL(deflt, 3, list2);
            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();
            Ring.SetItemACL(deflt, 3, acl_list);
        }