Beispiel #1
0
 def test_get_entries(self):
     k = Keytab()
     k.read(self.testfile)
     entries = k.get_entries("afs/robotest@LOCALREALM")
     self.assertIsNotNone(entries)
     self.assertEquals(len(entries), 4)
     self.assertEquals(entries[0]['kvno'], 10)
 def test_get_entries(self):
     k = Keytab()
     k.read(self.testfile)
     entries = k.get_entries("afs/robotest@LOCALREALM")
     self.assertIsNotNone(entries)
     self.assertEquals(len(entries), 4)
     self.assertEquals(entries[0]['kvno'], 10)
Beispiel #3
0
 def test_guess_key_format(self):
     origprog = afsutil.cmd.ASETKEY
     afsutil.cmd.ASETKEY = asetkey_new
     k = Keytab()
     principal = "afs/xyzzy@LOCALREALM"
     k.add_fake_key(principal)
     self.assertEquals(k._guess_key_format(principal), 'extended')
     afsutil.cmd.ASETKEY = origprog
 def test_is_des(self):
     k = Keytab()
     k.read(self.testfile)
     self.assertTrue(k.is_des("afs/plugh@LOCALREALM"))
     self.assertFalse(k.is_des("afs/xyzzy@LOCALREALM"))
     # The following has a mix of des and non-des.
     self.assertRaises(AssertionError, Keytab.is_des, k, "afs/robotest@LOCALREALM")
     # No keys for the following.
     self.assertRaises(AssertionError, Keytab.is_des, k, "afs/bogus@LOCALREALM")
 def test_create_empty_file(self):
     fd,filename = tempfile.mkstemp()
     try:
         k = Keytab()
         k.write(filename)
         self.assertEqual(k.entries, [])
         out = subprocess.check_output(["klist", "-e", "-k", "-t", filename]).splitlines()
         self.assertEquals(len(out), 3)
         self.assertTrue(out[0].startswith("Keytab name"))
         self.assertTrue(out[1].startswith("KVNO Timestamp"))
         self.assertTrue(out[2].startswith("----"))
     finally:
         os.close(fd)
         os.remove(filename)
Beispiel #6
0
 def test_create_empty_file(self):
     fd, filename = tempfile.mkstemp()
     try:
         k = Keytab()
         k.write(filename)
         self.assertEqual(k.entries, [])
         out = subprocess.check_output(
             ["klist", "-e", "-k", "-t", filename]).splitlines()
         self.assertEquals(len(out), 3)
         self.assertTrue(out[0].startswith("Keytab name"))
         self.assertTrue(out[1].startswith("KVNO Timestamp"))
         self.assertTrue(out[2].startswith("----"))
     finally:
         os.close(fd)
         os.remove(filename)
 def test_create_fake_des_key(self):
     fd,filename = tempfile.mkstemp()
     try:
         k = Keytab()
         k.add_fake_key("afs/localcell@LOCALCELL", enctype='des-cbc-crc')
         k.write(filename)
         out = subprocess.check_output(["klist", "-e", "-k", "-t", filename]).splitlines()
         self.assertEquals(len(out), 4)
         self.assertTrue(out[0].startswith("Keytab name"))
         self.assertTrue(out[1].startswith("KVNO Timestamp"))
         self.assertTrue(out[2].startswith("----"))
         self.assertTrue("afs/localcell@LOCALCELL" in out[3])
         self.assertTrue("des-cbc-crc" in out[3])
     finally:
         os.close(fd)
         os.remove(filename)
Beispiel #8
0
 def test_read_keytab(self):
     k = Keytab.load(self.testfile)
     self.assertIsNotNone(k)
     self.assertEquals(len(k.entries), 16)
     self.assertEquals(k.entries[0]['realm'], "LOCALREALM")
     self.assertEquals(k.entries[0]['principal'], "afs/robotest@LOCALREALM")
     self.assertEquals(k.entries[0]['kvno'], 10)
     self.assertEquals(k.entries[0]['eno'], 18)
     self.assertEquals(k.entries[0]['enctype'], 'aes256-cts-hmac-sha1-96')
 def test_read_keytab(self):
     k = Keytab.load(self.testfile)
     self.assertIsNotNone(k)
     self.assertEquals(len(k.entries), 16)
     self.assertEquals(k.entries[0]['realm'], "LOCALREALM")
     self.assertEquals(k.entries[0]['principal'], "afs/robotest@LOCALREALM")
     self.assertEquals(k.entries[0]['kvno'], 10)
     self.assertEquals(k.entries[0]['eno'], 18)
     self.assertEquals(k.entries[0]['enctype'], 'aes256-cts-hmac-sha1-96')
