add DKIM helper
authorRalf Jung <post@ralfj.de>
Thu, 1 Jan 2015 22:00:42 +0000 (23:00 +0100)
committerRalf Jung <post@ralfj.de>
Thu, 1 Jan 2015 22:00:42 +0000 (23:00 +0100)
zone.py

diff --git a/zone.py b/zone.py
index 68a82b32295de60ef4b68fe2f9220d3f81f5871d..dce8b43b1dcde9115de827de1d9afef8651a093b 100644 (file)
--- a/zone.py
+++ b/zone.py
@@ -135,7 +135,7 @@ class MX:
 
 
 class TXT:
-    def __init__(self, name: str, text: str) -> None:
+    def __init__(self, text: str) -> None:
         # test for bad characters
         for c in ('\n', '\r', '\t'):
             if c in text:
@@ -149,6 +149,24 @@ class TXT:
         return zone.RR(owner, 'TXT', '"{0}"'.format(self._text))
 
 
+class DKIM(TXT): # helper class to treat DKIM more antively
+    class Version:
+        DKIM1 = "DKIM1"
+    
+    class Algorithm:
+        RSA = "rsa"
+    
+    def __init__(self, selector, version, alg, key):
+        self._selector = check_label(selector)
+        version = check_label(version)
+        alg = check_label(alg)
+        key = check_key(key)
+        super(self).__init__("v={0}; k={1}; p={2}".format(version, alg, key))
+    
+    def generate_rr(self, owner, zone):
+        return super(self).generate_rr('{0}._domainkey.{1}'.format(self._selector, owner), zone)
+
+
 class SRV:
     def __init__(self, protocol: str, service: str, name: str, port: int, prio: int, weight: int) -> None:
         self._service = check_label(service)