diff --git a/rabbit.c5.release-info b/rabbit.c5.release-info new file mode 100644 index 0000000..395615d --- /dev/null +++ b/rabbit.c5.release-info @@ -0,0 +1,7 @@ +;; -*- scheme -*- + +(repo git "git://github.com/iraikov/chicken-rabbit.git") +(uri targz "https://github.com/iraikov/chicken-rabbit/tarball/{egg-release}") +(uri files-list "http://code.call-cc.org/files-list?egg={egg-name};egg-release={egg-release};chicken-release={chicken-release}" old-uri) + +(release "1.2") diff --git a/rabbit.egg b/rabbit.egg index 7da20a6..2240920 100644 --- a/rabbit.egg +++ b/rabbit.egg @@ -1,8 +1,12 @@ -;; -*- lisp-data -*- +;;;; -*- Scheme -*- + ((synopsis "Rabbit stream cipher.") (license "Public Domain") (category crypt) - (test-dependencies test) - (maintainer "Lilianna Smólska") + (dependencies datatype matchable yasos srfi-1) + (test-dependencies test srfi-1) + (maintainer "Ivan Raikov") (author "Martin Boesgaard, Mette Vesterager, Thomas Christensen and Erik Zenner") - (components (extension rabbit (source "rabbit.sld")))) + (components (extension rabbit)) + ) + diff --git a/rabbit.meta b/rabbit.meta new file mode 100644 index 0000000..7a52e1e --- /dev/null +++ b/rabbit.meta @@ -0,0 +1,25 @@ +;; -*- Hen -*- + +((egg "rabbit.egg") ; This should never change + + ; List here all the files that should be bundled as part of your egg. + + (files "rabbit.setup" "rabbit.meta" "rabbit.scm" "rabbitlib.c" "tests") + + ; Your egg's license: + + (license "Public Domain") + + ; Pick one from the list of categories (see below) for your egg and + ; enter it here. + + (category crypt) + + ; A list of eggs mpi depends on. + + (test-depends test) + + (maintainer "Ivan Raikov") + (author "Martin Boesgaard, Mette Vesterager, Thomas Christensen and Erik Zenner") + + (synopsis "Rabbit stream cipher")) diff --git a/rabbit.release-info b/rabbit.release-info index 3c9b7fa..828f9b8 100644 --- a/rabbit.release-info +++ b/rabbit.release-info @@ -1,4 +1,7 @@ -;; -*- lisp-data -*- -(repo git "git://git.linuxposting.xyz/afiw/chicken-rabbit.git") -(uri targz "https://git.linuxposting.xyz/afiw/chicken-rabbit/archive/{egg-release}.tar.gz") -(release "3.0") +;; -*- scheme -*- + +(repo git "git://github.com/iraikov/chicken-rabbit.git") +(uri targz "https://github.com/iraikov/chicken-rabbit/tarball/{egg-release}") +(uri files-list "http://code.call-cc.org/files-list?egg={egg-name};egg-release={egg-release};chicken-release={chicken-release}" old-uri) + +(release "v1.1") diff --git a/rabbit.scm b/rabbit.scm index 7fcfd67..7f3fb98 100644 --- a/rabbit.scm +++ b/rabbit.scm @@ -6,46 +6,61 @@ ;; Based on lambdanative rabbit lib, ported to Chicken Scheme by Ivan Raikov -(define debuglevel (make-parameter 0)) -(define (logger level . x) - (if (>= (debuglevel) level) (apply printf (append (list "rabbit: ") x)))) +(module rabbit + + (debuglevel make-context destroy-context! encode! decode!) + + (import scheme (chicken base) (chicken foreign) (chicken blob) (chicken format)) + + (define debuglevel (make-parameter 0)) + (define (logger level . x) + (if (>= (debuglevel) level) (apply printf (append (list "rabbit: ") x)))) + #> -#define C_bytevector_length(x) (C_header_size(x)) +#define C_bytevector_length(x) (C_header_size(x)) #include "rabbitlib.c" <# -(define (make-context key) ; key must be at least 24 bytes - (logger 1 "make-context " (utf8->string key)) + +(define (make-context key) ;; key must be at least 24 bytes + (logger 1 "make-context " (blob->string key)) ((foreign-safe-lambda* nonnull-c-pointer ((scheme-object key)) -#<