changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > core / lisp/ffi/rustls/rustls.lisp

revision 362: b1f78dffbcdd
child 685: ebe3315b7add
     1.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2+++ b/lisp/ffi/rustls/rustls.lisp	Thu May 23 18:23:38 2024 -0400
     1.3@@ -0,0 +1,268 @@
     1.4+;;; rustls/rustls.lisp --- Rustls Alien Routines
     1.5+
     1.6+;;
     1.7+
     1.8+;;; Code:
     1.9+(in-package :rustls)
    1.10+
    1.11+(define-alien-routine rustls-version c-string)
    1.12+
    1.13+(define-alien-routine rustls-acceptor-new (* rustls-acceptor))
    1.14+
    1.15+(define-alien-routine rustls-acceptor-free void (acceptor (* rustls-acceptor)))
    1.16+
    1.17+(define-alien-routine rustls-acceptor-read-tls rustls-io-result
    1.18+  (acceptor (* rustls-acceptor))
    1.19+  (callback #+nil rustls-read-callback (* t))
    1.20+  (userdata (* t))
    1.21+  (out-n (* size-t)))
    1.22+
    1.23+(define-alien-routine rustls-acceptor-accept rustls-result
    1.24+  (acceptor (* rustls-acceptor))
    1.25+  (out-accepted (* (* rustls-accepted)))
    1.26+  (out-alert (* (* rustls-accepted-alert))))
    1.27+
    1.28+(define-alien-routine rustls-accepted-server-name c-string
    1.29+  (accepted (* rustls-accepted)))
    1.30+
    1.31+(define-alien-routine rustls-accepted-signature-scheme (unsigned 16)
    1.32+  (accepted (* rustls-accepted))
    1.33+  (i size-t))
    1.34+
    1.35+(define-alien-routine rustls-accepted-cipher-scheme (unsigned 16)
    1.36+  (accepted (* rustls-accepted))
    1.37+  (i size-t))
    1.38+
    1.39+(define-alien-routine rustls-accepted-alpn rustls-slice-bytes
    1.40+  (accepted (* rustls-accepted))
    1.41+  (i size-t))
    1.42+
    1.43+(define-alien-routine rustls-accepted-into-connection rustls-result
    1.44+  (accepted (* rustls-accepted))
    1.45+  (config (* rustls-server-config))
    1.46+  (out-conn (* (* rustls-connection)))
    1.47+  (out-alert (* (* rustls-accepted-alert))))
    1.48+
    1.49+(define-alien-routine rustls-accepted-free void (accepted (* rustls-accepted)))
    1.50+
    1.51+(define-alien-routine rustls-accepted-alert-write-tls rustls-io-result
    1.52+  (accepted-alert (* rustls-accepted-alert))
    1.53+  (callback rustls-write-callback)
    1.54+  (userdata (* t))
    1.55+  (out-n (* size-t)))
    1.56+
    1.57+(define-alien-routine rustls-accepted-alert-free void
    1.58+  (accepted-alert (* rustls-accepted-alert)))
    1.59+
    1.60+(define-alien-routine rustls-certificate-get-der rustls-result
    1.61+  (cert (* rustls-certificate))
    1.62+  (out-der-data (* (* (unsigned 8))))
    1.63+  (out-der-len (* size-t)))
    1.64+
    1.65+(define-alien-routine rustls-supported-ciphersuite-get-suite (unsigned 16)
    1.66+  (supported-ciphersuite (* rustls-supported-ciphersuite)))
    1.67+
    1.68+(define-alien-routine rustls-supported-ciphersuite-get-name c-string
    1.69+  (supported-ciphersuite (* rustls-supported-ciphersuite)))
    1.70+
    1.71+(define-alien-routine rustls-all-ciphersuites-len size-t)
    1.72+
    1.73+(define-alien-routine rustls-all-ciphersuites-get-entry (* rustls-supported-ciphersuite)
    1.74+  (i size-t))
    1.75+
    1.76+(define-alien-routine rustls-default-ciphersuites-len size-t)
    1.77+
    1.78+(define-alien-routine rustls-default-ciphersuites-get-entry (* rustls-supported-ciphersuite)
    1.79+  (i size-t))
    1.80+
    1.81+(define-alien-routine rustls-certified-key-build rustls-result
    1.82+  (cert-chain (array (unsigned 8)))
    1.83+  (cert-chain-len size-t)
    1.84+  (private-key (array (unsigned 8)))
    1.85+  (private-key-len size-t)
    1.86+  (certified-key-out (* (* rustls-certified-key))))
    1.87+
    1.88+(define-alien-routine rustls-certified-key-get-certificate (* rustls-certificate)
    1.89+  (certified-key (* rustls-certified-key))
    1.90+  (i size-t))
    1.91+
    1.92+(define-alien-routine rustls-certified-key-clone-with-ocsp rustls-result
    1.93+  (certified-key (* rustls-certified-key))
    1.94+  (ocsp-response (* rustls-slice-bytes))
    1.95+  (clone-key-out (* (* rustls-certified-key))))
    1.96+
    1.97+(define-alien-routine rustls-certified-key-free void (key (* rustls-certified-key)))
    1.98+
    1.99+;; (define-alien-routine rustls-root-cert-store-builder-new (* rustls-root-cert-store-builder))
   1.100+
   1.101+(define-alien-routine rustls-root-cert-store-builder-add-pem rustls-result
   1.102+  (builder (* rustls-root-cert-store-builder))
   1.103+  (pem (array (unsigned 8)))
   1.104+  (pem-len size-t)
   1.105+  (strict boolean))
   1.106+
   1.107+(define-alien-routine rustls-root-cert-store-builder-load-roots-from-file rustls-result
   1.108+  (builder (* rustls-root-cert-store-builder))
   1.109+  (filename c-string)
   1.110+  (strict boolean))
   1.111+
   1.112+(define-alien-routine rustls-root-cert-store-builder-build rustls-result
   1.113+  (builder (* rustls-root-cert-store-builder))
   1.114+  (root-cert-store-out (* (* rustls-root-cert-store))))
   1.115+
   1.116+(define-alien-routine rustls-root-cert-store-builder-free void
   1.117+  (builder (* rustls-root-cert-store-builder)))
   1.118+
   1.119+(define-alien-routine rustls-root-cert-store-free void
   1.120+  (storer (* rustls-root-cert-store)))
   1.121+
   1.122+(define-alien-routine rustls-client-cert-verifier-free void
   1.123+  (verifier (* rustls-client-cert-verifier)))
   1.124+
   1.125+(define-alien-routine rustls-web-pki-client-cert-verifier-builder-new (* rustls-web-pki-client-cert-verifier-builder)
   1.126+  (store (* rustls-root-cert-store)))
   1.127+
   1.128+(define-alien-routine rustls-web-pki-client-cert-verifier-builder-add-crl rustls-result
   1.129+  (builder (* rustls-web-pki-client-cert-verifier-builder))
   1.130+  (crl-pem (array (unsigned 8)))
   1.131+  (crl-pem-len size-t))
   1.132+
   1.133+(define-alien-routine rustls-web-pki-client-cert-verifier-only-check-end-entity-revocation rustls-result
   1.134+  (builder (* rustls-web-pki-client-cert-verifier-builder)))
   1.135+
   1.136+(define-alien-routine rustls-web-pki-client-cert-verifier-allow-unknown-revocation-status rustls-result
   1.137+  (builder (* rustls-web-pki-client-cert-verifier-builder)))
   1.138+
   1.139+(define-alien-routine rustls-web-pki-client-cert-verifier-allow-unauthenticated rustls-result
   1.140+  (builder (* rustls-web-pki-client-cert-verifier-builder)))
   1.141+
   1.142+(define-alien-routine rustls-web-pki-client-cert-verifier-clear-root-hint-subjects rustls-result
   1.143+  (builder (* rustls-web-pki-client-cert-verifier-builder)))
   1.144+
   1.145+(define-alien-routine rustls-web-pki-client-cert-verifier-add-root-hint-subjects rustls-result
   1.146+  (builder (* rustls-web-pki-client-cert-verifier-builder))
   1.147+  (store (* rustls-root-cert-store)))
   1.148+
   1.149+(define-alien-routine rustls-web-pki-client-cert-verifier-builder-build rustls-result
   1.150+  (builder (* rustls-web-pki-client-cert-verifier-builder))
   1.151+  (verifier-out (* (* rustls-client-cert-verifier))))
   1.152+
   1.153+(define-alien-routine rustls-web-pki-client-cert-verifier-builder-free void
   1.154+  (builder (* rustls-web-pki-client-cert-verifier-builder)))
   1.155+
   1.156+;;; rustls_web_pki_server_cert_verifier
   1.157+
   1.158+;;; rustls_client_config
   1.159+
   1.160+;;; rustls_client_connection
   1.161+(define-alien-routine rustls-client-connection-new rustls-result
   1.162+  (config (* rustls-client-config))
   1.163+  (server-name c-string)
   1.164+  (conn-out (* (* rustls-connection))))
   1.165+
   1.166+(define-alien-routine rustls-connection-set-userdata void
   1.167+  (conn (* rustls-connection))
   1.168+  (userdata (* t)))
   1.169+
   1.170+(define-alien-routine rustls-connection-set-log-callback void
   1.171+  (conn (* rustls-connection))
   1.172+  (cb rustls-log-callback))
   1.173+
   1.174+(define-alien-routine rustls-connection-read-tls rustls-io-result
   1.175+  (conn (* rustls-connection))
   1.176+  (callback rustls-read-callback)
   1.177+  (userdata (* t))
   1.178+  (out-n (* size-t)))
   1.179+
   1.180+(define-alien-routine rustls-connection-write-tls rustls-io-result
   1.181+  (conn (* rustls-connection))
   1.182+  (callback rustls-write-callback)
   1.183+  (userdata (* t))
   1.184+  (out-n (* size-t)))
   1.185+
   1.186+(define-alien-routine rustls-connection-write-tls-vectored rustls-io-result
   1.187+  (conn (* rustls-connection))
   1.188+  (callback rustls-write-vectored-callback)
   1.189+  (userdata (* t))
   1.190+  (out-n (* size-t)))
   1.191+
   1.192+(define-alien-routine rustls-connection-process-new-packets rustls-result
   1.193+  (conn (* rustls-connection)))
   1.194+
   1.195+(define-alien-routine rustls-connection-wants-read boolean
   1.196+  (conn (* rustls-connection)))
   1.197+
   1.198+(define-alien-routine rustls-connection-wants-write boolean
   1.199+  (conn (* rustls-connection)))
   1.200+
   1.201+(define-alien-routine rustls-connection-is-handshaking boolean
   1.202+  (conn (* rustls-connection)))
   1.203+
   1.204+(define-alien-routine rustls-connection-set-buffer-limit void
   1.205+  (conn (* rustls-connection))
   1.206+  (n size-t))
   1.207+
   1.208+(define-alien-routine rustls-connection-send-close-notify void
   1.209+  (conn (* rustls-connection)))
   1.210+
   1.211+(define-alien-routine rustls-connection-get-peer-certificate (* rustls-certificate)
   1.212+  (conn (* rustls-connection))
   1.213+  (i size-t))
   1.214+
   1.215+(define-alien-routine rustls-connection-get-alpn-protocol void
   1.216+  (conn (* rustls-connection))
   1.217+  (protocol-out (* (array (unsigned 8))))
   1.218+  (protocol-out-len (* size-t)))
   1.219+
   1.220+(define-alien-routine rustls-connection-get-protocol-version (unsigned 16)
   1.221+  (conn (* rustls-connection)))
   1.222+
   1.223+(define-alien-routine rustls-connection-get-negotiated-ciphersuite (* rustls-supported-ciphersuite)
   1.224+  (conn (* rustls-connection)))
   1.225+
   1.226+(define-alien-routine rustls-connection-write rustls-result
   1.227+  (conn (* rustls-connection))
   1.228+  (buf (array (unsigned 8)))
   1.229+  (count size-t)
   1.230+  (out-n (* size-t)))
   1.231+
   1.232+(define-alien-routine rustls-connection-read rustls-result
   1.233+  (conn (* rustls-connection))
   1.234+  (buf (array (unsigned 8)))
   1.235+  (count size-t)
   1.236+  (out-n (* size-t)))
   1.237+
   1.238+(define-alien-routine rustl-connection-free void (* rustls-connection))
   1.239+
   1.240+(define-alien-routine rustls-error void (result rustls-result) (len size-t) (out-n (* size-t)))
   1.241+
   1.242+(define-alien-routine rustls-result-is-cert-errorerror boolean (result rustls-result))
   1.243+
   1.244+(define-alien-routine rustls-log-level-str c-string (level rustls-log-level))
   1.245+
   1.246+(define-alien-routine rustls-slice-slice-bytes-len size-t
   1.247+  (input (* rustls-slice-slice-bytes)))
   1.248+
   1.249+(define-alien-routine rustls-slice-slice-bytes-get rustls-slice-bytes
   1.250+  (input (* rustls-slice-slice-bytes))
   1.251+  (n size-t))
   1.252+
   1.253+(define-alien-routine rustls-slice-str-len size-t
   1.254+  (input (* rustls-slice-str)))
   1.255+
   1.256+(define-alien-routine rustls-slice-str-get c-string
   1.257+  (input (* rustls-slice-str))
   1.258+  (n size-t))
   1.259+
   1.260+;;; rustls_server_config
   1.261+(define-alien-routine rustls-server-config-builder-new (* rustls-server-config-builder))
   1.262+
   1.263+(define-alien-routine rustls-server-config-builder-free void (config (* rustls-server-config-builder)))
   1.264+
   1.265+(define-alien-routine rustls-server-config-builder-build (* rustls-server-config) (* rustls-server-config-builder))
   1.266+
   1.267+(define-alien-routine rustls-server-config-free void (config (* rustls-server-config)))
   1.268+
   1.269+(define-alien-routine rustls-server-connection-new rustls-result
   1.270+  (config (* rustls-server-config))
   1.271+  (conn-out (* (* rustls-connection))))