Package org.bouncycastle.bcpg
Class S2K
- java.lang.Object
-
- org.bouncycastle.bcpg.BCPGObject
-
- org.bouncycastle.bcpg.S2K
-
- All Implemented Interfaces:
org.bouncycastle.util.Encodable
public class S2K extends BCPGObject
Parameter specifier for the PGP string-to-key password based key derivation function.In iterated mode, S2K takes a single byte iteration count specifier, which is converted to an actual iteration count using a formula that grows the iteration count exponentially as the byte value increases.
e.g.
0x01
== 1088 iterations, and0xFF
== 65,011,712 iterations.
-
-
Field Summary
Fields Modifier and Type Field Description static int
GNU_DUMMY_S2K
static int
GNU_PROTECTION_MODE_DIVERT_TO_CARD
static int
GNU_PROTECTION_MODE_NO_PRIVATE_KEY
static int
SALTED
Salted key generation.static int
SALTED_AND_ITERATED
Salted and iterated key generation.static int
SIMPLE
Simple key generation.
-
Constructor Summary
Constructors Constructor Description S2K(int algorithm)
Constructs a specifier for asimple
S2K generation.S2K(int algorithm, byte[] iv)
Constructs a specifier for asalted
S2K generation.S2K(int algorithm, byte[] iv, int itCount)
Constructs a specifier for asalted and iterated
S2K generation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
encode(BCPGOutputStream out)
int
getHashAlgorithm()
Gets thehash algorithm
for this S2K.long
getIterationCount()
Gets the actual (expanded) iteration count.byte[]
getIV()
Gets the iv/salt to use for the key generation.int
getProtectionMode()
Gets the protection mode - only if GNU_DUMMY_S2Kint
getType()
Gets thedigest algorithm
specified.-
Methods inherited from class org.bouncycastle.bcpg.BCPGObject
getEncoded
-
-
-
-
Field Detail
-
SIMPLE
public static final int SIMPLE
Simple key generation. A single non-salted iteration of a hash function- See Also:
- Constant Field Values
-
SALTED
public static final int SALTED
Salted key generation. A single iteration of a hash function with a (unique) salt- See Also:
- Constant Field Values
-
SALTED_AND_ITERATED
public static final int SALTED_AND_ITERATED
Salted and iterated key generation. Multiple iterations of a hash function, with a salt- See Also:
- Constant Field Values
-
GNU_DUMMY_S2K
public static final int GNU_DUMMY_S2K
- See Also:
- Constant Field Values
-
GNU_PROTECTION_MODE_NO_PRIVATE_KEY
public static final int GNU_PROTECTION_MODE_NO_PRIVATE_KEY
- See Also:
- Constant Field Values
-
GNU_PROTECTION_MODE_DIVERT_TO_CARD
public static final int GNU_PROTECTION_MODE_DIVERT_TO_CARD
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
S2K
public S2K(int algorithm)
Constructs a specifier for asimple
S2K generation.- Parameters:
algorithm
- thedigest algorithm
to use.
-
S2K
public S2K(int algorithm, byte[] iv)
Constructs a specifier for asalted
S2K generation.- Parameters:
algorithm
- thedigest algorithm
to use.iv
- the salt to apply to input to the key generation.
-
S2K
public S2K(int algorithm, byte[] iv, int itCount)
Constructs a specifier for asalted and iterated
S2K generation.- Parameters:
algorithm
- thedigest algorithm
to iterate.iv
- the salt to apply to input to the key generation.itCount
- the single byte iteration count specifier.
-
-
Method Detail
-
getType
public int getType()
Gets thedigest algorithm
specified.
-
getHashAlgorithm
public int getHashAlgorithm()
Gets thehash algorithm
for this S2K.
-
getIV
public byte[] getIV()
Gets the iv/salt to use for the key generation.
-
getIterationCount
public long getIterationCount()
Gets the actual (expanded) iteration count.
-
getProtectionMode
public int getProtectionMode()
Gets the protection mode - only if GNU_DUMMY_S2K
-
encode
public void encode(BCPGOutputStream out) throws java.io.IOException
- Specified by:
encode
in classBCPGObject
- Throws:
java.io.IOException
-
-