From 65d054d1a9b8b122096d7994fc2fe675c06f423f Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Thu, 27 Nov 2014 10:29:59 -1000 Subject: add decode_rfc6979_signature helper for DSA/ECDSA --- .../hazmat/primitives/asymmetric/utils.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/cryptography/hazmat/primitives/asymmetric/utils.py (limited to 'src') diff --git a/src/cryptography/hazmat/primitives/asymmetric/utils.py b/src/cryptography/hazmat/primitives/asymmetric/utils.py new file mode 100644 index 00000000..5e35b3f6 --- /dev/null +++ b/src/cryptography/hazmat/primitives/asymmetric/utils.py @@ -0,0 +1,22 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. + +from __future__ import absolute_import, division, print_function + +from pyasn1.codec.der import decoder +from pyasn1.type import namedtype, univ + + +class _DSSSigValue(univ.Sequence): + componentType = namedtype.NamedTypes( + namedtype.NamedType('r', univ.Integer()), + namedtype.NamedType('s', univ.Integer()) + ) + + +def decode_rfc6979_signature(signature): + data = decoder.decode(signature, asn1Spec=_DSSSigValue()) + r = int(data[0].getComponentByName('r')) + s = int(data[0].getComponentByName('s')) + return (r, s) -- cgit v1.2.3