Возможно вместо встроенного MD5Init стоит использовать MD5_Init из -lcrypto, прототип в /usr/include/openssl/md5.h
Боюсь, код трогать не буду -- собрал из гита led@ по просьбе людей.