I don't think the interfaces for turning a backend specific object into a standard format are backend interfaces.  They're interfaces that may be provided by a `*Key`.  

So when you get an `RSAPrivateKey` provider from a backend, it _may_ also provide this interface for turning it into an `RSAPrivateNumbers` instance.

So, you get an `_OpenSSLRSAPrivateKey` instance, and it provides this interface and has an `rsa_private_numbers()` method that returns an `RSAPrivateNumbers` instance.

But sometimes you get an `_OpenSSLHardwareRSAPrivateKey` and it _doesnt_ provide this interface.