Package org.apache.sshd.common.cipher
Enum BuiltinCiphers
- java.lang.Object
-
- java.lang.Enum<BuiltinCiphers>
-
- org.apache.sshd.common.cipher.BuiltinCiphers
-
- All Implemented Interfaces:
Serializable
,Comparable<BuiltinCiphers>
,Supplier<Cipher>
,AlgorithmNameProvider
,BuiltinFactory<Cipher>
,CipherFactory
,CipherInformation
,Factory<Cipher>
,KeySizeIndicator
,NamedFactory<Cipher>
,NamedResource
,OptionalFeature
public enum BuiltinCiphers extends Enum<BuiltinCiphers> implements CipherFactory
Provides easy access to the currently implemented ciphers- Author:
- Apache MINA SSHD Project
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BuiltinCiphers.Constants
static class
BuiltinCiphers.ParseResult
Holds the result ofparseCiphersList(String)
-
Enum Constant Summary
Enum Constants Enum Constant Description aes128cbc
aes128ctr
aes128gcm
aes192cbc
aes192ctr
aes256cbc
aes256ctr
aes256gcm
arcfour128
Deprecated.arcfour256
Deprecated.blowfishcbc
Deprecated.none
tripledescbc
Deprecated.
-
Field Summary
Fields Modifier and Type Field Description static Set<BuiltinCiphers>
VALUES
-
Fields inherited from interface org.apache.sshd.common.NamedResource
BY_NAME_COMPARATOR, NAME_EXTRACTOR
-
Fields inherited from interface org.apache.sshd.common.OptionalFeature
FALSE, TRUE
-
-
Method Summary
-
-
-
Enum Constant Detail
-
none
public static final BuiltinCiphers none
-
aes128cbc
public static final BuiltinCiphers aes128cbc
-
aes128ctr
public static final BuiltinCiphers aes128ctr
-
aes128gcm
public static final BuiltinCiphers aes128gcm
-
aes256gcm
public static final BuiltinCiphers aes256gcm
-
aes192cbc
public static final BuiltinCiphers aes192cbc
-
aes192ctr
public static final BuiltinCiphers aes192ctr
-
aes256cbc
public static final BuiltinCiphers aes256cbc
-
aes256ctr
public static final BuiltinCiphers aes256ctr
-
arcfour128
@Deprecated public static final BuiltinCiphers arcfour128
Deprecated.- See Also:
- SSHD-1004
-
arcfour256
@Deprecated public static final BuiltinCiphers arcfour256
Deprecated.- See Also:
- SSHD-1004
-
blowfishcbc
@Deprecated public static final BuiltinCiphers blowfishcbc
Deprecated.- See Also:
- SSHD-1004
-
tripledescbc
@Deprecated public static final BuiltinCiphers tripledescbc
Deprecated.- See Also:
- SSHD-1004
-
-
Field Detail
-
VALUES
public static final Set<BuiltinCiphers> VALUES
-
-
Method Detail
-
values
public static BuiltinCiphers[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (BuiltinCiphers c : BuiltinCiphers.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static BuiltinCiphers valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
getName
public final String getName()
- Specified by:
getName
in interfaceNamedResource
- Returns:
- The resource name
-
toString
public final String toString()
- Overrides:
toString
in classEnum<BuiltinCiphers>
-
isSupported
public boolean isSupported()
- Specified by:
isSupported
in interfaceOptionalFeature
- Returns:
true
if the current JVM configuration supports this cipher - e.g., AES-256 requires the Java Cryptography Extension (JCE)
-
getKeySize
public int getKeySize()
- Specified by:
getKeySize
in interfaceKeySizeIndicator
- Returns:
- The number of bits used in the key
-
getIVSize
public int getIVSize()
- Specified by:
getIVSize
in interfaceCipherInformation
- Returns:
- Size of the initialization vector (in bytes)
-
getAuthenticationTagSize
public int getAuthenticationTagSize()
- Specified by:
getAuthenticationTagSize
in interfaceCipherInformation
- Returns:
- Size of the authentication tag (AT) in bytes or 0 if this cipher does not support authentication
-
getKdfSize
public int getKdfSize()
- Specified by:
getKdfSize
in interfaceCipherInformation
- Returns:
- The block size (in bytes) used to derive the secret key for this cipher
-
getCipherBlockSize
public int getCipherBlockSize()
- Specified by:
getCipherBlockSize
in interfaceCipherInformation
- Returns:
- Size of block data used by the cipher (in bytes). For stream ciphers this value is (currently) used to indicate some average work buffer size to be used for the automatic re-keying mechanism described in RFC 4253 - Section 9
-
getAlgorithm
public String getAlgorithm()
- Specified by:
getAlgorithm
in interfaceAlgorithmNameProvider
-
getTransformation
public String getTransformation()
- Specified by:
getTransformation
in interfaceCipherInformation
- Returns:
- The actual transformation used - e.g., AES/CBC/NoPadding
-
create
public Cipher create()
-
registerExtension
public static void registerExtension(CipherFactory extension)
Registered aNamedFactory
to be available besides the built-in ones when parsing configuration- Parameters:
extension
- The factory to register- Throws:
IllegalArgumentException
- if factory instance isnull
, or overrides a built-in one or overrides another registered factory with the same name (case insensitive).
-
getRegisteredExtensions
public static NavigableSet<CipherFactory> getRegisteredExtensions()
- Returns:
- A
SortedSet
of the currently registered extensions, sorted according to the factory name (case insensitive)
-
unregisterExtension
public static NamedFactory<Cipher> unregisterExtension(String name)
Unregisters specified extension- Parameters:
name
- The factory name - ignored ifnull
/empty- Returns:
- The registered extension -
null
if not found
-
fromString
public static BuiltinCiphers fromString(String s)
- Parameters:
s
- TheEnum
's name - ignored ifnull
/empty- Returns:
- The matching
BuiltinCiphers
whoseEnum.name()
matches (case insensitive) the provided argument -null
if no match
-
fromFactory
public static BuiltinCiphers fromFactory(NamedFactory<Cipher> factory)
- Parameters:
factory
- TheNamedFactory
for the cipher - ignored ifnull
- Returns:
- The matching
BuiltinCiphers
whose factory name matches (case insensitive) the cipher factory name - See Also:
fromFactoryName(String)
-
fromFactoryName
public static BuiltinCiphers fromFactoryName(String name)
- Parameters:
name
- The factory name - ignored ifnull
/empty- Returns:
- The matching
BuiltinCiphers
whose factory name matches (case insensitive) the provided name -null
if no match
-
parseCiphersList
public static BuiltinCiphers.ParseResult parseCiphersList(String ciphers)
- Parameters:
ciphers
- A comma-separated list of ciphers' names - ignored ifnull
/empty- Returns:
- A
BuiltinCiphers.ParseResult
containing the successfully parsed factories and the unknown ones. Note: it is up to caller to ensure that the lists do not contain duplicates
-
parseCiphersList
public static BuiltinCiphers.ParseResult parseCiphersList(String... ciphers)
-
parseCiphersList
public static BuiltinCiphers.ParseResult parseCiphersList(Collection<String> ciphers)
-
resolveFactory
public static CipherFactory resolveFactory(String name)
- Parameters:
name
- The factory name- Returns:
- The factory or
null
if it is neither a built-in one or a registered extension
-
-