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