The OSSL_PARAM is primarily used as a return value from OSSL_PARAM_* methods and cannot be opaque in D as the OpenSSL methods do not return pointers to the struct, thus the struct must be fully specified for the compiler to work with OSSL_PARAM's anywhere.