Skip to main content

A very poor tool to do S/MIME signatures on binary files, that just works.

Project description

https://img.shields.io/pypi/v/poor-smime-sign.svg https://img.shields.io/travis/seporaitis/poor-smime-sign.svg

A very poor tool to generate S/MIME signatures for arbitrary content & probably insecurely too.

A quick example:

>>> smime_sign(
...     signer_cert_path="/path/to/files/signer.cert",
...     signer_key_path="/path/to/files/signer.pem",
...     recipient_cert_path="/path/to/files/recipient.cert",
...     content="test",
...     output_format="PEM",
... )

Features

  • Does S/MIME signatures.

  • Verifies S/MIME signatures.

Why?

This utility library has single purpose - provide support for making S/MIME signatures on Python2 and 3, which currently lacks any proper libraries for that purpose.

The main use case it is built for: at work our system has to generate Apple Passbook Pass files, which include an S/MIME signature. Currently it is done using M2Crypto.SMIME. While that works - we want to migrate to Python3, and unfortunately for us M2Crypto is not fully supported. smime_sign is a poor man’s solution for this problem.

Internally this does nothing more than call openssl smime, so you might want to see its docs too.

Why not?

  • This may be insecure.

  • This may be slow if you are signing large blobs of text.

API

smime_sign(signer_cert_path, signer_key_path, recipient_cert_path, content, output_format)

Generates and returns signature string for content in output_format.

All *_path arguments must be absolute paths.

content must be a string, not a path.

Example to generate signature for Passbook manifest:

>>> manifest_json = "..."  # JSON string with `manifest.json` content
>>> signature = smime_sign(
...     signer_cert_path="/path/to/files/signer.cert",
...     signer_key_path="/path/to/files/signer.pem",
...     recipient_cert_path="/path/to/files/recipient.cert",
...     content=manifest_json,
...     output_format="DER",
... )

smime_verify(signer_cert_path, content_path, signature_path, signature_format)

Verifies a content_path file against a signature at signature_path.

Note: this function was added to help in the tests only.

Credits

Tools used in rendering this package:

History

1.0.0 (2015-11-27)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poor-smime-sign-1.0.1.tar.gz (12.5 kB view details)

Uploaded Source

File details

Details for the file poor-smime-sign-1.0.1.tar.gz.

File metadata

File hashes

Hashes for poor-smime-sign-1.0.1.tar.gz
Algorithm Hash digest
SHA256 b305524345ec4e20a67f8ffe1d75b2bbc1582680a124dad560ff281d707e0543
MD5 418f09a0fd15472abb85da4bdbe0dbaf
BLAKE2b-256 462359a932835ac811327b1e32e0280f15ebcf4bb319cce54504a7b06b064eb7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page