Travaux Pratiques - bsdsocket + amissl
Suite de la découverte de la bsdsocket.library
Avec la bibliothèque bsdsocket.library, on ouvre la porte d'internet, sauf que notre bon vieil AmigaOS est resté à l'ère pré-internet, où il suffisait de se connecter par modem à un serveur en toute confiance, personne ne pouvait intercepter quoi que ce soit. Malheureusement cette époque bénie est révolue. Certaines personnes mal intentionnées, que ce soit des pirates ou des états espionnent tout ce qui transite sur le réseau. Alors mettons nos données dans des tunnels sécurisés...

OpenSSL
OpenSSL est une boîte à outils (API, Application Programming Interface) robuste et complète pour les protocoles TLS (Transport Layer Security) et SSL (Secure Sockets Layer). C'est aussi une bibliothèque de cryptographie polyvalente. Pourquoi vouloir réinventer la roue, ça existe, utilisons-le... Sauf que sur un système donné pour mort, ce n'est pas aussi simple.

AmiSSL
AmiSSL est le portage OpenSSL pour AmigaOS/MorphOS/AROS. Il englobe toutes les fonctionnalités d'OpenSSL dans une bibliothèque partagée à part entière Amiga qui permet aux applications Amiga d'utiliser l'intégralité de l'API OpenSSL via une interface de bibliothèque partagée Amiga standard (par exemple, les navigateurs Web souhaitant prendre en charge HTTPS, etc.) ...

Télécharger AmiSSL-4.x depuis aminet ou depuis github.

Il faut au minimum un AmigaOS 3.x un processeur au moins égal à 68020, plus de 8Mo de mémoire, car ces .library sont énormes.
Bien qu'étant équipé du 3.1.4.1, mais que je n'ai qu'un pauvre A2000 à base de 68000, WinUAE est tout indiqué.

openssl version

OpenSSL 1.1.1i  8 Dec 2020

openssl s_client -connect www.google.com:443
CONNECTED(00000000)
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = GTS CA 1O1
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com
verify return:1
---
Certificate chain
 0 s:C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com
   i:C = US, O = Google Trust Services, CN = GTS CA 1O1
 1 s:C = US, O = Google Trust Services, CN = GTS CA 1O1
   i:OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEyTCCA7GgAwIBAgIQUM2FlxMdf0ICAAAAAIcCIjANBgkqhkiG9w0BAQsFADBC
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMw
EQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTIxMDExOTA4MDQwN1oXDTIxMDQxMzA4MDQw
NlowaDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcT
DU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxFzAVBgNVBAMTDnd3
dy5nb29nbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEm/qFSVRrHj40
m7C9KXwFYVYqNoodl2MxnESyexR4x2cq+ARpFw2DwN4te7H0hj02zliKWjKuEGpu
me6OvCwZkKOCAl4wggJaMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEF
BQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQWYvdGRLFnZOdQdCBgE6z3YMsb
czAfBgNVHSMEGDAWgBSY0fhuEOvPm+xgnxiQG6DrfQn9KzBoBggrBgEFBQcBAQRc
MFowKwYIKwYBBQUHMAGGH2h0dHA6Ly9vY3NwLnBraS5nb29nL2d0czFvMWNvcmUw
KwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jcnQwGQYD
VR0RBBIwEIIOd3d3Lmdvb2dsZS5jb20wIQYDVR0gBBowGDAIBgZngQwBAgIwDAYK
KwYBBAHWeQIFAzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLnBraS5nb29n
L0dUUzFPMWNvcmUuY3JsMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcA9lyUL9F3
MCIUVBgIMJRWjuNNExkzv98MLyALzE7xZOMAAAF3GeMWWwAABAMASDBGAiEAqJMd
YOJ345g5V2HPVjlqCmAhHMEcRvftCiowjS2p2E4CIQD955xd+t5iYsqZt8MRCBLq
0CSCO03B73k06YtGFk0r8wB3AFzcQ5L+5qtFRLFemtRW5hA3+9X6R9yhc5SyXub2
xw7KAAABdxnjFo4AAAQDAEgwRgIhAM/XaCvFcB6Tp+aAX3zt/ONSWoDlpSmRwr2T
TfdOn0JzAiEA29hRHvb13cIYyZI5V4UVPM7q+ESHh6SymAZMClAWLDIwDQYJKoZI
hvcNAQELBQADggEBAAOCfbrvJmlyLM7HGMsl6V5YzsrhXsFrxEg7ceC5/KO0dTI+
7vnHRTQjCexWogDwa/aPcwVxiSe9tYBug/2+GIx0gyq1ypcOT3qbWfzdddfFIGmv
+E+qATKKry6PVX4njjGkym+tf/2qVYnxsOoH71rAKV3EtsHHeAjAo/RjazoJRhIq
eAvdYT+ATqAXlVQiOQzVY6GZGSy6RbnZRJqw5pZsMAY1m3ci6JqSerFcznp0wriV
e7jD3XeOkJdi64HryeZzZNy/PFFy6zauojNfXadFVG5hm9Zp5Bs08oIyG0ljhON1
GSyVraIeoMZDQ7Bs3ku1tG37iC5HTcgXhHmK8Zw=
-----END CERTIFICATE-----
subject=C = US, ST = California, L = Mountain View, O = Google LLC, CN = www.google.com

issuer=C = US, O = Google Trust Services, CN = GTS CA 1O1

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: ECDSA
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 2641 bytes and written 396 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
read:errno=0

Dans le répertoire developer/Examples/AmigaOS3 il y a un https qui ne fonctionne pas très bien (fige)

Conclusion
Maintenant que l'on a installé correctement AmiSSL, on va peut-être pouvoir l'utiliser...