1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
package org.xwiki.crypto.password.internal; |
21 |
|
|
22 |
|
import javax.crypto.EncryptedPrivateKeyInfo; |
23 |
|
|
24 |
|
import org.bouncycastle.util.encoders.Base64; |
25 |
|
import org.bouncycastle.util.encoders.Hex; |
26 |
|
import org.junit.Before; |
27 |
|
import org.junit.Rule; |
28 |
|
import org.junit.Test; |
29 |
|
import org.xwiki.crypto.AsymmetricKeyFactory; |
30 |
|
import org.xwiki.crypto.cipher.internal.symmetric.factory.BcAesCbcPaddedCipherFactory; |
31 |
|
import org.xwiki.crypto.cipher.internal.symmetric.factory.BcBlowfishCbcPaddedCipherFactory; |
32 |
|
import org.xwiki.crypto.cipher.internal.symmetric.factory.BcDesCbcPaddedCipherFactory; |
33 |
|
import org.xwiki.crypto.cipher.internal.symmetric.factory.BcDesEdeCbcPaddedCipherFactory; |
34 |
|
import org.xwiki.crypto.cipher.internal.symmetric.factory.BcRc2CbcPaddedCipherFactory; |
35 |
|
import org.xwiki.crypto.internal.DefaultSecureRandomProvider; |
36 |
|
import org.xwiki.crypto.internal.asymmetric.keyfactory.BcRSAKeyFactory; |
37 |
|
import org.xwiki.crypto.internal.asymmetric.keyfactory.DefaultKeyFactory; |
38 |
|
import org.xwiki.crypto.params.cipher.asymmetric.PrivateKeyParameters; |
39 |
|
import org.xwiki.crypto.params.cipher.symmetric.KeyWithIVParameters; |
40 |
|
import org.xwiki.crypto.password.PasswordToByteConverter; |
41 |
|
import org.xwiki.crypto.password.PrivateKeyPasswordBasedEncryptor; |
42 |
|
import org.xwiki.crypto.password.internal.kdf.factory.BcPKCS5S2KeyDerivationFunctionFactory; |
43 |
|
import org.xwiki.crypto.password.internal.kdf.factory.BcScryptKeyDerivationFunctionFactory; |
44 |
|
import org.xwiki.crypto.password.internal.kdf.factory.DefaultKeyDerivationFunctionFactory; |
45 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2AesCipherFactory; |
46 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2BlowfishCipherFactory; |
47 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2CipherFactory; |
48 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2DesCipherFactory; |
49 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2DesEdeCipherFactory; |
50 |
|
import org.xwiki.crypto.password.internal.pbe.factory.BcPBES2Rc2CipherFactory; |
51 |
|
import org.xwiki.crypto.password.params.PBKDF2Parameters; |
52 |
|
import org.xwiki.test.annotation.ComponentList; |
53 |
|
import org.xwiki.test.mockito.MockitoComponentMockingRule; |
54 |
|
|
55 |
|
import static org.hamcrest.CoreMatchers.equalTo; |
56 |
|
import static org.junit.Assert.assertThat; |
57 |
|
|
58 |
|
@ComponentList({DefaultKeyDerivationFunctionFactory.class, BcPKCS5S2KeyDerivationFunctionFactory.class, |
59 |
|
BcPBES2Rc2CipherFactory.class, BcRc2CbcPaddedCipherFactory.class, |
60 |
|
BcPBES2DesCipherFactory.class, BcDesCbcPaddedCipherFactory.class, |
61 |
|
BcPBES2DesEdeCipherFactory.class, BcDesEdeCbcPaddedCipherFactory.class, |
62 |
|
BcPBES2BlowfishCipherFactory.class, BcBlowfishCbcPaddedCipherFactory.class, |
63 |
|
BcPBES2AesCipherFactory.class, BcAesCbcPaddedCipherFactory.class, BcScryptKeyDerivationFunctionFactory.class, |
64 |
|
BcPBES2CipherFactory.class, BcRSAKeyFactory.class, DefaultKeyFactory.class, DefaultSecureRandomProvider.class}) |
|
|
| 93.1% |
Uncovered Elements: 2 (29) |
Complexity: 10 |
Complexity Density: 0.56 |
|
65 |
|
public class DefaultPrivateKeyPasswordBasedEncryptorTest |
66 |
|
{ |
67 |
|
private static final boolean IS_JRE_8 = System.getProperty("java.specification.version").equals("1.8"); |
68 |
|
private static final byte[] PASSWORD = PasswordToByteConverter.convert("changeit"); |
69 |
|
|
70 |
|
|
71 |
|
|
72 |
|
|
73 |
|
private static final byte[] RSAKEY = Base64.decode( |
74 |
|
|
75 |
|
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDIY6+Wgj6MqdEd" |
76 |
|
+ "Yq6FgH5xMgTBmFqAonR/eshjxY2C6MHs+WmCmNSDik2NgZWIaODvOF9uOEK2U0Zf" |
77 |
|
+ "JEG2LcZxoeIEgg/mfII2f4DLy1JYajm/llzwFBzAd/Rkcs3qwP2ba5VKn/pSqNLl" |
78 |
|
+ "nKHMXkXO+9SjfHDx95x2dK1dB8eGQGculOMcTm3uK7UlWNO4TSlwG9qHZ1aoM3GI" |
79 |
|
+ "g5C1fIpbxJqDVjFq6fFAapE3KRIWIQmKd3E5ICcDErqr/AapxnfO8UFNxVWSOLW7" |
80 |
|
+ "ZAfis4w/c8/EAgyQHw42R0dNyjUOZsToF8McCsOpRjGolSU8aUyqspvd8IWJPd5d" |
81 |
|
+ "6HBHueXNAgMBAAECggEAV3q9MpVVPQ79TTjBO2Km0D+nt+QMzk8dUHGHfZbGejmm" |
82 |
|
+ "Pw96shqJ24rK5FWHs+8lEwmnD3TcGsAr3mjzjtZY5U5oXtNwoYwFRElRLqZqIlLt" |
83 |
|
+ "NugrVltRWeyD8j30CuGJVQoYOGWyX9d3ielg8NjO3NcvMtembttLoKK68/vrbH11" |
84 |
|
+ "9W7wr5p8/xyMfyl9curnmCFk5QqJ1FBpjPWY05NDIBCUJB0tGAqViCpxEeWPSlvb" |
85 |
|
+ "xcElqWfdbtnsYUxYU+iOTHHotoKnz4nLHYK2/njMhlCEyMXfu1DJOd8rg5yXewJF" |
86 |
|
+ "v6NhXgWStSexAT1bZ17LROazVcHfWB9QmXF1Fm7vOQKBgQD+dZxPDOi3Y4gCFegn" |
87 |
|
+ "Z+epNyl2aPTkseEZxrIqPKLHsGxUfYjQqkX2RdfTrq2vf4vFlN6uCXhSlZKXfLH/" |
88 |
|
+ "iQ8FAzqenhVVHK2fv5xB0SE5zNmcHDrHshl+/zUNI2u5AMFECVO2SVbgoFjvgkou" |
89 |
|
+ "FolK8XUXfHfb4f732LUyYI0lEwKBgQDJmkWHhzekz3P5iWaAt1SH8bZpt2hqa6Bx" |
90 |
|
+ "A4VvMdtmjCxEDETN0Rb3CPYxw3qa3xGfW1y1j/49xi4gr69yaT2Tbca7PFGUmWRo" |
91 |
|
+ "OJwfCUB5uBUi6UVytK19OVKReOm4666x8P3YO4cxxSI/HeoSU0HR1kkX9rGmrsGN" |
92 |
|
+ "MgUQ15+FnwKBgAKf6/DUzUG3ARwkZbSiWb1hGEhkZMJHI29EoWnWHke5BiUI9nRQ" |
93 |
|
+ "jVAxADzqvFfnFOYA1xssddVEPbLaUmu0WjdPBTfFoaqzFQdkzpPPOGyENGpr0B9n" |
94 |
|
+ "MuQgdceg6eeKnnO5NOfYcdD3VnOCAInhKaFgRDjty7604hBkZ9oRLOOJAoGBAIJ+" |
95 |
|
+ "dmUMlGr80XADjTLh+DhqsA1r542DDv44LkXUetS9BOYjHuIuZnQO+/UoOBNJMsn4" |
96 |
|
+ "xGDNzN7FihQkRCeFkZL9arbFi3TpeUGw6vV38qEXE69eWVKvOuEkmpqJLphBDfom" |
97 |
|
+ "KNmvZopDtTAvt9SWybL+xp9ZUpK26ZfwebD2MU63AoGBAOa2Kt01DxoqiWiQP/ds" |
98 |
|
+ "Mc9wOw1zJsSmIK7wEiW3FkCz8uw3UgjF9ymYY/YAW3eZtuUpuxEzyENb9f21p4b2" |
99 |
|
+ "zYoZ7nCUo4TmVXxgCjiEWglg3b/R3xjQr1dAABhTeI8bXMv5r/tMUsnS79uKqwGD" |
100 |
|
+ "2Gc1syc3+055K4qcfZHH0XWu"); |
101 |
|
|
102 |
|
@Rule |
103 |
|
public final MockitoComponentMockingRule<PrivateKeyPasswordBasedEncryptor> mocker = |
104 |
|
new MockitoComponentMockingRule<PrivateKeyPasswordBasedEncryptor>(DefaultPrivateKeyPasswordBasedEncryptor.class); |
105 |
|
|
106 |
|
PrivateKeyPasswordBasedEncryptor encryptor; |
107 |
|
|
108 |
|
PrivateKeyParameters keyParameters; |
109 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
110 |
7 |
@Before... |
111 |
|
public void configure() throws Exception |
112 |
|
{ |
113 |
7 |
this.encryptor = this.mocker.getComponentUnderTest(); |
114 |
7 |
this.keyParameters = |
115 |
|
((AsymmetricKeyFactory) this.mocker.getInstance(AsymmetricKeyFactory.class)).fromPKCS8(RSAKEY); |
116 |
|
} |
117 |
|
|
|
|
| 66.7% |
Uncovered Elements: 2 (6) |
Complexity: 2 |
Complexity Density: 0.5 |
|
118 |
5 |
private void runTestPBES2Conformance(String hint, String iv, int keySize, String salt, byte[] data) throws Exception... |
119 |
|
{ |
120 |
5 |
assertThat(this.encryptor.decrypt(PASSWORD, data).getEncoded(), equalTo(RSAKEY)); |
121 |
|
|
122 |
|
|
123 |
|
|
124 |
|
|
125 |
5 |
if (!IS_JRE_8) { |
126 |
0 |
assertThat(this.encryptor.decrypt(PASSWORD, new EncryptedPrivateKeyInfo(data)).getEncoded(), |
127 |
|
equalTo(RSAKEY)); |
128 |
|
} |
129 |
|
|
130 |
5 |
assertThat(this.encryptor.encrypt(hint, |
131 |
|
new KeyWithIVParameters(PASSWORD, Hex.decode(iv)), |
132 |
|
new PBKDF2Parameters(keySize, 2048, Hex.decode(salt)), |
133 |
|
this.keyParameters), equalTo(data)); |
134 |
|
} |
135 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
136 |
1 |
@Test... |
137 |
|
public void testPBES2ConformanceTestDes() throws Exception |
138 |
|
{ |
139 |
1 |
byte[] data = Base64.decode( |
140 |
|
|
141 |
|
"MIIFCzA9BgkqhkiG9w0BBQ0wMDAbBgkqhkiG9w0BBQwwDgQIGBflqeZFz8sCAggA" |
142 |
|
+ "MBEGBSsOAwIHBAgLbTq8mvQ7QASCBMhUPEBJHO0Uvu4bW2bfb0NIvczMuPbFQDQC" |
143 |
|
+ "GnmzPGsa6vLcE+z61rBmPLOT45ZWcbTf867wh0e0KKFERkDh70lgenwYACRcefoE" |
144 |
|
+ "ktuvdjRBpMiSAqr+ucD3ZwyIVp1+I5xUJqLhqxV1Wd5pkwFaZsqxUCRd6DQmZvH4" |
145 |
|
+ "kVw2ulaE1HfT0XTPGO/ewBQ72wZ/XiegYsP7yp4dNIfmwMk03A+V0K8PjQTY6Sui" |
146 |
|
+ "IHeoe9YT0b2J3ocsf38pHAiTmsgnl0ZtedcjlOYJ8yVxXu6h8FO+Xu0MXYGN387J" |
147 |
|
+ "m4OUqLFudtWt8oVTVQuevNO+EzP061gsZnTEUJNvQNwLajdQnmER5ht28snby3tM" |
148 |
|
+ "f4pzwu6asM5RHDD2FBSp5sBD5G/ev0hM6R5MkTBAEcz0CB/TYSMKq1IfWCqHkY1z" |
149 |
|
+ "bvd7Bm19vwoyszXBGEBmhaVC34kYXo3IoTw3ezvXPgSaNk6IUvFavZRvAuJLleWs" |
150 |
|
+ "cpN13G7pbi6WeCYQzml3L2hLP62DP+VLwkYyxUW3CvwLhVP1h2w12tb+cKC+4uih" |
151 |
|
+ "4Of7cjt0R99vNvyTuPJ4HDjcn22KT+NJwPDNviLcBrNs1XxCXFa211nZWDGDC2cf" |
152 |
|
+ "6lCd1JVQczewMfQuFX8lUMuZOfLoAN+wq+ZWLIEtIMC+4bciZWYxzKFijOWKqnd8" |
153 |
|
+ "JhnOTKZ3Ua1txrAYE4Z0jLYI4xXImnGoW42h882aEiWSzsGARD065zXiQr//b5ot" |
154 |
|
+ "TtFXfJ3IiJMMTyss93mirPPzcua8uoGvwvjw3GoxLbNIttX0hmR1NBGyM3MUnghy" |
155 |
|
+ "7lrQssx2FcENuI/zAq/6l3ZT2jGtixch+Eu8mrCBTthWRBap8KIcO428c38C/IJ3" |
156 |
|
+ "bdWmWJw0r401gqbZS2ZoSi0ia+RFM/DByrQl1Cww8Z81v6S4tedxMbmSiI5/vpXt" |
157 |
|
+ "TcM4xQctZr/shYU9CDpxLUznmaRXbnFb77S7ykrJdPgnk+Oq5GYIhrcrxXXwF7+S" |
158 |
|
+ "wg+72F5MVkFhqhzsZ8VGbgpgSw+BFDJd9wHiLM87ywQW4eHYqJfQtO1lPfzAkXfz" |
159 |
|
+ "oPDyGX/Q6Nisy7dVErZ4dTXlUKxXEXAfvZABA08/L+3w+p3HEWm1HJFpZitEKHas" |
160 |
|
+ "dheCNwnwmmyzItSjXBE2kBg9ZtH6Zx9mQpU2ra75dl+X2SvV8096lh7Xt0uHgjgq" |
161 |
|
+ "vtYl2Bc9yBnxcwf6ppI8+VzBTxT/Q3BBBTL5e8RuYlSB+9BTlsp/bgP2prMFL+Lr" |
162 |
|
+ "DJUisjPHJn3gPeG09lcWnAzTdw07/JN83WV3HHRjJ/ot8TdoVix/qlrtK7IPkTH3" |
163 |
|
+ "hyLhPA4V49aOz7f42Jg3Xb0/C3WUEaP3aJ6UEoCVd0856RN9CTOlG95SPH+IoDLP" |
164 |
|
+ "33oFlrRMlqQ0K8Y/j40h/3VbBxaHeWCNiZr3sN5ybxNkT8TaXOr2kWfePsYdGf7c" |
165 |
|
+ "Pbz3IEwUeOD3z/GzDdiYvOfEo4quECEEQj9dWedOVVxD2wtc5jbaaB+HEaxlPNg5" |
166 |
|
+ "5Sqd3F7IPtpoBGl9OOgigBJIP6JQWctjYJYjLGnVn4GpXt8pWclmkQ+SsCSCeYnX" |
167 |
|
+ "Hax2rVBqD3yMRpVw225Dzxb84R1hleqx/N6VJpjmk2agYCTwXKsMyd2tMROOJxo="); |
168 |
|
|
169 |
1 |
runTestPBES2Conformance("PBES2-DES-Pad", "0b6d3abc9af43b40", -1, "1817e5a9e645cfcb", data); |
170 |
|
} |
171 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
172 |
1 |
@Test... |
173 |
|
public void testPBES2ConformanceTestDesEde3() throws Exception |
174 |
|
{ |
175 |
1 |
byte[] data = Base64.decode( |
176 |
|
|
177 |
|
"MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIqpcsbmHTx+gCAggA" |
178 |
|
+ "MBQGCCqGSIb3DQMHBAiEYtVFOafp9ASCBMhnk03sYcXPAU1eYthAr8vueotiNFFr" |
179 |
|
+ "xpbIbhB2cjC/bXd39GxyH/8X36KjVMuBJxFknY630SOBsdTn/H7lN/G8c+fEYTcq" |
180 |
|
+ "porajF/pxr7asdFl94xjnx/DGaQmUJooqqUp8p80On1Otj7xEZtTivlEISY5Pr6y" |
181 |
|
+ "6ou+fKIFKK5QzDzD9C+vLzYJMqhk4YamjxvDOwzYUoDFl+enMHXcuZYpA1yEvqze" |
182 |
|
+ "5lFk+9AxdTbHgOsPECqS3bkq64VGanrfFtqywqLLLhsakcnByjddcHdsFFvhu/dH" |
183 |
|
+ "raFdV3vsHppedqxTHbfFpvVl2+9XTpeBzwvb9XcJ2WUi4JUMtcR1gZwOo8S6q8LL" |
184 |
|
+ "UWzTbGjsZVG3ew4FZ5avAjUCGgiUR47LFleSJ34eWrllUptHzfVTpV5f787gfN1g" |
185 |
|
+ "BRhAJ1YJTWqcalIhd9YEKFxI3sjfWAOLdUW4at4z4yuRZh/uUck4V3ken8/M4JCG" |
186 |
|
+ "/Vy7B9Juf9uHRKFWtl3hYDY32UJoQt0cH7V76y/rjpbhvhVtKaAbcK4ccZ+4JuDb" |
187 |
|
+ "9qbs81Joe8jW4OZtYL/L+g4WboW/FSGlJXxJIP674lnglXXB5C8HT/I/7CzrEEgv" |
188 |
|
+ "wcKKAwZ25+aR7pCYqWdDLUaENQQ/Z1mARGDw9JGszonXJMdMWnQN89DXsmkp6qe/" |
189 |
|
+ "YkmZ3Sm4rrvz9LKc7mW+v+d+WnPTeJ4FBHmnUhGkuZroDl6SrCPjm3qFqj3zvyyV" |
190 |
|
+ "8Lk8xNMm6AEN8IOs7qeUAb811bdpfUzLebZkuNXDMl8KCoyt+nNF8UN7vpCXU3/c" |
191 |
|
+ "PEJahN+XxmRftOR0KKBIKCMKgnR90JenNmSyW2BJbT9D++7ujYoDlL0gTfbYa34a" |
192 |
|
+ "P4H3ChnU0s5KMA2h48UBkDUlwCOn4L860h4sZIDfRkWcptB3HFipeKP0npGAfWfb" |
193 |
|
+ "sQhueC7Ue8XpZIq5QBDOa+Zle3l8KZdmC4+sZYTsDoYm6jKX+LPgUAvvwyCBEUS7" |
194 |
|
+ "0zVrBgXTwFDFuGt5LYROcngfRggekAMa7gWTPbwb0mQgCIvKaVxlu3FO5cNi4ExX" |
195 |
|
+ "tlUUJyNualG+8qsbihqhHQBPs6QYhQ95y4ZndDqMtoyPWLhcOMo/Z/CLMQNhpXRl" |
196 |
|
+ "okJndM7TjzFW05Fqy+cQwl8LTdGVZKUOGW/RwYMD2TPxXEp/XGEDlnREHVjppToT" |
197 |
|
+ "+SlUlc7Dh31PCz5PoRSTvpJrsV2LZAUO9hoGoDYjfBqfUbrd5mFIii/52eJva7o1" |
198 |
|
+ "RcrsHEkLTvu4BOk3Ztp3Zi26atBraADZ2T6UqwrfzZZrD1gI4sORuKN4/jmqt0KQ" |
199 |
|
+ "H4FMJkKZgvJ0Rfjpt6ZqRj99wSnwNfDvr7641WTpB07Ati2LI3Tr6Fx7f2Phfkg1" |
200 |
|
+ "SbzEC+qt3bixORhzFp0PbcULwamSsNVODf/EQic56bKZjOFEC+DFw3LKpvvBG1Fj" |
201 |
|
+ "kGWbfZhSA2GZFUghvhFbFOsuwKh/GDoetFwKXWcM8DM0+aHSPwL61Y5FQ0Kn4DnB" |
202 |
|
+ "ci3lJnSctD0fN3ckDIcTU/Nnza/RMJn1jRwBZc2Ql7/lA98jCM8uKTMVJy76ABf9" |
203 |
|
+ "8lQrLGp6tSMD6jo31DMLVmKA9qed7Mk4QeZiDTm0/6d2GZ6hO8xwvzFRQ6Qy1ETG" |
204 |
|
+ "W5c="); |
205 |
|
|
206 |
1 |
runTestPBES2Conformance("PBES2-DESede-CBC-Pad", "8462d54539a7e9f4", -1, "aa972c6e61d3c7e8", data); |
207 |
|
} |
208 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
209 |
1 |
@Test... |
210 |
|
public void testPBES2ConformanceTestRC2() throws Exception |
211 |
|
{ |
212 |
1 |
byte[] data = Base64.decode( |
213 |
|
|
214 |
|
"MIIFFjBIBgkqhkiG9w0BBQ0wOzAeBgkqhkiG9w0BBQwwEQQI4aRQrNlj6ZECAggA" |
215 |
|
+ "AgEQMBkGCCqGSIb3DQMCMA0CAToECG8qyWz/E/DoBIIEyFBBZXtbGNaIuDvM/J1u" |
216 |
|
+ "l8gKw+zfurof6G7BSxefE8zuVFVhRXc7MnLQml97awOeEzvnGC7y61JELsZ7ROqa" |
217 |
|
+ "1JWjdfURTsxxE4DGyUe+jOu2A1YSsnADCWq2bmvAkbFbV9N3Z1LqIkJNPtfS9KJQ" |
218 |
|
+ "ukDscB51M3m0Y8PaQDrGFBdsRK/lAErOxdLkfRYQItqUnzawF1FuysiYlcQiCC0e" |
219 |
|
+ "JrwiN9B/wW4bvnhQXABlQeI02MsfMPX8GLrlRfoNojLKTMCL1d+WK6dKuIA0QVRq" |
220 |
|
+ "bXzAkqWe2VjIaOHXcbzk9OcLmJAHkGX0pwkYpgSDyD2yqXB4thhkvCc9hlRQObMn" |
221 |
|
+ "Qvj2k5wyc3FzExWRwflTDZqpW9dFGCzjyzvOzfyJ+MWgS4e4a76vPEa79CMTWZcn" |
222 |
|
+ "UgNuSK65g7wRLFm6Ko15jxKAEP9zEGV+mKNBMmkRvL4aWWwbJOK48GYar9RaqC8u" |
223 |
|
+ "qbMTeQB/nfk//2JdxDR5W51dCSk5z64v/1ZEiLz96Y8GV8cc7PwVVjotW/yJEQv1" |
224 |
|
+ "mhWBqeiGLRQdymhU8AKwiNxhw2m1b/CW+pjOUpB21A7P8q3j2h5EqhD1VXneB6pH" |
225 |
|
+ "+RTvFOUzYWp4mz21Ul8qXzc0CLsDm+Lywiqv9hDKMtaCe3cNrR/PFNoFuRYO6fZ7" |
226 |
|
+ "OOK3R7DQ/Us8cMpUJBCuYmBBwQB81fDxiHJdvtq8BmToJ6EYh4KzyTg4SGC1CPlh" |
227 |
|
+ "KjWkzIf0w7eZZj+hP4tKsrkeFsJ3/QSQW53bH7sNxp7uiSEwFpi3Sa/n3ABbOLit" |
228 |
|
+ "HR+O3GSfQIQMeLdZ5kcG2ww1SFEpaYBryBJZPfF7xF4rl5fWkrLasAPgUpTxsZ52" |
229 |
|
+ "UdD6bZb/8Ij3ZkjNJIRaGzCMlfWbUYpM4xBZ4bSQL2OGDYxC37T8TU4s6PIwGpB2" |
230 |
|
+ "zux3razpSBMFM6cT6ROw0zTzQpbDNF3U/wjOoyZmqRNpyr9AfXlsnxjXYzevmBUU" |
231 |
|
+ "IHEXUjEwhoGrVAv0U67YFgxLay9bWU76q6StODcz4flrcgf6Z1SK1J9WnX1FMYGK" |
232 |
|
+ "5HK0krzesjdFSqsx7T4VNv1paf5ql8mvMrIMTT2envm2vwMVG6EkOhGLjVeF/wPA" |
233 |
|
+ "0URcR8Fw9Wh9enObpocFnkqKiQfpyTOLBRIcYdJ07s/ER3HmqcnOPO4am5EqHeUu" |
234 |
|
+ "+3YPVrNuV9E+BMNGKcMFzda5MIJi0rbYlF59Bz5xy8+nxiUqN2SvJYIMh/6egBue" |
235 |
|
+ "MEq/6O6ex5ypPFMlXItmubd3cqW6WMMOGuAxj0ciFLzZTxOwGDqh4G8GvPTZ6OtL" |
236 |
|
+ "fq2mitjPkLOKHplJ+Mjzd6qQIXxv5S7utPvpVnJPimD3jdwfWFXI5sO8pIjTVgbJ" |
237 |
|
+ "ZzkDw8ilLa5dR4e72+KHSlygjy0w2cvDX8kDfZyiRE30gIGQiHH7l/0Sv1GtOxpd" |
238 |
|
+ "2tmDTdA3zaI7W/gukmsMrpfBbGgHVC/YKlRVnfWFEh+a/4LLhc5gywqxyZzC59Dc" |
239 |
|
+ "nDRVPwSIPwWsx74ViClmviq4j0QV+n94JaQ2exgVvddBjluR7+9F+6+BSbfrgCeT" |
240 |
|
+ "nTAowzDF15LOg+/wXaAnSerzIwB1s9xfYyssGuKd31Rc6FBH+iZTZorVGS+8UARa" |
241 |
|
+ "yLHeQoz3pbRtiA=="); |
242 |
|
|
243 |
1 |
runTestPBES2Conformance("PBES2-RC2-CBC-Pad", "6f2ac96cff13f0e8", 16, "e1a450acd963e991", data); |
244 |
|
} |
245 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
246 |
1 |
@Test... |
247 |
|
public void testPBES2ConformanceTestBlowfish() throws Exception |
248 |
|
{ |
249 |
1 |
byte[] data = Base64.decode( |
250 |
|
|
251 |
|
"MIIFDzBBBgkqhkiG9w0BBQ0wNDAbBgkqhkiG9w0BBQwwDgQI+SHyL0TmEd4CAggA" |
252 |
|
+ "MBUGCSsGAQQBl1UBAgQIe5OfjWHHpAMEggTIr/Ma8RAEsq65a1K/AooVkDgwtqRD" |
253 |
|
+ "Q6A5Wx5LOvXRvQ4RLd11ham+GCWxHKWHeMTnLLrW2gQyDdEvMPtM0TRoGmm31npu" |
254 |
|
+ "soEDFLIruE5XUmpzsKZkqztVhNl0pamzsqD6g7vSMlckFORsRInuWq3THVIDoHVi" |
255 |
|
+ "m54JE5RCa/tZMVjmvvYOt1KHJhAqUeyb+CQYZsO6c+mjNBZrvdNFDz4bgutVKreL" |
256 |
|
+ "FQMYJWr4sClAqnvHCvra2SV/mwIBZ1lYj920Qq885+HoSSQfgLOwar5XYCyEb7z1" |
257 |
|
+ "Q+NYMjaDqhEIWvlXsXu7B2YIYoSC6vse4bfXvi93fJtb1CXVjWnDKC8xJs9pqVCx" |
258 |
|
+ "t1P9JsztRHZ5g1daHwu6WQwD/7YRubi0y9pYjHB6H4M7KSWX3CEz/hDccUWoZHKH" |
259 |
|
+ "D/R6cNe12RqVqRr0a5tteUCvFwbXCcwKbTG8n5zd3MS+2FF29S8jvhqNXJOPuykS" |
260 |
|
+ "Sxq1wi73puQWCXAmw5aYy8RBlv9y3TlcaTDO37AkDdhJkWQLWbNy5MzLmh7dhNCQ" |
261 |
|
+ "R2Qy4wz9Mw/1GZYhOYM0kSovMSHcN1jIvw94YPAfflmL+k6VtI2C1iyD4BG8li1h" |
262 |
|
+ "ChCqL02fiLYjBsZquOdE5Fkg6tT6IucB0x35Qfjm8lTwcbVnjVRHnaQyPIMZeN9N" |
263 |
|
+ "UdZqzyb7nf0zI3rbrCHFMPsGX5741VGt2Mz9t/rQEXjezgkEuxn54Z/Q39Rm0vmX" |
264 |
|
+ "LfcKznYCVdMkomC0tIaYHBjVQWZerBRIHPGUhozdKwwASYco+FuJNNc9SZZnJ5AU" |
265 |
|
+ "ux2yD3NTec6c/fgseJXi3UT/qDDmUQxX9hjwnUw8CPHUjXWGTmJ/ihfQVGo1ypwg" |
266 |
|
+ "oRZWtF0AnxB7ZfdtnW3yq5/xCFzsIrKyFy4s/kdsylC8eGw4snGA19PN23eEyTZD" |
267 |
|
+ "bSuW5KLjgScbR+ro+e3Y1F3OTI6+VF2oMLY31XVyt8S1N2Zz1lpoN0JfKaWTrTTJ" |
268 |
|
+ "9Ic0oe2qtgqC42g11WHQizYAe83cZYNZgzU9mRa1FIqQD4kMQh+Vv9Cca6FpdPUv" |
269 |
|
+ "D4GS7/fA5Ez5jFV7VghOCFfK2+1Q95b+2RnQEpmHk60+U7tZG4dACXLL7i1hbJH6" |
270 |
|
+ "YuokBuw0Wjm5dicOSG2DptwzyqFfy7C2DYgB3Gi34fSNFxKis7CeKQLNMqppmBof" |
271 |
|
+ "q379AD8hY9Bc8gUWAwMONs9AreDiRCGyR+IokQPTgKRuVzR7ISoxWkKvfW5XIdNf" |
272 |
|
+ "Pd5kGLhX0HfGhikQCVP2XQMkOqsJw4ShV+FAcMfzaq54/PzXoemkRCOMsCzsDUde" |
273 |
|
+ "C6XGF1wviq52P+DnAr1tDmYGOP+jP+O0shzyXF/res1CZ0PjiLIyUb1JM8m5eMRH" |
274 |
|
+ "dEwzX/btO/A/OwNwy5FzS7VdFwaGUjFBXK3F/xyu8jl6ov02/ooddkpqNm5Cxko2" |
275 |
|
+ "ZlJG4LXdDbO1y3rbdwSgukYS2SeUmGqLpONlGi6u8kGRrgetcCAzkyT+XQkV3ZWg" |
276 |
|
+ "TFfGxr3q3NV0C35hIKBxLXr/+ZZHDP4Yx6/Ok6xYnUyJ7RoM6QE7Ppyo0hFPv0Q3" |
277 |
|
+ "VknhyfXk/85k81dxWLWV3DiXZbW/9gGa8TGRuZxliqTr1YjTRGiUwn+fCVx7YLyw" |
278 |
|
+ "PiNp"); |
279 |
|
|
280 |
1 |
runTestPBES2Conformance("PBES2-Blowfish-CBC-Pad", "7b939f8d61c7a403", -1, "f921f22f44e611de", data); |
281 |
|
} |
282 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
1PASS
|
|
283 |
1 |
@Test... |
284 |
|
public void testPBES2ConformanceTestAES128() throws Exception |
285 |
|
{ |
286 |
1 |
byte[] data = Base64.decode( |
287 |
|
|
288 |
|
"MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQImXjLGxzpmkwCAggA" |
289 |
|
+ "MB0GCWCGSAFlAwQBAgQQf6Bn85WfZh3mHP1w0yubaQSCBNCS2Rvfoebwb7/sIbN4" |
290 |
|
+ "uBS2v30Q/fOtUsqbo0JGjJEZ2Qe0kRDoXlDdf+tk2dQaI7tdjhxCcIeJOuiV0qJ6" |
291 |
|
+ "g7y7tmcUhyFHJqm7L4ODpdH4jIGhKFod2szydrQ0lDQI7ZYjucRGd5zxb+wMphqV" |
292 |
|
+ "dDcjEw1HPsVnG30WTjMSJ6lKs+PXLv+jHsf56p+QAxmiy+5eD7fF/C6vxCk0E0wf" |
293 |
|
+ "63ZkSiprIYsmbM1kDBGnJwsH0fmTGi5XD3mXb6zpm3dc47VootC3jL6dG4259B/q" |
294 |
|
+ "gqXZ810mBDPaupS7zc1D7MQvqHwSAhSDFylfVxpwbKx9Lke8e81AyfZsmuUe1QnM" |
295 |
|
+ "fqqY0Ciu9LjxkE8CkitV9/2XwNkusyvQmTFALi735kO/l6bieShFl7m6DTK3R3E8" |
296 |
|
+ "iSx+ZB4dO8tH+/9DbXI8un0DptXFKER2goXBDzv1MElmdBdAQ94j14yT5aTX0oTU" |
297 |
|
+ "C7gaLgfzly70sEJAmrlbxFhgyrcdOZorFgga9qnri2w/0KoDjQGian+tH452pWZe" |
298 |
|
+ "0XadQcrAaNviFJHw6/EmjDgHX970rWj2ZXrbWI4cm8scc3BcPaCwTDP8PZrxVhLG" |
299 |
|
+ "0SJeAjEaME4n+Y7CT3cSdOJh6MiAzyqqTJxFMEovhDOTnyUKkJ56VONG12P9JLiT" |
300 |
|
+ "eIpQlV1ywkH3hTXPMe4Dpbmvn6dhy5dRdOAtRFHOdno4Ri+0+Kne1VGhX1t3i8nP" |
301 |
|
+ "HzRSLUg/tq3/hAwaMfHPtnE+3MXFteQgGd2eVzHiwMwcLYAoy9ewWW7+wvXjbDaS" |
302 |
|
+ "gQ+Oz+gDCm/U1dOMRFp33lSN/eAKluVr9ZNewJ6r8WHg530CeSMG1rp4gq5LX2vk" |
303 |
|
+ "SDQ0RPPAf++6G2tw79GWsCGNFIW/6xHIrBx37NT/zn/0P5/NMD4qZOrzRPdy2tBx" |
304 |
|
+ "ggszbUK20sXAikibVJp4YWHAZMpdexKLWcktPE41FylFc/4XI7+ddRyvcW6re/FT" |
305 |
|
+ "OCZFm0JZOmiopz9rOSGOgYklrUNWqAXWrkAiBo0mco6UdvBjGVFvk2Sw2b17S4Sr" |
306 |
|
+ "9glXPFBNMHLy1daN5mvWq1uBob2us27MiSc4+4Biz3S9FMO02HhMKxC9cnFw5ZZc" |
307 |
|
+ "aQHo1+USBQ1qJuvA0+od7JwCC5XEm+qunlnUDqDt8bC5WLXADDsVptV3IFIZ9ZB3" |
308 |
|
+ "xM5y2K2TBpXzjR+fVg0M2qnbQYv6SVszuLlPArZL1mrmMUj1mmddPBJQk9Sl3lsx" |
309 |
|
+ "ER2R5bDdLA9ct4mVLFjx2u7NNyYQqyvNOKGt1RD0PAlaP1nynVzuLEpnDAKrjCQI" |
310 |
|
+ "IDivXTsjc3UyVx5C2sc+L7HuUibi8726sBYIrlG6eU0rf4wfgstGp9l0A4yBlbRB" |
311 |
|
+ "cJRSBPdKN780IpEFx+SfzVeBvYUeVH0DFthaJfDOWAwD1XdQoxaPUhSel2iaaSCJ" |
312 |
|
+ "WK0eaYETMc1z1P2Yzr2BCHTSxOrL7YJEMDYb1Ii6MvT/xaNSk/yuqhz+rS8zqH0E" |
313 |
|
+ "qalCGoIi38YJy41a1Vau7MCjkxldexn62ZbI4J4dO0W2mX0Fe8aYxxGtL2EpCqnz" |
314 |
|
+ "9c7BBsGqGC2agru0qTkvwCKtk8duMg5RWOXnW29tBYuAyT2bmwmco20XOdTgXIUJ" |
315 |
|
+ "qsiX6xrG5S0T7vFExbxBIX2Jhg=="); |
316 |
|
|
317 |
1 |
runTestPBES2Conformance("PBES2-AES-CBC-Pad", "7fa067f3959f661de61cfd70d32b9b69", 16, "9978cb1b1ce99a4c", data); |
318 |
|
} |
319 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
1PASS
|
|
320 |
1 |
@Test... |
321 |
|
public void testEncryptDecryptPBES2AES() throws Exception |
322 |
|
{ |
323 |
1 |
assertThat(this.encryptor.decrypt(PASSWORD, |
324 |
|
this.encryptor.encrypt("PBES2-AES-CBC-Pad", PASSWORD, new PBKDF2Parameters(), this.keyParameters) |
325 |
|
).getEncoded(), equalTo(RSAKEY)); |
326 |
|
} |
327 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
1PASS
|
|
328 |
1 |
@Test... |
329 |
|
public void testEncryptDecryptDefault() throws Exception |
330 |
|
{ |
331 |
1 |
assertThat(this.encryptor.decrypt(PASSWORD, this.encryptor.encrypt(PASSWORD, this.keyParameters)).getEncoded(), |
332 |
|
equalTo(RSAKEY)); |
333 |
|
} |
334 |
|
} |