| 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 |
|
} |