does python requests use openssl

Does Python Requests Use OpenSSL?

Python Requests is a popular HTTP library that simplifies sending HTTP requests and handling responses. It is widely used for web scraping, testing, and automation purposes. OpenSSL is a cryptographic library that provides secure communication over the internet by implementing SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols. It is an open-source library that is widely used by various software applications.

Python Requests supports HTTPS (HTTP Secure) protocol that encrypts the data sent between the client and the server. It uses various SSL/TLS libraries such as OpenSSL, GnuTLS, NSS (Network Security Services), and SecureTransport to establish a secure connection. Among these libraries, OpenSSL is the most commonly used one.

Python Requests uses OpenSSL to perform various cryptographic operations such as generating a secure random number, creating a digital signature, verifying a digital signature, encrypting and decrypting data, and so on. OpenSSL provides various functions and APIs that can be used by Python Requests to perform these operations.

How to Check if Python Requests is using OpenSSL?

You can check whether Python Requests is using OpenSSL or not by following these steps:

  • Open the Python console or a Python script
  • Import the requests library
  • Send an HTTPS request to a website that uses SSL/TLS encryption
  • Check the SSL library used by Python Requests
import requests

response = requests.get('https://www.example.com')
print(response)

print(response.connection.__dict__['_sslobj'].version())

In the above code, we have imported the requests library and sent an HTTPS request to the example.com website. Then we have printed the response object and checked the SSL library used by Python Requests. We have accessed the SSL object using the __dict__ attribute of the connection object and printed its version using the version() method.

If OpenSSL is being used by Python Requests, then you will see something like this:

'OpenSSL 1.1.1i  8 Dec 2020'

Otherwise, you will see an error message.

Conclusion

Python Requests uses OpenSSL to establish a secure connection over HTTPS protocol. OpenSSL provides various cryptographic functions and APIs that can be used by Python Requests to perform various operations. You can check whether Python Requests is using OpenSSL or not by sending an HTTPS request and checking the SSL library used by it.