(type egg)
(signature "rabbit egg")
(timestamp 1612269487)
(sxml ((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/rabbit" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.") (tags "egg")) (section 2 "rabbit" (toc)) (section 2 "Usage" (p "(require-extension rabbit)")) (section 2 "Documentation" (p "The " (tt "rabbit") " library is an implementation of the " (link "https://en.wikipedia.org/wiki/Rabbit_%28cipher%29" "Rabbit stream cipher") ".") (p "Procedure " (tt "rabbit-make") " creates an encryption context:") (def (sig (procedure "rabbit-make:: KEY -> CTX" (id rabbit-make))) (p "where " (tt "KEY") " is a blob containing the encryption key.")) (def (sig (procedure "rabbit-destroy!:: CTX -> VOID" (id rabbit-destroy!))) (p "Destroys the encryption context.")) (def (sig (procedure "rabbit-encode!:: CTX * BLOB -> BLOB " (id rabbit-encode!))) (p "Encrypts the given blob. This procedure modifies its argument and returns the modified blob.")) (def (sig (procedure "rabbit-decode!:: CTX * BLOB -> BLOB" (id rabbit-decode!))) (p "Decrypts the given blob. This procedure modifies its argument and returns the modified blob."))) (section 2 "Examples" (pre "(use rabbit)\n(let* ((key (string->blob \"password\"))\n       (data (string->blob \"important data\"))\n       (ctx (rabbit-make key)))\n  (rabbit-encode! ctx data))")) (section 2 "About this egg" (section 3 "Author" (p (int-link "/users/ivan-raikov" "Ivan Raikov"))) (section 3 "Version history" (dl (dt "1.0") (dd "Initial release"))) (section 3 "License" (p "Martin Boesgaard, Mette Vesterager, Thomas Christensen and Erik Zenner; adapted to Chicken Scheme by " (int-link "/users/ivan-raikov" "Ivan Raikov") ".") (pre "\nThis library is released in the public domain.")))))
