changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: init rustls

changeset 361: bcfb3e63dff2
parent 360: 5b6a2a8ba83e
child 362: b1f78dffbcdd
author: Richard Westhaver <ellis@rwest.io>
date: Thu, 23 May 2024 00:21:57 -0400
files: lisp/ffi/rustls/constants.lisp lisp/ffi/rustls/pkg.lisp lisp/ffi/rustls/rustls.asd lisp/ffi/rustls/tests.lisp
description: init rustls
     1.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2+++ b/lisp/ffi/rustls/constants.lisp	Thu May 23 00:21:57 2024 -0400
     1.3@@ -0,0 +1,112 @@
     1.4+("rustls.h")
     1.5+
     1.6+((:enum "rustls_result"
     1.7+        ((rustls-result-ok "RUSTLS_RESULT_OK")
     1.8+         (rustls-result-io "RUSTLS_RESULT_IO")
     1.9+         (rustls-result-null-parameter "RUSTLS_RESULT_NULL_PARAMETER")
    1.10+         (rustls-result-invalid-dns-name-error "RUSTLS_RESULT_INVALID_DNS_NAME_ERROR")
    1.11+         (rustls-result-panic "RUSTLS_RESULT_PANIC")
    1.12+         (rustls-result-certificate-parse-error "RUSTLS_RESULT_CERTIFICATE_PARSE_ERROR")
    1.13+         (rustls-result-private-key-parse-error "RUSTLS_RESULT_PRIVATE_KEY_PARSE_ERROR")
    1.14+         (rustls-result-insufficient-size "RUSTLS_RESULT_INSUFFICIENT_SIZE")
    1.15+         (rustls-result-not-found "RUSTLS_RESULT_NOT_FOUND")
    1.16+         (rustls-result-invalid-parameter "RUSTLS_RESULT_INVALID_PARAMETER")
    1.17+         (rustls-result-unexpected-eof "RUSTLS_RESULT_UNEXPECTED_EOF")
    1.18+         (rustls-result-plaintext-empty "RUSTLS_RESULT_PLAINTEXT_EMPTY")
    1.19+         (rustls-result-acceptor-not-ready "RUSTLS_RESULT_ACCEPTOR_NOT_READY")
    1.20+         (rustls-result-already-used "RUSTLS_RESULT_ALREADY_USED")
    1.21+         (rustls-result-certificate-revocation-list-parse-error "RUSTLS_RESULT_CERTIFICATE_REVOCATION_LIST_PARSE_ERROR")
    1.22+         (rustls-result-no-certificates-presented "RUSTLS_RESULT_NO_CERTIFICATES_PRESENTED")
    1.23+         (rustls-result-decrypt-error "RUSTLS_RESULT_DECRYPT_ERROR")
    1.24+         (rustls-result-failed-to-get-current-time "RUSTLS_RESULT_FAILED_TO_GET_CURRENT_TIME")
    1.25+         (rustls-result-failed-to-get-random-bytes "RUSTLS_RESULT_FAILED_TO_GET_RANDOM_BYTES")
    1.26+         (rustls-result-handshake-not-complete "RUSTLS_RESULT_HANDSHAKE_NOT_COMPLETE")
    1.27+         (rustls-result-peer-sent-oversized-record "RUSTLS_RESULT_PEER_SENT_OVERSIZED_RECORD")
    1.28+         (rustls-result-no-application-protocol "RUSTLS_RESULT_NO_APPLICATION_PROTOCOL")
    1.29+         (rustls-result-bad-max-fragment-size "RUSTLS_RESULT_BAD_MAX_FRAGMENT_SIZE")
    1.30+         (rustls-result-unsupported-name-type "RUSTLS_RESULT_UNSUPPORTED_NAME_TYPE")
    1.31+         (rustls-result-encrypt-error "RUSTLS_RESULT_ENCRYPT_ERROR")
    1.32+         (rustls-result-cert-encoding-bad "RUSTLS_RESULT_CERT_ENCODING_BAD")
    1.33+         (rustls-result-cert-expired "RUSTLS_RESULT_CERT_EXPIRED")
    1.34+         (rustls-result-cert-not-yet-valid "RUSTLS_RESULT_CERT_NOT_YET_VALID")
    1.35+         (rustls-result-cert-revoked "RUSTLS_RESULT_CERT_REVOKED")
    1.36+         (rustls-result-cert-unhandled-critical-extension "RUSTLS_RESULT_CERT_UNHANDLED_CRITICAL_EXTENSION")
    1.37+         (rustls-result-cert-unknown-issuer "RUSTLS_RESULT_CERT_UNKNOWN_ISSUER")
    1.38+         (rustls-result-cert-bad-signature "RUSTLS_RESULT_CERT_BAD_SIGNATURE")
    1.39+         (rustls-result-cert-not-valid-for-name "RUSTLS_RESULT_CERT_NOT_VALID_FOR_NAME")
    1.40+         (rustls-result-cert-invalid-purpose "RUSTLS_RESULT_CERT_INVALID_PURPOSE")
    1.41+         (rustls-result-cert-application-verification-failure "RUSTLS_RESULT_CERT_APPLICATION_VERIFICATION_FAILURE")
    1.42+         (rustls-result-cert-other-error "RUSTLS_RESULT_CERT_OTHER_ERROR")
    1.43+         (rustls-result-message-handshake-payload-too-large "RUSTLS_RESULT_MESSAGE_HANDSHAKE_PAYLOAD_TOO_LARGE")
    1.44+         (rustls-result-message-invalid-ccs "RUSTLS_RESULT_MESSAGE_INVALID_CCS")
    1.45+         (rustls-result-message-invalid-content-type "RUSTLS_RESULT_MESSAGE_INVALID_CONTENT_TYPE")
    1.46+         (rustls-result-message-invalid-cert-status-type "RUSTLS_RESULT_MESSAGE_INVALID_CERT_STATUS_TYPE")
    1.47+         (rustls-result-message-invalid-cert-request "RUSTLS_RESULT_MESSAGE_INVALID_CERT_REQUEST")
    1.48+         (rustls-result-message-invalid-dh-params "RUSTLS_RESULT_MESSAGE_INVALID_DH_PARAMS")
    1.49+         (rustls-result-message-invalid-empty-payload "RUSTLS_RESULT_MESSAGE_INVALID_EMPTY_PAYLOAD")
    1.50+         (rustls-result-message-invalid-key-update "RUSTLS_RESULT_MESSAGE_INVALID_KEY_UPDATE")
    1.51+         (rustls-result-message-invalid-server-name "RUSTLS_RESULT_MESSAGE_INVALID_SERVER_NAME")
    1.52+         (rustls-result-message-too-large "RUSTLS_RESULT_MESSAGE_TOO_LARGE")
    1.53+         (rustls-result-message-too-short "RUSTLS_RESULT_MESSAGE_TOO_SHORT")
    1.54+         (rustls-result-message-missing-data "RUSTLS_RESULT_MESSAGE_MISSING_DATA")
    1.55+         (rustls-result-message-missing-key-exchange "RUSTLS_RESULT_MESSAGE_MISSING_KEY_EXCHANGE")
    1.56+         (rustls-result-message-no-signature-schemes "RUSTLS_RESULT_MESSAGE_NO_SIGNATURE_SCHEMES")
    1.57+         (rustls-result-message-trailing-data "RUSTLS_RESULT_MESSAGE_TRAILING_DATA")
    1.58+         (rustls-result-message-unexpected-message "RUSTLS_RESULT_MESSAGE_UNEXPECTED_MESSAGE")
    1.59+         (rustls-result-message-unknown-protocol-version "RUSTLS_RESULT_MESSAGE_UNKNOWN_PROTOCOL_VERSION")
    1.60+         (rustls-result-message-unsupported-compression "RUSTLS_RESULT_MESSAGE_UNSUPPORTED_COMPRESSION")
    1.61+         (rustls-result-message-unsupported-curve-type "RUSTLS_RESULT_MESSAGE_UNSUPPORTED_CURVE_TYPE")
    1.62+         (rustls-result-message-unsupported-key-exchange-algorithm "RUSTLS_RESULT_MESSAGE_UNSUPPORTED_KEY_EXCHANGE_ALGORITHM")
    1.63+         (rustls-result-message-invalid-other "RUSTLS_RESULT_MESSAGE_INVALID_OTHER")
    1.64+         (rustls-result-peer-incompatible-error "RUSTLS_RESULT_PEER_INCOMPATIBLE_ERROR")
    1.65+         (rustls-result-peer-misbehaved-error "RUSTLS_RESULT_PEER_MISBEHAVED_ERROR")
    1.66+         (rustls-result-inappropriate-message "RUSTLS_RESULT_INAPPROPRIATE_MESSAGE")
    1.67+         (rustls-result-inappropriate-handshake-message "RUSTLS_RESULT_INAPPROPRIATE_HANDSHAKE_MESSAGE")
    1.68+         (rustls-result-general "RUSTLS_RESULT_GENERAL")
    1.69+         (rustls-result-alert-close-notify "RUSTLS_RESULT_ALERT_CLOSE_NOTIFY")
    1.70+         (rustls-result-alert-unexpected-message "RUSTLS_RESULT_ALERT_UNEXPECTED_MESSAGE")
    1.71+         (rustls-result-alert-bad-record-mac "RUSTLS_RESULT_ALERT_BAD_RECORD_MAC")
    1.72+         (rustls-result-alert-decryption-failed "RUSTLS_RESULT_ALERT_DECRYPTION_FAILED")
    1.73+         (rustls-result-alert-record-overflow "RUSTLS_RESULT_ALERT_RECORD_OVERFLOW")
    1.74+         (rustls-result-alert-decompression-failure "RUSTLS_RESULT_ALERT_DECOMPRESSION_FAILURE")
    1.75+         (rustls-result-alert-handshake-failure "RUSTLS_RESULT_ALERT_HANDSHAKE_FAILURE")
    1.76+         (rustls-result-alert-no-certificate "RUSTLS_RESULT_ALERT_NO_CERTIFICATE")
    1.77+         (rustls-result-alert-bad-certificate "RUSTLS_RESULT_ALERT_BAD_CERTIFICATE")
    1.78+         (rustls-result-alert-unsupported-certificate "RUSTLS_RESULT_ALERT_UNSUPPORTED_CERTIFICATE")
    1.79+         (rustls-result-alert-certificate-revoked "RUSTLS_RESULT_ALERT_CERTIFICATE_REVOKED")
    1.80+         (rustls-result-alert-certificate-expired "RUSTLS_RESULT_ALERT_CERTIFICATE_EXPIRED")
    1.81+         (rustls-result-alert-certificate-unknown "RUSTLS_RESULT_ALERT_CERTIFICATE_UNKNOWN")
    1.82+         (rustls-result-alert-illegal-parameter "RUSTLS_RESULT_ALERT_ILLEGAL_PARAMETER")
    1.83+         (rustls-result-alert-unknown-ca "RUSTLS_RESULT_ALERT_UNKNOWN_CA")
    1.84+         (rustls-result-alert-access-denied "RUSTLS_RESULT_ALERT_ACCESS_DENIED")
    1.85+         (rustls-result-alert-decode-error "RUSTLS_RESULT_ALERT_DECODE_ERROR")
    1.86+         (rustls-result-alert-decrypt-error "RUSTLS_RESULT_ALERT_DECRYPT_ERROR")
    1.87+         (rustls-result-alert-export-restriction "RUSTLS_RESULT_ALERT_EXPORT_RESTRICTION")
    1.88+         (rustls-result-alert-protocol-version "RUSTLS_RESULT_ALERT_PROTOCOL_VERSION")
    1.89+         (rustls-result-alert-insufficient-security "RUSTLS_RESULT_ALERT_INSUFFICIENT_SECURITY")
    1.90+         (rustls-result-alert-internal-error "RUSTLS_RESULT_ALERT_INTERNAL_ERROR")
    1.91+         (rustls-result-alert-inappropriate-fallback "RUSTLS_RESULT_ALERT_INAPPROPRIATE_FALLBACK")
    1.92+         (rustls-result-alert-user-canceled "RUSTLS_RESULT_ALERT_USER_CANCELED")
    1.93+         (rustls-result-alert-no-renegotiation "RUSTLS_RESULT_ALERT_NO_RENEGOTIATION")
    1.94+         (rustls-result-alert-missing-extension "RUSTLS_RESULT_ALERT_MISSING_EXTENSION")
    1.95+         (rustls-result-alert-unsupported-extension "RUSTLS_RESULT_ALERT_UNSUPPORTED_EXTENSION")
    1.96+         (rustls-result-alert-certificate-unobtainable "RUSTLS_RESULT_ALERT_CERTIFICATE_UNOBTAINABLE")
    1.97+         (rustls-result-alert-unrecognised-name "RUSTLS_RESULT_ALERT_UNRECOGNISED_NAME")
    1.98+         (rustls-result-alert-bad-certificate-status-response "RUSTLS_RESULT_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE")
    1.99+         (rustls-result-alert-bad-certificate-hash-value "RUSTLS_RESULT_ALERT_BAD_CERTIFICATE_HASH_VALUE")
   1.100+         (rustls-result-alert-unknown-psk-identity "RUSTLS_RESULT_ALERT_UNKNOWN_PSK_IDENTITY")
   1.101+         (rustls-result-alert-certificate-required "RUSTLS_RESULT_ALERT_CERTIFICATE_REQUIRED")
   1.102+         (rustls-result-alert-no-application-protocol "RUSTLS_RESULT_ALERT_NO_APPLICATION_PROTOCOL")
   1.103+         (rustls-result-alert-unknown "RUSTLS_RESULT_ALERT_UNKNOWN")
   1.104+         (rustls-result-cert-revocation-list-bad-signature "RUSTLS_RESULT_CERT_REVOCATION_LIST_BAD_SIGNATURE")
   1.105+         (rustls-result-cert-revocation-list-invalid-crl-number "RUSTLS_RESULT_CERT_REVOCATION_LIST_INVALID_CRL_NUMBER")
   1.106+         (rustls-result-cert-revocation-list-invalid-revoked-cert-serial-number "RUSTLS_RESULT_CERT_REVOCATION_LIST_INVALID_REVOKED_CERT_SERIAL_NUMBER")
   1.107+         (rustls-result-cert-revocation-list-issuer-invalid-for-crl "RUSTLS_RESULT_CERT_REVOCATION_LIST_ISSUER_INVALID_FOR_CRL")
   1.108+         (rustls-result-cert-revocation-list-other-error "RUSTLS_RESULT_CERT_REVOCATION_LIST_OTHER_ERROR")
   1.109+         (rustls-result-cert-revocation-list-parse-error "RUSTLS_RESULT_CERT_REVOCATION_LIST_PARSE_ERROR")
   1.110+         (rustls-result-cert-revocation-list-unsupported-crl-version "RUSTLS_RESULT_CERT_REVOCATION_LIST_UNSUPPORTED_CRL_VERSION")
   1.111+         (rustls-result-cert-revocation-list-unsupported-critical-extension "RUSTLS_RESULT_CERT_REVOCATION_LIST_UNSUPPORTED_CRITICAL_EXTENSION")
   1.112+         (rustls-result-cert-revocation-list-unsupported-delta-crl "RUSTLS_RESULT_CERT_REVOCATION_LIST_UNSUPPORTED_DELTA_CRL")
   1.113+         (rustls-result-cert-revocation-list-unsupported-indirect-crl "RUSTLS_RESULT_CERT_REVOCATION_LIST_UNSUPPORTED_INDIRECT_CRL")
   1.114+         (rustls-result-cert-revocation-list-unsupported-revocation-reason "RUSTLS_RESULT_CERT_REVOCATION_LIST_UNSUPPORTED_REVOCATION_REASON")
   1.115+         (rustls-result-client-cert-verifier-builder-no-root-anchors "RUSTLS_RESULT_CLIENT_CERT_VERIFIER_BUILDER_NO_ROOT_ANCHORS"))))
     2.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2+++ b/lisp/ffi/rustls/pkg.lisp	Thu May 23 00:21:57 2024 -0400
     2.3@@ -0,0 +1,20 @@
     2.4+;;; pkg.lisp --- low-level bindings to librustls
     2.5+
     2.6+;;; Commentary:
     2.7+
     2.8+;;; Code:
     2.9+(defpackage :rustls
    2.10+  (:use :cl :sb-alien :std/alien)
    2.11+  (:export :load-rustls))
    2.12+
    2.13+(in-package :rustls)
    2.14+
    2.15+(define-alien-loader "rustls" t "/usr/lib/")
    2.16+
    2.17+(define-alien-type rustls-result unsigned-int)
    2.18+
    2.19+(define-alien-type rustls-tls-version (enum nil (rustls-tls-version-sslv2 512)))
    2.20+
    2.21+(define-alien-type rustls-accepted (struct rustls-accepted))
    2.22+
    2.23+(define-alien-type rustls-accepted-alert (struct rustls-accepted-alert))
     3.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2+++ b/lisp/ffi/rustls/rustls.asd	Thu May 23 00:21:57 2024 -0400
     3.3@@ -0,0 +1,28 @@
     3.4+;;; rustls.asd --- RUSTLS FFI bindings
     3.5+
     3.6+;;
     3.7+
     3.8+;;; Commentary:
     3.9+
    3.10+;; 
    3.11+
    3.12+;;; Code:
    3.13+(eval-when (:compile-toplevel :load-toplevel :execute)
    3.14+  (require :sb-grovel))
    3.15+
    3.16+(defpackage :rustls.sys
    3.17+  (:use :cl :asdf :sb-grovel :sb-alien))
    3.18+
    3.19+(in-package :rustls.sys)
    3.20+
    3.21+(defsystem :rustls
    3.22+  :depends-on (:sb-grovel :std)
    3.23+  :components ((:file "pkg")
    3.24+               (grovel-constants-file "constants"
    3.25+                                      :package :rustls))
    3.26+  :in-order-to ((test-op (test-op "rustls/tests"))))
    3.27+
    3.28+(defsystem :rustls/tests
    3.29+  :depends-on (:rt :rustls)
    3.30+  :components ((:file "tests"))
    3.31+  :perform (test-op (op c) (uiop:symbol-call :rt :do-tests :rustls)))
     4.1--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2+++ b/lisp/ffi/rustls/tests.lisp	Thu May 23 00:21:57 2024 -0400
     4.3@@ -0,0 +1,15 @@
     4.4+;;; rustls/tests.lisp --- librustls tests
     4.5+
     4.6+;;; Code:
     4.7+(defpackage :rustls/tests
     4.8+  (:use :cl :std :rt :rustls))
     4.9+
    4.10+(in-package :rustls/tests)
    4.11+
    4.12+(defsuite :rustls)
    4.13+(in-suite :rustls)
    4.14+
    4.15+(load-rustls)
    4.16+
    4.17+(deftest rustls ())
    4.18+