X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=pyderasn.py;h=120fb8c53198f18baa52b8c8d3cd874877457d37;hb=e5784a44f35ad9af13c0869416d31bb8ccec5170;hp=2dee5440a85b678ee131e929d346f1a5583bc60d;hpb=79df3a7d1dfac7856a3a3719edb2319387f0dfad;p=pyderasn.git diff --git a/pyderasn.py b/pyderasn.py index 2dee544..120fb8c 100755 --- a/pyderasn.py +++ b/pyderasn.py @@ -1124,7 +1124,7 @@ except ImportError: # pragma: no cover def colored(what, *args, **kwargs): return what -__version__ = "7.1" +__version__ = "7.2" __all__ = ( "agg_octet_string", @@ -2704,11 +2704,11 @@ class Integer(Obj): def __hash__(self): self._assert_ready() - return hash( - self.tag + - bytes(self._expl or b"") + + return hash(b"".join(( + self.tag, + bytes(self._expl or b""), str(self._value).encode("ascii"), - ) + ))) def __eq__(self, their): if isinstance(their, integer_types): @@ -4201,11 +4201,11 @@ class ObjectIdentifier(Obj): def __hash__(self): self._assert_ready() - return hash( - self.tag + - bytes(self._expl or b"") + + return hash(b"".join(( + self.tag, + bytes(self._expl or b""), str(self._value).encode("ascii"), - ) + ))) def __eq__(self, their): if their.__class__ == tuple: @@ -7053,6 +7053,7 @@ def generic_decoder(): # pragma: no cover with_colours=False, with_decode_path=False, decode_path_only=(), + decode_path=(), ): def _pprint_pps(pps): for pp in pps: @@ -7084,7 +7085,7 @@ def generic_decoder(): # pragma: no cover else: for row in _pprint_pps(pp): yield row - return "\n".join(_pprint_pps(obj.pps())) + return "\n".join(_pprint_pps(obj.pps(decode_path))) return SEQUENCEOF(), pprint_any @@ -7149,9 +7150,9 @@ def main(): # pragma: no cover [obj_by_path(_path) for _path in (args.oids or "").split(",")] if args.oids else () ) + from functools import partial if args.schema: schema = obj_by_path(args.schema) - from functools import partial pprinter = partial(pprint, big_blobs=True) else: schema, pprinter = generic_decoder()