If you make it fully opaque cffi won't allow it to be instantiated via ```ffi.new("HMAC_CTX *")``` because you  ```cannot instantiate ctype 'HMAC_CTX' of unknown size```

A simpler declaration would be ```typedef struct { ...; } HMAC_CTX;``` though. I'll switch it to that.