示例#1
0
    def test_time_range(self):
        log_id_1 = 'C0FE' * 16
        ctlogconfig.time_range(self.cur, [log_id_1, '-', 9999])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, 9999)
        self.assertEqual(rec.url, None)

        ctlogconfig.time_range(self.cur, ['#1', 8888, 9999])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, 8888)
        self.assertEqual(rec.max_valid_timestamp, 9999)
        self.assertEqual(rec.url, None)
示例#2
0
 def test_url_configuration(self):
     # 1. initial definition
     test_url_1 = 'https://log.example.com/foo'
     test_url_2 = test_url_1 + 'XX'
     ctlogconfig.configure_url(self.cur, [test_url_1])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, None)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, test_url_1)
     # 2. update URL of existing record
     ctlogconfig.configure_url(self.cur, ['#1', test_url_2])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, None)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, test_url_2)
示例#3
0
    def test_trust_distrust(self):
        log_id_1 = 'C0FE' * 16
        ctlogconfig.trust_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, 0)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, None)

        ctlogconfig.distrust_log(self.cur, ['#1'])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, 1)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, None)
示例#4
0
 def test_url_configuration(self):
     # 1. initial definition
     test_url_1 = 'https://log.example.com/foo'
     test_url_2 = test_url_1 + 'XX'
     ctlogconfig.configure_url(self.cur, [test_url_1])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, None)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, test_url_1)
     # 2. update URL of existing record
     ctlogconfig.configure_url(self.cur, ['#1', test_url_2])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, None)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, test_url_2)
示例#5
0
    def test_trust_distrust(self):
        log_id_1 = 'C0FE' * 16
        ctlogconfig.trust_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, 0)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, None)

        ctlogconfig.distrust_log(self.cur, ['#1'])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, 1)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, None)
示例#6
0
    def test_time_range(self):
        log_id_1 = 'C0FE' * 16
        ctlogconfig.time_range(self.cur, [log_id_1, '-', 9999])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, 9999)
        self.assertEqual(rec.url, None)

        ctlogconfig.time_range(self.cur, ['#1', 8888, 9999])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, 8888)
        self.assertEqual(rec.max_valid_timestamp, 9999)
        self.assertEqual(rec.url, None)
示例#7
0
 def setUp(self):
     if os.path.exists(db_name):
         os.unlink(db_name)
     ctlogconfig.create_tables(db_name)
     self.cxn = sqlite3.connect(db_name)
     self.cur = self.cxn.cursor()
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 0)
示例#8
0
 def setUp(self):
     if os.path.exists(db_name):
         os.unlink(db_name)
     ctlogconfig.create_tables(db_name)
     self.cxn = sqlite3.connect(db_name)
     self.cur = self.cxn.cursor()
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 0)
示例#9
0
    def test_forget(self):
        log_id_1 = 'C0FE' * 16

        # 1. Configure public key (new entry)
        ctlogconfig.configure_public_key(self.cur, [public_key_file_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        ctlogconfig.forget_log(self.cur, ['#1'])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 0)

        # 2. Distrust a log (new entry)
        ctlogconfig.distrust_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        self.assertEqual(recs[0].log_id, log_id_1)

        ctlogconfig.forget_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 0)
示例#10
0
 def test_key_configuration(self):
     # 1. Configure public key (new entry)
     ctlogconfig.configure_public_key(self.cur, [public_key_file_1])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, public_key_file_1)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, None)
     # 2. update public key of existing record
     ctlogconfig.configure_public_key(self.cur, ['#1', public_key_file_2])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.public_key, public_key_file_2)
示例#11
0
    def test_forget(self):
        log_id_1 = 'C0FE' * 16

        # 1. Configure public key (new entry)
        ctlogconfig.configure_public_key(self.cur,
                                         [public_key_file_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        ctlogconfig.forget_log(self.cur, ['#1'])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 0)

        # 2. Distrust a log (new entry)
        ctlogconfig.distrust_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        self.assertEqual(recs[0].log_id, log_id_1)

        ctlogconfig.forget_log(self.cur, [log_id_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 0)
示例#12
0
 def test_key_configuration(self):
     # 1. Configure public key (new entry)
     ctlogconfig.configure_public_key(self.cur,
                                      [public_key_file_1])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.log_id, None)
     self.assertEqual(rec.public_key, public_key_file_1)
     self.assertEqual(rec.distrusted, None)
     self.assertEqual(rec.min_valid_timestamp, None)
     self.assertEqual(rec.max_valid_timestamp, None)
     self.assertEqual(rec.url, None)
     # 2. update public key of existing record
     ctlogconfig.configure_public_key(self.cur,
                                      ['#1', public_key_file_2])
     recs = ctlogconfig.dump_ll(self.cur)
     self.assertEqual(len(recs), 1)
     rec = recs[0]
     self.assertEqual(rec.id, 1)
     self.assertEqual(rec.public_key, public_key_file_2)
示例#13
0
    def test_url_by_log_id_configuration(self):
        test_url_1 = 'https://log.example.com/foo'
        log_id_1 = 'C0FE' * 16
        ctlogconfig.configure_url(self.cur, [log_id_1, test_url_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, test_url_1)

        # ctauditscts should be able to query it like this:
        stmt = 'SELECT * FROM loginfo WHERE log_id = ?'
        self.cur.execute(stmt, [log_id_1])
        recs = list(self.cur.fetchall())
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec[1], log_id_1)
        self.assertEqual(rec[6], test_url_1)
示例#14
0
    def test_url_by_log_id_configuration(self):
        test_url_1 = 'https://log.example.com/foo'
        log_id_1 = 'C0FE' * 16
        ctlogconfig.configure_url(self.cur, [log_id_1, test_url_1])
        recs = ctlogconfig.dump_ll(self.cur)
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec.id, 1)
        self.assertEqual(rec.log_id, log_id_1)
        self.assertEqual(rec.public_key, None)
        self.assertEqual(rec.distrusted, None)
        self.assertEqual(rec.min_valid_timestamp, None)
        self.assertEqual(rec.max_valid_timestamp, None)
        self.assertEqual(rec.url, test_url_1)

        # ctauditscts should be able to query it like this:
        stmt = 'SELECT * FROM loginfo WHERE log_id = ?'
        self.cur.execute(stmt, [log_id_1])
        recs = list(self.cur.fetchall())
        self.assertEqual(len(recs), 1)
        rec = recs[0]
        self.assertEqual(rec[1], log_id_1)
        self.assertEqual(rec[6], test_url_1)