public enum PaddingScheme extends Enum<PaddingScheme >
CipherPaddingScheme represents well-known
padding schemes supported by JPA providers in a type-safe manner.
When encrypted data is transferred, it is usually desirable to ensure that all 'chunks' transferred are a fixed-length: different length blocks might give cryptanalysts clues about what the data might be, among other reasons. Of course not all data will convert to neat fixed-length blocks, so padding schemes are used to 'fill in' (pad) any remaining space with unintelligible data.
Padding schemes can be used in both asymmetric key ciphers as well as symmetric key ciphers (e.g. block ciphers). Block-ciphers especially regularly use padding schemes as they are based on the notion of fixed-length block sizes.
| Enum Constant and Description |
|---|
ISO10126
Padding scheme as defined in the W3C's "XML Encryption Syntax and Processing" document,
Section 5.2 - Block Encryption Algorithms.
|
NONE
No padding.
|
OAEP
Optimal Asymmetric Encryption Padding defined in RSA's
PKSC#1 standard (aka
RFC 3447).
|
OAEPWithMd5AndMgf1
Optimal Asymmetric Encryption Padding with
MD5 message digest and
MGF1 mask generation function.
|
OAEPWithSha1AndMgf1
Optimal Asymmetric Encryption Padding with
SHA-1 message digest and
MGF1 mask generation function.
|
OAEPWithSha256AndMgf1
Optimal Asymmetric Encryption Padding with
SHA-256 message digest and
MGF1 mask generation function.
|
OAEPWithSha384AndMgf1
Optimal Asymmetric Encryption Padding with
SHA-384 message digest and
MGF1 mask generation function.
|
OAEPWithSha512AndMgf1
Optimal Asymmetric Encryption Padding with
SHA-512 message digest and
MGF1 mask generation function.
|
PKCS1
|
PKCS5
Padding scheme defined in RSA's
Password-Based Cryptography Standard.
|
SSL3
Padding scheme defined in the
SSL 3.0 specification, section
5.2.3.2 (CBC block cipher).
|
| Modifier and Type | Method and Description |
|---|---|
String |
getTransformationName()
Returns the actual string name to use when building the
Cipher
transformation string.
|
static PaddingScheme |
valueOf(String
Returns the enum constant of this type with the specified name.
|
static PaddingScheme |
values()
Returns an array containing the constants of this enum type, in the order they are declared.
|
public static final PaddingSchemeNONE
public static final PaddingSchemeISO10126
public static final PaddingSchemeOAEP
Cipher instances with a
OAEPParameterSpec object which provides the 1) message digest and 2) mask generation function to use for the scheme.
OAEPParameterSpec object. This is often unnecessary, because most combinations are fairly standard. These common combinations are pre-defined in this enum in the
OAEP* variants.
If you find that these common combinations still do not meet your needs, then you will need to specify your own message digest and mask generation function, either as an
OAEPParameterSpec object during Cipher initialization or, maybe more easily, in the scheme name directly. If you want to use scheme name approach, the name format is specified in the
Standard Names document in the
Cipher Algorithm Padding section.
public static final PaddingSchemeOAEPWithMd5AndMgf1
MD5 message digest and
MGF1 mask generation function.
This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function. When using this padding scheme, there is no need to init the
Cipher instance with an
OAEPParameterSpec object, as it is already 'built in' to the scheme name (unlike the
OAEP scheme, which requires a bit more work).
public static final PaddingSchemeOAEPWithSha1AndMgf1
SHA-1 message digest and
MGF1 mask generation function.
This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function. When using this padding scheme, there is no need to init the
Cipher instance with an
OAEPParameterSpec object, as it is already 'built in' to the scheme name (unlike the
OAEP scheme, which requires a bit more work).
public static final PaddingSchemeOAEPWithSha256AndMgf1
SHA-256 message digest and
MGF1 mask generation function.
This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function. When using this padding scheme, there is no need to init the
Cipher instance with an
OAEPParameterSpec object, as it is already 'built in' to the scheme name (unlike the
OAEP scheme, which requires a bit more work).
public static final PaddingSchemeOAEPWithSha384AndMgf1
SHA-384 message digest and
MGF1 mask generation function.
This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function. When using this padding scheme, there is no need to init the
Cipher instance with an
OAEPParameterSpec object, as it is already 'built in' to the scheme name (unlike the
OAEP scheme, which requires a bit more work).
public static final PaddingSchemeOAEPWithSha512AndMgf1
SHA-512 message digest and
MGF1 mask generation function.
This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function. When using this padding scheme, there is no need to init the
Cipher instance with an
OAEPParameterSpec object, as it is already 'built in' to the scheme name (unlike the
OAEP scheme, which requires a bit more work).
public static final PaddingSchemePKCS1
public static final PaddingSchemePKCS5
public static final PaddingSchemeSSL3
5.2.3.2 (CBC block cipher).
public static PaddingScheme[] values()
for (PaddingScheme c : PaddingScheme.values()) System.out.println(c);
public static PaddingSchemevalueOf(String name)
name - the name of the enum constant to be returned.
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null
public StringgetTransformationName()
Cipher
transformation string.
Cipher
transformation string.
Cipher.getInstance(String)