uencrypt: split common and library-specific code