]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: datamodel: types: EscapedStr32B type
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 20 Jun 2023 13:16:12 +0000 (15:16 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Thu, 13 Jul 2023 07:50:22 +0000 (09:50 +0200)
manager/knot_resolver_manager/datamodel/network_schema.py
manager/knot_resolver_manager/datamodel/types/__init__.py
manager/knot_resolver_manager/datamodel/types/types.py

index 10051946ec3dcd8fd871f3d0ba8f5d550a902661..aacb2c4692af3e7a3c184c1587494f8233b6a93a 100644 (file)
@@ -3,7 +3,7 @@ from typing import List, Optional, Union
 from typing_extensions import Literal
 
 from knot_resolver_manager.datamodel.types import (
-    EscapedStr,
+    EscapedStr32B,
     File,
     FilePath,
     Int0_512,
@@ -63,7 +63,7 @@ class TLSSchema(ConfigSchema):
 
     cert_file: Optional[File] = None
     key_file: Optional[File] = None
-    sticket_secret: Optional[EscapedStr] = None
+    sticket_secret: Optional[EscapedStr32B] = None
     sticket_secret_file: Optional[File] = None
     auto_discovery: bool = False
     padding: Union[bool, Int0_512] = True
index d70d33326e8e03eeb4920f64aaac0a223a007dde..c100472bec8dd4996b0278c890c9867545bfd779 100644 (file)
@@ -4,6 +4,7 @@ from .generic_types import ListOrItem
 from .types import (
     DomainName,
     EscapedStr,
+    EscapedStr32B,
     IDPattern,
     Int0_512,
     Int0_65535,
@@ -33,6 +34,7 @@ __all__ = [
     "DNSRecordTypeEnum",
     "DomainName",
     "EscapedStr",
+    "EscapedStr32B",
     "IDPattern",
     "Int0_512",
     "Int0_65535",
index a2ad074af27dc2208fd74b172cc0e042a7fbf3a1..dfc2317cc31b20b044c51a38a91fff5ff55d5019 100644 (file)
@@ -2,7 +2,13 @@ import ipaddress
 import re
 from typing import Any, Dict, Optional, Type, Union
 
-from knot_resolver_manager.datamodel.types.base_types import IntRangeBase, PatternBase, StrBase, UnitBase
+from knot_resolver_manager.datamodel.types.base_types import (
+    IntRangeBase,
+    PatternBase,
+    StrBase,
+    StringLengthBase,
+    UnitBase,
+)
 from knot_resolver_manager.utils.modeling import BaseValueType
 
 
@@ -94,6 +100,14 @@ class EscapedStr(StrBase):
         self._value = "".join(s)
 
 
+class EscapedStr32B(EscapedStr, StringLengthBase):
+    """
+    Same as 'EscapedStr', but minimal length is 32 bytes.
+    """
+
+    _min_bytes: int = 32
+
+
 class DomainName(StrBase):
     """
     Fully or partially qualified domain name.