Do some funky memory management

Passing in NULL doesn’t allow cipher names to be passed out (as this is
the default if the function is overloaded) so we need to pass in a
useless pointer which tricks is_encrypted() into giving us what we want.