Xianda Ke created CRYPTO-77:
-------------------------------

             Summary: Hide Steam's Ctor with cipher parameter
                 Key: CRYPTO-77
                 URL: https://issues.apache.org/jira/browse/CRYPTO-77
             Project: Commons Crypto
          Issue Type: Bug
            Reporter: Xianda Ke


Stream has such two Ctor:
{code}
// denoted as (a)
public CryptoInputStream(InputStream in, CryptoCipher cipher,
            int bufferSize, Key key, AlgorithmParameterSpec params)

// denoted as (b)
public CryptoInputStream(CipherTransformation transformation,
            Properties props, InputStream in, Key key,
            AlgorithmParameterSpec params)
{code}

if use Ctor (b), client user don't have to construct a cipher.  make sense. 

But, in Ctor (a), the cipher argument is create outside Ctor, then it is 
initialized in CryptoInputStream's Ctor. The cipher’s construction is 
scattered. It is a bit confusing.
Ctor (a) seem only used internally.  It would be better to hide Ctor (a) for 
user.

In future, we can consider this:
{code}
// don't pass key and iv param, the cipher should be initialized outside
// similar to JDK, and more scalable to support GCM, CCM modes.
CryptoInputStream(InputStream in, CryptoCipher cipher,  int bufferSize)
{code}

right now, we just hide Ctor (a) for user.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to