circuitpython/ports/raspberrypi/common-hal
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
..
alarm allow preserving pin state during deep sleep 2022-09-15 17:35:14 -04:00
analogbufio remove extraneous copyrights 2022-09-15 20:31:08 -04:00
analogio Introduced odule adcbuffer / removed analogio/AnalogFastIn 2022-08-18 16:23:17 -04:00
audiobusio Conditionalize LTO 2022-05-27 12:59:54 -07:00
audiopwmio Conditionalize LTO 2022-05-27 12:59:54 -07:00
board Removed more includes 2021-02-26 22:35:38 -06:00
busio Fix several classes of compiler diagnostic & make fatal 2022-09-30 11:19:22 -05:00
countio Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
digitalio Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
floppyio Add floppyio for rp2040 2022-01-17 16:34:47 -06:00
i2ctarget Remove unused static functions 2022-09-30 11:19:21 -05:00
imagecapture Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
microcontroller pico w: pins improvements 2022-10-07 08:48:36 -05:00
neopixel_write StateMachine: add swap flag 2022-05-06 15:22:43 -05:00
nvm Only ignore warnings if in gcc >= 11 2021-12-22 18:21:18 -08:00
os Additional missing-prototypes fixes 2021-11-10 10:55:53 -06:00
paralleldisplay StateMachine: add swap flag 2022-05-06 15:22:43 -05:00
pulseio Merge pull request #6450 from mwisslead/rp2040_pulsein_common_hal_construct 2022-06-08 08:15:29 -07:00
pwmio Conditionalize LTO 2022-05-27 12:59:54 -07:00
rgbmatrix clear out interrupt flags when disabling timer too 2021-12-27 16:42:41 -06:00
rotaryio StateMachine: add swap flag 2022-05-06 15:22:43 -05:00
rp2pio Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
rtc message consolidation and more use of validators 2022-05-19 15:38:37 -04:00
socketpool Fix unused variable diagnostics, make it a fatal error 2022-09-30 11:19:22 -05:00
ssl picow: Add support of self-signed certificates. 2022-10-10 15:53:56 -05:00
supervisor run code formatting script 2021-03-15 19:27:36 +05:30
watchdog run code formatting script 2021-03-15 19:27:36 +05:30
wifi handle scan channel bounds but note they do nothing for RP2040 CYW43 2022-10-07 16:22:17 -04:00