Jeff Epler 0c8b261ec9
picow: Add support of self-signed certificates.
## Testing self-signed certificates and `load_verify_locations`

Obtain the badssl "self-signed" certificate in the correct form:

```sh
openssl s_client -servername self-signed.badssl.com -connect untrusted-root.badssl.com:443 < /dev/null | openssl x509 > self-signed.pem
```

Copy it and the script to CIRCUITPY:
```python
import os
import wifi
import socketpool
import ssl
import adafruit_requests

TEXT_URL = "https://self-signed.badssl.com/"
if not wifi.radio.ipv4_address:
    wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))

pool = socketpool.SocketPool(wifi.radio)
context = ssl.create_default_context()
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} without certificate (should fail)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Failed: {e}")
else:
    print(f"{response.status_code=}, should have failed with exception")

print("Loading server certificate")
with open("/self-signed.pem", "rb") as certfile:
    context.load_verify_locations(cadata=certfile.read())
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} with certificate (should succeed)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Unexpected exception: {e}")
else:
    print(f"{response.status_code=}, should be 200 OK")
```
2022-10-10 15:53:56 -05:00
..
2022-10-07 08:48:36 -05:00
2022-09-28 10:06:33 -05:00
2022-09-30 11:19:21 -05:00
2022-10-07 08:48:36 -05:00
2022-08-26 09:54:16 -05:00
2021-09-19 15:51:43 +02:00
2022-04-23 13:09:36 -05:00
2021-09-19 15:51:43 +02:00
2021-03-15 19:27:36 +05:30
2021-01-20 19:16:56 -08:00
2021-03-18 16:55:42 -07:00
2021-10-15 08:20:54 -05:00
2021-07-21 11:02:55 -07:00
2022-10-07 08:48:36 -05:00
2022-03-11 14:03:04 -05:00
2021-03-15 19:27:36 +05:30
2021-01-20 19:16:56 -08:00
2021-01-20 19:16:56 -08:00
2021-11-10 12:11:06 -06:00

RP2040
==================

This port supports many development boards that utilize RP2040 chips. See
https://circuitpython.org/downloads for all supported boards.


Building
--------

For build instructions see this guide: https://learn.adafruit.com/building-circuitpython/


Port Specific modules
---------------------

.. toctree::
    ../../shared-bindings/rp2pio/index