mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-21 22:15:16 +01:00
Update to 5.13.0 (1818)
This commit is contained in:
parent
28eb8dfd0e
commit
f41b228a11
2574 changed files with 1023378 additions and 62330 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -4,7 +4,3 @@ build/
|
|||
obj/
|
||||
*.iml
|
||||
local.properties
|
||||
*.keystore
|
||||
gradle.properties
|
||||
|
||||
TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java
|
||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule "TMessagesProj/jni/libtgvoip"]
|
||||
path = TMessagesProj/jni/libtgvoip
|
||||
url = https://github.com/grishka/libtgvoip
|
25
Dockerfile
Normal file
25
Dockerfile
Normal file
|
@ -0,0 +1,25 @@
|
|||
FROM gradle:6.0.1-jdk8
|
||||
|
||||
ENV ANDROID_SDK_URL https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
|
||||
ENV ANDROID_API_LEVEL android-29
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 29.0.2
|
||||
ENV ANDROID_HOME /usr/local/android-sdk-linux
|
||||
ENV ANDROID_NDK_VERSION 20.0.5594570
|
||||
ENV ANDROID_VERSION 29
|
||||
ENV ANDROID_NDK_HOME ${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}/
|
||||
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
|
||||
|
||||
RUN mkdir "$ANDROID_HOME" .android && \
|
||||
cd "$ANDROID_HOME" && \
|
||||
curl -o sdk.zip $ANDROID_SDK_URL && \
|
||||
unzip sdk.zip && \
|
||||
rm sdk.zip
|
||||
|
||||
RUN yes | ${ANDROID_HOME}/tools/bin/sdkmanager --licenses
|
||||
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
|
||||
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
|
||||
"platforms;android-${ANDROID_VERSION}" \
|
||||
"platform-tools" \
|
||||
"ndk;$ANDROID_NDK_VERSION"
|
||||
ENV PATH ${ANDROID_NDK_HOME}:$PATH
|
||||
ENV PATH ${ANDROID_NDK_HOME}/prebuilt/linux-x86_64/bin/:$PATH
|
|
@ -17,12 +17,12 @@ configurations.all {
|
|||
dependencies {
|
||||
implementation 'androidx.core:core:1.1.0-beta01'
|
||||
implementation 'androidx.palette:palette:1.0.0'
|
||||
implementation 'androidx.exifinterface:exifinterface:1.1.0-beta01'
|
||||
implementation 'androidx.exifinterface:exifinterface:1.1.0'
|
||||
|
||||
compileOnly 'org.checkerframework:checker-qual:2.5.2'
|
||||
compileOnly 'org.checkerframework:checker-compat-qual:2.5.0'
|
||||
implementation 'com.google.firebase:firebase-messaging:20.0.0'
|
||||
implementation 'com.google.firebase:firebase-config:19.0.0'
|
||||
implementation 'com.google.firebase:firebase-messaging:20.1.0'
|
||||
implementation 'com.google.firebase:firebase-config:19.1.0'
|
||||
implementation 'com.google.android.gms:play-services-maps:17.0.0'
|
||||
implementation 'com.google.android.gms:play-services-auth:17.0.0'
|
||||
implementation 'com.google.android.gms:play-services-vision:16.2.0'
|
||||
|
@ -32,11 +32,13 @@ dependencies {
|
|||
implementation 'net.hockeyapp.android:HockeySDK:5.2.0'
|
||||
implementation 'com.googlecode.mp4parser:isoparser:1.0.6'
|
||||
implementation 'com.stripe:stripe-android:2.0.2'
|
||||
implementation files('libs/libgsaverification-client.aar')
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion '28.0.3'
|
||||
compileSdkVersion 29
|
||||
buildToolsVersion '29.0.2'
|
||||
ndkVersion "20.0.5594570"
|
||||
|
||||
defaultConfig.applicationId = "org.telegram.messenger"
|
||||
|
||||
|
@ -89,6 +91,34 @@ android {
|
|||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
|
||||
/*debugAsan {
|
||||
debuggable true
|
||||
jniDebuggable true
|
||||
signingConfig signingConfigs.debug
|
||||
applicationIdSuffix ".beta"
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
|
||||
packagingOptions {
|
||||
doNotStrip "**.so"
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs {
|
||||
srcDir {
|
||||
'jniLibs'
|
||||
}
|
||||
}
|
||||
resources {
|
||||
srcDir {
|
||||
'jniRes'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
debugMultidex {
|
||||
initWith debug
|
||||
minifyEnabled false
|
||||
|
@ -122,6 +152,10 @@ android {
|
|||
manifest.srcFile 'config/debug/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
/*sourceSets.debugAsan {
|
||||
manifest.srcFile 'config/debug/AndroidManifest.xml'
|
||||
}*/
|
||||
|
||||
sourceSets.debugMultidex {
|
||||
manifest.srcFile 'config/debug/AndroidManifest.xml'
|
||||
java.srcDirs = ['src/multidex/java']
|
||||
|
@ -207,6 +241,9 @@ android {
|
|||
sourceSets.debug {
|
||||
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
|
||||
}
|
||||
/*sourceSets.debugAsan {
|
||||
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
|
||||
}*/
|
||||
sourceSets.release {
|
||||
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
|
||||
}
|
||||
|
@ -234,6 +271,9 @@ android {
|
|||
sourceSets.debug {
|
||||
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
|
||||
}
|
||||
/*sourceSets.debugAsan {
|
||||
manifest.srcFile 'config/debug/AndroidManifest_SDK23.xml'
|
||||
}*/
|
||||
sourceSets.release {
|
||||
manifest.srcFile 'config/release/AndroidManifest_SDK23.xml'
|
||||
}
|
||||
|
@ -243,10 +283,11 @@ android {
|
|||
}
|
||||
}
|
||||
|
||||
defaultConfig.versionCode = 1710
|
||||
defaultConfig.versionCode = 1818
|
||||
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.all { output ->
|
||||
outputFileName = "app.apk"
|
||||
output.getProcessManifestProvider().get().doLast {
|
||||
def abiVersion = variant.productFlavors.get(0).abiVersionCode
|
||||
|
||||
|
@ -276,14 +317,14 @@ android {
|
|||
|
||||
defaultConfig {
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 27
|
||||
versionName "5.11.0"
|
||||
targetSdkVersion 28
|
||||
versionName "5.13.0"
|
||||
|
||||
vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi']
|
||||
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "-j8"
|
||||
arguments "NDK_APPLICATION_MK:=jni/Application.mk", "APP_PLATFORM:=android-16", "--jobs=8"
|
||||
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
|
||||
}
|
||||
}
|
||||
|
|
BIN
TMessagesProj/config/release.keystore
Normal file
BIN
TMessagesProj/config/release.keystore
Normal file
Binary file not shown.
89
TMessagesProj/google-services.json
Executable file
89
TMessagesProj/google-services.json
Executable file
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "760348033671",
|
||||
"firebase_url": "https://tmessages2.firebaseio.com",
|
||||
"project_id": "tmessages2",
|
||||
"storage_bucket": "tmessages2.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:760348033671:android:dc022572c167a16c",
|
||||
"android_client_info": {
|
||||
"package_name": "org.telegram.messenger.beta"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "760348033671-jiv412evc1r36rl4k7vhl1ba83atdmot.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "760348033671-7cj8o8gntcp2o052du67k1t0pi9frbso.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "760348033671-2hh8ebmuflsnjoc0kldkfells9rhtfni.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAijSIM_t8bfdRrn2-mCumXRu37pPslqkU"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:760348033671:android:f6afd7b67eae3860",
|
||||
"android_client_info": {
|
||||
"package_name": "org.telegram.messenger"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "760348033671-jiv412evc1r36rl4k7vhl1ba83atdmot.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "760348033671-7cj8o8gntcp2o052du67k1t0pi9frbso.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
},
|
||||
{
|
||||
"client_id": "760348033671-2hh8ebmuflsnjoc0kldkfells9rhtfni.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyAijSIM_t8bfdRrn2-mCumXRu37pPslqkU"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"analytics_service": {
|
||||
"status": 1
|
||||
},
|
||||
"appinvite_service": {
|
||||
"status": 1,
|
||||
"other_platform_oauth_client": []
|
||||
},
|
||||
"ads_service": {
|
||||
"status": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"configuration_version": "1"
|
||||
}
|
|
@ -220,7 +220,6 @@ LOCAL_CPPFLAGS := -frtti
|
|||
LOCAL_CFLAGS += -DVERSION="1.3.1" -DFLAC__NO_MD5 -DFLAC__INTEGER_ONLY_LIBRARY -DFLAC__NO_ASM
|
||||
LOCAL_CFLAGS += -D_REENTRANT -DPIC -DU_COMMON_IMPLEMENTATION -fPIC -DHAVE_SYS_PARAM_H
|
||||
LOCAL_CFLAGS += -O3 -funroll-loops -finline-functions
|
||||
LOCAL_LDLIBS := -lz -lm
|
||||
LOCAL_C_INCLUDES := ./jni/exoplayer/libFLAC/include
|
||||
LOCAL_ARM_MODE := arm
|
||||
LOCAL_CPP_EXTENSION := .cc
|
||||
|
@ -252,7 +251,6 @@ LOCAL_SRC_FILES := \
|
|||
./exoplayer/libFLAC/stream_encoder_intrin_avx2.c \
|
||||
./exoplayer/libFLAC/stream_encoder_intrin_sse2.c \
|
||||
./exoplayer/libFLAC/stream_encoder_intrin_ssse3.c \
|
||||
./exoplayer/libFLAC/windows_unicode_filenames \
|
||||
./exoplayer/libFLAC/window.c
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
@ -351,7 +349,7 @@ LOCAL_MODULE := tmessages.30
|
|||
LOCAL_CFLAGS := -w -std=c11 -Os -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1
|
||||
LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno
|
||||
LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math -D__STDC_CONSTANT_MACROS
|
||||
LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -Os -funroll-loops -std=c++14
|
||||
LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -Os -funroll-loops -std=c++14 -DPACKAGE_NAME='"drinkless/org/ton"'
|
||||
LOCAL_LDLIBS := -ljnigraphics -llog -lz -lEGL -lGLESv2 -landroid
|
||||
LOCAL_STATIC_LIBRARIES := webp sqlite lz4 rlottie tgnet swscale avformat avcodec avresample avutil voip flac
|
||||
|
||||
|
@ -562,6 +560,7 @@ LOCAL_C_INCLUDES := \
|
|||
./jni/exoplayer/libFLAC/include \
|
||||
./jni/intro \
|
||||
./jni/rlottie/inc \
|
||||
./jni/ton \
|
||||
./jni/lz4
|
||||
|
||||
LOCAL_SRC_FILES += \
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
APP_PLATFORM := android-14
|
||||
APP_PLATFORM := android-16
|
||||
NDK_TOOLCHAIN_VERSION := clang
|
||||
APP_STL := c++_static
|
|
@ -364,7 +364,7 @@ void setSystemLangCode(JNIEnv *env, jclass c, jint instanceNum, jstring langCode
|
|||
}
|
||||
}
|
||||
|
||||
void init(JNIEnv *env, jclass c, jint instanceNum, jint version, jint layer, jint apiId, jstring deviceModel, jstring systemVersion, jstring appVersion, jstring langCode, jstring systemLangCode, jstring configPath, jstring logPath, jstring regId, jint userId, jboolean enablePushConnection, jboolean hasNetwork, jint networkType) {
|
||||
void init(JNIEnv *env, jclass c, jint instanceNum, jint version, jint layer, jint apiId, jstring deviceModel, jstring systemVersion, jstring appVersion, jstring langCode, jstring systemLangCode, jstring configPath, jstring logPath, jstring regId, jstring cFingerprint, jint userId, jboolean enablePushConnection, jboolean hasNetwork, jint networkType) {
|
||||
const char *deviceModelStr = env->GetStringUTFChars(deviceModel, 0);
|
||||
const char *systemVersionStr = env->GetStringUTFChars(systemVersion, 0);
|
||||
const char *appVersionStr = env->GetStringUTFChars(appVersion, 0);
|
||||
|
@ -373,8 +373,9 @@ void init(JNIEnv *env, jclass c, jint instanceNum, jint version, jint layer, jin
|
|||
const char *configPathStr = env->GetStringUTFChars(configPath, 0);
|
||||
const char *logPathStr = env->GetStringUTFChars(logPath, 0);
|
||||
const char *regIdStr = env->GetStringUTFChars(regId, 0);
|
||||
const char *cFingerprintStr = env->GetStringUTFChars(cFingerprint, 0);
|
||||
|
||||
ConnectionsManager::getInstance(instanceNum).init((uint32_t) version, layer, apiId, std::string(deviceModelStr), std::string(systemVersionStr), std::string(appVersionStr), std::string(langCodeStr), std::string(systemLangCodeStr), std::string(configPathStr), std::string(logPathStr), std::string(regIdStr), userId, true, enablePushConnection, hasNetwork, networkType);
|
||||
ConnectionsManager::getInstance(instanceNum).init((uint32_t) version, layer, apiId, std::string(deviceModelStr), std::string(systemVersionStr), std::string(appVersionStr), std::string(langCodeStr), std::string(systemLangCodeStr), std::string(configPathStr), std::string(logPathStr), std::string(regIdStr), std::string(cFingerprintStr), userId, true, enablePushConnection, hasNetwork, networkType);
|
||||
|
||||
if (deviceModelStr != 0) {
|
||||
env->ReleaseStringUTFChars(deviceModel, deviceModelStr);
|
||||
|
@ -400,6 +401,9 @@ void init(JNIEnv *env, jclass c, jint instanceNum, jint version, jint layer, jin
|
|||
if (regIdStr != 0) {
|
||||
env->ReleaseStringUTFChars(regId, regIdStr);
|
||||
}
|
||||
if (cFingerprintStr != 0) {
|
||||
env->ReleaseStringUTFChars(cFingerprint, cFingerprintStr);
|
||||
}
|
||||
}
|
||||
|
||||
void setJava(JNIEnv *env, jclass c, jboolean useJavaByteBuffers) {
|
||||
|
@ -424,7 +428,7 @@ static JNINativeMethod ConnectionsManagerMethods[] = {
|
|||
{"native_setProxySettings", "(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", (void *) setProxySettings},
|
||||
{"native_getConnectionState", "(I)I", (void *) getConnectionState},
|
||||
{"native_setUserId", "(II)V", (void *) setUserId},
|
||||
{"native_init", "(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZI)V", (void *) init},
|
||||
{"native_init", "(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZI)V", (void *) init},
|
||||
{"native_setLangCode", "(ILjava/lang/String;)V", (void *) setLangCode},
|
||||
{"native_setRegId", "(ILjava/lang/String;)V", (void *) setRegId},
|
||||
{"native_setSystemLangCode", "(ILjava/lang/String;)V", (void *) setSystemLangCode},
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
cmake_minimum_required (VERSION 2.8.11)
|
||||
|
||||
# Report AppleClang separately from Clang. Their version numbers are different.
|
||||
# https://cmake.org/cmake/help/v3.0/policy/CMP0025.html
|
||||
if(POLICY CMP0025)
|
||||
cmake_policy(SET CMP0025 NEW)
|
||||
endif()
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
# Defer enabling C and CXX languages.
|
||||
project (BoringSSL NONE)
|
||||
project(BoringSSL NONE)
|
||||
|
||||
if(WIN32)
|
||||
# On Windows, prefer cl over gcc if both are available. By default most of
|
||||
|
@ -20,6 +14,11 @@ include(sources.cmake)
|
|||
enable_language(C)
|
||||
enable_language(CXX)
|
||||
|
||||
# This is a dummy target which all other targets depend on (manually - see other
|
||||
# CMakeLists.txt files). This gives us a hook to add any targets which need to
|
||||
# run before all other targets.
|
||||
add_custom_target(global_target)
|
||||
|
||||
if(ANDROID)
|
||||
# Android-NDK CMake files reconfigure the path and so Go and Perl won't be
|
||||
# found. However, ninja will still find them in $PATH if we just name them.
|
||||
|
@ -34,31 +33,102 @@ else()
|
|||
find_program(GO_EXECUTABLE go)
|
||||
endif()
|
||||
|
||||
if (NOT GO_EXECUTABLE)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_CROSSCOMPILING)
|
||||
find_package(PkgConfig QUIET)
|
||||
if (PkgConfig_FOUND)
|
||||
pkg_check_modules(LIBUNWIND libunwind-generic)
|
||||
if(LIBUNWIND_FOUND)
|
||||
add_definitions(-DBORINGSSL_HAVE_LIBUNWIND)
|
||||
else()
|
||||
message("libunwind not found. Disabling unwind tests.")
|
||||
endif()
|
||||
else()
|
||||
message("pkgconfig not found. Disabling unwind tests.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GO_EXECUTABLE)
|
||||
message(FATAL_ERROR "Could not find Go")
|
||||
endif()
|
||||
|
||||
if (BORINGSSL_ALLOW_CXX_RUNTIME)
|
||||
if(USE_CUSTOM_LIBCXX)
|
||||
set(BORINGSSL_ALLOW_CXX_RUNTIME 1)
|
||||
endif()
|
||||
|
||||
if(BORINGSSL_ALLOW_CXX_RUNTIME)
|
||||
add_definitions(-DBORINGSSL_ALLOW_CXX_RUNTIME)
|
||||
endif()
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
# Windows release builds don't set NDEBUG in NASM flags automatically.
|
||||
set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DNDEBUG")
|
||||
endif()
|
||||
|
||||
# Add a RelWithAsserts build configuration. It is the same as Release, except it
|
||||
# does not define NDEBUG, so asserts run.
|
||||
foreach(VAR CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_ASM_FLAGS)
|
||||
string(REGEX REPLACE "(^| )[/-]DNDEBUG( |$)" " " "${VAR}_RELWITHASSERTS"
|
||||
"${${VAR}_RELEASE}")
|
||||
endforeach()
|
||||
|
||||
if(BORINGSSL_PREFIX AND BORINGSSL_PREFIX_SYMBOLS)
|
||||
add_definitions(-DBORINGSSL_PREFIX=${BORINGSSL_PREFIX})
|
||||
# CMake automatically connects include_directories to the NASM command-line,
|
||||
# but not add_definitions.
|
||||
set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DBORINGSSL_PREFIX=${BORINGSSL_PREFIX}")
|
||||
|
||||
# Use "symbol_prefix_include" to store generated header files
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include)
|
||||
add_custom_command(
|
||||
OUTPUT symbol_prefix_include/boringssl_prefix_symbols.h
|
||||
symbol_prefix_include/boringssl_prefix_symbols_asm.h
|
||||
symbol_prefix_include/boringssl_prefix_symbols_nasm.inc
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include
|
||||
COMMAND ${GO_EXECUTABLE} run ${CMAKE_CURRENT_SOURCE_DIR}/util/make_prefix_headers.go -out ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include ${BORINGSSL_PREFIX_SYMBOLS}
|
||||
DEPENDS util/make_prefix_headers.go
|
||||
${CMAKE_BINARY_DIR}/${BORINGSSL_PREFIX_SYMBOLS})
|
||||
|
||||
# add_dependencies needs a target, not a file, so we add an intermediate
|
||||
# target.
|
||||
add_custom_target(
|
||||
boringssl_prefix_symbols
|
||||
DEPENDS symbol_prefix_include/boringssl_prefix_symbols.h
|
||||
symbol_prefix_include/boringssl_prefix_symbols_asm.h
|
||||
symbol_prefix_include/boringssl_prefix_symbols_nasm.inc)
|
||||
add_dependencies(global_target boringssl_prefix_symbols)
|
||||
elseif(BORINGSSL_PREFIX OR BORINGSSL_PREFIX_SYMBOLS)
|
||||
message(FATAL_ERROR "Must specify both or neither of BORINGSSL_PREFIX and BORINGSSL_PREFIX_SYMBOLS")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(CLANG 1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
||||
set(EMSCRIPTEN 1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
||||
# Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
|
||||
# primarily on our normal Clang one because the MSVC one is mostly
|
||||
# suppressions for an overaggressive -Wall.
|
||||
set(C_CXX_FLAGS "-Wall -Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings")
|
||||
# primarily on our normal Clang one.
|
||||
set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wmissing-field-initializers -Wwrite-strings")
|
||||
if(MSVC)
|
||||
# clang-cl sets different default warnings than clang.
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-unused-parameter -fmsc-version=1900")
|
||||
# clang-cl sets different default warnings than clang. It also treats -Wall
|
||||
# as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall.
|
||||
# See http://llvm.org/viewvc/llvm-project?view=revision&revision=319116
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -W3 -Wno-unused-parameter -fmsc-version=1900")
|
||||
# googletest suppresses warning C4996 via a pragma, but clang-cl does not
|
||||
# honor it. Suppress it here to compensate. See https://crbug.com/772117.
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-deprecated-declarations")
|
||||
else()
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -ggdb -fvisibility=hidden -fno-common")
|
||||
if(EMSCRIPTEN)
|
||||
# emscripten's emcc/clang does not accept the "-ggdb" flag.
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -g")
|
||||
else()
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -ggdb")
|
||||
endif()
|
||||
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wall -fvisibility=hidden -fno-common")
|
||||
endif()
|
||||
|
||||
if(CLANG)
|
||||
|
@ -69,18 +139,6 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
|
|||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-free-nonheap-object")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
|
||||
NOT "6.0.0" VERSION_GREATER CMAKE_C_COMPILER_VERSION)
|
||||
# Clang's -Wtautological-constant-compare is far too aggressive and does not
|
||||
# account for, say, wanting the same code to work on both 32-bit and 64-bit
|
||||
# platforms.
|
||||
#
|
||||
# Note "Clang" and "AppleClang" version differently, so we check for an
|
||||
# exact match on the COMPILER_ID. As of writing, the warning is not in any
|
||||
# release of AppleClang yet.
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-tautological-constant-compare -Wtautological-constant-out-of-range-compare")
|
||||
endif()
|
||||
|
||||
if(CLANG OR NOT "7.0.0" VERSION_GREATER CMAKE_C_COMPILER_VERSION)
|
||||
set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wimplicit-fallthrough")
|
||||
endif()
|
||||
|
@ -151,6 +209,7 @@ elseif(MSVC)
|
|||
# copy constructor is inaccessible or deleted
|
||||
"C4626" # assignment operator could not be generated because a base class
|
||||
# assignment operator is inaccessible or deleted
|
||||
"C4628" # digraphs not supported with -Ze
|
||||
"C4668" # 'symbol' is not defined as a preprocessor macro, replacing with
|
||||
# '0' for 'directives'
|
||||
# Disable this because GTest uses it everywhere.
|
||||
|
@ -162,6 +221,8 @@ elseif(MSVC)
|
|||
"C4820" # 'bytes' bytes padding added after construct 'member_name'
|
||||
"C5026" # move constructor was implicitly defined as deleted
|
||||
"C5027" # move assignment operator was implicitly defined as deleted
|
||||
"C5045" # Compiler will insert Spectre mitigation for memory load if
|
||||
# /Qspectre switch specified
|
||||
)
|
||||
set(MSVC_LEVEL4_WARNINGS_LIST
|
||||
# See https://connect.microsoft.com/VisualStudio/feedback/details/1217660/warning-c4265-when-using-functional-header
|
||||
|
@ -171,8 +232,8 @@ elseif(MSVC)
|
|||
${MSVC_DISABLED_WARNINGS_LIST})
|
||||
string(REPLACE "C" " -w4" MSVC_LEVEL4_WARNINGS_STR
|
||||
${MSVC_LEVEL4_WARNINGS_LIST})
|
||||
set(CMAKE_C_FLAGS "-Wall -WX ${MSVC_DISABLED_WARNINGS_STR} ${MSVC_LEVEL4_WARNINGS_STR}")
|
||||
set(CMAKE_CXX_FLAGS "-Wall -WX ${MSVC_DISABLED_WARNINGS_STR} ${MSVC_LEVEL4_WARNINGS_STR}")
|
||||
set(CMAKE_C_FLAGS "-utf-8 -Wall -WX ${MSVC_DISABLED_WARNINGS_STR} ${MSVC_LEVEL4_WARNINGS_STR}")
|
||||
set(CMAKE_CXX_FLAGS "-utf-8 -Wall -WX ${MSVC_DISABLED_WARNINGS_STR} ${MSVC_LEVEL4_WARNINGS_STR}")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
|
@ -182,6 +243,8 @@ if(WIN32)
|
|||
# Allow use of fopen.
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||
# VS 2017 and higher supports STL-only warning suppressions.
|
||||
# A bug in CMake < 3.13.0 may cause the space in this value to
|
||||
# cause issues when building with NASM. In that case, update CMake.
|
||||
add_definitions("-D_STL_EXTRA_DISABLED_WARNINGS=4774 4987")
|
||||
endif()
|
||||
|
||||
|
@ -192,7 +255,7 @@ if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.7.9
|
|||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
if ((CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.8.99") OR CLANG)
|
||||
if((CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.8.99") OR CLANG)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
|
||||
|
@ -209,6 +272,10 @@ if(FUZZ)
|
|||
message(FATAL_ERROR "You need to build with Clang for fuzzing to work")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_LESS "6.0.0")
|
||||
message(FATAL_ERROR "You need Clang ≥ 6.0.0")
|
||||
endif()
|
||||
|
||||
add_definitions(-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE)
|
||||
set(RUNNER_ARGS "-deterministic")
|
||||
|
||||
|
@ -217,43 +284,40 @@ if(FUZZ)
|
|||
set(RUNNER_ARGS ${RUNNER_ARGS} "-fuzzer" "-shim-config" "fuzzer_mode.json")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-coverage=edge,indirect-calls,trace-pc-guard")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-coverage=edge,indirect-calls,trace-pc-guard")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
|
||||
link_directories(.)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
|
||||
endif()
|
||||
|
||||
add_definitions(-DBORINGSSL_IMPLEMENTATION)
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
if(BUILD_SHARED_LIBS)
|
||||
add_definitions(-DBORINGSSL_SHARED_LIBRARY)
|
||||
# Enable position-independent code globally. This is needed because
|
||||
# some library targets are OBJECT libraries.
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
endif()
|
||||
|
||||
if (MSAN)
|
||||
if(MSAN)
|
||||
if(NOT CLANG)
|
||||
message(FATAL_ERROR "Cannot enable MSAN unless using Clang")
|
||||
endif()
|
||||
|
||||
if (ASAN)
|
||||
if(ASAN)
|
||||
message(FATAL_ERROR "ASAN and MSAN are mutually exclusive")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
|
||||
set(OPENSSL_NO_ASM "1")
|
||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
|
||||
endif()
|
||||
|
||||
if (ASAN)
|
||||
if(ASAN)
|
||||
if(NOT CLANG)
|
||||
message(FATAL_ERROR "Cannot enable ASAN unless using Clang")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
|
||||
set(OPENSSL_NO_ASM "1")
|
||||
endif()
|
||||
|
||||
if(CFI)
|
||||
|
@ -261,9 +325,8 @@ if(CFI)
|
|||
message(FATAL_ERROR "Cannot enable CFI unless using Clang")
|
||||
endif()
|
||||
|
||||
# TODO(crbug.com/785442): Remove -fsanitize-cfi-icall-generalize-pointers.
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-cfi-icall-generalize-pointers -flto")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
|
||||
# We use Chromium's copy of clang, which requires -fuse-ld=lld if building
|
||||
# with -flto. That, in turn, can't handle -ggdb.
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
||||
|
@ -274,7 +337,33 @@ if(CFI)
|
|||
set(OPENSSL_NO_ASM "1")
|
||||
endif()
|
||||
|
||||
if (GCOV)
|
||||
if(TSAN)
|
||||
if(NOT CLANG)
|
||||
message(FATAL_ERROR "Cannot enable TSAN unless using Clang")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
||||
endif()
|
||||
|
||||
if(UBSAN)
|
||||
if(NOT CLANG)
|
||||
message(FATAL_ERROR "Cannot enable UBSAN unless using Clang")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
|
||||
|
||||
if(NOT UBSAN_RECOVER)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-sanitize-recover=undefined")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize-recover=undefined")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-sanitize-recover=undefined")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(GCOV)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
endif()
|
||||
|
@ -284,79 +373,233 @@ if(FIPS)
|
|||
if(FIPS_BREAK_TEST)
|
||||
add_definitions("-DBORINGSSL_FIPS_BREAK_${FIPS_BREAK_TEST}=1")
|
||||
endif()
|
||||
# Delocate does not work for ASan and MSan builds.
|
||||
# The FIPS integrity check does not work for ASan and MSan builds.
|
||||
if(NOT ASAN AND NOT MSAN)
|
||||
set(FIPS_DELOCATE "1")
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(FIPS_SHARED "1")
|
||||
else()
|
||||
set(FIPS_DELOCATE "1")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(OPENSSL_SMALL)
|
||||
add_definitions(-DOPENSSL_SMALL)
|
||||
endif()
|
||||
|
||||
if(CONSTANT_TIME_VALIDATION)
|
||||
add_definitions(-DBORINGSSL_CONSTANT_TIME_VALIDATION)
|
||||
# Asserts will often test secret data.
|
||||
add_definitions(-DNDEBUG)
|
||||
endif()
|
||||
|
||||
function(go_executable dest package)
|
||||
set(godeps "${CMAKE_SOURCE_DIR}/util/godeps.go")
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.7" OR
|
||||
NOT ${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||
# The DEPFILE parameter to add_custom_command is new as of CMake 3.7 and
|
||||
# only works with Ninja. Query the sources at configure time. Additionally,
|
||||
# everything depends on go.mod. That affects what external packages to use.
|
||||
execute_process(COMMAND ${GO_EXECUTABLE} run ${godeps} -format cmake
|
||||
-pkg ${package}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE sources
|
||||
RESULT_VARIABLE godeps_result)
|
||||
add_custom_command(OUTPUT ${dest}
|
||||
COMMAND ${GO_EXECUTABLE} build
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/${dest} ${package}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${sources} ${CMAKE_SOURCE_DIR}/go.mod)
|
||||
else()
|
||||
# Ninja expects the target in the depfile to match the output. This is a
|
||||
# relative path from the build directory.
|
||||
string(LENGTH "${CMAKE_BINARY_DIR}" root_dir_length)
|
||||
math(EXPR root_dir_length "${root_dir_length} + 1")
|
||||
string(SUBSTRING "${CMAKE_CURRENT_BINARY_DIR}" ${root_dir_length} -1 target)
|
||||
set(target "${target}/${dest}")
|
||||
|
||||
set(depfile "${CMAKE_CURRENT_BINARY_DIR}/${dest}.d")
|
||||
add_custom_command(OUTPUT ${dest}
|
||||
COMMAND ${GO_EXECUTABLE} build
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/${dest} ${package}
|
||||
COMMAND ${GO_EXECUTABLE} run ${godeps} -format depfile
|
||||
-target ${target} -pkg ${package} -out ${depfile}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${godeps} ${CMAKE_SOURCE_DIR}/go.mod
|
||||
DEPFILE ${depfile})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# CMake's iOS support uses Apple's multiple-architecture toolchain. It takes an
|
||||
# architecture list from CMAKE_OSX_ARCHITECTURES, leaves CMAKE_SYSTEM_PROCESSOR
|
||||
# alone, and expects all architecture-specific logic to be conditioned within
|
||||
# the source files rather than the build. This does not work for our assembly
|
||||
# files, so we fix CMAKE_SYSTEM_PROCESSOR and only support single-architecture
|
||||
# builds.
|
||||
if (NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
|
||||
if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
|
||||
list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
|
||||
if (NOT ${NUM_ARCHES} EQUAL 1)
|
||||
if(NOT ${NUM_ARCHES} EQUAL 1)
|
||||
message(FATAL_ERROR "Universal binaries not supported.")
|
||||
endif()
|
||||
list(GET CMAKE_OSX_ARCHITECTURES 0 CMAKE_SYSTEM_PROCESSOR)
|
||||
endif()
|
||||
|
||||
if (OPENSSL_NO_ASM)
|
||||
if(OPENSSL_NO_ASM)
|
||||
add_definitions(-DOPENSSL_NO_ASM)
|
||||
set(ARCH "generic")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
|
||||
set(ARCH "x86_64")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64")
|
||||
set(ARCH "x86_64")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64")
|
||||
# cmake reports AMD64 on Windows, but we might be building for 32-bit.
|
||||
if (CMAKE_CL_64)
|
||||
if(CMAKE_CL_64)
|
||||
set(ARCH "x86_64")
|
||||
else()
|
||||
set(ARCH "x86")
|
||||
endif()
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86")
|
||||
set(ARCH "x86")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
|
||||
set(ARCH "x86")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686")
|
||||
set(ARCH "x86")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
|
||||
set(ARCH "aarch64")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64")
|
||||
set(ARCH "aarch64")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm*")
|
||||
# Apple A12 Bionic chipset which is added in iPhone XS/XS Max/XR uses arm64e architecture.
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64e")
|
||||
set(ARCH "aarch64")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm*")
|
||||
set(ARCH "arm")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "mips")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "mips")
|
||||
# Just to avoid the “unknown processor” error.
|
||||
set(ARCH "generic")
|
||||
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64le")
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64le")
|
||||
set(ARCH "ppc64le")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown processor:" ${CMAKE_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
|
||||
if (ANDROID AND NOT ANDROID_NDK_REVISION AND ${ARCH} STREQUAL "arm")
|
||||
if(ANDROID AND NOT ANDROID_NDK_REVISION AND ${ARCH} STREQUAL "arm")
|
||||
# The third-party Android-NDK CMake files somehow fail to set the -march flag
|
||||
# for assembly files. Without this flag, the compiler believes that it's
|
||||
# building for ARMv5.
|
||||
set(CMAKE_ASM_FLAGS "-march=${CMAKE_SYSTEM_PROCESSOR} ${CMAKE_ASM_FLAGS}")
|
||||
endif()
|
||||
|
||||
if (${ARCH} STREQUAL "x86" AND APPLE AND ${CMAKE_VERSION} VERSION_LESS "3.0")
|
||||
# With CMake 2.8.x, ${CMAKE_SYSTEM_PROCESSOR} evalutes to i386 on OS X,
|
||||
# but clang defaults to 64-bit builds on OS X unless otherwise told.
|
||||
# Set ARCH to x86_64 so clang and CMake agree. This is fixed in CMake 3.
|
||||
set(ARCH "x86_64")
|
||||
if(USE_CUSTOM_LIBCXX)
|
||||
if(NOT CLANG)
|
||||
message(FATAL_ERROR "USE_CUSTOM_LIBCXX only supported with Clang")
|
||||
endif()
|
||||
|
||||
# CMAKE_CXX_FLAGS ends up in the linker flags as well, so use
|
||||
# add_compile_options. There does not appear to be a way to set
|
||||
# language-specific compile-only flags.
|
||||
add_compile_options("-nostdinc++")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib++")
|
||||
include_directories(
|
||||
SYSTEM
|
||||
util/bot/libcxx/include
|
||||
util/bot/libcxxabi/include
|
||||
)
|
||||
|
||||
# This is patterned after buildtools/third_party/libc++/BUILD.gn and
|
||||
# buildtools/third_party/libc++abi/BUILD.gn in Chromium.
|
||||
|
||||
file(GLOB LIBCXX_SOURCES "util/bot/libcxx/src/*.cpp")
|
||||
file(GLOB LIBCXXABI_SOURCES "util/bot/libcxxabi/src/*.cpp")
|
||||
|
||||
# This file is meant for exception-less builds.
|
||||
list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_noexception.cpp")
|
||||
# libc++ also defines new and delete.
|
||||
list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/stdlib_new_delete.cpp")
|
||||
if(TSAN)
|
||||
# ThreadSanitizer tries to intercept these symbols. Skip them to avoid
|
||||
# symbol conflicts.
|
||||
list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_guard.cpp")
|
||||
endif()
|
||||
|
||||
add_library(libcxxabi ${LIBCXXABI_SOURCES})
|
||||
target_compile_definitions(
|
||||
libcxxabi PRIVATE
|
||||
-D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
|
||||
)
|
||||
set_target_properties(libcxxabi PROPERTIES COMPILE_FLAGS "-Wno-missing-prototypes -Wno-implicit-fallthrough")
|
||||
|
||||
add_library(libcxx ${LIBCXX_SOURCES})
|
||||
if(ASAN OR MSAN OR TSAN)
|
||||
# Sanitizers try to intercept new and delete.
|
||||
target_compile_definitions(
|
||||
libcxx PRIVATE
|
||||
-D_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
|
||||
)
|
||||
endif()
|
||||
target_compile_definitions(
|
||||
libcxx PRIVATE
|
||||
-D_LIBCPP_BUILDING_LIBRARY
|
||||
-DLIBCXX_BUILDING_LIBCXXABI
|
||||
)
|
||||
target_link_libraries(libcxx libcxxabi)
|
||||
endif()
|
||||
|
||||
add_subdirectory(crypto)
|
||||
add_subdirectory(third_party/fiat)
|
||||
# Add minimal googletest targets. The provided one has many side-effects, and
|
||||
# googletest has a very straightforward build.
|
||||
add_library(boringssl_gtest third_party/googletest/src/gtest-all.cc)
|
||||
target_include_directories(boringssl_gtest PRIVATE third_party/googletest)
|
||||
|
||||
if (NOT ${CMAKE_VERSION} VERSION_LESS "3.2")
|
||||
include_directories(third_party/googletest/include)
|
||||
|
||||
# Declare a dummy target to build all unit tests. Test targets should inject
|
||||
# themselves as dependencies next to the target definition.
|
||||
add_custom_target(all_tests)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT crypto_test_data.cc
|
||||
COMMAND ${GO_EXECUTABLE} run util/embed_test_data.go ${CRYPTO_TEST_DATA} >
|
||||
${CMAKE_CURRENT_BINARY_DIR}/crypto_test_data.cc
|
||||
DEPENDS util/embed_test_data.go ${CRYPTO_TEST_DATA}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_library(crypto_test_data OBJECT crypto_test_data.cc)
|
||||
|
||||
add_subdirectory(crypto)
|
||||
add_subdirectory(ssl)
|
||||
add_subdirectory(ssl/test)
|
||||
add_subdirectory(tool)
|
||||
add_subdirectory(util/fipstools/cavp)
|
||||
add_subdirectory(util/fipstools/acvp/modulewrapper)
|
||||
add_subdirectory(decrepit)
|
||||
|
||||
if(FUZZ)
|
||||
if(LIBFUZZER_FROM_DEPS)
|
||||
file(GLOB LIBFUZZER_SOURCES "util/bot/libFuzzer/*.cpp")
|
||||
add_library(Fuzzer STATIC ${LIBFUZZER_SOURCES})
|
||||
# libFuzzer does not pass our aggressive warnings. It also must be built
|
||||
# without -fsanitize-coverage options or clang crashes.
|
||||
set_target_properties(Fuzzer PROPERTIES COMPILE_FLAGS "-Wno-shadow -Wno-format-nonliteral -Wno-missing-prototypes -fsanitize-coverage=0")
|
||||
endif()
|
||||
|
||||
add_subdirectory(fuzz)
|
||||
endif()
|
||||
|
||||
if(NOT ${CMAKE_VERSION} VERSION_LESS "3.2")
|
||||
# USES_TERMINAL is only available in CMake 3.2 or later.
|
||||
set(MAYBE_USES_TERMINAL USES_TERMINAL)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
set(HANDSHAKER_ARGS "-handshaker-path" $<TARGET_FILE:handshaker>)
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
run_tests
|
||||
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
|
||||
${CMAKE_BINARY_DIR}
|
||||
COMMAND cd ssl/test/runner &&
|
||||
${GO_EXECUTABLE} test -shim-path $<TARGET_FILE:bssl_shim>
|
||||
${HANDSHAKER_ARGS} ${RUNNER_ARGS}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
DEPENDS all_tests bssl_shim handshaker
|
||||
${MAYBE_USES_TERMINAL})
|
||||
|
|
|
@ -2,27 +2,27 @@ include_directories(../include)
|
|||
|
||||
if(NOT OPENSSL_NO_ASM)
|
||||
if(UNIX)
|
||||
if (${ARCH} STREQUAL "aarch64")
|
||||
if(${ARCH} STREQUAL "aarch64")
|
||||
# The "armx" Perl scripts look for "64" in the style argument
|
||||
# in order to decide whether to generate 32- or 64-bit asm.
|
||||
if (APPLE)
|
||||
if(APPLE)
|
||||
set(PERLASM_STYLE ios64)
|
||||
else()
|
||||
set(PERLASM_STYLE linux64)
|
||||
endif()
|
||||
elseif (${ARCH} STREQUAL "arm")
|
||||
if (APPLE)
|
||||
elseif(${ARCH} STREQUAL "arm")
|
||||
if(APPLE)
|
||||
set(PERLASM_STYLE ios32)
|
||||
else()
|
||||
set(PERLASM_STYLE linux32)
|
||||
endif()
|
||||
elseif (${ARCH} STREQUAL "ppc64le")
|
||||
elseif(${ARCH} STREQUAL "ppc64le")
|
||||
set(PERLASM_STYLE linux64le)
|
||||
else()
|
||||
if (${ARCH} STREQUAL "x86")
|
||||
if(${ARCH} STREQUAL "x86")
|
||||
set(PERLASM_FLAGS "-fPIC -DOPENSSL_IA32_SSE2")
|
||||
endif()
|
||||
if (APPLE)
|
||||
if(APPLE)
|
||||
set(PERLASM_STYLE macosx)
|
||||
else()
|
||||
set(PERLASM_STYLE elf)
|
||||
|
@ -38,8 +38,8 @@ if(NOT OPENSSL_NO_ASM)
|
|||
endif()
|
||||
|
||||
# CMake does not add -isysroot and -arch flags to assembly.
|
||||
if (APPLE)
|
||||
if (CMAKE_OSX_SYSROOT)
|
||||
if(APPLE)
|
||||
if(CMAKE_OSX_SYSROOT)
|
||||
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot \"${CMAKE_OSX_SYSROOT}\"")
|
||||
endif()
|
||||
foreach(arch ${CMAKE_OSX_ARCHITECTURES})
|
||||
|
@ -47,13 +47,13 @@ if(NOT OPENSSL_NO_ASM)
|
|||
endforeach()
|
||||
endif()
|
||||
else()
|
||||
if (${ARCH} STREQUAL "x86_64")
|
||||
if(${ARCH} STREQUAL "x86_64")
|
||||
set(PERLASM_STYLE nasm)
|
||||
else()
|
||||
set(PERLASM_STYLE win32n)
|
||||
set(PERLASM_FLAGS "-DOPENSSL_IA32_SSE2")
|
||||
endif()
|
||||
set(CMAKE_ASM_NASM_FLAGS "-g cv8")
|
||||
set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8")
|
||||
|
||||
# On Windows, we use the NASM output, specifically built with Yasm.
|
||||
set(ASM_EXT asm)
|
||||
|
@ -62,8 +62,14 @@ if(NOT OPENSSL_NO_ASM)
|
|||
endif()
|
||||
|
||||
function(perlasm dest src)
|
||||
get_filename_component(dir ${dest} DIRECTORY)
|
||||
if ("${dir}" STREQUAL "")
|
||||
set(dir ".")
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${dest}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${dir}
|
||||
COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${PERLASM_STYLE} ${PERLASM_FLAGS} ${ARGN} ${dest}
|
||||
DEPENDS
|
||||
${src}
|
||||
|
@ -78,76 +84,10 @@ function(perlasm dest src)
|
|||
)
|
||||
endfunction()
|
||||
|
||||
# Level 0.1 - depends on nothing outside this set.
|
||||
add_subdirectory(stack)
|
||||
add_subdirectory(lhash)
|
||||
add_subdirectory(err)
|
||||
add_subdirectory(buf)
|
||||
add_subdirectory(base64)
|
||||
add_subdirectory(bytestring)
|
||||
add_subdirectory(pool)
|
||||
|
||||
# Level 0.2 - depends on nothing but itself
|
||||
add_subdirectory(rc4)
|
||||
add_subdirectory(conf)
|
||||
add_subdirectory(chacha)
|
||||
add_subdirectory(poly1305)
|
||||
add_subdirectory(curve25519)
|
||||
|
||||
# Level 1, depends only on 0.*
|
||||
add_subdirectory(digest_extra)
|
||||
add_subdirectory(cipher_extra)
|
||||
add_subdirectory(rand_extra)
|
||||
add_subdirectory(bio)
|
||||
add_subdirectory(bn_extra)
|
||||
add_subdirectory(obj)
|
||||
add_subdirectory(asn1)
|
||||
|
||||
# Level 2
|
||||
add_subdirectory(engine)
|
||||
add_subdirectory(dh)
|
||||
add_subdirectory(dsa)
|
||||
add_subdirectory(rsa_extra)
|
||||
add_subdirectory(ec_extra)
|
||||
add_subdirectory(ecdh)
|
||||
add_subdirectory(ecdsa_extra)
|
||||
|
||||
# Level 3
|
||||
add_subdirectory(cmac)
|
||||
add_subdirectory(evp)
|
||||
add_subdirectory(hkdf)
|
||||
add_subdirectory(pem)
|
||||
add_subdirectory(x509)
|
||||
add_subdirectory(x509v3)
|
||||
|
||||
# Level 4
|
||||
add_subdirectory(pkcs7)
|
||||
add_subdirectory(pkcs8)
|
||||
|
||||
add_subdirectory(fipsmodule)
|
||||
add_subdirectory(test)
|
||||
|
||||
add_library(
|
||||
crypto_base
|
||||
|
||||
OBJECT
|
||||
|
||||
cpu-aarch64-linux.c
|
||||
cpu-arm.c
|
||||
cpu-arm-linux.c
|
||||
cpu-intel.c
|
||||
cpu-ppc64le.c
|
||||
crypto.c
|
||||
ex_data.c
|
||||
mem.c
|
||||
refcount_c11.c
|
||||
refcount_lock.c
|
||||
thread.c
|
||||
thread_none.c
|
||||
thread_pthread.c
|
||||
thread_win.c
|
||||
)
|
||||
|
||||
if(FIPS_DELOCATE)
|
||||
if(FIPS_DELOCATE OR FIPS_SHARED)
|
||||
SET_SOURCE_FILES_PROPERTIES(fipsmodule/bcm.o PROPERTIES EXTERNAL_OBJECT true)
|
||||
SET_SOURCE_FILES_PROPERTIES(fipsmodule/bcm.o PROPERTIES GENERATED true)
|
||||
|
||||
|
@ -158,51 +98,350 @@ if(FIPS_DELOCATE)
|
|||
)
|
||||
endif()
|
||||
|
||||
if(${ARCH} STREQUAL "arm")
|
||||
set(
|
||||
CRYPTO_ARCH_SOURCES
|
||||
|
||||
chacha/chacha-armv4.${ASM_EXT}
|
||||
curve25519/asm/x25519-asm-arm.S
|
||||
poly1305/poly1305_arm_asm.S
|
||||
test/trampoline-armv4.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(${ARCH} STREQUAL "aarch64")
|
||||
set(
|
||||
CRYPTO_ARCH_SOURCES
|
||||
|
||||
chacha/chacha-armv8.${ASM_EXT}
|
||||
test/trampoline-armv8.${ASM_EXT}
|
||||
third_party/sike/asm/fp-armv8.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(${ARCH} STREQUAL "x86")
|
||||
set(
|
||||
CRYPTO_ARCH_SOURCES
|
||||
|
||||
chacha/chacha-x86.${ASM_EXT}
|
||||
test/trampoline-x86.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(${ARCH} STREQUAL "x86_64")
|
||||
set(
|
||||
CRYPTO_ARCH_SOURCES
|
||||
|
||||
chacha/chacha-x86_64.${ASM_EXT}
|
||||
cipher_extra/aes128gcmsiv-x86_64.${ASM_EXT}
|
||||
cipher_extra/chacha20_poly1305_x86_64.${ASM_EXT}
|
||||
hrss/asm/poly_rq_mul.S
|
||||
test/trampoline-x86_64.${ASM_EXT}
|
||||
third_party/sike/asm/fp-x86_64.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
perlasm(chacha/chacha-armv4.${ASM_EXT} chacha/asm/chacha-armv4.pl)
|
||||
perlasm(chacha/chacha-armv8.${ASM_EXT} chacha/asm/chacha-armv8.pl)
|
||||
perlasm(chacha/chacha-x86.${ASM_EXT} chacha/asm/chacha-x86.pl)
|
||||
perlasm(chacha/chacha-x86_64.${ASM_EXT} chacha/asm/chacha-x86_64.pl)
|
||||
perlasm(cipher_extra/aes128gcmsiv-x86_64.${ASM_EXT} cipher_extra/asm/aes128gcmsiv-x86_64.pl)
|
||||
perlasm(cipher_extra/chacha20_poly1305_x86_64.${ASM_EXT} cipher_extra/asm/chacha20_poly1305_x86_64.pl)
|
||||
perlasm(third_party/sike/asm/fp-x86_64.${ASM_EXT} ../third_party/sike/asm/fp-x86_64.pl)
|
||||
perlasm(third_party/sike/asm/fp-armv8.${ASM_EXT} ../third_party/sike/asm/fp-armv8.pl)
|
||||
perlasm(test/trampoline-armv4.${ASM_EXT} test/asm/trampoline-armv4.pl)
|
||||
perlasm(test/trampoline-armv8.${ASM_EXT} test/asm/trampoline-armv8.pl)
|
||||
perlasm(test/trampoline-x86.${ASM_EXT} test/asm/trampoline-x86.pl)
|
||||
perlasm(test/trampoline-x86_64.${ASM_EXT} test/asm/trampoline-x86_64.pl)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT err_data.c
|
||||
COMMAND ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c
|
||||
DEPENDS
|
||||
err/err_data_generate.go
|
||||
err/asn1.errordata
|
||||
err/bio.errordata
|
||||
err/bn.errordata
|
||||
err/cipher.errordata
|
||||
err/conf.errordata
|
||||
err/dh.errordata
|
||||
err/digest.errordata
|
||||
err/dsa.errordata
|
||||
err/ecdh.errordata
|
||||
err/ecdsa.errordata
|
||||
err/ec.errordata
|
||||
err/engine.errordata
|
||||
err/evp.errordata
|
||||
err/hkdf.errordata
|
||||
err/obj.errordata
|
||||
err/pem.errordata
|
||||
err/pkcs7.errordata
|
||||
err/pkcs8.errordata
|
||||
err/rsa.errordata
|
||||
err/ssl.errordata
|
||||
err/x509.errordata
|
||||
err/x509v3.errordata
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/err
|
||||
)
|
||||
|
||||
add_library(
|
||||
crypto
|
||||
|
||||
$<TARGET_OBJECTS:crypto_base>
|
||||
$<TARGET_OBJECTS:stack>
|
||||
$<TARGET_OBJECTS:lhash>
|
||||
$<TARGET_OBJECTS:err>
|
||||
$<TARGET_OBJECTS:base64>
|
||||
$<TARGET_OBJECTS:bytestring>
|
||||
$<TARGET_OBJECTS:pool>
|
||||
$<TARGET_OBJECTS:fipsmodule>
|
||||
$<TARGET_OBJECTS:digest_extra>
|
||||
$<TARGET_OBJECTS:cipher_extra>
|
||||
$<TARGET_OBJECTS:rc4>
|
||||
$<TARGET_OBJECTS:conf>
|
||||
$<TARGET_OBJECTS:chacha>
|
||||
$<TARGET_OBJECTS:poly1305>
|
||||
$<TARGET_OBJECTS:curve25519>
|
||||
$<TARGET_OBJECTS:fiat>
|
||||
$<TARGET_OBJECTS:buf>
|
||||
$<TARGET_OBJECTS:bn_extra>
|
||||
$<TARGET_OBJECTS:bio>
|
||||
$<TARGET_OBJECTS:rand_extra>
|
||||
$<TARGET_OBJECTS:obj>
|
||||
$<TARGET_OBJECTS:asn1>
|
||||
$<TARGET_OBJECTS:engine>
|
||||
$<TARGET_OBJECTS:dh>
|
||||
$<TARGET_OBJECTS:dsa>
|
||||
$<TARGET_OBJECTS:rsa_extra>
|
||||
$<TARGET_OBJECTS:ec_extra>
|
||||
$<TARGET_OBJECTS:ecdh>
|
||||
$<TARGET_OBJECTS:ecdsa_extra>
|
||||
$<TARGET_OBJECTS:cmac>
|
||||
$<TARGET_OBJECTS:evp>
|
||||
$<TARGET_OBJECTS:hkdf>
|
||||
$<TARGET_OBJECTS:pem>
|
||||
$<TARGET_OBJECTS:x509>
|
||||
$<TARGET_OBJECTS:x509v3>
|
||||
$<TARGET_OBJECTS:pkcs7>
|
||||
$<TARGET_OBJECTS:pkcs8_lib>
|
||||
asn1/a_bitstr.c
|
||||
asn1/a_bool.c
|
||||
asn1/a_d2i_fp.c
|
||||
asn1/a_dup.c
|
||||
asn1/a_enum.c
|
||||
asn1/a_gentm.c
|
||||
asn1/a_i2d_fp.c
|
||||
asn1/a_int.c
|
||||
asn1/a_mbstr.c
|
||||
asn1/a_object.c
|
||||
asn1/a_octet.c
|
||||
asn1/a_print.c
|
||||
asn1/a_strnid.c
|
||||
asn1/a_time.c
|
||||
asn1/a_type.c
|
||||
asn1/a_utctm.c
|
||||
asn1/a_utf8.c
|
||||
asn1/asn1_lib.c
|
||||
asn1/asn1_par.c
|
||||
asn1/asn_pack.c
|
||||
asn1/f_enum.c
|
||||
asn1/f_int.c
|
||||
asn1/f_string.c
|
||||
asn1/tasn_dec.c
|
||||
asn1/tasn_enc.c
|
||||
asn1/tasn_fre.c
|
||||
asn1/tasn_new.c
|
||||
asn1/tasn_typ.c
|
||||
asn1/tasn_utl.c
|
||||
asn1/time_support.c
|
||||
base64/base64.c
|
||||
bio/bio.c
|
||||
bio/bio_mem.c
|
||||
bio/connect.c
|
||||
bio/fd.c
|
||||
bio/file.c
|
||||
bio/hexdump.c
|
||||
bio/pair.c
|
||||
bio/printf.c
|
||||
bio/socket.c
|
||||
bio/socket_helper.c
|
||||
bn_extra/bn_asn1.c
|
||||
bn_extra/convert.c
|
||||
buf/buf.c
|
||||
bytestring/asn1_compat.c
|
||||
bytestring/ber.c
|
||||
bytestring/cbb.c
|
||||
bytestring/cbs.c
|
||||
bytestring/unicode.c
|
||||
chacha/chacha.c
|
||||
cipher_extra/cipher_extra.c
|
||||
cipher_extra/derive_key.c
|
||||
cipher_extra/e_aesccm.c
|
||||
cipher_extra/e_aesctrhmac.c
|
||||
cipher_extra/e_aesgcmsiv.c
|
||||
cipher_extra/e_chacha20poly1305.c
|
||||
cipher_extra/e_null.c
|
||||
cipher_extra/e_rc2.c
|
||||
cipher_extra/e_rc4.c
|
||||
cipher_extra/e_tls.c
|
||||
cipher_extra/tls_cbc.c
|
||||
cmac/cmac.c
|
||||
conf/conf.c
|
||||
cpu-aarch64-fuchsia.c
|
||||
cpu-aarch64-linux.c
|
||||
cpu-arm-linux.c
|
||||
cpu-arm.c
|
||||
cpu-intel.c
|
||||
cpu-ppc64le.c
|
||||
crypto.c
|
||||
curve25519/spake25519.c
|
||||
dh/dh.c
|
||||
dh/params.c
|
||||
dh/check.c
|
||||
dh/dh_asn1.c
|
||||
digest_extra/digest_extra.c
|
||||
dsa/dsa.c
|
||||
dsa/dsa_asn1.c
|
||||
ecdh_extra/ecdh_extra.c
|
||||
ecdsa_extra/ecdsa_asn1.c
|
||||
ec_extra/ec_asn1.c
|
||||
err/err.c
|
||||
err_data.c
|
||||
engine/engine.c
|
||||
evp/digestsign.c
|
||||
evp/evp.c
|
||||
evp/evp_asn1.c
|
||||
evp/evp_ctx.c
|
||||
evp/p_dsa_asn1.c
|
||||
evp/p_ec.c
|
||||
evp/p_ec_asn1.c
|
||||
evp/p_ed25519.c
|
||||
evp/p_ed25519_asn1.c
|
||||
evp/p_rsa.c
|
||||
evp/p_rsa_asn1.c
|
||||
evp/p_x25519.c
|
||||
evp/p_x25519_asn1.c
|
||||
evp/pbkdf.c
|
||||
evp/print.c
|
||||
evp/scrypt.c
|
||||
evp/sign.c
|
||||
ex_data.c
|
||||
hkdf/hkdf.c
|
||||
hrss/hrss.c
|
||||
lhash/lhash.c
|
||||
mem.c
|
||||
obj/obj.c
|
||||
obj/obj_xref.c
|
||||
pem/pem_all.c
|
||||
pem/pem_info.c
|
||||
pem/pem_lib.c
|
||||
pem/pem_oth.c
|
||||
pem/pem_pk8.c
|
||||
pem/pem_pkey.c
|
||||
pem/pem_x509.c
|
||||
pem/pem_xaux.c
|
||||
pkcs7/pkcs7.c
|
||||
pkcs7/pkcs7_x509.c
|
||||
pkcs8/pkcs8.c
|
||||
pkcs8/pkcs8_x509.c
|
||||
pkcs8/p5_pbev2.c
|
||||
poly1305/poly1305.c
|
||||
poly1305/poly1305_arm.c
|
||||
poly1305/poly1305_vec.c
|
||||
pool/pool.c
|
||||
rand_extra/deterministic.c
|
||||
rand_extra/forkunsafe.c
|
||||
rand_extra/fuchsia.c
|
||||
rand_extra/rand_extra.c
|
||||
rand_extra/windows.c
|
||||
rc4/rc4.c
|
||||
refcount_c11.c
|
||||
refcount_lock.c
|
||||
rsa_extra/rsa_asn1.c
|
||||
rsa_extra/rsa_print.c
|
||||
stack/stack.c
|
||||
siphash/siphash.c
|
||||
thread.c
|
||||
thread_none.c
|
||||
thread_pthread.c
|
||||
thread_win.c
|
||||
x509/a_digest.c
|
||||
x509/a_sign.c
|
||||
x509/a_strex.c
|
||||
x509/a_verify.c
|
||||
x509/algorithm.c
|
||||
x509/asn1_gen.c
|
||||
x509/by_dir.c
|
||||
x509/by_file.c
|
||||
x509/i2d_pr.c
|
||||
x509/rsa_pss.c
|
||||
x509/t_crl.c
|
||||
x509/t_req.c
|
||||
x509/t_x509.c
|
||||
x509/t_x509a.c
|
||||
x509/x509.c
|
||||
x509/x509_att.c
|
||||
x509/x509_cmp.c
|
||||
x509/x509_d2.c
|
||||
x509/x509_def.c
|
||||
x509/x509_ext.c
|
||||
x509/x509_lu.c
|
||||
x509/x509_obj.c
|
||||
x509/x509_r2x.c
|
||||
x509/x509_req.c
|
||||
x509/x509_set.c
|
||||
x509/x509_trs.c
|
||||
x509/x509_txt.c
|
||||
x509/x509_v3.c
|
||||
x509/x509_vfy.c
|
||||
x509/x509_vpm.c
|
||||
x509/x509cset.c
|
||||
x509/x509name.c
|
||||
x509/x509rset.c
|
||||
x509/x509spki.c
|
||||
x509/x_algor.c
|
||||
x509/x_all.c
|
||||
x509/x_attrib.c
|
||||
x509/x_crl.c
|
||||
x509/x_exten.c
|
||||
x509/x_info.c
|
||||
x509/x_name.c
|
||||
x509/x_pkey.c
|
||||
x509/x_pubkey.c
|
||||
x509/x_req.c
|
||||
x509/x_sig.c
|
||||
x509/x_spki.c
|
||||
x509/x_val.c
|
||||
x509/x_x509.c
|
||||
x509/x_x509a.c
|
||||
x509v3/pcy_cache.c
|
||||
x509v3/pcy_data.c
|
||||
x509v3/pcy_lib.c
|
||||
x509v3/pcy_map.c
|
||||
x509v3/pcy_node.c
|
||||
x509v3/pcy_tree.c
|
||||
x509v3/v3_akey.c
|
||||
x509v3/v3_akeya.c
|
||||
x509v3/v3_alt.c
|
||||
x509v3/v3_bcons.c
|
||||
x509v3/v3_bitst.c
|
||||
x509v3/v3_conf.c
|
||||
x509v3/v3_cpols.c
|
||||
x509v3/v3_crld.c
|
||||
x509v3/v3_enum.c
|
||||
x509v3/v3_extku.c
|
||||
x509v3/v3_genn.c
|
||||
x509v3/v3_ia5.c
|
||||
x509v3/v3_info.c
|
||||
x509v3/v3_int.c
|
||||
x509v3/v3_lib.c
|
||||
x509v3/v3_ncons.c
|
||||
x509v3/v3_ocsp.c
|
||||
x509v3/v3_pci.c
|
||||
x509v3/v3_pcia.c
|
||||
x509v3/v3_pcons.c
|
||||
x509v3/v3_pku.c
|
||||
x509v3/v3_pmaps.c
|
||||
x509v3/v3_prn.c
|
||||
x509v3/v3_purp.c
|
||||
x509v3/v3_skey.c
|
||||
x509v3/v3_sxnet.c
|
||||
x509v3/v3_utl.c
|
||||
../third_party/fiat/curve25519.c
|
||||
../third_party/sike/fpx.c
|
||||
../third_party/sike/isogeny.c
|
||||
../third_party/sike/curve_params.c
|
||||
../third_party/sike/sike.c
|
||||
../third_party/sike/asm/fp_generic.c
|
||||
|
||||
$<TARGET_OBJECTS:fipsmodule>
|
||||
|
||||
${CRYPTO_ARCH_SOURCES}
|
||||
${CRYPTO_FIPS_OBJECTS}
|
||||
)
|
||||
|
||||
if(FIPS_DELOCATE)
|
||||
if(FIPS_SHARED)
|
||||
# Rewrite libcrypto.so to inject the correct module hash value. This assumes
|
||||
# UNIX-style library naming, but we only support FIPS mode on Linux anyway.
|
||||
add_custom_command(
|
||||
TARGET crypto POST_BUILD
|
||||
COMMAND ${GO_EXECUTABLE} run
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../util/fipstools/inject_hash/inject_hash.go
|
||||
-o libcrypto.so -in-object libcrypto.so
|
||||
# The DEPENDS argument to a POST_BUILD rule appears to be ignored. Thus
|
||||
# go_executable isn't used (as it doesn't get built), but we list this
|
||||
# dependency anyway in case it starts working in some CMake version.
|
||||
DEPENDS ../util/fipstools/inject_hash/inject_hash.go
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(crypto global_target)
|
||||
|
||||
if(FIPS_DELOCATE OR FIPS_SHARED)
|
||||
add_dependencies(crypto bcm_o_target)
|
||||
endif()
|
||||
|
||||
|
@ -211,3 +450,84 @@ SET_TARGET_PROPERTIES(crypto PROPERTIES LINKER_LANGUAGE C)
|
|||
if(NOT MSVC AND NOT ANDROID)
|
||||
target_link_libraries(crypto pthread)
|
||||
endif()
|
||||
|
||||
# Every target depends on crypto, so we add libcxx as a dependency here to
|
||||
# simplify injecting it everywhere.
|
||||
if(USE_CUSTOM_LIBCXX)
|
||||
target_link_libraries(crypto libcxx)
|
||||
endif()
|
||||
|
||||
add_executable(
|
||||
crypto_test
|
||||
|
||||
abi_self_test.cc
|
||||
asn1/asn1_test.cc
|
||||
base64/base64_test.cc
|
||||
buf/buf_test.cc
|
||||
bio/bio_test.cc
|
||||
bytestring/bytestring_test.cc
|
||||
chacha/chacha_test.cc
|
||||
cipher_extra/aead_test.cc
|
||||
cipher_extra/cipher_test.cc
|
||||
cmac/cmac_test.cc
|
||||
compiler_test.cc
|
||||
constant_time_test.cc
|
||||
cpu-arm-linux_test.cc
|
||||
curve25519/ed25519_test.cc
|
||||
curve25519/spake25519_test.cc
|
||||
curve25519/x25519_test.cc
|
||||
ecdh_extra/ecdh_test.cc
|
||||
dh/dh_test.cc
|
||||
digest_extra/digest_test.cc
|
||||
dsa/dsa_test.cc
|
||||
err/err_test.cc
|
||||
evp/evp_extra_test.cc
|
||||
evp/evp_test.cc
|
||||
evp/pbkdf_test.cc
|
||||
evp/scrypt_test.cc
|
||||
fipsmodule/aes/aes_test.cc
|
||||
fipsmodule/bn/bn_test.cc
|
||||
fipsmodule/ec/ec_test.cc
|
||||
fipsmodule/ec/p256-x86_64_test.cc
|
||||
fipsmodule/ecdsa/ecdsa_test.cc
|
||||
fipsmodule/md5/md5_test.cc
|
||||
fipsmodule/modes/gcm_test.cc
|
||||
fipsmodule/rand/ctrdrbg_test.cc
|
||||
fipsmodule/sha/sha_test.cc
|
||||
hkdf/hkdf_test.cc
|
||||
hmac_extra/hmac_test.cc
|
||||
hrss/hrss_test.cc
|
||||
impl_dispatch_test.cc
|
||||
lhash/lhash_test.cc
|
||||
obj/obj_test.cc
|
||||
pem/pem_test.cc
|
||||
pkcs7/pkcs7_test.cc
|
||||
pkcs8/pkcs8_test.cc
|
||||
pkcs8/pkcs12_test.cc
|
||||
poly1305/poly1305_test.cc
|
||||
pool/pool_test.cc
|
||||
rand_extra/rand_test.cc
|
||||
refcount_test.cc
|
||||
rsa_extra/rsa_test.cc
|
||||
self_test.cc
|
||||
stack/stack_test.cc
|
||||
siphash/siphash_test.cc
|
||||
test/file_test_gtest.cc
|
||||
thread_test.cc
|
||||
x509/x509_test.cc
|
||||
x509/x509_time_test.cc
|
||||
x509v3/tab_test.cc
|
||||
x509v3/v3name_test.cc
|
||||
../third_party/sike/sike_test.cc
|
||||
|
||||
$<TARGET_OBJECTS:crypto_test_data>
|
||||
$<TARGET_OBJECTS:boringssl_gtest_main>
|
||||
)
|
||||
|
||||
add_dependencies(crypto_test global_target)
|
||||
|
||||
target_link_libraries(crypto_test test_support_lib boringssl_gtest crypto)
|
||||
if(WIN32)
|
||||
target_link_libraries(crypto_test ws2_32)
|
||||
endif()
|
||||
add_dependencies(all_tests crypto_test)
|
||||
|
|
523
TMessagesProj/jni/boringssl/crypto/abi_self_test.cc
Normal file
523
TMessagesProj/jni/boringssl/crypto/abi_self_test.cc
Normal file
|
@ -0,0 +1,523 @@
|
|||
/* Copyright (c) 2018, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <gtest/gtest-spi.h>
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
#include "test/abi_test.h"
|
||||
|
||||
|
||||
static bool test_function_ok;
|
||||
static int TestFunction(int a1, int a2, int a3, int a4, int a5, int a6, int a7,
|
||||
int a8) {
|
||||
test_function_ok = a1 == 1 || a2 == 2 || a3 == 3 || a4 == 4 || a5 == 5 ||
|
||||
a6 == 6 || a7 == 7 || a8 == 8;
|
||||
return 42;
|
||||
}
|
||||
|
||||
TEST(ABITest, SanityCheck) {
|
||||
EXPECT_NE(0, CHECK_ABI_NO_UNWIND(strcmp, "hello", "world"));
|
||||
|
||||
test_function_ok = false;
|
||||
EXPECT_EQ(42, CHECK_ABI_SEH(TestFunction, 1, 2, 3, 4, 5, 6, 7, 8));
|
||||
EXPECT_TRUE(test_function_ok);
|
||||
|
||||
#if defined(SUPPORTS_ABI_TEST)
|
||||
abi_test::internal::CallerState state;
|
||||
RAND_bytes(reinterpret_cast<uint8_t *>(&state), sizeof(state));
|
||||
crypto_word_t argv[] = {
|
||||
1, 2, 3, 4, 5, 6, 7, 8,
|
||||
};
|
||||
CHECK_ABI_SEH(abi_test_trampoline,
|
||||
reinterpret_cast<crypto_word_t>(TestFunction), &state, argv, 8,
|
||||
0 /* no breakpoint */);
|
||||
|
||||
#if defined(OPENSSL_X86_64)
|
||||
if (abi_test::UnwindTestsEnabled()) {
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_SEH(abi_test_bad_unwind_wrong_register),
|
||||
"was not recovered");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_SEH(abi_test_bad_unwind_temporary),
|
||||
"was not recovered");
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_bad_unwind_wrong_register);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_bad_unwind_temporary);
|
||||
|
||||
#if defined(OPENSSL_WINDOWS)
|
||||
// The invalid epilog makes Windows believe the epilog starts later than it
|
||||
// actually does. As a result, immediately after the popq, it does not
|
||||
// realize the stack has been unwound and repeats the work.
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_SEH(abi_test_bad_unwind_epilog),
|
||||
"unwound past starting frame");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_bad_unwind_epilog);
|
||||
#endif // OPENSSL_WINDOWS
|
||||
}
|
||||
#endif // OPENSSL_X86_64
|
||||
#endif // SUPPORTS_ABI_TEST
|
||||
}
|
||||
|
||||
#if defined(OPENSSL_X86_64) && defined(SUPPORTS_ABI_TEST)
|
||||
extern "C" {
|
||||
void abi_test_clobber_rax(void);
|
||||
void abi_test_clobber_rbx(void);
|
||||
void abi_test_clobber_rcx(void);
|
||||
void abi_test_clobber_rdx(void);
|
||||
void abi_test_clobber_rsi(void);
|
||||
void abi_test_clobber_rdi(void);
|
||||
void abi_test_clobber_rbp(void);
|
||||
void abi_test_clobber_r8(void);
|
||||
void abi_test_clobber_r9(void);
|
||||
void abi_test_clobber_r10(void);
|
||||
void abi_test_clobber_r11(void);
|
||||
void abi_test_clobber_r12(void);
|
||||
void abi_test_clobber_r13(void);
|
||||
void abi_test_clobber_r14(void);
|
||||
void abi_test_clobber_r15(void);
|
||||
void abi_test_clobber_xmm0(void);
|
||||
void abi_test_clobber_xmm1(void);
|
||||
void abi_test_clobber_xmm2(void);
|
||||
void abi_test_clobber_xmm3(void);
|
||||
void abi_test_clobber_xmm4(void);
|
||||
void abi_test_clobber_xmm5(void);
|
||||
void abi_test_clobber_xmm6(void);
|
||||
void abi_test_clobber_xmm7(void);
|
||||
void abi_test_clobber_xmm8(void);
|
||||
void abi_test_clobber_xmm9(void);
|
||||
void abi_test_clobber_xmm10(void);
|
||||
void abi_test_clobber_xmm11(void);
|
||||
void abi_test_clobber_xmm12(void);
|
||||
void abi_test_clobber_xmm13(void);
|
||||
void abi_test_clobber_xmm14(void);
|
||||
void abi_test_clobber_xmm15(void);
|
||||
} // extern "C"
|
||||
|
||||
TEST(ABITest, X86_64) {
|
||||
// abi_test_trampoline hides unsaved registers from the caller, so we can
|
||||
// safely call the abi_test_clobber_* functions below.
|
||||
abi_test::internal::CallerState state;
|
||||
RAND_bytes(reinterpret_cast<uint8_t *>(&state), sizeof(state));
|
||||
CHECK_ABI_NO_UNWIND(abi_test_trampoline,
|
||||
reinterpret_cast<crypto_word_t>(abi_test_clobber_rbx),
|
||||
&state, nullptr, 0, 0 /* no breakpoint */);
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_rax);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_rbx),
|
||||
"rbx was not restored after return");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_rcx);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_rdx);
|
||||
#if defined(OPENSSL_WINDOWS)
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_rdi),
|
||||
"rdi was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_rsi),
|
||||
"rsi was not restored after return");
|
||||
#else
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_rdi);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_rsi);
|
||||
#endif
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_rbp),
|
||||
"rbp was not restored after return");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r8);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r9);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r10);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r11);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r12),
|
||||
"r12 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r13),
|
||||
"r13 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r14),
|
||||
"r14 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r15),
|
||||
"r15 was not restored after return");
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm3);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm4);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm5);
|
||||
#if defined(OPENSSL_WINDOWS)
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm6),
|
||||
"xmm6 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm7),
|
||||
"xmm7 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm8),
|
||||
"xmm8 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm9),
|
||||
"xmm9 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm10),
|
||||
"xmm10 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm11),
|
||||
"xmm11 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm12),
|
||||
"xmm12 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm13),
|
||||
"xmm13 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm14),
|
||||
"xmm14 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm15),
|
||||
"xmm15 was not restored after return");
|
||||
#else
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm6);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm7);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm8);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm9);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm10);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm11);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm12);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm13);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm14);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm15);
|
||||
#endif
|
||||
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_set_direction_flag),
|
||||
"Direction flag set after return");
|
||||
EXPECT_EQ(0, abi_test_get_and_clear_direction_flag())
|
||||
<< "CHECK_ABI did not insulate the caller from direction flag errors";
|
||||
}
|
||||
#endif // OPENSSL_X86_64 && SUPPORTS_ABI_TEST
|
||||
|
||||
#if defined(OPENSSL_X86) && defined(SUPPORTS_ABI_TEST)
|
||||
extern "C" {
|
||||
void abi_test_clobber_eax(void);
|
||||
void abi_test_clobber_ebx(void);
|
||||
void abi_test_clobber_ecx(void);
|
||||
void abi_test_clobber_edx(void);
|
||||
void abi_test_clobber_esi(void);
|
||||
void abi_test_clobber_edi(void);
|
||||
void abi_test_clobber_ebp(void);
|
||||
void abi_test_clobber_xmm0(void);
|
||||
void abi_test_clobber_xmm1(void);
|
||||
void abi_test_clobber_xmm2(void);
|
||||
void abi_test_clobber_xmm3(void);
|
||||
void abi_test_clobber_xmm4(void);
|
||||
void abi_test_clobber_xmm5(void);
|
||||
void abi_test_clobber_xmm6(void);
|
||||
void abi_test_clobber_xmm7(void);
|
||||
} // extern "C"
|
||||
|
||||
TEST(ABITest, X86) {
|
||||
// abi_test_trampoline hides unsaved registers from the caller, so we can
|
||||
// safely call the abi_test_clobber_* functions below.
|
||||
abi_test::internal::CallerState state;
|
||||
RAND_bytes(reinterpret_cast<uint8_t *>(&state), sizeof(state));
|
||||
CHECK_ABI_NO_UNWIND(abi_test_trampoline,
|
||||
reinterpret_cast<crypto_word_t>(abi_test_clobber_ebx),
|
||||
&state, nullptr, 0, 0 /* no breakpoint */);
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_eax);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_ebx),
|
||||
"ebx was not restored after return");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_ecx);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_edx);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_edi),
|
||||
"edi was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_esi),
|
||||
"esi was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_ebp),
|
||||
"ebp was not restored after return");
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm3);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm4);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm5);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm6);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_xmm7);
|
||||
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_set_direction_flag),
|
||||
"Direction flag set after return");
|
||||
EXPECT_EQ(0, abi_test_get_and_clear_direction_flag())
|
||||
<< "CHECK_ABI did not insulate the caller from direction flag errors";
|
||||
}
|
||||
#endif // OPENSSL_X86 && SUPPORTS_ABI_TEST
|
||||
|
||||
#if defined(OPENSSL_ARM) && defined(SUPPORTS_ABI_TEST)
|
||||
extern "C" {
|
||||
void abi_test_clobber_r0(void);
|
||||
void abi_test_clobber_r1(void);
|
||||
void abi_test_clobber_r2(void);
|
||||
void abi_test_clobber_r3(void);
|
||||
void abi_test_clobber_r4(void);
|
||||
void abi_test_clobber_r5(void);
|
||||
void abi_test_clobber_r6(void);
|
||||
void abi_test_clobber_r7(void);
|
||||
void abi_test_clobber_r8(void);
|
||||
void abi_test_clobber_r9(void);
|
||||
void abi_test_clobber_r10(void);
|
||||
void abi_test_clobber_r11(void);
|
||||
void abi_test_clobber_r12(void);
|
||||
// r13, r14, and r15, are sp, lr, and pc, respectively.
|
||||
|
||||
void abi_test_clobber_d0(void);
|
||||
void abi_test_clobber_d1(void);
|
||||
void abi_test_clobber_d2(void);
|
||||
void abi_test_clobber_d3(void);
|
||||
void abi_test_clobber_d4(void);
|
||||
void abi_test_clobber_d5(void);
|
||||
void abi_test_clobber_d6(void);
|
||||
void abi_test_clobber_d7(void);
|
||||
void abi_test_clobber_d8(void);
|
||||
void abi_test_clobber_d9(void);
|
||||
void abi_test_clobber_d10(void);
|
||||
void abi_test_clobber_d11(void);
|
||||
void abi_test_clobber_d12(void);
|
||||
void abi_test_clobber_d13(void);
|
||||
void abi_test_clobber_d14(void);
|
||||
void abi_test_clobber_d15(void);
|
||||
} // extern "C"
|
||||
|
||||
TEST(ABITest, ARM) {
|
||||
// abi_test_trampoline hides unsaved registers from the caller, so we can
|
||||
// safely call the abi_test_clobber_* functions below.
|
||||
abi_test::internal::CallerState state;
|
||||
RAND_bytes(reinterpret_cast<uint8_t *>(&state), sizeof(state));
|
||||
CHECK_ABI_NO_UNWIND(abi_test_trampoline,
|
||||
reinterpret_cast<crypto_word_t>(abi_test_clobber_r4),
|
||||
&state, nullptr, 0, 0 /* no breakpoint */);
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r3);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r4),
|
||||
"r4 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r5),
|
||||
"r5 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r6),
|
||||
"r6 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r7),
|
||||
"r7 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r8),
|
||||
"r8 was not restored after return");
|
||||
#if defined(OPENSSL_APPLE)
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r9);
|
||||
#else
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r9),
|
||||
"r9 was not restored after return");
|
||||
#endif
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r10),
|
||||
"r10 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_r11),
|
||||
"r11 was not restored after return");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_r12);
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d3);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d4);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d5);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d6);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d7);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d8),
|
||||
"d8 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d9),
|
||||
"d9 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d10),
|
||||
"d10 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d11),
|
||||
"d11 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d12),
|
||||
"d12 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d13),
|
||||
"d13 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d14),
|
||||
"d14 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d15),
|
||||
"d15 was not restored after return");
|
||||
}
|
||||
#endif // OPENSSL_ARM && SUPPORTS_ABI_TEST
|
||||
|
||||
|
||||
#if defined(OPENSSL_AARCH64) && defined(SUPPORTS_ABI_TEST)
|
||||
extern "C" {
|
||||
void abi_test_clobber_x0(void);
|
||||
void abi_test_clobber_x1(void);
|
||||
void abi_test_clobber_x2(void);
|
||||
void abi_test_clobber_x3(void);
|
||||
void abi_test_clobber_x4(void);
|
||||
void abi_test_clobber_x5(void);
|
||||
void abi_test_clobber_x6(void);
|
||||
void abi_test_clobber_x7(void);
|
||||
void abi_test_clobber_x8(void);
|
||||
void abi_test_clobber_x9(void);
|
||||
void abi_test_clobber_x10(void);
|
||||
void abi_test_clobber_x11(void);
|
||||
void abi_test_clobber_x12(void);
|
||||
void abi_test_clobber_x13(void);
|
||||
void abi_test_clobber_x14(void);
|
||||
void abi_test_clobber_x15(void);
|
||||
void abi_test_clobber_x16(void);
|
||||
void abi_test_clobber_x17(void);
|
||||
// x18 is the platform register and off limits.
|
||||
void abi_test_clobber_x19(void);
|
||||
void abi_test_clobber_x20(void);
|
||||
void abi_test_clobber_x21(void);
|
||||
void abi_test_clobber_x22(void);
|
||||
void abi_test_clobber_x23(void);
|
||||
void abi_test_clobber_x24(void);
|
||||
void abi_test_clobber_x25(void);
|
||||
void abi_test_clobber_x26(void);
|
||||
void abi_test_clobber_x27(void);
|
||||
void abi_test_clobber_x28(void);
|
||||
void abi_test_clobber_x29(void);
|
||||
|
||||
void abi_test_clobber_d0(void);
|
||||
void abi_test_clobber_d1(void);
|
||||
void abi_test_clobber_d2(void);
|
||||
void abi_test_clobber_d3(void);
|
||||
void abi_test_clobber_d4(void);
|
||||
void abi_test_clobber_d5(void);
|
||||
void abi_test_clobber_d6(void);
|
||||
void abi_test_clobber_d7(void);
|
||||
void abi_test_clobber_d8(void);
|
||||
void abi_test_clobber_d9(void);
|
||||
void abi_test_clobber_d10(void);
|
||||
void abi_test_clobber_d11(void);
|
||||
void abi_test_clobber_d12(void);
|
||||
void abi_test_clobber_d13(void);
|
||||
void abi_test_clobber_d14(void);
|
||||
void abi_test_clobber_d15(void);
|
||||
void abi_test_clobber_d16(void);
|
||||
void abi_test_clobber_d17(void);
|
||||
void abi_test_clobber_d18(void);
|
||||
void abi_test_clobber_d19(void);
|
||||
void abi_test_clobber_d20(void);
|
||||
void abi_test_clobber_d21(void);
|
||||
void abi_test_clobber_d22(void);
|
||||
void abi_test_clobber_d23(void);
|
||||
void abi_test_clobber_d24(void);
|
||||
void abi_test_clobber_d25(void);
|
||||
void abi_test_clobber_d26(void);
|
||||
void abi_test_clobber_d27(void);
|
||||
void abi_test_clobber_d28(void);
|
||||
void abi_test_clobber_d29(void);
|
||||
void abi_test_clobber_d30(void);
|
||||
void abi_test_clobber_d31(void);
|
||||
|
||||
void abi_test_clobber_v8_upper(void);
|
||||
void abi_test_clobber_v9_upper(void);
|
||||
void abi_test_clobber_v10_upper(void);
|
||||
void abi_test_clobber_v11_upper(void);
|
||||
void abi_test_clobber_v12_upper(void);
|
||||
void abi_test_clobber_v13_upper(void);
|
||||
void abi_test_clobber_v14_upper(void);
|
||||
void abi_test_clobber_v15_upper(void);
|
||||
} // extern "C"
|
||||
|
||||
TEST(ABITest, AArch64) {
|
||||
// abi_test_trampoline hides unsaved registers from the caller, so we can
|
||||
// safely call the abi_test_clobber_* functions below.
|
||||
abi_test::internal::CallerState state;
|
||||
RAND_bytes(reinterpret_cast<uint8_t *>(&state), sizeof(state));
|
||||
CHECK_ABI_NO_UNWIND(abi_test_trampoline,
|
||||
reinterpret_cast<crypto_word_t>(abi_test_clobber_x19),
|
||||
&state, nullptr, 0, 0 /* no breakpoint */);
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x3);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x4);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x5);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x6);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x7);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x8);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x9);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x10);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x11);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x12);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x13);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x14);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x15);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x16);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_x17);
|
||||
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x19),
|
||||
"x19 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x20),
|
||||
"x20 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x21),
|
||||
"x21 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x22),
|
||||
"x22 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x23),
|
||||
"x23 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x24),
|
||||
"x24 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x25),
|
||||
"x25 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x26),
|
||||
"x26 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x27),
|
||||
"x27 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x28),
|
||||
"x28 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_x29),
|
||||
"x29 was not restored after return");
|
||||
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d0);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d1);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d2);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d3);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d4);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d5);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d6);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d7);
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d8),
|
||||
"d8 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d9),
|
||||
"d9 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d10),
|
||||
"d10 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d11),
|
||||
"d11 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d12),
|
||||
"d12 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d13),
|
||||
"d13 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d14),
|
||||
"d14 was not restored after return");
|
||||
EXPECT_NONFATAL_FAILURE(CHECK_ABI_NO_UNWIND(abi_test_clobber_d15),
|
||||
"d15 was not restored after return");
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d16);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d18);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d19);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d20);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d21);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d22);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d23);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d24);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d25);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d26);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d27);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d28);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d29);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d30);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_d31);
|
||||
|
||||
// The lower halves of v8-v15 (accessed as d8-d15) must be preserved, but not
|
||||
// the upper halves.
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v8_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v9_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v10_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v11_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v12_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v13_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v14_upper);
|
||||
CHECK_ABI_NO_UNWIND(abi_test_clobber_v15_upper);
|
||||
}
|
||||
#endif // OPENSSL_AARCH64 && SUPPORTS_ABI_TEST
|
|
@ -1,38 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
asn1
|
||||
|
||||
OBJECT
|
||||
|
||||
a_bitstr.c
|
||||
a_bool.c
|
||||
a_d2i_fp.c
|
||||
a_dup.c
|
||||
a_enum.c
|
||||
a_gentm.c
|
||||
a_i2d_fp.c
|
||||
a_int.c
|
||||
a_mbstr.c
|
||||
a_object.c
|
||||
a_octet.c
|
||||
a_print.c
|
||||
a_strnid.c
|
||||
a_time.c
|
||||
a_type.c
|
||||
a_utctm.c
|
||||
a_utf8.c
|
||||
asn1_lib.c
|
||||
asn1_par.c
|
||||
asn_pack.c
|
||||
f_enum.c
|
||||
f_int.c
|
||||
f_string.c
|
||||
tasn_dec.c
|
||||
tasn_enc.c
|
||||
tasn_fre.c
|
||||
tasn_new.c
|
||||
tasn_typ.c
|
||||
tasn_utl.c
|
||||
time_support.c
|
||||
)
|
|
@ -62,17 +62,30 @@
|
|||
int i2d_ASN1_BOOLEAN(int a, unsigned char **pp)
|
||||
{
|
||||
int r;
|
||||
unsigned char *p;
|
||||
unsigned char *p, *allocated = NULL;
|
||||
|
||||
r = ASN1_object_size(0, 1, V_ASN1_BOOLEAN);
|
||||
if (pp == NULL)
|
||||
return (r);
|
||||
p = *pp;
|
||||
|
||||
if (*pp == NULL) {
|
||||
if ((p = allocated = OPENSSL_malloc(r)) == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
p = *pp;
|
||||
}
|
||||
|
||||
ASN1_put_object(&p, 0, 1, V_ASN1_BOOLEAN, V_ASN1_UNIVERSAL);
|
||||
*(p++) = (unsigned char)a;
|
||||
*pp = p;
|
||||
return (r);
|
||||
*p = (unsigned char)a;
|
||||
|
||||
/*
|
||||
* If a new buffer was allocated, just return it back.
|
||||
* If not, return the incremented buffer pointer.
|
||||
*/
|
||||
*pp = allocated != NULL ? allocated : p + 1;
|
||||
return r;
|
||||
}
|
||||
|
||||
int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length)
|
||||
|
|
|
@ -58,240 +58,36 @@
|
|||
|
||||
#include <limits.h>
|
||||
|
||||
#include <openssl/buf.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb);
|
||||
|
||||
#ifndef NO_OLD_ASN1
|
||||
# ifndef OPENSSL_NO_FP_API
|
||||
|
||||
void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x)
|
||||
{
|
||||
BIO *b;
|
||||
void *ret;
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
|
||||
return (NULL);
|
||||
}
|
||||
BIO_set_fp(b, in, BIO_NOCLOSE);
|
||||
ret = ASN1_d2i_bio(xnew, d2i, b, x);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
}
|
||||
# endif
|
||||
|
||||
void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x)
|
||||
{
|
||||
BUF_MEM *b = NULL;
|
||||
const unsigned char *p;
|
||||
void *ret = NULL;
|
||||
int len;
|
||||
|
||||
len = asn1_d2i_read_bio(in, &b);
|
||||
if (len < 0)
|
||||
goto err;
|
||||
|
||||
p = (unsigned char *)b->data;
|
||||
ret = d2i(x, &p, len);
|
||||
err:
|
||||
if (b != NULL)
|
||||
BUF_MEM_free(b);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x)
|
||||
{
|
||||
BUF_MEM *b = NULL;
|
||||
const unsigned char *p;
|
||||
void *ret = NULL;
|
||||
int len;
|
||||
|
||||
len = asn1_d2i_read_bio(in, &b);
|
||||
if (len < 0)
|
||||
goto err;
|
||||
|
||||
p = (const unsigned char *)b->data;
|
||||
ret = ASN1_item_d2i(x, &p, len, it);
|
||||
err:
|
||||
if (b != NULL)
|
||||
BUF_MEM_free(b);
|
||||
return (ret);
|
||||
uint8_t *data;
|
||||
size_t len;
|
||||
// Historically, this function did not impose a limit in OpenSSL and is used
|
||||
// to read CRLs, so we leave this without an external bound.
|
||||
if (!BIO_read_asn1(in, &data, &len, INT_MAX)) {
|
||||
return NULL;
|
||||
}
|
||||
const uint8_t *ptr = data;
|
||||
void *ret = ASN1_item_d2i(x, &ptr, len, it);
|
||||
OPENSSL_free(data);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifndef OPENSSL_NO_FP_API
|
||||
void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x)
|
||||
{
|
||||
BIO *b;
|
||||
char *ret;
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
BIO *b = BIO_new_fp(in, BIO_NOCLOSE);
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
|
||||
return (NULL);
|
||||
return NULL;
|
||||
}
|
||||
BIO_set_fp(b, in, BIO_NOCLOSE);
|
||||
ret = ASN1_item_d2i_bio(it, b, x);
|
||||
void *ret = ASN1_item_d2i_bio(it, b, x);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
typedef struct asn1_const_ctx_st
|
||||
{
|
||||
const unsigned char *p;/* work char pointer */
|
||||
int eos; /* end of sequence read for indefinite encoding */
|
||||
int error; /* error code to use when returning an error */
|
||||
int inf; /* constructed if 0x20, indefinite is 0x21 */
|
||||
int tag; /* tag from last 'get object' */
|
||||
int xclass; /* class from last 'get object' */
|
||||
long slen; /* length of last 'get object' */
|
||||
const unsigned char *max; /* largest value of p allowed */
|
||||
const unsigned char *q;/* temporary variable */
|
||||
const unsigned char **pp;/* variable */
|
||||
int line; /* used in error processing */
|
||||
} ASN1_const_CTX;
|
||||
|
||||
#define HEADER_SIZE 8
|
||||
#define ASN1_CHUNK_INITIAL_SIZE (16 * 1024)
|
||||
static int asn1_d2i_read_bio(BIO *in, BUF_MEM **pb)
|
||||
{
|
||||
BUF_MEM *b;
|
||||
unsigned char *p;
|
||||
int i;
|
||||
ASN1_const_CTX c;
|
||||
size_t want = HEADER_SIZE;
|
||||
int eos = 0;
|
||||
size_t off = 0;
|
||||
size_t len = 0;
|
||||
|
||||
b = BUF_MEM_new();
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ERR_clear_error();
|
||||
for (;;) {
|
||||
if (want >= (len - off)) {
|
||||
want -= (len - off);
|
||||
|
||||
if (len + want < len || !BUF_MEM_grow_clean(b, len + want)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
i = BIO_read(in, &(b->data[len]), want);
|
||||
if ((i < 0) && ((len - off) == 0)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
goto err;
|
||||
}
|
||||
if (i > 0) {
|
||||
if (len + i < len) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
goto err;
|
||||
}
|
||||
len += i;
|
||||
}
|
||||
}
|
||||
/* else data already loaded */
|
||||
|
||||
p = (unsigned char *)&(b->data[off]);
|
||||
c.p = p;
|
||||
c.inf = ASN1_get_object(&(c.p), &(c.slen), &(c.tag), &(c.xclass),
|
||||
len - off);
|
||||
if (c.inf & 0x80) {
|
||||
uint32_t e;
|
||||
|
||||
e = ERR_GET_REASON(ERR_peek_error());
|
||||
if (e != ASN1_R_TOO_LONG)
|
||||
goto err;
|
||||
else
|
||||
ERR_clear_error(); /* clear error */
|
||||
}
|
||||
i = c.p - p; /* header length */
|
||||
off += i; /* end of data */
|
||||
|
||||
if (c.inf & 1) {
|
||||
/* no data body so go round again */
|
||||
eos++;
|
||||
if (eos < 0) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
|
||||
goto err;
|
||||
}
|
||||
want = HEADER_SIZE;
|
||||
} else if (eos && (c.slen == 0) && (c.tag == V_ASN1_EOC)) {
|
||||
/* eos value, so go back and read another header */
|
||||
eos--;
|
||||
if (eos <= 0)
|
||||
break;
|
||||
else
|
||||
want = HEADER_SIZE;
|
||||
} else {
|
||||
/* suck in c.slen bytes of data */
|
||||
want = c.slen;
|
||||
if (want > (len - off)) {
|
||||
size_t chunk_max = ASN1_CHUNK_INITIAL_SIZE;
|
||||
want -= (len - off);
|
||||
if (want > INT_MAX /* BIO_read takes an int length */ ||
|
||||
len + want < len) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
goto err;
|
||||
}
|
||||
while (want > 0) {
|
||||
/*
|
||||
* Read content in chunks of increasing size
|
||||
* so we can return an error for EOF without
|
||||
* having to allocate the entire content length
|
||||
* in one go.
|
||||
*/
|
||||
size_t chunk = want > chunk_max ? chunk_max : want;
|
||||
|
||||
if (!BUF_MEM_grow_clean(b, len + chunk)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
want -= chunk;
|
||||
while (chunk > 0) {
|
||||
i = BIO_read(in, &(b->data[len]), chunk);
|
||||
if (i <= 0) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
goto err;
|
||||
}
|
||||
/*
|
||||
* This can't overflow because |len+want| didn't
|
||||
* overflow.
|
||||
*/
|
||||
len += i;
|
||||
chunk -= i;
|
||||
}
|
||||
if (chunk_max < INT_MAX/2)
|
||||
chunk_max *= 2;
|
||||
}
|
||||
}
|
||||
if (off + c.slen < off) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
goto err;
|
||||
}
|
||||
off += c.slen;
|
||||
if (eos <= 0) {
|
||||
break;
|
||||
} else
|
||||
want = HEADER_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
if (off > INT_MAX) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
goto err;
|
||||
}
|
||||
|
||||
*pb = b;
|
||||
return off;
|
||||
err:
|
||||
if (b != NULL)
|
||||
BUF_MEM_free(b);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -59,30 +59,6 @@
|
|||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)
|
||||
{
|
||||
unsigned char *b, *p;
|
||||
const unsigned char *p2;
|
||||
int i;
|
||||
char *ret;
|
||||
|
||||
if (x == NULL)
|
||||
return (NULL);
|
||||
|
||||
i = i2d(x, NULL);
|
||||
b = OPENSSL_malloc(i + 10);
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return (NULL);
|
||||
}
|
||||
p = b;
|
||||
i = i2d(x, &p);
|
||||
p2 = b;
|
||||
ret = d2i(NULL, &p2, i);
|
||||
OPENSSL_free(b);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
/*
|
||||
* ASN1_ITEM version of dup: this follows the model above except we don't
|
||||
* need to allocate the buffer. At some point this could be rewritten to
|
||||
|
|
|
@ -120,8 +120,8 @@ long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a)
|
|||
else if (i != V_ASN1_ENUMERATED)
|
||||
return -1;
|
||||
|
||||
OPENSSL_COMPILE_ASSERT(sizeof(uint64_t) >= sizeof(long),
|
||||
long_larger_than_uint64_t);
|
||||
OPENSSL_STATIC_ASSERT(sizeof(uint64_t) >= sizeof(long),
|
||||
"long larger than uint64_t");
|
||||
|
||||
if (a->length > (int)sizeof(uint64_t)) {
|
||||
/* hmm... a bit ugly */
|
||||
|
|
|
@ -56,95 +56,33 @@
|
|||
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)
|
||||
{
|
||||
BIO *b;
|
||||
int ret;
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
|
||||
return (0);
|
||||
}
|
||||
BIO_set_fp(b, out, BIO_NOCLOSE);
|
||||
ret = ASN1_i2d_bio(i2d, b, x);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, void *x)
|
||||
{
|
||||
char *b;
|
||||
unsigned char *p;
|
||||
int i, j = 0, n, ret = 1;
|
||||
|
||||
n = i2d(x, NULL);
|
||||
if (n <= 0)
|
||||
return 0;
|
||||
|
||||
b = (char *)OPENSSL_malloc(n);
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return (0);
|
||||
}
|
||||
|
||||
p = (unsigned char *)b;
|
||||
i2d(x, &p);
|
||||
|
||||
for (;;) {
|
||||
i = BIO_write(out, &(b[j]), n);
|
||||
if (i == n)
|
||||
break;
|
||||
if (i <= 0) {
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
j += i;
|
||||
n -= i;
|
||||
}
|
||||
OPENSSL_free(b);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)
|
||||
{
|
||||
BIO *b;
|
||||
int ret;
|
||||
|
||||
if ((b = BIO_new(BIO_s_file())) == NULL) {
|
||||
BIO *b = BIO_new_fp(out, BIO_NOCLOSE);
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_BUF_LIB);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
BIO_set_fp(b, out, BIO_NOCLOSE);
|
||||
ret = ASN1_item_i2d_bio(it, b, x);
|
||||
int ret = ASN1_item_i2d_bio(it, b, x);
|
||||
BIO_free(b);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)
|
||||
{
|
||||
unsigned char *b = NULL;
|
||||
int i, j = 0, n, ret = 1;
|
||||
|
||||
n = ASN1_item_i2d(x, &b, it);
|
||||
int n = ASN1_item_i2d(x, &b, it);
|
||||
if (b == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
i = BIO_write(out, &(b[j]), n);
|
||||
if (i == n)
|
||||
break;
|
||||
if (i <= 0) {
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
j += i;
|
||||
n -= i;
|
||||
}
|
||||
int ret = BIO_write_all(out, b, n);
|
||||
OPENSSL_free(b);
|
||||
return (ret);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -195,6 +195,16 @@ ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp,
|
|||
unsigned char *to, *s;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* This function can handle lengths up to INT_MAX - 1, but the rest of the
|
||||
* legacy ASN.1 code mixes integer types, so avoid exposing it to
|
||||
* ASN1_INTEGERS with larger lengths.
|
||||
*/
|
||||
if (len < 0 || len > INT_MAX / 2) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL)) {
|
||||
if ((ret = M_ASN1_INTEGER_new()) == NULL)
|
||||
return (NULL);
|
||||
|
@ -276,75 +286,6 @@ ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp,
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is a version of d2i_ASN1_INTEGER that ignores the sign bit of ASN1
|
||||
* integers: some broken software can encode a positive INTEGER with its MSB
|
||||
* set as negative (it doesn't add a padding zero).
|
||||
*/
|
||||
|
||||
ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp,
|
||||
long length)
|
||||
{
|
||||
ASN1_INTEGER *ret = NULL;
|
||||
const unsigned char *p;
|
||||
unsigned char *s;
|
||||
long len;
|
||||
int inf, tag, xclass;
|
||||
int i;
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL)) {
|
||||
if ((ret = M_ASN1_INTEGER_new()) == NULL)
|
||||
return (NULL);
|
||||
ret->type = V_ASN1_INTEGER;
|
||||
} else
|
||||
ret = (*a);
|
||||
|
||||
p = *pp;
|
||||
inf = ASN1_get_object(&p, &len, &tag, &xclass, length);
|
||||
if (inf & 0x80) {
|
||||
i = ASN1_R_BAD_OBJECT_HEADER;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (tag != V_ASN1_INTEGER) {
|
||||
i = ASN1_R_EXPECTING_AN_INTEGER;
|
||||
goto err;
|
||||
}
|
||||
|
||||
/*
|
||||
* We must OPENSSL_malloc stuff, even for 0 bytes otherwise it signifies
|
||||
* a missing NULL parameter.
|
||||
*/
|
||||
s = (unsigned char *)OPENSSL_malloc((int)len + 1);
|
||||
if (s == NULL) {
|
||||
i = ERR_R_MALLOC_FAILURE;
|
||||
goto err;
|
||||
}
|
||||
ret->type = V_ASN1_INTEGER;
|
||||
if (len) {
|
||||
if ((*p == 0) && (len != 1)) {
|
||||
p++;
|
||||
len--;
|
||||
}
|
||||
OPENSSL_memcpy(s, p, (int)len);
|
||||
p += len;
|
||||
}
|
||||
|
||||
if (ret->data != NULL)
|
||||
OPENSSL_free(ret->data);
|
||||
ret->data = s;
|
||||
ret->length = (int)len;
|
||||
if (a != NULL)
|
||||
(*a) = ret;
|
||||
*pp = p;
|
||||
return (ret);
|
||||
err:
|
||||
OPENSSL_PUT_ERROR(ASN1, i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
M_ASN1_INTEGER_free(ret);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
int ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
|
||||
{
|
||||
if (v >= 0) {
|
||||
|
@ -400,8 +341,8 @@ long ASN1_INTEGER_get(const ASN1_INTEGER *a)
|
|||
else if (i != V_ASN1_INTEGER)
|
||||
return -1;
|
||||
|
||||
OPENSSL_COMPILE_ASSERT(sizeof(uint64_t) >= sizeof(long),
|
||||
long_larger_than_uint64_t);
|
||||
OPENSSL_STATIC_ASSERT(sizeof(uint64_t) >= sizeof(long),
|
||||
"long larger than uint64_t");
|
||||
|
||||
if (a->length > (int)sizeof(uint64_t)) {
|
||||
/* hmm... a bit ugly, return all ones */
|
||||
|
|
|
@ -56,23 +56,16 @@
|
|||
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <openssl/bytestring.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
#include "asn1_locl.h"
|
||||
#include "../bytestring/internal.h"
|
||||
|
||||
static int traverse_string(const unsigned char *p, int len, int inform,
|
||||
int (*rfunc) (uint32_t value, void *in),
|
||||
void *arg);
|
||||
static int in_utf8(uint32_t value, void *arg);
|
||||
static int out_utf8(uint32_t value, void *arg);
|
||||
static int type_str(uint32_t value, void *arg);
|
||||
static int cpy_asc(uint32_t value, void *arg);
|
||||
static int cpy_bmp(uint32_t value, void *arg);
|
||||
static int cpy_univ(uint32_t value, void *arg);
|
||||
static int cpy_utf8(uint32_t value, void *arg);
|
||||
static int is_printable(uint32_t value);
|
||||
|
||||
/*
|
||||
|
@ -90,55 +83,45 @@ int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len,
|
|||
return ASN1_mbstring_ncopy(out, in, len, inform, mask, 0, 0);
|
||||
}
|
||||
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_BMPSTRING)
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_UNIVERSALSTRING)
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, INVALID_UTF8STRING)
|
||||
|
||||
int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
||||
int inform, unsigned long mask,
|
||||
long minsize, long maxsize)
|
||||
{
|
||||
int str_type;
|
||||
int ret;
|
||||
char free_out;
|
||||
int outform, outlen = 0;
|
||||
ASN1_STRING *dest;
|
||||
unsigned char *p;
|
||||
int nchar;
|
||||
size_t nchar = 0;
|
||||
char strbuf[32];
|
||||
int (*cpyfunc) (uint32_t, void *) = NULL;
|
||||
if (len == -1)
|
||||
len = strlen((const char *)in);
|
||||
if (!mask)
|
||||
mask = DIRSTRING_TYPE;
|
||||
|
||||
/* First do a string check and work out the number of characters */
|
||||
int (*decode_func)(CBS *, uint32_t*);
|
||||
int error;
|
||||
switch (inform) {
|
||||
|
||||
case MBSTRING_BMP:
|
||||
if (len & 1) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH);
|
||||
return -1;
|
||||
}
|
||||
nchar = len >> 1;
|
||||
decode_func = cbs_get_ucs2_be;
|
||||
error = ASN1_R_INVALID_BMPSTRING;
|
||||
break;
|
||||
|
||||
case MBSTRING_UNIV:
|
||||
if (len & 3) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH);
|
||||
return -1;
|
||||
}
|
||||
nchar = len >> 2;
|
||||
decode_func = cbs_get_utf32_be;
|
||||
error = ASN1_R_INVALID_UNIVERSALSTRING;
|
||||
break;
|
||||
|
||||
case MBSTRING_UTF8:
|
||||
nchar = 0;
|
||||
/* This counts the characters and does utf8 syntax checking */
|
||||
ret = traverse_string(in, len, MBSTRING_UTF8, in_utf8, &nchar);
|
||||
if (ret < 0) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_UTF8STRING);
|
||||
return -1;
|
||||
}
|
||||
decode_func = cbs_get_utf8;
|
||||
error = ASN1_R_INVALID_UTF8STRING;
|
||||
break;
|
||||
|
||||
case MBSTRING_ASC:
|
||||
nchar = len;
|
||||
decode_func = cbs_get_latin1;
|
||||
error = ERR_R_INTERNAL_ERROR; // Latin-1 inputs are never invalid.
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -146,44 +129,92 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
|||
return -1;
|
||||
}
|
||||
|
||||
if ((minsize > 0) && (nchar < minsize)) {
|
||||
/* Check |minsize| and |maxsize| and work out the minimal type, if any. */
|
||||
CBS cbs;
|
||||
CBS_init(&cbs, in, len);
|
||||
size_t utf8_len = 0;
|
||||
while (CBS_len(&cbs) != 0) {
|
||||
uint32_t c;
|
||||
if (!decode_func(&cbs, &c)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, error);
|
||||
return -1;
|
||||
}
|
||||
if (nchar == 0 &&
|
||||
(inform == MBSTRING_BMP || inform == MBSTRING_UNIV) &&
|
||||
c == 0xfeff) {
|
||||
/* Reject byte-order mark. We could drop it but that would mean
|
||||
* adding ambiguity around whether a BOM was included or not when
|
||||
* matching strings.
|
||||
*
|
||||
* For a little-endian UCS-2 string, the BOM will appear as 0xfffe
|
||||
* and will be rejected as noncharacter, below. */
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_CHARACTERS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Update which output formats are still possible. */
|
||||
if ((mask & B_ASN1_PRINTABLESTRING) && !is_printable(c)) {
|
||||
mask &= ~B_ASN1_PRINTABLESTRING;
|
||||
}
|
||||
if ((mask & B_ASN1_IA5STRING) && (c > 127)) {
|
||||
mask &= ~B_ASN1_IA5STRING;
|
||||
}
|
||||
if ((mask & B_ASN1_T61STRING) && (c > 0xff)) {
|
||||
mask &= ~B_ASN1_T61STRING;
|
||||
}
|
||||
if ((mask & B_ASN1_BMPSTRING) && (c > 0xffff)) {
|
||||
mask &= ~B_ASN1_BMPSTRING;
|
||||
}
|
||||
if (!mask) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_CHARACTERS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
nchar++;
|
||||
utf8_len += cbb_get_utf8_len(c);
|
||||
}
|
||||
|
||||
if (minsize > 0 && nchar < (size_t)minsize) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_SHORT);
|
||||
BIO_snprintf(strbuf, sizeof strbuf, "%ld", minsize);
|
||||
ERR_add_error_data(2, "minsize=", strbuf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((maxsize > 0) && (nchar > maxsize)) {
|
||||
if (maxsize > 0 && nchar > (size_t)maxsize) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_STRING_TOO_LONG);
|
||||
BIO_snprintf(strbuf, sizeof strbuf, "%ld", maxsize);
|
||||
ERR_add_error_data(2, "maxsize=", strbuf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Now work out minimal type (if any) */
|
||||
if (traverse_string(in, len, inform, type_str, &mask) < 0) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_CHARACTERS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Now work out output format and string type */
|
||||
outform = MBSTRING_ASC;
|
||||
if (mask & B_ASN1_PRINTABLESTRING)
|
||||
int (*encode_func)(CBB *, uint32_t) = cbb_add_latin1;
|
||||
size_t size_estimate = nchar;
|
||||
int outform = MBSTRING_ASC;
|
||||
if (mask & B_ASN1_PRINTABLESTRING) {
|
||||
str_type = V_ASN1_PRINTABLESTRING;
|
||||
else if (mask & B_ASN1_IA5STRING)
|
||||
} else if (mask & B_ASN1_IA5STRING) {
|
||||
str_type = V_ASN1_IA5STRING;
|
||||
else if (mask & B_ASN1_T61STRING)
|
||||
} else if (mask & B_ASN1_T61STRING) {
|
||||
str_type = V_ASN1_T61STRING;
|
||||
else if (mask & B_ASN1_BMPSTRING) {
|
||||
} else if (mask & B_ASN1_BMPSTRING) {
|
||||
str_type = V_ASN1_BMPSTRING;
|
||||
outform = MBSTRING_BMP;
|
||||
encode_func = cbb_add_ucs2_be;
|
||||
size_estimate = 2 * nchar;
|
||||
} else if (mask & B_ASN1_UNIVERSALSTRING) {
|
||||
str_type = V_ASN1_UNIVERSALSTRING;
|
||||
encode_func = cbb_add_utf32_be;
|
||||
size_estimate = 4 * nchar;
|
||||
outform = MBSTRING_UNIV;
|
||||
} else {
|
||||
str_type = V_ASN1_UTF8STRING;
|
||||
outform = MBSTRING_UTF8;
|
||||
encode_func = cbb_add_utf8;
|
||||
size_estimate = utf8_len;
|
||||
}
|
||||
|
||||
if (!out)
|
||||
return str_type;
|
||||
if (*out) {
|
||||
|
@ -204,6 +235,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
|||
}
|
||||
*out = dest;
|
||||
}
|
||||
|
||||
/* If both the same type just copy across */
|
||||
if (inform == outform) {
|
||||
if (!ASN1_STRING_set(dest, in, len)) {
|
||||
|
@ -213,179 +245,41 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
|
|||
return str_type;
|
||||
}
|
||||
|
||||
/* Work out how much space the destination will need */
|
||||
switch (outform) {
|
||||
case MBSTRING_ASC:
|
||||
outlen = nchar;
|
||||
cpyfunc = cpy_asc;
|
||||
break;
|
||||
|
||||
case MBSTRING_BMP:
|
||||
outlen = nchar << 1;
|
||||
cpyfunc = cpy_bmp;
|
||||
break;
|
||||
|
||||
case MBSTRING_UNIV:
|
||||
outlen = nchar << 2;
|
||||
cpyfunc = cpy_univ;
|
||||
break;
|
||||
|
||||
case MBSTRING_UTF8:
|
||||
outlen = 0;
|
||||
traverse_string(in, len, inform, out_utf8, &outlen);
|
||||
cpyfunc = cpy_utf8;
|
||||
break;
|
||||
}
|
||||
if (!(p = OPENSSL_malloc(outlen + 1))) {
|
||||
if (free_out)
|
||||
ASN1_STRING_free(dest);
|
||||
CBB cbb;
|
||||
if (!CBB_init(&cbb, size_estimate + 1)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return -1;
|
||||
goto err;
|
||||
}
|
||||
dest->length = outlen;
|
||||
dest->data = p;
|
||||
p[outlen] = 0;
|
||||
traverse_string(in, len, inform, cpyfunc, &p);
|
||||
CBS_init(&cbs, in, len);
|
||||
while (CBS_len(&cbs) != 0) {
|
||||
uint32_t c;
|
||||
if (!decode_func(&cbs, &c) ||
|
||||
!encode_func(&cbb, c)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_INTERNAL_ERROR);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
uint8_t *data = NULL;
|
||||
size_t data_len;
|
||||
if (/* OpenSSL historically NUL-terminated this value with a single byte,
|
||||
* even for |MBSTRING_BMP| and |MBSTRING_UNIV|. */
|
||||
!CBB_add_u8(&cbb, 0) ||
|
||||
!CBB_finish(&cbb, &data, &data_len) ||
|
||||
data_len < 1 ||
|
||||
data_len > INT_MAX) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_INTERNAL_ERROR);
|
||||
OPENSSL_free(data);
|
||||
goto err;
|
||||
}
|
||||
dest->length = (int)(data_len - 1);
|
||||
dest->data = data;
|
||||
return str_type;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function traverses a string and passes the value of each character to
|
||||
* an optional function along with a void * argument.
|
||||
*/
|
||||
|
||||
static int traverse_string(const unsigned char *p, int len, int inform,
|
||||
int (*rfunc) (uint32_t value, void *in),
|
||||
void *arg)
|
||||
{
|
||||
uint32_t value;
|
||||
int ret;
|
||||
while (len) {
|
||||
if (inform == MBSTRING_ASC) {
|
||||
value = *p++;
|
||||
len--;
|
||||
} else if (inform == MBSTRING_BMP) {
|
||||
value = *p++ << 8;
|
||||
value |= *p++;
|
||||
len -= 2;
|
||||
} else if (inform == MBSTRING_UNIV) {
|
||||
value = ((uint32_t)*p++) << 24;
|
||||
value |= ((uint32_t)*p++) << 16;
|
||||
value |= *p++ << 8;
|
||||
value |= *p++;
|
||||
len -= 4;
|
||||
} else {
|
||||
ret = UTF8_getc(p, len, &value);
|
||||
if (ret < 0)
|
||||
return -1;
|
||||
len -= ret;
|
||||
p += ret;
|
||||
}
|
||||
if (rfunc) {
|
||||
ret = rfunc(value, arg);
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Various utility functions for traverse_string */
|
||||
|
||||
/* Just count number of characters */
|
||||
|
||||
static int in_utf8(uint32_t value, void *arg)
|
||||
{
|
||||
int *nchar;
|
||||
nchar = arg;
|
||||
(*nchar)++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Determine size of output as a UTF8 String */
|
||||
|
||||
static int out_utf8(uint32_t value, void *arg)
|
||||
{
|
||||
int *outlen;
|
||||
outlen = arg;
|
||||
*outlen += UTF8_putc(NULL, -1, value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine the "type" of a string: check each character against a supplied
|
||||
* "mask".
|
||||
*/
|
||||
|
||||
static int type_str(uint32_t value, void *arg)
|
||||
{
|
||||
unsigned long types;
|
||||
types = *((unsigned long *)arg);
|
||||
if ((types & B_ASN1_PRINTABLESTRING) && !is_printable(value))
|
||||
types &= ~B_ASN1_PRINTABLESTRING;
|
||||
if ((types & B_ASN1_IA5STRING) && (value > 127))
|
||||
types &= ~B_ASN1_IA5STRING;
|
||||
if ((types & B_ASN1_T61STRING) && (value > 0xff))
|
||||
types &= ~B_ASN1_T61STRING;
|
||||
if ((types & B_ASN1_BMPSTRING) && (value > 0xffff))
|
||||
types &= ~B_ASN1_BMPSTRING;
|
||||
if (!types)
|
||||
return -1;
|
||||
*((unsigned long *)arg) = types;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Copy one byte per character ASCII like strings */
|
||||
|
||||
static int cpy_asc(uint32_t value, void *arg)
|
||||
{
|
||||
unsigned char **p, *q;
|
||||
p = arg;
|
||||
q = *p;
|
||||
*q = (unsigned char)value;
|
||||
(*p)++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Copy two byte per character BMPStrings */
|
||||
|
||||
static int cpy_bmp(uint32_t value, void *arg)
|
||||
{
|
||||
unsigned char **p, *q;
|
||||
p = arg;
|
||||
q = *p;
|
||||
*q++ = (unsigned char)((value >> 8) & 0xff);
|
||||
*q = (unsigned char)(value & 0xff);
|
||||
*p += 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Copy four byte per character UniversalStrings */
|
||||
|
||||
static int cpy_univ(uint32_t value, void *arg)
|
||||
{
|
||||
unsigned char **p, *q;
|
||||
p = arg;
|
||||
q = *p;
|
||||
*q++ = (unsigned char)((value >> 24) & 0xff);
|
||||
*q++ = (unsigned char)((value >> 16) & 0xff);
|
||||
*q++ = (unsigned char)((value >> 8) & 0xff);
|
||||
*q = (unsigned char)(value & 0xff);
|
||||
*p += 4;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Copy to a UTF8String */
|
||||
|
||||
static int cpy_utf8(uint32_t value, void *arg)
|
||||
{
|
||||
unsigned char **p;
|
||||
int ret;
|
||||
p = arg;
|
||||
/* We already know there is enough room so pass 0xff as the length */
|
||||
ret = UTF8_putc(*p, 0xff, value);
|
||||
*p += ret;
|
||||
return 1;
|
||||
err:
|
||||
if (free_out)
|
||||
ASN1_STRING_free(dest);
|
||||
CBB_cleanup(&cbb);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return 1 if the character is permitted in a PrintableString */
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
|
||||
int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp)
|
||||
{
|
||||
unsigned char *p;
|
||||
unsigned char *p, *allocated = NULL;
|
||||
int objsize;
|
||||
|
||||
if ((a == NULL) || (a->data == NULL))
|
||||
|
@ -78,13 +78,24 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp)
|
|||
if (pp == NULL || objsize == -1)
|
||||
return objsize;
|
||||
|
||||
p = *pp;
|
||||
if (*pp == NULL) {
|
||||
if ((p = allocated = OPENSSL_malloc(objsize)) == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
p = *pp;
|
||||
}
|
||||
|
||||
ASN1_put_object(&p, 0, a->length, V_ASN1_OBJECT, V_ASN1_UNIVERSAL);
|
||||
OPENSSL_memcpy(p, a->data, a->length);
|
||||
p += a->length;
|
||||
|
||||
*pp = p;
|
||||
return (objsize);
|
||||
/*
|
||||
* If a new buffer was allocated, just return it back.
|
||||
* If not, return the incremented buffer pointer.
|
||||
*/
|
||||
*pp = allocated != NULL ? allocated : p + a->length;
|
||||
return objsize;
|
||||
}
|
||||
|
||||
int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a)
|
||||
|
|
|
@ -223,6 +223,7 @@ ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid)
|
|||
return ttmp;
|
||||
if (!stable)
|
||||
return NULL;
|
||||
sk_ASN1_STRING_TABLE_sort(stable);
|
||||
found = sk_ASN1_STRING_TABLE_find(stable, &idx, &fnd);
|
||||
if (!found)
|
||||
return NULL;
|
||||
|
|
|
@ -205,7 +205,11 @@ static int asn1_get_length(const unsigned char **pp, int *inf, long *rl,
|
|||
} else
|
||||
ret = i;
|
||||
}
|
||||
if (ret > LONG_MAX)
|
||||
/*
|
||||
* Bound the length to comfortably fit in an int. Lengths in this module
|
||||
* often switch between int and long without overflow checks.
|
||||
*/
|
||||
if (ret > INT_MAX / 2)
|
||||
return 0;
|
||||
*pp = p;
|
||||
*rl = (long)ret;
|
||||
|
|
186
TMessagesProj/jni/boringssl/crypto/asn1/asn1_test.cc
Normal file
186
TMessagesProj/jni/boringssl/crypto/asn1/asn1_test.cc
Normal file
|
@ -0,0 +1,186 @@
|
|||
/* Copyright (c) 2016, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/asn1t.h>
|
||||
#include <openssl/bytestring.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/obj.h>
|
||||
#include <openssl/span.h>
|
||||
|
||||
#include "../test/test_util.h"
|
||||
|
||||
|
||||
// kTag128 is an ASN.1 structure with a universal tag with number 128.
|
||||
static const uint8_t kTag128[] = {
|
||||
0x1f, 0x81, 0x00, 0x01, 0x00,
|
||||
};
|
||||
|
||||
// kTag258 is an ASN.1 structure with a universal tag with number 258.
|
||||
static const uint8_t kTag258[] = {
|
||||
0x1f, 0x82, 0x02, 0x01, 0x00,
|
||||
};
|
||||
|
||||
static_assert(V_ASN1_NEG_INTEGER == 258,
|
||||
"V_ASN1_NEG_INTEGER changed. Update kTag258 to collide with it.");
|
||||
|
||||
// kTagOverflow is an ASN.1 structure with a universal tag with number 2^35-1,
|
||||
// which will not fit in an int.
|
||||
static const uint8_t kTagOverflow[] = {
|
||||
0x1f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01, 0x00,
|
||||
};
|
||||
|
||||
TEST(ASN1Test, LargeTags) {
|
||||
const uint8_t *p = kTag258;
|
||||
bssl::UniquePtr<ASN1_TYPE> obj(d2i_ASN1_TYPE(NULL, &p, sizeof(kTag258)));
|
||||
EXPECT_FALSE(obj) << "Parsed value with illegal tag" << obj->type;
|
||||
ERR_clear_error();
|
||||
|
||||
p = kTagOverflow;
|
||||
obj.reset(d2i_ASN1_TYPE(NULL, &p, sizeof(kTagOverflow)));
|
||||
EXPECT_FALSE(obj) << "Parsed value with tag overflow" << obj->type;
|
||||
ERR_clear_error();
|
||||
|
||||
p = kTag128;
|
||||
obj.reset(d2i_ASN1_TYPE(NULL, &p, sizeof(kTag128)));
|
||||
ASSERT_TRUE(obj);
|
||||
EXPECT_EQ(128, obj->type);
|
||||
const uint8_t kZero = 0;
|
||||
EXPECT_EQ(Bytes(&kZero, 1), Bytes(obj->value.asn1_string->data,
|
||||
obj->value.asn1_string->length));
|
||||
}
|
||||
|
||||
TEST(ASN1Test, IntegerSetting) {
|
||||
bssl::UniquePtr<ASN1_INTEGER> by_bn(M_ASN1_INTEGER_new());
|
||||
bssl::UniquePtr<ASN1_INTEGER> by_long(M_ASN1_INTEGER_new());
|
||||
bssl::UniquePtr<ASN1_INTEGER> by_uint64(M_ASN1_INTEGER_new());
|
||||
bssl::UniquePtr<BIGNUM> bn(BN_new());
|
||||
|
||||
const std::vector<int64_t> kValues = {
|
||||
LONG_MIN, -2, -1, 0, 1, 2, 0xff, 0x100, 0xffff, 0x10000, LONG_MAX,
|
||||
};
|
||||
for (const auto &i : kValues) {
|
||||
SCOPED_TRACE(i);
|
||||
|
||||
ASSERT_EQ(1, ASN1_INTEGER_set(by_long.get(), i));
|
||||
const uint64_t abs = i < 0 ? (0 - (uint64_t) i) : i;
|
||||
ASSERT_TRUE(BN_set_u64(bn.get(), abs));
|
||||
BN_set_negative(bn.get(), i < 0);
|
||||
ASSERT_TRUE(BN_to_ASN1_INTEGER(bn.get(), by_bn.get()));
|
||||
|
||||
EXPECT_EQ(0, ASN1_INTEGER_cmp(by_bn.get(), by_long.get()));
|
||||
|
||||
if (i >= 0) {
|
||||
ASSERT_EQ(1, ASN1_INTEGER_set_uint64(by_uint64.get(), i));
|
||||
EXPECT_EQ(0, ASN1_INTEGER_cmp(by_bn.get(), by_uint64.get()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct asn1_linked_list_st {
|
||||
struct asn1_linked_list_st *next;
|
||||
} ASN1_LINKED_LIST;
|
||||
|
||||
DECLARE_ASN1_ITEM(ASN1_LINKED_LIST)
|
||||
DECLARE_ASN1_FUNCTIONS(ASN1_LINKED_LIST)
|
||||
|
||||
ASN1_SEQUENCE(ASN1_LINKED_LIST) = {
|
||||
ASN1_OPT(ASN1_LINKED_LIST, next, ASN1_LINKED_LIST),
|
||||
} ASN1_SEQUENCE_END(ASN1_LINKED_LIST)
|
||||
|
||||
IMPLEMENT_ASN1_FUNCTIONS(ASN1_LINKED_LIST)
|
||||
|
||||
static bool MakeLinkedList(bssl::UniquePtr<uint8_t> *out, size_t *out_len,
|
||||
size_t count) {
|
||||
bssl::ScopedCBB cbb;
|
||||
std::vector<CBB> cbbs(count);
|
||||
if (!CBB_init(cbb.get(), 2 * count) ||
|
||||
!CBB_add_asn1(cbb.get(), &cbbs[0], CBS_ASN1_SEQUENCE)) {
|
||||
return false;
|
||||
}
|
||||
for (size_t i = 1; i < count; i++) {
|
||||
if (!CBB_add_asn1(&cbbs[i - 1], &cbbs[i], CBS_ASN1_SEQUENCE)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
uint8_t *ptr;
|
||||
if (!CBB_finish(cbb.get(), &ptr, out_len)) {
|
||||
return false;
|
||||
}
|
||||
out->reset(ptr);
|
||||
return true;
|
||||
}
|
||||
|
||||
TEST(ASN1Test, Recursive) {
|
||||
bssl::UniquePtr<uint8_t> data;
|
||||
size_t len;
|
||||
|
||||
// Sanity-check that MakeLinkedList can be parsed.
|
||||
ASSERT_TRUE(MakeLinkedList(&data, &len, 5));
|
||||
const uint8_t *ptr = data.get();
|
||||
ASN1_LINKED_LIST *list = d2i_ASN1_LINKED_LIST(nullptr, &ptr, len);
|
||||
EXPECT_TRUE(list);
|
||||
ASN1_LINKED_LIST_free(list);
|
||||
|
||||
// Excessively deep structures are rejected.
|
||||
ASSERT_TRUE(MakeLinkedList(&data, &len, 100));
|
||||
ptr = data.get();
|
||||
list = d2i_ASN1_LINKED_LIST(nullptr, &ptr, len);
|
||||
EXPECT_FALSE(list);
|
||||
// Note checking the error queue here does not work. The error "stack trace"
|
||||
// is too deep, so the |ASN1_R_NESTED_TOO_DEEP| entry drops off the queue.
|
||||
ASN1_LINKED_LIST_free(list);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void TestSerialize(T obj, int (*i2d_func)(T a, uint8_t **pp),
|
||||
bssl::Span<const uint8_t> expected) {
|
||||
int len = static_cast<int>(expected.size());
|
||||
ASSERT_EQ(i2d_func(obj, nullptr), len);
|
||||
|
||||
std::vector<uint8_t> buf(expected.size());
|
||||
uint8_t *ptr = buf.data();
|
||||
ASSERT_EQ(i2d_func(obj, &ptr), len);
|
||||
EXPECT_EQ(ptr, buf.data() + buf.size());
|
||||
EXPECT_EQ(Bytes(expected), Bytes(buf));
|
||||
|
||||
// Test the allocating version.
|
||||
ptr = nullptr;
|
||||
ASSERT_EQ(i2d_func(obj, &ptr), len);
|
||||
EXPECT_EQ(Bytes(expected), Bytes(ptr, expected.size()));
|
||||
OPENSSL_free(ptr);
|
||||
}
|
||||
|
||||
TEST(ASN1Test, SerializeObject) {
|
||||
static const uint8_t kDER[] = {0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
|
||||
0xf7, 0x0d, 0x01, 0x01, 0x01};
|
||||
const ASN1_OBJECT *obj = OBJ_nid2obj(NID_rsaEncryption);
|
||||
TestSerialize(const_cast<ASN1_OBJECT *>(obj), i2d_ASN1_OBJECT, kDER);
|
||||
}
|
||||
|
||||
TEST(ASN1Test, SerializeBoolean) {
|
||||
static const uint8_t kTrue[] = {0x01, 0x01, 0xff};
|
||||
TestSerialize(0xff, i2d_ASN1_BOOLEAN, kTrue);
|
||||
|
||||
static const uint8_t kFalse[] = {0x01, 0x01, 0x00};
|
||||
TestSerialize(0x00, i2d_ASN1_BOOLEAN, kFalse);
|
||||
}
|
|
@ -66,6 +66,14 @@
|
|||
|
||||
#include "../internal.h"
|
||||
|
||||
/*
|
||||
* Constructed types with a recursive definition (such as can be found in PKCS7)
|
||||
* could eventually exceed the stack given malicious input with excessive
|
||||
* recursion. Therefore we limit the stack depth. This is the maximum number of
|
||||
* recursive invocations of asn1_item_embed_d2i().
|
||||
*/
|
||||
#define ASN1_MAX_CONSTRUCTED_NEST 30
|
||||
|
||||
static int asn1_check_eoc(const unsigned char **in, long len);
|
||||
static int asn1_find_end(const unsigned char **in, long len, char inf);
|
||||
|
||||
|
@ -82,11 +90,11 @@ static int asn1_check_tlen(long *olen, int *otag, unsigned char *oclass,
|
|||
static int asn1_template_ex_d2i(ASN1_VALUE **pval,
|
||||
const unsigned char **in, long len,
|
||||
const ASN1_TEMPLATE *tt, char opt,
|
||||
ASN1_TLC *ctx);
|
||||
ASN1_TLC *ctx, int depth);
|
||||
static int asn1_template_noexp_d2i(ASN1_VALUE **val,
|
||||
const unsigned char **in, long len,
|
||||
const ASN1_TEMPLATE *tt, char opt,
|
||||
ASN1_TLC *ctx);
|
||||
ASN1_TLC *ctx, int depth);
|
||||
static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
|
||||
const unsigned char **in, long len,
|
||||
const ASN1_ITEM *it,
|
||||
|
@ -153,9 +161,9 @@ ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **pval,
|
|||
* tag mismatch return -1 to handle OPTIONAL
|
||||
*/
|
||||
|
||||
int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
||||
const ASN1_ITEM *it,
|
||||
int tag, int aclass, char opt, ASN1_TLC *ctx)
|
||||
static int asn1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
|
||||
long len, const ASN1_ITEM *it, int tag, int aclass,
|
||||
char opt, ASN1_TLC *ctx, int depth)
|
||||
{
|
||||
const ASN1_TEMPLATE *tt, *errtt = NULL;
|
||||
const ASN1_COMPAT_FUNCS *cf;
|
||||
|
@ -188,6 +196,11 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
len = INT_MAX/2;
|
||||
}
|
||||
|
||||
if (++depth > ASN1_MAX_CONSTRUCTED_NEST) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_TOO_DEEP);
|
||||
goto err;
|
||||
}
|
||||
|
||||
switch (it->itype) {
|
||||
case ASN1_ITYPE_PRIMITIVE:
|
||||
if (it->templates) {
|
||||
|
@ -203,7 +216,7 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
goto err;
|
||||
}
|
||||
return asn1_template_ex_d2i(pval, in, len,
|
||||
it->templates, opt, ctx);
|
||||
it->templates, opt, ctx, depth);
|
||||
}
|
||||
return asn1_d2i_ex_primitive(pval, in, len, it,
|
||||
tag, aclass, opt, ctx);
|
||||
|
@ -326,7 +339,7 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
/*
|
||||
* We mark field as OPTIONAL so its absence can be recognised.
|
||||
*/
|
||||
ret = asn1_template_ex_d2i(pchptr, &p, len, tt, 1, ctx);
|
||||
ret = asn1_template_ex_d2i(pchptr, &p, len, tt, 1, ctx, depth);
|
||||
/* If field not present, try the next one */
|
||||
if (ret == -1)
|
||||
continue;
|
||||
|
@ -444,7 +457,8 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
* attempt to read in field, allowing each to be OPTIONAL
|
||||
*/
|
||||
|
||||
ret = asn1_template_ex_d2i(pseqval, &p, len, seqtt, isopt, ctx);
|
||||
ret = asn1_template_ex_d2i(pseqval, &p, len, seqtt, isopt, ctx,
|
||||
depth);
|
||||
if (!ret) {
|
||||
errtt = seqtt;
|
||||
goto err;
|
||||
|
@ -514,6 +528,13 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
||||
const ASN1_ITEM *it,
|
||||
int tag, int aclass, char opt, ASN1_TLC *ctx)
|
||||
{
|
||||
return asn1_item_ex_d2i(pval, in, len, it, tag, aclass, opt, ctx, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Templates are handled with two separate functions. One handles any
|
||||
* EXPLICIT tag and the other handles the rest.
|
||||
|
@ -522,7 +543,7 @@ int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
|
|||
static int asn1_template_ex_d2i(ASN1_VALUE **val,
|
||||
const unsigned char **in, long inlen,
|
||||
const ASN1_TEMPLATE *tt, char opt,
|
||||
ASN1_TLC *ctx)
|
||||
ASN1_TLC *ctx, int depth)
|
||||
{
|
||||
int flags, aclass;
|
||||
int ret;
|
||||
|
@ -556,7 +577,7 @@ static int asn1_template_ex_d2i(ASN1_VALUE **val,
|
|||
return 0;
|
||||
}
|
||||
/* We've found the field so it can't be OPTIONAL now */
|
||||
ret = asn1_template_noexp_d2i(val, &p, len, tt, 0, ctx);
|
||||
ret = asn1_template_noexp_d2i(val, &p, len, tt, 0, ctx, depth);
|
||||
if (!ret) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
|
||||
return 0;
|
||||
|
@ -579,7 +600,7 @@ static int asn1_template_ex_d2i(ASN1_VALUE **val,
|
|||
}
|
||||
}
|
||||
} else
|
||||
return asn1_template_noexp_d2i(val, in, inlen, tt, opt, ctx);
|
||||
return asn1_template_noexp_d2i(val, in, inlen, tt, opt, ctx, depth);
|
||||
|
||||
*in = p;
|
||||
return 1;
|
||||
|
@ -592,7 +613,7 @@ static int asn1_template_ex_d2i(ASN1_VALUE **val,
|
|||
static int asn1_template_noexp_d2i(ASN1_VALUE **val,
|
||||
const unsigned char **in, long len,
|
||||
const ASN1_TEMPLATE *tt, char opt,
|
||||
ASN1_TLC *ctx)
|
||||
ASN1_TLC *ctx, int depth)
|
||||
{
|
||||
int flags, aclass;
|
||||
int ret;
|
||||
|
@ -661,8 +682,8 @@ static int asn1_template_noexp_d2i(ASN1_VALUE **val,
|
|||
break;
|
||||
}
|
||||
skfield = NULL;
|
||||
if (!ASN1_item_ex_d2i(&skfield, &p, len,
|
||||
ASN1_ITEM_ptr(tt->item), -1, 0, 0, ctx)) {
|
||||
if (!asn1_item_ex_d2i(&skfield, &p, len, ASN1_ITEM_ptr(tt->item),
|
||||
-1, 0, 0, ctx, depth)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
|
||||
goto err;
|
||||
}
|
||||
|
@ -679,9 +700,8 @@ static int asn1_template_noexp_d2i(ASN1_VALUE **val,
|
|||
}
|
||||
} else if (flags & ASN1_TFLG_IMPTAG) {
|
||||
/* IMPLICIT tagging */
|
||||
ret = ASN1_item_ex_d2i(val, &p, len,
|
||||
ASN1_ITEM_ptr(tt->item), tt->tag, aclass, opt,
|
||||
ctx);
|
||||
ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item), tt->tag,
|
||||
aclass, opt, ctx, depth);
|
||||
if (!ret) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
|
||||
goto err;
|
||||
|
@ -689,8 +709,9 @@ static int asn1_template_noexp_d2i(ASN1_VALUE **val,
|
|||
return -1;
|
||||
} else {
|
||||
/* Nothing special */
|
||||
ret = ASN1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item),
|
||||
-1, tt->flags & ASN1_TFLG_COMBINE, opt, ctx);
|
||||
ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item),
|
||||
-1, tt->flags & ASN1_TFLG_COMBINE, opt, ctx,
|
||||
depth);
|
||||
if (!ret) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
|
||||
goto err;
|
||||
|
|
|
@ -192,7 +192,7 @@ int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out,
|
|||
/* Use indefinite length constructed if requested */
|
||||
if (aclass & ASN1_TFLG_NDEF)
|
||||
ndef = 2;
|
||||
/* fall through */
|
||||
OPENSSL_FALLTHROUGH;
|
||||
|
||||
case ASN1_ITYPE_SEQUENCE:
|
||||
i = asn1_enc_restore(&seqcontlen, out, pval, it);
|
||||
|
@ -583,6 +583,8 @@ int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype,
|
|||
otmp = (ASN1_OBJECT *)*pval;
|
||||
cont = otmp->data;
|
||||
len = otmp->length;
|
||||
if (cont == NULL || len == 0)
|
||||
return -1;
|
||||
break;
|
||||
|
||||
case V_ASN1_NULL:
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
base64
|
||||
|
||||
OBJECT
|
||||
|
||||
base64.c
|
||||
)
|
|
@ -98,8 +98,8 @@ static uint8_t conv_bin2ascii(uint8_t a) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
OPENSSL_COMPILE_ASSERT(sizeof(((EVP_ENCODE_CTX *)(NULL))->data) % 3 == 0,
|
||||
data_length_must_be_multiple_of_base64_chunk_size);
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_ENCODE_CTX *)(NULL))->data) % 3 == 0,
|
||||
"data length must be a multiple of base64 chunk size");
|
||||
|
||||
int EVP_EncodedLength(size_t *out_len, size_t len) {
|
||||
if (len + 2 < len) {
|
||||
|
|
307
TMessagesProj/jni/boringssl/crypto/base64/base64_test.cc
Normal file
307
TMessagesProj/jni/boringssl/crypto/base64/base64_test.cc
Normal file
|
@ -0,0 +1,307 @@
|
|||
/* Copyright (c) 2014, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/base64.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include "../internal.h"
|
||||
#include "../test/test_util.h"
|
||||
|
||||
|
||||
enum encoding_relation {
|
||||
// canonical indicates that the encoding is the expected encoding of the
|
||||
// input.
|
||||
canonical,
|
||||
// valid indicates that the encoding is /a/ valid encoding of the input, but
|
||||
// need not be the canonical one.
|
||||
valid,
|
||||
// invalid indicates that the encoded data is valid.
|
||||
invalid,
|
||||
};
|
||||
|
||||
struct Base64TestVector {
|
||||
enum encoding_relation relation;
|
||||
const char *decoded;
|
||||
const char *encoded;
|
||||
};
|
||||
|
||||
// Test vectors from RFC 4648.
|
||||
static const Base64TestVector kTestVectors[] = {
|
||||
{canonical, "", ""},
|
||||
{canonical, "f", "Zg==\n"},
|
||||
{canonical, "fo", "Zm8=\n"},
|
||||
{canonical, "foo", "Zm9v\n"},
|
||||
{canonical, "foob", "Zm9vYg==\n"},
|
||||
{canonical, "fooba", "Zm9vYmE=\n"},
|
||||
{canonical, "foobar", "Zm9vYmFy\n"},
|
||||
{valid, "foobar", "Zm9vYmFy\n\n"},
|
||||
{valid, "foobar", " Zm9vYmFy\n\n"},
|
||||
{valid, "foobar", " Z m 9 v Y m F y\n\n"},
|
||||
{invalid, "", "Zm9vYmFy=\n"},
|
||||
{invalid, "", "Zm9vYmFy==\n"},
|
||||
{invalid, "", "Zm9vYmFy===\n"},
|
||||
{invalid, "", "Z"},
|
||||
{invalid, "", "Z\n"},
|
||||
{invalid, "", "ab!c"},
|
||||
{invalid, "", "ab=c"},
|
||||
{invalid, "", "abc"},
|
||||
|
||||
{canonical, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n"},
|
||||
{valid, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA\n==\n"},
|
||||
{valid, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=\n=\n"},
|
||||
{invalid, "",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=\n==\n"},
|
||||
{canonical, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh"
|
||||
"4eHh4eHh4\n"},
|
||||
{canonical,
|
||||
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh"
|
||||
"4eHh4eHh4eHh4eA==\n"},
|
||||
{valid, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh\n4eHh4eHh"
|
||||
"4eHh4eHh4eHh4eA==\n"},
|
||||
{valid, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e"
|
||||
"Hh4eHh4eHh4eA==\n"},
|
||||
{invalid, "",
|
||||
"eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=="
|
||||
"\neHh4eHh4eHh4eHh4eHh4eHh4\n"},
|
||||
|
||||
// A '-' has traditionally been treated as the end of the data by OpenSSL
|
||||
// and anything following would be ignored. BoringSSL does not accept this
|
||||
// non-standard extension.
|
||||
{invalid, "", "Zm9vYmFy-anythinggoes"},
|
||||
{invalid, "", "Zm9vYmFy\n-anythinggoes"},
|
||||
|
||||
// CVE-2015-0292
|
||||
{invalid, "",
|
||||
"ZW5jb2RlIG1lCg==========================================================="
|
||||
"=======\n"},
|
||||
};
|
||||
|
||||
class Base64Test : public testing::TestWithParam<Base64TestVector> {};
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(, Base64Test, testing::ValuesIn(kTestVectors));
|
||||
|
||||
// RemoveNewlines returns a copy of |in| with all '\n' characters removed.
|
||||
static std::string RemoveNewlines(const char *in) {
|
||||
std::string ret;
|
||||
const size_t in_len = strlen(in);
|
||||
|
||||
for (size_t i = 0; i < in_len; i++) {
|
||||
if (in[i] != '\n') {
|
||||
ret.push_back(in[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
TEST_P(Base64Test, EncodeBlock) {
|
||||
const Base64TestVector &t = GetParam();
|
||||
if (t.relation != canonical) {
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t decoded_len = strlen(t.decoded);
|
||||
size_t max_encoded_len;
|
||||
ASSERT_TRUE(EVP_EncodedLength(&max_encoded_len, decoded_len));
|
||||
|
||||
std::vector<uint8_t> out_vec(max_encoded_len);
|
||||
uint8_t *out = out_vec.data();
|
||||
size_t len = EVP_EncodeBlock(out, (const uint8_t *)t.decoded, decoded_len);
|
||||
|
||||
std::string encoded(RemoveNewlines(t.encoded));
|
||||
EXPECT_EQ(Bytes(encoded), Bytes(out, len));
|
||||
}
|
||||
|
||||
TEST_P(Base64Test, DecodeBase64) {
|
||||
const Base64TestVector &t = GetParam();
|
||||
if (t.relation == valid) {
|
||||
// The non-canonical encodings will generally have odd whitespace etc
|
||||
// that |EVP_DecodeBase64| will reject.
|
||||
return;
|
||||
}
|
||||
|
||||
const std::string encoded(RemoveNewlines(t.encoded));
|
||||
std::vector<uint8_t> out_vec(encoded.size());
|
||||
uint8_t *out = out_vec.data();
|
||||
|
||||
size_t len;
|
||||
int ok = EVP_DecodeBase64(out, &len, out_vec.size(),
|
||||
(const uint8_t *)encoded.data(), encoded.size());
|
||||
|
||||
if (t.relation == invalid) {
|
||||
EXPECT_FALSE(ok);
|
||||
} else if (t.relation == canonical) {
|
||||
ASSERT_TRUE(ok);
|
||||
EXPECT_EQ(Bytes(t.decoded), Bytes(out, len));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(Base64Test, DecodeBlock) {
|
||||
const Base64TestVector &t = GetParam();
|
||||
if (t.relation != canonical) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::string encoded(RemoveNewlines(t.encoded));
|
||||
|
||||
std::vector<uint8_t> out_vec(encoded.size());
|
||||
uint8_t *out = out_vec.data();
|
||||
|
||||
// Test that the padding behavior of the deprecated API is preserved.
|
||||
int ret =
|
||||
EVP_DecodeBlock(out, (const uint8_t *)encoded.data(), encoded.size());
|
||||
ASSERT_GE(ret, 0);
|
||||
// EVP_DecodeBlock should ignore padding.
|
||||
ASSERT_EQ(0, ret % 3);
|
||||
size_t expected_len = strlen(t.decoded);
|
||||
if (expected_len % 3 != 0) {
|
||||
ret -= 3 - (expected_len % 3);
|
||||
}
|
||||
EXPECT_EQ(Bytes(t.decoded), Bytes(out, static_cast<size_t>(ret)));
|
||||
}
|
||||
|
||||
TEST_P(Base64Test, EncodeDecode) {
|
||||
const Base64TestVector &t = GetParam();
|
||||
|
||||
EVP_ENCODE_CTX ctx;
|
||||
const size_t decoded_len = strlen(t.decoded);
|
||||
|
||||
if (t.relation == canonical) {
|
||||
size_t max_encoded_len;
|
||||
ASSERT_TRUE(EVP_EncodedLength(&max_encoded_len, decoded_len));
|
||||
|
||||
// EVP_EncodeUpdate will output new lines every 64 bytes of output so we
|
||||
// need slightly more than |EVP_EncodedLength| returns. */
|
||||
max_encoded_len += (max_encoded_len + 63) >> 6;
|
||||
std::vector<uint8_t> out_vec(max_encoded_len);
|
||||
uint8_t *out = out_vec.data();
|
||||
|
||||
EVP_EncodeInit(&ctx);
|
||||
|
||||
int out_len;
|
||||
EVP_EncodeUpdate(&ctx, out, &out_len,
|
||||
reinterpret_cast<const uint8_t *>(t.decoded),
|
||||
decoded_len);
|
||||
size_t total = out_len;
|
||||
|
||||
EVP_EncodeFinal(&ctx, out + total, &out_len);
|
||||
total += out_len;
|
||||
|
||||
EXPECT_EQ(Bytes(t.encoded), Bytes(out, total));
|
||||
}
|
||||
|
||||
std::vector<uint8_t> out_vec(strlen(t.encoded));
|
||||
uint8_t *out = out_vec.data();
|
||||
|
||||
EVP_DecodeInit(&ctx);
|
||||
int out_len;
|
||||
size_t total = 0;
|
||||
int ret = EVP_DecodeUpdate(&ctx, out, &out_len,
|
||||
reinterpret_cast<const uint8_t *>(t.encoded),
|
||||
strlen(t.encoded));
|
||||
if (ret != -1) {
|
||||
total = out_len;
|
||||
ret = EVP_DecodeFinal(&ctx, out + total, &out_len);
|
||||
total += out_len;
|
||||
}
|
||||
|
||||
switch (t.relation) {
|
||||
case canonical:
|
||||
case valid:
|
||||
ASSERT_NE(-1, ret);
|
||||
EXPECT_EQ(Bytes(t.decoded), Bytes(out, total));
|
||||
break;
|
||||
|
||||
case invalid:
|
||||
EXPECT_EQ(-1, ret);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TEST_P(Base64Test, DecodeUpdateStreaming) {
|
||||
const Base64TestVector &t = GetParam();
|
||||
if (t.relation == invalid) {
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t encoded_len = strlen(t.encoded);
|
||||
|
||||
std::vector<uint8_t> out(encoded_len);
|
||||
|
||||
for (size_t chunk_size = 1; chunk_size <= encoded_len; chunk_size++) {
|
||||
SCOPED_TRACE(chunk_size);
|
||||
size_t out_len = 0;
|
||||
EVP_ENCODE_CTX ctx;
|
||||
EVP_DecodeInit(&ctx);
|
||||
|
||||
for (size_t i = 0; i < encoded_len;) {
|
||||
size_t todo = encoded_len - i;
|
||||
if (todo > chunk_size) {
|
||||
todo = chunk_size;
|
||||
}
|
||||
|
||||
int bytes_written;
|
||||
int ret = EVP_DecodeUpdate(
|
||||
&ctx, out.data() + out_len, &bytes_written,
|
||||
reinterpret_cast<const uint8_t *>(t.encoded + i), todo);
|
||||
i += todo;
|
||||
|
||||
switch (ret) {
|
||||
case -1:
|
||||
FAIL() << "EVP_DecodeUpdate failed";
|
||||
case 0:
|
||||
out_len += bytes_written;
|
||||
if (i == encoded_len ||
|
||||
(i + 1 == encoded_len && t.encoded[i] == '\n') ||
|
||||
// If there was an '-' in the input (which means “EOF”) then
|
||||
// this loop will continue to test that |EVP_DecodeUpdate| will
|
||||
// ignore the remainder of the input.
|
||||
strchr(t.encoded, '-') != nullptr) {
|
||||
break;
|
||||
}
|
||||
|
||||
FAIL()
|
||||
<< "EVP_DecodeUpdate returned zero before end of encoded data.";
|
||||
case 1:
|
||||
out_len += bytes_written;
|
||||
break;
|
||||
default:
|
||||
FAIL() << "Invalid return value " << ret;
|
||||
}
|
||||
}
|
||||
|
||||
int bytes_written;
|
||||
int ret = EVP_DecodeFinal(&ctx, out.data() + out_len, &bytes_written);
|
||||
ASSERT_NE(ret, -1);
|
||||
out_len += bytes_written;
|
||||
|
||||
EXPECT_EQ(Bytes(t.decoded), Bytes(out.data(), out_len));
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
bio
|
||||
|
||||
OBJECT
|
||||
|
||||
bio.c
|
||||
bio_mem.c
|
||||
connect.c
|
||||
fd.c
|
||||
file.c
|
||||
hexdump.c
|
||||
pair.c
|
||||
printf.c
|
||||
socket.c
|
||||
socket_helper.c
|
||||
)
|
|
@ -61,6 +61,7 @@
|
|||
#include <limits.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/thread.h>
|
||||
|
@ -177,6 +178,19 @@ int BIO_write(BIO *bio, const void *in, int inl) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
int BIO_write_all(BIO *bio, const void *data, size_t len) {
|
||||
const uint8_t *data_u8 = data;
|
||||
while (len > 0) {
|
||||
int ret = BIO_write(bio, data_u8, len > INT_MAX ? INT_MAX : (int)len);
|
||||
if (ret <= 0) {
|
||||
return 0;
|
||||
}
|
||||
data_u8 += ret;
|
||||
len -= ret;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int BIO_puts(BIO *bio, const char *in) {
|
||||
return BIO_write(bio, in, strlen(in));
|
||||
}
|
||||
|
@ -468,11 +482,52 @@ static int bio_read_all(BIO *bio, uint8_t **out, size_t *out_len,
|
|||
}
|
||||
}
|
||||
|
||||
// bio_read_full reads |len| bytes |bio| and writes them into |out|. It
|
||||
// tolerates partial reads from |bio| and returns one on success or zero if a
|
||||
// read fails before |len| bytes are read. On failure, it additionally sets
|
||||
// |*out_eof_on_first_read| to whether the error was due to |bio| returning zero
|
||||
// on the first read. |out_eof_on_first_read| may be NULL to discard the value.
|
||||
static int bio_read_full(BIO *bio, uint8_t *out, int *out_eof_on_first_read,
|
||||
size_t len) {
|
||||
int first_read = 1;
|
||||
while (len > 0) {
|
||||
int todo = len <= INT_MAX ? (int)len : INT_MAX;
|
||||
int ret = BIO_read(bio, out, todo);
|
||||
if (ret <= 0) {
|
||||
if (out_eof_on_first_read != NULL) {
|
||||
*out_eof_on_first_read = first_read && ret == 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
out += ret;
|
||||
len -= (size_t)ret;
|
||||
first_read = 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// For compatibility with existing |d2i_*_bio| callers, |BIO_read_asn1| uses
|
||||
// |ERR_LIB_ASN1| errors.
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, ASN1_R_DECODE_ERROR)
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, ASN1_R_HEADER_TOO_LONG)
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, ASN1_R_NOT_ENOUGH_DATA)
|
||||
OPENSSL_DECLARE_ERROR_REASON(ASN1, ASN1_R_TOO_LONG)
|
||||
|
||||
int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
||||
uint8_t header[6];
|
||||
|
||||
static const size_t kInitialHeaderLen = 2;
|
||||
if (BIO_read(bio, header, kInitialHeaderLen) != (int) kInitialHeaderLen) {
|
||||
int eof_on_first_read;
|
||||
if (!bio_read_full(bio, header, &eof_on_first_read, kInitialHeaderLen)) {
|
||||
if (eof_on_first_read) {
|
||||
// Historically, OpenSSL returned |ASN1_R_HEADER_TOO_LONG| when
|
||||
// |d2i_*_bio| could not read anything. CPython conditions on this to
|
||||
// determine if |bio| was empty.
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_HEADER_TOO_LONG);
|
||||
} else {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -481,6 +536,7 @@ int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
|||
|
||||
if ((tag & 0x1f) == 0x1f) {
|
||||
// Long form tags are not supported.
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -494,34 +550,40 @@ int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
|||
|
||||
if ((tag & 0x20 /* constructed */) != 0 && num_bytes == 0) {
|
||||
// indefinite length.
|
||||
return bio_read_all(bio, out, out_len, header, kInitialHeaderLen,
|
||||
max_len);
|
||||
if (!bio_read_all(bio, out, out_len, header, kInitialHeaderLen,
|
||||
max_len)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (num_bytes == 0 || num_bytes > 4) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (BIO_read(bio, header + kInitialHeaderLen, num_bytes) !=
|
||||
(int)num_bytes) {
|
||||
if (!bio_read_full(bio, header + kInitialHeaderLen, NULL, num_bytes)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
return 0;
|
||||
}
|
||||
header_len = kInitialHeaderLen + num_bytes;
|
||||
|
||||
uint32_t len32 = 0;
|
||||
unsigned i;
|
||||
for (i = 0; i < num_bytes; i++) {
|
||||
for (unsigned i = 0; i < num_bytes; i++) {
|
||||
len32 <<= 8;
|
||||
len32 |= header[kInitialHeaderLen + i];
|
||||
}
|
||||
|
||||
if (len32 < 128) {
|
||||
// Length should have used short-form encoding.
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((len32 >> ((num_bytes-1)*8)) == 0) {
|
||||
// Length should have been at least one byte shorter.
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -531,6 +593,7 @@ int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
|||
if (len + header_len < len ||
|
||||
len + header_len > max_len ||
|
||||
len > INT_MAX) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
|
||||
return 0;
|
||||
}
|
||||
len += header_len;
|
||||
|
@ -538,11 +601,12 @@ int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
|||
|
||||
*out = OPENSSL_malloc(len);
|
||||
if (*out == NULL) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
OPENSSL_memcpy(*out, header, header_len);
|
||||
if (BIO_read(bio, (*out) + header_len, len - header_len) !=
|
||||
(int) (len - header_len)) {
|
||||
if (!bio_read_full(bio, (*out) + header_len, NULL, len - header_len)) {
|
||||
OPENSSL_PUT_ERROR(ASN1, ASN1_R_NOT_ENOUGH_DATA);
|
||||
OPENSSL_free(*out);
|
||||
return 0;
|
||||
}
|
||||
|
|
325
TMessagesProj/jni/boringssl/crypto/bio/bio_test.cc
Normal file
325
TMessagesProj/jni/boringssl/crypto/bio/bio_test.cc
Normal file
|
@ -0,0 +1,325 @@
|
|||
/* Copyright (c) 2014, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
#include "../internal.h"
|
||||
#include "../test/test_util.h"
|
||||
|
||||
#if !defined(OPENSSL_WINDOWS)
|
||||
#include <arpa/inet.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <string.h>
|
||||
#include <sys/socket.h>
|
||||
#include <unistd.h>
|
||||
#else
|
||||
#include <io.h>
|
||||
OPENSSL_MSVC_PRAGMA(warning(push, 3))
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
OPENSSL_MSVC_PRAGMA(warning(pop))
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(OPENSSL_WINDOWS)
|
||||
static int closesocket(int sock) { return close(sock); }
|
||||
static std::string LastSocketError() { return strerror(errno); }
|
||||
#else
|
||||
static std::string LastSocketError() {
|
||||
char buf[DECIMAL_SIZE(int) + 1];
|
||||
BIO_snprintf(buf, sizeof(buf), "%d", WSAGetLastError());
|
||||
return buf;
|
||||
}
|
||||
#endif
|
||||
|
||||
class ScopedSocket {
|
||||
public:
|
||||
explicit ScopedSocket(int sock) : sock_(sock) {}
|
||||
~ScopedSocket() {
|
||||
closesocket(sock_);
|
||||
}
|
||||
|
||||
private:
|
||||
const int sock_;
|
||||
};
|
||||
|
||||
TEST(BIOTest, SocketConnect) {
|
||||
static const char kTestMessage[] = "test";
|
||||
int listening_sock = -1;
|
||||
socklen_t len = 0;
|
||||
sockaddr_storage ss;
|
||||
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) &ss;
|
||||
struct sockaddr_in *sin = (struct sockaddr_in *) &ss;
|
||||
OPENSSL_memset(&ss, 0, sizeof(ss));
|
||||
|
||||
ss.ss_family = AF_INET6;
|
||||
listening_sock = socket(AF_INET6, SOCK_STREAM, 0);
|
||||
ASSERT_NE(-1, listening_sock) << LastSocketError();
|
||||
len = sizeof(*sin6);
|
||||
ASSERT_EQ(1, inet_pton(AF_INET6, "::1", &sin6->sin6_addr))
|
||||
<< LastSocketError();
|
||||
if (bind(listening_sock, (struct sockaddr *)sin6, sizeof(*sin6)) == -1) {
|
||||
closesocket(listening_sock);
|
||||
|
||||
ss.ss_family = AF_INET;
|
||||
listening_sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
ASSERT_NE(-1, listening_sock) << LastSocketError();
|
||||
len = sizeof(*sin);
|
||||
ASSERT_EQ(1, inet_pton(AF_INET, "127.0.0.1", &sin->sin_addr))
|
||||
<< LastSocketError();
|
||||
ASSERT_EQ(0, bind(listening_sock, (struct sockaddr *)sin, sizeof(*sin)))
|
||||
<< LastSocketError();
|
||||
}
|
||||
|
||||
ScopedSocket listening_sock_closer(listening_sock);
|
||||
ASSERT_EQ(0, listen(listening_sock, 1)) << LastSocketError();
|
||||
ASSERT_EQ(0, getsockname(listening_sock, (struct sockaddr *)&ss, &len))
|
||||
<< LastSocketError();
|
||||
|
||||
char hostname[80];
|
||||
if (ss.ss_family == AF_INET6) {
|
||||
BIO_snprintf(hostname, sizeof(hostname), "[::1]:%d",
|
||||
ntohs(sin6->sin6_port));
|
||||
} else if (ss.ss_family == AF_INET) {
|
||||
BIO_snprintf(hostname, sizeof(hostname), "127.0.0.1:%d",
|
||||
ntohs(sin->sin_port));
|
||||
}
|
||||
|
||||
// Connect to it with a connect BIO.
|
||||
bssl::UniquePtr<BIO> bio(BIO_new_connect(hostname));
|
||||
ASSERT_TRUE(bio);
|
||||
|
||||
// Write a test message to the BIO.
|
||||
ASSERT_EQ(static_cast<int>(sizeof(kTestMessage)),
|
||||
BIO_write(bio.get(), kTestMessage, sizeof(kTestMessage)));
|
||||
|
||||
// Accept the socket.
|
||||
int sock = accept(listening_sock, (struct sockaddr *) &ss, &len);
|
||||
ASSERT_NE(-1, sock) << LastSocketError();
|
||||
ScopedSocket sock_closer(sock);
|
||||
|
||||
// Check the same message is read back out.
|
||||
char buf[sizeof(kTestMessage)];
|
||||
ASSERT_EQ(static_cast<int>(sizeof(kTestMessage)),
|
||||
recv(sock, buf, sizeof(buf), 0))
|
||||
<< LastSocketError();
|
||||
EXPECT_EQ(Bytes(kTestMessage, sizeof(kTestMessage)), Bytes(buf, sizeof(buf)));
|
||||
}
|
||||
|
||||
TEST(BIOTest, Printf) {
|
||||
// Test a short output, a very long one, and various sizes around
|
||||
// 256 (the size of the buffer) to ensure edge cases are correct.
|
||||
static const size_t kLengths[] = {5, 250, 251, 252, 253, 254, 1023};
|
||||
|
||||
bssl::UniquePtr<BIO> bio(BIO_new(BIO_s_mem()));
|
||||
ASSERT_TRUE(bio);
|
||||
|
||||
for (size_t length : kLengths) {
|
||||
SCOPED_TRACE(length);
|
||||
|
||||
std::string in(length, 'a');
|
||||
|
||||
int ret = BIO_printf(bio.get(), "test %s", in.c_str());
|
||||
ASSERT_GE(ret, 0);
|
||||
EXPECT_EQ(5 + length, static_cast<size_t>(ret));
|
||||
|
||||
const uint8_t *contents;
|
||||
size_t len;
|
||||
ASSERT_TRUE(BIO_mem_contents(bio.get(), &contents, &len));
|
||||
EXPECT_EQ("test " + in,
|
||||
std::string(reinterpret_cast<const char *>(contents), len));
|
||||
|
||||
ASSERT_TRUE(BIO_reset(bio.get()));
|
||||
}
|
||||
}
|
||||
|
||||
static const size_t kLargeASN1PayloadLen = 8000;
|
||||
|
||||
struct ASN1TestParam {
|
||||
bool should_succeed;
|
||||
std::vector<uint8_t> input;
|
||||
// suffix_len is the number of zeros to append to |input|.
|
||||
size_t suffix_len;
|
||||
// expected_len, if |should_succeed| is true, is the expected length of the
|
||||
// ASN.1 element.
|
||||
size_t expected_len;
|
||||
size_t max_len;
|
||||
} kASN1TestParams[] = {
|
||||
{true, {0x30, 2, 1, 2, 0, 0}, 0, 4, 100},
|
||||
{false /* truncated */, {0x30, 3, 1, 2}, 0, 0, 100},
|
||||
{false /* should be short len */, {0x30, 0x81, 1, 1}, 0, 0, 100},
|
||||
{false /* zero padded */, {0x30, 0x82, 0, 1, 1}, 0, 0, 100},
|
||||
|
||||
// Test a large payload.
|
||||
{true,
|
||||
{0x30, 0x82, kLargeASN1PayloadLen >> 8, kLargeASN1PayloadLen & 0xff},
|
||||
kLargeASN1PayloadLen,
|
||||
4 + kLargeASN1PayloadLen,
|
||||
kLargeASN1PayloadLen * 2},
|
||||
{false /* max_len too short */,
|
||||
{0x30, 0x82, kLargeASN1PayloadLen >> 8, kLargeASN1PayloadLen & 0xff},
|
||||
kLargeASN1PayloadLen,
|
||||
4 + kLargeASN1PayloadLen,
|
||||
3 + kLargeASN1PayloadLen},
|
||||
|
||||
// Test an indefinite-length input.
|
||||
{true,
|
||||
{0x30, 0x80},
|
||||
kLargeASN1PayloadLen + 2,
|
||||
2 + kLargeASN1PayloadLen + 2,
|
||||
kLargeASN1PayloadLen * 2},
|
||||
{false /* max_len too short */,
|
||||
{0x30, 0x80},
|
||||
kLargeASN1PayloadLen + 2,
|
||||
2 + kLargeASN1PayloadLen + 2,
|
||||
2 + kLargeASN1PayloadLen + 1},
|
||||
};
|
||||
|
||||
class BIOASN1Test : public testing::TestWithParam<ASN1TestParam> {};
|
||||
|
||||
TEST_P(BIOASN1Test, ReadASN1) {
|
||||
const ASN1TestParam& param = GetParam();
|
||||
std::vector<uint8_t> input = param.input;
|
||||
input.resize(input.size() + param.suffix_len, 0);
|
||||
|
||||
bssl::UniquePtr<BIO> bio(BIO_new_mem_buf(input.data(), input.size()));
|
||||
ASSERT_TRUE(bio);
|
||||
|
||||
uint8_t *out;
|
||||
size_t out_len;
|
||||
int ok = BIO_read_asn1(bio.get(), &out, &out_len, param.max_len);
|
||||
if (!ok) {
|
||||
out = nullptr;
|
||||
}
|
||||
bssl::UniquePtr<uint8_t> out_storage(out);
|
||||
|
||||
ASSERT_EQ(param.should_succeed, (ok == 1));
|
||||
if (param.should_succeed) {
|
||||
EXPECT_EQ(Bytes(input.data(), param.expected_len), Bytes(out, out_len));
|
||||
}
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(, BIOASN1Test, testing::ValuesIn(kASN1TestParams));
|
||||
|
||||
// Run through the tests twice, swapping |bio1| and |bio2|, for symmetry.
|
||||
class BIOPairTest : public testing::TestWithParam<bool> {};
|
||||
|
||||
TEST_P(BIOPairTest, TestPair) {
|
||||
BIO *bio1, *bio2;
|
||||
ASSERT_TRUE(BIO_new_bio_pair(&bio1, 10, &bio2, 10));
|
||||
bssl::UniquePtr<BIO> free_bio1(bio1), free_bio2(bio2);
|
||||
|
||||
if (GetParam()) {
|
||||
std::swap(bio1, bio2);
|
||||
}
|
||||
|
||||
// Check initial states.
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_read_request(bio1));
|
||||
|
||||
// Data written in one end may be read out the other.
|
||||
uint8_t buf[20];
|
||||
EXPECT_EQ(5, BIO_write(bio1, "12345", 5));
|
||||
EXPECT_EQ(5u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
ASSERT_EQ(5, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("12345"), Bytes(buf, 5));
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
|
||||
// Attempting to write more than 10 bytes will write partially.
|
||||
EXPECT_EQ(10, BIO_write(bio1, "1234567890___", 13));
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
EXPECT_EQ(-1, BIO_write(bio1, "z", 1));
|
||||
EXPECT_TRUE(BIO_should_write(bio1));
|
||||
ASSERT_EQ(10, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("1234567890"), Bytes(buf, 10));
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
|
||||
// Unsuccessful reads update the read request.
|
||||
EXPECT_EQ(-1, BIO_read(bio2, buf, 5));
|
||||
EXPECT_TRUE(BIO_should_read(bio2));
|
||||
EXPECT_EQ(5u, BIO_ctrl_get_read_request(bio1));
|
||||
|
||||
// The read request is clamped to the size of the buffer.
|
||||
EXPECT_EQ(-1, BIO_read(bio2, buf, 20));
|
||||
EXPECT_TRUE(BIO_should_read(bio2));
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_read_request(bio1));
|
||||
|
||||
// Data may be written and read in chunks.
|
||||
EXPECT_EQ(5, BIO_write(bio1, "12345", 5));
|
||||
EXPECT_EQ(5u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
EXPECT_EQ(5, BIO_write(bio1, "67890___", 8));
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
ASSERT_EQ(3, BIO_read(bio2, buf, 3));
|
||||
EXPECT_EQ(Bytes("123"), Bytes(buf, 3));
|
||||
EXPECT_EQ(3u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
ASSERT_EQ(7, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("4567890"), Bytes(buf, 7));
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
|
||||
// Successful reads reset the read request.
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_read_request(bio1));
|
||||
|
||||
// Test writes and reads starting in the middle of the ring buffer and
|
||||
// wrapping to front.
|
||||
EXPECT_EQ(8, BIO_write(bio1, "abcdefgh", 8));
|
||||
EXPECT_EQ(2u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
ASSERT_EQ(3, BIO_read(bio2, buf, 3));
|
||||
EXPECT_EQ(Bytes("abc"), Bytes(buf, 3));
|
||||
EXPECT_EQ(5u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
EXPECT_EQ(5, BIO_write(bio1, "ijklm___", 8));
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
ASSERT_EQ(10, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("defghijklm"), Bytes(buf, 10));
|
||||
EXPECT_EQ(10u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
|
||||
// Data may flow from both ends in parallel.
|
||||
EXPECT_EQ(5, BIO_write(bio1, "12345", 5));
|
||||
EXPECT_EQ(5, BIO_write(bio2, "67890", 5));
|
||||
ASSERT_EQ(5, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("12345"), Bytes(buf, 5));
|
||||
ASSERT_EQ(5, BIO_read(bio1, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("67890"), Bytes(buf, 5));
|
||||
|
||||
// Closing the write end causes an EOF on the read half, after draining.
|
||||
EXPECT_EQ(5, BIO_write(bio1, "12345", 5));
|
||||
EXPECT_TRUE(BIO_shutdown_wr(bio1));
|
||||
ASSERT_EQ(5, BIO_read(bio2, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("12345"), Bytes(buf, 5));
|
||||
EXPECT_EQ(0, BIO_read(bio2, buf, sizeof(buf)));
|
||||
|
||||
// A closed write end may not be written to.
|
||||
EXPECT_EQ(0u, BIO_ctrl_get_write_guarantee(bio1));
|
||||
EXPECT_EQ(-1, BIO_write(bio1, "_____", 5));
|
||||
|
||||
uint32_t err = ERR_get_error();
|
||||
EXPECT_EQ(ERR_LIB_BIO, ERR_GET_LIB(err));
|
||||
EXPECT_EQ(BIO_R_BROKEN_PIPE, ERR_GET_REASON(err));
|
||||
|
||||
// The other end is still functional.
|
||||
EXPECT_EQ(5, BIO_write(bio2, "12345", 5));
|
||||
ASSERT_EQ(5, BIO_read(bio1, buf, sizeof(buf)));
|
||||
EXPECT_EQ(Bytes("12345"), Bytes(buf, 5));
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(, BIOPairTest, testing::Values(false, true));
|
|
@ -56,6 +56,8 @@
|
|||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#if !defined(OPENSSL_TRUSTY)
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
@ -540,3 +542,5 @@ int BIO_set_nbio(BIO *bio, int on) {
|
|||
int BIO_do_connect(BIO *bio) {
|
||||
return BIO_ctrl(bio, BIO_C_DO_STATE_MACHINE, 0, NULL);
|
||||
}
|
||||
|
||||
#endif // OPENSSL_TRUSTY
|
||||
|
|
|
@ -56,6 +56,8 @@
|
|||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#if !defined(OPENSSL_TRUSTY)
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -73,6 +75,7 @@ OPENSSL_MSVC_PRAGMA(warning(pop))
|
|||
#include <openssl/mem.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "../internal.h"
|
||||
|
||||
|
||||
static int bio_fd_non_fatal_error(int err) {
|
||||
|
@ -273,3 +276,5 @@ int BIO_set_fd(BIO *bio, int fd, int close_flag) {
|
|||
int BIO_get_fd(BIO *bio, int *out_fd) {
|
||||
return BIO_ctrl(bio, BIO_C_GET_FD, 0, (char *) out_fd);
|
||||
}
|
||||
|
||||
#endif // OPENSSL_TRUSTY
|
||||
|
|
|
@ -67,12 +67,14 @@
|
|||
// sequential access of large files without extra "magic" comprise *BSD,
|
||||
// Darwin, IRIX...
|
||||
#ifndef _FILE_OFFSET_BITS
|
||||
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#if !defined(OPENSSL_TRUSTY)
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
@ -81,6 +83,8 @@
|
|||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
#include "../internal.h"
|
||||
|
||||
|
||||
#define BIO_FP_READ 0x02
|
||||
#define BIO_FP_WRITE 0x04
|
||||
|
@ -103,13 +107,12 @@ BIO *BIO_new_file(const char *filename, const char *mode) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
ret = BIO_new(BIO_s_file());
|
||||
ret = BIO_new_fp(file, BIO_CLOSE);
|
||||
if (ret == NULL) {
|
||||
fclose(file);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BIO_set_fp(ret, file, BIO_CLOSE);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -311,3 +314,5 @@ int BIO_rw_filename(BIO *bio, const char *filename) {
|
|||
return BIO_ctrl(bio, BIO_C_SET_FILENAME,
|
||||
BIO_CLOSE | BIO_FP_READ | BIO_FP_WRITE, (char *)filename);
|
||||
}
|
||||
|
||||
#endif // OPENSSL_TRUSTY
|
||||
|
|
|
@ -57,6 +57,8 @@
|
|||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#if !defined(OPENSSL_TRUSTY)
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -200,3 +202,5 @@ BIO *BIO_new_socket(int fd, int close_flag) {
|
|||
BIO_set_fd(ret, fd, close_flag);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif // OPENSSL_TRUSTY
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#if !defined(OPENSSL_TRUSTY)
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -112,3 +114,5 @@ int bio_sock_error(int sock) {
|
|||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
#endif // OPENSSL_TRUSTY
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
bn_extra
|
||||
|
||||
OBJECT
|
||||
|
||||
bn_asn1.c
|
||||
convert.c
|
||||
)
|
|
@ -77,8 +77,9 @@ int BN_bn2cbb_padded(CBB *out, size_t len, const BIGNUM *in) {
|
|||
static const char hextable[] = "0123456789abcdef";
|
||||
|
||||
char *BN_bn2hex(const BIGNUM *bn) {
|
||||
int width = bn_minimal_width(bn);
|
||||
char *buf = OPENSSL_malloc(1 /* leading '-' */ + 1 /* zero is non-empty */ +
|
||||
bn->top * BN_BYTES * 2 + 1 /* trailing NUL */);
|
||||
width * BN_BYTES * 2 + 1 /* trailing NUL */);
|
||||
if (buf == NULL) {
|
||||
OPENSSL_PUT_ERROR(BN, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
|
@ -94,7 +95,7 @@ char *BN_bn2hex(const BIGNUM *bn) {
|
|||
}
|
||||
|
||||
int z = 0;
|
||||
for (int i = bn->top - 1; i >= 0; i--) {
|
||||
for (int i = width - 1; i >= 0; i--) {
|
||||
for (int j = BN_BITS2 - 8; j >= 0; j -= 8) {
|
||||
// strip leading zeros
|
||||
int v = ((int)(bn->d[i] >> (long)j)) & 0xff;
|
||||
|
@ -153,7 +154,7 @@ static int decode_hex(BIGNUM *bn, const char *in, int in_len) {
|
|||
in_len -= todo;
|
||||
}
|
||||
assert(i <= bn->dmax);
|
||||
bn->top = i;
|
||||
bn->width = i;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -222,7 +223,7 @@ static int bn_x2bn(BIGNUM **outp, const char *in, decode_func decode, char_test_
|
|||
goto err;
|
||||
}
|
||||
|
||||
bn_correct_top(ret);
|
||||
bn_set_minimal_width(ret);
|
||||
if (!BN_is_zero(ret)) {
|
||||
ret->neg = neg;
|
||||
}
|
||||
|
@ -347,7 +348,7 @@ int BN_print(BIO *bp, const BIGNUM *a) {
|
|||
goto end;
|
||||
}
|
||||
|
||||
for (i = a->top - 1; i >= 0; i--) {
|
||||
for (i = bn_minimal_width(a) - 1; i >= 0; i--) {
|
||||
for (j = BN_BITS2 - 4; j >= 0; j -= 4) {
|
||||
// strip leading zeros
|
||||
v = ((int)(a->d[i] >> (long)j)) & 0x0f;
|
||||
|
@ -366,17 +367,13 @@ end:
|
|||
}
|
||||
|
||||
int BN_print_fp(FILE *fp, const BIGNUM *a) {
|
||||
BIO *b;
|
||||
int ret;
|
||||
|
||||
b = BIO_new(BIO_s_file());
|
||||
BIO *b = BIO_new_fp(fp, BIO_NOCLOSE);
|
||||
if (b == NULL) {
|
||||
return 0;
|
||||
}
|
||||
BIO_set_fp(b, fp, BIO_NOCLOSE);
|
||||
ret = BN_print(b, a);
|
||||
BIO_free(b);
|
||||
|
||||
int ret = BN_print(b, a);
|
||||
BIO_free(b);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -463,3 +460,11 @@ BIGNUM *BN_mpi2bn(const uint8_t *in, size_t len, BIGNUM *out) {
|
|||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
int BN_bn2binpad(const BIGNUM *in, uint8_t *out, int len) {
|
||||
if (len < 0 ||
|
||||
!BN_bn2bin_padded(out, (size_t)len, in)) {
|
||||
return -1;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
buf
|
||||
|
||||
OBJECT
|
||||
|
||||
buf.c
|
||||
)
|
97
TMessagesProj/jni/boringssl/crypto/buf/buf_test.cc
Normal file
97
TMessagesProj/jni/boringssl/crypto/buf/buf_test.cc
Normal file
|
@ -0,0 +1,97 @@
|
|||
/* Copyright (c) 2017, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <openssl/buf.h>
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
|
||||
TEST(BufTest, Basic) {
|
||||
bssl::UniquePtr<BUF_MEM> buf(BUF_MEM_new());
|
||||
ASSERT_TRUE(buf);
|
||||
EXPECT_EQ(0u, buf->length);
|
||||
|
||||
// Use BUF_MEM_reserve to increase buf->max.
|
||||
ASSERT_TRUE(BUF_MEM_reserve(buf.get(), 200));
|
||||
EXPECT_GE(buf->max, 200u);
|
||||
EXPECT_EQ(0u, buf->length);
|
||||
|
||||
// BUF_MEM_reserve with a smaller cap is a no-op.
|
||||
size_t old_max = buf->max;
|
||||
ASSERT_TRUE(BUF_MEM_reserve(buf.get(), 100));
|
||||
EXPECT_EQ(old_max, buf->max);
|
||||
EXPECT_EQ(0u, buf->length);
|
||||
|
||||
// BUF_MEM_grow can increase the length without reallocating.
|
||||
ASSERT_EQ(100u, BUF_MEM_grow(buf.get(), 100));
|
||||
EXPECT_EQ(100u, buf->length);
|
||||
EXPECT_EQ(old_max, buf->max);
|
||||
memset(buf->data, 'A', buf->length);
|
||||
|
||||
// If BUF_MEM_reserve reallocates, it preserves the contents.
|
||||
ASSERT_TRUE(BUF_MEM_reserve(buf.get(), old_max + 1));
|
||||
ASSERT_GE(buf->max, old_max + 1);
|
||||
EXPECT_EQ(100u, buf->length);
|
||||
for (size_t i = 0; i < 100; i++) {
|
||||
EXPECT_EQ('A', buf->data[i]);
|
||||
}
|
||||
|
||||
// BUF_MEM_grow should zero everything beyond buf->length.
|
||||
memset(buf->data, 'B', buf->max);
|
||||
ASSERT_EQ(150u, BUF_MEM_grow(buf.get(), 150));
|
||||
EXPECT_EQ(150u, buf->length);
|
||||
for (size_t i = 0; i < 100; i++) {
|
||||
EXPECT_EQ('B', buf->data[i]);
|
||||
}
|
||||
for (size_t i = 100; i < 150; i++) {
|
||||
EXPECT_EQ(0, buf->data[i]);
|
||||
}
|
||||
|
||||
// BUF_MEM_grow can rellocate if necessary.
|
||||
size_t new_len = buf->max + 1;
|
||||
ASSERT_EQ(new_len, BUF_MEM_grow(buf.get(), new_len));
|
||||
EXPECT_GE(buf->max, new_len);
|
||||
EXPECT_EQ(new_len, buf->length);
|
||||
for (size_t i = 0; i < 100; i++) {
|
||||
EXPECT_EQ('B', buf->data[i]);
|
||||
}
|
||||
for (size_t i = 100; i < new_len; i++) {
|
||||
EXPECT_EQ(0, buf->data[i]);
|
||||
}
|
||||
|
||||
// BUF_MEM_grow can shink.
|
||||
ASSERT_EQ(50u, BUF_MEM_grow(buf.get(), 50));
|
||||
EXPECT_EQ(50u, buf->length);
|
||||
for (size_t i = 0; i < 50; i++) {
|
||||
EXPECT_EQ('B', buf->data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(BufTest, Append) {
|
||||
bssl::UniquePtr<BUF_MEM> buf(BUF_MEM_new());
|
||||
ASSERT_TRUE(buf);
|
||||
|
||||
ASSERT_TRUE(BUF_MEM_append(buf.get(), nullptr, 0));
|
||||
ASSERT_TRUE(BUF_MEM_append(buf.get(), "hello ", 6));
|
||||
ASSERT_TRUE(BUF_MEM_append(buf.get(), nullptr, 0));
|
||||
ASSERT_TRUE(BUF_MEM_append(buf.get(), "world", 5));
|
||||
std::string str(128, 'A');
|
||||
ASSERT_TRUE(BUF_MEM_append(buf.get(), str.data(), str.size()));
|
||||
|
||||
EXPECT_EQ("hello world" + str, std::string(buf->data, buf->length));
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
add_library(
|
||||
bytestring
|
||||
|
||||
OBJECT
|
||||
|
||||
asn1_compat.c
|
||||
ber.c
|
||||
cbs.c
|
||||
cbb.c
|
||||
)
|
|
@ -189,7 +189,7 @@ static int cbs_convert_ber(CBS *in, CBB *out, unsigned string_tag,
|
|||
return looking_for_eoc == 0;
|
||||
}
|
||||
|
||||
int CBS_asn1_ber_to_der(CBS *in, uint8_t **out, size_t *out_len) {
|
||||
int CBS_asn1_ber_to_der(CBS *in, CBS *out, uint8_t **out_storage) {
|
||||
CBB cbb;
|
||||
|
||||
// First, do a quick walk to find any indefinite-length elements. Most of the
|
||||
|
@ -200,18 +200,22 @@ int CBS_asn1_ber_to_der(CBS *in, uint8_t **out, size_t *out_len) {
|
|||
}
|
||||
|
||||
if (!conversion_needed) {
|
||||
*out = NULL;
|
||||
*out_len = 0;
|
||||
if (!CBS_get_any_asn1_element(in, out, NULL, NULL)) {
|
||||
return 0;
|
||||
}
|
||||
*out_storage = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
size_t len;
|
||||
if (!CBB_init(&cbb, CBS_len(in)) ||
|
||||
!cbs_convert_ber(in, &cbb, 0, 0, 0) ||
|
||||
!CBB_finish(&cbb, out, out_len)) {
|
||||
!CBB_finish(&cbb, out_storage, &len)) {
|
||||
CBB_cleanup(&cbb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
CBS_init(out, *out_storage, len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
1273
TMessagesProj/jni/boringssl/crypto/bytestring/bytestring_test.cc
Normal file
1273
TMessagesProj/jni/boringssl/crypto/bytestring/bytestring_test.cc
Normal file
File diff suppressed because it is too large
Load diff
|
@ -44,7 +44,7 @@ static int cbb_init(CBB *cbb, uint8_t *buf, size_t cap) {
|
|||
base->error = 0;
|
||||
|
||||
cbb->base = base;
|
||||
cbb->is_top_level = 1;
|
||||
cbb->is_child = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -76,11 +76,14 @@ int CBB_init_fixed(CBB *cbb, uint8_t *buf, size_t len) {
|
|||
}
|
||||
|
||||
void CBB_cleanup(CBB *cbb) {
|
||||
if (cbb->base) {
|
||||
// Only top-level |CBB|s are cleaned up. Child |CBB|s are non-owning. They
|
||||
// are implicitly discarded when the parent is flushed or cleaned up.
|
||||
assert(cbb->is_top_level);
|
||||
// Child |CBB|s are non-owning. They are implicitly discarded and should not
|
||||
// be used with |CBB_cleanup| or |ScopedCBB|.
|
||||
assert(!cbb->is_child);
|
||||
if (cbb->is_child) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cbb->base) {
|
||||
if (cbb->base->can_resize) {
|
||||
OPENSSL_free(cbb->base->buf);
|
||||
}
|
||||
|
@ -144,7 +147,7 @@ static int cbb_buffer_add(struct cbb_buffer_st *base, uint8_t **out,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int cbb_buffer_add_u(struct cbb_buffer_st *base, uint32_t v,
|
||||
static int cbb_buffer_add_u(struct cbb_buffer_st *base, uint64_t v,
|
||||
size_t len_len) {
|
||||
if (len_len == 0) {
|
||||
return 1;
|
||||
|
@ -169,7 +172,7 @@ static int cbb_buffer_add_u(struct cbb_buffer_st *base, uint32_t v,
|
|||
}
|
||||
|
||||
int CBB_finish(CBB *cbb, uint8_t **out_data, size_t *out_len) {
|
||||
if (!cbb->is_top_level) {
|
||||
if (cbb->is_child) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -310,6 +313,7 @@ static int cbb_add_length_prefixed(CBB *cbb, CBB *out_contents,
|
|||
OPENSSL_memset(prefix_bytes, 0, len_len);
|
||||
OPENSSL_memset(out_contents, 0, sizeof(CBB));
|
||||
out_contents->base = cbb->base;
|
||||
out_contents->is_child = 1;
|
||||
cbb->child = out_contents;
|
||||
cbb->child->offset = offset;
|
||||
cbb->child->pending_len_len = len_len;
|
||||
|
@ -381,6 +385,7 @@ int CBB_add_asn1(CBB *cbb, CBB *out_contents, unsigned tag) {
|
|||
|
||||
OPENSSL_memset(out_contents, 0, sizeof(CBB));
|
||||
out_contents->base = cbb->base;
|
||||
out_contents->is_child = 1;
|
||||
cbb->child = out_contents;
|
||||
cbb->child->offset = offset;
|
||||
cbb->child->pending_len_len = 1;
|
||||
|
@ -459,6 +464,13 @@ int CBB_add_u32(CBB *cbb, uint32_t value) {
|
|||
return cbb_buffer_add_u(cbb->base, value, 4);
|
||||
}
|
||||
|
||||
int CBB_add_u64(CBB *cbb, uint64_t value) {
|
||||
if (!CBB_flush(cbb)) {
|
||||
return 0;
|
||||
}
|
||||
return cbb_buffer_add_u(cbb->base, value, 8);
|
||||
}
|
||||
|
||||
void CBB_discard_child(CBB *cbb) {
|
||||
if (cbb->child == NULL) {
|
||||
return;
|
||||
|
@ -505,6 +517,28 @@ int CBB_add_asn1_uint64(CBB *cbb, uint64_t value) {
|
|||
return CBB_flush(cbb);
|
||||
}
|
||||
|
||||
int CBB_add_asn1_octet_string(CBB *cbb, const uint8_t *data, size_t data_len) {
|
||||
CBB child;
|
||||
if (!CBB_add_asn1(cbb, &child, CBS_ASN1_OCTETSTRING) ||
|
||||
!CBB_add_bytes(&child, data, data_len) ||
|
||||
!CBB_flush(cbb)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CBB_add_asn1_bool(CBB *cbb, int value) {
|
||||
CBB child;
|
||||
if (!CBB_add_asn1(cbb, &child, CBS_ASN1_BOOLEAN) ||
|
||||
!CBB_add_u8(&child, value != 0 ? 0xff : 0) ||
|
||||
!CBB_flush(cbb)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
// parse_dotted_decimal parses one decimal component from |cbs|, where |cbs| is
|
||||
// an OID literal, e.g., "1.2.840.113554.4.1.72585". It consumes both the
|
||||
// component and the dot, so |cbs| may be passed into the function again for the
|
||||
|
|
|
@ -12,10 +12,6 @@
|
|||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#if !defined(__STDC_FORMAT_MACROS)
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#endif
|
||||
|
||||
#include <openssl/buf.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/bytestring.h>
|
||||
|
@ -92,8 +88,8 @@ int CBS_mem_equal(const CBS *cbs, const uint8_t *data, size_t len) {
|
|||
return CRYPTO_memcmp(cbs->data, data, len) == 0;
|
||||
}
|
||||
|
||||
static int cbs_get_u(CBS *cbs, uint32_t *out, size_t len) {
|
||||
uint32_t result = 0;
|
||||
static int cbs_get_u(CBS *cbs, uint64_t *out, size_t len) {
|
||||
uint64_t result = 0;
|
||||
const uint8_t *data;
|
||||
|
||||
if (!cbs_get(cbs, &data, len)) {
|
||||
|
@ -117,7 +113,7 @@ int CBS_get_u8(CBS *cbs, uint8_t *out) {
|
|||
}
|
||||
|
||||
int CBS_get_u16(CBS *cbs, uint16_t *out) {
|
||||
uint32_t v;
|
||||
uint64_t v;
|
||||
if (!cbs_get_u(cbs, &v, 2)) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -126,11 +122,25 @@ int CBS_get_u16(CBS *cbs, uint16_t *out) {
|
|||
}
|
||||
|
||||
int CBS_get_u24(CBS *cbs, uint32_t *out) {
|
||||
return cbs_get_u(cbs, out, 3);
|
||||
uint64_t v;
|
||||
if (!cbs_get_u(cbs, &v, 3)) {
|
||||
return 0;
|
||||
}
|
||||
*out = v;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CBS_get_u32(CBS *cbs, uint32_t *out) {
|
||||
return cbs_get_u(cbs, out, 4);
|
||||
uint64_t v;
|
||||
if (!cbs_get_u(cbs, &v, 4)) {
|
||||
return 0;
|
||||
}
|
||||
*out = v;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CBS_get_u64(CBS *cbs, uint64_t *out) {
|
||||
return cbs_get_u(cbs, out, 8);
|
||||
}
|
||||
|
||||
int CBS_get_last_u8(CBS *cbs, uint8_t *out) {
|
||||
|
@ -161,10 +171,13 @@ int CBS_copy_bytes(CBS *cbs, uint8_t *out, size_t len) {
|
|||
}
|
||||
|
||||
static int cbs_get_length_prefixed(CBS *cbs, CBS *out, size_t len_len) {
|
||||
uint32_t len;
|
||||
uint64_t len;
|
||||
if (!cbs_get_u(cbs, &len, len_len)) {
|
||||
return 0;
|
||||
}
|
||||
// If |len_len| <= 3 then we know that |len| will fit into a |size_t|, even on
|
||||
// 32-bit systems.
|
||||
assert(len_len <= 3);
|
||||
return CBS_get_bytes(cbs, out, len);
|
||||
}
|
||||
|
||||
|
@ -278,7 +291,7 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, unsigned *out_tag,
|
|||
// encode the number of subsequent octets used to encode the length (ITU-T
|
||||
// X.690 clause 8.1.3.5.b).
|
||||
const size_t num_bytes = length_byte & 0x7f;
|
||||
uint32_t len32;
|
||||
uint64_t len64;
|
||||
|
||||
if (ber_ok && (tag & CBS_ASN1_CONSTRUCTED) != 0 && num_bytes == 0) {
|
||||
// indefinite length
|
||||
|
@ -294,20 +307,20 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, unsigned *out_tag,
|
|||
if (num_bytes == 0 || num_bytes > 4) {
|
||||
return 0;
|
||||
}
|
||||
if (!cbs_get_u(&header, &len32, num_bytes)) {
|
||||
if (!cbs_get_u(&header, &len64, num_bytes)) {
|
||||
return 0;
|
||||
}
|
||||
// ITU-T X.690 section 10.1 (DER length forms) requires encoding the length
|
||||
// with the minimum number of octets.
|
||||
if (len32 < 128) {
|
||||
if (len64 < 128) {
|
||||
// Length should have used short-form encoding.
|
||||
return 0;
|
||||
}
|
||||
if ((len32 >> ((num_bytes-1)*8)) == 0) {
|
||||
if ((len64 >> ((num_bytes-1)*8)) == 0) {
|
||||
// Length should have been at least one byte shorter.
|
||||
return 0;
|
||||
}
|
||||
len = len32;
|
||||
len = len64;
|
||||
if (len + header_len + num_bytes < len) {
|
||||
// Overflow.
|
||||
return 0;
|
||||
|
@ -425,6 +438,22 @@ int CBS_get_asn1_uint64(CBS *cbs, uint64_t *out) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int CBS_get_asn1_bool(CBS *cbs, int *out) {
|
||||
CBS bytes;
|
||||
if (!CBS_get_asn1(cbs, &bytes, CBS_ASN1_BOOLEAN) ||
|
||||
CBS_len(&bytes) != 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const uint8_t value = *CBS_data(&bytes);
|
||||
if (value != 0 && value != 0xff) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out = !!value;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int CBS_get_optional_asn1(CBS *cbs, CBS *out, int *out_present, unsigned tag) {
|
||||
int present = 0;
|
||||
|
||||
|
@ -450,6 +479,7 @@ int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out, int *out_present,
|
|||
return 0;
|
||||
}
|
||||
if (present) {
|
||||
assert(out);
|
||||
if (!CBS_get_asn1(&child, out, CBS_ASN1_OCTETSTRING) ||
|
||||
CBS_len(&child) != 0) {
|
||||
return 0;
|
||||
|
|
|
@ -24,12 +24,10 @@ extern "C" {
|
|||
|
||||
// CBS_asn1_ber_to_der reads a BER element from |in|. If it finds
|
||||
// indefinite-length elements or constructed strings then it converts the BER
|
||||
// data to DER and sets |*out| and |*out_length| to describe a malloced buffer
|
||||
// containing the DER data. Additionally, |*in| will be advanced over the BER
|
||||
// element.
|
||||
//
|
||||
// If it doesn't find any indefinite-length elements or constructed strings then
|
||||
// it sets |*out| to NULL and |*in| is unmodified.
|
||||
// data to DER, sets |out| to the converted contents and |*out_storage| to a
|
||||
// buffer which the caller must release with |OPENSSL_free|. Otherwise, it sets
|
||||
// |out| to the original BER element in |in| and |*out_storage| to NULL.
|
||||
// Additionally, |*in| will be advanced over the BER element.
|
||||
//
|
||||
// This function should successfully process any valid BER input, however it
|
||||
// will not convert all of BER's deviations from DER. BER is ambiguous between
|
||||
|
@ -39,7 +37,8 @@ extern "C" {
|
|||
// must also account for BER variations in the contents of a primitive.
|
||||
//
|
||||
// It returns one on success and zero otherwise.
|
||||
OPENSSL_EXPORT int CBS_asn1_ber_to_der(CBS *in, uint8_t **out, size_t *out_len);
|
||||
OPENSSL_EXPORT int CBS_asn1_ber_to_der(CBS *in, CBS *out,
|
||||
uint8_t **out_storage);
|
||||
|
||||
// CBS_get_asn1_implicit_string parses a BER string of primitive type
|
||||
// |inner_tag| implicitly-tagged with |outer_tag|. It sets |out| to the
|
||||
|
@ -68,6 +67,28 @@ OPENSSL_EXPORT int CBS_get_asn1_implicit_string(CBS *in, CBS *out,
|
|||
int CBB_finish_i2d(CBB *cbb, uint8_t **outp);
|
||||
|
||||
|
||||
// Unicode utilities.
|
||||
|
||||
// The following functions read one Unicode code point from |cbs| with the
|
||||
// corresponding encoding and store it in |*out|. They return one on success and
|
||||
// zero on error.
|
||||
OPENSSL_EXPORT int cbs_get_utf8(CBS *cbs, uint32_t *out);
|
||||
OPENSSL_EXPORT int cbs_get_latin1(CBS *cbs, uint32_t *out);
|
||||
OPENSSL_EXPORT int cbs_get_ucs2_be(CBS *cbs, uint32_t *out);
|
||||
OPENSSL_EXPORT int cbs_get_utf32_be(CBS *cbs, uint32_t *out);
|
||||
|
||||
// cbb_get_utf8_len returns the number of bytes needed to represent |u| in
|
||||
// UTF-8.
|
||||
OPENSSL_EXPORT size_t cbb_get_utf8_len(uint32_t u);
|
||||
|
||||
// The following functions encode |u| to |cbb| with the corresponding
|
||||
// encoding. They return one on success and zero on error.
|
||||
OPENSSL_EXPORT int cbb_add_utf8(CBB *cbb, uint32_t u);
|
||||
OPENSSL_EXPORT int cbb_add_latin1(CBB *cbb, uint32_t u);
|
||||
OPENSSL_EXPORT int cbb_add_ucs2_be(CBB *cbb, uint32_t u);
|
||||
OPENSSL_EXPORT int cbb_add_utf32_be(CBB *cbb, uint32_t u);
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} // extern C
|
||||
#endif
|
||||
|
|
155
TMessagesProj/jni/boringssl/crypto/bytestring/unicode.c
Normal file
155
TMessagesProj/jni/boringssl/crypto/bytestring/unicode.c
Normal file
|
@ -0,0 +1,155 @@
|
|||
/* Copyright (c) 2018, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <openssl/bytestring.h>
|
||||
|
||||
#include "internal.h"
|
||||
|
||||
|
||||
static int is_valid_code_point(uint32_t v) {
|
||||
// References in the following are to Unicode 9.0.0.
|
||||
if (// The Unicode space runs from zero to 0x10ffff (3.4 D9).
|
||||
v > 0x10ffff ||
|
||||
// Values 0x...fffe, 0x...ffff, and 0xfdd0-0xfdef are permanently reserved
|
||||
// (3.4 D14)
|
||||
(v & 0xfffe) == 0xfffe ||
|
||||
(v >= 0xfdd0 && v <= 0xfdef) ||
|
||||
// Surrogate code points are invalid (3.2 C1).
|
||||
(v >= 0xd800 && v <= 0xdfff)) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
// BOTTOM_BITS returns a byte with the bottom |n| bits set.
|
||||
#define BOTTOM_BITS(n) (uint8_t)((1u << (n)) - 1)
|
||||
|
||||
// TOP_BITS returns a byte with the top |n| bits set.
|
||||
#define TOP_BITS(n) ((uint8_t)~BOTTOM_BITS(8 - (n)))
|
||||
|
||||
int cbs_get_utf8(CBS *cbs, uint32_t *out) {
|
||||
uint8_t c;
|
||||
if (!CBS_get_u8(cbs, &c)) {
|
||||
return 0;
|
||||
}
|
||||
if (c <= 0x7f) {
|
||||
*out = c;
|
||||
return 1;
|
||||
}
|
||||
uint32_t v, lower_bound;
|
||||
size_t len;
|
||||
if ((c & TOP_BITS(3)) == TOP_BITS(2)) {
|
||||
v = c & BOTTOM_BITS(5);
|
||||
len = 1;
|
||||
lower_bound = 0x80;
|
||||
} else if ((c & TOP_BITS(4)) == TOP_BITS(3)) {
|
||||
v = c & BOTTOM_BITS(4);
|
||||
len = 2;
|
||||
lower_bound = 0x800;
|
||||
} else if ((c & TOP_BITS(5)) == TOP_BITS(4)) {
|
||||
v = c & BOTTOM_BITS(3);
|
||||
len = 3;
|
||||
lower_bound = 0x10000;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
if (!CBS_get_u8(cbs, &c) ||
|
||||
(c & TOP_BITS(2)) != TOP_BITS(1)) {
|
||||
return 0;
|
||||
}
|
||||
v <<= 6;
|
||||
v |= c & BOTTOM_BITS(6);
|
||||
}
|
||||
if (!is_valid_code_point(v) ||
|
||||
v < lower_bound) {
|
||||
return 0;
|
||||
}
|
||||
*out = v;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cbs_get_latin1(CBS *cbs, uint32_t *out) {
|
||||
uint8_t c;
|
||||
if (!CBS_get_u8(cbs, &c)) {
|
||||
return 0;
|
||||
}
|
||||
*out = c;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cbs_get_ucs2_be(CBS *cbs, uint32_t *out) {
|
||||
// Note UCS-2 (used by BMPString) does not support surrogates.
|
||||
uint16_t c;
|
||||
if (!CBS_get_u16(cbs, &c) ||
|
||||
!is_valid_code_point(c)) {
|
||||
return 0;
|
||||
}
|
||||
*out = c;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int cbs_get_utf32_be(CBS *cbs, uint32_t *out) {
|
||||
return CBS_get_u32(cbs, out) && is_valid_code_point(*out);
|
||||
}
|
||||
|
||||
size_t cbb_get_utf8_len(uint32_t u) {
|
||||
if (u <= 0x7f) {
|
||||
return 1;
|
||||
}
|
||||
if (u <= 0x7ff) {
|
||||
return 2;
|
||||
}
|
||||
if (u <= 0xffff) {
|
||||
return 3;
|
||||
}
|
||||
return 4;
|
||||
}
|
||||
|
||||
int cbb_add_utf8(CBB *cbb, uint32_t u) {
|
||||
if (!is_valid_code_point(u)) {
|
||||
return 0;
|
||||
}
|
||||
if (u <= 0x7f) {
|
||||
return CBB_add_u8(cbb, (uint8_t)u);
|
||||
}
|
||||
if (u <= 0x7ff) {
|
||||
return CBB_add_u8(cbb, TOP_BITS(2) | (u >> 6)) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | (u & BOTTOM_BITS(6)));
|
||||
}
|
||||
if (u <= 0xffff) {
|
||||
return CBB_add_u8(cbb, TOP_BITS(3) | (u >> 12)) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | ((u >> 6) & BOTTOM_BITS(6))) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | (u & BOTTOM_BITS(6)));
|
||||
}
|
||||
if (u <= 0x10ffff) {
|
||||
return CBB_add_u8(cbb, TOP_BITS(4) | (u >> 18)) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | ((u >> 12) & BOTTOM_BITS(6))) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | ((u >> 6) & BOTTOM_BITS(6))) &&
|
||||
CBB_add_u8(cbb, TOP_BITS(1) | (u & BOTTOM_BITS(6)));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cbb_add_latin1(CBB *cbb, uint32_t u) {
|
||||
return u <= 0xff && CBB_add_u8(cbb, (uint8_t)u);
|
||||
}
|
||||
|
||||
int cbb_add_ucs2_be(CBB *cbb, uint32_t u) {
|
||||
return u <= 0xffff && is_valid_code_point(u) && CBB_add_u16(cbb, (uint16_t)u);
|
||||
}
|
||||
|
||||
int cbb_add_utf32_be(CBB *cbb, uint32_t u) {
|
||||
return is_valid_code_point(u) && CBB_add_u32(cbb, u);
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
if (${ARCH} STREQUAL "arm")
|
||||
set(
|
||||
CHACHA_ARCH_SOURCES
|
||||
|
||||
chacha-armv4.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if (${ARCH} STREQUAL "aarch64")
|
||||
set(
|
||||
CHACHA_ARCH_SOURCES
|
||||
|
||||
chacha-armv8.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if (${ARCH} STREQUAL "x86")
|
||||
set(
|
||||
CHACHA_ARCH_SOURCES
|
||||
|
||||
chacha-x86.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if (${ARCH} STREQUAL "x86_64")
|
||||
set(
|
||||
CHACHA_ARCH_SOURCES
|
||||
|
||||
chacha-x86_64.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(
|
||||
chacha
|
||||
|
||||
OBJECT
|
||||
|
||||
chacha.c
|
||||
|
||||
${CHACHA_ARCH_SOURCES}
|
||||
)
|
||||
|
||||
perlasm(chacha-armv4.${ASM_EXT} asm/chacha-armv4.pl)
|
||||
perlasm(chacha-armv8.${ASM_EXT} asm/chacha-armv8.pl)
|
||||
perlasm(chacha-x86.${ASM_EXT} asm/chacha-x86.pl)
|
||||
perlasm(chacha-x86_64.${ASM_EXT} asm/chacha-x86_64.pl)
|
|
@ -44,9 +44,11 @@ if ($flavour && $flavour ne "void") {
|
|||
( $xlate="${dir}../../perlasm/arm-xlate.pl" and -f $xlate) or
|
||||
die "can't locate arm-xlate.pl";
|
||||
|
||||
open STDOUT,"| \"$^X\" $xlate $flavour $output";
|
||||
open OUT,"| \"$^X\" $xlate $flavour $output";
|
||||
*STDOUT=*OUT;
|
||||
} else {
|
||||
open STDOUT,">$output";
|
||||
open OUT,">$output";
|
||||
*STDOUT=*OUT;
|
||||
}
|
||||
|
||||
sub AUTOLOAD() # thunk [simplified] x86-style perlasm
|
||||
|
@ -1161,4 +1163,4 @@ foreach (split("\n",$code)) {
|
|||
|
||||
print $_,"\n";
|
||||
}
|
||||
close STDOUT;
|
||||
close STDOUT or die "error closing STDOUT";
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
# Denver 4.50/+82% 2.63 2.67(*)
|
||||
# X-Gene 9.50/+46% 8.82 8.89(*)
|
||||
# Mongoose 8.00/+44% 3.64 3.25
|
||||
# Kryo 8.17/+50% 4.83 4.65
|
||||
#
|
||||
# (*) it's expected that doubling interleave factor doesn't help
|
||||
# all processors, only those with higher NEON latency and
|
||||
|
@ -121,37 +122,32 @@ my ($a3,$b3,$c3,$d3)=map(($_&~3)+(($_+1)&3),($a2,$b2,$c2,$d2));
|
|||
$code.=<<___;
|
||||
#include <openssl/arm_arch.h>
|
||||
|
||||
.text
|
||||
|
||||
.extern OPENSSL_armcap_P
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 5
|
||||
.Lsigma:
|
||||
.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral
|
||||
.Lone:
|
||||
.long 1,0,0,0
|
||||
.LOPENSSL_armcap_P:
|
||||
#ifdef __ILP32__
|
||||
.long OPENSSL_armcap_P-.
|
||||
#else
|
||||
.quad OPENSSL_armcap_P-.
|
||||
#endif
|
||||
.asciz "ChaCha20 for ARMv8, CRYPTOGAMS by <appro\@openssl.org>"
|
||||
|
||||
.text
|
||||
|
||||
.globl ChaCha20_ctr32
|
||||
.type ChaCha20_ctr32,%function
|
||||
.align 5
|
||||
ChaCha20_ctr32:
|
||||
cbz $len,.Labort
|
||||
adr @x[0],.LOPENSSL_armcap_P
|
||||
#if __has_feature(hwaddress_sanitizer) && __clang_major__ >= 10
|
||||
adrp @x[0],:pg_hi21_nc:OPENSSL_armcap_P
|
||||
#else
|
||||
adrp @x[0],:pg_hi21:OPENSSL_armcap_P
|
||||
#endif
|
||||
cmp $len,#192
|
||||
b.lo .Lshort
|
||||
#ifdef __ILP32__
|
||||
ldrsw @x[1],[@x[0]]
|
||||
#else
|
||||
ldr @x[1],[@x[0]]
|
||||
#endif
|
||||
ldr w17,[@x[1],@x[0]]
|
||||
ldr w17,[@x[0],:lo12:OPENSSL_armcap_P]
|
||||
tst w17,#ARMV7_NEON
|
||||
b.ne ChaCha20_neon
|
||||
|
||||
|
@ -159,7 +155,8 @@ ChaCha20_ctr32:
|
|||
stp x29,x30,[sp,#-96]!
|
||||
add x29,sp,#0
|
||||
|
||||
adr @x[0],.Lsigma
|
||||
adrp @x[0],:pg_hi21:.Lsigma
|
||||
add @x[0],@x[0],:lo12:.Lsigma
|
||||
stp x19,x20,[sp,#16]
|
||||
stp x21,x22,[sp,#32]
|
||||
stp x23,x24,[sp,#48]
|
||||
|
@ -379,7 +376,8 @@ ChaCha20_neon:
|
|||
stp x29,x30,[sp,#-96]!
|
||||
add x29,sp,#0
|
||||
|
||||
adr @x[0],.Lsigma
|
||||
adrp @x[0],:pg_hi21:.Lsigma
|
||||
add @x[0],@x[0],:lo12:.Lsigma
|
||||
stp x19,x20,[sp,#16]
|
||||
stp x21,x22,[sp,#32]
|
||||
stp x23,x24,[sp,#48]
|
||||
|
@ -698,7 +696,8 @@ ChaCha20_512_neon:
|
|||
stp x29,x30,[sp,#-96]!
|
||||
add x29,sp,#0
|
||||
|
||||
adr @x[0],.Lsigma
|
||||
adrp @x[0],:pg_hi21:.Lsigma
|
||||
add @x[0],@x[0],:lo12:.Lsigma
|
||||
stp x19,x20,[sp,#16]
|
||||
stp x21,x22,[sp,#32]
|
||||
stp x23,x24,[sp,#48]
|
||||
|
@ -1132,4 +1131,4 @@ foreach (split("\n",$code)) {
|
|||
|
||||
print $_,"\n";
|
||||
}
|
||||
close STDOUT; # flush
|
||||
close STDOUT or die "error closing STDOUT"; # flush
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
#!/usr/bin/env perl
|
||||
#! /usr/bin/env perl
|
||||
# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
#
|
||||
# ====================================================================
|
||||
# Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
|
||||
|
@ -762,4 +769,4 @@ sub SSSE3ROUND { # critical path is 20 "SIMD ticks" per round
|
|||
|
||||
&asm_finish();
|
||||
|
||||
close STDOUT;
|
||||
close STDOUT or die "error closing STDOUT";
|
||||
|
|
|
@ -228,6 +228,7 @@ $code.=<<___;
|
|||
.type ChaCha20_ctr32,\@function,5
|
||||
.align 64
|
||||
ChaCha20_ctr32:
|
||||
.cfi_startproc
|
||||
cmp \$0,$len
|
||||
je .Lno_data
|
||||
mov OPENSSL_ia32cap_P+4(%rip),%r10
|
||||
|
@ -241,12 +242,19 @@ $code.=<<___;
|
|||
jnz .LChaCha20_ssse3
|
||||
|
||||
push %rbx
|
||||
.cfi_push rbx
|
||||
push %rbp
|
||||
.cfi_push rbp
|
||||
push %r12
|
||||
.cfi_push r12
|
||||
push %r13
|
||||
.cfi_push r13
|
||||
push %r14
|
||||
.cfi_push r14
|
||||
push %r15
|
||||
.cfi_push r15
|
||||
sub \$64+24,%rsp
|
||||
.cfi_adjust_cfa_offset `64+24`
|
||||
.Lctr32_body:
|
||||
|
||||
#movdqa .Lsigma(%rip),%xmm0
|
||||
|
@ -388,14 +396,22 @@ $code.=<<___;
|
|||
.Ldone:
|
||||
lea 64+24+48(%rsp),%rsi
|
||||
mov -48(%rsi),%r15
|
||||
.cfi_restore r15
|
||||
mov -40(%rsi),%r14
|
||||
.cfi_restore r14
|
||||
mov -32(%rsi),%r13
|
||||
.cfi_restore r13
|
||||
mov -24(%rsi),%r12
|
||||
.cfi_restore r12
|
||||
mov -16(%rsi),%rbp
|
||||
.cfi_restore rbp
|
||||
mov -8(%rsi),%rbx
|
||||
.cfi_restore rbx
|
||||
lea (%rsi),%rsp
|
||||
.cfi_adjust_cfa_offset `-64-24-48`
|
||||
.Lno_data:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_ctr32,.-ChaCha20_ctr32
|
||||
___
|
||||
|
||||
|
@ -435,7 +451,9 @@ $code.=<<___;
|
|||
.align 32
|
||||
ChaCha20_ssse3:
|
||||
.LChaCha20_ssse3:
|
||||
.cfi_startproc
|
||||
mov %rsp,%r9 # frame pointer
|
||||
.cfi_def_cfa_register r9
|
||||
___
|
||||
$code.=<<___;
|
||||
cmp \$128,$len # we might throw away some data,
|
||||
|
@ -547,8 +565,10 @@ $code.=<<___ if ($win64);
|
|||
___
|
||||
$code.=<<___;
|
||||
lea (%r9),%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
.Lssse3_epilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_ssse3,.-ChaCha20_ssse3
|
||||
___
|
||||
}
|
||||
|
@ -691,7 +711,9 @@ $code.=<<___;
|
|||
.align 32
|
||||
ChaCha20_4x:
|
||||
.LChaCha20_4x:
|
||||
.cfi_startproc
|
||||
mov %rsp,%r9 # frame pointer
|
||||
.cfi_def_cfa_register r9
|
||||
mov %r10,%r11
|
||||
___
|
||||
$code.=<<___ if ($avx>1);
|
||||
|
@ -1131,8 +1153,10 @@ $code.=<<___ if ($win64);
|
|||
___
|
||||
$code.=<<___;
|
||||
lea (%r9),%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
.L4x_epilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_4x,.-ChaCha20_4x
|
||||
___
|
||||
}
|
||||
|
@ -1266,7 +1290,9 @@ $code.=<<___;
|
|||
.align 32
|
||||
ChaCha20_8x:
|
||||
.LChaCha20_8x:
|
||||
.cfi_startproc
|
||||
mov %rsp,%r9 # frame register
|
||||
.cfi_def_cfa_register r9
|
||||
sub \$0x280+$xframe,%rsp
|
||||
and \$-32,%rsp
|
||||
___
|
||||
|
@ -1772,8 +1798,10 @@ $code.=<<___ if ($win64);
|
|||
___
|
||||
$code.=<<___;
|
||||
lea (%r9),%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
.L8x_epilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_8x,.-ChaCha20_8x
|
||||
___
|
||||
}
|
||||
|
@ -1811,7 +1839,9 @@ $code.=<<___;
|
|||
.align 32
|
||||
ChaCha20_avx512:
|
||||
.LChaCha20_avx512:
|
||||
.cfi_startproc
|
||||
mov %rsp,%r9 # frame pointer
|
||||
.cfi_def_cfa_register r9
|
||||
cmp \$512,$len
|
||||
ja .LChaCha20_16x
|
||||
|
||||
|
@ -1991,8 +2021,10 @@ $code.=<<___ if ($win64);
|
|||
___
|
||||
$code.=<<___;
|
||||
lea (%r9),%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
.Lavx512_epilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_avx512,.-ChaCha20_avx512
|
||||
___
|
||||
}
|
||||
|
@ -2075,7 +2107,9 @@ $code.=<<___;
|
|||
.align 32
|
||||
ChaCha20_16x:
|
||||
.LChaCha20_16x:
|
||||
.cfi_startproc
|
||||
mov %rsp,%r9 # frame register
|
||||
.cfi_def_cfa_register r9
|
||||
sub \$64+$xframe,%rsp
|
||||
and \$-64,%rsp
|
||||
___
|
||||
|
@ -2493,8 +2527,10 @@ $code.=<<___ if ($win64);
|
|||
___
|
||||
$code.=<<___;
|
||||
lea (%r9),%rsp
|
||||
.cfi_def_cfa_register rsp
|
||||
.L16x_epilogue:
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ChaCha20_16x,.-ChaCha20_16x
|
||||
___
|
||||
}
|
||||
|
@ -2746,4 +2782,4 @@ foreach (split("\n",$code)) {
|
|||
print $_,"\n";
|
||||
}
|
||||
|
||||
close STDOUT;
|
||||
close STDOUT or die "error closing STDOUT";
|
||||
|
|
|
@ -22,19 +22,49 @@
|
|||
#include <openssl/cpu.h>
|
||||
|
||||
#include "../internal.h"
|
||||
#include "internal.h"
|
||||
|
||||
|
||||
#define U8TO32_LITTLE(p) \
|
||||
(((uint32_t)((p)[0])) | ((uint32_t)((p)[1]) << 8) | \
|
||||
((uint32_t)((p)[2]) << 16) | ((uint32_t)((p)[3]) << 24))
|
||||
|
||||
#if !defined(OPENSSL_NO_ASM) && \
|
||||
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
||||
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
|
||||
// sigma contains the ChaCha constants, which happen to be an ASCII string.
|
||||
static const uint8_t sigma[16] = { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
|
||||
'2', '-', 'b', 'y', 't', 'e', ' ', 'k' };
|
||||
|
||||
// ChaCha20_ctr32 is defined in asm/chacha-*.pl.
|
||||
void ChaCha20_ctr32(uint8_t *out, const uint8_t *in, size_t in_len,
|
||||
const uint32_t key[8], const uint32_t counter[4]);
|
||||
#define ROTATE(v, n) (((v) << (n)) | ((v) >> (32 - (n))))
|
||||
|
||||
// QUARTERROUND updates a, b, c, d with a ChaCha "quarter" round.
|
||||
#define QUARTERROUND(a, b, c, d) \
|
||||
x[a] += x[b]; x[d] = ROTATE(x[d] ^ x[a], 16); \
|
||||
x[c] += x[d]; x[b] = ROTATE(x[b] ^ x[c], 12); \
|
||||
x[a] += x[b]; x[d] = ROTATE(x[d] ^ x[a], 8); \
|
||||
x[c] += x[d]; x[b] = ROTATE(x[b] ^ x[c], 7);
|
||||
|
||||
void CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32],
|
||||
const uint8_t nonce[16]) {
|
||||
uint32_t x[16];
|
||||
OPENSSL_memcpy(x, sigma, sizeof(sigma));
|
||||
OPENSSL_memcpy(&x[4], key, 32);
|
||||
OPENSSL_memcpy(&x[12], nonce, 16);
|
||||
|
||||
for (size_t i = 0; i < 20; i += 2) {
|
||||
QUARTERROUND(0, 4, 8, 12)
|
||||
QUARTERROUND(1, 5, 9, 13)
|
||||
QUARTERROUND(2, 6, 10, 14)
|
||||
QUARTERROUND(3, 7, 11, 15)
|
||||
QUARTERROUND(0, 5, 10, 15)
|
||||
QUARTERROUND(1, 6, 11, 12)
|
||||
QUARTERROUND(2, 7, 8, 13)
|
||||
QUARTERROUND(3, 4, 9, 14)
|
||||
}
|
||||
|
||||
OPENSSL_memcpy(out, &x[0], sizeof(uint32_t) * 4);
|
||||
OPENSSL_memcpy(&out[16], &x[12], sizeof(uint32_t) * 4);
|
||||
}
|
||||
|
||||
#if defined(CHACHA20_ASM)
|
||||
|
||||
void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in, size_t in_len,
|
||||
const uint8_t key[32], const uint8_t nonce[12],
|
||||
|
@ -69,12 +99,6 @@ void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in, size_t in_len,
|
|||
|
||||
#else
|
||||
|
||||
// sigma contains the ChaCha constants, which happen to be an ASCII string.
|
||||
static const uint8_t sigma[16] = { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
|
||||
'2', '-', 'b', 'y', 't', 'e', ' ', 'k' };
|
||||
|
||||
#define ROTATE(v, n) (((v) << (n)) | ((v) >> (32 - (n))))
|
||||
|
||||
#define U32TO8_LITTLE(p, v) \
|
||||
{ \
|
||||
(p)[0] = (v >> 0) & 0xff; \
|
||||
|
@ -83,13 +107,6 @@ static const uint8_t sigma[16] = { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
|
|||
(p)[3] = (v >> 24) & 0xff; \
|
||||
}
|
||||
|
||||
// QUARTERROUND updates a, b, c, d with a ChaCha "quarter" round.
|
||||
#define QUARTERROUND(a, b, c, d) \
|
||||
x[a] += x[b]; x[d] = ROTATE(x[d] ^ x[a], 16); \
|
||||
x[c] += x[d]; x[b] = ROTATE(x[b] ^ x[c], 12); \
|
||||
x[a] += x[b]; x[d] = ROTATE(x[d] ^ x[a], 8); \
|
||||
x[c] += x[d]; x[b] = ROTATE(x[b] ^ x[c], 7);
|
||||
|
||||
// chacha_core performs 20 rounds of ChaCha on the input words in
|
||||
// |input| and writes the 64 output bytes to |output|.
|
||||
static void chacha_core(uint8_t output[64], const uint32_t input[16]) {
|
||||
|
|
260
TMessagesProj/jni/boringssl/crypto/chacha/chacha_test.cc
Normal file
260
TMessagesProj/jni/boringssl/crypto/chacha/chacha_test.cc
Normal file
|
@ -0,0 +1,260 @@
|
|||
/* Copyright (c) 2016, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/chacha.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "../internal.h"
|
||||
#include "../test/abi_test.h"
|
||||
#include "../test/test_util.h"
|
||||
|
||||
|
||||
static const uint8_t kKey[32] = {
|
||||
0x98, 0xbe, 0xf1, 0x46, 0x9b, 0xe7, 0x26, 0x98, 0x37, 0xa4, 0x5b,
|
||||
0xfb, 0xc9, 0x2a, 0x5a, 0x6a, 0xc7, 0x62, 0x50, 0x7c, 0xf9, 0x64,
|
||||
0x43, 0xbf, 0x33, 0xb9, 0x6b, 0x1b, 0xd4, 0xc6, 0xf8, 0xf6,
|
||||
};
|
||||
|
||||
static const uint8_t kNonce[12] = {
|
||||
0x44, 0xe7, 0x92, 0xd6, 0x33, 0x35, 0xab, 0xb1, 0x58, 0x2e, 0x92, 0x53,
|
||||
};
|
||||
|
||||
static uint32_t kCounter = 42;
|
||||
|
||||
static const uint8_t kInput[] = {
|
||||
0x58, 0x28, 0xd5, 0x30, 0x36, 0x2c, 0x60, 0x55, 0x29, 0xf8, 0xe1, 0x8c,
|
||||
0xae, 0x15, 0x15, 0x26, 0xf2, 0x3a, 0x73, 0xa0, 0xf3, 0x12, 0xa3, 0x88,
|
||||
0x5f, 0x2b, 0x74, 0x23, 0x3d, 0xc9, 0x05, 0x23, 0xc6, 0x54, 0x49, 0x1e,
|
||||
0x44, 0x88, 0x14, 0xd9, 0xda, 0x37, 0x15, 0xdc, 0xb7, 0xe4, 0x23, 0xb3,
|
||||
0x9d, 0x7e, 0x16, 0x68, 0x35, 0xfc, 0x02, 0x6d, 0xcc, 0x8a, 0xe5, 0xdd,
|
||||
0x5f, 0xe4, 0xd2, 0x56, 0x6f, 0x12, 0x9c, 0x9c, 0x7d, 0x6a, 0x38, 0x48,
|
||||
0xbd, 0xdf, 0xd9, 0xac, 0x1b, 0xa2, 0x4d, 0xc5, 0x43, 0x04, 0x3c, 0xd7,
|
||||
0x99, 0xe1, 0xa7, 0x13, 0x9c, 0x51, 0xc2, 0x6d, 0xf9, 0xcf, 0x07, 0x3b,
|
||||
0xe4, 0xbf, 0x93, 0xa3, 0xa9, 0xb4, 0xc5, 0xf0, 0x1a, 0xe4, 0x8d, 0x5f,
|
||||
0xc6, 0xc4, 0x7c, 0x69, 0x7a, 0xde, 0x1a, 0xc1, 0xc9, 0xcf, 0xc2, 0x4e,
|
||||
0x7a, 0x25, 0x2c, 0x32, 0xe9, 0x17, 0xba, 0x68, 0xf1, 0x37, 0x5d, 0x62,
|
||||
0x84, 0x46, 0xf5, 0x80, 0x7f, 0x1a, 0x71, 0xf7, 0xbe, 0x72, 0x4b, 0xb8,
|
||||
0x1c, 0xfe, 0x3e, 0xbd, 0xae, 0x0d, 0x73, 0x0d, 0x87, 0x4a, 0x31, 0xc3,
|
||||
0x3d, 0x46, 0x6f, 0xb3, 0xd7, 0x6b, 0xe3, 0xb8, 0x70, 0x17, 0x8e, 0x7a,
|
||||
0x6a, 0x0e, 0xbf, 0xa8, 0xbc, 0x2b, 0xdb, 0xfa, 0x4f, 0xb6, 0x26, 0x20,
|
||||
0xee, 0x63, 0xf0, 0x6d, 0x26, 0xac, 0x6a, 0x18, 0x37, 0x6e, 0x59, 0x81,
|
||||
0xd1, 0x60, 0xe6, 0x40, 0xd5, 0x6d, 0x68, 0xba, 0x8b, 0x65, 0x4a, 0xf9,
|
||||
0xf1, 0xae, 0x56, 0x24, 0x8f, 0xe3, 0x8e, 0xe7, 0x7e, 0x6f, 0xcf, 0x92,
|
||||
0xdf, 0xa9, 0x75, 0x3a, 0xd6, 0x2e, 0x1c, 0xaf, 0xf2, 0xd6, 0x8b, 0x39,
|
||||
0xad, 0xd2, 0x5d, 0xfb, 0xd7, 0xdf, 0x05, 0x57, 0x0d, 0xf7, 0xf6, 0x8f,
|
||||
0x2d, 0x14, 0xb0, 0x4e, 0x1a, 0x3c, 0x77, 0x04, 0xcd, 0x3c, 0x5c, 0x58,
|
||||
0x52, 0x10, 0x6f, 0xcf, 0x5c, 0x03, 0xc8, 0x5f, 0x85, 0x2b, 0x05, 0x82,
|
||||
0x60, 0xda, 0xcc, 0xcd, 0xd6, 0x88, 0xbf, 0xc0, 0x10, 0xb3, 0x6f, 0x54,
|
||||
0x54, 0x42, 0xbc, 0x4b, 0x77, 0x21, 0x4d, 0xee, 0x87, 0x45, 0x06, 0x4c,
|
||||
0x60, 0x38, 0xd2, 0x7e, 0x1d, 0x30, 0x6c, 0x55, 0xf0, 0x38, 0x80, 0x1c,
|
||||
0xde, 0x3d, 0xea, 0x68, 0x3e, 0xf6, 0x3e, 0x59, 0xcf, 0x0d, 0x08, 0xae,
|
||||
0x8c, 0x02, 0x0b, 0xc1, 0x72, 0x6a, 0xb4, 0x6d, 0xf3, 0xf7, 0xb3, 0xef,
|
||||
0x3a, 0xb1, 0x06, 0xf2, 0xf4, 0xd6, 0x69, 0x7b, 0x3e, 0xa2, 0x16, 0x31,
|
||||
0x31, 0x79, 0xb6, 0x33, 0xa9, 0xca, 0x8a, 0xa8, 0xbe, 0xf3, 0xe9, 0x38,
|
||||
0x28, 0xd1, 0xe1, 0x3b, 0x4e, 0x2e, 0x47, 0x35, 0xa4, 0x61, 0x14, 0x1e,
|
||||
0x42, 0x2c, 0x49, 0x55, 0xea, 0xe3, 0xb3, 0xce, 0x39, 0xd3, 0xb3, 0xef,
|
||||
0x4a, 0x4d, 0x78, 0x49, 0xbd, 0xf6, 0x7c, 0x0a, 0x2c, 0xd3, 0x26, 0xcb,
|
||||
0xd9, 0x6a, 0xad, 0x63, 0x93, 0xa7, 0x29, 0x92, 0xdc, 0x1f, 0xaf, 0x61,
|
||||
0x82, 0x80, 0x74, 0xb2, 0x9c, 0x4a, 0x86, 0x73, 0x50, 0xd8, 0xd1, 0xff,
|
||||
0xee, 0x1a, 0xe2, 0xdd, 0xa2, 0x61, 0xbd, 0x10, 0xc3, 0x5f, 0x67, 0x9f,
|
||||
0x29, 0xe4, 0xd3, 0x70, 0xe5, 0x67, 0x3a, 0xd2, 0x20, 0x00, 0xcc, 0x25,
|
||||
0x15, 0x96, 0x54, 0x45, 0x85, 0xed, 0x82, 0x88, 0x3b, 0x9f, 0x3b, 0xc3,
|
||||
0x04, 0xd4, 0x23, 0xb1, 0x0d, 0xdc, 0xc8, 0x26, 0x9d, 0x28, 0xb3, 0x25,
|
||||
0x4d, 0x52, 0xe5, 0x33, 0xf3, 0xed, 0x2c, 0xb8, 0x1a, 0xcf, 0xc3, 0x52,
|
||||
0xb4, 0x2f, 0xc7, 0x79, 0x96, 0x14, 0x7d, 0x72, 0x27, 0x72, 0x85, 0xea,
|
||||
0x6d, 0x41, 0xa0, 0x22, 0x13, 0x6d, 0x06, 0x83, 0xa4, 0xdd, 0x0f, 0x69,
|
||||
0xd2, 0x01, 0xcd, 0xc6, 0xb8, 0x64, 0x5c, 0x2c, 0x79, 0xd1, 0xc7, 0xd3,
|
||||
0x31, 0xdb, 0x2c, 0xff, 0xda, 0xd0, 0x69, 0x31, 0xad, 0x83, 0x5f, 0xed,
|
||||
0x6a, 0x97, 0xe4, 0x00, 0x43, 0xb0, 0x2e, 0x97, 0xae, 0x00, 0x5f, 0x5c,
|
||||
0xb9, 0xe8, 0x39, 0x80, 0x10, 0xca, 0x0c, 0xfa, 0xf0, 0xb5, 0xcd, 0xaa,
|
||||
0x27, 0x11, 0x60, 0xd9, 0x21, 0x86, 0x93, 0x91, 0x9f, 0x2d, 0x1a, 0x8e,
|
||||
0xde, 0x0b, 0xb5, 0xcb, 0x05, 0x24, 0x30, 0x45, 0x4d, 0x11, 0x75, 0xfd,
|
||||
0xe5, 0xa0, 0xa9, 0x4e, 0x3a, 0x8c, 0x3b, 0x52, 0x5a, 0x37, 0x18, 0x05,
|
||||
0x4a, 0x7a, 0x09, 0x6a, 0xe6, 0xd5, 0xa9, 0xa6, 0x71, 0x47, 0x4c, 0x50,
|
||||
0xe1, 0x3e, 0x8a, 0x21, 0x2b, 0x4f, 0x0e, 0xe3, 0xcb, 0x72, 0xc5, 0x28,
|
||||
0x3e, 0x5a, 0x33, 0xec, 0x48, 0x92, 0x2e, 0xa1, 0x24, 0x57, 0x09, 0x0f,
|
||||
0x01, 0x85, 0x3b, 0x34, 0x39, 0x7e, 0xc7, 0x90, 0x62, 0xe2, 0xdc, 0x5d,
|
||||
0x0a, 0x2c, 0x51, 0x26, 0x95, 0x3a, 0x95, 0x92, 0xa5, 0x39, 0x8f, 0x0c,
|
||||
0x83, 0x0b, 0x9d, 0x38, 0xab, 0x98, 0x2a, 0xc4, 0x01, 0xc4, 0x0d, 0x77,
|
||||
0x13, 0xcb, 0xca, 0xf1, 0x28, 0x31, 0x52, 0x75, 0x27, 0x2c, 0xf0, 0x04,
|
||||
0x86, 0xc8, 0xf3, 0x3d, 0xf2, 0x9d, 0x8f, 0x55, 0x52, 0x40, 0x3f, 0xaa,
|
||||
0x22, 0x7f, 0xe7, 0x69, 0x3b, 0xee, 0x44, 0x09, 0xde, 0xff, 0xb0, 0x69,
|
||||
0x3a, 0xae, 0x74, 0xe9, 0x9d, 0x33, 0xae, 0x8b, 0x6d, 0x60, 0x04, 0xff,
|
||||
0x53, 0x3f, 0x88, 0xe9, 0x63, 0x9b, 0xb1, 0x6d, 0x2c, 0x22, 0x15, 0x5a,
|
||||
0x15, 0xd9, 0xe5, 0xcb, 0x03, 0x78, 0x3c, 0xca, 0x59, 0x8c, 0xc8, 0xc2,
|
||||
0x86, 0xff, 0xd2, 0x79, 0xd6, 0xc6, 0xec, 0x5b, 0xbb, 0xa0, 0xae, 0x01,
|
||||
0x20, 0x09, 0x2e, 0x38, 0x5d, 0xda, 0x5d, 0xe0, 0x59, 0x4e, 0xe5, 0x8b,
|
||||
0x84, 0x8f, 0xb6, 0xe0, 0x56, 0x9f, 0x21, 0xa1, 0xcf, 0xb2, 0x0f, 0x2c,
|
||||
0x93, 0xf8, 0xcf, 0x37, 0xc1, 0x9f, 0x32, 0x98, 0x21, 0x65, 0x52, 0x66,
|
||||
0x6e, 0xd3, 0x71, 0x98, 0x55, 0xb9, 0x46, 0x9f, 0x1a, 0x35, 0xc4, 0x47,
|
||||
0x69, 0x62, 0x70, 0x4b, 0x77, 0x9e, 0xe4, 0x21, 0xe6, 0x32, 0x5a, 0x26,
|
||||
0x05, 0xba, 0x57, 0x53, 0xd7, 0x9b, 0x55, 0x3c, 0xbb, 0x53, 0x79, 0x60,
|
||||
0x9c, 0xc8, 0x4d, 0xf7, 0xf5, 0x1d, 0x54, 0x02, 0x91, 0x68, 0x0e, 0xaa,
|
||||
0xca, 0x5a, 0x78, 0x0c, 0x28, 0x9a, 0xc3, 0xac, 0x49, 0xc0, 0xf4, 0x85,
|
||||
0xee, 0x59, 0x76, 0x7e, 0x28, 0x4e, 0xf1, 0x5c, 0x63, 0xf7, 0xce, 0x0e,
|
||||
0x2c, 0x21, 0xa0, 0x58, 0xe9, 0x01, 0xfd, 0xeb, 0xd1, 0xaf, 0xe6, 0xef,
|
||||
0x93, 0xb3, 0x95, 0x51, 0x60, 0xa2, 0x74, 0x40, 0x15, 0xe5, 0xf4, 0x0a,
|
||||
0xca, 0x6d, 0x9a, 0x37, 0x42, 0x4d, 0x5a, 0x58, 0x49, 0x0f, 0xe9, 0x02,
|
||||
0xfc, 0x77, 0xd8, 0x59, 0xde, 0xdd, 0xad, 0x4b, 0x99, 0x2e, 0x64, 0x73,
|
||||
0xad, 0x42, 0x2f, 0xf3, 0x2c, 0x0d, 0x49, 0xe4, 0x2e, 0x6c, 0xa4, 0x73,
|
||||
0x75, 0x18, 0x14, 0x85, 0xbb, 0x64, 0xb4, 0xa1, 0xb0, 0x6e, 0x01, 0xc0,
|
||||
0xcf, 0x17, 0x9c, 0xc5, 0x28, 0xc3, 0x2d, 0x6c, 0x17, 0x2a, 0x3d, 0x06,
|
||||
0x5c, 0xf3, 0xb4, 0x49, 0x75, 0xad, 0x17, 0x69, 0xd4, 0xca, 0x65, 0xae,
|
||||
0x44, 0x71, 0xa5, 0xf6, 0x0d, 0x0f, 0x8e, 0x37, 0xc7, 0x43, 0xce, 0x6b,
|
||||
0x08, 0xe9, 0xd1, 0x34, 0x48, 0x8f, 0xc9, 0xfc, 0xf3, 0x5d, 0x2d, 0xec,
|
||||
0x62, 0xd3, 0xf0, 0xb3, 0xfe, 0x2e, 0x40, 0x55, 0x76, 0x54, 0xc7, 0xb4,
|
||||
0x61, 0x16, 0xcc, 0x7c, 0x1c, 0x19, 0x24, 0xe6, 0x4d, 0xd4, 0xc3, 0x77,
|
||||
0x67, 0x1f, 0x3c, 0x74, 0x79, 0xa1, 0xf8, 0x85, 0x88, 0x1d, 0x6f, 0xa4,
|
||||
0x7e, 0x2c, 0x21, 0x9f, 0x49, 0xf5, 0xaa, 0x4e, 0xf3, 0x4a, 0xfa, 0x9d,
|
||||
0xbe, 0xf6, 0xce, 0xda, 0xb5, 0xab, 0x39, 0xbd, 0x16, 0x41, 0xa9, 0x4a,
|
||||
0xac, 0x09, 0x01, 0xca,
|
||||
};
|
||||
static const uint8_t kOutput[] = {
|
||||
0x54, 0x30, 0x6a, 0x13, 0xda, 0x59, 0x6b, 0x6d, 0x59, 0x49, 0xc8, 0xc5,
|
||||
0xab, 0x26, 0xd4, 0x8a, 0xad, 0xc0, 0x3d, 0xaf, 0x14, 0xb9, 0x15, 0xb8,
|
||||
0xca, 0xdf, 0x17, 0xa7, 0x03, 0xd3, 0xc5, 0x06, 0x01, 0xef, 0x21, 0xdd,
|
||||
0xa3, 0x0b, 0x9e, 0x48, 0xb8, 0x5e, 0x0b, 0x87, 0x9f, 0x95, 0x23, 0x68,
|
||||
0x85, 0x69, 0xd2, 0x5d, 0xaf, 0x57, 0xe9, 0x27, 0x11, 0x3d, 0x49, 0xfa,
|
||||
0xf1, 0x08, 0xcc, 0x15, 0xec, 0x1d, 0x19, 0x16, 0x12, 0x9b, 0xc8, 0x66,
|
||||
0x1f, 0xfa, 0x2c, 0x93, 0xf4, 0x99, 0x11, 0x27, 0x31, 0x0e, 0xd8, 0x46,
|
||||
0x47, 0x40, 0x11, 0x70, 0x01, 0xca, 0xe8, 0x5b, 0xc5, 0x91, 0xc8, 0x3a,
|
||||
0xdc, 0xaa, 0xf3, 0x4b, 0x80, 0xe5, 0xbc, 0x03, 0xd0, 0x89, 0x72, 0xbc,
|
||||
0xce, 0x2a, 0x76, 0x0c, 0xf5, 0xda, 0x4c, 0x10, 0x06, 0x35, 0x41, 0xb1,
|
||||
0xe6, 0xb4, 0xaa, 0x7a, 0xef, 0xf0, 0x62, 0x4a, 0xc5, 0x9f, 0x2c, 0xaf,
|
||||
0xb8, 0x2f, 0xd9, 0xd1, 0x01, 0x7a, 0x36, 0x2f, 0x3e, 0x83, 0xa5, 0xeb,
|
||||
0x81, 0x70, 0xa0, 0x57, 0x17, 0x46, 0xea, 0x9e, 0xcb, 0x0e, 0x74, 0xd3,
|
||||
0x44, 0x57, 0x1d, 0x40, 0x06, 0xf8, 0xb7, 0xcb, 0x5f, 0xf4, 0x79, 0xbd,
|
||||
0x11, 0x19, 0xd6, 0xee, 0xf8, 0xb0, 0xaa, 0xdd, 0x00, 0x62, 0xad, 0x3b,
|
||||
0x88, 0x9a, 0x88, 0x5b, 0x1b, 0x07, 0xc9, 0xae, 0x9e, 0xa6, 0x94, 0xe5,
|
||||
0x55, 0xdb, 0x45, 0x23, 0xb9, 0x2c, 0xcd, 0x29, 0xd3, 0x54, 0xc3, 0x88,
|
||||
0x1e, 0x5f, 0x52, 0xf2, 0x09, 0x00, 0x26, 0x26, 0x1a, 0xed, 0xf5, 0xc2,
|
||||
0xa9, 0x7d, 0xf9, 0x21, 0x5a, 0xaf, 0x6d, 0xab, 0x8e, 0x16, 0x84, 0x96,
|
||||
0xb5, 0x4f, 0xcf, 0x1e, 0xa3, 0xaf, 0x08, 0x9f, 0x79, 0x86, 0xc3, 0xbe,
|
||||
0x0c, 0x70, 0xcb, 0x8f, 0xf3, 0xc5, 0xf8, 0xe8, 0x4b, 0x21, 0x7d, 0x18,
|
||||
0xa9, 0xed, 0x8b, 0xfb, 0x6b, 0x5a, 0x6f, 0x26, 0x0b, 0x56, 0x04, 0x7c,
|
||||
0xfe, 0x0e, 0x1e, 0xc1, 0x3f, 0x82, 0xc5, 0x73, 0xbd, 0x53, 0x0c, 0xf0,
|
||||
0xe2, 0xc9, 0xf3, 0x3d, 0x1b, 0x6d, 0xba, 0x70, 0xc1, 0x6d, 0xb6, 0x00,
|
||||
0x28, 0xe1, 0xc4, 0x78, 0x62, 0x04, 0xda, 0x23, 0x86, 0xc3, 0xda, 0x74,
|
||||
0x3d, 0x7c, 0xd6, 0x76, 0x29, 0xb2, 0x27, 0x2e, 0xb2, 0x35, 0x42, 0x60,
|
||||
0x82, 0xcf, 0x30, 0x2c, 0x59, 0xe4, 0xe3, 0xd0, 0x74, 0x1f, 0x58, 0xe8,
|
||||
0xda, 0x47, 0x45, 0x73, 0x1c, 0x05, 0x93, 0xae, 0x75, 0xbe, 0x1f, 0x81,
|
||||
0xd8, 0xb7, 0xb3, 0xff, 0xfc, 0x8b, 0x52, 0x9e, 0xed, 0x8b, 0x37, 0x9f,
|
||||
0xe0, 0xb8, 0xa2, 0x66, 0xe1, 0x6a, 0xc5, 0x1f, 0x1d, 0xf0, 0xde, 0x3f,
|
||||
0x3d, 0xb0, 0x28, 0xf3, 0xaa, 0x4e, 0x4d, 0x31, 0xb0, 0x26, 0x79, 0x2b,
|
||||
0x08, 0x0f, 0xe9, 0x2f, 0x79, 0xb3, 0xc8, 0xdd, 0xa7, 0x89, 0xa8, 0xa8,
|
||||
0x1d, 0x59, 0x0e, 0x4f, 0x1e, 0x93, 0x1f, 0x70, 0x7f, 0x4e, 0x7e, 0xfe,
|
||||
0xb8, 0xca, 0x63, 0xe0, 0xa6, 0x05, 0xcc, 0xd7, 0xde, 0x2a, 0x49, 0x31,
|
||||
0x78, 0x5c, 0x5f, 0x44, 0xb2, 0x9b, 0x91, 0x99, 0x14, 0x29, 0x63, 0x09,
|
||||
0x12, 0xdd, 0x02, 0xd9, 0x7b, 0xe9, 0xf5, 0x12, 0x07, 0xd0, 0xe7, 0xe6,
|
||||
0xe8, 0xdd, 0xda, 0xa4, 0x73, 0xc4, 0x8e, 0xbd, 0x7b, 0xb7, 0xbb, 0xcb,
|
||||
0x83, 0x2f, 0x43, 0xf6, 0x1c, 0x50, 0xae, 0x9b, 0x2e, 0x52, 0x80, 0x18,
|
||||
0x85, 0xa8, 0x23, 0x52, 0x7a, 0x6a, 0xf7, 0x42, 0x36, 0xca, 0x91, 0x5a,
|
||||
0x3d, 0x2a, 0xa0, 0x35, 0x7d, 0x70, 0xfc, 0x4c, 0x18, 0x7c, 0x57, 0x72,
|
||||
0xcf, 0x9b, 0x29, 0xd6, 0xd0, 0xb4, 0xd7, 0xe6, 0x89, 0x70, 0x69, 0x22,
|
||||
0x5e, 0x45, 0x09, 0x4d, 0x49, 0x87, 0x84, 0x5f, 0x8a, 0x5f, 0xe4, 0x15,
|
||||
0xd3, 0xe3, 0x72, 0xaf, 0xb2, 0x30, 0x9c, 0xc1, 0xff, 0x8e, 0x6d, 0x2a,
|
||||
0x76, 0x9e, 0x08, 0x03, 0x7e, 0xe0, 0xc3, 0xc2, 0x97, 0x06, 0x6b, 0x33,
|
||||
0x2b, 0x08, 0xe3, 0xd5, 0x0b, 0xd8, 0x32, 0x67, 0x61, 0x10, 0xed, 0x6b,
|
||||
0xed, 0x50, 0xef, 0xd7, 0x1c, 0x1b, 0xe0, 0x6d, 0xa1, 0x64, 0x19, 0x34,
|
||||
0x2f, 0xe4, 0xe8, 0x54, 0xbf, 0x84, 0x0e, 0xdf, 0x0e, 0x8b, 0xd8, 0xdd,
|
||||
0x77, 0x96, 0xb8, 0x54, 0xab, 0xf2, 0x95, 0x59, 0x0d, 0x0d, 0x0a, 0x15,
|
||||
0x6e, 0x01, 0xf2, 0x24, 0xab, 0xa0, 0xd8, 0xdf, 0x38, 0xea, 0x97, 0x58,
|
||||
0x76, 0x88, 0xbe, 0xaf, 0x45, 0xe3, 0x56, 0x4f, 0x68, 0xe8, 0x4b, 0xe7,
|
||||
0x2b, 0x22, 0x18, 0x96, 0x82, 0x89, 0x25, 0x34, 0xd1, 0xdd, 0x08, 0xea,
|
||||
0x7e, 0x21, 0xef, 0x57, 0x55, 0x43, 0xf7, 0xfa, 0xca, 0x1c, 0xde, 0x99,
|
||||
0x2e, 0x8b, 0xd8, 0xc3, 0xcf, 0x89, 0x4d, 0xfc, 0x3b, 0x7d, 0x4a, 0xc9,
|
||||
0x99, 0xc4, 0x31, 0xb6, 0x7a, 0xae, 0xf8, 0x49, 0xb2, 0x46, 0xc1, 0x60,
|
||||
0x05, 0x75, 0xf3, 0x3d, 0xf2, 0xc9, 0x84, 0xa4, 0xb9, 0x8a, 0x87, 0x2a,
|
||||
0x87, 0x5c, 0x0a, 0xbc, 0x51, 0x7d, 0x9a, 0xf5, 0xc9, 0x24, 0x2d, 0x5e,
|
||||
0xe6, 0xc6, 0xe3, 0xcd, 0x7e, 0xe4, 0xaf, 0x8a, 0x6c, 0x00, 0x04, 0xc8,
|
||||
0xd7, 0xa5, 0xad, 0xfa, 0xb2, 0x08, 0x4a, 0x26, 0x9b, 0x7c, 0xd0, 0xc6,
|
||||
0x13, 0xb1, 0xb9, 0x65, 0x3f, 0x70, 0x30, 0xf9, 0x98, 0x9d, 0x87, 0x99,
|
||||
0x57, 0x71, 0x3e, 0xb1, 0xc3, 0x24, 0xf0, 0xa6, 0xa2, 0x60, 0x9d, 0x66,
|
||||
0xd2, 0x5f, 0xae, 0xe3, 0x94, 0x87, 0xea, 0xd1, 0xea, 0x0d, 0x2a, 0x77,
|
||||
0xef, 0x31, 0xcc, 0xeb, 0xf9, 0x0c, 0xdc, 0x9c, 0x12, 0x80, 0xbb, 0xb0,
|
||||
0x8e, 0xab, 0x9a, 0x04, 0xcd, 0x4b, 0x95, 0x4f, 0x7a, 0x0b, 0x53, 0x7c,
|
||||
0x16, 0xcc, 0x0e, 0xb1, 0x73, 0x10, 0xdd, 0xaa, 0x76, 0x94, 0x90, 0xd9,
|
||||
0x8b, 0x66, 0x41, 0x31, 0xed, 0x8c, 0x7d, 0x74, 0xc4, 0x33, 0xfa, 0xc3,
|
||||
0x43, 0x8d, 0x10, 0xbc, 0x84, 0x4d, 0x0e, 0x95, 0x32, 0xdf, 0x17, 0x43,
|
||||
0x6d, 0xd2, 0x5e, 0x12, 0xb9, 0xed, 0x33, 0xd9, 0x97, 0x6f, 0x4a, 0xcd,
|
||||
0xc3, 0xcd, 0x81, 0x34, 0xbe, 0x7e, 0xa2, 0xd0, 0xa7, 0x91, 0x5d, 0x90,
|
||||
0xf6, 0x5e, 0x4a, 0x25, 0x0f, 0xcc, 0x24, 0xeb, 0xe1, 0xe4, 0x62, 0x6c,
|
||||
0x8f, 0x45, 0x36, 0x97, 0x5d, 0xda, 0x20, 0x2b, 0x86, 0x00, 0x8c, 0x94,
|
||||
0xa9, 0x6a, 0x69, 0xb2, 0xe9, 0xbb, 0x82, 0x8e, 0x41, 0x95, 0xb4, 0xb7,
|
||||
0xf1, 0x55, 0x52, 0x30, 0x39, 0x48, 0xb3, 0x25, 0x82, 0xa9, 0x10, 0x27,
|
||||
0x89, 0xb5, 0xe5, 0x1f, 0xab, 0x72, 0x3c, 0x70, 0x08, 0xce, 0xe6, 0x61,
|
||||
0xbf, 0x19, 0xc8, 0x90, 0x2b, 0x29, 0x30, 0x3e, 0xb8, 0x4c, 0x33, 0xf0,
|
||||
0xf0, 0x15, 0x2e, 0xb7, 0x25, 0xca, 0x99, 0x4b, 0x6f, 0x4b, 0x41, 0x50,
|
||||
0xee, 0x56, 0x99, 0xcf, 0x2b, 0xa4, 0xc4, 0x7c, 0x5c, 0xa6, 0xd4, 0x67,
|
||||
0x04, 0x5c, 0x5d, 0x5f, 0x26, 0x9e, 0x0f, 0xe2, 0x58, 0x68, 0x4c, 0x30,
|
||||
0xcd, 0xef, 0x46, 0xdb, 0x37, 0x6f, 0xbb, 0xc4, 0x80, 0xca, 0x8a, 0x54,
|
||||
0x5d, 0x71, 0x9d, 0x0c, 0xe8, 0xb8, 0x2c, 0x10, 0x90, 0x44, 0xa4, 0x88,
|
||||
0x3f, 0xbc, 0x15, 0x3c, 0xd2, 0xca, 0x0e, 0xc3, 0xe4, 0x6e, 0xef, 0xb0,
|
||||
0xcb, 0xfd, 0x61, 0x7c, 0x27, 0xf2, 0x25, 0xea, 0x71, 0x6d, 0xf7, 0x49,
|
||||
0x9c, 0x81, 0x27, 0xf0, 0x61, 0x33, 0xcf, 0x55, 0x68, 0xd3, 0x73, 0xa4,
|
||||
0xed, 0x35, 0x65, 0x2a, 0xf2, 0x3e, 0xcf, 0x90, 0x98, 0x54, 0x6d, 0x95,
|
||||
0x6a, 0x0c, 0x9c, 0x24, 0x0e, 0xb4, 0xb7, 0x9b, 0x8d, 0x6e, 0x1c, 0xbc,
|
||||
0xeb, 0x17, 0x10, 0x86, 0xda, 0x91, 0x6d, 0x89, 0x4c, 0xeb, 0xf5, 0x50,
|
||||
0x8f, 0x40, 0xcf, 0x4a,
|
||||
};
|
||||
|
||||
static_assert(sizeof(kInput) == sizeof(kOutput),
|
||||
"Input and output lengths don't match.");
|
||||
|
||||
TEST(ChaChaTest, TestVector) {
|
||||
// Run the test with the test vector at all lengths.
|
||||
for (size_t len = 0; len <= sizeof(kInput); len++) {
|
||||
SCOPED_TRACE(len);
|
||||
|
||||
std::unique_ptr<uint8_t[]> buf(new uint8_t[len]);
|
||||
CRYPTO_chacha_20(buf.get(), kInput, len, kKey, kNonce, kCounter);
|
||||
EXPECT_EQ(Bytes(kOutput, len), Bytes(buf.get(), len));
|
||||
|
||||
// Test the in-place version.
|
||||
OPENSSL_memcpy(buf.get(), kInput, len);
|
||||
CRYPTO_chacha_20(buf.get(), buf.get(), len, kKey, kNonce, kCounter);
|
||||
EXPECT_EQ(Bytes(kOutput, len), Bytes(buf.get(), len));
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(CHACHA20_ASM) && defined(SUPPORTS_ABI_TEST)
|
||||
TEST(ChaChaTest, ABI) {
|
||||
uint32_t key[8];
|
||||
OPENSSL_memcpy(key, kKey, sizeof(key));
|
||||
|
||||
static const uint32_t kCounterNonce[4] = {0};
|
||||
|
||||
std::unique_ptr<uint8_t[]> buf(new uint8_t[sizeof(kInput)]);
|
||||
for (size_t len = 0; len <= 32; len++) {
|
||||
SCOPED_TRACE(len);
|
||||
CHECK_ABI(ChaCha20_ctr32, buf.get(), kInput, len, key, kCounterNonce);
|
||||
}
|
||||
|
||||
for (size_t len : {32 * 2, 32 * 4, 32 * 8, 32 * 16, 32 * 24}) {
|
||||
SCOPED_TRACE(len);
|
||||
CHECK_ABI(ChaCha20_ctr32, buf.get(), kInput, len, key, kCounterNonce);
|
||||
// Cover the partial block paths.
|
||||
CHECK_ABI(ChaCha20_ctr32, buf.get(), kInput, len + 15, key, kCounterNonce);
|
||||
}
|
||||
}
|
||||
#endif // CHACHA20_ASM && SUPPORTS_ABI_TEST
|
45
TMessagesProj/jni/boringssl/crypto/chacha/internal.h
Normal file
45
TMessagesProj/jni/boringssl/crypto/chacha/internal.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* Copyright (c) 2018, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#ifndef OPENSSL_HEADER_CHACHA_INTERNAL
|
||||
#define OPENSSL_HEADER_CHACHA_INTERNAL
|
||||
|
||||
#include <openssl/base.h>
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
// CRYPTO_hchacha20 computes the HChaCha20 function, which should only be used
|
||||
// as part of XChaCha20.
|
||||
void CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32],
|
||||
const uint8_t nonce[16]);
|
||||
|
||||
#if !defined(OPENSSL_NO_ASM) && \
|
||||
(defined(OPENSSL_X86) || defined(OPENSSL_X86_64) || \
|
||||
defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
|
||||
#define CHACHA20_ASM
|
||||
|
||||
// ChaCha20_ctr32 is defined in asm/chacha-*.pl.
|
||||
void ChaCha20_ctr32(uint8_t *out, const uint8_t *in, size_t in_len,
|
||||
const uint32_t key[8], const uint32_t counter[4]);
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} // extern C
|
||||
#endif
|
||||
|
||||
#endif // OPENSSL_HEADER_CHACHA_INTERNAL
|
|
@ -1,35 +0,0 @@
|
|||
include_directories(../../include)
|
||||
|
||||
if (${ARCH} STREQUAL "x86_64")
|
||||
set(
|
||||
CIPHER_ARCH_SOURCES
|
||||
|
||||
aes128gcmsiv-x86_64.${ASM_EXT}
|
||||
chacha20_poly1305_x86_64.${ASM_EXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_library(
|
||||
cipher_extra
|
||||
|
||||
OBJECT
|
||||
|
||||
cipher_extra.c
|
||||
derive_key.c
|
||||
|
||||
e_null.c
|
||||
e_rc2.c
|
||||
e_rc4.c
|
||||
e_aesgcmsiv.c
|
||||
e_aesctrhmac.c
|
||||
e_chacha20poly1305.c
|
||||
|
||||
tls_cbc.c
|
||||
e_tls.c
|
||||
e_ssl3.c
|
||||
|
||||
${CIPHER_ARCH_SOURCES}
|
||||
)
|
||||
|
||||
perlasm(aes128gcmsiv-x86_64.${ASM_EXT} asm/aes128gcmsiv-x86_64.pl)
|
||||
perlasm(chacha20_poly1305_x86_64.${ASM_EXT} asm/chacha20_poly1305_x86_64.pl)
|
825
TMessagesProj/jni/boringssl/crypto/cipher_extra/aead_test.cc
Normal file
825
TMessagesProj/jni/boringssl/crypto/cipher_extra/aead_test.cc
Normal file
|
@ -0,0 +1,825 @@
|
|||
/* Copyright (c) 2014, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/aead.h>
|
||||
#include <openssl/cipher.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#include "../fipsmodule/cipher/internal.h"
|
||||
#include "../internal.h"
|
||||
#include "../test/file_test.h"
|
||||
#include "../test/test_util.h"
|
||||
#include "../test/wycheproof_util.h"
|
||||
|
||||
|
||||
struct KnownAEAD {
|
||||
const char name[40];
|
||||
const EVP_AEAD *(*func)(void);
|
||||
const char *test_vectors;
|
||||
// limited_implementation indicates that tests that assume a generic AEAD
|
||||
// interface should not be performed. For example, the key-wrap AEADs only
|
||||
// handle inputs that are a multiple of eight bytes in length and the TLS CBC
|
||||
// AEADs have the concept of “direction”.
|
||||
bool limited_implementation;
|
||||
// truncated_tags is true if the AEAD supports truncating tags to arbitrary
|
||||
// lengths.
|
||||
bool truncated_tags;
|
||||
// variable_nonce is true if the AEAD supports a variable nonce length.
|
||||
bool variable_nonce;
|
||||
// ad_len, if non-zero, is the required length of the AD.
|
||||
size_t ad_len;
|
||||
};
|
||||
|
||||
static const struct KnownAEAD kAEADs[] = {
|
||||
{"AES_128_GCM", EVP_aead_aes_128_gcm, "aes_128_gcm_tests.txt", false, true,
|
||||
true, 0},
|
||||
{"AES_128_GCM_NIST", EVP_aead_aes_128_gcm, "nist_cavp/aes_128_gcm.txt",
|
||||
false, true, true, 0},
|
||||
{"AES_192_GCM", EVP_aead_aes_192_gcm, "aes_192_gcm_tests.txt", false, true,
|
||||
true, 0},
|
||||
{"AES_256_GCM", EVP_aead_aes_256_gcm, "aes_256_gcm_tests.txt", false, true,
|
||||
true, 0},
|
||||
{"AES_256_GCM_NIST", EVP_aead_aes_256_gcm, "nist_cavp/aes_256_gcm.txt",
|
||||
false, true, true, 0},
|
||||
{"AES_128_GCM_SIV", EVP_aead_aes_128_gcm_siv, "aes_128_gcm_siv_tests.txt",
|
||||
false, false, false, 0},
|
||||
{"AES_256_GCM_SIV", EVP_aead_aes_256_gcm_siv, "aes_256_gcm_siv_tests.txt",
|
||||
false, false, false, 0},
|
||||
{"ChaCha20Poly1305", EVP_aead_chacha20_poly1305,
|
||||
"chacha20_poly1305_tests.txt", false, true, false, 0},
|
||||
{"XChaCha20Poly1305", EVP_aead_xchacha20_poly1305,
|
||||
"xchacha20_poly1305_tests.txt", false, true, false, 0},
|
||||
{"AES_128_CBC_SHA1_TLS", EVP_aead_aes_128_cbc_sha1_tls,
|
||||
"aes_128_cbc_sha1_tls_tests.txt", true, false, false, 11},
|
||||
{"AES_128_CBC_SHA1_TLSImplicitIV",
|
||||
EVP_aead_aes_128_cbc_sha1_tls_implicit_iv,
|
||||
"aes_128_cbc_sha1_tls_implicit_iv_tests.txt", true, false, false, 11},
|
||||
{"AES_128_CBC_SHA256_TLS", EVP_aead_aes_128_cbc_sha256_tls,
|
||||
"aes_128_cbc_sha256_tls_tests.txt", true, false, false, 11},
|
||||
{"AES_256_CBC_SHA1_TLS", EVP_aead_aes_256_cbc_sha1_tls,
|
||||
"aes_256_cbc_sha1_tls_tests.txt", true, false, false, 11},
|
||||
{"AES_256_CBC_SHA1_TLSImplicitIV",
|
||||
EVP_aead_aes_256_cbc_sha1_tls_implicit_iv,
|
||||
"aes_256_cbc_sha1_tls_implicit_iv_tests.txt", true, false, false, 11},
|
||||
{"AES_256_CBC_SHA256_TLS", EVP_aead_aes_256_cbc_sha256_tls,
|
||||
"aes_256_cbc_sha256_tls_tests.txt", true, false, false, 11},
|
||||
{"AES_256_CBC_SHA384_TLS", EVP_aead_aes_256_cbc_sha384_tls,
|
||||
"aes_256_cbc_sha384_tls_tests.txt", true, false, false, 11},
|
||||
{"DES_EDE3_CBC_SHA1_TLS", EVP_aead_des_ede3_cbc_sha1_tls,
|
||||
"des_ede3_cbc_sha1_tls_tests.txt", true, false, false, 11},
|
||||
{"DES_EDE3_CBC_SHA1_TLSImplicitIV",
|
||||
EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv,
|
||||
"des_ede3_cbc_sha1_tls_implicit_iv_tests.txt", true, false, false, 11},
|
||||
{"AES_128_CTR_HMAC_SHA256", EVP_aead_aes_128_ctr_hmac_sha256,
|
||||
"aes_128_ctr_hmac_sha256.txt", false, true, false, 0},
|
||||
{"AES_256_CTR_HMAC_SHA256", EVP_aead_aes_256_ctr_hmac_sha256,
|
||||
"aes_256_ctr_hmac_sha256.txt", false, true, false, 0},
|
||||
{"AES_128_CCM_BLUETOOTH", EVP_aead_aes_128_ccm_bluetooth,
|
||||
"aes_128_ccm_bluetooth_tests.txt", false, false, false, 0},
|
||||
{"AES_128_CCM_BLUETOOTH_8", EVP_aead_aes_128_ccm_bluetooth_8,
|
||||
"aes_128_ccm_bluetooth_8_tests.txt", false, false, false, 0},
|
||||
};
|
||||
|
||||
class PerAEADTest : public testing::TestWithParam<KnownAEAD> {
|
||||
public:
|
||||
const EVP_AEAD *aead() { return GetParam().func(); }
|
||||
};
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(, PerAEADTest, testing::ValuesIn(kAEADs),
|
||||
[](const testing::TestParamInfo<KnownAEAD> ¶ms)
|
||||
-> std::string { return params.param.name; });
|
||||
|
||||
// Tests an AEAD against a series of test vectors from a file, using the
|
||||
// FileTest format. As an example, here's a valid test case:
|
||||
//
|
||||
// KEY: 5a19f3173586b4c42f8412f4d5a786531b3231753e9e00998aec12fda8df10e4
|
||||
// NONCE: 978105dfce667bf4
|
||||
// IN: 6a4583908d
|
||||
// AD: b654574932
|
||||
// CT: 5294265a60
|
||||
// TAG: 1d45758621762e061368e68868e2f929
|
||||
TEST_P(PerAEADTest, TestVector) {
|
||||
std::string test_vectors = "crypto/cipher_extra/test/";
|
||||
test_vectors += GetParam().test_vectors;
|
||||
FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
|
||||
std::vector<uint8_t> key, nonce, in, ad, ct, tag;
|
||||
ASSERT_TRUE(t->GetBytes(&key, "KEY"));
|
||||
ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
|
||||
ASSERT_TRUE(t->GetBytes(&in, "IN"));
|
||||
ASSERT_TRUE(t->GetBytes(&ad, "AD"));
|
||||
ASSERT_TRUE(t->GetBytes(&ct, "CT"));
|
||||
ASSERT_TRUE(t->GetBytes(&tag, "TAG"));
|
||||
size_t tag_len = tag.size();
|
||||
if (t->HasAttribute("TAG_LEN")) {
|
||||
// Legacy AEADs are MAC-then-encrypt and may include padding in the TAG
|
||||
// field. TAG_LEN contains the actual size of the digest in that case.
|
||||
std::string tag_len_str;
|
||||
ASSERT_TRUE(t->GetAttribute(&tag_len_str, "TAG_LEN"));
|
||||
tag_len = strtoul(tag_len_str.c_str(), nullptr, 10);
|
||||
ASSERT_TRUE(tag_len);
|
||||
}
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_seal));
|
||||
|
||||
std::vector<uint8_t> out(in.size() + EVP_AEAD_max_overhead(aead()));
|
||||
if (!t->HasAttribute("NO_SEAL")) {
|
||||
size_t out_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), out.data(), &out_len, out.size(),
|
||||
nonce.data(), nonce.size(), in.data(),
|
||||
in.size(), ad.data(), ad.size()));
|
||||
out.resize(out_len);
|
||||
|
||||
ASSERT_EQ(out.size(), ct.size() + tag.size());
|
||||
EXPECT_EQ(Bytes(ct), Bytes(out.data(), ct.size()));
|
||||
EXPECT_EQ(Bytes(tag), Bytes(out.data() + ct.size(), tag.size()));
|
||||
} else {
|
||||
out.resize(ct.size() + tag.size());
|
||||
OPENSSL_memcpy(out.data(), ct.data(), ct.size());
|
||||
OPENSSL_memcpy(out.data() + ct.size(), tag.data(), tag.size());
|
||||
}
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
std::vector<uint8_t> out2(out.size());
|
||||
size_t out2_len;
|
||||
int ret = EVP_AEAD_CTX_open(ctx.get(), out2.data(), &out2_len, out2.size(),
|
||||
nonce.data(), nonce.size(), out.data(),
|
||||
out.size(), ad.data(), ad.size());
|
||||
if (t->HasAttribute("FAILS")) {
|
||||
ASSERT_FALSE(ret) << "Decrypted bad data.";
|
||||
ERR_clear_error();
|
||||
return;
|
||||
}
|
||||
|
||||
ASSERT_TRUE(ret) << "Failed to decrypt.";
|
||||
out2.resize(out2_len);
|
||||
EXPECT_EQ(Bytes(in), Bytes(out2));
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
// Garbage at the end isn't ignored.
|
||||
out.push_back(0);
|
||||
out2.resize(out.size());
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(
|
||||
ctx.get(), out2.data(), &out2_len, out2.size(), nonce.data(),
|
||||
nonce.size(), out.data(), out.size(), ad.data(), ad.size()))
|
||||
<< "Decrypted bad data with trailing garbage.";
|
||||
ERR_clear_error();
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
// Verify integrity is checked.
|
||||
out[0] ^= 0x80;
|
||||
out.resize(out.size() - 1);
|
||||
out2.resize(out.size());
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(
|
||||
ctx.get(), out2.data(), &out2_len, out2.size(), nonce.data(),
|
||||
nonce.size(), out.data(), out.size(), ad.data(), ad.size()))
|
||||
<< "Decrypted bad data with corrupted byte.";
|
||||
ERR_clear_error();
|
||||
});
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, TestExtraInput) {
|
||||
const KnownAEAD &aead_config = GetParam();
|
||||
if (!aead()->seal_scatter_supports_extra_in) {
|
||||
return;
|
||||
}
|
||||
|
||||
const std::string test_vectors =
|
||||
"crypto/cipher_extra/test/" + std::string(aead_config.test_vectors);
|
||||
FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
|
||||
if (t->HasAttribute("NO_SEAL") ||
|
||||
t->HasAttribute("FAILS")) {
|
||||
t->SkipCurrent();
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> key, nonce, in, ad, ct, tag;
|
||||
ASSERT_TRUE(t->GetBytes(&key, "KEY"));
|
||||
ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
|
||||
ASSERT_TRUE(t->GetBytes(&in, "IN"));
|
||||
ASSERT_TRUE(t->GetBytes(&ad, "AD"));
|
||||
ASSERT_TRUE(t->GetBytes(&ct, "CT"));
|
||||
ASSERT_TRUE(t->GetBytes(&tag, "TAG"));
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init(ctx.get(), aead(), key.data(), key.size(),
|
||||
tag.size(), nullptr));
|
||||
std::vector<uint8_t> out_tag(EVP_AEAD_max_overhead(aead()) + in.size());
|
||||
std::vector<uint8_t> out(in.size());
|
||||
|
||||
for (size_t extra_in_size = 0; extra_in_size < in.size(); extra_in_size++) {
|
||||
size_t tag_bytes_written;
|
||||
SCOPED_TRACE(extra_in_size);
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal_scatter(
|
||||
ctx.get(), out.data(), out_tag.data(), &tag_bytes_written,
|
||||
out_tag.size(), nonce.data(), nonce.size(), in.data(),
|
||||
in.size() - extra_in_size, in.data() + in.size() - extra_in_size,
|
||||
extra_in_size, ad.data(), ad.size()));
|
||||
|
||||
ASSERT_EQ(tag_bytes_written, extra_in_size + tag.size());
|
||||
|
||||
memcpy(out.data() + in.size() - extra_in_size, out_tag.data(),
|
||||
extra_in_size);
|
||||
|
||||
EXPECT_EQ(Bytes(ct), Bytes(out.data(), in.size()));
|
||||
EXPECT_EQ(Bytes(tag), Bytes(out_tag.data() + extra_in_size,
|
||||
tag_bytes_written - extra_in_size));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, TestVectorScatterGather) {
|
||||
std::string test_vectors = "crypto/cipher_extra/test/";
|
||||
const KnownAEAD &aead_config = GetParam();
|
||||
test_vectors += aead_config.test_vectors;
|
||||
FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
|
||||
std::vector<uint8_t> key, nonce, in, ad, ct, tag;
|
||||
ASSERT_TRUE(t->GetBytes(&key, "KEY"));
|
||||
ASSERT_TRUE(t->GetBytes(&nonce, "NONCE"));
|
||||
ASSERT_TRUE(t->GetBytes(&in, "IN"));
|
||||
ASSERT_TRUE(t->GetBytes(&ad, "AD"));
|
||||
ASSERT_TRUE(t->GetBytes(&ct, "CT"));
|
||||
ASSERT_TRUE(t->GetBytes(&tag, "TAG"));
|
||||
size_t tag_len = tag.size();
|
||||
if (t->HasAttribute("TAG_LEN")) {
|
||||
// Legacy AEADs are MAC-then-encrypt and may include padding in the TAG
|
||||
// field. TAG_LEN contains the actual size of the digest in that case.
|
||||
std::string tag_len_str;
|
||||
ASSERT_TRUE(t->GetAttribute(&tag_len_str, "TAG_LEN"));
|
||||
tag_len = strtoul(tag_len_str.c_str(), nullptr, 10);
|
||||
ASSERT_TRUE(tag_len);
|
||||
}
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_seal));
|
||||
|
||||
std::vector<uint8_t> out(in.size());
|
||||
std::vector<uint8_t> out_tag(EVP_AEAD_max_overhead(aead()));
|
||||
if (!t->HasAttribute("NO_SEAL")) {
|
||||
size_t out_tag_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal_scatter(
|
||||
ctx.get(), out.data(), out_tag.data(), &out_tag_len, out_tag.size(),
|
||||
nonce.data(), nonce.size(), in.data(), in.size(), nullptr, 0,
|
||||
ad.data(), ad.size()));
|
||||
out_tag.resize(out_tag_len);
|
||||
|
||||
ASSERT_EQ(out.size(), ct.size());
|
||||
ASSERT_EQ(out_tag.size(), tag.size());
|
||||
EXPECT_EQ(Bytes(ct), Bytes(out.data(), ct.size()));
|
||||
EXPECT_EQ(Bytes(tag), Bytes(out_tag.data(), tag.size()));
|
||||
} else {
|
||||
out.resize(ct.size());
|
||||
out_tag.resize(tag.size());
|
||||
OPENSSL_memcpy(out.data(), ct.data(), ct.size());
|
||||
OPENSSL_memcpy(out_tag.data(), tag.data(), tag.size());
|
||||
}
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
std::vector<uint8_t> out2(out.size());
|
||||
int ret = EVP_AEAD_CTX_open_gather(
|
||||
ctx.get(), out2.data(), nonce.data(), nonce.size(), out.data(),
|
||||
out.size(), out_tag.data(), out_tag.size(), ad.data(), ad.size());
|
||||
|
||||
// Skip decryption for AEADs that don't implement open_gather().
|
||||
if (!ret) {
|
||||
int err = ERR_peek_error();
|
||||
if (ERR_GET_LIB(err) == ERR_LIB_CIPHER &&
|
||||
ERR_GET_REASON(err) == CIPHER_R_CTRL_NOT_IMPLEMENTED) {
|
||||
t->SkipCurrent();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (t->HasAttribute("FAILS")) {
|
||||
ASSERT_FALSE(ret) << "Decrypted bad data";
|
||||
ERR_clear_error();
|
||||
return;
|
||||
}
|
||||
|
||||
ASSERT_TRUE(ret) << "Failed to decrypt: "
|
||||
<< ERR_reason_error_string(ERR_get_error());
|
||||
EXPECT_EQ(Bytes(in), Bytes(out2));
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
// Garbage at the end isn't ignored.
|
||||
out_tag.push_back(0);
|
||||
out2.resize(out.size());
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open_gather(
|
||||
ctx.get(), out2.data(), nonce.data(), nonce.size(), out.data(),
|
||||
out.size(), out_tag.data(), out_tag.size(), ad.data(), ad.size()))
|
||||
<< "Decrypted bad data with trailing garbage.";
|
||||
ERR_clear_error();
|
||||
|
||||
// The "stateful" AEADs for implementing pre-AEAD cipher suites need to be
|
||||
// reset after each operation.
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
// Verify integrity is checked.
|
||||
out_tag[0] ^= 0x80;
|
||||
out_tag.resize(out_tag.size() - 1);
|
||||
out2.resize(out.size());
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open_gather(
|
||||
ctx.get(), out2.data(), nonce.data(), nonce.size(), out.data(),
|
||||
out.size(), out_tag.data(), out_tag.size(), ad.data(), ad.size()))
|
||||
<< "Decrypted bad data with corrupted byte.";
|
||||
ERR_clear_error();
|
||||
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key.data(), key.size(), tag_len, evp_aead_open));
|
||||
|
||||
// Check edge case for tag length.
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open_gather(
|
||||
ctx.get(), out2.data(), nonce.data(), nonce.size(), out.data(),
|
||||
out.size(), out_tag.data(), 0, ad.data(), ad.size()))
|
||||
<< "Decrypted bad data with corrupted byte.";
|
||||
ERR_clear_error();
|
||||
});
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, CleanupAfterInitFailure) {
|
||||
uint8_t key[EVP_AEAD_MAX_KEY_LENGTH];
|
||||
OPENSSL_memset(key, 0, sizeof(key));
|
||||
const size_t key_len = EVP_AEAD_key_length(aead());
|
||||
ASSERT_GE(sizeof(key), key_len);
|
||||
|
||||
EVP_AEAD_CTX ctx;
|
||||
ASSERT_FALSE(EVP_AEAD_CTX_init(
|
||||
&ctx, aead(), key, key_len,
|
||||
9999 /* a silly tag length to trigger an error */, NULL /* ENGINE */));
|
||||
ERR_clear_error();
|
||||
|
||||
// Running a second, failed _init should not cause a memory leak.
|
||||
ASSERT_FALSE(EVP_AEAD_CTX_init(
|
||||
&ctx, aead(), key, key_len,
|
||||
9999 /* a silly tag length to trigger an error */, NULL /* ENGINE */));
|
||||
ERR_clear_error();
|
||||
|
||||
// Calling _cleanup on an |EVP_AEAD_CTX| after a failed _init should be a
|
||||
// no-op.
|
||||
EVP_AEAD_CTX_cleanup(&ctx);
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, TruncatedTags) {
|
||||
if (!GetParam().truncated_tags) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t key[EVP_AEAD_MAX_KEY_LENGTH];
|
||||
OPENSSL_memset(key, 0, sizeof(key));
|
||||
const size_t key_len = EVP_AEAD_key_length(aead());
|
||||
ASSERT_GE(sizeof(key), key_len);
|
||||
|
||||
uint8_t nonce[EVP_AEAD_MAX_NONCE_LENGTH];
|
||||
OPENSSL_memset(nonce, 0, sizeof(nonce));
|
||||
const size_t nonce_len = EVP_AEAD_nonce_length(aead());
|
||||
ASSERT_GE(sizeof(nonce), nonce_len);
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init(ctx.get(), aead(), key, key_len,
|
||||
1 /* one byte tag */, NULL /* ENGINE */));
|
||||
|
||||
const uint8_t plaintext[1] = {'A'};
|
||||
|
||||
uint8_t ciphertext[128];
|
||||
size_t ciphertext_len;
|
||||
constexpr uint8_t kSentinel = 42;
|
||||
OPENSSL_memset(ciphertext, kSentinel, sizeof(ciphertext));
|
||||
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), ciphertext, &ciphertext_len,
|
||||
sizeof(ciphertext), nonce, nonce_len, plaintext,
|
||||
sizeof(plaintext), nullptr /* ad */, 0));
|
||||
|
||||
for (size_t i = ciphertext_len; i < sizeof(ciphertext); i++) {
|
||||
// Sealing must not write past where it said it did.
|
||||
EXPECT_EQ(kSentinel, ciphertext[i])
|
||||
<< "Sealing wrote off the end of the buffer.";
|
||||
}
|
||||
|
||||
const size_t overhead_used = ciphertext_len - sizeof(plaintext);
|
||||
const size_t expected_overhead =
|
||||
1 + EVP_AEAD_max_overhead(aead()) - EVP_AEAD_max_tag_len(aead());
|
||||
EXPECT_EQ(overhead_used, expected_overhead)
|
||||
<< "AEAD is probably ignoring request to truncate tags.";
|
||||
|
||||
uint8_t plaintext2[sizeof(plaintext) + 16];
|
||||
OPENSSL_memset(plaintext2, kSentinel, sizeof(plaintext2));
|
||||
|
||||
size_t plaintext2_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_open(
|
||||
ctx.get(), plaintext2, &plaintext2_len, sizeof(plaintext2), nonce,
|
||||
nonce_len, ciphertext, ciphertext_len, nullptr /* ad */, 0))
|
||||
<< "Opening with truncated tag didn't work.";
|
||||
|
||||
for (size_t i = plaintext2_len; i < sizeof(plaintext2); i++) {
|
||||
// Likewise, opening should also stay within bounds.
|
||||
EXPECT_EQ(kSentinel, plaintext2[i])
|
||||
<< "Opening wrote off the end of the buffer.";
|
||||
}
|
||||
|
||||
EXPECT_EQ(Bytes(plaintext), Bytes(plaintext2, plaintext2_len));
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, AliasedBuffers) {
|
||||
if (GetParam().limited_implementation) {
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t key_len = EVP_AEAD_key_length(aead());
|
||||
const size_t nonce_len = EVP_AEAD_nonce_length(aead());
|
||||
const size_t max_overhead = EVP_AEAD_max_overhead(aead());
|
||||
|
||||
std::vector<uint8_t> key(key_len, 'a');
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init(ctx.get(), aead(), key.data(), key_len,
|
||||
EVP_AEAD_DEFAULT_TAG_LENGTH, nullptr));
|
||||
|
||||
static const uint8_t kPlaintext[260] =
|
||||
"testing123456testing123456testing123456testing123456testing123456testing"
|
||||
"123456testing123456testing123456testing123456testing123456testing123456t"
|
||||
"esting123456testing123456testing123456testing123456testing123456testing1"
|
||||
"23456testing123456testing123456testing12345";
|
||||
const std::vector<size_t> offsets = {
|
||||
0, 1, 2, 8, 15, 16, 17, 31, 32, 33, 63,
|
||||
64, 65, 95, 96, 97, 127, 128, 129, 255, 256, 257,
|
||||
};
|
||||
|
||||
std::vector<uint8_t> nonce(nonce_len, 'b');
|
||||
std::vector<uint8_t> valid_encryption(sizeof(kPlaintext) + max_overhead);
|
||||
size_t valid_encryption_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(
|
||||
ctx.get(), valid_encryption.data(), &valid_encryption_len,
|
||||
sizeof(kPlaintext) + max_overhead, nonce.data(), nonce_len, kPlaintext,
|
||||
sizeof(kPlaintext), nullptr, 0))
|
||||
<< "EVP_AEAD_CTX_seal failed with disjoint buffers.";
|
||||
|
||||
// Test with out != in which we expect to fail.
|
||||
std::vector<uint8_t> buffer(2 + valid_encryption_len);
|
||||
uint8_t *in = buffer.data() + 1;
|
||||
uint8_t *out1 = buffer.data();
|
||||
uint8_t *out2 = buffer.data() + 2;
|
||||
|
||||
OPENSSL_memcpy(in, kPlaintext, sizeof(kPlaintext));
|
||||
size_t out_len;
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_seal(
|
||||
ctx.get(), out1 /* in - 1 */, &out_len, sizeof(kPlaintext) + max_overhead,
|
||||
nonce.data(), nonce_len, in, sizeof(kPlaintext), nullptr, 0));
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_seal(
|
||||
ctx.get(), out2 /* in + 1 */, &out_len, sizeof(kPlaintext) + max_overhead,
|
||||
nonce.data(), nonce_len, in, sizeof(kPlaintext), nullptr, 0));
|
||||
ERR_clear_error();
|
||||
|
||||
OPENSSL_memcpy(in, valid_encryption.data(), valid_encryption_len);
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(ctx.get(), out1 /* in - 1 */, &out_len,
|
||||
valid_encryption_len, nonce.data(), nonce_len,
|
||||
in, valid_encryption_len, nullptr, 0));
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(ctx.get(), out2 /* in + 1 */, &out_len,
|
||||
valid_encryption_len, nonce.data(), nonce_len,
|
||||
in, valid_encryption_len, nullptr, 0));
|
||||
ERR_clear_error();
|
||||
|
||||
// Test with out == in, which we expect to work.
|
||||
OPENSSL_memcpy(in, kPlaintext, sizeof(kPlaintext));
|
||||
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), in, &out_len,
|
||||
sizeof(kPlaintext) + max_overhead, nonce.data(),
|
||||
nonce_len, in, sizeof(kPlaintext), nullptr, 0));
|
||||
EXPECT_EQ(Bytes(valid_encryption.data(), valid_encryption_len),
|
||||
Bytes(in, out_len));
|
||||
|
||||
OPENSSL_memcpy(in, valid_encryption.data(), valid_encryption_len);
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_open(ctx.get(), in, &out_len, valid_encryption_len,
|
||||
nonce.data(), nonce_len, in,
|
||||
valid_encryption_len, nullptr, 0));
|
||||
EXPECT_EQ(Bytes(kPlaintext), Bytes(in, out_len));
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, UnalignedInput) {
|
||||
alignas(64) uint8_t key[EVP_AEAD_MAX_KEY_LENGTH + 1];
|
||||
alignas(64) uint8_t nonce[EVP_AEAD_MAX_NONCE_LENGTH + 1];
|
||||
alignas(64) uint8_t plaintext[32 + 1];
|
||||
alignas(64) uint8_t ad[32 + 1];
|
||||
OPENSSL_memset(key, 'K', sizeof(key));
|
||||
OPENSSL_memset(nonce, 'N', sizeof(nonce));
|
||||
OPENSSL_memset(plaintext, 'P', sizeof(plaintext));
|
||||
OPENSSL_memset(ad, 'A', sizeof(ad));
|
||||
const size_t key_len = EVP_AEAD_key_length(aead());
|
||||
ASSERT_GE(sizeof(key) - 1, key_len);
|
||||
const size_t nonce_len = EVP_AEAD_nonce_length(aead());
|
||||
ASSERT_GE(sizeof(nonce) - 1, nonce_len);
|
||||
const size_t ad_len =
|
||||
GetParam().ad_len != 0 ? GetParam().ad_len : sizeof(ad) - 1;
|
||||
ASSERT_GE(sizeof(ad) - 1, ad_len);
|
||||
|
||||
// Encrypt some input.
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key + 1, key_len, EVP_AEAD_DEFAULT_TAG_LENGTH,
|
||||
evp_aead_seal));
|
||||
alignas(64) uint8_t ciphertext[sizeof(plaintext) + EVP_AEAD_MAX_OVERHEAD];
|
||||
size_t ciphertext_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), ciphertext + 1, &ciphertext_len,
|
||||
sizeof(ciphertext) - 1, nonce + 1, nonce_len,
|
||||
plaintext + 1, sizeof(plaintext) - 1, ad + 1,
|
||||
ad_len));
|
||||
|
||||
// It must successfully decrypt.
|
||||
alignas(64) uint8_t out[sizeof(ciphertext)];
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), key + 1, key_len, EVP_AEAD_DEFAULT_TAG_LENGTH,
|
||||
evp_aead_open));
|
||||
size_t out_len;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_open(ctx.get(), out + 1, &out_len, sizeof(out) - 1,
|
||||
nonce + 1, nonce_len, ciphertext + 1,
|
||||
ciphertext_len, ad + 1, ad_len));
|
||||
EXPECT_EQ(Bytes(plaintext + 1, sizeof(plaintext) - 1),
|
||||
Bytes(out + 1, out_len));
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, Overflow) {
|
||||
alignas(64) uint8_t key[EVP_AEAD_MAX_KEY_LENGTH];
|
||||
OPENSSL_memset(key, 'K', sizeof(key));
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
const size_t max_tag_len = EVP_AEAD_max_tag_len(aead());
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(ctx.get(), aead(), key,
|
||||
EVP_AEAD_key_length(aead()),
|
||||
max_tag_len, evp_aead_seal));
|
||||
|
||||
uint8_t plaintext[1] = {0};
|
||||
uint8_t ciphertext[1024] = {0};
|
||||
size_t ciphertext_len;
|
||||
// The AEAD must not overflow when calculating the ciphertext length.
|
||||
ASSERT_FALSE(EVP_AEAD_CTX_seal(
|
||||
ctx.get(), ciphertext, &ciphertext_len, sizeof(ciphertext), nullptr, 0,
|
||||
plaintext, std::numeric_limits<size_t>::max() - max_tag_len + 1, nullptr,
|
||||
0));
|
||||
ERR_clear_error();
|
||||
|
||||
// (Can't test the scatter interface because it'll attempt to zero the output
|
||||
// buffer on error and the primary output buffer is implicitly the same size
|
||||
// as the input.)
|
||||
}
|
||||
|
||||
TEST_P(PerAEADTest, InvalidNonceLength) {
|
||||
size_t valid_nonce_len = EVP_AEAD_nonce_length(aead());
|
||||
std::vector<size_t> nonce_lens;
|
||||
if (valid_nonce_len != 0) {
|
||||
// Other than the implicit IV TLS "AEAD"s, none of our AEADs allow empty
|
||||
// nonces. In particular, although AES-GCM was incorrectly specified with
|
||||
// variable-length nonces, it does not allow the empty nonce.
|
||||
nonce_lens.push_back(0);
|
||||
}
|
||||
if (!GetParam().variable_nonce) {
|
||||
nonce_lens.push_back(valid_nonce_len + 1);
|
||||
if (valid_nonce_len != 0) {
|
||||
nonce_lens.push_back(valid_nonce_len - 1);
|
||||
}
|
||||
}
|
||||
|
||||
static const uint8_t kZeros[EVP_AEAD_MAX_KEY_LENGTH] = {0};
|
||||
const size_t ad_len = GetParam().ad_len != 0 ? GetParam().ad_len : 16;
|
||||
ASSERT_LE(ad_len, sizeof(kZeros));
|
||||
|
||||
for (size_t nonce_len : nonce_lens) {
|
||||
SCOPED_TRACE(nonce_len);
|
||||
uint8_t buf[256];
|
||||
size_t len;
|
||||
std::vector<uint8_t> nonce(nonce_len);
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), kZeros, EVP_AEAD_key_length(aead()),
|
||||
EVP_AEAD_DEFAULT_TAG_LENGTH, evp_aead_seal));
|
||||
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_seal(ctx.get(), buf, &len, sizeof(buf),
|
||||
nonce.data(), nonce.size(), nullptr /* in */,
|
||||
0, kZeros /* ad */, ad_len));
|
||||
uint32_t err = ERR_get_error();
|
||||
EXPECT_EQ(ERR_LIB_CIPHER, ERR_GET_LIB(err));
|
||||
// TODO(davidben): Merge these errors. https://crbug.com/boringssl/129.
|
||||
if (ERR_GET_REASON(err) != CIPHER_R_UNSUPPORTED_NONCE_SIZE) {
|
||||
EXPECT_EQ(CIPHER_R_INVALID_NONCE_SIZE, ERR_GET_REASON(err));
|
||||
}
|
||||
|
||||
ctx.Reset();
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init_with_direction(
|
||||
ctx.get(), aead(), kZeros, EVP_AEAD_key_length(aead()),
|
||||
EVP_AEAD_DEFAULT_TAG_LENGTH, evp_aead_open));
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(ctx.get(), buf, &len, sizeof(buf),
|
||||
nonce.data(), nonce.size(), kZeros /* in */,
|
||||
sizeof(kZeros), kZeros /* ad */, ad_len));
|
||||
err = ERR_get_error();
|
||||
EXPECT_EQ(ERR_LIB_CIPHER, ERR_GET_LIB(err));
|
||||
if (ERR_GET_REASON(err) != CIPHER_R_UNSUPPORTED_NONCE_SIZE) {
|
||||
EXPECT_EQ(CIPHER_R_INVALID_NONCE_SIZE, ERR_GET_REASON(err));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST(AEADTest, AESCCMLargeAD) {
|
||||
static const std::vector<uint8_t> kKey(16, 'A');
|
||||
static const std::vector<uint8_t> kNonce(13, 'N');
|
||||
static const std::vector<uint8_t> kAD(65536, 'D');
|
||||
static const std::vector<uint8_t> kPlaintext = {
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f};
|
||||
static const std::vector<uint8_t> kCiphertext = {
|
||||
0xa2, 0x12, 0x3f, 0x0b, 0x07, 0xd5, 0x02, 0xff,
|
||||
0xa9, 0xcd, 0xa0, 0xf3, 0x69, 0x1c, 0x49, 0x0c};
|
||||
static const std::vector<uint8_t> kTag = {0x4a, 0x31, 0x82, 0x96};
|
||||
|
||||
// Test AES-128-CCM-Bluetooth.
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init(ctx.get(), EVP_aead_aes_128_ccm_bluetooth(),
|
||||
kKey.data(), kKey.size(),
|
||||
EVP_AEAD_DEFAULT_TAG_LENGTH, nullptr));
|
||||
|
||||
std::vector<uint8_t> out(kCiphertext.size() + kTag.size());
|
||||
size_t out_len;
|
||||
EXPECT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), out.data(), &out_len, out.size(),
|
||||
kNonce.data(), kNonce.size(), kPlaintext.data(),
|
||||
kPlaintext.size(), kAD.data(), kAD.size()));
|
||||
|
||||
ASSERT_EQ(out_len, kCiphertext.size() + kTag.size());
|
||||
EXPECT_EQ(Bytes(kCiphertext), Bytes(out.data(), kCiphertext.size()));
|
||||
EXPECT_EQ(Bytes(kTag), Bytes(out.data() + kCiphertext.size(), kTag.size()));
|
||||
|
||||
EXPECT_TRUE(EVP_AEAD_CTX_open(ctx.get(), out.data(), &out_len, out.size(),
|
||||
kNonce.data(), kNonce.size(), out.data(),
|
||||
out.size(), kAD.data(), kAD.size()));
|
||||
|
||||
ASSERT_EQ(out_len, kPlaintext.size());
|
||||
EXPECT_EQ(Bytes(kPlaintext), Bytes(out.data(), kPlaintext.size()));
|
||||
}
|
||||
|
||||
static void RunWycheproofTestCase(FileTest *t, const EVP_AEAD *aead) {
|
||||
t->IgnoreInstruction("ivSize");
|
||||
|
||||
std::vector<uint8_t> aad, ct, iv, key, msg, tag;
|
||||
ASSERT_TRUE(t->GetBytes(&aad, "aad"));
|
||||
ASSERT_TRUE(t->GetBytes(&ct, "ct"));
|
||||
ASSERT_TRUE(t->GetBytes(&iv, "iv"));
|
||||
ASSERT_TRUE(t->GetBytes(&key, "key"));
|
||||
ASSERT_TRUE(t->GetBytes(&msg, "msg"));
|
||||
ASSERT_TRUE(t->GetBytes(&tag, "tag"));
|
||||
std::string tag_size_str;
|
||||
ASSERT_TRUE(t->GetInstruction(&tag_size_str, "tagSize"));
|
||||
size_t tag_size = static_cast<size_t>(atoi(tag_size_str.c_str()));
|
||||
ASSERT_EQ(0u, tag_size % 8);
|
||||
tag_size /= 8;
|
||||
WycheproofResult result;
|
||||
ASSERT_TRUE(GetWycheproofResult(t, &result));
|
||||
|
||||
std::vector<uint8_t> ct_and_tag = ct;
|
||||
ct_and_tag.insert(ct_and_tag.end(), tag.begin(), tag.end());
|
||||
|
||||
bssl::ScopedEVP_AEAD_CTX ctx;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_init(ctx.get(), aead, key.data(), key.size(),
|
||||
tag_size, nullptr));
|
||||
std::vector<uint8_t> out(msg.size());
|
||||
size_t out_len;
|
||||
// Wycheproof tags small AES-GCM IVs as "acceptable" and otherwise does not
|
||||
// use it in AEADs. Any AES-GCM IV that isn't 96 bits is absurd, but our API
|
||||
// supports those, so we treat "acceptable" as "valid" here.
|
||||
if (result != WycheproofResult::kInvalid) {
|
||||
// Decryption should succeed.
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_open(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), ct_and_tag.data(),
|
||||
ct_and_tag.size(), aad.data(), aad.size()));
|
||||
EXPECT_EQ(Bytes(msg), Bytes(out.data(), out_len));
|
||||
|
||||
// Decryption in-place should succeed.
|
||||
out = ct_and_tag;
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_open(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), out.data(), out.size(),
|
||||
aad.data(), aad.size()));
|
||||
EXPECT_EQ(Bytes(msg), Bytes(out.data(), out_len));
|
||||
|
||||
// AEADs are deterministic, so encryption should produce the same result.
|
||||
out.resize(ct_and_tag.size());
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), msg.data(), msg.size(),
|
||||
aad.data(), aad.size()));
|
||||
EXPECT_EQ(Bytes(ct_and_tag), Bytes(out.data(), out_len));
|
||||
|
||||
// Encrypt in-place.
|
||||
out = msg;
|
||||
out.resize(ct_and_tag.size());
|
||||
ASSERT_TRUE(EVP_AEAD_CTX_seal(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), out.data(), msg.size(),
|
||||
aad.data(), aad.size()));
|
||||
EXPECT_EQ(Bytes(ct_and_tag), Bytes(out.data(), out_len));
|
||||
} else {
|
||||
// Decryption should fail.
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), ct_and_tag.data(),
|
||||
ct_and_tag.size(), aad.data(), aad.size()));
|
||||
|
||||
// Decryption in-place should also fail.
|
||||
out = ct_and_tag;
|
||||
EXPECT_FALSE(EVP_AEAD_CTX_open(ctx.get(), out.data(), &out_len, out.size(),
|
||||
iv.data(), iv.size(), out.data(), out.size(),
|
||||
aad.data(), aad.size()));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(AEADTest, WycheproofAESGCMSIV) {
|
||||
FileTestGTest("third_party/wycheproof_testvectors/aes_gcm_siv_test.txt",
|
||||
[](FileTest *t) {
|
||||
std::string key_size_str;
|
||||
ASSERT_TRUE(t->GetInstruction(&key_size_str, "keySize"));
|
||||
const EVP_AEAD *aead;
|
||||
switch (atoi(key_size_str.c_str())) {
|
||||
case 128:
|
||||
aead = EVP_aead_aes_128_gcm_siv();
|
||||
break;
|
||||
case 256:
|
||||
aead = EVP_aead_aes_256_gcm_siv();
|
||||
break;
|
||||
default:
|
||||
FAIL() << "Unknown key size: " << key_size_str;
|
||||
}
|
||||
|
||||
RunWycheproofTestCase(t, aead);
|
||||
});
|
||||
}
|
||||
|
||||
TEST(AEADTest, WycheproofAESGCM) {
|
||||
FileTestGTest("third_party/wycheproof_testvectors/aes_gcm_test.txt",
|
||||
[](FileTest *t) {
|
||||
std::string key_size_str;
|
||||
ASSERT_TRUE(t->GetInstruction(&key_size_str, "keySize"));
|
||||
const EVP_AEAD *aead;
|
||||
switch (atoi(key_size_str.c_str())) {
|
||||
case 128:
|
||||
aead = EVP_aead_aes_128_gcm();
|
||||
break;
|
||||
case 192:
|
||||
aead = EVP_aead_aes_192_gcm();
|
||||
break;
|
||||
case 256:
|
||||
aead = EVP_aead_aes_256_gcm();
|
||||
break;
|
||||
default:
|
||||
FAIL() << "Unknown key size: " << key_size_str;
|
||||
}
|
||||
|
||||
RunWycheproofTestCase(t, aead);
|
||||
});
|
||||
}
|
||||
|
||||
TEST(AEADTest, WycheproofChaCha20Poly1305) {
|
||||
FileTestGTest("third_party/wycheproof_testvectors/chacha20_poly1305_test.txt",
|
||||
[](FileTest *t) {
|
||||
t->IgnoreInstruction("keySize");
|
||||
RunWycheproofTestCase(t, EVP_aead_chacha20_poly1305());
|
||||
});
|
||||
}
|
|
@ -2253,4 +2253,4 @@ aes256gcmsiv_kdf();
|
|||
|
||||
print $code;
|
||||
|
||||
close STDOUT;
|
||||
close STDOUT or die "error closing STDOUT";
|
||||
|
|
|
@ -2478,6 +2478,7 @@ if (!$win64) {
|
|||
print $code;
|
||||
} else {
|
||||
print <<___;
|
||||
.text
|
||||
.globl dummy_chacha20_poly1305_asm
|
||||
.type dummy_chacha20_poly1305_asm,\@abi-omnipotent
|
||||
dummy_chacha20_poly1305_asm:
|
||||
|
@ -2485,4 +2486,4 @@ dummy_chacha20_poly1305_asm:
|
|||
___
|
||||
}
|
||||
|
||||
close STDOUT;
|
||||
close STDOUT or die "error closing STDOUT";
|
||||
|
|
|
@ -94,20 +94,49 @@ const EVP_CIPHER *EVP_get_cipherbyname(const char *name) {
|
|||
} else if (OPENSSL_strcasecmp(name, "des-cbc") == 0) {
|
||||
return EVP_des_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "des-ede3-cbc") == 0 ||
|
||||
// This is not a name used by OpenSSL, but tcpdump registers it
|
||||
// with |EVP_add_cipher_alias|. Our |EVP_add_cipher_alias| is a
|
||||
// no-op, so we support the name here.
|
||||
OPENSSL_strcasecmp(name, "3des") == 0) {
|
||||
return EVP_des_ede3_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-128-cbc") == 0) {
|
||||
return EVP_aes_128_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-192-cbc") == 0) {
|
||||
return EVP_aes_192_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-256-cbc") == 0) {
|
||||
return EVP_aes_256_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-128-ctr") == 0) {
|
||||
return EVP_aes_128_ctr();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-192-ctr") == 0) {
|
||||
return EVP_aes_192_ctr();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-256-ctr") == 0) {
|
||||
return EVP_aes_256_ctr();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-128-ecb") == 0) {
|
||||
return EVP_aes_128_ecb();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-192-ecb") == 0) {
|
||||
return EVP_aes_192_ecb();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-256-ecb") == 0) {
|
||||
return EVP_aes_256_ecb();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-128-gcm") == 0) {
|
||||
return EVP_aes_128_gcm();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-192-gcm") == 0) {
|
||||
return EVP_aes_192_gcm();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-256-gcm") == 0) {
|
||||
return EVP_aes_256_gcm();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-128-ofb") == 0) {
|
||||
return EVP_aes_128_ofb();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-192-ofb") == 0) {
|
||||
return EVP_aes_192_ofb();
|
||||
} else if (OPENSSL_strcasecmp(name, "aes-256-ofb") == 0) {
|
||||
return EVP_aes_256_ofb();
|
||||
} else if (OPENSSL_strcasecmp(name, "des-ecb") == 0) {
|
||||
return EVP_des_ecb();
|
||||
} else if (OPENSSL_strcasecmp(name, "des-ede") == 0) {
|
||||
return EVP_des_ede();
|
||||
} else if (OPENSSL_strcasecmp(name, "des-ede-cbc") == 0) {
|
||||
return EVP_des_ede_cbc();
|
||||
} else if (OPENSSL_strcasecmp(name, "rc2-cbc") == 0) {
|
||||
return EVP_rc2_cbc();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
377
TMessagesProj/jni/boringssl/crypto/cipher_extra/cipher_test.cc
Normal file
377
TMessagesProj/jni/boringssl/crypto/cipher_extra/cipher_test.cc
Normal file
|
@ -0,0 +1,377 @@
|
|||
/*
|
||||
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||
* project.
|
||||
*/
|
||||
/* ====================================================================
|
||||
* Copyright (c) 2015 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* licensing@OpenSSL.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*/
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/cipher.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/span.h>
|
||||
|
||||
#include "../test/file_test.h"
|
||||
#include "../test/test_util.h"
|
||||
#include "../test/wycheproof_util.h"
|
||||
|
||||
|
||||
static const EVP_CIPHER *GetCipher(const std::string &name) {
|
||||
if (name == "DES-CBC") {
|
||||
return EVP_des_cbc();
|
||||
} else if (name == "DES-ECB") {
|
||||
return EVP_des_ecb();
|
||||
} else if (name == "DES-EDE") {
|
||||
return EVP_des_ede();
|
||||
} else if (name == "DES-EDE3") {
|
||||
return EVP_des_ede3();
|
||||
} else if (name == "DES-EDE-CBC") {
|
||||
return EVP_des_ede_cbc();
|
||||
} else if (name == "DES-EDE3-CBC") {
|
||||
return EVP_des_ede3_cbc();
|
||||
} else if (name == "RC4") {
|
||||
return EVP_rc4();
|
||||
} else if (name == "AES-128-ECB") {
|
||||
return EVP_aes_128_ecb();
|
||||
} else if (name == "AES-256-ECB") {
|
||||
return EVP_aes_256_ecb();
|
||||
} else if (name == "AES-128-CBC") {
|
||||
return EVP_aes_128_cbc();
|
||||
} else if (name == "AES-128-GCM") {
|
||||
return EVP_aes_128_gcm();
|
||||
} else if (name == "AES-128-OFB") {
|
||||
return EVP_aes_128_ofb();
|
||||
} else if (name == "AES-192-CBC") {
|
||||
return EVP_aes_192_cbc();
|
||||
} else if (name == "AES-192-CTR") {
|
||||
return EVP_aes_192_ctr();
|
||||
} else if (name == "AES-192-ECB") {
|
||||
return EVP_aes_192_ecb();
|
||||
} else if (name == "AES-192-OFB") {
|
||||
return EVP_aes_192_ofb();
|
||||
} else if (name == "AES-256-CBC") {
|
||||
return EVP_aes_256_cbc();
|
||||
} else if (name == "AES-128-CTR") {
|
||||
return EVP_aes_128_ctr();
|
||||
} else if (name == "AES-256-CTR") {
|
||||
return EVP_aes_256_ctr();
|
||||
} else if (name == "AES-256-GCM") {
|
||||
return EVP_aes_256_gcm();
|
||||
} else if (name == "AES-256-OFB") {
|
||||
return EVP_aes_256_ofb();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
static bool DoCipher(EVP_CIPHER_CTX *ctx, std::vector<uint8_t> *out,
|
||||
bssl::Span<const uint8_t> in, size_t chunk) {
|
||||
size_t max_out = in.size();
|
||||
if ((EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_NO_PADDING) == 0 &&
|
||||
EVP_CIPHER_CTX_encrypting(ctx)) {
|
||||
unsigned block_size = EVP_CIPHER_CTX_block_size(ctx);
|
||||
max_out += block_size - (max_out % block_size);
|
||||
}
|
||||
out->resize(max_out);
|
||||
|
||||
size_t total = 0;
|
||||
int len;
|
||||
while (!in.empty()) {
|
||||
size_t todo = chunk == 0 ? in.size() : std::min(in.size(), chunk);
|
||||
EXPECT_LE(todo, static_cast<size_t>(INT_MAX));
|
||||
if (!EVP_CipherUpdate(ctx, out->data() + total, &len, in.data(),
|
||||
static_cast<int>(todo))) {
|
||||
return false;
|
||||
}
|
||||
EXPECT_GE(len, 0);
|
||||
total += static_cast<size_t>(len);
|
||||
in = in.subspan(todo);
|
||||
}
|
||||
if (!EVP_CipherFinal_ex(ctx, out->data() + total, &len)) {
|
||||
return false;
|
||||
}
|
||||
EXPECT_GE(len, 0);
|
||||
total += static_cast<size_t>(len);
|
||||
out->resize(total);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void TestOperation(FileTest *t, const EVP_CIPHER *cipher, bool encrypt,
|
||||
bool copy, size_t chunk_size,
|
||||
const std::vector<uint8_t> &key,
|
||||
const std::vector<uint8_t> &iv,
|
||||
const std::vector<uint8_t> &plaintext,
|
||||
const std::vector<uint8_t> &ciphertext,
|
||||
const std::vector<uint8_t> &aad,
|
||||
const std::vector<uint8_t> &tag) {
|
||||
const std::vector<uint8_t> *in, *out;
|
||||
if (encrypt) {
|
||||
in = &plaintext;
|
||||
out = &ciphertext;
|
||||
} else {
|
||||
in = &ciphertext;
|
||||
out = &plaintext;
|
||||
}
|
||||
|
||||
bool is_aead = EVP_CIPHER_mode(cipher) == EVP_CIPH_GCM_MODE;
|
||||
|
||||
bssl::ScopedEVP_CIPHER_CTX ctx1;
|
||||
ASSERT_TRUE(EVP_CipherInit_ex(ctx1.get(), cipher, nullptr, nullptr, nullptr,
|
||||
encrypt ? 1 : 0));
|
||||
if (t->HasAttribute("IV")) {
|
||||
if (is_aead) {
|
||||
ASSERT_TRUE(EVP_CIPHER_CTX_ctrl(ctx1.get(), EVP_CTRL_AEAD_SET_IVLEN,
|
||||
iv.size(), 0));
|
||||
} else {
|
||||
ASSERT_EQ(iv.size(), EVP_CIPHER_CTX_iv_length(ctx1.get()));
|
||||
}
|
||||
}
|
||||
|
||||
bssl::ScopedEVP_CIPHER_CTX ctx2;
|
||||
EVP_CIPHER_CTX *ctx = ctx1.get();
|
||||
if (copy) {
|
||||
ASSERT_TRUE(EVP_CIPHER_CTX_copy(ctx2.get(), ctx1.get()));
|
||||
ctx = ctx2.get();
|
||||
}
|
||||
|
||||
if (is_aead && !encrypt) {
|
||||
ASSERT_TRUE(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag.size(),
|
||||
const_cast<uint8_t *>(tag.data())));
|
||||
}
|
||||
// The ciphers are run with no padding. For each of the ciphers we test, the
|
||||
// output size matches the input size.
|
||||
ASSERT_EQ(in->size(), out->size());
|
||||
ASSERT_TRUE(EVP_CIPHER_CTX_set_key_length(ctx, key.size()));
|
||||
ASSERT_TRUE(
|
||||
EVP_CipherInit_ex(ctx, nullptr, nullptr, key.data(), iv.data(), -1));
|
||||
// Note: the deprecated |EVP_CIPHER|-based AEAD API is sensitive to whether
|
||||
// parameters are NULL, so it is important to skip the |in| and |aad|
|
||||
// |EVP_CipherUpdate| calls when empty.
|
||||
if (!aad.empty()) {
|
||||
int unused;
|
||||
ASSERT_TRUE(
|
||||
EVP_CipherUpdate(ctx, nullptr, &unused, aad.data(), aad.size()));
|
||||
}
|
||||
ASSERT_TRUE(EVP_CIPHER_CTX_set_padding(ctx, 0));
|
||||
std::vector<uint8_t> result;
|
||||
ASSERT_TRUE(DoCipher(ctx, &result, *in, chunk_size));
|
||||
EXPECT_EQ(Bytes(*out), Bytes(result));
|
||||
if (encrypt && is_aead) {
|
||||
uint8_t rtag[16];
|
||||
ASSERT_LE(tag.size(), sizeof(rtag));
|
||||
ASSERT_TRUE(
|
||||
EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG, tag.size(), rtag));
|
||||
EXPECT_EQ(Bytes(tag), Bytes(rtag, tag.size()));
|
||||
}
|
||||
}
|
||||
|
||||
static void TestCipher(FileTest *t) {
|
||||
std::string cipher_str;
|
||||
ASSERT_TRUE(t->GetAttribute(&cipher_str, "Cipher"));
|
||||
const EVP_CIPHER *cipher = GetCipher(cipher_str);
|
||||
ASSERT_TRUE(cipher);
|
||||
|
||||
std::vector<uint8_t> key, iv, plaintext, ciphertext, aad, tag;
|
||||
ASSERT_TRUE(t->GetBytes(&key, "Key"));
|
||||
ASSERT_TRUE(t->GetBytes(&plaintext, "Plaintext"));
|
||||
ASSERT_TRUE(t->GetBytes(&ciphertext, "Ciphertext"));
|
||||
if (EVP_CIPHER_iv_length(cipher) > 0) {
|
||||
ASSERT_TRUE(t->GetBytes(&iv, "IV"));
|
||||
}
|
||||
if (EVP_CIPHER_mode(cipher) == EVP_CIPH_GCM_MODE) {
|
||||
ASSERT_TRUE(t->GetBytes(&aad, "AAD"));
|
||||
ASSERT_TRUE(t->GetBytes(&tag, "Tag"));
|
||||
}
|
||||
|
||||
enum {
|
||||
kEncrypt,
|
||||
kDecrypt,
|
||||
kBoth,
|
||||
} operation = kBoth;
|
||||
if (t->HasAttribute("Operation")) {
|
||||
const std::string &str = t->GetAttributeOrDie("Operation");
|
||||
if (str == "ENCRYPT") {
|
||||
operation = kEncrypt;
|
||||
} else if (str == "DECRYPT") {
|
||||
operation = kDecrypt;
|
||||
} else {
|
||||
FAIL() << "Unknown operation: " << str;
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<size_t> chunk_sizes = {0, 1, 2, 5, 7, 8, 9, 15, 16,
|
||||
17, 31, 32, 33, 63, 64, 65, 512};
|
||||
|
||||
for (size_t chunk_size : chunk_sizes) {
|
||||
SCOPED_TRACE(chunk_size);
|
||||
// By default, both directions are run, unless overridden by the operation.
|
||||
if (operation != kDecrypt) {
|
||||
SCOPED_TRACE("encrypt");
|
||||
TestOperation(t, cipher, true /* encrypt */, false /* no copy */,
|
||||
chunk_size, key, iv, plaintext, ciphertext, aad, tag);
|
||||
TestOperation(t, cipher, true /* encrypt */, true /* copy */, chunk_size,
|
||||
key, iv, plaintext, ciphertext, aad, tag);
|
||||
}
|
||||
|
||||
if (operation != kEncrypt) {
|
||||
SCOPED_TRACE("decrypt");
|
||||
TestOperation(t, cipher, false /* decrypt */, false /* no copy */,
|
||||
chunk_size, key, iv, plaintext, ciphertext, aad, tag);
|
||||
TestOperation(t, cipher, false /* decrypt */, true /* copy */, chunk_size,
|
||||
key, iv, plaintext, ciphertext, aad, tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TEST(CipherTest, TestVectors) {
|
||||
FileTestGTest("crypto/cipher_extra/test/cipher_tests.txt", TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_128_CBC) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_128_CTR) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_192_CBC) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_192_CTR) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_256_CBC) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_AES_256_CTR) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
|
||||
TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_TDES_CBC) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt", TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, CAVP_TDES_ECB) {
|
||||
FileTestGTest("crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt", TestCipher);
|
||||
}
|
||||
|
||||
TEST(CipherTest, WycheproofAESCBC) {
|
||||
FileTestGTest("third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt",
|
||||
[](FileTest *t) {
|
||||
t->IgnoreInstruction("type");
|
||||
t->IgnoreInstruction("ivSize");
|
||||
|
||||
std::string key_size;
|
||||
ASSERT_TRUE(t->GetInstruction(&key_size, "keySize"));
|
||||
const EVP_CIPHER *cipher;
|
||||
switch (atoi(key_size.c_str())) {
|
||||
case 128:
|
||||
cipher = EVP_aes_128_cbc();
|
||||
break;
|
||||
case 192:
|
||||
cipher = EVP_aes_192_cbc();
|
||||
break;
|
||||
case 256:
|
||||
cipher = EVP_aes_256_cbc();
|
||||
break;
|
||||
default:
|
||||
FAIL() << "Unsupported key size: " << key_size;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> key, iv, msg, ct;
|
||||
ASSERT_TRUE(t->GetBytes(&key, "key"));
|
||||
ASSERT_TRUE(t->GetBytes(&iv, "iv"));
|
||||
ASSERT_TRUE(t->GetBytes(&msg, "msg"));
|
||||
ASSERT_TRUE(t->GetBytes(&ct, "ct"));
|
||||
ASSERT_EQ(EVP_CIPHER_key_length(cipher), key.size());
|
||||
ASSERT_EQ(EVP_CIPHER_iv_length(cipher), iv.size());
|
||||
WycheproofResult result;
|
||||
ASSERT_TRUE(GetWycheproofResult(t, &result));
|
||||
|
||||
bssl::ScopedEVP_CIPHER_CTX ctx;
|
||||
std::vector<uint8_t> out;
|
||||
const std::vector<size_t> chunk_sizes = {0, 1, 2, 5, 7, 8, 9, 15, 16,
|
||||
17, 31, 32, 33, 63, 64, 65, 512};
|
||||
for (size_t chunk : chunk_sizes) {
|
||||
SCOPED_TRACE(chunk);
|
||||
if (result == WycheproofResult::kValid) {
|
||||
ASSERT_TRUE(EVP_DecryptInit_ex(ctx.get(), cipher, nullptr, key.data(),
|
||||
iv.data()));
|
||||
ASSERT_TRUE(DoCipher(ctx.get(), &out, ct, chunk));
|
||||
EXPECT_EQ(Bytes(msg), Bytes(out));
|
||||
|
||||
ASSERT_TRUE(EVP_EncryptInit_ex(ctx.get(), cipher, nullptr, key.data(),
|
||||
iv.data()));
|
||||
ASSERT_TRUE(DoCipher(ctx.get(), &out, msg, chunk));
|
||||
EXPECT_EQ(Bytes(ct), Bytes(out));
|
||||
} else {
|
||||
ASSERT_TRUE(EVP_DecryptInit_ex(ctx.get(), cipher, nullptr, key.data(),
|
||||
iv.data()));
|
||||
EXPECT_FALSE(DoCipher(ctx.get(), &out, ct, chunk));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
447
TMessagesProj/jni/boringssl/crypto/cipher_extra/e_aesccm.c
Normal file
447
TMessagesProj/jni/boringssl/crypto/cipher_extra/e_aesccm.c
Normal file
|
@ -0,0 +1,447 @@
|
|||
/* ====================================================================
|
||||
* Copyright (c) 2008 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ==================================================================== */
|
||||
|
||||
#include <openssl/aead.h>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include <openssl/cpu.h>
|
||||
#include <openssl/cipher.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/mem.h>
|
||||
|
||||
#include "../fipsmodule/cipher/internal.h"
|
||||
|
||||
|
||||
struct ccm128_context {
|
||||
block128_f block;
|
||||
ctr128_f ctr;
|
||||
unsigned M, L;
|
||||
};
|
||||
|
||||
struct ccm128_state {
|
||||
union {
|
||||
uint64_t u[2];
|
||||
uint8_t c[16];
|
||||
} nonce, cmac;
|
||||
};
|
||||
|
||||
static int CRYPTO_ccm128_init(struct ccm128_context *ctx, const AES_KEY *key,
|
||||
block128_f block, ctr128_f ctr, unsigned M,
|
||||
unsigned L) {
|
||||
if (M < 4 || M > 16 || (M & 1) != 0 || L < 2 || L > 8) {
|
||||
return 0;
|
||||
}
|
||||
ctx->block = block;
|
||||
ctx->ctr = ctr;
|
||||
ctx->M = M;
|
||||
ctx->L = L;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static size_t CRYPTO_ccm128_max_input(const struct ccm128_context *ctx) {
|
||||
return ctx->L >= sizeof(size_t) ? (size_t)-1
|
||||
: (((size_t)1) << (ctx->L * 8)) - 1;
|
||||
}
|
||||
|
||||
static int ccm128_init_state(const struct ccm128_context *ctx,
|
||||
struct ccm128_state *state, const AES_KEY *key,
|
||||
const uint8_t *nonce, size_t nonce_len,
|
||||
const uint8_t *aad, size_t aad_len,
|
||||
size_t plaintext_len) {
|
||||
const block128_f block = ctx->block;
|
||||
const unsigned M = ctx->M;
|
||||
const unsigned L = ctx->L;
|
||||
|
||||
// |L| determines the expected |nonce_len| and the limit for |plaintext_len|.
|
||||
if (plaintext_len > CRYPTO_ccm128_max_input(ctx) ||
|
||||
nonce_len != 15 - L) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Assemble the first block for computing the MAC.
|
||||
OPENSSL_memset(state, 0, sizeof(*state));
|
||||
state->nonce.c[0] = (uint8_t)((L - 1) | ((M - 2) / 2) << 3);
|
||||
if (aad_len != 0) {
|
||||
state->nonce.c[0] |= 0x40; // Set AAD Flag
|
||||
}
|
||||
OPENSSL_memcpy(&state->nonce.c[1], nonce, nonce_len);
|
||||
for (unsigned i = 0; i < L; i++) {
|
||||
state->nonce.c[15 - i] = (uint8_t)(plaintext_len >> (8 * i));
|
||||
}
|
||||
|
||||
(*block)(state->nonce.c, state->cmac.c, key);
|
||||
size_t blocks = 1;
|
||||
|
||||
if (aad_len != 0) {
|
||||
unsigned i;
|
||||
// Cast to u64 to avoid the compiler complaining about invalid shifts.
|
||||
uint64_t aad_len_u64 = aad_len;
|
||||
if (aad_len_u64 < 0x10000 - 0x100) {
|
||||
state->cmac.c[0] ^= (uint8_t)(aad_len_u64 >> 8);
|
||||
state->cmac.c[1] ^= (uint8_t)aad_len_u64;
|
||||
i = 2;
|
||||
} else if (aad_len_u64 <= 0xffffffff) {
|
||||
state->cmac.c[0] ^= 0xff;
|
||||
state->cmac.c[1] ^= 0xfe;
|
||||
state->cmac.c[2] ^= (uint8_t)(aad_len_u64 >> 24);
|
||||
state->cmac.c[3] ^= (uint8_t)(aad_len_u64 >> 16);
|
||||
state->cmac.c[4] ^= (uint8_t)(aad_len_u64 >> 8);
|
||||
state->cmac.c[5] ^= (uint8_t)aad_len_u64;
|
||||
i = 6;
|
||||
} else {
|
||||
state->cmac.c[0] ^= 0xff;
|
||||
state->cmac.c[1] ^= 0xff;
|
||||
state->cmac.c[2] ^= (uint8_t)(aad_len_u64 >> 56);
|
||||
state->cmac.c[3] ^= (uint8_t)(aad_len_u64 >> 48);
|
||||
state->cmac.c[4] ^= (uint8_t)(aad_len_u64 >> 40);
|
||||
state->cmac.c[5] ^= (uint8_t)(aad_len_u64 >> 32);
|
||||
state->cmac.c[6] ^= (uint8_t)(aad_len_u64 >> 24);
|
||||
state->cmac.c[7] ^= (uint8_t)(aad_len_u64 >> 16);
|
||||
state->cmac.c[8] ^= (uint8_t)(aad_len_u64 >> 8);
|
||||
state->cmac.c[9] ^= (uint8_t)aad_len_u64;
|
||||
i = 10;
|
||||
}
|
||||
|
||||
do {
|
||||
for (; i < 16 && aad_len != 0; i++) {
|
||||
state->cmac.c[i] ^= *aad;
|
||||
aad++;
|
||||
aad_len--;
|
||||
}
|
||||
(*block)(state->cmac.c, state->cmac.c, key);
|
||||
blocks++;
|
||||
i = 0;
|
||||
} while (aad_len != 0);
|
||||
}
|
||||
|
||||
// Per RFC 3610, section 2.6, the total number of block cipher operations done
|
||||
// must not exceed 2^61. There are two block cipher operations remaining per
|
||||
// message block, plus one block at the end to encrypt the MAC.
|
||||
size_t remaining_blocks = 2 * ((plaintext_len + 15) / 16) + 1;
|
||||
if (plaintext_len + 15 < plaintext_len ||
|
||||
remaining_blocks + blocks < blocks ||
|
||||
(uint64_t) remaining_blocks + blocks > UINT64_C(1) << 61) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Assemble the first block for encrypting and decrypting. The bottom |L|
|
||||
// bytes are replaced with a counter and all bit the encoding of |L| is
|
||||
// cleared in the first byte.
|
||||
state->nonce.c[0] &= 7;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ccm128_encrypt(const struct ccm128_context *ctx,
|
||||
struct ccm128_state *state, const AES_KEY *key,
|
||||
uint8_t *out, const uint8_t *in, size_t len) {
|
||||
// The counter for encryption begins at one.
|
||||
for (unsigned i = 0; i < ctx->L; i++) {
|
||||
state->nonce.c[15 - i] = 0;
|
||||
}
|
||||
state->nonce.c[15] = 1;
|
||||
|
||||
uint8_t partial_buf[16];
|
||||
unsigned num = 0;
|
||||
if (ctx->ctr != NULL) {
|
||||
CRYPTO_ctr128_encrypt_ctr32(in, out, len, key, state->nonce.c, partial_buf,
|
||||
&num, ctx->ctr);
|
||||
} else {
|
||||
CRYPTO_ctr128_encrypt(in, out, len, key, state->nonce.c, partial_buf, &num,
|
||||
ctx->block);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ccm128_compute_mac(const struct ccm128_context *ctx,
|
||||
struct ccm128_state *state, const AES_KEY *key,
|
||||
uint8_t *out_tag, size_t tag_len,
|
||||
const uint8_t *in, size_t len) {
|
||||
block128_f block = ctx->block;
|
||||
if (tag_len != ctx->M) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Incorporate |in| into the MAC.
|
||||
union {
|
||||
uint64_t u[2];
|
||||
uint8_t c[16];
|
||||
} tmp;
|
||||
while (len >= 16) {
|
||||
OPENSSL_memcpy(tmp.c, in, 16);
|
||||
state->cmac.u[0] ^= tmp.u[0];
|
||||
state->cmac.u[1] ^= tmp.u[1];
|
||||
(*block)(state->cmac.c, state->cmac.c, key);
|
||||
in += 16;
|
||||
len -= 16;
|
||||
}
|
||||
if (len > 0) {
|
||||
for (size_t i = 0; i < len; i++) {
|
||||
state->cmac.c[i] ^= in[i];
|
||||
}
|
||||
(*block)(state->cmac.c, state->cmac.c, key);
|
||||
}
|
||||
|
||||
// Encrypt the MAC with counter zero.
|
||||
for (unsigned i = 0; i < ctx->L; i++) {
|
||||
state->nonce.c[15 - i] = 0;
|
||||
}
|
||||
(*block)(state->nonce.c, tmp.c, key);
|
||||
state->cmac.u[0] ^= tmp.u[0];
|
||||
state->cmac.u[1] ^= tmp.u[1];
|
||||
|
||||
OPENSSL_memcpy(out_tag, state->cmac.c, tag_len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int CRYPTO_ccm128_encrypt(const struct ccm128_context *ctx,
|
||||
const AES_KEY *key, uint8_t *out,
|
||||
uint8_t *out_tag, size_t tag_len,
|
||||
const uint8_t *nonce, size_t nonce_len,
|
||||
const uint8_t *in, size_t len,
|
||||
const uint8_t *aad, size_t aad_len) {
|
||||
struct ccm128_state state;
|
||||
return ccm128_init_state(ctx, &state, key, nonce, nonce_len, aad, aad_len,
|
||||
len) &&
|
||||
ccm128_compute_mac(ctx, &state, key, out_tag, tag_len, in, len) &&
|
||||
ccm128_encrypt(ctx, &state, key, out, in, len);
|
||||
}
|
||||
|
||||
static int CRYPTO_ccm128_decrypt(const struct ccm128_context *ctx,
|
||||
const AES_KEY *key, uint8_t *out,
|
||||
uint8_t *out_tag, size_t tag_len,
|
||||
const uint8_t *nonce, size_t nonce_len,
|
||||
const uint8_t *in, size_t len,
|
||||
const uint8_t *aad, size_t aad_len) {
|
||||
struct ccm128_state state;
|
||||
return ccm128_init_state(ctx, &state, key, nonce, nonce_len, aad, aad_len,
|
||||
len) &&
|
||||
ccm128_encrypt(ctx, &state, key, out, in, len) &&
|
||||
ccm128_compute_mac(ctx, &state, key, out_tag, tag_len, out, len);
|
||||
}
|
||||
|
||||
#define EVP_AEAD_AES_CCM_MAX_TAG_LEN 16
|
||||
|
||||
struct aead_aes_ccm_ctx {
|
||||
union {
|
||||
double align;
|
||||
AES_KEY ks;
|
||||
} ks;
|
||||
struct ccm128_context ccm;
|
||||
};
|
||||
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) >=
|
||||
sizeof(struct aead_aes_ccm_ctx),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >=
|
||||
alignof(struct aead_aes_ccm_ctx),
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
static int aead_aes_ccm_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len, unsigned M,
|
||||
unsigned L) {
|
||||
assert(M == EVP_AEAD_max_overhead(ctx->aead));
|
||||
assert(M == EVP_AEAD_max_tag_len(ctx->aead));
|
||||
assert(15 - L == EVP_AEAD_nonce_length(ctx->aead));
|
||||
|
||||
if (key_len != EVP_AEAD_key_length(ctx->aead)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_KEY_LENGTH);
|
||||
return 0; // EVP_AEAD_CTX_init should catch this.
|
||||
}
|
||||
|
||||
if (tag_len == EVP_AEAD_DEFAULT_TAG_LENGTH) {
|
||||
tag_len = M;
|
||||
}
|
||||
|
||||
if (tag_len != M) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TAG_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct aead_aes_ccm_ctx *ccm_ctx = (struct aead_aes_ccm_ctx *)&ctx->state;
|
||||
|
||||
block128_f block;
|
||||
ctr128_f ctr = aes_ctr_set_key(&ccm_ctx->ks.ks, NULL, &block, key, key_len);
|
||||
ctx->tag_len = tag_len;
|
||||
if (!CRYPTO_ccm128_init(&ccm_ctx->ccm, &ccm_ctx->ks.ks, block, ctr, M, L)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, ERR_R_INTERNAL_ERROR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_aes_ccm_cleanup(EVP_AEAD_CTX *ctx) {}
|
||||
|
||||
static int aead_aes_ccm_seal_scatter(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag,
|
||||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_ccm_ctx *ccm_ctx =
|
||||
(struct aead_aes_ccm_ctx *)&ctx->state;
|
||||
|
||||
if (in_len > CRYPTO_ccm128_max_input(&ccm_ctx->ccm)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (max_out_tag_len < ctx->tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (nonce_len != EVP_AEAD_nonce_length(ctx->aead)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!CRYPTO_ccm128_encrypt(&ccm_ctx->ccm, &ccm_ctx->ks.ks, out, out_tag,
|
||||
ctx->tag_len, nonce, nonce_len, in, in_len, ad,
|
||||
ad_len)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out_tag_len = ctx->tag_len;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_aes_ccm_open_gather(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
||||
const uint8_t *nonce, size_t nonce_len,
|
||||
const uint8_t *in, size_t in_len,
|
||||
const uint8_t *in_tag, size_t in_tag_len,
|
||||
const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_ccm_ctx *ccm_ctx =
|
||||
(struct aead_aes_ccm_ctx *)&ctx->state;
|
||||
|
||||
if (in_len > CRYPTO_ccm128_max_input(&ccm_ctx->ccm)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (nonce_len != EVP_AEAD_nonce_length(ctx->aead)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (in_tag_len != ctx->tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t tag[EVP_AEAD_AES_CCM_MAX_TAG_LEN];
|
||||
assert(ctx->tag_len <= EVP_AEAD_AES_CCM_MAX_TAG_LEN);
|
||||
if (!CRYPTO_ccm128_decrypt(&ccm_ctx->ccm, &ccm_ctx->ks.ks, out, tag,
|
||||
ctx->tag_len, nonce, nonce_len, in, in_len, ad,
|
||||
ad_len)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (CRYPTO_memcmp(tag, in_tag, ctx->tag_len) != 0) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_aes_ccm_bluetooth_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
return aead_aes_ccm_init(ctx, key, key_len, tag_len, 4, 2);
|
||||
}
|
||||
|
||||
static const EVP_AEAD aead_aes_128_ccm_bluetooth = {
|
||||
16, // key length (AES-128)
|
||||
13, // nonce length
|
||||
4, // overhead
|
||||
4, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
aead_aes_ccm_bluetooth_init,
|
||||
NULL /* init_with_direction */,
|
||||
aead_aes_ccm_cleanup,
|
||||
NULL /* open */,
|
||||
aead_aes_ccm_seal_scatter,
|
||||
aead_aes_ccm_open_gather,
|
||||
NULL /* get_iv */,
|
||||
NULL /* tag_len */,
|
||||
};
|
||||
|
||||
const EVP_AEAD *EVP_aead_aes_128_ccm_bluetooth(void) {
|
||||
return &aead_aes_128_ccm_bluetooth;
|
||||
}
|
||||
|
||||
static int aead_aes_ccm_bluetooth_8_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
return aead_aes_ccm_init(ctx, key, key_len, tag_len, 8, 2);
|
||||
}
|
||||
|
||||
static const EVP_AEAD aead_aes_128_ccm_bluetooth_8 = {
|
||||
16, // key length (AES-128)
|
||||
13, // nonce length
|
||||
8, // overhead
|
||||
8, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
aead_aes_ccm_bluetooth_8_init,
|
||||
NULL /* init_with_direction */,
|
||||
aead_aes_ccm_cleanup,
|
||||
NULL /* open */,
|
||||
aead_aes_ccm_seal_scatter,
|
||||
aead_aes_ccm_open_gather,
|
||||
NULL /* get_iv */,
|
||||
NULL /* tag_len */,
|
||||
};
|
||||
|
||||
const EVP_AEAD *EVP_aead_aes_128_ccm_bluetooth_8(void) {
|
||||
return &aead_aes_128_ccm_bluetooth_8;
|
||||
}
|
|
@ -35,6 +35,15 @@ struct aead_aes_ctr_hmac_sha256_ctx {
|
|||
SHA256_CTX outer_init_state;
|
||||
};
|
||||
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) >=
|
||||
sizeof(struct aead_aes_ctr_hmac_sha256_ctx),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >=
|
||||
alignof(struct aead_aes_ctr_hmac_sha256_ctx),
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
static void hmac_init(SHA256_CTX *out_inner, SHA256_CTX *out_outer,
|
||||
const uint8_t hmac_key[32]) {
|
||||
static const size_t hmac_key_len = 32;
|
||||
|
@ -61,7 +70,8 @@ static void hmac_init(SHA256_CTX *out_inner, SHA256_CTX *out_outer,
|
|||
|
||||
static int aead_aes_ctr_hmac_sha256_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx;
|
||||
struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx =
|
||||
(struct aead_aes_ctr_hmac_sha256_ctx *)&ctx->state;
|
||||
static const size_t hmac_key_len = 32;
|
||||
|
||||
if (key_len < hmac_key_len) {
|
||||
|
@ -84,26 +94,16 @@ static int aead_aes_ctr_hmac_sha256_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
|||
return 0;
|
||||
}
|
||||
|
||||
aes_ctx = OPENSSL_malloc(sizeof(struct aead_aes_ctr_hmac_sha256_ctx));
|
||||
if (aes_ctx == NULL) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
aes_ctx->ctr =
|
||||
aes_ctr_set_key(&aes_ctx->ks.ks, NULL, &aes_ctx->block, key, aes_key_len);
|
||||
ctx->tag_len = tag_len;
|
||||
hmac_init(&aes_ctx->inner_init_state, &aes_ctx->outer_init_state,
|
||||
key + aes_key_len);
|
||||
|
||||
ctx->aead_state = aes_ctx;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_aes_ctr_hmac_sha256_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
OPENSSL_free(ctx->aead_state);
|
||||
}
|
||||
static void aead_aes_ctr_hmac_sha256_cleanup(EVP_AEAD_CTX *ctx) {}
|
||||
|
||||
static void hmac_update_uint64(SHA256_CTX *sha256, uint64_t value) {
|
||||
unsigned i;
|
||||
|
@ -178,7 +178,8 @@ static int aead_aes_ctr_hmac_sha256_seal_scatter(
|
|||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx = ctx->aead_state;
|
||||
const struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx =
|
||||
(struct aead_aes_ctr_hmac_sha256_ctx *) &ctx->state;
|
||||
const uint64_t in_len_64 = in_len;
|
||||
|
||||
if (in_len_64 >= (UINT64_C(1) << 32) * AES_BLOCK_SIZE) {
|
||||
|
@ -212,7 +213,8 @@ static int aead_aes_ctr_hmac_sha256_open_gather(
|
|||
const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag,
|
||||
size_t in_tag_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx = ctx->aead_state;
|
||||
const struct aead_aes_ctr_hmac_sha256_ctx *aes_ctx =
|
||||
(struct aead_aes_ctr_hmac_sha256_ctx *) &ctx->state;
|
||||
|
||||
if (in_tag_len != ctx->tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
|
|
|
@ -27,28 +27,47 @@
|
|||
#define EVP_AEAD_AES_GCM_SIV_NONCE_LEN 12
|
||||
#define EVP_AEAD_AES_GCM_SIV_TAG_LEN 16
|
||||
|
||||
#if defined(OPENSSL_X86_64) && !defined(OPENSSL_NO_ASM)
|
||||
// TODO(davidben): AES-GCM-SIV assembly is not correct for Windows. It must save
|
||||
// and restore xmm6 through xmm15.
|
||||
#if defined(OPENSSL_X86_64) && !defined(OPENSSL_NO_ASM) && \
|
||||
!defined(OPENSSL_WINDOWS)
|
||||
#define AES_GCM_SIV_ASM
|
||||
|
||||
// Optimised AES-GCM-SIV
|
||||
|
||||
struct aead_aes_gcm_siv_asm_ctx {
|
||||
alignas(16) uint8_t key[16*15];
|
||||
int is_128_bit;
|
||||
// ptr contains the original pointer from |OPENSSL_malloc|, which may only be
|
||||
// 8-byte aligned. When freeing this structure, actually call |OPENSSL_free|
|
||||
// on this pointer.
|
||||
void *ptr;
|
||||
};
|
||||
|
||||
// The assembly code assumes 8-byte alignment of the EVP_AEAD_CTX's state, and
|
||||
// aligns to 16 bytes itself.
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) + 8 >=
|
||||
sizeof(struct aead_aes_gcm_siv_asm_ctx),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >= 8,
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
// asm_ctx_from_ctx returns a 16-byte aligned context pointer from |ctx|.
|
||||
static struct aead_aes_gcm_siv_asm_ctx *asm_ctx_from_ctx(
|
||||
const EVP_AEAD_CTX *ctx) {
|
||||
// ctx->state must already be 8-byte aligned. Thus, at most, we may need to
|
||||
// add eight to align it to 16 bytes.
|
||||
const uintptr_t offset = ((uintptr_t)&ctx->state) & 8;
|
||||
return (struct aead_aes_gcm_siv_asm_ctx *)(&ctx->state.opaque[offset]);
|
||||
}
|
||||
|
||||
// aes128gcmsiv_aes_ks writes an AES-128 key schedule for |key| to
|
||||
// |out_expanded_key|.
|
||||
extern void aes128gcmsiv_aes_ks(
|
||||
const uint8_t key[16], uint8_t out_expanded_key[16*15]);
|
||||
|
||||
// aes128gcmsiv_aes_ks writes an AES-128 key schedule for |key| to
|
||||
// aes256gcmsiv_aes_ks writes an AES-256 key schedule for |key| to
|
||||
// |out_expanded_key|.
|
||||
extern void aes256gcmsiv_aes_ks(
|
||||
const uint8_t key[16], uint8_t out_expanded_key[16*15]);
|
||||
const uint8_t key[32], uint8_t out_expanded_key[16*15]);
|
||||
|
||||
static int aead_aes_gcm_siv_asm_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
|
@ -68,18 +87,8 @@ static int aead_aes_gcm_siv_asm_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
|||
return 0;
|
||||
}
|
||||
|
||||
char *ptr = OPENSSL_malloc(sizeof(struct aead_aes_gcm_siv_asm_ctx) + 8);
|
||||
if (ptr == NULL) {
|
||||
return 0;
|
||||
}
|
||||
assert((((uintptr_t)ptr) & 7) == 0);
|
||||
|
||||
// gcm_siv_ctx needs to be 16-byte aligned in a cross-platform way.
|
||||
struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx =
|
||||
(struct aead_aes_gcm_siv_asm_ctx *)(ptr + (((uintptr_t)ptr) & 8));
|
||||
|
||||
struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = asm_ctx_from_ctx(ctx);
|
||||
assert((((uintptr_t)gcm_siv_ctx) & 15) == 0);
|
||||
gcm_siv_ctx->ptr = ptr;
|
||||
|
||||
if (key_bits == 128) {
|
||||
aes128gcmsiv_aes_ks(key, &gcm_siv_ctx->key[0]);
|
||||
|
@ -88,16 +97,13 @@ static int aead_aes_gcm_siv_asm_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
|||
aes256gcmsiv_aes_ks(key, &gcm_siv_ctx->key[0]);
|
||||
gcm_siv_ctx->is_128_bit = 0;
|
||||
}
|
||||
ctx->aead_state = gcm_siv_ctx;
|
||||
|
||||
ctx->tag_len = tag_len;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_aes_gcm_siv_asm_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
const struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = ctx->aead_state;
|
||||
OPENSSL_free(gcm_siv_ctx->ptr);
|
||||
}
|
||||
static void aead_aes_gcm_siv_asm_cleanup(EVP_AEAD_CTX *ctx) {}
|
||||
|
||||
// aesgcmsiv_polyval_horner updates the POLYVAL value in |in_out_poly| to
|
||||
// include a number (|in_blocks|) of 16-byte blocks of data from |in|, given
|
||||
|
@ -337,7 +343,7 @@ static int aead_aes_gcm_siv_asm_seal_scatter(
|
|||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = ctx->aead_state;
|
||||
const struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = asm_ctx_from_ctx(ctx);
|
||||
const uint64_t in_len_64 = in_len;
|
||||
const uint64_t ad_len_64 = ad_len;
|
||||
|
||||
|
@ -420,7 +426,12 @@ static int aead_aes_gcm_siv_asm_open(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
|||
return 0;
|
||||
}
|
||||
|
||||
const struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = ctx->aead_state;
|
||||
if (nonce_len != EVP_AEAD_AES_GCM_SIV_NONCE_LEN) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_UNSUPPORTED_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct aead_aes_gcm_siv_asm_ctx *gcm_siv_ctx = asm_ctx_from_ctx(ctx);
|
||||
const size_t plaintext_len = in_len - EVP_AEAD_AES_GCM_SIV_TAG_LEN;
|
||||
const uint8_t *const given_tag = in + plaintext_len;
|
||||
|
||||
|
@ -547,7 +558,7 @@ static const EVP_AEAD aead_aes_256_gcm_siv_asm = {
|
|||
NULL /* tag_len */,
|
||||
};
|
||||
|
||||
#endif // X86_64 && !NO_ASM
|
||||
#endif // X86_64 && !NO_ASM && !WINDOWS
|
||||
|
||||
struct aead_aes_gcm_siv_ctx {
|
||||
union {
|
||||
|
@ -558,6 +569,15 @@ struct aead_aes_gcm_siv_ctx {
|
|||
unsigned is_256:1;
|
||||
};
|
||||
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) >=
|
||||
sizeof(struct aead_aes_gcm_siv_ctx),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >=
|
||||
alignof(struct aead_aes_gcm_siv_ctx),
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
static int aead_aes_gcm_siv_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
const size_t key_bits = key_len * 8;
|
||||
|
@ -576,24 +596,18 @@ static int aead_aes_gcm_siv_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
|||
}
|
||||
|
||||
struct aead_aes_gcm_siv_ctx *gcm_siv_ctx =
|
||||
OPENSSL_malloc(sizeof(struct aead_aes_gcm_siv_ctx));
|
||||
if (gcm_siv_ctx == NULL) {
|
||||
return 0;
|
||||
}
|
||||
(struct aead_aes_gcm_siv_ctx *)&ctx->state;
|
||||
OPENSSL_memset(gcm_siv_ctx, 0, sizeof(struct aead_aes_gcm_siv_ctx));
|
||||
|
||||
aes_ctr_set_key(&gcm_siv_ctx->ks.ks, NULL, &gcm_siv_ctx->kgk_block, key,
|
||||
key_len);
|
||||
gcm_siv_ctx->is_256 = (key_len == 32);
|
||||
ctx->aead_state = gcm_siv_ctx;
|
||||
ctx->tag_len = tag_len;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_aes_gcm_siv_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
OPENSSL_free(ctx->aead_state);
|
||||
}
|
||||
static void aead_aes_gcm_siv_cleanup(EVP_AEAD_CTX *ctx) {}
|
||||
|
||||
// gcm_siv_crypt encrypts (or decrypts—it's the same thing) |in_len| bytes from
|
||||
// |in| to |out|, using the block function |enc_block| with |key| in counter
|
||||
|
@ -718,7 +732,8 @@ static int aead_aes_gcm_siv_seal_scatter(
|
|||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_aes_gcm_siv_ctx *gcm_siv_ctx = ctx->aead_state;
|
||||
const struct aead_aes_gcm_siv_ctx *gcm_siv_ctx =
|
||||
(struct aead_aes_gcm_siv_ctx *)&ctx->state;
|
||||
const uint64_t in_len_64 = in_len;
|
||||
const uint64_t ad_len_64 = ad_len;
|
||||
|
||||
|
@ -778,7 +793,8 @@ static int aead_aes_gcm_siv_open_gather(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
|||
return 0;
|
||||
}
|
||||
|
||||
const struct aead_aes_gcm_siv_ctx *gcm_siv_ctx = ctx->aead_state;
|
||||
const struct aead_aes_gcm_siv_ctx *gcm_siv_ctx =
|
||||
(struct aead_aes_gcm_siv_ctx *)&ctx->state;
|
||||
|
||||
struct gcm_siv_record_keys keys;
|
||||
gcm_siv_keys(gcm_siv_ctx, &keys, nonce);
|
||||
|
@ -831,7 +847,7 @@ static const EVP_AEAD aead_aes_256_gcm_siv = {
|
|||
NULL /* tag_len */,
|
||||
};
|
||||
|
||||
#if defined(OPENSSL_X86_64) && !defined(OPENSSL_NO_ASM)
|
||||
#if defined(AES_GCM_SIV_ASM)
|
||||
|
||||
static char avx_aesni_capable(void) {
|
||||
const uint32_t ecx = OPENSSL_ia32cap_P[1];
|
||||
|
@ -864,4 +880,4 @@ const EVP_AEAD *EVP_aead_aes_256_gcm_siv(void) {
|
|||
return &aead_aes_256_gcm_siv;
|
||||
}
|
||||
|
||||
#endif // X86_64 && !NO_ASM
|
||||
#endif // AES_GCM_SIV_ASM
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "../fipsmodule/cipher/internal.h"
|
||||
#include "../internal.h"
|
||||
#include "../chacha/internal.h"
|
||||
|
||||
|
||||
#define POLY1305_TAG_LEN 16
|
||||
|
@ -34,6 +35,15 @@ struct aead_chacha20_poly1305_ctx {
|
|||
uint8_t key[32];
|
||||
};
|
||||
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) >=
|
||||
sizeof(struct aead_chacha20_poly1305_ctx),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >=
|
||||
alignof(struct aead_chacha20_poly1305_ctx),
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
// For convenience (the x86_64 calling convention allows only six parameters in
|
||||
// registers), the final parameter for the assembly functions is both an input
|
||||
// and output parameter.
|
||||
|
@ -68,9 +78,9 @@ static int asm_capable(void) {
|
|||
return sse41_capable;
|
||||
}
|
||||
|
||||
OPENSSL_COMPILE_ASSERT(sizeof(union open_data) == 48, wrong_open_data_size);
|
||||
OPENSSL_COMPILE_ASSERT(sizeof(union seal_data) == 48 + 8 + 8,
|
||||
wrong_seal_data_size);
|
||||
OPENSSL_STATIC_ASSERT(sizeof(union open_data) == 48, "wrong open_data size");
|
||||
OPENSSL_STATIC_ASSERT(sizeof(union seal_data) == 48 + 8 + 8,
|
||||
"wrong seal_data size");
|
||||
|
||||
// chacha20_poly1305_open is defined in chacha20_poly1305_x86_64.pl. It decrypts
|
||||
// |plaintext_len| bytes from |ciphertext| and writes them to |out_plaintext|.
|
||||
|
@ -108,7 +118,8 @@ static void chacha20_poly1305_seal(uint8_t *out_ciphertext,
|
|||
|
||||
static int aead_chacha20_poly1305_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len) {
|
||||
struct aead_chacha20_poly1305_ctx *c20_ctx;
|
||||
struct aead_chacha20_poly1305_ctx *c20_ctx =
|
||||
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
||||
|
||||
if (tag_len == 0) {
|
||||
tag_len = POLY1305_TAG_LEN;
|
||||
|
@ -123,21 +134,13 @@ static int aead_chacha20_poly1305_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
|||
return 0; // internal error - EVP_AEAD_CTX_init should catch this.
|
||||
}
|
||||
|
||||
c20_ctx = OPENSSL_malloc(sizeof(struct aead_chacha20_poly1305_ctx));
|
||||
if (c20_ctx == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
OPENSSL_memcpy(c20_ctx->key, key, key_len);
|
||||
ctx->aead_state = c20_ctx;
|
||||
ctx->tag_len = tag_len;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_chacha20_poly1305_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
OPENSSL_free(ctx->aead_state);
|
||||
}
|
||||
static void aead_chacha20_poly1305_cleanup(EVP_AEAD_CTX *ctx) {}
|
||||
|
||||
static void poly1305_update_length(poly1305_state *poly1305, size_t data_len) {
|
||||
uint8_t length_bytes[8];
|
||||
|
@ -151,16 +154,15 @@ static void poly1305_update_length(poly1305_state *poly1305, size_t data_len) {
|
|||
}
|
||||
|
||||
// calc_tag fills |tag| with the authentication tag for the given inputs.
|
||||
static void calc_tag(uint8_t tag[POLY1305_TAG_LEN],
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx,
|
||||
static void calc_tag(uint8_t tag[POLY1305_TAG_LEN], const uint8_t *key,
|
||||
const uint8_t nonce[12], const uint8_t *ad, size_t ad_len,
|
||||
const uint8_t *ciphertext, size_t ciphertext_len,
|
||||
const uint8_t *ciphertext_extra,
|
||||
size_t ciphertext_extra_len) {
|
||||
alignas(16) uint8_t poly1305_key[32];
|
||||
OPENSSL_memset(poly1305_key, 0, sizeof(poly1305_key));
|
||||
CRYPTO_chacha_20(poly1305_key, poly1305_key, sizeof(poly1305_key),
|
||||
c20_ctx->key, nonce, 0);
|
||||
CRYPTO_chacha_20(poly1305_key, poly1305_key, sizeof(poly1305_key), key, nonce,
|
||||
0);
|
||||
|
||||
static const uint8_t padding[16] = { 0 }; // Padding is all zeros.
|
||||
poly1305_state ctx;
|
||||
|
@ -181,18 +183,16 @@ static void calc_tag(uint8_t tag[POLY1305_TAG_LEN],
|
|||
CRYPTO_poly1305_finish(&ctx, tag);
|
||||
}
|
||||
|
||||
static int aead_chacha20_poly1305_seal_scatter(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag,
|
||||
static int chacha20_poly1305_seal_scatter(
|
||||
const uint8_t *key, uint8_t *out, uint8_t *out_tag,
|
||||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx = ctx->aead_state;
|
||||
|
||||
if (extra_in_len + ctx->tag_len < ctx->tag_len) {
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len, size_t tag_len) {
|
||||
if (extra_in_len + tag_len < tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
if (max_out_tag_len < ctx->tag_len + extra_in_len) {
|
||||
if (max_out_tag_len < tag_len + extra_in_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ static int aead_chacha20_poly1305_seal_scatter(
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (max_out_tag_len < ctx->tag_len) {
|
||||
if (max_out_tag_len < tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ static int aead_chacha20_poly1305_seal_scatter(
|
|||
|
||||
for (size_t done = 0; done < extra_in_len; block_counter++) {
|
||||
memset(block, 0, sizeof(block));
|
||||
CRYPTO_chacha_20(block, block, sizeof(block), c20_ctx->key, nonce,
|
||||
CRYPTO_chacha_20(block, block, sizeof(block), key, nonce,
|
||||
block_counter);
|
||||
for (size_t i = offset; i < sizeof(block) && done < extra_in_len;
|
||||
i++, done++) {
|
||||
|
@ -240,35 +240,71 @@ static int aead_chacha20_poly1305_seal_scatter(
|
|||
|
||||
union seal_data data;
|
||||
if (asm_capable()) {
|
||||
OPENSSL_memcpy(data.in.key, c20_ctx->key, 32);
|
||||
OPENSSL_memcpy(data.in.key, key, 32);
|
||||
data.in.counter = 0;
|
||||
OPENSSL_memcpy(data.in.nonce, nonce, 12);
|
||||
data.in.extra_ciphertext = out_tag;
|
||||
data.in.extra_ciphertext_len = extra_in_len;
|
||||
chacha20_poly1305_seal(out, in, in_len, ad, ad_len, &data);
|
||||
} else {
|
||||
CRYPTO_chacha_20(out, in, in_len, c20_ctx->key, nonce, 1);
|
||||
calc_tag(data.out.tag, c20_ctx, nonce, ad, ad_len, out, in_len, out_tag,
|
||||
CRYPTO_chacha_20(out, in, in_len, key, nonce, 1);
|
||||
calc_tag(data.out.tag, key, nonce, ad, ad_len, out, in_len, out_tag,
|
||||
extra_in_len);
|
||||
}
|
||||
|
||||
OPENSSL_memcpy(out_tag + extra_in_len, data.out.tag, ctx->tag_len);
|
||||
*out_tag_len = extra_in_len + ctx->tag_len;
|
||||
OPENSSL_memcpy(out_tag + extra_in_len, data.out.tag, tag_len);
|
||||
*out_tag_len = extra_in_len + tag_len;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_chacha20_poly1305_open_gather(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag,
|
||||
size_t in_tag_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx = ctx->aead_state;
|
||||
static int aead_chacha20_poly1305_seal_scatter(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag,
|
||||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx =
|
||||
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
||||
|
||||
return chacha20_poly1305_seal_scatter(
|
||||
c20_ctx->key, out, out_tag, out_tag_len, max_out_tag_len, nonce,
|
||||
nonce_len, in, in_len, extra_in, extra_in_len, ad, ad_len, ctx->tag_len);
|
||||
}
|
||||
|
||||
static int aead_xchacha20_poly1305_seal_scatter(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, uint8_t *out_tag,
|
||||
size_t *out_tag_len, size_t max_out_tag_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *extra_in,
|
||||
size_t extra_in_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx =
|
||||
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
||||
|
||||
if (nonce_len != 24) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_UNSUPPORTED_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
alignas(4) uint8_t derived_key[32];
|
||||
alignas(4) uint8_t derived_nonce[12];
|
||||
CRYPTO_hchacha20(derived_key, c20_ctx->key, nonce);
|
||||
OPENSSL_memset(derived_nonce, 0, 4);
|
||||
OPENSSL_memcpy(&derived_nonce[4], &nonce[16], 8);
|
||||
|
||||
return chacha20_poly1305_seal_scatter(
|
||||
derived_key, out, out_tag, out_tag_len, max_out_tag_len,
|
||||
derived_nonce, sizeof(derived_nonce), in, in_len, extra_in, extra_in_len,
|
||||
ad, ad_len, ctx->tag_len);
|
||||
}
|
||||
|
||||
static int chacha20_poly1305_open_gather(
|
||||
const uint8_t *key, uint8_t *out, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag,
|
||||
size_t in_tag_len, const uint8_t *ad, size_t ad_len, size_t tag_len) {
|
||||
if (nonce_len != 12) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_UNSUPPORTED_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (in_tag_len != ctx->tag_len) {
|
||||
if (in_tag_len != tag_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
@ -287,16 +323,16 @@ static int aead_chacha20_poly1305_open_gather(
|
|||
|
||||
union open_data data;
|
||||
if (asm_capable()) {
|
||||
OPENSSL_memcpy(data.in.key, c20_ctx->key, 32);
|
||||
OPENSSL_memcpy(data.in.key, key, 32);
|
||||
data.in.counter = 0;
|
||||
OPENSSL_memcpy(data.in.nonce, nonce, 12);
|
||||
chacha20_poly1305_open(out, in, in_len, ad, ad_len, &data);
|
||||
} else {
|
||||
calc_tag(data.out.tag, c20_ctx, nonce, ad, ad_len, in, in_len, NULL, 0);
|
||||
CRYPTO_chacha_20(out, in, in_len, c20_ctx->key, nonce, 1);
|
||||
calc_tag(data.out.tag, key, nonce, ad, ad_len, in, in_len, NULL, 0);
|
||||
CRYPTO_chacha_20(out, in, in_len, key, nonce, 1);
|
||||
}
|
||||
|
||||
if (CRYPTO_memcmp(data.out.tag, in_tag, ctx->tag_len) != 0) {
|
||||
if (CRYPTO_memcmp(data.out.tag, in_tag, tag_len) != 0) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
@ -304,6 +340,41 @@ static int aead_chacha20_poly1305_open_gather(
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int aead_chacha20_poly1305_open_gather(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag,
|
||||
size_t in_tag_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx =
|
||||
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
||||
|
||||
return chacha20_poly1305_open_gather(c20_ctx->key, out, nonce, nonce_len, in,
|
||||
in_len, in_tag, in_tag_len, ad, ad_len,
|
||||
ctx->tag_len);
|
||||
}
|
||||
|
||||
static int aead_xchacha20_poly1305_open_gather(
|
||||
const EVP_AEAD_CTX *ctx, uint8_t *out, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len, const uint8_t *in_tag,
|
||||
size_t in_tag_len, const uint8_t *ad, size_t ad_len) {
|
||||
const struct aead_chacha20_poly1305_ctx *c20_ctx =
|
||||
(struct aead_chacha20_poly1305_ctx *)&ctx->state;
|
||||
|
||||
if (nonce_len != 24) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_UNSUPPORTED_NONCE_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
alignas(4) uint8_t derived_key[32];
|
||||
alignas(4) uint8_t derived_nonce[12];
|
||||
CRYPTO_hchacha20(derived_key, c20_ctx->key, nonce);
|
||||
OPENSSL_memset(derived_nonce, 0, 4);
|
||||
OPENSSL_memcpy(&derived_nonce[4], &nonce[16], 8);
|
||||
|
||||
return chacha20_poly1305_open_gather(
|
||||
derived_key, out, derived_nonce, sizeof(derived_nonce), in, in_len,
|
||||
in_tag, in_tag_len, ad, ad_len, ctx->tag_len);
|
||||
}
|
||||
|
||||
static const EVP_AEAD aead_chacha20_poly1305 = {
|
||||
32, // key len
|
||||
12, // nonce len
|
||||
|
@ -321,6 +392,27 @@ static const EVP_AEAD aead_chacha20_poly1305 = {
|
|||
NULL, // tag_len
|
||||
};
|
||||
|
||||
static const EVP_AEAD aead_xchacha20_poly1305 = {
|
||||
32, // key len
|
||||
24, // nonce len
|
||||
POLY1305_TAG_LEN, // overhead
|
||||
POLY1305_TAG_LEN, // max tag length
|
||||
1, // seal_scatter_supports_extra_in
|
||||
|
||||
aead_chacha20_poly1305_init,
|
||||
NULL, // init_with_direction
|
||||
aead_chacha20_poly1305_cleanup,
|
||||
NULL /* open */,
|
||||
aead_xchacha20_poly1305_seal_scatter,
|
||||
aead_xchacha20_poly1305_open_gather,
|
||||
NULL, // get_iv
|
||||
NULL, // tag_len
|
||||
};
|
||||
|
||||
const EVP_AEAD *EVP_aead_chacha20_poly1305(void) {
|
||||
return &aead_chacha20_poly1305;
|
||||
}
|
||||
|
||||
const EVP_AEAD *EVP_aead_xchacha20_poly1305(void) {
|
||||
return &aead_xchacha20_poly1305;
|
||||
}
|
||||
|
|
|
@ -57,6 +57,8 @@
|
|||
#include <openssl/cipher.h>
|
||||
#include <openssl/nid.h>
|
||||
|
||||
#include "../internal.h"
|
||||
|
||||
|
||||
#define c2l(c, l) \
|
||||
do { \
|
||||
|
|
|
@ -1,460 +0,0 @@
|
|||
/* Copyright (c) 2014, Google Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
||||
|
||||
#include <assert.h>
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <openssl/aead.h>
|
||||
#include <openssl/cipher.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/hmac.h>
|
||||
#include <openssl/md5.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/sha.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include "../internal.h"
|
||||
#include "../fipsmodule/cipher/internal.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
EVP_CIPHER_CTX cipher_ctx;
|
||||
EVP_MD_CTX md_ctx;
|
||||
} AEAD_SSL3_CTX;
|
||||
|
||||
static int ssl3_mac(AEAD_SSL3_CTX *ssl3_ctx, uint8_t *out, unsigned *out_len,
|
||||
const uint8_t *ad, size_t ad_len, const uint8_t *in,
|
||||
size_t in_len) {
|
||||
size_t md_size = EVP_MD_CTX_size(&ssl3_ctx->md_ctx);
|
||||
size_t pad_len = (md_size == 20) ? 40 : 48;
|
||||
|
||||
// To allow for CBC mode which changes cipher length, |ad| doesn't include the
|
||||
// length for legacy ciphers.
|
||||
uint8_t ad_extra[2];
|
||||
ad_extra[0] = (uint8_t)(in_len >> 8);
|
||||
ad_extra[1] = (uint8_t)(in_len & 0xff);
|
||||
|
||||
EVP_MD_CTX md_ctx;
|
||||
EVP_MD_CTX_init(&md_ctx);
|
||||
|
||||
uint8_t pad[48];
|
||||
uint8_t tmp[EVP_MAX_MD_SIZE];
|
||||
OPENSSL_memset(pad, 0x36, pad_len);
|
||||
if (!EVP_MD_CTX_copy_ex(&md_ctx, &ssl3_ctx->md_ctx) ||
|
||||
!EVP_DigestUpdate(&md_ctx, pad, pad_len) ||
|
||||
!EVP_DigestUpdate(&md_ctx, ad, ad_len) ||
|
||||
!EVP_DigestUpdate(&md_ctx, ad_extra, sizeof(ad_extra)) ||
|
||||
!EVP_DigestUpdate(&md_ctx, in, in_len) ||
|
||||
!EVP_DigestFinal_ex(&md_ctx, tmp, NULL)) {
|
||||
EVP_MD_CTX_cleanup(&md_ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
OPENSSL_memset(pad, 0x5c, pad_len);
|
||||
if (!EVP_MD_CTX_copy_ex(&md_ctx, &ssl3_ctx->md_ctx) ||
|
||||
!EVP_DigestUpdate(&md_ctx, pad, pad_len) ||
|
||||
!EVP_DigestUpdate(&md_ctx, tmp, md_size) ||
|
||||
!EVP_DigestFinal_ex(&md_ctx, out, out_len)) {
|
||||
EVP_MD_CTX_cleanup(&md_ctx);
|
||||
return 0;
|
||||
}
|
||||
EVP_MD_CTX_cleanup(&md_ctx);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void aead_ssl3_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
AEAD_SSL3_CTX *ssl3_ctx = (AEAD_SSL3_CTX *)ctx->aead_state;
|
||||
EVP_CIPHER_CTX_cleanup(&ssl3_ctx->cipher_ctx);
|
||||
EVP_MD_CTX_cleanup(&ssl3_ctx->md_ctx);
|
||||
OPENSSL_free(ssl3_ctx);
|
||||
ctx->aead_state = NULL;
|
||||
}
|
||||
|
||||
static int aead_ssl3_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
|
||||
size_t tag_len, enum evp_aead_direction_t dir,
|
||||
const EVP_CIPHER *cipher, const EVP_MD *md) {
|
||||
if (tag_len != EVP_AEAD_DEFAULT_TAG_LENGTH &&
|
||||
tag_len != EVP_MD_size(md)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_UNSUPPORTED_TAG_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (key_len != EVP_AEAD_key_length(ctx->aead)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_KEY_LENGTH);
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t mac_key_len = EVP_MD_size(md);
|
||||
size_t enc_key_len = EVP_CIPHER_key_length(cipher);
|
||||
assert(mac_key_len + enc_key_len + EVP_CIPHER_iv_length(cipher) == key_len);
|
||||
|
||||
AEAD_SSL3_CTX *ssl3_ctx = OPENSSL_malloc(sizeof(AEAD_SSL3_CTX));
|
||||
if (ssl3_ctx == NULL) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
EVP_CIPHER_CTX_init(&ssl3_ctx->cipher_ctx);
|
||||
EVP_MD_CTX_init(&ssl3_ctx->md_ctx);
|
||||
|
||||
ctx->aead_state = ssl3_ctx;
|
||||
if (!EVP_CipherInit_ex(&ssl3_ctx->cipher_ctx, cipher, NULL, &key[mac_key_len],
|
||||
&key[mac_key_len + enc_key_len],
|
||||
dir == evp_aead_seal) ||
|
||||
!EVP_DigestInit_ex(&ssl3_ctx->md_ctx, md, NULL) ||
|
||||
!EVP_DigestUpdate(&ssl3_ctx->md_ctx, key, mac_key_len)) {
|
||||
aead_ssl3_cleanup(ctx);
|
||||
ctx->aead_state = NULL;
|
||||
return 0;
|
||||
}
|
||||
EVP_CIPHER_CTX_set_padding(&ssl3_ctx->cipher_ctx, 0);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static size_t aead_ssl3_tag_len(const EVP_AEAD_CTX *ctx, const size_t in_len,
|
||||
const size_t extra_in_len) {
|
||||
assert(extra_in_len == 0);
|
||||
const AEAD_SSL3_CTX *ssl3_ctx = (AEAD_SSL3_CTX*)ctx->aead_state;
|
||||
|
||||
const size_t digest_len = EVP_MD_CTX_size(&ssl3_ctx->md_ctx);
|
||||
if (EVP_CIPHER_CTX_mode(&ssl3_ctx->cipher_ctx) != EVP_CIPH_CBC_MODE) {
|
||||
// The NULL cipher.
|
||||
return digest_len;
|
||||
}
|
||||
|
||||
const size_t block_size = EVP_CIPHER_CTX_block_size(&ssl3_ctx->cipher_ctx);
|
||||
// An overflow of |in_len + digest_len| doesn't affect the result mod
|
||||
// |block_size|, provided that |block_size| is a smaller power of two.
|
||||
assert(block_size != 0 && (block_size & (block_size - 1)) == 0);
|
||||
const size_t pad_len = block_size - ((in_len + digest_len) % block_size);
|
||||
return digest_len + pad_len;
|
||||
}
|
||||
|
||||
static int aead_ssl3_seal_scatter(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
||||
uint8_t *out_tag, size_t *out_tag_len,
|
||||
const size_t max_out_tag_len,
|
||||
const uint8_t *nonce, const size_t nonce_len,
|
||||
const uint8_t *in, const size_t in_len,
|
||||
const uint8_t *extra_in,
|
||||
const size_t extra_in_len, const uint8_t *ad,
|
||||
const size_t ad_len) {
|
||||
AEAD_SSL3_CTX *ssl3_ctx = (AEAD_SSL3_CTX *)ctx->aead_state;
|
||||
|
||||
if (!ssl3_ctx->cipher_ctx.encrypt) {
|
||||
// Unlike a normal AEAD, an SSL3 AEAD may only be used in one direction.
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_OPERATION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (in_len > INT_MAX) {
|
||||
// EVP_CIPHER takes int as input.
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (max_out_tag_len < aead_ssl3_tag_len(ctx, in_len, extra_in_len)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (nonce_len != 0) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_IV_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ad_len != 11 - 2 /* length bytes */) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_AD_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Compute the MAC. This must be first in case the operation is being done
|
||||
// in-place.
|
||||
uint8_t mac[EVP_MAX_MD_SIZE];
|
||||
unsigned mac_len;
|
||||
if (!ssl3_mac(ssl3_ctx, mac, &mac_len, ad, ad_len, in, in_len)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Encrypt the input.
|
||||
int len;
|
||||
if (!EVP_EncryptUpdate(&ssl3_ctx->cipher_ctx, out, &len, in,
|
||||
(int)in_len)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const size_t block_size = EVP_CIPHER_CTX_block_size(&ssl3_ctx->cipher_ctx);
|
||||
|
||||
// Feed the MAC into the cipher in two steps. First complete the final partial
|
||||
// block from encrypting the input and split the result between |out| and
|
||||
// |out_tag|. Then encrypt the remainder.
|
||||
|
||||
size_t early_mac_len = (block_size - (in_len % block_size)) % block_size;
|
||||
if (early_mac_len != 0) {
|
||||
assert(len + block_size - early_mac_len == in_len);
|
||||
uint8_t buf[EVP_MAX_BLOCK_LENGTH];
|
||||
int buf_len;
|
||||
if (!EVP_EncryptUpdate(&ssl3_ctx->cipher_ctx, buf, &buf_len, mac,
|
||||
(int)early_mac_len)) {
|
||||
return 0;
|
||||
}
|
||||
assert(buf_len == (int)block_size);
|
||||
OPENSSL_memcpy(out + len, buf, block_size - early_mac_len);
|
||||
OPENSSL_memcpy(out_tag, buf + block_size - early_mac_len, early_mac_len);
|
||||
}
|
||||
size_t tag_len = early_mac_len;
|
||||
|
||||
if (!EVP_EncryptUpdate(&ssl3_ctx->cipher_ctx, out_tag + tag_len, &len,
|
||||
mac + tag_len, mac_len - tag_len)) {
|
||||
return 0;
|
||||
}
|
||||
tag_len += len;
|
||||
|
||||
if (block_size > 1) {
|
||||
assert(block_size <= 256);
|
||||
assert(EVP_CIPHER_CTX_mode(&ssl3_ctx->cipher_ctx) == EVP_CIPH_CBC_MODE);
|
||||
|
||||
// Compute padding and feed that into the cipher.
|
||||
uint8_t padding[256];
|
||||
size_t padding_len = block_size - ((in_len + mac_len) % block_size);
|
||||
OPENSSL_memset(padding, 0, padding_len - 1);
|
||||
padding[padding_len - 1] = padding_len - 1;
|
||||
if (!EVP_EncryptUpdate(&ssl3_ctx->cipher_ctx, out_tag + tag_len, &len, padding,
|
||||
(int)padding_len)) {
|
||||
return 0;
|
||||
}
|
||||
tag_len += len;
|
||||
}
|
||||
|
||||
if (!EVP_EncryptFinal_ex(&ssl3_ctx->cipher_ctx, out_tag + tag_len, &len)) {
|
||||
return 0;
|
||||
}
|
||||
tag_len += len;
|
||||
assert(tag_len == aead_ssl3_tag_len(ctx, in_len, extra_in_len));
|
||||
|
||||
*out_tag_len = tag_len;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_ssl3_open(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
||||
size_t *out_len, size_t max_out_len,
|
||||
const uint8_t *nonce, size_t nonce_len,
|
||||
const uint8_t *in, size_t in_len,
|
||||
const uint8_t *ad, size_t ad_len) {
|
||||
AEAD_SSL3_CTX *ssl3_ctx = (AEAD_SSL3_CTX *)ctx->aead_state;
|
||||
|
||||
if (ssl3_ctx->cipher_ctx.encrypt) {
|
||||
// Unlike a normal AEAD, an SSL3 AEAD may only be used in one direction.
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_OPERATION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t mac_len = EVP_MD_CTX_size(&ssl3_ctx->md_ctx);
|
||||
if (in_len < mac_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (max_out_len < in_len) {
|
||||
// This requires that the caller provide space for the MAC, even though it
|
||||
// will always be removed on return.
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BUFFER_TOO_SMALL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (nonce_len != 0) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ad_len != 11 - 2 /* length bytes */) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_INVALID_AD_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (in_len > INT_MAX) {
|
||||
// EVP_CIPHER takes int as input.
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_TOO_LARGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Decrypt to get the plaintext + MAC + padding.
|
||||
size_t total = 0;
|
||||
int len;
|
||||
if (!EVP_DecryptUpdate(&ssl3_ctx->cipher_ctx, out, &len, in, (int)in_len)) {
|
||||
return 0;
|
||||
}
|
||||
total += len;
|
||||
if (!EVP_DecryptFinal_ex(&ssl3_ctx->cipher_ctx, out + total, &len)) {
|
||||
return 0;
|
||||
}
|
||||
total += len;
|
||||
assert(total == in_len);
|
||||
|
||||
// Remove CBC padding and MAC. This would normally be timing-sensitive, but
|
||||
// SSLv3 CBC ciphers are already broken. Support will be removed eventually.
|
||||
// https://www.openssl.org/~bodo/ssl-poodle.pdf
|
||||
size_t data_len;
|
||||
if (EVP_CIPHER_CTX_mode(&ssl3_ctx->cipher_ctx) == EVP_CIPH_CBC_MODE) {
|
||||
unsigned padding_length = out[total - 1];
|
||||
if (total < padding_length + 1 + mac_len) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
// The padding must be minimal.
|
||||
if (padding_length + 1 > EVP_CIPHER_CTX_block_size(&ssl3_ctx->cipher_ctx)) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
data_len = total - padding_length - 1 - mac_len;
|
||||
} else {
|
||||
data_len = total - mac_len;
|
||||
}
|
||||
|
||||
// Compute the MAC and compare against the one in the record.
|
||||
uint8_t mac[EVP_MAX_MD_SIZE];
|
||||
if (!ssl3_mac(ssl3_ctx, mac, NULL, ad, ad_len, out, data_len)) {
|
||||
return 0;
|
||||
}
|
||||
if (CRYPTO_memcmp(&out[data_len], mac, mac_len) != 0) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out_len = data_len;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_ssl3_get_iv(const EVP_AEAD_CTX *ctx, const uint8_t **out_iv,
|
||||
size_t *out_iv_len) {
|
||||
AEAD_SSL3_CTX *ssl3_ctx = (AEAD_SSL3_CTX *)ctx->aead_state;
|
||||
const size_t iv_len = EVP_CIPHER_CTX_iv_length(&ssl3_ctx->cipher_ctx);
|
||||
if (iv_len <= 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*out_iv = ssl3_ctx->cipher_ctx.iv;
|
||||
*out_iv_len = iv_len;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int aead_aes_128_cbc_sha1_ssl3_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len,
|
||||
enum evp_aead_direction_t dir) {
|
||||
return aead_ssl3_init(ctx, key, key_len, tag_len, dir, EVP_aes_128_cbc(),
|
||||
EVP_sha1());
|
||||
}
|
||||
|
||||
static int aead_aes_256_cbc_sha1_ssl3_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len,
|
||||
enum evp_aead_direction_t dir) {
|
||||
return aead_ssl3_init(ctx, key, key_len, tag_len, dir, EVP_aes_256_cbc(),
|
||||
EVP_sha1());
|
||||
}
|
||||
static int aead_des_ede3_cbc_sha1_ssl3_init(EVP_AEAD_CTX *ctx,
|
||||
const uint8_t *key, size_t key_len,
|
||||
size_t tag_len,
|
||||
enum evp_aead_direction_t dir) {
|
||||
return aead_ssl3_init(ctx, key, key_len, tag_len, dir, EVP_des_ede3_cbc(),
|
||||
EVP_sha1());
|
||||
}
|
||||
|
||||
static int aead_null_sha1_ssl3_init(EVP_AEAD_CTX *ctx, const uint8_t *key,
|
||||
size_t key_len, size_t tag_len,
|
||||
enum evp_aead_direction_t dir) {
|
||||
return aead_ssl3_init(ctx, key, key_len, tag_len, dir, EVP_enc_null(),
|
||||
EVP_sha1());
|
||||
}
|
||||
|
||||
static const EVP_AEAD aead_aes_128_cbc_sha1_ssl3 = {
|
||||
SHA_DIGEST_LENGTH + 16 + 16, // key len (SHA1 + AES128 + IV)
|
||||
0, // nonce len
|
||||
16 + SHA_DIGEST_LENGTH, // overhead (padding + SHA1)
|
||||
SHA_DIGEST_LENGTH, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
NULL, // init
|
||||
aead_aes_128_cbc_sha1_ssl3_init,
|
||||
aead_ssl3_cleanup,
|
||||
aead_ssl3_open,
|
||||
aead_ssl3_seal_scatter,
|
||||
NULL, // open_gather
|
||||
aead_ssl3_get_iv,
|
||||
aead_ssl3_tag_len,
|
||||
};
|
||||
|
||||
static const EVP_AEAD aead_aes_256_cbc_sha1_ssl3 = {
|
||||
SHA_DIGEST_LENGTH + 32 + 16, // key len (SHA1 + AES256 + IV)
|
||||
0, // nonce len
|
||||
16 + SHA_DIGEST_LENGTH, // overhead (padding + SHA1)
|
||||
SHA_DIGEST_LENGTH, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
NULL, // init
|
||||
aead_aes_256_cbc_sha1_ssl3_init,
|
||||
aead_ssl3_cleanup,
|
||||
aead_ssl3_open,
|
||||
aead_ssl3_seal_scatter,
|
||||
NULL, // open_gather
|
||||
aead_ssl3_get_iv,
|
||||
aead_ssl3_tag_len,
|
||||
};
|
||||
|
||||
static const EVP_AEAD aead_des_ede3_cbc_sha1_ssl3 = {
|
||||
SHA_DIGEST_LENGTH + 24 + 8, // key len (SHA1 + 3DES + IV)
|
||||
0, // nonce len
|
||||
8 + SHA_DIGEST_LENGTH, // overhead (padding + SHA1)
|
||||
SHA_DIGEST_LENGTH, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
NULL, // init
|
||||
aead_des_ede3_cbc_sha1_ssl3_init,
|
||||
aead_ssl3_cleanup,
|
||||
aead_ssl3_open,
|
||||
aead_ssl3_seal_scatter,
|
||||
NULL, // open_gather
|
||||
aead_ssl3_get_iv,
|
||||
aead_ssl3_tag_len,
|
||||
};
|
||||
|
||||
static const EVP_AEAD aead_null_sha1_ssl3 = {
|
||||
SHA_DIGEST_LENGTH, // key len
|
||||
0, // nonce len
|
||||
SHA_DIGEST_LENGTH, // overhead (SHA1)
|
||||
SHA_DIGEST_LENGTH, // max tag length
|
||||
0, // seal_scatter_supports_extra_in
|
||||
|
||||
NULL, // init
|
||||
aead_null_sha1_ssl3_init,
|
||||
aead_ssl3_cleanup,
|
||||
aead_ssl3_open,
|
||||
aead_ssl3_seal_scatter,
|
||||
NULL, // open_gather
|
||||
NULL, // get_iv
|
||||
aead_ssl3_tag_len,
|
||||
};
|
||||
|
||||
const EVP_AEAD *EVP_aead_aes_128_cbc_sha1_ssl3(void) {
|
||||
return &aead_aes_128_cbc_sha1_ssl3;
|
||||
}
|
||||
|
||||
const EVP_AEAD *EVP_aead_aes_256_cbc_sha1_ssl3(void) {
|
||||
return &aead_aes_256_cbc_sha1_ssl3;
|
||||
}
|
||||
|
||||
const EVP_AEAD *EVP_aead_des_ede3_cbc_sha1_ssl3(void) {
|
||||
return &aead_des_ede3_cbc_sha1_ssl3;
|
||||
}
|
||||
|
||||
const EVP_AEAD *EVP_aead_null_sha1_ssl3(void) { return &aead_null_sha1_ssl3; }
|
|
@ -42,14 +42,22 @@ typedef struct {
|
|||
char implicit_iv;
|
||||
} AEAD_TLS_CTX;
|
||||
|
||||
OPENSSL_COMPILE_ASSERT(EVP_MAX_MD_SIZE < 256, mac_key_len_fits_in_uint8_t);
|
||||
OPENSSL_STATIC_ASSERT(EVP_MAX_MD_SIZE < 256,
|
||||
"mac_key_len does not fit in uint8_t");
|
||||
|
||||
OPENSSL_STATIC_ASSERT(sizeof(((EVP_AEAD_CTX *)NULL)->state) >=
|
||||
sizeof(AEAD_TLS_CTX),
|
||||
"AEAD state is too small");
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
OPENSSL_STATIC_ASSERT(alignof(union evp_aead_ctx_st_state) >=
|
||||
alignof(AEAD_TLS_CTX),
|
||||
"AEAD state has insufficient alignment");
|
||||
#endif
|
||||
|
||||
static void aead_tls_cleanup(EVP_AEAD_CTX *ctx) {
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)ctx->aead_state;
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
EVP_CIPHER_CTX_cleanup(&tls_ctx->cipher_ctx);
|
||||
HMAC_CTX_cleanup(&tls_ctx->hmac_ctx);
|
||||
OPENSSL_free(tls_ctx);
|
||||
ctx->aead_state = NULL;
|
||||
}
|
||||
|
||||
static int aead_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
|
||||
|
@ -72,11 +80,7 @@ static int aead_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
|
|||
assert(mac_key_len + enc_key_len +
|
||||
(implicit_iv ? EVP_CIPHER_iv_length(cipher) : 0) == key_len);
|
||||
|
||||
AEAD_TLS_CTX *tls_ctx = OPENSSL_malloc(sizeof(AEAD_TLS_CTX));
|
||||
if (tls_ctx == NULL) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
EVP_CIPHER_CTX_init(&tls_ctx->cipher_ctx);
|
||||
HMAC_CTX_init(&tls_ctx->hmac_ctx);
|
||||
assert(mac_key_len <= EVP_MAX_MD_SIZE);
|
||||
|
@ -84,13 +88,11 @@ static int aead_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
|
|||
tls_ctx->mac_key_len = (uint8_t)mac_key_len;
|
||||
tls_ctx->implicit_iv = implicit_iv;
|
||||
|
||||
ctx->aead_state = tls_ctx;
|
||||
if (!EVP_CipherInit_ex(&tls_ctx->cipher_ctx, cipher, NULL, &key[mac_key_len],
|
||||
implicit_iv ? &key[mac_key_len + enc_key_len] : NULL,
|
||||
dir == evp_aead_seal) ||
|
||||
!HMAC_Init_ex(&tls_ctx->hmac_ctx, key, mac_key_len, md, NULL)) {
|
||||
aead_tls_cleanup(ctx);
|
||||
ctx->aead_state = NULL;
|
||||
return 0;
|
||||
}
|
||||
EVP_CIPHER_CTX_set_padding(&tls_ctx->cipher_ctx, 0);
|
||||
|
@ -101,7 +103,7 @@ static int aead_tls_init(EVP_AEAD_CTX *ctx, const uint8_t *key, size_t key_len,
|
|||
static size_t aead_tls_tag_len(const EVP_AEAD_CTX *ctx, const size_t in_len,
|
||||
const size_t extra_in_len) {
|
||||
assert(extra_in_len == 0);
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)ctx->aead_state;
|
||||
const AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
|
||||
const size_t hmac_len = HMAC_size(&tls_ctx->hmac_ctx);
|
||||
if (EVP_CIPHER_CTX_mode(&tls_ctx->cipher_ctx) != EVP_CIPH_CBC_MODE) {
|
||||
|
@ -125,7 +127,7 @@ static int aead_tls_seal_scatter(const EVP_AEAD_CTX *ctx, uint8_t *out,
|
|||
const uint8_t *extra_in,
|
||||
const size_t extra_in_len, const uint8_t *ad,
|
||||
const size_t ad_len) {
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)ctx->aead_state;
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
|
||||
if (!tls_ctx->cipher_ctx.encrypt) {
|
||||
// Unlike a normal AEAD, a TLS AEAD may only be used in one direction.
|
||||
|
@ -241,7 +243,7 @@ static int aead_tls_open(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
|
|||
size_t max_out_len, const uint8_t *nonce,
|
||||
size_t nonce_len, const uint8_t *in, size_t in_len,
|
||||
const uint8_t *ad, size_t ad_len) {
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)ctx->aead_state;
|
||||
AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
|
||||
if (tls_ctx->cipher_ctx.encrypt) {
|
||||
// Unlike a normal AEAD, a TLS AEAD may only be used in one direction.
|
||||
|
@ -297,6 +299,8 @@ static int aead_tls_open(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
|
|||
total += len;
|
||||
assert(total == in_len);
|
||||
|
||||
CONSTTIME_SECRET(out, total);
|
||||
|
||||
// Remove CBC padding. Code from here on is timing-sensitive with respect to
|
||||
// |padding_ok| and |data_plus_mac_len| for CBC ciphers.
|
||||
size_t data_plus_mac_len;
|
||||
|
@ -373,11 +377,15 @@ static int aead_tls_open(const EVP_AEAD_CTX *ctx, uint8_t *out, size_t *out_len,
|
|||
crypto_word_t good =
|
||||
constant_time_eq_int(CRYPTO_memcmp(record_mac, mac, mac_len), 0);
|
||||
good &= padding_ok;
|
||||
CONSTTIME_DECLASSIFY(&good, sizeof(good));
|
||||
if (!good) {
|
||||
OPENSSL_PUT_ERROR(CIPHER, CIPHER_R_BAD_DECRYPT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
CONSTTIME_DECLASSIFY(&data_len, sizeof(data_len));
|
||||
CONSTTIME_DECLASSIFY(out, data_len);
|
||||
|
||||
// End of timing-sensitive code.
|
||||
|
||||
*out_len = data_len;
|
||||
|
@ -453,7 +461,7 @@ static int aead_des_ede3_cbc_sha1_tls_implicit_iv_init(
|
|||
|
||||
static int aead_tls_get_iv(const EVP_AEAD_CTX *ctx, const uint8_t **out_iv,
|
||||
size_t *out_iv_len) {
|
||||
const AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX*) ctx->aead_state;
|
||||
const AEAD_TLS_CTX *tls_ctx = (AEAD_TLS_CTX *)&ctx->state;
|
||||
const size_t iv_len = EVP_CIPHER_CTX_iv_length(&tls_ctx->cipher_ctx);
|
||||
if (iv_len <= 1) {
|
||||
return 0;
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,105 @@
|
|||
# From the Bluetooth Mesh Profile Specification v1.0.
|
||||
#
|
||||
# The relevant AES-CCM calls are:
|
||||
#
|
||||
# KEY: EncryptionKey
|
||||
# NONCE: Network Nonce
|
||||
# IN: DST || TransportPDU
|
||||
# AD: (none)
|
||||
# CT: EncTransportPDU
|
||||
# TAG: NetMIC
|
||||
#
|
||||
# KEY: DevKey if present, otherwise AppKey
|
||||
# NONCE: Application Nonce
|
||||
# IN: Access Payload
|
||||
# AD: Label UUID, if present
|
||||
# CT: EncAccessPayload
|
||||
# TAG: TransMIC
|
||||
|
||||
# Section 8.3.1.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00800000011201000012345678
|
||||
IN: fffd034b50057e400000010000
|
||||
AD:
|
||||
CT: b5e5bfdacbaf6cb7fb6bff871f
|
||||
TAG: 035444ce83a670df
|
||||
|
||||
# Section 8.3.2
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00800148202345000012345678
|
||||
IN: 120104320308ba072f
|
||||
AD:
|
||||
CT: 79d7dbc0c9b4d43eeb
|
||||
TAG: ec129d20a620d01e
|
||||
|
||||
# Section 8.3.3.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00802b38322fe3000012345678
|
||||
IN: 120104fa0205a6000a
|
||||
AD:
|
||||
CT: 53273086b8c5ee00bd
|
||||
TAG: d9cfcc62a2ddf572
|
||||
|
||||
# Section 8.3.4.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00800000021201000012345678
|
||||
IN: 23450100
|
||||
AD:
|
||||
CT: b0e5d0ad
|
||||
TAG: 970d579a4e88051c
|
||||
|
||||
# Section 8.3.5.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00800148342345000012345678
|
||||
IN: 120102001234567800
|
||||
AD:
|
||||
CT: 5c39da1792b1fee9ec
|
||||
TAG: 74b786c56d3a9dee
|
||||
|
||||
# Section 8.3.7.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 008b0148352345000012345678
|
||||
IN: 000300a6ac00000002
|
||||
AD:
|
||||
CT: 0d0d730f94d7f3509d
|
||||
TAG: f987bb417eb7c05f
|
||||
|
||||
# Section 8.3.9.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 008b0148362345000012345678
|
||||
IN: 000300a6ac00000003
|
||||
AD:
|
||||
CT: d85d806bbed248614f
|
||||
TAG: 938067b0d983bb7b
|
||||
|
||||
# Section 8.3.10.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00800000031201000012345678
|
||||
IN: 23450101
|
||||
AD:
|
||||
CT: 7777ed35
|
||||
TAG: 5afaf66d899c1e3d
|
||||
|
||||
# Section 8.3.12.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00800000041201000012345678
|
||||
IN: 23450101
|
||||
AD:
|
||||
CT: ae214660
|
||||
TAG: 87599c2426ce9a35
|
||||
|
||||
# Section 8.3.14.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00800000051201000012345678
|
||||
IN: 23450100
|
||||
AD:
|
||||
CT: 7d3ae62a
|
||||
TAG: 3c75dff683dce24e
|
||||
|
||||
# Section 8.3.24.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 010007080d1234973612345677
|
||||
IN: ea0a00576f726c64
|
||||
AD: f4a002c7fb1e4ca0a469a021de0db875
|
||||
CT: de1547118463123e
|
||||
TAG: 5f6a17b99dbca387
|
|
@ -0,0 +1,208 @@
|
|||
KEY: 404142434445464748494a4b4c4d4e4f
|
||||
NONCE: 101112131415161718191a1b1c
|
||||
IN: 20212223
|
||||
AD: 0001020304050607
|
||||
CT: 69915dad
|
||||
TAG: 064617ca
|
||||
|
||||
KEY: 404142434445464748494a4b4c4d4e4f
|
||||
NONCE: 101112131415161718191a1b1c
|
||||
IN: 202122232425262728292a2b2c2d2e2f
|
||||
AD: 0001020304050607
|
||||
CT: 69915dad1e84c6376a68c2967e4dab61
|
||||
TAG: 99763ebb
|
||||
|
||||
KEY: 404142434445464748494a4b4c4d4e4f
|
||||
NONCE: 101112131415161718191a1b1c
|
||||
IN: 202122232425262728292a2b2c2d2e2f
|
||||
AD:
|
||||
CT: 69915dad1e84c6376a68c2967e4dab61
|
||||
TAG: c4630026
|
||||
|
||||
# From the Bluetooth Mesh Profile Specification v1.0.
|
||||
#
|
||||
# The relevant AES-CCM calls are:
|
||||
#
|
||||
# KEY: EncryptionKey
|
||||
# NONCE: Network Nonce
|
||||
# IN: DST || TransportPDU
|
||||
# AD: (none)
|
||||
# CT: EncTransportPDU
|
||||
# TAG: NetMIC
|
||||
#
|
||||
# KEY: DevKey if present, otherwise AppKey
|
||||
# NONCE: Application Nonce
|
||||
# IN: Access Payload
|
||||
# AD: Label UUID, if present
|
||||
# CT: EncAccessPayload
|
||||
# TAG: TransMIC
|
||||
|
||||
# Section 8.3.6.
|
||||
KEY: 9d6dd0e96eb25dc19a40ed9914f8f03f
|
||||
NONCE: 02003129ab0003120112345678
|
||||
IN: 0056341263964771734fbd76e3b40519d1d94a48
|
||||
AD:
|
||||
CT: ee9dddfd2169326d23f3afdfcfdc18c52fdef772
|
||||
TAG: e0e17308
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00043129ab0003000012345678
|
||||
IN: 12018026ac01ee9dddfd2169326d23f3afdf
|
||||
AD:
|
||||
CT: 0afba8c63d4e686364979deaf4fd40961145
|
||||
TAG: 939cda0e
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00043129ac0003000012345678
|
||||
IN: 12018026ac21cfdc18c52fdef772e0e17308
|
||||
AD:
|
||||
CT: 6cae0c032bf0746f44f1b8cc8ce5edc57e55
|
||||
TAG: beed49c0
|
||||
|
||||
# Section 8.3.8.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00043129ad0003000012345678
|
||||
IN: 12018026ac01ee9dddfd2169326d23f3afdf
|
||||
AD:
|
||||
CT: 0e2f91add6f06e66006844cec97f973105ae
|
||||
TAG: 2534f958
|
||||
|
||||
# Section 8.3.11.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00033129ad0003000012345678
|
||||
IN: 1201c026ac01ee9dddfd2169326d23f3afdf
|
||||
AD:
|
||||
CT: d5e748a20ecfd98ddfd32de80befb400213d
|
||||
TAG: 113813b5
|
||||
|
||||
# Section 8.3.13's test vector is identical to 8.3.11.
|
||||
|
||||
# Section 8.3.15.
|
||||
KEY: be635105434859f484fc798e043ce40e
|
||||
NONCE: 00033129ac0003000012345678
|
||||
IN: 12018026ac21cfdc18c52fdef772e0e17308
|
||||
AD:
|
||||
CT: f1d29805664d235eacd707217dedfe78497f
|
||||
TAG: efec7391
|
||||
|
||||
# Section 8.3.16.
|
||||
KEY: 9d6dd0e96eb25dc19a40ed9914f8f03f
|
||||
NONCE: 02000000061201000312345678
|
||||
IN: 800300563412
|
||||
AD:
|
||||
CT: 89511bf1d1a8
|
||||
TAG: 1c11dcef
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000b0000061201000012345678
|
||||
IN: 00030089511bf1d1a81c11dcef
|
||||
AD:
|
||||
CT: 6b9be7f5a642f2f98680e61c3a
|
||||
TAG: 8b47f228
|
||||
|
||||
# Section 8.3.17's test vector is identical to 8.3.16.
|
||||
|
||||
# Section 8.3.18.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 01000000071201ffff12345678
|
||||
IN: 0400000000
|
||||
AD:
|
||||
CT: 5a8bde6d91
|
||||
TAG: 06ea078a
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00030000071201000012345678
|
||||
IN: ffff665a8bde6d9106ea078a
|
||||
AD:
|
||||
CT: 5673728a627fb938535508e2
|
||||
TAG: 1a6baf57
|
||||
|
||||
# Section 8.3.19.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 01000000091201ffff12345678
|
||||
IN: 04000000010703
|
||||
AD:
|
||||
CT: ca6cd88e698d12
|
||||
TAG: 65f43fc5
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00030000091201000012345678
|
||||
IN: ffff66ca6cd88e698d1265f43fc5
|
||||
AD:
|
||||
CT: 3010a05e1b23a926023da75d25ba
|
||||
TAG: 91793736
|
||||
|
||||
# Section 8.3.20.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 01000708091234ffff12345677
|
||||
IN: 04000000010703
|
||||
AD:
|
||||
CT: 9c9803e110fea9
|
||||
TAG: 29e9542d
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 00030708091234000012345677
|
||||
IN: ffff669c9803e110fea929e9542d
|
||||
AD:
|
||||
CT: 8c3dc87344a16c787f6b08cc897c
|
||||
TAG: 941a5368
|
||||
|
||||
# Section 8.3.21.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 010007080a1234810512345677
|
||||
IN: d50a0048656c6c6f
|
||||
AD:
|
||||
CT: 2fa730fd98f6e4bd
|
||||
TAG: 120ea9d6
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000307080a1234000012345677
|
||||
IN: 8105662fa730fd98f6e4bd120ea9d6
|
||||
AD:
|
||||
CT: e4d611358eaf17796a6c98977f69e5
|
||||
TAG: 872c4620
|
||||
|
||||
# Section 8.3.22.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 010007080b1234b52912345677
|
||||
IN: d50a0048656c6c6f
|
||||
AD: 0073e7e4d8b9440faf8415df4c56c0e1
|
||||
CT: 3871b904d4315263
|
||||
TAG: 16ca48a0
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000307080b1234000012345677
|
||||
IN: b529663871b904d431526316ca48a0
|
||||
AD:
|
||||
CT: ed31f3fdcf88a411135fea55df730b
|
||||
TAG: 6b28e255
|
||||
|
||||
# Section 8.3.23.
|
||||
KEY: 63964771734fbd76e3b40519d1d94a48
|
||||
NONCE: 010007080c1234973612345677
|
||||
IN: d50a0048656c6c6f
|
||||
AD: f4a002c7fb1e4ca0a469a021de0db875
|
||||
CT: 2456db5e3100eef6
|
||||
TAG: 5daa7a38
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000307080c1234000012345677
|
||||
IN: 9736662456db5e3100eef65daa7a38
|
||||
AD:
|
||||
CT: 7a9d696d3dd16a75489696f0b70c71
|
||||
TAG: 1b881385
|
||||
|
||||
# Section 8.3.24.
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000307080d1234000012345677
|
||||
IN: 9736e6a03401de1547118463123e5f6a17b9
|
||||
AD:
|
||||
CT: 94e998b4081f5a7308ce3edbb3b06cdecd02
|
||||
TAG: 8e307f1c
|
||||
|
||||
KEY: 0953fa93e7caac9638f58820220a398e
|
||||
NONCE: 000307080e1234000012345677
|
||||
IN: 9736e6a034219dbca387
|
||||
AD:
|
||||
CT: dc2f4dd6fb4d32870129
|
||||
TAG: 1be4aafe
|
|
@ -0,0 +1,336 @@
|
|||
KEY: 067b841a2540cb467b75f2188f5da4b5aeb7e0e44582a2b668b5b1ff39e21c4e65745470fb1be1aa909c62fabcf0e6ac
|
||||
NONCE: 10e0ecb00da5345127407150
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: a82a891565e466957ad5a499d45b579d31acaf582f54d518f8f9c128936dac4c
|
||||
|
||||
KEY: c9d9ef2c808c3f8b22f659c12147104b08cec2390a84f0c4b887ca4c247c8c9dd45e72f48b30b67a8545750387232344
|
||||
NONCE: 58bddf96158a3a588bf3ec05
|
||||
IN:
|
||||
AD: 5d
|
||||
CT:
|
||||
TAG: 3580c1601d1c9a5b1595d3dee35b0cd9e1b115d8b0abee557b2c207b8d0df5ee
|
||||
|
||||
KEY: f755dc6786e21f39b595389a51d36673e1ffb94ffc066c03873eb31839be6fa319fd31c8bea29f03ff28831861e60b6e
|
||||
NONCE: bd6c80797f1f4c563b06fd3b
|
||||
IN:
|
||||
AD: 78d88005136e312639572343a2d0daf7483d8235291ee3ac002469456b075243dc03380c387030d546c2b1
|
||||
CT:
|
||||
TAG: dede80d810fc449a769c79a5ecd2c0d68e9e0fae567781e623ab2098c88d8a86
|
||||
|
||||
KEY: 43a0a28fef8b89b8fb0f76de01d802935ad561e27ca9c9fa629347be676a6af758501b6a652f369045da5fef751b56bb
|
||||
NONCE: 0f6472f1e589c16ca5ad45b2
|
||||
IN:
|
||||
AD: 78e4eafccfc87631f0314c442ba4c07bca36f996a5b3408f9e445d6009a87ded16b33a4af9537a4619cab70d
|
||||
CT:
|
||||
TAG: 11fa62dd8374aabe728ebf7e9aa1c02cf8f2dbc29f9aaf1940313f0b7c3e0301
|
||||
|
||||
KEY: acf8e5f1bd64e6289370650b5b3fd773320025c8b229fd335d9461768cd0a17b4bcc946919932efdc9fc84a7f50768bf
|
||||
NONCE: 1aecfc90d28bcdcc5a8e3578
|
||||
IN:
|
||||
AD: 6daedbdc69133b56f6a8f098f9f70cdb7e129e51115df385a6d86204a53412cd999cf2e69f45e168efed4742b6
|
||||
CT:
|
||||
TAG: fbe0511ba0ec5709def9966a9b05facf171cddd81ee2cd56e7afc867af465f31
|
||||
|
||||
KEY: 2773c92e6cddc9a5e5dcaf3893080fd2153f009d807df0b175c76615645f2087539e299d8411b27badb749a9845c5e29
|
||||
NONCE: 6d04ed129299651aec0465f8
|
||||
IN:
|
||||
AD: 44219577e361a7a4681172d120a2d653a53ec74bc487ccde4954835943bca413d55c65dc665310148654d8c1e2e6bc2f06ec344473120ad1f95739b993a57f9ec0b3299cc088f385894fff876fc2ce8ce6b77ca253f177ba615101e84e17ad0e60704cff195dcd50eb48c77de409797e0b1c8c4c5b9215a4a0399954a008267b
|
||||
CT:
|
||||
TAG: 6ab61ac4493e58e48d071d994a000f1c1f498d22f83c8d2af56b03c155afc57e
|
||||
|
||||
KEY: 23189bf23bc4b734410d1c7ae321c42e144a25347a8029bb925e3d8ac1b92f4eb97227c1dece86ae9dea7d127eb33f9b
|
||||
NONCE: 30681944cd5d78f46d36ed8a
|
||||
IN: 59
|
||||
AD:
|
||||
CT: 92
|
||||
TAG: 986aa8438da3cf4a98f478f90d24908c6a4e848f299873e649b256f5499d89d9
|
||||
|
||||
KEY: 463d1148325c5f57af670877068a78203571b8b19f40e9f0373156b7448ab315df86c77d7c85ba6e54b9bc329399f687
|
||||
NONCE: cc9d015a4b5a888b36b14d05
|
||||
IN: 28
|
||||
AD: 6a
|
||||
CT: 05
|
||||
TAG: f66e8dc794b142944fa46d5c04a3e3fe00291668374846d763f2beeffd4ca4a0
|
||||
|
||||
KEY: 937eaab44e7c7d2cd5bbb053c12e6255e0aaa42cbe7d83025b7a2887eff8f098d019c80af849b0ed7da54a5ba5b39200
|
||||
NONCE: 2b160d24df579836e1572ea2
|
||||
IN: 9a
|
||||
AD: 35841a33ba3a6ed3d89a1f76d06c61613d09834847e5a41f8616748e30c14335e5baa43d49fceaf85aeb22
|
||||
CT: 80
|
||||
TAG: 5e5799c147be0329dbcabf7ecdba6ac595ebc2d06b9d757426fbb31e8b39f62a
|
||||
|
||||
KEY: 68a746f382fcc11c02af7b352b9d710c137a9f59bc5886dc374ca88cdc01b86fe5678fde16cfa846846539f67a429276
|
||||
NONCE: b94346c033ac1a3d709c4f09
|
||||
IN: ad
|
||||
AD: ad61c9168debf9974e19759088944e888346aff99f3e2e4522549c8ae332a0f41922972fb7c1d5ff24e7ae4b
|
||||
CT: 46
|
||||
TAG: 62ae92ff64710a9f260da2562e246356e9d749c3584fb9f40d9572307ccbbd31
|
||||
|
||||
KEY: 6622579d1d6350fd5dff432b69d172cc51f99bdaff50b0a1c0f4cda8d5904581ba8657ba61c6936407243d7fb64b00da
|
||||
NONCE: a880caa7157a13540d2b724f
|
||||
IN: 2a
|
||||
AD: 95a23eafcff892deecaf093109d30290d819851ad5c91061510e54baa2b039b114c815da20f0e3ba2ba4875bdd
|
||||
CT: ce
|
||||
TAG: 33f09666f9fd1d92f137d9f3f7092b47b2bd71a7e3139dcd19a803a6b17f2a3a
|
||||
|
||||
KEY: 91ce9dd87c7d11d2c4da41863b6851c40fba786a612e0fbf0d1956a71286dfc61fa10bf7d148cecd72b6ceeb82b68d3f
|
||||
NONCE: a50dc3d8fd63d3076cc70ff6
|
||||
IN: da
|
||||
AD: 9ce8e1a777c159ec775abbd67d85e84f3550c3296e848dec18b61bbd713a98a033805bfe6e2f2a011dd7fd754708e524168142aeee579cae19c7eab78fa7c42fa335f0c725baf556160beef9e4afd1050a2c8813be6bd14cc6982116d0229d53e9b4de923abf6ba99bdffe1d5f21748ae74caddb077d9f7488b394436222beca
|
||||
CT: 2b
|
||||
TAG: 1541cd745bc0259dd72a212474f5c7b8c121dd0289d674e5ba8d56a220d1f1d0
|
||||
|
||||
KEY: 1ad577d3b47e3fff8528e336a43a7ffef72f811e05b5c69ccfe777b10f29061e289178e394a1c87ba483c7f98ea5431d
|
||||
NONCE: 1fcaa4757a9e48ed2cb3be62
|
||||
IN: 46d30dac550103006c292a9ac05d31
|
||||
AD:
|
||||
CT: 37616eba30c55595fa0ad5d50f91ca
|
||||
TAG: 5c3ac4010f75adf90f81e775b07ab939e7551a9b8e0486ba33766728ed498245
|
||||
|
||||
KEY: 6df310dc1847b42c68e50b03d154b73d7f3823354b32759c5369bce1a1b4cd63ccdb911c2dc792acf84b8b8f3fdfb89d
|
||||
NONCE: 92e6759a31dd556ff9124d73
|
||||
IN: 6daba76658db642209e276ff7c8d46
|
||||
AD: 32
|
||||
CT: ce1814c03037078b6be3252460af48
|
||||
TAG: 46e61913f2a1ff6e77faade9a7cd37a82eff3ebec4276fbddff9266b9c9bd873
|
||||
|
||||
KEY: f848c2300995f5c98dcd0db24574d7c61459ca64c084421c6ad156e80e398904417ee745245ddae91be20fb07e66bdb6
|
||||
NONCE: 3b177e11063445717f417d14
|
||||
IN: bbf225131c821a6a60817cc65bf699
|
||||
AD: 4c5ab4fdbe0018344629349feed5d8c3ae0c5b64f2b093576a2aaa1225e7a50eca01a9962c9b4f8fc5c12a
|
||||
CT: 1538957e78f3ab0fed77906153d715
|
||||
TAG: 2c7760d47407ad7b0d5b85fa4967eaa7b6c0bb6eb16619adde7a191abfdf3da3
|
||||
|
||||
KEY: d406cac07630ce2c071732a0ec95f55123486d2677465768dc7db13f90902cf172f92e19f57f5cf7c68cd7bde7ee4b4b
|
||||
NONCE: 766aede0120b634a4be6fa12
|
||||
IN: 3804d40090a38d4c97a5fff631068c
|
||||
AD: 7707b7d0f266284e84c2ecdd5a18832650c3e27d66697616c9e9bb2f8a09a3295de0119582ca3614b9608548
|
||||
CT: 91e96462a5dfbe8b7af201158a36dc
|
||||
TAG: 56623e5813070a0e2f5184aed83b9863301ca02e3108f7afc478d48305e397f8
|
||||
|
||||
KEY: 42bb22a317ed9f9df8119746e9a1257217e5b0144051ca56f39587021d969bc0acc02795f3bd201031e8c05af08ad079
|
||||
NONCE: 0a9f6bace71a1ab21f4917df
|
||||
IN: 013f7b8c75307158f4f300450e7a78
|
||||
AD: cd95a649ae215fe73442a6991e157232cbcabecff6042b87d41557e35b97606d606c3ded54f5d3db7aa2773f67
|
||||
CT: e588dbcecbdb7667dccf7fe34f8387
|
||||
TAG: b04461748109ed9068c7e9c0446528ef09b01613c3b3aa1ffeed6685ebb550f5
|
||||
|
||||
KEY: e1cfcbaba3a04b5108ce2a87099a6aae936ee38acd92b7e6b7df0e3bcb9ad18fc579b5d470ef3e04c23459f509852458
|
||||
NONCE: 112dd267174bcd81e6fbd924
|
||||
IN: 288a1e44b406aebec7b418674f81e7
|
||||
AD: 7809d8011c5a963df14fb8981e874119c60b7a9d897d13a05651759db5835deffdd991fbf98b9aa71c79e48bd701b228ba248b6bed874b02da7fcf28a04c38b81c0ff628846015258af30dbf28ea4f3283f664f888fca545f5fc57dccc4ad1dd476c52fba341182ecf783706c5c458bf0ee5ec83454afba78eb8b5ca17af88ec
|
||||
CT: 80f4e1012d76f6180ca00fd32c8fec
|
||||
TAG: 6de00bf2fd3c88ab34ca9390f7e559875e43e0f938303816a3a75a35729bc453
|
||||
|
||||
KEY: 84172547d8608bd9e788a7bb60df2982963716e45f8e63f0c5033327d85c920c5e3776e314246b1694b739c39abfa29f
|
||||
NONCE: a3f1643bb504b7ce9e5b43c2
|
||||
IN: 7e76323eb13e64da9b240a57c95c855b
|
||||
AD:
|
||||
CT: 966487c18f025d67b42a04c30d3ff4c3
|
||||
TAG: 8bb03d893f0ce8ea4a6a47245bc7f20c72acf8caa466edd01365d0f74c929463
|
||||
|
||||
KEY: 02dee8f2e63b37fe3cbae9101fed0946e05e5090510bef3324a82e3f27456a45ab1b6cdeddb1fe515ad07aefeee6ccbc
|
||||
NONCE: 64723d21365d62926d5c2262
|
||||
IN: 4f1f132c50a01ad48882ce88655b33f7
|
||||
AD: d8
|
||||
CT: b102082e14cd9ecc0895f7a6f08ab522
|
||||
TAG: 2c09651c1a51cb8a375746236fe258a36e725936ccedbc4dfafee6c3084a4716
|
||||
|
||||
KEY: 5db57cf6301bab815d38879b35c9db72fd40ac576d259ad5074d0828364050554e9fc08335b5f2bf066b09e50fbe6ba4
|
||||
NONCE: 36e5340d844de213c312177a
|
||||
IN: 41a6e910b14388740ea351eb1df980c9
|
||||
AD: 8316a6b9b155b2de5e724f7593ecdcee442eaef7b9ad204eda4744a5e648c2dd84f48ee81397e485953465
|
||||
CT: ee21d4d47042415ca27d2ecb11b13d79
|
||||
TAG: 5015da5a3339389d39d0fcafb56ef4005b342e69ba47930e84408d33aadf5f2a
|
||||
|
||||
KEY: a493dd6de6fd6584599096442dd9345f6f2d8fc2d426c78eee2b992b4071aba4ce463f3ca293c84b2faf3e8644b6ec25
|
||||
NONCE: 4f9be6f788ee960adc650d86
|
||||
IN: 4de6e244251091cf13762d20685e9085
|
||||
AD: d15da312b7522c18384acdbf6348b5e105557f1790a6a203a65acd73397524681666743f3145048775ad84e3
|
||||
CT: bb1296457daa39d889c8f986938d6a39
|
||||
TAG: b93548cea90c34d03d6f5683ae2cc78814531b803d42cfe57623fd4bdc8f084c
|
||||
|
||||
KEY: 8cc59ebe2c7375a70915c48d2978a1f720bc0aa2775ce9189ae7b3d5dda9a81e56cde0e0a29939599409b71f0b65f346
|
||||
NONCE: b0ab041f37ea1e594f1eddb3
|
||||
IN: cd0aeaf6806cb99e6bc1c8c5d830de8c
|
||||
AD: 8f4b5a9609df757826dbe7e51bb6a2c6f45f601263cf668836193513cf008ab6b36a7d5447039f1268821ec37e
|
||||
CT: 5d5375b9d9cff6d0c1dbd14221509a0d
|
||||
TAG: d8850bbc838e068b817c24d018f8f1e1cb8aac0a68392a700f48099f81b6c37c
|
||||
|
||||
KEY: f3e9c507478d3f99dbf3e2421e45929b096ab3f3d4aa4ef9c338c5a1a2425c9936b7df602502d33cbafcf781350da77e
|
||||
NONCE: d4872a30c9d1fa9001a25afe
|
||||
IN: 25e05ea69a956b12a9be4ef03ae9d30c
|
||||
AD: 8b346c20e7c64b805d9c8d325829201753069c60b3f221f31474f55cb20315373ccd7c2a8f215e9efc407ae91b05d8b6d693a3780fdd65d7715cdded86c3d6204055812f3fce897f829d1df9ffaaf48885291701ac1765090c383162dd13d6bac88baa0cb2d748363bbb79843a1594ec6d8778854a63b7c9ffeb6d1fb17e90f1
|
||||
CT: 61325c7e0d29e9ad50b9c0fec02d7ef4
|
||||
TAG: 4b2d0caece46ce2496445883c03234e900189c22b54390b399d78ee4ebfbb7d4
|
||||
|
||||
KEY: 3d9b651e65e9239c9e33aafb091b348161ab797901fd0468aedd014e4d5683c8f3f54f20ea6bb07bb25dd258df7bcd5e
|
||||
NONCE: 32bcf856a14437114e7814cc
|
||||
IN: 08a667c2923f87a7db6502478d32280bdc
|
||||
AD:
|
||||
CT: 5e8e02cc91c732356bb9f1fc599426a379
|
||||
TAG: 5449e878d558beff4bc7dfbb5f0195444705cfb259773b4faec524fbaca37ea0
|
||||
|
||||
KEY: 2124cedb5f3f2558f8b9a2304a29c0df6102333cb4aa10625aa82cd76ab645c73f3b7cbf7c96cacdcb9e0b738e40c042
|
||||
NONCE: 7ae419446a3a105beb2fbcc5
|
||||
IN: a305dc4a2e50cc8e7a65a4b10b73849636
|
||||
AD: 70
|
||||
CT: fcaea620f7e9ed1337214c4b432d9869d2
|
||||
TAG: bfc739c8504a4d9033ab1915f46c1bf65c5382fe9ed1c134026ba32c63ca131e
|
||||
|
||||
KEY: b027feb1aced8fb3af27a9fd7f531c30991ec1abd9f230a3e5d6ee9fc6a77747013f8e14dcdbd07b0083d0ce23dfa711
|
||||
NONCE: a30a6520f933ff5265e6e305
|
||||
IN: a705f842d542cb6957fbce21854755c6dc
|
||||
AD: 447bdaf34dfab9cc3dd7777ebaf80077f391093bac9817bf02ad98db9d3f271282ecaf0ff19652f92076d1
|
||||
CT: 3ddcb07c121b498f1abb73bedb527d4df4
|
||||
TAG: 55957a0e884dea22d6ace10e5936cdac891f5b54225349ede5c44715f1064b5e
|
||||
|
||||
KEY: ffefb7770a7cf125395703985823f3e926f3722ca0764518fd2b8996577bec03648c8d542af1c6e36b51174b0ba88316
|
||||
NONCE: 4c31394b4b24f6251a839891
|
||||
IN: f026a1d352c37b204c6c1138abee9a9a75
|
||||
AD: 1e7c0f71a3aacd87ea785521ea31f93b1efd0bdf97952e0b84ecd50c706806deffc19caea312b5a9988454d2
|
||||
CT: 23c8bae37db93ed9f55f2903e04b7c6a8e
|
||||
TAG: 89d0a7e7d921dea5bb54c28e79b612688e42506aa69b141de830c8d63bdefcee
|
||||
|
||||
KEY: 453cf5e4f48ce5a961c94af0e1639c156965970f561ac17fe08d5b75975abe3db87412640972e463290800666be80441
|
||||
NONCE: b3e3f9708a86c7cdf139e496
|
||||
IN: 53f1b11de497cc6ecb411a777dc3d60197
|
||||
AD: afe29e074dcce850ac6640230e6b9f66a64587c5fbe8679144e065d3b1700c721833ba8f918e926c9142f5f362
|
||||
CT: 15d5f597be46a19566a72c5e843b77f70c
|
||||
TAG: a561c3375c096a116a721e9404e555a2deaf3f677a8611694281663274708f58
|
||||
|
||||
KEY: 3d497f81d0652d475bcd85cf53bda13f79ef0afeaec09dd679a6e5ea58f87ba6576269f836096d5ac034594b17073331
|
||||
NONCE: 3fb1664830821e2b524890c8
|
||||
IN: bd75c313f5c8f6007a2185bc39d0af01bb
|
||||
AD: 50744ed959e2b8ba5b5f4807e2997ea0b96ebfcdeaa1c6b33853219844592e82ad67abf6ccbb272cfdba6a3e45c07fec4d4a0ebe4235f11d916771a764d9a129d39f6b84f0b5fb4cdf789ca2f5ea306b25d047a9b1a1e2e90905b6fba472e70b2fa25c96602cfa0031f31c68954d7487507081b8e70f8aa1342cb8b4a98ce9c2
|
||||
CT: abe3869ac43fd8b429ee8b8539c970bc86
|
||||
TAG: 33fcd301c2bf624bccb92a986c2dd5f2ecafc32649ff550eb5312fc81cbce46e
|
||||
|
||||
KEY: 353c3e9f87b40fc0281869c68d9d9bee5c95771dd79998c059bc5ceda71f139fe447cfdf340e9eac57f232b9d230e45d
|
||||
NONCE: cc7a4b46b02f4e7f96fd34e3
|
||||
IN: 44bcb61332930f606276268ddbf3287bcaedb5b25704489cbee63ec839d7a69533dbfb6e95fe5b4694eb485beb1437f0777774868ecf45c8a5b3edafa1d62a
|
||||
AD:
|
||||
CT: d038d67b8b690519fafa7467c9fb94135f9bf0bcd8247cd2c30da62ddf37a6d9a3a9bdcf8ec081fb4469c0fc2798e2e30afede7cda384438fd01e5d672dcb8
|
||||
TAG: db2c685a59cdf304c1fb57b66966a5ca1cc3536fe21eb1113c25868428640c7d
|
||||
|
||||
KEY: 3b3786e38e110ec0c8b05fbdb3d9b6d117d1ebcdc0e7d942249fea6baafa31fe5caac227979fc833b104641e8e9ed01e
|
||||
NONCE: 53bf31912a3ededc01c91f84
|
||||
IN: 6de5890028382aafb186042864c5cca1a77ff80ba4f7f0942dcffa1579711093fb652c8d475dfca81a976be8ca77eb9c7a6b49dca1425610c945bf404ba65b
|
||||
AD: a9
|
||||
CT: 886939354fa117139f5e077baa186825ee7e2955c3a74f88af3a86b260ee9f9959a90409e7d602e36cea31e606aeaa8b9229e28f7fa58ace6fd217e5cce1e7
|
||||
TAG: 91a769003ec900dbb40ea9c9b959882d822421b510ba85ca826bc4af3b5c42e0
|
||||
|
||||
KEY: 5a75c97f3583983bbc5eee4a882b766a6708d798a46f71e63b7509af69afd7cf86f9b42df04b626940914007078a8b9b
|
||||
NONCE: 426e8bcbcffb6b425706dae0
|
||||
IN: c24fa29a66197cad518c5a1a76abd9446a8f24c2dd81e953bfc5c00544c119d67986781a1c754224af234b0ec5e44e78610a4420eb78c283e9a56637c35c24
|
||||
AD: 6376835513967e4ccaff9a0c56b4d27a2bd0d013cd54abf95fe9a162d036af285ebc9567a16ed5abfa69aa
|
||||
CT: bc4daeef3ccdf9abdaa75591781685eee3fd7825bfe63132817a7e0f93817f22bfca30ed775a773f5bb290aac3a381a01085e861cab7b9fe4c5143138e17a5
|
||||
TAG: 79c779bfcb974ad9a8ac88dce5027df5691a3a1163a5d5893b4cdb1663b17aa1
|
||||
|
||||
KEY: d1b301c029fe3b81e4b97e08e84dbc03b138f422161c0e74ccbda3172c034b99610f09a9e611f0e9a3ca40af4fcb3c56
|
||||
NONCE: 4032c79eb3ee4b63e44fa932
|
||||
IN: 71bcf5a5198787b85a66221c22e7bdb9d038dd3e10000555ec9271e54bfefc460ef4e71729ff7ae52859015b49f45df89ddf183fe1e19de3acb032dbaa4d57
|
||||
AD: f1cd18ff1e5ad2b65de41e083b5175966625ebebb3031e1027761e407dae4e8e193ffe7dea52ff61147f1b4e
|
||||
CT: 7c521a703b7d1cbd086bdc316d4f2ff0852c462eeaa1d7a586c561354be9ed412d9d9bd1f78cc85468750f1af09b7b17dc1ee84c926760d63504cd3a1dfa3a
|
||||
TAG: 831f3552890d997f0a8f2d832b6e92e26f6e865424699f0364a82d86ab7734d0
|
||||
|
||||
KEY: fdd24bf37b36666a4f641115581ab4bd6b896dd3017006031b3675beed33f21a314363e3a07bbbf4359d9ac02eec847f
|
||||
NONCE: 7767cff1a096a9f7d8a9b32c
|
||||
IN: e62b7695dd41baf49d1b356e64c6d5504784380b75724b86f5f3185d1a530664aea0e5f9aeef347e1ea4754acaa7f3c233638db234c0e93db02e0bf988e7ab
|
||||
AD: 2d650f3daed2564b0df86fa23ed0343634663adfae2c422f80f9d5674bbb63e824f01ad3994834f889133bbc0e
|
||||
CT: a51f50a6ce77a22ec472bc18c37d08fb28e77efe55065b600e3edbd9ac97f0fd0eec93cd312ec7ef886cb04e1849526f0a38b14d862bcd578b99bf9a007c2e
|
||||
TAG: 89d83264364c9c84ba705e5549abcd496abed3900f65e3daa012275fed18a7da
|
||||
|
||||
KEY: 0f88e2d00d2c4bd682f1591ea5f4c1a1090180e1195809cb363b27c863360a85b27814e6a724effa44f298430d6c9628
|
||||
NONCE: 6e2e62ecb2aa47c7e5921d25
|
||||
IN: 91efc710a57adb57017725cfa26d17d3e2993c5ee66942ca42e770a83763e9df8a455bd408dc1e2661cf301f1dd669cd6d5b4d92a886be0f54527779bae8f9
|
||||
AD: d060cbe84271e85f25a3dcb6dbf299551f0dcd5783e3df80468636e491c0100f3ec8316f24240482a88bc430a398b0ecaee5c48a274ffb2d835e200bc39ec0aa86a1c90c9e2dcb4217595d48826a81de90eb949846a33fc26bf8886ca0554e1b8f12cbeee36e65e33cbbf610c2d24264619fa93c44c88e0e3d9d368fdece461b
|
||||
CT: 10d99b98ed67d85a44fa57e706a8b028c61ef17f35f6713613d158cad90e826f90ef036a2190ba123f9b68b352ca94fbebf8ea947e569ad45f00e6a36975f8
|
||||
TAG: e345bebcc4a8ac01528bc5f317e5c378236b292c2baab6ae8654245da35d90d6
|
||||
|
||||
KEY: 1ccec52c77239bdf6ca50e5b702943b23015d08cb1d9bac592b3dec4c96be904110713e52e114a8bc294df26530a758a
|
||||
NONCE: 38554b7c40027afe9721e14a
|
||||
IN: dac91fcdb3768df8d5ae9ddba1fe5917c084a5d9e6b14eee9a609cab2da34ec9f95cf2d10fff77108477e694c76f362e29b9a9287d8b190a748ed0a929967ff8
|
||||
AD:
|
||||
CT: e6bcb38b3bfd0b428a14bb3aca01a4a9e54b0853f10bd7750f5bb58d0e7dd18006f8929d7d862e5d6601ef63be8442334b4d51a99219cfedaa31f7ab19028459
|
||||
TAG: c4f05d9415840c2325dabbcd12dbeda31e47637437514c606dedfb8ce622edd0
|
||||
|
||||
KEY: c82ad4c6f248bc51d3a51b958ecc2460a3c64d669f6c485c2309d26abb3fa84644a0d8c28da8091f90184b53cd556413
|
||||
NONCE: 35a29938fb7a31225b08d0e4
|
||||
IN: bb0045cec5587e50b148b140b6969612425243ed1412e812aa9f4b471ed34ced6dfa9e0acf3e31455893e4ee7e66b4661c6e1f80b7d6f1159c11387ce579b80f
|
||||
AD: 12
|
||||
CT: 5f1854fc2fb11fd721755445a1efa5a28607a725ad71cda9a3464860a6a0efe3f58727c0e0cd315f867611232abd72034dfc2b9deace8cf6cb507b1cd4032b59
|
||||
TAG: e40429ca19a88da73a7654d7ed8e0621ac2e504b0245615e262ac70bd05a3f47
|
||||
|
||||
KEY: b01bec74fe97e5af7db2a0b1432f8b4c069447d2b56dc2668371387f753b03465412213999d2394a4b79873db06c590a
|
||||
NONCE: fec7de97d54dec8d36c9f253
|
||||
IN: 88ab078d03ffacd128edbceea7ace2e6465f4076097445a5db7f0e61ed817b6e24f22874489049bee0c58d0aa2b42b4db0bbef6ec88d032da9c82ebef57c424d
|
||||
AD: cf0ceb3e80a76d1a75f6e070f5d3fee1cd1e2699434f96e7cb3adce12d4a3148dd433b08c68b9d66962f24
|
||||
CT: 8aa3c7478b0cd86fa30870957fb5307345f89346a869d508da9d3a4fe36fb3d6a9b0c3c1bc2d44c8ea31ec028012098d6032085af0b54603dc2fa65ff091fdd6
|
||||
TAG: acb670172ec3754064b366566bdccf5056eae132e2041f1a285c5883e7eff4f3
|
||||
|
||||
KEY: 699a94f6e6eb457b186af58c25118fcea81c8f0ad265e7c16bd6cdca15c9db64bb9a537580ca0474a4b4d54d47412d88
|
||||
NONCE: ac3fb6525f4357d831529407
|
||||
IN: a7300aa94f3d357cdb272f0a739979e08aad9551dd3bfcd0b5aca6a0972a71b502639e79e1b9e0d22db2f3220b982800d9cebbac3d10d9bf86ea25d3d417fc57
|
||||
AD: 19c3d34bb9d57d0f63f14bdd3da06a43a5afe6a8c505f038cb403515876a2765c2d61aa7e4c84e11c999b81d
|
||||
CT: 8b472f1069ace78172611369b03073f751e5206dcd2ce3b45c431095f303e70c59bfad3af8006e66e4a68f8fa2ffa534bd76bdef089d07dd38988cbf723393c6
|
||||
TAG: 8e7c3c2c41b1117928ca1cd0cd48c25c319c18e009804c007d1aab0967c0d0d4
|
||||
|
||||
KEY: f3a7b8c2a39531d5fb3c97bc9224168aa835973f48243d6f046d00937ed428e5d672e22af26e734f0c24f989fe62621a
|
||||
NONCE: 65c61af60769672f0eeda005
|
||||
IN: 59667fceb2594e002c844a47d2b3935d2c99570b1639f0887fb082499e1d36f9699ff9ef53be3b4236136aa9e441abdc63dfe536e6fc9fa8f332baa1dad577ad
|
||||
AD: f79036742501f1ac19dbb2984e09cf5000bc4bc0424082376c307b8f1e5bf74dd29c802139d7ea93d55d336464
|
||||
CT: 9375a81f016c2dc59a8e99dc33fc0db7ef99ab2f9ade4b0ba000a614ff2bd13bfbee2d4a2338109c98c1147edca6023cea43570adc503da98379326ace89d796
|
||||
TAG: f563869420699dfa0aa84751526bd75af1473bd88311001e49230b09b8ef2797
|
||||
|
||||
KEY: 27611a8f11cb57d08648ec816b5f3c45882dae394200cdfc803d1a52bb03f225206574ea63b63423da6972bf5a994332
|
||||
NONCE: a7f617fe7a52dd76ee443dff
|
||||
IN: d6ccb950515a4a2de7c3cf5a73b568f32fe30567bb22b3b46feb7ef07205d3215a3d689b96d4b9dbaac5a5bd6ecac6ba50314b19b37179fff2557c869950e162
|
||||
AD: 777282a98b2f262ed9456fed3610a2028bcc4433eb8f028597d3bfa220bdb0c04882de03a276d0191cd1a125270ce1630c1b94e2ec0021ce5c494d2e0bdb8745e6e94a387cbb31a0898965174bcff8bba105f94dbf080059b49dee71c3194fefe679ef6c00065154ea809293b088c0c3f2ed7824aac72319a4c4ad85ea990844
|
||||
CT: 41eacc31aa3c3a282ae7638d48fc7541d2f129e4cb3455df7e60259be9a814c8e1642ea826ac1ec7ed1fcc216a6624e79845521e7a8b16702566f27f7a7f3317
|
||||
TAG: b959992feb7005410f9ea6963525e3d9244f038731ffab8da8c4ebc72489f17a
|
||||
|
||||
KEY: 0d9322713cd132c339c38ec7a75862860de304c70486b89b0f587095c66bfd1abe56f0b34f9ca0dac577fd4262616600
|
||||
NONCE: 3298d02dd4eb85a98cb935e3
|
||||
IN: 5dfedb1d168fe262d35f78d797560b2634f71d40f438c21cdcb8e73cf9884c11570554f55a6abd23d0e7775a9ab385ae6c9bbd67f08d1aec57347a8fad5a4b8c7b042b03c25facbffc76f0b1ce2e6c07d427eaebe71255d661ac8e8bfe8867e2d947d496ce2318a601d0beed02426311ca678d036deb3b4c65b1f89bd644a410
|
||||
AD:
|
||||
CT: ff09fe27f12a87d5208bf246378ee0740e848262442b8b9c7670c8a73fe6732192cde43c1a1246743ed49e15ec63c87dc06eb3e0c92c1f286108b2c7e0754dcf1b9c3fc87efe3683289daabf2db71d8742061f93098788c3c6f26328b86e358507a03af296d2c29009562cad3763399e0e2b89ed440f756c16214c8ab7ddfb84
|
||||
TAG: 5076c80fc76c67d6e4f9b9d470cc184db62ea7da49cae44cb3ce9e46c2f2ca9e
|
||||
|
||||
KEY: 2695671fe86f1658d8b01ec856fb4c9d09a0c51a1b994fc87a3f72bec12052537b7429f11f7eb4aef0b128302ec8f336
|
||||
NONCE: 9739e577595418c47b9c10b7
|
||||
IN: c723c39be334a0761db795076e81e3dd85e37a57258c7e0e10fe0f48dc31bd5e683430aa70531b7c8e3a904e49bec838e760d07afa9f86b2cf78ae90f612c4560632acb7ea2d89fb1fd5396d0337111c429cdba99c6a52e863e8603aac24a83302ebf86ae69a212cb938e12085cbf73a28f75e4422995a5ec8705b12d4aa8b6d
|
||||
AD: 31
|
||||
CT: 1569b20732ee6395e605217e1cb419ce57496ba6f6e889bdfa3c93575e969eb7a0410c7930b7ea146e88577376d84f0e824b62890eb84bfe768a1513a12c2958ad1835bc1eabe602cf40f7812c7dd7da955567242cd7512090fca685fdd7306bd98a908b09464961114abbdcd610c153637400a1f81825cfdf06505947fe54ee
|
||||
TAG: d07e14a62a32ef1933abc2127cc5bfc1e43bbca663e460409c6faa3a4ccf99f3
|
||||
|
||||
KEY: 1785ef6e7016733dd1952b3268639f231e7afa973c0a3db8780b81084c67a1783200149a1ed849ca8b5c14c7b1798b4b
|
||||
NONCE: cdf48b73c3c8d8625e52fe11
|
||||
IN: 14002f17e056d7f5524537cee6c2061e2741c01a6f9a82e2cb1747887875860d51bebf8d9b63950a051f6b228ad7567227f8a45b9fa7c4ab47eab410125303defa7e3141bd9bc5bf4ed56550801ff3bfc2dfaaf499c192b1e18879b2f59e1230778132818df8f6ad8a3dce9a1d11c98075b8b4e560edd9b5ea180f0424ab3706
|
||||
AD: a35e86e22e9a3df65e4c08e5175b4216fa9895a1be6252de911cf98349841494617eefaa007759dad7f337
|
||||
CT: 99eae989435578cb57715a7457da31b807b8078a59c2332a0a866eee9da5188baed3f517b6808095f0067e9b4b91cc1424a464f0a09fc946adbe4135a17b0e8e545d2046f81cdfdb233aa3520797319c0884ccbade8235c32d195e7b802017f88ddd86fb630de19eb97f4bf91029c001fc8f1cd2189a8ee6c120e9f1682a8703
|
||||
TAG: 1848f0b163e7b0d270e2a0ced288ea6525697170aae15038f3dcbb4ea49ef843
|
||||
|
||||
KEY: ba9aed2bfa90eaed9b27a697bb44c715c0209cae6b2c4ddffc684bcf07ab51b0e096dbcfa26c18fc24b63408317da567
|
||||
NONCE: 4b850d6bfa64520f1aa1e79e
|
||||
IN: 5bcc2ea4d729c84340c5ceb827f239578971c595e915f0bd9d49ed51d723f8d0e8362e69fd11466230bda0dad57ad724307edcc621ebde1e57fa91fee206d81d2bb6ead94b4a804f74b6cae979f66bdfa4ad93d107ccf114c59cd3d261aa6e2fc0dfbd0df5f7c18e80d0699cc1712abbefab5029e35549d2919d0f937d444051
|
||||
AD: f80c759062e9ed0ee597406aedbcda9a14261d66a9546f1c939d20cb1d0d0974fe7a9b33d8c93287a6a8d60a
|
||||
CT: dae4fc873d302c51e55910e67482bb80ac68e9bc6ef77cb3e57a31d85fe75f9071d0b64026ba16d0b68fa9c0b7e958cf7682bcd329c4174ea0e3f3f9d2e65d82aae1350a53ea7cdcf9ab848b85cd731751f0e2917628e5066f5b1ddebc7dbda5d2d37e46a7a7ee62bb49c4431af730f9cd3da4c1d0e5f8593d8c99803f781bee
|
||||
TAG: 58b42e9117fc8cc2ba5cff74b0d92e8b381a444fa837018b15e9514fc4319fb4
|
||||
|
||||
KEY: 37235623acb0d650f905f106dc3bfe6fd83192e53056de8795ed8d20c6e58e5efd84584007ecb17de9e76b392e12fcd7
|
||||
NONCE: dc441f1c743a92c4b975c6b6
|
||||
IN: 960ceb8d80774bd88b7c5f17042ad2e4baac71b4021c548458cffcd9a049291cb0df93076c115b54f9af878745acebc6e8f04666d053b1ed980728043c4fe7f67b2bcb0341d8a4973ed126342f9add14279f8402cbbffcecfc847379dca8a68ba4f2f26141acfca7f3ef558dbaf04629f0f46e43246b19d875be452f14e7bf56
|
||||
AD: 32579218062560f15ff966932838460f99099782e79f1f8c41cd9f6eb59b4c2c3d2dae9cd199fe66d74c7a9940
|
||||
CT: 49ad8e24a31e90ab1f8dc37dc51dff0f93f1420e79eb108f90f800274a5aa573f64e274cd52f1dbfdee363e4f86e1457bfb8f87ce57aefd34c3a5a3a93db4ebde3f73a3b4c202c993903ab378ae71042ad238e94f400c7ac1891a9890b19d445eb1db60773a3ea165f7c4b2bb2071faaf588daebac7ce09ebfc88f4d9232d9ca
|
||||
TAG: 82f908b837a5768598982f860ecea16aee84427371c4de1f1314749b70ffc173
|
||||
|
||||
KEY: e7fc36c9fe87a38f9bb4ca67723267e80e16bf39740eb1090234a473d68aed9c96fe2f96e539795eb042276aec5d7505
|
||||
NONCE: 83d768746d40dcd695e49ff4
|
||||
IN: e61f0e02a70249b62ec9a8fdbaf6622c9c6316599daff421f1b19815707b67587d196b7e1452c7d7609f108ea946675ac5d97ed215b92a451aa6a11717ab7819f84848151007f37e2cdc8aa99969c3d5652aeeb65fc21b621865f47f44eb2c528ee1142d11f513761a6bb2d169126503db5b263a410cadd2773ff931a032a885
|
||||
AD: 59114e9f21b380ae6068609ac36688e6aa7c2533cbfe07013ad1b6663bfa42e39f20e62b45c0faa256c1d33caa9f59b1e30d8502bb7148d051451b3d0265cb9fd0d82e4f4e0489ac606956762d8e7b70abd7eca413ddb708f119c342b3d0d5df673769d8df281656d909b68b6f6438edd60339fd84ff69918b6036ad12a0a588
|
||||
CT: 4f12807736c9ab32a2be2e00c9a0236394a8bcfcec6037e7582af462a73bf10aa73bd90e2bc24b97f7001ccf653574aea294bc7b30b77540f475e0e846ab78ffcfa1fef28058e540fea43d9017d4efa05c837611b2eacf0034f26cb7903eff7874973c6da7843892bfc676170a75f839e297dc7f04c74b40f4bda20a45b2a352
|
||||
TAG: 9b05aab44ba4d1451f14e087be626232ed11c4ed04081f0d4d47ab593fc619b1
|
||||
|
|
@ -0,0 +1,574 @@
|
|||
# This is the example from
|
||||
# https://tools.ietf.org/html/draft-irtf-cfrg-gcmsiv-04#section-8
|
||||
|
||||
KEY: ee8e1ed9ff2540ae8f2ba9f50bc2f27c
|
||||
NONCE: 752abad3e0afb5f434dc4310
|
||||
IN: "Hello world"
|
||||
AD: "example"
|
||||
CT: 5d349ead175ef6b1def6fd
|
||||
TAG: 4fbcdeb7e4793f4a1d7e4faa70100af1
|
||||
|
||||
# Test vectors from
|
||||
# https://tools.ietf.org/html/draft-irtf-cfrg-gcmsiv-04#appendix-C
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: dc20e2d83f25705bb49e439eca56de25
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0100000000000000
|
||||
AD:
|
||||
CT: b5d839330ac7b786
|
||||
TAG: 578782fff6013b815b287c22493a364c
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 010000000000000000000000
|
||||
AD:
|
||||
CT: 7323ea61d05932260047d942
|
||||
TAG: a4978db357391a0bc4fdec8b0d106639
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 01000000000000000000000000000000
|
||||
AD:
|
||||
CT: 743f7c8077ab25f8624e2e948579cf77
|
||||
TAG: 303aaf90f6fe21199c6068577437a0c4
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0100000000000000000000000000000002000000000000000000000000000000
|
||||
AD:
|
||||
CT: 84e07e62ba83a6585417245d7ec413a9fe427d6315c09b57ce45f2e3936a9445
|
||||
TAG: 1a8e45dcd4578c667cd86847bf6155ff
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000
|
||||
AD:
|
||||
CT: 3fd24ce1f5a67b75bf2351f181a475c7b800a5b4d3dcf70106b1eea82fa1d64df42bf7226122fa92e17a40eeaac1201b
|
||||
TAG: 5e6e311dbf395d35b0fe39c2714388f8
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000
|
||||
AD:
|
||||
CT: 2433668f1058190f6d43e360f4f35cd8e475127cfca7028ea8ab5c20f7ab2af02516a2bdcbc08d521be37ff28c152bba36697f25b4cd169c6590d1dd39566d3f
|
||||
TAG: 8a263dd317aa88d56bdf3936dba75bb8
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0200000000000000
|
||||
AD: 01
|
||||
CT: 1e6daba35669f427
|
||||
TAG: 3b0a1a2560969cdf790d99759abd1508
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 020000000000000000000000
|
||||
AD: 01
|
||||
CT: 296c7889fd99f41917f44620
|
||||
TAG: 08299c5102745aaa3a0c469fad9e075a
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: e2b0c5da79a901c1745f700525cb335b
|
||||
TAG: 8f8936ec039e4e4bb97ebd8c4457441f
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0200000000000000000000000000000003000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: 620048ef3c1e73e57e02bb8562c416a319e73e4caac8e96a1ecb2933145a1d71
|
||||
TAG: e6af6a7f87287da059a71684ed3498e1
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: 50c8303ea93925d64090d07bd109dfd9515a5a33431019c17d93465999a8b0053201d723120a8562b838cdff25bf9d1e
|
||||
TAG: 6a8cc3865f76897c2e4b245cf31c51f2
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: 2f5c64059db55ee0fb847ed513003746aca4e61c711b5de2e7a77ffd02da42feec601910d3467bb8b36ebbaebce5fba30d36c95f48a3e7980f0e7ac299332a80
|
||||
TAG: cdc46ae475563de037001ef84ae21744
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000
|
||||
AD: 010000000000000000000000
|
||||
CT: a8fe3e87
|
||||
TAG: 07eb1f84fb28f8cb73de8e99e2f48a14
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0300000000000000000000000000000004000000
|
||||
AD: 010000000000000000000000000000000200
|
||||
CT: 6bb0fecf5ded9b77f902c7d5da236a4391dd0297
|
||||
TAG: 24afc9805e976f451e6d87f6fe106514
|
||||
|
||||
KEY: 01000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 030000000000000000000000000000000400
|
||||
AD: 0100000000000000000000000000000002000000
|
||||
CT: 44d0aaf6fb2f1f34add5e8064e83e12a2ada
|
||||
TAG: bff9b2ef00fb47920cc72a0c0f13b9fd
|
||||
|
||||
# Random vectors generated by the reference code.
|
||||
|
||||
KEY: e66021d5eb8e4f4066d4adb9c33560e4
|
||||
NONCE: f46e44bb3da0015c94f70887
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: a4194b79071b01a87d65f706e3949578
|
||||
|
||||
KEY: 36864200e0eaf5284d884a0e77d31646
|
||||
NONCE: bae8e37fc83441b16034566b
|
||||
IN: 7a806c46bb91c3c5aedb64a6c590bc84d1
|
||||
AD: a5e269e4b47801afc0
|
||||
CT: 8092e6d6d729f5ee7e808d77f3b7a89647
|
||||
TAG: dec23ae31e3e97bb364fa18ad85cae0b
|
||||
|
||||
KEY: 577e34699b9e671fdd4fbdc66f146545
|
||||
NONCE: fc880c94a95198874296d5cc
|
||||
IN: 1fd161320b6920ce07787f86743b275d1ab32f6d1f0434d8848c1177441f19549586
|
||||
AD: 0f046787f3ea22c127aaf195d1894728b3fe
|
||||
CT: 7520668ef1b845aabf245e66ca687ca7c5b4f00de71afea392cda124893746ddd4e6
|
||||
TAG: db5ad3b398513fe5c8d868e68becd5a8
|
||||
|
||||
KEY: d1473c528b8426a582995929a1499e9a
|
||||
NONCE: d8780c8d63d0ab4149c09f57
|
||||
IN: 2c614b4745914474e7c7c9882e5386fd9f92ec489c8fde2be2cf97e74e932d4ed87da44102952ef94b02b805249bac80e6f614
|
||||
AD: 55bfac8308a2d40d8c8451178082355c9e940fea2f582950a70d5a
|
||||
CT: bdbec524ca37355074899f01b7247b1abc24565b997e000f231f0664be655d8cb75f18112cfaa722e1b2e261710036ff919014
|
||||
TAG: 45b9ece29df0dd93941f9454404c8d87
|
||||
|
||||
KEY: 1db2316fd568378da107b52b0da55210
|
||||
NONCE: cc1c1b0abde3b2f204d1e9f8
|
||||
IN: b06bc47f9745b3d1ae06556fb6aa7890bebc18fe6b3db4da3d57aa94842b9803a96e07fb6de71860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f
|
||||
AD: f901cfe8a69615a93fdf7a98cad481796245709fb18853f68d833640e42a3c02c25b6486
|
||||
CT: d75a5a40ae0ac4343f1a52ee16108332b3563616c207c2b22be277a219e497b7e5bbd5bdecaed87a5216e3e49149ac50a7959957264c222577a07c73fc81f0e579a0fa93
|
||||
TAG: b70c26c56e34c7740824f9dfcb8ae6e4
|
||||
|
||||
KEY: 9e146d7b233987bddfc240871d7576f7
|
||||
NONCE: 028ec6eb5ea7e298342a94d4
|
||||
IN: b202b370ef9768ec6561c4fe6b7e7296fa859c2159058b1f0fe91433a5bdc20e214eab7fecef4454a10ef0657df21ac73c535de192eaed3822a2fbbe2ca9dfc88255e14a661b8aa82cc54236093bbc23688089e555
|
||||
AD: 40db1872504e1cced532ce4159b035277d4dfbb7db62968b13cd4eec734320ccc9d9bbbb19cb81b2af4ecbc3e7
|
||||
CT: 23dea4fb871ab1df6cfb674d2e7efbc969033a11d694c6580aa3e780e4d1db5f1145924b974ce98ea041ecca53c36207fa644b0ae789965084d1ef845cae33aff734113b3eb4d9f1863b780b0f97fb5e3c5ea991cf
|
||||
TAG: 81da1dfc98517d4cee3ee885a266e814
|
||||
|
||||
KEY: 2834321f7aa0f70b7282b4f33df23f16
|
||||
NONCE: 7541ac15c8417abaf17a282a
|
||||
IN: c7a57252ff224ae7911a905b8c699b20e40c1e9569a6b2aa0232d4b10bb6f20406135861c19795b95f9597f9b72c20931c41164f1b469b0901f2b5da3a956a6e278c940e82593eb58f56f6d3681fb00dedf7f612c4cb3193b73ab35f9a5a9cc8d13aa27ff1de
|
||||
AD: a3b2a7d832ed8ab959d82ee795df8e1ef530cc6fd9a1f10543b44c49383921d74fe0c71d50da4adb9e9c7e5491a488ceb5c384ebafad
|
||||
CT: 06d3e558b2f7f8e225d76a41a11122aa29eef02c226616f5264c9c1b821748a8115dd4868dfeacc5d167ceedc824f1f7136e7d7fae783bad83dec468c98747524fc2fcd7b86cbfd1c07078fd1b4b9caaae970c729ee3f2ecfebf048c5aba174fc4eab117bacf
|
||||
TAG: 5ece142ce1074a09ab8ce810222a471d
|
||||
|
||||
KEY: f0f484fae982019a8ea22efd1358adf7
|
||||
NONCE: ad4f5fa0d2acd2f1ee095cdf
|
||||
IN: c13310241243fa53b8c2610d1924b1d55cb6d9cb6a5b98a72127255967b8ff23623c5453e61cecf9e624e5c803250c382481d3c10febfa54d03894ba8f9ed72637fcf5631f7b7312cc74e6ff63ecb240349a575f2cd817f2afbaaf21815bf08ac1e8f87520244b4a3fc492c7120296607ef64d0adb4c74
|
||||
AD: b73839e13455fd91ddf7f81d460034b9c41eaf0cc6040a84e17e6108372f1ca50656793554ea1d05181310711d0e60d4d556b2bedb24d7b622c01fe8025119
|
||||
CT: 90046c5ca4a6db850c5cddb14227b5902257e7ed8bc55f85ca24f51558f95037a0567d485b7606d2ec1802de069926e4f69e5ade9453080f84c045438d890290ed69b5e140788d07ed3d38b067900c222ad55b298e240590cb816d90a43ec52203f11ff9496b3dc32d7ac316ac8465496e41b4be5200dd
|
||||
TAG: 76ae0503f7b43b1d2db24817f2b61ee7
|
||||
|
||||
KEY: ae0c8a20b679dc40c9908f88fecfafd6
|
||||
NONCE: 88b0ebec6a2ac13421012874
|
||||
IN: c80685c481b41323a1724ea96c1df644a595e8cc73955e6f661e0fa30737d78e7cec11629b8f1fa4bbd8e8e655f50019859514dbc4cbcf944f95084e45337d9d9d8972bd8da92b4eb5a75c0b284305601de859f8d1fac6d6b3fdd42210fdcf696119e436006a5a863859d5b70806197fdb9f0da3e4c31b0c7545809808bf7683757cd11b9d0f8621
|
||||
AD: 664df31eb95b5e17567d680b1a26980772e8ad3e9b2e2de537414368c4f97adff1408d36c1dfee65b78375c7361c91452e7d463338474a400ef9efcaa648e93f
|
||||
CT: f729ca77733cca181ba8801e001924e20a1d164cc4440a6217a1178dd6b1210837367cf84aa41f92f4123d6740910586f819389d5c750ab15768aed1b163bde5b1fe8862d1621b11485b47182d32bd304ddbf275524c4ece4cfb1361db53dd63e21ac62bb54a77bb5063c869b5f5de1f1b4356845aac79ee6f66d21ff271e02e8bbbae1372b4b8ff
|
||||
TAG: 52856b3369ecbb7201b1b0f75872e5e2
|
||||
|
||||
KEY: 38f8784a1598bca461211195d7844de5
|
||||
NONCE: 6b91cccc96d89e6471bca6b7
|
||||
IN: 374aa5ec4b2f5fba66c17a435970411f2af3d6e33c0d094f74fcb77beb6cbbac1f3a8a19f69ca087f94a5b80d5e3692e0d10ec34aa67269c824b382d6238bcfaaed586177b852f816c31e9966744188f02647d881990d98c3eabd477557a739262bb3f682f64d2208faf98097586053a32cbf37e78413a2d89613a81966e8d654cac0aa34107947a036f403bda53e74bc524e7bc2d2c51dc42
|
||||
AD: 6b38c308cc574839129e5e6251f41dec9cff7ccf256c38e4994e15ca976d3185ae17030ad3751e56367f86886acc32e27fe04d0b89cc89b0206f281aa2d80f9be19928dabf07417e76
|
||||
CT: 350bc8baf35cad823df06eadbb0e30e1e4b5bb8171d14c330e8c488f1076d94b8cb7baa3268a5bf164e23563180b9793ed06bb80079288cd348eeaa8eb33cf31ccf89dec998408baae4c3a7b3d3bd14aa76e99d645da0fba0c29a7ea4baeed741de3a5df5ff4044d9b057c4f3ef1825dd0a47aa0b5e92cfe0321c07333479dc86bed7b7b91e6ef368401392d973404e2914b7d2cb49448c55e
|
||||
TAG: c974e989ae2b86e92c5da9b0c9b068e0
|
||||
|
||||
KEY: 59b17f09c56d170ed1ef10d2fadf01e0
|
||||
NONCE: c78473d06a1685ef0bb112e4
|
||||
IN: ec7e6ce0cbc601fc8a2dd64045c8fada4a28c0c6f0ec98542e365279d00ffdf5e2eae3b663c4b79342f2f265db30a86d6e1b325318d7f7a622b36e746875b71165defd5ca1afc0a92db6ef4fb9e20b81018a5293899f1e0d06b18a2e65f7616638f79a0db3f2cfdcc0eac2ee1e2e454958e2e6d214a20ad13156f97d0f2cf4276b09f5945c11f6b20b7bede26d6c2f0e5cf2786eea66e18d6ece02156f9233bdfc57c75b1a8a8b1f4ab8
|
||||
AD: 5be5a4a089f0ac762060a336aa502f5a1df1e0a647fb9d5d932dc0654e0725122f6a567681a7d1cb7625ed0404d540d8b3145c911280d2a0ff9d1c53e27677be0436faeb39009fe5751c0b37c7a5f1137a26
|
||||
CT: 6b07754b096556462756de94e5941610f1bfd93e6222899516e00eb1830f557d6f629bc61abe0c247ab6aa0f4f816f79544ceb034b5d9e86ab8679ad67f6dbef521f6180a07b0bbbcf174cd9234848f18b8ebba7d6ae3d607e027cb220c7582eb6d496a980ae3883fab88a1dd9e5312842450fcf68640546b49c24a3ffc0c8c4f539e8f9a34a3bbff44b1bb4cdb339d8879fa4e0c2145954e34fbede7483d25a0494c1b9e5b1f70aee7e
|
||||
TAG: 064c9d25f8795d8151b33f9d32d3ac6d
|
||||
|
||||
KEY: 995577faa109071bee1c87d5e6772ca5
|
||||
NONCE: 5fdec02348a625b49c3c881a
|
||||
IN: ab162f20ba0b834e8159d9bf20ee0c5d14da0221961c4fc7d9b44c7822f32298d30775cf974172ebfdb36cfb2881ccb15e5f69ed27880b920f4a092815357e03d982f75590af08b447f0f8466b031ed2409e9f5eb479affd9e18017a369486914c63a7494168d91df157f5e56fbc4ab6ee5a8f3af1fbe1bf9324338a1f4acad45fc7137676797c89620b15feb8512544771f280f322cbaac9c4d7cfb4c326824825ba5b5f5190fcde0d399ef1f52b82abb5a8b1e5f2eea2c79702d
|
||||
AD: ec4cfbee3d1f5cc11e085d2254f8b37f8030bd285d6aa1cc53868d18ecfdd963153485dce5a3e3e8cb0a3cf8074571f7a2e9e841229466463f506a2bc90f2d6413128efee043e01eccb930fbc002563510e499457161083ed7997e
|
||||
CT: 0610980d938c2f2619bb8b4408156fb53f595d857feae649a6700af296d0411cbb80a6c0b7e2447cc54c3bd3bcfae38b7bb10fa5b91e25686d4482b14a2b62d386175f9f247e48fc3b2215b2da1c065bb00f9f59e8afafc9ef205f5245d27085021f41b9e40c00abaea48286fd914e558f822659207e965855eabf52723148d84b0a2692c48d76f30f3cb530b1beb58ffc4824517cb6772e957bd56394c1d8b70c9fa2b70a670f3fe36d8802b2043905e469b558575c75012901dc
|
||||
TAG: cb51baaa4672b8ae9745ecee08784d3b
|
||||
|
||||
KEY: 58ebf03ce7ed2f8d5487936311922884
|
||||
NONCE: bfd31cf828f3d0ce78f3c698
|
||||
IN: 1932268108a369048cdc0a75c062c0ed02e27bbd11754e621ff67c511ed98c6fadc3e95e7100644ebe1aa147a7e99f25ce5c2edb8ab6446749441027a211b8d04a6247299dfea9d75eab257a625aeb51f74e0b47b302fb5c0475ab23e99f4d93ecf07694497ff6b27c9848805af93a5615bc71486b26fc9da67cf60c8d3a396bc0164985fab2c64bbaa4dd0fdc22c9d9e433e8c70dcdeeebf230c7a3cb3e5d0d48573a64b068daf90f56b15579767ecdd420c0858fabe23abc0b313b97a9c1ceddcb59d5322e47a85cc58e75
|
||||
AD: 3f00d6f0d032d4c5110c8f22e98895279a30a86da0ef71cea6ef2738fe3e747ee54d2e96e3afb8916281f6369ab1a397ca0a18c6c0e9a0c4edeaa4190ce6422bd116ac254a12235eb66fb5cc7ef55b721d3d2db4c67c38bbbb0bcac9234ea7d733f200e6
|
||||
CT: b741fd48fa7634435db2cb05392004d0b588bc7e9ddf79526706e575415c8b3d48a606c5f155130deb77ec7aff93719396797bf6628531d9d061727bcea2b348060b64122cd1a94f999ad1f681847e57c05da0deabd2fe010212dc60ec980ed0ba78ee9160b3776ae9174c6f8b7231d6754a4143c8af129411063315c6517134ca26d5a94a2e8c6e8b7ad9b8e78b694d5251deb34dabc455dd9f2a2b3fb6f67222de61e917a645d366462d6d94cd265f919f237f06f1986fac17bfaf3a97c24b99af884d0fca5d3307caf9bd
|
||||
TAG: 35777ae50d32c572cb0cd778cbaf55e1
|
||||
|
||||
KEY: b86fc55f4abb9b65ee1897c262533ccc
|
||||
NONCE: d118b0f493c849a7aa7f35d2
|
||||
IN: 43f9438f1858da62bdd03fd5a8c7b01d8097d7ce319a41f80104968a46599e9a3289a29a16b245877898f345f92fa70d3e613c38e6e4ebbf0bcb64c1c41f8b83ec8e9f159d4b830d9a1b79f2ad90db067856eb8621e52ab3060e8d72dfe782b62364c163fa00b49aa6fbe4210fb7208c642b7a6735b1a8b2f1dbc4b3d4952985ef207a3eb0a07b1341700762e9f9d1c3438fc6633da2fbade15844cb1813d258aa5bfa4ac129d693792a89622a0c686f05d87019a266f91387d96bf2baae0262782b9c23162f5271cfa3144265deefe2c569e82911e842e5c9ae8fb79b
|
||||
AD: ecf42c3afe389acfdc9a34bec7b45705ba68e205b83b33f50b7852fbb7f4ae5dfdfdfb3cfee8a03c96a036388aa8f7809bd47eaa073f92905d0d5f199d466cc0ebd9bceb207f4209bf9925c6109973194742dc8d813f3cb212bbd8d92d7eef645fb0f8245811876dee5f241763
|
||||
CT: 87454e6cefc24ba38f01bb791333dd0006cfce165a4247833b182efcdb484b0818aa80f70f29d0ec093455344b8f169262f17be2d1635293bdcca90e21f2c210146f90398f44b35e3f2203c7b5bfecdbd973b568d8ed8444d43cba08d44984a295f62c174ca9ca69c173bb7c43f103ff53a886284af46fde5cbe07b391f9c0b82eec218faecb43dc75372478f2ee1bb267602672a4ff5989ec7251034dd2cfb49677fc82c8b209820be1ed2c429a0491beedbe8c1fc78bd62590ba71fd5da363d6da000e8b7e5bae223c0cf8397d3b5ce7141e8b301ea5a737ae480dc9
|
||||
TAG: ad696ab700dd5b71d79f4f6f69034185
|
||||
|
||||
KEY: edaf7d79c1b83d973f9ba3b29a9b9408
|
||||
NONCE: 418f73743ff0546f0d929001
|
||||
IN: 0cf3a665c443b85255759ec6248021e4b6eb825c398b5af7b5257efb7afc481abc20d90249bed5b30d44f725c78ad0ce2821f86838874dceb6b6207ad6fa34579126de720ce34bdfd2058d92b8bbbb3f1bec607de3f0a028d8f6e13d0d4d2d3861e1a26d79cb68d3fef68127e8458eb599915022da751e271cd047cc712fae5b0459ae7815a24f4edf806889fc462c83181111f4de5bbb7e66a701460f508eaf73798c3ca9c08cc1a046472f4b18c69b7ed249a96f9bfa05a276499a5f499c586027c64ad6a68dcb52a50aa6d1b1d4d202e6f184f01daa08fbd643523f4f73ae6b8d764a7f567087a5fec5ad1ee3
|
||||
AD: e4be5b677b87109e69eae9a635ac2ea185ba08ebce3ba4be06d53b2da081c5030f5a746fea7bbdda340e10eccd47238340b9244b9442c0efae7644cff53c7abd8445163e891cf30bc8e26eea01f0c461b4796c2106e1ffdfdd1bac29f7d3c72c8ca7f625008d8d333d2a2092c08ef83c8002ed90e2ad
|
||||
CT: 9372586624f9a52a91e7ce12f380ca13840f11fad8d9edf10c869042c29514515673b3dfcfe956e8d3550baae1815bb4cd41ed27c7485c723354e557d18119b27431d7527f0d84c6e76baf9afa35a215624c339ad888f27c338240e603b232cd247e77eb1475adcb87d0443265ac0de45b16c67fdab07a0c0dd203d97ac2e19248492c561912e9087cd5fb73445695b43b8dd8c7515f9c958dc64068e31d3cb615038f5eea84a74b5d0c3415b6b1309ea8092614f2bd944a6c3a9e002a95e524efa497c9d3cbdaa764f8cf8aa9fcc7f7d68a623930bebb74e5c234322651edda21e20eb12c16a76839f31f3b30d6
|
||||
TAG: 33a31cae0292d0185aa10ba1c2288cda
|
||||
|
||||
KEY: 01dadfe4cc0681384b489f38d25e83c2
|
||||
NONCE: c563485fb361f81d44aea205
|
||||
IN: e5bb4c1912d00d8f99f8d7a931e55ae72f749147fbd97699ec730bfb01b8261f1f94696278fc703263cc789b283460af9d74647a8c039ad2184674e78f6a355a26eefc6fcd4cd32d96d245d583836312652fd9e6694ac5644eeb4c2bd667b52e5af14bcb108c8e277728d6d6116e8ed1981993771b8bb783bb351982f9f8c2a0e7c20a5a863c6d71b7145b73d7e6d84d47780d66847244d0b8ef559f2297f39e26501d8a2aae8c36189580292da842c4d0d06a21d21ab175e34589e3b814d8a00ac1d8a3b2eca2a91b21e36c55fc6dad8c0a1b2cc7bcb2108b2e21fafeaa26a2d4881b183b899210b474bdc43a8f0b8464075d86a2ba1e9cd195a8ecadd315
|
||||
AD: 870d5740c4e22eab0783de87d541fa834647c3fc6543c60d5df31c19c6ca38707649fa8dcfc3c0ccc16b1bb60283d7ae2778a8f83ba07b905e23cb06d5656f614f1efcb346f34e190bcc636cdca229b64af9ae4b1f05b58f1ffd1a077a51bbf9ede69ac3954de7daf569cc8de12282cac09b9a49dfb92dcc409b8c63f2ae4a
|
||||
CT: 119f74936eaffdc3e5e7e072ce81e0e1ca91054cbfca127b8c4a94ada042a2452b39cdd02ab897da765cc0f8d84089a8cc5af662c1c96aefafeead785ad042b506fc72556182566263e90009a86503595dca0924d87ea6ac61d4e931025420436a8716d0ce379c5e3437b26a12531c0a1abb3a693f3202f5770f1dd7ec1eada8c2d6c747a7161d19ffbb897710a17e7740fc232fcc244f456e962ebe71f7ded8ca73e07dd44f00fbd023b8a72f9005f9bd4d0d44135294258ec14665309e9edcc82d98227474a9202552d31f1d2e7374d49929c2885696e5e3edc1983432f1dbad351f9cae3cd56855878d9a076c6d3a27f2718e32658f2392215915c020db
|
||||
TAG: 5689d9a73d52266977bfe5c1bb1bca09
|
||||
|
||||
KEY: 34091633f4aaf225aa02ba9c57b910a7
|
||||
NONCE: 6535f0cba67fbab0e6fa0bc8
|
||||
IN: 76217fc9a546a97dabc9be41209bdb582d8d8a62865df7398d4f7e9ac681bcd102e31bfd40cfb8e9352b1e8ff7a7b81cfe2a62849e8b77dcfb645d2046404a83442133e245bd1df35d69dba9ee097dbc867cde7b431565c72fec31719318dd27c3e47dc5f8729ea794668d8724a1d4115adcee0725e4c1e3ce16ed9e31bd5a409cd074c0277e21a0b431d3b30ddd361ecd176a8d86927c2f6693105d7d3c47d9be8bd90d0b2fb20587623b2e838624b590a5c9f0e6d519b35eb5332b16bd2c2f9534e376ba68316efdb963d63e2c87cb0716973297d986bbd885a7306e2bdca0855447b57817285801341c10baf67bb5f71b75a11856d2551eb47e60025a0021
|
||||
AD: b9948afd8818888585a6957eb59680a55a5c42458f2d0e0f39bcbada0ba0b6e72340193500e22d243e32be0e7d7bc5c632ef3dc7e79ad5acc895cbba3111d8d1faa69bfe2ce634fc0d7b12242dd8bb105c6ce54cc9718921378c906ff5e61f48fa259b25bd10fee96856a206a928b450a0098089d5cb7378c2935c4537172076
|
||||
CT: 3260de6acddb17f93ff06dc7a8955f5d363bcee255bfd40fe5e92e13c7a1c682c6385736284c5cd858ce6ed251b92f5eb10f83970525f56a1ba0b8edba790ddb015307cce877c53a831aaf56f375fb20e58199f6ddb91efdf9983f263c9a746fa2d66bd4790531f85e7ad9a07cbcc00e9c122ddba77b1cc2b37b734a0ffbc29188685227ff42bf33c2e912eb592de1a45381cf6c5c9a36af93af26168c376e8902299e810e07a8ba2e23670c5221110ad4296a581151185553fe366bb4057e61b7a788f12cdfa635d9d6b8ca47a5596a765d58bb7f877242c2e0145d47c300175d7af62a29846830922308b6b69cce8413810184b27a8184bca2d8ef16316f13
|
||||
TAG: 7dc47ef9283971e1745fa3ff698c6a04
|
||||
|
||||
KEY: d829975798d4f24ad243e4aad474fd5e
|
||||
NONCE: 59e25a6dd133944918709e33
|
||||
IN: f84b4daf4bc6d3ba1e0b9e364dcad5834024066ab5c8e672a999bbf23a83956623943e0011e3a2883d23a767b280ad84e2d7fe5811099395edd269077162310481ff304128271d4ce5c84ea738fde318cb2528bc5cd448c67837cb7dedb632d47e8f90e351b0a8942da2f78e2065cdf827a85f510e22156bfd971ab3f123e9774bf3ff7c224af19bc79e812839eeb3f1c14f89e5666c16c44a5483efbe449237508ab2436939098640931fe3b928cb3a9378b6b9fc2a54c6bf59f34b16f06d5ef132ae2a7161034f26a6e07badc61ea51a94a20e4692a0a0525726f3de9bd1d6151fa6a0ea3acef3634847cfbc98d2e0bb9ae89e4f91a78c56558ac92b4f33fb1d96b1ade26cf4b2fec779bfbf6709e531
|
||||
AD: ce0e6219f75c4c31873d4915b1af3a51c2ef5e89218ac4060dd12be216654eff2991e8d7bce6f6a437966f80c59c527679b8983e75c617c917fa9b63bc60748f5ca179645afdfe6a126a73d3fbcd41a9df6d734e8783aff3a5134ecacbb289f93febbd8eb493693264026f8678e9fdb779038ac13199459caf9c4e86f4cf8306af6dc04d9dbb678d3c
|
||||
CT: 98bfa05d1dc27d721378bcc25af4899c9c88fcd54d56662282f9b820e540444dbdc57bdc63b60680262aaeb8387e149fc2a759c0246f771dd9a13209c4eaae9f8c7e43439535afd85c9b12fbfc10f8f9f417079857b9e061cd24b7099726528f4ef529d14097239bafdce4d9b51860ad091c8a7d1faf39d44523973cd1df0377339485a89036d62cad090ffb9d05c7c7d79b01a22b7ee5e485e76ca9be9f037a94366968003b73915b027b161ab90fbc6ab78f6ef261ec5789d668fa2b28b1b1937da1d2337507997fd0d80387495d6953b08ac0a3fcd24f1fbea3df9218a9f0f1112d7bd4bb03ffb9dc790306db5e03d67201ab904df0e4ae283ab3d62bf48a6d79a5faac2ab33aa0599c0a6de5677ca0
|
||||
TAG: 767e68b063ed300e63df9933d6e10f2e
|
||||
|
||||
KEY: e9e41d154c4c1bca018bbc4d744655af
|
||||
NONCE: 04ee2cd524db41170f0946df
|
||||
IN: 225d156dcdca3e52139561b61c26bfc56bc90c21cffa69468863afb66c3e1524303f8f42103e435fa2fe2c2956feffe5b06ed20bdba730d675166f13118a193b06d7985d54d46e4150468df1252d7cd144afc99ce99b93ce9526ea4dec2cde1d0d72fb82f55db65ec2035e387e7923d98490cacc793046afaa2e49bed34cd7e4eaa52e75bac5e86f9e9eb81028cbe8a515870edb9a151334e1f961949855565abc51af9a1bbac0222e9bd217d3e3a642b0f3df8e7c47c2c9d5a801cc8028c425b3becbe31df39d30637c38f981d268017da818010189c93d2d135024f239407623496c5435f04f9cae86e63ef46fcf9787c946b400249d8476f82dee274cc0cd3714973f1b6e0ebc443d681af25ee26a8ed475136ed8bfaeaa8315a4cd198961518c
|
||||
AD: 7bc7b15c68437005a4973a06818738adcaa250949af910aeb807096595b3af54bacbedd966f83f784f651f7a2044461a94f1a6925e6d2064e72319dae75d3883a50afb6be1395d429f24029dc9b8cc021f15e305e5418d844aa4a89ddd299bf2e8c698a8f6a6cf0165c37bcf2e5885d73bb81ca15a33ea75da5946678dfcd546d475149dd1a2dab0e11cc8b07c0b06105a49
|
||||
CT: e3a3521e3e99ec595a3d9d0839d8d0cb4c0929e44f693df016da34e0d8a1f3f6aae28fa0ac0f38d46ef06a683adb04df301ebcd6ef0abf9ae3cc220cfdbf36ce8c023714d203ba785e9abb05095c4bf7f07a13f9409a5759428e6c97cd4a8b2e1a471676807cf76131ae471fa4e8d15225e9996ce4c7630c4b0a5ebd85db4bcbd79bdcb641a626773560b591adae5bf582f3e92299a60d081aacac117235d6d8094e97b034d120c6759394ede2a8b67e47864e1f50669e8e926ab6fc5cc696e70bb016de92707d4800b25ad14f9c457baa1e21b4bfef0dfa6d849e0951c81583a711242ba2383efc85381ec7228b8e7950a375df405f820ab5dec8b37572897c6af443667e09d48a18c9bca0322efa409e04f57741305ea7d51ed9018cb5d0f00b5d
|
||||
TAG: 8aa9505e89a01281f033e9658ddb35c1
|
||||
|
||||
KEY: 7b1fdb1a720b9510d7d8819b6d946dd8
|
||||
NONCE: 5c73be515c6ec00a10a69661
|
||||
IN: c59fcd7a005dd08f3cad722bf3560f356c624404f3be55a02b3301ed756f557a51593ba90d18a1c13e227c8d5180fefdde4957484dcb81d08ee3331a6fa74c9c549ae13b2dc2a80ca0435710eb9f0dc2c908d896957b87325180d397c37ea7cf65db45960c4d791bf8cf798bd7626b13bc5e6b45b45be1a8ff687572ece86d1f5361abaedc1a7f9d9ff8003bca97af7dcc42b4399f9da4a0e7e829c0e12f4d41607303f60d1df5949fca0dd9ef171678e013b88789ac1f51a8160687d842c273a2dda93c5fba1eb5bed7476ba96a12e70cabba43d509b311e9d000212c81c483b7e9e7bae1d9869a125558b2c7ef8f838bdfe97af413b460bd9dc5e372afcb105832ee4c406d74781d3e9f2aa581ba4fe458989a03679744edb73ba31c7d9d37920d4d57a766104afc9c96650e5a602ba885d2
|
||||
AD: 078f1c67d44d6e86eff0c96a146bad3420c7dd0c64d800ea5ab7ff472d0f61bdf2e5634e06cb4f3c022dff8c4b46f2a47fdca2d04572b67f24125c66a551a1f150a02f635e1e99895807efa8001f46388365c48e4afe49c04f6681510f7e4cdfa02deb3e60eed745cf6d7ca6b773e1537d057a043cf517e5388dbbc44ff4bd68d2a7243587f8929ef07df5d001a6099bebedf8f26f49323209496d
|
||||
CT: db79e91f4458befa47953312aeaf6aad01c3fb6e2cfa19b0ba21ce6698896e62e7ad2cef344cd324b3f0d317d9fe7ce713d4cf1743adcbfefb65e61ab6b323c5f16762ac527882f214539e034719047f9d3c0bc80480b7f76481e2fa26262b0bf426f1599d3d0947492769ccd65433fe70340d8f74fe31540b48c053eab97984f5f670651746b68617f603ef23117e9a8df0266851ef895b58b847e911508dcdc590f6188aabf37be430bbc72746ed7f5f47f45c90e2400d5be0e323824c5b86a2a0ea7c2156f482f7e0ff42923d6f7efc7f4f2cc77915bf85091216bb0f8c35f5274c0c8469ef03ee78b82cb6a5b510e16793f38fa2582ce249370ddf480e212f1cbcd77f89810b41effc9c87b0a80e5a22059b36e1dad294cd158f03d80ef3ed31b5f3b095cacbe5782986a69d5ff7621609
|
||||
TAG: 221274b4be8a4fcc765c2ac319b5186e
|
||||
|
||||
KEY: 50109c383071e4a61ce18f495d98b6c4
|
||||
NONCE: bcffd0fc2496b7eb0ba612e2
|
||||
IN: a4cca8eee2a3daa0c21d854d49ca73cf5b24b38940dc2b44a2a6623e8404fc30c4e3aaf759425ebff85cb1c661744adf34c6c5d538f3210dcd0270a3d12784effc48734b53c1a228db291e2e5573b6ba2aed0a7296c1bbfdd1f4a86d6057d5534675a3f4897fe3a1200c54af7e09b97b0a2ab9f25d5ed375e7bac921f28f7b6983a41580362dcf0820a2dfe82989ccf0a998286623617453722bea0b6e8fba504b93cd043c7e6c7cccfbccea43f7e87502026f94cc7035c5e84cc14a5fef9bf2be53dc379053725a9a29c4e86252369bf6dfd3cf2801af7447fd0529e94beba961ed65dcfd492398123faa55346edfc3ecff720966b74fd0ff28f443ca67f88b8f5a4a73007f79ef782bef601a0827888c4c74f7777279c625de8a4b51db94f94f846474f8563001339afb3db339ab997cd1eb1eb7b03b228162a480e129c66ad47dbd18
|
||||
AD: b4c98f6d51fee205805a50c163beb176b754366e13c57c18433228a81089be18b534ee5f9567d529c802d34bbca36807bf845a9d14dd141c5de85607a4b4c5521e5aa717f78fe78612b770a4677cacd77a425e2496ae50ab2e559526c37ea723f2b8d14bd8314e4cc3727bfb835ea4062e87870b13d94d52c25f0c631668292f184fc048dfeed7a9d1a88cc5c4662030700cd8c257784009b4da9039909f73840b600eaf
|
||||
CT: e7a4a201f58f66ddc0b8dfdf95c859879144dfa896406f43cbdc6adc148e0ea8f9a82170c5ab54c77dd0fa6dc209b623f0f5cd4ae358af96ec27c78e7245855e94ed1a1182f9d26d45e0872da3fab9fa9ee3e58aa168925d7f779feb77608067ff45b7ec7f2ef7a48a06ee22747ab96e1b485ce144bb3cf97d1e3cd28823628a2f8e3785d9af28b76c53c3d4c741d1ec56f2bd10939f6c79578c308c5e509ba8b13c820f5912d4ae169da4e04f86ff9b1cb9faa432545f7999ca1014f77c08ae9033712dbbc0e99db6eb604e774d5df8f6b928a0bb59e4c662d778d195aa95194a0cdf7688b309abe223048937691440e5a78cfe0cb75d229634aa49ee54a81fc9a6478c8fa310d524bb15ee8f54f572dee30e44eeb9603c8593f8a7007a1b0dcf2e301becf300f20d2e868b104154651446316414b5b5e9432134c0eba97b4cefb90c32
|
||||
TAG: f304266924eef673246b3c14389a82a9
|
||||
|
||||
KEY: 670cd4d988845b1d41cfeeb1ea740db1
|
||||
NONCE: 29c12f66a74e6234ebccf4df
|
||||
IN: 706ed30fc736cb5cc0db17ed108229e87d6b039da5c4f0568a4cbef9d513dfbc0af9313f02d5129cf616487934f741a0a60bf11fdc8d29ec81eb37577726f54f3e35bb10ef98b1d15bd5726fe501a9249e409eccae128df61762447962ba2a63f30b59ea25e18895d2fd11431606caf6b45b908b08cf2e150c031e20e6cc649699fed5785cfc6a0e22bd8bd8c6d25221e9c9a8d2869d236388fdcdcff990cc940ddefd06da0524a351ae6113b29db9822adf9cb548d92f23e3951ae8522ab113579232e58578e80bd2fe3e1d06414a27ce0ae2e40d87745a8991dd5bd2e8ecbcad8b903195c15ac2eaf9bfe0104bae32f772a7d7416c5671350524419a6df6ed5e1df32b961ea39b164eb7e1353b046100998ba6853674ebd5ba011691a270c046096143daa84752f872e1ae32ac07c4f0d2a048362d12b108943a7007bb6cc117135b165cbf42b92df2f191f06085518ebd1a9a2e
|
||||
AD: fffbc936ddfedc527b2c9cb69345e0c497cc4951aae5be2748209607a51a1380fd389a14ede9cd4cbacbf822597b1c500cb0549f08a35bb0b1a00c5e25c175318dc771b03501bbe45fc52b2ceb4c04b8213fdce3882e0967ba268cf786ea0acdfca0a7f3f2f4f9ed5f499ff70230158adeb5a741da266573742c527bcc8de42747df891f58632f92a110a981a29052bd17979be21e53067de3baf4c34bfbaf56ef5b3171efa1ae60a1a51f51e0
|
||||
CT: cc573518606d6416256cb233c66352086706f7f321fb5d69dc75dc6e11b9f7d053bd722b8d74f6edb023e283ac048570dc23dc34e1d344619dc648199b6bd3627590c7acfc738f10d896c0e3fbc3d3b9ef75c20c616d1dc96a6c3661b4f245ace3083590b1d97b936ede9994b08bf19189f573919eceeff80c25ba1584a1a8744efc1b2efcc264afa045dad460d4a97553d33aadbf6dde24790853a342349446741d65d3551ed343e9dce6b6cf6131c9bb3524597d0ce95e6971c01581fa140caf86ee4b53d17befeeeda4f5ce5b255a429c27a169aa075153bd4f1924df1750332aecbd365d8f65a2fd17f6abe9a054b3a2abf02a5b2031282715386c166dcce653bf3f3fb67aa119459bd5ef3bad4ea97aef40335884175d7fb9bbb3bb7f3114cd68c8136e8d02aa204d282403a34a89305725e2e022a9db9857112350e965d51b7b3de7339cfd3f202d18a07155b5bbd11fd64b
|
||||
TAG: e3c4a624a012f660f21be3776f20b440
|
||||
|
||||
KEY: fc5b726bbc23a67015c35a1be5dd125a
|
||||
NONCE: f812b7661106827f31a1e4c7
|
||||
IN: e0bc265efe59c9d6620387755a0bc17a11527fe136b765895e6386b9939c548bbe6d3b35eb92a90c05d0931e5dabad4d42ebee5af45be0106aa68888375a2619f7418a14570d1dedb76e8ab52a0a87eda2570d2c1d903ed9ecfdc62c23c47cb7e234dc617af0843a9f375a58f930337a88379b2b0553c4db974ad74eb46d637ea4e7c7aaafce16971682b772e1d85bb4a7272bc56be9bbb55625a5085e601a5dd60701bb07f69c755a57808d022ca0a407bc3d35c848d6fbfa6bf816d470d9a82d43511c13fd0f496e59646e65c84d7652589c542ae2e73c5b7aee83b9ee8381af1ea1f930444676d8e3335b271cb354e9cd3b17e7f1511787fb618aae930c14cd302bdf3a55b2bb12a61e7b930dc39aeef36447bbb2f4d9f5fb55797627fe1d0b94c04c6817de6cf1e7d6e2660c6f49c0ab4b31cd5b367b912933d3d1f0a6b8b9556fc6f8e9ab310482ee241fc221634b5094481ea232931d696c889d3d37e1c53cf74a3d5b
|
||||
AD: dc41779816b352803f282410580b0c03e861f4f7fc98f8a4cd9a4fec0c0b27d92023c081c7927e7599cdf59031444e74fc15dfc12d3c144762b8e448b7ef6772612a2e7bc34a048bc33dc56e99949d569df7e296b66cbb37c66dfd2ad8e7aadc350f8350cd68e8c4e2461290e30f9449dbaf4fdc89221cd75493d33f903d365ec418b327e3dd6fc381a8e06c48868823a42bcd082ab16b2c666b71038273427ba1ceaa57905c655f0ec4d25401c07c679ff5367a9755
|
||||
CT: d64bf4eddf29f08aff3db1225ccc9df5fa92315d70bec762a001a21f564483c43d9fc25e26ef1cd8426f215f4fba46a4fdf5ea96e6ebafddfbbe15ec5a7f8aa6058f8f3b5c48339fae17738b374bda2ae9f0b95d721342d968ccaf1ded6cc9e0d25e4074b722c876565c73a80f9ac25c8ab7c9967b79e5f924697b65ac4f6cd8f1dd6adb5a3c943c5b43d0563ce8656dbe39dacf220e600b82af2b5ef9de009b51fe6ac5707d3b0a15e87ac4c27501e88e9fa4fb84d10cc489b2738fcc751ee5aef230d4b9e4529cd3c580e2c248ce92184fdcccf8d94a5da4ac34acb13156dbc3e676bd26c68e1065990a73adefaa4a58db57dfab709af8539f449d3c49e7172c6ae686e494a92386ab28caf37ebd026d0e670ea85a010a6fe8312fe5a71fe6f0c7c52dc80b2dc39489ccc39c10a7d3d64ad66ccd44638c8c9d83e1b88930d8da56e978090dffb1e04a08303fccf1dbdb1bb160e0f80d4493eccebd984f898ce877454f84b0
|
||||
TAG: d69dab4de29ca8e91f2e74888f80b841
|
||||
|
||||
KEY: e63611c19ca5deb1db80f97a3f5149a8
|
||||
NONCE: ad2cd6491caceee3e19782e6
|
||||
IN: 6354b76422dd47ba1e715dbd271a07fcdf69b5240e58186b82b1ac443000cca1b0c79dede1cf998643565650e998bf4760dafa08afde120368ff9fdcc2311f78d803c8324e385ade4ccd2eb2ef51aa1884a496ec024221566c8c882992fbb830d4923a5c5d7b99c7e6e7a8aae5926d143e19bed7faeaf7c77bfe7c9f05fdddf75df3df2425bb94a63f54bfb1320bd32e7fc2774be67a22f2410ff3c295cbc3fe566b8c9710807722198f03f56f0abb02ca55de5174d7f9ffa61c0bffb88730886c028451062d6220586bdbf5ff91ad6b1033f2c9d6cf3c3c7bb58a070e8bb1c3a39e3d04952961849cf55e64033ec929f30b9ead497d14b6c89ff6a4c008dab0104e7e20df6d6f11474ab680e5bec789623b2b693950a5d17dbc5b49cf80ab033b1910a9afc4231254f88ca13f37f1214753f32547ee0decad4bb93fe229b6c8a14564081d8ce5d47cd45022bb74475a709d84dc5fb0fd2e46ebc9940ccebcce3b674a6934d4dd57ce0fba9a1407beb06af6d1f6d70275
|
||||
AD: fa9f177cd36c990d4b22ff63aca475feb17de03d3a52b4119f9b277649f6f53f223e29e03493c938688be81151e268928380b407039fb38494cf235ddc823e8cb12f42b50b2feb52be05a38893d154b37cd1cf2f635413d7819354e29e195bd01517992b51efcc91e10932dd6f8a859c5bfd77f2e3efda25caf034a91053da8936e1975fcbecf2ee9784bfae7f903df4ad32e088a869aade322c7d14fc4143c50c59112c8178d00a0424f4003748d28956c9d3a6c57a8e0405d6509147b50e
|
||||
CT: c22ffa587dd3b6425b81890f8eff36af3c64549c5a5f3e1deb44a7f14c6a179b1f76dd01d546a4273fd6d47b6f9e3ac5e9b641982d1002fda49af071d1dcd88ae5d0ad778d846d3db243ee067f17a91bfd808ddca26bfb67ad28303be8f582de507fb89bfc79c10513327c883bb4c6b97729c1d4aa32ce50703636b2fda0f592174f2ea36b26691e6355ad20bd116619dc728895bbc0cd281f58aff68d39e16087d3cc02ef04dcc93e9bf7695cb15a8f2db51df2e22a2f04be96021b4008f50c94cef256995207ef1dd9c0137d4cf63aba4a0d28aa5ff7240bf20895f8e9585c8c16437edb41e51f6ce5a4f965f0abae8bdb7c7abba2ba82eb5ba1dffe56411e51aa87617c62f7f6af3189647340865f92a16987ab784b1d6549099b1a02b369198ae9f8339e9e197f41e2798076b5b5fa61aa7fd7620bbcb8828b2332829d554f21b83d018b59f785e3a2db359b36fea9a8f085cfb668b3a7d80ad38b85e24472e72916bfa2887036d480f6ca48acfcc7c0f471a9501e
|
||||
TAG: bd674531985fa355e1ef3b3dbf8f70b3
|
||||
|
||||
KEY: bd7d9a251a127a4dd736d0f74e68755c
|
||||
NONCE: 4226110c276cb7870cf1c7b8
|
||||
IN: 6617944662737762aa77bb255d24ef951b69adc74314c72f37f32dc091ccfff067a89b834b1cf0b58cc22f7dd6970104dffa1f60b2ba837ca6ff834d07c71ac4eb40416f0f50303dbf6d0b4b0b9d9afa8da46c6753008f093a188cefe67f051c8bb3b6121841e2ba25b8b801db329b8da7d0bfffc29a3810d2d165e854a9eb34b6fcfc7c05bcdecf8f20b12c69f5641441156dd85b910557d1355e9d07030278b494691433bd5de2858d8bbe2e3071ff450f113ca78f385cf77e6dc0a6c3888e3144be91404deed2afe438240270e9493811343c62c2ef0e785921f1ccb2d2d029c5f0365f46bd55bfa8f89d1d4c30c5f6598fe3f9111df847b27a06f7641494e4eb7dba8a5296f90bcee8cf11c1f1fc16c52868e8f2db2dea75b91dbfa023d5555371e1461283e3f1695e028ea00bb35b6e81bff8f128af2d81df6fd2c7f6f42bbe9dab30a59ea4788a53cf9d6a2b1e9cdcc9f1883b37c91eb8bea7659fab41d47f6fb5e453777b589188805e883e9e15ae1de4e80860bffaef45a1e0a01f88b5d7d948e63eabbd
|
||||
AD: d2f357cff8c172e6652cd3b420533b8527a6ef26c8ed75d349dca2106050d80cb22835c15861a22d8c7cf8c2c2df9407eccb0c21dc7078de4b8b91e82d94a9916c9a284c7e49c8c7d001721a9031530474452588e09411c66023c9c81b7891ed271d371d60dc70f0c04ac93bc694e5b638f7ce901011e1a17059892a98d596666d102d9f7e0de426449906081651f88157063729176f4608f2d506c9637086f8a56821538a6241d8ba5e0f37ad3ebfd0b9f3b3bf0ce18c095c4533cfe33f6a98
|
||||
CT: 7db6315e1ce8ae23774c2e8826811bc31b2d17c869691248a5b49398465319576c56c2a64e22ab0108c92b52d9a6096f33841643099cf47aa1defed63b7855f3a4586dfb8691c982eaf102aa87888d09b6dade960bf166e48d58999dd08a0802e109186495833a8d8bc5d6d3159824d1b89d4084cb831b8526dfd1c620b4fb6000e45bfc1a101984f3cc51d54c793ab8f034066922905c532dd60c7d96f06989d10c82844f4b20e872538f27333e6d8656b46fd819936124617cddddac8a64d2a81a0cbf21fe91293c8ad6af63536d10c11a63297b620350a6f76e76afbbf2d8c63428d46c9ca123b5022e6d67fccba1011b57aceb10da0878bd873422438cd949df47533eebacee697f9856222344bc9c4876f8435e0b999676d141135a6f42ace8f99b16d86e427f1ea4d4ef524835385ee1cda9f4049c3f6f9226a69b08528bc3970166f6f9067ac30f9d24b7da6bbec4e58286b3b1c5a7711ea7965ecabd02375b38a603d49c12131019a9b2affb801c91d54896c8c29e09f62a5fc0b100b80ed54b70f568d7
|
||||
TAG: 9fb615a8c354e10560c3cd37ceb3c3d7
|
||||
|
||||
KEY: 71bd6158a17dbba101f840c6638ca058
|
||||
NONCE: 9434c5b842d5dc501c774114
|
||||
IN: 2982cde70d98014e925eb46493b0bf91a569139be22c42cd33ba1f8c2bc884b2501a0f49d6309344874325345a98481287ccc6d29978d1e5be73740fdf2f3a3fdd0d7c0642be7a22e0c98f0886ed51bac87ceb0f2caa79cf702ffe880daea115b8af6546a7bc18469e07a3f8d8b8a825648684e2b4e9412cfa0f895cfa162ae0fbc11f8cc4a3252b2acf89e8ac67de0adb91e36dd510f9d8ed4eef92047d015b2ebaed1f3f0412d81fb5bc82f548dca18d5205995c22beae86894c88aa7b50cc82029abff7c8a56d0a6a594fb502ac9f11cf10f8ba9967497e0b70551a6440e15285d53befaaeea2dd2e743cc056bbee79e47350bfb49178454aee0c78372db372d99ddb910dfa8db6556b61d64e8ec833fe4737b13269583459a39bba6a1202fc709595fc0161f537bd825b3245bfc238a6c7d3b2295d1857129df86db0891e022199c793b319ae965cff94b078e467343796992992d388aa210d50599a3b2bbea36250ace162989e3c21249115a402c544aa82c0bf7b2cdf2d0ee20653b1e07cb42f9d1d0575ea7220ec01bb31deed93fafd126cc8d0d268
|
||||
AD: 16561102778d04ba7d68de3d942d313a63f1ee6c3a37397348f01bc83fb878bb1035748038047cca0c07710b9d76e129f9b881037786907560e4ae9592c02967df22af893b3ad409a3b9587454afe0375846cc8ad94963c7dc61849ee4ec1406dc7915ee5477bb73a43035d67e822e45d3169db88b269824228149abd333af8e41d2be455bfa449bc2ef48f0fbcaeade0f6b62d99e318a2ca44506670fb1397c47d1931136cffc72ea33a0e1e97745e938ce654b9b961fd4680117388dabdbfa134c9dec8206797e72
|
||||
CT: 6da55c8a9c5a29eaf8dd627d7048f0e6cf1d52063bd0a7f8d073e66fc406f37fb397f789e4bea1da21a94ef944a2a0fb9a35a7acee3d3687d8d713090a1f2dc3d118ca10c85f5542f9f6f40a4a79bd8816efc75cddd4a7adc9ba91483ca70daea0c65e975be46f690a2182602b29d7c04991d2fb61f154f8bedc194ffec5983b12c4f4d9abc0a415a517f4b8923a2ccf1d5213952133b82621dfd4a8379cca916f6ed9e58dc94baaa1c1c7d8491c3341e0751d90d131f20722bf2c44d097dfcb6eb49385dfb8c86dc47a7dce3ffc3eb89f32b4f106bf48c0d69aab448ba315145dd7ebadeff3798bfd004369595f48c9e7be596fc181bac4573d994f6d7a778f353e3aff64c3bd5169e8525edb96f1e97a5617345fbac9f58c0885d52ba25a019a4e01deb3ac14c4739c0bc73f28d4a05bc5b0be11477395f706d45ca0f7fd92697e6a8c5eae587dc9cadf62c4e8c283041211c3e51a23b84bf00d3bd4be490cbe9277268fff3f652ac9eea2734fcb016639f3b673b0eddb2691b10713fd5bd606deda19d9429ab17539dfac05b5ef87c018564cea21fcce7a
|
||||
TAG: 9f64a1a1ec8b09b1e64b258744ac5f7e
|
||||
|
||||
KEY: bb5e6c7b672e7c5d720c2035dfe8d42e
|
||||
NONCE: daa56f54bd2dab11ce5ebc2f
|
||||
IN: 95ef01bf080ee82e8ebda43598dca58db3acabd7b3cfbf5183d07bbdae49004f5154d6bafbe1114baaf4c624688178234a6176756718e79bde83422752e7a9ee87648b182f8ebdd96213b640b76118b577064f871d627d2a7218ad19d45499ed3d4d9bddefdc282e66d1d708daaa558ced4edf38ee6f3a9add0f2126e94a707261234932d0e3674fa085a7e2688b854bbb9bedb328940b5d35fd0eb85f5a56f1406d7a8eb7316a17eafdd7b87ee85d812a740041c8ff6057a462ea51bd07df0a0b0374f5b4ff65ba48587cb83d20010e67f36106e99a5b733b8627d541ddc084ad0374432ac165b4e81c8601e7c180850e54d8db89c092d356dd617439f36d65422a45d116914390320eb1ed0736e47afd5131b7422234a36c5efc5fd578fd6674176a7ac0f73b63a3f5188aa9a7773a27f50e103c2faf3e0488acd1265055999bab1150ebf49bf03728bce3ceb49307e2af7bd5f9ac307a8d249f55514325a6ab58fd2daa5194b07fab933db72806ff4159075e140d89fc3e5d6b684be014b5f0ea1c857a97196f184755c637c4f3b8bdeac41fe1bb892b86047e88facc04e2d88532b6f584f4ab378a
|
||||
AD: 3dc7d6102a17877db95465015e3122681258437f11d14b83f1159a52486b4c3bc6037ed33de9e856d3c89fc5838aee587c606cc0dbed9a58faad042d51042e086545fd9639b18650bd531065684076cd188f11508d48e2a7ee585e8c8e9061970a2d381374e0bb5ccfc8972a01d9587872ff0c925315d10ccd8b9cc6b1450c5400cee4e2edf25ad952f31da22c7f241f97d966bf491ff2b8f889dc798a24e184c64290656711a826290917db99e2c2bc679c92d309a1856867d9428ca2fe5ed2a3d0476810cca53b18526de0e88508a67c67
|
||||
CT: d5c7b4282f37776c03c6efe2af410b10caef49943001460800fdb6408f3c7a9f7f32d8db36dcdd0694170975536447d84c56f84c966c28decdd607237bc7ddb15176ca20be0993f309d2749db68666b2efbeb4c68cb3982a68f67114c0dab61eb9d4cf4c23f1847fc36bd561b0469ace73c80b0347af5e88f051ec6cb19ff8335dc56cd3bc6cc81893c9234457c0d8189cf1234a6c8a262926402eef262c4c5149fb68053480ab2b1512a91d50c48dabe637aa410d6a164dbe4f8c1e1c0efce8687dc858386c92ed7fd8b8692d67ddf453558d28998ca1b57a6c178f12f4b64479b3367e8dfe53f809fa7baaf8d1efbe3c9e2d83b0377cffd8d8dc172a1eb260762c873af724248011d9e0cef6971ec12e81d70aec923664ff7f7cda9d60b3464ab14488b243930845e38e93a8683787641b85476816dc73d17a593b68935e4cf71d81ed7dcc9202db65e235dd69c1f2ad4fde4d566970923a24bdee799258a3198ff2e126870252584a1949439b7e32318af204ba164f9f3488a669800703f988fe56ea6b0b2cf662c43e103e2e63b377a85fd8024d3b40ff47f30fd3dd6a0e07e751d07d5b0e4afea2
|
||||
TAG: ab140e2a4dfe81a064944610e0cda2cb
|
||||
|
||||
KEY: 97b507a2e09cbf5c31f7be6dffc78d88
|
||||
NONCE: 3f607f0ec3ddbaaae6b087e8
|
||||
IN: 731cebc792dc840ba136374a9b654b5d61735d2d85a70646be9c470918201b9c8f756e971cfc12e0a93acf386809f769ed64a19f47f266f3504d47725672b2aafa611456987fd1db71d16a4d1289ad442f0877da4f192d814f9302a1207a8e8e48ed90f6b5434b35d47dac6a0446156781ca1fa41f7bb772d1eee48919b4e8371cf49fbf452187245a16b51daf82e35b77e80869eb84ee9ecd90312dd3e6e6023ebec1a21b4279bdf21402969101cd1dfefd0a730d3341571bdcfd36abc675744f96bc7445f77f90f261b1ae207f93d17828d39eafae394ecc2e65bca79562a706c279bcc6d038edb9d7a344ab1a5021f9a597b223d7a1a99e1268dceab20c23e0208b9a898e99d83b2e788c1b7faaff2aa6145f8918f53cba3168db274d65f2e419fc233927599f7ad96890bc1cd4f983276b126f7d10b894a67237c7b67e8d633d62b39d788cc43b2f8a05d87e656ba86feaa3a729b0be2abec99bb40d177900f20b559c4e0ae2034409bc9b86c54644cab932e997fe0554e7eaef7b247aa00f9e1ec07aa9af3a86470075324d02c32425309bbcf5462aa20caa950ec9653939b043c2e94f0ede1b91df0068fdc903431008fe16670d77b08988
|
||||
AD: 0c962e558fa573b2052d3106dafe00e3acca3df673fa559f950bdf9972e20b9612b5c4c96d50997261be7f2fa978b793d5b61e74b82541c8c02305431a6b7495f948622075b5d18992d976737e1f6f38aadf90bfb46f7bb9a7871620218564360729844329f4cd2f0c77bbbf17661529f88c80d1e000eafdbb937411cbd4295ae697baaa6c9a31206c5711bcf31f2dcb50cddb4619d48388a57475df684f4a00d432560540ea4d4d337ce0284467851e86447b1f04246fb2167625a0b3cc16873841d23551653aa1678ba76689664e16c7354c87d5fb7d40287894
|
||||
CT: ff28b33337262980b3adc761b8713f01770dabbc1f458516c721c6a19317ed1f1d6520fa7b2859cc577fd92fa3525273f4a87c99575940e941914ed586e7aa5637c4fd2d98e7d198b52924619dd68a214389cd486fbf006ed9c72e6066d92d2278abf1fbf4b4ea1f3d945bb1653eb3c217d7201d5aa40d34c8488532d9818b06e4c0e97c4cca7c9e2ef19ab5a397db27d4465f41585ab60342a3102837cf43c95db008f0689ae7a7970c2ce9fd685e2811393931a4d169701068b6575b47e88bbfba48281ad4b297fc3b265c0590be6b0208f6a27594b0454e55893c68203233b60d08e25fa66d63e76a869a4b84d153c81f1faf46f9a3130f7ba4718a75366af23e4377d60901b960a4926b850f4d4052d6ef1a5c54ffb388acbabecf069a5841a76cf15ced838239a8392149ab2d904b482bc661b3cbf4c74b711778cd61bc38499120b87f0f45f8a5aad51c84595b991d7fe37582b1ff963063770cd0ec9d98d78ef323c8bc939cf3b6035a5e1f5d54cf9af44d49f9cb01b7d1e91c2e0da110a33e372b07402605ae81bb4ef5505ef51b3dc23ef5e48f3f16711d2d72bea5ac90e85a37c97ba2d1a4f5117a616b3865d97a65a08265ea0c8fbf
|
||||
TAG: fd76a9ef5ce12640f3e782a40c6d0fa4
|
||||
|
||||
KEY: f46e56f5394bacb222b30fcb3f5d5547
|
||||
NONCE: 6fc37c122d6865751212d4f5
|
||||
IN: 7651092066aa20eb70114f269b08e4ece1b804fa3f2c5e4b94981d41b3503fd127fb21c1ba24cb871dc6f19c2a674561900f73e292f618e1b3a285ec79bc7784e3481cfe36e1117fc620aabeb088585aef6632a7228a5f901c62f248b9ae12c7a6e7e5052d9739bfe303758989af254b78d5a42c74b13def0516611a1c0323e18070147f67cf0613cb22d83dc29c176b6823166c35202c46e85484640221fea9441b1e9f4ddfa4c0a2f4b2599c6fc73856e3c18a5905f85dc919883f3fe9dbbffc50e89e8b71b9a36c74290718e0b89aef1ec21fae49d280d3776d3ef79368634716cafc8f2eefb3f449c438c14deebb705a42e85274cecd11932c9a84f0dee48e8a2175b57820c1042adcfc42ac9a39341af5ff6edab2d25eba8f0219d3737bd4e7ebcfb3883877130c85e5be6a7b87cdaf4d37075eb2f0bd0d1a61567a362e8f66302e56668590b49b5c76eef962d1c310f8bbfdf8f57f3f82b9b2f72ef49cf487a4e8618476db71c6e0813e908126f9958ed5453067c6797eadb432d07de49dc2e50a266eaf6174cd1b18ab707a53dd47b564518b7bda452bc451a25ad2aaed6f2e7a3509f704954bff2b50f5cabd420148967ff830b0c4804ad5081b42f842276c6addae1c3199da8877
|
||||
AD: 8d920a6c79114e667faf28fce2f7924c4288399e5b4968c711f03d721e885fea0668574ae965e9996aab6b30b6eac785cdebc45a305b806ea90663927b8dbe8116292ddcc56938c0b1b1639e8068db1e4cfd101af5478dd63fe0209125ce92e3f7f7fa43dffecc07ae1621f32af975dcbe3f34f1dc75c75fcbc4c23ee8b8900c2719f4a9f50e57b1f9a9d9172fc746112f12b17b85b0371d0472d3c193c37e837d8201fe7d3ce588ab7e27e8457c34d399edfe3af2142a2baae6c6ec74863f6415ce30b17c17599860bf9a59be41a6011104b9cd0b8241ca52d1f7910cd3a3ae8693e47f
|
||||
CT: 4877203ae9162588de263a70fd978343e6e2c7efc107064c1a314e210e01633eab9cc234a86f0815e515eb2148fe67023dc7c67616a575c0c1adff2ca1bd7867ca351963728cbcb6a41b5928e83b6ad97e458773e543138f87698c86e6a84725cc6330e3550d40dd3103d0aca5139b2e7f7f7060e34c383280a9276aa44d915460cb664d132056955b2df063a03fe4f844122bc02455ff1558377d8c15419e34417e3c0d5d69b69943027fe32384cd53e121f885293f17cb3f2637261f3c9bf6321406f3f4e59dcd37972e3073573aa5d9f78e021d07b7036405f193c65a2f8d47f9a2193623d403706364f514b1beda6930925c1afa9f294ae625673e41647a94830dbfc45a4d9029d5e028e8997d9f251aa7da65b48e1abe8bca5453482aa6d1dc1168bf4a6ab5644d623ba15dbf10b0f46536b35e30fcc5086184d0eda2af5016f370c9931f1634331458c51b575553686b511f073a2650a1ae9cd2a64d8ccb14194a659bd533e91cac42690d661c5038d0182cd8e52bc751662508d2253460fcfcc4428ba7a55f1db80bc11af7576e6b9ac2a35929bed35ca82fe497a65c24d04c96e6d9fb3bd66fb54f01483b766b614a97e370ff406713d4b811e1327fa52692355e1d307fd2ac67a4
|
||||
TAG: e7208823f0abf2571f81c015eac317d9
|
||||
|
||||
KEY: 4675ade296a8c507fba35f62c82d9230
|
||||
NONCE: 51fa718d52a0279ba9971490
|
||||
IN: 32b3a91b1dae9cddd5a89400de90ffad1e1a126c41459c512c261f089787fcc18c4583abd4c9e8b7844389db3d13e8bd5fdb68bd76c3878344241eca6916049795716b257636f1d25230db71bb10725fe4b9217d5643ea14754a69739cb62c7e99c5157bfb8c153cd754a2ed10bbd574c718b8dad2a556793e00d8d5a59bdd486e768f2e61ea822822532f8b4d77b3446eff2cdfb7d88d37b3e7ab0686679e02497abc04ef7a240d456bf999cff4268bfa6e366831559de7775ed6a6d4f02d489d4c305f25cd96f2239f2725961d5cd823d72dea41a1c1f1611fbab63d339a8dd47a3a31b7790a605d3bbddfdfb66ca6277a9a3e4036e8662d6560d05a7ee8a674e33d6433aed82fa26e5a1f5a2f47c28092ced2d182eabb9962aa8b10a567ec3705be6889e1415713b9ef08731393cee91370cb1d3bcbadf5710eb841d37992a7aa3573facad94e806d0019194b2cf9c41db281f6ea462e2ab7364b8660b956e145a13b77962c3191b2e46ab764392910cb7410d740aec3ff2ab8b643ae7e65d34f895189bb41902fbf2c5476301600932728008ce33380845f22b7db3a7b9accc8cf0793bf6ba37d405a6bcc8cc622f1cb205cd0b6e7fcbf3a6eb1d3bf2fb91e98593959077e8bb76adecdee2fcb008cfc335d5465e4e10e9cedaa39
|
||||
AD: db35fdd7b9533c5b8f2e5bdb427d8bf42c5b83cc11d2ac5ac96f6cf95090c5f439bc5d4828238a86c5d444ba0aad7b6c5917f673010f0717007a77064bc4d29dca0ae96b381cc89d04d5731a0f985a1e8071a0fff733889d0f2475ae9277b0ac5f7b68a0533f16f904ca15969cb24c24faf7a155ad51917187c5ec8cfc95352481f0e9002eee9467035b3d618b7f6cf9faae1de33af239e6ed4038706b735431195f355a27d1e7098ddd1f34fbb0bd3449b8c7a069b486984d09d50a90a099934eecec7372fc137b5274afe57bc0cd6f49b1e17638fdc8602d31fa975c4f0223349d40a86c36fcbf43124a4726
|
||||
CT: e1e44ceef4e08b85ca5fddf58c4d6eeb9785e0ed50be7856e74dc1cfcfcfe92f0e59a4fa62db0ca641b0be4da12a70fb443ffc46c8f5f28ce467cb484a7a302dde2d459da83d8ca6707fb0c6eda6312e37c095276f9e65b44fc9a0ed7546e0224d639a7ae396403b0db8be55276fbc380181cfb32c357e99a4ce0c33e464d1feab4a409651752a05f2dacaf85125005b92a195628bd314205b8d2aa1aba19d32c789d91e565944478e90cd1d4e10c475b79ee5e7f7aa22456773febc5d0684ee0a26ab27cd391fbfa1168ad28f46b114d31c7a3794cc216626eb41655990ecdd93f97a7594330a78426da7f2e8aa21871a1207f769dad7db7dd794382a0f50dd8dc76ec3245576b99a32314d3b6a4046a56fbe178fc4cdf8bf39c86a6ef320f4cc63e5abb6ac53f6b336fff96a22dbe2e836c3ea9f4b39ed58d01d45937c8b5af0df6a44bb78bdd59c1f1ac6643fc710e27a4fcfca031b6435ec2850289605e29db5911cd2b930a4fc28bce98b30cb2b6b9504ebd561e65efa52759e64b435b99ad26b7653c6bdd21c964d20c5761bc3eac9e2986cee13068c627721a90862fe387382af2895efde343e3c9f13a3ed019a144533af765424c7c80795cb30ec132e7aeb9a0c0c75f2b885a4024325a491eabbd30f81592377e040cb9034
|
||||
TAG: 5100a3a60ed7d5837ed8adaf78c625b3
|
||||
|
||||
KEY: e198729362ba96f79d5e0d89fc404b38
|
||||
NONCE: 36737445756c6060d9e95d16
|
||||
IN: 38a030ee5fd954f5a9cc662014ce7420fcddd9f2ab800823246ad30ff0d0f7789fe11807703a731675ceaa31b5835ae039fc0d111f5725ce4df0b9a075a8bd1c1112f90bd64c668d1d9e794228aaec7c17dc664ac88668cd06ef9c425f2815891ee4b737b18b138001eb6c353bd5fb7ec26b2d26a12ad2fa707adafd884be4251bfcf5e5e8f3979e46d90a57107e7e4d04c658f6224d1a288bdafe8e34df1541c702f29a1db2af2279380d49109f17abc4161a6052f4ef0f6657c7322eee44f4cae949dbca447cbbceb9f10c5be6de1d8886766794a3eddd736ac7acd3bb87cf11e88f246fcec505f595902d1121f68557657f81340261684fde901c079dd73f7c9e1d4bdf90613e7790f334884b668ee04c29750d2baa21ba94f2407a512dbd8450ad4dfc0de22dcbb291045e0fe43fde0cf1396cd3bb959f2dcc1f7ea681d0e7cbcc73e7fffdea35f6dbde8ba0079ad97c8767bf76aa008864375aa0b02b89d8bf2ce7aecb2403648e6069e209f7283f1cc180c166786d02d984afdc4f8eb9479522362fce0633996c758d99049b25c89a79f7257627e2a9557363a290a0a3673407a298ac1cc034793cb7ff44833c569780bb8be9e937a3a758f1c570ec1c4865efe85940c08a09430a9fd36376e28e127f81789e8a605405de9c452cf8c7131cbe37597c9a73eb47abcd2aec
|
||||
AD: 1b2a8522f154e672ae25f8494ff35d2573b343213a2fbb07a417d8a60510e7eb1ac5ecf229429f330809c84b0c1ac8f7e28c7f7414db905be8f5fdb5a2f818ba8440b8c9c20f8951b8e9b75eccee79b096ab09f4ec99ec394c7295b30d29060790d3dfc17d1321b8288f3be38b17901a48470784d00c5b53f895fecd4053de78d074fffc16c302a4f2718327bd96445318ad247c99c0ad4d06405b6509ba8f6bf47755f0b297c4616790b25edbac2fddc89b8d509d6955cdf66d30f2bdccac6f856a3206c53c550a9970ec450097ae4cb6f5606e64c750042060c477203479aa4da10edd4d28ad3df96d613194646abde78eee871638
|
||||
CT: 500fd0ba2adea1fc2ced2dce635c5296edc590f961c26c6fe285f4ad84f6e85719ea6bbefff398991c03a423931ff493ea47f97a8aafcb1ec7a34101ee8a378dac29f027c312306f74b6f92a6eabc829c3117ff77b6859e67b37d05d48b2c12bd30251d32ef30ddaa17894373063e2a593ad5139fba87d38a045e2e4e0470dd4c5555ffe6fc70e564502be523737bcd392d0c41e70a594b29f949838f9bfdb6e87fba327c430b75164555d7a01d7bccc33f2736864a2200e4b2c4d7b7192cd22f7549a9dc3ddda269d78a4d98a344cec44508bd930a14edffafbd1f25cfab8a29b75d07d705c3291de774af867e2e595ca8fa2bfb9fb3cf2511552f1c872fcc8b0878c4eec0fd079c7b17bcac2931181897ad50c03880102109a42c34c70d64ae942c73693f85a6d1230a734fb35f70c02c93813700e21b2abc304631ea9d5392c67864eeb47948b7e377bb51e3a5070524aa0abcbe0a624038f6e1b3c062b7661e1471d6cc3dd18143d6237c0e32e80791d39becf94974bd765bcf6bc5a3d764584b025317f64a67d13234399e8e9d10dfee9a77ba887cce119e09c812661b487561acbc718bd200ef97f76a4664fffe64b367bc36f7d03930f020e0b1db0d8d36103da1dc8dc6e0df00b2276d25c8312222c13d8a070b108a1b3a83247d41940681c59e08243a12c623c2f2d2a
|
||||
TAG: 7c3eba9d36b26d27a7a0325d8c23923b
|
||||
|
||||
KEY: 2167ee6f77730766fe8b4ca6c8f02708
|
||||
NONCE: 96bcf14cca5d7c2184dc6eef
|
||||
IN: 47bf9fffa3f4815f8fd7838c0fec7e9c08bca51970460bc013145f2d651bac1cbceda192014a5f27c991ed3e7127903fd49a5b3a4dea1194ccc10eb62f911586314ada3aab0f8a5d53c90560da3681bd9157892ffb1a381ed33afe203e3c09748487a0b71b8703f6e5f84d9195db08e4c4338343fb8e968d9f5a5b1606b6b20fe60cec3b54b49ef7bfc81bdbb2926ccc79697d916c3b622871dfe9344699c509f9b2775abc12c486e71a008cd525d8610f51948f75bf96bb94c59c98f2e9f35e8513e43898754f7338d7fffb87e538fe6512832e5c2b08cfe952985fac27b0e81a4edf9fe8b9f2eb79758a99fed7907343e6be072bc93fbfb5a539142a18af4e4710283deeeba4e0c1c1cdde7e886e7d04f817a5efbe89d12cabb34153856af1cc98c4df21cbc1da3e34f0ab74842a8757a189336487d3ec77f842b10e2efe3e1e232fc1dc89d16dec865cf6e9f422e7b9d7a4e421d79657eafec5451e04174b3372340d6fa8cbd23fc0215e9b6d70a9781ff3b8ae049bd31a363d3fd465f235ce463f720e4bca114d21d3dc407a66f28df01549d168544478404256715161cacaf06d955f525546d384a44ee0570d8c70319bd33aa07b5ce0a891c467957d5ca4d2523d9958a8b4b3e5d3b0dbd1f6a1df3acd38888d8383ca76d177685ea6d2d65bd717203ccf794d613b2f4d50894cb12754bc95fc19c449bfc10443c5c1
|
||||
AD: 6388d98f7a8343cc89faa48882e8a60f83e817f17f68eb338289e2deeacc6bb5ab6d25635b9e0d29fa87ab97e5f29ecc47641e5a4e0d5f11d04bb25c7dcf21e7a93de1880ad022c838b5c957616764bcd2a66f1098ae4926a93e1726384171cbd9503e03b72c77a2721003d3b391f2aadcb32bd62e492528ea3ef5e85761cec47b846d32988468391db2f23fbfeee39cd89a45e71e4d4b29c6fdd8abd1399faef491211e902b0a99b451c58211c56b1a63dc2e8a57e6efab94ca95818a78fdbdb533f286b83725980b9bbac766d3b3ebfde01532e7ab1414eb6d52ad3b1908cf58ba67449cff1d605708d5fe6b21c769f99874249d98ecbb3c62956ebf6f47
|
||||
CT: 73c6a7d5e4fe14e991680acff32d660639e46cd0ec231ad155750e53d6597bec3070f5e828e420cc2044d5bdaea5acfb48cba1e9dc52258fcc5e937861e9a970cbd04f10fec4bebd6d8cf81a8925e5ae48d8024f7c62e35aa370994760c827a534e0a309655b3085a2ed8619dd0dfe0560c7dd5e175fc5a5971cdd50aeffa073e206d81d1932f350d9b3f40d4eb6929bf7957d25b1b12d6eeade7aae4b7277b6a1896aa0983ad5a5e5cb5e8e86b1eff15ed0b48149872ee4439acfc6fd6381f3d9527f1d1a1452927beaa3e3ff188681408041aea39f28bea779ac28b83a4eaff7406b08df2e60d66121c853800e56b3659329503bc122e6c47c1e1dab53986b2058685409c4a81b057fb6655de0f84ca770ed5600db097efbadc14f07d80cb892ef3ab12ff72e9d60718dfab82625a79168ac262b4069c0ff14bc5ea3baaa4c0559ef23f2535ab273e3bee0b2d1b4049f20e708fac2430af82a1a5d148164c19a956a3db8e44c8fc7c51af9458c066719884f0a192464c668d37372d5ffa4e2a4eff429cd57eff1b374d501e06b9d3cbf8480642bbd141b208ead6fe46d436507099ce460000aa033528a8d813f3cda11c8c03b427228c5b24b1f0fd15f704d7958aebc580bd5d3034667853a67fa51eef18d102d65507047b12a939f8a2cac8bedc027db855f89ffdad34bc726f6c6641e3c8ac8041003f65cce96cac54d
|
||||
TAG: d93bb140c5ad0362ef819fe04daf051f
|
||||
|
||||
KEY: 1b63e84a8114f73f918aba186239947b
|
||||
NONCE: bbe2973181d9b48e801e3a55
|
||||
IN: 97b01d166bd2ec933b48bb7376ef131fb792f2a26edd267a713570c1dcac5a223646f6b52b0774ce323efe526b12f1ae59ec70bf6ff62f857374299cf4ae182015cc0cc2545b68d483689c82f4356dd8a06cae383848cbe75f08c5deb198c7effb10973b21fcb72cd53f6baeea5e23b7bf4508825111ab94535ed5ab9b51266d6eee98faf47b6a3acfee64c4a6598baacf1831a0549105d47b72434f498d54ca59041f07d22f3d6b177fe53b5bd874548daff7acab799c3253435551d963110d49fe1d2212b7e17df5b98a0884d9b7153253ebb73c0fe44485d78821a07b5e69bd446eae170e8aa718709f258a2a2476886757fc36fda2cd5230288b9a47d4a94b96c8cce880d1d06466aa1b331c0b893504fb8d6047b82549bfe807401d795d784584d608e419a7be990bf099694c788f11c29cb9655057ff12b4ee4b579bf7a52a36e9be42f06fd3ea2a8774cf70c946407db105cc88bd95f5b1f347bb8b4467e08058153edc70fe78bc8fc06f462ba5b16c5a56ce8a357700b43ce1fc8210c17af00f0ac8a19f8a73fb47815113c960138b2238031a74b610a1c45e3769155f6cdb7749d801b8f90ab5cd658f8f28443de9bd2e92098ad7915a6c68342255cc5f1abd5bba34316a297246dd2bc0f3975bf0037c3d17ceb9d9c9262b0797a6b5a90c72d4af4e662935bc7de08739ed8340397b78f0f7dd4f96a2fe50579a1e
|
||||
AD: 7754de0ce06145d6b247742ab582584c3b9c868cb0311b02273fe15f7a87403140b7b3bb49342cf26a5e68226a2927457c0f6b06f429c6cf5746b91ce5220e3b20cfca713664f5ec98b972fc3bb098f52c973a917f3b68dffe955a4fc670fa9c2ce686ceda47e060b291fc5a39fafc9489d18c3c3c08e580e492e35f058682e75e06c4141c38fd94b23eaf1048557c668f26da84f08718d850d65f8ab7a4e94c66fca8bf5ca345e8a966dff970fefbbcb88f3cc6b791ac03cad7708492675a2b4c54198b3f5f8906f3bcf2a56ba04666698c820309745aac83b45fa89e794d56a16fb3d00c923632c1d68fce42296729aba6ca2fdb2155a8000baf146e461c9c
|
||||
CT: c1e60f8dbda68c60024730deae746fe9fdcbfb9a3c1f26301a87a3c6bea9f8807ae294b62cb48ebacb01943818bbec06f1c842a3d42aed5a75c8103e07180d76f7e17377afdc4ed56905522be60c9dc5eabd5bd8b9a720b661f631dc214ec1a387016f57085ee3472df5a0d0366210aabfdb1ce23ed9480f8f1eead8780e33af36f9a49b8050749507a8b34b0695606b2cb78788c3da4ef316ecbf9500c257e8acfd36bf600a7ec4f8d2c690db5af0809c5799dc7b7788199601573d8d1a91a7c08cd4bee88885d73998c554ce520fdfe4153af13bcaa485477bcb5f55fffa54a4c71c5e61e1c3551ff7fa39cacafffc5cb00608be2b2d803bdfe43bfc256a7c04f536f4a9c383e6b4a3a0695d7e386f6ca8c8a35a77fc9b1d14e202bab53bfe6bd1d1efe3a4715bd150369403b6696374b4498186fed144f5a6edb9e3a863cdb4de5a6a404a0fc3702192cacfb36538e832b4aebba8c3726224f781c51c1529722d905286a1e01a9bebc54001980acfb9922d91122c9b125d4f6376599f0280651fe9efefad310e97fb06670f4b42df4b3ab1a078df2bf9b880fb91b292984416b70809c09e001e30d285a027f9b370e0764715187b797cb4965e7639a9bbaf915456cc4cc45505853ddfc54a38dc46743adf92afe7f37b174f0108468d772fb2b7ea00e8276663f6c29d3d83f3bf47ed8b1cc86bbe8639a564d936a3b065c4
|
||||
TAG: 0a6307fd5192f65b8786f7bef96c17b4
|
||||
|
||||
KEY: c1ead957027a7303f01622d129eeb876
|
||||
NONCE: 04daa5b792d6d2cc4ba08cab
|
||||
IN: 47c3a0209195dc19edd01f1a4b54fbeec73c422b1c06558f3d70a2f96651db1e0364b7aab14d496a81b169e244f0f0657254faea172e9409bee2934fc622a7b2079f8368f53313790e1c06144f7f140468266fd6269b4f442a06606bdc9097d4547665f7fa192f67f0a14ff3a9f04092386d705a0a7d3a566b7c2e2b6ec9b6e6caa258ed2bef1ea747c6c80c0b494a5fc66906f5bec5da4aa884d38a6dc74af82aa94083106f6b8e182b529f94f4c389d6730b313ee8e656637ac064fed06561ea32b4dd3a3a128f3458c6e9b500cf3e578011e6b1ece6ed3fbd896119511f89db1e1719ca22a30b779c26803b278dadb4446fe28b5f96d3c91d0280dfb3976508eda8e803de1205ef65b3f7e4a41005165c5f3267b60a679095c25deb7c229ae7631c9df61ed198a9e7d9f6267bf288ecb88ab82dc3f210867490cf9c248828c73db475a757979894c16382fa1a9e5a06c081fec99aba123f6ebda65e07378026986b97a75e0f3bb74cc26f4b813d73c4c7fbdbfd5fdc4903a51d3064783309e497d14db09564a75551adc83197a30e3584a258722dc95fc187964f3207579f5d0caaa98d9dbd547cf2b854c4e820ee2fb4c4a1c83ef814e6bc48ad7cef6efb11b7dfdd41de49f1ba2317849f153115457b6dd839b6b5c84e8bd11419c553d51cb00bfc28e7c82718db654b4f8cc7f37b4ba96d09513c60bebaa087fefe7934112ead9e90d8599e184692ce235fbf5327
|
||||
AD: dacc20b8d41590570fd882012b1207ef4f33e3526fa3c64c4cb725091dd621bd6f2ce69c29ca39aaf172f05400ddc7af2af0fdab161af935409e3d5b9a8fb915a4ff8b7c0d4baf8f0a103be99ee7d21eed37e258bf79e18a81cd42fef0dfa465e04cb70fd8165f16203e8ed49bc2c3e88476aec77b466debaa6d888cf8cf013e8672d781fc5a8bbcddadf023d7208ed5f6f0ee2e3418158b653431fef54f821f38a69202897126f9a24a5793cb38fe5e8b3f77034e080dd8e4acc7fd22a12ab64a47f98f588e756fe691ab4c7f4557dd9b77e28f997d687a068925d18fab49f3acc072b33fb4d8c7a60f9a639b4b1d785c062e5d386261ff9e7066ed81cebf6f483466c0747dc22126
|
||||
CT: 1f2614433c137c7579ff19ed5be8e7897eca62f05797266174d4edb5fa4a22c11466b17d97d961564dbf9d1c45d9b6568d330761b9bc04dfdd31da08d3ddd4e5efd3924f53128ed541a6aab87912af60615da6dfc925b67b1aa3f1d285e25514f502eb5e92c7521da3492043fb06172ca74796b811ca42b349e337615f898233944644d229d05f133e35f879471a04efc3321094716c10b6f81ac7d0604096f287655362439e47641307ef49338a70bc87402b1c5ebd931300be51980ae8dec0345beefc59bd250bc53d39b7eed62f93087f3ba83b29ab094ab8d3143b63e905d209150c544e433d5ce41f00b65e0a976f5138db6ba5193245056734c7209ffb256a2f1ac9840f1bbe2e82c04120f591da86e253acf25b3876ab9e6f434489c43f606f264d1672cfd8a43282b41c34357497aa4f3a8c318f93694b4a04f1a0773ed064d4f426350dc7bdf4a59be0fd4154097c09841ec0df9c0e8f2dd31abd8513925d5d3da72624567a609975a815e9ba51df408bee244b4619f8ce981a6be726da484513cac67c2a4f597f6ac8ab0e96d86394cfcb5b6ccf2440a53a7181788a3de730c2e84e64a4131d0e02b8db2ec11f2af61218ce1255310756d98a0d594f09bd1440adea74720ff2745db30741e8f4f7bae0701443f55a078ee3c3bb63411fac0d7c7c0d0cb05ea56f40cf4137de20d9c5224fd4e6c4c6e8a5868116dc850ab713b001713d13e6ae5098c379b72e
|
||||
TAG: f1271cba346522f88ce93726cfde016f
|
||||
|
||||
KEY: 2a7e7959ff156f3e69dcf4c3db8ccc25
|
||||
NONCE: 6d666d3700475874d600d6e7
|
||||
IN: f69a2d094c9c55669bb4b1f72583d23aeea9b858372c61516fb3f096736cccc3ecd74b98606a404a5a6195fe0899916c463092a749274e91831ef63b254a4c70b737bd8bc070b805ee42e5714b07dd4fa39da758de787340c0109e55ff4aaa19b05eb8e2b2ce171e4f9854d6aa56536b35359a7163557056ccca870012954737810bcc6ba226f6f38b774da0edd4c3e2d64ba4d6415d6528d7227a5a0ab222092c7035a8fabd3897bf9f59eca8692373b676b817d57f83aeb4f866c553b2ae1def7d7760cd152d18d43178b351ab4e23272bf157ec2832fd92b4d4e9085cf51da487779d82011745d0982ddc348613d55143bfecafa431a4b7cca9db82856c297682e62ecd1794a6ffe02a9e9b69814a6cebe50418e9bfc9e494b04afb9c0d6db479a8bf1c5d88be4c6b81246d8f4ecde7e3d4c6aa777277f705ef81962ff56d8174255519c00ccca0098e9370b675f736c86816dab838d7887b1d9bd638613a07b7122a9d55b4a7cedddda3b2337d3ec7bd20e499daa467c04a9d52ca1a02d119a62c6dade203a0bba45d3f9366e3f59a4abcaa62b6c08255d60798b9b0bd6205f2e24253dc75e8aedcc1bb3a525548479fa5363bc8176075ab004e7e73d0ac5f5e8717d3389f3287eea904f91fe63b5cd860091a42a101c1a1e6b13b31e2a7382f718dde735feba88ecb1ab41d042c4ce0106fc78b2397eeab842a8e0e5eb83b31d212501f265508ce73dddb94729433f2388d1925992f4cc6ce78d9be734466b6
|
||||
AD: 6d3a702bcf31e90cd2ff6a350a94689aad4381aa79708817b7e8110cb9a8fc8cfb42a277210526da057e93d32c609be4efb1fa4254c1cba3cb3c2bcb5dcd23d1acfe671c4fbc2b632dcb8ebaa952d7f6ee68e52a59d4933e27a54363c24f4cdb4c4f7ad2cb7c666f9afb811c06df7bfdc93f25edabc314a9a1118c2e0a7cfd219c10a28b5de83dfc3114dda3fd31a3256fc3c915714f1b7e83c6e66273b28944f7e9668de94b8e2536701ead59f9f7f7043070ffad0ff6fddea1d9f92a7af2ce3fb8d130203d0e9550d29785063562c59fe2a699172f32126f6176e9313376203cc1ed15812dce9e304582533a212b3eaf209ea16c8f83db448686c0fcdf5dcfd957fface636fc31ecf5be0072e19e93250e
|
||||
CT: bce5fbc1719b18299c54d224c2a0212cc904f9f58e7c0d8bbf1b09df0c2c08347cb36f2c8d145b5ebc4896a398b6aeeb2db0ba5aa3df6624a64bce91db2ce843a7549714a20404e869497e593990a1a6e62edaa9827288464bd7b37d2d2f8ecb6d67137f2113982d4ea3c23cb0f4609f04bfd73efddd2e4f05c4561fdd3615d82ccef83c940d39f4f7d548cac2ed181e4a60d1f280e25ef8b617796580069ab2fe8caa3ae4e3722eae649e390d9375b6f1b153e6c542a84eb70241e2272f2530940fa3e0df70528ba07747866fe51c3f844c050cc110cbba10d1f8d3321958e1e833c3f4543d4f8b3d20c8fbb7eb1fec4de7e99464c52d97e7bae8608419f1920c27ea0f479bcbbc61cd5cea10971ae2aac0a73daf4e90c47a023d620c2cb246d5e35908535bb5a0fcad54250a29fe53c1a0090794091fb5b3704c6ed52c8fef11271836250f39d8fd9ac5977cc91175e285192f07fd163d62216fd5530da9a048ea458c47efce109723029992b155809eb73a34b8bd24fa647b006a17e1e315b8a6fcb0e5af6871b4bc6f5d690b3edd10fdcc5391648a64d05f3355bc2a13cbb74d1892eafaad1611c23ff96e7e80f0df0819999977f9a2097617cfd13e8fbef089bedb532b331146d793d224d8f12bf8fa63b3b3d9fa8414d63a7618ce7a4f9c52d8c1b2ccd019e4510dbb3bf71f14c2e13452dc7cf859d18f54d6edad075c37a6ed2f05ce6dfa48421670b757d6a138813503a6ea964707560658861a5b95330e
|
||||
TAG: 85713c984bb8b5acea392525719dc9c1
|
||||
|
||||
KEY: 5de639113d920e239a0d1581e179f9e9
|
||||
NONCE: 0b5bc077c27b08427f0ec327
|
||||
IN: 545c1a235b88be7e8451a5bf405d0dd66664a3bd284f74e4393f969380bb63010081457effe00a972bc6e4895ff82dd4a50e302261734da0efd66b0db1dee74601aa414cd9e2a4c149956bfd63fe0fd1f63f3dabbb6aaa2c651405e36286d00bd0a3c9bcdb8932c6e01300f453ec1ec28724b8934d26c1405f311b67fb8e97ee14624e2d6837bdd38a491a019592526095ca9169b4657d65486470ec12dbc793a42df7d7d9cae29135bbc499425775996633ea60ca5c6711e3aafdbef89ff1bc41d20550c219c82a8841ebbb8e152fdcc55dd689c7768a97720e23a7f9a80b173e679c0e2986e4dc00970fad5f8706a674bfc71901952b7b02189e95dc7207902abc673d09046fe2326168dd702a76328ca26fc1abffef071f58f968c165700845a997a2013b71c5d83cf6b6ed8d76a1b6d1417d22fe63691e88d3774ddf4ee205f352b765dce99ca0a996d33f95f853ba54f2f9ac3e6d1c068567695d06ee8f3c9865f034dc4b397a15cda23a872a075257c10ad8e2c6d3017ca9183ac2d8b80068a88ffa995045b96df11faeaceb7b41ad716122f08cdf72f9d4970e5315a8bdbe6e93316fb0dd8d1b805ea4861e99cf67a5c8cd3d24eeff142cae3c53eae387b4f51a45bbd808b7ca1c3b69042c33c8a4dfc93246e07dd93bd12c40dc532f3738084e47d38983f6b529e3f61ab8b17e0b588da524d0ca67092112be6868d5ae35102478ebd35213e7b545c859effd6a8240e0428bd480abeda17764af5b6ed4902977f21fd06e53061ed8b5bf49ea381cc5
|
||||
AD: 846f6eb4aa086447f4a7e5e8eef4997366a2f8f827238ed0cb5b691154f345b4586e1911469c0c81df93859ff0a39ffaf4930bd39aad2bdeed92d4580523e5244640b9e6d3609b022e4b4d0c631669e00571f8d602938eca0b3bf874c0706966e3d07902e392a6721b7dc57028b0bae7d93c40c803a03968b2142965ff03f92d6e729a0e079a9dde3bb30c9c10ce6a5627bb476cf1f879a51104f3ea6d0599bb288d2ba5e0103352372db8ad379cb629c82d212c1d1c6543a8070fb01f61f509c597e92a05f83ed49f2a1c1b3ecc64ad0a7d5884320f481dee5211716fc1c6ef96f34926cb5ea86eae04e934c6c0214eca8369928f2b0bc93c0865cc4e165f2eb1c381642560ade7956e5d69381537b796a11786e8f20d264f0dab
|
||||
CT: 04c79662edd08ad017cd48a6dc415f564a67d3d9eb48f1c7910074e6c3ae2d253a5acfa661377ec6ca3ba6693e77f2c97a9484bfbbc3bd261fdd25512a9c1e0d2058b0cd365fdab9c14f602945e142025009f87c13dd1dda03b0c49f76cbc3a93d928eee67627efcd146ab2fbc19d26955a646201800366fb17efa420b7c148399b262164c598cf1b011308989b7dcb699110338649603b58af4cdb5e7c2a306164d7e588fe115b4751ba0a83cf849c869b0155b3f934ebe5382e46db1d2d977769caa63dcbbee9f33568261c6c89856f75d597973d3b2a48508f2773d19252e04350b3c88a6696c3af860f9dc7cfc35e6e96279c92591c09dee7c23c02078e3a51af668ece6c870b7f0f65f6b0f38018be91876011b616fc5630d12ce936b6ab725b808108a472ffe55a5ddce340e5de8a279974c39c64a7f5986ec1e48116bec1b6d040e4e291f429c522ff61dfe74f2f4a075e0a6912bb6a6aa945db933eaa90d9165dfacf087a58245b54c2814086ad5f54795f1c9125988dcf15f906671bdf25da87d145dfb22c0683636c61c44ea9b3120d894e02b0d6f8d021ed8423b0c533a043f263ea3b1b06b5d5d7dba17bcccb1485cc5830e7e5b8520f9a1943a3560083e65806f9a633baa6aa7d5b99e5c5d69db446cb39716c415dde4ba0be14108ce32fbe50ec0605b0845e9469aca76dff75ae1f847dc5e14ce8b5455af8c2f6bbabf889efe1dd6ab408d983f51b143558c73fafd09132e22113b36426535b53ff2294acefa9258a58893d7b3a252f5a7d4
|
||||
TAG: 07153351dc975adbfb8b30d77c1be155
|
||||
|
||||
KEY: f0f31be89acf8d7fcdb2a063de5a9812
|
||||
NONCE: a3d6aca502708d448a869bcb
|
||||
IN: bd3449eb7e893e3c96cd76039ca41036c8fa9e365709afa301c30b5430e004dd08900d75815936deaf9e7753d8efdbebe09c27426b55161bc0ab3fb00973d093ff6088ab6f309cdb1e40cd40d3f933e0023f0c210cc7ddeef2d29d82e0955019e482782462542e186467bdf9b866998a731583b0906ffb0174cb44499d2d5e3d1fa3577f7344c21362f77e94cfa981913d6592ad1f537c13067f8e7af921db28e93673ee38de0dfcd497d77162fcefc7868ee3f27c07b0d818eb553fdf7acae2db4eaf657853a26b0a760954331b8c91e763f568d65e658c6eb53a69ac6bc582c33f8146f6c8ad66d8a454be952425f3c0130e658bc1934db754d70774d73b40512e7a9782c4478e1f9bece80281dd6d8eed2cbca8d4bb08df65feaf79e9a35d075b18e69dd39ba1f47cbb694173432f5f0ef125a9b1902ca97820b6024ae5b49a880ee9e12ecf561ab5abdef81366019a8be495af1d664970178df68f38cd83b416d0076a522a9f3f795e2d2c19c75ada025cb1ef41513cf2c29df9a01e16379c101197da782066f9318d4fa0325bd584b04b1f9597070cc551693c964b2100191e1ed949c426fd2befebe5914cb567adf7518aa4574921516576bc33673e6ffe422c831e616bf6d03476af169d9c4208d7975460873e2792c209c089af7014768c0ae9fa8011c533fc890e366b04d1b79ee7d7aeec0fe89ddc7400d6fb8878ada40a76f65df17bf34919fb5ff7711ed698bbcd3ee4aa8dce8f879959011612a3661c5bee1a9d7db69fa33107543f111a1c416c92bb873bee9f01564b44922beb1c8158
|
||||
AD: 2c9c6974f2442b87c02cb723f5f3c05c78a22b7ba6c3387fea2d07ff58ad55c67aa9ada12563fb296812d087ef3b2d47ea1adb6a7dab646bfd1aa9288c85685c7b41c14eed3c5a34e0642b20888c8d51a65a1c332f1cb5779296051065211e5ec624930f1a2bfb6c10d479059063a2a4614999b0327d00f875162440c29627f817057f5151ba9c9364f0a6a9be85fe7fb911efdfd5cbfd741bfc63564f0d73eaa7bbf4fa16de77fd807bb27a9afd9e62c86e7033b8a969cb0ba9a2240de1a8e8a3463c2fae49c89b3cbc97e59eb30c2ae35834c36c22bc056a34cbd339ea469f3d8f032b5ae10eb00003025e55d42c12d9738ea74703308633f2772e8cd3421d8fc9d334c2845870a2c68c553f4dacdbada3af4ea8f20df3891aab8db9510c299db2bfcc
|
||||
CT: 57e32933293f67159efa04c375a4d7b8c8a050b0cc39031a3df3bd4bc82839ae1210da5f10b0723e111ce7d1699c78143671d7986f83fff90992ccfe9fa4367ef9c944cd571a3057a65cc1ae7fd7ccf2c722f11a9ae6756ef0a422ba7cb15a02e27aac6faf78fa2c2b08b228b1be5d3e62a5e995f9d3c5f1cbda1a6ed3f551581cf6693d678f2323e2ca7437715dad965024c8d5eabf68e7ee3ec090f56deadb47dff68e93fd8a38ec2b34d0e774f07793cb03d38921632e42b4a092175f6d602ec637aeb1f134067fb54594f33be2d9dbbae16ec25ea7b86a1a88346e0335d7bd2822a3d209a6561ea396c6128a86307da1c14d25b45e593504fbe38bae1a42689b2b53cf17bca92b4896c2fbdb4625d960bc03da9072910eae59aa17070a368a30e69d072cccc53fca2824fcd83ebf6d65e78c44dcf3333a00cf7eea5b3d311a674be8f46b696376f1fc5d70b727773582bd4a59111cdc41d69d58c52505e51e08e46d75372999f27628631c5d7497607adf4a1c27caf618a6dde1039dd33aa7834eb5164e67a208d473f558b97c3442ab23d22081ce024fe616e00e09a7d14386ec3e0089a0feedac7e6c841da57a13358712b75280f72afd0a28a3f5555e024b59d14ed108ea4fb77510c031fb438e6cdc7b4b6125a387e76081ab8568216a6776b7b52d311f48e882d62abc81453d65c0f5effc4abacec68dda303ecd225ed8afcd5638a9c4f5488d9f8963624934c1abb56ba0071bf11d64a52443aa0f3b607557ff340937a53fa50031775550925b2e8f40c744c36317797a952d70207cff0646
|
||||
TAG: 429a50441cf373d8d1cc4b37e15266df
|
||||
|
||||
KEY: e4ffeb5ff128eb3c798dcdec4c665a4e
|
||||
NONCE: 7b30ac120aace497d03de3d7
|
||||
IN: 26638db82034a19df83e60cedacfdd511a937ed73adeb1565661a201197eaa7fe817bcd9b83a19052461f56c3480c0e0d3314c57aad4f02a9e10afb967f752fb144bb1ecce66ea05608ddc7c876ba95698b04e79a429d36739d31b52e47fb032b18e7686923700e735750628ac0effa74298bdf7b75c115c6ea30634a9636c7ec5a02aa467fd53292d8991fd2cd45078471ac3bd8dbe47ad901047522e82cadde3b4f9d0a1e2b8c6faec2da532a09c58acaf7207fa49c1de10f377bcadc903a3df381a10ebf7556465096a0506e7ea0e7f11e00411f226bf2897f85791d6e34641d8cd049d95d996bae9dee6b2417f558f102a04d758897c484e930cc97d13f540c00f950a1b384ae5139dfaad258e1315fe76b22a601f7a11d852a080c228065f423c380393ae13ba817f18afaf48f7df08ae376d62e770b0c98e49298bc1f6f1cd07b586128c42d2196d26bc6752fdb375a0edef255d139b35841f426f090f270d5153efe6dcbcc2f4d4fe19258284b98cf70483996003889958a7c993fce98ada15a8bf16137624a2e078fe16060b640155615ed55df21d9bd736df51970f11b06775760116ed1a624588052787f6e95c93cde1c4661c9efafa2d2f217e86dc941263c176bc9e15af02b922e23a1839cb4148f82e8d8888de16e17db10f659112ae0f28cee8c062f34f44304e32fd3713cfbc830699e6aab24aa1c829bd582d39c4262c625c45bcc81b5e07289eec77fdd1613a7e4955aa96ba05c45676e973b609aa6136f5e516e338d183db9523c3e2fa6d7f603bab7b77e7acaf5f144e9a301a221111ae8a3130b0a77f638dee2e05d4ebf3
|
||||
AD: 14fd627004e9a78d1334822040ceb4863196a75e5c5ee70861381d6cdf1363a893db2bdb201357c908284b91d690770205be495f788afec67f205edbcf47b78fdfb6e1ca53dfea501ef7fd48008ab05a58b65ef8e3b25cd3617dbe7482d0e846d04d00508192373abad114b6e5713f84de6928339d5c57e4abe88f0c0f0913324bdcc661fc85f391aaec28772df8faed4069573ab9ce2868039b7971b510e8b9239eeb066ddce13e2fc2579b159b08ca564de01fcc32abf19f388f0a8e810fb4de96e19d02010b75ca55d4d6db6c1a0d83d36a9d30a980f51e8263bbdf18cb768c5d912cb1ee8394763dbc7e9276830eecd1c92541ec53e9fcb5be036e8fc2da7c51e9b7978a7fb8e24182825d8a219167bb925dbf639edf4a25c42ab08a7ac8013696f7e10cf0efb57ce49107
|
||||
CT: 7ef2888ba3ecb4c9e0b96414504cd46365885b6fca375534e3dc43d4fe31b61acff2cf2d0b698061ecc1addc1519e00b1f3e59756cf70380e9d83352ebde4fd680fd995157fc12054376c690ee01a11875b3e833de136a8e16ae08e80101caac4e7a43042abd81cae91d2d0f98ec0b6fd7e6232fe351df92aa847cc11044a3e07f3f4d8b8b64f039fac77c95f9057cfefa11cc795fec334051a81dfb7e08cc09496934508423cb75f8b051b811179e37ee63346ff3ce1f1012117b0ad3c03fd113f7f932da558244d5809e6af429084e70b206f4dcddcdfd549246a548d51df1fa68274416b27cc2c12b3a6a86d9bb80184d41a3971c9dc0ed906aec4ec85e9eaf4e8dab1704f6ac3f7602b0aadd1ae4ad91755ef9a08e231535eeab932524b2c228d10b9cca1f88215ab56bf776183b9c14b2888dc7dca590f48ba6fc7e974352da98077d0d3f5de4159025270eae300fba5457611cfc4b52846ea1fdfb29ebe4c260ef2d0d61de644cf8c7390a66d15f806299ecfdac0d6ca83def3873f960bd5b41d05e9a718fa0329e2304dd210f20228d7da87f08bf477deabeb93304133eb38439f49e821ca66474ba065c8c6ceff51717b36297eb17bc739feb166455b79d83ef6b12506c5a877f9e7237ace4e451a17969de2ccefb65af407a1df71ac99856d485aebc6492441366fbabdd11c9ca559bade381672c8497cdc86175d2f186272c9b675cecb365f97dd547d14ebb2bd306d80d83b40e3d4a5ec37812b787b31b2464917aca278bc5c3ac7e78ba6ea0bf3744b70012ba4cb5f1b91703504ab5b0134d5c8071ce1f16218c51207448c894cc1b
|
||||
TAG: d338cecd6bdd210923d8ed507612ff85
|
||||
|
||||
KEY: 58ac0726e0bca5d30bf4d0a231fd1242
|
||||
NONCE: 0b9b60c3a690e0ce0106c1bc
|
||||
IN: fc47121253347bde0b02845afe64a46c74a401fea9f81cfa02d47f3c6008be65031e26b07d05253d0fbabed865397284b44ce2c38b2117f90f7d3bc60a0d9b04c6ec4b5108da61ff7f6d30083a33528281bf2b543bbb2eec909bc8706c892844e0702f224cafa9f2070adba7e3942023645427abbef47ffdb9ebf43b24aa7367deb7d05241cc5ffc0d1e07554545ddf0f6bdfad4657222fa561f3f92c83fbdcd5b0b93921842d2545b386eaced2fe37d0e5601bdb969125b006b21a8283d8cb5264ca2d8765d2bfe24fc04f8feac32293d88bf6a3bd7764847c72b07a9c3caadb47b96eea17199713eb48d03a8b37897defce70b258328f0547392e7e82e2a1be53c8e40d58235f610ced56019a0696b77b16ed8bcacde1c142bc3afee168755db6b8d81754dea34e20f6a0e35ed9da60bca3957a054916e0072e3c5329ebbe2bf8f224efe6d501e0105614f72c8e37f2cb7cef644baaf7bf32975cba8e519034427b49bd589d076e3a79b2a9c90170d1e503256389ea444036523d36486bc2d3a94c73afff7bb2b48d0d74b7607c3db43186b9f85102a49d4c0e3cfff1dcf8b5c0cba5ab2f28e1dcbfc858f57f585d5e7d4ee92eec6ebe152e4b160db923cb8d9c154b631e3340b61272e0726cbd88298a4a6dd1d01fabf67d9c66c4681019e13a0e0280e91dbc3cf20e583b4a401dfc57cd3bed42d7e889182a0b75072fb08f1be187b3c7990f9f17bd29d61b8d2bc93f1a78e84fc8c38c4184afac57f3c6915dfefb3e194afa3919fddb1efc685931e49129e3afa230681fa6e7c1d6a69be66d0317d0497a937c827b1591931dd17e83207cdbd56f1ec1270b14d9a7b1e2bed3e10628630
|
||||
AD: 0bfdb282f9e2db0a43c18132b08093892211a8f7b210bcf36120851314cbd8a56f80f26dbfdcdf944fca9148c1d013844e897b034843fc0c8701120062102ae6a00aab0063a1651e0aa36aaf8acbc221ee7575748562288c08050a9a562ec43be7fb3e54dae418ae89476a1d5f81debb13eb6c5e0b4796abc8310e70a5e4a6619923dd6230a7b2a8dd36fbe3a29aff8a2ef35820ca68b07e00f63623db10a648014028d314e01cb537973d03420938dac988e7af001d571fdd7b1606a06430b5fa1770b2f30f53cb439a02771140e44356c3bdb7ebd5e7af10c344396bb3bacd58d32f07a26768afa741a2dae4e91cd8dec01505edf362f38b0fb06c40b8441746a8ec31d9aca6437d1b75b5afa120856e3d87d79ea5b71352edfb56a873d206e8fdc5d5f0bcf91c0ef1beb06718006bceb35f71dc0b
|
||||
CT: b03db471a65de5cf871ac198ddfedd14e66b6fcb6c42c782a4d3c156beb2024a1dd2cf5efbd87884b029f42c94067a42a165c1e00018f11cbd79f65da02c62fb443ea8a345c34b6411112844eff3572427e45e061913bd578624100e33908ab9737140ae0fea83069fd008af952c776459c6cbd4ab9b02156b3992c0691614567056865b9f39b526f28d11b7707f35ad09d1eb0d2f6adc7c66f8832d8783478166036d082af1a44025a733781cb389612e3c124c31c35ea2a7833bddd053625d96d2ac3fdc69dbb64b9b7fcbcff6c6fb891d974184734d3bb4081d7609d7206067157954b4c6ab68e4a450f01f5941e1702830a58667b947352f1931ef721739be452aa083ea17344cc0a3b5820a90b35bf45ea00fc06df7229080b82b79c3930067f6045c619624958f77096f304d9f31effe42ef405ee4745f1b6c101225062a5bb38665efc428313038a3db8863dcc72de12c8ae41eb1a7b8eb02bd5bfb1f1ccdb1db877ecff08606963d97958ee7cb85b99c5f2ac4f91a922e180d7f3a3b265168d02829b98b7a72c2a2910c0c8c654e354f2e19a53618e4e46501ba8c13e8ee0081901108a75d6b7f601385cf6dbe3f74b3634331aed8eb903119ee96877f90d491dd5d38abd5f002c3cdbd57b04a7ed13fa09c9e2058744e1fa24d3fd87a863a7dd73cca389e40b7aad29a95d6f7eb705827f7308aa4ec9b07b1c98c225f366cc33586bd08e20773bbe0878711b6210392900b8fc933a6a661b8d6fd1a8338d06ec364f9025f1a79ff94bf448b998908c22be5cd6c1aff929037af9b642ff228865137dbe2f3f3813923245c3edc8edd76eefa02d40e7850e502e92e9511571f85fb17
|
||||
TAG: 34213558263a230e66e80c4095fbab97
|
||||
|
||||
KEY: 7b9f65509a00841930c4087093c0e049
|
||||
NONCE: 45003751c40e59eeb10f62ec
|
||||
IN: 33f7a6d16717804519e930bccfce78c316cb720e109a75b30e11415fc5b398b76cebcdd758535798465a8662486745b6ee098f9008d0cccbf8ce2066b12ceed80cfac806178068d2ccdc00ab32d73faac0cba72b5ae75150c13dd0c16d85332d934e56c8f96bfa942fec689e9847283a307ab775ae09cdcdf1c0635f749186868537dcf0123baa295e29601052297aa4b3fbf16b31620aeacc12d08345df8d879343c098372a04d32fcd2470f4bdb3aeeac7afcdd8f95695796c64cd41bb0052905c8b95edbd0bca3e9115f119d29e109198e91b9a024c8a4d67ee864b71eab16d4545862403bdd0720346c43e94793b1ad3f02946989c6e30c978e4c62660c4b1120bd49017203c86f5b9f02bea17a249d6396e390df1abcb508388c735565ae471a3d24293cc33aeb1cfb05025fd4f17b9382a391d73a2611784358a9a003c1ba16f493f020b1f1545555ca165c00e3bb4a2b855d99a91d4f95534424d3b8b32ba66fbf3de63694b18efb4e0aa62e438eb3a7f50b0551ccb19eba8b63e19bef0e6468ea84b2fa62d0deb181e8c3b00a55198eb69ab7eee2352989013fbadbb26d1c1f5033b26f1ea886a0d1af6c76a78cd09a8b1f247d6f81d7d4e521f6649de7fa5b32b45be2cd803a1adc6fa89eea3a9d876ed1df0534890c9b41627556103964aba36e277d1cbe56bc14458e75c365a58646b7e498325bbe815e645a19bb33d2765a36a61e74eefc32ee9fef4162eb77574638dea2cbb9753e50b85eef07284ff84996a5969af62090ea20c6af307c1b2e56486f50c13d5c4087ed471dc737c4e40b7bdbe9d74ecbd6c8dd0892449496d0cba16e97c864307a55f341121b5e35c47530a9c3059db7000688bb568f4a87be8eb8ff9
|
||||
AD: 7b4f599c829e412edfae60ec1dc53e15d608021b6afa827f48869b9c9ca017a394d10f814c3172b38ff27ffce750085c288e257b6a2d7ffbbcce9e7acfb12cfcb630c84448329483739be37ecc1ad122603a4f286a48474134550b12ed8dfff73419494a8d251a98fdcf7c329b0e31b0f9379faa6bba2e4adbd429b199b7cc31d2805250082a88f94d3a120a3b07d0229d4a49e45f2729885e55cbb9ae08c88b65576fcb8a96ef23b629422ddbe7497fc2d4baf812bd03a7d5c03e79cf522938337ebd1c9cf3a61d331aba6b436c21ef47b030447e839b94b23e6ab10ac09a1243081544081a09cf35f6c7da3149fe3c8e41f90da05d88e31b32744214ac3a8a0a9098b11a38abbf01da170d3115fd4243f2be6eb8295b921e687755d0baa3fdddc1fd9e8d78992f08c50ea9caef49989872bf00b7f86c78293896dbe25eff
|
||||
CT: 5ba4306c0fc5cbc0028d54a82d2ec3039f78ecefbf3ed98f5b4f83d1b562be3c5ae66756dcd2027a515360274837682ed07c5f1a0dedcfe3d1e63457f9d4020d2b3d57d63401284eac89ef0cd16bef79aa949a5b3c76dab5342e8042e2e0d411816d311aaabd8aa10bd6c18f72620f824156bc71add704e0ac4bc1d4761f9bd1e31f800d0487f3bec7a788b0cea75cc0bb4ebb927e824bbc718236b089c752de68b4fb5b4bc1ca67e166c23274de9992fd30e0752ca561a4c5f469dd123ad45870dc013a47247396afa45ca5b02fbda0fa1c2a89180214814c5bce704ac4dda5be49af225f3a745391d669d7877d1ce173058433b02b714b7f9b43095820b73069e8c3fe621c45e00e41152a413e15bc750fdc517568f021645b6ccc541a9d61237090cfa6e374942adaa1f18d073e627195164fe981853e324d2e97c35819a00cc4d668ab1b8dc86188ba2f5fa76b3ba2303bcad2ce06195d6e853f7e0d257e386764067f244020d9660ce04bea8d61c5a940f502bb68ab6a62fe2e7492c3aaf355d313f4e2e2ca148fa46673848e59d744567bbbf38ab0ec0c799712053d0bc25532ff00f02a3149e6bd9df268ef8e1fa31762efab8102f6fed5768b9abd9bbbac89b40000394158c4c5d2bfe5f3dcbcb5126afb0f753e2a60c8aecc67782fe64f2f35fcc45e6ca4b6751c40adea4998140048456944bb8e2345daa95e989ce48378f8c607182d76b25d12f731b5029c245e804ae19d170a27f35634c64a1bcdd48a6b573959521d388e023650f427cd1839c77e0d56b4511d1986dbafda63cf43b6fe929129602a5314d6216e662cd1659d8d7bc6c271589aa4e01ce45970efd85297f00eb2470567e69a67bdd20fa4ed8b497879fb
|
||||
TAG: 15966db2d710d52510c55082f0c3cdb9
|
||||
|
||||
KEY: b4cba7822382ec3aa42a95221eda5980
|
||||
NONCE: c488bf7ad0031e1ed9870968
|
||||
IN: 19cd01ddbd03500b348a15fda2f9cb9a870df388e2e7f84386fa33fffd5287f1cb795fcce3a24fe371ce42f2f34dd8db9d1826b6a454082ecd0dc684bdf35d3d7e7a9606cb5336c67238509f0386275d58cc3ce7fc98fd20c77ecd1bdd463ee40e612cc5b9082f3c12b83f16c32072834a64552549289ca767acb23c61b4030227277e0df6ee9acebddb0c3bd538040398ae57767c850066b40ac0c1d7f5de22747051d237f898306beee05273a99b20165c2d7267f65b5451605ad4301a82bc80268b49e3084957d8ea8fab59a6b31f47f76405f5575df8a16a5811a976a84ec23479daf4d1d2c1ef428a9ed39faeb5a625ecd25e04d37736230cf144eeab686180cc71aa713d522c9f2007aae4eab486171ab3a9c338265193d093fecd6feb1cc1d91d10a5f2dca9243d12747b5fd3ed809c06f52872136814aed50d61ac932fdfcac2e9ceef817034647b2f4d61f5a0bde8ef9bef2789a49da799ad1b9bba440a29e3e15e4d97b99c0fa2abcf5cf0e05acc89da732eb79585cf1d6c11a6c65c2087f902ce230208b5f1ce6cde34711646b9db725858cecd3716906853acb06c30c7dcc3901eb407efe6c3a8e1e9f9aebfb1d7217cfc6571fdc4b86d17d66d6e392ebf03be924c0076b8d1f8bff15e192cc5e351351fdb6b26364d883581c3f8e769e9a5689d0ab2f308a1dc47d7032de91124b1ca3d42aa3a8d57ed92a97a2aedba2409b38023c55954d4d5d2630c4dcd5ac7277fabc3408f0265560d3de4114eeb0b10db4d5270725f4454dcb1c7fcc1e36013a155b03181e1a315aaa251e9ab00dfca8e9ef787799a23529fbe8f0f993dbc2338b9f300ed18a67bf92c600f22d8039a5b03db114ff04aef285642be0d552cca24b615bc1467ccf9818929c06e96599fe335e0
|
||||
AD: 6fff534915999ba3c3e7ee9f964ff4c3774c1c63ceddf8674c9c43cd4874f34e22c5912e6f8eac3e889779e7b4ecb2af711665489274c3201a68d8bfe7c61e6e8134aa08d71ac2a23289eea43d1dee5b4fc4caa3cfb666d59b09c554bd924b6522cfaed157519de12d9bfa37b55fe8158d763e3c79b7b10db45bdae4ba18af925bc8528fc19e9af54ac81588682299cf0997eb9710fcc3597564d8f0b71e3249089673b3771ca110a28c1aad49f32301e0921286fe0cfdaed8f64956a4e2c0b22011bbeef46ecc6bfc29ce023b361b2db0488a2cdab32bb94024e757abccebcfa0a672acd77f9ba622a665314c4b520746ba4fa07488e9dc662f755311535f1f98558dfb2be88a86119850c49d4a0bc92e70994ab5d7f410ad20d61fdc93a08e460ff9628a5b242038a1d2905137d4729fa77ac0f74bf1d32fa7b025cc16f800
|
||||
CT: 0fd6ce7a1a51060fd105fc1e5d7c8fcaf4550de865dc0f990217c9e32d354a951bee16f53be1f9768f48d7f76c9f2ece7fc56b9e8c27ede94b5a3250ef27874eeb2dd09d2e50810afb7b9a50985fe28b7aee74303b178a0b74c5422d4f46a59e55bf55d7eb0d16314668b13952998205eb422daedb9f99dc7e04e11e8e077289d1402a1d12608e096afc6283643ca77813730bcee2321cf769c5cdbe5c80836db9814843a0ec72d49ea89ddf5e48e27f1e172423412b78fd91da54b776a132df29fffc5c8b41615fc491c43ffa4596430e55806bacb7e88abde1e20ae43260a1258e7d89ba46fecd08b7330409a08449ade364fb84ad1dff4e71434a3369a1d20158d02949edb9716b021271f73517bd985949d2dd62474a36e57b2682218ffa2d5a982c668a52776343d06ec4bd122d5a1bd5ab5b691e4462d8c52226f834290258a83ecf0847246c92d4339ada867f107589bd8af55cb96461aae47a879f5d81c3931fd653d68cd5139be7ea9b98ad8feb9b453f617cf7b8a4c9def78335d009d4139e66e10f642030b5a66fb44d2c07c8c689383136d580b399f685137b3054e40fd7c90f37ea30d52e09832b66251cc9c31156729e9cc5fa37463d89bf3b61a8f8657f6501ddc3cf1505fad36d4d9075f7a366050de98eeeae0c407b31a5ade0b29b1a7a3cc251ec8a918cc8239c3208b377f2e9a7df8aba3e086c33390bbdb4498ee5d194e43a67206e797d22a7c64849d1eb3921a8323d8a0c7d242f3ad65e52b992007c996dc642b858fb7ea7b1d8d6cb10ed3e9af7595367c26d4b01d6c178a15179ed45d44d83d7709503c85985bc1e2cf6200f4d0ff02e57ae4c53c012633935871028e3c7bf0f5035140290f4cc02afce10718198dac233a6dd7ab4065f07242e173b
|
||||
TAG: 8ba94213b2a8696d7e203e6bfefc1c99
|
||||
|
||||
KEY: 4233eba54fe7537d0127b1a062526d33
|
||||
NONCE: fed44fbd3475daf5c046123b
|
||||
IN: efcb6ee574ffb9620fec7644a10643908a2d3e283864e3011704c4b16dab7c5333545c60ec83b0f7c3e2dc8022ee5d1b8124f766bbd8fc95ae1a5bbbd2ba7eb5c41780627553b8ad99643d8abd43c56a32bc159ab97f1fa4622cba34b283317cabf0bc98931980f207efcfe6d4c4312cd9daff8d46b1f9eca45e0af42bb8b8ab25a9fe0caf1c61b40b1a8a3b35680abf456de109f42d87ef277ca178b4471936748f3232f9075b58c64c89614dde8a75dea86d3b9c2a6c4a71ccebf388becb7a2cbedd92b4ef95d2b72357b4d2ec099a3ff9fa9ebdfd1d9adff3329b0a4ab854f84e8c729538b0e65773a116a3e50685c96e52162e1b98367114d84e5476291fea3173ac3a846529d5af6ddd0d2272b54f534d4430179ce5bee98c3a9d3f6e9cd4d7cef5c79560674ed0b5418e21e9cf7ced787a9db3427d6153ed69d84ee4ca06c515d3822c6338868dbd97d0a21406275c003f493475d4350660a4f3afe49deacd9f299fc05aeab4029f57d05e21cff132cabf6de6ccb3082e0d8811dbe5188749a2ec8ad6b1c1efffc4031605c407e0c2ce57478b37a4834bff670b4dcfe8a32e6d09a0c80c7c99f7cc41378efdc0231901c7643bc8e0575040d1ac1bf4a79ba4c10bae1c0135ec4469bc8b6413a068ff97e88c4be959f8e426abf3cafa2bef9925aec0c1ee69eb60c7427dbf79656fb3846ae4ff059852e7686311b2778d06b5a7eab71ef92bd086ab0de7dc2a3d4c6070436991a68d81ef5b1c6eb024ccc6b2668c98e9b2ce452ab4751dbd57c2794798f5d9262e2df48788d92045b23a455a135c112e3baf06f2938a485f874a7d5a251770160dd9bf9c93c4e2a789edd07b8a7a4262adb303ff6ce9c551be29dc69f99dc75a4cdd53afbef565031529cbce2ebbc5f98b71315ea7dcdea17c88e7c8b3c20da68ee6ee
|
||||
AD: 4e0126b67d2a31e1755e532178b048b572f806ab4bfb398247b393dff9c653a452a5ff88cec05ba1ee8ebf23e91b61b1f9adaaf771f448a57f4572d460b8304f8a2d6ba8a8b89e55d13e474233cc8da704c244c6862adba31219d994f302ac7161604d324100241fe6762ac262a5f7b5a07c67cf3f647d2d60846ade2dd33f886ebb59c50d95a4a0ae103438a65bc192d03f351e3e56b6da169480def2db510c83b6ca91534683cf334134afb2491026f7aa45978aa38b38d6a8d193e9609d3d0b3526a14f7b131f9371f56818247ce4fc6e1b17ec6e99b67123e7e34faaa8a8c63c1fb9004604e5ddb32702f9be2246ed7496dd27fa90ba90d90575c0cc45c0b9fcc945f21bfefbfbc82c53dba1feac88db291f74b6512d45cd7a4c5c886a458947f0a30ee04a6866ff5472f6c921d1949b8ddfd623f744bbe5f47950dc0c7c213545f7ab63e88124
|
||||
CT: 4b9b468ed1b1b3ff8242f0d2f204e94b0312443ffce789fa9be7c56054c2392868d8826129462bba1b715d87d58eb5521a258af3e9e06d90e26702106242ad01ac6b64908f747306dc4ca142597d3021df591b60cfc2d260d9883f01078ce4db4b11eca4b7b4329962a6e5445857423776b22b802bd0eea8d7ce7d1d47d49a805d9f557b8d67926848668d8bd04cd2a9eaa0b118b9e680e23266785f3641630d2649d952501972d92f2c6e5e7ff9e8805ab3fea94e4d069487ab6767da42a6312c74a7191310cbf58995a94158987a0d3e6778f3f44f21c9e6c1b08029d368daaada4fbefbccca7f49e2f8c6d754286287ea93f69c72f3234acb2e4059aee4ff341730c9deccdda06fb67ab67b81cf5e5213b7c86b03c00ad8e447915284d5fe4e30ee2fe0fb2ac2e5a58c0623c80b40e6ebc2b96a2d5e045419fad0dbd611fc136ca032e71ba2523b5cc45f115389a9c9ef0a28d9b949b84ba637a32fcd3a8687c70c7d0bc4f27949b37d20ed349ad0bf1985e33f74b6974dff70ff72205085c766469b4c32bbd93365e207110b55d477347db18fd003c925b64aa4366212585e882fb5a5643d79cb6a9057e977b554948bf8129ae67ab02ca57d5052cfec2949e86f3c6fbf7fe0e1aeee3ccba5752bac7abce9a396fb6e5ea3af059ecb15937f34aba7fc8edb267ad1ee18c49e5e6f057ea5b0156093c6b042d2e7b2b29bfc9548f91515a6272aa8b2bebc5a0b0d9d610b6c911a69c38d15c2ab3b1d774d68c6d5515012a083dd0cc2fbb420456b8aa174be28502c2bf22c7af3a89686e2997f2015eeb7c33ba40b676b61c84702a3c5c51120dc290e58724d082281b496881a54839e6f0d622dfafec125b381da4823240cd960d63a6890c11fdb9f56a9fc8dc172c98a3764eedf804d1f5f56d4d9fad2d414bc4c58466f
|
||||
TAG: cd1e49972dc4c4e0ad3bcdcf16e692e8
|
||||
|
||||
KEY: f79000afa6ad2a10b0dbfa4f34e47542
|
||||
NONCE: 0437dd10d487f42d2cc40041
|
||||
IN: af9ef3a4f52f80c9cb25970a4a4af8bc7dbd8fa566fa588d57bcb446b399336fe43ebac2a913d74d0a9f7d97044213390372d4272317fa41a62c50bc2b4d736a759c85124562323d86f1de14fbc3899472a0686a5dae4a3e429efb05681a1d7a36d397741270b2d97aefcc3d90309365a64a0e244d62a4fd3f288f706fb60557d9ba2bc8e29b4d68a299f13ee93d3c4ce0efb7fb26a3d2f828c1268a04d48e5ed520c5334ccad9df4799cb58ebe15284a41aec4c2b9157bd2851f968a279653b3c9a522df5e2752f75a3819d4610ceb4da666d19b347f09dde571ccf14b435569b9624d3f3207ba49b05f40bd818c7ffa733103f9210cb821ae8ce1fd5bb80a6d3d8dba865015b52ad9af765a8190713d13890440ef64474b61a840618759160c4c692b5bfae7cab08f941d633a22b92d8be39a614903ce0f96d05e83596b9ab4cbfae18e4e8bf4ed0cc481ac402f27fc81a0b62b7843ed4387f2e994799e0c9532a1187fa6706d3179cd8e3bbde209f85836a176e43caa2dae384f0331092292872474d24fcdbe72be3067f542e7b099d31a0b09e0f2c31bd16caad1fe1af0f25845084268431b930685f6a16fab6a401a80590895a3422b94d056038935b1182ca3e6f4ededc86813d651efb0fa80e40700a0ceb602f3a67784b60b8d5c8522e42519c83e6f788d8133044061095806506cbd0bf3a7fb94e1d59435d3a5cd9a5a24db98f20035f0feed9b12b6cb4cc3e18c97aa890d61acfa167338b1cf79868f2a14711fcc241290709e800babf3ba7a868a528d44be867cca23f4f80b1f914ebc6abd630b4254c1b8e01241fcd817171e2d9969d2ba7c3f410a9d5b157ae0069b97ba1c973d944f11208777cdab373131ab5ebaa1304e394770c1d277913c54e7cf00c13e877fa5e8e0572f237b646f783db2f30274ba46c51d72d751c3bd4ef9ea32b0a22b260ad
|
||||
AD: 3ffa73ff1c5c481d15ea2246b6da59e6271801edcbe277591b188386946abead76ac40d6f2f08a26129895e97ef25b59ac345f8d060d4d21819d78402279238541534d8734ca66427ecc2baa6741fd093a5895446979e30ca15eda06addb67bec10cf809081ce8a70af92b03f72536a8a11a1e9e3d257352cc284f41e2fc4a91d1bd1774512e09bdd150d1830be260ea418fd384be30f9da23fafdc2c0b5c632ea7fc7a6ea87d69139e9d104d634530a02c4ddae3a2e6854118369e5304202206c4d8fc963a61bb4f42ba6f937ce8281429db4103ef222c3a015f08fef15eb5b407b56165260dcdad08f1196e3d698ac5b7ddd403c28593329db77fad8ab7aacc450636a4f7f6714bbc6dbe10c421d151a7c135926c5388a56d2b66ffeae0508706ee55899aeceb3525367234e29c25dd5bb8b187ca4dd14f68ad317ee5ab3027b68b5b405880528bd35eda7f9c65eef9b37
|
||||
CT: 47d6bd87f0ed8dd258b32f01e5c72457dd1d17982f1671310cb329e18fef89f25826f7a6a9abb54d4d216ba214503aed4d7fe36daba69482e4ace4b7c7a91de5a93774732e0bfa001947d8c403165473d77b6b0d53bece68a76cf544583980084ea5ad532b599206b2d618be4e56cc22be645a727a93fd73c434239bc9c0b2d1621e3ba63e625327cdbfb8f7b13997c3d981c340182aa59a4e8cd204c5c86e8c531019f4900410c6870a1bce9c5e4f81bd8134c983f203f7644577da19117a7432c9a7713cf1bfd3bcb055b8601f4f44d33b1191ae1e32ae868bb37ff5efb1a7f67d94d993c0c50074346a6b41da521633be46e299916425fd46bbf4593b1c02df98f68debfcb43fff6a1d7ad6c4b48296207d74a9504670b50368f2f6a2d89f6fa98b39e13cd46fcfa746dc533c8327a0b07cc89b654ff8ceee471eb42f1f07b0abde3ab49478563501e076622c0248bf8e82576e968657fb0efa23a03c3e3013098e86e44a40d21fe0e640cae3da3a461038907f9610d6dce7a1242417bd43d26ba6aeb1e6e3d0e54c1b9839d019ed409eaf801ebb6fb25949a4961b35fbdcac81c9f87ba8e4f7103984ca6d8fbd3d3aa7b13a9ef1bcdfbe4f6d4e6cc48e5cddcb057027f98ffad2a90a7d4fae9427be8e77fb6c30ac38cae71a36b28fb47045fda28a027b1301fa5071a262c5d1e0a695d3244218a88c7182590698b690c42a3cae97ece7b7266aca88dd8fa8f56ef08c28d806e7398691c31f292caf1443508c494007f5de45a95643534f3f0fdd20790f0aff8d9bb432cce36bc857884a28d2dfca0667a2d7a0b0255fe68a2f9cbc28cacfa489fad9d3101a5a6bac3c39fab9a8223bf5de787fc3d9849626cc50466355df2da389c5ed8301e24d2fb6ce3e8081d32340739326b706466897cd40265cbc347121b6e12e04c218420ab7ee760e9eb6b43fb4e4c530
|
||||
TAG: a2d58dfc6f1a7aabcc28cdcda713735a
|
||||
|
||||
KEY: 5dacb5173b30a28c99e00eb11181879c
|
||||
NONCE: bf1fb59bee4e3964b300ce57
|
||||
IN: b597b958c63a056758714d69c241da18b480acab2bddaf692f4a57abf2265a0fb09b3352eceb6b26a667668363a615b5d078a4962c48658e3c92e43ca83dd0f71ada43a48d52b793a48e17b66097d06f9e3804202e3a8e832409d45f8b33762edb9982e79948fcbf7213118121cdfe834931feb8d6d5e3a677e3c35d6bdd1a0a51c9c0141dab8dc0ca83c7606f7a31084b9a9a985da6b93e23b215fe4373e597574357435cf7aae309c11ddef6b0f24437df2149ec8e8861e3546f2a950f900d74a8d736a96ca82b35bdf9548d6eb6c6235ec2d98ff0f196fd389234bb44de0a2718302a3c7110ffbad0451f4dce3eb2a189f63d52683509003cd6e0574b94c3db904f9b3113eb44725a5aae93aaf299d05b8aa942bb635cf5e68107a3277b8a70534e90976275809428e77e5163c18edb02334d739095da33d32502fc5b12c6b14acd316404d7c70f81cd5a035472154e92e8a8831a22c5b34ff4b40e2648df0e6b411ec8bbdd985da9992e3df5d1ebf2b912a1b250fd08553322b7f894cfde69cc37bc794b7de6b5136afb01f8377e0b293b57a50eca913320a0eb324a6009d41dfee2a416e6b9be33b55a2e85d59a88dac4d587e95e7352f004637bb3a798dda6d3a7164597a73e13819dd2be988c698bc7eafe6d7d32dd416e2cb252e21a7eb26ac4baea46a5ceb7b19db842b20d5998c5bc4b78836d0c6dcbf3ac8e2399b82d097232c553b837774960fade6bec8d0f452ba20bf72916117045596f4b83422b026c6b187c16e560ecb2d5dba5b6b0d7709c7b8e8b4d199d19fa0bbff8319dca9b308a836d0c1eb0c6f2a14c13c820d3b7213104491e6df75a1e61621a5c7be94f388afb47d7c5c211621fbabedda16ea22c837903b1088e6cc8751dece86bd749ea66126c1139d98d489dbdb93e6d8ae9061ab6dffc716e27c3dec83e2bc2dce5192f3fcd3fc5f3b394885164f501afe5fd42bdf685c73f9c
|
||||
AD: 31abdf1d28419a911203ca879905ce7d0edf1c29f3874d02cf2b799163c9204149b96a19f7c0eecd64b6ba2bb686eb1d6f79e420d130fce85edc6bd6b07257427a9107bda792de711025d05962dca533c52a2a379ab8516010107bc7879bdb2447973f6d356cd3905e253023a863a3175f65e1988b3f8b92af2ee9b5717d87705649127dfc9c7388c9ddfff5e0dd7564fa76f9b3272000ab7722becf46c1c2d99a51db96dd32fc5fcadd683fb4f7d57eceaf332910e8d275c5f955f27e899eba77b87784968e889dfffd77367c3a4c2711a87e1aa5dce4025ec7aa3908b96cc5fe05de319ba6de6d57b170561b32d0fe4217b0739393fe730f4f62058fd3f950bc5ef151732e06fb92987302c684557befbfca5d15b72a22dc0a3a16bc128698a6fef64511d7945cb1ec973d66e81e2f6481316640afb0344d605cde7280e9e6107131d1b2fdcdb93c29673d0822b8fd1ae0f22fdd17b6f654a651
|
||||
CT: 173cedc6203b5de9f4950c055399328756c886ba5f8eb4d3dc4cfb5e7681aec1c9ae238d0dbff2af21fdcfc244d20fc310ab0f53894d0f9d7204de4c3fe8d366b3fe075d7c7bddc79a256d54125d493426f56c0f56b0688921a0f9c6128ea6ccb405e7551750780d03f1e4c5d9ed1daa253a35178e85f5214684ed17614dfa8cbbc17c3620b080531dcf8434b7b38d1d45b45759f2f0e1c694d39e9387479aed05dfdada1672b8fb01935ea13a057884341ea164f1e59f8069aa5578845ce60775e4a6166b99eae120212cfaa30de04ed140759dd071c15a3536421b0e0dde31e6cb7d8e7e71aef462db4564803d1f8301f0cd5befffc1c0afd74ee5957d76c0a6bf85e2e57711c0ecde9427cbae0c214a09b69fe55ec49857df822ceee98d3d2cc2194b48fff88d5c4209b8a5aaedaf5c289884f442db3e5a8e441a4da134c3453665e8309b61dfb007cd48fe7f2c1bc612853917a06370cfbf3cff5c6c4d745f134cd5952986ab100dc17436cef8daf917096adb9a0d49889b75cf0306d31b6d6902817e747918ff92f479bee78bf2070a0011aab7c0e734395430604e6c8c2a73c17c4bf10a1146ebde04b04bb12fc6a189faf983e6cab5553ffb92f34a89e8166ecd024d89115e6b77395eec93d62aa3daa2f5b6db3723d25ac747f0833ba89350b23c2f874181a6e64fd3ecf4c07396c8d90be0cc78139d20891eb729e5f22f99d07758fdc00e76e9b082cb456c1e5a7b7704153e16b564f0bddd142d47b51e63a3c540dff5f32eeb786c48b3256b9d655f3098e649af178dcca88413ba50f0f332001d4d686f566250fcec1eaa4b3615604c9f3e8fb1704018d609904af5d2558117f43ffa74171722974053fd468e02f047703224cad8f7eeca77f8aabf9adcdb2e3e6df4f805b2a900591977b7180a029c8b359fe41b31cdce8a748f6967872355688e932bc64a43a12222001bbb4d83fab619db8f933e
|
||||
TAG: 5609b0874958433df52176247da18dac
|
||||
|
||||
KEY: 87b8cd45737c8446b21301be1d5d02ca
|
||||
NONCE: 6af5432cffee125756ae7bbe
|
||||
IN: 2993033150f6ef19022bc5bd11c9ff9ac8ca8b17c594151ecb5ddadf8465c73969c432f4c273596d9cf7c53187932d3be41a145fbd6485ceb80b196079d89e3b5528c61946ba503844ce538a1892e62457abf4b6f90efde91d1747fb5bca839149814f757d418b9787822c76ad2ec6e5c84a07b0d7eab9f918b71e075cceab5d6ae5dccf54d4a15db9e415e44963c8ba68101df5894fc1664844c7ec11c300ae11cccb4ecee60431e36a2c4516db234378579638b758f10d80ed372da218123449a66aeafbb41bb8ff6564cbbc9c9f734daa1a9e409fa89decdd619ec8d1fa5918d3ffa0c780c0521eb514b2f23a4e95704f6a22657e7203bd1cc15332340414d02f7265023e0c9906147240d0495739bd33f7dee280e2cf905a706dcc838bc2fcea7e4afd823ae2dd3e2a98ff55f3ccc2b0f789e4d5019b93f213722ffe27aa583f6b9f77cabc4ee5358324f765547daecb7e2d4b371e1f77debc01b18be41313387181537b360f1090bcd9647ac7694907ca521f84f7865c3c82388c6aa80627ca9e4de08a163391b228be2a642df333374ec7182604bb80770f4a839aad778dceda56764f5888a95e88afbea46cd9eb4f506882cda4407461b1ea2f31a88bc7529fa923ed9387ff03dfaec545dd796243b7578640e0b8025aea75ce1b9ba918ab04572ef65463699d32125f71966242fbab007730e7f490338c60ed9ddefa539cc88d39b254e300b56da3c832065a35d961f74982fc895021fbee01e03e9534e54686376d8f9061cd4d033491b081f15639cb2056047d79f0dd7447c899b2aefc7d6bd03e57a1d7cd996fa282ad7493201920130df3007d13782f197b26ae0cf7d62cbc642d10b4202e1887b43faa4b71694b05d19daab60cf37b6a9b50c7d32b04138efc84414e87f6caca8626c2f764a945a26fca57907486c0db54ba1d898e2bea16e6d8c1f25bae57962529532ce48be6c1cdf0451deb047a1d27faa680f972148e9a0bc6c897d4fd
|
||||
AD: c82bf439bae425cbebcf21c29c3cdfccd82245ccfae0524e2dc0b7164682891c85c9d6814c80fce1a63d588928b38dcc987d9df32f2a42ae4a1f9e8ac6bcf285bb08d164afef3ebfe6b299332f207409d271460847e9279d2f0b5c4638cdd989f868b4f0dab1f324e9b18c35e3bc5f798962b7d4f3b6bed6fc1c57055c489032a600951f8d06c14f5ce852d29be001592ff5c3678c0bd8251c883b333d5c670e52072fd68fd8d53e1a2f48dfd2880394541f4df82a9b6adf525c527550161e0d7dcd5d0bafaa4abdf1cc7ae189ada0a61890831eca952cd6e505d4df44650ed533591fc72a9cda1fdb1c4be99a31ac10d8f011ebbcbd8d83caf5d8c33a659d032d4e454ef069b2dd414fe19706681f83a479078f01d6330e2f57c2a3720e5caf67e44ffdbe461d967060e29f11d4661f23b27e90d521c1a9f4f03413ffe794cd9e39dc4c81f43d38778fac476585975b72e26dec8658f9cf6e4e028bc87c8d5d1fe47bd3
|
||||
CT: cfc53c8980c557908f7d3a2c15e7f65da940cd319594b7d8baed9ad7edba0a46987775b004b5fd0c10306677eefeb8105cf124d0c64a2dac05364138fa2c4e49dfccb963a89956f97bb0340a14573e559d9f937b51fda46206f7ec3361ce566ac2ccb418290e070ff2655cbe89e762466c1559fba756c62de1c963afa1ad18ea47a1cf3d021f46bae6c060b19aaebabc900229086dc26fae9fc9da70af5af3acb02b6d5a570e95ba0d2f789fa077fe06553670ddd0c4e8965a3f5532e93e7fb0ab7e0b9f90cc9b483f1fb79ffa67d0cf53596eac25679ab4f8ea75b93f3bd84d8b8270d6d5ae62a5fe8995e9b0384365ad813edbe7fd9743665338cde61f8d0bf82481b9da29f6682795e7178fc79e676c8e3ff641ae25c667f92c849a642abe974d97718f0aca305b57ce7974172477e90e16d804c450b332339c61c327d78abccdba272b85f4da54154f59ce8dd5bd89e38a515bbca07d1526eac34437c66496f05e8582ce654ced3ee07d4e770da1799aa9b6fd42402a47c6d5e0c61592f11e798cfa3bfc20dd601e86e05fe6ed45a475a1b54261f368877e1207029f50b6d54e19c132c5732ec34552c2c559c135ebbebc7be00233126d5e0dc5e20b7bb37f6b25df2ae5ff44ab390ddfa91435c6d8ec09c4916ce8dd3e10509094cb4fab2ee9f67c3eb351ef221f3e67b7ff3dd7292ce01eab7e298343de449a2d4a0a168860bedfa0754717bf6fa0f5e37930db0e70c66976d34c0afd3ed623df2a10b9c02b2e9220534688e640de5d53f3707c2c9ea3de7d339e5530504b3a821cd3097784f325ababae463e9e1b34ab0830d5411c9e04bd48a321be1f8b973fbbc6dc03dc7ca2c31b3d9a800ec9d425881468dd9d8ca7f67ba2ed500d1674118d42ccaa6bb18f0a2c4e5ead86234255d850f58f9ee7ef7f70e2eacba6a053ec2e78c27a45faeb4c90e28687ce0d7cd7f8146a6ce8ab3887408e85563889373b606cd5c968437bddb632d69e8e8fdb
|
||||
TAG: dce7df76d7d0c0be7f560dcb5a4a00cb
|
||||
|
||||
KEY: ad3ff84d1442224006550f6006be543f
|
||||
NONCE: 7712c5edceaaeb3360ac7ae2
|
||||
IN: e3618e093a797223283e0b9c36a841308146c122e3df15a43417bec5dc4224a10ab962fb11c53e3331f0a9967c008541bfd7d1beeed4b80c2371d5ab62cd098fcbed6f96f01fe9cb9f9f7b039bb010551e504252d0752afacdec2f2984d4ceaff99dfef99d57b4d4b1fa969a4e70aa0d868993474f7d4bdea01b9178feea95ce30c0f6b78f22c70da57d26677549e9284bb4a6717596c2c3b1a513ee888915b910c93cf1d94aa4013e891e1da11c41254af3c76a1f63d67f74a07f3176744f7e558f03a3525b4a385fc64e6ae48e5d96779d64b5f557ff453fd44cbe46a2ad96fb2f79ee6720e08bc8e463abe2a9f662540b5105e1252917d7ff63011106cb7a47829c86d374aba8536d1bdac2250045e098987f185ac00faa0b81630d94a41ac935088bd5829e46ea17bd0e19001fbd25208fb312b86349a9c60540dc2b5091c3b0902eda0254b9e8a447d4983ce8e1f58832d2e9591c5b15a96f1fdbe23b608ca5ef909a656877d36f16ce276e38744ef11768030b479a4b2bec453dcdce933c78e3d4e7bd7e7a906eb74bf321fa75f307861ddc1be310289dedc87a8e325a3e4c6dceb1bdc6a02d1df4598f343ae8a06729502f5abe458be2325ff985b3cea0a166ab7530a560d1971c57c566197b5e004d9d38d831abec067235c0d2ead91b9319d6ed20e6bced57d71dd2dea6a2ec22efd29b146bd31617c9c08cbd26e9dd53e045d6f29a7dce57c61b3a5f6410dfea52c30baedd587cc15993be3ca8e125f61272150a02138c8c3b46922be9ae2d31ab7f25526b86cc0c73cdc400b5506dcd94bb783a97f39d37db162519549e642f9f087c3f41c8234fe01dc1cc8fb0ab3099fe2b8efc1017049d79b5b6ab9f57ba86d2ef73e2c694c180d2860766a4010d76407b15afe28a3866e48b6b688228d2f1fdbbfdfac9de426186e9f7121d1a98b11caa6193f9445939403cc960f2df0ce5d7d4a30afa6fe8b9ed0add15bc78ca371cf34d6feaf94bb7f6520b4379e7bfbf836acfa3e2adfcb7f880
|
||||
AD: c53c1a8b8fdfbf5272fc29b2be7d69ff0741df1ebba02e0525e29cf45063e5da740f6c33b1deffea0eb2323035a21b18fa010c6c3ca7cc0c8194627d828fd5a9898e2b55266d4377233badeaffa7c703fd710441e250d9a5d94d954911d66caa836e2413b190917c1802c3e587d514184498ff2e6e3df5405829262b36fa8971cf8595bd1cd87801ac4c99357da70e2e55ffc012a30cca44e4f5538ba92f17aed8c8a48f85c501df2f0639ac88a39cc024fdb6d29aac368728865db1a30ddb36d366927f04f00f8dd2229e1fe76db8e7ded1fd886a9342308ba99d80f86704c974da156d96c272b806aec6c0268378652c26bad18ab249e117f8643d234b965d45067f42b857f0888ec68aab64b3ebde8a55ee38464e5f35f8653c7f0ba7598ad26f9772b574d7e060377a4174922b1f8ce6b72a83f3a20d20625132ad7cb1429e26865ecce2a47e29740cef1a3d85bdb3e800d46692d6ef926395aefba588294ff410dd523db596a7c17bf7d4
|
||||
CT: f59b5a5d01cf45a8d91c8c53b3d8feb5440b6cb9537d9feb0da69c33827d1a5542e1d2db34f25c399714324b7d31476022778a82a10668a281bcf6e5ef368a2c525a7bc59f46fb9e747424741e8894f86fc157dd748370212f848d23b13dd658c1e2ac1bf99abdf93b53a35b5bcd89cc4406953376187af45ab811e99db9ac2a367f8a55b0fb4acac9a9bcbc1858061860230508de9a777bbfb0f74b2c69a79dc332a4f03d156596576792f43dac2099b1d4af11fa6088a086a25364f62c24969a515e74f29661cc4764842a47cbeda7ff9ef515c7510c16566536273d62109397626a3c2b601bf272e31462ada51a01a69e6fe174082966fc25b6b8b034add7d394717f08df992771696bd51c25c8feb47ce637e23e89feac9679dc753eae62c0ffe7b62d9855ec470904df6bf7b6fb246cd6ca77bf2848f1074f146652461307c5d51b46977ac39c42ac5857b64f9b347a45062500de41a19f2bb03fdb241b309a5b685f408aa4e38e60c667fd4bad4fc3ab9d8b4f2a8735b50d2fb7d7177d2ef9e5c783ccdbbc8e923832117d3ea8cabf40891e8c912d703f37649096ed0e41e0e53cdb19da6467bb1ace8064c7862b6c4829959f7a0780860a598f3c725f3f956259ffd20e9088dcc639a0c947d85a51f6c77e911355ba77fe43e49a1137fccf2d951d4083c7232d095f2e2d003bce91ef9cc9aaeeb046a35bf1b548c78719c553e6ebac55a77509a3f02d71a9fb84ee16a8fdc6b8b1c917f800e053e655860ab17c0254327cfc3dcc9267e2b78dc2082e54895faea0349d9df3eab4b0bd62f5d6114903d8851aa3cc9068f6b03d7924dd6c4fcc08237f05551d528c01f33720c53867cdd375fec867f71fb3b4688eb18ac3647baaa94d2a72391f47e819b4f41e98904322d1b57d4a485fe9c966d4e0967eb415feff49d1baa38ed2505dee1b76bf1fad013918bc282761f9431b1ea4b3ae826470ef72399c86643a308043a2206df7eb354671846962693183df96ba170898fbf304b0ed34b1fd
|
||||
TAG: 90f99dbe53f5a8531b2a0e8dca2b7492
|
||||
|
||||
KEY: 39ef8200a13e35000b40e9b0b392c982
|
||||
NONCE: a4377557abca18c1f3bf774f
|
||||
IN: 4bf8ab0b9080dceb2323953aa0e621954d87737bba6f562dbb0de271d6f1b88d7c1a712f613b099d2bbe0784a8304467cb168ffde2625edd9f38be5660020ed3e95b49e0a0ca9dc2bd0de2e40fb275b4813289327de0926df3c73865e7689fbad0a6c79ea615fc84345529cf2ef68b37b7e9fa5d538f4dd848ba66adb4745079acabac63de8d2ce9a2b19cc718162e9fdce49de7fa4b820043ae234d8afd23a45ee3a5db124e0f9252111c367beebfab55b2c784581b63a1caf4ab24bf5af45b986f457ddafbe87791788e7c7536595d965d5fcf21e3b13873b00357dfd7851f9e0f198ff950d69979157089be26b22800c3dfc713a5147b0ca4905793a2817281fb112deac286c41ffeb2bfb3fe1ddc9aaf4fb41fd5faf1df2e6e809f54b09f99bb8b61b555efdf4d8cb559fbe57a905d30184c2de6e154d501bc91f6033eb97295d96c1085b510cd57631e40e9ea3225e175162629b4c44ede0ab5643af425a8f8614e621a581b559f0e7fb63f0c8ca09cc58c244ab2e0f750c6135fc26e433710351802c329edbe97877f912bdad914a051d859c588af925674f1f455a322671793887420bc79a11541589082ef12c975dfd0528294ccb086ecca86ca940ba05f937fb2eb91b4b925713e8ef7d10305bc937aa976c5eefb4142b0c18c1ecc6be979621c437c64e1bcfe6ae86d28a29fc894120da6ddba1e56181b6f54a9e9810a83c3b44b6fba10959139787a491f367658ede40e1289148f66d4677d0281ea3615ab399c7dd9e6e05b8a68fc8724089825fd5f6a38406b3eaf01b8dcb62afe181ed963a0d940f1521f4f501d3349e6aec453edee70f1cc640ba3bedf78ec91acabe75f7de38ab98253dcd18c6a866f4c2b8a94072b1f141c9ee3c43beed8a08d09c2f35f142b8352cf776c57d6684898fdf6653997dbcb2cfcdcc43d63b1d287beb8a17ebc74eb3c3875af2ee0446b2d75052ef95d37315fd55e346c3e8dff45f17cb28f523592ba049b5de3963baaf0eac3cd75f0f0543e0dab651061bac4e3ea3679bb9a78d035bd8ea9e8
|
||||
AD: ad709f6c13ae2d4638dbebe6b4cc0ff606af9720c708c20dc2d6f0e4ba002a0b41e136d2b10dd6a2f8d9fe8cbe91943339fad0c52a2881b188611955771d3f9a621af08b95dbb77879bf508963fe294c8b8807fb9d8458a56d7fa2a4c5d995113ea8a86da07c28dab43c997e9277f98009d67fcf2ba171016cdb7e6c449f6996d21563b4ab22e933ddfad5c50e9036db19adf88761150b2226e73043a49a8e9934094eb4363d61bfddb791f4c5bca194d451023aeb879092eb2d8c8c3a2a5b8a832db6d73804c0c078c50a1414b684184780278cc90ac42618bb4144d5a415f582a77b247e4e8236bcb0692620757960f5103887683fd54f78095e8b098506c81008a7b443a533a0a71fae3f08bb4c28c7142576f459b1a2ccb5f65425515e691852e0da343291ca414c28c90426f7d5f9d7c78f84ad6eedc600137c4d86fa7db53b1d3fe9b16874b31275a740b5f640fffcb4351e4e32cd6bb7b6fc11f104b2513c0814c370b6a7558d7fc07c355da505a1777a2176
|
||||
CT: c1545634e7b0db1afb8a166c9f0d81a561841a583d04fec4f1994c7764582f7b11f832ec2de523e4f6ea3a7c1608e1d1a037b7975bea51524bc8f001ea34a2387f7510967cd57be0436529c08144c232ba1f532863255a55b2ea6f860b7db366ec8ea366e62187837ee8aa47cd9a8d687fafc31680c4af60493da7adb7ccb8f751ce6a6e30ec1f78bd169571fcc0f208d3966cd90660b8f7c2969bcaa8368172cff0d0fd27d732d9f7869d764efb36e55ffb96a1f3d8f1e6e5916e3e97e1f5a12f8dd965466a26274804f19dcbc7ec872cf662854501f37ef5fe348c543511feb61dfd96c5d429c83c7ed70a1d5beafc241c697a564897c9fa9819fe91dce3234d7632ffe73dd1f7c3cf0bf6d170334d2c4104a6ff5dd92038ad91e69f2685ccc380a9fdbdfe7f9f47c3a05ed97be25e299b8e71905f71c68b492be8545433c99b64f2d53a9239dde92359cfadb7fed301b8d8162baea533be9c9ea11964ca6f34e4d81b968546988afba059fa4b4e6d9e436137a9d991cfb867949c1bf87b1d61a5429d4bf549e66ca88b309cc65963baccc5449361dcab294d8c817717f848b942dd11fb1a8015a89e9bed4cdf51b4ff3ace0ab474fcfe16ba2da81b59a5dd7958913c92b4f6f067d2d350111c23c477138ebb40a99e0e55e6f609d74565c77bf8460e6360f4bb54220176baffdc96e4c37529ca3a38b3ef959d3ddb3b2759141032e54aaa8e6b2bdc928f01974f1311fdb15ace49d7d5a026e77fcdb5e9d7442f7bfd04584078804fb3aff740af89401771047af2483153b4c79923980cbc5695ebcfebc32ddc522f9da5b1220961555aeeaa2d578538691ef8b9f12b5833cc4f3b18d7c0d8b068e294c82efb95badbf590a3b4094c38f334d7ed32934f7012b87ec4a49bc0c2b7fb98365f22962d1e45d99e190655ce4213275b1e422976bbe36104027b96ce3e52ff931548e10e006c75747c59e3f7136db301eada16585ef15f4589180b368babe64b114e36686282d195d622e89f04d56f17c718d72bc6c577796a639e634a97e7877258
|
||||
TAG: 9563db087214b10c64e7cbbb9dd21a83
|
||||
|
||||
KEY: abbe5e520c0ee79153c976d71e5c6dd5
|
||||
NONCE: 76f4857ba2d63e04d6b69a2d
|
||||
IN: 5a3ad1a3cb88733fdbca5b027ae04137f917a650b4a556b5fff90f17bc12a890aaa8d61029f0c6663eba8326c1bfba5d9221876ce3365bfddb714e884bced0f1675b6ffee2b1e22929f23893f3dadf967b006e9cb7a9a0972422c74a0393a29f9c4e06c2586f393786ba078cc52499ca6e911e323915ebca1d1dd203189cda3af76f785538d9f1cf5e5dc5758a490cea8710a9610790f426a0c76e262eeb9facfcd7730b72802084152f71adcc2cd6a2bcdd0fec76ee3228947d2f9b1b6f614a7e609c8f250fd02e19a487365b0db8f2d53cc6843d0d2a2abf3cd2ce33125558046fe9ea2eadca7dcb9d0a20fb3ee274fd92360f8772a53937625b5aaf9f10e9c9452426cb42dce78cdfa2628aeb58c295b01e12b12ece1fc5f66e33cec966b52d6593e1d1e93ba3abbe0c917dda7c2b6b5d45fb4cf6588908208e9b264f7e8ff87cc5090f4ea9b1a5205c852c308783a6c5ba0629cacfdd38b50706097f3496b4171a3199a485cfb32fae763dd77234dd9e2c6544f057c9885e914325efa4ccc25099f81c95a4e968e5e031747422cbd48ebfed3236f878a2832b7fc6aad4db734868ba2623899e9e0689e618bac700ce17e6d0114a0f5b94d6a0c3373f803ba2337d530fb706b8afbe482eeb9e0f5582b2f502d3c774b2ba98ce5400a20cb7d9a32a351401bffc2214392166208de9fc8a6d329b7dccf10734b5b74ce122f2454fa551b586dea96fcad2c45b1bf562bd5751b757da829d57cfdfd8ecbcc410c00aff69764a4e532545838b38011f92e464d192ba315ef239dcd5041448f165a14d503a865a85dfe81c5d4dfd37fa6c316c09eb403bfdc2a8c1a0618477a5fede92cbb2abb71b425e201c6361b5509288675a4541f44b7fe052acb25d1d87660eecef0beed7851a2966947dbfb8714038621b6f34ca2874751aebe9e8084f6ed854ed5f151f81533614cb1fdc08d2f51e47537f6229e0b64d10b498f773fb67bde258cb74a78843256913cad2727f9dbc3a8bd51daac9ed308ed0d77d86aa657a6ea7f9c35e120553d26b2d3fad1bc256f1f71c7550220b0b5f3c6fa8db73
|
||||
AD: 16337934937b996d7a501a3d1fa7f6321369747329fa6bce98f68c769dfb3df84b2b1e14f1a58c3f6b65e03377b7058fda3c26adbc370ec72e58ccc953ff157d4863057e0df89328efb5023c1b79f0e29be2d7cac9f903bb782c4c8720e2ccffe83710871642e2acae2071ba2a0af880f14f41ebdf61a3e5449dec6e61e103385971b8300a31b652053496e9b3a2db7a7bfb03a054fcd912e3e1791f84cf484370e553d67cf99c6b1c9b93bbe6ad4a93c47ba9ef73d9f8506400a49a5609e7eae5e3ee9efc657729d1e615a592a8c9f14ba37f5d91649a8c59ade56769c3bcef0c004c7444c3dd24223ef7bc6a2ba2e5927608692d1fbbd3868d7fee0fd11ee40312ae06d20704e29a97ecd4265556432173d6248e9f273363211b5d505de9861eaf402a001ac18b485c7ad0e442bb5e648e20e0884ffcbbd2dda9b3aece535d964d2cfcd6f99a31a4f24d878575fc3ad7a7c19e76771929c45d0965702625cbdd2e99371147e41e950ef70a7393084682a2ee6ca9b611f3c7b38ca4f5fdf2
|
||||
CT: 76e3480cee9d48b31d5b1e9a01e79e713cfeb73d742f1fc1e8f99c8e0cd82e267c45f4270077e86996a7e5440a781861dbfdb9759a6ce3991fbe6006d0de04658423f54154c8e5945dad96addb8bee044308cdf062ef21fcab25eb9a91f100945f347c865211a1087c01f245448322e77b826a22287df3434af7bee91d7a278fa59689656f7d93270898fc68594a4bea223d365aae03f0dd18a2e525f0c142b28776bd9f66fa2c046e57394488d5526fda62704e90f50e9752bf9d7652b010f8407de91eeb3068b830d0cc9294bee9629161df4cc7a1a216e55dae077864999ae72020346e813ca8fcdf99e417f26b82653908d0d6eb50ec65814f61b1825cc29c4679a9097e9afe294775e498489ca6839096f7bf0b60d3ebd016d83076184b272db1775f5eb3205015fd45fabf0bba9a990518c8d6d0c478221768fd83776253dc843eea8bfb66fbd2b9977632ca0aac7efc9528115fe4394f460d91c1b74fceed2952c6abc46b61fed85eb7414410731106e1a7be792eeac86fd4bf2b1ff2e496417fd8c0c2865e80837b2b73a690a6d9b7fea83687adb3a004a0d9fc9791c572d916a1b72f3ff5485f7d24e08c65a86079dc2bea698c43a3b2f2e5a8f335da4376aeae4d7fcb509bedbfa0e8fd25a711af45225d764534edcee4bca8e1470cc7d187b0bd9c26866baf8169289653aeae9b36277ca22c2a0ce3f69b3a40dd55e745b0b7467c2ef6a8a10151297eac1365ee475239d8f254806c8d92354757df8cb12d3dcfba83e05c303bc157c7be49da40ee072774ea7e4ac7044768418e64d965eb76d14bbd73be18d14701cdb6f8ee32cc1fef468047ef0ac649fb77843f0bb751f543339922bf34eeddb8140220e6b45ef1cd180697c651a352d05c77b705436f61ec9d35f185c5ce83b210c4a4336483f49ecd538dcc42a22b4f77ecdbb8cc36b8a499ed5c39de1fb6e03b0769639670fb2517c57f183eaf56148e1625adea1efb9b888e8fc3d83ba05c35f8509bd4e16285911462d77d9b270ae278cb902f6ff7970211cd53f1c310cd14a1787009cfd041c29933edb6e672d1d5
|
||||
TAG: 8954449b3f6a09e92ef2e33cb57c695d
|
||||
|
||||
KEY: 100c6c8d1e88b842aed09cd16a5d78d4
|
||||
NONCE: e2d7712e40234292dd1aa27e
|
||||
IN: cbe63c433804b0111a2cc469e4f012d55e95e251139f5d6dbfc6dc8e8fb6bf5ecdd8dc89fcb6b2964755d1de9d8a0dc9d648619e185169ae5ccd61a6c2266c5177d8569ba4a09d4c231d48b8f8017365a411714be669fd31f5d17738739c75ba5abfc19d1eca16558cd69bf33f63f50417c92c29dd44ced6e9d9509057ce53a37cfd956bc33c6128fcaaa441fe3016389cf69bb589d323f18fce0a6cc7e77d9e33868ae21ecf8e491019f175f10013392c8fce3e6de3dbe9bb20ab69c2996967d171ea48b46abd36b9f4015723ec99ab940156e6b13ac06ec0f4a8ef74ee304e3072d9e14e844d2fef1e6fff116fbe9a74a7d90e79958a2f14c364418b7cc0d135e0fb8e68600f2e7aa26f9e15431ac9e5cf380b5fae8d715d1dbce4c0225e5c61e747029f62f4ea5de277bccb75580d6f5e5eff710ac8bed37e98b15677462946b2fb3fc0ffe720ea7c6bb70baa0e998fad6b747d5493506ffe69133608f2819d3fd9c8ef903de215b72677076dabb98cb1059d7d1b352f95a2d2c2903dff63743ec314e0313e46095197f6aeb2967c5a60f7f043b5167de03ffd320b64291bb7162b495f8379c883f17d642bd8bcad4caec8ac05150a5d449a22185058fd5c3a87a9f39b8a76afa529bb9e22641c8811c78fe3d3aaf2acbb88c47a1ac40dd686b80828fcbef0937e57a6272dc2e3ee18fb99410ac33a96d0800bf07dfea59e707cdc633c938feaa179a8d46940d1182fede7e1b9a3687548a0ca19bf53a641082da37082f257fe2fc83188c46cc58ff44a111ad32b6745dcacc4720dd960d2325443cb70615a4437eea2a409ee70c7fa3967a2fe97915ae852cbecd21d44b8db03d3d631c90e834a83428568e8250f5b8e2422007e8cefc12cfc28fc7f9a73f93afc1c3d2083e4c5cf6204753ef7fc4199c0d877859a90a1d3b16ddec6de134689accdca001fb1dbaca4fd492854446c4897afeeb68181890914744a387c198674d37ad98c4ff3fbb34ed656add39879af2e336e529c362d15399e40d2eedd9fca1f07c117304024e03ccb6e4e35d4c2508014742ed3639e8d0d0a73b4e99c
|
||||
AD: 0e2825fa3a69b798030cadfb168a1f88dbe56896bfb9a41e901a1bb61b8a95cfbb343266e894f101767efe874d9d45b4540d2d77e701e1d42fb03c32ca4b965d836b3fd34ea3ca2e958aa54f1b71e8c442783924c023c1b9fe0a45c88f4b66453fd335db8102e1de765ccfd7fd415ab7a08fe4e0b3d2a14f1564ffa3157a7da7cc9981029a45edf19bac8dc0f97286038b38fca85f280ff9a98eba85e328be65a657291692413319e0f045c07c657c903e51c0bf72093c615cdfa18368992cbfd4e11bd64054d34405d00bbfbdce63e315e3e99fccde073823c17d9790cced43408ba71e48b06f9bed959818d939f7c84b2d6c3861dd17e424dee0cd7942320c50ce637dd1349173b13b972d0808d24d5ebee528343bb0f0415aa123ba63206de27257b11ab15aa1a3d23d97bcde30cfc2c8f9bf0fc3cfa4a6fd61871744823d7a1f8fa7dfdabbe82e73e491045c9df0f23d9cb83ac7d1118b4653cf4961cdb7256b073571962b1956338d684bcbe4aa05aec761e0a14cdbae6d42897dbbb1c0
|
||||
CT: 4b7337e4cacd72909775b7b8b77e3a73dca810b4642310f33a58f5548f4876d20b828a303cd85241581372f94d2582f79030e13ce68835836fe194bf8e68c22a39feb10825b80b4e2c69ce430b9b56536334616ea3f4610ed7a8136102fc22e634d5fae28cf518630c5f159ec3bda66fab0896f789c7431c9f6033c52e7082b4b65caf82df07266b39a4f0b93867f0e94e3f5065fa626b4ae90dc70cb3cb5d9225bebdf7de553d364efec3eed41c15481d2ab7f8453af13ee769c6a0af2c0a04b61f74302211e1d201ba91eb73ab2a199c4929b903e91172e4c7256d6b138903a4707f2840952c07f9ed10597d023efabc587d2753b28cb809d678b8306ab50bce2f80b9c5758e8d3bb3be07e7645ee858288eac7072272390dbd2915742ebe44de3e56caa0a9c7ef8d42df94173657a4bcbd183fc3a8ad1764606a8bc98793e240fc5e18f3f86cd082dc4eb11576fd29097ee7109d444aac300dbc930bd1d6d2b7f3c69cc02ccc54a86a627603f3e1f11859efef34bf5d11b16d11f9e5b6e985bbfd3e4e3bdb94a48cc0af7eb6c212c3fd621ea6203a5c2192fe1c25ddafa33ea774da1445191f5bb266683cd150cecbe6e820ce3c8a210bdfe407d203a8d9445c216adf892a0999a026bd8d958589f3a6aefcb5ddacca2285f2dc20ea31f43d6759ed5f46c988587f93d6b90d335bb51c76a3fea6f7513385cb3c1b8087e88dde0cc6ce55e7464e6b0b32e777a4e34416c4ecbe1610658ec0a05550d1dd5cb51b15fc3365f32b948dc28342b2b7ffefe63f4842399d6df28b966510e4aaaf5b5f7e4c470ff065fd30d56d085429f89093a291fd7e516b8e962b0fd2faccb0be3e4c62dcb7e75fa5514f79a07a8f4044cb253074b8085bb925dc8302ad9f7fd0d41e960a55f25f31f4bebe6a04775906b59f124a64f5d55caa55e1b858d1383ac7e4b39fb959cfd61acbf0d64ec6733d15e96137821417829c999ad93fa735f543fc73a94d942384aae4e330cca4a7d694627684267d3a6d74d6c140f84a3e10cf58158ccb3ee9c7ad700b08bdc46698707957e523a81f9e683527bd16ebea1
|
||||
TAG: 9ee21a6ce2424d9ab143ceb318e16819
|
||||
|
||||
KEY: a646ee4b0e0dd43479849864311c3f74
|
||||
NONCE: 3f2a6cf9d0dad34111493f0e
|
||||
IN: 55461aa1daba988af83842804de0707b69bb27ad64f66247eca2701b9e697bd6d3ba32fd30c7948a1782f3d308387b3d66a8da9c412d4e17d8d7c8b3344f33a79e0aa40ac27ac3659eba14e951947fc2f2302953bc766ebbfdc41d1f4c26afe5fb41412aa776608d37d8addd0d7f0c82c61961024579d828aad7fc89493de8002620fc3d638cef981d8a843b658ec3ee27b01da0df91c0874edc83587a70f3dd5d6f7028cff83c107a72c4505ec4623b35ddc5fe3f758434a14685e74976693d8c67ec2f6dbb62f199c7eb3ae344c05b43985f6e5639f6f9bc321bcc436044b8f5b89dce923e85384e16e6eed7ea5f3e49abcc010655a3a29cf9fa60791cf7262671ce0fb2044383944d415a8acee77e88697a96d4af5f7794e1cc8960ec31a8727276ebaaa5fc44b1a240be8679d2d0c8d3ed8d950f8bea0daa64693d4e8e5e5be0567c0d878e4f9a830ab4c6153ebfd5b1019c659c8f456a636dfebd24dfcb7b3d50be807a14440f7aeb52c280b3dedfd7ced9a6ecab35e7b603dd8253a5046e139e2cb9cb5d70ec87f9468915e24847576c1b4a529fbc4f2d84706c1be86b81436ecc4bbe4ec15ced347ccc68744a9275ecc9cc71a62b0f77391e2d37c7f36683d902a0f9ee37df8306427de4ddb01618f62629ad8deab26ede6af11b2409810b4963a1b752c7f6c71acb3c6c2f5f5fda91dd54410ac1637e55e547b25cdf5730ed4aeac8c0fc59a365376d84a35440aa2830cf614bb1012bdb644841e22329bb5798bf971b370dede894cc4f9395a54fe7936381b7281e60767bb2f8a17492ea63063882d29ead140e197d2647656ab981caf919583e869b844e61fe19e94518ce7ee5aec100b9acc2cb8de3dfd5cd3a776ff2f23319721b05e194b6acc9db40b280592e50b8b5d7d43a7065898f5af4ad8afa6d8b6559c81a9e8e923f6548b3f59c8ba30620d22865117e8a9856f66df128d82c7e15dd9f3ab3ccae9d2e30061224c7a606f87f9dc5d40c689cda06e5ae21e47563378b50c1ee7c664bd814c329036858bf9d3abfae22deef8b74d2fe6a566e2aedf8329f42697cd7ae88fbdac408b1b8a6efe377670b244110cce9
|
||||
AD: 7d000237e72e6de6176fec75f5baa6d75d0652ef7d1eb495797993afbb364cd663dba38c266d3721f0c522238bab60a95261445092ea645ebc25b6f2fe177297a0aecfc9fdc621fec0290b266c8ceeb3945376c4f9ad961b97b32b176bc1e806eb2d2e410e8ff7af12ef545493b1a61ab84e634ad86ca15fb9773765ec0271c204fd951621fb8ad69601c06c6ff6d151a156295371f7b207ce6d09ef47d106a9466fda667b7e0e2b9b2ef6caabd297dc82ebf2b03146c988790311ad7f4b8e41c1e04c1b9f40d4e3d8eb611f3ab06d12b97b75d3b490a4fe30b1c565243eb77d24c06b539e3d335b651e95ad957450c027698dcaa3ee3ff43de18fa735ecf7f404352c9406bb8358b9d3e47b7dc4f6a813d4f4f37225baee2c3c028b3974f4c0e8b1f0beff79fb0b04ccc5824b6ef8108bd9ead21729a9a9cb3ba8705bf77ec3c974a34b2d838784b243176b2c6e7a2010a785a96ca2ecec4fe57bf7f6dec0c9b72c52b8c53157d4f9fd259344cd556c637f921170135fbbc86d68af452dc575eebffee445f8f755c1
|
||||
CT: 796320131f438a93c019b4caa40e9f183ab467d30ac181aa5f2a0e07295f1d07946c4f2994a3ed2ad8522d5ef3fcdaf6d58e1eb03f479859b262ca1cb6e950c24b70a5da75b13055022602f39370a48337464ee1100fa9f6a45bbf793226c358fd91ae1b71eefbece73420bfc804a8d6499f044cf250a9c680445aa54639308c10631644ec3367cef458ab24d0dbcea8168563c062af8f282eed1ac778670400c03d30dc4e1a8f3172555ef633adc99b197f16bcdea6c24b2634fc189b8dcd3a52b56b2aa5099c10a830aff238d1bffba89603352946048fb8e9ee72ce2c13e4fb717d83a31ebb67d99049ed49e58d36513fc399f0e05e3693857e00df98707c66c67b87a2a6aa63fa68fc829cc3813f831f06933ed182e103bff8fdb16a6ab5b9ea8f390a2248c9923756f3536f0e699e3af05e7a3483169cb19fbed3f86335a2fc071af6ddcda9c702a584493294d37bfbf1c2d35a3db8b4b905a3f08dc0e691e6d5264446978fa6d85d37bfa0f7c57630afb61e9c67bc130fbadff95cf8d25fdb00e10f4ac451f6780fb763eb5fe9c34abbdfa44e72346a4ba258180c134e9fc5e336e0aed9a0bc7ec3dc22fd0a38b245a512ab7cf0aa888e2b36f02ce8952a0eb69dc28afd70fe9f1bd20b12586d839cd86ea95cb03c8cebb0af0a6d8ca82d6fe853e5664d30db557e28faa695a903e12efb6b6bcaa9c30584121a662ff4a1a6850e9b005dcd194bfc418df2a8919749d8a82fc33ee741ba855caa9f60402bcb9896549ae11131730d7a7bd1011633f759b302cfd8a51afcb29ddd9600927867776e961d8c2a7ce403e1723d11fa92d587c9ceff9f4920bb4ec52ada70ff98d7c1d4b7f84cefba39031f757a86d78c04433b7085a9cbd44ee1cc8c4dc2dec2a938871bf40b2ed113e4234dc5331d536331c5f8552ee39f288028d8d7036d9acf9ff96e385a099a44f51e46cb73a4e9aad3e5b40573018a2023d683f4ee886236d9b3a50edeb69549462a4a496845d08f01e1de332bb2e3d5ab3e9a2adad675fab9eab0205462a097f4ca75bf59363ffa1e2f9dbd2831fa3ccf8b540de72eb613a549129e8d40b8f672b200420afdfb
|
||||
TAG: 7d11d1e35aa29774756505f036a0c857
|
||||
|
||||
KEY: 9c73a26fa433bd4437c1018263e7db4b
|
||||
NONCE: 580a120d1d29775d9d5ced67
|
||||
IN: 10ae2abed148d4008bade4539728768b1ed315de117a81fa0978c1ed9079188454c852652e8ccc4904ccf233458b19d0f17ba6525f3096d369fda3dcc84e092ea1236bb57a8bfbfa9ebde780843bcd967708ea20c61b60a11ac24b808029676a30dda9f5f6cd69aa6d7aa3b08cee0e89456bc4561dfbd751f9abd3ecbc161256a26084e5ae1d94dcd3f74ca30b4ff1857ab9e68cecf2f384da7d271c1d8b167250d901a2272551020c30bb9e9f9a8f9adb299956fb060a17522efb26363393885b4aec2c02b0a8c40835fa058166c7c3013908c1513e4bf9c71671798537cf05c994d2090fc768a12dce93a80d0a4cf1614d0101851ea6f87b528047f07d07ed78cd4e54fdcdd26bb4f83d297c402ab5e328c404118f52bcd5b6f36a18bd3186a19fdc522ec9838eb363818a48ff88651a2359447876d139c6b0b7d35e30dc0a3ebd3132e5e2a0c3916ea7e3667fa266a91d5906d1bfc005f166bd14f298856e85022c8274ef5160f87d989271d2eeff544501635f4f071089e0746027a29d52264520a6ff2f2ede11e8d196c706c8a06d87c5e3679be87b0c36026e38fd53da6bad38f9abefe48b56db84a445f223ee0ceb1fb1b797d2b589dff9b26bbfeaa1b21d662edc6f4e48c8d91025220a9f3e7f1965e0e6f7232e84348190e1b66f918b896e778d58a40c47439b2007b8574cb56a18f72677227f1aa09e36ee41aed2692b28b3244e9f54a7d317b1e5b1e7b7fc59506744a25e5087d273203aaa1dd0b9d627b240e518a866d531a90d4b3c44cc1ed9d9d1350f57e03c3f841017b46a68d6f1f8a6125f4b622a0132e64a85fb47883389dbbe1e3d26eca7ac8676a22b4bc79ad30eacc91b6d06603e916ed87bef76ae3627416af104d2794a7b86b561ef91deb0e3f97e07a37a3ae11073945f75933a5dd66b14aa98e826aa4180bf222a201f5ffd860be8a4b73d3b7353fee03be602e52440c7077fe0afb1dd5f3e823c170a4927c241a09b83e5da81c1fb748452701250896547e34e647470f5af70a23af895d71ba21904e1c6fab41f5af486d448b57eb5a3656089d39ea31ea9fe6c88bc40fba584198cf82944ca5c806d3856240c4336fc1b451f44f31a97a978b3de
|
||||
AD: 874a859c5637b754a4e7c1ddc3f34dd6231ff71f13e6a5b4e182e62331f3ed1d4692e35f6959b17ef4cc7f29859a67b60527aef9d08a333bb51c6e163e016858a4da2103df237e16acb93421859c83ba348faafa3eb31d0addec9c90f61a4382be25a85daf829e5b2751c9b7378cb9e840c92e174b1e9a32f3a5b48bf70b6de1637158a09714b473e1b3e339f9f915d27b310af2fa13c05edf4eb9b114c80ec2677fbde6b5c351b61fc0527c9206357bc1d1de800d8e6dbbd3f97d5b1220006280a42f51b7b4b4c67c56aac1483a5357a7a26528a1ad1ec39e0828117be1c6da36a60a7052f0dbc26846e4bee96a7cb6dd5a3dceb6a11d356e0177be9fca68d0f4b00a8db8afe8441abfd80be2d7d25ac10620dafbd92c0956c2b3ee4da7f3db8d028cd60036f78badd42e0e9767a6c8bf8bc3ed869a9954fb4db389e2f6e44667ec26fec930e6a687e3fbf10686c00539628bf50390fc167b1c31c1bd061e975a60affd238a229a0551214f20bb9e17f097462629d04a9ca6ba98cf3020f1fce170b9ce20440fd25c2cc143018aefa1748f
|
||||
CT: 26e09e3c1c694166c798b8eb3f290e8709de7cacafadef90be45e751ec6f0477f6f72e19bc0343258babd08efb5ff4f82a3aa8e8b50f93c4bed2d1c0bbc07443606487a54f4eae3dd09b3b02232276c8de51b05ac31c64bc960c8d14b953db9e84c05fa9d2c3a286413fadb00f1812ff0a9f49b91de3660fa87e8aa73f11e0bbbecb8ca9be494919631431e29bcadf6883af673149c038a820549883e5d63ec5ddbb5d49817643f29c9665a3b416f67d28c4dbfcfce80132b3e120816c156947a003e36dddf1ac9652f196944c176d6369c25dd136c7880b20e13611dfe52971eafa0055f25cb8969ec688078cc8e7c2395ec27d7d38f0db653b6ab4c987dc9ba33d5cf5d1c05f7fbe19e639ae6baf87792bbd0adb236e4dbf302e93f26ccb2d7a47c8bcacb8f6ca4ed5302a2f461cbb0312d3bff43149a70b8271572797b52bf30cf5ae808b225829e4638fd9f2368021c6205b505406145632a9842ee338a796c435608ad5a92361a19d52b7f8b348d7fa16b3d7775c58e94069aa01bf470338dc28411563e610563ee8a8fc01fff824f63500599a7490f74a59e3ee4612b76871830066c4e3eafcd448822b4c08acf4935f59942bc3cc83e497ee8ad641bf329f6f0d9cf18d40794fe7146987dd6e29c3c862f5252a8767d966e0141b6cf0d166f18b658d8343b698d0a91f5fdba3ac2c32ac24935968959b67f06b985605bff2fc4afc2fb86d6b4e70bb606bc8009f9ab59fe6f6720fdef5f530eede5ee0cc48071fb9d5eb0ac468c820d161a6d09f7d319e3c0da450a9bc6a6bcd37c1f59b3817fc85dbe85ce050d72758f3e01b3e0fe62dd55447b479fb7a09b29122bdeb315589b568ff9a20850b0bfd20f220c05222d784dab107691974e426c83aa12dfdb5693f6c05c423a7c88b72104c0aba00939f9b7d0f92920f8b166512f7ca4d437082011b38fcc3596a125363eb5872722eca03132c8a141227fdf679b8f323ebfe227dded8a2871c1945e0bcfdd8b6c631e293858fa44ea16499144e72797cf82ec32c966c60de4aa921f3b754075a4956c00540cb5800dc97fd0de66936458022ba2498dbee43a99cd8e7c6ca2aadd1f63209d2a24c84a27c13b9d5dff7cd27
|
||||
TAG: 68ef1df2583bc3743bd612442589dc24
|
||||
|
||||
KEY: 6269b478e1d79f3727831086620e79dd
|
||||
NONCE: 357fea1c84ec4de0bf7d6afa
|
||||
IN: 2f702a466807c0d2b8e4c81c402d566a0af16c065941b5f9b689a085ef4980131bb979a0b4300ca32f92d902516c3c9d799220e786d281d64f3a7b5cdc4721b5245444fa9291d4c58f9024387c4c4e4dac5ec5d7542986a2b97619a7db38720f392dc7539fdcc5bde53d2a4809b9223663d8876543a02431eaead9588ef68cc50e707e925f09eb53c7117fb2c8bfd07b578191b3af028d480a6f90fd891e03290d0d180bfa44953ac9388d08dbcdb238790bbe07df067a26acf6621b809a154242496baf4f7a07044c04dc02b5042c5365a71cc5ab9ee82630d97d1ed9b55be1711ac6b1b2a497eb1645c69ad15617a45751807a0e4cad1d0d965988752c65847bff53527bbd087f7d0f1b756563f38bf5905391836ddd47f57d84742c07a8000d4ad3fed2dc91f19e6226e7c3fc260e0ed4b23715cd01bf2c2fa59445d8a695bc759d5328c85db7cc6e2566ed0c5758ba2d12c1d285311208e1d4f66caf32afd1619a46e5296f435ff5bb24dd30d060aa462185b4e05afecb2ad221ce615b6867f5fa46599e0a9f3c03555569f4ed86b73a35db18c622b4089ebf31da474873637e4b97aa71ba883368691ed48f8600098b05cbd218c1d4aee55a0e6ac862518a6602328e5dc9f193b0941797e863d6534de6013555f35ad8c32e9264fdee17e927db412e76f06922b36b4c1f5f0d4b998d9c10dc88f3ac0b8ee01b1a88e0b031562510395b9b5a063ae968fe3f87a3bffa2e55a7aab152c50ea8bd0c61682c0f9c0c186c3dd0287c7c5a8f50c2f0c796ad7afe3fb9b45d90e8d2443291947067f982f070643289a117c404124245273fe17aef4c48c1b9377f54e6ecfb43aafae2fe52eea2f2b8aa4fa5a7412c3380723dc99e63c0455736ceb0fdcf1caf6714937c75de252723a7a1b5c7bc5ab1430a8fc44d78467526be8b722e0a49c54e85b6da58e44ab4db4b7d1bd33e28c1aefa462f17caee6b45a6d5df43478f36ee54b1158399a861124a95cc759fbb5bd4572adcabd5073758e0f40d6e733a87cc9a3653dce1b59936d57beddf6b980bb7cdeabaf58d50eea9ad55dcc7af8369bb9ee8af923d4dba981d25efafc2d2352315e367a98e21c6a4065bd95d14ac24cdaca55fa220b37dbf7d201b289178db041df9c3
|
||||
AD: 0377ed6ab683ea82545de480b5f15d0f948b50dac3b7233676de10bc93f529d5955ac70db7ce9b3f684283275898e74dc028b10623bd0cdaa6ebacc2b0bbb8aaf2e32b4d7d84ced724383443f493ec24948ef43a40bf94c1b97e0036e547eee4c59cc336d4205419d66374ac29cee8b274e1453299611c491f8303d00e0e445337a176f263462d0ea16c297effbc98a0790ace75c3c4965d09a32e38d0ee62c6277131f55abbf9d5c733910eccb8703634720f11429302c772c54ae4e0e2bebde2c251786f67fba677a6d9beba08d3d9436e28ec7d5cf016ba69cf20247ba4443c12ca056d3a11d1065b18a037add77642cb8aedab88117a1bf686b17efb241092ab2a17bc9562247c501479d77d0bb752dc5fbe2a4694d0309e68b885a434bbf2aa87ee6e97aa8fc715d9667977a75b37a42a1f4f27096887498ce460301d9ed2a32146a2000b1878654c85b5ebf2828161e3828e87319b838647f9973b860c6ce9f43cca21933ed4526fbcbe38d0169f60a85f9d84ad662b62bcb1088ffe9350382ba8c2748c79fd76bbf863f9a60b971fb6fa9446a3d0340473
|
||||
CT: 096e0130b0e57de1c25d51c748ac53ab8eb5f834ca5efcbfb9f9f950393a6bdc9475bc98a224ea22fefa19fb1d9dd5cb06f0bbcc266c78f169dcde51a7864c5a5c5996175b511dd11c6faee4f7afce3c499bea2188dd443c654486ac5a1b4d113e38cc5c2bd730c3ed87696caa6feef8f466a3323679fde56da63048433d78321388125a9a59d8728c40485299fb0a8012dccecfeabbb7a0343d03fcd770c1b5ff13116ba845b90c715403b5b7588094dd554cdcc1a166ed872c75a7719c83e71b9703ee90e4909e18822d5d2e64a851bdc30b2915371903d6748b89af3da42d041d4752fa1b1947ee12c5106404bb6a7a3d47629841da3ca1652666fe15b9ac2ebeba651baed43e6991139f90cd7ad9abbdc89222086da0b9ca7f4e7838fdea61fb815c534a878d7cccae9fc07aba48ba6fa7bd3a3b448e99267eaff2834a2db3084f28685052d2973eb7c74bb319a232eb0e1bef7d2827081310aaf1368656f7c64b1ab1ef3d4197b350154e18595aba352dfcbb7c0187d8ce67a78cdef6af01b3cc7f0f76d8a9de741c87823f1e6e734dc60cae88078e233e4e8a525148a56572d67ddfbbeb9409ac01076b84d9998e2d10ed62e2288f440f5b54fd7a5a1812bca2ffb9319e56b674ea4804ba0f6d92d7aa7a5e1a9f403c3c6fa8dca86ca4149f2d0348150395ffdd382698d0efb7421fe0ef930b5522ffbf122149a5ccb8bb6c3bcaaf935d839b9b820e0f199043105cebb966a6a4e588a99d20d89c61166c257cd6bfa545f0af914416f8fdd53cffc1d99b27b6c3160205c8b71af69cb398b5cf8f72154f612ee0778fca187a574babfcb6a9dd61624f8d6ae247b7c15be83d6cedad267f847a63f58e4ed7136de31126ba114e5bb94e932e3a10be4da821f091ac27b0c3c73d7fa6215bc5b85bf8227f10dc99706644f11c3a0d5ae282477513304c2cbdc1b5dfc6d6314da4b20eaa43a784fb8435c0be578c409291866073c31bb6a210b587ac009ccfc9fcd342e07854fb664b6cab7506d5248f8377314e5fd6dd17ed871ceb5336a5ff7137aa45d211b06a4cb0170ed25838ba8fc1041f516a127c245ccfbed4ccbbff11c0bd557551f86dea82db1f01ab97b9b19a6cf94e405834161421ef056d96f3482b2bda2e
|
||||
TAG: 143dbbcbbcb66c7ef3ac9e730360669d
|
||||
|
||||
KEY: 58cdc99ac30e78d6238b5478982a2b4c
|
||||
NONCE: e58537a34e5ebc37ea72f321
|
||||
IN: f9e466031515c45461e66cc0550ac1b38ebd92d448d0745fb0be37eabb926f61facdc5bf3ae52caa0f923bd73c43a22b89902c0a4c43e12364d0286f328e125b8f5c9229fd955b5ccfbbc672275051df701e981e3208cdf832af70fb02325844120b5fc82f4f8981ed70989d78c69ab0ff75ab96c1ed69919859822ff20ab698e25f855cab4f01174c4feacd3b94003fdb1479150f0a9ed35de9dabe3b7c24a56685aafc396fddc9e6f1b35955b485c61f2659039b7254173364a57bc80418e2f6b7ae28dc8cc5402098b79c28806d135ad3d5a5d0503f32338334c9f6e63f29c61000ffa87668239ee2e1b0cd654c78d610509c5b83610b1fa85cec31a533fb329cbf0c543bed9ca26b97df5bb12ef4e6d252dbd955a2693d4903878b569bac70c4562712ee16a7da269d6bba8dd57b54246598e50453f47788a2038e206b4e34ccfd275c6f5f1de5687fce97d5707d8b697278a3e7c1f07ccfb11f23b343c5d8c7c08b1122b36f3286decc760474b6a27646f432e740420981b480ecc2e50bcec71691da9ff95d4351c1637f5348c5fabce63137ba3c82b93e7a187619ce9c2aef21b0e696becb4539fd581481c35255090bcd08de83c0c4d35065208f2d4c0efb7903757d5408d49703dc5e8c94cdb9623741468ec982231849c1423bfa1dfcaf6633afb5997b3353cb42c7e8f99906331322da4c579a43d663ad4f7bf9d9d7bd7c54b65273f08a76181fec9b20fa5b4dab9ef00e0f6660446140d3b07226976843998e94a69e1cfdeec41d7fbf1c1fb576ab99ccedc4f2fbd6d6bcf6227f8a93916c859b37ded15cb9bdd13d399a51784da099dab63a4c0ba22d27aae6177372c05c1e5a833f459caeceb28743db88fd2807f605f7448d9220b79e56a312f06994a0132e43bd47b82e0e858e8d2773a7a518746b094df8a6cc851e6ed7b98ea657188c6936fb4bf0911ccd09a67ae539626b4573e0da5a64a75b0cbc995aa664f4cef75baf574e03cb7b1cd4efb301974fa1270be36a64f55f19890bd21824fd44099c384b45903d5a85fbc785c2bf10542eeccd3ff9004a157396a126516049e26f579e32e51c1e9d8ce32dfefa3e2558f6706d31757161b9c17c8f8365b9ac257071132f8c05cf95b6b8d9b650328b561a08728a8903631efb21a94e7bee60d132
|
||||
AD: 7840ceed28a572c5186f25462a64b5a93aa35c427594bb5a77d6fd2d8c40d614f5e0bb495a909f3fa2323c248c94715fa52017a2d51c866e81aacf2efd74f40b7457fdf93af32c1211e675a08eb4330f6e24c35f626da6692bd9a13bb18c42e6b2f5c978c431d25be0f38352cdfb5933e9581834c33b70b590fbbe3122a9076e619142e8c698c78f532ad369447843c58df0cb105f8f35d4ed7909ff94a3a2b0ec99be03c29c33372a1b9d8a6ec7c38ddcf4dde9bdcf8f0d63064a5072195002b953b16d2228e71af3938f5402c24e4f34e344c26624519898e0ed1f20980e36bf568b33e332887610d8da5a941a7a1bd8b8fa8795014ffc9688a53b4b9a60f527ce4a737e99624e600de8cefacc246473c9641a1166d6894d71b9552ef3342cd0a7e3b0b65df836c6d8786f34c851ac4c72dadca8e9753a4e6a14deba129f4e442a13e3c82d405f84e281b95afe2cb066a2f49c126ecf9fa440d6f9860fd450f7cdbf5c2fbcb5aa2023755bba1705de94305e5b304af4ae8bbc937c6f477d421f5d72784f9b3c331a1f850c4201c6459270c6271b8bdf00f23389acc7bf4082e7453c9c
|
||||
CT: 9662e1becc3ba86c8edcfb3ee94d3ccf2cd37f7aa1988bd4cb374cb5f3cf4373cbda8c71832fcced0531c35d035fe6de0f0086740a62b07e81b3a0f98fd89f22243a4e2e81263c3d4846a3e54977ce7617702e43adf44783e279b174591fd1fb231f2d5e460a866568c867c8e762716959fdada879c77b7aa613ff15ddae4727cb3a2abf192fb74cd6b1eb5b632953422cae683ec87d6eb69a57c2021232181e8f74883355447643d9fdbf23b00f7ce602bcb1ac3144387610e045049c7cb1bf1babfc18b21ee05da3173bf2a0d8833698e7b3ba5e72996f6dc43db0228c81ce3f1c644090b922bfd72dfc81b60a8378cecd2ce14b9a53a16867476e08bb99f0708477e1c6af6d262f543ba4b3cd5f3309940fb31691b9e50ed2f3159afbe8f3c95a8447af98a76ddf5a531939232273c669231091f15e8f819183d8d13624bbfd6cfb9bf781bc74a9b4ad631de4694e8db879e38508a3b3e26158ae3a897ef6c9ecdc5f64d870964f1d0bd924f2e919e4a3c7ff5beabf589ca4be4093b2a95eddca2f7e09a02d639ba872060d7db147476cc83153f7a5227a1ef58f08dcdf9f821110512424c7e84d62931a73010576f898974cf24f9361d1abb0ea3e84c79925c87544cb11140481fad00dd75581526c0b9d49d74a05398e58d8e94c6c86976dfba9d00440c2bc61aa2de1cb9569bb9c4226c05cf31ecbd4854c2ccc99c1ed9f31a270c0ac57bd43e6c5194f8b2efe49d34095baab0bfe8c3c372b9bb77b974deafa462b08f9e05e027c3ad53a24206eeb5bd4973cad46c0a8157c47ed9ab9d6b0abc571223d4e3c34675f89dc0374da151e2dd6e4dda27479499910a7836a4b638dd32ef7ab1c5712db101aea462c6ea2447f39d38efbf64794c466165723063eec9566f874cff9d6d2e96e51f5c6e0f7349bf4e667e4b3bde503a412a165c8d1381d7024772a273911ddc4186a7c1e9818519d9935cb22452468938fa0321c1bdad488dfa0601680e06404b0533ef7a8bdd0c00fea49fda059f2deb7504fcbf980e13d6c67b0bc3960ede0fde107fc571304a87fb19ceab00ec6cf4e0087b5365e8d43cb08c256de2300b565474076826f381182e6d2e0e9d77be0bcf58ca80f4faa685435604637cd6fc65366dc46d92ca0fb569a5a9b6440e089cd1d8522b20a42
|
||||
TAG: 6def2aab9f94f8ceed77295e25f81309
|
||||
|
||||
KEY: 283d86e8371cf7b34cc9988005575c8e
|
||||
NONCE: 98ad34184dac039f04f84e5e
|
||||
IN: 8ffea351a3e1a51221abcabf06f7aeb97525b07dd8cdc21b71c97132f3f6f41e5e01c97955f4d67793e8f1cc5910a264efa8384696969680de914bd1acc9c7e9a278ccadcf8c6a49877acf2ea3f7e5066285672bca4dca1583e0a60b82b18fa564c5a7b08a2a0dccb9170602c9f7cfef98024267553955cfea077cb646f2b564caf529a5b34b83d8a16f30e2ff3905106e224444287f3ef98a9e12cf2e3e04a7a42ca30e6116834c169f0778cfad274d43d969dc100b9e1a810346d8ab715670fac2e647829bf3b56f2b7e26bbf025e74a3e9af4930e182205fc09e9fdf1a2ea0da9aa5cdc21a41d191b8fc189ee5ba00a744acb351cd869cebac760b315e60756112bd20239203ace94bc29b232ac9cb361e5b7aea891b5827869112cde2b0e2493fc0c88fa72e92532ff7ba77d5ffa865e47893a7452f0a4b44092caf70e02d344447b7dfede0aeffda018f898a8872c6ce3102ebca9e933fcaf22b5c855f620b240c31acdabfb7fbf109d2e9604b465abf43d64b6a010ab928722119625bc046c4489a95628612995957c75510d896ad2365603e6682558c185eec6749c983be4ae29a8a66728cb39eb5e95e7f7a459bae5cab7e75c587689a223f2533c28d44134b87f22e964e73c030782c8ac4ecb2a62e3890d0d96116a4a3d3aa340783e10a46d099d601a8ece1938a640c1d12b88ca4ff89f1ecc75f46a736b7a4143b671f3fc531b5cb08c3ee7c02e606097b0191605d9ca3099c6707c590c678c8ed7a3471aea52fefc7f56a736cb6675e004298903b43a357c28ea4f59ae0894a8ee0876f347682403eb4d45881e04258eefa1cae28f5a646e3f91cc08a935cd464f7edc1721f5b4e389f94d141ca4231573886c40b7df4e5779fc52daff710ce9cd40fb4dd32e92250592199696a13e742ce90aa6280275ee8c0eaf40c884bd846697c43fcd7221cba4f98b03a6584f4792e8bc16c2029cee9b4e80c5f1c91eb798345b10def038cef2f1246fd148cfd2e39042228726cb18029b2e38e570611aa75c72e6cdd5110a7ed6f5e5bcf1d1ca5e1b67462b36cebebcf6e21df8168177afcd1a31a9e498bf7da8586717ca491292b0df81bdeea3a1789bfe70b489b1d4e1ce52dff5cb7e71c009d6888b152c644b959036b0667e8a6471d9f4eb559d0fa3854fa6f80288a03ac298a31f69168eceb6fa8434
|
||||
AD: 73cea023d2c6afdb625b6411ff8fdd9cf47bae5c529c6022638e9bf385cac0b72a046efe306c3463df27276fd63c88b771f84cc9a8bd3be7ea05df941502d7a437ef4a3ea22b2e4ab8509904f352b83cc3865c489bddc6340bba4f2b4c382744467a3ce3896bfa9a0a6a4f8d6beba39613df508c29b074f9f68e8723f2c2fe02a5dcf68965227059e2b1dd75bbe2b80f963cf501d5c73663204490fb843a3793c585769ee10b764077b70654dcc7b9b3fbe7f4b146ca8c6b8e164774ac3421fc2969445f77b77cf63ff50f04e2439895121f1b9c4941b7cadf3a92101cd9d4ec6a07d70d2742e6b3b87981e992c549691a82e250c0fab11bdc287ec357f182a6c2244db8b39a0cae9cccfd1fb32de73901ba3e695574477c37b66d170ecf64130df3cd94049bf9b3cb388907f3dd9389c71c344058b30091eee2fe06f6be3eb7ab6b7e269d2f33431a51d30a39ea8b280571565701dc1c048f07f4b5f9e04a8dc4555e28919acfca9caf597a394120794b6a09aedf866271998401397a4e8e11a25a061878f624f78c321bbe8149bb60887735fb3c0d96dd7f022cef066afda0ec9cf4e41a82c4beb6cb29715e
|
||||
CT: e8df4f21bb8d95211c75b194c30b1f3816715a063b202f8db645da8b826fb45e9af541ca9cbdc7c383d4b5179707f6665f8b2a74c5026243c3c5d9c32e6d309892323440ac0d945875c2665a60be211981d5dcf46a211a4e7b58e0062dc43b87ad3a9c52751f649c2fec404b9f858f4cb3ac9b534c850a8994f26136eb70e90ac44f623aa3bd362069d32a85c65292455946df893376868cfe3b06ef638e56c7defb9b4f0a162bdc8aed6a023836ecc08ed826ae9b818f3db6501ebbf3035159b6341ae703512a8fb8fc3ac0140c3ccfb1ced1ea4b7ff545ef63f76010acd708778d0424b770ffd36f2ddb6009ce5dcc498a9bb8eaec3fbbefc39da3da2f7f07470d051837398160c1c85ac695a519358feb3af9274fd3f6b1d936eb400e0bc5ffcf44ee9c78c730e4f449a008dcc912b6f9fd5d17f5d6dac025be318d5aae77b8858c1effcade42dd360e13b13f35baa64d37535a0ec8cd3a73d0c175be0246da3722db1b64f750c51d6e8da7db1ba8891fb688294124c989cf7d14108ab90a968f0729b6d7c6cc777e470e946b0fdc7b6dabfc6dd7be52b51ba1849cfce2ef2ca70c4a51523a1b0410e8a1a8e1cbfe7f1eb3fe456da81b4de6fb15ae13a39fb5b1c2b4aa9857543c3fb240965578f6b27ab7c69f74af7ec068e8c9238dd4848bf2345ab153730dfa9d1f57060e3e5f88a351f83cc78bab6149bc093ce2b29c706cbf85d35ad1c036d2103c89f1401f4f383d9345759a7be3f72da2eeab56564d98e2514d99192d82ba37ff5ef49a8770712c41e74c08227e3a2f9b516904ecc23c8368e3b46133094121209d57be76dbfee3ea7dc3240bbf1bace4369b09ed97a9080a3dfd93887152d1c03aa267ddbd97568b0538879c8970a62a4cb016e7e80b47bb21645d6a57f9ddb080551a9ca9cdd4fd0cc575bdeaa013150a8a04d05f3ccd19ab0979c9fda569e362f6bdd4b67268a88d88d0fcb9d68c47a0df0bb64048baa0554cf2b0cb4c27bfc0ce8d4a35113aa30ba03f88c73695a5d6c3495b5a15ba407ad75bab597a46170594beb34b7966d6bc7dc4ec2611cc15dd60c475c7d7b1f0922931d00dc93bce697dd4a4f72066d64b1aba029129d3a26c5ed44d19df383802733ca71de86e0a2f8d0ab04307d1a8da7c6f3dbe509fe29935bfc2c09712cd35c229e495ab3b80a447a168d044d163ae
|
||||
TAG: 05b8694f3ab53f8a0763d0c0a1c5a64a
|
||||
|
||||
KEY: 6611562d15bc2b910f4edcc981c457c0
|
||||
NONCE: c20bd2710668b59242f7547d
|
||||
IN: 2202864ae65d2cafe5775f3025eda387030e910075e3664006c28969808975b9a72c905c86415833a1d1d86b8297aab682420a036208839f9e811a6a68b5bfcd01c7310e4b05f5f77ba1dc08f18e57a2044b20ce84acba0450b9b8ddb378d0135f779b1286948985ddf57a7954cc1f21252a06270ae34adb052c124787ed72511f4dde5ab0a708df4b307a9cd392160ce24119be4eef4af0025ca4047b07593293fc17889932588fbb67e72382f8ae826eb9f0e4b866f683814adb2407353c851f64475da9f740f71ccd7176d3d970d8618febf5ade20dcf51918e8a08e57cc4c4278565f6c2780c68e43970968ad018f3d04fa375aaaa5cf10f1cf11cf203ab299fc270ac41a19929f831beb3a3221a429059dbd4a00bcf55768a9f89fb35c8c911698edcf59ba3c2398801401e0e0949dbf587509d9bbfcce3a8bf5023bd751811d25de25693a43f14b01011d6030fc0d3017bdf8be8c84a7c088e0c09048b88cf0ec74181eb904b91919947c57933e5e5ed9b46550c951113e8e2a0e06efe5fd5b4d182e33738ffd16f571cb126cadf79dbab4f307e86eed9d3e2f3edda6b76234b7b80f7dd2815963274fb85d776bce13fbc60f1db9199c3e1158815c15b4d1858dc66053fdd4c128397972cb9ec05c87d16f53ce5bddede8ee959b5af5f8955b9cc11a26e53b9b42855cd11b570ae35d85e1877264c949e27c6ca797f77c0e5afa40d0f2a08881820b88f85bcc59edd24963771e9357f66f874c11a684f7987d876412f3cdbd7b9b3a26008d551732d9964deaef66cf4692507fde97239f15e2caf990f59a62693d0e723a50286e20cd347e6b98774805615100f599f6f85a5370af468b41633b85cdd8bcc7236296c50a530bd238ca0ce520e8a29f8ebbe27760eefa1ec14f91d6b751b30bf67cdc762486550793b4663dc38f378bc36eaaf157ed6846641a7fdd07ea45fb1342fe04d700ccb0bc9acda5eb00fbfb4aa3540fd675364c0f8f119df2de15ec2a816e76248c11b9c3e7769f98ee8d4cba3a525168e187df2f548a940e097805d735109d8ccb6119fc366caa17cb46be148d406a770a24067cc9c8c40bca0b544458b47d0ce451e4a4eb9c23716666a965ff26287823a699739e5a6ea844cbb5dbc111473d88d611b906fdbf51e86c5a90a68f97e334b7b8c13178f9678888cf894bbae601f4d3869d6fe444db9b35aed803549b72fa399
|
||||
AD: 26a47e0b75a771783631e6ba553a0aaeedb236216bff95050ad4b259ed60c071e1db318c1df201f2eefd8e73d66aae5835fe869503783504d803ad07f2989abec14a443e3e935684336a437c83d0c95ce9759d995e2cc454706d24b810fee5e32f4120aab927911f7bf11a7d0f2150b1ca4ce7f216403f3a7d622887675278a748d2523af6305c9979deac0da24f4397f57f38c8a860413d6ab4581d48e70b4113aa1a963b3a97b4c4a599be2afebab197e5e41d148b65ad2488af0fb9cdc59222a52ebe6a0ada339bd8b8c0195fba21d46c12d57eb7b98ba85fc494863645b0b32d9b8b4391436e887f6b481d849c2c5f6afe5496626c267a3982daba9af1a16400cf81bad5c1398d605308427340118734e476d808338de39e08549482a24729190041a303f61c4928ffd7a3bb2b46c92aab059c8ac1dc4affe52c6e2d3d55ce623716855934e80d3d401bf4532505c21ac85b738797d08d69e424e521b479f407c7822e5e408247251538a6c31bcc7fa0484dd8a40ad34f0fb66666e143193c9cad455012c3345953ef63b13b3b2469322b7094e8140487c76761733025bac8d71c3f406b0cebc28c499bddaa34ee6c03a82a52e4
|
||||
CT: 57d4e97b3ec3681ea9dd4fc9ad0aac302b477f081ea56e613c53b9cb9cc467a2042657905b7a5b308bbff6803d33c1e4671d126ecbbcf6739842ec4d552d377dcd25b9089d96d284118ebafd0cf8fc097c35124d900cd69a2fc1f97fe3cb69c6648aa069eec68893ef2d4d8820ffae86677fcaefc50b64c4b53c9f591a0f6a3320afc569b6eb7637e5ca07c2aabc26f85521837f0e3a6435ef5cf9d2ccf4edecc5e0984601f88023f6199456e965457e638c1d6ea87f5041d10c187eaf4dbcd0cbd6e6ecd6043629819af18635caaefe6b0535d8fbacb59a00f4c0bfa8711d32131003a051eabc95c0e7119e0ba819022cd01590edcfaa7543dfd2809768b1e03ba070db5f1cf726d425a6f623d83c454c78118a6dc32ee47528979f6d478a58ee75bedc95e9e74fcbb96fae77353e6f9c8be5727250748627d3187f9408eb131efd62a90a19bb2b19b3b3a478518e49d98609116bdb9b7de7777c8f0bbfdb2d1a9c4788d81fcb548ed51d1be85a603c1744792163bd18aac3d7f20e97e32f806e7a049d3f51384e324055bfd57c5116e48007077e295e0f3d3edbc6f4be1b08d42533327ae6c7464cc45ed184912c1624caec44a0958fbdab3a2a9eb13a6e6e4ac98e40979f4ae4fd7a8560b623bfcc326435df878d643f394d177013f737fbd4971f734876d515a4f2c71fee5a36a632c93095674310a60809240fe03d7c1584a446d536fb6316c9354bd007a4de1b12e155ea6216790ab5694268081f0df280f6402373a50e2d2da82d7399ab88fc9020109e93716fd3b7d83b14bac73e37a60ea805aabc557774c26c3ff906d5946514e222747fe6962500f90765702fa16d7490d9255d74dcc2c097dfac75e9f7f8c090f4d8e8cdcf4449bf5f7d45988f363e4751ffc24cca95d120714c2db59277837ea38e3b385d7d3811bc4fb755e6cd29919654bf3dea7bbe3375bef1a20cc55170ff514522886fa4716d6f99bfbe5801d1f93ce5bf82fee322e54ae1a2342659dbbdea49ff1b20274ce3dd2220945e5142f3152b4c9fc88dec89762b773ea1c87643ebf52b6f6f5f26bc1b8fbd459ef011033f3611646b50ed0b43bcfe2716dc780b8b5757d199e26657aa870fb149bd3f44db61f07a2692ab06ad8e30d40e8f6eaf4daf6a637c38a9e415b73b0bec06eba1a7e5b34d141244eaac717339b6ab052286bfc083ddbfd4ed0a70942bdf73f81b08ac
|
||||
TAG: a7bf4e198482bf1ddb65779e97c2fd2e
|
||||
|
||||
KEY: 8a7302e5e5e5a3f660bd83aedbf1e2a8
|
||||
NONCE: 8ca05db202082d8a59d11b14
|
||||
IN: f6accb8d8d24709709210cea12a34265c3ce7efd84dc8ca309f44016d13ff653f253d33d180cdeeaab7370808e1b8b9138172fd96dac39588ceda91c4208a3707f90f2f336a2cdc1ff3fa7aabf010776833fcfe43c3bf19e9a480495064ad435d3072ce131283d38937301b29d0a063c3bf04ad6664f063462aaa39f1123a010d6f20487a6b12ea1500abfb655a21a4b3eccea51368722f105f94f642765e7765e71199ec5b59c2db6eca6ba9d6150c2e7efb8635493d19953f9485c7e49f24efd2c68d18b1302da88d8bdd26fc7eb6a1abdea09907c02bcd80fd1da76800f18673f88922ddc6eb0740bca0b70f7d1e6ffcaf017421322c2945b155f582cac5d6ae6d4e5411ab895b953a2eadc3224c4dfa1d8f9fa592c123c2d5e1d449c92276dc21711b101bd40865822bb622dd90d6c66becaea70fe9f914032ffa17dbbe16c0681c9359a9b156314618f887486974951cedc90dfe9c04aa845d3f4b4dbb60b2e3271c456487045133c240b9c415124dcbb57671374eb27625e2697021c71f5f51237def9d88fc2181b6bac76eeeaec365ce443fcee15650150e57f92116bf9c3b52f03b09fe4827b876bfa3c3d7b84afd90972dcabaa971b625fe750cc04188436bc374689249454a4e54a70f2f8adc56af2be48217575460fad76faa4ed3b74f1cb6d3fdf8ca28723057c75ff1e8a74f9da266e9c594fb6c921b9995c926bca308124494c868fa6739f4a6ac663db6312ae34ef43ba21a122deef296cd77452843649ed67a99103e1aa77aa23a3e41ddce3b9fc80e13b1875f31eab3f75f89ded007be22d438d4564fdbced99cd49b372b81b49914595d1ac5d531b0dfc38c6ee18206e44d1c1e25fbc1c027a152ebcd22a6f909178fead243083b4f885ac2af83863c0ad73921098519b56c81e29dbabb7647818aad5a8bd0e09793d6aee040bc9cecccb7e69712e5317ab75a68085ffa0411f82e385377bf1486d5d61dd543ffb20758d3f9bf04a5f97131079ee01a13878ef0c7f466e8f91e9bdea970eccd28d552f8a5f110fec1ff3749e282cd45c1caa6d06e8c426bc28b2a5797407f885b176534ada9720f0d8ff65d40b4f4589bbec0a1620172941e5f0f42d44283358f2cbd0a4abebeb346d01178f46be79a1551e0dfe1dfcaa0c305cf5daef3090c2321dafb6de0481c00df6937590165bb817fa26696ef7a8128ca03a7eb4a199edccfd4bc1d653ea8501d1f9f9dd6c92252e2eebc2
|
||||
AD: 343a402e3efdf91f7d63416068044d204c941276faa61238721f7049662f3721f8d04c908cbb612fbfed2b050efdd69e018be0f463c3e089a063d7b5d9a2ac4eb3bf63599597e714c917c004804a689b2c2ec187b73a38d60d9edb3be9f99d3b452813a3fcad782ccad3bb63c89d4abd18450f61bc94314d9395415503724791a22d1af865d3d5f5296411b6d54bdc0e7ae878447228b2f21cc7ad624a69d56a3694e1a383e7049ab75bdd479ab122d2a50e595fe370041e8a5d9e28dc3b266bcc40b9d54cda53d4049b62feced54620ae0d6cc3c74de3a5bad614f1d8d0c6a74674c9071b8c0b96352c774c034ed7fdc3b8790c43e6b7be8c227fc2b78a381215d97bfa3274e3b52187fbbdf68efee0aa66d2f2da263a0dde580ff19cdeb2c29a6392502f589ca7739e8f8f585791a3f77c1968bed4a713fc5b94e8d3c6830c19291f9cd846ecca2bc05bf262aac54bc45409c2a064c3de28e79831c32f5ec4bcce979b885c9facb99d0c54484154d545ae67d4afaeb545b5aa5541dd0af3416381cbe075cceb49820ad0d52f68c31875169c126b6b1047d63fea674a0420ac808e2ac64adbb8412f8d03a6a5cea014c835b57267cc4ceeb10191df466423
|
||||
CT: 18e79588195948d25b9beea1b2d1f990e7b87368d4af8c88e6f928f375d98bff2ce973c1e5ac525e1f08fe6e7c29a976181cb5a2a0cf40e3bb24881bcc5391f9c129daeb6c85c5cd8bc1f47f9f92bd25f4b5fb474f7c0b49828dbace32f5f9bfd968cf3871cc4072252f5b600d88a857b4c86c85ace62e56aade90109a118e9813e984dd3027fa4ff6162421e3abd22eb6246c1f9328d85ea7004ea3259fa355031c660c0880893705aa7d672996107fd46c7e6f7ea2d455fd8183a40d41ccb0d50ba627b483f8ec6fc3713010a73dd52053e033a26e5a0daf7bfe3fce8858e63e18ef1201644dc0cea8e723a24e7558ee33e904a0489c3daceac911d2aa83a63f893aa6516f343aec8a9e46c869b38f10d4ba7c4875ad3b092be565669ccdf8370ffaf7c1efddc33f67e5751668f3d75b619369c863c7d3f24b052a46af2fe66a9dea52e2c36dcdc7ed8093d0244179ab7af3c73942e63827e4b301cbc0bc2c1bec14d690e8af1f5c72270f71693d0fd9c065d9267be22d647728d39737761fc46b0a01f98b5a304325ea8967f6983dcfdf9ae87c224fc71bd9a1aec353b28208786124269dd56519e4b0cb058975ebc9803e35cf6d38824b93c78db05f2fd2797af1acbef3c2a74737e15f9d2c8f3b8e6e964043ef53f4ae5a58825fcfb1b525e38ba542836090c5a663a370e9762c89893028572b08fb0005529d44936763486307267e4095a05ea8895de7c20965974b20784c57a175dc71ea738121b24e96e3ff1e7d583894324e17207bd0a72b0baa89987b6884c6133bb3320c35ea3033dbb7051f89000977f055f3a7f1c38ddd0808ce5eccf615532f1fa4fcedf772bc7423209b3eb98de47371b382c72fd8aae5005f42a31126e14317703083b5f83dbe9d61778e221da54899e81f936a9973f0f5cc6aad85aa831071959b307278d085fc830cc6085f5701879aef6736df39a6555fe3546779284f618860924fb02567bda44dc97a4f1277e40171218fd1569ddaf68c4f58697232abcdfa6cde9bf44dc39b0a3e000dc89c7cf8298a5576a57c7047f2103a1dc31ce8267d879d15c41f23addf662f8fa49661669edc1ec06ab426591b406def208ca2854210e9647d9ea5d4bca84c5a687e9f3238fbd7288774f72d947e85ee26094ddbeaca7e135379f678a13aa866a14fd4e9d63de6d33f01e9a668bc3e4a238b9920df22db04ebd5447857422dbc16200144fd306062f605bf9138f817
|
||||
TAG: 0b8c9441aae6ac2cea3cbb71a0ac7683
|
||||
|
||||
KEY: 44f4f7c9ef9a5fae05c10b2e7ac41afd
|
||||
NONCE: 55e84c213e1d5f58f4c7aae4
|
||||
IN: f0b16170b11b798e138354821fae367a2c17638f1c7d96e343014410c4b4c47a620f79624dd7f3a8de28fccfa365ea904e2aa625a7f3453bdcc990c5bb2d6b0b972bf3349e15497d71349e495c1116f2dfd9adcba45b1a4473566d8eefb1b68054aa7274d4e0ee81f8e61be7adf3c0409176f0b566d8631425835d1f4dba59e7c0d14bbec2ba93c6413fcbc3649b8886cfa6efdd27b8187f1912d17776c7508a54999718de52351352194a81b2b0cd83a5d16348f2e39f22d833985882cd9fd27c1ace4f75a28bc48ac2da52dddfcc4fe428e3f46908d68accd60a17f65e678fa55537afd06fbabddd56ea1574b50d93dc76d56b04e05629e2bc98021ef9107ed8770ae00f1ff294f57edb583b4b361bcc6afe3c545c14adf343f2d019a283e9ecee5505ce2c70206924d63c8b574c798ae0970547c1114f2f82af5a6bd4c1a33c9cb49fb126117d06a63375ff67f7091e6128eebb98cd43a698e3f441e80203262b47c82a65d9d35826794b6f647badcbfff169c53fb70c151dd0c57234dc522d47b4b8470652a86ac09b7dbc44ce8a90a0a2a9fce1b70c1a54cdf59015b89de2331253f682257a0db5c6ed9e12ed5a54101524647847ad87fa961ca6276eb05a355fb14a77735c930fa47cc66887bb687b20c7518dbd9af90e13cfe622e9b0036979b9cd9336da11e88a189ac81581e7d85c2fb1fe3aeb32629e23deb168db993fadaa37b1fec1224188d4f50ee3b8f9ab567b8baf1e3a3d8bf807edba9045338ca14d26fcbabbe7d8a5a1ac02d7c407c17a541fb41004f199262ffd72c3d0deea8296a08af1fd7506e7b72f18a7d322e4116021bfd44dfdd4f6dff5b772ee32f49e098445e68b3a2cb58832d20486d5aeee424752b237d46f1cf8194f7a46459767d1a104f6d35a9616eb47208b8894d998a51519d514b689ac3ca19fdb1efabd1dd33cd4298ae4d0ff819e78480ab7867b2f4868db26c9604323edd258c4f6c977fc4d1398e3ba6300c37a9a13838ea9c5eb18ee193c3566ddf3853fffc0ac665cb952bf76cd2d35106b934f5f8da9aa6672e8f9559777ca7a56592fa536e8cb7be5821961e740483563e6ae2de1b98749752314cebc390beebd4d269f0deb0ca3156bfbf6973da50b8e4dc4eb2a03ee0bfe73f21b3b0f2716a4662a71e8cb04ab44f52ac930eef1895b57151175727f81fa074a8e5366d5b7449185e4829f32487920261a84a5458cde6565e41daec0b05d1e46a6a34858d546eea8258a399ed89a5168b8e6
|
||||
AD: c75f25ac1087b315ab57ea5e8e39f743a826b70e584c4bfb2bec961b6769e2b92151cc1a0d8bfc27a9d5d9c7b43c51019418bb19fa882e53fa0f59d6761ff7ca75cf098f613086f9403a8a66b07bd1fde46c5316403de21d4f839a2e67bfecc2f3bc9c8f28b455f0fdb75f28a18852e6e44184e5c104a2dd2e21f429b46004a595ee8e2b008c2e0c31c12a05bb9de15011003d43c342330f5852bd3ebfb7bc4adec6fd7e3d77c1534e0eec7e2fade24d89fe42dd9d8b5bff5ad4f5f8f010ec0903b42048e8ba6f4b9274c6364d0119c718e6d038ed716b21b7f2297317e3869767a2b841505ae4aea6dca5e2b2813868faabd7a299061148f69b0ccaf4a555cb728b562bed9f66fc8d60be4c48c60504afadb1593078c36d54bc878a6a981ef283bab6f4ef6128f78a594b3caa6774a8e6246ca32e84a95ea5774b7c76599e1cf25b68210c2c52f465e3ecbcb91d609f211c12a737936d84551ceb0eaf37f92152f6e93918f4a19bfd09f16518004897d9f0728e9c1bc901fa85f8fcf77bc59c2f96ada344fb9a20890b74520a99e9241d9091742def14a46c524e2c494aa57c1dbafb8feec5d71247a6ac10db9ee768bd2f7cfe1f6da9fca9aab42da2b8e0db
|
||||
CT: 4e009626a3c4e6ee3a4b55ba06416193a63584551b8d4ed1e88f2b83f549129f329780515703fd0ef24a1039ade05d2dc4a25eb47a3e134579bfd6087b5c0feb9aa9d82e89706658eb54170c992411875bbe176dd0d25c06c2e58cee97e5444a1328b927a3616c32bae60cd8a28a58c35f7aeafc891ae5285759b24fa4b2cb59aa4263a864b89f14316181a5b8e654408eaf85f87b71ac0d14fa023a12cf4c18bbbbed4c0dcd5a93669183a56e3947b9cb72019cdc810af9df3ea68ce836f8a2a80074de9e8e444ac0e7982e0c029926c3ae96fa84711ee5c42ac6528648664deed439d7d7de9c6b207d9ad0f434c59f69690ee14b21c9e1827fd873d51cd2e377fac049d8d59219945de18e262f389709a291fcbcc491b2146ee372882efc0b48fb47c767bf0709cd5450c79948c2f35d1ac0c92ecdf9c338c1d80e5a7e7c9a2cabc78edc331fab75feaeb2e91be109bad562f2d7262be42fcb5bdad42736b9c94a1d5bb2f2d0a3e347b565ff59325a67bf074874639270ee8ea7260bbb7ffb018b88cb61c0f4b476111a6f317dfd7d0f8b9347227b9a260474a448abe10ca0a9615b2eb1708d07b3157f0cb641768ef759512b9d52c86b49925720335ab843db61b9a020cf95afadfd48bc739966d7b13148cd1bd426914700486568dfc1942c6bfcaec6eb4a47ff1531f4a3efdc57ef5c6945f009851925acc31551afad8dbde7d349e43101043af62aafaeb5cf67b6642c9c928a6feb55390a49e019af97b137375245794d794d72a2657f0400954676212428a10c8b75d9d0d64b0d23dec4c7efe5ba1e599f4ef051a050943ba517cf6b6ec438aea973509d1919b903cbcf551f4f2e328cba5b55dd9a5d03eb9e471d63e5ac422c47941d9fd7a27d00c6779ca609ba3dd58c0412e7e4b0740ac9064a6ed4d024918debd342acd03c7be1a6e7c49fea94f0069b19c363095b9ec9b7fbafeae5ff1fa68ae47db3641dd98b7a6d921843707f1795e610198df9b86ea45efdb5ba3fcd37737a06881300733a0a4f1558d562577dcefa0a9e76d17fb3d80385b442f1c07a381bbda05b5854c9c76c10d2c4ffe6e8c808309474ec30d88632a794be4e7002ab9d16eac7e5155b3944089bd482009722150e0e06ed0ec3df814b5fa516bfa019f3064b78ee714a03608167374ab4a290bccc10c76b247086c31f9b4de06d001fcc7158fba4569b71b6774a46a3c1f7f80d00ea315433156fa587ae49204be74d06a949e60867b3d5d38c93eabc1fbf
|
||||
TAG: a6f01e3b9b29802f017892ef0080642e
|
||||
|
||||
KEY: c3e4bd36e2de49d855196d82175ac395
|
||||
NONCE: 16571d209cd5a8579b05fbb0
|
||||
IN: bee133dc3379bf7894511cf88ca955f3ba1f794ed7abb0771d9d319b4f4db940963fdab1e831ae6d5c6daa96c44f3c2ce6fe2772d665a212d3203a593f412a557613d4e465b5eef977a2b62490e28aafdb716e7be6d040f731409c54e4bb38989349d842984116baf0502d21c910ac86e3046e6753b9f8771fec297eba18ed382b17fb1ef0eb20052d36080ae162e9b8dcf67e7e3d2add03d752f612b94ebf4c5b0f242a39acb092e32fd044b8e9ddc6abd0d10985c3b25ca4c9ba476d4fa55766f416d5d1cca614bd1d153432ce59e82a3a86b6fe830e1c0f9e64dbdcbe0457ce90464dbe56d2cf66a7eb6f43760e04a784466dbf7b153b2b96439db92180103df8f4fabb5734bfd661bf8faef2b400102229a9895fbeb1f89e6da6c82b5201055264fed0089eec72892c10fb2ffb4928cfa8df0d2c6680a5299899d521d43972ab8ddd613e074d60fd27a061ff821e8c410cc6a019cc0279f602582b752df3877915fbf14de225bdc2ab1fb177fa1724883b523faabe7e7da1d697f081447c406ee8a2c1a9f23cfcdba8fc0be440f2aae9f6fa5c35c54e7003254734947fb7e1abe7f8040289307d31bd6fe8e862a2d9dd3febe9073e1a183a740755059b92b0e8d8a66f5904f1470d3b04d98ed4a62b90245767507e54ca11afcd113960568c916381caf4c963c1d8e9aa4c7ea0ea5aff12af63caa8a5e1f128e70f3c1387b50757e43ebd3e7ef2de43809f781cd733193daa2eaa5dfa0c8b161e9e4480d92df163c2619b571f42ebd706d48a6693d4a5071733544d2d4fc771d7fd97941f83c920673f0b8d82dff24402a14ae971000c5c8747b9a10d32d622b2b1c3aac7cf9804be165d3d8c46d2b69bbd059bfcbc1f23dcac4bf5eb5fa92dc93a7f3b2199cee31bf2c0414fa2ffef1ea34ef109cf4e171460aec158118e3bb3a0a8a18ba60e48f890add45f3fd3193a47611baa3abd36f1069ad52ea464c10f5cb49ba753e43f9a0d1d9bb038e8d450c41491cb350be288aa2f95a479ea3868a4ce1f3265e186fb6c4f54e57f285576c6f700d9cf035d296d4519c6e31693f5e0b6437383c77bb2d235c0d5404a82515115cd260cabef6f2f020bfd20d2ee21566def190d0a6a76bfa14874565f99738fb0863054b4f0c3624b68447358da5bc47f195bb468703da3ead51cf02ea001c57608ca98328068212406b9f3821e98b7481860dc5d9533f2afb7f74b9144363e6f54032c98345399a0547e21cf8509a0214ff0e5cb956130d03617e50f59e300a0ef211b4150e3e040d46d24
|
||||
AD: 29ff2b38d4e35a3c0035f9d3eb509dcce14170381d68de8fb8f0d6463a2cd293ce08c958e186031a942315977a1ec5ff66e47bec07bfdaacf844fd2c4fa939c5a8b1f3fb489f25ca7b10d87a7cb6d5ff299a57a1b8c6c78b429dae9e9b1c1cec8e14cc3bc2119df31d75e9e5e3df7b368cf4a6ec4b324500d428ddfda32e2f330fe089494502251392e554599451e4ffca96fcfa6ccbcb50828840c98266a10de53f0f8bbdbe21dee0861224aac7713d8a93979043d1550895e06e1848565f5f6bcfac2faa3eb21b423215cb39564b8138b00a15be5392ef1ff451da000186d9807c48a98e2ec6b7e045a139902b920c5ce782b111b8bd44596a7ac8f468a6b718cb7679d5d420f28510505a52004c412e6489f586d302939f3e007e320a0de6cf9d4ad38cdc3c852907cf7a1a083117bdf3e1bc4300befa1180f4c019faa73bf31c43bea814990cdd01b17b167f21b5de9541aecf6bead4bdcaca96fa390aaf6850a54a4293ac4460de361b3d58d5eadeecc6b5dfb57a36215d03c85a4805ee8af03df7627d42479357724349343862c960061c33abf5a9a8dbc2d562f3738f2ce34d68340707da09f78ba191e230521c0ff28c3c285075832c00e326c842296e6a4ac56946f42483
|
||||
CT: 9debc22195c3c01c571b369ac186ea10068cf99ae63fcc98c40ec69b3a04503c783cde85be74648786d5a7fe51c74f821992c0a0cdae23f4ed7318a42a6230f7c31045faeb40e880046d6e6bec6857a1e618fb360363872047781c05c38ddd8363c923762e4591f6a906d47e6d74ce365d36e41a3a6efe6e9dcba165a0c081fda577c01eafb1f83d116270c5e467dc7346647b9c0bb1e3b1da43b9cfd5a0f4cb0d3deaab5f3fe8401665fcfe742e686de8c050e8fdf7f594ee4b6c74ed0b210d92ef26e45da5a390f9290643a77b57af4800b25eb4f3ecd45e5eae5aa0dd37097bf24dfc0d1b7315d1787356e84e819de3e099f6bcdd3a269b2001d1da51681f14069ce8375d2f6b543e6fe0e9ceef03119ad96683ac884ca852fb0f88d41102f275d5040bd7f237a123d7a7b7d186d77b2a64b54568b11e70be4cd22324fcb072bd6f59d2a1da48a720feca38f8c164b9f6fc187c0a7bef39e4243aeb8c5d87d460dd9288e3de113250738faa5e82b2b4e672fce93f5294f81716aa8a5fcd43565db4b580ed18e41577fe2bf2c62518c1d4d4c324ae26a65a4bab6e5edfbb98a8eca18b34206705bfb7377c06dce7fed8e76b17c0cd2f061a77900d970594d36bcb15a92d2a09d54806d031c98942cecc0ed7f72c92df73b14740e661de31fdcfbc36f8fc89164b7614c505ce3b909376e827c857cf2b0ef3df86683aadad3112ba20126b36c5bc2c121737fbbbaa14165d511d50612c8d3946c5fd8e1a257a5c7f684dbd3b160d849b7172f4648c935c08d38733792a171cf20ed4b2bcaf98e39d09675b5918e5fe12b4e2be36e4b8463bfe708669c1d01a625d4f572e9f30a5c88d05494711e673c3d23b1003e94d4a75b9477395e8a16944ef0a1726d0388fdbbbed94faa5e78deb16ec471ed75d92772a4e437fa49af393ceaff5606aca86769c860864f62eb9c5801eae1d1fdc79654ed09f2b858718c48f05968a7a09b834c1ab0f31231795d0efe8394b3302fc0f75ac9e7c18e21abbaf6054f7442dd235451d3b884cfa25f6b7018fb18c2bfd5bb0e6d0075c2eb4f9002e30fc7d420268bad52dd916be28663a8ea3b2a0bbe653256314acebec85c7e5d2c1c163b0a15aba1cb8da585c83016d4c3f1c0aed13c20a9539438eef3a426565cd8040b2918d154e689d871a55f19b505ff94f3042b3e7466e21585800952004906abb3d13414134008c7ce1def619eea9cb22f3a44ba7070035d4cfc1d5bffa9e31b6390b4d1da2c76bf687b9bdf899fd23ce6921fa93a47e4156a514
|
||||
TAG: 232db78e53f788a11aac05af1041dfc0
|
||||
|
||||
KEY: 64f49aea2a19ccab66841c438df5ff78
|
||||
NONCE: 34ccad859bfdd89fa9af0b99
|
||||
IN: 214eddb37dbfdefd2a3127354843f6b545f729391e0d19089255c9e0aa9bc0da87d001445c7d80393d1885f759fa8211231a50d1840e7d145899937ea7af1a3b963493fecd40448383706a33337ded7c51b4fc118a1ac975a4071f26a9a30a0976f369ae3a9724b05cbe75fedf84fd1bb6e77e07a76ceca71d5c035e61181c50e2dc976fbc64e1f4f9e6e12856bd3597b475f0b6a94e559477599a51bef1fb3a45106fcf0ca0468117274ee4e3f3f489e3a4ff9f6279e18c38928a00976464431227ade20b45c509675619ccedb4f0b24c2ffefd72b3fdbb3ccfffc26da5945a3906c8824d17a930633f8208d6d1564d5a69c4887812d91ebfd18d482470220a338de30b9cd7945a93460ffaaf686a31621c86b4620bd24776a54db32bed6809270ee19460c34bfe99c7fd18c5d7e9616efb6a156d4b28a0823df5a858a096ec388e2fde49a2c8c071fea73a23dc4dfddf751d100fdc57e346c9e690d2ab620a0dab87e3c1fc02f5f727eec6a1853067e7bec923dfb3c988c3e8f108adf1ddcb9b8804e7f3e9fc8191d059af53c95836314f0c933676044b85dbb950c953603589762c10fd76dfe2b301986468b3f65415badfa5d1f0c0816c6376b96c76c847741396adfed41fc14ff53c3d1745b70ce64f18fc2fe2ca445a7fba83780e265b390c4058856bf8befb36437abcdc25a758e77e0fc90971fab13c77d76751e19280e43851e7d39aaa0aed21bc32f7aaf25756111cd6ddc6b6f9b8d15acb4a25493f247b5bf134b2bcc2e5c2f91c78bad248357f18fb3278811e045a59170c9f0ed7f58707ea78c42e69a912a8321238ee63eb079aadf9030c4f718decddee4077183a2e5bf59a2a1eba07b8c4ec35cf9fa3a37a5c332a14c3711198f2bc9bc686b5dc6d3d7b6de1a8ab00b1fefeb107157f85aa8974c04edf757974a757090f4cadabe2283a29b317a831d8ae999173f07be4b4f665eaaa26093fcdda81fee6e170ed09f2944fd40f9f3ef47b406db52a55cc9350e78364e64220c9741f8e41745bfc1be8c6244c57f15b1912e55c6711ebaecbdae4c08c70768bda7750f142cdda19b298607e75688eaa8fa8f47f7746ab67442da283b1b9b9d12ddff796306cd690c0c32615007ee840844c7da285fdf56f004de5b7965450d48fc97a2cd2b774993a2bb28868fb241b051341a727fc12778baf3869fabd208aa3c55f81c247554d11eb5d847123a6ad3b177dd6ef950ef4371a6c0c294ecaab63beff193aa751ab480ec6e78bc1358c72bbae8fd8dc84038806efbfbca520a9bf9ea1df8ac365a0a95a9865ab3b3556
|
||||
AD: ad8da691b07926db63a9d188d3f237aec1f8558702b0942b209f7e6096b79154d2eb844b05dea8c81bd041962e0c9e8d1c64cadc5a46c2d8768f57ffc27a1d5003776acfb5f51d372510d26eca840dddc3fe79e9414bb76aabe249c7f89a43050b85dc6b5b9e13aebaa98aed4cd0816685b20619fd22c860317b1ffec8f7e78c36224bb3922208dc25d23f023139fafb2264f9546bf57767d3117b483807cc5a1e0fc2c691f3891f54897b46c01b6f55f4bcb86af20764bdb9c7631faa5aaccd555e68a86a9491fa87718d5a9112e4ee3c2364b5f339efbae59db73eace1dffe4439a64d1baee99e6aa0fe380cf686aef739a456ad66dcd149ba8ff6767e54b1a3cc645b245c2b2ab3607334af0cbd8847c3931b02acf12209ea79af189fd9c6c01871650a009274762d07a4ca60fb9a31adf4c877c73d0819f4a97c0cad91ea5bd7d5c8ef59b35f2b24060fd8c6b4afee8c4758034aac99519757ffeb6fcbe40b2783f4aedffc9d0da49f3f98dc25a66f2c6695b864bc40c2fd5511c7fe681d98304be4c3e9bd7289c9caaf6282f7c5c7ee4efab267d7d746673049ff79ccd7bd019ba994417e22a67f856310d8abad147ce68fea094e52969f9738ed6cf9cc9eaad35612400b622da255c9758d42f52dfc
|
||||
CT: 2873303a8c1b9d3230e38c46f680a7ba273e654fee766beb451f311b3192f16a385ff3c70f124e20f6ebba3bcc288ecaddb2243d3c707b0cf50d09d3c89e67d2a2beebd0ca0be6efebf9dfc519f5149e7c4f0c5fa8ef05cac1d2246f2616c179b4cdb02bfe3d7f394d885dd30f429da8041cbe79fc35dea5d90b903ec27cd09861422d3f185b887ce5e1b1d42d77c254fa003f90d62d980ddb63593e8700a20eb0b7bd930d38ae937ec326116f0b9983c69c322589e79778707856eac07ec42f3497767860d4e072ed28a79e263297896797ace5d32595c8b039ea3684b763a297b30eda2a63e178a713a03ebed0e0bb54c3eeaf41d8940edd2e448533a0258036e41211c835ebde50e9b7fef5c189834dc89cb7aa566c40ec7265c068aa50939e9976d1dfc4cddeb630a4a1f78a9134e10be1868ecd92628d3f8d827f432123dabeb9f45ba4576ae932ed42c6447a7b9f3c9b252719735898c76db75ee8f0fa655fa023cc33fb1ac8974774ce6f23409cfa7a4e936b57b0beffbc6895731a450eed1b4cc795813bb5517997037169af20da701d42d0c9b169e4155a92b4ecee3df6ca6c4a22474c01fc0aad8866e5fc33a8b3ec5a002ada29dd4d284ccd8141e4180df300eed91ab9063bf331cb476d6bbad14fd7b6ec10a3e72833595579d134a642cc556b4e9613499627f0af51f6b22c0f963e4063838809510bcfb801880e455d7b4df9db1841cc2168d659d1997a251368f1c15673ce127033602bd0fd9988eb1bd63e47e8ea863bfce945cd077e486dafa43c7f5e35232c0ee1d00d040dcda1ded51a06ecea68ac635a8faa35361f32d19586450e7a7b7ab1a8861d9f0f4d9508cd2df522dcf04a00ef2dab9ad5ce9dfcd6b018d0f072e9a17cdfbf3772d38da7b799feef2b6bf7cb4f8cfa53a49cbbda15128a17e77f8f7b4d14e64e358a11cd01d5d2137d8719f8b9f66ecb62d97faa3d2f56ba50bf4b9a28bc896c36260748d803fef6e5a6d6f24a00550ed66a2ce672b8d1daa10097c88f81669d09da72a5e62b29494681b7d2389063605e1de349a83ef50b8d57c024b2d558d206a73e49ca7fccf2b1ca685156e63bb591125910e9f72ab2e8d3ed50883ef0bf6d6571cea0f5acaa11e393d15607373f25fc340b9ed6b58322187d6c8fe4ec47666e1ca34526992e7056cc7567397e7ba0c26e1a049eecc356158827f3867171b4c77d408aa24c51513b0dcade9fe2bdf6ec856d4a44112fce5b4c55300c24aa2e9cb7d289744562dd44afa68dc2f14dd25c65d3af78d4bbb781aad5f9fa05367e02327b644563dbd992
|
||||
TAG: cebb4182450367713b8f5b047314d8c6
|
||||
|
||||
KEY: d12cbb53bab8c9884eb83f1d2dec7fae
|
||||
NONCE: cbb6af3402bf462f965e2c22
|
||||
IN: 81c74421411edd762ea8b7b6bc4a44132c51c2db09f47a03ad2a1a17d73ad2a395e6762cb077a8be977f3925ec333dd56ecda27d4d228b1832196da7755e48517fa0582abad802b62cf231e0a2748b61855970912e1fe92435efcbaf5fe34ff2c0f90113966704701337ec6c0434fe2c36e3300a4387cd0514ee01e31628b9879fc666284150489282c1083079f8abde0a2e500737dad91b3a7c4ec1f4eac35dcacf971283825a37b65464e7a8fd66e2ee6721d4a118854f674edf89d376c0006fea01d278b7985237e78965f0987404efcc6576d1fb28db9f7fc1eeaa6b42949e11dbb0c137d501ff08b34f0dabb7edb6900c48e647ea0cdfb4c4ef3178548a592ae28eb119f1dc7b2f6dbabfa2ee4cd7b7b117f1f90af318e121084cd6b93ace98ee7750dabda5ce2b883f582e7c5d91ad42e7ea1fe8454a5da83a169c32d73a4c1c185a02275b4ba921b071ace5fd34a2076b226d71c229d8be6c58270a3ddb04a554e4d395df00604dba7882d89d9048b3e16c692e636c724580da376f8212a6b9c443ec303fa70cbb1994d12a1574bd93b946c1a005df40a3722fe2c2e7fdf51ce2b895c6cf07d893a41a33a6906af87af0abf948bae5ad258e80a0fc0afbcd770a8a32c90e0949a1151e20e81cbd163b7d1ed843008c813ec3bf44d363e37ec41c094458ab8f7457339a51810fad8d63611ec1a93282c301eadcb4bcfe4d0b370d6f8670516cbeaf9b361c92252d14e062bfe2e63b439c7d4b1d65dc8a62263374d718831fcb4bdcc0bc59a18530f7dffbecc96bffae9e0214ea7f2a319e5c07dc0c8232e7863df7d081a3486a1378240a9966a632c5e73fe4800481c4f430126c4b5ec71963c08d471e01b6296b64a593cf78f108d2ee866af38028e3a4571f5582207706932019646a1476115cad80d0b20695c84131e11cb9689a6bfc40f820e96bdb151adacfe447f06516dabb2f766b8ff5619a15efed41650211e4f4e114ba0b071ae0a6b635bf0e1cdaff2a2a1517e7427f8f1c25ad5d7cbdcb433987a25a2962130299f1de3b68503fed81c3c98dd774402bd83809367ceff45958e7627ee8dabf50f6ff6aae34a8c7ce471c705255099f602c2792468b5e8527b74948f4871ad5296c5c50b8d4ccb6ff8c2f44917baa7b70aed81302624fc405d3c550791ceadd2aef796a0db59c01a5496ad0b72f7a90ebb1eb2fbb2cd8d8f09a2fae46937f27a7a9c3cca3360b08143043d378c450de9676a94ea5b9371cff1fa3b067069393331324c7d283bdd750ca521cade6526c970a82fffd925ff945be16639864e4189c3269838d3268264b1aa58697121394f11a1b
|
||||
AD: 1d9caf4e3eb2d855d51392454b7f4f2b6f29f422d111cc378262c986e3117e81f6eb6340323427389ba2d174f4edcf5de47be0b3fa820783b8dcd35f18451f8256d6f703bc16e666367c93f8db0be18c98d4e93dd6db2f4eef2447cbde251fa226ef4b6c4183d06cd1090e46cee182743c1573b3fc885e9da0262d715dec1d66954ef49c3a7d54f935156a51cbb1b837229eb5619658db860835fa5c926e0b87c9ac50ac76fa6696e149127aed1b91bb623d232da5df30b9ef43b4ed018f59a803b995748e941adb785535d69b8eb9e4ebad17c4e2bfbe6d2706eaf90e29867133b4a58c3e42cb51b494dcb197dd55862ca0f274883686b1e492b35cc20e2cc6e531c15bea94af9040702513d7d929195ca34266c38ca79f3f5b0c06a1002bf40770fc223be269945e56f11a608276bc4b82cc228248ab46acafe801d330c28039f7614e59cae505931ae9fa387768c2fd9ffd537a0704fb30aef78b1be4aaaa6f7574da1274d3e84dab83297acd00885acfd32300a36d0e8e5ad2777e4c0f718f91564c60ff117e17a8c57d2a8310fb1fc62729720728f2991b4d05317537883f016711e07ae1b3e6d876d52a44bd246c427587fb91d1456711ef0c7970eaa33db3347397cb76b95713919c73188ce13a6a292d798844067c0302
|
||||
CT: 7f22ef21a372702a9fead4339e38ecfa2abe757d8ff986e7287a479a864bc1012d4621203289c8731b189937d50fd6ee79db7ee84a157acbe801bb56e1225dabf13a25b26703ec364f98fac1243ab4a4cada7080a4acb8509969ed8a2e9f309e7e465c43f55d2dc829e2ecd63b8eeb6bb01a621f86b4cd32c9c243c200670e0d9bf71b221de296e3364ca2ed5c73751b74db151176626a69010f136a32a14d47612488f90750316ea7088578bcb84805d331c77d3041af756f2ebfcc4c95c328ab03cd3424f689e410706df8b2e87ffbe24f8025c1ce48e2ff6a0a240f23b09a0378155c2fab57db5d8c0daa296b813ad148e94c8d627715cd2fe8f861e414b3c7f482eaa5ae1eefc6ff86ee30109e27bd75557d70598d7c65bf9bffbecf44a44339b09ffb88a722fd8c19f196b9822ae79cb66fa1c712cbef821d996fec59f5a95c197f70fd34db9e2349a372f43bec0dea764fcd71ff931d34fcdc8d9c9321e6d8984211db1c1987032ad85e1b03519f433ef9db8811fcb24940a320697c739136a77f66e97332b75b33b9097cfa9e224b262c19053ca32afa76a96524861a8aceaa98771efab10c0665533619befac9bca499ad88c9d0f089a7026583e132ccf3a542adffd56996331ded9917d363659562a6b7e45231667b8b3069f327d829489279058b9b89bb7902c1127d7e8d150634b580274b47354edcde999922654def16ed4378f313115f4013d8ffadbde1c8f8c918ff7257175f14ead903c03d5190aeedb2dc9e762e34b3f80d7ee460bbd14ae9c3182660608f033ea073548956b72275f74f704a349a87edb015e6154fba7c0ef4a32a4dc206dc42d5d261ecae22a9f455c409304131859477435b30ba3fad46bd5f69971ba74f1fe82a6d5604e5d7eeae0dc8ff5a170865134c5fbac13bf6cd007a16af86c42dcc887b90664ee5e48edffea8ba46fd84c844cbade00906c36d84373178369fcfb9226654233d2c5339099ae4e723a0c0516742e42e3c40994bd06086e6f030acef01727e7f600f7109000bddbdbba16b9543174c98810d5ef0c95598ededb7ab628323faef1ea4028c0ca414a7cc33239c84de86d53a242b4e8c3f9a20e3a826f0ade00c440b2f792b946a97758a073fbc811f3e22de8acfc9ef1b1a946f6c3cf9eaf4add2ba403941b446686d9bc0524590e2bef8f552dd54d9f69053f647ff0e2371b244d15cf1a5302680ece820df552b374bcd23f784a9c4bd486a71fcdaaf3812efa5a39366542b163294da6a2887796b6d863529dfe76ad88e2b47931de5194a63b9f07f6ec63081c3f97e9c0379c5f44e7496dd23b4c186e3613fdf0d
|
||||
TAG: dcb7fd2d779be6e82ba1ad90bc79ca3f
|
||||
|
||||
KEY: b243593177cd099dbacd5f8efb412a95
|
||||
NONCE: 132b8ab31815dfb463451fbf
|
||||
IN: f63388d8dc46c29d2c1fd937c668025c833d7d96b021035d530fc404e1c6a3677b8a318c9a81e295c12c88fba75f1e17973732275846ed9103287714236edd60bd9cda0d4cd2695234bc69cd09e1b4db3cc73461e524e0934ab0cbd730a46a67b3614ff4973bb8643ac7d555a8b764bcf87f0bcc8d19cc9ddd3fe27a376b5a6affbc95cc6ba966f8ca697c5727dd3f942c4a3b6215c00bf37c50bc95b1e35dc762d8db2f0f5d30d9b35ddf005d8a89d2b106fa4e921ead057158c3fce0bf1e6e10085619777bbcb643b5fd86b9b39c1f11a68cce6115d2db8c01e6746c81da9dbea30559b1bbc2457c258955f2d37862fc492b4f590fdb8cf648707b17a2b613c5f08dc457a1443bd56399e34254c92b91093ea0208a98189429147771d1bc49296a070e052af3fa195f612fd2487eb49ded95f2c670b3ef23464684f12ae66f02d886ba14a360a852b9b84f9b5590a514701fbe42299b54b9e8c1e7b83c7ace9badd9beeb0f88707b79da375aa7c2eb9623c7a1c553c521a9c7a6a3e73f0d7cae3f95362d25f6ba2313a505a90442012f58f6d9cc55563a1e1026cc1ef0e69c119dcc4577eb775f5d1dd60cd60ff5b35dce6eedee48f80d33227f6354a128f9cff56fe1340067c9eb20e24e143b9881f8d646947b121df798b4917bc19a76e96babe9554d9617b4f092471baab93ea7ebcd8a05cb2d267be93b4dadb29d4ca937238910180ae497ab4c7c4b234661293c8cf7f2b6ed3e0a738ca8ba0b558fb24ccebdf3b3e9714e6d7b50c847b72ed81e3893bdca85bf46767335b41d68b62961f3304003247ed25b15e3e54d6942d35fa24b7320355d4e8e038ddcc295bbd6ef3b24e9332a710dd7ef673d3cddce10f683d0ba14dea984f61ecd580a684f3bc97cd50e14b86fcb2024367ea4e21a8d01f1aa6993a458bcbf1279fb45ec4510a9295b20e82cad0c79a5f61356509be41525bc938fbfa09306a94610fb9b9c8bae1e051bd6fc6533b8b47bcee4a9b81b492e1295c25ca91b9b5898487e468d64d275f52a6700fed0d7b593234b3e0010480e12fd8f5d7999c1b8b05c7b9dde7bada3cc6926095a8fa8747da64db55ebb3efa167b7663f1cb5883593955a2252586f942c8aa3a1e12ecbcc73e1aa5831c00e5e211c7461120f84d4482033a238b80016d71e51dc297043f67877102f69d7bbdacd03c1896bc24cffb24d4529aa7d8d4d5e5ad3a990a36e1fc84c7f8e91fdf2119a36f5b521125976ac9ede1d1b74e3a31a9428cc36c94e6b3a34ca1ddafda11ab46cb4501dfe4b58cdf384576d651b9aac532fdb97a8841d0bf58207131e0c55361d7f87aa4c8eca24c999b7a74ec23f9fdcacdf99a3852e9ca
|
||||
AD: 9516be08987911d111d30398b1d730d6c7d0bbfcac487e9a810a9a17ebf0bde09b3dd7a9a430a3bbfe41b3b3a146fd7960870b1b28db45111c71c6c9ba731de849382d679ac46be434e2e95fef2b04ccaf21afa763bbc15e23ff44aaff7ee793941a8954e42917f759ffb0745c34e9cd324e9c527b6560e52007e46ce0d46aa8165a0e6885e96ff7d6d84d186b313cf7b726213bf9c3fcc3535be589d336f84925fabe762d14ad033dff5b7f39f5948f5f939bc345c4db77d9cea9cce1220ccfac396d1e4201780f8d37c6167600a17c18cccbec04f605d86dcbc3125dc3cf5b40039c3dec4355beeffd72ff221a4de57f0aef322369c1755468b5748541049f3f1d790adbb460d78cbf5e3d2787d5921f598f3d9a92ac289b58c46edbe1c64a6cb2a796aeb17259a2569af4c19bd69da1018352b63b2b3a901bbf0c754ed3b0609227644fffa7a997762aae36ffcd700089d74cf3b9ec2f5c9a3908ace5a7048c90ed8d775a88693742f5738cf2a791e67ec747e31a1387f0c0da3a77b28b720bebeb7a9f6e76d0454f79225514a9d0d8e488a7cced170b4b89b1b39091bb470832e3d3fcd144fe86c661ed6d290c4e73fda61c708004561dc71493c9dd4a66134308577fb7cce84891458e2dc4581603898bcf74cf5da7cb1f3590ff570ec6e559d6f0
|
||||
CT: 3497d7dab267c401f6754a95b885561c8dbce6c1bdeb8c6877810d6e77afe8e2071ee088890dfa18d8b4de635ebd88188bd1ff3539c7da99905bc955e64fbac216a0776d6ee45169e9959f4aebc6ef987f7d5fefe73aadfc2c6da56155d53b795df61504680886b9ea8bc59558160d9d63e2dec0c5d7795073c04b6191c725d5a881f71cd049b9ba42333f1082ab9733fef2230cfed44c7d827a7e6a8cb07ea58cd8ce96baf00df43ac95e35eb585ba99165b9cc6649b306c3399da8a03134dd45a1b9f1e4ab3aa0399c577104316af55587d5eeb0348271d2467b920a083b4bef6a21033f8428ea816718880da3c29f4332b19030d4270d20a4271169f179df4dcb07e15db1b3d4acb2d9cc9ac90e9877ddc09ee0bdc202e9fe23a844be123fc5b08068c9a6428988de1f2f26f06beaa020f725c072c842c97fa8069d944f80518ad2276cb4aabfea20db3256d35f9533d70c6723e5696cc159127ca671db02bcda89aa17dbf47c33eb863923c0a88f3bba8f79bdfb6eb2d15fcfa9acb68018d4d33417585299e92fe3e4a131dfd123a4edb72c988796c6dec3169cba26ac712cbcd92abc4e1f327f05838abf03bcfdb218d56e2d795eab3d08d5beba1b3492e72626d86b9990e777ffd91ccb30f99713d89d0532a032bf12192a1ac2368dda2c131febae2c11bffd83311fce6d20521e92d458a285fb548ef27158e593f306d99f2e5e521522192037e94aaab02713e3242bb412b362508ff0d4823ca0ff6190c71e31f4ff06f40f8d467182ad43848ee8b8c39280d535c7cde50571f40c366d97f5de703b808aacb5a7369df763518424137d42c59d91fdd365d025f1a747b95eba9f0ff580926891e39ffa2943e28e4cb3981d2cc62e9b975048df0d0708bb7067a67bf1ef6d03692fc5501bb09d562ea9ff3078e454227ae4d6084d21e08cf6c147b205d74fa81b72c1684f60923bc024c072608ea21ce48fa46c41495761d68744953c87c6e064b33d8d43135e43fd5f67322a1d2d9ab0e07e9f8862d6d252197a4fba914aaf4092a4d499a5996d40f143b8f3eae95a5a64b23a17495834e3246f3d0a06756d80bdfee94f2c03c8e5ce0043e9094465f6a3307f8b6f098edd85f863d2de3867b644fb0ff335b83d26958c88960f9913ca3159b61391fb67dd6770321a6971e1fff607c9ab6a2765f4795f53fb8aeb26944f728dc6f66de97136b50d722affbe78e59f00cdeda54e23f46647d024f384ca01f46a39e660df4cf9a2576fa353c7b243c401b429262b14112866fad6e802ad42fa2e509ddeb1ddc70d24e4eff5f7e94b4e9772cfb52b88d81272462087a446b770db1aeeddcf81cf9075b419acf4a3c3cc
|
||||
TAG: a4b1933381318aee1af76925720ffbdb
|
||||
|
||||
KEY: 5d44b6e557031ed28b60f3a9e73293d0
|
||||
NONCE: 3f57c9c636ff9336cee08635
|
||||
IN: 8c15ae3d5af075f8d9ecb494b00aff1dbe9703c80bb669b522a00cfb1c400598c6b494b40c87041a99d461017ef4381d3db7df5a017564ca988018c4f36282213de60c841944b6d213d8fe2015cd535184b1619866106c39a09f71a70f78f2cb8fff2f377d87390eb31b73db093000006239a8a3494a563618af189ab3af3556050b68c4abf48cf4d02013f9ed69b52d8c6bfd5188a56f4699b03f60f218539a1638c9890c7a77f5bb18d7c4ffe27314461a29c91526cff0f713a9be95b608a2ff36783474cc9db1454df62fc7efe08ca97418d982d74555c0c15fa671f99fa73559ff54ebd092756e7d9477ffdf2de14e1c9d4900fe401d1fead7fde27cd37d016cdc56464f76193af1c252d4efd60f6f3c0644ccd1ac67d968140ae08db759aa7af205563d4402927cb791f8cd845777043b975ddb1ebc66be4333b7b60293952368767aab30e1a52e1691a35f684c8587bdacc8b374963c1864619ff4a204753b44860f595ecfb275dd0b94153a065f3cc3235a7525921d16684524794cf45a9902364c80ba5649b90c1b42ecf2f17c4e3b7a888c6a2cb30240c6baec3170b309714aae3005846a19c6292e5b7d2772af24f14bd7f6cc7eb89e0489400b4c18b9372aeacd92918e4b2d11165f2de062de882f42ee7c4b5ed2fa54f66d0b4dae63db4d9a777b404b1befa704a48a3be7b8511fe716f77c890fea23fdd05a9d4a57eb0f130d7383a023ec6668e6714f84337dce5f8a9f46b9ba17480288fe89752961c6e7cd6d32d435c5930d5228be9aa002f01f0ddc79bde0abd76e4294563d5410c81c56644620a002a7facc871ee7b5fc73ed03ae0cd253439688cac4e6147fff75fad37ddd52971895702dc280273b8e7e99f8d1e93a2712bd9a6515c9b1dffcf7800ec13e08cc732a15ed3c51ab8177b3b1b1dc25e387ee2d0a69d7e2f7f77555bdd75a75400bee511dc5c30aa7eca46b05c9af4e94adee1c0bd84085af86a85a15e81d607ffcd6f7670bc11705b46e43b6beea7e1eba5804e24229185b15fc1fcafaa7de15ab336fa2ba7d94852f20de7543b4acb4e75f523863649578527752050bebaba444fe6b57c0304cc4820f0034f66b778d907264e5b8c8c0357648875dea1506c00413109ff2f25d9f1c3aea724a5b7f39ea1b08b9329c07dd8b0efa2e0e6fbf3f04708b833c2e14b6f5400b4b3d6463bc256e42c8a427f7a0d8b71aee9825169b9613dcbcf7cc364a87ba64e60501bb01d8f55eb5141ed945666f69b536662705d12f3839c45917ab7c932b8609a97ebbdf042fafda951753abc765002ae60eb1c9dcb2f95175ddae0d5b344a78b60c327676e4ca2ac1ab5333899dedfc91f66f4f8ed83130f197a6f35def3e8e2c6598e6c0a8ee
|
||||
AD: 6b0da01dcf6d8aa5fab8310cae71d02d2ebbbff4fbbada8a7db0725cb2e20723d2a3e5471d05b2319f571ae68ec953f26ddc167b8fe8bd801d6c58730f4dddc6c94bdb1e6d1e0f11b6d59e28f145e75a3b4d7aea2f78eec4677c8be45307910c67ecc10fed65ce585c6addf789ce485033d82e745f91472b7103370b162bc60504dab311ddc428b141c105e9343c2cd7527e43baf01b9bfb4e1b85918bd596696b2353425d03941d9a5aa6d72c57f1c42175b4120269551db41dec9b893d24d76a503f13ac1095ff824b0c3f7836e8b934b112440fb8157d35cf92c196de10fed9046722f83ad58546c9b27b9cb6e853dfffd89ab7724e140c0f1326302cb2224f587e6c7f27111e97ecc0dcc7d89a88e133970a22e4aacb12ce388393bed30d263ed1c080c1d56b0777e7ce2ce19a6b8db174aced748f71fbd52dfd415ef6fecba1e4ca7f207757967b3a6ad1c2e9f7c6a58ddae8555205e5c6bf64b209bee6372f196682db52dfbb37440be658d1398659a3b779843c381c5673c4eb97ce0133597c5667fd183a78e5daf15c56ad726f6d368dcf37ea737af668ca7131d4027b6260c748822e7a387b611ccb6edc4860fc4302493e66651772a39f5c98f46da64a9b1219babdc1cf6ef4c6557ced9b85ff3b918053dac001fbdcceef7485953527e1181670e62886f46371d2
|
||||
CT: 68b1872409e4d6bcc2d218c7a844ec2a78969d25b766a5272ee09a3f0dfe20abba0ea4cf75437e4b759e8586be4defc5146b303b162c4209406c93884c06a163a5743fa6ebb8f649ad8de37194633d18fc4d0bbbb1c74e8297f48e1f532e5ef9ee7c15f07b2e96cfdbce6f583e267658a795ec9c4dcd9916d5dcc08fb5c28277e56dd366a26f92f9680930d63493e2995ce350e6286c2d597273b7ecdd27d2c05b725e32d6c48f7f577ed4098d318fb822cd6413437c44a9ec8feb54959a2e6403484a8aed34e0527cee6838844dc987d933af12b370cc888b6f6ff2a25754caefc1c665751321ab9b9f19bfc17e6903c99dd87fd502065a8ecfc1c29950dd0007ee2f9c3fc752cbe7e661f06ff22a266f564e351a7137a1b96616e31be24c7a13e62b04646ce0a68791e0e1a099b862435065cf7d3203fb32d7d7d8ac4a77642d69f7c27a46973b6bedd5e840f887209d19cbe50504c0a251056c8a83100092a627f73edb421a3f1aa12edfc78d3fc474cd2583808e38d63baf1c5b4b5cb34665e10d4af806bf3abbcf4432df6c9caa76cf0e17a5e0e9af7c8868daff22d84b7b6eb4f299b750ff18b9b17d7412ccafe3e55e5b02af9ad87c03799c2282a9c6377ba42e840440d8c1b19bcd1c8fc35f02fc505a3ce97562b9e660fd488b53c30edb98b91949188903ba2078193c2de05e61c9da7bc056624104471a8231b7fcfdfda4d804b8819888a2c9bde680bae59e438d89778c5a04dff214e9b14ac5b031c378c8beee5ba9b1f91dba760d7621c24c30aee28c4b49e183632d8b450ee6895a47b96cc3c1917af685905691d1ca588db5a21674391238d76ae101c3e83d94dfee4a0656baf4d6cf277e0c7b0512e4ec13d12a5af44c7d19820fe7a74f5d5875321d528976f35a5634e15dcb35a54836370569d5609de0360ea4d2f1937dcb2d68b20cc5a04c13c04d5379a7dcbcb6b711712d7b3b20d255156b7e61e99803a4d767f0438c4fcb166920744c20a08e48dcf5de4ec325439485b51e4c0f08cd22ecf60ace34b93844c2c12bc7b46a8f6b8dbf4de311f1039504a46d9616b41fd58388f458bdb8bb9821a33379cba4f36b416c2eae02f42b736c1cb6e673b9b9dbd230b6a23d944124469bbd2c545f5ab72fa4b3a47b4d0bb0271d615de6c7f182cc92165a84032f59c14f181c093b017a1c7e5887db249b5ea2db39faf7a3cfba08538b91520fc1f3af697c5f4dea7274cd86dc073920280b488a3f66969cfea020a312be1fd111c7847296ec5f5cc91f00188c07c05e4e49cd0667ee16345f794219ed3a80602cc11940aaf9a927805a040419abd20ad8ba0a05c7ca9936997549ed5a3c7e7d9f582c735a424895c5f1aed9a3a2ad3cf7d9f32d3e
|
||||
TAG: aa69fb97b939fb73703ad4cec6c24fd6
|
||||
|
||||
KEY: 714f39851c1fe09297c8c69dff0e62be
|
||||
NONCE: 3383bb6aceea0cbc71cc7783
|
||||
IN: cd1fac364236fecd9fd8aaf59de7680afcf90de01e9adeae58c034c25c8ed25b58e82e4fdcdcc2e69d1054dc753425e98cd50644eb74b1b6d62c769b61bf74d41a319eb35878bc837bac60af425c0a36b150655ac82f8e8fd61121790a3bb9389e121ed0fbb061cd593603a763e0b8ecb357b5c453b20239ad2e44ee0ef0e4cb717db95613c3be18aab77c708f5e91af8006e11b6ddebb8b0ef98c06dc3c97d008e058bf3e534582c24a1485f68214cdd88167814802c89d5c07a7453aff1010d6db0b778d9d8fc64b5bf3bb84cb97cef38a4b30a7deee12f0af806833c8c6d35a7f995b414eb0d9a900e3e56afaf2dd0d162063c4dd52bc6ffa56cfece2ed90bc7c9f4276459c9bd128ee40a5aa514de786ec15d04a16adddd64c7613ec9eed738fd36e24fbcbdcd0d3318fab948f47314a5400d71c5ee07a8c1fa17e4a4c08f4a467291cec1e8266342a42646d138331b08498f2dc3fda0374ef736d05c2a363fe08dc71ec799f0256ac9114743f40641ed8d9a039c57cd409bff29bde518657cb305a875cc6c0a58fe9ea3452df3e3802cf316a0c1f477179f6cdcb39c7c9424c07997500989a600887dd9f04c92226df10e9a8301818a5ec2f0b7b06b6d1443dec46f478a9271498b956b72060dd2b3021b004358b7eb6a083ff2facc3e9500278352790ccb6f9df67dccf7a03c33a34c6f33c1b4dc4ced2d5f69e5f68e79c582bf0db7751b774019d9399329f1a6692c5c527a646c9bb866e69d4f1ba4e6065cf0c5b09e941c5bb6e96d7edcb19a5cc02411507701b65987dc206ffbfaba4f06cf394976bdde1ac343e368ec1083813417cd0a325aa0e88913958974fcc911478a460b79b9978e33b21064ffdc1fc4df1e314948df71af9a6e0a40907e6b35ec6304bcaada85b456298637b6fa582ef331e2815fef135dcb66870107b2149c5aaa790f7127c0f0819b83bec46c0f6d30edb61b6fdf4f35f4b5345f1c684f41eed8088aa2f1d42c920a06092058e7c225d10fe1e5befb4dc593badee754fa12b843a6e9f67ea0e0616eaca697b22f526fb79a2ec259076971185678aaebc6449ba3bd284230ee621bc02ef1f5ff23651a6116cbb7770ec7385a44f4d54e7cb04aecd59a99660a1021eb6abb5d2cffd76e6e7380c22d0224e499e0c7b69aa0e7dd6deb47b22b1f1fb882dc35eb944a495fc3f6345b08da8f7185c3be95952bd7c982d9c8b2410a1cf1f5164961f6d1db6160d252e631f77b02d4e23dcd655e7e875b9b703fd27c57008184772c73fb5dc626ba43f54cbdc2937de7b4c470235098cb0a3e699baaa8e2adc09f8182ae1f168aa86a790688795003c3598293ca269a94494f159c5d19a22469924c5fbfd198b8add28b37cf7bc3258fb4b906f2ecd672f4fe1fd1359a433240225
|
||||
AD: 1d90b2e081fc4457b3387c1033affd15747b79dad1d6d3b69c076d4dc5c209ba1cdd383a5196fc21fbc49fc65c69b85ec299b1daa26a4bd2e5ec2559cb230b21c3bb62e2831830a2b86da2abaa289d98eb04eaf3cf8d583ffc7291c3201df2c09b7d900a4bce0972e390fc980eb67cfe654ba3b9c579f997e319496b57819b36dd2b4484b88ea3cc1ba777b10ecaf526a08afd9e2b3b32b2bc02932af5d09c2ee3fdcfa18d6261808e418c4bb80be4315a5581d405841341bf2775d8d0adc21c10b9ffdc0ea4b22e22f61b46f844d8caeda0aeb7e1c3f84d337898af24fa68d60e2f19ff815713e1587e0d6e68d64cd088ed432c45637e1767913343d899b2f8c01bdb83253219878a5b3a4e6166e02387124e711a56e49da1893b4f72198c6339943262cdfccba33428009dff70a0c8c79af248d081ca04edb2ad4f35ed1819f0846dfade107c7e9f4094c014087c719517d943e524b86047d24aef8b901a7b1ec4e839400b717e758520cfc7a2dbced0ef491eef6aa2695b2ab9a92296b6e75251f124168c36a6555c4a465cf84a7b36f3277859dd5bb0f10f84cbc944b87e37b6b8ff6958bf1f0546839effd30995853c734a11c062414fe841113d0ae62597cd12ef80dbd4dc4f72e065171c8394e45dc6f87c86154e9846c1eb58f560b8c503848eacf05107c445a6a06420e67e2297a9975d23
|
||||
CT: cc11a071e11cf36750fad572fdfefa377b8f0ed6cc47bb8015cb51f0eeb531e5779d233ed224022c5f7ff3181ad1d6a9f7564f41ee919f0435fe49b4266157a68061a1c5d06d8a8075b55efab8c9530266955c179f0a57684459835931cfb2eb1244a730797dcfcd31e7a414ed42990e9a55d439fbb803f2828f92cffb247f8d96896f9b37ce2d029aa15873bf13144cf35eb70d8e27a013513774ede1d37e4aa007a48a12f37385842cb716f60401f638efd2841db6165819eb3c2c58708d92a454344fa64c2d740cb34d4b7dbbc1d86d9e0083432e0e90c074b617402b68e3199d6fc43c454a842da725b49eabf8459b4db90e6553e17f979fc8d6bd03ac382f3a85eb40b64e21787e8e8170372eb0202fd4d78b39fb940829e11270bf6ccce0fb28adcfa8b60659e54a03c7b22491c62982e5673d66791bf6db75edf3836449e918b0c9059de644039063d78b66769d8358349acbaa7f1bef02fbfe49be375f652952f66665df26964b8b8b327683731cf825ad45118fb98f119db977828d96618a4a2fe82105eba7d1c3bca35775dc57a207b5b07c24305829d911bd7d30e3c19b030f6d34f6858593f3a0dbd928fca4b1ca21ce9ea8b63b149aa444bc696864fe2bdcbfdfca33a656db422cd007649d3a3e895b909fac7f9f0d9b15920b1d9dbcb343a2a0fd9382154430f818a9b347dda83e1c1038eb5259ca8714e2f8d3ec13c8c7a96c537fe599b30fe8780c82242f674817e815d56c92e765f3c67bb9591e27640d4880e04fc6afe5f1482422b0de4282df77df798ab7d32372f22dd3dfb0035182fdfd524dc315b0c7607639fcee3b1e12421025964a27bb5926f28c97cd7d74cdb26a779b656491f057eeb3be3eea0097b787ca5d1b1d5abf42fe76b16e565b2c1d15579e761efdcaf04fb18e7a97215e4dd53a164b336921390fed9c4fc1cd0cb0825d4b5c7061db0f4f1cdd950f13646c662bc6837ce2e455bee1758a59fec54d758eb49f040384f27ab6abfbeb7ec52a1a1b3ce63f6b4ded32a41a64b8cade579db95b7d90dcb875e83424d03e9f3bcc2dc45952860f1845632c7550802c957657c9342dc32c64c558944fbaf5f2b6a04b5d48794d140bf4f9de2fcdb1b77a0602f1c97fabb0f2b92b05b6894e665a8fad01dfb2764f673f61b9c6cae68272a5b12a9a8347782c69f5f9c3d4ff932cd713a1e2a49759114563d94261ebd7c0a723a5837a1912cbcc98b6481f6d7bebaf29276bbbd6d0a83bdefe2a0f3d4d60d88d4575e3cff73eba09aa290c2060434f85955597a3431c376f64489f50dd9d1be65b72158b1d6875649da95579b5c88e3d445c7bb95a4ed9452e18ef33bd7dbcd25c5ad6c769a651204e082026742b15b49554133e1539fc516089ce27940c89eb1a68846f13f3
|
||||
TAG: 26c14eb5587ec540185a067635e64c29
|
||||
|
||||
KEY: a406f8b8ee46d958d10d8724d90bb26e
|
||||
NONCE: 2b38be1c0e8258de3a095418
|
||||
IN: 26486ad28af8f2fa8c7befc95510589baf81a88f3823e87eaa8e40759cf0853547301de1e87b2eeccd76967bb364278174823c1cb1963f34fab537915031cead844dbb1c614eda56e9952b1eb4cb153d06c59c8da3b10af499b1c15ab0f03559fea13b81bd35fa5eb9a5431e12ab87c3c094861154d3d8eda448af7e15017103ad3dc7e9991b10cbe61cb33d2ff90121f4e40bd5d9e9c34b89679b6e1b54e38f00b128093af3e4ca9830a1a4d7a5e9db067c9c51fa26232945fa3e1e31e28c5000e1965cc7aa11a051305e68be9d60fb92f46eb2b701b3f959819f525ebefd5339bebfb64636d680a2a4f32afce85e287f8936bf62676c37ba810754186e30b812b1196e8661e345fb5b09b8dbe5f96e0010c5e3dd0a4e983149f4a058437cd46e3b32ca04c51ae3a4a39a7e15768a8fc379563450c616a5c7d7d98c46c0b934c894727532a9e713d330d294a2753f0f46049c88eed68711e9c49632144d5cb14d76848a6f7741d36c969edecdde52cbfb57a628678d31befa7ae3198343deae760d5c92c31f3c045b3e932e9051cd201d2dae66ca0368b94445d662acd6442c39eb945c8a4b46129a8cf5bbb2b27927729406f9b081695ce148a10226bc345c648fe557b7f8db4604fd0704831e5bdef6694afe716ddc3a8d69ccad4113ebe1684346b493db264417cde9c0e48db46aed1984f72903e94b72cc2b2f151fec80b32523f96f61485f026d63734ff80015a1cad4b21ed1ba057627b387eaecdfc6d7a195b7d46e485bc137726d96c4ba51e1656c3f234174759ad922f3493077d65c149d1e871855490b6fa5924f6270cf15920838b66e3250a99ff7a55ecc9944cf3fd204081a61ce05bb989e5abeae4b2f24801e7f2223d5ce05c2b61f32344a0370c22751293bb898061ff50d6364ea0275bece795be21c9dc0b2749ff68a6d15896d4692474bd46fb256d1d012e45e7a58d880fba240ac6b89d2087da1ff7d41df44c768fee5bdf51f36b090bbf85e7ecb69f61312463eb0b4b1a04a153f593f8d43f62ac96f76e13ab5928147c5e63788bba4f076d12eb6dd15842e2c40fc9f1ad5dcb80bd95d9d41222953776b3304badd650afc783b7342196ab551a474579d95f826f53d15b96ac98a10c2c6d50a7b9b947cda9fb8d8d7dc7def72c5283a93112d2b58487a25debc9ca06946bb0a52a1e4ed3bcf0fb8decae49fa6607c55501f01b7441671f08c814023f7d46f4bc596d709d305ce320b1b0160bf35c8f17622c65b8e5c97b3fe7327e8e22384f6c400e551dd438d6d3d0f9ba6101abd1bc2486ba249b4cc83c47982c1210328968f2b28e4a7c4880d598d5b47aca2093965622ba7b4e4062c86d81070ecaad93d5e47ece22480e24a29b2910b227930344f6a00916bb215e57e1f3155fa9437603fabc6a4c6732e0887f40b5017de
|
||||
AD: 54e46035c45b6ebf14c5088c5f15f552a4d233de7d3750d7736838a5cd4a7b41df1b71e6c5e6a7dc63519ec43bcb4fc603168352b8b8e261c15e76e73556aaffa32193c1f5641b2eab29497c80eb06543c1b0f1787bc616a4e6618f751dd0a2b28a87fcabf405e97efa91becc8ac1b036a2ca244e13dcbae589f0d6bf8e19bf91caff673f2a80de93a6fd5da1e63516e2760ca12a64c8175071de22b26ce72ff9e15e5c55fb253cae55a3f48c0b507bfd423f66ebdecd0b6227d0e67c4347f2a4819a6825dfc2651e97c1da629e92bed3827a15dec0f0c8743731baef8035fb0a790f49e5b2a7339485df313a9633496fd9e7a9904ec566bf20b8dbc0e3c1e4572411da7835b5eb5cd51313b78a1d6ed96bd9aff2fba37e86d475d95fd7e14c6fe8ab23645b15e7823b7bc9d0a02fbd9a43c05a6c660b6690891c4d055af21b50a5500d72c91695536eb1a3852caceae05803486c64535747df691ebc62e888bce8a5c820569b3d80edb4e29027e737fcdc4f49f6eae43b4bf68a5731fbd09778d6b205bd8b3ab4cf251ff31dd94f2033118ff0c4154c78af27570d12def873fcf4de7ccb6b6cc8924dc63f8104e9a3323ddd32006d8ec3aa530818e299490dfa0a9d811fb3bbb5f624f26dd7d0d7a87a7e7748af5ee4f4bbeb150ea4078b504aadaf92b8f9edfb701c6df7ca615416f61bd770d5fc6675db01394a26f585f
|
||||
CT: 4f90cb1e30d5c2c97f46ec00cd8203ca8dc808dc0e862cfdb35b1e92a24f0093fb6b68eea43f04ff1332f942b03aa2dcbe03aafd18b292cbec3cd66d7ab26af3f274a97e599f520a6bb59f5c56fbe858821eaecc297e0cca632addaa5aee071a6cf84910006f158cd1e8a38f185e95dd7f6ad09303636bb6356e400ae70338a8eeae7c22440babe6d9595b2ca008c2e7a471e70e66c49548bab632e87ed36894c6eb97c7de858382cb060277edc91e19b288870b2a472df769393accb07f34a8cd94922582ce351da199a8c5c426b2884bba07fe38da6289ee55537952d53ffced29cf053a9e1b9b37d2e0e3c219f48fe885410e6bf78fea15719f20091e654d44c786f9494e4a71b20f968bbab6f5305af7b8668867cae10eb93904a0e3ec3478fca8d6a231c9b4b84cfc3394716b366c0b1a1bbb8012a298e3a00831791e489b7a2dac6c26ca9e5ad4ab58c4cd71215cdfa2422f49a7b30698ece44972a6dc7dcf9ac40f241085599e71957bc719dc51555312fff4e963832017371980b5087d0f6373e5b52d66d7003525cabcd56bfcc00041bb9f0522a4dc86ecb444497b97d882d122dd8ca1806f1e0c8ed3b1b4810dcfee9b2803d08f43151f5a968c18266d0b956ce26005628780a1c4fe0e25b7dd55e6d4cb6b1427fc56afb278a8cf91d83b952908c295947a5cbfa183816a9fc4400db94a5990e53d99da1694de5941364e7828515544b1074de41c253a3b7bc4b72a3a0173138a025fe758f8d834c7c814f1440407cd1a98aaf15f7f8d5055aa8237c6d93beb53dc84cd4712d0535fd90c180a40ba6cf9880d5104480c18cd9734354c9321eb3ad583caa5eb05edcf288ca5793e288436c175e56c001b473c1486bf36f9d75d71461339f1e063035ded3246166644761816559ba9cc9c26f61f6d02adaa3b4b398fb80906ddbfca2fdfbe57df724adf1f76f995ef7d52468ee2f89785d59c0c8557ab45f07e0da644c0fa9b5a9e1a2280d34a0f65b463e53d09146bd629134b12262f18471eda27ebb5ace095864abe17b95f238c0823dbd11245d89c195eb9ee65f6f97819def971189e43354d4fd811fce3c430cbd4686e50e562ab1e8de214832db1a09a64f9339b8f6dcfd53280a33071e89616148914de8b456408fc18a9f46f61a782857b1e11dfb5f956a5889d60c53dc826ab92153cdad4d935ccd978516c383371352f63edb7211c3da54cf2eafb7ee65f6aa98aa7813de42ec43a4e3c91bc2eac8cbd27fd0a39f109dcc94365bb223f9be11120a9767cfc73e2c315846b675f5e1eabad4e7a970aada798993fb2b11248be37b451a6f8be3ab93dbb0b3a181c49f0b43b402f05221bc97a6c2b5ba9d1e5860a234cbd2c7dcac97ff395ea8ad34229c3b0624eef42f611f90449476d76e816fe391edb539f9adbccd9628dac1e8925
|
||||
TAG: d4c3aab4d275dca02cd7912eb71daca0
|
|
@ -0,0 +1,531 @@
|
|||
# The AES-128-GCM test cases from cipher_tests.txt have been merged into this
|
||||
# file.
|
||||
|
||||
KEY: d480429666d48b400633921c5407d1d1
|
||||
NONCE: 3388c676dc754acfa66e172a
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: 7d7daf44850921a34e636b01adeb104f
|
||||
|
||||
KEY: 3881e7be1bb3bbcaff20bdb78e5d1b67
|
||||
NONCE: dcf5b7ae2d7552e2297fcfa9
|
||||
IN: 0a2714aa7d
|
||||
AD: c60c64bbf7
|
||||
CT: 5626f96ecb
|
||||
TAG: ff4c4f1d92b0abb1d0820833d9eb83c7
|
||||
|
||||
KEY: ea4f6f3c2fed2b9dd9708c2e721ae00f
|
||||
NONCE: f975809ddb5172382745634f
|
||||
IN: 8d6c08446cb10d9a2075
|
||||
AD: 5c65d4f261d2c54ffe6a
|
||||
CT: 0f51f7a83c5b5aa796b9
|
||||
TAG: 70259cddfe8f9a15a5c5eb485af578fb
|
||||
|
||||
KEY: cdbc90e60aab7905bdffdfd8d13c0138
|
||||
NONCE: 9d987184c4b4e873d4774931
|
||||
IN: cb75a0f9134c579bebbd27fe4a3011
|
||||
AD: 7dc79f38e1df9383e5d3a1378b56ef
|
||||
CT: c6a899758b6c11208241627c8a0096
|
||||
TAG: 7525125e650d397d0e176fa21315f09a
|
||||
|
||||
KEY: 819bc8d2f41996baca697441f982ad37
|
||||
NONCE: 08b7a15f388fafb16711ce19
|
||||
IN: 9b1ddd177d2842a701b794450e3c81f151f195a1
|
||||
AD: 277c372784559784b0e047c6f8b7e9efb6f7491e
|
||||
CT: de9b9c8fe09f705f558c62dc6d40b75e3aa625b6
|
||||
TAG: 52e2d2f153a4235eb6fac87ff6b96926
|
||||
|
||||
KEY: 682769d52fa0bfeaebe0d0c898d3cda7
|
||||
NONCE: 6af0738b249d09547837883c
|
||||
IN: 3461523cd98a6e8bdddd01150812e6c58d5cfa25d385cdbbc4
|
||||
AD: abe8302d7d5595698d9f31011c24d4d180a637597098361354
|
||||
CT: aa3ecb46b9330554b36d0cf6f6ac4cf5e27bfd5f602da1b3c9
|
||||
TAG: 0ba547961eba5c58726c418f51d31311
|
||||
|
||||
KEY: e2b30b9b040bce7902c54ca7eec00d09
|
||||
NONCE: 28ccf218e8de56ea91422a25
|
||||
IN: 483080d7e2fb42580dfb862d2d266fad9fdce7cdcdb1158d415f84b6e269
|
||||
AD: 9f06fbe67eb2ace15c8011032feeaf72fdf6d316e1e08ef4cc0a176588af
|
||||
CT: 67e1980ced4cd232ce893938e40b0798b17a1692476342e520b480a18570
|
||||
TAG: 9994185d4329cfa5f4bbeb170ef3a54b
|
||||
|
||||
KEY: eaafa992ef6dbcc29cc58b6b8684f7c7
|
||||
NONCE: 1ded022dbc56e9ad733e880f
|
||||
IN: 900951f487221c7125aa140104b776ba77e7b656194933fa4b94a6d7f9722aad51b2fe
|
||||
AD: 863ceb297cb90c445dbcf2fcffe85b71db88d8c935158f697023e2cea103ec39766679
|
||||
CT: e0b3aaa890e45f1c39ad4f13ba7592f5251d6a02ca40fe3633651b35fba74a579f48c5
|
||||
TAG: 5c95fd941b272bafbd757553f394991b
|
||||
|
||||
KEY: a43859049b2702e8807ac55b0ad27b0e
|
||||
NONCE: bbe8c571342cac7fcc5d66cd
|
||||
IN: 8673d6ee2903265c92446ce110d5bb30aa2dd1b1ac5558029f23974acb8a2fbf4c74858fc73d6104
|
||||
AD: f77c998ad3ace0839a8657e350bed15ffbd58f152a0dc04ffc227d6beb5738ad061d0f83c2a26999
|
||||
CT: 40e201a513979b093637445275b2db5ed4cb1fa050af0e20e43b21af6bc56dec654541e55b295b72
|
||||
TAG: 41bbef45727d19ee544fba5b360312f0
|
||||
|
||||
KEY: 68fd608c8697243d30bd3f1f028c5b74
|
||||
NONCE: 319a210b33c523d8bc39fbea
|
||||
IN: 2c088f38f7a58e68bdd92632da84770303cd1ff115d6364479fb0aa706571f68d51be745f5c1d1b44fa1501cd5
|
||||
AD: 1417a65249b85a918622472a49df50bdb2766aae7bc74a6230b056549851b3c2f0cef727dc805ba2160727fbb2
|
||||
CT: 9d376b147620c2ac6a5eaa8ee44f82f179f61c9bc8acdd21680a7ff03acec953437a3cc9660c7ecb1204563944
|
||||
TAG: 05a4fb5be11e3edd89e34d0b7132d0fa
|
||||
|
||||
KEY: 6edd3bd2aa318f78b4a51103cb08d489
|
||||
NONCE: ef0027b144691bc9716fbeca
|
||||
IN: e98f2f99680dc748fe0b57390df38a99950faaf555a888d463d005ef4e4b1c22663d3d3daa812b20ae35ac934c2e187cbba7
|
||||
AD: 97337902507391de0f15c88462aa5ffc5e4760543850719ccd8a0cfef89484d8095c23ff8c1d06eae4ff6d758c95e65cc3b5
|
||||
CT: 3c54842c2099b73daa9c3f1cb64bb913c0527955d923510f3f3046df471c1365db97333bc5a86dc7c5f23047e938fac976c0
|
||||
TAG: 375b2a25421434e5e3a021d434fb2d04
|
||||
|
||||
KEY: f70482d53d3ef70cdc3cd3c4a37aeb2b
|
||||
NONCE: e69d3de363e225749cb1666f
|
||||
IN: 4cb68874e69125e1a6f6e68669b48317e1b361d0f7f95ec4cf613b7da2c835832010e8f95eaef4e6800b79bd86cd7cda869d2df258c267
|
||||
AD: d72975f15721bd0957f5cb1edecaad2d1ef047afb0e779035f777f94cd7ed1bdf8ca9d4f357d2a1e195f195e7483dea1476133235f7e6b
|
||||
CT: caa1e48decbda18e314057c5ec32f8733a5cf03ed0d05c3654531bf56faa70751a6c7f70fbd7d39f7e9775a772aba8fe7731cd0230beab
|
||||
TAG: 47d909cbdd1c7f8b485fc3232bb7185f
|
||||
|
||||
KEY: 98a12fe16a02ec2a4b3a45c82138ae82
|
||||
NONCE: 4b3404684825dfcf81966e96
|
||||
IN: 899710fc8333c0d2d87f4496436349259cf57c592e98ec1e3c54c037bc7ef24d039a8c573ec7868e8ce9610b0404ea1b553ae10cc8cec26468cc975c
|
||||
AD: ea1a99cee666bf56c8c3667ef4c73c2e1e6534800d6e39a97de3bd5d39068bb3e2f74f96c03463afa18f1ee88c21209bae87f37e5d0269b68db370fe
|
||||
CT: 0431b7fc4889ae401eab5edba07a60f9682fe58419d4140cbf4f20c62d79d8a3cc1f23fabead0e96e1c8c90929756ea1efab508336e1d0ed552eafd0
|
||||
TAG: 01053ceeb4f9c797eef9426930573d23
|
||||
|
||||
KEY: 6538e8c8753928960ffc9356d43306b6
|
||||
NONCE: eee386a2b1e310665e335746
|
||||
IN: a92eb9a93a90fdbb2c74dea91d273a48efe9582f8af7a4e3a377b114770a69ca45421959fcf36107815e53dc61b7bf018fc42965fb71d1eafce0961d7698fabbd4
|
||||
AD: c5e572e464718398374c8b45ff8749cd9f517bbd97767f77a96cd021176c49c0acec8b055ef761f49aa6d910375a45b2f572cd5420b99153971a682b377ac88f09
|
||||
CT: f36353de609d0b5246f64a519d89a4dfcd9d53325a2d2cf910e7692e68391b0357b056b944e0b53e41568f304bea8822f9ff7a0375a5a8087509799226862f707f
|
||||
TAG: f7f9b891089d02cac1181337d95b6725
|
||||
|
||||
KEY: cabdcf541aebf917bac019f13925d267
|
||||
NONCE: 2c34c00c42dae382279d7974
|
||||
IN: 88cc1e07dfde8e08082e6766e0a88103384742af378d7b6b8a87fce036af7441c13961c25afea7f6e56193f54bee0011cb78642c3ab9e6d5b2e35833ec16cd355515af1a190f
|
||||
AD: dd10e371b22e15671c31afee552bf1dea07cbbf685e2caa0e0363716a276e120c6c0eb4acb1a4d1ba73fde6615f708aaa46bc76c7ff345a4f76bda117fe56f0dc9b939040ddd
|
||||
CT: 049453baf1578787d68ed5478726c0b8a636337a0b8a82b86836f91cde25e6e44c345940e819a0c505751e603cb8f8c4fe98719185562794a185e5dec415c81f2f162cdcd650
|
||||
TAG: dce7198728bfc1b5f949b9b5374199c6
|
||||
|
||||
KEY: fd1dd6a237a12d7f64f68eb96890c872
|
||||
NONCE: 459ced97ebc385ab3a8da8d5
|
||||
IN: 04a9709fdc0a4edb423fe8cf61c33a40043f1a585d5458c7512ec8e4e066a0f95e2e6609abf3c95a5d3ae2c738269533855daedd92eca20bdedbbd5677cd4eee84b7a1efae0904364f1e54
|
||||
AD: d253b829a2fbc5877b0fbe92e7b79f38886a49ca889ae72b91f2c3aebe257a3ffe0d390b5d320bea22d6a5536cd9213612f5ed6e3b0ea33ac91cfee284cb25eaaf6b85b15f7ca894317182
|
||||
CT: 4a565d3ba4f2ec461c9bd8dd0f96bc00d2a561bfb56443c8cf47681bdf1c61f55854bea060c4219696cac79c09aa9400a7e5c59c6b6ca556f38c619a662905fc5f0e8437b906af6138e3fb
|
||||
TAG: be5f93201d7980af4c5bceb24ac1d238
|
||||
|
||||
KEY: b09a4d99112e1637d7f89a058988b417
|
||||
NONCE: 74348f7126c0cac836e9de5d
|
||||
IN: 6b3c4cfd1eb139b62d91ed5d1d8b0f3b52278d5c48787ce46f12b9f026e3eed1bfbc8c6684c6662f06614c69440b3d7cff7c46b2e4aebaa4b5b89236a3cc75535bc600104f240d01de91e0fb3bcad02c
|
||||
AD: 7883ad259fa5d856ce283419f6da371b444b9b64ea0ddb371b17ec0a9ada27b0eb61b53bd3605f21a848b1e7ed91162f3d51f25481f32d61ec902a7f2cbd6938a7ce466a37e4467e4ec2b2c82b4e66ca
|
||||
CT: 5e1b783b20fd740310333eddde99a06b5740428cb1a910812219fabd394b72a22a6e3ca31df0afae0a965f0bc0ae631feeaa5ce4c9a38cd5233140b8557bde9f878e65e8932b9e3c3f6e57a73cda36cc
|
||||
TAG: 784b73ee7824adf7279c0a18e46d9a2b
|
||||
|
||||
KEY: 284bd8c4b5d7b16aebce1b12988fa1d3
|
||||
NONCE: 7ff05007c5d018b17562f803
|
||||
IN: 903416331583dcbd31420906c64dc76e14d0c5044d728cd9b605b531ddc350fdaadeabe67d08f0b4c7179f82a1044696716cd96459506453141e9ec3130e893d8c2ff9b8b4c241b73866ca4fc1f712d17d7a88bf4a
|
||||
AD: d0a1f92f80094c1fad630ca584edd953bf44cdde404f22c8e476df8708a97a0712e7fbd8054caa7d65144d0be3b30442d0dfa5469ba720afe1d00aa6bb53c79c1c178ed42fce596eeb6c638c8a8dedf76a431976c5
|
||||
CT: 9bc3708f70a68fc16bcc33099325c821a0ae9a2fd0a6a98382fa21b42ddb3a9ac6c34a13c4805d3beb92586cdf0f4dce3885793d49abce33190685e7009a79242dd93594722a1ceaa44886371c30bcc8312fa2bf67
|
||||
TAG: 3fd8a4d760d5b878852b1ca2d34dde6e
|
||||
|
||||
KEY: 6d76dd7dea607a5cf5c21cd44c21a315
|
||||
NONCE: c1d13e56b080a500f1cb80bd
|
||||
IN: cb959b92e777f835afc4ae4149b190638851238b7b13c9bf65343adb3130e8ad2356101037f30997d4a5fcc0a1d6415210179fdec881236a799f6e90dd43ea3817819b432611eaafd072368b9c7036c7a88c8b7774a8ed986134
|
||||
AD: 92a2bc3b6b6ca9de0cef10d8bdeaadf6f54782cdb2b09e66cce8cb5b56895636e982f7a3c7bd9d221ade62c9ecf68bde70becf683804386606ab1c48ac764c4e11620064545c5beaa5911c118856dfc5cdb8df50052b01762c6c
|
||||
CT: 522ba9bfb47efc624cd8933fc9e17784919d2b3ccfaeec46af414c1b316355f65b9f9fd7f0be6ac3064b4016e43b8fb2028459f0fa0d81fb6656be0ab8fd841d05d24682b4a57c7c59d89af384db22c2f77ce10abc4d1c352a1a
|
||||
TAG: 5ea4a77381679876e0e272b53519d533
|
||||
|
||||
KEY: 1dbcbe45a47e527e3b6f9c5c9c89e675
|
||||
NONCE: 98f2da8ed8aa23e137148913
|
||||
IN: bb23b884c897103b7850b83f65b2fea85264784737d40f93ecf867bfdba1052f41f10d2c5607127da2c10c23b1fbd3a05ce378a9583b1a29c0efbf78a84b382698346e27469330a898b341ec1554d7bf408cf979d81807c0cc78260afdb214
|
||||
AD: 46f1bde51f6c97a9dae712e653fcac4da639d93a10b39350956681e121fb9ea969d9dc8ef6ddfb2203fad7ab7e3ef7b71eb90b5089844d60d666e8b55388d8afb261f92b6252f4d56240fe8c6c48bfde63e54bd994ff17e0bf9380ebfb653b
|
||||
CT: 0d90e869d2f4c85b511fdf85b947ba3ab75c6b1845d8191634770413d7574a6fbd9d86897cb3d3b5d3d8e6f74fac3bd2a9b783cb16cfbec55dd7d2f7fc5c39fe85d39bf186a3fdd3564bc27d86f4019ae0cb73f5f516b602331433689c1b08
|
||||
TAG: 8777f2002d5a5214a7bd8ef5a3ccfbbb
|
||||
|
||||
KEY: fe33f47136506e5cc14114eb62d26d64
|
||||
NONCE: 9534a10af0c96d8981eaf6b3
|
||||
IN: 3ca38385513eaf1fcd03ac837e4db95c0ed1a2528b7ab3ac8e09ecc95698d52b7d90bf974bf96d8f791aa595965e2527aa466fb76da53b5743eda30bb3ebd9f6a8a7721fbfe71fe637d99a7b4b622e6da89e0824ac8aea299ea15e43250d2eccb0d4d553
|
||||
AD: 50b7bd342df76bea99b2e9118a525c0f7041c7acdf4a3b17912b5cbb9650900246ed945cfc7db2b34a988af822c763451ac2e769ec67361eded9bcab37ac41f04cdb1d2471c9520a02db9673daaf07001570f9d9f4ac38f09da03ff1c56fdefe16a855ac
|
||||
CT: 927fe3c924d914a7aae6695ddad54961142b7dd5ff4c0ba5ca3e0cf3d73bdb576afd59bd2b54d820d2a5da03286c124507a48008c571c28a0ce76f0ed68dbac3a61848e7e2162be8e0bee8147b9bf60da625cdab8601bfb37dfcd165f533e94a32c26952
|
||||
TAG: 9bd47a4a2acaf865a8a260179aabf8ad
|
||||
|
||||
KEY: dec1b34b7b81fb19586c6ec948ecf462
|
||||
NONCE: d9faf07e72e3c39a0165fecd
|
||||
IN: f7b0bbe9f0ff4dcf162792e9ee14d1ed286114f411c834ad06b143cadbbe10a6fbc86f6664e0e07ff7c6876d4543e5b01ff5ddb629f896c30c8cefd56c15d9f24dfd2ed590304a6aae24caac5870ddafc0e672ac3aacae1867891942998c712d45efbfa4d99a8a6f03
|
||||
AD: d3c4fc4838cb3cda3937455229ddaf1cb9102e815cb9f519a5434677c68b11a0bae1280faee82f1a5bee593e669e6f81d5ece3675b8af63f1491bb298531aacc940f53678ba56ae96fc66be92b904bc35f2d5b68b3ed98569a4d04e8f8a9689ad9fa4b51db0938a9f3
|
||||
CT: 2f44ecf549077b98ba551819538097bb80304a55c48ef853e20ed8c3f808dc8cb5eb41c2463d19fed2606b59cee4b458958ea75715f7654146df4519dc63524a0569a00d7bbc4b32a372f82d955be5f190d09d35c267da1017e8b16096ae84f8a671b45aaf0d1ca59c
|
||||
TAG: bc3af80cf9388d35deadecff5455d515
|
||||
|
||||
KEY: 021add6030bd9f3fed8b0d1f16f83783
|
||||
NONCE: 4e460f51fe6b5eb9558c4571
|
||||
IN: d9aa1d0db5de536cfbacb59bb75c592ae3f34a5f9c5ff4f22d14e8e4bd0754af19570221893797f60c89a251cd6a19c2953662dca51264afc21099ed5c80077b0e10a5295b3c4c6fe47d3c1c84fee69ebf7d8a7d9b1b338dae162e657e6cf5277ca70d47b9290aa7efe67b0ce574
|
||||
AD: 38d99cfd7578d40ffa1749d5fe83500362ceee76c5af38935806837b2f2d1b3422a5057bf617b07868dd95d8e5f4a24e74f96177d53a0275450b429a2b1f364805030765e376151ae35001d6a4872200142fdce82017f3e976ab0edac1a08d2649d297648320e7dd9143b554fa3d
|
||||
CT: 8863ad51578fd1c9dc40702e34236adee885955f0478ad9a094a6941f95f900e466882dcd5b86e1563ba89aa105f56f3ba5ed860ec3338ee1b750a2f9332acb3f0f61718de7e40fb80442d046b35f147f178bd05362f0559a20a53ebbf78e920fe14c9d80d1c9fb21bee152f8ab2
|
||||
TAG: 614539247fdcf1a2aa851102d25bb3bc
|
||||
|
||||
KEY: 311c2045d5486bfadd698e5e14faa58a
|
||||
NONCE: f1cd8b373cec6451ae405618
|
||||
IN: bd154e428369aac5c13128d29bd3031364939abd071c34bacac6ea7292b657b794b2e717d9bcb5d7d01496d805283fffd8f7de6a3493ddd8d1dd7f58835a44d43ea22d95468d1239ca5567d6c80bdf432fce2afc544a731a2852ef733667b9f8f4f8923eaa9de3aa32addddf99b607efce966f
|
||||
AD: f70cb7e67b2842207df55fc7582013bbddff8c7f3bd9ebbaf43827aa40f8490e65397934ee6a412de6272cd568566ea172789a006a92e5920140ca5f93f292b47dc262cefc66b75543f94365c08795b7c5e9c6c29b7dc67b2532fbf8a6487d40a3eff504e75c3f2bb2cc3969621028e2112e67
|
||||
CT: f88f4ef0431d0f23911aaa38a4022e700d3a33c31e0c7bdebe00f62ca3b55d358385de25ceb0538242871eb9c24530e557d7981fa0182436e1e49272d52689541f09517fd147a8da0f0d2bb32d54911a36eded0b87bcba54d6842edf461b45839df1cab5176e2c82c871b3be4ec1bced67ec5d
|
||||
TAG: ae8d847f106e914ffadbdfe7cb57beba
|
||||
|
||||
KEY: ceab57de6220b2c80e67f0c088e97b36
|
||||
NONCE: 8cf438aeb0cb29dd67506b9c
|
||||
IN: ce2a7a5663449cf6e0068085e3c373c5ca6f027544e327bbc09ac00f1571268bee186d51a00bbc16da7429e4d3d5235d8d54ac96b6ecb2fb7d77a6e5b9e70d431dd4dce78ceb972e9e4b63059e350efaff841c2c42bc29c139b7fd070097556b6281b58e074d5271d9f66c6744ec6dd3b9db2f4a21aeeb7d
|
||||
AD: 03e464d111ac9228d39d22a00120c6ee671fe5bbf462b1ee3fdf348b34999518998ac4e175ed48189c29b49b5527c27c43094eecbeaeacd3cdb48cd15aa82573e884a7b97bbcdad610a6955f7d8b04f6f98a13a907bc2bec4c940b77582b248f5fced1771f810977b2d0a4fa48bd4d78e4bc383bb92743fd
|
||||
CT: 1fa9c379c78b92fa3c1e478443ae38d7b4b50235448ce2a88467514bc9db95844ec1baf4dbdbd1b0720e377d05d82c3b58b52af8c9c50417b39ad225e373c7ff18ac5a6ea5d182b255f1c8a2766e31e3e4e3d55dc08dfc64b818ead40a0e824b06ab24f0dc9f4f0c383db7cd4d40016b31701bb401b126dd
|
||||
TAG: a9a885578467430504731d1a8f537e3c
|
||||
|
||||
KEY: 585bbac0ab4508afb8b72d84167551aa
|
||||
NONCE: 774c82af194277a5506e45ba
|
||||
IN: d788112213d2b8b5b66b056e8b3e344a7876f6193b59a480c51fc04d3ec2e5166344c833187b14117276fd671a20937a4553181c29d3d85afe385dd86093708226f082a2ea4ec3288f372c772ca7ceae86b746ff428e8add17b0f34f8553e3db63f55224c39edf41f138a2c28be49d56aa8b4c93502b9794a16310f78b
|
||||
AD: a29665261a8eb58c88803bcf623dd1a14e76af49ec5db72a267f2ebcbc479385fb6b32bafcb1239515d74a8282b228e83daf282d1ab228099b315bbed0f0e6b3427e029cc28c025460a8bf0914bd584c13e7de7830ab77fb4a9258dfdc9fdaa96ca941546477f04cea19a365a27de34e23e154e7419aefb0be0e871bbe
|
||||
CT: 24f2856e4e40c0b2b8b47e43d94c1faba498884f59d2ae1cdf58c73770279c96feeee3025ec698cd8f0ae25bf0c9fbf2b350674c317e52bad50aa6ed9845e194f294eb71ff192604af50ac7192f308583a3edaf6c7aeb588990be81b801dc916ffd621dd4016e2b76e9078c89fac9da39f3a88f6548006a48b0199a732
|
||||
TAG: a5c8f9daa30b045bd3e1c1b01f438518
|
||||
|
||||
KEY: c5d727d159dd328b4160ff45a183226b
|
||||
NONCE: 881c0802db519ce1595573ff
|
||||
IN: 88b4be77bb8a2f37bc5e84ef9da92a4b8c3777dbcccfed13b97e93c19674c8c3f13119363ace377a14e5f36501ba9a3898fc09340886d91bf0a17ef0d028f2a92ec150071623a4a5db8e56e99e764629679943ea879ec7634fad1480e8617fe834c26210276d7db208b13f9b4c2060f2867aacb1b47c8e110830beff721dd8d120de
|
||||
AD: 5f6513ad3d490f784dd68ca1df41e8c8e1ab9a240ea8e9bc22d0b1d7353da94d5d37c94f0dcd1a2dedd6d8e1c79a383e7e214cbb6ee2ccb7c6d894ffce5d01b6cf13876ae2648d36adccd88710d7d2ab6d43826d37ee0ee3b434972a2cb8f4db1c3304cee0a352bbef76f05de0e6f55a410eea5e697afb197f2483f0200d0abee224
|
||||
CT: 66bbee209eb11c675ecd3303c38cf1087b010c532e1357732c4911ca9db78c67805c95c829194cd413b635a900a08454c6eb9cfa3597ab531fc9ddfdc5b02b290be2a618df7d03b1ab465d6d03e8b87a430bf4e80d8cb9916145cf2d2342a91fc79defa151b1f3c695608e76ca2abc4c0383897f1cbb9d4bd9969b2f33813e2b5502
|
||||
TAG: 43daa08e6eac70e3238ce655adb65005
|
||||
|
||||
KEY: 16af56326046c92afca49fe173d643ad
|
||||
NONCE: d32a935b4e56472d92d9f2ce
|
||||
IN: c49c8e5769670384d23d9af9834026395d3f3bd32d88e61ed06b2e00e52a5ae4fe3867993c2af95203cd4006470a89677864431fb9edbed17412913bad4bb3eaff0fccaa150c9b13f83b9bf06698af844841a640d6f94d845296638ac27fb5ed87c310dbbd36415161310b284b8f84b4e025267906e0a4c822b76a682d44a70f9afde9bcf48ac2
|
||||
AD: f713886f4086026779a7e479fa646cb33574e6c977d70b8da49c8fdbb395dc7c149a59e219db8e4fff053cb00e2a1df9850fce94e52fd34661fd3d4cd8ad3ffe0b4bc7ccfbbf42eeef3e30ce13cdfd77dbd067ae9f5aebfa068f6b7ae2c17ad956dc03511dfcc38eac9fa3c0c0e9a340f5c58e39d868b77dede54fea1173216c0bb8f0a6c2990f
|
||||
CT: d5d7d1ed0ae3e3481e2ccee201857ce1f427734fbb4fbe82a2b90601104008b8ad4daf74514b8ab3e42b6f6b509159ca04489b1175ce1e3fe33d36ea521e0aedff8c69fd00aa588d7a2eb9d2d551e2b8fea321f573e2a1df147535a873d540a3169d3ebc099ea6c33cefc04a2d55dc2d47237b95ad269fcdcd3c3750af426beb4edfe7837b413f
|
||||
TAG: cbe0fb9509c224bb0e8e33f7ef9b49e6
|
||||
|
||||
KEY: b3df227e6dc2c846095e2a3b825d7645
|
||||
NONCE: 578bc24ca3845e23204df661
|
||||
IN: bf69be81cf0b340b006badc9f644d10376f4f9a7a78c997edb8729e3786447f21e97e4c1e0c0c74e01ef655d0a84ffc04ff7c6712ad65adc9a0da2e3078d4c9e796c9bcd71e7a9da26b987990d366b5e00a23a93652e10942e07a6aa01375af27080c9cbab5f554497abc48260937a6fe895361e79cd3d5e78c1a65c6723d4a4fbe9b3dcae3c05699cf6d3fb
|
||||
AD: 00898eedad307fc017917a3296bcedabaad8a505edd34e93d92f3b61797ddccf3fc31144ef70f255be3b0c165c97eb8706f14c495f4aa9b3f15d2dafd65bf6741d67fe240967efbf0e75e610db9a8f722035e039b5e9246d258084a04c12ee8ad1668032f8caec737481fd894dba2ef702d3e6089acbb0fe0bdd6daa2a5cd47fc62603499fe3ea37365072e5
|
||||
CT: cfeb249551a695ddfec5f789e7f0a9f916abc8ee01d6233c32744c10a09b5b19ff9ed15e9f10de8f93c8ca1ae3c34e26fdbbb7f3b0f5f8b064501830d3cc982da99b294ce51bd33085c98b0ac0bfe44a8f4a5a26511afa3461aa88b770f076fe119ec90f33d8c9e7777f30b8cc95864f06e04dd8e328ad7a2c7dab83b03abfdde065bcd0c7d6dd47389108c4
|
||||
TAG: 3dedd1054f1a29286a51817264317b83
|
||||
|
||||
KEY: 58a57f04d1d5cbdd1bfbe01dd5f7e915
|
||||
NONCE: 47affabd7dbb4cce76661081
|
||||
IN: 5f82d481a6a3856c6f0be2aca54d666f16de88294a4d763134dd51ef03661bab45da94b9871d94e5b574a52214b22c92cf9690ecbffca9b108fe796abed9e608778c0b99d7bea1daec08dae89d5f7229c04fd52cc906b5f5b9fc0f0fc1e0b2272dcf4865286ee22bd9edcce1afadb579ec72cdf6038cfc75c2dbab5a1fd64b6f8e200d1ad0afcf25863293fdb7276648de
|
||||
AD: 4b662822b48005fbd85bb99e6a946eaa74403909f646d914a236eecc5f4558b60b2efb1584b1f32d936b90428dda6568515801d21d24d6fb622e6463897c70be01f81fef741d6dd5c6556d163c3f048abe49f21817b41850ce79d7ec1fdfeba32935b58d898e964fa4b36f79c0f1f560b0afec3887ab325e1a025fa7662f9baf8e08a9ee714b8369621a2f1e6d2e96896a
|
||||
CT: 31ab08ce0aaa883628f4b33369e5f6e5a54ee4a6596f25ecd54eeea30e81b41d357cb6c671adb6acd3d4e6654feb2ab1f3259692502efb33c5121e0852cbcb2dc5d9a4c65752debe9c4bf5e995fc909a2881621d46cc220806703795e61c0fe74c99e3c1230521b1f97bcbf4e95326e2d581f0cc879a2fc06ef88226a4413f9e9985edc913c418cc198c4df13cd46afc24
|
||||
TAG: 1e54066c6cc37f35c62b47426b609457
|
||||
|
||||
KEY: 64011470970333b7b677d4ad8ebf3ea2
|
||||
NONCE: 17031c5133a426d96de93123
|
||||
IN: 882cac1ece2d22a1db7f8339332379eb68516c8b7dcb3c089a5bfecceb49f48a169215313686eb5708135f379d89962af478cae865841e0c97ab47a57a456f634282c4e03c99abf7f7cc4e8360deb48160288f06e96cb09114877f9d91dae98828285626a1528aac87f39cfb8ad3db344fe4318aeef6f6ba14bd1edf9caab548c09f8eea091229a90dbc4b0fa34fda2bf13d300a1f9c
|
||||
AD: 0394bb920cf58806b909d90c046402c745f6876af85d8a281081e22a1908f8475126594b39a0e191a070bda7c78d30dc4867e69ea522cfc962fa5f9915daea9133e998eab22f32a18957a3cf7d91c6f3d54cea94875d60be694ee841fef01e69bf5997ba4f25e846558431eb592605265f235211c2bb2d4807278f4b9c314039d0768df24e9c098c6a01c689d6a143073fb1a29f4400
|
||||
CT: dd347d6a3d4a71b2bcae0a0c690ca311f012c6ceda4f7fc054b8f9b59bad54237b64b93331b99f1305801640a68e7d50cef581a57ff2564c90995a8dbf57fa8cff046d0b946af5f68e0aa3d73262965622fe6d35c78f949a6cf9e4f62ba71accbf403b690e31f610305faa6737a19efba1e1ee97084cff2d125bd69a5a4ff99aa399df650452daa835b3e54114b295f00d94fc60e2f8
|
||||
TAG: e5e72cda6755bfb3a44377945adb5ca1
|
||||
|
||||
KEY: 4852e546fdea545d7dd12493a687e895
|
||||
NONCE: 7a3e136cd961191570c1b0b7
|
||||
IN: 30c10d7a63b614bcae1b79b07c252dc55f322554ac34ca664910fe4a0c9a33e30698e124d91cbb55cf34e931807cbe591a87667f2284c1c18dacd108163aa7a82e274ae659c4ea144191e3fc0f82d4cac929969a50b98ed9fbee52cdf465a1f0535d7d7df15a9a6eff3f4a14e254571cc47f82716d7a835dfa839213677c4da8c8623517244891993ad5956f65d318d9bba16f1eb54d2974a741ac
|
||||
AD: c5ded7f545d2eaccbc2cf5cbd1b38b0ec3b6bbc054ba25a16efdd448e5a47b0085974e469c1b0df22441340170d6677f5158e4ccd71446d7ac73dcf5fcfe4ad7248c4ddcfab4c8ccab0968d74d66d9c9561650eb98c088d87766440fc9967e8463febcd12ed07f7e44fef47cabf05274002d0014c4e31f230a41171868db68bf5a83c902724397ed181dd8c6768a898e0c78f6aeb886df95442e99
|
||||
CT: f798de4998683da7fa9ca030a23dbc493f36c48bb52cd1113c3ea97ef2b67433c00195000777fa3b75a3f689a66b148159524a1fe9576587948760b279cda56164a23748564ec66ea51368ba2a900c97169eb33cf1e557f46100193575737dba670175035f0d921675d45415c6591cae079698e6b1f74e82d4b9216c20e907b148a1d514b2cf653d2e4994f7f668dcfe88dc49c29c544de96d8dd0
|
||||
TAG: 3663fb2672223154981b4c580ed3d2d9
|
||||
|
||||
KEY: a65b520a2ab67a24fb8fc669c41f2753
|
||||
NONCE: 3bd6c7e8d29242abecc4c108
|
||||
IN: 9d1559d283f7a38847088116f2156b19a8feab0731f04d0d499c6b0d21b8563a89a9c284230c1298b28a622cbdd38dbceb098ab896a7259caaabfcc7b0d9ea797178c18aaaa351c7f516342dcb9d3e91405882c8faa9a28f7c67f3db8913b31c0dcd56472d8ebbfb20cda2896a66bff2706b12ae0d9bc8c6c123c02f1f0bbaa418c1806482423eac72d718cad0dbccd208eb81663a9d9043d6ae7a52cf32b1fa
|
||||
AD: 2538529cc6eec03f70df2ab085027ce015279484981422f31e58aeee31e79703d72752af2b8822dce9b385f1530f19e692e00e20ef973d333f4bd585ecf122bd4ed9b0626cef46baff0302c71411d27e372361f36c7245096faff21f0236f3dd675646760d5687b3cf1544dbcaa863f1267bce04bca976616b890c7c6ff3448d16072c3938f9b62377609950ff7818cbdd21fba2560bf1954a93517962181b18
|
||||
CT: c3194fbb5c319a94c0f61c432a730ce7611a005cfc78266ac4e5d7c95351e71d613f06f52d9d008b9d886f4d9a57bcc232d47e0c75ab755dfccc057a9c7558d7fb696a8c29843a8b9199e2406d23cd6507d35a872fa54cb95e2cb9af45405ebc6b6ee353e8a80debc393329bb9499c61c6344a6380c118f30fcd76376a9765517652e1b21ecafa63c0d19c1875658f1eda89c15ac2daf1a6f526ca72ee792a4f
|
||||
TAG: fc16cd532c926ba01e2e6b15327bfb3a
|
||||
|
||||
KEY: 84215d2c8f86e5b7bf93cb0620da6bb7
|
||||
NONCE: b35e99ce89dffd1ec616ed92
|
||||
IN: dfe500919f97713f6d9c4f53913175b162b8b7587d85d5b63f0cd5f51def23119e2e02c224142ecfba7f0a519aaea3c28be20b9c2a9c98eb145afd4db523b7f0b822e67dad630846b2a192bb146dcbeae00198c81b80c290d881125c24a6b01ec901b8912bad5b081ec7d97d6997b33052ec287f692489df928ce36cba1e3d6a41cf10c697a9e1f4aaf75dc5be054b98965ec3ce173be7e127c4c5387048ae6ab5a8d247f3
|
||||
AD: 6bf6222e64a46c90f83f47305554d090bc8d3838b7a856f0e5e1d92c4e7231eda6af1d9eb7ff6ce914f2256a3b0c853453b9bc75e46109cf8d7e8a9dca224e022d3d1a139d00476775622799541edf9d53eb645a40f6d98ea559e181d96e4df0141e51fe067542300581c0424f534d2c2e3b1b27153c0cd496a1c03301226beeed2b5cce0710d1f485e68b44a918b63fd8db610c7ff894514e272b6ed7ae33a38907e0698b
|
||||
CT: 6c6faa54df62ba5659d45f64a5f014684138c93bf152da8a495e9d067b13a30b9fb84847f56231b2da4d87e6cd509a3e38a9ff47589c627e5b5a1196e27fc7afaa14a8432c2d10d8fbfd5d6d394e4b947c456420708a76c2aa638df7de119c160636fc8dfba32227c5de12e5ef429da933ab04e77b489f2eb761d0c753738647ad6793cad64b8942f621ac67b13bd0cab106ffeff21f24c79de69424e50ae550f2241d4029
|
||||
TAG: 202b232472d050b9bbc68b59a0c02040
|
||||
|
||||
KEY: 7c02b6bc3db61e23736c5f36faddd942
|
||||
NONCE: b958decc680d5f79ea7b8632
|
||||
IN: 7e5992ed0474f4224b8da1d038eeb78413fc2f9614fab7120043e75986a4bf1114a80703780a149fcc8dfd115b768f45917065c85176a3f00be40b427fe3765d3919a5b741708624e29bcae876d251fd46dd8d36a8ef66f671c25f984761cf7f75f4329de7093937cdabe32f130b77531ab1aa0a1bc38fbe2758c2664eded828b2589fc5c34d9a0d57a5a4463163736f419b65f0543f50207fff4cf1065a551bc00ffe9466538b673b2a
|
||||
AD: 76e430fce1a7d8340104e6001f1c2048d457ac335c5453e48727244b75c3c4f04f55afbb5ce55ba6f8632dbc168ed715b83968a32e5b8e91cb24abc9efee6dcb7a8bed9394a546f0b9efc5823ecaa192df061eb41c671bd863498c2130f322074a711ee43791a1cc02b5cacccf25119ecdd99233abf3b131c83ddb8c62c93a0d653e91499e7481303adc8dbac615ec464eb8640ea138f6236b0ee31cea060f97ea9145a22d15e28eaf6b
|
||||
CT: 14cfd190ae0521f94ee6b36bfcc403139782bfac3d33fe95c81f53e83c7d0c9a8fdebbddd79746b550a383ece1b5c93316b2fdf5aa36b4e97f739f78ccd2de9963ee7fb4d77b581cf676bb679b2dc4a48d977b45564f21181dc60ecee84d736f2324196c20327495d18973660ccb5dae69b79853d12e48ee0706c8ed821b7f722e46f35c8dee2b7b55ebee01dd3ea1e8ef80493cab6b27c264a67596cee06c15062e3a96b140d0d9ba38
|
||||
TAG: b6c47410e6f4a2f2b172c6a4490732f8
|
||||
|
||||
KEY: 1f58ccb33649d0dc91c50f2aedc95cbc
|
||||
NONCE: b3a392b1fff0157e95f82a44
|
||||
IN: 738e04dc5a8188d775262c2cdaa04468844755dc912a4edf9db308efb3c229b8e46b2b34aee2c6330219bcd29d3493e3cead142cef5f192b043502b8a4cf0419f9b3f5e001a640541c84141e36d585b05a2f702356bd39bda518c42b461564326969983d22c3ac5a2aa214807ede803d57a61c9547505dd7e08402cc43e6ed1574a48366cf5b5573afcc7aa3c4d4721b362d20a58cbf251315f2b5f9e2c97c5ef6bff44beaa5004e5b7c7f28295df2
|
||||
AD: 93f7f5054605edc769efc30b35018ee6c929a83bc6454352c69ba9c72e4b4ea6f51c9ed06f314b5682be6a701c719087765d0a7022e5c9d495f28a9053bd435b8b834045c3670856149b08dae742b372a15a0184375d50eb09877bf94f63859e64228606791c516e76c5695a4e529b9dc5f76eff1d4641a22597e4460aea4eff107348077d4ed2d6262744b0a2d6610f25264d905133309ace10bb52f7138674c25e5d43ededbd87c13dc8fd9d3b1b
|
||||
CT: a002b47b18d1febaf64842fe9011484d618a2e855c4efcccc7d08f02dc9b53d0bd4fc8013e01e21fbf2d9bc7fdda69e68be0c06d32003d045dca6bd251c0bb8c2cbe3693b252265c8694295772b767f83661ecefd57353f6f1c442f9d21ed98c55cbe1db8171ef7b54fe3e3a1a253b4dd48416b5fbc7c18d73692e9fc90dc75d4b88de1fa47c9ad33ddfa4e582d3fc61ca2a8b1eab898b9992c8e56d170730454ca50cd4f28d2759388cb8e302be10
|
||||
TAG: ac502a9a52fb3a68a7e90dc639c7ad42
|
||||
|
||||
KEY: c67510714f556ea1744af9207917eb60
|
||||
NONCE: 71b347a21653cec3d113087a
|
||||
IN: 7040fde3513cf7f1886d7be9c0f371a3b75415e94c3bdfbef485081199bec4494beeee76dcea05b6601ebd4c8fe231fa16d3b0f046eb3e9c9ed8baef25bb0ff6bc85469b2eb41b929fe904735f819b241b01230c68c0b61577899426bf0dd30e085cccb4ac290244d8c1cd7514412a3ebc51aecb6bb4be1a5a4a8d2ff3fc99191f7d7d0b44fe2cc4ec34deccf901f54e3dbe19d2dfe663855fa9d93a01ab14faed7f00c14834f63e1d153441c6fabb3cf22506e8
|
||||
AD: 6d28b410c788dba025c387f5b94c0bc392c69ef646b9cdce53dc169326359de26a721703d9a7c5017631a469da13b2d9ad9115de7d06922ed6f093792ac25ae2e27993ad6be5217dc4f6c51e18f230d4eabb01a474704b71b1407d9cff921bd98e28bb60c4fc019b4d609667c747e83eef779ee62000b6800ba2666f415dccb12d43af4f585d3185d66ba2ecf0b0fcddf762445dd1b6154591dd069f03977243b45b113b6f9b110f9fdd96f0b74e2c9843a45c6a
|
||||
CT: f2a2cdb4f890241f44e00b3373769542cc3dd24c3d07502ed162dfa10be9906871051b991f36b2d5c4240df483c2ad704be14b9efe79ca704e8eeb9dc250e75a92ebf5800c59fb9a6a32228fa1121d21e0b423b77e20010d36b9e6c68dbc000f69bddbd521a1f7bbc9d7e431e4e46e5094be96a928c6729293d2d805c468a3993fb7439f192b1142272a78585e3b7fcedd2f7cced52ab2bc42e2521603b89ba7633fa3b4d07d9a314d1159d7bd5b2dc5198b0c34
|
||||
TAG: 0b386c3a58ad23e9a45f00ae107d319c
|
||||
|
||||
KEY: 171d25e195bae2eaf666993f3b42d690
|
||||
NONCE: fc16bde0c69d5c894642f1f3
|
||||
IN: 8775d6aa2e46ffea6ad4439000a968bcd4fce86535b7265684071a498e0bfb37646f56fad79e0fdc4d6016fd1e935dac5ad74b11c69f5261c3321efdb9cf03f9b7ec681a7f708ba8e3f66648b24c41485a5147df31385809c800155d0d4bbf41d248453302c3754eed4909b267893309ba5249588cb4a4a14b4a29496f1e799559ac9f4baba7a9b4cb5bace1c11dc0e7ef7a2ddd2596c29cdaa378b97c7d3c50db49bcadb8e1840c6b9fa12ad88c0b8152fd753efb04ead427
|
||||
AD: ebb169a863dd05cffb9deb866bdd130a1c6852046881f3f8e9013158c83bfcbaa98743957ed4b0619eb88d7ff69b3a5d06da74076c3cc2dff83dc0375236d363c0e2b1fb60c9cf10ecc0fec94757b1b719abc7066af15ff9b66788b38083f766d67005369319967995407ea20339ba27e7bf1dc263fdd54ddd8088232a500f605ba825fedfed69cccca75c207b06594d1d0070ed12a259d4f574f352d2e2ea6fa45199213b6a42d53a7c717250715e0404f2fe7b64e3ec7e89
|
||||
CT: 8694eac2bb3968303f795bf0118e43c132c9dd22ec320ecffefbe878ebe6b1e0833d19515c07ebc83f12cd9bb50d2658e6d7fe44a9fbcc2225e93ed58e1bebd78edecbe6c8b3491eedfdcc957cc8ddc95d8116d50cc50b1999ac420802605cc652134ce51a41533e00fe232344e805df146a952b40ce27a2f5c6bbba2154489ca40cbb617476ce6ceac1a6b9c0175ee33615f252377f52583e970f77795b573610baf5cbf5edc6d2837244f88bc155f71588c9c4c1c802be9c
|
||||
TAG: f6725998336b3ef020b99818e0d932ac
|
||||
|
||||
KEY: f7db0fd345ca6ca82ec8624950f8e672
|
||||
NONCE: 3e7ee1a209b1a191f0a00370
|
||||
IN: fa86869e14df0fd8e77eba7fe5a933fd1bc58654deab310a03aa7202a089713e323a323f4932b4b8f6b40982d6738aef48951f621aeb82a747d290d93d1eb5bdec6a62fe66774209a4aea7261acff80af9512af090e0eb0f5905ce8baf2a0ec50ed89906d8d67f370639e6f16eafbdfa982897cd5a3f88929d7f1032a8b3355223bf666be94ba9945fb5cafe655d59af69829ef92365f54ff3eebc45e01ffc439b16e23ce892ba6db7e661fc3676a175a8ede746000ca147db57a14303a1
|
||||
AD: f7b826afe62356f985e8e10ff356dc9b5b9d9df24486523c3bab7db355c84ec7e4bbdf66482b74fc6b4c6aaeccd7717fba44eb4820a40f03639076776719ea7aabd3a815c201146428bf4c6bf1e8b056b5a22ebcb214fbba64de54089a20ababda5c860ec301f36e1801fc55fe8fa189f35722a2cbf83ae921a9537be2b4f060d918af9b12f9111909d59db7cad24418896ce49762223d8a20a3a83fdf24b64703c19c78f528daecaa8689f307da7fe0befa1d6b1bef24ac8d9f5f12b6c1
|
||||
CT: acdacc648833698eff4d42a5dc0b123cdf6f2985ef05e6f2d42c9cd04663635d240648da18dce158b21cc0a3f7a2c35441799a4f1f5622e11051c874b2bcc64314bf0b94c2589d2a24d996af57d22085a64f10135322cb68428fbb951d8b14683bf6fc96b1395829a0b05ec83eeb20e54daf7a413e070ae1e0b73bde56faac630363fe215f1883cd9eef9c3b7d076bbb56f6f5ffcce0d31570f79be8864482b6b3666424dadb674f873a1b52ae6e3d8ec8984edf54186e38c71602098308
|
||||
TAG: 4dba5b1385565427a987c9d0b030f4b2
|
||||
|
||||
KEY: ca80ac4cf4057182d06d65dcdc09763a
|
||||
NONCE: 63cdd8090e041baa9dca5bec
|
||||
IN: 701c739ba0c146983b9e1fe0a9723850caeb818514860c3d4adef10dc5e020a8dd7f2fa282896170f9039d5b3fa629dbee3bcb81db44d0d68f9522477619269a59ec1a9ed399d4902f25271dff5c42f3747ab0f4b61c26a2c1bfe1c0fed02282fc2ef88b47825cdfb11df3ced0fe0227e8264132dd62af2d31f23d0c0e253f01c80400127c37806762eb28bc71f31807229172c78ae994b4ad800d6247ea12d3f4f902bb50b72c132902dd4faee05e67836facc7001c8f58475366668ed20d4899aec4
|
||||
AD: 0e91b38fdc70951b97e43aa9ea2c6f78d445d90ddf4faabd3e6e0ef74f528fbd5c3d4da18cc3d8bd3167b756da495cba49ea35e2db849bc37f6db8370b492d7f82f2efafa5444ac62835cb5602796cdbe85caa50084e51eec2651996d2da0dc18fe10bd6f374168d4c9ea0a36ba665148192252ce9d05cb78429c55256fbb65f1bbffb8799d63bf41701d1d706a44e3f27eb245cf720f2a329ea24fbea803c575513830fff579a1bde3daa975eecdb8d3956ddd374fe252637aac86ed3c702c4ec63e6
|
||||
CT: ca46eac0addd544bb45a97a4989d45d21599ec70f843d9db38157d186716dc39a5d1a5c0624e6c825b5b7f1fd41aa542ac846ec0edfe6bc28f727823667a33cf6cb5ba1ba6654cd023857c53ff00a63b34d2c17ebae5d46dbd073edb7b2f9e02842dbf663bbe36238f3eaeb7a23e328b0d3d50f49674253898f360c0243722af266c934f021e4f2fb8747fae728d06717b2d68cadbff762956826c910cc8ad2d4aea4518d5ac4deec978a13072fd1675a272539ebea31d736c759227f31abc911e0e76
|
||||
TAG: 9f0202c228ec48f4be6b2f876fd05a83
|
||||
|
||||
KEY: 9c2daabcfae974ae165a2ea58ecb212a
|
||||
NONCE: 4b9317e4be2256a467e2831c
|
||||
IN: 09169c1f5d873f03821393bef013bbcafcd82314cc986675922e2d43031417c8e65e625ce737af4621aabea6fe75030b84acf96967e791f8427b8f052051d6247a897006c6ddedd49cb7148afa5109a561e78abff7c55b97091f356e31b5667270d5653a497e2503d75e5856ac1efdcf3fb6e80b8deba8802acc064905e2b09d45e446d7d810971e5996540ee9c01fac1b4331f99ad329565a8db38eb93f2e2a8ca37d64d73cc8a7f4fe3234cc155226393f1f2ad17d0f01d5e60537ea44835dea853e027dd597f7
|
||||
AD: 1feb0ca13b3022456a4801d8f5382cad95f7a50e466a102d2208e7482dc8ba5c710d1721de7103000fe8811bb13fdf698844257dd164f1e21b0707251f228ca8bd437994526ed5684c4165c9754d1cefe7eb18f9e116a455c28db1f7c04feab74ab06af029819f51ed96f453fb6a634f73ba8c80e19dc62384e82feac70a12d42e3125c360ec2a97f4ce0a07039687ffc37c5dc1df1ed24f05a37591fcd5c34a3fc5f825c79213adbbdef65078f5e41a4062517334a67560ab215fedde53cd8129a51f27baa80f53
|
||||
CT: 8a4d4ae0842f8032d83b2e4eecfaea439f745f1d0d07808bee4b68e3b58fcb65a4c8fd9b93cba2d5b4781d28a9cc01508e9e85796551064867551f9083cce342ba1aac4d2b8f5b0b0e4e3d7c82082c441467e47aa2b0f47e167b28fd29cb8d5ee52c2298c1f87cf811061d922f056214346c1ec3d2534045c5c485ccddac7d9998d3d08a80a62eceb2ee18e1a27f97616969df52ec486015974f160745667d6be25ffc20b143d89bcc8b6eab9dff82ce3c8f95a034316a8f2f2a52674105f1246b2daa28edfd829d
|
||||
TAG: 0361e65b1fdb9d967492ded32e1fe811
|
||||
|
||||
KEY: c98ed84949749efd2ee41eaeec51edba
|
||||
NONCE: 7b056c9c7b393b0b04382946
|
||||
IN: 41b87fe62c82bd34cbdc70033ca8d2ec5f13eb2c14947f97fbb5d97da7323f8eb5c2eba210be11b1ab9554feaa516aa493822af4a264c8849e9c6ff41f690f44966bb49c9c1df5995de8070a2fcfa42d0b0b5115a36738102134f571988ba4fb210edc3202d3c74b5f8801a7d1e217b90caa27acb49ece590ebe6637fb6e2f5f0b849f29804efdeb8c102b3e3d2abfc4f6f2c5f71f0a6e4d5daa5cf16561914f14601edc40547d55f7d11eb4768d5c64fc621d04e8c64aa3aa1245c7192852d2ccaaabd448e06f806eae66da1b
|
||||
AD: 2fdac5a70356c2c8d70def497321c6bee8ebb08a5abc8dd508d83f03bf1a09942d7f7a387d4f875a1ff16c7b5abb53d32bcc372012eab7a3b848a93f7af634eff8c5deb3269d418be698a3026f6f08f55a6e31543105cf1ccf56193cd1af802f32e10512a6bcd3101b7b54a8f3efdba03018d5f2475b51bd65e5e183a62ab11c9462450883e3e87a9640eac909f72b83da8bbd34431ed87d14c6f7e79957067c1cf2a12b5fa083496f903269a3c6c8ccd5e3f9cc287904223ee62bffc4f157f0db409e82101e3ca5e05d962378
|
||||
CT: 384ddc8e7ed6868aa722f6785fab15eb69caadf43246521b97c8d016afd976360365bbfc9f48c08b0eaf5437af8a9c23061dcbdd0d22e1d58c92951b43e013689afa6b1587f79fe9ad3104ee1f80b3c95388e35b0b9a5a3b733b32a3e62fc143e6255d0e5b1b55bc9439d3c1cbed610d36c3667378bbc1ac20d93a5a7e5563409a5b94ec799a5281213d724e46f4987588e6bc7e9e6468bbcf340d5f1a1eb1b45dc9fe9c832befff54c8a85db9c07196d7d45cc389fc9d62f4bf1f4bb82801cfa9c408498331eef4ae1ee2809e
|
||||
TAG: e8cbdc1d6d51ac64f16cf08725f81370
|
||||
|
||||
KEY: 42ece9aeffc9d2e8ea02e73d1a4de834
|
||||
NONCE: b59e0770c689d60823c06c69
|
||||
IN: eccbb9a2c1241c88d17204cb0f0c069e20512bb1d31f966349add203d84cbb79d88f7add957a0a8370b9a0e04c9f17215531cd48d08c4612bbeeecf3dce68d41724166e06a331e7897e8c7c6a6affb7bf07dae1874bf3bec044d38227bef5c228f4cface9ea37255e15d6b27e154b349b16048b0e7984f17cffa03da07924b190f9b91d6222db1124c1e4e77c2b989fe2a7c338c7316a49c7df0be173d0420e8790bad669f6da96745cf34cd2eb429d18eeb61a8e80a5e03294dcf3a5886bd1865e2a55a72574db8db04a9560f969711aa7a
|
||||
AD: 2aeb8ee162a7aafe5a72a8d8873ce3bc43a65fd7bbdef1f6ba71b61e5a9c3bd033e7e8eaa55e08ae381362ad0991d65bf22c99a425019c4cd7768622f108f5917a4be22b4ab65ede66c58191e402f8cdad69decf6552dd52b62e8d62268b84122b64145c97115373a26d2d5e59e69b7dca5f96c48106e9fb3f7fc7e0ab11c78a1fafc697fc73603d3f08fdfc0ee885f84572fb04fda718a21744c7e5dbace91b0e141fa82fbd4d1a7dc35edafaba7c5894778c5952ec787bb547a37e509b035c684a8f51ceac5e12ae71b165dfe957c6de15
|
||||
CT: c5874137f5e75ef02521b37f0759b5724798aaab8a1e62df81b73175690ca1d32cab6e7a9d7803a8aea420ab273fb46eab9e5f0773b7f5457d7a8c0058ed9675a6e1a7f15805c7fb695d277ba06adc3963606ead0cedb342614cb410f4197f4fad0b5df2187f8d2ebfe85ad3d5f59bbf652364c7e8c3542c5d7f15bc6e6c24eeb1d3232bcddf6588ab1c1953085bd0a1516046b76714d2b97718ce57ad23cd213507f6cda95ee9c5c23036cc7d4133c84a1d36393979f9d1bbc613350252a6de78d905607adf51368175a20106f81aa9ff9d
|
||||
TAG: eab1c7790a5941270f2ae49895b3113d
|
||||
|
||||
KEY: 6ace8b5fa16054558c9d0e272573a7a1
|
||||
NONCE: 358c73828e032f0e0db608fa
|
||||
IN: 915466e994705239afebb8025aa965626973e41a750bd75f9e8ccc7c1078ec555fa618120b4f4b5e273fb9b262df73d39950fe5cc1c265c06a08e2318efa83c63dfc689de80966f45cab0d2dba603bf116b9ef7242bf4d9cc691a775f78148d2c75059d6049c861da5dc40d5f94848c7247a724db956d050975d613433066ab89bf91936e0fc85c61af5c2c61cd1eb414b9df0dc125a31a3805903a886b427fb78551bc696610833a9e55c7776ec1622abf839d733594864de06999be8d483f8dbc4da99f541c6f7e21d946cce229a104a57e4b823bfea
|
||||
AD: e54b90d037c375238f4989910d423bc58d32ccc06ddee558dc6a0c2f9a0f13b2332883e2c4ef9cce41d72cd636516b3506f28f914dcc88311fd7c79bff0ad32770e4847362affd98ad468117cf0daa0f5747c86359615ad6087ee18e6c58453be60f3bf30f8c61c1466d107116f88499fb1b5df9a01eb762317676d5413b839c66e5c1b74121f6f2f7408825745fafa2b10ba7450f4ce207a9cc682d1e1442f972a86d5d4039c4856ccbc00c43b5b3412f5b3f87c16508ffa527c8080a556944d359f388f787f9cbc033fb3333e72127e94c455b433222
|
||||
CT: 37be446820f5635c1b5ca1d8ccc2c5ab5b393243ef5229999a2c084fbb54a330bb338963740ba470973adc86e640fcc167a88bb940e5ad1723a01089b5e804b932138efed6fa0ed99c1ac4e9c607f466c829af04407a4a2e5cba486685f693a7b973921746902ad8a0242e02075cab66204084e6b281d58430f2d62bf55ad56ad279bdab0fc8c3d570fc3371dc3280ef3aea70d686c855d40ff205c04d457adb518d904f5715fc6a9a5f30bf1cc74703b175d70a1470cc810a366cb8927fb937aecc200928db6b73873935c429e2f8d595b418c5b1bf9c
|
||||
TAG: 01b05fbaa9f2257b3c23ed3cf91bcbd0
|
||||
|
||||
KEY: c5bf40aa1127073b03c114b10f3f78f2
|
||||
NONCE: b4ac4fe9920fbb4e032f6aa6
|
||||
IN: 164906110c34354a0d4cb6370e1ccc17a739350cbb11d6570f398d50efe3d9db1a97f00d031a579f56d23da2441295af18a640a4e33c29dfdc848d722786d9b73550bfb76da1676af24a7bdf5fd3301090bf342369a24ba830c7f8883db6ed77a2ced83bb85205ca31f75a16a58fbbbd163a3af5e5021bee2d2cece33c08442e89d3f4d6d2359b94a7ec6cac388208a689b584d5dd1103fcf6af10ea2c7cda4f690ea0e4c7376fe2c3e69365d982da28c5bc18d58fe384c9ad2689f4047f9575e54970961a02419d9f2bac8061ce943f132edae1b9622738593cde52
|
||||
AD: 9f05d0391cb128690cd8bd120120f21725a79e5d2d0ef9e8322c04bf775f7215a82ce1ffdcf0f6562c188e84cb520f30842b8dcbdec36436725633325020cfdda7ed1af3323d86b2bc72d1b4a326f02be2231fcf133762c4fa76c8a7d5d3ac31cd19f63411a220eba4fcbdec40b8eb01e4ef33c6620978d09a8d428ce0e74d02c140881f46f6f81c2850edd82dc46f3460b5d5fe0b54f09a3f31548dc520f1dd46ed657995e63297b6834df57525408b944badf56234eb2b9a43b1422a5c6a59bc58be683e47753803f7341cbb0075b5795228b586cc571c1bca70d5
|
||||
CT: 5c75ee10a917651c49eab6a1187ed631c7069134e492bdb5e5698f8ccd5503cea5b1902d779c2f6e6c03b0108cee3fba03f2b47803e390930060ee4ac984b1ceb9488b4cce80e329d3427851aa7da2213eca2dc5f79366caf601c49a6b7a8ab068f1a9bb899b81a23c99a9de20466fe01398bc071c724b2942640cb1a00489e0ca7052f7a06398ad42500780f194078e3e77142df5710ae88540761b902084f57d87c2b0ec57bcb7eacee6743d419d8877d61666f93a127d22ccb49b5db0b93e4f4ac0dd9393d6351780dafa412380205a90fc8daad3dfcb1b7ffaff
|
||||
TAG: 8048088e7e9dadc4ef98777c0f6cb661
|
||||
|
||||
KEY: b628ee6726a4d7925734ab1db3ec4645
|
||||
NONCE: c830b0d1b4113f4c9aae46b2
|
||||
IN: cdccda3718f2b0963414d965a3c36bce0a165f8e88aa70ca9eb3de6510d02b0b49c29cda4a7f6d439c18cc8fd80b932d0a4190236a13edc9994b1c4a71dbdb694ea5dea53ef781ed398e453ce372a99c204a138739edf5b606160e38cc8444c8fb6e9cfc3aeecc1760e90d13d01692ca894572a0bcb02e13f61d8604a75bb98e96f5f36d10e70a48bbb4f73771ef97031c7da23550b3a12554c2c436115fe56713dd303d1c3d87bcebf25f61710eecc9f01c555494facac496c68ef44344aae40bbe1199de793096d4630018a725b130a27d38ab2e8c629e61d2d8d37b5974f9b7
|
||||
AD: f4d345e55ebd1ef9faf967d76736f7ef38e5eb9d659bf8a89fd3c6c3c674161bb54758f1c14856281a7dff7c9cec16cc138384f644544881d50c7692bf22513223b63274e3cb7509c8a410a389277f86cefc801d026b0049c13d85b26da1dbcc7cb387084a3d4a469788ef85b6da02ed2ba0412ba999c8cd83c9c6716cd66b65760c42d4ef3e324b470c2a5e031846fde97cadc448e87bec15164da006c10d3a846adab2b09c29ecc27ec8a9134d5fcfd2c54f17fb23f1a05dc8da46e737f317db42e927818ed00d36af8dabfef09c8641159fabfcfaed344b03a1dd6f9b883f7e
|
||||
CT: 4f39b8fbd8ecbc8aaea871db2e67583a5b06cb83ed8035ff639dbc9af92c4e3f9fe57b970f4e998a0262dbf77dc024d5e208d3678ae0d90e6fa5d45e2c7f0cf90676368c8784c851d3818e221abaa87c5e54298229a2f4d3f82505ef7bf45686aaf12e8322210a727cfd57c74a5f23bb5d8222115b28503eae7a5c600ebc4765011161736a346b535e1bfcded85c198c6ce6fccfcff0fdb0c2fc480bc6e71fd5de77355932d82f8eae245091bcf5abfa0d62123302e5805ab1f5006a976bc1468e3bed0452c5844029d7d4ea6cbd4a907e905dfc796c01bbeb69c54807354a5bd8
|
||||
TAG: 2b55edb998ac9971e53ebc8973c4e8fc
|
||||
|
||||
KEY: 095b26bf096971842fae34af6833c77c
|
||||
NONCE: d59d30bd5384b86b19b33c13
|
||||
IN: 3be9eeac265ec4eb947dd32583ac2e595505b363d660f8b8c2ef631390bb152f016ba7c75bf7c2e5e23c980d6967772ca4535bcbf4871ac1bf70b53826a34174e5a2e6118d7ff86d4836736c9a1f9de44c80b236c5530bb5f80e5fbce9814f3b0843a088afd029f4cd2e6190dd51fa804f8216448e7acc785ddc5478287b101bab80256977494fae87d0c13054fa4470c3827b2e8172224944c8c4f78b0a33dd78ee2bff16fabff15e5909f62c49beb455dd655ee1188b8eff35bfba72f2ec5e4ebad63d7db8b6338660f9b818c6832954241860925ea9b7eb07479dd6de27489d64b1a9191b
|
||||
AD: 2ff9a8d12980e63a378d6d635d319c26e8f747435aa5d797c6e21aa69fe21f653f56da7db7d67cbf54451f336f683aa9cf373ab40c16738c44efd3e664ecc6eec40d6af82df2b3e58d7abcf26b1d9ebbe6263176ce4ef8087d14b0d5ae1c16917141d2ebdc76a0834e8d83c4ef76add82e957ae376b210ce2d94d2684a045a109454799f3cb453279d89c60ba9d038a1dcb99540fac078d7216ee94f96f5cce939eca9b5f9715b1cf3c9f1e6be982897c2f25225919db3e31595713a4e281e9919bc2c5a88c46835ce05411d0757eb738ac9e45ab3f1a42ffcd6dbd09f17f656f40f1cc2c050
|
||||
CT: 4723fb7339048f811434eaaf1db24759fc232466f5f53926b84e740b67f457c8c76f902f4d70ebfd97696380de95e8e40e62434ab1089e3a5308cb066fd4cc7e862a391c2f727a63a01bfd9fdb8ceae55067fd9d6f55312f73bc2c38e4b12b3aa96edd156dd758e9175e67a64a17aedd27c9c70945a065216773d756f533b035f2ab53335a159d9ed3f97b2b7a57aef676fad95c46e3b82eb800197c03812ca4e580916c5f7cdbd4aa1308ab16096a8af5290a0a2330902966a58dcf2e72eea7ce799a8f05c986c6457b05e3eec2adfdd4ed38926a3dc07ef208c91a619848917b96a082ac27
|
||||
TAG: 3ff349a628f7fa8d3f970aff8a6302f0
|
||||
|
||||
KEY: e27171ed1baad563d3d299abc0968b75
|
||||
NONCE: 5931a4414d5a90e93d2ac47b
|
||||
IN: 1d209b32a772e87c5bc593fe943d3d7a1497f390ecdccfefac50ce14595b98b682111f82957278241f291e655b3af108a9cc1523721652b6d446f34cdba2e61464a3217b29344e18ce8f47f10da88c2845a009b7491bbd1e1f36ec49997a0fb09764ee25355de29e56eae7af42a8c96aa137c02268078b7f145fb1249bdd74f2d4e4685de75be4dd7fcf29482eb26b5dfa5028accbd23c3c654bc202c1c0ae7a597ef15f4d14f7b8a14fd45698470ac6355e04fe4a14e3b2907bcade18e4152c68631f313cbef48341008482f434c017bf8e1dbd048f0d6d207446e697fea68202be7283188d1227f21ae4
|
||||
AD: af2f6abc40ca82d92901de02113cb8f7638f0a510f6a03bf056a75b02beb10157c97632320fe14fdf0610235e3a06172b6b6e80d2fe18263b11e9a5e3a07758c55131ffca0a6c9b121c37a0c85658125d5bc2edc8e4e247a636d7793a1cde364ac22bf754844607daec0a6b939d05fff5a8c44ad030181aad2361ff61f20a224f2bbf2083b2fc2a5b92f5a66bf2f9b4c49b39dcc23cd3ba66b5e7c19c5b7b74a766c3da0c2b02ac80ac22c006e8eaddf48ce6f6887f69fff1fd0aaba0a0f70ef84b54280830a62d8b0dba55ddaa5b0385c586dee60d1a05a28863a081cb9b41edbf3ee9ebff98cff983917
|
||||
CT: 673ae48b6080a3dbd08034312c36201d18508f4e1ee178ae2632a9a5ce0938687ac7e6cb238cff852ecfc736bb8b3c04b42752fe65cbf6ff897e207582e85533f7c238b0be14bb1deb4cdaff524b013661e4f2c96807bcd928e15e4e159390e1eeed036ce776b579d9f3fadcad81adfcbb99986babc9a8465def3de8de0cae19bdbf6488c12534a9b6b7d6fdaeb1d4c3be36b4adf7444a0b9fc69c69a46f7bdeced1214743f3357803d2eae24dc50933a733defc653dec56f0e0bfb8928de76699d4f7029fce9175b3b7cfb6c7ab1018f6f3eeb2b9401115c8cd382b06e4b9b43a097f42bebcc1493a49d4
|
||||
TAG: 285c1a0028fed3ab2a4d68946399d700
|
||||
|
||||
KEY: cfea8c059d7b866051aa54b8977befe3
|
||||
NONCE: e54e684ef16a2fa8e25786d9
|
||||
IN: 5a20333c4dd9b7378bfb773b7d64ab80379d16c0a56eb1f48f53c19d0fc4519d0b5f478e37f16d6e5085af31dc63488f9f2cbde3e49ba954b674b0a4e20df811098f7b8e716efaee6a4109f16afe128ddb0e54034d66bd00d13a6c69c9ef2e5a065825701f5e85634e118c69ff0fd71bfccc25030fe94e778e7f474136cd3722eb5bfd88bc99fb45dbc3060a24ac2bdadc5c82d883c5c63ccc0f7aaf5384f4c7fb07310b66a7c767d025c1a02dc9aa3d7aa921a72084906ae6039f837454493aac3e3549ad3722a735dfce4211819a2d7ec279221d43360edd9a4cb930815c8565c22b94b4849a979d5e2a57b2da8ecb
|
||||
AD: 376d8e02071a93c892293902e369b8c7c44a4c9541b5050347b016243935408d0c9557b0f66c6cd493c1b8da68c8635f4c868e685674aed42f196ee9b6e56ee44510eb9b9e89108d878be917454dca0c62d207fa462a563a267270d6b1602d6795717475bc6fb5c87b747589328e39b1d4db3cb19f0fbe9791aa4232e33abd9e14b5fa3abe4705ee988c657677fa063aa349f1a05de045f3ee66da03af18b6b8b83e29b203e12bb02a4cbaf79eab3cfeb83a5a997daaf8f36fa9e12faee86c9cb351ff361351d98ee3a10af999799955a02fc46ddf56c23070319b3fe0cb42d07d811ae976f242670e618eed113b4342
|
||||
CT: 06ccc7336773919c2b1bd832e7c48ae4a569db96545363ae0b28061fede28a25ab6cc0382aae3e6b31efaa4c225073640d0148878524a7f381f53b4d21a43e39afd4c12cfdcda442d5023a8d2a8ad49f4a002ecc8354c86520524017e561fe891b6962682d168a860210e0def1cb4be1bfc6590121c1b1988254757fc5a37ef916827a5fc258ae772773a6902b084817f3641c21d3d1d1e8818b9851dd05aa49ea74e16778593f6f486957345462732ab92b1e4b06c32b5ad3270c5ef3d80b4e4bd08451e92c26acebcac1a4592e08ea434a1fbc6dfedc677151ae9471661913db19723184d9ef4bb49342606f784d98
|
||||
TAG: e7be877dad60c889d397726bf1b6ea89
|
||||
|
||||
KEY: 40d35704108a944f1e7582503018cc85
|
||||
NONCE: 26048431289e7e100481e2bb
|
||||
IN: 515f9bd4935dc10e77dadd81f5a4e0b53eb858ded393979ed75330b80adb36f6b81288dcbc581e8d93b0e4705c07be3e200422397ca3648c9676952e60ea26d12198add3e33cdc589ee5a800a750d77978976344dd5dc710e56dbad462fab7fbd08c057a9f8765c4caa9418e6380038d288e09a90befeffb1e8d60e79925dcb3772cbb3258b15544f9c9554181df3483784b89b73bb6f9ca55f6d644c02fbd7e31bfbff45cc40132d2bbd08db6a27f5a302e1dce2f0afe4ef5bd4ca844c7900ba18faa1896a36896a1c80307cb37162174205665613b39cabd0a5b2dd1d5f8b6fee948006f0b2e31488c0c613c1d178b7800dddcfc
|
||||
AD: 9c86692c874fa785e0d9384061bfce8d8332871ecc195621ed478706c46057bb4fff80515ed65b5fbbca3d463a62e227c228a340143bf012233b1c05a50fdb4ed04b840d983f47e00e001844a0d2ce14f6dcea58069c9b0bd8824537d2420147be7caf4a88dc9912853a7fde6d2a5cc21f85eeabca7902b94eb79d5fa143d02585acd57b93e4eb6bcdbe289a51c6631f7aea7bd9dc0f6cc2ee8426b37220216f834033fde15e3543422612fb3d972b8eacaece9614a4b759d93dcdeed026cc90ea058d7dc985c10859d4ef14ac5cb14849d4ae404badbcd98c28663eaf7274aade4bb7527c4f960875ca703ee6732c9a3720b629f2
|
||||
CT: 89a21a1d502ba947ac1921efd3c998bfdb437c2da0802e5eefff66de3af00bde934fb9109e961f179771c52de783680683f4bb752f877897882103146d030bea5bc3c03f923b477443e640450244cdf66d7d346954f6e862a3a577820d49151a82f4205340ccf2e11e4575b53f7ffeef09ec640df65a0b8c04b37f6dad7f940cf2d7446a6fc5bc2dc31854c27567b2badf6f8e94294ed5d899a458a080f38d6e72df59f13f5c8f736264fa2b302d5375d6e3f8c3abe4811f4f85cb6e302e2c12a892a1e7a78a5a33e4b555c02917330ea7a45f20cb59fa991f183d1e2a5bb1761005b73fb728124fa2082f41cdbc88bb06389eb165
|
||||
TAG: 5476c08e9561442745fd2f222d08b535
|
||||
|
||||
KEY: 2c6796d0773d12455829a3242ac7d480
|
||||
NONCE: b43c0e7842006f6a7953d598
|
||||
IN: e0f7ac13e8cdf4da6c17f1221df18b98267277e79c362ec2793dbb842bb9662b5e2fa34e43cea12f71b4eb53d9c862f176efc5d91f06b5c532d9c30206eb4355ad442127d325ae2c30ec436889e3d7a56b683ee09c7d79768d6876ebeb67b5a2cc13df02ab93646386106e0473149ed77ad0ec91dd282712d0aa26f30bfc44f93cad39504356e3472c5bfcbbf9557cd85b53e33e1a88d2f08686955a3d876e4eacfe783e5f6089b3106295899d4a73fbbdc1bd22e1408a2b93a9d89c9489cfe7a9a7cda7c92b06560a189f5ed04d1f02489685c602f8741baeef3fddf610b1a25ed26d88daf9a05aa0a476c8000dbbf798de92b0ab8779add7b7
|
||||
AD: 1048769719a44958dbafe1a59a159ddf2427c5dd8746a8454180dbf59f48ff6467d760f8e06aae8d2d2a79efefaef2dd2abf33ba1929073685d0320a583a56e8748288b50c7eac551aa859b274629f3d3cdca5fd7b2a08f0bc830e929584bcba85f80e2eb12bf83de607e4749eaf7631c3545f06ac236d55769c8a08427abce0174c52718c2c08b02afc7e418bd7aa7715de95a930eaf92f54c7dfa2f3ff3691187a21c6bb9b238d2fe2dac7266de30c94c7ee96fa60caf5ec0f5aae5cef28264933cbbc295cade787321f4c12f63ddd85185997a63fec48fc5ddb83be3b47a94e15dda3f315e7495098bc7a0b7d26802e12fdfc6a94bc6c5a76
|
||||
CT: 794ba0a7df144e66e6e7fc83ee290431818d149673d1821e1df496565aa7996f9e581fcfe9499c01d8716fd3f6d67acd6641285b70f8457108063933126c95b665e551925722af60aed5343e429e645574a65cb6fd767b204ca8fa91979c6fe49377fe4b43fb9994e619e1dd962fa49a8ae5ae0b8eb630f112c43a4e9c28ad91fee9b5bec0b27c5472e30c2699e984dcd9f984a3eb7a7b7209a165b2f4a74bca555dceb81e3495a3d39115d32609f372d8dfce820aded274ac567112d295de5b261b10c01f4939ac532d4a0591f87742d9502d7a2201178b4cb4c069b1873c44b73a901e299d4a41e57dabdefa39907dc559b44e99f2b950e09c
|
||||
TAG: ae5afc2bc4096e308cffe8063277ef88
|
||||
|
||||
KEY: 092e4a78c47bcd0b169aa35343c885f6
|
||||
NONCE: adb73023c873661f02bf4ea6
|
||||
IN: 0751fac5f54602181fac252cd2fc408ea3763fe229b80149bfb4b0044f541801843c8a20ffa1ec931830bdbde31efa998e0875c09eadaba6906c870549dcc650b865665c56b5cf29b75da63de088fe4d79cce59499518a04a17dce18879e3e33ed11ad808d470b2811da4617039758109f56fe75eeee696ff51c18d5ac04fe895518fe59435ed1f073b56079dec1701999ce0e5ab45829cbb85cb1f94dc67c9ad28815728f6de85fb7ae12203eff28420393c1ae5cf644bfb5633156e9189beb02294d7199e54ca0d2012bee2dcd6322eb90f41b3c6086cf0ac6b3888b21131f3e57643f2ab60141aeb17d9d07daa213658b52503482fabc4a0ba17bbe3a1a
|
||||
AD: 60fbcd82efaa99e17f3cb16a4d2a1e04659d13d84a83135a5e332366ba5e6716bb3674d27e6b2df4269180a0df25841e2235eed7d8eaba571b34178ac1a1041623138641f500a7d4ceb28efdc0ab45274cf26c0dd16174c77dcdbb79a7980e04d48b35efd3656e501e352b605bdd1b57cb7f9ceca5ca14a3953b2dc77d18fe1c4e1b859d2b02feffd3da7e259fbbf27721d330049f0d1c2729ed2f8048abfdc0e7b3609d2e6b4f5b42ece472f0fc330247880fd04768b678fbe20ba9581f3db18bf3668fa0c80751d78286e1927aa6e27ecce63fe883ee88e7a05f8ca2a387b86246f7d1a4791881b14f619a340163da62f4130b2a2c0bf39f463ef0af4120
|
||||
CT: eb0fffeb17e3309d1104c9a9c211bfbd585f9516f775793c365d36352e93af1b4db15430b454d1e7aa913f2af994191c365d76a4d49eda531fa7ce9c49b98bad4d591c868fb066a2e00a6bf4b1bf529002d403313c5df306ae34b8c62e939569bb5401eb7ba87080ba505e5c40a3856d2e177d247a5d8c727b32a13014a00a57e9f01cdeacb4d1abd16f1548256d661c45da12c2fe3ab561375875c7b6e273bbff5659749631fe26cef86e02742d0cc3f63a76ae5ece59b6556ab27da9de1a20c627da8bef3c596ebd7b246505006d1a381c2a24dda70e52b126b919471acfce274b89e07d125bc69bd94f2c65bddb82441897973566014fef625bca7e342f
|
||||
TAG: 8f2dbbcc01538ccc45436e7176c2df47
|
||||
|
||||
KEY: ab1405116f454a3b1f106fd491cdfc8e
|
||||
NONCE: a9e9a06e4bb83c215fc59a00
|
||||
IN: f64f0ed5ca25e118f2a2dbf069a9dc0169ab0079d91c6552d4a7e8d0314c910ce0614e1f6157b0f758ed6d3fb3fc3e2eaaa9718ef30e8d0c136c8bd6dcff97c0f5ff8a5d3808d8c23f2a9ccc35fb9427afd10dc1c298e95b335044b8d33e414ecc17d7b34901608284bc175418910116410a40b29dbb379eacf4ead521db3ab2a3d9956081af6d7438714c0631147b7d1e9ee4789751d4260b57630bb573739a3fd0b19a7ee8c301d7f1b09f86e60e31d5f2a86c7a65b244d5e4d591df3df3caab80887ea5f1dbb569516672eee351db5d5ee4d662a3d3c0e48cca108966ac6dfa6e4f9b88e5e577752826d2da05f2677dac7c31774eb64b1b0fc938580a78e4a296889c
|
||||
AD: 3726f25fea1d10c2712d157e1a1bfa75d6f9e5bda448944ea2b7b85c7d4ff4ac00f68988f2a290cff3d5dfd6af33770a021b03fadd5741bffb7532924f3f2841a7f7658c49c6b915b1dc41ee4bb9ee89386c9911974979f43e71297bcb34ad6ed085177ea91300c9b42524503bbbbfcdcaea03e3f2c939d6b1dfc9c6b6e53e221568d2557bc3055752f4fd487b903a2a0bb7697a19a763fb7c615c7edd099f72e87849f57722cb0987651bfc476a0acfe13d02d6b01f761784d247301bf514a14a990cd4b59664f826649e0f389787641c1e5b87388cff42fec144d6ff3f382b85062bc21368c93019bacb56b643808a848c60bb3d804aa64e2b8fa1c128d6914663d9d3
|
||||
CT: bc1c14f1df6ca46e6b4daafb016daa235718fcccfc1ac698a061885c33479c0a7fd44e46e805869383232168940b1a9379bc652c565059ba81b4ec2ab435eb9b91de5bc03cb0a7dc11805690ed9abbadafeab2add15f9fd69b5ff4bf4ab5cdb4a6fd3164ceb7820530641d8460b83929b13860bd2e64b984407dbfd2de51e865d88c63554ea1f04305ab72bfc991fa5573bd6b41c4f8c848fff4b0c5d2398a57b4de4678ca4dfcb16a7612773a24088893444a8ea3d0916e4b460b33657f41d2b04d0c28653ed068a3653975402c31088cd74722d3bc09c50679d0ec94c1e84844886b1a56c4fc3b14614634f08c5b0868d276e9f8f992f94b2c55be5f2e408a498d27c7
|
||||
TAG: ee43dba528a9ce84a53ed8fc1fbcd871
|
||||
|
||||
KEY: 7990cd12d13fbb929fa541bdb8e3107e
|
||||
NONCE: ff7b2818b62e856952aa2cac
|
||||
IN: 5ba2afc1da8c18d8be3936a2e515bf9eabb93e44905a86773a38de7f959c49ca56d7f1fb43213cf7fe394b49733b031334729ce6c7ef17d843790fde814672ca982807b76475350210871ddf8309f59fb280a7d41726ba7f00ed2fd96b4a17aeb7d157130cb7e49c8a454cd08622824d20f86b4ba062bb3b3f9d4a9c1402a9d80f3324e4127ee57ad94f87d6ccfda76145363fa70df95341d483dfcc304757da7541a0f148036b2e2dc7f93697d8d275456107a016b425542a89ee33ec02289f5260257176369d990c8c89df73892d7e67227086c0c2c258e5fbfff8bf9129a230c229356fb0935738d2d6fb82992c3465ca5a9472ec06c7b5a29240b611837225c61a0e14ca2dd30f
|
||||
AD: 865a9b2706eea62f3fd3164805cd8fe4740d1ba7be809cad9fb39cac26f7c57d4c449f4eac03d87f87dcf219c562b9ee07ab3ce22abd46237eef8221049fe499c9189f789948af92bc434b24aa44fff600c2d698593bdfcaea878f8780adbe8dad2cf453d253e8668631a6eb831be01db9c7f1b7b8bfedfae83bcdfef3501cf2b2ea48bcb19f40a70733f3e4c3dd90e17912d5797fa46ec852edcd49b0780bf6287679aaad13a926f750ad7d3ca1ccab577b74fc0ce4cb22e5c619d2d668292c9db4a98c5acc4c49561a77275c06f5c3fd514ed8555db3e2f50dde5c23e84a38129e7a91cec8d168bc828d09239a5c6bbb180bf69950540d8876f9fac5d1a258543a771610991b92ec
|
||||
CT: 1901c8f9b5a99c46c9cbdf8ace9db03f36ac17183295544d8170fdc3a16c7194a2fda400f8f0b251a3eccf639f539cc356ed3fd09383954a8119b536290865c30a629d44e467acff5fc323d2be97f29fb9b4ef7cf2c18a63dabfefd7f75e696c574372f4a35249897a3387a2b10c1a50ae23ea74560b498c9d06bede78f4c8c9d879667c8c8e137a0a254f3f881ce8d183588546e066314bf1989d1acadbae61f7836fa633de9fd0fcc5b3f72aa03ac432be8f7a14c8e86b45bee416acfdace44b783137e3135a801342061781007ab939a52c68d686f5e3b401240bb10e764211a059fb0aa00e2f635ef214322918fffd0326ae38ee939b4045c6039df7e7def36fdad7f5b65c20dd
|
||||
TAG: 3e003897b4d9411cbd449cd8dca5b58b
|
||||
|
||||
KEY: 64f0a8065987a4713e35dede10afb708
|
||||
NONCE: d6ee984b82f1097331400f38
|
||||
IN: 29327f95b41119679b80c3b51fb5240490689880ebb5ff7b59a62ae5e08f7cf0993c09b13fd845ffb32a99ce18c22bb8825c137c3aa622cf3a8390042c6a1a159aa1dcb6b6b21f4e07fada584dd21620b2fe0aef64dc609aac925d8b8d26915fc101031b68a4bc89898bb92146a0a580103da265cad1946791c5735b95d85d3f0f1f39a88f47b9c52e61307627c084d68d14bd14e3572825e190bc7146080bca423099f643d53ee3989386b87fe3dd9c383f6a58fc0437fdb2087b5211df2069bfd981d8ca785384cab31545ecfc35345f38837883dbde917155e631a46ed1444ea0ea8a5441bebd54e5f6ff914fcdd66d62efd223f34e16a880370a529b2ce6ade88e907102021dc87aba9900b6
|
||||
AD: c8116196a12363785d4d6fc593b23226a5fe83b00a77ba24c69644d2e52291dc59d2af3c6ae102707439f22c33251a01c41867f54ecc552396a5aa98ffc687e3a88d8d0dcf826645bc78ff9c1a3052481933c3e8ba8e30bc249e6d095699ebdc51684696a15dcc9e28d09cac757e51336f79a0cd5ce8d070579e12956a740666d28ead49c47bae10db20fff8dfe6fb0260a87cc6f5a879cd0b2f949dbff046d90cf42c7ab51337e8908302935e50755a4503107c84fc94f7db3d3f0e8eac9c0def7435676701c9acd7f4c2349c3b7324622dfc4d6ddd8265a810c000158260aa6a7e3af973f8b178959de409792652e9c4ed1d50fce2e5e6bcf205c6889ed717db7f4b14500aa8641b8514150cab
|
||||
CT: 3e04445e0ba21e8788f6f192b710b466d5d3433463f0308a3c0fbf7f1666fe01853b9d340f496bb0c2212ae3e3d34b0fa1adaf33f039201d1962f2b51031c2a4dd9aedc08f7c895682d1352e9a21225d81c98ac7fd4b4de6efe3dbe437d255e4464a1258d4497e2a1d4ef6c319869b78fdbcf4632743825112fc21acc0a1431d8cf8eb8865e695c0f3668ff5acd8e850373331ed7ae3bbe515b42c1d0ca0b9caa4df0048425fcd08850f23a86b4adc859291b5c49ed54e41778c7ee2a11da9598396aa889dda9513afb9fa0b66c0affa555bf76849d754702163004fe3e77ae5a7c46f3696bbd52cb8680583aa5cac22608c6d45b96770dbbfca14312fba61b3fd0d7041ded80d8dfbdc3f901b10
|
||||
TAG: f42a0e4e6e6a1e0654aca2ab7877350d
|
||||
|
||||
KEY: 2c351f0b77cf0920873fb57c910cea15
|
||||
NONCE: 4f844d27dd26df3015608119
|
||||
IN: 227ae9330bfd5a662af4137ca7fa164f383a63e5bc33eba94726a0e7a27f666887fe484680899ad8aaf6fc5426600760f5e6ba53b0484615d0089d9b1e75f5952ce0665d16a045b272c3c50194ab7b3831b313dbd800168a24e576cab5dca4319660fc6add76bb400376fa29cbcaa25adf3cac81f3e66a6baeb0d94ed92aa37271d2cbd8219c0647f0af6a4ba8a8e169c10cf6354122054a547ba046e67cf1fb424271d3d3eee5b51e94019d450de6c1f770395316421b61c5ee9ff00c910103e58d423946c68369730a974a392c21be3fc8223cd816e7432200390fd7cc3f5160795422c9daffed23df42a7f8259e295d43fe57f75f674886c6405bc6954d17c2a36348761ba09694964646cb86c0d8c64c00
|
||||
AD: 9d7d5e5f63267154bab863a7b53e0ba159a6d8a57a8c49e084b513b463a1e812e94611116dce9c1ceab2b7e18b4d69f7dfd225d2bdf5b7750d0d9dc131f22987bc812da5b0a8ecbe9d0ca2210cf6ed8a791d95c3f72898497226f69c8971c2da342500b75367842d14983384b5985041eda7f1cd73e2b5c71bbbec6537390313583bbd53d2d563848fc93d81579d8db321d1bec973f7c4e8f34b6cab8bd7b5789a7b40f599f2f8c43f6d7f8fdf940577ca8b5159e699d449ffb00acee0940937d491a71a81ee9da0949f8fa1d780f3957908819221941f0c5d011bfb2560acf2d7386f973358d68487954e26ea9ad3068c65b797307831e03aef7d1f1bba9ddbba2f251329e85172ed8efb1a689f8026b5068c
|
||||
CT: 4ef2a097a8e507143b6354ecd94d072c0068c68698fd04f2211a771bec45d616d8eb7eaf90140850c135cf468dab9e9f3dbf059b56efcf616b32992df407bdb735a8b5ac2c361973abf47029bcde46dd5b13728add772264f2faf60f3de10494b0606618c383c8929377f2390c4a104141a11711ba7e3a3c83396761d7d62a997e8782822f51ffd0eaa0e6c9e02ae4effc0686af29f2805039c1cabc8b826d1ceb75c4274e95f854a9f5be709ddf1002481272586aa021acc2fcfe3e6cb0b2a47d124bd8b83585b43bc38599a497d0de3979c30c81536ab06a1649a3cf5dc2c2a6e52bcbb05a76e35139c668dc8a3c038ffd1fde8c1b4a31de48341b5fd586c674e35bef3b104e4b84063889907c268226dc73
|
||||
TAG: 12aa2a46a9014800b3243d1020290d1b
|
||||
|
||||
KEY: d94582550b2e0d42255f13a8753f8e82
|
||||
NONCE: 82f7abb31dfc28491697b347
|
||||
IN: 53ba297d691fc3abd93ea8b6f3d629584370ac045934b1b738a73c09a8236bf5f99f357b1cbb120414c68ee64d304b7751c88c563d5d16fa094602c0ad3c803a8f116f3a5071c049a4b88f19ba2d500a171565c719fa64e691bd4a9c4588077b0c2b91733a30a214e474d868ac6b301898dc85346523bdd4f6c9807ef69941a5369b4b7ff7fdfd252729d3829a7bde65427639de0b2b154b4830f57ac13894bbe705f02362f8b75367ec7962c53bd6aebbf15d72b25c08570392592b6a83d4f44d2037da8cbfea2456696cc39a3272e46a5b4fb837bc6e4bcd9606afa58d3b260e9f6f58bb5d0f07438f378b6a36c1931e9eaf923c2a3679a789e7ef5865c7e799ff4633f1b2acfb79a5a0fe9cdda9cf347b9664568def93
|
||||
AD: 2bfb6a6726c6564b31cca749bec29a8c9fd7bfa22f26af0a80db5e6b13a3b10367be6ad87325abc59252453422535466347059b7d57fd2b1eda1d6d37dcfa9da7df34746e1bbc98baeb4bae17281a537fff85c0785f9f27617e77333f11be28f9aa3704651e4ddd72502c79cb2a810c4686147cedf056b5f035566eb34d117c83ae7815e7e1e83163907020cf0736ff1862371e87269e5c8c1926e0bafbc10610a6ba6cfc273c9d9bec0922726dea04acf72b3f88a5fffc57e0af6dddd0396b4937d2e7d52feaf60d29dddc5b4cc139eb855acbb794b99d74b8a93e3731f9092b92b9bd50c846eecb6eaed2e51290cd1f98dccf3fe746c5293e0b970dde72835c44b3a445dc1f2bd67fff6b1a7e378611eaa42889fb92de1
|
||||
CT: 1afa2fec98728ce39fba26bcc769e9766993c8276f88613db574773c84c91fce6ee7dc6ba4281b8d2dfe13820723526f0d6f20cc21f305b792e9a2bb1622c742fbc05ca1f0121cb9f6e1ad6c3ba80891e2043adaac4f1bdf29260a44a182cb165f58f480be5f16b51fddfd0d264bc4a18bec589d24817f586fc8bad15df7cb4d48d788fe7fbe69f821b5558b0a664ee12ba8ddc6bbd325f9b83a024245b4e68b310f2282f4cc6005209f7b7aa6ccc025d435441e3bb990e81bcd4c8218b8360163ab266be4a1f5603059db2bb67e541e1edbe8e7762ac522a81f495f5ff8bf99948050e61c86e83134f4e1212f879c86f7fccff472fd9753e27a0601f914655a5f803061cc986431445021c907b3ae0f060fac13f3723867
|
||||
TAG: 5ef1ed1e2bf562893b094d58516c11a9
|
||||
|
||||
KEY: 31d93fd51c2d6450cf35d9edd71413f4
|
||||
NONCE: 28f6f0c288c9f92e80252e1e
|
||||
IN: e78eba6c58f93cc2374932fc21e54f695f2daeda3bd1e0121a77d178e3bf5c0e824a99042e8f2522df829d014e4d35a756780e8c07f53ca8fb78db6fb76754ad461665051c4572b2514804d0a9cbae1a1a013b796565eee13a7832ab8834b8406b1185332552d38754dde2344ff4f6e4823390964ba2dc43de136f2235b1d919e0f4ad60813d30f0ac1dad35abe3bee9479337c7b430841d2c722f12aeaf931cedd8a82053f697fff8d07f0af6013da7da58a5dfcf45561943e7ccdfd8d11fbe96a68a5a27982e47346500c0284caf8e6b63c6621e80503a7365d6693dc9a249093dc45221cfd88562e25910034c2c123e44e3b09d8a8a15547285d2596b98c7a0ee9d10b2cdb032d08a6caee1212420b6854181a583c15e046aa202dd
|
||||
AD: a4fdd42aad5475ffc1b122170024486406033c8640233cd9b23c286fdd40c5b69eee39cfbf965f7a10c73663f9804e6821c4f62980f8362a580bab446325b009a004b60b1dbd12566b55b42e58d8037d86c1050cd6ecaaac2fb0ef616a15bc5bcd8252fd459165795c500bbb2fb1476e5cfef9549db733be65bde391c810d099e3745a2cc7a94debe1f4ff6653b338123ef7d2f9a602bc9a4bbe757a63f932a802014f2f06c6688faf14332a355b1025f33687124399f55b6a5adb4864727ec6c5334c41d78d1463400925f6c29c0f611f35c9640045a740dad5b4f0dcb632e7f9a3478b526aa9f97cd9f8d3ad094b7922890e7b6d9c67fcc4f747d04ddcd115fba0a8f0433c6fb1bf6011a9cd153f866c76b26d427a25aebc60d10540
|
||||
CT: 8d668fb50efda82552aeb5d075ff3977c37929d73f6639289e7c6da8c89c664df80b2387e788d12398d62d3c0ed2f9f918010d41021c464d54f016c4e10e85e29ba3a45793df2ebd6cdf30045363434387bb0d20439f4986e6eb7ae9fd85fe776f7b8035025624c2413ca8491cc6e79fe901b9c40ff3a0e37a7c7e88b56de4fee65861865162821e046846d253982e4ecd17bd26214b0923a4297d4ed9423395d856940829ca5ee74488c3b4d8aa3c5ceade17d8a3f2e45d3ba91360ac1c76d6a29f8243bf49c1d75aa41ba239fa6f3b123e198ba799e3b70c674607c5371894800954eda0264b3b82606433f71371dabc5f1fb3d703232533662920a241f613c38d16b0bad24f4aa3b336af89cdcd2f371e1bed7aaa47c56d17100a01
|
||||
TAG: 594ee5c93636cfb5fde940e3d561440a
|
||||
|
||||
KEY: b06d694a83b14768ae26a8f00fb78ecf
|
||||
NONCE: af11369ee342454cddb8db62
|
||||
IN: c01130afd7d3f4276dcfc1ffaf4bb636a85d18e0778df6c6791b6edb92a617894b84cffef6556c834a4800b336dc295e80b699b28cf478a01c54052ab0d0d4208e1865edd6906e3a263862c05f033668d7eb5b42baf36c702d102a6a5c723974e63bec848c89d16584f0d1ec429c87686b1ccffd7626e0a83f9c471cb615541ccb02cb58d10e63ffef171f1affca492ace4d39fbf33bb5126c575963e6b6ef9fd2ee4d6efcae5afe422bbfd9c3dc22b6b47cab8dc04127ff93b016e0f92f5d8518d5bd3bc6edd45e0397440f1a4a0c7c9c2773c0a0cd3b890effb010dbcc00237dbed1177b86bf60913309bfda9376b4192da59a360afc5bcfaf8be16ea8313de97b417aaddceadc63a1c3a355693616413ed4101ad68f6e6aaa99c839dd2a9ff536
|
||||
AD: 18e3195358bae4ccf43ff8daa34902fe48f99fc1371d34060aaa442a43016a1d756f795fa5c9c4a828525554571e18c27134f46094790dd1e68471ee40c17bfa02f175b2c2f7f2aef20f00e4d71926560b58f015de19c871d808acdd341675d8fc19d1e6d4028e1e8926df500c4685c14729c6a056898cf919bf3ae429fa3ca8746495716d78c9a8f2ecde596f985b1c25ad0e73aa305a86259319176b4c4f3bb231fdaa478a856f46416ddb10a14ed23c96dcb86f5bea3114568a44d8fc6ff4bb47fd0e2538b70d964842910a682e7bc7c7263249832c21b7083a1e8b143828de0f3dea8b404cbd82efb19a11e4d60aeef13abd86621ccbc3d8f220715730eabbe04a6bf0e11a4f78cd2c4369ce2447a76f4fa48ef8d322a8a28a67039c24c4bfbf
|
||||
CT: 6beeb306c71318cedabe3877ec916ce2074b2c3f1df887cc3a3e8019c10d353854b6b65c947359138d5decc62a42d50921dc8f6cf63a16062af47aa8cd50d0b2dcbc3300ba0d7d069a5e4b4fe03bbf7062c6001e276be116fdd00d15a6399d1b0db71c58f396f8bc7e51c2b1f47430d4ebd6c5d05328b29aa79bcb26927ea5a40c82715aa0e36cc83ca6d250812c1305c02ed4291a25762cd709cb3d808031b5f918ce253f622c1afcb83c43707edc493d18ec6f0dba4353a1cde7184db65654088fa13baf45f7643f0dfedf4058e6095156b791ed30827c556a7721658314356e7a3f3c62cd62fe938b008cda56ceca71442fa0ffeb78b13c5847a3ee9668bcd2a01c753bd797c240378505d1e8f2b8905428b23bf589de9af390f94f21630d1826
|
||||
TAG: df5a21a399354b2b3346a9eb6820b81f
|
||||
|
||||
KEY: 06a4c6a8aa189134f5784a525d46ff10
|
||||
NONCE: 0f765d3893af99f5c3e6d9e1
|
||||
IN: 706b754094869313523493089e591d34868b708cbde9bd8b42cba8175d1fdb6a8769bb9ec156d44bcb8f9cbf2685a0dc18b5a802dcf7a12570bb9042a0aa53dfb19af8c0f13763f388d9626a480d6d435dd90fbdbb4292d9015a5633252aa0583498d6f7ec54460d8589c1d6a6d16a349d10ec6070e1cc52e5fb996f810d333675a7130e4f3db9f4db0e3fd3541d32e0b2efbd40ba70cd59295bc8d08481f0f137832b01bac1778ffd7450376e174067b3ec23d0495cbf936bdc176cabc3f42e2991947a4fa87dd8343c32fa3d7ac0e2d22660a0c128a00e1b51a8742fdb2aff44540e39e588c5920ea16293aaa522513c944d3b77f3a0e90bd9105319c170886202e336893d100b0a25aa609a49a8255f78233561f7b88256386d1c3c002c3ee68f2775585c65
|
||||
AD: 18e2ed6d500b176e49f7e1b5074c0b7dbfdefdf00a63d9fa2fea8c5e78a1c4ae00f17b23442933543ac864097629e112a099f3dce6d5beb1e3f3c8e19522c6b8f615cbe23444bc91a802edf8a08995a55125da805ebb073fd89863996ef708f7293069a744ad95db8c17cbcfedc331119e85020df8852d74b8092fd38ad424f3da41b4775beac19536ed801ac1069925b12303d8ad2c52c36ca5b4ec95e96f02ebc5725ee6cdc099e666d9055b789e39ded77a8fdca0fe2d94b8039be55b6a75209cbee4fc7864957402b50427db71bc75a0b1e3d2ed6ea20f12a980c5ee916067d0dde7d686570d075da4df7088fe5dccf0d440064a96998da6f318b603d513104c723f27484780bdad586ee358d821b480f9569e4dbdd1a45ab9056f8d8e5a879789a0d65338
|
||||
CT: 5f3627bd53f8da0bbe6f3c9246d6f96fe9abb91cdecf66ddd42f833d98f4d4634c2e1e1ad4088c84c22191bdb9d99ef227320e455dd112c4a9e9cca95724fcc9ae024ed12bf60a802d0b87b99d9bf22590786567c2962171d2b05bec9754c627608e9eba7bccc70540aa4da72e1e04b26d8f968b10230f707501c0091a8ac118f86e87aae1ac00257aee29c3345bd3839154977acd378fc1b2197f5c1fd8e12262f9c2974fb92dc481eeb51aadd44a8851f61b93a84ba57f2870df0423d289bfdcfe634f9ecb7d7c6110a95b49418a2dd6663377690275c205b3efa79a0a77c92567fb429d8ee437312a39df7516dc238f7b9414938223d7ec24d256d3fb3a5954a7c75dbd79486d49ba6bb38a7ccce0f58700260b71319adf98ab8684e34913abe2d9d97193e2
|
||||
TAG: e690e89af39ff367f5d40a1b7c7ccd4f
|
||||
|
||||
KEY: 31323334353637383930313233343536
|
||||
NONCE: 31323334353637383930313233343536
|
||||
IN: 48656c6c6f2c20576f726c64
|
||||
AD:
|
||||
CT: cec189d0e8419b90fb16d555
|
||||
TAG: 32893832a8d609224d77c2e56a922282
|
||||
|
||||
# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf
|
||||
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: ""
|
||||
CT: ""
|
||||
AD: ""
|
||||
TAG: 58e2fccefa7e3061367f1d57a4e7455a
|
||||
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 00000000000000000000000000000000
|
||||
CT: 0388dace60b6a392f328c2b971b2fe78
|
||||
AD: ""
|
||||
TAG: ab6e47d42cec13bdf53a67b21257bddf
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
|
||||
CT: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091473f5985
|
||||
AD: ""
|
||||
TAG: 4d5c2af327cd64a62cf35abd2ba6fab4
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 42831ec2217774244b7221b784d0d49ce3aa212f2c02a4e035c17e2329aca12e21d514b25466931c7d8f6a5aac84aa051ba30b396a0aac973d58e091
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 5bc94fbc3221a5db94fae95ae7121a47
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbad
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 61353b4c2806934a777ff51fa22a4755699b2a714fcdc6f83766e5f97b6c742373806900e49f24b22b097544d4896b424989b5e1ebac0f07c23f4598
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 3612d2e79e3b0785561be14aaca2fccb
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308
|
||||
NONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 8ce24998625615b603a033aca13fb894be9112a5c3a211a8ba262a3cca7e2ca701e4a9a4fba43c90ccdcb281d48c7c6fd62875d2aca417034c34aee5
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 619cc5aefffe0bfa462af43c1699d050
|
||||
|
||||
# local add-ons, primarily streaming ghash tests
|
||||
|
||||
# 128 bytes AD
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: ""
|
||||
CT: ""
|
||||
AD: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad
|
||||
TAG: 5fea793a2d6f974d37e68e0cb8ff9492
|
||||
|
||||
# 48 bytes plaintext
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
CT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0
|
||||
AD: ""
|
||||
TAG: 9dd0a376b08e40eb00c35f29f9ea61a4
|
||||
|
||||
# 80 bytes plaintext
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
CT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d5270291
|
||||
AD: ""
|
||||
TAG: 98885a3a22bd4742fe7b72172193b163
|
||||
|
||||
# 128 bytes plaintext
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
CT: 0388dace60b6a392f328c2b971b2fe78f795aaab494b5923f7fd89ff948bc1e0200211214e7394da2089b6acd093abe0c94da219118e297d7b7ebcbcc9c388f28ade7d85a8ee35616f7124a9d527029195b84d1b96c690ff2f2de30bf2ec89e00253786e126504f0dab90c48a30321de3345e6b0461e7c9e6c6b7afedde83f40
|
||||
AD: ""
|
||||
TAG: cac45f60e31efd3b5a43b98a22ce1aa1
|
||||
|
||||
# 192 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
IN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
CT: 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606
|
||||
AD: ""
|
||||
TAG: 566f8ef683078bfdeeffa869d751a017
|
||||
|
||||
# 288 bytes plaintext, iv is chosen so that initial counter LSB is 0xFF
|
||||
KEY: 00000000000000000000000000000000
|
||||
NONCE: ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
IN: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
CT: 56b3373ca9ef6e4a2b64fe1e9a17b61425f10d47a75a5fce13efc6bc784af24f4141bdd48cf7c770887afd573cca5418a9aeffcd7c5ceddfc6a78397b9a85b499da558257267caab2ad0b23ca476a53cb17fb41c4b8b475cb4f3f7165094c229c9e8c4dc0a2a5ff1903e501511221376a1cdb8364c5061a20cae74bc4acd76ceb0abc9fd3217ef9f8c90be402ddf6d8697f4f880dff15bfb7a6b28241ec8fe183c2d59e3f9dfff653c7126f0acb9e64211f42bae12af462b1070bef1ab5e3606872ca10dee15b3249b1a1b958f23134c4bccb7d03200bce420a2f8eb66dcf3644d1423c1b5699003c13ecef4bf38a3b60eedc34033bac1902783dc6d89e2e774188a439c7ebcc0672dbda4ddcfb2794613b0be41315ef778708a70ee7d75165c
|
||||
AD: ""
|
||||
TAG: 8b307f6b33286d0ab026a9ed3fe1e85f
|
||||
|
||||
# 80 bytes plaintext, submitted by Intel
|
||||
KEY: 843ffcf5d2b72694d19ed01d01249412
|
||||
NONCE: dbcca32ebf9b804617c3aa9e
|
||||
IN: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
|
||||
AD: 00000000000000000000000000000000101112131415161718191a1b1c1d1e1f
|
||||
CT: 6268c6fa2a80b2d137467f092f657ac04d89be2beaa623d61b5a868c8f03ff95d3dcee23ad2f1ab3a6c80eaf4b140eb05de3457f0fbc111a6b43d0763aa422a3013cf1dc37fe417d1fbfc449b75d4cc5
|
||||
TAG: 3b629ccfbc1119b7319e1dce2cd6fd6d
|
|
@ -0,0 +1,43 @@
|
|||
# Test vectors from NIST: http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf
|
||||
|
||||
KEY: 000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
AD:
|
||||
TAG: cd33b28ac773f74ba00ed1f312572435
|
||||
IN:
|
||||
CT:
|
||||
|
||||
KEY: 000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
AD:
|
||||
TAG: 2ff58d80033927ab8ef4d4587514f0fb
|
||||
IN: 00000000000000000000000000000000
|
||||
CT: 98e7247c07f0fe411c267e4384b0f600
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
AD:
|
||||
TAG: 9924a7c8587336bfb118024db8674a14
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
|
||||
CT: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710acade256
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 2519498e80f1478f37ba55bd6d27618c
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 3980ca0b3c00e841eb06fac4872a2757859e1ceaa6efd984628593b40ca1e19c7d773d00c144c525ac619d18c84a3f4718e2448b2fe324d9ccda2710
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c
|
||||
NONCE: cafebabefacedbad
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 65dcc57fcf623a24094fcca40d3533f8
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 0f10f599ae14a154ed24b36e25324db8c566632ef2bbb34f8347280fc4507057fddc29df9a471f75c66541d4d4dad1c9e93a19a58e8b473fa0f062f7
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c
|
||||
NONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: dcf566ff291c25bbb8568fc3d376a6d9
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: d27e88681ce3243c4830165a8fdcf9ff1de9a1d8e6b447ef6ef7b79828666e4581e79012af34ddd9e2f037589b292db3e67c036745fa22e7e9b7373b
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,336 @@
|
|||
KEY: a5060fecb0a738d8ff6dd50009a757c6e58db73228534d03f32c26baa1c209f402c3e03a6947c1d9421d63ce43f6df26d30ce783f5ed0d6b88edd389d9f92d8d
|
||||
NONCE: b52227e92203630a79ec7f5c
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: e61a28f5df7061b4236834d2034d2b62cb63c660b7de696c26b345e66b34d222
|
||||
|
||||
KEY: d676047046bd5be9263ae39caaa0f688abb1bc67c083658894da6aeeff80b6d58ffc7ca1a1c88f49e629bf5544b2cc7669367202b158fce83fc4a4826dd90a7c
|
||||
NONCE: eabef87a00fd99ebb6ed6d25
|
||||
IN:
|
||||
AD: 83
|
||||
CT:
|
||||
TAG: 473cf728899cd5fdd54f18d6f934c3901f7ca118fc5ab2cbb837feefa7852a67
|
||||
|
||||
KEY: 5eaef3b8e068fbb652bd37df4dfad6490095642cd49761a35476dffc2b5b5f75236d0351d96a9028660788893323a777ea8a2ac88bb5e500b334af02b1c2a648
|
||||
NONCE: 34d049342b9db5ffa039eac0
|
||||
IN:
|
||||
AD: 7578949699d44dec9188a7f7e14b0a23637cddb9107dbb1f8e2a968aad0443356d7eeceff4316ba7b2e8fe
|
||||
CT:
|
||||
TAG: 4d2612c21357638bada9290d2a272f10fb5f070337bf87bae396a1e7253633ae
|
||||
|
||||
KEY: eb7b3d7eeb5f26010915a36837dc83da2bad07eba714566584bf1ce62fa9b61210b0ead7182bc28c8f0427699bf04786583fa32f3c3a8a6582cdc254930043bc
|
||||
NONCE: 3bee5ebcdfc72f4ab0023211
|
||||
IN:
|
||||
AD: efecb57e79a326c6b2ce0ae74d7656992a005fbb8da5a55b9595fc5348a5489ee2e69541ec0e8a727a560625
|
||||
CT:
|
||||
TAG: f457db1e274adabe5fc898fb1eb7c4a5a8e9a2b66f964d0958aa058c1f9e15ba
|
||||
|
||||
KEY: 1c1abffa8a2667a8c1ab347860528162d316d58e3966050dc140fd360e6ff7c557520a8982aae97c5db5495d8951eaa485e1cac4cd8f448a13d071d759885474
|
||||
NONCE: 4fdce4e59bfdf5d9b57c78e9
|
||||
IN:
|
||||
AD: 55125cefc919379b3b4b2a24ee1794f44ac66fd99b8b68f98d4abd45ba50a5b76e5375d08abe3b8b8d3c576bc8
|
||||
CT:
|
||||
TAG: c021d2c73737e54ac6e7f61f9bb44818e5bdbf8d81d43842fd25a535790fafba
|
||||
|
||||
KEY: 366cf53bc185473acf62610b74231e53aace84e9c5d6fbf71fc24db4f42956065d3eec01ecc72a6c89266565ff530075f4532c860e3192e866b41aee98c5c42a
|
||||
NONCE: 9ff54bd7b10f4fdfd8db76c7
|
||||
IN:
|
||||
AD: 853ef59ae873bf0bfe1465e9dd8c2cddfcf123d213ba4f599d984e4ea69d3c85a23508ec7941ca740a9157ca2a788e9b519291240b307d6c5a8c6860a96b4be698659d19e31ab0ac7ae6ba31dcd609c1db67ad580fe4422e42d368c3e93a56f2a087b0d587188462310c2ebe58ecfcf7178412223808eeb2eda76446168730fe
|
||||
CT:
|
||||
TAG: 12d869dc4bd4ac4ce9ed643cccda9e11a1ade65c76f7c1535fa4ec2bcc5eb4c3
|
||||
|
||||
KEY: 147b41369bed390f0a9561586fd975474e3b3bbf7f7ebb7a35e5cc43b516c044dce93e154ac790a109709ac5299bb17b709a913d33fd57ebfef2b48ed66393b3
|
||||
NONCE: 85b81732d2863b41d2551763
|
||||
IN: 73
|
||||
AD:
|
||||
CT: bc
|
||||
TAG: 47fd81f6eed8d3c66afe06d788ffe40717847785f4b4c617d75a11171690a60c
|
||||
|
||||
KEY: 9bf35c1194659c1da634eab6707c55b853c8f61d087187162e926adbae02f8bd4d15bae5b05865d0e2236d64715fc39f32e4e3679a0309396c37eab13d1c637b
|
||||
NONCE: 8da14a98ee741a5fce0de732
|
||||
IN: 10
|
||||
AD: 8e
|
||||
CT: 17
|
||||
TAG: b76af41002a946af4947f98f42a873b7da0871f482990a70bda8f005274ca179
|
||||
|
||||
KEY: 0befac10caec674c9f23676d121f065dbcc8c91852dd5eb4e80c41076995a2138077592fec665954d21fd6787234d32d3d54bf9c220cf2bf018b374bde29926e
|
||||
NONCE: a96bfb49f3a136840a0e32ff
|
||||
IN: 59
|
||||
AD: 236adab55e1bb8a8db384c01bb2afd30ff35da71f955fb217b8305a45ee075e7f8d863d4c0e5dbe36e297c
|
||||
CT: ac
|
||||
TAG: 7bb634357e0835b02a0642352a834ff6598c2ded1af8e8ab60b9ef0641fe863d
|
||||
|
||||
KEY: acc672aecf6f10119ee77070abbc2b4fade7e910efd1f93a5716161f88606469a49df05b40332b390d3ac289abfdf6bf7c37c033b1671082922d939139de0d42
|
||||
NONCE: af0f57b55f1a73794b3ce5cc
|
||||
IN: ee
|
||||
AD: f385a50ef027e532635878a4df0deb23369774be47c42f17cbd44925b668f628338ea5f8256c5ad8219c13cf
|
||||
CT: 71
|
||||
TAG: 13a5296075ef23216c2f2e83b940d24e8e1e6a01967af96599360f11499ac0a6
|
||||
|
||||
KEY: 6195ef5ce3ee01188c48b04ce7a28b3ddd04b78711a6d1233121fc8ec3db3a7a0e496d1b6a416675b1e666b9a3df167efb8ade29e4f22fc77111f32ba8bd1ec2
|
||||
NONCE: 092070b2f8b65fcfe646f6bc
|
||||
IN: 26
|
||||
AD: 98526dba4437d88f657c0b7ce2a2be44ef4951711a40747a7d14b195e4c0eae97247256bba7dbd93d6a8f738c1
|
||||
CT: 83
|
||||
TAG: b6aad3f91a26a38245031d6a7eb97be0d386939d4536b2a27c90a2ddb891de73
|
||||
|
||||
KEY: 40335487f9958dfc00b76ff06dfec162ae5c6be4e26918bd12e3f21760cb0bd364521a11f5bfae11dee989627525ab5295ee404bce476c280d13d238dea1bd40
|
||||
NONCE: ecf77c7c827a34efd8cdf79d
|
||||
IN: 34
|
||||
AD: f6e661254bf235c7d5b8ee330cb754087480dec5fe4c31dee65d1ab4479642101404bb563522937fb2e41d3aa8a4d269a222e6e0bcfd07ec4b29c1185f99fff7cb5bd2ca8c5b38742270e586c8db19138b446833f2ee07a11dae5b6a1a4c28657f3380e84bffe1bafeccad57d9cfea3da7f728119ec5bb18b79e002954f4379c
|
||||
CT: 5c
|
||||
TAG: f3420d4cecae2c1ad79d977abbe408045bd87525c0da2b93e0af3e6c53ba7d74
|
||||
|
||||
KEY: bf32ef44c7ca9851f397e70df736d7e0e6243cfd875ebb81d76ad7612dbcfd084cab6b0d67c6a6e8b567c93fd0c3abb78ae121fdb3051a62ccfa045692d3453c
|
||||
NONCE: 46e0cc64d6e431c1efc2bd2d
|
||||
IN: 959348a8ad6912d7d6c8eae52f19b1
|
||||
AD:
|
||||
CT: 55e8cb6fd958f18b3c19451c5c79a7
|
||||
TAG: af09194071cb0ed4488d27e79700f938ce77386e5d772f9853b17b719f2b1ebc
|
||||
|
||||
KEY: a6b5b8b051edf5cea0353ead88ea887fab048ef32f8303275e93d8f926da0d4b0e34b9447cf44fa70c24c9ab964380065398336bbb20be167fc6cd5e591ef50e
|
||||
NONCE: 371363612c4675a2e59ebd39
|
||||
IN: 443d16621b0cf9a12552216f9558ca
|
||||
AD: 32
|
||||
CT: b7f432eeda8e4b8a25f0445f17ca7c
|
||||
TAG: 649934922826febab4d59dfb52a7558e6d30d56e273602b98f3c55fd8e24f4da
|
||||
|
||||
KEY: 075b75434269a3fcc57922ee8cc55b5bbe1b90516a3b71838ade73d41ed1d1f33ae1e0e86f88f6ed7e091cae3ccb05144b3ef239831554d6e79ff97c4d8f150e
|
||||
NONCE: 754d5c4ccbfb291133859de3
|
||||
IN: 62a151add825077c59459fbf82b708
|
||||
AD: c8db27487de71124a95eb6359270a8363908159200333b46ee74e2709b308878779686bd43c24e9ecabfc3
|
||||
CT: 2ffb9a9f65c9fe3daad13768ab56bf
|
||||
TAG: 4430a90fed7d4b5b2adf5a60d6854956be4feef497781ac7d864a04259e99516
|
||||
|
||||
KEY: e787fdeca1095f2f2760a1c5e0f302e07d6b08de39ce31fe6a0db2f76e4626eb0968768ae04d37082c114573c307699707630b8c7ceef60abe3b7831d2adcd6e
|
||||
NONCE: 9dc9bcfe8b4e2ea059e349bb
|
||||
IN: 3ad57105144e544f95b82d485f80bb
|
||||
AD: 96bce5dcaf4a90f6638a7e30cfd840a1e8dbc60cb70ab9592803f8799f909cafe71a83c2d884e1e289cc61e7
|
||||
CT: e504109cdbf57b0e8a87080379e00d
|
||||
TAG: 1798a64b5261761ecd88f36eaf7f86ed3db62100aed20dc6e337bc93c459487e
|
||||
|
||||
KEY: b43ab650bdd201cf05e0436afe89ac54867383f04c5ed2faea5db8e6784c720d905234f1f5443c550ca14edd8d697fa2d9e288aa58c9a337b30e6d41cfa56545
|
||||
NONCE: 4e3dd3efe527902b9de45a5f
|
||||
IN: e386663e249b241fb8249cfec33ac2
|
||||
AD: 3cf7a396e1bd034ea77a54ffca789f206f94263d90d98bf3e69cb42205fc5c95cfbd0481b0ec490ea447299159
|
||||
CT: 94aacf00092723e778d25ba78e9d27
|
||||
TAG: bd5fcf90b9532e7abfa858aed90d5170f08edcdd28ff2c673e0ab45b8c0a0f39
|
||||
|
||||
KEY: b22a7c5bb38715025cd59cc0feed9ad8e51101200000168052b294fb1ead545a517dee636a7acd22b8283afb33d30adbe02c1c8557715eea7147f3d98a97cbb9
|
||||
NONCE: 3b4244c9ad9fedd3f10fdf7a
|
||||
IN: da79e1ed131856cec3250fde7bda4b
|
||||
AD: 4b77472ade3f06500169405b86a793d63cfa58f57bde0dd706f369b391142c2fa8a3e6345ccf0a9c29b2182f578e22f55c576f155a05be5e81997fbe06410034ecddd871e5ed94b5eeffc6dbd90a8e66449da01f8ef47d28a4a4bd253ffc427f868867c73b5c709b01732bd8035b1a23ff0a903def1eb136fc90d8b3c8279769
|
||||
CT: 5d8ad7abc047bfdf9d9cd0b0aaa53e
|
||||
TAG: 41d050d518d0e51ce16bc2920aa6c76eb8eabd4ed76373c59618c6354885f47a
|
||||
|
||||
KEY: 04b3fd8126d65f851f47b3dea22cd6e32506f21effaa3e29820ac7825e01b51c5a2816f0298154f2d8addefa2fdc34c0635d4d6b80ad23eb320c4d4f2aa1de1c
|
||||
NONCE: fae1b1da40471dbdcec64d4e
|
||||
IN: 509f116ef7435b0640cf141d5b958aaf
|
||||
AD:
|
||||
CT: ecf553eba80e6dd1fae2eab24d772a89
|
||||
TAG: 11473566e80cff5d7421f65949c34301f34de378e91ad50928cf2caeadc466d4
|
||||
|
||||
KEY: 413d154dadc7d8869e9e0f24b3320019a04b7a37620dd9e7aa40b5c08d70dea03c12ccf7faad7009e972680e81544b647650c6ff033f56e5bcdac9a35bd7f804
|
||||
NONCE: 6a4404adae3f4a7bd2bef95c
|
||||
IN: 3539fe02b75981fad4f8762772b3c11f
|
||||
AD: eb
|
||||
CT: 3f8a96905609a4ef1a95fdb87337503d
|
||||
TAG: 8ee076fd624d90e1f6336a92165e80408ca6f0e165b201547d351177c95e8d51
|
||||
|
||||
KEY: ddc10df673e720c00f28fdfb69f1b8fba99696f23b6f29704a0114444cc0c8a6c8606e8d37fa95aabfd65b29c655678fcec50966c8758a3fb15332a1854a8eac
|
||||
NONCE: 06331613842b4af86c13f8a2
|
||||
IN: 55d74bcfc3d1cfc716c6e6b7153c6369
|
||||
AD: acc264344ae79959f9dd5130664273ba6f345c3fc7bc33c6c1ce33312bfbd5f181a3c7a24f15e7acf72ccf
|
||||
CT: 20650d9e846eb42854692d438b21d5e8
|
||||
TAG: 973857523e7ff600cf9bcfcc98403b34ab38d939a6d76716beac42678ca5f5bd
|
||||
|
||||
KEY: be0c884db54cf761fc24ff3dd572362910dedacece5e1d93a916df277f923f78e7dcd908e60beb0043503c5b4877a9d962a7de37cacc7387a7553949b52894ec
|
||||
NONCE: 3f027a93e2716668c7634195
|
||||
IN: 1ba8f3a87ac6738167aac1491b602ddd
|
||||
AD: d06dd1b9360a68afa3de5d239b6d91d212c5c555567545a4f133bf5a3b0f26addb9379e1cc1cd690cd427c57
|
||||
CT: 3596cc50ae72db932dd83bbc8661641d
|
||||
TAG: 44a1834b1587d0f88e34137dcebbca059dfb8f65ddab18f338a8a30152167be0
|
||||
|
||||
KEY: 2ee848726730c64332877a4f88ad7fb241a73b71fbee8eeb4d9d6485855ea32b487e03968e1a7b9e8ac8ab7fbd84257efbce0aa207aeefa67302d5847e0d9c05
|
||||
NONCE: 526b0a79b6359d133ad51011
|
||||
IN: a0c0477e8a9ebfd275b674ed33230d42
|
||||
AD: ded2f0f3f28aea28b17aa58d4b906c6a9b3078f97ffe95b7e161b0c3dbf66879bea7603a046da4945c802ac8b3
|
||||
CT: b1691c8275f12f7d9af85e71dde9dd5d
|
||||
TAG: 65a5742dcbc49295c4805387e0a15f986ae47e51add9389dfabb6468a6e83013
|
||||
|
||||
KEY: f4a7c0e29ff510c034778e47bb30a468a92140a707936d381b1554d421af107c578e74c53ea08c7f7d93cf67612061359ae458408a9c79250f776ca4192016c0
|
||||
NONCE: 025bc10dc99346c4d0766a7d
|
||||
IN: d449a2e812429beb5c466d344f5b5eec
|
||||
AD: 304dbf9a59bfd33b777d8dec9dddce4c365e72aed851210eb964c1da18119bd13248266a67408e88ac2eadfc54def0fb57f23743d376b11293377565d253d2bffe0309f2946cb78d4e9536dde4691fe1eef9ce2dc916a773d06b42fe2b014e7974d4aeffce25a0902c9b44265e5d6d26809b5f24875e80cc13f1f8872b04a237
|
||||
CT: f366e7b66683f52586e1c363c15b7fb1
|
||||
TAG: e0e1bb733471f150ddce1b83f3fc2d88589d286ca052574b7f0735bb598362d2
|
||||
|
||||
KEY: eb78ea626b219e12937057155884547cb7578718f569dc8f2b370c0fea80e7f0d0f5cb590f0b7341d20c775bcd6a3c818e23b6cea949cf99eb94a23a81cd2249
|
||||
NONCE: 75a10f16d429b809cf12b9ef
|
||||
IN: 6b0203316e8108ff01b12df91ba6644382
|
||||
AD:
|
||||
CT: 7ee07054f76471115be159259340c24391
|
||||
TAG: ab970669d1603767d588a93cf215673ad307244f9179f46fca56e97f64a5fbac
|
||||
|
||||
KEY: 3221167926be262b7bd0591f56be6bf030365d45ab84a93a94ea41a5e07735b17245ad43787e8791e7ceaa0472b562ed17e3b609c66c868c9b08304c8bb328b1
|
||||
NONCE: a94d8417d2bb0323bcfd354d
|
||||
IN: cec81bac7b85c441b6261163d67921eb49
|
||||
AD: dd
|
||||
CT: ddd8860fa9e2e8087db30c9da1ec9f9487
|
||||
TAG: 26a3b9bc4d4cd802cc22e7647a19fc2a5092293c9f5b1c84bdab7245a6d8f4ab
|
||||
|
||||
KEY: 4b16e2d62294f76cd2a6c8e0928279d9de40f0b169ef9465738cbfa064c520128ee89cf657da27e4e532d8c4709d992970bfc9daab2f31b3a67e53200d3d6710
|
||||
NONCE: e746d498b9031007332447f7
|
||||
IN: 16841e3fc1f53990d33f7ba525dab121a0
|
||||
AD: a785917bc9f3aaadfd170abe83bb30c0c5d595fc8b491d983131aeab1a7b8d8771f1a963c251976152dd63
|
||||
CT: 6bcf5eac15ef74cb8a706856f62eb5e8c7
|
||||
TAG: 9dc84b06e8ec8921be4bc7762e8cebb61a95ac5660022520f9438e8f77b45796
|
||||
|
||||
KEY: ff2f5944111226df1d9a300533d3e871694fe15a418b2090265cd8c0111b249dfb7ee86bd9228f7ea5d89d8afcf10bf69942ee4c29bfa8409b63c00c2213629e
|
||||
NONCE: 477060f0c61555873bbeb225
|
||||
IN: f091891c43e2374c2755a88a11b04beb4a
|
||||
AD: f1323fd1ac4de9719dc5966dae45dd7b8ddbee3f8da4f4f4d5f25d06bdb8ebf57328dde76d0bdb9bdc5f6b12
|
||||
CT: e0d96f6f3ed0493a289d4c3b79238b9ed6
|
||||
TAG: 71276c05b52bab0063108dbf4e8ff57cf3e15079055a309d725f14bb86671ce1
|
||||
|
||||
KEY: 1ce841bcf2ad8accc458a2d94774c3aa53a99e7dbec587376212101303ca2b42272a23fe28514be190b82e503e7772a3713800f4360fdb767e85ea5e1f7b8eca
|
||||
NONCE: a2f8afc5ceb5382882907630
|
||||
IN: 620fece1e843d1d0b5c5a541a6f615a81d
|
||||
AD: ded910647464d0fbb0a5d93ffb9839de3360c675179c5991ad3470285d79071436025111153628c563ad1b595e
|
||||
CT: 34431c3422e009373c50f3ee6c5b3fcc2d
|
||||
TAG: 6e4e8a3967307f47e233a36ce05a4826a698fada2ac19543bab7c9ac4f79451b
|
||||
|
||||
KEY: 6bafd28a32690851fda667eb2d3c5993f13df52b2e97630527f26c498fd5019f26177a78f27c0c41616d2a4a73757fcaf9cd92a7da8498f90315d41e7479d90a
|
||||
NONCE: 75166c506c8e1d10da4da8b9
|
||||
IN: 697bea4d6eed5e6ed243cf01cc79bfd3a5
|
||||
AD: c0fa663961c3f7e09a8c7bc73e252a232977dd6c9483f02067b34fe695f341d05338ea2002952439ce08295ee5c12f38dafffeb5716908d3f1d4bfbf9eb0e4077bf8e534f19568ed04fca3bbff95da9088cb939f7a20cc97cc0994f9308e184219bf12c8af0d66df436c296ad39832d661b88c98cbb168c751719ac1383c9124
|
||||
CT: 8f37885b9602725385fd9a244ab2a156ea
|
||||
TAG: 7fa5cedd330887900f4a44d098e04d5eca16cf94e21f897fa54b0fc116b711b6
|
||||
|
||||
KEY: 815786c7744d15afe1d6ab452cb6696fead8b88269ba3eb35c458f6248bad77b404acc744ebb74612c4f97deaccb99a7bcc6ad41917d61057c05b30c581dc4a0
|
||||
NONCE: 12342e4704f02336ebfc91df
|
||||
IN: 7f15e696b49ae5104ced5bebbf58a9d8ddcfaf46ddce9df88fe0d58a2f8546feeb83b975c66e4dafddb7fd9d17e80127e70af06b3b8b13c3390f1f50a227e7
|
||||
AD:
|
||||
CT: 22e7c5d54a7b622c47a9edb77cfe7c094e500b0ef9595bc346de736e0088e5934dc07160aea34f24d3ab21440878213d28059551cbfdaa418af40d344674f7
|
||||
TAG: 8c271ea5c15aa771c900388267efb2f435f001c2e83f4ec297e77c608de2d579
|
||||
|
||||
KEY: 66d87d2b18e46257476456a1f87123424477decf196b88b09acfd3ca74bdebef4c98f1b93803098a141e0acc3ce8eede065417a0c1eda9b4614558d2383762b6
|
||||
NONCE: 1ec0ca1d3b09ef186ac4bb1a
|
||||
IN: cbb59e14098c2a8ab7e84ace913515c74e056e0fb272c7b88d0dddfb62e395afb695647d97d1071eb09cc1e1776b609fceaf4e30e92640379bb8f0e762ca9c
|
||||
AD: ec
|
||||
CT: 832804b8003b0ca1b4eff1dc4da6f6a9649e5a582854bb72cd74357476bf38d81ea3bc8ac0463f21fe37683bcbe07360d0ec2d7ab90b588adf669099303ac1
|
||||
TAG: 9fecafc768fca71ffe7d640dbb7a052d97d6c8e2fc86001d71feaf284ab609f0
|
||||
|
||||
KEY: fbff97085351f4500e73190ac139dd3ac91e268042b5926b57e0394c750b10348b47641d195d5fb5b0846256ab229f102538b81e209db5d93b4d55f30c453d9c
|
||||
NONCE: d4868c918de2af7d3e3f57d3
|
||||
IN: 4f14aa5a680d66ae15ce0ce4739888f64d827def862572f9a6cd620badbe4ee9d75f4f9bc1f73d409f519a657f53a50d50e68e22f33a8ef5aa08b1212889e5
|
||||
AD: c41253e96696a948ce500030af27086842aacb79c04cc02a42b858a65c630065a5292bb9b2e69ea5fe5a7a
|
||||
CT: 08596ac0550574e352edc13d7e390d8fd0a57406dd61e1543066b4aa0ea06670f356e26ada0d6c61c1e41de1b4fd7a251c961fae44b23523ce227eec99a338
|
||||
TAG: 72f58de3e6697c8419ef518748fe0bb3cb930907c71b6d682c5e61068206d991
|
||||
|
||||
KEY: c78c550aba82b571d39ce21d6ecf5e5f7c2a7bf921c6162c64ec1fdff4d0b8c41bfcea0e2486cc86b9ed9e9ceb73c4ec228a2ecbcfa0379174e76475cc21ae31
|
||||
NONCE: b5adf4de19980a71cb8ae8e6
|
||||
IN: 3d5e43ce95ff9d7f797f27b904c07291a35678fe76a9c57f0c0cba724f38acbb22c6c185db864a2a17b7ef2d67a04810ee5a45fd5a4e28a15a1ae16971451d
|
||||
AD: b5eeb9a18d436ada7bd5601944784f50fb0a989397b5c781a2cdf29337315dc7664f3c1cbf17f37fd0cc8b30
|
||||
CT: f91f1f20d06ad4480ff233480228994cfa052f9bf3038d06d997d31eb68bffa4960341b93eb5ed2260341e6816519c47bf231db2a41ad8a9719f4de6a33de5
|
||||
TAG: 6e5eabda421961e26dc17a7e1f750425235df4eaf9a97934c1e1b4439fc22791
|
||||
|
||||
KEY: 17b90dec44546d9dbc489e55a01f2cc64452a9b0e50506a8ad7c81bc6fb21328285cafed901a7204048866ff3bd543003fdcbeb3e9e2f3d580f9062362879633
|
||||
NONCE: f0c0cb247d210031f9b233bc
|
||||
IN: 75b9b524cbfd1287259da116f536aff56112a406f069aa08f545b5372d45b66d7a5d05e02728c4bc2c779609dfe251386f78c5f48b9dad90b363d324826cd6
|
||||
AD: 8a604a9b06ad595ce0b9ad1644a596c7d3cde81490abc80840c764c40d6df08fc71d1e8196eae0802f8c8dfc24
|
||||
CT: 23ad62a668f942e613c3b5a7828142048f1f6a67f7f0e0cc8bf3fffb2d1dd967da472d080353dc9c23b900a566f20afb850e4a47688ee507faa6178fef2afd
|
||||
TAG: e9e82d3221f964d9e6c09d761afa3f05d1316d39c82618a82dafa23607bb40a3
|
||||
|
||||
KEY: d5c09fe24201fcc3ad4c9a9c4b759345f643e930301c3714f62c8dd4974bb15a026b217ac637b4f0e8d6ef40f36be967c50aaea83b2e72df18eeb9576865f1d8
|
||||
NONCE: 9cfa0df1fe0910b33ee9849d
|
||||
IN: bfeb3d86ce3f4c5ccd0c3945e1da0e75dd057aa5b4e1f070593394f4a0227abedac0b77478e04d498506245b162e909cb711d8b875d33f9c4578e80a0e2113
|
||||
AD: b874a8523799554436a1174ab124677dc2ae2042a436c85065c50d5b5e7519623379ffed9a9c2b84b9626214b13c1806b65a432ba79066ff28ed94d17628f5ff84618593954389181e997ebd245d31f520539e250b31c86b99992983820f79e74aeaacb3a95e690e2841aba5a384d0333ebaa5d1fde06b4b8e3e1cabc6639459
|
||||
CT: afa649ea47db94936f89612ece681bb175664a97aa6faae5745f49ac9fcbfd4287b73cb58e8d8aa12eccf309182f075098f339db697fc60540481dad0cd82e
|
||||
TAG: 9909335130df0326650823de5a4f5b6f45e6941a6a72ceaf80ef32fe67363944
|
||||
|
||||
KEY: a13c4654606f532a8df47c367dab1b214166e4f7188c20560831ac30ba5e58d316d29764e4c716ec0126657c926ba2e4541da062447228ae61340a951101b4a0
|
||||
NONCE: a2df3417ebb86bbb2f954939
|
||||
IN: f1954e59a319547d32e81f846e0c79db41c681166b43eb9c10458948606ced50a44df26fad5654a7c25d3fb52539cf25fcc1c11707c4b5aca7910a76e2374740
|
||||
AD:
|
||||
CT: 374726a4691f178a4c0a6f96108ba30c4ca8a30242c14e84380969473879d4a5de580fab4cf6ef6e465560a15028ba78a1a88f9e62322cb698b15ccce6ba83a8
|
||||
TAG: 683e5a3e61d9d9c8b170f1d4eaa4f74dcbecb1a4cb1551dc364bbb336d4e4109
|
||||
|
||||
KEY: 0c1751677a9b7373e0c2ceab2c8e4dab50af22e2230be3187c21ed46069168d173c28a7474d8f7c3cab39401663405aebdcc474ce136e1fff9cfc520bfe17ca6
|
||||
NONCE: 38bc2efcd97998de1528b064
|
||||
IN: 8a3c6212240bdcb86da98f0e3ab3e9e78f7f61f0627ea088ab283e739a0bed5c360eeed26cea43ec09b4f3556049a1d7f8ef86abfd1118f9c0e34cc6eea4544a
|
||||
AD: 20
|
||||
CT: a1a9f7f4750be3d89fc4f25917f8ffa7dd462ce712ddf61792a01b1840bc8e428000372252f1b41055416a961db3be8fbe774f0a0a71a82e79e74927522703a0
|
||||
TAG: ae24708df0d5893a902765f6c6c2eebae0c11312936cd415bf4a74bb8498a367
|
||||
|
||||
KEY: 154c21eb43d8d556e5f782ddd64d577ac8066fa172c2936fc2b2e875aa437f941819d9ecfaefa2e388fdeea81a0ece8dcb7647f2c68da48884aeb1315b577c09
|
||||
NONCE: e14d1bd8681373d41702a762
|
||||
IN: a2c880fcda87d9d4681a735a6790d93a1c9c68e55b87d5f7b3146665a6b2051398eb9895e1f5d522841668b9915633aa8cb40048c619baf6d63ca2da486cdeb8
|
||||
AD: b0b725cf634349ce1d3ac49d48313a09697efd9996cc5afd06b1d0817181d0374db05825dc2f08207bfb3b
|
||||
CT: 1cc0db5980863df7a40c78e323a78be6c6d556d4e3b5f930d8d0f2c6a10c6477e31c000d3f0563b46e1a4aa566a4ef4b433e17e94c43338b51a7a3f862739b6e
|
||||
TAG: fe005424112de2a5ca6e68ada40984df1ae5ac666cf5fee19e9a0f203dd69f52
|
||||
|
||||
KEY: c34482341724ee431b5272ee2964b245d7657778f7927cad4b5a1bc30a176b1eb88a83ac9faf58215a72855edf94f8e86fade58c5b5907994bb8381c9f21b753
|
||||
NONCE: 4934d9afc32fc7e2d8851594
|
||||
IN: aa3d32adc47b0b84d1b038ddcaeb007a7d5c96cc06a943eba5da6d0d367625330556e67da099c84086b3f46bb4b72986e076eb426913e415cd20bee34e434bd0
|
||||
AD: 076a7bc587b306f3da3ba88e66a55cb8125bbf8aa000dda266e950f381e35ac938ac86f8a15a83022a25f28b
|
||||
CT: cf017d87da8927e42c1f10fd3d73cf483bae43f4e110363159a9fbb7cba363930a0364cd42a5de2c70171edc4caf15bfc7238f7087bf1402b32c7bdb1f493393
|
||||
TAG: 3961efea656aab1b83082522b801fafdae346f7d4be70db1981283f323e5b5dd
|
||||
|
||||
KEY: 363e10d8b3fe349014d6222761bba7af86545dcd1812fe2e5ada564c5008f8ea1850f374208e87362afa135f20f9e79dd0ad32f86448263416086d3afc5d37c0
|
||||
NONCE: cc545928edd3b21c0e8bc0f1
|
||||
IN: b68e3a54d17dab6eb41b03de2df14e792201d78a9c1cbf341da421da82b026ff471d4305ede5c6baae162a098c73da5cab93f30d6d540b4eaa0ee772448dade8
|
||||
AD: e21498edf4e25ada2dd6a382eceaf737623e501db34f5c5bd5c963f45818b146a6e45aa92db2a2069e55d46a4c
|
||||
CT: e4920c1fddb5dfed2268781fbb17e9ad2ea88bf2a0f116fbb7b309b25a5b9f989e1abc334999ab175b65f87e874d8ba80792044b458dc27d2b24c989d24385e1
|
||||
TAG: f0dcfa064cdf042e0b9a0443d634c38695dd09b99dadc647195fc2ad53dde547
|
||||
|
||||
KEY: ae93f58aefa94e4e0622f2e962529fd2efdab840fd0bce62e163ca0fb004ec3b22e246073614203d9b63fe2842ef5903ed08b3e52abf7ea18acbe16fa8f66368
|
||||
NONCE: c9ac237c87270f2d88b91b64
|
||||
IN: a75f49778a6c03b0f8915f5d09efe99c5f4e9cd928713882e6b9b78bab3541812db41792b893c7e2259debc6c660ce708851912a5b9eaf91416d86b5de114ce1
|
||||
AD: a4b198a329e9c5bb6d9f31a6415811eb33c79422b0db130b78d788c38c0b9a5122688cbc50fea811afa20789465f9ee4362336cc3701ece701179af96eb7c86d5a00ed8582f24364393287d5dbc3e83a82b7a585cee5b152b5da40aa45ccd46dc841004778998c7efe9eb43c9762d1c8581eee64e18c5a961bda5aafdd5cfec8
|
||||
CT: 453fad9395106a703ccbfe811bf775f1827ea960c71d79242d2ea0e3e31b14baa76eb6d107dfc6e484f4e5146f8cad5b389e4c0fa18260c96a193edbc8091a36
|
||||
TAG: b67082c21557b31392a9821fbce4b93706f96856d2581c92e7fb65dd2166624f
|
||||
|
||||
KEY: a145adafac46280e1cee8696903c5f3866540f27f17a519637373d95dca4ac5ac0bfd85ca6e1f8df8ae3fcfc9158421581669db52c20a3e19c5d251952f63218
|
||||
NONCE: 90bd43611f235ff225b23208
|
||||
IN: cbe5f3a5b7a94b8665cac1a4d173a225679e1a3926d8596b5adc0ef4fd00f7d93a432ff141cc04f877be60b6a17fff40ac845a91bcee3b483862f67d9a76ef498ce5e49c361bfc018e401aff47b397e96b2982d4fdcd043ca09905be9634e83dc22a667c955bc992ec96ca1b76f73631767f64fc7151284d5aa81c1aa42eb3aa
|
||||
AD:
|
||||
CT: 604f718dbce17dfca1fc5e0f400151cb65bea9d7d8f26d56687a76a23f89201aab01ef928006d15493f5b1501bb99c517cf123acd956ab575e687298488a88d5739c266e67ca6a20a5dbe5f5f27ac778816f04e7b1764cb716477f3aa01482cb6b25fe034ab5d942013164aa124608cacf13d6cc9487446cfba54315fc6bfc42
|
||||
TAG: 8e3e1a01945bfd9e1aa4eff1cdd0a6da6d8fdd5446e6d732a673effe8e44d76a
|
||||
|
||||
KEY: 63ac8e2561341587bc066c87cd23f7f33e6023bdc1521a91d6ce63d3ab213825d95d674928b56da1741aad8e85a8b703239ad74e0304ad555eeadebf4ae30aa6
|
||||
NONCE: 4f3073c3b780ebb146e136c7
|
||||
IN: 7f9a05b1aead29b4d5361c2606e5db8a48122858842679cd46f8386ef9359f998cd2c6c266791429624ff634a160d08faf1523b650c30b2fcd71517da5f377000251ef23cfd2510a0630215ad45fa6d2313f9add040a07df8259b82d3f29cf1ab8477cd114c9ee579d3e2ce60c5da2f3375b68b4d6e0913d39dac9399c00bd32
|
||||
AD: 22
|
||||
CT: d4ed811c8db932348e0c311e9278ef22f22cec8af88b3ac0cef77f13bbd9b8cca037c1ea87590a0ce3f3e7b3ffe1dcc4c7cd9e721baa5f126a3e0afb26dcfa02bf44428846c0f1e07ba0e026c23a39877de1e69e16a2766ff4fa3d4e8d3a97ba28f407f459ae3520dd840e8f9e149ea582048dc6e3d0227bd86a9c26ddd59895
|
||||
TAG: 0abc9111229bcb725953d139a2dcb1aa0cb9d3d6c01ef4733482dc5edcc88958
|
||||
|
||||
KEY: 355454fbe12f125edbc13550a7494f37efbe12b843058d29f892e1524289c2868ef0050a75a232d3083c381289e4950e352d68d64bf05f0608d694763c36641c
|
||||
NONCE: 0a344bb3da1c4260f2daf256
|
||||
IN: 362e97f8ef09f30e5db2f21d40568d347d9bc42d4c94a563484b12eb109886ccfd2c61c40dfe93eb836bb6aa4f828e77c137485da2df494cbeb6a9a0192c3777b4d7a927fba11a8eaf604b85a81ac4719ce8b595a74656286fd0b80d1ad3f3393e6038b258af97af9a77f6760d486d9caf5a451ba26dee51bda0f76d75bfc26e
|
||||
AD: c7c2e8196f37185b44515480d5d9451d79d07df4c1256bff6382f942727ce9b3a4f81ae964d8af2cd9f638
|
||||
CT: 32a67922947fd6b1c1bfaf3e1d41397173b97095e55307cae1c574daca275778d4aa4313fb1fe5b3997ff18800903ce044c7d0976abbb03b6cc1f7498d8b56d00672bd74f7cb152b677c632ef7a6f6fc13e95e82b6e35d663eb47f27c229c81174fd7c62c94c414e47216af2580fe822643e54907af77ae18e903fe856a02173
|
||||
TAG: 72d0fe5baee8090c5f8e79890b77f6d72a4213a7d1a81e0d1f1c9e6731e44d54
|
||||
|
||||
KEY: 664478c9d30d2cbc39351ec3b3494f3edb81e32e48bd4ef05969da07e770e4181a9ada3b2f83b46f40fc2d9ad35fd8ee6864ff3d70436d6cca3f8e0563cc3b06
|
||||
NONCE: 7313df9679181ffad2972a6b
|
||||
IN: 142f073f2ce443c68822f120b5009e39bea3453017dc04c1b091adfddcb2a7e361c2b79eab1bf0818bc86e9d7964834d3775698b56a11ee07a0c9c03cb7bb895bf1a1dde3975c3662d233052824f1539f58cd6ad5cadb58fecaf2b34935ff711c45a639d642fb8fc3a52929b1296683bb13e67f2cc8ed9090126cdf28a4395c6
|
||||
AD: d0d78b94505793af546912f3780699dd72e288c775bfc75da6e306defcd868f6d40c6d6ce34fab9c11574ef5
|
||||
CT: cb913e40ea5dfe76beae612e9732d23ce352789987134822b2324db585179bf90d0ee20bee102e93a49a55fc978d19e99ba316cf8d9a10d2f2bcb75da4b135d1fcb8057edc33a180586015d8829a128f8fdc87b72497016c280f54f4d974c2c7e9d32ae137eaa1bcb670be237269fa73c3a0f273da9e70d89600ae7c231fc9d4
|
||||
TAG: dcc158c254ff7e131ad854a2158d51c643c281dfd7df342d5481384ab236a685
|
||||
|
||||
KEY: 409d1b4e1c187c8b1c053e999f2af648583e1045d56d553cce9270d08c5643ef365eb35e3bdeaedcd164b0122ad185e71c75146a9807104d9b65b56d9bc1dc55
|
||||
NONCE: 1cce3f08a5aa5824d063a6f2
|
||||
IN: a255239e4065f3effe6aa5e88814d516236d016c51cd8eb35af7cee86418966559802f8ff7ac39c6a45acc1f1b18cc28d7cc32ae66dff43289fe44c3a2a72fbadf3a7249d76c1ba9671dfc420ddf513539f2da5f31030f2b6775c57432c2c3486621d841e80dd4894229debc12ef47d74716838f2d807e208f0fdaf733bce76e
|
||||
AD: 8f34f8b676e71844841c6a7b63fef1ad3061f2449c1044e1a281595da2d9e9fd141aea7350bd8cf9774d375e67
|
||||
CT: 969fc2c64261db415e51eee8cc5e0cf5185b8e3325dea516a70e32115a5b72233a44458c40f2daff3594d71e42ca2e3fc1c444ce171d22ef40009d798456613fa4b76beaa6d469e235997a302ac468c8bcfb8ef5de5cda58d7e554a9eab6cb568945dc37f28b0dbd674c083dfbd2e42fda1b42d0c1966e9652a21b32af71e2d5
|
||||
TAG: fa0789a83c255412501944a67bdceaff3f01d9a23b0c749be38abc956e2acae6
|
||||
|
||||
KEY: e6fd8144cdb305bf9e62a2c901764c62902f354409d8c5b9c8cbfc0ba8ac7d0859ff8994e573e46784395d89c355a91a313f601b56e86ed3fd10ba428a5481ce
|
||||
NONCE: bae080718d3e5c5998542f15
|
||||
IN: 2258ffcd6fcf91b1723f8db0047525d61cc8ffc440acf3290690685d16384292493807312b7dfc23ac9d9c3ee1405baab21a3770a05875cfe325268b65fc877463e3208c842ea4a32cf144cc46d57afd91f6b6b5d85fb2dedb0702f0c4e7f742cf4c9b4aec02f07267ec1f7b96a5a3ef25f6c1b4c27bd829e86583e239cd854b
|
||||
AD: 51ae57749b7757718aef9b9c47da5794659516e7f98bc80e6c18c89253f8617963331f54d4f009f087d1d2bd69a083f3a4b98f2a51ce24ffc6079774f7c7b01638b6131bfccebe21fea67bc839c259a50fcc0a16a69ada3c5adee4097d9e053a03266cb9b4b39ee2a465ec1aa058e61a0b9888b93bfcfd103f91ca3a7b274a10
|
||||
CT: 5b2fe8eea3313cc04d5ec75d75d05b3242b6e3b65c6fa1761716780c9529ff8ca523096dd037c5bda27984aa93c702ce9c01c63569a90657cc6373ad5d4473028b7eef69dd79c44c38d0063e8a8b7f1aa2bf6b646711ecd4eea3fa27408e089d9c4c4aceedff29a25baa6a9069eb7eac83a53212c0b387d700547c46cdc525e3
|
||||
TAG: 60319de093aec5c0bb8d5f17e950b0f4df0dfd20ad96490f6f12db461b2a4a84
|
||||
|
|
@ -0,0 +1,579 @@
|
|||
# Test vectors from
|
||||
# https://tools.ietf.org/html/draft-irtf-cfrg-gcmsiv-04#appendix-C
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: 07f5f4169bbf55a8400cd47ea6fd400f
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0100000000000000
|
||||
AD:
|
||||
CT: c2ef328e5c71c83b
|
||||
TAG: 843122130f7364b761e0b97427e3df28
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 010000000000000000000000
|
||||
AD:
|
||||
CT: 9aab2aeb3faa0a34aea8e2b1
|
||||
TAG: 8ca50da9ae6559e48fd10f6e5c9ca17e
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 01000000000000000000000000000000
|
||||
AD:
|
||||
CT: 85a01b63025ba19b7fd3ddfc033b3e76
|
||||
TAG: c9eac6fa700942702e90862383c6c366
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0100000000000000000000000000000002000000000000000000000000000000
|
||||
AD:
|
||||
CT: 4a6a9db4c8c6549201b9edb53006cba821ec9cf850948a7c86c68ac7539d027f
|
||||
TAG: e819e63abcd020b006a976397632eb5d
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 010000000000000000000000000000000200000000000000000000000000000003000000000000000000000000000000
|
||||
AD:
|
||||
CT: c00d121893a9fa603f48ccc1ca3c57ce7499245ea0046db16c53c7c66fe717e39cf6c748837b61f6ee3adcee17534ed5
|
||||
TAG: 790bc96880a99ba804bd12c0e6a22cc4
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 01000000000000000000000000000000020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000
|
||||
AD:
|
||||
CT: c2d5160a1f8683834910acdafc41fbb1632d4a353e8b905ec9a5499ac34f96c7e1049eb080883891a4db8caaa1f99dd004d80487540735234e3744512c6f90ce
|
||||
TAG: 112864c269fc0d9d88c61fa47e39aa08
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0200000000000000
|
||||
AD: 01
|
||||
CT: 1de22967237a8132
|
||||
TAG: 91213f267e3b452f02d01ae33e4ec854
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 020000000000000000000000
|
||||
AD: 01
|
||||
CT: 163d6f9cc1b346cd453a2e4c
|
||||
TAG: c1a4a19ae800941ccdc57cc8413c277f
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: c91545823cc24f17dbb0e9e807d5ec17
|
||||
TAG: b292d28ff61189e8e49f3875ef91aff7
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0200000000000000000000000000000003000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: 07dad364bfc2b9da89116d7bef6daaaf6f255510aa654f920ac81b94e8bad365
|
||||
TAG: aea1bad12702e1965604374aab96dbbc
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 020000000000000000000000000000000300000000000000000000000000000004000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: c67a1f0f567a5198aa1fcc8e3f21314336f7f51ca8b1af61feac35a86416fa47fbca3b5f749cdf564527f2314f42fe25
|
||||
TAG: 03332742b228c647173616cfd44c54eb
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000000000000000000000000000030000000000000000000000000000000400000000000000000000000000000005000000000000000000000000000000
|
||||
AD: 01
|
||||
CT: 67fd45e126bfb9a79930c43aad2d36967d3f0e4d217c1e551f59727870beefc98cb933a8fce9de887b1e40799988db1fc3f91880ed405b2dd298318858467c89
|
||||
TAG: 5bde0285037c5de81e5b570a049b62a0
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 02000000
|
||||
AD: 010000000000000000000000
|
||||
CT: 22b3f4cd
|
||||
TAG: 1835e517741dfddccfa07fa4661b74cf
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 0300000000000000000000000000000004000000
|
||||
AD: 010000000000000000000000000000000200
|
||||
CT: 43dd0163cdb48f9fe3212bf61b201976067f342b
|
||||
TAG: b879ad976d8242acc188ab59cabfe307
|
||||
|
||||
KEY: 0100000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 030000000000000000000000
|
||||
IN: 030000000000000000000000000000000400
|
||||
AD: 0100000000000000000000000000000002000000
|
||||
CT: 462401724b5ce6588d5a54aae5375513a075
|
||||
TAG: cfcdf5042112aa29685c912fc2056543
|
||||
|
||||
# Random vectors generated by the reference code.
|
||||
|
||||
KEY: e66021d5eb8e4f4066d4adb9c33560e4f46e44bb3da0015c94f7088736864200
|
||||
NONCE: e0eaf5284d884a0e77d31646
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: 169fbb2fbf389a995f6390af22228a62
|
||||
|
||||
KEY: bae8e37fc83441b16034566b7a806c46bb91c3c5aedb64a6c590bc84d1a5e269
|
||||
NONCE: e4b47801afc0577e34699b9e
|
||||
IN: 671fdd4fbdc66f146545fc880c94a95198
|
||||
AD: 874296d5cc1fd16132
|
||||
CT: 9209cfae7372e0a3ec2e5d072d5e26b7b9
|
||||
TAG: f3acb73908e54cddf7be1864914e13cf
|
||||
|
||||
KEY: 0b6920ce07787f86743b275d1ab32f6d1f0434d8848c1177441f195495860f04
|
||||
NONCE: 6787f3ea22c127aaf195d189
|
||||
IN: 4728b3fed1473c528b8426a582995929a1499e9ad8780c8d63d0ab4149c09f572c61
|
||||
AD: 4b4745914474e7c7c9882e5386fd9f92ec48
|
||||
CT: 8ad7deb4be91cdc4e75c77de1c746d816212b109c5a485c6cb79e3005d2e94355104
|
||||
TAG: d71002b6a9de0addb173f49e34edab61
|
||||
|
||||
KEY: 9c8fde2be2cf97e74e932d4ed87da44102952ef94b02b805249bac80e6f61455
|
||||
NONCE: bfac8308a2d40d8c84511780
|
||||
IN: 82355c9e940fea2f582950a70d5a1db2316fd568378da107b52b0da55210cc1c1b0abde3b2f204d1e9f8b06bc47f9745b3d1ae
|
||||
AD: 06556fb6aa7890bebc18fe6b3db4da3d57aa94842b9803a96e07fb
|
||||
CT: ced477a00135f16006e100b9d7521f9e1bddbc7d339cc41333abe3cc79dd8e3a18e310dd1dd53ac664673ab9090d5dc07b4859
|
||||
TAG: fdfb01ef873060efc7c3c32adf3b46cc
|
||||
|
||||
KEY: 6de71860f762ebfbd08284e421702de0de18baa9c9596291b08466f37de21c7f
|
||||
NONCE: f901cfe8a69615a93fdf7a98
|
||||
IN: cad481796245709fb18853f68d833640e42a3c02c25b64869e146d7b233987bddfc240871d7576f7028ec6eb5ea7e298342a94d4b202b370ef9768ec6561c4fe6b7e7296
|
||||
AD: fa859c2159058b1f0fe91433a5bdc20e214eab7fecef4454a10ef0657df21ac73c535de1
|
||||
CT: 01fcded8e89997d446236c8e3a77ba755b85b9b5ab8fa8f355be587a3954c4a4231a7c8c198b72525ce4304125a4dabd1574453437f6584790d8cd90d5957b0d5c804a6e
|
||||
TAG: ecb5e6b6e75d241c221a2f4dbd7d0448
|
||||
|
||||
KEY: 92eaed3822a2fbbe2ca9dfc88255e14a661b8aa82cc54236093bbc23688089e5
|
||||
NONCE: 5540db1872504e1cced532ce
|
||||
IN: 4159b035277d4dfbb7db62968b13cd4eec734320ccc9d9bbbb19cb81b2af4ecbc3e72834321f7aa0f70b7282b4f33df23f167541ac15c8417abaf17a282ac7a57252ff224ae7911a905b8c699b20e40c1e9569a6b2
|
||||
AD: aa0232d4b10bb6f20406135861c19795b95f9597f9b72c20931c41164f1b469b0901f2b5da3a956a6e278c940e
|
||||
CT: c49082d9a1bb49356f1a9b75b443832a56387066b617b939b60381db47711bfd174324e8d20c9713d562fb8f5c698dab02b5c00ecb652c182ac5544648599fd7fdd042009ed44961efd975972ae3c9aed8a4f58ddb
|
||||
TAG: 75639e5472bec58e96b358cbe429c4ac
|
||||
|
||||
KEY: 82593eb58f56f6d3681fb00dedf7f612c4cb3193b73ab35f9a5a9cc8d13aa27f
|
||||
NONCE: f1dea3b2a7d832ed8ab959d8
|
||||
IN: 2ee795df8e1ef530cc6fd9a1f10543b44c49383921d74fe0c71d50da4adb9e9c7e5491a488ceb5c384ebafadf0f484fae982019a8ea22efd1358adf7ad4f5fa0d2acd2f1ee095cdfc13310241243fa53b8c2610d1924b1d55cb6d9cb6a5b98a72127255967b8
|
||||
AD: ff23623c5453e61cecf9e624e5c803250c382481d3c10febfa54d03894ba8f9ed72637fcf5631f7b7312cc74e6ff63ecb240349a575f
|
||||
CT: 6841f9ffed11d165b18917ed0aeed507bfdbea3a57beac2f2e08625e9929d3f2d84373ac3b21813f7dde1b25c93129b541fc640e09f5233cd9f0587edad70b73c423011cccae55a9deff9f29308fbdfc9a73f5fff4a7b0ad308ca9b545223adcf724d3d8b127
|
||||
TAG: 479bf5015121d25bf2346429a5c569b4
|
||||
|
||||
KEY: 2cd817f2afbaaf21815bf08ac1e8f87520244b4a3fc492c7120296607ef64d0a
|
||||
NONCE: db4c74b73839e13455fd91dd
|
||||
IN: f7f81d460034b9c41eaf0cc6040a84e17e6108372f1ca50656793554ea1d05181310711d0e60d4d556b2bedb24d7b622c01fe8025119ae0c8a20b679dc40c9908f88fecfafd688b0ebec6a2ac13421012874c80685c481b41323a1724ea96c1df644a595e8cc73955e6f661e0fa30737d78e7cec11629b
|
||||
AD: 8f1fa4bbd8e8e655f50019859514dbc4cbcf944f95084e45337d9d9d8972bd8da92b4eb5a75c0b284305601de859f8d1fac6d6b3fdd42210fdcf696119e436
|
||||
CT: 97d729cde56ec1f95bfbc16ca5dec6a208543c3255f7a2b97fbf5fcbbb34908ace9ce13bd9e90474ed620715a5e9e43c34802b85feebc4d4a23d1bc8b4b5a6c11da7158765c40d2c863185c5551cb2b10eb0b45c61b939f8274ad84fe0a74e163bfd6afc5759946362adc74b4a7f705827323f8291ec38
|
||||
TAG: ea1c9094241c5b75ea880723ccb17ca7
|
||||
|
||||
KEY: 006a5a863859d5b70806197fdb9f0da3e4c31b0c7545809808bf7683757cd11b
|
||||
NONCE: 9d0f8621664df31eb95b5e17
|
||||
IN: 567d680b1a26980772e8ad3e9b2e2de537414368c4f97adff1408d36c1dfee65b78375c7361c91452e7d463338474a400ef9efcaa648e93f38f8784a1598bca461211195d7844de56b91cccc96d89e6471bca6b7374aa5ec4b2f5fba66c17a435970411f2af3d6e33c0d094f74fcb77beb6cbbac1f3a8a19f69ca087f94a5b80d5e3692e0d10ec34
|
||||
AD: aa67269c824b382d6238bcfaaed586177b852f816c31e9966744188f02647d881990d98c3eabd477557a739262bb3f682f64d2208faf98097586053a32cbf37e
|
||||
CT: 85f7411a7f8ab505a7c10c5c1fb9bdabcd9a7826465de96e3b7c762830ce133b33d8956756ec29c00b429d30047040043cd5b3bd87dff60e09e4d7c3a95bcbfa2603ac964be32a82250741e19b6786638be28709ddeae496cba7558b7acbc5545b259e6a1b2ac1f5135f5719987dc547f97f68ffb7b9eac892527a4bf0ffbf59f77327ee763c54d6
|
||||
TAG: 3a8cb8fdab2c79aceaef6680daaf3ecc
|
||||
|
||||
KEY: 78413a2d89613a81966e8d654cac0aa34107947a036f403bda53e74bc524e7bc
|
||||
NONCE: 2d2c51dc426b38c308cc5748
|
||||
IN: 39129e5e6251f41dec9cff7ccf256c38e4994e15ca976d3185ae17030ad3751e56367f86886acc32e27fe04d0b89cc89b0206f281aa2d80f9be19928dabf07417e7659b17f09c56d170ed1ef10d2fadf01e0c78473d06a1685ef0bb112e4ec7e6ce0cbc601fc8a2dd64045c8fada4a28c0c6f0ec98542e365279d00ffdf5e2eae3b663c4b79342f2f265db30a86d6e1b325318d7f7a622b36e
|
||||
AD: 746875b71165defd5ca1afc0a92db6ef4fb9e20b81018a5293899f1e0d06b18a2e65f7616638f79a0db3f2cfdcc0eac2ee1e2e454958e2e6d214a20ad13156f97d0f2cf4276b09f594
|
||||
CT: 142722bf554b8c70e8e76e52b9c0e0bb19b618f7bbc7ffbc91a66031f418d031d3c111eddb9f1ff7c2e64191be8dad4f8cd175079d2ada20c8880d0565c56afe5c9742753cbd50b93620b081f0877f045d0be91ff05a603fdc87e1940ac1e1f0c9aa96d5aaf4a58e0393ced4fad8e83171fa71c397817cd48ce6991e3b73d3356ef0448be1bd8114feff5f23db3b9cacdcfb4d25fd4dbfcae7
|
||||
TAG: e489f6c52120c8cfdc0f164b3440de99
|
||||
|
||||
KEY: 5c11f6b20b7bede26d6c2f0e5cf2786eea66e18d6ece02156f9233bdfc57c75b
|
||||
NONCE: 1a8a8b1f4ab85be5a4a089f0
|
||||
IN: ac762060a336aa502f5a1df1e0a647fb9d5d932dc0654e0725122f6a567681a7d1cb7625ed0404d540d8b3145c911280d2a0ff9d1c53e27677be0436faeb39009fe5751c0b37c7a5f1137a26995577faa109071bee1c87d5e6772ca55fdec02348a625b49c3c881aab162f20ba0b834e8159d9bf20ee0c5d14da0221961c4fc7d9b44c7822f32298d30775cf974172ebfdb36cfb2881ccb15e5f69ed27880b920f4a092815357e03d982
|
||||
AD: f75590af08b447f0f8466b031ed2409e9f5eb479affd9e18017a369486914c63a7494168d91df157f5e56fbc4ab6ee5a8f3af1fbe1bf9324338a1f4acad45fc7137676797c89620b15feb8512544771f280f
|
||||
CT: d8355d51bcd69356ec74b9b8657cec57335731cebfe83202c1557fd208480a2c25747625bcc70533d1ef75d2bfbeb9354066a8650f59a575e836339dd45d0d8a5cac221954b77cabba5e95da7437665fe9b48257148b7e8a88cb2cc4e0912f511aba0a013aaaf09255ec13b27cd9cd05ea11fe2ff21c9ab8a3fe86090dfe13166b172ba08e76d30ad48bef0e2325da08835ecc468cc40222db0552834ae94458366f28f6ba63b3e656bf
|
||||
TAG: 0c7f16d3294d5ef185c2d06ed719ed8d
|
||||
|
||||
KEY: 322cbaac9c4d7cfb4c326824825ba5b5f5190fcde0d399ef1f52b82abb5a8b1e
|
||||
NONCE: 5f2eea2c79702dec4cfbee3d
|
||||
IN: 1f5cc11e085d2254f8b37f8030bd285d6aa1cc53868d18ecfdd963153485dce5a3e3e8cb0a3cf8074571f7a2e9e841229466463f506a2bc90f2d6413128efee043e01eccb930fbc002563510e499457161083ed7997e58ebf03ce7ed2f8d5487936311922884bfd31cf828f3d0ce78f3c6981932268108a369048cdc0a75c062c0ed02e27bbd11754e621ff67c511ed98c6fadc3e95e7100644ebe1aa147a7e99f25ce5c2edb8ab6446749441027a211b8d04a6247299dfea9d75e
|
||||
AD: ab257a625aeb51f74e0b47b302fb5c0475ab23e99f4d93ecf07694497ff6b27c9848805af93a5615bc71486b26fc9da67cf60c8d3a396bc0164985fab2c64bbaa4dd0fdc22c9d9e433e8c70dcdeeebf230c7a3cb3e5d0d48573a64
|
||||
CT: e8d083e25f9332d30bfe60ac071f502909b26393440a848d1f81c3f5fd521de98cd9ad1fc3e806724f5b3732582853cf280f1b99cffdc6b46874d42adb8784cf9ab8e158531b4dbbd76391d48727b585fca0610777fa8ec6a2a7f070627f1ed254e430e55472622289f44089ff22f02b7f3c5e45e228b7b03a5d1e1abdc18b154124f8cdd3b2229e4720cbc1bd3cc3f86f3a6a745de0bffa2536027ee03d447b306ae69b1232e964ca27a6d252c1582422c99373ca2b9541a27081
|
||||
TAG: f6b8a72d4235589f7811ee1c6f8d2167
|
||||
|
||||
KEY: b068daf90f56b15579767ecdd420c0858fabe23abc0b313b97a9c1ceddcb59d5
|
||||
NONCE: 322e47a85cc58e753f00d6f0
|
||||
IN: d032d4c5110c8f22e98895279a30a86da0ef71cea6ef2738fe3e747ee54d2e96e3afb8916281f6369ab1a397ca0a18c6c0e9a0c4edeaa4190ce6422bd116ac254a12235eb66fb5cc7ef55b721d3d2db4c67c38bbbb0bcac9234ea7d733f200e6b86fc55f4abb9b65ee1897c262533cccd118b0f493c849a7aa7f35d243f9438f1858da62bdd03fd5a8c7b01d8097d7ce319a41f80104968a46599e9a3289a29a16b245877898f345f92fa70d3e613c38e6e4ebbf0bcb64c1c41f8b83ec8e9f159d4b830d9a1b79f2ad90db06
|
||||
AD: 7856eb8621e52ab3060e8d72dfe782b62364c163fa00b49aa6fbe4210fb7208c642b7a6735b1a8b2f1dbc4b3d4952985ef207a3eb0a07b1341700762e9f9d1c3438fc6633da2fbade15844cb1813d258aa5bfa4ac129d693792a89622a0c686f05d87019
|
||||
CT: 00d34f899f0a8b40fdfe9fcec98a96c5995b4524b144545026aaa55f629c3befbb8ff794b726e759e18b7198bb2fd2a866379418e6dc4f9fa9e4edc84d21454a5cd212f68a7df321b18e9eb2c537e0cf2e0bf65e80218b841ae8a994ea3f6832d667430dc314567267d7f31519fd856d73eaa1d3bfca419abc5001b25cc1fdf860812b077fda4b01abbe8f8a81a16ad2ab5d9299ea9a0d81aa26e1a573504d5fbdf29e6b2098ce975f2f3c8c212939569c8ea8ed63c4847f2d0fd16f47bcb30bd7e00956ab8a9deddc54e009
|
||||
TAG: 6152a0401a33257c8148e65440601d5c
|
||||
|
||||
KEY: a266f91387d96bf2baae0262782b9c23162f5271cfa3144265deefe2c569e829
|
||||
NONCE: 11e842e5c9ae8fb79becf42c
|
||||
IN: 3afe389acfdc9a34bec7b45705ba68e205b83b33f50b7852fbb7f4ae5dfdfdfb3cfee8a03c96a036388aa8f7809bd47eaa073f92905d0d5f199d466cc0ebd9bceb207f4209bf9925c6109973194742dc8d813f3cb212bbd8d92d7eef645fb0f8245811876dee5f241763edaf7d79c1b83d973f9ba3b29a9b9408418f73743ff0546f0d9290010cf3a665c443b85255759ec6248021e4b6eb825c398b5af7b5257efb7afc481abc20d90249bed5b30d44f725c78ad0ce2821f86838874dceb6b6207ad6fa34579126de720ce34bdfd2058d92b8bbbb3f1bec607de3f0a0
|
||||
AD: 28d8f6e13d0d4d2d3861e1a26d79cb68d3fef68127e8458eb599915022da751e271cd047cc712fae5b0459ae7815a24f4edf806889fc462c83181111f4de5bbb7e66a701460f508eaf73798c3ca9c08cc1a046472f4b18c69b7ed249a96f9bfa05a276499a5f499c586027c64a
|
||||
CT: 11bd92445b4e43dca339491c8100cf933795ef7cf4c3c4d6c42ae5b729ca22869d443505fbb49ccd29b44046569da104f7ddaf325e71e7f30487e83acd012bd492cb4e98342ac7d64843eb499744b3d17db402d51b5bf8cbcb8995fad4a81dad4221ca30ceb3590df41e124c327fd31aa53c86514a12e22c477489871bfeb38cf71cb3a959f4167402576f142bd88b1221281a94661c8d643f89fc92dffef322ce97f8c19b133e55f8020232dbdf42e4527d9f133b8a5934bf0a2df3754d6455a9d765182691ab94ec7a2e68f3ff59805c7457428ee4af8388f91e88b3
|
||||
TAG: 8f1bd0ef9d08299f494054ab9409f663
|
||||
|
||||
KEY: d6a68dcb52a50aa6d1b1d4d202e6f184f01daa08fbd643523f4f73ae6b8d764a
|
||||
NONCE: 7f567087a5fec5ad1ee3e4be
|
||||
IN: 5b677b87109e69eae9a635ac2ea185ba08ebce3ba4be06d53b2da081c5030f5a746fea7bbdda340e10eccd47238340b9244b9442c0efae7644cff53c7abd8445163e891cf30bc8e26eea01f0c461b4796c2106e1ffdfdd1bac29f7d3c72c8ca7f625008d8d333d2a2092c08ef83c8002ed90e2ad01dadfe4cc0681384b489f38d25e83c2c563485fb361f81d44aea205e5bb4c1912d00d8f99f8d7a931e55ae72f749147fbd97699ec730bfb01b8261f1f94696278fc703263cc789b283460af9d74647a8c039ad2184674e78f6a355a26eefc6fcd4cd32d96d245d583836312652fd9e6694ac5644eeb4c2bd667
|
||||
AD: b52e5af14bcb108c8e277728d6d6116e8ed1981993771b8bb783bb351982f9f8c2a0e7c20a5a863c6d71b7145b73d7e6d84d47780d66847244d0b8ef559f2297f39e26501d8a2aae8c36189580292da842c4d0d06a21d21ab175e34589e3b814d8a00ac1d8a3b2eca2a91b21e36c55fc6dad8c0a1b2c
|
||||
CT: ddc900dd582d322c567e3fd7eb23069b9e559bb16639cc79ffc6f3deb6e92cbf71ee66c839b4115e883390646245a42480ae6c638fe7fa04b575b4a8341050e2f3de075f2f19ad9b24d9cc1c39a659b0ffc362d46354da6bee0e41319221cf7cb160017d589413e5c1f07e5f626c2a1f8ae9e8b9ba0320a2de9e1b5f7baa4d551c090521d8ee0b30c8c709fbc00f1fdce999f1f96883e3b83b363cc47665e5a21fcf25afb6aa2bbcd0a374618c3dd8b8f97f21037946dde9bfdc7e907ac39e64f1a5ec8dda60a47148bd066f907a25b9caeb3804c0423836a8d9c35bc58c57882c5b23e00c7f4e3b1743cb14f102
|
||||
TAG: 8ac7e104a0165df543c7454223a01f90
|
||||
|
||||
KEY: c7bcb2108b2e21fafeaa26a2d4881b183b899210b474bdc43a8f0b8464075d86
|
||||
NONCE: a2ba1e9cd195a8ecadd31587
|
||||
IN: 0d5740c4e22eab0783de87d541fa834647c3fc6543c60d5df31c19c6ca38707649fa8dcfc3c0ccc16b1bb60283d7ae2778a8f83ba07b905e23cb06d5656f614f1efcb346f34e190bcc636cdca229b64af9ae4b1f05b58f1ffd1a077a51bbf9ede69ac3954de7daf569cc8de12282cac09b9a49dfb92dcc409b8c63f2ae4a34091633f4aaf225aa02ba9c57b910a76535f0cba67fbab0e6fa0bc876217fc9a546a97dabc9be41209bdb582d8d8a62865df7398d4f7e9ac681bcd102e31bfd40cfb8e9352b1e8ff7a7b81cfe2a62849e8b77dcfb645d2046404a83442133e245bd1df35d69dba9ee097dbc867cde7b431565c72fec31719318dd27c3e47dc5f8
|
||||
AD: 729ea794668d8724a1d4115adcee0725e4c1e3ce16ed9e31bd5a409cd074c0277e21a0b431d3b30ddd361ecd176a8d86927c2f6693105d7d3c47d9be8bd90d0b2fb20587623b2e838624b590a5c9f0e6d519b35eb5332b16bd2c2f9534e376ba68316efdb963d63e2c87cb0716973297d986bbd885a7306e2bdca0855447b5
|
||||
CT: d0e58d936c8b83c253ae9bd29f45afaaba9712647b3da6c6ffd40a9390a4476a0e74a2f2d458c88056bcc0a57fb64597a7c8a5e2be39669dec53c6bf0f7b4a2bacaff9aef36b43fe37b80cccc7d42cc283ba1c1eca739167c07754edec14375d86e88668b156d04c989bcf3fdc70e8a25aa3e6052d6befe3072ec0993d6b520c722dda62b6879324eb4ae016e54d139d816be7fb1bf9c0168d8f7225bc8ed9b7509b45cdb2c8a1db4b3619120c824d0bad7deb7fd0dfdb3674ab15a712f6196a5a840ee8895670cf3b20b8a5e43caa41c5524bf47c2ed4ae7027c2b566dc3e2548244057b880da2a3f1abe5e4eff090f9358970da6568bdb5f8288f9d25829
|
||||
TAG: 057ab8d811b5c3819781752230badd5c
|
||||
|
||||
KEY: 7817285801341c10baf67bb5f71b75a11856d2551eb47e60025a0021b9948afd
|
||||
NONCE: 8818888585a6957eb59680a5
|
||||
IN: 5a5c42458f2d0e0f39bcbada0ba0b6e72340193500e22d243e32be0e7d7bc5c632ef3dc7e79ad5acc895cbba3111d8d1faa69bfe2ce634fc0d7b12242dd8bb105c6ce54cc9718921378c906ff5e61f48fa259b25bd10fee96856a206a928b450a0098089d5cb7378c2935c4537172076d829975798d4f24ad243e4aad474fd5e59e25a6dd133944918709e33f84b4daf4bc6d3ba1e0b9e364dcad5834024066ab5c8e672a999bbf23a83956623943e0011e3a2883d23a767b280ad84e2d7fe5811099395edd269077162310481ff304128271d4ce5c84ea738fde318cb2528bc5cd448c67837cb7dedb632d47e8f90e351b0a8942da2f78e2065cdf827a85f51
|
||||
AD: 0e22156bfd971ab3f123e9774bf3ff7c224af19bc79e812839eeb3f1c14f89e5666c16c44a5483efbe449237508ab2436939098640931fe3b928cb3a9378b6b9fc2a54c6bf59f34b16f06d5ef132ae2a7161034f26a6e07badc61ea51a94a20e4692a0a0525726f3de9bd1d6151fa6a0ea3acef3634847cfbc98d2e0bb9ae89e
|
||||
CT: 5eb6120cae6df4766b40ffb4d204ade5ae08aa2cda263b39ec7b47756ed7e6b7837fdcde8d01a2bf01367e9398e25991f9da11bc9f8de8e6c1b4e922af05d20d683edb4a245e22eb6cc4fec2375e8d81f9f27af5f118a16fde654b4ceabe770fb3a00bc7a88763b670b5e3a6ca06aea1824e20b9c1a304c4bdb62643fea73030ef6d18ee2e22095b4c73abc51abc4883f2bcce14033608ff7e1ce72ab3382c29069eb75426d283a4a71348123be19f480dba1d1677055de9e82d683c2d6413a6a4e0c6d58f7f2188ca5c8b916aa49975b80630d27a89ac284b971478376ad6e55dc64098951bec2ca7d77ebe790b1ed7fe7f33fe571d8613f143e3d3ab6bc613
|
||||
TAG: 6f3f79c6231d7e45ebc1ccbe5d110a0b
|
||||
|
||||
KEY: 4f91a78c56558ac92b4f33fb1d96b1ade26cf4b2fec779bfbf6709e531ce0e62
|
||||
NONCE: 19f75c4c31873d4915b1af3a
|
||||
IN: 51c2ef5e89218ac4060dd12be216654eff2991e8d7bce6f6a437966f80c59c527679b8983e75c617c917fa9b63bc60748f5ca179645afdfe6a126a73d3fbcd41a9df6d734e8783aff3a5134ecacbb289f93febbd8eb493693264026f8678e9fdb779038ac13199459caf9c4e86f4cf8306af6dc04d9dbb678d3ce9e41d154c4c1bca018bbc4d744655af04ee2cd524db41170f0946df225d156dcdca3e52139561b61c26bfc56bc90c21cffa69468863afb66c3e1524303f8f42103e435fa2fe2c2956feffe5b06ed20bdba730d675166f13118a193b06d7985d54d46e4150468df1252d7cd144afc99ce99b93ce9526ea4dec2cde1d0d72fb82f55db65ec2035e387e7923d98490cacc793046afaa2e49
|
||||
AD: bed34cd7e4eaa52e75bac5e86f9e9eb81028cbe8a515870edb9a151334e1f961949855565abc51af9a1bbac0222e9bd217d3e3a642b0f3df8e7c47c2c9d5a801cc8028c425b3becbe31df39d30637c38f981d268017da818010189c93d2d135024f239407623496c5435f04f9cae86e63ef46fcf9787c946b400249d8476f82dee274cc0cd3714973f
|
||||
CT: 27bf7ffbf2c9733c3da8947db11ac8801475451b0a65c96a2a3934bf45ff54fd5fb21ff0d51c83ddf0f49b005d424620b04d0c731cb214f4beb6d353a6d6b7bf1a706b070faf5146b562c9f4e6c0ba5dc9ef9ccde79cd162bcdd887dc02bc95e29dd606d22845f35d0cd6d5eb1f1b154607c0c5c2e8c7dac005eeb17c238e3d4d1e1caab72b20a9d7b2676e6491eb84e9cab903bb0c05751a33642e145de8391ca9e598ffe2e579486ce32d5d76a35d440836ede088267e8cecf4b660fc5eaf05f68872b6cd9427607b146e15fae406ae7089ae446cc2172b8ac9e42cbc27d4e5ee38c21d3fd6d4d52b2d43462756d93995b9333a079dc1f2bea9ac4248c448d932c5c0f6b76da4698d15a64f761a7380b
|
||||
TAG: 7efb02056e18e98960cc5718edd07cb2
|
||||
|
||||
KEY: 1b6e0ebc443d681af25ee26a8ed475136ed8bfaeaa8315a4cd198961518c7bc7
|
||||
NONCE: b15c68437005a4973a068187
|
||||
IN: 38adcaa250949af910aeb807096595b3af54bacbedd966f83f784f651f7a2044461a94f1a6925e6d2064e72319dae75d3883a50afb6be1395d429f24029dc9b8cc021f15e305e5418d844aa4a89ddd299bf2e8c698a8f6a6cf0165c37bcf2e5885d73bb81ca15a33ea75da5946678dfcd546d475149dd1a2dab0e11cc8b07c0b06105a497b1fdb1a720b9510d7d8819b6d946dd85c73be515c6ec00a10a69661c59fcd7a005dd08f3cad722bf3560f356c624404f3be55a02b3301ed756f557a51593ba90d18a1c13e227c8d5180fefdde4957484dcb81d08ee3331a6fa74c9c549ae13b2dc2a80ca0435710eb9f0dc2c908d896957b87325180d397c37ea7cf65db45960c4d791bf8cf798bd7626b13bc5e6b45b45be1a8ff687572ece86d1f5361
|
||||
AD: abaedc1a7f9d9ff8003bca97af7dcc42b4399f9da4a0e7e829c0e12f4d41607303f60d1df5949fca0dd9ef171678e013b88789ac1f51a8160687d842c273a2dda93c5fba1eb5bed7476ba96a12e70cabba43d509b311e9d000212c81c483b7e9e7bae1d9869a125558b2c7ef8f838bdfe97af413b460bd9dc5e372afcb105832ee4c406d74781d3e9f2aa581ba4fe458989a
|
||||
CT: 92aa5661d04af60245f6f56153cd86c6a61d5584473979eef596d6d0c205db9e4d928ba4827dbb08d5b34946b8f3e58ff62a976461ea5639fe2ee79839f99f83cde00e3fa3258e21754fa91a17e0d1fa22cc76fbce0bebb7adad09f99bd12e70e519048d96c1f97a183d8ae66445e63a4a1f936821fa7b58f569a16e25a0d0b202231a79eca0e8a2ed21755f496d8b7a9f59f6bfcf47ee4bf35788935cfb1b5ec2af2ce11c002b2843090e2267d5fc5e26f927e8836d6a97dea2a7e508f82a4cb7df375110217f88f4376782626039af166b080e181d8a310ea7fbb4fb11d5b24367f63ae83475269281aa09b7bd259a348fca28f2e1d7938127c888c68bad2608f89a2440add0c644de2b5f08d3477641675cdb428393758317c273536942caad42
|
||||
TAG: 4a43c15d469378383e9a9a26dca7083a
|
||||
|
||||
KEY: 03679744edb73ba31c7d9d37920d4d57a766104afc9c96650e5a602ba885d207
|
||||
NONCE: 8f1c67d44d6e86eff0c96a14
|
||||
IN: 6bad3420c7dd0c64d800ea5ab7ff472d0f61bdf2e5634e06cb4f3c022dff8c4b46f2a47fdca2d04572b67f24125c66a551a1f150a02f635e1e99895807efa8001f46388365c48e4afe49c04f6681510f7e4cdfa02deb3e60eed745cf6d7ca6b773e1537d057a043cf517e5388dbbc44ff4bd68d2a7243587f8929ef07df5d001a6099bebedf8f26f49323209496d50109c383071e4a61ce18f495d98b6c4bcffd0fc2496b7eb0ba612e2a4cca8eee2a3daa0c21d854d49ca73cf5b24b38940dc2b44a2a6623e8404fc30c4e3aaf759425ebff85cb1c661744adf34c6c5d538f3210dcd0270a3d12784effc48734b53c1a228db291e2e5573b6ba2aed0a7296c1bbfdd1f4a86d6057d5534675a3f4897fe3a1200c54af7e09b97b0a2ab9f25d5ed375e7bac921f28f7b6983a41580362dcf0820
|
||||
AD: a2dfe82989ccf0a998286623617453722bea0b6e8fba504b93cd043c7e6c7cccfbccea43f7e87502026f94cc7035c5e84cc14a5fef9bf2be53dc379053725a9a29c4e86252369bf6dfd3cf2801af7447fd0529e94beba961ed65dcfd492398123faa55346edfc3ecff720966b74fd0ff28f443ca67f88b8f5a4a73007f79ef782bef601a0827888c4c74f7777279c625de8a4b51db94f94f846474
|
||||
CT: d64a6980718a5fe833da2e6c1a119f2f16a5bf3cc5089168520603d37998d5fab07a9e18ebdc0b8417cb6a4d34357f8d598753affd51e93b451269dc24354d197885ce9a3b2f575fdc9c572b05bd7bc8df091a6675185ac15bd1c4f2cc0a8a412ff72baa6fbe95065bf2111910f4f004f6c39cd8e7ff5bab5f86abdb231406763233354734807fe0346ff6ad23a1c9c81b9942b370e02bd79eacf703ebcd53a54a5782f13ad3591801d1ece15c6deb56bb5e32d959ed1363875c57cd9d42881dc1799e652bd554059ce059a9d00a126de35f0285d5d82bfdc383b1b37d77cc1180184b2180aa35d46f816fcf125c9e8e3bbdd67c8770da26b89c7e406f02ec515edca3910de72fc76ddad8344ae36fec1d72315e1a568ee69a08154696e4545ec5ca53b3c0f5ec9cfe82792380c1b9a151a8d6
|
||||
TAG: a258557d32e1924b3eafceb7b73e43d2
|
||||
|
||||
KEY: f8563001339afb3db339ab997cd1eb1eb7b03b228162a480e129c66ad47dbd18
|
||||
NONCE: b4c98f6d51fee205805a50c1
|
||||
IN: 63beb176b754366e13c57c18433228a81089be18b534ee5f9567d529c802d34bbca36807bf845a9d14dd141c5de85607a4b4c5521e5aa717f78fe78612b770a4677cacd77a425e2496ae50ab2e559526c37ea723f2b8d14bd8314e4cc3727bfb835ea4062e87870b13d94d52c25f0c631668292f184fc048dfeed7a9d1a88cc5c4662030700cd8c257784009b4da9039909f73840b600eaf670cd4d988845b1d41cfeeb1ea740db129c12f66a74e6234ebccf4df706ed30fc736cb5cc0db17ed108229e87d6b039da5c4f0568a4cbef9d513dfbc0af9313f02d5129cf616487934f741a0a60bf11fdc8d29ec81eb37577726f54f3e35bb10ef98b1d15bd5726fe501a9249e409eccae128df61762447962ba2a63f30b59ea25e18895d2fd11431606caf6b45b908b08cf2e150c031e20e6cc649699fed5785cfc6a0e22bd8bd8c6d25221
|
||||
AD: e9c9a8d2869d236388fdcdcff990cc940ddefd06da0524a351ae6113b29db9822adf9cb548d92f23e3951ae8522ab113579232e58578e80bd2fe3e1d06414a27ce0ae2e40d87745a8991dd5bd2e8ecbcad8b903195c15ac2eaf9bfe0104bae32f772a7d7416c5671350524419a6df6ed5e1df32b961ea39b164eb7e1353b046100998ba6853674ebd5ba011691a270c046096143daa84752f872e1ae32ac07c4f0d2a048
|
||||
CT: 2ac34bf9d0d909a32322cbfb765875297c50110ad859857c641ffba8efd60ca003b8f32d157b6fd8fcfb1c6037b13285be884ae2dbcbc9194e8757560807a14b2219b9f2dac11af7dbbb2f504e3d8ad47ff73657a4d1283c78bcd410acc1399a529f239440db4b72a48bb3ed984565d180015fa7ca9c0ff0281a2e14807cb90631c75506585c18cefa5cba7e0c943e44e85f60d47927339e3685c1fbf1bf497684a6075e0984ddce22e9c130d3cae99ab35394c315bf8e1040a830344c63d3719cd250ce04d818df0e20650f66613439c0c5153b2fad41e10b296e6fb0feb8977532079ceba9361227f69005c9e696f9b04d724074f4aae59dca55c74e87049c8f6bf1b8642e7c4dc73688260c540be50e8d4997d4b68346a0ea7749747dc72e26ac3bff58802cd60e63b3d8c509d0ce0d9886c50ae7f3a1621a077db155ceceba926919
|
||||
TAG: 67a891187fe42bd1bc7a6037513760a2
|
||||
|
||||
KEY: 362d12b108943a7007bb6cc117135b165cbf42b92df2f191f06085518ebd1a9a
|
||||
NONCE: 2efffbc936ddfedc527b2c9c
|
||||
IN: b69345e0c497cc4951aae5be2748209607a51a1380fd389a14ede9cd4cbacbf822597b1c500cb0549f08a35bb0b1a00c5e25c175318dc771b03501bbe45fc52b2ceb4c04b8213fdce3882e0967ba268cf786ea0acdfca0a7f3f2f4f9ed5f499ff70230158adeb5a741da266573742c527bcc8de42747df891f58632f92a110a981a29052bd17979be21e53067de3baf4c34bfbaf56ef5b3171efa1ae60a1a51f51e0fc5b726bbc23a67015c35a1be5dd125af812b7661106827f31a1e4c7e0bc265efe59c9d6620387755a0bc17a11527fe136b765895e6386b9939c548bbe6d3b35eb92a90c05d0931e5dabad4d42ebee5af45be0106aa68888375a2619f7418a14570d1dedb76e8ab52a0a87eda2570d2c1d903ed9ecfdc62c23c47cb7e234dc617af0843a9f375a58f930337a88379b2b0553c4db974ad74eb46d637ea4e7c7aaafce16971682b772e1d85bb4a7272bc56be9bb
|
||||
AD: b55625a5085e601a5dd60701bb07f69c755a57808d022ca0a407bc3d35c848d6fbfa6bf816d470d9a82d43511c13fd0f496e59646e65c84d7652589c542ae2e73c5b7aee83b9ee8381af1ea1f930444676d8e3335b271cb354e9cd3b17e7f1511787fb618aae930c14cd302bdf3a55b2bb12a61e7b930dc39aeef36447bbb2f4d9f5fb55797627fe1d0b94c04c6817de6cf1e7d6e2660c6f49c0ab4b31cd5b367b912933d3d1f0a6b8b9556fc6
|
||||
CT: ae05b44cd3cd86c828e53930c4a80e01c59a8c1c9ff4b327122cfd325cc4ea0ef4f70e3ac48ede66f4ba7fae9024dd5d78dba260d06f8888aa236e7de50f57ef48ee4b553d42b41ccb8716c59f69f30afad97778f3e48df1d5a57aab3d471fd5079633b3972e2703a86c4e24d0a035b3625a5c7380b963496f9439542b15f4013002445fba9a9f4e9f1a15c5a6bd2894c0f540d264481bd3fb6b8b63d503866edf178d8d6cf007f9c6337bfd900f5c4712d82049a2f82e43fba589a372d44f57c3d260df6f5393d3b182eecdb503e4e35018667e91c4d4362122de3d88971691e7ed05ba7341cb9cd39cc12e12ea114abb6f7cf1bdb9906d3086147a1c22c67a74fb712ba6aba1ae12167a9d77a4e5fc0c19312d20080cb2d39a3a9a8cef7cd286739d5387e1728a2c8450ccca03d0c89332120555f97652d122192374bb4e05bc5839c4c2761de9e2f732a803171a97445f3d70fd
|
||||
TAG: 7e339b51b4e6395ea01ddd2272e5b185
|
||||
|
||||
KEY: f8e9ab310482ee241fc221634b5094481ea232931d696c889d3d37e1c53cf74a
|
||||
NONCE: 3d5bdc41779816b352803f28
|
||||
IN: 2410580b0c03e861f4f7fc98f8a4cd9a4fec0c0b27d92023c081c7927e7599cdf59031444e74fc15dfc12d3c144762b8e448b7ef6772612a2e7bc34a048bc33dc56e99949d569df7e296b66cbb37c66dfd2ad8e7aadc350f8350cd68e8c4e2461290e30f9449dbaf4fdc89221cd75493d33f903d365ec418b327e3dd6fc381a8e06c48868823a42bcd082ab16b2c666b71038273427ba1ceaa57905c655f0ec4d25401c07c679ff5367a9755e63611c19ca5deb1db80f97a3f5149a8ad2cd6491caceee3e19782e66354b76422dd47ba1e715dbd271a07fcdf69b5240e58186b82b1ac443000cca1b0c79dede1cf998643565650e998bf4760dafa08afde120368ff9fdcc2311f78d803c8324e385ade4ccd2eb2ef51aa1884a496ec024221566c8c882992fbb830d4923a5c5d7b99c7e6e7a8aae5926d143e19bed7faeaf7c77bfe7c9f05fdddf75df3df2425bb94a63f54bfb1320bd32e7fc2774be67a22f2410ff3c295cb
|
||||
AD: c3fe566b8c9710807722198f03f56f0abb02ca55de5174d7f9ffa61c0bffb88730886c028451062d6220586bdbf5ff91ad6b1033f2c9d6cf3c3c7bb58a070e8bb1c3a39e3d04952961849cf55e64033ec929f30b9ead497d14b6c89ff6a4c008dab0104e7e20df6d6f11474ab680e5bec789623b2b693950a5d17dbc5b49cf80ab033b1910a9afc4231254f88ca13f37f1214753f32547ee0decad4bb93fe229b6c8a14564081d8ce5d47cd45022bb74475a709d84dc
|
||||
CT: 98ce773c72c6d7d40fb8aaafcda02ed688644ac8e9ac868315cfd9db521870b40ef9decb01673aaae0c8f6403f61389c9454784f007bde6a50c3c69cce30efa5d851cde2f019bc9a9bebb79c19b29304ed908db6e45445ca7f785433abfdca7c553e8f6aa4e6670e839b5a9204648fdad4a35c0a6e44151afeff135e7e080626854e68c0afb5bc6be9aeff91d71b33d294ff1c04fda6291ef535972f3020ec70cd31b156a1468c105655561d8755a4a88c380f6c56ec1e1f49c2670454f1493262a753da4d40343b04f91aaa3e69fa4abdc625869f72839623ed8764692c23e1131f6567a1936cb43c238e0dcc2aa093a728fadd5b0e7d04505b9fedb9212218f1b5452183e8cfb366e7583dedc590f16d713948a85bc4462134eff25eb9703b34b5bdbdc63299575cb0e076f3cc7afe35ff3021658d83b526f7b8018cec38d3da93a0ed388ade0941c740da975dc433b74b1b528ff92bf5484149166f97b44e81d083bc40e5
|
||||
TAG: fb61d2ad676a0e8961aa9f00a164f294
|
||||
|
||||
KEY: 5fb0fd2e46ebc9940ccebcce3b674a6934d4dd57ce0fba9a1407beb06af6d1f6
|
||||
NONCE: d70275fa9f177cd36c990d4b
|
||||
IN: 22ff63aca475feb17de03d3a52b4119f9b277649f6f53f223e29e03493c938688be81151e268928380b407039fb38494cf235ddc823e8cb12f42b50b2feb52be05a38893d154b37cd1cf2f635413d7819354e29e195bd01517992b51efcc91e10932dd6f8a859c5bfd77f2e3efda25caf034a91053da8936e1975fcbecf2ee9784bfae7f903df4ad32e088a869aade322c7d14fc4143c50c59112c8178d00a0424f4003748d28956c9d3a6c57a8e0405d6509147b50ebd7d9a251a127a4dd736d0f74e68755c4226110c276cb7870cf1c7b86617944662737762aa77bb255d24ef951b69adc74314c72f37f32dc091ccfff067a89b834b1cf0b58cc22f7dd6970104dffa1f60b2ba837ca6ff834d07c71ac4eb40416f0f50303dbf6d0b4b0b9d9afa8da46c6753008f093a188cefe67f051c8bb3b6121841e2ba25b8b801db329b8da7d0bfffc29a3810d2d165e854a9eb34b6fcfc7c05bcdecf8f20b12c69f5641441156dd85b910557d1355e9d07030278b494691433
|
||||
AD: bd5de2858d8bbe2e3071ff450f113ca78f385cf77e6dc0a6c3888e3144be91404deed2afe438240270e9493811343c62c2ef0e785921f1ccb2d2d029c5f0365f46bd55bfa8f89d1d4c30c5f6598fe3f9111df847b27a06f7641494e4eb7dba8a5296f90bcee8cf11c1f1fc16c52868e8f2db2dea75b91dbfa023d5555371e1461283e3f1695e028ea00bb35b6e81bff8f128af2d81df6fd2c7f6f42bbe9dab30a59ea4788a53cf9d6a2b1e9cdcc9f1883b37c91eb8bea7659fab41d47f6fb5
|
||||
CT: e919008704bfbe7657974c9e499a3cbcedaee7b813752ddf49a69cfe3ef39a8d6e1ffb1f3bee7065e8b74b28b25b5054d9a0e86ba50d9e6aa4babd075dac7b7a8a0141f0adf9c274eebbd381a3a5f89c287019db217f5b644862319f799ec3f1ffe71e26c1b501eaa56c97a0d679f2c85158531ea41080b4c690ebf7a02ec2016ba260dd6c5fe1cc5084c94ddfb2b897cf597ff36adc11957ee4e4e3f7f7fee3b15df6930ee9bd7a1c1d6a74316194cc4b9e2483acb675def10dbdafc7093c18f46ee3ae155a385a2bf4dfd33db9eb33202d82070cbbf9df7bd6e679f2ef866eb37654c82669434b25764ab8ecf1cbab63ba7b1fdbd5e53bf24f679e321708cae599664a4e5585723df96638bbccc0db568ca8aac82c072e6548cfca1fd978ee1d732f46c6723340625d3a5ae89cb098a35a5ddfea382f1efc3c4b0528af42007c47c76e9baba69833e0219baaf4448308e9bb1eef5512ea41b8c774cbd044b2cd69c6f1c13fa6ae950e48d14cd05d8c5a97cfe4334f7f
|
||||
TAG: ed970cb4c8e9493e2b5b16c99aa6932f
|
||||
|
||||
KEY: e453777b589188805e883e9e15ae1de4e80860bffaef45a1e0a01f88b5d7d948
|
||||
NONCE: e63eabbdd2f357cff8c172e6
|
||||
IN: 652cd3b420533b8527a6ef26c8ed75d349dca2106050d80cb22835c15861a22d8c7cf8c2c2df9407eccb0c21dc7078de4b8b91e82d94a9916c9a284c7e49c8c7d001721a9031530474452588e09411c66023c9c81b7891ed271d371d60dc70f0c04ac93bc694e5b638f7ce901011e1a17059892a98d596666d102d9f7e0de426449906081651f88157063729176f4608f2d506c9637086f8a56821538a6241d8ba5e0f37ad3ebfd0b9f3b3bf0ce18c095c4533cfe33f6a9871bd6158a17dbba101f840c6638ca0589434c5b842d5dc501c7741142982cde70d98014e925eb46493b0bf91a569139be22c42cd33ba1f8c2bc884b2501a0f49d6309344874325345a98481287ccc6d29978d1e5be73740fdf2f3a3fdd0d7c0642be7a22e0c98f0886ed51bac87ceb0f2caa79cf702ffe880daea115b8af6546a7bc18469e07a3f8d8b8a825648684e2b4e9412cfa0f895cfa162ae0fbc11f8cc4a3252b2acf89e8ac67de0adb91e36dd510f9d8ed4eef92047d015b2ebaed1f3f0412d81fb5bc82f548dca18d520599
|
||||
AD: 5c22beae86894c88aa7b50cc82029abff7c8a56d0a6a594fb502ac9f11cf10f8ba9967497e0b70551a6440e15285d53befaaeea2dd2e743cc056bbee79e47350bfb49178454aee0c78372db372d99ddb910dfa8db6556b61d64e8ec833fe4737b13269583459a39bba6a1202fc709595fc0161f537bd825b3245bfc238a6c7d3b2295d1857129df86db0891e022199c793b319ae965cff94b078e467343796992992d388aa210d50599a3b2bbea36250ace162989e3c21249115a402c544aa82
|
||||
CT: 5fb2516faf226ba7767500f7bb3fbb0750b535b2e4e61f4b1a8f8ac58fd0bfc20d6c83b6d646de135d151ca50d10b7816bc0086e0e45021b3e5ef2560be8a8dd5efad693a7a15192614e2c977d9c7c21792c8226d89171b3020dec505a38162ecd1fb3dbffede31ec80875b5a5c84038fa33895e9f10242885a6a59fe07be083c7d7f904ca636f1d8d812e33d3776fc705d5a658984544a6554176b2cacb0aeca55d3c53cb065769e8bd13096aa7bc86ff923a856d9b6dca7146efc39ab1eb41a3f84bc3240ca7b4882ff937bbb21f3242e98bbc6858a1aaa21f5a603dffaf680d21c9c32e383d4a56c6cbda51dda0db76498c2d3e8dd746662c804f968476f5600c4dc32a2bbd966659b097679a9d604e93b0a0de11935a9945b92821f985a25d065242fa120048d4760d58acf930ad57091bcbca236fcfa1bc6cd5f84dc7d19197a2c349138679a6bb13727a207c46bf733a3a86e52907886cbf6bfccf82fda3dad1b94ae819bdd847f5860b9e9711fb7de0d50868ddf792b3383efb1a2002ac57648af7bcd48b
|
||||
TAG: 2205942e6c43fcc24e7a8e0e80c3d494
|
||||
|
||||
KEY: c0bf7b2cdf2d0ee20653b1e07cb42f9d1d0575ea7220ec01bb31deed93fafd12
|
||||
NONCE: 6cc8d0d26816561102778d04
|
||||
IN: ba7d68de3d942d313a63f1ee6c3a37397348f01bc83fb878bb1035748038047cca0c07710b9d76e129f9b881037786907560e4ae9592c02967df22af893b3ad409a3b9587454afe0375846cc8ad94963c7dc61849ee4ec1406dc7915ee5477bb73a43035d67e822e45d3169db88b269824228149abd333af8e41d2be455bfa449bc2ef48f0fbcaeade0f6b62d99e318a2ca44506670fb1397c47d1931136cffc72ea33a0e1e97745e938ce654b9b961fd4680117388dabdbfa134c9dec8206797e72bb5e6c7b672e7c5d720c2035dfe8d42edaa56f54bd2dab11ce5ebc2f95ef01bf080ee82e8ebda43598dca58db3acabd7b3cfbf5183d07bbdae49004f5154d6bafbe1114baaf4c624688178234a6176756718e79bde83422752e7a9ee87648b182f8ebdd96213b640b76118b577064f871d627d2a7218ad19d45499ed3d4d9bddefdc282e66d1d708daaa558ced4edf38ee6f3a9add0f2126e94a707261234932d0e3674fa085a7e2688b854bbb9bedb328940b5d35fd0eb85f5a56f1406d7a8eb7316a17eafdd7b87ee85d812a740041c8ff6057a462ea
|
||||
AD: 51bd07df0a0b0374f5b4ff65ba48587cb83d20010e67f36106e99a5b733b8627d541ddc084ad0374432ac165b4e81c8601e7c180850e54d8db89c092d356dd617439f36d65422a45d116914390320eb1ed0736e47afd5131b7422234a36c5efc5fd578fd6674176a7ac0f73b63a3f5188aa9a7773a27f50e103c2faf3e0488acd1265055999bab1150ebf49bf03728bce3ceb49307e2af7bd5f9ac307a8d249f55514325a6ab58fd2daa5194b07fab933db72806ff4159075e140d89fc3e5d6b684be014b5f0ea1c85
|
||||
CT: d02e8bb096fe307bfb5d5f359e8895f775c126e43289fd30f631559a2edf6d5000974faac0b24b7aec5e6633f862009c0f3e17aeed6fc86154a365a99200d5855a39743f219cccfeaa317b7c9866831e2f61ac7a9553e6b6ab5e5c16ef2711cb0ea9a46a483c057316e4c82b62a895e6d4ed5dd9d3d43576443ffc769630f93b37cef9fe9a79dea94b84ffd991e4429ae6de76fa6d6a9f65479842070271cde06c6e49d21acf98f4ea3e2c28eb67275446e3bcd797bd610cb9aa302430993ef3453c4ae6133f66f766cefbfa5c566bcd43a357fbc502819224352ec68c6da3d596935dfd0dc79655373a588ba08beb1ae21cf222a00e53495946f9ffa7a3edc6dc20559b401c2c5a35ff461bc12bf656b7ab86bb63fd72e7828f3915156a93c4718eb5164e359ae22086f43bb1ac868ab6a3d0631baf4ecb8688a48fa802571606ddc8215af784b04f6823439f0d5cc409c1622ae2a586fe413e4492eae627eee9578e5ef9c891a23341561a9c0f342d824a0347eaae52da91827f55269ffda3ec959613cfe9fbe022f7a8f8f8ba2dd39833ffba261746cca9
|
||||
TAG: 7380475e9d2ff3d9df01b6c895d00dbd
|
||||
|
||||
KEY: 7a97196f184755c637c4f3b8bdeac41fe1bb892b86047e88facc04e2d88532b6
|
||||
NONCE: f584f4ab378a3dc7d6102a17
|
||||
IN: 877db95465015e3122681258437f11d14b83f1159a52486b4c3bc6037ed33de9e856d3c89fc5838aee587c606cc0dbed9a58faad042d51042e086545fd9639b18650bd531065684076cd188f11508d48e2a7ee585e8c8e9061970a2d381374e0bb5ccfc8972a01d9587872ff0c925315d10ccd8b9cc6b1450c5400cee4e2edf25ad952f31da22c7f241f97d966bf491ff2b8f889dc798a24e184c64290656711a826290917db99e2c2bc679c92d309a1856867d9428ca2fe5ed2a3d0476810cca53b18526de0e88508a67c6797b507a2e09cbf5c31f7be6dffc78d883f607f0ec3ddbaaae6b087e8731cebc792dc840ba136374a9b654b5d61735d2d85a70646be9c470918201b9c8f756e971cfc12e0a93acf386809f769ed64a19f47f266f3504d47725672b2aafa611456987fd1db71d16a4d1289ad442f0877da4f192d814f9302a1207a8e8e48ed90f6b5434b35d47dac6a0446156781ca1fa41f7bb772d1eee48919b4e8371cf49fbf452187245a16b51daf82e35b77e80869eb84ee9ecd90312dd3e6e6023ebec1a21b4279bdf21402969101cd1dfefd0a730d3341571bdcfd36abc675744f96
|
||||
AD: bc7445f77f90f261b1ae207f93d17828d39eafae394ecc2e65bca79562a706c279bcc6d038edb9d7a344ab1a5021f9a597b223d7a1a99e1268dceab20c23e0208b9a898e99d83b2e788c1b7faaff2aa6145f8918f53cba3168db274d65f2e419fc233927599f7ad96890bc1cd4f983276b126f7d10b894a67237c7b67e8d633d62b39d788cc43b2f8a05d87e656ba86feaa3a729b0be2abec99bb40d177900f20b559c4e0ae2034409bc9b86c54644cab932e997fe0554e7eaef7b247aa00f9e1ec07aa9af3a86470075324d02c32425309b
|
||||
CT: 7a0f153b5f7976c608206d8791dce0f90cebdc0250b484d7e4669334e8f034165bf4a794dfb989206217c13d4de15e75e7e01a24d2c988212adca2056fa7bdf33a1ff69f6ffff29b78d1560ec21cb4cc96deb9b41437dfe044600724d8ea124f741a5605233143e54d8a58f68d5a7900ed57b734c61d264e71eee4477ffe4d833756c3f65c64ae8fd832296f61a2a7dae5a8cc2c7b3f0cb87900c8c1d885d42420e2a65c414bff138594d00250e8dc451ea319893fdd63f55cad85f9f76ab9806e687fa5e2c1096f13a09ca7febd28cdafc7d0a0592865e568a58b3622876aabdc9a0c0f7924c3173aa0b218e28ad98384ebf5baf7448f316ffd82c5d7b7a51125e65aa78291a342dd30d767e19fb996e961c78d171263e0bc8529c2e3ec6d9430454705a05bd841237a68dc4b7b3039bb3a0a1c22213c9fe6c11d41d39d3cfece07527e0ebacb593add061207c5b1fd221bce69cb5121050f805e2c759423c97a5952962f625c528ff8c11f6550d435d7fbaeffe4155d266f9d0e138ae25cae2030e31fceef9e39666da4fb7e196ab3859532bdcfc10f7ecbcbb8863e7a0c005e9bd7fd9f52dfe03c94
|
||||
TAG: d6de820a9b85168257da829272d6271b
|
||||
|
||||
KEY: bcf5462aa20caa950ec9653939b043c2e94f0ede1b91df0068fdc903431008fe
|
||||
NONCE: 16670d77b089880c962e558f
|
||||
IN: a573b2052d3106dafe00e3acca3df673fa559f950bdf9972e20b9612b5c4c96d50997261be7f2fa978b793d5b61e74b82541c8c02305431a6b7495f948622075b5d18992d976737e1f6f38aadf90bfb46f7bb9a7871620218564360729844329f4cd2f0c77bbbf17661529f88c80d1e000eafdbb937411cbd4295ae697baaa6c9a31206c5711bcf31f2dcb50cddb4619d48388a57475df684f4a00d432560540ea4d4d337ce0284467851e86447b1f04246fb2167625a0b3cc16873841d23551653aa1678ba76689664e16c7354c87d5fb7d40287894f46e56f5394bacb222b30fcb3f5d55476fc37c122d6865751212d4f57651092066aa20eb70114f269b08e4ece1b804fa3f2c5e4b94981d41b3503fd127fb21c1ba24cb871dc6f19c2a674561900f73e292f618e1b3a285ec79bc7784e3481cfe36e1117fc620aabeb088585aef6632a7228a5f901c62f248b9ae12c7a6e7e5052d9739bfe303758989af254b78d5a42c74b13def0516611a1c0323e18070147f67cf0613cb22d83dc29c176b6823166c35202c46e85484640221fea9441b1e9f4ddfa4c0a2f4b2599c6fc73856e3c18a5905f85dc919883f3fe9dbbffc50e89e8b71b9a36c
|
||||
AD: 74290718e0b89aef1ec21fae49d280d3776d3ef79368634716cafc8f2eefb3f449c438c14deebb705a42e85274cecd11932c9a84f0dee48e8a2175b57820c1042adcfc42ac9a39341af5ff6edab2d25eba8f0219d3737bd4e7ebcfb3883877130c85e5be6a7b87cdaf4d37075eb2f0bd0d1a61567a362e8f66302e56668590b49b5c76eef962d1c310f8bbfdf8f57f3f82b9b2f72ef49cf487a4e8618476db71c6e0813e908126f9958ed5453067c6797eadb432d07de49dc2e50a266eaf6174cd1b18ab707a53dd47b564518b7bda452bc451a25ad2aaed6f2e7a
|
||||
CT: e62cb3363816bdbd4153221411b5599b453820d675b5824ea1ef57c2a1bee7563a092976ce33c918a33c67e4628d5661acf2ea7e353bd4cce6a87557593e0ebcece6510b63b9a4a2d2c055e28b464a752b919c593623ee4c2a6bbc2b2a95f884513e446b10e2f0ea6ec98c10d893088084f7519f912afa35a693bd312335cbe2a95e4bb4cff6dfb6c2b632ef01b48d102f244bd0df83d54cda5060a01f3c3c3c8b4dd7077d0f3eeb89cddcddd23ed391697996bfa741dda4462efd006be7bf15c3b2d63aadc3cdcd862e3d09d0ca675e397055307fca30641f62fdba74ccef65682701b9551814139f4ee4eaba2f1739966925b56cbd6c3b16e94980484d32f51a216e17f07deaf70694745829564e486f53bf5cdd38ee660be09a8860be35873f14ce269adc17ce7c2ceb7941810b978a0db7e7d472f23e8ee80c9faef243cafd019d689aafaf0dab91e4b7afd5808f30753b46061057f302b8ca383c6dd7fb35b3282ffcc98487c9616a451386c1204d75337b28390e9968b24800c5a66449831da8ea3bf3aeacf2e6608b96c3291752cd049b168b1ed1f812a6f4901f30363a09b90b4b7f8af22468708c550cf77c30ca4385441d3c74e5f78c
|
||||
TAG: dfa7cc77acedf8de5a7a0375472f3c07
|
||||
|
||||
KEY: 3509f704954bff2b50f5cabd420148967ff830b0c4804ad5081b42f842276c6a
|
||||
NONCE: ddae1c3199da88778d920a6c
|
||||
IN: 79114e667faf28fce2f7924c4288399e5b4968c711f03d721e885fea0668574ae965e9996aab6b30b6eac785cdebc45a305b806ea90663927b8dbe8116292ddcc56938c0b1b1639e8068db1e4cfd101af5478dd63fe0209125ce92e3f7f7fa43dffecc07ae1621f32af975dcbe3f34f1dc75c75fcbc4c23ee8b8900c2719f4a9f50e57b1f9a9d9172fc746112f12b17b85b0371d0472d3c193c37e837d8201fe7d3ce588ab7e27e8457c34d399edfe3af2142a2baae6c6ec74863f6415ce30b17c17599860bf9a59be41a6011104b9cd0b8241ca52d1f7910cd3a3ae8693e47f4675ade296a8c507fba35f62c82d923051fa718d52a0279ba997149032b3a91b1dae9cddd5a89400de90ffad1e1a126c41459c512c261f089787fcc18c4583abd4c9e8b7844389db3d13e8bd5fdb68bd76c3878344241eca6916049795716b257636f1d25230db71bb10725fe4b9217d5643ea14754a69739cb62c7e99c5157bfb8c153cd754a2ed10bbd574c718b8dad2a556793e00d8d5a59bdd486e768f2e61ea822822532f8b4d77b3446eff2cdfb7d88d37b3e7ab0686679e02497abc04ef7a240d456bf999cff4268bfa6e366831559de7775ed6a6d4f02d489d4c305f25cd96f2239f2725961d5cd8
|
||||
AD: 23d72dea41a1c1f1611fbab63d339a8dd47a3a31b7790a605d3bbddfdfb66ca6277a9a3e4036e8662d6560d05a7ee8a674e33d6433aed82fa26e5a1f5a2f47c28092ced2d182eabb9962aa8b10a567ec3705be6889e1415713b9ef08731393cee91370cb1d3bcbadf5710eb841d37992a7aa3573facad94e806d0019194b2cf9c41db281f6ea462e2ab7364b8660b956e145a13b77962c3191b2e46ab764392910cb7410d740aec3ff2ab8b643ae7e65d34f895189bb41902fbf2c5476301600932728008ce33380845f22b7db3a7b9accc8cf0793bf6ba37d405a6bcc8cc622f1cb205c
|
||||
CT: 44234f12f5df525e7f45d785a5503ef1a78398d9e756eec0b97c426af4661471c57baba5b76a19da18984c8824b0e6573ed324758918543618ece2163e969b07fdb6c1a65164e09f1382653b5cc4823deba6ba403046860421529013e79c703e2b467fc15e4a39b5e9caf9f521a0428b1e68fa51b60492cb6c021bab35107c452c94747b59034da681b1f253d594494983df44e7b394e3c9fa190802fef8fb178a2828ea7ef2aa41cd56779036565da68642da9456079fd3bc8718b218725f657db994a19a0a01ebc51f7bb1dea2c7d476417876a7ccf8b517b968b2243e327eb6288f02858c3d679e599c2d603c80b33fc3603f689b91ce117a8481074f11540f6d75c2bbb5d3c8a3a9d7b5699acef00ce981d6c5fda7a8fcf5ea77a365873d185de9f302be3ccc4567b98b74cb695a323cc6ac162a06556f8c0a9b218407a909d7b173b2f1ad4a497fec9f8ffbb2436a4101f57746cdc24ceeb234fd8dc6f04e488227d4a2a42142bb6122b1b59087dc902e8d11e81852aae897227dbcfe872b537e57849d51968d1aa2dcaa63d6de8faeeb5753cfd8af808c69a2a7e831b34ad8e78c97b6a162401cb85247e9d89bcd593242e8c93f9378c1880a4b3c45aa434a5f6d16182035dea99a4c
|
||||
TAG: f53384a5ef6edc2cbcfda00cb7456d78
|
||||
|
||||
KEY: d0b6e7fcbf3a6eb1d3bf2fb91e98593959077e8bb76adecdee2fcb008cfc335d
|
||||
NONCE: 5465e4e10e9cedaa39db35fd
|
||||
IN: d7b9533c5b8f2e5bdb427d8bf42c5b83cc11d2ac5ac96f6cf95090c5f439bc5d4828238a86c5d444ba0aad7b6c5917f673010f0717007a77064bc4d29dca0ae96b381cc89d04d5731a0f985a1e8071a0fff733889d0f2475ae9277b0ac5f7b68a0533f16f904ca15969cb24c24faf7a155ad51917187c5ec8cfc95352481f0e9002eee9467035b3d618b7f6cf9faae1de33af239e6ed4038706b735431195f355a27d1e7098ddd1f34fbb0bd3449b8c7a069b486984d09d50a90a099934eecec7372fc137b5274afe57bc0cd6f49b1e17638fdc8602d31fa975c4f0223349d40a86c36fcbf43124a4726e198729362ba96f79d5e0d89fc404b3836737445756c6060d9e95d1638a030ee5fd954f5a9cc662014ce7420fcddd9f2ab800823246ad30ff0d0f7789fe11807703a731675ceaa31b5835ae039fc0d111f5725ce4df0b9a075a8bd1c1112f90bd64c668d1d9e794228aaec7c17dc664ac88668cd06ef9c425f2815891ee4b737b18b138001eb6c353bd5fb7ec26b2d26a12ad2fa707adafd884be4251bfcf5e5e8f3979e46d90a57107e7e4d04c658f6224d1a288bdafe8e34df1541c702f29a1db2af2279380d49109f17abc4161a6052f4ef0f6657c7322eee44f4cae949dbca447cbbceb9f10c5be6de1d8886766794a3ed
|
||||
AD: dd736ac7acd3bb87cf11e88f246fcec505f595902d1121f68557657f81340261684fde901c079dd73f7c9e1d4bdf90613e7790f334884b668ee04c29750d2baa21ba94f2407a512dbd8450ad4dfc0de22dcbb291045e0fe43fde0cf1396cd3bb959f2dcc1f7ea681d0e7cbcc73e7fffdea35f6dbde8ba0079ad97c8767bf76aa008864375aa0b02b89d8bf2ce7aecb2403648e6069e209f7283f1cc180c166786d02d984afdc4f8eb9479522362fce0633996c758d99049b25c89a79f7257627e2a9557363a290a0a3673407a298ac1cc034793cb7ff44833c569780bb8be9e937a3a758f1c570ec1c4865efe8
|
||||
CT: 90ccaad48bdd13c3df79d9679465dd0d794b0a0ce4ded4add7f3e2952bf8593c295d17fc43b4c44e56971e0fdb116bae0e7e3203bd02647e8feddbee667ca469ba3b0351a968d746ffe033a60a26b12b525d280353605b71f46cfe3758d9efee4fbb8333945dd794eedca6279fcf5a31003cbce29d748e39ff654bbdf1bed5e7516212dd1ac27e0ac5a121bb5f95c124dc92520b25b8de80874d5d230214c30a8a17196fd23fd91b00e64bb0fb78ea22f15363bc532549252e0f2fc90944ceef75f7c320e3ec75fd148cd130cdf48f88f85cfacde2b6b80ec0f45d0defa941fa89350429da61aea18d25a2d9dd156197dedbc7f736208390274143f63a4f8d2f1dc557c544e364dd3923e54eb79cada64c69c7deffd3ad75f8660b90ea15a2a818d6c5f0d6bd43519eec6cd43618c35b468e10d17b79865e591a0bf1324941a5066c7d1c12dadb77d4993685ac8dcbd2c284f62273888c453808ef40c5d09b054f8459a43c0fbf5c714e8c7b8985ea932ace7a79987b0a9be926335b87d37bc182400a38a847362b3e74b08a952c8c64ca72f1b79d6e0b52cfbe28012c1aa424da95c5a2e8b8c49dc2f305cef00e50b92d320cbec992ca1656848860e0bd790bac5298b7a09b7586c866fed3dcb53afd2f7b313272f1c4b458e1b1bee6
|
||||
TAG: 1139d5d9f7e52a51d258d95a9a51b5a3
|
||||
|
||||
KEY: 5940c08a09430a9fd36376e28e127f81789e8a605405de9c452cf8c7131cbe37
|
||||
NONCE: 597c9a73eb47abcd2aec1b2a
|
||||
IN: 8522f154e672ae25f8494ff35d2573b343213a2fbb07a417d8a60510e7eb1ac5ecf229429f330809c84b0c1ac8f7e28c7f7414db905be8f5fdb5a2f818ba8440b8c9c20f8951b8e9b75eccee79b096ab09f4ec99ec394c7295b30d29060790d3dfc17d1321b8288f3be38b17901a48470784d00c5b53f895fecd4053de78d074fffc16c302a4f2718327bd96445318ad247c99c0ad4d06405b6509ba8f6bf47755f0b297c4616790b25edbac2fddc89b8d509d6955cdf66d30f2bdccac6f856a3206c53c550a9970ec450097ae4cb6f5606e64c750042060c477203479aa4da10edd4d28ad3df96d613194646abde78eee8716382167ee6f77730766fe8b4ca6c8f0270896bcf14cca5d7c2184dc6eef47bf9fffa3f4815f8fd7838c0fec7e9c08bca51970460bc013145f2d651bac1cbceda192014a5f27c991ed3e7127903fd49a5b3a4dea1194ccc10eb62f911586314ada3aab0f8a5d53c90560da3681bd9157892ffb1a381ed33afe203e3c09748487a0b71b8703f6e5f84d9195db08e4c4338343fb8e968d9f5a5b1606b6b20fe60cec3b54b49ef7bfc81bdbb2926ccc79697d916c3b622871dfe9344699c509f9b2775abc12c486e71a008cd525d8610f51948f75bf96bb94c59c98f2e9f35e8513e43898754f7338d7fffb87e538fe6512832e5c2b08cfe952985fac27
|
||||
AD: b0e81a4edf9fe8b9f2eb79758a99fed7907343e6be072bc93fbfb5a539142a18af4e4710283deeeba4e0c1c1cdde7e886e7d04f817a5efbe89d12cabb34153856af1cc98c4df21cbc1da3e34f0ab74842a8757a189336487d3ec77f842b10e2efe3e1e232fc1dc89d16dec865cf6e9f422e7b9d7a4e421d79657eafec5451e04174b3372340d6fa8cbd23fc0215e9b6d70a9781ff3b8ae049bd31a363d3fd465f235ce463f720e4bca114d21d3dc407a66f28df01549d168544478404256715161cacaf06d955f525546d384a44ee0570d8c70319bd33aa07b5ce0a891c467957d5ca4d2523d9958a8b4b3e5d3b0dbd1f6a1df3acd38
|
||||
CT: af56537eae418deb9f7da2500111c077ca99da5e835705385924845547a592cd3910dd419e6fa4b9b2d7c21d42ce2797873a494a735cfbb4277143dd25592a1f70ad8d29a42b55f697807994a1c0338543bb56543609e052e52e1b7ac473ce717711fd7ce4c269291764c11615637b29bee0a8001ce82003ac91f410153fed863f7aa1071a76b5583852f6e8bb7b565eac8042e0ed76704ddcb2c03504b9c79b1e66c179a9e91d2cd890380421d84e05a70e05c4aae13fa600e57a78d7668e94f87d7bef00b055118480e4944131a39c7b6066161a3815137a3b0e89cc0db03775507b4d3325ee4449946b33892e064954294c6ce83c97fbd7f11f203fd1af49a478cd3eed3cca766ca3b9d3402dcaa4ab9729f209ad46daf17a584d6187659b039176deb9e08a0cc78db16e4122dc5f81ae4f5ee23a7140d2041cc81c8c43568fdd45c9ce4aaefdf7bf2f650f478f7581202b548164c4c160d3e2d5762569341170304e965e09474130e397bda5326b2aa07067a4fc8275a1cbcc43777414185b243ff67f8947b16db687a5b15bd5f685ce250be6ff21355ada2e125b64b57d57b94d6461ed19e77bba9234ba891d8da2008493a07d4f8c76e71973bb9ef87eb048c453cf66bce0e820966d9f62d39deb43c7a2c25335184e0e5ddc1b191138e71b155d39271becbdf097bdfaf1
|
||||
TAG: febaae3a1e94e47bf92a1171c91aff8e
|
||||
|
||||
KEY: 888d8383ca76d177685ea6d2d65bd717203ccf794d613b2f4d50894cb12754bc
|
||||
NONCE: 95fc19c449bfc10443c5c163
|
||||
IN: 88d98f7a8343cc89faa48882e8a60f83e817f17f68eb338289e2deeacc6bb5ab6d25635b9e0d29fa87ab97e5f29ecc47641e5a4e0d5f11d04bb25c7dcf21e7a93de1880ad022c838b5c957616764bcd2a66f1098ae4926a93e1726384171cbd9503e03b72c77a2721003d3b391f2aadcb32bd62e492528ea3ef5e85761cec47b846d32988468391db2f23fbfeee39cd89a45e71e4d4b29c6fdd8abd1399faef491211e902b0a99b451c58211c56b1a63dc2e8a57e6efab94ca95818a78fdbdb533f286b83725980b9bbac766d3b3ebfde01532e7ab1414eb6d52ad3b1908cf58ba67449cff1d605708d5fe6b21c769f99874249d98ecbb3c62956ebf6f471b63e84a8114f73f918aba186239947bbbe2973181d9b48e801e3a5597b01d166bd2ec933b48bb7376ef131fb792f2a26edd267a713570c1dcac5a223646f6b52b0774ce323efe526b12f1ae59ec70bf6ff62f857374299cf4ae182015cc0cc2545b68d483689c82f4356dd8a06cae383848cbe75f08c5deb198c7effb10973b21fcb72cd53f6baeea5e23b7bf4508825111ab94535ed5ab9b51266d6eee98faf47b6a3acfee64c4a6598baacf1831a0549105d47b72434f498d54ca59041f07d22f3d6b177fe53b5bd874548daff7acab799c3253435551d963110d49fe1d2212b7e17df5b98a0884d9b7153253ebb73c0fe44485d78821a07b5e69bd446eae17
|
||||
AD: 0e8aa718709f258a2a2476886757fc36fda2cd5230288b9a47d4a94b96c8cce880d1d06466aa1b331c0b893504fb8d6047b82549bfe807401d795d784584d608e419a7be990bf099694c788f11c29cb9655057ff12b4ee4b579bf7a52a36e9be42f06fd3ea2a8774cf70c946407db105cc88bd95f5b1f347bb8b4467e08058153edc70fe78bc8fc06f462ba5b16c5a56ce8a357700b43ce1fc8210c17af00f0ac8a19f8a73fb47815113c960138b2238031a74b610a1c45e3769155f6cdb7749d801b8f90ab5cd658f8f28443de9bd2e92098ad7915a6c68342255cc5f1abd5bba34316a297246dd2bc0f3975bf0037c3d17ceb9d9c9262b0797a6b5a90c72
|
||||
CT: fcc54b58b1330cc5e87305ad574eb3ddc760f12a0dbc5075d8b7e825cb52237f48845a1099527fcd5e483f2d99a06a413eaaab04e641bf7ee3e6f08575658da3e48af76b849ca68443b61f260118bf7730d9a4b965c4d55d391c66c87ac9a065f32e784758be031f9f24901737da41fb0b800e61c5d3e75024ce3cbc03c9b0a318b90821623cb50e487fc15ffe6e3b1ba69b98ab10564bb72f868faa2e4f446e5331065f36d30942022038d11dd040d872aecd22163affa37003302cee8da8b02fc1ece3c3b6a29bc515609faaa460032a09adc496bbcc70ae7d35b78c8f97f4b5a55b9fc03a00561bdbdf883edac8761a8c31275c4833ca06a212dcc4fdabaa022c7e7daaaa7435b5c7014fa3866bb77890ef0955afb267417706ccaf3ccd9e633ed9892fb5049600597e9b85f73f7fb065bcc748237f33a0c300298dc4cf37781fe632adac9fdc0f3388d315a1816f315c96b8d75c7143795f56e0e51f09443396dd7e291828cdb0bb70125e90211c68530f33e0b2ef8bceb42905b908fb3f64dcf48ba8ec4abbcfc3da2bc6f04dc8bd993a438cf3e64efafbdad932e01ab3000b6bc819e1c205242220ea72ecd4cb38e54ab7c483a58956f992304512bbeaf7fc0f987098c25797d734cdf74a3bf06a5ec90cbe1e12e59fc47e8ddc4ec0ffcd90e0db824e44bebe661a88a94b335bfd2d957186723d9e0d50544e68547c
|
||||
TAG: 9c7a7696965ac3b4d1b175a1136fff97
|
||||
|
||||
KEY: d4af4e662935bc7de08739ed8340397b78f0f7dd4f96a2fe50579a1e7754de0c
|
||||
NONCE: e06145d6b247742ab582584c
|
||||
IN: 3b9c868cb0311b02273fe15f7a87403140b7b3bb49342cf26a5e68226a2927457c0f6b06f429c6cf5746b91ce5220e3b20cfca713664f5ec98b972fc3bb098f52c973a917f3b68dffe955a4fc670fa9c2ce686ceda47e060b291fc5a39fafc9489d18c3c3c08e580e492e35f058682e75e06c4141c38fd94b23eaf1048557c668f26da84f08718d850d65f8ab7a4e94c66fca8bf5ca345e8a966dff970fefbbcb88f3cc6b791ac03cad7708492675a2b4c54198b3f5f8906f3bcf2a56ba04666698c820309745aac83b45fa89e794d56a16fb3d00c923632c1d68fce42296729aba6ca2fdb2155a8000baf146e461c9cc1ead957027a7303f01622d129eeb87604daa5b792d6d2cc4ba08cab47c3a0209195dc19edd01f1a4b54fbeec73c422b1c06558f3d70a2f96651db1e0364b7aab14d496a81b169e244f0f0657254faea172e9409bee2934fc622a7b2079f8368f53313790e1c06144f7f140468266fd6269b4f442a06606bdc9097d4547665f7fa192f67f0a14ff3a9f04092386d705a0a7d3a566b7c2e2b6ec9b6e6caa258ed2bef1ea747c6c80c0b494a5fc66906f5bec5da4aa884d38a6dc74af82aa94083106f6b8e182b529f94f4c389d6730b313ee8e656637ac064fed06561ea32b4dd3a3a128f3458c6e9b500cf3e578011e6b1ece6ed3fbd896119511f89db1e1719ca22a30b779c26803b278dadb4446fe2
|
||||
AD: 8b5f96d3c91d0280dfb3976508eda8e803de1205ef65b3f7e4a41005165c5f3267b60a679095c25deb7c229ae7631c9df61ed198a9e7d9f6267bf288ecb88ab82dc3f210867490cf9c248828c73db475a757979894c16382fa1a9e5a06c081fec99aba123f6ebda65e07378026986b97a75e0f3bb74cc26f4b813d73c4c7fbdbfd5fdc4903a51d3064783309e497d14db09564a75551adc83197a30e3584a258722dc95fc187964f3207579f5d0caaa98d9dbd547cf2b854c4e820ee2fb4c4a1c83ef814e6bc48ad7cef6efb11b7dfdd41de49f1ba2317849f153115457b6dd839b6b5c84e8bd11419c553d51cb00bfc28e7c82718db654b4f8cc7f37b4ba96d
|
||||
CT: 3fe29eb90fe4d85b070d118e2ee7b5820ba5aa019b5aa64c04485305771ab03b7dbfbf9cefc1f1d4ac7b91e82e460e1e4bff9d6ec7cb61138fd3521a9a13aebaf082907b6bd82fb0cddd4c6d2af72b054c2742ded0241e2db9573ea7cb76b56b14c7bbb2a983b9032bb701a83f7328da550e6fe2c07026a81989d030610afa859b1622c8743e957d3441f044339d5936921104f0d98c427fee9430dc1689261c63f0a02beb9095623480ba798fd13ec536d678550f10f71f2dced90edef6e3db5699a27f20d2382b06adf5df7108d44b5610bd49a7270d1021b93cb167b15cfbafc875c9188211fa31aac4dd9f4abff49cf18c466731d3d343aa04851abf731137c83e8815a04cb48957b7514f5b8d27d1bcfb3f8bb805603062fa4f2a1e50734b2e52ca9e99bf834001dc6f57fca600bc49d0e95c2ca80581a66176f182cbf9602e683b2480492d1e6b0f6119930a85e09f4e56b861c8c287da0b4028c055e3f325802260b7666b38da47960acbf10f9206e68ef247a78b0f9b7b5bc50aa6f5a47684d1e64c79ff28f1bb21bf3e67f7d6ea5c2074b45bfa7d905b989fd262afb2253b172415c16706b9c88a322787a3001460848391863b71aba1d23dda76adb560e7a03c81271330bbf36b6b21d1c8965f8973afa9772b7590b9de18a9c961bac11590825abb5a7fbe78f4d120e6eff290b8b3e4b36222a0fa1de8a5ba2501
|
||||
TAG: 0948cf55a922d9ca8061356f5a829236
|
||||
|
||||
KEY: 09513c60bebaa087fefe7934112ead9e90d8599e184692ce235fbf5327dacc20
|
||||
NONCE: b8d41590570fd882012b1207
|
||||
IN: ef4f33e3526fa3c64c4cb725091dd621bd6f2ce69c29ca39aaf172f05400ddc7af2af0fdab161af935409e3d5b9a8fb915a4ff8b7c0d4baf8f0a103be99ee7d21eed37e258bf79e18a81cd42fef0dfa465e04cb70fd8165f16203e8ed49bc2c3e88476aec77b466debaa6d888cf8cf013e8672d781fc5a8bbcddadf023d7208ed5f6f0ee2e3418158b653431fef54f821f38a69202897126f9a24a5793cb38fe5e8b3f77034e080dd8e4acc7fd22a12ab64a47f98f588e756fe691ab4c7f4557dd9b77e28f997d687a068925d18fab49f3acc072b33fb4d8c7a60f9a639b4b1d785c062e5d386261ff9e7066ed81cebf6f483466c0747dc221262a7e7959ff156f3e69dcf4c3db8ccc256d666d3700475874d600d6e7f69a2d094c9c55669bb4b1f72583d23aeea9b858372c61516fb3f096736cccc3ecd74b98606a404a5a6195fe0899916c463092a749274e91831ef63b254a4c70b737bd8bc070b805ee42e5714b07dd4fa39da758de787340c0109e55ff4aaa19b05eb8e2b2ce171e4f9854d6aa56536b35359a7163557056ccca870012954737810bcc6ba226f6f38b774da0edd4c3e2d64ba4d6415d6528d7227a5a0ab222092c7035a8fabd3897bf9f59eca8692373b676b817d57f83aeb4f866c553b2ae1def7d7760cd152d18d43178b351ab4e23272bf157ec2832fd92b4d4e9085cf51da487779d82011745d0982ddc348613d55143bfecafa431a4b7cca9
|
||||
AD: db82856c297682e62ecd1794a6ffe02a9e9b69814a6cebe50418e9bfc9e494b04afb9c0d6db479a8bf1c5d88be4c6b81246d8f4ecde7e3d4c6aa777277f705ef81962ff56d8174255519c00ccca0098e9370b675f736c86816dab838d7887b1d9bd638613a07b7122a9d55b4a7cedddda3b2337d3ec7bd20e499daa467c04a9d52ca1a02d119a62c6dade203a0bba45d3f9366e3f59a4abcaa62b6c08255d60798b9b0bd6205f2e24253dc75e8aedcc1bb3a525548479fa5363bc8176075ab004e7e73d0ac5f5e8717d3389f3287eea904f91fe63b5cd860091a42a101c1a1e6b13b31e2a7382f718dde735feba88ecb1ab41d042c4ce0106fc78b2397eeab842a8e0e5eb83b31d212
|
||||
CT: d412afdcb77bfba94aa9a2a3a3a016369706fa4ab1efb2bdbf4c657fee4ca85b1c497a4a85e1330854fbff098c2f8450b7a95c4642b970518293a8d6e3f66ea0467cb05b7f2eb5b406e3ba36e153d97c9bf9bf45780e6576840888355f6084adc7ef517ec42e11271d2b72f2675553e21521e4a6b8f92f15fdaee335a4b8141e42a7204e35a96a3bbad2b955e1d9fbf02f735cd1c31f1fbc069b89361a9e0e18c75a587f7f5279a9005f8338412e71eb6e7e644586b9e6aeb6397744cbac0f60b086f7e36b7147c27c077d7038797c6da35bd3812b68dde48917b6695537490992c847a544092c9e16f3715abb930080c10dd8bfc26d51e7fa4b8cbb785d3ca64a2a5e21a10312dc4b55710d7b2dbb727b285b087c542c0e4d9055e16cdbc90954a91dc417ab19eddf8084c765ad1a2636b542411c15f36953f9e6a177089fcb9bc45f0f2256f7b461ff5551a5518c5c33f8fffb282d4698d1ad630cef7bd6c0577624a642eabe3ac0f78386d8dd1429f02a9c206037bdd6ef066ec15fdcf52aaedc1771f3f424e417751b3ee9f8a71ca47a45bb1b8608f68aa1cb29afac84fedb11f579b848e76a5664a8978d5ef26bd087bc28822216454a193a9c4f19126a108cc00b25f9cbe0bfbe704834153bc6dca55f32c4ea87ea6774768c5a36e5e39be927c2e1d4055fd279d99d1b3a8741a4320436791de823c96cba601c0ba9f36f65eec9d3117c6d73bdfecd4a3556f84c
|
||||
TAG: 8ab0f495275a56e3a0d77f255a615fbf
|
||||
|
||||
KEY: 501f265508ce73dddb94729433f2388d1925992f4cc6ce78d9be734466b66d3a
|
||||
NONCE: 702bcf31e90cd2ff6a350a94
|
||||
IN: 689aad4381aa79708817b7e8110cb9a8fc8cfb42a277210526da057e93d32c609be4efb1fa4254c1cba3cb3c2bcb5dcd23d1acfe671c4fbc2b632dcb8ebaa952d7f6ee68e52a59d4933e27a54363c24f4cdb4c4f7ad2cb7c666f9afb811c06df7bfdc93f25edabc314a9a1118c2e0a7cfd219c10a28b5de83dfc3114dda3fd31a3256fc3c915714f1b7e83c6e66273b28944f7e9668de94b8e2536701ead59f9f7f7043070ffad0ff6fddea1d9f92a7af2ce3fb8d130203d0e9550d29785063562c59fe2a699172f32126f6176e9313376203cc1ed15812dce9e304582533a212b3eaf209ea16c8f83db448686c0fcdf5dcfd957fface636fc31ecf5be0072e19e93250e5de639113d920e239a0d1581e179f9e90b5bc077c27b08427f0ec327545c1a235b88be7e8451a5bf405d0dd66664a3bd284f74e4393f969380bb63010081457effe00a972bc6e4895ff82dd4a50e302261734da0efd66b0db1dee74601aa414cd9e2a4c149956bfd63fe0fd1f63f3dabbb6aaa2c651405e36286d00bd0a3c9bcdb8932c6e01300f453ec1ec28724b8934d26c1405f311b67fb8e97ee14624e2d6837bdd38a491a019592526095ca9169b4657d65486470ec12dbc793a42df7d7d9cae29135bbc499425775996633ea60ca5c6711e3aafdbef89ff1bc41d20550c219c82a8841ebbb8e152fdcc55dd689c7768a97720e23a7f9a80b173e679c0e2986e4dc00970fad5f8706a674bfc71901952b7b02189e95dc7207902abc
|
||||
AD: 673d09046fe2326168dd702a76328ca26fc1abffef071f58f968c165700845a997a2013b71c5d83cf6b6ed8d76a1b6d1417d22fe63691e88d3774ddf4ee205f352b765dce99ca0a996d33f95f853ba54f2f9ac3e6d1c068567695d06ee8f3c9865f034dc4b397a15cda23a872a075257c10ad8e2c6d3017ca9183ac2d8b80068a88ffa995045b96df11faeaceb7b41ad716122f08cdf72f9d4970e5315a8bdbe6e93316fb0dd8d1b805ea4861e99cf67a5c8cd3d24eeff142cae3c53eae387b4f51a45bbd808b7ca1c3b69042c33c8a4dfc93246e07dd93bd12c40dc532f3738084e47d38983f6b529e3f61ab8b17e0b588da524d0ca67092112be6868d5ae35102478ebd35213e7b545c859effd6a8240e0
|
||||
CT: d0bace68d76a5be6b31bd038b921b6377f8022e09bfd90a8a94d55c9147b07e9857891b8f4f43ef410378fc0a54966918bae5fde49658e1f6d307908b5346b9d776c1a6dffe52213286fcb298c741d04e9280a4b108419fe9dc938fc5b3810183bb7004a3eb05cd1fa81646e7e64e76e69ddba6d086a020f7c89ceaa7ad53b13b01c5c1addb818eca6d4e060b60e31320267e199af494739f67544542baafb577d2bfc36d7f92b8236dfc6dd5613c9b81681f10ebdc97e49432309d8d46ee1770bfa256b871f9bf76afd426fda88b91fa9a407d6364c181a1f04f17083751944a6925292fb42defb24c215b0128c6f500a642cfd230c89ae2ce117a29adc5c09f7dd4d97a34b9fb4e55802d325a1a13d0f6e664fd5f5a35f22c96c5b567d2297c5832f928ea7041b11f7ee546dfa03bc03385b231c0503657f0119b545faec4010fb67469f2b9bf69f4ab89abd70c339893fd145758b3ae47b44fcd36c20d361e597ca573317b04a5d00997755c97ab20f9b0592aaa8d10a940be50f33c9fab16bb0fbec7d92d21c378a3badc8c2137fb989c9b6111ab8228c427338e0685ccf979afa9e887f06cd840c2795a9e08ed641990f0c29d061c4f93ce6a15836b34dd428d5906714315cd9bd2f636bf9deb8a6371ead07502a46500f987f2ac124428256044948fc4a2cf778012d349ff5f9e3847c8b71793e8acdb96b68eb034d08f6b06db00c72e10bb6574fdccdf39a775628bc387b9ee026866854f52d91cc62659c
|
||||
TAG: 54c66aab6e2939029293205527852b9f
|
||||
|
||||
KEY: 428bd480abeda17764af5b6ed4902977f21fd06e53061ed8b5bf49ea381cc584
|
||||
NONCE: 6f6eb4aa086447f4a7e5e8ee
|
||||
IN: f4997366a2f8f827238ed0cb5b691154f345b4586e1911469c0c81df93859ff0a39ffaf4930bd39aad2bdeed92d4580523e5244640b9e6d3609b022e4b4d0c631669e00571f8d602938eca0b3bf874c0706966e3d07902e392a6721b7dc57028b0bae7d93c40c803a03968b2142965ff03f92d6e729a0e079a9dde3bb30c9c10ce6a5627bb476cf1f879a51104f3ea6d0599bb288d2ba5e0103352372db8ad379cb629c82d212c1d1c6543a8070fb01f61f509c597e92a05f83ed49f2a1c1b3ecc64ad0a7d5884320f481dee5211716fc1c6ef96f34926cb5ea86eae04e934c6c0214eca8369928f2b0bc93c0865cc4e165f2eb1c381642560ade7956e5d69381537b796a11786e8f20d264f0dabf0f31be89acf8d7fcdb2a063de5a9812a3d6aca502708d448a869bcbbd3449eb7e893e3c96cd76039ca41036c8fa9e365709afa301c30b5430e004dd08900d75815936deaf9e7753d8efdbebe09c27426b55161bc0ab3fb00973d093ff6088ab6f309cdb1e40cd40d3f933e0023f0c210cc7ddeef2d29d82e0955019e482782462542e186467bdf9b866998a731583b0906ffb0174cb44499d2d5e3d1fa3577f7344c21362f77e94cfa981913d6592ad1f537c13067f8e7af921db28e93673ee38de0dfcd497d77162fcefc7868ee3f27c07b0d818eb553fdf7acae2db4eaf657853a26b0a760954331b8c91e763f568d65e658c6eb53a69ac6bc582c33f8146f6c8ad66d8a454be952425f3c0130e658bc1934db754d70774d73b40512e7a9782c4478e1f
|
||||
AD: 9bece80281dd6d8eed2cbca8d4bb08df65feaf79e9a35d075b18e69dd39ba1f47cbb694173432f5f0ef125a9b1902ca97820b6024ae5b49a880ee9e12ecf561ab5abdef81366019a8be495af1d664970178df68f38cd83b416d0076a522a9f3f795e2d2c19c75ada025cb1ef41513cf2c29df9a01e16379c101197da782066f9318d4fa0325bd584b04b1f9597070cc551693c964b2100191e1ed949c426fd2befebe5914cb567adf7518aa4574921516576bc33673e6ffe422c831e616bf6d03476af169d9c4208d7975460873e2792c209c089af7014768c0ae9fa8011c533fc890e366b04d1b79ee7d7aeec0fe89ddc7400d6fb8878ada40a76f65df17bf34919fb5ff7711ed698bbcd3ee4aa8dce8f879959011612a3661c5b
|
||||
CT: abc04db39ba31976883d21f55078e5e4f5ead60c56b232124dd035215a124a489249ba560da193cc3152352f241070313d8e8b693bdc7f72e91c34a5713688a6a8ed1d3a3fdd0c5f118fc83df42b8ae307e39b35021b4479fe240be8e161407bd82950dee7d9a13d397cfc10d38ff3736f47a4da0ddf2cba1501c18674a71d1a1c948e038632d65ab51fa41347c583bcf2d13b2d22201957f607e57dab80e8a1bdd2b9cfe95b204976c1fd5f5e9fa304d3f9761b63d0f5dbc7a129bbcfd97c437b7d3bfbaca571a50192cf309a209dc29d51a18cee2ea9790309795ace41ce20c12eebfc6db620c398d3229e773f44048d596bdfacad90e277518ad0b2f8841eba71551f79fd891cd1aa84c6c87224bccac2c95d9ec27d3d0278b274dfa30a3fa8684f7cf50bbb80c49ab4b4ead2943e87a31dcf29df040f1dde7e2bdb097d230bdefa5d541572b9e759edcf498d0db993f5904e838d53230e231cfb57266fe0128c2d8ed81d6be4b0a14c286e9ed109fffd1cd4d5d5b8b280c238e7e276095659da7db5bb400c157901b111036ca13af2c7763fc33fb45f857d4250ac1145678dfa99960c03327cd39f521d71b582a85da13fbf2905faadd0c4b7bdc818761947a5fc42215657959c335d0dd01c8562bcc6338dd183d51e8b3261b90e0642853912da5a19e3c74a6c109e845fb700ca20c5c9c4a185b1060a830c7ddda040de695df1ac085d7a0b0d433a5530e5a5fce1bced424383520ad85c40d709389a4b3e151e4e8b3c68bc5f62bc9acd0885fedf11fe
|
||||
TAG: d340ff2101c55bc874a152a64dbfbe91
|
||||
|
||||
KEY: ee1a9d7db69fa33107543f111a1c416c92bb873bee9f01564b44922beb1c8158
|
||||
NONCE: 2c9c6974f2442b87c02cb723
|
||||
IN: f5f3c05c78a22b7ba6c3387fea2d07ff58ad55c67aa9ada12563fb296812d087ef3b2d47ea1adb6a7dab646bfd1aa9288c85685c7b41c14eed3c5a34e0642b20888c8d51a65a1c332f1cb5779296051065211e5ec624930f1a2bfb6c10d479059063a2a4614999b0327d00f875162440c29627f817057f5151ba9c9364f0a6a9be85fe7fb911efdfd5cbfd741bfc63564f0d73eaa7bbf4fa16de77fd807bb27a9afd9e62c86e7033b8a969cb0ba9a2240de1a8e8a3463c2fae49c89b3cbc97e59eb30c2ae35834c36c22bc056a34cbd339ea469f3d8f032b5ae10eb00003025e55d42c12d9738ea74703308633f2772e8cd3421d8fc9d334c2845870a2c68c553f4dacdbada3af4ea8f20df3891aab8db9510c299db2bfcce4ffeb5ff128eb3c798dcdec4c665a4e7b30ac120aace497d03de3d726638db82034a19df83e60cedacfdd511a937ed73adeb1565661a201197eaa7fe817bcd9b83a19052461f56c3480c0e0d3314c57aad4f02a9e10afb967f752fb144bb1ecce66ea05608ddc7c876ba95698b04e79a429d36739d31b52e47fb032b18e7686923700e735750628ac0effa74298bdf7b75c115c6ea30634a9636c7ec5a02aa467fd53292d8991fd2cd45078471ac3bd8dbe47ad901047522e82cadde3b4f9d0a1e2b8c6faec2da532a09c58acaf7207fa49c1de10f377bcadc903a3df381a10ebf7556465096a0506e7ea0e7f11e00411f226bf2897f85791d6e34641d8cd049d95d996bae9dee6b2417f558f102a04d758897c484e930cc97d13f540c00f950a1b384ae5139dfaad258e13
|
||||
AD: 15fe76b22a601f7a11d852a080c228065f423c380393ae13ba817f18afaf48f7df08ae376d62e770b0c98e49298bc1f6f1cd07b586128c42d2196d26bc6752fdb375a0edef255d139b35841f426f090f270d5153efe6dcbcc2f4d4fe19258284b98cf70483996003889958a7c993fce98ada15a8bf16137624a2e078fe16060b640155615ed55df21d9bd736df51970f11b06775760116ed1a624588052787f6e95c93cde1c4661c9efafa2d2f217e86dc941263c176bc9e15af02b922e23a1839cb4148f82e8d8888de16e17db10f659112ae0f28cee8c062f34f44304e32fd3713cfbc830699e6aab24aa1c829bd582d39c4262c625c45bcc81b5e07289eec77fdd1613a7e4955aa96ba05c45676e973b609aa6136f5e516e338d183db9523c3e2fa6d
|
||||
CT: 829f34b0c9a9dd142c05e45001836bd524075423cd40507819ffc9db5f5149cfd97cb6584c280f936c8fa3c0237673ff858aeab5f678be466c8b0f9356cd48d0a4bf55f5826115100316d5b11dac5cbe21b817f8e5b2587971d4a1f47695f1f917a87fd64356336481b92922244639cb2455c3bd0b338b24727f14c3b68a92ced6a6a58fd2c07aae4b5206f5fe355de532b996e6348d357906ed4736734b62bd27f8e832690b2e63a2fac998b7af27cc98aa64386594eabf12d5989716e8c36169ac8f548433c6cecc114279cef1a62906bb69233a3d74462f4a35528a98651a0325c06c3667ec31f7b66bb9941b843c6faf6ee56a813b03f3bc8775bcaf1efa10cb4ce784c99ea79d49ae57e4a77d7b069f8456b66ddd04a8addfcc441fc3577b5ce2e38eecebe4963e78dd5728e347654403ea249f70817e545528780668c69bd5186cbfa73e9e7cf3813952377f748c6736988a0faf9f06112dad90733847dae8ea272ac49f1290a417f4eb09f6960e0bbd90c098b3d6bd1f49802325e255ad104cd18a90189aa486eedfad8ca999f533ccfc30e63b31809a2f0dd6bacf29e7a4de79813dac86e3b324e7cc89abfe98e91e02a37e3a5d224207958fe4627aa5861cc1d58515e2da73eaa171e29bd436786a8c54c449bf620b0d91a0c001272b5d047a93289e2d6a31ccb14347b019473214c9dc066d867fd3cc9fbec4c1ea887c6e009bbda41f5e888bbb14587c04c406566abe1a7f473f052a17c3604e837d1358255c70098a4993fb0cc25cf89326044f11a7f4e6e320afc5c8ae457425427d5a08
|
||||
TAG: ef86f2b8d839c403d817a7a4b73b727e
|
||||
|
||||
KEY: 7f603bab7b77e7acaf5f144e9a301a221111ae8a3130b0a77f638dee2e05d4eb
|
||||
NONCE: f314fd627004e9a78d133482
|
||||
IN: 2040ceb4863196a75e5c5ee70861381d6cdf1363a893db2bdb201357c908284b91d690770205be495f788afec67f205edbcf47b78fdfb6e1ca53dfea501ef7fd48008ab05a58b65ef8e3b25cd3617dbe7482d0e846d04d00508192373abad114b6e5713f84de6928339d5c57e4abe88f0c0f0913324bdcc661fc85f391aaec28772df8faed4069573ab9ce2868039b7971b510e8b9239eeb066ddce13e2fc2579b159b08ca564de01fcc32abf19f388f0a8e810fb4de96e19d02010b75ca55d4d6db6c1a0d83d36a9d30a980f51e8263bbdf18cb768c5d912cb1ee8394763dbc7e9276830eecd1c92541ec53e9fcb5be036e8fc2da7c51e9b7978a7fb8e24182825d8a219167bb925dbf639edf4a25c42ab08a7ac8013696f7e10cf0efb57ce4910758ac0726e0bca5d30bf4d0a231fd12420b9b60c3a690e0ce0106c1bcfc47121253347bde0b02845afe64a46c74a401fea9f81cfa02d47f3c6008be65031e26b07d05253d0fbabed865397284b44ce2c38b2117f90f7d3bc60a0d9b04c6ec4b5108da61ff7f6d30083a33528281bf2b543bbb2eec909bc8706c892844e0702f224cafa9f2070adba7e3942023645427abbef47ffdb9ebf43b24aa7367deb7d05241cc5ffc0d1e07554545ddf0f6bdfad4657222fa561f3f92c83fbdcd5b0b93921842d2545b386eaced2fe37d0e5601bdb969125b006b21a8283d8cb5264ca2d8765d2bfe24fc04f8feac32293d88bf6a3bd7764847c72b07a9c3caadb47b96eea17199713eb48d03a8b37897defce70b258328f0547392e7e82e2a1be53c8e40d58235f610ced56019a0696b77b16ed8bcacde
|
||||
AD: 1c142bc3afee168755db6b8d81754dea34e20f6a0e35ed9da60bca3957a054916e0072e3c5329ebbe2bf8f224efe6d501e0105614f72c8e37f2cb7cef644baaf7bf32975cba8e519034427b49bd589d076e3a79b2a9c90170d1e503256389ea444036523d36486bc2d3a94c73afff7bb2b48d0d74b7607c3db43186b9f85102a49d4c0e3cfff1dcf8b5c0cba5ab2f28e1dcbfc858f57f585d5e7d4ee92eec6ebe152e4b160db923cb8d9c154b631e3340b61272e0726cbd88298a4a6dd1d01fabf67d9c66c4681019e13a0e0280e91dbc3cf20e583b4a401dfc57cd3bed42d7e889182a0b75072fb08f1be187b3c7990f9f17bd29d61b8d2bc93f1a78e84fc8c38c4184afac57f3c6915dfefb3e194afa3919fddb1efc685931e49129e3afa230681fa6e7c1d6a69be66d0317d
|
||||
CT: 93ebed6f7254c65c204278a9acae0b123dc19d8e226e41511f349961b1939ca83970b9696f31a7fcac5f5e3d4931b0a592ac27fec71b4e5679a56ad1bc3be37d4bdaa50bfdd0d00545d4b77e757ce7a0c8abfedc9585199ecab1226763a81f9a8c6853462c483f29798a9b28073a57689c5514e356f9fdc3f7bf8ee0688e8cb781af3a365ba940f7ed36ca68f6622fc6b6310a4dd7f8587853f58ef485c82359840e2784460109b4921e4b7ab014b28571938e18b4525bb4d5de35e77cf44573b167883feb3c730945e9ab71a2b755cc315ba99ab96f8d4a8f46589f2e8906b269519da3a2dad2a7075629c82096f028ba47c33e264f55b8898ac5681d396b8e6d23616c1f8db24ece718c2938f88c82da1fa940ecfb402fb300041f9d30e5d47e2d74a4d9822d35aeb6223a4457d621286444f732bed704d529df95627e153246e0688fa97399d96033a06091e77db420c8007ccc33386c28fb76a697dd99ffab76705a7f55797357e563cb607e531938380dfa64800391f06e5cfdd3dad5f91eb7f2138d54cefe9edc0dd3f4d674f5f5aa315f0e1b7922a37821c6cabcc9d81fd002d159d73b0598ddd21b66d3db416b789a40fe886027f1a13d802e54a6bcf691ab029560b67307ecd373f2f9ef2ea2c334fef7d25799088106bbee9fe2b88d06bb23ed0510284c5e1289c1b65a27e4f0fe33f18a0065411ea9e09e65b589a2372f37d0f8f4e07d95f6e8f30fa882726d29f41782b3d5abbd4a9f2dc62419c684a4c8aa92c4adc71c4db805c29b0e561760ea3deadb7d41e7a07a67fed68b8a0f4460e5535e9e0b9f7a754d6f2398fcf399a277
|
||||
TAG: 7ec06820957f6a0e0f4a8f7ae0be696b
|
||||
|
||||
KEY: 0497a937c827b1591931dd17e83207cdbd56f1ec1270b14d9a7b1e2bed3e1062
|
||||
NONCE: 86300bfdb282f9e2db0a43c1
|
||||
IN: 8132b08093892211a8f7b210bcf36120851314cbd8a56f80f26dbfdcdf944fca9148c1d013844e897b034843fc0c8701120062102ae6a00aab0063a1651e0aa36aaf8acbc221ee7575748562288c08050a9a562ec43be7fb3e54dae418ae89476a1d5f81debb13eb6c5e0b4796abc8310e70a5e4a6619923dd6230a7b2a8dd36fbe3a29aff8a2ef35820ca68b07e00f63623db10a648014028d314e01cb537973d03420938dac988e7af001d571fdd7b1606a06430b5fa1770b2f30f53cb439a02771140e44356c3bdb7ebd5e7af10c344396bb3bacd58d32f07a26768afa741a2dae4e91cd8dec01505edf362f38b0fb06c40b8441746a8ec31d9aca6437d1b75b5afa120856e3d87d79ea5b71352edfb56a873d206e8fdc5d5f0bcf91c0ef1beb06718006bceb35f71dc0b7b9f65509a00841930c4087093c0e04945003751c40e59eeb10f62ec33f7a6d16717804519e930bccfce78c316cb720e109a75b30e11415fc5b398b76cebcdd758535798465a8662486745b6ee098f9008d0cccbf8ce2066b12ceed80cfac806178068d2ccdc00ab32d73faac0cba72b5ae75150c13dd0c16d85332d934e56c8f96bfa942fec689e9847283a307ab775ae09cdcdf1c0635f749186868537dcf0123baa295e29601052297aa4b3fbf16b31620aeacc12d08345df8d879343c098372a04d32fcd2470f4bdb3aeeac7afcdd8f95695796c64cd41bb0052905c8b95edbd0bca3e9115f119d29e109198e91b9a024c8a4d67ee864b71eab16d4545862403bdd0720346c43e94793b1ad3f02946989c6e30c978e4c62660c4b1120bd49017203c86f5b9f02bea17a249d6396e390df1abcb508388c735
|
||||
AD: 565ae471a3d24293cc33aeb1cfb05025fd4f17b9382a391d73a2611784358a9a003c1ba16f493f020b1f1545555ca165c00e3bb4a2b855d99a91d4f95534424d3b8b32ba66fbf3de63694b18efb4e0aa62e438eb3a7f50b0551ccb19eba8b63e19bef0e6468ea84b2fa62d0deb181e8c3b00a55198eb69ab7eee2352989013fbadbb26d1c1f5033b26f1ea886a0d1af6c76a78cd09a8b1f247d6f81d7d4e521f6649de7fa5b32b45be2cd803a1adc6fa89eea3a9d876ed1df0534890c9b41627556103964aba36e277d1cbe56bc14458e75c365a58646b7e498325bbe815e645a19bb33d2765a36a61e74eefc32ee9fef4162eb77574638dea2cbb9753e50b85eef07284ff84996a5969af62090ea20c6af307c1b2e56486f50c13d5c4087ed471dc737c4e40b7bdbe9d74ecbd6c8dd0892449496d0c
|
||||
CT: 84cdf98efa641c2c008e2b2f6a8b59e20e95aab15c276a21569a1ccf8b7494b6c9585220620944517f167e38db24bce3c81fba1743bc6a51abe0ba858d763420ddb06a9a36eb417fdbce903c9528f1db76a70f73e50e22154e8807aff8e05fe6d3d28e3f09135486b33e59ef353e30a294be4870a79664d86ea84dc581ae58ba8aa6355ac8289855e7aca0940669cf5e7b00eeb5a5e9c7ca1dd483c6664def93e76244636eec70296965eca0f6c34f1d9923295e343ff9affdfd51492066cc4d5d762db2864db889441dfaf9c2354acd97c823071098b8b9da9b2a91ea98d6391e40ee4e13b7c5773ad7124c1dc22d4e2dd6142eb665be2e936a20edcba8badec6081a07e54649ed2c371a7f22d4898fcf8cd9916c7033925908c2a03c02000a456ce2beec2b2f94c0f92b9a7885c9231886993600e734948b34fa025b733ccef10a8b66d52dc53b850d2632e1d1573256430661d1aa716fb32dc525e80c96afc19808449391dad1165de6668f9743ae1da522c9a953374fdfe214329c00cf359b40bf9f3edc4144da66e3eb9ded0885a1d3b441cdea692ce0e324686e7b2128bb28f6e4256b4ca1463f93f67743a53509deee18be4f9f0604c3491559612b4052370e4fca33482aa0d2370baad1b7e64a1e6088ba87fda91c83f274ef9501385a96b4df53d0ade464abbc8022498f9df1b2608e42b1905d1dc08c3e4bbc7e3b830145a8ea9d7bbf64cec752ea11195947b587cb5abc811307a66b24df8c95756ca4ec7e7bdce47679a2327f08b94849a7760c702ce07072ad7621e0bbb0fb78e3f6a7739de57c29d49057a7ffece9c013384df796ac954f61590c472eebc27a7adfcebe3ffe
|
||||
TAG: 18d8a0469f1ba110dbf77ecae36e63c0
|
||||
|
||||
KEY: ba16e97c864307a55f341121b5e35c47530a9c3059db7000688bb568f4a87be8
|
||||
NONCE: eb8ff97b4f599c829e412edf
|
||||
IN: ae60ec1dc53e15d608021b6afa827f48869b9c9ca017a394d10f814c3172b38ff27ffce750085c288e257b6a2d7ffbbcce9e7acfb12cfcb630c84448329483739be37ecc1ad122603a4f286a48474134550b12ed8dfff73419494a8d251a98fdcf7c329b0e31b0f9379faa6bba2e4adbd429b199b7cc31d2805250082a88f94d3a120a3b07d0229d4a49e45f2729885e55cbb9ae08c88b65576fcb8a96ef23b629422ddbe7497fc2d4baf812bd03a7d5c03e79cf522938337ebd1c9cf3a61d331aba6b436c21ef47b030447e839b94b23e6ab10ac09a1243081544081a09cf35f6c7da3149fe3c8e41f90da05d88e31b32744214ac3a8a0a9098b11a38abbf01da170d3115fd4243f2be6eb8295b921e687755d0baa3fdddc1fd9e8d78992f08c50ea9caef49989872bf00b7f86c78293896dbe25effb4cba7822382ec3aa42a95221eda5980c488bf7ad0031e1ed987096819cd01ddbd03500b348a15fda2f9cb9a870df388e2e7f84386fa33fffd5287f1cb795fcce3a24fe371ce42f2f34dd8db9d1826b6a454082ecd0dc684bdf35d3d7e7a9606cb5336c67238509f0386275d58cc3ce7fc98fd20c77ecd1bdd463ee40e612cc5b9082f3c12b83f16c32072834a64552549289ca767acb23c61b4030227277e0df6ee9acebddb0c3bd538040398ae57767c850066b40ac0c1d7f5de22747051d237f898306beee05273a99b20165c2d7267f65b5451605ad4301a82bc80268b49e3084957d8ea8fab59a6b31f47f76405f5575df8a16a5811a976a84ec23479daf4d1d2c1ef428a9ed39faeb5a625ecd25e04d37736230cf144eeab686180cc71aa713d522c9f2007aae4eab486171ab3a9c338265193d093fecd6feb1cc1d91d10
|
||||
AD: a5f2dca9243d12747b5fd3ed809c06f52872136814aed50d61ac932fdfcac2e9ceef817034647b2f4d61f5a0bde8ef9bef2789a49da799ad1b9bba440a29e3e15e4d97b99c0fa2abcf5cf0e05acc89da732eb79585cf1d6c11a6c65c2087f902ce230208b5f1ce6cde34711646b9db725858cecd3716906853acb06c30c7dcc3901eb407efe6c3a8e1e9f9aebfb1d7217cfc6571fdc4b86d17d66d6e392ebf03be924c0076b8d1f8bff15e192cc5e351351fdb6b26364d883581c3f8e769e9a5689d0ab2f308a1dc47d7032de91124b1ca3d42aa3a8d57ed92a97a2aedba2409b38023c55954d4d5d2630c4dcd5ac7277fabc3408f0265560d3de4114eeb0b10db4d5270725f4454dcb1c7fcc1e36013a155b03181e1a315aaa251e9ab00dfca8e9ef787799a23529fbe8f0f993dbc2338b9f300ed18a67bf92c600f22d803
|
||||
CT: 5d0cafef15ec06bb165c248fe447bfbdb89207ec1331c65a5d88d419576ad9d423d20d660c95b48bc437fe243a6f860f260894e0230b702af0aaa4260746008ad679676a92003a10ccc12654251de9d2cb09f7294c2fe8c2f4764efbe3984e7265abcffc2cb3e30c5611c3f9eaba13e847fd73fb3aef12c8512b44283935c51d48032865bd6efba3ee4e1f07dea2e26022958f6a966fc4059c81fbec916bf4486429f55732fe3e927bd4109a8bc9ecb820d2c137790b0e296df28f2701ef5cba2c5ef0c7732849c75f59f81460333255f139fcbb30376c21ca317db1f849f79b1826c8f3cc0852e00b0dfb94bf3601afa09c27c130b5088c05619dacf00f36e7c01a9f4a2f24d8be1ae778fef1d367b04313f8cec89c708a57bb332b63e60d15d5b4abb2d5b0bd0dca886e0014051053a5e946750be4a9553549d9102b0d8c08bf9f850a6e06aee7030536ecfba48aa577c7d3614056d790c9130544c172bb4cb386fd3988f149cd77ee8275b0fe434e589b64c13885e9ef4047627dc192a6ad646ac6d62f482eca0183d23f65a29937e9e53a1235f66436897da1213607cd850c32cda9828010e6fc3a93f5f9c709ff259921ce890435b6454c046fb01c76513cc99f66a5c2da8f16525b68e3cc66cd6a7674e674bb0cd8487953ea9048a170ac8e81b616e78d0b8460b729d885f4716b741c04e6236d2171017a5d433754aedba3aa7a39675402337db7081f45ea37374a8f86ce8898ea837583a300c0f74c6292d37e7c6d19c190394dbe777e454c344d7e16bc51c0d93465f05327ff29303d80177b9098b4a4d809fcb103a8c199e3e8f827b237408a242a80ab388d29ea12ee8a0fc313367ad213f7e696f90331c7ab9a5730cfa1
|
||||
TAG: 359febfe67037a485d7ccaa4f1b6286e
|
||||
|
||||
KEY: 9a5b03db114ff04aef285642be0d552cca24b615bc1467ccf9818929c06e9659
|
||||
NONCE: 9fe335e06fff534915999ba3
|
||||
IN: c3e7ee9f964ff4c3774c1c63ceddf8674c9c43cd4874f34e22c5912e6f8eac3e889779e7b4ecb2af711665489274c3201a68d8bfe7c61e6e8134aa08d71ac2a23289eea43d1dee5b4fc4caa3cfb666d59b09c554bd924b6522cfaed157519de12d9bfa37b55fe8158d763e3c79b7b10db45bdae4ba18af925bc8528fc19e9af54ac81588682299cf0997eb9710fcc3597564d8f0b71e3249089673b3771ca110a28c1aad49f32301e0921286fe0cfdaed8f64956a4e2c0b22011bbeef46ecc6bfc29ce023b361b2db0488a2cdab32bb94024e757abccebcfa0a672acd77f9ba622a665314c4b520746ba4fa07488e9dc662f755311535f1f98558dfb2be88a86119850c49d4a0bc92e70994ab5d7f410ad20d61fdc93a08e460ff9628a5b242038a1d2905137d4729fa77ac0f74bf1d32fa7b025cc16f8004233eba54fe7537d0127b1a062526d33fed44fbd3475daf5c046123befcb6ee574ffb9620fec7644a10643908a2d3e283864e3011704c4b16dab7c5333545c60ec83b0f7c3e2dc8022ee5d1b8124f766bbd8fc95ae1a5bbbd2ba7eb5c41780627553b8ad99643d8abd43c56a32bc159ab97f1fa4622cba34b283317cabf0bc98931980f207efcfe6d4c4312cd9daff8d46b1f9eca45e0af42bb8b8ab25a9fe0caf1c61b40b1a8a3b35680abf456de109f42d87ef277ca178b4471936748f3232f9075b58c64c89614dde8a75dea86d3b9c2a6c4a71ccebf388becb7a2cbedd92b4ef95d2b72357b4d2ec099a3ff9fa9ebdfd1d9adff3329b0a4ab854f84e8c729538b0e65773a116a3e50685c96e52162e1b98367114d84e5476291fea3173ac3a846529d5af6ddd0d2272b54f534d4430179ce5bee98c3a9d3f6e9cd4d7cef5c79560674ed0b5418e21e9cf7ced787a
|
||||
AD: 9db3427d6153ed69d84ee4ca06c515d3822c6338868dbd97d0a21406275c003f493475d4350660a4f3afe49deacd9f299fc05aeab4029f57d05e21cff132cabf6de6ccb3082e0d8811dbe5188749a2ec8ad6b1c1efffc4031605c407e0c2ce57478b37a4834bff670b4dcfe8a32e6d09a0c80c7c99f7cc41378efdc0231901c7643bc8e0575040d1ac1bf4a79ba4c10bae1c0135ec4469bc8b6413a068ff97e88c4be959f8e426abf3cafa2bef9925aec0c1ee69eb60c7427dbf79656fb3846ae4ff059852e7686311b2778d06b5a7eab71ef92bd086ab0de7dc2a3d4c6070436991a68d81ef5b1c6eb024ccc6b2668c98e9b2ce452ab4751dbd57c2794798f5d9262e2df48788d92045b23a455a135c112e3baf06f2938a485f874a7d5a251770160dd9bf9c93c4e2a789edd07b8a7a4262adb303ff6ce9c551be29dc69f99d
|
||||
CT: 28c9024090abbe09b35c4e289dc1b9574ff5172edb28f34e9133539dc98b4557168bcedb11a94c1ea84eb4b803661e405eb007c17cec80afb3121f27f185a197b4ea3f0ba231e538ae3c312e2522218ca2a73402ea7cffd3c1413c0ca2206caa91722cb048e1ec15e63f6c55e563dfcb4c3404a9c380608da0e903bf8037ee1d740275d568a2a3f9ee232d88950b233287b2bdcbace62efd1425c43efbaa8d12f66852cb5f1b665e7f4cb6fb5e3746cd5e8d612bbda8c031fe5ed7f4f3b5741b2aff9bdb150f637fece13ea1f2f5d32718560a49c841f3923d993b1f5f65715aae6b651e7d8f75ff34a9d1737b9e3f9a0375861458faba779ef9f4b72ebf42097e1e0fab5b925fe85f54d40f940f7ace96125273da94c9e394fa9a80680f6567207ee40ffabc8c152bc6956dadba45eff644213178a7a24882ab59ccfec9fc525ea9e37064ff5566e9ef2c56a9d634f59cfbb0b593d3fb19262436b68f57029d83205ed6c466885d7ce9a33046bda7dad9e2ca92691b3d5f1e48348b17aecc311479c4b147f4d61ac14640006a7c0d83b45372073752f9abdb5d1908dc3ec05f85e70324088e360003dc774bb68347c2acd4322fc1733d36e68cadfa95030dfcb9f73165786a30a7e841717ed8b20bcce47ac9b4900fb6d35c917b291a9b5dfc4ec2679846447a1dd140f48699b792a2969384c7e8914522286765a3013e229d3f3e30b130efd498a1cb56cdd493a5fc8bd9726a8784956ee379f907cf2280745379784bf1f177318cac159ce656c4321eac7ae00adea35e209b38c0ce622a1d4451a2dc6e0c3d2679543cdbed19310976d0748db13e341c396089d977546e956c96199828a8cb72ace556a2ece3edd3efec2493a13d61701a1bd525841933e8398ddbe16cd96a2c
|
||||
TAG: a1cefe9bdf19616e49e6dae07c8a73fa
|
||||
|
||||
KEY: c75a4cdd53afbef565031529cbce2ebbc5f98b71315ea7dcdea17c88e7c8b3c2
|
||||
NONCE: 0da68ee6ee4e0126b67d2a31
|
||||
IN: e1755e532178b048b572f806ab4bfb398247b393dff9c653a452a5ff88cec05ba1ee8ebf23e91b61b1f9adaaf771f448a57f4572d460b8304f8a2d6ba8a8b89e55d13e474233cc8da704c244c6862adba31219d994f302ac7161604d324100241fe6762ac262a5f7b5a07c67cf3f647d2d60846ade2dd33f886ebb59c50d95a4a0ae103438a65bc192d03f351e3e56b6da169480def2db510c83b6ca91534683cf334134afb2491026f7aa45978aa38b38d6a8d193e9609d3d0b3526a14f7b131f9371f56818247ce4fc6e1b17ec6e99b67123e7e34faaa8a8c63c1fb9004604e5ddb32702f9be2246ed7496dd27fa90ba90d90575c0cc45c0b9fcc945f21bfefbfbc82c53dba1feac88db291f74b6512d45cd7a4c5c886a458947f0a30ee04a6866ff5472f6c921d1949b8ddfd623f744bbe5f47950dc0c7c213545f7ab63e88124f79000afa6ad2a10b0dbfa4f34e475420437dd10d487f42d2cc40041af9ef3a4f52f80c9cb25970a4a4af8bc7dbd8fa566fa588d57bcb446b399336fe43ebac2a913d74d0a9f7d97044213390372d4272317fa41a62c50bc2b4d736a759c85124562323d86f1de14fbc3899472a0686a5dae4a3e429efb05681a1d7a36d397741270b2d97aefcc3d90309365a64a0e244d62a4fd3f288f706fb60557d9ba2bc8e29b4d68a299f13ee93d3c4ce0efb7fb26a3d2f828c1268a04d48e5ed520c5334ccad9df4799cb58ebe15284a41aec4c2b9157bd2851f968a279653b3c9a522df5e2752f75a3819d4610ceb4da666d19b347f09dde571ccf14b435569b9624d3f3207ba49b05f40bd818c7ffa733103f9210cb821ae8ce1fd5bb80a6d3d8dba865015b52ad9af765a8190713d13890440ef64474b61a840618759160c4c692b5bfae7cab08f941d633a22b92d8be39a614903ce0f96d05
|
||||
AD: e83596b9ab4cbfae18e4e8bf4ed0cc481ac402f27fc81a0b62b7843ed4387f2e994799e0c9532a1187fa6706d3179cd8e3bbde209f85836a176e43caa2dae384f0331092292872474d24fcdbe72be3067f542e7b099d31a0b09e0f2c31bd16caad1fe1af0f25845084268431b930685f6a16fab6a401a80590895a3422b94d056038935b1182ca3e6f4ededc86813d651efb0fa80e40700a0ceb602f3a67784b60b8d5c8522e42519c83e6f788d8133044061095806506cbd0bf3a7fb94e1d59435d3a5cd9a5a24db98f20035f0feed9b12b6cb4cc3e18c97aa890d61acfa167338b1cf79868f2a14711fcc241290709e800babf3ba7a868a528d44be867cca23f4f80b1f914ebc6abd630b4254c1b8e01241fcd817171e2d9969d2ba7c3f410a9d5b157ae0069b97ba1c973d944f11208777cdab373131ab5ebaa1304e394770c1d277913c54e7cf0
|
||||
CT: 2a59d868291bda6113708e551c89d1d4fd3fbc81017975fc0b99d8dcffd757f19fa4acd4acd47c90100e27eb228ee59ff1910911f8129b8a2cdc59ec38b73cd096271e55fd097329768d102f4398c4f70c52d7b15fcd66a94d0e910a5b6b8bdbb857592ee42871055be1b957013695288e52ad934c6f802677aa89c08654fd932039417bdbe062a5242d5d38b79ac834c7e7fc920bc3981dfb780c9f10f5f761a49a3b95693ee764a97d4de73077838b5ee04ac09e10c72669f7c151446497c9e2c3153938efcc62feeb9b82e605b4bd76ad97b7401ada9bad71718539d47e6edd058c23b5c4f3bdf69d74ee58b7d1c94ef660e4e6b1d43b97cf9e8d191178160bdf0e4fb6db2e9aaa2563322e4413f3b5d57d0f1082d160ae2bb2d3cf6ac17d75f73ca1c80365648a394edcf62f520d2bb648d7c963b1d7deb6eece9583ebd2b2bc2cccc5415c774d9f25c00d221e1f0c2829e288721a9e416df098392f67643d52a9fb0f2f47ca97664aacfa837105e5da4b86774223bbd238a060648f689c59aea623cc688c1aecdffb13d9471fa07352ec02ffaddf080733f07d10ba61eaaa9f8e0d89b6144af9d4a0094bf9fbdfa6b35e9f342a7140ee4c931ffc0126eb8b4cf6e227fc6bfe386e81a32593acafc6d44925f1cf21924720972729e2e9daae0e74f55045d17c25c4c3b8454f912a0f6f6ffd43119ec4f3046d921d20f24662d25d0aa34d95c3a5aeff05ef1a8905ffcdb1b9e55ea22e59a3f5d60106db64b998f0e9683a16c5d82c53b424220690794bdedef384d91bc9a58563fadac76b50e80b64dbf695a38540a9167cf025ee64d28e26fb3dc7e9f33979b33eb887e55d996741d9569642769ddf6332e369674296d510181023a1a3e4ea7327af5838048458ac90a71732fe29e2edc9c477fb6d8827ab4f83ef8626
|
||||
TAG: ddeec4a2536869f8f89ac38951bba13d
|
||||
|
||||
KEY: 0c13e877fa5e8e0572f237b646f783db2f30274ba46c51d72d751c3bd4ef9ea3
|
||||
NONCE: 2b0a22b260ad3ffa73ff1c5c
|
||||
IN: 481d15ea2246b6da59e6271801edcbe277591b188386946abead76ac40d6f2f08a26129895e97ef25b59ac345f8d060d4d21819d78402279238541534d8734ca66427ecc2baa6741fd093a5895446979e30ca15eda06addb67bec10cf809081ce8a70af92b03f72536a8a11a1e9e3d257352cc284f41e2fc4a91d1bd1774512e09bdd150d1830be260ea418fd384be30f9da23fafdc2c0b5c632ea7fc7a6ea87d69139e9d104d634530a02c4ddae3a2e6854118369e5304202206c4d8fc963a61bb4f42ba6f937ce8281429db4103ef222c3a015f08fef15eb5b407b56165260dcdad08f1196e3d698ac5b7ddd403c28593329db77fad8ab7aacc450636a4f7f6714bbc6dbe10c421d151a7c135926c5388a56d2b66ffeae0508706ee55899aeceb3525367234e29c25dd5bb8b187ca4dd14f68ad317ee5ab3027b68b5b405880528bd35eda7f9c65eef9b375dacb5173b30a28c99e00eb11181879cbf1fb59bee4e3964b300ce57b597b958c63a056758714d69c241da18b480acab2bddaf692f4a57abf2265a0fb09b3352eceb6b26a667668363a615b5d078a4962c48658e3c92e43ca83dd0f71ada43a48d52b793a48e17b66097d06f9e3804202e3a8e832409d45f8b33762edb9982e79948fcbf7213118121cdfe834931feb8d6d5e3a677e3c35d6bdd1a0a51c9c0141dab8dc0ca83c7606f7a31084b9a9a985da6b93e23b215fe4373e597574357435cf7aae309c11ddef6b0f24437df2149ec8e8861e3546f2a950f900d74a8d736a96ca82b35bdf9548d6eb6c6235ec2d98ff0f196fd389234bb44de0a2718302a3c7110ffbad0451f4dce3eb2a189f63d52683509003cd6e0574b94c3db904f9b3113eb44725a5aae93aaf299d05b8aa942bb635cf5e68107a3277b8a70534e90976275809428e77e5163c18edb02334d739095da33d32502fc5b12c6b14a
|
||||
AD: cd316404d7c70f81cd5a035472154e92e8a8831a22c5b34ff4b40e2648df0e6b411ec8bbdd985da9992e3df5d1ebf2b912a1b250fd08553322b7f894cfde69cc37bc794b7de6b5136afb01f8377e0b293b57a50eca913320a0eb324a6009d41dfee2a416e6b9be33b55a2e85d59a88dac4d587e95e7352f004637bb3a798dda6d3a7164597a73e13819dd2be988c698bc7eafe6d7d32dd416e2cb252e21a7eb26ac4baea46a5ceb7b19db842b20d5998c5bc4b78836d0c6dcbf3ac8e2399b82d097232c553b837774960fade6bec8d0f452ba20bf72916117045596f4b83422b026c6b187c16e560ecb2d5dba5b6b0d7709c7b8e8b4d199d19fa0bbff8319dca9b308a836d0c1eb0c6f2a14c13c820d3b7213104491e6df75a1e61621a5c7be94f388afb47d7c5c211621fbabedda16ea22c837903b1088e6cc8751dece86bd749ea66126c1139d98d489dbdb93e6d8ae906
|
||||
CT: a56a09a3c7cac593f40fd3af345c1c84d29a7905a05087553640f0727283d1fd270773b6af7537bea2eae40f603567132c199e7f74b7eb98f1d7e73a7b6474d1b0b0eec43dbc33ef6e17e07afbb94848fb78d53729f358c2eefaeae4b92724fe0d6fe97075644ad5b12d1ed93f8c07aeabe373b5bca66b52117018955edf01c238a937c4d5e7993fda05799533a5a15889637628e158604a99b2a21b24dfc2af7ec0013390e6e7259b7ac92f232bdd375fa99a4f6c45f54ab231f6d60fc36809efd3d213813be1f3e1b91ff3091469590f6cc439ff359b0706ec0d0667f58c34ba549e9727d9045adffd0481fdd13c4069160eb871afb2d408e4dfcf6b70a7c2e21e4e54f44b2daa3676ee998515dfc4c8518288b46d92ea835d5e9a0c8c391020aa6efb8b30a580601178e486957918ed9f11fbd2021ed7830c3019c935ce19dfbe95c525c8498803eed097d565b94d047112d494518f7af094705f3fb83b22d9064450701ddbd8cfb209a4c68fbc1667099e605b7cf853d5a78b92df4f6194a7644017434f2658a7529941d3cf71865f8e29238709b373e68fe1e800ee858d8286d80acf4f1d8cdc2668f40338f48dcf5774e5da72644bd9513018688509c444f821c0c648802cefc572c6821005db0fdba6f4eed0f122ac57a213750632ad2eee0018f9f240f2bcd1cdc03d4c8a6585d955dcee93cab5d7041148385a77533a41eb9eb55d7be87432e5508e798aa4e4fd4a06e83bfe355cc698bd16f9b5ebfd17145edb7bfb3c57a0faff18df6075d98ce7a53eb4de7563768e3257ac225de47b8a52ad65699f8c7efa64676a268f9dc97c46bb23dbb335e79be532e0419583e0f8753a38d2de790a3160d0fd63ad5840601a78057708655cde8dfb08060cc0f233688227eeb4a0f20d5e9d58bd858ca3e338ab402011ad975503cd5c86ba3f12a05a26f0b0f79c9a
|
||||
TAG: ca40f0179157bae889d49b5697a0e26e
|
||||
|
||||
KEY: 1ab6dffc716e27c3dec83e2bc2dce5192f3fcd3fc5f3b394885164f501afe5fd
|
||||
NONCE: 42bdf685c73f9c31abdf1d28
|
||||
IN: 419a911203ca879905ce7d0edf1c29f3874d02cf2b799163c9204149b96a19f7c0eecd64b6ba2bb686eb1d6f79e420d130fce85edc6bd6b07257427a9107bda792de711025d05962dca533c52a2a379ab8516010107bc7879bdb2447973f6d356cd3905e253023a863a3175f65e1988b3f8b92af2ee9b5717d87705649127dfc9c7388c9ddfff5e0dd7564fa76f9b3272000ab7722becf46c1c2d99a51db96dd32fc5fcadd683fb4f7d57eceaf332910e8d275c5f955f27e899eba77b87784968e889dfffd77367c3a4c2711a87e1aa5dce4025ec7aa3908b96cc5fe05de319ba6de6d57b170561b32d0fe4217b0739393fe730f4f62058fd3f950bc5ef151732e06fb92987302c684557befbfca5d15b72a22dc0a3a16bc128698a6fef64511d7945cb1ec973d66e81e2f6481316640afb0344d605cde7280e9e6107131d1b2fdcdb93c29673d0822b8fd1ae0f22fdd17b6f654a65187b8cd45737c8446b21301be1d5d02ca6af5432cffee125756ae7bbe2993033150f6ef19022bc5bd11c9ff9ac8ca8b17c594151ecb5ddadf8465c73969c432f4c273596d9cf7c53187932d3be41a145fbd6485ceb80b196079d89e3b5528c61946ba503844ce538a1892e62457abf4b6f90efde91d1747fb5bca839149814f757d418b9787822c76ad2ec6e5c84a07b0d7eab9f918b71e075cceab5d6ae5dccf54d4a15db9e415e44963c8ba68101df5894fc1664844c7ec11c300ae11cccb4ecee60431e36a2c4516db234378579638b758f10d80ed372da218123449a66aeafbb41bb8ff6564cbbc9c9f734daa1a9e409fa89decdd619ec8d1fa5918d3ffa0c780c0521eb514b2f23a4e95704f6a22657e7203bd1cc15332340414d02f7265023e0c9906147240d0495739bd33f7dee280e2cf905a706dcc838bc2fcea7e4afd823ae2dd3e2a98ff55f3ccc2b0f789e4d5019b93f213722ffe27aa583f6b9f77cabc4ee5
|
||||
AD: 358324f765547daecb7e2d4b371e1f77debc01b18be41313387181537b360f1090bcd9647ac7694907ca521f84f7865c3c82388c6aa80627ca9e4de08a163391b228be2a642df333374ec7182604bb80770f4a839aad778dceda56764f5888a95e88afbea46cd9eb4f506882cda4407461b1ea2f31a88bc7529fa923ed9387ff03dfaec545dd796243b7578640e0b8025aea75ce1b9ba918ab04572ef65463699d32125f71966242fbab007730e7f490338c60ed9ddefa539cc88d39b254e300b56da3c832065a35d961f74982fc895021fbee01e03e9534e54686376d8f9061cd4d033491b081f15639cb2056047d79f0dd7447c899b2aefc7d6bd03e57a1d7cd996fa282ad7493201920130df3007d13782f197b26ae0cf7d62cbc642d10b4202e1887b43faa4b71694b05d19daab60cf37b6a9b50c7d32b04138efc84414e87f6caca8626c2f764a945a26fca57907486c0db54ba1d898e2bea
|
||||
CT: 2422ea9d13895921401f84f25a5b011eccf2670b1f12985d4e2c4106829a7ec3c7c75f11e348829a8285b34c745d8892bd1efd02c27a6764311962302524f787866520a562ffc9f0a644c242107a7ff868e20ee2f2da9d41e2e85ef00815e6dc2f242a2fe8986d40e37a59f53c88a168d230745a57714c3e313f8be3f4b780c61c0638c3637add213b1cfd5d07255116d9fe58dad2941f8bd7aa7c37ff7a041419e02b8575b46be6dcb23bd5594c713c93f8415e5da427dccb6f3b6d649ebde09f4f627beff5647bcceb10413f0a58f04d3a03d3a59b4d9f578508a21bdb609a7291bd8863e091907f83eba365e5df61991836fbc8df69fb7d6ecc15c85c8dcf99f771b19c995ea85578ff39ad5e1eeca002dcf843f471198d1d4359845944fdcbeedefd158ba9dfc2045910a911905579a35a4d7749361b8197fd69ee1c988cb7c1a6f5a5db2e926b4b2a0cc8c5a6c01fe1d04ece3bd7d2707c00e001aa097e6fea51bf87654f389fa4caebebd513527c186125fdebb3672316b57d12be3619e125d642719ac96ca97dfb7d2380800e48d8fc29b4e50c81e6238ffed2a3e788182cb6ac51023c587a66b3617734d18f6c2e4c959b84f04609eb81eec83ce7f8589683682c683762355f9a8c72d1423d67da7b654c00fadac8fd2dc4ba22017228acb6b287101719726d0b1d97e9ca2fa67235e768732756cf2662a078c5ca753275d1261011127ba47265e7565422a9da627085f40fe22b680286408004ee5db318b0869f8f8ead0e3d1b4a564e250b6ce61304bdaddd2686041c505b91a8e3dfe411e932549ee9956adabba04add4808a2ebbf0ed92394fbb00c1466ab06f964a325a877bccbc47e0d2ab4e24243164ab4166aee41b9222b8b42ce81668ae8d1ee8ca5a0c2698616183cd4c025b6210a33aa7b72dff37ec40f749fdc0e879a5135967f47ac95bb65c411f0306335afe6d7a2247823decb050578
|
||||
TAG: c867f21b1b4c62500ab27499d11eff4a
|
||||
|
||||
KEY: 16e6d8c1f25bae57962529532ce48be6c1cdf0451deb047a1d27faa680f97214
|
||||
NONCE: 8e9a0bc6c897d4fdc82bf439
|
||||
IN: bae425cbebcf21c29c3cdfccd82245ccfae0524e2dc0b7164682891c85c9d6814c80fce1a63d588928b38dcc987d9df32f2a42ae4a1f9e8ac6bcf285bb08d164afef3ebfe6b299332f207409d271460847e9279d2f0b5c4638cdd989f868b4f0dab1f324e9b18c35e3bc5f798962b7d4f3b6bed6fc1c57055c489032a600951f8d06c14f5ce852d29be001592ff5c3678c0bd8251c883b333d5c670e52072fd68fd8d53e1a2f48dfd2880394541f4df82a9b6adf525c527550161e0d7dcd5d0bafaa4abdf1cc7ae189ada0a61890831eca952cd6e505d4df44650ed533591fc72a9cda1fdb1c4be99a31ac10d8f011ebbcbd8d83caf5d8c33a659d032d4e454ef069b2dd414fe19706681f83a479078f01d6330e2f57c2a3720e5caf67e44ffdbe461d967060e29f11d4661f23b27e90d521c1a9f4f03413ffe794cd9e39dc4c81f43d38778fac476585975b72e26dec8658f9cf6e4e028bc87c8d5d1fe47bd3ad3ff84d1442224006550f6006be543f7712c5edceaaeb3360ac7ae2e3618e093a797223283e0b9c36a841308146c122e3df15a43417bec5dc4224a10ab962fb11c53e3331f0a9967c008541bfd7d1beeed4b80c2371d5ab62cd098fcbed6f96f01fe9cb9f9f7b039bb010551e504252d0752afacdec2f2984d4ceaff99dfef99d57b4d4b1fa969a4e70aa0d868993474f7d4bdea01b9178feea95ce30c0f6b78f22c70da57d26677549e9284bb4a6717596c2c3b1a513ee888915b910c93cf1d94aa4013e891e1da11c41254af3c76a1f63d67f74a07f3176744f7e558f03a3525b4a385fc64e6ae48e5d96779d64b5f557ff453fd44cbe46a2ad96fb2f79ee6720e08bc8e463abe2a9f662540b5105e1252917d7ff63011106cb7a47829c86d374aba8536d1bdac2250045e098987f185ac00faa0b81630d94a41ac935088bd5829e46ea17bd0e19001fbd25208fb312b86349a9c60540dc2b5091c3b0902eda0254b9e8a447d4983ce8e1
|
||||
AD: f58832d2e9591c5b15a96f1fdbe23b608ca5ef909a656877d36f16ce276e38744ef11768030b479a4b2bec453dcdce933c78e3d4e7bd7e7a906eb74bf321fa75f307861ddc1be310289dedc87a8e325a3e4c6dceb1bdc6a02d1df4598f343ae8a06729502f5abe458be2325ff985b3cea0a166ab7530a560d1971c57c566197b5e004d9d38d831abec067235c0d2ead91b9319d6ed20e6bced57d71dd2dea6a2ec22efd29b146bd31617c9c08cbd26e9dd53e045d6f29a7dce57c61b3a5f6410dfea52c30baedd587cc15993be3ca8e125f61272150a02138c8c3b46922be9ae2d31ab7f25526b86cc0c73cdc400b5506dcd94bb783a97f39d37db162519549e642f9f087c3f41c8234fe01dc1cc8fb0ab3099fe2b8efc1017049d79b5b6ab9f57ba86d2ef73e2c694c180d2860766a4010d76407b15afe28a3866e48b6b688228d2f1fdbbfdfac9de426186e9f7121d1a98b11caa6193f9445939403cc960f2df0ce5d7
|
||||
CT: c43a2c260b2421b4f4d0016112a6a90d09f5505f982a66355ba55284f15e24734afdf58bffda6878ed052c5c97c01ef9214e19057b87db04ecb9e8a72dcdd04e6c8194283edbdec0b3182f73a009b5b7ee42edaf82d827bbd49b21f9b33b013fa934d710d38d156f35491004a9f29b7fb11fa60be85179d970a95f6a4321c2250d3300186c186adbc9151f94a916531107237c9f51f1ca4a16067111b3357d26c9caee90656bfd4317c2d52e97b87f7adccd296a295b45a173780db1011d3dc010b8b951a14e0057451cde7984a62b3e29dada4cba1cd5bbdb32acdfdd6160fd41ae42c40a3f294057ba27737f815592ee1ca89a57db35ada5077be4ce805555bfe57293552296a15a9be89473af043f193217ca228afc044e6e9a8ad57fbab59ec12c8358361f38eb9c00b33aa97c90f51a5014fa497c102b7f6dc0e0678e99e7ab7b98cd2521ea98ba31ede92cf621e36addf622adc7b0f77d8df828dd511b9e74f0925c8c7df1ce56cc2e5ad79feb27de705d780c2b77c931aba6a032d99f658f73fd9b9872959cac0137e9af2a565ceb6f73b011ab3aa14132422c14692f7bb3255cc96a3d63dd167028d4221fe4a66f0a010f35ee42d97326f3638fd15cad7d9afa2208efc4e2f0203d1254d93bf532961ab24df78a6a33eedb0d250869244c17074a283ea083c211528e91a13e0c585a85cf5887b09734a5aee9a01a0de3ffaefbf3791d1b1e478ac1c369e9e0e4ba825ac6590aa011cfa0ed15f9fdcb0f386fe1a796dc243862a292844b90d32db05ad0eb8f2839fb386085b7aebe12e7477d5eb5ef9b6603004b3c2ecc6e961059b11495d07ab2a164c64cb0d6f3c94555a5c3fe5cc687601c03861eec326b63b614cfef131a89058d0b320f1076023884882aeda8f28daa0a3dc96ff9ee982925db55fef48586f407f576c5e5b9a723f1f10427304c19aa1d39b70a12a9c9f07ae6b76faeb66f4b26cc00febae63ecfc629968268acceb5aadaca
|
||||
TAG: 59e3b0e92ae4aa57a2fc4a19b74e06ce
|
||||
|
||||
KEY: d4a30afa6fe8b9ed0add15bc78ca371cf34d6feaf94bb7f6520b4379e7bfbf83
|
||||
NONCE: 6acfa3e2adfcb7f880c53c1a
|
||||
IN: 8b8fdfbf5272fc29b2be7d69ff0741df1ebba02e0525e29cf45063e5da740f6c33b1deffea0eb2323035a21b18fa010c6c3ca7cc0c8194627d828fd5a9898e2b55266d4377233badeaffa7c703fd710441e250d9a5d94d954911d66caa836e2413b190917c1802c3e587d514184498ff2e6e3df5405829262b36fa8971cf8595bd1cd87801ac4c99357da70e2e55ffc012a30cca44e4f5538ba92f17aed8c8a48f85c501df2f0639ac88a39cc024fdb6d29aac368728865db1a30ddb36d366927f04f00f8dd2229e1fe76db8e7ded1fd886a9342308ba99d80f86704c974da156d96c272b806aec6c0268378652c26bad18ab249e117f8643d234b965d45067f42b857f0888ec68aab64b3ebde8a55ee38464e5f35f8653c7f0ba7598ad26f9772b574d7e060377a4174922b1f8ce6b72a83f3a20d20625132ad7cb1429e26865ecce2a47e29740cef1a3d85bdb3e800d46692d6ef926395aefba588294ff410dd523db596a7c17bf7d439ef8200a13e35000b40e9b0b392c982a4377557abca18c1f3bf774f4bf8ab0b9080dceb2323953aa0e621954d87737bba6f562dbb0de271d6f1b88d7c1a712f613b099d2bbe0784a8304467cb168ffde2625edd9f38be5660020ed3e95b49e0a0ca9dc2bd0de2e40fb275b4813289327de0926df3c73865e7689fbad0a6c79ea615fc84345529cf2ef68b37b7e9fa5d538f4dd848ba66adb4745079acabac63de8d2ce9a2b19cc718162e9fdce49de7fa4b820043ae234d8afd23a45ee3a5db124e0f9252111c367beebfab55b2c784581b63a1caf4ab24bf5af45b986f457ddafbe87791788e7c7536595d965d5fcf21e3b13873b00357dfd7851f9e0f198ff950d69979157089be26b22800c3dfc713a5147b0ca4905793a2817281fb112deac286c41ffeb2bfb3fe1ddc9aaf4fb41fd5faf1df2e6e809f54b09f99bb8b61b555efdf4d8cb559fbe57a905d30184c2de6e154d501bc91f6033eb97295d96c1085b510cd57631e40e9ea3225e175162629b4
|
||||
AD: c44ede0ab5643af425a8f8614e621a581b559f0e7fb63f0c8ca09cc58c244ab2e0f750c6135fc26e433710351802c329edbe97877f912bdad914a051d859c588af925674f1f455a322671793887420bc79a11541589082ef12c975dfd0528294ccb086ecca86ca940ba05f937fb2eb91b4b925713e8ef7d10305bc937aa976c5eefb4142b0c18c1ecc6be979621c437c64e1bcfe6ae86d28a29fc894120da6ddba1e56181b6f54a9e9810a83c3b44b6fba10959139787a491f367658ede40e1289148f66d4677d0281ea3615ab399c7dd9e6e05b8a68fc8724089825fd5f6a38406b3eaf01b8dcb62afe181ed963a0d940f1521f4f501d3349e6aec453edee70f1cc640ba3bedf78ec91acabe75f7de38ab98253dcd18c6a866f4c2b8a94072b1f141c9ee3c43beed8a08d09c2f35f142b8352cf776c57d6684898fdf6653997dbcb2cfcdcc43d63b1d287beb8a17ebc74eb3c3875af2ee0446b2d75052ef95d37315fd55e346c3e8dff45f17c
|
||||
CT: 9d4764aa97244b3506582c24cf82947430e6749bbf3a907a941d398b39950dea9c21aa637a6d5030d9b070ff6c810a0f63cbeb107bfe1d91a2b3a71c2683c2d2716759a74f9c022b88afe5f36182153e5378c12f94174e5014743da44601908df428d105362d6299f2989ffbb67d45b65cb2a35e888d823605d2215f325ee59332a066b8139e01ac2ad5165d858fa809343fedaad3ceff19c50b218da9c1ececd713bdd657b02955afa4a90dc2f426cfee4de4b1e097fad3c5183fdc84725db9263bbc207579175ca3171e7cde14b652fa50c2032d59f2832196750731c2268c6f807625e8bce39faed8f85dfe5fe1cfd5d60434a753159b7196cc69c2eed5f50907299a53092d3f3d41bf7c8e4213d9d543bc235e50ec2f569840abb26490f1b0167ac423ee0a680a70797821fbfe7dee33d9ed120a95c6a75596e04eff2263c1c635da44322d18cf720bc90a113790b9e9d5141dfda46fa2c9eeec5afdd43ca5c0ded8a5abae0d3243ab2f81f3ace681a07a59afe8949061e21f8ad0a9d50e3c8d36a6270dfe9eb08451323f71793a5942ee7484cb1eb033037b209bc8c61b38ea28e9f9c2a4cdb629331a1517606feeaa0eb45c69958df6a5e48204489730fa83aeed0b2fa3e555437fe460980e8813e0521d88100088bdf6192257be14eb151d6f4b5c6b0bc9ca6a0ca2e2944d6d51e3bf4fed6cb7722971768da931c1f1e50872f25ca12e72bc984f48010481924fdaf3c744bd098d2153487617e321e665ec9a1346209695ef6b1e0e79f0c4fce7d33f57087512559a8290d8679555ea7f1554ac6374468f3865a2bfec31f27cbbc6adac1d484ca6da48119d88295cacf38b427f792f25f7d3c341a904dd9d3774e355edc0db3748d65506f2a0bef5d8abd37c31daba869dedbf19e3aff557b0466352db1f5820f3b494304604fb6fe42df9dae1c21429ea37258cc087cf72675a15a8159e33855dce7a09a77ba8ff296ccdfbcfacc7adb6b7b020de0bc302a7fbd1e3b8d51c5b1f520d384aba
|
||||
TAG: c22896658ca6cede859de01b80632d9e
|
||||
|
||||
KEY: b28f523592ba049b5de3963baaf0eac3cd75f0f0543e0dab651061bac4e3ea36
|
||||
NONCE: 79bb9a78d035bd8ea9e8ad70
|
||||
IN: 9f6c13ae2d4638dbebe6b4cc0ff606af9720c708c20dc2d6f0e4ba002a0b41e136d2b10dd6a2f8d9fe8cbe91943339fad0c52a2881b188611955771d3f9a621af08b95dbb77879bf508963fe294c8b8807fb9d8458a56d7fa2a4c5d995113ea8a86da07c28dab43c997e9277f98009d67fcf2ba171016cdb7e6c449f6996d21563b4ab22e933ddfad5c50e9036db19adf88761150b2226e73043a49a8e9934094eb4363d61bfddb791f4c5bca194d451023aeb879092eb2d8c8c3a2a5b8a832db6d73804c0c078c50a1414b684184780278cc90ac42618bb4144d5a415f582a77b247e4e8236bcb0692620757960f5103887683fd54f78095e8b098506c81008a7b443a533a0a71fae3f08bb4c28c7142576f459b1a2ccb5f65425515e691852e0da343291ca414c28c90426f7d5f9d7c78f84ad6eedc600137c4d86fa7db53b1d3fe9b16874b31275a740b5f640fffcb4351e4e32cd6bb7b6fc11f104b2513c0814c370b6a7558d7fc07c355da505a1777a2176abbe5e520c0ee79153c976d71e5c6dd576f4857ba2d63e04d6b69a2d5a3ad1a3cb88733fdbca5b027ae04137f917a650b4a556b5fff90f17bc12a890aaa8d61029f0c6663eba8326c1bfba5d9221876ce3365bfddb714e884bced0f1675b6ffee2b1e22929f23893f3dadf967b006e9cb7a9a0972422c74a0393a29f9c4e06c2586f393786ba078cc52499ca6e911e323915ebca1d1dd203189cda3af76f785538d9f1cf5e5dc5758a490cea8710a9610790f426a0c76e262eeb9facfcd7730b72802084152f71adcc2cd6a2bcdd0fec76ee3228947d2f9b1b6f614a7e609c8f250fd02e19a487365b0db8f2d53cc6843d0d2a2abf3cd2ce33125558046fe9ea2eadca7dcb9d0a20fb3ee274fd92360f8772a53937625b5aaf9f10e9c9452426cb42dce78cdfa2628aeb58c295b01e12b12ece1fc5f66e33cec966b52d6593e1d1e93ba3abbe0c917dda7c2b6b5d45fb4cf6588908208e9b264f7e8ff87cc5090f4ea9b1a5205c852c308783a6c5ba0629cacfdd38b50706097f
|
||||
AD: 3496b4171a3199a485cfb32fae763dd77234dd9e2c6544f057c9885e914325efa4ccc25099f81c95a4e968e5e031747422cbd48ebfed3236f878a2832b7fc6aad4db734868ba2623899e9e0689e618bac700ce17e6d0114a0f5b94d6a0c3373f803ba2337d530fb706b8afbe482eeb9e0f5582b2f502d3c774b2ba98ce5400a20cb7d9a32a351401bffc2214392166208de9fc8a6d329b7dccf10734b5b74ce122f2454fa551b586dea96fcad2c45b1bf562bd5751b757da829d57cfdfd8ecbcc410c00aff69764a4e532545838b38011f92e464d192ba315ef239dcd5041448f165a14d503a865a85dfe81c5d4dfd37fa6c316c09eb403bfdc2a8c1a0618477a5fede92cbb2abb71b425e201c6361b5509288675a4541f44b7fe052acb25d1d87660eecef0beed7851a2966947dbfb8714038621b6f34ca2874751aebe9e8084f6ed854ed5f151f81533614cb1fdc08d2f51e47537f6229e0b64d10b498f773fb67bde258cb74a78843256913cad2727f9dbc3a8bd5
|
||||
CT: 8cf78ff0f64a19abecbf693d8575602631303858623968c8c4522c5351ac552dd3694b0a04fa270eb9652dbe58c07cacc2bfbc927f22bf561bd4cd2d639a00b240f41d6af836ec3f93dc0610f08d59514c49351e25cfbbe1ad05e8cb21e25f144d926b5752f96ed7dd05c816cc95f5c3a008716c8a18ada661ecc497c6e34540b8924ab0560c57e7190ab567762bc5ece63883ab5522c8e84efa3dbbf71179d6f286127f01e8b909b61a16fb2433798613fae1ba08524d734662bca15dc70a550740d1b741c0cb46528d061c786f129cd49a7f5b9c1f742c906fe7592e70a5185b6b1ab669498bac981f846dfd2401be46c0972f8945adaedbc7c54cd40c8dfa781c0faeb6b2c0150bfef21ecab2995da3426be508f21278a668e81b25938dfe2f8e1f85c8e69468e38ba924ffae71c1e1c990656d42c8069d120c75e840a2df0ddcc88a77fac1a4ee56d3bb00cd53daebc0c981571d0e3f467d2940b4b92c359afdfcecaaa4331ac45f0afd902e8c5815266d195e303eb16960fcc21162f025d5258786963250aad37610c6b191e479bd5ed29b8cfba9df43131feff2571fc87209b69d15b6c380a8623428f01944d6d5e56422fbec4f7720b607901f06f4433fb252ecc251660e6f9160fefff8af8b866c2edb11f6419a6bf91c5fd557851d469c256f511b9acc8e71750587e4ec0482bf4ddb0b73ed82cce239a4d9c6b330527cd8d529675c2c556456b10ebceec05e7971580b553b8a5f720f8ed38123f56869753624f4a6cf9036c3566cb4f6ca8e0f36d914758f07e7f447c67c8b40d703270d035d1cd39b22c291333ac1f628d2ce4697f82ff6c043ede6dba39c03e250efbdab3ed5e73c28e194269d8657862829f7b43192f95766f77a7b9b4c154a787d0050cf11099d372c3f97add6c9cf4a467df0922f7d9e1b17e552b453e80aa050d8a3e4fbf9aaa4c01a463b796cadf65b492f301ef03476bcffdf96a4f5bc933d0d4286bd9e2ac9822957ac9a69fe34b3701d913cabe970dbfa5830e083add43682f261c3aa80fa2beff7942c
|
||||
TAG: dc5369a6b0814d58060d033aba87a030
|
||||
|
||||
KEY: 1daac9ed308ed0d77d86aa657a6ea7f9c35e120553d26b2d3fad1bc256f1f71c
|
||||
NONCE: 7550220b0b5f3c6fa8db7316
|
||||
IN: 337934937b996d7a501a3d1fa7f6321369747329fa6bce98f68c769dfb3df84b2b1e14f1a58c3f6b65e03377b7058fda3c26adbc370ec72e58ccc953ff157d4863057e0df89328efb5023c1b79f0e29be2d7cac9f903bb782c4c8720e2ccffe83710871642e2acae2071ba2a0af880f14f41ebdf61a3e5449dec6e61e103385971b8300a31b652053496e9b3a2db7a7bfb03a054fcd912e3e1791f84cf484370e553d67cf99c6b1c9b93bbe6ad4a93c47ba9ef73d9f8506400a49a5609e7eae5e3ee9efc657729d1e615a592a8c9f14ba37f5d91649a8c59ade56769c3bcef0c004c7444c3dd24223ef7bc6a2ba2e5927608692d1fbbd3868d7fee0fd11ee40312ae06d20704e29a97ecd4265556432173d6248e9f273363211b5d505de9861eaf402a001ac18b485c7ad0e442bb5e648e20e0884ffcbbd2dda9b3aece535d964d2cfcd6f99a31a4f24d878575fc3ad7a7c19e76771929c45d0965702625cbdd2e99371147e41e950ef70a7393084682a2ee6ca9b611f3c7b38ca4f5fdf2100c6c8d1e88b842aed09cd16a5d78d4e2d7712e40234292dd1aa27ecbe63c433804b0111a2cc469e4f012d55e95e251139f5d6dbfc6dc8e8fb6bf5ecdd8dc89fcb6b2964755d1de9d8a0dc9d648619e185169ae5ccd61a6c2266c5177d8569ba4a09d4c231d48b8f8017365a411714be669fd31f5d17738739c75ba5abfc19d1eca16558cd69bf33f63f50417c92c29dd44ced6e9d9509057ce53a37cfd956bc33c6128fcaaa441fe3016389cf69bb589d323f18fce0a6cc7e77d9e33868ae21ecf8e491019f175f10013392c8fce3e6de3dbe9bb20ab69c2996967d171ea48b46abd36b9f4015723ec99ab940156e6b13ac06ec0f4a8ef74ee304e3072d9e14e844d2fef1e6fff116fbe9a74a7d90e79958a2f14c364418b7cc0d135e0fb8e68600f2e7aa26f9e15431ac9e5cf380b5fae8d715d1dbce4c0225e5c61e747029f62f4ea5de277bccb75580d6f5e5eff710ac8bed37e98b15677462946b2fb3fc0ffe720ea7c6bb70baa0e998fad6b747d5493506ffe69133608f2819d3fd9c8ef
|
||||
AD: 903de215b72677076dabb98cb1059d7d1b352f95a2d2c2903dff63743ec314e0313e46095197f6aeb2967c5a60f7f043b5167de03ffd320b64291bb7162b495f8379c883f17d642bd8bcad4caec8ac05150a5d449a22185058fd5c3a87a9f39b8a76afa529bb9e22641c8811c78fe3d3aaf2acbb88c47a1ac40dd686b80828fcbef0937e57a6272dc2e3ee18fb99410ac33a96d0800bf07dfea59e707cdc633c938feaa179a8d46940d1182fede7e1b9a3687548a0ca19bf53a641082da37082f257fe2fc83188c46cc58ff44a111ad32b6745dcacc4720dd960d2325443cb70615a4437eea2a409ee70c7fa3967a2fe97915ae852cbecd21d44b8db03d3d631c90e834a83428568e8250f5b8e2422007e8cefc12cfc28fc7f9a73f93afc1c3d2083e4c5cf6204753ef7fc4199c0d877859a90a1d3b16ddec6de134689accdca001fb1dbaca4fd492854446c4897afeeb68181890914744a387c198674d37ad98c4ff3fbb34ed656add39879af2e336e529c362d15399e40d2eedd9fca1f07
|
||||
CT: c6610234579809d78c1caa28765c5b05f33a0c5d99660ef94296ba00937522ff4efd86f760d3398a9029877192dee574ee7b882c5ba28d1c388444137c2ac96c6eb4cace7ffe3916bf196afc67b68e4daf0e191450b04284f930f6ebe924cec498e0cf2925bce9d25bb08e872352bbb9aee31a9ca45e41dedd3e931e3ca1ec79aad5390c7f81e8b9473aeb2fc6553bd0ef87a42dd15ae2edeacc148aad6615f3bda730e50f5ae8e44f3639c94242252c2b4b44441f6974652cf783cebfaa2f69e795609a94db16948bb30ab58377c9509ea682a21c408e3b057becf82dc73f1addbdc9b98d659e26092d4f5bc1ef819f9079e0c66bfb684839c0cf1c2e9503afd1ca7de025d4a3a86ac9578bae2d2f6452c2952b57452157d88794a4a872786794a29acb6e4cb511f8cca95cfbd33aebfdd224ba7ace8c12fee32eae1ce60ae0ab6e39766fed2c385ab3888780601cc18a3361468e057d19f97e94ca3bf814bad74f93b8c18364774435a83de1fa867b684a1f2ba8baba24583f8e3808ea7bf238409110959a90c93ae68d8e3fddd8951019e9d6699e868e8f1d156e57eb1d4e8688ef064f18bb8bda91f961d1dca461220f88646bafb0c0bb3e65be33c445f265c0c4e843eb155b5040ddda3a5d104a6d89dd0523e89bf3cc7125774562b5d7a9a386f8e227e6ad71ea9c0361a4e83d9509478a14e9ed8614ce0c39bc9d1ea361cff583ce5bea53cd84083b45ee18e6d4bf3ffec402657c01d54c6db3533ae6ce428317cc3c0a2b2621ca7f82d83cbbbe6571ea87686e20b0d24eaf8489c573353ea3b879b4e7a1f6d87370ff8437c9767d4f99f244d15ee3eab3a1ded233a26c1abf8f010a89d7da628f350cc93529b130ec1085abb62a857bcd8859f738b511f5dde072e723d8fa88fc21dd6d464358df9f972e55a659c5794e7eceda8b780af6ab65ce18814d5c3b38085be841df3b52b8cda8efb8a33fc52d6952fc3c70c42da59aa4eeb61e11ad4b1ba20568da6ddb31a8f1bde37e8c63c440ee90688186b9f222bd4cb369d9e077d0071dd9d6557f5b901829af6a3cb4825c76f05c
|
||||
TAG: 78ea2271c0bccf96f0d64594820543cc
|
||||
|
||||
KEY: c117304024e03ccb6e4e35d4c2508014742ed3639e8d0d0a73b4e99c0e2825fa
|
||||
NONCE: 3a69b798030cadfb168a1f88
|
||||
IN: dbe56896bfb9a41e901a1bb61b8a95cfbb343266e894f101767efe874d9d45b4540d2d77e701e1d42fb03c32ca4b965d836b3fd34ea3ca2e958aa54f1b71e8c442783924c023c1b9fe0a45c88f4b66453fd335db8102e1de765ccfd7fd415ab7a08fe4e0b3d2a14f1564ffa3157a7da7cc9981029a45edf19bac8dc0f97286038b38fca85f280ff9a98eba85e328be65a657291692413319e0f045c07c657c903e51c0bf72093c615cdfa18368992cbfd4e11bd64054d34405d00bbfbdce63e315e3e99fccde073823c17d9790cced43408ba71e48b06f9bed959818d939f7c84b2d6c3861dd17e424dee0cd7942320c50ce637dd1349173b13b972d0808d24d5ebee528343bb0f0415aa123ba63206de27257b11ab15aa1a3d23d97bcde30cfc2c8f9bf0fc3cfa4a6fd61871744823d7a1f8fa7dfdabbe82e73e491045c9df0f23d9cb83ac7d1118b4653cf4961cdb7256b073571962b1956338d684bcbe4aa05aec761e0a14cdbae6d42897dbbb1c0a646ee4b0e0dd43479849864311c3f743f2a6cf9d0dad34111493f0e55461aa1daba988af83842804de0707b69bb27ad64f66247eca2701b9e697bd6d3ba32fd30c7948a1782f3d308387b3d66a8da9c412d4e17d8d7c8b3344f33a79e0aa40ac27ac3659eba14e951947fc2f2302953bc766ebbfdc41d1f4c26afe5fb41412aa776608d37d8addd0d7f0c82c61961024579d828aad7fc89493de8002620fc3d638cef981d8a843b658ec3ee27b01da0df91c0874edc83587a70f3dd5d6f7028cff83c107a72c4505ec4623b35ddc5fe3f758434a14685e74976693d8c67ec2f6dbb62f199c7eb3ae344c05b43985f6e5639f6f9bc321bcc436044b8f5b89dce923e85384e16e6eed7ea5f3e49abcc010655a3a29cf9fa60791cf7262671ce0fb2044383944d415a8acee77e88697a96d4af5f7794e1cc8960ec31a8727276ebaaa5fc44b1a240be8679d2d0c8d3ed8d950f8bea0daa64693d4e8e5e5be0567c0d878e4f9a830ab4c6153ebfd5b1019c659c8f456a636dfebd24dfcb7b3d50be807a14440f7aeb52c280b3dedfd7ced9
|
||||
AD: a6ecab35e7b603dd8253a5046e139e2cb9cb5d70ec87f9468915e24847576c1b4a529fbc4f2d84706c1be86b81436ecc4bbe4ec15ced347ccc68744a9275ecc9cc71a62b0f77391e2d37c7f36683d902a0f9ee37df8306427de4ddb01618f62629ad8deab26ede6af11b2409810b4963a1b752c7f6c71acb3c6c2f5f5fda91dd54410ac1637e55e547b25cdf5730ed4aeac8c0fc59a365376d84a35440aa2830cf614bb1012bdb644841e22329bb5798bf971b370dede894cc4f9395a54fe7936381b7281e60767bb2f8a17492ea63063882d29ead140e197d2647656ab981caf919583e869b844e61fe19e94518ce7ee5aec100b9acc2cb8de3dfd5cd3a776ff2f23319721b05e194b6acc9db40b280592e50b8b5d7d43a7065898f5af4ad8afa6d8b6559c81a9e8e923f6548b3f59c8ba30620d22865117e8a9856f66df128d82c7e15dd9f3ab3ccae9d2e30061224c7a606f87f9dc5d40c689cda06e5ae21e47563378b50c1ee7c664bd814c329036858bf9d3abfae22deef8b74d2fe6a56
|
||||
CT: a6c4079486af388ff129e360fef12e039e54e4900d091be16df1d3712dea1578f11cb12716431f5c6d26a0719012bb89d1a3515e0821258b65157b8e5a8ab7354ad6efe2530337c8974f3f89f674f5dbfd3e8b34d6d425031e4591b37991b5e76acf5c5c13bd47c28c6a55a81bc2f2297fe42e1500f03ac1d97a348cb9c39da8a95b1a5c4b3bd47c56988c19c1d8c6a10a35322acb4338027d2a32cb32f5ce70d4d967fb30052b86f538f1e756bc10492931b40bdb6a579885b94de17cbe917b454db89536a021c4fb230037a4d808ef71159630f48855b47fa90ead1c54903dd925e88516f0cc0968827acd6e57df044c485ed9872e57308e8c5a8992d5d7bba05f7ce949f83dffde903ad093f8fed3ee11a1c6ab031089d77a965e5a89f877b7c4b23c3118ae50e7e21d75e133ac98fba316019b4c2866257d02e6dc8ae5b476517daf7df313093c176a2ca6bd8312bcc96e4fd78fa94313a6ac1b053e72bb622dabc5fa216ebb3a99c4e760737a29d5f452176efd9720197432cf17e8182bf1af60608359195341fb0246baa0087a7af0a5155f32895a06adf69fd01e6f86fb46377e50dc67d5115dda5b0322eeadc8d7b3bc5d0658eaac577725b2656d4cb7803f28df819df0eabfb4d8a7de150887d168f1ab7e5fe0ecd71cb98e35918c8b739059eafdd254f9bc03064d3e27c4b41ae04c2ccb13042a839f82fe9335df59c6991b7e8f6c821026a0d39accd5ca8007aac60ea324eaba577eceea25b4f31504cd64929576513da857f6c9551347457530fca38b173a6e7fbb7219fe861397e0bb50cacf6368929a5a429f1bcc47f6db2517ec62a40bb8310486612d6362870c3980ebf3223216d9df538649b25a704bbf12374442cb489af02020e6886092b0410f922c7680d5fa89effa7780e31f9222348467acdf049ff39ce3df27006406642c01669b819ab61ad05b096270fa75bbad04e8b09b1c4f75b12761b2e2129559625f46bd1005ce39a4b543f34960f0e7c67cae9074b29ba86867a9b35f0a94d716fc7103266b7d14164473b1d4e19a7cb157fe5e04e83dea1bc886947c
|
||||
TAG: c3bb19a713afccf40080a1923350cf11
|
||||
|
||||
KEY: 6e2aedf8329f42697cd7ae88fbdac408b1b8a6efe377670b244110cce97d0002
|
||||
NONCE: 37e72e6de6176fec75f5baa6
|
||||
IN: d75d0652ef7d1eb495797993afbb364cd663dba38c266d3721f0c522238bab60a95261445092ea645ebc25b6f2fe177297a0aecfc9fdc621fec0290b266c8ceeb3945376c4f9ad961b97b32b176bc1e806eb2d2e410e8ff7af12ef545493b1a61ab84e634ad86ca15fb9773765ec0271c204fd951621fb8ad69601c06c6ff6d151a156295371f7b207ce6d09ef47d106a9466fda667b7e0e2b9b2ef6caabd297dc82ebf2b03146c988790311ad7f4b8e41c1e04c1b9f40d4e3d8eb611f3ab06d12b97b75d3b490a4fe30b1c565243eb77d24c06b539e3d335b651e95ad957450c027698dcaa3ee3ff43de18fa735ecf7f404352c9406bb8358b9d3e47b7dc4f6a813d4f4f37225baee2c3c028b3974f4c0e8b1f0beff79fb0b04ccc5824b6ef8108bd9ead21729a9a9cb3ba8705bf77ec3c974a34b2d838784b243176b2c6e7a2010a785a96ca2ecec4fe57bf7f6dec0c9b72c52b8c53157d4f9fd259344cd556c637f921170135fbbc86d68af452dc575eebffee445f8f755c19c73a26fa433bd4437c1018263e7db4b580a120d1d29775d9d5ced6710ae2abed148d4008bade4539728768b1ed315de117a81fa0978c1ed9079188454c852652e8ccc4904ccf233458b19d0f17ba6525f3096d369fda3dcc84e092ea1236bb57a8bfbfa9ebde780843bcd967708ea20c61b60a11ac24b808029676a30dda9f5f6cd69aa6d7aa3b08cee0e89456bc4561dfbd751f9abd3ecbc161256a26084e5ae1d94dcd3f74ca30b4ff1857ab9e68cecf2f384da7d271c1d8b167250d901a2272551020c30bb9e9f9a8f9adb299956fb060a17522efb26363393885b4aec2c02b0a8c40835fa058166c7c3013908c1513e4bf9c71671798537cf05c994d2090fc768a12dce93a80d0a4cf1614d0101851ea6f87b528047f07d07ed78cd4e54fdcdd26bb4f83d297c402ab5e328c404118f52bcd5b6f36a18bd3186a19fdc522ec9838eb363818a48ff88651a2359447876d139c6b0b7d35e30dc0a3ebd3132e5e2a0c3916ea7e3667fa266a91d5906d1bfc005f166bd14f298856e85022c8274ef5160f87d989271d2eeff544501635f4f071089e074
|
||||
AD: 6027a29d52264520a6ff2f2ede11e8d196c706c8a06d87c5e3679be87b0c36026e38fd53da6bad38f9abefe48b56db84a445f223ee0ceb1fb1b797d2b589dff9b26bbfeaa1b21d662edc6f4e48c8d91025220a9f3e7f1965e0e6f7232e84348190e1b66f918b896e778d58a40c47439b2007b8574cb56a18f72677227f1aa09e36ee41aed2692b28b3244e9f54a7d317b1e5b1e7b7fc59506744a25e5087d273203aaa1dd0b9d627b240e518a866d531a90d4b3c44cc1ed9d9d1350f57e03c3f841017b46a68d6f1f8a6125f4b622a0132e64a85fb47883389dbbe1e3d26eca7ac8676a22b4bc79ad30eacc91b6d06603e916ed87bef76ae3627416af104d2794a7b86b561ef91deb0e3f97e07a37a3ae11073945f75933a5dd66b14aa98e826aa4180bf222a201f5ffd860be8a4b73d3b7353fee03be602e52440c7077fe0afb1dd5f3e823c170a4927c241a09b83e5da81c1fb748452701250896547e34e647470f5af70a23af895d71ba21904e1c6fab41f5af486d448b57eb5a3656089d39ea31ea9fe6c88bc40
|
||||
CT: 10327cff240fa05d2aa15a7b299b925a0ad1740957c4fd23ebe24e8a1f36cff5c19007d4fda60dd9d3231258021cf2d11d9ffd32bb221a620d68f2b0077a64a6d575c3802844500b2e6d08ee659006018b6512651a5b903b6d438eaabbd41d0366529788a33dd43a0144637b4a66371a7e58898c4b6d1205a239928c3c3e00907f50a79e2a99f2f675cfffe191f0c584b0e93d72f2a2aa8a400226852fb97ff0cb6d361342185500e3a0db1c9836bb8981d7b4152a399f84a047e5dcbe7c0dde2a85496d4fafd8990f70f28025519dc56ab2fdc150c215bac333af39a981ce5ec484d3cfb06ceeb68471d730e9a6a82d03a4b29dc8ba5ade90c55f6431109bd8c8be337033ca49c4f75fcc2b93a3103638d8516622625749dc4ab0dca45e02abbb2931895f3720bf0d915a6f2802b9a402a5a9c1f47419df6ac9fbe2356cc6c51924bc7c6d9399a92688fc6d75a41f69e4f91fd375df325a75dfdbea2084ee9dbead62754b4b97cd7fa075f6c016678053a8d6cc4de4dddc2c2689efcab3281f1b7f353b3e8710fe396e874784fa54c034aedf078524ecbb18f5bed06a88887797afb0442670224c3bc3e0b347480b7d84268ecd792641b697cc7ed431ff0db957252ee3ce4ab0dbbd47638c15fd0ea8a25d3f3ea75a81dc9986b240ef3189f323a342857ac59900bb8e3bc429435b4c00cce3aa6c516d0c68456a12929359b0bb9b02b349e63c4dc8bf2ed107d94af97af04c14ed454f3920e1f354378c20b3be5c12adaac6d96eed1df0496172a71b585e3f5e39484578475e6c257868b3d0bb45cf229c0752697ab66106a675311318733b02335ce46b1e035a92557d2ddc9536634cbc516800fddfe358d8848198045d746a5b6e00db3d2d0b22f7e4c4d5cde136f62db48968eb360a6d8b645022066ec54f2f2f05b3b8c9af2097986464ab60ad9f05cb63cd194e501507babb6103b96daee90c70efa78c609f95a20e85b26f2d9bb503274dc40aa0aeadc485a2859b3497f4688df1b2eeae81787375dbe3f9fc6ac8b4bfa339b92495d175ad6bc67856b58c1233ee1b0c2b524668750a48c0704e56da23fcb015be58239cdbe228
|
||||
TAG: d5bc1db867fb362965c9ec4e686d95e4
|
||||
|
||||
KEY: fba584198cf82944ca5c806d3856240c4336fc1b451f44f31a97a978b3de874a
|
||||
NONCE: 859c5637b754a4e7c1ddc3f3
|
||||
IN: 4dd6231ff71f13e6a5b4e182e62331f3ed1d4692e35f6959b17ef4cc7f29859a67b60527aef9d08a333bb51c6e163e016858a4da2103df237e16acb93421859c83ba348faafa3eb31d0addec9c90f61a4382be25a85daf829e5b2751c9b7378cb9e840c92e174b1e9a32f3a5b48bf70b6de1637158a09714b473e1b3e339f9f915d27b310af2fa13c05edf4eb9b114c80ec2677fbde6b5c351b61fc0527c9206357bc1d1de800d8e6dbbd3f97d5b1220006280a42f51b7b4b4c67c56aac1483a5357a7a26528a1ad1ec39e0828117be1c6da36a60a7052f0dbc26846e4bee96a7cb6dd5a3dceb6a11d356e0177be9fca68d0f4b00a8db8afe8441abfd80be2d7d25ac10620dafbd92c0956c2b3ee4da7f3db8d028cd60036f78badd42e0e9767a6c8bf8bc3ed869a9954fb4db389e2f6e44667ec26fec930e6a687e3fbf10686c00539628bf50390fc167b1c31c1bd061e975a60affd238a229a0551214f20bb9e17f097462629d04a9ca6ba98cf3020f1fce170b9ce20440fd25c2cc143018aefa1748f6269b478e1d79f3727831086620e79dd357fea1c84ec4de0bf7d6afa2f702a466807c0d2b8e4c81c402d566a0af16c065941b5f9b689a085ef4980131bb979a0b4300ca32f92d902516c3c9d799220e786d281d64f3a7b5cdc4721b5245444fa9291d4c58f9024387c4c4e4dac5ec5d7542986a2b97619a7db38720f392dc7539fdcc5bde53d2a4809b9223663d8876543a02431eaead9588ef68cc50e707e925f09eb53c7117fb2c8bfd07b578191b3af028d480a6f90fd891e03290d0d180bfa44953ac9388d08dbcdb238790bbe07df067a26acf6621b809a154242496baf4f7a07044c04dc02b5042c5365a71cc5ab9ee82630d97d1ed9b55be1711ac6b1b2a497eb1645c69ad15617a45751807a0e4cad1d0d965988752c65847bff53527bbd087f7d0f1b756563f38bf5905391836ddd47f57d84742c07a8000d4ad3fed2dc91f19e6226e7c3fc260e0ed4b23715cd01bf2c2fa59445d8a695bc759d5328c85db7cc6e2566ed0c5758ba2d12c1d285311208e1d4f66caf32afd1619a46e5296f435ff5bb24dd30d060aa462185b4e05afecb2ad221ce615b6867f5
|
||||
AD: fa46599e0a9f3c03555569f4ed86b73a35db18c622b4089ebf31da474873637e4b97aa71ba883368691ed48f8600098b05cbd218c1d4aee55a0e6ac862518a6602328e5dc9f193b0941797e863d6534de6013555f35ad8c32e9264fdee17e927db412e76f06922b36b4c1f5f0d4b998d9c10dc88f3ac0b8ee01b1a88e0b031562510395b9b5a063ae968fe3f87a3bffa2e55a7aab152c50ea8bd0c61682c0f9c0c186c3dd0287c7c5a8f50c2f0c796ad7afe3fb9b45d90e8d2443291947067f982f070643289a117c404124245273fe17aef4c48c1b9377f54e6ecfb43aafae2fe52eea2f2b8aa4fa5a7412c3380723dc99e63c0455736ceb0fdcf1caf6714937c75de252723a7a1b5c7bc5ab1430a8fc44d78467526be8b722e0a49c54e85b6da58e44ab4db4b7d1bd33e28c1aefa462f17caee6b45a6d5df43478f36ee54b1158399a861124a95cc759fbb5bd4572adcabd5073758e0f40d6e733a87cc9a3653dce1b59936d57beddf6b980bb7cdeabaf58d50eea9ad55dcc7af8369bb9ee8af923d4dba981d25efafc2d2352315e367a9
|
||||
CT: 29e739b7162cd3504c7a70f3efea5d6c2282bbf1fdd75224729aab622d59b2f680c92de483a46d2e8c45460c8f3efca1fb374ae8a04ab84aeee0c083a09ddae6cbdd1803e19b27fc1bbc4ea58ded24f9f630c16c04b605d107a5fbf640ff1225c919dce7b6f73b1a18aaa37e3d0c757e0062c0de6c516302f246f246051e1a0462db91e5ed5e1d178c3b384ff9d1ab3244b861b4c34e21a7ab194cc3d48d11588f53604609af8029a6ffd166c08a8f669da73f465efa2f0f54dc0e09916fe8903d0ceaab4e55494a043160e6962ca21ec86e1c159532691b34d507024a345aff411b46a1a32f7844ae3e1e250bc17c0c3edf4516231bc574d742b0b2411ceaa3c4cba1d910843534e34e3d405be0f51a304c80a858664142d285e84b8e008fa7247fc0583dc7b8de3dc9015f4d8e24505d1eadf4e7c598e628ca6b5c70dc6fa5c1734cefb418d62cb08b7d5fe81543d3d1b438ecac5359a0f1052e2efea3107b2da554ff669360db0062052917abc854ccae73623175f7e5ad37484609bda0b6ee3cc87667fac9d1d3de9fcd104b190c62e544be71e9badc2440e8b451532781dff81b5a7ec4f80d3686bed8f7747714e994adbb4612406499a6bc3925ab62d566660265ccf2d635c875ac6fec640b515b86ec5a7eeecd34b86d1f2eb6ecc5858cdaedc552175c707d12b677cad0a4b12bb4e717163002607eefddf63ba2581a2b1afca4865b97816e61813bc7ea99f8f69fa5bb8e306d5e6db15293ec2f7a9c4d8ba2d4ff6e258270c9ac7bf4887171434d034875b590fe20b959e0955034687679ddf98a5c777dfc06f11137b52121249ceac90f5eeeb6f1ac59ccc26198388eb8b5deb918cacaccf1e48145486c37bb2a11d371e095a250c86efacb85921129c2e19c9dc09c66173f394f568c47fe4ef0cd3a98a138b1750f3aca91f7677604613b6b0ccc92d6ba8a0c3cae6b7b22be761ce2922ab273debcbe3f68b662038e232430b3e7d3e4142617fea44c0683f0b7eb03950060ced6325409293422d058d88f0b81118183a05a13db7af89429731c8a37aa83328019626a6f2d87ee49f9b4cb39021093e4886d373a292fcf711945f9d572d734f422c92d8fa6e01c4dd778
|
||||
TAG: 73f6e44d8a2f3cc357707de856d2ce9f
|
||||
|
||||
KEY: 8e21c6a4065bd95d14ac24cdaca55fa220b37dbf7d201b289178db041df9c303
|
||||
NONCE: 77ed6ab683ea82545de480b5
|
||||
IN: f15d0f948b50dac3b7233676de10bc93f529d5955ac70db7ce9b3f684283275898e74dc028b10623bd0cdaa6ebacc2b0bbb8aaf2e32b4d7d84ced724383443f493ec24948ef43a40bf94c1b97e0036e547eee4c59cc336d4205419d66374ac29cee8b274e1453299611c491f8303d00e0e445337a176f263462d0ea16c297effbc98a0790ace75c3c4965d09a32e38d0ee62c6277131f55abbf9d5c733910eccb8703634720f11429302c772c54ae4e0e2bebde2c251786f67fba677a6d9beba08d3d9436e28ec7d5cf016ba69cf20247ba4443c12ca056d3a11d1065b18a037add77642cb8aedab88117a1bf686b17efb241092ab2a17bc9562247c501479d77d0bb752dc5fbe2a4694d0309e68b885a434bbf2aa87ee6e97aa8fc715d9667977a75b37a42a1f4f27096887498ce460301d9ed2a32146a2000b1878654c85b5ebf2828161e3828e87319b838647f9973b860c6ce9f43cca21933ed4526fbcbe38d0169f60a85f9d84ad662b62bcb1088ffe9350382ba8c2748c79fd76bbf863f9a60b971fb6fa9446a3d034047358cdc99ac30e78d6238b5478982a2b4ce58537a34e5ebc37ea72f321f9e466031515c45461e66cc0550ac1b38ebd92d448d0745fb0be37eabb926f61facdc5bf3ae52caa0f923bd73c43a22b89902c0a4c43e12364d0286f328e125b8f5c9229fd955b5ccfbbc672275051df701e981e3208cdf832af70fb02325844120b5fc82f4f8981ed70989d78c69ab0ff75ab96c1ed69919859822ff20ab698e25f855cab4f01174c4feacd3b94003fdb1479150f0a9ed35de9dabe3b7c24a56685aafc396fddc9e6f1b35955b485c61f2659039b7254173364a57bc80418e2f6b7ae28dc8cc5402098b79c28806d135ad3d5a5d0503f32338334c9f6e63f29c61000ffa87668239ee2e1b0cd654c78d610509c5b83610b1fa85cec31a533fb329cbf0c543bed9ca26b97df5bb12ef4e6d252dbd955a2693d4903878b569bac70c4562712ee16a7da269d6bba8dd57b54246598e50453f47788a2038e206b4e34ccfd275c6f5f1de5687fce97d5707d8b697278a3e7c1f07ccfb11f23b343c5d8c7c08b1122b36f3286decc760474b6a27646f432e740420981b480ecc2e50bcec71691da9ff95d43
|
||||
AD: 51c1637f5348c5fabce63137ba3c82b93e7a187619ce9c2aef21b0e696becb4539fd581481c35255090bcd08de83c0c4d35065208f2d4c0efb7903757d5408d49703dc5e8c94cdb9623741468ec982231849c1423bfa1dfcaf6633afb5997b3353cb42c7e8f99906331322da4c579a43d663ad4f7bf9d9d7bd7c54b65273f08a76181fec9b20fa5b4dab9ef00e0f6660446140d3b07226976843998e94a69e1cfdeec41d7fbf1c1fb576ab99ccedc4f2fbd6d6bcf6227f8a93916c859b37ded15cb9bdd13d399a51784da099dab63a4c0ba22d27aae6177372c05c1e5a833f459caeceb28743db88fd2807f605f7448d9220b79e56a312f06994a0132e43bd47b82e0e858e8d2773a7a518746b094df8a6cc851e6ed7b98ea657188c6936fb4bf0911ccd09a67ae539626b4573e0da5a64a75b0cbc995aa664f4cef75baf574e03cb7b1cd4efb301974fa1270be36a64f55f19890bd21824fd44099c384b45903d5a85fbc785c2bf10542eeccd3ff9004a157396a126516049e26f579e32e51c1e9d8ce32dfefa3e2558f6706d31757161b9c17c8f8365b9ac2570
|
||||
CT: 441def04eda7baf0e6edf24863166860ed05c9c3cd0d0c71a383b4dffdd6b5a59a18936779e63c8ce5a3ebcadef82c75d3f241f62d66125b4b4be0b8ae58e42d45421cc68b42ee062d1f6c12a75a80e854a1e44af9813e9be4ee85ea3a9f34534930cb4c51108160e4df6874b900cd293815a1d5bf2b064fef51d0fdce0e077cc26c4d405231b50a1c26ec03a8e956c9605cbb9b4ae68143342f6fa46a651cb39aa783abd0f6359365815aa8084102d856d860f7f6d9344f3d1e65b0af8c7d50f83afd151139808f651e23897331b58dbef7d301dad4ced88feb5db48b6b2e05e1c8cfb58610ac3c58cffcb411dce628c1975d5718631c1c1230ebdd40e6fbb6c2442937f95bd3d6578189fa72cbc963b922d17399439bad035a64f39e78c4aa7f0c4793173131d11c7693aca45c04e0f255daf0b1ab45c3e0d90dbe38ac08782f19325039127454e589953859ef87cb2e4edf1522f946b59b8251a1c154acfb50f0a7b0a349537e17e5de09037e385f51ec4f388517bb1ed1cdf891cf4fb39ecfef69eb553929c82941e078e0f4527614a002a8b8093e1c1ffc8882ece4e7f23951df6347d13b0e4ebdfa76b4fbc6baeda7411883fa74c8e0f567065e4bca86570fe31fc3738fce1469c9539a398a182756d26829b42e7d2f4b48fd35aa2738144a8df7e08678768cfa2e6ddf887558215bb44437939dc911af50cfddd936346155a3e543fbbabdf571cfbf34fe781e5db5b85791ddc465966c001b06efa95e5050f0a422d3026d48604f074f900ec66ae3b8f7b9faa7f438d28e6233428d74dcccebea033f2b57e8a9e77abd8f4fc7f35680062027a20a88c3fe2de501dac972f0296222e6f4ba0943a9d562771d757a8fd002fb032a8bd30f05b6aa0926e4a86c6f7555d3f1816c68db915d71ab2ef9492b97f0741be24e07108fa3e02167b72b5976c83faa4450b52de247f7c54ba7d0e65e44575a5a53bfc37e807983fad7ca5bba4331abb1aa30c1444e131b83af8d72e51dd248feca5e025f6ff0852f929c672c18b47d9e057def886f852ae26d137492d24f8a2c903b84d88b92a3f6679d4039aa4e4292374b66edef378a7410ac091ec61561cbabd788f090d418333794dca3f9744b25b9b8c2b065ec71e9297c0b
|
||||
TAG: 4a780eb826dde2371feaef229222cd73
|
||||
|
||||
KEY: 71132f8c05cf95b6b8d9b650328b561a08728a8903631efb21a94e7bee60d132
|
||||
NONCE: 7840ceed28a572c5186f2546
|
||||
IN: 2a64b5a93aa35c427594bb5a77d6fd2d8c40d614f5e0bb495a909f3fa2323c248c94715fa52017a2d51c866e81aacf2efd74f40b7457fdf93af32c1211e675a08eb4330f6e24c35f626da6692bd9a13bb18c42e6b2f5c978c431d25be0f38352cdfb5933e9581834c33b70b590fbbe3122a9076e619142e8c698c78f532ad369447843c58df0cb105f8f35d4ed7909ff94a3a2b0ec99be03c29c33372a1b9d8a6ec7c38ddcf4dde9bdcf8f0d63064a5072195002b953b16d2228e71af3938f5402c24e4f34e344c26624519898e0ed1f20980e36bf568b33e332887610d8da5a941a7a1bd8b8fa8795014ffc9688a53b4b9a60f527ce4a737e99624e600de8cefacc246473c9641a1166d6894d71b9552ef3342cd0a7e3b0b65df836c6d8786f34c851ac4c72dadca8e9753a4e6a14deba129f4e442a13e3c82d405f84e281b95afe2cb066a2f49c126ecf9fa440d6f9860fd450f7cdbf5c2fbcb5aa2023755bba1705de94305e5b304af4ae8bbc937c6f477d421f5d72784f9b3c331a1f850c4201c6459270c6271b8bdf00f23389acc7bf4082e7453c9c283d86e8371cf7b34cc9988005575c8e98ad34184dac039f04f84e5e8ffea351a3e1a51221abcabf06f7aeb97525b07dd8cdc21b71c97132f3f6f41e5e01c97955f4d67793e8f1cc5910a264efa8384696969680de914bd1acc9c7e9a278ccadcf8c6a49877acf2ea3f7e5066285672bca4dca1583e0a60b82b18fa564c5a7b08a2a0dccb9170602c9f7cfef98024267553955cfea077cb646f2b564caf529a5b34b83d8a16f30e2ff3905106e224444287f3ef98a9e12cf2e3e04a7a42ca30e6116834c169f0778cfad274d43d969dc100b9e1a810346d8ab715670fac2e647829bf3b56f2b7e26bbf025e74a3e9af4930e182205fc09e9fdf1a2ea0da9aa5cdc21a41d191b8fc189ee5ba00a744acb351cd869cebac760b315e60756112bd20239203ace94bc29b232ac9cb361e5b7aea891b5827869112cde2b0e2493fc0c88fa72e92532ff7ba77d5ffa865e47893a7452f0a4b44092caf70e02d344447b7dfede0aeffda018f898a8872c6ce3102ebca9e933fcaf22b5c855f620b240c31acdabfb7fbf109d2e9604b465abf43d64b6a010ab928722119625bc046c4489a95628612995957c75510d89
|
||||
AD: 6ad2365603e6682558c185eec6749c983be4ae29a8a66728cb39eb5e95e7f7a459bae5cab7e75c587689a223f2533c28d44134b87f22e964e73c030782c8ac4ecb2a62e3890d0d96116a4a3d3aa340783e10a46d099d601a8ece1938a640c1d12b88ca4ff89f1ecc75f46a736b7a4143b671f3fc531b5cb08c3ee7c02e606097b0191605d9ca3099c6707c590c678c8ed7a3471aea52fefc7f56a736cb6675e004298903b43a357c28ea4f59ae0894a8ee0876f347682403eb4d45881e04258eefa1cae28f5a646e3f91cc08a935cd464f7edc1721f5b4e389f94d141ca4231573886c40b7df4e5779fc52daff710ce9cd40fb4dd32e92250592199696a13e742ce90aa6280275ee8c0eaf40c884bd846697c43fcd7221cba4f98b03a6584f4792e8bc16c2029cee9b4e80c5f1c91eb798345b10def038cef2f1246fd148cfd2e39042228726cb18029b2e38e570611aa75c72e6cdd5110a7ed6f5e5bcf1d1ca5e1b67462b36cebebcf6e21df8168177afcd1a31a9e498bf7da8586717ca491292b0df81bdeea3a1789bfe70b489b1d4e1ce52dff5cb7e71c009d6888b152c644b959036
|
||||
CT: 5493a45a3f9edc2fd6c8bf53d3f11be1262ce77f5845c1d47b306e486e6316abbc78fabfdc7ee8da152ded9f36b7ef3ca0ba8e55fcfd865d449fd6d44c99f16ff0280cc8e596889d737d0fcd4211e1e5ea7974698985ead5b8def15a8779674a6cea0715525269d2cae64ecdd8870b9f1ec78d6377edb9c975565eeda60448eb1c871bef0d951514640cbcac4e663942594f0bcf4da56fc56b961464d1777a177b3355ef3b5618f247035761f2cb7dec1fe2bc2ba3f825ce545e51b610613bea6c125a347aea55f8f4f5cd5400e689cba199105170bfecc8f0edce6a9d521cd1707cfb5d12f8f5a9dd2debc5907d05513a949e102e7f29d5ff7ad22eb57d429eaeddcaa2915333f88193f668067a695085853f7be8c0af38d774b3d6cb4ab415d70df8aa02e7461803f597108b27d4838d58b1476c10b570c4f8fd71ed9baef88c140163d5ba69a3c10df451c12a5c5cf66c2ee546c6da004dd5d671946df34987a19650ed8ce9e7ada14f3213d642a9b28d0e376e5e37907b7cceb86d0403b19fdb48b3b732633d498d847c2fd24e0260ab74dce88818941c6f8d9e73daeb7652c55c729c3eee7137a5b80899b036eef89aa02bb730ec277d26bd6498e7d4a2b8208d035498b8e0ff403b2ccd0ce6e9899e984a062b5bed1508f23d485642843ce34b5a8322efb9af3e5c0797c2f519d7ac054304b59461866413b0db05791fa9f16661fcd3d9d86291a48cd61d4696ee685a9aca33b93eef112e2dc772d6e304f150042fb49fa95edee661617d7ffc5624b346a82847249c06ca6174d8a408ad46d3c3073e7815c5e86ce31a82587695b2b6c89ef52c20a0ee8adb24263df1a52b4b3bb68b6bf775ba0029b36edf2406c2509ff633fb4e7b28e0a4d5260d48c364cf99ba662b65e3ac150fb3039f1d267e152f569d708c100121565d72e0f728823abad3a1969a4ca856e9f0f4cb0315f973471a4464ecb348950f95f8efc5700d5f2f0bfa9e4c951a9f37b576695d93a8ae5f2d59f0842f3ea895fb38f0f34f56dc498fc0a5d8816e8346f90215d68e86e69d656b1283d349200ee4935ce5acab7eb08b2e1af57a603a42ba3ce811d8b8c6d6af9796dccf549276ad7183f16a99c61e0208cccc2c80507ece9c3c44419e01a2e23abe2513ec13187d54fd422efbfe17
|
||||
TAG: 975dfc03c9b1ef9a854d62ed2a0b628a
|
||||
|
||||
KEY: b0667e8a6471d9f4eb559d0fa3854fa6f80288a03ac298a31f69168eceb6fa84
|
||||
NONCE: 3473cea023d2c6afdb625b64
|
||||
IN: 11ff8fdd9cf47bae5c529c6022638e9bf385cac0b72a046efe306c3463df27276fd63c88b771f84cc9a8bd3be7ea05df941502d7a437ef4a3ea22b2e4ab8509904f352b83cc3865c489bddc6340bba4f2b4c382744467a3ce3896bfa9a0a6a4f8d6beba39613df508c29b074f9f68e8723f2c2fe02a5dcf68965227059e2b1dd75bbe2b80f963cf501d5c73663204490fb843a3793c585769ee10b764077b70654dcc7b9b3fbe7f4b146ca8c6b8e164774ac3421fc2969445f77b77cf63ff50f04e2439895121f1b9c4941b7cadf3a92101cd9d4ec6a07d70d2742e6b3b87981e992c549691a82e250c0fab11bdc287ec357f182a6c2244db8b39a0cae9cccfd1fb32de73901ba3e695574477c37b66d170ecf64130df3cd94049bf9b3cb388907f3dd9389c71c344058b30091eee2fe06f6be3eb7ab6b7e269d2f33431a51d30a39ea8b280571565701dc1c048f07f4b5f9e04a8dc4555e28919acfca9caf597a394120794b6a09aedf866271998401397a4e8e11a25a061878f624f78c321bbe8149bb60887735fb3c0d96dd7f022cef066afda0ec9cf4e41a82c4beb6cb29715e6611562d15bc2b910f4edcc981c457c0c20bd2710668b59242f7547d2202864ae65d2cafe5775f3025eda387030e910075e3664006c28969808975b9a72c905c86415833a1d1d86b8297aab682420a036208839f9e811a6a68b5bfcd01c7310e4b05f5f77ba1dc08f18e57a2044b20ce84acba0450b9b8ddb378d0135f779b1286948985ddf57a7954cc1f21252a06270ae34adb052c124787ed72511f4dde5ab0a708df4b307a9cd392160ce24119be4eef4af0025ca4047b07593293fc17889932588fbb67e72382f8ae826eb9f0e4b866f683814adb2407353c851f64475da9f740f71ccd7176d3d970d8618febf5ade20dcf51918e8a08e57cc4c4278565f6c2780c68e43970968ad018f3d04fa375aaaa5cf10f1cf11cf203ab299fc270ac41a19929f831beb3a3221a429059dbd4a00bcf55768a9f89fb35c8c911698edcf59ba3c2398801401e0e0949dbf587509d9bbfcce3a8bf5023bd751811d25de25693a43f14b01011d6030fc0d3017bdf8be8c84a7c088e0c09048b88cf0ec74181eb904b91919947c57933e5e5ed9b46550c951113e8e2a0e06efe5fd5b4d182e33738ffd16f571cb126cadf79dbab4f307e
|
||||
AD: 86eed9d3e2f3edda6b76234b7b80f7dd2815963274fb85d776bce13fbc60f1db9199c3e1158815c15b4d1858dc66053fdd4c128397972cb9ec05c87d16f53ce5bddede8ee959b5af5f8955b9cc11a26e53b9b42855cd11b570ae35d85e1877264c949e27c6ca797f77c0e5afa40d0f2a08881820b88f85bcc59edd24963771e9357f66f874c11a684f7987d876412f3cdbd7b9b3a26008d551732d9964deaef66cf4692507fde97239f15e2caf990f59a62693d0e723a50286e20cd347e6b98774805615100f599f6f85a5370af468b41633b85cdd8bcc7236296c50a530bd238ca0ce520e8a29f8ebbe27760eefa1ec14f91d6b751b30bf67cdc762486550793b4663dc38f378bc36eaaf157ed6846641a7fdd07ea45fb1342fe04d700ccb0bc9acda5eb00fbfb4aa3540fd675364c0f8f119df2de15ec2a816e76248c11b9c3e7769f98ee8d4cba3a525168e187df2f548a940e097805d735109d8ccb6119fc366caa17cb46be148d406a770a24067cc9c8c40bca0b544458b47d0ce451e4a4eb9c23716666a965ff26287823a699739e5a6ea844cbb5dbc111473d88d611b906fdbf51e86c5a90a68f97e33
|
||||
CT: 0353acae65a2b86f88795b91e2feb614ab78a508c57854ce78e70667db42d0e8d1288b7e5b55ae50e95a1e3362b0ac3e592ac497791cabcc70f68bde6cb9830323bdb3d7c47d35684ae9a81dcf551698258d0d132eab80cd8926b71dd784f7d87f18158eee49bbc220e57f77c65258a5191ed15d10cf306c4fd22ca91d92f28bb0c602baee0bfe31de77350ad2637d3ea7f7ec04f4708a64c55bf0674dbbb4e9ec7e5ea2db16e3aae57cb3611d46ecc06d4796a109a14a0f714753e979a4b0090c99622c28b62680d437a9f4133dd20ffbbeff73e3a9b47b7c788abf42eaadd7b7284bce8b6ea4cd3bfdb2320f7f3016ebf3f06fe255555c44f95693db7de6470e27165e5ab0640e674c321591d4fbc941b2560a62a42535274d3a7f635c922416f7d9a5b9d22843fe601b296aba676802eb55ece3dc9315d27f56433821c18e760ed64d47b1ad6590abc0d75e7d078aba97d697358112347e39b15c3d21248cb839b23b6fe4957dec22b1e25efb4d537bb0cc8b23894436990583627acf4def3a293a4b9f03a3e8beae184f9d11b79d632797b45e972cb9812b91beb1d861c27728b5cfdf9e370f363a6d85120aa1c21f39e5d52f24430bcb019d328855d7d77082a9a331b788a3bf9dabb65f70c20b64aa3ad3625dcf5cc3153380ac7e61cba17698c387650c8c73db3e9988c10d093bbf5e0695a75772805fd5b2fb8eb7b0aa91b453ca2413e36b285800873339311b63a67bb541d7002d5db39b016c03522023ee6551195aed5154ffbcf126a3618c0431d707104438f2b8964a3e0602a8e22f509e390ecba15c999b14a677e49ca95251d0b5980bdcc7e95714fe28a99023af2c564defd802e1f24e544a040ea295af20e9bbe89df72169265cf183961e78b21020b863f3012c6e4087634bf720884e001ec183711ee6ce14f653fd483c0c1a2719b9dc9b5c64955ba8ff8d5755b0f1dad0d949800b1cca343276efcf6e7633dee3675c8812790fdacecb8ad1e458002ce0396a9d7a4fe030da5582b8ebfe390498407abfa4d1d6fd109ef6811d00f7cf422580f63b8de9dcf66d760bd2c925c82e521c9edfaaa6539e78be6acfcbc6a3183dd29009ea6b51f84528056061b010dc59789cfeff60c15bef4de847e6c3c4cc1e127d6d1176aff9f7e208a1bb70d85ae3a1a581ef08dd6197149abe068fcc5482
|
||||
TAG: dc652a0e99481d728e090f5b4c9a70b7
|
||||
|
||||
KEY: 4b7b8c13178f9678888cf894bbae601f4d3869d6fe444db9b35aed803549b72f
|
||||
NONCE: a39926a47e0b75a771783631
|
||||
IN: e6ba553a0aaeedb236216bff95050ad4b259ed60c071e1db318c1df201f2eefd8e73d66aae5835fe869503783504d803ad07f2989abec14a443e3e935684336a437c83d0c95ce9759d995e2cc454706d24b810fee5e32f4120aab927911f7bf11a7d0f2150b1ca4ce7f216403f3a7d622887675278a748d2523af6305c9979deac0da24f4397f57f38c8a860413d6ab4581d48e70b4113aa1a963b3a97b4c4a599be2afebab197e5e41d148b65ad2488af0fb9cdc59222a52ebe6a0ada339bd8b8c0195fba21d46c12d57eb7b98ba85fc494863645b0b32d9b8b4391436e887f6b481d849c2c5f6afe5496626c267a3982daba9af1a16400cf81bad5c1398d605308427340118734e476d808338de39e08549482a24729190041a303f61c4928ffd7a3bb2b46c92aab059c8ac1dc4affe52c6e2d3d55ce623716855934e80d3d401bf4532505c21ac85b738797d08d69e424e521b479f407c7822e5e408247251538a6c31bcc7fa0484dd8a40ad34f0fb66666e143193c9cad455012c3345953ef63b13b3b2469322b7094e8140487c76761733025bac8d71c3f406b0cebc28c499bddaa34ee6c03a82a52e48a7302e5e5e5a3f660bd83aedbf1e2a88ca05db202082d8a59d11b14f6accb8d8d24709709210cea12a34265c3ce7efd84dc8ca309f44016d13ff653f253d33d180cdeeaab7370808e1b8b9138172fd96dac39588ceda91c4208a3707f90f2f336a2cdc1ff3fa7aabf010776833fcfe43c3bf19e9a480495064ad435d3072ce131283d38937301b29d0a063c3bf04ad6664f063462aaa39f1123a010d6f20487a6b12ea1500abfb655a21a4b3eccea51368722f105f94f642765e7765e71199ec5b59c2db6eca6ba9d6150c2e7efb8635493d19953f9485c7e49f24efd2c68d18b1302da88d8bdd26fc7eb6a1abdea09907c02bcd80fd1da76800f18673f88922ddc6eb0740bca0b70f7d1e6ffcaf017421322c2945b155f582cac5d6ae6d4e5411ab895b953a2eadc3224c4dfa1d8f9fa592c123c2d5e1d449c92276dc21711b101bd40865822bb622dd90d6c66becaea70fe9f914032ffa17dbbe16c0681c9359a9b156314618f887486974951cedc90dfe9c04aa845d3f4b4dbb60b2e3271c456487045133c240b9c415124dcbb57671374eb27625e2697021c71f5f51237def9d88fc2181b6bac76eeeaec365ce443fcee15650150e57f92
|
||||
AD: 116bf9c3b52f03b09fe4827b876bfa3c3d7b84afd90972dcabaa971b625fe750cc04188436bc374689249454a4e54a70f2f8adc56af2be48217575460fad76faa4ed3b74f1cb6d3fdf8ca28723057c75ff1e8a74f9da266e9c594fb6c921b9995c926bca308124494c868fa6739f4a6ac663db6312ae34ef43ba21a122deef296cd77452843649ed67a99103e1aa77aa23a3e41ddce3b9fc80e13b1875f31eab3f75f89ded007be22d438d4564fdbced99cd49b372b81b49914595d1ac5d531b0dfc38c6ee18206e44d1c1e25fbc1c027a152ebcd22a6f909178fead243083b4f885ac2af83863c0ad73921098519b56c81e29dbabb7647818aad5a8bd0e09793d6aee040bc9cecccb7e69712e5317ab75a68085ffa0411f82e385377bf1486d5d61dd543ffb20758d3f9bf04a5f97131079ee01a13878ef0c7f466e8f91e9bdea970eccd28d552f8a5f110fec1ff3749e282cd45c1caa6d06e8c426bc28b2a5797407f885b176534ada9720f0d8ff65d40b4f4589bbec0a1620172941e5f0f42d44283358f2cbd0a4abebeb346d01178f46be79a1551e0dfe1dfcaa0c305cf5daef3090c2321dafb6de0481c00df6937590165bb817
|
||||
CT: a8afc66ca05ccec231d39098ce3f8982dd55b80226a821f1a97919ff7389b464d8cfff1c65f784eda92bf2cb963e41ff5997ed60d23a80401a2a73a54ce880fd8c56284eacdafbad1ae72c4be9ccb761dba1a0dfb0983656b9749e05dad17c99fe2786fc21d3159f378db39dc227d2379f3851e94183df5c4cb858223a7cb43b68651cb3689b886a4ef24fe879205d0ccfd81872b6dbb0e7c9c5fdc0313130254f86e80d7cb044649051fe74425fe55e7472d396d8e15380386de6f8ccd303a9899fcaa63641f0e6bdba3ca3361566a2f89dac8ac9410032eadcc2d82123eecc677c7b16c100d54d8a297dbf30c6e9479278e513b500e74beba4b4a04038fdd68c96d5939a4041def41a6fb35510b86328cb2b8f6e80d9acfb555631acf856975464b770ded81661558b150b0896ac28f2946c63c9823c4efdf9595e867490e638ef495ffdd3045e0ffabfa669732f6fb3a4869b290006259bb4e19d49c5e88b02440dcac361b7bf6c60b09b5b597e9abde536b4ed29b1b01f386a5e18260d707d6ed9b67be012d0485fc6830c24bf4b384d2eff6de8b38b88603aaff7cb61b0812b4472a63758883bf5efd35680c85e4443b56e6f3097037ac92857ed2ce434cf5f28213539be251b28d3c8c5ee7c04dc6f4a3bf12ca24ce79a022bef0f4de9789c8dfbd8df1c7faf10f8379113bba9a3cc4f48e7d984f37c5626705c5f04c72e85902db3ee40dcdeed4156f68149b8b54722b93a926dd2bd546d1dbfedd4ea34847166fa4b6b325534d88e66e48aad81758dc45e461fe001a6e400b68d2974852950a0fe218933fb601c95ef818a85130c434e559997d5d534105441d0eaa142dad3e4ee686554c83128a1266c68c6186ae2a7935eb5a7dee455fc41025741a539fd84d5acaa60c9151987031f61cb3951c96b646ad3f9027f63768053e7a7fde524dc7bafbcca2819ecfb802cfa9367cfe54a1f0be9f949a471801b81d7b5d72be9d377c97cf452eaeeb243006f9dd1381c0e77f4215a8f4d62f959b83fa9e8012c121906f0bd2b688444da3e2377855976b5c68c888e0a244ccebc9f22f4051d030bc95e256fa95cf1e7a958a88d6fe5ce111b287c24e0e71e4928f7572b34d2f6bfce3a2c6fc89be7d54a1a7c222d5cb8fc3a108c20a1e1e55e6a2f3018c6bb2baae63c3cfbece1fe0959456c1506987fdb5b83acb5e4cd2112a0b18c8d0c0afe438917
|
||||
TAG: 21d5eb52605d2ac429b971fe32cc050c
|
||||
|
||||
KEY: fa26696ef7a8128ca03a7eb4a199edccfd4bc1d653ea8501d1f9f9dd6c92252e
|
||||
NONCE: 2eebc2343a402e3efdf91f7d
|
||||
IN: 63416068044d204c941276faa61238721f7049662f3721f8d04c908cbb612fbfed2b050efdd69e018be0f463c3e089a063d7b5d9a2ac4eb3bf63599597e714c917c004804a689b2c2ec187b73a38d60d9edb3be9f99d3b452813a3fcad782ccad3bb63c89d4abd18450f61bc94314d9395415503724791a22d1af865d3d5f5296411b6d54bdc0e7ae878447228b2f21cc7ad624a69d56a3694e1a383e7049ab75bdd479ab122d2a50e595fe370041e8a5d9e28dc3b266bcc40b9d54cda53d4049b62feced54620ae0d6cc3c74de3a5bad614f1d8d0c6a74674c9071b8c0b96352c774c034ed7fdc3b8790c43e6b7be8c227fc2b78a381215d97bfa3274e3b52187fbbdf68efee0aa66d2f2da263a0dde580ff19cdeb2c29a6392502f589ca7739e8f8f585791a3f77c1968bed4a713fc5b94e8d3c6830c19291f9cd846ecca2bc05bf262aac54bc45409c2a064c3de28e79831c32f5ec4bcce979b885c9facb99d0c54484154d545ae67d4afaeb545b5aa5541dd0af3416381cbe075cceb49820ad0d52f68c31875169c126b6b1047d63fea674a0420ac808e2ac64adbb8412f8d03a6a5cea014c835b57267cc4ceeb10191df46642344f4f7c9ef9a5fae05c10b2e7ac41afd55e84c213e1d5f58f4c7aae4f0b16170b11b798e138354821fae367a2c17638f1c7d96e343014410c4b4c47a620f79624dd7f3a8de28fccfa365ea904e2aa625a7f3453bdcc990c5bb2d6b0b972bf3349e15497d71349e495c1116f2dfd9adcba45b1a4473566d8eefb1b68054aa7274d4e0ee81f8e61be7adf3c0409176f0b566d8631425835d1f4dba59e7c0d14bbec2ba93c6413fcbc3649b8886cfa6efdd27b8187f1912d17776c7508a54999718de52351352194a81b2b0cd83a5d16348f2e39f22d833985882cd9fd27c1ace4f75a28bc48ac2da52dddfcc4fe428e3f46908d68accd60a17f65e678fa55537afd06fbabddd56ea1574b50d93dc76d56b04e05629e2bc98021ef9107ed8770ae00f1ff294f57edb583b4b361bcc6afe3c545c14adf343f2d019a283e9ecee5505ce2c70206924d63c8b574c798ae0970547c1114f2f82af5a6bd4c1a33c9cb49fb126117d06a63375ff67f7091e6128eebb98cd43a698e3f441e80203262b47c82a65d9d35826794b6f647badcbfff169c53fb70c151dd0c57234dc522d47b4b8470652a86ac09b7dbc44ce8a90a0a2a9fce1b70c1a54cdf59015b89de2331253f6
|
||||
AD: 82257a0db5c6ed9e12ed5a54101524647847ad87fa961ca6276eb05a355fb14a77735c930fa47cc66887bb687b20c7518dbd9af90e13cfe622e9b0036979b9cd9336da11e88a189ac81581e7d85c2fb1fe3aeb32629e23deb168db993fadaa37b1fec1224188d4f50ee3b8f9ab567b8baf1e3a3d8bf807edba9045338ca14d26fcbabbe7d8a5a1ac02d7c407c17a541fb41004f199262ffd72c3d0deea8296a08af1fd7506e7b72f18a7d322e4116021bfd44dfdd4f6dff5b772ee32f49e098445e68b3a2cb58832d20486d5aeee424752b237d46f1cf8194f7a46459767d1a104f6d35a9616eb47208b8894d998a51519d514b689ac3ca19fdb1efabd1dd33cd4298ae4d0ff819e78480ab7867b2f4868db26c9604323edd258c4f6c977fc4d1398e3ba6300c37a9a13838ea9c5eb18ee193c3566ddf3853fffc0ac665cb952bf76cd2d35106b934f5f8da9aa6672e8f9559777ca7a56592fa536e8cb7be5821961e740483563e6ae2de1b98749752314cebc390beebd4d269f0deb0ca3156bfbf6973da50b8e4dc4eb2a03ee0bfe73f21b3b0f2716a4662a71e8cb04ab44f52ac930eef1895b57151175727f81fa074a8e5366d5b7449185e4829f324879
|
||||
CT: 90cc04db6cb6754eb81e088d126829648e5b3ac91b89162b3046635f95d19586eb89646d9412ff3c28321504696d8d8bd7567214345c1e694eeed1ab5e3648300eef27739ba0c286e5f6fe389ac4b05f13e92dcf747aff418c97726e7f0820ea4e93121cc2152d92f2711f64e7a4c66e74c21ad58f80218c292e6d152fe5364fd2b186ddc811f8418d5ee5f7a03ecf98e69dbef146af1fc4d7eda7c261bc1d4d3781ef2ad9a9b316eac55758f97a73c67031886e867d98e1f7c126f19e0aae251d92781ba3ad6c949e677f6f71a0d26e45a8bfbd9c7a8b8fe4d63e687a2a476683f72203f24827a0ebd3162305f4c6e180eb3a7bf5ece592af7831b52479021ab76223e7d0714e0a08d5a621756b84d977ac5a13124e9206caae9c6a2cba1257a81903045414fd6e2403b2d68f07becc2e7a130366c0397a406ba261dd800c647fd087f50702d25177d1cf0097552365cb9a729e27ad9c1e4a61031374d362e309c29f649c7774756c46befc17a7c403a821ed254fe7f16542af8060c5743ce91f6cce0ebc68072c305a1f6d0d97db2541aeb87759804e15308e2955a0e6110c3613495115d1066e3701102531e04c1128ef2dd4434850a6c808cc827c27caf9d2d33ce1646228c26f6d9e7a0d05363694198bddf4f1603dab87e5b01363b3cb4daeb0eecedefe2614bf6d09b01813bb0995615d06efa5172b11d08a46a577fa99aecb30e310e84bc3049205534e836a44fa2de79134e6e7d7fc6e19f841e3f31fd5a8c91c7251b7c14960e2efecb2945dd64926a3d7052574a9f8ffc0f9a6c62025f58275a4ce3a084e73c1094834c65f59e09d4dd16bc75e26810506f0df6e59ac486439ebae613356bc5d8245e15a2c0d8997d80235e7475f6841b6e28cff61d9f5ab11a718b7b60c125118d3f77559aa539c1f15abfb32126ef7a9104c6902b5f872663539f78b002aa11f2224f2b724e346e9fef6b84deec427a05576a51aad885e0fa15e083ff25a1f97b7968dcbbced7b5f3da137e0b48c5bbf783c7125f6a1c7f2e707212bd608bd09d12104ee593838842b127a5b8050a0d411417a5b88ffcbaccd32d1642ff00ba22e42e8827b5be97318bd0a69b06839dce80ef50ca43778a60dcd7193af7ba5da86149f7fc716c22fbcb0b1671b968da755f527dd2ae05ef2b6b8809ce38c9cb8b7095d7b3a9afd16284334da5f0d85b70068646f4ca3c6c39a2ea1d146b84662219827f756b2d1ec641f
|
||||
TAG: 8c7269eae0df5ed6c8f452fd89c09707
|
||||
|
||||
KEY: 20261a84a5458cde6565e41daec0b05d1e46a6a34858d546eea8258a399ed89a
|
||||
NONCE: 5168b8e6c75f25ac1087b315
|
||||
IN: ab57ea5e8e39f743a826b70e584c4bfb2bec961b6769e2b92151cc1a0d8bfc27a9d5d9c7b43c51019418bb19fa882e53fa0f59d6761ff7ca75cf098f613086f9403a8a66b07bd1fde46c5316403de21d4f839a2e67bfecc2f3bc9c8f28b455f0fdb75f28a18852e6e44184e5c104a2dd2e21f429b46004a595ee8e2b008c2e0c31c12a05bb9de15011003d43c342330f5852bd3ebfb7bc4adec6fd7e3d77c1534e0eec7e2fade24d89fe42dd9d8b5bff5ad4f5f8f010ec0903b42048e8ba6f4b9274c6364d0119c718e6d038ed716b21b7f2297317e3869767a2b841505ae4aea6dca5e2b2813868faabd7a299061148f69b0ccaf4a555cb728b562bed9f66fc8d60be4c48c60504afadb1593078c36d54bc878a6a981ef283bab6f4ef6128f78a594b3caa6774a8e6246ca32e84a95ea5774b7c76599e1cf25b68210c2c52f465e3ecbcb91d609f211c12a737936d84551ceb0eaf37f92152f6e93918f4a19bfd09f16518004897d9f0728e9c1bc901fa85f8fcf77bc59c2f96ada344fb9a20890b74520a99e9241d9091742def14a46c524e2c494aa57c1dbafb8feec5d71247a6ac10db9ee768bd2f7cfe1f6da9fca9aab42da2b8e0dbc3e4bd36e2de49d855196d82175ac39516571d209cd5a8579b05fbb0bee133dc3379bf7894511cf88ca955f3ba1f794ed7abb0771d9d319b4f4db940963fdab1e831ae6d5c6daa96c44f3c2ce6fe2772d665a212d3203a593f412a557613d4e465b5eef977a2b62490e28aafdb716e7be6d040f731409c54e4bb38989349d842984116baf0502d21c910ac86e3046e6753b9f8771fec297eba18ed382b17fb1ef0eb20052d36080ae162e9b8dcf67e7e3d2add03d752f612b94ebf4c5b0f242a39acb092e32fd044b8e9ddc6abd0d10985c3b25ca4c9ba476d4fa55766f416d5d1cca614bd1d153432ce59e82a3a86b6fe830e1c0f9e64dbdcbe0457ce90464dbe56d2cf66a7eb6f43760e04a784466dbf7b153b2b96439db92180103df8f4fabb5734bfd661bf8faef2b400102229a9895fbeb1f89e6da6c82b5201055264fed0089eec72892c10fb2ffb4928cfa8df0d2c6680a5299899d521d43972ab8ddd613e074d60fd27a061ff821e8c410cc6a019cc0279f602582b752df3877915fbf14de225bdc2ab1fb177fa1724883b523faabe7e7da1d697f081447c406ee8a2c1a9f23cfcdba8fc0be440f2aae9f6fa5c35c54e7003254734947fb7e1abe7f8040289307d31bd6fe8e862a2d9dd3feb
|
||||
AD: e9073e1a183a740755059b92b0e8d8a66f5904f1470d3b04d98ed4a62b90245767507e54ca11afcd113960568c916381caf4c963c1d8e9aa4c7ea0ea5aff12af63caa8a5e1f128e70f3c1387b50757e43ebd3e7ef2de43809f781cd733193daa2eaa5dfa0c8b161e9e4480d92df163c2619b571f42ebd706d48a6693d4a5071733544d2d4fc771d7fd97941f83c920673f0b8d82dff24402a14ae971000c5c8747b9a10d32d622b2b1c3aac7cf9804be165d3d8c46d2b69bbd059bfcbc1f23dcac4bf5eb5fa92dc93a7f3b2199cee31bf2c0414fa2ffef1ea34ef109cf4e171460aec158118e3bb3a0a8a18ba60e48f890add45f3fd3193a47611baa3abd36f1069ad52ea464c10f5cb49ba753e43f9a0d1d9bb038e8d450c41491cb350be288aa2f95a479ea3868a4ce1f3265e186fb6c4f54e57f285576c6f700d9cf035d296d4519c6e31693f5e0b6437383c77bb2d235c0d5404a82515115cd260cabef6f2f020bfd20d2ee21566def190d0a6a76bfa14874565f99738fb0863054b4f0c3624b68447358da5bc47f195bb468703da3ead51cf02ea001c57608ca98328068212406b9f3821e98b7481860dc5d9533f2afb7f74b9144363e6f54032c983453
|
||||
CT: ac56114a0ed27060f87c7698d659d16b05219d9e013ff22dc90ad469646177feeda9b41531c83ba781c641c740c273a43cac138450eca6c9ff42a2d715de22e0c0e1954842230a0dcc887a42acf1fe75d204ef881af3de7733ebd84a3bed530b34b737a35394097db372f19953b5f9ce288ff8785da5926be93ab67de884d8ace761393c2d3c4d308964a90cc49d9a5a31e55fd20230dd71498d1875476ce257f175135a22e1df34cfec1f31dc788e7c00a483692f1fab826f92ff497253f9e56efc70244346e7fb32180cdb689c6a404c64e391419ccebd9034cab1431be1bb2bd4defe4770d1d9b0cae785592a28ecd3e9dc8993512088186cbea448c8b26ca1c64d623c2535cca60d92a3840a01a9b2b0a7f359d1c597a550b62eb6ffd3d454df319c6c5846c26ccb5ed59e0d3e58aa63615bbcdf4861d85c1635fac7756818a3bd47f5e2bf2b3d14e13ba409379cb62a1b2bb420870879fa522f573eb9b1624d5efbf67f92e50892de2ae454950f97e2b181bae56498585f3b19cd9ea603b6131dfd3995ea29d0bb99f5e6eb6bbb35571d6ac9e52fe02750b97f024b9328ec1dec6aa3a21e391804bf7aba5d3b7bff48760f4fed880259c43ad007208a04a20ca0864c47f9e56b0c969b8a84fb7eabbd58e0d91c44bf8a6ff12225d2c0768c078cb0bf6f0dd67977d801634dd8162500d6440ceee0bfa8750e9411d5a579efb30c34842438105ae2eae6430ae6a98cfba882c974f0f6c870718e4700dd9fe27b98599918896a600b3ee48ec41da20079efff705861c245d31a5d827ad148d0a75cd02b5b7df3484317ff0c2a0a600b22b13bb3b96f2d1c95a5884210e486763cf8d96af48c5bcda8c3ce650d2968981fb003ed3afbd43fbb06502b547f3961e6ec636a12a551a9863b9b89f21dc9485e62a43fc1059d65e1ccab12620ec3a98f2237294567239882c5183c596050b88c38f8be62b364e937ac92ce5f7f8e540af6507f04452ffffb67b51d0e336f57ba71c771c35febbece8e7b0d4eebf2dc0c43df1f42433a3c83a38941d6bbe12e7110f7f266cacbb6fb07d52618e4992a5930e1d416d6e4d1b41a0ddc4ab4a592096bba9437050e2064e0c17d1572c44ea52bd071a8dea305a9d633b0ee963245474fdbb3f274e119e59eb50b63b58fb05ba74242d3ef63cb3e3c98576d2986bcee85d094bd5528d8f43415f627365b08316c11abc433661b83a36129da0550507dd62051a8f5e01c043a04f849899668b3ebd468404811
|
||||
TAG: 1dc7ba2dcd3727f14ebee62ecdf66429
|
||||
|
||||
KEY: 99a0547e21cf8509a0214ff0e5cb956130d03617e50f59e300a0ef211b4150e3
|
||||
NONCE: e040d46d2429ff2b38d4e35a
|
||||
IN: 3c0035f9d3eb509dcce14170381d68de8fb8f0d6463a2cd293ce08c958e186031a942315977a1ec5ff66e47bec07bfdaacf844fd2c4fa939c5a8b1f3fb489f25ca7b10d87a7cb6d5ff299a57a1b8c6c78b429dae9e9b1c1cec8e14cc3bc2119df31d75e9e5e3df7b368cf4a6ec4b324500d428ddfda32e2f330fe089494502251392e554599451e4ffca96fcfa6ccbcb50828840c98266a10de53f0f8bbdbe21dee0861224aac7713d8a93979043d1550895e06e1848565f5f6bcfac2faa3eb21b423215cb39564b8138b00a15be5392ef1ff451da000186d9807c48a98e2ec6b7e045a139902b920c5ce782b111b8bd44596a7ac8f468a6b718cb7679d5d420f28510505a52004c412e6489f586d302939f3e007e320a0de6cf9d4ad38cdc3c852907cf7a1a083117bdf3e1bc4300befa1180f4c019faa73bf31c43bea814990cdd01b17b167f21b5de9541aecf6bead4bdcaca96fa390aaf6850a54a4293ac4460de361b3d58d5eadeecc6b5dfb57a36215d03c85a4805ee8af03df7627d42479357724349343862c960061c33abf5a9a8dbc2d562f3738f2ce34d68340707da09f78ba191e230521c0ff28c3c285075832c00e326c842296e6a4ac56946f4248364f49aea2a19ccab66841c438df5ff7834ccad859bfdd89fa9af0b99214eddb37dbfdefd2a3127354843f6b545f729391e0d19089255c9e0aa9bc0da87d001445c7d80393d1885f759fa8211231a50d1840e7d145899937ea7af1a3b963493fecd40448383706a33337ded7c51b4fc118a1ac975a4071f26a9a30a0976f369ae3a9724b05cbe75fedf84fd1bb6e77e07a76ceca71d5c035e61181c50e2dc976fbc64e1f4f9e6e12856bd3597b475f0b6a94e559477599a51bef1fb3a45106fcf0ca0468117274ee4e3f3f489e3a4ff9f6279e18c38928a00976464431227ade20b45c509675619ccedb4f0b24c2ffefd72b3fdbb3ccfffc26da5945a3906c8824d17a930633f8208d6d1564d5a69c4887812d91ebfd18d482470220a338de30b9cd7945a93460ffaaf686a31621c86b4620bd24776a54db32bed6809270ee19460c34bfe99c7fd18c5d7e9616efb6a156d4b28a0823df5a858a096ec388e2fde49a2c8c071fea73a23dc4dfddf751d100fdc57e346c9e690d2ab620a0dab87e3c1fc02f5f727eec6a1853067e7bec923dfb3c988c3e8f108adf1ddcb9b8804e7f3e9fc8191d059af53c95836314f0c933676044b85dbb950c953603589762c10fd76dfe2b301986468b3f65415badfa5d1f0c0816c6376
|
||||
AD: b96c76c847741396adfed41fc14ff53c3d1745b70ce64f18fc2fe2ca445a7fba83780e265b390c4058856bf8befb36437abcdc25a758e77e0fc90971fab13c77d76751e19280e43851e7d39aaa0aed21bc32f7aaf25756111cd6ddc6b6f9b8d15acb4a25493f247b5bf134b2bcc2e5c2f91c78bad248357f18fb3278811e045a59170c9f0ed7f58707ea78c42e69a912a8321238ee63eb079aadf9030c4f718decddee4077183a2e5bf59a2a1eba07b8c4ec35cf9fa3a37a5c332a14c3711198f2bc9bc686b5dc6d3d7b6de1a8ab00b1fefeb107157f85aa8974c04edf757974a757090f4cadabe2283a29b317a831d8ae999173f07be4b4f665eaaa26093fcdda81fee6e170ed09f2944fd40f9f3ef47b406db52a55cc9350e78364e64220c9741f8e41745bfc1be8c6244c57f15b1912e55c6711ebaecbdae4c08c70768bda7750f142cdda19b298607e75688eaa8fa8f47f7746ab67442da283b1b9b9d12ddff796306cd690c0c32615007ee840844c7da285fdf56f004de5b7965450d48fc97a2cd2b774993a2bb28868fb241b051341a727fc12778baf3869fabd208aa3c55f81c247554d11eb5d847123a6ad3b177dd6ef950ef4371a6c0c294ecaab63beff193aa751ab480e
|
||||
CT: d560de73e9674b561fbb54c6e4267d3101479c2fc269745be89c470109068cb01c6e3a4a7a9ec284606db6e735df2269ea16863673fc35c911fdd6201a1baf9e0b562a847274c2defcc0fb5c165662d0bcbe6b01fe595217d482ddb616ee87138424f5438069abda9dcedd48b29125937e3266cc9d468ca38fec9920ecc81952101c8aff3d3ad2ba4953bdcf26642311ec8c4a880870bc81ac647351a49183e182acd38585cafad3a37a0171c0a0545bb3ee6a67a2da41cdf2397c529064b09dfe0105917e1da7c3df24d2dac6bf06f58efcb38752ffb79e93031cbef73e6c0ad68fb7a192900aa8a23bbb7c6bc15fba8d80058bcf9656323da4c10f19198d9db3b42499621e1d60de8a16046853fa03b783dbd076d0f51fe40e9ce60f4e22aee657246d3ac80913bd495cbcbbaeb778a485bcc6c596af305429afa5f09736e7a78b335f484bbd70a3359a7aa2f4c336f5780f3186fd1753e4673e5234e3f8b803f4199bd859d65267857f8e0391b4e8253fa644a10bf9f68a664bf7573628490b1baa17c23aef5f0414067d2186c08e27eb9d1034aae6361054f2f9bdcb877e72837c70816fabf38e6976c8a5b20ef3a150a5d1ffc997a248ae199d598a01b5bf7da1d6f7a57f982026527e950f33ae33cea9d64e56a3a2d26ed2f2cf0a5d08e6a03db5c483aaa0049514e013b915056c4570c4606e6baefe7c6a74ae301d7b9b6b980d85bb500c8a61c05b38e79db47d2d3b88db098737def0d995267c931a2ef21bfc0d970652a3be8de5f42c20fa43e1f7bbdc34b3b5d2fbe3c396037fa885ec6213748de5a6b64634757aa519573aff1cb78a3191dda039a3c64940b816fd010a584a463cc17789c732d7a099fb423dcc9c20fa1c0f10436bf67f9796c1bab8c85ed76c2cae84ae599f7519991367d69948b757a312cdef01c535f1172ccee7be47fbab14362dc0f3fc89c7a71ec9138b40eec235f585e39b008d1f29a1be9332b2882f6d053acec077ebcb6393ed1dc46d069134d2c37c7f14c0fc9f9e280a6e2598ed8a070edcf9b79a042561dbf3666bc49863c29712d45c41d434172649baca0c2b43e3364cdee11f9da14eaccf8a853998a2a9637b268b6dbbb342575481c37014631180737f970fcb8b8fd5050ebbff873b5bf124b315799c94da41b8b5a4d57210c4edc26ce74738b2fda9c02b3fdac251b2b317d8edd345ce4a3e074255e8c49d8bd02376ee2aa194513963a220529e6c14611288b788b68e74f6dc206ad094e322fa3002d62101dc4d572ef00c1567f0e7a4
|
||||
TAG: 799c10bc86be84658d0b03751a29c71b
|
||||
|
||||
KEY: c6e78bc1358c72bbae8fd8dc84038806efbfbca520a9bf9ea1df8ac365a0a95a
|
||||
NONCE: 9865ab3b3556ad8da691b079
|
||||
IN: 26db63a9d188d3f237aec1f8558702b0942b209f7e6096b79154d2eb844b05dea8c81bd041962e0c9e8d1c64cadc5a46c2d8768f57ffc27a1d5003776acfb5f51d372510d26eca840dddc3fe79e9414bb76aabe249c7f89a43050b85dc6b5b9e13aebaa98aed4cd0816685b20619fd22c860317b1ffec8f7e78c36224bb3922208dc25d23f023139fafb2264f9546bf57767d3117b483807cc5a1e0fc2c691f3891f54897b46c01b6f55f4bcb86af20764bdb9c7631faa5aaccd555e68a86a9491fa87718d5a9112e4ee3c2364b5f339efbae59db73eace1dffe4439a64d1baee99e6aa0fe380cf686aef739a456ad66dcd149ba8ff6767e54b1a3cc645b245c2b2ab3607334af0cbd8847c3931b02acf12209ea79af189fd9c6c01871650a009274762d07a4ca60fb9a31adf4c877c73d0819f4a97c0cad91ea5bd7d5c8ef59b35f2b24060fd8c6b4afee8c4758034aac99519757ffeb6fcbe40b2783f4aedffc9d0da49f3f98dc25a66f2c6695b864bc40c2fd5511c7fe681d98304be4c3e9bd7289c9caaf6282f7c5c7ee4efab267d7d746673049ff79ccd7bd019ba994417e22a67f856310d8abad147ce68fea094e52969f9738ed6cf9cc9eaad35612400b622da255c9758d42f52dfcd12cbb53bab8c9884eb83f1d2dec7faecbb6af3402bf462f965e2c2281c74421411edd762ea8b7b6bc4a44132c51c2db09f47a03ad2a1a17d73ad2a395e6762cb077a8be977f3925ec333dd56ecda27d4d228b1832196da7755e48517fa0582abad802b62cf231e0a2748b61855970912e1fe92435efcbaf5fe34ff2c0f90113966704701337ec6c0434fe2c36e3300a4387cd0514ee01e31628b9879fc666284150489282c1083079f8abde0a2e500737dad91b3a7c4ec1f4eac35dcacf971283825a37b65464e7a8fd66e2ee6721d4a118854f674edf89d376c0006fea01d278b7985237e78965f0987404efcc6576d1fb28db9f7fc1eeaa6b42949e11dbb0c137d501ff08b34f0dabb7edb6900c48e647ea0cdfb4c4ef3178548a592ae28eb119f1dc7b2f6dbabfa2ee4cd7b7b117f1f90af318e121084cd6b93ace98ee7750dabda5ce2b883f582e7c5d91ad42e7ea1fe8454a5da83a169c32d73a4c1c185a02275b4ba921b071ace5fd34a2076b226d71c229d8be6c58270a3ddb04a554e4d395df00604dba7882d89d9048b3e16c692e636c724580da376f8212a6b9c443ec303fa70cbb1994d12a1574bd93b946c1a005df40a3722fe2c2e7fdf51ce2b895c6cf07d893a41a33a6906af87af0abf948bae5ad258e80a0fc0afbcd
|
||||
AD: 770a8a32c90e0949a1151e20e81cbd163b7d1ed843008c813ec3bf44d363e37ec41c094458ab8f7457339a51810fad8d63611ec1a93282c301eadcb4bcfe4d0b370d6f8670516cbeaf9b361c92252d14e062bfe2e63b439c7d4b1d65dc8a62263374d718831fcb4bdcc0bc59a18530f7dffbecc96bffae9e0214ea7f2a319e5c07dc0c8232e7863df7d081a3486a1378240a9966a632c5e73fe4800481c4f430126c4b5ec71963c08d471e01b6296b64a593cf78f108d2ee866af38028e3a4571f5582207706932019646a1476115cad80d0b20695c84131e11cb9689a6bfc40f820e96bdb151adacfe447f06516dabb2f766b8ff5619a15efed41650211e4f4e114ba0b071ae0a6b635bf0e1cdaff2a2a1517e7427f8f1c25ad5d7cbdcb433987a25a2962130299f1de3b68503fed81c3c98dd774402bd83809367ceff45958e7627ee8dabf50f6ff6aae34a8c7ce471c705255099f602c2792468b5e8527b74948f4871ad5296c5c50b8d4ccb6ff8c2f44917baa7b70aed81302624fc405d3c550791ceadd2aef796a0db59c01a5496ad0b72f7a90ebb1eb2fbb2cd8d8f09a2fae46937f27a7a9c3cca3360b08143043d378c450de9676a94ea5b9371cff1fa3b067069393331324c7d283bdd750ca521c
|
||||
CT: e6ae771db203f1e58b0336c9c655013940053c2a40cc7a6a27e707860b179d7895a16f7a754c2cbf2e0fcf610a3ce97be5e7459cff4684b6b2848f2a39e6c4572c1d7a41f23646eed5909228adf1052adb34b9c44e5ca8b2bfc18a80675e29749e72410851eecaf261868b6b69e7d9dacd5f019de1580549fda721e383b86eb0c51c2eac4600a4a27b5f663a7c89c81401fd452027819b93281b559153c74e5354c320cbad932cab5d261308e241e85c0967a189de09eeced69c834b4c64dadb9447a824bb38d8b8a3fa4128bd8392cd34b0999b4ff0511bfb9fd434a1a0bb3c507c2828d98ecaa9f2dd5a020320f6f31324fd8ba8c175db5284628d1cfc4816054587a6cdd5f9e6d6de2cbce9396e874df36bcc347ef48ee9e6ef7e6cbe976e4361651cf8f92866cc3a54701af59ba03fb8d23024d6be73e1938836c31b303c687c28b1785c5f9b97f3b09b7ec3d83d8e38dcd18c3409db665bf74b85abc540f678bae40157eabb69332abb9c47995f4c412a04f9b99214581f1d18e0662e77a2ef6520a23b5a031153d5586f169923dbcf08d403e37184c5f7977320cb33b8a0d5d7bbb25d7a8477054874a14e3d34b92f7877aed42f595dba8830757f8e92f21d5feab414ecc9e3933f082bf46fcebee2ce5246c2fe839fabd94d4f6bdf875cfa67867f9376281b1e5385d1677a595b018617f44c6113f6178e5446cd28facc9a53bad29cb5b3a3b0cd29186c24339ea008ead440041c6bd0e93b92ab37e3692ed13769d147a1be8335feca11a533156a3e416908d044a5a74454f10d3e59e5f9868c56c517ba1d9642c41c6a764e74540611545ca90219ef4a0db0d25e92196d700f4e57a6778d20b6acf7d1db8060ab534ef409fe35c30c300418641368f0a3ed2407027c126e967406809524860cd88906f046a069a22245d9b2065cc5fc313a7ad79bc7035cb681a39387493b6be51c813748c008269f0681e88616ecec8a01416e4ee8b7a6e4fae2af9648ebb89523434eeae6e5713eb8037bf173e467a6da7d6cd3d357e3962aaca14c03b04046a4f893106e199062360217afe40f40214d28e87eaadc175ccc11d172f6cd42e97c1f331e246f7660fe22717d7f1e24752b1b01398e4c8bead71d8f6aa2d230c6392ae21d43bd88258c1219d491b8de12d53bb9fb917eecb0c254a4e9007f789699de1dc90d35250c6ec4631ced06cef9dc0b0416148835be0be3dc4749d4c2edaff37d7607c9a3e872f723583a1566ee1fa7be77b848fbc4d741ccef311fa5ccb7c18f19295e53cd1da935d663f0b26f776db6d479b4cf3d
|
||||
TAG: 4fb43763c09a6af54ef7103ea40de1ba
|
||||
|
||||
KEY: ade6526c970a82fffd925ff945be16639864e4189c3269838d3268264b1aa586
|
||||
NONCE: 97121394f11a1b1d9caf4e3e
|
||||
IN: b2d855d51392454b7f4f2b6f29f422d111cc378262c986e3117e81f6eb6340323427389ba2d174f4edcf5de47be0b3fa820783b8dcd35f18451f8256d6f703bc16e666367c93f8db0be18c98d4e93dd6db2f4eef2447cbde251fa226ef4b6c4183d06cd1090e46cee182743c1573b3fc885e9da0262d715dec1d66954ef49c3a7d54f935156a51cbb1b837229eb5619658db860835fa5c926e0b87c9ac50ac76fa6696e149127aed1b91bb623d232da5df30b9ef43b4ed018f59a803b995748e941adb785535d69b8eb9e4ebad17c4e2bfbe6d2706eaf90e29867133b4a58c3e42cb51b494dcb197dd55862ca0f274883686b1e492b35cc20e2cc6e531c15bea94af9040702513d7d929195ca34266c38ca79f3f5b0c06a1002bf40770fc223be269945e56f11a608276bc4b82cc228248ab46acafe801d330c28039f7614e59cae505931ae9fa387768c2fd9ffd537a0704fb30aef78b1be4aaaa6f7574da1274d3e84dab83297acd00885acfd32300a36d0e8e5ad2777e4c0f718f91564c60ff117e17a8c57d2a8310fb1fc62729720728f2991b4d05317537883f016711e07ae1b3e6d876d52a44bd246c427587fb91d1456711ef0c7970eaa33db3347397cb76b95713919c73188ce13a6a292d798844067c0302b243593177cd099dbacd5f8efb412a95132b8ab31815dfb463451fbff63388d8dc46c29d2c1fd937c668025c833d7d96b021035d530fc404e1c6a3677b8a318c9a81e295c12c88fba75f1e17973732275846ed9103287714236edd60bd9cda0d4cd2695234bc69cd09e1b4db3cc73461e524e0934ab0cbd730a46a67b3614ff4973bb8643ac7d555a8b764bcf87f0bcc8d19cc9ddd3fe27a376b5a6affbc95cc6ba966f8ca697c5727dd3f942c4a3b6215c00bf37c50bc95b1e35dc762d8db2f0f5d30d9b35ddf005d8a89d2b106fa4e921ead057158c3fce0bf1e6e10085619777bbcb643b5fd86b9b39c1f11a68cce6115d2db8c01e6746c81da9dbea30559b1bbc2457c258955f2d37862fc492b4f590fdb8cf648707b17a2b613c5f08dc457a1443bd56399e34254c92b91093ea0208a98189429147771d1bc49296a070e052af3fa195f612fd2487eb49ded95f2c670b3ef23464684f12ae66f02d886ba14a360a852b9b84f9b5590a514701fbe42299b54b9e8c1e7b83c7ace9badd9beeb0f88707b79da375aa7c2eb9623c7a1c553c521a9c7a6a3e73f0d7cae3f95362d25f6ba2313a505a90442012f58f6d9cc55563a1e1026cc1ef0e69c119dcc4577eb775f5d1dd60cd60ff5b35dce6eedee48f80d33227f6354a128f9cff56fe1340067c9eb
|
||||
AD: 20e24e143b9881f8d646947b121df798b4917bc19a76e96babe9554d9617b4f092471baab93ea7ebcd8a05cb2d267be93b4dadb29d4ca937238910180ae497ab4c7c4b234661293c8cf7f2b6ed3e0a738ca8ba0b558fb24ccebdf3b3e9714e6d7b50c847b72ed81e3893bdca85bf46767335b41d68b62961f3304003247ed25b15e3e54d6942d35fa24b7320355d4e8e038ddcc295bbd6ef3b24e9332a710dd7ef673d3cddce10f683d0ba14dea984f61ecd580a684f3bc97cd50e14b86fcb2024367ea4e21a8d01f1aa6993a458bcbf1279fb45ec4510a9295b20e82cad0c79a5f61356509be41525bc938fbfa09306a94610fb9b9c8bae1e051bd6fc6533b8b47bcee4a9b81b492e1295c25ca91b9b5898487e468d64d275f52a6700fed0d7b593234b3e0010480e12fd8f5d7999c1b8b05c7b9dde7bada3cc6926095a8fa8747da64db55ebb3efa167b7663f1cb5883593955a2252586f942c8aa3a1e12ecbcc73e1aa5831c00e5e211c7461120f84d4482033a238b80016d71e51dc297043f67877102f69d7bbdacd03c1896bc24cffb24d4529aa7d8d4d5e5ad3a990a36e1fc84c7f8e91fdf2119a36f5b521125976ac9ede1d1b74e3a31a9428cc36c94e6b3a34ca1ddafda11ab46cb4501dfe4b58cdf384576d651b9aac5
|
||||
CT: 0d8f126c444afe37e40d85b6f0c9f02b2232faf975d238cdb227a17ef28e18afa6d88d7d23b99826de9f6e7390f67c2ab722e1be3e5d9f3a2abe41e508abbd22897ec36a70d02fa54db8004fa3dcdfc729d58ee12ec5b1c85346289f2112c059ecfcfeb6e4723904ef1c5e3bd123d302f6e4cc393cf62513cb3e2df3ea822692edd0d8533d6103f22940cc82116c4ff1e5121f0ceb08ee581f40ac68e23c7e9a168661e6d93259e614a3f962fa2ebcfa3a4736f3490d401afc9e6aaa8a8d00ad6926b3a99c6cd2b3b05767cc5b45901d0c4301a68c0783bf1611e2cb95d6859293b615975be7e1d829f13eb4fe601b4d66af3f28171b02d09f820dc77ffdd22537ee2ef0cc291f785c466ea45a0dab45e782e7ec3d4bf0622680791883f89f9926009f6b6bc3fda4276b79d5d9070914e75488c033d47c58defe6b538c58b106fdcc8957619e008f6b508a87d85d4a46364535e76a890716a215fe5f2ecf50d8fc0d8f68d2ee0345497f94525c588eb3d21d66caf1cebec2685020523998cf6e24b5fbc384c32cad31a2345fd88c8b820276d5917d71e69d54b44ff96c8411f1a7b6267e20d67e35cf274cd9031dc157d5638f5fb8faebab2f5fc976fc928bffd8b60ac8d8932b8ac076a000675cc05aeb4d8306d65c6060a46bc200193d56249e605a7b10fa28f7a04a72055cdfc6ced9a220ac50d3c36ceb4ba5405945307f2d332a9a14487d7a74ed0c379623e2fdb04324e515e1d5ede3af27fc5f06baf8d354f6b68621e372347817cd3acb05df1817511c978537722f9a4967db31d24336704d8d7f974afedb487ffc6e877bb948f0c30fd64be7608723eb732a6be38394891e8cb789cc9ec2e09b8cc2ca76b56ee7e1d5e4c0bf76f28d705c61104b508b1c4c7c1a1cfec10f25676ea55f73c95af3fd34bcde939652fa91f5fb9d8b783dcacca1332230e2104cdbb905511e8479da129ad64acbb569809ae2a19e71bf7fd6acc18e7087bd49997e3d57eb19f30afd1a76c42ebadcc7f8d231c0c28c7a0850ae5463d1730def54c24a803bc1e889c0719e364492cb737378f7390e5ae506d36a7f42bd86a6184cd6cf0300331d0f54cd6f5b53200d59eeb8cbec25830eb74b0e1d931073dbd991c8a818d9d7f2b8691fa2b523bf73d9c7f101cb1d83699b9f5e1b3545f8efbb8eea286728045202ec8f81c71bbbb6e888698c69b92563615ee7d07f66c2495cbeeaf15825fdb3a3dbaff7347f5b52f6f886d80464aeca6e35cef31b6909bac29079ee1403f53a6ec45204694e967bcb318f91f4af5e868be46df4082f4e77c627bb34b017c0f9d9889184f8e88d62613335
|
||||
TAG: 3350bc1b6fa4c20bc1c0a28bc766778f
|
||||
|
||||
KEY: 32fdb97a8841d0bf58207131e0c55361d7f87aa4c8eca24c999b7a74ec23f9fd
|
||||
NONCE: cacdf99a3852e9ca9516be08
|
||||
IN: 987911d111d30398b1d730d6c7d0bbfcac487e9a810a9a17ebf0bde09b3dd7a9a430a3bbfe41b3b3a146fd7960870b1b28db45111c71c6c9ba731de849382d679ac46be434e2e95fef2b04ccaf21afa763bbc15e23ff44aaff7ee793941a8954e42917f759ffb0745c34e9cd324e9c527b6560e52007e46ce0d46aa8165a0e6885e96ff7d6d84d186b313cf7b726213bf9c3fcc3535be589d336f84925fabe762d14ad033dff5b7f39f5948f5f939bc345c4db77d9cea9cce1220ccfac396d1e4201780f8d37c6167600a17c18cccbec04f605d86dcbc3125dc3cf5b40039c3dec4355beeffd72ff221a4de57f0aef322369c1755468b5748541049f3f1d790adbb460d78cbf5e3d2787d5921f598f3d9a92ac289b58c46edbe1c64a6cb2a796aeb17259a2569af4c19bd69da1018352b63b2b3a901bbf0c754ed3b0609227644fffa7a997762aae36ffcd700089d74cf3b9ec2f5c9a3908ace5a7048c90ed8d775a88693742f5738cf2a791e67ec747e31a1387f0c0da3a77b28b720bebeb7a9f6e76d0454f79225514a9d0d8e488a7cced170b4b89b1b39091bb470832e3d3fcd144fe86c661ed6d290c4e73fda61c708004561dc71493c9dd4a66134308577fb7cce84891458e2dc4581603898bcf74cf5da7cb1f3590ff570ec6e559d6f05d44b6e557031ed28b60f3a9e73293d03f57c9c636ff9336cee086358c15ae3d5af075f8d9ecb494b00aff1dbe9703c80bb669b522a00cfb1c400598c6b494b40c87041a99d461017ef4381d3db7df5a017564ca988018c4f36282213de60c841944b6d213d8fe2015cd535184b1619866106c39a09f71a70f78f2cb8fff2f377d87390eb31b73db093000006239a8a3494a563618af189ab3af3556050b68c4abf48cf4d02013f9ed69b52d8c6bfd5188a56f4699b03f60f218539a1638c9890c7a77f5bb18d7c4ffe27314461a29c91526cff0f713a9be95b608a2ff36783474cc9db1454df62fc7efe08ca97418d982d74555c0c15fa671f99fa73559ff54ebd092756e7d9477ffdf2de14e1c9d4900fe401d1fead7fde27cd37d016cdc56464f76193af1c252d4efd60f6f3c0644ccd1ac67d968140ae08db759aa7af205563d4402927cb791f8cd845777043b975ddb1ebc66be4333b7b60293952368767aab30e1a52e1691a35f684c8587bdacc8b374963c1864619ff4a204753b44860f595ecfb275dd0b94153a065f3cc3235a7525921d16684524794cf45a9902364c80ba5649b90c1b42ecf2f17c4e3b7a888c6a2cb30240c6baec3170b309714aae3005846a19c6292e5b7d2772af24f14bd7f6cc7eb89e0489400b4c18b9372aeacd92918e4b2d11165f2de0
|
||||
AD: 62de882f42ee7c4b5ed2fa54f66d0b4dae63db4d9a777b404b1befa704a48a3be7b8511fe716f77c890fea23fdd05a9d4a57eb0f130d7383a023ec6668e6714f84337dce5f8a9f46b9ba17480288fe89752961c6e7cd6d32d435c5930d5228be9aa002f01f0ddc79bde0abd76e4294563d5410c81c56644620a002a7facc871ee7b5fc73ed03ae0cd253439688cac4e6147fff75fad37ddd52971895702dc280273b8e7e99f8d1e93a2712bd9a6515c9b1dffcf7800ec13e08cc732a15ed3c51ab8177b3b1b1dc25e387ee2d0a69d7e2f7f77555bdd75a75400bee511dc5c30aa7eca46b05c9af4e94adee1c0bd84085af86a85a15e81d607ffcd6f7670bc11705b46e43b6beea7e1eba5804e24229185b15fc1fcafaa7de15ab336fa2ba7d94852f20de7543b4acb4e75f523863649578527752050bebaba444fe6b57c0304cc4820f0034f66b778d907264e5b8c8c0357648875dea1506c00413109ff2f25d9f1c3aea724a5b7f39ea1b08b9329c07dd8b0efa2e0e6fbf3f04708b833c2e14b6f5400b4b3d6463bc256e42c8a427f7a0d8b71aee9825169b9613dcbcf7cc364a87ba64e60501bb01d8f55eb5141ed945666f69b536662705d12f3839c45917ab7c932b8609a97ebbdf042fafda951753abc765002ae60eb1c9dcb2f95175ddae0d5b34
|
||||
CT: df417e819076b3a8ae2fa8f0ca968d5be1f31c4c44d02f29f9f1f69c8d2c269835426ea9735aaf95da0cf92b45d512ee8e4b073b40504cfbe9efc62770a0000706f16f7cc350080e52da3501675907b2f657091c1b5980d22bd7dc519203a80c674418500224900d74a11ef87d9f60296ff5074674552263b7b6b249c8adde311b98b4181a3730c101c4ab9bd29c044272751197498e8baff4a8f2558de20d4920ce21f4dbecb64e258d078974dc6c2d574ebc8c8ff32505db2ccd349e82808c44eca7f4ade2ffe9ab1ff2815fd282985a8de28147e547023f0254105d2d35aedc5e2083bad31e05ba905c1b3c53f354aec095add4c5cb40c51adb6a2c290a867ed58b05b14170f8cbaea863ec74a3abb66baf60608721b96c63da4b4d966d1291a3293539ead11167ce4e45f0f62cfef30962d2c979073cd7d0e89899397cc0ecbd858da7de3975fce6ca3bd6759581787c5559bd41dcdc177f6ff4a5cfe5b82236d467f93abf5b2abbd30a90cb25b4ae6723c92621820704542f9d5215258962c67ce9e9e2427c58b5819a709488236f12c1f2a7f5c915a4cf2f8eb3c103a4ab9769f76102a8f8fd73aad7c7b6146768f3a3f53b8e276a8634fc50446d5e0cfaa589a4a7fba9a8095f9567506dd6d2fed0c1e3146dbdb74cd116c13bc5a7ace595a2b42e0e3d46c5232cd92799d6ebfbc06c9d0536db35295cc4f7a7a28bf8ef3c649833d5f330196de4826462dd418f95450cd431454cef7afa6f2f4294ab69bb3e588d3b9300a593ea80890e9d678869e963e75bbf281b61f9f7cb9a3f9a773f2343ea306bea4609b03df78e57d5b9f682e0c0b10b57f360e1b0b9058c12f653b3e1fce60579b7c2ebdbedf0090fac36e72099ccf58d1bd5d7c26701f29f656261e8c2e7d5ae97b224293ac133b2cbee65401f8d256d5106c14da8c837ff48f2479432d5addda274e72ef5810fc3a42ef9b27e75c89bc4d72d6670f855f228609eadf8dda76ade9804c642b140117fce06bc441cf92429d2d3b03bee775c1a52dc409fa4e7a5d3e39f9d9a250a288a29c9de6abfd0303f676a98025a7954fcaf6406d765a260e08ae5948326173f44f2d7cfb5ca9777221f0c984699a9cd1d20c9dedda95b8f066736b372d23116fffd55f7b03d4c7f63a8be3e7806718fa6a961a68db681edbdeb4281c0901c2ecc895f9da0cb04cbb03b5f1323e00c827dafd4d42ff767ffb7531e412d5ce11e0dc469f7bd87549ecab2ed21ee8deb164f67e64bfcd85d858f79c20c8bd4c37d7be76ad6d3c040a3a27c13f70f14b895178ccb02858764e315158ef6cdb827b69dcb24a3f54c2816a75be64496c139d541302b0b71849fdd92e0b83d
|
||||
TAG: d8f838951f98deb27747a870cf55713f
|
||||
|
||||
KEY: 4a78b60c327676e4ca2ac1ab5333899dedfc91f66f4f8ed83130f197a6f35def
|
||||
NONCE: 3e8e2c6598e6c0a8ee6b0da0
|
||||
IN: 1dcf6d8aa5fab8310cae71d02d2ebbbff4fbbada8a7db0725cb2e20723d2a3e5471d05b2319f571ae68ec953f26ddc167b8fe8bd801d6c58730f4dddc6c94bdb1e6d1e0f11b6d59e28f145e75a3b4d7aea2f78eec4677c8be45307910c67ecc10fed65ce585c6addf789ce485033d82e745f91472b7103370b162bc60504dab311ddc428b141c105e9343c2cd7527e43baf01b9bfb4e1b85918bd596696b2353425d03941d9a5aa6d72c57f1c42175b4120269551db41dec9b893d24d76a503f13ac1095ff824b0c3f7836e8b934b112440fb8157d35cf92c196de10fed9046722f83ad58546c9b27b9cb6e853dfffd89ab7724e140c0f1326302cb2224f587e6c7f27111e97ecc0dcc7d89a88e133970a22e4aacb12ce388393bed30d263ed1c080c1d56b0777e7ce2ce19a6b8db174aced748f71fbd52dfd415ef6fecba1e4ca7f207757967b3a6ad1c2e9f7c6a58ddae8555205e5c6bf64b209bee6372f196682db52dfbb37440be658d1398659a3b779843c381c5673c4eb97ce0133597c5667fd183a78e5daf15c56ad726f6d368dcf37ea737af668ca7131d4027b6260c748822e7a387b611ccb6edc4860fc4302493e66651772a39f5c98f46da64a9b1219babdc1cf6ef4c6557ced9b85ff3b918053dac001fbdcceef7485953527e1181670e62886f46371d2714f39851c1fe09297c8c69dff0e62be3383bb6aceea0cbc71cc7783cd1fac364236fecd9fd8aaf59de7680afcf90de01e9adeae58c034c25c8ed25b58e82e4fdcdcc2e69d1054dc753425e98cd50644eb74b1b6d62c769b61bf74d41a319eb35878bc837bac60af425c0a36b150655ac82f8e8fd61121790a3bb9389e121ed0fbb061cd593603a763e0b8ecb357b5c453b20239ad2e44ee0ef0e4cb717db95613c3be18aab77c708f5e91af8006e11b6ddebb8b0ef98c06dc3c97d008e058bf3e534582c24a1485f68214cdd88167814802c89d5c07a7453aff1010d6db0b778d9d8fc64b5bf3bb84cb97cef38a4b30a7deee12f0af806833c8c6d35a7f995b414eb0d9a900e3e56afaf2dd0d162063c4dd52bc6ffa56cfece2ed90bc7c9f4276459c9bd128ee40a5aa514de786ec15d04a16adddd64c7613ec9eed738fd36e24fbcbdcd0d3318fab948f47314a5400d71c5ee07a8c1fa17e4a4c08f4a467291cec1e8266342a42646d138331b08498f2dc3fda0374ef736d05c2a363fe08dc71ec799f0256ac9114743f40641ed8d9a039c57cd409bff29bde518657cb305a875cc6c0a58fe9ea3452df3e3802cf316a0c1f477179f6cdcb39c7c9424c07997500989a600887dd9f04c92226df10e9a8301818a5ec2f0b7b06b6d1443dec46f478a9271498b956b72060dd2b3021b004358b
|
||||
AD: 7eb6a083ff2facc3e9500278352790ccb6f9df67dccf7a03c33a34c6f33c1b4dc4ced2d5f69e5f68e79c582bf0db7751b774019d9399329f1a6692c5c527a646c9bb866e69d4f1ba4e6065cf0c5b09e941c5bb6e96d7edcb19a5cc02411507701b65987dc206ffbfaba4f06cf394976bdde1ac343e368ec1083813417cd0a325aa0e88913958974fcc911478a460b79b9978e33b21064ffdc1fc4df1e314948df71af9a6e0a40907e6b35ec6304bcaada85b456298637b6fa582ef331e2815fef135dcb66870107b2149c5aaa790f7127c0f0819b83bec46c0f6d30edb61b6fdf4f35f4b5345f1c684f41eed8088aa2f1d42c920a06092058e7c225d10fe1e5befb4dc593badee754fa12b843a6e9f67ea0e0616eaca697b22f526fb79a2ec259076971185678aaebc6449ba3bd284230ee621bc02ef1f5ff23651a6116cbb7770ec7385a44f4d54e7cb04aecd59a99660a1021eb6abb5d2cffd76e6e7380c22d0224e499e0c7b69aa0e7dd6deb47b22b1f1fb882dc35eb944a495fc3f6345b08da8f7185c3be95952bd7c982d9c8b2410a1cf1f5164961f6d1db6160d252e631f77b02d4e23dcd655e7e875b9b703fd27c57008184772c73fb5dc626ba43f54cbdc2937de7b4c470235098cb0a3e699baaa8e2adc09f8182ae1f168aa86a790688795003c3598293ca269a944
|
||||
CT: ac837bdf77bb97a1bac4cdde49ef8d6c7024f5f25a7bdcf924fa87b0c77ddd66bdb67c9b8798922f5378c0405be67d5da47f7c245c5f7330accaf74d5bec6a8667c911384d9c77e9d3ca38d88bf87deaca62b58d092bbabe64895b944fa9f6bca0aa17a55031fa19ab0c324948816c57f67adf84077b277e71a7db9a6ac537a95e54d3cd4c9517bcdb7e9e1ccc8e7dc252c27c89b9c20c9876ce7c01b17b80a05c6f75006cdd1e081ade6f9353c66f7113613a5f72d82dd28a65efb74d0d1c92793d652edf23bf7c70f6dcfd5d40b2799b60c2a6fb53beb02571c78001381fc97d4a9292a0eb7a4a0a67cdf20b4810aebe5aa4a6d20fc30e2971924a09f106d0b5b7fcf181321b6f8442f91fb7ff3b5610353500b9d6f8a36301e7cb12d94d1aab6ec0f797fdb57232c02d5fb4b2ffc7d0cd2336ff96a4a811cd1aa02248f4a48c7646591507f9e02f8f441cacee92b5bb3cfcb7a5dbb02993d0fb1818e0ec4cb719a6b43d82e15ce576f95912ebeac7a7aa377a50d1190799b00a6da2fe7cd7231c3fecfd4e6913df0b46887ae8412cd2c9de49ad7a4e8f55e7f53239649b566c4940db50e0ba9a915acbdf0ed97905b0c70930d49c5c31cb398fa4f52222d3cdbd9374ae9d7d979991fa50a2cefeee88b3943578f99b9a46e58900378ef22880c862103ab7e0c2066685571b28c3407cfef5bc0c9b176be8dacf6130bbc44389aac32cd0011aaedcb752e16a1f99838030f7364c17441de87d5ec670a25a2b55a77a57f2304233b3d9d1f4c7b145e7e145eb8607f2d9b6159e954f14b02609830fe54ce1a7dab775b49d77a0ed503773c81e3c53f50e0cb676387dec6e506494ea7843fe533aa7f09dd1d4c960dca585a1590035a9c36cc9f821b4a8aaff6548fddce5250efc4211b0ad0ad4dbc3dc5038218e58851da4848f399f8d7938da211484139000dbf8b6c6314312586311ca1d8639fcdbb20b6a6a608c23027eb46938cd6bb869ea2d3b327728f31012de124a9b57dc96d5d98154b98045943a24e4f788e48bbcf0dc20598fb91627f09495c8fd5bce762b1193fdcf9c45174005d589ba6ad971b5d7ee13e1aab89447a14f9d750621184cdf55ef4ac2f7fedd7b8fe89e0fefb4382ea18cc4feb62e9650e9ba5a12f9366584ec774f5aa09793293b558293991de7fd1793bc44341a5b59cdb45095d5b53a4b847512dd2ea621f9778b4c0f33cb7bdbee1061505f08f1f2919cafc5d6e45206cc35e89e1d366b7abfff3da64f6cfc0d0b855bf5d425a85d93ecb01186697f60a7a47870ee2a6a50cdf134a67a51565d28974dbaa9c62ffc960b70fcdadf79dc489741095ef3052df69c55b99c95a44728d30e267a02922c7a6ef2523ec379239a5148eef6
|
||||
TAG: 09a43ea9d67cec2b3f35d401141af9a8
|
||||
|
||||
KEY: 94f159c5d19a22469924c5fbfd198b8add28b37cf7bc3258fb4b906f2ecd672f
|
||||
NONCE: 4fe1fd1359a4332402251d90
|
||||
IN: b2e081fc4457b3387c1033affd15747b79dad1d6d3b69c076d4dc5c209ba1cdd383a5196fc21fbc49fc65c69b85ec299b1daa26a4bd2e5ec2559cb230b21c3bb62e2831830a2b86da2abaa289d98eb04eaf3cf8d583ffc7291c3201df2c09b7d900a4bce0972e390fc980eb67cfe654ba3b9c579f997e319496b57819b36dd2b4484b88ea3cc1ba777b10ecaf526a08afd9e2b3b32b2bc02932af5d09c2ee3fdcfa18d6261808e418c4bb80be4315a5581d405841341bf2775d8d0adc21c10b9ffdc0ea4b22e22f61b46f844d8caeda0aeb7e1c3f84d337898af24fa68d60e2f19ff815713e1587e0d6e68d64cd088ed432c45637e1767913343d899b2f8c01bdb83253219878a5b3a4e6166e02387124e711a56e49da1893b4f72198c6339943262cdfccba33428009dff70a0c8c79af248d081ca04edb2ad4f35ed1819f0846dfade107c7e9f4094c014087c719517d943e524b86047d24aef8b901a7b1ec4e839400b717e758520cfc7a2dbced0ef491eef6aa2695b2ab9a92296b6e75251f124168c36a6555c4a465cf84a7b36f3277859dd5bb0f10f84cbc944b87e37b6b8ff6958bf1f0546839effd30995853c734a11c062414fe841113d0ae62597cd12ef80dbd4dc4f72e065171c8394e45dc6f87c86154e9846c1eb58f560b8c503848eacf05107c445a6a06420e67e2297a9975d23a406f8b8ee46d958d10d8724d90bb26e2b38be1c0e8258de3a09541826486ad28af8f2fa8c7befc95510589baf81a88f3823e87eaa8e40759cf0853547301de1e87b2eeccd76967bb364278174823c1cb1963f34fab537915031cead844dbb1c614eda56e9952b1eb4cb153d06c59c8da3b10af499b1c15ab0f03559fea13b81bd35fa5eb9a5431e12ab87c3c094861154d3d8eda448af7e15017103ad3dc7e9991b10cbe61cb33d2ff90121f4e40bd5d9e9c34b89679b6e1b54e38f00b128093af3e4ca9830a1a4d7a5e9db067c9c51fa26232945fa3e1e31e28c5000e1965cc7aa11a051305e68be9d60fb92f46eb2b701b3f959819f525ebefd5339bebfb64636d680a2a4f32afce85e287f8936bf62676c37ba810754186e30b812b1196e8661e345fb5b09b8dbe5f96e0010c5e3dd0a4e983149f4a058437cd46e3b32ca04c51ae3a4a39a7e15768a8fc379563450c616a5c7d7d98c46c0b934c894727532a9e713d330d294a2753f0f46049c88eed68711e9c49632144d5cb14d76848a6f7741d36c969edecdde52cbfb57a628678d31befa7ae3198343deae760d5c92c31f3c045b3e932e9051cd201d2dae66ca0368b94445d662acd6442c39eb945c8a4b46129a8cf5bbb2b27927729406f9b081695ce148a10226bc345c648fe557b7f8db4604fd0704831e5bdef6694afe716ddc3a8d69ccad4113
|
||||
AD: ebe1684346b493db264417cde9c0e48db46aed1984f72903e94b72cc2b2f151fec80b32523f96f61485f026d63734ff80015a1cad4b21ed1ba057627b387eaecdfc6d7a195b7d46e485bc137726d96c4ba51e1656c3f234174759ad922f3493077d65c149d1e871855490b6fa5924f6270cf15920838b66e3250a99ff7a55ecc9944cf3fd204081a61ce05bb989e5abeae4b2f24801e7f2223d5ce05c2b61f32344a0370c22751293bb898061ff50d6364ea0275bece795be21c9dc0b2749ff68a6d15896d4692474bd46fb256d1d012e45e7a58d880fba240ac6b89d2087da1ff7d41df44c768fee5bdf51f36b090bbf85e7ecb69f61312463eb0b4b1a04a153f593f8d43f62ac96f76e13ab5928147c5e63788bba4f076d12eb6dd15842e2c40fc9f1ad5dcb80bd95d9d41222953776b3304badd650afc783b7342196ab551a474579d95f826f53d15b96ac98a10c2c6d50a7b9b947cda9fb8d8d7dc7def72c5283a93112d2b58487a25debc9ca06946bb0a52a1e4ed3bcf0fb8decae49fa6607c55501f01b7441671f08c814023f7d46f4bc596d709d305ce320b1b0160bf35c8f17622c65b8e5c97b3fe7327e8e22384f6c400e551dd438d6d3d0f9ba6101abd1bc2486ba249b4cc83c47982c1210328968f2b28e4a7c4880d598d5b47aca2093965622ba7b4e4062c86d81070ecaad93d5e47ec
|
||||
CT: c5311b1a6e3d93da070ee0fc2c1007558db64bfdabdc23c832d151472513482314e7d9385918abe772970c7d8b3ae4eb0d12965e6d7f6d01f6c97d06b51d3be812dfb290592578713ed6342a690ac115c29d471826f37f7f7b46936ab9f431cc0e4029579036bc6311574205810fecd3a17ebccd0f15752152276d5169b48b0a4fa93613fde13997517956f84500edd7eac1082ab6b69bf43f56fb9046cefe8425140db5f6bd3bb201b3345b2138c7f42120a3009ccc19e2d95ddb2b4384205d2aecb47c89cb43fab6c353f781caafae280e93dff5bd213640c41cfcd81b9dfd1be05ce21758c5474c38bd24819e5d085241dd54c8d2cbb5b21a616e47c05d4c64c0f397fc16d52d008fe4e83c040a6304c41a448784fb0c54f8a66fb00b240b9d66e8db234d14534dcdd6b3ba78db0403cf0219406ca858fef6bcb259fb69c53c6f964f450bcd12997955d0190ccbb2d9ae6b3562d85dc7de2bf1bd5a8d49651fe5de73243d7f89ac8796387e0a04c74d5834e47afb6b7444df7d27592fbfdeca72428582703ae52aab48c1b587b12fad6c887e451a54ef81481e3d8b4da1e3fc09404a7c209db8c880c40b3fedc579fdf19f956bfb36d5b2d1affa0a3631681084ae4e41e3a0fed84e056bc72b6c0eb1f5449935f7c2d3de07a2a5fb65af65f91d2c1d730edb80b437cba66fea779449b68c557c5f8bc6a2581b6808a98a1acb9e6de414377f5b08fd5cfeb4806e8699e50236dc8100a88f4f55d887caaa6ae8ca09c23019126b62b5c3186b459c39ee397076c825b6e28ab62d8286743f9d07182cfc634eb4512ec3beb04ba81bc20294b16fb6d42301a74fa95f95510155a15eb953eaa51d82fc363c0c63d1cf401a3ccc0c577474f99f7c4f187316fb85e1db38dac1df4b5e7c710be5b5949dbb1925723d042944eac09dbfd74d7e876f5931f619bfba1ea9580bf4e6c2540fd68d5aa9cd21203ba207f0f62e325c1e054271933563063acb4d932eef201bf3312763dddf6992fbd128cb8fc8b7936acbe8712ad398c5a8719b9efbe0927b9f637f323c4bea80901091608ab76e483b5ef666560937705bff96d430e6e17b0b24c755de19bb88aa81077852c92a96e902d538b4e11b78a4b5d1f5669aacdfe5125d806a21c06ccf4980edee24e41b7e17672fed0ace9b19e4d55415d097f0b5874d60dbe311871abaf47220893c398d5595ee16275eecc6d15f39aa5e2181ad1448345406a4c77a34c3fac77b4c506cf393791d69e113270adf0393cad689a07056e388ea3bbd00ee5878e1120c869531a8b4745ca2debc1e008493d17bb3777992cfcaa165188b4801122af5422acfa0a1807a2a35e793ebdd95aa9e025edc065cf9ae85972a5f42da193cd9b653373a6e15d647b8d26207f3230e50bb49
|
||||
TAG: e2df8917d70683fb6e6ea67db55367b0
|
||||
|
||||
KEY: e22480e24a29b2910b227930344f6a00916bb215e57e1f3155fa9437603fabc6
|
||||
NONCE: a4c6732e0887f40b5017de54
|
||||
IN: e46035c45b6ebf14c5088c5f15f552a4d233de7d3750d7736838a5cd4a7b41df1b71e6c5e6a7dc63519ec43bcb4fc603168352b8b8e261c15e76e73556aaffa32193c1f5641b2eab29497c80eb06543c1b0f1787bc616a4e6618f751dd0a2b28a87fcabf405e97efa91becc8ac1b036a2ca244e13dcbae589f0d6bf8e19bf91caff673f2a80de93a6fd5da1e63516e2760ca12a64c8175071de22b26ce72ff9e15e5c55fb253cae55a3f48c0b507bfd423f66ebdecd0b6227d0e67c4347f2a4819a6825dfc2651e97c1da629e92bed3827a15dec0f0c8743731baef8035fb0a790f49e5b2a7339485df313a9633496fd9e7a9904ec566bf20b8dbc0e3c1e4572411da7835b5eb5cd51313b78a1d6ed96bd9aff2fba37e86d475d95fd7e14c6fe8ab23645b15e7823b7bc9d0a02fbd9a43c05a6c660b6690891c4d055af21b50a5500d72c91695536eb1a3852caceae05803486c64535747df691ebc62e888bce8a5c820569b3d80edb4e29027e737fcdc4f49f6eae43b4bf68a5731fbd09778d6b205bd8b3ab4cf251ff31dd94f2033118ff0c4154c78af27570d12def873fcf4de7ccb6b6cc8924dc63f8104e9a3323ddd32006d8ec3aa530818e299490dfa0a9d811fb3bbb5f624f26dd7d0d7a87a7e7748af5ee4f4bbeb150ea4078b504aadaf92b8f9edfb701c6df7ca615416f61bd770d5fc6675db01394a26f585ffb8f86b254d0e08d0a0f5a499ef1b2bb0216e486229f5deb16d1e95332b8673652a86a6e3fa0e479987b2bdb1909fb772c6836d15cc57d97f29acf335ec1873c1bc6e714b689db855c8ba59289fe792d93774dd83313e3fdf11bfd6a40d6c8b57a5989e844cdf2fb38c239f6116c1c3aafb9356ad4b07ab37f7fb089cd424a8c1f19e5a13f085ec8cd74c3c9f0aefccd6fe5340eb1e419d15285b6b0d3b57a5545f6e28b75bf4795d995a20dc7a618f0f77a174e3eaafe221f8da0cb071473c507054243a7f9eee7d5c77b071602936fd5bc411e9923fc82016cf5345454285e9c1396696e05d984649a2955d7446a1d3966adda11bddbf3dbc11e093c15b7d4fa2a7a0c33fa28dd3242738d7a77775cbeb8176a6e9a4e4e58e03f631a67c3229d57302fe5967c7e3362ff926fd584edc32905a350b390391f7fc3343f22498bd198ad56cc2827926b0c4700cc352bb990876db7c17e2d32b5b0af617554a1f76c32b94cf7728e89bc208f22e986e7d2faef190f820918afa4e08cc46adf0704aab761cbb9791aa12eb31a7785d7716c3f0a46afbe2a44a52e5d0944fbe207ac78d54c407679814cc03d9c9ea28f1e518a10e0cf034d1ffa27b67c9f027d738e0a96a381571bb52afe2e983b34f9159f05d4ac9973d996c4612b7c60407a66925068fd98ba6b7742a219d8bed4ceb720a8541f4cd9eb990384f8f8698515ed3692
|
||||
AD: 8eb26d00d61388ca0f06d45cd697e36f11e25f618eaee0562dbba21d10abfd0bbfe232e6efca4947adfa7fc59de529652d11847d3cca84ad147f8905bfd0743be43cd21a9ece92d2d7397f74b1632ec2b1e398565e3f37039f1e147c061b51d59eb31bd16bf830b7824d1ec5e79441e5c5e5131062171467a037c350fd16f58854e3dfd9c1224d26fd600b006d4bcae123a7a9d4e98c47b9e9e3fdbc22abce09b3c24a5a060e371ee70110227c9a8b6049f194dc4f74cc97d01247d76b460774acf7c5d4a8fb4f01888e29ffc517839c234836cf513951435f226e635ff8b02b18225402b026566e951449023fcf7f6bc2285dac1b7dd83028697dac70927db01c22921f6a7a6304052e58c8e87819bbb75de9cbe6239cb1ae8fd4849eb4f48759aed59d5a0ec3108b3131b0b74a4f860e37d02e04b9501e5e3c306cb25820abc50cdfbb05f8e5e2d2b94c58190c5d950f804786fb2ef97eb013f6f049b38fc57561b9cdfce5ae30516050d13d0ad8c1d750b51a552520785a9dd03c68203d91e72e3bab17cd67989bd103532071676718e889b94ee12856547a6d0a6c88c236d7fc7b0d8f222592d00aad4e813f8c738bc10c0b1fbf23bdb2baa56b1047348ed172a15dffd0bab088e2b406f040ef81d3362d0f86d129fde70ffaf87ef3c4554fa43850d1816407b4d5b0459bc622414a2d9cf2809e60e467fde6ecb7f4d9
|
||||
CT: 98763c2423882eb5a1e9075920b2245f2243341f6dd2dceae7780aa738fab65c7d86f41dd4a64283752db5e86cecaed0ac1afe966171e94f2c30d63a93ff11343ce15ff3bf464d88a6912fbba42c08e6225cfaa63c6da17a6354a34362fda3d993920050dfb99c84a235726aa4cbd66260b0e5675bfe89078e33e76ef537d2071d5801758c6cf07557c0e8bfe0a49aa6e212d69617d1a22ff15a26ae28f4d724d6b537ed34af62672cc9d48836f284cbc7eaae8cd15b46b8e233c94bf3036713f2679e23e0bd829dde5b3a5d7a2d65193f55a45def3d52830cfb1ce3f8208c1425d8171a053ab076c2377f7c26b37970bc3c937db75181a47467b9735be331a0f30a7f3ae135a533153ecd0a5e0cc1568e303a6ba6065c0dca8162a33df7c5b69542938c88e2141e2aa697c48e72ec0573065e9d9a9945cfd070d45218f646e5cf0c0ba145ed1fc7b7cf96c64e3a4671eb6b51ac8eb79bf0b4abd56fffa2ad8a93c001e2baf0b65e257782d7b7e3a837cbae16d40183a8b629467f77f2c7f8640da57904ab75a642e99fe4b45ba7ee488f889b07ce7a4e74540c3e0e0e67f88d473509295a66e27d4ebda1d4d3313add2555477aebf7fb84edbfdba18afc6f04c4af6a90730518a8ce28c12ab90921c413bb822e63cae113e5254039cdcad2dbfecfd97c183679c6c4691c99ba771b1389384259b966f358f871343b4bc5f9a92d8f27588202ae1269658ed91bae33deec6a6a35b9fbc523cc11cbc15024f4dd386b8f41c3fc7097d717099e722e6243a13bc475d5f2b1b2569f14cae6710c8650bfd78520caeceb035f58adae811c0fe9857c8cec59a01123e5eb2774190943c2cc7d535af77ea1f79cdce94e23de21004c73fb8469c230e25fe245c8a5a6314736166a7fe4e1bb0f91ee8d60daa0e576b9b7c6b5957d4bd8d8b928d36aa46fbdf742dd602f9cda2ed1608255d6dc962cc6d3f270d6a42f5185b38e6f0085f39dd17260f0580b62d49cdb668e3e5f76d47dd1deaba0db5b315ed6deb62e6e4388a74ff21903d7bed3c3e87585675a608668bc031aa83e7546cee77bacf9d3f5cbcf00ca71d6f6c86751a5db0d7f7065324d33458b7fe66e2b63bf9d8b514006d14da70f0d64f171a7bc11b2fa5955b85090701260a13cb52b930681e10e9daf89bdffacb9c13b9b60319e3be0ed29f7b7d4723ac5af888375c9e23bc97d3b189ec778eaefb3e4649d1b1ea96979c8f004064abefdfb3479e924dd974ff6478beb1034124b1cf27fc739872bd24bf257df2068475f0b144e61411481a48739e2691e535b64066acce2e0fee9c239c4015014dd38570b01646bbe97a389a3604312f06bcf7ae288790b73434288ba0c90d7015bc1bbcd5a0fe84564cd6a692df04d53716bb96d769074d758bf1199f716cfe5c4c542f9852435fc9675a80b4d
|
||||
TAG: 9f62d794a54433e79c71a5a5cc8d282e
|
||||
|
||||
# Counter wrapping tests
|
||||
KEY: 0000000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 000000000000000000000000000000004db923dc793ee6497c76dcc03a98e108
|
||||
AD:
|
||||
CT: f3f80f2cf0cb2dd9c5984fcda908456cc537703b5ba70324a6793a7bf218d3ea
|
||||
TAG: ffffffff000000000000000000000000
|
||||
|
||||
KEY: 0000000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: eb3640277c7ffd1303c7a542d02d3e4c0000000000000000
|
||||
AD:
|
||||
CT: 18ce4f0b8cb4d0cac65fea8f79257b20888e53e72299e56d
|
||||
TAG: ffffffff000000000000000000000000
|
|
@ -0,0 +1,466 @@
|
|||
# The AES-256-GCM test cases from cipher_tests.txt have been merged into this
|
||||
# file.
|
||||
|
||||
KEY: e5ac4a32c67e425ac4b143c83c6f161312a97d88d634afdf9f4da5bd35223f01
|
||||
NONCE: 5bf11a0951f0bfc7ea5c9e58
|
||||
IN:
|
||||
AD:
|
||||
CT:
|
||||
TAG: d7cba289d6d19a5af45dc13857016bac
|
||||
|
||||
KEY: 73ad7bbbbc640c845a150f67d058b279849370cd2c1f3c67c4dd6c869213e13a
|
||||
NONCE: a330a184fc245812f4820caa
|
||||
IN: f0535fe211
|
||||
AD: e91428be04
|
||||
CT: e9b8a896da
|
||||
TAG: 9115ed79f26a030c14947b3e454db9e7
|
||||
|
||||
KEY: 80e2e561886eb2a953cf923aaac1653ed2db0111ee62e09cb20d9e2652bd3476
|
||||
NONCE: 5daf201589654da8884c3c68
|
||||
IN: 96669d2d3542a4d49c7c
|
||||
AD: e51e5bce7cbceb660399
|
||||
CT: 4521953e7d39497e4563
|
||||
TAG: 2083e3c0d84d663066bbe2961b08dcf7
|
||||
|
||||
KEY: 881cca012ef9d6f1241b88e4364084d8c95470c6022e59b62732a1afcc02e657
|
||||
NONCE: 172ec639be736062bba5c32f
|
||||
IN: 8ed8ef4c09360ef70bb22c716554ef
|
||||
AD: 98c115f2c3bbe22e3a0c562e8e67ff
|
||||
CT: 06a761987a7eb0e57a31979043747d
|
||||
TAG: cf07239b9d40a759e0f4f8ef088f016a
|
||||
|
||||
KEY: a6efd2e2b0056d0f955e008ca88ca59fb21a8f5fc0e9aa6d730fbfc5a28b5f90
|
||||
NONCE: f6775dca7cd8674c16fdb4ee
|
||||
IN: 5dc495d949f4b2c8a709092b120ac8078cdfd104
|
||||
AD: 86a597f5e2c398fff963fcfe126eae1bc13f097f
|
||||
CT: 04416e23586ee364b1cf3fb75405f8ef28fddbde
|
||||
TAG: e7b9d5ecb2cf30162a28c8f645f62f87
|
||||
|
||||
KEY: 8d6ed9a6d410989e3bd37874edb5a89f9ab355fa395967dcbbfa216ec9ce3f45
|
||||
NONCE: 55debbb289b9439eb47834ab
|
||||
IN: 52939c7416220822a77435a46687f134cebc70a2f1a4c33d37
|
||||
AD: 7790af913d84a04c1b72d4484ea2e09fdaa802d8b1733b8470
|
||||
CT: d7bddae8929ed6bbc9ac077e2415d9fbafae4a0432f8f7eb6b
|
||||
TAG: e6383b16ed9c32521dcaeef3a7b9b67f
|
||||
|
||||
KEY: 525429d45a66b9d860c83860111cc65324ab91ff77938bbc30a654220bb3e526
|
||||
NONCE: 31535d82b9b46f5ad75a1629
|
||||
IN: 677eca74660499acf2e2fd6c7800fd6da2d0273a31906a691205b5765b85
|
||||
AD: 513bc218acee89848e73ab108401bfc4f9c2aa70310a4e543644c37dd2f3
|
||||
CT: f1e6032ee3ce224b2e8f17f91055c81a480398e07fd9366ad69d84dca712
|
||||
TAG: e39da5658f1d2994a529646d692c55d8
|
||||
|
||||
KEY: 630b506aa4b15c555cf279dc4a7ee9add213219d2c68163ceaeda903fb892c30
|
||||
NONCE: 79eca200a5cdf92b28be5a7a
|
||||
IN: b12e6f1f8160cd65278c48f68ad53c8c82fd17c2c39bbb109f077c17fdcb8a0b3a5dbf
|
||||
AD: 46cb18593b3b26ba75e4cb20a252caef31d00be31093d2369e93572a393d650c68313f
|
||||
CT: 9a9ad1f78b4d411afe450d2e46347a7df98f39daa4fd478b9ab6e6b417878bcd52743a
|
||||
TAG: 55453a003b021c8a247379cdc4fa6da6
|
||||
|
||||
KEY: d10bb6641e9ba0a3f1b016317831ad4232f81c2137adac0940ecd7fa36de0563
|
||||
NONCE: 99c922d37c95ebeda8e81ae8
|
||||
IN: 8b9089df5bb048cebbe709cb61e178ec768515a0031288d95b7cc4dfffeb51b836e126a237ec50cc
|
||||
AD: f1cbf6c83493b2087d9f88e02121a114f45ed51817e46ffc0b66a783350eae89c6700db3f3be5f4a
|
||||
CT: 8a838c51a8ef8134481e9951033295ae686624aa4df72f869d140980347a5e69a6d7cb3d7119b303
|
||||
TAG: 9152bef766579a3e9a1e36abd7ebb64c
|
||||
|
||||
KEY: ca665229adcc7554f1b1c8f50e7444c6d4059c525f9c0da1406ffb35d50cae97
|
||||
NONCE: 8e2df19123ce0ad41df416d4
|
||||
IN: 12365eaac86b270e9c61b3ae7702a6f3583ef4accb80a98454c56e34e2ab97d8afa23ddee34e7e3a522497f985
|
||||
AD: bf539d8e9e3a02f3e5834970e7efd40cc7cb340a075041428d6a69ed9fa5105e4bc63720be9a7040ce5b4af6e1
|
||||
CT: 96027efdcd4433df8e7f6181c05be365cdce550b09d45cfc96fe258eab6d55976a9306a0070c9589ef08cf7a42
|
||||
TAG: ec9fb5e79cdf8ad4c8a79c900975159d
|
||||
|
||||
KEY: 5033338bf7526cca0425f4a620424662ebc58364c8d985d130e525fd1f598f3f
|
||||
NONCE: b40842b30758aa3eef7cda62
|
||||
IN: 69a62b8c5f9b81cebee3a9345f4e49ea089b0d9c1cc57b4ef707956d0287de83fcca6d8f5270a9393e00693075028189bda7
|
||||
AD: 3efe0ed6fbafa61070388abc59c0d06589309736b02418df5534c8c594d61a2afefbee17af8283d01634b6ca3e8e2aeadff8
|
||||
CT: d6184677a21978b6443d99d7de1fd01c6b6334cf01b7e7d58456267453f4de96708b62301172c8c87e970f91c5301e0ff61e
|
||||
TAG: f8ac7aef208712845d137b8b176c89f1
|
||||
|
||||
KEY: f33c39140999a2cb69e43129cb5df18fffeb3513ec3560792e9909784daee43b
|
||||
NONCE: 70608463f1dfabb1fc4451e9
|
||||
IN: e2802c4d290468177fdb031a717345753cd7c3028ed07dea428db84e7c50c3eb7b24f7381a167b4ee31bf88dcaf5251fdb90ecbb74ac2f
|
||||
AD: 10a6f463dc59d4791b3c2b4c93cbe2dec579a154962cb2c4cc77664e8c2b106c574fe115fd43dad94b8b1bf2f74820e28435b4444b2b82
|
||||
CT: a27419a46037323c033d7cf2a716777fedc02a5ddd8bfbdbca82ffbdea3037bc1cc80df7c5e502b32276ae88ad6fd0f0cfe72604648812
|
||||
TAG: b1ae330d47fd399aaaa687e141e23fc7
|
||||
|
||||
KEY: 2121056225a7b2316a93c4bfeb970486fa9c586c14ba8b40be5844a31e9449c0
|
||||
NONCE: b4b7d1e8fa7d0e2334c92315
|
||||
IN: 2038e2c6cdf5282f081292448f8febbb60a1520fa3771cbfef387f48c5915a1438ab709628e8d4c81623ddbc2f6f159c3c9a8922905c4994269898b8
|
||||
AD: b07f66508a39c4932b04c16172d6462d78273cd9463e52284bb73e3b8b8e7047bdf10c5ace1f903e5a5eacbf67c9351f82c74bda140df2fe0480c80a
|
||||
CT: 7b54618ae09b37ee72e51873c82cdd20b6dca37c334af89548f52f34df3a757e632cc0d453fc97270898eb50ce2f2a98c4cbd4cbb22a5b7c7564406b
|
||||
TAG: de3a9e2aab2439675c4f7f0b61216d5a
|
||||
|
||||
KEY: efb15235bc91771aa32d51472877b0eb364de2f88766908eebc6e6b57a702099
|
||||
NONCE: 1a510b42dc20d1d0fb34fb52
|
||||
IN: 4eff604dd4bba67f143dab0728b8597e269d4e0ecb4ce80c9850afc645d96da239d9db360605bb4268d74e1fe3431a44242ae862fa2340c076db13315f615b85f0
|
||||
AD: e8dad34f727e77444a96cf06425640f1fc80fe3b01dafd1d91476140afe8204286d01b0ebdadc0270a3d218516ff5f08a69a7ba251ac325983caccbe0d9e1de359
|
||||
CT: 989fef0145e2fe93b9f99fd90123632d83d9df8f37d8e1f80dac329dbe0c214c2191009e31232538fec63a29665f0fc1c77dc86b2f5f2050b86b3ae48e85d63116
|
||||
TAG: 6816304faeb45da4e4772f5c35730f8a
|
||||
|
||||
KEY: 998c22912d5687fc3faac262a902783fcb0c738520b5c4135a8dd2cdbd7b0dfb
|
||||
NONCE: eeb535c5bd6edfd696655b60
|
||||
IN: 1f6ae10d425923c882b7d2f556571acfc10333ec665b07bfad9f8948a3b8c5e5f163a4e99d4726da1a35359c657c848f327b7fd9b5f61987440ab12b9399db24715715a2d1c8
|
||||
AD: 9a3c76dbaeb69a6481a89318caeb6358267ef51a1a364a48387bf77526837c9c70afb6f105cd47d2b976dbda7d2b6bfea7b76b135810c53437472f7b80ffc8ce4dc95c7e5045
|
||||
CT: 87f4e2c80a4f15f92a8e94f468e70fe7f0e0f83c0a7799a1d465043d25210ac6f0f39a5e9765b4daca637864d1bcc090d2ef33ddfccded2d2dad61dab443b3cfcc683147c490
|
||||
TAG: 0744d928a5b5ec95f3087cc2623f0031
|
||||
|
||||
KEY: e12effa8da2c90a5d35d257c07d1b467991bd5f75fecd7129aea4e26b9e27ff1
|
||||
NONCE: 4edd0b4cc349d37eb77f5576
|
||||
IN: 21dc87984edca46a629ed95ffb04471397da8806c525a781d9a71818422e344e4af577f38e7cdbc556d4766770a9a3c95bea59ad497fe0127816ec4dcecb6b999486719b0b86cdb2c9d09e
|
||||
AD: bc158e6570fb0a08d73367dba65b80a8c8e57ba6c7b99493ebdaef0424e18d8ab1f7c88670cf51c4d91b77eb9ce0f89a46ed1316141e4299ec6c3d6e712ec9e92d3db44640402aa4ac00ba
|
||||
CT: 07ab8c623d683ff83030392e2864edd4b8e3d296d60579a226a8d2aff6bc5af3c4598a18cc1e8d7db4ac8eb56a082af864ac52a324851dd29af51a0945cee4bf303ea111b9b627aabf5ff8
|
||||
TAG: 53e69b7be969c39560c016c6bc1aa4e1
|
||||
|
||||
KEY: 3d9723c9235939df8647529b7e4a57b8536476d5b71b424e2c27ba4d0b82b0e8
|
||||
NONCE: 60163d2eb7822af7fad64c04
|
||||
IN: b44face0f45e4a8da19aa0c5cbe3aa960ed6b74fe3d3d9201f52523dfe7651756b2ce482e759c87bde4ec670a0e808fb4883e437c7cbcf2f6470352174327824200cb0897edc4def1736f51e229addaa
|
||||
AD: a4b2b7bf36a70a5246feee52c474058100bc618fb0e3d32e8c1f76153edec47fab3045dcc7eed9ca1886bb2593703c9ffb8883c45386d2f4e3fbb0b7c722d19f2eca94767174d9127450549e8993ae33
|
||||
CT: 66fa63ded066ac67bf218af7bc21169a875f4bd695f44fbdff906f0a9b8a067be721fd260571c53a8b51661c8d49fe178dcb28c31deb3fa71b096b387f9fc8f3657d280404c05d2b6443eba7e60b562e
|
||||
TAG: 59d5450872510c4bfb590d9497524331
|
||||
|
||||
KEY: 75b0a20935c4a5e2126ac7420d632bfda8d41bc947c2402bed4759b6e617ff92
|
||||
NONCE: 0c3edf0dcd1125d7e263b897
|
||||
IN: 8edc98e70030e40bea1548f6f56b4561272be0c333f3b7ae53ff3e27c35a91b1aa42d39e6305ec4811e75931e5cae2261d88a6f7d6c5b05bfb48802264e9cac782411f1de579e29d464ba56840b126a3fad07f01c4
|
||||
AD: 7e35081ef652424da6304852243ce43ff711da17f7881d5e0433b1ad7535e755a8531b93d67ce99ffe66e59fbb24f6b42655524b39f2c84daa5cdacb5e7916266c05711a118b2128930b95de83ff1a67e53337474a
|
||||
CT: 858dc74dbec6fdbe4ef15a3596ff7201c8f4fcca765bf5452f678b1493a66ed9852a6fa174a73099acf951a35699f33289ec50625538c01eaa456dc658013a29e4d133b856eb969c1f221f99e11fadc98b0ee08243
|
||||
TAG: 3d8f17838c4fc69f04d7e2b76eebbc0b
|
||||
|
||||
KEY: 7a3823191abcebadb7970d1b65c2a8dab8a908151737bd5400b3b6c0d59e3b08
|
||||
NONCE: e32eb00e5106097e2ef0e8ba
|
||||
IN: 220db5400dce604adee4cb698cdc02d2ca61622bbdeebe347b0bfef55cc45319b940f93773a9878725c5f55485d7a26363251b9ce0d3da1f8f6e34ad5329dc9f752ec7dc12b2d259ac89a8059085996a431a56cc2dc2400a26b4
|
||||
AD: a83b6dc78931cb7500eddcf77792e810c1edbd5f4e33f85018807a8539a3cace094fb794fa9ea058e82c830d42d5a6b3e22b7785698774aec5c73edd92731c51106a23c569c0c0fef18d13da1562a9a42aa435b243c4fbc9fe42
|
||||
CT: 5ce6ec0e1d67ced5a6aa46c909b9b8907b372be03331dd0940ceb6d87e928c14a1a1e8ef9096c9b63ab4cd93242ec7be7e38b80643f9c52e7e90ffa06b8f2d238fa63dcd97af74ae37802d124623b8a272e68ca18b3432b7c017
|
||||
TAG: e21c61d604253bc5b5d58283756b9eb3
|
||||
|
||||
KEY: 53ff6dc0af3e89fc2de7370caa433f539d068609fcfed6400a5b9fda4c83e3aa
|
||||
NONCE: 91a824c5e023283959858062
|
||||
IN: fc23e07b4018460279f8392e86423ecfe465b25b60382f58995ef5fa1f9ca235e4bf87112554aa0e72836831d7b5f39125df11518b8aeb1809d804419beb05ae013482213012e4ce980ddd1c58e11608b775d12b450ecace83e678c69d2c5d
|
||||
AD: b3a1db2d467780480f166859e0e7aab212738b85e88237c2782496c9c503347de02f3dad6bfc671fda71a04ff1e4661767c11303daa0c36d944346d39e3e29ec63d695cdcd83b2b57181582c5ac692b13e4299ab5e86c59d09c2dc6194ebe9
|
||||
CT: 88af588ec33bdac2cc748a01ee3eec97e5bbfdf69de1d66176f42b66383bbffa8b185cdedc25b11a62237d334d68120fccfd68c2f9447b3b8e1f623f33f7f97ad8815d29bf11bc0c65641ba8fca4a087783f4694fb1d574450191825f84402
|
||||
TAG: 2c4973323e635a885f78ee106eddf19e
|
||||
|
||||
KEY: ca2b4d335598f26d3d3607e62b9ef853d3543e741350f92f3050894721d3d450
|
||||
NONCE: 2431b5cee8c3ecec4caad278
|
||||
IN: 75e29e46350d1fa99403b1e5baa414e41a8e714910f313f8e850cf3076508ff650011af766b51283fbd5626166d775fd4b4cb7124d26d77b41eb17bf642bf67a34c1caf0fa9b43eec12103f864e56c5ccdc81b89c1a35e394362688d05dd94eda3d05dd2
|
||||
AD: 31c3ce532bc1bae65b5ced69449129b112019cc6078268b853dd17c41832ecae07f9c6b068ef6cba2b55f352904afd6096ff8432081aed408d9340c319fd8e2029c389b6e3a4bdc38853444c3f7be9385ff1ca27e59c43b542e99799bb4ce56b8e26d6c1
|
||||
CT: 90c13ec26d01b7b96bdd6816d3ee57df57efeabdb15ba602229ff71d71793fe8081eb1b462e8b2967bc4af96fd6dc72cee3d2b6495c7f04c9068b2ad0b073e11cd5999df541ad705c6315eefa8da49c5dbc258f7ba922908489c1ce672971c3bfb6e8482
|
||||
TAG: 3a7741a094be92b838850c32e4b06c6d
|
||||
|
||||
KEY: 49fbbdb5ae21cd955be7f7603cb8563ea0b02b77a9ea14016baa5cffc55d20c9
|
||||
NONCE: c0a4463350506d2af9e35d8f
|
||||
IN: f31003aaf5d8fd6261c01c5bb1e7bf6af248e0be3cf8aac67ccaeb0b7468a40d98be526a8e4f692dd23763563e601915ebcb59ecbf03bf9c665c4c5313c318939a911888fd427d5297b9b2fd91dd33eb7ed38e2f0f6ab74ec263989cdd9915811a022d4a46ed35eef0
|
||||
AD: 17e01af2386531ce67d5bc3325d8f83b53a87b38f1c305f99c0798380a7e59d3ecddf33a5ad23a82e33f0fa34eb2438b17e958451439774ab642fafd3794f80a0ee1b9bc165f32df705a6175310670ba54af3a204e446db35170ab02670086c47a475c22d1f14cbe44
|
||||
CT: bd661836d1b74244baca62d7d1cb6717e17e2fb0bcbc8d36b3265a983d557c562b0be60708499d0e7e9626825bc049db79a0ef4d2393fef6024d849089455e55693fd4da3d910eac11496492a645e4376855732765e1b3580461a2a2533cebb482736ac928cba175bb
|
||||
TAG: 4596e3802109c899f27f6cfcbdceac5d
|
||||
|
||||
KEY: 30d0e4f6425e38c92ac34dcaa06a815166f301289ca9cb0ed08156617d87bdf4
|
||||
NONCE: 525618ac9e317405c7d44367
|
||||
IN: 06f2204ca864dd3f7c9d0290f6fe3d0337eb9442cd5d2b586d1d5c30e58951fc2f4e99831ac7bca4356db4609a0428c482f2580b9e8cf5fd00d86d474fd88ac3b2413f44c1ff66e59e7538c090b2444396f02004ff636aca05ec40439f4e3f470a24916fa4033cb60127223addc1
|
||||
AD: 23c1a3e1083904f7226be7242027abb7af9d62f1115340cd4a57611be88303955cbcbeba44eab5488c80aed3e063c70cb7bbdd9ac289c8c8977868c3702be63d0358836838a97b31f6aee148f2b8615ad7c5dc0de7c48db7752e5f1ae8637f8c70335bbecf1313ae1b972ffb9442
|
||||
CT: afe3e71953bad46ad28113b7c8f2092fdebaeb81626bf94bd7e9dd59e000e8ba31c1ce7f728fe19dbbb42322e54aab278e3c29beb59b2d085e65cb8e54ea45d6a9fb1f561bac0bb74afe18cc8de51abf962c2fbc974c7ed54ccf2c063ff148b3e6cccdaa65cc89ab19fcd9cd0436
|
||||
TAG: e9f5edea1fdfc31cd5da693b50b72094
|
||||
|
||||
KEY: 661309741227606892db13ab553070b456c5e421cca59087144873ae6d59e590
|
||||
NONCE: 9f07692c017e1391a981e70e
|
||||
IN: 40b5f8081b5dd173203e02e90a6c171fc41f804b2903ea18109edcf77c03dba687b47ca389c55389bd7b0ac59bfaefaf43b5f97065df6a5375c1fbb95d95cad589c2a45cd9e1e7960b1d13622440f7180aa565863b4f9dfe26ed336ff4318653e1a520bdb830e01db78a7e598f251834d0c9bb
|
||||
AD: e8540d084f24b80414af554f470048b29a5af8adb2f9d55c9759e5ff1595ca74884af67027324587131d90c77ca72b2d15b66564549ce93df7f667d0218a6e874848563a33886c6a0c5a9d00fa435dfabaa9053243b4c8c25779a4dbf79eb4b8530a7c7bf4263ea824713a90cee92dec78c449
|
||||
CT: d543f49e6cbe26f1d8a6e058769d5b16e6f8255a28b4d73ba2cbdf664bbc5ded73f9dea12a11b86b6a6acd578f685afabc232dbe9ff8431a5318ec7f0202959a310595b147353a7ca89c9d1fc2d2b92ea610cf6d9ad2716df2dfed70f5b74d498edab114058c22c96873a2a64abc254c82af46
|
||||
TAG: 31a8441886d0e4c6bfcd6d74f6a5ee5e
|
||||
|
||||
KEY: a248b0d683973d205ef2d3f86468cf5a343d6ad7c5aaac0b9b6b2a412eed3552
|
||||
NONCE: 8f62ffac4027f4dfeacf3df2
|
||||
IN: c2d7d29256832def577392acb9fe4f249eb4859025ea55cc0c4a67806caba3e1cb81bc7f5717d94e1c91ff06607b23c238daafcb0fa96905616f02205b702508970fe3bfca87270ed1102a9ab96df57ebdcfd86ef6e9c4c4242b4febd82b0220b0d6f76d8c2d0fba33ca49279907f6bcf7e8401d1419ed58
|
||||
AD: c738cdbde6dc277ab81dae20fbbb4a50d71bcf0ac1ee0ec6a39747ccd87be40b1f0f2c37f2c6b32ea99722979fcfddd0ddc2e4ff34a2e6113b591cbfda317c6f4b021ad30325276f8d8dd78f757618b53297fec091f029f9b00850b35f3863a3801c882422b318b4a1bdd89002f928371ea05c6fabcb1792
|
||||
CT: 7a837df292ad2e58f21b89da43a74de411e1746556fe47db55a136757513bd249384bf67887a5c1f605e7f7e3057596e17039701ea351e5ccaf0fd4882559e87197144632977cf07cf9e86784a959fa7399476a4fd196d7c507fe3876d759e2b37bd37edb3c12b89716f29ddc8b64974263a1ec1b6364b0e
|
||||
TAG: 291098a2376a0faa5da6fb2606b4f2a4
|
||||
|
||||
KEY: 80634a8baea1c4fe5dedb664c9b5d714422dd1726d642e60d15e02364195206e
|
||||
NONCE: 725ee5023ae08fece15d621a
|
||||
IN: 4d1d8855b4d155e77bd1bf34b3d049ef09b2b94f4e604306406b015a2d520e8772b084ed668b868e32c7563085f2a82e7d99219da549e507aff9515e45a045c7cd5292c0e09a3a38c769acfd0a11826b27d8bf05184971670200e79c49754debbfc57d9ebc661b25f22f241c4d143bd922f7b0981a48c6a63462cb5cfd
|
||||
AD: 12b3fa94a64454dc5b47433df1ce0a7dd5e8066d05b2433c6cbcb83087bb7d22d153a19c05aeb76141431c5f9801cb13531691655939c0c812611c6a30083ed3ec27e63e6868f186be559c48367a00b18085ffb8c7727638e833a7b907ff8465e3a01d654b52432767b18b855c05a9cfb5d4aabae19164f0dc2ca6346c
|
||||
CT: 6b01e934916823f391cd0d2829c224a12eeddc79f18351d2484ef6cb5d492ec9ec4d8c4bd3354f01d538bbd81327f6360a7d157feee64b539489bfdd1be4d7f724d2a6dfa1af91e4108dbfffd529afa71388b07e5079236644da289ae236100b2fbeda0c17bf2a01e76cd1f88081682c2d074223fb8a41d59e70a37870
|
||||
TAG: 55762e95d897a33c4c75106449112986
|
||||
|
||||
KEY: 4f2edc967b11983f05ef5ee2a4364039ac02dbcccef3f3719913ae2719c8217c
|
||||
NONCE: 255f8209b0c67a6277bdb42e
|
||||
IN: f8217163bcaf77c1383089e396b271e22c517e8ccda244256cc39315fab7d0c291078d90e9b6e336992f015282caa1ec0ea858a179c9735b7a2f0d50f6f1eecaf3b9308772279ebb95f8aa53826e9dd60fb354de0c50c10001c98812b59d7c0f36daa1aecda6782ca36130fbb559363fe07704b0b91ea85be319ada027e47840c764
|
||||
AD: 1dc7065f1585384b88be47598ca484782716c78f49b3b6bf5d24a5b0d24fbd7831f18d77d80951d2c4fafb6f939d46362a69b558afadb3bb4d8aa27f7fcf3dd9624e1e075fce9bb239926d51ea9dff03619d64d5828103a414e360adcda8fd864fca55c21df86c76972c3765ab1d68ce89f708e7e5a3e06cd4de08573cf750c6f5f9
|
||||
CT: 6719849b7cea3f7f2a8e4de13d7a864d581b7c638f49fb06378a768d2034548179963c33f0ad099254c2edda9ef771daf5d299f58850033e2e449d7bc21ca3f7d3b7408429b596da615c8582886a6d8c1a9ba81fec4a41a38b7cbf1a80ee0ec8bd71451e727051fbf2a1d1e3c6ca98ee113e47650ba4fe80451e79b04abc8bb99a2a
|
||||
TAG: 2ac7f962553a8007de3369c7795bc876
|
||||
|
||||
KEY: 51c5cf1f0c76ec96f4a5f9aa50a36185521f3ba259145ac6cb4da3cd12467696
|
||||
NONCE: c751e5e7e3d75874acfd2bfa
|
||||
IN: fcda42cd098b7936f4bebaa37d5850cb0fdd6526966b1b5734f23d5050ee44466627576e1144957929123198e40b64eaef74476870afecd7b70f7583208603a1b5247074c6c77e10b9bbd41a3d468ff41db89895b0e9ca95be77526ddb30d4c5eb0796ba97d7d5c56d0eece344dde3ebd7de586226c00da224b04e74d9abe832686797df067c52
|
||||
AD: 343ae5e73fd1da48dce92ba7b86d21de0a203ba8587536fbaf4646bc45051a7feb343e38916f6c4c75b65f940045e830857c7b62b34a44622a36b34268b8a397892ed3e4de5df3fa7384d4ca50202b5b0833f921349c877931f4b735cec45db6b95410c8042ba49c1a39870276e0165f09c73b14bdf7f36d19084f958695c7ad2cc56f0487eae9
|
||||
CT: 04192659d6a2f1b7be472372c8f969a7de388c97d37b4a89653593e48b630947d2160b569379698e94de49b21572ef0b4dd330487a8be814a84e959a1a8e3cf33dcc9f7464fd44814d0cd7ab85e4c01c9d015f42ce3723c8ef8c311222b0c78eb83d81696c217992be725faf27701b4922c6e6099442787ddde2b7572500a5320a4d0c787b786e
|
||||
TAG: 23c7a866574976dca8f401c4b5b58292
|
||||
|
||||
KEY: 1cec3efc0311d623f34b6853b3dc97e470fa728cdfd65993d9d48fdc192b28e9
|
||||
NONCE: 320fe742ef171b7b8cb615cc
|
||||
IN: 722e503a97166a07974dcbf136fbaec6c03668fa52495b040383433ca59f6311103f2fc6a95ba4c925f8637167537321eff6949aa3051269fc094393a7b17d1ac8d29af052760835665b0ee89adda5dae7738656af9e8513c96e8a532a46ef34cd7430832d2be51c586a14e9aaec2458c1911bbc0f90b496737e838a12ff37d3db058bda9360d7d33e11629a
|
||||
AD: fd5ccf6b6948c3eb96543aa40f107fafe94e5206c326dd8900ea510c6b61d1bcf746151a75404e31406c8e991fbf6e660db7c18e243fd2608aa22dd7ca9de88f277037661ce6dea4ff0a86809dbfe1708cd47d3061a34657cad143e6577549c9944e081f79c276300bb406378b26f349a91fa87de02a1405d712c516ae11b4bcf30ac9d56e677d03eb33e3be
|
||||
CT: 363c1d6b806a6d97e2fddf53b242378e1d2b818828863fbb3f856f7737d63998a84e02d6c91e1df5f5eb6cf89f7ef53e16d10ad52f82362292d3acafaa02c23be7da7616a8b8daf8ee3ae74ee1078742c4ddc3e5a110e510417b9f43fbcbb00e17af3301b2fbcb784fb0a05b66469e771fbd78114fce3c4352c42928bf5a0ecc49228a3c930b0790bde7ad7b
|
||||
TAG: 669482999be99149f9b723b60fec62d3
|
||||
|
||||
KEY: d3465cdecaecbf25943b7bbf8084ccabc15474a4228c46cbe652a99be24a861b
|
||||
NONCE: 04fc836de3a1420b8e7136ca
|
||||
IN: 81e0e984ce0a4074a44524f93e375eabc650a847a42393f5c524c65523368d38a7e2b677fe08502dd3bc42311775016b5689c660cc0ca8cb33a09b89f3ed3d02fa0fb75ca5bf0dc3c27c546b369ab5e7731f93bc074d37ee50d6f8366f6c8a45f73ac92b05c4aa552ecc5266041dc122a0df69a36ad625a26edb57bfff43a84e527ea0d9d3cf076f8de9eda28eb09de3ff
|
||||
AD: e4adc14ac4bbf3ae7ec7d97f5c0e6090bf8127a75e8b70e9b86496a62a759dba5a4eef64a8c679c362785501260d29b58e1af647782564947950428dbf14edab8e6841c7afaf9e7949b560419c44bae30315c597f6f6e02204da7ec605a4d9a8753de1268bb0b1c84c972b4e7296da5c969781feeb35a44d2aef799ed228aa399ea04e21cf9f7d5600a2c07b047aa78388
|
||||
CT: d7995e7b610eede708526c05c584039d48b9b4356fc71b0c37ec2559309a688a7c69ac9655f94e178cd2311db58587863b0fbb990554dc9a6aa849571f945c61e5611ae7e1a96903be725a1aa75adc381b86e43fbc68a36f44e0e0cb8fe5c494caa91f758597b6ef3b80a879154cd8a7e5f570893b4f768105b24b58efb67c5f07c6db60e0f48eba9563f17d38aaf0847e
|
||||
TAG: cc3fe61642c2d7fcbd579048fdfb19ec
|
||||
|
||||
KEY: 1a0dfe2a6bc6a69659c68942ad0858e1df905890f47dab728ab9c73f742f469f
|
||||
NONCE: f8f76b014116ba61392597de
|
||||
IN: d93eead436e835a061ca061e3a53c3f9c66c6f011b21682b8a6fed098bde2018a2462aa5ab542c69bfa2805612cf6146c9150888b9720db1dcd0f359c1fa3416df4cd225dd0b0d949e917adfb3e83bf5ba2b967d48908e6b6d8aabc545335014d951a67390d7b5c7cd7dcbcf66e4e3f02aa4e5e9cccaf73e75622bad006c63433d36cb1c6aa4aa253dd1b2eacac75c548aa6648ecf9d
|
||||
AD: 56ca2d5340629ca75de4e98921da352941559bd79f47ef0ab42d1d5857059352f96ee877f5458f090ca237e4eef5b08a53311c8dfd4c4582f18a93aaa8cf75080734cb2ea3389c9c74d2b04ead614eb54512ea93f0e3434e9a9366454b303a8129d6ce6cf96b1d6dd4f751311c736b517dcb50a6f6e0962c46637b4f5aaf0f34bff518cbd551a7aad3fa615708b17cf6d8fbc864f580
|
||||
CT: 8dc4d8483dc665b174ba32d6b6244da5f2a8fcc4b1865d662ec23057838b332a07ff073ecc893d413696f3fffc6dca5d107a5673f14abe8e0457a02e61138380d25e269686cbbd23cb7da3060f482f62bf80a40dcc2e711ecf5f7836ca14e456c4b73a48bef90749024393f5f8af01b73302e81bc37c4110dc26174702231d831cd14231905d2dd3f375cf2bef0425084d5b19f1039f
|
||||
TAG: 825e7b7e195f65c454ce9fdd637138c1
|
||||
|
||||
KEY: 03cec87d0a947822493b5b67b918b5c6a6bbdebe45d016ec5cb6779c3ddfb35d
|
||||
NONCE: eb7d261a6b56a179c88e88ad
|
||||
IN: 2326102c58524326759ad399222c5b5a563cd01a29809d6aed4d49772a4723cfdf30c9f85f031063e838f543c201412d6f085a8f5435b0b2fe94659aaf70cf7bde99309239ed5b815b48342d4f81011f5aefe10ba105ac15601c64a91076c29c3cdafaa12bdd5706dd7305b48e923873cf06944b5027b210c59d79856f602bd6481980ea909152216756d77362c59d57673cedb91ee6f56a40061e
|
||||
AD: 4d0fbeb69c1869d2d23198ec49b3dc23149005a84aace7025293c3afb8cb2e38c167a822e25c2fdf667d3677f4e94ed6574529c987de506d26b7ffccf3b7a36d9adac48bca76084710338eeb5bfca9df1bf6b403e33e90761a0b3152afac333071a5ef4f54010b945d03b51f123865673e8877f41ca23359e60518f076cc64232b306bd858634417e92e546ede4ac6231635c9cfcf43aab1f8fc1e
|
||||
CT: 06746f993843901ce72f2fcd4af7d15e64b3102d2f9bec0fe72cdd0b97e43177a1a2238c9c1dfc3311f701196653249e767a73dbe819b660cee07a5f3bb8f25823875fb4b4d34a5a3a212d2e166311bbe11fb1d36f4e725c3b74054ed7fffb7082203ccb5e9d65873cb8a1ce28d5c6e2b6555c1a864a725e6c7d5555d37dcaf1d0884264be72d38cc4b65bc2f0d039d542c5055da56c57e084b804
|
||||
TAG: d36a4b6d2f592d4f0d347d906fc319cc
|
||||
|
||||
KEY: 7f4b4bfa26719d9610c80ba3f474c43127f4aa3414fb070fc2f389e5219886e1
|
||||
NONCE: b144d4df961d4f1c25342d12
|
||||
IN: 638982b95d66ddb689b7b92e3adb683ac0ac19480148bac9db550be034cd18dbd10f2459c915e99c385cd8dc4dc6ec48b75f97e818030fc2d8fcdf66d66b80df64f0ca4af91bba83a74f3946b17af405bbbc6e216435641f5633ad3ee24c1a2ed1b39f649acce59ee56c282a3aebaee6e97f96b34cfc63d5b0482fec20d755f399dd5f61688fe55878713cc55d562c2d72236eb674a340d1a64932cdd8534a06
|
||||
AD: f2fe3d27bfc278cdcf16fffc541846d428b31534ec5cf51c30c8b6d988dc36cd6c0d41a4485a3f4469e92ea0fc7e694065bd8130c2854c95549630bd9cbaab2205f27a6efdc2c918c3be53f2d12f8f7cc8e6a81dc8be7cccd217be1fa2e6887cea7d637d2e2a390f50d2c5be10a32a9b380a400cddbdd40eac67f1fe9ba6033d4bfa88c563eaf57272c8a7052916cf4460f31ad026a0ac2588a45d082fbb5c0e
|
||||
CT: 0d4de3489e09c7239972b675063579e409acbb663bea76bee8fb3f7e8785158ebe1c26db9219a9b97ea29e74762999518613249c3a87fbcd0128f651e2db8e2167f10ab532eced3464b56bcaa09780e5ece18182a6e092477ad933bd8de015c80e67c6802257a97a647fe2b1e9ab6a76c1cbf7d905deeb824aba2a34095f84b276d55ff940d6ab788c16cd63d9b16e0908d718c851a3230b0a37257751df5a38
|
||||
TAG: 9f0a882d4456847f44c7287c8ff3ba04
|
||||
|
||||
KEY: 9799ae8045d58250e4d9c3b0ccc8897a04b5b9fb164e54019dc58d7d77b65459
|
||||
NONCE: 0f20d002dbcd06528a23d5e0
|
||||
IN: 8f323018b1b636617c935791e1c8023f887da67974080af07378b533a7573424f1de9193c5d38f55e9af870f6c60ab49c80d7d1ad1f18f1a34893fd2892d49c315ee668c431f5f35e3f60ecfd534b4b09b64cc77cd16b0e1b8882872cd109a5ca377518e5b660d75052e9a4228e3935705b6bf6b4f4249346b7bf4afb891641a76621cd315cd75de391c898959be945ccca7a96073f2569f217617b08502f7d569bd2f80e0
|
||||
AD: 3f1e297bd91a276a4a4b613add617b0488414a57ede2ac75d10934e03be58ec518a418e98a4dbb39d2365889db7c5f389b2a16d8c702cf21b888a4cbf77b356df48a30298c825fb86128de45d7fa0e5f4b0b7bf82a2c4cad2470f33c231802263901fbda54a6edbf2df638716492157ec1407e7fc2eb6c663d9a215afbec3612778b8115e78a5fd68cf6ce66c12c0ca26e5c1f7ab079bc09c3bc7b673d21835671a13dd2a0
|
||||
CT: 9a5758dad7997a766db05d698b43fd491bdcec21352032cc023bcf10e136523219745a56f0360efee75a37de55da23cc7d8184a50ccebb110bcb960dcf6b25fe731e21f26290281d9c1c7715c4e6ff3dc0026cce52929163ba222f123d4f50e1d3cf67725fb4737f4010ee2b5b163ca6251c50efe05c5ab0b1ff57b97ffa24c98653f5c82690d40c791047a3d5e553a0142fa2f4346cfcd1c849a9647885c0daaac9efe222
|
||||
TAG: 5b85501a476217f100be680b2f5882cb
|
||||
|
||||
KEY: a26c0e3864a7dd3b589d17a74a7c9c1f7e8f9adb4aafa0e75c083d10956b6bf6
|
||||
NONCE: b54a2a43ca3f84aef3824375
|
||||
IN: 6fd4ec60613646490791d82de30ded1a12e61fd270f1642d2221272dbb150ef63ef2604213e203b740dfc9c4bcdf722b3c85aa20abb1197949de710d7e8311956c8649524afc72a9bf5eddf0b284c7fc6d48a741b82c215a0dcd73bb8afd08d5532a6f7f99b5c6beb2ad793d6da53a81e6523b2240729924ddac996a723421f57125f928990daa7a55a5b6b53d7361d9728f66590d969659aacd9aa5c0ec627d991b55e9fd0bf9c3210f
|
||||
AD: d6d8b570eca29a48a4d408d5b27ec6aec291d70cfefcd02bbfe8d8ba8aeb6db770bfd723d2c3a4859f1992767d24e7b33e3e241874292af640e2bd22a5b77e0e9e1e0d5e485041cac41d4694ac929ae1fbc08e7591e1cef689028f5db26f95fc9e0868887fb9c635579fc6335757697f63b4f2b46664ae338eafdd827988c8f2ebad80ea9787871ed8d6b302d5dbf7e8019f2e139c59036cb5964a3701ec049b839e19e33e68b83539c8
|
||||
CT: 2420e09adb24098038b2750c946551a5f6a5bdf23b126947348ddb5e938b3fcb874b33fbac6407095e05ce62df999e7234cd2b4e413009c71d855b23993cd58c1e26ba0deed891dc88f099fdf852cec0aab45f488a90edd8feb6f4c837036945bd304edbf7a2737921a2f8c1b00a1daaf9e25b908a65a8f69963fc767bc975b5b7bcc215ce37009009dc90b5c7edb1a1174a10ad28f4c1d1a2241e7ffc215edef4f847ceedf7b64f2d15
|
||||
TAG: 20521b35310385ae66557740b435d204
|
||||
|
||||
KEY: 53ef3dc7a10e435650dd20550cf3ec2b997afc8d9e79cca8f7062622afac3496
|
||||
NONCE: 257a205ed0f84016183f4613
|
||||
IN: 081e2769935f945419aa06fb5fa7d8412efd1f9b52a45863808022850836c1974d53d2b2c5c0cd420711a71e6d1a09e984366b8b677e6c61bbce8f3adf9f5a9fb5860887617a08c923171d681c4fbc6d569690f6a183d42b52a80ef0693862efd22bf83b7b4014a7008424c356b5022df1842309b3a4a2caee0fd3f4d3fc52a17d53959daccf8e0ca889578ee2905dd8c17d52e76712dc104344148e8184c82af8165ea8386f91de585b54fc8535c3
|
||||
AD: 5b73ae02bf4a70e57f5d48fbf45f85b8496ae8514c8aeb779c184f9cf823d8c1883c9e5a42b2c099d959c2298ace2d86c4479059256d6a4325e109fa4b6c4ce90f84a8228316e80aa86de9b5e111d88b2be447a29297b35ca90a8eb280d4c0fe92a1d593cb966cb0010bc06831efb0c72c1e222b031e900ef06ab8da542a5abe2870a0efbe92351d5915ab545b14900e41a27c5ca9d75d6277afafe7ae861131c2767eb314c0c3da5c264f8f2b4ac7
|
||||
CT: 20ecb6cda861b660656d692c626436227bd4ac17a9bc71f6c84a1917ef3b5a0f6ba370f00fa2e7f1bd5aa8d6c15032572090482c23e4ab7376ef1f4dfb77f79d5dc065792fe3476c9c37614e32f493e461981b519dd7d10234c2c69264ffe5be06a8e14c81022b652c8cfa24adcc7c7536a55a2fc41e9ffcd09e1c483541cba814eafd5e09e9e44477018a41b073e387c9257c07d97e40f0761fe295d015e1f2df5be65b13f34b6ef0fe1b109ad109
|
||||
TAG: c129ba4c10bc9e9c2b7d67f5f249d971
|
||||
|
||||
KEY: 15ddf0d794b1bf2e67db1af47b45b8abb0c62ff5fe09b29659f63ff943815c39
|
||||
NONCE: a6e6b4fd129bee3ab8144da1
|
||||
IN: 9c82ac83e3dd227d0cb9692703dbf41292fbaf4961e28b7407ef069e33850371ce2838b1808ec1f837511dae9899a867959183ef3d988ac20758d7a1a6859cedf687d8a42f3dd53fa4b5843e5be61422fb8774c9eb0fd22cbda5950155caa0ceaa00417f1e89a863fcc08cbf911776fbea8d7c14a6d819c070c9abe76a7f0d04598188d07fcbb822758081172e654c025703bb24c523cee2dfdc31c8d2c84534a60e7efa9f52f7e74e19c859889f9bd024f28763
|
||||
AD: 892bc04375e9ad5ad2b5c117d1aacc202a74ee4cd4125019f38ed4d716ce361b8b50463ec3255a00670f5f95d361e79349e90bfccbf084586cb5fa145b9eece8a10187c13055ba0d17c0fa526ba7985f00f3eb4a2cd53b6da488827fa8481cf47f6be58771d1e40125652732a7dd5adc49cf99ed6b085fa9fe8721c86f7241b6efb6002e65ae5f72e16ce6a09ce81365485b20f1fc2e092216024b1acd0bb4c2b4ffe28d62a9a813fcc389774688eedd76c0b041
|
||||
CT: e30465518e7dab44b9ca4ab6c86fd7b701e334b050a7889fefd08aa12c9e381acc7875ad5f8574fa44f8550bfc820b6d9a5600cfb82d1f98721a875610a91c8f47960ea64445c0e22fd3ebe94b3564e98b9b00a68e9bd941eef5382a67782c5e24ac44b928fc986c62a02fc702b145843b1c6882188dcbbb6f6b51ce1aa7784da03cbdc3efb1a01c1cfd7e90dc3332fc6e912a6a967ef1f239cfdc9752e235dfe75dab8088f8cc207a4a28994f122859aeb52d01
|
||||
TAG: 62e7455cd6b95319efa3ae0d14b88452
|
||||
|
||||
KEY: dc0cff51030582f29676482ec8dbf0490a135a4cf3e444edfb7d1ec733cdf7b9
|
||||
NONCE: 58c892d618ceb6027afbabb9
|
||||
IN: d6c4d49a9431d51bfda5bd4b07997690748fdc3df196d27d219a62480dfcb6300c5a234d675aec1239280446cc134bd4e0e0b5ebf6f10bb11b788caf949c0c3553497b62e729f08700b66c6720c35f1f434f16b15a4e404d627fd054ae1394a77d5ba728f3422aad5d99a608c2aa52b058946a76a408c5dfb210d280629ac999e86ab1f9da8f2b7b79ec07cb666105582564974180ace98c63bdb962e4580692abe58929d29f066d2f7e25c23a3824483d9e49cb6f5fc4a1b0
|
||||
AD: ee3bc8d875a4d43c278cfeefed8ced8a3da946adaef93dc356001da151010548990fe08b62edda46634db320601c7f4b50956e29868bda9ae5df186f15c3ab4a19d7cec274209cecc71602e45c37c273b7e4b2a168de5c29278042a3dd1fbea0998d7d9707d412f476ac8de7936e2e5c268a2f22646f682e664e526f88004e7c461bd42337dd21b1cb39ff678974adb67c2ea1b7055ca98697ec16c4b3bfa95b4dcbd7fb015480135634c34acb20f58549f7e7e11e20a991a1
|
||||
CT: 54eedf8ca21f31d21067af5a05dc3cb99c3dc046540d2cd1664abb32fc7714ac057d039cebdeb124e1ca9511bc71f92ddfd4c6bd3edc8a1934f2fa2511503944f2a0818e30b9bdd26bd3c51b9673f55ad3f2ee5e41de114ccc55abcdce06a5bcf63a5bd61fe71dbbfc97e1c7f3417fcb9c1462e244ad91725081c9176a0b91d3485400d273a16eecd870ec1e9e016a7f4af2fab39a0bc93576ffd1eeef9cc15b7e47feaef85b21de422666ec722cbaef26edd1941e7dc03f72
|
||||
TAG: 1cc8c395b2ccae3a685183667ee7bd34
|
||||
|
||||
KEY: 90da49f8f64e8a585697a43644a48bcbef33a8ed23c1a93c65e59a217c04a1e0
|
||||
NONCE: 0812f87792508dee6868d454
|
||||
IN: 26dac57d9f30bae5831f98ed074cbc9af9731a52b2322cdd23f1f0abbf78092c48d6d24a43c7d49edb3fa66086030f37dd9dc67847714437b11577d2bec645b3210baa8f7a540cbfc20deec5973b7489b7607eafe72e249df5d0fed95e29f03cf7f0c7a22fb2f06a0bc75214446b06d25a45ab8087270eec56af3960f53b80412a4ea7b45e54a2c374e8a3789e8eb57e656e22107503920313ee3e4025836b9e1a98541446c23bd5674cb83483642f2f3e8270bd1f77c85bcfb205a9133c
|
||||
AD: f2168cef97c27a902d93cbca07b03f35c5c3ed934192d29a743c3a6c480c5a62172c088fc89cb2d8651b8979e5bd1864272ff179be8003c6dee18789c17583dc1de4e8b4fec80e5c7575838e621cac4b5b51ce5952f22e06b1c196101d2ac8d05e797323e5baacc49d1e74db97142e1bed723d46ab858d59fd36d5d08eaa63f696b610eebdc9662e504992fd3481de1264bcac8ac426b09fbc641ebc93f72c5d460088fe0b08420d88fae219b6a5a67420a5f9d1201bf8d64b2ab3e9050a
|
||||
CT: 82196d89624689bb172e4ff71619046a91149c8ea99ebbaa3f2c32c77938b5ac466481575dd82a008c7f5867bc46ee44faf95fa40b6237c8c3b62474af2efcf07c771e23a63e65b48b0bd8ed26fc64dffe03e71fac6d3857b1248df63d888567d7d3618c68d6b8f1c88029bd7af8677d3b51f70ccccb4eec9e100768515637ad8a4b2e2e317902e456974ce9fe23095cc68566e85cd913e8b64119444f124640d16ef3e98136f32d618eef78f7ffbafb64227b3185bda8f541c0e7ee8405
|
||||
TAG: 71fffdbd6358f755dd22f1dbe42c4aca
|
||||
|
||||
KEY: 0b1b256665284390a9193b7b7aa4e3ad15a3d2a58e79d75da8ec284c02fa3a2f
|
||||
NONCE: 346ae65660de8920605fe8d1
|
||||
IN: acfa83f56f137ac39d6447d98c5f7d5e812d1d8e7c7fa7f7beea9a87c59961449683fcf5332c9ef1587135030309a1c2d95257114b790b18cc32f65f4c7d1652c0106e3331f826e9b8b0dffc50aa6723d0827076b71c668370ddc8156db3831559a72e48266b3886a6d88318e6ca646ff561ed4f71e665abb7a60089f0a115c7b7fad9cbba6c4cb0c242b9e1f17705825d98f4bc10bacd8ab2e11cf579f29b2a0b085d8c96a372434785856b483c3fc9ae909029b0c931098d7e59f233cb6450fe0b0d
|
||||
AD: 64347fc132379d39cf142ca81d7e49c010f54f354ca3365d5195a7e43175c9a47603062c5ca61aaf2b381f5cd538bbf48f50d620ff2b5980c086049a378aca69570ab7c406b510a6aa6b7e8682ade6a091b1f822a97ce671fcf7c911c43c4795b78ce1c86e990e32bc5c9fa34a8a4b22a20d6f7c46722d1bafd49443b4da9634db4615f7cabc3d5bd9a8921e67de45dac261f54bcd0af2b2f845e255a16f2d2f1ffe26e88238f5dbdbe111393aab3409e08dee8b9bc85c51b385c191ee9290454236ab
|
||||
CT: 9d7421330f0c2a525495bc360cd5c2273531d050d461336a254c9af8611d07c3559931cd6804fbdc6e6c9c997283cf40bc23596efd1bf116fffcc6620e45d1c738569af012a7ed0d575ace3c12662f88f3ee480af30ee015ae70db112bf4a185e220660a912f9ad840346e7cc0715e853dcd9b415ca9e865d5e4de2321e6a1b7cd8a35c760abd3f099d395576a91503147bdd51cb4bd1452c4043b42dd526de6f61bcbe819cfa3c122c6f62e0d4c38b443f5a138325a5f0ff8a9a2071c2773ce62edda
|
||||
TAG: 2af508d74bcf8157ae9c55b28b5d2db9
|
||||
|
||||
KEY: c055bfc7828d9fe8fa8d9851d33f3e4888e0f7e286e1eed455e14832369f26fa
|
||||
NONCE: 2804e5ec079eada8bb3946e4
|
||||
IN: a26a9b189ada0ccafab92a79711360c7c396374c6170de395bd8ed80dc5db96ef1534adc4dcd419fdf1801add1444a195367213e374eb1ab093f1f54cd82eaba5c1cde6b867e0d8fff99cdab4d96e69aee0c58a64120ce0cfd923f15cdf65076a12e06e53ab37463096d9ccb11ec654e401c24309fda7afa45ee26e5e4b8adc8febbddaff1e7cecacad1d825a6b16a115287b4b3c9f8a29b30fa6236ca6e883abda412177af38b93e0e64b012d33d7bf52ed18c4219bdf07f36151b7ea4c53091ddfe58b6c9beeca
|
||||
AD: a184e4811d5565849a08d0b312f009143ac954d426ca8d563ad47550688c82dbddc1edbdea672f3a94a3c145676de66085ded7bcf356c5b7e798f5ab3bb3a11bd63c485fbcded50c3b31f914d020840cbc936c24e0b3245fead8c2f0f3e10b165d5f9c3f6be8f8d9e99b97efda5c6722051d5b81a343a7d107e30d9319c94dbc7c31c23b06a4ae948f276d0eabd050394c05781712b879317ac03eb7752462f048bcd0dccb5440f6740ad0a3a4c742c3da32a49dfda82ed1b66380a8cfd09dda73178ffa49236d20
|
||||
CT: 58dca29b5008f74bf132947df768dc85e2492a381429f151a3bad3132e63a4a977aa09f10879d206f43f27a26909495d0a2c8cb252fbcb3abd953f6e0ef0f6d5e89d89a1d9ecdb0e44686fbf5567a6fe7557a084a8a5ef5316890917bc432164266a331118c828fad4f5d1776645d163dc5444c2e12def608efb47adeb8f9928a5ffd3c46f963a749c310688e78525e34a510f529472a14bc7a5b65594338f6f5ea1d95bb5bddc6e8e1d1a449d126442accd162e4e03c10824fd48b32df763de5d7700dafc54206b
|
||||
TAG: 141c80e1d044e1e9cf1c217bd881589c
|
||||
|
||||
KEY: a54a347a7a388c2e0661d4ae1b5743d1c2f9116c0a7aa2d6c778a21e2bf691a9
|
||||
NONCE: bd3456b0dd0e971451627522
|
||||
IN: 3d17e3d9b5020d51295f7bd72e524027e763b94e045755af4b3cc4f86bce632a1286f71734e051dbcac95780b9817b5f1b272c419e6bc00d90c27496ac5ab8a65d63c2ea16eeeebe4b06457e66beeed20fc8d23a9b844ba2cc3eb3d87e16e1230fdb6a9134bad3e42eadccd49baed5e03e055f389a488d939c276982e4bc77f0a1c738fcdee222e2641b06fe12ed63ede2ab2fee3c54d7901d0911c32980b7c663a67d35ece23136c77f8e4536464225ab427d937e7a4260460d55bb5fdd7ea2f105604c4b0cf129dec49b81b1
|
||||
AD: c12d1ffb08acf27d51e63f5c0e311180b687438e825204074d4456d70b7c5ba9903ad0b0778a5fe36c3e12e82718c00f5d1ce585e5c73b23d6c5e41ac4a180c97c9418b07ccccbfc58c678e97882ea36395c0a05572b4cd25ddb3c32fa580c89c48a0e3066b8032e3823893a5721a4fd1e59c7d012a01b9e9afc12f3bea93e9d1a2cf5cab26e064576b36bb65606de62fe2887ace0cf399dec08da618954ce55362c8a2bcf31457a1804bbfff68a76d752f9aea81be8868bbca8f1af3375f7137941a1924b8a2b178f06a9e33f
|
||||
CT: 938f8f596e17eae6920410f602c805ad9715833087e1d543eb20b1b313771266dc6a8f86f2ba033609fadec92ac38c1f1f0f728e568fe8bcecbae2ade7b9c4128fb3133c8b4107ad5c29cacbd5937f66905e18cc52d9239c14e4c8edbb2db89b26f5f4a9ff0f2045192fd212af6c65e448834580deb8787b612d6345466483dbec00b03fee4751f543a6155f2dbb745c1094e9721aea3e544a894e4a19a14645725cb8fdc21d259e086b1e411fb1bdb11293d0224ada25da2896dfe0d35095230af6894404d27d901540b0ec35
|
||||
TAG: c55c870a5eac5c0c774dd10dbadd3fec
|
||||
|
||||
KEY: b262f6a609c4ad6da3710d58530b634fd7bed875956d426bf4b2412209902233
|
||||
NONCE: 0b455031d28e4e17a45b7a60
|
||||
IN: 9cff6ec8832bd0e62d9063e43821db6a1e0f3ae7947ab4d029643b0e7db8224f8bd00a2c011b246a4d5eccf9801fb314aeadc0532fa71cffe188e801d7c045e81b9dfc5cf6ae1e310b363adec4e7ca52fa754ece2540545a5161eaf9ed5748070b6e232125fa8e0fb7548fd3eed57a6be72ce0a9112f166776816a0a4ccf8151b6b93780875d03ea3d59ac57e7904c83b90b7666de85f055b25f9e342af4cb04b0c3f123ea0906c04f252f2b16b28d612e37b2a7b788d66beb8b361385efb73a825ccfb1a5ca55d60afde0349e5dad8096c7
|
||||
AD: fb99bc661b51464c0df92ba4f64c4c56d601622287bb1bf8e0a082ed3793e74db6a2f5a546391ef55dc45fd2f24878834bdc2903054d9d02ac05bd5ff122b65555d7ab1664cc36b630039e4432315445f303837e57149fdf6bf8d6856ba97abc5a18b6cd2f8f28cd3ac079355b314561c50126812861c39180fd94f9aa24edbec37bead760093d32b96ce30e389f63b2b271fc051b42952b3f5cf3950def581f7cbb2b4aa5b151a16ed3773166761232c106d3ff57851895640ea12befd69daadecc4122b4a481e85088edb093e02d5d3d8a
|
||||
CT: 5341e8c7e67303d5374e3f5693c28dd9f9a5c9368efaaf82d900b4a4ab44337f7d53364544bbd822020d79443e2ab0fd2381bc73750203caa3d28858a8f9a6dba57a7c5248361ebb152a81a89c00b1bf49de9e2d08c0243b38eefe316ef89164b4907515f340468291e0b51009c9d80cf5a998d9cd8fce41d0c7405fc2d1854aae873f0e24cfad253ee07d9f4cd27080ee8ec85d787459080a06d290e6e721d23738470835f173ed815f1a15f293ffe95ad973210486372e19a9cc737c73928572cbc03f64201d1b6fd23ebb7b49d12f2eef
|
||||
TAG: 5e0ac1993ceccc89d44cfa37bb319d1c
|
||||
|
||||
KEY: 9b4387e01c03d2e039a44ca2991aa8557dea6179d19259d819d70ab2d5179eb0
|
||||
NONCE: 852124b4e04d7d1d63743d74
|
||||
IN: 92c6f01cd2cd959495bd8aca704f948060bee01ca61c46005b4db43e2e7655af4c0d96656cd75d904325ecc325f5fc9a5fff3eeafde6f81323b0e3b64269028cb64c9fbe866b400e76487f1759d6ab8fc66589e23df0c008974e1613bb4ec556bd1a6a0751f6dbbbaeff219874c57dffca59a955e0aae62e8fd6a904a50fa7eaacccc6dfd4a2b8c6c040505d3448ed2217b7024224bbc4335c63b2ae8172d7d3088b819edbaa17991a4729bcd5a456cad20ba20dbee99ae56f8ef669dff93c99a995c8f5dcb5d113db4178a49516206a1cba7d872682b1
|
||||
AD: 92a1d2574182f850e37aa62338b19f403fe99dbc7ddbe1e6524ac67c4092cfe296b5ee9b94eddb5c228c902c18ec1ec26e1ef0263d05c5caf1c71ed9e5ff987e9964b46f27be05a83e20867f1f2107db26b6bc7066af2b0efdcad2b65f2ebe8b31fbe2f3c30171f2e4969f1650c9642ae47c8db5bda47e57e8a9af210a6fd4894dcc2934b4ecf823cc841cdb3c93ecc779b455b8cc796d7d60437da201c3f848dcd5f45e88973e06364e7cd01afd2d49fd3032550f1c1a60c4ba48137398f4d58e5fd0093c06042b103ce0064f2cd1cfdd39b7440121d7
|
||||
CT: 28b87d324854d5c9c6ebb303fb802b12d946ed681ed5b3384dce2cd782bfbd022f213f193bcac579176440bbf2af378b019d21dde5d70e42d257722d15417a9fecc8e56430551ea3bee798a01faf74d0fb09be6dd0c14cd03feaae29c7d17581e1fda0b4bce632ef790202e98c8c4f8f842fb3e33b3fa5e8700c8644ed6d64280652bc2a5d40b3ee0e47dd5a9f3535e15b1fabb30264515afd4f9b1caa5c224574636935baebf6d1992bf1a7a3d698d457db4248a2b38a803837ac4fab7998722d52de61bfab4f98e1933a77046bfb3941bb7988acebce
|
||||
TAG: 1b07d58be48b81f7007e5683b399dc28
|
||||
|
||||
KEY: 9d36155d429b90b5ff22ded128c9f0cfe77ed514d410998091bfca4dce7e3c88
|
||||
NONCE: a7b73ba1b2b0e846c3f635aa
|
||||
IN: 2510210b420b12300d51ee4a7ad233c9c97d71672c0f9a7b9041d32172fdf3a6ce274aca77a0db6961d7921d1681ede2c1088a7618382481296778e7f56d2c0074c7c545ccda313495ae2a6dfd042474b07d2b59c79a0cd8c3dc16132beff1687111a48ee3d291ac556987e73c5a3807923c2deb3b9a59a135a8fa0d85d5b39016edfe0649dc13be672a639db58839d3362eaeca046767fa1182ef8a63abc104e7cdc8610b1e956aac89af76b40844a358fe6f7343d217e1838aad19587ab4b1c765d2cd7bf7018e338c0207d4c9dabdb1625af0c75749e9a20a0d8d
|
||||
AD: 39e96c8d824bee306189a3bc8a8d4862df55e8016726222a528d76de169746a363e82e82e359b774d061a6e98e3c35aca8ba802a5956a2c512501fed44ae341cfa65ec9d95485763d99cbd9aea078ce551f7f82272bf54dfb6420ae7653f275ef145b2c87720c9ccfa56bd286c61cb822d0473dc2cc3fa22d50fd16bc0358e7c615aa1791b990f30b1d737f798219f4446d173e80fa62380dfdfebdb36b1284a62c2b6638f28fc370034812d09b57d27e5b7d589075bbab42fcd6a91fa2714538be6286e4c7b2657b80f045df7f8954738efa7d49a38e5a55a2af934
|
||||
CT: 8cb991b10218bfefa522e2f808dc973620ea391623947cb260b852efd28939ccca4c8b1f02d66fd6d0d7058854fac028fa0f23e8de801ed9a4361bf7e5a23e6a7086624a64a29815bedd5e5ebe4d9f9386d47e1408286971654b38ff8e5dd1fef7686d7614ef01900ad33bf97896b4ad02e7445782b1794b45af967ca3ba72a2e5cd5252a9ff0ff550ee56fdd8aa555bbb0bf8a5dd534fd65b13235fa6650761dfe2a28b2757077a2680ef88c84eaada743d1f0d25de38fdd1974ffc07dbb9c7fa67cacca309a10753c6e2561c4784470f5c7e116e12070fb3d87131
|
||||
TAG: 665fe87506f8df07d173fedcc401d18b
|
||||
|
||||
KEY: bd187500219308edd6ac7340d72813ee20054d6d4b1bc2ebcde466046e96a255
|
||||
NONCE: aab93d3181e7a04cedf17031
|
||||
IN: 55b824816e045702526f8b5def71a0d023a2e42257fc1e06f9a8531ef9f7717474ba4f469e442b471d5da6e71aa635a307205c0a935a54b8a59be8856144dec435e29aa1a3568073aa6bd3439bc0f219fa1179ba0a316f7d966ea379da16be4db2f1fdac2fa6d00bef9351b78bb2773bc30ddc9d019e6e7d78dfaf38010080027afac33e751c0429ef6c70a1f2d01f103482818e9353e39a3a4b785a7dd2c7e1ba7a4c36a5f3836d5465c002bcd1ac576d90ad276952ac155dabba6873e6d92b5278280a540071b205ba99b77b7568862e70e6ddbd804906c33fa130f8b0862001
|
||||
AD: 11b35743bbcd0113d2c188f75d382df44e874a2d4b3c3148ecf8e0406479305f29197a3a71dc7bcd71b6136ab11a7cf46de80140e15046acfa18774cbcc755e9f3beb37202fc308c03b1c20470b3128f5b91d925bd6703dfb3277d65159688f656d5ccd83d2beadfd778854472b1cb8fe440bdb7efe806f4cb95249cddf69fa0013dc5a626eb8ab69a48b3ddb1a317b35f7772f711221cee1cee9469e2639c44448c5942c95324dc2fcfdc952e05aa336ddbaf57cec2d1b33981ecb8f70ccd34a279b211c50a7784906f2981a2d2ad8fb130100c4f6bdb09c95dfcf4b0eb7ac6d5
|
||||
CT: 1e99d06f82333ec8e4fa1e81014458c81325e5d69db561449b153727da35c0b540c570b60488aca6aae58f75f84792388d0160dc45e4e5bef552c49228d806fcc22259f0f94da2f786cc94a3ecf3cc15ac67719379d86abaa54ce41e868110ed2b56dbeeaad4a444eab51a96aed404a4f4b9677d22345fdb67ed0df091d23d8acd70bf6cd29f19c99910888b3281b65637590af984e493ac70011486ca88e72fd14ef1cba06a50070f138dfaed35ab12690a14b1c8ac319f597bb690cae28019d64c868acf9a58fde1d8aa18dc1ec9c3c4a0ee9c4cfff8912b1bf23c805af6df48
|
||||
TAG: 1a43147e6e097a46b61f8b05c7dbbe1b
|
||||
|
||||
KEY: ce53e967bb4675a51652a9e6e87da6be36d16245c1e37ee00bae09cc30ed8528
|
||||
NONCE: 0f53ed18bfdd28918c3993d9
|
||||
IN: 3f2416477ff2ce7da3e5766f043e7a06ea2b87fdf06320d296c71cbaec4b115da356f8c7f34220f91e90c97a5cbbb7fcf0048fb89414eddeb2ec1062d08cc75a39a1f9f214fc3efd6fc8e70d78418007d7d28944b3f37fa5667ff79098d7af36a9324419b53efa76e98a311e1436ecedd977397cd02cc8d377ea8558edca35ff4c71ec31943119b76af4c78a435033eafe73c7079224bf2328b49ed58acef9b043ae3c7ff17a66b521e190d6ca2b2835ed8edc2c173f04616af237391a4440fc5306366c834f6a504e902dca6d3e9e1554088eaf5b15db7fc1fa19f0867ece90ded639ee8072
|
||||
AD: 64a596ffca0889833fcb537f58d94791f9ba9b6b7ce0c7f144f2f1a95d62ce334f7bf7f0d2ef0c6e7afa2324b069dc6a7a522f19a001c335cc0252ac4a26079c3f267cdca1e3f933069f52fe72e1a00c83d8fcbd2e76149a912c7b37663c2e7967a3a80656c87094d349af6b9d64b3873f467ed376eaa1e0abae06180c847e981c6a12d32b580acd34f779c343f8b79df1b5004d333a5c37a8be7a94c6f6400f819ffbe6d54d3c1a92824fb15c279fc8121c735b6c42248ee22e665245966d40eadc51f12904cd64110d69354cc9d9fc415b3469317d5e4643942dd4b649de0ee2fc5d200701
|
||||
CT: be462da8cc9d8cdf343f7025df0b8b41c24f7b6060cea2d3c63338b6c3e83f0797e966b8c5dd889bf1b5058fb4d694be2178fb33d9be1a351812046a6d3bd36c84ee3665d39fb98159e4d30f8a25a60064caf980f744fc519e2dc451f5fbcc0834b72920d32f0492abedc1022b0db4f2f44b91ec48c588334775fac91f174a4714b3825e96fa53cad3de94807f3b888950c8776189cc18fdf379cdc9d6054952c6ed2b3fb7f6b49beebacee7ddcb19a3eaee2b2e2b7a5d6476e5fc1f216ca443b859a9a661dcf2f7709f87361186368a62f255d78150f09ad4ab1a20e7329f3d96fa2a33cbf6
|
||||
TAG: 1cf74908f6fbfa5b2b309ebeff2f3ad1
|
||||
|
||||
KEY: 093d932ed969cfae63f07e0c04c7f9eaf1b36f656095f8d5f112517dfc430cdc
|
||||
NONCE: ce36a837ae93a280d2fffc63
|
||||
IN: d9da99635f8d728843dd587cbb24e68e1df2f81b5f7abfe233a224cdbd48cd8b82da3711d2ab6c1ca722610b87f426a2cdee4456b50781e3b25da037ca636f2a5eea01f4eeea52d0feb7f1f6c2594d63d8c05c2adf339839449cb1d2aca94852d1b64b5641a572c2da02ebe299c7d1ff4da8706f44b14602f44c0ced711fc78005f87b1686106250d3d3860b67f5b38788db1891150f88d4c5276751afa0b2e37a59587cd8b718767455e65eef25bddaf787d52b88556710f740f117b02f244edd47cf0e45646d40e789671ae61ab06336e24fad8b64cd8f60b427ea1f58af443c6f55d54028edd5f40d78
|
||||
AD: 5e9c95c3449cee3f9f726be031089b2358ee92fe7b408b355739c8da6369304f3b287ca60dde4685bdc59879e1530ffd8f6589449196abf0f0dc6dcd82ba7fba481f13376cf29b32af2ecca24a161e6e57b6db70a7e02ee2154cc0bb5280b08f8dca35b1a342fa18b8025c7a805cebaed99e30b43c139de7c37adc25b0b6b5d873ed86530622ef2d0ed3ab19e9c27df98a4a15324f902c35a23adcad4598c6e990c64893355be15fa7320c1935b4ad3c069c068d6b3c8f43d6fe0588b59170bf567ac3a53a50db68e4be17964f55acfe695638cb5fdea5c40805334a385c2d35aa836637ccdf71390487d9
|
||||
CT: 40380718f069f44c88932af22a10f80513821caa71fd7a9e5c4f37e1c756c43fe491ac13f244bd1299844cc78d7812110f570b693e63614e639ec7395cf65c206eb6fc9bba86f89d03dd19e45d5ec64c7d3a308ced4ac1f59cf4e13be64e49acd9ebee209afc508c97ac817f1367629af9d59b0cd48f138d23abb61f92dac530351f46a4e7f70ac87388e44f6e9548d3e6a26884bb7611f632da7db2a12fd9174773e685df316ea9401d8b352135b6b32a374eef8661b77eeedc34fa4178d0a5731ac9bfc14bce1dfe96af095b0088371ab1a04b2062625f0c4fdf01fc0a6bbf1661cca11932e93690501a
|
||||
TAG: ef7f960b146747ba4f25c705d942f8c7
|
||||
|
||||
KEY: 86875efa72ec1827f133a8935193292463ecef801bf3b461c96b0312cfcf32e1
|
||||
NONCE: 738136465c8935d77c8d4ea4
|
||||
IN: d692d3ef47a5c9d0d9a3b6a0d498e90a3ea06278134ce90cc1d69da2159d9a1f5d0a9ef4b4ce5f873e26e8f9d53ced79991491325ba5511be4d9e6563b70459b10e60d8c5da45d3b0b34dad86772b0560314f0215bef7b55c6ae53999cb2d6a14a35b50fe5a1598adb7ebeee097968ee7624bde42862824900c8cb45b12785d9c4d50ef38133d31a66a612d8638008d03edd19c4d7edb5f9b9f195c60883a7d6aa85bc3ca3b59c395b85dbe9bb30ef6896c4ebae8d72cbecfadfa451bf36631aefddd3feb36978aa8d9a45c9fa09bfa0b2c040d9a422840e68f4dcc3eb902f6be1d91b11e1749183d89715761b6cf22c
|
||||
AD: 17208cfe5a96adf0ec903c7618d994492d3eb77275fe5bfce5ab1f67d27431c7746314e52934b8c44481e5760cc8f6b0e17d1fcac7fd5b476196e3152c3dc90adeb58c2c9c62cd684b4b18d4a94f8e5b4336ed3f1758b58a254f48b3aecd9cfa63cf758f2df54c52eb246d046198b6eabc90b2a0dd6c5323e915a117235174fc9089cc9bcb1a3bb49080cbcc24367e7f4e17e27a2054bdda0ad8996df1cfc6bcf43f70cd854f4d97aaa4badb5826dd86765d36a2ecc83d3daaf31594eff02999a423185356d693f26025a576037336c156543353423dd3b5da75f45e297c60dd8e091b961f60eb6786fc988f6324f9e8
|
||||
CT: 55f48dc2b6836b8603e19264382ddfc568b1bf06e678de255d355fd865ef03339f644312c4372494386589431d4ae7af2eaee5dd3c16340ecae3e87dda9220a5f9b9fe6cc3eaa226d9608385b7e8a6216e7da71997088eaf7c67b5402be01c0b182383ed3c0e72e91fc51fc99c59cc8271660dd7a59ee0e7d9626ccd4439bb9a1499c71492807f8126891ce09451d07d9c5525c5f185559ec44aa31498be3fc574389cf948640dcc37d0b122249060bb7d5d7e5194d4b7a7bb64d98d82a1155e30970a854f7c0d294fbb1a9e058f3b9f4762972c21086e0bf228768d0d879a9cdb110f9e3a172feca7417d48b3fa0b0b
|
||||
TAG: e588a9849c6b7556b2f9068d5f9ead57
|
||||
|
||||
KEY: e9467b3a75dde39b0dd44e7cbf2b70ba1757ba6a2f70cc233d5258e321d5b3ad
|
||||
NONCE: a9756c7b8e2e2f4e0459f1bb
|
||||
IN: d6d7f6112947be12e7ec8d27ce02924503f548456d0ba407bf23e848b9ecc310e4a0c7b00c0de141777a94cb4b84a5cc34b2b05c8a37cda08b6c2dba80e80853f2a18bcc41341a719f84262b601610a93721f638a8ca651a2f6c03c3cf1070f32b92c4ab7a4982a8f5e8ae70800f7513405f3ae28ba97a9ce8241608eeb5351e6cef5560c4209790ee528b3876896846e013a0bd3a1aa89edaefe08fb4b73b3fa64c0c8b0f7ab70653ee138456319230174f0f1f7f3477f0cfc80eab8a96e29e85e20658cebb830ba216b1d8281ce499f729278dcfeb59cde3a043ef3fe2c42705f311a422e9f80fc3b58ca849dd4b99e5e66a958c
|
||||
AD: ccab7afe4d320e94f77963d779ade1343e66ae80446eaa5f9ec4d3e3bb3166255e4aac5707ab407b284dfcdbb18ff515cf08790f0470cf335946040438c7de2d2a342096d7607e1920d86b519e96cec1715f4b0dfe375c5959644bd664d23d879b825dffbbdc458ea9da5ede5682ce1ad1cff33dd8820761b1c067cec638873a3cae79c7682ee8d4f97cb96a413dbbded1c242ca669d50ebb6de3c27eca3041fa8aee8974c3d17b0cf79c32c7bbfe20dcfd57303cc40334fbdc43e925df1d63fde57bf60553d7790fc56bd95e675db934dabb1125eb97cded95f397b32bfb3a2d40703e3f11c6c226633b3cb7f9da1e3367de2ba4d
|
||||
CT: 47bb258ddc0945079a0b99ed5cdc0186f453f8e0393cfea258412e423dde4a00c014ac298c4dfe7c03b0d9bbd4ad189624cb6fbaf13e60ec2b4d83c5bc3294dfec30bd6c8f7125e11d7be145a966dfd78fd77af68099b855989fe077cd9f427d4381b4930abc1daae55722540e4bcbe1b560fde208ef1c2dfcaa2c51b76072e67da311c2556eaa2c25413bfc43d00dd84aa8859b296e05945683e028699d60a29227de1363c4138b9ec2db8f3b502fe09d368c5f2ffd81abe50cc1ec1ef216f27f401456d061429d1910623af00bcf500cbc6509c5aebf7de9c956e40a3f0b0d562775b03c282c204e33c0b380ce1475eb5c0441f6
|
||||
TAG: 9ea19333f5050354a7937fed68e38dd4
|
||||
|
||||
KEY: 4e323dedb68bb5cc4cf2edfe3a54a19b410f849492ed6f66fc053d8903c3d766
|
||||
NONCE: f77b876eff796db621eabe88
|
||||
IN: a7514c4111d7d8bce2d56faee25d9f5fbb527162576b444fadebf42d48d2631cfed344b0437ce8a7609bf30bf0a44aef172f8b12ea7567cfa5dccbd08bb3115efec59437ff02e7128df9d9e5193794373e30dff7b3d8ec0fcd6cd3872d755c0314f1cd9cb996e4c6ca8ee2e35f9b64a1f0bd1669369f9b333a356ba58e553ff9bf9cb6c5522599dccca2f7f57a91006e7dca4095d11955e5aabff69febb98a408aee92293c0abc12ff23482ebe9d541bf8fc7493eef2c68044dd185eb243b54a2bad9844d831d9b0766a0ef013ad3ac03627b1feeb287e5e61875bb1d0a01315761bae6323a9d678cdcd3c4a85be71b70213d081b348c63fc603
|
||||
AD: 9bd10dc97ab5e9b35e1c8c36ef37f90a11bae7dd18af436fa8b283eafe04a5bbb16bede6ce1260187299ae6474628e706cc08b3627f5243f1a9ab469455666e6d5f2ab597b6799bd60a365a9248341decc36d473fa52ac5ac469b965cb2023d43b437dded84ad49de95a6dfc6ae4bbefaf86f9b06e3a33ec90d32ea3af541fd2c43387c75dbd94d44b9582e8ea41afba5e49f1d158d48e979d04888fbd42876e12bfd6695cb99640c537f2f9223d37cf6b627207b9318bd1f4c64556b5db1101c486c53dd8dccd7405e148d6d9b38b7ac875a44bd6df75edfa4da8594a9c43b223e7a6f5b81a5cb8dd6e06e9a976ef156e45520af332e4d56035
|
||||
CT: 9885d7a11004ec546955fb7a8c77ae57588fa2e7fedcc8e9000123495b9016d1a101fec1e6724302e93eb8e01bd05efbe8502eb97b1064bafa9bba5658b1677819cec4998dbf02df1f1eef51bb3e75c19f570efdda98b0b8dc5dd9250eae8396090ca9ebecdb90f32c5e2085e86b64e57464d251af62d9f8c01d7bd6cec5f9dfa5eb7c4cd412077571bd071a4eff5098883940d63b917c08bf373916cccd7a446abff0aa5c687518703c25cd8d3c5d724f348e20be54f77fd18dbf6344d1d25c788ccb5a5747d575435829b1825e31f9e94abc33c0d2750fb62ae167a7a74fc9e39db620d43e0b8514d5f70a647e53dd5764254b7785b1519474
|
||||
TAG: 936072d637b12b0b6a4141050f4024ce
|
||||
|
||||
KEY: e57e74595d230e8eae078df1dbc071c66a979a912e2252257e28447e97fc82a7
|
||||
NONCE: b613d6d5fff507e917674f2f
|
||||
IN: f1ecbb2a45f04ca844616528b10ffa4d2c5d522ed4ae3366888fb371b6ee7eb4be53c8204783e43265931f58f308623f7b2733384c173540aa0bdf879fad0283c2be6c42a7b4feb2b29265fffdb518ea77d33507dbbff7d9921bd97fd27f1100402e02135f7df4b5df85f7472fa75618facca3e24d487453e831efa91242e62ee9d32880bc20f7ec016eb12edb589dc8a669f7c78375f915d7c2b03457b00ac2aceaf37c0369a85c3f6fe7c0447c022d66bb5acaee62163837a36e882cfb8579ba9182d3153a25623f339758ede5a62f67b199fc8abe235fe4b607a6804fd4d15378c76e0c26c1edf1cd637b7ea59edc66cd5ef9b8cf79b95ff89c235ab195
|
||||
AD: bf4c0737e461c1d6fc45b87175fd7833625c98a03e089c4e3d47c6b21f4bf38cb4b7666322217eb8fa022afae473df56ba3502c88cf702276bf39c6fcccf01e629925a83816a5096e612458af6380dcb7f63cfc0eae99d63475616b18b44111a1927b05503c4ce46ca48321b0f8f247a54919fc844fbabd3a2481e83bed8a5ee8086d7559db00fd1d64f4892ee9363d59829ce1e10af66696c28e86297b43190800251f346bec1b577446120529d486266a271c71011528b24ff4caf2c30f9748a2b03c788dd583541368a643075a52127c48b3b6f0c6ef413e61479c9afdbeb4bda44340ff0d81c7bc0321d3de4080cf7e108dda3fd4e480e685b202c6bfc
|
||||
CT: afb2aae2dce03cb0bd3467447ef6895a132cec06b9f7764ee24d90078660dc820b8384c01375e03c20a6c688a780d7d7fbe5837d477e8f3d7ab3ab865dacb0eedb5694d3276ea914a421b03b9d4e4f586227a3af7e8d5d579bd832450f038eaa7bac57aab996df55367ddf59b338e5d370e310124e8ef43c9fe54e5d23d60023aee266054ea66c9f32170ce97998b527073fd178ed4e1752cb9c515c0b32766b363c39c513c2e9ff6d1c24807afb43af3c5a317f1536087d8576fa3be3b007d3a77ab0422303cd0b142c4ad194e1bb86471b91861235dc336dfe9666f4f2c6a32a92b8fc52b99873f9792cb359476a2aea21996d21c17ab814de4a52eeeb33
|
||||
TAG: 05906cbf531931559cf2d86c383c145e
|
||||
|
||||
KEY: 847eb274561fdf0c1af8b565a92da74641f17261a0ea4cf63ba5f36ba7028192
|
||||
NONCE: a379511688390ade6f0318bb
|
||||
IN: 1e588cd0636f34b656b140b591a9adafb8dc68d0abb75531942e3c6ec1d29e4f67853e3d718dbe61b733490525c7f9ce6746f8639e4d271267a95f0940b3406c67ded0aaed36374b9a4bb8c753579051c6dc3244d6126a8a97d4a912569ba139d55dd00c380e7ec450d44f6c7b9482c2594b21f61ef8d165666c830867139262be5ad3a31f44a286d7e86d4e5c9bd6118147efc8e606c522ad0e9a218aea4daa39d1653157e4c3730240fff67a42e4f34186de1c13ddcb1e44020b7a31d21ba6ba96b3f42360dd1d754a7bae75b6fdb6eb3c76412cc1fd8e900d7aacf4d897f4224f19a1d44a77e06c95eda5fe76b11c6f5088e8ca75c87e07edc64c09a6a31371552449
|
||||
AD: 331d48e814f660516f3a796b08afb1312625b3b17218819cfdbbbca4c333378b57fd93482d971992b5b15b62f0724d6e7b9beb5ddffd3c70b6f8bdd3cd826663eeb91d37734a686c987efeb4d4906b80c5378fcd07806d2dbf3eb528472a110743df8cd96b6eb67e98b13ac506c9bda167f045a412c93d78e860c9b4bbd7a2d71adbd3530f30253847b4112d4b898b520c7a14fd075e62605b05084f26fd138179c2791fd6e8d3bfbb2735002ae12d986f92d7d300fd6f1dc12c993449f8522f6f32f506a677c8a981aef9815e83019713b2f9943acc8d5b3f6f65b9e2b9a14ad2e300d636166da2d35a6a0a756a76d08709a043d65341695490124971a7574cf0b5845a
|
||||
CT: fc1f0d7309e6420b42d59740c9b9d4b97075b874015251ad55483068b00f87502b18182b140db07c70a80fd884fd79b7b5fef1d307ca4db0ff046494443e1cae83478d275c31402035f1fc24e26214b78d9a4dac78d074150012f9fee810a121d87a16d8e1eec5700e9facba350029788480a259d9f30df1c2b8df7691629314391719853c0b68614134f6028865700b1fc4e7f34ff28f449c6abc3027f38d7a7f6d84b8f27f7cc5afa09478c809eec346bb58244ab42a3bef61a14ae7640d76591343983de9fe5f1b985ce56c9fcfb2e3f6220779ca6f92a6b8aa726573b38ed7663ebe4c85066ae3f488ea3309593fa41dba8efd2b8f44b9fa8f7a427823c1228093a3
|
||||
TAG: f1832022e06228c36181856325d4eb68
|
||||
|
||||
KEY: 3828b138f72f8fe793d46c55ad413bab31a51e7a9093cdd10fddb4739e28e678
|
||||
NONCE: a60413c0ab529ccf3de58468
|
||||
IN: fec017c1c51da5ce9dcd8e84cdc03a43145b31edfd039c7c85d8811a2f58efe7a2d7590149a98cf0b5af82d3e0a325223bc9d5585ceb1afc4cdd96024be6c8064c2abac14f68e65de49e25e3e967500ce5b4504d00a9cbad1e86bbdcf65c01a7a92de27583b7b92122b6a4923b7192994a1edf00b75d14a982f92559dbc2d5e427a75ad29715375d90193ddbb39b9a52c1a23d75629c539e0a6ce822c7c08fc77dcd3adc357893215df4694673a16d34513de21217ce86897c8f0575d213ce0c66eb1d1985fe73dd86da3ab5e89df4243e1be9dd95af94f878995d02929ee42a062100d6d4d3884730f54593d5ff7b7ae53e03d4f0e10f6f4c3077206499ab7d4de1e825d532d0918f
|
||||
AD: e2b16ff2b6c73c9374704ffb4cdfe7bad9eeee32157f2eedf427f99c2cce80c5aa4d9145e85af0cb08e6ed477cbe79ee168ded5c0895f9f4f939c21916b3dd5c9d268b3aabdefb85d953bce9b70732fc9acf6c7b727f78d8c9aaca9e022d7cf0f95583e81744227d87fa34ae19de44d202ba01e3d03993f38c9b2fb00b54dfb677d67e6f5a15f46c29eb5597ae3d5384b37bbeca3f3d825e2b7cceaaeb36a8c1273062259608956dd0c79877cc460d0268de27355e34b9d8d1188c062ac5e10a73f2d70fd0636304b3de06cffeedd246e2db19b8b66785f9f9c62b8f0198f29d37a4ab5280f4aa0320559810f89a1618844d0ad5f3a4f5a0e834ab31e56798b7158217f834d372c36f
|
||||
CT: 88ea11ef6b6ee6fb0be77bcbf227e77508922550ef0d7534bf05668ae5fcab2f4defe643747716e7e000950e36c6cb24b79987389a150382c091d39ddf841b0a5e31d763d9c59753a3ef36a23b81f38e6e715357395ce715d30c14d6ab5b7454804ecf633daa39b6107f562fae6a646efb25c1119dd17955bb9e640105a21566345408f72f2acc8f2726a0be465551f9ae566da559fc0b92c36764c5ca20a18a316c02e606030a53450e7ae1146050a48a64c600d33cb84389b0bdac7ff45d3d1f2f669a6e365ef722d76d2fe9bef2df93c58bbdd6965e18111b5de0f4a62dbb874161bf8adfa61e9cdecd97b4fff668b3efeb3e32eeb929cf58d94ad8077c0a2ca79e80877c5d9329
|
||||
TAG: 9b47afc5816b7229213cd3c9135545ed
|
||||
|
||||
KEY: 91ea63dc27d9d6bbc279ec6cecdce6c45ff0b247cfb8e26b6ab15f9b63b031a4
|
||||
NONCE: 80a134fac73eca30459d5964
|
||||
IN: a848e41c77ac8c733370435b5b6a9960af36031e96260d5703ce15b003606875a7901cd11e4571bf88dda29a627c0b98065a8b4e6d382852dfa4f47d86fa08e48ad8f5a98e55c305900b83200d44029f304abd21e0264115192a3fd7b0eb69b9f8ca7865b3be93f4ba5a28468fd7bbb584c32ae867f5146efbeb1412d3ac36c30cb308c327a6f207e30f561d6efe0a535446c693e14176e9e714ffb5a5b1075812909a362a6c4bbe18322e15690c2c9cf5a18e0120c11551cb7055b5aee97e7a56d7c24fdf1214641c8eacb196d74f3d96a7fbecdd4fe52dc7b6ead9041cafd5a3fdf91fd3614e63189b488d4d7c1ea3c6351d112a2223b29d390ac3ab7f09a60bbd3df6e0d606d902aa44244334
|
||||
AD: 47940a0694183b2fcb5e760c9ef6dbe4cbff6ccf33208337a981138f9d35c03f8adbd810e94636acaebef6791b531a65e99b03fc78e7eb48036615874e97cf762fa6ca5d880bb2c2f644f1aed70c667880f98834d501caa277cb8ef1095ff882e79c3a92ea8982abebf63ea9ed7e9a24d32cb81d5d98e891974e3d636a59e165984e00f05a040d33f07b39eccb924fb24780a422a6b2b7bddb5b316beddcf6fad20e4cee7d0141c2f7c4e4f759db8691dc7b8525ccbc3ee6071a2ead63e750d6d92dde7eb1303d5b1194702b6c3e0c2e6f9649e60eeddec9c1f71cf309af0672cd2ffcf94ba7e6c3d7cee020a224a9a956274d1d36ba16030e215d90a165756666eff066a8e51bf7d4babe8b7d8d
|
||||
CT: b90449af99327afb1124bb24f1c8b5cb878423b0370d5f7cd297b28cc4135ee77d6f1913a221cfeee119bafa873072bfa79e303fe377bbed05add41ce3a42ca4632b98f40a36227de1a9ba84d6176c01eca9d33d954d0ebdf4e40f136e0f6a56156fbb33b344a8a433941fd6e08774bd00075aedb0e396c2bc37d1250541248dbeb899e1b5170cdfeaf7b89995b049428bb277c501354f8cd48fb58f6f04f956dfd099c48778dbdbb4c95b7c9d6797cf6d3bcd1d00e88cea885ee4a10d94356509e148990a0e10dd89103a9d5c8434a7bdbed6c0ac1271e0709eba144abf3cf075c020e9f7835d5a98fb2439b399e377ae6e19fc5f32df9ddfb9e936190d3e9c62de99835249d1f32ca3f92ecd44
|
||||
TAG: 6ccaf7c142d86b83e4d0b4289b49c4d4
|
||||
|
||||
KEY: 1344db082889367fd48c5f06bc39f9cb9e3ad4b92fa484ccf49418dd4caa2e19
|
||||
NONCE: c04a98e7e29326b5330818d4
|
||||
IN: b0e12e3122c1ebfdcadded5a45163a6208548e9bdf95cfd18ea504e5d2e97372e58dbfe460a57b724d38f3bc0ce02a54015779bcf127343474d7d4c1402d598bee56897203b903da5b819e2218bd0d1a2af11c542544f02c46969cd2bfac683b76a8de61698ccba63361a1a0b570adf69d24e9a7e466873c8c12e25e0bcead7828386179a4d65d5bbdb800eb52fc01b67498d7b5f9864270162158a8572eccf541b07833f001848672098c57708eb479855799567c318b1aa097efa70db0d8a8d36fe0ac22ebcc2870baacac690a79e07ab286acad9f7a877939cf2989cd6200eb86dfa7a41e969a3683ceacc7c97d1cd5487f13c439a9777a67770687657d38267a347a0b6d3aa3cf64e7f31017246e4369da
|
||||
AD: c96db14dbc2aa0ce3ac63794f75c7e78037dac6763282edb307821a7938de4baa3d2e35a8cfe0c8724c2a8d870d0a462ea157e15aacc69a3c881d9c819225ea8be479872d55e655c897936c95b9ab340820264567495fc5e4e3354f42b84e191b470ca9f4d8fc25d011bf9c9e73e1590e1bb919dd2f288b26935fbfb8c93e54331dc8edad5e1cc4aec103c2f3320d59870c1770319f105ee790b704ed655be423e63ab040f1153f41e7070ae3a0f34d217c4649c180c84814463902d99a9396f8c7c85a3a4c8ae2f01737649fae478a40fc72303a108822775e9c421f945cc0eea992730790a9aa0c0d014518dab371b52d30b5a560f34946a9344cfb8a19b09ee9b123bcb8f642780697508f04983b790dd2d
|
||||
CT: ffda075dbde7b874995230e1324f17894689baaa7f1354e26100befb546ea23dc74807818e43a3cee00ec1bbb95c82180489ae5f3a1c482dec28f96ecaf5ca4655ff7f33c814197cb1973cf02a0b720a5c44068d8ddff0789fc1e7f20ef408c1a438133fce4f7a3e8c85d95a381b94e949ce47a85895c4be7cbfad468e52a160dee34b8ddeef2ab280eaaed4990ecec790ac16de3c74aac6fe2d5e28ea2b66a921c894a3971cee4a2158054c3567e0d941f867ded5ed1d21d8ab090848fb3eddfb1559bf11815db52b8eed871cfc117980f297da79da31da32de3f162a03d95090d3329da3662df29e6ec9b236e0f7c1d7d957cfd54d5efc99c694b9dece989912388254798513d881e5943ce830729a8e2ddf
|
||||
TAG: 81c55fe9aa2de0d63efe3f74a3d8096f
|
||||
|
||||
KEY: 31dbefe589b661af00a6fbad426e013f30f448c763f957bbcbaf9c09764f4a95
|
||||
NONCE: 147fe99bba0f606c57242314
|
||||
IN: 908bd801b70d85085dd480e1207a4a4b7ef179dac495a9befb16afe5adf7cb6f6d734882e6e96f587d38bfc080341dc8d5428a5fe3498b9d5faa497f60646bcb1155d2342f6b26381795daeb261d4ab1415f35c6c8ac9c8e90ea34823122df25c6ddae365cc66d92fc2fe2941f60895e00233b2e5968b01e2811c8c6f7a0a229f1c301a72715bd5c35234c1be81ef7d5cc2779e146314d3783a7aa72d87a8f107654b93cb66e3648c26fc9e4a2f0378fa178c586d096092f6a80e2e03708da72d6e4d7316c2384a522459a4ad369c82d192f6f695b0d90fcc47c6f86b8bbc6f2f4ea303aa64f5ce8b8710da62482147bcc29c8238116549256a7a011fd9c78bbb8c40e278740dc156c2cc99c3591fec2918cdeb5240fb428
|
||||
AD: 5a32d7044f003b2ffefffe5896933f4d8d64909fa03e321a1bdf063099b9f89752d72e877291d8da12340c5dd570d7d42984ffab5177824fc5483b4faf488504e6822e371dca9af541c6a97312b9cbf341b4198b0902cd2985ac10a8b5b5fe9691bb29a88344f863c980e4e871a72a8b74f92eef68c176e9d2ef037898ff567298e186af52ec62eb7429a8004ac46b945678b82859396d36d388ec3d67653aec35cf1da2684bbc6c78a5f9e3ce1b355af3b207f64e0fa73501c5d48a14638d0906c87eaa876debcf1a532c1475d80ed3d4b96458d2236eb9f67988863bc6d5c16b96b93d898683d248d7bc601b5035fc365481b89465e37a8f7dd64635e19a0282639cecde72c6b1638e0aa6e56f9c00d031cdadc59ce37e
|
||||
CT: aeab9db30a579ca54195e54a9e6c787f40100c6d12ceee35643f36ae45f618cc9bb66aa4c0fae0ec2686cb4101a5b23a46877460c7e020b38b0d8d1f533ecfa99df03d346bc854a578276d7d5685ad1fb03655683a64aae4159c9efa6781f053057e0811226c7c533967a94587f4025353b28cc3a2ce5763783b4c31e7818b8ad9195bc03be8f294f9f6ceac578f9d30b22b1f5a68d647d46cf6db4a9c3a8a5c06fa97c9efb4578f501ea96db1f40942e3f24c44a7e4070a6b931c39947d9692930b67767357015de51a39e46fff94b6019e4bc1ad9d216a571ba0dc88859c49d2c487ca657384e49b4d382d86a60c8d5195320909c4e82fc077a3b22bd4eccf0f067e66ec78eed642b2d16f0f304f60f1d9ba69e205c982
|
||||
TAG: 17ca09e3084504fc22e914ee28312c8e
|
||||
|
||||
KEY: 0ecc44c9036961fba57c841ace4ca3c547c51d9f126567bf41626765cfcbd53b
|
||||
NONCE: aa98b6ddff7e4b2041f29d70
|
||||
IN: e49a2a5713f507bfa00c140dfbefc0c43e37bcb932e0741db03f0055da61cd837b6e2d8f99115d70750fb23685a17121b52e98a37c87204e0207729fd9219d11a48e57970d790338793cf329f7b239512a44dd4409fe9d157f92123dfc5cba24af106442644dedda87e1d9e95fd395f2f0ad8f7d27f313e6ce1a07d9845dec5ad732e6e4749b3a161527c8ce42331f5de1d700650072fb68e9c7645a0e0e529d0563d2727e3fb38ed341f74ef1ad95a0216a440e1384d0e7ef71cde38cecdc9e2b2d563f19014c40c1f92ea0af3b4f6da9146d433ae85f647153db326a28ef6ea2e0ebac0cc1aff157067c7dba7cc4317d56920ee9deab5764368e7e5b3ce8bebd0fa129f869b15897c09659c53188bf8efb7b6ac7d265c9b85fe96166
|
||||
AD: df41db4ef5350d4afcaa88b4a577b3370b96699bbd73e59aeebca6ea856cf22694a9399ae7f97a3bec226d82f5598f8949dfb92530dcfe77770f066f2af988fba5543b8ba7655bc43f8dca032981a34a1beff695c6908169d475c55b2119fe5578623f68a9dd85b653656881b0db4006d3336fdfc784d1805e48ff478fdc196601f044c9d33fca3ddde2db0102f90fff0b370f520e00e3786c2a9b0b4a9a7ea6f9d866f77d870c8ef0f3a8bedef17949a32598512af665679dfbe71e1c3efc3dee8f5d4499e20dc63281191751f67e51f201973a6675896484527d66bed94d6aaceff65fbc4192cec19452b8873f22d72bf2f4981fe656285cb24be5c58e77dafd3e096166b230f18d3f4197fe16f6ec84c060ce0793ae6848311a18b7
|
||||
CT: b15b2bc4b9e8ecc5d9c4a6359a805b7590bdb4bfaa9b3fc4d7676d721edc4b3b1ef71b18a3d78f1b31a477cf25e55b278eb3ed774805ae8e5a2a0204f7291d9587663c4d8b1b744154f3b7cef796e0b91590161f3bde82f1d8139cb8d017606ae6d0552ba144788fd8caf435ab09a43a1f4057776af49bad98fc35cefefb159cfebfed76f2e4d18b7be143677ff8b3d6e2b440fe68475b5a1193bcd19ab157d0d2257f33de8e50091ea3388648c3410aa68c830566a0413d92454e4eff433c3edc74e8f7516ec17b2c01cf57a2d7c48db97b706b8d7da0b68051f2d6a87c417f46cf217a48611980890f669d39b478c35d834ed2c79299df2381a1215d6db303cb63e2795fe517649874226e0a6dbfe2c86370b9fbdd8c5de349bfa25f
|
||||
TAG: 7082c7ef72c82d23e0ba524132acd208
|
||||
|
||||
KEY: c05dc14b5def43f2e8f86c3008ef44e4dc6513768812e9218b2b216818c4cec6
|
||||
NONCE: 5cfe0dca6e599ed9aa89ba97
|
||||
IN: 8a06e2997b8e5f8040b22e07978c83c48d0f90bd2b2f8b426b43feea0b614d3b0681745ea4224cabcaa25ca45c3053a6300c47ffa4f72e838db135ae35c27939aad4cf7f75fb61daa3148d869057598e4e8b44c6fb19b0d9281e18676d8bc137489bb77a51a3a8f807a896d558f00040e8729ea9bbdc7db6102c8b99c8a1eacb0735577bc6533cd1d8147013935b6344116090a1bdef1f2e38a877a50c8fc0f394bafede31375c57476ba06d95ae734e6dae771a32e5091dff71d845c5f7385b9b9069ced12fcfea34a510880b088bb0016e94a5932c89baee038cbafbf06b3d09426afd2d5dd5e392636362e9ffa9186b5c753eb84f82f68fb1286ed06c58a5a936cad018ebc4269037b49f2ea0349373adea99f06062e5dbb0bf94f2883f5c0556
|
||||
AD: f2a3f7af8ea984bbd85953f14202c6e478f98d0bcaacd414329ec480d0c29fb4c1a052d3228c883928448f0bef12cee5b69829b4a3eb4680084131867cfc3d3af84fcc0d80c2292d3fe02405634f6cfb20b0fb90345da3a557fb30582175c32e432be66ad096f9425ff4060df54d6741fd6567a1e2fc5f6f3ed95cefc806ff64ae91ae82920b5c829ea026f83fd90d760e240da3c9ddaafe4d08507f4af1049056dc6d09657779a3dbd889d851e97d4ac60dc66df2d24979ba8947a7890a304bb301d0d42b67824e0c68fc882e90cb6deee50c2e3d9f0da59ab23c997b05635a0d56c71fc39aa0e6b19c43a7fe12d4e4145453cd7fbd8a3f33bf5451addf05052df7ef044a33513bc5f1a4cfc8b68015664bb5c8e4bf54a85efff109ee96af75d4a5
|
||||
CT: 2cf630548d6f2b449057c7861920308958199f77b123a142c6b7c89c4982f4ed0efa2fe899914ddbf4543e70865a5e683b0721d6c8443df2e697acf31e11c8809aba94196409020a7c64d396fe136826455aec973af23a6c7733cb567f5ea550e50e0b796623a97807d042855568e3c568990cfc818c31a1bf415337f43e9baed57fada2fb2ad3c3543f2b7f2777e03f84040c1c854c310ab1cc5dc7f2a5fb213af79ac068b46c7d9475bea126adf079e2100bb57904a931faf248e0f7d5832ca83ea8a283e0136979737132afb1f4ab38d307ac0774814f4d5ecdc4aad79185c05f8a706f579b78f2c1c7004cb38e6cd22c2080735b34c3f6134955ed3bc36b1ad5c8e33209c9f3c658fb07b59b6002b2526cd8d853a5c624b7108573d7df60c827
|
||||
TAG: 3dcdabcd1c82002a551cea41921570e5
|
||||
|
||||
KEY: b33f449deccc2ef0d7616f22b4a00fcd84c51a8383782f66f1696bc6405005ee
|
||||
NONCE: 6afa8baf923f986b5779ac6a
|
||||
IN: b0af85a6deae5fcaa94778bce015ce2da7400ab768f3e114cc1b645fb2716789e2aeb96894fda6da5bc24fcf2466124720d6ba99e5475d77e5bcf2c2f8c8e5becf5eb73ad650861bbdeb51ba5ee789c227478934200fc18f36e4fe392c99d4c3fe0b38b40d2e84f831b8ef9bce9ac1362c755943521ecf5b5cf8fbcdf08f2d47ff7cd62838597dd342695a1b037bcede69500bf70bf1edbb40a17b44695bd8ff8bc8664b3211a6bbfdcbd1bffbfb1a2ea0141cfbc6ac841c803b137be5eeb2666c46c09cc1c4fa82be43bfd56e7a2b8ceeecb6efc1933a90213a0e1bc7aca2af35f2d1dad5f0d9002561064a699f1ce76c39d9c2224ae596e88a1517e19c2115370768d50107f3f2a55051838ae5897acf2ac0814ccd864eee2f6b5d7a6728c6ac6e6a57327102
|
||||
AD: 2134f74e882a44e457c38b6580cd58ce20e81267baeb4a9d50c41ababc2a91ddf300c39963643d3c0797b628c75a5fc39c058d319e7d6deb836334dbe8e1fe3cc5704b90c712e1fb60a3c8b58d474a73d65fae886394f8b2c029e420b923f2af4d54c9de3c7fa2bccaa1e96664ccf681cacbbf9845069a4bfd6c135c4392d7d6be338eca414e3a45f50510718e2a5a3e5815eafa0c50172cf5f147510645d2269929843bbbab682deb5823d4cdf42bd250bdbd20c43e2919d7a6e48973f43a4cab73454b97cdca96721ebd83b6dbaaec7e12cf0dae678a57c431b81421657037dd47dccbee73a41f56495fd7c25c75744fe8f55cbd1eac4a174d8f7dd6f6ba57b3e53449a9ce7806517e3e07cf6546a0fa62c7b1fa244d42eee64a3182461792edb628e567b23a
|
||||
CT: 0fe35823610ea698aeb5b571f3ebbaf0ac3586ecb3b24fcc7c56943d4426f7fdf4e4a53fb430751456d41551f8e5502faa0e1ac5f452b27b13c1dc63e9231c6b192f8dd2978300293298acb6293459d3204429e374881085d49ed6ad76f1d85e3f6dd5455a7a5a9d7127386a30f80658395dc8eb158e5ca052a7137feef28aa247e176cceb9c031f73fb8d48139e3bdb30e2e19627f7fc3501a6d6287e2fb89ad184cefa1774585aa663586f289c778462eee3cd88071140274770e4ed98b9b83cd4fa659fcdd2d1fde7e58333c6cf7f83fe285b97ad8f276a375fafa15f88e6167f5f2bfb95af1aefee80b0620a9bc09402ab79036e716f0c8d518ae2fa15094f6ea4c5e8b283f97cc27f2f1d0b6367b4b508c7bad16f1539325751bd785e9e08cd508bdb3b84
|
||||
TAG: 1976d7e121704ce463a8d4fe1b93d90f
|
||||
|
||||
# AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf
|
||||
|
||||
KEY: 0000000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: ""
|
||||
CT: ""
|
||||
AD: ""
|
||||
TAG: 530f8afbc74536b9a963b4f1c4cb738b
|
||||
|
||||
KEY: 0000000000000000000000000000000000000000000000000000000000000000
|
||||
NONCE: 000000000000000000000000
|
||||
IN: 00000000000000000000000000000000
|
||||
CT: cea7403d4d606b6e074ec5d3baf39d18
|
||||
AD: ""
|
||||
TAG: d0d1c8a799996bf0265b98b5d48ab919
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255
|
||||
CT: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662898015ad
|
||||
AD: ""
|
||||
TAG: b094dac5d93471bdec1a502270e3cc6c
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbaddecaf888
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 522dc1f099567d07f47f37a32a84427d643a8cdcbfe5c0c97598a2bd2555d1aa8cb08e48590dbb3da7b08b1056828838c5f61e6393ba7a0abcc9f662
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 76fc6ece0f4e1768cddf8853bb2d551b
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
|
||||
NONCE: cafebabefacedbad
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: c3762df1ca787d32ae47c13bf19844cbaf1ae14d0b976afac52ff7d79bba9de0feb582d33934a4f0954cc2363bc73f7862ac430e64abe499f47c9b1f
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: 3a337dbf46a792c45e454913fe2ea8f2
|
||||
|
||||
KEY: feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308
|
||||
NONCE: 9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b
|
||||
IN: d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39
|
||||
CT: 5a8def2f0c9e53f1f75d7853659e2a20eeb2b22aafde6419a058ab4f6f746bf40fc0c3b780f244452da3ebf1c5d82cdea2418997200ef82e44ae7e3f
|
||||
AD: feedfacedeadbeeffeedfacedeadbeefabaddad2
|
||||
TAG: a44a8266ee1c8eb0c8b5d4cf5ae9f19a
|
|
@ -0,0 +1,575 @@
|
|||
# Test vector from RFC 7539 Section 2.8.1.
|
||||
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: 070000004041424344454647
|
||||
IN: "Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it."
|
||||
AD: 50515253c0c1c2c3c4c5c6c7
|
||||
CT: d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116
|
||||
TAG: 1ae10b594f09e26a7e902ecbd0600691
|
||||
|
||||
# Test padding AD with 15 zeros in the tag calculation.
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: 070000004041424344454647
|
||||
IN: "123456789abcdef0"
|
||||
AD: "1"
|
||||
CT: ae49da6934cb77822c83ed9852e46c9e
|
||||
TAG: dac9c841c168379dcf8f2bb8e22d6da2
|
||||
|
||||
# Test padding IN with 15 zeros in the tag calculation.
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: 070000004041424344454647
|
||||
IN: "1"
|
||||
AD: "123456789abcdef0"
|
||||
CT: ae
|
||||
TAG: 3ed2f824f901a8994052f852127c196a
|
||||
|
||||
# Test padding AD with 1 zero in the tag calculation.
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: 070000004041424344454647
|
||||
IN: "123456789abcdef0"
|
||||
AD: "123456789abcdef"
|
||||
CT: ae49da6934cb77822c83ed9852e46c9e
|
||||
TAG: 2e9c9b1689adb5ec444002eb920efb66
|
||||
|
||||
# Test padding IN with 1 zero in the tag calculation.
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: 070000004041424344454647
|
||||
IN: "123456789abcdef"
|
||||
AD: "123456789abcdef0"
|
||||
CT: ae49da6934cb77822c83ed9852e46c
|
||||
TAG: 05b2937f8bbc64fed21f0fb74cd7147c
|
||||
|
||||
# Test maximal nonce value.
|
||||
KEY: 808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f
|
||||
NONCE: ffffffffffffffffffffffff
|
||||
IN: "123456789abcdef0"
|
||||
AD: "123456789abcdef0"
|
||||
CT: e275aeb341e1fc9a70c4fd4496fc7cdb
|
||||
TAG: 41acd0560ea6843d3e5d4e5babf6e946
|
||||
|
||||
KEY: 9a97f65b9b4c721b960a672145fca8d4e32e67f9111ea979ce9c4826806aeee6
|
||||
NONCE: 000000003de9c0da2bd7f91e
|
||||
IN: ""
|
||||
AD: ""
|
||||
CT: ""
|
||||
TAG: 5a6e21f4ba6dbee57380e79e79c30def
|
||||
|
||||
KEY: bcb2639bf989c6251b29bf38d39a9bdce7c55f4b2ac12a39c8a37b5d0a5cc2b5
|
||||
NONCE: 000000001e8b4c510f5ca083
|
||||
IN: 8c8419bc27
|
||||
AD: 34ab88c265
|
||||
CT: 1a7c2f33f5
|
||||
TAG: 2a63876a887f4f080c9df418813fc1fd
|
||||
|
||||
KEY: 4290bcb154173531f314af57f3be3b5006da371ece272afa1b5dbdd1100a1007
|
||||
NONCE: 00000000cd7cf67be39c794a
|
||||
IN: 86d09974840bded2a5ca
|
||||
AD: 87e229d4500845a079c0
|
||||
CT: e3e446f7ede9a19b62a4
|
||||
TAG: 356d9eda66d08016b853d87c08b5c1b3
|
||||
|
||||
KEY: 422a5355b56dcf2b436aa8152858106a88d9ba23cdfe087b5e74e817a52388b3
|
||||
NONCE: 000000001d12d6d91848f2ea
|
||||
IN: 537a645387f22d6f6dbbea568d3feb
|
||||
AD: bef267c99aec8af56bc238612bfea6
|
||||
CT: 281a366705c5a24b94e56146681e44
|
||||
TAG: 59143dab187449060a3ec2a1681613cc
|
||||
|
||||
KEY: ec7b864a078c3d05d970b6ea3ba6d33d6bb73dfa64c622a4727a96ede876f685
|
||||
NONCE: 000000002bca0e59e39508d3
|
||||
IN: b76733895c871edd728a45ed1a21f15a9597d49d
|
||||
AD: cc1243ea54272db602fb0853c8e7027c56338b6c
|
||||
CT: 1fb9b2958fce47a5cada9d895fbb0c00d3569858
|
||||
TAG: 219b4252deb16a43b292165aabc5d5ce
|
||||
|
||||
KEY: 2c4c0fdb611df2d4d5e7898c6af0022795364adb8749155e2c68776a090e7d5c
|
||||
NONCE: 0000000013ce7382734c4a71
|
||||
IN: 0dc6ff21a346e1337dd0db81d8f7d9f6fd1864418b98aadcdb
|
||||
AD: 0115edcb176ab8bfa947d1f7c3a86a845d310bf6706c59a8f9
|
||||
CT: dad65e4244a1a17ce59d88b00af4f7434bd7830ffdd4c5558f
|
||||
TAG: 7ae32f186cf9ec59b41b764b34307d4f
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a84138648a5919a
|
||||
|
||||
KEY: a8b9766f404dea8cf7d7dfaf5822f53df9ccd092e332a57f007b301b507d5e14
|
||||
NONCE: 00000000c7f2f7a233104a2d
|
||||
IN: 4d6faeaee39179a7c892faae3719656cc614c7e6ecd8fcb570a3b82c4dace969090338
|
||||
AD: c6d83b6a56408a356e68d0494d4eff150530b09551d008373d6dee2b8d6b5619d67fdb
|
||||
CT: a15443f083316eef627a371f4c9ac654d0dd75255d8a303125e9f51af4233ff4ceb7fe
|
||||
TAG: 63c2b4e0973096299488b0a66ffa54c1
|
||||
|
||||
KEY: 5e8d0e5f1467f7a750c55144d0c670f7d91075f386795b230c9bf1c04ba250bc
|
||||
NONCE: 0000000088049f44ba61b88f
|
||||
IN: 51a1eebcc348e0582196a0bce16ed1f8ac2e91c3e8a690e04a9f4b5cf63313d7ad08d1efbff85c89
|
||||
AD: 5d09bf0be90026f9fc51f73418d6d864b6d197ea030b3de072bd2c2f5cab5860a342abbd29dba9dc
|
||||
CT: 35aa4bd4537aa611fd7578fc227df50ebcb00c692a1cf6f02e50ed9270bd93af3bc68f4c75b96638
|
||||
TAG: 4461139c4055333106cf7f7556fd4171
|
||||
|
||||
KEY: 21a9f07ec891d488805e9b92bb1b2286f3f0410c323b07fee1dc6f7379e22e48
|
||||
NONCE: 00000000066215be6567377a
|
||||
IN: c1b0affaf2b8d7ef51cca9aacf7969f92f928c2e3cc7db2e15f47ee1f65023910d09f209d007b7436ee898133d
|
||||
AD: dfdfdf4d3a68b47ad0d48828dc17b2585da9c81c3a8d71d826b5fa8020fee002397e91fc9658e9d61d728b93eb
|
||||
CT: 8ff4ceb600e7d45696d02467f8e30df0d33864a040a41ffb9e4c2da09b92e88b6f6b850e9f7258d827b9aaf346
|
||||
TAG: b2ad07b86aca1b3ab34033c12d6a08cc
|
||||
|
||||
KEY: 54c93db9aa0e00d10b45041c7a7e41ee9f90ab78ae4c1bba18d673c3b370abde
|
||||
NONCE: 000000003f2d44e7b352360f
|
||||
IN: 1241e7d6fbe5eef5d8af9c2fb8b516e0f1dd49aa4ebe5491205194fe5aea3704efaf30d392f44cc99e0925b84460d4873344
|
||||
AD: f1d1b08dd6fe96c46578c1d1ad38881840b10cb5eae41e5f05fe5287223fa72242aea48cb374a80be937b541f9381efa66bb
|
||||
CT: 027b86865b80b4c4da823a7d3dbcf5845bf57d58ee334eb357e82369cc628979e2947830d9d4817efd3d0bc4779f0b388943
|
||||
TAG: 6de01091d749f189c4e25aa315b31495
|
||||
|
||||
KEY: 808e0e73e9bcd274d4c6f65df2fe957822a602f039d4752616ba29a28926ef4a
|
||||
NONCE: 000000001b9cd73d2fc3cb8e
|
||||
IN: 3436c7b5be2394af7e88320c82326a6db37887ff9de41961c7d654dd22dd1f7d40444d48f5c663b86ff41f3e15b5c8ca1337f97635858f
|
||||
AD: d57cfbe5f2538044282e53b2f0bb4e86ea2233041fb36adb8338ded092148f8c2e894ef8766a7ec2dd02c6ac5dbab0c3703c5e9119e37c
|
||||
CT: 9b950b3caf7d25eaf5fca6fa3fe12ed077d80dcd5579851233c766bb8bb613ec91d925a939bb52fb88d5eda803cfe2a8cda2e055b962fd
|
||||
TAG: 0887ec7d5e1a4e532746ec247a30825a
|
||||
|
||||
KEY: 4adfe1a26c5636536cd7cb72aa5bded0b1aa64487ad0e4078f311e8782768e97
|
||||
NONCE: 00000000d69e54badec11560
|
||||
IN: 19b3f9411ce875fcb684cbdc07938c4c1347e164f9640d37b22f975b4b9a373c4302ae0e7dfdeba1e0d00ced446e338f4c5bc01b4becef5115825276
|
||||
AD: bda1b0f6c2f4eb8121dcbd2eebd91a03ae1d6e0523b9b6f34b6f16ceca0d086654fb0552bfd5c8e1887730e1449ea02d7f647ae835bc2dab4bbc65b9
|
||||
CT: ea765a829d961e08bacaed801237ef4067df38ad3737b7c6de4db587a102a86fc4abbaabea0ee97c95ca7f571c7bab6f38cbae60cd6e6a4ce3c7a320
|
||||
TAG: a27f18846f5a4f7fcc724656c91cf4f3
|
||||
|
||||
KEY: eb3db86c14b7cc2e494345d0dfb4841bbd3aa1e2bc640cca0c6c405520685639
|
||||
NONCE: 0000000088b54b28d6da8c81
|
||||
IN: f75c0a357271430b1ecff07a307b6c29325c6e66935046704a19845e629f87a9e3b8aa6c1df55dd426a487d533bb333e46f0d3418464ac1bef059231f8e87e6284
|
||||
AD: 34b08bb0df821c573dcb56f5b8b4a9920465067f3b5bf3e3254ea1da1a7fc9847fd38bdfe6b30927945263a91fa288c7cf1bee0fddb0fadf5948c5d83eb4623575
|
||||
CT: 146ec84f5dc1c9fe9de3307a9182dbaa75965bf85f5e64563e68d039a5b659aa8863b89228edb93ff3d8c3323ab0d03300476aa4aca206d4626a6b269b2078912d
|
||||
TAG: 854cbb42bade86a09597482c8604681a
|
||||
|
||||
KEY: dd5b49b5953e04d926d664da3b65ebcffbbf06abbe93a3819dfc1abbecbaab13
|
||||
NONCE: 00000000c5c8009459b9e31a
|
||||
IN: f21f6706a4dc33a361362c214defd56d353bcb29811e5819ab3c5c2c13950c7aa0000b9d1fe69bb46454514dcce88a4a5eda097c281b81e51d6a4dba47c80326ba6cea8e2bab
|
||||
AD: fe6f4cbb00794adea59e9de8b03c7fdf482e46f6c47a35f96997669c735ed5e729a49416b42468777e6a8d7aa173c18b8177418ded600124a98cbb65489f9c24a04f1e7127ce
|
||||
CT: 911ead61b2aa81d00c5eff53aeea3ab713709ed571765890d558fb59d3993b45f598a39e5eff4be844c4d4bd1ef9622e60412b21140007d54dcf31b2c0e3e98cf33a00fd27f0
|
||||
TAG: 2865d2a26f413cc92416340f9491e1be
|
||||
|
||||
KEY: 3b319e40148a67dc0bb19271d9272b327bc5eee087173d3d134ad56c8c7dc020
|
||||
NONCE: 00000000ce5cf6fef84d0010
|
||||
IN: 27b5627b17a2de31ad00fc2ecb347da0a399bb75cc6eadd4d6ee02de8fbd6a2168d4763ba9368ba982e97a2db8126df0343cdad06d2bc7d7e12eec731d130f8b8745c1954bfd1d717b4ea2
|
||||
AD: a026b6638f2939ec9cc28d935fb7113157f3b5b7e26c12f8f25b36412b0cd560b7f11b62788a76bd171342e2ae858bcecb8266ff8482bbaed593afe818b9829e05e8e2b281ae7799580142
|
||||
CT: 368fb69892447b75778f1c5236e1e9d5d89255c3d68d565a5bba4f524d6ad27de13087f301e2ef4c08f5e2c6128b1d3e26de845c4ac4869e4c8bd8858ad0d26dec3b5d61a9e3666a3911ba
|
||||
TAG: 1414f1b91966340417c38226ccca9d3d
|
||||
|
||||
KEY: 43bf97407a82d0f684bb85342380d66b85fcc81c3e22f1c0d972cd5bfdf407f4
|
||||
NONCE: 000000008b6ba494c540fba4
|
||||
IN: 4b4c7e292a357f56fdf567c32fc0f33608110d7ce5c69112987d7b5a0bd46d8627a721b0aed070b54ea9726084188c518cba829f3920365afc9382c6a5eb0dd332b84612366735be2479b63c9efc7ff5
|
||||
AD: 1e0acf4070e8d6758b60d81b6d289a4ecdc30e3de4f9090c13691d5b93d5bbcef984f90956de53c5cf44be6c70440661fa58e65dec2734ff51d6d03f57bddda1f47807247e3194e2f7ddd5f3cafd250f
|
||||
CT: d0076c88ad4bc12d77eb8ae8d9b5bf3a2c5888a8d4c15297b38ece5d64f673191dc81547240a0cbe066c9c563f5c3424809971b5a07dcc70b107305561ce85aecb0b0ea0e8b4ff4d1e4f84836955a945
|
||||
TAG: c5ca34599c6a8b357c6723ee12b24da8
|
||||
|
||||
KEY: 12fc0bc94104ed8150bde1e56856ce3c57cd1cf633954d22552140e1f4e7c65d
|
||||
NONCE: 00000000d3875d1b6c808353
|
||||
IN: 24592082d6e73eb65c409b26ceae032e57f6877514947fc45eb007b8a6034494dde5563ac586ea081dc12fa6cda32266be858e4748be40bb20f71320711bf84c3f0e2783a63ad6e25a63b44c373a99af845cdf452c
|
||||
AD: b8be08463e84a909d071f5ff87213391b7da889dc56fd2f1e3cf86a0a03e2c8eaa2f539bf73f90f5298c26f27ef4a673a12784833acb4d0861562142c974ee37b09ae7708a19f14d1ad8c402bd1ecf5ea280fab280
|
||||
CT: 9d9ae6328711fb897a88462d20b8aa1b278134cdf7b23e1f1c809fa408b68a7bfc2be61a790008edaa98823381f45ae65f71042689d88acfa5f63332f0fba737c4772c972eba266640056452903d6522cefd3f264e
|
||||
TAG: e84211b6cfd43543f8b1b4db07a494d1
|
||||
|
||||
KEY: 7b6300f7dc21c9fddeaa71f439d53b553a7bf3e69ff515b5cb6495d652a0f99c
|
||||
NONCE: 0000000040b32e3fdc646453
|
||||
IN: 572f60d98c8becc8ba80dd6b8d2d0f7b7bbfd7e4abc235f374abd44d9035c7650a79d1dd545fa2f6fb0b5eba271779913e5c5eb450528e4128909a96d11a652bf3f7ae9d0d17adbf612ec9ca32e73ef6e87d7f4e21fe3412ce14
|
||||
AD: 9ff377545a35cf1bfb77c734ad900c703aee6c3174fdb3736664863036a3a9d09163c2992f093e2408911b8751f001e493decc41e4eeeed04f698b6daed48452a7e1a74ec3b4f3dcf2151ca249fa568aa084c8428a41f20be5fd
|
||||
CT: 229da76844426639e2fd3ef253a195e0a93f08452ba37219b6773f103134f3f87b1345f9b4bf8cfc11277c311780a2b6e19a363b6ac2efe6c4cc54a39b144e29c94b9ebbde6fd094c30f59d1b770ebf9fcad2a5c695dc003bf51
|
||||
TAG: 55e025a1eb87bc84d4be00c775c92ad2
|
||||
|
||||
KEY: 4aeb62f024e187606ee7cc9f5865c391c43df1963f459c87ba00e44bb163a866
|
||||
NONCE: 000000009559bd08718b75af
|
||||
IN: c5d586ceece6f41812c969bcf1e727fe6ff8d1ae8c8c52367c612caa7cdf50e0662f5dffc5ea7d3cc39400dfe3dc1897905f6490fd7747b5f5f9842739c67d07ce7c339a5b3997a7fb4cd0d8e4817ff8916b251c11ef919167f858e41504b9
|
||||
AD: 51f5b503b73a5de8b96534c2a3f2d859ece0bd063ea6dfa486a7eec99f6c020983f7148cccb86202cf9685cc1cc266930f04e536ad8bc26094252baa4606d883bd2aeed6b430152202e9b6cc797ff24fc365315ed67391374c1357c9a845f2
|
||||
CT: 252ea42b6e5740306816974a4fe67b66e793ebe0914778ef485d55288eb6c9c45fa34ac853dc7a39252520514c3cb34c72b973b14b32bc257687d398f36f64cc2a668faffa7305ab240171343b5f9f49b6c2197e4fbe187b10540d7cdcfa37
|
||||
TAG: ab1d8a5a1f3eda9b5609c0028737477f
|
||||
|
||||
KEY: 9a19e72f005cae1ae78b8e350d7aabe59fc8845999e8c52fad545b942c225eaf
|
||||
NONCE: 00000000d9dae2ea8d2ffc31
|
||||
IN: 2110378d856ded07eb2be8e8f43308e0c75bc8a3fcc7b1773b0725b7de49f6a166c4528e64120bdf7c9776615d3ce6feeb03de964a7b919206a77392f80437faceb6745845cafc166e1c13b68e70ca2a1d00c71737b8fcbbbd50902565c32159e05fcd23
|
||||
AD: 1cd73b72c4e103afbefd7c777e0480f3f5e68c60b85bd2e71ef5caebb175d7fc6535d39f38f92c24f2eb0fe97d878ed3d5967c0bb4394a5d41f7d34cda6e1523d3848f049cde554a7d31e1afeab5d3e6150f85858335cbd28c8a7f87d528058df50eea06
|
||||
CT: 5f009fbce4ec8e4ca9d8d42258b1a3e4e920b2fbad33d5e9f07557d9595e841025193b521ba440110dd83958e8ee30219d952b418e98a6c624894aa248aedc0678f2d263e7bfaf54ca379fef6c5d2f7ac422ea4b4369408b82d6225a7a2cf9a9f46fd4ef
|
||||
TAG: 1c6bdff7d8b9554dc7bf40e50b37d352
|
||||
|
||||
KEY: ba1d0b3329ecc009f1da0fab4c854b00ad944870fdca561838e38bad364da507
|
||||
NONCE: 000000008a81c92b37221f2f
|
||||
IN: 6289944ffa3ccea4bf25cd601b271f64e6deb0eba77d65efb4d69ca93e01996e4727168b6f74f3ccf17bd44715f23ceb8fc030c0e035e77f53263db025021fd2d04b87a1b54b12229c5e860481452a80a125cb0693a2ba1b47e28ee7cbaf9e683c178232c7f6d34f97
|
||||
AD: e57883961b8d041d9b9eeaddcfd61fa9f59213f66571fadffffdd1498b9b014f1ef2e7e56c3044d7f9fa7a1403a1169e86430a2a782137093f5456e142aad03a5f7a66d38009dd01b7fc02c9cf61642dedaf7cc8d46066c281ee17780674c3a36eae66c58d2d765075
|
||||
CT: 9c44d9135db0dbf81c862c1f69bec55a279794cdd29a58e61909aa29ec4c120c9c5a508d856b9e56138095714a4bb58402a1ad06774cf4ecdf2273839c0007cb88b5444b25c76f6d2424281101d043fc6369ebb3b2ff63cdb0f11a6ea1b8a7dafc80cdaef2813fa661
|
||||
TAG: 689a141bc11159d306dad7a4ecf6ad9d
|
||||
|
||||
KEY: 0cf8c73a6cffc1b8b2f5d320da1d859d314374e4a9468db7fd42c8d270b7613a
|
||||
NONCE: 000000003c4c6f0281841aff
|
||||
IN: 4434728d234603c916e2faa06b25d83bad3348990ecde2344368d1a7af1309bd04251bb2e0b72044948f8dea33cce2618283b6af742073a9586b26c1089335fe735141e099785a1235810a3a67ff309e2f0ce68220ba0077ad1a5dc1a4aef898a3b9ff8f5ad7fe60149bd0bd6d83
|
||||
AD: a38d09a4f1c9241623c639b7688d8d35345ea5824080c9d74e4352919db63c74d318f19e1cbb9b14eebd7c74b0ad0119247651911f3551583e749ea50ff648858dcaaa789b7419d9e93a5bf6c8167188dbac2f36804380db325201982b8b06597efeb7684546b272642941591e92
|
||||
CT: bdfbfea261b1f4c134445321db9e6e40476e2dd2f4e4dbe86e31d6a116d25830762e065b07b11a3799aab93a94b4f98c31c0faeb77ec52c02048e9579257e67f5a6bae9bc65210c25b37fc16ee93bda88fd5f30a533e470b6188c6ce5739fa3e90f77120b490fc1027964f277f40
|
||||
TAG: 780cc54bb6f1c9b78545c1562cd9d550
|
||||
|
||||
KEY: 69f4e5788d486a75adf9207df1bd262dd2fe3dd3a0236420390d16e2a3040466
|
||||
NONCE: 000000006255bf5c71bb27d1
|
||||
IN: c15048ca2941ef9600e767a5045aa98ac615225b805a9fbda3ac6301cd5a66aef611400fa3bc04838ead9924d382bef8251a47f1e487d2f3ca4bccd3476a6ca7f13e94fd639a259ef23cc2f8b8d248a471d30ac9219631c3e6985100dc45e0b59b8fc62046309165ddb6f092da3a4f067c8a44
|
||||
AD: 0c83039504c8464b49d63b7f944802f0d39c85e9f3745e250f10119fa2c960490f75ae4dced8503b156d072a69f20400e9494ab2fa58446c255d82ff0be4b7e43046580bc1cf34060c6f076c72ea455c3687381a3b908e152b10c95c7b94155b0b4b303b7764a8a27d1db0a885f1040d5dbcc3
|
||||
CT: f0bb2b73d94f2a7cef70fe77e054f206998eacf2b86c05c4fa3f40f2b8cebf034fe17bcbee4dea821f51c18c0aa85b160f8508bd1dc455cc7f49668b1fb25557cdae147bf2399e07fcacaca18eccded741e026ef25365a6b0f44a6b3dd975ee6bb580f5fccd040b73c18b0fbf8f63199ba10fe
|
||||
TAG: 2ecccea4607d14dbb2d2475792aeb468
|
||||
|
||||
KEY: ad7b9409147a896648a2a2fe2128f79022a70d96dc482730cd85c70db492b638
|
||||
NONCE: 00000000a28a6dedf3f2b01a
|
||||
IN: 791d293ff0a3b8510b4d494b30f50b38a01638bf130e58c7601904f12cb8900871e8cf3d50abd4d34fda122c76dfee5b7f82cd6e8590647535c915ae08714e427da52f80aef09f40040036034ca52718ea68313c534e7a045cd51745ec52f2e1b59463db07de7ca401c6f6453841d247f370341b2dbc1212
|
||||
AD: 9a6defddb9b8d5c24a26dd8096f5b8c3af7a89e1f7d886f560fabbe64f14db838d6eb9d6879f4f0b769fe1f9eebf67fcd47b6f9ceb4840b2dba7587e98dc5cae186ef2a0f8601060e8058d9dda812d91387c583da701d2ba3347f285c5d44385a2b0bf07150cbc95e7fcfa8ae07132849a023c98817c03d2
|
||||
CT: c2f109d6d94f77a7289c8a2ab33bc6a98d976554721b0c726cbf4121069473e62ba36e7090e02414f3edc25c5d83ac80b49ad528cda1e3ad815b5a8c8ae9ad0753de725319df236983abd3f69ab4465d9b806c075b1896d40bdba72d73ba84c4a530896eb94ffccf5fb67eb59119e66a1861872218f928cf
|
||||
TAG: 17ec6cf2b172f01e3c456ad047196805
|
||||
|
||||
KEY: 48470da98228c9b53f58747673504f74ca1737d7d4bb6dbf7c0cba6ca42f80b9
|
||||
NONCE: 0000000056fb4923a97e9320
|
||||
IN: bc6626d651e2b237f22ee51608ddcffeba5f31c26df72f443f701f2b085d6f34f806e29673584cb21522179edb62a82427d946acabce065b88b2878e9eb87ed1004e55ef58f51ec46375ac542c5782725ff013136cb506fcf99496e13fcd224b8a74a971cc8ddb8b393ccc6ac910bd1906ea9f2ed8a5d066dc639c20cd
|
||||
AD: df8ab634d3dca14e2e091b15ecc78f91e229a1a13cba5edd6526d182525ec575aa45bc70fb6193ffcd59bad3c347159099c4f139c323c30a230753d070018786b2e59b758dd4a97d1a88e8f672092bef780b451fd66ba7431cbb5660ea7816cdf26e19a6ebb9aadc3088e6923f29f53f877a6758068f79a6f2a182b4bf
|
||||
CT: a62e313ecf258cc9087cbb94fcc12643eb722d255c3f98c39f130e10058a375f0809662442c7b18044feb1602d89be40facae8e89ca967015f0b7f8c2e4e4a3855dbb46a066e49abf9cef67e6036400c8ff46b241fc99ba1974ba3ba6ea20dc52ec6753f6fc7697adbccd02b0bbea1df8352629b03b43cc3d632576787
|
||||
TAG: d29a8968067aeb457ffc114c3a9efb95
|
||||
|
||||
KEY: b62fb85c1decd0faf242ce662140ad1b82975e99a3fa01666cac2385ab91da54
|
||||
NONCE: 000000002f4a5ca096a4faf8
|
||||
IN: 03b14f13c0065e4a4421de62ab1d842bffb80f3da30bf47d115c09857f5bdd5756fd7c9ac3d9af1c9fb94f2640f7f4386cfba74db468e5288dbe4dd78bfe4f69e41480ca6138e8beacc6eaa3374157c713cfa900c07dd836eaecc8827fa3e70e052ae09e8473e2ae1a10b1bb669ef60a8dd957f6553daa8114918e17371f2ac327bd
|
||||
AD: cfe3b7ab7550b0e8e2e8235fa0dcef95647ce6814abd3dc3f5a3bd7d6d282504660c34ad8341e4d11402c7d46c83a494d7ddb105e1002979023e0e3dc2978c9ae53e10eb8567e7a02b60e51e945c7040d832ca900d132b4205a35034fed939a1b7965183c25654931a9b744401c4649c945710b0d9733b87451348b32ba81de30ea7
|
||||
CT: 8965db3d3ae4fb483208f147276e7d81b71a86e7202ffc9b1eaade009bc016838dc09ca4bcf30887b2f4243fbd652cd90ebed1ceef8151ff17ea70518d03b0f2a24960aa7de9b30fa65c2e2d57360061aae6d9376e984e9fcd5e5dd0911a4bc8deca832ffb76f252bd7da523076593ba6b174f7d9fb0377e066ecbb6638036241e86
|
||||
TAG: 28a5284696ed82714eaa94c9ebe6e815
|
||||
|
||||
KEY: de9c657258774d4ebc09d109a0fc79d66493ae578797cac4eb8830a6a4b547e0
|
||||
NONCE: 00000000b5e35fe3398efa34
|
||||
IN: 4d68fb683aa4f4c7a16ba1114fc0b1b8d8898610fa2763e435ded8771b3651078bef73d4dfd14e76a34cd5eb9ef4db4ead4da9e83f4ce50fe059977b2d17d687c29335a04d87389d211f8215449749969f7652dc1935a0f9a94538dc81dc9a39af63446a6517609076987920547d0098a9c6766cf5e704883ea32feaea1889b1554b5eb0ce5ecc
|
||||
AD: 436ea5a5fee8293b93e4e8488116c94d3269c19f1d5050def23d280515457b931bbed64a542b317cc5023d648330a4b7adca14dd6f3783207b94f86ccaa0a0ac39b7db00ac87a99e3cd8a764ed9c75da8454479636ab2b29e770b166a5b75cacc425c919bf1ce9ac34afe6b4425c3d9fd2e48bc81e7d15516d60e592bfcc2ebefb660f0995f2b5
|
||||
CT: 97a97b8f0f5420845ae8d57567f9bba693d30e6db916fad0b971f553ad7d993f806f27ab8b458d8046062ced4778c004b4f958a4436141637c6039963308dea2f54008b7feab79650295ed41bf9e65e1a2d75ab1c7b2a70ebb9e9f38d07a9a672d3e95ea78afe9ac02f2566b48b0251aef6eeeca8bd15bd8d43b559426aa9d15d960ee35cb3edf
|
||||
TAG: 4ef49e8a0c2ef85826d7f03e81c577f2
|
||||
|
||||
KEY: 6885bd333c336c7672db8ebdf24c1a1b605c5a4ae279f0f698162f47e6c73401
|
||||
NONCE: 00000000f0c4a213a6168aab
|
||||
IN: fa905a2bfa5b5bad767239fb070a7bc0b303d1503ecd2b429418cc8feba843e5444ed89022fdb379c3b155a0f9ceab2979000a0f60292a631771f2fde4ef065aa746426609082969530a9c70ad145308c30ba389ea122fd766081511a031ce3a0bd9f9f583c7000b333b79ac004fbde6ec3eb2d905977ff95dcff77858e3c424fe8932a6a12139e6ec8d5e98
|
||||
AD: 8ded368f919efb522bb6a9ad009e02ffbc6a16536e34d95cdb34f1153d7cb7b0f3c2b13dd05cedae27cfe68ec3aca8047e0930a29c9d0770c1b83c234dcb0385deae7ae85da73a5f8de3dfb28612a001f4e552c4f67ae0e2ec53853289b7017a58591fd6f70b0e954876bb2f7ec33001e298856a64bb16181017ba924648c09fc63c62eff262c80d614679bd
|
||||
CT: 0cb3d6c31e0f4029eca5524f951244df042fc637c4162511fea512a52d3f7581af097eb642e79e48666cb1086edbd38c4777c535a20945fabc23e7c9277e2b960aac46865f1026eb6da82759108b9baece5da930ccfc1052b1656b0eadaa120ed0c45ad04b24ae8cdb22ceab76c5f180b46a392ab45b1b99c612546e6b947f4d5c06ad5abee92ff96345ad43
|
||||
TAG: fad7d5a5193dfb121c68529ba8c0c35d
|
||||
|
||||
KEY: fbc978abb1240a6937ccc16735b8d6ed5411cdbc1897214165a174e16f4e699b
|
||||
NONCE: 000000007968379a8ce88117
|
||||
IN: 1a8196cd4a1389ec916ef8b7da5078a2afa8e9f1081223fa72f6524ac0a1a8019e44a09563a953615587429295052cc904b89f778ef446ed341430d7d8f747cf2db4308478524639f44457253ae5a4451c7efca8ae0b6c5c051aaa781e9c505489b381a6dcba87b157edc7f820a8fbaf2a52e484dc121f33d9d8b9ac59d4901d6ed8996ed4f62d9d4d82274c449cd74efa
|
||||
AD: 3913cd01299b8a4e507f067d887d7e9a6ded16dd9f9bb3115c5779aa14239fd33ee9f25756d45262dc3011069356425b5c81a4729594e17c9747119f81463e85625d5603d05e00f568b0c800bb181eb717be8d7a93166a504ce1bc817e15530c5bd2b3df1d4222245ea78a38bc10f66c5cf68d661503131f11af885c8a910b6dce70bc3a7448dfae00595beb707fe054d3
|
||||
CT: d152bcb4c24c3711b0fad28548dc4db605bbc89237cdbea7dbf956b8855d1161a0781f27bd56d798141e2ace339955efb98fe05d9b44cd011e645106bf47726183958cb6df34ce5766695f60bc70b6fe0fabb9afa009a8ef043dbf75f861881368fa07726625448fe608d578cdc48277f2dc53eaaf1bdc075269a42f9302a57cad387a82c6969608acacda20e1cac4596c
|
||||
TAG: 96ae06cd7c72456e5568a42317046158
|
||||
|
||||
KEY: 77d1a857fbadfe01aba7974eea2dfb3dc7bf41de73686aece403993e5016c714
|
||||
NONCE: 00000000fdd913a321c40eb0
|
||||
IN: db8915bfe651e2ecb3ce0b27d99a6bfa7a7c507cfcb2987293018636c365a459c6a138b4428be538413db15bda69e697cbb92b154b7f4d2cbb07965225aa6865d7dcd1ba2c17c484b00b1986fed63e889f25a4966dc3ed4273f1577768f665362d7d3e824484f0dded7f82b8be8797ad951719719365e45abbf76324bc7d657799d4d4f4bb1dba67d96ab1c88519a5bee704f7214814
|
||||
AD: 3cb2c06c20cb0832bbacebfc205d77393ca1816346ea2681de4d3ab1fadb774ad273e4713290454496f5281ebc65e04cfe84ed37cd0aedc4bbe3decbd8d79d04a4e434876650e0d64309e336bfb10e924066a64acb92260b2dbd96735d03af03909aa6a80a6e89fda81037257aec21fe9be7e91a64e88e0a58fa38ecba4c4c4cffb61958f3c486cbb0b1d0b0014a2d1d3df248eec1ca
|
||||
CT: acb825e6023b44b03b2efc265603e887954e8612b2ee134bdcb61501cfb9492952bf67be597c3a005b09af74d9e421a576d2c65e98104780feab838d8cb1bd135452ea39dc8907a4c1a6a9161805e4fa3e16989e6a418a7eea2582bf895da967028eab7c95d846a6de4b9980785814cf00484baa2f6de609912fff689bce6e854261ffe866bd8e63274605c7c5ad677bd7897ade543e
|
||||
TAG: bcf523a9bcf772e157941753c6d7401e
|
||||
|
||||
KEY: b7e9b90dc02b5cd6df5df7283ef293ed4dc07513d9e67331b606f4d42dec7d29
|
||||
NONCE: 00000000a6c191f6d1818f8e
|
||||
IN: 2ada0e3c7ca6db1f780ce8c79472af4e8e951ddc828e0d6e8a67df520638ff5f14a2f95a5e5931749ae2c4e9946ae4d5eb5de42fb5b77d2236e2e2bd817df51be40b1b8a6c21015a7c79fe06dba4a08b34013dfa02747b5f03930268404c455dc54a74d9c6e35485e10026da573cb41cd50b64cfafe4cfcdf3c9684ef877e45d84e22bd5e15fa6c8fd5be921366ff0dc6fe2df45f7252972c9b303
|
||||
AD: 0f4269ed5ef0bfff7be39946a4e86e8bf79f84b70cd0b14fecb7be3c071316ce86de3d99d6871e0ba5667d9d7bba7dcaba10cb2a36668b6c3e2fb6c102938b75008bb9c213ebf9b85b5e91a802df0d31d7f11d764b2289f6225212694ab6b7c0e3ff36e84245d9f4f43fc5f98e654dea7ba9bd918658879c5bb4a1642af0d83113e3cf935d3c0d5208318f66f654eb17d8c28a602543e77ad3e815
|
||||
CT: 22586fe7338e99cdaad9f85bd724ba4cfe6249b8a71399f9a3707b5c4323b8d96679568dfc8d230aefb453df596e13eb3e8a439249bd64bc93a58f95089a62b94f6562b821c83d91f56c55147381e9de4beb4ae81bd6fe7caef7e7e9a2078f2fba8f3e70d4910da9accc92b8e81a61b0fefbece4bd89443e66e8ddda8e47a66a62f17fd0e7d0a4852ce1a4d43d72a0b5e8914bbec698f060f2b092
|
||||
TAG: bd05336ed6426de412aac37661953052
|
||||
|
||||
KEY: 6b2cb2678d1102f2fbbd028794a79f14585c223d405e1ae904c0361e9b241e99
|
||||
NONCE: 000000007b3ae31f8f938251
|
||||
IN: b3cb745930e05f3ab8c926c0a343a6eb14809fd21b8390a6fcc58adb5579e5432021765b2d249a0ecf6ba678634c4f53f71495865f031ee97aa159f9ead3a3fcb823ee5238bdf12706a9c6137d236e2e7110ce650c321e41daf0afd62bab2a8fe55d7018de49a14efe6d83a15b2f256d595e998d25309f23633360f5745c50c4e5af8ccc9a8a2cb47064105a023e919c7795d2dc331d3f2afb8c42e5c0bcc26d
|
||||
AD: 1c32fd3df22b3e440e2a3c7a7624990194cb16a5f74af36f87fd6ca7d410ce9064316a2d091945deef7d9b35ceec8396069307caced2b80afd7d53ec479c35cedf2dfd4c95c3dd8400f71ad34028c6e4f8681d93d0774064ba38f3fb9b0c1dfa1f5f0c7d20676a5911d999fb6a1d41367a8e99d852bf3d3b7b3f4c233249ed1ca135389a674ff48232ded3f6800a97b6d409c40e6cd70d09bf9d2ad25d9b9485
|
||||
CT: ef70c7de98ab1d4ad817024a970be463443640eb0cd7ff234bdd00e653074a77a1d5749e698bd526dc709f82df06f4c0e64046b3dc5f3c7044aef53aebb807d32239d0652dd990362c44ec25bf5aeae641e27bf716e0c4a1c9fbd37bbf602bb0d0c35b0638be20dd5d5891d446137e842f92c0ee075c68225e4dbacb63cc6fb32442b4bcda5e62cb500a4df2741a4059034d2ccb71b0b8b0112bf1c4ca6eec74
|
||||
TAG: d48657033095db3f873c33445fec8d35
|
||||
|
||||
KEY: 4dbc80a402c9fceaa755e1105dc49ef6489016776883e06fcf3aed93bf7f6af7
|
||||
NONCE: 000000002358ae0ce3fb8e9f
|
||||
IN: 197c06403eb896d2fa6465e4d64426d24cc7476aa1ae4127cd2bd8a48ce2c99c16b1cbf3064856e84073b6cf12e7406698ef3dd1240c026cbd1ab04ee603e1e6e735c9b7551fd0d355202b4f64b482dd4a7c7d82c4fe2eb494d0d5e17788982d704c1356c41a94655530deda23118cba281d0f717e149fbeb2c59b22d0c0574c1a2e640afad1a6ceb92e1bf1dde71752a1c991e9a5517fe98688a16b073dbf6884cfde61ac
|
||||
AD: cf6ce7b899fb700a90d2a5466d54d31358ecf0562e02b330a27ba0138006b342b7ed6349d73c4c5c6d29bde75a25089b11dac5b27adea7e7640ca1a7ceb050e3aae84a47e11640a6e485bd54ae9fdb547edc7313d24a0328429fcffd8b18f39880edd616447344ebeec9eadb2dcb1fa7e67179e7f913c194ebd8f5a58aea73b0c5d1133561245b6d9c5cfd8bb0c25b38ffb37db5e2de5cdded6b57355e9d215cb095b8731f
|
||||
CT: aa87f9a83048b6919c8f2b050315db4e2adae4a9c2ca0109b81961b520e63299dcb028cec0b9d3249a945ee67dd029b40f361245c740f004f8cf0d2214fcfa65e6124a3e74b78aa94345c46fdc158d34823ed249ee550431eaae9218367321cdd6e6a477650469bb3cc137a8f48d9cf27934b16703608b383d2145659922fb83bb2e7ee2ef938a90f2ff846a4a949129b1fb74dde55c5ae013c2f285de84f7dac7d1662f23
|
||||
TAG: 298f84c8312029a7b1f38c5ea6021f57
|
||||
|
||||
KEY: 9e4a62016dae4b3223fed1d01d0787e31d30694f79e8142224fe4c4735248a83
|
||||
NONCE: 00000000263a2fc06a2872e7
|
||||
IN: 5a46946601f93a0cee5993c69575e599cc24f51aafa2d7c28d816a5b9b4decda2e59c111075fb60a903d701ad2680bb14aeda14af2ae9c07a759d8388b30446f28b85f0a05cd150050bd2e715ff550ebbd24da3ebb1eac15aba23d448659de34be962ab3ab31cb1758db76c468b5bb8ce44b06c4e4db9bd2f0615b1e727f053f6b4ffb6358d248f022bcad6ca973044bed23d3920906a89a9a9c5d8024ec67d7f061f64529a955ce16b3
|
||||
AD: 4cd65f68f9f88c0516231f2a425c8f8a287de47d409d5ecde3ad151e906b3839fb01bb91a456f20ea9d394d4b06604ab1f9009ef29019af7968d965d1643161ab33a5354cda2fdc9f1d21ec9cb71c325c65964a14f9b26eb16560beb9792075a1597394000fd5f331bd8b7d20d88e5f89cf8d0b33e4e78e4904bb59c9c8d5d31ac86b893e4a0667af1be85fdb77f7ec3e2594a68048d20c2fb9422f5879078772ee26a1c560cbcbb2113
|
||||
CT: e944bb2ab06d138ad633c16ce82706ecf0ef5d119be1f3460c9ce101d9c4e04ef1677707fca40d1f8ca181e07273707b06624d6d7063c3b7b0bb0151b757b3e5237fb8004c161233d8bc7e5f28ea1c18da1874b3d54c5ad6ff0835eed35c8853704585cf83996e5e7cec68180af414e04f08134d3b0384ebdf0393c9310b55d8698fe10cb362defc0995e9a13b48b42cff61ffd9fe4c3c8c6dab355713b88f6e98a02e7231a0c6644ec4
|
||||
TAG: 6234e81e089b779d0d509d14e566b5d7
|
||||
|
||||
KEY: 18ca3ea3e8baeed1b341189297d33cef7f4e0a2fab40ec3b6bb67385d0969cfe
|
||||
NONCE: 00000000b6aef34c75818e7c
|
||||
IN: ef6d1bb4094782f602fcf41561cba4970679661c63befe35ff2ca7ad1a280bf6b1e7f153fa848edfeffe25153f540b71253e8baba9aeb719a02752cda60ea5938aab339eead5aabf81b19b0fc5c1ed556be6ad8970ea43c303d3046205b12c419dea71c4245cfedd0a31b0f4150b5a9fe80052790188529ab32f5e61d8ccde5973ed30bdf290cbfbd5f073c0c6a020eac0332fced17a9a08cef6f9217bd6bef68c1505d6eed40953e15508d87f08fc
|
||||
AD: f40f03beaa023db6311bad9b4d5d0d66a58d978e0bcbbf78acebde1f4eb9a284095628955a0b15afc454152f962ec3ea2b9a3b089b99658e68ede4dee5acd56672025eb7323bcbc6ba5d91c94310f18c918e3914bbbf869e1b8721476f9def31b9d32c471a54132481aa89f6c735ab193369496d8dbeb49b130d85fbff3f9cb7dccea4c1da7a2846eef5e6929d9009a9149e39c6c8ec150c9ab49a09c18c4749a0a9fcba77057cdea6efd4d142256c
|
||||
CT: c531633c0c98230dcf059c1081d1d69c96bab71c3143ae60f9fc2b9cd18762314496ab6e90bf6796252cb9f667a1f08da47fc2b0eecda813228cae00d4c0d71f5e01b6ce762fa636efffe55d0e89fdc89ba42521cc019ab9d408fcd79c14914e8bbf0ea44d8a1d35743ad628327e432fdcfeb0b6679ddca8c92b998473732abd55dba54eefff83c78488eee5f92b145a74b6866531476fc46279d4fde24d049c1ce2b42358ff3ab2ba3a8866e547af
|
||||
TAG: e3b4192f6e50528c4f4f70267f094c56
|
||||
|
||||
KEY: 95fdd2d3d4296069055b6b79e5d1387628254a7be647baafdf99dd8af354d817
|
||||
NONCE: 00000000cd7ed9e70f608613
|
||||
IN: 0248284acffa4b2c46636bdf8cc70028dd151a6d8e7a5a5bc2d39acc1020e736885031b252bfe9f96490921f41d1e174bf1ac03707bc2ae5088a1208a7c664583835e8bb93c787b96dea9fc4b884930c57799e7b7a6649c61340376d042b9f5faee8956c70a63cf1cff4fc2c7cb8535c10214e73cec6b79669d824f23ff8c8a2ca1c05974dd6189cfee484d0906df487b6bd85671ce2b23825052e44b84803e2839a96391abc25945cb867b527cdd9b373fbfb83
|
||||
AD: 24a45a3a0076a5bcfd5afe1c54f7b77496117d29f4c0909f1e6940b81dde3abacb71ec71f0f4db8a7e540bd4c2c60faee21dd3ce72963855be1b0ce54fb20ad82dbc45be20cd6c171e2bebb79e65e7d01567ad0eeb869883e4e814c93688607a12b3b732c1703b09566c308d29ce676a5c762a85700639b70d82aaef408cf98821a372c6a0614a73ba9918a7951ea8b2bb77cd9896d26988086d8586d72edc92af2042ff5e5f1429a22f61065e03cfcd7edc2a93
|
||||
CT: 40c6318d9e383e107cdd3e1c8951562193c3ef64ee442432a63e2edefc78f32ab07772aeac172cb67ecf4d21f8b448423527bbeb9d8ddd0b46bdb27f74096ceb24e41963b4cdca176676a75bdbe3abc270b349ac0c6cbd9c3a5cd5bce20202fc5cc0c1bdd4fd25e121e0a24bd7bbeb9b19b1912467bf5338ee2ce88aa383c082b42cc399c9654ca325f35523e81438beb3f8926be79c378822d7c8f785614408a5f7cac49e4543188725643e6c1a70b46d0ec400
|
||||
TAG: 874875c9a0ba3060a0680291c3dc85a2
|
||||
|
||||
KEY: 6ae1102f84ed4dc114bb9d63f4dc78d7dbb1ab63f1659dd95f47940a7b7a811f
|
||||
NONCE: 00000000c965d578ba91d227
|
||||
IN: b82a8a9209618f1f5be9c2c32aba3dc45b4947007b14c851cd694456b303ad59a465662803006705673d6c3e29f1d3510dfc0405463c03414e0e07e359f1f1816c68b2434a19d3eee0464873e23c43f3ab60a3f606a0e5be81e3ab4aa27fb7707a57b949f00d6cd3a11ae4827d4889dd455a0b6d39e99012fd40db23fb50e79e11f8a6451669beb2fbd913effd49ad1b43926311f6e13a6e7a09cf4bebb1c0bf63ce59cd5a08e4b8d8dbf9d002e8a3d9e80c7995bb0b485280
|
||||
AD: dfd4ac3e80b2904623ff79ea8ee87862268939decf5306c07a175b6b9da0eb13ac209b4d164755929e03240a0fe26599f136fb2afdffd12bb20354aa1d20e5799839abb68ae46d50c8974e13e361d87ef550fe6d82e8b5b172cf5cd08482efdef793ede3530d24667faf3a1e96348867c2942641f4c036981b83f50236b8e8a10b83ebf6909aad0076302f1083f72de4cf4a1a3183fe6ec6bfe2e73e2af8e1e8c9d85079083fd179ccc2ee9ff002f213dbd7333053a46c5e43
|
||||
CT: a9aeb8f0a2b3ca141ac71a808dcc0c9798ac117c5d2bd09b3cfe622693a9f8ca62e841b58bddb2042f888e3099b53638b88dfc930b7a6ee4272d77e4b1d7e442bab6afbde96ab0b432f0092d9ca50eef42f63c60c09e7b8de019b32ebe4030c37b8183cc1e3b913b0ce4ee4d744398fa03f9af1c070bed8cdafd65b3a84140cb4deadc70184de757332ce3780af84353f540755227e886a8d7ad980f3dd6fd68263d82e93f883381dec888bc9f4f48349aa2b4c342cb9f48c6
|
||||
TAG: f6dcad5412b95994f5e4d6829c2eba98
|
||||
|
||||
KEY: 405bb7b94715b875df068655f00513cb1ae23ffaac977ce273e57d3f83b43663
|
||||
NONCE: 000000005c6da1259451119a
|
||||
IN: f9f143c0c52c94b4ba7b0608b144156a49e7b5d27c97315743d171911e3645ab7957c80924e3c6b9c22ab7a1cac4b7e9c0de84e49fd5e4a2d1ab51d764fc5670318688ec942f7ab34c331dce8f90fea6972e07f0dadec29d8eb3b7b6521ddd678a6527a962f4d8af78c077e27f7a0b2ef7eabd19e92b7f8c1e8fb166d4763ce9c40c888cf49aa9cdfc3e997c8fe1cce3fe802441bbd698de269ff316f31c196e62d12c6bb5cd93fb3c79ca6369f8c1ac9102daf818975ea7f513bb38576a
|
||||
AD: 6fe6446505677bf08b385e2f6d83ef70e1547712208d9cebc010cba8c16ea4ece058d73c72273eed650afdc9f954f35aa1bdf90f1118b1173368acbc8d38d93ebf85bd30d6dc6d1b90913790c3efa55f34d31531f70c958759b2ba6f956c6fcdd289b58cb4c26e9515bf550f0fd71ab8527f062c9505cbb16e8e037d34de1756bef02a133dbf4a9c00ac03befc3fb7f137af04e12595ce9560f98b612480fcdba3b8be01db56ebec40f9deae532c3b0370b5c23a2a6b02a4de69efa8900c
|
||||
CT: 1a4b073881922c6366680cc9c2a127b26f264148651b29abb0c388cf6c9b1865dba5a991e1f8309efbdb91bce44b278772c58fd41273526c33fec84beb53d1689b9da8483f71be6db73a73417069bb4cd3f195236e8d0a00d124eed3a6b6f89415b19a27fbe35774f6a1a6ee4bd4350b252b975f0db2d2eea82f4836350850d6290901e726e8af13644e2d98bc1d569c20800521e6affe976bd407049a2e6d9dd23f88d52e651391ecd2fc45b864310824aaadfa203762a77c1d64562dae
|
||||
TAG: 90fcc2544880250f1c3abe8a3761ba08
|
||||
|
||||
KEY: 8c602bd94c630cd00c7a9c508067a5a9f133d12f06d9f6fe2a7b68dce4786d8a
|
||||
NONCE: 00000000760de0f7b7cb67e2
|
||||
IN: c3ff559cf1d6ba6c0cc793ca09a0ba573a28359386a6ec93e1bacd8e630209e0b477a20aedec3c9cbf513ee6a1e3887112218d6155b9875f7e6c4bbba2c31972e905d19f529f4f0f9502996199f94f8728ba8d6424bb15f87fcacd88bb42c63fcc513759712bd0172b1e87c9da122f1993ffb7efd3a5c34b240dd3db89dddea36dbeb2836d9f8648f8e7cd428c0f948097af753b35f9876059e7702027bb00dc69071206e785f48fcbf81b39cc0343974ac70784a2e60c0df93b40379bea4ad8cac625
|
||||
AD: 9e14907c3a8e96c2636db1f3d78eb1f673d6ef043cbbb349467f1fe29bf60f23d5d5d1c3b133a8ad72065d822347541c13d1574baf737eb3cc3382fb479e6d5193b9c8e7d2444c66971ef099dc7f37f6cd97b9f7959d46e2cf25e8a5b3111b4d9e2ef906d905f0ee2d17587f7082d7c8e9a51509bde03d3d64338e1838d71700f1b4fcb100b5e0402969da462f26f974b4f9e766121f8fd54be99fc10beb9a606e13fbb1f960062815d19e67f80093360324013095719273c65542b0e31b1a2a3d928f
|
||||
CT: 2794e6e133f6892f23837fff60cf7c28ee9942f8982ef8089db117903d0143293fdf12ea1cc014bcd8806fb83c19570eed7af522db0de489bbc87133a13434518bcfb9cda4d9f6d832a69209657a447abf8afd816ae15f313c7ea95ec4bc694efc2386cdd8d915dc475e8fadf3421fbb0319a3c0b3b6dfa80ca3bb22c7aab07fe14a3fea5f0aee17ab1302338eeac010a04e505e20096a95f3347dc2b4510f62d6a4c1fae6b36939503a6ac22780a62d72f2fc3849d4ef21267fffdef23196d88fbb9b
|
||||
TAG: 7fa630c9bcb455e89f13d7a99d5e8dbe
|
||||
|
||||
KEY: bd68ff5eb296c71cfe6bc903c14907f7726bcb1331f0c75f7801cd1b7948f3a1
|
||||
NONCE: 0000000065a748004b352ba6
|
||||
IN: 52bf78c00f6e5dca2fc60e2e9a52e827df97808e9cf727773860cafc89f4b64178a19b30b46ed813fe00c8f09b25a6a1b6e350d5b005122934a59bfbd5e6e0c635c84a5226c3f2f7dcf951560f18ac220453d583015fdb2e446c69c6e6fdecf2e595e04fab1b0c506e3c6bd5e4414a35f15021e97f447aa334f54a8f1ef942dec6273511b5668b696fca97188ff15ed84b2f46145cce031c1a7f00bd88bb83d90797edc46161b3fda7a2299173496d73b812139556e8b4eb318078b9eb2ae5046e83b79dd3d45950
|
||||
AD: 5557b08a5010cbc9f46bb140c2505f68684eb24889324bff44b27234fd7a95a99cfb4ff90a8f9982085b725f78ac42eca6ce7f3314e457dc41f404008681a9d29ba765660de2e05bb679d65b81f5e797d8417b94eb9aabbd0576b5c57f86eae25f6050a7918e4c8021a85b47f7a83b4c8446898441c5cc4e0229776ef3e809cb085d71f3c75ec03378730cb066150f07e60f96aec983c0e7e72bf6bf87ae42228dfda195f97855fcdf4e6d1c4479d978abcfa276d16ed60ecbfbfc664041335ce65a40a2ca3424df
|
||||
CT: a5c8cf42287d4760fca755e2111817b981c47e85b0047de270ec301ca5f7b3679f4749210892b6ea6568f3a6a4344734a0efc0120ffedecf212d55cbcbb67815ac964875af45f735b70092a8f8435f52fc01b981ae971d486026fb69a9c3927acfe1f2eab0340ae95f8dbee41b2548e400805ece191db5fd1f0804053f1dbfaf7f8d6fded3874cb92d99a2729d3faaa60522060cf0b8101b463b3eb35b380fcddb6406c027d73fe701a5090c8dd531c203ce979e26b9ced3431e2b726a7244a20d9377bd62951bf5
|
||||
TAG: 82c6194de4d27aac4c54b023b9831634
|
||||
|
||||
KEY: 934fd043c32d16a88fad01c3506469b077cb79d258b5664fa55ad8521afdcaa2
|
||||
NONCE: 00000000c7091f6afbbeb360
|
||||
IN: 2bdd1fc4f011ef97ea52ec643819941c7e0fb39023c2f3c7683804a0ddee14a5d1784a5246966d533b3538edc7d8742d27061c3cab88df0318ab242102de3a54d03632eeb871b72c7e8f8065b49f4a91e95e15f3f46b29fd76b8fcea0d23570c5530e3bbb8a6aafa9ae32c1b3eac653c5ed5fdb2da5a986075808f6385870c85b1913e26042a9d8e78f5bc2ea6de5a64f8aeafa22adcffc7f6932d543c29bb3a04614783f948680e433a71573568d2ce984d249fb4fc06a9f358c76aa3e64a357f4eae924c1356bd5baccf7e0f
|
||||
AD: f737dd85638eb324dd3891219c5eef7c2dd053cfd055d447a411eba304a4b27dce981d112c4540590933c153d603022c91ebd2b4a58069d27e6ca17a462ef822ca41bffa80b43a68b1b564644cb3c5a7f0fddf7a13a30ff24437fddd8ef93c6f6f205d054f81890d982bd4d4ece0b1563677e843fe48c1f54e9a57ed4da66061482712e710a401073be5080d5b8b96525bffa67de5af31d50385fbbf1a87c21bf0e0a1fdff69ec32c7b7103e0b8ee6c844245e0fc84b9f89fcce62966cea68e2871d3b82e8df424c76309fc88d
|
||||
CT: dd13fbf22c8d18354d774bcd18f7eb814e9b528e9e424abc4e3f2463195e8018576565d16ab48845d11c9277f2865ebb4dc412fd5b27078f8325eadf971e6944c66542e34d9dda971e2aba70dbd3e94a1e638d521477a027776b52acf90520ca229ebc760b73128879475d1cbe1f70fc598b549cd92d8a9ac6833e500c138c56474db84cb3d70b7aa4f293a4c2b4d818b0ff9fd85918dc590a12a8c0e375c4d98b7fc87596547eb960676aad5559834588f00f251a9d53f95c47af4df3c4299175d5211779c148cfc988a5e9d9
|
||||
TAG: aeb0a4eb29886f0a7a12ec0516bd4af5
|
||||
|
||||
KEY: f9f6eb9ad736a8f66e7459fef5ec2890188dc26baf34a95f6f0384e79f5c6559
|
||||
NONCE: 000000007858dfc084fe4b0f
|
||||
IN: a644ca6e7cc076e87eb2929fd257693fce0f6fb64fd632f7f07c648ebd03696c8e262e6a810d7b7c4e5eef8c65b5323c99dbba50a70b4a9e5c2a9e7315973cd67f35d8052ce9a85a206416dd3031929f4f929b13d0a5fb10cb73c65f6c0ace019da146b51c5274a099f44e3669d26add6f2ff081e886f3cf952fe0dbbe6b0534c23e307574bd35fbd657f5fcbd5dc19fb382a1dc0a2dc8285a0350f71554e4c601497749e35567dd4a273cddc9a48ce53a5f1d297fd8baf8d1b9feb35d9151114345abada4d90db947bb9a743c175f5653d1
|
||||
AD: 2048d1c2ddfb5ec385b201832c7a993f229ba72ec16d6ebf723ef0c5032b9966209a9e8a63151b40412e96b82f86728ea6588c7e8e11ac71cc8eabab8c4b54de866658d9c5011def61fb3dbe4e630158a45ea41a2ed55ebd1efb1abeda7637de6fa5fd2f151c6d2f385bf6cd002ca8b4a2896e0d65944ee913e3c784669dd201b1985ef3577f7f123a5f9bcffa176c8f557c4f729133cac518642f27d9b22ca9b97faaafe5b669a10b79ace4a7d5727df146c77ce681357d69f9c2d65b4401bd73cd113387e3b3a05d897adad7a24c485e7b
|
||||
CT: 4146faffd7313f5d9f625370d20413cc62ab65f4acfa3c7ee1125b937dd7a39f638fc46c8ed004fb525698de5d8620ec153435571817c3de257b0d0e648ebb92940c86a98262d54e764f28cbdd4f7d9bea970291f2110414f62064d7229c6332236c507b3dac742e651d85a2a22fb243c0cc7cc2d016e5bea38f33f9a9ce048944a5fe8b078d71d23168e12dfe5a0f0b829771edc7073fb96032b7be471337a37aca0cf7c0cdd543eed686cd34934717fd79a3f18492eef72f9f450b880aa7e2e1b65e3b04c22e72301338b43aa32ceec2e6
|
||||
TAG: 61c6d4d6918b04fc1b72a7a0e9a3b799
|
||||
|
||||
KEY: 29b19636cdd32507fd98ec4ee26caab1a917646fb8f05b0dc01728a9f4a127f0
|
||||
NONCE: 0000000006699d245916686d
|
||||
IN: 5fdf913aceab1d6dbaf7d9a29352fa8a3eb22718043a79cffa2fe8c35c820aec7c07644b8785dcf7a433b4189abb257fb12b06fae0662641011a069873c3e3c5ccc78e7358184a62c2005c44b8a92254958eb5ff460d73cd80284d6daba22c3faba046c5426fe8b7cacec64b235a8f8d3e2641e5bc378830594bcfb27c177aea745951ee5780a63705727ef42c4ad3abf556d88e3830f3db6b09e93edd09485cbf907f79de61f8dc5cb5fb7665ffa0ef53cb48702f6a81d8ad421cef20c1dbdf402b8fafed56a5361b2f93f914a2380fdd0557faf1f4de
|
||||
AD: 39116c49cc13adb065b92cb7635f73d5f6bf6b5ccbf72a3f65a5df6bd4a661105015358d9e69f42e98aed795e8161282bc113058b7ef3b9e23fcd8eeab34a392e03f4d6329c112cb968385ec52a7afc98bb8695785af6b27b700973cc952630b7247ce226b4fbb99b8a486370bf6345d4516c52c64e33f407c4f2d1ba90545c88732d98bbd97972ac5e94c694624a9b3782b0099824651cb7567914d25b3e13181a791dbcd40e76e836b3350d310a52151bf835d3c357c9871482c2928e8404c6e533406d4d6fa8f63366f2c4ed828141f1ff00f01a536
|
||||
CT: 01e237220b619054a1f3670928fe67d40484b5af40fbd04d032500aac5acaa3b4584dd99a58c390627636a50de5d744f76a56a33205f9e3b00e16162eb47ff3333e1e208ca200f1a5338a86e17bd92dd2d16af8bb022a7dc05b923d019e05247f1a0d0b4bfcfce58dd6d83830705707676d55739abee89fcd5cb94b8fde006a5da02df64b00a467f45970b5ca440f22319b9735a55d454b9fba0588fef0c59d3d83823eba6e0601a96e10233826c5adeea6b2a51d386a07a9e047ad405b23d4c3d89f30c31e3199f0c8f927bfac43ceea1f969de0a8c0f
|
||||
TAG: b9fec6da464c7b85b2a4726694562fe9
|
||||
|
||||
KEY: bae06b9b5456707551c7b0e207aae02a19b4848ad8ca4ce40705bf8c856a6e52
|
||||
NONCE: 000000009c27065c3ef2d522
|
||||
IN: 50cdd88137ff428a88e87b5845be4924f6387537bb5c0b654c80107ab5698db75b2e131848e7aec156d31aed0766d31c379fece4095d38264c6d5945974d25f729c3b0ba11ea853e9cebdb6f03bb670fce08adff74d0a8f02d633fb34e0fb7337a8e66e1c12084d914fb6173b8105684db822752c6751a372bb16690284d661b8b8bc6a6dfbddf45ebc2219596f9f2f878c118df69030de38b4d99dde43b9b9e20a3dab691645dd518342f49b06a0fe0a397adf261e99f07af5b0b3798b1022ba0939c42a54d3b93641cffa3c2e174bce9ab7ad7e7c7924308d1a77a
|
||||
AD: 5d5590db1bd316eb7a0e30e4c7a6dfdbef9d3287fdb8d824389599c3c2ee262b2192eb5b9708e66e22dbc7eca83fa1a995da3ce64c86fe5aa08b826d476dc439497e2d12e2702c63c8d27aa7f09fedee816dc8bffe1351d53271a34d4292b613b7efcedb7e3cf3e6ad389eef12471e9e20e38e7ae22a323abbadfe8f2e84271bffb1819feb4f77b82843cb8757cfae293631bc6d39669107e7015c85d7343ffa6fc1bbe6f5ab4de30cd752a281e03061ea89de2a3f5e90e20da22fd6e8525c100738667f42212b2cf45fcb23bbb54b21c117484b22c6e514685314df
|
||||
CT: 66b7f69ac49fab4e5975aeb6fa9287d8eac02ac312c4de78f77f59da16cbcf87274e66801c4b862c33ea79cdc76528862bb2956c06db8b8acfac4794ebf39e35ac03cc73a4351a4ff762f681a48d6f25cad36e2814c9b5c40b9ae92509e58429106847789454d376836936bebc7a80e6c66e7aa52936d6b361378a41f849ad4e48f9ee2d3e92217a908fa8eb35736ac8ada7d32ae05391f2d807be3512543c36138a5fe660dd4cd4cd184bb43b6ba6bc0bae634e2fa9669304cd510ed5103f630068ff76d3375738de60a381842b421477e25a490cdd6894b2704125
|
||||
TAG: 94118ccc68de1921d480aab43d1ef0d1
|
||||
|
||||
KEY: 2cb374cb048c168f2e43597f028d9e73cade1b458284ffc260d4fc6b9011c414
|
||||
NONCE: 000000009fb909169bc9f4e9
|
||||
IN: 39eb929482784b463546f5d84f80510f2019923d465b99d194246d68c7ae343f91971d8f7059cebb86aa5dd099289aa648248b8c5ca04e66ac5e9bf06776e3883495397618a0227f035666806e636836b47d3d2d255a49db79866cf00d9ddabda259c4f968a1e01e651c7811cebbee2ee71803ea1d9d23487eb221f2d9555756800aba5e6abbefd6fb72b3151cc99ced599cd86df2a9b1ce94f89f347eeb124d9e7f0d9cc48d3dedd819e6d3dbac57ecee199547b266116a2035c9acc4c8ca3271ac74952372897c4a5f2cb84e2d81817fec9d6774f6d8a5b2021684132db4fca3
|
||||
AD: 0c7bd4f3a30ee944ccf9489181e6911684dcffad4593a9b65a67dfc80718c69b35897d01281016b7731e12c15cad8482e79458e08a755622e3f3f22a23ef6c8487a36ad1771ba06c641f06f85de0db3776cc6df06ad8fe3b4d60d58508de943083f17cbb9dc0d390ac94d8429e8c6fcfe063f424fbde0f62f6a7f91a626d195dc498a6e69bd93109c4e9ba13e7330aba456d710a4b0cc279d4045660406e26d61dff70d4a33c4f1052869f9248024e7a0f85f1effb32f6f7ccb1f860f3ef04e8f7b29096e6bcf9d4b3e0ce703e9bf228fdf515c2ff9cbabd16987be0f9babd3d8a
|
||||
CT: 91ddadb86b7ebef798ddaa59da51d71316fcf6c9678143178227d778750dc9827fc6cc21e605c505023e6db25849df7fb6fc1ca4d223aa215f8c85b724643c83bf8218815a9f9e2952384e0ca6a80a3760b39daf91a3c6154c4728c2371fd181fa3764753d0b0c23808a82cd8f0497246e3a0f17f8906a07c725d2891ce968a9d432c2b102d85c05510b28e715bb60d0403a77490e7f18be81218bc4f39287b9bb09f50227dd2f55e4fb70c4438da8ba3c8ffbced87d90155913faa9979fc57e6cbeddfaba3d3ab4163c0eebc7d94279c27d3ed56338893dba542eaefba30f8c3b
|
||||
TAG: 8980e8e4fe796428b733f4f8e1954a45
|
||||
|
||||
KEY: f0f16b6f12b3840bbd1c4a6a0811eef237f1521b45de9986daec9f28fca6485c
|
||||
NONCE: 000000007ac93e754e290323
|
||||
IN: 0530556424d823f90a7f1c524c4baa706aad2807e289e9479301e3e7a71f2a5e14e6232ea785f339c669af2e6d25f1d5a261096a548d23864945c3a589b67b09b0304a784d61b42b2419139485242e0d51fcbe9e8fed996d214de8717e6a71f8987ccad65eb92e66707034a5ae38e6486e26eb4374c565aad5df949dab209f7f7bcd8eb6fc52761a26cfe5d01fd349e59f4042e6dbe6b232f9301b971dee121d8aa1e62d40f043a42f3aa859d867eb809b1ced5ae1ec62cacf94a69fafd0631a8b5dfd66d855900fb295eec90ae5fcbf77beae267a79d24081bb322d8c4e0630fed252541b36
|
||||
AD: 13bfcc17b810099cda31ca53a1323db9b07633ceb2088a42263a4cbd6a4d47978776005c9a20203319c3a3ae434e9a26fb541047dc9df38dc36c095267272e203d0b24d119a70a7e96041b6d82b7c4d5570e1e4a1cf2f6e44ae63fe005a1f5b900778c482f7bd89e2e02305e35b8f61b7bb2c78a13aebfce0145d1c5aa0bf1d10d23616d5a3a446de550302f56f81dc56fe4f3700f14242688d9b92d8a427979b403c8de8c493a2cde510eaf6b285e6675b173aa0314a386b635c7577d5aff0d868a0cb3f73c8d2005f8c7c9dab5a060ef80102c9d4a4af988838afe87aff04c0689e8c3c7f9
|
||||
CT: 2c14c3931e98e84507c4c165c2ed47ad4a178f0e216cd7ac2453bbbf9f85dd06bd8ef54a9ff1fd3dd8e0cafb635d8f2de861a0db5b14d03f17aaea8c89b3010797c71c13a0e666899d7ff6e53c4f08be8ddb3e37688b5afa088079b6c7519b833e16560073e699530302028a3496e05edddec01a23a4c7983956250e8d9e616f7b940856955cde81c1efabf6b7b92f153d03f4cd17e7f7d2907670cfc84d45c1d7936775a3fce47968504278ffaecacea0871b227f250e2979516f6fa310fec0d8df1af7872e5a534e82870aa05f43ef0a455846b93ce938064fa33e92de262e4156dae56775
|
||||
TAG: 16c972829819b8fb030b2c5f40dab717
|
||||
|
||||
KEY: 3792943c0396f1840496917ce8ad89608385007e796febeea3805f3f4cbeccf7
|
||||
NONCE: 0000000023b2f9068b2c4c85
|
||||
IN: be6b67eb943ee7b5c785cd882f653e73a8f75b4a41a2a7c56ae5a10f729caf39948fe48ad0e51240e2e7aa43193c7ec6ce7f4909fc94c9f99e38e6a0ad7e98eb29c5c2e61c99e9cbe890f154185cec213a74725d23c1a4e4d0cb9b1a36b78c87e5eee20d2aa29aae80d4759eb0c51c5dc3a95bdbbf7e14eb434419a6c88a954ac03d0c98739f4211b8732acd71c297f578b8cb64ccac45f7235ddc7f2a3f5f997525c1ed39dc550126cdf9cedaf55425489085e91b170be6205a5a395f2dd4084a3e8dbc4fd8b13252f7effae067b571cb94a1e54aba45b1b9841308db0cc75b03cfce4ddafe89ce20f2d1
|
||||
AD: 7eb6d7b7bbaaa3c202a4f0f1de2263767169eb4a64853240d48c0f8d5d31b08d5baf42977614a57aad99426cde76d242cb37d2956d8c77dc4fd62a3abf30e8ac6cd58c8ef35e67497022960138c57787818892460f3bfc16e37ff388b1edc6ce2bc53c22717edc7a03d4c78b0dbbe9121c7fd8a3e3993b87a4fe389bff13bdae3b349de0b6db561602c53f746022aeb4483c723b67825042f4af20b7dd1e6031cf54215266295c524ac8e1370424c5c5e607fb3e23e97c8eebe64656775edf616422a8b974e1acf13ab45c9a367a7dd9b2d62f48bbc05819b65eccb813ca813f57b22ee4c280dbb5a9d8d5
|
||||
CT: 0b316ab2bcf5359900fa4082d5d253b49ad94b70e3fab544f98bd111cbcef6766cf953deec08cae1f489fe12f7acc0032db8a6b0c0eee0c206ea5fb973feaebf90f690e840094db5e13fdd7157ba127368c995b426529435a1bcdd1f14ce9125b8a0e4c96b6ec09e3c36a180adf81941c002d19c19d53c2009be803b987504606b7d43bdee5e0b32ff23c466b6cccfcd0d4e88fd1332e73712b5ab725c1a383e584f34f80daff29d285ae5e43cf1d0cc7a828e75c25daced3a581a93d7a50f313b33f38dddfaa23cd5b9914797db820ee2400d52bf5fa982277fe9b5881ac42981633b3957b0e935051828
|
||||
TAG: c549aa944d6d97e52e0793ed572682c0
|
||||
|
||||
KEY: fe4be6054773f634356ac328591fbc6f833b0d1beeb38dd5b6feb7481b4489d4
|
||||
NONCE: 000000000b3f16f898a5a7d5
|
||||
IN: 76ced1ade6d1ef4069afddb32e7432d4ff2fd06685121f7b16464e7a72d365744f547d2ccf53486310e38b42d8bacaf711e54c5458d2d68c4dbcc8de31ab6732f4430e88a64565f5b287640775aaa2af1cc461d3e415bb275c6246b1b58517aa72667eae291a2982eda175d1b22c5a58e6fec2b3743d55712f201ca24ba5c0ae8c25724871b2ec2fb914a8da5a52670ab9b43a83b8568ce74db5c634061cb80530c8070c38b8f48c33ba136cb9f2158ee7eda8b65f2192fc94d1291f182f101795b7190c74b319d2d3e02a97c824d9c9471a83797e4936310b207e3a1e0bcf75f7c3e3ee48a747641cdc4377f2d55082
|
||||
AD: 834cd775cbefe4b33a3ca53a00c06a3c4a666983e4115a029f15729460daa45d1505e95172d3695625a186b28b8be173a925af04665f209267b3c5123e8be13da447ee1ae856bb0925f35aaa76e04a7bca8460f76c2024de2149f38a8cfba81694b854885d72568105571b6b213a0bc188a44cc7fe13153cbf261401b238cf12a95e23cb56f240114f16e2f1e3a514615aab4449c0c49e4d900b0e17d1a8dabb53d43dca32fa052d576b73dd9b40856b515d6d7efc2a5c17e0ebcb17bd59dc86f22ce909301a2652f134e82ef0e4519487ed12d51536024f2ae8f75d937c42d003076e5dea8de0c684cda1f34253d8fc
|
||||
CT: f8defb6fe95dfec499b909996a1f75a198a90e4d6c6464d00a357a555311c42fe92dbbc4b79c935e4f0b1a95e44fdbc1380bebabca28db4dd0d2870daaafc38ef27908c3509e945714801cc51f1a07b2430c74fa64f2a7c2f7fd1551d258c9c3be020873fc1bf19f33ab6c660911dcf2317195d0efee82d20ec26d22611f9cf86c51a64e28b3a1f344500018e0855c88dae3c07acaeaa10b60388484dce93e16e6e1a6e69e899806648a92568c8780e9f4baacd98cbb353ac2f908e775d92303cfab843f15be0e0c322a958802fb1a60fcc7631f151f4c2b8cb965d2d296acef250275a2fecc0cea803ce7c058b12dd2
|
||||
TAG: baf9a51180f172e5c0cc2c946ce55055
|
||||
|
||||
KEY: a288b11ce5382ec724ce4ab2d7efa8e777e91ebd04367935e15f9dac483e9596
|
||||
NONCE: 00000000874144dbf648b325
|
||||
IN: 4c9195280a79a509919af4947e9e07231695fd7c5088539f23936ce88770ce07d9ad3ae4a463b3a57d0634d3a77ceaadf347a334682b04be8e58b8e86fb94a1f93255132b8cdb0df86f5bea354eea4e8315fea83e3fdf6e58aa9f26e93caa08e5e2551a94bd916a51fed29ec16f66800cda6a0aa24ec308bf5fb885afba272685de27c1edcdd3668048ef07b06e90d464a8aa28664903cac45e154e8e1e39c257e1ff506b9d95cef4f300bb73b899e7828602c3c1d290b8cf55ee5fd72ecce9e6efc9293aebf674a70e2a7673e75629c12950622dff71d3ec0992e57776c788c6927d30b4e24b749191c3ce8017f0ada6276e43720
|
||||
AD: 04abe8588c8c8c39a182092e5e7840442bd1c1149da102c4ee412bd8b82baa5087ef7291b5cd077c177c42770b0023e0e462b06e7553f191bcb0315a34918dcdbffe2b99c3e011b4220cc1775debcc0db55fa60df9b52234f3d3fa9606508badc26f30b47cdb4f1c0f4708d417b6853e66c2f1f67f6200daf760ceb64ffc43db27f057ad3ee973e31d7e5d5deb050315c1c687980c0c148ee1a492d47acfcd6132334176c11258c89b19ba02e6acc55d852f87b6a2169ed34a6147caa60906ac8c0813c0f05522af7b7f0faddb4bc297405e28ecf5a0f6aac6258422d29cfe250d61402840f3c27d0ce39b3e2d5f1e520541d2965e
|
||||
CT: 0afce770a12f15d67ac104ba0640aab95922390607473cbda71321156a5559906be933fb0980da56f27e89796eaa1054f5aacf1668d9f273cc69071b9e8e22af6a205a6a88f7ad918e22f616bddbb07c78913c7e056e769e6fcf91c7600c2740212e3a176e4110cac9e361a59a773457064d2dc652dd115d04f1c3756c0e1d39f6737a16b4508663e310934c49c58058b3c7b9af7bb2334c8a163608c42499658986927cda365e2aead3ac29de16e47e954383ea566f8fb245a4e5a934c767bb3bf7e0eb8a477fd0e1f61bcb238462a0d19c5cea9293ca58ade76829413216a7882cd2846323046694f78cd8b0347792ebb75abdc1
|
||||
TAG: eb9b2ee43e9a3ae1e33561800169d868
|
||||
|
||||
KEY: 65b63ed53750c88c508c44881ae59e6fff69c66288f3c14cfec503391262cafc
|
||||
NONCE: 000000007f5e560a1de434ba
|
||||
IN: 845ef27b6615fb699d37971db6b597930a7ef1e6f90054791eb04ddfe7252b5f88fd60eba5af469bc09661c0987a496fa540621afeec51bebda786826800943d977039dee76235248112ff8b743f25ed5f3cb0d3307f5e118d84fdbb9c3f5531bc177fb84549c994ea4496c65e5249da987dd755d46dc1788f582410266a10f291c1474f732183a2a39afe603771bb9c423fe3e8906f2be44a0c9a7c3f0ceb09d1d0f92d942383a875c0567c7869f045e56dd1a4d6e90c58d44fe0c5760bb4fd01de55439db52b56831e5a26a47de14249453a4f8e7da3cb3282c6622916197ebfaad85dd65c61e7d2d3ba626276366746f396394c1bf75f51ce
|
||||
AD: 51a3588398808e1d6a98505c6e5601ae2a2766f1f28f8f69d1ccbcad18038c157b41525be58ae4527a073748b7a04809e52a5df0c7988417607738e63d7ead47db795a346b04e740186e73ccad79f725b58ee22dc6e30d1f0a218eda1791e2229b253d4ab2b963a43e12318c8b0785c20fca3abcf220c08745d9f9602f0ece544a05736d76b12d249699c9e3e99f3f13cf4e5dc13a04125c949a5b30d034b23cb364c8781964bc6c30e5e5ca9673d517ef5f35965d8a8cf1be017e343df97b6bee37b30638b154286d1f36d2f9a0eaa23cc484eac5a05b15d9efc537d989dbc8b3106c0dc1a56e97e6aec2eff54a82cf7ae9df2af46b4c860f83
|
||||
CT: 027b14197b4012256b133b78ddc94e72fb4d724fefa4ae329f5a5fa3fa784fe6d7e1e805e3f7a75557de64de506d38237b467fa577efb59e7cfe2356bed6655c5aa4e238dcfeb75c16549a0917268768a96acb5e20546a1fb7e3a7cff887f49f2cd7a135f72a98a779150f3207bf733e88861fd79eadbf77fa3bfe97bfe8b6a991cb3bcc2cde8287f7e89384846561934b0f3e05e0646e0e1907770df67a7594161a4d0763faa6fa844080932159999d528ee0558710058ce16f97d13ac9fd9bf5044191188bbfb598d0fafbdf790b61ce0781ecc04218a30ded45efd498cc9ba03562ed2b4a993ee98876b3ab7a9bc07829f1c4ca6ead98c06b
|
||||
TAG: e0bf9b6837428843f5a233ee5ddb8a1e
|
||||
|
||||
KEY: 4986fd62d6cb86b2eaf219174bec681bebcdef86c8be291f27d3e5dc69e2feba
|
||||
NONCE: 00000000d08d486620ed2e84
|
||||
IN: 3a22ad5de387db4fdd5d62a1b728c23a8dddc50b1e89f54f6198b90499f9da3122ebeb38ebf5fdfe30309734f79aff01e3de1e196b35bffa33bae451f31f74b8aec03763f9e0861a34fe5db0b40c76e57c7fc582bfa19c94ee25b5e168270f379bf9f8a0a18bed05de256f8f0dd7c23ba2ff1c7f721409462f04cc611ad9bd4c3c9acf30742acfb9518a6375cbb15d65a1bc6993ea434894f93d4f6e05996ebc1bd56579296309a2c6b8fde95072168b5fd31927c4c0abaa056bcd16221d5f220be47591f43255013a262dce439817f534830ba82155347e5fe3101f8011b89365a6568214ed0661914e8cb3431d6c8f2347dfc1209a3eca4aaf0a111f47fe
|
||||
AD: 7dd3f656a03c001b45ca0680bc3ac9d68c6e96b591d3c69eb8c65e489009d845cb331c98b82e627e06d5bf01e74c573df268c2386f12628c019951d42f55991ff20d72a7b2c45f41d0be7af428c92f324aaab8df70d900301cdf09a3d93eb711c919d34a86fff9cb078322ee2e0ad48dbdf3b7884f0f2dc5c36262c59bcfd75ac6200f59c6fcd0ce10ff5005fef5df8f0432377dfbfc1db8f559e27e1aeef3380ea3864867d36a25a18654779a751586cad3b8a46b90864ee697b08605673b8d2123433c020a21c4db243dde2420c12fd4d54a2704a0c8c376454a1b5e80fd6db89aabd56d9b421f29649e474824dfa56cb5c673c504d10be52b53751709fe
|
||||
CT: c40180afd53001663ff4834110f56e6b0f178cd3c0e7f7de5d0089ee41d8403ffb98e84922706544a344d7e2625b12cf66b9c966f9f57d7b94e3e4b34e6f0aaed1763ce012782e2f5e1682e6c343fc7961fedddd0919d0b910e9923c17e36406979b256b85aec24ee352f03b48c1302eab419c83dccc5372cc059e9de596224fa70098eb32fc9579e97917b923914fa2efc30ab29b457bf14e45583b3771486bdc0876f3ea6e1a646746c4f8c5cb2641a1557c8473e6ea67d4811a67485ae9a678ff3a2408ca845c3b51957e189eef47dfc1d46bde4b9d754d7df13f828ddadb06e4ebddb5f0dafbdb28de4c5e6078926f20cdf9e97ecd58e309e640f74f06
|
||||
TAG: 2e8eb9ff4467c0f61c2abf6ca10893ef
|
||||
|
||||
KEY: 7d28a60810e43d3dfa32e97c07957ec069fc80cc6a50061830aa29b3aa777dfc
|
||||
NONCE: 0000000047738ac8f10f2c3a
|
||||
IN: b50278ae0f0fa2f918bb9a5ed3a0797c328e452974d33cbf26a1e213aa20c03d0d89490869754abf84dbbe231d7bccdced77d53fd4527356d8e02b681fc89a535ae87308bf7fbc26197a5ea85bdb3aa033b8da5cd197ea6d72f96f63b03f4ecc7adedf399a5043776cdb32c08f30b77f34df85f8adb8e02649a04b020b03e17d445ca63e4ed73ae432c481392e031eba2f9d2f7f981d1e50917822bd6ff71c239d33444ada3523a59dfbce5457eadec1ab926c9e6c5299c7521e3f204b96901a712504fcc782e8cea80ba12a7f7e71cec3d0871899b6ca059061da037715f7d13fed01c9cade1e687b4fbb1f4ac4b040db3b43800f112fb900e4f772d61b921cbce4da6f
|
||||
AD: 324292813b7df15bc070cc5d8a4bf74ead036430be63abc43304cf653959a24a91c7de5a671c50fa8a87e21bb82b069999aadfb6895d8bda4c3083d17b8ca55b9ab1511ed8c4b39d8c28c11a22ef90c08a983e3fe2d988df9e02b16a20b24f39ddb28429625f511db08298c4dc321f6c268fc836a6191df6232f51c463a397a8d8b33374abe94e62c0f5c322387e1fc4a1c1980a04a1a3c2c31b32f183a11c3268c6dca521149dc16af120a78be6627210e8ddbc44472bc24d66ce3681c7579b3d9a425212a704a4f5105cb80f0d18ee860953d10b59c114826779bbc368d7a0eece9f223e47cd8e5fd453607d101d9d9c2bd9a658d6520b87d7b4263f6d845a524a36e4
|
||||
CT: 2c217e969c04740a1acfa30117eb5b32dc573df3354f4cc3bf8f696ff905f1e640f3b2c250473b376622e0c9bda13b94640521be1ef0fc660b4c10dbe2bfc093030753e04f6aaecf813b43b61f960455974b8bb8a9b461d1e8fd3802315e863c00448f24dd38deb90e135493274eb14ccbde15c50dcad734ed815a806be6622492a84cd062e3ba567b909a205a1d0d2bedd40169697d261c7b6c2e0b1f069853fd470e8f364a142c386c439a6dbe192ded5a3d0fbf73799f588c59e58c60249d980ddcf0d9693631cd9b3f972509c3a77123d38d9e267ecad06e1208e3f1c0a69fbca7c3bb1a48fda19493d0f8f48398820057b94120f3ef97d87e9e8a1b301a2534c68f
|
||||
TAG: ce507bdb0c71f8e89f5078495f7995b8
|
||||
|
||||
KEY: a76e9b916f5a67b78a5949651c8c3a9741a1bc3c41cdf85fd2c8f3e9a0616098
|
||||
NONCE: 000000000808da8292dc14e0
|
||||
IN: 9c149eeb09345c3c22462b03e49eb4dba6bc98b269b1086d752bcd8eea53b8977b238a04a994baf915591686baab90b79a3bf7d9adb2c6c2e31acd3e72f0813fb745aa5fb2e3da408f78001c9c09bd26a1a2646011b6120aaa2bbacc4a16c39fb5257b9b2ea2ad8bf70bcc9855cf11841116c2767310cf3cd49d1aa44cd505f079761e064d5bc7cea4a7173b086882a77d3fc179efc86fc4db8a373491d2ed81eabc63c950e832db17d09f474d4ec46bde47830caf26fabaa0372b81fccc449c0e19ccd630caf693a7b43bb1c408a54e03f50c44280a05ad89fb6e8f01d8ac278edf556e5d86ceb4b614fb2ef133819c6e1ff6abb86c54a135256204b5cd400b93624d3932e7c2b046
|
||||
AD: 6aeb7031e4a2e23eea93f05fdc562aa2bf43b8998bea7344377aaddc60fbdb7bcb1491d379ed0cb613ee757cfb66490db61bb431d2fad34b38ddd55bc5b22aa6c4773b9992f34b878c5663f6e8cdb5f80a17f4d312bf342492e48d1ce4c6d754076a634fece61500acf8168d47381af4faf980c6cac2bfd5da8c09b6edb0f543bf0fe02643e38d73fa37d8ae87fb66193f22e57faf4393c007d48c8631a685d520578f8f89db684fb371ea02f3a58b1e2168f0216321139472e0d03b6d90ba8aab65402e1c1ac4f9172a60e27e3d997b9b05e2f672120d6c87bcafa6d4c9b4cf8ba8a82932d92840368fc53dc5b48526103dcab5f1531038aabe89171327ac559b98a3cf4ea70bf051
|
||||
CT: 9c3faab9261a63cea9477b3269007283995b06ba77ef83d9e693f7e4ee9855550eef94855be39a7a435b6a3584b202973777c7b2482376ba47b49311947a64983b60236756ee4455d4cfada8c36af8eb06b06ba2f6b79ffb1185c89f2b2a831cfaa3855fc1841d8910908be5078352011168a67d36372d851a3217cabf593ea462dcd325cf9a4f67e85418fd5c924e9b92ab026cbee4e7ab1067066cb5949dfc699a68fe539e1abb13cec33904e5207e6963d24f5a0b770613b8b00014e791bfff88f9c25ca126127a2f8d1d1e9794efd28dce98b53e228073faae8d5047530d502184fc341321c3f55fcbf41187fc31262c325b97f519959b6a29b36c71f76f60196bb1457b77c8bb
|
||||
TAG: 73b00b1705602479aab944dcc1b282a2
|
||||
|
||||
KEY: 98cd2477a7a072c69f375b88d09ed9d7b9c3df3f87e36ce621726f76e3b41a1d
|
||||
NONCE: 0000000077d185aaf715aa48
|
||||
IN: 42b31eefdacab0f03ef6060156000c8195adb0976cabbe1a42bfcc09f85659c60b98638401f2d2e2facfb9a97a62926bb0cecaf3af0180a01bfb6e576babf7fc43331937a92abd30cddfa3e450f895e9dd914dea3fafd759c136d685310ebce28ac0613ccdbf30115946c9634b67510b77d0e37f07714b2ddac9d7095b8d4bd887c132c4a9127eb01c8dedb4c39c87b98a741316656f9a8d5a5b0c0ac84789aa2347a5f99ca5ad55cd1bcf98f703eb4b00badb8a8555f38b3b368db8ba7ceea94e8b219f51edce75d84166b5602156ed5962a93a51db73c59d87e906179d7a74a2a2a69d8ad99f323225c87e475d3f771b4a203a2e2b03b458401044649fa6536dfab24d7037807dcbf6518e6578
|
||||
AD: f5bb1496052a4361dddf72a288e36953a3d815d6876c013f1d6ba839e127f721b052b1f7d8ca20c7dc0386a7d459ebd7eb9fc8cb08941e6ca9ddb980f3115f65bc1928a414d441ae71dcb879d5bfe0cde0562bc37f8fde0d5291ad405c92fcbb860c43b55ac0fe663b54b3d0616aca13a5c82b7b5d34125a05c2acb5530141030e6f2aa0c8322b2c8fa307e7518918e550e9f48921c6168f094d8758e16b9f815fd0458095c4143f0922adb1840d0e685636825a9c90ee90ee537f4b8dceecbc4287c82dc9a00d7e51671e37ea284ee3ca501b1b2596459d3f592f70186f41125739e342c9f6be9241973b1414dfe5fb8cba1af82e679278cfcf95420df0c5364af4d7e72ad57d5c871fcbc35462
|
||||
CT: 7a3bf3e3ad5ae3ab71fb1f7121c3d8fb511099484b50af7ca128ee0337ed4b828dc4cde0b88dc1e8089101fa82c9beb3eb48fdcf0f5b16da441f5a3fce9a590022af95a94aed6a3e71e505f60f303c78c356f274ea85a55354078530664ecda32c80e77dc20974b3b38f4825b8fbee8c3970769a2f42c5181608a8d7d76ef4d093961b665ee42b9708fcafe2c82d3a307173e2a25ad2528c3bf83352b9265e45b70722d7cf8c9b80826d21335234ee3db69d0d37871c83222365900c96c17a7e9f5742d0bfe383be24d0d44590d4b0f29f7abe0c65daaffb968b3f2657b1eb300534eacb52ec7a6b6f9f57a50a91b1799f491361cf613c934b7f520dc4eeeb40ffc45e10be0a95e76f366d4eac14
|
||||
TAG: 69302888812eea030d621b640e7bcf7c
|
||||
|
||||
KEY: 2f0f4631ab1c1bcf8f3ad0559c818d50e0af7d8cd63faa357f2069f30881d9cb
|
||||
NONCE: 000000007d0ced2fdb1c9173
|
||||
IN: 6516ba1d29357144eebfa486d21decf223da3aa76ec29bbfcbe7f1eeaf4a847710e5080177f7e5a7c8b4752c219b1cc70aef4db861ba67d0fa6222d9f4a1dc756a0ba44e62906f9374a960c16198866d867854d88f528a60e212eb91645787e75685b2e215c0a41990abc344a77236ec0186ba63a664592938cc5a8ac1d3eb99c95ce00e19fbe249263083d85b052d48bfdffc01585dc57bb2a2c6c4a819604c1ec0548c6f0f78dc05e4418b36277dc07233c7532f9c289d6aed0cc6bc7df4fd0a536c497b982e2dad2c30d2db1c6545a845c5dfa83a4ac49ef06fc9c919079d3e299e31b5c3be370814ae5022ae469d3ee55246a41bd0dc4e64351cc38c3c09af0a1aee3b388a6892deff0df3f93cd92d722b
|
||||
AD: 1ccfa1ececc8de1e200d0ecc19dcf67b7c96bea3a282c2bccba61035db5c14776387b8b8f58e5757deb0129d4e5e315f64df354a5985d2e47ebbbeafe0c914f7cf1d63dd0311ace19e69a8b6ff0ab25cc8df0408d22132205e89e5eb679268d82b2913e64e3f885bbf4a6d379b760b94590e3140dd7275ab4713cb56d0b716e2718f11316640cb394802862d39e77a46d0c065af3caf7dec14e887039d8aa8c3d3a8ac1ee06026f49d00b2f59d971b54735e95a51f199389a93a4fc24ebaba1f7a2eef7412f61febf79084fbf481afc6fb6b204084e5ef5df71f30506459dea074f11fc055cd2a8c0fc922c4811a849984352a56a15659b7d07a4cc90b88623638ea00c4c8bc13884df2237b359f2877aa41d6
|
||||
CT: e580093789ba17ffb46672dc326f09278aca08598d3e5458eaa53e6ed45d5c71a396e35b5ea3fe7b7c0496a734d24f1c75420694be2ff095d5172fd3407794e4b99fd7c374fbe8d1564a048614d3f355bfb5866de1a53e1a51f9f5e8312253cfd82f36efaa1898c850ca0d975ad1e8b0d9597a5a9e6516fe2a3c92efb7495557a8afc3da15b0d3e2ba58f612519836946cf2d15b898320d16a026c8c00a1be2e35f0ebe68f28d91c6c45d24c3f3c157cb132fa659b7794df883d90741fa2d2afcc4f27858e13ecd41b154a35d24947ae7361170060c107d8ecacb393ea67104b60457278a392fdf1794bab97d3b02b71a4eb015eaa38a4b4c944c2bc7cd5e329da4a1ab2937a6af81a6caa5fce752331fdefd4
|
||||
TAG: 19bbacfac768bb0ce71e39c5d4d3e9a0
|
||||
|
||||
KEY: a48b9b6df475e566aba7671fbd76772cb0eff0b12499967978ce3e25fac92feb
|
||||
NONCE: 000000002ccbf0d6c40cb302
|
||||
IN: 09da1cacd001dce4f7573a065a4406fe0da04ab367a2d87780a2762e168957a88d3fa78f0a4b6978d449026e5a801d32884b6e14fdaaaf864214f928ebc03dead081fee96683ebb032362d5088c4c2a3b1e242f055f2604919f4dd551db777a258cf9da6d95a2bde249247812b9efc7985cf08707620808524d6dd3079b0b63bf0f71ea5de834ccb8b7c6a97125fd6ca49148e866d3134bbf1d8a6b714e9a80fe549c8bfefe342f41be2ba2300e0028f78cefab65274632dfdbe70bf7d655ec4036df561f2d4fc4d56a482bbe2f9f2ae279b3aa216b39afee75e53602de319484db89a51e844f38c361634e474f8f1f01c340f3f3594860d671346449c6d08ee38de22d246309bc7e4a252a29c86aa6d94b5b4fa58904c70
|
||||
AD: 1c2503d5aa1aad193f0da12874074ea0432bb76a61cd43a3017061514da0759846a0f3ae3a49fdb0b6d29f713de665beacb6568f2694112ca380d13f3c1698316866a7a7f87f1d7503a92176ab84fc08977b46ba664508a858e7525753c45511b3d2f407d5e993c6ede77f13d12975707e5195704970a89f71fc30828049f92f944f3aa93d6a5297e678e08952919beb7eac5919df1919cab3c3da6aa696a1eeab6371f310f7e81143e7d240b0213ae554524b52000306160dd4877bf13ba0f13bbe867da7c7d707f31335eef4cd942938ac890a0829ec66bd30ae01a2188a6e5ea0f17cd7dc875e17f03c0ab5dd18e36db8a1fc1f72859ee046b62368f168b3bea2234e0432c07b7d8e1b9277f21e692c513b9e816e6860
|
||||
CT: 7d35cfe4be56bd6e0e09dedcd01735b915bc1891a4d1f6a541abc4bcd0ebe89dcb8e365e5813742e8ec65777b6159422fada747da99394252baf8a046fc1b60ad79755f545f4448627b7acaf403000894f5641e78d3f946dfca29ec617f0660dcd6e8d8827e67e1022a245c595d86e60fbd176bf721b171bbe5ecaf4ae671b9f3dd3920146e6ad431bd8fc431820e19454b6ca209723d80fdbee187fca9c937c979206ae97be55f6ba7366a5608770a11d537396485eb0a66586385f4d4cf3905d1fc90831c3e136d5d513fa22be285193142994a3ed477145bacdcbdd791e8b3b88b0d4f1d18b27382550a818c4fd8884bf36f677c6c3ff5677406e510911e696af75e5b3f859bef699bdd16e6215fdb98d874025eada50
|
||||
TAG: 0fa4cb2bab84336409aa4349ab99a8bd
|
||||
|
||||
KEY: 923d4b086b9e43b986f7b65e4cea6113a3d8aabefa89323c5e4d5b6f158bb7e0
|
||||
NONCE: 00000000a0f73297b87f5deb
|
||||
IN: 21435e8d5c8edf0684f58c2cba4070c10b4801adf46b6c4d322eb3990a38a9ad338ad704b9df6597f3e68d66cd5b56290c8466db2231e56d6bcb9c44e1bd081f42ca2a894dad369df2bd0d2c63d6c881732d6ea22bb22b5bc9a62eaffa1b094d0845f6b966d2cb095e7b3b8bcbc15e707449d35c8df4aea30c3b7243e977fffd59c80f1c5c9af4bb5a54b9c786fbbe8d21b2b906a87a786caed841a34a3e0cc0ac3209d83c58afba19edd63622dd261532d2cfb0b49d527d8eaa0887a087f5129d897f665264b229f860363d71a88b7d49c8dc6360182b357b0662391bb41337f46010ac32b9fada2d60a2efcb99365d3b27b7ac396900d1c821d0df8b86cc9cc1f2673259a33efea610bf8e1d00d7e9db2afea21da8f58c55f799999d
|
||||
AD: c853a8b39c0dc597d562f123cd221e4104b65423a062a4f4ba890ba344feb84290f61817e23330c365f58c3583ce08360d3c1171982ead5496d525ac878f23a57480a6ee39d4e65afd6268245bb982a2545fa1195427cdbbcd404cdad5198f55cce2a5a028fae435f71b15921d066e8d43766c32b2f2c3f57c0674e129607dcd3703eca529414adaee79d81fed432153cceb6f3fc53404810d8ec878f7d94be5d379d0e0e1aa9bc404b4b5d396038a9d76a5ce53c9f3759b8e50fb331858ca58cee81bfc3ee58baef5d19c402a3dc8b36370ec1ace5a4aa2527fb94b4f933a4ab8ccaaf6a5af5a779eae5667c2a24ab027e781c8d4f30c377aa5885a2fdaf6507d18cd824a847c35368b4ea984d2c3c3824a5b8ba3042e1852504a21a3
|
||||
CT: f2e21052eebbb86a4f5e803360855d8632aa727dca6f5e79dd74d7aff106e442001928d113005b030f8446f8eff2ee951db663978abe43090dd5ad2c51ba97a0ecf988c607d95e486d02524f690fa3c28d5c48c1f75c1f555e7b43fe7e46f2ca2b9fdb408ec4ba18b6cdde2af673183cb7b1a3c23ae77eddd4cac75e1ea14743fc571f8d31ce2e96787524cd48aadaa474181c096a032184574ddc25a6e0ac8441c212bc36298708e33c963ae931e6c6241d1affeef7b6ef759495df44b6ab647447693cf703569e69aa72f1def9a342b8978c1edea9703a421ca75b92cac4de14b88c693200022b8a2ed22b1c4678b99f4d695e080dd1196d7168e14f0d0f8ff880d742e97b9f6d00af1f7118e10b77c5ef3ea6c52f84a20fd6ea46dc
|
||||
TAG: 9bd8b7743c056bb2334833afd6143e18
|
||||
|
||||
KEY: df73adab2768559ea983cce85453fe81d79be3b3c57f202b31b94d6635cf2e4b
|
||||
NONCE: 00000000e7a87e6bf6b5a354
|
||||
IN: 0032a37abf661faa18c587fd2aa88885c061deeba81105dd221969bed5d59c7204b09b1a8c4c8de3b9f748c7fc70626ebeaca060233a57b102221b1bf0f3d9fdaaad3d2b1439c24d08f9c67f49f3c47128f92ee530abf4c4f4573bc60ae4b38109f55bca3ca9e1ba9f9fd6e34ba0d174892977a53356e1f5c88c614fe3ff3b3dd0818e7a2285412e3b37444bbe8a80942efcfd03958809a6966cda9430b2f0c9e552f4bced6e19eb3e85fc5758bd7b588297ccbed37ed94c3adc8c08ea8b058462aac9d57a939ec711bc4ecfec944d2b653b7cfc7b02a65d7057c9fdadd51b9da8cc4a3c68dae9da8b9c5319c1a2baa3d6c891c5ac4a39461484b5a01abc64df447ada24c04a4363e605eaccf339a9aa515e724206206da6d22bbd2f52e64cd7c895
|
||||
AD: f833e5ab4f8bc89167f80f576b1d6b22cdd0e30721f5f735799746cf645b6eff531d4c7b03584f3dfcb73cbd35ac42736216dc7f0de098a4f42c61ceb4b227ee288e47d697a0a76afc762f084e8fdbf9351c28340c324771c109a469341ab10ca10483ed2af5e878d7d3dc2bced2f72da3d1a25852b103ee9878e8158eb4309c1ce528f3a178ace153b6d3ae0af0d577cb3cb1540489e80427f792217ad8a09b84f027fca7ceb651b4264e98e94b4cb8a37b133390897233e8ba9103628d05b9609e8552c4a4b11e3f2fa8d56af36957390e88cba44656be3edace798cf8cdf7771bac338a256bc3cba6df97728f222f423ca7c6d149c9372d66163a98f79a234b00d4b75fb2ec860dcc2d1998105e4b9c01d68f079f3e0aa21cc534047fc7b858f8
|
||||
CT: b842eadfdf431c135bd6581d3eccae54e2267d8890036aa33dfe2d2d9715c44625441210a3a0d666d708d30588fe851ec36e10d8fa3584ed77b095149494b7c54379d62c8935e1d2b9a8f47e4759ad0b3437fdf2cc2fb6c5ea25ad10e0bdc9dc5b0517fc237eb783cc461c46665e2b1d1a5b8008dbf409ea2a63fea0276de23a32c99d92a498807a0f95e208fc6262321a78aafaf0cc3f833fff37bd4efa66f6023a25cdc6702cee3912799563d908a5183c9956a06aa71085d855dc7c809ed6e2889592b361ab3ab39060f8e419152187a794a19c2a1128882201900ea2cd597860674bf78d9720643df8701676718fd201baed4935a88e50558daf86edd08a9ab227ac7afae55c974b68de8dacad4a4d79b13ed6dfe74017a4cb9148e033436fb6
|
||||
TAG: ee1ec36804e1d5cdbddb52608c711fd8
|
||||
|
||||
KEY: 55a4be2448b464c2ea52a2f2664ed6aba865c14ea1fea77f4689331fd105c8d4
|
||||
NONCE: 00000000db37c0a405b4626d
|
||||
IN: d266e66272e5d3462081b004cb42429c8b9741e9f678153754d726f6f9aa513464763c5e793b482fe512fece97585f1426120d4cefb3d0a8cc0a8db4bde93fc72c78f44d4fecca14650c660d3e285b327e7cdd813063e7e867b8a2d059a41bab70432b7f857199894da90dca3fe5272bae1ec694a1a07b60b05df275784d4975637e4673109f3ba846dfd1a048b202ed8e89973be608b91ee4743b1e759900f1443038951fe6189e806638985f3c16338c3c60695df58e621154d79bb973859c4558e9dca90470f77c73f004443ad5db0717abbe43266f90e57397b83ac34d1fef2e897e2483d5bcdcb627abd64b0d1aef525835f25e76d6e9158232cdde6dce970b59f58de8a98e653be32fb58edabbcefa5065d73afdf1c9c4fbf50c1022bd22bfcb98e4b422
|
||||
AD: fd6a3fdd879f8880843eac20ae01c1b9dc3487d270a806572088ef2ddc1f1e0de495e71d4813bf5c501ad31e5d791c4b5b3a0a71b63fdddcc8de4b056064ef467989ecccc5d0160d403bf3a025d4892b3b1de3e062bc3581d4410f273338311eb4637529e4a680a6e4a5e26e308630a5b6d49ead6d543f8f2bf9050aa94ce091318721e1d8b96e279f34b9759b65037bec4bf6ccda6929705aeeeebe49e327e4d7a916620c9faf3765120658af34c53fbb97ec07657b3f088fcbdc401aa7949ddeda34d885018c2c23f4f0bb8218bf0d4fc90643658b4d8834f4a8c08e590c2a790995baa9e77627c342d283e454f84fcc05be15e9627a2d9be340c9d72f222bbdfc47905f56616cd9f936d49e4732f319f020513340fb8b22828db251b102b6b137c9533936d6
|
||||
CT: bd11ed07b7b4b30eeaf25d6a41a549cca0a5aee71f990ac566a37265d7af2ce3c03703427ee0b2755c2bdfc29f9d826aec6ee4ad28af48079ac23db16580b97424f3a4e35cc23625d39f95699d9ff5143e9a2bc26fcfee4f125f5aa2d968ccfc2faaf9db3c28850f6757f735cbc50c94c498bcde4f23bffafa8dd5f70d1a011e35eb26e905d4e68848fedebeb197be595c085ba33f11ba8398258445051751888e9bba111f800f31b37c447074ca6dce6d54b4dfad6cee5138643d4f6ac045e8047248924e88ea4294c7878bc22c9b41924ce301f22693c33733107bf1ba85e34806c5e4366ea66fc52a5f89dd9bf213239158b3d4d2600dde696c61d76c398b9bf10de9118e812e891c8f3355c0ecc6405f79bc32a58905e37888a1d8395fbedc3ac54eca569f
|
||||
TAG: 296a397d280d026fc3627f4718971be9
|
||||
|
||||
# Tag truncation tests.
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c2
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f3
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f37465
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a84
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a8413
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a841386
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a84138648
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a84138648a5
|
||||
|
||||
KEY: c66e89fbab01208f6a60847f4f34b38d27b554c119cf8d9e0b118aa7266ab865
|
||||
NONCE: 000000005d9856060c54ab06
|
||||
IN: f9e3e9b5ed07b2080db8c1ffc37e4a6cb3cd544608921e18610d00b17c6e
|
||||
AD: 85c112a1efe0a20ef3a550526a7afbc98f6367ebbede4e703099abd78f51
|
||||
CT: b5cc754f6dd19ef2d66f90e6bc9a322ddf216ef248cbe76b5ab6dd53bc36
|
||||
TAG: d3f7b9c295f374651a84138648a591
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -xe
|
||||
|
||||
go run make_legacy_aead_tests.go -cipher aes128 -mac sha1 > aes_128_cbc_sha1_tls_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher aes128 -mac sha1 -implicit-iv > aes_128_cbc_sha1_tls_implicit_iv_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher aes128 -mac sha256 > aes_128_cbc_sha256_tls_tests.txt
|
||||
|
||||
go run make_legacy_aead_tests.go -cipher aes256 -mac sha1 > aes_256_cbc_sha1_tls_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher aes256 -mac sha1 -implicit-iv > aes_256_cbc_sha1_tls_implicit_iv_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher aes256 -mac sha256 > aes_256_cbc_sha256_tls_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher aes256 -mac sha384 > aes_256_cbc_sha384_tls_tests.txt
|
||||
|
||||
go run make_legacy_aead_tests.go -cipher 3des -mac sha1 > des_ede3_cbc_sha1_tls_tests.txt
|
||||
go run make_legacy_aead_tests.go -cipher 3des -mac sha1 -implicit-iv > des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
|
|
@ -0,0 +1,321 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"crypto"
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"crypto/des"
|
||||
"crypto/hmac"
|
||||
_ "crypto/md5"
|
||||
"crypto/rc4"
|
||||
_ "crypto/sha1"
|
||||
_ "crypto/sha256"
|
||||
_ "crypto/sha512"
|
||||
"encoding/hex"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
var bulkCipher *string = flag.String("cipher", "", "The bulk cipher to use")
|
||||
var mac *string = flag.String("mac", "", "The hash function to use in the MAC")
|
||||
var implicitIV *bool = flag.Bool("implicit-iv", false, "If true, generate tests for a cipher using a pre-TLS-1.0 implicit IV")
|
||||
|
||||
// rc4Stream produces a deterministic stream of pseudorandom bytes. This is to
|
||||
// make this script idempotent.
|
||||
type rc4Stream struct {
|
||||
cipher *rc4.Cipher
|
||||
}
|
||||
|
||||
func newRc4Stream(seed string) (*rc4Stream, error) {
|
||||
cipher, err := rc4.NewCipher([]byte(seed))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &rc4Stream{cipher}, nil
|
||||
}
|
||||
|
||||
func (rs *rc4Stream) fillBytes(p []byte) {
|
||||
for i := range p {
|
||||
p[i] = 0
|
||||
}
|
||||
rs.cipher.XORKeyStream(p, p)
|
||||
}
|
||||
|
||||
func getHash(name string) (crypto.Hash, bool) {
|
||||
switch name {
|
||||
case "md5":
|
||||
return crypto.MD5, true
|
||||
case "sha1":
|
||||
return crypto.SHA1, true
|
||||
case "sha256":
|
||||
return crypto.SHA256, true
|
||||
case "sha384":
|
||||
return crypto.SHA384, true
|
||||
default:
|
||||
return 0, false
|
||||
}
|
||||
}
|
||||
|
||||
func getKeySize(name string) int {
|
||||
switch name {
|
||||
case "aes128":
|
||||
return 16
|
||||
case "aes256":
|
||||
return 32
|
||||
case "3des":
|
||||
return 24
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
func newBlockCipher(name string, key []byte) (cipher.Block, error) {
|
||||
switch name {
|
||||
case "aes128":
|
||||
return aes.NewCipher(key)
|
||||
case "aes256":
|
||||
return aes.NewCipher(key)
|
||||
case "3des":
|
||||
return des.NewTripleDESCipher(key)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown cipher '%s'", name)
|
||||
}
|
||||
}
|
||||
|
||||
type testCase struct {
|
||||
digest []byte
|
||||
key []byte
|
||||
nonce []byte
|
||||
input []byte
|
||||
ad []byte
|
||||
ciphertext []byte
|
||||
tag []byte
|
||||
tag_len int
|
||||
noSeal bool
|
||||
fails bool
|
||||
}
|
||||
|
||||
// options adds additional options for a test.
|
||||
type options struct {
|
||||
// extraPadding causes an extra block of padding to be added.
|
||||
extraPadding bool
|
||||
// maximalPadding causes the maximum allowed amount of padding to be added.
|
||||
maximalPadding bool
|
||||
// wrongPadding causes one of the padding bytes to be wrong.
|
||||
wrongPadding bool
|
||||
// wrongPaddingOffset specifies the byte offset of the incorrect padding
|
||||
// byte.
|
||||
wrongPaddingOffset int
|
||||
// noPadding causes padding is to be omitted. The plaintext + MAC must
|
||||
// be a multiple of the block size.
|
||||
noPadding bool
|
||||
// omitMAC causes the MAC to be omitted.
|
||||
omitMAC bool
|
||||
}
|
||||
|
||||
func makeTestCase(length int, options options) (*testCase, error) {
|
||||
rand, err := newRc4Stream("input stream")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
input := make([]byte, length)
|
||||
rand.fillBytes(input)
|
||||
|
||||
adFull := make([]byte, 13)
|
||||
ad := adFull[:len(adFull)-2]
|
||||
rand.fillBytes(ad)
|
||||
adFull[len(adFull)-2] = uint8(length >> 8)
|
||||
adFull[len(adFull)-1] = uint8(length & 0xff)
|
||||
|
||||
hash, ok := getHash(*mac)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unknown hash function '%s'", *mac)
|
||||
}
|
||||
|
||||
macKey := make([]byte, hash.Size())
|
||||
rand.fillBytes(macKey)
|
||||
|
||||
h := hmac.New(hash.New, macKey)
|
||||
h.Write(adFull)
|
||||
h.Write(input)
|
||||
digest := h.Sum(nil)
|
||||
|
||||
size := getKeySize(*bulkCipher)
|
||||
if size == 0 {
|
||||
return nil, fmt.Errorf("unknown cipher '%s'", *bulkCipher)
|
||||
}
|
||||
encKey := make([]byte, size)
|
||||
rand.fillBytes(encKey)
|
||||
|
||||
var fixedIV []byte
|
||||
var nonce []byte
|
||||
var sealed []byte
|
||||
var noSeal, fails bool
|
||||
block, err := newBlockCipher(*bulkCipher, encKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
iv := make([]byte, block.BlockSize())
|
||||
rand.fillBytes(iv)
|
||||
if *implicitIV {
|
||||
fixedIV = iv
|
||||
} else {
|
||||
nonce = iv
|
||||
}
|
||||
|
||||
cbc := cipher.NewCBCEncrypter(block, iv)
|
||||
|
||||
sealed = make([]byte, 0, len(input)+len(digest)+cbc.BlockSize())
|
||||
sealed = append(sealed, input...)
|
||||
if options.omitMAC {
|
||||
noSeal = true
|
||||
fails = true
|
||||
} else {
|
||||
sealed = append(sealed, digest...)
|
||||
}
|
||||
paddingLen := cbc.BlockSize() - len(sealed)%cbc.BlockSize()
|
||||
if options.noPadding {
|
||||
if paddingLen != cbc.BlockSize() {
|
||||
return nil, fmt.Errorf("invalid length for noPadding")
|
||||
}
|
||||
noSeal = true
|
||||
fails = true
|
||||
} else {
|
||||
if options.extraPadding || options.maximalPadding {
|
||||
if options.extraPadding {
|
||||
paddingLen += cbc.BlockSize()
|
||||
} else {
|
||||
if 256%cbc.BlockSize() != 0 {
|
||||
panic("256 is not a whole number of blocks")
|
||||
}
|
||||
paddingLen = 256 - len(sealed)%cbc.BlockSize()
|
||||
}
|
||||
noSeal = true
|
||||
}
|
||||
pad := make([]byte, paddingLen)
|
||||
for i := range pad {
|
||||
pad[i] = byte(paddingLen - 1)
|
||||
}
|
||||
sealed = append(sealed, pad...)
|
||||
if options.wrongPadding {
|
||||
if options.wrongPaddingOffset >= paddingLen {
|
||||
return nil, fmt.Errorf("invalid wrongPaddingOffset")
|
||||
}
|
||||
sealed[len(sealed)-paddingLen+options.wrongPaddingOffset]++
|
||||
noSeal = true
|
||||
// TLS specifies the all the padding bytes.
|
||||
fails = true
|
||||
}
|
||||
}
|
||||
cbc.CryptBlocks(sealed, sealed)
|
||||
|
||||
key := make([]byte, 0, len(macKey)+len(encKey)+len(fixedIV))
|
||||
key = append(key, macKey...)
|
||||
key = append(key, encKey...)
|
||||
key = append(key, fixedIV...)
|
||||
t := &testCase{
|
||||
digest: digest,
|
||||
key: key,
|
||||
nonce: nonce,
|
||||
input: input,
|
||||
ad: ad,
|
||||
ciphertext: sealed[:len(input)],
|
||||
tag: sealed[len(input):],
|
||||
tag_len: hash.Size(),
|
||||
noSeal: noSeal,
|
||||
fails: fails,
|
||||
}
|
||||
return t, nil
|
||||
}
|
||||
|
||||
func printTestCase(t *testCase) {
|
||||
fmt.Printf("# DIGEST: %s\n", hex.EncodeToString(t.digest))
|
||||
fmt.Printf("KEY: %s\n", hex.EncodeToString(t.key))
|
||||
fmt.Printf("NONCE: %s\n", hex.EncodeToString(t.nonce))
|
||||
fmt.Printf("IN: %s\n", hex.EncodeToString(t.input))
|
||||
fmt.Printf("AD: %s\n", hex.EncodeToString(t.ad))
|
||||
fmt.Printf("CT: %s\n", hex.EncodeToString(t.ciphertext))
|
||||
fmt.Printf("TAG: %s\n", hex.EncodeToString(t.tag))
|
||||
fmt.Printf("TAG_LEN: %d\n", t.tag_len)
|
||||
if t.noSeal {
|
||||
fmt.Printf("NO_SEAL: 01\n")
|
||||
}
|
||||
if t.fails {
|
||||
fmt.Printf("FAILS: 01\n")
|
||||
}
|
||||
}
|
||||
|
||||
func addTestCase(length int, options options) {
|
||||
t, err := makeTestCase(length, options)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
printTestCase(t)
|
||||
fmt.Printf("\n")
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
commandLine := fmt.Sprintf("go run make_legacy_aead_tests.go -cipher %s -mac %s", *bulkCipher, *mac)
|
||||
if *implicitIV {
|
||||
commandLine += " -implicit-iv"
|
||||
}
|
||||
fmt.Printf("# Generated by\n")
|
||||
fmt.Printf("# %s\n", commandLine)
|
||||
fmt.Printf("#\n")
|
||||
fmt.Printf("# Note: aead_test's input format splits the ciphertext and tag positions of the\n")
|
||||
fmt.Printf("# sealed input. But these legacy AEADs are MAC-then-encrypt and so the 'TAG' may\n")
|
||||
fmt.Printf("# also include padding. We write the byte length of the MAC to 'TAG_LEN' and\n")
|
||||
fmt.Printf("# include the unencrypted MAC in the 'DIGEST' tag above # each test case.\n")
|
||||
fmt.Printf("# each test case.\n")
|
||||
fmt.Printf("\n")
|
||||
|
||||
// For CBC-mode ciphers, emit tests for padding flexibility.
|
||||
fmt.Printf("# Test with non-minimal padding.\n")
|
||||
addTestCase(5, options{extraPadding: true})
|
||||
|
||||
fmt.Printf("# Test with bad padding values.\n")
|
||||
addTestCase(5, options{wrongPadding: true})
|
||||
|
||||
hash, ok := getHash(*mac)
|
||||
if !ok {
|
||||
panic("unknown hash")
|
||||
}
|
||||
|
||||
fmt.Printf("# Test with no padding.\n")
|
||||
addTestCase(64-hash.Size(), options{noPadding: true})
|
||||
|
||||
// Test with maximal padding at all rotations modulo the hash's block
|
||||
// size. Our smallest hash (SHA-1 at 64-byte blocks) exceeds our largest
|
||||
// block cipher (AES at 16-byte blocks), so this is also covers all
|
||||
// block cipher rotations. This is to ensure full coverage of the
|
||||
// kVarianceBlocks value in the constant-time logic.
|
||||
hashBlockSize := hash.New().BlockSize()
|
||||
for i := 0; i < hashBlockSize; i++ {
|
||||
fmt.Printf("# Test with maximal padding (%d mod %d).\n", i, hashBlockSize)
|
||||
addTestCase(hashBlockSize+i, options{maximalPadding: true})
|
||||
}
|
||||
|
||||
fmt.Printf("# Test if the unpadded input is too short for a MAC, but not publicly so.\n")
|
||||
addTestCase(0, options{omitMAC: true, maximalPadding: true})
|
||||
|
||||
fmt.Printf("# Test that each byte of incorrect padding is noticed.\n")
|
||||
for i := 0; i < 256; i++ {
|
||||
addTestCase(64-hash.Size(), options{
|
||||
maximalPadding: true,
|
||||
wrongPadding: true,
|
||||
wrongPaddingOffset: i,
|
||||
})
|
||||
}
|
||||
|
||||
// Generate long enough of input to cover a non-zero num_starting_blocks
|
||||
// value in the constant-time CBC logic.
|
||||
for l := 0; l < 500; l += 5 {
|
||||
addTestCase(l, options{})
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,297 @@
|
|||
// Copyright (c) 2017, Google Inc.
|
||||
//
|
||||
// Permission to use, copy, modify, and/or distribute this software for any
|
||||
// purpose with or without fee is hereby granted, provided that the above
|
||||
// copyright notice and this permission notice appear in all copies.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
// SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
// The make_cavp utility generates cipher_test input files from NIST CAVP Known
|
||||
// Answer Test response (.rsp) files.
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
cipher = flag.String("cipher", "", "The name of the cipher/mode (supported: aes, tdes, gcm). Required.")
|
||||
cmdLineLabelStr = flag.String("extra-labels", "", "Comma-separated list of additional label pairs to add (e.g. 'Cipher=AES-128-CBC,Operation=ENCRYPT')")
|
||||
swapIVAndPlaintext = flag.Bool("swap-iv-plaintext", false, "When processing CBC vector files for CTR mode, swap IV and plaintext.")
|
||||
)
|
||||
|
||||
type kvPair struct {
|
||||
key, value string
|
||||
}
|
||||
|
||||
// Test generates a FileTest file from a CAVP response file.
|
||||
type Test struct {
|
||||
translations map[kvPair]kvPair
|
||||
transform func(k, v string) []kvPair
|
||||
defaults map[string]string
|
||||
// kvDelim is the rune that delimits key-value pairs throughout the file ('=' or ':').
|
||||
kvDelim rune
|
||||
}
|
||||
|
||||
func (t *Test) parseKeyValue(s string) (key, value string) {
|
||||
if t.kvDelim == 0 {
|
||||
i := strings.IndexAny(s, "=:")
|
||||
if i != -1 {
|
||||
t.kvDelim = rune(s[i])
|
||||
}
|
||||
}
|
||||
if i := strings.IndexRune(s, t.kvDelim); t.kvDelim != 0 && i != -1 {
|
||||
key, value = s[:i], s[i+1:]
|
||||
if trimmed := strings.TrimSpace(value); len(trimmed) != 0 {
|
||||
value = trimmed
|
||||
} else {
|
||||
value = " "
|
||||
}
|
||||
} else {
|
||||
key = s
|
||||
}
|
||||
return strings.TrimSpace(key), value
|
||||
}
|
||||
|
||||
func (t *Test) translateKeyValue(key, value string) (string, string) {
|
||||
if kv, ok := t.translations[kvPair{key, ""}]; ok {
|
||||
if len(kv.value) == 0 && len(value) != 0 {
|
||||
return kv.key, value
|
||||
}
|
||||
return kv.key, kv.value
|
||||
}
|
||||
if kv, ok := t.translations[kvPair{key, value}]; ok {
|
||||
return kv.key, kv.value
|
||||
}
|
||||
return key, value
|
||||
}
|
||||
|
||||
func printKeyValue(key, value string) {
|
||||
if len(value) == 0 {
|
||||
fmt.Println(key)
|
||||
} else {
|
||||
// Omit the value if it is " ", i.e. print "key: ", not "key: ".
|
||||
value = strings.TrimSpace(value)
|
||||
fmt.Printf("%s: %s\n", key, value)
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Test) generate(r io.Reader, cmdLineLabelStr string) {
|
||||
s := bufio.NewScanner(r)
|
||||
|
||||
// Label blocks consist of lines of the form "[key]" or "[key =
|
||||
// value]". |labels| holds keys and values of the most recent block
|
||||
// of labels.
|
||||
var labels map[string]string
|
||||
|
||||
// Auxiliary labels passed as a flag.
|
||||
cmdLineLabels := make(map[string]string)
|
||||
if len(cmdLineLabelStr) != 0 {
|
||||
pairs := strings.Split(cmdLineLabelStr, ",")
|
||||
for _, p := range pairs {
|
||||
key, value := t.parseKeyValue(p)
|
||||
cmdLineLabels[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
t.kvDelim = 0 // Reset kvDelim for scanning the file.
|
||||
|
||||
// Whether we are in a test or a label section.
|
||||
inLabels := false
|
||||
inTest := false
|
||||
|
||||
n := 0
|
||||
var currentKv map[string]string
|
||||
for s.Scan() {
|
||||
n++
|
||||
line := s.Text()
|
||||
l := strings.TrimSpace(line)
|
||||
l = strings.SplitN(l, "#", 2)[0] // Trim trailing comments.
|
||||
|
||||
// Blank line.
|
||||
if len(l) == 0 {
|
||||
if inTest {
|
||||
// Fill in missing defaults at the end of a test case.
|
||||
for k, v := range t.defaults {
|
||||
if _, ok := currentKv[k]; !ok {
|
||||
printKeyValue(k, v)
|
||||
}
|
||||
}
|
||||
fmt.Println()
|
||||
}
|
||||
inTest = false
|
||||
currentKv = make(map[string]string)
|
||||
inLabels = false
|
||||
continue
|
||||
}
|
||||
|
||||
// Label section.
|
||||
if l[0] == '[' {
|
||||
if l[len(l)-1] != ']' {
|
||||
log.Fatalf("line #%d invalid: %q", n, line)
|
||||
}
|
||||
if !inLabels {
|
||||
labels = make(map[string]string)
|
||||
inLabels = true
|
||||
}
|
||||
|
||||
k, v := t.parseKeyValue(l[1 : len(l)-1])
|
||||
k, v = t.translateKeyValue(k, v)
|
||||
if len(k) != 0 {
|
||||
labels[k] = v
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
// Repeat the label map at the beginning of each test section.
|
||||
if !inTest {
|
||||
inTest = true
|
||||
for k, v := range cmdLineLabels {
|
||||
printKeyValue(k, v)
|
||||
currentKv[k] = v
|
||||
}
|
||||
for k, v := range labels {
|
||||
printKeyValue(k, v)
|
||||
currentKv[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
// Look up translation and apply transformation (if any).
|
||||
k, v := t.parseKeyValue(l)
|
||||
k, v = t.translateKeyValue(k, v)
|
||||
kvPairs := []kvPair{{k, v}}
|
||||
if t.transform != nil {
|
||||
kvPairs = t.transform(k, v)
|
||||
}
|
||||
|
||||
for _, kv := range kvPairs {
|
||||
k, v := kv.key, kv.value
|
||||
if *cipher == "tdes" && k == "Key" {
|
||||
v += v + v // Key1=Key2=Key3
|
||||
}
|
||||
if len(k) != 0 {
|
||||
printKeyValue(k, v)
|
||||
currentKv[k] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func usage() {
|
||||
fmt.Fprintln(os.Stderr, "usage: make_cavp <file 1> [<file 2> ...]")
|
||||
flag.PrintDefaults()
|
||||
}
|
||||
|
||||
func maybeSwapIVAndPlaintext(k, v string) []kvPair {
|
||||
if *swapIVAndPlaintext {
|
||||
if k == "Plaintext" {
|
||||
return []kvPair{{"IV", v}}
|
||||
} else if k == "IV" {
|
||||
return []kvPair{{"Plaintext", v}}
|
||||
}
|
||||
}
|
||||
return []kvPair{{k, v}}
|
||||
}
|
||||
|
||||
// Test generator for different values of the -cipher flag.
|
||||
var testMap = map[string]Test{
|
||||
// Generate cipher_test input file from AESVS .rsp file.
|
||||
"aes": Test{
|
||||
translations: map[kvPair]kvPair{
|
||||
{"ENCRYPT", ""}: {"Operation", "ENCRYPT"},
|
||||
{"DECRYPT", ""}: {"Operation", "DECRYPT"},
|
||||
{"COUNT", ""}: {"Count", ""},
|
||||
{"KEY", ""}: {"Key", ""},
|
||||
{"PLAINTEXT", ""}: {"Plaintext", ""},
|
||||
{"CIPHERTEXT", ""}: {"Ciphertext", ""},
|
||||
{"COUNT", ""}: {"", ""}, // delete
|
||||
},
|
||||
transform: maybeSwapIVAndPlaintext,
|
||||
},
|
||||
// Generate cipher_test input file from TMOVS .rsp file.
|
||||
"tdes": Test{
|
||||
translations: map[kvPair]kvPair{
|
||||
{"ENCRYPT", ""}: {"Operation", "ENCRYPT"},
|
||||
{"DECRYPT", ""}: {"Operation", "DECRYPT"},
|
||||
{"COUNT", ""}: {"Count", ""},
|
||||
{"KEYs", ""}: {"Key", ""},
|
||||
{"PLAINTEXT", ""}: {"Plaintext", ""},
|
||||
{"CIPHERTEXT", ""}: {"Ciphertext", ""},
|
||||
{"COUNT", ""}: {"", ""}, // delete
|
||||
},
|
||||
transform: maybeSwapIVAndPlaintext,
|
||||
},
|
||||
// Generate aead_test input file from GCMVS .rsp file.
|
||||
"gcm": Test{
|
||||
translations: map[kvPair]kvPair{
|
||||
{"Keylen", ""}: {"", ""}, // delete
|
||||
{"IVlen", ""}: {"", ""}, // delete
|
||||
{"PTlen", ""}: {"", ""}, // delete
|
||||
{"AADlen", ""}: {"", ""}, // delete
|
||||
{"Taglen", ""}: {"", ""}, // delete
|
||||
{"Count", ""}: {"", ""}, // delete
|
||||
{"Key", ""}: {"KEY", ""},
|
||||
{"IV", ""}: {"NONCE", ""},
|
||||
{"PT", ""}: {"IN", ""},
|
||||
{"AAD", ""}: {"AD", ""},
|
||||
{"Tag", ""}: {"TAG", ""},
|
||||
{"FAIL", ""}: {"FAILS", " "},
|
||||
},
|
||||
transform: func(k, v string) []kvPair {
|
||||
if k == "FAILS" {
|
||||
// FAIL cases only appear in the decrypt rsp files. Skip encryption for
|
||||
// these.
|
||||
return []kvPair{{"FAILS", " "}, {"NO_SEAL", " "}}
|
||||
}
|
||||
return []kvPair{{k, v}}
|
||||
},
|
||||
defaults: map[string]string{
|
||||
"IN": " ", // FAIL tests don't have IN
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
|
||||
if len(flag.Args()) == 0 {
|
||||
fmt.Fprintf(os.Stderr, "no input files\n\n")
|
||||
flag.Usage()
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
test, ok := testMap[*cipher]
|
||||
if !ok {
|
||||
fmt.Fprintf(os.Stderr, "invalid cipher: %q\n\n", *cipher)
|
||||
flag.Usage()
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
args := append([]string{"make_cavp"}, os.Args[1:]...)
|
||||
fmt.Printf("# Generated by %q\n\n", strings.Join(args, " "))
|
||||
|
||||
for i, p := range flag.Args() {
|
||||
f, err := os.Open(p)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
fmt.Printf("# File %d: %s\n\n", i+1, p)
|
||||
test.generate(f, *cmdLineLabelStr)
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue