All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.sasn1.ConstructedOctetStream Maven / Gradle / Ivy

Go to download

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.5. 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.

There is a newer version: 1.46
Show newest version
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;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy