org.bouncycastle.sasn1.ConstructedOctetStream Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcmail-jdk16 Show documentation
Show all versions of bcmail-jdk16 Show documentation
The Bouncy Castle Java CMS and S/MIME APIs for handling the CMS and S/MIME protocols. This jar contains CMS and S/MIME APIs for JDK 1.6. The APIs can be used in conjunction with a JCE/JCA provider such as the one provided with the Bouncy Castle Cryptography APIs. If the S/MIME API is used, the JavaMail API and the Java activation framework will also be needed.
package org.bouncycastle.sasn1;
import java.io.IOException;
import java.io.InputStream;
/**
* @deprecated use corresponding classes in org.bouncycastle.asn1.
*/
class ConstructedOctetStream
extends InputStream
{
private final Asn1InputStream _aIn;
private boolean _first = true;
private InputStream _currentStream;
ConstructedOctetStream(
InputStream in)
{
_aIn = new Asn1InputStream(in);
}
public int read()
throws IOException
{
if (_first)
{
Asn1OctetString s = (Asn1OctetString)_aIn.readObject();
if (s == null)
{
return -1;
}
_first = false;
_currentStream = s.getOctetStream();
}
else if (_currentStream == null)
{
return -1;
}
int b = _currentStream.read();
if (b < 0)
{
Asn1OctetString s = (Asn1OctetString)_aIn.readObject();
if (s == null)
{
_currentStream = null;
return -1;
}
_currentStream = s.getOctetStream();
return _currentStream.read();
}
else
{
return b;
}
}
}