iUpdate 3rd party libs - clic - Clic is an command line interactive client for gopher written in Common LISP Err bitreich.org 70
hgit clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ URL:git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ bitreich.org 70
1Log /scm/clic/log.gph bitreich.org 70
1Files /scm/clic/files.gph bitreich.org 70
1Refs /scm/clic/refs.gph bitreich.org 70
1Tags /scm/clic/tag bitreich.org 70
1README /scm/clic/file/README.md.gph bitreich.org 70
1LICENSE /scm/clic/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 69ab9eb1f725de700f5a1b740c488a9692fd10e2 /scm/clic/commit/69ab9eb1f725de700f5a1b740c488a9692fd10e2.gph bitreich.org 70
1parent 38eb1e4a49bd594bd6108c0beec5fb3afa09e8fd /scm/clic/commit/38eb1e4a49bd594bd6108c0beec5fb3afa09e8fd.gph bitreich.org 70
hAuthor: Solene Rapenne
Err bitreich.org 70 i- Keyword arguments: Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- method. Just leave its default value. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- rand-seed is an octet sequence to initialize OpenSSL random number generator. Err bitreich.org 70 i- On many platforms, including Linux and Windows, it may be leaved NIL (default), Err bitreich.org 70 i- because OpenSSL initializes the random number generator from OS specific service. But for Err bitreich.org 70 i- example on Solaris it may be necessary to supply this value. The minimum length required Err bitreich.org 70 i- by OpenSSL is 128 bits. See here Err bitreich.org 70 i- http://www.openssl.org/support/faq.html#USER1 for the details. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- Hint: do not use Common Lisp RANDOM function to generate the rand-seed, because the function Err bitreich.org 70 i- usually returns predictable values. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i-
Function CL+SSL:MAKE-CONTEXT (&key (method (ssl-v23-method)) Err bitreich.org 70 i- (disabled-protocols) Err bitreich.org 70 i- (options (list +SSL-OP-ALL+)) Err bitreich.org 70 i- (session-cache-mode +ssl-sess-cache-server+) Err bitreich.org 70 i- (verify-location :default) Err bitreich.org 70 i- (verify-depth 100) Err bitreich.org 70 i- (verify-mode +ssl-verify-peer+) Err bitreich.org 70 i- (verify-callback nil verify-callback-supplied-p) Err bitreich.org 70 i- (cipher-list +default-cipher-list+) Err bitreich.org 70 i- (pem-password-callback 'pem-password-callback))Err bitreich.org 70 i- Err bitreich.org 70 i-
Err bitreich.org 70 i- Creates a new SSL_CTX using SSL_CTX_new Err bitreich.org 70 i- and initializes it according to the specified parameters. Err bitreich.org 70 i- After you're done using the context, don't forget to free it using ssl-ctx-free. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- Exceptions: Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- ssl-error-initialize. When underlying SSL_CTX_new fails. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- Keyword arguments: Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- method. Specifies which supported SSL/TLS to use. Defaults to ssl-v23-method Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- disabled-protocols. List of +SSL-OP-NO-* constants. Denotes disabled SSL/TLS versions. Err bitreich.org 70 i- When method not specified defaults to (list +SSL-OP-NO-SSLv2+ +SSL-OP-NO-SSLv3+) Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- options. SSL context options list. Defaults to (list +SSL-OP-ALL+) Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- session-cache-mode. Enable/Disable session caching. Defaults to +SSL-SESS-CACHE-SERVER+ Err bitreich.org 70 i-
Err bitreich.org 70 i- Err bitreich.org 70
i- verify-location. Location(s) to load CA from. Err bitreich.org 70
i- Possible values Err bitreich.org 70
i-
Err bitreich.org 70
i-
Err bitreich.org 70 i- verify-depth. Sets the maximum depth for the certificate chain verification that shall be allowed for context. Err bitreich.org 70 i- Defaults to 100. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- verify-mode. Sets the verification flags for context to be mode. Available flags Err bitreich.org 70 i-
Err bitreich.org 70
i- verify-callback. The verify-callback is used to control the behaviour when the +SSL-VERIFY-PEER+ flag is set. Err bitreich.org 70
i-
Err bitreich.org 70
i- Please note: this must be CFFI callback i.e. defined as (defcallback
Err bitreich.org 70
i- Defaults to verify-peer-callback which converts chain errors to ssl-error-verify. Err bitreich.org 70
i-
Err bitreich.org 70
i- cipher-list. Sets the list of available ciphers for context. Err bitreich.org 70
i- Possible values described here. Err bitreich.org 70
i-
Err bitreich.org 70
i- Default is expected to change overtime to provide highest security level. Do not rely on its exact value. Err bitreich.org 70
i-
Err bitreich.org 70
i- pem-password-callback. Sets the default password callback called when loading/storing a PEM certificate with encryption. Err bitreich.org 70
i-
Err bitreich.org 70
i- Please note: this must be CFFI callback i.e. defined as (cffi:defcallback
Err bitreich.org 70
i- Defaults to pem-password-callback which simply uses password provided by with-pem-password. Err bitreich.org 70
i-
Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i- Keyword arguments: Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- If fd-or-stream is a lisp stream, the SSL stream will Err bitreich.org 70 i- close it automatically. File descriptors are not closed Err bitreich.org 70 i- automatically. However, if close-callback is non-nil, it Err bitreich.org 70 i- will be called with zero arguments when the SSL stream is closed. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- If unwrap-stream-p is true (the default), a stream for a Err bitreich.org 70 i- file descriptor will be replaced by that file descriptor Err bitreich.org 70 i- automatically. This is similar to passing the result Err bitreich.org 70 i- of stream-fd as an argument, except that a deadline Err bitreich.org 70 i- associated with the stream object will be taken into account, and Err bitreich.org 70 i- that the stream will be closed automatically. As with file Err bitreich.org 70 i- descriptor arguments, no I/O will actually be done on the stream Err bitreich.org 70 i- object. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- certificate is the path to a file containing the PEM-encoded Err bitreich.org 70 i- certificate. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- key is the path to the PEM-encoded key, which may be associated Err bitreich.org 70 i- with the passphrase password. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- If external-format is nil (the default), a plain Err bitreich.org 70 i- (unsigned-byte 8) SSL stream is returned. With a Err bitreich.org 70 i- non-null external-format, a flexi-stream capable of Err bitreich.org 70 i- character I/O will be returned instead, with the specified value Err bitreich.org 70 i- as its initial external format. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- verify can be specified either as NIL if no check should be performed, Err bitreich.org 70 i- :optional to verify the server's certificate if it presented one or Err bitreich.org 70 i- :required to verify the server's certificate Err bitreich.org 70 i- and fail if an invalid or no certificate was presented. Err bitreich.org 70 i- Defaults to *make-ssl-client-stream-verify-default* Err bitreich.org 70 i- which is initialized to :required Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- hostname if specified, will be sent by client during TLS negotiation, Err bitreich.org 70 i- according to the Server Name Indication (SNI) extension to the TLS. Err bitreich.org 70 i- When server handles several domain names, this extension enables the server Err bitreich.org 70 i- to choose certificate for right domain. Also the hostname> is used for Err bitreich.org 70 i- hostname verification if verification is enabled by verify. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i- Note: the RELOAD function clears the global Err bitreich.org 70 i- context and in particular the loaded certificate chain. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i- Allows user to load libssl (and libeay32 on Windows) himself Err bitreich.org 70 i- thus choosing the foreigh library(-ies) path and version to load. Err bitreich.org 70 i- Err bitreich.org 70 i-If specified, neither loading of the cl+ssl ASDF system Err bitreich.org 70 i- nor (cl+ssl:reload) try to load the foreign libraries, Err bitreich.org 70 i- assuming user has loaded them already.
Err bitreich.org 70 i- Err bitreich.org 70 i-Err bitreich.org 70 i- (cffi:load-foreign-library "libssl.so.1.0.0") Err bitreich.org 70 i- Err bitreich.org 70 i- (let ((*features* (cons :cl+ssl-foreign-libs-already-loaded Err bitreich.org 70 i- *features*))) Err bitreich.org 70 i- Err bitreich.org 70 i- (ql:quickload :a-system-which-depends-on-cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i- ;; or just load cl+ssl Err bitreich.org 70 i- (ql:quickload :cl+ssl)) Err bitreich.org 70 i-Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i-
Err bitreich.org 70 i- CL+SSL requires CFFI with callback support. Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- CL Test Grid results: https://common-lisp.net/project/cl-test-grid/library/cl+ssl.html Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2017-07-03 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 201?-??-?? Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2011-05-22 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2011-05-22 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2011-03-25 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2010-05-26 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2009-09-17 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2008-xx-yy Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2007-xx-yy Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2007-07-07 Err bitreich.org 70 i-
Err bitreich.org 70 i-Err bitreich.org 70 i- 2007-01-16: CL+SSL is now available under an MIT-style license. Err bitreich.org 70 i-
Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/bio.lisp b/3rdparties/software/cl+ssl-20190202-git/src/bio.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/bio.lisp.gph bitreich.org 70 i@@ -1,140 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +bio-type-socket+ (logior 5 #x0400 #x0100)) Err bitreich.org 70 i-(defconstant +BIO_FLAGS_READ+ 1) Err bitreich.org 70 i-(defconstant +BIO_FLAGS_WRITE+ 2) Err bitreich.org 70 i-(defconstant +BIO_FLAGS_SHOULD_RETRY+ 8) Err bitreich.org 70 i-(defconstant +BIO_CTRL_FLUSH+ 11) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcstruct bio-method Err bitreich.org 70 i- (type :int) Err bitreich.org 70 i- (name :pointer) Err bitreich.org 70 i- (bwrite :pointer) Err bitreich.org 70 i- (bread :pointer) Err bitreich.org 70 i- (bputs :pointer) Err bitreich.org 70 i- (bgets :pointer) Err bitreich.org 70 i- (ctrl :pointer) Err bitreich.org 70 i- (create :pointer) Err bitreich.org 70 i- (destroy :pointer) Err bitreich.org 70 i- (callback-ctrl :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcstruct bio Err bitreich.org 70 i- (method :pointer) Err bitreich.org 70 i- (callback :pointer) Err bitreich.org 70 i- (cb-arg :pointer) Err bitreich.org 70 i- (init :int) Err bitreich.org 70 i- (shutdown :int) Err bitreich.org 70 i- (flags :int) Err bitreich.org 70 i- (retry-reason :int) Err bitreich.org 70 i- (num :int) Err bitreich.org 70 i- (ptr :pointer) Err bitreich.org 70 i- (next-bio :pointer) Err bitreich.org 70 i- (prev-bio :pointer) Err bitreich.org 70 i- (references :int) Err bitreich.org 70 i- (num-read :unsigned-long) Err bitreich.org 70 i- (num-write :unsigned-long) Err bitreich.org 70 i- (crypto-ex-data-stack :pointer) Err bitreich.org 70 i- (crypto-ex-data-dummy :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-bio-lisp-method () Err bitreich.org 70 i- (let ((m (cffi:foreign-alloc '(:struct bio-method)))) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value m '(:struct bio-method) 'type) Err bitreich.org 70 i- ;; fixme: this is wrong, but presumably still better than some Err bitreich.org 70 i- ;; random value here. Err bitreich.org 70 i- +bio-type-socket+) Err bitreich.org 70 i- (macrolet ((slot (name) Err bitreich.org 70 i- `(cffi:foreign-slot-value m '(:struct bio-method) ,name))) Err bitreich.org 70 i- (setf (slot 'name) (cffi:foreign-string-alloc "lisp")) Err bitreich.org 70 i- (setf (slot 'bwrite) (cffi:callback lisp-write)) Err bitreich.org 70 i- (setf (slot 'bread) (cffi:callback lisp-read)) Err bitreich.org 70 i- (setf (slot 'bputs) (cffi:callback lisp-puts)) Err bitreich.org 70 i- (setf (slot 'bgets) (cffi:null-pointer)) Err bitreich.org 70 i- (setf (slot 'ctrl) (cffi:callback lisp-ctrl)) Err bitreich.org 70 i- (setf (slot 'create) (cffi:callback lisp-create)) Err bitreich.org 70 i- (setf (slot 'destroy) (cffi:callback lisp-destroy)) Err bitreich.org 70 i- (setf (slot 'callback-ctrl) (cffi:null-pointer))) Err bitreich.org 70 i- m)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun bio-new-lisp () Err bitreich.org 70 i- (bio-new *bio-lisp-method*)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; "cargo cult" Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-write :int ((bio :pointer) (buf :pointer) (n :int)) Err bitreich.org 70 i- bio Err bitreich.org 70 i- (dotimes (i n) Err bitreich.org 70 i- (write-byte (cffi:mem-ref buf :unsigned-char i) *socket*)) Err bitreich.org 70 i- (finish-output *socket*) Err bitreich.org 70 i- n) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun clear-retry-flags (bio) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'flags) Err bitreich.org 70 i- (logandc2 (cffi:foreign-slot-value bio '(:struct bio) 'flags) Err bitreich.org 70 i- (logior +BIO_FLAGS_READ+ Err bitreich.org 70 i- +BIO_FLAGS_WRITE+ Err bitreich.org 70 i- +BIO_FLAGS_SHOULD_RETRY+)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun set-retry-read (bio) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'flags) Err bitreich.org 70 i- (logior (cffi:foreign-slot-value bio '(:struct bio) 'flags) Err bitreich.org 70 i- +BIO_FLAGS_READ+ Err bitreich.org 70 i- +BIO_FLAGS_SHOULD_RETRY+))) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-read :int ((bio :pointer) (buf :pointer) (n :int)) Err bitreich.org 70 i- bio buf n Err bitreich.org 70 i- (let ((i 0)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (unless (or (cffi:null-pointer-p buf) (null n)) Err bitreich.org 70 i- (clear-retry-flags bio) Err bitreich.org 70 i- (when (or *blockp* (listen *socket*)) Err bitreich.org 70 i- (setf (cffi:mem-ref buf :unsigned-char i) (read-byte *socket*)) Err bitreich.org 70 i- (incf i)) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- while (and (< i n) Err bitreich.org 70 i- (or (null *partial-read-p*) (listen *socket*))) Err bitreich.org 70 i- do Err bitreich.org 70 i- (setf (cffi:mem-ref buf :unsigned-char i) (read-byte *socket*)) Err bitreich.org 70 i- (incf i)) Err bitreich.org 70 i- #+(or) Err bitreich.org 70 i- (when (zerop i) (set-retry-read bio))) Err bitreich.org 70 i- (end-of-file ())) Err bitreich.org 70 i- i)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-puts :int ((bio :pointer) (buf :string)) Err bitreich.org 70 i- bio buf Err bitreich.org 70 i- (error "lisp-puts not implemented")) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-ctrl :int Err bitreich.org 70 i- ((bio :pointer) (cmd :int) (larg :long) (parg :pointer)) Err bitreich.org 70 i- bio larg parg Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((eql cmd +BIO_CTRL_FLUSH+) 1) Err bitreich.org 70 i- (t Err bitreich.org 70 i- ;; (warn "lisp-ctrl(~A,~A,~A)" cmd larg parg) Err bitreich.org 70 i- 0))) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-create :int ((bio :pointer)) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'init) 1) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'num) 0) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'ptr) (cffi:null-pointer)) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'flags) 0) Err bitreich.org 70 i- 1) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback lisp-destroy :int ((bio :pointer)) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((cffi:null-pointer-p bio) 0) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'init) 0) Err bitreich.org 70 i- (setf (cffi:foreign-slot-value bio '(:struct bio) 'flags) 0) Err bitreich.org 70 i- 1))) Err bitreich.org 70 i- Err bitreich.org 70 i-(setf *bio-lisp-method* nil) ;force reinit if anything changed here Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/conditions.lisp b/3rdparties/software/cl+ssl-20190202-git/src/conditions.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/conditions.lisp.gph bitreich.org 70 i@@ -1,321 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2001, 2003 Eric Marsden Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; "the conditions and ENSURE-SSL-FUNCALL are by Jochen Schmidt." Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(eval-when (:compile-toplevel :load-toplevel :execute) Err bitreich.org 70 i- (defconstant +ssl-error-none+ 0) Err bitreich.org 70 i- (defconstant +ssl-error-ssl+ 1) Err bitreich.org 70 i- (defconstant +ssl-error-want-read+ 2) Err bitreich.org 70 i- (defconstant +ssl-error-want-write+ 3) Err bitreich.org 70 i- (defconstant +ssl-error-want-x509-lookup+ 4) Err bitreich.org 70 i- (defconstant +ssl-error-syscall+ 5) Err bitreich.org 70 i- (defconstant +ssl-error-zero-return+ 6) Err bitreich.org 70 i- (defconstant +ssl-error-want-connect+ 7)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Condition hierarchy Err bitreich.org 70 i-;;; Err bitreich.org 70 i- Err bitreich.org 70 i-(defun read-ssl-error-queue () Err bitreich.org 70 i- (loop Err bitreich.org 70 i- :for error-code = (err-get-error) Err bitreich.org 70 i- :until (zerop error-code) Err bitreich.org 70 i- :collect error-code)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun format-ssl-error-queue (stream-designator queue-designator) Err bitreich.org 70 i- "STREAM-DESIGNATOR is the same as CL:FORMAT accepts: T, NIL, or a stream. Err bitreich.org 70 i-QUEUE-DESIGNATOR is either a list of error codes (as returned Err bitreich.org 70 i-by READ-SSL-ERROR-QUEUE) or an SSL-ERROR condition." Err bitreich.org 70 i- (flet ((body (stream) Err bitreich.org 70 i- (let ((queue (etypecase queue-designator Err bitreich.org 70 i- (ssl-error (ssl-error-queue queue-designator)) Err bitreich.org 70 i- (list queue-designator)))) Err bitreich.org 70 i- (format stream "SSL error queue") Err bitreich.org 70 i- (if queue Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (format stream ":~%") Err bitreich.org 70 i- (loop Err bitreich.org 70 i- :for error-code :in queue Err bitreich.org 70 i- :do (format stream "~a~%" (err-error-string error-code (cffi:null-pointer))))) Err bitreich.org 70 i- (format stream " is empty."))))) Err bitreich.org 70 i- (case stream-designator Err bitreich.org 70 i- ((t) (body *standard-output*)) Err bitreich.org 70 i- ((nil) (let ((s (make-string-output-stream :element-type 'character))) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (body s) Err bitreich.org 70 i- (close s)) Err bitreich.org 70 i- (get-output-stream-string s))) Err bitreich.org 70 i- (otherwise (body stream-designator))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition cl+ssl-error (error) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error (cl+ssl-error) Err bitreich.org 70 i- ( Err bitreich.org 70 i- ;; Stores list of error codes Err bitreich.org 70 i- ;; (as returned by the READ-SSL-ERROR-QUEUE function) Err bitreich.org 70 i- (queue :initform nil :initarg :queue :reader ssl-error-queue))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error/handle (ssl-error) Err bitreich.org 70 i- ((ret :initarg :ret Err bitreich.org 70 i- :reader ssl-error-ret) Err bitreich.org 70 i- (handle :initarg :handle Err bitreich.org 70 i- :reader ssl-error-handle)) Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "Unspecified error ~A on handle ~A~%" Err bitreich.org 70 i- (ssl-error-ret condition) Err bitreich.org 70 i- (ssl-error-handle condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error-initialize (ssl-error) Err bitreich.org 70 i- ((reason :initarg :reason Err bitreich.org 70 i- :reader ssl-error-reason)) Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "SSL initialization error: ~A~%" Err bitreich.org 70 i- (ssl-error-reason condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error-want-something (ssl-error/handle) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-;;;SSL_ERROR_NONE Err bitreich.org 70 i-(define-condition ssl-error-none (ssl-error/handle) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The TLS/SSL I/O operation completed. This result code is returned if and Err bitreich.org 70 i- only if ret > 0.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL operation on handle ~A completed (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_ZERO_RETURN Err bitreich.org 70 i-(define-condition ssl-error-zero-return (ssl-error/handle) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The TLS/SSL connection has been closed. If the protocol version is SSL 3.0 Err bitreich.org 70 i- or TLS 1.0, this result code is returned only if a closure alert has Err bitreich.org 70 i- occurred in the protocol, i.e. if the connection has been closed cleanly. Err bitreich.org 70 i- Note that in this case SSL_ERROR_ZERO_RETURN Err bitreich.org 70 i- does not necessarily indicate that the underlying transport has been Err bitreich.org 70 i- closed.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL connection on handle ~A has been closed (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_WANT_READ Err bitreich.org 70 i-(define-condition ssl-error-want-read (ssl-error-want-something) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The operation did not complete; the same TLS/SSL I/O function should be Err bitreich.org 70 i- called again later. If, by then, the underlying BIO has data available for Err bitreich.org 70 i- reading (if the result code is SSL_ERROR_WANT_READ) or allows writing data Err bitreich.org 70 i- (SSL_ERROR_WANT_WRITE), then some TLS/SSL protocol progress will take place, Err bitreich.org 70 i- i.e. at least part of an TLS/SSL record will be read or written. Note that Err bitreich.org 70 i- the retry may again lead to a SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE Err bitreich.org 70 i- condition. There is no fixed upper limit for the number of iterations that Err bitreich.org 70 i- may be necessary until progress becomes visible at application protocol Err bitreich.org 70 i- level.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL operation on handle ~A did not complete: It wants a READ (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_WANT_WRITE Err bitreich.org 70 i-(define-condition ssl-error-want-write (ssl-error-want-something) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The operation did not complete; the same TLS/SSL I/O function should be Err bitreich.org 70 i- called again later. If, by then, the underlying BIO has data available for Err bitreich.org 70 i- reading (if the result code is SSL_ERROR_WANT_READ) or allows writing data Err bitreich.org 70 i- (SSL_ERROR_WANT_WRITE), then some TLS/SSL protocol progress will take place, Err bitreich.org 70 i- i.e. at least part of an TLS/SSL record will be read or written. Note that Err bitreich.org 70 i- the retry may again lead to a SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE Err bitreich.org 70 i- condition. There is no fixed upper limit for the number of iterations that Err bitreich.org 70 i- may be necessary until progress becomes visible at application protocol Err bitreich.org 70 i- level.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL operation on handle ~A did not complete: It wants a WRITE (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_WANT_CONNECT Err bitreich.org 70 i-(define-condition ssl-error-want-connect (ssl-error-want-something) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The operation did not complete; the same TLS/SSL I/O function should be Err bitreich.org 70 i- called again later. The underlying BIO was not connected yet to the peer Err bitreich.org 70 i- and the call would block in connect()/accept(). The SSL Err bitreich.org 70 i- function should be called again when the connection is established. These Err bitreich.org 70 i- messages can only appear with a BIO_s_connect() or Err bitreich.org 70 i- BIO_s_accept() BIO, respectively. In order to find out, when Err bitreich.org 70 i- the connection has been successfully established, on many platforms Err bitreich.org 70 i- select() or poll() for writing on the socket file Err bitreich.org 70 i- descriptor can be used.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL operation on handle ~A did not complete: It wants a connect first (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_WANT_X509_LOOKUP Err bitreich.org 70 i-(define-condition ssl-error-want-x509-lookup (ssl-error-want-something) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "The operation did not complete because an application callback set by Err bitreich.org 70 i- SSL_CTX_set_client_cert_cb() has asked to be called again. The Err bitreich.org 70 i- TLS/SSL I/O function should be called again later. Details depend on the Err bitreich.org 70 i- application.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "The TLS/SSL operation on handle ~A did not complete: An application callback wants to be called again (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_SYSCALL Err bitreich.org 70 i-(define-condition ssl-error-syscall (ssl-error/handle) Err bitreich.org 70 i- ((syscall :initarg :syscall)) Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "Some I/O error occurred. The OpenSSL error queue may contain more Err bitreich.org 70 i- information on the error. If the error queue is empty (i.e. ERR_get_error() returns 0), Err bitreich.org 70 i- ret can be used to find out more about the error: If ret == 0, an EOF was observed that Err bitreich.org 70 i- violates the protocol. If ret == -1, the underlying BIO reported an I/O error (for socket Err bitreich.org 70 i- I/O on Unix systems, consult errno for details).") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (if (zerop (length (ssl-error-queue condition))) Err bitreich.org 70 i- (case (ssl-error-ret condition) Err bitreich.org 70 i- (0 (format stream "An I/O error occurred: An unexpected EOF was observed on handle ~A (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition))) Err bitreich.org 70 i- (-1 (format stream "An I/O error occurred in the underlying BIO (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-ret condition))) Err bitreich.org 70 i- (otherwise (format stream "An I/O error occurred: undocumented reason (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-ret condition)))) Err bitreich.org 70 i- (format stream "An UNKNOWN I/O error occurred in the underlying BIO (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-ret condition))) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; SSL_ERROR_SSL Err bitreich.org 70 i-(define-condition ssl-error-ssl (ssl-error/handle) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "A failure in the SSL library occurred, usually a protocol error. The Err bitreich.org 70 i- OpenSSL error queue contains more information on the error.") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream Err bitreich.org 70 i- "A failure in the SSL library occurred on handle ~A (return code: ~A).~%" Err bitreich.org 70 i- (ssl-error-handle condition) Err bitreich.org 70 i- (ssl-error-ret condition)) Err bitreich.org 70 i- (format-ssl-error-queue stream condition)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-signal-error (handle syscall error-code original-error) Err bitreich.org 70 i- (let ((queue (read-ssl-error-queue))) Err bitreich.org 70 i- (if (and (eql error-code #.+ssl-error-syscall+) Err bitreich.org 70 i- (not (zerop original-error))) Err bitreich.org 70 i- (error 'ssl-error-syscall Err bitreich.org 70 i- :handle handle Err bitreich.org 70 i- :ret error-code Err bitreich.org 70 i- :queue queue Err bitreich.org 70 i- :syscall syscall) Err bitreich.org 70 i- (error (case error-code Err bitreich.org 70 i- (#.+ssl-error-none+ 'ssl-error-none) Err bitreich.org 70 i- (#.+ssl-error-ssl+ 'ssl-error-ssl) Err bitreich.org 70 i- (#.+ssl-error-want-read+ 'ssl-error-want-read) Err bitreich.org 70 i- (#.+ssl-error-want-write+ 'ssl-error-want-write) Err bitreich.org 70 i- (#.+ssl-error-want-x509-lookup+ 'ssl-error-want-x509-lookup) Err bitreich.org 70 i- (#.+ssl-error-zero-return+ 'ssl-error-zero-return) Err bitreich.org 70 i- (#.+ssl-error-want-connect+ 'ssl-error-want-connect) Err bitreich.org 70 i- (#.+ssl-error-syscall+ 'ssl-error-zero-return) ; this is intentional here. we got an EOF from the syscall (ret is 0) Err bitreich.org 70 i- (t 'ssl-error/handle)) Err bitreich.org 70 i- :handle handle Err bitreich.org 70 i- :ret error-code Err bitreich.org 70 i- :queue queue)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *ssl-verify-error-alist* Err bitreich.org 70 i- '((0 :X509_V_OK) Err bitreich.org 70 i- (2 :X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT) Err bitreich.org 70 i- (3 :X509_V_ERR_UNABLE_TO_GET_CRL) Err bitreich.org 70 i- (4 :X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE) Err bitreich.org 70 i- (5 :X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE) Err bitreich.org 70 i- (6 :X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY) Err bitreich.org 70 i- (7 :X509_V_ERR_CERT_SIGNATURE_FAILURE) Err bitreich.org 70 i- (8 :X509_V_ERR_CRL_SIGNATURE_FAILURE) Err bitreich.org 70 i- (9 :X509_V_ERR_CERT_NOT_YET_VALID) Err bitreich.org 70 i- (10 :X509_V_ERR_CERT_HAS_EXPIRED) Err bitreich.org 70 i- (11 :X509_V_ERR_CRL_NOT_YET_VALID) Err bitreich.org 70 i- (12 :X509_V_ERR_CRL_HAS_EXPIRED) Err bitreich.org 70 i- (13 :X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD) Err bitreich.org 70 i- (14 :X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD) Err bitreich.org 70 i- (15 :X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD) Err bitreich.org 70 i- (16 :X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD) Err bitreich.org 70 i- (17 :X509_V_ERR_OUT_OF_MEM) Err bitreich.org 70 i- (18 :X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) Err bitreich.org 70 i- (19 :X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN) Err bitreich.org 70 i- (20 :X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY) Err bitreich.org 70 i- (21 :X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE) Err bitreich.org 70 i- (22 :X509_V_ERR_CERT_CHAIN_TOO_LONG) Err bitreich.org 70 i- (23 :X509_V_ERR_CERT_REVOKED) Err bitreich.org 70 i- (24 :X509_V_ERR_INVALID_CA) Err bitreich.org 70 i- (25 :X509_V_ERR_PATH_LENGTH_EXCEEDED) Err bitreich.org 70 i- (26 :X509_V_ERR_INVALID_PURPOSE) Err bitreich.org 70 i- (27 :X509_V_ERR_CERT_UNTRUSTED) Err bitreich.org 70 i- (28 :X509_V_ERR_CERT_REJECTED) Err bitreich.org 70 i- (29 :X509_V_ERR_SUBJECT_ISSUER_MISMATCH) Err bitreich.org 70 i- (30 :X509_V_ERR_AKID_SKID_MISMATCH) Err bitreich.org 70 i- (31 :X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH) Err bitreich.org 70 i- (32 :X509_V_ERR_KEYUSAGE_NO_CERTSIGN) Err bitreich.org 70 i- (50 :X509_V_ERR_APPLICATION_VERIFICATION))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-verify-error-keyword (code) Err bitreich.org 70 i- (cadr (assoc code *ssl-verify-error-alist*))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-verify-error-code (keyword) Err bitreich.org 70 i- (caar (member keyword *ssl-verify-error-alist* :key #'cadr))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error-verify (ssl-error) Err bitreich.org 70 i- ((stream :initarg :stream Err bitreich.org 70 i- :reader ssl-error-stream Err bitreich.org 70 i- :documentation "The SSL stream whose peer certificate didn't verify.") Err bitreich.org 70 i- (error-code :initarg :error-code Err bitreich.org 70 i- :reader ssl-error-code Err bitreich.org 70 i- :documentation "The peer certificate verification error code.")) Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (let ((code (ssl-error-code condition))) Err bitreich.org 70 i- (format stream "SSL verify error: ~d~@[ ~a~]" Err bitreich.org 70 i- code (ssl-verify-error-keyword code))))) Err bitreich.org 70 i- (:documentation "This condition is signalled on SSL connection when a peer certificate doesn't verify.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition ssl-error-call (cl+ssl::ssl-error) Err bitreich.org 70 i- ((message :initarg :message)) Err bitreich.org 70 i- (:documentation Err bitreich.org 70 i- "A failure in the SSL library occurred..") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "A failure in OpenSSL library occurred~@[: ~A~].~%" (slot-value condition 'message)) (cl+ssl::format-ssl-error-queue stream (cl+ssl::ssl-error-queue condition))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition asn1-error (cl+ssl-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Asn1 syntax error")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition invalid-asn1-string (cl+ssl-error) Err bitreich.org 70 i- ((type :initarg :type :initform nil)) Err bitreich.org 70 i- (:documentation "ASN.1 string parsing/validation error") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "ASN.1 syntax error: invalid asn1 string (expected type ~a)" (slot-value condition 'type))))) ;; TODO: when moved to grovel use enum symbol here Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition server-certificate-missing (cl+ssl-error simple-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "SSL server didn't present a certificate")) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/context.lisp b/3rdparties/software/cl+ssl-20190202-git/src/context.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/context.lisp.gph bitreich.org 70 i@@ -1,127 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition verify-location-not-found-error (ssl-error) Err bitreich.org 70 i- ((location :initarg :location)) Err bitreich.org 70 i- (:documentation "Unable to find verify locations") Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "Unable to find verify location. Path: ~A" (slot-value condition 'location))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun validate-verify-location (location) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((uiop:file-exists-p location) Err bitreich.org 70 i- (values location t)) Err bitreich.org 70 i- ((uiop:directory-exists-p location) Err bitreich.org 70 i- (values location nil)) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (error 'verify-location-not-found-error :location location))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun add-verify-locations (ctx locations) Err bitreich.org 70 i- (dolist (location locations) Err bitreich.org 70 i- (multiple-value-bind (location isfile) Err bitreich.org 70 i- (validate-verify-location location) Err bitreich.org 70 i- (cffi:with-foreign-strings ((location-ptr location)) Err bitreich.org 70 i- (unless (= 1 (cl+ssl::ssl-ctx-load-verify-locations Err bitreich.org 70 i- ctx Err bitreich.org 70 i- (if isfile location-ptr (cffi:null-pointer)) Err bitreich.org 70 i- (if isfile (cffi:null-pointer) location-ptr))) Err bitreich.org 70 i- (error 'ssl-error :queue (read-ssl-error-queue) :message (format nil "Unable to load verify location ~A" location))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-ctx-set-verify-location (ctx location) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((eq :default location) Err bitreich.org 70 i- (unless (= 1 (ssl-ctx-set-default-verify-paths ctx)) Err bitreich.org 70 i- (error 'ssl-error-call :queue (read-ssl-error-queue) :message (format nil "Unable to load default verify paths")))) Err bitreich.org 70 i- ;; TODO: design how to load ffi-1.1.0.lisp when and only when corresponding OpenSSL version is available Err bitreich.org 70 i- ;; ((eq :default-file location) Err bitreich.org 70 i- ;; (unless (= 1 (openssl-1.1.0:ssl-ctx-set-default-verify-file ctx)) Err bitreich.org 70 i- ;; (error 'ssl-error-call :queue (read-ssl-error-queue) :message (format nil "Unable to load default verify file")))) Err bitreich.org 70 i- ;; ((eq :default-dir location) Err bitreich.org 70 i- ;; (unless (= 1 (openssl-1.1.0:ssl-ctx-set-default-verify-dir ctx)) Err bitreich.org 70 i- ;; (error 'ssl-error-call :queue (read-ssl-error-queue) :message (format nil "Unable to load default verify dir")))) Err bitreich.org 70 i- ((stringp location) Err bitreich.org 70 i- (add-verify-locations ctx (list location))) Err bitreich.org 70 i- ((pathnamep location) Err bitreich.org 70 i- (add-verify-locations ctx (list location))) Err bitreich.org 70 i- ((and location (listp location)) Err bitreich.org 70 i- (add-verify-locations ctx location)) Err bitreich.org 70 i- ;; silently allow NIL as location Err bitreich.org 70 i- (location Err bitreich.org 70 i- (error "Invalid location ~a" location)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(alexandria:define-constant +default-cipher-list+ Err bitreich.org 70 i- (format nil Err bitreich.org 70 i- "ECDHE-RSA-AES256-GCM-SHA384:~ Err bitreich.org 70 i- ECDHE-RSA-AES256-SHA384:~ Err bitreich.org 70 i- ECDHE-RSA-AES256-SHA:~ Err bitreich.org 70 i- ECDHE-RSA-AES128-GCM-SHA256:~ Err bitreich.org 70 i- ECDHE-RSA-AES128-SHA256:~ Err bitreich.org 70 i- ECDHE-RSA-AES128-SHA:~ Err bitreich.org 70 i- ECDHE-RSA-RC4-SHA:~ Err bitreich.org 70 i- DHE-RSA-AES256-GCM-SHA384:~ Err bitreich.org 70 i- DHE-RSA-AES256-SHA256:~ Err bitreich.org 70 i- DHE-RSA-AES256-SHA:~ Err bitreich.org 70 i- DHE-RSA-AES128-GCM-SHA256:~ Err bitreich.org 70 i- DHE-RSA-AES128-SHA256:~ Err bitreich.org 70 i- DHE-RSA-AES128-SHA:~ Err bitreich.org 70 i- AES256-GCM-SHA384:~ Err bitreich.org 70 i- AES256-SHA256:~ Err bitreich.org 70 i- AES256-SHA:~ Err bitreich.org 70 i- AES128-GCM-SHA256:~ Err bitreich.org 70 i- AES128-SHA256:~ Err bitreich.org 70 i- AES128-SHA") :test 'equal) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback verify-peer-callback :int ((ok :int) (ctx :pointer)) Err bitreich.org 70 i- (let ((error-code (x509-store-ctx-get-error ctx))) Err bitreich.org 70 i- (unless (= error-code 0) Err bitreich.org 70 i- (error 'ssl-error-verify :error-code error-code)) Err bitreich.org 70 i- ok)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-context (&key (method nil method-supplied-p) Err bitreich.org 70 i- (disabled-protocols) Err bitreich.org 70 i- (options (list +SSL-OP-ALL+)) Err bitreich.org 70 i- (session-cache-mode +ssl-sess-cache-server+) Err bitreich.org 70 i- (verify-location :default) Err bitreich.org 70 i- (verify-depth 100) Err bitreich.org 70 i- (verify-mode +ssl-verify-peer+) Err bitreich.org 70 i- (verify-callback nil verify-callback-supplied-p) Err bitreich.org 70 i- (cipher-list +default-cipher-list+) Err bitreich.org 70 i- (pem-password-callback 'pem-password-callback)) Err bitreich.org 70 i- (ensure-initialized) Err bitreich.org 70 i- (let ((ctx (ssl-ctx-new (if method-supplied-p Err bitreich.org 70 i- method Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (unless disabled-protocols Err bitreich.org 70 i- (setf disabled-protocols Err bitreich.org 70 i- (list +SSL-OP-NO-SSLv2+ +SSL-OP-NO-SSLv3+))) Err bitreich.org 70 i- (ssl-v23-method)))))) Err bitreich.org 70 i- (when (cffi:null-pointer-p ctx) Err bitreich.org 70 i- (error 'ssl-error-initialize :reason "Can't create new SSL CTX" :queue (read-ssl-error-queue))) Err bitreich.org 70 i- (handler-bind ((error (lambda (_) Err bitreich.org 70 i- (declare (ignore _)) Err bitreich.org 70 i- (ssl-ctx-free ctx)))) Err bitreich.org 70 i- (ssl-ctx-set-options ctx (apply #'logior (append disabled-protocols options))) Err bitreich.org 70 i- (ssl-ctx-set-session-cache-mode ctx session-cache-mode) Err bitreich.org 70 i- (ssl-ctx-set-verify-location ctx verify-location) Err bitreich.org 70 i- (ssl-ctx-set-verify-depth ctx verify-depth) Err bitreich.org 70 i- (ssl-ctx-set-verify ctx verify-mode (if verify-callback Err bitreich.org 70 i- (cffi:get-callback verify-callback) Err bitreich.org 70 i- (if verify-callback-supplied-p Err bitreich.org 70 i- (cffi:null-pointer) Err bitreich.org 70 i- (if (= verify-mode +ssl-verify-peer+) Err bitreich.org 70 i- (cffi:callback verify-peer-callback) Err bitreich.org 70 i- (cffi:null-pointer))))) Err bitreich.org 70 i- (ssl-ctx-set-cipher-list ctx cipher-list) Err bitreich.org 70 i- (ssl-ctx-set-default-passwd-cb ctx (cffi:get-callback pem-password-callback)) Err bitreich.org 70 i- ctx))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun call-with-global-context (context auto-free-p body-fn) Err bitreich.org 70 i- (let* ((*ssl-global-context* context)) Err bitreich.org 70 i- (unwind-protect (funcall body-fn) Err bitreich.org 70 i- (when auto-free-p Err bitreich.org 70 i- (ssl-ctx-free context))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-global-context ((context &key auto-free-p) &body body) Err bitreich.org 70 i- `(call-with-global-context ,context ,auto-free-p (lambda () ,@body))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/ffi-1.1.0.lisp b/3rdparties/software/cl+ssl-20190202-git/src/ffi-1.1.0.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/ffi-1.1.0.lisp.gph bitreich.org 70 i@@ -1,22 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(defpackage :openssl-1.1.0 Err bitreich.org 70 i- (:nicknames :ossl-1.1.0 :ossl110) Err bitreich.org 70 i- (:use :common-lisp) Err bitreich.org 70 i- (:export #:ssl-ctx-set-default-verify-dir Err bitreich.org 70 i- #:ssl-ctx-set-default-verify-file)) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :openssl-1.1.0) Err bitreich.org 70 i- Err bitreich.org 70 i-;; TODO: factor out define-ssl-function into a common dependency from ffi.lisp Err bitreich.org 70 i-;; and use it here. Or just move these functions to ffi.lisp if enough time passes Err bitreich.org 70 i-;; and OpenSSL 1.1 or later is available universally. Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcfun ("SSL_CTX_set_default_verify_dir" ssl-ctx-set-default-verify-dir) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcfun ("SSL_CTX_set_default_verify_file" ssl-ctx-set-default-verify-file) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-all.lisp b/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-all.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-all.lisp.gph bitreich.org 70 i@@ -1,16 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +initial-buffer-size+ 2048) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim Err bitreich.org 70 i- (inline Err bitreich.org 70 i- make-buffer Err bitreich.org 70 i- buffer-length Err bitreich.org 70 i- buffer-elt Err bitreich.org 70 i- set-buffer-elt Err bitreich.org 70 i- s/b-replace Err bitreich.org 70 i- b/s-replace)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-clisp.lisp b/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-clisp.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer-clisp.lisp.gph bitreich.org 70 i@@ -1,53 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package" "reload" "conditions" "ffi" "ffi-buffer-all"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-buffer (size) Err bitreich.org 70 i- (cffi-sys:%foreign-alloc size)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun buffer-length (buf) Err bitreich.org 70 i- (declare (ignore buf)) Err bitreich.org 70 i- +initial-buffer-size+) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun buffer-elt (buf index) Err bitreich.org 70 i- (ffi:memory-as buf 'ffi:uint8 index)) Err bitreich.org 70 i-(defun set-buffer-elt (buf index val) Err bitreich.org 70 i- (setf (ffi:memory-as buf 'ffi:uint8 index) val)) Err bitreich.org 70 i-(defsetf buffer-elt set-buffer-elt) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim Err bitreich.org 70 i- (inline calc-buf-end)) Err bitreich.org 70 i- Err bitreich.org 70 i-;; to calculate non NIL value of the buffer end index Err bitreich.org 70 i-(defun calc-buf-end (buf-start seq seq-start seq-end) Err bitreich.org 70 i- (+ buf-start Err bitreich.org 70 i- (- (or seq-end (length seq)) Err bitreich.org 70 i- seq-start))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun s/b-replace (seq buf &key (start1 0) end1 (start2 0) end2) Err bitreich.org 70 i- (when (null end2) Err bitreich.org 70 i- (setf end2 (calc-buf-end start2 seq start1 end1))) Err bitreich.org 70 i- (replace Err bitreich.org 70 i- seq Err bitreich.org 70 i- (ffi:memory-as buf (ffi:parse-c-type `(ffi:c-array ffi:uint8 ,(- end2 start2))) start2) Err bitreich.org 70 i- :start1 start1 Err bitreich.org 70 i- :end1 end1)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun as-vector (seq) Err bitreich.org 70 i- (if (typep seq 'vector) Err bitreich.org 70 i- seq Err bitreich.org 70 i- (make-array (length seq) :initial-contents seq :element-type '(unsigned-byte 8)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun b/s-replace (buf seq &key (start1 0) end1 (start2 0) end2) Err bitreich.org 70 i- (when (null end1) Err bitreich.org 70 i- (setf end1 (calc-buf-end start1 seq start2 end2))) Err bitreich.org 70 i- (setf Err bitreich.org 70 i- (ffi:memory-as buf (ffi:parse-c-type `(ffi:c-array ffi:uint8 ,(- end1 start1))) start1) Err bitreich.org 70 i- (as-vector (subseq seq start2 end2))) Err bitreich.org 70 i- seq) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-pointer-to-vector-data ((ptr buf) &body body) Err bitreich.org 70 i- `(let ((,ptr ,buf)) Err bitreich.org 70 i- ,@body)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer.lisp b/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/ffi-buffer.lisp.gph bitreich.org 70 i@@ -1,26 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-buffer (size) Err bitreich.org 70 i- (cffi-sys::make-shareable-byte-vector size)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun buffer-length (buf) Err bitreich.org 70 i- (length buf)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun buffer-elt (buf index) Err bitreich.org 70 i- (elt buf index)) Err bitreich.org 70 i-(defun set-buffer-elt (buf index val) Err bitreich.org 70 i- (setf (elt buf index) val)) Err bitreich.org 70 i-(defsetf buffer-elt set-buffer-elt) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun s/b-replace (seq buf &key (start1 0) end1 (start2 0) end2) Err bitreich.org 70 i- (replace seq buf :start1 start1 :end1 end1 :start2 start2 :end2 end2)) Err bitreich.org 70 i-(defun b/s-replace (buf seq &key (start1 0) end1 (start2 0) end2) Err bitreich.org 70 i- (replace buf seq :start1 start1 :end1 end1 :start2 start2 :end2 end2)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-pointer-to-vector-data ((ptr buf) &body body) Err bitreich.org 70 i- `(cffi-sys::with-pointer-to-vector-data (,ptr ,buf) Err bitreich.org 70 i- ,@body)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/ffi.lisp b/3rdparties/software/cl+ssl-20190202-git/src/ffi.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/ffi.lisp.gph bitreich.org 70 i@@ -1,825 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2001, 2003 Eric Marsden Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; "the conditions and ENSURE-SSL-FUNCALL are by Jochen Schmidt." Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package" "conditions"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(eval-when (:compile-toplevel) Err bitreich.org 70 i- (declaim Err bitreich.org 70 i- (optimize (speed 3) (space 1) (safety 1) (debug 0) (compilation-speed 0)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Code for checking that we got the correct foreign symbols right. Err bitreich.org 70 i-;;; Implemented only for LispWorks for now. Err bitreich.org 70 i-(defvar *cl+ssl-ssl-foreign-function-names* nil) Err bitreich.org 70 i-(defvar *cl+ssl-crypto-foreign-function-names* nil) Err bitreich.org 70 i-#+lispworks Err bitreich.org 70 i-(defun check-cl+ssl-symbols () Err bitreich.org 70 i- (dolist (ssl-symbol *cl+ssl-ssl-foreign-function-names*) Err bitreich.org 70 i- (when (fli:null-pointer-p (fli:make-pointer :symbol-name ssl-symbol :module 'libssl :errorp nil)) Err bitreich.org 70 i- (format *error-output* "Symbol ~s undefined~%" ssl-symbol))) Err bitreich.org 70 i- (dolist (crypto-symbol *cl+ssl-crypto-foreign-function-names*) Err bitreich.org 70 i- (when (fli:null-pointer-p (fli:make-pointer :symbol-name crypto-symbol :module 'libcrypto :errorp nil)) Err bitreich.org 70 i- (format *error-output* "Symbol ~s undefined~%" crypto-symbol)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro define-ssl-function (name-and-options &body body) Err bitreich.org 70 i- `(progn Err bitreich.org 70 i- (pushnew ,(car name-and-options) *cl+ssl-ssl-foreign-function-names* :test 'equal) ; debugging Err bitreich.org 70 i- (cffi:defcfun ,(append name-and-options '(:library libssl)) ,@body))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro define-crypto-function (name-and-options &body body) Err bitreich.org 70 i- `(progn Err bitreich.org 70 i- (pushnew ,(car name-and-options) *cl+ssl-crypto-foreign-function-names* :test 'equal) ; debugging Err bitreich.org 70 i- (cffi:defcfun ,(append name-and-options #+(and lispworks darwin) '(:library libcrypto)) ,@body))) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Global state Err bitreich.org 70 i-;;; Err bitreich.org 70 i-(defvar *ssl-global-context* nil) Err bitreich.org 70 i-(defvar *ssl-global-method* nil) Err bitreich.org 70 i-(defvar *bio-lisp-method* nil) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *blockp* t) Err bitreich.org 70 i-(defparameter *partial-read-p* nil) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-initialized-p () Err bitreich.org 70 i- (and *ssl-global-context* *ssl-global-method*)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Constants Err bitreich.org 70 i-;;; Err bitreich.org 70 i-(defconstant +ssl-filetype-pem+ 1) Err bitreich.org 70 i-(defconstant +ssl-filetype-asn1+ 2) Err bitreich.org 70 i-(defconstant +ssl-filetype-default+ 3) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL-CTRL-OPTIONS+ 32) Err bitreich.org 70 i-(defconstant +SSL_CTRL_SET_SESS_CACHE_MODE+ 44) Err bitreich.org 70 i-(defconstant +SSL_CTRL_MODE+ 33) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER+ 2) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +RSA_F4+ #x10001) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-OFF+ #x0000 Err bitreich.org 70 i- "No session caching for client or server takes place.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-CLIENT+ #x0001 Err bitreich.org 70 i- "Client sessions are added to the session cache. Err bitreich.org 70 i-As there is no reliable way for the OpenSSL library to know whether a session should be reused Err bitreich.org 70 i-or which session to choose (due to the abstract BIO layer the SSL engine does not have details Err bitreich.org 70 i-about the connection), the application must select the session to be reused by using the Err bitreich.org 70 i-SSL-SET-SESSION function. This option is not activated by default.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-SERVER+ #x0002 Err bitreich.org 70 i- "Server sessions are added to the session cache. Err bitreich.org 70 i-When a client proposes a session to be reused, the server looks for the corresponding session Err bitreich.org 70 i-in (first) the internal session cache (unless +SSL-SESS-CACHE-NO-INTERNAL-LOOKUP+ is set), then Err bitreich.org 70 i-(second) in the external cache if available. If the session is found, the server will try to Err bitreich.org 70 i-reuse the session. This is the default.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-BOTH+ (logior +SSL-SESS-CACHE-CLIENT+ +SSL-SESS-CACHE-SERVER+) Err bitreich.org 70 i- "Enable both +SSL-SESS-CACHE-CLIENT+ and +SSL-SESS-CACHE-SERVER+ at the same time.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-NO-AUTO-CLEAR+ #x0080 Err bitreich.org 70 i- "Normally the session cache is checked for expired sessions every 255 connections using the Err bitreich.org 70 i-SSL-CTX-FLUSH-SESSIONS function. Since this may lead to a delay which cannot be controlled, Err bitreich.org 70 i-the automatic flushing may be disabled and SSL-CTX-FLUSH-SESSIONS can be called explicitly Err bitreich.org 70 i-by the application.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-NO-INTERNAL-LOOKUP+ #x0100 Err bitreich.org 70 i- "By setting this flag, session-resume operations in an SSL/TLS server will not automatically Err bitreich.org 70 i-look up sessions in the internal cache, even if sessions are automatically stored there. Err bitreich.org 70 i-If external session caching callbacks are in use, this flag guarantees that all lookups are Err bitreich.org 70 i-directed to the external cache. As automatic lookup only applies for SSL/TLS servers, the flag Err bitreich.org 70 i-has no effect on clients.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-NO-INTERNAL-STORE+ #x0200 Err bitreich.org 70 i- "Depending on the presence of +SSL-SESS-CACHE-CLIENT+ and/or +SSL-SESS-CACHE-SERVER+, sessions Err bitreich.org 70 i-negotiated in an SSL/TLS handshake may be cached for possible reuse. Normally a new session is Err bitreich.org 70 i-added to the internal cache as well as any external session caching (callback) that is configured Err bitreich.org 70 i-for the SSL-CTX. This flag will prevent sessions being stored in the internal cache (though the Err bitreich.org 70 i-application can add them manually using SSL-CTX-ADD-SESSION). Note: in any SSL/TLS servers where Err bitreich.org 70 i-external caching is configured, any successful session lookups in the external cache (ie. for Err bitreich.org 70 i-session-resume requests) would normally be copied into the local cache before processing continues Err bitreich.org 70 i-- this flag prevents these additions to the internal cache as well.") Err bitreich.org 70 i-(defconstant +SSL-SESS-CACHE-NO-INTERNAL+ (logior +SSL-SESS-CACHE-NO-INTERNAL-LOOKUP+ +SSL-SESS-CACHE-NO-INTERNAL-STORE+) Err bitreich.org 70 i- "Enable both +SSL-SESS-CACHE-NO-INTERNAL-LOOKUP+ and +SSL-SESS-CACHE-NO-INTERNAL-STORE+ at the same time.") Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL-VERIFY-NONE+ #x00) Err bitreich.org 70 i-(defconstant +SSL-VERIFY-PEER+ #x01) Err bitreich.org 70 i-(defconstant +SSL-VERIFY-FAIL-IF-NO-PEER-CERT+ #x02) Err bitreich.org 70 i-(defconstant +SSL-VERIFY-CLIENT-ONCE+ #x04) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL-OP-ALL+ #x80000BFF) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +SSL-OP-NO-SSLv2+ #x01000000) Err bitreich.org 70 i-(defconstant +SSL-OP-NO-SSLv3+ #x02000000) Err bitreich.org 70 i-(defconstant +SSL-OP-NO-TLSv1+ #x04000000) Err bitreich.org 70 i-(defconstant +SSL-OP-NO-TLSv1-2+ #x08000000) Err bitreich.org 70 i-(defconstant +SSL-OP-NO-TLSv1-1+ #x10000000) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *tmp-rsa-key-512* nil) Err bitreich.org 70 i-(defvar *tmp-rsa-key-1024* nil) Err bitreich.org 70 i-(defvar *tmp-rsa-key-2048* nil) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Misc Err bitreich.org 70 i-;;; Err bitreich.org 70 i-(defmacro while (cond &body body) Err bitreich.org 70 i- `(do () ((not ,cond)) ,@body)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Function definitions Err bitreich.org 70 i-;;; Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcfun (#-windows "close" #+windows "closesocket" close-socket) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (socket :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim (inline ssl-write ssl-read ssl-connect ssl-accept)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defctype ssl-method :pointer) Err bitreich.org 70 i-(cffi:defctype ssl-ctx :pointer) Err bitreich.org 70 i-(cffi:defctype ssl-pointer :pointer) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_get_version" ssl-get-version) Err bitreich.org 70 i- :string Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_load_error_strings" ssl-load-error-strings) Err bitreich.org 70 i- :void) Err bitreich.org 70 i-(define-ssl-function ("SSL_library_init" ssl-library-init) Err bitreich.org 70 i- :int) Err bitreich.org 70 i-;; Err bitreich.org 70 i-;; We don't refer SSLv2_client_method as the default Err bitreich.org 70 i-;; builds of OpenSSL do not have it, due to insecurity Err bitreich.org 70 i-;; of the SSL v2 protocol (see https://www.openssl.org/docs/ssl/SSL_CTX_new.html Err bitreich.org 70 i-;; and https://github.com/cl-plus-ssl/cl-plus-ssl/issues/6) Err bitreich.org 70 i-;; Err bitreich.org 70 i-;; (define-ssl-function ("SSLv2_client_method" ssl-v2-client-method) Err bitreich.org 70 i-;; ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv23_client_method" ssl-v23-client-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv23_server_method" ssl-v23-server-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv23_method" ssl-v23-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv3_client_method" ssl-v3-client-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv3_server_method" ssl-v3-server-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("SSLv3_method" ssl-v3-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_client_method" ssl-TLSv1-client-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_server_method" ssl-TLSv1-server-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_method" ssl-TLSv1-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_1_client_method" ssl-TLSv1-1-client-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_1_server_method" ssl-TLSv1-1-server-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_1_method" ssl-TLSv1-1-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_2_client_method" ssl-TLSv1-2-client-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_2_server_method" ssl-TLSv1-2-server-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i-(define-ssl-function ("TLSv1_2_method" ssl-TLSv1-2-method) Err bitreich.org 70 i- ssl-method) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_new" ssl-ctx-new) Err bitreich.org 70 i- ssl-ctx Err bitreich.org 70 i- (method ssl-method)) Err bitreich.org 70 i-(define-ssl-function ("SSL_new" ssl-new) Err bitreich.org 70 i- ssl-pointer Err bitreich.org 70 i- (ctx ssl-ctx)) Err bitreich.org 70 i-(define-ssl-function ("SSL_get_fd" ssl-get-fd) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_set_fd" ssl-set-fd) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (fd :int)) Err bitreich.org 70 i-(define-ssl-function ("SSL_set_bio" ssl-set-bio) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (rbio :pointer) Err bitreich.org 70 i- (wbio :pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_get_error" ssl-get-error) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (ret :int)) Err bitreich.org 70 i-(define-ssl-function ("SSL_set_connect_state" ssl-set-connect-state) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_set_accept_state" ssl-set-accept-state) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_connect" ssl-connect) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_accept" ssl-accept) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_write" ssl-write) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (buf :pointer) Err bitreich.org 70 i- (num :int)) Err bitreich.org 70 i-(define-ssl-function ("SSL_read" ssl-read) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (buf :pointer) Err bitreich.org 70 i- (num :int)) Err bitreich.org 70 i-(define-ssl-function ("SSL_shutdown" ssl-shutdown) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_free" ssl-free) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_free" ssl-ctx-free) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ctx ssl-ctx)) Err bitreich.org 70 i-(define-crypto-function ("BIO_ctrl" bio-set-fd) Err bitreich.org 70 i- :long Err bitreich.org 70 i- (bio :pointer) Err bitreich.org 70 i- (cmd :int) Err bitreich.org 70 i- (larg :long) Err bitreich.org 70 i- (parg :pointer)) Err bitreich.org 70 i-(define-crypto-function ("BIO_new_socket" bio-new-socket) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (fd :int) Err bitreich.org 70 i- (close-flag :int)) Err bitreich.org 70 i-(define-crypto-function ("BIO_new" bio-new) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (method :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("ERR_get_error" err-get-error) Err bitreich.org 70 i- :unsigned-long) Err bitreich.org 70 i-(define-crypto-function ("ERR_error_string" err-error-string) Err bitreich.org 70 i- :string Err bitreich.org 70 i- (e :unsigned-long) Err bitreich.org 70 i- (buf :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_set_cipher_list" ssl-set-cipher-list) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (str :string)) Err bitreich.org 70 i-(define-ssl-function ("SSL_use_RSAPrivateKey_file" ssl-use-rsa-privatekey-file) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (str :string) Err bitreich.org 70 i- ;; either +ssl-filetype-pem+ or +ssl-filetype-asn1+ Err bitreich.org 70 i- (type :int)) Err bitreich.org 70 i-(define-ssl-function Err bitreich.org 70 i- ("SSL_CTX_use_RSAPrivateKey_file" ssl-ctx-use-rsa-privatekey-file) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (type :int)) Err bitreich.org 70 i-(define-ssl-function ("SSL_use_certificate_file" ssl-use-certificate-file) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ssl ssl-pointer) Err bitreich.org 70 i- (str :string) Err bitreich.org 70 i- (type :int)) Err bitreich.org 70 i-#+new-openssl Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_options" ssl-ctx-set-options) Err bitreich.org 70 i- :long Err bitreich.org 70 i- (ctx :pointer) Err bitreich.org 70 i- (options :long)) Err bitreich.org 70 i-#-new-openssl Err bitreich.org 70 i-(defun ssl-ctx-set-options (ctx options) Err bitreich.org 70 i- (ssl-ctx-ctrl ctx +SSL-CTRL-OPTIONS+ options (cffi:null-pointer))) Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_cipher_list" ssl-ctx-set-cipher-list%) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx :pointer) Err bitreich.org 70 i- (ciphers :pointer)) Err bitreich.org 70 i-(defun ssl-ctx-set-cipher-list (ctx ciphers) Err bitreich.org 70 i- (cffi:with-foreign-string (ciphers* ciphers) Err bitreich.org 70 i- (when (= 0 (ssl-ctx-set-cipher-list% ctx ciphers*)) Err bitreich.org 70 i- (error 'ssl-error-initialize :reason "Can't set SSL cipher list" :queue (read-ssl-error-queue))))) Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_use_certificate_chain_file" ssl-ctx-use-certificate-chain-file) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (str :string)) Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_load_verify_locations" ssl-ctx-load-verify-locations) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (CAfile :string) Err bitreich.org 70 i- (CApath :string)) Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_client_CA_list" ssl-ctx-set-client-ca-list) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (list ssl-pointer)) Err bitreich.org 70 i-(define-ssl-function ("SSL_load_client_CA_file" ssl-load-client-ca-file) Err bitreich.org 70 i- ssl-pointer Err bitreich.org 70 i- (file :string)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_ctrl" ssl-ctx-ctrl) Err bitreich.org 70 i- :long Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (cmd :int) Err bitreich.org 70 i- ;; Despite declared as long in the original OpenSSL headers, Err bitreich.org 70 i- ;; passing to larg for example 2181041151 which is the result of Err bitreich.org 70 i- ;; (logior cl+ssl::+SSL-OP-ALL+ Err bitreich.org 70 i- ;; cl+ssl::+SSL-OP-NO-SSLv2+ Err bitreich.org 70 i- ;; cl+ssl::+SSL-OP-NO-SSLv3+) Err bitreich.org 70 i- ;; causes CFFI on 32 bit platforms to signal an error Err bitreich.org 70 i- ;; "The value 2181041151 is not of the expected type (SIGNED-BYTE 32)" Err bitreich.org 70 i- ;; The problem is that 2181041151 requires 32 bits by itself and Err bitreich.org 70 i- ;; there is no place left for the sign bit. Err bitreich.org 70 i- ;; In C the compiler silently coerces unsigned to signed, Err bitreich.org 70 i- ;; but CFFI raises this error. Err bitreich.org 70 i- ;; Therefore we use :UNSIGNED-LONG for LARG. Err bitreich.org 70 i- (larg :unsigned-long) Err bitreich.org 70 i- (parg :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_ctrl" ssl-ctrl) Err bitreich.org 70 i- :long Err bitreich.org 70 i- (ssl :pointer) Err bitreich.org 70 i- (cmd :int) Err bitreich.org 70 i- (larg :long) Err bitreich.org 70 i- (parg :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_default_passwd_cb" ssl-ctx-set-default-passwd-cb) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ctx ssl-ctx) Err bitreich.org 70 i- (pem_passwd_cb :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("CRYPTO_num_locks" crypto-num-locks) :int) Err bitreich.org 70 i-(define-crypto-function ("CRYPTO_set_locking_callback" crypto-set-locking-callback) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (fun :pointer)) Err bitreich.org 70 i-(define-crypto-function ("CRYPTO_set_id_callback" crypto-set-id-callback) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (fun :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("RAND_seed" rand-seed) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (buf :pointer) Err bitreich.org 70 i- (num :int)) Err bitreich.org 70 i-(define-crypto-function ("RAND_bytes" rand-bytes) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (buf :pointer) Err bitreich.org 70 i- (num :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_verify_depth" ssl-ctx-set-verify-depth) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ctx :pointer) Err bitreich.org 70 i- (depth :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_verify" ssl-ctx-set-verify) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (ctx :pointer) Err bitreich.org 70 i- (mode :int) Err bitreich.org 70 i- (verify-callback :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_get_verify_result" ssl-get-verify-result) Err bitreich.org 70 i- :long Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_get_peer_certificate" ssl-get-peer-certificate) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (ssl ssl-pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; X509 & ASN1 Err bitreich.org 70 i-(define-crypto-function ("X509_free" x509-free) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (x509 :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_NAME_oneline" x509-name-oneline) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (x509-name :pointer) Err bitreich.org 70 i- (buf :pointer) Err bitreich.org 70 i- (size :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_NAME_get_index_by_NID" x509-name-get-index-by-nid) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (name :pointer) Err bitreich.org 70 i- (nid :int) Err bitreich.org 70 i- (lastpos :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_NAME_get_entry" x509-name-get-entry) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (name :pointer) Err bitreich.org 70 i- (log :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_NAME_ENTRY_get_data" x509-name-entry-get-data) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (name-entry :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_get_issuer_name" x509-get-issuer-name) Err bitreich.org 70 i- :pointer ; *X509_NAME Err bitreich.org 70 i- (x509 :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_get_subject_name" x509-get-subject-name) Err bitreich.org 70 i- :pointer ; *X509_NAME Err bitreich.org 70 i- (x509 :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_get_ext_d2i" x509-get-ext-d2i) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (cert :pointer) Err bitreich.org 70 i- (nid :int) Err bitreich.org 70 i- (crit :pointer) Err bitreich.org 70 i- (idx :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("X509_STORE_CTX_get_error" x509-store-ctx-get-error) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("d2i_X509" d2i-x509) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (*px :pointer) Err bitreich.org 70 i- (in :pointer) Err bitreich.org 70 i- (len :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-;; GENERAL-NAME types Err bitreich.org 70 i-(defconstant +GEN-OTHERNAME+ 0) Err bitreich.org 70 i-(defconstant +GEN-EMAIL+ 1) Err bitreich.org 70 i-(defconstant +GEN-DNS+ 2) Err bitreich.org 70 i-(defconstant +GEN-X400+ 3) Err bitreich.org 70 i-(defconstant +GEN-DIRNAME+ 4) Err bitreich.org 70 i-(defconstant +GEN-EDIPARTY+ 5) Err bitreich.org 70 i-(defconstant +GEN-URI+ 6) Err bitreich.org 70 i-(defconstant +GEN-IPADD+ 7) Err bitreich.org 70 i-(defconstant +GEN-RID+ 8) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +V-ASN1-OCTET-STRING+ 4) Err bitreich.org 70 i-(defconstant +V-ASN1-UTF8STRING+ 12) Err bitreich.org 70 i-(defconstant +V-ASN1-PRINTABLESTRING+ 19) Err bitreich.org 70 i-(defconstant +V-ASN1-TELETEXSTRING+ 20) Err bitreich.org 70 i-(defconstant +V-ASN1-IASTRING+ 22) Err bitreich.org 70 i-(defconstant +V-ASN1-UNIVERSALSTRING+ 28) Err bitreich.org 70 i-(defconstant +V-ASN1-BMPSTRING+ 30) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +NID-subject-alt-name+ 85) Err bitreich.org 70 i-(defconstant +NID-commonName+ 13) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcstruct general-name Err bitreich.org 70 i- (type :int) Err bitreich.org 70 i- (data :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("sk_value" sk-value) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (stack :pointer) Err bitreich.org 70 i- (index :int)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("sk_num" sk-num) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (stack :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim (ftype (function (cffi:foreign-pointer fixnum) cffi:foreign-pointer) sk-general-name-value)) Err bitreich.org 70 i-(defun sk-general-name-value (names index) Err bitreich.org 70 i- (sk-value names index)) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim (ftype (function (cffi:foreign-pointer) fixnum) sk-general-name-num)) Err bitreich.org 70 i-(defun sk-general-name-num (names) Err bitreich.org 70 i- (sk-num names)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("GENERAL_NAMES_free" general-names-free) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (general-names :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("ASN1_STRING_data" asn1-string-data) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (asn1-string :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("ASN1_STRING_length" asn1-string-length) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (asn1-string :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("ASN1_STRING_type" asn1-string-type) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (asn1-string :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcstruct asn1_string_st Err bitreich.org 70 i- (length :int) Err bitreich.org 70 i- (type :int) Err bitreich.org 70 i- (data :pointer) Err bitreich.org 70 i- (flags :long)) Err bitreich.org 70 i- Err bitreich.org 70 i-;; X509 & ASN1 - end Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_default_verify_paths" ssl-ctx-set-default-verify-paths) Err bitreich.org 70 i- :int Err bitreich.org 70 i- (ctx :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("RSA_generate_key" rsa-generate-key) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (num :int) Err bitreich.org 70 i- (e :unsigned-long) Err bitreich.org 70 i- (callback :pointer) Err bitreich.org 70 i- (opt :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-crypto-function ("RSA_free" rsa-free) Err bitreich.org 70 i- :void Err bitreich.org 70 i- (rsa :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-ssl-function ("SSL_CTX_set_tmp_rsa_callback" ssl-ctx-set-tmp-rsa-callback) Err bitreich.org 70 i- :pointer Err bitreich.org 70 i- (ctx :pointer) Err bitreich.org 70 i- (callback :pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback tmp-rsa-callback :pointer ((ssl :pointer) (export-p :int) (key-length :int)) Err bitreich.org 70 i- (declare (ignore ssl export-p)) Err bitreich.org 70 i- (flet ((rsa-key (length) Err bitreich.org 70 i- (rsa-generate-key length Err bitreich.org 70 i- +RSA_F4+ Err bitreich.org 70 i- (cffi:null-pointer) Err bitreich.org 70 i- (cffi:null-pointer)))) Err bitreich.org 70 i- (cond ((= key-length 512) Err bitreich.org 70 i- (unless *tmp-rsa-key-512* Err bitreich.org 70 i- (setf *tmp-rsa-key-512* (rsa-key key-length))) Err bitreich.org 70 i- *tmp-rsa-key-512*) Err bitreich.org 70 i- ((= key-length 1024) Err bitreich.org 70 i- (unless *tmp-rsa-key-1024* Err bitreich.org 70 i- (setf *tmp-rsa-key-1024* (rsa-key key-length))) Err bitreich.org 70 i- *tmp-rsa-key-1024*) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (unless *tmp-rsa-key-2048* Err bitreich.org 70 i- (setf *tmp-rsa-key-2048* (rsa-key key-length))) Err bitreich.org 70 i- *tmp-rsa-key-2048*)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Funcall wrapper Err bitreich.org 70 i-;;; Err bitreich.org 70 i-(defvar *socket*) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim (inline ensure-ssl-funcall)) Err bitreich.org 70 i-(defun ensure-ssl-funcall (stream handle func &rest args) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (let ((nbytes Err bitreich.org 70 i- (let ((*socket* (ssl-stream-socket stream))) ;for Lisp-BIO callbacks Err bitreich.org 70 i- (apply func args)))) Err bitreich.org 70 i- (when (plusp nbytes) Err bitreich.org 70 i- (return nbytes)) Err bitreich.org 70 i- (let ((error (ssl-get-error handle nbytes))) Err bitreich.org 70 i- (case error Err bitreich.org 70 i- (#.+ssl-error-want-read+ Err bitreich.org 70 i- (input-wait stream Err bitreich.org 70 i- (ssl-get-fd handle) Err bitreich.org 70 i- (ssl-stream-deadline stream))) Err bitreich.org 70 i- (#.+ssl-error-want-write+ Err bitreich.org 70 i- (output-wait stream Err bitreich.org 70 i- (ssl-get-fd handle) Err bitreich.org 70 i- (ssl-stream-deadline stream))) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (ssl-signal-error handle func error nbytes))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(declaim (inline nonblocking-ssl-funcall)) Err bitreich.org 70 i-(defun nonblocking-ssl-funcall (stream handle func &rest args) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (let ((nbytes Err bitreich.org 70 i- (let ((*socket* (ssl-stream-socket stream))) ;for Lisp-BIO callbacks Err bitreich.org 70 i- (apply func args)))) Err bitreich.org 70 i- (when (plusp nbytes) Err bitreich.org 70 i- (return nbytes)) Err bitreich.org 70 i- (let ((error (ssl-get-error handle nbytes))) Err bitreich.org 70 i- (case error Err bitreich.org 70 i- ((#.+ssl-error-want-read+ #.+ssl-error-want-write+) Err bitreich.org 70 i- (return nbytes)) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (ssl-signal-error handle func error nbytes))))))) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Waiting for output to be possible Err bitreich.org 70 i- Err bitreich.org 70 i-#+clozure-common-lisp Err bitreich.org 70 i-(defun milliseconds-until-deadline (deadline stream) Err bitreich.org 70 i- (let* ((now (get-internal-real-time))) Err bitreich.org 70 i- (if (> now deadline) Err bitreich.org 70 i- (error 'ccl::communication-deadline-expired :stream stream) Err bitreich.org 70 i- (values Err bitreich.org 70 i- (round (- deadline now) (/ internal-time-units-per-second 1000)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+clozure-common-lisp Err bitreich.org 70 i-(defun output-wait (stream fd deadline) Err bitreich.org 70 i- (unless deadline Err bitreich.org 70 i- (setf deadline (stream-deadline (ssl-stream-socket stream)))) Err bitreich.org 70 i- (let* ((timeout Err bitreich.org 70 i- (if deadline Err bitreich.org 70 i- (milliseconds-until-deadline deadline stream) Err bitreich.org 70 i- nil))) Err bitreich.org 70 i- (multiple-value-bind (win timedout error) Err bitreich.org 70 i- (ccl::process-output-wait fd timeout) Err bitreich.org 70 i- (unless win Err bitreich.org 70 i- (if timedout Err bitreich.org 70 i- (error 'ccl::communication-deadline-expired :stream stream) Err bitreich.org 70 i- (ccl::stream-io-error stream (- error) "write")))))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+sbcl Err bitreich.org 70 i-(defun output-wait (stream fd deadline) Err bitreich.org 70 i- (declare (ignore stream)) Err bitreich.org 70 i- (let ((timeout Err bitreich.org 70 i- ;; *deadline* is handled by wait-until-fd-usable automatically, Err bitreich.org 70 i- ;; but we need to turn a user-specified deadline into a timeout Err bitreich.org 70 i- (when deadline Err bitreich.org 70 i- (/ (- deadline (get-internal-real-time)) Err bitreich.org 70 i- internal-time-units-per-second)))) Err bitreich.org 70 i- (sb-sys:wait-until-fd-usable fd :output timeout))) Err bitreich.org 70 i- Err bitreich.org 70 i-#-(or clozure-common-lisp sbcl) Err bitreich.org 70 i-(defun output-wait (stream fd deadline) Err bitreich.org 70 i- (declare (ignore stream fd deadline)) Err bitreich.org 70 i- ;; This situation means that the lisp set our fd to non-blocking mode, Err bitreich.org 70 i- ;; and streams.lisp didn't know how to undo that. Err bitreich.org 70 i- (warn "non-blocking stream encountered unexpectedly")) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Waiting for input to be possible Err bitreich.org 70 i- Err bitreich.org 70 i-#+clozure-common-lisp Err bitreich.org 70 i-(defun input-wait (stream fd deadline) Err bitreich.org 70 i- (unless deadline Err bitreich.org 70 i- (setf deadline (stream-deadline (ssl-stream-socket stream)))) Err bitreich.org 70 i- (let* ((timeout Err bitreich.org 70 i- (if deadline Err bitreich.org 70 i- (milliseconds-until-deadline deadline stream) Err bitreich.org 70 i- nil))) Err bitreich.org 70 i- (multiple-value-bind (win timedout error) Err bitreich.org 70 i- (ccl::process-input-wait fd timeout) Err bitreich.org 70 i- (unless win Err bitreich.org 70 i- (if timedout Err bitreich.org 70 i- (error 'ccl::communication-deadline-expired :stream stream) Err bitreich.org 70 i- (ccl::stream-io-error stream (- error) "read")))))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+sbcl Err bitreich.org 70 i-(defun input-wait (stream fd deadline) Err bitreich.org 70 i- (declare (ignore stream)) Err bitreich.org 70 i- (let ((timeout Err bitreich.org 70 i- ;; *deadline* is handled by wait-until-fd-usable automatically, Err bitreich.org 70 i- ;; but we need to turn a user-specified deadline into a timeout Err bitreich.org 70 i- (when deadline Err bitreich.org 70 i- (/ (- deadline (get-internal-real-time)) Err bitreich.org 70 i- internal-time-units-per-second)))) Err bitreich.org 70 i- (sb-sys:wait-until-fd-usable fd :input timeout))) Err bitreich.org 70 i- Err bitreich.org 70 i-#-(or clozure-common-lisp sbcl) Err bitreich.org 70 i-(defun input-wait (stream fd deadline) Err bitreich.org 70 i- (declare (ignore stream fd deadline)) Err bitreich.org 70 i- ;; This situation means that the lisp set our fd to non-blocking mode, Err bitreich.org 70 i- ;; and streams.lisp didn't know how to undo that. Err bitreich.org 70 i- (warn "non-blocking stream encountered unexpectedly")) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Encrypted PEM files support Err bitreich.org 70 i-;;; Err bitreich.org 70 i- Err bitreich.org 70 i-;; based on http://www.openssl.org/docs/ssl/SSL_CTX_set_default_passwd_cb.html Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *pem-password* "" Err bitreich.org 70 i- "The callback registered with SSL_CTX_set_default_passwd_cb Err bitreich.org 70 i-will use this value.") Err bitreich.org 70 i- Err bitreich.org 70 i-;; The callback itself Err bitreich.org 70 i-(cffi:defcallback pem-password-callback :int Err bitreich.org 70 i- ((buf :pointer) (size :int) (rwflag :int) (unused :pointer)) Err bitreich.org 70 i- (declare (ignore rwflag unused)) Err bitreich.org 70 i- (let* ((password-str (coerce *pem-password* 'base-string)) Err bitreich.org 70 i- (tmp (cffi:foreign-string-alloc password-str))) Err bitreich.org 70 i- (cffi:foreign-funcall "strncpy" Err bitreich.org 70 i- :pointer buf Err bitreich.org 70 i- :pointer tmp Err bitreich.org 70 i- :int size) Err bitreich.org 70 i- (cffi:foreign-string-free tmp) Err bitreich.org 70 i- (setf (cffi:mem-ref buf :char (1- size)) 0) Err bitreich.org 70 i- (cffi:foreign-funcall "strlen" :pointer buf :int))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; The macro to be used by other code to provide password Err bitreich.org 70 i-;; when loading PEM file. Err bitreich.org 70 i-(defmacro with-pem-password ((password) &body body) Err bitreich.org 70 i- `(let ((*pem-password* (or ,password ""))) Err bitreich.org 70 i- ,@body)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Initialization Err bitreich.org 70 i-;;; Err bitreich.org 70 i- Err bitreich.org 70 i-(defun init-prng (seed-byte-sequence) Err bitreich.org 70 i- (let* ((length (length seed-byte-sequence)) Err bitreich.org 70 i- (buf (cffi-sys::make-shareable-byte-vector length))) Err bitreich.org 70 i- (dotimes (i length) Err bitreich.org 70 i- (setf (elt buf i) (elt seed-byte-sequence i))) Err bitreich.org 70 i- (cffi-sys::with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (rand-seed ptr length)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-ctx-set-session-cache-mode (ctx mode) Err bitreich.org 70 i- (ssl-ctx-ctrl ctx +SSL_CTRL_SET_SESS_CACHE_MODE+ mode (cffi:null-pointer))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun SSL-set-tlsext-host-name (ctx hostname) Err bitreich.org 70 i- (ssl-ctrl ctx 55 #|SSL_CTRL_SET_TLSEXT_HOSTNAME|# 0 #|TLSEXT_NAMETYPE_host_name|# hostname)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *locks*) Err bitreich.org 70 i-(defconstant +CRYPTO-LOCK+ 1) Err bitreich.org 70 i-(defconstant +CRYPTO-UNLOCK+ 2) Err bitreich.org 70 i-(defconstant +CRYPTO-READ+ 4) Err bitreich.org 70 i-(defconstant +CRYPTO-WRITE+ 8) Err bitreich.org 70 i- Err bitreich.org 70 i-;; zzz as of early 2011, bxthreads is totally broken on SBCL wrt. explicit Err bitreich.org 70 i-;; locking of recursive locks. with-recursive-lock works, but acquire/release Err bitreich.org 70 i-;; don't. Hence we use non-recursize locks here (but can use a recursive Err bitreich.org 70 i-;; lock for the global lock). Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:defcallback locking-callback :void Err bitreich.org 70 i- ((mode :int) Err bitreich.org 70 i- (n :int) Err bitreich.org 70 i- (file :pointer) ;; could be (file :string), but we don't use FILE, so avoid the conversion Err bitreich.org 70 i- (line :int)) Err bitreich.org 70 i- (declare (ignore file line)) Err bitreich.org 70 i- ;; (assert (logtest mode (logior +CRYPTO-READ+ +CRYPTO-WRITE+))) Err bitreich.org 70 i- (let ((lock (elt *locks* n))) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((logtest mode +CRYPTO-LOCK+) Err bitreich.org 70 i- (bt:acquire-lock lock)) Err bitreich.org 70 i- ((logtest mode +CRYPTO-UNLOCK+) Err bitreich.org 70 i- (bt:release-lock lock)) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (error "fell through"))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *threads* (trivial-garbage:make-weak-hash-table :weakness :key)) Err bitreich.org 70 i-(defvar *thread-counter* 0) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *global-lock* Err bitreich.org 70 i- (bordeaux-threads:make-recursive-lock "SSL initialization")) Err bitreich.org 70 i- Err bitreich.org 70 i-;; zzz BUG: On a 32-bit system and under non-trivial load, this counter Err bitreich.org 70 i-;; is likely to wrap in less than a year. Err bitreich.org 70 i-(cffi:defcallback threadid-callback :unsigned-long () Err bitreich.org 70 i- (bordeaux-threads:with-recursive-lock-held (*global-lock*) Err bitreich.org 70 i- (let ((self (bt:current-thread))) Err bitreich.org 70 i- (or (gethash self *threads*) Err bitreich.org 70 i- (setf (gethash self *threads*) Err bitreich.org 70 i- (incf *thread-counter*)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *ssl-check-verify-p* :unspecified Err bitreich.org 70 i- "DEPRECATED. Err bitreich.org 70 i-Use the (MAKE-SSL-CLIENT-STREAM .. :VERIFY ?) to enable/disable verification. Err bitreich.org 70 i-MAKE-CONTEXT also allows to enab/disable verification.") Err bitreich.org 70 i- Err bitreich.org 70 i-(defun initialize (&key (method 'ssl-v23-method) rand-seed) Err bitreich.org 70 i- (setf *locks* (loop Err bitreich.org 70 i- repeat (crypto-num-locks) Err bitreich.org 70 i- collect (bt:make-lock))) Err bitreich.org 70 i- (crypto-set-locking-callback (cffi:callback locking-callback)) Err bitreich.org 70 i- (crypto-set-id-callback (cffi:callback threadid-callback)) Err bitreich.org 70 i- (setf *bio-lisp-method* (make-bio-lisp-method)) Err bitreich.org 70 i- (ssl-load-error-strings) Err bitreich.org 70 i- (ssl-library-init) Err bitreich.org 70 i- (when rand-seed Err bitreich.org 70 i- (init-prng rand-seed)) Err bitreich.org 70 i- (setf *ssl-check-verify-p* :unspecified) Err bitreich.org 70 i- (setf *ssl-global-method* (funcall method)) Err bitreich.org 70 i- (setf *ssl-global-context* (ssl-ctx-new *ssl-global-method*)) Err bitreich.org 70 i- (unless (eql 1 (ssl-ctx-set-default-verify-paths *ssl-global-context*)) Err bitreich.org 70 i- (error "ssl-ctx-set-default-verify-paths failed.")) Err bitreich.org 70 i- (ssl-ctx-set-session-cache-mode *ssl-global-context* 3) Err bitreich.org 70 i- (ssl-ctx-set-default-passwd-cb *ssl-global-context* Err bitreich.org 70 i- (cffi:callback pem-password-callback)) Err bitreich.org 70 i- (ssl-ctx-set-tmp-rsa-callback *ssl-global-context* Err bitreich.org 70 i- (cffi:callback tmp-rsa-callback))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ensure-initialized (&key (method 'ssl-v23-method) (rand-seed nil)) Err bitreich.org 70 i- "In most cases you do *not* need to call this function, because it Err bitreich.org 70 i-is called automatically by all other functions. The only reason to Err bitreich.org 70 i-call it explicitly is to supply the RAND-SEED parameter. In this case Err bitreich.org 70 i-do it before calling any other functions. Err bitreich.org 70 i- Err bitreich.org 70 i-Just leave the default value for the METHOD parameter. Err bitreich.org 70 i- Err bitreich.org 70 i-RAND-SEED is an octet sequence to initialize OpenSSL random number generator. Err bitreich.org 70 i-On many platforms, including Linux and Windows, it may be leaved NIL (default), Err bitreich.org 70 i-because OpenSSL initializes the random number generator from OS specific service. Err bitreich.org 70 i-But for example on Solaris it may be necessary to supply this value. Err bitreich.org 70 i-The minimum length required by OpenSSL is 128 bits. Err bitreich.org 70 i-See ttp://www.openssl.org/support/faq.html#USER1 for details. Err bitreich.org 70 i- Err bitreich.org 70 i-Hint: do not use Common Lisp RANDOM function to generate the RAND-SEED, Err bitreich.org 70 i-because the function usually returns predictable values." Err bitreich.org 70 i- #+lispworks Err bitreich.org 70 i- (check-cl+ssl-symbols) Err bitreich.org 70 i- (bordeaux-threads:with-recursive-lock-held (*global-lock*) Err bitreich.org 70 i- (unless (ssl-initialized-p) Err bitreich.org 70 i- (initialize :method method :rand-seed rand-seed)) Err bitreich.org 70 i- (unless *bio-lisp-method* Err bitreich.org 70 i- (setf *bio-lisp-method* (make-bio-lisp-method))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun use-certificate-chain-file (certificate-chain-file) Err bitreich.org 70 i- "Loads a PEM encoded certificate chain file CERTIFICATE-CHAIN-FILE Err bitreich.org 70 i-and adds the chain to global context. The certificates must be sorted Err bitreich.org 70 i-starting with the subject's certificate (actual client or server certificate), Err bitreich.org 70 i-followed by intermediate CA certificates if applicable, and ending at Err bitreich.org 70 i-the highest level (root) CA. Note: the RELOAD function clears the global Err bitreich.org 70 i-context and in particular the loaded certificate chain." Err bitreich.org 70 i- (ensure-initialized) Err bitreich.org 70 i- (ssl-ctx-use-certificate-chain-file *ssl-global-context* certificate-chain-file)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun reload () Err bitreich.org 70 i- (if *ssl-global-context* Err bitreich.org 70 i- (ssl-ctx-free *ssl-global-context*)) Err bitreich.org 70 i- (unless (member :cl+ssl-foreign-libs-already-loaded Err bitreich.org 70 i- *features*) Err bitreich.org 70 i- (cffi:use-foreign-library libcrypto) Err bitreich.org 70 i- (cffi:load-foreign-library 'libssl) Err bitreich.org 70 i- (cffi:load-foreign-library 'libeay32)) Err bitreich.org 70 i- (setf *ssl-global-context* nil) Err bitreich.org 70 i- (setf *ssl-global-method* nil) Err bitreich.org 70 i- (setf *tmp-rsa-key-512* nil) Err bitreich.org 70 i- (setf *tmp-rsa-key-1024* nil)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/package.lisp b/3rdparties/software/cl+ssl-20190202-git/src/package.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/package.lisp.gph bitreich.org 70 i@@ -1,66 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2001, 2003 Eric Marsden Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; "the conditions and ENSURE-SSL-FUNCALL are by Jochen Schmidt." Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ((:when (:featurep :sbcl) (:require :sb-posix))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl-user) Err bitreich.org 70 i- Err bitreich.org 70 i-(defpackage :cl+ssl Err bitreich.org 70 i- (:use :common-lisp :trivial-gray-streams) Err bitreich.org 70 i- (:export #:*default-cipher-list* Err bitreich.org 70 i- #:ensure-initialized Err bitreich.org 70 i- #:reload Err bitreich.org 70 i- #:stream-fd Err bitreich.org 70 i- #:make-ssl-client-stream Err bitreich.org 70 i- #:*make-ssl-client-stream-verify-default* Err bitreich.org 70 i- #:make-ssl-server-stream Err bitreich.org 70 i- #:use-certificate-chain-file Err bitreich.org 70 i- #:random-bytes Err bitreich.org 70 i- ;; DEPRECATED. Err bitreich.org 70 i- ;; Use the (MAKE-SSL-CLIENT-STREAM .. :VERIFY ?) to enable/disable verification. Err bitreich.org 70 i- ;; MAKE-CONTEXT also allows to enab/disable verification. Err bitreich.org 70 i- #:ssl-check-verify-p Err bitreich.org 70 i- #:ssl-load-global-verify-locations Err bitreich.org 70 i- #:ssl-set-global-default-verify-paths Err bitreich.org 70 i- #:ssl-error-verify Err bitreich.org 70 i- #:ssl-error-stream Err bitreich.org 70 i- #:ssl-error-code Err bitreich.org 70 i- #:ssl-error-initialize Err bitreich.org 70 i- #:ssl-ctx-free Err bitreich.org 70 i- Err bitreich.org 70 i- #:with-pem-password Err bitreich.org 70 i- Err bitreich.org 70 i- #:+ssl-verify-none+ Err bitreich.org 70 i- #:+ssl-verify-peer+ Err bitreich.org 70 i- #:+ssl-verify-fail-if-no-peer-cert+ Err bitreich.org 70 i- #:+ssl-verify-client-once+ Err bitreich.org 70 i- Err bitreich.org 70 i- #:+ssl-op-no-sslv2+ Err bitreich.org 70 i- #:+ssl-op-no-sslv3+ Err bitreich.org 70 i- #:+ssl-op-no-tlsv1+ Err bitreich.org 70 i- #:+ssl-op-no-tlsv1-1+ Err bitreich.org 70 i- #:+ssl-op-no-tlsv1-2+ Err bitreich.org 70 i- Err bitreich.org 70 i- #:+ssl-sess-cache-off+ Err bitreich.org 70 i- #:+ssl-sess-cache-client+ Err bitreich.org 70 i- #:+ssl-sess-cache-server+ Err bitreich.org 70 i- #:+ssl-sess-cache-both+ Err bitreich.org 70 i- #:+ssl-sess-cache-no-auto-clear+ Err bitreich.org 70 i- #:+ssl-sess-cache-no-internal-lookup+ Err bitreich.org 70 i- #:+ssl-sess-cache-no-internal-store+ Err bitreich.org 70 i- #:+ssl-sess-cache-no-internal+ Err bitreich.org 70 i- Err bitreich.org 70 i- #:make-context Err bitreich.org 70 i- #:with-global-context Err bitreich.org 70 i- Err bitreich.org 70 i- ;; x509 stuff Err bitreich.org 70 i- #:decode-certificate-from-file Err bitreich.org 70 i- #:decode-certificate Err bitreich.org 70 i- Err bitreich.org 70 i- ;; hostname-verification Err bitreich.org 70 i- #:verify-hostname)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/random.lisp b/3rdparties/software/cl+ssl-20190202-git/src/random.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/random.lisp.gph bitreich.org 70 i@@ -1,33 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb Err bitreich.org 70 i-(module Err bitreich.org 70 i- (:depends-on ("package" "conditions" "ffi" Err bitreich.org 70 i- (:cond ((:featurep :clisp) "ffi-buffer-clisp") Err bitreich.org 70 i- (t "ffi-buffer")) Err bitreich.org 70 i- "ffi-buffer-all"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun random-bytes (count) Err bitreich.org 70 i- "Generates COUNT cryptographically strong pseudo-random bytes. Returns Err bitreich.org 70 i-the bytes as a SIMPLE-ARRAY with ELEMENT-TYPE '(UNSIGNED-BYTE 8). Signals Err bitreich.org 70 i-an ERROR in case of problems, for example when the OpenSSL random number Err bitreich.org 70 i-generator has not been seeded with enough randomness to ensure an Err bitreich.org 70 i-unpredictable byte sequence." Err bitreich.org 70 i- (let* ((result (make-array count :element-type '(unsigned-byte 8))) Err bitreich.org 70 i- (buf (make-buffer count)) Err bitreich.org 70 i- (ret (with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (rand-bytes ptr count)))) Err bitreich.org 70 i- (when (/= 1 ret) Err bitreich.org 70 i- (error "RANDOM-BYTES failed: error reported by the OpenSSL RAND_bytes function. ~A." Err bitreich.org 70 i- (format-ssl-error-queue nil (read-ssl-error-queue)))) Err bitreich.org 70 i- (s/b-replace result buf))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; TODO: Should we define random-specific constants and condition classes for Err bitreich.org 70 i-;; RAND_F_RAND_GET_RAND_METHOD, RAND_F_SSLEAY_RAND_BYTES, RAND_R_PRNG_NOT_SEEDED Err bitreich.org 70 i-;; (defined in the rand.h file of the OpenSSl sources)? Err bitreich.org 70 i-;; Where to place these constants/condtitions, here or in the conditions.lisp? Err bitreich.org 70 i-;; On the other hand, those constants are just numbers defined for C, Err bitreich.org 70 i-;; for now we jsut report human readable strings, without possibility Err bitreich.org 70 i-;; to distinguish these error causes programmatically. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/reload.lisp b/3rdparties/software/cl+ssl-20190202-git/src/reload.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/reload.lisp.gph bitreich.org 70 i@@ -1,77 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2001, 2003 Eric Marsden Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; "the conditions and ENSURE-SSL-FUNCALL are by Jochen Schmidt." Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; We do this in an extra file so that it happens Err bitreich.org 70 i-;;; - after the asd file has been loaded, so that users can Err bitreich.org 70 i-;;; customize *libssl-pathname* between loading the asd and LOAD-OPing Err bitreich.org 70 i-;;; the actual sources Err bitreich.org 70 i-;;; - before ssl.lisp is loaded, which needs the library at compilation Err bitreich.org 70 i-;;; time on some implemenations Err bitreich.org 70 i-;;; - but not every time ffi.lisp is re-loaded as would happen if we Err bitreich.org 70 i-;;; put this directly into ffi.lisp Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:define-foreign-library libcrypto Err bitreich.org 70 i- (:openbsd "libcrypto.so") Err bitreich.org 70 i- (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts Err bitreich.org 70 i- "/sw/lib/libcrypto.dylib" ;; Fink Err bitreich.org 70 i- "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew Err bitreich.org 70 i- "/usr/local/lib/libcrypto.dylib" ;; personalized install Err bitreich.org 70 i- "libcrypto.dylib" ;; default system libcrypto, which may have insufficient crypto Err bitreich.org 70 i- "/usr/lib/libcrypto.dylib"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:define-foreign-library libssl Err bitreich.org 70 i- (:windows (:or "libssl32.dll" "ssleay32.dll")) Err bitreich.org 70 i- ;; The default OS-X libssl seems have had insufficient crypto algos Err bitreich.org 70 i- ;; (missing TLSv1_[1,2]_XXX methods, Err bitreich.org 70 i- ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56) Err bitreich.org 70 i- ;; so first try to load possible custom installations of libssl Err bitreich.org 70 i- (:darwin (:or "/opt/local/lib/libssl.dylib" ;; MacPorts Err bitreich.org 70 i- "/sw/lib/libssl.dylib" ;; Fink Err bitreich.org 70 i- "/usr/local/opt/openssl/lib/libssl.dylib" ;; Homebrew Err bitreich.org 70 i- "/usr/local/lib/libssl.dylib" ;; personalized install Err bitreich.org 70 i- "libssl.dylib" ;; default system libssl, which may have insufficient crypto Err bitreich.org 70 i- "/usr/lib/libssl.dylib")) Err bitreich.org 70 i- (:solaris (:or "/lib/64/libssl.so" Err bitreich.org 70 i- "libssl.so.0.9.8" "libssl.so" "libssl.so.4")) Err bitreich.org 70 i- ;; Unlike some other systems, OpenBSD linker, Err bitreich.org 70 i- ;; when passed library name without versions at the end, Err bitreich.org 70 i- ;; will locate the library with highest macro.minor version, Err bitreich.org 70 i- ;; so we can just use just "libssl.so". Err bitreich.org 70 i- ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2. Err bitreich.org 70 i- (:openbsd "libssl.so") Err bitreich.org 70 i- ((and :unix (not :cygwin)) (:or "libssl.so.1.0.2m" Err bitreich.org 70 i- "libssl.so.1.0.2k" Err bitreich.org 70 i- "libssl.so.1.0.2" Err bitreich.org 70 i- "libssl.so.1.0.1l" Err bitreich.org 70 i- "libssl.so.1.0.1j" Err bitreich.org 70 i- "libssl.so.1.0.1f" Err bitreich.org 70 i- "libssl.so.1.0.1e" Err bitreich.org 70 i- "libssl.so.1.0.1" Err bitreich.org 70 i- "libssl.so.1.0.0q" Err bitreich.org 70 i- "libssl.so.1.0.0" Err bitreich.org 70 i- "libssl.so.0.9.8ze" Err bitreich.org 70 i- "libssl.so.0.9.8" Err bitreich.org 70 i- "libssl.so.10" Err bitreich.org 70 i- "libssl.so.4" Err bitreich.org 70 i- "libssl.so")) Err bitreich.org 70 i- (:cygwin "cygssl-1.0.0.dll") Err bitreich.org 70 i- (t (:default "libssl3"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(cffi:define-foreign-library libeay32 Err bitreich.org 70 i- (:windows "libeay32.dll")) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(unless (member :cl+ssl-foreign-libs-already-loaded Err bitreich.org 70 i- *features*) Err bitreich.org 70 i- (cffi:use-foreign-library libcrypto) Err bitreich.org 70 i- (cffi:use-foreign-library libssl) Err bitreich.org 70 i- (cffi:use-foreign-library libeay32)) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/streams.lisp b/3rdparties/software/cl+ssl-20190202-git/src/streams.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/streams.lisp.gph bitreich.org 70 i@@ -1,480 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; Copyright (C) 2001, 2003 Eric Marsden Err bitreich.org 70 i-;;; Copyright (C) 2005 David Lichteblau Err bitreich.org 70 i-;;; Copyright (C) 2007 Pixel // pinterface Err bitreich.org 70 i-;;; "the conditions and ENSURE-SSL-FUNCALL are by Jochen Schmidt." Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb Err bitreich.org 70 i-(module Err bitreich.org 70 i- (:depends-on ("package" "conditions" "ffi" Err bitreich.org 70 i- (:cond ((:featurep :clisp) "ffi-buffer-clisp") Err bitreich.org 70 i- (t "ffi-buffer")) Err bitreich.org 70 i- "ffi-buffer-all"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(eval-when (:compile-toplevel) Err bitreich.org 70 i- (declaim Err bitreich.org 70 i- (optimize (speed 3) (space 1) (safety 1) (debug 0) (compilation-speed 0)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-;; Default Cipher List Err bitreich.org 70 i-(defvar *default-cipher-list* "ALL") Err bitreich.org 70 i- Err bitreich.org 70 i-(defclass ssl-stream Err bitreich.org 70 i- (trivial-gray-stream-mixin Err bitreich.org 70 i- fundamental-binary-input-stream Err bitreich.org 70 i- fundamental-binary-output-stream) Err bitreich.org 70 i- ((ssl-stream-socket Err bitreich.org 70 i- :initarg :socket Err bitreich.org 70 i- :accessor ssl-stream-socket) Err bitreich.org 70 i- (close-callback Err bitreich.org 70 i- :initarg :close-callback Err bitreich.org 70 i- :accessor ssl-close-callback) Err bitreich.org 70 i- (handle Err bitreich.org 70 i- :initform nil Err bitreich.org 70 i- :accessor ssl-stream-handle) Err bitreich.org 70 i- (deadline Err bitreich.org 70 i- :initform nil Err bitreich.org 70 i- :initarg :deadline Err bitreich.org 70 i- :accessor ssl-stream-deadline) Err bitreich.org 70 i- (output-buffer Err bitreich.org 70 i- :initform (make-buffer +initial-buffer-size+) Err bitreich.org 70 i- :accessor ssl-stream-output-buffer) Err bitreich.org 70 i- (output-pointer Err bitreich.org 70 i- :initform 0 Err bitreich.org 70 i- :accessor ssl-stream-output-pointer) Err bitreich.org 70 i- (input-buffer Err bitreich.org 70 i- :initform (make-buffer +initial-buffer-size+) Err bitreich.org 70 i- :accessor ssl-stream-input-buffer) Err bitreich.org 70 i- (peeked-byte Err bitreich.org 70 i- :initform nil Err bitreich.org 70 i- :accessor ssl-stream-peeked-byte))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod print-object ((object ssl-stream) stream) Err bitreich.org 70 i- (print-unreadable-object (object stream :type t) Err bitreich.org 70 i- (format stream "for ~A" (ssl-stream-socket object)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defclass ssl-server-stream (ssl-stream) Err bitreich.org 70 i- ((certificate Err bitreich.org 70 i- :initarg :certificate Err bitreich.org 70 i- :accessor ssl-stream-certificate) Err bitreich.org 70 i- (key Err bitreich.org 70 i- :initarg :key Err bitreich.org 70 i- :accessor ssl-stream-key))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-element-type ((stream ssl-stream)) Err bitreich.org 70 i- '(unsigned-byte 8)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod close ((stream ssl-stream) &key abort) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((ssl-stream-handle stream) Err bitreich.org 70 i- (unless abort Err bitreich.org 70 i- (force-output stream)) Err bitreich.org 70 i- (ssl-free (ssl-stream-handle stream)) Err bitreich.org 70 i- (setf (ssl-stream-handle stream) nil) Err bitreich.org 70 i- (when (streamp (ssl-stream-socket stream)) Err bitreich.org 70 i- (close (ssl-stream-socket stream))) Err bitreich.org 70 i- (when (ssl-close-callback stream) Err bitreich.org 70 i- (funcall (ssl-close-callback stream))) Err bitreich.org 70 i- t) Err bitreich.org 70 i- (t Err bitreich.org 70 i- nil))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod open-stream-p ((stream ssl-stream)) Err bitreich.org 70 i- (and (ssl-stream-handle stream) t)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-listen ((stream ssl-stream)) Err bitreich.org 70 i- (or (ssl-stream-peeked-byte stream) Err bitreich.org 70 i- (setf (ssl-stream-peeked-byte stream) Err bitreich.org 70 i- (let* ((buf (ssl-stream-input-buffer stream)) Err bitreich.org 70 i- (handle (ssl-stream-handle stream)) Err bitreich.org 70 i- (*blockp* nil) ;; for the Lisp-BIO Err bitreich.org 70 i- (n (with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (nonblocking-ssl-funcall Err bitreich.org 70 i- stream handle #'ssl-read handle ptr 1)))) Err bitreich.org 70 i- (and (> n 0) (buffer-elt buf 0)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-read-byte ((stream ssl-stream)) Err bitreich.org 70 i- (or (prog1 Err bitreich.org 70 i- (ssl-stream-peeked-byte stream) Err bitreich.org 70 i- (setf (ssl-stream-peeked-byte stream) nil)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (let ((buf (ssl-stream-input-buffer stream)) Err bitreich.org 70 i- (handle (ssl-stream-handle stream))) Err bitreich.org 70 i- (with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (ensure-ssl-funcall Err bitreich.org 70 i- stream handle #'ssl-read handle ptr 1)) Err bitreich.org 70 i- (buffer-elt buf 0)) Err bitreich.org 70 i- (ssl-error-zero-return () ;SSL_read returns 0 on end-of-file Err bitreich.org 70 i- :eof)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-read-sequence ((stream ssl-stream) seq start end &key) Err bitreich.org 70 i- (when (and (< start end) (ssl-stream-peeked-byte stream)) Err bitreich.org 70 i- (setf (elt seq start) (ssl-stream-peeked-byte stream)) Err bitreich.org 70 i- (setf (ssl-stream-peeked-byte stream) nil) Err bitreich.org 70 i- (incf start)) Err bitreich.org 70 i- (let ((buf (ssl-stream-input-buffer stream)) Err bitreich.org 70 i- (handle (ssl-stream-handle stream))) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- for length = (min (- end start) (buffer-length buf)) Err bitreich.org 70 i- while (plusp length) Err bitreich.org 70 i- do Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (let ((read-bytes Err bitreich.org 70 i- (with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (ensure-ssl-funcall Err bitreich.org 70 i- stream handle #'ssl-read handle ptr length)))) Err bitreich.org 70 i- (s/b-replace seq buf :start1 start :end1 (+ start read-bytes)) Err bitreich.org 70 i- (incf start read-bytes)) Err bitreich.org 70 i- (ssl-error-zero-return () ;SSL_read returns 0 on end-of-file Err bitreich.org 70 i- (return)))) Err bitreich.org 70 i- ;; fixme: kein out-of-file wenn (zerop start)? Err bitreich.org 70 i- start)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-write-byte ((stream ssl-stream) b) Err bitreich.org 70 i- (let ((buf (ssl-stream-output-buffer stream))) Err bitreich.org 70 i- (when (eql (buffer-length buf) (ssl-stream-output-pointer stream)) Err bitreich.org 70 i- (force-output stream)) Err bitreich.org 70 i- (setf (buffer-elt buf (ssl-stream-output-pointer stream)) b) Err bitreich.org 70 i- (incf (ssl-stream-output-pointer stream))) Err bitreich.org 70 i- b) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-write-sequence ((stream ssl-stream) seq start end &key) Err bitreich.org 70 i- (let ((buf (ssl-stream-output-buffer stream))) Err bitreich.org 70 i- (when (> (+ (- end start) (ssl-stream-output-pointer stream)) (buffer-length buf)) Err bitreich.org 70 i- ;; not enough space left? flush buffer. Err bitreich.org 70 i- (force-output stream) Err bitreich.org 70 i- ;; still doesn't fit? Err bitreich.org 70 i- (while (> (- end start) (buffer-length buf)) Err bitreich.org 70 i- (b/s-replace buf seq :start2 start) Err bitreich.org 70 i- (incf start (buffer-length buf)) Err bitreich.org 70 i- (setf (ssl-stream-output-pointer stream) (buffer-length buf)) Err bitreich.org 70 i- (force-output stream))) Err bitreich.org 70 i- (b/s-replace buf seq Err bitreich.org 70 i- :start1 (ssl-stream-output-pointer stream) Err bitreich.org 70 i- :start2 start Err bitreich.org 70 i- :end2 end) Err bitreich.org 70 i- (incf (ssl-stream-output-pointer stream) (- end start))) Err bitreich.org 70 i- seq) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-finish-output ((stream ssl-stream)) Err bitreich.org 70 i- (stream-force-output stream)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod stream-force-output ((stream ssl-stream)) Err bitreich.org 70 i- (let ((buf (ssl-stream-output-buffer stream)) Err bitreich.org 70 i- (fill-ptr (ssl-stream-output-pointer stream)) Err bitreich.org 70 i- (handle (ssl-stream-handle stream))) Err bitreich.org 70 i- (when (plusp fill-ptr) Err bitreich.org 70 i- (unless handle Err bitreich.org 70 i- (error "output operation on closed SSL stream")) Err bitreich.org 70 i- (with-pointer-to-vector-data (ptr buf) Err bitreich.org 70 i- (ensure-ssl-funcall stream handle #'ssl-write handle ptr fill-ptr)) Err bitreich.org 70 i- (setf (ssl-stream-output-pointer stream) 0)))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+(and clozure-common-lisp (not windows)) Err bitreich.org 70 i-(defun install-nonblock-flag (fd) Err bitreich.org 70 i- (ccl::fd-set-flags fd (logior (ccl::fd-get-flags fd) Err bitreich.org 70 i- #.(read-from-string "#$O_NONBLOCK")))) Err bitreich.org 70 i- ;; read-from-string is necessary because Err bitreich.org 70 i- ;; CLISP and perhaps other Lisps are confused Err bitreich.org 70 i- ;; by #$, signaling"undefined dispatch character $", Err bitreich.org 70 i- ;; even though the defun in conditionalized by Err bitreich.org 70 i- ;; #+clozure-common-lisp Err bitreich.org 70 i- Err bitreich.org 70 i-#+(and sbcl (not win32)) Err bitreich.org 70 i-(defun install-nonblock-flag (fd) Err bitreich.org 70 i- (sb-posix:fcntl fd Err bitreich.org 70 i- sb-posix::f-setfl Err bitreich.org 70 i- (logior (sb-posix:fcntl fd sb-posix::f-getfl) Err bitreich.org 70 i- sb-posix::o-nonblock))) Err bitreich.org 70 i- Err bitreich.org 70 i-#-(or (and clozure-common-lisp (not windows)) sbcl) Err bitreich.org 70 i-(defun install-nonblock-flag (fd) Err bitreich.org 70 i- (declare (ignore fd))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+(and sbcl win32) Err bitreich.org 70 i-(defun install-nonblock-flag (fd) Err bitreich.org 70 i- (when (boundp 'sockint::fionbio) Err bitreich.org 70 i- (sockint::ioctl fd sockint::fionbio 1))) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; interface functions Err bitreich.org 70 i-;;; Err bitreich.org 70 i- Err bitreich.org 70 i-(defun install-handle-and-bio (stream handle socket unwrap-stream-p) Err bitreich.org 70 i- (setf (ssl-stream-handle stream) handle) Err bitreich.org 70 i- (when unwrap-stream-p Err bitreich.org 70 i- (let ((fd (stream-fd socket))) Err bitreich.org 70 i- (when fd Err bitreich.org 70 i- (setf socket fd)))) Err bitreich.org 70 i- (etypecase socket Err bitreich.org 70 i- (integer Err bitreich.org 70 i- (install-nonblock-flag socket) Err bitreich.org 70 i- (ssl-set-fd handle socket)) Err bitreich.org 70 i- (stream Err bitreich.org 70 i- (ssl-set-bio handle (bio-new-lisp) (bio-new-lisp)))) Err bitreich.org 70 i- Err bitreich.org 70 i- ;; The below call setting +SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER+ mode Err bitreich.org 70 i- ;; existed since commit 5bd5225. Err bitreich.org 70 i- ;; It is implemented wrong - ssl-ctx-ctrl expects Err bitreich.org 70 i- ;; a context as the first parameter, not handle. Err bitreich.org 70 i- ;; It was lucky to not crush on Linux and Windows, Err bitreich.org 70 i- ;; untill crash was detedcted on OpenBSD + LibreSSL. Err bitreich.org 70 i- ;; See https://github.com/cl-plus-ssl/cl-plus-ssl/pull/42. Err bitreich.org 70 i- ;; We keep this code commented but not removed because Err bitreich.org 70 i- ;; we don't know what David Lichteblau meant when Err bitreich.org 70 i- ;; added this - maybe he has some idea? Err bitreich.org 70 i- ;; (Although modifying global context is a bad Err bitreich.org 70 i- ;; thing to do for install-handle-and-bio function, Err bitreich.org 70 i- ;; also we don't see a need for movable buffer - Err bitreich.org 70 i- ;; we don't repeat calls to ssl functions with Err bitreich.org 70 i- ;; moved buffer). Err bitreich.org 70 i- ;; Err bitreich.org 70 i- ;; (ssl-ctx-ctrl handle Err bitreich.org 70 i- ;; +SSL_CTRL_MODE+ Err bitreich.org 70 i- ;; +SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER+ Err bitreich.org 70 i- ;; (cffi:null-pointer)) Err bitreich.org 70 i- Err bitreich.org 70 i- socket) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun install-key-and-cert (handle key certificate) Err bitreich.org 70 i- (when key Err bitreich.org 70 i- (unless (eql 1 (ssl-use-rsa-privatekey-file handle Err bitreich.org 70 i- key Err bitreich.org 70 i- +ssl-filetype-pem+)) Err bitreich.org 70 i- (error 'ssl-error-initialize :reason (format nil "Can't load RSA private key file ~A" key)))) Err bitreich.org 70 i- (when certificate Err bitreich.org 70 i- (unless (eql 1 (ssl-use-certificate-file handle Err bitreich.org 70 i- certificate Err bitreich.org 70 i- +ssl-filetype-pem+)) Err bitreich.org 70 i- (error 'ssl-error-initialize Err bitreich.org 70 i- :reason (format nil "Can't load certificate ~A" certificate))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun x509-certificate-names (x509-certificate) Err bitreich.org 70 i- (unless (cffi:null-pointer-p x509-certificate) Err bitreich.org 70 i- (cffi:with-foreign-pointer (buf 1024) Err bitreich.org 70 i- (let ((issuer-name (x509-get-issuer-name x509-certificate)) Err bitreich.org 70 i- (subject-name (x509-get-subject-name x509-certificate))) Err bitreich.org 70 i- (values Err bitreich.org 70 i- (unless (cffi:null-pointer-p issuer-name) Err bitreich.org 70 i- (x509-name-oneline issuer-name buf 1024) Err bitreich.org 70 i- (cffi:foreign-string-to-lisp buf)) Err bitreich.org 70 i- (unless (cffi:null-pointer-p subject-name) Err bitreich.org 70 i- (x509-name-oneline subject-name buf 1024) Err bitreich.org 70 i- (cffi:foreign-string-to-lisp buf))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod ssl-stream-handle ((stream flexi-streams:flexi-stream)) Err bitreich.org 70 i- (ssl-stream-handle (flexi-streams:flexi-stream-stream stream))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-stream-x509-certificate (ssl-stream) Err bitreich.org 70 i- (ssl-get-peer-certificate (ssl-stream-handle ssl-stream))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-load-global-verify-locations (&rest pathnames) Err bitreich.org 70 i- "PATHNAMES is a list of pathnames to PEM files containing server and CA certificates. Err bitreich.org 70 i-Install these certificates to use for verifying on all SSL connections. Err bitreich.org 70 i-After RELOAD, you need to call this again." Err bitreich.org 70 i- (ensure-initialized) Err bitreich.org 70 i- (dolist (path pathnames) Err bitreich.org 70 i- (let ((namestring (namestring (truename path)))) Err bitreich.org 70 i- (cffi:with-foreign-strings ((cafile namestring)) Err bitreich.org 70 i- (unless (eql 1 (ssl-ctx-load-verify-locations Err bitreich.org 70 i- *ssl-global-context* Err bitreich.org 70 i- cafile Err bitreich.org 70 i- (cffi:null-pointer))) Err bitreich.org 70 i- (error "ssl-ctx-load-verify-locations failed.")))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-set-global-default-verify-paths () Err bitreich.org 70 i- "Load the system default verification certificates. Err bitreich.org 70 i-After RELOAD, you need to call this again." Err bitreich.org 70 i- (ensure-initialized) Err bitreich.org 70 i- (unless (eql 1 (ssl-ctx-set-default-verify-paths *ssl-global-context*)) Err bitreich.org 70 i- (error "ssl-ctx-set-default-verify-paths failed."))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-check-verify-p () Err bitreich.org 70 i- "DEPRECATED. Use the (MAKE-SSL-CLIENT-STREAM .. :VERIFY ?) to enable/disable verification. Err bitreich.org 70 i-MAKE-CONTEXT also allows to enab/disable verification. Err bitreich.org 70 i- Err bitreich.org 70 i-Return true if SSL connections will error if the certificate doesn't verify." Err bitreich.org 70 i- (and *ssl-check-verify-p* (not (eq *ssl-check-verify-p* :unspecified)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun (setf ssl-check-verify-p) (check-verify-p) Err bitreich.org 70 i- "DEPRECATED. Use the (MAKE-SSL-CLIENT-STREAM .. :VERIFY ?) to enable/disable verification. Err bitreich.org 70 i-MAKE-CONTEXT also allows to enab/disable verification. Err bitreich.org 70 i- Err bitreich.org 70 i-If CHECK-VERIFY-P is true, signal connection errors if the server certificate doesn't verify." Err bitreich.org 70 i- (setf *ssl-check-verify-p* (not (null check-verify-p)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun ssl-verify-init (&key Err bitreich.org 70 i- (verify-depth nil) Err bitreich.org 70 i- (verify-locations nil)) Err bitreich.org 70 i-"DEPRECATED. Err bitreich.org 70 i-Use the (MAKE-SSL-CLIENT-STREAM .. :VERIFY ?) to enable/disable verification. Err bitreich.org 70 i-Use (MAKE-CONTEXT ... :VERIFY-LOCATION ? :VERIFY-DEPTH ?) to control the verification depth and locations. Err bitreich.org 70 i-MAKE-CONTEXT also allows to enab/disable verification." Err bitreich.org 70 i- (check-type verify-depth (or null integer)) Err bitreich.org 70 i- (ensure-initialized) Err bitreich.org 70 i- (when verify-depth Err bitreich.org 70 i- (ssl-ctx-set-verify-depth *ssl-global-context* verify-depth)) Err bitreich.org 70 i- (when verify-locations Err bitreich.org 70 i- (apply #'ssl-load-global-verify-locations verify-locations) Err bitreich.org 70 i- ;; This makes (setf (ssl-check-verify) nil) persistent Err bitreich.org 70 i- (unless (null *ssl-check-verify-p*) Err bitreich.org 70 i- (setf (ssl-check-verify-p) t)) Err bitreich.org 70 i- t)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun maybe-verify-client-stream (ssl-stream verify-mode hostname) Err bitreich.org 70 i- ;; VERIFY-MODE is one of NIL, :OPTIONAL, :REQUIRED Err bitreich.org 70 i- ;; HOSTNAME is either NIL or a string. Err bitreich.org 70 i- (when verify-mode Err bitreich.org 70 i- (let* ((handle (ssl-stream-handle ssl-stream)) Err bitreich.org 70 i- (srv-cert (ssl-get-peer-certificate handle))) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (when (and (eq :required verify-mode) Err bitreich.org 70 i- (cffi:null-pointer-p srv-cert)) Err bitreich.org 70 i- (error 'server-certificate-missing Err bitreich.org 70 i- :format-control "The server didn't present a certificate.")) Err bitreich.org 70 i- (let ((err (ssl-get-verify-result handle))) Err bitreich.org 70 i- (unless (eql err 0) Err bitreich.org 70 i- (error 'ssl-error-verify :stream ssl-stream :error-code err))) Err bitreich.org 70 i- (when (and hostname Err bitreich.org 70 i- (not (cffi:null-pointer-p srv-cert)) Err bitreich.org 70 i- ;; Beware of the unusual protocol of verify-hostname: Err bitreich.org 70 i- ;; it returns the verification result as true / false, Err bitreich.org 70 i- ;; but also signals error for many verification failures. Err bitreich.org 70 i- ;; TODO: refactor verify-hostname to simplify this protocol. Err bitreich.org 70 i- (not (verify-hostname srv-cert hostname))) Err bitreich.org 70 i- (error 'ssl-unable-to-match-host-name :hostname hostname)))) Err bitreich.org 70 i- (unless (cffi:null-pointer-p srv-cert) Err bitreich.org 70 i- (x509-free srv-cert))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun handle-external-format (stream ef) Err bitreich.org 70 i- (if ef Err bitreich.org 70 i- (flexi-streams:make-flexi-stream stream :external-format ef) Err bitreich.org 70 i- stream)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-new-ssl ((var) &body body) Err bitreich.org 70 i- (alexandria:with-gensyms (ssl) Err bitreich.org 70 i- `(let* ((,ssl (ssl-new *ssl-global-context*)) Err bitreich.org 70 i- (,var ,ssl)) Err bitreich.org 70 i- (when (cffi:null-pointer-p ,ssl) Err bitreich.org 70 i- (error 'ssl-error-call :message "Unable to create SSL structure" :queue (read-ssl-error-queue))) Err bitreich.org 70 i- (handler-bind ((error (lambda (_) Err bitreich.org 70 i- (declare (ignore _)) Err bitreich.org 70 i- (ssl-free ,ssl)))) Err bitreich.org 70 i- ,@body)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *make-ssl-client-stream-verify-default* Err bitreich.org 70 i- (if (member :windows *features*) ; by trivial-features Err bitreich.org 70 i- ;; On Windows we can't yet initizlise context with Err bitreich.org 70 i- ;; trusted certifying authorities from system configuration. Err bitreich.org 70 i- ;; ssl-ctx-set-default-verify-paths only helps Err bitreich.org 70 i- ;; on Unix-like platforms. Err bitreich.org 70 i- ;; See https://github.com/cl-plus-ssl/cl-plus-ssl/issues/54. Err bitreich.org 70 i- nil Err bitreich.org 70 i- :required) Err bitreich.org 70 i- "Helps to mitigate the change in default behaviour of Err bitreich.org 70 i-MAKE-SSL-CLIENT-STREAM - previously it worked as if :VERIFY NIL Err bitreich.org 70 i-but then :VERIFY :REQUIRED became the default on non-Windows platforms. Err bitreich.org 70 i-Change this variable if you want the previous behaviour.") Err bitreich.org 70 i- Err bitreich.org 70 i-;; fixme: free the context when errors happen in this function Err bitreich.org 70 i-(defun make-ssl-client-stream Err bitreich.org 70 i- (socket &key certificate key password (method 'ssl-v23-method) external-format Err bitreich.org 70 i- close-callback (unwrap-stream-p t) Err bitreich.org 70 i- (cipher-list *default-cipher-list*) Err bitreich.org 70 i- (verify (if (ssl-check-verify-p) Err bitreich.org 70 i- :optional Err bitreich.org 70 i- *make-ssl-client-stream-verify-default*)) Err bitreich.org 70 i- hostname) Err bitreich.org 70 i- "Returns an SSL stream for the client socket descriptor SOCKET. Err bitreich.org 70 i-CERTIFICATE is the path to a file containing the PEM-encoded certificate for Err bitreich.org 70 i- your client. KEY is the path to the PEM-encoded key for the client, which Err bitreich.org 70 i-may be associated with the passphrase PASSWORD. Err bitreich.org 70 i- Err bitreich.org 70 i-VERIFY can be specified either as NIL if no check should be performed, Err bitreich.org 70 i-:OPTIONAL to verify the server's certificate if it presented one or Err bitreich.org 70 i-:REQUIRED to verify the server's certificate and fail if an invalid Err bitreich.org 70 i-or no certificate was presented. Err bitreich.org 70 i- Err bitreich.org 70 i-HOSTNAME if specified, will be sent by client during TLS negotiation, Err bitreich.org 70 i-according to the Server Name Indication (SNI) extension to the TLS. Err bitreich.org 70 i-When server handles several domain names, this extension enables the server Err bitreich.org 70 i-to choose certificate for right domain. Also the HOSTNAME is used for Err bitreich.org 70 i-hostname verification if verification is enabled by VERIFY." Err bitreich.org 70 i- (ensure-initialized :method method) Err bitreich.org 70 i- (let ((stream (make-instance 'ssl-stream Err bitreich.org 70 i- :socket socket Err bitreich.org 70 i- :close-callback close-callback))) Err bitreich.org 70 i- (with-new-ssl (handle) Err bitreich.org 70 i- (if hostname Err bitreich.org 70 i- (cffi:with-foreign-string (chostname hostname) Err bitreich.org 70 i- (ssl-set-tlsext-host-name handle chostname))) Err bitreich.org 70 i- (setf socket (install-handle-and-bio stream handle socket unwrap-stream-p)) Err bitreich.org 70 i- (ssl-set-connect-state handle) Err bitreich.org 70 i- (when (zerop (ssl-set-cipher-list handle cipher-list)) Err bitreich.org 70 i- (error 'ssl-error-initialize :reason "Can't set SSL cipher list")) Err bitreich.org 70 i- (with-pem-password (password) Err bitreich.org 70 i- (install-key-and-cert handle key certificate)) Err bitreich.org 70 i- (ensure-ssl-funcall stream handle #'ssl-connect handle) Err bitreich.org 70 i- (maybe-verify-client-stream stream verify hostname) Err bitreich.org 70 i- (handle-external-format stream external-format)))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; fixme: free the context when errors happen in this function Err bitreich.org 70 i-(defun make-ssl-server-stream Err bitreich.org 70 i- (socket &key certificate key password (method 'ssl-v23-method) external-format Err bitreich.org 70 i- close-callback (unwrap-stream-p t) Err bitreich.org 70 i- (cipher-list *default-cipher-list*)) Err bitreich.org 70 i- "Returns an SSL stream for the server socket descriptor SOCKET. Err bitreich.org 70 i-CERTIFICATE is the path to a file containing the PEM-encoded certificate for Err bitreich.org 70 i- your server. KEY is the path to the PEM-encoded key for the server, which Err bitreich.org 70 i-may be associated with the passphrase PASSWORD." Err bitreich.org 70 i- (ensure-initialized :method method) Err bitreich.org 70 i- (let ((stream (make-instance 'ssl-server-stream Err bitreich.org 70 i- :socket socket Err bitreich.org 70 i- :close-callback close-callback Err bitreich.org 70 i- :certificate certificate Err bitreich.org 70 i- :key key))) Err bitreich.org 70 i- (with-new-ssl (handle) Err bitreich.org 70 i- (setf socket (install-handle-and-bio stream handle socket unwrap-stream-p)) Err bitreich.org 70 i- (ssl-set-accept-state handle) Err bitreich.org 70 i- (when (zerop (ssl-set-cipher-list handle cipher-list)) Err bitreich.org 70 i- (error 'ssl-error-initialize :reason "Can't set SSL cipher list")) Err bitreich.org 70 i- (with-pem-password (password) Err bitreich.org 70 i- (install-key-and-cert handle key certificate)) Err bitreich.org 70 i- (ensure-ssl-funcall stream handle #'ssl-accept handle) Err bitreich.org 70 i- (handle-external-format stream external-format)))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+openmcl Err bitreich.org 70 i-(defmethod stream-deadline ((stream ccl::basic-stream)) Err bitreich.org 70 i- (ccl::ioblock-deadline (ccl::stream-ioblock stream t))) Err bitreich.org 70 i-#+openmcl Err bitreich.org 70 i-(defmethod stream-deadline ((stream t)) Err bitreich.org 70 i- nil) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(defgeneric stream-fd (stream)) Err bitreich.org 70 i-(defmethod stream-fd (stream) stream) Err bitreich.org 70 i- Err bitreich.org 70 i-#+sbcl Err bitreich.org 70 i-(defmethod stream-fd ((stream sb-sys:fd-stream)) Err bitreich.org 70 i- (sb-sys:fd-stream-fd stream)) Err bitreich.org 70 i- Err bitreich.org 70 i-#+cmu Err bitreich.org 70 i-(defmethod stream-fd ((stream system:fd-stream)) Err bitreich.org 70 i- (system:fd-stream-fd stream)) Err bitreich.org 70 i- Err bitreich.org 70 i-#+openmcl Err bitreich.org 70 i-(defmethod stream-fd ((stream ccl::basic-stream)) Err bitreich.org 70 i- (ccl::ioblock-device (ccl::stream-ioblock stream t))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+clisp Err bitreich.org 70 i-(defmethod stream-fd ((stream stream)) Err bitreich.org 70 i- ;; sockets appear to be direct instances of STREAM Err bitreich.org 70 i- (ext:stream-handles stream)) Err bitreich.org 70 i- Err bitreich.org 70 i-#+ecl Err bitreich.org 70 i-(defmethod stream-fd ((stream two-way-stream)) Err bitreich.org 70 i- (si:file-stream-fd (two-way-stream-input-stream stream))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/verify-hostname.lisp b/3rdparties/software/cl+ssl-20190202-git/src/verify-hostname.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/verify-hostname.lisp.gph bitreich.org 70 i@@ -1,109 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition hostname-verification-error (error) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition unable-to-match-altnames (hostname-verification-error) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition unable-to-decode-common-name (hostname-verification-error) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition unable-to-match-common-name (hostname-verification-error) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun case-insensitive-match (name hostname) Err bitreich.org 70 i- (string-equal name hostname)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun remove-trailing-dot (string) Err bitreich.org 70 i- (string-right-trim '(#\.) string)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun check-wildcard-in-leftmost-label (identifier wildcard-pos) Err bitreich.org 70 i- (alexandria:when-let ((dot-pos (position #\. identifier))) Err bitreich.org 70 i- (> dot-pos wildcard-pos))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun check-single-wildcard (identifier wildcard-pos) Err bitreich.org 70 i- (not (find #\* identifier :start (1+ wildcard-pos)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun check-two-labels-after-wildcard (after-wildcard) Err bitreich.org 70 i- ;;at least two dots(in fact labels since we remove trailing dot first) after wildcard Err bitreich.org 70 i- (alexandria:when-let ((first-dot-aw-pos (position #\. after-wildcard))) Err bitreich.org 70 i- (and (find #\. after-wildcard :start (1+ first-dot-aw-pos)) Err bitreich.org 70 i- first-dot-aw-pos))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun validate-and-parse-wildcard-identifier (identifier hostname) Err bitreich.org 70 i- (alexandria:when-let ((wildcard-pos (position #\* identifier))) Err bitreich.org 70 i- (when (and (>= (length hostname) (length identifier)) ;; wildcard should constiute at least one character Err bitreich.org 70 i- (check-wildcard-in-leftmost-label identifier wildcard-pos) Err bitreich.org 70 i- (check-single-wildcard identifier wildcard-pos)) Err bitreich.org 70 i- (let ((after-wildcard (subseq identifier (1+ wildcard-pos))) Err bitreich.org 70 i- (before-wildcard (subseq identifier 0 wildcard-pos))) Err bitreich.org 70 i- (alexandria:when-let ((first-dot-aw-pos (check-two-labels-after-wildcard after-wildcard))) Err bitreich.org 70 i- (if (and (= 0 (length before-wildcard)) ;; nothing before wildcard Err bitreich.org 70 i- (= wildcard-pos first-dot-aw-pos)) ;; i.e. dot follows * Err bitreich.org 70 i- (values t before-wildcard after-wildcard t) Err bitreich.org 70 i- (values t before-wildcard after-wildcard nil))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun wildcard-not-in-a-label (before-wildcard after-wildcard) Err bitreich.org 70 i- (let ((after-w-dot-pos (position #\. after-wildcard))) Err bitreich.org 70 i- (and Err bitreich.org 70 i- (not (search "xn--" before-wildcard)) Err bitreich.org 70 i- (not (search "xn--" (subseq after-wildcard 0 after-w-dot-pos)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun try-match-wildcard (before-wildcard after-wildcard single-char-wildcard pattern) Err bitreich.org 70 i- ;; Compare AfterW part with end of pattern with length (length AfterW) Err bitreich.org 70 i- ;; was Wildcard the only character in left-most label in identifier Err bitreich.org 70 i- ;; doesn't matter since parts after Wildcard should match unconditionally. Err bitreich.org 70 i- ;; However if Wildcard was the only character in left-most label we can't match this *.example.com and bar.foo.example.com Err bitreich.org 70 i- ;; if i'm correct if it wasn't the only character Err bitreich.org 70 i- ;; we can match like this: *o.example.com = bar.foo.example.com Err bitreich.org 70 i- ;; but this is prohibited anyway thanks to check-vildcard-in-leftmost-label Err bitreich.org 70 i- (if single-char-wildcard Err bitreich.org 70 i- (let ((pattern-except-left-most-label Err bitreich.org 70 i- (alexandria:if-let ((first-hostname-dot-post (position #\. pattern))) Err bitreich.org 70 i- (subseq pattern first-hostname-dot-post) Err bitreich.org 70 i- pattern))) Err bitreich.org 70 i- (case-insensitive-match after-wildcard pattern-except-left-most-label)) Err bitreich.org 70 i- (when (wildcard-not-in-a-label before-wildcard after-wildcard) Err bitreich.org 70 i- ;; baz*.example.net and *baz.example.net and b*z.example.net would Err bitreich.org 70 i- ;; be taken to match baz1.example.net and foobaz.example.net and Err bitreich.org 70 i- ;; buzz.example.net, respectively Err bitreich.org 70 i- (and Err bitreich.org 70 i- (case-insensitive-match before-wildcard (subseq pattern 0 (length before-wildcard))) Err bitreich.org 70 i- (case-insensitive-match after-wildcard (subseq pattern Err bitreich.org 70 i- (- (length pattern) Err bitreich.org 70 i- (length after-wildcard)))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun maybe-try-match-wildcard (name hostname) Err bitreich.org 70 i- (multiple-value-bind (valid before-wildcard after-wildcard single-char-wildcard) Err bitreich.org 70 i- (validate-and-parse-wildcard-identifier name hostname) Err bitreich.org 70 i- (when valid Err bitreich.org 70 i- (try-match-wildcard before-wildcard after-wildcard single-char-wildcard hostname)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun try-match-hostname (name hostname) Err bitreich.org 70 i- (let ((name (remove-trailing-dot name)) Err bitreich.org 70 i- (hostname (remove-trailing-dot hostname))) Err bitreich.org 70 i- (or (case-insensitive-match name hostname) Err bitreich.org 70 i- (maybe-try-match-wildcard name hostname)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun try-match-hostnames (names hostname) Err bitreich.org 70 i- (loop for name in names Err bitreich.org 70 i- when (try-match-hostname name hostname) do Err bitreich.org 70 i- (return t))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun maybe-check-subject-cn (dns-names cert hostname) Err bitreich.org 70 i- (when dns-names Err bitreich.org 70 i- (error 'unable-to-match-altnames)) Err bitreich.org 70 i- ;; TODO: we are matching only first CN Err bitreich.org 70 i- (alexandria:if-let ((cn (first (certificate-subject-common-names cert)))) Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (or (try-match-hostname cn hostname) Err bitreich.org 70 i- (error 'unable-to-match-common-name))) Err bitreich.org 70 i- (error 'unable-to-decode-common-name))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun verify-hostname (cert hostname) Err bitreich.org 70 i- (let* ((dns-names (certificate-dns-alt-names cert))) Err bitreich.org 70 i- (or (try-match-hostnames dns-names hostname) Err bitreich.org 70 i- (maybe-check-subject-cn dns-names cert hostname)))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/src/x509.lisp b/3rdparties/software/cl+ssl-20190202-git/src/x509.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/src/x509.lisp.gph bitreich.org 70 i@@ -1,224 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-#| Err bitreich.org 70 i-ASN1 string validation references: Err bitreich.org 70 i- - https://github.com/digitalbazaar/forge/blob/909e312878838f46ba6d70e90264650b05eb8bde/js/asn1.js Err bitreich.org 70 i- - http://www.obj-sys.com/asn1tutorial/node128.html Err bitreich.org 70 i- - https://github.com/deadtrickster/ssl_verify_hostname.erl/blob/master/src/ssl_verify_hostname.erl Err bitreich.org 70 i- - https://golang.org/src/encoding/asn1/asn1.go?m=text Err bitreich.org 70 i-|# Err bitreich.org 70 i-(defgeneric decode-asn1-string (asn1-string type)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun copy-bytes-to-lisp-vector (src-ptr vector count) Err bitreich.org 70 i- (declare (type (simple-array (unsigned-byte 8)) vector) Err bitreich.org 70 i- (type fixnum count) Err bitreich.org 70 i- (optimize (safety 0) (debug 0) (speed 3))) Err bitreich.org 70 i- (dotimes (i count vector) Err bitreich.org 70 i- (setf (aref vector i) (cffi:mem-aref src-ptr :unsigned-char i)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-string-bytes-vector (asn1-string) Err bitreich.org 70 i- (let* ((data (asn1-string-data asn1-string)) Err bitreich.org 70 i- (length (asn1-string-length asn1-string)) Err bitreich.org 70 i- (vector (cffi:make-shareable-byte-vector length))) Err bitreich.org 70 i- (copy-bytes-to-lisp-vector data vector length) Err bitreich.org 70 i- vector)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-iastring-char-p (byte) Err bitreich.org 70 i- (declare (type (unsigned-byte 8) byte) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (< byte #x80)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-iastring-p (bytes) Err bitreich.org 70 i- (declare (type (simple-array (unsigned-byte 8)) bytes) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (every #'asn1-iastring-char-p bytes)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-iastring+))) Err bitreich.org 70 i- (let ((bytes (asn1-string-bytes-vector asn1-string))) Err bitreich.org 70 i- (if (asn1-iastring-p bytes) Err bitreich.org 70 i- (flex:octets-to-string bytes :external-format :ascii) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-iastring+)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-printable-char-p (byte) Err bitreich.org 70 i- (declare (type (unsigned-byte 8) byte) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ;; a-z Err bitreich.org 70 i- ((and (>= byte #.(char-code #\a)) Err bitreich.org 70 i- (<= byte #.(char-code #\z))) Err bitreich.org 70 i- t) Err bitreich.org 70 i- ;; '-/ Err bitreich.org 70 i- ((and (>= byte #.(char-code #\')) Err bitreich.org 70 i- (<= byte #.(char-code #\/))) Err bitreich.org 70 i- t) Err bitreich.org 70 i- ;; 0-9 Err bitreich.org 70 i- ((and (>= byte #.(char-code #\0)) Err bitreich.org 70 i- (<= byte #.(char-code #\9))) Err bitreich.org 70 i- t) Err bitreich.org 70 i- ;; A-Z Err bitreich.org 70 i- ((and (>= byte #.(char-code #\A)) Err bitreich.org 70 i- (<= byte #.(char-code #\Z))) Err bitreich.org 70 i- t) Err bitreich.org 70 i- ;; other Err bitreich.org 70 i- ((= byte #.(char-code #\ )) t) Err bitreich.org 70 i- ((= byte #.(char-code #\:)) t) Err bitreich.org 70 i- ((= byte #.(char-code #\=)) t) Err bitreich.org 70 i- ((= byte #.(char-code #\?)) t))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-printable-string-p (bytes) Err bitreich.org 70 i- (declare (type (simple-array (unsigned-byte 8)) bytes) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (every #'asn1-printable-char-p bytes)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-printablestring+))) Err bitreich.org 70 i- (let* ((bytes (asn1-string-bytes-vector asn1-string))) Err bitreich.org 70 i- (if (asn1-printable-string-p bytes) Err bitreich.org 70 i- (flex:octets-to-string bytes :external-format :ascii) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-printablestring+)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-utf8string+))) Err bitreich.org 70 i- (let* ((data (asn1-string-data asn1-string)) Err bitreich.org 70 i- (length (asn1-string-length asn1-string))) Err bitreich.org 70 i- (cffi:foreign-string-to-lisp data :count length :encoding :utf-8))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-universalstring+))) Err bitreich.org 70 i- (if (= 0 (mod (asn1-string-length asn1-string) 4)) Err bitreich.org 70 i- ;; cffi sometimes fails here on sbcl? idk why (maybe threading?) Err bitreich.org 70 i- ;; fail: Illegal :UTF-32 character starting at position 48... Err bitreich.org 70 i- ;; when (length bytes) is 48... Err bitreich.org 70 i- ;; so I'm passing :count explicitly Err bitreich.org 70 i- (or (ignore-errors (cffi:foreign-string-to-lisp (asn1-string-data asn1-string) :count (asn1-string-length asn1-string) :encoding :utf-32)) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-universalstring+)) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-universalstring+))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-teletex-char-p (byte) Err bitreich.org 70 i- (declare (type (unsigned-byte 8) byte) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (and (>= byte #x20) Err bitreich.org 70 i- (< byte #x80))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun asn1-teletex-string-p (bytes) Err bitreich.org 70 i- (declare (type (simple-array (unsigned-byte 8)) bytes) Err bitreich.org 70 i- (optimize (speed 3) Err bitreich.org 70 i- (debug 0) Err bitreich.org 70 i- (safety 0))) Err bitreich.org 70 i- (every #'asn1-teletex-char-p bytes)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-teletexstring+))) Err bitreich.org 70 i- (let ((bytes (asn1-string-bytes-vector asn1-string))) Err bitreich.org 70 i- (if (asn1-teletex-string-p bytes) Err bitreich.org 70 i- (flex:octets-to-string bytes :external-format :ascii) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-teletexstring+)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-asn1-string (asn1-string (type (eql +v-asn1-bmpstring+))) Err bitreich.org 70 i- (if (= 0 (mod (asn1-string-length asn1-string) 2)) Err bitreich.org 70 i- (or (ignore-errors (cffi:foreign-string-to-lisp (asn1-string-data asn1-string) :count (asn1-string-length asn1-string) :encoding :utf-16/be)) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-bmpstring+)) Err bitreich.org 70 i- (error 'invalid-asn1-string :type '+v-asn1-bmpstring+))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; TODO: respect asn1-string type Err bitreich.org 70 i-(defun try-get-asn1-string-data (asn1-string allowed-types) Err bitreich.org 70 i- (let ((type (asn1-string-type asn1-string))) Err bitreich.org 70 i- (assert (member (asn1-string-type asn1-string) allowed-types) nil "Invalid asn1 string type") Err bitreich.org 70 i- (decode-asn1-string asn1-string type))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun slurp-stream (stream) Err bitreich.org 70 i- (let ((seq (make-array (file-length stream) :element-type '(unsigned-byte 8)))) Err bitreich.org 70 i- (read-sequence seq stream) Err bitreich.org 70 i- seq)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod decode-certificate ((format (eql :der)) bytes) Err bitreich.org 70 i- (cffi:with-pointer-to-vector-data (buf* bytes) Err bitreich.org 70 i- (cffi:with-foreign-object (buf** :pointer) Err bitreich.org 70 i- (setf (cffi:mem-ref buf** :pointer) buf*) Err bitreich.org 70 i- (let ((cert (d2i-x509 (cffi:null-pointer) buf** (length bytes)))) Err bitreich.org 70 i- (when (cffi:null-pointer-p cert) Err bitreich.org 70 i- (error 'ssl-error-call :message "d2i-X509 failed" :queue (read-ssl-error-queue))) Err bitreich.org 70 i- cert)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun cert-format-from-path (path) Err bitreich.org 70 i- ;; or match "pem" type too and raise unknown format error? Err bitreich.org 70 i- (if (equal "der" (pathname-type path)) Err bitreich.org 70 i- :der Err bitreich.org 70 i- :pem)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun decode-certificate-from-file (path &key format) Err bitreich.org 70 i- (let ((bytes (with-open-file (stream path :element-type '(unsigned-byte 8)) Err bitreich.org 70 i- (slurp-stream stream))) Err bitreich.org 70 i- (format (or format (cert-format-from-path path)))) Err bitreich.org 70 i- (decode-certificate format bytes))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun certificate-alt-names (cert) Err bitreich.org 70 i- #| Err bitreich.org 70 i- * The return value is the decoded extension or NULL on Err bitreich.org 70 i- * error. The actual error can have several different causes, Err bitreich.org 70 i- * the value of *crit reflects the cause: Err bitreich.org 70 i- * >= 0, extension found but not decoded (reflects critical value). Err bitreich.org 70 i- * -1 extension not found. Err bitreich.org 70 i- * -2 extension occurs more than once. Err bitreich.org 70 i- |# Err bitreich.org 70 i- (cffi:with-foreign-object (crit* :int) Err bitreich.org 70 i- (let ((result (x509-get-ext-d2i cert +NID-subject-alt-name+ crit* (cffi:null-pointer)))) Err bitreich.org 70 i- (if (cffi:null-pointer-p result) Err bitreich.org 70 i- (let ((crit (cffi:mem-ref crit* :int))) Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((>= crit 0) Err bitreich.org 70 i- (error "X509_get_ext_d2i: subject-alt-name extension decoding error")) Err bitreich.org 70 i- ((= crit -1) ;; extension not found, return NULL Err bitreich.org 70 i- result) Err bitreich.org 70 i- ((= crit -2) Err bitreich.org 70 i- (error "X509_get_ext_d2i: subject-alt-name extension occurs more than once")))) Err bitreich.org 70 i- result)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun certificate-dns-alt-names (cert) Err bitreich.org 70 i- (let ((altnames (certificate-alt-names cert))) Err bitreich.org 70 i- (unless (cffi:null-pointer-p altnames) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (flet ((alt-name-to-string (alt-name) Err bitreich.org 70 i- (cffi:with-foreign-slots ((type data) alt-name (:struct general-name)) Err bitreich.org 70 i- (when (= type +GEN-DNS+) Err bitreich.org 70 i- (alexandria:if-let ((string (try-get-asn1-string-data data '(#.+v-asn1-iastring+)))) Err bitreich.org 70 i- string Err bitreich.org 70 i- (error "Malformed certificate: possibly NULL in dns-alt-name")))))) Err bitreich.org 70 i- (let ((altnames-count (sk-general-name-num altnames))) Err bitreich.org 70 i- (loop for i from 0 below altnames-count Err bitreich.org 70 i- as alt-name = (sk-general-name-value altnames i) Err bitreich.org 70 i- collect (alt-name-to-string alt-name)))) Err bitreich.org 70 i- (general-names-free altnames))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun certificate-subject-common-names (cert) Err bitreich.org 70 i- (let ((i -1) Err bitreich.org 70 i- (subject-name (x509-get-subject-name cert))) Err bitreich.org 70 i- (when (cffi:null-pointer-p subject-name) Err bitreich.org 70 i- (error "X509_get_subject_name returned NULL")) Err bitreich.org 70 i- (flet ((extract-cn () Err bitreich.org 70 i- (setf i (x509-name-get-index-by-nid subject-name +NID-commonName+ i)) Err bitreich.org 70 i- (when (>= i 0) Err bitreich.org 70 i- (let* ((entry (x509-name-get-entry subject-name i))) Err bitreich.org 70 i- (when (cffi:null-pointer-p entry) Err bitreich.org 70 i- (error "X509_NAME_get_entry returned NULL")) Err bitreich.org 70 i- (let ((entry-data (x509-name-entry-get-data entry))) Err bitreich.org 70 i- (when (cffi:null-pointer-p entry-data) Err bitreich.org 70 i- (error "X509_NAME_ENTRY_get_data returned NULL")) Err bitreich.org 70 i- (try-get-asn1-string-data entry-data '(#.+v-asn1-utf8string+ Err bitreich.org 70 i- #.+v-asn1-bmpstring+ Err bitreich.org 70 i- #.+v-asn1-printablestring+ Err bitreich.org 70 i- #.+v-asn1-universalstring+ Err bitreich.org 70 i- #.+v-asn1-teletexstring+))))))) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- as cn = (extract-cn) Err bitreich.org 70 i- if cn collect cn Err bitreich.org 70 i- if (not cn) do Err bitreich.org 70 i- (loop-finish))))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/ssl-verify-test.lisp b/3rdparties/software/cl+ssl-20190202-git/ssl-verify-test.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/ssl-verify-test.lisp.gph bitreich.org 70 i@@ -1,166 +0,0 @@ Err bitreich.org 70 i-;;; Copyright (C) 2011 David Lichteblau Err bitreich.org 70 i-;;; Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#+xcvb (module (:depends-on ("package"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-;; from cl+ssl/example.lisp Err bitreich.org 70 i-(defun read-line-crlf-2 (stream &optional eof-error-p) Err bitreich.org 70 i- (let ((s (make-string-output-stream))) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- for empty = t then nil Err bitreich.org 70 i- for c = (read-char stream eof-error-p nil) Err bitreich.org 70 i- while (and c (not (eql c #\return))) Err bitreich.org 70 i- do Err bitreich.org 70 i- (unless (eql c #\newline) Err bitreich.org 70 i- (write-char c s)) Err bitreich.org 70 i- finally Err bitreich.org 70 i- (return Err bitreich.org 70 i- (if empty nil (get-output-stream-string s)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun write-ssl-certificate-names (ssl-stream &optional (output-stream t)) Err bitreich.org 70 i- (let* ((ssl (ssl-stream-handle ssl-stream)) Err bitreich.org 70 i- (cert (ssl-get-peer-certificate ssl))) Err bitreich.org 70 i- (unless (cffi:null-pointer-p cert) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (multiple-value-bind (issuer subject) Err bitreich.org 70 i- (x509-certificate-names cert) Err bitreich.org 70 i- (format output-stream Err bitreich.org 70 i- " issuer: ~a~% subject: ~a~%" issuer subject)) Err bitreich.org 70 i- (x509-free cert))))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; from cl+ssl/example.lisp Err bitreich.org 70 i-(defun test-https-client-2 (host &key (port 443) show-text-p) Err bitreich.org 70 i- (let* ((deadline (+ (get-internal-real-time) Err bitreich.org 70 i- (* 3 internal-time-units-per-second))) Err bitreich.org 70 i- (socket (ccl:make-socket :address-family :internet Err bitreich.org 70 i- :connect :active Err bitreich.org 70 i- :type :stream Err bitreich.org 70 i- :remote-host host Err bitreich.org 70 i- :remote-port port Err bitreich.org 70 i-;; :local-host (resolve-hostname local-host) Err bitreich.org 70 i-;; :local-port local-port Err bitreich.org 70 i- :deadline deadline)) Err bitreich.org 70 i- https) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (handler-bind Err bitreich.org 70 i- ((ssl-error-verify Err bitreich.org 70 i- (lambda (c) Err bitreich.org 70 i- (write-ssl-certificate-names (ssl-error-stream c))))) Err bitreich.org 70 i- (setf https Err bitreich.org 70 i- (cl+ssl:make-ssl-client-stream Err bitreich.org 70 i- socket Err bitreich.org 70 i- :unwrap-stream-p t Err bitreich.org 70 i- :external-format '(:iso-8859-1 :eol-style :lf))) Err bitreich.org 70 i- (write-ssl-certificate-names https) Err bitreich.org 70 i- (format https "GET / HTTP/1.0~%Host: ~a~%~%" host) Err bitreich.org 70 i- (force-output https) Err bitreich.org 70 i- (loop :for line = (read-line-crlf-2 https nil) Err bitreich.org 70 i- for cnt from 0 Err bitreich.org 70 i- :while line :do Err bitreich.org 70 i- (when show-text-p Err bitreich.org 70 i- (format t "HTTPS> ~a~%" line)) Err bitreich.org 70 i- finally (return cnt))) Err bitreich.org 70 i- (if https Err bitreich.org 70 i- (close https) Err bitreich.org 70 i- (close socket))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *rayservers-ca-certificate-pem-file* Err bitreich.org 70 i- "rayservers-ca-certificate.pem") Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *rayservers-ca-certificate-path* Err bitreich.org 70 i- (merge-pathnames *rayservers-ca-certificate-pem-file* Err bitreich.org 70 i- (asdf:system-source-directory :cl+ssl))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *rayservers-ca-certificate-pem* Err bitreich.org 70 i- "-----BEGIN CERTIFICATE----- Err bitreich.org 70 i-MIIElTCCA32gAwIBAgIJALoXNnj+yvJCMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYD Err bitreich.org 70 i-VQQGEwJQQTELMAkGA1UECBMCTkExFDASBgNVBAcTC1BhbmFtYSBDaXR5MRgwFgYD Err bitreich.org 70 i-VQQKEw9SYXlzZXJ2ZXJzIEdtYkgxGjAYBgNVBAMTEWNhLnJheXNlcnZlcnMuY29t Err bitreich.org 70 i-MSUwIwYJKoZIhvcNAQkBFhZzdXBwb3J0QHJheXNlcnZlcnMuY29tMB4XDTA5MTAx Err bitreich.org 70 i-OTE3MzgyMFoXDTE5MTAxNzE3MzgyMFowgY0xCzAJBgNVBAYTAlBBMQswCQYDVQQI Err bitreich.org 70 i-EwJOQTEUMBIGA1UEBxMLUGFuYW1hIENpdHkxGDAWBgNVBAoTD1JheXNlcnZlcnMg Err bitreich.org 70 i-R21iSDEaMBgGA1UEAxMRY2EucmF5c2VydmVycy5jb20xJTAjBgkqhkiG9w0BCQEW Err bitreich.org 70 i-FnN1cHBvcnRAcmF5c2VydmVycy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw Err bitreich.org 70 i-ggEKAoIBAQC9rNsCCM+TNp6xDk2yxhXQOStmPTd0txFyduNAj02/nLZV4eq0ZS5n Err bitreich.org 70 i-xXBE6l3MYIMBMV3BgKiy7LsdiRJeZ5HdsV/HRZzXCQI+k4acBjlRC1ZdWMNsIR+H Err bitreich.org 70 i-QUVx2y0wgp+QpcMrgBQZdPI7PobnXCZ6+Fmc50kM7xbIsoWZUzQDpRtUymgOhnnT Err bitreich.org 70 i-4TSb1/XufFHHhDMReRA7s3Co911hzcnZJqL9gFWULlB/RI2ZeVbkp0K4lUXyMZ/R Err bitreich.org 70 i-fnOtCdAA+TkQcpzoyBETV9p5MO8KBOPBskvyGYqVcIZNuxwfC2uoKx0s5b6eMRKR Err bitreich.org 70 i-54B4mB/hIi7i0uGjzuAZdt5iDXQHYaM3AgMBAAGjgfUwgfIwHQYDVR0OBBYEFOyu Err bitreich.org 70 i-Fp80LSc1gwnq5rghs/P8bMgrMIHCBgNVHSMEgbowgbeAFOyuFp80LSc1gwnq5rgh Err bitreich.org 70 i-s/P8bMgroYGTpIGQMIGNMQswCQYDVQQGEwJQQTELMAkGA1UECBMCTkExFDASBgNV Err bitreich.org 70 i-BAcTC1BhbmFtYSBDaXR5MRgwFgYDVQQKEw9SYXlzZXJ2ZXJzIEdtYkgxGjAYBgNV Err bitreich.org 70 i-BAMTEWNhLnJheXNlcnZlcnMuY29tMSUwIwYJKoZIhvcNAQkBFhZzdXBwb3J0QHJh Err bitreich.org 70 i-eXNlcnZlcnMuY29tggkAuhc2eP7K8kIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B Err bitreich.org 70 i-AQUFAAOCAQEAqScS+A2Hajjb+jTKQ19LVPzTpRYo1Jz0SPtzGO91n0efYeRJD5hV Err bitreich.org 70 i-tU+57zGSlUDszARvB+sxzLdJTItK+wEpDM8pLtwUT/VPrRKOoOUBkKBshcTD4HmI Err bitreich.org 70 i-k8uJlNed0QQLP41hFjr+mYd7WM+N5LtFMQAUBMUN6dzEqQIx69EnIoVp0KB8kDwW Err bitreich.org 70 i-/QK5ogKY0g8DmRTFiV036bHQH93kLzyV6FNAldO8vBDqcTeru/uU2Kcn6a8YOfO1 Err bitreich.org 70 i-T6MVYory7prWbBaGPKsGw0VgrV9OGbxhbw9EOEYSOgdejvbi9VhgMvEpDYFN7Hnq Err bitreich.org 70 i-0wiHJq5jKECf3bwRe9uVzVMrIeCap/r2uA== Err bitreich.org 70 i------END CERTIFICATE-----") Err bitreich.org 70 i- Err bitreich.org 70 i-(defun write-rayservers-certificate-pem () Err bitreich.org 70 i- (with-open-file (s *rayservers-ca-certificate-path* Err bitreich.org 70 i- :direction :output Err bitreich.org 70 i- :if-exists :supersede Err bitreich.org 70 i- :if-does-not-exist :create) Err bitreich.org 70 i- (write-string *rayservers-ca-certificate-pem* s) Err bitreich.org 70 i- *rayservers-ca-certificate-path*)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun install-rayservers-ca-certificate () Err bitreich.org 70 i- (let ((path (write-rayservers-certificate-pem))) Err bitreich.org 70 i- (ssl-load-global-verify-locations path))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun test-loom-client (&optional show-text-p) Err bitreich.org 70 i- (test-https-client-2 "secure.loom.cc" :show-text-p show-text-p)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun test-yahoo-client (&optional show-text-p) Err bitreich.org 70 i- (test-https-client-2 "yahoo.com" :show-text-p show-text-p)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro expecting-no-errors (&body body) Err bitreich.org 70 i- `(handler-case Err bitreich.org 70 i- (progn ,@body) Err bitreich.org 70 i- (error (c) Err bitreich.org 70 i- (error "Got an unexpected error: ~a" c)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro expecting-error ((type) &body body) Err bitreich.org 70 i- `(let ((got-error-p nil)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (progn ,@body) Err bitreich.org 70 i- (error (c) Err bitreich.org 70 i- (unless (typep c ',type) Err bitreich.org 70 i- (error "Got an unexpected error type: ~a" c)) Err bitreich.org 70 i- (setf got-error-p t))) Err bitreich.org 70 i- (unless got-error-p Err bitreich.org 70 i- (error "Did not get expected error.")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun test-verify (&optional quietly) Err bitreich.org 70 i- (let ((*standard-output* Err bitreich.org 70 i- ;; test-https-client-2 prints the certificate names Err bitreich.org 70 i- (if quietly (make-broadcast-stream) *standard-output*))) Err bitreich.org 70 i- (expecting-no-errors Err bitreich.org 70 i- (reload) Err bitreich.org 70 i- (test-loom-client) Err bitreich.org 70 i- (test-yahoo-client) Err bitreich.org 70 i- (setf (ssl-check-verify-p) t)) Err bitreich.org 70 i- ;; The Mac appears to have no way to get rid of the default CA certificates Err bitreich.org 70 i- ;; #+darwin-host is only true in Clozure Common Lisp running on a Mac, Err bitreich.org 70 i- ;; So this test will fail in SBCL on a Mac Err bitreich.org 70 i- #-darwin-host Err bitreich.org 70 i- (expecting-error (ssl-error-verify) Err bitreich.org 70 i- (test-yahoo-client)) Err bitreich.org 70 i- #+darwin-host Err bitreich.org 70 i- (expecting-no-errors Err bitreich.org 70 i- (test-yahoo-client)) Err bitreich.org 70 i- (expecting-error (ssl-error-verify) Err bitreich.org 70 i- (test-loom-client)) Err bitreich.org 70 i- (expecting-no-errors Err bitreich.org 70 i- (install-rayservers-ca-certificate) Err bitreich.org 70 i- (test-loom-client)) Err bitreich.org 70 i- (expecting-no-errors Err bitreich.org 70 i- (ssl-set-global-default-verify-paths) Err bitreich.org 70 i- (test-yahoo-client)))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test.lisp b/3rdparties/software/cl+ssl-20190202-git/test.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test.lisp.gph bitreich.org 70 i@@ -1,409 +0,0 @@ Err bitreich.org 70 i-;;; Copyright (C) 2008 David Lichteblau Err bitreich.org 70 i-;;; See LICENSE for details. Err bitreich.org 70 i- Err bitreich.org 70 i-#| Err bitreich.org 70 i-(load "test.lisp") Err bitreich.org 70 i-|# Err bitreich.org 70 i- Err bitreich.org 70 i-(defpackage :ssl-test Err bitreich.org 70 i- (:use :cl)) Err bitreich.org 70 i-(in-package :ssl-test) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *port* 8080) Err bitreich.org 70 i-(defvar *cert* "/home/david/newcert.pem") Err bitreich.org 70 i-(defvar *key* "/home/david/newkey.pem") Err bitreich.org 70 i- Err bitreich.org 70 i-(eval-when (:compile-toplevel :load-toplevel :execute) Err bitreich.org 70 i- (asdf:operate 'asdf:load-op :trivial-sockets) Err bitreich.org 70 i- (asdf:operate 'asdf:load-op :bordeaux-threads)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *tests* '()) Err bitreich.org 70 i- Err bitreich.org 70 i-(defvar *sockets* '()) Err bitreich.org 70 i-(defvar *sockets-lock* (bordeaux-threads:make-lock)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun record-socket (socket) Err bitreich.org 70 i- (unless (integerp socket) Err bitreich.org 70 i- (bordeaux-threads:with-lock-held (*sockets-lock*) Err bitreich.org 70 i- (push socket *sockets*))) Err bitreich.org 70 i- socket) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun close-socket (socket &key abort) Err bitreich.org 70 i- (if (streamp socket) Err bitreich.org 70 i- (close socket :abort abort) Err bitreich.org 70 i- (trivial-sockets:close-server socket))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun check-sockets () Err bitreich.org 70 i- (let ((failures nil)) Err bitreich.org 70 i- (bordeaux-threads:with-lock-held (*sockets-lock*) Err bitreich.org 70 i- (dolist (socket *sockets*) Err bitreich.org 70 i- (when (close-socket socket :abort t) Err bitreich.org 70 i- (push socket failures))) Err bitreich.org 70 i- (setf *sockets* nil)) Err bitreich.org 70 i- #-sbcl ;fixme Err bitreich.org 70 i- (when failures Err bitreich.org 70 i- (error "failed to close sockets properly:~{ ~A~%~}" failures)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro deftest (name &body body) Err bitreich.org 70 i- `(progn Err bitreich.org 70 i- (defun ,name () Err bitreich.org 70 i- (format t "~%----- ~A ----------------------------~%" ',name) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (progn Err bitreich.org 70 i- ,@body Err bitreich.org 70 i- (check-sockets) Err bitreich.org 70 i- (format t "===== [OK] ~A ====================~%" ',name) Err bitreich.org 70 i- t) Err bitreich.org 70 i- (error (c) Err bitreich.org 70 i- (when (typep c 'trivial-sockets:socket-error) Err bitreich.org 70 i- (setf c (trivial-sockets:socket-nested-error c))) Err bitreich.org 70 i- (format t "~%===== [FAIL] ~A: ~A~%" ',name c) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (check-sockets) Err bitreich.org 70 i- (error (c) Err bitreich.org 70 i- (format t "muffling follow-up error ~A~%" c))) Err bitreich.org 70 i- nil))) Err bitreich.org 70 i- (push ',name *tests*))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun run-all-tests () Err bitreich.org 70 i- (unless (probe-file *cert*) (error "~A not found" *cert*)) Err bitreich.org 70 i- (unless (probe-file *key*) (error "~A not found" *key*)) Err bitreich.org 70 i- (let ((n 0) Err bitreich.org 70 i- (nok 0)) Err bitreich.org 70 i- (dolist (test (reverse *tests*)) Err bitreich.org 70 i- (when (funcall test) Err bitreich.org 70 i- (incf nok)) Err bitreich.org 70 i- (incf n)) Err bitreich.org 70 i- (format t "~&passed ~D/~D tests~%" nok n))) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition quit (condition) Err bitreich.org 70 i- ()) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *please-quit* t) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-test-thread (name init main &rest args) Err bitreich.org 70 i- "Start a thread named NAME, wait until it has funcalled INIT with ARGS Err bitreich.org 70 i- as arguments, then continue while the thread concurrently funcalls MAIN Err bitreich.org 70 i- with INIT's return values as arguments." Err bitreich.org 70 i- (let ((cv (bordeaux-threads:make-condition-variable)) Err bitreich.org 70 i- (lock (bordeaux-threads:make-lock name)) Err bitreich.org 70 i- ;; redirect io manually, because swan's global redirection isn't as Err bitreich.org 70 i- ;; global as one might hope Err bitreich.org 70 i- (out *terminal-io*) Err bitreich.org 70 i- (init-ok nil)) Err bitreich.org 70 i- (bordeaux-threads:with-lock-held (lock) Err bitreich.org 70 i- (setf *please-quit* nil) Err bitreich.org 70 i- (prog1 Err bitreich.org 70 i- (bordeaux-threads:make-thread Err bitreich.org 70 i- (lambda () Err bitreich.org 70 i- (flet ((notify () Err bitreich.org 70 i- (bordeaux-threads:with-lock-held (lock) Err bitreich.org 70 i- (bordeaux-threads:condition-notify cv)))) Err bitreich.org 70 i- (let ((*terminal-io* out) Err bitreich.org 70 i- (*standard-output* out) Err bitreich.org 70 i- (*trace-output* out) Err bitreich.org 70 i- (*error-output* out)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (let ((values (multiple-value-list (apply init args)))) Err bitreich.org 70 i- (setf init-ok t) Err bitreich.org 70 i- (notify) Err bitreich.org 70 i- (apply main values)) Err bitreich.org 70 i- (quit () Err bitreich.org 70 i- (notify) Err bitreich.org 70 i- t) Err bitreich.org 70 i- (error (c) Err bitreich.org 70 i- (when (typep c 'trivial-sockets:socket-error) Err bitreich.org 70 i- (setf c (trivial-sockets:socket-nested-error c))) Err bitreich.org 70 i- (format t "aborting test thread ~A: ~A" name c) Err bitreich.org 70 i- (notify) Err bitreich.org 70 i- nil))))) Err bitreich.org 70 i- :name name) Err bitreich.org 70 i- (bordeaux-threads:condition-wait cv lock) Err bitreich.org 70 i- (unless init-ok Err bitreich.org 70 i- (error "failed to start background thread")))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-thread ((name init main &rest args) &body body) Err bitreich.org 70 i- `(invoke-with-thread (lambda () ,@body) Err bitreich.org 70 i- ,name Err bitreich.org 70 i- ,init Err bitreich.org 70 i- ,main Err bitreich.org 70 i- ,@args)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun invoke-with-thread (body name init main &rest args) Err bitreich.org 70 i- (let ((thread (apply #'make-test-thread name init main args))) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (funcall body) Err bitreich.org 70 i- (setf *please-quit* t) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- for delay = 0.0001 then (* delay 2) Err bitreich.org 70 i- while (and (< delay 0.5) (bordeaux-threads:thread-alive-p thread)) Err bitreich.org 70 i- do Err bitreich.org 70 i- (sleep delay)) Err bitreich.org 70 i- (when (bordeaux-threads:thread-alive-p thread) Err bitreich.org 70 i- (format t "~&thread doesn't want to quit, killing it~%") Err bitreich.org 70 i- (force-output) Err bitreich.org 70 i- (bordeaux-threads:interrupt-thread thread (lambda () (error 'quit))) Err bitreich.org 70 i- (loop Err bitreich.org 70 i- for delay = 0.0001 then (* delay 2) Err bitreich.org 70 i- while (bordeaux-threads:thread-alive-p thread) Err bitreich.org 70 i- do Err bitreich.org 70 i- (sleep delay)))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun init-server (&key (unwrap-stream-p t)) Err bitreich.org 70 i- (format t "~&SSL server listening on port ~d~%" *port*) Err bitreich.org 70 i- (values (record-socket (trivial-sockets:open-server :port *port*)) Err bitreich.org 70 i- unwrap-stream-p)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun test-server (listening-socket unwrap-stream-p) Err bitreich.org 70 i- (format t "~&SSL server accepting...~%") Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (let* ((socket (record-socket Err bitreich.org 70 i- (trivial-sockets:accept-connection Err bitreich.org 70 i- listening-socket Err bitreich.org 70 i- :element-type '(unsigned-byte 8)))) Err bitreich.org 70 i- (callback nil)) Err bitreich.org 70 i- (when (eq unwrap-stream-p :caller) Err bitreich.org 70 i- (setf callback (let ((s socket)) (lambda () (close-socket s)))) Err bitreich.org 70 i- (setf socket (cl+ssl:stream-fd socket)) Err bitreich.org 70 i- (setf unwrap-stream-p nil)) Err bitreich.org 70 i- (let ((client (record-socket Err bitreich.org 70 i- (cl+ssl:make-ssl-server-stream Err bitreich.org 70 i- socket Err bitreich.org 70 i- :unwrap-stream-p unwrap-stream-p Err bitreich.org 70 i- :close-callback callback Err bitreich.org 70 i- :external-format :iso-8859-1 Err bitreich.org 70 i- :certificate *cert* Err bitreich.org 70 i- :key *key*)))) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (loop Err bitreich.org 70 i- for line = (prog2 Err bitreich.org 70 i- (when *please-quit* (return)) Err bitreich.org 70 i- (read-line client nil) Err bitreich.org 70 i- (when *please-quit* (return))) Err bitreich.org 70 i- while line Err bitreich.org 70 i- do Err bitreich.org 70 i- (cond Err bitreich.org 70 i- ((equal line "freeze") Err bitreich.org 70 i- (format t "~&Freezing on client request~%") Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (sleep 1) Err bitreich.org 70 i- (when *please-quit* (return)))) Err bitreich.org 70 i- (t Err bitreich.org 70 i- (format t "~&Responding to query ~A...~%" line) Err bitreich.org 70 i- (format client "(echo ~A)~%" line) Err bitreich.org 70 i- (force-output client)))) Err bitreich.org 70 i- (close-socket client)))) Err bitreich.org 70 i- (close-socket listening-socket))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun init-client (&key (unwrap-stream-p t)) Err bitreich.org 70 i- (let ((socket (record-socket Err bitreich.org 70 i- (trivial-sockets:open-stream Err bitreich.org 70 i- "127.0.0.1" Err bitreich.org 70 i- *port* Err bitreich.org 70 i- :element-type '(unsigned-byte 8)))) Err bitreich.org 70 i- (callback nil)) Err bitreich.org 70 i- (when (eq unwrap-stream-p :caller) Err bitreich.org 70 i- (setf callback (let ((s socket)) (lambda () (close-socket s)))) Err bitreich.org 70 i- (setf socket (cl+ssl:stream-fd socket)) Err bitreich.org 70 i- (setf unwrap-stream-p nil)) Err bitreich.org 70 i- (cl+ssl:make-ssl-client-stream Err bitreich.org 70 i- socket Err bitreich.org 70 i- :unwrap-stream-p unwrap-stream-p Err bitreich.org 70 i- :close-callback callback Err bitreich.org 70 i- :external-format :iso-8859-1))) Err bitreich.org 70 i- Err bitreich.org 70 i-;; CCL requires specifying the Err bitreich.org 70 i-;; deadline at the socket cration ( Err bitreich.org 70 i-;; in constrast to SBCL which has Err bitreich.org 70 i-;; the WITH-TIMEOUT macro). Err bitreich.org 70 i-;; Err bitreich.org 70 i-;; Therefore a separate INIT-CLIENT Err bitreich.org 70 i-;; function is needed for CCL when Err bitreich.org 70 i-;; we need read/write deadlines on Err bitreich.org 70 i-;; the SSL client stream. Err bitreich.org 70 i-#+clozure-common-lisp Err bitreich.org 70 i-(defun ccl-init-client-with-deadline (&key (unwrap-stream-p t) Err bitreich.org 70 i- seconds) Err bitreich.org 70 i- (let* ((deadline Err bitreich.org 70 i- (+ (get-internal-real-time) Err bitreich.org 70 i- (* seconds internal-time-units-per-second))) Err bitreich.org 70 i- (low Err bitreich.org 70 i- (record-socket Err bitreich.org 70 i- (ccl:make-socket Err bitreich.org 70 i- :address-family :internet Err bitreich.org 70 i- :connect :active Err bitreich.org 70 i- :type :stream Err bitreich.org 70 i- :remote-host "127.0.0.1" Err bitreich.org 70 i- :remote-port *port* Err bitreich.org 70 i- :deadline deadline)))) Err bitreich.org 70 i- (cl+ssl:make-ssl-client-stream Err bitreich.org 70 i- low Err bitreich.org 70 i- :unwrap-stream-p unwrap-stream-p Err bitreich.org 70 i- :external-format :iso-8859-1))) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Simple echo-server test. Write a line and check that the result Err bitreich.org 70 i-;;; watches, three times in a row. Err bitreich.org 70 i-(deftest echo Err bitreich.org 70 i- (with-thread ("simple server" #'init-server #'test-server) Err bitreich.org 70 i- (with-open-stream (socket (init-client)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (write-line "test2" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test2)")) Err bitreich.org 70 i- (write-line "test3" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test3)"))))) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Run tests with different BIO setup strategies: Err bitreich.org 70 i-;;; - :UNWRAP-STREAMS T Err bitreich.org 70 i-;;; In this case, CL+SSL will convert the socket to a file descriptor. Err bitreich.org 70 i-;;; - :UNWRAP-STREAMS :CLIENT Err bitreich.org 70 i-;;; Convert the socket to a file descriptor manually, and give that Err bitreich.org 70 i-;;; to CL+SSL. Err bitreich.org 70 i-;;; - :UNWRAP-STREAMS NIL Err bitreich.org 70 i-;;; Let CL+SSL write to the stream directly, using the Lisp BIO. Err bitreich.org 70 i-(macrolet ((deftests (name (var &rest values) &body body) Err bitreich.org 70 i- `(progn Err bitreich.org 70 i- ,@(loop Err bitreich.org 70 i- for value in values Err bitreich.org 70 i- collect Err bitreich.org 70 i- `(deftest ,(intern (format nil "~A-~A" name value)) Err bitreich.org 70 i- (let ((,var ',value)) Err bitreich.org 70 i- ,@body)))))) Err bitreich.org 70 i- Err bitreich.org 70 i- (deftests unwrap-strategy (usp nil t :caller) Err bitreich.org 70 i- (with-thread ("echo server for strategy test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (with-open-stream (socket (init-client :unwrap-stream-p usp)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)"))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+clozure-common-lisp Err bitreich.org 70 i- (deftests read-deadline (usp nil t :caller) Err bitreich.org 70 i- (with-thread ("echo server for deadline test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (with-open-stream Err bitreich.org 70 i- (socket Err bitreich.org 70 i- (ccl-init-client-with-deadline Err bitreich.org 70 i- :unwrap-stream-p usp Err bitreich.org 70 i- :seconds 3)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (read-char socket) Err bitreich.org 70 i- (error "unexpected data")) Err bitreich.org 70 i- (ccl::communication-deadline-expired ()))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+sbcl Err bitreich.org 70 i- (deftests read-deadline (usp nil t :caller) Err bitreich.org 70 i- (with-thread ("echo server for deadline test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (sb-sys:with-deadline (:seconds 3) Err bitreich.org 70 i- (with-open-stream (socket (init-client :unwrap-stream-p usp)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (read-char socket) Err bitreich.org 70 i- (error "unexpected data")) Err bitreich.org 70 i- (sb-sys:deadline-timeout ())))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+clozure-common-lisp Err bitreich.org 70 i- (deftests write-deadline (usp nil t) Err bitreich.org 70 i- (with-thread ("echo server for deadline test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (with-open-stream Err bitreich.org 70 i- (socket Err bitreich.org 70 i- (ccl-init-client-with-deadline Err bitreich.org 70 i- :unwrap-stream-p usp Err bitreich.org 70 i- :seconds 3)) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (write-line "freeze" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (let ((n 0)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (write-line "deadbeef" socket) Err bitreich.org 70 i- (incf n)) Err bitreich.org 70 i- (ccl::communication-deadline-expired ())) Err bitreich.org 70 i- ;; should have written a couple of lines before the deadline: Err bitreich.org 70 i- (assert (> n 100)))) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (close-socket socket :abort t) Err bitreich.org 70 i- (ccl::communication-deadline-expired ())))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+sbcl Err bitreich.org 70 i- (deftests write-deadline (usp nil t) Err bitreich.org 70 i- (with-thread ("echo server for deadline test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (with-open-stream (socket (init-client :unwrap-stream-p usp)) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (sb-sys:with-deadline (:seconds 3) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (write-line "freeze" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (let ((n 0)) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (write-line "deadbeef" socket) Err bitreich.org 70 i- (incf n)) Err bitreich.org 70 i- (sb-sys:deadline-timeout ())) Err bitreich.org 70 i- ;; should have written a couple of lines before the deadline: Err bitreich.org 70 i- (assert (> n 100)))) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (close-socket socket :abort t) Err bitreich.org 70 i- (sb-sys:deadline-timeout ())))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+clozure-common-lisp Err bitreich.org 70 i- (deftests read-char-no-hang/test (usp nil t :caller) Err bitreich.org 70 i- (with-thread ("echo server for read-char-no-hang test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (with-open-stream Err bitreich.org 70 i- (socket (ccl-init-client-with-deadline Err bitreich.org 70 i- :unwrap-stream-p usp Err bitreich.org 70 i- :seconds 3)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (when (read-char-no-hang socket) Err bitreich.org 70 i- (error "unexpected data")) Err bitreich.org 70 i- (ccl::communication-deadline-expired () Err bitreich.org 70 i- (error "read-char-no-hang hangs")))))) Err bitreich.org 70 i- Err bitreich.org 70 i- #+sbcl Err bitreich.org 70 i- (deftests read-char-no-hang/test (usp nil t :caller) Err bitreich.org 70 i- (with-thread ("echo server for read-char-no-hang test" Err bitreich.org 70 i- (lambda () (init-server :unwrap-stream-p usp)) Err bitreich.org 70 i- #'test-server) Err bitreich.org 70 i- (sb-sys:with-deadline (:seconds 3) Err bitreich.org 70 i- (with-open-stream (socket (init-client :unwrap-stream-p usp)) Err bitreich.org 70 i- (write-line "test" socket) Err bitreich.org 70 i- (force-output socket) Err bitreich.org 70 i- (assert (equal (read-line socket) "(echo test)")) Err bitreich.org 70 i- (handler-case Err bitreich.org 70 i- (when (read-char-no-hang socket) Err bitreich.org 70 i- (error "unexpected data")) Err bitreich.org 70 i- (sb-sys:deadline-timeout () Err bitreich.org 70 i- (error "read-char-no-hang hangs")))))))) Err bitreich.org 70 i- Err bitreich.org 70 i-#+(or) Err bitreich.org 70 i-(run-all-tests) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/badssl-com.lisp b/3rdparties/software/cl+ssl-20190202-git/test/badssl-com.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/badssl-com.lisp.gph bitreich.org 70 i@@ -1,46 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl.test) Err bitreich.org 70 i- Err bitreich.org 70 i-(def-suite :cl+ssl.badssl-com :in :cl+ssl Err bitreich.org 70 i- :description "Tests using badssl.com") Err bitreich.org 70 i- Err bitreich.org 70 i-(in-suite :cl+ssl.badssl-com) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(defun test-connect (host &key (verify :required)) Err bitreich.org 70 i- (usocket:with-client-socket (socket stream host 443 Err bitreich.org 70 i- :element-type '(unsigned-byte 8)) Err bitreich.org 70 i- (cl+ssl:make-ssl-client-stream stream Err bitreich.org 70 i- :hostname host Err bitreich.org 70 i- :verify verify))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test wrong.host Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "wrong.host.badssl.com")) Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "wrong.host.badssl.com" :verify :optional)) Err bitreich.org 70 i- (finishes Err bitreich.org 70 i- (test-connect "wrong.host.badssl.com" :verify nil))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test expired Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "expired.badssl.com")) Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "expired.badssl.com" :verify :optional)) Err bitreich.org 70 i- (finishes Err bitreich.org 70 i- (test-connect "expired.badssl.com" :verify nil))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test self-signed Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "self-signed.badssl.com"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test untrusted-root Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "untrusted-root.badssl.com"))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test null Err bitreich.org 70 i- (signals error Err bitreich.org 70 i- (test-connect "null.badssl.com")) Err bitreich.org 70 i- (finishes Err bitreich.org 70 i- (test-connect "null.badssl.com" :verify :optional))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_bmp.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_bmp.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_bmp.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_nodns.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_nodns.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_nodns.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable!.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable!.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable!.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_printable.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_teletex.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_teletex.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_teletex.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_universal.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_universal.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_universal.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/certs/google_wildcard.der b/3rdparties/software/cl+ssl-20190202-git/test/certs/google_wildcard.der /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/certs/google_wildcard.der.gph bitreich.org 70 iBinary files differ. Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/dummy.lisp b/3rdparties/software/cl+ssl-20190202-git/test/dummy.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/dummy.lisp.gph bitreich.org 70 i@@ -1,11 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl.test) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-suite :cl+ssl) Err bitreich.org 70 i- Err bitreich.org 70 i-(test (sanity-check.1 :compile-at :definition-time) Err bitreich.org 70 i- (is-true t "SANITY CHECK: T isn't T")) Err bitreich.org 70 i- Err bitreich.org 70 i-(test (sanity-check.2 :compile-at :definition-time) Err bitreich.org 70 i- (is-false nil "SANITY CHECK: NIL isn't NIL")) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/package.lisp b/3rdparties/software/cl+ssl-20190202-git/test/package.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/package.lisp.gph bitreich.org 70 i@@ -1,12 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl-user) Err bitreich.org 70 i- Err bitreich.org 70 i-(defpackage :cl+ssl.test Err bitreich.org 70 i- (:use :cl Err bitreich.org 70 i- :5am)) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl.test) Err bitreich.org 70 i- Err bitreich.org 70 i-(def-suite :cl+ssl Err bitreich.org 70 i- :description "Main test suite for CL+SSL") Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/build-all.sh b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/build-all.sh /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/build-all.sh.gph bitreich.org 70 i@@ -1,18 +0,0 @@ Err bitreich.org 70 i-#!/bin/bash Err bitreich.org 70 i- Err bitreich.org 70 i-curdir="`dirname $0`" Err bitreich.org 70 i-mkdir "${curdir}/bin" Err bitreich.org 70 i-cd bin Err bitreich.org 70 i-bindirabs=`pwd -P` # absolute path to bindir Err bitreich.org 70 i-cd .. Err bitreich.org 70 i- Err bitreich.org 70 i-for srcdir in openssl-0.9.8zh openssl-1.0.0s openssl-1.0.2q openssl-1.1.0j openssl-1.1.1a Err bitreich.org 70 i-do Err bitreich.org 70 i- cd $srcdir Err bitreich.org 70 i- make clean Err bitreich.org 70 i- ./config shared --prefix="${bindirabs}/${srcdir}" --openssldir="${bindirabs}/${srcdir}" Err bitreich.org 70 i- make && make install Err bitreich.org 70 i- cd .. Err bitreich.org 70 i-done Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/fetch-all.sh b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/fetch-all.sh /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/openssl-releases/fetch-all.sh.gph bitreich.org 70 i@@ -1,13 +0,0 @@ Err bitreich.org 70 i-#!/bin/sh Err bitreich.org 70 i-cd "`dirname $0`" Err bitreich.org 70 i- Err bitreich.org 70 i-wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz Err bitreich.org 70 i-tar -xzf openssl-1.0.2q.tar.gz Err bitreich.org 70 i-wget https://www.openssl.org/source/openssl-1.1.0j.tar.gz Err bitreich.org 70 i-tar -xzf openssl-1.1.0j.tar.gz Err bitreich.org 70 i-wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz Err bitreich.org 70 i-tar -xzf openssl-1.1.1a.tar.gz Err bitreich.org 70 i-wget https://www.openssl.org/source/old/1.0.0/openssl-1.0.0s.tar.gz Err bitreich.org 70 i-tar -xzf openssl-1.0.0s.tar.gz Err bitreich.org 70 i-wget https://www.openssl.org/source/old/0.9.x/openssl-0.9.8zh.tar.gz Err bitreich.org 70 i-tar -xzf openssl-0.9.8zh.tar.gz Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.lisp b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.lisp.gph bitreich.org 70 i@@ -1,44 +0,0 @@ Err bitreich.org 70 i-(defparameter *this-dir* Err bitreich.org 70 i- (if *load-truename* Err bitreich.org 70 i- (make-pathname :name nil :type nil :defaults *load-truename*) Err bitreich.org 70 i- ;; for slime: Err bitreich.org 70 i- #P"/home/anton/prj/cl+ssl/cl-plus-ssl/test/run-on-many-lisps-and-openssls/")) Err bitreich.org 70 i- Err bitreich.org 70 i-(load (merge-pathnames "run-on-many-lisps-and-openssls.lisp" *this-dir*)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *abcl-1.3.1* (make-instance 'lisp-exe:abcl Err bitreich.org 70 i- :java-exe-path "java" Err bitreich.org 70 i- :abcl-jar-path "/home/anton/unpacked/abcl-bin-1.3.1/abcl.jar")) Err bitreich.org 70 i-(defparameter *ccl-1.11-x86-64* (make-instance 'lisp-exe:ccl Err bitreich.org 70 i- :exe-path "/home/anton/unpacked/ccl-1.11/lx86cl64")) Err bitreich.org 70 i-(defparameter *sbcl-1.4.13* (make-instance 'lisp-exe:sbcl Err bitreich.org 70 i- :exe-path "/home/anton/unpacked/sbcl-1.4.13-x86-64-linux/run-sbcl.sh")) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-;; (run-on-many-lisps-and-openssls:clean-fasls (merge-pathnames "workdir/" *this-dir*)) Err bitreich.org 70 i- Err bitreich.org 70 i-(let ((*print-pretty* t)) Err bitreich.org 70 i- (format t "~S~%" Err bitreich.org 70 i- (time Err bitreich.org 70 i- (run-on-many-lisps-and-openssls:run Err bitreich.org 70 i- :test-run-description '(:lib-world "quicklisp 2019-01-07 + cl+ssl.head" Err bitreich.org 70 i- :contact-email "avodonosov@yandex.ru") Err bitreich.org 70 i- :test-run-dir (merge-pathnames "workdir/" *this-dir*) Err bitreich.org 70 i- :quicklisp-dir (merge-pathnames "quicklisp/" (user-homedir-pathname)) Err bitreich.org 70 i- ;; :cl+ssl-location (uiop:pathname-parent-directory-pathname Err bitreich.org 70 i- ;; (uiop:pathname-parent-directory-pathname *this-dir*)) Err bitreich.org 70 i- :cl+ssl-location nil ;; to use the cl+ssl version from quicklisp Err bitreich.org 70 i- :lisps (list *ccl-1.11-x86-64* Err bitreich.org 70 i- *sbcl-1.4.13* Err bitreich.org 70 i- *abcl-1.3.1* Err bitreich.org 70 i- ) Err bitreich.org 70 i- :openssl-releases '("openssl-0.9.8zh" Err bitreich.org 70 i- ; "openssl-1.0.0s" Err bitreich.org 70 i- ; "openssl-1.0.2q" Err bitreich.org 70 i- ; "openssl-1.1.0j" Err bitreich.org 70 i- ; "openssl-1.1.1a" Err bitreich.org 70 i- ) Err bitreich.org 70 i- :openssl-releases-dir (merge-pathnames "openssl-releases/bin/" Err bitreich.org 70 i- *this-dir*))))) Err bitreich.org 70 i- Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.sh b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.sh /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-home.sh.gph bitreich.org 70 i@@ -1,3 +0,0 @@ Err bitreich.org 70 i-#!/bin/sh Err bitreich.org 70 i-cd "`dirname $0`" Err bitreich.org 70 i-~/unpacked/ccl-1.11/lx86cl64 --heap-reserve 200M --load run-home.lisp --eval "(quit)" Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-many-lisps-and-openssls.lisp b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-many-lisps-and-openssls.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-many-lisps-and-openssls.lisp.gph bitreich.org 70 i@@ -1,89 +0,0 @@ Err bitreich.org 70 i-(ql:quickload :test-grid-agent) Err bitreich.org 70 i-(ql:quickload :test-grid-utils) Err bitreich.org 70 i-(ql:quickload :cl-fad) Err bitreich.org 70 i-(ql:quickload :alexandria) Err bitreich.org 70 i-(ql:quickload :log4cl) Err bitreich.org 70 i- Err bitreich.org 70 i-(defpackage #:run-on-many-lisps-and-openssls Err bitreich.org 70 i- (:use :common-lisp) Err bitreich.org 70 i- (:export #:run Err bitreich.org 70 i- #:clean-fasls)) Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :run-on-many-lisps-and-openssls) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun fasl-root (test-run-dir) Err bitreich.org 70 i- (merge-pathnames "fasl/" test-run-dir)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun sanitize-as-path (str) Err bitreich.org 70 i- ;; Substitute dots by hypens if our main process is CCL, it Err bitreich.org 70 i- ;; prepends the > symbol before dots; Err bitreich.org 70 i- ;; for example: 1.1.0.36.mswinmt.1201-284e340 => 1>.1>.0>.36>.mswinmt.1201-284e340 Err bitreich.org 70 i- ;; When we pass such a pathname to other lisps, they can't handle it. Err bitreich.org 70 i- (substitute #\- #\. str)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun log-name (lisp openssl-release) Err bitreich.org 70 i- (sanitize-as-path Err bitreich.org 70 i- (string-downcase (concatenate 'string Err bitreich.org 70 i- (tg-agent::implementation-identifier lisp) Err bitreich.org 70 i- "-" Err bitreich.org 70 i- openssl-release)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun fasl-dir (test-run-dir lisp) Err bitreich.org 70 i- (merge-pathnames Err bitreich.org 70 i- (format nil Err bitreich.org 70 i- "~(~A~)/" Err bitreich.org 70 i- (sanitize-as-path (tg-agent::implementation-identifier lisp))) Err bitreich.org 70 i- (fasl-root test-run-dir))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun so-path (openssl-releases-dir openssl-release so-name) Err bitreich.org 70 i- (merge-pathnames (format nil "~A/lib/~A" openssl-release so-name) Err bitreich.org 70 i- openssl-releases-dir)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun run (&key test-run-description Err bitreich.org 70 i- test-run-dir Err bitreich.org 70 i- quicklisp-dir Err bitreich.org 70 i- lisps Err bitreich.org 70 i- openssl-releases Err bitreich.org 70 i- openssl-releases-dir Err bitreich.org 70 i- cl+ssl-location) Err bitreich.org 70 i- ;; (unless cl+ssl-location Err bitreich.org 70 i- ;; (error "cl+ssl-location parameter is not specified and *load-truename* was not available at the load time.")) Err bitreich.org 70 i- Err bitreich.org 70 i- (ensure-directories-exist test-run-dir) Err bitreich.org 70 i- Err bitreich.org 70 i- (let ((lisp-exe:*temp-dir* test-run-dir)) Err bitreich.org 70 i- (flet ((run-lib-test (lisp openssl-release) Err bitreich.org 70 i- (tg-agent::proc-run-libtest Err bitreich.org 70 i- lisp Err bitreich.org 70 i- :cl+ssl Err bitreich.org 70 i- (cons :lisp (cons (tg-agent::implementation-identifier lisp) Err bitreich.org 70 i- test-run-description)) Err bitreich.org 70 i- (merge-pathnames (log-name lisp openssl-release) test-run-dir) Err bitreich.org 70 i- quicklisp-dir Err bitreich.org 70 i- (fasl-dir test-run-dir lisp) Err bitreich.org 70 i- :eval-before-test `(progn Err bitreich.org 70 i- (set (read-from-string "asdf:*central-registry*") Err bitreich.org 70 i- (cons ,cl+ssl-location Err bitreich.org 70 i- (symbol-value (read-from-string "asdf:*central-registry*")))) Err bitreich.org 70 i- ,(when cl+ssl-location Err bitreich.org 70 i- `(cl-user::fncall "add-asdf-output-translation" Err bitreich.org 70 i- ,cl+ssl-location Err bitreich.org 70 i- ,(merge-pathnames "cl+ssl/" (fasl-dir test-run-dir lisp)))) Err bitreich.org 70 i- (cl-user::fncall "ql:quickload" :cffi) Err bitreich.org 70 i- (cl-user::fncall "cffi:load-foreign-library" Err bitreich.org 70 i- ,(so-path openssl-releases-dir openssl-release "libcrypto.so")) Err bitreich.org 70 i- (cl-user::fncall "cffi:load-foreign-library" Err bitreich.org 70 i- ,(so-path openssl-releases-dir openssl-release "libssl.so")) Err bitreich.org 70 i- (pushnew :cl+ssl-foreign-libs-already-loaded *features*))))) Err bitreich.org 70 i- (tg-utils::write-to-file Err bitreich.org 70 i- (alexandria:map-product (lambda (lisp openssl-release) Err bitreich.org 70 i- (list (tg-agent::implementation-identifier lisp) Err bitreich.org 70 i- openssl-release Err bitreich.org 70 i- (getf (run-lib-test lisp openssl-release) Err bitreich.org 70 i- :status))) Err bitreich.org 70 i- lisps Err bitreich.org 70 i- openssl-releases) Err bitreich.org 70 i- (merge-pathnames "resutls.lisp" test-run-dir))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun clean-fasls (test-run-dir) Err bitreich.org 70 i- (cl-fad:delete-directory-and-files (fasl-root test-run-dir))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.lisp b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.lisp.gph bitreich.org 70 i@@ -1,100 +0,0 @@ Err bitreich.org 70 i-(defparameter *this-dir* Err bitreich.org 70 i- (if *load-truename* Err bitreich.org 70 i- (make-pathname :name nil :type nil :defaults *load-truename*) Err bitreich.org 70 i- ;; for slime: Err bitreich.org 70 i- #P"/home/testgrid/cl+ssl/cl-plus-ssl/test/run-on-many-lisps-and-openssls/")) Err bitreich.org 70 i- Err bitreich.org 70 i-(pushnew "/home/testgrid/cl-test-grid/" asdf:*central-registry* :test #'equal) Err bitreich.org 70 i- Err bitreich.org 70 i-(load (merge-pathnames "run-on-many-lisps-and-openssls.lisp" *this-dir*)) Err bitreich.org 70 i- Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *abcl-1.5.0* Err bitreich.org 70 i- (make-instance 'lisp-exe:abcl Err bitreich.org 70 i- :java-exe-path "java" Err bitreich.org 70 i- :abcl-jar-path "/home/testgrid/lisps/abcl-bin-1.5.0/abcl.jar")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *acl-10.0* Err bitreich.org 70 i- (make-instance 'lisp-exe:acl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/acl100/alisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *acl-10.0m* Err bitreich.org 70 i- (make-instance 'lisp-exe:acl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/acl100/mlisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *acl-10.0-smp* Err bitreich.org 70 i- (make-instance 'lisp-exe:acl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/acl100-smp/alisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *acl-10.0m-smp* Err bitreich.org 70 i- (make-instance 'lisp-exe:acl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/acl100-smp/mlisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *ccl-1.11.5* Err bitreich.org 70 i- (make-instance 'lisp-exe:ccl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/ccl-1.11.5/lx86cl")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *sbcl-1.3.21* Err bitreich.org 70 i- (make-instance 'lisp-exe:sbcl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/sbcl-bin-1.3.21/run.sh")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *cmucl-2016-12* Err bitreich.org 70 i- (make-instance 'lisp-exe:cmucl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/cmucl-2016-12/bin/lisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *cmucl-2016-12* Err bitreich.org 70 i- (make-instance 'lisp-exe:cmucl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/cmucl-2016-12/bin/lisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *cmucl-21d* Err bitreich.org 70 i- (make-instance 'lisp-exe:cmucl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/cmucl-21d/bin/lisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *ecl-16.1.2-bytecode* Err bitreich.org 70 i- (make-instance 'lisp-exe:ecl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/ecl-bin-16.1.2/bin/ecl" Err bitreich.org 70 i- :compiler :bytecode)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *ecl-16.1.2-lisp-to-c* Err bitreich.org 70 i- (make-instance 'lisp-exe:ecl Err bitreich.org 70 i- :exe-path "/home/testgrid/lisps/ecl-bin-16.1.2/bin/ecl" Err bitreich.org 70 i- :compiler :lisp-to-c)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defparameter *clisp* Err bitreich.org 70 i- (make-instance 'lisp-exe:clisp :exe-path "/usr/bin/clisp")) Err bitreich.org 70 i- Err bitreich.org 70 i-(run-on-many-lisps-and-openssls:clean-fasls (merge-pathnames "workdir/" *this-dir*)) Err bitreich.org 70 i- Err bitreich.org 70 i-(let ((*print-pretty* t)) Err bitreich.org 70 i- (format t "~%~S~%" Err bitreich.org 70 i- (time Err bitreich.org 70 i- (run-on-many-lisps-and-openssls:run Err bitreich.org 70 i- :test-run-description '(:lib-world "quicklisp 2019-01-07 + cl+ssl.head" Err bitreich.org 70 i- :contact-email "avodonosov@yandex.ru") Err bitreich.org 70 i- :test-run-dir (merge-pathnames "workdir/" *this-dir*) Err bitreich.org 70 i- :quicklisp-dir (merge-pathnames "quicklisp/" (user-homedir-pathname)) Err bitreich.org 70 i- ;; if we want the cl+ssl from the parent folder Err bitreich.org 70 i- :cl+ssl-location (uiop:pathname-parent-directory-pathname Err bitreich.org 70 i- (uiop:pathname-parent-directory-pathname *this-dir*)) Err bitreich.org 70 i- ;; if we want the cl+ssl version from quicklisp Err bitreich.org 70 i- ;:cl+ssl-location nil Err bitreich.org 70 i- Err bitreich.org 70 i- :lisps (list *sbcl-1.3.21* Err bitreich.org 70 i- *ccl-1.11.5* Err bitreich.org 70 i- *abcl-1.5.0* Err bitreich.org 70 i- *acl-10.0* *acl-10.0m* *acl-10.0-smp* *acl-10.0m-smp* Err bitreich.org 70 i- *clisp* Err bitreich.org 70 i- *ecl-16.1.2-bytecode* Err bitreich.org 70 i- *ecl-16.1.2-lisp-to-c* Err bitreich.org 70 i- *cmucl-21d* Err bitreich.org 70 i- ) Err bitreich.org 70 i- Err bitreich.org 70 i- :openssl-releases '("openssl-0.9.8zh" Err bitreich.org 70 i- "openssl-1.0.0s" Err bitreich.org 70 i- "openssl-1.0.2q" Err bitreich.org 70 i- "openssl-1.1.0j" Err bitreich.org 70 i- "openssl-1.1.1a" Err bitreich.org 70 i- ) Err bitreich.org 70 i- :openssl-releases-dir (merge-pathnames "openssl-releases/bin/" Err bitreich.org 70 i- *this-dir*))))) Err bitreich.org 70 i- Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.sh b/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.sh /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/run-on-many-lisps-and-openssls/run-on-server.sh.gph bitreich.org 70 i@@ -1,3 +0,0 @@ Err bitreich.org 70 i-#!/bin/sh Err bitreich.org 70 i-cd "`dirname $0`" Err bitreich.org 70 i-~/lisps/ccl-1.11/lx86cl --heap-reserve 200M --load run-on-server.lisp --eval "(quit)" Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/sni.lisp b/3rdparties/software/cl+ssl-20190202-git/test/sni.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/sni.lisp.gph bitreich.org 70 i@@ -1,42 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl.test) Err bitreich.org 70 i- Err bitreich.org 70 i-(def-suite :cl+ssl.sni :in :cl+ssl Err bitreich.org 70 i- :description "Server Name Indications tests") Err bitreich.org 70 i- Err bitreich.org 70 i-(in-suite :cl+ssl.sni) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun make-request-to-sni-test-server (sni-enabled) Err bitreich.org 70 i- (usocket:with-client-socket (socket stream "sni.velox.ch" 443 Err bitreich.org 70 i- :element-type '(unsigned-byte 8)) Err bitreich.org 70 i- (let* ((ssl-stream (cl+ssl:make-ssl-client-stream stream Err bitreich.org 70 i- :hostname (if sni-enabled "sni.velox.ch"))) Err bitreich.org 70 i- (char-stream (flexi-streams:make-flexi-stream ssl-stream Err bitreich.org 70 i- :external-format '(:utf-8 :eol-style :crlf))) Err bitreich.org 70 i- (reply-buf (make-string 1000))) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (format char-stream "GET / HTTP/1.1~%") Err bitreich.org 70 i- (format char-stream "Host: sni.velox.ch~%~%") Err bitreich.org 70 i- (finish-output char-stream) Err bitreich.org 70 i- (read-sequence reply-buf char-stream) Err bitreich.org 70 i- reply-buf) Err bitreich.org 70 i- (close ssl-stream))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun sni-test-request-succeeded-p (response) Err bitreich.org 70 i- (search "Great!" response)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun sni-test-request-failed-p (response) Err bitreich.org 70 i- (search "Unfortunately" response)) Err bitreich.org 70 i- Err bitreich.org 70 i-;; Disable the SNI tests because sni.velox.ch was shut down and we Err bitreich.org 70 i-;; haven't found a replacement. Err bitreich.org 70 i-;; Err bitreich.org 70 i-;; (test (sni.disabled :compile-at :definition-time) Err bitreich.org 70 i-;; (is-true (sni-test-request-failed-p (make-request-to-sni-test-server nil)) Err bitreich.org 70 i-;; "Request to SNI test server should've failed because SNI was disabled")) Err bitreich.org 70 i-;; Err bitreich.org 70 i-;; (test (sni.enabled :compile-at :definition-time) Err bitreich.org 70 i-;; (is-true (sni-test-request-succeeded-p (make-request-to-sni-test-server t)) Err bitreich.org 70 i-;; "Request to SNI test server should've succeseeded because SNI was enabled")) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/test/verify-hostname.lisp b/3rdparties/software/cl+ssl-20190202-git/test/verify-hostname.lisp /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/test/verify-hostname.lisp.gph bitreich.org 70 i@@ -1,89 +0,0 @@ Err bitreich.org 70 i-;;;; -*- Mode: LISP; Syntax: COMMON-LISP; indent-tabs-mode: nil; coding: utf-8; show-trailing-whitespace: t -*- Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :cl+ssl.test) Err bitreich.org 70 i- Err bitreich.org 70 i-(def-suite :cl+ssl.verify-hostname :in :cl+ssl Err bitreich.org 70 i- :description "Hostname verification tests") Err bitreich.org 70 i- Err bitreich.org 70 i-(in-suite :cl+ssl.verify-hostname) Err bitreich.org 70 i- Err bitreich.org 70 i-(test veriy-hostname-success Err bitreich.org 70 i- ;; presented identifier, reference identifier, validation and parsing result Err bitreich.org 70 i- (let ((tests '(("www.example.com" "WWW.eXamPle.CoM" (nil)) ;; case insensitive match Err bitreich.org 70 i- ("www.example.com." "www.example.com" (nil)) ;; ignore trailing dots (prevenet *.com. matches) Err bitreich.org 70 i- ("www.example.com" "www.example.com." (nil)) Err bitreich.org 70 i- ("*.example.com" "www.example.com" (t "" ".example.com" t)) Err bitreich.org 70 i- ("b*z.example.com" "buzz.example.com" (t "b" "z.example.com" nil)) Err bitreich.org 70 i- ("*baz.example.com" "foobaz.example.com" (t "" "baz.example.com" nil)) Err bitreich.org 70 i- ("baz*.example.com" "baz1.example.com" (t "baz" ".example.com" nil))))) Err bitreich.org 70 i- (loop for (i r v) in tests do Err bitreich.org 70 i- (is (equalp (multiple-value-list (cl+ssl::validate-and-parse-wildcard-identifier i r)) v)) Err bitreich.org 70 i- (is (cl+ssl::try-match-hostname i r))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-hostname-fail Err bitreich.org 70 i- (let ((tests '(("*.com" "eXamPle.CoM") Err bitreich.org 70 i- (".com." "example.com.") Err bitreich.org 70 i- ("*.www.example.com" "www.example.com.") Err bitreich.org 70 i- ("foo.*.example.com" "foo.bar.example.com.") Err bitreich.org 70 i- ("xn--*.example.com" "xn-foobar.example.com") Err bitreich.org 70 i- ("*fooxn--bar.example.com" "bazfooxn--bar.example.com") Err bitreich.org 70 i- ("*.akamaized.net" "tv.eurosport.com") Err bitreich.org 70 i- ("a*c.example.com" "abcd.example.com") Err bitreich.org 70 i- ("*baz.example.com" "foobuzz.example.com")))) Err bitreich.org 70 i- (loop for (i r) in tests do Err bitreich.org 70 i- (is-false (cl+ssl::try-match-hostname i r))))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun full-cert-path (name) Err bitreich.org 70 i- (merge-pathnames (concatenate 'string Err bitreich.org 70 i- "test/certs/" Err bitreich.org 70 i- name) Err bitreich.org 70 i- (asdf:component-pathname (asdf:find-system :cl+ssl.test)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun load-cert(name) Err bitreich.org 70 i- (let ((full-path (full-cert-path name))) Err bitreich.org 70 i- (unless (probe-file full-path) Err bitreich.org 70 i- (error "Unable to find certificate ~a~%Full path: ~a" name full-path)) Err bitreich.org 70 i- (cl+ssl:decode-certificate-from-file full-path))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro with-cert ((name var) &body body) Err bitreich.org 70 i- `(let* ((,var (load-cert ,name))) Err bitreich.org 70 i- (when (cffi:null-pointer-p ,var) Err bitreich.org 70 i- (error "Unable to load certificate: ~a" ,name)) Err bitreich.org 70 i- (unwind-protect Err bitreich.org 70 i- (progn ,@body) Err bitreich.org 70 i- (cl+ssl::x509-free ,var)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert Err bitreich.org 70 i- (with-cert ("google.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "qwe.fr.doubleclick.net")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-dns-wildcard Err bitreich.org 70 i- (with-cert ("google_wildcard.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "www.google.co.uk")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-without-dns Err bitreich.org 70 i- (with-cert ("google_nodns.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "www.google.co.uk")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-printable-string Err bitreich.org 70 i- (with-cert ("google_printable.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "www.google.co.uk")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-teletex-string Err bitreich.org 70 i- (with-cert ("google_teletex.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "www.google.co.uk")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-bmp-string Err bitreich.org 70 i- (with-cert ("google_bmp.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "google.co.uk")))) Err bitreich.org 70 i- Err bitreich.org 70 i-(test verify-google-cert-universal-string Err bitreich.org 70 i- (with-cert ("google_universal.der" cert) Err bitreich.org 70 i- (is-true (cl+ssl:verify-hostname cert Err bitreich.org 70 i- "google.co.uk")))) Err bitreich.org 70 1diff --git a/3rdparties/software/cl+ssl-20190202-git/todo.txt b/3rdparties/software/cl+ssl-20190202-git/todo.txt /scm/clic/file/3rdparties/software/cl+ssl-20190202-git/todo.txt.gph bitreich.org 70 i@@ -1,31 +0,0 @@ Err bitreich.org 70 i-- Fix the CCL crash. Err bitreich.org 70 i-- Separate project page and a Git repo for trivial-gray-streams. Err bitreich.org 70 i-- Remove the ENSURE-INITIALIZED function from the public API. Err bitreich.org 70 i- It was only intoroduced to provide users access to the RAND-SEEND Err bitreich.org 70 i- which we decided to pass as a parameter to the ENSURE-INITIALIZED. Err bitreich.org 70 i- We did this because solaris users complained, as Solaris doesn't Err bitreich.org 70 i- have /dev/random, /dev/urnandom files which OpenSSL uses to initialize Err bitreich.org 70 i- it's random number generator. But now we know that on Solaris people can Err bitreich.org 70 i- use EGD: The Entropy Gathering Daemon: http://egd.sourceforge.net/, Err bitreich.org 70 i- and OpenSSL uses it if it's running on a systems without /dev/random. Err bitreich.org 70 i- Therefore we should get rid of the ENSURE-INITIALIZED and just Err bitreich.org 70 i- put an excerpt from the OpenSSL docs about what software should Err bitreich.org 70 i- be installed on the systems without /dev/random. Err bitreich.org 70 i-- The stream-fd function is confusing when it's called with ssl-stream as Err bitreich.org 70 i- a parameter; a developer might think this function allows to retrieve a Err bitreich.org 70 i- socket file descriptor from an ssl-strem, but this function is implemented Err bitreich.org 70 i- only for "native" socket streams provided by the Lisp implementation. Err bitreich.org 70 i- Makes sense to implement it for ssl-stream too. Err bitreich.org 70 i-- The ssl-error-syscall condition uses (err-get-error) in it's :report Err bitreich.org 70 i- function. This is not correct; (err-get-error) should be queried Err bitreich.org 70 i- when the error occurs. The result might be stored in a slot of Err bitreich.org 70 i- the ssl-error-syscall and printed by the :report function. Err bitreich.org 70 i-- Fix LispBIO. Err bitreich.org 70 i-- Extract the low-level SSL code into a separate library that supports Err bitreich.org 70 i- both OpenSSL and GnuTLS (maybe into two thin FFI libraries). Err bitreich.org 70 i-- Implement SSL in IOLib adding an API system that only defines stubs that Err bitreich.org 70 i- signal an error, and adding implementation systems using the before Err bitreich.org 70 i- mentioned thin FFI wrapper libraries. IOLib doesn't support windows, Err bitreich.org 70 i- therefore with this plan we will either need to drop Windows support Err bitreich.org 70 i- (at tleast for the IOLib based asynch subset of features), or Err bitreich.org 70 i- implement Windows support in IOLib. Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/CHANGELOG b/3rdparties/software/flexi-streams-20190107-git/CHANGELOG /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/CHANGELOG.gph bitreich.org 70 i@@ -1,297 +0,0 @@ Err bitreich.org 70 i-Version 1.0.18 Err bitreich.org 70 i-2018-12-12 Err bitreich.org 70 i-peek-byte for in-memory streams (Christopher Eames) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.17 Err bitreich.org 70 i-2018-06-05 Err bitreich.org 70 i-Fixes to octets-to-string. Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.16 Err bitreich.org 70 i-2016-12-19 Err bitreich.org 70 i-Remove (safety 0). (Stas Boukarev) Err bitreich.org 70 i-Don't assume simple vectors in output-stream-sequence-length. (Stas Boukarev) Err bitreich.org 70 i-Produce an error when loaded on implementations without unicode. (Stas Boukarev) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.15 Err bitreich.org 70 i-2015-07-01 Err bitreich.org 70 i-Support strings as external-format name specifiers (LispAlien) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.14 Err bitreich.org 70 i-2014-11-28 Err bitreich.org 70 i-update support information (Hans Huebner) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.13 Err bitreich.org 70 i-2014-05-18 Err bitreich.org 70 i-fix version number (Hans Huebner) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.12 Err bitreich.org 70 i-2013-12-30 Err bitreich.org 70 i-Update :description Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.11 Err bitreich.org 70 i-2013-12-30 Err bitreich.org 70 i-Don't reset column to NIL on internal write operations (Anton Vodonosov) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.10 Err bitreich.org 70 i-2013-12-09 Err bitreich.org 70 i-Fix file-position errors (markv) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.9 Err bitreich.org 70 i-2013-11-21 Err bitreich.org 70 i-Dummy release without any functional changes Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.8 Err bitreich.org 70 i-Make write-sequence call transform-octet (Jason Miller) Err bitreich.org 70 i-Fix for CMUCL (Raymond Toy, Xu Jingtao) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.7 Err bitreich.org 70 i-2008-08-26 Err bitreich.org 70 i-Don't read a second time if the first READ-SEQUENCE already reached EOF (Drakma bug report by Stas Boukarev) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.6 Err bitreich.org 70 i-2008-08-25 Err bitreich.org 70 i-Don't use a reserve if we can't rewind the stream (Drakma bug report by Stas Boukarev) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.5 Err bitreich.org 70 i-2008-08-01 Err bitreich.org 70 i-Export RUN-ALL-TESTS instead of RUN-TESTS (caught by Nick Allen) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.4 Err bitreich.org 70 i-2008-07-25 Err bitreich.org 70 i-Cosmetic surgery on test suite Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.3 Err bitreich.org 70 i-2008-05-30 Err bitreich.org 70 i-Better checks for invalid UTF-8 data Err bitreich.org 70 i-New restart ACCEPT-OVERLONG-SEQUENCE Err bitreich.org 70 i-More tests Err bitreich.org 70 i-Unused variable in CHECK-END Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.2 Err bitreich.org 70 i-2008-05-26 Err bitreich.org 70 i-Removed unnecessary test Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.1 Err bitreich.org 70 i-2008-05-26 Err bitreich.org 70 i-Removed two faulty declarations Err bitreich.org 70 i- Err bitreich.org 70 i-Version 1.0.0 Err bitreich.org 70 i-2008-05-26 Err bitreich.org 70 i-More redesign for the sake of performance Err bitreich.org 70 i-More checks for invalid data Err bitreich.org 70 i-More tests Err bitreich.org 70 i-Exported functions for length computation Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.15.3 Err bitreich.org 70 i-2008-05-23 Err bitreich.org 70 i-Avoid CHANGE-CLASS on LispWorks if possible Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.15.2 Err bitreich.org 70 i-2008-05-22 Err bitreich.org 70 i-Remove debugging remnants (d'ooh!) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.15.1 Err bitreich.org 70 i-2008-05-21 Err bitreich.org 70 i-Direct access to underlying stream in case of binary sequence operations Err bitreich.org 70 i-More tests Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.15.0 Err bitreich.org 70 i-2008-05-21 Err bitreich.org 70 i-Complete redesign, various additions, bugfixes, performance improvements (with the help of Hans Hbner) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.14.0 Err bitreich.org 70 i-2007-12-30 Err bitreich.org 70 i-Some fixes for LispWorks (when the underlying stream is a character stream) Err bitreich.org 70 i-Optimized methods for UNREAD-CHAR% in case of 8-bit encodings Err bitreich.org 70 i-More tests Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.13.1 Err bitreich.org 70 i-2007-10-11 Err bitreich.org 70 i-Small fix for AllegroCL's "modern" mode Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.13.0 Err bitreich.org 70 i-2007-09-13 Err bitreich.org 70 i-Better optimizations for STREAM-WRITE-SEQUENCE (thanks to Anton Vodonosov) Err bitreich.org 70 i-Bugfix for STREAM-WRITE-BYTE Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.12.0 Err bitreich.org 70 i-2007-09-07 Err bitreich.org 70 i-Added "bound" for flexi input streams Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.11.2 Err bitreich.org 70 i-2007-04-06 Err bitreich.org 70 i-Fixed bug in STREAM-WRITE-STRING implementation (reported by quasi) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.11.1 Err bitreich.org 70 i-2007-03-22 Err bitreich.org 70 i-More ugliness for a bit of output performance in special cases Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.11.0 Err bitreich.org 70 i-2007-03-09 Err bitreich.org 70 i-Re-factoring of how encoding errors are handled (patch by Anton Vodonosov) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.10.3 Err bitreich.org 70 i-2007-02-19 Err bitreich.org 70 i-Fixed bug in UTF-16 output (patch by Stelian Ionescu) Err bitreich.org 70 i-Fixed *SUBSTITUTION-CHAR* example in docs Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.10.2 Err bitreich.org 70 i-2007-01-12 Err bitreich.org 70 i-Another fix - sigh... Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.10.1 Err bitreich.org 70 i-2007-01-11 Err bitreich.org 70 i-Fixed the last change (thanks to Red Daly) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.10.0 Err bitreich.org 70 i-2007-01-10 Err bitreich.org 70 i-Added transformers to in-memory streams (thanks to Chris Dean) Err bitreich.org 70 i-Documentation fixes Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.9.1 Err bitreich.org 70 i-2006-12-27 Err bitreich.org 70 i-More performance improvements (thanks to Robert J. Macomber for SBCL hints) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.9.0 Err bitreich.org 70 i-2006-12-27 Err bitreich.org 70 i-Complete re-factoring to improve performance and reduce consing (at least for LispWorks) Err bitreich.org 70 i-Added some tests Err bitreich.org 70 i-Added *PROVIDE-USE-VALUE-RESTART* Err bitreich.org 70 i-Added FLEXI-STREAM-POSITION-SPEC-ERROR condition Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.8.0 Err bitreich.org 70 i-2006-11-14 Err bitreich.org 70 i-Added USE-VALUE restart for STREAM-READ-CHAR (thanks to Anton Vodonosov) Err bitreich.org 70 i-Added *SUBSTITUTION-CHAR* Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.7.2 Err bitreich.org 70 i-2006-11-06 Err bitreich.org 70 i-Removed unnecessary CHECK-EOF-NO-HANG also for in-memory streams (see 0.5.8) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.7.1 Err bitreich.org 70 i-2006-10-31 Err bitreich.org 70 i-Argh, missed the most important part... Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.7.0 Err bitreich.org 70 i-2006-10-31 Err bitreich.org 70 i-Added KOI8-R (thanks to Igor Plekhov) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.6 Err bitreich.org 70 i-2006-10-06 Err bitreich.org 70 i-Made sure not to apply Gray stream generic function to underlying stream Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.5 Err bitreich.org 70 i-2006-10-06 Err bitreich.org 70 i-Optimized STREAM-WRITE-SEQUENCE and STREAM-READ-SEQUENCE for arrays of octets Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.4 Err bitreich.org 70 i-2006-10-05 Err bitreich.org 70 i-Made READ-BYTE/WRITE-BYTE the default behaviour, i.e. we only use the sequence functions for LW if necessary Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.3 Err bitreich.org 70 i-2006-10-02 Err bitreich.org 70 i-Fixed problems with CMUCL Gray streams implementation (reported by Ivan Toshkov) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.2 Err bitreich.org 70 i-2006-09-23 Err bitreich.org 70 i-Added method for MAKE-LOAD-FORM which is needed for OpenMCL (reported by Robert Synnott, see Drakma mailing list) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.1 Err bitreich.org 70 i-2006-09-15 Err bitreich.org 70 i-Switched FILE-POSITION implementation to TRIVIAL-GRAY-STREAMS (thanks to David Lichteblau) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.6.0 Err bitreich.org 70 i-2006-09-13 Err bitreich.org 70 i-Implemented file positions for LispWorks Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.10 Err bitreich.org 70 i-2006-09-04 Err bitreich.org 70 i-Flexi streams can have binary element types now Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.9 Err bitreich.org 70 i-2006-09-01 Err bitreich.org 70 i-Added string functions Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.8 Err bitreich.org 70 i-2006-09-01 Err bitreich.org 70 i-CHECK-EOF-NO-HANG is not necessary Err bitreich.org 70 i-Updated LW links in documentation Err bitreich.org 70 i-Changed package handling in system definition (thanks to Christophe Rhodes) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.7 Err bitreich.org 70 i-2006-06-29 Err bitreich.org 70 i-Removed incompatibility with AllegroCL, see mailing list archive for details Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.6 Err bitreich.org 70 i-2006-06-13 Err bitreich.org 70 i-Fixed Emacs mode lines (reported by Robert Goldman) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.5 Err bitreich.org 70 i-2006-05-24 Err bitreich.org 70 i-Some small fixes for LW Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.4 Err bitreich.org 70 i-2006-05-18 Err bitreich.org 70 i-Workaround for CMUCL (thanks to Satyaki Das) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.3 Err bitreich.org 70 i-2006-03-06 Err bitreich.org 70 i-Fixed more typos in stream.lisp Err bitreich.org 70 i-Added missing exports in packages.lisp Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.2 Err bitreich.org 70 i-2006-01-26 Err bitreich.org 70 i-Fixed typos in stream.lisp (thanks to James Bielman) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.1 Err bitreich.org 70 i-2005-12-14 Err bitreich.org 70 i-Some bugfixes in output.lisp (thanks to Jan Idzikowski) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.5.0 Err bitreich.org 70 i-2005-12-11 Err bitreich.org 70 i-Added in-memory streams Err bitreich.org 70 i-Exported types Err bitreich.org 70 i-Added specific conditions Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.4.1 Err bitreich.org 70 i-2005-12-05 Err bitreich.org 70 i-Updated docs Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.4.0 Err bitreich.org 70 i-2005-12-05 Err bitreich.org 70 i-Added US-ASCII encoding Err bitreich.org 70 i-Added *USE-REPLACEMENT-CHAR* Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.3.0 Err bitreich.org 70 i-2005-11-26 Err bitreich.org 70 i-Added UNREAD-BYTE and PEEK-BYTE Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.2.4 Err bitreich.org 70 i-2005-11-26 Err bitreich.org 70 i-WIN32:CODE-PAGE only for LispWorks Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.2.3 Err bitreich.org 70 i-2005-11-26 Err bitreich.org 70 i-Added STREAM-TERPRI to appease AllegroCL Err bitreich.org 70 i-Fixed typo in docs Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.2.2 Err bitreich.org 70 i-2005-11-26 Err bitreich.org 70 i-Patch to make class precendence list work in AllegroCL (David Lichteblau) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.2.1 Err bitreich.org 70 i-2005-11-25 Err bitreich.org 70 i-Adapted to new TRIVIAL-GRAY-STREAMS API (David Lichteblau) Err bitreich.org 70 i-More changes for portability, specifically for SBCL (David Lichteblau) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.2.0 Err bitreich.org 70 i-2005-11-25 Err bitreich.org 70 i-Portable version thanks to TRIVIAL-GRAY-STREAMS (David Lichteblau) Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.1.1 Err bitreich.org 70 i-2005-11-25 Err bitreich.org 70 i-Documentation enhancements Err bitreich.org 70 i- Err bitreich.org 70 i-Version 0.1.0 Err bitreich.org 70 i-2005-11-25 Err bitreich.org 70 i-Initial public release Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/README.md b/3rdparties/software/flexi-streams-20190107-git/README.md /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/README.md.gph bitreich.org 70 i@@ -1,12 +0,0 @@ Err bitreich.org 70 i---------------------------------------------------------- Err bitreich.org 70 i-FLEXI-STREAMS - Flexible bivalent streams for Common Lisp Err bitreich.org 70 i---------------------------------------------------------- Err bitreich.org 70 i- Err bitreich.org 70 i-FLEXI-STREAMS implements "virtual" bivalent streams that can be Err bitreich.org 70 i-layered atop real binary or bivalent streams and that can be used to Err bitreich.org 70 i-read and write character data in various single- or multi-octet Err bitreich.org 70 i-encodings which can be changed on the fly. It also supplies in-memory Err bitreich.org 70 i-binary streams which are similar to string streams. Err bitreich.org 70 i- Err bitreich.org 70 i-Complete documentation for CL-INTERPOL can be found in the `docs` Err bitreich.org 70 i-directory or at the [project documentation site](https://edicl.github.io/flexi-streams/). Err bitreich.org 70 i-\ No newline at end of file Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/ascii.lisp b/3rdparties/software/flexi-streams-20190107-git/ascii.lisp /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/ascii.lisp.gph bitreich.org 70 i@@ -1,36 +0,0 @@ Err bitreich.org 70 i-;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: FLEXI-STREAMS; Base: 10 -*- Err bitreich.org 70 i-;;; $Header: /usr/local/cvsrep/flexi-streams/ascii.lisp,v 1.9 2008/05/18 21:32:15 edi Exp $ Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Copyright (c) 2005-2008, Dr. Edmund Weitz. All rights reserved. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Redistribution and use in source and binary forms, with or without Err bitreich.org 70 i-;;; modification, are permitted provided that the following conditions Err bitreich.org 70 i-;;; are met: Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions of source code must retain the above copyright Err bitreich.org 70 i-;;; notice, this list of conditions and the following disclaimer. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions in binary form must reproduce the above Err bitreich.org 70 i-;;; copyright notice, this list of conditions and the following Err bitreich.org 70 i-;;; disclaimer in the documentation and/or other materials Err bitreich.org 70 i-;;; provided with the distribution. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED Err bitreich.org 70 i-;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED Err bitreich.org 70 i-;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Err bitreich.org 70 i-;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY Err bitreich.org 70 i-;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL Err bitreich.org 70 i-;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE Err bitreich.org 70 i-;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS Err bitreich.org 70 i-;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, Err bitreich.org 70 i-;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING Err bitreich.org 70 i-;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS Err bitreich.org 70 i-;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :flexi-streams) Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +ascii-table+ Err bitreich.org 70 i- ;; currently not used, but we leave it in here just in case... Err bitreich.org 70 i- (make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533 65533)) Err bitreich.org 70 i- "An array enumerating the character codes for the US-ASCII Err bitreich.org 70 i-encoding.") Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/code-pages.lisp b/3rdparties/software/flexi-streams-20190107-git/code-pages.lisp /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/code-pages.lisp.gph bitreich.org 70 i@@ -1,62 +0,0 @@ Err bitreich.org 70 i-;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: FLEXI-STREAMS; Base: 10 -*- Err bitreich.org 70 i-;;; $Header: /usr/local/cvsrep/flexi-streams/code-pages.lisp,v 1.7 2008/05/18 21:32:15 edi Exp $ Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Copyright (c) 2005-2008, Dr. Edmund Weitz. All rights reserved. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Redistribution and use in source and binary forms, with or without Err bitreich.org 70 i-;;; modification, are permitted provided that the following conditions Err bitreich.org 70 i-;;; are met: Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions of source code must retain the above copyright Err bitreich.org 70 i-;;; notice, this list of conditions and the following disclaimer. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions in binary form must reproduce the above Err bitreich.org 70 i-;;; copyright notice, this list of conditions and the following Err bitreich.org 70 i-;;; disclaimer in the documentation and/or other materials Err bitreich.org 70 i-;;; provided with the distribution. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED Err bitreich.org 70 i-;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED Err bitreich.org 70 i-;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Err bitreich.org 70 i-;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY Err bitreich.org 70 i-;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL Err bitreich.org 70 i-;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE Err bitreich.org 70 i-;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS Err bitreich.org 70 i-;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, Err bitreich.org 70 i-;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING Err bitreich.org 70 i-;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS Err bitreich.org 70 i-;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :flexi-streams) Err bitreich.org 70 i- Err bitreich.org 70 i-;;; the following code was auto-generated with LWW Err bitreich.org 70 i- Err bitreich.org 70 i-(defconstant +code-page-tables+ Err bitreich.org 70 i- `((437 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 224 229 231 234 235 232 239 238 236 196 197 201 230 198 244 246 242 251 249 255 214 220 162 163 165 8359 402 225 237 243 250 241 209 170 186 191 8976 172 189 188 161 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (720 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 233 226 132 224 134 231 234 235 232 239 238 141 142 143 144 1617 1618 244 164 1600 251 249 1569 1570 1571 1572 163 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 1590 1591 1592 1593 1594 1601 181 1602 1603 1604 1605 1606 1607 1608 1609 1610 8801 1611 1612 1613 1614 1615 1616 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (737 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 931 932 933 934 935 936 937 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 963 962 964 965 966 967 968 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 969 940 941 942 970 943 972 973 971 974 902 904 905 906 908 910 911 177 8805 8804 938 939 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (775 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 262 252 233 257 228 291 229 263 322 275 342 343 299 377 196 197 201 230 198 333 246 290 162 346 347 214 220 248 163 216 215 164 256 298 243 379 380 378 8221 166 169 174 172 189 188 321 171 187 9617 9618 9619 9474 9508 260 268 280 278 9571 9553 9559 9565 302 352 9488 9492 9524 9516 9500 9472 9532 370 362 9562 9556 9577 9574 9568 9552 9580 381 261 269 281 279 303 353 371 363 382 9496 9484 9608 9604 9612 9616 9600 211 223 332 323 245 213 181 324 310 311 315 316 326 274 325 8217 173 177 8220 190 182 167 247 8222 176 8729 183 185 179 178 9632 160))) Err bitreich.org 70 i- (850 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 224 229 231 234 235 232 239 238 236 196 197 201 230 198 244 246 242 251 249 255 214 220 248 163 216 215 402 225 237 243 250 241 209 170 186 191 174 172 189 188 161 171 187 9617 9618 9619 9474 9508 193 194 192 169 9571 9553 9559 9565 162 165 9488 9492 9524 9516 9500 9472 9532 227 195 9562 9556 9577 9574 9568 9552 9580 164 240 208 202 203 200 305 205 206 207 9496 9484 9608 9604 166 204 9600 211 223 212 210 245 213 181 254 222 218 219 217 253 221 175 180 173 177 8215 190 182 167 247 184 176 168 183 185 179 178 9632 160))) Err bitreich.org 70 i- (852 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 367 263 231 322 235 336 337 238 377 196 262 201 313 314 244 246 317 318 346 347 214 220 356 357 321 215 269 225 237 243 250 260 261 381 382 280 281 172 378 268 351 171 187 9617 9618 9619 9474 9508 193 194 282 350 9571 9553 9559 9565 379 380 9488 9492 9524 9516 9500 9472 9532 258 259 9562 9556 9577 9574 9568 9552 9580 164 273 272 270 203 271 327 205 206 283 9496 9484 9608 9604 354 366 9600 211 223 212 323 324 328 352 353 340 218 341 368 253 221 355 180 173 733 731 711 728 167 247 184 176 168 729 369 344 345 9632 160))) Err bitreich.org 70 i- (855 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 1106 1026 1107 1027 1105 1025 1108 1028 1109 1029 1110 1030 1111 1031 1112 1032 1113 1033 1114 1034 1115 1035 1116 1036 1118 1038 1119 1039 1102 1070 1098 1066 1072 1040 1073 1041 1094 1062 1076 1044 1077 1045 1092 1060 1075 1043 171 187 9617 9618 9619 9474 9508 1093 1061 1080 1048 9571 9553 9559 9565 1081 1049 9488 9492 9524 9516 9500 9472 9532 1082 1050 9562 9556 9577 9574 9568 9552 9580 164 1083 1051 1084 1052 1085 1053 1086 1054 1087 9496 9484 9608 9604 1055 1103 9600 1071 1088 1056 1089 1057 1090 1058 1091 1059 1078 1046 1074 1042 1100 1068 8470 173 1099 1067 1079 1047 1096 1064 1101 1069 1097 1065 1095 1063 167 9632 160))) Err bitreich.org 70 i- (857 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 224 229 231 234 235 232 239 238 305 196 197 201 230 198 244 246 242 251 249 304 214 220 248 163 216 350 351 225 237 243 250 241 209 286 287 191 174 172 189 188 161 171 187 9617 9618 9619 9474 9508 193 194 192 169 9571 9553 9559 9565 162 165 9488 9492 9524 9516 9500 9472 9532 227 195 9562 9556 9577 9574 9568 9552 9580 164 186 170 202 203 200 65533 205 206 207 9496 9484 9608 9604 166 204 9600 211 223 212 210 245 213 181 65533 215 218 219 217 236 255 175 180 173 177 65533 190 182 167 247 184 176 168 183 185 179 178 9632 160))) Err bitreich.org 70 i- (860 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 227 224 193 231 234 202 232 205 212 236 195 194 201 192 200 244 245 242 218 249 204 213 220 162 163 217 8359 211 225 237 243 250 241 209 170 186 191 210 172 189 188 161 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (861 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 224 229 231 234 235 232 208 240 222 196 197 201 230 198 244 246 254 251 221 253 214 220 248 163 216 8359 402 225 237 243 250 193 205 211 218 191 8976 172 189 188 161 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (862 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 162 163 165 8359 402 225 237 243 250 241 209 170 186 191 8976 172 189 188 161 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (863 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 194 224 182 231 234 235 232 239 238 8215 192 167 201 200 202 244 203 207 251 249 164 212 220 162 163 217 219 402 166 180 243 250 168 184 179 175 206 8976 172 189 188 190 171 187 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (864 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 176 183 8729 8730 9618 9472 9474 9532 9508 9516 9500 9524 9488 9484 9492 9496 946 8734 966 177 189 188 8776 171 187 65271 65272 155 156 65275 65276 159 160 173 65154 163 164 65156 65533 65533 65166 65167 65173 65177 1548 65181 65185 65189 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 65233 1563 65201 65205 65209 1567 162 65152 65153 65155 65157 65226 65163 65165 65169 65171 65175 65179 65183 65187 65191 65193 65195 65197 65199 65203 65207 65211 65215 65217 65221 65227 65231 166 172 247 215 65225 1600 65235 65239 65243 65247 65251 65255 65259 65261 65263 65267 65213 65228 65230 65229 65249 65149 1617 65253 65257 65260 65264 65266 65232 65237 65269 65270 65245 65241 65265 9632 65533))) Err bitreich.org 70 i- (865 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 199 252 233 226 228 224 229 231 234 235 232 239 238 236 196 197 201 230 198 244 246 242 251 249 255 214 220 248 163 216 8359 402 225 237 243 250 241 209 170 186 191 8976 172 189 188 161 171 164 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 945 223 915 960 931 963 181 964 934 920 937 948 8734 966 949 8745 8801 177 8805 8804 8992 8993 247 8776 176 8729 183 8730 8319 178 9632 160))) Err bitreich.org 70 i- (866 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 9617 9618 9619 9474 9508 9569 9570 9558 9557 9571 9553 9559 9565 9564 9563 9488 9492 9524 9516 9500 9472 9532 9566 9567 9562 9556 9577 9574 9568 9552 9580 9575 9576 9572 9573 9561 9560 9554 9555 9579 9578 9496 9484 9608 9604 9612 9616 9600 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1025 1105 1028 1108 1031 1111 1038 1118 176 8729 183 8730 8470 164 9632 160))) Err bitreich.org 70 i- (869 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 902 135 183 172 166 8216 8217 904 8213 905 906 938 908 147 148 910 939 169 911 178 179 940 163 941 942 943 970 912 972 973 913 914 915 916 917 918 919 189 920 921 171 187 9617 9618 9619 9474 9508 922 923 924 925 9571 9553 9559 9565 926 927 9488 9492 9524 9516 9500 9472 9532 928 929 9562 9556 9577 9574 9568 9552 9580 931 932 933 934 935 936 937 945 946 947 9496 9484 9608 9604 948 949 9600 950 951 952 953 954 955 956 957 958 959 960 961 963 962 964 900 173 177 965 966 967 167 968 901 176 168 969 971 944 974 9632 160))) Err bitreich.org 70 i- (1250 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 131 8222 8230 8224 8225 136 8240 352 8249 346 356 381 377 144 8216 8217 8220 8221 8226 8211 8212 152 8482 353 8250 347 357 382 378 160 711 728 321 164 260 166 167 168 169 350 171 172 173 174 379 176 177 731 322 180 181 182 183 184 261 351 187 317 733 318 380 340 193 194 258 196 313 262 199 268 201 280 203 282 205 206 270 272 323 327 211 212 336 214 215 344 366 218 368 220 221 354 223 341 225 226 259 228 314 263 231 269 233 281 235 283 237 238 271 273 324 328 243 244 337 246 247 345 367 250 369 252 253 355 729))) Err bitreich.org 70 i- (1251 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 1026 1027 8218 1107 8222 8230 8224 8225 8364 8240 1033 8249 1034 1036 1035 1039 1106 8216 8217 8220 8221 8226 8211 8212 152 8482 1113 8250 1114 1116 1115 1119 160 1038 1118 1032 164 1168 166 167 1025 169 1028 171 172 173 174 1031 176 177 1030 1110 1169 181 182 183 1105 8470 1108 187 1112 1029 1109 1111 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103))) Err bitreich.org 70 i- (1252 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 402 8222 8230 8224 8225 710 8240 352 8249 338 141 381 143 144 8216 8217 8220 8221 8226 8211 8212 732 8482 353 8250 339 157 382 376 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255))) Err bitreich.org 70 i- (1253 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 402 8222 8230 8224 8225 136 8240 138 8249 140 141 142 143 144 8216 8217 8220 8221 8226 8211 8212 152 8482 154 8250 156 157 158 159 160 901 902 163 164 165 166 167 168 169 65533 171 172 173 174 8213 176 177 178 179 900 181 182 183 904 905 906 187 908 189 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 65533 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 65533))) Err bitreich.org 70 i- (1254 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 402 8222 8230 8224 8225 710 8240 352 8249 338 141 142 143 144 8216 8217 8220 8221 8226 8211 8212 732 8482 353 8250 339 157 158 376 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 286 209 210 211 212 213 214 215 216 217 218 219 220 304 350 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 287 241 242 243 244 245 246 247 248 249 250 251 252 305 351 255))) Err bitreich.org 70 i- (1255 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 402 8222 8230 8224 8225 710 8240 138 8249 140 141 142 143 144 8216 8217 8220 8221 8226 8211 8212 732 8482 154 8250 156 157 158 159 160 161 162 163 8362 165 166 167 168 169 215 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 247 187 188 189 190 191 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1520 1521 1522 1523 1524 65533 65533 65533 65533 65533 65533 65533 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 65533 65533 8206 8207 65533))) Err bitreich.org 70 i- (1256 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 1662 8218 402 8222 8230 8224 8225 710 8240 1657 8249 338 1670 1688 1672 1711 8216 8217 8220 8221 8226 8211 8212 1705 8482 1681 8250 339 8204 8205 1722 160 1548 162 163 164 165 166 167 168 169 1726 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 1563 187 188 189 190 1567 1729 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 215 1591 1592 1593 1594 1600 1601 1602 1603 224 1604 226 1605 1606 1607 1608 231 232 233 234 235 1609 1610 238 239 1611 1612 1613 1614 244 1615 1616 247 1617 249 1618 251 252 8206 8207 1746))) Err bitreich.org 70 i- (1257 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 131 8222 8230 8224 8225 136 8240 138 8249 140 168 711 184 144 8216 8217 8220 8221 8226 8211 8212 152 8482 154 8250 156 175 731 159 160 65533 162 163 164 65533 166 167 216 169 342 171 172 173 174 198 176 177 178 179 180 181 182 183 248 185 343 187 188 189 190 230 260 302 256 262 196 197 280 274 268 201 377 278 290 310 298 315 352 323 325 211 332 213 214 215 370 321 346 362 220 379 381 223 261 303 257 263 228 229 281 275 269 233 378 279 291 311 299 316 353 324 326 243 333 245 246 247 371 322 347 363 252 380 382 729))) Err bitreich.org 70 i- (1258 . ,(make-decoding-table '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 8364 129 8218 402 8222 8230 8224 8225 710 8240 138 8249 338 141 142 143 144 8216 8217 8220 8221 8226 8211 8212 732 8482 154 8250 339 157 158 376 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 258 196 197 198 199 200 201 202 203 768 205 206 207 272 209 777 211 212 416 214 215 216 217 218 219 220 431 771 223 224 225 226 259 228 229 230 231 232 233 234 235 769 237 238 239 273 241 803 243 244 417 246 247 248 249 250 251 252 432 8363 255)))) Err bitreich.org 70 i- "A list of 8-bit Windows code pages where each element is a Err bitreich.org 70 i-cons with the car being the ID of the code page and the cdr being Err bitreich.org 70 i-a vector enumerating the corresponding character codes.") Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/conditions.lisp b/3rdparties/software/flexi-streams-20190107-git/conditions.lisp /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/conditions.lisp.gph bitreich.org 70 i@@ -1,108 +0,0 @@ Err bitreich.org 70 i-;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: FLEXI-STREAMS; Base: 10 -*- Err bitreich.org 70 i-;;; $Header: /usr/local/cvsrep/flexi-streams/conditions.lisp,v 1.9 2008/05/25 22:23:58 edi Exp $ Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Copyright (c) 2005-2008, Dr. Edmund Weitz. All rights reserved. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Redistribution and use in source and binary forms, with or without Err bitreich.org 70 i-;;; modification, are permitted provided that the following conditions Err bitreich.org 70 i-;;; are met: Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions of source code must retain the above copyright Err bitreich.org 70 i-;;; notice, this list of conditions and the following disclaimer. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions in binary form must reproduce the above Err bitreich.org 70 i-;;; copyright notice, this list of conditions and the following Err bitreich.org 70 i-;;; disclaimer in the documentation and/or other materials Err bitreich.org 70 i-;;; provided with the distribution. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED Err bitreich.org 70 i-;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED Err bitreich.org 70 i-;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Err bitreich.org 70 i-;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY Err bitreich.org 70 i-;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL Err bitreich.org 70 i-;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE Err bitreich.org 70 i-;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS Err bitreich.org 70 i-;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, Err bitreich.org 70 i-;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING Err bitreich.org 70 i-;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS Err bitreich.org 70 i-;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :flexi-streams) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition flexi-stream-error (stream-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Superclass for all errors related to flexi Err bitreich.org 70 i-streams.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition flexi-stream-simple-error (flexi-stream-error simple-condition) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Like FLEXI-STREAM-ERROR but with formatting Err bitreich.org 70 i-capabilities.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition flexi-stream-element-type-error (flexi-stream-error) Err bitreich.org 70 i- ((element-type :initarg :element-type Err bitreich.org 70 i- :reader flexi-stream-element-type-error-element-type)) Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "Element type ~S not allowed." Err bitreich.org 70 i- (flexi-stream-element-type-error-element-type condition)))) Err bitreich.org 70 i- (:documentation "Errors of this type are signalled if the flexi Err bitreich.org 70 i-stream has a wrong element type.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition flexi-stream-out-of-sync-error (flexi-stream-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (declare (ignore condition)) Err bitreich.org 70 i- (format stream "Stream out of sync from previous Err bitreich.org 70 i-lookahead, couldn't rewind."))) Err bitreich.org 70 i- (:documentation "This can happen if you're trying to write to an IO Err bitreich.org 70 i-stream which had prior to that `looked ahead' while reading and now Err bitreich.org 70 i-can't `rewind' to the octet where you /should/ be.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition in-memory-stream-error (stream-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Superclass for all errors related to Err bitreich.org 70 i-IN-MEMORY streams.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition in-memory-stream-simple-error (in-memory-stream-error simple-condition) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Like IN-MEMORY-STREAM-ERROR but with formatting Err bitreich.org 70 i-capabilities.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition in-memory-stream-closed-error (in-memory-stream-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:report (lambda (condition stream) Err bitreich.org 70 i- (format stream "~S is closed." Err bitreich.org 70 i- (stream-error-stream condition)))) Err bitreich.org 70 i- (:documentation "An error that is signalled when someone is trying Err bitreich.org 70 i-to read from or write to a closed IN-MEMORY stream.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition in-memory-stream-position-spec-error (in-memory-stream-simple-error) Err bitreich.org 70 i- ((position-spec :initarg :position-spec Err bitreich.org 70 i- :reader in-memory-stream-position-spec-error-position-spec)) Err bitreich.org 70 i- (:documentation "Errors of this type are signalled if an erroneous Err bitreich.org 70 i-position spec is used in conjunction with FILE-POSITION.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition external-format-condition (simple-condition) Err bitreich.org 70 i- ((external-format :initarg :external-format Err bitreich.org 70 i- :initform nil Err bitreich.org 70 i- :reader external-format-condition-external-format)) Err bitreich.org 70 i- (:documentation "Superclass for all conditions related to external Err bitreich.org 70 i-formats.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition external-format-error (external-format-condition error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Superclass for all errors related to external Err bitreich.org 70 i-formats.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(define-condition external-format-encoding-error (external-format-error) Err bitreich.org 70 i- () Err bitreich.org 70 i- (:documentation "Errors of this type are signalled if there is an Err bitreich.org 70 i-encoding problem.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun signal-encoding-error (external-format format-control &rest format-args) Err bitreich.org 70 i- "Convenience function similar to ERROR to signal conditions of type Err bitreich.org 70 i-EXTERNAL-FORMAT-ENCODING-ERROR." Err bitreich.org 70 i- (error 'external-format-encoding-error Err bitreich.org 70 i- :format-control format-control Err bitreich.org 70 i- :format-arguments format-args Err bitreich.org 70 i- :external-format external-format)) Err bitreich.org 70 1diff --git a/3rdparties/software/flexi-streams-20190107-git/decode.lisp b/3rdparties/software/flexi-streams-20190107-git/decode.lisp /scm/clic/file/3rdparties/software/flexi-streams-20190107-git/decode.lisp.gph bitreich.org 70 i@@ -1,468 +0,0 @@ Err bitreich.org 70 i-;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: FLEXI-STREAMS; Base: 10 -*- Err bitreich.org 70 i-;;; $Header: /usr/local/cvsrep/flexi-streams/decode.lisp,v 1.35 2008/08/26 10:59:22 edi Exp $ Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Copyright (c) 2005-2008, Dr. Edmund Weitz. All rights reserved. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; Redistribution and use in source and binary forms, with or without Err bitreich.org 70 i-;;; modification, are permitted provided that the following conditions Err bitreich.org 70 i-;;; are met: Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions of source code must retain the above copyright Err bitreich.org 70 i-;;; notice, this list of conditions and the following disclaimer. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; * Redistributions in binary form must reproduce the above Err bitreich.org 70 i-;;; copyright notice, this list of conditions and the following Err bitreich.org 70 i-;;; disclaimer in the documentation and/or other materials Err bitreich.org 70 i-;;; provided with the distribution. Err bitreich.org 70 i- Err bitreich.org 70 i-;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 'AS IS' AND ANY EXPRESSED Err bitreich.org 70 i-;;; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED Err bitreich.org 70 i-;;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Err bitreich.org 70 i-;;; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY Err bitreich.org 70 i-;;; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL Err bitreich.org 70 i-;;; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE Err bitreich.org 70 i-;;; GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS Err bitreich.org 70 i-;;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, Err bitreich.org 70 i-;;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING Err bitreich.org 70 i-;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS Err bitreich.org 70 i-;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Err bitreich.org 70 i- Err bitreich.org 70 i-(in-package :flexi-streams) Err bitreich.org 70 i- Err bitreich.org 70 i-(defun recover-from-encoding-error (external-format format-control &rest format-args) Err bitreich.org 70 i- "Helper function used by OCTETS-TO-CHAR-CODE below to deal with Err bitreich.org 70 i-encoding errors. Checks if *SUBSTITUTION-CHAR* is not NIL and returns Err bitreich.org 70 i-its character code in this case. Otherwise signals an Err bitreich.org 70 i-EXTERNAL-FORMAT-ENCODING-ERROR as determined by the arguments to this Err bitreich.org 70 i-function and provides a corresponding USE-VALUE restart." Err bitreich.org 70 i- (when *substitution-char* Err bitreich.org 70 i- (return-from recover-from-encoding-error (char-code *substitution-char*))) Err bitreich.org 70 i- (restart-case Err bitreich.org 70 i- (apply #'signal-encoding-error external-format format-control format-args) Err bitreich.org 70 i- (use-value (char) Err bitreich.org 70 i- :report "Specify a character to be used instead." Err bitreich.org 70 i- :interactive (lambda () Err bitreich.org 70 i- (loop Err bitreich.org 70 i- (format *query-io* "Type a character: ") Err bitreich.org 70 i- (let ((line (read-line *query-io*))) Err bitreich.org 70 i- (when (= 1 (length line)) Err bitreich.org 70 i- (return (list (char line 0))))))) Err bitreich.org 70 i- (char-code char)))) Err bitreich.org 70 i- Err bitreich.org 70 i-(defgeneric octets-to-char-code (format reader) Err bitreich.org 70 i- (declare #.*standard-optimize-settings*) Err bitreich.org 70 i- (:documentation "Converts a sequence of octets to a character code Err bitreich.org 70 i-\(which is returned, or NIL in case of EOF) using the external format Err bitreich.org 70 i-FORMAT. The sequence is obtained by calling the function \(which must Err bitreich.org 70 i-be a functional object) READER with no arguments which should return Err bitreich.org 70 i-one octet per call. In the case of EOF, READER should return NIL. Err bitreich.org 70 i- Err bitreich.org 70 i-The special variable *CURRENT-UNREADER* must be bound correctly Err bitreich.org 70 i-whenever this function is called.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defgeneric octets-to-string* (format sequence start end) Err bitreich.org 70 i- (declare #.*standard-optimize-settings*) Err bitreich.org 70 i- (:documentation "A generic function which dispatches on the external Err bitreich.org 70 i-format and does the real work for OCTETS-TO-STRING.")) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmethod octets-to-string* :around (format (list list) start end) Err bitreich.org 70 i- (declare #.*standard-optimize-settings*) Err bitreich.org 70 i- (octets-to-string* format (coerce list 'vector) start end)) Err bitreich.org 70 i- Err bitreich.org 70 i-(defmacro define-sequence-readers ((format-class) &body body) Err bitreich.org 70 i- "Non-hygienic utility macro which defines methods for READ-SEQUENCE* Err bitreich.org 70 i-and OCTETS-TO-STRING* for the class FORMAT-CLASS. BODY is described Err bitreich.org 70 i-in the docstring of DEFINE-CHAR-ENCODERS but can additionally contain Err bitreich.org 70 i-a form \(UNGET