1c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrompackage org.bouncycastle.asn1; 2c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 3c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromimport java.io.InputStream; 4c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 5c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromabstract class LimitedInputStream 6c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom extends InputStream 7c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom{ 8c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom protected final InputStream _in; 96e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom private int _limit; 10c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 11c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom LimitedInputStream( 126e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom InputStream in, 136e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom int limit) 14c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 15c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom this._in = in; 166e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom this._limit = limit; 17c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 18c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 196e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom int getRemaining() 206e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 216e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom // TODO: maybe one day this can become more accurate 226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return _limit; 236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 25c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom protected void setParentEofDetect(boolean on) 26c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 27c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom if (_in instanceof IndefiniteLengthInputStream) 28c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 29c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom ((IndefiniteLengthInputStream)_in).setEofOn00(on); 30c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 31c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 32c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom} 33