| Copyright | (c) Viktor Dukhovni 2020 |
|---|---|
| License | BSD-3-Clause |
| Maintainer | ietf-dane@dukhovni.org |
| Stability | experimental |
| Safe Haskell | None |
| Language | GHC2024 |
Net.DNSBase.EDNS.Option.Secalgs
Description
RFC 6975 specifies a way for validating end-system resolvers to signal to a server which digital signature and hash algorithms they support. This signalling does not alter server behaviour, rather it just provides a means to server operators to collect data on client algorithm support to assist in planning future algorithm selection.
The format of the associated EDNS options is defined in RFC6975, Section 3 as follows:
0 8 16 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | OPTION-CODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | LIST-LENGTH | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ALG-CODE | ... / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
i.e. a 16-bit count, followed by a sequence of 8-bit algorithm numbers.
The use of SHA-1 in NSEC3 is essentially light-weight obfuscation to discourage casual zone walking. Implementation and adoption of successor algorithms seems unlikely, and would in also be most counter-productive. Therefore, while the N3U option is defined here, it is best left unused. As of February 2020, the IANA registry of NSEC3 hash algorithms lists just SHA-1:
| Value | Description | Reference |
|---|---|---|
| 0 | Reserved | [RFC5155] |
| 1 | SHA-1 | [RFC5155] |
| 2-255 | Unassigned |
This is not expected to change.
Documentation
DNSSEC Algorithm Understood (RFC6975).
Instances
| KnownEdnsOption O_dau Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Associated Types
Methods optionExtensionVal :: forall b -> b ~ O_dau => OptionExtensionVal O_dau Source # optNum :: forall b -> b ~ O_dau => OptNum Source # optPres :: forall b -> b ~ O_dau => Builder -> Builder Source # optEncode :: forall s r. (Typeable r, Eq r, Show r) => O_dau -> SPut s r Source # optDecode :: forall b -> b ~ O_dau => OptionExtensionVal b -> Int -> SGet EdnsOption Source # | |||||
| Presentable O_dau Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Methods present :: O_dau -> Builder -> Builder Source # presentLazy :: O_dau -> ByteString -> ByteString Source # | |||||
| Show O_dau Source # | |||||
| Eq O_dau Source # | |||||
| type OptionExtensionVal O_dau Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs | |||||
DS Hash Understood (RFC6975).
Instances
| KnownEdnsOption O_dhu Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Associated Types
Methods optionExtensionVal :: forall b -> b ~ O_dhu => OptionExtensionVal O_dhu Source # optNum :: forall b -> b ~ O_dhu => OptNum Source # optPres :: forall b -> b ~ O_dhu => Builder -> Builder Source # optEncode :: forall s r. (Typeable r, Eq r, Show r) => O_dhu -> SPut s r Source # optDecode :: forall b -> b ~ O_dhu => OptionExtensionVal b -> Int -> SGet EdnsOption Source # | |||||
| Presentable O_dhu Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Methods present :: O_dhu -> Builder -> Builder Source # presentLazy :: O_dhu -> ByteString -> ByteString Source # | |||||
| Show O_dhu Source # | |||||
| Eq O_dhu Source # | |||||
| type OptionExtensionVal O_dhu Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs | |||||
NSEC3 Hash Understood (RFC6975).
Constructors
| O_N3U [NSEC3HashAlg] |
Instances
| KnownEdnsOption O_n3u Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Associated Types
Methods optionExtensionVal :: forall b -> b ~ O_n3u => OptionExtensionVal O_n3u Source # optNum :: forall b -> b ~ O_n3u => OptNum Source # optPres :: forall b -> b ~ O_n3u => Builder -> Builder Source # optEncode :: forall s r. (Typeable r, Eq r, Show r) => O_n3u -> SPut s r Source # optDecode :: forall b -> b ~ O_n3u => OptionExtensionVal b -> Int -> SGet EdnsOption Source # | |||||
| Presentable O_n3u Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs Methods present :: O_n3u -> Builder -> Builder Source # presentLazy :: O_n3u -> ByteString -> ByteString Source # | |||||
| Show O_n3u Source # | |||||
| Eq O_n3u Source # | |||||
| type OptionExtensionVal O_n3u Source # | |||||
Defined in Net.DNSBase.EDNS.Option.Secalgs | |||||