pybitmessage.highlevelcrypto module

High level cryptographic functions based on pyelliptic OpenSSL bindings.

Note

Upstream pyelliptic was upgraded from SHA1 to SHA256 for signing. We must upgrade PyBitmessage gracefully. More discussion.

makeCryptor(privkey)[source]

Return a private pyelliptic.ECC instance

privToPub(privkey)[source]

Converts hex private key into hex public key

encrypt(msg, hexPubkey)[source]

Encrypts message with hex public key

sign(msg, hexPrivkey, digestAlg='sha256')[source]

Signs with hex private key using SHA1 or SHA256 depending on digestAlg keyword.

verify(msg, sig, hexPubkey)[source]

Verifies with hex public key using SHA1 or SHA256

pointMult(secret)[source]

Does an EC point multiplication; turns a private key into a public key.

Evidently, this type of error can occur very rarely:

>>> File "highlevelcrypto.py", line 54, in pointMult
>>>  group = OpenSSL.EC_KEY_get0_group(k)
>>> WindowsError: exception: access violation reading 0x0000000000000008