public class S2K extends BCPGObject
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, and 0xFF == 65,011,712 iterations.
| Modifier and Type | Class and Description |
|---|---|
static class |
S2K.Argon2Params
Parameters for Argon2 S2K.
|
static class |
S2K.GNUDummyParams
Parameters for the
GNU_DUMMY_S2K method. |
| Modifier and Type | Field and Description |
|---|---|
static int |
ARGON_2
Memory-hard, salted key generation using Argon2 hash algorithm.
|
static int |
GNU_DUMMY_S2K |
static int |
GNU_PROTECTION_MODE_DIVERT_TO_CARD |
static int |
GNU_PROTECTION_MODE_NO_PRIVATE_KEY |
static int |
SALTED
Deprecated.
use
SALTED_AND_ITERATED or ARGON_2 instead. |
static int |
SALTED_AND_ITERATED
Salted and iterated key generation.
|
static int |
SIMPLE
Deprecated.
use
SALTED_AND_ITERATED or ARGON_2 instead. |
| Constructor and Description |
|---|
S2K(int algorithm)
Constructs a specifier for a
simple S2K generation. |
S2K(int algorithm,
byte[] iv)
Constructs a specifier for a
salted S2K generation. |
S2K(int algorithm,
byte[] iv,
int itCount)
Constructs a specifier for a
salted and iterated S2K generation. |
S2K(S2K.Argon2Params argon2Params)
Constructs a specifier for an
S2K method using Argon2. |
S2K(S2K.GNUDummyParams gnuDummyParams)
Construct a specifier for an S2K using the
GNU_DUMMY_S2K method. |
| Modifier and Type | Method and Description |
|---|---|
static S2K |
argon2S2K(S2K.Argon2Params parameters)
Return a new S2K instance using the
ARGON_2 method, using the given argon2 |
void |
encode(BCPGOutputStream out) |
int |
getHashAlgorithm()
Gets the
hash 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 |
getMemorySizeExponent()
Gets the memory size exponent - only if ARGON_2
|
int |
getParallelism()
Gets the degree of parallelism - only if ARGON_2
|
int |
getPasses()
Return the number of passes - only Argon2
|
int |
getProtectionMode()
Gets the protection mode - only if GNU_DUMMY_S2K
|
int |
getType()
Gets the
digest algorithm specified. |
static S2K |
gnuDummyS2K(S2K.GNUDummyParams parameters)
Return a new S2K instance using the
GNU_DUMMY_S2K method, using the given GNU Dummy S2K |
static S2K |
saltedAndIteratedS2K(int algorithm,
byte[] salt,
int iterationCount)
Return a new S2K instance using the
SALTED_AND_ITERATED method, using the given hash |
static S2K |
saltedS2K(int algorithm,
byte[] salt)
Return a new S2K instance using the
SALTED method, using the given hash |
static S2K |
simpleS2K(int algorithm)
Return a new S2K instance using the
SIMPLE method, using the given hash |
getEncodedpublic static final int SIMPLE
SALTED_AND_ITERATED or ARGON_2 instead.public static final int SALTED
SALTED_AND_ITERATED or ARGON_2 instead.public static final int SALTED_AND_ITERATED
ARGON_2 is not available.public static final int ARGON_2
public static final int GNU_DUMMY_S2K
public static final int GNU_PROTECTION_MODE_NO_PRIVATE_KEY
public static final int GNU_PROTECTION_MODE_DIVERT_TO_CARD
public S2K(int algorithm)
simple S2K generation.algorithm - the digest algorithm to use.public S2K(int algorithm,
byte[] iv)
salted S2K generation.algorithm - the digest algorithm to use.iv - the salt to apply to input to the key generation.public S2K(int algorithm,
byte[] iv,
int itCount)
salted and iterated S2K generation.algorithm - the digest algorithm to iterate.iv - the salt to apply to input to the key generation.itCount - the single byte iteration count specifier.public S2K(S2K.Argon2Params argon2Params)
S2K method using Argon2.argon2Params - argon2 parameterspublic S2K(S2K.GNUDummyParams gnuDummyParams)
GNU_DUMMY_S2K method.gnuDummyParams - GNU_DUMMY_S2K parameterspublic static S2K simpleS2K(int algorithm)
SIMPLE method, using the given hash algorithm.
algorithm - hash algorithm tagpublic static S2K saltedS2K(int algorithm, byte[] salt)
algorithm - hash algorithm tagsalt - saltpublic static S2K saltedAndIteratedS2K(int algorithm, byte[] salt, int iterationCount)
SALTED_AND_ITERATED method, using the given hash algorithm,
saltand
iterationCount.
algorithm - hash algorithm tagsalt - saltiterationCount - number of iterationspublic static S2K argon2S2K(S2K.Argon2Params parameters)
ARGON_2 method, using the given argon2 parameters.
parameters - argon2 parameterspublic static S2K gnuDummyS2K(S2K.GNUDummyParams parameters)
GNU_DUMMY_S2K method, using the given GNU Dummy S2K parameters.
parameters - GNU Dummy S2K parameterspublic int getType()
digest algorithm specified.public int getHashAlgorithm()
hash algorithm for this S2K.public byte[] getIV()
public long getIterationCount()
public int getPasses()
public int getProtectionMode()
public int getParallelism()
public int getMemorySizeExponent()
public void encode(BCPGOutputStream out) throws java.io.IOException
encode in class BCPGObjectjava.io.IOException