Page 1 of 1
newLISP Stable Maintenance Release v.10.4.3
Posted: Mon May 07, 2012 2:52 pm
by Lutz
Version 10.4.3 fixes two critical bugs when working with files.
Files and release notes:
http://www.newlisp.org/index.cgi?page=Downloads
Re: newLISP Stable Maintenance Release v.10.4.3
Posted: Tue May 08, 2012 9:32 am
by xytroxon
This code:
Code: Select all
(module "crypto.lsp")
(println (crypto:SHA1 "newLISP"))
(exit)
Crashes on Win 7:
Code: Select all
newLISP v.10.4.3 on Win32 IPv4/6 libffi, execute 'newlisp -h' for more info.
Problem signature:
Problem Event Name: APPCRASH
Application Name: newlisp.exe
Application Version: 0.0.0.0
Application Timestamp: 4fa6cce3
Fault Module Name: libeay32.dll
Fault Module Version: 0.9.8.8
Fault Module Timestamp: 48bef85f
Exception Code: c0000005
Exception Offset: 000beb50
OS Version: 6.1.7600.2.0.0.768.3
--xytroxon
Re: newLISP Stable Maintenance Release v.10.4.3
Posted: Tue May 08, 2012 1:02 pm
by Lutz
It's
(crypto:sha1 "newLISP") with lower-case sha1 not SHA1, the lower level imported function, which is only used internally in the module.
Code: Select all
> (crypto:sha1 "newLISP")
"554f4c8dedd3ff02db493f328793cca0de5987c1"
Re: newLISP Stable Maintenance Release v.10.4.3
Posted: Tue May 08, 2012 10:36 pm
by xytroxon
Thanks...
I saw in the "cryptp.lsp" source file:
Code: Select all
(import library "MD5")
(import library "RIPEMD160")
(import library "SHA1")
(import library "SHA256")
... and missed (the next line ;o):
Code: Select all
;; @syntax (crypto:md5 <string> <bool-raw>)
Late night coding and time for larger View panel fonts in FreeCommander!
http://en.wikipedia.org/wiki/FreeCommander
-- xytroxon
P.S.
1. Concern that this minor syntax error caused a system hang / newlisp.exe crash and not just issue a newlisp error message.
2. Would be handy to have all the standard module's html pages pre-installed in the Windows distro.
i.e. accessible from the Start -> All Programs -> newLISP just like "Manual and Reference", "Code Patterns", etc. are. (We Windows users need all the help we can get ;>)
Re: newLISP Stable Maintenance Release v.10.4.3
Posted: Thu Aug 23, 2012 9:38 am
by xytroxon
Hi Lutz!
This problem about drove me crazy, it only showed up rarely when decoding html base64 data strings...
(My previous late night crypto based "torture test" didn't catch it either ;o)
In PHP, base64 encoding an empty string returns an empty string...
While newLisp returns "===="
Code: Select all
>newlisp
newLISP v.10.4.3 on Win32 IPv4/6 libffi, execute 'newlisp -h' for more info.
> (base64-enc "")
"===="
>
From: RFC 4648
http://tools.ietf.org/html/rfc4648
10. Test Vectors
BASE64("") = "" <---- HELLO!!!
BASE64("f") = "Zg=="
BASE64("fo") = "Zm8="
BASE64("foo") = "Zm9v"
BASE64("foob") = "Zm9vYg=="
BASE64("fooba") = "Zm9vYmE="
BASE64("foobar") = "Zm9vYmFy"
-- xytroxon
Re: newLISP Stable Maintenance Release v.10.4.3
Posted: Fri Aug 24, 2012 3:10 am
by Lutz
changed in 10.4.4 using an optional flag:
Code: Select all
newLISP v.10.4.4 on OSX IPv4/6 UTF-8 libffi, execute 'newlisp -h' for more info.
> (base64-enc "")
"===="
> (base64-enc "" true) ; new in version 10.4.4
""
> (base64-dec "")
""
> (base64-dec "====")
""
>
Ps: the text-based command interface of the guiserver requires the empty string to be encoded as "====" . Although the test-cases in the RFC translate into "", I believe that "====" as encoding for the empty string is still ok. When decoding base64 padding chars "====" back, you get "" again.