SVCB = 64
HTTPS = 65
DSYNC = 66
+ HHIT = 67
+ BRID = 68
SPF = 99
UNSPEC = 103
NID = 104
SVCB = RdataType.SVCB
HTTPS = RdataType.HTTPS
DSYNC = RdataType.DSYNC
+HHIT = RdataType.HHIT
+BRID = RdataType.BRID
SPF = RdataType.SPF
UNSPEC = RdataType.UNSPEC
NID = RdataType.NID
--- /dev/null
+# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
+
+import dns.immutable
+import dns.rdata
+import dns.rdtypes.base64base
+
+
+@dns.immutable.immutable
+class BRID(dns.rdtypes.base64base.Base64Base):
+ """BRID record
+
+ See RFC 9886
+ """
--- /dev/null
+# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
+
+# Copyright (C) 2016 Nominum, Inc.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any purpose with or without fee is hereby granted,
+# provided that the above copyright notice and this permission notice
+# appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+import base64
+
+import dns.exception
+import dns.immutable
+import dns.rdata
+import dns.tokenizer
+
+
+@dns.immutable.immutable
+class Base64Base(dns.rdata.Rdata):
+ """Base type for an rdata whose value is a single base64-encoded bytes."""
+
+ def __init__(self, rdclass, rdtype, value):
+ super().__init__(rdclass, rdtype)
+ self.value = self._as_bytes(value)
+
+ def to_styled_text(self, style: dns.rdata.RdataStyle) -> str:
+ # Fixed style
+ style = style.replace(base64_chunk_size=0)
+ return dns.rdata._styled_base64ify(self.value, style, True)
+
+ @classmethod
+ def from_text(
+ cls, rdclass, rdtype, tok, origin=None, relativize=True, relativize_to=None
+ ):
+ b64 = tok.concatenate_remaining_identifiers().encode()
+ value = base64.b64decode(b64)
+ return cls(rdclass, rdtype, value)
+
+ def _to_wire(self, file, compress=None, origin=None, canonicalize=False):
+ file.write(self.value)
+
+ @classmethod
+ def from_wire_parser(cls, rdclass, rdtype, parser, origin=None):
+ value = parser.get_remaining()
+ return cls(rdclass, rdtype, value)
wallet WALLET EXAMPLE 01234567890abcdef
dsync DSYNC CDS NOTIFY 5300 notify-endpoint.parent.net.
dsync DSYNC CSYNC 128 443 notify-endpoint.parent.net.
+hhit01 HHIT (
+ gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aAD
+ AgECAgE1MAUGAytlcDArMSkwJwYDVQQD
+ DCAyMDAxMDAzZmZlMDAwMDA1NWU2MGEx
+ NTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2
+ MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZ
+ BgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYt
+ MDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJ
+ K1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0ww
+ SjAPBgNVHRMBAf8EBTADAQH/MDcGA1Ud
+ EQEB/wQtMCuHECABAD/+AAAFXmChVx6R
+ oLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUu
+ Y29tMAUGAytlcANBALUPjhIB3rwqXQep
+ r9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc7
+ 5widXnXa5/uDfdKL7dZ83mPHm2Tf32Dv
+ b8AzEw8=
+)
+brid01 BRID (
+ owAAAYIEUQEgAQA//gAKBRMIJGmaS8ay
+ AogFWIkB+t72Zwrt9mcgAQA//gAABV5g
+ oVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3
+ wWvX6MH0QP+o0E/x4T8gAQA//gAABV5g
+ oVcekaC3vC9m1JguvXt7W2o4wxPumaT1
+ IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad
+ 7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVY
+ iQGX4PZnp+72ZyABAD/+AAoFZhXuRdQn
+ CaDOaB424RQa61YNbna8eWt7fLRU5GPM
+ sfEt4wo4AQGAPyABAD/+AAAFXmChVx6R
+ oLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ
+ +XpN5hDiA6JyyxBJvUewxLzPNhTXQp8v
+ ED71XAE82tMmt3fB4zbzWNQLBViJAQrh
+ 9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz
+ /a61BovBSFnRE6Dt/PjcB4FOPdJ2Xmtb
+ guBNBwWXIAEAP/4ACgVmFe5F1CcJoIjy
+ CriJCxAyAWTOHPmlHL02MKSpsHviiTze
+ qwBH9K/Rrz41CYix9HazAIOAZO8FcfU5
+ M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw
+ 9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfo
+ lg+bXxZU+LCQOfna3FvPBh6sTwzqeejo
+ d/ogAQA//gAKBSYO1DdrJW4ogOfc8jTi
+ mYLmTOOyFZoUx2jOOwtB1jnqUJr6bYaw
+ MoPrR3MlKGBGWsVz1yXNqUURoCqYdwsY
+ e61vd5i6YJqnAQ==
+)
apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8
avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes"
b 300 IN CNAME foo.net.
+brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ==
c 300 IN A 73.80.65.49
caa01 3600 IN CAA 0 issue "ca.example.net"
caa02 3600 IN CAA 0 iodef "mailto:security@example.com"
eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a
f 300 IN A 73.80.65.52
gpos01 3600 IN GPOS -22.6882 116.8652 250.0
+hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8=
hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4"
hinfo02 3600 IN HINFO "PC" "NetBSD"
hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
apl02.example. 3600 IN APL 1:224.0.0.0/4 2:ff00::/8
avc01.example. 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes"
b.example. 300 IN CNAME foo.net.
+brid01.example. 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ==
c.example. 300 IN A 73.80.65.49
caa01.example. 3600 IN CAA 0 issue "ca.example.net"
caa02.example. 3600 IN CAA 0 iodef "mailto:security@example.com"
eui64.example. 3600 IN EUI64 00-00-5e-ef-10-00-00-2a
f.example. 300 IN A 73.80.65.52
gpos01.example. 3600 IN GPOS -22.6882 116.8652 250.0
+hhit01.example. 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8=
hinfo01.example. 3600 IN HINFO "Generic PC clone" "NetBSD-1.4"
hinfo02.example. 3600 IN HINFO "PC" "NetBSD"
hip01.example. 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8
avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes"
b 300 IN CNAME foo.net.
+brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ==
c 300 IN A 73.80.65.49
caa01 3600 IN CAA 0 issue "ca.example.net"
caa02 3600 IN CAA 0 iodef "mailto:security@example.com"
eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a
f 300 IN A 73.80.65.52
gpos01 3600 IN GPOS -22.6882 116.8652 250.0
+hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8=
hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4"
hinfo02 3600 IN HINFO "PC" "NetBSD"
hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D
apl02 3600 IN APL 1:224.0.0.0/4 2:ff00::/8
avc01 3600 IN AVC "app-name:WOLFGANG|app-class:OAM|business=yes"
b 300 IN CNAME foo.net.
+brid01 3600 IN BRID owAAAYIEUQEgAQA//gAKBRMIJGmaS8ayAogFWIkB+t72Zwrt9mcgAQA//gAABV5goVcekaC3mZDVsEtyoYBm1AkrUsfUmU+3wWvX6MH0QP+o0E/x4T8gAQA//gAABV5goVcekaC3vC9m1JguvXt7W2o4wxPumaT1IP3TQN3fQP28hpInSIlsSwq8UCNjm2ad7pdTvm2EqfOJQNPKClvRZm4qTO5FDAVYiQGX4PZnp+72ZyABAD/+AAoFZhXuRdQnCaDOaB424RQa61YNbna8eWt7fLRU5GPMsfEt4wo4AQGAPyABAD/+AAAFXmChVx6RoLfv3q+mLRB3ya5TmjY8+3CzdoDZT9RZ+XpN5hDiA6JyyxBJvUewxLzPNhTXQp8vED71XAE82tMmt3fB4zbzWNQLBViJAQrh9mca7/ZnIAEAP/4ACgUmDtQ3ayVuKIIz/a61BovBSFnRE6Dt/PjcB4FOPdJ2XmtbguBNBwWXIAEAP/4ACgVmFe5F1CcJoIjyCriJCxAyAWTOHPmlHL02MKSpsHviiTzeqwBH9K/Rrz41CYix9HazAIOAZO8FcfU5M+WLLJZoaQWBHnMbTQwFWIkB3OL2Z+zw9mcgAQA//gAKBRMIJGmaS8ayyS4vnZfolg+bXxZU+LCQOfna3FvPBh6sTwzqeejod/ogAQA//gAKBSYO1DdrJW4ogOfc8jTimYLmTOOyFZoUx2jOOwtB1jnqUJr6bYawMoPrR3MlKGBGWsVz1yXNqUURoCqYdwsYe61vd5i6YJqnAQ==
c 300 IN A 73.80.65.49
caa01 3600 IN CAA 0 issue "ca.example.net"
caa02 3600 IN CAA 0 iodef "mailto:security@example.com"
eui64 3600 IN EUI64 00-00-5e-ef-10-00-00-2a
f 300 IN A 73.80.65.52
gpos01 3600 IN GPOS -22.6882 116.8652 250.0
+hhit01 3600 IN HHIT gwppM2ZmOCAwMDAwWQFGMIIBQjCB9aADAgECAgE1MAUGAytlcDArMSkwJwYDVQQDDCAyMDAxMDAzZmZlMDAwMDA1NWU2MGExNTcxZTkxYTBiNzAeFw0yNTA0MDkyMDU2MjZaFw0yNTA0MDkyMTU2MjZaMB0xGzAZBgNVBAMMEkRSSVAtUkFBLUEtMTYzNzYtMDAqMAUGAytlcAMhAJmQ1bBLcqGAZtQJK1LH1JlPt8Fr1+jB9ED/qNBP8eE/o0wwSjAPBgNVHRMBAf8EBTADAQH/MDcGA1UdEQEB/wQtMCuHECABAD/+AAAFXmChVx6RoLeGF2h0dHBzOi8vcmFhLmV4YW1wbGUuY29tMAUGAytlcANBALUPjhIB3rwqXQepr9/VDB+hhtwuWZIw1OUkEuDrF6DCkgc75widXnXa5/uDfdKL7dZ83mPHm2Tf32Dvb8AzEw8=
hinfo01 3600 IN HINFO "Generic PC clone" "NetBSD-1.4"
hinfo02 3600 IN HINFO "PC" "NetBSD"
hip01 3600 IN HIP 2 200100107b1a74df365639cc39f1d578 AwEAAbdxyhNuSutc5EMzxTs9LBPCIkOFH8cIvM4p9+LrV4e19WzK00+CI6zBCQTdtWsuxKbWIy87UOoJTwkUs7lBu+Upr1gsNrut79ryra+bSRGQb1slImA8YVJyuIDsj7kwzG7jnERNqnWxZ48AWkskmdHaVDP4BcelrTI3rMXdXF5D