blob: ee610059be73b6e7d59ec91bd11bf4080f8a1605 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Encryption (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Encryption (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Encryption.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html" title="class in org.apache.hadoop.hbase.io.crypto"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/crypto/Encryption.html" target="_top">Frames</a></li>
<li><a href="Encryption.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.io.crypto</div>
<h2 title="Class Encryption" class="title">Class Encryption</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.io.crypto.Encryption</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Public
public final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.52">Encryption</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">A facade for encryption algorithms and related support.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a></span></code>
<div class="block">Crypto context</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_ENABLED_CONF_DEFAULT">CRYPTO_ENABLED_CONF_DEFAULT</a></span></code>
<div class="block">Default value for globally enable / disable column family encryption
(set to "true" for backward compatibility)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_ENABLED_CONF_KEY">CRYPTO_ENABLED_CONF_KEY</a></span></code>
<div class="block">Configuration key for globally enable / disable column family encryption</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT">CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT</a></span></code>
<div class="block">Default behaviour is not to fail if the hash algorithm configured differs from the one
used in the HFile.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY">CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY</a></span></code>
<div class="block">Configuration key for specifying the behaviour if the configured hash algorithm
differs from the one used for generating key hash in encrypted HFiles currently being read.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT">CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT</a></span></code>
<div class="block">Default hash algorithm used for generating key hash in encrypted HFiles.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY">CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY</a></span></code>
<div class="block">Configuration key for the hash algorithm used for generating key hash in encrypted HFiles.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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>,<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>&gt;,<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/KeyProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">KeyProvider</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#keyProviderCache">keyProviderCache</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#Encryption--">Encryption</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#computeCryptoKeyHash-org.apache.hadoop.conf.Configuration-byte:A-">computeCryptoKeyHash</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
byte[]&nbsp;arg)</code>
<div class="block">Returns the hash of the supplied argument, using the hash algorithm
specified in the given config.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#decrypt-byte:A-int-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Decryptor-">decrypt</a></span>(byte[]&nbsp;dest,
int&nbsp;destOffset,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;destSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Decryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Decryptor</a>&nbsp;d)</code>
<div class="block">Decrypt a block of ciphertext read in from a stream with the given
cipher and context</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#decrypt-byte:A-int-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">decrypt</a></span>(byte[]&nbsp;dest,
int&nbsp;destOffset,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;destSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)</code>
<div class="block">Decrypt a block of ciphertext from a stream given a context and IV</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#decrypt-java.io.OutputStream-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Decryptor-">decrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Decryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Decryptor</a>&nbsp;d)</code>
<div class="block">Decrypt a stream of ciphertext given a decryptor</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#decrypt-java.io.OutputStream-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">decrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)</code>
<div class="block">Decrypt a stream of ciphertext given a context and IV</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#decryptWithSubjectKey-java.io.OutputStream-java.io.InputStream-int-java.lang.String-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.crypto.Cipher-byte:A-">decryptWithSubjectKey</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a>&nbsp;cipher,
byte[]&nbsp;iv)</code>
<div class="block">Decrypts a block of ciphertext with the symmetric key resolved for the given subject</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#encrypt-java.io.OutputStream-byte:A-int-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">encrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
byte[]&nbsp;src,
int&nbsp;offset,
int&nbsp;length,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)</code>
<div class="block">Encrypt a block of plaintext</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#encrypt-java.io.OutputStream-byte:A-int-int-org.apache.hadoop.hbase.io.crypto.Encryptor-">encrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
byte[]&nbsp;src,
int&nbsp;offset,
int&nbsp;length,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;e)</code>
<div class="block">Encrypt a block of plaintext</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#encrypt-java.io.OutputStream-java.io.InputStream-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">encrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)</code>
<div class="block">Encrypt a stream of plaintext given a context and IV</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#encrypt-java.io.OutputStream-java.io.InputStream-org.apache.hadoop.hbase.io.crypto.Encryptor-">encrypt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;e)</code>
<div class="block">Encrypt a stream of plaintext given an encryptor</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#encryptWithSubjectKey-java.io.OutputStream-java.io.InputStream-java.lang.String-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.crypto.Cipher-byte:A-">encryptWithSubjectKey</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a>&nbsp;cipher,
byte[]&nbsp;iv)</code>
<div class="block">Encrypts a block of plaintext with the symmetric key resolved for the given subject</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#failOnHashAlgorithmMismatch-org.apache.hadoop.conf.Configuration-">failOnHashAlgorithmMismatch</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Returns the Hash Algorithm mismatch behaviour defined in the crypto configuration.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#generateSecretKey-org.apache.hadoop.conf.Configuration-java.lang.String-byte:A...-">generateSecretKey</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;cypherAlg,
byte[]...&nbsp;args)</code>
<div class="block">Return a key derived from the concatenation of the supplied arguments using
PBKDF2WithHmacSHA384 key derivation algorithm at 10,000 iterations.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#generateSecretKey-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String...-">generateSecretKey</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;cypherAlg,
<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;args)</code>
<div class="block">Return a key derived from the concatenation of the supplied arguments using
PBKDF2WithHmacSHA384 key derivation algorithm at 10,000 iterations.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#generateSecretKey-java.lang.String-int-char:A-">generateSecretKey</a></span>(<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,
int&nbsp;keyLengthBytes,
char[]&nbsp;password)</code>
<div class="block">Return a key (byte array) derived from the supplied password argument using the given
algorithm with a random salt at 10,000 iterations.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getCipher-org.apache.hadoop.conf.Configuration-java.lang.String-">getCipher</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;name)</code>
<div class="block">Get an cipher given a name</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/CipherProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">CipherProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getCipherProvider-org.apache.hadoop.conf.Configuration-">getCipherProvider</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getClassLoaderForClass-java.lang.Class-">getClassLoaderForClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getConfiguredHashAlgorithm-org.apache.hadoop.conf.Configuration-">getConfiguredHashAlgorithm</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Returns the Hash Algorithm defined in the crypto configuration.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/KeyProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">KeyProvider</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getKeyProvider-org.apache.hadoop.conf.Configuration-">getKeyProvider</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/security/Key.html?is-external=true" title="class or interface in java.security">Key</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getSecretKeyForSubject-java.lang.String-org.apache.hadoop.conf.Configuration-">getSecretKeyForSubject</a></span>(<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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Resolves a key for the given subject</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static <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>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getSupportedCiphers--">getSupportedCiphers</a></span>()</code>
<div class="block">Get names of supported encryption algorithms</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static <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>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#getSupportedCiphers-org.apache.hadoop.conf.Configuration-">getSupportedCiphers</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Get names of supported encryption algorithms</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#hash128-byte:A...-">hash128</a></span>(byte[]...&nbsp;args)</code>
<div class="block">Return the MD5 digest of the concatenation of the supplied arguments.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#hash128-java.lang.String...-">hash128</a></span>(<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;args)</code>
<div class="block">Return the MD5 digest of the concatenation of the supplied arguments.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#hash256-byte:A...-">hash256</a></span>(byte[]...&nbsp;args)</code>
<div class="block">Return the SHA-256 digest of the concatenation of the supplied arguments.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#hash256-java.lang.String...-">hash256</a></span>(<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;args)</code>
<div class="block">Return the SHA-256 digest of the concatenation of the supplied arguments.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#hashWithAlg-java.lang.String-byte:A...-">hashWithAlg</a></span>(<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)</code>
<div class="block">Return the hash of the concatenation of the supplied arguments, using the
hash algorithm provided.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#incrementIv-byte:A-">incrementIv</a></span>(byte[]&nbsp;iv)</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#incrementIv-byte:A-int-">incrementIv</a></span>(byte[]&nbsp;iv,
int&nbsp;v)</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#isEncryptionEnabled-org.apache.hadoop.conf.Configuration-">isEncryptionEnabled</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Returns true if the column family encryption feature is enabled globally.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#newContext--">newContext</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#newContext-org.apache.hadoop.conf.Configuration-">newContext</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#pbkdf128-byte:A...-">pbkdf128</a></span>(byte[]...&nbsp;args)</code>
<div class="block">Return a 128 bit key derived from the concatenation of the supplied
arguments using PBKDF2WithHmacSHA1 at 10,000 iterations.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.html#pbkdf128-java.lang.String...-">pbkdf128</a></span>(<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;args)</code>
<div class="block">Return a 128 bit key derived from the concatenation of the supplied
arguments using PBKDF2WithHmacSHA1 at 10,000 iterations.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.54">LOG</a></pre>
</li>
</ul>
<a name="CRYPTO_ENABLED_CONF_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_ENABLED_CONF_KEY</h4>
<pre>public static final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.60">CRYPTO_ENABLED_CONF_KEY</a></pre>
<div class="block">Configuration key for globally enable / disable column family encryption</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_ENABLED_CONF_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CRYPTO_ENABLED_CONF_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_ENABLED_CONF_DEFAULT</h4>
<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.66">CRYPTO_ENABLED_CONF_DEFAULT</a></pre>
<div class="block">Default value for globally enable / disable column family encryption
(set to "true" for backward compatibility)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_ENABLED_CONF_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY</h4>
<pre>public static final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.73">CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY</a></pre>
<div class="block">Configuration key for the hash algorithm used for generating key hash in encrypted HFiles.
This is a MessageDigest algorithm identifier string, like "MD5", "SHA-256" or "SHA-384".
(default: "MD5" for backward compatibility reasons)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_KEY_HASH_ALGORITHM_CONF_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT</h4>
<pre>public static final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.79">CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT</a></pre>
<div class="block">Default hash algorithm used for generating key hash in encrypted HFiles.
(we use "MD5" for backward compatibility reasons)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_KEY_HASH_ALGORITHM_CONF_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY</h4>
<pre>public static final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.89">CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY</a></pre>
<div class="block">Configuration key for specifying the behaviour if the configured hash algorithm
differs from the one used for generating key hash in encrypted HFiles currently being read.
- "false" (default): we won't fail but use the hash algorithm stored in the HFile
- "true": we throw an exception (this can be useful if regulations are enforcing the usage
of certain algorithms, e.g. on FIPS compliant clusters)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT</h4>
<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.97">CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT</a></pre>
<div class="block">Default behaviour is not to fail if the hash algorithm configured differs from the one
used in the HFile. (this is the more fail-safe approach, allowing us to read
encrypted HFiles written using a different encryption key hash algorithm)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.crypto.Encryption.CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="keyProviderCache">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>keyProviderCache</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<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>,<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>&gt;,<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/KeyProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">KeyProvider</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.611">keyProviderCache</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Encryption--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Encryption</h4>
<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.144">Encryption</a>()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="newContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.135">newContext</a>()</pre>
</li>
</ul>
<a name="newContext-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.139">newContext</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
</li>
</ul>
<a name="isEncryptionEnabled-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEncryptionEnabled</h4>
<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.152">isEncryptionEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block">Returns true if the column family encryption feature is enabled globally.</div>
</li>
</ul>
<a name="getCipher-org.apache.hadoop.conf.Configuration-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCipher</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.161">getCipher</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;name)</pre>
<div class="block">Get an cipher given a name</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the cipher name</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cipher, or null if a suitable one could not be found</dd>
</dl>
</li>
</ul>
<a name="getSupportedCiphers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSupportedCiphers</h4>
<pre>public static&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.170">getSupportedCiphers</a>()</pre>
<div class="block">Get names of supported encryption algorithms</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of strings, each represents a supported encryption algorithm</dd>
</dl>
</li>
</ul>
<a name="getSupportedCiphers-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSupportedCiphers</h4>
<pre>public static&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.179">getSupportedCiphers</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block">Get names of supported encryption algorithms</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of strings, each represents a supported encryption algorithm</dd>
</dl>
</li>
</ul>
<a name="getConfiguredHashAlgorithm-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfiguredHashAlgorithm</h4>
<pre>public static&nbsp;<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;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.186">getConfiguredHashAlgorithm</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block">Returns the Hash Algorithm defined in the crypto configuration.</div>
</li>
</ul>
<a name="failOnHashAlgorithmMismatch-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failOnHashAlgorithmMismatch</h4>
<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.194">failOnHashAlgorithmMismatch</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
<div class="block">Returns the Hash Algorithm mismatch behaviour defined in the crypto configuration.</div>
</li>
</ul>
<a name="computeCryptoKeyHash-org.apache.hadoop.conf.Configuration-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeCryptoKeyHash</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.203">computeCryptoKeyHash</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
byte[]&nbsp;arg)</pre>
<div class="block">Returns the hash of the supplied argument, using the hash algorithm
specified in the given config.</div>
</li>
</ul>
<a name="hash128-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hash128</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.218">hash128</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;args)</pre>
<div class="block">Return the MD5 digest of the concatenation of the supplied arguments.</div>
</li>
</ul>
<a name="hash128-byte:A...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hash128</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.225">hash128</a>(byte[]...&nbsp;args)</pre>
<div class="block">Return the MD5 digest of the concatenation of the supplied arguments.</div>
</li>
</ul>
<a name="hash256-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hash256</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.232">hash256</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;args)</pre>
<div class="block">Return the SHA-256 digest of the concatenation of the supplied arguments.</div>
</li>
</ul>
<a name="hash256-byte:A...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hash256</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.239">hash256</a>(byte[]...&nbsp;args)</pre>
<div class="block">Return the SHA-256 digest of the concatenation of the supplied arguments.</div>
</li>
</ul>
<a name="pbkdf128-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pbkdf128</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.248">pbkdf128</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;args)</pre>
<div class="block">Return a 128 bit key derived from the concatenation of the supplied
arguments using PBKDF2WithHmacSHA1 at 10,000 iterations.</div>
</li>
</ul>
<a name="pbkdf128-byte:A...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pbkdf128</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.261">pbkdf128</a>(byte[]...&nbsp;args)</pre>
<div class="block">Return a 128 bit key derived from the concatenation of the supplied
arguments using PBKDF2WithHmacSHA1 at 10,000 iterations.</div>
</li>
</ul>
<a name="generateSecretKey-org.apache.hadoop.conf.Configuration-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateSecretKey</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.280">generateSecretKey</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;cypherAlg,
<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;args)</pre>
<div class="block">Return a key derived from the concatenation of the supplied arguments using
PBKDF2WithHmacSHA384 key derivation algorithm at 10,000 iterations.
The length of the returned key is determined based on the need of the cypher algorithm.
E.g. for the default "AES" we will need a 128 bit long key, while if the user is using
a custom cipher, we might generate keys with other length.
This key generation method is used currently e.g. in the HBase Shell (admin.rb) to generate a
column family data encryption key, if the user provided an ENCRYPTION_KEY parameter.</div>
</li>
</ul>
<a name="generateSecretKey-org.apache.hadoop.conf.Configuration-java.lang.String-byte:A...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateSecretKey</h4>
<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.300">generateSecretKey</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<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;cypherAlg,
byte[]...&nbsp;args)</pre>
<div class="block">Return a key derived from the concatenation of the supplied arguments using
PBKDF2WithHmacSHA384 key derivation algorithm at 10,000 iterations.
The length of the returned key is determined based on the need of the cypher algorithm.
E.g. for the default "AES" we will need a 128 bit long key, while if the user is using
a custom cipher, we might generate keys with other length.
This key generation method is used currently e.g. in the HBase Shell (admin.rb) to generate a
column family data encryption key, if the user provided an ENCRYPTION_KEY parameter.</div>
</li>
</ul>
<a name="generateSecretKey-java.lang.String-int-char:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateSecretKey</h4>
<pre>private static&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.318">generateSecretKey</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,
int&nbsp;keyLengthBytes,
char[]&nbsp;password)</pre>
<div class="block">Return a key (byte array) derived from the supplied password argument using the given
algorithm with a random salt at 10,000 iterations.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>algorithm</code> - the secret key generation algorithm to use</dd>
<dd><code>keyLengthBytes</code> - the length of the key to be derived (in bytes, not in bits)</dd>
<dd><code>password</code> - char array to use as password for the key generation algorithm</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>secret key encoded as a byte array</dd>
</dl>
</li>
</ul>
<a name="encrypt-java.io.OutputStream-byte:A-int-int-org.apache.hadoop.hbase.io.crypto.Encryptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.341">encrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
byte[]&nbsp;src,
int&nbsp;offset,
int&nbsp;length,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;e)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encrypt a block of plaintext
<p>
The encryptor's state will be finalized. It should be reinitialized or
returned to the pool.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - ciphertext</dd>
<dd><code>src</code> - plaintext</dd>
<dd><code>offset</code> - </dd>
<dd><code>length</code> - </dd>
<dd><code>e</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="encrypt-java.io.OutputStream-byte:A-int-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.361">encrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
byte[]&nbsp;src,
int&nbsp;offset,
int&nbsp;length,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encrypt a block of plaintext</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - ciphertext</dd>
<dd><code>src</code> - plaintext</dd>
<dd><code>offset</code> - </dd>
<dd><code>length</code> - </dd>
<dd><code>context</code> - </dd>
<dd><code>iv</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="encrypt-java.io.OutputStream-java.io.InputStream-org.apache.hadoop.hbase.io.crypto.Encryptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.380">encrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;e)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encrypt a stream of plaintext given an encryptor
<p>
The encryptor's state will be finalized. It should be reinitialized or
returned to the pool.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - ciphertext</dd>
<dd><code>in</code> - plaintext</dd>
<dd><code>e</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="encrypt-java.io.OutputStream-java.io.InputStream-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.398">encrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encrypt a stream of plaintext given a context and IV</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - ciphertext</dd>
<dd><code>in</code> - plaintet</dd>
<dd><code>context</code> - </dd>
<dd><code>iv</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="decrypt-byte:A-int-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Decryptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.420">decrypt</a>(byte[]&nbsp;dest,
int&nbsp;destOffset,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;destSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Decryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Decryptor</a>&nbsp;d)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decrypt a block of ciphertext read in from a stream with the given
cipher and context
<p>
The decryptor's state will be finalized. It should be reinitialized or
returned to the pool.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dest</code> - </dd>
<dd><code>destOffset</code> - </dd>
<dd><code>in</code> - </dd>
<dd><code>destSize</code> - </dd>
<dd><code>d</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="decrypt-byte:A-int-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.440">decrypt</a>(byte[]&nbsp;dest,
int&nbsp;destOffset,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;destSize,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decrypt a block of ciphertext from a stream given a context and IV</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dest</code> - </dd>
<dd><code>destOffset</code> - </dd>
<dd><code>in</code> - </dd>
<dd><code>destSize</code> - </dd>
<dd><code>context</code> - </dd>
<dd><code>iv</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="decrypt-java.io.OutputStream-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Decryptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.456">decrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Decryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Decryptor</a>&nbsp;d)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decrypt a stream of ciphertext given a decryptor</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - </dd>
<dd><code>in</code> - </dd>
<dd><code>outLen</code> - </dd>
<dd><code>d</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="decrypt-java.io.OutputStream-java.io.InputStream-int-org.apache.hadoop.hbase.io.crypto.Encryption.Context-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decrypt</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.485">decrypt</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Encryption.Context</a>&nbsp;context,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decrypt a stream of ciphertext given a context and IV</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - </dd>
<dd><code>in</code> - </dd>
<dd><code>outLen</code> - </dd>
<dd><code>context</code> - </dd>
<dd><code>iv</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getSecretKeyForSubject-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSecretKeyForSubject</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/security/Key.html?is-external=true" title="class or interface in java.security">Key</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.500">getSecretKeyForSubject</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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Resolves a key for the given subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subject</code> - </dd>
<dd><code>conf</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a key for the given subject</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the key is not found</dd>
</dl>
</li>
</ul>
<a name="encryptWithSubjectKey-java.io.OutputStream-java.io.InputStream-java.lang.String-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.crypto.Cipher-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>encryptWithSubjectKey</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.523">encryptWithSubjectKey</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
<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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a>&nbsp;cipher,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Encrypts a block of plaintext with the symmetric key resolved for the given subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - ciphertext</dd>
<dd><code>in</code> - plaintext</dd>
<dd><code>conf</code> - configuration</dd>
<dd><code>cipher</code> - the encryption algorithm</dd>
<dd><code>iv</code> - the initialization vector, can be null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="decryptWithSubjectKey-java.io.OutputStream-java.io.InputStream-int-java.lang.String-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.io.crypto.Cipher-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decryptWithSubjectKey</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.547">decryptWithSubjectKey</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;out,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;in,
int&nbsp;outLen,
<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;subject,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Cipher.html" title="class in org.apache.hadoop.hbase.io.crypto">Cipher</a>&nbsp;cipher,
byte[]&nbsp;iv)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Decrypts a block of ciphertext with the symmetric key resolved for the given subject</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - plaintext</dd>
<dd><code>in</code> - ciphertext</dd>
<dd><code>outLen</code> - the expected plaintext length</dd>
<dd><code>subject</code> - the subject's key alias</dd>
<dd><code>conf</code> - configuration</dd>
<dd><code>cipher</code> - the encryption algorithm</dd>
<dd><code>iv</code> - the initialization vector, can be null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getClassLoaderForClass-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoaderForClass</h4>
<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.583">getClassLoaderForClass</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;c)</pre>
</li>
</ul>
<a name="getCipherProvider-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCipherProvider</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/CipherProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">CipherProvider</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.597">getCipherProvider</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
</li>
</ul>
<a name="getKeyProvider-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKeyProvider</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/KeyProvider.html" title="interface in org.apache.hadoop.hbase.io.crypto">KeyProvider</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.613">getKeyProvider</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
</li>
</ul>
<a name="incrementIv-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrementIv</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.638">incrementIv</a>(byte[]&nbsp;iv)</pre>
</li>
</ul>
<a name="incrementIv-byte:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incrementIv</h4>
<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/crypto/Encryption.html#line.642">incrementIv</a>(byte[]&nbsp;iv,
int&nbsp;v)</pre>
</li>
</ul>
<a name="hashWithAlg-java.lang.String-byte:A...-">
<!-- -->
</a>
<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,
byte[]...&nbsp;args)</pre>
<div class="block">Return the hash of the concatenation of the supplied arguments, using the
hash algorithm provided.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Encryption.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/DefaultCipherProvider.html" title="class in org.apache.hadoop.hbase.io.crypto"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryption.Context.html" title="class in org.apache.hadoop.hbase.io.crypto"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/io/crypto/Encryption.html" target="_top">Frames</a></li>
<li><a href="Encryption.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>