From: Sergey Matveev Date: Mon, 10 Feb 2020 16:09:23 +0000 (+0300) Subject: Faster Set readiness determining during decode X-Git-Tag: 6.3~1 X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=commitdiff_plain;h=ad6ac8681ad5479b7274165a056624433e0ca2f1 Faster Set readiness determining during decode --- diff --git a/pyderasn.py b/pyderasn.py index ea1b0b9..ed5b763 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -5816,13 +5816,14 @@ class Set(Sequence): tail = v[EOC_LEN:] obj.lenindef = True obj._value = values - if not obj.ready: - raise DecodeError( - "not all values are ready", - klass=self.__class__, - decode_path=decode_path, - offset=offset, - ) + for name, spec in iteritems(self.specs): + if name not in values and not spec.optional: + raise DecodeError( + "%s value is not ready" % name, + klass=self.__class__, + decode_path=decode_path, + offset=offset, + ) obj.ber_encoded = ber_encoded return obj, tail