public class DigestInfo extends java.lang.Object implements ASN1Type
DigestInfo type.
The PKCS#7
Cryptographic Message Standard specifies the DigestInfo type
as ASN.1 structure whose BER encoded value serves as input for the
digest-encryption process when creating a SignedData object.
DigestInfo ::= SEQUENCE {
digestAlgorithm DigestAlgorithmIdentifier,
digest Digest }
Digest ::= OCTET STRING
The Signed-data content type is used for building digital signatures on some
particular content for one or more signers. For each signer, a message digest
is computed on the content (and any additional authenticated information)
with a signer-specific message-digest algorithm. Resulting message digest and
appertaining digest algorithm identifier are collected to form a
DigestInfo object, which subsequently is DER encoded for being
encrypted with the particular signer's private key to finally produce the
signer-specific digital signature. Signature value and some signer-related
information are included into a SignerInfo structure. In that
way, for every single signer a specific SignerInfo
object is created. All SignerInfos are are collected
together with the content for forming a SignedData structure.
The constructors and methods of this class are used by the SignerInfo
class for building a DigestInfo to be fed to the digest
encryption process, respectively - on the receiver's side - for creating a
DigestInfo on the "re-decrypted" DigestInfo ASN.1
structure when parsing for the inherent digest value.
This class only can be used for creating a DigestInfo for an
already computed message digest. This class does not support any mechanisms
for computing a message digest.
Example:
// the message to be hashed:
byte[] message = "Test data to be digested".getBytes();
// compute the message digest:
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(message);
byte[] digest = md.digest();
// create a DigestInfo object and supply the message digest just computed:
DigestInfo digested_info = new DigestInfo(AlgorithmID.sha, digest);
ContentInfo,
SignerInfo,
SignedData| Constructor and Description |
|---|
DigestInfo(AlgorithmID digestAlgorithm,
byte[] digest)
Creates a new
DigestInfo from a digest algorithm and a digest. |
DigestInfo(ASN1Object obj)
Creates a new
DigestInfo from an ASN1Object. |
DigestInfo(byte[] array)
Creates a new
DigestInfo from its DER encoding. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
checkDigestAlgorithm(AlgorithmID digestAlgorithm)
Compares the digest algorithm of this DigestInfo with the given digest
algorithm.
|
void |
decode(ASN1Object obj)
Decodes the given ASN.1
DigestInfo object for parsing the
internal structure. |
byte[] |
getDigest()
Returns the digest value held by this
DigestInfo. |
AlgorithmID |
getDigestAlgorithm()
Returns the AlgorithmID of the message-digest algorithm (including any
associated parameters) that has been used for calculating the digest on the
content and any authenticated information.
|
ASN1Object |
toASN1Object()
Returns this
DigestInfo as ASN1Object. |
byte[] |
toByteArray()
Returns this
DigestInfo as DER encoded byte array. |
java.lang.String |
toString()
Returns a string giving some information about this
DigestInfo
object. |
java.lang.String |
toString(boolean detailed)
Returns a string giving some - if requested - detailed information about
this
DigestInfo object. |
public DigestInfo(AlgorithmID digestAlgorithm, byte[] digest)
DigestInfo from a digest algorithm and a digest.digestAlgorithm - the identifier of the signer-specific digest algorithm (including
any associated parameters)digest - the digest value computed on the content and any authenticated
data using the the signer-specific digest algorithmSignerInfopublic DigestInfo(byte[] array)
throws CodingException
DigestInfo from its DER encoding.array - the DER encoded DigestInfoCodingException - if an error occurs when decoding the DigestInfopublic DigestInfo(ASN1Object obj) throws CodingException
DigestInfo from an ASN1Object.
The ASN1Object supplied to this constructor represents an already existing
DigestInfo object that may have been created by calling
toASN1Object.
obj - obj the PKCS#7 DigestInfo as ASN1ObjectCodingException - if the object can not be parsedSignerInfo.getDigest(java.security.PublicKey)public void decode(ASN1Object obj) throws CodingException
DigestInfo object for parsing the
internal structure.
This method internally is called when creating a PKCS#7 DigestInfo
object from an already existing DigestInfo object,
supplied as ASN1Object.
decode in interface ASN1Typeobj - the PKCS#7 DigestInfo as ASN1ObjectCodingException - if the object can not be parsedpublic ASN1Object toASN1Object()
DigestInfo as ASN1Object.
The ASN1Object returned by this method may be used as parameter value when
creating a DigestInfo object using the
DigestInfo(ASN1Object obj) constructor.
toASN1Object in interface ASN1TypeDigestInfo as ASN1Object.public byte[] toByteArray()
DigestInfo as DER encoded byte array.
This method may be used for DER encoding this DigestInfo
object before passing it to the digest encryption process.
public AlgorithmID getDigestAlgorithm()
public boolean checkDigestAlgorithm(AlgorithmID digestAlgorithm)
digestAlgorithm - the digest algorithm to be compared with the digest algorithm of
this DigestInfotrue if the two algorithm identifier are equal (
NULL as parameter is treated as being equal to a
missing parameter field), false if they are not equalpublic byte[] getDigest()
DigestInfo.public java.lang.String toString()
DigestInfo
object.toString in class java.lang.Objectpublic java.lang.String toString(boolean detailed)
DigestInfo object.detailed - - whether or not to give detailed information