with that info, I've changed 2 lines on wiki: sslp =: IFWIN pick ''; '/',~ jpath '~bin' NB. with J802. cut this line if you wish to point to downloaded folder OPENSSL =: sslp , (IFIOS + (;: 'Win Linux Android Darwin') i. <UNAME_z_) pick 'libeay32.dll '; (2 $ <'libssl.so.1.0.0 '), (2 $ <'/usr/lib/libssl.dylib ')
----- Original Message ----- From: bill lam <bbill....@gmail.com> To: programm...@jsoftware.com Cc: Sent: Saturday, September 6, 2014 1:44 PM Subject: Re: [Jprogramming] md5 is not md5 This is multi-arch. if we just use the bare file name, OPENSSL=: 'libssl.so.1.0.0' it will work on 32-bit and 64-bit, and also works for 32-bit process on 64-bit host. should also works on raspi even the prefix would be /lib/arm-linux-gnueabihf/ all J8 addons use this scheme for shared objects. Сб, 06 сен 2014, Raul Miller написал(а): > This works on that machine: > > OPENSSL=: '/lib/x86_64-linux-gnu/libssl.so.1.0.0' > sslSha256 =: (IFWIN {:: ' SHA256 > + x *c x *c';'SHA256 > x *c x > *c') ssl NB. SHA256 i *c l *c' ssl > s256=: 3 : 0 > sslSha256 (y);(#y);md=. 32#' ' > md > ) > hexhash =: ( [: ,@:hfd a.i.])@: > > s256 hexhash 'The quick brown fox jumps over the lazy dog' > d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 > > However, if I try > OPENSSL=:'libssl.so' > sslSha256 =: (IFWIN {:: ' SHA256 > + x *c x *c';'SHA256 > x *c x > *c') ssl NB. SHA256 i *c l *c' ssl > s256 hexhash 'The quick brown fox jumps over the lazy dog' > |domain error: cd > > Similarly: > OPENSSL=:'/usr/lib/libssl.so' > sslSha256 =: (IFWIN {:: ' SHA256 > + x *c x *c';'SHA256 > x *c x > *c') ssl NB. SHA256 i *c l *c' ssl > s256 hexhash 'The quick brown fox jumps over the lazy dog' > |domain error: cd > > Speaking more generally, the motivation behind having the very > specific /lib/x86_64-linux-gnu/libssl.so.1.0.0 is so that the 64 bit > code and the 32 bit code can coexist, and the reason for not > supporting the more generic /usr/lib/libssl.so is so that there's a > clean separation between these two mechanisms. It's a bit ugly, but so > is the underlying cpu architecture. > > Thanks, > > -- > Raul > > > On Sat, Sep 6, 2014 at 12:49 PM, 'Pascal Jasmin' via Programming > <programm...@jsoftware.com> wrote: > > sorry about domain error, fixed on wiki, changing line to: > > > > OPENSSL =: sslp , (IFIOS + (;: 'Win Linux Android Darwin') i. <UNAME_z_) > > pick 'libeay32.dll '; (2 $ <'libssl.so '), (2 $ <'libssl.dylib ') > > > > basically, OPENSSL should be set to: (based on your distribution) > > > > OPENSSL > > /lib/x86_64-linux-gnu/libssl.so.1.0.0 > > > > my understanding of linux is that libssl.so will find the latest version. > > No idea how standard '/lib/x86_64-linux-gnu/' is, but that is what you want > > assigned in the sslp =: line. Perhaps you want to also add an IF64 line > > for your other system > > > > > > ----- Original Message ----- > > From: Raul Miller <rauldmil...@gmail.com> > > To: Programming forum <programm...@jsoftware.com> > > Cc: > > Sent: Saturday, September 6, 2014 12:12 PM > > Subject: Re: [Jprogramming] md5 is not md5 > > > > IFIOS > > 0 > > UNAME_z_ > > Linux > > sslp =: IFWIN pick '/usr/lib/';'D:\OpenSSL-Win64\bin\' > > sslp > > /usr/lib/ > > > > Looking closer, I'm thinking you probably want > > /lib/x86_64-linux-gnu/libssl.so.1.0.0 rather than /usr/lib/libssl.so > > (which does not exist). > > > > That said, the domain error is because you are trying to compute this > > result: > > > > '/usr/lib/',2$<'libssl.so' > > > > Thanks, > > > > -- > > Raul > > > > On Sat, Sep 6, 2014 at 12:02 PM, 'Pascal Jasmin' via Programming > > <programm...@jsoftware.com> wrote: > >> what is sslp defined as? > >> > >> Is it possible IFIOS is not defined? or less likely UNAME_z_? > >> > >> > >> ----- Original Message ----- > >> From: Raul Miller <rauldmil...@gmail.com> > >> To: Programming forum <programm...@jsoftware.com> > >> Cc: > >> Sent: Saturday, September 6, 2014 11:57 AM > >> Subject: Re: [Jprogramming] md5 is not md5 > >> > >> Here's what happens if I use that code and only extract hexhash from > >> the top (instead of simply incorporating both blocks of code): > >> > >> s256 hexhash 'The quick brown fox jumps over the lazy dog' > >> |value error: sslSha256 > >> | sslSha256(y);(#y);md=.32#' ' > >> > >> So, ok, what's wrong with sslSha256? > >> > >> sslSha256 > >> |value error: sslSha256 > >> sslSha256 =: (IFWIN {:: ' SHA256 > + x *c x *c';'SHA256 > x *c x > >> *c') ssl NB. SHA256 i *c l *c' ssl > >> |value error: OPENSSL > >> | ( OPENSSL,m)&cd > >> > >> So, ok, what's wrong with OPENSSL? > >> > >> OPENSSL =: sslp , (IFIOS + (;: 'Win Linux Android Darwin') i. > >> <UNAME_z_) pick 'libeay32.dll '; (2 $ <'libssl.so '); (2 $ > >> <'libssl.dylib ') > >> |domain error > >> | OPENSSL=:sslp ,(IFIOS+(;:'Win Linux Android > >> Darwin')i.<UNAME_z_)pick'libeay32.dll ';(2$<'libssl.so > >> ');(2$<'libssl.dylib ') > >> > >> In other words, I was just copying and pasting your code into > >> jconsole, rather than defining a script and attempting to debug it. > >> > >> I recall doing that earlier and finding an issue with libssl which I > >> was not prepared to deal with. > >> > >> Thanks, > >> > >> -- > >> Raul > >> > >> On Sat, Sep 6, 2014 at 11:52 AM, 'Pascal Jasmin' via Programming > >> <programm...@jsoftware.com> wrote: > >>> You did not go far enough down the page :P CryptAcquireContext is only > >>> used in the MSFT binding not openssl binding > >>> > >>> > >>> ----- Original Message ----- > >>> From: Raul Miller <rauldmil...@gmail.com> > >>> To: Programming forum <programm...@jsoftware.com> > >>> Cc: > >>> Sent: Saturday, September 6, 2014 11:49 AM > >>> Subject: Re: [Jprogramming] md5 is not md5 > >>> > >>> I used the code from the bottom of the page. > >>> > >>> Quite possibly I should have used it differently, but that's a different > >>> issue. > >>> > >>> Thanks, > >>> > >>> -- > >>> Raul > >>> > >>> > >>> On Sat, Sep 6, 2014 at 11:46 AM, 'Pascal Jasmin' via Programming > >>> <programm...@jsoftware.com> wrote: > >>>> You are using the wrong code. That is indeed windows specific bindings. > >>>> The openssl bindings are at the bottom of the page. Though you may > >>>> want to pick up hexhash definition from the top section. > >>>> > >>>> > >>>> > >>>> > >>>> ----- Original Message ----- > >>>> From: Raul Miller <rauldmil...@gmail.com> > >>>> To: Programming forum <programm...@jsoftware.com> > >>>> Cc: > >>>> Sent: Saturday, September 6, 2014 11:41 AM > >>>> Subject: Re: [Jprogramming] md5 is not md5 > >>>> > >>>> I tried your code at > >>>> http://www.jsoftware.com/jwiki/PascalJasmin/SHA%201%2C%202%20and%20MD5%20for%20windows > >>>> > >>>> sha256 hexhash 'The quick brown fox jumps over the lazy dog' > >>>> |domain error: cd > >>>> | > >>>> CryptAcquireContext(aProv=.,_1);(<0);(<0);PROV_RSA_AES;CRYPT_VERIFYCONTEXT > >>>> > >>>> Meanwhile, what I have works for me. > >>>> > >>>> Specifically, I built libmd5.so using > >>>> https://github.com/rdm/libmd5.so, copied it into the directory > >>>> /home/ubuntu/bin/ and then used, from in J: > >>>> > >>>> md5raw=: '/home/ubuntu/bin/libmd5-64.so MD5String > l *c l'&(15!:0)@(; #) > >>>> md5=: 3 :',tolower hfd a.i. 15!:1 (md5raw y),0 16 2' > >>>> > >>>> Now... since I need both 32 bit J (to parse xml using xml/sax - > >>>> apparently that only works on 32 bit j602) and 64 bit J (to deal with > >>>> more data than will fit in a 32 bit process), I'm having to have two > >>>> copies of libmd5.so - one for each instance of J. But I can live with > >>>> that. > >>>> > >>>> Thanks, > >>>> > >>>> -- > >>>> Raul > >>>> > >>>> > >>>> On Sat, Sep 6, 2014 at 11:23 AM, 'Pascal Jasmin' via Programming > >>>> <programm...@jsoftware.com> wrote: > >>>>> the code was tested at one point on mac. There is an attempt in the > >>>>> definitions (at bottom of page only) to link on linux. assumes > >>>>> /usr/lib/libssl.so . Should work? or few changes needed to work on > >>>>> linux? > >>>>> > >>>>> > >>>>> ----- Original Message ----- > >>>>> From: Raul Miller <rauldmil...@gmail.com> > >>>>> To: Programming forum <programm...@jsoftware.com> > >>>>> Cc: > >>>>> Sent: Saturday, September 6, 2014 11:11 AM > >>>>> Subject: Re: [Jprogramming] md5 is not md5 > >>>>> > >>>>> I can't use your implementation, since I'm not running this on windows. > >>>>> > >>>>> That said, I've got a fix for my code. > >>>>> > >>>>> That said, I do not have a fix for the portable code in > >>>>> convert/misc/md5. > >>>>> > >>>>> The first thing which would need to be fixed there are the uses of 32 > >>>>> b. and 33 b. (in the definitions of sh_pcrypt_ and rot_pcrypt_) but > >>>>> oddly enough that does not seem to be sufficient. It's not obvious to > >>>>> me what else needs to be fixed, and right now I am feeling too > >>>>> impatient to isolate the problem. > >>>>> > >>>>> Thanks, > >>>>> > >>>>> -- > >>>>> Raul > >>>>> > >>>>> > >>>>> On Sat, Sep 6, 2014 at 10:55 AM, 'Pascal Jasmin' via Programming > >>>>> <programm...@jsoftware.com> wrote: > >>>>>> It was written and tested for 32 bits. J7-64 also gives the wrong > >>>>>> answer. > >>>>>> > >>>>>> At the bottom of this page there are openssl bindings to similar > >>>>>> hashes. > >>>>>> http://www.jsoftware.com/jwiki/PascalJasmin/SHA%201%2C%202%20and%20MD5%20for%20windows > >>>>>> > >>>>>> all the bound hashes are the same speed when called, but I added an > >>>>>> md5 implementation this morning. IIRC it is over 1000 times faster > >>>>>> than the J code. > >>>>>> > >>>>>> I possibly made the unpopular design decision to split out the > >>>>>> formatting of the hash and keep it raw binary. There is a 5x > >>>>>> performance benefit for doing so. > >>>>>> > >>>>>> the fastest conversion (but takes more space than binary) is > >>>>>> > >>>>>> listhash =: (a. i. ])@: > >>>>>> > >>>>>> or: > >>>>>> a. i. md5 'example' > >>>>>> > >>>>>> If you are having any problems with the library, the source is likely > >>>>>> in the first 3 lines. I didn't test with 32 bits, but any problems > >>>>>> there are likely solveable. > >>>>>> > >>>>>> > >>>>>> ----- Original Message ----- > >>>>>> From: Raul Miller <rauldmil...@gmail.com> > >>>>>> To: Programming forum <programm...@jsoftware.com> > >>>>>> Cc: > >>>>>> Sent: Saturday, September 6, 2014 9:10 AM > >>>>>> Subject: [Jprogramming] md5 is not md5 > >>>>>> > >>>>>> j602: > >>>>>> > >>>>>> load'convert/misc/md5' > >>>>>> md5 'example' > >>>>>> 1a79a4d60de6718e8e5b326e338ae533 > >>>>>> > >>>>>> j64-802: > >>>>>> > >>>>>> load'convert/misc/md5' > >>>>>> md5 'example' > >>>>>> 64a9df64d8defee229d86709a425ea7a > >>>>>> > >>>>>> This is a problem... > >>>>>> > >>>>>> == > >>>>>> Raul > >>>>>> ---------------------------------------------------------------------- > >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> > >> > >>>> > >>>> > >>>> > >>>>> > >>>>> > >>>>> > >>>>>> > >>>>>> ---------------------------------------------------------------------- > >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > > >>> > >>> > >>> > >>>>> ---------------------------------------------------------------------- > >>>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>>>> > >>>>> ---------------------------------------------------------------------- > >>>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>>> > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >>> > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm