Author: hhubner Date: 2007-10-02 21:20:42 -0400 (Tue, 02 Oct 2007) New Revision: 2178
Added: branches/bos/bknr/src/bknr-xml.asd branches/bos/bknr/src/xml/ branches/bos/bknr/src/xml/package.lisp branches/bos/bknr/src/xml/xml.lisp Removed: branches/bos/thirdparty/ironclad/digest.lisp.orig branches/bos/thirdparty/ironclad/package.lisp.orig Modified: branches/bos/bknr/src/bknr-impex.asd branches/bos/bknr/src/bknr-utils.asd branches/bos/bknr/src/bknr.asd branches/bos/bknr/src/indices/package.lisp branches/bos/bknr/src/packages.lisp branches/bos/bknr/src/utils/package.lisp branches/bos/bknr/src/utils/utils.lisp branches/bos/bknr/src/utils/xml.lisp branches/bos/bknr/src/xml-impex/package.lisp branches/bos/projects/bos/worldpay-test/utils.lisp Log: Patch from Kamen Tomov to isolate CXML from the datastore. In order to get this compiled, I moved FIND-ALL from the BOS project to bknr/src/utils.
Modified: branches/bos/bknr/src/bknr-impex.asd =================================================================== --- branches/bos/bknr/src/bknr-impex.asd 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/bknr-impex.asd 2007-10-03 01:20:42 UTC (rev 2178) @@ -21,7 +21,7 @@ :description "BKNR XML import/export" :long-description ""
- :depends-on (:cl-interpol :cxml :bknr-utils :bknr-indices) + :depends-on (:cl-interpol :cxml :bknr-utils :bknr-xml :bknr-indices)
:components ((:module "xml-impex" :components
Modified: branches/bos/bknr/src/bknr-utils.asd =================================================================== --- branches/bos/bknr/src/bknr-utils.asd 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/bknr-utils.asd 2007-10-03 01:20:42 UTC (rev 2178) @@ -17,7 +17,6 @@ :description "baikonour - launchpad for lisp satellites"
:depends-on (:cl-interpol :cl-ppcre - :cxml :md5 #+(not allegro) :acl-compat @@ -37,7 +36,6 @@ (:file "base64" :depends-on ("utils")) (:file "capability" :depends-on ("utils")) (:file "make-fdf-file" :depends-on ("utils")) - (:file "xml" :depends-on ("utils")) (:file "date-calc") (:file "acl-mp-compat" :depends-on ("package"))))))
Added: branches/bos/bknr/src/bknr-xml.asd =================================================================== --- branches/bos/bknr/src/bknr-xml.asd 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/bknr-xml.asd 2007-10-03 01:20:42 UTC (rev 2178) @@ -0,0 +1,42 @@ +;; -*-Lisp-*- + +(in-package :cl-user) + +(defpackage :bknr.xml.system + (:use :cl :asdf)) + +(in-package :bknr.xml.system) + +(defsystem :bknr-xml + :name "baikonour" + :author "Hans Huebner hans@huebner.org" + :author "Manuel Odendahl manuel@bl0rg.net" + :version "0" + :maintainer "Manuel Odendahl manuel@bl0rg.net" + :licence "BSD" + :description "baikonour - launchpad for lisp satellites" + :depends-on (:cl-interpol :cxml) + :components ((:module "xml" :components ((:file "package") + (:file "xml"))))) + +;; -*-Lisp-*- + +(in-package :cl-user) + +(defpackage :bknr.xml.system + (:use :cl :asdf)) + +(in-package :bknr.xml.system) + +(defsystem :bknr-xml + :name "baikonour" + :author "Hans Huebner hans@huebner.org" + :author "Manuel Odendahl manuel@bl0rg.net" + :version "0" + :maintainer "Manuel Odendahl manuel@bl0rg.net" + :licence "BSD" + :description "baikonour - launchpad for lisp satellites" + :depends-on (:cl-interpol :cxml) + :components ((:module "xml" :components ((:file "package") + (:file "xml"))))) +
Modified: branches/bos/bknr/src/bknr.asd =================================================================== --- branches/bos/bknr/src/bknr.asd 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/bknr.asd 2007-10-03 01:20:42 UTC (rev 2178) @@ -28,6 +28,7 @@ :cxml :unit-test :bknr-utils + :bknr-xml :puri ;:stem ;:mime
Modified: branches/bos/bknr/src/indices/package.lisp =================================================================== --- branches/bos/bknr/src/indices/package.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/indices/package.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -6,7 +6,6 @@ #+cmu :ext #+sbcl :sb-ext :cl-user - :cxml :bknr.utils :bknr.skip-list #+allegro :aclmop
Modified: branches/bos/bknr/src/packages.lisp =================================================================== --- branches/bos/bknr/src/packages.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/packages.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -26,7 +26,7 @@ #:start-cron))
(defpackage :bknr.rss - (:use :cl :cl-user :cl-ppcre :bknr.utils :puri :cxml-xmls :bknr.datastore :bknr.indices :cxml) + (:use :cl :cl-user :cl-ppcre :bknr.utils :bknr.xml :puri :cxml-xmls :bknr.datastore :bknr.indices :cxml) (:export #:xml-escape #:*img-src-scanner* #:*a-href-scanner* @@ -192,6 +192,7 @@ :bknr.indices :bknr.impex :bknr.utils + :bknr.xml :bknr.events :bknr.user) (:shadowing-import-from :cl-interpol #:quote-meta-chars)
Modified: branches/bos/bknr/src/utils/package.lisp =================================================================== --- branches/bos/bknr/src/utils/package.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/utils/package.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -4,7 +4,6 @@ (:use :cl :cl-ppcre :cl-interpol - :cxml-xmls :md5 #+cmu :extensions ; #+sbcl :sb-ext @@ -122,15 +121,6 @@ #:string-beginning-with-p #:string-delimited-by-p
- ;; xml - #:node-children-nodes - #:find-child - #:find-children - #:node-string-body - #:node-attribute - #:node-child-string-body - #:node-to-html - ;; crypt-md5 #:crypt-md5 #:verify-md5-password @@ -150,4 +140,7 @@ #:mp-with-recursive-lock-held
;; class utils - #:class-subclasses)) + #:class-subclasses + + ;; norvig + #:find-all))
Modified: branches/bos/bknr/src/utils/utils.lisp =================================================================== --- branches/bos/bknr/src/utils/utils.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/utils/utils.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -545,4 +545,15 @@ (format nil "~3,1F KB" (/ byte-count 1024))) (t (format nil "~A" byte-count)))) - \ No newline at end of file + +;;; from norvig +(defun find-all (item sequence &rest keyword-args + &key (test #'eql) test-not &allow-other-keys) + "Find all those elements of sequence that match item, + according to the keywords. Doesn't alter sequence." + (if test-not + (apply #'remove item sequence + :test-not (complement test-not) keyword-args) + (apply #'remove item sequence + :test (complement test) keyword-args))) +
Modified: branches/bos/bknr/src/utils/xml.lisp =================================================================== --- branches/bos/bknr/src/utils/xml.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/utils/xml.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -1,63 +0,0 @@ -(in-package :bknr.utils) - -(defun node-children-nodes (xml) - (remove-if-not #'consp (node-children xml))) - -(defun find-child (xml node-name) - (let ((children (node-children-nodes xml))) - (find node-name children :test #'string-equal :key #'node-name))) - -(defun find-children (xml node-name) - (let ((children (node-children-nodes xml))) - (find-all node-name children :test #'string-equal :key #'node-name))) - -(defun node-string-body (xml) - (let ((children (remove-if #'consp (node-children xml)))) - (if (every #'stringp children) - (apply #'concatenate 'string children) - (error "Some children are not strings")))) - -(defun node-attribute (xml attribute-name) - (cadr (assoc attribute-name (node-attrs xml) :test #'string-equal))) - -(defun node-child-string-body (xml node-name) - (let ((child (find-child xml node-name))) - (if (and child (consp child)) - (node-string-body child) - nil))) - -(defun node-to-html (node &optional (stream *standard-output*)) - (when (stringp node) - (write-string node) - (return-from node-to-html)) - (write-char #< stream) - (when (node-ns node) - (write-string (node-ns node) stream) - (write-char #: stream)) - (write-string (node-name node) stream) - (loop for (key value) in (node-attrs node) - do (write-char #\Space stream) - (write-string key stream) - (write-char #= stream) - (write-char #" stream) - (write-string value stream) - (write-char #" stream)) - (if (node-children node) - (progn - (write-char #> stream) - (write-char #\Newline stream) - (dolist (child (node-children node)) - (node-to-html child stream)) - (write-char #< stream) - (write-char #/ stream) - (when (node-ns node) - (write-string (node-ns node) stream) - (write-char #: stream)) - (write-string (node-name node) stream) - (write-char #> stream) - (write-char #\Newline stream)) - (progn (write-char #\Space stream) - (write-char #/ stream) - (write-char #> stream) - (write-char #\Newline stream)))) -
Added: branches/bos/bknr/src/xml/package.lisp =================================================================== --- branches/bos/bknr/src/xml/package.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/xml/package.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -0,0 +1,16 @@ +(in-package :cl-user) + +(defpackage :bknr.xml + (:use :cl + :cl-ppcre + :cl-interpol + :cxml-xmls) + (:shadowing-import-from :cl-interpol "QUOTE-META-CHARS") + (:export + #:node-children-nodes + #:find-child + #:find-children + #:node-string-body + #:node-attribute + #:node-child-string-body + #:node-to-html))
Added: branches/bos/bknr/src/xml/xml.lisp =================================================================== --- branches/bos/bknr/src/xml/xml.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/xml/xml.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -0,0 +1,126 @@ +(in-package :bknr.xml) + +(defun node-children-nodes (xml) + (remove-if-not #'consp (node-children xml))) + +(defun find-child (xml node-name) + (let ((children (node-children-nodes xml))) + (find node-name children :test #'string-equal :key #'node-name))) + +(defun find-children (xml node-name) + (let ((children (node-children-nodes xml))) + (find-all node-name children :test #'string-equal :key #'node-name))) + +(defun node-string-body (xml) + (let ((children (remove-if #'consp (node-children xml)))) + (if (every #'stringp children) + (apply #'concatenate 'string children) + (error "Some children are not strings")))) + +(defun node-attribute (xml attribute-name) + (cadr (assoc attribute-name (node-attrs xml) :test #'string-equal))) + +(defun node-child-string-body (xml node-name) + (let ((child (find-child xml node-name))) + (if (and child (consp child)) + (node-string-body child) + nil))) + +(defun node-to-html (node &optional (stream *standard-output*)) + (when (stringp node) + (write-string node) + (return-from node-to-html)) + (write-char #< stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #: stream)) + (write-string (node-name node) stream) + (loop for (key value) in (node-attrs node) + do (write-char #\Space stream) + (write-string key stream) + (write-char #= stream) + (write-char #" stream) + (write-string value stream) + (write-char #" stream)) + (if (node-children node) + (progn + (write-char #> stream) + (write-char #\Newline stream) + (dolist (child (node-children node)) + (node-to-html child stream)) + (write-char #< stream) + (write-char #/ stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #: stream)) + (write-string (node-name node) stream) + (write-char #> stream) + (write-char #\Newline stream)) + (progn (write-char #\Space stream) + (write-char #/ stream) + (write-char #> stream) + (write-char #\Newline stream)))) + +(in-package :bknr.xml) + +(defun node-children-nodes (xml) + (remove-if-not #'consp (node-children xml))) + +(defun find-child (xml node-name) + (let ((children (node-children-nodes xml))) + (find node-name children :test #'string-equal :key #'node-name))) + +(defun find-children (xml node-name) + (let ((children (node-children-nodes xml))) + (find-all node-name children :test #'string-equal :key #'node-name))) + +(defun node-string-body (xml) + (let ((children (remove-if #'consp (node-children xml)))) + (if (every #'stringp children) + (apply #'concatenate 'string children) + (error "Some children are not strings")))) + +(defun node-attribute (xml attribute-name) + (cadr (assoc attribute-name (node-attrs xml) :test #'string-equal))) + +(defun node-child-string-body (xml node-name) + (let ((child (find-child xml node-name))) + (if (and child (consp child)) + (node-string-body child) + nil))) + +(defun node-to-html (node &optional (stream *standard-output*)) + (when (stringp node) + (write-string node) + (return-from node-to-html)) + (write-char #< stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #: stream)) + (write-string (node-name node) stream) + (loop for (key value) in (node-attrs node) + do (write-char #\Space stream) + (write-string key stream) + (write-char #= stream) + (write-char #" stream) + (write-string value stream) + (write-char #" stream)) + (if (node-children node) + (progn + (write-char #> stream) + (write-char #\Newline stream) + (dolist (child (node-children node)) + (node-to-html child stream)) + (write-char #< stream) + (write-char #/ stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #: stream)) + (write-string (node-name node) stream) + (write-char #> stream) + (write-char #\Newline stream)) + (progn (write-char #\Space stream) + (write-char #/ stream) + (write-char #> stream) + (write-char #\Newline stream)))) +
Modified: branches/bos/bknr/src/xml-impex/package.lisp =================================================================== --- branches/bos/bknr/src/xml-impex/package.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/bknr/src/xml-impex/package.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -13,6 +13,7 @@ #+sbcl :sb-pcl :bknr.utils + :bknr.xml :bknr.indices)
(:export #:xml-class
Modified: branches/bos/projects/bos/worldpay-test/utils.lisp =================================================================== --- branches/bos/projects/bos/worldpay-test/utils.lisp 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/projects/bos/worldpay-test/utils.lisp 2007-10-03 01:20:42 UTC (rev 2178) @@ -260,17 +260,6 @@ ((funcall test i num) (append l (nreverse smaller)))))
-;;; from norvig -(defun find-all (item sequence &rest keyword-args - &key (test #'eql) test-not &allow-other-keys) - "Find all those elements of sequence that match item, - according to the keywords. Doesn't alter sequence." - (if test-not - (apply #'remove item sequence - :test-not (complement test-not) keyword-args) - (apply #'remove item sequence - :test (complement test) keyword-args))) - ;;; hash table (defun hash-to-list (hash &key (key #'cdr) (compare #'>) num) (let ((results (sort (loop for key being the hash-key of hash using (hash-value val)
Deleted: branches/bos/thirdparty/ironclad/digest.lisp.orig =================================================================== --- branches/bos/thirdparty/ironclad/digest.lisp.orig 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/thirdparty/ironclad/digest.lisp.orig 2007-10-03 01:20:42 UTC (rev 2178) @@ -1,196 +0,0 @@ -;;;; digest.lisp -- common functions for hashing - -(in-package :crypto) - - -;;; defining digest (hash) functions - -;;; general inlinable functions for implementing the higher-level functions - -(declaim (inline digest-sequence-body digest-stream-body digest-file-body)) - -(defun digest-sequence-body (sequence state-creation-fn - state-update-fn - state-finalize-fn - &key (start 0) end) - (declare (type (vector (unsigned-byte 8)) sequence) (type index start)) - (let ((state (funcall state-creation-fn))) - #+cmu - (lisp::with-array-data ((data sequence) (real-start start) (real-end end)) - (funcall state-update-fn state data - :start real-start :end (or real-end (length sequence)))) - #+sbcl - (sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end)) - (funcall state-update-fn state data - :start real-start :end (or real-end (length sequence)))) - #-(or cmu sbcl) - (let ((real-end (or end (length sequence)))) - (declare (type index real-end)) - (funcall state-update-fn state sequence - :start start :end (or real-end (length sequence)))) - (funcall state-finalize-fn state))) - -(eval-when (:compile-toplevel) -(defconstant +buffer-size+ (* 128 1024)) -) ; EVAL-WHEN - -(deftype buffer-index () `(integer 0 (,+buffer-size+))) - -(defun digest-stream-body (stream state-creation-fn - state-update-fn - state-finalize-fn) - (let ((state (funcall state-creation-fn))) - (cond - ((equal (stream-element-type stream) '(unsigned-byte 8)) - (let ((buffer (make-array +buffer-size+ - :element-type '(unsigned-byte 8)))) - (declare (type (simple-array (unsigned-byte 8) (#.+buffer-size+)) - buffer)) - (declare (dynamic-extent buffer)) - (loop for n-bytes of-type buffer-index = (read-sequence buffer stream) - do (funcall state-update-fn state buffer :end n-bytes) - until (< n-bytes +buffer-size+) - finally (return (funcall state-finalize-fn state))))) - (t - (error "Unsupported stream element-type ~S for stream ~S." - (stream-element-type stream) stream))))) - -(defun digest-file-body (pathname state-creation-fn - state-update-fn - state-finalize-fn) - (with-open-file (stream pathname :element-type '(unsigned-byte 8) - :direction :input - :if-does-not-exist :error) - (digest-stream-body stream state-creation-fn state-update-fn - state-finalize-fn))) - - -;;; high-level generic function drivers - -;;; These three functions are intended to be one-shot ways to digest -;;; an object of some kind. You could write these in terms of the more -;;; familiar digest interface below, but these are likely to be slightly -;;; more efficient, as well as more obvious about what you're trying to -;;; do. -(defgeneric digest-file (digest-name pathname) - (:documentation "Return the digest of PATHNAME using the algorithm DIGEST-NAME.")) - -(defgeneric digest-stream (digest-name stream) - (:documentation "Return the digest of STREAM using the algorithm DIGEST-NAME. -STREAM-ELEMENT-TYPE of STREAM should be (UNSIGNED-BYTE 8).")) - -(defgeneric digest-sequence (digest-name sequence &key start end) - (:documentation "Return the digest of the subsequence of SEQUENCE -specified by START and END using the algorithm DIGEST-NAME. For CMUCL -and SBCL, SEQUENCE can be any vector with an element-type of -(UNSIGNED-BYTE 8); for other implementations, SEQUENCE must be a -SIMPLE-ARRAY.")) - -;;; These four functions represent the common interface for digests in -;;; other crypto toolkits (OpenSSL, Botan, Python, etc.). You obtain -;;; some state object for a particular digest, you update it with some -;;; data, and then you get the actual digest. Flexibility is the name -;;; of the game with these functions. -(defgeneric make-digest (digest-name) - (:documentation "Return a digest object which uses the algorithm DIGEST-NAME.")) - -(defgeneric copy-digest (digest) - (:documentation "Return a copy of DIGEST. The copy is a deep copy, not a -shallow copy as might be returned by COPY-STRUCTURE.")) - -(defgeneric update-digest (digest sequence &key start end) - (:documentation "Update the internal state of DIGEST with the subsequence -of SEQUENCE specified by START and END. For CMUCL and SBCL, SEQUENCE -can be any vector with an element-type of (UNSIGNED-BYTE 8); for other -implementations, SEQUENCE must be a SIMPLE-ARRAY.")) - -(defgeneric produce-digest (digest) - (:documentation "Return the hash of the data processed by DIGEST so far. -This function does not modify the internal state of DIGEST.")) - - -;;; the digest-defining macro - -(defvar *supported-digests* nil) - -(defun list-all-digests () - (copy-seq *supported-digests*)) - -(defun digest-supported-p (name) - "Return T if the digest NAME is a valid digest name." - (member name *supported-digests*)) - -(defgeneric digest-length (digest) - (:documentation "Return the number of bytes in a digest generated by DIGEST.")) - -(defmacro defdigest (name &rest initargs) - (%defdigest name initargs)) - -(defun %defdigest (name initargs) - (let ((creation-function nil) - (copy-function nil) - (update-function nil) - (finalize-function nil) - (state-type nil) - (digest-length nil) - (digest-name (intern (string name) (find-package :keyword)))) - (loop for (arg value) in initargs - do - (case arg - (:creation-function - (if (not creation-function) - (setf creation-function value) - (error "Specified :CREATION-FUNCTION multiple times."))) - (:copy-function - (if (not copy-function) - (setf copy-function value) - (error "Specified :COPY-FUNCTION multiple times."))) - (:update-function - (if (not update-function) - (setf update-function value) - (error "Specified :UPDATE-FUNCTION multiple times."))) - (:finalize-function - (if (not finalize-function) - (setf finalize-function value) - (error "Specified :FINALIZE-FUNCTION multiple times."))) - (:state-type - (if (not state-type) - (setf state-type value) - (error "Specified :STATE-TYPE multiple times."))) - (:digest-length - (if (not digest-length) - (setf digest-length value) - (error "Specified :DIGEST-LENGTH multiple times.")))) - finally (if (and creation-function copy-function update-function - finalize-function state-type digest-length) - (return (generate-digest-forms digest-name state-type - digest-length - creation-function - copy-function update-function - finalize-function)) - (error "Didn't specify all required options for DEFDIGEST"))))) - -(defun generate-digest-forms (digest-name state-type digest-length - creation-function copy-function - update-function finalize-function) - `(progn - (push ,digest-name *supported-digests*) - (defmethod digest-length ((digest (eql ,digest-name))) - ,digest-length) - (defmethod digest-length ((digest ,state-type)) - ,digest-length) - (defmethod make-digest ((digest-name (eql ,digest-name))) - (,creation-function)) - (defmethod copy-digest ((digest ,state-type)) - (,copy-function digest)) - (defmethod update-digest ((digest ,state-type) sequence &key (start 0) end) - (,update-function digest sequence - :start start :end (or end (length sequence)))) - (defmethod produce-digest ((digest ,state-type)) - (,finalize-function (,copy-function digest))) - (defmethod digest-file ((digest-name (eql ,digest-name)) pathname) - (digest-file-body pathname #',creation-function #',update-function #',finalize-function)) - (defmethod digest-stream ((digest-name (eql ,digest-name)) stream) - (digest-stream-body stream #',creation-function #',update-function #',finalize-function)) - (defmethod digest-sequence ((digest-name (eql ,digest-name)) sequence &key (start 0) end) - (digest-sequence-body sequence #',creation-function #',update-function #',finalize-function :start start :end end))))
Deleted: branches/bos/thirdparty/ironclad/package.lisp.orig =================================================================== --- branches/bos/thirdparty/ironclad/package.lisp.orig 2007-10-02 10:54:15 UTC (rev 2177) +++ branches/bos/thirdparty/ironclad/package.lisp.orig 2007-10-03 01:20:42 UTC (rev 2178) @@ -1,28 +0,0 @@ -(defpackage :ironclad - (:use :cl) - (:nicknames :crypto) - (:export - ;; hash functions - #:digest-sequence #:digest-stream #:digest-file - #:make-digest #:copy-digest #:update-digest #:produce-digest - - ;; HMACs - #:make-hmac #:update-hmac #:hmac-digest - - ;; introspection - #:cipher-supported-p #:list-all-ciphers - #:digest-supported-p #:list-all-digests - #:mode-supported-p #:list-all-modes - #:block-length #:digest-length - - ;; high-level operators - #:make-cipher #:encrypt #:decrypt - - ;; classes - #:aes-context #:square-context #:blowfish-context #:idea-context - #:twofish-context - #:des-context #:cast5-context #:tea-context #:xtea-context - - ;; conditions - #:ironclad-error #:initialization-vector-not-supplied - #:invalid-initialization-vector #:invalid-key-length)) \ No newline at end of file