Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

requests-pkcs12

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

requests-pkcs12

Add PKCS#12 support to the requests library in a clean way, without monkey patching or temporary files

  • 1.25
  • PyPI
  • Socket score

Maintainers
1

PKCS#12 support for requests

This library adds PKCS#12 support to the Python requests <http://python-requests.org>__ library.

It is a clean implementation: it uses neither monkey patching nor unencrypted temporary files. Instead, it is integrated into requests as recommended by its authors: creating a custom TransportAdapter, which provides a custom SSLContext.

This library is meant to be a transitional solution until this functionality is provided by requests directly. However, that will take some time. See the corresponding issue <https://github.com/requests/requests/issues/2519>__ for more details.

Usage

For simple one-off requests you can use this library as a drop-in replacement for the requests library:

.. code:: python

from requests_pkcs12 import get

r = get('https://example.com/test', pkcs12_filename='clientcert.p12', pkcs12_password='correcthorsebatterystaple')

If you are using requests sessions <https://requests.readthedocs.io/en/master/user/advanced/>__, use the Pkcs12Adapter:

.. code:: python

from requests import Session from requests_pkcs12 import Pkcs12Adapter

with Session() as s: s.mount('https://example.com', Pkcs12Adapter(pkcs12_filename='clientcert.p12', pkcs12_password='correcthorsebatterystaple')) r = s.get('https://example.com/test')

Installation

This library is available as PyPI package <https://pypi.org/project/requests-pkcs12/>__:

::

pip install requests-pkcs12

Alternatively, you can retrieve the latest development version via Git:

::

git clone https://github.com/m-click/requests_pkcs12

Arguments

The following keyword arguments are supported:

  • pkcs12_filename is a byte string or unicode string that contains the file name of the encrypted PKCS#12 certificate.

    • Either this argument or pkcs12_data must be provided.
  • pkcs12_data is a byte string that contains the encrypted PKCS#12 certificate data.

    • Either this argument or pkcs12_filename must be provided.
  • pkcs12_password is a byte string or unicode string that contains the password.

    • This argument must be provided whenever pkcs12_filename or pkcs12_data is provided.
  • ssl_protocol is a protocol version from the ssl library.

    • This argument is optional and defaults to ssl.PROTOCOL_TLS.

If you use these parameters, don’t use the built-in cert parameter of requests at the same time. However, do use the other parameters. In particular, do use the "verify" parameter <http://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verification>__ to verify the server-side certificate.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc