tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pysign.py (991B)


      1 #!/usr/bin/env python
      2 #
      3 # This Source Code Form is subject to the terms of the Mozilla Public
      4 # License, v. 2.0. If a copy of the MPL was not distributed with this
      5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      6 
      7 """
      8 Create an ECDSA signature on the P-384 curve using the SHA-384 hash of data from
      9 stdin. The key used for the signature is the secp384r1Encoded key used in pykey
     10 and pycert.
     11 
     12 The certificates for the content signature tests make use of this program.
     13 You can use pysign.py like this:
     14 
     15 cat test.txt | python pysign.py > test.txt.signature
     16 """
     17 
     18 import base64
     19 import pathlib
     20 import sys
     21 
     22 
     23 # For pykey, find the relative file location and add it to path
     24 toolsDir = (pathlib.Path(__file__).parents[4] / "tools").resolve()
     25 sys.path.append(str(toolsDir))
     26 import pykey
     27 
     28 data = sys.stdin.buffer.read()
     29 
     30 key = pykey.ECCKey("secp384r1")
     31 sig = key.signRaw(b"Content-Signature:\00" + data, pykey.HASH_SHA384)
     32 print(str(base64.b64encode(sig)).replace("+", "-").replace("/", "_"))