public class CMSDigestedDataInputStream extends CMSInputStream
CMSDigestedDataInputStream
is used to read digested-data
CMS objects.
A CMSDigestedDataInputStream
is essentially a input stream filter that unwraps the CMS digested-data
structure from the data read in.
You will be able to read a detached digested-data object using the CMSDigestedDataInputStream
class but you will not be able to verify the digest.
IMPORTANT: This class processes large CMS digested-data Objects more efficiently (Java VM memory usage) than the CMSDigestedDataContentInfo
class.
Constructor and Description |
---|
CMSDigestedDataInputStream(CMSInputConnector conn)
Creates a
CMSDigestedDataInputStream . |
CMSDigestedDataInputStream(java.io.InputStream in)
Creates a
CMSDigestedDataInputStream . |
Modifier and Type | Method and Description |
---|---|
int |
available() |
byte[] |
getDigest()
Returns the message digest value.
|
oracle.security.crypto.core.AlgorithmIdentifier |
getDigestAlgID()
Returns the message digest algorithm.
|
oracle.security.crypto.asn1.ASN1ObjectID |
getEnclosedContentType()
Returns the content type of the digested content.
|
oracle.security.crypto.asn1.ASN1Integer |
getVersion()
Deprecated.
As of Phaos CMS 2.0.1, replaced by
getVersionNumber() |
java.math.BigInteger |
getVersionNumber()
Returns the version number of this CMS Object.
|
void |
mark(int readlimit)
Not supported.
|
boolean |
markSupported()
Always returns
false</false>. |
int |
read() |
int |
read(byte[] buffer, int offset, int len) |
void |
reset()
Not supported.
|
long |
skip(long n) |
void |
terminate()
Finish reading the
digested-data structure. |
void |
verify()
Verify the Message Digest.
|
public CMSDigestedDataInputStream(java.io.InputStream in)
CMSDigestedDataInputStream
.in
- The underlying input stream.public CMSDigestedDataInputStream(CMSInputConnector conn)
CMSDigestedDataInputStream
.conn
- The underlying input connector.public void terminate() throws java.io.IOException
digested-data
structure.
Invoke this method only after all the underlying content has been read.
terminate
in class CMSInputStream
java.io.IOException
- An I/O error occurred or some of the underlying content is still present in the input stream.public java.math.BigInteger getVersionNumber() throws java.io.IOException
java.io.IOException
- An I/O error occurred or the input is incorrectly encoded.public oracle.security.crypto.asn1.ASN1Integer getVersion() throws java.io.IOException
getVersionNumber()
java.io.IOException
- An I/O error occurred or the input is incorrectly encoded.public byte[] getDigest() throws java.io.IOException
java.io.IOException
- An I/O error occurred or the input is incorrectly encoded.public oracle.security.crypto.core.AlgorithmIdentifier getDigestAlgID() throws java.io.IOException
java.io.IOException
- An I/O error occurred or the input is incorrectly encoded.public void verify() throws oracle.security.crypto.core.AuthenticationException, java.io.IOException
This method will always fail when reading a detached CMS id-digestedData
. To process detached CMS Objects, use the CMSDigestedDataContentInfo
instead.
oracle.security.crypto.core.AuthenticationException
- Message digest values are different.java.io.IOException
- An I/O error occurred or no input has been read.CMSContentInfo.inputInstance(InputStream)
, CMSDigestedDataContentInfo
public oracle.security.crypto.asn1.ASN1ObjectID getEnclosedContentType() throws java.io.IOException
getEnclosedContentType
in class CMSInputStream
java.io.IOException
- An I/O error occurred or no input has been read.public int read() throws java.io.IOException
read
in class java.io.FilterInputStream
java.io.IOException
public int read(byte[] buffer, int offset, int len) throws java.io.IOException
read
in class java.io.FilterInputStream
java.io.IOException
public int available() throws java.io.IOException
available
in class java.io.FilterInputStream
java.io.IOException
public long skip(long n) throws java.io.IOException
skip
in class java.io.FilterInputStream
java.io.IOException
public boolean markSupported()
false</false>.
Overrides:
markSupported
in class java.io.FilterInputStream
public void mark(int readlimit)
mark
in class java.io.FilterInputStream
public void reset() throws java.io.IOException
reset
in class java.io.FilterInputStream
java.io.IOException
- always(not supported)