8006259: Add Test Vectors for NIST 800-38A to the JCE Unit Tests
Added AES Cipher test vectors from Appendix F of NIST 800-38A Reviewed-by: valeriep
This commit is contained in:
parent
4e1bc5c2a9
commit
d2960c732a
@ -0,0 +1,248 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
*
|
||||||
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License version 2 only, as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
* version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
* accompanied this code).
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License version
|
||||||
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
*
|
||||||
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
* or visit www.oracle.com if you need additional information or have any
|
||||||
|
* questions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 8006259
|
||||||
|
* @summary Test several modes of operation using vectors from SP 800-38A
|
||||||
|
* @modules java.xml.bind
|
||||||
|
* @run main CheckExampleVectors
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.security.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.function.*;
|
||||||
|
import javax.xml.bind.DatatypeConverter;
|
||||||
|
import javax.crypto.*;
|
||||||
|
import javax.crypto.spec.*;
|
||||||
|
|
||||||
|
public class CheckExampleVectors {
|
||||||
|
|
||||||
|
private enum Mode {
|
||||||
|
ECB,
|
||||||
|
CBC,
|
||||||
|
CFB1,
|
||||||
|
CFB8,
|
||||||
|
CFB128,
|
||||||
|
OFB,
|
||||||
|
CTR
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum Operation {
|
||||||
|
Encrypt,
|
||||||
|
Decrypt
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class Block {
|
||||||
|
private byte[] input;
|
||||||
|
private byte[] output;
|
||||||
|
|
||||||
|
public Block() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public Block(String settings) {
|
||||||
|
String[] settingsParts = settings.split(",");
|
||||||
|
input = stringToBytes(settingsParts[0]);
|
||||||
|
output = stringToBytes(settingsParts[1]);
|
||||||
|
}
|
||||||
|
public byte[] getInput() {
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
public byte[] getOutput() {
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class TestVector {
|
||||||
|
private Mode mode;
|
||||||
|
private Operation operation;
|
||||||
|
private byte[] key;
|
||||||
|
private byte[] iv;
|
||||||
|
private List<Block> blocks = new ArrayList<Block>();
|
||||||
|
|
||||||
|
public TestVector(String settings) {
|
||||||
|
String[] settingsParts = settings.split(",");
|
||||||
|
mode = Mode.valueOf(settingsParts[0]);
|
||||||
|
operation = Operation.valueOf(settingsParts[1]);
|
||||||
|
key = stringToBytes(settingsParts[2]);
|
||||||
|
if (settingsParts.length > 3) {
|
||||||
|
iv = stringToBytes(settingsParts[3]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Mode getMode() {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
public Operation getOperation() {
|
||||||
|
return operation;
|
||||||
|
}
|
||||||
|
public byte[] getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
public byte[] getIv() {
|
||||||
|
return iv;
|
||||||
|
}
|
||||||
|
public void addBlock (Block b) {
|
||||||
|
blocks.add(b);
|
||||||
|
}
|
||||||
|
public Iterable<Block> getBlocks() {
|
||||||
|
return blocks;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String VECTOR_FILE_NAME = "NIST_800_38A_vectors.txt";
|
||||||
|
private static final Mode[] REQUIRED_MODES = {Mode.ECB, Mode.CBC, Mode.CTR};
|
||||||
|
private static Set<Mode> supportedModes = new HashSet<Mode>();
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
checkAllProviders();
|
||||||
|
checkSupportedModes();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static byte[] stringToBytes(String v) {
|
||||||
|
if (v.equals("")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return DatatypeConverter.parseBase64Binary(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String toModeString(Mode mode) {
|
||||||
|
return mode.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int toCipherOperation(Operation op) {
|
||||||
|
switch (op) {
|
||||||
|
case Encrypt:
|
||||||
|
return Cipher.ENCRYPT_MODE;
|
||||||
|
case Decrypt:
|
||||||
|
return Cipher.DECRYPT_MODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new RuntimeException("Unknown operation: " + op);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void log(String str) {
|
||||||
|
System.out.println(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkVector(String providerName, TestVector test) {
|
||||||
|
|
||||||
|
String modeString = toModeString(test.getMode());
|
||||||
|
String cipherString = "AES" + "/" + modeString + "/" + "NoPadding";
|
||||||
|
log("checking: " + cipherString + " on " + providerName);
|
||||||
|
try {
|
||||||
|
Cipher cipher = Cipher.getInstance(cipherString, providerName);
|
||||||
|
SecretKeySpec key = new SecretKeySpec(test.getKey(), "AES");
|
||||||
|
if (test.getIv() != null) {
|
||||||
|
IvParameterSpec iv = new IvParameterSpec(test.getIv());
|
||||||
|
cipher.init(toCipherOperation(test.getOperation()), key, iv);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cipher.init(toCipherOperation(test.getOperation()), key);
|
||||||
|
}
|
||||||
|
int blockIndex = 0;
|
||||||
|
for (Block curBlock : test.getBlocks()) {
|
||||||
|
byte[] blockOutput = cipher.update(curBlock.getInput());
|
||||||
|
byte[] expectedBlockOutput = curBlock.getOutput();
|
||||||
|
if (!Arrays.equals(blockOutput, expectedBlockOutput)) {
|
||||||
|
throw new RuntimeException("Blocks do not match at index "
|
||||||
|
+ blockIndex);
|
||||||
|
}
|
||||||
|
blockIndex++;
|
||||||
|
}
|
||||||
|
log("success");
|
||||||
|
supportedModes.add(test.getMode());
|
||||||
|
} catch (NoSuchAlgorithmException ex) {
|
||||||
|
log("algorithm not supported");
|
||||||
|
} catch (NoSuchProviderException | NoSuchPaddingException
|
||||||
|
| InvalidKeyException | InvalidAlgorithmParameterException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isComment(String line) {
|
||||||
|
return (line != null) && line.startsWith("//");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TestVector readVector(BufferedReader in) throws IOException {
|
||||||
|
String line;
|
||||||
|
while (isComment(line = in.readLine())) {
|
||||||
|
// skip comment lines
|
||||||
|
}
|
||||||
|
if (line == null || line.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
TestVector newVector = new TestVector(line);
|
||||||
|
String numBlocksStr = in.readLine();
|
||||||
|
int numBlocks = Integer.parseInt(numBlocksStr);
|
||||||
|
for (int i = 0; i < numBlocks; i++) {
|
||||||
|
Block newBlock = new Block(in.readLine());
|
||||||
|
newVector.addBlock(newBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
return newVector;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkAllProviders() throws IOException {
|
||||||
|
File dataFile = new File(System.getProperty("test.src", "."),
|
||||||
|
VECTOR_FILE_NAME);
|
||||||
|
BufferedReader in = new BufferedReader(new FileReader(dataFile));
|
||||||
|
List<TestVector> allTests = new ArrayList<>();
|
||||||
|
TestVector newTest;
|
||||||
|
while ((newTest = readVector(in)) != null) {
|
||||||
|
allTests.add(newTest);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Provider provider : Security.getProviders()) {
|
||||||
|
checkProvider(provider.getName(), allTests);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkProvider(String providerName,
|
||||||
|
List<TestVector> allVectors)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
for (TestVector curVector : allVectors) {
|
||||||
|
checkVector(providerName, curVector);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This method helps ensure that the test is working properly by
|
||||||
|
* verifying that the test was able to check the test vectors for
|
||||||
|
* some of the modes of operation.
|
||||||
|
*/
|
||||||
|
private static void checkSupportedModes() {
|
||||||
|
for (Mode curMode : REQUIRED_MODES) {
|
||||||
|
if (!supportedModes.contains(curMode)) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Mode not supported by any provider: " + curMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,418 @@
|
|||||||
|
// Example vectors from NIST Special Publication 800-38A
|
||||||
|
// Recommentation for Block Cipher Modes of Operation
|
||||||
|
//
|
||||||
|
// format for each vector entry is as follows:
|
||||||
|
// mode,encrypt/decrypt,key,initialization vector
|
||||||
|
// number of blocks
|
||||||
|
// (for each block) input,output
|
||||||
|
// All key, IV, input, and output values are encoded in Base64
|
||||||
|
//
|
||||||
|
ECB,Encrypt,K34VFiiu0qar9xWICc9PPA==,
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,Otd7tA16NmConsrzJGbvlw==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,9dPVhQO5aZ3nhYlalv26rw==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,Q7HNf1mOziOIGwDj7QMGiA==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,ewx4XiforT+CIyBxBHJd1A==
|
||||||
|
ECB,Decrypt,K34VFiiu0qar9xWICc9PPA==,
|
||||||
|
4
|
||||||
|
Otd7tA16NmConsrzJGbvlw==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
9dPVhQO5aZ3nhYlalv26rw==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
Q7HNf1mOziOIGwDj7QMGiA==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
ewx4XiforT+CIyBxBHJd1A==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
ECB,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,vTNPHW5F8l/3EqIUVx+lzA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,l0EEhG0K0613NOyz7O5O7w==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,73r9InDi5grc4LovrOZETg==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,mktBunONbHL7FmkWA8GODg==
|
||||||
|
ECB,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,
|
||||||
|
4
|
||||||
|
vTNPHW5F8l/3EqIUVx+lzA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
l0EEhG0K0613NOyz7O5O7w==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
73r9InDi5grc4LovrOZETg==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
mktBunONbHL7FmkWA8GODg==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
ECB,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,8+7RvbXSoDwGS1p+PbGB+A==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,WRzLENQQ7SbcW6dKMTYocA==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,tu0huZym9PnxU+exvq/tHQ==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,IzBLejn58/8GfY2PniTsxw==
|
||||||
|
ECB,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,
|
||||||
|
4
|
||||||
|
8+7RvbXSoDwGS1p+PbGB+A==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
WRzLENQQ7SbcW6dKMTYocA==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
tu0huZym9PnxU+exvq/tHQ==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
IzBLejn58/8GfY2PniTsxw==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CBC,Encrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,dkmrrIEZskbO6Y6bEukZfQ==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,UIbLm1ByGe6V2xE6kXZ4sg==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,c77WuOPBdDtxFuaeIiKVFg==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,P/HKoWgfrAkSDsowdYbhpw==
|
||||||
|
CBC,Decrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
dkmrrIEZskbO6Y6bEukZfQ==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
UIbLm1ByGe6V2xE6kXZ4sg==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
c77WuOPBdDtxFuaeIiKVFg==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
P/HKoWgfrAkSDsowdYbhpw==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CBC,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,TwIdskO8Yz1xeBg6n6Bx6A==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,tNmtqa197fTl5zh2P2kUWg==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,VxskIBL7euB/qbqsPfEC4A==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,CLDieYhZiIHZIKnmT1YVzQ==
|
||||||
|
CBC,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
TwIdskO8Yz1xeBg6n6Bx6A==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
tNmtqa197fTl5zh2P2kUWg==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
VxskIBL7euB/qbqsPfEC4A==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
CLDieYhZiIHZIKnmT1YVzQ==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CBC,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,9YxMBNbl8bp3nqv7X3v71g==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,nPxOln7bgI1nn3d7xnAsfQ==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,OfIzaanZus+lMOJjBCMUYQ==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,susF4sOb6fzabBkHjGqdGw==
|
||||||
|
CBC,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
9YxMBNbl8bp3nqv7X3v71g==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
nPxOln7bgI1nn3d7xnAsfQ==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
OfIzaanZus+lMOJjBCMUYQ==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
susF4sOb6fzabBkHjGqdGw==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CFB1,Encrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB1,Decrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB1,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB1,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB1,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB1,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
16
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AA==,AQ==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AA==,AA==
|
||||||
|
AQ==,AQ==
|
||||||
|
CFB8,Encrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
aw==,Ow==
|
||||||
|
wQ==,eQ==
|
||||||
|
vg==,Qg==
|
||||||
|
4g==,TA==
|
||||||
|
Lg==,nA==
|
||||||
|
QA==,DQ==
|
||||||
|
nw==,1A==
|
||||||
|
lg==,Ng==
|
||||||
|
6Q==,ug==
|
||||||
|
PQ==,zg==
|
||||||
|
fg==,ng==
|
||||||
|
EQ==,Dg==
|
||||||
|
cw==,1A==
|
||||||
|
kw==,WA==
|
||||||
|
Fw==,ag==
|
||||||
|
Kg==,Tw==
|
||||||
|
rg==,Mg==
|
||||||
|
LQ==,uQ==
|
||||||
|
CFB8,Decrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
Ow==,aw==
|
||||||
|
eQ==,wQ==
|
||||||
|
Qg==,vg==
|
||||||
|
TA==,4g==
|
||||||
|
nA==,Lg==
|
||||||
|
DQ==,QA==
|
||||||
|
1A==,nw==
|
||||||
|
Ng==,lg==
|
||||||
|
ug==,6Q==
|
||||||
|
zg==,PQ==
|
||||||
|
ng==,fg==
|
||||||
|
Dg==,EQ==
|
||||||
|
1A==,cw==
|
||||||
|
WA==,kw==
|
||||||
|
ag==,Fw==
|
||||||
|
Tw==,Kg==
|
||||||
|
Mg==,rg==
|
||||||
|
uQ==,LQ==
|
||||||
|
CFB8,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
aw==,zQ==
|
||||||
|
wQ==,og==
|
||||||
|
vg==,Ug==
|
||||||
|
4g==,Hg==
|
||||||
|
Lg==,8A==
|
||||||
|
QA==,qQ==
|
||||||
|
nw==,BQ==
|
||||||
|
lg==,yg==
|
||||||
|
6Q==,RA==
|
||||||
|
PQ==,zQ==
|
||||||
|
fg==,BQ==
|
||||||
|
EQ==,fA==
|
||||||
|
cw==,vw==
|
||||||
|
kw==,DQ==
|
||||||
|
Fw==,Rw==
|
||||||
|
Kg==,oA==
|
||||||
|
rg==,Zw==
|
||||||
|
LQ==,ig==
|
||||||
|
CFB8,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
zQ==,aw==
|
||||||
|
og==,wQ==
|
||||||
|
Ug==,vg==
|
||||||
|
Hg==,4g==
|
||||||
|
8A==,Lg==
|
||||||
|
qQ==,QA==
|
||||||
|
BQ==,nw==
|
||||||
|
yg==,lg==
|
||||||
|
RA==,6Q==
|
||||||
|
zQ==,PQ==
|
||||||
|
BQ==,fg==
|
||||||
|
fA==,EQ==
|
||||||
|
vw==,cw==
|
||||||
|
DQ==,kw==
|
||||||
|
Rw==,Fw==
|
||||||
|
oA==,Kg==
|
||||||
|
Zw==,rg==
|
||||||
|
ig==,LQ==
|
||||||
|
CFB8,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
aw==,3A==
|
||||||
|
wQ==,Hw==
|
||||||
|
vg==,Gg==
|
||||||
|
4g==,hQ==
|
||||||
|
Lg==,IA==
|
||||||
|
QA==,pg==
|
||||||
|
nw==,TQ==
|
||||||
|
lg==,tQ==
|
||||||
|
6Q==,Xw==
|
||||||
|
PQ==,zA==
|
||||||
|
fg==,ig==
|
||||||
|
EQ==,xQ==
|
||||||
|
cw==,VA==
|
||||||
|
kw==,hA==
|
||||||
|
Fw==,Tg==
|
||||||
|
Kg==,iA==
|
||||||
|
rg==,lw==
|
||||||
|
LQ==,AA==
|
||||||
|
CFB8,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
18
|
||||||
|
3A==,aw==
|
||||||
|
Hw==,wQ==
|
||||||
|
Gg==,vg==
|
||||||
|
hQ==,4g==
|
||||||
|
IA==,Lg==
|
||||||
|
pg==,QA==
|
||||||
|
TQ==,nw==
|
||||||
|
tQ==,lg==
|
||||||
|
Xw==,6Q==
|
||||||
|
zA==,PQ==
|
||||||
|
ig==,fg==
|
||||||
|
xQ==,EQ==
|
||||||
|
VA==,cw==
|
||||||
|
hA==,kw==
|
||||||
|
Tg==,Fw==
|
||||||
|
iA==,Kg==
|
||||||
|
lw==,rg==
|
||||||
|
AA==,LQ==
|
||||||
|
CFB128,Encrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,Oz/ZLrctrSAzNEn46Dz7Sg==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,yKZFN6CzqT/N482tnxzliw==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,JnUfZ6PLsUCxgIzxh6T03w==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,wEsFNXxdHA7qxMZvn/fy5g==
|
||||||
|
CFB128,Decrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
Oz/ZLrctrSAzNEn46Dz7Sg==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
yKZFN6CzqT/N482tnxzliw==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
JnUfZ6PLsUCxgIzxh6T03w==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
wEsFNXxdHA7qxMZvn/fy5g==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CFB128,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,zcgNb93xjKs0wlkJyZpBdA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,Z85/f4EXNiGWGitwFx09eg==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,Lh6KHdWbiLHI5g/tHvrEyQ==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,wF+fnKmDT6BCro+6WEsJ/w==
|
||||||
|
CFB128,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
zcgNb93xjKs0wlkJyZpBdA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
Z85/f4EXNiGWGitwFx09eg==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
Lh6KHdWbiLHI5g/tHvrEyQ==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
wF+fnKmDT6BCro+6WEsJ/w==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CFB128,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,3H6Ev9p5Fkt+zYSGmF04YA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,Of/tFDsoscgyETxjMeVAew==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,3xATJBXlS5KhPtCoJnri+Q==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,daOFdBq5zvggMWI9VbHkcQ==
|
||||||
|
CFB128,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
3H6Ev9p5Fkt+zYSGmF04YA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
Of/tFDsoscgyETxjMeVAew==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
3xATJBXlS5KhPtCoJnri+Q==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
daOFdBq5zvggMWI9VbHkcQ==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
OFB,Encrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,Oz/ZLrctrSAzNEn46Dz7Sg==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,d4lQjRaRjwP1PFLaxU7YJQ==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,l0AFHpxf7PZDRPeoImDtzA==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,MExlKPZZx3hmpRDZwdauXg==
|
||||||
|
OFB,Decrypt,K34VFiiu0qar9xWICc9PPA==,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
Oz/ZLrctrSAzNEn46Dz7Sg==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
d4lQjRaRjwP1PFLaxU7YJQ==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
l0AFHpxf7PZDRPeoImDtzA==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
MExlKPZZx3hmpRDZwdauXg==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
OFB,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,zcgNb93xjKs0wlkJyZpBdA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,/MKLjUxjg3wJ6BcAwRAEAQ==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,jZqa6sD2WW9VnG1Nr1ml8g==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,bZ8gCFfKbD6crFJL2azJKg==
|
||||||
|
OFB,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
zcgNb93xjKs0wlkJyZpBdA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
/MKLjUxjg3wJ6BcAwRAEAQ==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
jZqa6sD2WW9VnG1Nr1ml8g==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
bZ8gCFfKbD6crFJL2azJKg==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
OFB,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,3H6Ev9p5Fkt+zYSGmF04YA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,T+vcZ0DSCzrIj2rYKk+wjQ==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,catHoIbobu3znRxbupfECA==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,ASYUHWfze+hTj1qL50DkhA==
|
||||||
|
OFB,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,AAECAwQFBgcICQoLDA0ODw==
|
||||||
|
4
|
||||||
|
3H6Ev9p5Fkt+zYSGmF04YA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
T+vcZ0DSCzrIj2rYKk+wjQ==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
catHoIbobu3znRxbupfECA==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
ASYUHWfze+hTj1qL50DkhA==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CTR,Encrypt,K34VFiiu0qar9xWICc9PPA==,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,h01hkbYg4yYb72hkmQ22zg==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,mAb2a3lw/f+GFxh7uf/9/w==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,WuTfPtvV015bTwkCDbA+qw==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,HgMd2i++A9F5IXCg8wCc7g==
|
||||||
|
CTR,Decrypt,K34VFiiu0qar9xWICc9PPA==,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
h01hkbYg4yYb72hkmQ22zg==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
mAb2a3lw/f+GFxh7uf/9/w==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
WuTfPtvV015bTwkCDbA+qw==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
HgMd2i++A9F5IXCg8wCc7g==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CTR,Encrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,GryTJBdSHKJPKwRZ/n5uCw==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,CQM57Aqm+u/VzMLG9M6OlA==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,Hjaya9HrxnDRvR1mViCr9w==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,T3in9tKYCVhal9rsWMawUA==
|
||||||
|
CTR,Decrypt,jnOw99oOZFLIEPMrgJB55WL46tJSLGt7,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
GryTJBdSHKJPKwRZ/n5uCw==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
CQM57Aqm+u/VzMLG9M6OlA==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
Hjaya9HrxnDRvR1mViCr9w==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
T3in9tKYCVhal9rsWMawUA==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
CTR,Encrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
a8G+4i5An5bpPX4Rc5MXKg==,YB7DE3dXiaW3p/UEu/PSKA==
|
||||||
|
ri2KVx4DrJyet2+sRa+OUQ==,9EPjyk1itZrKhOmQysr1xQ==
|
||||||
|
MMgcRqNc5BHl+8EZGgpS7w==,Kwkw2qI96UzocBe6LYSYjQ==
|
||||||
|
9p8kRd9PmxetK0F75mw3EA==,38nFjbZ6raYTwt0IRXlBpg==
|
||||||
|
CTR,Decrypt,YD3rEBXKcb4rc67whX13gR81LAc7YQjXLZgQowkU3/Q=,8PHy8/T19vf4+fr7/P3+/w==
|
||||||
|
4
|
||||||
|
YB7DE3dXiaW3p/UEu/PSKA==,a8G+4i5An5bpPX4Rc5MXKg==
|
||||||
|
9EPjyk1itZrKhOmQysr1xQ==,ri2KVx4DrJyet2+sRa+OUQ==
|
||||||
|
Kwkw2qI96UzocBe6LYSYjQ==,MMgcRqNc5BHl+8EZGgpS7w==
|
||||||
|
38nFjbZ6raYTwt0IRXlBpg==,9p8kRd9PmxetK0F75mw3EA==
|
||||||
|
|
Loading…
Reference in New Issue
Block a user