blob: f33a7369300974221519144a69c9f15b6c2e17b9 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="fr">
<head>
<!-- Generated by javadoc (1.8.0_201) on Wed May 01 07:16:44 RET 2019 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DefaultBlockCipherService (Apache Shiro 1.4.1 API)</title>
<meta name="date" content="2019-05-01">
<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="DefaultBlockCipherService (Apache Shiro 1.4.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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/DefaultBlockCipherService.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/shiro/crypto/CryptoException.html" title="class in org.apache.shiro.crypto"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/shiro/crypto/DefaultBlockCipherService.html" target="_top">Frames</a></li>
<li><a href="DefaultBlockCipherService.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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.shiro.crypto</div>
<h2 title="Class DefaultBlockCipherService" class="title">Class DefaultBlockCipherService</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/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><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto">org.apache.shiro.crypto.JcaCipherService</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/shiro/crypto/AbstractSymmetricCipherService.html" title="class in org.apache.shiro.crypto">org.apache.shiro.crypto.AbstractSymmetricCipherService</a></li>
<li>
<ul class="inheritance">
<li>org.apache.shiro.crypto.DefaultBlockCipherService</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../org/apache/shiro/crypto/CipherService.html" title="interface in org.apache.shiro.crypto">CipherService</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/apache/shiro/crypto/AesCipherService.html" title="class in org.apache.shiro.crypto">AesCipherService</a>, <a href="../../../../org/apache/shiro/crypto/BlowfishCipherService.html" title="class in org.apache.shiro.crypto">BlowfishCipherService</a></dd>
</dl>
<hr>
<br>
<pre>public class <a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.133">DefaultBlockCipherService</a>
extends <a href="../../../../org/apache/shiro/crypto/AbstractSymmetricCipherService.html" title="class in org.apache.shiro.crypto">AbstractSymmetricCipherService</a></pre>
<div class="block">Base abstract class for block cipher algorithms.
<h2>Usage</h2>
Note that this class exists mostly to simplify algorithm-specific subclasses. Unless you understand the concepts of
cipher modes of operation, block sizes, and padding schemes, and you want direct control of these things, you should
typically not uses instances of this class directly. Instead, algorithm-specific subclasses, such as
<a href="../../../../org/apache/shiro/crypto/AesCipherService.html" title="class in org.apache.shiro.crypto"><code>AesCipherService</code></a>, <a href="../../../../org/apache/shiro/crypto/BlowfishCipherService.html" title="class in org.apache.shiro.crypto"><code>BlowfishCipherService</code></a>, and others are usually better suited for regular use.
<p/>
However, if you have the need to create a custom block cipher service where no sufficient algorithm-specific subclass
exists in Shiro, this class would be very useful.
<h2>Configuration</h2>
Block ciphers can accept configuration parameters that direct how they operate. These parameters concatenated
together in a single String comprise what the JDK JCA documentation calls a
<a href="http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#trans">transformation
string</a>. We think that it is better for Shiro to construct this transformation string automatically based on its
constituent parts instead of having the end-user construct the string manually, which may be error prone or
confusing. To that end, Shiro <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html" title="class in org.apache.shiro.crypto"><code>DefaultBlockCipherService</code></a>s have attributes that can be set individually in
a type-safe manner based on your configuration needs, and Shiro will build the transformation string for you.
<p/>
The following sections typically document the configuration options for block (byte array)
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a> method invocations. Streaming configuration
for those same attributes are done via mirrored <code>streaming</code>* attributes, and their purpose is identical, but
they're only used during streaming <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.encrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a> and
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.decrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a> methods. See the &quot;Streaming&quot;
section below for more.
<h3>Block Size</h3>
The block size specifies the number of bits (not bytes) that the cipher operates on when performing an operation.
It can be specified explicitly via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setBlockSize-int-"><code>blockSize</code></a> attribute. If not set, the JCA Provider
default will be used based on the cipher algorithm. Block sizes are usually very algorithm specific, so set this
value only if you know you don't want the JCA Provider's default for the desired algorithm. For example, the
AES algorithm's Rijndael implementation <em>only</em> supports a 128 bit block size and will not work with any other
size.
<p/>
Also note that the <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setInitializationVectorSize-int-"><code>initializationVectorSize</code></a> is usually the same as the
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setBlockSize-int-"><code>blockSize</code></a> in block ciphers. If you change either attribute, you should ensure that the other
attribute is correct for the target cipher algorithm.
<h3>Operation Mode</h3>
You may set the block cipher's<a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation">mode of
operation</a> via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setMode-org.apache.shiro.crypto.OperationMode-"><code>mode</code></a> attribute, which accepts a type-safe
<a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum instance. This type safety helps avoid typos when specifying the mode and
guarantees that the mode name will be recognized by the underlying JCA Provider.
<p/>
<b>*</b>If no operation mode is specified, Shiro defaults all of its block <code>CipherService</code> instances to the
<a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a> mode, specifically to support auto-generation of initialization vectors during
encryption. This is different than the JDK's default <a href="../../../../org/apache/shiro/crypto/OperationMode.html#ECB"><code>ECB</code></a> mode because <code>ECB</code> does
not support initialization vectors, which are necessary for strong encryption. See the
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto"><code>JcaCipherService parent class</code></a> class JavaDoc for an extensive
explanation on why we do this and why we do not use the Sun <code>ECB</code> default. You also might also want read
the <a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29">Wikipedia
section on ECB<a/> and look at the encrypted image to see an example of why <code>ECB</code> should not be used in
security-sensitive environments.
<p/>
In the rare case that you need to override the default with a mode not represented
by the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum, you may specify the raw mode name string that will be recognized by your JCA
provider via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setModeName-java.lang.String-"><code>modeName</code></a> attribute. Because this is not type-safe, it is recommended only to
use this attribute if the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum does not represent your desired mode.
<p/>
<b>NOTE:</b> If you change the mode to one that does not support initialization vectors (such as
<a href="../../../../org/apache/shiro/crypto/OperationMode.html#ECB"><code>ECB</code></a> or <a href="../../../../org/apache/shiro/crypto/OperationMode.html#NONE"><code>NONE</code></a>), you <em>must</em> turn off auto-generated
initialization vectors by setting <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setGenerateInitializationVectors-boolean-"><code>generateInitializationVectors</code></a>
to <code>false</code>. Abandoning initialization vectors significantly weakens encryption, so think twice before
disabling this feature.
<h3>Padding Scheme</h3>
Because block ciphers process messages in fixed-length blocks, if the final block in a message is not equal to the
block length, <a href="http://en.wikipedia.org/wiki/Padding_(cryptography)">padding</a> is applied to match that
size to maintain the total length of the message. This is good because it protects data patterns from being
identified - when all chunks look the same length, it is much harder to infer what that data might be.
<p/>
You may set a padding scheme via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>paddingScheme</code></a> attribute, which
accepts a type-safe <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto"><code>PaddingScheme</code></a> enum instance. Like the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum,
this enum offers type safety to help avoid typos and guarantees that the mode will be recongized by the underlying
JCA provider.
<p/>
<b>*</b>If no padding scheme is specified, this class defaults to the <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html#PKCS5"><code>PaddingScheme.PKCS5</code></a> scheme, specifically
to be compliant with the default behavior of auto-generating initialization vectors during encryption (see the
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto"><code>JcaCipherService parent class</code></a> class JavaDoc for why).
<p/>
In the rare case that you need to override the default with a scheme not represented by the <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto"><code>PaddingScheme</code></a>
enum, you may specify the raw padding scheme name string that will be recognized by your JCA provider via the
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>paddingSchemeName</code></a> attribute. Because this is not type-safe, it is recommended only to
use this attribute if the <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto"><code>PaddingScheme</code></a> enum does not represent your desired scheme.
<h2>Streaming</h2>
Most people don't think of using block ciphers as stream ciphers, since their name implies working
with block data (i.e. byte arrays) only. However, block ciphers can be turned into byte-oriented stream ciphers by
using an appropriate <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>operation mode</code></a> with a <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingBlockSize--"><code>streaming block size</code></a>
of 8 bits. This is why the <a href="../../../../org/apache/shiro/crypto/CipherService.html" title="interface in org.apache.shiro.crypto"><code>CipherService</code></a> interface provides both block and streaming operations.
<p/>
Because this streaming 8-bit block size rarely changes across block-cipher algorithms, default values have been set
for all three streaming configuration parameters. The defaults are:
<ul>
<li><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingBlockSize-int-"><code>streamingBlockSize</code></a> = <code>8</code> (bits)</li>
<li><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingMode-org.apache.shiro.crypto.OperationMode-"><code>streamingMode</code></a> = <a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a></li>
<li><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>streamingPaddingScheme</code></a> = <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html#PKCS5"><code>PKCS5</code></a></li>
</ul>
<p/>
These attributes have the same meaning as the <code>mode</code>, <code>blockSize</code>, and <code>paddingScheme</code> attributes
described above, but they are applied during streaming method invocations only (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.encrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a>
and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.decrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a>).</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/shiro/crypto/BlowfishCipherService.html" title="class in org.apache.shiro.crypto"><code>BlowfishCipherService</code></a>,
<a href="../../../../org/apache/shiro/crypto/AesCipherService.html" title="class in org.apache.shiro.crypto"><code>AesCipherService</code></a>,
<a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation">Wikipedia: Block Cipher Modes of Operation</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#DefaultBlockCipherService-java.lang.String-">DefaultBlockCipherService</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;algorithmName)</code>
<div class="block">Creates a new <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html" title="class in org.apache.shiro.crypto"><code>DefaultBlockCipherService</code></a> using the specified block cipher <code>algorithmName</code>.</div>
</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance 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>protected byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#generateInitializationVector-boolean-">generateInitializationVector</a></span>(boolean&nbsp;streaming)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getBlockSize--">getBlockSize</a></span>()</code>
<div class="block">Returns the block cipher's block size to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>0</code> if the JCA Provider default block size
for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#getModeName--">getModeName</a></span>()</code>
<div class="block">Returns the cipher operation mode name (as a String) to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#getPaddingSchemeName--">getPaddingSchemeName</a></span>()</code>
<div class="block">Returns the cipher algorithm padding scheme name (as a String) to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingBlockSize--">getStreamingBlockSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#getStreamingModeName--">getStreamingModeName</a></span>()</code>
<div class="block">Same purpose as the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getModeName--"><code>modeName</code></a> attribute, but is used instead only for for streaming
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.encrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a> and
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.decrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a>).</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#getStreamingPaddingSchemeName--">getStreamingPaddingSchemeName</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#getTransformationString-boolean-">getTransformationString</a></span>(boolean&nbsp;streaming)</code>
<div class="block">Returns the transformation string to use with the <a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true#getInstance-java.lang.String-" title="class or interface in javax.crypto"><code>Cipher.getInstance(java.lang.String)</code></a> call.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#isGenerateInitializationVectors-boolean-">isGenerateInitializationVectors</a></span>(boolean&nbsp;streaming)</code>
<div class="block">Overrides the parent implementation to ensure initialization vectors are always generated if streaming is
enabled (block ciphers <em>must</em> use initialization vectors if they are to be used as a stream cipher).</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setBlockSize-int-">setBlockSize</a></span>(int&nbsp;blockSize)</code>
<div class="block">Sets the block cipher's block size to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setMode-org.apache.shiro.crypto.OperationMode-">setMode</a></span>(<a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto">OperationMode</a>&nbsp;mode)</code>
<div class="block">Sets the cipher operation mode of operation to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setModeName-java.lang.String-">setModeName</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;modeName)</code>
<div class="block">Sets the cipher operation mode name to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-">setPaddingScheme</a></span>(<a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto">PaddingScheme</a>&nbsp;paddingScheme)</code>
<div class="block">Sets the padding scheme to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingSchemeName-java.lang.String-">setPaddingSchemeName</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;paddingSchemeName)</code>
<div class="block">Sets the padding scheme name to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingBlockSize-int-">setStreamingBlockSize</a></span>(int&nbsp;streamingBlockSize)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingMode-org.apache.shiro.crypto.OperationMode-">setStreamingMode</a></span>(<a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto">OperationMode</a>&nbsp;mode)</code>
<div class="block">Sets the transformation string mode to be used for streaming operations only.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingModeName-java.lang.String-">setStreamingModeName</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;streamingModeName)</code>
<div class="block">Sets the transformation string mode name to be used for streaming operations only.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingPaddingScheme-org.apache.shiro.crypto.PaddingScheme-">setStreamingPaddingScheme</a></span>(<a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto">PaddingScheme</a>&nbsp;scheme)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingPaddingSchemeName-java.lang.String-">setStreamingPaddingSchemeName</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;streamingPaddingSchemeName)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.shiro.crypto.AbstractSymmetricCipherService">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.shiro.crypto.<a href="../../../../org/apache/shiro/crypto/AbstractSymmetricCipherService.html" title="class in org.apache.shiro.crypto">AbstractSymmetricCipherService</a></h3>
<code><a href="../../../../org/apache/shiro/crypto/AbstractSymmetricCipherService.html#generateNewKey--">generateNewKey</a>, <a href="../../../../org/apache/shiro/crypto/AbstractSymmetricCipherService.html#generateNewKey-int-">generateNewKey</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.shiro.crypto.JcaCipherService">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.shiro.crypto.<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto">JcaCipherService</a></h3>
<code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-">decrypt</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-java.io.InputStream-java.io.OutputStream-byte:A-">decrypt</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-">encrypt</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-java.io.InputStream-java.io.OutputStream-byte:A-">encrypt</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#ensureSecureRandom--">ensureSecureRandom</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--">getAlgorithmName</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getDefaultSecureRandom--">getDefaultSecureRandom</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getInitializationVectorSize--">getInitializationVectorSize</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getKeySize--">getKeySize</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getSecureRandom--">getSecureRandom</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getStreamingBufferSize--">getStreamingBufferSize</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#isGenerateInitializationVectors--">isGenerateInitializationVectors</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setGenerateInitializationVectors-boolean-">setGenerateInitializationVectors</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setInitializationVectorSize-int-">setInitializationVectorSize</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setKeySize-int-">setKeySize</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setSecureRandom-java.security.SecureRandom-">setSecureRandom</a>, <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setStreamingBufferSize-int-">setStreamingBufferSize</a></code></li>
</ul>
<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="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultBlockCipherService-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultBlockCipherService</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.164">DefaultBlockCipherService</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;algorithmName)</pre>
<div class="block">Creates a new <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html" title="class in org.apache.shiro.crypto"><code>DefaultBlockCipherService</code></a> using the specified block cipher <code>algorithmName</code>. Per this
class's JavaDoc, this constructor also sets the following defaults:
<ul>
<li><code>streamingMode</code> = <a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a></li>
<li><code>streamingPaddingScheme</code> = <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html#NONE"><code>none</code></a></li>
<li><code>streamingBlockSize</code> = 8</li>
</ul>
All other attributes are null/unset, indicating the JCA Provider defaults will be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>algorithmName</code> - the block cipher algorithm to use when encrypting and decrypting</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getModeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getModeName</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#line.192">getModeName</a>()</pre>
<div class="block">Returns the cipher operation mode name (as a String) to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingModeName--"><code>streamingModeName</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
The default value is <code>null</code> to retain the JCA Provider default.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cipher operation mode name (as a String) to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider default
mode for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="setModeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setModeName</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.218">setModeName</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;modeName)</pre>
<div class="block">Sets the cipher operation mode name to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string. A <code>null</code> value indicates that the JCA Provider
default mode for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingModeName--"><code>streamingModeName</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
The default value is <code>null</code> to retain the JCA Provider default.
<p/>
<b>NOTE:</b> most standard mode names are represented by the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum. That enum
should be used with the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setMode-org.apache.shiro.crypto.OperationMode-"><code>mode</code></a> attribute when possible to retain type-safety and reduce the
possibility of errors. This method is better used if the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum does not represent the
necessary mode.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>modeName</code> - the cipher operation mode name to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider
default mode for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setMode-org.apache.shiro.crypto.OperationMode-"><code>setMode(org.apache.shiro.crypto.OperationMode)</code></a></dd>
</dl>
</li>
</ul>
<a name="setMode-org.apache.shiro.crypto.OperationMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMode</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.242">setMode</a>(<a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto">OperationMode</a>&nbsp;mode)</pre>
<div class="block">Sets the cipher operation mode of operation to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string. A <code>null</code> value indicates that the JCA Provider
default mode for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingMode-org.apache.shiro.crypto.OperationMode-"><code>streamingMode</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
If the <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> enum cannot represent your desired mode, you can set the name explicitly
via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setModeName-java.lang.String-"><code>modeName</code></a> attribute directly. However, because <a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto"><code>OperationMode</code></a> represents all
standard JDK mode names already, ensure that your underlying JCA Provider supports the non-standard name first.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mode</code> - the cipher operation mode to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider
default mode for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="getPaddingSchemeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPaddingSchemeName</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#line.262">getPaddingSchemeName</a>()</pre>
<div class="block">Returns the cipher algorithm padding scheme name (as a String) to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingPaddingSchemeName--"><code>streamingPaddingSchemeName</code></a> attribute is used when the block cipher is
used for streaming operations.
<p/>
The default value is <code>null</code> to retain the JCA Provider default.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the padding scheme name (as a String) to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider default
padding scheme for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="setPaddingSchemeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPaddingSchemeName</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.289">setPaddingSchemeName</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;paddingSchemeName)</pre>
<div class="block">Sets the padding scheme name to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider default mode for
the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingPaddingSchemeName--"><code>streamingPaddingSchemeName</code></a> attribute is used when the block cipher is
used for streaming operations.
<p/>
The default value is <code>null</code> to retain the JCA Provider default.
<p/>
<b>NOTE:</b> most standard padding schemes are represented by the <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto"><code>PaddingScheme</code></a> enum.
That enum should be used with the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>paddingScheme</code></a> attribute when possible to retain
type-safety and reduce the possibility of errors. Calling this method however is suitable if the
<code>PaddingScheme</code> enum does not represent the desired scheme.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>paddingSchemeName</code> - the padding scheme name to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA
Provider default padding scheme for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a>
should be used.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>setPaddingScheme(org.apache.shiro.crypto.PaddingScheme)</code></a></dd>
</dl>
</li>
</ul>
<a name="setPaddingScheme-org.apache.shiro.crypto.PaddingScheme-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPaddingScheme</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.314">setPaddingScheme</a>(<a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto">PaddingScheme</a>&nbsp;paddingScheme)</pre>
<div class="block">Sets the padding scheme to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string. A <code>null</code> value indicates that the JCA Provider
default padding scheme for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setStreamingPaddingScheme-org.apache.shiro.crypto.PaddingScheme-"><code>streamingPaddingScheme</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
If the <a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto"><code>PaddingScheme</code></a> enum does represent your desired scheme, you can set the name explicitly
via the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#setPaddingSchemeName-java.lang.String-"><code>paddingSchemeName</code></a> attribute directly. However, because
<code>PaddingScheme</code> represents all standard JDK scheme names already, ensure that your underlying JCA Provider
supports the non-standard name first.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>paddingScheme</code> - the padding scheme to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>null</code> if the JCA Provider
default padding scheme for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="getBlockSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlockSize</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.334">getBlockSize</a>()</pre>
<div class="block">Returns the block cipher's block size to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string or <code>0</code> if the JCA Provider default block size
for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingBlockSize--"><code>streamingBlockSize</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
The default value is <code>0</code> which retains the JCA Provider default.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the block cipher block size to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>0</code> if the JCA Provider default
block size for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="setBlockSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBlockSize</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.357">setBlockSize</a>(int&nbsp;blockSize)</pre>
<div class="block">Sets the block cipher's block size to be used when constructing
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string. <code>0</code> indicates that the JCA Provider default
block size for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.
<p/>
This attribute is used <em>only</em> when constructing the transformation string for block (byte array)
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-byte:A-byte:A-"><code>JcaCipherService.encrypt(byte[], byte[])</code></a> and <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-byte:A-byte:A-"><code>JcaCipherService.decrypt(byte[], byte[])</code></a>). The
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getStreamingBlockSize--"><code>streamingBlockSize</code></a> attribute is used when the block cipher is used for
streaming operations.
<p/>
The default value is <code>0</code> which retains the JCA Provider default.
<p/>
<b>NOTE:</b> block cipher block sizes are very algorithm-specific. If you change this value, ensure that it
will work with the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>blockSize</code> - the block cipher block size to be used when constructing the
<a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true" title="class or interface in javax.crypto"><code>Cipher</code></a> transformation string, or <code>0</code> if the JCA Provider
default block size for the specified <a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getAlgorithmName--"><code>algorithm</code></a> should be used.</dd>
</dl>
</li>
</ul>
<a name="getStreamingModeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStreamingModeName</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#line.374">getStreamingModeName</a>()</pre>
<div class="block">Same purpose as the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getModeName--"><code>modeName</code></a> attribute, but is used instead only for for streaming
operations (<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#encrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.encrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a> and
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#decrypt-java.io.InputStream-java.io.OutputStream-byte:A-"><code>JcaCipherService.decrypt(java.io.InputStream, java.io.OutputStream, byte[])</code></a>).
<p/>
Note that unlike the <a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getModeName--"><code>modeName</code></a> attribute, the default value of this attribute is not
<code>null</code> - it is <a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a> for reasons described in the class-level JavaDoc in the
<code>Streaming</code> section.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the transformation string mode name to be used for streaming operations only.</dd>
</dl>
</li>
</ul>
<a name="setStreamingModeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamingModeName</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.390">setStreamingModeName</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;streamingModeName)</pre>
<div class="block">Sets the transformation string mode name to be used for streaming operations only. The default value is
<a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a> for reasons described in the class-level JavaDoc in the <code>Streaming</code> section.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streamingModeName</code> - transformation string mode name to be used for streaming operations only</dd>
</dl>
</li>
</ul>
<a name="setStreamingMode-org.apache.shiro.crypto.OperationMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamingMode</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.406">setStreamingMode</a>(<a href="../../../../org/apache/shiro/crypto/OperationMode.html" title="enum in org.apache.shiro.crypto">OperationMode</a>&nbsp;mode)</pre>
<div class="block">Sets the transformation string mode to be used for streaming operations only. The default value is
<a href="../../../../org/apache/shiro/crypto/OperationMode.html#CBC"><code>CBC</code></a> for reasons described in the class-level JavaDoc in the <code>Streaming</code> section.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mode</code> - the transformation string mode to be used for streaming operations only</dd>
</dl>
</li>
</ul>
<a name="getStreamingPaddingSchemeName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStreamingPaddingSchemeName</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#line.410">getStreamingPaddingSchemeName</a>()</pre>
</li>
</ul>
<a name="setStreamingPaddingSchemeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamingPaddingSchemeName</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.414">setStreamingPaddingSchemeName</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;streamingPaddingSchemeName)</pre>
</li>
</ul>
<a name="setStreamingPaddingScheme-org.apache.shiro.crypto.PaddingScheme-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamingPaddingScheme</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.420">setStreamingPaddingScheme</a>(<a href="../../../../org/apache/shiro/crypto/PaddingScheme.html" title="enum in org.apache.shiro.crypto">PaddingScheme</a>&nbsp;scheme)</pre>
</li>
</ul>
<a name="getStreamingBlockSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStreamingBlockSize</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.424">getStreamingBlockSize</a>()</pre>
</li>
</ul>
<a name="setStreamingBlockSize-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStreamingBlockSize</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.428">setStreamingBlockSize</a>(int&nbsp;streamingBlockSize)</pre>
</li>
</ul>
<a name="getTransformationString-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransformationString</h4>
<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/6/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/shiro/crypto/DefaultBlockCipherService.html#line.444">getTransformationString</a>(boolean&nbsp;streaming)</pre>
<div class="block">Returns the transformation string to use with the <a href="http://docs.oracle.com/javase/6/docs/api/javax/crypto/Cipher.html?is-external=true#getInstance-java.lang.String-" title="class or interface in javax.crypto"><code>Cipher.getInstance(java.lang.String)</code></a> call. If
<code>streaming</code> is <code>true</code>, a block-cipher transformation string compatible with streaming operations will
be constructed and cached for re-use later (see the class-level JavaDoc for more on using block ciphers
for streaming). If <code>streaming</code> is <code>false</code> a normal block-cipher transformation string will
be constructed and cached for later re-use.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#getTransformationString-boolean-">getTransformationString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto">JcaCipherService</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streaming</code> - if the transformation string is going to be used for a Cipher performing stream-based encryption or not.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the transformation string</dd>
</dl>
</li>
</ul>
<a name="isGenerateInitializationVectors-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isGenerateInitializationVectors</h4>
<pre>protected&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.506">isGenerateInitializationVectors</a>(boolean&nbsp;streaming)</pre>
<div class="block">Overrides the parent implementation to ensure initialization vectors are always generated if streaming is
enabled (block ciphers <em>must</em> use initialization vectors if they are to be used as a stream cipher). If
not being used as a stream cipher, then the value is computed based on whether or not the currently configured
<a href="../../../../org/apache/shiro/crypto/DefaultBlockCipherService.html#getModeName--"><code>modeName</code></a> is compatible with initialization vectors as well as the result of the configured
<a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#setGenerateInitializationVectors-boolean-"><code>generateInitializationVectors</code></a> value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#isGenerateInitializationVectors-boolean-">isGenerateInitializationVectors</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto">JcaCipherService</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>streaming</code> - whether or not streaming is being performed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if streaming or a value computed based on if the currently configured mode is compatible
with initialization vectors.</dd>
</dl>
</li>
</ul>
<a name="generateInitializationVector-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>generateInitializationVector</h4>
<pre>protected&nbsp;byte[]&nbsp;<a href="../../../../src-html/org/apache/shiro/crypto/DefaultBlockCipherService.html#line.511">generateInitializationVector</a>(boolean&nbsp;streaming)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html#generateInitializationVector-boolean-">generateInitializationVector</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto">JcaCipherService</a></code></dd>
</dl>
</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/DefaultBlockCipherService.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/shiro/crypto/CryptoException.html" title="class in org.apache.shiro.crypto"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/shiro/crypto/JcaCipherService.html" title="class in org.apache.shiro.crypto"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/shiro/crypto/DefaultBlockCipherService.html" target="_top">Frames</a></li>
<li><a href="DefaultBlockCipherService.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>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&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; 2004&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>