For the latest news and information visit
The GNU Crypto project

gnu.crypto.sig.rsa
Class RSA

java.lang.Object
  extended bygnu.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.

Version:
$Revision: 1.2 $

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 Free Software Foundation, Inc. All Rights Reserved.