From 94d3dbea860390bb9f1dbd3d4859f1c574a7ecd2 Mon Sep 17 00:00:00 2001 From: Andrew Purtell Date: Fri, 4 Jul 2014 10:45:32 -0700 Subject: [PATCH] HBASE-11457 Increment HFile block encoding IVs accounting for cipher's internal use --- .../hbase/io/encoding/HFileBlockDefaultEncodingContext.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/HFileBlockDefaultEncodingContext.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/HFileBlockDefaultEncodingContext.java index 0dc1c8a4552..7dfe8576deb 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/HFileBlockDefaultEncodingContext.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/HFileBlockDefaultEncodingContext.java @@ -187,7 +187,6 @@ public class HFileBlockDefaultEncodingContext implements Preconditions.checkState(ivLength <= Byte.MAX_VALUE, "IV length out of range"); cryptoByteStream.write(ivLength); if (ivLength > 0) { - Encryption.incrementIv(iv); encryptor.setIv(iv); cryptoByteStream.write(iv); } @@ -197,6 +196,9 @@ public class HFileBlockDefaultEncodingContext implements onDiskBytesWithHeader = cryptoByteStream.toByteArray(); + // Increment the IV given the final block size + Encryption.incrementIv(iv, 1 + (onDiskBytesWithHeader.length / encryptor.getBlockSize())); + } else { cryptoByteStream.write(0);