Provide Backend Specific RSA Keys

This PR is dependent on #1115.

Subsequent PRs will deprecate `RSAPrivateKey`, `RSAPublicKey`, and some `RSBackend` methods  as well as move some backend methods around for encrypt/decrypt. This PR creates backend specific classes. The PR is large mostly because I moved a bunch of tests to a new deprecated class so it'll be easier for us to remove them when the time comes.

Refs #1026.
That's fine.


On Wed, Jun 11, 2014 at 4:43 PM, Paul Kehrer <notifications@github.com>
wrote:

> In cryptography/hazmat/primitives/asymmetric/rsa.py:
>
> > +            raise ValueError("dmq1 must be < n.")
> > +
> > +        if iqmp >= public_numbers.n:
> > +            raise ValueError("iqmp must be < n.")
> > +
> > +        if d >= public_numbers.n:
> > +            raise ValueError("d must be < n.")
> > +
> > +        if dmp1 & 1 == 0:
> > +            raise ValueError("dmp1 must be odd.")
> > +
> > +        if dmq1 & 1 == 0:
> > +            raise ValueError("dmq1 must be odd.")
> > +
> > +        if p * q != public_numbers.n:
> > +            raise ValueError("p*q must equal n.")
>
> We can move this into a function but as soon as we finish the deprecation
> cycle it will only be called in one place and we're going to want to inline
> it again :)
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/pyca/cryptography/pull/1116/files#r13680728>.
>



-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: 125F 5C67 DFE9 4084