For the latest news and information visit The GNU Crypto project

## gnu.crypto.sig.rsa
Class RSA

    java.lang.Object
      |
      +--gnu.crypto.sig.rsa.RSA

public class RSA
extends java.lang.Object

Utility methods related to the RSA algorithm.

References:

1. RSA-PSS Signature Scheme with Appendix, part B.
   Primitive specification and supporting documentation.
   Jakob Jonsson and Burt Kaliski.
2. Public-Key Cryptography Standards (PKCS) #1:
   RSA Cryptography Specifications Version 2.1.
   Jakob Jonsson and Burt Kaliski.
3. Remote timing attacks are practical
   D. Boneh and D. Brumley.

Method Summary
`static java.math.BigInteger` `decrypt(java.security.PrivateKey K, java.math.BigInteger c)` An implementation of the `RSADP` algorithm.
`static java.math.BigInteger` `encrypt(java.security.PublicKey K, java.math.BigInteger m)` An implementation of the `RSAEP` algorithm.
`static byte[]` `I2OSP(java.math.BigInteger s, int k)` Converts a multi-precision integer (MPI) `s` into an octet sequence of length `k`.
`static java.math.BigInteger` `sign(java.security.PrivateKey K, java.math.BigInteger m)` An implementation of the RSASP method: Assuming that the designated RSA private key is a valid one, this method computes a signature representative for a designated message representative signed by the holder of the designated RSA private key.
`static java.math.BigInteger` `verify(java.security.PublicKey K, java.math.BigInteger s)` An implementation of the RSAVP method: Assuming that the designated RSA public key is a valid one, this method computes a message representative for the designated signature representative generated by an RSA private key, for a message intended for the holder of the designated RSA public key.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### sign

    public static final java.math.BigInteger sign(java.security.PrivateKey K,
                                                  java.math.BigInteger m)

  An implementation of the RSASP method: Assuming that the designated RSA private key is a valid one, this method computes a signature representative for a designated message representative signed by the holder of the designated RSA private key.

  Parameters:
    `K` - the RSA private key.
    `m` - the message representative: an integer between `0` and `n - 1`, where `n` is the RSA modulus.
  Returns:
    the signature representative, an integer between `0` and `n - 1`, where `n` is the RSA modulus.
  Throws:
    `java.lang.ClassCastException` - if `K` is not an RSA one.
    `java.lang.IllegalArgumentException` - if `m` (the message representative) is out of range.

### verify

    public static final java.math.BigInteger verify(java.security.PublicKey K,
                                                    java.math.BigInteger s)

  An implementation of the RSAVP method: Assuming that the designated RSA public key is a valid one, this method computes a message representative for the designated signature representative generated by an RSA private key, for a message intended for the holder of the designated RSA public key.

  Parameters:
    `K` - the RSA public key.
    `s` - the signature representative, an integer between `0` and `n - 1`, where `n` is the RSA modulus.
  Returns:
    a message representative: an integer between `0` and `n - 1`, where `n` is the RSA modulus.
  Throws:
    `java.lang.ClassCastException` - if `K` is not an RSA one.
    `java.lang.IllegalArgumentException` - if `s` (the signature representative) is out of range.

### encrypt

    public static final java.math.BigInteger encrypt(java.security.PublicKey K,
                                                     java.math.BigInteger m)

  An implementation of the `RSAEP` algorithm.

  Parameters:
    `K` - the recipient's RSA public key.
    `m` - the message representative as an MPI.
  Returns:
    the resulting MPI --an MPI between `0` and `n - 1` (`n` being the public shared modulus)-- that will eventually be padded with an appropriate framing/padding scheme.
  Throws:
    `java.lang.ClassCastException` - if `K` is not an RSA one.
    `java.lang.IllegalArgumentException` - if `m`, the message representative is not between `0` and `n - 1` (`n` being the public shared modulus).

### decrypt

    public static final java.math.BigInteger decrypt(java.security.PrivateKey K,
                                                     java.math.BigInteger c)

  An implementation of the `RSADP` algorithm.

  Parameters:
    `K` - the recipient's RSA private key.
    `c` - the ciphertext representative as an MPI.
  Returns:
    the message representative, an MPI between `0` and `n - 1` (`n` being the shared public modulus).
  Throws:
    `java.lang.ClassCastException` - if `K` is not an RSA one.
    `java.lang.IllegalArgumentException` - if `c`, the ciphertext representative is not between `0` and `n - 1` (`n` being the shared public modulus).

### I2OSP

    public static final byte[] I2OSP(java.math.BigInteger s,
                                     int k)

  Converts a multi-precision integer (MPI) `s` into an octet sequence of length `k`.

  Parameters:
    `s` - the multi-precision integer to convert.
    `k` - the length of the output.
  Returns:
    the result of the transform.
  Throws:
    `java.lang.IllegalArgumentException` - if the length in octets of meaningful bytes of `s` is greater than `k`.

For the latest news and information visit The GNU Crypto project

Copyright © 2001, 2002, 2003, 2004 Free Software Foundation, Inc.