The generated cdef typedef'd size_t as unsigned long: 8 bytes on LP64 but only 4 on 64-bit Windows, where C's size_t is 8. cffi's import-time struct layout verification then failed (aegis_raf_scratch.len: cdef says 4, C compiler says 8). cffi pre-defines size_t/uint8_t with the correct platform sizes, so don't typedef them. Also hard-fail 32-bit build attempts in setup.py; 32-bit platforms are no longer supported.