This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 4553583  Published site at 6818ec23b87117d32d2e1ba7f8354961ba1eb7c4.
4553583 is described below

commit 4553583de6ae33520da55cc2587e5cd54f050492
Author: jenkins <bui...@apache.org>
AuthorDate: Wed Dec 22 20:17:53 2021 +0000

    Published site at 6818ec23b87117d32d2e1ba7f8354961ba1eb7c4.
---
 acid-semantics.html                                |  2 +-
 apache_hbase_reference_guide.pdf                   |  4 +-
 .../apache/hadoop/hbase/io/crypto/Encryption.html  |  2 +-
 .../hadoop/hbase/io/crypto/Encryption.Context.html | 63 +++++++-------
 .../apache/hadoop/hbase/io/crypto/Encryption.html  | 63 +++++++-------
 book.html                                          |  2 +-
 bulk-loads.html                                    |  2 +-
 checkstyle-aggregate.html                          | 14 ++--
 coc.html                                           |  2 +-
 dependencies.html                                  |  2 +-
 dependency-convergence.html                        |  2 +-
 dependency-info.html                               |  2 +-
 dependency-management.html                         |  2 +-
 .../apache/hadoop/hbase/io/crypto/Encryption.html  |  2 +-
 .../hadoop/hbase/io/crypto/Encryption.Context.html | 63 +++++++-------
 .../apache/hadoop/hbase/io/crypto/Encryption.html  | 63 +++++++-------
 downloads.html                                     |  2 +-
 export_control.html                                |  2 +-
 index.html                                         |  2 +-
 issue-management.html                              |  2 +-
 licenses.html                                      |  2 +-
 mailing-lists.html                                 |  2 +-
 metrics.html                                       |  2 +-
 old_news.html                                      |  2 +-
 plugin-management.html                             |  2 +-
 plugins.html                                       |  2 +-
 poweredbyhbase.html                                |  2 +-
 project-info.html                                  |  2 +-
 project-reports.html                               |  2 +-
 pseudo-distributed.html                            |  2 +-
 replication.html                                   |  2 +-
 resources.html                                     |  2 +-
 scm.html                                           |  2 +-
 sponsors.html                                      |  2 +-
 summary.html                                       |  2 +-
 supportingprojects.html                            |  2 +-
 team.html                                          |  2 +-
 testdevapidocs/index-all.html                      |  2 +
 .../apache/hadoop/hbase/backup/package-tree.html   |  2 +-
 .../hadoop/hbase/io/crypto/TestEncryption.html     | 25 ++++--
 .../apache/hadoop/hbase/io/hfile/package-tree.html |  2 +-
 .../org/apache/hadoop/hbase/package-tree.html      | 16 ++--
 .../hadoop/hbase/procedure2/package-tree.html      |  2 +-
 .../hadoop/hbase/regionserver/package-tree.html    |  6 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |  4 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |  4 +-
 .../hadoop/hbase/io/crypto/TestEncryption.html     | 96 +++++++++++++---------
 47 files changed, 257 insertions(+), 234 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index d1d1cb1..ab3f14e 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -455,7 +455,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 8b64334..e087c6a 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.3, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20211219200510+00'00')
-/CreationDate (D:20211219201531+00'00')
+/ModDate (D:20211222200529+00'00')
+/CreationDate (D:20211222201552+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html 
b/apidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
index 5a506b1..d679206 100644
--- a/apidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
+++ b/apidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
@@ -1106,7 +1106,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashWithAlg</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.663">hashWithAlg</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;algorithm,
+<pre>public static&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.660">hashWithAlg</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;algorithm,
                                  byte[]...&nbsp;args)</pre>
 <div class="block">Return the hash of the concatenation of the supplied 
arguments, using the 
  hash algorithm provided.</div>
