Okay, so you register the modes against the ABCs, then in ```create_block_cipher_context``` you pass the mode to a method that introspects them:

```python
    def _introspect(self, mode):
        klass = mode.__class__
        if issubclass(klass, abc_modes.ModeWithInitializationVector):
            return mode.initialization_vector
        elif issubclass(klass, abc_modes.ModeWithNonce):
            return mode.nonce
        elif issubclass(klass, abc_modes.ModeWithNoParameters):
            return self._ffi.NULL
        else:
            raise NotImplementedError
````

This would require api to import abc_modes though.