summaryrefslogtreecommitdiff
path: root/dns/rdtypes/ANY/SSHFP.py
diff options
context:
space:
mode:
Diffstat (limited to 'dns/rdtypes/ANY/SSHFP.py')
-rw-r--r--dns/rdtypes/ANY/SSHFP.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/dns/rdtypes/ANY/SSHFP.py b/dns/rdtypes/ANY/SSHFP.py
index cec650a..4c43951 100644
--- a/dns/rdtypes/ANY/SSHFP.py
+++ b/dns/rdtypes/ANY/SSHFP.py
@@ -47,9 +47,16 @@ class SSHFP(dns.rdata.Rdata):
def from_text(cls, rdclass, rdtype, tok, origin = None, relativize = True):
algorithm = tok.get_uint8()
fp_type = tok.get_uint8()
- fingerprint = tok.get_string()
+ chunks = []
+ while 1:
+ t = tok.get().unescape()
+ if t.is_eol_or_eof():
+ break
+ if not t.is_identifier():
+ raise dns.exception.SyntaxError
+ chunks.append(t.value)
+ fingerprint = ''.join(chunks)
fingerprint = fingerprint.decode('hex_codec')
- tok.get_eol()
return cls(rdclass, rdtype, algorithm, fp_type, fingerprint)
from_text = classmethod(from_text)