diff --git 
a/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html 
b/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
index b4cd49a..54497a7 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
@@ -648,39 +648,36 @@
 <span class="sourceLineNo">640</span>  }<a name="line.640"></a>
 <span class="sourceLineNo">641</span><a name="line.641"></a>
 <span class="sourceLineNo">642</span>  public static void incrementIv(byte[] 
iv, int v) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    int length = iv.length;<a 
name="line.643"></a>
-<span class="sourceLineNo">644</span>    boolean carry = true;<a 
name="line.644"></a>
-<span class="sourceLineNo">645</span>    // TODO: Optimize for v &gt; 1, e.g. 
16, 32<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    do {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      for (int i = 0; i &lt; length; i++) 
{<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        if (carry) {<a 
name="line.648"></a>
-<span class="sourceLineNo">649</span>          iv[i] = (byte) ((iv[i] + 1) 
&amp; 0xFF);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          carry = 0 == iv[i];<a 
name="line.650"></a>
-<span class="sourceLineNo">651</span>        } else {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>          break;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      v--;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } while (v &gt; 0);<a 
name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * hash algorithm provided.<a 
name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      for (byte[] arg: args) {<a 
name="line.666"></a>
-<span class="sourceLineNo">667</span>        md.update(arg);<a 
name="line.667"></a>
-<span class="sourceLineNo">668</span>      }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return md.digest();<a 
name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>}<a name="line.675"></a>
+<span class="sourceLineNo">643</span>    // v should be &gt; 0<a 
name="line.643"></a>
+<span class="sourceLineNo">644</span>    int length = iv.length;<a 
name="line.644"></a>
+<span class="sourceLineNo">645</span>    int sum = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    for (int i = 0; i &lt; length; i++) 
{<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      if (v &lt;= 0) {<a 
name="line.647"></a>
+<span class="sourceLineNo">648</span>        break;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      sum = v + (iv[i] &amp; 0xFF);<a 
name="line.650"></a>
+<span class="sourceLineNo">651</span>      v =  sum / 256;<a 
name="line.651"></a>
+<span class="sourceLineNo">652</span>      iv[i] = (byte)(sum % 256);<a 
name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>  /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.657"></a>
+<span class="sourceLineNo">658</span>   * hash algorithm provided.<a 
name="line.658"></a>
+<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    try {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      for (byte[] arg: args) {<a 
name="line.663"></a>
+<span class="sourceLineNo">664</span>        md.update(arg);<a 
name="line.664"></a>
+<span class="sourceLineNo">665</span>      }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return md.digest();<a 
name="line.666"></a>
+<span class="sourceLineNo">667</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>  }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html 
b/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
index b4cd49a..54497a7 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
@@ -648,39 +648,36 @@
 <span class="sourceLineNo">640</span>  }<a name="line.640"></a>
 <span class="sourceLineNo">641</span><a name="line.641"></a>
 <span class="sourceLineNo">642</span>  public static void incrementIv(byte[] 
iv, int v) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    int length = iv.length;<a 
name="line.643"></a>
-<span class="sourceLineNo">644</span>    boolean carry = true;<a 
name="line.644"></a>
-<span class="sourceLineNo">645</span>    // TODO: Optimize for v &gt; 1, e.g. 
16, 32<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    do {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      for (int i = 0; i &lt; length; i++) 
{<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        if (carry) {<a 
name="line.648"></a>
-<span class="sourceLineNo">649</span>          iv[i] = (byte) ((iv[i] + 1) 
&amp; 0xFF);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          carry = 0 == iv[i];<a 
name="line.650"></a>
-<span class="sourceLineNo">651</span>        } else {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>          break;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      v--;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } while (v &gt; 0);<a 
name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * hash algorithm provided.<a 
name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      for (byte[] arg: args) {<a 
name="line.666"></a>
-<span class="sourceLineNo">667</span>        md.update(arg);<a 
name="line.667"></a>
-<span class="sourceLineNo">668</span>      }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return md.digest();<a 
name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>}<a name="line.675"></a>
+<span class="sourceLineNo">643</span>    // v should be &gt; 0<a 
name="line.643"></a>
+<span class="sourceLineNo">644</span>    int length = iv.length;<a 
name="line.644"></a>
+<span class="sourceLineNo">645</span>    int sum = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    for (int i = 0; i &lt; length; i++) 
{<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      if (v &lt;= 0) {<a 
name="line.647"></a>
+<span class="sourceLineNo">648</span>        break;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      sum = v + (iv[i] &amp; 0xFF);<a 
name="line.650"></a>
+<span class="sourceLineNo">651</span>      v =  sum / 256;<a 
name="line.651"></a>
+<span class="sourceLineNo">652</span>      iv[i] = (byte)(sum % 256);<a 
name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>  /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.657"></a>
+<span class="sourceLineNo">658</span>   * hash algorithm provided.<a 
name="line.658"></a>
+<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    try {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      for (byte[] arg: args) {<a 
name="line.663"></a>
+<span class="sourceLineNo">664</span>        md.update(arg);<a 
name="line.664"></a>
+<span class="sourceLineNo">665</span>      }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return md.digest();<a 
name="line.666"></a>
+<span class="sourceLineNo">667</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>  }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
 
 
 
diff --git a/book.html b/book.html
index a28a653..d5abeb6 100644
--- a/book.html
+++ b/book.html
@@ -46245,7 +46245,7 @@ 
org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-alpha-2<br>
-Last updated 2021-12-19 20:05:10 UTC
+Last updated 2021-12-22 20:05:29 UTC
 </div>
 </div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css">
diff --git a/bulk-loads.html b/bulk-loads.html
index df8b9fb..a27ed4e 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -160,7 +160,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index de2b1ee..e56684c 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7362,7 +7362,7 @@
 <tr class="b">
 <td>annotation</td>
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated";>MissingDeprecated</a></td>
-<td>8</td>
+<td>6</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>blocks</td>
@@ -7461,7 +7461,7 @@
 <td><a class="externalLink" 
href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation";>JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>514</td>
+<td>516</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -34705,8 +34705,8 @@
 <th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input 
':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></div>
 <div class="section">
@@ -49351,8 +49351,8 @@
 <th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 54 has parse error. Details: no viable 
alternative at input '(' while parsing JAVADOC_INLINE_TAG</td>
 <td>59</td></tr>
 <tr class="a">
@@ -72295,7 +72295,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/coc.html b/coc.html
index 3c03ae8..2711b8d 100644
--- a/coc.html
+++ b/coc.html
@@ -229,7 +229,7 @@ email to <a class="externalLink" 
href="mailto:priv...@hbase.apache.org";>the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependencies.html b/dependencies.html
index 04a254b..ce31815 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -301,7 +301,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index fe51b2a..0d66662 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -971,7 +971,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-info.html b/dependency-info.html
index bbd6e74..636db92 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -182,7 +182,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-management.html b/dependency-management.html
index 511c9bc..b3960ae 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1259,7 +1259,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html 
b/devapidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
index ee35ada..aec2a34 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/crypto/Encryption.html
@@ -1211,7 +1211,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashWithAlg</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.663">hashWithAlg</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;algorithm,
+<pre>public static&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.660">hashWithAlg</a>(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;algorithm,
                                  byte[]...&nbsp;args)</pre>
 <div class="block">Return the hash of the concatenation of the supplied 
arguments, using the 
  hash algorithm provided.</div>
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
index b4cd49a..54497a7 100644
--- 
a/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
+++ 
b/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.Context.html
@@ -648,39 +648,36 @@
 <span class="sourceLineNo">640</span>  }<a name="line.640"></a>
 <span class="sourceLineNo">641</span><a name="line.641"></a>
 <span class="sourceLineNo">642</span>  public static void incrementIv(byte[] 
iv, int v) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    int length = iv.length;<a 
name="line.643"></a>
-<span class="sourceLineNo">644</span>    boolean carry = true;<a 
name="line.644"></a>
-<span class="sourceLineNo">645</span>    // TODO: Optimize for v &gt; 1, e.g. 
16, 32<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    do {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      for (int i = 0; i &lt; length; i++) 
{<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        if (carry) {<a 
name="line.648"></a>
-<span class="sourceLineNo">649</span>          iv[i] = (byte) ((iv[i] + 1) 
&amp; 0xFF);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          carry = 0 == iv[i];<a 
name="line.650"></a>
-<span class="sourceLineNo">651</span>        } else {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>          break;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      v--;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } while (v &gt; 0);<a 
name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * hash algorithm provided.<a 
name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      for (byte[] arg: args) {<a 
name="line.666"></a>
-<span class="sourceLineNo">667</span>        md.update(arg);<a 
name="line.667"></a>
-<span class="sourceLineNo">668</span>      }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return md.digest();<a 
name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>}<a name="line.675"></a>
+<span class="sourceLineNo">643</span>    // v should be &gt; 0<a 
name="line.643"></a>
+<span class="sourceLineNo">644</span>    int length = iv.length;<a 
name="line.644"></a>
+<span class="sourceLineNo">645</span>    int sum = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    for (int i = 0; i &lt; length; i++) 
{<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      if (v &lt;= 0) {<a 
name="line.647"></a>
+<span class="sourceLineNo">648</span>        break;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      sum = v + (iv[i] &amp; 0xFF);<a 
name="line.650"></a>
+<span class="sourceLineNo">651</span>      v =  sum / 256;<a 
name="line.651"></a>
+<span class="sourceLineNo">652</span>      iv[i] = (byte)(sum % 256);<a 
name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>  /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.657"></a>
+<span class="sourceLineNo">658</span>   * hash algorithm provided.<a 
name="line.658"></a>
+<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    try {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      for (byte[] arg: args) {<a 
name="line.663"></a>
+<span class="sourceLineNo">664</span>        md.update(arg);<a 
name="line.664"></a>
+<span class="sourceLineNo">665</span>      }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return md.digest();<a 
name="line.666"></a>
+<span class="sourceLineNo">667</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>  }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
 
 
 
diff --git 
a/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html 
b/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
index b4cd49a..54497a7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html
@@ -648,39 +648,36 @@
 <span class="sourceLineNo">640</span>  }<a name="line.640"></a>
 <span class="sourceLineNo">641</span><a name="line.641"></a>
 <span class="sourceLineNo">642</span>  public static void incrementIv(byte[] 
iv, int v) {<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    int length = iv.length;<a 
name="line.643"></a>
-<span class="sourceLineNo">644</span>    boolean carry = true;<a 
name="line.644"></a>
-<span class="sourceLineNo">645</span>    // TODO: Optimize for v &gt; 1, e.g. 
16, 32<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    do {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      for (int i = 0; i &lt; length; i++) 
{<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        if (carry) {<a 
name="line.648"></a>
-<span class="sourceLineNo">649</span>          iv[i] = (byte) ((iv[i] + 1) 
&amp; 0xFF);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>          carry = 0 == iv[i];<a 
name="line.650"></a>
-<span class="sourceLineNo">651</span>        } else {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>          break;<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>      }<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      v--;<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } while (v &gt; 0);<a 
name="line.656"></a>
-<span class="sourceLineNo">657</span>  }<a name="line.657"></a>
-<span class="sourceLineNo">658</span><a name="line.658"></a>
-<span class="sourceLineNo">659</span>  /**<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.660"></a>
-<span class="sourceLineNo">661</span>   * hash algorithm provided.<a 
name="line.661"></a>
-<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    try {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.665"></a>
-<span class="sourceLineNo">666</span>      for (byte[] arg: args) {<a 
name="line.666"></a>
-<span class="sourceLineNo">667</span>        md.update(arg);<a 
name="line.667"></a>
-<span class="sourceLineNo">668</span>      }<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return md.digest();<a 
name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>}<a name="line.675"></a>
+<span class="sourceLineNo">643</span>    // v should be &gt; 0<a 
name="line.643"></a>
+<span class="sourceLineNo">644</span>    int length = iv.length;<a 
name="line.644"></a>
+<span class="sourceLineNo">645</span>    int sum = 0;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    for (int i = 0; i &lt; length; i++) 
{<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      if (v &lt;= 0) {<a 
name="line.647"></a>
+<span class="sourceLineNo">648</span>        break;<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      sum = v + (iv[i] &amp; 0xFF);<a 
name="line.650"></a>
+<span class="sourceLineNo">651</span>      v =  sum / 256;<a 
name="line.651"></a>
+<span class="sourceLineNo">652</span>      iv[i] = (byte)(sum % 256);<a 
name="line.652"></a>
+<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>  /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * Return the hash of the concatenation 
of the supplied arguments, using the <a name="line.657"></a>
+<span class="sourceLineNo">658</span>   * hash algorithm provided.<a 
name="line.658"></a>
+<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
+<span class="sourceLineNo">660</span>  public static byte[] hashWithAlg(String 
algorithm, byte[]... args) {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>    try {<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      MessageDigest md = 
MessageDigest.getInstance(algorithm);<a name="line.662"></a>
+<span class="sourceLineNo">663</span>      for (byte[] arg: args) {<a 
name="line.663"></a>
+<span class="sourceLineNo">664</span>        md.update(arg);<a 
name="line.664"></a>
+<span class="sourceLineNo">665</span>      }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>      return md.digest();<a 
name="line.666"></a>
+<span class="sourceLineNo">667</span>    } catch (NoSuchAlgorithmException e) 
{<a name="line.667"></a>
+<span class="sourceLineNo">668</span>      throw new RuntimeException("unable 
to use hash algorithm: " + algorithm, e);<a name="line.668"></a>
+<span class="sourceLineNo">669</span>    }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>  }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>}<a name="line.672"></a>
 
 
 
diff --git a/downloads.html b/downloads.html
index 371bf79..794b30b 100644
--- a/downloads.html
+++ b/downloads.html
@@ -426,7 +426,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/export_control.html b/export_control.html
index 026ed19..823a0b2 100644
--- a/export_control.html
+++ b/export_control.html
@@ -185,7 +185,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/index.html b/index.html
index c45ecd8..f135112 100644
--- a/index.html
+++ b/index.html
@@ -263,7 +263,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/issue-management.html b/issue-management.html
index 3989dd9..03d9f8d 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -157,7 +157,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/licenses.html b/licenses.html
index c0b8aef..35d94a4 100644
--- a/licenses.html
+++ b/licenses.html
@@ -360,7 +360,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/mailing-lists.html b/mailing-lists.html
index aa983af..158ca31 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -203,7 +203,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/metrics.html b/metrics.html
index b8adba6..1a8fcff 100644
--- a/metrics.html
+++ b/metrics.html
@@ -313,7 +313,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS 
-Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/old_news.html b/old_news.html
index d918210..a51e570 100644
--- a/old_news.html
+++ b/old_news.html
@@ -304,7 +304,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugin-management.html b/plugin-management.html
index a5df2b8..4c02d13 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -309,7 +309,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugins.html b/plugins.html
index a072e77..5cbddd8 100644
--- a/plugins.html
+++ b/plugins.html
@@ -236,7 +236,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 2352cbc..9dd29e1 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -638,7 +638,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-info.html b/project-info.html
index f3770a1..43a9747 100644
--- a/project-info.html
+++ b/project-info.html
@@ -201,7 +201,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-reports.html b/project-reports.html
index ff020d2..47c50f4 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -174,7 +174,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 80f7c5f..82e676e6 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -162,7 +162,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/replication.html b/replication.html
index 1e9b8e1..c7e0c70 100644
--- a/replication.html
+++ b/replication.html
@@ -157,7 +157,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/resources.html b/resources.html
index cfd39bd..c3e7b56 100644
--- a/resources.html
+++ b/resources.html
@@ -185,7 +185,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/scm.html b/scm.html
index a372162..c7ff566 100644
--- a/scm.html
+++ b/scm.html
@@ -168,7 +168,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/sponsors.html b/sponsors.html
index e017893..205fa49 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -187,7 +187,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/summary.html b/summary.html
index 412e316..1f0c2b4 100644
--- a/summary.html
+++ b/summary.html
@@ -200,7 +200,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index aed8cc0..b8c9296 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -378,7 +378,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/team.html b/team.html
index fb649f1..53d7969 100644
--- a/team.html
+++ b/team.html
@@ -737,7 +737,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-19</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2021-12-22</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 744ed0a..2ef4480 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -64057,6 +64057,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.html#testIncrementIteration--">testIncrementIteration()</a></span>
 - Method in class org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.html" 
title="class in 
org.apache.hadoop.hbase.client">TestPutDeleteEtcCellIteration</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testIncrementIV--">testIncrementIV()</a></span>
 - Method in class org.apache.hadoop.hbase.io.crypto.<a 
href="org/apache/hadoop/hbase/io/crypto/TestEncryption.html" title="class in 
org.apache.hadoop.hbase.io.crypto">TestEncryption</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/rest/TestGetAndPutResource.html#testIncrementJSON--">testIncrementJSON()</a></span>
 - Method in class org.apache.hadoop.hbase.rest.<a 
href="org/apache/hadoop/hbase/rest/TestGetAndPutResource.html" title="class in 
org.apache.hadoop.hbase.rest">TestGetAndPutResource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a 
href="org/apache/hadoop/hbase/client/TestAsyncTableRpcPriority.html#testIncrementMetaTable--">testIncrementMetaTable()</a></span>
 - Method in class org.apache.hadoop.hbase.client.<a 
href="org/apache/hadoop/hbase/client/TestAsyncTableRpcPriority.html" 
title="class in 
org.apache.hadoop.hbase.client">TestAsyncTableRpcPriority</a></dt>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 06564ef..872fcdf 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -150,8 +150,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/io/crypto/TestEncryption.html 
b/testdevapidocs/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
index 331888f..75d816b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance 
Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -181,18 +181,22 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testLargeBlocks--">testLargeBlocks</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testIncrementIV--">testIncrementIV</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testOddSizedBlocks--">testOddSizedBlocks</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testLargeBlocks--">testLargeBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testSmallBlocks--">testSmallBlocks</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testOddSizedBlocks--">testOddSizedBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testSmallBlocks--">testSmallBlocks</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a 
href="../../../../../../org/apache/hadoop/hbase/io/crypto/TestEncryption.html#testTypicalHFileBlocks--">testTypicalHFileBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -316,13 +320,22 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="testIncrementIV--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testIncrementIV</h4>
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html#line.93">testIncrementIV</a>()</pre>
+</li>
+</ul>
 <a name="checkTransformSymmetry-byte:A-byte:A-byte:A-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTransformSymmetry</h4>
-<pre>private&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html#line.92">checkTransformSymmetry</a>(byte[]&nbsp;keyBytes,
+<pre>private&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html#line.112">checkTransformSymmetry</a>(byte[]&nbsp;keyBytes,
                                     byte[]&nbsp;iv,
                                     byte[]&nbsp;plaintext)
                              throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
@@ -338,7 +351,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getRandomBlock</h4>
-<pre>private&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html#line.125">getRandomBlock</a>(int&nbsp;size)</pre>
+<pre>private&nbsp;byte[]&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html#line.145">getRandomBlock</a>(int&nbsp;size)</pre>
 </li>
 </ul>
 </li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index beb29e7..ae341a4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -176,8 +176,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" 
title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TagUsage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" 
title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TagUsage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index d1702dd..0442a7e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -665,19 +665,19 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.HealthSummary.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.HealthSummary</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ZNodeClusterManager.CmdType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ZNodeClusterManager.CmdType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleState.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.HealthSummary.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.HealthSummary</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.Signal.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.Signal</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ResourceChecker.Phase</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 05ece8d..11be2e8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -241,10 +241,10 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index a6dda65..2ef0c77 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -757,12 +757,12 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 23c1323..8b834f6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -260,11 +260,11 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadCommonCrawl.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadCommonCrawl.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadCommonCrawl.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadCommonCrawl.Counts</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index a5b0312..b968687 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -206,9 +206,9 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a 
href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html"
 title="enum in org.apache.hadoop.hbase.wal"><span 
class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a 
href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" 
title="enum in org.apache.hadoop.hbase.wal"><span 
class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a 
href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" 
title="enum in org.apache.hadoop.hbase.wal"><span 
class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a 
href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" 
title="enum in org.apache.hadoop.hbase.wal"><span 
class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a 
href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html"
 title="enum in org.apache.hadoop.hbase.wal"><span 
class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
index 0b0ff3e..e1a164a 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/io/crypto/TestEncryption.html
@@ -97,45 +97,65 @@
 <span class="sourceLineNo">089</span>    }<a name="line.89"></a>
 <span class="sourceLineNo">090</span>  }<a name="line.90"></a>
 <span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  private void 
checkTransformSymmetry(byte[] keyBytes, byte[] iv, byte[] plaintext)<a 
name="line.92"></a>
-<span class="sourceLineNo">093</span>      throws Exception {<a 
name="line.93"></a>
-<span class="sourceLineNo">094</span>    LOG.info("checkTransformSymmetry: 
AES, plaintext length = " + plaintext.length);<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    Configuration conf = 
HBaseConfiguration.create();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    String algorithm =<a 
name="line.97"></a>
-<span class="sourceLineNo">098</span>        
conf.get(HConstants.CRYPTO_KEY_ALGORITHM_CONF_KEY, HConstants.CIPHER_AES);<a 
name="line.98"></a>
-<span class="sourceLineNo">099</span>    Cipher aes = 
Encryption.getCipher(conf, algorithm);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    Key key = new SecretKeySpec(keyBytes, 
algorithm);<a name="line.100"></a>
+<span class="sourceLineNo">092</span>  @Test<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public void testIncrementIV() {<a 
name="line.93"></a>
+<span class="sourceLineNo">094</span>    byte[] iv = new byte[] {1, 2, 3};<a 
name="line.94"></a>
+<span class="sourceLineNo">095</span>    byte[] iv_neg = new byte[] {-3, -13, 
25};<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    Encryption.incrementIv(iv);<a 
name="line.96"></a>
+<span class="sourceLineNo">097</span>    assertTrue(Bytes.equals(iv, new 
byte[] {2, 2, 3}));<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    Encryption.incrementIv(iv, 255);<a 
name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertTrue(Bytes.equals(iv, new 
byte[] {1, 3, 3}));<a name="line.100"></a>
 <span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>    Encryptor e = aes.getEncryptor();<a 
name="line.102"></a>
-<span class="sourceLineNo">103</span>    e.setKey(key);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    e.setIv(iv);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    e.reset();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    ByteArrayOutputStream encOut = new 
ByteArrayOutputStream();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    Encryption.encrypt(encOut, plaintext, 
0, plaintext.length, e);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    byte[] encrypted = 
encOut.toByteArray();<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>    Decryptor d = aes.getDecryptor();<a 
name="line.110"></a>
-<span class="sourceLineNo">111</span>    d.setKey(key);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    d.setIv(iv);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    d.reset();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    ByteArrayInputStream encIn = new 
ByteArrayInputStream(encrypted);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    ByteArrayOutputStream decOut = new 
ByteArrayOutputStream();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    Encryption.decrypt(decOut, encIn, 
plaintext.length, d);<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    byte[] result = 
decOut.toByteArray();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    assertEquals("Decrypted result has 
different length than plaintext",<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      result.length, plaintext.length);<a 
name="line.120"></a>
-<span class="sourceLineNo">121</span>    assertTrue("Transformation was not 
symmetric",<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      Bytes.equals(result, plaintext));<a 
name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  private byte[] getRandomBlock(int size) 
{<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    byte[] b = new byte[size];<a 
name="line.126"></a>
-<span class="sourceLineNo">127</span>    Bytes.random(b);<a 
name="line.127"></a>
-<span class="sourceLineNo">128</span>    return b;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>}<a name="line.130"></a>
+<span class="sourceLineNo">102</span>    Encryption.incrementIv(iv, 1024);<a 
name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertTrue(Bytes.equals(iv, new 
byte[] {1, 7, 3}));<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>    Encryption.incrementIv(iv_neg);<a 
name="line.105"></a>
+<span class="sourceLineNo">106</span>    assertTrue(Bytes.equals(iv_neg, new 
byte[] {-2, -13, 25}));<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>    Encryption.incrementIv(iv_neg, 5);<a 
name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertTrue(Bytes.equals(iv_neg, new 
byte[] {3, -12, 25}));<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  private void 
checkTransformSymmetry(byte[] keyBytes, byte[] iv, byte[] plaintext)<a 
name="line.112"></a>
+<span class="sourceLineNo">113</span>      throws Exception {<a 
name="line.113"></a>
+<span class="sourceLineNo">114</span>    LOG.info("checkTransformSymmetry: 
AES, plaintext length = " + plaintext.length);<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Configuration conf = 
HBaseConfiguration.create();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    String algorithm =<a 
name="line.117"></a>
+<span class="sourceLineNo">118</span>        
conf.get(HConstants.CRYPTO_KEY_ALGORITHM_CONF_KEY, HConstants.CIPHER_AES);<a 
name="line.118"></a>
+<span class="sourceLineNo">119</span>    Cipher aes = 
Encryption.getCipher(conf, algorithm);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    Key key = new SecretKeySpec(keyBytes, 
algorithm);<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>    Encryptor e = aes.getEncryptor();<a 
name="line.122"></a>
+<span class="sourceLineNo">123</span>    e.setKey(key);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    e.setIv(iv);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    e.reset();<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    ByteArrayOutputStream encOut = new 
ByteArrayOutputStream();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    Encryption.encrypt(encOut, plaintext, 
0, plaintext.length, e);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    byte[] encrypted = 
encOut.toByteArray();<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>    Decryptor d = aes.getDecryptor();<a 
name="line.130"></a>
+<span class="sourceLineNo">131</span>    d.setKey(key);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    d.setIv(iv);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    d.reset();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    ByteArrayInputStream encIn = new 
ByteArrayInputStream(encrypted);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    ByteArrayOutputStream decOut = new 
ByteArrayOutputStream();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Encryption.decrypt(decOut, encIn, 
plaintext.length, d);<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    byte[] result = 
decOut.toByteArray();<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    assertEquals("Decrypted result has 
different length than plaintext",<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      result.length, plaintext.length);<a 
name="line.140"></a>
+<span class="sourceLineNo">141</span>    assertTrue("Transformation was not 
symmetric",<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      Bytes.equals(result, plaintext));<a 
name="line.142"></a>
+<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private byte[] getRandomBlock(int size) 
{<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    byte[] b = new byte[size];<a 
name="line.146"></a>
+<span class="sourceLineNo">147</span>    Bytes.random(b);<a 
name="line.147"></a>
+<span class="sourceLineNo">148</span>    return b;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>}<a name="line.150"></a>
 
 
 

Reply via email to