[
https://issues.apache.org/jira/browse/HBASE-26613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang resolved HBASE-26613.
-------------------------------
Fix Version/s: 2.5.0
3.0.0-alpha-3
2.4.10
Hadoop Flags: Reviewed
Resolution: Fixed
Pushed to branch-2.4+.
Thanks [~xytss123]!
> The logic of the method incrementIV in Encryption class has problem
> -------------------------------------------------------------------
>
> Key: HBASE-26613
> URL: https://issues.apache.org/jira/browse/HBASE-26613
> Project: HBase
> Issue Type: Bug
> Reporter: Yutong Xiao
> Assignee: Yutong Xiao
> Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-3, 2.4.10
>
>
> {code:java}
> public static void incrementIv(byte[] iv, int v) {
> int length = iv.length;
> boolean carry = true;
> // TODO: Optimize for v > 1, e.g. 16, 32
> do {
> for (int i = 0; i < length; i++) {
> if (carry) {
> iv[i] = (byte) ((iv[i] + 1) & 0xFF);
> carry = 0 == iv[i];
> } else {
> break;
> }
> }
> v--;
> } while (v > 0);
> }
> {code}
> The carry flag is outside the while loop and the inner loop check the carry
> value is true, so that when it was set to false, it will make the rest
> iterations busy spinning.
> And the logic becomes whatever the v is, the IV will be incremented by (1 or
> 2). As the description in todo, this function should support increment value
> > 1. So that this is not what we expect I think.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)