simplify opaque data types

The `opaque` now requires fixed length on both input and output and
the variable-length `opaque*` cannot be restricted.

Signed-off-by: Jan Dvořák <mordae@anilinux.org>