prbfish.so Blowfish
prgdbm.so GDBM
prmcrypt.so Mcrypt
- prmd5.so MD5
- prmhash.so Mhash
prx11.so X11, X11-Screen
prpgsql.so PGSQL
prdb4.so
+mit-scheme-pucked (9.2.11) birchwood; urgency=low
+
+ * New upstream. Removes md5 and mhash plugins.
+
+ -- Matt Birkholz <matt@birchwood-abbey.net> Sun, 24 Dec 2017 12:00:00 -0700
+
mit-scheme-pucked (9.2.10) birchwood; urgency=low
* Improved support for upgrades. Typo in user manual.
@code{x11-screen}.
@item
-The @code{(runtime gdbm)} and @code{(runtime x-graphics)} packages
-were removed. All of their bindings can now be found in the
-@code{(gdbm)} and @code{(x11 graphics)} packages. Thus @code{(runtime
-gdbm)} should be replaced with @code{(gdbm)} in package descriptions,
-and a @code{(global-definitions gdbm/)} line added. Similar
-changes are needed if you are using @code{(runtime x-graphics)}.
-
-One original binding cannot be found in the new packages:
-@code{gdbm-available?}. Generally, @code{-available?} procedures are
+The @code{(runtime blowfish)}, @code{(runtime gdbm)} and
+@code{(runtime x-graphics)} packages were removed. All of their
+bindings can now be found in the @code{(blowfish)}, @code{(gdbm)} and
+@code{(x11 graphics)} packages. Thus @code{(runtime blowfish)} should
+be replaced with @code{(blowfish)} in package descriptions, and a
+@code{(global-definitions blowfish/)} line added. Similar changes are
+needed if you are using @code{(runtime gdbm)} or @code{(runtime
+x-graphics)}.
+
+Two original bindings cannot be found in the new packages:
+@code{blowfish-available?} and @code{gdbm-available?}.
+Generally, @code{-available?} procedures are
not supported. Plugins are unknown (cannot provide such procedures)
until @emph{after} they successfully load (at which point such
procedures are moot). Thus something like
-@code{(gdbm-available?)} should be replaced with
-@code{(plugin-available? "gdbm")}.
+@code{(blowfish-available?)} should be replaced with
+@code{(plugin-available? "blowfish")}.
@item
-The @code{(runtime crypto)} and @code{(runtime blowfish)} packages are
-provided but deprecated. Their bindings are unassigned until
-corresponding plugins are loaded. When a band is restored these
-bindings are unassigned again. Thus a restored thread using them will
-quickly signal an error and can be aborted or restarted as
-appropriate. Two bindings, @code{blowfish-available?} and
-@code{mcrypt-available?} are assigned procedures that autoload the
-appropriate options. A restarted thread is assumed to begin again
-with a call to one of these.
+The @code{(runtime crypto)} package is provided but deprecated. Its
+bindings are unassigned until the corresponding plugin is loaded.
+When a band is restored these bindings are unassigned again. Thus a
+restored thread using them will quickly signal an error and can be
+aborted or restarted as appropriate. An @code{mcrypt-available?}
+binding is assigned a procedure that autoloads the mcrypt option. A
+restarted thread is assumed to begin again with a call to
+@code{mcrypt-available?} (or @code{load-option}).
@item
Edwin has had a number of screen procedures turned into SOS generic
DEFAULT_SUBDIRS=( \
6001 \
- blowfish \
compiler \
cref \
ffi \
- gdbm \
- mcrypt \
microcode \
runtime \
sf \
TESTS = blowfish-check.sh
CLEANFILES += test
+check-local:
+ ./check-doc.sh
+
tags: tags-am
./tags-fix.sh blowfish
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
02110-1301, USA.
+mit-scheme-pucked-blowfish 0.2.3 - Matt Birkholz, 2017-12-26
+============================================================
+
+Upstream includes new blowfish tests.
+
mit-scheme-pucked-blowfish 0.2.2 - Matt Birkholz, 2017-11-06
============================================================
+++ /dev/null
-#| -*-Scheme-*-
-
-Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
- 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
- 2017 Massachusetts Institute of Technology
-
-This file is part of MIT/GNU Scheme.
-
-MIT/GNU Scheme is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-MIT/GNU Scheme is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with MIT/GNU Scheme; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
-USA.
-
-|#
-
-;;;; Test the BLOWFISH option.
-
-(let ((sample (string->utf8 "Some text to encrypt and decrypt.")))
- (call-with-binary-output-file "test"
- (lambda (output)
- (blowfish-encrypt-port (open-input-bytevector sample)
- output
- (string->utf8 "secret")
- (write-blowfish-file-header output)
- #t)))
- (let ((read-back
- (call-with-binary-input-file "test"
- (lambda (input)
- (call-with-output-bytevector
- (lambda (output)
- (blowfish-encrypt-port input output (string->utf8 "secret")
- (read-blowfish-file-header input)
- #f)))))))
- (if (not (bytevector=? sample read-back))
- (error "sample did not decrypt correctly"))))
\ No newline at end of file
set -e
${MIT_SCHEME_EXE} --prepend-library . <<\EOF
(load-option 'BLOWFISH)
-(load "blowfish-check" (->environment '(blowfish)))
+(load "blowfish-test" (->environment '(blowfish)))
EOF
;;;; Tests of Blowfish
-(define (define-bf-test name procedure)
- (if (blowfish-available?)
- (define-test name procedure)))
-
-(define (define-variable-key-test i c)
+(define (variable-key-test i c)
(define k24
#u8(#xF0 #xE1 #xD2 #xC3 #xB4 #xA5 #x96 #x87
#x78 #x69 #x5A #x4B #x3C #x2D #x1E #x0F
(define p24 #u8(#xFE #xDC #xBA #x98 #x76 #x54 #x32 #x10))
(let ((k (bytevector-copy k24 0 i))
(p p24))
- (define-bf-test (symbol 'VARIABLE-KEY ': i ': 'ENCRYPT)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (buf (make-bytevector 8)))
- (blowfish-ecb p buf bf #t)
- (assert-equal buf c))))
- (define-bf-test (symbol 'VARIABLE-KEY ': i ': 'DECRYPT)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (buf (make-bytevector 8)))
- (blowfish-ecb c buf bf #f)
- (assert-equal buf p))))))
+ (let ((bf (blowfish-set-key k))
+ (buf (make-bytevector 8)))
+ (blowfish-ecb p buf bf #t)
+ (if (not (equal? buf c))
+ (error "Test failed:" (symbol 'VARIABLE-KEY ': i ': 'ENCRYPT))))
+ (let ((bf (blowfish-set-key k))
+ (buf (make-bytevector 8)))
+ (blowfish-ecb c buf bf #f)
+ (if (not (equal? buf p))
+ (error "Test failed:" (symbol 'VARIABLE-KEY ': i ': 'DECRYPT))))))
-(define-variable-key-test 1 #u8(#xF9 #xAD #x59 #x7C #x49 #xDB #x00 #x5E))
-(define-variable-key-test 2 #u8(#xE9 #x1D #x21 #xC1 #xD9 #x61 #xA6 #xD6))
-(define-variable-key-test 3 #u8(#xE9 #xC2 #xB7 #x0A #x1B #xC6 #x5C #xF3))
-(define-variable-key-test 4 #u8(#xBE #x1E #x63 #x94 #x08 #x64 #x0F #x05))
-(define-variable-key-test 5 #u8(#xB3 #x9E #x44 #x48 #x1B #xDB #x1E #x6E))
-(define-variable-key-test 6 #u8(#x94 #x57 #xAA #x83 #xB1 #x92 #x8C #x0D))
-(define-variable-key-test 7 #u8(#x8B #xB7 #x70 #x32 #xF9 #x60 #x62 #x9D))
-(define-variable-key-test 8 #u8(#xE8 #x7A #x24 #x4E #x2C #xC8 #x5E #x82))
-(define-variable-key-test 9 #u8(#x15 #x75 #x0E #x7A #x4F #x4E #xC5 #x77))
-(define-variable-key-test 10 #u8(#x12 #x2B #xA7 #x0B #x3A #xB6 #x4A #xE0))
-(define-variable-key-test 11 #u8(#x3A #x83 #x3C #x9A #xFF #xC5 #x37 #xF6))
-(define-variable-key-test 12 #u8(#x94 #x09 #xDA #x87 #xA9 #x0F #x6B #xF2))
-(define-variable-key-test 13 #u8(#x88 #x4F #x80 #x62 #x50 #x60 #xB8 #xB4))
-(define-variable-key-test 14 #u8(#x1F #x85 #x03 #x1C #x19 #xE1 #x19 #x68))
-(define-variable-key-test 15 #u8(#x79 #xD9 #x37 #x3A #x71 #x4C #xA3 #x4F))
-(define-variable-key-test 16 #u8(#x93 #x14 #x28 #x87 #xEE #x3B #xE1 #x5C))
-(define-variable-key-test 17 #u8(#x03 #x42 #x9E #x83 #x8C #xE2 #xD1 #x4B))
-(define-variable-key-test 18 #u8(#xA4 #x29 #x9E #x27 #x46 #x9F #xF6 #x7B))
-(define-variable-key-test 19 #u8(#xAF #xD5 #xAE #xD1 #xC1 #xBC #x96 #xA8))
-(define-variable-key-test 20 #u8(#x10 #x85 #x1C #x0E #x38 #x58 #xDA #x9F))
-(define-variable-key-test 21 #u8(#xE6 #xF5 #x1E #xD7 #x9B #x9D #xB2 #x1F))
-(define-variable-key-test 22 #u8(#x64 #xA6 #xE1 #x4A #xFD #x36 #xB4 #x6F))
-(define-variable-key-test 23 #u8(#x80 #xC7 #xD7 #xD4 #x5A #x54 #x79 #xAD))
-(define-variable-key-test 24 #u8(#x05 #x04 #x4B #x62 #xFA #x52 #xD0 #x80))
+(variable-key-test 1 #u8(#xF9 #xAD #x59 #x7C #x49 #xDB #x00 #x5E))
+(variable-key-test 2 #u8(#xE9 #x1D #x21 #xC1 #xD9 #x61 #xA6 #xD6))
+(variable-key-test 3 #u8(#xE9 #xC2 #xB7 #x0A #x1B #xC6 #x5C #xF3))
+(variable-key-test 4 #u8(#xBE #x1E #x63 #x94 #x08 #x64 #x0F #x05))
+(variable-key-test 5 #u8(#xB3 #x9E #x44 #x48 #x1B #xDB #x1E #x6E))
+(variable-key-test 6 #u8(#x94 #x57 #xAA #x83 #xB1 #x92 #x8C #x0D))
+(variable-key-test 7 #u8(#x8B #xB7 #x70 #x32 #xF9 #x60 #x62 #x9D))
+(variable-key-test 8 #u8(#xE8 #x7A #x24 #x4E #x2C #xC8 #x5E #x82))
+(variable-key-test 9 #u8(#x15 #x75 #x0E #x7A #x4F #x4E #xC5 #x77))
+(variable-key-test 10 #u8(#x12 #x2B #xA7 #x0B #x3A #xB6 #x4A #xE0))
+(variable-key-test 11 #u8(#x3A #x83 #x3C #x9A #xFF #xC5 #x37 #xF6))
+(variable-key-test 12 #u8(#x94 #x09 #xDA #x87 #xA9 #x0F #x6B #xF2))
+(variable-key-test 13 #u8(#x88 #x4F #x80 #x62 #x50 #x60 #xB8 #xB4))
+(variable-key-test 14 #u8(#x1F #x85 #x03 #x1C #x19 #xE1 #x19 #x68))
+(variable-key-test 15 #u8(#x79 #xD9 #x37 #x3A #x71 #x4C #xA3 #x4F))
+(variable-key-test 16 #u8(#x93 #x14 #x28 #x87 #xEE #x3B #xE1 #x5C))
+(variable-key-test 17 #u8(#x03 #x42 #x9E #x83 #x8C #xE2 #xD1 #x4B))
+(variable-key-test 18 #u8(#xA4 #x29 #x9E #x27 #x46 #x9F #xF6 #x7B))
+(variable-key-test 19 #u8(#xAF #xD5 #xAE #xD1 #xC1 #xBC #x96 #xA8))
+(variable-key-test 20 #u8(#x10 #x85 #x1C #x0E #x38 #x58 #xDA #x9F))
+(variable-key-test 21 #u8(#xE6 #xF5 #x1E #xD7 #x9B #x9D #xB2 #x1F))
+(variable-key-test 22 #u8(#x64 #xA6 #xE1 #x4A #xFD #x36 #xB4 #x6F))
+(variable-key-test 23 #u8(#x80 #xC7 #xD7 #xD4 #x5A #x54 #x79 #xAD))
+(variable-key-test 24 #u8(#x05 #x04 #x4B #x62 #xFA #x52 #xD0 #x80))
((lambda (ks ps cs)
((lambda (doit) (for-each doit (iota (length ks)) ks ps cs))
(lambda (i k p c)
- (define-bf-test (symbol 'ENCRYPT ': i)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (buf (make-bytevector 8)))
- (blowfish-ecb p buf bf #t)
- (assert-equal buf c))))
- (define-bf-test (symbol 'DECRYPT ': i)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (buf (make-bytevector 8)))
- (blowfish-ecb c buf bf #f)
- (assert-equal buf p)))))))
+ (let ((bf (blowfish-set-key k))
+ (buf (make-bytevector 8)))
+ (blowfish-ecb p buf bf #t)
+ (if (not (equal? buf c))
+ (error "Test failed:" (symbol 'ENCRYPT ': i))))
+ (let ((bf (blowfish-set-key k))
+ (buf (make-bytevector 8)))
+ (blowfish-ecb c buf bf #f)
+ (if (not (equal? buf p))
+ (error "Test failed:" (symbol 'DECRYPT ': i)))))))
+
'(#u8(#x00 #x00 #x00 #x00 #x00 #x00 #x00 #x00)
#u8(#xFF #xFF #xFF #xFF #xFF #xFF #xFF #xFF)
#u8(#x30 #x00 #x00 #x00 #x00 #x00 #x00 #x00)
#u8(#x24 #x59 #x46 #x88 #x57 #x54 #x36 #x9A)
#u8(#x6B #x5C #x5A #x9C #x5D #x9E #x0A #x5A)))
-(define (define-cbc-test i c)
+(define (cbc-test i c)
(define k #u8(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))
(define iv #u8(7 6 5 4 3 2 1 0))
(define p #u8(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23))
(let ((p (bytevector-copy p 0 i)))
- (define-bf-test (symbol 'CBC:ENCRYPT ': i)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (iv (bytevector-copy iv))
- (buf (make-bytevector i)))
- (blowfish-cbc p buf bf iv #t)
- (assert-equal buf c)
- (assert-equal iv (bytevector-copy buf (- i 8) i)))))
- (define-bf-test (symbol 'CBC:DECRYPT ': i)
- (lambda ()
- (let ((bf (blowfish-set-key k))
- (iv (bytevector-copy iv))
- (buf (make-bytevector i)))
- (blowfish-cbc c buf bf iv #f)
- (assert-equal buf p)
- (assert-equal iv (bytevector-copy c (- i 8) i)))))))
+ (let ((bf (blowfish-set-key k))
+ (iv (bytevector-copy iv))
+ (buf (make-bytevector i)))
+ (blowfish-cbc p buf bf iv #t)
+ (if (not (and (equal? buf c)
+ (equal? iv (bytevector-copy buf (- i 8) i))))
+ (error "Test failed:" (symbol 'CBC:ENCRYPT ': i))))
+ (let ((bf (blowfish-set-key k))
+ (iv (bytevector-copy iv))
+ (buf (make-bytevector i)))
+ (blowfish-cbc c buf bf iv #f)
+ (if (not (and (equal? buf p)
+ (equal? iv (bytevector-copy c (- i 8) i))))
+ (error "Test failed:" (symbol 'CBC:DECRYPT ': i))))))
-(define-cbc-test 8
+(cbc-test 8
#u8(#x90 #x6a #xb9 #x17 #xb0 #x9f #xcd #x3a))
-(define-cbc-test 16
+(cbc-test 16
#u8(#x90 #x6a #xb9 #x17 #xb0 #x9f #xcd #x3a
#x2b #x41 #x4d #x69 #xbb #xa0 #xc0 #xdf))
-(define-cbc-test 24
+(cbc-test 24
#u8(#x90 #x6a #xb9 #x17 #xb0 #x9f #xcd #x3a
#x2b #x41 #x4d #x69 #xbb #xa0 #xc0 #xdf
- #xed #x69 #x9e #xca #x55 #x13 #xc2 #x7e))
+ #xed #x69 #x9e #xca #x55 #x13 #xc2 #x7e))
\ No newline at end of file
(define-package (blowfish)
(files "blowfish")
(parent ())
- (export (blowfish global)
+ (export ()
blowfish-cbc
blowfish-cfb64
blowfish-ecb
blowfish-set-key
compute-blowfish-init-vector
read-blowfish-file-header
- write-blowfish-file-header))
-
-(define-package (blowfish global)
- ;; Just to get cref to analyze whether all "exports" are defined.
- )
\ No newline at end of file
+ write-blowfish-file-header))
\ No newline at end of file
(declare (usual-integrations))
\f
-(define (import-blowfish)
- (let ((target-environment (nearest-repl/environment))
- (source-environment (->environment '(blowfish))))
- (for-each (lambda (name)
- (link-variables target-environment name
- source-environment name))
- '(blowfish-cbc
- blowfish-cfb64
- blowfish-ecb
- blowfish-encrypt-port
- blowfish-file?
- blowfish-ofb64
- blowfish-set-key
- compute-blowfish-init-vector
- read-blowfish-file-header
- write-blowfish-file-header))))
-
(C-include "blowfish")
(define (blowfish-set-key bytes)
--- /dev/null
+#!/bin/bash
+# -*-Scheme-*-
+#
+# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
+# 2016, 2017 Matthew Birkholz
+#
+# This file is part of a Blowfish plugin for MIT/GNU Scheme Pucked.
+#
+# This plugin is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This plugin is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this plugin; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# Check the documentation.
+
+set -e
+: ${MIT_SCHEME_EXE=mit-scheme}
+${MIT_SCHEME_EXE} --batch-mode <<\EOF
+
+(let ((pkgset "blowfish")
+ (texi "blowfish.texi")
+ (pkg '(blowfish)))
+ ;; Check that every binding exported to () or PKG has a
+ ;; corresponding @deffn in TEXI.
+
+ (parameterize ((param:suppress-loading-message? #t))
+ (load-option 'cref)
+ (load-option 'regular-expression))
+ (define read-package-model)
+ (define pmodel/packages)
+ (define package/name)
+ (define package/bindings)
+ (define package/links)
+ (define link/source)
+ (define link/destination)
+ (define binding/package)
+ (define binding/name)
+ (let ((cref (->environment '(cross-reference))))
+ (set! read-package-model (access read-package-model cref))
+ (set! pmodel/packages (access pmodel/packages cref))
+ (set! package/name (access package/name cref))
+ (set! package/bindings (access package/bindings cref))
+ (set! package/links (access package/links cref))
+ (set! link/source (access link/source cref))
+ (set! link/destination (access link/destination cref))
+ (set! binding/package (access binding/package cref))
+ (set! binding/name (access binding/name cref)))
+
+ (define (deffn-name line)
+ (let ((regs (re-string-match
+ (string-append "@deffnx?"
+ " \\(Class\\|Procedure\\|{Generic Procedure}\\)"
+ " \\([-A-Za-z0-9<>?!+./:]+\\)")
+ line)))
+ (if regs
+ (intern (re-match-extract line regs 2))
+ (error "Could not find binding name:" line))))
+
+ (define (texinfo-deffns lines)
+ (let ((len (vector-length lines)))
+ (let loop ((i 0) (deffns '()))
+ (if (fix:< i len)
+ (let ((line (vector-ref lines i)))
+ (loop (fix:1+ i)
+ (if (string-prefix? "@deffn" line)
+ (cons (deffn-name line) deffns)
+ deffns)))
+ deffns))))
+
+ (define (read-lines port)
+ (let loop ()
+ (let ((line (read-line port)))
+ (if (eof-object? line)
+ '()
+ (cons line (loop))))))
+
+ (define (pmodel/find-package pmodel package-name)
+ (find-matching-item (pmodel/packages pmodel)
+ (lambda (p) (equal? package-name (package/name p)))))
+
+ (define (pmodel/global-exports pmodel)
+ (define (global-exports package)
+ (append-map! (lambda (link)
+ (if (eq? '() (package/name
+ (binding/package
+ (link/destination link))))
+ (list (binding/name (link/destination link)))
+ '()))
+ (package/links package)))
+ (append-map! global-exports (pmodel/packages pmodel)))
+
+ (define (pmodel/package-bindings pmodel package-name)
+ (let ((package (pmodel/find-package pmodel package-name)))
+ (if package
+ (map binding/name (package/bindings package))
+ (error "No such package:" package-name))))
+
+ (define (duplicates listset)
+ (let loop ((items listset) (duplicates '()))
+ (cond ((null? items)
+ (reverse! duplicates))
+ ((memq (car items) (cdr items))
+ (if (memq (car items) duplicates)
+ (loop (cdr items) duplicates)
+ (loop (cdr items) (cons (car items) duplicates))))
+ (else
+ (loop (cdr items) duplicates)))))
+
+ (define (minus set1 set2)
+ (let loop ((items set1) (difference '()))
+ (cond ((null? items)
+ difference)
+ ((memq (car items) set2)
+ (loop (cdr items) difference))
+ (else
+ (loop (cdr items) (cons (car items) difference))))))
+
+ (define (check)
+ (let* ((texinfo (list->vector (call-with-input-file texi read-lines)))
+ (deffns (texinfo-deffns texinfo))
+ (dups (duplicates deffns))
+ (pmodel (read-package-model pkgset microcode-id/operating-system))
+ (bindings (append (pmodel/global-exports pmodel)
+ (if (null? pkg)
+ '()
+ (pmodel/package-bindings pmodel pkg))))
+ (missing (minus bindings deffns))
+ (extras (minus deffns bindings)))
+ (if (not (null? dups))
+ (for-each (lambda (name) (warn "multiple-descriptions:" name)) dups))
+ (if (not (null? extras))
+ (for-each (lambda (name) (warn "not bound:" name)) extras))
+ (if (not (null? missing))
+ (for-each (lambda (name) (warn "not documented:" name)) missing))))
+
+ (check)
+ )
+EOF
AC_PREREQ([2.69])
AC_INIT([MIT/GNU Scheme Pucked blowfish plugin],
- [0.2.2],
+ [0.2.3],
[matt@birchwood-abbey.net],
[mit-scheme-pucked-blowfish])
AC_CONFIG_SRCDIR([blowfish.pkg])
+mit-scheme-pucked-blowfish (0.2.3) birchwood; urgency=low
+
+ * Upstream includes new blowfish tests.
+
+ -- Matt Birkholz <matt@birchwood-abbey.net> Tue, 26 Dec 2017 17:00:00 -0700
+
mit-scheme-pucked-blowfish (0.2.2) birchwood; urgency=low
* Upstream now sports a texinfo manual, scraped from the OpenSSL
(lambda ()
(load-package-set "blowfish")))
-(add-subsystem-identification! "Blowfish" '(0 2 2))
\ No newline at end of file
+(add-subsystem-identification! "Blowfish" '(0 2 3))
\ No newline at end of file
@item $cmd src/runtime/
The Scheme code that wrapped the microcode modules was removed,
-including files @file{berkeley-db.scm}, @file{gdbm.scm},
+including files @file{blowfish.scm}, @file{berkeley-db.scm}, @file{gdbm.scm},
@file{pgsql.scm} and @file{x11graph.scm}. The packages @code{(runtime
-x-graphics)}, @code{(runtime gdbm)} and @code{(runtime postgresql)}
+blowfish)}, @code{(runtime x-graphics)},
+@code{(runtime gdbm)} and @code{(runtime postgresql)}
were removed. The @code{--edit} command line argument handler was
stolen from Edwin as well as the @code{edit}, @code{edwin} and
@code{spawn-edwin} procedures, which now autoload Edwin. Pucked
--- /dev/null
+Document: mit-scheme-pucked-gdbm
+Title: MIT/GNU Scheme Pucked GDBM Manual
+Author: Matt Birkholz
+Abstract: The GDBM plugin for MIT/GNU Scheme Pucked wraps the
+GNU Database Manager (libgdbm) API.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/mit-scheme-pucked/html/gdbm.html
+Files: /usr/share/doc/mit-scheme-pucked/html/gdbm.html
+
+Format: PDF
+Files: /usr/share/doc/mit-scheme-pucked/pdf/gdbm.pdf.gz
%: debian/postinst debian/prerm
dh $@
+override_dh_auto_install: debian/postinst debian/prerm
+ dh_auto_install -- install-html install-pdf
+
debian/%: debian/%.in
sed -e 's|@SCMDOCDIR@|/usr/share/doc/mit-scheme-pucked|g' \
-e 's|@INFODIR@|/usr/share/info|g' \
/* Define to 1 if you have the <assert.h> header file. */
#define HAVE_ASSERT_H 1
-/* Define if you have the <blowfish.h> header file. */
-#define HAVE_BLOWFISH_H 1
-
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
+++ /dev/null
-#| -*-Scheme-*-
-
-Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
- 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
- 2017 Massachusetts Institute of Technology
-
-This file is part of MIT/GNU Scheme.
-
-MIT/GNU Scheme is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or (at
-your option) any later version.
-
-MIT/GNU Scheme is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with MIT/GNU Scheme; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
-USA.
-
-|#
-
-;;;; Interface to Blowfish
-;;; package: (runtime blowfish)
-
-(declare (usual-integrations))
-\f
-;;; This package now autoloads the blowfish plugin, which updates the
-;;; bindings during blowfish-available?. During a restore the
-;;; bindings are un-assigned. Restored threads in the midst of using
-;;; the blowfish library thus quickly signal unassigned and can
-;;; restart or abort as appropriate. It is assumed a restart begins
-;;; again with a call to blowfish-available?, thus autoloading the
-;;; plugin in the restored world.
-
-(define loaded? #f)
-
-(define (blowfish-available?)
- (or loaded?
- (and (plugin-available? "blowfish")
- (begin
- (load-option 'blowfish)
- (export-blowfish!)
- (set! loaded? #t)
- #t))))
-
-(define names
- '(blowfish-cbc
- blowfish-cfb64
- blowfish-ecb
- blowfish-encrypt-port
- blowfish-file?
- blowfish-ofb64
- blowfish-set-key
- compute-blowfish-init-vector
- read-blowfish-file-header
- write-blowfish-file-header))
-
-(define (export-blowfish!)
- (let ((src (->environment '(blowfish)))
- (dst (->environment '(runtime blowfish))))
- (for-each (lambda (name)
- (environment-assign! dst name (environment-lookup src name)))
- names)))
-
-(define (reset-blowfish!)
- (set! loaded? #f)
- (let ((env (->environment '(runtime blowfish))))
- (for-each (lambda (name) (environment-assign! env name #!default))
- names)))
-
-(define blowfish-cbc)
-(define blowfish-cfb64)
-(define blowfish-ecb)
-(define blowfish-encrypt-port)
-(define blowfish-file?)
-(define blowfish-ofb64)
-(define blowfish-set-key)
-(define compute-blowfish-init-vector)
-(define read-blowfish-file-header)
-(define write-blowfish-file-header)
-
-(add-event-receiver! event:after-restart reset-blowfish!)
\ No newline at end of file
("apropos" (runtime apropos))
("arith" (runtime number))
("bitstr" (runtime bit-string))
- ("blowfish" (runtime blowfish))
("boole" (runtime boolean))
("boot" (runtime boot-definitions))
("char" (runtime character))
unsigned-integer->bit-string
write-bits!))
-(define-package (runtime blowfish)
- (files "blowfish")
- (parent (runtime))
- (export ()
- blowfish-available?
- blowfish-cbc
- blowfish-cfb64
- blowfish-ecb
- blowfish-encrypt-port
- blowfish-file?
- blowfish-ofb64
- blowfish-set-key
- compute-blowfish-init-vector
- read-blowfish-file-header
- write-blowfish-file-header))
-
(define-package (runtime boolean)
(files "boole")
(parent (runtime))
(define-package (runtime crypto)
(files "crypto")
(parent (runtime))
- (export ()
+ (export () deprecated:crypto
mcrypt-algorithm-name
mcrypt-algorithm-names
mcrypt-available?
"microcode/test-keccak"
"microcode/test-lookup"
"runtime/test-arith"
- "runtime/test-blowfish"
"runtime/test-bytevector"
("runtime/test-char" (runtime))
("runtime/test-char-set" (runtime character-set))