Beispiel #10
0
 def test_is_des(self):
     k = Keytab()
     k.read(self.testfile)
     self.assertTrue(k.is_des("afs/plugh@LOCALREALM"))
     self.assertFalse(k.is_des("afs/xyzzy@LOCALREALM"))
     # The following has a mix of des and non-des.
     self.assertRaises(AssertionError, Keytab.is_des, k,
                       "afs/robotest@LOCALREALM")
     # No keys for the following.
     self.assertRaises(AssertionError, Keytab.is_des, k,
                       "afs/bogus@LOCALREALM")
Beispiel #11
0
 def test_create_fake_aes_key(self):
     fd, filename = tempfile.mkstemp()
     try:
         k = Keytab()
         k.add_fake_key("afs/localcell@LOCALCELL")
         k.write(filename)
         out = subprocess.check_output(
             ["klist", "-e", "-k", "-t", filename]).splitlines()
         self.assertEquals(len(out), 4)
         self.assertTrue(out[0].startswith("Keytab name"))
         self.assertTrue(out[1].startswith("KVNO Timestamp"))
         self.assertTrue(out[2].startswith("----"))
         self.assertTrue("afs/localcell@LOCALCELL" in out[3])
         self.assertTrue("aes256-cts-hmac-sha1-96" in out[3])
     finally:
         os.close(fd)
         os.remove(filename)
Beispiel #12
0
 def test_guess_key_format(self):
     k = Keytab()
     principal = "afs/xyzzy@LOCALREALM"
     k.add_fake_key(principal)
     self.assertEquals(k._guess_key_format(principal), 'extended')
Beispiel #13
0
 def test_service_principals_n(self):
     k = Keytab.load(self.testfile)
     self.assertItemsEqual(k.service_principals(),
         ['afs/xyzzy@LOCALREALM', 'afs/robotest@LOCALREALM', 'afs/plugh@LOCALREALM'])
Beispiel #14
0
 def test_service_principals_1(self):
     k = Keytab()
     k.add_fake_key("afs/foobar@FOOBAR")
     self.assertEquals(len(k.service_principals()), 1)
Beispiel #15
0
 def test_service_principals_0(self):
     k = Keytab()
     self.assertEquals(len(k.service_principals()), 0)
Beispiel #16
0
 def test_get_entries_for_kvno(self):
     k = Keytab()
     k.read(self.testfile)
     entries = k.get_entries("robotest@LOCALREALM", 18)  # not the max kvno
     self.assertIsNotNone(entries)
     self.assertEquals(len(entries), 4)
Beispiel #17
0
 def test_get_entries_for_kvno(self):
     k = Keytab()
     k.read(self.testfile)
     entries = k.get_entries("robotest@LOCALREALM", 18) # not the max kvno
     self.assertIsNotNone(entries)
     self.assertEquals(len(entries), 4)
Beispiel #18
0
 def test_service_principals_0(self):
     k = Keytab()
     self.assertEquals(len(k.service_principals()), 0)
Beispiel #19
0
 def test_service_principals_1(self):
     k = Keytab()
     k.add_fake_key("afs/foobar@FOOBAR")
     self.assertEquals(len(k.service_principals()), 1)
Beispiel #20
0
 def test_service_principals_n(self):
     k = Keytab.load(self.testfile)
     self.assertItemsEqual(k.service_principals(), [
         'afs/xyzzy@LOCALREALM', 'afs/robotest@LOCALREALM',
         'afs/plugh@LOCALREALM'
     ])
Beispiel #21
0
 def test_get_kvno(self):
     k = Keytab()
     k.read(self.testfile)
     self.assertEquals(k.get_kvno("afs/robotest@LOCALREALM"), 10)
     self.assertEquals(k.get_kvno("robotest@LOCALREALM"), 19)
     self.assertEquals(k.get_kvno("bogus@BOGUS"), None)
Beispiel #22
0
 def test_get_kvno(self):
     k = Keytab()
     k.read(self.testfile)
     self.assertEquals(k.get_kvno("afs/robotest@LOCALREALM"), 10)
     self.assertEquals(k.get_kvno("robotest@LOCALREALM"), 19)
     self.assertEquals(k.get_kvno("bogus@BOGUS"), None)