2017-12-10 6:01 GMT-03:00 Ben Coman <b...@openinworld.com>: > Can anyone recommend libraries (native Smalltalk or via FFI) > to do generate a HMAC-SHA512 ?
On 11 December 2017 at 01:30, Hernán Morales Durand < hernan.mora...@gmail.com> wrote: > Hi Ben, > > I would use NaCl: http://cr.yp.to/highspeed/coolnacl-20120725.pdf > which you can install from the Pharo Project Catalog in Pharo 6.x Thanks Henry. That looks like path of least resistance. I hit a stumbling block that took a short while to understand. The library binary downloaded specified by ConfigruationOfNacl>>platformLibraryUrl is libsodium: ELF 32-bit LSB shared object whereas I'm using 64bit Linux. I have the following system library preinstalled... /usr/lib/x86_64-linux-gnu/libsodium.so.18.0.1: ELF 64-bit LSB shared object However its api is slightly different. Pharo Nacl makes this call out... crypto_hash_sha512_ref() but the system library provides... 56: 0000000000014dc0 175 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512_final 81: 0000000000014c40 384 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512_update 154: 0000000000014bd0 106 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512_init 233: 0000000000014e70 114 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512 342: 0000000000012330 6 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512_bytes 351: 0000000000012340 6 FUNC GLOBAL DEFAULT 11 crypto_hash_sha512_statebytes The canonical source doesn't seem to have the function https://github.com/jedisct1/libsodium/search?utf8=%E2%9C%93&q=+crypto_hash_sha512_ref so I'm curious where the "_ref" comes from. My options seem... * Compile a 64-bit libsodium from source which includes "_ref" functions. Where is such source? * Use the system libsodium and define an FFI callout just for the one function I need. cheers -ben