Package com.itextpdf.text.pdf.security
Class DigestAlgorithms
- java.lang.Object
-
- com.itextpdf.text.pdf.security.DigestAlgorithms
-
public class DigestAlgorithms extends java.lang.Object
Class that contains a map with the different message digest algorithms.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.HashMap<java.lang.String,java.lang.String>
allowedDigests
Maps the name of a digest algorithm with its ID.private static java.util.HashMap<java.lang.String,java.lang.String>
digestNames
Maps the digest IDs with the human-readable name of the digest algorithm.private static java.util.HashMap<java.lang.String,java.lang.String>
fixNames
Maps digest algorithm that are unknown by the JDKs MessageDigest object to a known one.static java.lang.String
RIPEMD160
Algorithm available for signatures since PDF 1.7static java.lang.String
SHA1
Algorithm available for signatures since PDF 1.3static java.lang.String
SHA256
Algorithm available for signatures since PDF 1.6static java.lang.String
SHA384
Algorithm available for signatures since PDF 1.7static java.lang.String
SHA512
Algorithm available for signatures since PDF 1.7
-
Constructor Summary
Constructors Constructor Description DigestAlgorithms()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]
digest(java.io.InputStream data, java.lang.String hashAlgorithm, java.lang.String provider)
Creates a hash using a specific digest algorithm and a provider.static byte[]
digest(java.io.InputStream data, java.security.MessageDigest messageDigest)
static java.lang.String
getAllowedDigests(java.lang.String name)
Returns the id of a digest algorithms that is allowed in PDF, or null if it isn't allowed.static java.lang.String
getDigest(java.lang.String oid)
Gets the digest name for a certain idstatic java.security.MessageDigest
getMessageDigest(java.lang.String hashAlgorithm, java.lang.String provider)
Creates a MessageDigest object that can be used to create a hash.static java.security.MessageDigest
getMessageDigestFromOid(java.lang.String digestOid, java.lang.String provider)
static java.lang.String
normalizeDigestName(java.lang.String algo)
-
-
-
Field Detail
-
SHA1
public static final java.lang.String SHA1
Algorithm available for signatures since PDF 1.3- See Also:
- Constant Field Values
-
SHA256
public static final java.lang.String SHA256
Algorithm available for signatures since PDF 1.6- See Also:
- Constant Field Values
-
SHA384
public static final java.lang.String SHA384
Algorithm available for signatures since PDF 1.7- See Also:
- Constant Field Values
-
SHA512
public static final java.lang.String SHA512
Algorithm available for signatures since PDF 1.7- See Also:
- Constant Field Values
-
RIPEMD160
public static final java.lang.String RIPEMD160
Algorithm available for signatures since PDF 1.7- See Also:
- Constant Field Values
-
digestNames
private static final java.util.HashMap<java.lang.String,java.lang.String> digestNames
Maps the digest IDs with the human-readable name of the digest algorithm.
-
fixNames
private static final java.util.HashMap<java.lang.String,java.lang.String> fixNames
Maps digest algorithm that are unknown by the JDKs MessageDigest object to a known one.
-
allowedDigests
private static final java.util.HashMap<java.lang.String,java.lang.String> allowedDigests
Maps the name of a digest algorithm with its ID.
-
-
Method Detail
-
getMessageDigestFromOid
public static java.security.MessageDigest getMessageDigestFromOid(java.lang.String digestOid, java.lang.String provider) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
- Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
-
getMessageDigest
public static java.security.MessageDigest getMessageDigest(java.lang.String hashAlgorithm, java.lang.String provider) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
Creates a MessageDigest object that can be used to create a hash.- Parameters:
hashAlgorithm
- the algorithm you want to use to create a hashprovider
- the provider you want to use to create the hash- Returns:
- a MessageDigest object
- Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.GeneralSecurityException
-
digest
public static byte[] digest(java.io.InputStream data, java.lang.String hashAlgorithm, java.lang.String provider) throws java.security.GeneralSecurityException, java.io.IOException
Creates a hash using a specific digest algorithm and a provider.- Parameters:
data
- the message of which you want to create a hashhashAlgorithm
- the algorithm used to create the hashprovider
- the provider used to create the hash- Returns:
- the hash
- Throws:
java.security.GeneralSecurityException
java.io.IOException
-
digest
public static byte[] digest(java.io.InputStream data, java.security.MessageDigest messageDigest) throws java.security.GeneralSecurityException, java.io.IOException
- Throws:
java.security.GeneralSecurityException
java.io.IOException
-
getDigest
public static java.lang.String getDigest(java.lang.String oid)
Gets the digest name for a certain id- Parameters:
oid
- an id (for instance "1.2.840.113549.2.5")- Returns:
- a digest name (for instance "MD5")
-
normalizeDigestName
public static java.lang.String normalizeDigestName(java.lang.String algo)
-
getAllowedDigests
public static java.lang.String getAllowedDigests(java.lang.String name)
Returns the id of a digest algorithms that is allowed in PDF, or null if it isn't allowed.- Parameters:
name
- the name of the digest algorithm- Returns:
- an oid
-
-