Top Description Fields Constructors Methods
org.bouncycastle.crypto.asymmetric

public Class DHDomainParameters

extends Object
Class Inheritance
Imports
java.math.BigInteger

Container class for Diffie-Hellman domain parameters.

Field Summary

Modifier and TypeField and Description
private static final int
private final BigInteger
g

private final BigInteger
j

private final int
l

private final int
m

private final BigInteger
p

private final BigInteger
q

private final DHValidationParameters

Constructor Summary

AccessConstructor and Description
public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
)

Minimal usable parameters.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
int
the maximum bit length for the private value.
l
)

Minimal usable parameters with a private value length (PKCS#3).

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
)

Minimal constructor for parameters able to be used to verify a public key.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
int
the maximum bit length for the private value.
l
)

Minimal constructor for parameters able to be used to verify a public key with a private value length.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
int
the minimum bit length for the private value.
m
,
int
the maximum bit length for the private value.
l
)

Parameters which can verify a public key with private value lengths.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
BigInteger
optionally specifies the value that satisfies the equation p = jq+1
j
,
DHValidationParameters
parameters for validating these domain parameters.
validation
)

Standard constructor - the full X9.42 parameter set.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
int
the maximum bit length for the private value.
l
,
DHValidationParameters
parameters for validating these domain parameters.
validation
)

X9.42 parameters with private value length.

public
DHDomainParameters(BigInteger
the prime p defining the Galois field.
p
,
BigInteger
specifies the prime factor of p - 1.
q
,
BigInteger
the generator of the multiplicative subgroup of order g.
g
,
int
the minimum bit length for the private value.
m
,
int
the maximum bit length for the private value.
l
,
BigInteger
optionally specifies the value that satisfies the equation p = jq+1
j
,
DHValidationParameters
parameters for validating these domain parameters.
validation
)

Base constructor - the full domain parameter set.

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object
the reference object with which to compare.
obj
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.
private static int
getDefaultMParam(int lParam)

public BigInteger

Returns:

the generator g.
getG
()

Return the generator of the multiplicative subgroup of order g.

public BigInteger

Returns:

subgroup factor, or null.
getJ
()

Return the subgroup factor J, which satisifes the equation p=jq+1, if present.

public int

Returns:

the private value length in bits, zero otherwise.
getL
()

Return the private value length in bits - if set, zero otherwise

public int

Returns:

the minimum length of the private value in bits.
getM
()

Return the minimum length of the private value.

public BigInteger

Returns:

the prime p.
getP
()

Return the prime p defining the Galois field.

public BigInteger

Returns:

q value
getQ
()

Return q, the prime factor of p - 1

public DHValidationParameters
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.
Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

DEFAULT_MINIMUM_LENGTHback to summary
private static final int DEFAULT_MINIMUM_LENGTH
gback to summary
private final BigInteger g
jback to summary
private final BigInteger j
lback to summary
private final int l
mback to summary
private final int m
pback to summary
private final BigInteger p
qback to summary
private final BigInteger q
validationback to summary
private final DHValidationParameters validation

Constructor Detail

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger g)

Minimal usable parameters.

Parameters
p:BigInteger

the prime p defining the Galois field.

g:BigInteger

the generator of the multiplicative subgroup of order g.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger g, int l)

Minimal usable parameters with a private value length (PKCS#3).

Parameters
p:BigInteger

the prime p defining the Galois field.

g:BigInteger

the generator of the multiplicative subgroup of order g.

l:int

the maximum bit length for the private value.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g)

Minimal constructor for parameters able to be used to verify a public key.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g, int l)

Minimal constructor for parameters able to be used to verify a public key with a private value length.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

l:int

the maximum bit length for the private value.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g, int m, int l)

Parameters which can verify a public key with private value lengths.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

m:int

the minimum bit length for the private value.

l:int

the maximum bit length for the private value.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g, BigInteger j, DHValidationParameters validation)

Standard constructor - the full X9.42 parameter set.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

j:BigInteger

optionally specifies the value that satisfies the equation p = jq+1

validation:DHValidationParameters

parameters for validating these domain parameters.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g, int l, DHValidationParameters validation)

X9.42 parameters with private value length.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

l:int

the maximum bit length for the private value.

validation:DHValidationParameters

parameters for validating these domain parameters.

DHDomainParametersback to summary
public DHDomainParameters(BigInteger p, BigInteger q, BigInteger g, int m, int l, BigInteger j, DHValidationParameters validation)

Base constructor - the full domain parameter set.

Parameters
p:BigInteger

the prime p defining the Galois field.

q:BigInteger

specifies the prime factor of p - 1.

g:BigInteger

the generator of the multiplicative subgroup of order g.

m:int

the minimum bit length for the private value.

l:int

the maximum bit length for the private value.

j:BigInteger

optionally specifies the value that satisfies the equation p = jq+1

validation:DHValidationParameters

parameters for validating these domain parameters.

Method Detail

equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

getDefaultMParamback to summary
private static int getDefaultMParam(int lParam)
getGback to summary
public BigInteger getG()

Return the generator of the multiplicative subgroup of order g.

Returns:BigInteger

the generator g.

getJback to summary
public BigInteger getJ()

Return the subgroup factor J, which satisifes the equation p=jq+1, if present.

Returns:BigInteger

subgroup factor, or null.

getLback to summary
public int getL()

Return the private value length in bits - if set, zero otherwise

Returns:int

the private value length in bits, zero otherwise.

getMback to summary
public int getM()

Return the minimum length of the private value.

Returns:int

the minimum length of the private value in bits.

getPback to summary
public BigInteger getP()

Return the prime p defining the Galois field.

Returns:BigInteger

the prime p.

getQback to summary
public BigInteger getQ()

Return q, the prime factor of p - 1

Returns:BigInteger

q value

getValidationParametersback to summary
public DHValidationParameters getValidationParameters()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object