]> Cypherpunks.ru repositories - pyderasn.git/blobdiff - pyderasn.py
Check for DEFAULTed value also in SET
[pyderasn.git] / pyderasn.py
index 6db8017e12a60a7d7ddfa4202514c31f808bd39e..7edfc8064c2c0571404e2449a7906ea745ffd264 100755 (executable)
@@ -4803,9 +4803,18 @@ class Set(Sequence):
             sub_offset += value_len
             vlen += value_len
             v = v_tail
-            if spec.default is None or value != spec.default:  # pragma: no cover
-                # SeqMixing.test_encoded_default_accepted covers that place
+            if spec.default is None:
                 values[name] = value
+            else:
+                if value != spec.default:
+                    values[name] = value
+                if ctx.get("strict_default_existence", False):
+                    raise DecodeError(
+                        "DEFAULT value met",
+                        klass=self.__class__,
+                        decode_path=sub_decode_path,
+                        offset=sub_offset,
+                    )
         obj = self.__class__(
             schema=self.specs,
             impl=self.tag,