<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
<span class="sourceLineNo">009</span> *<a name="line.9"></a>
<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
<span class="sourceLineNo">011</span> *<a name="line.11"></a>
<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing,<a name="line.12"></a>
<span class="sourceLineNo">013</span> * software distributed under the License is distributed on an<a name="line.13"></a>
<span class="sourceLineNo">014</span> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY<a name="line.14"></a>
<span class="sourceLineNo">015</span> * KIND, either express or implied.  See the License for the<a name="line.15"></a>
<span class="sourceLineNo">016</span> * specific language governing permissions and limitations<a name="line.16"></a>
<span class="sourceLineNo">017</span> * under the License.<a name="line.17"></a>
<span class="sourceLineNo">018</span> */<a name="line.18"></a>
<span class="sourceLineNo">019</span>package org.apache.shiro.crypto;<a name="line.19"></a>
<span class="sourceLineNo">020</span><a name="line.20"></a>
<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
<span class="sourceLineNo">022</span> * A {@code CipherPaddingScheme} represents well-known<a name="line.22"></a>
<span class="sourceLineNo">023</span> * &lt;a href="http://en.wikipedia.org/wiki/Padding_(cryptography)"&gt;padding schemes&lt;/a&gt; supported by JPA providers in a<a name="line.23"></a>
<span class="sourceLineNo">024</span> * type-safe manner.<a name="line.24"></a>
<span class="sourceLineNo">025</span> * &lt;p/&gt;<a name="line.25"></a>
<span class="sourceLineNo">026</span> * When encrypted data is transferred, it is usually desirable to ensure that all 'chunks' transferred are a fixed-length:<a name="line.26"></a>
<span class="sourceLineNo">027</span> * different length blocks might give cryptanalysts clues about what the data might be, among other reasons.  Of course<a name="line.27"></a>
<span class="sourceLineNo">028</span> * not all data will convert to neat fixed-length blocks, so padding schemes are used to 'fill in' (pad) any remaining<a name="line.28"></a>
<span class="sourceLineNo">029</span> * space with unintelligible data.<a name="line.29"></a>
<span class="sourceLineNo">030</span> * &lt;p/&gt;<a name="line.30"></a>
<span class="sourceLineNo">031</span> * Padding schemes can be used in both asymmetric key ciphers as well as symmetric key ciphers (e.g. block ciphers).<a name="line.31"></a>
<span class="sourceLineNo">032</span> * Block-ciphers especially regularly use padding schemes as they are based on the notion of fixed-length block sizes.<a name="line.32"></a>
<span class="sourceLineNo">033</span> *<a name="line.33"></a>
<span class="sourceLineNo">034</span> * @see &lt;a href="http://en.wikipedia.org/wiki/Padding_(cryptography)"&gt;Wikipedia: Cryptographic Padding&lt;/a&gt;<a name="line.34"></a>
<span class="sourceLineNo">035</span> * @since 1.0<a name="line.35"></a>
<span class="sourceLineNo">036</span> */<a name="line.36"></a>
<span class="sourceLineNo">037</span>public enum PaddingScheme {<a name="line.37"></a>
<span class="sourceLineNo">038</span><a name="line.38"></a>
<span class="sourceLineNo">039</span>    /**<a name="line.39"></a>
<span class="sourceLineNo">040</span>     * No padding.  Useful when the block size is 8 bits for block cipher streaming operations. (Because<a name="line.40"></a>
<span class="sourceLineNo">041</span>     * a byte is the most primitive block size, there is nothing to pad).<a name="line.41"></a>
<span class="sourceLineNo">042</span>     */<a name="line.42"></a>
<span class="sourceLineNo">043</span>    NONE("NoPadding"),<a name="line.43"></a>
<span class="sourceLineNo">044</span><a name="line.44"></a>
<span class="sourceLineNo">045</span>    /**<a name="line.45"></a>
<span class="sourceLineNo">046</span>     * Padding scheme as defined in the W3C's &amp;quot;XML Encryption Syntax and Processing&amp;quot; document,<a name="line.46"></a>
<span class="sourceLineNo">047</span>     * &lt;a href="http://www.w3.org/TR/xmlenc-core/#sec-Alg-Block"&gt;Section 5.2 - Block Encryption Algorithms&lt;/a&gt;.<a name="line.47"></a>
<span class="sourceLineNo">048</span>     */<a name="line.48"></a>
<span class="sourceLineNo">049</span>    ISO10126("ISO10126Padding"),<a name="line.49"></a>
<span class="sourceLineNo">050</span><a name="line.50"></a>
<span class="sourceLineNo">051</span>    /**<a name="line.51"></a>
<span class="sourceLineNo">052</span>     * Optimal Asymmetric Encryption Padding defined in RSA's &lt;a href="http://en.wikipedia.org/wiki/PKCS1"&gt;PKSC#1<a name="line.52"></a>
<span class="sourceLineNo">053</span>     * standard&lt;/a&gt; (aka &lt;a href="http://tools.ietf.org/html/rfc3447"&gt;RFC 3447&lt;/a&gt;).<a name="line.53"></a>
<span class="sourceLineNo">054</span>     * &lt;p/&gt;<a name="line.54"></a>
<span class="sourceLineNo">055</span>     * &lt;b&gt;NOTE:&lt;/b&gt; using this padding requires initializing {@link javax.crypto.Cipher Cipher} instances with a<a name="line.55"></a>
<span class="sourceLineNo">056</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object which provides the 1) message digest and<a name="line.56"></a>
<span class="sourceLineNo">057</span>     * 2) mask generation function to use for the scheme.<a name="line.57"></a>
<span class="sourceLineNo">058</span>     * &lt;h3&gt;Convenient Alternatives&lt;/h3&gt;<a name="line.58"></a>
<span class="sourceLineNo">059</span>     * While using this scheme enables you full customization of the message digest + mask generation function<a name="line.59"></a>
<span class="sourceLineNo">060</span>     * combination, it does require the extra burden of providing your own {@code OAEPParameterSpec} object.  This is<a name="line.60"></a>
<span class="sourceLineNo">061</span>     * often unnecessary, because most combinations are fairly standard.  These common combinations are pre-defined<a name="line.61"></a>
<span class="sourceLineNo">062</span>     * in this enum in the {@code OAEP}* variants.<a name="line.62"></a>
<span class="sourceLineNo">063</span>     * &lt;p/&gt;<a name="line.63"></a>
<span class="sourceLineNo">064</span>     * If you find that these common combinations still do not meet your needs, then you will need to<a name="line.64"></a>
<span class="sourceLineNo">065</span>     * specify your own message digest and mask generation function, either as an {@code OAEPParameterSpec} object<a name="line.65"></a>
<span class="sourceLineNo">066</span>     * during Cipher initialization or, maybe more easily, in the scheme name directly.  If you want to use scheme name<a name="line.66"></a>
<span class="sourceLineNo">067</span>     * approach, the name format is specified in the<a name="line.67"></a>
<span class="sourceLineNo">068</span>     * &lt;a href="http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html"&gt;Standard Names&lt;/a&gt;<a name="line.68"></a>
<span class="sourceLineNo">069</span>     * document in the &lt;code&gt;Cipher Algorithm Padding&lt;/code&gt; section.<a name="line.69"></a>
<span class="sourceLineNo">070</span>     *<a name="line.70"></a>
<span class="sourceLineNo">071</span>     * @see #OAEPWithMd5AndMgf1<a name="line.71"></a>
<span class="sourceLineNo">072</span>     * @see #OAEPWithSha1AndMgf1<a name="line.72"></a>
<span class="sourceLineNo">073</span>     * @see #OAEPWithSha256AndMgf1<a name="line.73"></a>
<span class="sourceLineNo">074</span>     * @see #OAEPWithSha384AndMgf1<a name="line.74"></a>
<span class="sourceLineNo">075</span>     * @see #OAEPWithSha512AndMgf1<a name="line.75"></a>
<span class="sourceLineNo">076</span>     */<a name="line.76"></a>
<span class="sourceLineNo">077</span>    OAEP("OAEPPadding"),<a name="line.77"></a>
<span class="sourceLineNo">078</span><a name="line.78"></a>
<span class="sourceLineNo">079</span>    /**<a name="line.79"></a>
<span class="sourceLineNo">080</span>     * Optimal Asymmetric Encryption Padding with {@code MD5} message digest and {@code MGF1} mask generation function.<a name="line.80"></a>
<span class="sourceLineNo">081</span>     * &lt;p/&gt;<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function.<a name="line.82"></a>
<span class="sourceLineNo">083</span>     * When using this padding scheme, there is no need to init the {@code Cipher} instance with an<a name="line.83"></a>
<span class="sourceLineNo">084</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object, as it is already 'built in' to the scheme<a name="line.84"></a>
<span class="sourceLineNo">085</span>     * name (unlike the {@link #OAEP OAEP} scheme, which requires a bit more work).<a name="line.85"></a>
<span class="sourceLineNo">086</span>     */<a name="line.86"></a>
<span class="sourceLineNo">087</span>    OAEPWithMd5AndMgf1("OAEPWithMD5AndMGF1Padding"),<a name="line.87"></a>
<span class="sourceLineNo">088</span><a name="line.88"></a>
<span class="sourceLineNo">089</span>    /**<a name="line.89"></a>
<span class="sourceLineNo">090</span>     * Optimal Asymmetric Encryption Padding with {@code SHA-1} message digest and {@code MGF1} mask generation function.<a name="line.90"></a>
<span class="sourceLineNo">091</span>     * &lt;p/&gt;<a name="line.91"></a>
<span class="sourceLineNo">092</span>     * This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function.<a name="line.92"></a>
<span class="sourceLineNo">093</span>     * When using this padding scheme, there is no need to init the {@code Cipher} instance with an<a name="line.93"></a>
<span class="sourceLineNo">094</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object, as it is already 'built in' to the scheme<a name="line.94"></a>
<span class="sourceLineNo">095</span>     * name (unlike the {@link #OAEP OAEP} scheme, which requires a bit more work).<a name="line.95"></a>
<span class="sourceLineNo">096</span>     */<a name="line.96"></a>
<span class="sourceLineNo">097</span>    OAEPWithSha1AndMgf1("OAEPWithSHA-1AndMGF1Padding"),<a name="line.97"></a>
<span class="sourceLineNo">098</span><a name="line.98"></a>
<span class="sourceLineNo">099</span>    /**<a name="line.99"></a>
<span class="sourceLineNo">100</span>     * Optimal Asymmetric Encryption Padding with {@code SHA-256} message digest and {@code MGF1} mask generation function.<a name="line.100"></a>
<span class="sourceLineNo">101</span>     * &lt;p/&gt;<a name="line.101"></a>
<span class="sourceLineNo">102</span>     * This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function.<a name="line.102"></a>
<span class="sourceLineNo">103</span>     * When using this padding scheme, there is no need to init the {@code Cipher} instance with an<a name="line.103"></a>
<span class="sourceLineNo">104</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object, as it is already 'built in' to the scheme<a name="line.104"></a>
<span class="sourceLineNo">105</span>     * name (unlike the {@link #OAEP OAEP} scheme, which requires a bit more work).<a name="line.105"></a>
<span class="sourceLineNo">106</span>     */<a name="line.106"></a>
<span class="sourceLineNo">107</span>    OAEPWithSha256AndMgf1("OAEPWithSHA-256AndMGF1Padding"),<a name="line.107"></a>
<span class="sourceLineNo">108</span><a name="line.108"></a>
<span class="sourceLineNo">109</span>    /**<a name="line.109"></a>
<span class="sourceLineNo">110</span>     * Optimal Asymmetric Encryption Padding with {@code SHA-384} message digest and {@code MGF1} mask generation function.<a name="line.110"></a>
<span class="sourceLineNo">111</span>     * &lt;p/&gt;<a name="line.111"></a>
<span class="sourceLineNo">112</span>     * This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function.<a name="line.112"></a>
<span class="sourceLineNo">113</span>     * When using this padding scheme, there is no need to init the {@code Cipher} instance with an<a name="line.113"></a>
<span class="sourceLineNo">114</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object, as it is already 'built in' to the scheme<a name="line.114"></a>
<span class="sourceLineNo">115</span>     * name (unlike the {@link #OAEP OAEP} scheme, which requires a bit more work).<a name="line.115"></a>
<span class="sourceLineNo">116</span>     */<a name="line.116"></a>
<span class="sourceLineNo">117</span>    OAEPWithSha384AndMgf1("OAEPWithSHA-384AndMGF1Padding"),<a name="line.117"></a>
<span class="sourceLineNo">118</span><a name="line.118"></a>
<span class="sourceLineNo">119</span>    /**<a name="line.119"></a>
<span class="sourceLineNo">120</span>     * Optimal Asymmetric Encryption Padding with {@code SHA-512} message digest and {@code MGF1} mask generation function.<a name="line.120"></a>
<span class="sourceLineNo">121</span>     * &lt;p/&gt;<a name="line.121"></a>
<span class="sourceLineNo">122</span>     * This is a convenient pre-defined OAEP padding scheme that embeds the message digest and mask generation function.<a name="line.122"></a>
<span class="sourceLineNo">123</span>     * When using this padding scheme, there is no need to init the {@code Cipher} instance with an<a name="line.123"></a>
<span class="sourceLineNo">124</span>     * {@link javax.crypto.spec.OAEPParameterSpec OAEPParameterSpec} object, as it is already 'built in' to the scheme<a name="line.124"></a>
<span class="sourceLineNo">125</span>     * name (unlike the {@link #OAEP OAEP} scheme, which requires a bit more work).<a name="line.125"></a>
<span class="sourceLineNo">126</span>     */<a name="line.126"></a>
<span class="sourceLineNo">127</span>    OAEPWithSha512AndMgf1("OAEPWithSHA-512AndMGF1Padding"),<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
<span class="sourceLineNo">129</span>    /**<a name="line.129"></a>
<span class="sourceLineNo">130</span>     * Padding scheme used with the {@code RSA} algorithm defined in RSA's<a name="line.130"></a>
<span class="sourceLineNo">131</span>     * &lt;a href="http://en.wikipedia.org/wiki/PKCS1"&gt;PKSC#1 standard&lt;/a&gt; (aka<a name="line.131"></a>
<span class="sourceLineNo">132</span>     * &lt;a href="http://tools.ietf.org/html/rfc3447"&gt;RFC 3447&lt;/a&gt;).<a name="line.132"></a>
<span class="sourceLineNo">133</span>     */<a name="line.133"></a>
<span class="sourceLineNo">134</span>    PKCS1("PKCS1Padding"),<a name="line.134"></a>
<span class="sourceLineNo">135</span><a name="line.135"></a>
<span class="sourceLineNo">136</span>    /**<a name="line.136"></a>
<span class="sourceLineNo">137</span>     * Padding scheme defined in RSA's &lt;a href="http://www.rsa.com/rsalabs/node.asp?id=2127"&gt;Password-Based<a name="line.137"></a>
<span class="sourceLineNo">138</span>     * Cryptography Standard&lt;/a&gt;.<a name="line.138"></a>
<span class="sourceLineNo">139</span>     */<a name="line.139"></a>
<span class="sourceLineNo">140</span>    PKCS5("PKCS5Padding"),<a name="line.140"></a>
<span class="sourceLineNo">141</span><a name="line.141"></a>
<span class="sourceLineNo">142</span>    /**<a name="line.142"></a>
<span class="sourceLineNo">143</span>     * Padding scheme defined in the &lt;a href="http://www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt"&gt;SSL<a name="line.143"></a>
<span class="sourceLineNo">144</span>     * 3.0 specification&lt;/a&gt;, section &lt;code&gt;5.2.3.2 (CBC block cipher)&lt;/code&gt;.<a name="line.144"></a>
<span class="sourceLineNo">145</span>     */<a name="line.145"></a>
<span class="sourceLineNo">146</span>    SSL3("SSL3Padding");<a name="line.146"></a>
<span class="sourceLineNo">147</span><a name="line.147"></a>
<span class="sourceLineNo">148</span>    private final String transformationName;<a name="line.148"></a>
<span class="sourceLineNo">149</span><a name="line.149"></a>
<span class="sourceLineNo">150</span>    private PaddingScheme(String transformationName) {<a name="line.150"></a>
<span class="sourceLineNo">151</span>        this.transformationName = transformationName;<a name="line.151"></a>
<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
<span class="sourceLineNo">153</span><a name="line.153"></a>
<span class="sourceLineNo">154</span>    /**<a name="line.154"></a>
<span class="sourceLineNo">155</span>     * Returns the actual string name to use when building the {@link javax.crypto.Cipher Cipher}<a name="line.155"></a>
<span class="sourceLineNo">156</span>     * {@code transformation string}.<a name="line.156"></a>
<span class="sourceLineNo">157</span>     *<a name="line.157"></a>
<span class="sourceLineNo">158</span>     * @return the actual string name to use when building the {@link javax.crypto.Cipher Cipher}<a name="line.158"></a>
<span class="sourceLineNo">159</span>     *         {@code transformation string}.<a name="line.159"></a>
<span class="sourceLineNo">160</span>     * @see javax.crypto.Cipher#getInstance(String)<a name="line.160"></a>
<span class="sourceLineNo">161</span>     */<a name="line.161"></a>
<span class="sourceLineNo">162</span>    public String getTransformationName() {<a name="line.162"></a>
<span class="sourceLineNo">163</span>        return this.transformationName;<a name="line.163"></a>
<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
<span class="sourceLineNo">165</span>}<a name="line.165"></a>




























































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