38 lines
690 B
Python
38 lines
690 B
Python
|
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
|
||
|
|
||
|
"""Common zone-related types."""
|
||
|
|
||
|
# This is a separate file to avoid import circularity between dns.zone and
|
||
|
# the implementation of the ZONEMD type.
|
||
|
|
||
|
import hashlib
|
||
|
|
||
|
import dns.enum
|
||
|
|
||
|
|
||
|
class DigestScheme(dns.enum.IntEnum):
|
||
|
"""ZONEMD Scheme"""
|
||
|
|
||
|
SIMPLE = 1
|
||
|
|
||
|
@classmethod
|
||
|
def _maximum(cls):
|
||
|
return 255
|
||
|
|
||
|
|
||
|
class DigestHashAlgorithm(dns.enum.IntEnum):
|
||
|
"""ZONEMD Hash Algorithm"""
|
||
|
|
||
|
SHA384 = 1
|
||
|
SHA512 = 2
|
||
|
|
||
|
@classmethod
|
||
|
def _maximum(cls):
|
||
|
return 255
|
||
|
|
||
|
|
||
|
_digest_hashers = {
|
||
|
DigestHashAlgorithm.SHA384: hashlib.sha384,
|
||
|
DigestHashAlgorithm.SHA512: hashlib.sha512,
|
||
|
}
|