tomb

the crypto undertaker
git clone git://parazyd.org/tomb.git
Log | Files | Refs | README | LICENSE

test.py (3364B)


      1 import os
      2 import unittest
      3 from tomber import *
      4 from random import randrange
      5 from shutil import rmtree, copyfile
      6 
      7 
      8 class tomberTester(unittest.TestCase):
      9 
     10     @classmethod
     11     def setUpClass(self):
     12         self.pid = str(os.getpid())
     13         self.tombfile = '.'.join([self.pid, 'tomb'])
     14         self.keyfile = '.'.join([self.pid, 'key'])
     15         self.keyfile2 = '.'.join([self.pid, '2ndkey'])
     16         self.exhumedkey = '.'.join([self.pid, 'exhumed'])
     17         self.mountpath = './tmptomb'
     18         os.mkdir(self.mountpath)
     19         # generate a passphrase with spaces
     20         self.passphrase = str(randrange(2 ** 64)).replace("", " ")[1:-1]
     21         self.passphrase2 = str(randrange(2 ** 64))
     22         self.imagefile = '.'.join([self.pid, 'jpg'])
     23         copyfile(
     24             '/'.join([os.path.dirname(os.path.abspath(__file__)), 'test.jpg']),
     25             self.imagefile)
     26 
     27     @classmethod
     28     def tearDownClass(self):
     29         os.unlink(self.tombfile)
     30         os.unlink(self.keyfile)
     31         os.unlink(self.keyfile2)
     32         os.unlink(self.imagefile)
     33         os.unlink(self.exhumedkey)
     34         rmtree(self.mountpath, ignore_errors=True)
     35 
     36     def test_01_dig(self):
     37         """ Dig a tomb of 10mb"""
     38         self.assertTrue(tdig(self.tombfile, 10)[0])
     39 
     40     def test_02_forge(self):
     41         """ Forge a keyfile and set a passphrase """
     42         self.assertTrue(tforge(self.keyfile, self.passphrase)[0])
     43 
     44     def test_03_lock(self):
     45         """ Lock created tomb with forged keyfile """
     46         self.assertTrue(tlock(self.tombfile, self.keyfile, self.passphrase)[0])
     47 
     48     def test_04_open(self):
     49         """ Open the created tomb with forged keyfile and passhrase """
     50         self.assertTrue(topen(
     51                 self.tombfile, self.keyfile, self.passphrase, self.mountpath
     52                 )[0]
     53             )
     54 
     55     def test_05_close(self):
     56         """ Close the created tomb """
     57         self.assertTrue(tclose(self.tombfile.split('.')[0])[0])
     58 
     59     def test_06_resize(self):
     60         """ Resize created tomb to 12mb """
     61         self.assertTrue(tresize(
     62                 self.tombfile, self.keyfile, self.passphrase, 12
     63                 )[0]
     64             )
     65 
     66     def test_07_passwd(self):
     67         """ Change password in keyfile """
     68         self.assertTrue(tpasswd(
     69                 self.keyfile, self.passphrase2, self.passphrase
     70                 )[0]
     71             )
     72 
     73     def test_08_bury(self):
     74         """ Bury keyfile in a image file """
     75         self.assertTrue(tbury(
     76                 self.keyfile, self.passphrase2, self.imagefile
     77                 )[0]
     78             )
     79 
     80     def test_09_exhume(self):
     81         """ Exhume a key from an image """
     82         self.assertTrue(texhume(
     83                 self.exhumedkey, self.passphrase2, self.imagefile
     84                 )[0]
     85             )
     86 
     87     def test_10_setkey(self):
     88         """ Forge a new key and and set different keyfile to created tomb """
     89         tforge(self.keyfile2, self.passphrase)
     90         self.assertTrue(tsetkey(
     91                 self.keyfile,
     92                 self.tombfile,
     93                 self.keyfile2,
     94                 self.passphrase2,
     95                 self.passphrase
     96                 )[0]
     97             )
     98 
     99     def test_11_slam(self):
    100         """ Slam open tombs """
    101         topen(self.tombfile, self.keyfile2, self.passphrase, self.mountpath)
    102         self.assertTrue(tslam()[0])
    103 
    104 if __name__ == '__main__':
    105     unittest.main()