[ 
https://issues.apache.org/jira/browse/CRYPTO-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hendrik Saly updated CRYPTO-157:
--------------------------------
    Description: 
CryptoInputStream and CryptoOutputStream are not allowing other 
AlgorithmParameterSpec than IvParameterSpec. B they both claim to support any 
mode of operations, but without submitting a GCMParameterSpec its not possible 
to define a authentication tag length in GCM mode. Despite of that I am not 
sure if cipher in GCM is ever properly initialized without a GCMParameterSpec 
(if there is a default for tLen and its not 128 than the cipher is IMHO not 
properly initialized).

The other thing is that modes which do not need an AlgorithmParameterSpec (like 
ECB) are also maybe not properly initialized. Not sure if ECB just ignores the 
given IvParameterSpec.  I suggest to just allow null here and if null is given 
call the cipher.init(mode, key) method without AlgorithmParameterSpec.

[https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java#L198]

 

[https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoOutputStream.java#L184]

 

Happy to create a PR if bug is confirmed.

  was:
CryptoInputStream and CryptoOutputStream are not allowing other 
AlgorithmParameterSpec than IvParameterSpec. B they both claim to support any 
mode of operations, but without submitting a GCMParameterSpec its not possible 
to define a authentication tag length in GCM mode. Despite of that I am not 
sure if cipher in GCM is ever properly initialized without a GCMParameterSpec 
(if there is a default for tLen and its not 128 than the cipher is IMHO not 
properly initialized).


The other thing is that modes which do not need an AlgorithmParameterSpec (like 
ECB) are also maybe not peroperly initialized. Not sure if ECB just ignores the 
given IvParameterSpec.  I suggest to just allow null here and if null is given 
call the cipher.init(mode, key) method without AlgorithmParameterSpec.

[https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java#L198]

 

[https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoOutputStream.java#L184]

 

Happy to create a PR if bug is confirmed.


> Authentication tag length cannot be specified for CryptoInputStream
> -------------------------------------------------------------------
>
>                 Key: CRYPTO-157
>                 URL: https://issues.apache.org/jira/browse/CRYPTO-157
>             Project: Commons Crypto
>          Issue Type: Bug
>          Components: Stream
>            Reporter: Hendrik Saly
>            Priority: Major
>
> CryptoInputStream and CryptoOutputStream are not allowing other 
> AlgorithmParameterSpec than IvParameterSpec. B they both claim to support any 
> mode of operations, but without submitting a GCMParameterSpec its not 
> possible to define a authentication tag length in GCM mode. Despite of that I 
> am not sure if cipher in GCM is ever properly initialized without a 
> GCMParameterSpec (if there is a default for tLen and its not 128 than the 
> cipher is IMHO not properly initialized).
> The other thing is that modes which do not need an AlgorithmParameterSpec 
> (like ECB) are also maybe not properly initialized. Not sure if ECB just 
> ignores the given IvParameterSpec.  I suggest to just allow null here and if 
> null is given call the cipher.init(mode, key) method without 
> AlgorithmParameterSpec.
> [https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoInputStream.java#L198]
>  
> [https://github.com/apache/commons-crypto/blob/6b1a6968c68930e970ab4a9c21885e4872318bab/src/main/java/org/apache/commons/crypto/stream/CryptoOutputStream.java#L184]
>  
> Happy to create a PR if bug is confirmed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to