Sinon parenthèse: pour jongler entre des buffers de char* et des buffers de unsigned char*, un simple reinterpret_cast<> suffit. D'autant que dans ces échanges, on caste déjà comme des sauvages nos données.
Maintenant, les const qui manquait ici, était un autre problème.