cryptix.provider.rsa

Class RawRSAPrivateKey

Implemented Interfaces:
CryptixRSAPrivateKey, PrivateKey, RSAFactors, RSAKey

public class RawRSAPrivateKey
extends BaseRSAPrivateKey

A class representing a RAW-encoded RSA private key.

The encoding consists of the following, in order:

  1. the private exponent d,
  2. the first factor of the modulus, p,
  3. the second factor of the modulus, q,
  4. the coefficient q^-1 mod p.

Each integer is represented as follows:

    Byte    Length
    offset  (bytes)   Meaning
    0       2         The length in bits of this BigInteger (MSB first);
    2       variable  The BigInteger's magnitude with no leading zeroes,
                      again MSB first.
 

Copyright © 1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.7 $

Authors:
Raif S. Naffah
David Hopwood

Since:
Cryptix 2.2.2

Constructor Summary

RawRSAPrivateKey(BigInteger n, BigInteger d)
Constructs a raw RSA private key given the private exponent, and the public modulus n.
RawRSAPrivateKey(BigInteger d, BigInteger p, BigInteger q)
Constructs a raw RSA private key given the private exponent, and the two factors used to generate the public modulus n.
RawRSAPrivateKey(BigInteger d, BigInteger p, BigInteger q, BigInteger u)
Constructs a raw RSA private key given the private exponent, and the two factors used to generate the public modulus n.
RawRSAPrivateKey(InputStream is)
Constructs a raw RSA private key from data read from an InputStream, encoded as described above.

Method Summary

byte[]
getEncoded()
Returns an encoding of the key as a byte array, as described above.
String
getFormat()
Returns the encoding format name, for this class always "RAW".

Methods inherited from class cryptix.provider.rsa.BaseRSAPrivateKey

getAlgorithm, getExponent, getInverseOfQModP, getModulus, getP, getQ, setRsaParams, setRsaParams, toString

Constructor Details

RawRSAPrivateKey

public RawRSAPrivateKey(BigInteger n,
                        BigInteger d)
Constructs a raw RSA private key given the private exponent, and the public modulus n. This should be used only when the factors of n are unknown.

Parameters:
n - the public modulus
d - the private exponent


RawRSAPrivateKey

public RawRSAPrivateKey(BigInteger d,
                        BigInteger p,
                        BigInteger q)
Constructs a raw RSA private key given the private exponent, and the two factors used to generate the public modulus n. The factors may be in any order.

Parameters:
d - the private exponent
p - the first factor of the public modulus
q - the second factor of the public modulus


RawRSAPrivateKey

public RawRSAPrivateKey(BigInteger d,
                        BigInteger p,
                        BigInteger q,
                        BigInteger u)
Constructs a raw RSA private key given the private exponent, and the two factors used to generate the public modulus n. The factors must be given in the correct order, such that u = q^-1 mod p.

Parameters:
d - the private exponent
p - the first factor of the public modulus
q - the second factor of the public modulus
u - the multiplicative inverse of q modulo p


RawRSAPrivateKey

public RawRSAPrivateKey(InputStream is)
            throws IOException

Parameters:
is - the input stream from which data is parsed.

See Also:
getEncoded()

Method Details

getEncoded

public byte[] getEncoded()

Returns:
the encoded byte array, or null if an error occurred.


getFormat

public String getFormat()
Returns the encoding format name, for this class always "RAW".

Returns:
the encoding format name for this key, "RAW".