mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 06:25:34 +00:00
[(no branch, rebasing 1880-implement-the-tkey-rr)] [(no branch, rebasing 1880-implement-the-tkey-rr)] [(no branch, rebasing 1880-implement-the-tkey-rr)] [#1880] Checkpoint: UT half done
This commit is contained in:
@@ -1190,7 +1190,7 @@ class TKEY(RR):
|
||||
generally interpreted as a domain name string, and will
|
||||
typically be gss-tsig.
|
||||
- inception (32-bit int): The Inception TTL field.
|
||||
- expiration (32-bit int): The Expiration TTL field.
|
||||
- expire (32-bit int): The Expire TTL field.
|
||||
- mode (16-bit int): The Mode field.
|
||||
- error (16-bit int): The Error field.
|
||||
- key_len (int): The Key Len field.
|
||||
@@ -1210,16 +1210,16 @@ class TKEY(RR):
|
||||
'''
|
||||
|
||||
algorithm = 'gss-tsig'
|
||||
inception = int(time.mktime(datetime.strptime('20210501130000',
|
||||
inception = int(time.mktime(datetime.strptime('20210501120000',
|
||||
dnssec_timefmt).timetuple()))
|
||||
expiration = int(time.mktime(datetime.strptime('20210501130000',
|
||||
dnssec_timefmt).timetuple()))
|
||||
expire = int(time.mktime(datetime.strptime('20210501130000',
|
||||
dnssec_timefmt).timetuple()))
|
||||
mode = 3 # GSS-API
|
||||
error = 0
|
||||
key_len = None
|
||||
key = None # use 'x' *
|
||||
other_len = None
|
||||
other_data = None # same as key
|
||||
key_len = 32
|
||||
key = None # use 'x' * key_len
|
||||
other_len = 0
|
||||
other_data = None
|
||||
|
||||
# TKEY has some special defaults
|
||||
def __init__(self):
|
||||
@@ -1230,11 +1230,9 @@ class TKEY(RR):
|
||||
def dump(self, f):
|
||||
name_wire = encode_name(self.algorithm)
|
||||
key_len = self.key_len
|
||||
if key_len is None:
|
||||
key_len = 0
|
||||
key = self.key
|
||||
if key is None:
|
||||
key = ''
|
||||
key = encode_string('x' * key_len)
|
||||
else:
|
||||
key = encode_string(self.key, key_len)
|
||||
other_len = self.other_len
|
||||
@@ -1242,17 +1240,19 @@ class TKEY(RR):
|
||||
other_len = 0
|
||||
other_data = self.other_data
|
||||
if other_data is None:
|
||||
other_data = ''
|
||||
else:
|
||||
other_data = encode_string(self.other_data, other_len)
|
||||
if self.rdlen is None:
|
||||
self.rdlen = int(len(name_wire) / 2 + 12 + len(mac) / 2 + \
|
||||
self.rdlen = int(len(name_wire) / 2 + 16 + len(key) / 2 + \
|
||||
len(other_data) / 2)
|
||||
self.dump_header(f, self.rdlen)
|
||||
f.write('# Algorithm=%s Inception=%d Expire=%d Mode=%d Error=%d\n' %
|
||||
(self.algorithm, self.inception, self.expire,
|
||||
self.mode, self.error))
|
||||
f.write('%s %08x %08x %04x %04x\n' %
|
||||
(self.algorithm, self.inception, self.expire,
|
||||
self.mode, self.error))
|
||||
f.write('# Algorithm=%s\n' % self.algorithm)
|
||||
f.write('%s\n' % name_wire)
|
||||
f.write('# Inception=%d Expire=%d Mode=%d Error=%d\n' %
|
||||
(self.inception, self.expire, self.mode, self.error))
|
||||
f.write('%08x %08x %04x %04x\n' %
|
||||
(self.inception, self.expire, self.mode, self.error))
|
||||
f.write('# Key Len=%d Key=(see hex)\n' % key_len)
|
||||
f.write('%04x%s\n' % (key_len, ' ' + key if len(key) > 0 else ''))
|
||||
f.write('# Other-Len=%d Other-Data=(see hex)\n' % other_len)
|
||||
|
Reference in New Issue
Block a user