<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span><a id="line.1">/*</a>
<span class="sourceLineNo">002</span><a id="line.2"> * Licensed to the Apache Software Foundation (ASF) under one</a>
<span class="sourceLineNo">003</span><a id="line.3"> * or more contributor license agreements.  See the NOTICE file</a>
<span class="sourceLineNo">004</span><a id="line.4"> * distributed with this work for additional information</a>
<span class="sourceLineNo">005</span><a id="line.5"> * regarding copyright ownership.  The ASF licenses this file</a>
<span class="sourceLineNo">006</span><a id="line.6"> * to you under the Apache License, Version 2.0 (the</a>
<span class="sourceLineNo">007</span><a id="line.7"> * "License"); you may not use this file except in compliance</a>
<span class="sourceLineNo">008</span><a id="line.8"> * with the License.  You may obtain a copy of the License at</a>
<span class="sourceLineNo">009</span><a id="line.9"> *</a>
<span class="sourceLineNo">010</span><a id="line.10"> *     http://www.apache.org/licenses/LICENSE-2.0</a>
<span class="sourceLineNo">011</span><a id="line.11"> *</a>
<span class="sourceLineNo">012</span><a id="line.12"> * Unless required by applicable law or agreed to in writing,</a>
<span class="sourceLineNo">013</span><a id="line.13"> * software distributed under the License is distributed on an</a>
<span class="sourceLineNo">014</span><a id="line.14"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</a>
<span class="sourceLineNo">015</span><a id="line.15"> * KIND, either express or implied.  See the License for the</a>
<span class="sourceLineNo">016</span><a id="line.16"> * specific language governing permissions and limitations</a>
<span class="sourceLineNo">017</span><a id="line.17"> * under the License.</a>
<span class="sourceLineNo">018</span><a id="line.18"> */</a>
<span class="sourceLineNo">019</span><a id="line.19">package org.apache.shiro.crypto;</a>
<span class="sourceLineNo">020</span><a id="line.20"></a>
<span class="sourceLineNo">021</span><a id="line.21">import javax.crypto.spec.GCMParameterSpec;</a>
<span class="sourceLineNo">022</span><a id="line.22">import java.security.spec.AlgorithmParameterSpec;</a>
<span class="sourceLineNo">023</span><a id="line.23"></a>
<span class="sourceLineNo">024</span><a id="line.24">/**</a>
<span class="sourceLineNo">025</span><a id="line.25"> * {@code CipherService} using the {@code AES} cipher algorithm for all encryption, decryption, and key operations.</a>
<span class="sourceLineNo">026</span><a id="line.26"> * &lt;p/&gt;</a>
<span class="sourceLineNo">027</span><a id="line.27"> * The AES algorithm can support key sizes of {@code 128}, {@code 192} and {@code 256} bits&lt;b&gt;*&lt;/b&gt;.  This implementation</a>
<span class="sourceLineNo">028</span><a id="line.28"> * defaults to 128 bits.</a>
<span class="sourceLineNo">029</span><a id="line.29"> * &lt;p/&gt;</a>
<span class="sourceLineNo">030</span><a id="line.30"> * Note that this class retains changes the parent class's default {@link OperationMode#CBC CBC} mode to {@link OperationMode#GCM GCM} of operation</a>
<span class="sourceLineNo">031</span><a id="line.31"> * instead of the typical JDK default of {@link OperationMode#ECB ECB}.  {@code ECB} should not be used in</a>
<span class="sourceLineNo">032</span><a id="line.32"> * security-sensitive environments because {@code ECB} does not allow for initialization vectors, which are</a>
<span class="sourceLineNo">033</span><a id="line.33"> * considered necessary for strong encryption.  See the {@link DefaultBlockCipherService parent class}'s JavaDoc and the</a>
<span class="sourceLineNo">034</span><a id="line.34"> * {@link JcaCipherService JcaCipherService} JavaDoc for more on why the JDK default should not be used and is not</a>
<span class="sourceLineNo">035</span><a id="line.35"> * used in this implementation.</a>
<span class="sourceLineNo">036</span><a id="line.36"> * &lt;p/&gt;</a>
<span class="sourceLineNo">037</span><a id="line.37"> * &lt;b&gt;*&lt;/b&gt; Generating and using AES key sizes greater than 128 require installation of the</a>
<span class="sourceLineNo">038</span><a id="line.38"> * &lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;Java Cryptography Extension (JCE) Unlimited Strength</a>
<span class="sourceLineNo">039</span><a id="line.39"> * Jurisdiction Policy files&lt;/a&gt;.</a>
<span class="sourceLineNo">040</span><a id="line.40"> *</a>
<span class="sourceLineNo">041</span><a id="line.41"> * @since 1.0</a>
<span class="sourceLineNo">042</span><a id="line.42"> */</a>
<span class="sourceLineNo">043</span><a id="line.43">public class AesCipherService extends DefaultBlockCipherService {</a>
<span class="sourceLineNo">044</span><a id="line.44"></a>
<span class="sourceLineNo">045</span><a id="line.45">    private static final String ALGORITHM_NAME = "AES";</a>
<span class="sourceLineNo">046</span><a id="line.46"></a>
<span class="sourceLineNo">047</span><a id="line.47">    /**</a>
<span class="sourceLineNo">048</span><a id="line.48">     * Creates a new {@link CipherService} instance using the {@code AES} cipher algorithm with the following</a>
<span class="sourceLineNo">049</span><a id="line.49">     * important cipher default attributes:</a>
<span class="sourceLineNo">050</span><a id="line.50">     * &lt;table&gt;</a>
<span class="sourceLineNo">051</span><a id="line.51">     * &lt;tr&gt;</a>
<span class="sourceLineNo">052</span><a id="line.52">     * &lt;th&gt;Attribute&lt;/th&gt;</a>
<span class="sourceLineNo">053</span><a id="line.53">     * &lt;th&gt;Value&lt;/th&gt;</a>
<span class="sourceLineNo">054</span><a id="line.54">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">055</span><a id="line.55">     * &lt;tr&gt;</a>
<span class="sourceLineNo">056</span><a id="line.56">     * &lt;td&gt;{@link #setKeySize keySize}&lt;/td&gt;</a>
<span class="sourceLineNo">057</span><a id="line.57">     * &lt;td&gt;{@code 128} bits&lt;/td&gt;</a>
<span class="sourceLineNo">058</span><a id="line.58">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">059</span><a id="line.59">     * &lt;tr&gt;</a>
<span class="sourceLineNo">060</span><a id="line.60">     * &lt;td&gt;{@link #setBlockSize blockSize}&lt;/td&gt;</a>
<span class="sourceLineNo">061</span><a id="line.61">     * &lt;td&gt;{@code 128} bits (required for {@code AES}&lt;/td&gt;</a>
<span class="sourceLineNo">062</span><a id="line.62">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">063</span><a id="line.63">     * &lt;tr&gt;</a>
<span class="sourceLineNo">064</span><a id="line.64">     * &lt;td&gt;{@link #setMode mode}&lt;/td&gt;</a>
<span class="sourceLineNo">065</span><a id="line.65">     * &lt;td&gt;{@link OperationMode#GCM GCM}&lt;b&gt;*&lt;/b&gt;&lt;/td&gt;</a>
<span class="sourceLineNo">066</span><a id="line.66">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">067</span><a id="line.67">     * &lt;tr&gt;</a>
<span class="sourceLineNo">068</span><a id="line.68">     * &lt;td&gt;{@link #setPaddingScheme paddingScheme}&lt;/td&gt;</a>
<span class="sourceLineNo">069</span><a id="line.69">     * &lt;td&gt;{@link PaddingScheme#NONE NoPadding}***&lt;/td&gt;</a>
<span class="sourceLineNo">070</span><a id="line.70">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">071</span><a id="line.71">     * &lt;tr&gt;</a>
<span class="sourceLineNo">072</span><a id="line.72">     * &lt;td&gt;{@link #setInitializationVectorSize(int) initializationVectorSize}&lt;/td&gt;</a>
<span class="sourceLineNo">073</span><a id="line.73">     * &lt;td&gt;{@code 128} bits&lt;/td&gt;</a>
<span class="sourceLineNo">074</span><a id="line.74">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">075</span><a id="line.75">     * &lt;tr&gt;</a>
<span class="sourceLineNo">076</span><a id="line.76">     * &lt;td&gt;{@link #setGenerateInitializationVectors(boolean) generateInitializationVectors}&lt;/td&gt;</a>
<span class="sourceLineNo">077</span><a id="line.77">     * &lt;td&gt;{@code true}&lt;b&gt;**&lt;/b&gt;&lt;/td&gt;</a>
<span class="sourceLineNo">078</span><a id="line.78">     * &lt;/tr&gt;</a>
<span class="sourceLineNo">079</span><a id="line.79">     * &lt;/table&gt;</a>
<span class="sourceLineNo">080</span><a id="line.80">     * &lt;p/&gt;</a>
<span class="sourceLineNo">081</span><a id="line.81">     * &lt;b&gt;*&lt;/b&gt; The {@link OperationMode#GCM GCM} operation mode is used instead of the JDK default {@code ECB} to</a>
<span class="sourceLineNo">082</span><a id="line.82">     * ensure strong encryption.  {@code ECB} should not be used in security-sensitive environments - see the</a>
<span class="sourceLineNo">083</span><a id="line.83">     * {@link DefaultBlockCipherService DefaultBlockCipherService} class JavaDoc's &amp;quot;Operation Mode&amp;quot; section</a>
<span class="sourceLineNo">084</span><a id="line.84">     * for more.</a>
<span class="sourceLineNo">085</span><a id="line.85">     * &lt;p/&gt;</a>
<span class="sourceLineNo">086</span><a id="line.86">     * &lt;b&gt;**&lt;/b&gt;In conjunction with the default {@code GCM} operation mode, initialization vectors are generated by</a>
<span class="sourceLineNo">087</span><a id="line.87">     * default to ensure strong encryption.  See the {@link JcaCipherService JcaCipherService} class JavaDoc for more.</a>
<span class="sourceLineNo">088</span><a id="line.88">     * &lt;p/&gt;</a>
<span class="sourceLineNo">089</span><a id="line.89">     * &lt;b&gt;**&lt;/b&gt;Since {@code GCM} is a stream cipher, padding is implemented in the operation mode and an external padding scheme</a>
<span class="sourceLineNo">090</span><a id="line.90">     * cannot be used in conjunction with {@code GCM}. In fact, {@code AES/GCM/PKCS5Padding} is just an alias in most JVM for</a>
<span class="sourceLineNo">091</span><a id="line.91">     * {@code AES/GCM/NoPadding}.</a>
<span class="sourceLineNo">092</span><a id="line.92">     * &lt;p/&gt;</a>
<span class="sourceLineNo">093</span><a id="line.93">     * &lt;b&gt;NOTE:&lt;/b&gt; As of Java 14, setting a streaming padding for the above example will throw a NoSuchAlgorithmException</a>
<span class="sourceLineNo">094</span><a id="line.94">     * @see &lt;a href="https://www.oracle.com/java/technologies/javase/14-relnote-issues.html#JDK-8180392"&gt;JDK-8180392&lt;/a&gt;</a>
<span class="sourceLineNo">095</span><a id="line.95">     */</a>
<span class="sourceLineNo">096</span><a id="line.96">    public AesCipherService() {</a>
<span class="sourceLineNo">097</span><a id="line.97">        super(ALGORITHM_NAME);</a>
<span class="sourceLineNo">098</span><a id="line.98">        setMode(OperationMode.GCM);</a>
<span class="sourceLineNo">099</span><a id="line.99">        setStreamingMode(OperationMode.GCM);</a>
<span class="sourceLineNo">100</span><a id="line.100">        setPaddingScheme(PaddingScheme.NONE);</a>
<span class="sourceLineNo">101</span><a id="line.101">        setStreamingPaddingScheme(PaddingScheme.NONE);</a>
<span class="sourceLineNo">102</span><a id="line.102">    }</a>
<span class="sourceLineNo">103</span><a id="line.103"></a>
<span class="sourceLineNo">104</span><a id="line.104">    @Override</a>
<span class="sourceLineNo">105</span><a id="line.105">    protected AlgorithmParameterSpec createParameterSpec(byte[] iv, boolean streaming) {</a>
<span class="sourceLineNo">106</span><a id="line.106"></a>
<span class="sourceLineNo">107</span><a id="line.107">        if ((streaming &amp;&amp; OperationMode.GCM.name().equals(getStreamingModeName()))</a>
<span class="sourceLineNo">108</span><a id="line.108">        || (!streaming &amp;&amp; OperationMode.GCM.name().equals(getModeName()))) {</a>
<span class="sourceLineNo">109</span><a id="line.109">            return new GCMParameterSpec(getKeySize(), iv);</a>
<span class="sourceLineNo">110</span><a id="line.110">        }</a>
<span class="sourceLineNo">111</span><a id="line.111"></a>
<span class="sourceLineNo">112</span><a id="line.112">        return super.createParameterSpec(iv, streaming);</a>
<span class="sourceLineNo">113</span><a id="line.113">    }</a>
<span class="sourceLineNo">114</span><a id="line.114">}</a>




























































</pre>
</div>
</main>
</body>
</html>
