AMC-team created HADOOP-19667:
---------------------------------

             Summary: Clarify legal value constraints for 
hadoop.security.crypto.buffer.size (min=512; floor to cipher block size)
                 Key: HADOOP-19667
                 URL: https://issues.apache.org/jira/browse/HADOOP-19667
             Project: Hadoop Common
          Issue Type: Bug
    Affects Versions: 2.8.5
            Reporter: AMC-team


In core-default.xml, the property hadoop.security.crypto.buffer.size is 
currently documented as “The buffer size used by CryptoInputStream and 
CryptoOutputStream.” It does not specify the legal value constraints.

 
{code:java}
<property>  
<name>hadoop.security.crypto.buffer.size</name>  
<value>8192</value>  
<description>The buffer size used by CryptoInputStream and CryptoOutputStream.  
</description>
</property> {code}
 

 

The runtime enforces two hidden constraints that are not documented:
1. Minimum value is 512 bytes. Values below 512 cause IllegalArgumentException 
at stream construction time.
2. Block-size flooring: The effective buffer size is floored to a multiple of 
the cipher algorithm’s block size (e.g., 16 bytes for AES/CTR/NoPadding).

As a result, users may be surprised that:
1. Setting a value like 4100 results in an actual capacity of 4096.
2. Setting values <512 fails fast with IllegalArgumentException.

*Expected*
core-default.xml (and user-facing docs) should explicitly document:
1. Minimum legal value: 512 bytes.

2. The effective value is floored to the nearest multiple of the cipher 
algorithm block size (e.g., 16 for AES).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-dev-h...@hadoop.apache.org

Reply via email to