public class BCryptKdfOptions extends java.lang.Object implements OpenSSHKdfOptions
Modifier and Type | Class and Description |
---|---|
static class |
BCryptKdfOptions.BCryptBadRoundsException |
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_MAX_ROUNDS
Various discussions on the net seem to indicate that 64 is the value at which many computers seem to slow down
noticeably, so we are rather generous here.
|
private static java.util.concurrent.atomic.AtomicInteger |
MAX_ROUNDS_HOLDER |
static java.lang.String |
NAME |
private int |
numRounds |
private byte[] |
salt |
IS_NONE_KDF, MAX_KDF_NAME_LENGTH, MAX_KDF_OPTIONS_SIZE, NONE_KDF
BY_NAME_COMPARATOR, NAME_EXTRACTOR
Constructor and Description |
---|
BCryptKdfOptions() |
Modifier and Type | Method and Description |
---|---|
protected void |
bcryptKdf(byte[] password,
byte[] output) |
byte[] |
decodePrivateKeyBytes(SessionContext session,
NamedResource resourceKey,
java.lang.String cipherName,
byte[] privateDataBytes,
java.lang.String password) |
boolean |
equals(java.lang.Object obj) |
static int |
getMaxAllowedRounds() |
java.lang.String |
getName() |
int |
getNumRounds() |
byte[] |
getSalt() |
int |
hashCode() |
protected void |
initialize(java.io.InputStream stream,
int maxSaltSize) |
void |
initialize(java.lang.String name,
byte[] kdfOptions) |
boolean |
isEncrypted() |
static void |
setMaxAllowedRounds(int value) |
void |
setNumRounds(int numRounds) |
void |
setSalt(byte[] salt) |
java.lang.String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
findByName, getNameList, getNames, ofName, removeByName
public static final java.lang.String NAME
public static final int DEFAULT_MAX_ROUNDS
-a
parameter to
the ssh-keygen
command) is usually 16.private static final java.util.concurrent.atomic.AtomicInteger MAX_ROUNDS_HOLDER
private byte[] salt
private int numRounds
public void initialize(java.lang.String name, byte[] kdfOptions) throws java.io.IOException
initialize
in interface OpenSSHKdfOptions
java.io.IOException
protected void initialize(java.io.InputStream stream, int maxSaltSize) throws java.io.IOException
java.io.IOException
public boolean isEncrypted()
isEncrypted
in interface OpenSSHKeyDecryptor
public byte[] decodePrivateKeyBytes(SessionContext session, NamedResource resourceKey, java.lang.String cipherName, byte[] privateDataBytes, java.lang.String password) throws java.io.IOException, java.security.GeneralSecurityException
decodePrivateKeyBytes
in interface OpenSSHKeyDecryptor
java.io.IOException
java.security.GeneralSecurityException
protected void bcryptKdf(byte[] password, byte[] output) throws java.io.IOException, java.security.GeneralSecurityException
java.io.IOException
java.security.GeneralSecurityException
public final java.lang.String getName()
getName
in interface NamedResource
public byte[] getSalt()
public void setSalt(byte[] salt)
public int getNumRounds()
public void setNumRounds(int numRounds)
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public static int getMaxAllowedRounds()
public static void setMaxAllowedRounds(int value)