From eade1731c4e887bc0de34b8c527bba691ae70494 Mon Sep 17 00:00:00 2001 From: Soo Hwan Na Date: Fri, 7 Jun 2024 12:54:57 +0900 Subject: [PATCH] TgBot++: Initial Android client app --- .gitmodules | 3 + clientapp/android/.gitignore | 15 + clientapp/android/.idea/.gitignore | 3 + clientapp/android/.idea/.name | 1 + .../android/.idea/codeStyles/Project.xml | 123 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + clientapp/android/.idea/compiler.xml | 6 + .../.idea/deploymentTargetSelector.xml | 18 + clientapp/android/.idea/gradle.xml | 19 + clientapp/android/.idea/kotlinc.xml | 6 + clientapp/android/.idea/migrations.xml | 10 + clientapp/android/.idea/misc.xml | 9 + clientapp/android/.idea/vcs.xml | 6 + clientapp/android/app/.gitignore | 1 + clientapp/android/app/CMakeLists.txt | 0 clientapp/android/app/build.gradle.kts | 65 + clientapp/android/app/proguard-rules.pro | 21 + .../tgbotclient/ExampleInstrumentedTest.kt | 24 + .../android/app/src/main/AndroidManifest.xml | 29 + .../android/app/src/main/cpp/CMakeLists.txt | 52 + .../android/app/src/main/cpp/JNIOnLoad.h | 36 + .../app/src/main/cpp/JavaCppConverter.hpp | 36 + .../android/app/src/main/cpp/external/openssl | 1 + .../app/src/main/cpp/include/openssl/asn1.h | 1133 +++++++ .../app/src/main/cpp/include/openssl/asn1t.h | 946 ++++++ .../app/src/main/cpp/include/openssl/bio.h | 1015 ++++++ .../app/src/main/cpp/include/openssl/cmp.h | 648 ++++ .../app/src/main/cpp/include/openssl/cms.h | 508 +++ .../app/src/main/cpp/include/openssl/conf.h | 214 ++ .../main/cpp/include/openssl/configuration.h | 164 + .../src/main/cpp/include/openssl/core_names.h | 476 +++ .../app/src/main/cpp/include/openssl/crmf.h | 229 ++ .../app/src/main/cpp/include/openssl/crypto.h | 561 ++++ .../app/src/main/cpp/include/openssl/ct.h | 573 ++++ .../app/src/main/cpp/include/openssl/err.h | 512 +++ .../app/src/main/cpp/include/openssl/ess.h | 128 + .../src/main/cpp/include/openssl/fipskey.h | 36 + .../app/src/main/cpp/include/openssl/lhash.h | 398 +++ .../app/src/main/cpp/include/openssl/ocsp.h | 483 +++ .../src/main/cpp/include/openssl/opensslv.h | 114 + .../app/src/main/cpp/include/openssl/pkcs12.h | 363 +++ .../app/src/main/cpp/include/openssl/pkcs7.h | 430 +++ .../src/main/cpp/include/openssl/safestack.h | 297 ++ .../app/src/main/cpp/include/openssl/srp.h | 285 ++ .../app/src/main/cpp/include/openssl/ssl.h | 2894 +++++++++++++++++ .../app/src/main/cpp/include/openssl/ui.h | 407 +++ .../app/src/main/cpp/include/openssl/x509.h | 1286 ++++++++ .../src/main/cpp/include/openssl/x509_vfy.h | 902 +++++ .../app/src/main/cpp/include/openssl/x509v3.h | 1454 +++++++++ .../android/app/src/main/cpp/tgbotclient.cpp | 326 ++ .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 342716 bytes .../royna/tgbotclient/ClientApplication.kt | 11 + .../com/royna/tgbotclient/MainActivity.kt | 99 + .../royna/tgbotclient/SocketCommandNative.kt | 31 + .../royna/tgbotclient/ui/home/HomeFragment.kt | 43 + .../tgbotclient/ui/home/HomeViewModel.kt | 9 + .../ui/settings/SettingsActivity.kt | 20 + .../ui/settings/TgClientSettings.kt | 128 + .../ui/text_to_chat/TextToChatFragment.kt | 77 + .../ui/text_to_chat/TextToChatViewModel.kt | 72 + .../tgbotclient/ui/uptime/UptimeFragment.kt | 47 + .../tgbotclient/ui/uptime/UptimeViewModel.kt | 28 + .../src/main/jniLibs/arm64-v8a/libcrypto.so | Bin 0 -> 5725664 bytes .../app/src/main/jniLibs/arm64-v8a/libssl.so | Bin 0 -> 1143992 bytes .../src/main/jniLibs/armeabi-v7a/libcrypto.so | Bin 0 -> 4183772 bytes .../src/main/jniLibs/armeabi-v7a/libssl.so | Bin 0 -> 1029444 bytes .../app/src/main/jniLibs/x86/libcrypto.so | Bin 0 -> 5156252 bytes .../app/src/main/jniLibs/x86/libssl.so | Bin 0 -> 1235416 bytes .../app/src/main/jniLibs/x86_64/libcrypto.so | Bin 0 -> 5906648 bytes .../app/src/main/jniLibs/x86_64/libssl.so | Bin 0 -> 1138640 bytes .../src/main/res/drawable/black_border.xml | 7 + .../src/main/res/drawable/ic_menu_camera.xml | 12 + .../src/main/res/drawable/ic_menu_gallery.xml | 9 + .../main/res/drawable/ic_menu_slideshow.xml | 9 + .../src/main/res/drawable/side_nav_bar.xml | 9 + .../app/src/main/res/layout/activity_main.xml | 26 + .../app/src/main/res/layout/app_bar_main.xml | 31 + .../app/src/main/res/layout/content_main.xml | 21 + .../app/src/main/res/layout/fragment_home.xml | 7 + .../main/res/layout/fragment_text_to_chat.xml | 53 + .../src/main/res/layout/fragment_uptime.xml | 26 + .../src/main/res/layout/nav_header_main.xml | 33 + .../src/main/res/layout/settings_activity.xml | 9 + .../main/res/menu/activity_main_drawer.xml | 20 + .../android/app/src/main/res/menu/main.xml | 9 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 4966 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 15652 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 8062 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 2718 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 7996 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 4122 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 7788 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 25284 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 12590 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 15108 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 49580 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 23132 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 24258 bytes .../ic_launcher_foreground.webp | Bin 0 -> 82416 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 36680 bytes .../main/res/navigation/mobile_navigation.xml | 25 + .../app/src/main/res/values-land/dimens.xml | 3 + .../src/main/res/values-w1240dp/dimens.xml | 3 + .../app/src/main/res/values-w600dp/dimens.xml | 3 + .../app/src/main/res/values/dimens.xml | 8 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 19 + .../app/src/main/res/xml/preference_main.xml | 22 + .../com/royna/tgbotclient/ExampleUnitTest.kt | 17 + clientapp/android/build.gradle.kts | 5 + clientapp/android/gradle.properties | 23 + clientapp/android/gradle/libs.versions.toml | 38 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + clientapp/android/gradlew | 185 ++ clientapp/android/gradlew.bat | 89 + clientapp/android/settings.gradle.kts | 23 + 119 files changed, 18600 insertions(+) create mode 100644 clientapp/android/.gitignore create mode 100644 clientapp/android/.idea/.gitignore create mode 100644 clientapp/android/.idea/.name create mode 100644 clientapp/android/.idea/codeStyles/Project.xml create mode 100644 clientapp/android/.idea/codeStyles/codeStyleConfig.xml create mode 100644 clientapp/android/.idea/compiler.xml create mode 100644 clientapp/android/.idea/deploymentTargetSelector.xml create mode 100644 clientapp/android/.idea/gradle.xml create mode 100644 clientapp/android/.idea/kotlinc.xml create mode 100644 clientapp/android/.idea/migrations.xml create mode 100644 clientapp/android/.idea/misc.xml create mode 100644 clientapp/android/.idea/vcs.xml create mode 100644 clientapp/android/app/.gitignore create mode 100644 clientapp/android/app/CMakeLists.txt create mode 100644 clientapp/android/app/build.gradle.kts create mode 100644 clientapp/android/app/proguard-rules.pro create mode 100644 clientapp/android/app/src/androidTest/java/com/royna/tgbotclient/ExampleInstrumentedTest.kt create mode 100644 clientapp/android/app/src/main/AndroidManifest.xml create mode 100644 clientapp/android/app/src/main/cpp/CMakeLists.txt create mode 100644 clientapp/android/app/src/main/cpp/JNIOnLoad.h create mode 100644 clientapp/android/app/src/main/cpp/JavaCppConverter.hpp create mode 160000 clientapp/android/app/src/main/cpp/external/openssl create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/asn1.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/asn1t.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/bio.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/cmp.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/cms.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/conf.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/configuration.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/core_names.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/crmf.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/crypto.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/ct.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/err.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/ess.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/fipskey.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/lhash.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/ocsp.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/opensslv.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/pkcs12.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/pkcs7.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/safestack.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/srp.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/ssl.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/ui.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/x509.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/x509_vfy.h create mode 100644 clientapp/android/app/src/main/cpp/include/openssl/x509v3.h create mode 100644 clientapp/android/app/src/main/cpp/tgbotclient.cpp create mode 100644 clientapp/android/app/src/main/ic_launcher-playstore.png create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ClientApplication.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/MainActivity.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/SocketCommandNative.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeFragment.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeViewModel.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/SettingsActivity.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/TgClientSettings.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatFragment.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatViewModel.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeFragment.kt create mode 100644 clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeViewModel.kt create mode 100644 clientapp/android/app/src/main/jniLibs/arm64-v8a/libcrypto.so create mode 100644 clientapp/android/app/src/main/jniLibs/arm64-v8a/libssl.so create mode 100644 clientapp/android/app/src/main/jniLibs/armeabi-v7a/libcrypto.so create mode 100644 clientapp/android/app/src/main/jniLibs/armeabi-v7a/libssl.so create mode 100644 clientapp/android/app/src/main/jniLibs/x86/libcrypto.so create mode 100644 clientapp/android/app/src/main/jniLibs/x86/libssl.so create mode 100644 clientapp/android/app/src/main/jniLibs/x86_64/libcrypto.so create mode 100644 clientapp/android/app/src/main/jniLibs/x86_64/libssl.so create mode 100644 clientapp/android/app/src/main/res/drawable/black_border.xml create mode 100644 clientapp/android/app/src/main/res/drawable/ic_menu_camera.xml create mode 100644 clientapp/android/app/src/main/res/drawable/ic_menu_gallery.xml create mode 100644 clientapp/android/app/src/main/res/drawable/ic_menu_slideshow.xml create mode 100644 clientapp/android/app/src/main/res/drawable/side_nav_bar.xml create mode 100644 clientapp/android/app/src/main/res/layout/activity_main.xml create mode 100644 clientapp/android/app/src/main/res/layout/app_bar_main.xml create mode 100644 clientapp/android/app/src/main/res/layout/content_main.xml create mode 100644 clientapp/android/app/src/main/res/layout/fragment_home.xml create mode 100644 clientapp/android/app/src/main/res/layout/fragment_text_to_chat.xml create mode 100644 clientapp/android/app/src/main/res/layout/fragment_uptime.xml create mode 100644 clientapp/android/app/src/main/res/layout/nav_header_main.xml create mode 100644 clientapp/android/app/src/main/res/layout/settings_activity.xml create mode 100644 clientapp/android/app/src/main/res/menu/activity_main_drawer.xml create mode 100644 clientapp/android/app/src/main/res/menu/main.xml create mode 100644 clientapp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 clientapp/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 clientapp/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 clientapp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 clientapp/android/app/src/main/res/navigation/mobile_navigation.xml create mode 100644 clientapp/android/app/src/main/res/values-land/dimens.xml create mode 100644 clientapp/android/app/src/main/res/values-w1240dp/dimens.xml create mode 100644 clientapp/android/app/src/main/res/values-w600dp/dimens.xml create mode 100644 clientapp/android/app/src/main/res/values/dimens.xml create mode 100644 clientapp/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 clientapp/android/app/src/main/res/values/strings.xml create mode 100644 clientapp/android/app/src/main/res/xml/preference_main.xml create mode 100644 clientapp/android/app/src/test/java/com/royna/tgbotclient/ExampleUnitTest.kt create mode 100644 clientapp/android/build.gradle.kts create mode 100644 clientapp/android/gradle.properties create mode 100644 clientapp/android/gradle/libs.versions.toml create mode 100644 clientapp/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 clientapp/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 clientapp/android/gradlew create mode 100644 clientapp/android/gradlew.bat create mode 100644 clientapp/android/settings.gradle.kts diff --git a/.gitmodules b/.gitmodules index e5f8d5be..e15a61ea 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "src/third-party/cpp-httplib"] path = src/third-party/cpp-httplib url = https://github.com/yhirose/cpp-httplib +[submodule "clientapp/android/app/src/main/cpp/external/openssl"] + path = clientapp/android/app/src/main/cpp/external/openssl + url = https://github.com/openssl/openssl diff --git a/clientapp/android/.gitignore b/clientapp/android/.gitignore new file mode 100644 index 00000000..aa724b77 --- /dev/null +++ b/clientapp/android/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/clientapp/android/.idea/.gitignore b/clientapp/android/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/clientapp/android/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/clientapp/android/.idea/.name b/clientapp/android/.idea/.name new file mode 100644 index 00000000..2df3df2b --- /dev/null +++ b/clientapp/android/.idea/.name @@ -0,0 +1 @@ +TgBot++ Client \ No newline at end of file diff --git a/clientapp/android/.idea/codeStyles/Project.xml b/clientapp/android/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..7643783a --- /dev/null +++ b/clientapp/android/.idea/codeStyles/Project.xml @@ -0,0 +1,123 @@ + + + + + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/codeStyles/codeStyleConfig.xml b/clientapp/android/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/clientapp/android/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/compiler.xml b/clientapp/android/.idea/compiler.xml new file mode 100644 index 00000000..b589d56e --- /dev/null +++ b/clientapp/android/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/deploymentTargetSelector.xml b/clientapp/android/.idea/deploymentTargetSelector.xml new file mode 100644 index 00000000..62142c75 --- /dev/null +++ b/clientapp/android/.idea/deploymentTargetSelector.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/gradle.xml b/clientapp/android/.idea/gradle.xml new file mode 100644 index 00000000..0897082f --- /dev/null +++ b/clientapp/android/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/kotlinc.xml b/clientapp/android/.idea/kotlinc.xml new file mode 100644 index 00000000..fdf8d994 --- /dev/null +++ b/clientapp/android/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/migrations.xml b/clientapp/android/.idea/migrations.xml new file mode 100644 index 00000000..f8051a6f --- /dev/null +++ b/clientapp/android/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/misc.xml b/clientapp/android/.idea/misc.xml new file mode 100644 index 00000000..8978d23d --- /dev/null +++ b/clientapp/android/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/clientapp/android/.idea/vcs.xml b/clientapp/android/.idea/vcs.xml new file mode 100644 index 00000000..b2bdec2d --- /dev/null +++ b/clientapp/android/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/clientapp/android/app/.gitignore b/clientapp/android/app/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/clientapp/android/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/clientapp/android/app/CMakeLists.txt b/clientapp/android/app/CMakeLists.txt new file mode 100644 index 00000000..e69de29b diff --git a/clientapp/android/app/build.gradle.kts b/clientapp/android/app/build.gradle.kts new file mode 100644 index 00000000..96972531 --- /dev/null +++ b/clientapp/android/app/build.gradle.kts @@ -0,0 +1,65 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.jetbrains.kotlin.android) +} + +android { + namespace = "com.royna.tgbotclient" + compileSdk = 34 + + defaultConfig { + applicationId = "com.royna.tgbotclient" + minSdk = 26 + targetSdk = 34 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + externalNativeBuild { + cmake { + cppFlags += "" + } + } + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + externalNativeBuild { + cmake { + path = file("src/main/cpp/CMakeLists.txt") + version = "3.22.1" + } + } + buildFeatures { + viewBinding = true + buildConfig = true + } +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + implementation(libs.androidx.activity) + implementation(libs.androidx.constraintlayout) + implementation(libs.androidx.lifecycle.livedata.ktx) + implementation(libs.androidx.lifecycle.viewmodel.ktx) + implementation(libs.androidx.navigation.fragment.ktx) + implementation(libs.androidx.navigation.ui.ktx) + implementation(libs.androidx.preference.ktx) + implementation(libs.androidx.preference) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) +} \ No newline at end of file diff --git a/clientapp/android/app/proguard-rules.pro b/clientapp/android/app/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/clientapp/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/clientapp/android/app/src/androidTest/java/com/royna/tgbotclient/ExampleInstrumentedTest.kt b/clientapp/android/app/src/androidTest/java/com/royna/tgbotclient/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..cc011976 --- /dev/null +++ b/clientapp/android/app/src/androidTest/java/com/royna/tgbotclient/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.royna.tgbotclient + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.royna.tgbotclient", appContext.packageName) + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/AndroidManifest.xml b/clientapp/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..02ddd845 --- /dev/null +++ b/clientapp/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clientapp/android/app/src/main/cpp/CMakeLists.txt b/clientapp/android/app/src/main/cpp/CMakeLists.txt new file mode 100644 index 00000000..4f60a96c --- /dev/null +++ b/clientapp/android/app/src/main/cpp/CMakeLists.txt @@ -0,0 +1,52 @@ + +# For more information about using CMake with Android Studio, read the +# documentation: https://d.android.com/studio/projects/add-native-code.html. +# For more examples on how to use CMake, see https://github.com/android/ndk-samples. + +# Sets the minimum CMake version required for this project. +cmake_minimum_required(VERSION 3.22.1) + +# Declares the project name. The project name can be accessed via ${ PROJECT_NAME}, +# Since this is the top level CMakeLists.txt, the project name is also accessible +# with ${CMAKE_PROJECT_NAME} (both CMake variables are in-sync within the top level +# build script scope). +project("tgbotclient") + +# Creates and names a library, sets it as either STATIC +# or SHARED, and provides the relative paths to its source code. +# You can define multiple libraries, and CMake builds them for you. +# Gradle automatically packages shared libraries with your APK. +# +# In this top level CMakeLists.txt, ${CMAKE_PROJECT_NAME} is used to define +# the target library name; in the sub-module's CMakeLists.txt, ${PROJECT_NAME} +# is preferred for the same purpose. +# +# In order to load a library into your app from Java/Kotlin, you must call +# System.loadLibrary() and pass the name of the library defined here; +# for GameActivity/NativeActivity derived applications, the same library name must be +# used in the AndroidManifest.xml file. +add_library(${CMAKE_PROJECT_NAME} SHARED + # List C/C++ source files with relative paths to this CMakeLists.txt. + tgbotclient.cpp) + +set(ABSL_PROPAGATE_CXX_STD ON) +add_subdirectory(../../../../../../src/third-party/abseil-cpp abseil-cpp) + +add_library(crypto_openssl SHARED IMPORTED) +set_target_properties(crypto_openssl PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/libcrypto.so) + +# Specifies libraries CMake should link to your target library. You +# can link libraries from various origins, such as libraries defined in this +# build script, prebuilt third-party libraries, or Android system libraries. +target_link_libraries(${CMAKE_PROJECT_NAME} + # List libraries link to the target library + android + log + z + crypto_openssl + absl::log_initialize absl::log) + +target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE include) +target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE external/openssl/include) +target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ../../../../../../src/socket/include) +target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=) \ No newline at end of file diff --git a/clientapp/android/app/src/main/cpp/JNIOnLoad.h b/clientapp/android/app/src/main/cpp/JNIOnLoad.h new file mode 100644 index 00000000..7bd950cc --- /dev/null +++ b/clientapp/android/app/src/main/cpp/JNIOnLoad.h @@ -0,0 +1,36 @@ +// +// Created by royna on 6/7/2024. +// + +#ifndef TGBOT_CLIENT_JNIONLOAD_H +#define TGBOT_CLIENT_JNIONLOAD_H + +#include +#include +#include + +#define NATIVE_METHOD(fn, sig) \ + { \ + .name = #fn, \ + .signature = sig, \ + .fnPtr = reinterpret_cast(fn),\ + } + +#define NATIVE_METHOD_SZ(methods) sizeof(methods) / sizeof(JNINativeMethod) + +static inline jint JNI_onLoadDef(JavaVM *vm, std::string cls, const JNINativeMethod methods[], + size_t size) { + JNIEnv *env; + int rc = JNI_ERR; + if (vm->GetEnv(reinterpret_cast(&env), JNI_VERSION_1_6) != JNI_OK) { + return rc; + } + jclass c = env->FindClass(cls.c_str()); + if (c == nullptr) return rc; + + rc = env->RegisterNatives(c, methods, size); + assert(rc == JNI_OK); + return JNI_VERSION_1_6; +} + +#endif //TGBOT_CLIENT_JNIONLOAD_H diff --git a/clientapp/android/app/src/main/cpp/JavaCppConverter.hpp b/clientapp/android/app/src/main/cpp/JavaCppConverter.hpp new file mode 100644 index 00000000..e595644d --- /dev/null +++ b/clientapp/android/app/src/main/cpp/JavaCppConverter.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include + +#include +#include + + +template +To Convert(JNIEnv *env, const From str) = delete; + +template <> +std::string Convert(JNIEnv *env, const jstring str) { + jboolean isCopy; + + if (env->ExceptionOccurred()) { + return {}; + } + const char *convertedValue = env->GetStringUTFChars(str, &isCopy); + std::string string = std::string(convertedValue); + env->ReleaseStringUTFChars(str, convertedValue); + return string; +} + +template <> +jstring Convert(JNIEnv *env, const std::string str) { + if (env->ExceptionOccurred()) { + return nullptr; + } + return env->NewStringUTF(str.c_str()); +} + +template <> +jstring Convert(JNIEnv *env, const char* str) { + return Convert(env, std::string(str)); +} diff --git a/clientapp/android/app/src/main/cpp/external/openssl b/clientapp/android/app/src/main/cpp/external/openssl new file mode 160000 index 00000000..db2ac4f6 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/external/openssl @@ -0,0 +1 @@ +Subproject commit db2ac4f6ebd8f3d7b2a60882992fbea1269114e2 diff --git a/clientapp/android/app/src/main/cpp/include/openssl/asn1.h b/clientapp/android/app/src/main/cpp/include/openssl/asn1.h new file mode 100644 index 00000000..09712345 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/asn1.h @@ -0,0 +1,1133 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/asn1.h.in + * + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_ASN1_H +# define OPENSSL_ASN1_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_ASN1_H +# endif + +# ifndef OPENSSL_NO_STDIO +# include +# endif +# include +# include +# include +# include +# include +# include +# include + +# include +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define V_ASN1_UNIVERSAL 0x00 +# define V_ASN1_APPLICATION 0x40 +# define V_ASN1_CONTEXT_SPECIFIC 0x80 +# define V_ASN1_PRIVATE 0xc0 + +# define V_ASN1_CONSTRUCTED 0x20 +# define V_ASN1_PRIMITIVE_TAG 0x1f +# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG + +# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ +# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ +# define V_ASN1_ANY -4/* used in ASN1 template code */ + +# define V_ASN1_UNDEF -1 +/* ASN.1 tag values */ +# define V_ASN1_EOC 0 +# define V_ASN1_BOOLEAN 1 /**/ +# define V_ASN1_INTEGER 2 +# define V_ASN1_BIT_STRING 3 +# define V_ASN1_OCTET_STRING 4 +# define V_ASN1_NULL 5 +# define V_ASN1_OBJECT 6 +# define V_ASN1_OBJECT_DESCRIPTOR 7 +# define V_ASN1_EXTERNAL 8 +# define V_ASN1_REAL 9 +# define V_ASN1_ENUMERATED 10 +# define V_ASN1_UTF8STRING 12 +# define V_ASN1_SEQUENCE 16 +# define V_ASN1_SET 17 +# define V_ASN1_NUMERICSTRING 18 /**/ +# define V_ASN1_PRINTABLESTRING 19 +# define V_ASN1_T61STRING 20 +# define V_ASN1_TELETEXSTRING 20/* alias */ +# define V_ASN1_VIDEOTEXSTRING 21 /**/ +# define V_ASN1_IA5STRING 22 +# define V_ASN1_UTCTIME 23 +# define V_ASN1_GENERALIZEDTIME 24 /**/ +# define V_ASN1_GRAPHICSTRING 25 /**/ +# define V_ASN1_ISO64STRING 26 /**/ +# define V_ASN1_VISIBLESTRING 26/* alias */ +# define V_ASN1_GENERALSTRING 27 /**/ +# define V_ASN1_UNIVERSALSTRING 28 /**/ +# define V_ASN1_BMPSTRING 30 + +/* + * NB the constants below are used internally by ASN1_INTEGER + * and ASN1_ENUMERATED to indicate the sign. They are *not* on + * the wire tag values. + */ + +# define V_ASN1_NEG 0x100 +# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) + +/* For use with d2i_ASN1_type_bytes() */ +# define B_ASN1_NUMERICSTRING 0x0001 +# define B_ASN1_PRINTABLESTRING 0x0002 +# define B_ASN1_T61STRING 0x0004 +# define B_ASN1_TELETEXSTRING 0x0004 +# define B_ASN1_VIDEOTEXSTRING 0x0008 +# define B_ASN1_IA5STRING 0x0010 +# define B_ASN1_GRAPHICSTRING 0x0020 +# define B_ASN1_ISO64STRING 0x0040 +# define B_ASN1_VISIBLESTRING 0x0040 +# define B_ASN1_GENERALSTRING 0x0080 +# define B_ASN1_UNIVERSALSTRING 0x0100 +# define B_ASN1_OCTET_STRING 0x0200 +# define B_ASN1_BIT_STRING 0x0400 +# define B_ASN1_BMPSTRING 0x0800 +# define B_ASN1_UNKNOWN 0x1000 +# define B_ASN1_UTF8STRING 0x2000 +# define B_ASN1_UTCTIME 0x4000 +# define B_ASN1_GENERALIZEDTIME 0x8000 +# define B_ASN1_SEQUENCE 0x10000 +/* For use with ASN1_mbstring_copy() */ +# define MBSTRING_FLAG 0x1000 +# define MBSTRING_UTF8 (MBSTRING_FLAG) +# define MBSTRING_ASC (MBSTRING_FLAG|1) +# define MBSTRING_BMP (MBSTRING_FLAG|2) +# define MBSTRING_UNIV (MBSTRING_FLAG|4) +# define SMIME_OLDMIME 0x400 +# define SMIME_CRLFEOL 0x800 +# define SMIME_STREAM 0x1000 + +/* Stacks for types not otherwise defined in this header */ +SKM_DEFINE_STACK_OF_INTERNAL(X509_ALGOR, X509_ALGOR, X509_ALGOR) +#define sk_X509_ALGOR_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ALGOR_sk_type(sk)) +#define sk_X509_ALGOR_value(sk, idx) ((X509_ALGOR *)OPENSSL_sk_value(ossl_check_const_X509_ALGOR_sk_type(sk), (idx))) +#define sk_X509_ALGOR_new(cmp) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new(ossl_check_X509_ALGOR_compfunc_type(cmp))) +#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_null()) +#define sk_X509_ALGOR_new_reserve(cmp, n) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_new_reserve(ossl_check_X509_ALGOR_compfunc_type(cmp), (n))) +#define sk_X509_ALGOR_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ALGOR_sk_type(sk), (n)) +#define sk_X509_ALGOR_free(sk) OPENSSL_sk_free(ossl_check_X509_ALGOR_sk_type(sk)) +#define sk_X509_ALGOR_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ALGOR_sk_type(sk)) +#define sk_X509_ALGOR_delete(sk, i) ((X509_ALGOR *)OPENSSL_sk_delete(ossl_check_X509_ALGOR_sk_type(sk), (i))) +#define sk_X509_ALGOR_delete_ptr(sk, ptr) ((X509_ALGOR *)OPENSSL_sk_delete_ptr(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr))) +#define sk_X509_ALGOR_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) +#define sk_X509_ALGOR_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) +#define sk_X509_ALGOR_pop(sk) ((X509_ALGOR *)OPENSSL_sk_pop(ossl_check_X509_ALGOR_sk_type(sk))) +#define sk_X509_ALGOR_shift(sk) ((X509_ALGOR *)OPENSSL_sk_shift(ossl_check_X509_ALGOR_sk_type(sk))) +#define sk_X509_ALGOR_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ALGOR_sk_type(sk),ossl_check_X509_ALGOR_freefunc_type(freefunc)) +#define sk_X509_ALGOR_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), (idx)) +#define sk_X509_ALGOR_set(sk, idx, ptr) ((X509_ALGOR *)OPENSSL_sk_set(ossl_check_X509_ALGOR_sk_type(sk), (idx), ossl_check_X509_ALGOR_type(ptr))) +#define sk_X509_ALGOR_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) +#define sk_X509_ALGOR_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr)) +#define sk_X509_ALGOR_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_type(ptr), pnum) +#define sk_X509_ALGOR_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ALGOR_sk_type(sk)) +#define sk_X509_ALGOR_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ALGOR_sk_type(sk)) +#define sk_X509_ALGOR_dup(sk) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_dup(ossl_check_const_X509_ALGOR_sk_type(sk))) +#define sk_X509_ALGOR_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ALGOR) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_copyfunc_type(copyfunc), ossl_check_X509_ALGOR_freefunc_type(freefunc))) +#define sk_X509_ALGOR_set_cmp_func(sk, cmp) ((sk_X509_ALGOR_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ALGOR_sk_type(sk), ossl_check_X509_ALGOR_compfunc_type(cmp))) + + + +# define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ +/* + * This indicates that the ASN1_STRING is not a real value but just a place + * holder for the location where indefinite length constructed data should be + * inserted in the memory buffer + */ +# define ASN1_STRING_FLAG_NDEF 0x010 + +/* + * This flag is used by the CMS code to indicate that a string is not + * complete and is a place holder for content when it had all been accessed. + * The flag will be reset when content has been written to it. + */ + +# define ASN1_STRING_FLAG_CONT 0x020 +/* + * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING + * type. + */ +# define ASN1_STRING_FLAG_MSTRING 0x040 +/* String is embedded and only content should be freed */ +# define ASN1_STRING_FLAG_EMBED 0x080 +/* String should be parsed in RFC 5280's time format */ +# define ASN1_STRING_FLAG_X509_TIME 0x100 +/* This is the base type that holds just about everything :-) */ +struct asn1_string_st { + int length; + int type; + unsigned char *data; + /* + * The value of the following field depends on the type being held. It + * is mostly being used for BIT_STRING so if the input data has a + * non-zero 'unused bits' value, it will be handled correctly + */ + long flags; +}; + +/* + * ASN1_ENCODING structure: this is used to save the received encoding of an + * ASN1 type. This is useful to get round problems with invalid encodings + * which can break signatures. + */ + +typedef struct ASN1_ENCODING_st { + unsigned char *enc; /* DER encoding */ + long len; /* Length of encoding */ + int modified; /* set to 1 if 'enc' is invalid */ +} ASN1_ENCODING; + +/* Used with ASN1 LONG type: if a long is set to this it is omitted */ +# define ASN1_LONG_UNDEF 0x7fffffffL + +# define STABLE_FLAGS_MALLOC 0x01 +/* + * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted + * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting + * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias + * STABLE_FLAGS_CLEAR to reflect this. + */ +# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC +# define STABLE_NO_MASK 0x02 +# define DIRSTRING_TYPE \ + (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) +# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) + +struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +}; + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING_TABLE, ASN1_STRING_TABLE, ASN1_STRING_TABLE) +#define sk_ASN1_STRING_TABLE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) +#define sk_ASN1_STRING_TABLE_value(sk, idx) ((ASN1_STRING_TABLE *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), (idx))) +#define sk_ASN1_STRING_TABLE_new(cmp) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) +#define sk_ASN1_STRING_TABLE_new_null() ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_null()) +#define sk_ASN1_STRING_TABLE_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp), (n))) +#define sk_ASN1_STRING_TABLE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (n)) +#define sk_ASN1_STRING_TABLE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) +#define sk_ASN1_STRING_TABLE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) +#define sk_ASN1_STRING_TABLE_delete(sk, i) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (i))) +#define sk_ASN1_STRING_TABLE_delete_ptr(sk, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr))) +#define sk_ASN1_STRING_TABLE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) +#define sk_ASN1_STRING_TABLE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) +#define sk_ASN1_STRING_TABLE_pop(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) +#define sk_ASN1_STRING_TABLE_shift(sk) ((ASN1_STRING_TABLE *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_TABLE_sk_type(sk))) +#define sk_ASN1_STRING_TABLE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_TABLE_sk_type(sk),ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc)) +#define sk_ASN1_STRING_TABLE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), (idx)) +#define sk_ASN1_STRING_TABLE_set(sk, idx, ptr) ((ASN1_STRING_TABLE *)OPENSSL_sk_set(ossl_check_ASN1_STRING_TABLE_sk_type(sk), (idx), ossl_check_ASN1_STRING_TABLE_type(ptr))) +#define sk_ASN1_STRING_TABLE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) +#define sk_ASN1_STRING_TABLE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr)) +#define sk_ASN1_STRING_TABLE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_type(ptr), pnum) +#define sk_ASN1_STRING_TABLE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_TABLE_sk_type(sk)) +#define sk_ASN1_STRING_TABLE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk)) +#define sk_ASN1_STRING_TABLE_dup(sk) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk))) +#define sk_ASN1_STRING_TABLE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING_TABLE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_TABLE_freefunc_type(freefunc))) +#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_TABLE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_TABLE_sk_type(sk), ossl_check_ASN1_STRING_TABLE_compfunc_type(cmp))) + + +/* size limits: this stuff is taken straight from RFC2459 */ + +# define ub_name 32768 +# define ub_common_name 64 +# define ub_locality_name 128 +# define ub_state_name 128 +# define ub_organization_name 64 +# define ub_organization_unit_name 64 +# define ub_title 64 +# define ub_email_address 128 + +/* + * Declarations for template structures: for full definitions see asn1t.h + */ +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_TLC_st ASN1_TLC; +/* This is just an opaque pointer */ +typedef struct ASN1_VALUE_st ASN1_VALUE; + +/* Declare ASN1 functions: the implement macro in in asn1t.h */ + +/* + * The mysterious 'extern' that's passed to some macros is innocuous, + * and is there to quiet pre-C99 compilers that may complain about empty + * arguments in macro calls. + */ + +# define DECLARE_ASN1_FUNCTIONS_attr(attr, type) \ + DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, type) +# define DECLARE_ASN1_FUNCTIONS(type) \ + DECLARE_ASN1_FUNCTIONS_attr(extern, type) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS_attr(attr, type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, type) +# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_attr(extern, type) + +# define DECLARE_ASN1_FUNCTIONS_name_attr(attr, type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) +# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_FUNCTIONS_name_attr(extern, type, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, itname, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ + DECLARE_ASN1_ITEM_attr(attr, itname) +# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_attr(extern, type, itname, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(attr, type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_attr(attr, type, name, name) +# define DECLARE_ASN1_ENCODE_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(extern, type, name) + +# define DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(attr, type, name) \ + attr type *d2i_##name(type **a, const unsigned char **in, long len); \ + attr int i2d_##name(const type *a, unsigned char **out); +# define DECLARE_ASN1_ENCODE_FUNCTIONS_only(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(extern, type, name) + +# define DECLARE_ASN1_NDEF_FUNCTION_attr(attr, name) \ + attr int i2d_##name##_NDEF(const name *a, unsigned char **out); +# define DECLARE_ASN1_NDEF_FUNCTION(name) \ + DECLARE_ASN1_NDEF_FUNCTION_attr(extern, name) + +# define DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(attr, type, name) \ + attr type *name##_new(void); \ + attr void name##_free(type *a); +# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name_attr(extern, type, name) + +# define DECLARE_ASN1_DUP_FUNCTION_attr(attr, type) \ + DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, type) +# define DECLARE_ASN1_DUP_FUNCTION(type) \ + DECLARE_ASN1_DUP_FUNCTION_attr(extern, type) + +# define DECLARE_ASN1_DUP_FUNCTION_name_attr(attr, type, name) \ + attr type *name##_dup(const type *a); +# define DECLARE_ASN1_DUP_FUNCTION_name(type, name) \ + DECLARE_ASN1_DUP_FUNCTION_name_attr(extern, type, name) + +# define DECLARE_ASN1_PRINT_FUNCTION_attr(attr, stname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, stname) +# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ + DECLARE_ASN1_PRINT_FUNCTION_attr(extern, stname) + +# define DECLARE_ASN1_PRINT_FUNCTION_fname_attr(attr, stname, fname) \ + attr int fname##_print_ctx(BIO *out, const stname *x, int indent, \ + const ASN1_PCTX *pctx); +# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname_attr(extern, stname, fname) + +# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +# define I2D_OF(type) int (*)(const type *,unsigned char **) + +# define CHECKED_D2I_OF(type, d2i) \ + ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +# define CHECKED_I2D_OF(type, i2d) \ + ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +# define CHECKED_NEW_OF(type, xnew) \ + ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +# define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +# define CHECKED_PPTR_OF(type, p) \ + ((void**) (1 ? p : (type**)0)) + +# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) +# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(const type *,unsigned char **) +# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) + +typedef void *d2i_of_void(void **, const unsigned char **, long); +typedef int i2d_of_void(const void *, unsigned char **); + +/*- + * The following macros and typedefs allow an ASN1_ITEM + * to be embedded in a structure and referenced. Since + * the ASN1_ITEM pointers need to be globally accessible + * (possibly from shared libraries) they may exist in + * different forms. On platforms that support it the + * ASN1_ITEM structure itself will be globally exported. + * Other platforms will export a function that returns + * an ASN1_ITEM pointer. + * + * To handle both cases transparently the macros below + * should be used instead of hard coding an ASN1_ITEM + * pointer in a structure. + * + * The structure will look like this: + * + * typedef struct SOMETHING_st { + * ... + * ASN1_ITEM_EXP *iptr; + * ... + * } SOMETHING; + * + * It would be initialised as e.g.: + * + * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; + * + * and the actual pointer extracted with: + * + * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); + * + * Finally an ASN1_ITEM pointer can be extracted from an + * appropriate reference with: ASN1_ITEM_rptr(X509). This + * would be used when a function takes an ASN1_ITEM * argument. + * + */ + + +/* + * Platforms that can't easily handle shared global variables are declared as + * functions returning ASN1_ITEM pointers. + */ + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +# define ASN1_ITEM_ptr(iptr) (iptr()) + +/* Macro to include ASN1_ITEM pointer from base type */ +# define ASN1_ITEM_ref(iptr) (iptr##_it) + +# define ASN1_ITEM_rptr(ref) (ref##_it()) + +# define DECLARE_ASN1_ITEM_attr(attr, name) \ + attr const ASN1_ITEM * name##_it(void); +# define DECLARE_ASN1_ITEM(name) \ + DECLARE_ASN1_ITEM_attr(extern, name) + +/* Parameters used by ASN1_STRING_print_ex() */ + +/* + * These determine which characters to escape: RFC2253 special characters, + * control characters and MSB set characters + */ + +# define ASN1_STRFLGS_ESC_2253 1 +# define ASN1_STRFLGS_ESC_CTRL 2 +# define ASN1_STRFLGS_ESC_MSB 4 + +/* Lower 8 bits are reserved as an output type specifier */ +# define ASN1_DTFLGS_TYPE_MASK 0x0FUL +# define ASN1_DTFLGS_RFC822 0x00UL +# define ASN1_DTFLGS_ISO8601 0x01UL + +/* + * This flag determines how we do escaping: normally RC2253 backslash only, + * set this to use backslash and quote. + */ + +# define ASN1_STRFLGS_ESC_QUOTE 8 + +/* These three flags are internal use only. */ + +/* Character is a valid PrintableString character */ +# define CHARTYPE_PRINTABLESTRING 0x10 +/* Character needs escaping if it is the first character */ +# define CHARTYPE_FIRST_ESC_2253 0x20 +/* Character needs escaping if it is the last character */ +# define CHARTYPE_LAST_ESC_2253 0x40 + +/* + * NB the internal flags are safely reused below by flags handled at the top + * level. + */ + +/* + * If this is set we convert all character strings to UTF8 first + */ + +# define ASN1_STRFLGS_UTF8_CONVERT 0x10 + +/* + * If this is set we don't attempt to interpret content: just assume all + * strings are 1 byte per character. This will produce some pretty odd + * looking output! + */ + +# define ASN1_STRFLGS_IGNORE_TYPE 0x20 + +/* If this is set we include the string type in the output */ +# define ASN1_STRFLGS_SHOW_TYPE 0x40 + +/* + * This determines which strings to display and which to 'dump' (hex dump of + * content octets or DER encoding). We can only dump non character strings or + * everything. If we don't dump 'unknown' they are interpreted as character + * strings with 1 octet per character and are subject to the usual escaping + * options. + */ + +# define ASN1_STRFLGS_DUMP_ALL 0x80 +# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 + +/* + * These determine what 'dumping' does, we can dump the content octets or the + * DER encoding: both use the RFC2253 #XXXXX notation. + */ + +# define ASN1_STRFLGS_DUMP_DER 0x200 + +/* + * This flag specifies that RC2254 escaping shall be performed. + */ +#define ASN1_STRFLGS_ESC_2254 0x400 + +/* + * All the string flags consistent with RFC2253, escaping control characters + * isn't essential in RFC2253 but it is advisable anyway. + */ + +# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ + ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + ASN1_STRFLGS_UTF8_CONVERT | \ + ASN1_STRFLGS_DUMP_UNKNOWN | \ + ASN1_STRFLGS_DUMP_DER) + + +struct asn1_type_st { + int type; + union { + char *ptr; + ASN1_BOOLEAN boolean; + ASN1_STRING *asn1_string; + ASN1_OBJECT *object; + ASN1_INTEGER *integer; + ASN1_ENUMERATED *enumerated; + ASN1_BIT_STRING *bit_string; + ASN1_OCTET_STRING *octet_string; + ASN1_PRINTABLESTRING *printablestring; + ASN1_T61STRING *t61string; + ASN1_IA5STRING *ia5string; + ASN1_GENERALSTRING *generalstring; + ASN1_BMPSTRING *bmpstring; + ASN1_UNIVERSALSTRING *universalstring; + ASN1_UTCTIME *utctime; + ASN1_GENERALIZEDTIME *generalizedtime; + ASN1_VISIBLESTRING *visiblestring; + ASN1_UTF8STRING *utf8string; + /* + * set and sequence are left complete and still contain the set or + * sequence bytes + */ + ASN1_STRING *set; + ASN1_STRING *sequence; + ASN1_VALUE *asn1_value; + } value; +}; + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_TYPE, ASN1_TYPE, ASN1_TYPE) +#define sk_ASN1_TYPE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_TYPE_sk_type(sk)) +#define sk_ASN1_TYPE_value(sk, idx) ((ASN1_TYPE *)OPENSSL_sk_value(ossl_check_const_ASN1_TYPE_sk_type(sk), (idx))) +#define sk_ASN1_TYPE_new(cmp) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new(ossl_check_ASN1_TYPE_compfunc_type(cmp))) +#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_null()) +#define sk_ASN1_TYPE_new_reserve(cmp, n) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_TYPE_compfunc_type(cmp), (n))) +#define sk_ASN1_TYPE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_TYPE_sk_type(sk), (n)) +#define sk_ASN1_TYPE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_TYPE_sk_type(sk)) +#define sk_ASN1_TYPE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_TYPE_sk_type(sk)) +#define sk_ASN1_TYPE_delete(sk, i) ((ASN1_TYPE *)OPENSSL_sk_delete(ossl_check_ASN1_TYPE_sk_type(sk), (i))) +#define sk_ASN1_TYPE_delete_ptr(sk, ptr) ((ASN1_TYPE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr))) +#define sk_ASN1_TYPE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) +#define sk_ASN1_TYPE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) +#define sk_ASN1_TYPE_pop(sk) ((ASN1_TYPE *)OPENSSL_sk_pop(ossl_check_ASN1_TYPE_sk_type(sk))) +#define sk_ASN1_TYPE_shift(sk) ((ASN1_TYPE *)OPENSSL_sk_shift(ossl_check_ASN1_TYPE_sk_type(sk))) +#define sk_ASN1_TYPE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_TYPE_sk_type(sk),ossl_check_ASN1_TYPE_freefunc_type(freefunc)) +#define sk_ASN1_TYPE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), (idx)) +#define sk_ASN1_TYPE_set(sk, idx, ptr) ((ASN1_TYPE *)OPENSSL_sk_set(ossl_check_ASN1_TYPE_sk_type(sk), (idx), ossl_check_ASN1_TYPE_type(ptr))) +#define sk_ASN1_TYPE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) +#define sk_ASN1_TYPE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr)) +#define sk_ASN1_TYPE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_type(ptr), pnum) +#define sk_ASN1_TYPE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_TYPE_sk_type(sk)) +#define sk_ASN1_TYPE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_TYPE_sk_type(sk)) +#define sk_ASN1_TYPE_dup(sk) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_TYPE_sk_type(sk))) +#define sk_ASN1_TYPE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_TYPE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_copyfunc_type(copyfunc), ossl_check_ASN1_TYPE_freefunc_type(freefunc))) +#define sk_ASN1_TYPE_set_cmp_func(sk, cmp) ((sk_ASN1_TYPE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_TYPE_sk_type(sk), ossl_check_ASN1_TYPE_compfunc_type(cmp))) + + +typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; + +DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) +DECLARE_ASN1_ENCODE_FUNCTIONS_name(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) + +/* This is used to contain a list of bit names */ +typedef struct BIT_STRING_BITNAME_st { + int bitnum; + const char *lname; + const char *sname; +} BIT_STRING_BITNAME; + +# define B_ASN1_TIME \ + B_ASN1_UTCTIME | \ + B_ASN1_GENERALIZEDTIME + +# define B_ASN1_PRINTABLE \ + B_ASN1_NUMERICSTRING| \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_T61STRING| \ + B_ASN1_IA5STRING| \ + B_ASN1_BIT_STRING| \ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING|\ + B_ASN1_SEQUENCE|\ + B_ASN1_UNKNOWN + +# define B_ASN1_DIRECTORYSTRING \ + B_ASN1_PRINTABLESTRING| \ + B_ASN1_TELETEXSTRING|\ + B_ASN1_BMPSTRING|\ + B_ASN1_UNIVERSALSTRING|\ + B_ASN1_UTF8STRING + +# define B_ASN1_DISPLAYTEXT \ + B_ASN1_IA5STRING| \ + B_ASN1_VISIBLESTRING| \ + B_ASN1_BMPSTRING|\ + B_ASN1_UTF8STRING + +DECLARE_ASN1_ALLOC_FUNCTIONS_name(ASN1_TYPE, ASN1_TYPE) +DECLARE_ASN1_ENCODE_FUNCTIONS(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) + +int ASN1_TYPE_get(const ASN1_TYPE *a); +void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); +int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); +int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); + +ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); +void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_OBJECT, ASN1_OBJECT, ASN1_OBJECT) +#define sk_ASN1_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_OBJECT_sk_type(sk)) +#define sk_ASN1_OBJECT_value(sk, idx) ((ASN1_OBJECT *)OPENSSL_sk_value(ossl_check_const_ASN1_OBJECT_sk_type(sk), (idx))) +#define sk_ASN1_OBJECT_new(cmp) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new(ossl_check_ASN1_OBJECT_compfunc_type(cmp))) +#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_null()) +#define sk_ASN1_OBJECT_new_reserve(cmp, n) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_OBJECT_compfunc_type(cmp), (n))) +#define sk_ASN1_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_OBJECT_sk_type(sk), (n)) +#define sk_ASN1_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_ASN1_OBJECT_sk_type(sk)) +#define sk_ASN1_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_OBJECT_sk_type(sk)) +#define sk_ASN1_OBJECT_delete(sk, i) ((ASN1_OBJECT *)OPENSSL_sk_delete(ossl_check_ASN1_OBJECT_sk_type(sk), (i))) +#define sk_ASN1_OBJECT_delete_ptr(sk, ptr) ((ASN1_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr))) +#define sk_ASN1_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) +#define sk_ASN1_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) +#define sk_ASN1_OBJECT_pop(sk) ((ASN1_OBJECT *)OPENSSL_sk_pop(ossl_check_ASN1_OBJECT_sk_type(sk))) +#define sk_ASN1_OBJECT_shift(sk) ((ASN1_OBJECT *)OPENSSL_sk_shift(ossl_check_ASN1_OBJECT_sk_type(sk))) +#define sk_ASN1_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_OBJECT_sk_type(sk),ossl_check_ASN1_OBJECT_freefunc_type(freefunc)) +#define sk_ASN1_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), (idx)) +#define sk_ASN1_OBJECT_set(sk, idx, ptr) ((ASN1_OBJECT *)OPENSSL_sk_set(ossl_check_ASN1_OBJECT_sk_type(sk), (idx), ossl_check_ASN1_OBJECT_type(ptr))) +#define sk_ASN1_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) +#define sk_ASN1_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr)) +#define sk_ASN1_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_type(ptr), pnum) +#define sk_ASN1_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_OBJECT_sk_type(sk)) +#define sk_ASN1_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_OBJECT_sk_type(sk)) +#define sk_ASN1_OBJECT_dup(sk) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_ASN1_OBJECT_sk_type(sk))) +#define sk_ASN1_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_copyfunc_type(copyfunc), ossl_check_ASN1_OBJECT_freefunc_type(freefunc))) +#define sk_ASN1_OBJECT_set_cmp_func(sk, cmp) ((sk_ASN1_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_OBJECT_sk_type(sk), ossl_check_ASN1_OBJECT_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(ASN1_OBJECT) + +ASN1_STRING *ASN1_STRING_new(void); +void ASN1_STRING_free(ASN1_STRING *a); +void ASN1_STRING_clear_free(ASN1_STRING *a); +int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); +DECLARE_ASN1_DUP_FUNCTION(ASN1_STRING) +ASN1_STRING *ASN1_STRING_type_new(int type); +int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); + /* + * Since this is used to store all sorts of things, via macros, for now, + * make its data void * + */ +int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); +void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); +int ASN1_STRING_length(const ASN1_STRING *x); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 void ASN1_STRING_length_set(ASN1_STRING *x, int n); +# endif +int ASN1_STRING_type(const ASN1_STRING *x); +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 unsigned char *ASN1_STRING_data(ASN1_STRING *x); +# endif +const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); + +DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) +int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); +int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); +int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, + const unsigned char *flags, int flags_len); + +int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, + BIT_STRING_BITNAME *tbl, int indent); +int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, + BIT_STRING_BITNAME *tbl); + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_INTEGER, ASN1_INTEGER, ASN1_INTEGER) +#define sk_ASN1_INTEGER_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_INTEGER_sk_type(sk)) +#define sk_ASN1_INTEGER_value(sk, idx) ((ASN1_INTEGER *)OPENSSL_sk_value(ossl_check_const_ASN1_INTEGER_sk_type(sk), (idx))) +#define sk_ASN1_INTEGER_new(cmp) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new(ossl_check_ASN1_INTEGER_compfunc_type(cmp))) +#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_null()) +#define sk_ASN1_INTEGER_new_reserve(cmp, n) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_INTEGER_compfunc_type(cmp), (n))) +#define sk_ASN1_INTEGER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_INTEGER_sk_type(sk), (n)) +#define sk_ASN1_INTEGER_free(sk) OPENSSL_sk_free(ossl_check_ASN1_INTEGER_sk_type(sk)) +#define sk_ASN1_INTEGER_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_INTEGER_sk_type(sk)) +#define sk_ASN1_INTEGER_delete(sk, i) ((ASN1_INTEGER *)OPENSSL_sk_delete(ossl_check_ASN1_INTEGER_sk_type(sk), (i))) +#define sk_ASN1_INTEGER_delete_ptr(sk, ptr) ((ASN1_INTEGER *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr))) +#define sk_ASN1_INTEGER_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) +#define sk_ASN1_INTEGER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) +#define sk_ASN1_INTEGER_pop(sk) ((ASN1_INTEGER *)OPENSSL_sk_pop(ossl_check_ASN1_INTEGER_sk_type(sk))) +#define sk_ASN1_INTEGER_shift(sk) ((ASN1_INTEGER *)OPENSSL_sk_shift(ossl_check_ASN1_INTEGER_sk_type(sk))) +#define sk_ASN1_INTEGER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_INTEGER_sk_type(sk),ossl_check_ASN1_INTEGER_freefunc_type(freefunc)) +#define sk_ASN1_INTEGER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), (idx)) +#define sk_ASN1_INTEGER_set(sk, idx, ptr) ((ASN1_INTEGER *)OPENSSL_sk_set(ossl_check_ASN1_INTEGER_sk_type(sk), (idx), ossl_check_ASN1_INTEGER_type(ptr))) +#define sk_ASN1_INTEGER_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) +#define sk_ASN1_INTEGER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr)) +#define sk_ASN1_INTEGER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_type(ptr), pnum) +#define sk_ASN1_INTEGER_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_INTEGER_sk_type(sk)) +#define sk_ASN1_INTEGER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_INTEGER_sk_type(sk)) +#define sk_ASN1_INTEGER_dup(sk) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_dup(ossl_check_const_ASN1_INTEGER_sk_type(sk))) +#define sk_ASN1_INTEGER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_INTEGER) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_copyfunc_type(copyfunc), ossl_check_ASN1_INTEGER_freefunc_type(freefunc))) +#define sk_ASN1_INTEGER_set_cmp_func(sk, cmp) ((sk_ASN1_INTEGER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_INTEGER_sk_type(sk), ossl_check_ASN1_INTEGER_compfunc_type(cmp))) + + + +DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) +ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +DECLARE_ASN1_DUP_FUNCTION(ASN1_INTEGER) +int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); + +DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) + +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); +ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); +ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); +int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); + +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, + time_t t); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, + time_t t, int offset_day, + long offset_sec); +int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); + +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); + +DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) +DECLARE_ASN1_DUP_FUNCTION(ASN1_OCTET_STRING) +int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, + const ASN1_OCTET_STRING *b); +int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, + int len); + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_UTF8STRING, ASN1_UTF8STRING, ASN1_UTF8STRING) +#define sk_ASN1_UTF8STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) +#define sk_ASN1_UTF8STRING_value(sk, idx) ((ASN1_UTF8STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), (idx))) +#define sk_ASN1_UTF8STRING_new(cmp) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) +#define sk_ASN1_UTF8STRING_new_null() ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_null()) +#define sk_ASN1_UTF8STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_UTF8STRING_compfunc_type(cmp), (n))) +#define sk_ASN1_UTF8STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_UTF8STRING_sk_type(sk), (n)) +#define sk_ASN1_UTF8STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_UTF8STRING_sk_type(sk)) +#define sk_ASN1_UTF8STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_UTF8STRING_sk_type(sk)) +#define sk_ASN1_UTF8STRING_delete(sk, i) ((ASN1_UTF8STRING *)OPENSSL_sk_delete(ossl_check_ASN1_UTF8STRING_sk_type(sk), (i))) +#define sk_ASN1_UTF8STRING_delete_ptr(sk, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr))) +#define sk_ASN1_UTF8STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) +#define sk_ASN1_UTF8STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) +#define sk_ASN1_UTF8STRING_pop(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_pop(ossl_check_ASN1_UTF8STRING_sk_type(sk))) +#define sk_ASN1_UTF8STRING_shift(sk) ((ASN1_UTF8STRING *)OPENSSL_sk_shift(ossl_check_ASN1_UTF8STRING_sk_type(sk))) +#define sk_ASN1_UTF8STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_UTF8STRING_sk_type(sk),ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc)) +#define sk_ASN1_UTF8STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), (idx)) +#define sk_ASN1_UTF8STRING_set(sk, idx, ptr) ((ASN1_UTF8STRING *)OPENSSL_sk_set(ossl_check_ASN1_UTF8STRING_sk_type(sk), (idx), ossl_check_ASN1_UTF8STRING_type(ptr))) +#define sk_ASN1_UTF8STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) +#define sk_ASN1_UTF8STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr)) +#define sk_ASN1_UTF8STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_type(ptr), pnum) +#define sk_ASN1_UTF8STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_UTF8STRING_sk_type(sk)) +#define sk_ASN1_UTF8STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_UTF8STRING_sk_type(sk)) +#define sk_ASN1_UTF8STRING_dup(sk) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_UTF8STRING_sk_type(sk))) +#define sk_ASN1_UTF8STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_UTF8STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_copyfunc_type(copyfunc), ossl_check_ASN1_UTF8STRING_freefunc_type(freefunc))) +#define sk_ASN1_UTF8STRING_set_cmp_func(sk, cmp) ((sk_ASN1_UTF8STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_UTF8STRING_sk_type(sk), ossl_check_ASN1_UTF8STRING_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_NULL) +DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) + +int UTF8_getc(const unsigned char *str, int len, unsigned long *val); +int UTF8_putc(unsigned char *str, int len, unsigned long value); + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_GENERALSTRING, ASN1_GENERALSTRING, ASN1_GENERALSTRING) +#define sk_ASN1_GENERALSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) +#define sk_ASN1_GENERALSTRING_value(sk, idx) ((ASN1_GENERALSTRING *)OPENSSL_sk_value(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), (idx))) +#define sk_ASN1_GENERALSTRING_new(cmp) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) +#define sk_ASN1_GENERALSTRING_new_null() ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_null()) +#define sk_ASN1_GENERALSTRING_new_reserve(cmp, n) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp), (n))) +#define sk_ASN1_GENERALSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (n)) +#define sk_ASN1_GENERALSTRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) +#define sk_ASN1_GENERALSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) +#define sk_ASN1_GENERALSTRING_delete(sk, i) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (i))) +#define sk_ASN1_GENERALSTRING_delete_ptr(sk, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr))) +#define sk_ASN1_GENERALSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) +#define sk_ASN1_GENERALSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) +#define sk_ASN1_GENERALSTRING_pop(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_pop(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) +#define sk_ASN1_GENERALSTRING_shift(sk) ((ASN1_GENERALSTRING *)OPENSSL_sk_shift(ossl_check_ASN1_GENERALSTRING_sk_type(sk))) +#define sk_ASN1_GENERALSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_GENERALSTRING_sk_type(sk),ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc)) +#define sk_ASN1_GENERALSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), (idx)) +#define sk_ASN1_GENERALSTRING_set(sk, idx, ptr) ((ASN1_GENERALSTRING *)OPENSSL_sk_set(ossl_check_ASN1_GENERALSTRING_sk_type(sk), (idx), ossl_check_ASN1_GENERALSTRING_type(ptr))) +#define sk_ASN1_GENERALSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) +#define sk_ASN1_GENERALSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr)) +#define sk_ASN1_GENERALSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_type(ptr), pnum) +#define sk_ASN1_GENERALSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_GENERALSTRING_sk_type(sk)) +#define sk_ASN1_GENERALSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk)) +#define sk_ASN1_GENERALSTRING_dup(sk) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk))) +#define sk_ASN1_GENERALSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_GENERALSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_copyfunc_type(copyfunc), ossl_check_ASN1_GENERALSTRING_freefunc_type(freefunc))) +#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, cmp) ((sk_ASN1_GENERALSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_GENERALSTRING_sk_type(sk), ossl_check_ASN1_GENERALSTRING_compfunc_type(cmp))) + + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) + +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) +DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) +DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) +DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) +DECLARE_ASN1_FUNCTIONS(ASN1_TIME) + +DECLARE_ASN1_DUP_FUNCTION(ASN1_TIME) +DECLARE_ASN1_DUP_FUNCTION(ASN1_UTCTIME) +DECLARE_ASN1_DUP_FUNCTION(ASN1_GENERALIZEDTIME) + +DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) + +ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); +ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_TIME_check(const ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, + ASN1_GENERALIZEDTIME **out); +int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); +int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); +int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); +int ASN1_TIME_normalize(ASN1_TIME *s); +int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); +int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); + +int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); +int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); +int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); +int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); +int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); +int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); +int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); +int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); + +int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); +ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, + const char *sn, const char *ln); + +int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); +int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); + +int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); +long ASN1_INTEGER_get(const ASN1_INTEGER *a); +ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); +BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); + +int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); +int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); + + +int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); +long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); + +/* General */ +/* given a string, return the correct type, max is the maximum length */ +int ASN1_PRINTABLE_type(const unsigned char *s, int max); + +unsigned long ASN1_tag2bit(int tag); + +/* SPECIALS */ +int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, + int *pclass, long omax); +int ASN1_check_infinite_end(unsigned char **p, long len); +int ASN1_const_check_infinite_end(const unsigned char **p, long len); +void ASN1_put_object(unsigned char **pp, int constructed, int length, + int tag, int xclass); +int ASN1_put_eoc(unsigned char **pp); +int ASN1_object_size(int constructed, int length, int tag); + +/* Used to implement other functions */ +void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, const void *x); + +# define ASN1_dup_of(type,i2d,d2i,x) \ + ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ + CHECKED_D2I_OF(type, d2i), \ + CHECKED_PTR_OF(const type, x))) + +void *ASN1_item_dup(const ASN1_ITEM *it, const void *x); +int ASN1_item_sign_ex(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + const void *data, const ASN1_OCTET_STRING *id, + EVP_PKEY *pkey, const EVP_MD *md, OSSL_LIB_CTX *libctx, + const char *propq); +int ASN1_item_verify_ex(const ASN1_ITEM *it, const X509_ALGOR *alg, + const ASN1_BIT_STRING *signature, const void *data, + const ASN1_OCTET_STRING *id, EVP_PKEY *pkey, + OSSL_LIB_CTX *libctx, const char *propq); + +/* ASN1 alloc/free macros for when a type is only used internally */ + +# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) +# define M_ASN1_free_of(x, type) \ + ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) + +# ifndef OPENSSL_NO_STDIO +void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); + +# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_fp_ex(const ASN1_ITEM *it, FILE *in, void *x, + OSSL_LIB_CTX *libctx, const char *propq); +void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); +int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, const void *x); + +# define ASN1_i2d_fp_of(type,i2d,out,x) \ + (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, const void *x); +int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); +# endif + +int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); + +void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); + +# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ + ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ + CHECKED_D2I_OF(type, d2i), \ + in, \ + CHECKED_PPTR_OF(type, x))) + +void *ASN1_item_d2i_bio_ex(const ASN1_ITEM *it, BIO *in, void *pval, + OSSL_LIB_CTX *libctx, const char *propq); +void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval); +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, const void *x); + +# define ASN1_i2d_bio_of(type,i2d,out,x) \ + (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ + out, \ + CHECKED_PTR_OF(const type, x))) + +int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x); +BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val); +int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); +int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); +int ASN1_TIME_print(BIO *bp, const ASN1_TIME *tm); +int ASN1_TIME_print_ex(BIO *bp, const ASN1_TIME *tm, unsigned long flags); +int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); +int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); +int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); +int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, + unsigned char *buf, int off); +int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); +int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, + int dump); +const char *ASN1_tag2str(int tag); + +/* Used to load and write Netscape format cert */ + +int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); + +int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); +int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, + unsigned char *data, int len); +int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, + unsigned char *data, int max_len); + +void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +void *ASN1_item_unpack_ex(const ASN1_STRING *oct, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); + +ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, + ASN1_OCTET_STRING **oct); + +void ASN1_STRING_set_default_mask(unsigned long mask); +int ASN1_STRING_set_default_mask_asc(const char *p); +unsigned long ASN1_STRING_get_default_mask(void); +int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask); +int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask, + long minsize, long maxsize); + +ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, + const unsigned char *in, int inlen, + int inform, int nid); +ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); +int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); +void ASN1_STRING_TABLE_cleanup(void); + +/* ASN1 template functions */ + +/* Old API compatible functions */ +ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_new_ex(const ASN1_ITEM *it, OSSL_LIB_CTX *libctx, + const char *propq); +void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_d2i_ex(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); +ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it); +int ASN1_item_i2d(const ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); +int ASN1_item_ndef_i2d(const ASN1_VALUE *val, unsigned char **out, + const ASN1_ITEM *it); + +void ASN1_add_oid_module(void); +void ASN1_add_stable_module(void); + +ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); +int ASN1_str2mask(const char *str, unsigned long *pmask); + +/* ASN1 Print flags */ + +/* Indicate missing OPTIONAL fields */ +# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 +/* Mark start and end of SEQUENCE */ +# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 +/* Mark start and end of SEQUENCE/SET OF */ +# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 +/* Show the ASN1 type of primitives */ +# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 +/* Don't show ASN1 type of ANY */ +# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 +/* Don't show ASN1 type of MSTRINGs */ +# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 +/* Don't show field names in SEQUENCE */ +# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 +/* Show structure names of each SEQUENCE field */ +# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 +/* Don't show structure name even at top level */ +# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 + +int ASN1_item_print(BIO *out, const ASN1_VALUE *ifld, int indent, + const ASN1_ITEM *it, const ASN1_PCTX *pctx); +ASN1_PCTX *ASN1_PCTX_new(void); +void ASN1_PCTX_free(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); + +ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); +void ASN1_SCTX_free(ASN1_SCTX *p); +const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); +const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); +unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); +void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); +void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); + +const BIO_METHOD *BIO_f_asn1(void); + +/* cannot constify val because of CMS_stream() */ +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); + +int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const ASN1_ITEM *it); +int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const char *hdr, const ASN1_ITEM *it); +/* cannot constify val because of CMS_dataFinal() */ +int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); +int SMIME_write_ASN1_ex(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); +ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); +ASN1_VALUE *SMIME_read_ASN1_ex(BIO *bio, int flags, BIO **bcont, + const ASN1_ITEM *it, ASN1_VALUE **x, + OSSL_LIB_CTX *libctx, const char *propq); +int SMIME_crlf_copy(BIO *in, BIO *out, int flags); +int SMIME_text(BIO *in, BIO *out); + +const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); +const ASN1_ITEM *ASN1_ITEM_get(size_t i); + +/* Legacy compatibility */ +# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) +# define DECLARE_ASN1_FUNCTIONS_const(type) DECLARE_ASN1_FUNCTIONS(type) +# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, name) +# define I2D_OF_const(type) I2D_OF(type) +# define ASN1_dup_of_const(type,i2d,d2i,x) ASN1_dup_of(type,i2d,d2i,x) +# define ASN1_i2d_fp_of_const(type,i2d,out,x) ASN1_i2d_fp_of(type,i2d,out,x) +# define ASN1_i2d_bio_of_const(type,i2d,out,x) ASN1_i2d_bio_of(type,i2d,out,x) + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/asn1t.h b/clientapp/android/app/src/main/cpp/include/openssl/asn1t.h new file mode 100644 index 00000000..74ba47d0 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/asn1t.h @@ -0,0 +1,946 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/asn1t.h.in + * + * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_ASN1T_H +# define OPENSSL_ASN1T_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_ASN1T_H +# endif + +# include +# include +# include + +# ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +# endif + +/* ASN1 template defines, structures and functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +/*- + * These are the possible values for the itype field of the + * ASN1_ITEM structure and determine how it is interpreted. + * + * For PRIMITIVE types the underlying type + * determines the behaviour if items is NULL. + * + * Otherwise templates must contain a single + * template and the type is treated in the + * same way as the type specified in the template. + * + * For SEQUENCE types the templates field points + * to the members, the size field is the + * structure size. + * + * For CHOICE types the templates field points + * to each possible member (typically a union) + * and the 'size' field is the offset of the + * selector. + * + * The 'funcs' field is used for application-specific + * data and functions. + * + * The EXTERN type uses a new style d2i/i2d. + * The new style should be used where possible + * because it avoids things like the d2i IMPLICIT + * hack. + * + * MSTRING is a multiple string type, it is used + * for a CHOICE of character strings where the + * actual strings all occupy an ASN1_STRING + * structure. In this case the 'utype' field + * has a special meaning, it is used as a mask + * of acceptable types using the B_ASN1 constants. + * + * NDEF_SEQUENCE is the same as SEQUENCE except + * that it will use indefinite length constructed + * encoding if requested. + * + */ + +# define ASN1_ITYPE_PRIMITIVE 0x0 +# define ASN1_ITYPE_SEQUENCE 0x1 +# define ASN1_ITYPE_CHOICE 0x2 +/* unused value 0x3 */ +# define ASN1_ITYPE_EXTERN 0x4 +# define ASN1_ITYPE_MSTRING 0x5 +# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 + +/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ +# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) + +/* Macros for start and end of ASN1_ITEM definition */ + +# define ASN1_ITEM_start(itname) \ + const ASN1_ITEM * itname##_it(void) \ + { \ + static const ASN1_ITEM local_it = { + +# define static_ASN1_ITEM_start(itname) \ + static ASN1_ITEM_start(itname) + +# define ASN1_ITEM_end(itname) \ + }; \ + return &local_it; \ + } + +/* Macros to aid ASN1 template writing */ + +# define ASN1_ITEM_TEMPLATE(tname) \ + static const ASN1_TEMPLATE tname##_item_tt + +# define ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_ITEM_TEMPLATE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_PRIMITIVE,\ + -1,\ + &tname##_item_tt,\ + 0,\ + NULL,\ + 0,\ + #tname \ + ASN1_ITEM_end(tname) + +/* This is a ASN1 type which just embeds a template */ + +/*- + * This pair helps declare a SEQUENCE. We can do: + * + * ASN1_SEQUENCE(stname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END(stname) + * + * This will produce an ASN1_ITEM called stname_it + * for a structure called stname. + * + * If you want the same structure but a different + * name then use: + * + * ASN1_SEQUENCE(itname) = { + * ... SEQUENCE components ... + * } ASN1_SEQUENCE_END_name(stname, itname) + * + * This will create an item called itname_it using + * a structure called stname. + */ + +# define ASN1_SEQUENCE(tname) \ + static const ASN1_TEMPLATE tname##_seq_tt[] + +# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) + +# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) + +# define ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #tname \ + ASN1_ITEM_end(tname) + +# define static_ASN1_SEQUENCE_END_name(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE(tname) \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ + ASN1_SEQUENCE_cb(tname, cb) + +# define ASN1_SEQUENCE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_const_cb(tname, const_cb) \ + static const ASN1_AUX tname##_aux = \ + {NULL, ASN1_AFLG_CONST_CB, 0, 0, NULL, 0, const_cb}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_cb_const_cb(tname, cb, const_cb) \ + static const ASN1_AUX tname##_aux = \ + {NULL, ASN1_AFLG_CONST_CB, 0, 0, cb, 0, const_cb}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_ref(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0, NULL}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_SEQUENCE_enc(tname, enc, cb) \ + static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc), NULL}; \ + ASN1_SEQUENCE(tname) + +# define ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_NDEF_SEQUENCE_END(tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(tname),\ + #tname \ + ASN1_ITEM_end(tname) + + +# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) +# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) + +# define ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #tname \ + ASN1_ITEM_end(tname) +# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_NDEF_SEQUENCE,\ + V_ASN1_SEQUENCE,\ + tname##_seq_tt,\ + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/*- + * This pair helps declare a CHOICE type. We can do: + * + * ASN1_CHOICE(chname) = { + * ... CHOICE options ... + * ASN1_CHOICE_END(chname) + * + * This will produce an ASN1_ITEM called chname_it + * for a structure called chname. The structure + * definition must look like this: + * typedef struct { + * int type; + * union { + * ASN1_SOMETHING *opt1; + * ASN1_SOMEOTHER *opt2; + * } value; + * } chname; + * + * the name of the selector must be 'type'. + * to use an alternative selector name use the + * ASN1_CHOICE_END_selector() version. + */ + +# define ASN1_CHOICE(tname) \ + static const ASN1_TEMPLATE tname##_ch_tt[] + +# define ASN1_CHOICE_cb(tname, cb) \ + static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0, NULL}; \ + ASN1_CHOICE(tname) + +# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) + +# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) + +# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) + +# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) + +# define ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ + ;\ + static_ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + NULL,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +# define ASN1_CHOICE_END_cb(stname, tname, selname) \ + ;\ + ASN1_ITEM_start(tname) \ + ASN1_ITYPE_CHOICE,\ + offsetof(stname,selname) ,\ + tname##_ch_tt,\ + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ + &tname##_aux,\ + sizeof(stname),\ + #stname \ + ASN1_ITEM_end(tname) + +/* This helps with the template wrapper form of ASN1_ITEM */ + +# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ + (flags), (tag), 0,\ + #name, ASN1_ITEM_ref(type) } + +/* These help with SEQUENCE or CHOICE components */ + +/* used to declare other types */ + +# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ + (flags), (tag), offsetof(stname, field),\ + #field, ASN1_ITEM_ref(type) } + +/* implicit and explicit helper macros */ + +# define ASN1_IMP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) + +# define ASN1_EXP_EX(stname, field, type, tag, ex) \ + ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) + +/* Any defined by macros: the field used is in the table itself */ + +# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } +# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } + +/* Plain simple type */ +# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) +/* Embedded simple type */ +# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) + +/* OPTIONAL simple type */ +# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) +# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) + +/* IMPLICIT tagged simple type */ +# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) +# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) + +/* IMPLICIT tagged OPTIONAL simple type */ +# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) + +/* Same as above but EXPLICIT */ + +# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) +# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) +# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) +# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) + +/* SEQUENCE OF type */ +# define ASN1_SEQUENCE_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) + +/* OPTIONAL SEQUENCE OF */ +# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Same as above but for SET OF */ + +# define ASN1_SET_OF(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) + +# define ASN1_SET_OF_OPT(stname, field, type) \ + ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) + +/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ + +# define ASN1_IMP_SET_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_EXP_SET_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) + +# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) + +# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) + +/* EXPLICIT using indefinite length constructed form */ +# define ASN1_NDEF_EXP(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) + +/* EXPLICIT OPTIONAL using indefinite length constructed form */ +# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ + ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) + +/* Macros for the ASN1_ADB structure */ + +# define ASN1_ADB(name) \ + static const ASN1_ADB_TABLE name##_adbtbl[] + +# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ + ;\ + static const ASN1_ITEM *name##_adb(void) \ + { \ + static const ASN1_ADB internal_adb = \ + {\ + flags,\ + offsetof(name, field),\ + adb_cb,\ + name##_adbtbl,\ + sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ + def,\ + none\ + }; \ + return (const ASN1_ITEM *) &internal_adb; \ + } \ + void dummy_function(void) + +# define ADB_ENTRY(val, template) {val, template} + +# define ASN1_ADB_TEMPLATE(name) \ + static const ASN1_TEMPLATE name##_tt + +/* + * This is the ASN1 template structure that defines a wrapper round the + * actual type. It determines the actual position of the field in the value + * structure, various flags such as OPTIONAL and the field name. + */ + +struct ASN1_TEMPLATE_st { + unsigned long flags; /* Various flags */ + long tag; /* tag, not used if no tagging */ + unsigned long offset; /* Offset of this field in structure */ + const char *field_name; /* Field name */ + ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ +}; + +/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ + +# define ASN1_TEMPLATE_item(t) (t->item_ptr) +# define ASN1_TEMPLATE_adb(t) (t->item_ptr) + +typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; +typedef struct ASN1_ADB_st ASN1_ADB; + +struct ASN1_ADB_st { + unsigned long flags; /* Various flags */ + unsigned long offset; /* Offset of selector field */ + int (*adb_cb)(long *psel); /* Application callback */ + const ASN1_ADB_TABLE *tbl; /* Table of possible types */ + long tblcount; /* Number of entries in tbl */ + const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ + const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ +}; + +struct ASN1_ADB_TABLE_st { + long value; /* NID for an object or value for an int */ + const ASN1_TEMPLATE tt; /* item for this value */ +}; + +/* template flags */ + +/* Field is optional */ +# define ASN1_TFLG_OPTIONAL (0x1) + +/* Field is a SET OF */ +# define ASN1_TFLG_SET_OF (0x1 << 1) + +/* Field is a SEQUENCE OF */ +# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) + +/* + * Special case: this refers to a SET OF that will be sorted into DER order + * when encoded *and* the corresponding STACK will be modified to match the + * new order. + */ +# define ASN1_TFLG_SET_ORDER (0x3 << 1) + +/* Mask for SET OF or SEQUENCE OF */ +# define ASN1_TFLG_SK_MASK (0x3 << 1) + +/* + * These flags mean the tag should be taken from the tag field. If EXPLICIT + * then the underlying type is used for the inner tag. + */ + +/* IMPLICIT tagging */ +# define ASN1_TFLG_IMPTAG (0x1 << 3) + +/* EXPLICIT tagging, inner tag from underlying type */ +# define ASN1_TFLG_EXPTAG (0x2 << 3) + +# define ASN1_TFLG_TAG_MASK (0x3 << 3) + +/* context specific IMPLICIT */ +# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) + +/* context specific EXPLICIT */ +# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) + +/* + * If tagging is in force these determine the type of tag to use. Otherwise + * the tag is determined by the underlying type. These values reflect the + * actual octet format. + */ + +/* Universal tag */ +# define ASN1_TFLG_UNIVERSAL (0x0<<6) +/* Application tag */ +# define ASN1_TFLG_APPLICATION (0x1<<6) +/* Context specific tag */ +# define ASN1_TFLG_CONTEXT (0x2<<6) +/* Private tag */ +# define ASN1_TFLG_PRIVATE (0x3<<6) + +# define ASN1_TFLG_TAG_CLASS (0x3<<6) + +/* + * These are for ANY DEFINED BY type. In this case the 'item' field points to + * an ASN1_ADB structure which contains a table of values to decode the + * relevant type + */ + +# define ASN1_TFLG_ADB_MASK (0x3<<8) + +# define ASN1_TFLG_ADB_OID (0x1<<8) + +# define ASN1_TFLG_ADB_INT (0x1<<9) + +/* + * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes + * indefinite length constructed encoding to be used if required. + */ + +# define ASN1_TFLG_NDEF (0x1<<11) + +/* Field is embedded and not a pointer */ +# define ASN1_TFLG_EMBED (0x1 << 12) + +/* This is the actual ASN1 item itself */ + +struct ASN1_ITEM_st { + char itype; /* The item type, primitive, SEQUENCE, CHOICE + * or extern */ + long utype; /* underlying type */ + const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains + * the contents */ + long tcount; /* Number of templates if SEQUENCE or CHOICE */ + const void *funcs; /* further data and type-specific functions */ + /* funcs can be ASN1_PRIMITIVE_FUNCS*, ASN1_EXTERN_FUNCS*, or ASN1_AUX* */ + long size; /* Structure size (usually) */ + const char *sname; /* Structure name */ +}; + +/* + * Cache for ASN1 tag and length, so we don't keep re-reading it for things + * like CHOICE + */ + +struct ASN1_TLC_st { + char valid; /* Values below are valid */ + int ret; /* return value */ + long plen; /* length */ + int ptag; /* class value */ + int pclass; /* class value */ + int hdrlen; /* header length */ +}; + +/* Typedefs for ASN1 function pointers */ +typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx); + +typedef int ASN1_ex_d2i_ex(ASN1_VALUE **pval, const unsigned char **in, long len, + const ASN1_ITEM *it, int tag, int aclass, char opt, + ASN1_TLC *ctx, OSSL_LIB_CTX *libctx, + const char *propq); +typedef int ASN1_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); +typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); +typedef int ASN1_ex_new_ex_func(ASN1_VALUE **pval, const ASN1_ITEM *it, + OSSL_LIB_CTX *libctx, const char *propq); +typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); + +typedef int ASN1_ex_print_func(BIO *out, const ASN1_VALUE **pval, + int indent, const char *fname, + const ASN1_PCTX *pctx); + +typedef int ASN1_primitive_i2c(const ASN1_VALUE **pval, unsigned char *cont, + int *putype, const ASN1_ITEM *it); +typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, + int len, int utype, char *free_cont, + const ASN1_ITEM *it); +typedef int ASN1_primitive_print(BIO *out, const ASN1_VALUE **pval, + const ASN1_ITEM *it, int indent, + const ASN1_PCTX *pctx); + +typedef struct ASN1_EXTERN_FUNCS_st { + void *app_data; + ASN1_ex_new_func *asn1_ex_new; + ASN1_ex_free_func *asn1_ex_free; + ASN1_ex_free_func *asn1_ex_clear; + ASN1_ex_d2i *asn1_ex_d2i; + ASN1_ex_i2d *asn1_ex_i2d; + ASN1_ex_print_func *asn1_ex_print; + ASN1_ex_new_ex_func *asn1_ex_new_ex; + ASN1_ex_d2i_ex *asn1_ex_d2i_ex; +} ASN1_EXTERN_FUNCS; + +typedef struct ASN1_PRIMITIVE_FUNCS_st { + void *app_data; + unsigned long flags; + ASN1_ex_new_func *prim_new; + ASN1_ex_free_func *prim_free; + ASN1_ex_free_func *prim_clear; + ASN1_primitive_c2i *prim_c2i; + ASN1_primitive_i2c *prim_i2c; + ASN1_primitive_print *prim_print; +} ASN1_PRIMITIVE_FUNCS; + +/* + * This is the ASN1_AUX structure: it handles various miscellaneous + * requirements. For example the use of reference counts and an informational + * callback. The "informational callback" is called at various points during + * the ASN1 encoding and decoding. It can be used to provide minor + * customisation of the structures used. This is most useful where the + * supplied routines *almost* do the right thing but need some extra help at + * a few points. If the callback returns zero then it is assumed a fatal + * error has occurred and the main operation should be abandoned. If major + * changes in the default behaviour are required then an external type is + * more appropriate. + * For the operations ASN1_OP_I2D_PRE, ASN1_OP_I2D_POST, ASN1_OP_PRINT_PRE, and + * ASN1_OP_PRINT_POST, meanwhile a variant of the callback with const parameter + * 'in' is provided to make clear statically that its input is not modified. If + * and only if this variant is in use the flag ASN1_AFLG_CONST_CB must be set. + */ + +typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, + void *exarg); +typedef int ASN1_aux_const_cb(int operation, const ASN1_VALUE **in, + const ASN1_ITEM *it, void *exarg); + +typedef struct ASN1_AUX_st { + void *app_data; + int flags; + int ref_offset; /* Offset of reference value */ + int ref_lock; /* Offset of lock value */ + ASN1_aux_cb *asn1_cb; + int enc_offset; /* Offset of ASN1_ENCODING structure */ + ASN1_aux_const_cb *asn1_const_cb; /* for ASN1_OP_I2D_ and ASN1_OP_PRINT_ */ +} ASN1_AUX; + +/* For print related callbacks exarg points to this structure */ +typedef struct ASN1_PRINT_ARG_st { + BIO *out; + int indent; + const ASN1_PCTX *pctx; +} ASN1_PRINT_ARG; + +/* For streaming related callbacks exarg points to this structure */ +typedef struct ASN1_STREAM_ARG_st { + /* BIO to stream through */ + BIO *out; + /* BIO with filters appended */ + BIO *ndef_bio; + /* Streaming I/O boundary */ + unsigned char **boundary; +} ASN1_STREAM_ARG; + +/* Flags in ASN1_AUX */ + +/* Use a reference count */ +# define ASN1_AFLG_REFCOUNT 1 +/* Save the encoding of structure (useful for signatures) */ +# define ASN1_AFLG_ENCODING 2 +/* The Sequence length is invalid */ +# define ASN1_AFLG_BROKEN 4 +/* Use the new asn1_const_cb */ +# define ASN1_AFLG_CONST_CB 8 + +/* operation values for asn1_cb */ + +# define ASN1_OP_NEW_PRE 0 +# define ASN1_OP_NEW_POST 1 +# define ASN1_OP_FREE_PRE 2 +# define ASN1_OP_FREE_POST 3 +# define ASN1_OP_D2I_PRE 4 +# define ASN1_OP_D2I_POST 5 +# define ASN1_OP_I2D_PRE 6 +# define ASN1_OP_I2D_POST 7 +# define ASN1_OP_PRINT_PRE 8 +# define ASN1_OP_PRINT_POST 9 +# define ASN1_OP_STREAM_PRE 10 +# define ASN1_OP_STREAM_POST 11 +# define ASN1_OP_DETACHED_PRE 12 +# define ASN1_OP_DETACHED_POST 13 +# define ASN1_OP_DUP_PRE 14 +# define ASN1_OP_DUP_POST 15 +# define ASN1_OP_GET0_LIBCTX 16 +# define ASN1_OP_GET0_PROPQ 17 + +/* Macro to implement a primitive type */ +# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) +# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ + ASN1_ITEM_end(itname) + +/* Macro to implement a multi string type */ +# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ + ASN1_ITEM_start(itname) \ + ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ + ASN1_ITEM_end(itname) + +# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ + ASN1_ITEM_start(sname) \ + ASN1_ITYPE_EXTERN, \ + tag, \ + NULL, \ + 0, \ + &fptrs, \ + 0, \ + #sname \ + ASN1_ITEM_end(sname) + +/* Macro to implement standard functions in terms of ASN1_ITEM structures */ + +# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) + +# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ + IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) + +# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ + pre stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + pre void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ + stname *fname##_new(void) \ + { \ + return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ + } \ + void fname##_free(stname *a) \ + { \ + ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ + } + +# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) + +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ + stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ + } \ + int i2d_##fname(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ + } + +# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ + int i2d_##stname##_NDEF(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_ndef_i2d((const ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ + } + +# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ + static stname *d2i_##stname(stname **a, \ + const unsigned char **in, long len) \ + { \ + return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ + ASN1_ITEM_rptr(stname)); \ + } \ + static int i2d_##stname(const stname *a, unsigned char **out) \ + { \ + return ASN1_item_i2d((const ASN1_VALUE *)a, out, \ + ASN1_ITEM_rptr(stname)); \ + } + +# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ + stname * stname##_dup(const stname *x) \ + { \ + return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ + } + +# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ + IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) + +# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ + int fname##_print_ctx(BIO *out, const stname *x, int indent, \ + const ASN1_PCTX *pctx) \ + { \ + return ASN1_item_print(out, (const ASN1_VALUE *)x, indent, \ + ASN1_ITEM_rptr(itname), pctx); \ + } + +/* external definitions for primitive types */ + +DECLARE_ASN1_ITEM(ASN1_BOOLEAN) +DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) +DECLARE_ASN1_ITEM(ASN1_SEQUENCE) +DECLARE_ASN1_ITEM(CBIGNUM) +DECLARE_ASN1_ITEM(BIGNUM) +DECLARE_ASN1_ITEM(INT32) +DECLARE_ASN1_ITEM(ZINT32) +DECLARE_ASN1_ITEM(UINT32) +DECLARE_ASN1_ITEM(ZUINT32) +DECLARE_ASN1_ITEM(INT64) +DECLARE_ASN1_ITEM(ZINT64) +DECLARE_ASN1_ITEM(UINT64) +DECLARE_ASN1_ITEM(ZUINT64) + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +/* + * LONG and ZLONG are strongly discouraged for use as stored data, as the + * underlying C type (long) differs in size depending on the architecture. + * They are designed with 32-bit longs in mind. + */ +DECLARE_ASN1_ITEM(LONG) +DECLARE_ASN1_ITEM(ZLONG) +# endif + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_VALUE, ASN1_VALUE, ASN1_VALUE) +#define sk_ASN1_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_VALUE_sk_type(sk)) +#define sk_ASN1_VALUE_value(sk, idx) ((ASN1_VALUE *)OPENSSL_sk_value(ossl_check_const_ASN1_VALUE_sk_type(sk), (idx))) +#define sk_ASN1_VALUE_new(cmp) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new(ossl_check_ASN1_VALUE_compfunc_type(cmp))) +#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_null()) +#define sk_ASN1_VALUE_new_reserve(cmp, n) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_VALUE_compfunc_type(cmp), (n))) +#define sk_ASN1_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_VALUE_sk_type(sk), (n)) +#define sk_ASN1_VALUE_free(sk) OPENSSL_sk_free(ossl_check_ASN1_VALUE_sk_type(sk)) +#define sk_ASN1_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_VALUE_sk_type(sk)) +#define sk_ASN1_VALUE_delete(sk, i) ((ASN1_VALUE *)OPENSSL_sk_delete(ossl_check_ASN1_VALUE_sk_type(sk), (i))) +#define sk_ASN1_VALUE_delete_ptr(sk, ptr) ((ASN1_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr))) +#define sk_ASN1_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) +#define sk_ASN1_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) +#define sk_ASN1_VALUE_pop(sk) ((ASN1_VALUE *)OPENSSL_sk_pop(ossl_check_ASN1_VALUE_sk_type(sk))) +#define sk_ASN1_VALUE_shift(sk) ((ASN1_VALUE *)OPENSSL_sk_shift(ossl_check_ASN1_VALUE_sk_type(sk))) +#define sk_ASN1_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_VALUE_sk_type(sk),ossl_check_ASN1_VALUE_freefunc_type(freefunc)) +#define sk_ASN1_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), (idx)) +#define sk_ASN1_VALUE_set(sk, idx, ptr) ((ASN1_VALUE *)OPENSSL_sk_set(ossl_check_ASN1_VALUE_sk_type(sk), (idx), ossl_check_ASN1_VALUE_type(ptr))) +#define sk_ASN1_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) +#define sk_ASN1_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr)) +#define sk_ASN1_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_type(ptr), pnum) +#define sk_ASN1_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_VALUE_sk_type(sk)) +#define sk_ASN1_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_VALUE_sk_type(sk)) +#define sk_ASN1_VALUE_dup(sk) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_dup(ossl_check_const_ASN1_VALUE_sk_type(sk))) +#define sk_ASN1_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_copyfunc_type(copyfunc), ossl_check_ASN1_VALUE_freefunc_type(freefunc))) +#define sk_ASN1_VALUE_set_cmp_func(sk, cmp) ((sk_ASN1_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_VALUE_sk_type(sk), ossl_check_ASN1_VALUE_compfunc_type(cmp))) + + + +/* Functions used internally by the ASN1 code */ + +int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); +void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); + +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 ASN1_item_ex_i2d(const ASN1_VALUE **pval, unsigned char **out, + const ASN1_ITEM *it, int tag, int aclass); + +/* Legacy compatibility */ +# define IMPLEMENT_ASN1_FUNCTIONS_const(name) IMPLEMENT_ASN1_FUNCTIONS(name) +# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ + IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/bio.h b/clientapp/android/app/src/main/cpp/include/openssl/bio.h new file mode 100644 index 00000000..6fd5fedf --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/bio.h @@ -0,0 +1,1015 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/bio.h.in + * + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + +#ifndef OPENSSL_BIO_H +# define OPENSSL_BIO_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_BIO_H +# endif + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# endif +# include + +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* There are the classes of BIOs */ +# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ +# define BIO_TYPE_FILTER 0x0200 +# define BIO_TYPE_SOURCE_SINK 0x0400 + +/* These are the 'types' of BIOs */ +# define BIO_TYPE_NONE 0 +# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) + +# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) +# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) +# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) +# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) +# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) +# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) + +# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ +# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) +# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ +# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) +# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) +# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) +# ifndef OPENSSL_NO_SCTP +# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) +# endif +# define BIO_TYPE_CORE_TO_PROV (25|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_PAIR (26|BIO_TYPE_SOURCE_SINK) +# define BIO_TYPE_DGRAM_MEM (27|BIO_TYPE_SOURCE_SINK) + +/* Custom type starting index returned by BIO_get_new_index() */ +#define BIO_TYPE_START 128 +/* Custom type maximum index that can be returned by BIO_get_new_index() */ +#define BIO_TYPE_MASK 0xFF + +/* + * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. + * BIO_set_fp(in,stdin,BIO_NOCLOSE); + */ +# define BIO_NOCLOSE 0x00 +# define BIO_CLOSE 0x01 + +/* + * These are used in the following macros and are passed to BIO_ctrl() + */ +# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ +# define BIO_CTRL_EOF 2/* opt - are we at the eof */ +# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ +# define BIO_CTRL_SET 4/* man - set the 'IO' type */ +# define BIO_CTRL_GET 5/* man - get the 'IO' type */ +# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ +# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ +# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ +# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ +# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ +# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ +# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ +# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ +# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ +# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ + +# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ +# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ + +/* dgram BIO stuff */ +# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ +# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected + * socket to be passed in */ +# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ +# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ + +# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ +# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation timed out */ + +/* #ifdef IP_MTU_DISCOVER */ +# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ +/* #endif */ + +# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ +# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 +# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ +# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. + * want to use this if asking + * the kernel fails */ + +# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was + * exceed in the previous write + * operation */ + +# define BIO_CTRL_DGRAM_GET_PEER 46 +# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ + +# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout + * to adjust socket timeouts */ +# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 + +# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 + +/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ +# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 +# ifndef OPENSSL_NO_SCTP +/* SCTP stuff */ +# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 +# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 +# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 +# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 +# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 +# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 +# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 +# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 +# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 +# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 +# endif + +# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_SEND 72 + * # define BIO_CTRL_SET_KTLS_SEND_CTRL_MSG 74 + * # define BIO_CTRL_CLEAR_KTLS_CTRL_MSG 75 + */ + +# define BIO_CTRL_GET_KTLS_SEND 73 +# define BIO_CTRL_GET_KTLS_RECV 76 + +# define BIO_CTRL_DGRAM_SCTP_WAIT_FOR_DRY 77 +# define BIO_CTRL_DGRAM_SCTP_MSG_WAITING 78 + +/* BIO_f_prefix controls */ +# define BIO_CTRL_SET_PREFIX 79 +# define BIO_CTRL_SET_INDENT 80 +# define BIO_CTRL_GET_INDENT 81 + +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP 82 +# define BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE 83 +# define BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE 84 +# define BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS 85 +# define BIO_CTRL_DGRAM_GET_CAPS 86 +# define BIO_CTRL_DGRAM_SET_CAPS 87 +# define BIO_CTRL_DGRAM_GET_NO_TRUNC 88 +# define BIO_CTRL_DGRAM_SET_NO_TRUNC 89 + +/* + * internal BIO: + * # define BIO_CTRL_SET_KTLS_TX_ZEROCOPY_SENDFILE 90 + */ + +# define BIO_CTRL_GET_RPOLL_DESCRIPTOR 91 +# define BIO_CTRL_GET_WPOLL_DESCRIPTOR 92 +# define BIO_CTRL_DGRAM_DETECT_PEER_ADDR 93 + +# define BIO_DGRAM_CAP_NONE 0U +# define BIO_DGRAM_CAP_HANDLES_SRC_ADDR (1U << 0) +# define BIO_DGRAM_CAP_HANDLES_DST_ADDR (1U << 1) +# define BIO_DGRAM_CAP_PROVIDES_SRC_ADDR (1U << 2) +# define BIO_DGRAM_CAP_PROVIDES_DST_ADDR (1U << 3) + +# ifndef OPENSSL_NO_KTLS +# define BIO_get_ktls_send(b) \ + (BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) > 0) +# define BIO_get_ktls_recv(b) \ + (BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL) > 0) +# else +# define BIO_get_ktls_send(b) (0) +# define BIO_get_ktls_recv(b) (0) +# endif + +/* modifiers */ +# define BIO_FP_READ 0x02 +# define BIO_FP_WRITE 0x04 +# define BIO_FP_APPEND 0x08 +# define BIO_FP_TEXT 0x10 + +# define BIO_FLAGS_READ 0x01 +# define BIO_FLAGS_WRITE 0x02 +# define BIO_FLAGS_IO_SPECIAL 0x04 +# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) +# define BIO_FLAGS_SHOULD_RETRY 0x08 +# ifndef OPENSSL_NO_DEPRECATED_3_0 +/* This #define was replaced by an internal constant and should not be used. */ +# define BIO_FLAGS_UPLINK 0 +# endif + +# define BIO_FLAGS_BASE64_NO_NL 0x100 + +/* + * This is used with memory BIOs: + * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; + * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. + */ +# define BIO_FLAGS_MEM_RDONLY 0x200 +# define BIO_FLAGS_NONCLEAR_RST 0x400 +# define BIO_FLAGS_IN_EOF 0x800 + +/* the BIO FLAGS values 0x1000 to 0x8000 are reserved for internal KTLS flags */ + +typedef union bio_addr_st BIO_ADDR; +typedef struct bio_addrinfo_st BIO_ADDRINFO; + +int BIO_get_new_index(void); +void BIO_set_flags(BIO *b, int flags); +int BIO_test_flags(const BIO *b, int flags); +void BIO_clear_flags(BIO *b, int flags); + +# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) +# define BIO_set_retry_special(b) \ + BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_read(b) \ + BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_set_retry_write(b) \ + BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) + +/* These are normally used internally in BIOs */ +# define BIO_clear_retry_flags(b) \ + BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +# define BIO_get_retry_flags(b) \ + BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) + +/* These should be used by the application to tell why we should retry */ +# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) +# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) +# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) +# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) +# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) + +/* + * The next three are used in conjunction with the BIO_should_io_special() + * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int + * *reason); will walk the BIO stack and return the 'reason' for the special + * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return + * the code. + */ +/* + * Returned from the SSL bio when the certificate retrieval code had an error + */ +# define BIO_RR_SSL_X509_LOOKUP 0x01 +/* Returned from the connect BIO when a connect would have blocked */ +# define BIO_RR_CONNECT 0x02 +/* Returned from the accept BIO when an accept would have blocked */ +# define BIO_RR_ACCEPT 0x03 + +/* These are passed by the BIO callback */ +# define BIO_CB_FREE 0x01 +# define BIO_CB_READ 0x02 +# define BIO_CB_WRITE 0x03 +# define BIO_CB_PUTS 0x04 +# define BIO_CB_GETS 0x05 +# define BIO_CB_CTRL 0x06 +# define BIO_CB_RECVMMSG 0x07 +# define BIO_CB_SENDMMSG 0x08 + +/* + * The callback is called before and after the underling operation, The + * BIO_CB_RETURN flag indicates if it is after the call + */ +# define BIO_CB_RETURN 0x80 +# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) +# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) +# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, + long argl, long ret); +OSSL_DEPRECATEDIN_3_0 BIO_callback_fn BIO_get_callback(const BIO *b); +OSSL_DEPRECATEDIN_3_0 void BIO_set_callback(BIO *b, BIO_callback_fn callback); +OSSL_DEPRECATEDIN_3_0 long BIO_debug_callback(BIO *bio, int cmd, + const char *argp, int argi, + long argl, long ret); +# endif + +typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, + size_t len, int argi, + long argl, int ret, size_t *processed); +BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); +void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); +long BIO_debug_callback_ex(BIO *bio, int oper, const char *argp, size_t len, + int argi, long argl, int ret, size_t *processed); + +char *BIO_get_callback_arg(const BIO *b); +void BIO_set_callback_arg(BIO *b, char *arg); + +typedef struct bio_method_st BIO_METHOD; + +const char *BIO_method_name(const BIO *b); +int BIO_method_type(const BIO *b); + +typedef int BIO_info_cb(BIO *, int, int); +typedef BIO_info_cb bio_info_cb; /* backward compatibility */ + +SKM_DEFINE_STACK_OF_INTERNAL(BIO, BIO, BIO) +#define sk_BIO_num(sk) OPENSSL_sk_num(ossl_check_const_BIO_sk_type(sk)) +#define sk_BIO_value(sk, idx) ((BIO *)OPENSSL_sk_value(ossl_check_const_BIO_sk_type(sk), (idx))) +#define sk_BIO_new(cmp) ((STACK_OF(BIO) *)OPENSSL_sk_new(ossl_check_BIO_compfunc_type(cmp))) +#define sk_BIO_new_null() ((STACK_OF(BIO) *)OPENSSL_sk_new_null()) +#define sk_BIO_new_reserve(cmp, n) ((STACK_OF(BIO) *)OPENSSL_sk_new_reserve(ossl_check_BIO_compfunc_type(cmp), (n))) +#define sk_BIO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_BIO_sk_type(sk), (n)) +#define sk_BIO_free(sk) OPENSSL_sk_free(ossl_check_BIO_sk_type(sk)) +#define sk_BIO_zero(sk) OPENSSL_sk_zero(ossl_check_BIO_sk_type(sk)) +#define sk_BIO_delete(sk, i) ((BIO *)OPENSSL_sk_delete(ossl_check_BIO_sk_type(sk), (i))) +#define sk_BIO_delete_ptr(sk, ptr) ((BIO *)OPENSSL_sk_delete_ptr(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr))) +#define sk_BIO_push(sk, ptr) OPENSSL_sk_push(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) +#define sk_BIO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) +#define sk_BIO_pop(sk) ((BIO *)OPENSSL_sk_pop(ossl_check_BIO_sk_type(sk))) +#define sk_BIO_shift(sk) ((BIO *)OPENSSL_sk_shift(ossl_check_BIO_sk_type(sk))) +#define sk_BIO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_BIO_sk_type(sk),ossl_check_BIO_freefunc_type(freefunc)) +#define sk_BIO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), (idx)) +#define sk_BIO_set(sk, idx, ptr) ((BIO *)OPENSSL_sk_set(ossl_check_BIO_sk_type(sk), (idx), ossl_check_BIO_type(ptr))) +#define sk_BIO_find(sk, ptr) OPENSSL_sk_find(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) +#define sk_BIO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr)) +#define sk_BIO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_BIO_sk_type(sk), ossl_check_BIO_type(ptr), pnum) +#define sk_BIO_sort(sk) OPENSSL_sk_sort(ossl_check_BIO_sk_type(sk)) +#define sk_BIO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_BIO_sk_type(sk)) +#define sk_BIO_dup(sk) ((STACK_OF(BIO) *)OPENSSL_sk_dup(ossl_check_const_BIO_sk_type(sk))) +#define sk_BIO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(BIO) *)OPENSSL_sk_deep_copy(ossl_check_const_BIO_sk_type(sk), ossl_check_BIO_copyfunc_type(copyfunc), ossl_check_BIO_freefunc_type(freefunc))) +#define sk_BIO_set_cmp_func(sk, cmp) ((sk_BIO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_BIO_sk_type(sk), ossl_check_BIO_compfunc_type(cmp))) + + + +/* Prefix and suffix callback in ASN1 BIO */ +typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, + void *parg); + +typedef void (*BIO_dgram_sctp_notification_handler_fn) (BIO *b, + void *context, + void *buf); +# ifndef OPENSSL_NO_SCTP +/* SCTP parameter structs */ +struct bio_dgram_sctp_sndinfo { + uint16_t snd_sid; + uint16_t snd_flags; + uint32_t snd_ppid; + uint32_t snd_context; +}; + +struct bio_dgram_sctp_rcvinfo { + uint16_t rcv_sid; + uint16_t rcv_ssn; + uint16_t rcv_flags; + uint32_t rcv_ppid; + uint32_t rcv_tsn; + uint32_t rcv_cumtsn; + uint32_t rcv_context; +}; + +struct bio_dgram_sctp_prinfo { + uint16_t pr_policy; + uint32_t pr_value; +}; +# endif + +/* BIO_sendmmsg/BIO_recvmmsg-related definitions */ +typedef struct bio_msg_st { + void *data; + size_t data_len; + BIO_ADDR *peer, *local; + uint64_t flags; +} BIO_MSG; + +typedef struct bio_mmsg_cb_args_st { + BIO_MSG *msg; + size_t stride, num_msg; + uint64_t flags; + size_t *msgs_processed; +} BIO_MMSG_CB_ARGS; + +#define BIO_POLL_DESCRIPTOR_TYPE_NONE 0 +#define BIO_POLL_DESCRIPTOR_TYPE_SOCK_FD 1 +#define BIO_POLL_DESCRIPTOR_TYPE_SSL 2 +#define BIO_POLL_DESCRIPTOR_CUSTOM_START 8192 + +typedef struct bio_poll_descriptor_st { + uint32_t type; + union { + int fd; + void *custom; + uintptr_t custom_ui; + SSL *ssl; + } value; +} BIO_POLL_DESCRIPTOR; + +/* + * #define BIO_CONN_get_param_hostname BIO_ctrl + */ + +# define BIO_C_SET_CONNECT 100 +# define BIO_C_DO_STATE_MACHINE 101 +# define BIO_C_SET_NBIO 102 +/* # define BIO_C_SET_PROXY_PARAM 103 */ +# define BIO_C_SET_FD 104 +# define BIO_C_GET_FD 105 +# define BIO_C_SET_FILE_PTR 106 +# define BIO_C_GET_FILE_PTR 107 +# define BIO_C_SET_FILENAME 108 +# define BIO_C_SET_SSL 109 +# define BIO_C_GET_SSL 110 +# define BIO_C_SET_MD 111 +# define BIO_C_GET_MD 112 +# define BIO_C_GET_CIPHER_STATUS 113 +# define BIO_C_SET_BUF_MEM 114 +# define BIO_C_GET_BUF_MEM_PTR 115 +# define BIO_C_GET_BUFF_NUM_LINES 116 +# define BIO_C_SET_BUFF_SIZE 117 +# define BIO_C_SET_ACCEPT 118 +# define BIO_C_SSL_MODE 119 +# define BIO_C_GET_MD_CTX 120 +/* # define BIO_C_GET_PROXY_PARAM 121 */ +# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ +# define BIO_C_GET_CONNECT 123 +# define BIO_C_GET_ACCEPT 124 +# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 +# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 +# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 +# define BIO_C_FILE_SEEK 128 +# define BIO_C_GET_CIPHER_CTX 129 +# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input + * value */ +# define BIO_C_SET_BIND_MODE 131 +# define BIO_C_GET_BIND_MODE 132 +# define BIO_C_FILE_TELL 133 +# define BIO_C_GET_SOCKS 134 +# define BIO_C_SET_SOCKS 135 + +# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ +# define BIO_C_GET_WRITE_BUF_SIZE 137 +# define BIO_C_MAKE_BIO_PAIR 138 +# define BIO_C_DESTROY_BIO_PAIR 139 +# define BIO_C_GET_WRITE_GUARANTEE 140 +# define BIO_C_GET_READ_REQUEST 141 +# define BIO_C_SHUTDOWN_WR 142 +# define BIO_C_NREAD0 143 +# define BIO_C_NREAD 144 +# define BIO_C_NWRITE0 145 +# define BIO_C_NWRITE 146 +# define BIO_C_RESET_READ_REQUEST 147 +# define BIO_C_SET_MD_CTX 148 + +# define BIO_C_SET_PREFIX 149 +# define BIO_C_GET_PREFIX 150 +# define BIO_C_SET_SUFFIX 151 +# define BIO_C_GET_SUFFIX 152 + +# define BIO_C_SET_EX_ARG 153 +# define BIO_C_GET_EX_ARG 154 + +# define BIO_C_SET_CONNECT_MODE 155 + +# define BIO_C_SET_TFO 156 /* like BIO_C_SET_NBIO */ + +# define BIO_C_SET_SOCK_TYPE 157 +# define BIO_C_GET_SOCK_TYPE 158 +# define BIO_C_GET_DGRAM_BIO 159 + +# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) +# define BIO_get_app_data(s) BIO_get_ex_data(s,0) + +# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +# define BIO_set_tfo(b,n) BIO_ctrl(b,BIO_C_SET_TFO,(n),NULL) + +# ifndef OPENSSL_NO_SOCK +/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ +/* Note: the underlying operating system may not support some of them */ +# define BIO_FAMILY_IPV4 4 +# define BIO_FAMILY_IPV6 6 +# define BIO_FAMILY_IPANY 256 + +/* BIO_s_connect() */ +# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ + (char *)(name)) +# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ + (char *)(port)) +# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ + (char *)(addr)) +# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) +# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) +# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) +# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) +# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +# define BIO_get_conn_mode(b) BIO_ctrl(b,BIO_C_GET_CONNECT,4,NULL) +# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +# define BIO_set_sock_type(b,t) BIO_ctrl(b,BIO_C_SET_SOCK_TYPE,(t),NULL) +# define BIO_get_sock_type(b) BIO_ctrl(b,BIO_C_GET_SOCK_TYPE,0,NULL) +# define BIO_get0_dgram_bio(b, p) BIO_ctrl(b,BIO_C_GET_DGRAM_BIO,0,(void *)(BIO **)(p)) + +/* BIO_s_accept() */ +# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ + (char *)(name)) +# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ + (char *)(port)) +# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) +# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) +# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) +# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) +/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ +# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) +# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ + (char *)(bio)) +# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) +# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +# define BIO_set_tfo_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,5,(n)?(void *)"a":NULL) + +/* Aliases kept for backward compatibility */ +# define BIO_BIND_NORMAL 0 +# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR +# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR +# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +# endif /* OPENSSL_NO_SOCK */ + +# define BIO_do_connect(b) BIO_do_handshake(b) +# define BIO_do_accept(b) BIO_do_handshake(b) + +# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) + +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ +# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) +# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) + +/* BIO_s_file() */ +# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) +# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) + +/* BIO_s_fd() and BIO_s_file() */ +# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) +# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) + +/* + * name is cast to lose const, but might be better to route through a + * function so we can do it safely + */ +# ifdef CONST_STRICT +/* + * If you are wondering why this isn't defined, its because CONST_STRICT is + * purely a compile-time kludge to allow const to be checked. + */ +int BIO_read_filename(BIO *b, const char *name); +# else +# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ,(char *)(name)) +# endif +# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_WRITE,name) +# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_APPEND,name) +# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ + BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) + +/* + * WARNING WARNING, this ups the reference count on the read bio of the SSL + * structure. This is because the ssl read BIO is now pointed to by the + * next_bio field in the bio. So when you free the BIO, make sure you are + * doing a BIO_free_all() to catch the underlying BIO. + */ +# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) +# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) +# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) +# define BIO_set_ssl_renegotiate_bytes(b,num) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) +# define BIO_get_num_renegotiates(b) \ + BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) +# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) + +/* defined in evp.h */ +/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ + +# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) +# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) +# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ + (char *)(pp)) +# define BIO_set_mem_eof_return(b,v) \ + BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) + +/* For the BIO_f_buffer() type */ +# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) +# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) +# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) +# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) +# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) + +/* Don't use the next one unless you know what you are doing :-) */ +# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) + +# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) +# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) +# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) +# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) +# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) +# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) +/* ...pending macros have inappropriate return type */ +size_t BIO_ctrl_pending(BIO *b); +size_t BIO_ctrl_wpending(BIO *b); +# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) +# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ + cbp) +# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) + +/* For the BIO_f_buffer() type */ +# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) +# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) + +/* For BIO_s_bio() */ +# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) +# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) +# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) +# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) +# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) +/* macros with inappropriate type -- but ...pending macros use int too: */ +# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) +# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) +size_t BIO_ctrl_get_write_guarantee(BIO *b); +size_t BIO_ctrl_get_read_request(BIO *b); +int BIO_ctrl_reset_read_request(BIO *b); + +/* ctrl macros for dgram */ +# define BIO_ctrl_dgram_connect(b,peer) \ + (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) +# define BIO_ctrl_set_connected(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) +# define BIO_dgram_recv_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) +# define BIO_dgram_send_timedout(b) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) +# define BIO_dgram_get_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) +# define BIO_dgram_set_peer(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +# define BIO_dgram_detect_peer_addr(b,peer) \ + (int)BIO_ctrl(b, BIO_CTRL_DGRAM_DETECT_PEER_ADDR, 0, (char *)(peer)) +# define BIO_dgram_get_mtu_overhead(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +# define BIO_dgram_get_local_addr_cap(b) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_CAP, 0, NULL) +# define BIO_dgram_get_local_addr_enable(b, penable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_LOCAL_ADDR_ENABLE, 0, (char *)(penable)) +# define BIO_dgram_set_local_addr_enable(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_LOCAL_ADDR_ENABLE, (enable), NULL) +# define BIO_dgram_get_effective_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_EFFECTIVE_CAPS, 0, NULL) +# define BIO_dgram_get_caps(b) \ + (uint32_t)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_CAPS, 0, NULL) +# define BIO_dgram_set_caps(b, caps) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_CAPS, (long)(caps), NULL) +# define BIO_dgram_get_no_trunc(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_NO_TRUNC, 0, NULL) +# define BIO_dgram_set_no_trunc(b, enable) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_NO_TRUNC, (enable), NULL) +# define BIO_dgram_get_mtu(b) \ + (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU, 0, NULL) +# define BIO_dgram_set_mtu(b, mtu) \ + (int)BIO_ctrl((b), BIO_CTRL_DGRAM_SET_MTU, (mtu), NULL) + +/* ctrl macros for BIO_f_prefix */ +# define BIO_set_prefix(b,p) BIO_ctrl((b), BIO_CTRL_SET_PREFIX, 0, (void *)(p)) +# define BIO_set_indent(b,i) BIO_ctrl((b), BIO_CTRL_SET_INDENT, (i), NULL) +# define BIO_get_indent(b) BIO_ctrl((b), BIO_CTRL_GET_INDENT, 0, NULL) + +#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) +int BIO_set_ex_data(BIO *bio, int idx, void *data); +void *BIO_get_ex_data(const BIO *bio, int idx); +uint64_t BIO_number_read(BIO *bio); +uint64_t BIO_number_written(BIO *bio); + +/* For BIO_f_asn1() */ +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free); +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free); +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free); +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free); + +const BIO_METHOD *BIO_s_file(void); +BIO *BIO_new_file(const char *filename, const char *mode); +BIO *BIO_new_from_core_bio(OSSL_LIB_CTX *libctx, OSSL_CORE_BIO *corebio); +# ifndef OPENSSL_NO_STDIO +BIO *BIO_new_fp(FILE *stream, int close_flag); +# endif +BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *method); +BIO *BIO_new(const BIO_METHOD *type); +int BIO_free(BIO *a); +void BIO_set_data(BIO *a, void *ptr); +void *BIO_get_data(BIO *a); +void BIO_set_init(BIO *a, int init); +int BIO_get_init(BIO *a); +void BIO_set_shutdown(BIO *a, int shut); +int BIO_get_shutdown(BIO *a); +void BIO_vfree(BIO *a); +int BIO_up_ref(BIO *a); +int BIO_read(BIO *b, void *data, int dlen); +int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +__owur int BIO_recvmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +int BIO_gets(BIO *bp, char *buf, int size); +int BIO_get_line(BIO *bio, char *buf, int size); +int BIO_write(BIO *b, const void *data, int dlen); +int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +__owur int BIO_sendmmsg(BIO *b, BIO_MSG *msg, + size_t stride, size_t num_msg, uint64_t flags, + size_t *msgs_processed); +__owur int BIO_get_rpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +__owur int BIO_get_wpoll_descriptor(BIO *b, BIO_POLL_DESCRIPTOR *desc); +int BIO_puts(BIO *bp, const char *buf); +int BIO_indent(BIO *b, int indent, int max); +long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); +long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); +void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); +BIO *BIO_push(BIO *b, BIO *append); +BIO *BIO_pop(BIO *b); +void BIO_free_all(BIO *a); +BIO *BIO_find_type(BIO *b, int bio_type); +BIO *BIO_next(BIO *b); +void BIO_set_next(BIO *b, BIO *next); +BIO *BIO_get_retry_BIO(BIO *bio, int *reason); +int BIO_get_retry_reason(BIO *bio); +void BIO_set_retry_reason(BIO *bio, int reason); +BIO *BIO_dup_chain(BIO *in); + +int BIO_nread0(BIO *bio, char **buf); +int BIO_nread(BIO *bio, char **buf, int num); +int BIO_nwrite0(BIO *bio, char **buf); +int BIO_nwrite(BIO *bio, char **buf, int num); + +const BIO_METHOD *BIO_s_mem(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_mem(void); +# endif +const BIO_METHOD *BIO_s_secmem(void); +BIO *BIO_new_mem_buf(const void *buf, int len); +# ifndef OPENSSL_NO_SOCK +const BIO_METHOD *BIO_s_socket(void); +const BIO_METHOD *BIO_s_connect(void); +const BIO_METHOD *BIO_s_accept(void); +# endif +const BIO_METHOD *BIO_s_fd(void); +const BIO_METHOD *BIO_s_log(void); +const BIO_METHOD *BIO_s_bio(void); +const BIO_METHOD *BIO_s_null(void); +const BIO_METHOD *BIO_f_null(void); +const BIO_METHOD *BIO_f_buffer(void); +const BIO_METHOD *BIO_f_readbuffer(void); +const BIO_METHOD *BIO_f_linebuffer(void); +const BIO_METHOD *BIO_f_nbio_test(void); +const BIO_METHOD *BIO_f_prefix(void); +const BIO_METHOD *BIO_s_core(void); +# ifndef OPENSSL_NO_DGRAM +const BIO_METHOD *BIO_s_dgram_pair(void); +const BIO_METHOD *BIO_s_datagram(void); +int BIO_dgram_non_fatal_error(int error); +BIO *BIO_new_dgram(int fd, int close_flag); +# ifndef OPENSSL_NO_SCTP +const BIO_METHOD *BIO_s_datagram_sctp(void); +BIO *BIO_new_dgram_sctp(int fd, int close_flag); +int BIO_dgram_is_sctp(BIO *bio); +int BIO_dgram_sctp_notification_cb(BIO *b, + BIO_dgram_sctp_notification_handler_fn handle_notifications, + void *context); +int BIO_dgram_sctp_wait_for_dry(BIO *b); +int BIO_dgram_sctp_msg_waiting(BIO *b); +# endif +# endif + +# ifndef OPENSSL_NO_SOCK +int BIO_sock_should_retry(int i); +int BIO_sock_non_fatal_error(int error); +int BIO_err_is_non_fatal(unsigned int errcode); +int BIO_socket_wait(int fd, int for_read, time_t max_time); +# endif +int BIO_wait(BIO *bio, time_t max_time, unsigned int nap_milliseconds); +int BIO_do_connect_retry(BIO *bio, int timeout, int nap_milliseconds); + +int BIO_fd_should_retry(int i); +int BIO_fd_non_fatal_error(int error); +int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const void *s, int len); +int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const void *s, int len, int indent); +int BIO_dump(BIO *b, const void *bytes, int len); +int BIO_dump_indent(BIO *b, const void *bytes, int len, int indent); +# ifndef OPENSSL_NO_STDIO +int BIO_dump_fp(FILE *fp, const void *s, int len); +int BIO_dump_indent_fp(FILE *fp, const void *s, int len, int indent); +# endif +int BIO_hex_string(BIO *out, int indent, int width, const void *data, + int datalen); + +# ifndef OPENSSL_NO_SOCK +BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_copy(BIO_ADDR *dst, const BIO_ADDR *src); +BIO_ADDR *BIO_ADDR_dup(const BIO_ADDR *ap); +int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, + const void *where, size_t wherelen, unsigned short port); +void BIO_ADDR_free(BIO_ADDR *); +void BIO_ADDR_clear(BIO_ADDR *ap); +int BIO_ADDR_family(const BIO_ADDR *ap); +int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); +unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); +char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_path_string(const BIO_ADDR *ap); + +const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); +const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); +void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); + +enum BIO_hostserv_priorities { + BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV +}; +int BIO_parse_hostserv(const char *hostserv, char **host, char **service, + enum BIO_hostserv_priorities hostserv_prio); +enum BIO_lookup_type { + BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER +}; +int BIO_lookup(const char *host, const char *service, + enum BIO_lookup_type lookup_type, + int family, int socktype, BIO_ADDRINFO **res); +int BIO_lookup_ex(const char *host, const char *service, + int lookup_type, int family, int socktype, int protocol, + BIO_ADDRINFO **res); +int BIO_sock_error(int sock); +int BIO_socket_ioctl(int fd, long type, void *arg); +int BIO_socket_nbio(int fd, int mode); +int BIO_sock_init(void); +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define BIO_sock_cleanup() while(0) continue +# endif +int BIO_set_tcp_ndelay(int sock, int turn_on); +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 struct hostent *BIO_gethostbyname(const char *name); +OSSL_DEPRECATEDIN_1_1_0 int BIO_get_port(const char *str, unsigned short *port_ptr); +OSSL_DEPRECATEDIN_1_1_0 int BIO_get_host_ip(const char *str, unsigned char *ip); +OSSL_DEPRECATEDIN_1_1_0 int BIO_get_accept_socket(char *host_port, int mode); +OSSL_DEPRECATEDIN_1_1_0 int BIO_accept(int sock, char **ip_port); +# endif + +union BIO_sock_info_u { + BIO_ADDR *addr; +}; +enum BIO_sock_info_type { + BIO_SOCK_INFO_ADDRESS +}; +int BIO_sock_info(int sock, + enum BIO_sock_info_type type, union BIO_sock_info_u *info); + +# define BIO_SOCK_REUSEADDR 0x01 +# define BIO_SOCK_V6_ONLY 0x02 +# define BIO_SOCK_KEEPALIVE 0x04 +# define BIO_SOCK_NONBLOCK 0x08 +# define BIO_SOCK_NODELAY 0x10 +# define BIO_SOCK_TFO 0x20 + +int BIO_socket(int domain, int socktype, int protocol, int options); +int BIO_connect(int sock, const BIO_ADDR *addr, int options); +int BIO_bind(int sock, const BIO_ADDR *addr, int options); +int BIO_listen(int sock, const BIO_ADDR *addr, int options); +int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); +int BIO_closesocket(int sock); + +BIO *BIO_new_socket(int sock, int close_flag); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); +# endif /* OPENSSL_NO_SOCK*/ + +BIO *BIO_new_fd(int fd, int close_flag); + +int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# ifndef OPENSSL_NO_DGRAM +int BIO_new_bio_dgram_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +# endif + +/* + * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. + * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default + * value. + */ + +void BIO_copy_next_retry(BIO *b); + +/* + * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); + */ + +# define ossl_bio__attr__(x) +# if defined(__GNUC__) && defined(__STDC_VERSION__) \ + && !defined(__MINGW32__) && !defined(__MINGW64__) \ + && !defined(__APPLE__) + /* + * Because we support the 'z' modifier, which made its appearance in C99, + * we can't use __attribute__ with pre C99 dialects. + */ +# if __STDC_VERSION__ >= 199901L +# undef ossl_bio__attr__ +# define ossl_bio__attr__ __attribute__ +# if __GNUC__*10 + __GNUC_MINOR__ >= 44 +# define ossl_bio__printf__ __gnu_printf__ +# else +# define ossl_bio__printf__ __printf__ +# endif +# endif +# endif +int BIO_printf(BIO *bio, const char *format, ...) +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); +int BIO_vprintf(BIO *bio, const char *format, va_list args) +ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); +int BIO_snprintf(char *buf, size_t n, const char *format, ...) +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); +int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) +ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); +# undef ossl_bio__attr__ +# undef ossl_bio__printf__ + + +BIO_METHOD *BIO_meth_new(int type, const char *name); +void BIO_meth_free(BIO_METHOD *biom); +int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); +int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, + size_t *); +int BIO_meth_set_write(BIO_METHOD *biom, + int (*write) (BIO *, const char *, int)); +int BIO_meth_set_write_ex(BIO_METHOD *biom, + int (*bwrite) (BIO *, const char *, size_t, size_t *)); +int BIO_meth_set_sendmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); +int (*BIO_meth_get_sendmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_read(BIO_METHOD *biom, + int (*read) (BIO *, char *, int)); +int BIO_meth_set_read_ex(BIO_METHOD *biom, + int (*bread) (BIO *, char *, size_t, size_t *)); +int BIO_meth_set_recvmmsg(BIO_METHOD *biom, + int (*f) (BIO *, BIO_MSG *, size_t, size_t, + uint64_t, size_t *)); +int (*BIO_meth_get_recvmmsg(const BIO_METHOD *biom))(BIO *, BIO_MSG *, + size_t, size_t, + uint64_t, size_t *); +int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_puts(BIO_METHOD *biom, + int (*puts) (BIO *, const char *)); +int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +int BIO_meth_set_gets(BIO_METHOD *biom, + int (*ossl_gets) (BIO *, char *, int)); +long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); +int BIO_meth_set_ctrl(BIO_METHOD *biom, + long (*ctrl) (BIO *, int, long, void *)); +int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); +int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); +long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) + (BIO *, int, BIO_info_cb *); +int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, + long (*callback_ctrl) (BIO *, int, + BIO_info_cb *)); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/cmp.h b/clientapp/android/app/src/main/cpp/include/openssl/cmp.h new file mode 100644 index 00000000..80d9709f --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/cmp.h @@ -0,0 +1,648 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/cmp.h.in + * + * Copyright 2007-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright Nokia 2007-2019 + * Copyright Siemens AG 2015-2019 + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_CMP_H +# define OPENSSL_CMP_H + +# include +# ifndef OPENSSL_NO_CMP + +# include +# include +# include +# include + +/* explicit #includes not strictly needed since implied by the above: */ +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# define OSSL_CMP_PVNO_2 2 +# define OSSL_CMP_PVNO_3 3 +# define OSSL_CMP_PVNO OSSL_CMP_PVNO_2 /* v2 is the default */ + +/*- + * PKIFailureInfo ::= BIT STRING { + * -- since we can fail in more than one way! + * -- More codes may be added in the future if/when required. + * badAlg (0), + * -- unrecognized or unsupported Algorithm Identifier + * badMessageCheck (1), + * -- integrity check failed (e.g., signature did not verify) + * badRequest (2), + * -- transaction not permitted or supported + * badTime (3), + * -- messageTime was not sufficiently close to the system time, + * -- as defined by local policy + * badCertId (4), + * -- no certificate could be found matching the provided criteria + * badDataFormat (5), + * -- the data submitted has the wrong format + * wrongAuthority (6), + * -- the authority indicated in the request is different from the + * -- one creating the response token + * incorrectData (7), + * -- the requester's data is incorrect (for notary services) + * missingTimeStamp (8), + * -- when the timestamp is missing but should be there + * -- (by policy) + * badPOP (9), + * -- the proof-of-possession failed + * certRevoked (10), + * -- the certificate has already been revoked + * certConfirmed (11), + * -- the certificate has already been confirmed + * wrongIntegrity (12), + * -- invalid integrity, password based instead of signature or + * -- vice versa + * badRecipientNonce (13), + * -- invalid recipient nonce, either missing or wrong value + * timeNotAvailable (14), + * -- the TSA's time source is not available + * unacceptedPolicy (15), + * -- the requested TSA policy is not supported by the TSA. + * unacceptedExtension (16), + * -- the requested extension is not supported by the TSA. + * addInfoNotAvailable (17), + * -- the additional information requested could not be + * -- understood or is not available + * badSenderNonce (18), + * -- invalid sender nonce, either missing or wrong size + * badCertTemplate (19), + * -- invalid cert. template or missing mandatory information + * signerNotTrusted (20), + * -- signer of the message unknown or not trusted + * transactionIdInUse (21), + * -- the transaction identifier is already in use + * unsupportedVersion (22), + * -- the version of the message is not supported + * notAuthorized (23), + * -- the sender was not authorized to make the preceding + * -- request or perform the preceding action + * systemUnavail (24), + * -- the request cannot be handled due to system unavailability + * systemFailure (25), + * -- the request cannot be handled due to system failure + * duplicateCertReq (26) + * -- certificate cannot be issued because a duplicate + * -- certificate already exists + * } + */ +# define OSSL_CMP_PKIFAILUREINFO_badAlg 0 +# define OSSL_CMP_PKIFAILUREINFO_badMessageCheck 1 +# define OSSL_CMP_PKIFAILUREINFO_badRequest 2 +# define OSSL_CMP_PKIFAILUREINFO_badTime 3 +# define OSSL_CMP_PKIFAILUREINFO_badCertId 4 +# define OSSL_CMP_PKIFAILUREINFO_badDataFormat 5 +# define OSSL_CMP_PKIFAILUREINFO_wrongAuthority 6 +# define OSSL_CMP_PKIFAILUREINFO_incorrectData 7 +# define OSSL_CMP_PKIFAILUREINFO_missingTimeStamp 8 +# define OSSL_CMP_PKIFAILUREINFO_badPOP 9 +# define OSSL_CMP_PKIFAILUREINFO_certRevoked 10 +# define OSSL_CMP_PKIFAILUREINFO_certConfirmed 11 +# define OSSL_CMP_PKIFAILUREINFO_wrongIntegrity 12 +# define OSSL_CMP_PKIFAILUREINFO_badRecipientNonce 13 +# define OSSL_CMP_PKIFAILUREINFO_timeNotAvailable 14 +# define OSSL_CMP_PKIFAILUREINFO_unacceptedPolicy 15 +# define OSSL_CMP_PKIFAILUREINFO_unacceptedExtension 16 +# define OSSL_CMP_PKIFAILUREINFO_addInfoNotAvailable 17 +# define OSSL_CMP_PKIFAILUREINFO_badSenderNonce 18 +# define OSSL_CMP_PKIFAILUREINFO_badCertTemplate 19 +# define OSSL_CMP_PKIFAILUREINFO_signerNotTrusted 20 +# define OSSL_CMP_PKIFAILUREINFO_transactionIdInUse 21 +# define OSSL_CMP_PKIFAILUREINFO_unsupportedVersion 22 +# define OSSL_CMP_PKIFAILUREINFO_notAuthorized 23 +# define OSSL_CMP_PKIFAILUREINFO_systemUnavail 24 +# define OSSL_CMP_PKIFAILUREINFO_systemFailure 25 +# define OSSL_CMP_PKIFAILUREINFO_duplicateCertReq 26 +# define OSSL_CMP_PKIFAILUREINFO_MAX 26 +# define OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN \ + ((1 << (OSSL_CMP_PKIFAILUREINFO_MAX + 1)) - 1) +# if OSSL_CMP_PKIFAILUREINFO_MAX_BIT_PATTERN > INT_MAX +# error CMP_PKIFAILUREINFO_MAX bit pattern does not fit in type int +# endif +typedef ASN1_BIT_STRING OSSL_CMP_PKIFAILUREINFO; + +# define OSSL_CMP_CTX_FAILINFO_badAlg (1 << 0) +# define OSSL_CMP_CTX_FAILINFO_badMessageCheck (1 << 1) +# define OSSL_CMP_CTX_FAILINFO_badRequest (1 << 2) +# define OSSL_CMP_CTX_FAILINFO_badTime (1 << 3) +# define OSSL_CMP_CTX_FAILINFO_badCertId (1 << 4) +# define OSSL_CMP_CTX_FAILINFO_badDataFormat (1 << 5) +# define OSSL_CMP_CTX_FAILINFO_wrongAuthority (1 << 6) +# define OSSL_CMP_CTX_FAILINFO_incorrectData (1 << 7) +# define OSSL_CMP_CTX_FAILINFO_missingTimeStamp (1 << 8) +# define OSSL_CMP_CTX_FAILINFO_badPOP (1 << 9) +# define OSSL_CMP_CTX_FAILINFO_certRevoked (1 << 10) +# define OSSL_CMP_CTX_FAILINFO_certConfirmed (1 << 11) +# define OSSL_CMP_CTX_FAILINFO_wrongIntegrity (1 << 12) +# define OSSL_CMP_CTX_FAILINFO_badRecipientNonce (1 << 13) +# define OSSL_CMP_CTX_FAILINFO_timeNotAvailable (1 << 14) +# define OSSL_CMP_CTX_FAILINFO_unacceptedPolicy (1 << 15) +# define OSSL_CMP_CTX_FAILINFO_unacceptedExtension (1 << 16) +# define OSSL_CMP_CTX_FAILINFO_addInfoNotAvailable (1 << 17) +# define OSSL_CMP_CTX_FAILINFO_badSenderNonce (1 << 18) +# define OSSL_CMP_CTX_FAILINFO_badCertTemplate (1 << 19) +# define OSSL_CMP_CTX_FAILINFO_signerNotTrusted (1 << 20) +# define OSSL_CMP_CTX_FAILINFO_transactionIdInUse (1 << 21) +# define OSSL_CMP_CTX_FAILINFO_unsupportedVersion (1 << 22) +# define OSSL_CMP_CTX_FAILINFO_notAuthorized (1 << 23) +# define OSSL_CMP_CTX_FAILINFO_systemUnavail (1 << 24) +# define OSSL_CMP_CTX_FAILINFO_systemFailure (1 << 25) +# define OSSL_CMP_CTX_FAILINFO_duplicateCertReq (1 << 26) + +/*- + * PKIStatus ::= INTEGER { + * accepted (0), + * -- you got exactly what you asked for + * grantedWithMods (1), + * -- you got something like what you asked for; the + * -- requester is responsible for ascertaining the differences + * rejection (2), + * -- you don't get it, more information elsewhere in the message + * waiting (3), + * -- the request body part has not yet been processed; expect to + * -- hear more later (note: proper handling of this status + * -- response MAY use the polling req/rep PKIMessages specified + * -- in Section 5.3.22; alternatively, polling in the underlying + * -- transport layer MAY have some utility in this regard) + * revocationWarning (4), + * -- this message contains a warning that a revocation is + * -- imminent + * revocationNotification (5), + * -- notification that a revocation has occurred + * keyUpdateWarning (6) + * -- update already done for the oldCertId specified in + * -- CertReqMsg + * } + */ +# define OSSL_CMP_PKISTATUS_request -3 +# define OSSL_CMP_PKISTATUS_trans -2 +# define OSSL_CMP_PKISTATUS_unspecified -1 +# define OSSL_CMP_PKISTATUS_accepted 0 +# define OSSL_CMP_PKISTATUS_grantedWithMods 1 +# define OSSL_CMP_PKISTATUS_rejection 2 +# define OSSL_CMP_PKISTATUS_waiting 3 +# define OSSL_CMP_PKISTATUS_revocationWarning 4 +# define OSSL_CMP_PKISTATUS_revocationNotification 5 +# define OSSL_CMP_PKISTATUS_keyUpdateWarning 6 +typedef ASN1_INTEGER OSSL_CMP_PKISTATUS; + +DECLARE_ASN1_ITEM(OSSL_CMP_PKISTATUS) + +# define OSSL_CMP_CERTORENCCERT_CERTIFICATE 0 +# define OSSL_CMP_CERTORENCCERT_ENCRYPTEDCERT 1 + +/* data type declarations */ +typedef struct ossl_cmp_ctx_st OSSL_CMP_CTX; +typedef struct ossl_cmp_pkiheader_st OSSL_CMP_PKIHEADER; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKIHEADER) +typedef struct ossl_cmp_msg_st OSSL_CMP_MSG; +DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_MSG) +DECLARE_ASN1_ENCODE_FUNCTIONS(OSSL_CMP_MSG, OSSL_CMP_MSG, OSSL_CMP_MSG) +typedef struct ossl_cmp_certstatus_st OSSL_CMP_CERTSTATUS; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS, OSSL_CMP_CERTSTATUS) +#define sk_OSSL_CMP_CERTSTATUS_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CERTSTATUS_value(sk, idx) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CERTSTATUS_new(cmp) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) +#define sk_OSSL_CMP_CERTSTATUS_new_null() ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CERTSTATUS_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CERTSTATUS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (n)) +#define sk_OSSL_CMP_CERTSTATUS_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CERTSTATUS_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CERTSTATUS_delete(sk, i) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (i))) +#define sk_OSSL_CMP_CERTSTATUS_delete_ptr(sk, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) +#define sk_OSSL_CMP_CERTSTATUS_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) +#define sk_OSSL_CMP_CERTSTATUS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) +#define sk_OSSL_CMP_CERTSTATUS_pop(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CERTSTATUS_shift(sk) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CERTSTATUS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk),ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CERTSTATUS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), (idx)) +#define sk_OSSL_CMP_CERTSTATUS_set(sk, idx, ptr) ((OSSL_CMP_CERTSTATUS *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr))) +#define sk_OSSL_CMP_CERTSTATUS_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) +#define sk_OSSL_CMP_CERTSTATUS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr)) +#define sk_OSSL_CMP_CERTSTATUS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_type(ptr), pnum) +#define sk_OSSL_CMP_CERTSTATUS_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CERTSTATUS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk)) +#define sk_OSSL_CMP_CERTSTATUS_dup(sk) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk))) +#define sk_OSSL_CMP_CERTSTATUS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTSTATUS) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTSTATUS_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CERTSTATUS_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTSTATUS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTSTATUS_sk_type(sk), ossl_check_OSSL_CMP_CERTSTATUS_compfunc_type(cmp))) + +typedef struct ossl_cmp_itav_st OSSL_CMP_ITAV; +DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_ITAV) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_ITAV, OSSL_CMP_ITAV, OSSL_CMP_ITAV) +#define sk_OSSL_CMP_ITAV_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) +#define sk_OSSL_CMP_ITAV_value(sk, idx) ((OSSL_CMP_ITAV *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), (idx))) +#define sk_OSSL_CMP_ITAV_new(cmp) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) +#define sk_OSSL_CMP_ITAV_new_null() ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_ITAV_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_ITAV_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (n)) +#define sk_OSSL_CMP_ITAV_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) +#define sk_OSSL_CMP_ITAV_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) +#define sk_OSSL_CMP_ITAV_delete(sk, i) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (i))) +#define sk_OSSL_CMP_ITAV_delete_ptr(sk, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr))) +#define sk_OSSL_CMP_ITAV_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) +#define sk_OSSL_CMP_ITAV_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) +#define sk_OSSL_CMP_ITAV_pop(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) +#define sk_OSSL_CMP_ITAV_shift(sk) ((OSSL_CMP_ITAV *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_ITAV_sk_type(sk))) +#define sk_OSSL_CMP_ITAV_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_ITAV_sk_type(sk),ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc)) +#define sk_OSSL_CMP_ITAV_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), (idx)) +#define sk_OSSL_CMP_ITAV_set(sk, idx, ptr) ((OSSL_CMP_ITAV *)OPENSSL_sk_set(ossl_check_OSSL_CMP_ITAV_sk_type(sk), (idx), ossl_check_OSSL_CMP_ITAV_type(ptr))) +#define sk_OSSL_CMP_ITAV_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) +#define sk_OSSL_CMP_ITAV_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr)) +#define sk_OSSL_CMP_ITAV_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_type(ptr), pnum) +#define sk_OSSL_CMP_ITAV_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_ITAV_sk_type(sk)) +#define sk_OSSL_CMP_ITAV_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk)) +#define sk_OSSL_CMP_ITAV_dup(sk) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk))) +#define sk_OSSL_CMP_ITAV_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_ITAV) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_ITAV_freefunc_type(freefunc))) +#define sk_OSSL_CMP_ITAV_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_ITAV_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_ITAV_sk_type(sk), ossl_check_OSSL_CMP_ITAV_compfunc_type(cmp))) + +typedef struct ossl_cmp_revrepcontent_st OSSL_CMP_REVREPCONTENT; +typedef struct ossl_cmp_pkisi_st OSSL_CMP_PKISI; +DECLARE_ASN1_FUNCTIONS(OSSL_CMP_PKISI) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CMP_PKISI) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_PKISI, OSSL_CMP_PKISI, OSSL_CMP_PKISI) +#define sk_OSSL_CMP_PKISI_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) +#define sk_OSSL_CMP_PKISI_value(sk, idx) ((OSSL_CMP_PKISI *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), (idx))) +#define sk_OSSL_CMP_PKISI_new(cmp) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) +#define sk_OSSL_CMP_PKISI_new_null() ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_PKISI_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_PKISI_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (n)) +#define sk_OSSL_CMP_PKISI_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) +#define sk_OSSL_CMP_PKISI_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) +#define sk_OSSL_CMP_PKISI_delete(sk, i) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (i))) +#define sk_OSSL_CMP_PKISI_delete_ptr(sk, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr))) +#define sk_OSSL_CMP_PKISI_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) +#define sk_OSSL_CMP_PKISI_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) +#define sk_OSSL_CMP_PKISI_pop(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) +#define sk_OSSL_CMP_PKISI_shift(sk) ((OSSL_CMP_PKISI *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_PKISI_sk_type(sk))) +#define sk_OSSL_CMP_PKISI_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_PKISI_sk_type(sk),ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc)) +#define sk_OSSL_CMP_PKISI_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), (idx)) +#define sk_OSSL_CMP_PKISI_set(sk, idx, ptr) ((OSSL_CMP_PKISI *)OPENSSL_sk_set(ossl_check_OSSL_CMP_PKISI_sk_type(sk), (idx), ossl_check_OSSL_CMP_PKISI_type(ptr))) +#define sk_OSSL_CMP_PKISI_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) +#define sk_OSSL_CMP_PKISI_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr)) +#define sk_OSSL_CMP_PKISI_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_type(ptr), pnum) +#define sk_OSSL_CMP_PKISI_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_PKISI_sk_type(sk)) +#define sk_OSSL_CMP_PKISI_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk)) +#define sk_OSSL_CMP_PKISI_dup(sk) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk))) +#define sk_OSSL_CMP_PKISI_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_PKISI) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_PKISI_freefunc_type(freefunc))) +#define sk_OSSL_CMP_PKISI_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_PKISI_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_PKISI_sk_type(sk), ossl_check_OSSL_CMP_PKISI_compfunc_type(cmp))) + +typedef struct ossl_cmp_certrepmessage_st OSSL_CMP_CERTREPMESSAGE; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE, OSSL_CMP_CERTREPMESSAGE) +#define sk_OSSL_CMP_CERTREPMESSAGE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) +#define sk_OSSL_CMP_CERTREPMESSAGE_value(sk, idx) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CERTREPMESSAGE_new(cmp) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) +#define sk_OSSL_CMP_CERTREPMESSAGE_new_null() ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CERTREPMESSAGE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CERTREPMESSAGE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (n)) +#define sk_OSSL_CMP_CERTREPMESSAGE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) +#define sk_OSSL_CMP_CERTREPMESSAGE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) +#define sk_OSSL_CMP_CERTREPMESSAGE_delete(sk, i) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (i))) +#define sk_OSSL_CMP_CERTREPMESSAGE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) +#define sk_OSSL_CMP_CERTREPMESSAGE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) +#define sk_OSSL_CMP_CERTREPMESSAGE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) +#define sk_OSSL_CMP_CERTREPMESSAGE_pop(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) +#define sk_OSSL_CMP_CERTREPMESSAGE_shift(sk) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) +#define sk_OSSL_CMP_CERTREPMESSAGE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk),ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CERTREPMESSAGE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), (idx)) +#define sk_OSSL_CMP_CERTREPMESSAGE_set(sk, idx, ptr) ((OSSL_CMP_CERTREPMESSAGE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr))) +#define sk_OSSL_CMP_CERTREPMESSAGE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) +#define sk_OSSL_CMP_CERTREPMESSAGE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr)) +#define sk_OSSL_CMP_CERTREPMESSAGE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_type(ptr), pnum) +#define sk_OSSL_CMP_CERTREPMESSAGE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) +#define sk_OSSL_CMP_CERTREPMESSAGE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk)) +#define sk_OSSL_CMP_CERTREPMESSAGE_dup(sk) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk))) +#define sk_OSSL_CMP_CERTREPMESSAGE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTREPMESSAGE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTREPMESSAGE_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CERTREPMESSAGE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTREPMESSAGE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTREPMESSAGE_sk_type(sk), ossl_check_OSSL_CMP_CERTREPMESSAGE_compfunc_type(cmp))) + +typedef struct ossl_cmp_pollrep_st OSSL_CMP_POLLREP; +typedef STACK_OF(OSSL_CMP_POLLREP) OSSL_CMP_POLLREPCONTENT; +typedef struct ossl_cmp_certresponse_st OSSL_CMP_CERTRESPONSE; +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE, OSSL_CMP_CERTRESPONSE) +#define sk_OSSL_CMP_CERTRESPONSE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) +#define sk_OSSL_CMP_CERTRESPONSE_value(sk, idx) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_value(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx))) +#define sk_OSSL_CMP_CERTRESPONSE_new(cmp) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) +#define sk_OSSL_CMP_CERTRESPONSE_new_null() ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CMP_CERTRESPONSE_new_reserve(cmp, n) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp), (n))) +#define sk_OSSL_CMP_CERTRESPONSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (n)) +#define sk_OSSL_CMP_CERTRESPONSE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) +#define sk_OSSL_CMP_CERTRESPONSE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) +#define sk_OSSL_CMP_CERTRESPONSE_delete(sk, i) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (i))) +#define sk_OSSL_CMP_CERTRESPONSE_delete_ptr(sk, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) +#define sk_OSSL_CMP_CERTRESPONSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) +#define sk_OSSL_CMP_CERTRESPONSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) +#define sk_OSSL_CMP_CERTRESPONSE_pop(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_pop(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) +#define sk_OSSL_CMP_CERTRESPONSE_shift(sk) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_shift(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk))) +#define sk_OSSL_CMP_CERTRESPONSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk),ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc)) +#define sk_OSSL_CMP_CERTRESPONSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), (idx)) +#define sk_OSSL_CMP_CERTRESPONSE_set(sk, idx, ptr) ((OSSL_CMP_CERTRESPONSE *)OPENSSL_sk_set(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), (idx), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr))) +#define sk_OSSL_CMP_CERTRESPONSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) +#define sk_OSSL_CMP_CERTRESPONSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr)) +#define sk_OSSL_CMP_CERTRESPONSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_type(ptr), pnum) +#define sk_OSSL_CMP_CERTRESPONSE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk)) +#define sk_OSSL_CMP_CERTRESPONSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk)) +#define sk_OSSL_CMP_CERTRESPONSE_dup(sk) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk))) +#define sk_OSSL_CMP_CERTRESPONSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CMP_CERTRESPONSE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_copyfunc_type(copyfunc), ossl_check_OSSL_CMP_CERTRESPONSE_freefunc_type(freefunc))) +#define sk_OSSL_CMP_CERTRESPONSE_set_cmp_func(sk, cmp) ((sk_OSSL_CMP_CERTRESPONSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CMP_CERTRESPONSE_sk_type(sk), ossl_check_OSSL_CMP_CERTRESPONSE_compfunc_type(cmp))) + +typedef STACK_OF(ASN1_UTF8STRING) OSSL_CMP_PKIFREETEXT; + +/* + * function DECLARATIONS + */ + +/* from cmp_asn.c */ +OSSL_CMP_ITAV *OSSL_CMP_ITAV_create(ASN1_OBJECT *type, ASN1_TYPE *value); +void OSSL_CMP_ITAV_set0(OSSL_CMP_ITAV *itav, ASN1_OBJECT *type, + ASN1_TYPE *value); +ASN1_OBJECT *OSSL_CMP_ITAV_get0_type(const OSSL_CMP_ITAV *itav); +ASN1_TYPE *OSSL_CMP_ITAV_get0_value(const OSSL_CMP_ITAV *itav); +int OSSL_CMP_ITAV_push0_stack_item(STACK_OF(OSSL_CMP_ITAV) **itav_sk_p, + OSSL_CMP_ITAV *itav); +void OSSL_CMP_ITAV_free(OSSL_CMP_ITAV *itav); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new0_certProfile(STACK_OF(ASN1_UTF8STRING) + *certProfile); +int OSSL_CMP_ITAV_get0_certProfile(const OSSL_CMP_ITAV *itav, + STACK_OF(ASN1_UTF8STRING) **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_caCerts(const STACK_OF(X509) *caCerts); +int OSSL_CMP_ITAV_get0_caCerts(const OSSL_CMP_ITAV *itav, STACK_OF(X509) **out); + +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaCert(const X509 *rootCaCert); +int OSSL_CMP_ITAV_get0_rootCaCert(const OSSL_CMP_ITAV *itav, X509 **out); +OSSL_CMP_ITAV *OSSL_CMP_ITAV_new_rootCaKeyUpdate(const X509 *newWithNew, + const X509 *newWithOld, + const X509 *oldWithNew); +int OSSL_CMP_ITAV_get0_rootCaKeyUpdate(const OSSL_CMP_ITAV *itav, + X509 **newWithNew, + X509 **newWithOld, + X509 **oldWithNew); + +void OSSL_CMP_MSG_free(OSSL_CMP_MSG *msg); + +/* from cmp_ctx.c */ +OSSL_CMP_CTX *OSSL_CMP_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); +void OSSL_CMP_CTX_free(OSSL_CMP_CTX *ctx); +int OSSL_CMP_CTX_reinit(OSSL_CMP_CTX *ctx); +OSSL_LIB_CTX *OSSL_CMP_CTX_get0_libctx(const OSSL_CMP_CTX *ctx); +const char *OSSL_CMP_CTX_get0_propq(const OSSL_CMP_CTX *ctx); +/* CMP general options: */ +# define OSSL_CMP_OPT_LOG_VERBOSITY 0 +/* CMP transfer options: */ +# define OSSL_CMP_OPT_KEEP_ALIVE 10 +# define OSSL_CMP_OPT_MSG_TIMEOUT 11 +# define OSSL_CMP_OPT_TOTAL_TIMEOUT 12 +# define OSSL_CMP_OPT_USE_TLS 13 +/* CMP request options: */ +# define OSSL_CMP_OPT_VALIDITY_DAYS 20 +# define OSSL_CMP_OPT_SUBJECTALTNAME_NODEFAULT 21 +# define OSSL_CMP_OPT_SUBJECTALTNAME_CRITICAL 22 +# define OSSL_CMP_OPT_POLICIES_CRITICAL 23 +# define OSSL_CMP_OPT_POPO_METHOD 24 +# define OSSL_CMP_OPT_IMPLICIT_CONFIRM 25 +# define OSSL_CMP_OPT_DISABLE_CONFIRM 26 +# define OSSL_CMP_OPT_REVOCATION_REASON 27 +/* CMP protection options: */ +# define OSSL_CMP_OPT_UNPROTECTED_SEND 30 +# define OSSL_CMP_OPT_UNPROTECTED_ERRORS 31 +# define OSSL_CMP_OPT_OWF_ALGNID 32 +# define OSSL_CMP_OPT_MAC_ALGNID 33 +# define OSSL_CMP_OPT_DIGEST_ALGNID 34 +# define OSSL_CMP_OPT_IGNORE_KEYUSAGE 35 +# define OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR 36 +# define OSSL_CMP_OPT_NO_CACHE_EXTRACERTS 37 +int OSSL_CMP_CTX_set_option(OSSL_CMP_CTX *ctx, int opt, int val); +int OSSL_CMP_CTX_get_option(const OSSL_CMP_CTX *ctx, int opt); +/* CMP-specific callback for logging and outputting the error queue: */ +int OSSL_CMP_CTX_set_log_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_log_cb_t cb); +# define OSSL_CMP_CTX_set_log_verbosity(ctx, level) \ + OSSL_CMP_CTX_set_option(ctx, OSSL_CMP_OPT_LOG_VERBOSITY, level) +void OSSL_CMP_CTX_print_errors(const OSSL_CMP_CTX *ctx); +/* message transfer: */ +int OSSL_CMP_CTX_set1_serverPath(OSSL_CMP_CTX *ctx, const char *path); +int OSSL_CMP_CTX_set1_server(OSSL_CMP_CTX *ctx, const char *address); +int OSSL_CMP_CTX_set_serverPort(OSSL_CMP_CTX *ctx, int port); +int OSSL_CMP_CTX_set1_proxy(OSSL_CMP_CTX *ctx, const char *name); +int OSSL_CMP_CTX_set1_no_proxy(OSSL_CMP_CTX *ctx, const char *names); +# ifndef OPENSSL_NO_HTTP +int OSSL_CMP_CTX_set_http_cb(OSSL_CMP_CTX *ctx, OSSL_HTTP_bio_cb_t cb); +int OSSL_CMP_CTX_set_http_cb_arg(OSSL_CMP_CTX *ctx, void *arg); +void *OSSL_CMP_CTX_get_http_cb_arg(const OSSL_CMP_CTX *ctx); +# endif +typedef OSSL_CMP_MSG *(*OSSL_CMP_transfer_cb_t) (OSSL_CMP_CTX *ctx, + const OSSL_CMP_MSG *req); +int OSSL_CMP_CTX_set_transfer_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_transfer_cb_t cb); +int OSSL_CMP_CTX_set_transfer_cb_arg(OSSL_CMP_CTX *ctx, void *arg); +void *OSSL_CMP_CTX_get_transfer_cb_arg(const OSSL_CMP_CTX *ctx); +/* server authentication: */ +int OSSL_CMP_CTX_set1_srvCert(OSSL_CMP_CTX *ctx, X509 *cert); +int OSSL_CMP_CTX_set1_expected_sender(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set0_trustedStore(OSSL_CMP_CTX *ctx, X509_STORE *store); +# define OSSL_CMP_CTX_set0_trusted OSSL_CMP_CTX_set0_trustedStore +X509_STORE *OSSL_CMP_CTX_get0_trustedStore(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_CTX_get0_trusted OSSL_CMP_CTX_get0_trustedStore +int OSSL_CMP_CTX_set1_untrusted(OSSL_CMP_CTX *ctx, STACK_OF(X509) *certs); +STACK_OF(X509) *OSSL_CMP_CTX_get0_untrusted(const OSSL_CMP_CTX *ctx); +/* client authentication: */ +int OSSL_CMP_CTX_set1_cert(OSSL_CMP_CTX *ctx, X509 *cert); +int OSSL_CMP_CTX_build_cert_chain(OSSL_CMP_CTX *ctx, X509_STORE *own_trusted, + STACK_OF(X509) *candidates); +int OSSL_CMP_CTX_set1_pkey(OSSL_CMP_CTX *ctx, EVP_PKEY *pkey); +int OSSL_CMP_CTX_set1_referenceValue(OSSL_CMP_CTX *ctx, + const unsigned char *ref, int len); +int OSSL_CMP_CTX_set1_secretValue(OSSL_CMP_CTX *ctx, + const unsigned char *sec, int len); +/* CMP message header and extra certificates: */ +int OSSL_CMP_CTX_set1_recipient(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_push0_geninfo_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); +int OSSL_CMP_CTX_reset_geninfo_ITAVs(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_CTX_get0_geninfo_ITAVs(const OSSL_CMP_CTX *ctx); +int OSSL_CMP_CTX_set1_extraCertsOut(OSSL_CMP_CTX *ctx, + STACK_OF(X509) *extraCertsOut); +/* certificate template: */ +int OSSL_CMP_CTX_set0_newPkey(OSSL_CMP_CTX *ctx, int priv, EVP_PKEY *pkey); +EVP_PKEY *OSSL_CMP_CTX_get0_newPkey(const OSSL_CMP_CTX *ctx, int priv); +int OSSL_CMP_CTX_set1_issuer(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_set1_serialNumber(OSSL_CMP_CTX *ctx, const ASN1_INTEGER *sn); +int OSSL_CMP_CTX_set1_subjectName(OSSL_CMP_CTX *ctx, const X509_NAME *name); +int OSSL_CMP_CTX_push1_subjectAltName(OSSL_CMP_CTX *ctx, + const GENERAL_NAME *name); +int OSSL_CMP_CTX_set0_reqExtensions(OSSL_CMP_CTX *ctx, X509_EXTENSIONS *exts); +int OSSL_CMP_CTX_reqExtensions_have_SAN(OSSL_CMP_CTX *ctx); +int OSSL_CMP_CTX_push0_policy(OSSL_CMP_CTX *ctx, POLICYINFO *pinfo); +int OSSL_CMP_CTX_set1_oldCert(OSSL_CMP_CTX *ctx, X509 *cert); +int OSSL_CMP_CTX_set1_p10CSR(OSSL_CMP_CTX *ctx, const X509_REQ *csr); +/* misc body contents: */ +int OSSL_CMP_CTX_push0_genm_ITAV(OSSL_CMP_CTX *ctx, OSSL_CMP_ITAV *itav); +/* certificate confirmation: */ +typedef int (*OSSL_CMP_certConf_cb_t) (OSSL_CMP_CTX *ctx, X509 *cert, + int fail_info, const char **txt); +int OSSL_CMP_certConf_cb(OSSL_CMP_CTX *ctx, X509 *cert, int fail_info, + const char **text); +int OSSL_CMP_CTX_set_certConf_cb(OSSL_CMP_CTX *ctx, OSSL_CMP_certConf_cb_t cb); +int OSSL_CMP_CTX_set_certConf_cb_arg(OSSL_CMP_CTX *ctx, void *arg); +void *OSSL_CMP_CTX_get_certConf_cb_arg(const OSSL_CMP_CTX *ctx); +/* result fetching: */ +int OSSL_CMP_CTX_get_status(const OSSL_CMP_CTX *ctx); +OSSL_CMP_PKIFREETEXT *OSSL_CMP_CTX_get0_statusString(const OSSL_CMP_CTX *ctx); +int OSSL_CMP_CTX_get_failInfoCode(const OSSL_CMP_CTX *ctx); +# define OSSL_CMP_PKISI_BUFLEN 1024 +X509 *OSSL_CMP_CTX_get0_validatedSrvCert(const OSSL_CMP_CTX *ctx); +X509 *OSSL_CMP_CTX_get0_newCert(const OSSL_CMP_CTX *ctx); +STACK_OF(X509) *OSSL_CMP_CTX_get1_newChain(const OSSL_CMP_CTX *ctx); +STACK_OF(X509) *OSSL_CMP_CTX_get1_caPubs(const OSSL_CMP_CTX *ctx); +STACK_OF(X509) *OSSL_CMP_CTX_get1_extraCertsIn(const OSSL_CMP_CTX *ctx); +int OSSL_CMP_CTX_set1_transactionID(OSSL_CMP_CTX *ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_CTX_set1_senderNonce(OSSL_CMP_CTX *ctx, + const ASN1_OCTET_STRING *nonce); + +/* from cmp_status.c */ +char *OSSL_CMP_CTX_snprint_PKIStatus(const OSSL_CMP_CTX *ctx, char *buf, + size_t bufsize); +char *OSSL_CMP_snprint_PKIStatusInfo(const OSSL_CMP_PKISI *statusInfo, + char *buf, size_t bufsize); +OSSL_CMP_PKISI * +OSSL_CMP_STATUSINFO_new(int status, int fail_info, const char *text); + +/* from cmp_hdr.c */ +ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_transactionID(const + OSSL_CMP_PKIHEADER *hdr); +ASN1_OCTET_STRING *OSSL_CMP_HDR_get0_recipNonce(const OSSL_CMP_PKIHEADER *hdr); +STACK_OF(OSSL_CMP_ITAV) + *OSSL_CMP_HDR_get0_geninfo_ITAVs(const OSSL_CMP_PKIHEADER *hdr); + +/* from cmp_msg.c */ +OSSL_CMP_PKIHEADER *OSSL_CMP_MSG_get0_header(const OSSL_CMP_MSG *msg); +int OSSL_CMP_MSG_get_bodytype(const OSSL_CMP_MSG *msg); +X509_PUBKEY *OSSL_CMP_MSG_get0_certreq_publickey(const OSSL_CMP_MSG *msg); +int OSSL_CMP_MSG_update_transactionID(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); +int OSSL_CMP_MSG_update_recipNonce(OSSL_CMP_CTX *ctx, OSSL_CMP_MSG *msg); +OSSL_CRMF_MSG *OSSL_CMP_CTX_setup_CRM(OSSL_CMP_CTX *ctx, int for_KUR, int rid); +OSSL_CMP_MSG *OSSL_CMP_MSG_read(const char *file, OSSL_LIB_CTX *libctx, + const char *propq); +int OSSL_CMP_MSG_write(const char *file, const OSSL_CMP_MSG *msg); +OSSL_CMP_MSG *d2i_OSSL_CMP_MSG_bio(BIO *bio, OSSL_CMP_MSG **msg); +int i2d_OSSL_CMP_MSG_bio(BIO *bio, const OSSL_CMP_MSG *msg); + +/* from cmp_vfy.c */ +int OSSL_CMP_validate_msg(OSSL_CMP_CTX *ctx, const OSSL_CMP_MSG *msg); +int OSSL_CMP_validate_cert_path(const OSSL_CMP_CTX *ctx, + X509_STORE *trusted_store, X509 *cert); + +/* from cmp_http.c */ +# ifndef OPENSSL_NO_HTTP +OSSL_CMP_MSG *OSSL_CMP_MSG_http_perform(OSSL_CMP_CTX *ctx, + const OSSL_CMP_MSG *req); +# endif + +/* from cmp_server.c */ +typedef struct ossl_cmp_srv_ctx_st OSSL_CMP_SRV_CTX; +OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +OSSL_CMP_MSG * OSSL_CMP_CTX_server_perform(OSSL_CMP_CTX *client_ctx, + const OSSL_CMP_MSG *req); +OSSL_CMP_SRV_CTX *OSSL_CMP_SRV_CTX_new(OSSL_LIB_CTX *libctx, const char *propq); +void OSSL_CMP_SRV_CTX_free(OSSL_CMP_SRV_CTX *srv_ctx); +typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_cert_request_cb_t) + (OSSL_CMP_SRV_CTX *srv_ctx, const OSSL_CMP_MSG *req, int certReqId, + const OSSL_CRMF_MSG *crm, const X509_REQ *p10cr, + X509 **certOut, STACK_OF(X509) **chainOut, STACK_OF(X509) **caPubs); +typedef OSSL_CMP_PKISI *(*OSSL_CMP_SRV_rr_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req, + const X509_NAME *issuer, + const ASN1_INTEGER *serial); +typedef int (*OSSL_CMP_SRV_genm_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req, + const STACK_OF(OSSL_CMP_ITAV) *in, + STACK_OF(OSSL_CMP_ITAV) **out); +typedef void (*OSSL_CMP_SRV_error_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req, + const OSSL_CMP_PKISI *statusInfo, + const ASN1_INTEGER *errorCode, + const OSSL_CMP_PKIFREETEXT *errDetails); +typedef int (*OSSL_CMP_SRV_certConf_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req, + int certReqId, + const ASN1_OCTET_STRING *certHash, + const OSSL_CMP_PKISI *si); +typedef int (*OSSL_CMP_SRV_pollReq_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req, int certReqId, + OSSL_CMP_MSG **certReq, + int64_t *check_after); +int OSSL_CMP_SRV_CTX_init(OSSL_CMP_SRV_CTX *srv_ctx, void *custom_ctx, + OSSL_CMP_SRV_cert_request_cb_t process_cert_request, + OSSL_CMP_SRV_rr_cb_t process_rr, + OSSL_CMP_SRV_genm_cb_t process_genm, + OSSL_CMP_SRV_error_cb_t process_error, + OSSL_CMP_SRV_certConf_cb_t process_certConf, + OSSL_CMP_SRV_pollReq_cb_t process_pollReq); +typedef int (*OSSL_CMP_SRV_delayed_delivery_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const OSSL_CMP_MSG *req); +typedef int (*OSSL_CMP_SRV_clean_transaction_cb_t)(OSSL_CMP_SRV_CTX *srv_ctx, + const ASN1_OCTET_STRING *id); +int OSSL_CMP_SRV_CTX_init_trans(OSSL_CMP_SRV_CTX *srv_ctx, + OSSL_CMP_SRV_delayed_delivery_cb_t delay, + OSSL_CMP_SRV_clean_transaction_cb_t clean); +OSSL_CMP_CTX *OSSL_CMP_SRV_CTX_get0_cmp_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); +void *OSSL_CMP_SRV_CTX_get0_custom_ctx(const OSSL_CMP_SRV_CTX *srv_ctx); +int OSSL_CMP_SRV_CTX_set_send_unprotected_errors(OSSL_CMP_SRV_CTX *srv_ctx, + int val); +int OSSL_CMP_SRV_CTX_set_accept_unprotected(OSSL_CMP_SRV_CTX *srv_ctx, int val); +int OSSL_CMP_SRV_CTX_set_accept_raverified(OSSL_CMP_SRV_CTX *srv_ctx, int val); +int OSSL_CMP_SRV_CTX_set_grant_implicit_confirm(OSSL_CMP_SRV_CTX *srv_ctx, + int val); + +/* from cmp_client.c */ +X509 *OSSL_CMP_exec_certreq(OSSL_CMP_CTX *ctx, int req_type, + const OSSL_CRMF_MSG *crm); +# define OSSL_CMP_IR 0 +# define OSSL_CMP_CR 2 +# define OSSL_CMP_P10CR 4 +# define OSSL_CMP_KUR 7 +# define OSSL_CMP_GENM 21 +# define OSSL_CMP_ERROR 23 +# define OSSL_CMP_exec_IR_ses(ctx) \ + OSSL_CMP_exec_certreq(ctx, OSSL_CMP_IR, NULL) +# define OSSL_CMP_exec_CR_ses(ctx) \ + OSSL_CMP_exec_certreq(ctx, OSSL_CMP_CR, NULL) +# define OSSL_CMP_exec_P10CR_ses(ctx) \ + OSSL_CMP_exec_certreq(ctx, OSSL_CMP_P10CR, NULL) +# define OSSL_CMP_exec_KUR_ses(ctx) \ + OSSL_CMP_exec_certreq(ctx, OSSL_CMP_KUR, NULL) +int OSSL_CMP_try_certreq(OSSL_CMP_CTX *ctx, int req_type, + const OSSL_CRMF_MSG *crm, int *checkAfter); +int OSSL_CMP_exec_RR_ses(OSSL_CMP_CTX *ctx); +STACK_OF(OSSL_CMP_ITAV) *OSSL_CMP_exec_GENM_ses(OSSL_CMP_CTX *ctx); + +/* from cmp_genm.c */ +int OSSL_CMP_get1_caCerts(OSSL_CMP_CTX *ctx, STACK_OF(X509) **out); +int OSSL_CMP_get1_rootCaKeyUpdate(OSSL_CMP_CTX *ctx, + const X509 *oldWithOld, X509 **newWithNew, + X509 **newWithOld, X509 **oldWithNew); + +# ifdef __cplusplus +} +# endif +# endif /* !defined(OPENSSL_NO_CMP) */ +#endif /* !defined(OPENSSL_CMP_H) */ diff --git a/clientapp/android/app/src/main/cpp/include/openssl/cms.h b/clientapp/android/app/src/main/cpp/include/openssl/cms.h new file mode 100644 index 00000000..fe86a5c7 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/cms.h @@ -0,0 +1,508 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/cms.h.in + * + * Copyright 2008-2022 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_CMS_H +# define OPENSSL_CMS_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_CMS_H +# endif + +# include + +# ifndef OPENSSL_NO_CMS +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + +typedef struct CMS_EnvelopedData_st CMS_EnvelopedData; +typedef struct CMS_ContentInfo_st CMS_ContentInfo; +typedef struct CMS_SignerInfo_st CMS_SignerInfo; +typedef struct CMS_SignedData_st CMS_SignedData; +typedef struct CMS_CertificateChoices CMS_CertificateChoices; +typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; +typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; +typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; +typedef struct CMS_Receipt_st CMS_Receipt; +typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; +typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; + +SKM_DEFINE_STACK_OF_INTERNAL(CMS_SignerInfo, CMS_SignerInfo, CMS_SignerInfo) +#define sk_CMS_SignerInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_SignerInfo_sk_type(sk)) +#define sk_CMS_SignerInfo_value(sk, idx) ((CMS_SignerInfo *)OPENSSL_sk_value(ossl_check_const_CMS_SignerInfo_sk_type(sk), (idx))) +#define sk_CMS_SignerInfo_new(cmp) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new(ossl_check_CMS_SignerInfo_compfunc_type(cmp))) +#define sk_CMS_SignerInfo_new_null() ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_null()) +#define sk_CMS_SignerInfo_new_reserve(cmp, n) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_SignerInfo_compfunc_type(cmp), (n))) +#define sk_CMS_SignerInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_SignerInfo_sk_type(sk), (n)) +#define sk_CMS_SignerInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_SignerInfo_sk_type(sk)) +#define sk_CMS_SignerInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_SignerInfo_sk_type(sk)) +#define sk_CMS_SignerInfo_delete(sk, i) ((CMS_SignerInfo *)OPENSSL_sk_delete(ossl_check_CMS_SignerInfo_sk_type(sk), (i))) +#define sk_CMS_SignerInfo_delete_ptr(sk, ptr) ((CMS_SignerInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))) +#define sk_CMS_SignerInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) +#define sk_CMS_SignerInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) +#define sk_CMS_SignerInfo_pop(sk) ((CMS_SignerInfo *)OPENSSL_sk_pop(ossl_check_CMS_SignerInfo_sk_type(sk))) +#define sk_CMS_SignerInfo_shift(sk) ((CMS_SignerInfo *)OPENSSL_sk_shift(ossl_check_CMS_SignerInfo_sk_type(sk))) +#define sk_CMS_SignerInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_SignerInfo_sk_type(sk),ossl_check_CMS_SignerInfo_freefunc_type(freefunc)) +#define sk_CMS_SignerInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), (idx)) +#define sk_CMS_SignerInfo_set(sk, idx, ptr) ((CMS_SignerInfo *)OPENSSL_sk_set(ossl_check_CMS_SignerInfo_sk_type(sk), (idx), ossl_check_CMS_SignerInfo_type(ptr))) +#define sk_CMS_SignerInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) +#define sk_CMS_SignerInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)) +#define sk_CMS_SignerInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), pnum) +#define sk_CMS_SignerInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_SignerInfo_sk_type(sk)) +#define sk_CMS_SignerInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_SignerInfo_sk_type(sk)) +#define sk_CMS_SignerInfo_dup(sk) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_SignerInfo_sk_type(sk))) +#define sk_CMS_SignerInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_copyfunc_type(copyfunc), ossl_check_CMS_SignerInfo_freefunc_type(freefunc))) +#define sk_CMS_SignerInfo_set_cmp_func(sk, cmp) ((sk_CMS_SignerInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey) +#define sk_CMS_RecipientEncryptedKey_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) +#define sk_CMS_RecipientEncryptedKey_value(sk, idx) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), (idx))) +#define sk_CMS_RecipientEncryptedKey_new(cmp) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) +#define sk_CMS_RecipientEncryptedKey_new_null() ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_null()) +#define sk_CMS_RecipientEncryptedKey_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp), (n))) +#define sk_CMS_RecipientEncryptedKey_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (n)) +#define sk_CMS_RecipientEncryptedKey_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) +#define sk_CMS_RecipientEncryptedKey_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) +#define sk_CMS_RecipientEncryptedKey_delete(sk, i) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (i))) +#define sk_CMS_RecipientEncryptedKey_delete_ptr(sk, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) +#define sk_CMS_RecipientEncryptedKey_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) +#define sk_CMS_RecipientEncryptedKey_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) +#define sk_CMS_RecipientEncryptedKey_pop(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_pop(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) +#define sk_CMS_RecipientEncryptedKey_shift(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_shift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))) +#define sk_CMS_RecipientEncryptedKey_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk),ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc)) +#define sk_CMS_RecipientEncryptedKey_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), (idx)) +#define sk_CMS_RecipientEncryptedKey_set(sk, idx, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_set(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (idx), ossl_check_CMS_RecipientEncryptedKey_type(ptr))) +#define sk_CMS_RecipientEncryptedKey_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) +#define sk_CMS_RecipientEncryptedKey_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)) +#define sk_CMS_RecipientEncryptedKey_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), pnum) +#define sk_CMS_RecipientEncryptedKey_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)) +#define sk_CMS_RecipientEncryptedKey_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)) +#define sk_CMS_RecipientEncryptedKey_dup(sk) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))) +#define sk_CMS_RecipientEncryptedKey_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_copyfunc_type(copyfunc), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc))) +#define sk_CMS_RecipientEncryptedKey_set_cmp_func(sk, cmp) ((sk_CMS_RecipientEncryptedKey_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientInfo, CMS_RecipientInfo, CMS_RecipientInfo) +#define sk_CMS_RecipientInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) +#define sk_CMS_RecipientInfo_value(sk, idx) ((CMS_RecipientInfo *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientInfo_sk_type(sk), (idx))) +#define sk_CMS_RecipientInfo_new(cmp) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new(ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) +#define sk_CMS_RecipientInfo_new_null() ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_null()) +#define sk_CMS_RecipientInfo_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientInfo_compfunc_type(cmp), (n))) +#define sk_CMS_RecipientInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientInfo_sk_type(sk), (n)) +#define sk_CMS_RecipientInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientInfo_sk_type(sk)) +#define sk_CMS_RecipientInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientInfo_sk_type(sk)) +#define sk_CMS_RecipientInfo_delete(sk, i) ((CMS_RecipientInfo *)OPENSSL_sk_delete(ossl_check_CMS_RecipientInfo_sk_type(sk), (i))) +#define sk_CMS_RecipientInfo_delete_ptr(sk, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))) +#define sk_CMS_RecipientInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) +#define sk_CMS_RecipientInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) +#define sk_CMS_RecipientInfo_pop(sk) ((CMS_RecipientInfo *)OPENSSL_sk_pop(ossl_check_CMS_RecipientInfo_sk_type(sk))) +#define sk_CMS_RecipientInfo_shift(sk) ((CMS_RecipientInfo *)OPENSSL_sk_shift(ossl_check_CMS_RecipientInfo_sk_type(sk))) +#define sk_CMS_RecipientInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientInfo_sk_type(sk),ossl_check_CMS_RecipientInfo_freefunc_type(freefunc)) +#define sk_CMS_RecipientInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), (idx)) +#define sk_CMS_RecipientInfo_set(sk, idx, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_set(ossl_check_CMS_RecipientInfo_sk_type(sk), (idx), ossl_check_CMS_RecipientInfo_type(ptr))) +#define sk_CMS_RecipientInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) +#define sk_CMS_RecipientInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)) +#define sk_CMS_RecipientInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), pnum) +#define sk_CMS_RecipientInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientInfo_sk_type(sk)) +#define sk_CMS_RecipientInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientInfo_sk_type(sk)) +#define sk_CMS_RecipientInfo_dup(sk) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientInfo_sk_type(sk))) +#define sk_CMS_RecipientInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_copyfunc_type(copyfunc), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc))) +#define sk_CMS_RecipientInfo_set_cmp_func(sk, cmp) ((sk_CMS_RecipientInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, CMS_RevocationInfoChoice) +#define sk_CMS_RevocationInfoChoice_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) +#define sk_CMS_RevocationInfoChoice_value(sk, idx) ((CMS_RevocationInfoChoice *)OPENSSL_sk_value(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), (idx))) +#define sk_CMS_RevocationInfoChoice_new(cmp) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) +#define sk_CMS_RevocationInfoChoice_new_null() ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_null()) +#define sk_CMS_RevocationInfoChoice_new_reserve(cmp, n) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp), (n))) +#define sk_CMS_RevocationInfoChoice_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (n)) +#define sk_CMS_RevocationInfoChoice_free(sk) OPENSSL_sk_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) +#define sk_CMS_RevocationInfoChoice_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) +#define sk_CMS_RevocationInfoChoice_delete(sk, i) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (i))) +#define sk_CMS_RevocationInfoChoice_delete_ptr(sk, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))) +#define sk_CMS_RevocationInfoChoice_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) +#define sk_CMS_RevocationInfoChoice_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) +#define sk_CMS_RevocationInfoChoice_pop(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_pop(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) +#define sk_CMS_RevocationInfoChoice_shift(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_shift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))) +#define sk_CMS_RevocationInfoChoice_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk),ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc)) +#define sk_CMS_RevocationInfoChoice_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), (idx)) +#define sk_CMS_RevocationInfoChoice_set(sk, idx, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_set(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (idx), ossl_check_CMS_RevocationInfoChoice_type(ptr))) +#define sk_CMS_RevocationInfoChoice_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) +#define sk_CMS_RevocationInfoChoice_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)) +#define sk_CMS_RevocationInfoChoice_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), pnum) +#define sk_CMS_RevocationInfoChoice_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)) +#define sk_CMS_RevocationInfoChoice_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)) +#define sk_CMS_RevocationInfoChoice_dup(sk) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_dup(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))) +#define sk_CMS_RevocationInfoChoice_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_copyfunc_type(copyfunc), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc))) +#define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp))) + + +DECLARE_ASN1_ITEM(CMS_EnvelopedData) +DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData) +DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) +DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) +DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) + +CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq); + +# define CMS_SIGNERINFO_ISSUER_SERIAL 0 +# define CMS_SIGNERINFO_KEYIDENTIFIER 1 + +# define CMS_RECIPINFO_NONE -1 +# define CMS_RECIPINFO_TRANS 0 +# define CMS_RECIPINFO_AGREE 1 +# define CMS_RECIPINFO_KEK 2 +# define CMS_RECIPINFO_PASS 3 +# define CMS_RECIPINFO_OTHER 4 + +/* S/MIME related flags */ + +# define CMS_TEXT 0x1 +# define CMS_NOCERTS 0x2 +# define CMS_NO_CONTENT_VERIFY 0x4 +# define CMS_NO_ATTR_VERIFY 0x8 +# define CMS_NOSIGS \ + (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) +# define CMS_NOINTERN 0x10 +# define CMS_NO_SIGNER_CERT_VERIFY 0x20 +# define CMS_NOVERIFY 0x20 +# define CMS_DETACHED 0x40 +# define CMS_BINARY 0x80 +# define CMS_NOATTR 0x100 +# define CMS_NOSMIMECAP 0x200 +# define CMS_NOOLDMIMETYPE 0x400 +# define CMS_CRLFEOL 0x800 +# define CMS_STREAM 0x1000 +# define CMS_NOCRL 0x2000 +# define CMS_PARTIAL 0x4000 +# define CMS_REUSE_DIGEST 0x8000 +# define CMS_USE_KEYID 0x10000 +# define CMS_DEBUG_DECRYPT 0x20000 +# define CMS_KEY_PARAM 0x40000 +# define CMS_ASCIICRLF 0x80000 +# define CMS_CADES 0x100000 +# define CMS_USE_ORIGINATOR_KEYID 0x200000 + +const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); + +BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); +int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); + +ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); +int CMS_is_detached(CMS_ContentInfo *cms); +int CMS_set_detached(CMS_ContentInfo *cms, int detached); + +# ifdef OPENSSL_PEM_H +DECLARE_PEM_rw(CMS, CMS_ContentInfo) +# endif +int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); +CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); +int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); + +BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); +int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); +int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, + int flags); +CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); +CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont, CMS_ContentInfo **ci); +int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); + +int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, + unsigned int flags); +int CMS_final_digest(CMS_ContentInfo *cms, + const unsigned char *md, unsigned int mdlen, BIO *dcont, + unsigned int flags); + +CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags); +CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, BIO *data, + unsigned int flags, OSSL_LIB_CTX *libctx, + const char *propq); + +CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, + X509 *signcert, EVP_PKEY *pkey, + STACK_OF(X509) *certs, unsigned int flags); + +int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); +CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); + +int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, + unsigned int flags); +CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md, + unsigned int flags, OSSL_LIB_CTX *libctx, + const char *propq); + +int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, + const unsigned char *key, size_t keylen, + BIO *dcont, BIO *out, unsigned int flags); +CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags); +CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher, + const unsigned char *key, + size_t keylen, unsigned int flags, + OSSL_LIB_CTX *libctx, + const char *propq); + +int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, + const unsigned char *key, size_t keylen); + +int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); + +int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, + STACK_OF(X509) *certs, + X509_STORE *store, unsigned int flags); + +STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); + +CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags); +CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); + +int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, + BIO *dcont, BIO *out, unsigned int flags); + +int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); +int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk, + X509 *cert, X509 *peer); +int CMS_decrypt_set1_key(CMS_ContentInfo *cms, + unsigned char *key, size_t keylen, + const unsigned char *id, size_t idlen); +int CMS_decrypt_set1_password(CMS_ContentInfo *cms, + unsigned char *pass, ossl_ssize_t passlen); + +STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); +int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); +EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); +CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher); +CMS_ContentInfo * +CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx, + const char *propq); +CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); +CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher, + OSSL_LIB_CTX *libctx, + const char *propq); +BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data, + EVP_PKEY *pkey, X509 *cert, + ASN1_OCTET_STRING *secret, unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); + +CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, + X509 *recip, unsigned int flags); +CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip, + EVP_PKEY *originatorPrivKey, X509 * originator, unsigned int flags); +int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); +int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); +int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, + EVP_PKEY **pk, X509 **recip, + X509_ALGOR **palg); +int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, + unsigned char *key, size_t keylen, + unsigned char *id, size_t idlen, + ASN1_GENERALIZEDTIME *date, + ASN1_OBJECT *otherTypeId, + ASN1_TYPE *otherType); + +int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pid, + ASN1_GENERALIZEDTIME **pdate, + ASN1_OBJECT **potherid, + ASN1_TYPE **pothertype); + +int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, + unsigned char *key, size_t keylen); + +int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, + const unsigned char *id, size_t idlen); + +int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, + unsigned char *pass, + ossl_ssize_t passlen); + +CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, + int iter, int wrap_nid, + int pbe_nid, + unsigned char *pass, + ossl_ssize_t passlen, + const EVP_CIPHER *kekciph); + +int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); +int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri); + +int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, + unsigned int flags); +CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); + +int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); +const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); + +CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); +int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); +int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); +STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); + +CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); +int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); +int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); +STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); + +int CMS_SignedData_init(CMS_ContentInfo *cms); +CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, + X509 *signer, EVP_PKEY *pk, const EVP_MD *md, + unsigned int flags); +EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); +EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); +STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); + +void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); +int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); +int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, + unsigned int flags); +void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, + X509 **signer, X509_ALGOR **pdig, + X509_ALGOR **psig); +ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); +int CMS_SignerInfo_sign(CMS_SignerInfo *si); +int CMS_SignerInfo_verify(CMS_SignerInfo *si); +int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); +BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, + STACK_OF(X509) *scerts, X509_STORE *store, + STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, + unsigned int flags, + OSSL_LIB_CTX *libctx, const char *propq); + +int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); +int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, + int algnid, int keysize); +int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); + +int CMS_signed_get_attr_count(const CMS_SignerInfo *si); +int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si, + const ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); +int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, + int lastpos); +int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); +X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); +int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); +int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, + const ASN1_OBJECT *obj, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, + int nid, int type, + const void *bytes, int len); +int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, + const char *attrname, int type, + const void *bytes, int len); +void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, + int lastpos, int type); + +int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0( + unsigned char *id, int idlen, int allorfirst, + STACK_OF(GENERAL_NAMES) *receiptList, + STACK_OF(GENERAL_NAMES) *receiptsTo); +CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex( + unsigned char *id, int idlen, int allorfirst, + STACK_OF(GENERAL_NAMES) *receiptList, + STACK_OF(GENERAL_NAMES) *receiptsTo, + OSSL_LIB_CTX *libctx); + +int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); +void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, + ASN1_STRING **pcid, + int *pallorfirst, + STACK_OF(GENERAL_NAMES) **plist, + STACK_OF(GENERAL_NAMES) **prto); +int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, + X509_ALGOR **palg, + ASN1_OCTET_STRING **pukm); +STACK_OF(CMS_RecipientEncryptedKey) +*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); + +int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, + X509_ALGOR **pubalg, + ASN1_BIT_STRING **pubkey, + ASN1_OCTET_STRING **keyid, + X509_NAME **issuer, + ASN1_INTEGER **sno); + +int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); + +int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, + ASN1_OCTET_STRING **keyid, + ASN1_GENERALIZEDTIME **tm, + CMS_OtherKeyAttribute **other, + X509_NAME **issuer, ASN1_INTEGER **sno); +int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, + X509 *cert); +int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); +int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, EVP_PKEY *pk, X509 *peer); +EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); +int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, + CMS_RecipientInfo *ri, + CMS_RecipientEncryptedKey *rek); + +int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, + ASN1_OCTET_STRING *ukm, int keylen); + +/* Backward compatibility for spelling errors. */ +# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM +# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ + CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/conf.h b/clientapp/android/app/src/main/cpp/include/openssl/conf.h new file mode 100644 index 00000000..38576290 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/conf.h @@ -0,0 +1,214 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/conf.h.in + * + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_CONF_H +# define OPENSSL_CONF_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_CONF_H +# endif + +# include +# include +# include +# include +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + char *section; + char *name; + char *value; +} CONF_VALUE; + +SKM_DEFINE_STACK_OF_INTERNAL(CONF_VALUE, CONF_VALUE, CONF_VALUE) +#define sk_CONF_VALUE_num(sk) OPENSSL_sk_num(ossl_check_const_CONF_VALUE_sk_type(sk)) +#define sk_CONF_VALUE_value(sk, idx) ((CONF_VALUE *)OPENSSL_sk_value(ossl_check_const_CONF_VALUE_sk_type(sk), (idx))) +#define sk_CONF_VALUE_new(cmp) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new(ossl_check_CONF_VALUE_compfunc_type(cmp))) +#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_null()) +#define sk_CONF_VALUE_new_reserve(cmp, n) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_new_reserve(ossl_check_CONF_VALUE_compfunc_type(cmp), (n))) +#define sk_CONF_VALUE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CONF_VALUE_sk_type(sk), (n)) +#define sk_CONF_VALUE_free(sk) OPENSSL_sk_free(ossl_check_CONF_VALUE_sk_type(sk)) +#define sk_CONF_VALUE_zero(sk) OPENSSL_sk_zero(ossl_check_CONF_VALUE_sk_type(sk)) +#define sk_CONF_VALUE_delete(sk, i) ((CONF_VALUE *)OPENSSL_sk_delete(ossl_check_CONF_VALUE_sk_type(sk), (i))) +#define sk_CONF_VALUE_delete_ptr(sk, ptr) ((CONF_VALUE *)OPENSSL_sk_delete_ptr(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr))) +#define sk_CONF_VALUE_push(sk, ptr) OPENSSL_sk_push(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) +#define sk_CONF_VALUE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) +#define sk_CONF_VALUE_pop(sk) ((CONF_VALUE *)OPENSSL_sk_pop(ossl_check_CONF_VALUE_sk_type(sk))) +#define sk_CONF_VALUE_shift(sk) ((CONF_VALUE *)OPENSSL_sk_shift(ossl_check_CONF_VALUE_sk_type(sk))) +#define sk_CONF_VALUE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CONF_VALUE_sk_type(sk),ossl_check_CONF_VALUE_freefunc_type(freefunc)) +#define sk_CONF_VALUE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), (idx)) +#define sk_CONF_VALUE_set(sk, idx, ptr) ((CONF_VALUE *)OPENSSL_sk_set(ossl_check_CONF_VALUE_sk_type(sk), (idx), ossl_check_CONF_VALUE_type(ptr))) +#define sk_CONF_VALUE_find(sk, ptr) OPENSSL_sk_find(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) +#define sk_CONF_VALUE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr)) +#define sk_CONF_VALUE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_type(ptr), pnum) +#define sk_CONF_VALUE_sort(sk) OPENSSL_sk_sort(ossl_check_CONF_VALUE_sk_type(sk)) +#define sk_CONF_VALUE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CONF_VALUE_sk_type(sk)) +#define sk_CONF_VALUE_dup(sk) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_dup(ossl_check_const_CONF_VALUE_sk_type(sk))) +#define sk_CONF_VALUE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CONF_VALUE) *)OPENSSL_sk_deep_copy(ossl_check_const_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_copyfunc_type(copyfunc), ossl_check_CONF_VALUE_freefunc_type(freefunc))) +#define sk_CONF_VALUE_set_cmp_func(sk, cmp) ((sk_CONF_VALUE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CONF_VALUE_sk_type(sk), ossl_check_CONF_VALUE_compfunc_type(cmp))) +DEFINE_LHASH_OF_INTERNAL(CONF_VALUE); +#define lh_CONF_VALUE_new(hfn, cmp) ((LHASH_OF(CONF_VALUE) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_CONF_VALUE_lh_hashfunc_type(hfn), ossl_check_CONF_VALUE_lh_compfunc_type(cmp)), lh_CONF_VALUE_hash_thunk, lh_CONF_VALUE_comp_thunk, lh_CONF_VALUE_doall_thunk, lh_CONF_VALUE_doall_arg_thunk)) +#define lh_CONF_VALUE_free(lh) OPENSSL_LH_free(ossl_check_CONF_VALUE_lh_type(lh)) +#define lh_CONF_VALUE_flush(lh) OPENSSL_LH_flush(ossl_check_CONF_VALUE_lh_type(lh)) +#define lh_CONF_VALUE_insert(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_insert(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_plain_type(ptr))) +#define lh_CONF_VALUE_delete(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_delete(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) +#define lh_CONF_VALUE_retrieve(lh, ptr) ((CONF_VALUE *)OPENSSL_LH_retrieve(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_const_CONF_VALUE_lh_plain_type(ptr))) +#define lh_CONF_VALUE_error(lh) OPENSSL_LH_error(ossl_check_CONF_VALUE_lh_type(lh)) +#define lh_CONF_VALUE_num_items(lh) OPENSSL_LH_num_items(ossl_check_CONF_VALUE_lh_type(lh)) +#define lh_CONF_VALUE_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) +#define lh_CONF_VALUE_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) +#define lh_CONF_VALUE_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_CONF_VALUE_lh_type(lh), out) +#define lh_CONF_VALUE_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_CONF_VALUE_lh_type(lh)) +#define lh_CONF_VALUE_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_CONF_VALUE_lh_type(lh), dl) +#define lh_CONF_VALUE_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_CONF_VALUE_lh_type(lh), ossl_check_CONF_VALUE_lh_doallfunc_type(dfn)) + + +struct conf_st; +struct conf_method_st; +typedef struct conf_method_st CONF_METHOD; + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# include +# endif + +/* Module definitions */ +typedef struct conf_imodule_st CONF_IMODULE; +typedef struct conf_module_st CONF_MODULE; + +STACK_OF(CONF_MODULE); +STACK_OF(CONF_IMODULE); + +/* DSO module function typedefs */ +typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); +typedef void conf_finish_func (CONF_IMODULE *md); + +# define CONF_MFLAGS_IGNORE_ERRORS 0x1 +# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 +# define CONF_MFLAGS_SILENT 0x4 +# define CONF_MFLAGS_NO_DSO 0x8 +# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 +# define CONF_MFLAGS_DEFAULT_SECTION 0x20 + +int CONF_set_default_method(CONF_METHOD *meth); +void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); +LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, + long *eline); +# ifndef OPENSSL_NO_STDIO +LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, + long *eline); +# endif +LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, + long *eline); +STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, + const char *section); +char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, + const char *name); +void CONF_free(LHASH_OF(CONF_VALUE) *conf); +#ifndef OPENSSL_NO_STDIO +int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); +#endif +int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 void OPENSSL_config(const char *config_name); +#endif + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define OPENSSL_no_config() \ + OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) +#endif + +/* + * New conf code. The semantics are different from the functions above. If + * that wasn't the case, the above functions would have been replaced + */ + +CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth); +OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf); +CONF *NCONF_new(CONF_METHOD *meth); +CONF_METHOD *NCONF_default(void); +#ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 CONF_METHOD *NCONF_WIN32(void); +#endif +void NCONF_free(CONF *conf); +void NCONF_free_data(CONF *conf); + +int NCONF_load(CONF *conf, const char *file, long *eline); +# ifndef OPENSSL_NO_STDIO +int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); +# endif +int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); +STACK_OF(OPENSSL_CSTRING) *NCONF_get_section_names(const CONF *conf); +STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, + const char *section); +char *NCONF_get_string(const CONF *conf, const char *group, const char *name); +int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, + long *result); +#ifndef OPENSSL_NO_STDIO +int NCONF_dump_fp(const CONF *conf, FILE *out); +#endif +int NCONF_dump_bio(const CONF *conf, BIO *out); + +#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) + +/* Module functions */ + +int CONF_modules_load(const CONF *cnf, const char *appname, + unsigned long flags); +int CONF_modules_load_file_ex(OSSL_LIB_CTX *libctx, const char *filename, + const char *appname, unsigned long flags); +int CONF_modules_load_file(const char *filename, const char *appname, + unsigned long flags); +void CONF_modules_unload(int all); +void CONF_modules_finish(void); +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define CONF_modules_free() while(0) continue +#endif +int CONF_module_add(const char *name, conf_init_func *ifunc, + conf_finish_func *ffunc); + +const char *CONF_imodule_get_name(const CONF_IMODULE *md); +const char *CONF_imodule_get_value(const CONF_IMODULE *md); +void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); +void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); +CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); +unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); +void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); +void *CONF_module_get_usr_data(CONF_MODULE *pmod); +void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); + +char *CONF_get1_default_config_file(void); + +int CONF_parse_list(const char *list, int sep, int nospc, + int (*list_cb) (const char *elem, int len, void *usr), + void *arg); + +void OPENSSL_load_builtin_modules(void); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/configuration.h b/clientapp/android/app/src/main/cpp/include/openssl/configuration.h new file mode 100644 index 00000000..804757df --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/configuration.h @@ -0,0 +1,164 @@ +/* + * WARNING: do not edit! + * Generated by configdata.pm from Configurations/common0.tmpl, Configurations/unix-Makefile.tmpl + * via Makefile.in + * + * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + +#ifndef OPENSSL_CONFIGURATION_H +# define OPENSSL_CONFIGURATION_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +# ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +# endif + +/* + * OpenSSL was configured with the following options: + */ + +# define OPENSSL_CONFIGURED_API 30300 +# ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +# endif +# ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +# endif +# ifndef OPENSSL_NO_ACVP_TESTS +# define OPENSSL_NO_ACVP_TESTS +# endif +# ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +# endif +# ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +# endif +# ifndef OPENSSL_NO_BROTLI +# define OPENSSL_NO_BROTLI +# endif +# ifndef OPENSSL_NO_BROTLI_DYNAMIC +# define OPENSSL_NO_BROTLI_DYNAMIC +# endif +# ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +# endif +# ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# endif +# ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +# endif +# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +# endif +# ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +# endif +# ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +# endif +# ifndef OPENSSL_NO_FIPS_SECURITYCHECKS +# define OPENSSL_NO_FIPS_SECURITYCHECKS +# endif +# ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +# endif +# ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +# endif +# ifndef OPENSSL_NO_KTLS +# define OPENSSL_NO_KTLS +# endif +# ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +# endif +# ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +# endif +# ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +# endif +# ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +# endif +# ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +# endif +# ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +# endif +# ifndef OPENSSL_NO_TFO +# define OPENSSL_NO_TFO +# endif +# ifndef OPENSSL_NO_TRACE +# define OPENSSL_NO_TRACE +# endif +# ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +# endif +# ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +# endif +# ifndef OPENSSL_NO_UPLINK +# define OPENSSL_NO_UPLINK +# endif +# ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +# endif +# ifndef OPENSSL_NO_WINSTORE +# define OPENSSL_NO_WINSTORE +# endif +# ifndef OPENSSL_NO_ZLIB +# define OPENSSL_NO_ZLIB +# endif +# ifndef OPENSSL_NO_ZLIB_DYNAMIC +# define OPENSSL_NO_ZLIB_DYNAMIC +# endif +# ifndef OPENSSL_NO_ZSTD +# define OPENSSL_NO_ZSTD +# endif +# ifndef OPENSSL_NO_ZSTD_DYNAMIC +# define OPENSSL_NO_ZSTD_DYNAMIC +# endif +# ifndef OPENSSL_NO_STATIC_ENGINE +# define OPENSSL_NO_STATIC_ENGINE +# endif + + +/* Generate 80386 code? */ +# undef I386_ONLY + +/* + * The following are cipher-specific, but are part of the public API. + */ +# if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +# endif + +# define RC4_INT unsigned int + +# if defined(OPENSSL_NO_COMP) || (defined(OPENSSL_NO_BROTLI) && defined(OPENSSL_NO_ZSTD) && defined(OPENSSL_NO_ZLIB)) +# define OPENSSL_NO_COMP_ALG +# else +# undef OPENSSL_NO_COMP_ALG +# endif + +# ifdef __cplusplus +} +# endif + +#endif /* OPENSSL_CONFIGURATION_H */ diff --git a/clientapp/android/app/src/main/cpp/include/openssl/core_names.h b/clientapp/android/app/src/main/cpp/include/openssl/core_names.h new file mode 100644 index 00000000..a6158056 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/core_names.h @@ -0,0 +1,476 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/core_names.h.in + * + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + +#ifndef OPENSSL_CORE_NAMES_H +# define OPENSSL_CORE_NAMES_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* OSSL_CIPHER_PARAM_CTS_MODE Values */ +# define OSSL_CIPHER_CTS_MODE_CS1 "CS1" +# define OSSL_CIPHER_CTS_MODE_CS2 "CS2" +# define OSSL_CIPHER_CTS_MODE_CS3 "CS3" + +/* Known CIPHER names (not a complete list) */ +# define OSSL_CIPHER_NAME_AES_128_GCM_SIV "AES-128-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_192_GCM_SIV "AES-192-GCM-SIV" +# define OSSL_CIPHER_NAME_AES_256_GCM_SIV "AES-256-GCM-SIV" + +/* Known DIGEST names (not a complete list) */ +# define OSSL_DIGEST_NAME_MD5 "MD5" +# define OSSL_DIGEST_NAME_MD5_SHA1 "MD5-SHA1" +# define OSSL_DIGEST_NAME_SHA1 "SHA1" +# define OSSL_DIGEST_NAME_SHA2_224 "SHA2-224" +# define OSSL_DIGEST_NAME_SHA2_256 "SHA2-256" +# define OSSL_DIGEST_NAME_SHA2_256_192 "SHA2-256/192" +# define OSSL_DIGEST_NAME_SHA2_384 "SHA2-384" +# define OSSL_DIGEST_NAME_SHA2_512 "SHA2-512" +# define OSSL_DIGEST_NAME_SHA2_512_224 "SHA2-512/224" +# define OSSL_DIGEST_NAME_SHA2_512_256 "SHA2-512/256" +# define OSSL_DIGEST_NAME_MD2 "MD2" +# define OSSL_DIGEST_NAME_MD4 "MD4" +# define OSSL_DIGEST_NAME_MDC2 "MDC2" +# define OSSL_DIGEST_NAME_RIPEMD160 "RIPEMD160" +# define OSSL_DIGEST_NAME_SHA3_224 "SHA3-224" +# define OSSL_DIGEST_NAME_SHA3_256 "SHA3-256" +# define OSSL_DIGEST_NAME_SHA3_384 "SHA3-384" +# define OSSL_DIGEST_NAME_SHA3_512 "SHA3-512" +# define OSSL_DIGEST_NAME_KECCAK_KMAC128 "KECCAK-KMAC-128" +# define OSSL_DIGEST_NAME_KECCAK_KMAC256 "KECCAK-KMAC-256" +# define OSSL_DIGEST_NAME_SM3 "SM3" + +/* Known MAC names */ +# define OSSL_MAC_NAME_BLAKE2BMAC "BLAKE2BMAC" +# define OSSL_MAC_NAME_BLAKE2SMAC "BLAKE2SMAC" +# define OSSL_MAC_NAME_CMAC "CMAC" +# define OSSL_MAC_NAME_GMAC "GMAC" +# define OSSL_MAC_NAME_HMAC "HMAC" +# define OSSL_MAC_NAME_KMAC128 "KMAC128" +# define OSSL_MAC_NAME_KMAC256 "KMAC256" +# define OSSL_MAC_NAME_POLY1305 "POLY1305" +# define OSSL_MAC_NAME_SIPHASH "SIPHASH" + +/* Known KDF names */ +# define OSSL_KDF_NAME_HKDF "HKDF" +# define OSSL_KDF_NAME_TLS1_3_KDF "TLS13-KDF" +# define OSSL_KDF_NAME_PBKDF1 "PBKDF1" +# define OSSL_KDF_NAME_PBKDF2 "PBKDF2" +# define OSSL_KDF_NAME_SCRYPT "SCRYPT" +# define OSSL_KDF_NAME_SSHKDF "SSHKDF" +# define OSSL_KDF_NAME_SSKDF "SSKDF" +# define OSSL_KDF_NAME_TLS1_PRF "TLS1-PRF" +# define OSSL_KDF_NAME_X942KDF_ASN1 "X942KDF-ASN1" +# define OSSL_KDF_NAME_X942KDF_CONCAT "X942KDF-CONCAT" +# define OSSL_KDF_NAME_X963KDF "X963KDF" +# define OSSL_KDF_NAME_KBKDF "KBKDF" +# define OSSL_KDF_NAME_KRB5KDF "KRB5KDF" +# define OSSL_KDF_NAME_HMACDRBGKDF "HMAC-DRBG-KDF" + +/* RSA padding modes */ +# define OSSL_PKEY_RSA_PAD_MODE_NONE "none" +# define OSSL_PKEY_RSA_PAD_MODE_PKCSV15 "pkcs1" +# define OSSL_PKEY_RSA_PAD_MODE_OAEP "oaep" +# define OSSL_PKEY_RSA_PAD_MODE_X931 "x931" +# define OSSL_PKEY_RSA_PAD_MODE_PSS "pss" + +/* RSA pss padding salt length */ +# define OSSL_PKEY_RSA_PSS_SALT_LEN_DIGEST "digest" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_MAX "max" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO "auto" +# define OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX "auto-digestmax" + +/* OSSL_PKEY_PARAM_EC_ENCODING values */ +# define OSSL_PKEY_EC_ENCODING_EXPLICIT "explicit" +# define OSSL_PKEY_EC_ENCODING_GROUP "named_curve" + +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_UNCOMPRESSED "uncompressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_COMPRESSED "compressed" +# define OSSL_PKEY_EC_POINT_CONVERSION_FORMAT_HYBRID "hybrid" + +# define OSSL_PKEY_EC_GROUP_CHECK_DEFAULT "default" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED "named" +# define OSSL_PKEY_EC_GROUP_CHECK_NAMED_NIST "named-nist" + +/* OSSL_KEM_PARAM_OPERATION values */ +#define OSSL_KEM_PARAM_OPERATION_RSASVE "RSASVE" +#define OSSL_KEM_PARAM_OPERATION_DHKEM "DHKEM" + +/* Parameter name definitions - generated by util/perl/OpenSSL/paramnames.pm */ +# define OSSL_ALG_PARAM_CIPHER "cipher" +# define OSSL_ALG_PARAM_DIGEST "digest" +# define OSSL_ALG_PARAM_ENGINE "engine" +# define OSSL_ALG_PARAM_MAC "mac" +# define OSSL_ALG_PARAM_PROPERTIES "properties" +# define OSSL_ASYM_CIPHER_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_ENGINE OSSL_PKEY_PARAM_ENGINE +# define OSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_MGF1_DIGEST_PROPS OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_ASYM_CIPHER_PARAM_OAEP_DIGEST_PROPS "digest-props" +# define OSSL_ASYM_CIPHER_PARAM_OAEP_LABEL "oaep-label" +# define OSSL_ASYM_CIPHER_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_ASYM_CIPHER_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_ASYM_CIPHER_PARAM_TLS_CLIENT_VERSION "tls-client-version" +# define OSSL_ASYM_CIPHER_PARAM_TLS_NEGOTIATED_VERSION "tls-negotiated-version" +# define OSSL_CAPABILITY_TLS_GROUP_ALG "tls-group-alg" +# define OSSL_CAPABILITY_TLS_GROUP_ID "tls-group-id" +# define OSSL_CAPABILITY_TLS_GROUP_IS_KEM "tls-group-is-kem" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_DTLS "tls-max-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_DTLS "tls-min-dtls" +# define OSSL_CAPABILITY_TLS_GROUP_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_GROUP_NAME "tls-group-name" +# define OSSL_CAPABILITY_TLS_GROUP_NAME_INTERNAL "tls-group-name-internal" +# define OSSL_CAPABILITY_TLS_GROUP_SECURITY_BITS "tls-group-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_CODE_POINT "tls-sigalg-code-point" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_NAME "tls-sigalg-hash-name" +# define OSSL_CAPABILITY_TLS_SIGALG_HASH_OID "tls-sigalg-hash-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_IANA_NAME "tls-sigalg-iana-name" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE "tls-sigalg-keytype" +# define OSSL_CAPABILITY_TLS_SIGALG_KEYTYPE_OID "tls-sigalg-keytype-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_MAX_TLS "tls-max-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_MIN_TLS "tls-min-tls" +# define OSSL_CAPABILITY_TLS_SIGALG_NAME "tls-sigalg-name" +# define OSSL_CAPABILITY_TLS_SIGALG_OID "tls-sigalg-oid" +# define OSSL_CAPABILITY_TLS_SIGALG_SECURITY_BITS "tls-sigalg-sec-bits" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_NAME "tls-sigalg-sig-name" +# define OSSL_CAPABILITY_TLS_SIGALG_SIG_OID "tls-sigalg-sig-oid" +# define OSSL_CIPHER_PARAM_AEAD "aead" +# define OSSL_CIPHER_PARAM_AEAD_IVLEN OSSL_CIPHER_PARAM_IVLEN +# define OSSL_CIPHER_PARAM_AEAD_MAC_KEY "mackey" +# define OSSL_CIPHER_PARAM_AEAD_TAG "tag" +# define OSSL_CIPHER_PARAM_AEAD_TAGLEN "taglen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD "tlsaad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_AAD_PAD "tlsaadpad" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_GET_IV_GEN "tlsivgen" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_IV_FIXED "tlsivfixed" +# define OSSL_CIPHER_PARAM_AEAD_TLS1_SET_IV_INV "tlsivinv" +# define OSSL_CIPHER_PARAM_ALGORITHM_ID_PARAMS "alg_id_param" +# define OSSL_CIPHER_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_CIPHER_PARAM_CTS "cts" +# define OSSL_CIPHER_PARAM_CTS_MODE "cts_mode" +# define OSSL_CIPHER_PARAM_CUSTOM_IV "custom-iv" +# define OSSL_CIPHER_PARAM_HAS_RAND_KEY "has-randkey" +# define OSSL_CIPHER_PARAM_IV "iv" +# define OSSL_CIPHER_PARAM_IVLEN "ivlen" +# define OSSL_CIPHER_PARAM_KEYLEN "keylen" +# define OSSL_CIPHER_PARAM_MODE "mode" +# define OSSL_CIPHER_PARAM_NUM "num" +# define OSSL_CIPHER_PARAM_PADDING "padding" +# define OSSL_CIPHER_PARAM_RANDOM_KEY "randkey" +# define OSSL_CIPHER_PARAM_RC2_KEYBITS "keybits" +# define OSSL_CIPHER_PARAM_ROUNDS "rounds" +# define OSSL_CIPHER_PARAM_SPEED "speed" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK "tls-multi" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD "tls1multi_aad" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_AAD_PACKLEN "tls1multi_aadpacklen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC "tls1multi_enc" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_IN "tls1multi_encin" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_ENC_LEN "tls1multi_enclen" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_INTERLEAVE "tls1multi_interleave" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_BUFSIZE "tls1multi_maxbufsz" +# define OSSL_CIPHER_PARAM_TLS1_MULTIBLOCK_MAX_SEND_FRAGMENT "tls1multi_maxsndfrag" +# define OSSL_CIPHER_PARAM_TLS_MAC "tls-mac" +# define OSSL_CIPHER_PARAM_TLS_MAC_SIZE "tls-mac-size" +# define OSSL_CIPHER_PARAM_TLS_VERSION "tls-version" +# define OSSL_CIPHER_PARAM_UPDATED_IV "updated-iv" +# define OSSL_CIPHER_PARAM_USE_BITS "use-bits" +# define OSSL_CIPHER_PARAM_XTS_STANDARD "xts_standard" +# define OSSL_DECODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DIGEST_PARAM_ALGID_ABSENT "algid-absent" +# define OSSL_DIGEST_PARAM_BLOCK_SIZE "blocksize" +# define OSSL_DIGEST_PARAM_MICALG "micalg" +# define OSSL_DIGEST_PARAM_PAD_TYPE "pad-type" +# define OSSL_DIGEST_PARAM_SIZE "size" +# define OSSL_DIGEST_PARAM_SSL3_MS "ssl3-ms" +# define OSSL_DIGEST_PARAM_XOF "xof" +# define OSSL_DIGEST_PARAM_XOFLEN "xoflen" +# define OSSL_DRBG_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_DRBG_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_DRBG_PARAM_ENTROPY_REQUIRED "entropy_required" +# define OSSL_DRBG_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_DRBG_PARAM_MAX_ADINLEN "max_adinlen" +# define OSSL_DRBG_PARAM_MAX_ENTROPYLEN "max_entropylen" +# define OSSL_DRBG_PARAM_MAX_LENGTH "maxium_length" +# define OSSL_DRBG_PARAM_MAX_NONCELEN "max_noncelen" +# define OSSL_DRBG_PARAM_MAX_PERSLEN "max_perslen" +# define OSSL_DRBG_PARAM_MIN_ENTROPYLEN "min_entropylen" +# define OSSL_DRBG_PARAM_MIN_LENGTH "minium_length" +# define OSSL_DRBG_PARAM_MIN_NONCELEN "min_noncelen" +# define OSSL_DRBG_PARAM_PREDICTION_RESISTANCE "prediction_resistance" +# define OSSL_DRBG_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_DRBG_PARAM_RANDOM_DATA "random_data" +# define OSSL_DRBG_PARAM_RESEED_COUNTER "reseed_counter" +# define OSSL_DRBG_PARAM_RESEED_REQUESTS "reseed_requests" +# define OSSL_DRBG_PARAM_RESEED_TIME "reseed_time" +# define OSSL_DRBG_PARAM_RESEED_TIME_INTERVAL "reseed_time_interval" +# define OSSL_DRBG_PARAM_SIZE "size" +# define OSSL_DRBG_PARAM_USE_DF "use_derivation_function" +# define OSSL_ENCODER_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_ENCODER_PARAM_ENCRYPT_LEVEL "encrypt-level" +# define OSSL_ENCODER_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_ENCODER_PARAM_SAVE_PARAMETERS "save-parameters" +# define OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE "ecdh-cofactor-mode" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST "kdf-digest" +# define OSSL_EXCHANGE_PARAM_KDF_DIGEST_PROPS "kdf-digest-props" +# define OSSL_EXCHANGE_PARAM_KDF_OUTLEN "kdf-outlen" +# define OSSL_EXCHANGE_PARAM_KDF_TYPE "kdf-type" +# define OSSL_EXCHANGE_PARAM_KDF_UKM "kdf-ukm" +# define OSSL_EXCHANGE_PARAM_PAD "pad" +# define OSSL_GEN_PARAM_ITERATION "iteration" +# define OSSL_GEN_PARAM_POTENTIAL "potential" +# define OSSL_KDF_PARAM_ARGON2_AD "ad" +# define OSSL_KDF_PARAM_ARGON2_LANES "lanes" +# define OSSL_KDF_PARAM_ARGON2_MEMCOST "memcost" +# define OSSL_KDF_PARAM_ARGON2_VERSION "version" +# define OSSL_KDF_PARAM_CEK_ALG "cekalg" +# define OSSL_KDF_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_KDF_PARAM_CONSTANT "constant" +# define OSSL_KDF_PARAM_DATA "data" +# define OSSL_KDF_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_KDF_PARAM_EARLY_CLEAN "early_clean" +# define OSSL_KDF_PARAM_HMACDRBG_ENTROPY "entropy" +# define OSSL_KDF_PARAM_HMACDRBG_NONCE "nonce" +# define OSSL_KDF_PARAM_INFO "info" +# define OSSL_KDF_PARAM_ITER "iter" +# define OSSL_KDF_PARAM_KBKDF_R "r" +# define OSSL_KDF_PARAM_KBKDF_USE_L "use-l" +# define OSSL_KDF_PARAM_KBKDF_USE_SEPARATOR "use-separator" +# define OSSL_KDF_PARAM_KEY "key" +# define OSSL_KDF_PARAM_LABEL "label" +# define OSSL_KDF_PARAM_MAC OSSL_ALG_PARAM_MAC +# define OSSL_KDF_PARAM_MAC_SIZE "maclen" +# define OSSL_KDF_PARAM_MODE "mode" +# define OSSL_KDF_PARAM_PASSWORD "pass" +# define OSSL_KDF_PARAM_PKCS12_ID "id" +# define OSSL_KDF_PARAM_PKCS5 "pkcs5" +# define OSSL_KDF_PARAM_PREFIX "prefix" +# define OSSL_KDF_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_KDF_PARAM_SALT "salt" +# define OSSL_KDF_PARAM_SCRYPT_MAXMEM "maxmem_bytes" +# define OSSL_KDF_PARAM_SCRYPT_N "n" +# define OSSL_KDF_PARAM_SCRYPT_P "p" +# define OSSL_KDF_PARAM_SCRYPT_R "r" +# define OSSL_KDF_PARAM_SECRET "secret" +# define OSSL_KDF_PARAM_SEED "seed" +# define OSSL_KDF_PARAM_SIZE "size" +# define OSSL_KDF_PARAM_SSHKDF_SESSION_ID "session_id" +# define OSSL_KDF_PARAM_SSHKDF_TYPE "type" +# define OSSL_KDF_PARAM_SSHKDF_XCGHASH "xcghash" +# define OSSL_KDF_PARAM_THREADS "threads" +# define OSSL_KDF_PARAM_UKM "ukm" +# define OSSL_KDF_PARAM_X942_ACVPINFO "acvp-info" +# define OSSL_KDF_PARAM_X942_PARTYUINFO "partyu-info" +# define OSSL_KDF_PARAM_X942_PARTYVINFO "partyv-info" +# define OSSL_KDF_PARAM_X942_SUPP_PRIVINFO "supp-privinfo" +# define OSSL_KDF_PARAM_X942_SUPP_PUBINFO "supp-pubinfo" +# define OSSL_KDF_PARAM_X942_USE_KEYBITS "use-keybits" +# define OSSL_KEM_PARAM_IKME "ikme" +# define OSSL_KEM_PARAM_OPERATION "operation" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_BLOCK_PADDING "block_padding" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_EARLY_DATA "max_early_data" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MAX_FRAG_LEN "max_frag_len" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_MODE "mode" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_OPTIONS "options" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_READ_AHEAD "read_ahead" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_STREAM_MAC "stream_mac" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_TLSTREE "tlstree" +# define OSSL_LIBSSL_RECORD_LAYER_PARAM_USE_ETM "use_etm" +# define OSSL_LIBSSL_RECORD_LAYER_READ_BUFFER_LEN "read_buffer_len" +# define OSSL_MAC_PARAM_BLOCK_SIZE "block-size" +# define OSSL_MAC_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_MAC_PARAM_CUSTOM "custom" +# define OSSL_MAC_PARAM_C_ROUNDS "c-rounds" +# define OSSL_MAC_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_MAC_PARAM_DIGEST_NOINIT "digest-noinit" +# define OSSL_MAC_PARAM_DIGEST_ONESHOT "digest-oneshot" +# define OSSL_MAC_PARAM_D_ROUNDS "d-rounds" +# define OSSL_MAC_PARAM_IV "iv" +# define OSSL_MAC_PARAM_KEY "key" +# define OSSL_MAC_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_MAC_PARAM_SALT "salt" +# define OSSL_MAC_PARAM_SIZE "size" +# define OSSL_MAC_PARAM_TLS_DATA_SIZE "tls-data-size" +# define OSSL_MAC_PARAM_XOF "xof" +# define OSSL_OBJECT_PARAM_DATA "data" +# define OSSL_OBJECT_PARAM_DATA_STRUCTURE "data-structure" +# define OSSL_OBJECT_PARAM_DATA_TYPE "data-type" +# define OSSL_OBJECT_PARAM_DESC "desc" +# define OSSL_OBJECT_PARAM_REFERENCE "reference" +# define OSSL_OBJECT_PARAM_TYPE "type" +# define OSSL_PASSPHRASE_PARAM_INFO "info" +# define OSSL_PKEY_PARAM_BITS "bits" +# define OSSL_PKEY_PARAM_CIPHER OSSL_ALG_PARAM_CIPHER +# define OSSL_PKEY_PARAM_DEFAULT_DIGEST "default-digest" +# define OSSL_PKEY_PARAM_DHKEM_IKM "dhkem-ikm" +# define OSSL_PKEY_PARAM_DH_GENERATOR "safeprime-generator" +# define OSSL_PKEY_PARAM_DH_PRIV_LEN "priv_len" +# define OSSL_PKEY_PARAM_DIGEST OSSL_ALG_PARAM_DIGEST +# define OSSL_PKEY_PARAM_DIGEST_SIZE "digest-size" +# define OSSL_PKEY_PARAM_DIST_ID "distid" +# define OSSL_PKEY_PARAM_EC_A "a" +# define OSSL_PKEY_PARAM_EC_B "b" +# define OSSL_PKEY_PARAM_EC_CHAR2_M "m" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K1 "k1" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K2 "k2" +# define OSSL_PKEY_PARAM_EC_CHAR2_PP_K3 "k3" +# define OSSL_PKEY_PARAM_EC_CHAR2_TP_BASIS "tp" +# define OSSL_PKEY_PARAM_EC_CHAR2_TYPE "basis-type" +# define OSSL_PKEY_PARAM_EC_COFACTOR "cofactor" +# define OSSL_PKEY_PARAM_EC_DECODED_FROM_EXPLICIT_PARAMS "decoded-from-explicit" +# define OSSL_PKEY_PARAM_EC_ENCODING "encoding" +# define OSSL_PKEY_PARAM_EC_FIELD_TYPE "field-type" +# define OSSL_PKEY_PARAM_EC_GENERATOR "generator" +# define OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE "group-check" +# define OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC "include-public" +# define OSSL_PKEY_PARAM_EC_ORDER "order" +# define OSSL_PKEY_PARAM_EC_P "p" +# define OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT "point-format" +# define OSSL_PKEY_PARAM_EC_PUB_X "qx" +# define OSSL_PKEY_PARAM_EC_PUB_Y "qy" +# define OSSL_PKEY_PARAM_EC_SEED "seed" +# define OSSL_PKEY_PARAM_ENCODED_PUBLIC_KEY "encoded-pub-key" +# define OSSL_PKEY_PARAM_ENGINE OSSL_ALG_PARAM_ENGINE +# define OSSL_PKEY_PARAM_FFC_COFACTOR "j" +# define OSSL_PKEY_PARAM_FFC_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_FFC_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_FFC_G "g" +# define OSSL_PKEY_PARAM_FFC_GINDEX "gindex" +# define OSSL_PKEY_PARAM_FFC_H "hindex" +# define OSSL_PKEY_PARAM_FFC_P "p" +# define OSSL_PKEY_PARAM_FFC_PBITS "pbits" +# define OSSL_PKEY_PARAM_FFC_PCOUNTER "pcounter" +# define OSSL_PKEY_PARAM_FFC_Q "q" +# define OSSL_PKEY_PARAM_FFC_QBITS "qbits" +# define OSSL_PKEY_PARAM_FFC_SEED "seed" +# define OSSL_PKEY_PARAM_FFC_TYPE "type" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_G "validate-g" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_LEGACY "validate-legacy" +# define OSSL_PKEY_PARAM_FFC_VALIDATE_PQ "validate-pq" +# define OSSL_PKEY_PARAM_GROUP_NAME "group" +# define OSSL_PKEY_PARAM_IMPLICIT_REJECTION "implicit-rejection" +# define OSSL_PKEY_PARAM_MANDATORY_DIGEST "mandatory-digest" +# define OSSL_PKEY_PARAM_MASKGENFUNC "mgf" +# define OSSL_PKEY_PARAM_MAX_SIZE "max-size" +# define OSSL_PKEY_PARAM_MGF1_DIGEST "mgf1-digest" +# define OSSL_PKEY_PARAM_MGF1_PROPERTIES "mgf1-properties" +# define OSSL_PKEY_PARAM_PAD_MODE "pad-mode" +# define OSSL_PKEY_PARAM_PRIV_KEY "priv" +# define OSSL_PKEY_PARAM_PROPERTIES OSSL_ALG_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_PUB_KEY "pub" +# define OSSL_PKEY_PARAM_RSA_BITS OSSL_PKEY_PARAM_BITS +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT "rsa-coefficient" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT1 "rsa-coefficient1" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT2 "rsa-coefficient2" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT3 "rsa-coefficient3" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT4 "rsa-coefficient4" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT5 "rsa-coefficient5" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT6 "rsa-coefficient6" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT7 "rsa-coefficient7" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT8 "rsa-coefficient8" +# define OSSL_PKEY_PARAM_RSA_COEFFICIENT9 "rsa-coefficient9" +# define OSSL_PKEY_PARAM_RSA_D "d" +# define OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ "rsa-derive-from-pq" +# define OSSL_PKEY_PARAM_RSA_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_PKEY_PARAM_RSA_DIGEST_PROPS OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_PKEY_PARAM_RSA_E "e" +# define OSSL_PKEY_PARAM_RSA_EXPONENT "rsa-exponent" +# define OSSL_PKEY_PARAM_RSA_EXPONENT1 "rsa-exponent1" +# define OSSL_PKEY_PARAM_RSA_EXPONENT10 "rsa-exponent10" +# define OSSL_PKEY_PARAM_RSA_EXPONENT2 "rsa-exponent2" +# define OSSL_PKEY_PARAM_RSA_EXPONENT3 "rsa-exponent3" +# define OSSL_PKEY_PARAM_RSA_EXPONENT4 "rsa-exponent4" +# define OSSL_PKEY_PARAM_RSA_EXPONENT5 "rsa-exponent5" +# define OSSL_PKEY_PARAM_RSA_EXPONENT6 "rsa-exponent6" +# define OSSL_PKEY_PARAM_RSA_EXPONENT7 "rsa-exponent7" +# define OSSL_PKEY_PARAM_RSA_EXPONENT8 "rsa-exponent8" +# define OSSL_PKEY_PARAM_RSA_EXPONENT9 "rsa-exponent9" +# define OSSL_PKEY_PARAM_RSA_FACTOR "rsa-factor" +# define OSSL_PKEY_PARAM_RSA_FACTOR1 "rsa-factor1" +# define OSSL_PKEY_PARAM_RSA_FACTOR10 "rsa-factor10" +# define OSSL_PKEY_PARAM_RSA_FACTOR2 "rsa-factor2" +# define OSSL_PKEY_PARAM_RSA_FACTOR3 "rsa-factor3" +# define OSSL_PKEY_PARAM_RSA_FACTOR4 "rsa-factor4" +# define OSSL_PKEY_PARAM_RSA_FACTOR5 "rsa-factor5" +# define OSSL_PKEY_PARAM_RSA_FACTOR6 "rsa-factor6" +# define OSSL_PKEY_PARAM_RSA_FACTOR7 "rsa-factor7" +# define OSSL_PKEY_PARAM_RSA_FACTOR8 "rsa-factor8" +# define OSSL_PKEY_PARAM_RSA_FACTOR9 "rsa-factor9" +# define OSSL_PKEY_PARAM_RSA_MASKGENFUNC OSSL_PKEY_PARAM_MASKGENFUNC +# define OSSL_PKEY_PARAM_RSA_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_PKEY_PARAM_RSA_N "n" +# define OSSL_PKEY_PARAM_RSA_PRIMES "primes" +# define OSSL_PKEY_PARAM_RSA_PSS_SALTLEN "saltlen" +# define OSSL_PKEY_PARAM_RSA_TEST_P1 "p1" +# define OSSL_PKEY_PARAM_RSA_TEST_P2 "p2" +# define OSSL_PKEY_PARAM_RSA_TEST_Q1 "q1" +# define OSSL_PKEY_PARAM_RSA_TEST_Q2 "q2" +# define OSSL_PKEY_PARAM_RSA_TEST_XP "xp" +# define OSSL_PKEY_PARAM_RSA_TEST_XP1 "xp1" +# define OSSL_PKEY_PARAM_RSA_TEST_XP2 "xp2" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ "xq" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ1 "xq1" +# define OSSL_PKEY_PARAM_RSA_TEST_XQ2 "xq2" +# define OSSL_PKEY_PARAM_SECURITY_BITS "security-bits" +# define OSSL_PKEY_PARAM_USE_COFACTOR_ECDH OSSL_PKEY_PARAM_USE_COFACTOR_FLAG +# define OSSL_PKEY_PARAM_USE_COFACTOR_FLAG "use-cofactor-flag" +# define OSSL_PROV_PARAM_BUILDINFO "buildinfo" +# define OSSL_PROV_PARAM_CORE_MODULE_FILENAME "module-filename" +# define OSSL_PROV_PARAM_CORE_PROV_NAME "provider-name" +# define OSSL_PROV_PARAM_CORE_VERSION "openssl-version" +# define OSSL_PROV_PARAM_DRBG_TRUNC_DIGEST "drbg-no-trunc-md" +# define OSSL_PROV_PARAM_NAME "name" +# define OSSL_PROV_PARAM_SECURITY_CHECKS "security-checks" +# define OSSL_PROV_PARAM_SELF_TEST_DESC "st-desc" +# define OSSL_PROV_PARAM_SELF_TEST_PHASE "st-phase" +# define OSSL_PROV_PARAM_SELF_TEST_TYPE "st-type" +# define OSSL_PROV_PARAM_STATUS "status" +# define OSSL_PROV_PARAM_TLS1_PRF_EMS_CHECK "tls1-prf-ems-check" +# define OSSL_PROV_PARAM_VERSION "version" +# define OSSL_RAND_PARAM_GENERATE "generate" +# define OSSL_RAND_PARAM_MAX_REQUEST "max_request" +# define OSSL_RAND_PARAM_STATE "state" +# define OSSL_RAND_PARAM_STRENGTH "strength" +# define OSSL_RAND_PARAM_TEST_ENTROPY "test_entropy" +# define OSSL_RAND_PARAM_TEST_NONCE "test_nonce" +# define OSSL_SIGNATURE_PARAM_ALGORITHM_ID "algorithm-id" +# define OSSL_SIGNATURE_PARAM_CONTEXT_STRING "context-string" +# define OSSL_SIGNATURE_PARAM_DIGEST OSSL_PKEY_PARAM_DIGEST +# define OSSL_SIGNATURE_PARAM_DIGEST_SIZE OSSL_PKEY_PARAM_DIGEST_SIZE +# define OSSL_SIGNATURE_PARAM_INSTANCE "instance" +# define OSSL_SIGNATURE_PARAM_KAT "kat" +# define OSSL_SIGNATURE_PARAM_MGF1_DIGEST OSSL_PKEY_PARAM_MGF1_DIGEST +# define OSSL_SIGNATURE_PARAM_MGF1_PROPERTIES OSSL_PKEY_PARAM_MGF1_PROPERTIES +# define OSSL_SIGNATURE_PARAM_NONCE_TYPE "nonce-type" +# define OSSL_SIGNATURE_PARAM_PAD_MODE OSSL_PKEY_PARAM_PAD_MODE +# define OSSL_SIGNATURE_PARAM_PROPERTIES OSSL_PKEY_PARAM_PROPERTIES +# define OSSL_SIGNATURE_PARAM_PSS_SALTLEN "saltlen" +# define OSSL_STORE_PARAM_ALIAS "alias" +# define OSSL_STORE_PARAM_DIGEST "digest" +# define OSSL_STORE_PARAM_EXPECT "expect" +# define OSSL_STORE_PARAM_FINGERPRINT "fingerprint" +# define OSSL_STORE_PARAM_INPUT_TYPE "input-type" +# define OSSL_STORE_PARAM_ISSUER "name" +# define OSSL_STORE_PARAM_PROPERTIES "properties" +# define OSSL_STORE_PARAM_SERIAL "serial" +# define OSSL_STORE_PARAM_SUBJECT "subject" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/crmf.h b/clientapp/android/app/src/main/cpp/include/openssl/crmf.h new file mode 100644 index 00000000..1f901f35 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/crmf.h @@ -0,0 +1,229 @@ +/*- + * WARNING: do not edit! + * Generated by Makefile from include/openssl/crmf.h.in + * + * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright Nokia 2007-2019 + * Copyright Siemens AG 2015-2019 + * + * Licensed under the Apache License 2.0 (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 + * + * CRMF (RFC 4211) implementation by M. Peylo, M. Viljanen, and D. von Oheimb. + */ + + + +#ifndef OPENSSL_CRMF_H +# define OPENSSL_CRMF_H + +# include + +# ifndef OPENSSL_NO_CRMF +# include +# include +# include +# include /* for GENERAL_NAME etc. */ + +/* explicit #includes not strictly needed since implied by the above: */ +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# define OSSL_CRMF_POPOPRIVKEY_THISMESSAGE 0 +# define OSSL_CRMF_POPOPRIVKEY_SUBSEQUENTMESSAGE 1 +# define OSSL_CRMF_POPOPRIVKEY_DHMAC 2 +# define OSSL_CRMF_POPOPRIVKEY_AGREEMAC 3 +# define OSSL_CRMF_POPOPRIVKEY_ENCRYPTEDKEY 4 + +# define OSSL_CRMF_SUBSEQUENTMESSAGE_ENCRCERT 0 +# define OSSL_CRMF_SUBSEQUENTMESSAGE_CHALLENGERESP 1 +typedef struct ossl_crmf_encryptedvalue_st OSSL_CRMF_ENCRYPTEDVALUE; + +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_ENCRYPTEDVALUE) +typedef struct ossl_crmf_msg_st OSSL_CRMF_MSG; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSG) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_MSG) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_MSG, OSSL_CRMF_MSG, OSSL_CRMF_MSG) +#define sk_OSSL_CRMF_MSG_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) +#define sk_OSSL_CRMF_MSG_value(sk, idx) ((OSSL_CRMF_MSG *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_MSG_new(cmp) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) +#define sk_OSSL_CRMF_MSG_new_null() ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_MSG_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_MSG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (n)) +#define sk_OSSL_CRMF_MSG_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) +#define sk_OSSL_CRMF_MSG_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) +#define sk_OSSL_CRMF_MSG_delete(sk, i) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (i))) +#define sk_OSSL_CRMF_MSG_delete_ptr(sk, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr))) +#define sk_OSSL_CRMF_MSG_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) +#define sk_OSSL_CRMF_MSG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) +#define sk_OSSL_CRMF_MSG_pop(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) +#define sk_OSSL_CRMF_MSG_shift(sk) ((OSSL_CRMF_MSG *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_MSG_sk_type(sk))) +#define sk_OSSL_CRMF_MSG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_MSG_sk_type(sk),ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_MSG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), (idx)) +#define sk_OSSL_CRMF_MSG_set(sk, idx, ptr) ((OSSL_CRMF_MSG *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_MSG_sk_type(sk), (idx), ossl_check_OSSL_CRMF_MSG_type(ptr))) +#define sk_OSSL_CRMF_MSG_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) +#define sk_OSSL_CRMF_MSG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr)) +#define sk_OSSL_CRMF_MSG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_type(ptr), pnum) +#define sk_OSSL_CRMF_MSG_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_MSG_sk_type(sk)) +#define sk_OSSL_CRMF_MSG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk)) +#define sk_OSSL_CRMF_MSG_dup(sk) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk))) +#define sk_OSSL_CRMF_MSG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_MSG) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_MSG_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_MSG_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_MSG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_MSG_sk_type(sk), ossl_check_OSSL_CRMF_MSG_compfunc_type(cmp))) + +typedef struct ossl_crmf_attributetypeandvalue_st OSSL_CRMF_ATTRIBUTETYPEANDVALUE; +typedef struct ossl_crmf_pbmparameter_st OSSL_CRMF_PBMPARAMETER; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PBMPARAMETER) +typedef struct ossl_crmf_poposigningkey_st OSSL_CRMF_POPOSIGNINGKEY; +typedef struct ossl_crmf_certrequest_st OSSL_CRMF_CERTREQUEST; +typedef struct ossl_crmf_certid_st OSSL_CRMF_CERTID; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTID) +DECLARE_ASN1_DUP_FUNCTION(OSSL_CRMF_CERTID) +SKM_DEFINE_STACK_OF_INTERNAL(OSSL_CRMF_CERTID, OSSL_CRMF_CERTID, OSSL_CRMF_CERTID) +#define sk_OSSL_CRMF_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) +#define sk_OSSL_CRMF_CERTID_value(sk, idx) ((OSSL_CRMF_CERTID *)OPENSSL_sk_value(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), (idx))) +#define sk_OSSL_CRMF_CERTID_new(cmp) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) +#define sk_OSSL_CRMF_CERTID_new_null() ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_null()) +#define sk_OSSL_CRMF_CERTID_new_reserve(cmp, n) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp), (n))) +#define sk_OSSL_CRMF_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (n)) +#define sk_OSSL_CRMF_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) +#define sk_OSSL_CRMF_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) +#define sk_OSSL_CRMF_CERTID_delete(sk, i) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (i))) +#define sk_OSSL_CRMF_CERTID_delete_ptr(sk, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr))) +#define sk_OSSL_CRMF_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) +#define sk_OSSL_CRMF_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) +#define sk_OSSL_CRMF_CERTID_pop(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_pop(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) +#define sk_OSSL_CRMF_CERTID_shift(sk) ((OSSL_CRMF_CERTID *)OPENSSL_sk_shift(ossl_check_OSSL_CRMF_CERTID_sk_type(sk))) +#define sk_OSSL_CRMF_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_CRMF_CERTID_sk_type(sk),ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc)) +#define sk_OSSL_CRMF_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), (idx)) +#define sk_OSSL_CRMF_CERTID_set(sk, idx, ptr) ((OSSL_CRMF_CERTID *)OPENSSL_sk_set(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), (idx), ossl_check_OSSL_CRMF_CERTID_type(ptr))) +#define sk_OSSL_CRMF_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) +#define sk_OSSL_CRMF_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr)) +#define sk_OSSL_CRMF_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_type(ptr), pnum) +#define sk_OSSL_CRMF_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_CRMF_CERTID_sk_type(sk)) +#define sk_OSSL_CRMF_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk)) +#define sk_OSSL_CRMF_CERTID_dup(sk) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk))) +#define sk_OSSL_CRMF_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_CRMF_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_copyfunc_type(copyfunc), ossl_check_OSSL_CRMF_CERTID_freefunc_type(freefunc))) +#define sk_OSSL_CRMF_CERTID_set_cmp_func(sk, cmp) ((sk_OSSL_CRMF_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_CRMF_CERTID_sk_type(sk), ossl_check_OSSL_CRMF_CERTID_compfunc_type(cmp))) + + +typedef struct ossl_crmf_pkipublicationinfo_st OSSL_CRMF_PKIPUBLICATIONINFO; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_PKIPUBLICATIONINFO) +typedef struct ossl_crmf_singlepubinfo_st OSSL_CRMF_SINGLEPUBINFO; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_SINGLEPUBINFO) +typedef struct ossl_crmf_certtemplate_st OSSL_CRMF_CERTTEMPLATE; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_CERTTEMPLATE) +typedef STACK_OF(OSSL_CRMF_MSG) OSSL_CRMF_MSGS; +DECLARE_ASN1_FUNCTIONS(OSSL_CRMF_MSGS) + +typedef struct ossl_crmf_optionalvalidity_st OSSL_CRMF_OPTIONALVALIDITY; + +/* crmf_pbm.c */ +OSSL_CRMF_PBMPARAMETER *OSSL_CRMF_pbmp_new(OSSL_LIB_CTX *libctx, size_t slen, + int owfnid, size_t itercnt, + int macnid); +int OSSL_CRMF_pbm_new(OSSL_LIB_CTX *libctx, const char *propq, + const OSSL_CRMF_PBMPARAMETER *pbmp, + const unsigned char *msg, size_t msglen, + const unsigned char *sec, size_t seclen, + unsigned char **mac, size_t *maclen); + +/* crmf_lib.c */ +int OSSL_CRMF_MSG_set1_regCtrl_regToken(OSSL_CRMF_MSG *msg, + const ASN1_UTF8STRING *tok); +ASN1_UTF8STRING +*OSSL_CRMF_MSG_get0_regCtrl_regToken(const OSSL_CRMF_MSG *msg); +int OSSL_CRMF_MSG_set1_regCtrl_authenticator(OSSL_CRMF_MSG *msg, + const ASN1_UTF8STRING *auth); +ASN1_UTF8STRING +*OSSL_CRMF_MSG_get0_regCtrl_authenticator(const OSSL_CRMF_MSG *msg); +int +OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo(OSSL_CRMF_PKIPUBLICATIONINFO *pi, + OSSL_CRMF_SINGLEPUBINFO *spi); +# define OSSL_CRMF_PUB_METHOD_DONTCARE 0 +# define OSSL_CRMF_PUB_METHOD_X500 1 +# define OSSL_CRMF_PUB_METHOD_WEB 2 +# define OSSL_CRMF_PUB_METHOD_LDAP 3 +int OSSL_CRMF_MSG_set0_SinglePubInfo(OSSL_CRMF_SINGLEPUBINFO *spi, + int method, GENERAL_NAME *nm); +# define OSSL_CRMF_PUB_ACTION_DONTPUBLISH 0 +# define OSSL_CRMF_PUB_ACTION_PLEASEPUBLISH 1 +int OSSL_CRMF_MSG_set_PKIPublicationInfo_action(OSSL_CRMF_PKIPUBLICATIONINFO *pi, + int action); +int OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo(OSSL_CRMF_MSG *msg, + const OSSL_CRMF_PKIPUBLICATIONINFO *pi); +OSSL_CRMF_PKIPUBLICATIONINFO +*OSSL_CRMF_MSG_get0_regCtrl_pkiPublicationInfo(const OSSL_CRMF_MSG *msg); +int OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey(OSSL_CRMF_MSG *msg, + const X509_PUBKEY *pubkey); +X509_PUBKEY +*OSSL_CRMF_MSG_get0_regCtrl_protocolEncrKey(const OSSL_CRMF_MSG *msg); +int OSSL_CRMF_MSG_set1_regCtrl_oldCertID(OSSL_CRMF_MSG *msg, + const OSSL_CRMF_CERTID *cid); +OSSL_CRMF_CERTID +*OSSL_CRMF_MSG_get0_regCtrl_oldCertID(const OSSL_CRMF_MSG *msg); +OSSL_CRMF_CERTID *OSSL_CRMF_CERTID_gen(const X509_NAME *issuer, + const ASN1_INTEGER *serial); + +int OSSL_CRMF_MSG_set1_regInfo_utf8Pairs(OSSL_CRMF_MSG *msg, + const ASN1_UTF8STRING *utf8pairs); +ASN1_UTF8STRING +*OSSL_CRMF_MSG_get0_regInfo_utf8Pairs(const OSSL_CRMF_MSG *msg); +int OSSL_CRMF_MSG_set1_regInfo_certReq(OSSL_CRMF_MSG *msg, + const OSSL_CRMF_CERTREQUEST *cr); +OSSL_CRMF_CERTREQUEST +*OSSL_CRMF_MSG_get0_regInfo_certReq(const OSSL_CRMF_MSG *msg); + +int OSSL_CRMF_MSG_set0_validity(OSSL_CRMF_MSG *crm, + ASN1_TIME *notBefore, ASN1_TIME *notAfter); +int OSSL_CRMF_MSG_set_certReqId(OSSL_CRMF_MSG *crm, int rid); +int OSSL_CRMF_MSG_get_certReqId(const OSSL_CRMF_MSG *crm); +int OSSL_CRMF_MSG_set0_extensions(OSSL_CRMF_MSG *crm, X509_EXTENSIONS *exts); + +int OSSL_CRMF_MSG_push0_extension(OSSL_CRMF_MSG *crm, X509_EXTENSION *ext); +# define OSSL_CRMF_POPO_NONE -1 +# define OSSL_CRMF_POPO_RAVERIFIED 0 +# define OSSL_CRMF_POPO_SIGNATURE 1 +# define OSSL_CRMF_POPO_KEYENC 2 +# define OSSL_CRMF_POPO_KEYAGREE 3 +int OSSL_CRMF_MSG_create_popo(int meth, OSSL_CRMF_MSG *crm, + EVP_PKEY *pkey, const EVP_MD *digest, + OSSL_LIB_CTX *libctx, const char *propq); +int OSSL_CRMF_MSGS_verify_popo(const OSSL_CRMF_MSGS *reqs, + int rid, int acceptRAVerified, + OSSL_LIB_CTX *libctx, const char *propq); +OSSL_CRMF_CERTTEMPLATE *OSSL_CRMF_MSG_get0_tmpl(const OSSL_CRMF_MSG *crm); +X509_PUBKEY +*OSSL_CRMF_CERTTEMPLATE_get0_publicKey(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const X509_NAME +*OSSL_CRMF_CERTTEMPLATE_get0_subject(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const X509_NAME +*OSSL_CRMF_CERTTEMPLATE_get0_issuer(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const ASN1_INTEGER +*OSSL_CRMF_CERTTEMPLATE_get0_serialNumber(const OSSL_CRMF_CERTTEMPLATE *tmpl); +X509_EXTENSIONS +*OSSL_CRMF_CERTTEMPLATE_get0_extensions(const OSSL_CRMF_CERTTEMPLATE *tmpl); +const X509_NAME +*OSSL_CRMF_CERTID_get0_issuer(const OSSL_CRMF_CERTID *cid); +const ASN1_INTEGER +*OSSL_CRMF_CERTID_get0_serialNumber(const OSSL_CRMF_CERTID *cid); +int OSSL_CRMF_CERTTEMPLATE_fill(OSSL_CRMF_CERTTEMPLATE *tmpl, + EVP_PKEY *pubkey, + const X509_NAME *subject, + const X509_NAME *issuer, + const ASN1_INTEGER *serial); +X509 +*OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert(const OSSL_CRMF_ENCRYPTEDVALUE *ecert, + OSSL_LIB_CTX *libctx, const char *propq, + EVP_PKEY *pkey); + +# ifdef __cplusplus +} +# endif +# endif /* !defined(OPENSSL_NO_CRMF) */ +#endif /* !defined(OPENSSL_CRMF_H) */ diff --git a/clientapp/android/app/src/main/cpp/include/openssl/crypto.h b/clientapp/android/app/src/main/cpp/include/openssl/crypto.h new file mode 100644 index 00000000..55e00dcc --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/crypto.h @@ -0,0 +1,561 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/crypto.h.in + * + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_CRYPTO_H +# define OPENSSL_CRYPTO_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_CRYPTO_H +# endif + +# include +# include + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# endif + +# include +# include +# include +# include +# include +# include + +# ifdef CHARSET_EBCDIC +# include +# endif + +/* + * Resolve problems on some operating systems with symbol names that clash + * one way or another + */ +# include + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define SSLeay OpenSSL_version_num +# define SSLeay_version OpenSSL_version +# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +# define SSLEAY_VERSION OPENSSL_VERSION +# define SSLEAY_CFLAGS OPENSSL_CFLAGS +# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON +# define SSLEAY_PLATFORM OPENSSL_PLATFORM +# define SSLEAY_DIR OPENSSL_DIR + +/* + * Old type for allocating dynamic locks. No longer used. Use the new thread + * API instead. + */ +typedef struct { + int dummy; +} CRYPTO_dynlock; + +# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ + +typedef void CRYPTO_RWLOCK; + +CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); +__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); +__owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); +void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); + +int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_or(uint64_t *val, uint64_t op, uint64_t *ret, + CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_load_int(int *val, int *ret, CRYPTO_RWLOCK *lock); + +/* No longer needed, so this is a no-op */ +#define OPENSSL_malloc_init() while(0) continue + +# define OPENSSL_malloc(num) \ + CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_zalloc(num) \ + CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_realloc(addr, num) \ + CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_realloc(addr, old_num, num) \ + CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_clear_free(addr, num) \ + CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_free(addr) \ + CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_memdup(str, s) \ + CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strdup(str) \ + CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_strndup(str, n) \ + CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_malloc(num) \ + CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_zalloc(num) \ + CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_free(addr) \ + CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_clear_free(addr, num) \ + CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_secure_actual_size(ptr) \ + CRYPTO_secure_actual_size(ptr) + +size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); +size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); +size_t OPENSSL_strnlen(const char *str, size_t maxlen); +int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlength, + const unsigned char *buf, size_t buflen, + const char sep); +char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen); +int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen, + const char *str, const char sep); +unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen); +int OPENSSL_hexchar2int(unsigned char c); +int OPENSSL_strcasecmp(const char *s1, const char *s2); +int OPENSSL_strncasecmp(const char *s1, const char *s2, size_t n); + +# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) + +/* + * These functions return the values of OPENSSL_VERSION_MAJOR, + * OPENSSL_VERSION_MINOR, OPENSSL_VERSION_PATCH, OPENSSL_VERSION_PRE_RELEASE + * and OPENSSL_VERSION_BUILD_METADATA, respectively. + */ +unsigned int OPENSSL_version_major(void); +unsigned int OPENSSL_version_minor(void); +unsigned int OPENSSL_version_patch(void); +const char *OPENSSL_version_pre_release(void); +const char *OPENSSL_version_build_metadata(void); + +unsigned long OpenSSL_version_num(void); +const char *OpenSSL_version(int type); +# define OPENSSL_VERSION 0 +# define OPENSSL_CFLAGS 1 +# define OPENSSL_BUILT_ON 2 +# define OPENSSL_PLATFORM 3 +# define OPENSSL_DIR 4 +# define OPENSSL_ENGINES_DIR 5 +# define OPENSSL_VERSION_STRING 6 +# define OPENSSL_FULL_VERSION_STRING 7 +# define OPENSSL_MODULES_DIR 8 +# define OPENSSL_CPU_INFO 9 + +const char *OPENSSL_info(int type); +/* + * The series starts at 1001 to avoid confusion with the OpenSSL_version + * types. + */ +# define OPENSSL_INFO_CONFIG_DIR 1001 +# define OPENSSL_INFO_ENGINES_DIR 1002 +# define OPENSSL_INFO_MODULES_DIR 1003 +# define OPENSSL_INFO_DSO_EXTENSION 1004 +# define OPENSSL_INFO_DIR_FILENAME_SEPARATOR 1005 +# define OPENSSL_INFO_LIST_SEPARATOR 1006 +# define OPENSSL_INFO_SEED_SOURCE 1007 +# define OPENSSL_INFO_CPU_SETTINGS 1008 + +int OPENSSL_issetugid(void); + +struct crypto_ex_data_st { + OSSL_LIB_CTX *ctx; + STACK_OF(void) *sk; +}; + +SKM_DEFINE_STACK_OF_INTERNAL(void, void, void) +#define sk_void_num(sk) OPENSSL_sk_num(ossl_check_const_void_sk_type(sk)) +#define sk_void_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_void_sk_type(sk), (idx))) +#define sk_void_new(cmp) ((STACK_OF(void) *)OPENSSL_sk_new(ossl_check_void_compfunc_type(cmp))) +#define sk_void_new_null() ((STACK_OF(void) *)OPENSSL_sk_new_null()) +#define sk_void_new_reserve(cmp, n) ((STACK_OF(void) *)OPENSSL_sk_new_reserve(ossl_check_void_compfunc_type(cmp), (n))) +#define sk_void_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_void_sk_type(sk), (n)) +#define sk_void_free(sk) OPENSSL_sk_free(ossl_check_void_sk_type(sk)) +#define sk_void_zero(sk) OPENSSL_sk_zero(ossl_check_void_sk_type(sk)) +#define sk_void_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_void_sk_type(sk), (i))) +#define sk_void_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr))) +#define sk_void_push(sk, ptr) OPENSSL_sk_push(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) +#define sk_void_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) +#define sk_void_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_void_sk_type(sk))) +#define sk_void_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_void_sk_type(sk))) +#define sk_void_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_void_sk_type(sk),ossl_check_void_freefunc_type(freefunc)) +#define sk_void_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), (idx)) +#define sk_void_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_void_sk_type(sk), (idx), ossl_check_void_type(ptr))) +#define sk_void_find(sk, ptr) OPENSSL_sk_find(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) +#define sk_void_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr)) +#define sk_void_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_void_sk_type(sk), ossl_check_void_type(ptr), pnum) +#define sk_void_sort(sk) OPENSSL_sk_sort(ossl_check_void_sk_type(sk)) +#define sk_void_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_void_sk_type(sk)) +#define sk_void_dup(sk) ((STACK_OF(void) *)OPENSSL_sk_dup(ossl_check_const_void_sk_type(sk))) +#define sk_void_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(void) *)OPENSSL_sk_deep_copy(ossl_check_const_void_sk_type(sk), ossl_check_void_copyfunc_type(copyfunc), ossl_check_void_freefunc_type(freefunc))) +#define sk_void_set_cmp_func(sk, cmp) ((sk_void_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_void_sk_type(sk), ossl_check_void_compfunc_type(cmp))) + + + +/* + * Per class, we have a STACK of function pointers. + */ +# define CRYPTO_EX_INDEX_SSL 0 +# define CRYPTO_EX_INDEX_SSL_CTX 1 +# define CRYPTO_EX_INDEX_SSL_SESSION 2 +# define CRYPTO_EX_INDEX_X509 3 +# define CRYPTO_EX_INDEX_X509_STORE 4 +# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 +# define CRYPTO_EX_INDEX_DH 6 +# define CRYPTO_EX_INDEX_DSA 7 +# define CRYPTO_EX_INDEX_EC_KEY 8 +# define CRYPTO_EX_INDEX_RSA 9 +# define CRYPTO_EX_INDEX_ENGINE 10 +# define CRYPTO_EX_INDEX_UI 11 +# define CRYPTO_EX_INDEX_BIO 12 +# define CRYPTO_EX_INDEX_APP 13 +# define CRYPTO_EX_INDEX_UI_METHOD 14 +# define CRYPTO_EX_INDEX_RAND_DRBG 15 +# define CRYPTO_EX_INDEX_DRBG CRYPTO_EX_INDEX_RAND_DRBG +# define CRYPTO_EX_INDEX_OSSL_LIB_CTX 16 +# define CRYPTO_EX_INDEX_EVP_PKEY 17 +# define CRYPTO_EX_INDEX__COUNT 18 + +typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, + void **from_d, int idx, long argl, void *argp); +__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, + CRYPTO_EX_new *new_func, + CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +/* No longer use an index. */ +int CRYPTO_free_ex_index(int class_index, int idx); + +/* + * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a + * given class (invokes whatever per-class callbacks are applicable) + */ +int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, + const CRYPTO_EX_DATA *from); + +void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); + +/* Allocate a single item in the CRYPTO_EX_DATA variable */ +int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad, + int idx); + +/* + * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular + * index (relative to the class type involved) + */ +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); +void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +/* + * This function cleans up all "ex_data" state. It mustn't be called under + * potential race-conditions. + */ +# define CRYPTO_cleanup_all_ex_data() while(0) continue + +/* + * The old locking functions have been removed completely without compatibility + * macros. This is because the old functions either could not properly report + * errors, or the returned error values were not clearly documented. + * Replacing the locking functions with no-ops would cause race condition + * issues in the affected applications. It is far better for them to fail at + * compile time. + * On the other hand, the locking callbacks are no longer used. Consequently, + * the callback management functions can be safely replaced with no-op macros. + */ +# define CRYPTO_num_locks() (1) +# define CRYPTO_set_locking_callback(func) +# define CRYPTO_get_locking_callback() (NULL) +# define CRYPTO_set_add_lock_callback(func) +# define CRYPTO_get_add_lock_callback() (NULL) + +/* + * These defines where used in combination with the old locking callbacks, + * they are not called anymore, but old code that's not called might still + * use them. + */ +# define CRYPTO_LOCK 1 +# define CRYPTO_UNLOCK 2 +# define CRYPTO_READ 4 +# define CRYPTO_WRITE 8 + +/* This structure is no longer used */ +typedef struct crypto_threadid_st { + int dummy; +} CRYPTO_THREADID; +/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ +# define CRYPTO_THREADID_set_numeric(id, val) +# define CRYPTO_THREADID_set_pointer(id, ptr) +# define CRYPTO_THREADID_set_callback(threadid_func) (0) +# define CRYPTO_THREADID_get_callback() (NULL) +# define CRYPTO_THREADID_current(id) +# define CRYPTO_THREADID_cmp(a, b) (-1) +# define CRYPTO_THREADID_cpy(dest, src) +# define CRYPTO_THREADID_hash(id) (0UL) + +# ifndef OPENSSL_NO_DEPRECATED_1_0_0 +# define CRYPTO_set_id_callback(func) +# define CRYPTO_get_id_callback() (NULL) +# define CRYPTO_thread_id() (0UL) +# endif /* OPENSSL_NO_DEPRECATED_1_0_0 */ + +# define CRYPTO_set_dynlock_create_callback(dyn_create_function) +# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) +# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) +# define CRYPTO_get_dynlock_create_callback() (NULL) +# define CRYPTO_get_dynlock_lock_callback() (NULL) +# define CRYPTO_get_dynlock_destroy_callback() (NULL) +# endif /* OPENSSL_NO_DEPRECATED_1_1_0 */ + +typedef void *(*CRYPTO_malloc_fn)(size_t num, const char *file, int line); +typedef void *(*CRYPTO_realloc_fn)(void *addr, size_t num, const char *file, + int line); +typedef void (*CRYPTO_free_fn)(void *addr, const char *file, int line); +int CRYPTO_set_mem_functions(CRYPTO_malloc_fn malloc_fn, + CRYPTO_realloc_fn realloc_fn, + CRYPTO_free_fn free_fn); +void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn, + CRYPTO_realloc_fn *realloc_fn, + CRYPTO_free_fn *free_fn); + +OSSL_CRYPTO_ALLOC void *CRYPTO_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_zalloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strdup(const char *str, const char *file, int line); +OSSL_CRYPTO_ALLOC char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +void CRYPTO_free(void *ptr, const char *file, int line); +void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); +void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); +void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, + const char *file, int line); + +int CRYPTO_secure_malloc_init(size_t sz, size_t minsize); +int CRYPTO_secure_malloc_done(void); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +OSSL_CRYPTO_ALLOC void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +void CRYPTO_secure_free(void *ptr, const char *file, int line); +void CRYPTO_secure_clear_free(void *ptr, size_t num, + const char *file, int line); +int CRYPTO_secure_allocated(const void *ptr); +int CRYPTO_secure_malloc_initialized(void); +size_t CRYPTO_secure_actual_size(void *ptr); +size_t CRYPTO_secure_used(void); + +void OPENSSL_cleanse(void *ptr, size_t len); + +# ifndef OPENSSL_NO_CRYPTO_MDEBUG +/* + * The following can be used to detect memory leaks in the library. If + * used, it turns on malloc checking + */ +# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ +# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ +# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ + +void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define OPENSSL_mem_debug_push(info) \ + CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) +# define OPENSSL_mem_debug_pop() \ + CRYPTO_mem_debug_pop() +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 int CRYPTO_set_mem_debug(int flag); +OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_ctrl(int mode); +OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_push(const char *info, + const char *file, int line); +OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_debug_pop(void); +OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_malloc(void *addr, size_t num, + int flag, + const char *file, int line); +OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, + size_t num, int flag, + const char *file, int line); +OSSL_DEPRECATEDIN_3_0 void CRYPTO_mem_debug_free(void *addr, int flag, + const char *file, int line); +OSSL_DEPRECATEDIN_3_0 +int CRYPTO_mem_leaks_cb(int (*cb)(const char *str, size_t len, void *u), + void *u); +# endif +# ifndef OPENSSL_NO_STDIO +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks_fp(FILE *); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 int CRYPTO_mem_leaks(BIO *bio); +# endif +# endif /* OPENSSL_NO_CRYPTO_MDEBUG */ + +/* die if we have to */ +ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) +# endif +# define OPENSSL_assert(e) \ + (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) + +int OPENSSL_isservice(void); + +void OPENSSL_init(void); +# ifdef OPENSSL_SYS_UNIX +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_prepare(void); +OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_parent(void); +OSSL_DEPRECATEDIN_3_0 void OPENSSL_fork_child(void); +# endif +# endif + +struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); +int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to); + +/* + * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. + * It takes an amount of time dependent on |len|, but independent of the + * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements + * into a defined order as the return value when a != b is undefined, other + * than to be non-zero. + */ +int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); + +/* Standard initialisation options */ +# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L +# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L +# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L +# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L +# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L +# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L +# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L +# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L +# define OPENSSL_INIT_ASYNC 0x00000100L +# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L +# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L +# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L +# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L +# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L +# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L +# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L +/* FREE: 0x00010000L */ +# define OPENSSL_INIT_ATFORK 0x00020000L +/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ +# define OPENSSL_INIT_NO_ATEXIT 0x00080000L +/* OPENSSL_INIT flag range 0x03f00000 reserved for OPENSSL_init_ssl() */ +/* FREE: 0x04000000L */ +/* FREE: 0x08000000L */ +/* FREE: 0x10000000L */ +/* FREE: 0x20000000L */ +/* FREE: 0x40000000L */ +/* FREE: 0x80000000L */ +/* Max OPENSSL_INIT flag value is 0x80000000 */ + +/* openssl and dasync not counted as builtin */ +# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ + (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ + | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ + OPENSSL_INIT_ENGINE_PADLOCK) + +/* Library initialisation functions */ +void OPENSSL_cleanup(void); +int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); +int OPENSSL_atexit(void (*handler)(void)); +void OPENSSL_thread_stop(void); +void OPENSSL_thread_stop_ex(OSSL_LIB_CTX *ctx); + +/* Low-level control of initialization */ +OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); +# ifndef OPENSSL_NO_STDIO +int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, + const char *config_filename); +void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, + unsigned long flags); +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *config_appname); +# endif +void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); + +# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) +# if defined(_WIN32) +# if defined(BASETYPES) || defined(_WINDEF_H) +/* application has to include in order to use this */ +typedef DWORD CRYPTO_THREAD_LOCAL; +typedef DWORD CRYPTO_THREAD_ID; + +typedef LONG CRYPTO_ONCE; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif +# else +# if defined(__TANDEM) && defined(_SPT_MODEL_) +# define SPT_THREAD_SIGNAL 1 +# define SPT_THREAD_AWARE 1 +# include +# else +# include +# endif +typedef pthread_once_t CRYPTO_ONCE; +typedef pthread_key_t CRYPTO_THREAD_LOCAL; +typedef pthread_t CRYPTO_THREAD_ID; + +# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT +# endif +# endif + +# if !defined(CRYPTO_ONCE_STATIC_INIT) +typedef unsigned int CRYPTO_ONCE; +typedef unsigned int CRYPTO_THREAD_LOCAL; +typedef unsigned int CRYPTO_THREAD_ID; +# define CRYPTO_ONCE_STATIC_INIT 0 +# endif + +int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); + +int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); +void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); +int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); +int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); + +CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); +int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); + +OSSL_LIB_CTX *OSSL_LIB_CTX_new(void); +OSSL_LIB_CTX *OSSL_LIB_CTX_new_from_dispatch(const OSSL_CORE_HANDLE *handle, + const OSSL_DISPATCH *in); +OSSL_LIB_CTX *OSSL_LIB_CTX_new_child(const OSSL_CORE_HANDLE *handle, + const OSSL_DISPATCH *in); +int OSSL_LIB_CTX_load_config(OSSL_LIB_CTX *ctx, const char *config_file); +void OSSL_LIB_CTX_free(OSSL_LIB_CTX *); +OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void); +OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx); + +void OSSL_sleep(uint64_t millis); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/ct.h b/clientapp/android/app/src/main/cpp/include/openssl/ct.h new file mode 100644 index 00000000..e6dd1192 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/ct.h @@ -0,0 +1,573 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/ct.h.in + * + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_CT_H +# define OPENSSL_CT_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_CT_H +# endif + +# include + +# ifndef OPENSSL_NO_CT +# include +# include +# include +# include +# ifdef __cplusplus +extern "C" { +# endif + + +/* Minimum RSA key size, from RFC6962 */ +# define SCT_MIN_RSA_BITS 2048 + +/* All hashes are SHA256 in v1 of Certificate Transparency */ +# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH + +SKM_DEFINE_STACK_OF_INTERNAL(SCT, SCT, SCT) +#define sk_SCT_num(sk) OPENSSL_sk_num(ossl_check_const_SCT_sk_type(sk)) +#define sk_SCT_value(sk, idx) ((SCT *)OPENSSL_sk_value(ossl_check_const_SCT_sk_type(sk), (idx))) +#define sk_SCT_new(cmp) ((STACK_OF(SCT) *)OPENSSL_sk_new(ossl_check_SCT_compfunc_type(cmp))) +#define sk_SCT_new_null() ((STACK_OF(SCT) *)OPENSSL_sk_new_null()) +#define sk_SCT_new_reserve(cmp, n) ((STACK_OF(SCT) *)OPENSSL_sk_new_reserve(ossl_check_SCT_compfunc_type(cmp), (n))) +#define sk_SCT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SCT_sk_type(sk), (n)) +#define sk_SCT_free(sk) OPENSSL_sk_free(ossl_check_SCT_sk_type(sk)) +#define sk_SCT_zero(sk) OPENSSL_sk_zero(ossl_check_SCT_sk_type(sk)) +#define sk_SCT_delete(sk, i) ((SCT *)OPENSSL_sk_delete(ossl_check_SCT_sk_type(sk), (i))) +#define sk_SCT_delete_ptr(sk, ptr) ((SCT *)OPENSSL_sk_delete_ptr(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr))) +#define sk_SCT_push(sk, ptr) OPENSSL_sk_push(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) +#define sk_SCT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) +#define sk_SCT_pop(sk) ((SCT *)OPENSSL_sk_pop(ossl_check_SCT_sk_type(sk))) +#define sk_SCT_shift(sk) ((SCT *)OPENSSL_sk_shift(ossl_check_SCT_sk_type(sk))) +#define sk_SCT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SCT_sk_type(sk),ossl_check_SCT_freefunc_type(freefunc)) +#define sk_SCT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), (idx)) +#define sk_SCT_set(sk, idx, ptr) ((SCT *)OPENSSL_sk_set(ossl_check_SCT_sk_type(sk), (idx), ossl_check_SCT_type(ptr))) +#define sk_SCT_find(sk, ptr) OPENSSL_sk_find(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) +#define sk_SCT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr)) +#define sk_SCT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SCT_sk_type(sk), ossl_check_SCT_type(ptr), pnum) +#define sk_SCT_sort(sk) OPENSSL_sk_sort(ossl_check_SCT_sk_type(sk)) +#define sk_SCT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SCT_sk_type(sk)) +#define sk_SCT_dup(sk) ((STACK_OF(SCT) *)OPENSSL_sk_dup(ossl_check_const_SCT_sk_type(sk))) +#define sk_SCT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SCT) *)OPENSSL_sk_deep_copy(ossl_check_const_SCT_sk_type(sk), ossl_check_SCT_copyfunc_type(copyfunc), ossl_check_SCT_freefunc_type(freefunc))) +#define sk_SCT_set_cmp_func(sk, cmp) ((sk_SCT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SCT_sk_type(sk), ossl_check_SCT_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(CTLOG, CTLOG, CTLOG) +#define sk_CTLOG_num(sk) OPENSSL_sk_num(ossl_check_const_CTLOG_sk_type(sk)) +#define sk_CTLOG_value(sk, idx) ((CTLOG *)OPENSSL_sk_value(ossl_check_const_CTLOG_sk_type(sk), (idx))) +#define sk_CTLOG_new(cmp) ((STACK_OF(CTLOG) *)OPENSSL_sk_new(ossl_check_CTLOG_compfunc_type(cmp))) +#define sk_CTLOG_new_null() ((STACK_OF(CTLOG) *)OPENSSL_sk_new_null()) +#define sk_CTLOG_new_reserve(cmp, n) ((STACK_OF(CTLOG) *)OPENSSL_sk_new_reserve(ossl_check_CTLOG_compfunc_type(cmp), (n))) +#define sk_CTLOG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CTLOG_sk_type(sk), (n)) +#define sk_CTLOG_free(sk) OPENSSL_sk_free(ossl_check_CTLOG_sk_type(sk)) +#define sk_CTLOG_zero(sk) OPENSSL_sk_zero(ossl_check_CTLOG_sk_type(sk)) +#define sk_CTLOG_delete(sk, i) ((CTLOG *)OPENSSL_sk_delete(ossl_check_CTLOG_sk_type(sk), (i))) +#define sk_CTLOG_delete_ptr(sk, ptr) ((CTLOG *)OPENSSL_sk_delete_ptr(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr))) +#define sk_CTLOG_push(sk, ptr) OPENSSL_sk_push(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) +#define sk_CTLOG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) +#define sk_CTLOG_pop(sk) ((CTLOG *)OPENSSL_sk_pop(ossl_check_CTLOG_sk_type(sk))) +#define sk_CTLOG_shift(sk) ((CTLOG *)OPENSSL_sk_shift(ossl_check_CTLOG_sk_type(sk))) +#define sk_CTLOG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CTLOG_sk_type(sk),ossl_check_CTLOG_freefunc_type(freefunc)) +#define sk_CTLOG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), (idx)) +#define sk_CTLOG_set(sk, idx, ptr) ((CTLOG *)OPENSSL_sk_set(ossl_check_CTLOG_sk_type(sk), (idx), ossl_check_CTLOG_type(ptr))) +#define sk_CTLOG_find(sk, ptr) OPENSSL_sk_find(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) +#define sk_CTLOG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr)) +#define sk_CTLOG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_type(ptr), pnum) +#define sk_CTLOG_sort(sk) OPENSSL_sk_sort(ossl_check_CTLOG_sk_type(sk)) +#define sk_CTLOG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CTLOG_sk_type(sk)) +#define sk_CTLOG_dup(sk) ((STACK_OF(CTLOG) *)OPENSSL_sk_dup(ossl_check_const_CTLOG_sk_type(sk))) +#define sk_CTLOG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CTLOG) *)OPENSSL_sk_deep_copy(ossl_check_const_CTLOG_sk_type(sk), ossl_check_CTLOG_copyfunc_type(copyfunc), ossl_check_CTLOG_freefunc_type(freefunc))) +#define sk_CTLOG_set_cmp_func(sk, cmp) ((sk_CTLOG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CTLOG_sk_type(sk), ossl_check_CTLOG_compfunc_type(cmp))) + + + +typedef enum { + CT_LOG_ENTRY_TYPE_NOT_SET = -1, + CT_LOG_ENTRY_TYPE_X509 = 0, + CT_LOG_ENTRY_TYPE_PRECERT = 1 +} ct_log_entry_type_t; + +typedef enum { + SCT_VERSION_NOT_SET = -1, + SCT_VERSION_V1 = 0 +} sct_version_t; + +typedef enum { + SCT_SOURCE_UNKNOWN, + SCT_SOURCE_TLS_EXTENSION, + SCT_SOURCE_X509V3_EXTENSION, + SCT_SOURCE_OCSP_STAPLED_RESPONSE +} sct_source_t; + +typedef enum { + SCT_VALIDATION_STATUS_NOT_SET, + SCT_VALIDATION_STATUS_UNKNOWN_LOG, + SCT_VALIDATION_STATUS_VALID, + SCT_VALIDATION_STATUS_INVALID, + SCT_VALIDATION_STATUS_UNVERIFIED, + SCT_VALIDATION_STATUS_UNKNOWN_VERSION +} sct_validation_status_t; + +/****************************************** + * CT policy evaluation context functions * + ******************************************/ + +/* + * Creates a new, empty policy evaluation context associated with the given + * library context and property query string. + * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished + * with the CT_POLICY_EVAL_CTX. + */ +CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new_ex(OSSL_LIB_CTX *libctx, + const char *propq); + +/* + * The same as CT_POLICY_EVAL_CTX_new_ex() but the default library + * context and property query string is used. + */ +CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); + +/* Deletes a policy evaluation context and anything it owns. */ +void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); + +/* Gets the peer certificate that the SCTs are for */ +X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the certificate associated with the received SCTs. + * Increments the reference count of cert. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); + +/* Gets the issuer of the aforementioned certificate */ +X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the issuer of the certificate associated with the received SCTs. + * Increments the reference count of issuer. + * Returns 1 on success, 0 otherwise. + */ +int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); + +/* Gets the CT logs that are trusted sources of SCTs */ +const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); + +/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ +void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, + CTLOG_STORE *log_store); + +/* + * Gets the time, in milliseconds since the Unix epoch, that will be used as the + * current time when checking whether an SCT was issued in the future. + * Such SCTs will fail validation, as required by RFC6962. + */ +uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); + +/* + * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. + * If an SCT's timestamp is after this time, it will be interpreted as having + * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs + * whose timestamp is in the future", so an SCT will not validate in this case. + */ +void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); + +/***************** + * SCT functions * + *****************/ + +/* + * Creates a new, blank SCT. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new(void); + +/* + * Creates a new SCT from some base64-encoded strings. + * The caller is responsible for calling SCT_free when finished with the SCT. + */ +SCT *SCT_new_from_base64(unsigned char version, + const char *logid_base64, + ct_log_entry_type_t entry_type, + uint64_t timestamp, + const char *extensions_base64, + const char *signature_base64); + +/* + * Frees the SCT and the underlying data structures. + */ +void SCT_free(SCT *sct); + +/* + * Free a stack of SCTs, and the underlying SCTs themselves. + * Intended to be compatible with X509V3_EXT_FREE. + */ +void SCT_LIST_free(STACK_OF(SCT) *a); + +/* + * Returns the version of the SCT. + */ +sct_version_t SCT_get_version(const SCT *sct); + +/* + * Set the version of an SCT. + * Returns 1 on success, 0 if the version is unrecognized. + */ +__owur int SCT_set_version(SCT *sct, sct_version_t version); + +/* + * Returns the log entry type of the SCT. + */ +ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); + +/* + * Set the log entry type of an SCT. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); + +/* + * Gets the ID of the log that an SCT came from. + * Ownership of the log ID remains with the SCT. + * Returns the length of the log ID. + */ +size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); + +/* + * Set the log ID of an SCT to point directly to the *log_id specified. + * The SCT takes ownership of the specified pointer. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); + +/* + * Set the log ID of an SCT. + * This makes a copy of the log_id. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, + size_t log_id_len); + +/* + * Returns the timestamp for the SCT (epoch time in milliseconds). + */ +uint64_t SCT_get_timestamp(const SCT *sct); + +/* + * Set the timestamp of an SCT (epoch time in milliseconds). + */ +void SCT_set_timestamp(SCT *sct, uint64_t timestamp); + +/* + * Return the NID for the signature used by the SCT. + * For CT v1, this will be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). + */ +int SCT_get_signature_nid(const SCT *sct); + +/* + * Set the signature type of an SCT + * For CT v1, this should be either NID_sha256WithRSAEncryption or + * NID_ecdsa_with_SHA256. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_signature_nid(SCT *sct, int nid); + +/* + * Set *ext to point to the extension data for the SCT. ext must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); + +/* + * Set the extensions of an SCT to point directly to the *ext specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); + +/* + * Set the extensions of an SCT. + * This takes a copy of the ext. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, + size_t ext_len); + +/* + * Set *sig to point to the signature for the SCT. sig must not be NULL. + * The SCT retains ownership of this pointer. + * Returns length of the data pointed to. + */ +size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); + +/* + * Set the signature of an SCT to point directly to the *sig specified. + * The SCT takes ownership of the specified pointer. + */ +void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); + +/* + * Set the signature of an SCT to be a copy of the *sig specified. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, + size_t sig_len); + +/* + * The origin of this SCT, e.g. TLS extension, OCSP response, etc. + */ +sct_source_t SCT_get_source(const SCT *sct); + +/* + * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. + * Returns 1 on success, 0 otherwise. + */ +__owur int SCT_set_source(SCT *sct, sct_source_t source); + +/* + * Returns a text string describing the validation status of |sct|. + */ +const char *SCT_validation_status_string(const SCT *sct); + +/* + * Pretty-prints an |sct| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came + * from, so that the log name can be printed. + */ +void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); + +/* + * Pretty-prints an |sct_list| to |out|. + * It will be indented by the number of spaces specified by |indent|. + * SCTs will be delimited by |separator|. + * If |logs| is not NULL, it will be used to lookup the CT log that each SCT + * came from, so that the log names can be printed. + */ +void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, + const char *separator, const CTLOG_STORE *logs); + +/* + * Gets the last result of validating this SCT. + * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. + */ +sct_validation_status_t SCT_get_validation_status(const SCT *sct); + +/* + * Validates the given SCT with the provided context. + * Sets the "validation_status" field of the SCT. + * Returns 1 if the SCT is valid and the signature verifies. + * Returns 0 if the SCT is invalid or could not be verified. + * Returns -1 if an error occurs. + */ +__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); + +/* + * Validates the given list of SCTs with the provided context. + * Sets the "validation_status" field of each SCT. + * Returns 1 if there are no invalid SCTs and all signatures verify. + * Returns 0 if at least one SCT is invalid or could not be verified. + * Returns a negative integer if an error occurs. + */ +__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, + CT_POLICY_EVAL_CTX *ctx); + + +/********************************* + * SCT parsing and serialization * + *********************************/ + +/* + * Serialize (to TLS format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just return the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Convert TLS format SCT list to a stack of SCTs. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + size_t len); + +/* + * Serialize (to DER format) a stack of SCTs and return the length. + * "a" must not be NULL. + * If "pp" is NULL, just returns the length of what would have been serialized. + * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer + * for data that caller is responsible for freeing (only if function returns + * successfully). + * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring + * that "*pp" is large enough to accept all of the serialized data. + * Returns < 0 on error, >= 0 indicating bytes written (or would have been) + * on success. + */ +__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); + +/* + * Parses an SCT list in DER format and returns it. + * If "a" or "*a" is NULL, a new stack will be created that the caller is + * responsible for freeing (by calling SCT_LIST_free). + * "**pp" and "*pp" must not be NULL. + * Upon success, "*pp" will point to after the last bytes read, and a stack + * will be returned. + * Upon failure, a NULL pointer will be returned, and the position of "*pp" is + * not defined. + */ +STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, + long len); + +/* + * Serialize (to TLS format) an |sct| and write it to |out|. + * If |out| is null, no SCT will be output but the length will still be returned. + * If |out| points to a null pointer, a string will be allocated to hold the + * TLS-format SCT. It is the responsibility of the caller to free it. + * If |out| points to an allocated string, the TLS-format SCT will be written + * to it. + * The length of the SCT in TLS format will be returned. + */ +__owur int i2o_SCT(const SCT *sct, unsigned char **out); + +/* + * Parses an SCT in TLS format and returns it. + * If |psct| is not null, it will end up pointing to the parsed SCT. If it + * already points to a non-null pointer, the pointer will be free'd. + * |in| should be a pointer to a string containing the TLS-format SCT. + * |in| will be advanced to the end of the SCT if parsing succeeds. + * |len| should be the length of the SCT in |in|. + * Returns NULL if an error occurs. + * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' + * fields will be populated (with |in| and |len| respectively). + */ +SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); + +/******************** + * CT log functions * + ********************/ + +/* + * Creates a new CT log instance with the given |public_key| and |name| and + * associates it with the give library context |libctx| and property query + * string |propq|. + * Takes ownership of |public_key| but copies |name|. + * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +CTLOG *CTLOG_new_ex(EVP_PKEY *public_key, const char *name, OSSL_LIB_CTX *libctx, + const char *propq); + +/* + * The same as CTLOG_new_ex except that the default library context and + * property query string are used. + */ +CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); + +/* + * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER + * in |pkey_base64| and associated with the given library context |libctx| and + * property query string |propq|. The |name| is a string to help users identify + * this log. + * Returns 1 on success, 0 on failure. + * Should be deleted by the caller using CTLOG_free when no longer needed. + */ +int CTLOG_new_from_base64_ex(CTLOG **ct_log, const char *pkey_base64, + const char *name, OSSL_LIB_CTX *libctx, + const char *propq); + +/* + * The same as CTLOG_new_from_base64_ex() except that the default + * library context and property query string are used. + * Returns 1 on success, 0 on failure. + */ +int CTLOG_new_from_base64(CTLOG ** ct_log, + const char *pkey_base64, const char *name); + +/* + * Deletes a CT log instance and its fields. + */ +void CTLOG_free(CTLOG *log); + +/* Gets the name of the CT log */ +const char *CTLOG_get0_name(const CTLOG *log); +/* Gets the ID of the CT log */ +void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, + size_t *log_id_len); +/* Gets the public key of the CT log */ +EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); + +/************************** + * CT log store functions * + **************************/ + +/* + * Creates a new CT log store and associates it with the given libctx and + * property query string. + * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. + */ +CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq); + +/* + * Same as CTLOG_STORE_new_ex except that the default libctx and + * property query string are used. + * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. + */ +CTLOG_STORE *CTLOG_STORE_new(void); + +/* + * Deletes a CT log store and all of the CT log instances held within. + */ +void CTLOG_STORE_free(CTLOG_STORE *store); + +/* + * Finds a CT log in the store based on its log ID. + * Returns the CT log, or NULL if no match is found. + */ +const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, + const uint8_t *log_id, + size_t log_id_len); + +/* + * Loads a CT log list into a |store| from a |file|. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); + +/* + * Loads the default CT log list into a |store|. + * Returns 1 if loading is successful, or 0 otherwise. + */ +__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); + +# ifdef __cplusplus +} +# endif +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/err.h b/clientapp/android/app/src/main/cpp/include/openssl/err.h new file mode 100644 index 00000000..daca18e7 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/err.h @@ -0,0 +1,512 @@ +/* + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_ERR_H +# define OPENSSL_ERR_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_ERR_H +# endif + +# include + +# ifndef OPENSSL_NO_STDIO +# include +# include +# endif + +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_FILENAMES +# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,fn,ln) +# else +# define ERR_PUT_error(l,f,r,fn,ln) ERR_put_error(l,f,r,NULL,0) +# endif +# endif + +# include +# include + +# define ERR_TXT_MALLOCED 0x01 +# define ERR_TXT_STRING 0x02 + +# if !defined(OPENSSL_NO_DEPRECATED_3_0) || defined(OSSL_FORCE_ERR_STATE) +# define ERR_FLAG_MARK 0x01 +# define ERR_FLAG_CLEAR 0x02 + +# define ERR_NUM_ERRORS 16 +struct err_state_st { + int err_flags[ERR_NUM_ERRORS]; + int err_marks[ERR_NUM_ERRORS]; + unsigned long err_buffer[ERR_NUM_ERRORS]; + char *err_data[ERR_NUM_ERRORS]; + size_t err_data_size[ERR_NUM_ERRORS]; + int err_data_flags[ERR_NUM_ERRORS]; + char *err_file[ERR_NUM_ERRORS]; + int err_line[ERR_NUM_ERRORS]; + char *err_func[ERR_NUM_ERRORS]; + int top, bottom; +}; +# endif + +/* library */ +# define ERR_LIB_NONE 1 +# define ERR_LIB_SYS 2 +# define ERR_LIB_BN 3 +# define ERR_LIB_RSA 4 +# define ERR_LIB_DH 5 +# define ERR_LIB_EVP 6 +# define ERR_LIB_BUF 7 +# define ERR_LIB_OBJ 8 +# define ERR_LIB_PEM 9 +# define ERR_LIB_DSA 10 +# define ERR_LIB_X509 11 +/* #define ERR_LIB_METH 12 */ +# define ERR_LIB_ASN1 13 +# define ERR_LIB_CONF 14 +# define ERR_LIB_CRYPTO 15 +# define ERR_LIB_EC 16 +# define ERR_LIB_SSL 20 +/* #define ERR_LIB_SSL23 21 */ +/* #define ERR_LIB_SSL2 22 */ +/* #define ERR_LIB_SSL3 23 */ +/* #define ERR_LIB_RSAREF 30 */ +/* #define ERR_LIB_PROXY 31 */ +# define ERR_LIB_BIO 32 +# define ERR_LIB_PKCS7 33 +# define ERR_LIB_X509V3 34 +# define ERR_LIB_PKCS12 35 +# define ERR_LIB_RAND 36 +# define ERR_LIB_DSO 37 +# define ERR_LIB_ENGINE 38 +# define ERR_LIB_OCSP 39 +# define ERR_LIB_UI 40 +# define ERR_LIB_COMP 41 +# define ERR_LIB_ECDSA 42 +# define ERR_LIB_ECDH 43 +# define ERR_LIB_OSSL_STORE 44 +# define ERR_LIB_FIPS 45 +# define ERR_LIB_CMS 46 +# define ERR_LIB_TS 47 +# define ERR_LIB_HMAC 48 +/* # define ERR_LIB_JPAKE 49 */ +# define ERR_LIB_CT 50 +# define ERR_LIB_ASYNC 51 +# define ERR_LIB_KDF 52 +# define ERR_LIB_SM2 53 +# define ERR_LIB_ESS 54 +# define ERR_LIB_PROP 55 +# define ERR_LIB_CRMF 56 +# define ERR_LIB_PROV 57 +# define ERR_LIB_CMP 58 +# define ERR_LIB_OSSL_ENCODER 59 +# define ERR_LIB_OSSL_DECODER 60 +# define ERR_LIB_HTTP 61 + +# define ERR_LIB_USER 128 + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define ASN1err(f, r) ERR_raise_data(ERR_LIB_ASN1, (r), NULL) +# define ASYNCerr(f, r) ERR_raise_data(ERR_LIB_ASYNC, (r), NULL) +# define BIOerr(f, r) ERR_raise_data(ERR_LIB_BIO, (r), NULL) +# define BNerr(f, r) ERR_raise_data(ERR_LIB_BN, (r), NULL) +# define BUFerr(f, r) ERR_raise_data(ERR_LIB_BUF, (r), NULL) +# define CMPerr(f, r) ERR_raise_data(ERR_LIB_CMP, (r), NULL) +# define CMSerr(f, r) ERR_raise_data(ERR_LIB_CMS, (r), NULL) +# define COMPerr(f, r) ERR_raise_data(ERR_LIB_COMP, (r), NULL) +# define CONFerr(f, r) ERR_raise_data(ERR_LIB_CONF, (r), NULL) +# define CRMFerr(f, r) ERR_raise_data(ERR_LIB_CRMF, (r), NULL) +# define CRYPTOerr(f, r) ERR_raise_data(ERR_LIB_CRYPTO, (r), NULL) +# define CTerr(f, r) ERR_raise_data(ERR_LIB_CT, (r), NULL) +# define DHerr(f, r) ERR_raise_data(ERR_LIB_DH, (r), NULL) +# define DSAerr(f, r) ERR_raise_data(ERR_LIB_DSA, (r), NULL) +# define DSOerr(f, r) ERR_raise_data(ERR_LIB_DSO, (r), NULL) +# define ECDHerr(f, r) ERR_raise_data(ERR_LIB_ECDH, (r), NULL) +# define ECDSAerr(f, r) ERR_raise_data(ERR_LIB_ECDSA, (r), NULL) +# define ECerr(f, r) ERR_raise_data(ERR_LIB_EC, (r), NULL) +# define ENGINEerr(f, r) ERR_raise_data(ERR_LIB_ENGINE, (r), NULL) +# define ESSerr(f, r) ERR_raise_data(ERR_LIB_ESS, (r), NULL) +# define EVPerr(f, r) ERR_raise_data(ERR_LIB_EVP, (r), NULL) +# define FIPSerr(f, r) ERR_raise_data(ERR_LIB_FIPS, (r), NULL) +# define HMACerr(f, r) ERR_raise_data(ERR_LIB_HMAC, (r), NULL) +# define HTTPerr(f, r) ERR_raise_data(ERR_LIB_HTTP, (r), NULL) +# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) +# define OBJerr(f, r) ERR_raise_data(ERR_LIB_OBJ, (r), NULL) +# define OCSPerr(f, r) ERR_raise_data(ERR_LIB_OCSP, (r), NULL) +# define OSSL_STOREerr(f, r) ERR_raise_data(ERR_LIB_OSSL_STORE, (r), NULL) +# define PEMerr(f, r) ERR_raise_data(ERR_LIB_PEM, (r), NULL) +# define PKCS12err(f, r) ERR_raise_data(ERR_LIB_PKCS12, (r), NULL) +# define PKCS7err(f, r) ERR_raise_data(ERR_LIB_PKCS7, (r), NULL) +# define PROPerr(f, r) ERR_raise_data(ERR_LIB_PROP, (r), NULL) +# define PROVerr(f, r) ERR_raise_data(ERR_LIB_PROV, (r), NULL) +# define RANDerr(f, r) ERR_raise_data(ERR_LIB_RAND, (r), NULL) +# define RSAerr(f, r) ERR_raise_data(ERR_LIB_RSA, (r), NULL) +# define KDFerr(f, r) ERR_raise_data(ERR_LIB_KDF, (r), NULL) +# define SM2err(f, r) ERR_raise_data(ERR_LIB_SM2, (r), NULL) +# define SSLerr(f, r) ERR_raise_data(ERR_LIB_SSL, (r), NULL) +# define SYSerr(f, r) ERR_raise_data(ERR_LIB_SYS, (r), NULL) +# define TSerr(f, r) ERR_raise_data(ERR_LIB_TS, (r), NULL) +# define UIerr(f, r) ERR_raise_data(ERR_LIB_UI, (r), NULL) +# define X509V3err(f, r) ERR_raise_data(ERR_LIB_X509V3, (r), NULL) +# define X509err(f, r) ERR_raise_data(ERR_LIB_X509, (r), NULL) +# endif + +/*- + * The error code packs differently depending on if it records a system + * error or an OpenSSL error. + * + * A system error packs like this (we follow POSIX and only allow positive + * numbers that fit in an |int|): + * + * +-+-------------------------------------------------------------+ + * |1| system error number | + * +-+-------------------------------------------------------------+ + * + * An OpenSSL error packs like this: + * + * <---------------------------- 32 bits --------------------------> + * <--- 8 bits ---><------------------ 23 bits -----------------> + * +-+---------------+---------------------------------------------+ + * |0| library | reason | + * +-+---------------+---------------------------------------------+ + * + * A few of the reason bits are reserved as flags with special meaning: + * + * <5 bits-<>--------- 19 bits -----------------> + * +-------+-+-----------------------------------+ + * | rflags| | reason | + * +-------+-+-----------------------------------+ + * ^ + * | + * ERR_RFLAG_FATAL = ERR_R_FATAL + * + * The reason flags are part of the overall reason code for practical + * reasons, as they provide an easy way to place different types of + * reason codes in different numeric ranges. + * + * The currently known reason flags are: + * + * ERR_RFLAG_FATAL Flags that the reason code is considered fatal. + * For backward compatibility reasons, this flag + * is also the code for ERR_R_FATAL (that reason + * code served the dual purpose of flag and reason + * code in one in pre-3.0 OpenSSL). + * ERR_RFLAG_COMMON Flags that the reason code is common to all + * libraries. All ERR_R_ macros must use this flag, + * and no other _R_ macro is allowed to use it. + */ + +/* Macros to help decode recorded system errors */ +# define ERR_SYSTEM_FLAG ((unsigned int)INT_MAX + 1) +# define ERR_SYSTEM_MASK ((unsigned int)INT_MAX) + +/* + * Macros to help decode recorded OpenSSL errors + * As expressed above, RFLAGS and REASON overlap by one bit to allow + * ERR_R_FATAL to use ERR_RFLAG_FATAL as its reason code. + */ +# define ERR_LIB_OFFSET 23L +# define ERR_LIB_MASK 0xFF +# define ERR_RFLAGS_OFFSET 18L +# define ERR_RFLAGS_MASK 0x1F +# define ERR_REASON_MASK 0X7FFFFF + +/* + * Reason flags are defined pre-shifted to easily combine with the reason + * number. + */ +# define ERR_RFLAG_FATAL (0x1 << ERR_RFLAGS_OFFSET) +# define ERR_RFLAG_COMMON (0x2 << ERR_RFLAGS_OFFSET) + +# define ERR_SYSTEM_ERROR(errcode) (((errcode) & ERR_SYSTEM_FLAG) != 0) + +static ossl_unused ossl_inline int ERR_GET_LIB(unsigned long errcode) +{ + if (ERR_SYSTEM_ERROR(errcode)) + return ERR_LIB_SYS; + return (errcode >> ERR_LIB_OFFSET) & ERR_LIB_MASK; +} + +static ossl_unused ossl_inline int ERR_GET_RFLAGS(unsigned long errcode) +{ + if (ERR_SYSTEM_ERROR(errcode)) + return 0; + return errcode & (ERR_RFLAGS_MASK << ERR_RFLAGS_OFFSET); +} + +static ossl_unused ossl_inline int ERR_GET_REASON(unsigned long errcode) +{ + if (ERR_SYSTEM_ERROR(errcode)) + return errcode & ERR_SYSTEM_MASK; + return errcode & ERR_REASON_MASK; +} + +static ossl_unused ossl_inline int ERR_FATAL_ERROR(unsigned long errcode) +{ + return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_FATAL) != 0; +} + +static ossl_unused ossl_inline int ERR_COMMON_ERROR(unsigned long errcode) +{ + return (ERR_GET_RFLAGS(errcode) & ERR_RFLAG_COMMON) != 0; +} + +/* + * ERR_PACK is a helper macro to properly pack OpenSSL error codes and may + * only be used for that purpose. System errors are packed internally. + * ERR_PACK takes reason flags and reason code combined in |reason|. + * ERR_PACK ignores |func|, that parameter is just legacy from pre-3.0 OpenSSL. + */ +# define ERR_PACK(lib,func,reason) \ + ( (((unsigned long)(lib) & ERR_LIB_MASK ) << ERR_LIB_OFFSET) | \ + (((unsigned long)(reason) & ERR_REASON_MASK)) ) + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SYS_F_FOPEN 0 +# define SYS_F_CONNECT 0 +# define SYS_F_GETSERVBYNAME 0 +# define SYS_F_SOCKET 0 +# define SYS_F_IOCTLSOCKET 0 +# define SYS_F_BIND 0 +# define SYS_F_LISTEN 0 +# define SYS_F_ACCEPT 0 +# define SYS_F_WSASTARTUP 0 +# define SYS_F_OPENDIR 0 +# define SYS_F_FREAD 0 +# define SYS_F_GETADDRINFO 0 +# define SYS_F_GETNAMEINFO 0 +# define SYS_F_SETSOCKOPT 0 +# define SYS_F_GETSOCKOPT 0 +# define SYS_F_GETSOCKNAME 0 +# define SYS_F_GETHOSTBYNAME 0 +# define SYS_F_FFLUSH 0 +# define SYS_F_OPEN 0 +# define SYS_F_CLOSE 0 +# define SYS_F_IOCTL 0 +# define SYS_F_STAT 0 +# define SYS_F_FCNTL 0 +# define SYS_F_FSTAT 0 +# define SYS_F_SENDFILE 0 +# endif + +/* + * All ERR_R_ codes must be combined with ERR_RFLAG_COMMON. + */ + +/* "we came from here" global reason codes, range 1..255 */ +# define ERR_R_SYS_LIB (ERR_LIB_SYS/* 2 */ | ERR_RFLAG_COMMON) +# define ERR_R_BN_LIB (ERR_LIB_BN/* 3 */ | ERR_RFLAG_COMMON) +# define ERR_R_RSA_LIB (ERR_LIB_RSA/* 4 */ | ERR_RFLAG_COMMON) +# define ERR_R_DH_LIB (ERR_LIB_DH/* 5 */ | ERR_RFLAG_COMMON) +# define ERR_R_EVP_LIB (ERR_LIB_EVP/* 6 */ | ERR_RFLAG_COMMON) +# define ERR_R_BUF_LIB (ERR_LIB_BUF/* 7 */ | ERR_RFLAG_COMMON) +# define ERR_R_OBJ_LIB (ERR_LIB_OBJ/* 8 */ | ERR_RFLAG_COMMON) +# define ERR_R_PEM_LIB (ERR_LIB_PEM/* 9 */ | ERR_RFLAG_COMMON) +# define ERR_R_DSA_LIB (ERR_LIB_DSA/* 10 */ | ERR_RFLAG_COMMON) +# define ERR_R_X509_LIB (ERR_LIB_X509/* 11 */ | ERR_RFLAG_COMMON) +# define ERR_R_ASN1_LIB (ERR_LIB_ASN1/* 13 */ | ERR_RFLAG_COMMON) +# define ERR_R_CONF_LIB (ERR_LIB_CONF/* 14 */ | ERR_RFLAG_COMMON) +# define ERR_R_CRYPTO_LIB (ERR_LIB_CRYPTO/* 15 */ | ERR_RFLAG_COMMON) +# define ERR_R_EC_LIB (ERR_LIB_EC/* 16 */ | ERR_RFLAG_COMMON) +# define ERR_R_SSL_LIB (ERR_LIB_SSL/* 20 */ | ERR_RFLAG_COMMON) +# define ERR_R_BIO_LIB (ERR_LIB_BIO/* 32 */ | ERR_RFLAG_COMMON) +# define ERR_R_PKCS7_LIB (ERR_LIB_PKCS7/* 33 */ | ERR_RFLAG_COMMON) +# define ERR_R_X509V3_LIB (ERR_LIB_X509V3/* 34 */ | ERR_RFLAG_COMMON) +# define ERR_R_PKCS12_LIB (ERR_LIB_PKCS12/* 35 */ | ERR_RFLAG_COMMON) +# define ERR_R_RAND_LIB (ERR_LIB_RAND/* 36 */ | ERR_RFLAG_COMMON) +# define ERR_R_DSO_LIB (ERR_LIB_DSO/* 37 */ | ERR_RFLAG_COMMON) +# define ERR_R_ENGINE_LIB (ERR_LIB_ENGINE/* 38 */ | ERR_RFLAG_COMMON) +# define ERR_R_UI_LIB (ERR_LIB_UI/* 40 */ | ERR_RFLAG_COMMON) +# define ERR_R_ECDSA_LIB (ERR_LIB_ECDSA/* 42 */ | ERR_RFLAG_COMMON) +# define ERR_R_OSSL_STORE_LIB (ERR_LIB_OSSL_STORE/* 44 */ | ERR_RFLAG_COMMON) +# define ERR_R_CMS_LIB (ERR_LIB_CMS/* 46 */ | ERR_RFLAG_COMMON) +# define ERR_R_TS_LIB (ERR_LIB_TS/* 47 */ | ERR_RFLAG_COMMON) +# define ERR_R_CT_LIB (ERR_LIB_CT/* 50 */ | ERR_RFLAG_COMMON) +# define ERR_R_PROV_LIB (ERR_LIB_PROV/* 57 */ | ERR_RFLAG_COMMON) +# define ERR_R_ESS_LIB (ERR_LIB_ESS/* 54 */ | ERR_RFLAG_COMMON) +# define ERR_R_CMP_LIB (ERR_LIB_CMP/* 58 */ | ERR_RFLAG_COMMON) +# define ERR_R_OSSL_ENCODER_LIB (ERR_LIB_OSSL_ENCODER/* 59 */ | ERR_RFLAG_COMMON) +# define ERR_R_OSSL_DECODER_LIB (ERR_LIB_OSSL_DECODER/* 60 */ | ERR_RFLAG_COMMON) + +/* Other common error codes, range 256..2^ERR_RFLAGS_OFFSET-1 */ +# define ERR_R_FATAL (ERR_RFLAG_FATAL|ERR_RFLAG_COMMON) +# define ERR_R_MALLOC_FAILURE (256|ERR_R_FATAL) +# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (257|ERR_R_FATAL) +# define ERR_R_PASSED_NULL_PARAMETER (258|ERR_R_FATAL) +# define ERR_R_INTERNAL_ERROR (259|ERR_R_FATAL) +# define ERR_R_DISABLED (260|ERR_R_FATAL) +# define ERR_R_INIT_FAIL (261|ERR_R_FATAL) +# define ERR_R_PASSED_INVALID_ARGUMENT (262|ERR_RFLAG_COMMON) +# define ERR_R_OPERATION_FAIL (263|ERR_R_FATAL) +# define ERR_R_INVALID_PROVIDER_FUNCTIONS (264|ERR_R_FATAL) +# define ERR_R_INTERRUPTED_OR_CANCELLED (265|ERR_RFLAG_COMMON) +# define ERR_R_NESTED_ASN1_ERROR (266|ERR_RFLAG_COMMON) +# define ERR_R_MISSING_ASN1_EOS (267|ERR_RFLAG_COMMON) +# define ERR_R_UNSUPPORTED (268|ERR_RFLAG_COMMON) +# define ERR_R_FETCH_FAILED (269|ERR_RFLAG_COMMON) +# define ERR_R_INVALID_PROPERTY_DEFINITION (270|ERR_RFLAG_COMMON) +# define ERR_R_UNABLE_TO_GET_READ_LOCK (271|ERR_R_FATAL) +# define ERR_R_UNABLE_TO_GET_WRITE_LOCK (272|ERR_R_FATAL) + +typedef struct ERR_string_data_st { + unsigned long error; + const char *string; +} ERR_STRING_DATA; + +DEFINE_LHASH_OF_INTERNAL(ERR_STRING_DATA); +#define lh_ERR_STRING_DATA_new(hfn, cmp) ((LHASH_OF(ERR_STRING_DATA) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_ERR_STRING_DATA_lh_hashfunc_type(hfn), ossl_check_ERR_STRING_DATA_lh_compfunc_type(cmp)), lh_ERR_STRING_DATA_hash_thunk, lh_ERR_STRING_DATA_comp_thunk, lh_ERR_STRING_DATA_doall_thunk, lh_ERR_STRING_DATA_doall_arg_thunk)) +#define lh_ERR_STRING_DATA_free(lh) OPENSSL_LH_free(ossl_check_ERR_STRING_DATA_lh_type(lh)) +#define lh_ERR_STRING_DATA_flush(lh) OPENSSL_LH_flush(ossl_check_ERR_STRING_DATA_lh_type(lh)) +#define lh_ERR_STRING_DATA_insert(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_insert(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_plain_type(ptr))) +#define lh_ERR_STRING_DATA_delete(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_delete(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) +#define lh_ERR_STRING_DATA_retrieve(lh, ptr) ((ERR_STRING_DATA *)OPENSSL_LH_retrieve(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_const_ERR_STRING_DATA_lh_plain_type(ptr))) +#define lh_ERR_STRING_DATA_error(lh) OPENSSL_LH_error(ossl_check_ERR_STRING_DATA_lh_type(lh)) +#define lh_ERR_STRING_DATA_num_items(lh) OPENSSL_LH_num_items(ossl_check_ERR_STRING_DATA_lh_type(lh)) +#define lh_ERR_STRING_DATA_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) +#define lh_ERR_STRING_DATA_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) +#define lh_ERR_STRING_DATA_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_ERR_STRING_DATA_lh_type(lh), out) +#define lh_ERR_STRING_DATA_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh)) +#define lh_ERR_STRING_DATA_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_ERR_STRING_DATA_lh_type(lh), dl) +#define lh_ERR_STRING_DATA_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_ERR_STRING_DATA_lh_type(lh), ossl_check_ERR_STRING_DATA_lh_doallfunc_type(dfn)) + + +/* 12 lines and some on an 80 column terminal */ +#define ERR_MAX_DATA_SIZE 1024 + +/* Building blocks */ +void ERR_new(void); +void ERR_set_debug(const char *file, int line, const char *func); +void ERR_set_error(int lib, int reason, const char *fmt, ...); +void ERR_vset_error(int lib, int reason, const char *fmt, va_list args); + +/* Main error raising functions */ +# define ERR_raise(lib, reason) ERR_raise_data((lib),(reason),NULL) +# define ERR_raise_data \ + (ERR_new(), \ + ERR_set_debug(OPENSSL_FILE,OPENSSL_LINE,OPENSSL_FUNC), \ + ERR_set_error) + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +/* Backward compatibility */ +# define ERR_put_error(lib, func, reason, file, line) \ + (ERR_new(), \ + ERR_set_debug((file), (line), OPENSSL_FUNC), \ + ERR_set_error((lib), (reason), NULL)) +# endif + +void ERR_set_error_data(char *data, int flags); + +unsigned long ERR_get_error(void); +unsigned long ERR_get_error_all(const char **file, int *line, + const char **func, + const char **data, int *flags); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +unsigned long ERR_get_error_line(const char **file, int *line); +OSSL_DEPRECATEDIN_3_0 +unsigned long ERR_get_error_line_data(const char **file, int *line, + const char **data, int *flags); +#endif +unsigned long ERR_peek_error(void); +unsigned long ERR_peek_error_line(const char **file, int *line); +unsigned long ERR_peek_error_func(const char **func); +unsigned long ERR_peek_error_data(const char **data, int *flags); +unsigned long ERR_peek_error_all(const char **file, int *line, + const char **func, + const char **data, int *flags); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +unsigned long ERR_peek_error_line_data(const char **file, int *line, + const char **data, int *flags); +# endif +unsigned long ERR_peek_last_error(void); +unsigned long ERR_peek_last_error_line(const char **file, int *line); +unsigned long ERR_peek_last_error_func(const char **func); +unsigned long ERR_peek_last_error_data(const char **data, int *flags); +unsigned long ERR_peek_last_error_all(const char **file, int *line, + const char **func, + const char **data, int *flags); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +unsigned long ERR_peek_last_error_line_data(const char **file, int *line, + const char **data, int *flags); +# endif + +void ERR_clear_error(void); + +char *ERR_error_string(unsigned long e, char *buf); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +const char *ERR_lib_error_string(unsigned long e); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 const char *ERR_func_error_string(unsigned long e); +# endif +const char *ERR_reason_error_string(unsigned long e); + +void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +# ifndef OPENSSL_NO_STDIO +void ERR_print_errors_fp(FILE *fp); +# endif +void ERR_print_errors(BIO *bp); + +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); +void ERR_add_error_txt(const char *sepr, const char *txt); +void ERR_add_error_mem_bio(const char *sep, BIO *bio); + +int ERR_load_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_strings_const(const ERR_STRING_DATA *str); +int ERR_unload_strings(int lib, ERR_STRING_DATA *str); + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define ERR_load_crypto_strings() \ + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +# define ERR_free_strings() while(0) continue +#endif +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 void ERR_remove_thread_state(void *); +#endif +#ifndef OPENSSL_NO_DEPRECATED_1_0_0 +OSSL_DEPRECATEDIN_1_0_0 void ERR_remove_state(unsigned long pid); +#endif +#ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 ERR_STATE *ERR_get_state(void); +#endif + +int ERR_get_next_error_library(void); + +int ERR_set_mark(void); +int ERR_pop_to_mark(void); +int ERR_clear_last_mark(void); +int ERR_count_to_mark(void); +int ERR_pop(void); + +ERR_STATE *OSSL_ERR_STATE_new(void); +void OSSL_ERR_STATE_save(ERR_STATE *es); +void OSSL_ERR_STATE_save_to_mark(ERR_STATE *es); +void OSSL_ERR_STATE_restore(const ERR_STATE *es); +void OSSL_ERR_STATE_free(ERR_STATE *es); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/ess.h b/clientapp/android/app/src/main/cpp/include/openssl/ess.h new file mode 100644 index 00000000..4055bebb --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/ess.h @@ -0,0 +1,128 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/ess.h.in + * + * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_ESS_H +# define OPENSSL_ESS_H +# pragma once + +# include + +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + + +typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; +typedef struct ESS_cert_id ESS_CERT_ID; +typedef struct ESS_signing_cert ESS_SIGNING_CERT; + +SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID, ESS_CERT_ID, ESS_CERT_ID) +#define sk_ESS_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_sk_type(sk)) +#define sk_ESS_CERT_ID_value(sk, idx) ((ESS_CERT_ID *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_sk_type(sk), (idx))) +#define sk_ESS_CERT_ID_new(cmp) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_compfunc_type(cmp))) +#define sk_ESS_CERT_ID_new_null() ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_null()) +#define sk_ESS_CERT_ID_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_compfunc_type(cmp), (n))) +#define sk_ESS_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_sk_type(sk), (n)) +#define sk_ESS_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_sk_type(sk)) +#define sk_ESS_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_sk_type(sk)) +#define sk_ESS_CERT_ID_delete(sk, i) ((ESS_CERT_ID *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_sk_type(sk), (i))) +#define sk_ESS_CERT_ID_delete_ptr(sk, ptr) ((ESS_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr))) +#define sk_ESS_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) +#define sk_ESS_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) +#define sk_ESS_CERT_ID_pop(sk) ((ESS_CERT_ID *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_sk_type(sk))) +#define sk_ESS_CERT_ID_shift(sk) ((ESS_CERT_ID *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_sk_type(sk))) +#define sk_ESS_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_sk_type(sk),ossl_check_ESS_CERT_ID_freefunc_type(freefunc)) +#define sk_ESS_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), (idx)) +#define sk_ESS_CERT_ID_set(sk, idx, ptr) ((ESS_CERT_ID *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_type(ptr))) +#define sk_ESS_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) +#define sk_ESS_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr)) +#define sk_ESS_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_type(ptr), pnum) +#define sk_ESS_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_sk_type(sk)) +#define sk_ESS_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_sk_type(sk)) +#define sk_ESS_CERT_ID_dup(sk) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_sk_type(sk))) +#define sk_ESS_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_freefunc_type(freefunc))) +#define sk_ESS_CERT_ID_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_sk_type(sk), ossl_check_ESS_CERT_ID_compfunc_type(cmp))) + + + +typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; +typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; + +SKM_DEFINE_STACK_OF_INTERNAL(ESS_CERT_ID_V2, ESS_CERT_ID_V2, ESS_CERT_ID_V2) +#define sk_ESS_CERT_ID_V2_num(sk) OPENSSL_sk_num(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) +#define sk_ESS_CERT_ID_V2_value(sk, idx) ((ESS_CERT_ID_V2 *)OPENSSL_sk_value(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), (idx))) +#define sk_ESS_CERT_ID_V2_new(cmp) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) +#define sk_ESS_CERT_ID_V2_new_null() ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_null()) +#define sk_ESS_CERT_ID_V2_new_reserve(cmp, n) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_new_reserve(ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp), (n))) +#define sk_ESS_CERT_ID_V2_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (n)) +#define sk_ESS_CERT_ID_V2_free(sk) OPENSSL_sk_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) +#define sk_ESS_CERT_ID_V2_zero(sk) OPENSSL_sk_zero(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) +#define sk_ESS_CERT_ID_V2_delete(sk, i) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (i))) +#define sk_ESS_CERT_ID_V2_delete_ptr(sk, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_delete_ptr(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr))) +#define sk_ESS_CERT_ID_V2_push(sk, ptr) OPENSSL_sk_push(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) +#define sk_ESS_CERT_ID_V2_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) +#define sk_ESS_CERT_ID_V2_pop(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_pop(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) +#define sk_ESS_CERT_ID_V2_shift(sk) ((ESS_CERT_ID_V2 *)OPENSSL_sk_shift(ossl_check_ESS_CERT_ID_V2_sk_type(sk))) +#define sk_ESS_CERT_ID_V2_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ESS_CERT_ID_V2_sk_type(sk),ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc)) +#define sk_ESS_CERT_ID_V2_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), (idx)) +#define sk_ESS_CERT_ID_V2_set(sk, idx, ptr) ((ESS_CERT_ID_V2 *)OPENSSL_sk_set(ossl_check_ESS_CERT_ID_V2_sk_type(sk), (idx), ossl_check_ESS_CERT_ID_V2_type(ptr))) +#define sk_ESS_CERT_ID_V2_find(sk, ptr) OPENSSL_sk_find(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) +#define sk_ESS_CERT_ID_V2_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr)) +#define sk_ESS_CERT_ID_V2_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_type(ptr), pnum) +#define sk_ESS_CERT_ID_V2_sort(sk) OPENSSL_sk_sort(ossl_check_ESS_CERT_ID_V2_sk_type(sk)) +#define sk_ESS_CERT_ID_V2_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk)) +#define sk_ESS_CERT_ID_V2_dup(sk) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_dup(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk))) +#define sk_ESS_CERT_ID_V2_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ESS_CERT_ID_V2) *)OPENSSL_sk_deep_copy(ossl_check_const_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_copyfunc_type(copyfunc), ossl_check_ESS_CERT_ID_V2_freefunc_type(freefunc))) +#define sk_ESS_CERT_ID_V2_set_cmp_func(sk, cmp) ((sk_ESS_CERT_ID_V2_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ESS_CERT_ID_V2_sk_type(sk), ossl_check_ESS_CERT_ID_V2_compfunc_type(cmp))) + + +DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_ISSUER_SERIAL) +DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_ISSUER_SERIAL, ESS_ISSUER_SERIAL) +DECLARE_ASN1_DUP_FUNCTION(ESS_ISSUER_SERIAL) + +DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID) +DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID, ESS_CERT_ID) +DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID) + +DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT) +DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT) + +DECLARE_ASN1_ALLOC_FUNCTIONS(ESS_CERT_ID_V2) +DECLARE_ASN1_ENCODE_FUNCTIONS_only(ESS_CERT_ID_V2, ESS_CERT_ID_V2) +DECLARE_ASN1_DUP_FUNCTION(ESS_CERT_ID_V2) + +DECLARE_ASN1_FUNCTIONS(ESS_SIGNING_CERT_V2) +DECLARE_ASN1_DUP_FUNCTION(ESS_SIGNING_CERT_V2) + +ESS_SIGNING_CERT *OSSL_ESS_signing_cert_new_init(const X509 *signcert, + const STACK_OF(X509) *certs, + int set_issuer_serial); +ESS_SIGNING_CERT_V2 *OSSL_ESS_signing_cert_v2_new_init(const EVP_MD *hash_alg, + const X509 *signcert, + const + STACK_OF(X509) *certs, + int set_issuer_serial); +int OSSL_ESS_check_signing_certs(const ESS_SIGNING_CERT *ss, + const ESS_SIGNING_CERT_V2 *ssv2, + const STACK_OF(X509) *chain, + int require_signing_cert); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/fipskey.h b/clientapp/android/app/src/main/cpp/include/openssl/fipskey.h new file mode 100644 index 00000000..42ba014b --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/fipskey.h @@ -0,0 +1,36 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/fipskey.h.in + * + * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + +#ifndef OPENSSL_FIPSKEY_H +# define OPENSSL_FIPSKEY_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * The FIPS validation HMAC key, usable as an array initializer. + */ +#define FIPS_KEY_ELEMENTS \ + 0xf4, 0x55, 0x66, 0x50, 0xac, 0x31, 0xd3, 0x54, 0x61, 0x61, 0x0b, 0xac, 0x4e, 0xd8, 0x1b, 0x1a, 0x18, 0x1b, 0x2d, 0x8a, 0x43, 0xea, 0x28, 0x54, 0xcb, 0xae, 0x22, 0xca, 0x74, 0x56, 0x08, 0x13 + +/* + * The FIPS validation key, as a string. + */ +#define FIPS_KEY_STRING "f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813" + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/lhash.h b/clientapp/android/app/src/main/cpp/include/openssl/lhash.h new file mode 100644 index 00000000..62c55b20 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/lhash.h @@ -0,0 +1,398 @@ +/* + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +/* + * Header for dynamic hash table routines Author - Eric Young + */ + +#ifndef OPENSSL_LHASH_H +# define OPENSSL_LHASH_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_LHASH_H +# endif + +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct lhash_node_st OPENSSL_LH_NODE; +typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef int (*OPENSSL_LH_COMPFUNCTHUNK) (const void *, const void *, OPENSSL_LH_COMPFUNC cfn); +typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNCTHUNK) (const void *, OPENSSL_LH_HASHFUNC hfn); +typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNC_THUNK) (void *, OPENSSL_LH_DOALL_FUNC doall); +typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG_THUNK) (void *, void *, OPENSSL_LH_DOALL_FUNCARG doall); +typedef struct lhash_st OPENSSL_LHASH; + +/* + * Macros for declaring and implementing type-safe wrappers for LHASH + * callbacks. This way, callbacks can be provided to LHASH structures without + * function pointer casting and the macro-defined callbacks provide + * per-variable casting before deferring to the underlying type-specific + * callbacks. NB: It is possible to place a "static" in front of both the + * DECLARE and IMPLEMENT macros if the functions are strictly internal. + */ + +/* First: "hash" functions */ +# define DECLARE_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *); +# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ + unsigned long name##_LHASH_HASH(const void *arg) { \ + const o_type *a = arg; \ + return name##_hash(a); } +# define LHASH_HASH_FN(name) name##_LHASH_HASH + +/* Second: "compare" functions */ +# define DECLARE_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *, const void *); +# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ + int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ + const o_type *a = arg1; \ + const o_type *b = arg2; \ + return name##_cmp(a,b); } +# define LHASH_COMP_FN(name) name##_LHASH_COMP + +/* Fourth: "doall_arg" functions */ +# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *, void *); +# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ + void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ + o_type *a = arg1; \ + a_type *b = arg2; \ + name##_doall_arg(a, b); } +# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG + + +# define LH_LOAD_MULT 256 + +int OPENSSL_LH_error(OPENSSL_LHASH *lh); +OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +OPENSSL_LHASH *OPENSSL_LH_set_thunks(OPENSSL_LHASH *lh, + OPENSSL_LH_HASHFUNCTHUNK hw, + OPENSSL_LH_COMPFUNCTHUNK cw, + OPENSSL_LH_DOALL_FUNC_THUNK daw, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw); +void OPENSSL_LH_free(OPENSSL_LHASH *lh); +void OPENSSL_LH_flush(OPENSSL_LHASH *lh); +void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); +void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); +void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); +void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG func, void *arg); +void OPENSSL_LH_doall_arg_thunk(OPENSSL_LHASH *lh, + OPENSSL_LH_DOALL_FUNCARG_THUNK daaw, + OPENSSL_LH_DOALL_FUNCARG fn, void *arg); + +unsigned long OPENSSL_LH_strhash(const char *c); +unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); +unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); +void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); + +# ifndef OPENSSL_NO_STDIO +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_1 +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +OSSL_DEPRECATEDIN_3_1 void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +# endif + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define _LHASH OPENSSL_LHASH +# define LHASH_NODE OPENSSL_LH_NODE +# define lh_error OPENSSL_LH_error +# define lh_new OPENSSL_LH_new +# define lh_free OPENSSL_LH_free +# define lh_insert OPENSSL_LH_insert +# define lh_delete OPENSSL_LH_delete +# define lh_retrieve OPENSSL_LH_retrieve +# define lh_doall OPENSSL_LH_doall +# define lh_doall_arg OPENSSL_LH_doall_arg +# define lh_strhash OPENSSL_LH_strhash +# define lh_num_items OPENSSL_LH_num_items +# ifndef OPENSSL_NO_STDIO +# define lh_stats OPENSSL_LH_stats +# define lh_node_stats OPENSSL_LH_node_stats +# define lh_node_usage_stats OPENSSL_LH_node_usage_stats +# endif +# define lh_stats_bio OPENSSL_LH_stats_bio +# define lh_node_stats_bio OPENSSL_LH_node_stats_bio +# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio +# endif + +/* Type checking... */ + +# define LHASH_OF(type) struct lhash_st_##type + +/* Helper macro for internal use */ +# define DEFINE_LHASH_OF_INTERNAL(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + typedef int (*lh_##type##_compfunc)(const type *a, const type *b); \ + typedef unsigned long (*lh_##type##_hashfunc)(const type *a); \ + typedef void (*lh_##type##_doallfunc)(type *a); \ + static ossl_inline unsigned long lh_##type##_hash_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static ossl_inline int lh_##type##_comp_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_inline void lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_inline void lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline type *\ + ossl_check_##type##_lh_plain_type(type *ptr) \ + { \ + return ptr; \ + } \ + static ossl_unused ossl_inline const type * \ + ossl_check_const_##type##_lh_plain_type(const type *ptr) \ + { \ + return ptr; \ + } \ + static ossl_unused ossl_inline const OPENSSL_LHASH * \ + ossl_check_const_##type##_lh_type(const LHASH_OF(type) *lh) \ + { \ + return (const OPENSSL_LHASH *)lh; \ + } \ + static ossl_unused ossl_inline OPENSSL_LHASH * \ + ossl_check_##type##_lh_type(LHASH_OF(type) *lh) \ + { \ + return (OPENSSL_LHASH *)lh; \ + } \ + static ossl_unused ossl_inline OPENSSL_LH_COMPFUNC \ + ossl_check_##type##_lh_compfunc_type(lh_##type##_compfunc cmp) \ + { \ + return (OPENSSL_LH_COMPFUNC)cmp; \ + } \ + static ossl_unused ossl_inline OPENSSL_LH_HASHFUNC \ + ossl_check_##type##_lh_hashfunc_type(lh_##type##_hashfunc hfn) \ + { \ + return (OPENSSL_LH_HASHFUNC)hfn; \ + } \ + static ossl_unused ossl_inline OPENSSL_LH_DOALL_FUNC \ + ossl_check_##type##_lh_doallfunc_type(lh_##type##_doallfunc dfn) \ + { \ + return (OPENSSL_LH_DOALL_FUNC)dfn; \ + } \ + LHASH_OF(type) + +# ifndef OPENSSL_NO_DEPRECATED_3_1 +# define DEFINE_LHASH_OF_DEPRECATED(type) \ + static ossl_unused ossl_inline void \ + lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + { \ + OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ + } +# else +# define DEFINE_LHASH_OF_DEPRECATED(type) +# endif + +# define DEFINE_LHASH_OF_EX(type) \ + LHASH_OF(type) { \ + union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; \ + }; \ + static unsigned long \ + lh_##type##_hfn_thunk(const void *data, OPENSSL_LH_HASHFUNC hfn) \ + { \ + unsigned long (*hfn_conv)(const type *) = (unsigned long (*)(const type *))hfn; \ + return hfn_conv((const type *)data); \ + } \ + static int lh_##type##_cfn_thunk(const void *da, const void *db, OPENSSL_LH_COMPFUNC cfn) \ + { \ + int (*cfn_conv)(const type *, const type *) = (int (*)(const type *, const type *))cfn; \ + return cfn_conv((const type *)da, (const type *)db); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_free(LHASH_OF(type) *lh) \ + { \ + OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_flush(LHASH_OF(type) *lh) \ + { \ + OPENSSL_LH_flush((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline type * \ + lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + { \ + return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline type * \ + lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline type * \ + lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ + { \ + return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ + } \ + static ossl_unused ossl_inline int \ + lh_##type##_error(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_num_items(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline unsigned long \ + lh_##type##_get_down_load(LHASH_OF(type) *lh) \ + { \ + return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + { \ + OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_thunk(void *node, OPENSSL_LH_DOALL_FUNC doall) \ + { \ + void (*doall_conv)(type *) = (void (*)(type *))doall; \ + doall_conv((type *)node); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG doall) \ + { \ + void (*doall_conv)(type *, void *) = (void (*)(type *, void *))doall; \ + doall_conv((type *)node, arg); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) \ + { \ + OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ + } \ + static ossl_unused ossl_inline LHASH_OF(type) * \ + lh_##type##_new(unsigned long (*hfn)(const type *), \ + int (*cfn)(const type *, const type *)) \ + { \ + return (LHASH_OF(type) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn), \ + lh_##type##_hfn_thunk, lh_##type##_cfn_thunk, \ + lh_##type##_doall_thunk, \ + lh_##type##_doall_arg_thunk); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_arg(LHASH_OF(type) *lh, \ + void (*doallarg)(type *, void *), void *arg) \ + { \ + OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, \ + (OPENSSL_LH_DOALL_FUNCARG)doallarg, arg); \ + } \ + LHASH_OF(type) + +# define DEFINE_LHASH_OF(type) \ + DEFINE_LHASH_OF_EX(type); \ + DEFINE_LHASH_OF_DEPRECATED(type) \ + LHASH_OF(type) + +#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ + int_implement_lhash_doall(type, argtype, const type) + +#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ + int_implement_lhash_doall(type, argtype, type) + +#define int_implement_lhash_doall(type, argtype, cbargtype) \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype##_thunk(void *node, void *arg, OPENSSL_LH_DOALL_FUNCARG fn) \ + { \ + void (*fn_conv)(cbargtype *, argtype *) = (void (*)(cbargtype *, argtype *))fn; \ + fn_conv((cbargtype *)node, (argtype *)arg); \ + } \ + static ossl_unused ossl_inline void \ + lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ + void (*fn)(cbargtype *, argtype *), \ + argtype *arg) \ + { \ + OPENSSL_LH_doall_arg_thunk((OPENSSL_LHASH *)lh, \ + lh_##type##_doall_##argtype##_thunk, \ + (OPENSSL_LH_DOALL_FUNCARG)fn, \ + (void *)arg); \ + } \ + LHASH_OF(type) + +DEFINE_LHASH_OF_INTERNAL(OPENSSL_STRING); +#define lh_OPENSSL_STRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_STRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_STRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_STRING_lh_compfunc_type(cmp)), lh_OPENSSL_STRING_hash_thunk, lh_OPENSSL_STRING_comp_thunk, lh_OPENSSL_STRING_doall_thunk, lh_OPENSSL_STRING_doall_arg_thunk)) +#define lh_OPENSSL_STRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_STRING_lh_type(lh)) +#define lh_OPENSSL_STRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_STRING_lh_type(lh)) +#define lh_OPENSSL_STRING_insert(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_plain_type(ptr))) +#define lh_OPENSSL_STRING_delete(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) +#define lh_OPENSSL_STRING_retrieve(lh, ptr) ((OPENSSL_STRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_const_OPENSSL_STRING_lh_plain_type(ptr))) +#define lh_OPENSSL_STRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_STRING_lh_type(lh)) +#define lh_OPENSSL_STRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_STRING_lh_type(lh)) +#define lh_OPENSSL_STRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) +#define lh_OPENSSL_STRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) +#define lh_OPENSSL_STRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_STRING_lh_type(lh), out) +#define lh_OPENSSL_STRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_STRING_lh_type(lh)) +#define lh_OPENSSL_STRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_STRING_lh_type(lh), dl) +#define lh_OPENSSL_STRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_STRING_lh_type(lh), ossl_check_OPENSSL_STRING_lh_doallfunc_type(dfn)) +DEFINE_LHASH_OF_INTERNAL(OPENSSL_CSTRING); +#define lh_OPENSSL_CSTRING_new(hfn, cmp) ((LHASH_OF(OPENSSL_CSTRING) *)OPENSSL_LH_set_thunks(OPENSSL_LH_new(ossl_check_OPENSSL_CSTRING_lh_hashfunc_type(hfn), ossl_check_OPENSSL_CSTRING_lh_compfunc_type(cmp)), lh_OPENSSL_CSTRING_hash_thunk, lh_OPENSSL_CSTRING_comp_thunk, lh_OPENSSL_CSTRING_doall_thunk, lh_OPENSSL_CSTRING_doall_arg_thunk)) +#define lh_OPENSSL_CSTRING_free(lh) OPENSSL_LH_free(ossl_check_OPENSSL_CSTRING_lh_type(lh)) +#define lh_OPENSSL_CSTRING_flush(lh) OPENSSL_LH_flush(ossl_check_OPENSSL_CSTRING_lh_type(lh)) +#define lh_OPENSSL_CSTRING_insert(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_insert(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_plain_type(ptr))) +#define lh_OPENSSL_CSTRING_delete(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_delete(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) +#define lh_OPENSSL_CSTRING_retrieve(lh, ptr) ((OPENSSL_CSTRING *)OPENSSL_LH_retrieve(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_const_OPENSSL_CSTRING_lh_plain_type(ptr))) +#define lh_OPENSSL_CSTRING_error(lh) OPENSSL_LH_error(ossl_check_OPENSSL_CSTRING_lh_type(lh)) +#define lh_OPENSSL_CSTRING_num_items(lh) OPENSSL_LH_num_items(ossl_check_OPENSSL_CSTRING_lh_type(lh)) +#define lh_OPENSSL_CSTRING_node_stats_bio(lh, out) OPENSSL_LH_node_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) +#define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh, out) OPENSSL_LH_node_usage_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) +#define lh_OPENSSL_CSTRING_stats_bio(lh, out) OPENSSL_LH_stats_bio(ossl_check_const_OPENSSL_CSTRING_lh_type(lh), out) +#define lh_OPENSSL_CSTRING_get_down_load(lh) OPENSSL_LH_get_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh)) +#define lh_OPENSSL_CSTRING_set_down_load(lh, dl) OPENSSL_LH_set_down_load(ossl_check_OPENSSL_CSTRING_lh_type(lh), dl) +#define lh_OPENSSL_CSTRING_doall(lh, dfn) OPENSSL_LH_doall(ossl_check_OPENSSL_CSTRING_lh_type(lh), ossl_check_OPENSSL_CSTRING_lh_doallfunc_type(dfn)) + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/ocsp.h b/clientapp/android/app/src/main/cpp/include/openssl/ocsp.h new file mode 100644 index 00000000..142b1831 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/ocsp.h @@ -0,0 +1,483 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/ocsp.h.in + * + * Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_OCSP_H +# define OPENSSL_OCSP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_OCSP_H +# endif + +# include +# include +# include + +/* + * These definitions are outside the OPENSSL_NO_OCSP guard because although for + * historical reasons they have OCSP_* names, they can actually be used + * independently of OCSP. E.g. see RFC5280 + */ +/*- + * CRLReason ::= ENUMERATED { + * unspecified (0), + * keyCompromise (1), + * cACompromise (2), + * affiliationChanged (3), + * superseded (4), + * cessationOfOperation (5), + * certificateHold (6), + * -- value 7 is not used + * removeFromCRL (8), + * privilegeWithdrawn (9), + * aACompromise (10) } + */ +# define OCSP_REVOKED_STATUS_NOSTATUS -1 +# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 +# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 +# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 +# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 +# define OCSP_REVOKED_STATUS_SUPERSEDED 4 +# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 +# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 +# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 +# define OCSP_REVOKED_STATUS_PRIVILEGEWITHDRAWN 9 +# define OCSP_REVOKED_STATUS_AACOMPROMISE 10 + + +# ifndef OPENSSL_NO_OCSP + +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +/* Various flags and values */ + +# define OCSP_DEFAULT_NONCE_LENGTH 16 + +# define OCSP_NOCERTS 0x1 +# define OCSP_NOINTERN 0x2 +# define OCSP_NOSIGS 0x4 +# define OCSP_NOCHAIN 0x8 +# define OCSP_NOVERIFY 0x10 +# define OCSP_NOEXPLICIT 0x20 +# define OCSP_NOCASIGN 0x40 +# define OCSP_NODELEGATED 0x80 +# define OCSP_NOCHECKS 0x100 +# define OCSP_TRUSTOTHER 0x200 +# define OCSP_RESPID_KEY 0x400 +# define OCSP_NOTIME 0x800 +# define OCSP_PARTIAL_CHAIN 0x1000 + +typedef struct ocsp_cert_id_st OCSP_CERTID; +typedef struct ocsp_one_request_st OCSP_ONEREQ; +typedef struct ocsp_req_info_st OCSP_REQINFO; +typedef struct ocsp_signature_st OCSP_SIGNATURE; +typedef struct ocsp_request_st OCSP_REQUEST; + +SKM_DEFINE_STACK_OF_INTERNAL(OCSP_CERTID, OCSP_CERTID, OCSP_CERTID) +#define sk_OCSP_CERTID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_CERTID_sk_type(sk)) +#define sk_OCSP_CERTID_value(sk, idx) ((OCSP_CERTID *)OPENSSL_sk_value(ossl_check_const_OCSP_CERTID_sk_type(sk), (idx))) +#define sk_OCSP_CERTID_new(cmp) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new(ossl_check_OCSP_CERTID_compfunc_type(cmp))) +#define sk_OCSP_CERTID_new_null() ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_null()) +#define sk_OCSP_CERTID_new_reserve(cmp, n) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_CERTID_compfunc_type(cmp), (n))) +#define sk_OCSP_CERTID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_CERTID_sk_type(sk), (n)) +#define sk_OCSP_CERTID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_CERTID_sk_type(sk)) +#define sk_OCSP_CERTID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_CERTID_sk_type(sk)) +#define sk_OCSP_CERTID_delete(sk, i) ((OCSP_CERTID *)OPENSSL_sk_delete(ossl_check_OCSP_CERTID_sk_type(sk), (i))) +#define sk_OCSP_CERTID_delete_ptr(sk, ptr) ((OCSP_CERTID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr))) +#define sk_OCSP_CERTID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) +#define sk_OCSP_CERTID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) +#define sk_OCSP_CERTID_pop(sk) ((OCSP_CERTID *)OPENSSL_sk_pop(ossl_check_OCSP_CERTID_sk_type(sk))) +#define sk_OCSP_CERTID_shift(sk) ((OCSP_CERTID *)OPENSSL_sk_shift(ossl_check_OCSP_CERTID_sk_type(sk))) +#define sk_OCSP_CERTID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_CERTID_sk_type(sk),ossl_check_OCSP_CERTID_freefunc_type(freefunc)) +#define sk_OCSP_CERTID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), (idx)) +#define sk_OCSP_CERTID_set(sk, idx, ptr) ((OCSP_CERTID *)OPENSSL_sk_set(ossl_check_OCSP_CERTID_sk_type(sk), (idx), ossl_check_OCSP_CERTID_type(ptr))) +#define sk_OCSP_CERTID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) +#define sk_OCSP_CERTID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr)) +#define sk_OCSP_CERTID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_type(ptr), pnum) +#define sk_OCSP_CERTID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_CERTID_sk_type(sk)) +#define sk_OCSP_CERTID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_CERTID_sk_type(sk)) +#define sk_OCSP_CERTID_dup(sk) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_CERTID_sk_type(sk))) +#define sk_OCSP_CERTID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_CERTID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_copyfunc_type(copyfunc), ossl_check_OCSP_CERTID_freefunc_type(freefunc))) +#define sk_OCSP_CERTID_set_cmp_func(sk, cmp) ((sk_OCSP_CERTID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_CERTID_sk_type(sk), ossl_check_OCSP_CERTID_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(OCSP_ONEREQ, OCSP_ONEREQ, OCSP_ONEREQ) +#define sk_OCSP_ONEREQ_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) +#define sk_OCSP_ONEREQ_value(sk, idx) ((OCSP_ONEREQ *)OPENSSL_sk_value(ossl_check_const_OCSP_ONEREQ_sk_type(sk), (idx))) +#define sk_OCSP_ONEREQ_new(cmp) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new(ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) +#define sk_OCSP_ONEREQ_new_null() ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_null()) +#define sk_OCSP_ONEREQ_new_reserve(cmp, n) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_ONEREQ_compfunc_type(cmp), (n))) +#define sk_OCSP_ONEREQ_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_ONEREQ_sk_type(sk), (n)) +#define sk_OCSP_ONEREQ_free(sk) OPENSSL_sk_free(ossl_check_OCSP_ONEREQ_sk_type(sk)) +#define sk_OCSP_ONEREQ_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_ONEREQ_sk_type(sk)) +#define sk_OCSP_ONEREQ_delete(sk, i) ((OCSP_ONEREQ *)OPENSSL_sk_delete(ossl_check_OCSP_ONEREQ_sk_type(sk), (i))) +#define sk_OCSP_ONEREQ_delete_ptr(sk, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr))) +#define sk_OCSP_ONEREQ_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) +#define sk_OCSP_ONEREQ_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) +#define sk_OCSP_ONEREQ_pop(sk) ((OCSP_ONEREQ *)OPENSSL_sk_pop(ossl_check_OCSP_ONEREQ_sk_type(sk))) +#define sk_OCSP_ONEREQ_shift(sk) ((OCSP_ONEREQ *)OPENSSL_sk_shift(ossl_check_OCSP_ONEREQ_sk_type(sk))) +#define sk_OCSP_ONEREQ_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_ONEREQ_sk_type(sk),ossl_check_OCSP_ONEREQ_freefunc_type(freefunc)) +#define sk_OCSP_ONEREQ_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), (idx)) +#define sk_OCSP_ONEREQ_set(sk, idx, ptr) ((OCSP_ONEREQ *)OPENSSL_sk_set(ossl_check_OCSP_ONEREQ_sk_type(sk), (idx), ossl_check_OCSP_ONEREQ_type(ptr))) +#define sk_OCSP_ONEREQ_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) +#define sk_OCSP_ONEREQ_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr)) +#define sk_OCSP_ONEREQ_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_type(ptr), pnum) +#define sk_OCSP_ONEREQ_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_ONEREQ_sk_type(sk)) +#define sk_OCSP_ONEREQ_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_ONEREQ_sk_type(sk)) +#define sk_OCSP_ONEREQ_dup(sk) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_dup(ossl_check_const_OCSP_ONEREQ_sk_type(sk))) +#define sk_OCSP_ONEREQ_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_ONEREQ) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_copyfunc_type(copyfunc), ossl_check_OCSP_ONEREQ_freefunc_type(freefunc))) +#define sk_OCSP_ONEREQ_set_cmp_func(sk, cmp) ((sk_OCSP_ONEREQ_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_ONEREQ_sk_type(sk), ossl_check_OCSP_ONEREQ_compfunc_type(cmp))) + + +# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 +# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 +# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 +# define OCSP_RESPONSE_STATUS_TRYLATER 3 +# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 +# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 + +typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; + +# define V_OCSP_RESPID_NAME 0 +# define V_OCSP_RESPID_KEY 1 + +SKM_DEFINE_STACK_OF_INTERNAL(OCSP_RESPID, OCSP_RESPID, OCSP_RESPID) +#define sk_OCSP_RESPID_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_RESPID_sk_type(sk)) +#define sk_OCSP_RESPID_value(sk, idx) ((OCSP_RESPID *)OPENSSL_sk_value(ossl_check_const_OCSP_RESPID_sk_type(sk), (idx))) +#define sk_OCSP_RESPID_new(cmp) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new(ossl_check_OCSP_RESPID_compfunc_type(cmp))) +#define sk_OCSP_RESPID_new_null() ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_null()) +#define sk_OCSP_RESPID_new_reserve(cmp, n) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_RESPID_compfunc_type(cmp), (n))) +#define sk_OCSP_RESPID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_RESPID_sk_type(sk), (n)) +#define sk_OCSP_RESPID_free(sk) OPENSSL_sk_free(ossl_check_OCSP_RESPID_sk_type(sk)) +#define sk_OCSP_RESPID_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_RESPID_sk_type(sk)) +#define sk_OCSP_RESPID_delete(sk, i) ((OCSP_RESPID *)OPENSSL_sk_delete(ossl_check_OCSP_RESPID_sk_type(sk), (i))) +#define sk_OCSP_RESPID_delete_ptr(sk, ptr) ((OCSP_RESPID *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr))) +#define sk_OCSP_RESPID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) +#define sk_OCSP_RESPID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) +#define sk_OCSP_RESPID_pop(sk) ((OCSP_RESPID *)OPENSSL_sk_pop(ossl_check_OCSP_RESPID_sk_type(sk))) +#define sk_OCSP_RESPID_shift(sk) ((OCSP_RESPID *)OPENSSL_sk_shift(ossl_check_OCSP_RESPID_sk_type(sk))) +#define sk_OCSP_RESPID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_RESPID_sk_type(sk),ossl_check_OCSP_RESPID_freefunc_type(freefunc)) +#define sk_OCSP_RESPID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), (idx)) +#define sk_OCSP_RESPID_set(sk, idx, ptr) ((OCSP_RESPID *)OPENSSL_sk_set(ossl_check_OCSP_RESPID_sk_type(sk), (idx), ossl_check_OCSP_RESPID_type(ptr))) +#define sk_OCSP_RESPID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) +#define sk_OCSP_RESPID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr)) +#define sk_OCSP_RESPID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_type(ptr), pnum) +#define sk_OCSP_RESPID_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_RESPID_sk_type(sk)) +#define sk_OCSP_RESPID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_RESPID_sk_type(sk)) +#define sk_OCSP_RESPID_dup(sk) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_dup(ossl_check_const_OCSP_RESPID_sk_type(sk))) +#define sk_OCSP_RESPID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_RESPID) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_copyfunc_type(copyfunc), ossl_check_OCSP_RESPID_freefunc_type(freefunc))) +#define sk_OCSP_RESPID_set_cmp_func(sk, cmp) ((sk_OCSP_RESPID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_RESPID_sk_type(sk), ossl_check_OCSP_RESPID_compfunc_type(cmp))) + + +typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; + +# define V_OCSP_CERTSTATUS_GOOD 0 +# define V_OCSP_CERTSTATUS_REVOKED 1 +# define V_OCSP_CERTSTATUS_UNKNOWN 2 + +typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; +typedef struct ocsp_single_response_st OCSP_SINGLERESP; + +SKM_DEFINE_STACK_OF_INTERNAL(OCSP_SINGLERESP, OCSP_SINGLERESP, OCSP_SINGLERESP) +#define sk_OCSP_SINGLERESP_num(sk) OPENSSL_sk_num(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) +#define sk_OCSP_SINGLERESP_value(sk, idx) ((OCSP_SINGLERESP *)OPENSSL_sk_value(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), (idx))) +#define sk_OCSP_SINGLERESP_new(cmp) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) +#define sk_OCSP_SINGLERESP_new_null() ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_null()) +#define sk_OCSP_SINGLERESP_new_reserve(cmp, n) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_new_reserve(ossl_check_OCSP_SINGLERESP_compfunc_type(cmp), (n))) +#define sk_OCSP_SINGLERESP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OCSP_SINGLERESP_sk_type(sk), (n)) +#define sk_OCSP_SINGLERESP_free(sk) OPENSSL_sk_free(ossl_check_OCSP_SINGLERESP_sk_type(sk)) +#define sk_OCSP_SINGLERESP_zero(sk) OPENSSL_sk_zero(ossl_check_OCSP_SINGLERESP_sk_type(sk)) +#define sk_OCSP_SINGLERESP_delete(sk, i) ((OCSP_SINGLERESP *)OPENSSL_sk_delete(ossl_check_OCSP_SINGLERESP_sk_type(sk), (i))) +#define sk_OCSP_SINGLERESP_delete_ptr(sk, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_delete_ptr(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr))) +#define sk_OCSP_SINGLERESP_push(sk, ptr) OPENSSL_sk_push(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) +#define sk_OCSP_SINGLERESP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) +#define sk_OCSP_SINGLERESP_pop(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_pop(ossl_check_OCSP_SINGLERESP_sk_type(sk))) +#define sk_OCSP_SINGLERESP_shift(sk) ((OCSP_SINGLERESP *)OPENSSL_sk_shift(ossl_check_OCSP_SINGLERESP_sk_type(sk))) +#define sk_OCSP_SINGLERESP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OCSP_SINGLERESP_sk_type(sk),ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc)) +#define sk_OCSP_SINGLERESP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), (idx)) +#define sk_OCSP_SINGLERESP_set(sk, idx, ptr) ((OCSP_SINGLERESP *)OPENSSL_sk_set(ossl_check_OCSP_SINGLERESP_sk_type(sk), (idx), ossl_check_OCSP_SINGLERESP_type(ptr))) +#define sk_OCSP_SINGLERESP_find(sk, ptr) OPENSSL_sk_find(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) +#define sk_OCSP_SINGLERESP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr)) +#define sk_OCSP_SINGLERESP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_type(ptr), pnum) +#define sk_OCSP_SINGLERESP_sort(sk) OPENSSL_sk_sort(ossl_check_OCSP_SINGLERESP_sk_type(sk)) +#define sk_OCSP_SINGLERESP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OCSP_SINGLERESP_sk_type(sk)) +#define sk_OCSP_SINGLERESP_dup(sk) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_dup(ossl_check_const_OCSP_SINGLERESP_sk_type(sk))) +#define sk_OCSP_SINGLERESP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OCSP_SINGLERESP) *)OPENSSL_sk_deep_copy(ossl_check_const_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_copyfunc_type(copyfunc), ossl_check_OCSP_SINGLERESP_freefunc_type(freefunc))) +#define sk_OCSP_SINGLERESP_set_cmp_func(sk, cmp) ((sk_OCSP_SINGLERESP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OCSP_SINGLERESP_sk_type(sk), ossl_check_OCSP_SINGLERESP_compfunc_type(cmp))) + + +typedef struct ocsp_response_data_st OCSP_RESPDATA; + +typedef struct ocsp_basic_response_st OCSP_BASICRESP; + +typedef struct ocsp_crl_id_st OCSP_CRLID; +typedef struct ocsp_service_locator_st OCSP_SERVICELOC; + +# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" +# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" + +# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) + +# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) + +# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ + (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ + bp,(char **)(x),cb,NULL) + +# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb) (OCSP_RESPONSE *)PEM_ASN1_read_bio(\ + (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ + bp,(char **)(x),cb,NULL) + +# define PEM_write_bio_OCSP_REQUEST(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ + bp,(char *)(o), NULL,NULL,0,NULL,NULL) + +# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ + PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ + bp,(char *)(o), NULL,NULL,0,NULL,NULL) + +# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) + +# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) + +# define ASN1_BIT_STRING_digest(data,type,md,len) \ + ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) + +# define OCSP_CERTSTATUS_dup(cs)\ + (OCSP_CERTSTATUS*)ASN1_dup((i2d_of_void *)i2d_OCSP_CERTSTATUS,\ + (d2i_of_void *)d2i_OCSP_CERTSTATUS,(char *)(cs)) + +DECLARE_ASN1_DUP_FUNCTION(OCSP_CERTID) + +OSSL_HTTP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, + const OCSP_REQUEST *req, int buf_size); +OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +typedef OSSL_HTTP_REQ_CTX OCSP_REQ_CTX; +# define OCSP_REQ_CTX_new(io, buf_size) \ + OSSL_HTTP_REQ_CTX_new(io, io, buf_size) +# define OCSP_REQ_CTX_free OSSL_HTTP_REQ_CTX_free +# define OCSP_REQ_CTX_http(rctx, op, path) \ + (OSSL_HTTP_REQ_CTX_set_expected(rctx, NULL, 1 /* asn1 */, 0, 0) && \ + OSSL_HTTP_REQ_CTX_set_request_line(rctx, strcmp(op, "POST") == 0, \ + NULL, NULL, path)) +# define OCSP_REQ_CTX_add1_header OSSL_HTTP_REQ_CTX_add1_header +# define OCSP_REQ_CTX_i2d(r, it, req) \ + OSSL_HTTP_REQ_CTX_set1_req(r, "application/ocsp-request", it, req) +# define OCSP_REQ_CTX_set1_req(r, req) \ + OCSP_REQ_CTX_i2d(r, ASN1_ITEM_rptr(OCSP_REQUEST), (ASN1_VALUE *)(req)) +# define OCSP_REQ_CTX_nbio OSSL_HTTP_REQ_CTX_nbio +# define OCSP_REQ_CTX_nbio_d2i OSSL_HTTP_REQ_CTX_nbio_d2i +# define OCSP_sendreq_nbio(p, r) \ + OSSL_HTTP_REQ_CTX_nbio_d2i(r, (ASN1_VALUE **)(p), \ + ASN1_ITEM_rptr(OCSP_RESPONSE)) +# define OCSP_REQ_CTX_get0_mem_bio OSSL_HTTP_REQ_CTX_get0_mem_bio +# define OCSP_set_max_response_length OSSL_HTTP_REQ_CTX_set_max_response_length +# endif + +OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, + const X509 *issuer); + +OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, + const X509_NAME *issuerName, + const ASN1_BIT_STRING *issuerKey, + const ASN1_INTEGER *serialNumber); + +OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); + +int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); +int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); +int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); +int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); + +int OCSP_request_set1_name(OCSP_REQUEST *req, const X509_NAME *nm); +int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); + +int OCSP_request_sign(OCSP_REQUEST *req, + X509 *signer, + EVP_PKEY *key, + const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); + +int OCSP_response_status(OCSP_RESPONSE *resp); +OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); + +const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); +const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); +const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, + STACK_OF(X509) *extra_certs); + +int OCSP_resp_count(OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); +const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); +const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); +int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, + const ASN1_OCTET_STRING **pid, + const X509_NAME **pname); +int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, + ASN1_OCTET_STRING **pid, + X509_NAME **pname); + +int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); +int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, + int *reason, + ASN1_GENERALIZEDTIME **revtime, + ASN1_GENERALIZEDTIME **thisupd, + ASN1_GENERALIZEDTIME **nextupd); +int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, + ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); + +int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, + X509_STORE *store, unsigned long flags); + +# define OCSP_parse_url(url, host, port, path, ssl) \ + OSSL_HTTP_parse_url(url, ssl, NULL, host, port, NULL, path, NULL, NULL) + +int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); +int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); + +int OCSP_request_onereq_count(OCSP_REQUEST *req); +OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); +OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); +int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, + ASN1_OCTET_STRING **pikeyHash, + ASN1_INTEGER **pserial, OCSP_CERTID *cid); +int OCSP_request_is_signed(OCSP_REQUEST *req); +OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); +OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, + OCSP_CERTID *cid, + int status, int reason, + ASN1_TIME *revtime, + ASN1_TIME *thisupd, + ASN1_TIME *nextupd); +int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); +int OCSP_basic_sign(OCSP_BASICRESP *brsp, + X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, + STACK_OF(X509) *certs, unsigned long flags); +int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, + X509 *signer, EVP_MD_CTX *ctx, + STACK_OF(X509) *certs, unsigned long flags); +int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_set_by_key_ex(OCSP_RESPID *respid, X509 *cert, + OSSL_LIB_CTX *libctx, const char *propq); +int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); +int OCSP_RESPID_match_ex(OCSP_RESPID *respid, X509 *cert, OSSL_LIB_CTX *libctx, + const char *propq); +int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); + +X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); + +X509_EXTENSION *OCSP_accept_responses_new(char **oids); + +X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); + +X509_EXTENSION *OCSP_url_svcloc_new(const X509_NAME *issuer, const char **urls); + +int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); +int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); +int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); +X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); +X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); +void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, + int *idx); +int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); + +int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); +int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); +int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); +int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); +X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); +X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); +void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); +int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, + unsigned long flags); +int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); + +int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); +int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); +int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); +X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); +void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, + int *idx); +int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); + +int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); +int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); +int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, + int lastpos); +int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, + int lastpos); +X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); +X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); +void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, + int *idx); +int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, + int crit, unsigned long flags); +int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); +const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); + +DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) +DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) +DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) +DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) +DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) +DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) +DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) +DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) +DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) +DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) + +const char *OCSP_response_status_str(long s); +const char *OCSP_cert_status_str(long s); +const char *OCSP_crl_reason_str(long s); + +int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); +int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); + +int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, + X509_STORE *st, unsigned long flags); + + +# ifdef __cplusplus +} +# endif +# endif /* !defined(OPENSSL_NO_OCSP) */ +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/opensslv.h b/clientapp/android/app/src/main/cpp/include/openssl/opensslv.h new file mode 100644 index 00000000..35bce9e3 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/opensslv.h @@ -0,0 +1,114 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslv.h.in + * + * Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + +#ifndef OPENSSL_OPENSSLV_H +# define OPENSSL_OPENSSLV_H +# pragma once + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * SECTION 1: VERSION DATA. These will change for each release + */ + +/* + * Base version macros + * + * These macros express version number MAJOR.MINOR.PATCH exactly + */ +# define OPENSSL_VERSION_MAJOR 3 +# define OPENSSL_VERSION_MINOR 3 +# define OPENSSL_VERSION_PATCH 1 + +/* + * Additional version information + * + * These are also part of the new version scheme, but aren't part + * of the version number itself. + */ + +/* Could be: #define OPENSSL_VERSION_PRE_RELEASE "-alpha.1" */ +# define OPENSSL_VERSION_PRE_RELEASE "" +/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+fips" */ +/* Could be: #define OPENSSL_VERSION_BUILD_METADATA "+vendor.1" */ +# define OPENSSL_VERSION_BUILD_METADATA "" + +/* + * Note: The OpenSSL Project will never define OPENSSL_VERSION_BUILD_METADATA + * to be anything but the empty string. Its use is entirely reserved for + * others + */ + +/* + * Shared library version + * + * This is strictly to express ABI version, which may or may not + * be related to the API version expressed with the macros above. + * This is defined in free form. + */ +# define OPENSSL_SHLIB_VERSION 3 + +/* + * SECTION 2: USEFUL MACROS + */ + +/* For checking general API compatibility when preprocessing */ +# define OPENSSL_VERSION_PREREQ(maj,min) \ + ((OPENSSL_VERSION_MAJOR << 16) + OPENSSL_VERSION_MINOR >= ((maj) << 16) + (min)) + +/* + * Macros to get the version in easily digested string form, both the short + * "MAJOR.MINOR.PATCH" variant (where MAJOR, MINOR and PATCH are replaced + * with the values from the corresponding OPENSSL_VERSION_ macros) and the + * longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and + * OPENSSL_VERSION_BUILD_METADATA_STR appended. + */ +# define OPENSSL_VERSION_STR "3.3.1" +# define OPENSSL_FULL_VERSION_STR "3.3.1" + +/* + * SECTION 3: ADDITIONAL METADATA + * + * These strings are defined separately to allow them to be parsable. + */ +# define OPENSSL_RELEASE_DATE "4 Jun 2024" + +/* + * SECTION 4: BACKWARD COMPATIBILITY + */ + +# define OPENSSL_VERSION_TEXT "OpenSSL 3.3.1 4 Jun 2024" + +/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ +# ifdef OPENSSL_VERSION_PRE_RELEASE +# define _OPENSSL_VERSION_PRE_RELEASE 0x0L +# else +# define _OPENSSL_VERSION_PRE_RELEASE 0xfL +# endif +# define OPENSSL_VERSION_NUMBER \ + ( (OPENSSL_VERSION_MAJOR<<28) \ + |(OPENSSL_VERSION_MINOR<<20) \ + |(OPENSSL_VERSION_PATCH<<4) \ + |_OPENSSL_VERSION_PRE_RELEASE ) + +# ifdef __cplusplus +} +# endif + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_OPENSSLV_H +# endif + +#endif /* OPENSSL_OPENSSLV_H */ diff --git a/clientapp/android/app/src/main/cpp/include/openssl/pkcs12.h b/clientapp/android/app/src/main/cpp/include/openssl/pkcs12.h new file mode 100644 index 00000000..b08b0bc2 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/pkcs12.h @@ -0,0 +1,363 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/pkcs12.h.in + * + * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_PKCS12_H +# define OPENSSL_PKCS12_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_PKCS12_H +# endif + +# include +# include +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define PKCS12_KEY_ID 1 +# define PKCS12_IV_ID 2 +# define PKCS12_MAC_ID 3 + +/* Default iteration count */ +# ifndef PKCS12_DEFAULT_ITER +# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER +# endif + +# define PKCS12_MAC_KEY_LENGTH 20 + +/* The macro is expected to be used only internally. Kept for backwards compatibility. */ +# define PKCS12_SALT_LEN 8 + +/* It's not clear if these are actually needed... */ +# define PKCS12_key_gen PKCS12_key_gen_utf8 +# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 + +/* MS key usage constants */ + +# define KEY_EX 0x10 +# define KEY_SIG 0x80 + +typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; + +typedef struct PKCS12_st PKCS12; + +typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; + +SKM_DEFINE_STACK_OF_INTERNAL(PKCS12_SAFEBAG, PKCS12_SAFEBAG, PKCS12_SAFEBAG) +#define sk_PKCS12_SAFEBAG_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) +#define sk_PKCS12_SAFEBAG_value(sk, idx) ((PKCS12_SAFEBAG *)OPENSSL_sk_value(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), (idx))) +#define sk_PKCS12_SAFEBAG_new(cmp) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) +#define sk_PKCS12_SAFEBAG_new_null() ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_null()) +#define sk_PKCS12_SAFEBAG_new_reserve(cmp, n) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_new_reserve(ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp), (n))) +#define sk_PKCS12_SAFEBAG_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (n)) +#define sk_PKCS12_SAFEBAG_free(sk) OPENSSL_sk_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) +#define sk_PKCS12_SAFEBAG_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) +#define sk_PKCS12_SAFEBAG_delete(sk, i) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (i))) +#define sk_PKCS12_SAFEBAG_delete_ptr(sk, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_delete_ptr(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr))) +#define sk_PKCS12_SAFEBAG_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) +#define sk_PKCS12_SAFEBAG_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) +#define sk_PKCS12_SAFEBAG_pop(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_pop(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) +#define sk_PKCS12_SAFEBAG_shift(sk) ((PKCS12_SAFEBAG *)OPENSSL_sk_shift(ossl_check_PKCS12_SAFEBAG_sk_type(sk))) +#define sk_PKCS12_SAFEBAG_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS12_SAFEBAG_sk_type(sk),ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc)) +#define sk_PKCS12_SAFEBAG_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), (idx)) +#define sk_PKCS12_SAFEBAG_set(sk, idx, ptr) ((PKCS12_SAFEBAG *)OPENSSL_sk_set(ossl_check_PKCS12_SAFEBAG_sk_type(sk), (idx), ossl_check_PKCS12_SAFEBAG_type(ptr))) +#define sk_PKCS12_SAFEBAG_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) +#define sk_PKCS12_SAFEBAG_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr)) +#define sk_PKCS12_SAFEBAG_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_type(ptr), pnum) +#define sk_PKCS12_SAFEBAG_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS12_SAFEBAG_sk_type(sk)) +#define sk_PKCS12_SAFEBAG_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk)) +#define sk_PKCS12_SAFEBAG_dup(sk) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_dup(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk))) +#define sk_PKCS12_SAFEBAG_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS12_SAFEBAG) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_copyfunc_type(copyfunc), ossl_check_PKCS12_SAFEBAG_freefunc_type(freefunc))) +#define sk_PKCS12_SAFEBAG_set_cmp_func(sk, cmp) ((sk_PKCS12_SAFEBAG_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS12_SAFEBAG_sk_type(sk), ossl_check_PKCS12_SAFEBAG_compfunc_type(cmp))) + + +typedef struct pkcs12_bag_st PKCS12_BAGS; + +# define PKCS12_ERROR 0 +# define PKCS12_OK 1 + +/* Compatibility macros */ + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 + +# define M_PKCS12_bag_type PKCS12_bag_type +# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type +# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type + +# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert +# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl +# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid +# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid +# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert +# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl +# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf +# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt + +#endif +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, + int attr_nid); +#endif + +ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); +int PKCS12_mac_present(const PKCS12 *p12); +void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, + const X509_ALGOR **pmacalg, + const ASN1_OCTET_STRING **psalt, + const ASN1_INTEGER **piter, + const PKCS12 *p12); + +const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, + int attr_nid); +const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); +int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); +const ASN1_TYPE *PKCS12_SAFEBAG_get0_bag_obj(const PKCS12_SAFEBAG *bag); +const ASN1_OBJECT *PKCS12_SAFEBAG_get0_bag_type(const PKCS12_SAFEBAG *bag); + +X509 *PKCS12_SAFEBAG_get1_cert_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); +X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); +X509_CRL *PKCS12_SAFEBAG_get1_crl_ex(const PKCS12_SAFEBAG *bag, OSSL_LIB_CTX *libctx, const char *propq); +X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); +const STACK_OF(PKCS12_SAFEBAG) * +PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); +const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); +const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); + +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype, const unsigned char *value, int len); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, + const char *pass, + int passlen, + unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8inf); +PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid, + const char *pass, + int passlen, + unsigned char *salt, + int saltlen, int iter, + PKCS8_PRIV_KEY_INFO *p8inf, + OSSL_LIB_CTX *ctx, + const char *propq); + +PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, + int nid1, int nid2); +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, + int passlen); +PKCS8_PRIV_KEY_INFO *PKCS8_decrypt_ex(const X509_SIG *p8, const char *pass, + int passlen, OSSL_LIB_CTX *ctx, + const char *propq); +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, + const char *pass, int passlen); +PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey_ex(const PKCS12_SAFEBAG *bag, + const char *pass, int passlen, + OSSL_LIB_CTX *ctx, + const char *propq); +X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, + const char *pass, int passlen, unsigned char *salt, + int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); +X509_SIG *PKCS8_encrypt_ex(int pbe_nid, const EVP_CIPHER *cipher, + const char *pass, int passlen, unsigned char *salt, + int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8, + OSSL_LIB_CTX *ctx, const char *propq); +X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, + PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); +X509_SIG *PKCS8_set0_pbe_ex(const char *pass, int passlen, + PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe, + OSSL_LIB_CTX *ctx, const char *propq); +PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); +PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + STACK_OF(PKCS12_SAFEBAG) *bags); +PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + STACK_OF(PKCS12_SAFEBAG) *bags, + OSSL_LIB_CTX *ctx, const char *propq); + +STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, + int passlen); + +int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); +STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); + +int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, + int namelen); +int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, + int namelen); +int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, + const unsigned char *name, int namelen); +int PKCS12_add1_attr_by_NID(PKCS12_SAFEBAG *bag, int nid, int type, + const unsigned char *bytes, int len); +int PKCS12_add1_attr_by_txt(PKCS12_SAFEBAG *bag, const char *attrname, int type, + const unsigned char *bytes, int len); +int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); +ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, + int attr_nid); +char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); +const STACK_OF(X509_ATTRIBUTE) * +PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); +void PKCS12_SAFEBAG_set0_attrs(PKCS12_SAFEBAG *bag, STACK_OF(X509_ATTRIBUTE) *attrs); +unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, + const char *pass, int passlen, + const unsigned char *in, int inlen, + unsigned char **data, int *datalen, + int en_de); +unsigned char *PKCS12_pbe_crypt_ex(const X509_ALGOR *algor, + const char *pass, int passlen, + const unsigned char *in, int inlen, + unsigned char **data, int *datalen, + int en_de, OSSL_LIB_CTX *libctx, + const char *propq); +void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, + const char *pass, int passlen, + const ASN1_OCTET_STRING *oct, int zbuf); +void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it, + const char *pass, int passlen, + const ASN1_OCTET_STRING *oct, int zbuf, + OSSL_LIB_CTX *libctx, + const char *propq); +ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, + const ASN1_ITEM *it, + const char *pass, int passlen, + void *obj, int zbuf); +ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor, + const ASN1_ITEM *it, + const char *pass, int passlen, + void *obj, int zbuf, + OSSL_LIB_CTX *ctx, + const char *propq); +PKCS12 *PKCS12_init(int mode); +PKCS12 *PKCS12_init_ex(int mode, OSSL_LIB_CTX *ctx, const char *propq); + +int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_asc_ex(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type, + OSSL_LIB_CTX *ctx, const char *propq); +int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_uni_ex(unsigned char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type, + OSSL_LIB_CTX *ctx, const char *propq); +int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type); +int PKCS12_key_gen_utf8_ex(const char *pass, int passlen, unsigned char *salt, + int saltlen, int id, int iter, int n, + unsigned char *out, const EVP_MD *md_type, + OSSL_LIB_CTX *ctx, const char *propq); + +int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md_type, int en_de); +int PKCS12_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md_type, int en_de, + OSSL_LIB_CTX *libctx, const char *propq); +int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *mac, unsigned int *maclen); +int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); +int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, + unsigned char *salt, int saltlen, int iter, + const EVP_MD *md_type); +int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, + int saltlen, const EVP_MD *md_type); +unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); +unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, + unsigned char **uni, int *unilen); +char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); + +DECLARE_ASN1_FUNCTIONS(PKCS12) +DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) +DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) +DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) + +DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) +DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) + +void PKCS12_PBE_add(void); +int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, + STACK_OF(X509) **ca); +typedef int PKCS12_create_cb(PKCS12_SAFEBAG *bag, void *cbarg); +PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype); +PKCS12 *PKCS12_create_ex(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq); +PKCS12 *PKCS12_create_ex2(const char *pass, const char *name, EVP_PKEY *pkey, + X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, + int iter, int mac_iter, int keytype, + OSSL_LIB_CTX *ctx, const char *propq, + PKCS12_create_cb *cb, void *cbarg); + +PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); +PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, + EVP_PKEY *key, int key_usage, int iter, + int key_nid, const char *pass); +PKCS12_SAFEBAG *PKCS12_add_key_ex(STACK_OF(PKCS12_SAFEBAG) **pbags, + EVP_PKEY *key, int key_usage, int iter, + int key_nid, const char *pass, + OSSL_LIB_CTX *ctx, const char *propq); + +PKCS12_SAFEBAG *PKCS12_add_secret(STACK_OF(PKCS12_SAFEBAG) **pbags, + int nid_type, const unsigned char *value, int len); +int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, + int safe_nid, int iter, const char *pass); +int PKCS12_add_safe_ex(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, + int safe_nid, int iter, const char *pass, + OSSL_LIB_CTX *ctx, const char *propq); + +PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); +PKCS12 *PKCS12_add_safes_ex(STACK_OF(PKCS7) *safes, int p7_nid, + OSSL_LIB_CTX *ctx, const char *propq); + +int i2d_PKCS12_bio(BIO *bp, const PKCS12 *p12); +# ifndef OPENSSL_NO_STDIO +int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12); +# endif +PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); +# ifndef OPENSSL_NO_STDIO +PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); +# endif +int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/pkcs7.h b/clientapp/android/app/src/main/cpp/include/openssl/pkcs7.h new file mode 100644 index 00000000..fa68462a --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/pkcs7.h @@ -0,0 +1,430 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/pkcs7.h.in + * + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_PKCS7_H +# define OPENSSL_PKCS7_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_PKCS7_H +# endif + +# include +# include +# include + +# include +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/*- +Encryption_ID DES-CBC +Digest_ID MD5 +Digest_Encryption_ID rsaEncryption +Key_Encryption_ID rsaEncryption +*/ + +typedef struct PKCS7_CTX_st { + OSSL_LIB_CTX *libctx; + char *propq; +} PKCS7_CTX; + +typedef struct pkcs7_issuer_and_serial_st { + X509_NAME *issuer; + ASN1_INTEGER *serial; +} PKCS7_ISSUER_AND_SERIAL; + +typedef struct pkcs7_signer_info_st { + ASN1_INTEGER *version; /* version 1 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *digest_alg; + STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ + X509_ALGOR *digest_enc_alg; /* confusing name, actually used for signing */ + ASN1_OCTET_STRING *enc_digest; /* confusing name, actually signature */ + STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ + /* The private key to sign with */ + EVP_PKEY *pkey; + const PKCS7_CTX *ctx; +} PKCS7_SIGNER_INFO; +SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) +#define sk_PKCS7_SIGNER_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) +#define sk_PKCS7_SIGNER_INFO_value(sk, idx) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), (idx))) +#define sk_PKCS7_SIGNER_INFO_new(cmp) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) +#define sk_PKCS7_SIGNER_INFO_new_null() ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_null()) +#define sk_PKCS7_SIGNER_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp), (n))) +#define sk_PKCS7_SIGNER_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (n)) +#define sk_PKCS7_SIGNER_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) +#define sk_PKCS7_SIGNER_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) +#define sk_PKCS7_SIGNER_INFO_delete(sk, i) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (i))) +#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) +#define sk_PKCS7_SIGNER_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) +#define sk_PKCS7_SIGNER_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) +#define sk_PKCS7_SIGNER_INFO_pop(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) +#define sk_PKCS7_SIGNER_INFO_shift(sk) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk))) +#define sk_PKCS7_SIGNER_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk),ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc)) +#define sk_PKCS7_SIGNER_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), (idx)) +#define sk_PKCS7_SIGNER_INFO_set(sk, idx, ptr) ((PKCS7_SIGNER_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), (idx), ossl_check_PKCS7_SIGNER_INFO_type(ptr))) +#define sk_PKCS7_SIGNER_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) +#define sk_PKCS7_SIGNER_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr)) +#define sk_PKCS7_SIGNER_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_type(ptr), pnum) +#define sk_PKCS7_SIGNER_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk)) +#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk)) +#define sk_PKCS7_SIGNER_INFO_dup(sk) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk))) +#define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_SIGNER_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_SIGNER_INFO_freefunc_type(freefunc))) +#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_SIGNER_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_SIGNER_INFO_sk_type(sk), ossl_check_PKCS7_SIGNER_INFO_compfunc_type(cmp))) + + +typedef struct pkcs7_recip_info_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *key_enc_algor; + ASN1_OCTET_STRING *enc_key; + X509 *cert; /* get the pub-key from this */ + const PKCS7_CTX *ctx; +} PKCS7_RECIP_INFO; +SKM_DEFINE_STACK_OF_INTERNAL(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) +#define sk_PKCS7_RECIP_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) +#define sk_PKCS7_RECIP_INFO_value(sk, idx) ((PKCS7_RECIP_INFO *)OPENSSL_sk_value(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), (idx))) +#define sk_PKCS7_RECIP_INFO_new(cmp) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) +#define sk_PKCS7_RECIP_INFO_new_null() ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_null()) +#define sk_PKCS7_RECIP_INFO_new_reserve(cmp, n) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp), (n))) +#define sk_PKCS7_RECIP_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (n)) +#define sk_PKCS7_RECIP_INFO_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) +#define sk_PKCS7_RECIP_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) +#define sk_PKCS7_RECIP_INFO_delete(sk, i) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (i))) +#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr))) +#define sk_PKCS7_RECIP_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) +#define sk_PKCS7_RECIP_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) +#define sk_PKCS7_RECIP_INFO_pop(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_pop(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) +#define sk_PKCS7_RECIP_INFO_shift(sk) ((PKCS7_RECIP_INFO *)OPENSSL_sk_shift(ossl_check_PKCS7_RECIP_INFO_sk_type(sk))) +#define sk_PKCS7_RECIP_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_RECIP_INFO_sk_type(sk),ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc)) +#define sk_PKCS7_RECIP_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), (idx)) +#define sk_PKCS7_RECIP_INFO_set(sk, idx, ptr) ((PKCS7_RECIP_INFO *)OPENSSL_sk_set(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), (idx), ossl_check_PKCS7_RECIP_INFO_type(ptr))) +#define sk_PKCS7_RECIP_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) +#define sk_PKCS7_RECIP_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr)) +#define sk_PKCS7_RECIP_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_type(ptr), pnum) +#define sk_PKCS7_RECIP_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_RECIP_INFO_sk_type(sk)) +#define sk_PKCS7_RECIP_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk)) +#define sk_PKCS7_RECIP_INFO_dup(sk) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk))) +#define sk_PKCS7_RECIP_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7_RECIP_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_copyfunc_type(copyfunc), ossl_check_PKCS7_RECIP_INFO_freefunc_type(freefunc))) +#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, cmp) ((sk_PKCS7_RECIP_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_RECIP_INFO_sk_type(sk), ossl_check_PKCS7_RECIP_INFO_compfunc_type(cmp))) + + + +typedef struct pkcs7_signed_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + struct pkcs7_st *contents; +} PKCS7_SIGNED; +/* + * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about + * merging the two + */ + +typedef struct pkcs7_enc_content_st { + ASN1_OBJECT *content_type; + X509_ALGOR *algorithm; + ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ + const EVP_CIPHER *cipher; + const PKCS7_CTX *ctx; +} PKCS7_ENC_CONTENT; + +typedef struct pkcs7_enveloped_st { + ASN1_INTEGER *version; /* version 0 */ + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENVELOPE; + +typedef struct pkcs7_signedandenveloped_st { + ASN1_INTEGER *version; /* version 1 */ + STACK_OF(X509_ALGOR) *md_algs; /* md used */ + STACK_OF(X509) *cert; /* [ 0 ] */ /* name should be 'certificates' */ + STACK_OF(X509_CRL) *crl; /* [ 1 ] */ /* name should be 'crls' */ + STACK_OF(PKCS7_SIGNER_INFO) *signer_info; + PKCS7_ENC_CONTENT *enc_data; + STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; +} PKCS7_SIGN_ENVELOPE; + +typedef struct pkcs7_digest_st { + ASN1_INTEGER *version; /* version 0 */ + X509_ALGOR *md; /* md used */ + struct pkcs7_st *contents; + ASN1_OCTET_STRING *digest; +} PKCS7_DIGEST; + +typedef struct pkcs7_encrypted_st { + ASN1_INTEGER *version; /* version 0 */ + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENCRYPT; + +typedef struct pkcs7_st { + /* + * The following is non NULL if it contains ASN1 encoding of this + * structure + */ + unsigned char *asn1; + long length; +# define PKCS7_S_HEADER 0 +# define PKCS7_S_BODY 1 +# define PKCS7_S_TAIL 2 + int state; /* used during processing */ + int detached; + ASN1_OBJECT *type; + /* content as defined by the type */ + /* + * all encryption/message digests are applied to the 'contents', leaving + * out the 'type' field. + */ + union { + char *ptr; + /* NID_pkcs7_data */ + ASN1_OCTET_STRING *data; + /* NID_pkcs7_signed */ + PKCS7_SIGNED *sign; /* field name 'signed' would clash with C keyword */ + /* NID_pkcs7_enveloped */ + PKCS7_ENVELOPE *enveloped; + /* NID_pkcs7_signedAndEnveloped */ + PKCS7_SIGN_ENVELOPE *signed_and_enveloped; + /* NID_pkcs7_digest */ + PKCS7_DIGEST *digest; + /* NID_pkcs7_encrypted */ + PKCS7_ENCRYPT *encrypted; + /* Anything else */ + ASN1_TYPE *other; + } d; + PKCS7_CTX ctx; +} PKCS7; +SKM_DEFINE_STACK_OF_INTERNAL(PKCS7, PKCS7, PKCS7) +#define sk_PKCS7_num(sk) OPENSSL_sk_num(ossl_check_const_PKCS7_sk_type(sk)) +#define sk_PKCS7_value(sk, idx) ((PKCS7 *)OPENSSL_sk_value(ossl_check_const_PKCS7_sk_type(sk), (idx))) +#define sk_PKCS7_new(cmp) ((STACK_OF(PKCS7) *)OPENSSL_sk_new(ossl_check_PKCS7_compfunc_type(cmp))) +#define sk_PKCS7_new_null() ((STACK_OF(PKCS7) *)OPENSSL_sk_new_null()) +#define sk_PKCS7_new_reserve(cmp, n) ((STACK_OF(PKCS7) *)OPENSSL_sk_new_reserve(ossl_check_PKCS7_compfunc_type(cmp), (n))) +#define sk_PKCS7_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PKCS7_sk_type(sk), (n)) +#define sk_PKCS7_free(sk) OPENSSL_sk_free(ossl_check_PKCS7_sk_type(sk)) +#define sk_PKCS7_zero(sk) OPENSSL_sk_zero(ossl_check_PKCS7_sk_type(sk)) +#define sk_PKCS7_delete(sk, i) ((PKCS7 *)OPENSSL_sk_delete(ossl_check_PKCS7_sk_type(sk), (i))) +#define sk_PKCS7_delete_ptr(sk, ptr) ((PKCS7 *)OPENSSL_sk_delete_ptr(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr))) +#define sk_PKCS7_push(sk, ptr) OPENSSL_sk_push(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) +#define sk_PKCS7_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) +#define sk_PKCS7_pop(sk) ((PKCS7 *)OPENSSL_sk_pop(ossl_check_PKCS7_sk_type(sk))) +#define sk_PKCS7_shift(sk) ((PKCS7 *)OPENSSL_sk_shift(ossl_check_PKCS7_sk_type(sk))) +#define sk_PKCS7_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PKCS7_sk_type(sk),ossl_check_PKCS7_freefunc_type(freefunc)) +#define sk_PKCS7_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), (idx)) +#define sk_PKCS7_set(sk, idx, ptr) ((PKCS7 *)OPENSSL_sk_set(ossl_check_PKCS7_sk_type(sk), (idx), ossl_check_PKCS7_type(ptr))) +#define sk_PKCS7_find(sk, ptr) OPENSSL_sk_find(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) +#define sk_PKCS7_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr)) +#define sk_PKCS7_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_type(ptr), pnum) +#define sk_PKCS7_sort(sk) OPENSSL_sk_sort(ossl_check_PKCS7_sk_type(sk)) +#define sk_PKCS7_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PKCS7_sk_type(sk)) +#define sk_PKCS7_dup(sk) ((STACK_OF(PKCS7) *)OPENSSL_sk_dup(ossl_check_const_PKCS7_sk_type(sk))) +#define sk_PKCS7_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PKCS7) *)OPENSSL_sk_deep_copy(ossl_check_const_PKCS7_sk_type(sk), ossl_check_PKCS7_copyfunc_type(copyfunc), ossl_check_PKCS7_freefunc_type(freefunc))) +#define sk_PKCS7_set_cmp_func(sk, cmp) ((sk_PKCS7_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PKCS7_sk_type(sk), ossl_check_PKCS7_compfunc_type(cmp))) + + + +# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 +# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 + +# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) +# define PKCS7_get_attributes(si) ((si)->unauth_attr) + +# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) +# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) +# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) +# define PKCS7_type_is_signedAndEnveloped(a) \ + (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) +# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) +# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) + +# define PKCS7_set_detached(p,v) \ + PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) +# define PKCS7_get_detached(p) \ + PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) + +# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) + +/* S/MIME related flags */ + +# define PKCS7_TEXT 0x1 +# define PKCS7_NOCERTS 0x2 +# define PKCS7_NOSIGS 0x4 +# define PKCS7_NOCHAIN 0x8 +# define PKCS7_NOINTERN 0x10 +# define PKCS7_NOVERIFY 0x20 +# define PKCS7_DETACHED 0x40 +# define PKCS7_BINARY 0x80 +# define PKCS7_NOATTR 0x100 +# define PKCS7_NOSMIMECAP 0x200 +# define PKCS7_NOOLDMIMETYPE 0x400 +# define PKCS7_CRLFEOL 0x800 +# define PKCS7_STREAM 0x1000 +# define PKCS7_NOCRL 0x2000 +# define PKCS7_PARTIAL 0x4000 +# define PKCS7_REUSE_DIGEST 0x8000 +# define PKCS7_NO_DUAL_CONTENT 0x10000 + +/* Flags: for compatibility with older code */ + +# define SMIME_TEXT PKCS7_TEXT +# define SMIME_NOCERTS PKCS7_NOCERTS +# define SMIME_NOSIGS PKCS7_NOSIGS +# define SMIME_NOCHAIN PKCS7_NOCHAIN +# define SMIME_NOINTERN PKCS7_NOINTERN +# define SMIME_NOVERIFY PKCS7_NOVERIFY +# define SMIME_DETACHED PKCS7_DETACHED +# define SMIME_BINARY PKCS7_BINARY +# define SMIME_NOATTR PKCS7_NOATTR + +/* CRLF ASCII canonicalisation */ +# define SMIME_ASCIICRLF 0x80000 + +DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) + +int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, + const EVP_MD *type, unsigned char *md, + unsigned int *len); +# ifndef OPENSSL_NO_STDIO +PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); +int i2d_PKCS7_fp(FILE *fp, const PKCS7 *p7); +# endif +DECLARE_ASN1_DUP_FUNCTION(PKCS7) +PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); +int i2d_PKCS7_bio(BIO *bp, const PKCS7 *p7); +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); + +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) +DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) +DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) +DECLARE_ASN1_FUNCTIONS(PKCS7) +PKCS7 *PKCS7_new_ex(OSSL_LIB_CTX *libctx, const char *propq); + +DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) +DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) + +DECLARE_ASN1_NDEF_FUNCTION(PKCS7) +DECLARE_ASN1_PRINT_FUNCTION(PKCS7) + +long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); + +int PKCS7_type_is_other(PKCS7 *p7); +int PKCS7_set_type(PKCS7 *p7, int type); +int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); +int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); +int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, + const EVP_MD *dgst); +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); +int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); +int PKCS7_add_certificate(PKCS7 *p7, X509 *cert); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl); +int PKCS7_content_new(PKCS7 *p7, int nid); +int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, + BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, + X509 *signer); + +BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); +int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); +BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); + +PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, + EVP_PKEY *pkey, const EVP_MD *dgst); +X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); +STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); + +PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, + X509_ALGOR **pdig, X509_ALGOR **psig); +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); +int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); +int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); +int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); + +PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); +ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); +ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, + void *data); +int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, + void *value); +ASN1_TYPE *PKCS7_get_attribute(const PKCS7_SIGNER_INFO *si, int nid); +ASN1_TYPE *PKCS7_get_signed_attribute(const PKCS7_SIGNER_INFO *si, int nid); +int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); +int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, + STACK_OF(X509_ATTRIBUTE) *sk); + +PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, + BIO *data, int flags); +PKCS7 *PKCS7_sign_ex(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, + BIO *data, int flags, OSSL_LIB_CTX *libctx, + const char *propq); + +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, + X509 *signcert, EVP_PKEY *pkey, + const EVP_MD *md, int flags); + +int PKCS7_final(PKCS7 *p7, BIO *data, int flags); +int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, + BIO *indata, BIO *out, int flags); +STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, + int flags); +PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, + int flags); +PKCS7 *PKCS7_encrypt_ex(STACK_OF(X509) *certs, BIO *in, + const EVP_CIPHER *cipher, int flags, + OSSL_LIB_CTX *libctx, const char *propq); +int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, + int flags); + +int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, + STACK_OF(X509_ALGOR) *cap); +STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); +int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); + +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, + const unsigned char *md, int mdlen); + +int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); +PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7); +PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); + +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/safestack.h b/clientapp/android/app/src/main/cpp/include/openssl/safestack.h new file mode 100644 index 00000000..0499700b --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/safestack.h @@ -0,0 +1,297 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/safestack.h.in + * + * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_SAFESTACK_H +# define OPENSSL_SAFESTACK_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_SAFESTACK_H +# endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define STACK_OF(type) struct stack_st_##type + +/* Helper macro for internal use */ +# define SKM_DEFINE_STACK_OF_INTERNAL(t1, t2, t3) \ + STACK_OF(t1); \ + typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ + typedef void (*sk_##t1##_freefunc)(t3 *a); \ + typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ + static ossl_unused ossl_inline t2 *ossl_check_##t1##_type(t2 *ptr) \ + { \ + return ptr; \ + } \ + static ossl_unused ossl_inline const OPENSSL_STACK *ossl_check_const_##t1##_sk_type(const STACK_OF(t1) *sk) \ + { \ + return (const OPENSSL_STACK *)sk; \ + } \ + static ossl_unused ossl_inline OPENSSL_STACK *ossl_check_##t1##_sk_type(STACK_OF(t1) *sk) \ + { \ + return (OPENSSL_STACK *)sk; \ + } \ + static ossl_unused ossl_inline OPENSSL_sk_compfunc ossl_check_##t1##_compfunc_type(sk_##t1##_compfunc cmp) \ + { \ + return (OPENSSL_sk_compfunc)cmp; \ + } \ + static ossl_unused ossl_inline OPENSSL_sk_copyfunc ossl_check_##t1##_copyfunc_type(sk_##t1##_copyfunc cpy) \ + { \ + return (OPENSSL_sk_copyfunc)cpy; \ + } \ + static ossl_unused ossl_inline OPENSSL_sk_freefunc ossl_check_##t1##_freefunc_type(sk_##t1##_freefunc fr) \ + { \ + return (OPENSSL_sk_freefunc)fr; \ + } + +# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ + STACK_OF(t1); \ + typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ + typedef void (*sk_##t1##_freefunc)(t3 *a); \ + typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ + static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ + { \ + return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ + { \ + return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ + { \ + return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_free((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ + { \ + return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ + (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ + { \ + return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ + { \ + OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ + { \ + return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ + } \ + static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ + { \ + return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ + { \ + return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_find_all(STACK_OF(t1) *sk, t2 *ptr, int *pnum) \ + { \ + return OPENSSL_sk_find_all((OPENSSL_STACK *)sk, (const void *)ptr, pnum); \ + } \ + static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ + { \ + OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ + { \ + return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ + } \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ + sk_##t1##_copyfunc copyfunc, \ + sk_##t1##_freefunc freefunc) \ + { \ + return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ + (OPENSSL_sk_copyfunc)copyfunc, \ + (OPENSSL_sk_freefunc)freefunc); \ + } \ + static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ + { \ + return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ + } + +# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) +# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) +# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) +# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ + SKM_DEFINE_STACK_OF(t1, const t2, t2) + +/*- + * Strings are special: normally an lhash entry will point to a single + * (somewhat) mutable object. In the case of strings: + * + * a) Instead of a single char, there is an array of chars, NUL-terminated. + * b) The string may have be immutable. + * + * So, they need their own declarations. Especially important for + * type-checking tools, such as Deputy. + * + * In practice, however, it appears to be hard to have a const + * string. For now, I'm settling for dealing with the fact it is a + * string at all. + */ +typedef char *OPENSSL_STRING; +typedef const char *OPENSSL_CSTRING; + +/*- + * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but + * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned + * above, instead of a single char each entry is a NUL-terminated array of + * chars. So, we have to implement STRING specially for STACK_OF. This is + * dealt with in the autogenerated macros below. + */ +SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_STRING, char, char) +#define sk_OPENSSL_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_STRING_sk_type(sk)) +#define sk_OPENSSL_STRING_value(sk, idx) ((char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_STRING_sk_type(sk), (idx))) +#define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_STRING_compfunc_type(cmp))) +#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_null()) +#define sk_OPENSSL_STRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_STRING_compfunc_type(cmp), (n))) +#define sk_OPENSSL_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_STRING_sk_type(sk), (n)) +#define sk_OPENSSL_STRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_STRING_sk_type(sk)) +#define sk_OPENSSL_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_STRING_sk_type(sk)) +#define sk_OPENSSL_STRING_delete(sk, i) ((char *)OPENSSL_sk_delete(ossl_check_OPENSSL_STRING_sk_type(sk), (i))) +#define sk_OPENSSL_STRING_delete_ptr(sk, ptr) ((char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr))) +#define sk_OPENSSL_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) +#define sk_OPENSSL_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) +#define sk_OPENSSL_STRING_pop(sk) ((char *)OPENSSL_sk_pop(ossl_check_OPENSSL_STRING_sk_type(sk))) +#define sk_OPENSSL_STRING_shift(sk) ((char *)OPENSSL_sk_shift(ossl_check_OPENSSL_STRING_sk_type(sk))) +#define sk_OPENSSL_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_STRING_sk_type(sk),ossl_check_OPENSSL_STRING_freefunc_type(freefunc)) +#define sk_OPENSSL_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), (idx)) +#define sk_OPENSSL_STRING_set(sk, idx, ptr) ((char *)OPENSSL_sk_set(ossl_check_OPENSSL_STRING_sk_type(sk), (idx), ossl_check_OPENSSL_STRING_type(ptr))) +#define sk_OPENSSL_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) +#define sk_OPENSSL_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr)) +#define sk_OPENSSL_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_type(ptr), pnum) +#define sk_OPENSSL_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_STRING_sk_type(sk)) +#define sk_OPENSSL_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_STRING_sk_type(sk)) +#define sk_OPENSSL_STRING_dup(sk) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_STRING_sk_type(sk))) +#define sk_OPENSSL_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_STRING_freefunc_type(freefunc))) +#define sk_OPENSSL_STRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_STRING_sk_type(sk), ossl_check_OPENSSL_STRING_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_CSTRING, const char, char) +#define sk_OPENSSL_CSTRING_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) +#define sk_OPENSSL_CSTRING_value(sk, idx) ((const char *)OPENSSL_sk_value(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), (idx))) +#define sk_OPENSSL_CSTRING_new(cmp) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) +#define sk_OPENSSL_CSTRING_new_null() ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_null()) +#define sk_OPENSSL_CSTRING_new_reserve(cmp, n) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_CSTRING_compfunc_type(cmp), (n))) +#define sk_OPENSSL_CSTRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_CSTRING_sk_type(sk), (n)) +#define sk_OPENSSL_CSTRING_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_CSTRING_sk_type(sk)) +#define sk_OPENSSL_CSTRING_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_CSTRING_sk_type(sk)) +#define sk_OPENSSL_CSTRING_delete(sk, i) ((const char *)OPENSSL_sk_delete(ossl_check_OPENSSL_CSTRING_sk_type(sk), (i))) +#define sk_OPENSSL_CSTRING_delete_ptr(sk, ptr) ((const char *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr))) +#define sk_OPENSSL_CSTRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) +#define sk_OPENSSL_CSTRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) +#define sk_OPENSSL_CSTRING_pop(sk) ((const char *)OPENSSL_sk_pop(ossl_check_OPENSSL_CSTRING_sk_type(sk))) +#define sk_OPENSSL_CSTRING_shift(sk) ((const char *)OPENSSL_sk_shift(ossl_check_OPENSSL_CSTRING_sk_type(sk))) +#define sk_OPENSSL_CSTRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_CSTRING_sk_type(sk),ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc)) +#define sk_OPENSSL_CSTRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), (idx)) +#define sk_OPENSSL_CSTRING_set(sk, idx, ptr) ((const char *)OPENSSL_sk_set(ossl_check_OPENSSL_CSTRING_sk_type(sk), (idx), ossl_check_OPENSSL_CSTRING_type(ptr))) +#define sk_OPENSSL_CSTRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) +#define sk_OPENSSL_CSTRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr)) +#define sk_OPENSSL_CSTRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_type(ptr), pnum) +#define sk_OPENSSL_CSTRING_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_CSTRING_sk_type(sk)) +#define sk_OPENSSL_CSTRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_CSTRING_sk_type(sk)) +#define sk_OPENSSL_CSTRING_dup(sk) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_CSTRING_sk_type(sk))) +#define sk_OPENSSL_CSTRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_CSTRING) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_copyfunc_type(copyfunc), ossl_check_OPENSSL_CSTRING_freefunc_type(freefunc))) +#define sk_OPENSSL_CSTRING_set_cmp_func(sk, cmp) ((sk_OPENSSL_CSTRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_CSTRING_sk_type(sk), ossl_check_OPENSSL_CSTRING_compfunc_type(cmp))) + + +#if !defined(OPENSSL_NO_DEPRECATED_3_0) +/* + * This is not used by OpenSSL. A block of bytes, NOT nul-terminated. + * These should also be distinguished from "normal" stacks. + */ +typedef void *OPENSSL_BLOCK; +SKM_DEFINE_STACK_OF_INTERNAL(OPENSSL_BLOCK, void, void) +#define sk_OPENSSL_BLOCK_num(sk) OPENSSL_sk_num(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) +#define sk_OPENSSL_BLOCK_value(sk, idx) ((void *)OPENSSL_sk_value(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), (idx))) +#define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) +#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_null()) +#define sk_OPENSSL_BLOCK_new_reserve(cmp, n) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_new_reserve(ossl_check_OPENSSL_BLOCK_compfunc_type(cmp), (n))) +#define sk_OPENSSL_BLOCK_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OPENSSL_BLOCK_sk_type(sk), (n)) +#define sk_OPENSSL_BLOCK_free(sk) OPENSSL_sk_free(ossl_check_OPENSSL_BLOCK_sk_type(sk)) +#define sk_OPENSSL_BLOCK_zero(sk) OPENSSL_sk_zero(ossl_check_OPENSSL_BLOCK_sk_type(sk)) +#define sk_OPENSSL_BLOCK_delete(sk, i) ((void *)OPENSSL_sk_delete(ossl_check_OPENSSL_BLOCK_sk_type(sk), (i))) +#define sk_OPENSSL_BLOCK_delete_ptr(sk, ptr) ((void *)OPENSSL_sk_delete_ptr(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr))) +#define sk_OPENSSL_BLOCK_push(sk, ptr) OPENSSL_sk_push(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) +#define sk_OPENSSL_BLOCK_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) +#define sk_OPENSSL_BLOCK_pop(sk) ((void *)OPENSSL_sk_pop(ossl_check_OPENSSL_BLOCK_sk_type(sk))) +#define sk_OPENSSL_BLOCK_shift(sk) ((void *)OPENSSL_sk_shift(ossl_check_OPENSSL_BLOCK_sk_type(sk))) +#define sk_OPENSSL_BLOCK_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OPENSSL_BLOCK_sk_type(sk),ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc)) +#define sk_OPENSSL_BLOCK_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), (idx)) +#define sk_OPENSSL_BLOCK_set(sk, idx, ptr) ((void *)OPENSSL_sk_set(ossl_check_OPENSSL_BLOCK_sk_type(sk), (idx), ossl_check_OPENSSL_BLOCK_type(ptr))) +#define sk_OPENSSL_BLOCK_find(sk, ptr) OPENSSL_sk_find(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) +#define sk_OPENSSL_BLOCK_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr)) +#define sk_OPENSSL_BLOCK_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_type(ptr), pnum) +#define sk_OPENSSL_BLOCK_sort(sk) OPENSSL_sk_sort(ossl_check_OPENSSL_BLOCK_sk_type(sk)) +#define sk_OPENSSL_BLOCK_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OPENSSL_BLOCK_sk_type(sk)) +#define sk_OPENSSL_BLOCK_dup(sk) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_dup(ossl_check_const_OPENSSL_BLOCK_sk_type(sk))) +#define sk_OPENSSL_BLOCK_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OPENSSL_BLOCK) *)OPENSSL_sk_deep_copy(ossl_check_const_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_copyfunc_type(copyfunc), ossl_check_OPENSSL_BLOCK_freefunc_type(freefunc))) +#define sk_OPENSSL_BLOCK_set_cmp_func(sk, cmp) ((sk_OPENSSL_BLOCK_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OPENSSL_BLOCK_sk_type(sk), ossl_check_OPENSSL_BLOCK_compfunc_type(cmp))) + +#endif + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/srp.h b/clientapp/android/app/src/main/cpp/include/openssl/srp.h new file mode 100644 index 00000000..a48766c6 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/srp.h @@ -0,0 +1,285 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/srp.h.in + * + * Copyright 2004-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2004, EdelKey Project. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + * + * Originally written by Christophe Renou and Peter Sylvester, + * for the EdelKey project. + */ + + + +#ifndef OPENSSL_SRP_H +# define OPENSSL_SRP_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_SRP_H +# endif + +#include + +#ifndef OPENSSL_NO_SRP +# include +# include +# include +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# ifndef OPENSSL_NO_DEPRECATED_3_0 + +typedef struct SRP_gN_cache_st { + char *b64_bn; + BIGNUM *bn; +} SRP_gN_cache; +SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN_cache, SRP_gN_cache, SRP_gN_cache) +#define sk_SRP_gN_cache_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_cache_sk_type(sk)) +#define sk_SRP_gN_cache_value(sk, idx) ((SRP_gN_cache *)OPENSSL_sk_value(ossl_check_const_SRP_gN_cache_sk_type(sk), (idx))) +#define sk_SRP_gN_cache_new(cmp) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new(ossl_check_SRP_gN_cache_compfunc_type(cmp))) +#define sk_SRP_gN_cache_new_null() ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_null()) +#define sk_SRP_gN_cache_new_reserve(cmp, n) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_cache_compfunc_type(cmp), (n))) +#define sk_SRP_gN_cache_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_cache_sk_type(sk), (n)) +#define sk_SRP_gN_cache_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_cache_sk_type(sk)) +#define sk_SRP_gN_cache_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_cache_sk_type(sk)) +#define sk_SRP_gN_cache_delete(sk, i) ((SRP_gN_cache *)OPENSSL_sk_delete(ossl_check_SRP_gN_cache_sk_type(sk), (i))) +#define sk_SRP_gN_cache_delete_ptr(sk, ptr) ((SRP_gN_cache *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr))) +#define sk_SRP_gN_cache_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) +#define sk_SRP_gN_cache_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) +#define sk_SRP_gN_cache_pop(sk) ((SRP_gN_cache *)OPENSSL_sk_pop(ossl_check_SRP_gN_cache_sk_type(sk))) +#define sk_SRP_gN_cache_shift(sk) ((SRP_gN_cache *)OPENSSL_sk_shift(ossl_check_SRP_gN_cache_sk_type(sk))) +#define sk_SRP_gN_cache_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_cache_sk_type(sk),ossl_check_SRP_gN_cache_freefunc_type(freefunc)) +#define sk_SRP_gN_cache_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), (idx)) +#define sk_SRP_gN_cache_set(sk, idx, ptr) ((SRP_gN_cache *)OPENSSL_sk_set(ossl_check_SRP_gN_cache_sk_type(sk), (idx), ossl_check_SRP_gN_cache_type(ptr))) +#define sk_SRP_gN_cache_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) +#define sk_SRP_gN_cache_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr)) +#define sk_SRP_gN_cache_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_type(ptr), pnum) +#define sk_SRP_gN_cache_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_cache_sk_type(sk)) +#define sk_SRP_gN_cache_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_cache_sk_type(sk)) +#define sk_SRP_gN_cache_dup(sk) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_cache_sk_type(sk))) +#define sk_SRP_gN_cache_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN_cache) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_copyfunc_type(copyfunc), ossl_check_SRP_gN_cache_freefunc_type(freefunc))) +#define sk_SRP_gN_cache_set_cmp_func(sk, cmp) ((sk_SRP_gN_cache_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_cache_sk_type(sk), ossl_check_SRP_gN_cache_compfunc_type(cmp))) + + + +typedef struct SRP_user_pwd_st { + /* Owned by us. */ + char *id; + BIGNUM *s; + BIGNUM *v; + /* Not owned by us. */ + const BIGNUM *g; + const BIGNUM *N; + /* Owned by us. */ + char *info; +} SRP_user_pwd; +SKM_DEFINE_STACK_OF_INTERNAL(SRP_user_pwd, SRP_user_pwd, SRP_user_pwd) +#define sk_SRP_user_pwd_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_user_pwd_sk_type(sk)) +#define sk_SRP_user_pwd_value(sk, idx) ((SRP_user_pwd *)OPENSSL_sk_value(ossl_check_const_SRP_user_pwd_sk_type(sk), (idx))) +#define sk_SRP_user_pwd_new(cmp) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new(ossl_check_SRP_user_pwd_compfunc_type(cmp))) +#define sk_SRP_user_pwd_new_null() ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_null()) +#define sk_SRP_user_pwd_new_reserve(cmp, n) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_new_reserve(ossl_check_SRP_user_pwd_compfunc_type(cmp), (n))) +#define sk_SRP_user_pwd_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_user_pwd_sk_type(sk), (n)) +#define sk_SRP_user_pwd_free(sk) OPENSSL_sk_free(ossl_check_SRP_user_pwd_sk_type(sk)) +#define sk_SRP_user_pwd_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_user_pwd_sk_type(sk)) +#define sk_SRP_user_pwd_delete(sk, i) ((SRP_user_pwd *)OPENSSL_sk_delete(ossl_check_SRP_user_pwd_sk_type(sk), (i))) +#define sk_SRP_user_pwd_delete_ptr(sk, ptr) ((SRP_user_pwd *)OPENSSL_sk_delete_ptr(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr))) +#define sk_SRP_user_pwd_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) +#define sk_SRP_user_pwd_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) +#define sk_SRP_user_pwd_pop(sk) ((SRP_user_pwd *)OPENSSL_sk_pop(ossl_check_SRP_user_pwd_sk_type(sk))) +#define sk_SRP_user_pwd_shift(sk) ((SRP_user_pwd *)OPENSSL_sk_shift(ossl_check_SRP_user_pwd_sk_type(sk))) +#define sk_SRP_user_pwd_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_user_pwd_sk_type(sk),ossl_check_SRP_user_pwd_freefunc_type(freefunc)) +#define sk_SRP_user_pwd_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), (idx)) +#define sk_SRP_user_pwd_set(sk, idx, ptr) ((SRP_user_pwd *)OPENSSL_sk_set(ossl_check_SRP_user_pwd_sk_type(sk), (idx), ossl_check_SRP_user_pwd_type(ptr))) +#define sk_SRP_user_pwd_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) +#define sk_SRP_user_pwd_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr)) +#define sk_SRP_user_pwd_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_type(ptr), pnum) +#define sk_SRP_user_pwd_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_user_pwd_sk_type(sk)) +#define sk_SRP_user_pwd_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_user_pwd_sk_type(sk)) +#define sk_SRP_user_pwd_dup(sk) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_dup(ossl_check_const_SRP_user_pwd_sk_type(sk))) +#define sk_SRP_user_pwd_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_user_pwd) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_copyfunc_type(copyfunc), ossl_check_SRP_user_pwd_freefunc_type(freefunc))) +#define sk_SRP_user_pwd_set_cmp_func(sk, cmp) ((sk_SRP_user_pwd_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_user_pwd_sk_type(sk), ossl_check_SRP_user_pwd_compfunc_type(cmp))) + + +OSSL_DEPRECATEDIN_3_0 +SRP_user_pwd *SRP_user_pwd_new(void); +OSSL_DEPRECATEDIN_3_0 +void SRP_user_pwd_free(SRP_user_pwd *user_pwd); + +OSSL_DEPRECATEDIN_3_0 +void SRP_user_pwd_set_gN(SRP_user_pwd *user_pwd, const BIGNUM *g, + const BIGNUM *N); +OSSL_DEPRECATEDIN_3_0 +int SRP_user_pwd_set1_ids(SRP_user_pwd *user_pwd, const char *id, + const char *info); +OSSL_DEPRECATEDIN_3_0 +int SRP_user_pwd_set0_sv(SRP_user_pwd *user_pwd, BIGNUM *s, BIGNUM *v); + +typedef struct SRP_VBASE_st { + STACK_OF(SRP_user_pwd) *users_pwd; + STACK_OF(SRP_gN_cache) *gN_cache; +/* to simulate a user */ + char *seed_key; + const BIGNUM *default_g; + const BIGNUM *default_N; +} SRP_VBASE; + +/* + * Internal structure storing N and g pair + */ +typedef struct SRP_gN_st { + char *id; + const BIGNUM *g; + const BIGNUM *N; +} SRP_gN; +SKM_DEFINE_STACK_OF_INTERNAL(SRP_gN, SRP_gN, SRP_gN) +#define sk_SRP_gN_num(sk) OPENSSL_sk_num(ossl_check_const_SRP_gN_sk_type(sk)) +#define sk_SRP_gN_value(sk, idx) ((SRP_gN *)OPENSSL_sk_value(ossl_check_const_SRP_gN_sk_type(sk), (idx))) +#define sk_SRP_gN_new(cmp) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new(ossl_check_SRP_gN_compfunc_type(cmp))) +#define sk_SRP_gN_new_null() ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_null()) +#define sk_SRP_gN_new_reserve(cmp, n) ((STACK_OF(SRP_gN) *)OPENSSL_sk_new_reserve(ossl_check_SRP_gN_compfunc_type(cmp), (n))) +#define sk_SRP_gN_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRP_gN_sk_type(sk), (n)) +#define sk_SRP_gN_free(sk) OPENSSL_sk_free(ossl_check_SRP_gN_sk_type(sk)) +#define sk_SRP_gN_zero(sk) OPENSSL_sk_zero(ossl_check_SRP_gN_sk_type(sk)) +#define sk_SRP_gN_delete(sk, i) ((SRP_gN *)OPENSSL_sk_delete(ossl_check_SRP_gN_sk_type(sk), (i))) +#define sk_SRP_gN_delete_ptr(sk, ptr) ((SRP_gN *)OPENSSL_sk_delete_ptr(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr))) +#define sk_SRP_gN_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) +#define sk_SRP_gN_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) +#define sk_SRP_gN_pop(sk) ((SRP_gN *)OPENSSL_sk_pop(ossl_check_SRP_gN_sk_type(sk))) +#define sk_SRP_gN_shift(sk) ((SRP_gN *)OPENSSL_sk_shift(ossl_check_SRP_gN_sk_type(sk))) +#define sk_SRP_gN_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRP_gN_sk_type(sk),ossl_check_SRP_gN_freefunc_type(freefunc)) +#define sk_SRP_gN_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), (idx)) +#define sk_SRP_gN_set(sk, idx, ptr) ((SRP_gN *)OPENSSL_sk_set(ossl_check_SRP_gN_sk_type(sk), (idx), ossl_check_SRP_gN_type(ptr))) +#define sk_SRP_gN_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) +#define sk_SRP_gN_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr)) +#define sk_SRP_gN_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_type(ptr), pnum) +#define sk_SRP_gN_sort(sk) OPENSSL_sk_sort(ossl_check_SRP_gN_sk_type(sk)) +#define sk_SRP_gN_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRP_gN_sk_type(sk)) +#define sk_SRP_gN_dup(sk) ((STACK_OF(SRP_gN) *)OPENSSL_sk_dup(ossl_check_const_SRP_gN_sk_type(sk))) +#define sk_SRP_gN_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRP_gN) *)OPENSSL_sk_deep_copy(ossl_check_const_SRP_gN_sk_type(sk), ossl_check_SRP_gN_copyfunc_type(copyfunc), ossl_check_SRP_gN_freefunc_type(freefunc))) +#define sk_SRP_gN_set_cmp_func(sk, cmp) ((sk_SRP_gN_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRP_gN_sk_type(sk), ossl_check_SRP_gN_compfunc_type(cmp))) + + + +OSSL_DEPRECATEDIN_3_0 +SRP_VBASE *SRP_VBASE_new(char *seed_key); +OSSL_DEPRECATEDIN_3_0 +void SRP_VBASE_free(SRP_VBASE *vb); +OSSL_DEPRECATEDIN_3_0 +int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); + +OSSL_DEPRECATEDIN_3_0 +int SRP_VBASE_add0_user(SRP_VBASE *vb, SRP_user_pwd *user_pwd); + +/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ +OSSL_DEPRECATEDIN_3_0 +SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); + +OSSL_DEPRECATEDIN_3_0 +char *SRP_create_verifier_ex(const char *user, const char *pass, char **salt, + char **verifier, const char *N, const char *g, + OSSL_LIB_CTX *libctx, const char *propq); +OSSL_DEPRECATEDIN_3_0 +char *SRP_create_verifier(const char *user, const char *pass, char **salt, + char **verifier, const char *N, const char *g); +OSSL_DEPRECATEDIN_3_0 +int SRP_create_verifier_BN_ex(const char *user, const char *pass, BIGNUM **salt, + BIGNUM **verifier, const BIGNUM *N, + const BIGNUM *g, OSSL_LIB_CTX *libctx, + const char *propq); +OSSL_DEPRECATEDIN_3_0 +int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, + BIGNUM **verifier, const BIGNUM *N, + const BIGNUM *g); + +# define SRP_NO_ERROR 0 +# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 +# define SRP_ERR_VBASE_BN_LIB 2 +# define SRP_ERR_OPEN_FILE 3 +# define SRP_ERR_MEMORY 4 + +# define DB_srptype 0 +# define DB_srpverifier 1 +# define DB_srpsalt 2 +# define DB_srpid 3 +# define DB_srpgN 4 +# define DB_srpinfo 5 +# undef DB_NUMBER +# define DB_NUMBER 6 + +# define DB_SRP_INDEX 'I' +# define DB_SRP_VALID 'V' +# define DB_SRP_REVOKED 'R' +# define DB_SRP_MODIF 'v' + +/* see srp.c */ +OSSL_DEPRECATEDIN_3_0 +char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); +OSSL_DEPRECATEDIN_3_0 +SRP_gN *SRP_get_default_gN(const char *id); + +/* server side .... */ +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, + const BIGNUM *b, const BIGNUM *N); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_B_ex(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, + const BIGNUM *v, OSSL_LIB_CTX *libctx, const char *propq); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, + const BIGNUM *v); + +OSSL_DEPRECATEDIN_3_0 +int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_u_ex(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N, + OSSL_LIB_CTX *libctx, const char *propq); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); + +/* client side .... */ + +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_x_ex(const BIGNUM *s, const char *user, const char *pass, + OSSL_LIB_CTX *libctx, const char *propq); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_client_key_ex(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, + const BIGNUM *x, const BIGNUM *a, const BIGNUM *u, + OSSL_LIB_CTX *libctx, const char *propq); +OSSL_DEPRECATEDIN_3_0 +BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, + const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); +OSSL_DEPRECATEDIN_3_0 +int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); + +# define SRP_MINIMAL_N 1024 + +# endif /* OPENSSL_NO_DEPRECATED_3_0 */ + +/* This method ignores the configured seed and fails for an unknown user. */ +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 +SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); +# endif + +# ifdef __cplusplus +} +# endif +# endif + +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/ssl.h b/clientapp/android/app/src/main/cpp/include/openssl/ssl.h new file mode 100644 index 00000000..6815f846 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/ssl.h @@ -0,0 +1,2894 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/ssl.h.in + * + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * Copyright 2005 Nokia. All rights reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_SSL_H +# define OPENSSL_SSL_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_SSL_H +# endif + +# include +# include +# include +# include +# include +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# include +# include +# include +# endif +# include +# include +# include +# include + +# include +# include +# include +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* OpenSSL version number for ASN.1 encoding of the session information */ +/*- + * Version 0 - initial version + * Version 1 - added the optional peer certificate + */ +# define SSL_SESSION_ASN1_VERSION 0x0001 + +# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 +# define SSL_MAX_SID_CTX_LENGTH 32 + +# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) +# define SSL_MAX_KEY_ARG_LENGTH 8 +/* SSL_MAX_MASTER_KEY_LENGTH is defined in prov_ssl.h */ + +/* The maximum number of encrypt/decrypt pipelines we can support */ +# define SSL_MAX_PIPELINES 32 + +/* text strings for the ciphers */ + +/* These are used to specify which ciphers to use and not to use */ + +# define SSL_TXT_LOW "LOW" +# define SSL_TXT_MEDIUM "MEDIUM" +# define SSL_TXT_HIGH "HIGH" +# define SSL_TXT_FIPS "FIPS" + +# define SSL_TXT_aNULL "aNULL" +# define SSL_TXT_eNULL "eNULL" +# define SSL_TXT_NULL "NULL" + +# define SSL_TXT_kRSA "kRSA" +# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ +# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ +# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ +# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ +# define SSL_TXT_kDHE "kDHE" +# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ +# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ +# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ +# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ +# define SSL_TXT_kECDHE "kECDHE" +# define SSL_TXT_kPSK "kPSK" +# define SSL_TXT_kRSAPSK "kRSAPSK" +# define SSL_TXT_kECDHEPSK "kECDHEPSK" +# define SSL_TXT_kDHEPSK "kDHEPSK" +# define SSL_TXT_kGOST "kGOST" +# define SSL_TXT_kGOST18 "kGOST18" +# define SSL_TXT_kSRP "kSRP" + +# define SSL_TXT_aRSA "aRSA" +# define SSL_TXT_aDSS "aDSS" +# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ +# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ +# define SSL_TXT_aECDSA "aECDSA" +# define SSL_TXT_aPSK "aPSK" +# define SSL_TXT_aGOST94 "aGOST94" +# define SSL_TXT_aGOST01 "aGOST01" +# define SSL_TXT_aGOST12 "aGOST12" +# define SSL_TXT_aGOST "aGOST" +# define SSL_TXT_aSRP "aSRP" + +# define SSL_TXT_DSS "DSS" +# define SSL_TXT_DH "DH" +# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ +# define SSL_TXT_EDH "EDH"/* alias for DHE */ +# define SSL_TXT_ADH "ADH" +# define SSL_TXT_RSA "RSA" +# define SSL_TXT_ECDH "ECDH" +# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ +# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ +# define SSL_TXT_AECDH "AECDH" +# define SSL_TXT_ECDSA "ECDSA" +# define SSL_TXT_PSK "PSK" +# define SSL_TXT_SRP "SRP" + +# define SSL_TXT_DES "DES" +# define SSL_TXT_3DES "3DES" +# define SSL_TXT_RC4 "RC4" +# define SSL_TXT_RC2 "RC2" +# define SSL_TXT_IDEA "IDEA" +# define SSL_TXT_SEED "SEED" +# define SSL_TXT_AES128 "AES128" +# define SSL_TXT_AES256 "AES256" +# define SSL_TXT_AES "AES" +# define SSL_TXT_AES_GCM "AESGCM" +# define SSL_TXT_AES_CCM "AESCCM" +# define SSL_TXT_AES_CCM_8 "AESCCM8" +# define SSL_TXT_CAMELLIA128 "CAMELLIA128" +# define SSL_TXT_CAMELLIA256 "CAMELLIA256" +# define SSL_TXT_CAMELLIA "CAMELLIA" +# define SSL_TXT_CHACHA20 "CHACHA20" +# define SSL_TXT_GOST "GOST89" +# define SSL_TXT_ARIA "ARIA" +# define SSL_TXT_ARIA_GCM "ARIAGCM" +# define SSL_TXT_ARIA128 "ARIA128" +# define SSL_TXT_ARIA256 "ARIA256" +# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912" +# define SSL_TXT_CBC "CBC" + +# define SSL_TXT_MD5 "MD5" +# define SSL_TXT_SHA1 "SHA1" +# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ +# define SSL_TXT_GOST94 "GOST94" +# define SSL_TXT_GOST89MAC "GOST89MAC" +# define SSL_TXT_GOST12 "GOST12" +# define SSL_TXT_GOST89MAC12 "GOST89MAC12" +# define SSL_TXT_SHA256 "SHA256" +# define SSL_TXT_SHA384 "SHA384" + +# define SSL_TXT_SSLV3 "SSLv3" +# define SSL_TXT_TLSV1 "TLSv1" +# define SSL_TXT_TLSV1_1 "TLSv1.1" +# define SSL_TXT_TLSV1_2 "TLSv1.2" + +# define SSL_TXT_ALL "ALL" + +/*- + * COMPLEMENTOF* definitions. These identifiers are used to (de-select) + * ciphers normally not being used. + * Example: "RC4" will activate all ciphers using RC4 including ciphers + * without authentication, which would normally disabled by DEFAULT (due + * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" + * will make sure that it is also disabled in the specific selection. + * COMPLEMENTOF* identifiers are portable between version, as adjustments + * to the default cipher setup will also be included here. + * + * COMPLEMENTOFDEFAULT does not experience the same special treatment that + * DEFAULT gets, as only selection is being done and no sorting as needed + * for DEFAULT. + */ +# define SSL_TXT_CMPALL "COMPLEMENTOFALL" +# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" + +/* + * The following cipher list is used by default. It also is substituted when + * an application-defined cipher list string starts with 'DEFAULT'. + * This applies to ciphersuites for TLSv1.2 and below. + * DEPRECATED IN 3.0.0, in favor of OSSL_default_cipher_list() + * Update both macro and function simultaneously + */ +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" +/* + * This is the default set of TLSv1.3 ciphersuites + * DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites() + * Update both macro and function simultaneously + */ +# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ + "TLS_CHACHA20_POLY1305_SHA256:" \ + "TLS_AES_128_GCM_SHA256" +# endif +/* + * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always + * starts with a reasonable order, and all we have to do for DEFAULT is + * throwing out anonymous and unencrypted ciphersuites! (The latter are not + * actually enabled by ALL, but "ALL:RSA" would enable some of them.) + */ + +/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ +# define SSL_SENT_SHUTDOWN 1 +# define SSL_RECEIVED_SHUTDOWN 2 + +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 +# define SSL_FILETYPE_PEM X509_FILETYPE_PEM + +/* + * This is needed to stop compilers complaining about the 'struct ssl_st *' + * function parameters used to prototype callbacks in SSL_CTX. + */ +typedef struct ssl_st *ssl_crock_st; +typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; +typedef struct ssl_method_st SSL_METHOD; +typedef struct ssl_cipher_st SSL_CIPHER; +typedef struct ssl_session_st SSL_SESSION; +typedef struct tls_sigalgs_st TLS_SIGALGS; +typedef struct ssl_conf_ctx_st SSL_CONF_CTX; +typedef struct ssl_comp_st SSL_COMP; + +STACK_OF(SSL_CIPHER); +STACK_OF(SSL_COMP); + +/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ +typedef struct srtp_protection_profile_st { + const char *name; + unsigned long id; +} SRTP_PROTECTION_PROFILE; +SKM_DEFINE_STACK_OF_INTERNAL(SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE) +#define sk_SRTP_PROTECTION_PROFILE_num(sk) OPENSSL_sk_num(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) +#define sk_SRTP_PROTECTION_PROFILE_value(sk, idx) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_value(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx))) +#define sk_SRTP_PROTECTION_PROFILE_new(cmp) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) +#define sk_SRTP_PROTECTION_PROFILE_new_null() ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_null()) +#define sk_SRTP_PROTECTION_PROFILE_new_reserve(cmp, n) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_reserve(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp), (n))) +#define sk_SRTP_PROTECTION_PROFILE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (n)) +#define sk_SRTP_PROTECTION_PROFILE_free(sk) OPENSSL_sk_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) +#define sk_SRTP_PROTECTION_PROFILE_zero(sk) OPENSSL_sk_zero(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) +#define sk_SRTP_PROTECTION_PROFILE_delete(sk, i) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (i))) +#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete_ptr(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) +#define sk_SRTP_PROTECTION_PROFILE_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) +#define sk_SRTP_PROTECTION_PROFILE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) +#define sk_SRTP_PROTECTION_PROFILE_pop(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_pop(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) +#define sk_SRTP_PROTECTION_PROFILE_shift(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_shift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))) +#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk),ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc)) +#define sk_SRTP_PROTECTION_PROFILE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), (idx)) +#define sk_SRTP_PROTECTION_PROFILE_set(sk, idx, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_set(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))) +#define sk_SRTP_PROTECTION_PROFILE_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) +#define sk_SRTP_PROTECTION_PROFILE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)) +#define sk_SRTP_PROTECTION_PROFILE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), pnum) +#define sk_SRTP_PROTECTION_PROFILE_sort(sk) OPENSSL_sk_sort(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)) +#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)) +#define sk_SRTP_PROTECTION_PROFILE_dup(sk) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_dup(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))) +#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_deep_copy(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(copyfunc), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc))) +#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, cmp) ((sk_SRTP_PROTECTION_PROFILE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp))) + + + +typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, + int len, void *arg); +typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, + STACK_OF(SSL_CIPHER) *peer_ciphers, + const SSL_CIPHER **cipher, void *arg); + +/* Extension context codes */ +/* This extension is only allowed in TLS */ +#define SSL_EXT_TLS_ONLY 0x00001 +/* This extension is only allowed in DTLS */ +#define SSL_EXT_DTLS_ONLY 0x00002 +/* Some extensions may be allowed in DTLS but we don't implement them for it */ +#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x00004 +/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ +#define SSL_EXT_SSL3_ALLOWED 0x00008 +/* Extension is only defined for TLS1.2 and below */ +#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x00010 +/* Extension is only defined for TLS1.3 and above */ +#define SSL_EXT_TLS1_3_ONLY 0x00020 +/* Ignore this extension during parsing if we are resuming */ +#define SSL_EXT_IGNORE_ON_RESUMPTION 0x00040 +#define SSL_EXT_CLIENT_HELLO 0x00080 +/* Really means TLS1.2 or below */ +#define SSL_EXT_TLS1_2_SERVER_HELLO 0x00100 +#define SSL_EXT_TLS1_3_SERVER_HELLO 0x00200 +#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x00400 +#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x00800 +#define SSL_EXT_TLS1_3_CERTIFICATE 0x01000 +#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x02000 +#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x04000 +#define SSL_EXT_TLS1_3_CERTIFICATE_COMPRESSION 0x08000 +/* When sending a raw public key in a certificate message */ +#define SSL_EXT_TLS1_3_RAW_PUBLIC_KEY 0x10000 + +/* Typedefs for handling custom extensions */ + +typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, + const unsigned char **out, size_t *outlen, + int *al, void *add_arg); + +typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, + const unsigned char *out, void *add_arg); + +typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, + const unsigned char *in, size_t inlen, + int *al, void *parse_arg); + + +typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char **out, + size_t *outlen, X509 *x, + size_t chainidx, + int *al, void *add_arg); + +typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *out, + void *add_arg); + +typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, + unsigned int context, + const unsigned char *in, + size_t inlen, X509 *x, + size_t chainidx, + int *al, void *parse_arg); + +/* Typedef for verification callback */ +typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); + +/* Typedef for SSL async callback */ +typedef int (*SSL_async_callback_fn)(SSL *s, void *arg); + +#define SSL_OP_BIT(n) ((uint64_t)1 << (uint64_t)n) + +/* + * SSL/TLS connection options. + */ + /* Disable Extended master secret */ +# define SSL_OP_NO_EXTENDED_MASTER_SECRET SSL_OP_BIT(0) + /* Cleanse plaintext copies of data delivered to the application */ +# define SSL_OP_CLEANSE_PLAINTEXT SSL_OP_BIT(1) + /* Allow initial connection to servers that don't support RI */ +# define SSL_OP_LEGACY_SERVER_CONNECT SSL_OP_BIT(2) + /* Enable support for Kernel TLS */ +# define SSL_OP_ENABLE_KTLS SSL_OP_BIT(3) +# define SSL_OP_TLSEXT_PADDING SSL_OP_BIT(4) +# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG SSL_OP_BIT(6) +# define SSL_OP_IGNORE_UNEXPECTED_EOF SSL_OP_BIT(7) +# define SSL_OP_ALLOW_CLIENT_RENEGOTIATION SSL_OP_BIT(8) +# define SSL_OP_DISABLE_TLSEXT_CA_NAMES SSL_OP_BIT(9) + /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ +# define SSL_OP_ALLOW_NO_DHE_KEX SSL_OP_BIT(10) + /* + * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added + * in OpenSSL 0.9.6d. Usually (depending on the application protocol) + * the workaround is not needed. Unfortunately some broken SSL/TLS + * implementations cannot handle it at all, which is why we include it + * in SSL_OP_ALL. Added in 0.9.6e + */ +# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS SSL_OP_BIT(11) + /* DTLS options */ +# define SSL_OP_NO_QUERY_MTU SSL_OP_BIT(12) + /* Turn on Cookie Exchange (on relevant for servers) */ +# define SSL_OP_COOKIE_EXCHANGE SSL_OP_BIT(13) + /* Don't use RFC4507 ticket extension */ +# define SSL_OP_NO_TICKET SSL_OP_BIT(14) +# ifndef OPENSSL_NO_DTLS1_METHOD + /* + * Use Cisco's version identifier of DTLS_BAD_VER + * (only with deprecated DTLSv1_client_method()) + */ +# define SSL_OP_CISCO_ANYCONNECT SSL_OP_BIT(15) +# endif + /* As server, disallow session resumption on renegotiation */ +# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION SSL_OP_BIT(16) + /* Don't use compression even if supported */ +# define SSL_OP_NO_COMPRESSION SSL_OP_BIT(17) + /* Permit unsafe legacy renegotiation */ +# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION SSL_OP_BIT(18) + /* Disable encrypt-then-mac */ +# define SSL_OP_NO_ENCRYPT_THEN_MAC SSL_OP_BIT(19) + /* + * Enable TLSv1.3 Compatibility mode. This is on by default. A future + * version of OpenSSL may have this disabled by default. + */ +# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT SSL_OP_BIT(20) + /* + * Prioritize Chacha20Poly1305 when client does. + * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE + */ +# define SSL_OP_PRIORITIZE_CHACHA SSL_OP_BIT(21) + /* + * Set on servers to choose the cipher according to server's preferences. + */ +# define SSL_OP_CIPHER_SERVER_PREFERENCE SSL_OP_BIT(22) + /* + * If set, a server will allow a client to issue a SSLv3.0 version + * number as latest version supported in the premaster secret, even when + * TLSv1.0 (version 3.1) was announced in the client hello. Normally + * this is forbidden to prevent version rollback attacks. + */ +# define SSL_OP_TLS_ROLLBACK_BUG SSL_OP_BIT(23) + /* + * Switches off automatic TLSv1.3 anti-replay protection for early data. + * This is a server-side option only (no effect on the client). + */ +# define SSL_OP_NO_ANTI_REPLAY SSL_OP_BIT(24) +# define SSL_OP_NO_SSLv3 SSL_OP_BIT(25) +# define SSL_OP_NO_TLSv1 SSL_OP_BIT(26) +# define SSL_OP_NO_TLSv1_2 SSL_OP_BIT(27) +# define SSL_OP_NO_TLSv1_1 SSL_OP_BIT(28) +# define SSL_OP_NO_TLSv1_3 SSL_OP_BIT(29) +# define SSL_OP_NO_DTLSv1 SSL_OP_BIT(26) +# define SSL_OP_NO_DTLSv1_2 SSL_OP_BIT(27) + /* Disallow all renegotiation */ +# define SSL_OP_NO_RENEGOTIATION SSL_OP_BIT(30) + /* + * Make server add server-hello extension from early version of + * cryptopro draft, when GOST ciphersuite is negotiated. Required for + * interoperability with CryptoPro CSP 3.x + */ +# define SSL_OP_CRYPTOPRO_TLSEXT_BUG SSL_OP_BIT(31) +/* + * Disable RFC8879 certificate compression + * SSL_OP_NO_TX_CERTIFICATE_COMPRESSION: don't send compressed certificates, + * and ignore the extension when received. + * SSL_OP_NO_RX_CERTIFICATE_COMPRESSION: don't send the extension, and + * subsequently indicating that receiving is not supported + */ +# define SSL_OP_NO_TX_CERTIFICATE_COMPRESSION SSL_OP_BIT(32) +# define SSL_OP_NO_RX_CERTIFICATE_COMPRESSION SSL_OP_BIT(33) + /* Enable KTLS TX zerocopy on Linux */ +# define SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE SSL_OP_BIT(34) + +#define SSL_OP_PREFER_NO_DHE_KEX SSL_OP_BIT(35) + +/* + * Option "collections." + */ +# define SSL_OP_NO_SSL_MASK \ + ( SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 \ + | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3 ) +# define SSL_OP_NO_DTLS_MASK \ + ( SSL_OP_NO_DTLSv1 | SSL_OP_NO_DTLSv1_2 ) + +/* Various bug workarounds that should be rather harmless. */ +# define SSL_OP_ALL \ + ( SSL_OP_CRYPTOPRO_TLSEXT_BUG | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS \ + | SSL_OP_TLSEXT_PADDING | SSL_OP_SAFARI_ECDHE_ECDSA_BUG ) + +/* + * OBSOLETE OPTIONS retained for compatibility + */ + +# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 +# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 +# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 +# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 +# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 +# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 +# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 +# define SSL_OP_TLS_D5_BUG 0x0 +# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 +# define SSL_OP_SINGLE_ECDH_USE 0x0 +# define SSL_OP_SINGLE_DH_USE 0x0 +# define SSL_OP_EPHEMERAL_RSA 0x0 +# define SSL_OP_NO_SSLv2 0x0 +# define SSL_OP_PKCS1_CHECK_1 0x0 +# define SSL_OP_PKCS1_CHECK_2 0x0 +# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 +# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 + +/* + * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success + * when just a single record has been written): + */ +# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U +/* + * Make it possible to retry SSL_write() with changed buffer location (buffer + * contents must stay the same!); this is not the default to avoid the + * misconception that non-blocking SSL_write() behaves like non-blocking + * write(): + */ +# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U +/* + * Never bother the application with retries if the transport is blocking: + */ +# define SSL_MODE_AUTO_RETRY 0x00000004U +/* Don't attempt to automatically build certificate chain */ +# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U +/* + * Save RAM by releasing read and write buffers when they're empty. (SSL3 and + * TLS only.) Released buffers are freed. + */ +# define SSL_MODE_RELEASE_BUFFERS 0x00000010U +/* + * Send the current time in the Random fields of the ClientHello and + * ServerHello records for compatibility with hypothetical implementations + * that require it. + */ +# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U +# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U +/* + * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications + * that reconnect with a downgraded protocol version; see + * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your + * application attempts a normal handshake. Only use this in explicit + * fallback retries, following the guidance in + * draft-ietf-tls-downgrade-scsv-00. + */ +# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U +/* + * Support Asynchronous operation + */ +# define SSL_MODE_ASYNC 0x00000100U + +/* + * When using DTLS/SCTP, include the terminating zero in the label + * used for computing the endpoint-pair shared secret. Required for + * interoperability with implementations having this bug like these + * older version of OpenSSL: + * - OpenSSL 1.0.0 series + * - OpenSSL 1.0.1 series + * - OpenSSL 1.0.2 series + * - OpenSSL 1.1.0 series + * - OpenSSL 1.1.1 and 1.1.1a + */ +# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U + +/* Cert related flags */ +/* + * Many implementations ignore some aspects of the TLS standards such as + * enforcing certificate chain algorithms. When this is set we enforce them. + */ +# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U + +/* Suite B modes, takes same values as certificate verify flags */ +# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 + +/* Perform all sorts of protocol violations for testing purposes */ +# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 + +/* Flags for building certificate chains */ +/* Treat any existing certificates as untrusted CAs */ +# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 +/* Don't include root CA in chain */ +# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 +/* Just check certificates already there */ +# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 +/* Ignore verification errors */ +# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 +/* Clear verification errors from queue */ +# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 + +/* Flags returned by SSL_check_chain */ +/* Certificate can be used with this session */ +# define CERT_PKEY_VALID 0x1 +/* Certificate can also be used for signing */ +# define CERT_PKEY_SIGN 0x2 +/* EE certificate signing algorithm OK */ +# define CERT_PKEY_EE_SIGNATURE 0x10 +/* CA signature algorithms OK */ +# define CERT_PKEY_CA_SIGNATURE 0x20 +/* EE certificate parameters OK */ +# define CERT_PKEY_EE_PARAM 0x40 +/* CA certificate parameters OK */ +# define CERT_PKEY_CA_PARAM 0x80 +/* Signing explicitly allowed as opposed to SHA1 fallback */ +# define CERT_PKEY_EXPLICIT_SIGN 0x100 +/* Client CA issuer names match (always set for server cert) */ +# define CERT_PKEY_ISSUER_NAME 0x200 +/* Cert type matches client types (always set for server cert) */ +# define CERT_PKEY_CERT_TYPE 0x400 +/* Cert chain suitable to Suite B */ +# define CERT_PKEY_SUITEB 0x800 +/* Cert pkey valid for raw public key use */ +# define CERT_PKEY_RPK 0x1000 + +# define SSL_CONF_FLAG_CMDLINE 0x1 +# define SSL_CONF_FLAG_FILE 0x2 +# define SSL_CONF_FLAG_CLIENT 0x4 +# define SSL_CONF_FLAG_SERVER 0x8 +# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 +# define SSL_CONF_FLAG_CERTIFICATE 0x20 +# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 +/* Configuration value types */ +# define SSL_CONF_TYPE_UNKNOWN 0x0 +# define SSL_CONF_TYPE_STRING 0x1 +# define SSL_CONF_TYPE_FILE 0x2 +# define SSL_CONF_TYPE_DIR 0x3 +# define SSL_CONF_TYPE_NONE 0x4 +# define SSL_CONF_TYPE_STORE 0x5 + +/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ +# define SSL_COOKIE_LENGTH 4096 + +/* + * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they + * cannot be used to clear bits. + */ + +uint64_t SSL_CTX_get_options(const SSL_CTX *ctx); +uint64_t SSL_get_options(const SSL *s); +uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op); +uint64_t SSL_clear_options(SSL *s, uint64_t op); +uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op); +uint64_t SSL_set_options(SSL *s, uint64_t op); + +# define SSL_CTX_set_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) +# define SSL_CTX_clear_mode(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_CTX_get_mode(ctx) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) +# define SSL_clear_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) +# define SSL_set_mode(ssl,op) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) +# define SSL_get_mode(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) +# define SSL_set_mtu(ssl, mtu) \ + SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) +# define DTLS_set_link_mtu(ssl, mtu) \ + SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) +# define DTLS_get_link_min_mtu(ssl) \ + SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) + +# define SSL_get_secure_renegotiation_support(ssl) \ + SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) + +# define SSL_CTX_set_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_set_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) +# define SSL_CTX_clear_cert_flags(ctx,op) \ + SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) +# define SSL_clear_cert_flags(s,op) \ + SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) + +void SSL_CTX_set_msg_callback(SSL_CTX *ctx, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +void SSL_set_msg_callback(SSL *ssl, + void (*cb) (int write_p, int version, + int content_type, const void *buf, + size_t len, SSL *ssl, void *arg)); +# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) +# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) + +# define SSL_get_extms_support(s) \ + SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) + +# ifndef OPENSSL_NO_SRP +/* see tls_srp.c */ +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 __owur int SSL_SRP_CTX_init(SSL *s); +OSSL_DEPRECATEDIN_3_0 __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); +OSSL_DEPRECATEDIN_3_0 int SSL_SRP_CTX_free(SSL *ctx); +OSSL_DEPRECATEDIN_3_0 int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); +OSSL_DEPRECATEDIN_3_0 __owur int SSL_srp_server_param_with_username(SSL *s, + int *ad); +OSSL_DEPRECATEDIN_3_0 __owur int SRP_Calc_A_param(SSL *s); +# endif +# endif + +/* 100k max cert list */ +# define SSL_MAX_CERT_LIST_DEFAULT (1024*100) + +# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) + +/* + * This callback type is used inside SSL_CTX, SSL, and in the functions that + * set them. It is used to override the generation of SSL/TLS session IDs in + * a server. Return value should be zero on an error, non-zero to proceed. + * Also, callbacks should themselves check if the id they generate is unique + * otherwise the SSL handshake will fail with an error - callbacks can do + * this using the 'ssl' value they're passed by; + * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in + * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 + * bytes. The callback can alter this length to be less if desired. It is + * also an error for the callback to set the size to zero. + */ +typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, + unsigned int *id_len); + +# define SSL_SESS_CACHE_OFF 0x0000 +# define SSL_SESS_CACHE_CLIENT 0x0001 +# define SSL_SESS_CACHE_SERVER 0x0002 +# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) +# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 +/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ +# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 +# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 +# define SSL_SESS_CACHE_NO_INTERNAL \ + (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) +# define SSL_SESS_CACHE_UPDATE_TIME 0x0400 + +LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); +# define SSL_CTX_sess_number(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) +# define SSL_CTX_sess_connect(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) +# define SSL_CTX_sess_connect_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) +# define SSL_CTX_sess_connect_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) +# define SSL_CTX_sess_accept_renegotiate(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) +# define SSL_CTX_sess_accept_good(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) +# define SSL_CTX_sess_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) +# define SSL_CTX_sess_cb_hits(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) +# define SSL_CTX_sess_misses(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) +# define SSL_CTX_sess_timeouts(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) +# define SSL_CTX_sess_cache_full(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) + +void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, + int (*new_session_cb) (struct ssl_st *ssl, + SSL_SESSION *sess)); +int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + SSL_SESSION *sess); +void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, + void (*remove_session_cb) (struct ssl_ctx_st + *ctx, + SSL_SESSION *sess)); +void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, + SSL_SESSION *sess); +void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, + SSL_SESSION *(*get_session_cb) (struct ssl_st + *ssl, + const unsigned char + *data, int len, + int *copy)); +SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, + const unsigned char *data, + int len, int *copy); +void SSL_CTX_set_info_callback(SSL_CTX *ctx, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, + int val); +void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, + int (*client_cert_cb) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey)); +int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, + EVP_PKEY **pkey); +# ifndef OPENSSL_NO_ENGINE +__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); +# endif +void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, + int (*app_gen_cookie_cb) (SSL *ssl, + unsigned char + *cookie, + unsigned int + *cookie_len)); +void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, + int (*app_verify_cookie_cb) (SSL *ssl, + const unsigned + char *cookie, + unsigned int + cookie_len)); + +void SSL_CTX_set_stateless_cookie_generate_cb( + SSL_CTX *ctx, + int (*gen_stateless_cookie_cb) (SSL *ssl, + unsigned char *cookie, + size_t *cookie_len)); +void SSL_CTX_set_stateless_cookie_verify_cb( + SSL_CTX *ctx, + int (*verify_stateless_cookie_cb) (SSL *ssl, + const unsigned char *cookie, + size_t cookie_len)); +# ifndef OPENSSL_NO_NEXTPROTONEG + +typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, + const unsigned char **out, + unsigned int *outlen, + void *arg); +void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, + SSL_CTX_npn_advertised_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb + +typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, + unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg); +void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, + SSL_CTX_npn_select_cb_func cb, + void *arg); +# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb + +void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, + unsigned *len); +# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated +# endif + +__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, + const unsigned char *in, unsigned int inlen, + const unsigned char *client, + unsigned int client_len); + +# define OPENSSL_NPN_UNSUPPORTED 0 +# define OPENSSL_NPN_NEGOTIATED 1 +# define OPENSSL_NPN_NO_OVERLAP 2 + +__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, + unsigned int protos_len); +__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, + unsigned int protos_len); +typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, + const unsigned char **out, + unsigned char *outlen, + const unsigned char *in, + unsigned int inlen, + void *arg); +void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, + SSL_CTX_alpn_select_cb_func cb, + void *arg); +void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, + unsigned int *len); + +# ifndef OPENSSL_NO_PSK +/* + * the maximum length of the buffer given to callbacks containing the + * resulting identity/psk + */ +# define PSK_MAX_IDENTITY_LEN 256 +# define PSK_MAX_PSK_LEN 512 +typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, + const char *hint, + char *identity, + unsigned int max_identity_len, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); +void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); + +typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, + const char *identity, + unsigned char *psk, + unsigned int max_psk_len); +void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); +void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); + +__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); +__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); +const char *SSL_get_psk_identity_hint(const SSL *s); +const char *SSL_get_psk_identity(const SSL *s); +# endif + +typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, + const unsigned char *identity, + size_t identity_len, + SSL_SESSION **sess); +typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, + const unsigned char **id, + size_t *idlen, + SSL_SESSION **sess); + +void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); +void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, + SSL_psk_find_session_cb_func cb); +void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); +void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, + SSL_psk_use_session_cb_func cb); + +/* Register callbacks to handle custom TLS Extensions for client or server. */ + +__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, + unsigned int ext_type); + +__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, + unsigned int ext_type, + custom_ext_add_cb add_cb, + custom_ext_free_cb free_cb, + void *add_arg, + custom_ext_parse_cb parse_cb, + void *parse_arg); + +__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, + unsigned int context, + SSL_custom_ext_add_cb_ex add_cb, + SSL_custom_ext_free_cb_ex free_cb, + void *add_arg, + SSL_custom_ext_parse_cb_ex parse_cb, + void *parse_arg); + +__owur int SSL_extension_supported(unsigned int ext_type); + +# define SSL_NOTHING 1 +# define SSL_WRITING 2 +# define SSL_READING 3 +# define SSL_X509_LOOKUP 4 +# define SSL_ASYNC_PAUSED 5 +# define SSL_ASYNC_NO_JOBS 6 +# define SSL_CLIENT_HELLO_CB 7 +# define SSL_RETRY_VERIFY 8 + +/* These will only be used when doing non-blocking IO */ +# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) +# define SSL_want_read(s) (SSL_want(s) == SSL_READING) +# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) +# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) +# define SSL_want_retry_verify(s) (SSL_want(s) == SSL_RETRY_VERIFY) +# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) +# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) +# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) + +# define SSL_MAC_FLAG_READ_MAC_STREAM 1 +# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 +# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4 +# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8 + +/* + * A callback for logging out TLS key material. This callback should log out + * |line| followed by a newline. + */ +typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); + +/* + * SSL_CTX_set_keylog_callback configures a callback to log key material. This + * is intended for debugging use with tools like Wireshark. The cb function + * should log line followed by a newline. + */ +void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); + +/* + * SSL_CTX_get_keylog_callback returns the callback configured by + * SSL_CTX_set_keylog_callback. + */ +SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); + +int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); +uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); +int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); +uint32_t SSL_get_max_early_data(const SSL *s); +int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); +uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); +int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); +uint32_t SSL_get_recv_max_early_data(const SSL *s); + +#ifdef __cplusplus +} +#endif + +# include +# include +# include /* This is mostly sslv3 with a few tweaks */ +# include /* Datagram TLS */ +# include /* Support for the use_srtp extension */ +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * These need to be after the above set of includes due to a compiler bug + * in VisualStudio 2015 + */ +SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER) +#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk)) +#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx))) +#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp))) +#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null()) +#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n))) +#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n)) +#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk)) +#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk)) +#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i))) +#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))) +#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) +#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) +#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk))) +#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk))) +#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk),ossl_check_SSL_CIPHER_freefunc_type(freefunc)) +#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx)) +#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr))) +#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) +#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)) +#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum) +#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk)) +#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk)) +#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk))) +#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc))) +#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP) +#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx))) +#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp))) +#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null()) +#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n))) +#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n)) +#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i))) +#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc)) +#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx)) +#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr))) +#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)) +#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum) +#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk)) +#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk))) +#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc))) +#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp))) + + +/* compatibility */ +# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) +# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) +# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ + (char *)(a))) +# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) +# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) +# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ + (char *)(arg))) +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 void SSL_set_debug(SSL *s, int debug); +# endif + +/* TLSv1.3 KeyUpdate message types */ +/* -1 used so that this is an invalid value for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NONE -1 +/* Values as defined for the on-the-wire protocol */ +#define SSL_KEY_UPDATE_NOT_REQUESTED 0 +#define SSL_KEY_UPDATE_REQUESTED 1 + +/* + * The valid handshake states (one for each type message sent and one for each + * type of message received). There are also two "special" states: + * TLS = TLS or DTLS state + * DTLS = DTLS specific state + * CR/SR = Client Read/Server Read + * CW/SW = Client Write/Server Write + * + * The "special" states are: + * TLS_ST_BEFORE = No handshake has been initiated yet + * TLS_ST_OK = A handshake has been successfully completed + */ +typedef enum { + TLS_ST_BEFORE, + TLS_ST_OK, + DTLS_ST_CR_HELLO_VERIFY_REQUEST, + TLS_ST_CR_SRVR_HELLO, + TLS_ST_CR_CERT, + TLS_ST_CR_COMP_CERT, + TLS_ST_CR_CERT_STATUS, + TLS_ST_CR_KEY_EXCH, + TLS_ST_CR_CERT_REQ, + TLS_ST_CR_SRVR_DONE, + TLS_ST_CR_SESSION_TICKET, + TLS_ST_CR_CHANGE, + TLS_ST_CR_FINISHED, + TLS_ST_CW_CLNT_HELLO, + TLS_ST_CW_CERT, + TLS_ST_CW_COMP_CERT, + TLS_ST_CW_KEY_EXCH, + TLS_ST_CW_CERT_VRFY, + TLS_ST_CW_CHANGE, + TLS_ST_CW_NEXT_PROTO, + TLS_ST_CW_FINISHED, + TLS_ST_SW_HELLO_REQ, + TLS_ST_SR_CLNT_HELLO, + DTLS_ST_SW_HELLO_VERIFY_REQUEST, + TLS_ST_SW_SRVR_HELLO, + TLS_ST_SW_CERT, + TLS_ST_SW_COMP_CERT, + TLS_ST_SW_KEY_EXCH, + TLS_ST_SW_CERT_REQ, + TLS_ST_SW_SRVR_DONE, + TLS_ST_SR_CERT, + TLS_ST_SR_COMP_CERT, + TLS_ST_SR_KEY_EXCH, + TLS_ST_SR_CERT_VRFY, + TLS_ST_SR_NEXT_PROTO, + TLS_ST_SR_CHANGE, + TLS_ST_SR_FINISHED, + TLS_ST_SW_SESSION_TICKET, + TLS_ST_SW_CERT_STATUS, + TLS_ST_SW_CHANGE, + TLS_ST_SW_FINISHED, + TLS_ST_SW_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_ENCRYPTED_EXTENSIONS, + TLS_ST_CR_CERT_VRFY, + TLS_ST_SW_CERT_VRFY, + TLS_ST_CR_HELLO_REQ, + TLS_ST_SW_KEY_UPDATE, + TLS_ST_CW_KEY_UPDATE, + TLS_ST_SR_KEY_UPDATE, + TLS_ST_CR_KEY_UPDATE, + TLS_ST_EARLY_DATA, + TLS_ST_PENDING_EARLY_DATA_END, + TLS_ST_CW_END_OF_EARLY_DATA, + TLS_ST_SR_END_OF_EARLY_DATA +} OSSL_HANDSHAKE_STATE; + +/* + * Most of the following state values are no longer used and are defined to be + * the closest equivalent value in the current state machine code. Not all + * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT + * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, + * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. + */ + +# define SSL_ST_CONNECT 0x1000 +# define SSL_ST_ACCEPT 0x2000 + +# define SSL_ST_MASK 0x0FFF + +# define SSL_CB_LOOP 0x01 +# define SSL_CB_EXIT 0x02 +# define SSL_CB_READ 0x04 +# define SSL_CB_WRITE 0x08 +# define SSL_CB_ALERT 0x4000/* used in callback */ +# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) +# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) +# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) +# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) +# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) +# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) +# define SSL_CB_HANDSHAKE_START 0x10 +# define SSL_CB_HANDSHAKE_DONE 0x20 + +/* Is the SSL_connection established? */ +# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) +# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) +int SSL_in_init(const SSL *s); +int SSL_in_before(const SSL *s); +int SSL_is_init_finished(const SSL *s); + +/* + * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you + * should not need these + */ +# define SSL_ST_READ_HEADER 0xF0 +# define SSL_ST_READ_BODY 0xF1 +# define SSL_ST_READ_DONE 0xF2 + +/*- + * Obtain latest Finished message + * -- that we sent (SSL_get_finished) + * -- that we expected from peer (SSL_get_peer_finished). + * Returns length (0 == no Finished so far), copies up to 'count' bytes. + */ +size_t SSL_get_finished(const SSL *s, void *buf, size_t count); +size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); + +/* + * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are + * 'ored' with SSL_VERIFY_PEER if they are desired + */ +# define SSL_VERIFY_NONE 0x00 +# define SSL_VERIFY_PEER 0x01 +# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 +# define SSL_VERIFY_CLIENT_ONCE 0x04 +# define SSL_VERIFY_POST_HANDSHAKE 0x08 + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define OpenSSL_add_ssl_algorithms() SSL_library_init() +# define SSLeay_add_ssl_algorithms() SSL_library_init() +# endif + +/* More backward compatibility */ +# define SSL_get_cipher(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_cipher_bits(s,np) \ + SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) +# define SSL_get_cipher_version(s) \ + SSL_CIPHER_get_version(SSL_get_current_cipher(s)) +# define SSL_get_cipher_name(s) \ + SSL_CIPHER_get_name(SSL_get_current_cipher(s)) +# define SSL_get_time(a) SSL_SESSION_get_time(a) +# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) +# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) +# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) + +# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) +# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) + +DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) +# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value + * from SSL_AD_... */ +/* These alert types are for SSLv3 and TLSv1 */ +# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY +/* fatal */ +# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE +/* fatal */ +# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC +# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED +# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW +/* fatal */ +# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE +/* fatal */ +# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE +/* Not for TLS */ +# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE +# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE +# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE +# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED +# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED +# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN +/* fatal */ +# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER +/* fatal */ +# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA +/* fatal */ +# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED +/* fatal */ +# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR +# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR +/* fatal */ +# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION +/* fatal */ +# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION +/* fatal */ +# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY +/* fatal */ +# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR +# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED +# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION +# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION +# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED +# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION +# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE +# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME +# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE +# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE +/* fatal */ +# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY +/* fatal */ +# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK +# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL +# define SSL_ERROR_NONE 0 +# define SSL_ERROR_SSL 1 +# define SSL_ERROR_WANT_READ 2 +# define SSL_ERROR_WANT_WRITE 3 +# define SSL_ERROR_WANT_X509_LOOKUP 4 +# define SSL_ERROR_SYSCALL 5/* look at error stack/return + * value/errno */ +# define SSL_ERROR_ZERO_RETURN 6 +# define SSL_ERROR_WANT_CONNECT 7 +# define SSL_ERROR_WANT_ACCEPT 8 +# define SSL_ERROR_WANT_ASYNC 9 +# define SSL_ERROR_WANT_ASYNC_JOB 10 +# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 +# define SSL_ERROR_WANT_RETRY_VERIFY 12 + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_CTRL_SET_TMP_DH 3 +# define SSL_CTRL_SET_TMP_ECDH 4 +# define SSL_CTRL_SET_TMP_DH_CB 6 +# endif + +# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 +# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 +# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 +# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 +# define SSL_CTRL_GET_FLAGS 13 +# define SSL_CTRL_EXTRA_CHAIN_CERT 14 +# define SSL_CTRL_SET_MSG_CALLBACK 15 +# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 +/* only applies to datagram connections */ +# define SSL_CTRL_SET_MTU 17 +/* Stats */ +# define SSL_CTRL_SESS_NUMBER 20 +# define SSL_CTRL_SESS_CONNECT 21 +# define SSL_CTRL_SESS_CONNECT_GOOD 22 +# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 +# define SSL_CTRL_SESS_ACCEPT 24 +# define SSL_CTRL_SESS_ACCEPT_GOOD 25 +# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 +# define SSL_CTRL_SESS_HIT 27 +# define SSL_CTRL_SESS_CB_HIT 28 +# define SSL_CTRL_SESS_MISSES 29 +# define SSL_CTRL_SESS_TIMEOUTS 30 +# define SSL_CTRL_SESS_CACHE_FULL 31 +# define SSL_CTRL_MODE 33 +# define SSL_CTRL_GET_READ_AHEAD 40 +# define SSL_CTRL_SET_READ_AHEAD 41 +# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 +# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 +# define SSL_CTRL_SET_SESS_CACHE_MODE 44 +# define SSL_CTRL_GET_SESS_CACHE_MODE 45 +# define SSL_CTRL_GET_MAX_CERT_LIST 50 +# define SSL_CTRL_SET_MAX_CERT_LIST 51 +# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 +/* see tls1.h for macros based on these */ +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 +# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 +# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 +# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 +# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 +# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ +/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 +# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 +# endif +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 +# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 +# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 +# define SSL_CTRL_SET_SRP_ARG 78 +# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 +# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 +# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 +# define DTLS_CTRL_GET_TIMEOUT 73 +# define DTLS_CTRL_HANDLE_TIMEOUT 74 +# define SSL_CTRL_GET_RI_SUPPORT 76 +# define SSL_CTRL_CLEAR_MODE 78 +# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 +# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 +# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 +# define SSL_CTRL_CHAIN 88 +# define SSL_CTRL_CHAIN_CERT 89 +# define SSL_CTRL_GET_GROUPS 90 +# define SSL_CTRL_SET_GROUPS 91 +# define SSL_CTRL_SET_GROUPS_LIST 92 +# define SSL_CTRL_GET_SHARED_GROUP 93 +# define SSL_CTRL_SET_SIGALGS 97 +# define SSL_CTRL_SET_SIGALGS_LIST 98 +# define SSL_CTRL_CERT_FLAGS 99 +# define SSL_CTRL_CLEAR_CERT_FLAGS 100 +# define SSL_CTRL_SET_CLIENT_SIGALGS 101 +# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 +# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 +# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 +# define SSL_CTRL_BUILD_CERT_CHAIN 105 +# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 +# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 +# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 +# define SSL_CTRL_GET_PEER_TMP_KEY 109 +# define SSL_CTRL_GET_RAW_CIPHERLIST 110 +# define SSL_CTRL_GET_EC_POINT_FORMATS 111 +# define SSL_CTRL_GET_CHAIN_CERTS 115 +# define SSL_CTRL_SELECT_CURRENT_CERT 116 +# define SSL_CTRL_SET_CURRENT_CERT 117 +# define SSL_CTRL_SET_DH_AUTO 118 +# define DTLS_CTRL_SET_LINK_MTU 120 +# define DTLS_CTRL_GET_LINK_MIN_MTU 121 +# define SSL_CTRL_GET_EXTMS_SUPPORT 122 +# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 +# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 +# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 +# define SSL_CTRL_SET_MAX_PIPELINES 126 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 +# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 +# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 +# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 +# define SSL_CTRL_GET_SIGNATURE_NID 132 +# define SSL_CTRL_GET_TMP_KEY 133 +# define SSL_CTRL_GET_NEGOTIATED_GROUP 134 +# define SSL_CTRL_GET_IANA_GROUPS 135 +# define SSL_CTRL_SET_RETRY_VERIFY 136 +# define SSL_CTRL_GET_VERIFY_CERT_STORE 137 +# define SSL_CTRL_GET_CHAIN_CERT_STORE 138 +# define SSL_CERT_SET_FIRST 1 +# define SSL_CERT_SET_NEXT 2 +# define SSL_CERT_SET_SERVER 3 +# define DTLSv1_get_timeout(ssl, arg) \ + SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) +# define DTLSv1_handle_timeout(ssl) \ + SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) +# define SSL_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_clear_num_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) +# define SSL_total_renegotiations(ssl) \ + SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_CTX_set_tmp_dh(ctx,dh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) +# endif +# define SSL_CTX_set_dh_auto(ctx, onoff) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) +# define SSL_set_dh_auto(s, onoff) \ + SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_set_tmp_dh(ssl,dh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) +# define SSL_set_tmp_ecdh(ssl,ecdh) \ + SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) +# endif +# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) +# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) +# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) +# define SSL_CTX_clear_extra_chain_certs(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) +# define SSL_CTX_set0_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) +# define SSL_CTX_set1_chain(ctx,sk) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) +# define SSL_CTX_add0_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) +# define SSL_CTX_add1_chain_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) +# define SSL_CTX_get0_chain_certs(ctx,px509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_CTX_clear_chain_certs(ctx) \ + SSL_CTX_set0_chain(ctx,NULL) +# define SSL_CTX_build_cert_chain(ctx, flags) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_CTX_select_current_cert(ctx,x509) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) +# define SSL_CTX_set_current_cert(ctx, op) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_CTX_set0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_CTX_set1_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) +# define SSL_CTX_get0_verify_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_CTX_set0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) +# define SSL_CTX_set1_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) +# define SSL_CTX_get0_chain_cert_store(ctx,st) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) +# define SSL_set0_chain(s,sk) \ + SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) +# define SSL_set1_chain(s,sk) \ + SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) +# define SSL_add0_chain_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) +# define SSL_add1_chain_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) +# define SSL_get0_chain_certs(s,px509) \ + SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) +# define SSL_clear_chain_certs(s) \ + SSL_set0_chain(s,NULL) +# define SSL_build_cert_chain(s, flags) \ + SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) +# define SSL_select_current_cert(s,x509) \ + SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) +# define SSL_set_current_cert(s,op) \ + SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL) +# define SSL_set0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_set1_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) +#define SSL_get0_verify_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) +# define SSL_set0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) +# define SSL_set1_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) +#define SSL_get0_chain_cert_store(s,st) \ + SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) + +# define SSL_get1_groups(s, glist) \ + SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) +# define SSL_get0_iana_groups(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_IANA_GROUPS,0,(uint16_t **)(plst)) +# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist)) +# define SSL_CTX_set1_groups_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) +# define SSL_set1_groups(s, glist, glistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) +# define SSL_set1_groups_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) +# define SSL_get_shared_group(s, n) \ + SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) +# define SSL_get_negotiated_group(s) \ + SSL_ctrl(s,SSL_CTRL_GET_NEGOTIATED_GROUP,0,NULL) +# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) +# define SSL_CTX_set1_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) +# define SSL_set1_sigalgs(s, slist, slistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) +# define SSL_set1_sigalgs_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) +# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) +# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) +# define SSL_set1_client_sigalgs(s, slist, slistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) +# define SSL_set1_client_sigalgs_list(s, str) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) +# define SSL_get0_certificate_types(s, clist) \ + SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) +# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ + (char *)(clist)) +# define SSL_set1_client_certificate_types(s, clist, clistlen) \ + SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) +# define SSL_get_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) +# define SSL_get_peer_signature_nid(s, pn) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) +# define SSL_get_peer_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) +# define SSL_get_tmp_key(s, pk) \ + SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) +# define SSL_get0_raw_cipherlist(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) +# define SSL_get0_ec_point_formats(s, plst) \ + SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) +# define SSL_CTX_set_min_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +# define SSL_CTX_set_max_proto_version(ctx, version) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +# define SSL_CTX_get_min_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +# define SSL_CTX_get_max_proto_version(ctx) \ + SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) +# define SSL_set_min_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) +# define SSL_set_max_proto_version(s, version) \ + SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) +# define SSL_get_min_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) +# define SSL_get_max_proto_version(s) \ + SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) + +const char *SSL_get0_group_name(SSL *s); +const char *SSL_group_to_name(SSL *s, int id); + +/* Backwards compatibility, original 1.1.0 names */ +# define SSL_CTRL_GET_SERVER_TMP_KEY \ + SSL_CTRL_GET_PEER_TMP_KEY +# define SSL_get_server_tmp_key(s, pk) \ + SSL_get_peer_tmp_key(s, pk) + +int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey); +int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey); + +/* + * The following symbol names are old and obsolete. They are kept + * for compatibility reasons only and should not be used anymore. + */ +# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS +# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS +# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST +# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP + +# define SSL_get1_curves SSL_get1_groups +# define SSL_CTX_set1_curves SSL_CTX_set1_groups +# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list +# define SSL_set1_curves SSL_set1_groups +# define SSL_set1_curves_list SSL_set1_groups_list +# define SSL_get_shared_curve SSL_get_shared_group + + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +/* Provide some compatibility macros for removed functionality. */ +# define SSL_CTX_need_tmp_RSA(ctx) 0 +# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 +# define SSL_need_tmp_RSA(ssl) 0 +# define SSL_set_tmp_rsa(ssl,rsa) 1 +# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) +/* + * We "pretend" to call the callback to avoid warnings about unused static + * functions. + */ +# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) +# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) +# endif +__owur const BIO_METHOD *BIO_f_ssl(void); +__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); +__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); +__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); +__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); +void BIO_ssl_shutdown(BIO *ssl_bio); + +__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); +__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); +__owur SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq, + const SSL_METHOD *meth); +int SSL_CTX_up_ref(SSL_CTX *ctx); +void SSL_CTX_free(SSL_CTX *); +__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); +__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); +__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); +void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); +void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); +__owur int SSL_want(const SSL *s); +__owur int SSL_clear(SSL *s); + +void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); + +__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); +__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); +__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); +__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); +__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); +__owur const char *OPENSSL_cipher_name(const char *rfc_name); +__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); +__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); +__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); +__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); +__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); + +__owur int SSL_get_fd(const SSL *s); +__owur int SSL_get_rfd(const SSL *s); +__owur int SSL_get_wfd(const SSL *s); +__owur const char *SSL_get_cipher_list(const SSL *s, int n); +__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); +__owur int SSL_get_read_ahead(const SSL *s); +__owur int SSL_pending(const SSL *s); +__owur int SSL_has_pending(const SSL *s); +# ifndef OPENSSL_NO_SOCK +__owur int SSL_set_fd(SSL *s, int fd); +__owur int SSL_set_rfd(SSL *s, int fd); +__owur int SSL_set_wfd(SSL *s, int fd); +# endif +void SSL_set0_rbio(SSL *s, BIO *rbio); +void SSL_set0_wbio(SSL *s, BIO *wbio); +void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); +__owur BIO *SSL_get_rbio(const SSL *s); +__owur BIO *SSL_get_wbio(const SSL *s); +__owur int SSL_set_cipher_list(SSL *s, const char *str); +__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); +__owur int SSL_set_ciphersuites(SSL *s, const char *str); +void SSL_set_read_ahead(SSL *s, int yes); +__owur int SSL_get_verify_mode(const SSL *s); +__owur int SSL_get_verify_depth(const SSL *s); +__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); +void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); +void SSL_set_verify_depth(SSL *s, int depth); +void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, + const unsigned char *d, long len); +# endif +__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); +__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, + long len); +__owur int SSL_use_certificate(SSL *ssl, X509 *x); +__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); +__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); + + +/* serverinfo file format versions */ +# define SSL_SERVERINFOV1 1 +# define SSL_SERVERINFOV2 2 + +/* Set serverinfo data for the current active cert. */ +__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, + size_t serverinfo_length); +__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, + const unsigned char *serverinfo, + size_t serverinfo_length); +__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); + +#ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); +#endif + +__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); +__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); + +#ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, + int type); +#endif +__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, + int type); +__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, + int type); +/* PEM type */ +__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); +__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); +__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); +__owur STACK_OF(X509_NAME) +*SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx, + const char *propq); +__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *file); +int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *dir); +int SSL_add_store_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, + const char *uri); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define SSL_load_error_strings() \ + OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +# endif + +__owur const char *SSL_state_string(const SSL *s); +__owur const char *SSL_rstate_string(const SSL *s); +__owur const char *SSL_state_string_long(const SSL *s); +__owur const char *SSL_rstate_string_long(const SSL *s); +__owur long SSL_SESSION_get_time(const SSL_SESSION *s); +__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); +__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); +__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); +__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); +__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); + +__owur time_t SSL_SESSION_get_time_ex(const SSL_SESSION *s); +__owur time_t SSL_SESSION_set_time_ex(SSL_SESSION *s, time_t t); + +__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); +__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); +void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, + const unsigned char **alpn, + size_t *len); +__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, + const unsigned char *alpn, + size_t len); +__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); +__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); +__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); +__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); +void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, + size_t *len); +__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); +__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, + uint32_t max_early_data); +__owur int SSL_copy_session_id(SSL *to, const SSL *from); +__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); +__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); +__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, + unsigned int sid_len); +__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); + +__owur SSL_SESSION *SSL_SESSION_new(void); +__owur SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src); +const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, + unsigned int *len); +const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, + unsigned int *len); +__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); +# ifndef OPENSSL_NO_STDIO +int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); +# endif +int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); +int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); +int SSL_SESSION_up_ref(SSL_SESSION *ses); +void SSL_SESSION_free(SSL_SESSION *ses); +__owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp); +__owur int SSL_set_session(SSL *to, SSL_SESSION *session); +int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); +int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); +__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); +__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); +__owur int SSL_has_matching_session_id(const SSL *s, + const unsigned char *id, + unsigned int id_len); +SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, + long length); +SSL_SESSION *d2i_SSL_SESSION_ex(SSL_SESSION **a, const unsigned char **pp, + long length, OSSL_LIB_CTX *libctx, + const char *propq); + +# ifdef OPENSSL_X509_H +__owur X509 *SSL_get0_peer_certificate(const SSL *s); +__owur X509 *SSL_get1_peer_certificate(const SSL *s); +/* Deprecated in 3.0.0 */ +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define SSL_get_peer_certificate SSL_get1_peer_certificate +# endif +# endif + +__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); + +__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); +__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); +__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); +void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); +void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); +void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, + int (*cb) (X509_STORE_CTX *, void *), + void *arg); +void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), + void *arg); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, + long len); +# endif +__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); +__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, + const unsigned char *d, long len); +__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); +__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, + const unsigned char *d); +__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, + STACK_OF(X509) *chain, int override); + +void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); +pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); +void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); +void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); +void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); +pem_password_cb *SSL_get_default_passwd_cb(SSL *s); +void *SSL_get_default_passwd_cb_userdata(SSL *s); + +__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); +__owur int SSL_check_private_key(const SSL *ctx); + +__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, + const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +SSL *SSL_new(SSL_CTX *ctx); +int SSL_up_ref(SSL *s); +int SSL_is_dtls(const SSL *s); +int SSL_is_tls(const SSL *s); +int SSL_is_quic(const SSL *s); +__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, + unsigned int sid_ctx_len); + +__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); +__owur int SSL_set_purpose(SSL *ssl, int purpose); +__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); +__owur int SSL_set_trust(SSL *ssl, int trust); + +__owur int SSL_set1_host(SSL *s, const char *hostname); +__owur int SSL_add1_host(SSL *s, const char *hostname); +__owur const char *SSL_get0_peername(SSL *s); +void SSL_set_hostflags(SSL *s, unsigned int flags); + +__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); +__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, + uint8_t mtype, uint8_t ord); +__owur int SSL_dane_enable(SSL *s, const char *basedomain); +__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, + uint8_t mtype, const unsigned char *data, size_t dlen); +__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); +__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, + uint8_t *mtype, const unsigned char **data, + size_t *dlen); +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +SSL_DANE *SSL_get0_dane(SSL *ssl); +/* + * DANE flags + */ +unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); +unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); +unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); + +__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); +__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); + +__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); +__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); + +# ifndef OPENSSL_NO_SRP +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); +OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); +OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); +OSSL_DEPRECATEDIN_3_0 +int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, + char *(*cb) (SSL *, void *)); +OSSL_DEPRECATEDIN_3_0 +int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, + int (*cb) (SSL *, void *)); +OSSL_DEPRECATEDIN_3_0 +int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, + int (*cb) (SSL *, int *, void *)); +OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); + +OSSL_DEPRECATEDIN_3_0 +int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, + BIGNUM *sa, BIGNUM *v, char *info); +OSSL_DEPRECATEDIN_3_0 +int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, + const char *grp); + +OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_g(SSL *s); +OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_N(SSL *s); + +OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_username(SSL *s); +OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s); +# endif +# endif + +/* + * ClientHello callback and helpers. + */ + +# define SSL_CLIENT_HELLO_SUCCESS 1 +# define SSL_CLIENT_HELLO_ERROR 0 +# define SSL_CLIENT_HELLO_RETRY (-1) + +typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); +void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, + void *arg); +int SSL_client_hello_isv2(SSL *s); +unsigned int SSL_client_hello_get0_legacy_version(SSL *s); +size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); +size_t SSL_client_hello_get0_compression_methods(SSL *s, + const unsigned char **out); +int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); +int SSL_client_hello_get_extension_order(SSL *s, uint16_t *exts, + size_t *num_exts); +int SSL_client_hello_get0_ext(SSL *s, unsigned int type, + const unsigned char **out, size_t *outlen); + +void SSL_certs_clear(SSL *s); +void SSL_free(SSL *ssl); +# ifdef OSSL_ASYNC_FD +/* + * Windows application developer has to include windows.h to use these. + */ +__owur int SSL_waiting_for_async(SSL *s); +__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); +__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, + size_t *numaddfds, OSSL_ASYNC_FD *delfd, + size_t *numdelfds); +__owur int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback); +__owur int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg); +__owur int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback); +__owur int SSL_set_async_callback_arg(SSL *s, void *arg); +__owur int SSL_get_async_status(SSL *s, int *status); + +# endif +__owur int SSL_accept(SSL *ssl); +__owur int SSL_stateless(SSL *s); +__owur int SSL_connect(SSL *ssl); +__owur int SSL_read(SSL *ssl, void *buf, int num); +__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); + +# define SSL_READ_EARLY_DATA_ERROR 0 +# define SSL_READ_EARLY_DATA_SUCCESS 1 +# define SSL_READ_EARLY_DATA_FINISH 2 + +__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, + size_t *readbytes); +__owur int SSL_peek(SSL *ssl, void *buf, int num); +__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); +__owur ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size, + int flags); +__owur int SSL_write(SSL *ssl, const void *buf, int num); +__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); +__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, + size_t *written); +long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); +long SSL_callback_ctrl(SSL *, int, void (*)(void)); +long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); +long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); + +# define SSL_WRITE_FLAG_CONCLUDE (1U << 0) + +__owur int SSL_write_ex2(SSL *s, const void *buf, size_t num, + uint64_t flags, + size_t *written); + +# define SSL_EARLY_DATA_NOT_SENT 0 +# define SSL_EARLY_DATA_REJECTED 1 +# define SSL_EARLY_DATA_ACCEPTED 2 + +__owur int SSL_get_early_data_status(const SSL *s); + +__owur int SSL_get_error(const SSL *s, int ret_code); +__owur const char *SSL_get_version(const SSL *s); +__owur int SSL_get_handshake_rtt(const SSL *s, uint64_t *rtt); + +/* This sets the 'default' SSL version that SSL_new() will create */ +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); +# endif + +# ifndef OPENSSL_NO_SSL3_METHOD +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_client_method(void); +# endif +# endif + +#define SSLv23_method TLS_method +#define SSLv23_server_method TLS_server_method +#define SSLv23_client_method TLS_client_method + +/* Negotiate highest available SSL/TLS version */ +__owur const SSL_METHOD *TLS_method(void); +__owur const SSL_METHOD *TLS_server_method(void); +__owur const SSL_METHOD *TLS_client_method(void); + +# ifndef OPENSSL_NO_TLS1_METHOD +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_client_method(void); +# endif +# endif + +# ifndef OPENSSL_NO_TLS1_1_METHOD +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_client_method(void); +# endif +# endif + +# ifndef OPENSSL_NO_TLS1_2_METHOD +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_client_method(void); +# endif +# endif + +# ifndef OPENSSL_NO_DTLS1_METHOD +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_client_method(void); +# endif +# endif + +# ifndef OPENSSL_NO_DTLS1_2_METHOD +/* DTLSv1.2 */ +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_server_method(void); +OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_client_method(void); +# endif +# endif + +__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ +__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ + +__owur size_t DTLS_get_data_mtu(const SSL *s); + +__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); +__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); +__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); + +__owur int SSL_do_handshake(SSL *s); +int SSL_key_update(SSL *s, int updatetype); +int SSL_get_key_update_type(const SSL *s); +int SSL_renegotiate(SSL *s); +int SSL_renegotiate_abbreviated(SSL *s); +__owur int SSL_renegotiate_pending(const SSL *s); +int SSL_new_session_ticket(SSL *s); +int SSL_shutdown(SSL *s); +__owur int SSL_verify_client_post_handshake(SSL *s); +void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); +void SSL_set_post_handshake_auth(SSL *s, int val); + +__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); +__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); +__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); +__owur const char *SSL_alert_type_string_long(int value); +__owur const char *SSL_alert_type_string(int value); +__owur const char *SSL_alert_desc_string_long(int value); +__owur const char *SSL_alert_desc_string(int value); + +void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); +__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); +__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); +__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); +__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); + +void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); +void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); +__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); +__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); +__owur int SSL_add_client_CA(SSL *ssl, X509 *x); +__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); + +void SSL_set_connect_state(SSL *s); +void SSL_set_accept_state(SSL *s); + +__owur long SSL_get_default_timeout(const SSL *s); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define SSL_library_init() OPENSSL_init_ssl(0, NULL) +# endif + +__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); +__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); + +__owur SSL *SSL_dup(SSL *ssl); + +__owur X509 *SSL_get_certificate(const SSL *ssl); +/* + * EVP_PKEY + */ +struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); + +__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); +__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); + +void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); +__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); +void SSL_set_quiet_shutdown(SSL *ssl, int mode); +__owur int SSL_get_quiet_shutdown(const SSL *ssl); +void SSL_set_shutdown(SSL *ssl, int mode); +__owur int SSL_get_shutdown(const SSL *ssl); +__owur int SSL_version(const SSL *ssl); +__owur int SSL_client_version(const SSL *s); +__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); +__owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx); +__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile); +__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath); +__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore); +__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, + const char *CAfile, + const char *CApath); +# define SSL_get0_session SSL_get_session/* just peek at pointer */ +__owur SSL_SESSION *SSL_get_session(const SSL *ssl); +__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ +__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); +SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); +void SSL_set_info_callback(SSL *ssl, + void (*cb) (const SSL *ssl, int type, int val)); +void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, + int val); +__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); + +void SSL_set_verify_result(SSL *ssl, long v); +__owur long SSL_get_verify_result(const SSL *ssl); +__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); + +__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, + size_t outlen); +__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, + unsigned char *out, size_t outlen); +__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, + const unsigned char *in, size_t len); +uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); + +#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) +__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); +void *SSL_get_ex_data(const SSL *ssl, int idx); +#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) +__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); +void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); +#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) +__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); +void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); + +__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); + +# define SSL_CTX_sess_set_cache_size(ctx,t) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) +# define SSL_CTX_sess_get_cache_size(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) +# define SSL_CTX_set_session_cache_mode(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) +# define SSL_CTX_get_session_cache_mode(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) + +# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) +# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) +# define SSL_CTX_get_read_ahead(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) +# define SSL_CTX_set_read_ahead(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) +# define SSL_CTX_get_max_cert_list(ctx) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_CTX_set_max_cert_list(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) +# define SSL_get_max_cert_list(ssl) \ + SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) +# define SSL_set_max_cert_list(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) + +# define SSL_CTX_set_max_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_set_max_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_split_send_fragment(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_set_split_send_fragment(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) +# define SSL_CTX_set_max_pipelines(ctx,m) \ + SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) +# define SSL_set_max_pipelines(ssl,m) \ + SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) +# define SSL_set_retry_verify(ssl) \ + (SSL_ctrl(ssl,SSL_CTRL_SET_RETRY_VERIFY,0,NULL) > 0) + +void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); +void SSL_set_default_read_buffer_len(SSL *s, size_t len); + +# ifndef OPENSSL_NO_DH +# ifndef OPENSSL_NO_DEPRECATED_3_0 +/* NB: the |keylength| is only applicable when is_export is true */ +OSSL_DEPRECATEDIN_3_0 +void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +OSSL_DEPRECATEDIN_3_0 +void SSL_set_tmp_dh_callback(SSL *ssl, + DH *(*dh) (SSL *ssl, int is_export, + int keylength)); +# endif +# endif + +__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); +__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); +__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); +__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); +__owur int SSL_COMP_get_id(const SSL_COMP *comp); +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) + *meths); +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define SSL_COMP_free_compression_methods() while(0) continue +# endif +__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); + +const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); +int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); +int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); +int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, + int isv2format, STACK_OF(SSL_CIPHER) **sk, + STACK_OF(SSL_CIPHER) **scsvs); + +/* TLS extensions functions */ +__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); + +__owur int SSL_set_session_ticket_ext_cb(SSL *s, + tls_session_ticket_ext_cb_fn cb, + void *arg); + +/* Pre-shared secret session resumption functions */ +__owur int SSL_set_session_secret_cb(SSL *s, + tls_session_secret_cb_fn session_secret_cb, + void *arg); + +void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, + int (*cb) (SSL *ssl, + int + is_forward_secure)); + +void SSL_set_not_resumable_session_callback(SSL *ssl, + int (*cb) (SSL *ssl, + int is_forward_secure)); + +void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); +void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); +int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); + +int SSL_set_record_padding_callback(SSL *ssl, + size_t (*cb) (SSL *ssl, int type, + size_t len, void *arg)); +void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); +void *SSL_get_record_padding_callback_arg(const SSL *ssl); +int SSL_set_block_padding(SSL *ssl, size_t block_size); + +int SSL_set_num_tickets(SSL *s, size_t num_tickets); +size_t SSL_get_num_tickets(const SSL *s); +int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); +size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); + +/* QUIC support */ +int SSL_handle_events(SSL *s); +__owur int SSL_get_event_timeout(SSL *s, struct timeval *tv, int *is_infinite); +__owur int SSL_get_rpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_get_wpoll_descriptor(SSL *s, BIO_POLL_DESCRIPTOR *desc); +__owur int SSL_net_read_desired(SSL *s); +__owur int SSL_net_write_desired(SSL *s); +__owur int SSL_set_blocking_mode(SSL *s, int blocking); +__owur int SSL_get_blocking_mode(SSL *s); +__owur int SSL_set1_initial_peer_addr(SSL *s, const BIO_ADDR *peer_addr); +__owur SSL *SSL_get0_connection(SSL *s); +__owur int SSL_is_connection(SSL *s); + +#define SSL_STREAM_TYPE_NONE 0 +#define SSL_STREAM_TYPE_READ (1U << 0) +#define SSL_STREAM_TYPE_WRITE (1U << 1) +#define SSL_STREAM_TYPE_BIDI (SSL_STREAM_TYPE_READ | SSL_STREAM_TYPE_WRITE) +__owur int SSL_get_stream_type(SSL *s); + +__owur uint64_t SSL_get_stream_id(SSL *s); +__owur int SSL_is_stream_local(SSL *s); + +#define SSL_DEFAULT_STREAM_MODE_NONE 0 +#define SSL_DEFAULT_STREAM_MODE_AUTO_BIDI 1 +#define SSL_DEFAULT_STREAM_MODE_AUTO_UNI 2 +__owur int SSL_set_default_stream_mode(SSL *s, uint32_t mode); + +#define SSL_STREAM_FLAG_UNI (1U << 0) +#define SSL_STREAM_FLAG_NO_BLOCK (1U << 1) +#define SSL_STREAM_FLAG_ADVANCE (1U << 2) +__owur SSL *SSL_new_stream(SSL *s, uint64_t flags); + +#define SSL_INCOMING_STREAM_POLICY_AUTO 0 +#define SSL_INCOMING_STREAM_POLICY_ACCEPT 1 +#define SSL_INCOMING_STREAM_POLICY_REJECT 2 +__owur int SSL_set_incoming_stream_policy(SSL *s, int policy, uint64_t aec); + +#define SSL_ACCEPT_STREAM_NO_BLOCK (1U << 0) +__owur SSL *SSL_accept_stream(SSL *s, uint64_t flags); +__owur size_t SSL_get_accept_stream_queue_len(SSL *s); + +# ifndef OPENSSL_NO_QUIC +__owur int SSL_inject_net_dgram(SSL *s, const unsigned char *buf, + size_t buf_len, + const BIO_ADDR *peer, + const BIO_ADDR *local); +# endif + +typedef struct ssl_shutdown_ex_args_st { + uint64_t quic_error_code; + const char *quic_reason; +} SSL_SHUTDOWN_EX_ARGS; + +#define SSL_SHUTDOWN_FLAG_RAPID (1U << 0) +#define SSL_SHUTDOWN_FLAG_NO_STREAM_FLUSH (1U << 1) +#define SSL_SHUTDOWN_FLAG_NO_BLOCK (1U << 2) +#define SSL_SHUTDOWN_FLAG_WAIT_PEER (1U << 3) + +__owur int SSL_shutdown_ex(SSL *ssl, uint64_t flags, + const SSL_SHUTDOWN_EX_ARGS *args, + size_t args_len); + +__owur int SSL_stream_conclude(SSL *ssl, uint64_t flags); + +typedef struct ssl_stream_reset_args_st { + uint64_t quic_error_code; +} SSL_STREAM_RESET_ARGS; + +__owur int SSL_stream_reset(SSL *ssl, + const SSL_STREAM_RESET_ARGS *args, + size_t args_len); + +#define SSL_STREAM_STATE_NONE 0 +#define SSL_STREAM_STATE_OK 1 +#define SSL_STREAM_STATE_WRONG_DIR 2 +#define SSL_STREAM_STATE_FINISHED 3 +#define SSL_STREAM_STATE_RESET_LOCAL 4 +#define SSL_STREAM_STATE_RESET_REMOTE 5 +#define SSL_STREAM_STATE_CONN_CLOSED 6 +__owur int SSL_get_stream_read_state(SSL *ssl); +__owur int SSL_get_stream_write_state(SSL *ssl); + +__owur int SSL_get_stream_read_error_code(SSL *ssl, uint64_t *app_error_code); +__owur int SSL_get_stream_write_error_code(SSL *ssl, uint64_t *app_error_code); + +#define SSL_CONN_CLOSE_FLAG_LOCAL (1U << 0) +#define SSL_CONN_CLOSE_FLAG_TRANSPORT (1U << 1) + +typedef struct ssl_conn_close_info_st { + uint64_t error_code, frame_type; + const char *reason; + size_t reason_len; + uint32_t flags; +} SSL_CONN_CLOSE_INFO; + +__owur int SSL_get_conn_close_info(SSL *ssl, + SSL_CONN_CLOSE_INFO *info, + size_t info_len); + +# define SSL_VALUE_CLASS_GENERIC 0 +# define SSL_VALUE_CLASS_FEATURE_REQUEST 1 +# define SSL_VALUE_CLASS_FEATURE_PEER_REQUEST 2 +# define SSL_VALUE_CLASS_FEATURE_NEGOTIATED 3 + +# define SSL_VALUE_NONE 0 +# define SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL 1 +# define SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL 2 +# define SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL 3 +# define SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL 4 +# define SSL_VALUE_QUIC_IDLE_TIMEOUT 5 +# define SSL_VALUE_EVENT_HANDLING_MODE 6 +# define SSL_VALUE_STREAM_WRITE_BUF_SIZE 7 +# define SSL_VALUE_STREAM_WRITE_BUF_USED 8 +# define SSL_VALUE_STREAM_WRITE_BUF_AVAIL 9 + +# define SSL_VALUE_EVENT_HANDLING_MODE_INHERIT 0 +# define SSL_VALUE_EVENT_HANDLING_MODE_IMPLICIT 1 +# define SSL_VALUE_EVENT_HANDLING_MODE_EXPLICIT 2 + +int SSL_get_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t *v); +int SSL_set_value_uint(SSL *s, uint32_t class_, uint32_t id, uint64_t v); + +# define SSL_get_generic_value_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_set_generic_value_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_GENERIC, (id), (v)) +# define SSL_get_feature_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_set_feature_request_uint(ssl, id, v) \ + SSL_set_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_REQUEST, (id), (v)) +# define SSL_get_feature_peer_request_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_PEER_REQUEST, (id), (v)) +# define SSL_get_feature_negotiated_uint(ssl, id, v) \ + SSL_get_value_uint((ssl), SSL_VALUE_CLASS_FEATURE_NEGOTIATED, (id), (v)) + +# define SSL_get_quic_stream_bidi_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_bidi_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_BIDI_REMOTE_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_local_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_LOCAL_AVAIL, \ + (value)) +# define SSL_get_quic_stream_uni_remote_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_QUIC_STREAM_UNI_REMOTE_AVAIL, \ + (value)) + +# define SSL_get_event_handling_mode(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) +# define SSL_set_event_handling_mode(ssl, value) \ + SSL_set_generic_value_uint((ssl), SSL_VALUE_EVENT_HANDLING_MODE, \ + (value)) + +# define SSL_get_stream_write_buf_size(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_SIZE, \ + (value)) +# define SSL_get_stream_write_buf_used(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_USED, \ + (value)) +# define SSL_get_stream_write_buf_avail(ssl, value) \ + SSL_get_generic_value_uint((ssl), SSL_VALUE_STREAM_WRITE_BUF_AVAIL, \ + (value)) + +# define SSL_POLL_EVENT_NONE 0 + +# define SSL_POLL_EVENT_F (1U << 0) /* F (Failure) */ +# define SSL_POLL_EVENT_EL (1U << 1) /* EL (Exception on Listener) */ +# define SSL_POLL_EVENT_EC (1U << 2) /* EC (Exception on Conn) */ +# define SSL_POLL_EVENT_ECD (1U << 3) /* ECD (Exception on Conn Drained) */ +# define SSL_POLL_EVENT_ER (1U << 4) /* ER (Exception on Read) */ +# define SSL_POLL_EVENT_EW (1U << 5) /* EW (Exception on Write) */ +# define SSL_POLL_EVENT_R (1U << 6) /* R (Readable) */ +# define SSL_POLL_EVENT_W (1U << 7) /* W (Writable) */ +# define SSL_POLL_EVENT_IC (1U << 8) /* IC (Incoming Connection) */ +# define SSL_POLL_EVENT_ISB (1U << 9) /* ISB (Incoming Stream: Bidi) */ +# define SSL_POLL_EVENT_ISU (1U << 10) /* ISU (Incoming Stream: Uni) */ +# define SSL_POLL_EVENT_OSB (1U << 11) /* OSB (Outgoing Stream: Bidi) */ +# define SSL_POLL_EVENT_OSU (1U << 12) /* OSU (Outgoing Stream: Uni) */ + +# define SSL_POLL_EVENT_RW (SSL_POLL_EVENT_R | SSL_POLL_EVENT_W) +# define SSL_POLL_EVENT_RE (SSL_POLL_EVENT_R | SSL_POLL_EVENT_ER) +# define SSL_POLL_EVENT_WE (SSL_POLL_EVENT_W | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_RWE (SSL_POLL_EVENT_RE | SSL_POLL_EVENT_WE) +# define SSL_POLL_EVENT_E (SSL_POLL_EVENT_EL | SSL_POLL_EVENT_EC \ + | SSL_POLL_EVENT_ER | SSL_POLL_EVENT_EW) +# define SSL_POLL_EVENT_IS (SSL_POLL_EVENT_ISB | SSL_POLL_EVENT_ISU) +# define SSL_POLL_EVENT_ISE (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_EC) +# define SSL_POLL_EVENT_I (SSL_POLL_EVENT_IS | SSL_POLL_EVENT_IC) +# define SSL_POLL_EVENT_OS (SSL_POLL_EVENT_OSB | SSL_POLL_EVENT_OSU) +# define SSL_POLL_EVENT_OSE (SSL_POLL_EVENT_OS | SSL_POLL_EVENT_EC) + +typedef struct ssl_poll_item_st { + BIO_POLL_DESCRIPTOR desc; + uint64_t events, revents; +} SSL_POLL_ITEM; + +# define SSL_POLL_FLAG_NO_HANDLE_EVENTS (1U << 0) + +__owur int SSL_poll(SSL_POLL_ITEM *items, + size_t num_items, + size_t stride, + const struct timeval *timeout, + uint64_t flags, + size_t *result_count); + +static ossl_inline ossl_unused BIO_POLL_DESCRIPTOR +SSL_as_poll_descriptor(SSL *s) +{ + BIO_POLL_DESCRIPTOR d; + + d.type = BIO_POLL_DESCRIPTOR_TYPE_SSL; + d.value.ssl = s; + return d; +} + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define SSL_cache_hit(s) SSL_session_reused(s) +# endif + +__owur int SSL_session_reused(const SSL *s); +__owur int SSL_is_server(const SSL *s); + +__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); +int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); +void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); +unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); +__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, + unsigned int flags); +__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); + +void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); +void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); + +__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); +__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); +__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); + +void SSL_add_ssl_module(void); +int SSL_config(SSL *s, const char *name); +int SSL_CTX_config(SSL_CTX *ctx, const char *name); + +# ifndef OPENSSL_NO_SSL_TRACE +void SSL_trace(int write_p, int version, int content_type, + const void *buf, size_t len, SSL *ssl, void *arg); +# endif + +# ifndef OPENSSL_NO_SOCK +int DTLSv1_listen(SSL *s, BIO_ADDR *client); +# endif + +# ifndef OPENSSL_NO_CT + +/* + * A callback for verifying that the received SCTs are sufficient. + * Expected to return 1 if they are sufficient, otherwise 0. + * May return a negative integer if an error occurs. + * A connection should be aborted if the SCTs are deemed insufficient. + */ +typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, + const STACK_OF(SCT) *scts, void *arg); + +/* + * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate + * the received SCTs. + * If the callback returns a non-positive result, the connection is terminated. + * Call this function before beginning a handshake. + * If a NULL |callback| is provided, SCT validation is disabled. + * |arg| is arbitrary userdata that will be passed to the callback whenever it + * is invoked. Ownership of |arg| remains with the caller. + * + * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response + * will be requested. + */ +int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, + void *arg); +int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, + ssl_ct_validation_cb callback, + void *arg); +#define SSL_disable_ct(s) \ + ((void) SSL_set_validation_callback((s), NULL, NULL)) +#define SSL_CTX_disable_ct(ctx) \ + ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) + +/* + * The validation type enumerates the available behaviours of the built-in SSL + * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). + * The underlying callback is a static function in libssl. + */ +enum { + SSL_CT_VALIDATION_PERMISSIVE = 0, + SSL_CT_VALIDATION_STRICT +}; + +/* + * Enable CT by setting up a callback that implements one of the built-in + * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always + * continues the handshake, the application can make appropriate decisions at + * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at + * least one valid SCT, or else handshake termination will be requested. The + * handshake may continue anyway if SSL_VERIFY_NONE is in effect. + */ +int SSL_enable_ct(SSL *s, int validation_mode); +int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); + +/* + * Report whether a non-NULL callback is enabled. + */ +int SSL_ct_is_enabled(const SSL *s); +int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); + +/* Gets the SCTs received from a connection */ +const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); + +/* + * Loads the CT log list from the default location. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); + +/* + * Loads the CT log list from the specified file path. + * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, + * the log information loaded from this file will be appended to the + * CTLOG_STORE. + * Returns 1 on success, 0 otherwise. + */ +int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); + +/* + * Sets the CT log list used by all SSL connections created from this SSL_CTX. + * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. + */ +void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); + +/* + * Gets the CT log list used by all SSL connections created from this SSL_CTX. + * This will be NULL unless one of the following functions has been called: + * - SSL_CTX_set_default_ctlog_list_file + * - SSL_CTX_set_ctlog_list_file + * - SSL_CTX_set_ctlog_store + */ +const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); + +# endif /* OPENSSL_NO_CT */ + +/* What the "other" parameter contains in security callback */ +/* Mask for type */ +# define SSL_SECOP_OTHER_TYPE 0xffff0000 +# define SSL_SECOP_OTHER_NONE 0 +# define SSL_SECOP_OTHER_CIPHER (1 << 16) +# define SSL_SECOP_OTHER_CURVE (2 << 16) +# define SSL_SECOP_OTHER_DH (3 << 16) +# define SSL_SECOP_OTHER_PKEY (4 << 16) +# define SSL_SECOP_OTHER_SIGALG (5 << 16) +# define SSL_SECOP_OTHER_CERT (6 << 16) + +/* Indicated operation refers to peer key or certificate */ +# define SSL_SECOP_PEER 0x1000 + +/* Values for "op" parameter in security callback */ + +/* Called to filter ciphers */ +/* Ciphers client supports */ +# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) +/* Cipher shared by client/server */ +# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) +/* Sanity check of cipher server selects */ +# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) +/* Curves supported by client */ +# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) +/* Curves shared by client/server */ +# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) +/* Sanity check of curve server selects */ +# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) +/* Temporary DH key */ +# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) +/* SSL/TLS version */ +# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) +/* Session tickets */ +# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) +/* Supported signature algorithms sent to peer */ +# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) +/* Shared signature algorithm */ +# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) +/* Sanity check signature algorithm allowed */ +# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) +/* Used to get mask of supported public key signature algorithms */ +# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) +/* Use to see if compression is allowed */ +# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) +/* EE key in certificate */ +# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) +/* CA key in certificate */ +# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) +/* CA digest algorithm in certificate */ +# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) +/* Peer EE key in certificate */ +# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) +/* Peer CA key in certificate */ +# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) +/* Peer CA digest algorithm in certificate */ +# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) + +void SSL_set_security_level(SSL *s, int level); +__owur int SSL_get_security_level(const SSL *s); +void SSL_set_security_callback(SSL *s, + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); +int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, + const SSL_CTX *ctx, int op, + int bits, int nid, void *other, + void *ex); +void SSL_set0_security_ex_data(SSL *s, void *ex); +__owur void *SSL_get0_security_ex_data(const SSL *s); + +void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); +__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); +void SSL_CTX_set_security_callback(SSL_CTX *ctx, + int (*cb) (const SSL *s, const SSL_CTX *ctx, + int op, int bits, int nid, + void *other, void *ex)); +int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, + const SSL_CTX *ctx, + int op, int bits, + int nid, + void *other, + void *ex); +void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); +__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); + +/* OPENSSL_INIT flag 0x010000 reserved for internal use */ +# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L +# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L + +# define OPENSSL_INIT_SSL_DEFAULT \ + (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) + +int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); + +# ifndef OPENSSL_NO_UNIT_TEST +__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); +# endif + +__owur int SSL_free_buffers(SSL *ssl); +__owur int SSL_alloc_buffers(SSL *ssl); + +/* Status codes passed to the decrypt session ticket callback. Some of these + * are for internal use only and are never passed to the callback. */ +typedef int SSL_TICKET_STATUS; + +/* Support for ticket appdata */ +/* fatal error, malloc failure */ +# define SSL_TICKET_FATAL_ERR_MALLOC 0 +/* fatal error, either from parsing or decrypting the ticket */ +# define SSL_TICKET_FATAL_ERR_OTHER 1 +/* No ticket present */ +# define SSL_TICKET_NONE 2 +/* Empty ticket present */ +# define SSL_TICKET_EMPTY 3 +/* the ticket couldn't be decrypted */ +# define SSL_TICKET_NO_DECRYPT 4 +/* a ticket was successfully decrypted */ +# define SSL_TICKET_SUCCESS 5 +/* same as above but the ticket needs to be renewed */ +# define SSL_TICKET_SUCCESS_RENEW 6 + +/* Return codes for the decrypt session ticket callback */ +typedef int SSL_TICKET_RETURN; + +/* An error occurred */ +#define SSL_TICKET_RETURN_ABORT 0 +/* Do not use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE 1 +/* Do not use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_IGNORE_RENEW 2 +/* Use the ticket, do not send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE 3 +/* Use the ticket, send a renewed ticket to the client */ +#define SSL_TICKET_RETURN_USE_RENEW 4 + +typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); +typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, + const unsigned char *keyname, + size_t keyname_length, + SSL_TICKET_STATUS status, + void *arg); +int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, + SSL_CTX_generate_session_ticket_fn gen_cb, + SSL_CTX_decrypt_session_ticket_fn dec_cb, + void *arg); +int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); +int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); + +typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); + +void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); + + +typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); +void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, + SSL_allow_early_data_cb_fn cb, + void *arg); +void SSL_set_allow_early_data_cb(SSL *s, + SSL_allow_early_data_cb_fn cb, + void *arg); + +/* store the default cipher strings inside the library */ +const char *OSSL_default_cipher_list(void); +const char *OSSL_default_ciphersuites(void); + +/* RFC8879 Certificate compression APIs */ + +int SSL_CTX_compress_certs(SSL_CTX *ctx, int alg); +int SSL_compress_certs(SSL *ssl, int alg); + +int SSL_CTX_set1_cert_comp_preference(SSL_CTX *ctx, int *algs, size_t len); +int SSL_set1_cert_comp_preference(SSL *ssl, int *algs, size_t len); + +int SSL_CTX_set1_compressed_cert(SSL_CTX *ctx, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +int SSL_set1_compressed_cert(SSL *ssl, int algorithm, unsigned char *comp_data, + size_t comp_length, size_t orig_length); +size_t SSL_CTX_get1_compressed_cert(SSL_CTX *ctx, int alg, unsigned char **data, size_t *orig_len); +size_t SSL_get1_compressed_cert(SSL *ssl, int alg, unsigned char **data, size_t *orig_len); + +__owur int SSL_add_expected_rpk(SSL *s, EVP_PKEY *rpk); +__owur EVP_PKEY *SSL_get0_peer_rpk(const SSL *s); +__owur EVP_PKEY *SSL_SESSION_get0_peer_rpk(SSL_SESSION *s); +__owur int SSL_get_negotiated_client_cert_type(const SSL *s); +__owur int SSL_get_negotiated_server_cert_type(const SSL *s); + +__owur int SSL_set1_client_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_set1_server_cert_type(SSL *s, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_client_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_CTX_set1_server_cert_type(SSL_CTX *ctx, const unsigned char *val, size_t len); +__owur int SSL_get0_client_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_get0_server_cert_type(const SSL *s, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_client_cert_type(const SSL_CTX *ctx, unsigned char **t, size_t *len); +__owur int SSL_CTX_get0_server_cert_type(const SSL_CTX *s, unsigned char **t, size_t *len); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/ui.h b/clientapp/android/app/src/main/cpp/include/openssl/ui.h new file mode 100644 index 00000000..e64ec3b3 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/ui.h @@ -0,0 +1,407 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/ui.h.in + * + * Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_UI_H +# define OPENSSL_UI_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_UI_H +# endif + +# include + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# include +# endif +# include +# include +# include +# include + +/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifdef OPENSSL_NO_UI_CONSOLE +# define OPENSSL_NO_UI +# endif +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +/* + * All the following functions return -1 or NULL on error and in some cases + * (UI_process()) -2 if interrupted or in some other way cancelled. When + * everything is fine, they return 0, a positive value or a non-NULL pointer, + * all depending on their purpose. + */ + +/* Creators and destructor. */ +UI *UI_new(void); +UI *UI_new_method(const UI_METHOD *method); +void UI_free(UI *ui); + +/*- + The following functions are used to add strings to be printed and prompt + strings to prompt for data. The names are UI_{add,dup}__string + and UI_{add,dup}_input_boolean. + + UI_{add,dup}__string have the following meanings: + add add a text or prompt string. The pointers given to these + functions are used verbatim, no copying is done. + dup make a copy of the text or prompt string, then add the copy + to the collection of strings in the user interface. + + The function is a name for the functionality that the given + string shall be used for. It can be one of: + input use the string as data prompt. + verify use the string as verification prompt. This + is used to verify a previous input. + info use the string for informational output. + error use the string for error output. + Honestly, there's currently no difference between info and error for the + moment. + + UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", + and are typically used when one wants to prompt for a yes/no response. + + All of the functions in this group take a UI and a prompt string. + The string input and verify addition functions also take a flag argument, + a buffer for the result to end up with, a minimum input size and a maximum + input size (the result buffer MUST be large enough to be able to contain + the maximum number of characters). Additionally, the verify addition + functions takes another buffer to compare the result against. + The boolean input functions take an action description string (which should + be safe to ignore if the expected user action is obvious, for example with + a dialog box with an OK button and a Cancel button), a string of acceptable + characters to mean OK and to mean Cancel. The two last strings are checked + to make sure they don't have common characters. Additionally, the same + flag argument as for the string input is taken, as well as a result buffer. + The result buffer is required to be at least one byte long. Depending on + the answer, the first character from the OK or the Cancel character strings + will be stored in the first byte of the result buffer. No NUL will be + added, so the result is *not* a string. + + On success, the all return an index of the added information. That index + is useful when retrieving results with UI_get0_result(). */ +int UI_add_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_dup_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_add_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_dup_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_add_info_string(UI *ui, const char *text); +int UI_dup_info_string(UI *ui, const char *text); +int UI_add_error_string(UI *ui, const char *text); +int UI_dup_error_string(UI *ui, const char *text); + +/* These are the possible flags. They can be or'ed together. */ +/* Use to have echoing of input */ +# define UI_INPUT_FLAG_ECHO 0x01 +/* + * Use a default password. Where that password is found is completely up to + * the application, it might for example be in the user data set with + * UI_add_user_data(). It is not recommended to have more than one input in + * each UI being marked with this flag, or the application might get + * confused. + */ +# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 + +/*- + * The user of these routines may want to define flags of their own. The core + * UI won't look at those, but will pass them on to the method routines. They + * must use higher bits so they don't get confused with the UI bits above. + * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good + * example of use is this: + * + * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) + * +*/ +# define UI_INPUT_FLAG_USER_BASE 16 + +/*- + * The following function helps construct a prompt. + * phrase_desc is a textual short description of the phrase to enter, + * for example "pass phrase", and + * object_name is the name of the object + * (which might be a card name or a file name) or NULL. + * The returned string shall always be allocated on the heap with + * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). + * + * If the ui_method doesn't contain a pointer to a user-defined prompt + * constructor, a default string is built, looking like this: + * + * "Enter {phrase_desc} for {object_name}:" + * + * So, if phrase_desc has the value "pass phrase" and object_name has + * the value "foo.key", the resulting string is: + * + * "Enter pass phrase for foo.key:" +*/ +char *UI_construct_prompt(UI *ui_method, + const char *phrase_desc, const char *object_name); + +/* + * The following function is used to store a pointer to user-specific data. + * Any previous such pointer will be returned and replaced. + * + * For callback purposes, this function makes a lot more sense than using + * ex_data, since the latter requires that different parts of OpenSSL or + * applications share the same ex_data index. + * + * Note that the UI_OpenSSL() method completely ignores the user data. Other + * methods may not, however. + */ +void *UI_add_user_data(UI *ui, void *user_data); +/* + * Alternatively, this function is used to duplicate the user data. + * This uses the duplicator method function. The destroy function will + * be used to free the user data in this case. + */ +int UI_dup_user_data(UI *ui, void *user_data); +/* We need a user data retrieving function as well. */ +void *UI_get0_user_data(UI *ui); + +/* Return the result associated with a prompt given with the index i. */ +const char *UI_get0_result(UI *ui, int i); +int UI_get_result_length(UI *ui, int i); + +/* When all strings have been added, process the whole thing. */ +int UI_process(UI *ui); + +/* + * Give a user interface parameterised control commands. This can be used to + * send down an integer, a data pointer or a function pointer, as well as be + * used to get information from a UI. + */ +int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); + +/* The commands */ +/* + * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the + * OpenSSL error stack before printing any info or added error messages and + * before any prompting. + */ +# define UI_CTRL_PRINT_ERRORS 1 +/* + * Check if a UI_process() is possible to do again with the same instance of + * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 + * if not. + */ +# define UI_CTRL_IS_REDOABLE 2 + +/* Some methods may use extra data */ +# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) +# define UI_get_app_data(s) UI_get_ex_data(s,0) + +# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) +int UI_set_ex_data(UI *r, int idx, void *arg); +void *UI_get_ex_data(const UI *r, int idx); + +/* Use specific methods instead of the built-in one */ +void UI_set_default_method(const UI_METHOD *meth); +const UI_METHOD *UI_get_default_method(void); +const UI_METHOD *UI_get_method(UI *ui); +const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); + +# ifndef OPENSSL_NO_UI_CONSOLE + +/* The method with all the built-in thingies */ +UI_METHOD *UI_OpenSSL(void); + +# endif + +/* + * NULL method. Literally does nothing, but may serve as a placeholder + * to avoid internal default. + */ +const UI_METHOD *UI_null(void); + +/* ---------- For method writers ---------- */ +/*- + A method contains a number of functions that implement the low level + of the User Interface. The functions are: + + an opener This function starts a session, maybe by opening + a channel to a tty, or by opening a window. + a writer This function is called to write a given string, + maybe to the tty, maybe as a field label in a + window. + a flusher This function is called to flush everything that + has been output so far. It can be used to actually + display a dialog box after it has been built. + a reader This function is called to read a given prompt, + maybe from the tty, maybe from a field in a + window. Note that it's called with all string + structures, not only the prompt ones, so it must + check such things itself. + a closer This function closes the session, maybe by closing + the channel to the tty, or closing the window. + + All these functions are expected to return: + + 0 on error. + 1 on success. + -1 on out-of-band events, for example if some prompting has + been canceled (by pressing Ctrl-C, for example). This is + only checked when returned by the flusher or the reader. + + The way this is used, the opener is first called, then the writer for all + strings, then the flusher, then the reader for all strings and finally the + closer. Note that if you want to prompt from a terminal or other command + line interface, the best is to have the reader also write the prompts + instead of having the writer do it. If you want to prompt from a dialog + box, the writer can be used to build up the contents of the box, and the + flusher to actually display the box and run the event loop until all data + has been given, after which the reader only grabs the given data and puts + them back into the UI strings. + + All method functions take a UI as argument. Additionally, the writer and + the reader take a UI_STRING. +*/ + +/* + * The UI_STRING type is the data structure that contains all the needed info + * about a string or a prompt, including test data for a verification prompt. + */ +typedef struct ui_string_st UI_STRING; + +SKM_DEFINE_STACK_OF_INTERNAL(UI_STRING, UI_STRING, UI_STRING) +#define sk_UI_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_UI_STRING_sk_type(sk)) +#define sk_UI_STRING_value(sk, idx) ((UI_STRING *)OPENSSL_sk_value(ossl_check_const_UI_STRING_sk_type(sk), (idx))) +#define sk_UI_STRING_new(cmp) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new(ossl_check_UI_STRING_compfunc_type(cmp))) +#define sk_UI_STRING_new_null() ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_null()) +#define sk_UI_STRING_new_reserve(cmp, n) ((STACK_OF(UI_STRING) *)OPENSSL_sk_new_reserve(ossl_check_UI_STRING_compfunc_type(cmp), (n))) +#define sk_UI_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_UI_STRING_sk_type(sk), (n)) +#define sk_UI_STRING_free(sk) OPENSSL_sk_free(ossl_check_UI_STRING_sk_type(sk)) +#define sk_UI_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_UI_STRING_sk_type(sk)) +#define sk_UI_STRING_delete(sk, i) ((UI_STRING *)OPENSSL_sk_delete(ossl_check_UI_STRING_sk_type(sk), (i))) +#define sk_UI_STRING_delete_ptr(sk, ptr) ((UI_STRING *)OPENSSL_sk_delete_ptr(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr))) +#define sk_UI_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) +#define sk_UI_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) +#define sk_UI_STRING_pop(sk) ((UI_STRING *)OPENSSL_sk_pop(ossl_check_UI_STRING_sk_type(sk))) +#define sk_UI_STRING_shift(sk) ((UI_STRING *)OPENSSL_sk_shift(ossl_check_UI_STRING_sk_type(sk))) +#define sk_UI_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_UI_STRING_sk_type(sk),ossl_check_UI_STRING_freefunc_type(freefunc)) +#define sk_UI_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), (idx)) +#define sk_UI_STRING_set(sk, idx, ptr) ((UI_STRING *)OPENSSL_sk_set(ossl_check_UI_STRING_sk_type(sk), (idx), ossl_check_UI_STRING_type(ptr))) +#define sk_UI_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) +#define sk_UI_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr)) +#define sk_UI_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_type(ptr), pnum) +#define sk_UI_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_UI_STRING_sk_type(sk)) +#define sk_UI_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_UI_STRING_sk_type(sk)) +#define sk_UI_STRING_dup(sk) ((STACK_OF(UI_STRING) *)OPENSSL_sk_dup(ossl_check_const_UI_STRING_sk_type(sk))) +#define sk_UI_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(UI_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_UI_STRING_sk_type(sk), ossl_check_UI_STRING_copyfunc_type(copyfunc), ossl_check_UI_STRING_freefunc_type(freefunc))) +#define sk_UI_STRING_set_cmp_func(sk, cmp) ((sk_UI_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_UI_STRING_sk_type(sk), ossl_check_UI_STRING_compfunc_type(cmp))) + + +/* + * The different types of strings that are currently supported. This is only + * needed by method authors. + */ +enum UI_string_types { + UIT_NONE = 0, + UIT_PROMPT, /* Prompt for a string */ + UIT_VERIFY, /* Prompt for a string and verify */ + UIT_BOOLEAN, /* Prompt for a yes/no response */ + UIT_INFO, /* Send info to the user */ + UIT_ERROR /* Send an error message to the user */ +}; + +/* Create and manipulate methods */ +UI_METHOD *UI_create_method(const char *name); +void UI_destroy_method(UI_METHOD *ui_method); +int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); +int UI_method_set_writer(UI_METHOD *method, + int (*writer) (UI *ui, UI_STRING *uis)); +int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); +int UI_method_set_reader(UI_METHOD *method, + int (*reader) (UI *ui, UI_STRING *uis)); +int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_data_duplicator(UI_METHOD *method, + void *(*duplicator) (UI *ui, void *ui_data), + void (*destructor)(UI *ui, void *ui_data)); +int UI_method_set_prompt_constructor(UI_METHOD *method, + char *(*prompt_constructor) (UI *ui, + const char + *phrase_desc, + const char + *object_name)); +int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); +int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) + (UI *, const char *, const char *); +void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); +void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); +const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); + +/* + * The following functions are helpers for method writers to access relevant + * data from a UI_STRING. + */ + +/* Return type of the UI_STRING */ +enum UI_string_types UI_get_string_type(UI_STRING *uis); +/* Return input flags of the UI_STRING */ +int UI_get_input_flags(UI_STRING *uis); +/* Return the actual string to output (the prompt, info or error) */ +const char *UI_get0_output_string(UI_STRING *uis); +/* + * Return the optional action string to output (the boolean prompt + * instruction) + */ +const char *UI_get0_action_string(UI_STRING *uis); +/* Return the result of a prompt */ +const char *UI_get0_result_string(UI_STRING *uis); +int UI_get_result_string_length(UI_STRING *uis); +/* + * Return the string to test the result against. Only useful with verifies. + */ +const char *UI_get0_test_string(UI_STRING *uis); +/* Return the required minimum size of the result */ +int UI_get_result_minsize(UI_STRING *uis); +/* Return the required maximum size of the result */ +int UI_get_result_maxsize(UI_STRING *uis); +/* Set the result of a UI_STRING. */ +int UI_set_result(UI *ui, UI_STRING *uis, const char *result); +int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); + +/* A couple of popular utility functions */ +int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); +UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); + + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/x509.h b/clientapp/android/app/src/main/cpp/include/openssl/x509.h new file mode 100644 index 00000000..ac132633 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/x509.h @@ -0,0 +1,1286 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509.h.in + * + * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. + * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_X509_H +# define OPENSSL_X509_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_X509_H +# endif + +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# include +# include +# include +# endif + +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Needed stacks for types defined in other headers */ +SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME, X509_NAME, X509_NAME) +#define sk_X509_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_sk_type(sk)) +#define sk_X509_NAME_value(sk, idx) ((X509_NAME *)OPENSSL_sk_value(ossl_check_const_X509_NAME_sk_type(sk), (idx))) +#define sk_X509_NAME_new(cmp) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new(ossl_check_X509_NAME_compfunc_type(cmp))) +#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_null()) +#define sk_X509_NAME_new_reserve(cmp, n) ((STACK_OF(X509_NAME) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_compfunc_type(cmp), (n))) +#define sk_X509_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_sk_type(sk), (n)) +#define sk_X509_NAME_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_sk_type(sk)) +#define sk_X509_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_sk_type(sk)) +#define sk_X509_NAME_delete(sk, i) ((X509_NAME *)OPENSSL_sk_delete(ossl_check_X509_NAME_sk_type(sk), (i))) +#define sk_X509_NAME_delete_ptr(sk, ptr) ((X509_NAME *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr))) +#define sk_X509_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) +#define sk_X509_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) +#define sk_X509_NAME_pop(sk) ((X509_NAME *)OPENSSL_sk_pop(ossl_check_X509_NAME_sk_type(sk))) +#define sk_X509_NAME_shift(sk) ((X509_NAME *)OPENSSL_sk_shift(ossl_check_X509_NAME_sk_type(sk))) +#define sk_X509_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_sk_type(sk),ossl_check_X509_NAME_freefunc_type(freefunc)) +#define sk_X509_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), (idx)) +#define sk_X509_NAME_set(sk, idx, ptr) ((X509_NAME *)OPENSSL_sk_set(ossl_check_X509_NAME_sk_type(sk), (idx), ossl_check_X509_NAME_type(ptr))) +#define sk_X509_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) +#define sk_X509_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr)) +#define sk_X509_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_type(ptr), pnum) +#define sk_X509_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_sk_type(sk)) +#define sk_X509_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_sk_type(sk)) +#define sk_X509_NAME_dup(sk) ((STACK_OF(X509_NAME) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_sk_type(sk))) +#define sk_X509_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_sk_type(sk), ossl_check_X509_NAME_copyfunc_type(copyfunc), ossl_check_X509_NAME_freefunc_type(freefunc))) +#define sk_X509_NAME_set_cmp_func(sk, cmp) ((sk_X509_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_sk_type(sk), ossl_check_X509_NAME_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(X509, X509, X509) +#define sk_X509_num(sk) OPENSSL_sk_num(ossl_check_const_X509_sk_type(sk)) +#define sk_X509_value(sk, idx) ((X509 *)OPENSSL_sk_value(ossl_check_const_X509_sk_type(sk), (idx))) +#define sk_X509_new(cmp) ((STACK_OF(X509) *)OPENSSL_sk_new(ossl_check_X509_compfunc_type(cmp))) +#define sk_X509_new_null() ((STACK_OF(X509) *)OPENSSL_sk_new_null()) +#define sk_X509_new_reserve(cmp, n) ((STACK_OF(X509) *)OPENSSL_sk_new_reserve(ossl_check_X509_compfunc_type(cmp), (n))) +#define sk_X509_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_sk_type(sk), (n)) +#define sk_X509_free(sk) OPENSSL_sk_free(ossl_check_X509_sk_type(sk)) +#define sk_X509_zero(sk) OPENSSL_sk_zero(ossl_check_X509_sk_type(sk)) +#define sk_X509_delete(sk, i) ((X509 *)OPENSSL_sk_delete(ossl_check_X509_sk_type(sk), (i))) +#define sk_X509_delete_ptr(sk, ptr) ((X509 *)OPENSSL_sk_delete_ptr(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr))) +#define sk_X509_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) +#define sk_X509_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) +#define sk_X509_pop(sk) ((X509 *)OPENSSL_sk_pop(ossl_check_X509_sk_type(sk))) +#define sk_X509_shift(sk) ((X509 *)OPENSSL_sk_shift(ossl_check_X509_sk_type(sk))) +#define sk_X509_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_sk_type(sk),ossl_check_X509_freefunc_type(freefunc)) +#define sk_X509_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), (idx)) +#define sk_X509_set(sk, idx, ptr) ((X509 *)OPENSSL_sk_set(ossl_check_X509_sk_type(sk), (idx), ossl_check_X509_type(ptr))) +#define sk_X509_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) +#define sk_X509_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr)) +#define sk_X509_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_sk_type(sk), ossl_check_X509_type(ptr), pnum) +#define sk_X509_sort(sk) OPENSSL_sk_sort(ossl_check_X509_sk_type(sk)) +#define sk_X509_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_sk_type(sk)) +#define sk_X509_dup(sk) ((STACK_OF(X509) *)OPENSSL_sk_dup(ossl_check_const_X509_sk_type(sk))) +#define sk_X509_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_sk_type(sk), ossl_check_X509_copyfunc_type(copyfunc), ossl_check_X509_freefunc_type(freefunc))) +#define sk_X509_set_cmp_func(sk, cmp) ((sk_X509_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_sk_type(sk), ossl_check_X509_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(X509_REVOKED, X509_REVOKED, X509_REVOKED) +#define sk_X509_REVOKED_num(sk) OPENSSL_sk_num(ossl_check_const_X509_REVOKED_sk_type(sk)) +#define sk_X509_REVOKED_value(sk, idx) ((X509_REVOKED *)OPENSSL_sk_value(ossl_check_const_X509_REVOKED_sk_type(sk), (idx))) +#define sk_X509_REVOKED_new(cmp) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new(ossl_check_X509_REVOKED_compfunc_type(cmp))) +#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_null()) +#define sk_X509_REVOKED_new_reserve(cmp, n) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_new_reserve(ossl_check_X509_REVOKED_compfunc_type(cmp), (n))) +#define sk_X509_REVOKED_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_REVOKED_sk_type(sk), (n)) +#define sk_X509_REVOKED_free(sk) OPENSSL_sk_free(ossl_check_X509_REVOKED_sk_type(sk)) +#define sk_X509_REVOKED_zero(sk) OPENSSL_sk_zero(ossl_check_X509_REVOKED_sk_type(sk)) +#define sk_X509_REVOKED_delete(sk, i) ((X509_REVOKED *)OPENSSL_sk_delete(ossl_check_X509_REVOKED_sk_type(sk), (i))) +#define sk_X509_REVOKED_delete_ptr(sk, ptr) ((X509_REVOKED *)OPENSSL_sk_delete_ptr(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr))) +#define sk_X509_REVOKED_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) +#define sk_X509_REVOKED_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) +#define sk_X509_REVOKED_pop(sk) ((X509_REVOKED *)OPENSSL_sk_pop(ossl_check_X509_REVOKED_sk_type(sk))) +#define sk_X509_REVOKED_shift(sk) ((X509_REVOKED *)OPENSSL_sk_shift(ossl_check_X509_REVOKED_sk_type(sk))) +#define sk_X509_REVOKED_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_REVOKED_sk_type(sk),ossl_check_X509_REVOKED_freefunc_type(freefunc)) +#define sk_X509_REVOKED_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), (idx)) +#define sk_X509_REVOKED_set(sk, idx, ptr) ((X509_REVOKED *)OPENSSL_sk_set(ossl_check_X509_REVOKED_sk_type(sk), (idx), ossl_check_X509_REVOKED_type(ptr))) +#define sk_X509_REVOKED_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) +#define sk_X509_REVOKED_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr)) +#define sk_X509_REVOKED_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_type(ptr), pnum) +#define sk_X509_REVOKED_sort(sk) OPENSSL_sk_sort(ossl_check_X509_REVOKED_sk_type(sk)) +#define sk_X509_REVOKED_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_REVOKED_sk_type(sk)) +#define sk_X509_REVOKED_dup(sk) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_dup(ossl_check_const_X509_REVOKED_sk_type(sk))) +#define sk_X509_REVOKED_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_REVOKED) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_copyfunc_type(copyfunc), ossl_check_X509_REVOKED_freefunc_type(freefunc))) +#define sk_X509_REVOKED_set_cmp_func(sk, cmp) ((sk_X509_REVOKED_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_REVOKED_sk_type(sk), ossl_check_X509_REVOKED_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(X509_CRL, X509_CRL, X509_CRL) +#define sk_X509_CRL_num(sk) OPENSSL_sk_num(ossl_check_const_X509_CRL_sk_type(sk)) +#define sk_X509_CRL_value(sk, idx) ((X509_CRL *)OPENSSL_sk_value(ossl_check_const_X509_CRL_sk_type(sk), (idx))) +#define sk_X509_CRL_new(cmp) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new(ossl_check_X509_CRL_compfunc_type(cmp))) +#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_null()) +#define sk_X509_CRL_new_reserve(cmp, n) ((STACK_OF(X509_CRL) *)OPENSSL_sk_new_reserve(ossl_check_X509_CRL_compfunc_type(cmp), (n))) +#define sk_X509_CRL_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_CRL_sk_type(sk), (n)) +#define sk_X509_CRL_free(sk) OPENSSL_sk_free(ossl_check_X509_CRL_sk_type(sk)) +#define sk_X509_CRL_zero(sk) OPENSSL_sk_zero(ossl_check_X509_CRL_sk_type(sk)) +#define sk_X509_CRL_delete(sk, i) ((X509_CRL *)OPENSSL_sk_delete(ossl_check_X509_CRL_sk_type(sk), (i))) +#define sk_X509_CRL_delete_ptr(sk, ptr) ((X509_CRL *)OPENSSL_sk_delete_ptr(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr))) +#define sk_X509_CRL_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) +#define sk_X509_CRL_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) +#define sk_X509_CRL_pop(sk) ((X509_CRL *)OPENSSL_sk_pop(ossl_check_X509_CRL_sk_type(sk))) +#define sk_X509_CRL_shift(sk) ((X509_CRL *)OPENSSL_sk_shift(ossl_check_X509_CRL_sk_type(sk))) +#define sk_X509_CRL_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_CRL_sk_type(sk),ossl_check_X509_CRL_freefunc_type(freefunc)) +#define sk_X509_CRL_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), (idx)) +#define sk_X509_CRL_set(sk, idx, ptr) ((X509_CRL *)OPENSSL_sk_set(ossl_check_X509_CRL_sk_type(sk), (idx), ossl_check_X509_CRL_type(ptr))) +#define sk_X509_CRL_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) +#define sk_X509_CRL_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr)) +#define sk_X509_CRL_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_type(ptr), pnum) +#define sk_X509_CRL_sort(sk) OPENSSL_sk_sort(ossl_check_X509_CRL_sk_type(sk)) +#define sk_X509_CRL_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_CRL_sk_type(sk)) +#define sk_X509_CRL_dup(sk) ((STACK_OF(X509_CRL) *)OPENSSL_sk_dup(ossl_check_const_X509_CRL_sk_type(sk))) +#define sk_X509_CRL_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_CRL) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_CRL_sk_type(sk), ossl_check_X509_CRL_copyfunc_type(copyfunc), ossl_check_X509_CRL_freefunc_type(freefunc))) +#define sk_X509_CRL_set_cmp_func(sk, cmp) ((sk_X509_CRL_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_CRL_sk_type(sk), ossl_check_X509_CRL_compfunc_type(cmp))) + + +/* Flags for X509_get_signature_info() */ +/* Signature info is valid */ +# define X509_SIG_INFO_VALID 0x1 +/* Signature is suitable for TLS use */ +# define X509_SIG_INFO_TLS 0x2 + +# define X509_FILETYPE_PEM 1 +# define X509_FILETYPE_ASN1 2 +# define X509_FILETYPE_DEFAULT 3 + +# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 +# define X509v3_KU_NON_REPUDIATION 0x0040 +# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 +# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 +# define X509v3_KU_KEY_AGREEMENT 0x0008 +# define X509v3_KU_KEY_CERT_SIGN 0x0004 +# define X509v3_KU_CRL_SIGN 0x0002 +# define X509v3_KU_ENCIPHER_ONLY 0x0001 +# define X509v3_KU_DECIPHER_ONLY 0x8000 +# define X509v3_KU_UNDEF 0xffff + +struct X509_algor_st { + ASN1_OBJECT *algorithm; + ASN1_TYPE *parameter; +} /* X509_ALGOR */ ; + +typedef STACK_OF(X509_ALGOR) X509_ALGORS; + +typedef struct X509_val_st { + ASN1_TIME *notBefore; + ASN1_TIME *notAfter; +} X509_VAL; + +typedef struct X509_sig_st X509_SIG; + +typedef struct X509_name_entry_st X509_NAME_ENTRY; + +SKM_DEFINE_STACK_OF_INTERNAL(X509_NAME_ENTRY, X509_NAME_ENTRY, X509_NAME_ENTRY) +#define sk_X509_NAME_ENTRY_num(sk) OPENSSL_sk_num(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) +#define sk_X509_NAME_ENTRY_value(sk, idx) ((X509_NAME_ENTRY *)OPENSSL_sk_value(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), (idx))) +#define sk_X509_NAME_ENTRY_new(cmp) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) +#define sk_X509_NAME_ENTRY_new_null() ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_null()) +#define sk_X509_NAME_ENTRY_new_reserve(cmp, n) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_new_reserve(ossl_check_X509_NAME_ENTRY_compfunc_type(cmp), (n))) +#define sk_X509_NAME_ENTRY_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_NAME_ENTRY_sk_type(sk), (n)) +#define sk_X509_NAME_ENTRY_free(sk) OPENSSL_sk_free(ossl_check_X509_NAME_ENTRY_sk_type(sk)) +#define sk_X509_NAME_ENTRY_zero(sk) OPENSSL_sk_zero(ossl_check_X509_NAME_ENTRY_sk_type(sk)) +#define sk_X509_NAME_ENTRY_delete(sk, i) ((X509_NAME_ENTRY *)OPENSSL_sk_delete(ossl_check_X509_NAME_ENTRY_sk_type(sk), (i))) +#define sk_X509_NAME_ENTRY_delete_ptr(sk, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_delete_ptr(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr))) +#define sk_X509_NAME_ENTRY_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) +#define sk_X509_NAME_ENTRY_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) +#define sk_X509_NAME_ENTRY_pop(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_pop(ossl_check_X509_NAME_ENTRY_sk_type(sk))) +#define sk_X509_NAME_ENTRY_shift(sk) ((X509_NAME_ENTRY *)OPENSSL_sk_shift(ossl_check_X509_NAME_ENTRY_sk_type(sk))) +#define sk_X509_NAME_ENTRY_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_NAME_ENTRY_sk_type(sk),ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc)) +#define sk_X509_NAME_ENTRY_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), (idx)) +#define sk_X509_NAME_ENTRY_set(sk, idx, ptr) ((X509_NAME_ENTRY *)OPENSSL_sk_set(ossl_check_X509_NAME_ENTRY_sk_type(sk), (idx), ossl_check_X509_NAME_ENTRY_type(ptr))) +#define sk_X509_NAME_ENTRY_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) +#define sk_X509_NAME_ENTRY_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr)) +#define sk_X509_NAME_ENTRY_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_type(ptr), pnum) +#define sk_X509_NAME_ENTRY_sort(sk) OPENSSL_sk_sort(ossl_check_X509_NAME_ENTRY_sk_type(sk)) +#define sk_X509_NAME_ENTRY_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_NAME_ENTRY_sk_type(sk)) +#define sk_X509_NAME_ENTRY_dup(sk) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_dup(ossl_check_const_X509_NAME_ENTRY_sk_type(sk))) +#define sk_X509_NAME_ENTRY_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_NAME_ENTRY) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_copyfunc_type(copyfunc), ossl_check_X509_NAME_ENTRY_freefunc_type(freefunc))) +#define sk_X509_NAME_ENTRY_set_cmp_func(sk, cmp) ((sk_X509_NAME_ENTRY_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_NAME_ENTRY_sk_type(sk), ossl_check_X509_NAME_ENTRY_compfunc_type(cmp))) + + +# define X509_EX_V_NETSCAPE_HACK 0x8000 +# define X509_EX_V_INIT 0x0001 +typedef struct X509_extension_st X509_EXTENSION; +SKM_DEFINE_STACK_OF_INTERNAL(X509_EXTENSION, X509_EXTENSION, X509_EXTENSION) +#define sk_X509_EXTENSION_num(sk) OPENSSL_sk_num(ossl_check_const_X509_EXTENSION_sk_type(sk)) +#define sk_X509_EXTENSION_value(sk, idx) ((X509_EXTENSION *)OPENSSL_sk_value(ossl_check_const_X509_EXTENSION_sk_type(sk), (idx))) +#define sk_X509_EXTENSION_new(cmp) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new(ossl_check_X509_EXTENSION_compfunc_type(cmp))) +#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_null()) +#define sk_X509_EXTENSION_new_reserve(cmp, n) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_new_reserve(ossl_check_X509_EXTENSION_compfunc_type(cmp), (n))) +#define sk_X509_EXTENSION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_EXTENSION_sk_type(sk), (n)) +#define sk_X509_EXTENSION_free(sk) OPENSSL_sk_free(ossl_check_X509_EXTENSION_sk_type(sk)) +#define sk_X509_EXTENSION_zero(sk) OPENSSL_sk_zero(ossl_check_X509_EXTENSION_sk_type(sk)) +#define sk_X509_EXTENSION_delete(sk, i) ((X509_EXTENSION *)OPENSSL_sk_delete(ossl_check_X509_EXTENSION_sk_type(sk), (i))) +#define sk_X509_EXTENSION_delete_ptr(sk, ptr) ((X509_EXTENSION *)OPENSSL_sk_delete_ptr(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr))) +#define sk_X509_EXTENSION_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) +#define sk_X509_EXTENSION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) +#define sk_X509_EXTENSION_pop(sk) ((X509_EXTENSION *)OPENSSL_sk_pop(ossl_check_X509_EXTENSION_sk_type(sk))) +#define sk_X509_EXTENSION_shift(sk) ((X509_EXTENSION *)OPENSSL_sk_shift(ossl_check_X509_EXTENSION_sk_type(sk))) +#define sk_X509_EXTENSION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_EXTENSION_sk_type(sk),ossl_check_X509_EXTENSION_freefunc_type(freefunc)) +#define sk_X509_EXTENSION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), (idx)) +#define sk_X509_EXTENSION_set(sk, idx, ptr) ((X509_EXTENSION *)OPENSSL_sk_set(ossl_check_X509_EXTENSION_sk_type(sk), (idx), ossl_check_X509_EXTENSION_type(ptr))) +#define sk_X509_EXTENSION_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) +#define sk_X509_EXTENSION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr)) +#define sk_X509_EXTENSION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_type(ptr), pnum) +#define sk_X509_EXTENSION_sort(sk) OPENSSL_sk_sort(ossl_check_X509_EXTENSION_sk_type(sk)) +#define sk_X509_EXTENSION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_EXTENSION_sk_type(sk)) +#define sk_X509_EXTENSION_dup(sk) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_dup(ossl_check_const_X509_EXTENSION_sk_type(sk))) +#define sk_X509_EXTENSION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_EXTENSION) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_copyfunc_type(copyfunc), ossl_check_X509_EXTENSION_freefunc_type(freefunc))) +#define sk_X509_EXTENSION_set_cmp_func(sk, cmp) ((sk_X509_EXTENSION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_EXTENSION_sk_type(sk), ossl_check_X509_EXTENSION_compfunc_type(cmp))) + +typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; +typedef struct x509_attributes_st X509_ATTRIBUTE; +SKM_DEFINE_STACK_OF_INTERNAL(X509_ATTRIBUTE, X509_ATTRIBUTE, X509_ATTRIBUTE) +#define sk_X509_ATTRIBUTE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) +#define sk_X509_ATTRIBUTE_value(sk, idx) ((X509_ATTRIBUTE *)OPENSSL_sk_value(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), (idx))) +#define sk_X509_ATTRIBUTE_new(cmp) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) +#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_null()) +#define sk_X509_ATTRIBUTE_new_reserve(cmp, n) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_new_reserve(ossl_check_X509_ATTRIBUTE_compfunc_type(cmp), (n))) +#define sk_X509_ATTRIBUTE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_ATTRIBUTE_sk_type(sk), (n)) +#define sk_X509_ATTRIBUTE_free(sk) OPENSSL_sk_free(ossl_check_X509_ATTRIBUTE_sk_type(sk)) +#define sk_X509_ATTRIBUTE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_ATTRIBUTE_sk_type(sk)) +#define sk_X509_ATTRIBUTE_delete(sk, i) ((X509_ATTRIBUTE *)OPENSSL_sk_delete(ossl_check_X509_ATTRIBUTE_sk_type(sk), (i))) +#define sk_X509_ATTRIBUTE_delete_ptr(sk, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_delete_ptr(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr))) +#define sk_X509_ATTRIBUTE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) +#define sk_X509_ATTRIBUTE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) +#define sk_X509_ATTRIBUTE_pop(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_pop(ossl_check_X509_ATTRIBUTE_sk_type(sk))) +#define sk_X509_ATTRIBUTE_shift(sk) ((X509_ATTRIBUTE *)OPENSSL_sk_shift(ossl_check_X509_ATTRIBUTE_sk_type(sk))) +#define sk_X509_ATTRIBUTE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_ATTRIBUTE_sk_type(sk),ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc)) +#define sk_X509_ATTRIBUTE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), (idx)) +#define sk_X509_ATTRIBUTE_set(sk, idx, ptr) ((X509_ATTRIBUTE *)OPENSSL_sk_set(ossl_check_X509_ATTRIBUTE_sk_type(sk), (idx), ossl_check_X509_ATTRIBUTE_type(ptr))) +#define sk_X509_ATTRIBUTE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) +#define sk_X509_ATTRIBUTE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr)) +#define sk_X509_ATTRIBUTE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_type(ptr), pnum) +#define sk_X509_ATTRIBUTE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_ATTRIBUTE_sk_type(sk)) +#define sk_X509_ATTRIBUTE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_ATTRIBUTE_sk_type(sk)) +#define sk_X509_ATTRIBUTE_dup(sk) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_dup(ossl_check_const_X509_ATTRIBUTE_sk_type(sk))) +#define sk_X509_ATTRIBUTE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_ATTRIBUTE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_copyfunc_type(copyfunc), ossl_check_X509_ATTRIBUTE_freefunc_type(freefunc))) +#define sk_X509_ATTRIBUTE_set_cmp_func(sk, cmp) ((sk_X509_ATTRIBUTE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_ATTRIBUTE_sk_type(sk), ossl_check_X509_ATTRIBUTE_compfunc_type(cmp))) + +typedef struct X509_req_info_st X509_REQ_INFO; +typedef struct X509_req_st X509_REQ; +typedef struct x509_cert_aux_st X509_CERT_AUX; +typedef struct x509_cinf_st X509_CINF; + +/* Flags for X509_print_ex() */ + +# define X509_FLAG_COMPAT 0 +# define X509_FLAG_NO_HEADER 1L +# define X509_FLAG_NO_VERSION (1L << 1) +# define X509_FLAG_NO_SERIAL (1L << 2) +# define X509_FLAG_NO_SIGNAME (1L << 3) +# define X509_FLAG_NO_ISSUER (1L << 4) +# define X509_FLAG_NO_VALIDITY (1L << 5) +# define X509_FLAG_NO_SUBJECT (1L << 6) +# define X509_FLAG_NO_PUBKEY (1L << 7) +# define X509_FLAG_NO_EXTENSIONS (1L << 8) +# define X509_FLAG_NO_SIGDUMP (1L << 9) +# define X509_FLAG_NO_AUX (1L << 10) +# define X509_FLAG_NO_ATTRIBUTES (1L << 11) +# define X509_FLAG_NO_IDS (1L << 12) +# define X509_FLAG_EXTENSIONS_ONLY_KID (1L << 13) + +/* Flags specific to X509_NAME_print_ex() */ + +/* The field separator information */ + +# define XN_FLAG_SEP_MASK (0xf << 16) + +# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ +# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ +# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ +# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ +# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ + +# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ + +/* How the field name is shown */ + +# define XN_FLAG_FN_MASK (0x3 << 21) + +# define XN_FLAG_FN_SN 0/* Object short name */ +# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ +# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ +# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ + +# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ + +/* + * This determines if we dump fields we don't recognise: RFC2253 requires + * this. + */ + +# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) + +# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 + * characters */ + +/* Complete set of RFC2253 flags */ + +# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ + XN_FLAG_SEP_COMMA_PLUS | \ + XN_FLAG_DN_REV | \ + XN_FLAG_FN_SN | \ + XN_FLAG_DUMP_UNKNOWN_FIELDS) + +/* readable oneline form */ + +# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ + ASN1_STRFLGS_ESC_QUOTE | \ + XN_FLAG_SEP_CPLUS_SPC | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_SN) + +/* readable multiline form */ + +# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ + ASN1_STRFLGS_ESC_MSB | \ + XN_FLAG_SEP_MULTILINE | \ + XN_FLAG_SPC_EQ | \ + XN_FLAG_FN_LN | \ + XN_FLAG_FN_ALIGN) + +typedef struct X509_crl_info_st X509_CRL_INFO; + +typedef struct private_key_st { + int version; + /* The PKCS#8 data types */ + X509_ALGOR *enc_algor; + ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ + /* When decrypted, the following will not be NULL */ + EVP_PKEY *dec_pkey; + /* used to encrypt and decrypt */ + int key_length; + char *key_data; + int key_free; /* true if we should auto free key_data */ + /* expanded version of 'enc_algor' */ + EVP_CIPHER_INFO cipher; +} X509_PKEY; + +typedef struct X509_info_st { + X509 *x509; + X509_CRL *crl; + X509_PKEY *x_pkey; + EVP_CIPHER_INFO enc_cipher; + int enc_len; + char *enc_data; +} X509_INFO; +SKM_DEFINE_STACK_OF_INTERNAL(X509_INFO, X509_INFO, X509_INFO) +#define sk_X509_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_X509_INFO_sk_type(sk)) +#define sk_X509_INFO_value(sk, idx) ((X509_INFO *)OPENSSL_sk_value(ossl_check_const_X509_INFO_sk_type(sk), (idx))) +#define sk_X509_INFO_new(cmp) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new(ossl_check_X509_INFO_compfunc_type(cmp))) +#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_null()) +#define sk_X509_INFO_new_reserve(cmp, n) ((STACK_OF(X509_INFO) *)OPENSSL_sk_new_reserve(ossl_check_X509_INFO_compfunc_type(cmp), (n))) +#define sk_X509_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_INFO_sk_type(sk), (n)) +#define sk_X509_INFO_free(sk) OPENSSL_sk_free(ossl_check_X509_INFO_sk_type(sk)) +#define sk_X509_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_X509_INFO_sk_type(sk)) +#define sk_X509_INFO_delete(sk, i) ((X509_INFO *)OPENSSL_sk_delete(ossl_check_X509_INFO_sk_type(sk), (i))) +#define sk_X509_INFO_delete_ptr(sk, ptr) ((X509_INFO *)OPENSSL_sk_delete_ptr(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr))) +#define sk_X509_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) +#define sk_X509_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) +#define sk_X509_INFO_pop(sk) ((X509_INFO *)OPENSSL_sk_pop(ossl_check_X509_INFO_sk_type(sk))) +#define sk_X509_INFO_shift(sk) ((X509_INFO *)OPENSSL_sk_shift(ossl_check_X509_INFO_sk_type(sk))) +#define sk_X509_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_INFO_sk_type(sk),ossl_check_X509_INFO_freefunc_type(freefunc)) +#define sk_X509_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), (idx)) +#define sk_X509_INFO_set(sk, idx, ptr) ((X509_INFO *)OPENSSL_sk_set(ossl_check_X509_INFO_sk_type(sk), (idx), ossl_check_X509_INFO_type(ptr))) +#define sk_X509_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) +#define sk_X509_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr)) +#define sk_X509_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_type(ptr), pnum) +#define sk_X509_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_X509_INFO_sk_type(sk)) +#define sk_X509_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_INFO_sk_type(sk)) +#define sk_X509_INFO_dup(sk) ((STACK_OF(X509_INFO) *)OPENSSL_sk_dup(ossl_check_const_X509_INFO_sk_type(sk))) +#define sk_X509_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_INFO_sk_type(sk), ossl_check_X509_INFO_copyfunc_type(copyfunc), ossl_check_X509_INFO_freefunc_type(freefunc))) +#define sk_X509_INFO_set_cmp_func(sk, cmp) ((sk_X509_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_INFO_sk_type(sk), ossl_check_X509_INFO_compfunc_type(cmp))) + + +/* + * The next 2 structures and their 8 routines are used to manipulate Netscape's + * spki structures - useful if you are writing a CA web page + */ +typedef struct Netscape_spkac_st { + X509_PUBKEY *pubkey; + ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ +} NETSCAPE_SPKAC; + +typedef struct Netscape_spki_st { + NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ + X509_ALGOR sig_algor; + ASN1_BIT_STRING *signature; +} NETSCAPE_SPKI; + +/* Netscape certificate sequence structure */ +typedef struct Netscape_certificate_sequence { + ASN1_OBJECT *type; + STACK_OF(X509) *certs; +} NETSCAPE_CERT_SEQUENCE; + +/*- Unused (and iv length is wrong) +typedef struct CBCParameter_st + { + unsigned char iv[8]; + } CBC_PARAM; +*/ + +/* Password based encryption structure */ + +typedef struct PBEPARAM_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; +} PBEPARAM; + +/* Password based encryption V2 structures */ + +typedef struct PBE2PARAM_st { + X509_ALGOR *keyfunc; + X509_ALGOR *encryption; +} PBE2PARAM; + +typedef struct PBKDF2PARAM_st { +/* Usually OCTET STRING but could be anything */ + ASN1_TYPE *salt; + ASN1_INTEGER *iter; + ASN1_INTEGER *keylength; + X509_ALGOR *prf; +} PBKDF2PARAM; + +#ifndef OPENSSL_NO_SCRYPT +typedef struct SCRYPT_PARAMS_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *costParameter; + ASN1_INTEGER *blockSize; + ASN1_INTEGER *parallelizationParameter; + ASN1_INTEGER *keyLength; +} SCRYPT_PARAMS; +#endif + +#ifdef __cplusplus +} +#endif + +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +# define X509_EXT_PACK_UNKNOWN 1 +# define X509_EXT_PACK_STRING 2 + +# define X509_extract_key(x) X509_get_pubkey(x)/*****/ +# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) +# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) + +void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); +X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), + int (*crl_free) (X509_CRL *crl), + int (*crl_lookup) (X509_CRL *crl, + X509_REVOKED **ret, + const + ASN1_INTEGER *serial, + const + X509_NAME *issuer), + int (*crl_verify) (X509_CRL *crl, + EVP_PKEY *pk)); +void X509_CRL_METHOD_free(X509_CRL_METHOD *m); + +void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); +void *X509_CRL_get_meth_data(X509_CRL *crl); + +const char *X509_verify_cert_error_string(long n); + +int X509_verify(X509 *a, EVP_PKEY *r); +int X509_self_signed(X509 *cert, int verify_signature); + +int X509_REQ_verify_ex(X509_REQ *a, EVP_PKEY *r, OSSL_LIB_CTX *libctx, + const char *propq); +int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); +int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); +int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); + +NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); +char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); +EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); +int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); + +int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); + +int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); +int X509_signature_print(BIO *bp, const X509_ALGOR *alg, + const ASN1_STRING *sig); + +int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); +int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); + +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +ASN1_OCTET_STRING *X509_digest_sig(const X509 *cert, + EVP_MD **md_used, int *md_is_fallback); +int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); + +X509 *X509_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); +X509_CRL *X509_CRL_load_http(const char *url, BIO *bio, BIO *rbio, int timeout); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# include /* OSSL_HTTP_REQ_CTX_nbio_d2i */ +# define X509_http_nbio(rctx, pcert) \ + OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcert, ASN1_ITEM_rptr(X509)) +# define X509_CRL_http_nbio(rctx, pcrl) \ + OSSL_HTTP_REQ_CTX_nbio_d2i(rctx, pcrl, ASN1_ITEM_rptr(X509_CRL)) +# endif + +# ifndef OPENSSL_NO_STDIO +X509 *d2i_X509_fp(FILE *fp, X509 **x509); +int i2d_X509_fp(FILE *fp, const X509 *x509); +X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); +int i2d_X509_CRL_fp(FILE *fp, const X509_CRL *crl); +X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); +int i2d_X509_REQ_fp(FILE *fp, const X509_REQ *req); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_fp(FILE *fp, const RSA *rsa); +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_fp(FILE *fp, const RSA *rsa); +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_fp(FILE *fp, const RSA *rsa); +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_DSA +OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); +OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_fp(FILE *fp, const DSA *dsa); +OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); +OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_fp(FILE *fp, const DSA *dsa); +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_EC +OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); +OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_fp(FILE *fp, const EC_KEY *eckey); +OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); +OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_fp(FILE *fp, const EC_KEY *eckey); +# endif /* OPENSSL_NO_EC */ +# endif /* OPENSSL_NO_DEPRECATED_3_0 */ +X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); +int i2d_PKCS8_fp(FILE *fp, const X509_SIG *p8); +X509_PUBKEY *d2i_X509_PUBKEY_fp(FILE *fp, X509_PUBKEY **xpk); +int i2d_X509_PUBKEY_fp(FILE *fp, const X509_PUBKEY *xpk); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, const PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, const EVP_PKEY *key); +int i2d_PrivateKey_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); +EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); +int i2d_PUBKEY_fp(FILE *fp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_fp(FILE *fp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); +EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); +# endif + +X509 *d2i_X509_bio(BIO *bp, X509 **x509); +int i2d_X509_bio(BIO *bp, const X509 *x509); +X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); +int i2d_X509_CRL_bio(BIO *bp, const X509_CRL *crl); +X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); +int i2d_X509_REQ_bio(BIO *bp, const X509_REQ *req); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSAPrivateKey_bio(BIO *bp, const RSA *rsa); +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSAPublicKey_bio(BIO *bp, const RSA *rsa); +OSSL_DEPRECATEDIN_3_0 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); +OSSL_DEPRECATEDIN_3_0 int i2d_RSA_PUBKEY_bio(BIO *bp, const RSA *rsa); +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_DSA +OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); +OSSL_DEPRECATEDIN_3_0 int i2d_DSA_PUBKEY_bio(BIO *bp, const DSA *dsa); +OSSL_DEPRECATEDIN_3_0 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); +OSSL_DEPRECATEDIN_3_0 int i2d_DSAPrivateKey_bio(BIO *bp, const DSA *dsa); +# endif +# endif + +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_EC +OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); +OSSL_DEPRECATEDIN_3_0 int i2d_EC_PUBKEY_bio(BIO *bp, const EC_KEY *eckey); +OSSL_DEPRECATEDIN_3_0 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); +OSSL_DEPRECATEDIN_3_0 int i2d_ECPrivateKey_bio(BIO *bp, const EC_KEY *eckey); +# endif /* OPENSSL_NO_EC */ +# endif /* OPENSSL_NO_DEPRECATED_3_0 */ + +X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); +int i2d_PKCS8_bio(BIO *bp, const X509_SIG *p8); +X509_PUBKEY *d2i_X509_PUBKEY_bio(BIO *bp, X509_PUBKEY **xpk); +int i2d_X509_PUBKEY_bio(BIO *bp, const X509_PUBKEY *xpk); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, const PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, const EVP_PKEY *key); +int i2d_PrivateKey_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); +EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); +int i2d_PUBKEY_bio(BIO *bp, const EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_ex_bio(BIO *bp, EVP_PKEY **a, OSSL_LIB_CTX *libctx, + const char *propq); +EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); + +DECLARE_ASN1_DUP_FUNCTION(X509) +DECLARE_ASN1_DUP_FUNCTION(X509_ALGOR) +DECLARE_ASN1_DUP_FUNCTION(X509_ATTRIBUTE) +DECLARE_ASN1_DUP_FUNCTION(X509_CRL) +DECLARE_ASN1_DUP_FUNCTION(X509_EXTENSION) +DECLARE_ASN1_DUP_FUNCTION(X509_PUBKEY) +DECLARE_ASN1_DUP_FUNCTION(X509_REQ) +DECLARE_ASN1_DUP_FUNCTION(X509_REVOKED) +int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, + void *pval); +void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, + const void **ppval, const X509_ALGOR *algor); +void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); +int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); +int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); + +DECLARE_ASN1_DUP_FUNCTION(X509_NAME) +DECLARE_ASN1_DUP_FUNCTION(X509_NAME_ENTRY) + +int X509_cmp_time(const ASN1_TIME *s, time_t *t); +int X509_cmp_current_time(const ASN1_TIME *s); +int X509_cmp_timeframe(const X509_VERIFY_PARAM *vpm, + const ASN1_TIME *start, const ASN1_TIME *end); +ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); +ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, + int offset_day, long offset_sec, time_t *t); +ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); + +const char *X509_get_default_cert_area(void); +const char *X509_get_default_cert_dir(void); +const char *X509_get_default_cert_file(void); +const char *X509_get_default_cert_dir_env(void); +const char *X509_get_default_cert_file_env(void); +const char *X509_get_default_private_dir(void); + +X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); + +DECLARE_ASN1_FUNCTIONS(X509_ALGOR) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) +DECLARE_ASN1_FUNCTIONS(X509_VAL) + +DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) + +X509_PUBKEY *X509_PUBKEY_new_ex(OSSL_LIB_CTX *libctx, const char *propq); +int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get0(const X509_PUBKEY *key); +EVP_PKEY *X509_PUBKEY_get(const X509_PUBKEY *key); +int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); +long X509_get_pathlen(X509 *x); +DECLARE_ASN1_ENCODE_FUNCTIONS_only(EVP_PKEY, PUBKEY) +EVP_PKEY *d2i_PUBKEY_ex(EVP_PKEY **a, const unsigned char **pp, long length, + OSSL_LIB_CTX *libctx, const char *propq); +# ifndef OPENSSL_NO_DEPRECATED_3_0 +DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,RSA, RSA_PUBKEY) +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_DSA +DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0,DSA, DSA_PUBKEY) +# endif +# endif +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# ifndef OPENSSL_NO_EC +DECLARE_ASN1_ENCODE_FUNCTIONS_only_attr(OSSL_DEPRECATEDIN_3_0, EC_KEY, EC_PUBKEY) +# endif +# endif + +DECLARE_ASN1_FUNCTIONS(X509_SIG) +void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, + const ASN1_OCTET_STRING **pdigest); +void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, + ASN1_OCTET_STRING **pdigest); + +DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) +DECLARE_ASN1_FUNCTIONS(X509_REQ) +X509_REQ *X509_REQ_new_ex(OSSL_LIB_CTX *libctx, const char *propq); + +DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); + +DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) +DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) + +DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) + +DECLARE_ASN1_FUNCTIONS(X509_NAME) + +int X509_NAME_set(X509_NAME **xn, const X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(X509_CINF) +DECLARE_ASN1_FUNCTIONS(X509) +X509 *X509_new_ex(OSSL_LIB_CTX *libctx, const char *propq); +DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) + +#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) +int X509_set_ex_data(X509 *r, int idx, void *arg); +void *X509_get_ex_data(const X509 *r, int idx); +DECLARE_ASN1_ENCODE_FUNCTIONS_only(X509,X509_AUX) + +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); + +int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, + int *secbits, uint32_t *flags); +void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, + int secbits, uint32_t flags); + +int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, + uint32_t *flags); + +void X509_get0_signature(const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg, const X509 *x); +int X509_get_signature_nid(const X509 *x); + +void X509_set0_distinguishing_id(X509 *x, ASN1_OCTET_STRING *d_id); +ASN1_OCTET_STRING *X509_get0_distinguishing_id(X509 *x); +void X509_REQ_set0_distinguishing_id(X509_REQ *x, ASN1_OCTET_STRING *d_id); +ASN1_OCTET_STRING *X509_REQ_get0_distinguishing_id(X509_REQ *x); + +int X509_alias_set1(X509 *x, const unsigned char *name, int len); +int X509_keyid_set1(X509 *x, const unsigned char *id, int len); +unsigned char *X509_alias_get0(X509 *x, int *len); +unsigned char *X509_keyid_get0(X509 *x, int *len); + +DECLARE_ASN1_FUNCTIONS(X509_REVOKED) +DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) +DECLARE_ASN1_FUNCTIONS(X509_CRL) +X509_CRL *X509_CRL_new_ex(OSSL_LIB_CTX *libctx, const char *propq); + +int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); +int X509_CRL_get0_by_serial(X509_CRL *crl, + X509_REVOKED **ret, const ASN1_INTEGER *serial); +int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); + +X509_PKEY *X509_PKEY_new(void); +void X509_PKEY_free(X509_PKEY *a); + +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) +DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) + +X509_INFO *X509_INFO_new(void); +void X509_INFO_free(X509_INFO *a); +char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); + +#ifndef OPENSSL_NO_DEPRECATED_3_0 +OSSL_DEPRECATEDIN_3_0 +int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); +OSSL_DEPRECATEDIN_3_0 +int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, + unsigned char *md, unsigned int *len); +OSSL_DEPRECATEDIN_3_0 +int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey, + const EVP_MD *type); +#endif +int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, + unsigned char *md, unsigned int *len); +int ASN1_item_verify(const ASN1_ITEM *it, const X509_ALGOR *alg, + const ASN1_BIT_STRING *signature, const void *data, + EVP_PKEY *pkey); +int ASN1_item_verify_ctx(const ASN1_ITEM *it, const X509_ALGOR *alg, + const ASN1_BIT_STRING *signature, const void *data, + EVP_MD_CTX *ctx); +int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2, + ASN1_BIT_STRING *signature, const void *data, + EVP_PKEY *pkey, const EVP_MD *md); +int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + const void *data, EVP_MD_CTX *ctx); + +#define X509_VERSION_1 0 +#define X509_VERSION_2 1 +#define X509_VERSION_3 2 + +long X509_get_version(const X509 *x); +int X509_set_version(X509 *x, long version); +int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); +ASN1_INTEGER *X509_get_serialNumber(X509 *x); +const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); +int X509_set_issuer_name(X509 *x, const X509_NAME *name); +X509_NAME *X509_get_issuer_name(const X509 *a); +int X509_set_subject_name(X509 *x, const X509_NAME *name); +X509_NAME *X509_get_subject_name(const X509 *a); +const ASN1_TIME * X509_get0_notBefore(const X509 *x); +ASN1_TIME *X509_getm_notBefore(const X509 *x); +int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); +const ASN1_TIME *X509_get0_notAfter(const X509 *x); +ASN1_TIME *X509_getm_notAfter(const X509 *x); +int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); +int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +int X509_up_ref(X509 *x); +int X509_get_signature_type(const X509 *x); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define X509_get_notBefore X509_getm_notBefore +# define X509_get_notAfter X509_getm_notAfter +# define X509_set_notBefore X509_set1_notBefore +# define X509_set_notAfter X509_set1_notAfter +#endif + + +/* + * This one is only used so that a binary form can output, as in + * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) + */ +X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); +const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); +void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, + const ASN1_BIT_STRING **psuid); +const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); + +EVP_PKEY *X509_get0_pubkey(const X509 *x); +EVP_PKEY *X509_get_pubkey(X509 *x); +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); + +#define X509_REQ_VERSION_1 0 + +long X509_REQ_get_version(const X509_REQ *req); +int X509_REQ_set_version(X509_REQ *x, long version); +X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); +int X509_REQ_set_subject_name(X509_REQ *req, const X509_NAME *name); +void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); +int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); +int X509_REQ_get_signature_nid(const X509_REQ *req); +int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); +int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); +EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(const X509_REQ *req); +X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); +int X509_REQ_extension_nid(int nid); +int *X509_REQ_get_extension_nids(void); +void X509_REQ_set_extension_nids(int *nids); +STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); +int X509_REQ_add_extensions_nid(X509_REQ *req, + const STACK_OF(X509_EXTENSION) *exts, int nid); +int X509_REQ_add_extensions(X509_REQ *req, const STACK_OF(X509_EXTENSION) *ext); +int X509_REQ_get_attr_count(const X509_REQ *req); +int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); +X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); +int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); +int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_NID(X509_REQ *req, + int nid, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_txt(X509_REQ *req, + const char *attrname, int type, + const unsigned char *bytes, int len); + +#define X509_CRL_VERSION_1 0 +#define X509_CRL_VERSION_2 1 + +int X509_CRL_set_version(X509_CRL *x, long version); +int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name); +int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_sort(X509_CRL *crl); +int X509_CRL_up_ref(X509_CRL *crl); + +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate +# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate +#endif + +long X509_CRL_get_version(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl); +OSSL_DEPRECATEDIN_1_1_0 ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl); +#endif +X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); +const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); +STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); +void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_CRL_get_signature_nid(const X509_CRL *crl); +int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); + +const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); +int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); +int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); +const STACK_OF(X509_EXTENSION) * +X509_REVOKED_get0_extensions(const X509_REVOKED *r); + +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); + +int X509_REQ_check_private_key(const X509_REQ *req, EVP_PKEY *pkey); + +int X509_check_private_key(const X509 *cert, const EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, STACK_OF(X509) *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +void OSSL_STACK_OF_X509_free(STACK_OF(X509) *certs); +STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); + +int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_and_serial_hash(X509 *a); + +int X509_issuer_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_name_hash(X509 *a); + +int X509_subject_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_subject_name_hash(X509 *x); + +# ifndef OPENSSL_NO_MD5 +unsigned long X509_issuer_name_hash_old(X509 *a); +unsigned long X509_subject_name_hash_old(X509 *x); +# endif + +# define X509_ADD_FLAG_DEFAULT 0 +# define X509_ADD_FLAG_UP_REF 0x1 +# define X509_ADD_FLAG_PREPEND 0x2 +# define X509_ADD_FLAG_NO_DUP 0x4 +# define X509_ADD_FLAG_NO_SS 0x8 +int X509_add_cert(STACK_OF(X509) *sk, X509 *cert, int flags); +int X509_add_certs(STACK_OF(X509) *sk, STACK_OF(X509) *certs, int flags); + +int X509_cmp(const X509 *a, const X509 *b); +int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); +#ifndef OPENSSL_NO_DEPRECATED_3_0 +# define X509_NAME_hash(x) X509_NAME_hash_ex(x, NULL, NULL, NULL) +OSSL_DEPRECATEDIN_3_0 int X509_certificate_type(const X509 *x, + const EVP_PKEY *pubkey); +#endif +unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, + const char *propq, int *ok); +unsigned long X509_NAME_hash_old(const X509_NAME *x); + +int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); +int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); +int X509_aux_print(BIO *out, X509 *x, int indent); +# ifndef OPENSSL_NO_STDIO +int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print_fp(FILE *bp, X509 *x); +int X509_CRL_print_fp(FILE *bp, X509_CRL *x); +int X509_REQ_print_fp(FILE *bp, X509_REQ *req); +int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, + unsigned long flags); +# endif + +int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, + unsigned long flags); +int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print(BIO *bp, X509 *x); +int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); +int X509_CRL_print(BIO *bp, X509_CRL *x); +int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, + unsigned long cflag); +int X509_REQ_print(BIO *bp, X509_REQ *req); + +int X509_NAME_entry_count(const X509_NAME *name); +int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid, + char *buf, int len); +int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, + char *buf, int len); + +/* + * NOTE: you should be passing -1, not 0 as lastpos. The functions that use + * lastpos, search after that position on. + */ +int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos); +int X509_NAME_get_index_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, + int lastpos); +X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); +int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, + int loc, int set); +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len, int loc, + int set); +int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, + const char *field, int type, + const unsigned char *bytes, + int len); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, + int type, + const unsigned char *bytes, + int len); +int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, + int len); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, + const unsigned char *bytes, int len); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); +ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); +int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); + +int X509_NAME_get0_der(const X509_NAME *nm, const unsigned char **pder, + size_t *pderlen); + +int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); +int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, + int nid, int lastpos); +int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, + const ASN1_OBJECT *obj, int lastpos); +int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, + int crit, int lastpos); +X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); +X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); +STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, + X509_EXTENSION *ex, int loc); + +int X509_get_ext_count(const X509 *x); +int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(const X509 *x, int loc); +X509_EXTENSION *X509_delete_ext(X509 *x, int loc); +int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); +void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); +int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_CRL_get_ext_count(const X509_CRL *x); +int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); +X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); +int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); +void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); +int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, + unsigned long flags); + +int X509_REVOKED_get_ext_count(const X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, + int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); +X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); +void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, + int *idx); +int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, + unsigned long flags); + +X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, + int nid, int crit, + ASN1_OCTET_STRING *data); +X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, + const ASN1_OBJECT *obj, int crit, + ASN1_OCTET_STRING *data); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); +int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); +int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); +ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); +ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); +int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); + +int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); +int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, + int lastpos); +int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, + const ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); +X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, + X509_ATTRIBUTE *attr); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) + **x, const ASN1_OBJECT *obj, + int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) + **x, int nid, int type, + const unsigned char *bytes, + int len); +STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) + **x, const char *attrname, + int type, + const unsigned char *bytes, + int len); +void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x, + const ASN1_OBJECT *obj, int lastpos, int type); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, + const ASN1_OBJECT *obj, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, + const char *atrname, int type, + const unsigned char *bytes, + int len); +int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); +int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, + const void *data, int len); +void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, + void *data); +int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); +ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); +ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); + +int EVP_PKEY_get_attr_count(const EVP_PKEY *key); +int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); +X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); +int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); +int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, + int nid, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, + const char *attrname, int type, + const unsigned char *bytes, int len); + +/* lookup a cert from a X509 STACK */ +X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, const X509_NAME *name, + const ASN1_INTEGER *serial); +X509 *X509_find_by_subject(STACK_OF(X509) *sk, const X509_NAME *name); + +DECLARE_ASN1_FUNCTIONS(PBEPARAM) +DECLARE_ASN1_FUNCTIONS(PBE2PARAM) +DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) +#ifndef OPENSSL_NO_SCRYPT +DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) +#endif + +int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen); +int PKCS5_pbe_set0_algor_ex(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen, + OSSL_LIB_CTX *libctx); + +X509_ALGOR *PKCS5_pbe_set(int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe_set_ex(int alg, int iter, + const unsigned char *salt, int saltlen, + OSSL_LIB_CTX *libctx); + +X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid); +X509_ALGOR *PKCS5_pbe2_set_iv_ex(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid, + OSSL_LIB_CTX *libctx); + +#ifndef OPENSSL_NO_SCRYPT +X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, + const unsigned char *salt, int saltlen, + unsigned char *aiv, uint64_t N, uint64_t r, + uint64_t p); +#endif + +X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen); +X509_ALGOR *PKCS5_pbkdf2_set_ex(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen, + OSSL_LIB_CTX *libctx); + +/* PKCS#8 utilities */ + +DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) + +EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); +EVP_PKEY *EVP_PKCS82PKEY_ex(const PKCS8_PRIV_KEY_INFO *p8, OSSL_LIB_CTX *libctx, + const char *propq); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey); + +int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, + int version, int ptype, void *pval, + unsigned char *penc, int penclen); +int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); + +const STACK_OF(X509_ATTRIBUTE) * +PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); +int PKCS8_pkey_add1_attr(PKCS8_PRIV_KEY_INFO *p8, X509_ATTRIBUTE *attr); +int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, + const unsigned char *bytes, int len); +int PKCS8_pkey_add1_attr_by_OBJ(PKCS8_PRIV_KEY_INFO *p8, const ASN1_OBJECT *obj, + int type, const unsigned char *bytes, int len); + + +void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub, + unsigned char *penc, int penclen); +int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, + int ptype, void *pval, + unsigned char *penc, int penclen); +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, const X509_PUBKEY *pub); +int X509_PUBKEY_eq(const X509_PUBKEY *a, const X509_PUBKEY *b); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/x509_vfy.h b/clientapp/android/app/src/main/cpp/include/openssl/x509_vfy.h new file mode 100644 index 00000000..f84c3554 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/x509_vfy.h @@ -0,0 +1,902 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509_vfy.h.in + * + * Copyright 1995-2024 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_X509_VFY_H +# define OPENSSL_X509_VFY_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_X509_VFY_H +# endif + +/* + * Protect against recursion, x509.h and x509_vfy.h each include the other. + */ +# ifndef OPENSSL_X509_H +# include +# endif + +# include +# include +# include +# include +# include + +#ifdef __cplusplus +extern "C" { +#endif + +/*- +SSL_CTX -> X509_STORE + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + -> X509_LOOKUP + ->X509_LOOKUP_METHOD + +SSL -> X509_STORE_CTX + ->X509_STORE + +The X509_STORE holds the tables etc for verification stuff. +A X509_STORE_CTX is used while validating a single certificate. +The X509_STORE has X509_LOOKUPs for looking up certs. +The X509_STORE then calls a function to actually verify the +certificate chain. +*/ + +typedef enum { + X509_LU_NONE = 0, + X509_LU_X509, X509_LU_CRL +} X509_LOOKUP_TYPE; + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +#define X509_LU_RETRY -1 +#define X509_LU_FAIL 0 +#endif + +SKM_DEFINE_STACK_OF_INTERNAL(X509_LOOKUP, X509_LOOKUP, X509_LOOKUP) +#define sk_X509_LOOKUP_num(sk) OPENSSL_sk_num(ossl_check_const_X509_LOOKUP_sk_type(sk)) +#define sk_X509_LOOKUP_value(sk, idx) ((X509_LOOKUP *)OPENSSL_sk_value(ossl_check_const_X509_LOOKUP_sk_type(sk), (idx))) +#define sk_X509_LOOKUP_new(cmp) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new(ossl_check_X509_LOOKUP_compfunc_type(cmp))) +#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_null()) +#define sk_X509_LOOKUP_new_reserve(cmp, n) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_new_reserve(ossl_check_X509_LOOKUP_compfunc_type(cmp), (n))) +#define sk_X509_LOOKUP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_LOOKUP_sk_type(sk), (n)) +#define sk_X509_LOOKUP_free(sk) OPENSSL_sk_free(ossl_check_X509_LOOKUP_sk_type(sk)) +#define sk_X509_LOOKUP_zero(sk) OPENSSL_sk_zero(ossl_check_X509_LOOKUP_sk_type(sk)) +#define sk_X509_LOOKUP_delete(sk, i) ((X509_LOOKUP *)OPENSSL_sk_delete(ossl_check_X509_LOOKUP_sk_type(sk), (i))) +#define sk_X509_LOOKUP_delete_ptr(sk, ptr) ((X509_LOOKUP *)OPENSSL_sk_delete_ptr(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr))) +#define sk_X509_LOOKUP_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) +#define sk_X509_LOOKUP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) +#define sk_X509_LOOKUP_pop(sk) ((X509_LOOKUP *)OPENSSL_sk_pop(ossl_check_X509_LOOKUP_sk_type(sk))) +#define sk_X509_LOOKUP_shift(sk) ((X509_LOOKUP *)OPENSSL_sk_shift(ossl_check_X509_LOOKUP_sk_type(sk))) +#define sk_X509_LOOKUP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_LOOKUP_sk_type(sk),ossl_check_X509_LOOKUP_freefunc_type(freefunc)) +#define sk_X509_LOOKUP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), (idx)) +#define sk_X509_LOOKUP_set(sk, idx, ptr) ((X509_LOOKUP *)OPENSSL_sk_set(ossl_check_X509_LOOKUP_sk_type(sk), (idx), ossl_check_X509_LOOKUP_type(ptr))) +#define sk_X509_LOOKUP_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) +#define sk_X509_LOOKUP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr)) +#define sk_X509_LOOKUP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_type(ptr), pnum) +#define sk_X509_LOOKUP_sort(sk) OPENSSL_sk_sort(ossl_check_X509_LOOKUP_sk_type(sk)) +#define sk_X509_LOOKUP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_LOOKUP_sk_type(sk)) +#define sk_X509_LOOKUP_dup(sk) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_dup(ossl_check_const_X509_LOOKUP_sk_type(sk))) +#define sk_X509_LOOKUP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_LOOKUP) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_copyfunc_type(copyfunc), ossl_check_X509_LOOKUP_freefunc_type(freefunc))) +#define sk_X509_LOOKUP_set_cmp_func(sk, cmp) ((sk_X509_LOOKUP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_LOOKUP_sk_type(sk), ossl_check_X509_LOOKUP_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(X509_OBJECT, X509_OBJECT, X509_OBJECT) +#define sk_X509_OBJECT_num(sk) OPENSSL_sk_num(ossl_check_const_X509_OBJECT_sk_type(sk)) +#define sk_X509_OBJECT_value(sk, idx) ((X509_OBJECT *)OPENSSL_sk_value(ossl_check_const_X509_OBJECT_sk_type(sk), (idx))) +#define sk_X509_OBJECT_new(cmp) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new(ossl_check_X509_OBJECT_compfunc_type(cmp))) +#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_null()) +#define sk_X509_OBJECT_new_reserve(cmp, n) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_new_reserve(ossl_check_X509_OBJECT_compfunc_type(cmp), (n))) +#define sk_X509_OBJECT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_OBJECT_sk_type(sk), (n)) +#define sk_X509_OBJECT_free(sk) OPENSSL_sk_free(ossl_check_X509_OBJECT_sk_type(sk)) +#define sk_X509_OBJECT_zero(sk) OPENSSL_sk_zero(ossl_check_X509_OBJECT_sk_type(sk)) +#define sk_X509_OBJECT_delete(sk, i) ((X509_OBJECT *)OPENSSL_sk_delete(ossl_check_X509_OBJECT_sk_type(sk), (i))) +#define sk_X509_OBJECT_delete_ptr(sk, ptr) ((X509_OBJECT *)OPENSSL_sk_delete_ptr(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr))) +#define sk_X509_OBJECT_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) +#define sk_X509_OBJECT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) +#define sk_X509_OBJECT_pop(sk) ((X509_OBJECT *)OPENSSL_sk_pop(ossl_check_X509_OBJECT_sk_type(sk))) +#define sk_X509_OBJECT_shift(sk) ((X509_OBJECT *)OPENSSL_sk_shift(ossl_check_X509_OBJECT_sk_type(sk))) +#define sk_X509_OBJECT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_OBJECT_sk_type(sk),ossl_check_X509_OBJECT_freefunc_type(freefunc)) +#define sk_X509_OBJECT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), (idx)) +#define sk_X509_OBJECT_set(sk, idx, ptr) ((X509_OBJECT *)OPENSSL_sk_set(ossl_check_X509_OBJECT_sk_type(sk), (idx), ossl_check_X509_OBJECT_type(ptr))) +#define sk_X509_OBJECT_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) +#define sk_X509_OBJECT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr)) +#define sk_X509_OBJECT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_type(ptr), pnum) +#define sk_X509_OBJECT_sort(sk) OPENSSL_sk_sort(ossl_check_X509_OBJECT_sk_type(sk)) +#define sk_X509_OBJECT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_OBJECT_sk_type(sk)) +#define sk_X509_OBJECT_dup(sk) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_dup(ossl_check_const_X509_OBJECT_sk_type(sk))) +#define sk_X509_OBJECT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_OBJECT) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_copyfunc_type(copyfunc), ossl_check_X509_OBJECT_freefunc_type(freefunc))) +#define sk_X509_OBJECT_set_cmp_func(sk, cmp) ((sk_X509_OBJECT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_OBJECT_sk_type(sk), ossl_check_X509_OBJECT_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(X509_VERIFY_PARAM, X509_VERIFY_PARAM, X509_VERIFY_PARAM) +#define sk_X509_VERIFY_PARAM_num(sk) OPENSSL_sk_num(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) +#define sk_X509_VERIFY_PARAM_value(sk, idx) ((X509_VERIFY_PARAM *)OPENSSL_sk_value(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), (idx))) +#define sk_X509_VERIFY_PARAM_new(cmp) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) +#define sk_X509_VERIFY_PARAM_new_null() ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_null()) +#define sk_X509_VERIFY_PARAM_new_reserve(cmp, n) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_new_reserve(ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp), (n))) +#define sk_X509_VERIFY_PARAM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (n)) +#define sk_X509_VERIFY_PARAM_free(sk) OPENSSL_sk_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) +#define sk_X509_VERIFY_PARAM_zero(sk) OPENSSL_sk_zero(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) +#define sk_X509_VERIFY_PARAM_delete(sk, i) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (i))) +#define sk_X509_VERIFY_PARAM_delete_ptr(sk, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_delete_ptr(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr))) +#define sk_X509_VERIFY_PARAM_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) +#define sk_X509_VERIFY_PARAM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) +#define sk_X509_VERIFY_PARAM_pop(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_pop(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) +#define sk_X509_VERIFY_PARAM_shift(sk) ((X509_VERIFY_PARAM *)OPENSSL_sk_shift(ossl_check_X509_VERIFY_PARAM_sk_type(sk))) +#define sk_X509_VERIFY_PARAM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_VERIFY_PARAM_sk_type(sk),ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc)) +#define sk_X509_VERIFY_PARAM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), (idx)) +#define sk_X509_VERIFY_PARAM_set(sk, idx, ptr) ((X509_VERIFY_PARAM *)OPENSSL_sk_set(ossl_check_X509_VERIFY_PARAM_sk_type(sk), (idx), ossl_check_X509_VERIFY_PARAM_type(ptr))) +#define sk_X509_VERIFY_PARAM_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) +#define sk_X509_VERIFY_PARAM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr)) +#define sk_X509_VERIFY_PARAM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_type(ptr), pnum) +#define sk_X509_VERIFY_PARAM_sort(sk) OPENSSL_sk_sort(ossl_check_X509_VERIFY_PARAM_sk_type(sk)) +#define sk_X509_VERIFY_PARAM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk)) +#define sk_X509_VERIFY_PARAM_dup(sk) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_dup(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk))) +#define sk_X509_VERIFY_PARAM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_VERIFY_PARAM) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_copyfunc_type(copyfunc), ossl_check_X509_VERIFY_PARAM_freefunc_type(freefunc))) +#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, cmp) ((sk_X509_VERIFY_PARAM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_VERIFY_PARAM_sk_type(sk), ossl_check_X509_VERIFY_PARAM_compfunc_type(cmp))) + + +/* This is used for a table of trust checking functions */ +typedef struct x509_trust_st { + int trust; + int flags; + int (*check_trust) (struct x509_trust_st *, X509 *, int); + char *name; + int arg1; + void *arg2; +} X509_TRUST; +SKM_DEFINE_STACK_OF_INTERNAL(X509_TRUST, X509_TRUST, X509_TRUST) +#define sk_X509_TRUST_num(sk) OPENSSL_sk_num(ossl_check_const_X509_TRUST_sk_type(sk)) +#define sk_X509_TRUST_value(sk, idx) ((X509_TRUST *)OPENSSL_sk_value(ossl_check_const_X509_TRUST_sk_type(sk), (idx))) +#define sk_X509_TRUST_new(cmp) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new(ossl_check_X509_TRUST_compfunc_type(cmp))) +#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_null()) +#define sk_X509_TRUST_new_reserve(cmp, n) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_new_reserve(ossl_check_X509_TRUST_compfunc_type(cmp), (n))) +#define sk_X509_TRUST_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_TRUST_sk_type(sk), (n)) +#define sk_X509_TRUST_free(sk) OPENSSL_sk_free(ossl_check_X509_TRUST_sk_type(sk)) +#define sk_X509_TRUST_zero(sk) OPENSSL_sk_zero(ossl_check_X509_TRUST_sk_type(sk)) +#define sk_X509_TRUST_delete(sk, i) ((X509_TRUST *)OPENSSL_sk_delete(ossl_check_X509_TRUST_sk_type(sk), (i))) +#define sk_X509_TRUST_delete_ptr(sk, ptr) ((X509_TRUST *)OPENSSL_sk_delete_ptr(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr))) +#define sk_X509_TRUST_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) +#define sk_X509_TRUST_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) +#define sk_X509_TRUST_pop(sk) ((X509_TRUST *)OPENSSL_sk_pop(ossl_check_X509_TRUST_sk_type(sk))) +#define sk_X509_TRUST_shift(sk) ((X509_TRUST *)OPENSSL_sk_shift(ossl_check_X509_TRUST_sk_type(sk))) +#define sk_X509_TRUST_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_TRUST_sk_type(sk),ossl_check_X509_TRUST_freefunc_type(freefunc)) +#define sk_X509_TRUST_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), (idx)) +#define sk_X509_TRUST_set(sk, idx, ptr) ((X509_TRUST *)OPENSSL_sk_set(ossl_check_X509_TRUST_sk_type(sk), (idx), ossl_check_X509_TRUST_type(ptr))) +#define sk_X509_TRUST_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) +#define sk_X509_TRUST_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr)) +#define sk_X509_TRUST_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_type(ptr), pnum) +#define sk_X509_TRUST_sort(sk) OPENSSL_sk_sort(ossl_check_X509_TRUST_sk_type(sk)) +#define sk_X509_TRUST_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_TRUST_sk_type(sk)) +#define sk_X509_TRUST_dup(sk) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_dup(ossl_check_const_X509_TRUST_sk_type(sk))) +#define sk_X509_TRUST_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_TRUST) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_copyfunc_type(copyfunc), ossl_check_X509_TRUST_freefunc_type(freefunc))) +#define sk_X509_TRUST_set_cmp_func(sk, cmp) ((sk_X509_TRUST_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_TRUST_sk_type(sk), ossl_check_X509_TRUST_compfunc_type(cmp))) + + +/* standard trust ids */ +# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ +# define X509_TRUST_COMPAT 1 +# define X509_TRUST_SSL_CLIENT 2 +# define X509_TRUST_SSL_SERVER 3 +# define X509_TRUST_EMAIL 4 +# define X509_TRUST_OBJECT_SIGN 5 +# define X509_TRUST_OCSP_SIGN 6 +# define X509_TRUST_OCSP_REQUEST 7 +# define X509_TRUST_TSA 8 +/* Keep these up to date! */ +# define X509_TRUST_MIN 1 +# define X509_TRUST_MAX 8 + +/* trust_flags values */ +# define X509_TRUST_DYNAMIC (1U << 0) +# define X509_TRUST_DYNAMIC_NAME (1U << 1) +/* No compat trust if self-signed, preempts "DO_SS" */ +# define X509_TRUST_NO_SS_COMPAT (1U << 2) +/* Compat trust if no explicit accepted trust EKUs */ +# define X509_TRUST_DO_SS_COMPAT (1U << 3) +/* Accept "anyEKU" as a wildcard rejection OID and as a wildcard trust OID */ +# define X509_TRUST_OK_ANY_EKU (1U << 4) + +/* check_trust return codes */ +# define X509_TRUST_TRUSTED 1 +# define X509_TRUST_REJECTED 2 +# define X509_TRUST_UNTRUSTED 3 + +int X509_TRUST_set(int *t, int trust); +int X509_TRUST_get_count(void); +X509_TRUST *X509_TRUST_get0(int idx); +int X509_TRUST_get_by_id(int id); +int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), + const char *name, int arg1, void *arg2); +void X509_TRUST_cleanup(void); +int X509_TRUST_get_flags(const X509_TRUST *xp); +char *X509_TRUST_get0_name(const X509_TRUST *xp); +int X509_TRUST_get_trust(const X509_TRUST *xp); + +int X509_trusted(const X509 *x); +int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); +void X509_trust_clear(X509 *x); +void X509_reject_clear(X509 *x); +STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); +STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); + +int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, + int); +int X509_check_trust(X509 *x, int id, int flags); + +int X509_verify_cert(X509_STORE_CTX *ctx); +int X509_STORE_CTX_verify(X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_build_chain(X509 *target, STACK_OF(X509) *certs, + X509_STORE *store, int with_self_signed, + OSSL_LIB_CTX *libctx, const char *propq); + +int X509_STORE_set_depth(X509_STORE *store, int depth); + +typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); +int X509_STORE_CTX_print_verify_cb(int ok, X509_STORE_CTX *ctx); +typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, + X509_STORE_CTX *ctx, X509 *x); +typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, + X509 *x, X509 *issuer); +typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); +typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL **crl, X509 *x); +typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); +typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL *crl, X509 *x); +typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); +typedef STACK_OF(X509) + *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, + const X509_NAME *nm); +typedef STACK_OF(X509_CRL) + *(*X509_STORE_CTX_lookup_crls_fn)(const X509_STORE_CTX *ctx, + const X509_NAME *nm); +typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); + +void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); + +# define X509_STORE_CTX_set_app_data(ctx,data) \ + X509_STORE_CTX_set_ex_data(ctx,0,data) +# define X509_STORE_CTX_get_app_data(ctx) \ + X509_STORE_CTX_get_ex_data(ctx,0) + +# define X509_L_FILE_LOAD 1 +# define X509_L_ADD_DIR 2 +# define X509_L_ADD_STORE 3 +# define X509_L_LOAD_STORE 4 + +# define X509_LOOKUP_load_file(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) + +# define X509_LOOKUP_add_dir(x,name,type) \ + X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) + +# define X509_LOOKUP_add_store(x,name) \ + X509_LOOKUP_ctrl((x),X509_L_ADD_STORE,(name),0,NULL) + +# define X509_LOOKUP_load_store(x,name) \ + X509_LOOKUP_ctrl((x),X509_L_LOAD_STORE,(name),0,NULL) + +# define X509_LOOKUP_load_file_ex(x, name, type, libctx, propq) \ +X509_LOOKUP_ctrl_ex((x), X509_L_FILE_LOAD, (name), (long)(type), NULL,\ + (libctx), (propq)) + +# define X509_LOOKUP_load_store_ex(x, name, libctx, propq) \ +X509_LOOKUP_ctrl_ex((x), X509_L_LOAD_STORE, (name), 0, NULL, \ + (libctx), (propq)) + +# define X509_LOOKUP_add_store_ex(x, name, libctx, propq) \ +X509_LOOKUP_ctrl_ex((x), X509_L_ADD_STORE, (name), 0, NULL, \ + (libctx), (propq)) + +# define X509_V_OK 0 +# define X509_V_ERR_UNSPECIFIED 1 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 +# define X509_V_ERR_UNABLE_TO_GET_CRL 3 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 +# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 +# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 +# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 +# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 +# define X509_V_ERR_CERT_NOT_YET_VALID 9 +# define X509_V_ERR_CERT_HAS_EXPIRED 10 +# define X509_V_ERR_CRL_NOT_YET_VALID 11 +# define X509_V_ERR_CRL_HAS_EXPIRED 12 +# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 +# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 +# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 +# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 +# define X509_V_ERR_OUT_OF_MEM 17 +# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 +# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 +# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 +# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 +# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 +# define X509_V_ERR_CERT_REVOKED 23 +# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 24 +# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 +# define X509_V_ERR_INVALID_PURPOSE 26 +# define X509_V_ERR_CERT_UNTRUSTED 27 +# define X509_V_ERR_CERT_REJECTED 28 + +/* These are 'informational' when looking for issuer cert */ +# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 +# define X509_V_ERR_AKID_SKID_MISMATCH 30 +# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 +# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 +# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 +# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 +# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 +# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 +# define X509_V_ERR_INVALID_NON_CA 37 +# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 +# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 +# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 +# define X509_V_ERR_INVALID_EXTENSION 41 +# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 +# define X509_V_ERR_NO_EXPLICIT_POLICY 43 +# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 +# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 +# define X509_V_ERR_UNNESTED_RESOURCE 46 +# define X509_V_ERR_PERMITTED_VIOLATION 47 +# define X509_V_ERR_EXCLUDED_VIOLATION 48 +# define X509_V_ERR_SUBTREE_MINMAX 49 +/* The application is not happy */ +# define X509_V_ERR_APPLICATION_VERIFICATION 50 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 +# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 +# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 +# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 +/* Another issuer check debug option */ +# define X509_V_ERR_PATH_LOOP 55 +/* Suite B mode algorithm violation */ +# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 +# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 +# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 +# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 +# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 +# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 +/* Host, email and IP check errors */ +# define X509_V_ERR_HOSTNAME_MISMATCH 62 +# define X509_V_ERR_EMAIL_MISMATCH 63 +# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 +/* DANE TLSA errors */ +# define X509_V_ERR_DANE_NO_MATCH 65 +/* security level errors */ +# define X509_V_ERR_EE_KEY_TOO_SMALL 66 +# define X509_V_ERR_CA_KEY_TOO_SMALL 67 +# define X509_V_ERR_CA_MD_TOO_WEAK 68 +/* Caller error */ +# define X509_V_ERR_INVALID_CALL 69 +/* Issuer lookup error */ +# define X509_V_ERR_STORE_LOOKUP 70 +/* Certificate transparency */ +# define X509_V_ERR_NO_VALID_SCTS 71 + +# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 +/* OCSP status errors */ +# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ +# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ +# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ + +# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 76 +# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 77 + +/* Errors in case a check in X509_V_FLAG_X509_STRICT mode fails */ +# define X509_V_ERR_SIGNATURE_ALGORITHM_INCONSISTENCY 78 +# define X509_V_ERR_INVALID_CA 79 +# define X509_V_ERR_PATHLEN_INVALID_FOR_NON_CA 80 +# define X509_V_ERR_PATHLEN_WITHOUT_KU_KEY_CERT_SIGN 81 +# define X509_V_ERR_KU_KEY_CERT_SIGN_INVALID_FOR_NON_CA 82 +# define X509_V_ERR_ISSUER_NAME_EMPTY 83 +# define X509_V_ERR_SUBJECT_NAME_EMPTY 84 +# define X509_V_ERR_MISSING_AUTHORITY_KEY_IDENTIFIER 85 +# define X509_V_ERR_MISSING_SUBJECT_KEY_IDENTIFIER 86 +# define X509_V_ERR_EMPTY_SUBJECT_ALT_NAME 87 +# define X509_V_ERR_EMPTY_SUBJECT_SAN_NOT_CRITICAL 88 +# define X509_V_ERR_CA_BCONS_NOT_CRITICAL 89 +# define X509_V_ERR_AUTHORITY_KEY_IDENTIFIER_CRITICAL 90 +# define X509_V_ERR_SUBJECT_KEY_IDENTIFIER_CRITICAL 91 +# define X509_V_ERR_CA_CERT_MISSING_KEY_USAGE 92 +# define X509_V_ERR_EXTENSIONS_REQUIRE_VERSION_3 93 +# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 94 +# define X509_V_ERR_RPK_UNTRUSTED 95 + +/* Certificate verify flags */ +# ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ +# endif +/* Use check time instead of current time */ +# define X509_V_FLAG_USE_CHECK_TIME 0x2 +/* Lookup CRLs */ +# define X509_V_FLAG_CRL_CHECK 0x4 +/* Lookup CRLs for whole chain */ +# define X509_V_FLAG_CRL_CHECK_ALL 0x8 +/* Ignore unhandled critical extensions */ +# define X509_V_FLAG_IGNORE_CRITICAL 0x10 +/* Disable workarounds for broken certificates */ +# define X509_V_FLAG_X509_STRICT 0x20 +/* Enable proxy certificate validation */ +# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 +/* Enable policy checking */ +# define X509_V_FLAG_POLICY_CHECK 0x80 +/* Policy variable require-explicit-policy */ +# define X509_V_FLAG_EXPLICIT_POLICY 0x100 +/* Policy variable inhibit-any-policy */ +# define X509_V_FLAG_INHIBIT_ANY 0x200 +/* Policy variable inhibit-policy-mapping */ +# define X509_V_FLAG_INHIBIT_MAP 0x400 +/* Notify callback that policy is OK */ +# define X509_V_FLAG_NOTIFY_POLICY 0x800 +/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ +# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 +/* Delta CRL support */ +# define X509_V_FLAG_USE_DELTAS 0x2000 +/* Check self-signed CA signature */ +# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 +/* Use trusted store first */ +# define X509_V_FLAG_TRUSTED_FIRST 0x8000 +/* Suite B 128 bit only mode: not normally used */ +# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 +/* Suite B 192 bit only mode */ +# define X509_V_FLAG_SUITEB_192_LOS 0x20000 +/* Suite B 128 bit mode allowing 192 bit algorithms */ +# define X509_V_FLAG_SUITEB_128_LOS 0x30000 +/* Allow partial chains if at least one certificate is in trusted store */ +# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 +/* + * If the initial chain is not trusted, do not attempt to build an alternative + * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag + * will force the behaviour to match that of previous versions. + */ +# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 +/* Do not check certificate/CRL validity against current time */ +# define X509_V_FLAG_NO_CHECK_TIME 0x200000 + +# define X509_VP_FLAG_DEFAULT 0x1 +# define X509_VP_FLAG_OVERWRITE 0x2 +# define X509_VP_FLAG_RESET_FLAGS 0x4 +# define X509_VP_FLAG_LOCKED 0x8 +# define X509_VP_FLAG_ONCE 0x10 + +/* Internal use: mask of policy related options */ +# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ + | X509_V_FLAG_EXPLICIT_POLICY \ + | X509_V_FLAG_INHIBIT_ANY \ + | X509_V_FLAG_INHIBIT_MAP) + +int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, + const X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, + X509_LOOKUP_TYPE type, + const X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, + X509_OBJECT *x); +int X509_OBJECT_up_ref_count(X509_OBJECT *a); +X509_OBJECT *X509_OBJECT_new(void); +void X509_OBJECT_free(X509_OBJECT *a); +X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); +X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); +int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); +X509_CRL *X509_OBJECT_get0_X509_CRL(const X509_OBJECT *a); +int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); +X509_STORE *X509_STORE_new(void); +void X509_STORE_free(X509_STORE *xs); +int X509_STORE_lock(X509_STORE *xs); +int X509_STORE_unlock(X509_STORE *xs); +int X509_STORE_up_ref(X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(const X509_STORE *xs); +STACK_OF(X509_OBJECT) *X509_STORE_get1_objects(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_get1_all_certs(X509_STORE *xs); +STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *xs, + const X509_NAME *nm); +STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(const X509_STORE_CTX *st, + const X509_NAME *nm); +int X509_STORE_set_flags(X509_STORE *xs, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *xs, int purpose); +int X509_STORE_set_trust(X509_STORE *xs, int trust); +int X509_STORE_set1_param(X509_STORE *xs, const X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(const X509_STORE *xs); + +void X509_STORE_set_verify(X509_STORE *xs, X509_STORE_CTX_verify_fn verify); +#define X509_STORE_set_verify_func(ctx, func) \ + X509_STORE_set_verify((ctx),(func)) +void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_fn verify); +X509_STORE_CTX_verify_fn X509_STORE_get_verify(const X509_STORE *xs); +void X509_STORE_set_verify_cb(X509_STORE *xs, + X509_STORE_CTX_verify_cb verify_cb); +# define X509_STORE_set_verify_cb_func(ctx,func) \ + X509_STORE_set_verify_cb((ctx),(func)) +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(const X509_STORE *xs); +void X509_STORE_set_get_issuer(X509_STORE *xs, + X509_STORE_CTX_get_issuer_fn get_issuer); +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(const X509_STORE *xs); +void X509_STORE_set_check_issued(X509_STORE *xs, + X509_STORE_CTX_check_issued_fn check_issued); +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(const X509_STORE *s); +void X509_STORE_set_check_revocation(X509_STORE *xs, + X509_STORE_CTX_check_revocation_fn check_revocation); +X509_STORE_CTX_check_revocation_fn + X509_STORE_get_check_revocation(const X509_STORE *xs); +void X509_STORE_set_get_crl(X509_STORE *xs, + X509_STORE_CTX_get_crl_fn get_crl); +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(const X509_STORE *xs); +void X509_STORE_set_check_crl(X509_STORE *xs, + X509_STORE_CTX_check_crl_fn check_crl); +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(const X509_STORE *xs); +void X509_STORE_set_cert_crl(X509_STORE *xs, + X509_STORE_CTX_cert_crl_fn cert_crl); +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(const X509_STORE *xs); +void X509_STORE_set_check_policy(X509_STORE *xs, + X509_STORE_CTX_check_policy_fn check_policy); +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(const X509_STORE *s); +void X509_STORE_set_lookup_certs(X509_STORE *xs, + X509_STORE_CTX_lookup_certs_fn lookup_certs); +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(const X509_STORE *s); +void X509_STORE_set_lookup_crls(X509_STORE *xs, + X509_STORE_CTX_lookup_crls_fn lookup_crls); +#define X509_STORE_set_lookup_crls_cb(ctx, func) \ + X509_STORE_set_lookup_crls((ctx), (func)) +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(const X509_STORE *xs); +void X509_STORE_set_cleanup(X509_STORE *xs, + X509_STORE_CTX_cleanup_fn cleanup); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(const X509_STORE *xs); + +#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) +int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data); +void *X509_STORE_get_ex_data(const X509_STORE *xs, int idx); + +X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); +X509_STORE_CTX *X509_STORE_CTX_new(void); + +int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); + +void X509_STORE_CTX_free(X509_STORE_CTX *ctx); +int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, + X509 *target, STACK_OF(X509) *untrusted); +int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, + EVP_PKEY* rpk); +void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); + +X509_STORE *X509_STORE_CTX_get0_store(const X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_cert(const X509_STORE_CTX *ctx); +EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); +STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_cb verify); +X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(const X509_STORE_CTX *ctx); +X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(const X509_STORE_CTX *ctx); +X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(const X509_STORE_CTX *ctx); +X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(const X509_STORE_CTX *ctx); +X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_get_crl(X509_STORE_CTX *ctx, + X509_STORE_CTX_get_crl_fn get_crl); +X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(const X509_STORE_CTX *ctx); +X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(const X509_STORE_CTX *ctx); +X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(const X509_STORE_CTX *ctx); +X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(const X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(const X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(const X509_STORE_CTX *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(const X509_STORE_CTX *ctx); + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain +# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted +# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack +# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject +# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs +# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls +/* the following macro is misspelled; use X509_STORE_get1_certs instead */ +# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs +/* the following macro is misspelled; use X509_STORE_get1_crls instead */ +# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls +#endif + +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *xs, X509_LOOKUP_METHOD *m); +X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD *X509_LOOKUP_file(void); +X509_LOOKUP_METHOD *X509_LOOKUP_store(void); + +typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +typedef int (*X509_LOOKUP_ctrl_ex_fn)( + X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret, + OSSL_LIB_CTX *libctx, const char *propq); + +typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const X509_NAME *name, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_subject_ex_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const X509_NAME *name, + X509_OBJECT *ret, + OSSL_LIB_CTX *libctx, + const char *propq); +typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const X509_NAME *name, + const ASN1_INTEGER *serial, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const unsigned char* bytes, + int len, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const char *str, + int len, + X509_OBJECT *ret); + +X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); +void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, + int (*new_item) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, + void (*free_fn) (X509_LOOKUP *ctx)); +void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, + int (*init) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, + int (*shutdown) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); + +int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, + X509_LOOKUP_ctrl_fn ctrl_fn); +X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_subject_fn fn); +X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_issuer_serial_fn fn); +X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_fingerprint_fn fn); +X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( + const X509_LOOKUP_METHOD *method); + +int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_alias_fn fn); +X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( + const X509_LOOKUP_METHOD *method); + + +int X509_STORE_add_cert(X509_STORE *xs, X509 *x); +int X509_STORE_add_crl(X509_STORE *xs, X509_CRL *x); + +int X509_STORE_CTX_get_by_subject(const X509_STORE_CTX *vs, + X509_LOOKUP_TYPE type, + const X509_NAME *name, X509_OBJECT *ret); +X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, + X509_LOOKUP_TYPE type, + const X509_NAME *name); + +int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +int X509_LOOKUP_ctrl_ex(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, + char **ret, OSSL_LIB_CTX *libctx, const char *propq); + +int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_file_ex(X509_LOOKUP *ctx, const char *file, int type, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file_ex(X509_LOOKUP *ctx, const char *file, int type, + OSSL_LIB_CTX *libctx, const char *propq); + +X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); +void X509_LOOKUP_free(X509_LOOKUP *ctx); +int X509_LOOKUP_init(X509_LOOKUP *ctx); +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const X509_NAME *name, X509_OBJECT *ret); +int X509_LOOKUP_by_subject_ex(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const X509_NAME *name, X509_OBJECT *ret, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const X509_NAME *name, + const ASN1_INTEGER *serial, + X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const unsigned char *bytes, int len, + X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const char *str, int len, X509_OBJECT *ret); +int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); +void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); +X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); +int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); + +int X509_STORE_load_file(X509_STORE *xs, const char *file); +int X509_STORE_load_path(X509_STORE *xs, const char *path); +int X509_STORE_load_store(X509_STORE *xs, const char *store); +int X509_STORE_load_locations(X509_STORE *s, const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *xs); + +int X509_STORE_load_file_ex(X509_STORE *xs, const char *file, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_load_store_ex(X509_STORE *xs, const char *store, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_load_locations_ex(X509_STORE *xs, + const char *file, const char *dir, + OSSL_LIB_CTX *libctx, const char *propq); +int X509_STORE_set_default_paths_ex(X509_STORE *xs, + OSSL_LIB_CTX *libctx, const char *propq); + +#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ + CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) +int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); +void *X509_STORE_CTX_get_ex_data(const X509_STORE_CTX *ctx, int idx); +int X509_STORE_CTX_get_error(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); +int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); +X509 *X509_STORE_CTX_get_current_cert(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); +X509 *X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX *ctx); +X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx); +X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); +STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); +void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); +void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); +void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); +int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); +int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); +int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, + int purpose, int trust); +void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); +void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, + time_t t); +void X509_STORE_CTX_set_current_reasons(X509_STORE_CTX *ctx, + unsigned int current_reasons); + +X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(const X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_explicit_policy(const X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx); + +X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); +int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); + +/* + * Bridge opacity barrier between libcrypt and libssl, also needed to support + * offline testing in test/danetest.c + */ +void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); +#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) + +/* X509_VERIFY_PARAM functions */ + +X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); +void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); +int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); +void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); +time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); +void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); +int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, + ASN1_OBJECT *policy); +int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, + STACK_OF(ASN1_OBJECT) *policies); + +int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, + uint32_t flags); +uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); + +char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int idx); +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); +char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param); +void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); +char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); + +int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); + +int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); +void X509_VERIFY_PARAM_table_cleanup(void); + +/* Non positive return values are errors */ +#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ +#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ +#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ + +/* + * Positive return values form a bit mask, all but the first are internal to + * the library and don't appear in results from X509_policy_check(). + */ +#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ +#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ +#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ + +int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, + STACK_OF(X509) *certs, + STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); + +void X509_policy_tree_free(X509_POLICY_TREE *tree); + +int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); +X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, + int i); + +STACK_OF(X509_POLICY_NODE) + *X509_policy_tree_get0_policies(const X509_POLICY_TREE *tree); + +STACK_OF(X509_POLICY_NODE) + *X509_policy_tree_get0_user_policies(const X509_POLICY_TREE *tree); + +int X509_policy_level_node_count(X509_POLICY_LEVEL *level); + +X509_POLICY_NODE *X509_policy_level_get0_node(const X509_POLICY_LEVEL *level, + int i); + +const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); + +STACK_OF(POLICYQUALINFO) + *X509_policy_node_get0_qualifiers(const X509_POLICY_NODE *node); +const X509_POLICY_NODE + *X509_policy_node_get0_parent(const X509_POLICY_NODE *node); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/clientapp/android/app/src/main/cpp/include/openssl/x509v3.h b/clientapp/android/app/src/main/cpp/include/openssl/x509v3.h new file mode 100644 index 00000000..e64da7e0 --- /dev/null +++ b/clientapp/android/app/src/main/cpp/include/openssl/x509v3.h @@ -0,0 +1,1454 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/x509v3.h.in + * + * Copyright 1999-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + + + +#ifndef OPENSSL_X509V3_H +# define OPENSSL_X509V3_H +# pragma once + +# include +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define HEADER_X509V3_H +# endif + +# include +# include +# include +# include +# ifndef OPENSSL_NO_STDIO +# include +# endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward reference */ +struct v3_ext_method; +struct v3_ext_ctx; + +/* Useful typedefs */ + +typedef void *(*X509V3_EXT_NEW)(void); +typedef void (*X509V3_EXT_FREE) (void *); +typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); +typedef int (*X509V3_EXT_I2D) (const void *, unsigned char **); +typedef STACK_OF(CONF_VALUE) * + (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, + STACK_OF(CONF_VALUE) *extlist); +typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, + STACK_OF(CONF_VALUE) *values); +typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, + void *ext); +typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); +typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, + BIO *out, int indent); +typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, + struct v3_ext_ctx *ctx, const char *str); + +/* V3 extension structure */ + +struct v3_ext_method { + int ext_nid; + int ext_flags; +/* If this is set the following four fields are ignored */ + ASN1_ITEM_EXP *it; +/* Old style ASN1 calls */ + X509V3_EXT_NEW ext_new; + X509V3_EXT_FREE ext_free; + X509V3_EXT_D2I d2i; + X509V3_EXT_I2D i2d; +/* The following pair is used for string extensions */ + X509V3_EXT_I2S i2s; + X509V3_EXT_S2I s2i; +/* The following pair is used for multi-valued extensions */ + X509V3_EXT_I2V i2v; + X509V3_EXT_V2I v2i; +/* The following are used for raw extensions */ + X509V3_EXT_I2R i2r; + X509V3_EXT_R2I r2i; + void *usr_data; /* Any extension specific data */ +}; + +typedef struct X509V3_CONF_METHOD_st { + char *(*get_string) (void *db, const char *section, const char *value); + STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); + void (*free_string) (void *db, char *string); + void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); +} X509V3_CONF_METHOD; + +/* Context specific info for producing X509 v3 extensions*/ +struct v3_ext_ctx { +# define X509V3_CTX_TEST 0x1 +# ifndef OPENSSL_NO_DEPRECATED_3_0 +# define CTX_TEST X509V3_CTX_TEST +# endif +# define X509V3_CTX_REPLACE 0x2 + int flags; + X509 *issuer_cert; + X509 *subject_cert; + X509_REQ *subject_req; + X509_CRL *crl; + X509V3_CONF_METHOD *db_meth; + void *db; + EVP_PKEY *issuer_pkey; +/* Maybe more here */ +}; + +typedef struct v3_ext_method X509V3_EXT_METHOD; + +SKM_DEFINE_STACK_OF_INTERNAL(X509V3_EXT_METHOD, X509V3_EXT_METHOD, X509V3_EXT_METHOD) +#define sk_X509V3_EXT_METHOD_num(sk) OPENSSL_sk_num(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) +#define sk_X509V3_EXT_METHOD_value(sk, idx) ((X509V3_EXT_METHOD *)OPENSSL_sk_value(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), (idx))) +#define sk_X509V3_EXT_METHOD_new(cmp) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) +#define sk_X509V3_EXT_METHOD_new_null() ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_null()) +#define sk_X509V3_EXT_METHOD_new_reserve(cmp, n) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_reserve(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp), (n))) +#define sk_X509V3_EXT_METHOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (n)) +#define sk_X509V3_EXT_METHOD_free(sk) OPENSSL_sk_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) +#define sk_X509V3_EXT_METHOD_zero(sk) OPENSSL_sk_zero(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) +#define sk_X509V3_EXT_METHOD_delete(sk, i) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (i))) +#define sk_X509V3_EXT_METHOD_delete_ptr(sk, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete_ptr(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr))) +#define sk_X509V3_EXT_METHOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) +#define sk_X509V3_EXT_METHOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) +#define sk_X509V3_EXT_METHOD_pop(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_pop(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) +#define sk_X509V3_EXT_METHOD_shift(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_shift(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) +#define sk_X509V3_EXT_METHOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk),ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc)) +#define sk_X509V3_EXT_METHOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), (idx)) +#define sk_X509V3_EXT_METHOD_set(sk, idx, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_set(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (idx), ossl_check_X509V3_EXT_METHOD_type(ptr))) +#define sk_X509V3_EXT_METHOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) +#define sk_X509V3_EXT_METHOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) +#define sk_X509V3_EXT_METHOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), pnum) +#define sk_X509V3_EXT_METHOD_sort(sk) OPENSSL_sk_sort(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) +#define sk_X509V3_EXT_METHOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) +#define sk_X509V3_EXT_METHOD_dup(sk) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_dup(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk))) +#define sk_X509V3_EXT_METHOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_deep_copy(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_copyfunc_type(copyfunc), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc))) +#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, cmp) ((sk_X509V3_EXT_METHOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) + + +/* ext_flags values */ +# define X509V3_EXT_DYNAMIC 0x1 +# define X509V3_EXT_CTX_DEP 0x2 +# define X509V3_EXT_MULTILINE 0x4 + +typedef BIT_STRING_BITNAME ENUMERATED_NAMES; + +typedef struct BASIC_CONSTRAINTS_st { + int ca; + ASN1_INTEGER *pathlen; +} BASIC_CONSTRAINTS; + +typedef struct PKEY_USAGE_PERIOD_st { + ASN1_GENERALIZEDTIME *notBefore; + ASN1_GENERALIZEDTIME *notAfter; +} PKEY_USAGE_PERIOD; + +typedef struct otherName_st { + ASN1_OBJECT *type_id; + ASN1_TYPE *value; +} OTHERNAME; + +typedef struct EDIPartyName_st { + ASN1_STRING *nameAssigner; + ASN1_STRING *partyName; +} EDIPARTYNAME; + +typedef struct GENERAL_NAME_st { +# define GEN_OTHERNAME 0 +# define GEN_EMAIL 1 +# define GEN_DNS 2 +# define GEN_X400 3 +# define GEN_DIRNAME 4 +# define GEN_EDIPARTY 5 +# define GEN_URI 6 +# define GEN_IPADD 7 +# define GEN_RID 8 + int type; + union { + char *ptr; + OTHERNAME *otherName; /* otherName */ + ASN1_IA5STRING *rfc822Name; + ASN1_IA5STRING *dNSName; + ASN1_STRING *x400Address; + X509_NAME *directoryName; + EDIPARTYNAME *ediPartyName; + ASN1_IA5STRING *uniformResourceIdentifier; + ASN1_OCTET_STRING *iPAddress; + ASN1_OBJECT *registeredID; + /* Old names */ + ASN1_OCTET_STRING *ip; /* iPAddress */ + X509_NAME *dirn; /* dirn */ + ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, + * uniformResourceIdentifier */ + ASN1_OBJECT *rid; /* registeredID */ + ASN1_TYPE *other; /* x400Address */ + } d; +} GENERAL_NAME; + +typedef struct ACCESS_DESCRIPTION_st { + ASN1_OBJECT *method; + GENERAL_NAME *location; +} ACCESS_DESCRIPTION; + +SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) +#define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) +#define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) +#define sk_ACCESS_DESCRIPTION_new(cmp) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) +#define sk_ACCESS_DESCRIPTION_new_null() ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_null()) +#define sk_ACCESS_DESCRIPTION_new_reserve(cmp, n) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_reserve(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp), (n))) +#define sk_ACCESS_DESCRIPTION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (n)) +#define sk_ACCESS_DESCRIPTION_free(sk) OPENSSL_sk_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) +#define sk_ACCESS_DESCRIPTION_zero(sk) OPENSSL_sk_zero(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) +#define sk_ACCESS_DESCRIPTION_delete(sk, i) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (i))) +#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete_ptr(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr))) +#define sk_ACCESS_DESCRIPTION_push(sk, ptr) OPENSSL_sk_push(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) +#define sk_ACCESS_DESCRIPTION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) +#define sk_ACCESS_DESCRIPTION_pop(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_pop(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) +#define sk_ACCESS_DESCRIPTION_shift(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_shift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) +#define sk_ACCESS_DESCRIPTION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk),ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc)) +#define sk_ACCESS_DESCRIPTION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), (idx)) +#define sk_ACCESS_DESCRIPTION_set(sk, idx, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_set(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (idx), ossl_check_ACCESS_DESCRIPTION_type(ptr))) +#define sk_ACCESS_DESCRIPTION_find(sk, ptr) OPENSSL_sk_find(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) +#define sk_ACCESS_DESCRIPTION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) +#define sk_ACCESS_DESCRIPTION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), pnum) +#define sk_ACCESS_DESCRIPTION_sort(sk) OPENSSL_sk_sort(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) +#define sk_ACCESS_DESCRIPTION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) +#define sk_ACCESS_DESCRIPTION_dup(sk) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_dup(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk))) +#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_deep_copy(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_copyfunc_type(copyfunc), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc))) +#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, cmp) ((sk_ACCESS_DESCRIPTION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAME, GENERAL_NAME, GENERAL_NAME) +#define sk_GENERAL_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAME_sk_type(sk)) +#define sk_GENERAL_NAME_value(sk, idx) ((GENERAL_NAME *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAME_sk_type(sk), (idx))) +#define sk_GENERAL_NAME_new(cmp) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new(ossl_check_GENERAL_NAME_compfunc_type(cmp))) +#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_null()) +#define sk_GENERAL_NAME_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAME_compfunc_type(cmp), (n))) +#define sk_GENERAL_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAME_sk_type(sk), (n)) +#define sk_GENERAL_NAME_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAME_sk_type(sk)) +#define sk_GENERAL_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAME_sk_type(sk)) +#define sk_GENERAL_NAME_delete(sk, i) ((GENERAL_NAME *)OPENSSL_sk_delete(ossl_check_GENERAL_NAME_sk_type(sk), (i))) +#define sk_GENERAL_NAME_delete_ptr(sk, ptr) ((GENERAL_NAME *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr))) +#define sk_GENERAL_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) +#define sk_GENERAL_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) +#define sk_GENERAL_NAME_pop(sk) ((GENERAL_NAME *)OPENSSL_sk_pop(ossl_check_GENERAL_NAME_sk_type(sk))) +#define sk_GENERAL_NAME_shift(sk) ((GENERAL_NAME *)OPENSSL_sk_shift(ossl_check_GENERAL_NAME_sk_type(sk))) +#define sk_GENERAL_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAME_sk_type(sk),ossl_check_GENERAL_NAME_freefunc_type(freefunc)) +#define sk_GENERAL_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), (idx)) +#define sk_GENERAL_NAME_set(sk, idx, ptr) ((GENERAL_NAME *)OPENSSL_sk_set(ossl_check_GENERAL_NAME_sk_type(sk), (idx), ossl_check_GENERAL_NAME_type(ptr))) +#define sk_GENERAL_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) +#define sk_GENERAL_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) +#define sk_GENERAL_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), pnum) +#define sk_GENERAL_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAME_sk_type(sk)) +#define sk_GENERAL_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAME_sk_type(sk)) +#define sk_GENERAL_NAME_dup(sk) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAME_sk_type(sk))) +#define sk_GENERAL_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_copyfunc_type(copyfunc), ossl_check_GENERAL_NAME_freefunc_type(freefunc))) +#define sk_GENERAL_NAME_set_cmp_func(sk, cmp) ((sk_GENERAL_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_compfunc_type(cmp))) + + +typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; +typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; +typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; +typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; + +SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAMES, GENERAL_NAMES, GENERAL_NAMES) +#define sk_GENERAL_NAMES_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAMES_sk_type(sk)) +#define sk_GENERAL_NAMES_value(sk, idx) ((GENERAL_NAMES *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAMES_sk_type(sk), (idx))) +#define sk_GENERAL_NAMES_new(cmp) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new(ossl_check_GENERAL_NAMES_compfunc_type(cmp))) +#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_null()) +#define sk_GENERAL_NAMES_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAMES_compfunc_type(cmp), (n))) +#define sk_GENERAL_NAMES_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAMES_sk_type(sk), (n)) +#define sk_GENERAL_NAMES_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAMES_sk_type(sk)) +#define sk_GENERAL_NAMES_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAMES_sk_type(sk)) +#define sk_GENERAL_NAMES_delete(sk, i) ((GENERAL_NAMES *)OPENSSL_sk_delete(ossl_check_GENERAL_NAMES_sk_type(sk), (i))) +#define sk_GENERAL_NAMES_delete_ptr(sk, ptr) ((GENERAL_NAMES *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr))) +#define sk_GENERAL_NAMES_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) +#define sk_GENERAL_NAMES_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) +#define sk_GENERAL_NAMES_pop(sk) ((GENERAL_NAMES *)OPENSSL_sk_pop(ossl_check_GENERAL_NAMES_sk_type(sk))) +#define sk_GENERAL_NAMES_shift(sk) ((GENERAL_NAMES *)OPENSSL_sk_shift(ossl_check_GENERAL_NAMES_sk_type(sk))) +#define sk_GENERAL_NAMES_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAMES_sk_type(sk),ossl_check_GENERAL_NAMES_freefunc_type(freefunc)) +#define sk_GENERAL_NAMES_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), (idx)) +#define sk_GENERAL_NAMES_set(sk, idx, ptr) ((GENERAL_NAMES *)OPENSSL_sk_set(ossl_check_GENERAL_NAMES_sk_type(sk), (idx), ossl_check_GENERAL_NAMES_type(ptr))) +#define sk_GENERAL_NAMES_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) +#define sk_GENERAL_NAMES_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) +#define sk_GENERAL_NAMES_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), pnum) +#define sk_GENERAL_NAMES_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAMES_sk_type(sk)) +#define sk_GENERAL_NAMES_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAMES_sk_type(sk)) +#define sk_GENERAL_NAMES_dup(sk) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAMES_sk_type(sk))) +#define sk_GENERAL_NAMES_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_copyfunc_type(copyfunc), ossl_check_GENERAL_NAMES_freefunc_type(freefunc))) +#define sk_GENERAL_NAMES_set_cmp_func(sk, cmp) ((sk_GENERAL_NAMES_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_compfunc_type(cmp))) + + +typedef struct DIST_POINT_NAME_st { + int type; + union { + GENERAL_NAMES *fullname; + STACK_OF(X509_NAME_ENTRY) *relativename; + } name; +/* If relativename then this contains the full distribution point name */ + X509_NAME *dpname; +} DIST_POINT_NAME; +/* All existing reasons */ +# define CRLDP_ALL_REASONS 0x807f + +# define CRL_REASON_NONE -1 +# define CRL_REASON_UNSPECIFIED 0 +# define CRL_REASON_KEY_COMPROMISE 1 +# define CRL_REASON_CA_COMPROMISE 2 +# define CRL_REASON_AFFILIATION_CHANGED 3 +# define CRL_REASON_SUPERSEDED 4 +# define CRL_REASON_CESSATION_OF_OPERATION 5 +# define CRL_REASON_CERTIFICATE_HOLD 6 +# define CRL_REASON_REMOVE_FROM_CRL 8 +# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 +# define CRL_REASON_AA_COMPROMISE 10 + +struct DIST_POINT_st { + DIST_POINT_NAME *distpoint; + ASN1_BIT_STRING *reasons; + GENERAL_NAMES *CRLissuer; + int dp_reasons; +}; + +SKM_DEFINE_STACK_OF_INTERNAL(DIST_POINT, DIST_POINT, DIST_POINT) +#define sk_DIST_POINT_num(sk) OPENSSL_sk_num(ossl_check_const_DIST_POINT_sk_type(sk)) +#define sk_DIST_POINT_value(sk, idx) ((DIST_POINT *)OPENSSL_sk_value(ossl_check_const_DIST_POINT_sk_type(sk), (idx))) +#define sk_DIST_POINT_new(cmp) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new(ossl_check_DIST_POINT_compfunc_type(cmp))) +#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_null()) +#define sk_DIST_POINT_new_reserve(cmp, n) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_reserve(ossl_check_DIST_POINT_compfunc_type(cmp), (n))) +#define sk_DIST_POINT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_DIST_POINT_sk_type(sk), (n)) +#define sk_DIST_POINT_free(sk) OPENSSL_sk_free(ossl_check_DIST_POINT_sk_type(sk)) +#define sk_DIST_POINT_zero(sk) OPENSSL_sk_zero(ossl_check_DIST_POINT_sk_type(sk)) +#define sk_DIST_POINT_delete(sk, i) ((DIST_POINT *)OPENSSL_sk_delete(ossl_check_DIST_POINT_sk_type(sk), (i))) +#define sk_DIST_POINT_delete_ptr(sk, ptr) ((DIST_POINT *)OPENSSL_sk_delete_ptr(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr))) +#define sk_DIST_POINT_push(sk, ptr) OPENSSL_sk_push(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) +#define sk_DIST_POINT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) +#define sk_DIST_POINT_pop(sk) ((DIST_POINT *)OPENSSL_sk_pop(ossl_check_DIST_POINT_sk_type(sk))) +#define sk_DIST_POINT_shift(sk) ((DIST_POINT *)OPENSSL_sk_shift(ossl_check_DIST_POINT_sk_type(sk))) +#define sk_DIST_POINT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_DIST_POINT_sk_type(sk),ossl_check_DIST_POINT_freefunc_type(freefunc)) +#define sk_DIST_POINT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), (idx)) +#define sk_DIST_POINT_set(sk, idx, ptr) ((DIST_POINT *)OPENSSL_sk_set(ossl_check_DIST_POINT_sk_type(sk), (idx), ossl_check_DIST_POINT_type(ptr))) +#define sk_DIST_POINT_find(sk, ptr) OPENSSL_sk_find(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) +#define sk_DIST_POINT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) +#define sk_DIST_POINT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), pnum) +#define sk_DIST_POINT_sort(sk) OPENSSL_sk_sort(ossl_check_DIST_POINT_sk_type(sk)) +#define sk_DIST_POINT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_DIST_POINT_sk_type(sk)) +#define sk_DIST_POINT_dup(sk) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_dup(ossl_check_const_DIST_POINT_sk_type(sk))) +#define sk_DIST_POINT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_deep_copy(ossl_check_const_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_copyfunc_type(copyfunc), ossl_check_DIST_POINT_freefunc_type(freefunc))) +#define sk_DIST_POINT_set_cmp_func(sk, cmp) ((sk_DIST_POINT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_compfunc_type(cmp))) + + +typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; + +struct AUTHORITY_KEYID_st { + ASN1_OCTET_STRING *keyid; + GENERAL_NAMES *issuer; + ASN1_INTEGER *serial; +}; + +/* Strong extranet structures */ + +typedef struct SXNET_ID_st { + ASN1_INTEGER *zone; + ASN1_OCTET_STRING *user; +} SXNETID; + +SKM_DEFINE_STACK_OF_INTERNAL(SXNETID, SXNETID, SXNETID) +#define sk_SXNETID_num(sk) OPENSSL_sk_num(ossl_check_const_SXNETID_sk_type(sk)) +#define sk_SXNETID_value(sk, idx) ((SXNETID *)OPENSSL_sk_value(ossl_check_const_SXNETID_sk_type(sk), (idx))) +#define sk_SXNETID_new(cmp) ((STACK_OF(SXNETID) *)OPENSSL_sk_new(ossl_check_SXNETID_compfunc_type(cmp))) +#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)OPENSSL_sk_new_null()) +#define sk_SXNETID_new_reserve(cmp, n) ((STACK_OF(SXNETID) *)OPENSSL_sk_new_reserve(ossl_check_SXNETID_compfunc_type(cmp), (n))) +#define sk_SXNETID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SXNETID_sk_type(sk), (n)) +#define sk_SXNETID_free(sk) OPENSSL_sk_free(ossl_check_SXNETID_sk_type(sk)) +#define sk_SXNETID_zero(sk) OPENSSL_sk_zero(ossl_check_SXNETID_sk_type(sk)) +#define sk_SXNETID_delete(sk, i) ((SXNETID *)OPENSSL_sk_delete(ossl_check_SXNETID_sk_type(sk), (i))) +#define sk_SXNETID_delete_ptr(sk, ptr) ((SXNETID *)OPENSSL_sk_delete_ptr(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr))) +#define sk_SXNETID_push(sk, ptr) OPENSSL_sk_push(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) +#define sk_SXNETID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) +#define sk_SXNETID_pop(sk) ((SXNETID *)OPENSSL_sk_pop(ossl_check_SXNETID_sk_type(sk))) +#define sk_SXNETID_shift(sk) ((SXNETID *)OPENSSL_sk_shift(ossl_check_SXNETID_sk_type(sk))) +#define sk_SXNETID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SXNETID_sk_type(sk),ossl_check_SXNETID_freefunc_type(freefunc)) +#define sk_SXNETID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), (idx)) +#define sk_SXNETID_set(sk, idx, ptr) ((SXNETID *)OPENSSL_sk_set(ossl_check_SXNETID_sk_type(sk), (idx), ossl_check_SXNETID_type(ptr))) +#define sk_SXNETID_find(sk, ptr) OPENSSL_sk_find(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) +#define sk_SXNETID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) +#define sk_SXNETID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), pnum) +#define sk_SXNETID_sort(sk) OPENSSL_sk_sort(ossl_check_SXNETID_sk_type(sk)) +#define sk_SXNETID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SXNETID_sk_type(sk)) +#define sk_SXNETID_dup(sk) ((STACK_OF(SXNETID) *)OPENSSL_sk_dup(ossl_check_const_SXNETID_sk_type(sk))) +#define sk_SXNETID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SXNETID) *)OPENSSL_sk_deep_copy(ossl_check_const_SXNETID_sk_type(sk), ossl_check_SXNETID_copyfunc_type(copyfunc), ossl_check_SXNETID_freefunc_type(freefunc))) +#define sk_SXNETID_set_cmp_func(sk, cmp) ((sk_SXNETID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_compfunc_type(cmp))) + + + +typedef struct SXNET_st { + ASN1_INTEGER *version; + STACK_OF(SXNETID) *ids; +} SXNET; + +typedef struct ISSUER_SIGN_TOOL_st { + ASN1_UTF8STRING *signTool; + ASN1_UTF8STRING *cATool; + ASN1_UTF8STRING *signToolCert; + ASN1_UTF8STRING *cAToolCert; +} ISSUER_SIGN_TOOL; + +typedef struct NOTICEREF_st { + ASN1_STRING *organization; + STACK_OF(ASN1_INTEGER) *noticenos; +} NOTICEREF; + +typedef struct USERNOTICE_st { + NOTICEREF *noticeref; + ASN1_STRING *exptext; +} USERNOTICE; + +typedef struct POLICYQUALINFO_st { + ASN1_OBJECT *pqualid; + union { + ASN1_IA5STRING *cpsuri; + USERNOTICE *usernotice; + ASN1_TYPE *other; + } d; +} POLICYQUALINFO; + +SKM_DEFINE_STACK_OF_INTERNAL(POLICYQUALINFO, POLICYQUALINFO, POLICYQUALINFO) +#define sk_POLICYQUALINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYQUALINFO_sk_type(sk)) +#define sk_POLICYQUALINFO_value(sk, idx) ((POLICYQUALINFO *)OPENSSL_sk_value(ossl_check_const_POLICYQUALINFO_sk_type(sk), (idx))) +#define sk_POLICYQUALINFO_new(cmp) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new(ossl_check_POLICYQUALINFO_compfunc_type(cmp))) +#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_null()) +#define sk_POLICYQUALINFO_new_reserve(cmp, n) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYQUALINFO_compfunc_type(cmp), (n))) +#define sk_POLICYQUALINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYQUALINFO_sk_type(sk), (n)) +#define sk_POLICYQUALINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYQUALINFO_sk_type(sk)) +#define sk_POLICYQUALINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYQUALINFO_sk_type(sk)) +#define sk_POLICYQUALINFO_delete(sk, i) ((POLICYQUALINFO *)OPENSSL_sk_delete(ossl_check_POLICYQUALINFO_sk_type(sk), (i))) +#define sk_POLICYQUALINFO_delete_ptr(sk, ptr) ((POLICYQUALINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr))) +#define sk_POLICYQUALINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) +#define sk_POLICYQUALINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) +#define sk_POLICYQUALINFO_pop(sk) ((POLICYQUALINFO *)OPENSSL_sk_pop(ossl_check_POLICYQUALINFO_sk_type(sk))) +#define sk_POLICYQUALINFO_shift(sk) ((POLICYQUALINFO *)OPENSSL_sk_shift(ossl_check_POLICYQUALINFO_sk_type(sk))) +#define sk_POLICYQUALINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYQUALINFO_sk_type(sk),ossl_check_POLICYQUALINFO_freefunc_type(freefunc)) +#define sk_POLICYQUALINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), (idx)) +#define sk_POLICYQUALINFO_set(sk, idx, ptr) ((POLICYQUALINFO *)OPENSSL_sk_set(ossl_check_POLICYQUALINFO_sk_type(sk), (idx), ossl_check_POLICYQUALINFO_type(ptr))) +#define sk_POLICYQUALINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) +#define sk_POLICYQUALINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) +#define sk_POLICYQUALINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), pnum) +#define sk_POLICYQUALINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYQUALINFO_sk_type(sk)) +#define sk_POLICYQUALINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYQUALINFO_sk_type(sk)) +#define sk_POLICYQUALINFO_dup(sk) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYQUALINFO_sk_type(sk))) +#define sk_POLICYQUALINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_copyfunc_type(copyfunc), ossl_check_POLICYQUALINFO_freefunc_type(freefunc))) +#define sk_POLICYQUALINFO_set_cmp_func(sk, cmp) ((sk_POLICYQUALINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_compfunc_type(cmp))) + + + +typedef struct POLICYINFO_st { + ASN1_OBJECT *policyid; + STACK_OF(POLICYQUALINFO) *qualifiers; +} POLICYINFO; + +SKM_DEFINE_STACK_OF_INTERNAL(POLICYINFO, POLICYINFO, POLICYINFO) +#define sk_POLICYINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYINFO_sk_type(sk)) +#define sk_POLICYINFO_value(sk, idx) ((POLICYINFO *)OPENSSL_sk_value(ossl_check_const_POLICYINFO_sk_type(sk), (idx))) +#define sk_POLICYINFO_new(cmp) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new(ossl_check_POLICYINFO_compfunc_type(cmp))) +#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_null()) +#define sk_POLICYINFO_new_reserve(cmp, n) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYINFO_compfunc_type(cmp), (n))) +#define sk_POLICYINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYINFO_sk_type(sk), (n)) +#define sk_POLICYINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYINFO_sk_type(sk)) +#define sk_POLICYINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYINFO_sk_type(sk)) +#define sk_POLICYINFO_delete(sk, i) ((POLICYINFO *)OPENSSL_sk_delete(ossl_check_POLICYINFO_sk_type(sk), (i))) +#define sk_POLICYINFO_delete_ptr(sk, ptr) ((POLICYINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr))) +#define sk_POLICYINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) +#define sk_POLICYINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) +#define sk_POLICYINFO_pop(sk) ((POLICYINFO *)OPENSSL_sk_pop(ossl_check_POLICYINFO_sk_type(sk))) +#define sk_POLICYINFO_shift(sk) ((POLICYINFO *)OPENSSL_sk_shift(ossl_check_POLICYINFO_sk_type(sk))) +#define sk_POLICYINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYINFO_sk_type(sk),ossl_check_POLICYINFO_freefunc_type(freefunc)) +#define sk_POLICYINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), (idx)) +#define sk_POLICYINFO_set(sk, idx, ptr) ((POLICYINFO *)OPENSSL_sk_set(ossl_check_POLICYINFO_sk_type(sk), (idx), ossl_check_POLICYINFO_type(ptr))) +#define sk_POLICYINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) +#define sk_POLICYINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) +#define sk_POLICYINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), pnum) +#define sk_POLICYINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYINFO_sk_type(sk)) +#define sk_POLICYINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYINFO_sk_type(sk)) +#define sk_POLICYINFO_dup(sk) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYINFO_sk_type(sk))) +#define sk_POLICYINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_copyfunc_type(copyfunc), ossl_check_POLICYINFO_freefunc_type(freefunc))) +#define sk_POLICYINFO_set_cmp_func(sk, cmp) ((sk_POLICYINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_compfunc_type(cmp))) + + +typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; + +typedef struct POLICY_MAPPING_st { + ASN1_OBJECT *issuerDomainPolicy; + ASN1_OBJECT *subjectDomainPolicy; +} POLICY_MAPPING; + +SKM_DEFINE_STACK_OF_INTERNAL(POLICY_MAPPING, POLICY_MAPPING, POLICY_MAPPING) +#define sk_POLICY_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_POLICY_MAPPING_sk_type(sk)) +#define sk_POLICY_MAPPING_value(sk, idx) ((POLICY_MAPPING *)OPENSSL_sk_value(ossl_check_const_POLICY_MAPPING_sk_type(sk), (idx))) +#define sk_POLICY_MAPPING_new(cmp) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new(ossl_check_POLICY_MAPPING_compfunc_type(cmp))) +#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_null()) +#define sk_POLICY_MAPPING_new_reserve(cmp, n) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_POLICY_MAPPING_compfunc_type(cmp), (n))) +#define sk_POLICY_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICY_MAPPING_sk_type(sk), (n)) +#define sk_POLICY_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_POLICY_MAPPING_sk_type(sk)) +#define sk_POLICY_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_POLICY_MAPPING_sk_type(sk)) +#define sk_POLICY_MAPPING_delete(sk, i) ((POLICY_MAPPING *)OPENSSL_sk_delete(ossl_check_POLICY_MAPPING_sk_type(sk), (i))) +#define sk_POLICY_MAPPING_delete_ptr(sk, ptr) ((POLICY_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr))) +#define sk_POLICY_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) +#define sk_POLICY_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) +#define sk_POLICY_MAPPING_pop(sk) ((POLICY_MAPPING *)OPENSSL_sk_pop(ossl_check_POLICY_MAPPING_sk_type(sk))) +#define sk_POLICY_MAPPING_shift(sk) ((POLICY_MAPPING *)OPENSSL_sk_shift(ossl_check_POLICY_MAPPING_sk_type(sk))) +#define sk_POLICY_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICY_MAPPING_sk_type(sk),ossl_check_POLICY_MAPPING_freefunc_type(freefunc)) +#define sk_POLICY_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), (idx)) +#define sk_POLICY_MAPPING_set(sk, idx, ptr) ((POLICY_MAPPING *)OPENSSL_sk_set(ossl_check_POLICY_MAPPING_sk_type(sk), (idx), ossl_check_POLICY_MAPPING_type(ptr))) +#define sk_POLICY_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) +#define sk_POLICY_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) +#define sk_POLICY_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), pnum) +#define sk_POLICY_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_POLICY_MAPPING_sk_type(sk)) +#define sk_POLICY_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICY_MAPPING_sk_type(sk)) +#define sk_POLICY_MAPPING_dup(sk) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_POLICY_MAPPING_sk_type(sk))) +#define sk_POLICY_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_copyfunc_type(copyfunc), ossl_check_POLICY_MAPPING_freefunc_type(freefunc))) +#define sk_POLICY_MAPPING_set_cmp_func(sk, cmp) ((sk_POLICY_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_compfunc_type(cmp))) + + +typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; + +typedef struct GENERAL_SUBTREE_st { + GENERAL_NAME *base; + ASN1_INTEGER *minimum; + ASN1_INTEGER *maximum; +} GENERAL_SUBTREE; + +SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_SUBTREE, GENERAL_SUBTREE, GENERAL_SUBTREE) +#define sk_GENERAL_SUBTREE_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) +#define sk_GENERAL_SUBTREE_value(sk, idx) ((GENERAL_SUBTREE *)OPENSSL_sk_value(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), (idx))) +#define sk_GENERAL_SUBTREE_new(cmp) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) +#define sk_GENERAL_SUBTREE_new_null() ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_null()) +#define sk_GENERAL_SUBTREE_new_reserve(cmp, n) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp), (n))) +#define sk_GENERAL_SUBTREE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_SUBTREE_sk_type(sk), (n)) +#define sk_GENERAL_SUBTREE_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_SUBTREE_sk_type(sk)) +#define sk_GENERAL_SUBTREE_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_SUBTREE_sk_type(sk)) +#define sk_GENERAL_SUBTREE_delete(sk, i) ((GENERAL_SUBTREE *)OPENSSL_sk_delete(ossl_check_GENERAL_SUBTREE_sk_type(sk), (i))) +#define sk_GENERAL_SUBTREE_delete_ptr(sk, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr))) +#define sk_GENERAL_SUBTREE_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) +#define sk_GENERAL_SUBTREE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) +#define sk_GENERAL_SUBTREE_pop(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_pop(ossl_check_GENERAL_SUBTREE_sk_type(sk))) +#define sk_GENERAL_SUBTREE_shift(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_shift(ossl_check_GENERAL_SUBTREE_sk_type(sk))) +#define sk_GENERAL_SUBTREE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_SUBTREE_sk_type(sk),ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc)) +#define sk_GENERAL_SUBTREE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), (idx)) +#define sk_GENERAL_SUBTREE_set(sk, idx, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_set(ossl_check_GENERAL_SUBTREE_sk_type(sk), (idx), ossl_check_GENERAL_SUBTREE_type(ptr))) +#define sk_GENERAL_SUBTREE_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) +#define sk_GENERAL_SUBTREE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) +#define sk_GENERAL_SUBTREE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), pnum) +#define sk_GENERAL_SUBTREE_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_SUBTREE_sk_type(sk)) +#define sk_GENERAL_SUBTREE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) +#define sk_GENERAL_SUBTREE_dup(sk) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_SUBTREE_sk_type(sk))) +#define sk_GENERAL_SUBTREE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_copyfunc_type(copyfunc), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc))) +#define sk_GENERAL_SUBTREE_set_cmp_func(sk, cmp) ((sk_GENERAL_SUBTREE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) + + +struct NAME_CONSTRAINTS_st { + STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; + STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; +}; + +typedef struct POLICY_CONSTRAINTS_st { + ASN1_INTEGER *requireExplicitPolicy; + ASN1_INTEGER *inhibitPolicyMapping; +} POLICY_CONSTRAINTS; + +/* Proxy certificate structures, see RFC 3820 */ +typedef struct PROXY_POLICY_st { + ASN1_OBJECT *policyLanguage; + ASN1_OCTET_STRING *policy; +} PROXY_POLICY; + +typedef struct PROXY_CERT_INFO_EXTENSION_st { + ASN1_INTEGER *pcPathLengthConstraint; + PROXY_POLICY *proxyPolicy; +} PROXY_CERT_INFO_EXTENSION; + +DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) +DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) + +struct ISSUING_DIST_POINT_st { + DIST_POINT_NAME *distpoint; + int onlyuser; + int onlyCA; + ASN1_BIT_STRING *onlysomereasons; + int indirectCRL; + int onlyattr; +}; + +/* Values in idp_flags field */ +/* IDP present */ +# define IDP_PRESENT 0x1 +/* IDP values inconsistent */ +# define IDP_INVALID 0x2 +/* onlyuser true */ +# define IDP_ONLYUSER 0x4 +/* onlyCA true */ +# define IDP_ONLYCA 0x8 +/* onlyattr true */ +# define IDP_ONLYATTR 0x10 +/* indirectCRL true */ +# define IDP_INDIRECT 0x20 +/* onlysomereasons present */ +# define IDP_REASONS 0x40 + +# define X509V3_conf_err(val) ERR_add_error_data(6, \ + "section:", (val)->section, \ + ",name:", (val)->name, ",value:", (val)->value) + +# define X509V3_set_ctx_test(ctx) \ + X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, X509V3_CTX_TEST) +# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; + +# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ + 0,0,0,0, \ + 0,0, \ + (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ + (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ + NULL, NULL, \ + table} + +# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ + 0,0,0,0, \ + (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ + (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ + 0,0,0,0, \ + NULL} + +#define EXT_UTF8STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_UTF8STRING), \ + 0,0,0,0, \ + (X509V3_EXT_I2S)i2s_ASN1_UTF8STRING, \ + (X509V3_EXT_S2I)s2i_ASN1_UTF8STRING, \ + 0,0,0,0, \ + NULL} + +# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} + +/* X509_PURPOSE stuff */ + +# define EXFLAG_BCONS 0x1 +# define EXFLAG_KUSAGE 0x2 +# define EXFLAG_XKUSAGE 0x4 +# define EXFLAG_NSCERT 0x8 + +# define EXFLAG_CA 0x10 +# define EXFLAG_SI 0x20 /* self-issued, maybe not self-signed */ +# define EXFLAG_V1 0x40 +# define EXFLAG_INVALID 0x80 +/* EXFLAG_SET is set to indicate that some values have been precomputed */ +# define EXFLAG_SET 0x100 +# define EXFLAG_CRITICAL 0x200 +# define EXFLAG_PROXY 0x400 + +# define EXFLAG_INVALID_POLICY 0x800 +# define EXFLAG_FRESHEST 0x1000 +# define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ + +# define EXFLAG_BCONS_CRITICAL 0x10000 +# define EXFLAG_AKID_CRITICAL 0x20000 +# define EXFLAG_SKID_CRITICAL 0x40000 +# define EXFLAG_SAN_CRITICAL 0x80000 +# define EXFLAG_NO_FINGERPRINT 0x100000 + +# define KU_DIGITAL_SIGNATURE 0x0080 +# define KU_NON_REPUDIATION 0x0040 +# define KU_KEY_ENCIPHERMENT 0x0020 +# define KU_DATA_ENCIPHERMENT 0x0010 +# define KU_KEY_AGREEMENT 0x0008 +# define KU_KEY_CERT_SIGN 0x0004 +# define KU_CRL_SIGN 0x0002 +# define KU_ENCIPHER_ONLY 0x0001 +# define KU_DECIPHER_ONLY 0x8000 + +# define NS_SSL_CLIENT 0x80 +# define NS_SSL_SERVER 0x40 +# define NS_SMIME 0x20 +# define NS_OBJSIGN 0x10 +# define NS_SSL_CA 0x04 +# define NS_SMIME_CA 0x02 +# define NS_OBJSIGN_CA 0x01 +# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) + +# define XKU_SSL_SERVER 0x1 +# define XKU_SSL_CLIENT 0x2 +# define XKU_SMIME 0x4 +# define XKU_CODE_SIGN 0x8 +# define XKU_SGC 0x10 /* Netscape or MS Server-Gated Crypto */ +# define XKU_OCSP_SIGN 0x20 +# define XKU_TIMESTAMP 0x40 +# define XKU_DVCS 0x80 +# define XKU_ANYEKU 0x100 + +# define X509_PURPOSE_DYNAMIC 0x1 +# define X509_PURPOSE_DYNAMIC_NAME 0x2 + +typedef struct x509_purpose_st { + int purpose; + int trust; /* Default trust ID */ + int flags; + int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); + char *name; + char *sname; + void *usr_data; +} X509_PURPOSE; + +SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) +#define sk_X509_PURPOSE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_PURPOSE_sk_type(sk)) +#define sk_X509_PURPOSE_value(sk, idx) ((X509_PURPOSE *)OPENSSL_sk_value(ossl_check_const_X509_PURPOSE_sk_type(sk), (idx))) +#define sk_X509_PURPOSE_new(cmp) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new(ossl_check_X509_PURPOSE_compfunc_type(cmp))) +#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_null()) +#define sk_X509_PURPOSE_new_reserve(cmp, n) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_reserve(ossl_check_X509_PURPOSE_compfunc_type(cmp), (n))) +#define sk_X509_PURPOSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_PURPOSE_sk_type(sk), (n)) +#define sk_X509_PURPOSE_free(sk) OPENSSL_sk_free(ossl_check_X509_PURPOSE_sk_type(sk)) +#define sk_X509_PURPOSE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_PURPOSE_sk_type(sk)) +#define sk_X509_PURPOSE_delete(sk, i) ((X509_PURPOSE *)OPENSSL_sk_delete(ossl_check_X509_PURPOSE_sk_type(sk), (i))) +#define sk_X509_PURPOSE_delete_ptr(sk, ptr) ((X509_PURPOSE *)OPENSSL_sk_delete_ptr(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr))) +#define sk_X509_PURPOSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) +#define sk_X509_PURPOSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) +#define sk_X509_PURPOSE_pop(sk) ((X509_PURPOSE *)OPENSSL_sk_pop(ossl_check_X509_PURPOSE_sk_type(sk))) +#define sk_X509_PURPOSE_shift(sk) ((X509_PURPOSE *)OPENSSL_sk_shift(ossl_check_X509_PURPOSE_sk_type(sk))) +#define sk_X509_PURPOSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_PURPOSE_sk_type(sk),ossl_check_X509_PURPOSE_freefunc_type(freefunc)) +#define sk_X509_PURPOSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), (idx)) +#define sk_X509_PURPOSE_set(sk, idx, ptr) ((X509_PURPOSE *)OPENSSL_sk_set(ossl_check_X509_PURPOSE_sk_type(sk), (idx), ossl_check_X509_PURPOSE_type(ptr))) +#define sk_X509_PURPOSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) +#define sk_X509_PURPOSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) +#define sk_X509_PURPOSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), pnum) +#define sk_X509_PURPOSE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_PURPOSE_sk_type(sk)) +#define sk_X509_PURPOSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_PURPOSE_sk_type(sk)) +#define sk_X509_PURPOSE_dup(sk) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_dup(ossl_check_const_X509_PURPOSE_sk_type(sk))) +#define sk_X509_PURPOSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_copyfunc_type(copyfunc), ossl_check_X509_PURPOSE_freefunc_type(freefunc))) +#define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) + + + +# define X509_PURPOSE_SSL_CLIENT 1 +# define X509_PURPOSE_SSL_SERVER 2 +# define X509_PURPOSE_NS_SSL_SERVER 3 +# define X509_PURPOSE_SMIME_SIGN 4 +# define X509_PURPOSE_SMIME_ENCRYPT 5 +# define X509_PURPOSE_CRL_SIGN 6 +# define X509_PURPOSE_ANY 7 +# define X509_PURPOSE_OCSP_HELPER 8 +# define X509_PURPOSE_TIMESTAMP_SIGN 9 +# define X509_PURPOSE_CODE_SIGN 10 + +# define X509_PURPOSE_MIN 1 +# define X509_PURPOSE_MAX 10 + +/* Flags for X509V3_EXT_print() */ + +# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) +/* Return error for unknown extensions */ +# define X509V3_EXT_DEFAULT 0 +/* Print error for unknown extensions */ +# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) +/* ASN1 parse unknown extensions */ +# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) +/* BIO_dump unknown extensions */ +# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) + +/* Flags for X509V3_add1_i2d */ + +# define X509V3_ADD_OP_MASK 0xfL +# define X509V3_ADD_DEFAULT 0L +# define X509V3_ADD_APPEND 1L +# define X509V3_ADD_REPLACE 2L +# define X509V3_ADD_REPLACE_EXISTING 3L +# define X509V3_ADD_KEEP_EXISTING 4L +# define X509V3_ADD_DELETE 5L +# define X509V3_ADD_SILENT 0x10 + +DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) + +DECLARE_ASN1_FUNCTIONS(SXNET) +DECLARE_ASN1_FUNCTIONS(SXNETID) + +DECLARE_ASN1_FUNCTIONS(ISSUER_SIGN_TOOL) + +int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); +int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, + int userlen); +int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, + int userlen); + +ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); +ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); +ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); + +DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) + +DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) +DECLARE_ASN1_DUP_FUNCTION(GENERAL_NAME) +int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); + +ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, + STACK_OF(CONF_VALUE) *nval); +STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, + ASN1_BIT_STRING *bits, + STACK_OF(CONF_VALUE) *extlist); +char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); +ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); +char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, ASN1_UTF8STRING *utf8); +ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, + GENERAL_NAME *gen, + STACK_OF(CONF_VALUE) *ret); +int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); + +DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) + +STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, + GENERAL_NAMES *gen, + STACK_OF(CONF_VALUE) *extlist); +GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); + +DECLARE_ASN1_FUNCTIONS(OTHERNAME) +DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) +int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); +void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); +void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); +int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, + ASN1_OBJECT *oid, ASN1_TYPE *value); +int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, + ASN1_OBJECT **poid, ASN1_TYPE **pvalue); + +char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + const ASN1_OCTET_STRING *ia5); +ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, const char *str); + +DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) +int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); + +DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) + +DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) +DECLARE_ASN1_FUNCTIONS(POLICYINFO) +DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) +DECLARE_ASN1_FUNCTIONS(USERNOTICE) +DECLARE_ASN1_FUNCTIONS(NOTICEREF) + +DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) +DECLARE_ASN1_FUNCTIONS(DIST_POINT) +DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) +DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) + +int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, const X509_NAME *iname); + +int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); +int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); + +DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) +DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) + +DECLARE_ASN1_ITEM(POLICY_MAPPING) +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) +DECLARE_ASN1_ITEM(POLICY_MAPPINGS) + +DECLARE_ASN1_ITEM(GENERAL_SUBTREE) +DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) + +DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) +DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) + +DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) +DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) + +GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, int gen_type, + const char *value, int is_nc); + +# ifdef OPENSSL_CONF_H +GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf); +GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, + const X509V3_EXT_METHOD *method, + X509V3_CTX *ctx, CONF_VALUE *cnf, + int is_nc); + +void X509V3_conf_free(CONF_VALUE *val); + +X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, + const char *value); +X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, + const char *value); +int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, + STACK_OF(X509_EXTENSION) **sk); +int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509 *cert); +int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509_REQ *req); +int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, + X509_CRL *crl); + +X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, + X509V3_CTX *ctx, int ext_nid, + const char *value); +X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *name, const char *value); +int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509 *cert); +int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509_REQ *req); +int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, + const char *section, X509_CRL *crl); + +int X509V3_add_value_bool_nf(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); +int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); +void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); +void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); +# endif + +char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); +STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); +void X509V3_string_free(X509V3_CTX *ctx, char *str); +void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); +void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, + X509_REQ *req, X509_CRL *crl, int flags); +/* For API backward compatibility, this is separate from X509V3_set_ctx(): */ +int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); + +int X509V3_add_value(const char *name, const char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_uchar(const char *name, const unsigned char *value, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_bool(const char *name, int asn1_bool, + STACK_OF(CONF_VALUE) **extlist); +int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, + STACK_OF(CONF_VALUE) **extlist); +char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); +ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); +char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); +char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, + const ASN1_ENUMERATED *aint); +int X509V3_EXT_add(X509V3_EXT_METHOD *ext); +int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); +int X509V3_EXT_add_alias(int nid_to, int nid_from); +void X509V3_EXT_cleanup(void); + +const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); +const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); +int X509V3_add_standard_extensions(void); +STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); +void *X509V3_EXT_d2i(X509_EXTENSION *ext); +void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, + int *idx); + +X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); +int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, + int crit, unsigned long flags); + +#ifndef OPENSSL_NO_DEPRECATED_1_1_0 +/* The new declarations are in crypto.h, but the old ones were here. */ +# define hex_to_string OPENSSL_buf2hexstr +# define string_to_hex OPENSSL_hexstr2buf +#endif + +void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, + int ml); +int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, + int indent); +#ifndef OPENSSL_NO_STDIO +int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); +#endif +int X509V3_extensions_print(BIO *out, const char *title, + const STACK_OF(X509_EXTENSION) *exts, + unsigned long flag, int indent); + +int X509_check_ca(X509 *x); +int X509_check_purpose(X509 *x, int id, int ca); +int X509_supported_extension(X509_EXTENSION *ex); +int X509_PURPOSE_set(int *p, int purpose); +int X509_check_issued(X509 *issuer, X509 *subject); +int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); +void X509_set_proxy_flag(X509 *x); +void X509_set_proxy_pathlen(X509 *x, long l); +long X509_get_proxy_pathlen(X509 *x); + +uint32_t X509_get_extension_flags(X509 *x); +uint32_t X509_get_key_usage(X509 *x); +uint32_t X509_get_extended_key_usage(X509 *x); +const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); +const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); +const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); +const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); + +int X509_PURPOSE_get_count(void); +X509_PURPOSE *X509_PURPOSE_get0(int idx); +int X509_PURPOSE_get_by_sname(const char *sname); +int X509_PURPOSE_get_by_id(int id); +int X509_PURPOSE_add(int id, int trust, int flags, + int (*ck) (const X509_PURPOSE *, const X509 *, int), + const char *name, const char *sname, void *arg); +char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); +char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); +int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); +void X509_PURPOSE_cleanup(void); +int X509_PURPOSE_get_id(const X509_PURPOSE *); + +STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); +STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); +void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); +STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); +/* Flags for X509_check_* functions */ + +/* + * Always check subject name for host match even if subject alt names present + */ +# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 +/* Disable wildcard matching for dnsName fields and common name. */ +# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 +/* Wildcards must not match a partial label. */ +# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 +/* Allow (non-partial) wildcards to match multiple labels. */ +# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 +/* Constraint verifier subdomain patterns to match a single labels. */ +# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 +/* Never check the subject CN */ +# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 +/* + * Match reference identifiers starting with "." to any sub-domain. + * This is a non-public flag, turned on implicitly when the subject + * reference identity is a DNS name. + */ +# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 + +int X509_check_host(X509 *x, const char *chk, size_t chklen, + unsigned int flags, char **peername); +int X509_check_email(X509 *x, const char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, + unsigned int flags); +int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); + +ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); +ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); +int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, + unsigned long chtype); + +void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); +SKM_DEFINE_STACK_OF_INTERNAL(X509_POLICY_NODE, X509_POLICY_NODE, X509_POLICY_NODE) +#define sk_X509_POLICY_NODE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) +#define sk_X509_POLICY_NODE_value(sk, idx) ((X509_POLICY_NODE *)OPENSSL_sk_value(ossl_check_const_X509_POLICY_NODE_sk_type(sk), (idx))) +#define sk_X509_POLICY_NODE_new(cmp) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new(ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) +#define sk_X509_POLICY_NODE_new_null() ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_null()) +#define sk_X509_POLICY_NODE_new_reserve(cmp, n) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_reserve(ossl_check_X509_POLICY_NODE_compfunc_type(cmp), (n))) +#define sk_X509_POLICY_NODE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_POLICY_NODE_sk_type(sk), (n)) +#define sk_X509_POLICY_NODE_free(sk) OPENSSL_sk_free(ossl_check_X509_POLICY_NODE_sk_type(sk)) +#define sk_X509_POLICY_NODE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_POLICY_NODE_sk_type(sk)) +#define sk_X509_POLICY_NODE_delete(sk, i) ((X509_POLICY_NODE *)OPENSSL_sk_delete(ossl_check_X509_POLICY_NODE_sk_type(sk), (i))) +#define sk_X509_POLICY_NODE_delete_ptr(sk, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_delete_ptr(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr))) +#define sk_X509_POLICY_NODE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) +#define sk_X509_POLICY_NODE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) +#define sk_X509_POLICY_NODE_pop(sk) ((X509_POLICY_NODE *)OPENSSL_sk_pop(ossl_check_X509_POLICY_NODE_sk_type(sk))) +#define sk_X509_POLICY_NODE_shift(sk) ((X509_POLICY_NODE *)OPENSSL_sk_shift(ossl_check_X509_POLICY_NODE_sk_type(sk))) +#define sk_X509_POLICY_NODE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_POLICY_NODE_sk_type(sk),ossl_check_X509_POLICY_NODE_freefunc_type(freefunc)) +#define sk_X509_POLICY_NODE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), (idx)) +#define sk_X509_POLICY_NODE_set(sk, idx, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_set(ossl_check_X509_POLICY_NODE_sk_type(sk), (idx), ossl_check_X509_POLICY_NODE_type(ptr))) +#define sk_X509_POLICY_NODE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) +#define sk_X509_POLICY_NODE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) +#define sk_X509_POLICY_NODE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), pnum) +#define sk_X509_POLICY_NODE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_POLICY_NODE_sk_type(sk)) +#define sk_X509_POLICY_NODE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) +#define sk_X509_POLICY_NODE_dup(sk) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_dup(ossl_check_const_X509_POLICY_NODE_sk_type(sk))) +#define sk_X509_POLICY_NODE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_copyfunc_type(copyfunc), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc))) +#define sk_X509_POLICY_NODE_set_cmp_func(sk, cmp) ((sk_X509_POLICY_NODE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) + + + +#ifndef OPENSSL_NO_RFC3779 +typedef struct ASRange_st { + ASN1_INTEGER *min, *max; +} ASRange; + +# define ASIdOrRange_id 0 +# define ASIdOrRange_range 1 + +typedef struct ASIdOrRange_st { + int type; + union { + ASN1_INTEGER *id; + ASRange *range; + } u; +} ASIdOrRange; + +SKM_DEFINE_STACK_OF_INTERNAL(ASIdOrRange, ASIdOrRange, ASIdOrRange) +#define sk_ASIdOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_ASIdOrRange_sk_type(sk)) +#define sk_ASIdOrRange_value(sk, idx) ((ASIdOrRange *)OPENSSL_sk_value(ossl_check_const_ASIdOrRange_sk_type(sk), (idx))) +#define sk_ASIdOrRange_new(cmp) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new(ossl_check_ASIdOrRange_compfunc_type(cmp))) +#define sk_ASIdOrRange_new_null() ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_null()) +#define sk_ASIdOrRange_new_reserve(cmp, n) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_reserve(ossl_check_ASIdOrRange_compfunc_type(cmp), (n))) +#define sk_ASIdOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASIdOrRange_sk_type(sk), (n)) +#define sk_ASIdOrRange_free(sk) OPENSSL_sk_free(ossl_check_ASIdOrRange_sk_type(sk)) +#define sk_ASIdOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_ASIdOrRange_sk_type(sk)) +#define sk_ASIdOrRange_delete(sk, i) ((ASIdOrRange *)OPENSSL_sk_delete(ossl_check_ASIdOrRange_sk_type(sk), (i))) +#define sk_ASIdOrRange_delete_ptr(sk, ptr) ((ASIdOrRange *)OPENSSL_sk_delete_ptr(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr))) +#define sk_ASIdOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) +#define sk_ASIdOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) +#define sk_ASIdOrRange_pop(sk) ((ASIdOrRange *)OPENSSL_sk_pop(ossl_check_ASIdOrRange_sk_type(sk))) +#define sk_ASIdOrRange_shift(sk) ((ASIdOrRange *)OPENSSL_sk_shift(ossl_check_ASIdOrRange_sk_type(sk))) +#define sk_ASIdOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASIdOrRange_sk_type(sk),ossl_check_ASIdOrRange_freefunc_type(freefunc)) +#define sk_ASIdOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), (idx)) +#define sk_ASIdOrRange_set(sk, idx, ptr) ((ASIdOrRange *)OPENSSL_sk_set(ossl_check_ASIdOrRange_sk_type(sk), (idx), ossl_check_ASIdOrRange_type(ptr))) +#define sk_ASIdOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) +#define sk_ASIdOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) +#define sk_ASIdOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), pnum) +#define sk_ASIdOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_ASIdOrRange_sk_type(sk)) +#define sk_ASIdOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASIdOrRange_sk_type(sk)) +#define sk_ASIdOrRange_dup(sk) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_dup(ossl_check_const_ASIdOrRange_sk_type(sk))) +#define sk_ASIdOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_copyfunc_type(copyfunc), ossl_check_ASIdOrRange_freefunc_type(freefunc))) +#define sk_ASIdOrRange_set_cmp_func(sk, cmp) ((sk_ASIdOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_compfunc_type(cmp))) + + +typedef STACK_OF(ASIdOrRange) ASIdOrRanges; + +# define ASIdentifierChoice_inherit 0 +# define ASIdentifierChoice_asIdsOrRanges 1 + +typedef struct ASIdentifierChoice_st { + int type; + union { + ASN1_NULL *inherit; + ASIdOrRanges *asIdsOrRanges; + } u; +} ASIdentifierChoice; + +typedef struct ASIdentifiers_st { + ASIdentifierChoice *asnum, *rdi; +} ASIdentifiers; + +DECLARE_ASN1_FUNCTIONS(ASRange) +DECLARE_ASN1_FUNCTIONS(ASIdOrRange) +DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) +DECLARE_ASN1_FUNCTIONS(ASIdentifiers) + +typedef struct IPAddressRange_st { + ASN1_BIT_STRING *min, *max; +} IPAddressRange; + +# define IPAddressOrRange_addressPrefix 0 +# define IPAddressOrRange_addressRange 1 + +typedef struct IPAddressOrRange_st { + int type; + union { + ASN1_BIT_STRING *addressPrefix; + IPAddressRange *addressRange; + } u; +} IPAddressOrRange; + +SKM_DEFINE_STACK_OF_INTERNAL(IPAddressOrRange, IPAddressOrRange, IPAddressOrRange) +#define sk_IPAddressOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressOrRange_sk_type(sk)) +#define sk_IPAddressOrRange_value(sk, idx) ((IPAddressOrRange *)OPENSSL_sk_value(ossl_check_const_IPAddressOrRange_sk_type(sk), (idx))) +#define sk_IPAddressOrRange_new(cmp) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new(ossl_check_IPAddressOrRange_compfunc_type(cmp))) +#define sk_IPAddressOrRange_new_null() ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_null()) +#define sk_IPAddressOrRange_new_reserve(cmp, n) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressOrRange_compfunc_type(cmp), (n))) +#define sk_IPAddressOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressOrRange_sk_type(sk), (n)) +#define sk_IPAddressOrRange_free(sk) OPENSSL_sk_free(ossl_check_IPAddressOrRange_sk_type(sk)) +#define sk_IPAddressOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressOrRange_sk_type(sk)) +#define sk_IPAddressOrRange_delete(sk, i) ((IPAddressOrRange *)OPENSSL_sk_delete(ossl_check_IPAddressOrRange_sk_type(sk), (i))) +#define sk_IPAddressOrRange_delete_ptr(sk, ptr) ((IPAddressOrRange *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr))) +#define sk_IPAddressOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) +#define sk_IPAddressOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) +#define sk_IPAddressOrRange_pop(sk) ((IPAddressOrRange *)OPENSSL_sk_pop(ossl_check_IPAddressOrRange_sk_type(sk))) +#define sk_IPAddressOrRange_shift(sk) ((IPAddressOrRange *)OPENSSL_sk_shift(ossl_check_IPAddressOrRange_sk_type(sk))) +#define sk_IPAddressOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressOrRange_sk_type(sk),ossl_check_IPAddressOrRange_freefunc_type(freefunc)) +#define sk_IPAddressOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), (idx)) +#define sk_IPAddressOrRange_set(sk, idx, ptr) ((IPAddressOrRange *)OPENSSL_sk_set(ossl_check_IPAddressOrRange_sk_type(sk), (idx), ossl_check_IPAddressOrRange_type(ptr))) +#define sk_IPAddressOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) +#define sk_IPAddressOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) +#define sk_IPAddressOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), pnum) +#define sk_IPAddressOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressOrRange_sk_type(sk)) +#define sk_IPAddressOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressOrRange_sk_type(sk)) +#define sk_IPAddressOrRange_dup(sk) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_dup(ossl_check_const_IPAddressOrRange_sk_type(sk))) +#define sk_IPAddressOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_copyfunc_type(copyfunc), ossl_check_IPAddressOrRange_freefunc_type(freefunc))) +#define sk_IPAddressOrRange_set_cmp_func(sk, cmp) ((sk_IPAddressOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_compfunc_type(cmp))) + + +typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; + +# define IPAddressChoice_inherit 0 +# define IPAddressChoice_addressesOrRanges 1 + +typedef struct IPAddressChoice_st { + int type; + union { + ASN1_NULL *inherit; + IPAddressOrRanges *addressesOrRanges; + } u; +} IPAddressChoice; + +typedef struct IPAddressFamily_st { + ASN1_OCTET_STRING *addressFamily; + IPAddressChoice *ipAddressChoice; +} IPAddressFamily; + +SKM_DEFINE_STACK_OF_INTERNAL(IPAddressFamily, IPAddressFamily, IPAddressFamily) +#define sk_IPAddressFamily_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressFamily_sk_type(sk)) +#define sk_IPAddressFamily_value(sk, idx) ((IPAddressFamily *)OPENSSL_sk_value(ossl_check_const_IPAddressFamily_sk_type(sk), (idx))) +#define sk_IPAddressFamily_new(cmp) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new(ossl_check_IPAddressFamily_compfunc_type(cmp))) +#define sk_IPAddressFamily_new_null() ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_null()) +#define sk_IPAddressFamily_new_reserve(cmp, n) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressFamily_compfunc_type(cmp), (n))) +#define sk_IPAddressFamily_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressFamily_sk_type(sk), (n)) +#define sk_IPAddressFamily_free(sk) OPENSSL_sk_free(ossl_check_IPAddressFamily_sk_type(sk)) +#define sk_IPAddressFamily_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressFamily_sk_type(sk)) +#define sk_IPAddressFamily_delete(sk, i) ((IPAddressFamily *)OPENSSL_sk_delete(ossl_check_IPAddressFamily_sk_type(sk), (i))) +#define sk_IPAddressFamily_delete_ptr(sk, ptr) ((IPAddressFamily *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr))) +#define sk_IPAddressFamily_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) +#define sk_IPAddressFamily_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) +#define sk_IPAddressFamily_pop(sk) ((IPAddressFamily *)OPENSSL_sk_pop(ossl_check_IPAddressFamily_sk_type(sk))) +#define sk_IPAddressFamily_shift(sk) ((IPAddressFamily *)OPENSSL_sk_shift(ossl_check_IPAddressFamily_sk_type(sk))) +#define sk_IPAddressFamily_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressFamily_sk_type(sk),ossl_check_IPAddressFamily_freefunc_type(freefunc)) +#define sk_IPAddressFamily_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), (idx)) +#define sk_IPAddressFamily_set(sk, idx, ptr) ((IPAddressFamily *)OPENSSL_sk_set(ossl_check_IPAddressFamily_sk_type(sk), (idx), ossl_check_IPAddressFamily_type(ptr))) +#define sk_IPAddressFamily_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) +#define sk_IPAddressFamily_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) +#define sk_IPAddressFamily_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), pnum) +#define sk_IPAddressFamily_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressFamily_sk_type(sk)) +#define sk_IPAddressFamily_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressFamily_sk_type(sk)) +#define sk_IPAddressFamily_dup(sk) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_dup(ossl_check_const_IPAddressFamily_sk_type(sk))) +#define sk_IPAddressFamily_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_copyfunc_type(copyfunc), ossl_check_IPAddressFamily_freefunc_type(freefunc))) +#define sk_IPAddressFamily_set_cmp_func(sk, cmp) ((sk_IPAddressFamily_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_compfunc_type(cmp))) + + + +typedef STACK_OF(IPAddressFamily) IPAddrBlocks; + +DECLARE_ASN1_FUNCTIONS(IPAddressRange) +DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) +DECLARE_ASN1_FUNCTIONS(IPAddressChoice) +DECLARE_ASN1_FUNCTIONS(IPAddressFamily) + +/* + * API tag for elements of the ASIdentifer SEQUENCE. + */ +# define V3_ASID_ASNUM 0 +# define V3_ASID_RDI 1 + +/* + * AFI values, assigned by IANA. It'd be nice to make the AFI + * handling code totally generic, but there are too many little things + * that would need to be defined for other address families for it to + * be worth the trouble. + */ +# define IANA_AFI_IPV4 1 +# define IANA_AFI_IPV6 2 + +/* + * Utilities to construct and extract values from RFC3779 extensions, + * since some of the encodings (particularly for IP address prefixes + * and ranges) are a bit tedious to work with directly. + */ +int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); +int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, + ASN1_INTEGER *min, ASN1_INTEGER *max); +int X509v3_addr_add_inherit(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi); +int X509v3_addr_add_prefix(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *a, const int prefixlen); +int X509v3_addr_add_range(IPAddrBlocks *addr, + const unsigned afi, const unsigned *safi, + unsigned char *min, unsigned char *max); +unsigned X509v3_addr_get_afi(const IPAddressFamily *f); +int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, + unsigned char *min, unsigned char *max, + const int length); + +/* + * Canonical forms. + */ +int X509v3_asid_is_canonical(ASIdentifiers *asid); +int X509v3_addr_is_canonical(IPAddrBlocks *addr); +int X509v3_asid_canonize(ASIdentifiers *asid); +int X509v3_addr_canonize(IPAddrBlocks *addr); + +/* + * Tests for inheritance and containment. + */ +int X509v3_asid_inherits(ASIdentifiers *asid); +int X509v3_addr_inherits(IPAddrBlocks *addr); +int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); +int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); + +/* + * Check whether RFC 3779 extensions nest properly in chains. + */ +int X509v3_asid_validate_path(X509_STORE_CTX *); +int X509v3_addr_validate_path(X509_STORE_CTX *); +int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, + ASIdentifiers *ext, + int allow_inheritance); +int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, + IPAddrBlocks *ext, int allow_inheritance); + +#endif /* OPENSSL_NO_RFC3779 */ + +SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING, ASN1_STRING, ASN1_STRING) +#define sk_ASN1_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_sk_type(sk)) +#define sk_ASN1_STRING_value(sk, idx) ((ASN1_STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_sk_type(sk), (idx))) +#define sk_ASN1_STRING_new(cmp) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_compfunc_type(cmp))) +#define sk_ASN1_STRING_new_null() ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_null()) +#define sk_ASN1_STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_compfunc_type(cmp), (n))) +#define sk_ASN1_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_sk_type(sk), (n)) +#define sk_ASN1_STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_sk_type(sk)) +#define sk_ASN1_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_sk_type(sk)) +#define sk_ASN1_STRING_delete(sk, i) ((ASN1_STRING *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_sk_type(sk), (i))) +#define sk_ASN1_STRING_delete_ptr(sk, ptr) ((ASN1_STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr))) +#define sk_ASN1_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) +#define sk_ASN1_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) +#define sk_ASN1_STRING_pop(sk) ((ASN1_STRING *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_sk_type(sk))) +#define sk_ASN1_STRING_shift(sk) ((ASN1_STRING *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_sk_type(sk))) +#define sk_ASN1_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_sk_type(sk),ossl_check_ASN1_STRING_freefunc_type(freefunc)) +#define sk_ASN1_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), (idx)) +#define sk_ASN1_STRING_set(sk, idx, ptr) ((ASN1_STRING *)OPENSSL_sk_set(ossl_check_ASN1_STRING_sk_type(sk), (idx), ossl_check_ASN1_STRING_type(ptr))) +#define sk_ASN1_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) +#define sk_ASN1_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) +#define sk_ASN1_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), pnum) +#define sk_ASN1_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_sk_type(sk)) +#define sk_ASN1_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_sk_type(sk)) +#define sk_ASN1_STRING_dup(sk) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_sk_type(sk))) +#define sk_ASN1_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_freefunc_type(freefunc))) +#define sk_ASN1_STRING_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_compfunc_type(cmp))) + + +/* + * Admission Syntax + */ +typedef struct NamingAuthority_st NAMING_AUTHORITY; +typedef struct ProfessionInfo_st PROFESSION_INFO; +typedef struct Admissions_st ADMISSIONS; +typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; +DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) +DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) +DECLARE_ASN1_FUNCTIONS(ADMISSIONS) +DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) +SKM_DEFINE_STACK_OF_INTERNAL(PROFESSION_INFO, PROFESSION_INFO, PROFESSION_INFO) +#define sk_PROFESSION_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PROFESSION_INFO_sk_type(sk)) +#define sk_PROFESSION_INFO_value(sk, idx) ((PROFESSION_INFO *)OPENSSL_sk_value(ossl_check_const_PROFESSION_INFO_sk_type(sk), (idx))) +#define sk_PROFESSION_INFO_new(cmp) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new(ossl_check_PROFESSION_INFO_compfunc_type(cmp))) +#define sk_PROFESSION_INFO_new_null() ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_null()) +#define sk_PROFESSION_INFO_new_reserve(cmp, n) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PROFESSION_INFO_compfunc_type(cmp), (n))) +#define sk_PROFESSION_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PROFESSION_INFO_sk_type(sk), (n)) +#define sk_PROFESSION_INFO_free(sk) OPENSSL_sk_free(ossl_check_PROFESSION_INFO_sk_type(sk)) +#define sk_PROFESSION_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PROFESSION_INFO_sk_type(sk)) +#define sk_PROFESSION_INFO_delete(sk, i) ((PROFESSION_INFO *)OPENSSL_sk_delete(ossl_check_PROFESSION_INFO_sk_type(sk), (i))) +#define sk_PROFESSION_INFO_delete_ptr(sk, ptr) ((PROFESSION_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr))) +#define sk_PROFESSION_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) +#define sk_PROFESSION_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) +#define sk_PROFESSION_INFO_pop(sk) ((PROFESSION_INFO *)OPENSSL_sk_pop(ossl_check_PROFESSION_INFO_sk_type(sk))) +#define sk_PROFESSION_INFO_shift(sk) ((PROFESSION_INFO *)OPENSSL_sk_shift(ossl_check_PROFESSION_INFO_sk_type(sk))) +#define sk_PROFESSION_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PROFESSION_INFO_sk_type(sk),ossl_check_PROFESSION_INFO_freefunc_type(freefunc)) +#define sk_PROFESSION_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), (idx)) +#define sk_PROFESSION_INFO_set(sk, idx, ptr) ((PROFESSION_INFO *)OPENSSL_sk_set(ossl_check_PROFESSION_INFO_sk_type(sk), (idx), ossl_check_PROFESSION_INFO_type(ptr))) +#define sk_PROFESSION_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) +#define sk_PROFESSION_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) +#define sk_PROFESSION_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), pnum) +#define sk_PROFESSION_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PROFESSION_INFO_sk_type(sk)) +#define sk_PROFESSION_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PROFESSION_INFO_sk_type(sk)) +#define sk_PROFESSION_INFO_dup(sk) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_dup(ossl_check_const_PROFESSION_INFO_sk_type(sk))) +#define sk_PROFESSION_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_copyfunc_type(copyfunc), ossl_check_PROFESSION_INFO_freefunc_type(freefunc))) +#define sk_PROFESSION_INFO_set_cmp_func(sk, cmp) ((sk_PROFESSION_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_compfunc_type(cmp))) +SKM_DEFINE_STACK_OF_INTERNAL(ADMISSIONS, ADMISSIONS, ADMISSIONS) +#define sk_ADMISSIONS_num(sk) OPENSSL_sk_num(ossl_check_const_ADMISSIONS_sk_type(sk)) +#define sk_ADMISSIONS_value(sk, idx) ((ADMISSIONS *)OPENSSL_sk_value(ossl_check_const_ADMISSIONS_sk_type(sk), (idx))) +#define sk_ADMISSIONS_new(cmp) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new(ossl_check_ADMISSIONS_compfunc_type(cmp))) +#define sk_ADMISSIONS_new_null() ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_null()) +#define sk_ADMISSIONS_new_reserve(cmp, n) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_reserve(ossl_check_ADMISSIONS_compfunc_type(cmp), (n))) +#define sk_ADMISSIONS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ADMISSIONS_sk_type(sk), (n)) +#define sk_ADMISSIONS_free(sk) OPENSSL_sk_free(ossl_check_ADMISSIONS_sk_type(sk)) +#define sk_ADMISSIONS_zero(sk) OPENSSL_sk_zero(ossl_check_ADMISSIONS_sk_type(sk)) +#define sk_ADMISSIONS_delete(sk, i) ((ADMISSIONS *)OPENSSL_sk_delete(ossl_check_ADMISSIONS_sk_type(sk), (i))) +#define sk_ADMISSIONS_delete_ptr(sk, ptr) ((ADMISSIONS *)OPENSSL_sk_delete_ptr(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr))) +#define sk_ADMISSIONS_push(sk, ptr) OPENSSL_sk_push(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) +#define sk_ADMISSIONS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) +#define sk_ADMISSIONS_pop(sk) ((ADMISSIONS *)OPENSSL_sk_pop(ossl_check_ADMISSIONS_sk_type(sk))) +#define sk_ADMISSIONS_shift(sk) ((ADMISSIONS *)OPENSSL_sk_shift(ossl_check_ADMISSIONS_sk_type(sk))) +#define sk_ADMISSIONS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ADMISSIONS_sk_type(sk),ossl_check_ADMISSIONS_freefunc_type(freefunc)) +#define sk_ADMISSIONS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), (idx)) +#define sk_ADMISSIONS_set(sk, idx, ptr) ((ADMISSIONS *)OPENSSL_sk_set(ossl_check_ADMISSIONS_sk_type(sk), (idx), ossl_check_ADMISSIONS_type(ptr))) +#define sk_ADMISSIONS_find(sk, ptr) OPENSSL_sk_find(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) +#define sk_ADMISSIONS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) +#define sk_ADMISSIONS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), pnum) +#define sk_ADMISSIONS_sort(sk) OPENSSL_sk_sort(ossl_check_ADMISSIONS_sk_type(sk)) +#define sk_ADMISSIONS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ADMISSIONS_sk_type(sk)) +#define sk_ADMISSIONS_dup(sk) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_dup(ossl_check_const_ADMISSIONS_sk_type(sk))) +#define sk_ADMISSIONS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_deep_copy(ossl_check_const_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_copyfunc_type(copyfunc), ossl_check_ADMISSIONS_freefunc_type(freefunc))) +#define sk_ADMISSIONS_set_cmp_func(sk, cmp) ((sk_ADMISSIONS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_compfunc_type(cmp))) + +typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; + +const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( + const NAMING_AUTHORITY *n); +const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( + const NAMING_AUTHORITY *n); +const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( + const NAMING_AUTHORITY *n); +void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, + ASN1_OBJECT* namingAuthorityId); +void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, + ASN1_IA5STRING* namingAuthorityUrl); +void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, + ASN1_STRING* namingAuthorityText); + +const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_admissionAuthority( + ADMISSION_SYNTAX *as, GENERAL_NAME *aa); +const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( + const ADMISSION_SYNTAX *as); +void ADMISSION_SYNTAX_set0_contentsOfAdmissions( + ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); +const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); +const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); +void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); +const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); +void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); +const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_addProfessionInfo( + PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); +const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_namingAuthority( + PROFESSION_INFO *pi, NAMING_AUTHORITY *na); +const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionItems( + PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); +const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_professionOIDs( + PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); +const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( + const PROFESSION_INFO *pi); +void PROFESSION_INFO_set0_registrationNumber( + PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/clientapp/android/app/src/main/cpp/tgbotclient.cpp b/clientapp/android/app/src/main/cpp/tgbotclient.cpp new file mode 100644 index 00000000..39a8f49b --- /dev/null +++ b/clientapp/android/app/src/main/cpp/tgbotclient.cpp @@ -0,0 +1,326 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "JNIOnLoad.h" +#include "JavaCppConverter.hpp" +// Include the tgbot's exported header +#include "../../../../../../src/socket/include/TgBotSocket_Export.hpp" +#include "../../../../../../src/socket/interface/impl/bot/TgBotSocketFileHelper.hpp" + +using namespace TgBotSocket; +using namespace TgBotSocket::data; +using namespace TgBotSocket::callback; + +#define __LOG(level, str) \ + __android_log_print(ANDROID_LOG_##level, "TGBotCli:CPP", "%s", str) + +struct SocketConfig { + std::string address; + enum { USE_IPV4, USE_IPV6 } mode; +}; + +class TgBotSocketNative { + public: + void sendContext(Packet &packet, JNIEnv *env, jobject callbackObj) const { + switch (config.mode) { + case SocketConfig::USE_IPV4: + sendContextCommon(packet, env, + callbackObj); + break; + case SocketConfig::USE_IPV6: + sendContextCommon(packet, env, + callbackObj); + break; + default: + ABSL_LOG(ERROR) + << "Unknown mode: " << static_cast(config.mode); + break; + } + } + + void setSocketConfig(SocketConfig config_in) { + config = std::move(config_in); + } + + static std::shared_ptr getInstance() { + static auto instance = + std::make_shared(TgBotSocketNative()); + return instance; + } + + static void callSuccess(JNIEnv *env, jobject callbackObj, + jobject resultObj) { + jclass callbackClass = env->FindClass(kCallbackCls.data()); + jmethodID success = env->GetMethodID(callbackClass, "onSuccess", + "(Ljava/lang/Object;)V"); + env->CallVoidMethod(callbackObj, success, resultObj); + ABSL_LOG(INFO) << "Called onSuccess callback"; + } + + static void callFailed(JNIEnv *env, jobject callbackObj, + std::string message) { + jclass callbackClass = env->FindClass(kCallbackCls.data()); + jmethodID success = + env->GetMethodID(callbackClass, "onError", "(Ljava/lang/String;)V"); + env->CallVoidMethod(callbackObj, success, + Convert(env, message)); + ABSL_LOG(INFO) << "Called onFailed callback"; + } + + private: + constexpr static int kSocketPort = 50000; + constexpr static int kRecvFlags = MSG_WAITALL | MSG_NOSIGNAL; + static constexpr std::string_view kCallbackCls = + "com/royna/tgbotclient/SocketCommandNative$ICommandCallback"; + SocketConfig config; + + TgBotSocketNative() = default; + + static void closeFd(int *fd) { close(*fd); } + + static void _callFailed(JNIEnv *env, jobject callbackObj, + std::string message) { + ABSL_PLOG(ERROR) << message; + callFailed(env, callbackObj, message); + } + + template + void sendContextCommon(Packet &context, JNIEnv *env, + jobject callbackObj) const { + SockAddr addr{}; + socklen_t len = sizeof(SockAddr); + int sockfd{}; + int ret{}; + + ABSL_LOG(INFO) << "Prepare to send CommandContext"; + sockfd = socket(af, SOCK_STREAM, 0); + if (sockfd < 0) { + _callFailed(env, callbackObj, "Failed to create socket"); + return; + } + + auto sockFdCloser = std::unique_ptr( + &sockfd, &TgBotSocketNative::closeFd); + ABSL_LOG(INFO) << "Using IP: " << std::quoted(config.address, '\'') + << ", Port: " << kSocketPort; + setupSockAddress(&addr); + + // Calculate CRC32 + uLong crc = crc32(0L, Z_NULL, 0); // Initial value + crc = crc32(crc, reinterpret_cast(context.data.get()), + context.header.data_size); + context.header.checksum = crc; + + if (connect(sockfd, reinterpret_cast(&addr), len) != 0) { + _callFailed(env, callbackObj, "Failed to connect to server"); + return; + } + ABSL_LOG(INFO) << "Connected to server"; + ret = send(sockfd, &context.header, sizeof(PacketHeader), MSG_NOSIGNAL); + if (ret < 0) { + _callFailed(env, callbackObj, "Failed to send packet header"); + return; + } else { + ABSL_LOG(INFO) << "Sent header packet with cmd " + << static_cast(context.header.cmd) << ", " + << ret << " bytes"; + } + ret = send(sockfd, context.data.get(), context.header.data_size, + MSG_NOSIGNAL); + if (ret < 0) { + _callFailed(env, callbackObj, "Failed to send packet data"); + return; + } else { + ABSL_LOG(INFO) << "Sent data packet, " << ret << " bytes"; + } + ABSL_LOG(INFO) << "Done sending data"; + ABSL_LOG(INFO) << "Now reading callback"; + + PacketHeader header; + ret = recv(sockfd, &header, sizeof(header), kRecvFlags); + if (ret < 0) { + _callFailed(env, callbackObj, "Failed to read callback header"); + return; + } + if (header.magic != PacketHeader ::MAGIC_VALUE) { + _callFailed(env, callbackObj, "Bad magic value of callback header"); + return; + } + SharedMalloc data(malloc(header.data_size)); + if (data.get() == nullptr) { + errno = ENOMEM; + _callFailed(env, callbackObj, + "Failed to alloc data for callback header"); + return; + } + ret = recv(sockfd, data.get(), header.data_size, kRecvFlags); + if (ret < 0) { + _callFailed(env, callbackObj, "Failed to read callback data"); + return; + } + switch (header.cmd) { + case Command::CMD_GET_UPTIME_CALLBACK: + handleSpecificData( + env, callbackObj, data.get(), header.data_size); + break; + case Command::CMD_DOWNLOAD_FILE_CALLBACK: + handleSpecificData( + env, callbackObj, data.get(), header.data_size); + break; + default: { + GenericAck AckData{}; + bool success{}; + + memcpy(&AckData, data.get(), sizeof(AckData)); + success = AckData.result == AckType::SUCCESS; + ABSL_LOG(INFO) << "Command ACK: " << std::boolalpha << success; + if (!success) { + ABSL_LOG(ERROR) << "Reason: " << AckData.error_msg.data(); + callFailed(env, callbackObj, AckData.error_msg.data()); + } else { + callSuccess(env, callbackObj, nullptr); + } + break; + } + } + } + + template + void setupSockAddress(SockAddr *addr) const = delete; + template <> + [[maybe_unused]] void setupSockAddress(sockaddr_in *addr) const { + addr->sin_family = AF_INET; + inet_pton(AF_INET, config.address.c_str(), &addr->sin_addr); + addr->sin_port = htons(kSocketPort); + } + template <> + [[maybe_unused]] void setupSockAddress(sockaddr_in6 *addr) const { + addr->sin6_family = AF_INET6; + inet_pton(AF_INET6, config.address.c_str(), &addr->sin6_addr); + addr->sin6_port = htons(kSocketPort); + } + + template + void handleSpecificData(JNIEnv *env, jobject callbackObj, const void *data, + PacketHeader::length_type len) const = delete; + template <> + void handleSpecificData( + JNIEnv *env, jobject callbackObj, const void *data, + PacketHeader::length_type len) const { + bool rc = + FileDataHelper::DataToFile( + data, len); + if (rc) { + callSuccess(env, callbackObj, nullptr); + } else { + callFailed(env, callbackObj, "Failed to handle download file"); + } + } + template <> + void handleSpecificData( + JNIEnv *env, jobject callbackObj, const void *data, + PacketHeader::length_type len) const { + const auto *uptime = static_cast(data); + callSuccess(env, callbackObj, Convert(env, uptime)); + } +}; + +namespace { + +void initLogging(JNIEnv *env, jobject thiz) { + absl::InitializeLog(); + ABSL_LOG(INFO) << __func__; +} + +jboolean changeDestinationInfo(JNIEnv *env, jobject thiz, jstring ipaddr, + jint type) { + auto sockIntf = TgBotSocketNative::getInstance(); + std::string newAddress = Convert(env, ipaddr); + SocketConfig config{}; + + switch (type) { + case AF_INET: + config.mode = SocketConfig::USE_IPV4; + break; + case AF_INET6: + config.mode = SocketConfig::USE_IPV6; + break; + default: + ABSL_LOG(ERROR) << "Unknown af type:" << type; + return false; + } + config.address = newAddress; + ABSL_LOG(INFO) << "Switched to IP " << std::quoted(newAddress, '\'') + << ", af: " << type; + sockIntf->setSocketConfig(config); + return true; +} + +void sendWriteMessageToChatId(JNIEnv *env, jobject thiz, jlong chat_id, + jstring text, jobject callback) { + WriteMsgToChatId data; + data.chat = chat_id; + copyTo(data.message, Convert(env, text).c_str()); + auto pkt = Packet(Command::CMD_WRITE_MSG_TO_CHAT_ID, data); + TgBotSocketNative::getInstance()->sendContext(pkt, env, callback); +} + +void getUptime(JNIEnv *env, jobject thiz, jobject callback) { + auto pkt = Packet(Command::CMD_GET_UPTIME, true); + TgBotSocketNative::getInstance()->sendContext(pkt, env, callback); +} + +void uploadFile(JNIEnv *env, jobject thiz, jstring path, jstring dest_file_path, + jobject callback) { + FileDataHelper::DataFromFileParam params; + params.filepath = Convert(env, path); + params.destfilepath = Convert(env, dest_file_path); + auto rc = + FileDataHelper::DataFromFile(params); + if (rc) { + TgBotSocketNative::getInstance()->sendContext(rc.value(), env, + callback); + } else { + ABSL_LOG(ERROR) << "Failed to prepare file"; + TgBotSocketNative::callFailed(env, callback, "Failed to prepare file"); + } +} + +void downloadFile(JNIEnv *env, jobject thiz, jstring remote_file_path, + jstring local_file_path, jobject callback) { + DownloadFile req{}; + copyTo(req.filepath, Convert(env, remote_file_path).c_str()); + copyTo(req.destfilename, Convert(env, local_file_path).c_str()); + auto pkt = Packet(Command::CMD_DOWNLOAD_FILE, req); + TgBotSocketNative::getInstance()->sendContext(pkt, env, callback); +} +} // namespace + +JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *__unused reserved) { + static const JNINativeMethod methods[] = { + NATIVE_METHOD(initLogging, "()V"), + NATIVE_METHOD(changeDestinationInfo, "(Ljava/lang/String;I)Z"), + NATIVE_METHOD(sendWriteMessageToChatId, + "(JLjava/lang/String;Lcom/royna/tgbotclient/" + "SocketCommandNative$ICommandCallback;)V"), + NATIVE_METHOD( + getUptime, + "(Lcom/royna/tgbotclient/SocketCommandNative$ICommandCallback;)V"), + NATIVE_METHOD(uploadFile, + "(Ljava/lang/String;Ljava/lang/String;Lcom/royna/" + "tgbotclient/SocketCommandNative$ICommandCallback;)V"), + NATIVE_METHOD(downloadFile, + "(Ljava/lang/String;Ljava/lang/String;Lcom/royna/" + "tgbotclient/SocketCommandNative$ICommandCallback;)V")}; + return JNI_onLoadDef(vm, "com/royna/tgbotclient/SocketCommandNative", + methods, NATIVE_METHOD_SZ(methods)); +} diff --git a/clientapp/android/app/src/main/ic_launcher-playstore.png b/clientapp/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..7c42a00dcc0a5be27bfeb03922fae29a192fb17e GIT binary patch literal 342716 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

=g*hvxBPag{r;t`&gY|FFVS}9MuIzzq-t=( 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

N=k4V(!Up=sa@`eOA7?E?r0; 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

=sZ6qLT9(*S+tTnhjwFIGWC(3wE|ChzLIq&S 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 z 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≤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 literal 0 HcmV?d00001 diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ClientApplication.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ClientApplication.kt new file mode 100644 index 00000000..7cff92ac --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ClientApplication.kt @@ -0,0 +1,11 @@ +package com.royna.tgbotclient + +import android.app.Application +import com.royna.tgbotclient.ui.settings.TgClientSettings + +class ClientApplication : Application() { + override fun onCreate() { + super.onCreate() + TgClientSettings.loadConfig(this) + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/MainActivity.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/MainActivity.kt new file mode 100644 index 00000000..b189b9ed --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/MainActivity.kt @@ -0,0 +1,99 @@ +package com.royna.tgbotclient + +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import android.view.Menu +import android.widget.Button +import android.widget.EditText +import com.google.android.material.snackbar.Snackbar +import com.google.android.material.navigation.NavigationView +import androidx.navigation.findNavController +import androidx.navigation.ui.AppBarConfiguration +import androidx.navigation.ui.navigateUp +import androidx.navigation.ui.setupActionBarWithNavController +import androidx.navigation.ui.setupWithNavController +import androidx.drawerlayout.widget.DrawerLayout +import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContextCompat +import com.royna.tgbotclient.databinding.ActivityMainBinding +import com.royna.tgbotclient.BuildConfig +import android.Manifest +import android.os.Build +import android.view.MenuItem +import android.widget.Toast +import androidx.annotation.RequiresApi +import com.royna.tgbotclient.ui.settings.SettingsActivity + +class MainActivity : AppCompatActivity() { + + private lateinit var appBarConfiguration: AppBarConfiguration + private lateinit var binding: ActivityMainBinding + + @RequiresApi(Build.VERSION_CODES.R) + fun presentStoragePermission(context: Context) { + val uri = Uri.parse("package:${BuildConfig.APPLICATION_ID}") + val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, uri) + when (ContextCompat.checkSelfPermission(context, Manifest.permission.MANAGE_EXTERNAL_STORAGE)) { + PackageManager.PERMISSION_GRANTED -> { + + } + PackageManager.PERMISSION_DENIED -> { + if (shouldShowRequestPermissionRationale(Manifest.permission.MANAGE_EXTERNAL_STORAGE)) { + Toast.makeText(context, "Permission Denied", Toast.LENGTH_SHORT).show() + startActivity(intent) + } + } + } + } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + setSupportActionBar(binding.appBarMain.toolbar) + presentStoragePermission(this) + + binding.appBarMain.fab.setOnClickListener { view -> + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null) + .setAnchorView(R.id.fab).show() + } + val drawerLayout: DrawerLayout = binding.drawerLayout + val navView: NavigationView = binding.navView + val navController = findNavController(R.id.nav_host_fragment_content_main) + // Passing each menu ID as a set of Ids because each + // menu should be considered as top level destinations. + appBarConfiguration = AppBarConfiguration( + setOf( + R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow + ), drawerLayout + ) + setupActionBarWithNavController(navController, appBarConfiguration) + navView.setupWithNavController(navController) + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + // Inflate the menu; this adds items to the action bar if it is present. + menuInflater.inflate(R.menu.main, menu) + return true + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + R.id.action_settings -> { + startActivity(Intent(this, SettingsActivity::class.java)) + } + } + return super.onOptionsItemSelected(item) + } + + override fun onSupportNavigateUp(): Boolean { + val navController = findNavController(R.id.nav_host_fragment_content_main) + return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/SocketCommandNative.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/SocketCommandNative.kt new file mode 100644 index 00000000..379f0c75 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/SocketCommandNative.kt @@ -0,0 +1,31 @@ +@file:Suppress("KotlinJniMissingFunction") + +package com.royna.tgbotclient + +object SocketCommandNative { + // No effect but sync with + enum class DestinationType (val af: Int) { + IPv4(2), + IPv6(10) + } + fun changeDestinationInfo(ipaddr: String, type: DestinationType) { + changeDestinationInfo(ipaddr, type.af) + } + + interface ICommandCallback { + fun onSuccess(result: Any?) + fun onError(error: String) + } + + external fun sendWriteMessageToChatId(chatId: Long, text: String, callback: ICommandCallback) + external fun getUptime(callback: ICommandCallback) + external fun uploadFile(path: String, destFilePath: String, callback: ICommandCallback) + external fun downloadFile(remoteFilePath: String, localFilePath: String, callback: ICommandCallback) + private external fun changeDestinationInfo(ipaddr: String, type: Int) : Boolean + private external fun initLogging() + + init { + System.loadLibrary("tgbotclient") + initLogging() + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeFragment.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeFragment.kt new file mode 100644 index 00000000..b64736fa --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeFragment.kt @@ -0,0 +1,43 @@ +package com.royna.tgbotclient.ui.home + +import android.os.Bundle +import android.os.Handler +import android.os.Looper +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.core.widget.addTextChangedListener +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import com.royna.tgbotclient.SocketCommandNative +import com.royna.tgbotclient.SocketCommandNative.changeDestinationInfo +import com.royna.tgbotclient.databinding.FragmentHomeBinding + +class HomeFragment : Fragment() { + + private var _binding: FragmentHomeBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val homeViewModel = + ViewModelProvider(this).get(HomeViewModel::class.java) + + _binding = FragmentHomeBinding.inflate(inflater, container, false) + val root: View = binding.root + + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeViewModel.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeViewModel.kt new file mode 100644 index 00000000..29d9e0cb --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/home/HomeViewModel.kt @@ -0,0 +1,9 @@ +package com.royna.tgbotclient.ui.home + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.royna.tgbotclient.SocketCommandNative + +class HomeViewModel : ViewModel() { +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/SettingsActivity.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/SettingsActivity.kt new file mode 100644 index 00000000..e3fd4319 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/SettingsActivity.kt @@ -0,0 +1,20 @@ +package com.royna.tgbotclient.ui.settings + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.royna.tgbotclient.R + +class SettingsActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.settings_activity) + if (savedInstanceState == null) { + supportFragmentManager + .beginTransaction() + .replace(R.id.settings, TgClientSettings()) + .commit() + } + supportActionBar?.setDisplayHomeAsUpEnabled(true) + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/TgClientSettings.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/TgClientSettings.kt new file mode 100644 index 00000000..655588b2 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/settings/TgClientSettings.kt @@ -0,0 +1,128 @@ +package com.royna.tgbotclient.ui.settings + +import android.content.Context +import android.os.Bundle +import android.util.Log +import android.widget.Toast +import androidx.preference.CheckBoxPreference +import androidx.preference.EditTextPreference +import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceManager +import com.royna.tgbotclient.R +import com.royna.tgbotclient.SocketCommandNative + +class TgClientSettings : PreferenceFragmentCompat() { + private lateinit var mIPAddressEditText: EditTextPreference + private lateinit var mIPv4Switch: CheckBoxPreference + private lateinit var mIPv6Switch: CheckBoxPreference + private var mConfig = SocketCommandNative.DestinationType.IPv4 + private var mIPAddressStr = "127.0.0.1" + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + addPreferencesFromResource(R.xml.preference_main) + + mIPv4Switch = findPreference("ipv4")!! + mIPv6Switch = findPreference("ipv6")!! + mIPAddressEditText = findPreference("ip_address")!! + PreferenceManager.getDefaultSharedPreferences(requireContext()).apply { + + val mIPAddressStr_in = getString(kIPAddressPref, mIPAddressStr)!! + val mConfig_in = toInetConfig(getInt(kInetConfigPref, kInet4)) + update(mConfig_in, mIPAddressStr_in) + } + + mIPv4Switch.setOnPreferenceClickListener { + update(SocketCommandNative.DestinationType.IPv4) + true + } + mIPv6Switch.setOnPreferenceClickListener { + update(SocketCommandNative.DestinationType.IPv6) + true + } + mIPAddressEditText.setOnPreferenceChangeListener { _, newValue -> + val mNewIPAddressStr = newValue as String + if (!RegexIPv4.matches(mNewIPAddressStr) and !RegexIPv6.matches(mNewIPAddressStr)) { + Toast.makeText(context, "Invalid IP address, not saved", Toast.LENGTH_SHORT).show() + return@setOnPreferenceChangeListener false + } + update(mNewIPAddressStr) + true + } + } + + private fun update(mIPAddressStr_in: String) { + update(mConfig, mIPAddressStr_in) + } + + private fun update(mConfig_in: SocketCommandNative.DestinationType, + mIPAddressStr_in: String = mIPAddressStr) { + var mConfigChanged = false + var mIPAddressStrChanged = false + if (mConfig_in != mConfig) { + mConfigChanged = true + mConfig = mConfig_in + } + if (mIPAddressStr_in != mIPAddressStr) { + mIPAddressStrChanged = true + mIPAddressStr = mIPAddressStr_in + } + if (mConfigChanged) { + mIPv4Switch.isChecked = mConfig == SocketCommandNative.DestinationType.IPv4 + mIPv6Switch.isChecked = mConfig == SocketCommandNative.DestinationType.IPv6 + } + if (mIPAddressStrChanged) { + mIPAddressEditText.text = mIPAddressStr + mIPAddressEditText.summary = mIPAddressStr + } + PreferenceManager.getDefaultSharedPreferences(requireContext()).apply { + if (mIPAddressStrChanged) { + edit().putString(kIPAddressPref, mIPAddressStr).apply() + } + if (mConfigChanged) { + when (mConfig) { + SocketCommandNative.DestinationType.IPv4 -> { + edit().putInt(kInetConfigPref, kInet4).apply() + } + SocketCommandNative.DestinationType.IPv6 -> { + edit().putInt(kInetConfigPref, kInet6).apply() + } + } + } + } + if (mConfigChanged or mIPAddressStrChanged) { + SocketCommandNative.changeDestinationInfo(mIPAddressStr, mConfig) + } + } + companion object { + private val RegexIPv4 = Regex("\\b((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\b") + private val RegexIPv6 = Regex("\\b([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\\b") + private const val kIPAddressPref = "ip_address" + private const val kInetConfigPref = "inet_version" + private const val kInet4 = 4 + private const val kInet6 = 6 + private const val kTag = "TgClientSettings" + + fun toInetConfig(num : Int) : SocketCommandNative.DestinationType { + return when (num) { + kInet4 -> { + SocketCommandNative.DestinationType.IPv4 + } + kInet6 -> { + SocketCommandNative.DestinationType.IPv6 + } + else -> { + Log.e(kTag, "Invalid inet version, default to IPv4") + SocketCommandNative.DestinationType.IPv4 + } + } + } + fun loadConfig(c: Context) { + PreferenceManager.getDefaultSharedPreferences(c).apply { + val mIPAddressStr_in = getString(kIPAddressPref, "127.0.0.1")!! + val mConfig_in = + toInetConfig(getInt(kInetConfigPref, kInet4)) + SocketCommandNative.changeDestinationInfo(mIPAddressStr_in, mConfig_in) + } + } + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatFragment.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatFragment.kt new file mode 100644 index 00000000..2e4f8400 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatFragment.kt @@ -0,0 +1,77 @@ +package com.royna.tgbotclient.ui.text_to_chat + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.EditText +import android.widget.Toast +import androidx.core.widget.addTextChangedListener +import androidx.core.widget.doOnTextChanged +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import com.royna.tgbotclient.databinding.FragmentTextToChatBinding + +class TextToChatFragment : Fragment() { + private var _binding: FragmentTextToChatBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val TextToChatViewModel = + ViewModelProvider(this)[TextToChatViewModel::class.java] + + _binding = FragmentTextToChatBinding.inflate(inflater, container, false) + val root: View = binding.root + + val chatIdText: EditText = binding.chatIdText + val messageText: EditText = binding.messageText + TextToChatViewModel.chatId.observe(viewLifecycleOwner) { + val str = when (it) { + 5185434015 -> "My brother" + else -> "Destination Chat Id: $it" + } + binding.showChatIdText.text = str + } + TextToChatViewModel.messageText.observe(viewLifecycleOwner) { + binding.showMessageText.text = "Message: $it" + } + chatIdText.addTextChangedListener { editor -> + val id = runCatching { + editor.toString().toLong() + }.getOrDefault(0) + TextToChatViewModel.setChatId(id) + } + messageText.doOnTextChanged { text, start, before, count -> + TextToChatViewModel.setMessageText(text.toString()) + } + binding.sendButton.setOnClickListener { + val text = TextToChatViewModel.messageText.value + if (text.isNullOrBlank()) { + Toast.makeText(context, "Message is empty", Toast.LENGTH_SHORT).show() + return@setOnClickListener + } + val chatId = TextToChatViewModel.chatId.value + if (chatId == null) { + Toast.makeText(context, "Chat Id is empty", Toast.LENGTH_SHORT).show() + return@setOnClickListener + } + TextToChatViewModel.send(chatId, text) + } + TextToChatViewModel.sendResult.observe(viewLifecycleOwner) { + Toast.makeText(context, it, Toast.LENGTH_SHORT).show() + } + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatViewModel.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatViewModel.kt new file mode 100644 index 00000000..8407adf7 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/text_to_chat/TextToChatViewModel.kt @@ -0,0 +1,72 @@ +package com.royna.tgbotclient.ui.text_to_chat + +import android.widget.Toast +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.liveData +import androidx.lifecycle.viewModelScope +import com.royna.tgbotclient.SocketCommandNative +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch +import kotlinx.coroutines.suspendCancellableCoroutine +import kotlinx.coroutines.withContext + +class TextToChatViewModel : ViewModel() { + // Private MutableLiveData + private val _messageText = MutableLiveData() + private val _chatId = MutableLiveData() + private val _sendResult = MutableLiveData() + + // Public immutable LiveData + val messageText: LiveData get() = _messageText + val chatId: LiveData get() = _chatId + val sendResult: LiveData get() = _sendResult + + // Methods to update LiveData + fun setChatId(chatId: Long) { + _chatId.value = chatId + } + + fun setMessageText(messageText: String) { + _messageText.value = messageText + } + + private val gMainScope = CoroutineScope(Dispatchers.Main) + private suspend fun sendAndWait(chatid: Long, message: String) : Unit = + suspendCancellableCoroutine { continuation -> + SocketCommandNative.sendWriteMessageToChatId(chatid, message, + object : SocketCommandNative.ICommandCallback { + override fun onSuccess(result: Any?) { + continuation.resumeWith(Result.success(Unit)) + } + override fun onError(error: String) { + continuation.resumeWith(Result.failure(RuntimeException(error))) + } + }) + } + + fun send(chat: Long, message: String) { + gMainScope.launch { + var success = true + try { + withContext(Dispatchers.IO) { + sendAndWait(chat, message) + } + } catch (e: RuntimeException) { + success = false + _sendResult.value = "Failed: ${e.message}" + } + if (success) { + _sendResult.value = "Message sent" + } + } + } + + override fun onCleared() { + super.onCleared() + gMainScope.cancel() + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeFragment.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeFragment.kt new file mode 100644 index 00000000..c2035f2d --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeFragment.kt @@ -0,0 +1,47 @@ +package com.royna.tgbotclient.ui.uptime + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import com.royna.tgbotclient.SocketCommandNative +import com.royna.tgbotclient.SocketCommandNative.getUptime +import com.royna.tgbotclient.databinding.FragmentUptimeBinding + +class UptimeFragment : Fragment() { + + private var _binding: FragmentUptimeBinding? = null + + // This property is only valid between onCreateView and + // onDestroyView. + private val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val uptimeViewModel = + ViewModelProvider(this).get(UptimeViewModel::class.java) + + _binding = FragmentUptimeBinding.inflate(inflater, container, false) + val root: View = binding.root + + val textView: TextView = binding.uptimeText + uptimeViewModel.uptimeText.observe(viewLifecycleOwner) { + textView.text = it + } + binding.uptimeRefreshBtn.setOnClickListener { + uptimeViewModel.send() + } + return root + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeViewModel.kt b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeViewModel.kt new file mode 100644 index 00000000..f1ae1256 --- /dev/null +++ b/clientapp/android/app/src/main/java/com/royna/tgbotclient/ui/uptime/UptimeViewModel.kt @@ -0,0 +1,28 @@ +package com.royna.tgbotclient.ui.uptime + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.royna.tgbotclient.SocketCommandNative +import com.royna.tgbotclient.SocketCommandNative.getUptime + +class UptimeViewModel : ViewModel() { + private var _uptimeText = MutableLiveData().apply { + value = "" + } + val uptimeText: LiveData get() = _uptimeText + + fun send() { + getUptime(object : SocketCommandNative.ICommandCallback { + override fun onSuccess(result: Any?) { + if (result is String) { + _uptimeText.value = result + } + } + + override fun onError(error: String) { + _uptimeText.value = error + } + }) + } +} \ No newline at end of file diff --git a/clientapp/android/app/src/main/jniLibs/arm64-v8a/libcrypto.so b/clientapp/android/app/src/main/jniLibs/arm64-v8a/libcrypto.so new file mode 100644 index 0000000000000000000000000000000000000000..aca25f64db0b3735dc12b2e7ba1112f09289a6c8 GIT binary patch literal 5725664 zcmbTf4_MU27e4w?*F;65q$DF<6BP?fS|NLec4*tP9ZJH7hnBC|ge%@@{WLzUqi}=sMzv}!7T58OXy_vuky>}AClrs zzx==1nfM0mRc+6>R;viN#b*+o&R5p`FZodM6;qT{F?>XQ2#1@ zWdOU*Fv_-gHmPxMgU|xW5nlh!6Z*A9&}8micW0Z^=JHe8{&M z)iRIO2R_0FzR3svh7bIt5By&r_%)+jwzG>5yqgcazYl!44}7!_e7p~Qk`H`=4}5fF z%k>)P1Ao&8zS{@B-v@ro2mYxKywV50RSat_^`pH$@Pj_^BR=qteBk9i@RL69(?0NX zKJY6(@U~-Hu5V`__|H$YEdSukE#u|sE#r+o@XJ2%tgS8cY6E|LFt2>;oTibIX2n_`pZp+OqufKJaxu@LfLeVjuWP zANYA6_$42B=Uy$_f3pw#4j;I~2R_9IKF0^X#0S3C2foV(Ug85kMmY?7Q|2e8<`9FN%mwez?eBfQDw#*;w1MlSn51!jH&mBJS@jmbeec(^}z!&?# z(|zDueBgyX@K1f`9ziS1f5IWAo%u6hPf=^&J4%7q zEpbRd`KM$&cyd4JBk>r@ciI3vYBA&kmxJuR9s>yTw9JlxoU{ ztblyZt?+}=oAf&H=x>0F<&`X!W59Fm4*9#1e=-nw$_{K9L_*xKc7&ZtzoOk$yFB6q zo@qh7l>HZ`0=E~S-80Ga!gS!ZbKpsT`r(~H&|7asO-m`??;hGS61ejJUH=15$n9t^ zw6bB`-W~FF=kAgW7V-p+0$z~=o>byvp9CJ{H%ua;`m*el`x2cDN9hpxdr}+VJLEdO zli^N=M&-ASlVDF!JJdG_;zr?S;7wa@lZf)$6K?@e8xSUO;YL|D6$8(>AMs`-9`-Nr z;!xm)#7FM}9<~WQjl>5x15X+1-H*<8L4B=R;Zjn?;RxYaGoH(D@UBwyP8j`6~ec-6TO4&OM5)@f6{*V!Jl}DTwioD@;1O8W#_fb^O;(n zPpN_4$|&#nX~%d@EJQq8$iM$E>?sa)$Qq#+7{)VI1;5+Bu{p3ZEv- zF#X{78~mXBR<{y(GRF&r|N9Ma{{d((rT5br;5Syn56!G^MiTJ!JH6XwM;GukXCeP9 z{a`(qUQqr%_+3H;TMBMy@phbM_wd; ztNO$KH1ZGJ44&*vkud)c{<>4Z3$KNpDxRl&4cz`MaAi;4E#OZ*?L8h9jRRh>)FJuH zv#h<<%crfQ7R{2-MxJyjv&2}t(0eV$CJ|V)x#0#?qOUYQuXC4He?evb5YUbPg zPoX!D@~0MoKXNAgU(bFqU>)$7W#0ZjxE=h)SBMj3&wGrA{Pu`Lg%>;sp5i#b-e0)g#8ZBS|5f|`ExMbD$E*de@}b`wz-wwyUojlZvhjQ1bw8n>ifN=Q zbDDwYbKM6v!^q}*DKrE1t%bPp*c8}VI>~!nE)m_qw8xqW2IYs%tAI!E784Rtg2=P_ z7UVvk5>XOE2%&-}n2Y<4J7+{|we zTnjuiBwXUE9e?6}NYrNFYQ8=63CLHq@{S)rj{ENGf!k=$!yI>-nJ1M$i?<+a!*7)PbXe59{hQS;pbT5eYxH*)b@GiR6;(#m-oCSDH#0mhvEM+@~q|lOrbVj zys!iEwNJvHXv$Yj27kaLu^<&Cka*b+;I;$s1ES6_Zmb4g%5hWqZKnnNeup5h`qwJ< zi?|~6ixl$PCxE9Y6@Dlt-ft`LjP2;BDxPaOzSnhy{e{ZT4UiA-1okAhxLvE7URMF)5SI(g@lyFLb9G!t=RB~K&ct?o|v z*+Rv??t*-JG4$3@ey?zpX=k`LKUrTwKMZn6$p*^r6luhicQ!K*6W=`&ct~g1DZ)mU zKb+tRt3titCBx{)b_x63JAd{$3m(rm-tk|b0-i*UJHg~%BbwW^CxGi0)h>P_EKNK? z+us|&`BGf9sE8=a9zXV%+$YfPir?=&=ruk7uHxtWV&E}-9Fiwd{xpmYZD@Zh*spLu z=1Dj6q_Xo-u9q8z3d2N+B2U4~;IIC}J5Sc;1266Fkdl>@kA4t(Z9Ev7L;SHDARka1 zE)hH9|Mr(4Z{Hgs@qEg68_3iqDpx8?lS^MJRVLl{5VTKwep1W)q6SYNC0 z=>5LHi>?4yc0RrmcursMc}TKQXU3K5Hdt6fzr}NW3DEXW{!V~=`ZV}Q&4+KK{aKp* zw}(P+&{c1HmU2EBAC3N!!|`_^_nqRtLOV9op3d8#x9T(GNtJ&d5&>`8U!^^d=yfOX z^5;-5C4b)=zze?g=J~!K?2OmeiBF66H2Diw-zqIp{_Nfays#_A3&sB;_W4b~Lmopuj3v*zalp$e;LkYX z5556BAP((VOuRs(S+ly_FG^@?D>zJ`7%`Wp7cQvNg5?j>mVnvVE`(+PVr_}o+3a}CF} z#2bYoQIy^XMZm~-cA;HVy{2H*Pg#oFK|ZxF^eVq~>PdUFb>aimo2ThLCj!RgPuU4OmESsag5Cmc-|x0%z}=f* zPYL7vi0BR`PcYZr{0w?m2BuK|zqe`uEy;s*CKn>p^QdU-hRy&-<*z-<=75>)R0$Q9So>o>OoI^>R}F zN*C}XaX&}Jc|YM6(?5|vVO+~+oCItF?s^8}i=(cr{z1J|{7>lv{-z&czrs6ne5t&~+s~0|{ksJA z+gab&W`U>X9Q+wYzva#Yo@9aj%FkaW0=IMp9!UAt9^fI7n4f^nFur;R_SYQ>laeA$ z$ug4jaLY-IBZ@yL2|Ue>;Bkv~HOr@LFU#-Ze?$SBVSLN|t8ngLsW?oS1iev~zEVC! z{xpnNJ_hbzi+rNwr*l6uOWV&pQv><*Sj?YQ-aD<Ex0?L1}4tR7U#-l>wg9gJ7K~o$OQ9QS=hkWqAkXQD1ehYZ~L6PW05!<%1tf~QC z8I69ecwYLKct7CEKfiDsG(JO|B!R|QA;Qw^FY&D)nL+-$I1YN=M*mejF$W=^9*MYB z&&Q7(2OfS1cq(~@a~+y)!2UGqJ=qQNRXY(6%6{8i;K5G#(@puGw*XJz`d#^_`$xdD z&OmPflgi{6sPj z49bUm;P5ah8B2R2EwD4R5OI=Bp3ZB5S1j;um)+u5({IgfkjEk@KQ{q*QXBZ8hI)6M z1YXvRcBxZ-=m>sGcf=uD*)SgCzH#{WW;pulF-$4K5QvRh<*jc{|eo%gn<@_Wp65~!S1e4ay;yb`V;k1@-JqxUQ4~>uxTCex>vpNj;vQsTZd#8%`MAM)1Wte zFYHwDP_mKu9Q5~8%CBQTN)3j5F!6^(;x*ehzz=qovAz*J|KQ;H2c zkmY~0r|w;EduC@szTkJ@svW<53wTKb;$PW+avJQ39e0o9ReImyda9uV#&JO_%k~A3 zFYf_d$xjgK%zB0LT#DlF_B-%;bHhOt)Y>pEz5pK2=fLyiUkzhySI9?c`(Quz2Oh7T z2k2h~yfo1}uWn|44=F%>bI8BI1-&KOJoDHZ@I+2`NJ&+%%Yl%uC<>Q&40(F40Uj8O z_)+*u`XNs9!+8<*rhgiahe!tHpVv8FJ1?WXl-?z0ARnde3+=lAJn0L>znk{VD}_B7 ziyaaPBR;+f^7-8mKPeXcp=vDTv&zsS4U}Iu8uCRGke_Ra|GpWx{SCyqiiaOQ2cGw* zO-hp9NNfdu*Gtf=@I7K;VEQ4tAN;25{9QQ2#G4*KUJan$W1?A2+{t)Q{)y(kXf^jm zl|SF!0QuNp*je2fL`58@vOj=5iRAz1dfKxP?c2cq_`^ov1s{3mhsBJ~8g1M^EyB#S zGjlWAH~D|gk#jah|eXJADWp@!nJ**8STJR z$a$CY=NXRsRUG#tS>GY!AYaq2kF-$jH~t<6yfy$ea?}2A>F2n+VZU&%EPXi+W@+bY z2Hy*RhBMv-ttJ|7sX__kiA{h0v?~e5^NczjP58qKIaa z<*ZmD}Rj-rfkdNp49SYyd=cHk+;fEmdd^rK~$;&ZsSNOe; z0B@}CDoj!ZJT6J z?XoWec&0YKk2(N6@@6priBcec8b&F{BR9t*rFYX}$jAN^DkY)CFvb*P{ondI z$j5&G`Bd@`dJni?R+vQaSHrkD96SlV;D=E9CwU}r=R${+SMO8YG8%ZJMGQcqsP_Ft zq&qWCvU%Q5*?;;7a4YArDt_+R4m|dM=tt3#%`lqx0rF<9qGx-PL1;l^)8uG>3`KWW;C$D)N@!+O>Z_axg+Q4r?#J7nD zWTqed=3@S%>|c~aJEPEE9;NpU;L(o)PauBqAneKGIWd)I7IMB+tj(7OUjun3-xpB+ zIrKVkJM)$Df4?N?jW5S|RL%8KBli87_@W_>})X?eiy}hU3nbx zG54Z>2{+0zZ#nQV7wpU?e(Mh4QH(1!&OZ7H@W7AJ;*FFyxK2;LQ6wBulzeaQ&lhR? z^FQ!BXKpL_A(=dVm_PHh{5d@ZdgFifo)3&&3f!Zedmq*Y{%rV@@yvGltrzfwO@pPz z0P2n7xNMAZc;Tl-w=(^otGx%&f%B8BYrr2w9#04G$6XIUsQ%T=`UbZ~eWNHpn)`cY zLx7`o#QKQ+CG-+-_1x;NhrnMl2YD=yJbvlGqb{P|t*q}<5qPHkRh=DD(oOlOzO++& zuJm~dd9?EkGnRp;*@igrBhTLdfV<;{N`&ENwC1^yyd3X(_2Y8^*GA55M#k3etZ zx2TuOCllWRZfrmvPDln-EiH{1ySI8UQq^=yDA#e~O{uY4DNQ}h4Td@c~GJ$DY_ z{+Ry=_(9pZkp7RN|DoM5{uSz^J!v7*o*345iAb9!Uj3{?A|m``sbatO=X(vRUiY{m zU-1>zBTD}5b-4F@S9h5N zyz~<6iKqOFNx$hS@|0dde2VJGa_L9l&A)le zFJL~e?FxSywDXqhP~YG%;Hti}7J#RO=O6qizku`Jun$9}zCyM`zr8?=fF>I7}w>o-IsgIe~=H{SO;9m&vbyNNqerhVk-6S5d*y_h4QCi+!P1A zL>mVuYz3aHt!IB_{!h`~6YR(53+`uOkCps8MT4605R{5~sebV~pAQD7!SXc99~OaX z%7=1)EQ)vn&xu7wApa}8hVz-!yBtz7mGaSNVSk>s-}M~r&%6%v-deUx!!GE}*8JRR z5AcN7y#0T67x;62K))!X-d3LiFRnuTD0{Nv!DC!tUZwo;mx0&uoEy9$-fMUpxZjK3 zddFV}e%DLrUrzGO;&%Fi}2VKCdPU_A0tjr^2h{EvFGHNB^~ere|VC57^KasI{RiN1n3DI^}Y z9C(rw{Z!4*M=`%u{Db@^!dRBdS71-Jc3$oy(at7+;m4RiCs6*MTYwj9`*M@5z$13U zKPui59;H0jaen0SPX?aR6Z;H-To*)b2VTN;uF5C%T))IKP81%;{2BWI;wOguNsN;s z?L6dq@prRcjs>V!1NA2H`AEPRtkcD?C`;WI_$Rh6;!4Fscjkxc-N+Bh9_ME8=V|Yq zEj|D|=lq?LSMhxC8FAi&5e&6PIP<)Rc|MSMI_p)c)vKW`c%lN~|7OY`dK`Fq9r`b# z&M-#P|BdG{zNmJ2FAws5uY^ekg-0I+UYQ9$m$ZR`bEkpZwR4->{sJD*1b!7ix84jq zISKYCKdf2{JnlQht*Y-gp8(ISfL`V2ZuC!z=AVN(XfJ>6vz5^g=f(c6+3pS6dmN>6 zfv1fNm6EDoRPP5~+XeehDxNpSg5OvlA?4%Ae|;wK2JL*EdmVTT?S1(r|4^@Xu52>< zW9{$oPX+l8&47H~8;HYv;*Y!xJbo4Y<|f|2JQEm&7B3|}=Ml&|ens3S5r6ni;MPCH z!b%jybI<@VrKgYPwoUZLNN6v@5lkW{F`N_`` zAB#MkMZIYpzv>1$Bw{5V-W~R&YI*7MPrw7;Mt=_w{lqMTp9NmjjQpwMZ8O`Yv_EjG zlosb(>L4Gp89c$v4^7;kDO?MAM1^6z!SOw95!x$)dFE!0n=#tB`S~^A_rDeWH-mbI zbpoDJ3Otgmt3jOQ{B;#tL8@=@4h8RC!{ zt<*b2q*JqBS8C^w{}T;i;+fj}ecM>C{1K>^^25#C2guUSiG9BUdV_j-=c|>pzh(sH zt1+Ve%(D9>==F5KIIH-b>fFxzXhF43>@^hpIefp;1sY>O9(bAx!zAKI|J?8%ac#f% z9w8?4TO{JmN%>t*1Gnu)KMf-Pt|QPJGr%DcEAf3CPa9i@NW`D`xzXS$nkWQBQSmTn zBJjLz@Pm@y&v{+aIh&MEl|RKitp@UO+WjhDUId=2y+=Queh%-1I8k}2wZV8uMm)n> z@!nQv;5NQDq2ln|7~t`|kHSfNQeDt%%!mCM^xM!x;2!Ngor?v)>sJVei{hdD5HWC= z{twaC(P=*b4=RHHl|5%0fLChk)*wEgO8gv|B%O99^BhR2b`GS?GSn+|1@dGq<^N3u z9-EAKP9kgSQ!ri#J6yKspR+)Nc_Q#&|CMGcfT984S3)j)T@s216DzA&8x6q z=^e;@q(JTc$8&4IlcSxF`jmP-1<DLbJX_+Pd#&VTOsjxqejr>+?+7(||mt z{2#l4_)gdlYYpR$-N0k-g@?uRN0wi>Zx(wT`NYEdc5Q~do$nVTs|ai{?5tUacu;YZwo2gnZ^B7#E6Z ze;2Md)3o(wDfbP^-bTOnC;vw7i{@ziqT$<7uTt%O&!>o6wC5K;h_o-`{|&^yino89 zz{A=i4+PWBB_ffU^1+oDFI3*{ItB7^Ztplhln40;ZG5kzeBvXJk7m6dei1xX+IyXA z7LrG^|HxY49&P@-xIK7s9B9W}+P|zP@Uov!UsbQ2lYqOld(wIw1YSLIuw+p2w(ou5 zNqkOSPySV$zcpy{x07$c&MLnDl1llBf>8SNC+~H~-&cUA@ZO#V$~Oo{neraK=cVlb zLyfafp?|43|7JCKocp}-VgCWI+ktwOlfO!I9FyO*9R7(QJ~bV9FwgsmUuEgI19*w{ z{O-?E;DOrtkgmsIf0^AOKdX2=>$kBc7G~cFsdQW4zD*1|AW764CR9&-`z770H@xG_&i zBim3U~7SVZ3%9h%FcLNm{?_VS(P51<1oz>fL?^?bpu5S^2!F>^fxTFv>^q`AbzE z{9M)se^|o)?w*Rg9Z&gL>98k|`){cV7h!DHt6Y0u=C8YfNA3~-BT5M6kBf#d<)dbz zUlh|nCo_QOXny|kBygiO{H(_JYT93-y>~o?`|TEOzr9sB+vQf&x0Lq$azFS}K1BQ{ z)1GcKfxG@ep7c=OvL1M46YNhV-g6)DM$VH(Gs&{$7xJHmA5^@hT?C%m9^*?k9^efuXW>o6Qj)H0_Cd7kNI3_7`zpQP%RUiOY&hzbIlv(iEAg_iz{{2a zSN+Ah7kHeOKTnBUL*4GNdc%AUpJ@;KnRd_PXbN%(!h z>$z?%A1^lZdjvf_cnx0(d>;Kj-`^yF12(EaD6A1y4;Y2cZ8JkiV!4>&5pLqln)a2t19rs@FY} zfR{F-y^<*Z0OvC{&SzA-UEuhYw^t1GqLfqq_;288Itl+r5bt-1dOMa&kJo)p07ZD#Ln$`4Azy{cls1WBn+`x;pa{?BQYavT8 zu8HkvS)SrPTa7l(J~aaN6sOvyoQrygaX&mU%sW49&4Ii{J5O8uHt+yG2Mi!j(*)QV z$>+{09yXr=UZCxl&V3R*<-Ffa`DY>b6C$~vpzQpb>#{s;T^7_9JpQFw zwdb2nPs5%dZNF|Z=RaY5uTa%%i4fXQ5PaWYCR`AqwU0Ff=8}3*5@%~j6 z=d-Q{Pc`r965UFc7-6t!Pw|Bi`FlF&Ip1dkZ|Z}3sdh;|0o=xWWtD&IP2}PI5~{zv z%5!m5S{|6ec}sW-{Gja2XMZo$`g^~dz#sE6?DVJoFHWO9+WuI~UGR_J0*91T^3`8J z-d{UMJ(%-~()*Z~*uVBa0iH;n1GiGI`$h0nX!{JCId4p9FA}mS3FNuVyi{>|fW(!5 zPH{inU)v8K&-Th#gK@_uKV=vn?F362t4R-FncI}cQJ6w!(i|uKIsqO(cCw1 z6ZadB`Wio?T@o0Fw{bpGV#9n!`STO@yM%f~z6#stdw?fl5ysgV^1HY$bMW5XTE^SJ z=OLfP^BZxLpF16P*8PNj5ly^%I`F1Uj9-<+M{_+A#`h^Ih_~i?KR{dW|HHhOI!z3e zqA352xfS-Lc`#n6dhO=EcPRJ0t@2Zb(UpD+`3-&(%XwM;dsFUGPtF{Gdih-k`$bsF@`?x>(+{=WPYa>n z4s8J*rM=fY^h5ACr#R&2^Fd?GYY+K=r!ik@Aim)`;MptDkJR@9l!{^3)En6;L`tgm zeeq@B<$V5IPaZqxz2R>nPVBUED(6LpHZO9E1+vNCm>Vt`(#ex^C-~#}y#uOUG9Cw> zRDpOdA^#1W2i9ue`>^9O40!cNHi@WqPn-(=!b{MbMfr|BARjWsArZwtjrK%;kGxdFJbY*qc+#}>Bmh4f$ri|ES{m;ZoogOT6_q2>~-sQU@ZRtMM@^3bz&t8| z^&0j#@bE8@H?nB|ZyCUgw0*G1oxq!p4Uo+0e9>C^vsUwG?PSWbTipA~_^f)!A?>MUee*q#4=F*ts)&#K2za!1o->#I zC71IP)h>N*fPAI4&bsSm+VcwXd^7o%d<)#rzHegxa^Ru&!yeV|hUWpdzK$N}Bu{7; z_$N9gTq279E#{MCEuVb;DtHRs2fwJkEN5Q>p1Kq9U?F~n`%XF9dUHMJ)dkwTdI9%C zoZ5NaM<#$jayjDJyx+|%0~pVd{SePK;yaQd-}qIil*3QMh)xCW=nwl7I4*2G4!mKX zP0AO`pN4Vbf51ampk5+8WNCIV-d?fG-wTLW@LZq4??><>{-JQY8CUi&M3jsD;yK|! z6K`am45K{*cLDdyKzj)>S+4I4y@vMubQ<^PJ@j{BGJ~nFJn#@2$iT-^Bcuwh8&Iih5t=bMtcEk7}d*RgU9s zo=370zdarNt&ohVp z$T13W+e~}zW}MhLFIDrpzt+J17`_kNMERyX;JNp+f6>l;92ZKoap7LkaAtiIr^7#$ z^#&fL_0s@q5o?(g1?mVw}`+q^``JSf*P;S(EbMA zm#gArUjgJ(m!Mvatk+exSJr;CR~Grpu7iA22J%A=ao2v}k^H_4EAiJ(0*}%5>w>nR zUjCiYE>)EGKM1_Ay+a}@uHIzcwvRyG4x^n*Zh^e*e;DsnKRVn4dK>10$DjPMV}Pe@ z!+b;GduM>hlaBaTJSUkCo7%LhnAOfzKpq#JPet0D4t#XpSp=kxnU zvzfQ2?Sy>#JMh2a|E~~ugZ3Q1j^jnPHeQTx2YKs0*lCA3#u>Jk{T1L*tk_SClVpDH zkFqmxE_h1${&h5YUK#}d#P$HQlFt_%$Mi!j$8m+9&jp^xb3uOODd)P?{wwmQdf#L_ z?etrYb&dGAEJqpVwXG57qMOU|&O_i2E=Qh+w+-Wb0`SHkkWW$|ZcP0Pcp~4+PNM&d znNOPHk>{12!Lg`s@T-W2D9W4Hpqcee)$ZGQm3m{e@iF)f$d?{L{#X7f`x1C&XT*=f z|9BaCLmS~A6<7DCK|cOL)HjuWX#Nm*!`J93s@=cl{3KHQKCjL{(;nVKC58!Ee*Ob^ z1?T6=4~e~DPkAclw~h3}YCfOxdmb8lnt>Z-M(qBhD57pFM$xT|z%iXS8YoTNPO$&X{b=5qfk z3*5*@+y)U3Ymaux>Ju&zEAg!1z{{7w@^a!!-N217*co8KAKt$M`~^He=BE5A(LK%f zEk7M1ktX8#^nW$q`yh?+@hr&uw??F8)1MD50v>c8xQfF-&Oaj-AP+>6zu;-u8P^T{ zF@|_tAb7I1_1A58L%vjdPvpz%A>XhT?JLrYEM=U3T9!KG@5(>(p8`+Vwb0uLapP1G z@DPrVDh@*!&uKhg5l{Ih;Xu=GNj9`&1@Sq1fyZm_O{_cyJTMXCDO%GodVT`j!uvFo z-cmj%YI0zn5KVsbeK=EZ*g&*bCGmrd^F;2StM;-o&%`c8o++k$2Jw>R!0qhUy+t=S z`76ud&os*K7z5m$hyJMie1P+lD&8}%^fn)aeC#-zWKiv!&2>|#wr;w5JN)nBeU(Yn z`{PLPH1T_j)VgWHD&RHd7iEePLHT6n+wh+UN+gf?6$|*&K16>{Cw_Dl@Laxkp!{$B z3jB31fG2?RpNoJo{S&Eu|Lo_?ht)SAzhzQBll`~B5-t%Z@yQL~3FQ65ivMZiS;P}5 zU(Dx65!&;kW5Zy7-a_O7<%bP%!1Hu1~u#J z$8#g0&i0a7F{&C1Vv~vhW%(qRvuUoiRmUOmbytc3P&~@N( z@&17j%0Dm~xSRK1l1z;ixAe5yPd{xZ>Rg`v*aSzT1Tznp+;&Ud)sr3J$y^3hhrrFS2sjd4~aX+p6 zd06OfjSpk7|t`5A3oa%o|tU!dGB_PFPU%Jq@9JRu2FOf@@d+7 zWGUl0BgDI24;)2(%LfCul4rXGJjI2GA2l8giUeNp5XOag%C~zFc#d`s>!?4S2C@FG4R52Sn)=L0Uz2UH%O$@x!Z5c05_@`+Qx zlfn0W5{b_{13W}~kExjT&Cu$5(@xa4qOC(RC_8%zMP|K9wR3c{9)Nt97SCIAAa6VA z9dF;<0{JvPf4534hOw_Z@Y)~XH-%qfzV-O`l9K+Ee^X3vOndya@0~m$h7S|B96^6q z@?%B!k?o@02WvkByo~b=B_Bk;1!;cUE*|ihJO$eG#4+u`Qyu|3OK9hNYk{Zo-hf=< zi>iQU&cr-H>HV`0_$}JGnkYU`^o+)ON6n);GtY$dbx7tg@;|}(PnLH6puwN zi@Lx4qXE#HJr6tq`<~`s+ z>!+Bn;7KK&EyJrA_crakKspDJ(cPlbHoUdSu{tD@mddlK@+fGA3s{3*`$mjQQb z@i4#+9$N(3%SHLwY{#5@;EMm5-@y~Y_fi8X|KBX|SU!x9NF(uG4#{@7h2M*vN_=lm@Wj0+5~e7y$}r{+1|DJe_UB?@hN(A2dmr<;WZ(sS z9;bLVZUm42+px2S{UV$D$z@$(r&Vef_rdbKS-KW)KQ98mo9E)(l+Swwxb*0`S1b?%3Kc{Cr@T9k}E<@`WMrs!Dj8TXO zg|Dgu9$1md(;LSXzq~a~QD|r0* z{hKNt`jX!-8T?BA6AO5Z>UXIhz|O$i9Fo~e{+aC|U-Aw7CYn{28`$po+IzAU)4@}*5#vH3dDaTU z%(!*uz;90Czlnv3iKoqjyn}d8jxYIqo)}Dg-7?5WPeuIX6EEYus9swyd^-zzYukiM z$tLFQ^5=lpXJdT#6Mi?#b)45Zd2hDz+iadoDbU_K*u!&5>ED4r7c|DU1>i3(!#JqU zX*4_!Jnb&@7sX%CJYU`!ahu&1MDrq0->5jWtV`rCvn(0|yiEH(qt&Z{Tljs};Se`| zy%D(m3J|3?b_Vcl?fXEFb3dVW6vl-t@-#9|if?mB#7g`;`=j#%^v4+DCzgZ1z~3Pe zy4mTPpr`=@8*ZO08RQYfSOFDBTcq*LBH8+gcZWUyMs z|1(bjZ|3)62T*>(Sm^bCA9+Ukzvd<2DcX6+Z_Wa*(&piF9t3~oEcEL-@;kUs>)#pe zVx^xq_n_V>4k@YhdU!6y?Lk~+(EgV_kWW2=ew0i8-*SLkcn_7z8*7%ro(%JaHBlnv zPs2zS0%jb>YUhM2p9UWEW2lr2rkx3*Ax!z0xv(d<9f;!Fg1_-2^!H5i|I-P0leTYA zv<`U0zZjR5AKu{l$Xb9njHcfH%=2-4e=vo9D4Yg+(zNq?mqnsB?abMLc31w7%>tgm zd$W~)p3VV}QGooT;^+Mxz~g=fu6TO=3A~2$KtI;^xOm`b>h);%5QZ)Qp2%~Os^6{K z3%rEqOcYNU=RbDt`>A+%j`kO8_kN$<1D^8v4rz&!-?IXC+W&+7dGzN;TnG7S`$Yr$ zfu~lRS3j`>c+eG$JIX(sUnc)*#9=M{(8CJ6TzhY2kQi=E{}|f)t%D8&Pv<^~@5j% zOFW+U15}fLXcXmno>|#H^)=v4pTa+?U2gpecwpQR$q-7OE?gHBK8Aj(couM8Vb`9| zKF)lV^gZ&G*uIvfcRBd|d9Q2|`Hu=h(?3CjQ7=2k*)}3gnRo;5`%?L^ivxJFcE4-d zCE!iG4=s=Uovr{c@nAo&p7dm;MIkg57bb;dQ_AAF26%B- z_?gu*3UYwgY3E)xTn{|tOPl<>YL^E%uXb@>t>UvI_xY`Z9a7#Ze;URq#$nVB#G#vb z#AEP7&Ho}K;vgQwd46?2AXegiGhk1&)=wS1!4td;`MjF)J9u8Gj^~9$c*`wZB#QTC7HJj!z%cpUv!dOi4ao(-3uSMm=H0`9s6@t;fnQl6hFusbB8+IQ&vkgpgB zKPaAk8-OQY#(YeKhb+Ah0JpRSPb^?VOv9!9O~a9YRJ)9S40wgME*{VIvSmNwLD_SH z`*_*feB=FRp|`;y5~(Q4&R<^zUeg`(kT}|NZXfU%?ObJ_4X~#?6Y}t$VI1eYv`(9s zzWgY7DtW)Xs+Z?5@Z?a3)EGv+!*_r`_fO2PLWz&!es8hX?`AFnPdMLySMl)4B=Dqb z_lddZ01tW)?UG9VuS$UzYWL)v;dAPs2(+)OH9pW~8}x=g20tjCy2*`->YBfg9R;_eY-xUNaEwuKe~q*WEG0F;7tK`_8+tGpeIQY7C*? zcbK|Ggt2pUdZ= zioZ`A$S3goXaub+?{Z$}(!P)5+TD=1-Q*`q0sbn!Z-?vO>LnOo+{{Zi zJp}pWS?F>3l1=3K_2AFe?vXwt8p!ld&3f>_dxjBp1$e+_;YcP{aCTBC(G}gR|j9hc;}$}^&F?-I-x%{2z_ShFpqZ9KS6+v z+!uk{e?U7Llz)9c@Jx;iVU+(zbOhO6JQop9Jm*#5{(S!^m-v@kfX8UxPf>LcxJ5e; z7IYqX?r+}XV~p5{lX~+}uNd-&YzAI80QuQM|NPq(Jhj^Xf5BtG4f6{VMQJ9_dY(%O z-3Ps@zQJMx$JA@t?~Pl@6ReHPZ*2yD`4)_8A>_YjEAVXXJ^f(%IYAqLC(ea@g7!V; zpY8^pF$ETi^die>`l0z+hx|Q=et7at*dO;C>MMpDSuQ*ap8CVc11ZD{m~t}oXH|hg&8z$T3La-2))&gor#L@s;QTO={@kz^ z@~J$(q2zo20o=lSLR9}c*#>w+2iTcMJCkn#?$PdT`%8$K{!G)>zq{@OUcl#8;pF*k z4*XO5O@u^LJak$DJcIW(D?4B3^A3;2A?1~yC$)xr)q3O;g}=x9Ov>)PN6JUZpJE=! zc~Q1@|Lucc!cM1l-u{j6fTwHoiZNV|CqIP#rQ+~g&U2bqqFyod|9P%2a&LqE%Fnh= z;E%c$>vRN}?{y&fl zevkHEMh5pG%d~ySKW>D4h_>#&#C8vN_mLXYsrR08$ft6jO4*q^0(O?ZWS5cwlwW;_ z^&M}Mi0XGoZII8__6N*k%w`-GrbFIo0Z~9H@MOL}3oVB6`8nXt+CIk1L%?ryB7T}_ z&w9pBh892Ha6TVZg87@8ho^HKiO}-r<#(VrJSj{vtN0(rxUJ?rJj%`s+_%iu?rn&i z3OntU7+2$n)$jM#F=^qxoKE;WbduaW?SUABAH@2?1>M^Z<8#fN?XI_~ts` z$y=~bqUt-A^WH#hUiZucu+z0j}ny8)kw(C@(@vme9{Dk3-(2-QyiU9`Xs=d(*!z242bg>#WpU#&x$} z0{o-ew^}&X^iPVmu58sFJpSx2%Kt@Tf@I3a908AtA1CuzJ-=^7;bEu2?;h`+$C`fw z9`_~i2HI&E1O9StojBne+Ns^M`UlsQg_?ZM&5*Cq&Q)$*2|QMN?msgJc=9`Fmvq|m z0rx*$c85e%-YXgh`ReO1{$^0V^by!!_7TQ4#q%x4!9>mena3bsJQVy^^4u{B{3!#F zR}+XY<2>A{&BF`tgnTOB>rr<0nhd=3I*bb*^7N!XGc|jrvtJZy{bJ@s@Ko{sc9jn= zPXS&w1N@O4pkNRCMdQ2Z@5-K7#&d)g&wrc+Pp!7!e)bvoCxrLEWzqhL+@B2B)<YQ;U#WKN$9z?x<*Uy0bE)>e z=MeUn9Id}h;Ji9970fQ$V-*V%GpqosBeST zFCP5~cqyNEtM^te(GL;Ye&aPa!k(nh!lgzB$Cp8|z!P7KkhqGgfoeU~&mnQE{An0% z219R}b`JUYI<^bHZ^ge2K5&Zt#jf?2Am({L?Y!9wPr@E|2aNAI)SGY}_(NVsJY*5? z&-|0f_aK!0_dgE#a^7>BPx)Z(8qTSheX1No97nIxXtGK7s2E|Aj~uIB7V=ci}G)5 z0UoLC;}yIGJWIRpw^KCq);)mnQRS<4gMml!`^^>qOpfoByw6bei#0cZ-@XZc%cDKR znfFSyyw~YJ$k%K4499*7yo~SfD|^f-LzZjnh)W_Nn0|I>_e+oZ61cM?*1rbhB!v6k*1_RYqk6w%Z4c;e7$G{W zD9!SxVLWsz@O157R`Xh5Q*ZGWtb>FZvV6__R{Apfi}KITm%!uD)^WEnpNDDneLe^L z>Dqa)_iBL$Y0r<$<7cKlu1weyLwhdr`AG1)-ger!UzF#@ev#_G_64vrm*>Qk{TH~O z@9yr9%=l>-6U4A<>h&LHlX!*vX&7&&0k?DCQk{FL+YQ_@6+I}C{biu|pve=godz;j=@?xes~1@ca4o&Y>U z+kZ>sezmg$@|8N5Sj~A|fi|y;cocfW+dy8~A5#E4Zy_|s)1Hfr=W52YT4zmUJ`cPN zcGj~UufLu3x`22??F{3!S->-{V&3Z}|8-9TkJX;r7Kub^#zP$6PjR-!2P(Ml z8d%?At-f~VTYqi8>$5Y^8?W6f)tCF0Ve7p6(cf!ePmy--L>ZqKCwFv61A|$w=b4u( zwR=}?65Y+Lmz(?K>6CAG4fvx^L2r}dA%A5DheTY&zrGPXRxLg!a{gR52YEG_^1Fp$ zrrvCA-S_dsz|+6>ZkMhG>`7bX-HweMugeP}By$Y;i$p`4{88GuulLzs8rWaNwv{Y9 zb08nV_aF1g6Wk4Y{hvi%%4FVd8xK76Tj*8&{j!)an0nK-_fN-j{?MR}7pI@48LBeBj+B|c(5@XQs)=^h(3{FrIcs2#1RjEq{vbnoGd#{Qd|PC#|@?sCgCsv`{{L zG31LcfJe2X!8~6a=#Y|uY%fEt>!$b)%xiIK98=`zPIk!cK9ty`~ENEIP3}5*3r3>AYW!j9xG>k2k~5G zoVE`z#Fvse#GZrako2Uja0q9m<+v1ywB6g`rg2OgG}D%6GZ$M zj;B`6(;UQe%AnUVY^X%k{Bt1ZZ`Q4Yz3>$|&|AuLcbVk5bQ(O-^Ss-ubT;s2?Rzud z76XCV@0tcVBtt5BrdLQ+C1c^>%rr$ zv`L00@}wLF92?!O6C0SO-h>0NCxv*?Sm4>q91?+5V&1}j7i|abPx(&b ze@vcm^MJZ235>&`cHre(;Q2tx2WYCT(006g;+hm=czxY0)>Ow<0dR}pU!9=IR?44A0$ytyCXra;6~ZB=AB^q}iKsZqB+&s)KjhqkmQw9i&-p_+?*)pX{MAE{cTa@*7ew z&g&OK-p21e@uU2RgTS*oI3xn^iT7BGVNd@3@LMwFdvW}2*7nn!Vj^eS6LKr+tNeT~ z_rXg0fj@{mt*zkqXz$}}6b)+fB+SNoB$x89KLy;-zQ21D`$f6dFFxfwCsjLl)MEhb ztmq6st9b6salhIPy;0N~!TC>ISBFH>iC=gI_T(K1m59o>duUIkW{>lE=xyfr%fyqX z+fncoz7NmGF@7E^1)f_0JdyH8`TVh3d;WM$D&&LvAr8f_vShCSUh_Ke%C^AcCIPou zkXQfj_Tso)&hx`I=HdVLLq4qw=C`q+F_xYJ?$++Td6e_L811>$RrW7`z86_V9_KRn zr+O>$p~??axxP!%-iLZ_C-g?}e$hhm^x*zyNL%Jr+P_Ft-;As1Zm6l^KQtV;-O^h! zsQKHHNZ_dpfGhdiUI%Xb0C8T-_A09&k2cRg+XMA-^Zs@x?VQf~+O>PYCW^2$?X2N= zt>QE0G2odWq8($&Q}rtNv+ofV5yeIPe$H1DwE5~2x!{S_p4Uv{Jfwb~cYhz!2mC>2 zhDc^HeUc@7I`Gs5_sHK>{2ZJQ+~D^cD*G1)LT|2i-(V*3d<`$<{KVhMe$F3| zZ{j&Lg^%QOUVEExDOp7Mf+?^kGY0mk?>D)T=V$V?@3Hc5zLXq~dAs88^Ei0i+I?;_ zUH~4WeQ!nDR^U|=k;g2I&&Dj+@0^NtYXb56k|AHIJy*KQ{GXYC{1e1_J=_oSe%kr` zJNP`pu04-X-Uzj2Lg*L8jZUCPA1Llol z_>g6FH{cd+fAuQ+Q9vI2qx$t%oFB#q+2!XGE#T?Ec|yXgz(WBW$+WXVvvc|u*dN>l z{Gz+ba{6A_N!i;N5Df%5Le3ntqH)Ru0emv zCeKZWfER1`HGTFm@VsB(H!J1e`xkij9q3<9;t{M@)wSM!J0Kixwu}Fd7)Mn8sfq_4 zIt(7mBhPH^2L}HLy+y}p-z^sqkxy6 z0IuTS?*Q<^)($Br!dsSCJ_KGn-ywfj{=E5R*b~crk`#y=Z;A~Nv%aYZ(BDe-=4o(3cGa2n0Mfo59AeA{~B#S zJY_U^f_Q&|vOl!|c*bJHoAN{XUf`M9Ipl!jz(chCqIvhi9{WYaXEN=a!ToRxzt>5{ zTl90_DL)n}C1WYS?p@mRD(s0P{?G~FF{j{%M&gS&UerfmyioP(&GmI<4&uR&@&Px3 zCz9u~ti95>Kj(ESes(SfPeUU5S1RS_7XyzCaY#hf zYl9Flw3K)N zpNHD-LY$!W4dc)|;4jKXd#N~gjsbrl?}ZK~PyYvj7rX=cSmGyM1MZ)PysB_>T$T0Z zbMpYoA4me8@;vO!C0@^c{+ed^U$yU@%x|e(;Agcy-Sax^kNFmPEQdVrECIja?~q6c z@ou|l=No8|c;b(6UX;S`D_8UC?qUO6=BvxltMcBn_k*W+AM%xo{}+USDW9Y5!~C=! zc%ybMy8AZZHJ{xkEoq=VOO66>&O-YJbDp`J^B=1=|B0l3V(x&QVwjNSZ=RpYUyAlp zJQ1S1nReR$gZ+UP$UFHwBJEe|r9FYe>E}g=AAj<%=JNvogTR%aUECi?{USm#q?0Ep z0X%N)K9EX|%LVg3dWac@~qztJT4n?qS|*Y^F!bq#Ag}%R%&%1)jPG{n5>OM~gCit_M_1Zfb{5GC13MT&9=fHFS1Ovn0@aK5i za2|0LO+SRKMZM~@=dJU&e-*(zquQm%Nbo0W_Y*E}0Pe^2LL%+?fb;xf-oq@!WZ5+b z^0mccKorFze;UR;@xbH591@9WgFh^v4?L{`@ur?rfB6RR@Ds>0@vPU965!c^0*=|C=uB5#EIp7w~ zPs)fN{tmcD%d5*bqFoH$XQ=v7SJ5v`{#fpZG?Ax0^IlpS^a}H2nK>5n_U*`r6~srM z0v^o$r2yjlxL=oh58^P5_`PdjPw-5{VHWX6M1Yz0*m+J##o@V|fR}4|U`h<|>PUxV zQ1v?h4)8ek3uVt^qkz{BML&vSJRC0qp2YWqthA?S1njKj`$Vz2 zdUfP;!?Z~l*ODneFB0-L?Oee_+z%;rqrJp5Lzd&BJDB!lS%qPuC_i@_1Kg&~e?EPI z@*~k7MH-i7!G7Rz{QjmOz{cL1|BI_Dj_!IqT5xUc_6g#L4a#XFs$khxpB0PkCR)ex^#3bctlX>(XA1$%E|M_J>V&Q8~yG}`AH9hCzt!KneFh4FP1~z z(+>Iskmr%Zz*Bw*(t-)(`R_O21-wVdLp(VH{4RftYsq8FnCCY$&zJSxKJK%HEQbEl zkDbH8lVm){|Ca0b)MN0&Sk^m=``A^+dzudguw9eX|EMDUc$z`d)Hr&SP-3<6KA@&4vOu3NK=`|;AbA6RYd2mXB!JnkD& zqm%sqU5k2ylhH1*+gHrfN{n+#8`ZX+?YH@iCn9f)*?9fu@N>xntmJ zCFD!^oX$gic3uKr-Ud8L#6P8f#v1LK!+bu}$miE9_p|lMUW<0ck!JzdgU;6IuV&)W zuR}h-IEOIeC*UPB>IFik1FE& zE|u{rntm8)pNtch&oZC)*`flnD&o)WnUAGq!JaYtx9a>1=a&TIxz%e^Xiw&Q zF7n^}4Dg(LF@Du{fiB-{1YT>LLzu^Qg>ZaDvEDV4As@d`1#neTnO8jN1fH=AeiEsF zYgup30$$b&c9Z_9;{4)mtT*@l2l;H~r4m1#PV`HK@qP1P&N~@buzvA4Q1NK?SHoRs zZwmFvRsr9RV>LxsUnCRn*BkYE%F$oqw|?}`3hsxH-a4ZUV)G<_1pXlY;t9@QW!JzD z#co~uqTc97vF|P8H<06^g!eg1y|26q`J8poNBl65`xv$D-CA>{o-TR!L!aPx2I+sh z0bAX(sOPott6Gku#vb4=e+K;+M)@g9%x;%2pSyVp&T(DRWrRkY9r258JHV4_oF6#c z3wYrv@H@$~b{g;m&M(6M5%YvpBTsnh1oZJ3=SCvigC~IBaf5fM`Cl#cZ2hy1b^4bj zz%zo~T9XFqvvLUdb9hg<=(ALX3!5j7>&g(yUs8W=<59+bQT$-=mpLFQJP)!TYu2J4 zqsVjrhma2+tO!-{(?2aMCl$CO1AZku&3q16!smdol%Ku}@@agZ&PDuxS>)9U|pEJ3iSx9-WYaw55oDaF4@hZPF^z>u? zbLmmYR~z3Q=)4qo=B>&BRPj*%O~-*J8TaZut2)T`hvY)Uy=dz5uX;>r;|YdeT~f`l z@fag-FPQ*5?oH%@Ddcfx121?1{iv2px*Yosc%gCrWE1no3hukck>_#;$d}JTzJXr0 zti?YA_u={K8p@C1bEq^vhYBa|-w*Od{|0D8z88GcY~VS@ddKqx@O0z5Est*lUhy^B zC4RpAW{wNvdoKIpfcqHdTYeu8p4h)&H)Sqe*8TuIawz;q{CxFA;La}*|Et-*;~xg@ z=J}H-@;Etv<&AM`MC>_t3*<|9FN)|toa^5N-mmD*{(45G8Fs(Bzk%KS$p0AggdBd) zC6IVUHrnexkGO%_E$eM1VDp3-@5`Kc2=dXhkk6!%XUBZtb;f<9>z&}S<|00;v|pFn zF~H;202iKsnZWCe?+{(feX2aZKbXpTKjAr_Fn$kCRj14L1n3iZ9p-Ca;>VOj+U;^| zfqlw|FW|giW6b;S2Y{!M@8dWq-)9@}V&nOpoAK7gcAtA9pcLcRq8;w0pVtg- zndkqk)VB4^z63q%DgU%GmyHMUoN5gDd-EJ`zA-;O&v;eObJTH^U-US5Y9DAB|G)he zcrfqr5dZn&AK;P3y*igTpH><3=|avIb(}9`T->P)sQt<~w^scc@WRJ2PDOq+<4>9K zeofB@VE>wl@WVv5>w7iMZ2p2B12iH$!83p-P#+)4kL?T|ALF~UgYJR6>w1iLFWUdo zYT&*HFz;lLXY)?rsll!m^(GGme}wTKocC9d_Za6hPjkPh+So68$_*axmCAut@z*~s ztG#j$ySbaJKQlf8ak(%0I*TCB~Rv=6nnJ2;;r}V4ibGZijIsaj!d{v!rcB z+>re6+g#`w%8$V7>?>KJo}~Z{vH=7pPA?zc-Xg`K6p+ioeGEqS8)XVy}WH z%ed!fT^RICYl8n|QT`m)xk2R^M`EAc0>~F_M|==Hz1px{yvM^yeZpP^?$2|K|3ALo z1#Z2EaZyA0R`fSt!{0hDL%o^2k6QdBpc{C?9)tZu$+L1a@O=A4Z&gJ9^G^UT9ShB~ zD1Y%u;C17H#}c123V4JYJks9JCIfHg^I~7h2aJcF4n7yIC*Hgoc%iXxeE0_Ngci` zLkZVkjVoYb;cxdcc!K(4ybC^mH}HgY@DqsxO^i#K@1ws|Gj%yz06p^-yY#=yi4SJ} zmSE&>cRoP*J+My_<^S3RJdyXS_!D>B27PM$;pgH%ler!YGxi(9xlh}`{6XZ~#(*c5 z`&822!OsB?G2UD0$b6vC$OoEVfu3$Yug|5P0eQef-+&!te!24x;C04#bG-YZUS}HC z_3|9VcMI^6M_~WN)~I0G3*hmYhH>p?z0<3KXB+p5{L%+JS9)bpihAAik#?cw+e-0gM96x^ooppgj1M z`126vd%lC+n!%4eXVgFK@f*hVyV&jE_rR+R`**$%{7&P%sGaxOJkfh$=U~R|E4_h- z8t0&fOat!b_ex}3%B`9YtCKCovt+f}syc#3g8{|)A` z`OHJao?iukztDKT|3f(N`sa~f#ghLqK6h&{;^$x7&(G+s46BOxXRkisDOvEBw`kl!f(6!IMD_siYU-o!UhqdX5SD~5a`-{TW~+MfaL zXS}aEkntzTh(9M^0>A$ssJD>%EK>%w`@O0Tc>-EtSs!%)Ub_tb5J&kZh5^sm$o8r{ z*e<`_2i$8D>@4ldiU8hR1Kdx|>vq}6`MR*!rT;DdaESXk@y7Sv&P=2}AA=`L|CMFE zwibBID(Elc;*S+*Z-6n6yvhEGV1K#EGrKqBeNV#=oy5DkfS0rh(MU4!m{8!syvIQF zf0)mCn~uN&f=Bj(o*rY|^-2JqV8o4#{lLT7@4_?eE8<2z|A-It$>IH7;)nOL-*b$8 z^+D;7uipsuZM=d?8KycrWw`HtzE|!Thj<_koN2qe~#)#Pyx< zr!c>bGS;o58CPqbMSPQe&L_8nr`*^VeUI~L@=&+dToUQIb3IjUyazF47Wh-fxOIIZpWOqv&$BnRz-KD=v)h%~9qkhP_^kw&rR}-=O!0a zbL@5%?Q6MS=wARlhwouUQlIicuyd*5Z!1>=k1_Ixhx>vjkmrh}fB#qjJo`wXW)9{& zI58i1;@vKd*SAB(_b~tQ=l!MPSH7=9K7T9vOYq|(p-;^lA(|ipG}h2?`iXHKY2qy4 zVaE5BLfeBs>pc2hb*nB3`+&!7f}YL9*D#)kGy<<6ZaoS9qQ65mg5RqC<-DA4oU3sS z27mbg)GP7aqlSsyUv+H;XdZvY!)F+8i}^hZvGaG_uSnfL)Zf4> zcwbN<_5Y1|NNF#`|9IjH88^~{+!_fZUc$V{+Ku++5pTsf;Mos<7Qgy_2<%g9JQrBT z=VFP|u>O^M70&d9yzfhBm&C(z?zbfTi+=ZQjfzv_As=m=-z#yTy;Z!AqLg~p9S2@y z?2jF)2i~+1`imXj;=JSX3f2rB_DfghAyLLXqE*cE%kG9fy;<-70-sH7 zAF>$yQtxZb_k7D+_Pc}Q$TJl4xJnmwxy2v#`WgG!ZJFOj=*4?YR1JBKZ zd=%x+FmLfU?iKuYA>_SkVX-jE@8f)$Wz45-U68LEhxt*~p{MAs@FtJ_7~1aN zh}MV?S;VJJ0iMkLG_mKzX5gtK(7)1;o4J0eUJLt6JlVlG95NPph46fN89cSd`@&Zu z&@VB=+*%Wn@6K}(k-Y!YLp?v*2l;g4Ua2QHgTHwb;=I`T!cO3>JCvbR5j#Bp2XKq$ zqr@Mw$AjPh&k!x2r+->j@?qdrbKM#do^LvWC!PCg!V{`Cf^0iCnCyDLyUW<0AZ82T)*e)NVT~+G$wm$Aw@I%q(nNNY2 ze;TC!UhF@U&-KDzMZYJq-t+U&t|TY=x3V>U;lC6-;b$P9PkkQU1-x)P^eiRMfH>j} zsJDRlqpE?no(aaepxHZs7xTG51?8_)1J5(|ZO*BIY4d~|?|Hoz0K9Q4^b~up%>L-_!v6dy{7Y>&;`mzQm{93whUYj8ixBsOm+)i`yfgOr`uw7l0?f zuO?_!6s<0uZ-71}_Q73M9QvnaeZ}}tJ_&kyh@Y7a`9cTubP~U^4g5~tD?$xO)&NoD#k+I z!|(k`|4z&SUa=c-Admckqrv0#9^zFc@eZlL%e~zik#-GHFgCeG0~-y`^lgi~iG`2mkS6y*+5>VA@&i@I3c7a*TV8Ce25?;{D+#V*js# zQE%o=s5g=Iwh94W!+R$JiH{ruJkGf1WWyfd&W^BWFy&`FgL)fyzEt!a+6MATpTIx; zD8JSpczh|wV>Iy_IG=h4!ww0w!wWozkYRievFmWun|dTbGe~`c?rFp~f41vrEO=bJCr$9qqrj8M?}Iof-(?o? zLL)D27Y{su?`6ZPmesBbc1qGloV37UyrObAkSrVD!rm+`o<6jJ#Un{8jabcD>Qu=Xa4mpU31H9~= z0s8M{T)#y9>l#s`*!k|yAz#e*Rh8Lw>HZz?a^qgXR@@gY=W}!6x6hy2{S}sgI4S+| zUuWRWv*AA?zvwygpM*YMtk+vL+~x`9efX8cf9Jk#L*EdM6cKOU2>CqYzVYkmKLN?8 zSK>^W3TxW047;sWVcf=a_!E>Y^kE`a}cFX?{8YYtGlShC@@Z53) z@#J{mUUi6{ZsPB#hTA+TgOCrvD=h2t-+`AI=K;oC2A<0Asriwo`(WswU~hn{qS7Q? zZlj+>8}}Br;{0A^+)KG}B6vbND#uVITK`n%Le&D$)-!HHs7Az|A94JKx-d?a+vqZY zd0OGKuxA4Cukyg-G3JFA8E+#PZ!;(#+ym_`iiO?8{$D6_X}>k{_Pg%^o)~~Qj9#;> zOWe=N{|5d3|2*`cv?K5z2kUL~BY3iRqhFL;>XQ5d^pEE~JWk3V?hW~pwrH>LCvE_q zVw|J6;VSToS4L{%7=2k3mb%fDJDK) z9pwEITiVlp9m(d;=Dx1z{}1hu&UH-_c@A*hn#ObNBEN;tK{6j5t|i@+@4)wo+--qK z+`GID`otRdq95gRLvOyPP)(kEwT!j(%rnjvWXBNy8~v`#rOTT6;LkSBCx0>nxa)2B zv*>?}_Q^KvlSKO`oP__xGftM*px%1py?*Dfz(a}<77Cc5}Tf?fu|+=;JpJeo{w$x@G~7 zGoCxY^(^#^eGie!!*S7{>l)_);AxyME_?*}+Py)V*@ygZUI+f>?-@zd__vGKO~BKQ zeUE2?fX5r}K_BS@e*X}+{(EUxj~9VAjf369&ZlkxkH_HY$h8>C_d#YZf_xG04;TByts&2w(7%8@tyRC-ewfAg(S-k>Rlp;S z@7}(?19)A$OEWakA6_T}-fZj>4ypy7Xq-R%SS8qYy`Ff)jU4LpA=fE+)8U`l@s_}$FYBABQ75szh@ zkN0wGMA|!y_Q^Et^TlE488@$`d}2q`8+j4^%blbD#2S85^giV4uXk%+U)pD|QrNCHI11z4;n2Uf_Pzi-at7jwMfuCh zAhvvr@x795T&I^C`$A_PM7?q2!6W@XjQ&u|bC1%l{3+ls;60_G)Mr)=@X&*puSI^w ze()ExLA%6n1B-!Y_XV!h*5&FJ@Ko@gK+$JgF7Om%-@EV!;65W-?h6fk9e5$v>EgE| zOMp9g4_F549asju&bX(yT6KhN&*UPEuSm*2&-}CECdBP5;#br>Z_7tq+g~Fx?<@)d z?wu2$aS!D;hXVIp1nwmMZ3OU4-fL0W9>1u~1K!MYBVy;XXMtzeU>r$2`8FAN$zOq* zK!rP9d`f_)EDqBD_62NBQq!@mfB9DEqlTd_50?PXH11EUH~~D{*eCgs&tI~Q`?p_o z!=8bB-$(p*37;D_@;<{b>NAD=y&3xv2XYqscLr<3i?~lD zd$q_>j6C7$YYK4jj#&@+bT)>QZD^7|Cv?zf=7O6PQWV*q%3jQedGM*??p-!&5AR?TMO zyeC2I^FagfO5=X-D>G4V9q$oJBTwy8;Aw~9|6YuTXLEqp^ZmO_%3pj9{9Zhd?Mr+E z*FlZO`*eR&-rqPUc6lRsg5HCl2h$D@y@h%+=EF~NRJ10Klz5GQ$_ z=Q^wL2;!TEcpUXf`WybBs?((n*R8&M-YRxjtsK(!bIbV7&KI1IqKx_I?cI>imnDjO#?oCq4lA+Pzp8SCc=Fc}Rwlhjbqg`LH$^r~Z_Gax(DX;oySGYzPv{p}Kknv!W*zUlkp6u)AN&>b!7n_Q9tKa%Mc6Zo^$uMR zyvevP_m_^~De8;y5=Z$nDg@Z$vGx(PE1eDN)djfM)0po>pHr%vZ25veVYhnrd$(VJ zC*@&WNdLY``9NbGaobwRm-75=4E3q60v>Cevu#%HYS&xL`zn3f;18CJ1fFBOe>7S?@L7AfNU({9NMO6Jv;P#kh;4dII%AH0X&xSb;{m0e{y|GJzoxoe3h{dom&FD z;#O!b{r=vk;BnSqTuXa5bDuEWxCi@A_Di|JzmfTQ=rHgLPp$eNThC(NV-Q3AA7h+s zco_0!^s85y&lDTy$2$5#fA?057yOmFH+mTG^5L+L_<7%hs5hI>xjd}*^B;g)4`5u2 zo|*H&Q)=7`-7Xz?m2ntjn7c%tAMPE`1#&c;DyY$VLi)wWjpkY+~LylQTnICerCJA zMw|@fxX$Ofn(`yi)5-o?tQ^?3L&FlplR)w$JqA3y9P?lW@#aOq-5r3(Iq-|g`++y! zaI*&TDBmy_`iHV#WZvm6`=WfVB<;N`20VV3FmI}Gt;?}bfEOJK(*G7exqLhLi$mNR z7k_x=A>uO;SEXNmW}FY61iMx0zp|`1o&bNE@gB<0^k=U-V0q!+-vROg`;{Z95=WjO zuD=q;xHTg3+1zieF!J^>uR+i1ohpEm&aisJDrD`!dLv z8T%o=nZS!UkN-da3&1O;!ai>DJV!fwjQh0bGq0;^XgUAxQG~YtIF0*1)75~r@fv<7 zE{y!1>A=$((7zePzwQjY);OPV-WPbOanIGO`+z6&-f8ilZr=hgp5HPaPUrrWBLFRp zX1!{eqV-If-%lfMj+bsP1JB$BKhLH7T&@?Q+rj>7_~vpP(JwNtfB6b{1HWS>^+w+eevk2dt!y^%EaUmwvUcFf z*)mYqsFpLjoVXWw?M~p*Uz5%Q4~<2?r%})LeZU|8H~drXJzLLtHq3a>D}e7g)`Yk< zgXlk4#Shz0T$2MdF8#Pe^3N*RUp;=(W&b0nx8@VrN9_3x$918xKb-ayoX#Ag@VJJb()M)rlBE6CGhIe6+Ez(t?d1&|Ma9qpB*0(L{t@-r~32&PsB@L5dC|pWsdFV4(`*6{dYYC-1{W#Eb@zE zfhRnNepKm`E^qw}yq51D6#%vt^8F*r-ndq!ocK;vkzKEqiupZ(_>xh;eQrbiDJ6eC z{jG@aVad37_&(Sz+Q{cUtALmBd&*+Zr}%utx2s#%DD^fl4wnxE?xH^Tw}(F2KO@da zy*pGGxAhM-@~BkC|3oAH_hXz4Gxh@~213su<9)Gxp}=z^U^lV9{W_1fo3SqTod!Iw zN1)bR?wS1k1K^EQgETJse^N~z<9&@^7oy(c$I$OG-fvNVZPy!bh{LV`#)Ul4XMSFw!J#;_fx&FY@D-g#V#CI`2tiKI$Sap*wJNKjB4Bp=& zdKTURo+`fg7fzlFS*$k)`Be$=={JL?t_T{si2u0^c-0e_cSO&N9A9aCzfbt@;{K9{ z_u|5fEbGdXuK zV7DOh|MDpH{|J64_)i@n@AwD(o=Ew$2;kM#81GIFm`*jo(~alpH7c;!almEdhsU_j z6T^KNAKKx^)8O$l+I#jF;0^DofUHU+<#&$*fACRQSnT}$SjbyfVTS<9SM7y-m2tns zZ1sCv&)^wouY4D{-*n(jzrjy3$P>o-D8iVJR!;(dW{8?_Rgw8<-ZJ22OWYdw(?2ci z$DZIXycQZtKTc7OWa|@QJijiE0Z%s1oyzzv9|b(s$a^1EhO&8zw?Y3R)_YGPaIfEB z&r;&k76H$0h4>@$f_EkGD4xr8QoaZ0(@>{dBl*PNQ0`&Z8`6R8V%*r94ZQgR;%yY= zI~@R?$?q|x5DzIryPDd$H6rc3t{dbd4`IB7QT`zF-t3-eugph(uYr8geDH{!zgP#{ z!}F*zUu^suxa&pO$Cvz9nEzKENB$qrapB2;o>})I&Sz0Rm429f4t^Lx`DxrAww6Qx zaLPZb7KFCls^|>AG2s~vz=0}x2>GE^|aG!-P{cn|i=u&kYc)sx- z{iH_V75}2W>6Fj88Tv#TV&_DQV;Ngsu zF+6WsX`Htl&gbj}#`k1T^1Yr+&e7eE-+s1wC^Dkq;+QpD5)3cE5WbL0t8t zA?{WK#KxP9bB1$n0Pb(BFYe;J6A%Oclz2XO1?1~rfd$0=F&BW>9YEa6q&~^q*K*zg z`z!TyspWXd{s-|Ph4_0Pfv40s*Sd!Lz;0t7_!RS&Oyj-sN7%m}qkli05B|)9=yzon zU6Kv~FJ6FlMH9bx4tT6_uCh1*{hq-0p2R=DdKtK7?9*Og9PnoxP~E4?>q-r~UqX$0 zp#x6>_cq?|uphJ9^6^Vr`e!Bky&xC;UPOK?5AvQImqyBn-`@#(mKo2fdw&4jeVtoN z25|gZsye&gIzE@7TUq@$-s@K*{y;0s8cDyZF`l2^Sp%M2V}2iXC+aPqiF$K&?UrR< zV`$gwJs8Zzf-`?h;&(Y6#Ftk=K6wV>kLbCJ`#kk-HNaI7{4VZudX1uPhcUzxsv%$9zGb_PaothC=f!H8)8(GmA@9rcC*q%XD8=l0L(YIdg#0OEVSm?$ zK*XMpG2duhO3hCWa91WydVOCmgc`wTASbE{YdD2%esZ@!C;=F4yOFj+rZ!85BrA`e`*%+Sl(Zh zK>RfA(`eXd`c}v{KYq8C6uaH_81(V#3r#B6!9Q&UUdD6U;-4cU!Q*=SPR*0SdcUSV z$tPe>(Pu#c|shkoPBuK5y}Pbo3uVn%PbMUQys_Fyigsd=65}d-CNuNKdXG zYahcrCG*Y~%&#Io1MWlq`$s~bG$a3cj^o{j&xu6OEuTW(J!7b5@FUM{&jHUf&L3`S z0$%nL{9pVnArtK?G4AP_#&tx3v5x4gy3h8X4CB3_2S)=>;=RhEXYLi?evgjO8mh3M z%k?T@(|%~|7cFQ0pOT4wOriXz$~|oP7|urx#Anw4FN;LGq~39itEF?1zeS>2D`zC? zjf{Z(i->o;A3PPikXH*&y9a>>8~5s*Nd%t7d!=&7vy1s*VY*8rV&^H$djpyG7D~N^ z(5J4ATO+>2`>g|i{&&bjM4v}C11~b}am_vi+>iI@Mw4gckHAa$UWV|T+=O~#&LYmh z+b!!_#*Kypu)pB;G-})5WjwF_6n5ro8d} z%7%-;lm1121-1uK@jt-BjrW?*alTG)w~SXe{#yZ2{%e^H5wZJ(UInBT=8hV$G)Ex%(fJVnIAc%DJ<{nt{T zjmWFx$-n*u;I-3XA2;#tub|!%V?V!#`a@eEH}7v(-J#1wp8t0m&v#B%Lq5jXUwxH+ zRZG8;_>=S>Wz1hMsqk*=nVE2U;8h-l^^YeIP zzIf0HeX5M_kCZ(M-1;1r$z!`>Zb!ZT{0@l3hX)y#{CNL>_{q&`ooCx8rWqqQjy#|D z0G?sQ`R%=dr|_JQ@PzjP9vtG<41$jfhn{)H`Ic>Yz=Mr-;wr|&$`@UlC!hNKZx`h2 zoZv4cev$r`YWSPI-C?&YB?aw@q5S-}fO|Ez9FNPDo7wWU#(FvaA@XovTI{p(67URu zpDvL6$GHEN!~Hk0L+5DdU&MQ!y(r(n^No zla1%6-QR(H$$IdM{y*Ob{fjmZ)C>}Doo@qAH0~>VsUCRKQsku=W$IqC8^GUOs2oof z^qOT2N(LVN9OhGL@3M`+v&{F+`CPu%Sl-|8OvwYom{$ZEdBrb0hmdBR zpFE)qZu^6uF%Qlg0zAuje>Qdm^vU;x=oW>uUG{Ro<_R~RQ_q|V++pPBs}=yy>5u$e z`gc??`11n5?`e$+)-pcCJ_=m&+lM*dm8=ZZg2L1K6!>F|eV8obiH3i+IScuO_Q9G* zZ4>D-xgGRzoJ0OB`wYYS0uP&s`8o~aR$?3QB=cTzXr=Cr_!4;IKkzFVcdyW|(ha}r z`5)vH=b_#L^1GOaWE*+NWyTH9P>gr+{}+}(&*CzSJF(A$+;?p}jQp*M{LxQ9KEe3z zTUZC^XPhU`%m&`X_esSLeqO+RZ$zG^{;A7s<}*#(;LoDx!i|v6 zPDPxlru=a}Zw=u7a5(YxoUeTi`@Bj2^f&zT@M!SoO&FjVe8@9o3-F2$QLpIpAD_ck z8qZ4@d`E97id}_iY{9!Jo%_*ZnE~+Kb=`n$U7wjC&b)L@sbO-Rt6g9(ec{h}$me zfBA3V{?}vtCXs*iRp6Dc!B3Kjf5~&6wZXyQCGO&UonZLwwrcSB8TQ=eg?5!RqTW*S ze9Jt_!+SPTi1%ckko_d|$tC_IpYOQ5-5Qa8Z{qoZx^^w`JKjgVp`Czx(>_Jrpr`w| z8i1-K>YwU-5XWhO@gC4vj?;SM{pd~f^LoA)ApI562>#r3v^R|QAH5X%1Rq4Z0$K0z z-H`WuvC;s>}tS;+lKi5ndbq28DqA&FWnYyQW; zt49DAd)m{D?ax`pzQMzDfJc3gd_(m4Z#nSnXW)kt2cEA5UT@r=dGv17Tl5m5u?~1ZBJ3bM+n8@RzJ_rsdj8s#?OKI6pF_I^bKa@qeSOl8 zOY^}Wu?#$-&xBjRQ@sFjQt&bN1CQB_{S(2vZUUZbumk9?+x_=h#X(~SFY<}n`*;rFK9l>hZG z?2tSkh}iij<`oqU&`0FQi~@fh-`iE&hPv$f40s;Dzo3?%y388H{xzN(j@k`8dM)gq z2yv@RcktxC1G{AsKhh6){u%VI+CI{yZ8-4a2&}UzmELx_gK;%~JmV)|t1sH@PaMZxF4uh?;uF;W*m|b( z9J{pZy0O3`_YTmKqQ74d^pETqqH*!_YUV95%v%Dg81%dfqO>5|FejX+5kfA-NfN1@E^HC;yt+;E&~gh>Z8`#lS-cpk5c{&mIKsYs|AR3p#Bj^Ro+M9`by^QaiRu2JBBIhamm9n?$ z4!hnGW1sEtJm8^8w`zWsw&~(m13b%k&VKu7;0ePq-X;J1?hx=4KGzU`=yw))@MYxT zav#@EG0;EqRrHkD|7+Sm*RcP)%mbqt55;bu(hk0c9r_MNz0LyoTL7A6op=Ix8oxs- zev+ytEZaUY#&fP#Nx(DseZ64v{J}iRe~eor(%!v{Z&@$E@;Q`WHVQlmyjMj0=b#_- zX*BZcxO(6LFQ8x4u+ruHZ@{z80hfB8Q2(Rj8~1s{KF_}fynx>kknyyI_xb+d@Od92ny$w9W*#F=}ck#SU ziE-ZM(m2?y=CzjbcFsEB5ocQF=igb-r{FuR6Z2W`yYqlo^8G|7@w8LqG4`o4l!Mv+ z=5ssrm$>l{<4>`XC--g({)kHSuk_=9DZu0Jh25f9?+1mz9mcuw4%Yy8@!lut_g}gH zU)~s^8R9u!u4X~Lk>}o3xX>l>QRts`b&&qI*kMg2@Fboum2niz`L1X<=8+8Y?Bu>y zvT-lOn@R!OK1s%Rg;p*DUbDol>-Ez=)qX{5)LZmF=#xVJ!{dR+b;CG{Q*w5hbP;%P z6CzS9<+ry2f8tu$IY&!d)(fOx;z^Q`C8*#alZ+`)A;_K*kRr(;0eZiO#YjJ*K?mo_}~8;cu*SRVH4}k znSl1Xjr#!SsP41do56T1?fvfrs)r2)xd+K4!g9 zM!n69CjmSM9!))ORsUn_lWxo-10IL|)yBF$hWVtM`K070w=u7%YK3`OnO&DB)4*TE z`=6y<(eDGV93Q0RB))~!0534-{qw*h;~6*ThYN`N%mH3WKb*1_^65>8KVeYET9X63 z+St$hWef1^qu9sGCeM8KZ>I4c`d039HuXZ@DDCRd13ZoQDTAmY?ONCqxWDnXl@EFEQ_(#w_)THH_bi~VOY4p+3oI2F8qFZ5#u-|LZi;ReR5c*ZOA zf@KYU2mEFH{<5@d;z*9)4CoW6Ygg~bKL|XUd45a zdJE#vUxHWU0C%52zsP)d?@8dH#&eDFs^PYMLKpYfH3qOBmkb7;Rm<_kaWpLzc->Ug zEB$qx@hx#5<~3>W)PEtLISf2bwyW_9@SvAQXe5UX_&gNtE#ULqdg_x!d-{wWuH~iP zcVCBmUVp4RqR4;Ke(K5Zu@(@I;rgYC>t(Uq;5_j78qeAN^T88sydQe^0pNb4;Ry-U zvoG`Nv}E9-&ssho$uOReOjN_rwtrlI<=CpEQO_IOL7(!|u$zbYD4u_dGv1#Xy#zeP zaga~qcz>=Ocp%Szs_xdM@q6I0#`%h)630#>lN9@WpcJ$9EVLg$s1m4uTGsA!z~ds( zFHYh=v41OhFLyoh_c^cSzKQYfPrr($e})TaHJq^NWXue{?67XwGI3>iTvkO zyKOwHBk(5Td82^Ge}H%!N4!oA5L>=-JLd5+_Ty>llWycuzcN3xjPKKRD}bJ1{5~mq z-?EM$0-k!4Ti57hy_;zNLSr93JqYrN#y-q9qk-4*9vCn39Px+#3C8@jPYnmVT?HM{ z-Z08r+khukB0dQI6Z6WBG&_9CvY1wSo0?y0Md2Wq}pS;L%;kp%mtNvV<`HV~Pw`05r|I^$r zYUFvsT*_C|f4pypJyVDeehK=d@m_JIhAszp(auv``rp39o7Hq<_e*i-0F5}5zuM(L zC1&H%v)%gN_-R>veg^KTLLOVIe`{H{{sp{(-(`rV-+s^?_Do+DtR-dsI(ZxL0)GEO z_;XeOuQTp9TTVaEJdJUh#d?P*$FueHH=e^TV|%lBK2y1+F70UNB;#J(2Rx{^?1K<3 zC;hdY>-So&-^I@(uVcN&{gYk#0r%PmdkRm}Bf#T~_wPC~PjK-*MrqfKK?ag* zeO)-zt@ZTNKP_v~Y{*9$_f&k&{jSEvkT0QpS_SlRT@KQSgZOFMC;ATfp~&wX1pa(u zzdbgYc3X&eD0W`?3UII6(O-q+Z&rz!-CrffIl#+X$#1N4ue61pegTM|QRLbE6mSRM zw~~I@ybgF0*R6tI*#x{W6LCiR<%25VWv-U{A(_jePq2~ig>R?+ZQNQD;jdJ~*=|=r zZA+dND}dMVy#VR2if@5OJlskJa;qwI~bZwp{x$lns@)hSD%b0iW<9@U&s5VN~!>z(>GFf#>twMIiA9_`bG--|rKzp zg}#rG9!GtCRsUnx8)U2ta^D9YJjShSl=vADN&-Xny;E&~+wH0}&SRgZ9rB7{2Wi)f zd|nW2?CXxp1CPJ4E_2e~B5KtFN|kW-doSh*L6^{v$_;e6q`Je_$58{jNxij?1Fz$I zvObjmAPac*MA#vN{Z-fuJeJ>86gxb>7JRODbH`#{7CV0%4W6i<;kV(e z_xNVu4&IwBJiVFk6)@j(Qa*v>C3z0UOA+xoVW_w1L`yq=%IEb3j8~%1%f*nd4RC7) z7kPGl1l%10T=cnZEcDFc_eoKU`d;fE;PJ&^fVC~_=-uIk0ns0P##E*C@6~1geYqr2LVxPm? zfhX^R-LfhF**@T2+<%B9zP2B5@2gw>b~(EhK(k(c0}QFy43AsQ%E#V~qEg?;j65wG;Hr zCC@1ONq)zc^Z3aQkPqhf++iil`rV(nvHneVLI0}u@DuT$5UyJrjeFJF9)^727`N6$ z?Bjh4_)CrFBlh)%cDsCxb#BdU;O@I%9|zmjt`>OU{lhil%l@jl4)s?44GT-Xqxsw+ z?s@2=nyJf5o_{DGgm@zDx{=RuQjBxg?@vO#vAiD}-lEQxF~7?027cA8x*Qn``K&DT ziwYyU%w_%%$@>*W&k*K;Tme`F=&cg|GmgpOb5U9C&ptO=&jQWfER27kK7k@ zvIuw%=VfW{kegt)T;sllYjYs);60Nv?)axDR-NanDST$-u4A$fFvm&poO-TOV)Z+)fqk;J+7kXrO!$*XiZP zI=yl;_|uGg8+tqr{>ZHu7b)bq{#oF)KL=?;=K6n z%3;8B_}p3I$zqP9CSx4EITZY*UE#ONyt)j00l0T^%k{!KHJojIvW@Qvx*i5zSBLQ~ z`rH}@Jk_|*Erj{J?=i^dbDX}r7xHQRj+n%gCuTsO<~KsMezMNpM*Amm-!G2(2fqiN z5MR}Cs>JA@>U}KEFBPNvYef3%f!`n>c>?1xg?YvI%�(uumX)!WOb!&jK$ezW7Dp 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 +Q4!?1*|wTfQgPLhv2 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%0AwqiAff0M zL=v1^?!g^+8MT8neIrhLi6k7-v_9z9$S!G#1}cMvf-&|IHwTAt^ipdq^el^Z%0A)@ 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 K^S{L*X%v$IgMOqFfj%aphQ3 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 a~XY$_1r|WYer_Ys~J~wju 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

Q<~Qkf(>4F-HZd`<=7w$?#0eeOio^J#Dmh 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

  • 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

    dc?;;Q{^)ID-yEC@qG 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 #s2J+2OfcNtPoAfj-vC-8tZR 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 Ug`)-6$Qw$ zVHt~~E}s!Uqv;eWIT)3{Oi4z$n|Bq(&Z4i;-K?bEfg=Y=PDm;i^_4FZ{nw0lRyERY zeEz05L4p39@nY@1rK)U_oJ-3(b-~MNQ(bt8h@>=Gg#m(^8~c-`?G9vcxOm)TSyV2X ze-^%c1~ELRdzFBRoT*UfRZ_4(@zH{J^520tz9+dEHv-H1#r?y?Py@Q$mt7nou6!{fISR8*APAFBf|C za7aUmqWp&uh#1R2*A>m6!j+h=c-~)6Ul)rMf=C{ ztC-Ldt57>lLSS!GYl#bJX#J`cDT>G3lgGL__(ky`{RcI}b`>rd=;mK2rN&THp5=>* zRlKgFq%zT4L^zoj0>TLU=jF+Sd$y{LP-!yD6Et)Ju@p9}i(^biAivNG2#C2(7qeb^ zU9TYdV1>rQf6MVKPiH!yt7!l>Ps%7cj{X;Z8u>n11EUKo`M_*p2PZV^6!#*U zcFuzDu(ve^3iGPPwdd~C-y>gW;7GtS(H=BoHeVylpm2b3^xgc@Os1!c#@ku%11hGhOp|Q0TH7Ggje{N|eW==4xVlN=2cXqm)KAOA#`8 z*+%p42sIZWmxH9Uz{pxD`a|9y;oLtCF2dgYD!pbA}Zzx>IfVDv;rvkWGGX)UecGjZzEe-e_f zSTPVf(CINZQ+i0n$S5z0%G*P?`l$~{)-9Xz@N4nsdmhHr&r}hDMU6|dl149&!-%;O zb~2X$5VrAWMddjS;kGB%HZ>%g4wuuOHO-%yPydl;Hhn5m+WLeOjEypWhl!$WS~p9YAe-BCRna@E=V&w|s27^K8*gpM(ao6b1Cz$)R}l5UGkhTfnKJrP%W`0ivBPn6rh9LZq@xyIHWXy9$4R#gYhYLADbvIw&KEswer-iJ*m5e_{ zFL;#%2}UMECbet3yCP-xh*fwjYl)71p{*&ab+1VmC)lrx5$Qo~#v)m7)0c9`Q-A;0Gi` zKF9=bgDabX8ei>_Ain>RRf>E2W%&F-i5NmJ-2>fPh_kUv9CNTis{aWYkc?{9Xt#Oap=XZVxH?R zQ56hkm34u1uv9wP|LaR&z(2_2QtNlj{)#s8nTUbNIo>h8%KKYZ&pW^Am3Nv*>5|<4 zO7%3PctYw>dU9cx146Aq8h6Z#@6?-*%00B+j3w@Ht0He6Dk|2-OB1chHpv!iD$uQ=ugKf~0T}Rj`CGO`B9FjVL zZ98vz%c)=E@}RE^F|F91PF6qGUyX)pBKWJ$X817h!-u7_?Mj2syG;?)PyzNNK2*y-JJgC ztUaHBW&7=V9^Dk25)NHg7}HG<9nE{Q+W#ttbNxi zLhO9LKp|gZY^Hko^2K6cL`81jK;ak zqAQ}3u$|{G=seSCou>R%DgITS3@YH)Zch-darYbr&acaYU!52Ra*sS^v3SnG2n!a; zYi##U3kiYw!G z;vPVT2@f=&@_l*AraTM-YT$`}RCr&Q5ly3H~LWKu@9pH$}A7p>m;`{)U@Bvo64afsF5XbtyMGap79;Mi2z~p{ns1O zpY}D1voJHHLg~%o;)NJCwF058z6glg0QYi;4s#sl(#x#r&@2+0pa#gFNwZ_y2Eves zcqC<@^bI+y4FInsQ(%AC_u*PtI$stz$_DzS|6%Wr&Rene_s;BjI@7p$9QKQWf0VYJ zb`%BKwrJqGSn=PD-`u;VhP{+6iU{yM$7>2{=Hf9OotmlP4(?vy6W*s#+4_q0D~J&EXtzKKM$w(oIj zTiH~?-=Ucm`MjO3!eEkbgm@6!r;Ty5;ec0lZ|3sqeGcI+OR;fjnAl#Hy27*ELQ}_Q zi$LXarw4<;wr>athOsBs^sjblYE|=_)!+V=4$4M_;T28^h1m6tTSOvwjoOW+x!d16 zK5DEj2f+WnDog{Vof(UN!9>YJ%*1TnkO=C8 zYG5AwOxI0n?3< z5kR3n3rm`pG4Mid$0@1_d7cl%ch947y}m5uxR%B2N_pbhW3$s;UezGQSi*H0UBMsr z-NqBsVgOjPN+z>+<|HE~4aZ=SBAFqbvMx?N;qaZ=XoBtpjok;2vjsoapO?}Y-L3q|%lav=^ zgDX*Ww!}DH@YZdcxsbag(KiLTPV>q zCS{>MhyF6~WG}t<1NiA?<=FL69|i~5tkTAc?qipD$=BF=#5Hq5@E}q05xdU%$+Mt7 zuTWt7Wnj3oLbzJufRhH18-a69i+dzMKEKW=G9HV@9JX$YfmgBYq+(M)aO!vFfH-Pf z$nv>tftL3P>y5F)3=fV&ZeR?c+ZW4@PN}R&_U;x}9#i^Fp5oEz#93>9tkYOjw=#H% zV4IosJ$JMMvNyftNERn1YQ+cZfTI~UOE{a$&%;222}8LY2dlxqBfA!8rY6>8h#CN; zDp!usf`@=>I#dSN_xMfTC#n0(6Kc+s+$L3|0v+oVtJe`0RgMjOJ_Yu@^I$AFUYw)* zVT-8nsPojYj-D4;;&aq+qqw+^YMyoe)S&7)jR$5o>TZv?(^dv_#PBTT-=+$@6?HNQ zEupGYxBMv9c*FV@M!|5Wa=SLJ>5w?LwkakLz{!=y_5SVsWSB2(o#g>3b~df&KnJp` zZ#^Ra-{vGqLm)23?|<)|p!}+H`a9-EE&oLg+(`L>CBtQZKI?qA(4DC_OddjF(%;A9 zF6z!j15jWISE9T|xQ!~Q^%}0NMGhN7SiWKeEpn^Sq3N-%Sp}28pQQzpLfpI;`$&Wc z-z;G{I1_A?z?WRJs|IvlDP{9ed44swD@?@5WDY-O$0=1EDGL83buZVa3j=OD_ZfJ} zjAf$Q@;#YTMgNJeDY=Ehz;58FgMq0XsO=LF{RTlM{49!g{^ixM=2gwrqF``hElWQt zzQk$}U~Ivc~<6E`DJ zXv8Lr!l$JI`<7bGoM?KH@-ITPuzXaRBtxe+EKUt=Bn2jqm0ijq~1&@9dBfIHP$ zmZkZPSF3mE?t(&G`;^IJ7QHwm$)k1x={uRklCBj^>qFUoFAq4~M>E@#h8;_!H&4x* zwl>H4G8(+O@Z}7z(aD~2GZ%F%EGQXDQ~scTO$uJKtYr@z4V>1zH_03v;0Gg_F{%*0 zWw>=2Tvu&Lveo$cU|VSLwHBNjWPk;#d+J@=)+S&A0??^~>K(x@F?>HlempL0g{MdL z8X<>5;qq}|#K-JLpPG0LJtZEY1g2%AC#+`Kv*{e8uN`)q;{P(c`i|Y;GgAxs&c}%0 z!>QU2@(SDWpoA-oJMM5%SI_OKbe@7^TCXjYt=1i}(h)_cy-(&aGPAZ!tGk zhQan(yblH5_8s{L1E`jgdn>Wk4Gn`^1ucB4*{x@*US&k*xOPeZXMjf(7ZL?6QY-*$ zr4&q3JjbRXmSfCf!;ig;)*HXTuvPc+#O#fdq_W{wBgIgWGyP&emeHe4u}m|ZX##>m>^yj*t=}02U99@8 z$d#_VKWWlG42N-7ZJ3R+TO$^&e>d(`9fjuCTB`!R@dHg_yiLa zQ~Q7x>av6^WHpepWr0k5=leii(xybGuw25*sNg_h_0Lp+av4ItT8*O>3aLydaHFX( zxbBxPuwJg(T?}(JTZ`|g05;(}Ri_Ak8wr`01s{D=NNF<9bZp9ZK*ON1-9PIPi5snd zP%Nl7$_out_aaM$&#k{*a!{;AiKjd=O0RFidDSxr+kXTpD?XSWdSb7CD_8Pq=ERPT zOclLFA7uNUWIh+oecoV=O3T-N))dRzm(-Xlv=ss{;3MV_AAp;#5WLww&f^*Vyrp_2 z9kkS6T6B|Rdx7i`#rn*QkAIJ z^NrF8#z7sK#snU!BdR;RvgH^nDD%O$9OtuRixsJ_k==r0fEhnag$;-{IXh(VHsV)HpJ`cKi9G7I( zciPf1bHSk2+Cyr}lc2#RcN(mDu*cuk@?ox9zq{+Bgz#AhufC+Y0aOHRK2u&~_QwOC zDdm=|?-9#jJPk^`F6v7kGO=`KI-SuKhJasC8c=B^|oY z)`{5%7XUSRGtz>~1~B{rQ}?URU6EN0-fB7!@S>y?*78}e-MA>2tmy8JCBPBb9u_}I zVl8rUisg)@s65y-0L?KiRJ`{$XA5$%PI&0dtBoaKDRek#53vmDpX>9K}n)E3yuh))={+ibq`JP{PsU-fcENvV~GQdaZyyy08=_kZkZ- z1i`C>pO16ka1&P42M_MnGdhy{Ot)L(Vbb#`um0UJLwq!h!!Hgh$Qm^F8+0Vc24L=f zomP1^x|3YHsJpGKlAl#?!F2ONZQs5yNloScB|Y?K7=WckjKDn@X-)eC|0waY@Ul$1 zn2~pT7wF>~$2gDn9MqJ3SKZfW=|bx-+?{WtRS00w4R&d}6DEl+c;vREa2|>qmi;(B zt*hTn!p<7kBO_qxGU@e?N>2897txoeX4Fw2*DQRxc z*}kx>zo0AaI(1dc29!Fy)q=}$8!Ew`FSL$qBEzHp_naTDR#JJ|>dL%3`M&;ezyp)S zKTF;*2u(oGhEnaIs|xgyAbKjR+1E|<-fIe8aAvUwVt+m?caAJkz36gG3`Ah2Xkq3sFp+*h4xPoF4LXV%?%+1EqP>N79KK60Uy z-!Lmu*|Fdr(ADcHMEv(5x>ST_F#Rg6LM%BcGX7SMWWAu?u8%bmr|V5cu^~d;S$&L<=BoZd z_i9U5UQ%>S>R4|uGZvbjwI^|e{ACaa5sqlF$!sXp_%1ZP z%BGmgjNOz;7)~@gx5yS|Qe?9?-A*7QP|SLdVq_v&q^_kW*Na$`tz@pU?NEG@PC)l) zEk6=Oip#F6Ur;}HFUO~PA+(e*-RsOchsM=Y%M<0;`)op#C3BTO!LR=JQK=T^Wch(_ zAjzWn(-4)37mmm&SnoIY3bJX9f@V=*Kdk=?qkdAmW2|m z_xmC5wYzJ&Y%AL&l2FLPDehV98kFa(lnc*A86G*IKyAD5Pqn`$M_>!QC0d);LOP(c z*R%u-Q=lp(;`V+`TH7Qj{&J>Ng*Nu%beupR(!!xl*9?F4dt|%otmo=acH;#cD4D&g z$Gqf*5656G86#v{u^z^#jZMBE8<-+;Prqmn#%bH)KZCn%W&sA$P*G1f^wE*SIExdY zM$#hGck+l|IL^HBc`!QOs^GsU<(t&wOMKf7ZL~fs&40}mK%p+jZZ7o1BKsuJ5&ML0 z+M{7vn)zlx)I&K!=8ZQ?OUHrwDS;PdKFe-WO!@g1Y;mqIj|?mBVlg2oa~9CqkM=xB z@zIK(qreLa#che4nhBK)-7DmDp)Y!v0GjoR>kE>pAW)@+C3+(|`uB9CyAFKLq^vL% z+4s2P+s&ESJWfZ%i@HUW)CB3?XwrPn=5j~Zw|F)SrUi3wTf0*8)t+sPvte6upMFr+ z)e{E56)YU>l{}l$$+DDuNm{ffMeMJ8857xjWI95%)$2l0&U4MLsGhOjpgtj>cdU77 zwxyDq1euo0-WMTBTo|o&$Rs3@7z?LEJw>&JUgzacq$oIYn$a_aj zDpaB2spv}%<<%MtlfZdVPnh%1+a_?G6Fpr;h%bdYIyo}yusXCsrGJ_8xwLTBW}nk4v>Xg$SzX$E1OQdTNF! z){*8f;a{yAEiU~N+6dBEbSZR~4KWw zvk++|y&NC!kx0XHAT&D4O7O0uob$+qdH;w`%h-m>g289`p!_-;T9Eb0yd!p>e8Rir zB}$`Z(u(>l>)x(C;}2!@O1raiB0+hBDf%qMT} z9~9I4zE%kd?^;sEt`0A$b#913yZ8P&rVR!*uTshqmxaMjkgKB)h*H#%Cu{!}EKeW+wvJ`de{BXA=gk+~%s* z9wI~*Lw3j7C^V?h;BK0*ztd`_oJEI_S3fGVHI6H8&L`||7&!7ma%*L*K2XXL zQ+zhxN*%!WW66fTL~Plv7BJfnh6R-=O}7x4ahkUs>a5kOPcups@6d&v8rijSh zv=i#+E@J?p0i7Jw|5^2C?}}R~H&wh=RE?%S8lxIQIg?~(u&5K~fky;tylw^&cWmv` zZ)KyPXO2JIBEE@PCsCKi3c_vIPS!qt#(yCiqQFt+LaOg|&_+3=I}B0c=VnE(BtGE- z3KU}S=$!^Q+}+<`=>LT>pfjO}ld z`m1-_b$OB1wvXYWM?ct(MW}i6@_{)wCTnt0e|#qD1}0uS%RU$}b8}=aJr-wUv4a8a z*sha+0e;bhiPy-$O`|(yy6``t;uFEQaPUjexa|A$+R4S+D~4iA4QV{Eye*&Culu}Q zRiuXJcC6Cqc+DI&Oot;7IfuhzJSlI}gVs(g7Bany3d3%j@T5`*hx}FUe64hEtj|4g z_(lHR*mMg~$3__+|G<#y5RN4l++XS*=9@ddA{=ZKI?d+NX-=jt>%#$id=_qC`C_AA~Ph8r(| zyon)@TO5?TV@|`uEUS&CQl^`;($ut>!^~Kg_6fp50%4ZCrV*L%@Xv#c@$rm3hPd0}UGOLac}W3>$ogJTtO$5easlF6B~gnM>MxZc?&R|iq| z_X72xtxK+lEOd8d+Z;qA)O+=Ti@Yf`D9Y|O#CYo5Xl3rg5TCB@G;d-_zMa#*v?~Kg zWKqYdyf`;^;NGJE%xJzu$a?Q=itJo3?to=VAer*CdqR1PkEeiJ0enJ z{&#*sxKSpiKW*F2RfexWJ}m*)>WI%De_I6k!Y+^np)0h#cm(jm!|uWXhg-l>6hOm* zQM^>Dx!u9NX|J~jLM*i`BQh;t+i891kc=LX+bBZrj?&PV6NBD-=^LtAYy|tB!{EdL z^)PdapEPXfR7P)o6K=ff`QCF0pmLJBLUNUf&z9PUyA;Nl-jMxarmr#fO)VthcyYo= z=8D=VpzdEyta=F!9sVrbs-o^2*pmnORD#rPK;rZ`y%tOOHn3lX4e)baO+p^g3?vv@ z2kK65`{koLx0cB5r9Rp|)~dkL{st>twU;{f%P9&^0J))4T`7w69}iqDX@`z>4rv$K zKxr*z5OFbe7+1)(6-U;b7KSuiciP$?w_J06KVbH@SqyQUya`FkZn2nEYv`38{ zs4A=JtC`ntRkJv-C&C(1i-DDK5d@o{$3Ey|DID2|Q4i}yT{<0+7LuurRYNheqr{A7 z*1G83AVxl@e_Yn|jB~nbDC5&?%Pn0%lA&884b@N^9uxz7%zf#JEdB^^^C`3w2(9{_ z!U}O8Owl_LFRn1RAqf5laC*xzGN$@bX4R}G@mF#_kanNX_kEx$h&r&vC|N_zxv3F) zSRCa~iRG@Ii<&{IQmeMdbCDoFa(t6t7eF@O%hMoO3}UQUF*I_gzA?^^mQi zz+p%ic`qbUbNgE0gOMckT0~BGG(aansgSG_^0*#%0DO(7-$AMPiBHL>~^7GC5e5Q;5Rki7`EFo_}v$~4^ORvns!!^)lI=K3` zmY?d?t$*3xoSNO#OvK2>Q8A?9g$G9@-r5m(8}r6@y3D4_$RmDf;7#n77hTGmFtHB$ z{+#=4!ho3=!W|EByg;UN#p#XVL@!HMfEzu%)~)^CQTbv%5AZ7gI9eQYEZof{ck%Nd z%O;ZsZOB!uUn&x4@mvT{OQDt_hg}#iVCES_qrxr)8602-cV8Qq7dJH=t|3kbX6E0P zWal3&xr~hzDXYCABfC{!5-zGh2dMsDA090JhD?tFrpF-r>7ot_(sJp0ir5|MFG=Ys z80Xgx!f1_h<{;mndg+o4m|sgwu!JlgqkcbjXX#m)@AAUtp&V=_usr%cD@t#Joa2*1 z+dS9T9x7HG0G#h;f@S{~K*B6nr9cQj7G$VEPqx?q3Xq(7C;H5)iV}(3AefsbadZ?e zO>dEXLMkM`6+zfQNEm=uT6F^Ssxoj(qmpuQ(Cok8cRx-q-OKK1mx&#}Jm}%G5BMKv zW?6zJ08wQ>{!5F1?nfotR)<`J~d z6uSq!d$%h|rD+?#y0&zcvQ{}!FN(6q?U=)DdxDVC3ZJ$@IG6yTUQ@A#N&I@}vNCpD zZJpYkU>UOa1H%-lr&)KvI8)I~wcydUj^B{7uZSYq8>7>mJr0+Vy^MbiGTPku zlEqzrq-9G}WzmO?3xFv8V@Gq{Lx55)8KX)S)Yy+7Un=`t!Cf*GyL&Ahp8()5Lp$RnoWOS<7#|p_CIHeLn_-< zP6weSmH3OlmE`nl20p?E7l?T z;-Jtl;*6mGff;}$P%h>_B`%Zir^HIP({~-!EMq4n2}UHtuQ?SbQrq-hC38hu#d6R5 zH{3+LnP?azgwU)7>!f}4qV|!YmST$B{*L8=zwak1WDbqI`}LH3k3nf(e-f%^0QDRD9_cqSt%|pMeWv|FyrOajRn)40>~AjiN)x6QiF}taz#5> z2cPz=(N>Ys!^U%*i^^&_DhX#x1CdY#Irv@IpE;_=zA|<|SoFK+raHFu)ktR4UZ>~z zg%~5t-(wlNOkwsSw9)3hcSl$Ug-F9Mm=s&Xbg6Kpl1aiMJj=GyrHyoHPaLe3^;1j^ zB%dhxoQ#FQI*h*B2C7&gCmo$0aGL>!)WZB4&o=%^V}n01$(EU|AS5Fi1eel>kM3EG z(g5|1uNa-~SK88lxU7ZVfz=)}p)VuXMdlwINnPCNdj~>Sz-ip%s zU_s3=r8zLjffRhMX)fQFRkvsW@O7fTy`^Z^u=HgG5Y%7+dZ68sP9oSA2lg>$i-ktJDRfz+s-v4?&d9H)nw)h^mEr@(2(mPs zr1(P|6>YO;lc7_F%>CC-hieHJBaNwGFG(mShn+ovuO@Iw-MP+1ZFt4w0%(72SKl;r+G6>50l%pT^pihRPnl*pa8 zWlqmpfIFqVyumvx-m3D7F0t(upXqk2LBgMx*daz?CyA<;=1_C!w42I6eZudzuzOK= zqo?b`v1?#`^C6Q9Z%Vm(^P7&(0$4Z9Yc~EIK}95&Zfe|tYZ4Ys=$`~mLv8{wy%|4HR!5YaALzfa51+H;r=k$e+O2M zmcR)TLm!K6FbSi#{vb%@VgHJIAW|DDEA1xYLET&{?-k; z=%HA`%W*c`Yl%Pc0OSWwCGqK1)Mm=?$5wY?#`IkPAAdR05 zyKbo#bb?!QCa{`JK2>l;Wex;o2>Re(cie{XP#tKtpkfB|A3fimyTnLsN(|td6O;7s z>J*|<>D0~#1&`Bx&(;6{E6h=31m`iL=|Cj(Wzz67O*;DCtwE~mkamAibtXz=_{@xC z=axY~Dz(2|3A0vcig8}-`$*I(QA+b?kfuVz=F=5ih#r;r2EEfHmEHRVYR@d$Zh~VH`R`NIgA$}zy;Y)pzRm-Zv)nfZbH!E^zs|#=^hvJ%hCpm>{718g&pV(B zIUX1u!;AWP6%qOoza&wTW2fUV$RtuDK|SNW$l;)hZITlBg*E(oZt&Jp9m|4>_$;JlAw5__hPRX3Z9k)^&t#STG?86$d4_*?PnfB1Z5n{|E0!uTe<1FC~6E< znmnP`BQiR|_d3x;H~1V8MVG>MTG2bvr>lu^b*g0epkgvo0O-R14y)`sXyFZF91bK{`P&Z-1ow=9rz_hf z?iOH^!XL8JCv!oRO$q{M$0^TRllk=EnmGzFTmOyZP`C#|O^2A31CqsH<`w9YkLoqw z>#hYmSemZzW7=i1T>&`<@c!T_*1DWqut?V$BO>M2leQmn`BFVhbm1cyOI7?AZj9P6 zUm4Y^s&eYiQj@<%ngd2u+RTjVXUe+_eF2DTY*L|o`{qh5nd0C2(2vW)`H0FX#-vKs z42IfgsNI~Qie}s-G|PD0=|OU@muLi}wUOwvw^`dU(UcW*wIXByqnOoU5DjCu8H()3 zb_=o!i}HBh{C7TtA5*^K%qm4eAETnvWmKUVe}Xb0(&eVz34YOUe*nO;%tGRsC^J|v zTFYD>tg<5aqk^#`()9v^yPFPCe}`xQ1;q1sy|12|<$p8i1BSYr0bI^P%Dh|&aV5&b zIcU6L$P^~d%|_O%>%Yr_y$y^~*0Fv&L{#qt5Ez6Ju$|5b{n-P|X}edZ#&1!!d9e2{ zg=ZVJr%+k2k_ut%3Setrj#kxbU>?S@~8KcvW6~j=CKU{-e!(JlOuTg4$Wph!dD&$Vk&EJkAbNKT$Cp z^C|wm^F&Zh$V;NF)%e(N99=$$%?vV`^U;=ca9Z%mSJM-7a-S(H+Y`6q=$vS<>Z6&` zq^}Bvs>3dWxp<_d>KMHRnkD{CuuoTxbKrKn2U;=ij@9d22Mr1*D()$=9P8d!<01*x z{6BTv9}(Y51F^OMW4{+l`HAEdnlrsP8WL<1i8Zk_FWO~fI|NTK@E;sRr2gomMK|il zdNg|Kdgd(A9py2fx=An##j21Lt_D3Ec9i8WnhNE#D6-h338&KXMi$6<49= zPm>a-08JdfJ)xTCY|Y}58hR8oVhL$HWG)mAr87e^^(kF|(*^>~Tgq9|rIMdsRT!X~vVNm|@|( zYlcmCOfu-F+EhKAb8Dm;RszO3%Z0k?#!tx9ZF&^(sW6K+hUneRw!Nh~)Y{;q7PSQ_8Zbt+F7WL$rO$Hvcd%yr)X0gagx#Gb$_M7K#G zpy4~J*>+?IH}dCV+>yKxqnsk817A7I4M7W$dwFs0CAti+e!hry9uR{T{xNMgxdmh+QK6W1g_9|SLVEhL& zOa*?EqEXL$=73#~c!ux}mc3W{DnlJ=ZH>Rar!k#G+$uO5${i#RhsIe%l4rZRVqLa-H$jem@7wq?!xj__4^O`sHH} zL4?lVYH3_41cxuFA@x^7goeZ|brZ6I8=cZ38?hh5)ty4lwSOOKO%O~@O+klxs@`zF z>j$og(eT`K9#8VhT!yHGJsj;Mzl8X9OuZKRfxWEMWEQ4EQR$J^lWLW z6DE<1ZVgi#v3-y8v-@VmSalYG2?_Zk_j*YK=g6jvc2cLY_9_n({mXhbVb)wh&~NYB zvc2z-e_N(^u6Jq;C+kf0FVcdeI$i9^H~`c=bjW>-wVp%~9gG>Jx|xp=QK!G-sVnTm zW9*JmLlgx%#t!=E+IK)-(n}GwQ3KZX$52iyhRT(fk2@QyEuAYWM`!zUKY>U4b_6ll ze*s7ZiV;r!BWkT)MJA$25{=JQ`_wJYio~$na_nUV)4m>s@PTw`beS+$Oq{1nzyzP$ z#<<2yA|D? z`L4fZzWxgfMRO{{KAa1J1S&Ftdf$V){0>LzSIjQ^!8b@^b}BeN8Y*YRUG4JxSV_L` z9E4VwPBJsJqHM{g!gqCKqTD1XU630GQ$1pU4DT003%Z037Nf3Eqy+6y_|GTOI}5Q_ zJCzI1Zqz?aWppuka2!_UKZPpWa(B*XIvI8TOh(b5Fu>x;pzs!<`zJeLLw~KUcio;5 z{6<%lVA7kEjwMMC78h|kH7k{$ca*1%-8O!*t(erFVKnIiv94$I>X^N3cZX7_NLtNl z$#*f?)zSJ|nKtBj1ZO8vhmy;3sa^j~cCTU#8XFU~FCJ(U#|2|=7^K~EkH#O5t1W_W zoWKza!d;+`9lfOd1)l3bDtQ>(YVSH%I^DaG=Pix8c8d-VTC|}iRdCL8%Hq#PmLc?r zyUObijT^!uHB7ys?(XbP`@^}wk}xj?#@~-`K3L6zMU%x#^yR+z3BKRdi@kF7sJ{u9 zz;1sW#%=ETT9`vfNrsa7%&NunZwLGhEm%@jG;qC7sHVBI;ZFpB9L-l!lwgU_Dg&)u z8dUZ2XzCw1T&XMDZs`6;+Bq&~!mLp=wr$(CH8Cf)ZQFTc+qP}nb|$v% zM^|_6{j9}mi?#qu`AJ2w7L>{&W=Lqlcv*+_5UnwyO~(b=Of&-9SVfrG_CP{}6G_Nc z=T8l7HhafBodxwkeJe55R^`zVq!MYd%CXU-+S(SDgMELkI(u&D7H>y0u*SJY(D`~e zG~E5uH?xa)aVI#Z5?1Ya+CaUvxtT)4PU7=;bRW z6NCcv2a!o9;#l0qf%te{jNS|Oy#587yP7)gn^8$dr1DdhF&*ekQ@4Z_mHS>9<_j@x zHqbVQFA4{TU}W?mQC<eEDJJsx{I%3MC(>0R5S_TNzd|NjvDRw1x#Z8Oj&+*4yyU= zs?Hp|Tj&KGV)Pw1H2I3bz{%%TnepKcRg^4Fjctfp@v{IG*nVwxQ-_MC0G$QQ!*;9h zQo0JbOH@R?7&5EZAJ_pm!@e__f7HEY2nYoVB16o)v8SOChDRUMT5__<6SjRRS{OTv zZ$1yt!w0+n7tzYBh__x`-C$2O*ngs;%%q$)XsN#)MxD*Hxt+NVhn|_rhzs~Edu4a< zkY5v2UMb>xd~hZ{j0dvG_%>*c6ydA7r&AM{i995uWSk!fbC8$5E)TirsmSsGcm3s0 zcL*uVfj>n=^Vxkh2;C1rnQm|UbFjF1e@O)PN|5Bcpj1LIeZN5XQuI-0=llk8lTYlg zO;<|HzO2Lqzt^3amX>f6X%!&U$hfv2HTgod0R%e~Ocyv-u9Si8c(dkR9Somnu-SECpNQcs*bZvMyD7=y>ecXweyGZb;g^)qMqL49= zK5arRPX6n8b_|C{sKdTJRt%sT-0wpA{>XE>vz2#QZcbIFifpQ}c3>iZnW|meCSM~^ zNig6~54jFIm%zlUc-Mwb249rqi`LewVKAiSk_44HoZmfzuf_^xQUOW(Np2~#>38z# z{IS|@@L$gowbNq_IL*&A)f~2Gz#w{qRa9&L>8d$u=D~Rig8xI9F3J#VBQ%xR$N9ul;e97@jhq^&Uq^ZLn_gX~k2GYg zmQ03&u>IN&N&5IH1qZ}>!9jr{NdV`dI{XzGP~;h7Yo za!pOB8X_B5N%-_!=F(RgHji@FjATnSNGLzof8$i${78-Y*O!W*V?pr8!ol%P=RQ-U zcV_IbLdZt@Uv)Mn`XGWR^I&eS%UOggGN2`<#dMnyw4|(zmZHCD4XS``!8jT~{N(n> z;}Q_tV)#jt7!kmEwNDp4NsfN4tdWz)KpC&%;iENvXQ`s^(KsgGdVPF*1R7B6N9|+8 zGU$L z@FV_+k`VZzB~9#z(a$Q2>EgK|)essjsQmf(c};IOIPGs3@i(Oo%QN7_K4V1(9U3Gy zM~BW_7*caIC{4iZ96OOB__O*PQ+i8Ig~$MZtL_ z%kQC9_RG;FyJN9gnY0ahJvA}qO-m;*5B>fHFOUTEInvyAMv%NJBgtGsifZ9zY}S{K zMN~c0Kyc=jDb^g-j7>zX%7#X&j8Fu}V8H^b4h{D7B^WvnunM1G!X=ZyP@yj(`8k+k zV|#7VnKH0b)W{?$rCLFE8bn6aB6CJ}^~2J4O|F8oTz7cZ%K}RYw5S>WPCmKQMWYJq zS~a<;z*pF7TcqENz=`TNe{Wm^NamwOriObi5RfzbH%+p-di|Myad@4KLEBc7{+ z9AO|+EC;fDEX-9{KbwPp<_25zA7@-XgrC?W5R#r)i1sexQy$HKi*WfD=(5B7WGt*_ z_Cymud#*|x?t-9)<%-Ig8j#QBXLd!3bbZpIn7zaH@GeNF`#)V+k+&mQg5nG3?zVk| zbM?qvtNfjZOXTds62Gdwsj@RJg5OrdxB_Ho3!&jkt0314aQl1*v$v)aYe6zAJ;Bvm z{hSUD1H7b{!h)spr>=l&x&R_acJ}K$i;~s17<3+kIw#h~5%{GsuMl;}OY4FdKWOx{DA(Hjj0{+lIarXJc-GWCm+}OS1Jv~{( zh>_{pJk@G7a(cIZ*D0v#AA2=SpD;63B;i6FA3Eb=%Xa4`_#km~hK|))6~BsbEttFr z6R+@MkaKC0Iu$Y+T5mNe8F1gWg-0dcYjidT{22gnwUm3Q{xSAg0yEv*JvYJ4P5_7h z`D#1a&5wFJ_4tJxP{Yf%le{;G(&d*>)S@V8*dHE!NSSx25Gtnx&t3iZq=2Jd7a9BM z()){&B#wmHL95Rtig+@6lF*VzB{cd^cQ@S==^rY}C3~i8DJi5C0CTO5Knj6$kzl=I zNQpTqU{QiYM31paIguWg{`5&_)LZKFX*7E?QOCvB%K~Z!^XZUSoeLunC&Io4_5kkJ z+_@0)O7ag@VB8&hymT>!=ec!9jG#8_T9w~b>m$q>`_qt7(r8urv)_DsjGFH#O5n{2 zM}<&ATuz@(aw#i%2=LLT$ARBYIGiT32KsW1D@A{PdMJ)`x!HM7hd)81YAL9^HJi4A z6&??Ycq}JvApH36@|e@0ZCi#7>5F&T$Ag9+$~}@i&vDmxhE?2WD2HZ1yMX=YOewO0 z1ao2*{AJ*5Mm&GbfQDPHL;C8@nuP&M?;j1-*!0S+UOLv4v`)AtUL7bFPk%p}2k=B{ z?O-S(9-K?AUTQLa&o(z@YerevxgsxELEyfD_D5JAK~MV;-~|z5jIRv}p2U4$i2lyx z(anfI?SRP9d22(_PTgTAR3C4K3CtY;ybT7H*5=Vb(U-y|qZ~3lc$1~-p`lj8u(W-{ z`OIk5STI^gEbngk2BHUVEiaC{iS=gKBRMI3h_q{mLm^RJ@h5`W-3JCx5`2~&<46dS zpr{)OtVnWQs3i-i@+GtAMYy3RT~7l_Q*5HbVD&z^lQhIAeJ`(XDD zMGomdr_6PYvlqW!@H!ubyD4|jOqabq+fH`j|3-Aq#FTfYs{n)>6L~oQaJT-=o?{hW zc*mwm4u2`PSI`2*;(zMCwAWmkN#u{7PmGj`dbB1+fh_rkZ?J5TfL|ygaVbHnE!gg; zw!H-Z_u%(}tyX}6(?dR$?ga!}ewmS`p>x_eiM)uU!azu&X{Qc({dD{+8JK5zP@ZI2<6>QKsnAiMj8=(SFHm?cX>AZFxOQHvY%ofFk+}qSgh3!Tz z$_u^VuvxHX)r!5>WXz1JnxmN^xm%kGhE&;<)=>+hyz6Bejr*<39p+PdJ4tIOq&Swp zW&1V)zKhyKd)d_WL-?9Rlm#;Syv|ory%(#_aPGB0>{g3)k=T`ol)-0uqSNmB&;5YwTMwK?+rCx)4Kr?<9Z7cu~(#s2w3_BSwYF8D{{ojd;9g>AS<72WB@|s znM7?L+cOKH*3_=GdccJLzv+oW{HN`bG@#UgFPzeFBww0$sE z=_q&8av4l{8Ug-Z&`z3yy|K3&IWiSUK$iDq*OSDJcbhu|` z7!LG+Lq<{K+{yq=PiH8}Ys54ZZ@4X+j~ykT%O_1V+|}(ITfi%i{}HaY(CZ*4yQ*-o zztYH`;0^Kw`pdKpHz{Z}<9eiUZ!Wb--T;O z2hR^v+2F)?RnC_w`7zVuvRn)np*mODyWvM%J)~>S9b9)2_R#GYaXoC+(Ie zw~XNeMvD$CY>l;Iz2hP7UDi?YD~jBI+Hu?4M^zC3>X!HEzsr3*E&NPokB3O(`XXig z4hym9X60EKR?Ozsvk2KOd~$wRMO_kacgko&Vh}Yp+L>%X7K;Y#fKGv?uXESFd_>*t zswZ+Wm%+k)!%a&ype|Xu)-y`b4|gR4{HLEmOYbQ-Kc0a;srxH_yLSoPr8#H*^w^%o z30gPb+|RiT=sR7RdluF z)-WJUN29Z@!jli_L{GT3Y`JS6a|2)MNBj>?aG?#jhJhjl@jfMAq$>a3#cA~J@M z@qf}x_o58VbMa_@JwI!n{uY6gAKfl^TaZyaBuUVld$vI>HZwC9ha2rv#jX4Lsu|Q2 zBxKfi9@1 z6+wdqc;4H_oCxaGfmx9oMlV{5@O zslZ|8oIw94z{&0C`y!+j%I|*)maQ^TE4A{Qebq#1<}cVh@cN5*${(@+#Z^+)^=y%? z#bJ)dOxna5hleDpJ!~(wObFi?I}JkmAIFs=D`mG>g4h|{ARBKrybxKyOvjfejzW~S z2C$lzjaXgIK-;#iB)2*=(p%7E$3h?MFS^Hw_!Z}G6!hABA19BBXbdubHuO&9Mdnsf z5R%KF2kaCW%s~t+kMiSCj1oK^clhBrI$4x+gyOM%@h`uxY{kRe%UZQ6cHJn~}gkEX~X z=gUi*F#7zyxkx)!oXvY^Sr1TOp#uP-km;y_XF+`AfQO_w5R4gEHK}Y5p5P-U<30$p zdx=|`L^ht$zOnjw)_#P65yP~eT)5ymR9_xciChNozp8T#D*>nVo@dDT!@oVCd>}pF zQ{z9pFw_Q#U3as~(FoA*_7F^mrWC%sZtcPVFmkbDw3RdGGZn#pWBuEbAf7tg^hCD-J77v zi@Sxo6cHM712ZiD_Os}bDADJAtBZ`->w&GopPXX2=Cb(D9d4F+AVV8WCv==t=Rj3v zsN=Z&YiZ}%@PNS9Q*3Viv{00oAmZj_syHeCY+>}sRd~Jv=%lmKctITK>eWcQ?KWdHRY#t%B;;=(<&Sqetvt1SH59u#L9W@gU&nri$YHg>6@6x`>}1eO+Wr zFXJTZKR=c*@?sB~3>m^E?Vu%c$;oqu7Tp)vlN;cu)lDq%uQ+{4H8&kyv&z`~>*23` zLm&3i%;N8!?Y&*+#k}d}nQw|&|NPP3^cMbyn_&{4Qnc))hH>8l$T9I5w#K{9Xk*TC zGAZG3ktxf)g<-z@%#_agq_UU{LoV>VC>MXotj^7X!Rva6>3)O=Zl0_l3dzr*py`3! zSKuR>k!Y1uW9iD6waL>rsSD)dNsE=2WluC5a}8FS7Uty_2iL98J?9)!rdOT? z&s(T==mXosWWkPUElau5?|tCNe$-405cOzBXoniHdzl5~NN&O`>b5?AuZ?`p#+oJoqhHCkmg3!`lU*0Lqc<_SdA-jX z!>NpZh3V==<^08~sDhZ`G^5<%#G!5w{pUIU7547NHP0dWY8_3e{>=7=Hy6fWnjh6N77DnwKhss6Y#jR@2W^UYxfC&K@GO~@Q zO3cf@x-Y*8L0$LbT>*TbxRu`Er6-aZ-|}M!Go?ekCu`jMuo;g|DzZz!CeTw{EQ{$8 zkB_s(1&-AOe}AFK%jlIpqT)D72(Fg3e9dTWe$;}?lf*Oqc`f)no+haA(tB%0o9uv0 zKw@c2lbKk3B0!3WofFEHAEHk-PWf4zVvA6hPjAajTTChHSk+5Bv8J!b@?y;-iU+=8 zjR$e65cCx@;a7CBGSf90l9=qX;eVKq3)&8Qv*TtT7&Oa`s0u6R{rJF3VKurAhQzO` zjoM7}kvf7)s1!=kS*IuDTD9Oxqup893JrV58f-^XJKmFc^9=hEMY+6;dtm<*DlM(l zUbW;Eeb5Ch|JU7VuC^82bA+Umb$?56B6n{LgJkZdV#Dk7^f~dhKyQ`SLieI)kYyOe zFR=S>!X3YCje>mvlzqVuxG^xD|+bAsnnyY2BeS$%PeXh1h% z!z700>~wH+F_itm2Jxz#p%djR7XD95s-nJLAXj27?p6>e!gGcV!ARgvRXdtkTRq)W zpx=yNU7?7Xq5Ml(jDs6HpvHYqc}$Rov!?7j)br>SAy=igLU&(_@A~hSY;#shLZb=& zbt^P6&8#%o_G^GSjd5@35t7#)99WPh%^5^b_msV=g`3{m(8)zF4&I1NmKYv0GUvk%t_>F8+;C-yY+=P+L;HK-L5^vy6mk1CJQ>C%DUZ)OxG zEc!jOzXJ71MauO?6Y=Je$d(@v$LM$4-mezqLa)!kUpT&`6Cq9ya0|mQfqoyCR&2N% z@}+(kKy$Am6oNZbI!T$OjJ@fVDk#3QM#92!4rG2hUTyJs$VA$I7ZOAm8-Qac!fNQITJNd3-{?iI4qR;qCAtFh(Jb4V*Y`nItJ3RcM5ehC!Oq1kbEQ03l~vBw@Sugv3>Cx-mx+Ip(f36ken%4#|Au%$Os~Cg zJ|14#UTND)s`I5Zo|OZaJ45rc#V>y*#IGnQZC}IuL!6Q|nVro3?Qtg5d}x=($H7@c zWA!`J*{{fon!wQ9TA7aA>k1pbH-!yBOY#f9JFGwju^d?fgT?oo6LMt~R4nveCIDzyI) zK<#r~R5NZwK!_>>sAl`feD*t|pYv3qF|s2(V4Ypt@UlfRLTh(VoiAJV)M-!Y-nY@U zK$%8E%;IuE(pkrx0JS~EgP|TUBiw2cMg8h61`Zr({J72j7=#&VRYaNIfh@wpj$P|UA$9bk z`yHTRcL2+%n~xSzxb$ZNBoZf`&XcRrkJePXC$<0C7n$)?b2bvyp^rD&O=`YtBHTSV zQH+c($sZ9Ita(~+cW^FqOe&O$Z1R2UB~V-`HBeGFWPyQ%Rxi2L^?lR4X3Z;eFT`c0EHA!k`gaNPz{vObfYTmsWjH;wmst*Oj*jC&}RNgvn;$HZNz4(T$!e-5rj zdv<6?Bc+!>(gR0ry0l{F-rhDs4%7I2&^G>h)ZeXh{f@C$EjMTN zw8QiudE9j^my$O*!E6EIC?(kvwkayagW<#7;0By#!V`piB~<#{8|C{c2rjD{vMvE^ zMf7#F+n>6SuNPZg$k^n2$s3xT(Xo@>nIt=;-Mbt{@e$5t+_U<}Rmin4!(IKCdG-u> zaIwz8WeJIy(BMw&2%xy!(0KdskNze=ED2k$Gn*Ojm|g-e1xXk=N0FD$XUQhXxEUVW z*<;{p=xYNL$Nh!u4%1=2rx#lriJs(qU?{dtA@3*8G!R7;+2rvF9b<}DFDAyi3!VCD zTy}o|KysuFUVVxfx*J@I8zz0KA1khj$*52>+`z%*mkXHj(nwqMw}41qIV$T{ zJ?ijsdRA_Z_6dM5b`}jb-FsF@gyg!xyM`_YW1e344GWLM z{(Sx)lNoT5%Y$IWlLc9%HIe8KATNEFyk5p1=Y6j=^tdK)(Tr3FFK?frAE?pby`zi~ zCm@#wpDbfvMHWSq5-}g>IeU4zL%Ta<{4!pU#^me<7k9yhny24N$;u0+!kGVJ{~W;8 zz@?{A_%D0Kslz27oHA3^UR(zgumf|N{~L%ZjGEFt(4w~IKTF$4g4MIz-PB34Kt$Q(yEgc&^%=IEfcmy}%n0iFHd12%&yiL) zRlAy8LP`18sXFWlSIe^BW%xinnQL?e7{p7Ym9(Rzk7Kkc?wA`fD;$NF@>!>_?%$WU z@01;obL16=On@uDgUuX^AxWfCiktfgc1?cs39-P-F-Nn)`z0o19# zhVGl)Q@OpYT?^I^`ng<0N@w2+Lw)C{3;Wc&m1#Zt54um!e`g(DW*{la)lS#=ACvb% z&uQ45y{uwpPq=9vgvqh|qJ&_c1uZ1nDtXynFKRJmHAeoKruV%0DSR-spy7MPGD);; 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≧T>Xi9X~AO^%cb4w1!_c#T3g)EaVm@! zx-k+a@I8DI4Ppc`FU%A?2X2sMyRmY|q&U2nQnG@O6J~3@?G=NL)UF1M{D;wAnOF2P z3+<#ei#fhwA+BH>VX2>8 z7+-S2ml<5zRvKv*Kh8-{js6%tu*}vxMXR&RV+}|)Q)GaU3Bs;!};LTTMBVcHa#ciGdoPx&>o`PBa#`{8GF#Q&$dSMtJeM@WI=t00b-t-21sqHQh`xu)lJC#{*_gI(0Z6ThF=o9jSmc?Ylci7F3fj@7U{>0e!fW9p{0Bj3}t zdEw_-B>_H`WW9+$qb93qp_+h5kep8snZ~a3M|RN&$4qNw{hLTTHkz1#BRNz-vqD{(v6*Wts_a*|6u42%sR?B61 zE)#Di7{hU-LQkbU>O1_8u2KcgNx=>aOCbN0r$HVg@|3#Rmp$wqLnL{rMZv{41fhF~ z5Equr@02#LuUO;|(pDis#l6AWDK0g_gLp{BMPDxGX75B)i)=y3{=gdLH&!aJJ-LNt@N6AprR1qkI?% z;=1LC@{q&m*WR{$0LP%a^A|XMDB8mQM*FhAJQe;S1%a%%VUX928lHKP@^954t+%CCnqZJC*BazO0Ht)B=Y-wZ=R9%@{z)g>Oo7&Mk!GgZ)r$R(>Oof zpR7I|!qk7Sny>g7D44EhJ4QC^BCW!EM-`hwn&EPO%>c7-a|LYI9exui zI2VmJYU`?ueagKSu4bG0(!#FS@*#N^g74D`aM+zNS$#}_5E~=Y5NaPOQg83Y!GyE% z-*~pN9#(~1vR`7{mW8^E7kn#`=}z0g>7WIbCFb=>`T z5n{!(ZvIvkB_=kTX!^N zKG}heZe!ZImKz^Hk6+YqCT5wP>?l|GE$%bHb1@|A21f=0+C}usP#h#2dTFzX0lWy` zJD0-7_Pq9e_PU*l49|S_Qy|XtKbQEHB5v?u7?Q zpZ>07y2Y*Dyq@0JlF8*o!q72%q&8VG*Tj1L&gP9JPY;W28TqD~sA6RSZ@vfj6ISTq z>KRxRknjPPH=_BP7APhZQF>R}OukTlNil3V`)?Eg)Ym;rOI8=9F}qKN(OCsioxTII3m*iq=7Z zuG-UqJ<@|@Z1RVS^ALU#gH%>Sn{Rx*4u#)X#xtJFmP|5$p}45r$3Jf$Gr@DsTI(An zAQUO$ZFBbc_nHzJPTs|ZkCh2Zpy1VTiu1*S&_9wPwErMD2jUKo3r*iHxIyHTiC#NN zIMX(S&y;3WS39{BXHA!+Zlx_ltL3D(-H>06laWWCX8S?O<%Y|nQCd^p;*0F}_-KV{W;!Ut!>FFK-wuu!11atQT=FmC!$DxSy2@Jk*SV)y znkQQ+5zl%tZ8=XA4&+@n&sv=E7MhFCZAD&C^y`$L))d}qO2}pUzmuKR{S=@KMd(_e z4j>^|)BsjmjXHlCPiKdx-o)J+eL0oxfR%6kzx{uJZ$#crtthqPz;-!6Nt1^ldN8z- zqK+R*{o*08=|;Tv(w3^#XGPEvoJn@mulHfN9d+ zu-Mm~rVCT@h$3uXeh561swCx2=2;pwk74Kf%QPMyZ2>b5(?iMI*&uvq1Gl&PbMvyF zfJcUeJmR6{Ir`WHZCc6zC-~d_-0jm*>I64>tCR0+qG*QTTM5X?G z#26Z5iY=ow-^!+i`eGL1H5vqC_?Wn4C2_(rDmD~6U4*|6vr*uTU3uy7w2X@1@l3-_ zDglos!M#uR8VJM*!t9t_lw^V*zl{0DFJR-k63Ymoyv`dply91D#%aS=?R(7yo62#J z4Zq?x5@dgqUpM<%|; zRhD+KN{qNmogiw1C?Aw>|G_<|Fk}w)6i8;qJxtxQ7Z=6dviXXtaw&kET^+!A^bMPOLd6 z9a{I^IYRP7$m-(Ku1@X|TCx&yyO@KRDDJp2nu6R)XW=YH5!`NyLc`P+-vclK5T~bY z;fhpHBaEP7%SyK|?7?)*j_q{h5UtWPv;Suar#UE0mB9VvomZ$Vr4(uwZ9ut3+LNTU!@y2dGG#M&|U9tK}QKvA4m@14I zi$a_?ne@{u$PIwzN;#2U|7{x&Job%FcltIay9-~YGaQV-h@-1nb9E z0mr-vu`nO$|9oO8Kgk+J-8#Nr0?bBpoZ-l=#Api3Wrd(8g7NWI_i*KlL}^Mjd@AlW zKiO7A{>p-f9$fdDMFCFu1rPwN{*S#@;5@nl$j{tAyzdpz&orwt=Uc+M8{W0TQ7)|%>HlQld~4123(uEx2eMj{Xpx$c)f<_t5JnU(Y3n*Xm$}^;zV= zD}t8CF!*O%nlf7#MzmAClA-*AUxQes?y@jW-|N-1vGNKPJdy`T&9R;#Q1+Xt$gI*E z-3Nck#Qj0Fyi?vn&Z^fjGKZNCRm?lQu%)sXA&M74zw0<|m;zIuK-QDyuJHDgc?o+2 zv;>b*j=;1r(l<2nEy&x`l$FmG;~vCLWAC2DEf|lq@RJp2B9r!N*3y~yC(D1-vy@LZ z5^MMHuPLwvgbv1z8Zyxrh<}7OU5Kfti{-%)FekcgxK1}9sIp+2?Si7I3J~pLM-QVN zdJZd$(iqWaV7}0&Pik{1@0k8l2gVH#rthA5#am2GS~2J}o-phiq)XZsx@>|0z7-!z zqI3Ot1u5(DjajgR6QN8zm@~IU!Z)&Pmy8MnTK1m+g&o$pGj7HXI9G<$#HIj3qB`G4 zQE~?Wbl_Z9+X0SZgBu0f&;B9PHuyMek2$=ZjU=W~E! zemEYu@9Y9(WR?5H8Vlw6%p$Q{27dFEgUTHv_#hwF2#|#rt+2&$DbaeZVV?0l;A-Cg zYM*Wu=3f_$D>Z{i6u2M-Nb;dx&^c6_Z-SkHyxYL^OqMWq^6AKoE0L0Bp-4KJ8?*&& zSPgJb=q*4gS($%-$um5LM3Tp)dovEIwuAI5T0@XLrAO&$#6T654QEGOjRj}~={Fz} zr?OSIm(W%$xPN^-fmrg2$=@gkMG#tr4umr19MUI6u-lza3}aIJBH7VHUEYzs)lG_k za~y8;&+-c4$5Uxr_GuIKjDekz+-nqK-YNBIZmIh%n^SvgpBo1ut*C_0UOLI$*pvUcY=v)3^H^ z-WfA=R*1`w7%YalTXKsegJyyGM?2f&xs9qKhm5-W$U=V>~J zC4g6GK0brV=vMZQ?ZAV(>p*m!?>hzRESXc6Mhto_s`kn$7NagjHj5Q-FJm0qR!0_|_4@>2gXsN&W;jA82&Z7% zS~|LL){qO8R?_bpb1Kft6js7eB zqc(A40qX~%!)+ln9*25fK-Hr~PR1cLGEq&i9g*N@n^g;3AY|#&Fvwj>l?)uPOr`5m z9lnt3U+dO!(!XlszaOTv_tQrLisJd#ilL#k4^X?HlD!aBOZXc;yaf!9GqVQ$G@oth zFn^M0VJT=MP6{-s12fN5>zM64=n&5#m_y7dVwD(6Hy74E32FMm*j}qcCC6h9_cd8^ z1jza=&Cp?HvEEL7`D;2WkYI3lao}c~{*50q7}H-e;~ots1}GDf(M_a6WE)34KuhK&?WGPM61EX0!BO?~jSYBis?~ zao|&BMVSwKYW{frh8LFhWoq5QAxp8WGstdFW;l|SsTy6A+@|}nJ#TY`a4FkxW3{pF zIg|{L|GuKr9V^5+>11#9|wH;$GF7|E?xKJr1+PoyNwY)=OMk+Gw9;^QM zhf=@b!5z`zJ;W3&XH_rwFgGc4z&oN@bzxkYAroXHWQIEl9$(q<9HY@mlHhk8EuRK2 zR?h|7rPU{s*bKC&qqgZ5kw1v8;-eg%JTYM-+;nD&J~L<@i=u0q)H8m|Oh>~vD%<`I zKjCrFV;)t2LTD}&jBVhe^5$71VT-LxbIEoF8sj)hNWLvZh)lL0P;q%2$1s7h(IZYHfr4B%Ixx-A zUlK{YQ9H1OJthRJkwArO zIlFDbgwGeeIB5F~&3_z2LgugE`f%-* z6BgZWrI`seer$X8HGR-A(n8p3(KlbO40Sy*zXd6kap}HRoEyz+>Ho;IBo|)pAC|63 z0;(7pG4Q-gH2@Dl19FuNQ~X@MeUR9$kq|AeJ~Mh`&tpE#3zm0=%ne*b?n8aWbmo!@abHBO(8tsl&E3^+`;7nrI6Q_B$+Xb4~~9Cgc+6t2!H&+PuH$OIi(k zf!t1ii&w7D;z;G9Y5|XIau8m!KA*gb)e|JXe(UT+s zjmBsFxBrZ{+6--wDG9ixKCdLa>Q%RL%2}hp<8z_-9LTZhY z0vK!$#S(H(BFI)sS`B%6LG~8}f5`JGGs=N{Sa&#HIU-m=RHP^exj0u?=9~Gf!Nkm( zR}QmM#HtcsIo#ZdXSnvo0v>VmX9Yd_FG1crN*NBxN%0e=LvX2d?eb*9=a;-$5w=qb zK5q9q;8_Bi(P2RHIIruKvXAUtG*+{32<8T1nX!uD_)mreQOJ_zww^||WvyFjGLmW_ zR4fq{hYR^zj@Y_kWA6n{V5k)6#PHQ~j3~#9Ic5aUNYO+$y7fl=1u8lS8>xh;)|ESS z*r=+iYykRO3$Qa~3K~cq#C{udHuK~N=o}wfcoaj6<_`;B`HFg1V!6%Ud@d^CnN0bS z-AlG{HAjI;1*nMBCt}#&%~idQnn*pn+@xd&AO8y>KB5no550kTdc z-}}rLQ19-IVk;%jkTdrbF7*21pDTX&sweQ#1m&v$P8s;FvK%pt-$iQnxX&u0GR98l z)4cUuaK>RJ;l^g6w z2lgxM3*1n%b?DXDJxkxH}5rS};>z_mCebK5sjE zFM%lg2HbGEtZ{b=&X|ir^M8%+90|e6uN8qf3pJe)j!U65B@>rGa$&W4`1&Vq!uMCT<jt5h?bMd-#^CA>Ni5>@+;-d9#DDU)89gDQ0|HJ!gf#qQ?+5f%q9Qq-Mc0< ztq|XH-9a3C={;Lu;_NVaOE}Yo3UOW?`=ms5;BC?^uQ%|0r=Kr3 z$H>$qKwLY^l3n`hQ*}Iv4o#K+cF9FxC%<9SoR!-3k=QSXCw%9ZCEHd|TR;80uz8#T z_8;7)B_9nkp*`BYC|v#3-1Cb!r*xj*`y$A5212p`PSM8U@R%+HV&Pt1$>oax%M9iR z{Ew)LGBIjFJ<0&%IaZ$`xPIa3Bp=K0x2Kt8wP|xQGC&iQV2|P78Q>S`=s@zWHYtMe z&S0JTcWappEK8THZEKIkBuydLDPFoq{Ul$Q5IHG0)|T~4>4zR^;EK^5RS-hDt8st<_pM@es!o(ZIetpA{E2B_K) zNquk@b0;&~sp8B^Myl5q+7zpc@)`Rn_-l=MTN~rb;l1sNTU_>JzXGgF_uag>u@qLn~r0f`8~&Yu}Z6uE6UH^c)>~^L-$TaF*Fepy8lBgw%ly8gt<>- zknLZCGmB$44!THTj7iN46!MhsqAm&LD}p1uYz?(b?$ zzdw5V5-7MMRfSefFKMhIHa$tDbd7?eEN5-bX$fE?ZPt?T&_pX?z-|WKKc&3#ibo3< z>OSHu3|2c9rSMs;wJtPN<9yx3%Oo|Kbt^_WGXoszCO48%nL3_kfVQS8t{wnUh;FQr zulVXfIDgLeRbB6;i@CZnSwAF;NA>_C)Q_8phJuLnUx}q3-+x~y+WJ6npz7}WRZyb{ zv`~C$iMD$~H(_**7_&|}S+WxK+MAgP_dA9Pk9eTJ1WplI*-F8$-_vK}iD8p8sLWYLn_5+b1O+->Ai2KU*>7uPpHJskZ^^G^!)G5lIaxR%ti z_>(4Es<-S*QRZPme*9MQ`GSMknkWn(U0QEhHUS0_%z6OvgS&^| z{#65eLsU49b}zXWTpks%Hbn3d6Z{lj6N|ojG0C#%cGE5EwxQ$EkS9ij2T##rg0E_B z&=td4To;kJ-xA5=qLN-P?LXx}TQOibW;kiC>(ncfEY$EJI;5zhckRztos-xaD0Y}) z7PwGXyQPa5Z844@rp4!W4b0;jEos20)5keb!W?l#zZFEg*H+E~J&s6(bN9evLd` zW~Bhx)KG7GvC>K-s8%FdS4Ivg#>-{NxG|4nrk$6T01cAMZi7P>IwkTy^ZZ2F4&Yb=FF1XL+n{(bLz zfFfMZ8K?Sy6^~Jy4dUN%ki6MO!BB6WQrEsZ*=j4c+N3Uu4*usnLs7^G!GK-1^0w4d zX7apQKEB+eb5X5`No^xE3H3B@6C8wcypkstQQWO7vGTFl;~luFP#=$a(W&O;|4FnK zfhO;m&AgWHV;JPfX18-W0M>xG19RoA!2{=~`#Z2C++9B7TFru!%Rh;Y_?WvQUQ_AP z#Fx?M1b@M?sS9-yeB!U+!Sn4Pn7*;@crtD!Ug@}QP5A|s?MF|Qy6{K!cK%Jx{qqAn z$ZUur(Y2%AyR`yif!`y)%scUpe6gHPO=<1eO+^s)%2m-c8`;gWOGiK`F0$)#G3T^P zUlsT(Y9Xl{q;8{$3UhNn3s`w4NA7Tctdp}={5!9cBq6-34tqYoqF8SS)gFakLVXNF zpc=4s{oDSIsAth#K%RFlcJ6`c`nFYO?%> zEW{H-$A6rIQyE#JK9O)CX88(3o3Z?w4?|s*RZ3rwDTIgymr{@X{RWt!$rR}dX)@^A zvys{}NE+*l{!Tk+ZDXZWcO92;dbCqcv=`nV{mIld_y`pcw_Z|-0oA8>ewzNkWBz8 zox951gT261F9`6sN61PJI_dI2^t5EXX&VUNf~{s}g0q$ww5h>`e2eg6Vf9^92kG#D z-+O_QSx>CDr8FM{AEBTtBZK-vVL8naJ7Euw-4|qGAN^Fi8xOz~Wo95WkZn9~8R-)S zMR}kw%o^7y8JM*Bh@LZtOyoSyeeM(Ww!xk*XhZs#!cMN=Ii7hG|GgBv*ajawU`e0? z^_DU^^Ub_5A~)wt3@1B^IRwQ9n|~oMChWvfhnPWoGU#USFFo1yyax(R_x1%YQNzf^ zPRK^rhiq+bbTF@>BpQ^pk|U!R9HK+4O((2C7cP-w+#}^aG9c1*_Esla9}~FUw3Z{t z9D8Kcoh{VfOvL_p*ZHSw8{`f=_Y%jxaN&-0haWfpgm2N)E=|Rk*u_m1CYk-?7-9S_ z9D7z344B(@ZNiu-i>ynNh`eri5B`juXXGdKM_MYYVEwtm&9;nMP9#-{*UYH^;&LDh zW&?Rfdof=^41?^%$Q8~IDu6IazOZ1tQxXEo%*`Z}aF?=u9sCH+1{ zGgVcT@TJ9uE7{)YZHs4BI{ZjlkV*+Vu5MHWA9u`B{F2WRZ15Fs4xmv%3nHjDgIH+) zivNImqwQz*>Z{J3PdAhWr_7S1itI)nC@uwZO?&v+ci{^d;IVO-)7|`CUode=^yUr9 zUI)}}rfs7fNv-}?+7U$XUOAlIeyLMvQCoARA3?rBem5x+8&He_teW?*8%k>t05~Kr|m@ zxDekQ>N`&v;_`B%BE2(uH8bocJ}tt@Gm?vsin{#bbT$Bya_{NUefsq{7n8plDx}({ zt-Tj!*TNF8W=}vE7T<-C z6YK6a5*Gk&3 zjijIMXAR_A-XheA-sV)`bv7&twoAR};dW~iv*OZM+_-zpS_rO7EuYbzq~r@5eSO#t zkItehM^db{I=LSUpmZ72QoA!eZe${>DJ?&(0Lvbt%t``n+(|N2I}Je>6ZR45ywLuX zDyJuvFS<{Q_bLb=pl-z!=xP)|v9A@KqxeYdQ9dN=5=Q*%-a{q&{_Ud(oI#mjoG{xY zDRa24G~7Gs0seyGjGzPH7xQOWPdT8lAF6F^SNn$@S1^SC2RcSs>4)bS*n?yoYWMtf z@HftC3YbDV2nSC z;Wksk4;8DdR8}bh%ICE|SRG|s*oDD!tda_HJGN}Ebt7)e3Y30I;p6Rg5+bs}0iMjf zy|?_B_aSXY(YsqzRR2OjUU?L~)$4irMDOsdkF;Vt0Fck81amw|JlW6MTmV@<0P$)J z0|NzL@8Yag%X>E&{@pfQv$%&S1`n8`53n=Aj`?L1Ux>T3IXO| z|MSLMvJb!L8=Y+_oQvcYU5)UXbtp&Dc>br_1~t&REYe>mXaMF@UWqBm8U))U@y2>< zCbhC{gj;Q}2p4<4D%w@9ovdZzlxtL=zvVoogRfEr%utOXwIv5PN6sro zHv?gpF7yuP*&HGc@Hig;{nJtSYxWo3iVyDANU9s66_8O!J*m>plR0(i_6jvrWSqh$ zRHV-&etFq$K@}85rri*+G5*odk*RJb;P~=Pb5%L8_Jf{RH%x6yvQQDMJv+7O9uQ4I zqH%K=BvHV#r)c5mbM&p!+2|6I7PDepKzj=L;ZTQEUB>^GF9$lCLxA?jDkz>sS zFW{cCBmH2ZOheN6a~sZR|K8~cvEpeTDk78=E7nG05NI3^G7_s71F4GqK-mt$mUnai z!v><)q&O|I&-_%M?U9iS1MIGSa?7ZCo-B!%&sXMDCj+028XffepUy<6%a}dV13NSW zq|ekqo$PKgSvT`9(xGyKAKOtv^TZ?oOtanb*7=y>Pxr}QGa>qUr*9CZqa3-RTabk% zmbm&fp$~$0igyS%ElpBVTl_PWs&V0J6FL|a7-tgAU7|Pa%!1Vrk!53?slUO=2dmXhvY0lqYtGRgK{8qwwz_UODcSFtn#+hT_z%1 zJ6A5isi@JrxZ2rEPMPET(|S1+oc0yAFe<+sM8ZZ>Wk@b14k|;&q*aaESQe70OnkLP=74naR|}$IWH=LhYoL-a@`Z(s5v5B`UHk1U)yFF zs`s(ubgqQ#ygEsMeu*D3&9ZJOB;ujQ?qfdRR3m!q4y}ier8vSRJn)yg{nB%xl94t<^+kYoZ@R^m1RL%nA#JC!E81o zdzum%OqB{d8rXKLiP&|)J^W((MJTB47?nJhAk&<$CN}Mmz}6Y+P|MlF_Xi818a4qn zCDpJ9C7!K)ZQ}gny^O0yykb&$fg`4K+XAlFy}3Ph+6beq#x`>ImdPo^XJ9-iX7+oa zwBs+#*GXpt*6RX3T7ZBsZXxYH3?yBB6Zz z9ISs4s!R>10(C^}Fa@?(fH5m~ZJ;#^YU3qWRS>XN@n2qrHwH}*?+-yT!zqY&L`p_! zaQm52{a*=z;k-c*h=ekw*6zPO1ST+QYiw7AR1Xrl;@#3bh{u(hff7@K>H^yCoDJhA zl2tzoeM2RD!XQ|}#ptvelcchkh%UgZ9TO4tYdX^#-I>_TY*RT6$N1vylvj7FF!qHP+^*+!slmh9+>rXQ*5{ReV z;#<}61qtD#P@V-9(hLt^e)6L&AIb?zHPm4>BW9E1^F+R@Z6N}mI7nM<;%A&A6gX$+ zF9Ev7Icg(Q6B28!%;W-+;Vh1j;x|a+j=-Ai)mbUkLmzVIRT|GDVfwSE8xe#(=7HBG zz`y=N0 z6dbtypoJ1M2E(PgmlRB&4yK20EkHfD!BWbph|f`ytU-qnnULDpA=`7MiaFh!b0K>N zYCg^phe6RJKN*-1)AXTIQHDhP1UCJJdo`=V$nSwOFB4U`j-or(LAdITvP(Ifa$3{- znHKVUC|~CtC;`>7cSvsJ0nE-^FQuw8#e|uDGd8WM0n~gV^zV+s!2VrVoWqLD6`wL+ zSlGRbEy2F@n+4nAt!zCq{c7!i#dn)`1LkI!t>)MQy)D>BH4lw0XR-cFF(t;QIyfzg zg@c~KTik#WH7^nyzG_z46PtEu7%B^UG&do5esOH#dSsmEHC`Q=8g}=@C~#-j#KjDE zM=;i%Ae7e14Q|Fr#liVVZgUWy$X`Li8P4#nNTFapbj|(0^G2FqW2PDm(_OTkIHi+; zROtRi7~$!vXlGN==g#0Za|snZdOo{@MC%-t6a4wNUABn0>Ti{L?=fVVvKI&;XKw!^ zeb(FhyziK?%i`dF4!BZI%%4BH`<)4CA@n+Laqr?w;=Pbl;HZ5$aSO*NAtEDz4f0?pv|z<`PH8G%VEY( z@9^)nZv|=UCoewsWM##S*MIgp&Og35^PbB@i4f3II;12qm~pRg9W05KiUgnRl;1|RGNtRVm?z7E`Ve!33@HL_<|i0hr=n`Kr+?OKg* zm(r$}2-W~Xuaz&B!X7GrA^D1wD09*0#Q;uU#-AP@>0RNq`WyW&~Nh%S8-NQicu{Wa}_u?>b zZx?Tu(XPEymK|)zKl?3Jb2K|{DVot@aBX4u4c~L8IDorSIb?O+y9d*BsG+g3G{3Qj z9Y3l$w^scv6T5*gg#z4GjyrulkxoF#9}>L=uLJQITRCeLcyY8?*^9CRe>nR{>M}Ko!*iDS(XKg^p^=Vw(b8lCpFC#rogN zZr*H*m=0M`{iys+It%OJKKUaS5-+QLY67 z(Z!#1%S0KF|(;9P(-LT43rKD~IF{^TT6ch+AS}2#rKjH1oA)2?0 z9eZ>7`OSArVhAV%4Obo&51TzhMZ7(GM~hc7WhK?WWW(}+BAYI4^pi&`x6Q)8)I)r8 z|1DP_f+zCzw#S+K*&|t~^^LJFE}Nd>^6Aup_88*o{onqkR`11FY$blDB+|>Z=Ad40 zD65SYe&Po}8kvJo1-QIUU4>slk>1;gy*7AITH&679adu=wse3!ib4!%B;S~Gr3nbb zf|mrql_WgpbvoGo8N-Icqga~ww7FvVo{zP2w->DXE)Do#Q4&9}GI)j!HIAzskJ?uU}-`|dH~5H54`E?1HRA43lI0?Y3ouYpRG!a+-D15rQTvnuPZr> zO7B_{Y?8VWFF6Ddnf%5%obI^}PQ6EBJllzxzwNgxWEI3n7n+ER#s}Lb0@bvRU_ui8 zbHd4tzw*LJsH&IfsqH{@PN{y!BGsvyLiCjdRh@#R>Oi7#y*vbr*~gbLrBbtY-b&Qk z!?FHWtgB}tPIU0)8LL@6U7e~@LCS#ap46`{nYXEsD-sErwN^gRH8nCDS~EcPC4_D# zuJ>qXu!dWmbFD}J@D}{ANZJA0onR}^f6B_=OIn5RtQAw^jy9Mds%06cQ1r^!A7~|w z*PJ$CY66$?dAaDHb zqyaCnc}pR|{L$NM4JhI5c+t6^Aprx&Ww!~fWC%_tdL_hZN_ilt_h{psaFF|jLWW|V z>|Jb$>>d2VtfAhFu>?3d-Rjw}y54VoA`-5V`p4K}k^mb3l)Qf{+&Nu@ciN4{FfFSQ z#dljisI~LBsw={D@Et`8TVR(^!ZP4a4pQgcz~}`X*Ta#6F@_iI8?ejgAi(odj4M&V zxq2&q!e>O+AbrFIY;Qryc8a_OGT7E=SRAm*lO1FKCMQVBwf#RC)&~wI2)o`&bj-Eo zRNPl+@)z02*j`DbXc%vP4C z5}e>yAkwX48Yrf!={cEE-lH0gr4&y>N#>Xi+H&>+_M4y5 z(Y$vGgHYHFONjeFu;uGA7b>E8nZmKEQi!+4)~hohRj`JvPhi0f$U0BI6lzI|p&I`a z@9p2luR`;tp+>%WcZxyA^G72Sf+&IJfth>Q+?$G8>)iHT^WZgexYk??DA|+1Aa(pV za>aMIwwx#ic6`Q9leVEm(f`568di)f>&7~dPOU7 zK6a)nHy-OUVy(K2_03p4Km_1)LkdhaiOv|`N$$K$zyCnEiyL_Efv;JFYc-_dQ;Y+W zglgIuA65io2h)bMUTow&r-pOa}0j(6s}fV07Z>D&&4zS)?v&Z)^tn@^W_ zbz7M58b&2FjuUrYZRJ8^^Q#XAeM~IYj)(|mKEiCeaoyh(9ui!$3>lI4xq^9ol?G=i z3P&&JxaQ_iAR?imAeFiIn@LBTN(9K`Bo#Ho3TS(GaXJ<9;eh%>ls%$3f^u+^U}dyS zqQ2CTDLkLV_mvTA`T>8xzV>QLWej$H)%}mOb5N{AQG#G>+qP{R8{6LG#I|kQwr$(C zy|ImV|KWW`Pfu5w4RE3&-35tLeDDPU$k`U2sUV|Zli`aEu@lW^H>;00Mq=~RZ18=| zUQ%E5y%(kmKJNQ8Z+MmHY4r=0``HAzgH z4Tx_&k%D7_4o6m%U~2`}b!m_tDn@!(pL)OyFm6XCA_UgSmBPQcxKA3kX<2kZyKz`6 zZ+I5Y#L?T=s3tD$_yqBsBGcZGtE~<&bwiBn!*owZ{Sm;zxwcL%6Tn*oupcuLifu1- zj|m$rLD?QU+B677LuQ1h)Fsdv?5&7far>XC7= z4MWHHQK{1%aT-E;w(BRUdO7AVZt@^)d2-bOP}~@)AUXeu@VO24zH%OB&+j0%R0z<2 z8E%;gf?awa<}&{-y!j{h(Wi7fe-wj2c;}5(P1ea+h3MsNRO{(NaE|Cn(PFq}j@m&F zp6P-V%CdNV>`1WUU0|OxZE#KZJ3H7hX~rDu!YyVMTv+(^wLf>LhD|SMoW|<2%!CHE zbwe*eS2jPnw>G^~FwoUm5L)CtB-!~}-c)tjhD;tnxsmTsq5Q~~Qm8$o0jP$T08zj2 ziVfI8DJAx@pl2}`>VX4;JSpc>Oh3`(?oEaFW^uyZ%58`wiR-nJ+3~2!Kf;s&ehlbm z4KNb{OGV9h?jgwok6BqL#8(DhR*WK1r7eO~{zD7j-(qrRz3_mmCVM*%S%)f+D`%yX zL`s=z70dDUh&a%QUJ^2M9k3!!3~9v%Ldm`SI;GWS58brNP>a5!^{tkP*`=x-|Kmdj zOo;0t*V$WwT>Zp-3M?=TR1rjrOlwP@ccjs4T&)d_NJZ|dMufu_vXTmK#~0{Y#9;)& z);;a0e7s;vfKzjI$eCa|IE829@2wi(`d0^QFWsOvXG?G67yd6i`{;Q~y6h60&RBN- zue(~g(VQjoTe7NgQb|G1#`n>g^(}#8Z7I_%Ok`ZHEgFeQJ{~91k>!LIEyo!0-JwUw zR$mJZ3>3ASXeWCc#bKe41EP4a=NM9>TwHUI77?^hW(iGzT`=~bAhJY^WvB!vZZejw zu$Ki2(}E%$j#5qnTA{$j5|lF9*w12dqwtvaXUgC`EMR0_r(Id3|g_F3M zvhB0MXqu(N-<`P)H79Xd$v@63XpJf1jkz_$He*yHdtf{{;e}16PI7um z5$xB@a(OZxsOxim3nFhPRV3?7yI1)?=H1c|2oE6|eju1O&sLRZbpx~Jd3cvJeSvWr z5*gd4%Wtj?@l2xefN&C(e`=j9a>Nwf7|%`+yRXBU-)v-<@;x<{Wd?5Zf+5ypA()l zZ+r1rC2-9HD*ADGv48u*7aM_u+t$``DEiSp#u>{~I%N6?-~^Z4NF&@8X!`z&Nj#RS zUT-ay=|kY#GkxKX#}P_zyxi#X)oXe0zFIi2rjs*nZ>rNaCw$P56xHezdK!IdhO3%_ zErjr19||gAp5_uK%6 z+u958T$}(2=z~0ObJ5_6!~~Pb;f=L_?hla^n<>Tp#R_+-RsD(>$28_(BpQKQ{sFR! zYuM+OhY42~FVEN$h!hjs07AZyF!RV#f}32U&kjbko1az@U0-0o_WsEIUlN}J+KQfyE+UR_q>ky-1s{(AY1pVp4k)OBN z;4o68o5Un7kwLszqOEll0$#4Nv+8MS)!w*mlXX#EN;ndc%Y@G`Vu6-Y_6g**ERSW+ z6|dF4Ek{)o>`>XN%;>!RsaoX%KZLJDHW^&t`Vch-pj--?%tIpC#)n0D7@dl!ki`VN5KIfJukY4M8C9dK8oz~1{h-?>p%c+NQo zr-Yf}){JvQT67@#SiH!5Vv=tf!#oF?i<9=GD3NDMo*GfKZWZ}3u8fhPEQ;rLigpOF z-!+E7r3o&D9b4|R=$WqaHTL0M=m505J0;lpRno7GbhOS zTobf)lN`E80Wxc$U~}vpTL@2)0)Li7&fK@I$4zFOBG8d@w+NO0J`9~C24JP}lb zbwp2)7{kiW&AR$b@DhDJMd3?weyvb$8Z5$@Oya3FTrF!x$Uq6iDeTZrHDB7kU~q*e zK_rt^JZH(4I>Z@88_v`=l5YfOXPZ3^Z)gSs9|vsN9|{~alQOzpAf!^uWYN+B5B4_P zgRALRNjfC7WY_PT=RSHfWbxzpsb?~v&FXSZ$f9!)NuOx$tIYD4j43xNxT32(+YR(_ zuEh^awp3N>^^(1 zWN(inU@)|>>WYiQH8C$Gh93^Z{@BnBT5>;jtclj+oKxCZ*F|*4rp2ELmWi9PO|v8) zs^DxJI-WYgO8bZb{KrHjPqS9?*hl?=5U7FHHxgx22_|g4^Dkl^jn+?7QrdJW-&O18 zd`v$MfFaxKzY;HVEtv?BpE>``fHzN>+)x7NdxkHleAO8N1_`Fo2L0ba#wq-n9;kYg z4$Vy5(gr;h=j(P8G@!fHDA{9axhUroEF&^J0wVwHcaH&LxjY(?0}Fa8Q2==b3f_T_&B4_%-}}eWfHYsLc7z^_%w+H$r>`o4b0!5 zZHwC6@V8;(e&x1FJn+ zI>*wdd2O&e8ZU_UPBD6x$Ib9LKMSE$-<(PESaIuoR0019r!m-er?Zr~1mNPI?CrPoH1+|n(qg8Rt8@Is{M&Ffdx=?5eRFLx zp}_XNaYJ6CD?TpdZ8iCgTHGxj^f8k_w?`p3jfutS&t}Mr<58dq_Hp~c>a8DbMhI3-DzSIF z<*oNm`MlmkhXdb5?^O#&R)uGDWQS?r(w#O5S1dIZB}(M2)bQlD5fl31PqzQbTDYF8 z>$*Is_>l8LGT0azj+DE3O|1beg55fD&|%yx^w9+NeHbj&k6D*#gB9j;cYkL>)K)A! zLP`YW#vNYvT8t^E5r#YcWDJOaE|rQv%#TanF4=C>PLnI=fEzfJe$iTPbot)V;us#T*H% z;+U9<(pl0(Ymva&WhUcjV*;YK{yzAyx!X0j03=Vri4}k5U{4f$ZT9OWU#IFqb6F^? z5rXf=9Osx!(bsz> zQU7D(2{1C=#qB)Aq4j*`)iT_ZX`jc7dqSrKt3f>_ zm;c#unIt?NRkEAJ$8YdtZe4)M4w%So=`cf8Ed30o<{Dat+4_0=6fT~nVRN=U} zgPLS;f}2eW`-7IuSghlNcba>REY16n6+Wf%+&m8xIV&_}&_m7QB$!H!nV!ju8sKV5 z!A`(?bZjur`7~qZrK>8PsUZ}iG4}@?k2U*1)EjNgzvpZ*apQrqYmRwkag2)A`sKoJ zC76o6($Lhy<)o9|dWh)$N&jg{Y+7(RbG4Oj^>5VDGe)!7a@ft@ruExDpbv(xTGEa~ zEo(py2vaRg(Dt+IRctd9ys>AZ#?Wp|DwgSwZ#uCCU&1XS|390!Nzmh-gnULFr6`j` zt4+pi+{@3w1jF)0k>obM*LfMtT-cNkok91HJRSR5Dus~Wc}dMsZ&;Dgh{vT=L@R$AWbs2>pp>Y)a>UO!59jZ zK;K;~SGIA1uvfO-WXaXJ$sp_el<6I?q73aVV027XqCaTWH@n)g%x2P#0=;WkvQPi@ z@K^=mZSFq%5*Td^d%wiC2RR5dHYaYxS-4)$FWUs>!_f3IoO&c*xgpSVw$p1G@N&0C zTZoinKHXBV!@}+k1}7-^ae*Jz<5J%pgrc2^9e179Jelif9;?S4l3k}kKo3VG?k4MtbzCSr+v*koty3DNS@7SbUYEw$)*X$m4FmpD z9v!1LkL2vmr(Jjc@&0m_Jcxmdzc;dTI7u)R5v~md8dhkZhIW;Ne8|!t!jsKe;e6Dk zgo%^jjHWJj=3WOamRr7RNs%)$pl4_$9yt_i6cr%>jfr6LDAv@1FOVc680XZ$>t>F* z;a{*C$7Qn8jMYC`W?T5q6)j%A&?#PV(#wiy9IjInF}}52$&#RTkB#bd0m4Ocj35AN zV+Ph9GlkK$eOz@_*5XL1yverLYfetlMy6_Wo*f$R5!-5kRB3w&?{}tS|6#ltlsT*c zc?3=NsxZYxSdl2I${>tgos9Jp}vT6shNa&-RSGM+h^(}eg;0$yzUaAutV z1>Dw+3V*!CdegQDTg^6;_{5{p?Uot8Sln6xdF38I{J6zrTokA<`()Z|t zd(|ELE(C~;6k63UTjPMIgBs1oz>u#esXcV@u&9I|in`#OeC0$MbW_4h>0|GEnHS({ zUhhf-TNEE5(0_xx9l6|rqjYxiL$$}fH$X%Q7@Syc47eJrR*C8e4yt6({&v&&R9G&* z7tuRn4!W7cOssjUDM9JA{_65Fl-6N_p%mV#_JNSudwth<&6KZw$@{M`{}@%w)ab@= zjJ^nsT1bj!J`3}$sFWp{AJ8R=B}%!n!(+4{lyDg~XX)CX zpAoD&bG)WLbgNnFly%_l-cOjCt!98?Z*g*-rwqL-Ok}p%L(1bUPbEb9pemxBl-3^| zb&M!_Q14qqDP~XTty6NVtR}5K#-9SYj9A`7Y{fPL(*nR0p25|IMqhG81j8b&Zxne{ z`_G^te8?8m6Zi@@xYWXK>=+EeQ5p@$2FR0UMQg+dZ8X#dh*cyI&h3c>IFL0TMsgOc z+@Dx`8MMB|6dPglhJFVdBGs{1hHgVosy4_(Bq*C3iKfI;V%FEg;Pi|a%oYW!vnR+e z$TY817qX1flJW-&Z8WZgvwib~L zkxdV?Nw>p+x8QBgH!%k|s;t3Iuhj5Q!vzZM5)|bf{pH7o6~J?XnLlBUXF}WUM~gSH zoCCNulaUa)wV@QCArL$MbYKZsu=M;%Zv9ldMHLMGN^^iPo~+^F3arSqlG9sj)J zl4lektwOgW5D7-8Dh;vX3VnwK>?^`O4OY7_y3)gTO`#dC(C!pKM``|-(3N*S%Ncx4 z^37VY1`6mcocZwWq1Wh%18)L3Fz^d)8cXO%=_b76x(gaTRf&8UmG+~stLL>mn7;pM zIQ2aDw?Pz`uV8dlhBnyl?t06~iB>EiHIm;fU#vy2`$vBvCpGqaj^xNhUtv{^zL}5O;z?GM+iw#boVj6;%#JSFBP5*-HKR z{!2zN1K=ZYzHrY@S3i> zOUavG%>6azKh^7YadC7OF*b5I{R|F9dq(-+3q+nlgOi^Ka;snx6*XY%n%0u|x+hh% zt;?&0M37)?_S)w6FK+ztdE55k05*xhlNvbA8Vy5Mv9I;67H~+8-yuq;7>3d^esmNI za)g;2_Eriay$$IPvcwLi5DJ0NWT5E2(&sY#FI&*nR{qAlZo@kTS?6nd~}^uu*yle~$fuEKh{U!94+PEXNjUl#rBJgjM`77z3U63o#Uzo0bu}|Mi#z0Fa38o);mk;u><9imgp@lF&Pu zbo2q2o%Ksb4IzswJ&5c;qh4_9$4GZjM~dBlU~T9os**>NqcHxW_zw%~KQg2$y}2TH zTk3!9HfhT|a0V&Yq7b3!83U789K)d&#HVmGAU=sUu{#Ik?oVBSDbgK)T)~88vXUq+;D064$vxYC-Rs^F!3)E{qHr>mS~9aBu(d-~JFEJxnTu<+!;^XU=v2WGcO33;-QfNYi@|eJ2E|y({($}VuX89X1MRwQT~_P%$GT_ zeqCShS!tOx~45-Lb`Cfpjdcob&1;DqSJRnGAYAFz}&3vp3oOiz<_(-pXLVV`Rr z&dpY0q0E$E%_#J77$zk4YCQC-4da$gy0f?)_gbYg?wg|HLwuVveJtP^(4hgmX1> zq*?kCI<27wbTwjT$N8iDyaU*qgw|kG>a&Q{OVslG)gvy8-|ox`3kjfIZg>4+n#b=D z4k5onHF;b~lIvecQIQmwtcL$UWQ^r{(HRtPQe6ytl7gjjD;h*PoGQ0?Mo4L8PXnbD z!#tb=hxC%VK%6DV#~EC4zeI62gac24kwN%7>n-VC#c)6T~_uV?ZcL@#;8}poR=j0^uXn`U(Q$ z3=G%Z*KC~12^Y1Te)l|8I-**bZh!bM%Hb>^eDxFX6^Fm`0;3$*<@Dc}>=uFWV~RY^ z)mAAeg;8zEG|vrPlvwG*)rBVo23>px@A^F?OYQJ#PuICFg3!r=k{9WCEftT_;pmKN z>)9zU6wr}C7~dCoB#eV3JuIv=B{ODSSUJvEL04fZo#!-rPnhVKJAQa=F%DZ?y@6h- z$HuUXq%%Fl$mI#S-BK2+yLy5hwJ8$P^Rs;dML4!^G_AG&-JspVs=-m3P~sX|~`Yf7Gi z)C%2Kb3PH+L8juqmD#LF1Np+EhP@LPnI{$#M}May`)%$CyP6Hlw55>i>f`q?^tE5k z*+Qyulb~7mq|YnM9v7gg37mKA#ragRYEF!L8NKR_FDfw))7rmi%$k~*)Jh_J?c}sFKb6MNkNsnO*yk}DwB8zZOgfh~oNX7N@b2MbE>F)_LMP9fdgN74 zSMl|(vTgM=1mIdn6s7PHVQRJ=1T{pdIG~_ar(=Lk1C|}^y%6MBgmHCZ^L7_MoYjNp zzQr=3FxZ`uaT%?q7iX}W<%WmnrHKrK+UXNfw)*Q41>wOoKOjoVTE5F`G%Z%QL^Ei~ zOHIgrj^>BwY;`*TcLi?EpL9)+le&y$Oew)Gtz6mpW`aJ|yvr2hMp=2y0P^+kk z+^1x$98=9xx8J?Sy$1vY@(2Hno=1fsZ0czZ5A|=_g0gQ(xV03hdu~27j61jl z&B*-#xyFY`GpYn0%Mgy<=?%R?`K3?mHcM4(p*$#F`3jI7=^Z?V!TdJO8+IV;r?s=w z4}y|gC^u7q%RcDYHaWZ+)U1~U;;JjIW-Vfw2*8cmDC^&9nMD7x7yUjg&oGG%gsW6? zN|ER-BhJ{8MiH}jwNWXt!9^!$ti*5~cyTw+n^G5`I&y|=a0<1Vdt2`;$7E*=^pT#* zV!H^kk7dunjx6laZ)DLyNRZOX*1z*T%CXo1%T-rrF#<-3P4^mFQB=2VZ%)vabNdgO zy0CxFdRRa>V~Q~kKo|0>R;--DM7!)#`@XAQfc2SkZUr{D`^qJG+&H`dmIW;+qp2I_A@+0m&mr{HHSY=<53#2!{J;GFa@uck zQzm`*4I6&Z#Vd{f(G=2KgRE7+ufH=a7?iBxY0B>?pP;pBCA1P9dfGap!UO&!tThiQ zXb~#&M&F-BtG{FFi6MOHFR5~glZ3s3KRk=V^K zVBD(3<~aTLOi&=~n&-+x{v(N@n@WBtxUb~1nmj36VTWY@^Xo7gv(MvB}gk-Hws&RT~ey z`bLA3dH;SEZ+`C*SWxy_eoFwj2=2*f5S(qKKZJexLa1gxC#ps${pJXmhAz}mz667m zB&d_yBeNwEs2B~!)_82QPFr5^t~!mdHgg>u_*IF^boaV#g3D`y$S14Mrvs@qIOtB? zA>Ni@$J-+QM4G`Zp1Mm79#7(f_#gJb#7{+5ITaACjkg96Nj%XBt}#4=4OI=aaa~xJ z!)t4@Zs(;%R|>;_8(1u$5h0ZpI0O4%s}i@}A6o=d?&- zmNu*@IaPZc?IKg?0AILj`+Xv~Qqb-&o&Y`AA22TJf|?b~rrb3v&#rsP#SU>QALF%U z_Pp>|!EPCBEXND3O!6^>$Wf1nc@yaDs-D5BCDn*;W{DedyY=#2uO-)I`+0g;kK;@+ zGZv>{-|`+vVcjgs&B*>*y=RG+Tz;OazyQ)!D5C}ZP?Zbx1)aQQ+d$552~Bz!)>PK} zsE5w6(FiiKEx#W1DPdg^eNH7@+$Lzw>+IhpZ&a8{0`fONeb9jY2Qr!pH&feXX;y#D zpg99*Ydeau-6N+63&5O;_&|_L?DKpp)OV~+G$3?oK%?-uTb4UIOp$7 z2}6*5TA$pSX&?|$m{Rd#ehZ#n+9kK9OeWyP?nsW)Z4?xGb#M#7Q$t%FVfTM)J=Bu{ zL;oQnyAkyxNYBOGzJ}3#nLN0Xndh*3QT3r8DLvqt9BOL6M#H7huz?$@2_A}B=)#SK z6nIe()^~v%2d85~bCqSg0hD2c()riztT0ss2XGmSKk$=W_l!E5Z~x)6*~;CS;Nak- z(?k6NL<;Q=jNkRz?Y9B64$7^TEdMwWzWH7BT_av8drqu^(b09rM{~u^x(!;@g1Ccr zjKq`0N9;)VK6d^`@n2_DFX0i$HcK^ix6PVFhaLEIs>J%+0s8>ORn;VJ2`F@}TPau` zf7a@(sE|YeTAJik=`HwF~t94=rQSk4FpX+yn3H_#0b4Z2vpuC2MY3b5HnMV>HztPNr)7mRPqBoP!N>?SyMo=Bl63p;z9oj9oa^gMLf zCB*uI9?@4CH^28(zij)6dXrKoe&E*fOvF>{bBNI&oCRuHv3Pc{$1 zuRKKCn|O$@{n^Z>%cl6}9=ym`&~F2|fn>gwQPIH|TDrQ!t(Usi{Vrl#4VN*7TrRT> z);gFo+HJ43RwGv^lN0Wu%vmqx4&&o-Mq*rcpfeC{!5N3R3Hoe`B({{GPHLSNjOF^VUnEBME{DqWgk-P2Q;6{Dm|d`S~BdU9$SE;S{S(4@TJRF8MA ztGiC0K)MSh?oXL)5}*8?uLH}@mfVyo)L@ENDKpLrAgs)dpw6Ok1FM1 z65xmU(DccEhn3fWa%!q+;iui3XDt?|BI#gpyh%UaPZId#nuEJ+>9X=)<3+m;HpqNq zMsQz~dXzYs2*lBsNbt=eG4|XjnhyoMU*l7lZJ2ztSHxYuz1kq__jIF=#Hy}r| zCgeTPcTr&=^lQbf5FFUeZxoD~G;fAU%D)u7?~p$+Gf4hgaeJV%2odTo z34*srTVFQiv>3h(2tohj9VO|ad<4k(ZzKU;c*RUEOO^i-hYL4WTB>oF;0l3V0@O1w zu~?p@s1hQM9FyB({n5IUZ8(YPL$QhF;=r47p7kydHs_CV?#%(>z@4O!mZ0z|>~ylh zbT2&z9RbjinqMj5eL@WmKJ8f7(IvQJ9j_BW4-`HtFv)i(<_=$EiyGaNt4r##;Ck~@ z_M=GV$>VHJ6FD3e+`GO-pk=%AKmxL`dfvp}Nwu3Kh94>*;rnEnrs|HUoca`X3rFMf zF7+RaUY=A(Tp!DZ1Ct26L(Q~4QTmmzF_u>M63B<~?fr@FgLsULvWfK9LQ(EC@ak8- zq02tI5sjrrXGUhSG9_-m#VjRhhi)uCM#5mE%^hE|w-UM&U~8O^F*-@i=KpAz6pIO-QIi@GDZ0TAvtNx?(rGo#0 zSq?WT!jotA=hu_c7Z0!9hZnltjcHuKPm`Wb`=h0${H@PV!xwktFA}i~6vN)hJ_cdh z3j+a~3^Y)G2^oBuZ<1f|@?pnH3CM|yC3X^5KB+9U;8s;NzYjnCl%xv3vQeSoMl<8Q zYjy~^4f1BQoYBQ4f4jrJ?a5h4Q} z$qrW)Py8?b`O#a z$pLze_wXZcorF+($*pbN{V+Z=ljN$5q9`%_l3>Us?0gc3Ye^LVjoCdmVV@;C2Ie43 zO|ymTQ+p}!)g~qcTeZ>~ASz)xQO7C$1`Fow{#+^gz_XTSs~mJt#N5gDbT!E7>G{2T zK+i46?KS=<4gB14zbB#5vi0 zlTqCy+cy`_A?a1&l@^@tq1H05pI||^;Gnh5VnjUkrbFKQIp*|hW!MPMh6a+rR%H8b zv1A;5vx}m^_u6y3{9dHL^StEl32_=(GdxK=dnyTKBaTPN98VcsNGJ%FdCdt-xZV2_ zc)QJ`=MTTG?7ggO6>?A>%8QB6XwUN%&G6DO5DqjNtVhMM@$v_c!{Mtq?gpNtt~Gw? z$8t8WB^3|}Mb-f-uUbiV2e0A4#ClDRG?)wnd4i#jXv^2`=N-nb)=Oxl(e|qWxcXe3hG5V?o}u2n_uXL{*yl;PU-G z!43}$gIylv>6Ke;0WQPV_cfjKpu#=K97swRsktnkV%iNGD<-FyqzgE3lh$1^`ek)4 z%nb~g$xxK$od(t)J$w!~3NmIUEF)M!uje- z-35b<-7e9P#{jHPVhEIvLF$6of6EHX3s$$zn;D~Jr|4R68nU7W3>km$Qo1TF3V}5+ zf#Ufe0DBmAxAj?AS2$Rqe)+Wu$2AhXI&Bm}p72MlT}VS=KSfiM(0^O)C|&hc*Sb;T zxW8>9p1}cnH5~(=0SCS(Fc_V0yslPALc#@1@{evD#q!v*LRa$0Bj%$LX!I2p@$S-l zCa8!!BlE#KkEH5P2A6_QLr#Ms$mi-da=O<=|5^bTLx25Q)lM;vmKEMnxUDy4Fb8dh zq0N%8mG8~QVgg$;$z}R6daw|mF@T^x)fjIB)l)o|Oq#tafoi-d)gQWRB%S$wq^%r= zIFy>MFtUXqabiWbKG9VvV_=a+*%l;coCo6)ME>c75Ps@z!YUYJt5b%( zZ>w}JJ1vQnhiL_N;2Arcyf}jF`!}Sz*l)I_byJP9%Z3v%(t0Q~wwrNm4*O|bv0n<$ z>l?^<1kVc>jro=xs_mZhh)~E$usr(V^fEyZU7TLitPzu4Srs(b57&zvtXCcejm-NX zDZ55$^itkop27uQOklrK^sOx8>S{4934Wou(Jrz0R^bk&8AeDEB>(FYHd-2xe4N|D z4($AiWcpCI{1&cJ!i@;Wnh{%OA)`EB9UF;D)i-|>VS{rDO<9;Ny1@uuB=agCZV@s2 zKnZH}2iz~TU^VpZK^|K{%{!MhFA^2cEFzun4B26G!ftW0vMP6THH86cjjkair=U+y z0Ub8XeDo`BHLi5o z6h~V>$Sm5Tcq4bw3jhX@5j{XO)LAcvC>7hp(>2Cu}V^;oKmT{yGORHMYr z_0GZ-$rs%c$}BAb^ZNaJfT9?Y?=FP(Epa=N0d~V{R3nU`l|x$TqI>UOFk25ylZFTw z+B;wt$@O#6lH?0qLlHJEll(!VmbaO|wRW7+n2Y^jw93K098&C^d9*Po@mWk^POjv* zRuqr_D7Izi=#Tcsc4~2YNK4yg;gIBC8g2#DtHxd&QkTBlmGf+!G zu>8|K;t2{LHRZDO|LG)-AH_!wa7#8*yXLHMk$>Ww;X9Y?wEaUs=NYaJ5GZ z1@099SVFF$T4p6hLJGuxtKe?&W-i{XoEXv53B^Zf|Fg6rAE4p+S9<}_O#3S&jyKlK zEZ`I^*r}3k z+o&IJNh+z(G_Ls6Ukab&1WMdXhMtN%oCPJ`$aE5jzjmxR`QO<-hPz_Z(sGj$7&?03 z7lgn|{4?RsS%{ryhCowgx3{sIl+l&rRP&BLa*S|P#4}USRiVY7a<=yVqn)4W9^bj9 zTZ=R+C-)gbd35yexr!NlFowRw!|>9J!DW;b=?1hg#yfk1&cFtI$s+2$8YF-z&XXSq_rNp8{1HLY46d4D!1_6Dti7Qc=2Fqw4H2sQX4@{p(d`-EwJ`2BQolZBgj&au|0vCi*r zkB4zFlap{Q36NSdnSE|1K^sVyP;o>R6)DcS3%8^PsldKWsUuf5e773(hZkvm%@c#m z{$48ZF#WKAYx!~X_+t)wSvh{7F+?2~rJdKkXhEB&fq>k2k66ns|0MUKM`Xwm^px>V zfc=E2CJ4b{3mREqmq|OlMc8L6fx-7a!n`{-F*u?)sQ%_!W;UrNg~ilyZK0nXTl*4t zRR(+|hz+oO!K?JHs!gZU3`aGksMvX!fU=ods2XV=o;1o3#CVCgOAc^3j?nrCMAmts zWXV+EP+)I6m{oprnT+iC?qDM$P7I^{n*WGu)`n#xk>dPqPO5Egz_xJ7$9Dg`H_cQ| z1|>KC+A7rDa2JPqtlWF3BU$|w-Irr_omLKJpEn|a1bYcaLfz0ZUt z92{3WUI^3z1|#^x+c5-wn7$^T{-58>D75&kLPi8@x)FR>#8Wb4|!zp zN6>KLXaA1x^ig5TBuoh)73#EfsT*GkP<<68TEPsY-wCjV{nOxnrMD?X54pZ9ZuW7S zP5D~^povE3zNqwG0`f7a%6DzX!kJ8I@V=36uiw!j4qwVQ3A$Z!0W(;!#;yt{!t&Gf zF+2F?jQ)g7H|GpHyZt^5P3|x&m2jYi+l;{tGd#`VDe)_je?o3kY`pS{LP5FoAP_7Z z{2-pdkP`~H@E?zmgts)2t~(Fn#<}EbRAce@84)Tq*5bcqL!+8&`9>Pyi3cXGEvx?7 z1;Q9?%kf$D9Am@WQiSM*(iEa^usA(Yd*;IcQF0K;9F_t|D~|pR|PQ z3V;0%89nBw5HJAIpk8eqSIaXpQYo3Adk+HCP2OqZ4xxTljcKC~XD%d*^xki z_dC3~#$!~$$A~|?A}AW!kGk+~g>MZW3_L!(zTVnl&vNZ<%@g?Dek5Y}@PeSM(rmyp zo^Xsl{WDj`2ke|YnA%0w!fmN=rZ13AM7y8-aZ?{ylUk8z#h6=o-{Prs$m{9$654SH zN|ql;{p`Gu%O^RPk3Wi1y5`nWzEW++46P!>kj(Rm|i^Dhh(543AR zu%RMleO^9bJ<#YDD)rKKarwgk(_;i|P}8Ms-a?BxL^W)+b>O-9Pg;RE!DAe27JUf0$&v1|*dc?AJ9fN9e0c7)Gb3>{m@9(r zKkfOJZkm=|Zu38t3q%+zies&Vn;Gh_<%Y+4+CgNecqR`2+5>Qrg#S`SdEW(_>40pf zpB{x;xfwD~IhPk<%FK+GJ*r25o$f}Bz~k``s8SAHky;hY*c4jzM*ZLk_*#Dy9*2E;lnEpZ7_>K&0&_j;y8!8m zLMPk#BF6|+xxSM4*bc#FVt*Tmw|8(>^*uysM{WqLt^Fn|D}P7vk(V6drHW}{036+2 zYJy=HmSw~;%0dF~kl&{;=z-D;Yei9w0LooaOl-%5W;KDK z!>vv$mq;bCnglh3M+sm2FTw5wu>PLA?^uSabtU)P{ROV)J}BW-ypq_6p#K8lhXn<} z9*A=uHy^om*|%(uuD(-*3T2OwJY`8a6R2o0vnZNmpsB8ta1vh^Nlrk)DR8AMw9P7kbbr3uaGZx%qKaM z5>_o~q8RWS2;+CzC4MoD6(!%W%Ra}39lsFeMC%~>NNTy?7i@*N4NZ@<8T6&!M)kpM ze0SH^a2&^^e#!dMl542Bc7CQfqk`;w1FYP!n!%7!H|rjkHDp1wX4kx?dIM^vQ1H%T;i;*pUG0I(PiGu-Q@<{1|XNn zd2LusOL{q*F%LVMb}{3aylZJ|P71^TTmFVb_tH#%%ZrcvrjS9$;gn~2{kNFz2{Sab zQBcKX*gGWt?+qnmJ}9UT&@+RmuLA&D*q=fNM5#%!)Q9s@8a2FqwxJ;`KRcB_lfmju zE`_WjW=ckF#8U>+FrUNwHZKI}&_r5%-j!Jhw~j|`c)6Xc(P3@u#|xAJbIfAXMG!6r zWv7AOWp+9M>h>NAf=aY;>AHk_QP%_&yW1$*grq%BJ0_Y9p;BN;>)4T6R7|<^@BfIq54b4Kw$cByjSkX_vPx5tq9~}? z5l~T4QCzzb1tWG8dj$*juCXR!?}{xk_JX}(iQS03_ZsW@-Mcf3$@{$j|MPy%dCq}+ z=ep*e-tL(l?hn{*n|3#xto$R0W$ZKv_xqH^Zce=qxd&TcAzbCuh z^^7h0cI!LDG;#Unle+%ay=xw&Jp9Vlc#wId<=T#=)+HK-yWO`e_3Ch)tcfiiudCAF zd56XO8g1H_^Q6=(i@-T|67KE!HnIE=OWpYpugg_)^LOm;sM?tm_N4q2hc>Hj-^p(f zVD)LO?dy%{jYfIYS=qebmC;v6k1e~r%0s_0S7%)A@cB3A+lh@1YwK1$I((Vi%eNVy zQ_BoV-TFf_uW?1MZv3g$No|t`Q4J52O46MRjBMNct?Pu+qnzF^bl;HC<7x1`=3cYv z^tj!_zWFBKr-xrFK8GWJar$9S%*5#AOY>e| zv6^@I`NmzN#*EgtX==Nvhr{zZw(p~cl`Q2qe(fLIx8&Zra5ANTY<<7H*tN}$JUXzU z+t=;;KaB0uqSx$Mqx`mRD^w?MUEA*ZnulX%tW?bo@Yr3?Y2V|g7d=0}KGek1y4#zB z8QmA<{Lt|8&O*E0XRHZJvW|Svw_V2BN$t1r=YSXa^ep+KbB}~Bv73`U%H0{2KK;TE zw_W|ueXZ~*I&tNLsotHdjhnSby0EX@&n2!Ocyg~pNeBB9ZZ-9#qOW}LdE2w)(u}-9 zmg_Gi=RG?Vxawz{Cb7|>a}U+CPyBFj*Qv0fdv`59H1b@B#m(v+sCDyF>VsN;u6`I2 zWD~Wr|1WvfYFBn}yne9AzN4f247pq>|Kaah-UA;@&FR*2`xCdorF(}|yyv=SxmBH} zR&mQFR1fHXvsTlG-5>PZbieuKh21oJZI5=D^sz+Wps8vVSUYh zUETJLJQKQjNr&nscP||H$hmZ%^F!lv-_|efSw3{)hhA6St41U?TzS0PUz1iJytZuG zwy>AWLyxw6`{aG~%*QP|WR|#-u*;@nvFRn7o_HFuGj?k4r)^zZl)F$p_D|7qOX@9eb+C3+NGo)7B7gLf5bDsM(o1Nv28}S+O_w3-o)*LO89kmDD!;L zJZa(WpN2eIU-$Q=gCEpMnQ3<^e?^Ynu~MB5ec4p2^2nt=jkk}?o7Si8iN{3;UfJt= zxw7-h3m31x*GJu(yJ+q5+F!3m6>3rE$hw{(TOTG?JhCj>?UC)fbs_audyjlK*1qzR z%rW`>=kyD2SozS;$6g%_?NE2Y(K*-s=brj_Ew1mqwHL>Xb_{$vP+C3uaJt9I`;R{a zd!AK=zWOcM*C+Mmfg+1fZTqr1c%ihc$ge$jw`#l~H>O_DU$r-T{8GM6v)iiE=iLhT zIx^?|$n|Ge1|=M5`F3)H&WAUST6TL*;)W09FKpd$~N4HHLsO6~~vcdfT~_#~-yDxtI9k&Fip|1Al!usC?r!JrC9ImD4pTWFc;(*E7Lt#{u%?eH$~ za`qbMf&0`wr~asEad7g-2a9H0)ZRH|SUhV-iR|*fR~}o|Z_toYeP8cyGi_E%vzI>8 zy#gIR`KwQtPA~ua-NjE6gJ-Er9n9Hqqgd_dz305o`g}HXZ1T*e_w`GMb|28TSEu$L zkMHiz{M@Pa+Xas5m40a4%f|=zea@XR&aqc& zkHNcdbY60C;~LkuIhV?x>la<}T;ZqbJN8`rI(qcFsHq1VJ9IwYJmG_l%lyY@&*n7V zbaq%;(#CS1%JpuzV@fmkPMHB~9Qg;eW{Fu+EeGAMe#;iOUVC@;68j_GdGYOw=WSh( z*)i^%MZ0$XL!7Et&8-!4;!}^lhNr*GP7K@DD9mc9HsS8p`LVmC;vH5;9=m^RN78_! z2{T_ev=84{CH2Os_jWC_M`^m$`S5LK-))VPew*^}`Sne4wrwxl4g9(0j1sF8=lQ?$ zSikgA^6C05&M!^wr)m~oxcybjm1%nul4fK+`gYppSDS?Ww==IV&HA#pMn><-E|1S2 z`W)3vZ#T#4;**oD_~!%9Y1eXsM%skLUzSd{E48lH&k>c~>JBZO8$7Ab`Ia9BpP1xP zRH|NWalmY+=_3NYT3!BJd1Tej0qMd0rj6a7F}9h*nI?mGTRRQxxnMw#gin>0mnyQ; z>dogBshauQ?&n0rReKqDd~?}}6*JubdePLsN2=}p{Ksu)?LM4P=GE{Z->CKJ7hO+3 z-`u47@)GIpFJ3NbcX`LE<~KKMT?}E)S;2n3z4oTeJ=iM3MYpT)^NTH`qnsx#E3viN zXQzrkrH0*_vhU%>%~cQB&E0Z2Ib+oMC82B6rgu7g==|`_HAe-w&;Mo4tu-629(r@h zz5GF^x6a#7N)6I#q*Sze@LX^GX3G4fCGQ;Z9Itx|fx>lL(@8!^9K=$DQ z7dJQC-fO*m$E3Qp(U)At4L{*uA!e*iYHyc%X*;S{n$WFBZac@uR_k`UpYlxE{^91g z)^i#szdUgvu)#WOZM^TG2Kj?rFAqHP%{|C{-=?ACW({gBoxE;)YOY7W{&zpl?)CUd zw+4qAZN6+@Ver^VI||nsch)XC!b3bnH^X`Si z%BM;1Pt@;zK4w~w^lG@#P z{x0Cpf6Mml&Iw0m&3vib|1temUd7_6 zS?@o`w(GQM$L2CMPiUHC)Hmo3t&Cn|<5A4+S}(^ zJoxZi#;`a2V!y0B9rQKB>+|xh0e>c4JN4mQRzS%)XG>2XzM^7ptwZxeA8y|i;Hv11gb-im5Vxmb6?>P4WC|JvRl*YWyYQ!5wG{<-hVQo zL?!RFSuc7fk1|+CS#NK+>u!yGeKtAIsoVXd{mLs7f_I;_s~puZajR#gFHgfGT7B!6 zU4QBZyZ#O()87}`+I)1#&6e-0Zy2SjHqyIX#A2^`L$}wPRB2^&THa5(t}BLJYkR!t zlkL@>sjMc%%w66wYwO`bLo1b@7&kF*UaQ<5iEW2AT|dL2Y|8@&#yR+Ru46g#+=zv5 z_GI+BQ8@g|#miflUrZ?5+A{dgcFl$8vh({N=~}1zqc0h)#+FQJ`Q!F(kB5aVfBAgl zRNb~--W{Kmdi0`76YGl6KiV3;HNWyAkUOe>1|HY1Sts%%sp&%VS98`w`MJ>`)0>oYItz|`Da!EO>LWv^>*^T)Fb>r z(acvZz21$9{MBXuwhhv?b#MJj?c15%tJw(a3#t3&hEI6x7=C?lF)8cE5!H4#8T7bs z>yMYt|IxF4*H3kCE$EUzs_^bgH+{-Xd06jW;J|L_hpTjHknQxX!tS?iV_Vb?SiRkL zOqUPVUf0XkT)S*ShkCl*VS`+%e)!@uzhBjM_lnMWoBHQ;kIgq0=Y_wWJk7R$Uk|5{ z;Oid_w`&|W;cMBh`J?By7&2~H_ak%eRa-f`caM2PYg8OpV|~W0UVcPoA=X6VM( z=lg9Rc|NG?{sqq(T)ncXljnu=W9n^acD2%!?H?NlkK6fSddarU1}A3Us9CYhzH_@S z3|Q33-o4(hi(5aL>HOtpxq$BdN<4XR>gJ~t$CtLK5_@LJiQVH%zS>qaD|c+|{)VYH zw{M-$;KHQZSyv5lmZsjs}_~m-l=x`J`mbVDh@kkY+h z79*?vg}RbWpkwKX%I-D1{iMPkrk~*OG#^Pn&Gh3Rlss7SSAIgO%2{2dsNkN8oWg1OsIvT=0x_AMDwwnCMtTJCc+-!SyD9obG>-R-Z!MR~p^tf9-lmC5gnd5~Ij?CROIc!zE+g#hezW`Y z`;j02n@e;t{dkr%#WK|sNZQ5A#ir29yzT$55`QZjaU$6H7xVXbaP;R0c^3Bmru^i; z`1b9k(o+!g3({}jURAFlsni;+&cf2lngJ4QZ0+nF3OPDCySTc!dw6;kF5;~(TFl4S z&)+mBjThuViSsidAdYu5aU0nE%9qPm>3Pl#8q$6W5?gi?$s) zH5Fw=d`nOkE!h+;6cAJwd$vf3dF0ZUkNFwba-Sn<4F`Zrr@W1L2As(|DgXtU+^Opq{d8= z!lm$npJD~6F)JpO#A0KmON_^PwVFf=$3sPfNREm@03Vy;0Qeze-1xkShKOP0C zG4qhBN!1E|Dix&0tkU0Ct>`~it*GQH`4;>XDM*c3k-72#D$N0kt=q`ZDyd`FUj2uT z95FKXTYy&^~BCEKY}#~yJB^=nD#9h0TB^senXr?g9LpPnjp?(t(!Q^t_q z9s5Wf+NXDH*P~~T^p&U$^9*-P1aE>)5-pPy6=0lT#~1gm&xPqwj#w_B~R1 z_w1Y!9ub<{t$mM9KA}G*)Q#~8P3x1|yJPzlpU~#*LqbD)^z1mGV{&?*_Q_p+LL2w( z(Ko$gN@)Auo%(j~*rQLn7^zz~pU_6(KB2LV5^6O}OpI@5NUYVaVWZeu@wJ-P`mWeG zbMr{ihPv^wbsN@cCr`zQ4P$FX8|p}ENoP}t+NZKo(TMvxN7?wKpe5>H0ZUlH8h@|f z|K4ZAa9h~H9u6pkzmN5w>-+DPFG)ev-S?y{$x2mC)mAk@HD8r1d8y_~p;A}XVAUSg zB9)8uJ5NbfrMdR!SmT{`|LXUMdZ+r5S`4|vZmMlr%J%!;MwTu9R`LV8?Sh^7{iG4y zEynHzJ7=w_w4@wOeWJUIN3=t#tExL32xs*l+CQ{Kj9roap{=HFX70PH5+&_ei$B$- z-=gZ8Wc7@Foz;Z0@r2hVQkV@$rZO-Piydn1Dcc{)3XUWmj_lvP_g)T>Tm{a1d zWsv%<<-h(7S65|;&uqo-M3pIi-(4Y><*>wb-4NX}T`z6gfB09D95wD5Z;hWOP*YkH zp{cBysh#m3{*|P8nrzK-&05VS%{I+$O|Hh$#^OKx%QL-ozV$upC)Tg5KUjaY)^a)Y z(z@FH=YIQZr)%f`V+l*;{&mK$_Np-!B?lttnHw zuJr3sf;l|VywZf&|EGSvwPMc2wI5iU_g4S)_b;tdrq}Wep_p_b}5?fbd}!> z@)^u&lGP-ud1}%9`|lEC*;=j@Yx@RjYy1ED+w5PIrZfI3JMo*W72S005MwlznYxSE zQy~`REu5^Jtg2Iad)tfOb{bO@-BfeFThotq>}dD>??;vByJYNsU;dISc7uAWdWwC) z?{2l7i<^g65y{rk#obHtHh$!!_Wb*gkND8cPgJBSCIy&c1`jUcC%c;|?u|3W{HCTT z-84m?FQyoE*%XrwnqtN@Q_P-ZihEa?V*XZBEa)y*ep;RoiwggBGwwjcw`=pRq{B#fnh zG5y1dyRnpfJ@cJLzJh!faVth*75x*KW-`XnznuON#64I^zJcl15PzcoS7c!w{Sz5~ z3dCJ0hiRsh40P`o(FQ-jhw_c^#U{*UoOzg!1^5}i zU?FrIr)=UPEXER8P_~q~43^}}iO*P{HpI>BuPyi;+ad0=>#!ahuoXM76T6Xvjo5@= z@f)^b7xthR^SsTx|6)Bq;yGpeDSJ!&fKSM!{{UW*?<0OCzQ7^!cf`N&8As?pjMwA` ziQkB{Pn3?4zbAgg7o4E~INp#SB}&-AI&>rLf$r#uIatOxI;1nsCwxQ&%4akF1Po-@ zFv{#HQ<0Y=mPa((5(Du$Z7%vSP6-sp8>Tye=h%cS45nP%<3}=&qQt4hY0#7VAQ)9q z9li*Gc&9a;ab}x9#%sKS9mAT72zxZ7zY!A97<$TYw66^V%_!Q6Z7H{wwpJ2oKCZhvVFa;g)BXXGBmHB4E4Wrm8^^kx@NJJCFp)MMu1zMsx8o+>N zXo`5$L490cTW-OH<^Dz1!4rm6 zCPt$s_OOhLxPt3=fy?+4*YE%j@eEJ#2)A(`PjC;9aSL~G2Ul?cmvA0`;5lxfI?K-| z-o#$K#yh;nTfD?8yum(vz;2v{cq^5M(>Mu#=H<+>@FSj~{}fK(0KP$D`@Rr9;WNHs z7jkhB$8a1+a1@7e2>bC7f8iAKzkz(*#2NgFhnT~1XW`A-MywAF(^rSToK_ zq`?NOFcVWT1Jf}J)36$`c+Ir;k%xB7Yb)_L{E8bmg5R+d+i)1Wu$^g(Ud5u&KC3KA&=b z;w84lk9d(7Ks?Ftg$!#g=EHRRupbAIi-S0X!#IMYIELdmfq6`OMa+l%6iy=#XK)th za2|i)0xsebF5?QW;u@~wPYgy6*2NmOu!0Rbvz%TG)4&45Fcd>D9GMt_3}_+VQKz9B z`k){BA|1Wa16|Pxspx{vNJe`kp#wVNN2I_TQK$@e6hakLg$F$0h?>yD2}Kc&7!*S_ zc%cPKBLQX57|qcPv8V+f_`(mhQ3rAGM*xbWE(*gL)lmaQ5QYi}Mv5DHtk!VdO`L?yVu4NXuEZO|HRQHtXlg>=-! z63P}L8w(J}d0H3sP#=pZ`x%Q-oBn~QgF*O(vLNOWPu>9E5JCST&d(PpL4QBYM1KrG z58OmAq@g#`(H;5d2^%iT&BU#6WPUSQ&MW5k5`#E5yC8+~Bw`1&$8m-gM;FS!(7&2# zhBN&Z%EZr)7(jVNVp*h-pJCWB^d#>~T+TEra0B=801uImo4AGBxP!a6hXAHc!F#6v zh52UVHcORcz+Pca=hSy!YG1& zzB6deK5C0L_yHRkXA^wj3kS-cvpxG+_qW6k_=H^g58xH~KH^v63mhVUNBj$)afJTE zcujtg_>K4y$H?CkKjI5c(0?3n$d3{w{PQ#TFv{#1Gzp8?r=RE-pTT>Qk3liYM>2g; z;#A@^=*fK$jH;*(U;KBUnG+Z`gn9KLMxz&MBL<}?ufaZvg7|!xOxZs_3l3!*Kg#_P z0P)=Qgmo0pRDGCc7=9xk&AMgb`)8>C$@7tTCThWa`A-thILy}gd?TJ~#52q&%En

    2CnGnw;u@KKG;@M;oYGE;k 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�X3OdRifcN{;Sv$*Ys(Dj+uE!ZKuETdt=wj$e0@O{ZwF&_0NS$ zg`t7=QT!=#+W*?i%~PA-zX70@+x@q`_hvozle2lhi>D^{8qe(2p0gQ)ZVtLN zF^2Il%gghTK-$S;qb8r~yEXVv;GeSmdEZcs>zi4335|G;;c5C5Z^JoHFf`(jmObN9 z5a@wtBrS&ux^hyUet2px$ukAd1U!>zIT)oYCvDF*nkx@ zWWJWhy3DSwz12=4r!Vn_yjbO)ef+%XiEx@&PRz z3+1~@@GgB}#k~h9_g#f~=OFG1`YPXjcy{1f;W~;jZr+QM!mf*M#Uj3L=KsjZ-h)RTUSB^J=z(D80H*)npV$Xo){Y1J-;C

    {CA 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

    FgY#Nciu&P?}cNU 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

    y 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℘QtrivllzvL%#N=s&A9h<1L(Bdc|!o(4TW(mX*1{pHKT1 z4c+4N&cj~ogNrj2nRER4-1??a-*4S~Q}ET+xl>>mFBq1i^Ug|C=3Msv+%hfrVrc!b zQ}6iBIQxB0{A#~HsK4Kt&_$i$QvtIt@I~kxTn`r?`O_L_FL7NjYfJ1re4_V_ZcE|2 z_|GHfb=IxF?1Rluv-i5Nc`{abxYU;yI$`fAB_3ez-qt1W3f>()=GVbH^Q{=Li%u#H zZKIFF2h=CxhOT@Rn8kk|MK3=_Ut+)m$_tt`MlBa=wtDiq5ui9N=`q-I= zru$&`_j7a?*yripmv@k8^iRX%OF5rX+9mIuyeHz*l z4*|J3hr0iX>|2}wFY87U|4ZrcDR1wy7kH7MihQrqXhU-%hyPX7(Y_!EAL&MnniTf$ z!r07Hi7Ow7>s&Q{*3UMFg3mUm#I7g@E_1IM|2og1eIf6zF6Z9pkZo~(sSl}7qwY+5bwMeQ{Q*&Ew)A3mw9_Y|9~m2>p=s|&~P8WNrJKtscAo5R{` zNE=%mNFN*KJ~;X7tm?C5aR~ebeim&MAJV;9@3ZgpA@%)>u{iiOtMSFj#8>)S;hE~YpZfFnjFtnHr%)2(9-nS{EkwI=-^Pr1u zw6!BqKKw@|tBAK@_O2dt>n{CQl$h38_IBXg{8Vz?2ejw;-O49gcb4luv=6bR{foKq z*bh#cdmv{XX`iUMeWrQ+#{@8}Bc9@6r8D2w0c!)Wu1t`xoS0pE-F!>Qr#lSo1o>K` z$UZk;3;F8E7nSai8#Q~+<{4TMpE1v_?}>SK{Zh>H7o0pzl$BgDbk*C5Zz&y3<)Hx+ zzsTfw>y++w_y*le!Tk~;{0g8+?y_XO6vN2bbH`@0GPX?q`ayf#zq5`)_kTfY?6+&~ ze}y#oEO%Ry2ESw91D?ZuhT~5@9_t40BmH@OTd({XcGI%tI$$VqaNpUFU`l5kEvjfu zi?18Yy|*4NU0dbfdG}?58`4q5&(z7_TP|jYZeD$CINvLitG}}U& z@G8D>|7ETZmh5SyADZR7$EfdN@`?|C{VT=~79CP?SalvK*ZxDT`{E4{%}#y_^mait1rfXIWng#ShvjFRj>C9<4ZDr1b(rp z_>@z>6UWr?Uk(9V5uFeJ2r@5FYZESG(|`r$h1bYh&Zv zmG0B|uW;xL888-F8UsyLLR+rv+2F_??V-!(0-t2NfV%Htto>>7shPywE*tOY#`>nb zS>*MeSF;!M%ZbieT%{>KWGV2r;s5)q1hDEX#2YTG@}(91^)aw!+7Cldnds(q<8z=* z=MJc;^m`LyB|LtEG18b092U?QFQlj^WWz3$S^#y6&`tv zasP}l_283l+A{VBj)%HI=SlW=7;|GM%%m>HuRavm>hV$W)vEhLbxTRpd83{9^t^gf z^M}|EeYm5Kxc}ic#inJi&hSUkvwRBk?Y+mq9kJ{>WPN{oH)$4W)zFX9rI!$oea-u% zN7EUbZNaTO-_u!x9DDRg)igH(YE|}VE@cs*2Gk3qZr!A zCpP}xbMTqM$8z;0^!sMZ)bGKvN%cdcJ70{hQ5&lNFM!UAe%=0E z)MXQcPk6S#$0y*U1>XGBCDvBSNcC0vOW_!JAO2nSqbINa&3wghXC7_qz-3R$X>E7` z@<8MGA+V@ii)2E$NBk-B{u&r(2hqp z;ypp^5lf(#M_4NgAC>$Y*}K7t2iWrxpLm107o!fvz!rYO8&$Xb{ceG#Z-%ySg2r!z z)+ez>xPh1gDQ1lz7!|{>GC{vuINuX<`xSs!3+I32U3~gA_}^s-%FM$Sf4f`8izEA6 z-kZojEKz=9ihbA3uQn8)*7GR`5u6S3#erfybC~(2`6K^vViS4%HL@Ya!rt%17->(z z){5R;m~Zvb{NK&DD$(3D=_R@LH(5hQQ;v>Y%GoXG#mM(QVPaAvd!0Nv=6nI0a@fZ^ z=UYfVClCA&U(<2qsZTyS@&&i9mceQx!#)fQ?{n_Z=q$vHEN9JLI7zaHc?zEz!gwm5 z_C!?A)zs^}XGXRIZ$0bpFEB1U8Ao&ekFpiwg`D{g;AfWy&crXG{Jee68%TrJGw%S8 z!{PI(Jio#7A)XaiP|sQLSMgf&3>>c}s9(O1LF!W7@=?&ZM|rQOk6u42SpOX3{xZQl z+u+{gwH^LuvRSneTbc26eJncb)sF9~WiR}!o4NBSe7s_tc%0WpI60g?KZ(6u;tuA~ zmSkiz^3(Ct*Lkn($W0dj1F_*Y2D55Yi7P*fxcP<1x^N3I=6PO<&$hmWw>t05$We5t z>+WEl$v*1WljkN#oA1L9^Ldm%86H1&EiBnw>>eTf+DRp29rKV(6d^`Nmuj&{cMQXhV>OYN)3 zO^LT~uh?y*uPf-FPsLpsmLTs^WTO0WixPbUzAB}I=XEZg|DAV-uXV_DKRn{6m)?f{ z4IhyXBwi1GPMv9qQIA#d)NOx#B_Muj`sUf(@$Xq-)n5@W+HiLN9`F9#fb_UUNpTBb z(e=!$r#^7kI`C)tQ|o-Wmq#?QjJCh_QPAwUHDUAExKd{^thOfL&^+pDuYd0^$Q0>8 zw1FP9rD9f6d>(VSA2^WTyzt`9{Yj)%p+}(O?yLJbzAUu29@)^F@x|u5LONSv?v-s1 z{65LdS$z*OPN{r9(>`cDF#2uHUfrTci#4Lx#!>q1Z)0|sHax$Hk3R@zdTVak{WLDk zXKMqWYqhZxTlx;#s2Uh;+b~=BbJ7Q4FMpeKmv7n?ynAhJbKCNtSrFXjd~ZQ0{^<^U zYMIaBS9-_cnfn6)ojb?ZoVBIy&kR75UH4!Tjr&gK`MJQ*Wb9hTK8X&LZ$I_1WB=6r zF?}FS`re16OD3daV-1R*KO>o-^#!rZKO&YP_<%nzn$~MXd>(ve5OeQ+;2O#q`6}dl zHRD*rd@bSL0@=G9Uoyp}=xp0wiOzsee&!tmh=b{)qn)Codc`!&j4UKwH00UD{=&QJ z6Mi2B&JNne?-||cK7;Gi+bRJ@#fDCFZb7omLKaJp)}9Z2-d6!VZ(vWPo^u-Y=&wJz zDcUIBzFx33^*6LDIr;Kl;$?zA;cbx0ZBZ-+t%)=37x)$f5AXGfHp1_0?n2=H5bm*N z|C;=f4%k_5Y?d*b^J@2tW`BHo$P ziFbmVLijfHQibiTAnfO>tTj0s-$r~k@zQ7t>uYF1I2G;Pxx}%%)-vDFEh1B)?Lx++ z@LPk-yt_kd59Y3DO!|%1nNzXhJ(Xc?Rm?Eiy+3BnqO$ba&N}4iLG)pZcz+PSzZ%$g za5j1hZQL=?YKuS%CD6hT(Ythh=ncj)i#2X0F`8}#*V&Za4sBFu{_h>((sWkj*L>4_ z)Z7$pyvMtE$*&OmUEU@GGim> z0mD|HY$I{z!%2a%54nfM!fsLnANqSAE54~)bWS*svw1{v(@nX7jM^QXxhaO0-b++J z@<#g7y9vHcfp#)oc&E7f(sPik_YL2;AuoOd6YV`n4&Tk=`22t}O`U zj;moVdU*DiJyV_D{O=Ugf%#tI=%X7=Jm|Dn;zhKU8-%KALe_@*_qh+x0q1$+_~>1^(8>|$L@-W-*E|P|+Xq_lQuw9^rz0zK?G1cCx*J&Ykj2Q0 zjltYnZ=I?;WAB1zwE|Bm>j=@n5awqqYl&SI1)FKJRyfK$!VCm2;v>xK)A+|x?pg8c z;hErjq0tFC@9}$McRlom-m5vVhP|?qPr-8?{;iUuw}ab*$kD+*+L$WZ=$>O}<7SsO zu$vn``AgngWY00h$|iY9i4#&PT_GbLPH*aj!=IwwQNe+U}@_ zyKb>%+{4{2t>R7G`?fGxURDn-EXt-5Q-5K%@-pmIWecgV_(bKl)Kup=wTD$U?|~~D zHy?qA0b^I)tR1_a{8kR%5X9CPGX5)`Y}7jM5OnCr%_HzY3^^b?_Xs9(}rR zd>%HGY!@fx?tGcZyX;OK{UJU+en&kz;l<$zX52!~dTt@|;{o+2kXC!i%U1kO=0+1Z zVlN9Bna`D*8MT|h!A9oTJY=bOb^KI6Pp_||ea^+9lNN!`X8OoJ|H>N1eiyivoM@uX z8hil4+)W}{gol>ZVC&ii9a_oJXGb(*`%$@M>)Dz=M$3xk@%@|8IYmF=KO6s^6V=;_ z7V>;ybWPDiUfQH>MRD)>+HFOTde4>Hihk)l7d^>8eGW5zMN6IMqF-BO^GVwYUChhF z4vO5JL?4xJBl|6a&zV2Oj&SG9=7Tz)p|L(42Z`j4pC3w=RQtxYLh`3_WPBdFk$fVG zEXk69oqBHct|E(h%G@6l#!eba-Lus2Qgjz|m^&D!JNTFGbNG4ImOQ61SM`2?ch1wV z%BH@n6SP&1e)SX5#d8Z?8rs0S_6bzp>z7{!*pla&1#LYwM^$?w%murPIjnh5g39L;j{o*tDSmwIg|y8_M21Tkt~Hf-5UQ|5^q+a@-|y%BcE(@rRcr4O*xm$=v*F`R zvQKs{$t%t6DaqE#D(Wm?UZJZ*!rZH)xoJdWJkj3&fHi> zKGEOD;Ewzk*Fyv0aMMkxVXJre-d+=wf7SZpTIo&UkTquo`L%bs9D91h$!oV&vhVq$ z468(Nc=L1q1=t9go6_xN2SaJdR6R>wn3m(WAe~JxX&9UxYTRSbMcf2ApUwY3)O-80yizO5onKKhJG{ zkI~=H-adN3Y3+-S)OW>L^YExNwf_X|H)-D?LHm`oufC3V|Fu^&cLP4<$eG)Zarc*O zf$(0*L-F4i_$K=C`0qj99Xf~a!FPYt60G|Yb!f~r2H}J4t8T}y>r&G6Uc;SK-dIR4 z8&n({|IcP*He;dnv*JAYY2`8(FRy;wK2dNsrdeC78P5oOOteHyi89G>$tUc4=3G=b zkX2hveVR*Gouw}ey7XmTm%iLXUoKagt1qvYY#w@1d|eT-Cf%|g5BVMMqA6#+nAm3L z$-_ge89jOE*@ngYw6+($>n;MV>D0g2GR_F0%P3Z;z6ock$&weA+1q-`u>;sKcMgXG znWpbr&lK7cduTS8xV&rXihia%929&FR*f zX69rw-?g_tiT2P_BhA>ByfNNM9N`Ffl*~ABcLjBJz~JdEUDMBGkD|^+h2QECx1hhB ztXbwkH`0rn!OsuTNo9xh@@Nk1L|46lebOp)ROoBvwg@pitjGU0{fVFct!C(p2R0r4 z!-0ly(}6Kt-Z>Dq!po;mYdsLYc*#G)_ilP3d}92zYII)FeOJAvqYY@Db`Tz^LUYU$I!U!zgSx+2@Ts!G6Cm(;akJY=7xVwc{h1_ph=G%!spM1PVycpf`%?hjc6w&qS zr1)s+o3`@eQ+Yon-vY)=_1=%nF#AX8}Pv!*ZcVV=TDgQoYe*|4g zuXq*z#`l4nJ&_fK_oSTG&fDa@fwqslaB&po1l}BbE8n*R=K}Q9`v*nW zICPR72?EQTFLNKO`fn*FtNQPh`4eS+0e!u`6hAO@fn8TT^0#pN*ln98|K|bOfEWH@ z`vKvyxLfl9&9~`)SU7%6_hq*QPkd!tI95A;AB6Q+A+qQpIye!9V z#eZ*C+rLxS=xx(yyma6_>S(-U+krvaqkcLkzA*Rw1I?FM@p-_edQ8Ii8XY}cQ^nv%Gi3LVq)_igB@CbNN zEd6=H-^xo2E*6mA;C$ohIKPK);!#iPj$rIEeeZVm^l5uhA@?{5uG`5Y8_0atV*%AW zaYTFpYcYMB#W&Jc6ux^p-F%yG3(j-tX1wUefpG>fCZZi@t|q>7!SBPWwVTH5>*&MM z-^QV22zB8k&uZ3&*D_uhw;Be`KyB?7t`Zk($){s@nsqjzv>_#^K> z)H`!i?-jhy=G~zs?C`vMJZZj&1+q~t=G{Ag;`OBnp3C}iO@0+}m~${*y2leoF-H2f5uT{L0dV2Z zm+Whs`LnNL-$n6qY*kmdZLf3NzB@tNU1hZFg`Ul0a?ILa#n_9-6$P!~dzw1>xD1-D zI5;p~h|PGg+m7cyF@<+@N!FH~WoQh(T^Bs(aQt=kMy*dN$bp z5q|I*O ze_?_A-LPB7tT|ojVPVyozuoWa|4z|gI4`~qo7PKi|ChQnaE$k^^p}VRyuCyDFnf4e z#{O#~I9Yj3sB!K8V7#ya8Gkg7p1gXRdX7FS-?GO%{C?5F@1p^03`Rchp#-kEGsttTV6l%KBphp=hk=aN96Q= zSlIZDjx@>nPpvO+EViV>I(OGvuK#$Ld^G{x?^|A$kDqv<*40VnWeX?3PdJZI99WW< z-@}?+IgP!jz`{J$sd=gY)Pm8S>P)S_veUcj*4nm!`CrN055rS8GB#dYQ{1+~a|ZTN zTP^UWFgR{te8NTe-UXbvoBlTCr|nNy8`OCU{{NRcty>%%6(M^9$J2}P#hVQb6C2SZ zihB=>7rkA*TCziP(%`hp$?vV<{5DPL!-A=OuGLtHEN`F;>#Io3RPo!6y;i^dQM6rv zE-T$~Cie(h?DdK6>$_DnViPdynkMun+2p41U3`-l=Px944xmFw z9+#6=bCbdU>~-L|9{D8Q>noFVPKWZW)0(~Vj8BWPxn$T6dgV!53a?e2$4OhtI$O_@ zKltsLHUh|ePtF}8PbGa-+u`JzyhFrV?t}a{>tO1B`q5RzKf|6z9cRLac-QmD z`WheZJ~4Lnml}_-<~)UOaKLeaL%1)w_l{uB%qno< z*hF$7L&+b-jwid^L+Bs{_*7+B8EJ=TOXcVr^2f1l`r`wh?VGobO;oNcZ}Ir!Qt5dU z!*L7#ItZQRb?$c2S`D7Q@`ucAt!2GDf<1^%@?-6LUdXzLxuP-XD)&0_XV?|wzls=+ z9s8f1Wn@)SXFbSUC!RYU{swGyUk|&nTUke=&y-PD6|`aWA>`t4y}Rp2#eut6@94%x zAL9K2y*5&mLi5q=6W!^QpGh9+u3p&|(m9V2`8MhKR?Z9? zdcw|o@sZ#!^8Sv`naaNNWU}_hjlIFtMO#zIKRzxxcl_x z`N?pZD$NJ=UmfyEs<7&o@d*bm;*+5-p4-7u#j9<3BjP&aN2sXZ?Z?wCM zeM<4c>i^JvUy0jFv@bpd8WX*HV^@xEfX1#nI5T}t5?+bpNxIgJ-AHc@6-09G&BwNz zVbYb~A|1R(V%+!crE8si>_#Vl*yPWTtYxfs!^0BIL&2XYUHrnUQ*C`foob6a6-GGv zj#Do&CMM$haPbiS*P1(fkcW2prMuvHj~{OzUd?aJ@syE*AppNQY-loZ98&f9<%up& zrk{WOmT0cyTyL0In5w6#O?xfQ9V)K?mt%Kv)|~5jckr4YsXN-f@^*g8I~UuE#k1k} z)IE!L)!j_&s6_qu+o!y78pe4}{44Eg_=i+=`*P#A=41bJ{l!GT;V*o-F@z68QcS)` zieD8*pH0<$EScUsKGMZ6M*G>yi!Qf9J}L6+)HyTRIsbY9do%4>$f`GyIgi5MYWOFv zqwznOXV$*(N_g5J&Wm67j&r6!YdOaUCdUrdIdV~Qz}QL|L;1GIS4w_m@^2BG!)dD- z8QnzvjN={)-r&{0lYP5(>Sq6=ElgV@pc&aoYj_tg(X;jjL@!tG4b(jXT(@hky83(& zU$svt@A%hX8{~Zt@9+U+N@D*L)v0#&7+KeO57`?J$+^|Y&=@j7G%#(DJ1!NDFW6I( zWAv$tKCSw$v-a@(ZV#Dp+hEqqqK{|!o@k8~_=00^>ng9bXX)Ac77`N$*;~>;JK$tx zwWDhoT~E5)6xrU85e>ju&Du}<-Ltso$YRW`tIYa#OT}vZ{aE)rO?nhLFoiw)G;ljL zLB0U_7Q6Yp{f4)AN2X~EPFp8V?L*t_Ax|duz*1n5yjqG5^woXcOq}2`3EC*6{dry+ zJpYSvsD?i_o+q6%b@?{CiEhX>mZaMj?zD>DrKoc4tXlmtCeZJhtdSpcfwEk=G z<;-K9L(R8)O=1kdqdT{m7a2DDpC+!#6!z1V{_%}QABZ%e=k`m`etYjcX&gOvV3X3^v3W;Aa-&+may}N34B( zbPHP6T~Xd6e2u>E&9KU@Ix%V6?vYkm!IjOo;#pNTsB!%jt)r|mt7vJ@y+f?B)XTf~ zEWC2(t%bZ74Cr=Ev31_SA*2-yNV_KW-tdH7msw?11A1OF?!>j*#$wA}VW$;u3CEI?Jv;xwqZ;Q_H%2!Z6oZ57g_8?o+tvRoe$723X zMgLg_@0wz4gPHc9Nsqd=agX=<*8mO6fN?!{v;tced%e!QOti0lI$!u6YXZ?)lzAw4 zXFucU!JDC1N7r%W#t%p@2i`wpyOy4=wUYAduAFc24IVgixv{&QerJgCjmLJZz2Ld< zK)rX>IXzobYbeB=4A}3%6Q|Xj%YKmfeK;b&^j)0QE&vA4K83xD_>yJumVL;AX3l$H ztKHBN%)I?qC-JR4y{}*F($^7Z=<9IOr_fGqg1#325BjP&31{!?>1&aN1<_*d6--XD z_HSnISZ9dk1Ns8DViJP1vLV!t{vw4>lufl6O&8B z;4q^9!nBC_52Qtg@UHyT;8D-v@^q6H2G7Nu<-xZgBDlr?mmg-q*B|&=&o3{oInOG- zlCheJzH&_SFq9MdjP;80|9xt-Sp7r>M2^!(_3dr?b7WeexVu|kF&LK6KlX>|f4{LB zmvqKrBIPSXR#}+w8Jl92X&lF;TV)!{%5$u;BGSjeAIHKU$H6Nr^T|t`bk&!IoI{T~ z;lZr-@p(G&3H}Bi-dY)pT|>%?4esU)i`Rg=zxwc2Ouxs{Z{cqoZKj{dFC8b?_)p^( zp?&ASm-`UFX3EgFFuc!KIQ!DLC&js@o73@(*&Ry%Wjw!UGo|Cod)E} zUBq7Qa2j#?D~R-H1RqO#CS6m|Bk7ukQ2(Qq$qy{HR@dL!dOk8QCGf2D)6bx# z)=+BX>BsMFJPf{n70Rof6U?hsdV4T$&os^l*AKR~wy>_*$=OZq0l)D5QN`aAE}0j~ zzl;AR1Fiiv9xr)xSe(uIUbWNjC>@)cUi;kWZ>)|o4{F-s2?N3t7V5t|HDdk?-G6w+ z1ElYw-AeN4Ib5D*(!_JjJ3Pl8Hn;c^+EjazIg&jdomDd@e}iAoC##0VAEf<{XkYR~ zvScW9HtS@5=}>6S`45}_>7;dczs=-%2ES^4M}m2qcW}>4lz1vT0)g30hubH(-8!pK& z6`ePZ&My_MBO|vi4c&6|g#`mkcb?BZ1RDmHKC^9L>9g+*EPd|Nfu+j_=a{jtDyC9(EM2TGsiSC2h7>gGtul-r)akODVjaRx-tgMJ`?J{TC^&fZ-S{L1xaX-WA1-Bd( zt*cGZ`+JOcS9)Isz5h1V_)Hsm*I97UAHI1LZRl<6oA7_=Z4C4lPED<~Tw2c<0H150 zTzY#&IAZ<>x&J}u|0rv{v*l@Ie00}Q0ls&K$=ixt90e^}=wl6xRU>0%GftwZ7HDY| zG}QntRzr)8PYo=c4lUZy;tXi90UE1T8R%@f%0X*0M90u?Soxv5RON?W)5yOQepJ@zb8D z_(9@Lt>D1_ZR7s-iQ)&(F$S+68Ww-;llESJb?5xpK*rda$Y0IvL$B%$+Qpf^RqV$SpA(G)}T4o#36iZ-0+Rnl4qIR$F~NWo)AbKH=Q$dGg4Vk{^s(= z={>CYuH~V|8Tju{&(d?SaYkRB2k1G_I2}K}UF@kiaxFEoE0i92I`qw>(j#)2>o@TG z3|Y5B^E{(Nu4!CeVvgfiRHwB?xI?DRE@F-wnUZx;d`~DXvX`Iq;Pd`pY_l+>u z^*zwOMc zwezjnRq(jA!NBZhWZJ{b{hu-K7cu7>nd_2K&%hJJOP_mWVCiq*Be#-g#q$G8zfZm& zC?7mxI&Ch8FU(Yac*8S{-AfAwmWpRQw~cb|4J=*pDROPF!#9@0H)gShdGSdrjz z-g~XJ*IIk6wJY3pcAZ&gFM{qag#KnhhY{#;ChP1BeC3>VHW3|tgseOhTDk^WdNeTj zNZr~&4NIUYLrc)q66nd$5;V00dNQ;mnu3-LO_6^0Hy@ zEB&CnlAma9vrBV=L9{5^3mj=*V?}#UL3`SV^=MDD(1P4)=Yt2jPM{Uf@ zK*PtyyWWK_3O8oF*EWCa*{cc-eyki5eU!YHzk_e~e5WmrFKg_Dr*ombBMaMem*AIC z_|8Yx8L53{Mk0T(`bv)|?2{S^on!Tl6wSb1krF}oh@__Q{0;Yc3eWRrL?Zvk>T90o z^E{d72d%yr@_x%7tusa?r$+X_Wu5W%L)IC0uH2CE7dUsCk01y?mh zeLbQ-S#Wj38ee8~En_pD;yuUmDyGO3{Cr5r`B}aZt`A>NM5$zwM z{lm2X7VZBw{jQ8n3syAL)7EP|d!1*0;n}OS)BVz`8-7cjj~Cq3u)?1inRw~V4VTc~ zRhL}V@Dsj2Zhmp$)m-1QvLhe)`$v9lB}Lw}GR*ZZ+WXG`cze_0+Ec&OUf1<+dR%*5 z-@o(X+UxrMogdd;*Z1#&xc0ife>39R>-zr9jBBs!`xl98uj~6aE3Un+@85-S?R9-#r5uDvhXzpe1JOFFo=N z`1Q5^o{_D-Ui^ATPWSuG|6Z&ODm#73oWiX>D|0N@|9flJ?Ej@TD}Ii@=$QZa*T{Gr z?s}Yxr_rwOUpx=$`u@f9*skwi{2J2r{fl2CyS{(%GC)>Gjyxm{#J8x^xyEA(A-I(#gIjQpw+@3RU_00Ur zjWfqoMi(q^c#b+dD8F~+=*r(vcNfps%p6*|cIL3kZ_gZFneH!c+%WU>%6w~j;{o6K zjm1_`;~0N>kzKw(t&)8@RJ{ekipy*$(NsMRNOF~6byZs@$pkt_J_m3;Fmz9*fx7@aqXcZbu~1w5O_v-vzb zpLW&)OEGn>rmZ{q_EX3-(u4N^>khs>ynk`wTCR)HZLdHl{gRa)S%luHtDp7)|KsgV zi)&B)QhQz3zv*%9b$$QNi)*jz`*(g^dtKkZ3*y@A`u@#`Yp?73H#4riuJ2zYuD!1B z->kUyy1suG#i>FQA9D?jbac*9T>tN_S+oC_)~xtB{-R_4-(Mr+ zak%SoDxOBWzJKvNsO$R|&ttp3fAMQb*Y_`ejqLjV#mfL)-@kYnr|bI{FT-_x|KerT zuJ2#G4BqwqEBb$A%?cNeM28!}I(98O)ph7odH6xC@3SFe8T!>ybgN$IkUeIOtn9hq z+J-sQxtQ{_nIkHTs2kyVZ}iVTGsjl?&`me^iW`G7LzTOH(;Jtfa~|*&H9p4L8S+nS z9E;A04#^pR7c^FKU5c(7VePzzwu9(&+Q+m8_n7TVI%l*s|D4|V{o$r>eRgQhb`vMn zF$O{Vpz`V09=!bf6_@otwI^!!RM`&=o?;bVV$Qc!e4la#=7#2-;fXHiZEJ8kK zIUTvWNO2(1Rru;(afE$b8 zz^qt=)=wPxWJY49+DmXA4UFa+PHSK!i8YJ#Uu?l8v z|6@$Fma&bGRp<{N8SvkVRnWO0CmT1;y`5Z!zyA{a`>(;@|5p6}m*MAsEq?xr-#N+{ ze!>{eV60~{))B_~9sF*->Au&3|Bc?=j}MOCznS;R#cbkh6le4A{P2Z8Yw`VPo2K(& z1NcfM;WL$t?^HK@sJi33804HVEBf~`@c{hr-Lr|jI6<9PD|~-AkbC4OoT-(@{1=?I zy}8Cyf34l^2wDy z?l0-%FX&G#qQ|8cU$fJ5>o*V4xs)Tv{fL^Bo4`3z!HUgn%K(aTaVZYtBIm%omQ z76vl9fL;bdFFBEp{Z-$tb^8|Er&;vlBKmM)hyJN=>er+6Yb$+vjJdm*`A-8c5B=S$ z`-IpA@!li&`s__B;w*`rklH+Zsp2BCm=|YEr$8&eTspPzUfQlb%^BC$z##iyhOWeO zGEdMIzR4!$#CGFN>KN-sfkW{>wZNkI9}aId{`Yvlg7??){su!| zGoX_TpqKNZoAaQb>G&E>-3)!j#@bs}_%p=~I3#NP&W=Im!MApDHFd0{o+t7Ebo^d|{)E(* zWgiO%rxi-Zh=pYf-zy&1GwS3Fkk52#-C@qcJ2a;U=e7Ey1y<8!#U9TfKlVG|O>l7d zyX#DDo<7k~QqyGdo`NN1lNM4Zl4MPO5uOvFPS(mH^Fm9mnUrFMC(pk!XWo8dwhC{} zofk|BPp(^we?Ipqx({-{i5M2|z6bXY6NBR2r*r>Q?xYrC*iHRR?sxFMci*4;mwDg2 zAH@A$-se8Z_iI1OouvG;?fF+O1ScZ&QD;v$KB(eRiVxKoD-Lr8SNUX@aSd{<;3_}A zTCU1xvy-cEqJ?W6bT1$9yrP22Vqb6;ITb_KHg~HsG`QG`{;nHmt8v}U&&kP{8JdId zsLfowOWhzjzS`!A&K>{hw|iTS@`c_%4gSja-?_k=OssYEy;;`ep46>m?3eb*h`v9^ znml{vvPu8)^}ObNa!Nc)-lPq~H{@)+-8Zl2*t>J)@T`qz2NFCxaQhuEzu&W${Uz$; z`g>mUL4rEFlGE*rc|Mir2NON_^|8Zx-|Bgda$0n3zxTIRz5ISkFZ-v!Q>5=u&ua&N z4qLGH9D8rhbxW?Bblo+DlM3vXOuT+ibg-uoxo$NLJkv*=L*yBRhS^ieI zPvlSRb-l@6(f#RnW;~C5Qa&-SW1EyO%wO@J{5!sre_=oAd3-A6KlvN>zWU+I_-ppQ z&bsufhTpRH^%}mF&)_ffy-RLwc%Hqkzh81&LuMc|vJKzLk1x3iAIq#rl|P5ypvd^Z zK(1MlR$?lv{MnKFiswgu4y@aN`2or|Q#O7Y&#w+QZo@Bf!nEwjYkX&0-}^FN2Zp}@ z(_eu}ZT^D$UvmEp_pdLwx#7ryTN<`eKH$<@8|35pi%Y)Q@O@z6{D{auF8Nl&;Y(IF zObBF0KBkSakQ_tR<;L-J@ z=e54~XEe}OBW-M>?E~P4@FxAzTN<>ck7dpN(Iu2o zNAVL{-|r+|;vdjT&xgQWGafoYvL)-j{UR4=OdTq*( z{1!?k28Eat6N7?%H8r0Y6k<}0%`~4Fl@y*6vtphTvyy6Tq%)0exUh)leRxjH%g0}x zRcGoD_i|)m1leyUGT;nk`3vgaCN6DezE$YS^KAjyPy9R&P%jA?F&P=L8!}>dbQ)xG zbQ0y0coALX_vjzH&@pUul0Twb%*am*{Q(^$Skxo*61v5s=q7(cr)bLW9ZD(f89GL6 zZ7`f3dJG*USlTDF72V`<^pT&UgX|yXFMI;s<4JUmV$SF~SuTrDkx8FIZ+HtiRr zzq@VHEaGP)vXK)@dmC}I$`LWi%@HxMjdN+HDThjX-ipcO^4UMExbO$mm+mP$fpP{I z-3oYY;FhlXC~&6n>@nc9fiaajj{>6&jC;_9$uBz2dw(7JrQ-OoYnr?ldVd`{t#ZXE zcYv4oLi%#F>|7LXEP^Dv7u;AuD2#XzQUUP)0?ry z4f7Q~aho;y$yL^5Keor%bBq=1dz88OCAyiJhZk?1l;+OE2*&kR=0Wkx#8I30~U-PI${@7$hkOxA9)`d8ZHbMt|E`p8`zH5Q|AtF zl;_`lmKe9f{8t}LrQQPHx=Ww!P`9#|H9tpj)#U8MZagc6^DFE%*2UlAjIFPAw=O2X zS7QO?EhBt|(y!k&IRa8c6N$OJi66N9r;o7F90~LYJ;d2gGl^?-Y*~)&yJ61M!m}82 zd)O+YJMSmH?mgyjRW7+jh*iB8d)9$InbArU?|j>&rQ`!D!G@(=Kg$L?Ie#`3IXQne zK<6so;B&6;(dOsXd6Bl%&J5aleA>c>jkJ}1MrL%YFNptSs$vjQH~0pmIx)|;orrmU z9J;xVn7+rMA?F%2*J~-en`h27-Mt3Qbs5hz))sNkir@BPpP#*pv+|ga17{Z%E<1Hs z&PDlu%!v?Z8RW{ITPWyD4Q&Mn-_L*^PJ1=y+EZW6SvGW6P9%R<&ITWON_;&-KjL{E zbHW^cSMxnH|Ahzl2MR+S=lyr&DtH%rw{jS)gAc3+{`auoR|0dLn`eW=*-V~|S~t(e zW5oYHN}i26;(u-OY}A_g-+#j!);js666H5gUIW>ePUMvWCzG*jzr(pt>&W*7{XOx? z+{|bmxbzq7&VRi$Tv!-LiEw6`yJzCisd&I+2iezPPXSx^!4&!)BPeZ z5YMl5Aa=Zz7l~Nu$a=<1Ylp^cgga&v8K3oxoAO0z+%(?oFGbfgcFOHl#5nb%AKo}I z{@O!(V#BqW(e?CAxe8))dFi{epalkF_h0Rxv1LDWa*eU0-m;f zDK@pTUq6(SO3sFb;0_oq#DL&6fnLU=xx8je32)x zeiS+D3fPyPMGi`x8zGx-5jh}7y5%F%tno*w3oo?O+S>Wt@~M<8Mc*u9?byhDFXSBZ%ttrm_X<@oCnMcCS;U<580*YQ#d#wuPj}~J7x;89 zb27%)i#eH-whNpRKJ9Yx>BZZf?-csd%$&T>n9c&9fA8Yc2Ya%I5}`LY#+AnKfe-i^4x>FveRCIJv&db5&u*4pY~$+ z7?e*l_CAQb#~#8Hh0)AtDr2Gj1LQBR*Gx)9_6xF)VE#+y3%dW22ZKG_|Hy>FboW2< zU@+7Dk4zZs@B9xAvL>s4zNGMf48POrt$l~QB&&A{-^?c$l^>rM?L7=j8Z^2PKaA2r z`KK4+uQ4oKGQ^KhieM}xUVf_2x?%6r-A4z}Ll!3u89hB|%IF|E%YO1r>zy@&hMul> zrYD^{I*6{L`=HP2J3VRYXuY>MDR;EW!h`a9slN3xSlx3UlVezmx6c=kNgI*?&`iqa!r4F8P_KiI0&3c}H%8 zWn|WVrtA!rt)*<5qfe;bD3u}0S&Q4t3MgwvUbEJ=mkpzgd~YG^;r6m2s>hy%wWGak zfXX{8`C8?M^J$nhC3w*g}rc6oeHN!XL%+x8pdzJYHpZO@| z6}~}d7Wf99861!n3Jy*U{Ohe92Nv-4e-m2=k8*cA=W+6ZM zmB}Z&x@S_aQRE#8CC@rxZ`hK5{%6-WA{vA~T6`8i8$M zN#4e}@=4o3oYU;vlje<3ey*OuzW1DCoq5mT^fOBjpZA$~=sjOgKl4KNkVX&R`QXLZ zT7BDm;SaCRs?6D#ydh`osmS8_FXiOj(S6>~J9^EtdJO4XoHVHKusgEm|^}rHTJRmp%UwY#=VT)KKNm8f1l6+pB37d+imvZ zq%ou4pzKYaU2#f}>mHszruT2alZW|##h^!e?S%&JoL+PK;^|vXUpwgGUc+uF_>{e@ zXl{{p(1+e4-mCTF&>SE6wk-CS9bEi(IB3<5IXwu@*IL#D3!L%Jr_lGb21yqnXXfT= zC!cfNbFDw}Yr58)X{Mb2I-~44<4ZW1b+>JYbmU;&;aS?>PBnSJJldFQkz4++-Na{X za{e!$gr`%{7zm_BCC)6?t?6d(9hs zcjrv?1>aff>k(OcO=wb)$>*G5PY2%JjDg@gAK13s5#F@d+&i?Py!bEf*EwvA6MMW* z+VD!sCh*>&Im$~o1DIt4@a!p0KR*6y3gheaL*wH30a>>CLXNc7KmMhgc%;pF3Ck;y zJ=C8U=uevI&)^%D(Vy%5X_eRddsJ@V_gJ3|4_0!Y>l=K7O+R1kQ~6-7Z_o{uT-DzT z>1%|3Uh6|1rqAp9tT+9&p`B~c{fcxp!%%DaGIG9G_&LYe%~hR5Khz)piE+rZlNg8B zPK<-j;gT;{HfIE6+7*n2H(p11#~CZOW&v#O+aSx%>=zIhD6NUo) zBbDr>R%6eTPmp|5XZV~vpGSd3=aQlK82_rY_Z>eVJFu_;y(qdDpB?!E4PgAVo=oAr z1uLw=8H{5UXC^aWp-Ru!5E~DA(#8$Zv+y;{>;m7Z0r*Z0iUb3|jt(8$ANf!H^04{W`uapRs57_G5fYeq%7OOmYL(e~iClY(IDU$-4yH z8rQq%mzm?i)zNjzR%Cu z+)D1yPXqlz%H15>FU_0Rp9+op8>oE+T07C$=B(#+Y+C%d6fM5I(Jt7!-8*B&^b@z>2t%a()T#0#$MRnTK*1p zpN6x-t;jWV7p7UuTd@f@r-qNt%j5iAU-b>4d&5VhBjg6GgDuGMA(%{hMKYMGN-<|nodU(kMz=(I;T_W@X}lAP!oo!K#FaMU-veC}mDf*2eXmX;L%I`cq1BxOM51 z#jWI{Jc3@+xX_pOPMCW7=6`S=vg8)->$mLqVT0OK`7LXYZDNHjZ;he$M%!vLC9gS{DZE z)3$A@lgabfIKNZ&ME$>sbDwmsPCfr8a1Pq;hui1DoI8IZ=Mgja15V6CrkRJYnt8~w zF9J@{-i{uU?Im|PHn>>W5}ivmAwAsc(V5O4I(M!)x7^NyXRc#>Yw3F_{6Ob-6*9g$ z2Zm?!m+FjZ@Tr76v7@+ef(~_-aoOq65c_U5i^;jq*bW6Q>4-YZ;S~P=%Wo~en|aZ9 zEynWM%L3*+zDHO~G{!ndc`yBVgTBrH7pkF+JcF;D&!KxDW{k{vm-G8YSNATTt8@3h z7X#l&e01+lP&Xgi*O|h1C3v=*Gi827c?~*pHSPQ055oInl<7>P?V?v`#Lu~!+qOHh z;<1Z02Z_(Qij~7F7*|JD9JnUC{@aHS#df&}{bDl~C=lLw* zXHDh|PJTOjy1E_wEmp?P=NrR-x9)hnkF8@nQoIT@#_y+`OVErxt&Dlt!#oLhgxjNC z+>W&sCBmCnoOzOd>-*Ima7Or24a~wBp3VPHa^-qBgROObkhwNE)6HtERo~7DxBg|+ z@y&VoP<#0E-8Jp_^C9gBe|oY;d-yZj#h)L!_(R`90lq7F{!MV`C)Y72-A;}}-DBpy z7=Bs&!0FLa&U{mz$zTi)J%&8;>6Uhy^y=nw2Hm(0cq0Gng9+*u4RG-7?F7$Cb2!gS zxW(Lg=R1{fuX(xhbMVSJUn@KG9QaraJ`Uqdu>S)-ehA+cE==Qlr-BO>|Bt0vnYtcw zuibiR4gOW#N91gkeki=uJQjZ|yh(VO0$xg&ve3iC!EK$_@j5r+;_vr+sxTMvCo6OtS5r_P^vw_r#8drFLTKy_7i?V%38ox z@%TEf!Jfh?&W8c_#dF0U99=g)PAfxwWu18$`9*v_EzMa6s{2~4dGz5va89yL6@94T zI_D<8IU5UjHVU4H{K0q7`{!$&^<*El<;g!CD;0hk~r5K9In>cMc~{b$qD0f zqxlm!`&;F-RRbS3e1?1RMDM&KeJdJp=G3|}%sML@#V_zz@F9nE$gd7gI&z6%}_tJ;_ zk}>#)4`lu3JXOkB$Hwhe`OX0ApT;=HK0tXGe$vWV)F2P$H%sQzvjKJs&q|P8I4kpD zC39CQneUNv+~@u6+x49F>;cxD*TKmi@Cm__&-DSute@m>wfC2i?mPYLmwBg&Jo5bm zxo2ea9C%*Jf2E)MJllRz&yn}~2dpy$$Mb&%KI+Nl;K(%nL(0`ty}PN`Os;zM;U3Nn5e{{H2U_ea{PC|~eRg5{ z_^Uo-Ouw;rIb&dKG9mGSKQDF8N-T%oZ{nNGMZM4ZA#tphO(OlORW~@c(iYZU-$j}8 zMpEX=);2yiRq(xW-o0!L8T7Hl$lt~;!Z>Hz3xS(HyE04s+2wloYcYL^J=grons#~` zDqdcY9IXk%%PFs+t!jRr4DvV1yzz+rh6UfUtUg8#4e)<4|8Ktjct1b?i}^qG=HvZL zd3k1ZxmV8r$&_neW5>=rYgTjkALbkj@QHQVd!P2DKY{m|_T|?f-(1ZzjpKdHcQtmW zeERtmwx`vp;X2{iO8Dzqbjr1qujc$b&FeRB^jAr)fuGe|@b<5#v~AWs`jo-lpbx%7 zx#alhU&_C+e{>6c=i+DmRS)&GPLyffhk}!{C>Jc6 z^T*9R=>M9zKXd;JzhcKzbq_dacmR*1>&8BJVg$R@9X?yOOyUC30csz%{*=X@uxHcs zBf|xXtY{78>T_G0zfN-YSo%YJNmTvFr_L7S<-Nq1s7@_9%od)%&3*@ZlwF73Lu}93 z{Tb}tuoh6>`a5WCDtn;fGeKljeXHd(f89sjvA+#Oe_>2__bzYLob+W}^H@7t9=4(e z7nt*E;L*BKyEgYo<4s0>3mqZ{xW?*N`UZNQ>L+blR1T z^w{;R4TcwF*pq;vozG|5J&6;un48_htmv{=9bT{-T~>YAV_<3L4d(pA9h~6}4@-0o zrOtJ3Vr}x;Z|D7)#1i{MAHwU!d?DmLq>W3$)UVK4oO_3kA6)*I8q_&gq( z6X5(TD=OM+>yG@#xOy;Xj6{F`nI42|t&{Pw6#v)(#w4tLg9W1rCTHIjYI zdhI+Ptmh}-kq>53-C_9-1|0i9ENukmb4DxQ=!lC8gN~fKjJP%M_MK+vBNkUXuEF|F zOR{7_a}IoHj{E*)?)yG;t@2C5t&MJZIepjsPob|R*z{ht(kE7|K^O04-B7m1YAk|A zWw(%Qyqe#-6%OvGj-J121t*lF@0SDndCa-&CD3>MO5!I=7x|-W_%(q;bAJxMWh{jI z9oO#hzI1GG8TMuaQ({|TIrhHt&)Vuos*Q7*v(MVLeI$F*H2JIf>kh-`4$Vn2{>1y} zyL84aXJShV2)}dfnM<)nAgk@gXKwd2bn0PF`EOQZOTvaNJB{o~tI;R7Onaz7@9Vt} z?{M_lCiL02hlT5m-T|Ksv-V`N7QJvOz859EmRr~{a=*d*Tx*7jze~5ywDYxR1UyZQ z^Y^>885r9I{EV+ zhDXzX!!u&rOn2KX$G$Z8Ay-drnHa@(gbgnkT|Kyb?t03rnU^BY=#^}~lY8&`<7wad zpJDf(EjvcyHqTD*?cL~{E4*)GztXp#3fDUu5#wo~DCGel8i09bk zw$~n(H_Fcg=obTs;+I{&3XWtPx1~_o=YzWT^_S`u) z*9tC8Lw?b_+wrxqtcCX%m(usGkp>JmS{h?c(Gf?pGWgJ)tB){Zi^b;MQO5 z)_;xrjMj-0<|n9ML;VeI{ZhC7@3?>JlYSFsB&ffe`sHqY!6q8}75DQ#?ml5kg8H(d z-ssl%XzFL&e{`t#gfR)~mr}pXt-sxc=f~V{`e^EeQxep#q5frFeHWewxj*y63nqTw z;K4J*Jou2?{pfwH@$i1hoT9D6*zcIPMvL`ac;n!cV@E!+P`d4}jczOaU6};_=7pDU z1wZ{A;V3^nT7#YUEEf(BFEsxJdF6A3yU4DMC;Ptmpk!@}{q`no3e~K|f8TT5tPv%g ztt(!8yTSKN`wgy+-pYOh|4Z0|u0d}qh5lv75UlCwJh}MM&SKqa5S;@%G9BwgfBPKw z*`v^*XjXJRiL&P4k%?u7KMX!YuvYU;N6yN%rwoS1Q;tj&e{kvyGIh4xBe^ge*!vlu zfCHjU;Fm4`4~7qT^#?lNM3>2v-oZNqX%oIQE=c?V{)jGpi=I1=e-J*q1lZ(bWncql z54J2|3nv|!SdAQ^^XvF$n;Zw4-eD!`Zv*MjogxLZ=#>oAGeKvl6nr0%Cr}_bM+W=c(OTf zTkGf$k~z0zSbusJAHXx*^{#fu!UlNs#9&fzVy!QI!d3srtR;pIA>)2f{K(*F(U9`F zKcrlIsK~|pe{ipNb=IENJ0oAOb@YcXC-}y8*8IEOZ>)B|@uK^U8K3r^FeAY`KH4pJ z-zoLz-+gE2(S8$m8=C99jtOTydAjR2Pp8MU^Bnu6#d*om?YZT1)$dq7 z`v~_Hd7@K?o;vE|+nN8>$eh*ab#ssjEzP5$EoW~ow*HgX`!j{h>%gr%#!%-<3%6qH zIJU=j`?qEEcE3Fj{SI0fr}w?Fj+HGE?}s=s5~9(Cmetq?nk+FohGl;Y+>8%&-p_ss zn~~_E1)FjO*9nZ1Xm=0yTI(+dXDw`qyLm_VGwG-HOm6zw{SP{{sJ>>|4Zx`KL+A#| zt%2-@UY>b^zGBZ0Zw9BKgZjg?A-z!iX0qnT%368|JnG5&KpbM?z7*)Lv(+- z?%_9wUVkV@Yqir>hFwqj$=d9sqhQ-FV+_QXgFVctoD+wIEU z+&A%kBS-Up3w1RflArei(^&SeENHuicLie`a*M{}F#XZqjYF%B{BW4P;?Hh#@}8?) za&EiKk!i0n{m8HzXxpLZc)v)^cgHnG=TsiS29NB9pMn)S#M$Dq8v|4QKjD4lTzA8d zWqTD)yd@s&z#l?K2<-(IE`%S@KgPVD{VLB7nYod!)R{->-3!qRq_gOMqB@?vz8Si; zzEpifp9kS9u72s+-8JXSAlK@Wa2kYw!O`{|z#x{#bYjeVgc z&fNSF^1JMxvOm>;BZt|e6n@zJmmIp^y(b22eyqPpEDZ&%yo-Yc6&bk$i2tD8e)hr( zhwsc;V#zmyy%B68OO)g0PiIB*{#w@H(CRPiTG^{Qve3_ZA7H&l_hY>eUMBj|S=fH& z*3p5J^24oHuvQ2+z!}DT0ArrbxV8H$v>LqlO>McwdG*Mr&-#N)mttq||G-yeX>Vg+ zva`3b?A++;OxAzOJ$}`Lem;A=`|{sY|Ksm>uAiS(KKFFD{&ts-F5_PKH-UGhkN>UN z!Sy`je~@8+%iv#zy^pK6XR(|AdC-dXGb*5C#%kM9Kls(nGBjPm8n3d$D(i*ak3LVu zS7ie_=}QUVs$p+4=)zUw>QLu%|C2d;5&=qtm%--UTUeQ{`~ z^Z07+gyU2DSz?+r~9gCq;FzfBu!S=2o{3_pfqa!hI|AUT)-xtdMY4bhnT1;9tQ0 zaE4vgkM@t~y=+_kMBWXppsf6pwsGY~=NVu>r}nv5|E3-YRHaP8=Q{JAxyq$fdqK?& zg{4-X^;d;kjT~}&?e`1mmtv5D#FWfrZ*<*NR%-=zmU^>xw)^9XUo=BsQ+UJ_<5WrLCIa?!Q2U1!=;xr(N+hctRNPlq2kdw&}1xy)HuK0M2Eqkic%BlDxX z(M{J=u6ZnSI zN@t&{5BpVp;n5lJg-rND7JMNo`qbC3U7IoO4zKP8e@KQGClPNPz{k;9uYZ(n;wfzW zx1Pvv8H)WU!|?34P6bZ(2-V-e4R`FUdEA$1T))vX+Ok9QGKjjltO3}exF7gBbA)_j zy_6Ph8K&n0d7fkcpx74;>Dk(*DZAHhpVGp4n$2s!&HuZmv`n>H|H?dD_?21}KKDKO zdG)ue_V}WMI=olj-P&4#J@Zq>uL;|vb;U^c9mS>R+DBjWS2^Ez+EQJ?qW6CB7YByD zf*m-7^Qx;gbq_YO^0jNGtX{izO2uhb>$mB@kuMl``P^yEm#>nu_GjDwVoWqv51gi} zh_Vby8dCbLJ=Hz1Zt1ofJY_e-pm)~!4-LW$jf8L#XLF&7{)7Z0|z1!}rIo%o0 zZs>2x%uy1)yE+fr&;0r9uP|3XJYr%=>}J-WqHdzsf%26L_4%?B4^;_&*~hbH_G6v( z*U7i|27P>!F?$P`k78F}jxHt{Kx>WXr+j4L3}C+ixX%Ml>})&y26p)=CR%rdTVZIy zJNJ8^)o$m|I`R#zzp`OX?-fPv{h)YykEjorYbh5U?uP%S149$EVzCCi67zl~HrSE` z?{DY*2i*6I(2X_cuW>IrmRys?o~UT+Hr4~p&*_FQXV|O%_4)j{2_9Kb`?BF^O)E;! zws`NYZrk3P_B8ie3--e+npo3@(~f8c9$v5ZpEvDh*rS2N+mj#3fANUwqiyv&kn0|X zrg!>_C)Z*>CLY($W=!%Ew4aYZ-2%7$)r{Q?>TO?y55Z7>^f};{-`GE~c?p-A`0i@P z_}j>Zw|?TZv-5JvirMzBsq5&2{a6PwZ26PC3BFjqsjuZBdvE8t)|zIYBg5-|KHpkc zz?dR)&Sae6k?`tFyHs`qWSyzT1k*+#ACtWn>Cr*DH zYm4N^O^n~Z?{&tPeEK=a?X!>hmTddC1oeFQ5B8;=)-d6g&t0qMP<9*NPP7*y{aO1V znu`|pL}nmI1yjI9#(_Busb9iF?LqDjWQ5iekDxW@9rk<{qJzGTtSw(1;&#@*&HKs$ z@+kWz+*jIscQvsWwXR=Q9oH59;H;Iz8?5%HR7!`b|9!Wra(`Ck7M^Keubg{u26{}i zZxXL_3RWjJ0DZ!RS>q^}(}200v9~&my~aJ0F~8rRHB0drBf#?#^4cmVpzJdno%Wf- z+>qq<%gnuaTl~K8A?h=aoytqnk*)Iv7@kq4|1+l<{}$(e!2Fl2sy*#IWX?o-1$$72 z-zi6g=4BOqXo5aOQ=*X>(8v+yqc?cq@ZxrzFV?0NPZybXKj=dA7iN7HUCO4jhWY;y zwpouZo-^`JmZ1;PlIY?M@byh_S~%h9o8p^J+ZlFG;B&^Jv(D0aAJxb^v`yR;eOLp1 zsb7*ScC$u_HdHR(=$oz)kf9nGEcV29oP z6W!}OIJp?T1es+1eBS91LpNsMZey=#>6ztor&BJPfhRa{aj!A@ly;r5tZmV&HN5X>xblSE`S!yUncsE%X)sS3ggE zjo}yL!P%+wdk6j2c+B#~VlsI!=-2BHwDXKDT4R2I-^h64I^8~P2Ufvwk?9j_gsWSc z{&33 zb&tv+3AFZDB3Nl-ALSbVeE6GWPW97k=Us3_b{=4B z6>N#%zdyluR|Cr~_q+0^e3tK?Y#o=bB|L1#ZuQae<0tkiw1%&W`8Kw>jm1sqfBre|tN;e|>`Yi-wiY{fP$~eKtPgjMpo?YxYo>*U|*4My_)%irtAurV>OY+|x12e-g|(4fPOQr>Y*vMDR0t$(@xmBO8T z+E72rfDJwTof6?YYs5gx#TPCH{^x}o&}AF6Ud_I42|WHgjM?Ab2~8R@FXBEh)iSb?c;A`8UW)8cg6yz}@5rXK3tO*vq-FMM`@yHO43E@$ zUS?#63|sn+aPtcDPQOk((rLe+{XA{og3c&iZ6dgR(^tCJdHR~yM<2NtUZ77J!zZ{J zor(F;d7qEMl8%y`@^>RrIce!9k22Ul>3sbi#6Wx3hX4gp?&@+|Z_nqv51IZAWc$FLHL>{90bKAx?< z+`71$?~2dA%)PU|gS$Mx2bhHGqUS#MN>+!i`EHXLqbxgvGDGXYfNWd8^9W4$yQfFx%%U+$3JxYgw4(9If>fQT-^`OIdXZfEqOZDrU`sThVq5|Q41Yu z^$XpMY)}fHd3JK()ns5Ju5W&)E4F_cATz%T=N`m-FBQS<8&N)EP==U z<}>#2;AuO!diWyv*I-Zd+8RzWMGw~nUmks5Ao#Fn%kJUfyzdf+F02xNH2ZOXrmiJh zxuS!Hfphw2$3YjzC)WF(p5@W^b7((Su8=HjAq#uo)_dN6jhjbXqAM%N_xZ+1zJW{{ zDuMTva9^N489CUo9o_4Phrw60XOh|Hp-WW{AKq>Hb{vgiPd>OreQw`-Q9Hp6;UfiB z&}PiB8^z}HCS#ndiR#km+Jiw`g|epnT21Nd6)4v zSJ!UVac>5=ky-JdLcYnb&xu;_vgfeHzWbEJ&xAkTGp##|uy3wB!)pBAFTru-GKZHq zv>)52_ID(Ym(N{VukU&L7xDeigZISZT|KZ={XB=geDKfGdPr;-Hq1-;hUQxLL%H|x zYCefc)yLRxbnMd}>VMnqQxknE?^d+cgK-UZm6C40trbJDgQbSImJPL9%l+VasnXmHV-eoDtW@_Im0=NBCO67xl0G8$o*u`{mPUPh&3lOMt<9Ud+7Y z@O|O;jf}h3cQd!FBf5IH?HlXhhc(D)_eA+%=8JkBzMUvfcFSG-J5iqEmb>_PqP(YD zj_-e5yM5g9%ns#QZh2mZ@_eV9eW@p`>Y)Zto&Tqr{~dY6YNMNsidxt^iW%=|%%^ZC z1s?M@dp5FZq;0gKC9|#8lpa=N_~P?Fn<;+q1ZUw)u&@bOpDnpT_UB++J|t`$k{jd7 z63~g!$veU@6d20UpNJX$KyXB8ublR`&35Dx3m62;dfE*Fn`8hRekNF|{Y~do09Oj| zrS`B|?VpjC$|^snwr{wxZYZ)5<-v4p?K#B%4YeBQ%nwwRvZAojxi$jkUJ*7iJwYv{}ouvQw?r+K|H=%R<7Pc>0T_n~V#A8~m$ctgFr+MLf7e ze_O!6Z_?KiV0qzG$>k0m?xEbn#T%aTXL|pI7bnxX`l}7_Ka*V41YsaMpnJC>OXBZ> z@BZ=%_(ckF9mu+NK5LcQ3QqG^X^-U+)@sQy$WE;ljQeVI#Bi$iTeHmkyg1ii6(k=} zF8h;d_`c?nTPv7i&Cd>$H}=D)ejRdGIkx|>VM+OSDu^@ zbmvn%D`h&kogZ#Qrmu&OjUPpQ%_INKx*m%kVQdapFz@Dh8@bO|GYyQy6K`RAbT`>Re@6~syN`8&zTdT2i$!1kB0@)pVP9c88FW_5U1^p~xjgcK!xnrbPEN8xCM}3hz zh>StV<9C|-=O&iVt$&g=7+qUBs`?FQ znCBAaTQH1cPRdxrwEv+t=hJ3Tai`|q(QWnZxqKI#3Y8yeo7e)6@ZM{pFB%7r=b8Ou z+6hc9pZm|B`KuZXe#XmdL2FH4@~aMwA@&>vb)?#mJ6!i%J& zRfc`JudVVYEq{?*r+L6jJd^Psij{G+-b^K~1)kp5@~tBlJD#uNv(~t?mo?tJPn>hd z=Vg7Zi`m~C`*2Td{uuhM`ZIbuF&Izv>Rf+SDzNu(;YscMympAg<137O&;b^g|MRR9 z9JTQH>Ignb3EtD%bJ1}85a???Yfr~MtiqQ5DEVdhMq^obx38>K9qXAf=-auRK8-Dc zPgk?{C3>fxHLhd1+DwDKlp9yytxd3|RnsRAcNY<-{UUfm zfAuWUSd{f*zEZ5QYp@Mc2fZeKjP>5L3BIZFr+%iKE%Ege$rzFeOQGBR{$q`vFFj-C zZ`mth9aycH(_i;D<Um{+&_{{*;$n3;kRkZ#yPfw@%o

    ie_xU*8$lUs>p0-=)K}4X_vgE5ZDg&Am;al8<%6#A%i{gq z9?%E$cCv4*fTw40#qS#5ke94e@}gUi z?}~4n6qQ^NpijH$qx$J{_YT99IcsJ7H)3V-3FzFySJv_R>Ymn1R>|4X@KJ0Y-LTi| zK5t5Nitc;4_f2O%oUHvLnXBS@GW7=@^#@J`EaAd~A@q|@A zB|4-Xjwh_}InkVUIG(VYr$n>=i*PLa0&slDdKEJs=rrd$=SGj{-WiW4 zEbH9pA@2Vxa^?(Q?>quBgA4=i{0 z9+0oZe`LcuV=!ZbK2%Lv*&@k;oRf)trfd;573zz|R~!E&z2Ljfz?EUM2DK5x7v!`+tfAs`8K>;kCAxy9eEb zy#wX$$qFsFF1ad?wFy3nZs_a{$ND7KC4vjPu=c{XBzWdyZsc3~{RGcyc=j^oHO!6X z$Kzk=nn!fG8riipm*n*M-A^6+Q99%4@V3sddA3vKHAvxSjVDH%-(kciVk1Pwj03@^qi3P&$Z9O8vj9lkKSf3Ut`|Rx}Wd6GW2%Y zIWnC!SbB^0#K~zBI^}ZUMqgenIbfOcL}dT#uPMNg8!GeV)O938Y7UvaGm zvGG(Me~><*TA;d=w3B3XTQfToZg+`kHvNXmRLNhYn+Tv*<yEm@!RP60e@FqwO zBkAs59--=~4t|%j_okdd!tpiQzjyI_YqtdXg80Vo2eK|g6WUjozIN9)3{L@P(ZBho zaJDD3A)Gx0oE5&l0nZa3(Hykr3d#!o;4=0($^RCMv$6Z+pKffYCG?J$iml{mDSp1= zz&+tzjl0)=1NWjW>H7x~yi=6z;BrfXXFmLM^E%*iAHMU?1aL%lq> zpbyR6h1_e-E@oU}aX+??%~}tjUu1)g#n4QEy{&c7Ol&@(Uy_qYd0fWza;|~y&h_1H z@%e-t+{rchgnBTS=>PS>5+~o3@J4(+SYjD{KYDIw98w!TzmqGbfOoat><9N!@b{_X zdh$F#9riEyj`jx2*;klKOmsaN27SQv6#7*f&uJ-!fI-;29G;d{SUxeNX(f7y~${uKY^$EpAI{Fgl9l^+9!2jTg*^1Fne`2KzWL5>3Crc$k&CXZ8&(T~>t z3c5xgHtVIy)g-<@z`mVwOTM0}Z}K}i_NtpH4p z=U$xvzaF71(Km$eo}Jm@tN21PhT^5W@t^v{iKDV5mk1U|KghH{#a_%&X{!euav)(+OV+Ol5=eN zQh0{sNXeJ-DFS~_$d}-6Xp8&JM}bK`qz3m-$e3Qv*^E%-*U$rq$vK&fxmM3jJWjie z8C@K^&UA+LWPRAnzTe{NK=con9q+e?|Hb^j?~3F7Ou3a3ecmhQ|Gi#$d5`FJr+i~E z|JPA2xvsgV@?WJycV{S{Rjh9TIf#^dNH#maHU3=Y8C%ll<{m2X<2OXTF!VqS`RC>i z@?_mad1jz3BjZXI!vE9ZHzuD9{@>(j)cVOhZFF+JW!ay>AFw+Lzqi5fjqW7*EH;OX za5(mz4|qrYsX%uthX!^d3!ncy^h$e~v@d;5e58mn`af=q{H=`)jDHV(EC&xy)|TW( zukP2W+eFSE=~TTBvkvo(Gj#qp&w+B(NDopwvFpc`uH9f7G{ZQ5pA)n-10o=&g8fGrkmg9o1OF9{HfHUSZu)2J z5%3$6-v%G9HT;_C$Agc+myNs?Z~N35=;gQhv4JD8&x6UK!ye3yYU3=cJ-^KkC%;WA z`E8CYOhR8vhW~XtX`Y*V7oY=Sx9yncCJkLEHm}W;YaJa+Hjrl4O>9n${m~5upmXG= zBrQkxnXkM!AH#z_;fJ5Q$&a&L<&w8txz5;qkn5C}Et@zR;c%GmH6L>PMzJdyJ}g=2 zSN)w_H@7fe{js~eNFB2_k&FA$Kf7^`{1<-KGgjXEzm5OS`k!sD=G_czb&JNSec_`C)!y24drMa5PE|0FtQV|Agt}V_WRsx zT_~gP>cds$nrY*Usl7bbqki`H7z?dSlc(sa+&k@OP)a^+Roz zX>7;zcVZaRM>DqAl}?PUTEk&hy<7Uae)CSIudeJEy~A=JY*emX8?6L++f;V@}8M z|FI2;<}@?3k8+1zoZRw5nbUSXDSm!RXfKtvz%Ap4*q#3mF`p6e$oL4t@8w%wpesDQ zh4rrlJYV%E$NydHfz3Oj1N~n_UD2ENPqe2pSvfsfBTIQ#w7UOeS7#*FN&4i=^s65H z_yhQHG8k1ZJ|Q{Gsgq?dp-r{(5O6@}te5fqQV!gc=}d}UJ%;ae%(=NCotq1P45eXL z(R{Gh*FSs2*&}k|PWuz*YS}MPCcYxRBprsmcznCFu+b{6C&yL}E{$a~|Ldt+C7*EW zA7LDT-N?$HuXj9aV(`Pvu~l7t!=ZKTp}Fh4=TBPKOWHSxl{Xw4hL8Bum>dGrutR-G zah%=Yks4>^5J)mIe)mG1KjI6KhuW-B($`pf+%Ysc#^INap0BeMj4cgYLNoDQe%=Y< z7gTQegZ$uwb^smz+t4!W)3`SLk49>5WuCSCUHGr$methV%ii=G$Z+aY68xP!=JpTV zzP&@e3b$_+^i4Ww?0Y{V*Noo7f1mlyw(oM^yM|c2Cg^@8b5n5^=SILQGr*aO^UE8> z2jQLAxjOel{QhL+4*yL2P9nWYV=P?tje_?8hw#kX8}MS+6c;CY-Sm<}uO-M8E1}W* z(6@Jf=+Lc&d~p-wqBEqpoah4sGKX;>Jnb^L59U{U+%9e!lq= z>PZ)G;+v1~Uv`E(W2bA6|My9NV$T_UokPQw9(I=#k&pI4TN_l z-s81yPP_+mBtE2Am+j1*;`Ug-(HqH$PI+4(_>PZq$s1m|c!&2+3An6w7w~=YwblrIxfTwiUyYx-(TiekS514iBnYvG~&z!K$2TbluWEwxRjT3iR%D1b*5Bd14 z0Y5Zv4>Ath%{X8mGvkn9#^GGXL3TAWpV-}k4qPYTiQV@>-qD;Sd}iVMUa|#$cCL0! zXPc^cb~QZvdmlM_tj+van>!D+ZLR?y{&hL}KK2>yXNe#F5I983`d`i1X96D~dd05b?=)OJvB@w>(z!iL#6$A4?x2VN_!yarg3u|4U zas1t0absYneF(q1)G|J+WkcIzU{+pkwLZr>6ATjrGuLVj-kQ}{`q#&1ZnEv;H({G( zkNT#sIB_sPSnsRarZ|`fyG7TKuc7z@#}8&Z`+6_)OmQ%hBjA5_pGseqGr#BrJpVm# zO)xZO*`wCFF)w_#$&699J(@DnzTg0d>RXD#jf;>vZR~j9rBBxEK6FMh4$=?G1(pwCm=Q;|yQUb7EtD@eDpYtgWT+ zo|DGL(C1qEn+VVT&b%#hb!5p^wKbamaO?XAxiV%G8M6{-^!NwTd$CD!HMS=DtUeXv zbK|Yqm)FL`#sHsi^}B*k{3bRw<}&6IoVD1`x%BJ*#n=+oiy0@0E&05-lcAb>_`P6C zBx^`UHZXOJ=@{ph<0q=;jB|aEvI5JEIiY+8|Mje+>>U?#!Whbq{%6K-Odj=4`jCYW@XpxhvDp;5vry7&)8q8O48a$>rS+uh?|hi8qS1uj(6N`jh`b zdn}UX#OX^r&YAWoFTgg9ylB?VL}S>o|6Z($Pd2lX(NPO|d=GvPML%heRq>vQH|yMj zmBm)$`-;y(#&PI9UdI(|?e7rB0pDse-%HHH^Waahd^ZzVsuqooi&Ys)tjSOLhQot0 z?c$hNmAaq!6UM4|FsM&{d}sdlW2aBZZ6;R5d%lHdYkC!LRlG`h-|*H&z5H9t{rFS$ zwYJu~{j7F*QS97!?+d1(_`iH7u8%SN-*WIWwvS${O8Ym0_H+2kJV1MSz^8S#1Q@*M zi--xhp6`n`I>oBM?=|MKS?am3$c5Cx=ulqh)*soSe3Vl@LpdTYa`Hkr|DAjhVU?HX7@Bd;OHC%9PB(JXbk3WjJ=bTk z#m&f6jxhFM8IzU__z5=JT3yeEm-MshZ)BW5LBIJJ{iYS&MrZ7Oie96$R5Dq2)?hys zO_pTi+i?KC46QVCEn`k4vy^nhKdBG8G(T%0c|QK&$WhJdk}u`T5~G> zq5k3by%^|h^!D<;?J>|&D;=l*DqBR~^<3-p!#rc0$2s@e$huA)!TJN9m808i>3&CD z39`59{6V&N>R89iLVQCj^5M$quvob zf@3xBz~jb=p8Kf3*aTFs7yl(+x17fLpWqk#x=(H)=kXontW@-W$uhzf$;!a7?<@A?8NUJLYNn^!oEn zt|l)}lh^hkY@y0is{4O&bJf#7VrI<|6%>dW;b-1ym4|gANeQO9U~v(n##ETGeN!Wv_IM^SGzqtka6&`TX-i z4R1ideiL}bzxQ#KZJD#_kJQ6Y%K3f5xYt9|PoXPIe%$(dM@KG)x2R92Iq!z_|Mhoe zi}No(#98!}eXaTR;H_}8U(o6!yNTB0XTTwib2W3UGW5{Kr&R_Y`6lJtuzftlUSQ-lEAZoWbq;8oovWf7A~??WK)V3 z)dW`6iLU?F1Pt(v>h8|{Yut;EY||JM?c=sj>h>vxlUltU0%6FIQ|Jd zM0;B$tkvbxHL; zlbh?9&NOlNqh13R$quh@6(9LCSJ_yE12r!?a=@lu$RPZ_%x?le?Md$$rhVywCf{W> z_;3^Nh2f|A|1r4P48H0AZuF0rS*uHYM#)T<_6knCPp z(BFHV{yri8x=3+>jLY`Z%jZ5%xyEHXFhaJVdN8Rl6la+x7Q%Mb4S~zv+wEHt47d{aI_kF6C4k@ z@N|bal%Usner82{b2{_fWb8Q3SZf}O;jMY5OgvoYpJ`7;VpUDiX{ z3DwT;O*`7x?QElIQk+b4WbW%S$ktkf}25*Z2ne0emlUebKSvn@;vTR!LYLeEtHFQmLfB0 ztbWctygqI&6U~w4MthiwsaBpt(WUkq&ZAwefug;g#%>X`KeC9iM@~`hxFW{(5oZoU zj*o}(r)NWN{p56y*P8pU>ApO5IrwPqzpDE?dG6BAJl$9D z+`XTp`@BBOtIe2Z*t2whN}uKMU-SM2x-a0lk?%6>X}TZTXSojJ|^vjLbC|YAZLNoEPL}D+KO>{GB<4A_6-5`4Y%7C9d%sB8Ce_$)5v1pIBqj0 z!5Omvfrv^F%1HC6M zHT^(ydSkO4Ud5UhyjC{HSaT**$C&$b`$1m=av*XV9OGOMjJ`zrA$0Hg`?>@!^D$O< zZ*TiB>5n)g3wkdU|3c*q`ZhO=fo^P0p;^jy?8lVLw1LFFG;Lq>+(7SJUF8s)_Mg!u zbnG|j`99q}8tOC*Mq;uYs-hdi96z7gGP(jayO>p{UbD<monV@1AGq6!{UFE_h%t|4h=76jaS1?n~T4NtQ&_#iNEW>530mx{Iy;# zg*BCx*qp63wq)A5x!w`<)e#v`7!${}$UFo0fAS8dle%q$hr#u`C0m1Q9p|^Bm9|r_ za)+te|4Z5D(uS*<14zQ}IfyGrLv4+<4x%7~bBQyT_dN35%6kxZq09NJ=X{mUZwDiU zM&=RB_?$(T%fILf!7~qCTn~<2Jk}n{6z>!3%sm4yzl>k*8saSA&PnbjG;O7xZEQ5@ zBu*2w|4{yt&)dxwpLX*OmMzGqAF($2Lusw~gfQc)Ttyb7tK97juKU)~*2IS7TgLT%_6sUq|Cg~oRD-UlgGURXca5gJEN6jpACoTqX$^N9 zi?8eVXhip`^eFq1kg|U(@hSUu$|z?dD!b$?#|hx4E>@}Lcu(l= z38TOE?uJgu=V#!v6X%E0n`_5P$l7t(53e1YV;=g20%S+*SsU*f>O^#GKV-88UiINU z2tD(1se;dW&%W@&_aK~PP3cSQ`lp%e)xu>AZOf7S8rI;SC2iwL<}kiu9v%O>oQa$P z#F@OUVneP0Zp|~M=E&IEjy{rkM$rdO@Q5r)-Ccptskt^Lg)|mSqt9tBXb85??1rDJVTDeLoSfNb3SaLai8sXCFdB)nv_K!eS40~ zIrpOsLZf1i-v;KeZ{Y`Vgw7*|&K>%p;k>!SRhG~HsW}?&* zeVSeEW`Xos%qd8p#d_%rijv+nfAamg0cpD;`}Z+cl)md%lu_FC_TJ9dWe!7Zvs6Xq z$&;Ap>vvD_ApFnOHGOBk!r3>(le(^fPSJmVp|1aQSD3k{P~_*OOwrBXA5-34)n&&$ zG1%H0@We1z1~$1NaQfATF8llo{$-B)rx%F7i?RBD0{;ng$oD!yAQg$8I7 zI%QnHlYhY}_N(B1*s2q6Z|M1F^uv4}CiWGEG%-vz;INis%Na{QwJVaJCa0wrS z_JYuuDRhVpOqm#`aeq;mtAMf14ZsVi8={U zPO;tIL*|?jqzxHUHdUT0XQRy7FNkpM!Y6DHboDIf&A_Bz2u=Ut1=7oSHleGW!Fnvc zK-zaNkhX!eYFFAIkH%jh?Hd2Gx`O@- zwvBDbO~kLvah9Az_;PRQ*Qqb5n?FcCJ;qN}A!W>zapSV_t_ElP_6{&AT1CE&ngoyA2-P zOBt}K@&^81xjTb7mta|?&1Rx+Q^{{yNI7=XrV5>zt_;S%zX0A-#@+@de#xTGdzR-M zZuaVP-?#f&c-ezzQjR2eY1LtpH-T@vlA?dbI)V|QOkZ2OaO`+!#b!aZD$|*#J!Fqk z5`(yt|jz4cs5KW`d7Jn+dZ!>XHJQ_7zEzn z8U*wCoG+E;N_zPG{SGSi5vo(R$~?*3F!Q|SOvYOqDYwuedh-v9!sN^Zb9_=vUrnFR z-ZkZsr{27dFoiv(ACsH{O&xxo0nux^7@D z!PJLcx^x0COW(7`j^A9TNl(xR?i@cP4*sjq`u(ub@+sJGQXZ9c0jZOVesjKGsSSP{ zL3iRm%Q|<0+)r%YKNMOn>_FK|)nU&#zr5(<(R0zc4)_!-2u3h-Jy(w_oysQ;Uzj&H|tN%O4llv}^ zRwb>!EA6~4ebIV>v`*?#Nw$3Ag7T#x1Hw0<@q-t?@9#Q0B)@G!>&d~cD$Yc90WTPI zejmBNE6<>O_S7vh{~+}wZDA+0tbvaU$p6pK{9Dds%A%g+UYqIItkP#oyxz&2WsD5s z3;)WW(L-zC^3aDHS;BuwNKo;P=eG=m30K=!egrCy=%; z<+J+O^TUGeRCM}o%5o$7eg|=PndrGncohuK#GmBH$kiI;^|1j8>rjl#;G^J{HcG!U zTE2Vc{TSu=nsV%C{`D(l?0#&WfH@ayt#gX5k~2XV)6bN%Mt91aH4oAG_T)-)Ocbo! zx)mWZEOXqi4R!6JZ+1}jo^nwPjIre=8B+z*+mXX4)s`b`(^1rMXqdp54LT2IXY9Eh zeul9&&3ZfYM7y?&P5$Bq=qR91Y8E(kQq?5~LoPr=s1B*8?7MhGKJ9~$OJvO*id*ca zE*X2j3%AIa1Nqo!#oO4`p3QjTGqo3ZPhNyuvXK+254O{9+vmv{T(a*Ie^=`MQ&|Hw z_kUoASapvdGWwOef9WYpr~Hh%55*H&o*A^wpE1{7jVuStCOnk0jP}Amk&}8;KF{fv zYRYqxG-5x@;QMFTh_ge>CiY3?P}zf;&}L|0k!b?5Ijl{%;m z$)9?Dp^)=r)r;{j=*mCXHl6${^xLAZzB0#<)*aeC`ww`|9EIW?K>l{}-%dSPa{|_y zx$t;y*r_q-%ba?iAb%Tw#8?xbJ?T&Cu@&SFH%Y&@JH6P*DLIl}?keA9t}BY43Vt=n zcPVy}=!Fd0#bZBEruPIMqHi3O>73nizMfzG132F7fkWzF_#!k_a)!I$3zkXr`^q8s z5{fS(^3zk-hsvwaeu(vX6~FPV$e_dz%E=(=X>JHT^QDh}bC_#u7C!eq==p$uY2(4P zV*7UP(eOo!!f!kpzi|h?Xfezy#WJrHXB1~KZ~KL|^vaEeM$;txIGE=wZYnTZIB&wM zMC*mLomEPdJ~WN+RT0KqB}`|3jNUv-=@>ns!04^o^bw1SjFzV(jg;l@cm^zw@Dx|X zc*fr5G~U(hzB|g}Jx!CC*U=L7f{J~fThwsk zSn;XnPf8zse?_|IS8AF*OS9`Gs_NdgBGU7cmgM{WiUFP$TeSP#6@T)yGQarhioba> zl>WZ{K9`IzVsqU?s>YGyD$785b?)OyHr!G(PMA@R;H_H{E+$IYIFF8D{=0vs-rbajr+Ka|H*2c`=}P< z{Sv>((uxRAPD7x&VMMs$E06JHpIuhBXvG1~aV^%%otHje`FozDTD(_n*j2p{I;K>- zu^;xBL^fct!h;EFa*pgEvZva{nG4 ztcT`?<$v?E!Oxv5{^H^Ma`#qv@thXp`|FBS&zXKQ_iJ~{|JmgqdF*`GFYn{or^fgm ztw^KHcK4c!4?S^8oX<(wt0?<+%?@Aw+k{n8_BLczV3ggbl76!q*E&~KKQ30|eA(1R zNyR6g_2mhkllV2_uir7eVQ+PDML)CrWh?qYW1R2N@`IjvD?agjNf}$7R*dcC5uSG` z3>#=Ws(ucv;w-E(C5-Y%Xc znsqf5KAAj(r&4!Q;VJf*?}-ZH+G5<_EKl?({GV8U$P>f=ahu{B%KJ_&&Nq^B)gT)? z%40ope(uGMwbfPd!^^1Eeq6U+O13e-D(RapL4&)Z74Z@QA`_N!r}OLQMqV}0?w zV|h0*r}`p1seuQFk;j$DN4y&EZql3`el@}O)A9kHHp*~o`QPA4T23r)S2OZ{b2e~Cg0Gzp8pb_GV*#6 zSTnM*p8Q8R3k;K9!l*Cbe!@!{-mUgu`iQ$x((>O%n4hwgDA7J`h21kUtjK7)bb~u# z#a^@C%rZ9AR%c2Wu%$}8FX1N}-B&5GzL7t1xiib{o~-h{p6JE{)gv3UD^5){9PGjiUBI6=-zGe&8v$2b=S|08xUj9c< zc}GRvZt7<hFyW9ZjMY_Yyc<(j9Ue2?c9o88@ntbd`zw$?3AKo_Tcd=i;& zQtZBWmLK#CIbBir`0^;=$?jh+f7jzzlYIYWi$I=JeP5RE_PnF?c7IWB^Zew@19cgn z?yWwxJl^xo@&lgHouTyey<+RjJJR=5 zMKts$xi^=GfhWTEtMa!!|7Gjr?z1Anvsp{_rK~vU`NlTDJyuKeEdbxw(DaI}zdKn= zZuRj06#vWN(-Y+XiY@iy)zG@i7U}yb{Cf$!L#Y1*%K!0--5&o(6?Gr1u)(MB*3rns zV-<0p&CvFR(%biB#eTl~QpObDebBT5S~o+-vr0XaYa8nN1zG zqFa_W?y07Iy6;4nXRC?sGW6DS$oawgUDW}b!~OMjR~k!cBW37?D&+groC!t=ZT

    iv%OK0&S|Ho7L|I{4m=O^HxgWkEZK2(|DeTib5gflxg36b|U2@lD(2#kj}370B22<6W=2xmdh z?y^bfnAjlrjcpN9z)o{>i$DfGz3(;&RKRb7U-Palf?MepfgWsKP>uy%*7yd21KP@O z*&^tyZxIkY8v>8P!ap7XpzXtw$1UnRLd-CZ0H`<4vPpOi{T2ul2v?wuZ*3cdN+|Dz zzJo!oh~6T623gQ_lOXeSi_ie$5rDR(wl)YR&@U&nvlqru7r05VfbreGut{hDpB|_; zH@$t1IMAO5`wlp#(Ayh?OHg+2+9XIp`v{&HVuuHZsNsP-I2h1Q1kd~;#DQ04Ms%Wx z?Kpy$G{J*jN-P=((Q+Y1>`kQqdBCGsM8)>+|Fr#g32Kq3qCf;r@Z6OuA|6os=La4< z`foo_2YVm}JD}dbs{Z5hf58#LZ+qiZ5j=wR|NKMjnK+8MvMQLg|NZ!Xp92`e-#Pf( z*1w(Bf1d#yR*B}nYW`d0|BJKVuKh1>Xzc%e2C(5mSAVZWUG^s7tj!i-xOIat+O|nJ zD6&bo!wqX54&qp`!VXdjDi+2awA6neYa)lonizJ_Za?Kjv;COUzhr7k%p5`g&r?u; z?f;Uu?Ju!r|D(bGl;B}r7$X%nP!bYinaDx@mk!LtI$(!NL^bieh;{z@ZZp^y+ig%0 z>tan1mmzlfF&lz*{=!5xh`)vFFGdAL+V&mQ(Gqk;3CXQ=+ zoLEQ1gUB%*GzIlR_fMP9FJcU2R3%mm#C9X2D*RSu41{7JQbm{!%CJ^3JyAzow?v=6 zI?M`nu{y-MfyA1sSaqx}(T3^32YzFEAflewH&zF;Vg12a{-yg{7pngq59af?k8K@R zmpDdZzgR`g2Z-1PaqLi^=!1C%f`Qn_b{(h%evH`KBSScN$`T6j3?mu*gNneh0uIVV z1*Rhd8&(H6Ru?OS4%l{;|7wF+huAFE4ps+#fgjYw%0w5;ZCm$`AEv>&B)0vxKVsjY zCe|S~^Kaw(*Lbk85FN0w5sSqB{(b!0WBohszx@*XBcsADKTHpC1^shLVT!1TI?M)T ztOgM1uvG;d^u$XEWo$aP+t^-lP{w?TmjbJgdBOqph;4261#SLa4w(OT9q_~Y`M2?4 zZEUv%4G{Z=HsJW%C$Se0iEaHeCahiTT!{T(W7+N(6x(h69nbbTZJ#ex-=0A{8IB5% za8xjJR8R&VD1!|TB_Pm48M6`VU^Y02^@uvmhE4xp-)$c}sE9t>ZG%K?|8HHa41I35 zxo!K8{;(HUtN7tUl2e2zpQv>tKF?AYdX=C30e0Se-yn0)Zd?UpA~w ztS(W9*|y7=j_3y}IKU3SF&ngrwE=x$gtdvs%Ao&SCfcy}u=-FJ^k9Vp4|PDN3O4Ww z+_n*QSX+U_Mo6F@$@Xq1QwI(XNF8YVz>#4#td1(N4rap<%b>$-P)3*!=1X+J>SL3y zPSoQ-PxJvDRtKw#gZ{8%+lIA^5vEfG`p34d`^O&)+cvCitSzWV?2kAGtgH@g|83*% zSTG&2?my%EJFe~Vt74NCh({eu93N;fAEFLym=AF*P{#Vf#<4x_w)T$BuI{hjdV0VA=<6RC92y=O9UGsR zoccLEGdnlGu(-6mvby%`_n-BRO~_VoB&1~I6qHodG_-#i-41#NMkZ#Kovdu^9GqO- zJiB)D;`#Um1ckPL3yX+~?Gcxdl#>3h*I6kkA3SteMO95*L-XI&n5?CJL`V1NvEzFB z28Jh2o-#5vF*P%{usdV#aMsbu`P}&nE*D+hF1dSLzT)ZSebvYJpL7Van(e2+DX8h_ zSr|dWvLje1I1&;vGD=D+Dq7kdJLu^d8Ch6ZS=rb)Ik~uaczAj7cmV++Az@)Lu|0bv zB&4NfW%usgzh6N?QBhg>(4oVJRaG@Kw6wIfb#;#(J$~H4;KYfOCyk6uP0h?KEv>Aq zt?lg2oN;h)a&mUQaN*)bSJz9IE?@Ta^z!oY@%6oSEg&E;FeD@_?8c4A$f&5BH*epL zjlFv}K0Yz={{2Ufo;*oPN=;2md-g0N{qW|zs}9g&wu;2u&|`0w6wgus_Nal znwt0TKYpyQZ)|L8`tqfvrMnz~5wtxOI9Pa?{0Q~~}0x(`+ z^tb`|S->s)WjNj~-Yt6g0Y)s~c;Sa0NB@`M2DS#a7T^aMv4AbOzabD09M&BUWE^&7 zK*r%QgeL|pDuf3PGT4EDgN(!D5kfLR!12IA#(|6j83!^Bj|YDlAmDi5AcGwUILJ6~ zgB%a*1i}(u7mzQ94I2ALXUYLLMW zzA`|-p+B&LuM7}ykfHtUg9IF4kl5xX7C;7$$CHqO8i<4pL?DpyAcG$4KqQzEhy)1& z7X-dt5oB->gnD2HA|V4i5Xj(1270gqVOs#3er9Nv5r`Q&#V!NL!0~uyaAyQ!1~*0^ zkntdc9_&EO&^IFxGxW^}1Ty%MfnE@}Ak+gp5Hs}62m~_tfgSn=8S24-!+t>{I3PH1 zAj3aM!+@{>k^*5TN(uxr4rI`i0Vl%|6<8&h85}lSfb(DkJ@^BWfQ=Lgb~$kH2OG%P zt_KeOa3$dvTwpTbWWW(M$Z&zlfRj;!D;4xd1^odh1CFRc20a;YGHU3L3i^Y)2k-|1 znHpr!gFg`TM+N=CjRp7vflLiD=)oTd`hx?e92*Jl?@9!jI4F=Y6Y*o(Ou(5y4>A>e zSc?i|Dv;sWzC_sM;TW+K00NGk49MUQ1e^&t6X-z(e=_g~!Y(bG5nMKGMiGt~I}sq@ z*hztm7(venoC!D+=s~6enF?eokckrymz6mAIA&}DfPiC@0W$al0cQfv1bUFcANmFk zGIj!Rz=>>60H*l&69N$rBm;KfI2o|vfq>(H<3Nwi0role?FstdPZ(_A#|ZV9fHQ#~ zBls}_X9CV7v+WMQ8KHkhm@sGw2slh2$Y8+(K|LIB=pSSt;LtzF#ICUqp)x}Mj4+{4 z1Og5d3^Lfk5Bg_>{u!Zvkb!_h{~*KQu>%kSeqsN%CxD6yI1s3?>x12iV%G)kQn9E- z1~PCUY?)v)2Z%ykv{X3o1EQh^4g_}MW&k^JQGy+0@S_F}gmsH`K!bGzL<9X}Ta5<# zCIN!KkYGEA1nk6HWUzxw1~PCU8t9t@hz9y60iuDvNq}geZxSG|lYpHB>?B}^`rroy zc94NX-^3Fjp8a+Tzx~G=Z0I;x!C)p{8aR7Ku!D>P8T4QSJ8^m7@K8$>EI7hvG*NrABGA_c;xmK6E`J0om(MwlH&u!D>P8T4QS zJ28zS#e*O8O$tN;eUk!_K-;9y2MP2Ic1Ex>f*oY=0|Gn9FizqDR}20DGGoI50#3XT z0JWgNgMbG+9_%0k0S7zC+hz>)v8rTb{7@YTI2mxTLj@qEy`@^j5Ks*XYUkhTH+tBVgWAWClO2nbn zup;@R7L9cjGv{RtASI8lR3<+;QSa+~>9?h=h_2x$(`6bF#1c>$EB;Oak$rso)n(8U z4Mx0Z;^H`rT0W?3Al`C>Pm=xfD5M=F-(k8@{Q4m3Skk+x0RLU|Ff~2FQVhNor~lZA zM4RU*?~_KxdQv`;+&oi!zmyGiyU#L57~;@TrYZU>o-|0{mu?|_^G`%Nbzf@VMK-kB zdD>w0hdJUt@=ZY2>j;uwJzRHI^*K7k8u(uGRw9aDI7_m}k``Iq+nanWO&iVYk%q6$ zmY}9P`}zdS@u=*X{J72*4%(HrZSTfl|s>-%4TYC&=Kc@}vOV}GVa4gXX&3p;&Qt4wv`kz819Vl<2eCqKpMG(T9t? zW{O7w%%}7$Z%rYoFR%Ap-`b1R%EmQ@BEO;NN4E?gjx(UVx~dXkGHdi_B&jVgT@A%* zc(3*4vLam030?!Xa#WHi5}&Kli5^qmw|~TZ5OMTdxE^N`M}ASb5t*?9gb%f8$hp&j zO1`}_th$$r9Pc|(b|?Fwsr94#zFoP7W|kQyqO;~uJX^7H{CiI%&&&2nnx_WMR^9E8 zyEKmM9Dm$NHFHGIsc+<$P7a_M1^&R(k)kMkCH}n_$$3=7_P}MbNfL3K8I%k*YejBh z6uz;_>`3_Xz{8BIpHRn_Pd*!#!|)+w-osG>;mDHkWtpL>9K}AOj^}xtio8mm6p#$M zquo7IWG%zy$p4wypQwx&6do&Fb?dPyvKgNx7jsEPyZj}lJ{^04`Z-@!`BbzciT!aW zuJjn9yoYaAi!08fxwWll0|sem{W^K-j?4ClD({wr?9CKZ>3IrOhP*|~hxDUv(>+6L zy_UC+zEnXR-4gKFW(V4O-TU}Ty&m#x80}OY|BU!H)zo=;Xc1-8V8P(U40MLJ9i650 zMGVvdeoU@3=wZd|_#XFqwB}~B%cX(=F;%$=diy9LdfN}@zPYlY>F9=YBkEbmk)oM$ z$?Q9dPRl&Yt9uL;8Am0_Fv2*)PjE1L6r$UYB=Zs-no()qkjYJNc)5XIkZ*MXE3!+M z9P@E-Mr^uFx4(|YpuCK-u83>HXkSP1ptsgxR84=v2EHv6na^cPCU2-?9|nJSr9~O( zdpr9@bDN;2ER0sxQUXY2ygOea-~vh+Q=?`0aSRDssa_+$%#IQ(SRecrvqjQd>@*pc z=Mj~Ezc(k7HYzGit``i_LxLh@Z$hZe(AH9y%#t4-ML+X6(6H%`W^H1|4XvfoXaG+a z)AvARDM%S^o^=*gs!_ipRsQc6@ z6E%-A>k@6s9tE}pTXYH9zn=HCjIj6V8?u?|WtiP!xI-taS zwrod-4zzQmlGL+NYtsAK@HSGAr+~qjM)G)Gg?!(acHaQf5IX)Hi<7uLJG{ z5*@~x%e|eE-MeRrn?`R@b8V^Q@~K4lKjEvx!y%K%<9;Xy;qXgz$7H_h>FhkRGW@|O z(fu5qQ&U$L4&g?ls&Cn4f}W$MuzdFl%?#v6!xGt&!H;h2XL&f?r;jox?!|g^y+O-g zWbtL05y*-4d$@O!DY_F&{xf-52Hn0M@VF~41-S)2x%jz46(zLHD5$!?%QdXjyfhZe zP@=m9;Vj%_wut1oj3<_%0~eWo_39r(S&dX{H^O!y!=twd6So);f0tE!>gW%2ZNQY8 zXJZVdL~Ld^HK?JRMwV5%ny1i%&*Vidref%j@g35P8!M>xpjk41z9$;FbA|tERw`om zPFQ<9&y7yn?A2Vl054TI{7HbP;w(BSe_*dN;Ss7{bMWRz5L3ko;yv&v?1LV3LdW~Oi#E6G>7@W7l8(f5eRO-4wd&McGtw?BF#o+pYl zzEtk0;$jK!OT9RhD9nbNxD<+XUv;=})>xw2aKl};a-%3fm*G;xeJ}LtzK8KK-yY=E zpPppa#tGMpu2S*v9C~QW%%bm*iF(Y0xL5CLA#ML1C;Hz7BLQ^!)Wbk^Wa_JR-TBXO5vm0${XKNr)H4v!0-2nr0}k<-9SAW`19#y+`(JO_S2h$M(!%Kq-=Ly zedsviqaHDP=^~8gC%k$)O+u0VphWiLPkT{wc5GGgqB)8Xapy~^u}6|?{5i&UzfcN! z_47CPd(nHPbLZ7uUn1eXD|<}id=Y=&Jl@kQ9KB5zVOCv@MGtfx<`)bZ(ZN^Vg1*!S zsN%>2rC5avNNv%=;p!nSltCp^CLUsn@ZST)@9dI5-Vy9oB(_}0Feg2V?aL#yl0in` zsI@_M4z^2+yBf%Gq)!XSQ!rQFgR4my3JfV-i@@Z#{A6rG$ zG}6;miB1Taf6UKfzmDpnUmhHf<3N^<&PBGQJCXNqC*4m`g=oZr)A149q6m$L@iDt^ zA%%M#9KxSyQPgC&DY-#9ydb12RvKO~64%Xph2>^88qgih8?*L6f4mdDQUu+R`fJKp zo6fYT|D!0~QzPl?L*{zaBzafB;t)Mrl6}0Wz55$F zVt%vlriTlvb`&Z#{veL1WKZ!O$&^5uUme!+M^2y=vPo@8A5J6^Tz=@Cau||a@Cm}J zQX#p!;aBzxI-`~=!&Po!EJ)D7X+k=+0=;p)D<@x2hJp`d2G%z*BQx$MK1PbS=-IPb@vNF{hrDLh+7!UngjXMb{c3rLhlsSt6jb6S#!oh`< zaxLSS3-ZvLMdkZp>T77BKpb}dQ`2}#`ZUm7Ao6sHp3n()q})8VA)(xEy? zBZ$&@GS?LCZ(S0UaVDS<=2sh{uY-{~y)fVA4<>ZiIfIkbvIXM)E%|4MInce0oHHgt zxhUe=m+^GR0yH~D;h7uPi*SOg!8Q^55NAOHJ@xM!$U>vhh6moF`1^+8g_%}10V=H7$g1u4MmU?a7&jZr3nhAW9-cf`kN{sT&eP+?8dd>*<$z?Q2Xxy`)8;71>Z#?5SYk_WT7_d5c ze?#B3%Sr|9Poku%ZpBBFQfS%rQapRQKRR&GwTJ9yHnL?D-E~b1UIqKn@!?^?Ei~fl zvOW-_fZ`f!OXAfIqr3c{0-M^m5XQ1IXAtjQ1q}Ix4P5+Lz-Y2l zNX{(S<8F|MZzeAg-Qv z5=~z{#2_qoW*`_|U3_{CU&eYK(OLPDXr}t0OM0|l*kW7JEn(V514`#US^Qr!IMhe^7nIl|eIl z3&g3{-u3y*8#F0zEnu~49%+6WJLWIdi<&m%0*YvaQK#L@(r@sRuY?!)6h`koNbgW} zK<~g4M7!+C(KyqD_;+7;ltV|3a?fiSIVxGB4gt-Z{WjjnD*AHz?n|QR-s`RGJDbUf zEnTp%=4m5}bs6~*J#US|?AB?9H^XMQm+X-xz&8o`F&h<4Hui zcA*=0(`)47ej&9Jo#YKGDJVE@R=$|G0BL-ZVegb1LJyx;zg1{VM_Mi{TW~Iqr zor6yY#|)xa{e)QZCr8oftYP#I`9Emw>z!=|{nYZ+$Vy;rf+Rk>q;F zEz4(1mGcs+vi<1(68{`|Mzb;%?oB{w$#J>c-w1K3zBrZr_8`K`esPxdg8b~^vBSeU z{z&oTl3$%PHws*ji;Pt{kNy{F-yKf%8~^>x!dp~k6Yl9C% zWPdt8K6S^^(0s<*`7a2l|9RjrA$j#?IJu~*Vn6bX-=(}w-cPuH{^sj3p8&1LOu(9K zG|IHEj+;k+N9~k*!d*rR*h|0WzC&0);r{Z6i@!W5oYcZ}h^b(pT%~TPumIH+3dshJ zAV@iC+8JB7<1m?dXGN?BGI`s*b9yro8LQzpy1mZQfwVVz89%%8MQA+7=@`aceC8ldUz60nO2!Bmu5}sj?pBCi zdV6flgAsy%GIVK;Qcy=ax>TEc1ebF6-995XkADu|&PjP)$8Y*`>9>im;_~&u%E6lR zXuMXDr5=JoZQEefd3{nczs)_}7|PEgk1 z8E`0lIMw4q0e(iJ-~iWbXld8~d*{4~j`m8D;r!=t`Q+0=?|Be<1Kakr=0uQ8JoBrg z?=Gt8+~-eM@ZtKW=|NkfD$Lw-{q%%#3cc@ns~OM9WeJ!hTFAQyzmw6_QV$kQZpX&x&2#%dKVDIua0vFYw zT;qTkes%pCr(mOkeU;2+xjhd7SLBd&JlcmM#}%nx((TZx!?gR64&*2H>A= z;-^6!gt^{@Qunk9$oHRc+iSgt^;2s1#l8*0=JC}&eiJR&(|%_-i#M-jC(TGV$kQs(1&H+B;ImQW!yc_CGWA1x>J1Se2W(u^~UvCh~Q0 z3pTSI%g8OF&{2AzBP^N_6Tdqka=dH-ckA*Qq}u=CP?zdKEuBcb`Tpto@qItgHgEhQ z+i?JbAro%9oB?q2un^*6=0SN_%%=SEbFiM84tAk=2?N%m6Q-{t3HWhF$8-B_ynbJm zA+~l3smzfP#rp-}t8A(vwW)*p?L|>-zb>3wJjTZ_^a<}Nl{bjqokmmw^0l!z+&ieY91EU85}E=KXv7doMdKrPVX_g8hFCx;wQG{^tKF)vp6e6E=Y_kPgFtWMjcEI~4_Ixktsi;23 zQSq^sl@BW5DJJbX_iO^6Xa3P&eRm%c5gCqg`nqsDPI7eq04?6DQ2WuY=Ah&Tee6F% zdN@(lsTSz(x!cgZr^`Fvo5G77i)=yfYCYJY&Kifu4IWLL#WiL4x+jds2sTJdEh-StoUP! zs(Q_#wfr?gOvoR@EW`Swb;Ee2ZW`vJpo5|%nr?qZX{0|?o4PP-iP>V064y>{h<~dH zdXiZJHbV!Ep2k-6##gnln_WcriGF6M>jH?P8{Jo&a~`UCpNFsW)4=5RI>|BKWys&M zx|pbvAQcR)q`QpV#1M#&!LbVPcd&F3os$=PA@*Un={hzKI4Fj>jBqP0);4nq3w4 zf%ogat5S9qg#EQ`o;X$s#z0~At5LFuD6U;4EHh?Q@?ne~9RVEV_eT&ajRSSK}O7$ESntx$QUvnt|75^D3kW@F~xy zPFDb(=UuxjpJ#X&>15nc_7bTqo>CDliO`m~B_)v(3QMz0jkw3Jq0=!_rPP{%F=ChZ z#Igz?d-p@4dQA*3IIb~2*uRCNlG^u(9&$sV%RwiHw-K)Y&3SK0AH{fa&W*srgDAh9 z6LoZl3tJ`XlO$mqFm;X$oje_8nuB1ZR!2^86VzKal>>_aOeGE>{Z{k=* z81i~8lbptvKqtu*s5~%;Kw|H{wD~=FpV<)@VXly$f(-&p<%^yCLo~gr1z6 zYsW*o$O7L0eW*;x7nv(GVA?fkFvH<7@;o&{`5ux(Bl7fY=qq~U4&|!~*~x(Q&h#s1 zu~$$((j}7M%z&qk{BnYEJ4lxJlg68U4?a{3t9y41kz9Aw&*EGc(neKu$hMV0NFJej z^GOZY#9zCwNzG&BKT*$hrVgAA@e8DQGXs}z5#r?@qj>+Egu#+i1mqW~BCM#k@NwB` zkVoqeHlDuf5Au@%&&139VXGAcPYiwJw?0+`ba1lR7Hfc{$ymN-A{8k%8s3yD+9;bc zin}IH3=C5;o z_%-B0VFl8b&My9v@BmRkm**+rd_;J@*(T=JhU8!K%Ul7mkXhE!Pmk7y=+C$5MLdDn zBu)!aUS|dW2g(HXrc_K6;vnlKM6_>z38A&@Pa6UMk$ggh|EsK)+DT3Uvw<(E8)QxGzjk zW;3uUTrt1t90Wza;Z&kbVI+Qzy(mj8frCO$7YvQFP;4-EDJL?B0G?~Gr6H<=(hhU`;v{TXV13Ktc!-uYeRfEE5AMXn^INWS} zv`-ML@nnOX&dUfmRV&o@CR@@)kAHeWiW_k0V7;aPhuPENm1+P`uxcRAL7^Bz!kzLS)mUGb?S624H z=X`^FZND52+^#Ne9AHLq$P2M!3_hTJ{_V$8<(FVuB3JfZb|mmzB6^vM`VeLkYV%}q zC-6abo^i><_?c1vccyd?b*VoNXb~9l!SBzL^*V--G7{O^ee5@8&tFZc%AQ2x-J)=! z0Sz2Ely)*ga0g>wNlW7xi^2I3m6Xa4j0_XLDKa@KTm3>B9Y2` z`?}Z&T1zx0jFrye?JILOm--FpKOpy+B-qa0yc~Pi*E$LI{nyJ+DT?4BH}aN=pNG^I6^ zdJ;ol>8WCcR-jmtz~e9kX0VRs^&)qMjifJ83-{Yudn#I*!2Xx?w?xhivYOwTQ@R-8 zZi(CDU#?*|eYuKdUg;v5|Eu=n|EYzWenU16{N^hT=^=VLMPJ0#_ zCJP#l%}>VmvCxc?YTS2h4C!5CGn3nw!R>!S??tydeg)2wKkhq%@G_a2BH<1E7yYQi zv6=}lgSicoD;6M|&{?HM+y!U750BPwZ6Qj*HnZN-7XrCq??^T-qE6yNlx1%m0(pB4 zPVpt+z^*9|SNRzP$X`D>y*&-Pa*M9HrwYia6HnzHX-0h&$3XcjE6C+#dCe8c!9fB! z!p(j#iN84Zd4vOm+~_rkJc6*JhVq}Zqi7#0=U@mn#xIZ5$uvD}?0H4bnBQ=Mf-ng! zA)f^LU0<%g;ra)|qUSFoDi|T1%luOP(he?78tLhE9>iK>g@&Ki4j}|wfmkm_7Rg`p z`tLCnB2R7b%UAYmIDU#cop;}ACvT_*^Gcdc?0eDD>V4VD{63~A{7=Sd|A7>}H)(w66|g;I-EjXC32G@-23lVV zaH?52vpGFN|GyI~4oyn1Sh*oW-1ixp^*-7E=y{=jl30(Mp#zUJIgC?$y}-|5+>mFI zhh1_7uB}5^Ff5(0Oo*sKkD{*ID^WExHT&PCx$y%NOErG>-II_Mq|GF|IEZ=0?8oI? z#}HpCe^v1FBP?uIo_J?bfbOg}g2$qm;PlY0edNC}v`MJM4d&S4z$wT7n(_&K=`|0= z_r#2-6?K;LdPEDPhWM*1{D(O1Hp%i_YsB4^s;o8vk1y-;Pu$ z@X`mOh*8QciT?_;FNa(;_Xxsx^bx7gRR(yoQF8jHBQ>7v$vcPD-bc^QfMjP`0---s zs=W6x7z_FrQnoEaFkv9g{3bOUbfs=2O5@D%S3CLgef%5>-A~?-9CAd9btQQ$haB=Z z>dQ}_B*XUa@9Uqw{|3=+{01XgCEDHdf1TBm##3{?_>j;TICdl#b$Z`HaMtEx^H(xB z?Uub?TK$XzPfq_kU$45SPXX7q)w!G*!0r6A%7lFpWW*b%cpoQ@lBg4Gc)7Rd4S zldFTRKx^NrkSrX%RPU6V<&K35g|o+}v+>?J#&YZWT+1W7xpp!e6%qcs5m@c_;3Vuia_2JIB+}B5Otx=VXOs zmm3?}BLVo5TYQcwR}*Pc@=MdDchJvY!!b&DetJ5Nv>a8GKvd+Z4Z6D|2(wCjqJ6_1 zzDt~fH9TKbP{HiYOJg{Wp0C`JnWLs4q1_naEO>!?+J&1#KT;tmH|c3++zz8+9d)}{ z1yBa@)qGg@!*#ETi2c%Ez-?_;=(p;PHtiO6qA#bBNuumzbN?m=_R;?Q@l+Z{Z_@|T z#9rgVx%PP(enkwrSi0;b_Q0h3VQkW;b=pgKKV@hS-=V{wSU)b|^MlKmip1|BlTBOv1{)1L9(*WHuj_}# z#)9*svo{c}K9Kk}(*XX<4LgDNWMR6bvhZ4p81{Fvmew8W!5m0;R_D7QC|-Pd@-kQy zdLoAlB1SZ^Q)w$GDXf8`BfUh2D|>P0U)Q@#M*?ncnG>qZ^Z?&f&w2#;j)CPzR*f3J z51PXGdiS)vz>rPVukPi5k{k-&$PbH{l0Qjj@hFSHi}+Sk&C%h&@G+A|&P4F!8F+m0 zKHgr^x0MB+nV>#cuP^F*Xj!*M53vmWHDnb zFl?0&?Fzce7J*{I{amKN`_w_p2rI+mp3HM!ktI;}vedN{qyrSgDIb>cb=d4iqP%E14;`?iSxE9e&t z8;y$gfX(5jH!m$8&c;c7)+B!m1I?6L>ie3gzvlkzA(aFw36PPwuZ; zK@WEZlfdz8B3spLw1!_ckKWc)dW7YX=Nj~UOho^gB&3$Zbj{8 z4)_?TdgMf7CJIZJYpYmE9RBVGMnXp_-FHhkOw~s?R!gaCdmaL{_pRW;Y*JzDmEJl?W8S@w4FK7=%uzNfQePL0@uk@kH(i3>o&3wG*C; z6EucCQtVM^(Qg-K9V~#|{JT}QJ%5M^|D&C=SAx*R?K{_mf$+zyc?<2D*tUGgT79qz zrn#?!o~>~qY3t)Qv+E|f?7Ixoo;-%9U-9Z|nu{2hVAnpc8G%D}VY8m*`*5Pp&wldH zb4;HjGTN~@0lr0!zY(hTa48^3%P-|r&zJu{QaNSay+a(&+mk`_CauH(e2x66}J1nzusKBi<9F$ z@-p@-SUxGax<#@{&|O&0D;Ix;dg;>7LV^zA%h_%+vB-6T;cJ9#QQHbe+?Pfxe-Q=@ zrB!@>R6T=LX}u8os7YiFtt1E+C?hpIW1)$fA9d^(G-V{^kgj?;C|$n|Ot`t%l`)N< z+tKV_2>XqScswh=-UoNa;u^y1CJ@pmrh8bG6-8@x^x1T)*gTZNV}HySVMfn+-9PnV zx;kEwI(isw2kUlC-}>N7NBtJd+A*wDdCybF`9sahcI<3eDrR+NzAyLbgF@qJC+Cx^ z_{v~Cbd2>3LQ*r8cDrO?<7_Q@UilQl>vk5UX3pT!y(bM3)w|$H`Yx^$9f;mrQQwz? zhmdM07y12TGK6~epY+dm#D{Xd9R;f{e6&CRC+z7CD84j%g-P(DBI{?9tojO;s2ZQ| z>Y3uDMb(l4L2v7=*8eYWV*nRq>S=lITSCWFq2jI1OH2$9O{Gl+V6`C4%dEu{N8Id7 zwl(HJmZTJ;K7I*&R<10f_W zI1kAqb%2FfU1}2R1Pjc@Mhw0mlK-965QiR@xrXSfCwQW9=o0rnAvDh@iStVvA-uRVGJ2~XpxqH#&tn|~oeS;TOb(Nw5X5Qf7%50Z;)BZgic^6aoG-EGbN(~LD22!Q&BJx* zza1X;)m08_4R`7rrA4=&Bs}J979JScXl(*mbD$lFXqaY>^5X+{WTRv_)bOaUxPB_gJ7N7FFO162b@Ea%azSX@qKFh z^23+|_-CSUhqb;J))&;ytY_Q7>0`-H{nQy0yUxlyU9SP#BuVL4JxBED#%61VpTS0N zyZO9y1Een$K6?Lx8WPv-wS`lULuOE;=|)5&0IB> z_kNR`6?@`9o9}({^<=DW-c&25Er44{;US7{N@(aip9?+M2i3MYwrl@2A^%csI0;b* zZV}HH>g)UB^Rp<0c)xYDxZUM{!Zw1d8cEklUCXidPJWF=X$HzSz7r{|t3c=0!L+QA zBnX)_R9K}4U~%nJY;WuoURDH&$Posa<&_R*th}>BJ1IYrC{-x_<@W}Bf0GHW(?&Ph z%pPJSB8xqTY!tr=RHuUc(h0c1$!|wmld*sCsB=ae7n&xWzGFt6^V3EAqiDFBOnO* zR1(^RwWFBuk4%*o4#5jizeqokVZ6<}oGs}@Xy1uWL{3ir##MQ!X-VG1#B-8!25g2f zaP_(IbLvaGD}1oL88H}IP*{vI^ra&w(lH6L7+lc zUBm=Jy@eu{49p>7<~Z}TI2~T0H|8wO&w!@vKi!S=Y6O~9dv(rmgZ2t(%!gz%c)Y## z`h~eG1g3_B^EL)?xF}q}YdZ@zI-hC2?cGLSc|eC=w+zU_npNLZw!x~6O!z^)JD#84 zW?4~*g3A4sc}s#`^7nG*C9O;+98^2d_gF^*cP2Bc&uMdEymHZBa>5dV+%!^xJCe|J z);Rp3{1xV9^Di@S&SB%-;QP5~8gM+-WB=P+kEz&KH+|UNBZjzJUWud|j}+2^Pbf7Y zhHRRhpR`^Ao#?d$?RbZ(07ip7f@4Q9m|XH!Qrna%2y6#qj$aU)f(?B#%w_CzQ?V0ForX@Z--;p*z|+k&Q0q)=9AqqU%V0p_x_0q?;zwAy z;8i``ZI2sNE01)UMiE0Q-k3-@KY~myG1~fUL$*_KK*+HX%@4&XJLm4=@)xP&Ww~nj z)=tZq>7a>kc^!_DFZu8+h}v22hA(It?fzw&>_AwBb#v98uul$CCyvN1ECFO}OOQ-IG*3jzo zzpN%?_Q|Un4p$;fyGN;SEfdcVY}@uED?mk>i1S0WFqUJ+7;Fi+x{50KvBN~ zV)>0aro`4%qJoT2c2D7xuzfu;f|{;9;WtHNzVsWR5x~ps_TaI4z;ZnaYxVt?=)PZ_K4{^Eyj3RAWhcjuL972atIGReH+c+&YBhx?$LXXtDa;@L}UKNO#8T#55eCMUOQyO1KE;%z3xZW zxJFObxXw%96J1BNL{HM=*4+0<4%L(J`gTTNo5ceXJeA*vwqcAp1^G^7eFR%+2GBsSh# z{~HgsC#`vPw2=0#ls|=sYiaJUTcivA|10L~Ve?Rlpg@Ut4=W%9Ys+UJoZ0G4uCo0jLOFwBaTm?Gi z zeyrfS$RYZiQxWR|jxnWwz96W}f@*X13_f?M{fbF%!Gc}SCB<9EaeaPPsO<1XD1`|V zU*pP0A=O>OoX$DO*%Hk`9+gYo87yO!1wQ;fG>qk58f39jdl zOKbc71F^8d948vVcUE2?Y}o=9;~(p27pgJ4&Z$~G=MIjD-R(P6&X5gX8{HOQ#m&*x zSLzxfaP?z3_qN#rL>qRCzM=%5;0{L#im* zsFhnkoQLSklxN23mK`=X)wCejac zas11-C?ru` zngp{GLR(W2X#DX_zyJ{ziYR__{CWUO$=twS$5+w5-H}+JDFSbq5Yx_X19a?T`e5_( zJ9=A})jSTW;oWy1iL9~j5NHT;sqLe}u4Y<*;gORlaGsXA!gClh$B8)%Tzuf*)pYUR zkOd^07V3BlZo&6Xu*D~;7QCyI30XXS5Z~f1vgQ_uL2HG`=`TU&-J&dzdx%sN0YN#u z@73NR?)RAkpSq8r@35eMMVBK!J?wr`+qI0wk$;~DYpOtf;LMce`FpUiWt_Ma@CT87 z$?cyWPr^4hjjyxiDkS=!upCtm2b+oXz431^3Fi&x>!FAJU>R>uqiH#b)H*$;Zq0oJ ze2(4iEWyWRay@ZswvQPGRrj_AKJ0^1)U8pkm0Mi^Aa(<%m6Y9nvCzGvcuByZSO3v`@6+XeNzy{q`s^< z+u=}reBhFkd6NqV4^l+Lam|1s_E-Bgc|HidIvPhzLWAoH$reGH_E0rwh;o<^ z_;j7kDU&q}g$hM}*%L%%m`K$2lP*{?W%koB1cJ+bsyyhu8yxSOKe@c~4_DF;Y4M14LBWtuJ8^XyIoF;*{KKT6#dIs4n8D! zy{JwKx{aoHZ=4j>8*t{ykA_Ddf1xgu?qZy0IKIcRW~F@~!P#JE$&0m_=;qo^d(fbR z6*;DqR9k{hk-XwoHT@r`=yS<4=DNYhv&ldGsuJQK$0)dp6yT>hkJP)WBM_AiOU>cU z#))4Fzh2BrKz-)PuPoI`yt@70MMvr~Xesyi*V#AVI`#gAN{eR1>-RUm)L;hH7L`fp z(Q(W@NXvLj(+MfP7^Z~$b8tM-8}6vZh)CAIZ8GbGVanEIcY0dGFqPKQQ0z~bFaOWW zB;-p7)~XI_T#ORJd;t5E5l=lV)XImOywd^$dtV5p+7T!mwAS#sl!&C`45i0?PUHRW zBVzKcDR@Z}9<}l(8!qAgZ0Ur0h3_*Rdl4hyK0FwbupuFU+EBUy!3G=5ai0Dbo?Ha7 zOGe~sB>hmi@;T@{s}9`v$g-o;ZIETTAweuhf_aAzK|cLsDD~1!%%4+)b=8%`J&K!< z`A(_TOIwbwH3}d0=)&MUbffDPPZCbu!a}8&2V83@9=}?xg`=Qskw@lS<8FN^SMe(w_NkH>qa_Oax zDO}Th8e98|70SEl^GOgzGtF$Vr35Q_B5gCn?i--B_IS(HpipE{o#|kZdW;~_Pn)+L z5^$B6BJfXeOb-lCrx_nugy6YXP2I9(O zl=Lvv!Xm;*#e-9Hn>u?#uV6E0oUZI6kK(P}L-vOiF?P}V%Vg6%aC^|)B=zVb;7m!$ zhkvi*oV?#+>Q_}%YO2iy+zdvRT$KIxQF{z7a~QslEQC0}tEV6Ve>kDk8DAxriif(& zg8A=42s)~xEL7LZ;KR>jJ=@WM8$Eu{pQMN4SJ3<>IptftI6kwH+^hHLYKMeFpu5!=~G7`IsN`r>o1k>qF8aeBLWW9=9F;N?oT|Ce-ET>|f3sK&<0NG;85;+@sYU;+`l0 zZ&6=$V&4*eRQQsc66V+)J(PC1je?*rp;2}XIJ}8|lgcw*UqT_`?jxpCON=+F@+nr< zWjI#qDyZtriSmQ8PdZp6QI=&hOvh}92X*%S3I+{08_z`jLyibN|wMAHxgJ`3QB5 zoZY!`n?zjgwWATE+W>3GLAJs@DkMot%N(4sL5amdqL-^n*f^|3=GI1!92?KaSJ--38BE%^H4IcN`m=oqQ}i zjPJo8Ki5Caf_NI;PuHRo7}otaYQhjh&}A5PR-*x(woO+^)71%jofb+eOJ__Ut=$Oi zRwMZF@92CdTE%sd^|E4~^Qcob|2MHf;19A`a-?4`QTP z_J_C&*(5@uoOC2@H}F)@q1tZc4Gx-&wPqxwx3RyOPS&zJ|(q`(`Xe0-46G_-~gU{gl(u6+& z=UDh7vvOVq`Ikl87g|Zd>g>8~Z9{=lj3?ZmUMJvrJ@YmDFC)|>)OTr(4hb)AF$nLp z;>X>&uTSO9Af-W-{Ixn4x-E$VJlMq%z24z5U?Kt;l5_Xsh3av_@}oVoTqB(M*{3@z z*f9S4+0f+$Hbm(fl|~Ty-HXy51wR4~AViLR%rt2cU;bLx?htT}{z6B;w6GbF2j)fh zeU!qP07p};Z*LLy=ziJvVFly? z`8oO*R>Pa)|4g65%KZLUvk}LU>n0E$^^O<1y1mKKaol*kUZ6{BwtY4tN;) zxlo(g8`rc{i+PC`2=}wXv0D`1z~pUzsnC)NtG^@6Jqh*jqW8^#{6b=6n#lJ*q*TFw zW`pJF&Flo7pc1Q620Q2qgytJxXu!3q$R&iC47Q&m54fH5gruQd{*?#*6S8C=qB#Y<70BLf?fKW zq~3`fN#DwT+7sAMEm|ycJqUSmo$;!Yop2tf68N-gfk=aoR%!`(@cHnThnn#vQ1ngP ze)T#C#xuc-EJqL`&b`UAtA@tqu?WW$8*JIB@U4h8!^FOuRCwzh)CTEqT*{S3`KgpY zY*7#JP;BEN`+p*!C=ss73HnO#O-`_Q5pp>k-$|9dbYVgMV<*>)pUa?Q-Zx>Y!vb}( zA3y(|93bQ}{If~YsKE z<@+SLEWA){^j1|{If>?1s-e%{y#!s5Ib+ub&4SJ9pSFT3ap8^r1+q!RV^qs~QueMRj*s3c2d zuo8UO$vgLI^$Tx-{7sQaNb5%&Nx4?Symk&Dx_(qMDUWbX+rE)Uksq2ue^k^dNkN`P zBv6w32cz0kiVrC3ku0K7{=+r`Zr*>FOBtBa_;LN=^LqneZvSc06&Q-_Lq~_nsXJj6 zD!Z3I(}C8kVJZ3KD_E6@KD4jY8@uA4)|A61AyzK>XG_{1CatD&i&JR;-HSO^?oi}U zbHCd76bbX3wL12&ZV27-jecIIhbMg9CA;BNh*7oqfh|WhCPxtJ4yO%62XUrC!Eja?5GXP9uW8=z4fz(>ltElm;aA z&%;mQ+dmHzHM~_2r@8RU8UO4)sb8k@Mt*3kV-x{LoR9zVc&VEa_jzNfUTy5+^xCMi z-03M;tKRRoUm3=Dr_y;Z#wlo*#T|5b7KhM)A-dbrI~eBc8Xh?B0X2avp9P^oOoy_2 zw!SEW&pD~ML@P~b5r#Yu2|UAvV=|=sDdjQvPNRU9S{2>}mO+aeKauEo)`zT10COps z-P8Wh2>yU&_cB@&oH9_!lP1(BBDZ-;%uWVk{=t_|HJXpnJMh%ptn?!`Q%|Xuy9Z&z zYmlL`gaU^t4HP~^sY34!&o5GAQ+VIl$51aVgVu?24~+erus<|7koc1VO(}zP*6O8z2r@ZFE@&V-)B!f#yfKYpU}b66V&Rdx>B*)j^h( zJNq0V*UQ$Y^Yt*YRoYgZeIlT%H;7-q<$8fYgKC!aB~O?+1WG z*bi5b^yfl)JSXy90UQ24A4t9()&y-Yjep7KctAuL2*w_x0UL5%nN#9yu)NMpFXx*G zTZI#~@-lMZ<`JVa7CM9pA$5ALZWSB|_?8+r5)G-bakg1%2GrcnG0myj!DlL&AHkBw za2CB1d#_Ur`>`qS({72m1%Y3Ru745sc5cjsX9i}s(stJl*(3H4iRNDK6X=U?RW0~x z!=#bGn2&yj>8D#{n)1^y+jShK_;(to^o~4yx{n{?0s1lR@hxp(P&snA?pz(Qs-FZ9)Kd#@t z*O2G|`PUl0b;=JAT;(gyxAFvgclm4&6Y%rTG^Km@SRbHmSkIPda}();4|@CfW|6wv zVmR1;5&L8&DtK<{qH}-DyUHt{(7jyPA;#E`W}*y>)Q4gm|gZl6LqJ+(SoS&m@JRW`+l>1+vy~BDD zbo08QP0>pD`G_)V|Gi?oNs?nyoSXyw)XElB{|kHx6Pb_x=#6X|+0wsdXCOw>FI4Ur z42P%(CVxGNVDPqA@IOC-uJ`9>+1I9}Sedx<@|%V|e8LJ8YLdv&c_08W<1~H4zmBqkLd|kDAF>FscZ(JS=#(qpYT~)jss3ClEI^Kp7Gd2QNdM3MfGq3x(FS#f}KuC$_`#S*e&j=lO@Er(`h(*vH2+}P6mvSS{df~#$X z){5V&(JxPQy0!2%>hHQU<~)mr*FGi1gsiKe>vt<8pS%jKAD*lH+=M>F;vZ=UQ4ZSj zSrcv(c*2;jXRib+Xi%+v%=6j&U8FrbN&Ha@qApSSqVndrN7f zUD!18?BFD-6Bsr+8yQVXR76N*l+qw0w5%v8Dv6egb|E7(3PnOHqWYfq{s;Wgqv~IIJ zE^dvdW7bR1*?gZZ8G4I~x{mM;!@Fp6*TqyUfMIqHKUjQ&JjeO*fnpW-u5OC8FAMQ5 zv>#(tHzB|LCYKcQLzX4yn8+SS8kDKaugr5r)h$Vkx_g--61MR56`9z*Kc2PDyiERs zJ6T108(kBrAvNcP5H%>q0B2WNv`M4Vl4m7WIXX;BsA?Ykm>RTDiSsGJ_ zmB+}mJ8Zu77i=#5OVj&}=+$L2NX+hpxoIcet5^xi@IF#9H^Ke29<;9MG9|n(W{=+{ zBig_O*BVD6+}x3w)O1r(;%=H<9ZT^uzVrAC+mJ2(mv3?{BMFg9)Y_SZ2{C8c=7=HS z=azA!z9zB~G?As+7w|xK8w)T9z(e)571^+01Uhem!14UoJ>25T;`UTt|&(AVOI z?GI>H$S;=UQ%93rM?q62h4LzlsP(!%b$8BX3#`M)lGfnxg-x{KxEJ5%d!KG)>7jr6 zT8a%+VfKG}C?;kR?+n(XN%IqE)}?zm9(;oxTKA6fZ$$I{%Mw`XJ{t9TIxrCX&J0D3 zX?bNK{!>`NW$xLT-Mj0Xbm>yImC>F zY|}VWtNKXpE8BR%nPJFLwTHy;adhx;A2%$}p`fW2+|OB;D!S5H@+Si-O99wE)=o$18q2= zS4RQX6_|HagfAWS01~gVnZn~LnxpZCDfOh#oAILj+5WIOlHB6G`k&D}C+^Iyi+tZJJ|Lv#Ec27_g{*h~_7I%Nu9ar1_d6ER{|`<E}moin4UI?vS%WaI5O)ScAOqWHfG;2ZILOoR=;J( z$9Q7%7b&)3+!7LbW`)UVVTfuprU516G4od%tNkVk`FGoSct;%_H2=kSaS5v5c%OX` z|4tDmW!Uk08y0z-p_7KHq|mgB9!@TRTg838CpLy;wpfwIir<3Y-~@k_xEaL`_t>v( zQqtnxzO{s8E8s9r)HRZOu^RkzZuyE5~t|;;X`~EwF05dt-y7dbGR=ErB zwG64VONJgr)j_GTp1$BF_gozep+1`({Sr*)uFvL=glF2Sx0y}Y`he={ukom_GbyHN zEU(_am5#3!yuJbVQLb;tJwh6=y2yjh*40wdW<@I8J(ad)r1GIT0{hGOE*$QTgrVpV zdK!5OgT?nS{fcX-x>`c!{;Aa4JcwVq?F*X;ulO~cE)1Rio9$56z{#w~Ji7k?h5e_` zymagFtDuwQD(>On0AU7?OC-};7uNQA1?Hx1#a?4^YOD6cXqeqn+?2O8+ClOBI7)(HEhkLg(6Ssar743&eN zG;0>}EiVO5iP%u&B?~!^{rf1m`xF)b{eu6>b8uo%KkpN`2r2Tr*cI^))a)~bZ3r9( z)A(8J@zDv;X;?*vC3|Uy_arjwzX$tIf4S0kJ<`kcL;NmV3~718914{|Y74l2zrdgP z6OG!Pr4Y$XcZ2MQ-FZL4`_|Eg?CJi6ob{iKSn?Ao#pJNY7pe z7Q+l#Xy<*@{*|JnT5TLTau=3cc9OlQ3ANRi;!fskrhBd&!@pNhM!+$$-PTPH6aLT) z4|!^|I7j|ps_El|m()5w1|Bm+&@C|slShftkv}u}_=&%8yTXqvdq+{8@Heane zHtA+Bq_>P?Yh)c@IJ%xrAKj1I@~`a6OOW@1NctoeM_OYdnK5gm)gh|fQui!Q8K={f zt({cVI*0a34??c9IBo}6lH&CiHf5_Z)g*?{FO_pNDaxLw%sfdiI*oZ{vp;2~XSXR`Oxul^y_E}Kn9oP$VNZaS&U$HI5J616;7NhfAp zrkRIEVdiidd_z1tzjG7ZZpmU>?GBpv?hrW*D@Sb1DRhXOCx`gKG_{-CULK0@A8T>_b0uCyC!@1+8fLFg;DeK_kRfmPxA9GYGbLdjkT9-u?5f5tHTd9i562ozecfo)VUWnOTn zHm7vN?zN(m$(GnCSA;2ZM!?A{1S0JP)Yp3ek@@nZ-r|8BRW(SmNQLp(bRO?*h6(Z3 zTvf$07LFf>@iJ{Gz_*D0hNvchtq{=5;+;b2#x{Sy@U?)tvKGWSS zfATY$$;Ms#L3Zh5`S=z&8gX+p zBL!qf5Iq!pdSPvJ`)mYRK7EMX3}Y;BJV>UZ{m9c_Lfd-Y(%ng6sFv-fC1Do)TYxu4 zy^UtmpN@p+sDpIgQ-p4fJb_xJ5hSxXk}n@OoYprjV6S`+(hR}lT;ueV#;hC#>G49I zNUxGyeX#>YEdA&91=BLjtchypavB zUWMIfCNsxvujtxt4|eIzN_z3cl4&nqLSb`uu_wI;aipPvpL2Ulaht$Grn*qkK{NQ5 z#3PB{;kpt(Xkv{Um#fmJXT$e$AKfQt(8=Z9)=vap&q^LO@(mesRrY!B2b5gUXV1(X zY3id~etOXqI@+a=s*^#OuQZE4^(v(uS*f^CKZt4%?Bgje7qGhaH~W6=Fr5sSL3-F4 zx^QF_K6;u%b9@jM*&ju0|1`QAKZ3q!M04d4U(nSojw9E`W94!OR$VrfLPZjp%bju> z(B}f>?qyW-Y%GmEJDirRHpi1b8JrpwMe4>8WM^`k$^Ox&i4SEcx9mB5S`%6CRbxtA zU&9ZCSkw8T!+7d;Ia)rxiMe~-hC$L!R(4`2&VNp0IA}u)B(%A;<`DcFoW$r%!C@B?>CFhyY(Ro2L&Y-k1FEaFLD3WM?C(oTFcUx#H!?dV*=0~S9*10(M5 zp;e)8(Klo~yXDtP8#9LU%jFj_tvw7IZP(-e!HwiM;ti!npQleF&IuVnFQ|kcq|Mo0 zEMey%s+O3^d(+;a%xwa>NjAY|`}lRe#aOK&iSMI+ zAaM9#ez58X62~)cih3|_q$i%8KTAoHjE=c@)7p!k5S( z-Ddh~oJKD4XMFT!VXpJ%V^kMm{Hj2%{8-S(gWR~n%agP%J&oS}lgBn?C2rSbMQ=tP zMA^Lk_%No8J{0;3dHGxH)D}-_Kck4UDr1aNlI39nr#1H2AZn>~0vlb1)6YNCPaknk zS4v4kdny`7QJ4q$qw-e6mzbO4lQ0qZ^m9BYB@>| z{<-q4y_aaQvNBUi`3{|xP2Bg#Jv`Zvjlg5;5N*s+i%~9c3?8S=WamB`QsUxg{6B3WN3NaE`N1xoTVbjeUJd{u|X z>Pg%=P0){b7PBVtJPOrK=QlQ-pr4nw;p;44EOW{uk0ZCKVPYjIi*KTFBR8_8RqKWP z>L`rcq>bw-FPWz2G7_7_`A_}}mrg!{pSujMdkYzoH6;`#Di3Sb2{bug0%N=4DE#$K zwrr0cMk%}Su(+qN`|uHGuP9Mc)>uBvb08$@Wmw653wZi`VZ+Ne!)KlkA1~+x>P{v& zRxt?<`b!`?OvnwdTg4Xl+S7&5C1fz~2O?kDW1Q$@IBHn3Gv$J|l{*(>tA~=>k{&J< zWsKotjY-9Z`6vGGSwA}U{oq>_W^*P2}JRkRHUs_kjMM;nIARq&;AhTu|M5RX+V zB75@?H}8y^_CgfuIC(0XMq9FOQxZ}l{M zu5PE^2mbUpVhyES-vH?{J4mkhL{`dYSWzUynqwv|Vx% zJ-V<6OY5hx_y0Cf*7nzkdj6PH8iztTaSw@$Sx`!K4c#0=TrT1-BHlK#o1ykJG0Bax zhSnf>SOK50O6V1G_hvd(qHwj7Wp0A+L2QIQDX#S)qv+8nUVfJz4!y+6g0*Np4ca*d z^(wPa9I*xM$MZ@3^)C!rVa-*|j#Ir!AmmdQQTwprP|N)(+(ouf_2z$cWc5$uDX0=_Q4fxb&0sqxwn=8&i@+=;KSH5noZK9-G;U&qP8#t(Tf@8E-} z3?6Q9rV&MZP!;=I;A?xKDMX8|&n;m6f3&E4$R;-BsWZh){K+#K)mtGH!bnV zd!G9rI6z(nF6`JlyszPUuI`Xemc*ocWVEKQJY} zb}+ASy^iHqrTK*?Pw~y>Bo$=1<5~P+-eglpN7PoZ)uH&c9BUf8)6Iy*gZ8{+CW` z`;p>O4X$FCg*20OP}=kgN?HnZP1=DPJO07KLeO-^gMVG_LWAG#q1FC}X^qop{#N=h zZA#uu=EbH6dixC{29ChwR98yaxE53I>|)W*3P_DHq2234asJU_8n%BTzKCt+SNA!R zpmp#E3$&2-HuhZ4B^Y?e?n|QBL&$V#^whl zG|8nIMKf-)O{GFEd&wEdSdD{q+y++bbqptWzs27@{h0E`n8JenF*w_otzYRtBbqnx zt|fr+%V~@G%NZv`)z4VFI&^uahLhj+o!~4b(=%Jb*s>& zvy5b(?;?w7!oBGBDm-eNjHREB@%L}`(z5YivF)T8CAZk}iqHg#%kSoQM;(IV&P+P* z_MJprqnKh!HKoc)v+UW+$#%vh{`=lH+7cg5&ut&$`_X?GvC9!V^pkkJ*?la}EZ{xL zs&KIy%3nCF#lKfla2L3@t`{EhVyQf`7_Ccpw_Sp7ssk?#K2GzykMQZc0%=!_HrrJm zj@udEp(OeQcf@=!duR{++P;sC7;q7T-^_y4ixsf+-NVYl&ywZf5`I+JgEHn`5BxVFvI{bIjY&*H=m8shlh@uPSY8+&$Fx1Ah2Lt? zvtTM6mpqQMdgEwD$3{L-c)ym9?PAkvGZFV%l}itQh@VsD@?#_8sq2;qk1x=r)PsYd zcxpbPyK2Zw;}oqvqr#50N07^g-|XHHA#ZlLo8C>6CFvIz+12rRC>3>=|bp-uyI;&QFMCPU4RC@O<R8i4xp?;SN-Z|5I!dP|-$J@7H#{4)7rzxMz;ZL%KnmBWg7jid&>5BGg8d( zqDcavWPytsB2`9{bI}a8V8wbm@X`VSp@POfF^lSsKB9s3m2_z7XUbZa&3$8TQm(HO zTb3kAeSdB-m3g1&rXWlF1A zv*=ygS$`JuJQv}0Odfrj90h*8hkeTWB=CWf`1KiPoMfQS*XD6ap z&?PUnY+(BA4$9P1Sa`%@oa?Tp(aC;Pesn)uVzi!Kp37!28)i`KE)h%{*oi9i2Kyax@*?LI;J;JS=(TCSh#zqdRSuV zV>_B1^jz?cT2b->Lw=z_1v-^WumySn2j_y zq@Y9RX|K@#F)REi#b%s^&5ZxZ=*(=IHqs4MhaFH`G?r&+sZqUE2o8=AaxxFo@o;Ym zoL9YL&&qE@Y}kHY|56u|U7zwl&O%RJ;~?gxErz;+HQX(DJl%Wt97jW=scqhMEL7L0 z*d6JpUCZDW`iT<9<gH!rGx}UGW_Kco|zC*_3ChCIA}Pvhyuq2{S&>M&n@a_2vQXFYH8Cz8U!J0j&SheOePBO)uS3(KqoP zH$M9U#YW5VR@Rt?jFe)f7ACMNeux77~UW~!34X*^RgsidDVtt6vrL7o1Z{8Qjm{N8KJe1n7@ zJ^ql1ezk<_wa@I&gd7U!v*l}Y50c3(J-T)$T%- zq{IdapXkavzR$v$s!ryRHV1ucN3sdm^ss=>6}lS_Q0goXE_KfyO(yE}?57S`_Anq_e< z&Xya!?18F5Fa{oOflQq{|GKMO=pot2|I`hjS%K&HcDpKcYu@DLOJ`x5(ggZ>&V(*L zvls3V!;!z_G+mzioAxDU!*bM6Qc-!xBF-n__Lp5`+B_OYS|@0{$rS22JO?$?asv0mGc{Nb>we;yaz$O0T2bFXTNqK6q>W3 z=U0F;>+Z7UUS&exN)Hb$Q9_LNOt!(W0usZl@b^qA{=IdB?kY=s@^z(~_J5(}F_|aV zuEumW9!klnNOnr+3r{Y?!&E79={KN4eRX0tq=0Pg_2+6`P#Hz04-Vp^150xA{yEc0iw<%z3F{Q3z2}q z0rchTOSI8W%+)_nx>jG{{V$sTZ9Rk{*XhjC)CkYU=y2zM-55RWExsAtBb%ZZtTDr1 zm{(rV{FWeM>u%G|`zit-K9lWiilb*)`LU2ix;MI+2En#IAfnm zRTWne@^Ap7w?y|cUD&aZO@hAugXL_wLSN%F=(vavbknR^m4u)hRfw>6mpIK7eZjq? zgzK1lE^5NY)T>WFw zJh_5}))fl>?*TOI#4A`#ze{_}0%12Wh+?nh!#8{g4m`Ypp<9b6N^}<0tj%XFQrR%h ziKT%>xj5+7z#J~N5O-37_W44g=emY;3{T*WTc6M!ItM<1L6l~+5$@NO*_S&4kHyx5 zEj_yfTSOwcn!{wW*5Ac@<&)rBRmZmUzo(+im3+ZGDf%SR&YH`w((|3wOs%z(cVckaJeP&!jH2nAHnTI6N0Le0F1GGX8y;Rr<|%^i!rmwIC6d>WK2!(irZ2?u zyApUTdIV!4fDh58UHt})|1Id&JZUoq}VVy>n+Q_ANPL$Yo4c}#ZnV^~uXYb0^Fx)rIQ0_K zJXPQk{*O4-(~LjrG&jACnJ*Q%+An|bQ(~b4S6=9vzT;1hg9D(XV2pQ)wM==OHKi>s zdsG|wIzl`#~dDD_V_N-8TDBa%pie3x8!Nqk`89vA(TlF2jKeNH55_>EN ztfSexpJ8FH0nN*i<*qq`E`R?EcH2!PDIr5R=QAg`S(4|7N?aYQ%pVp^M91g|TqzLz zW^G#hP?;N9KXhS(i^tQgsuB1c^@WbLAE1-sPch8w7LUw%0qLDNP%CSs6-h7YTI*>V z=cYjg1>zVH+DFl!0_hdiFxl?c)KTn#F+bgCT=Nu~YJL|=v)=G7n?}eDoCB2x6UzH> zN$7|l0TB&9IvOfVqTg#Mqd6Eo73%bP=vzEEV99PKUB<8ZvMf9K9R`kk!5kNOBK(jw zpR6HEKcfD_KTQczNMFL${WNw#J}%lP)0~k%Xju3kzN9S|)1`!t5K((v$k61n*Keb!U@i0YK7tta z-KZ7zkGGv7jFen3ufvWn6Y_uMwWiEV(hzHt@8e~g1u3ab73K_IIPoU$J_>J31^%>iH0-9>fS+H$YlEHWXyi>UD|3gYFObJQ2NTlI|A2;! zshFa-k$pbdMW)UN_~O|ANX{{yKK{`{+dC1Qd|8j=>vde@vn<`%|615%L*Tb8hC4L< z6}(b1T-Bxo(G9EFnh<&V{$w_7b#KG$&E8zuw;!Riy195?8jkHagcC_uNd4+lSk)iL zvyJEI_`@WKd4$p~-!Xztug{k%>Elx-r=P!s{%iGOTwK&ox+R^oUqPBACb#eb=iSM9 zls}qY3;egzOn$TMB&;3d*c7XybScq|>AM!vccC-IVE!Qtd2Y#r|K%ggZ5Ds>hv-Rv z3_8A4AiCr=P3ZC@BNI#3?(`q2^dDmOQi5l@UV+>zUSj{gTo_0z(yPUN6k&aoLi9q} zw${ybca7k$?F*n{!Q1>c&=h;FeWfb{j^NsJJ9K<%RW2uBFS;2D6K3fA)w)o@k@yMln{HCP7~{wAeqdOez#j!wZiqlr;Jc?Otnx z5z~j@k+c)(&wI}kBleQ|n=&kpki)rihuEf+KxD`Sz)wr~z86TbacVLNCebF&Am;V}Vnrb_HQe0x4(tetue3;0ia# z(WLluv}XH4%6cS@RO@wYu4O*;DSKe&z)EOE%w&t^+@MGA2XcuuLQg=}a2Wr{gNLLa z-f6#st=R{%vHFFhCA+Y!ehv-kF+)*RHhpRw%2pk?0lgUqXzOVO3K*Qie|4Rvg#y#f zqBun0qV2)EeeF2^>o*3397fAgZ6>^uh0iV=YNb2q z2ZtBCvzRXnsH=L9;2j>1#R1FN-}LcN4jRI2o)_S+cNfbOa>_G`9O%@h+w|(aInRjJ zr@rPVe4Ed5m~OM@fj0-!HlGDl`=S|J`rgqxi7&`mRYIMO$>cnI61!LQc+iU%9C&=jSKEZ5DPCTXPb2S4VK_VNfGf9W+gZHq-Ae~YWq zz0@(}1$D-Blby~qbjfYOkPUHYUQ>gM0p>z~%q!MalZkU%PBE=)6KL*8W0v(U^iFXn zd1}w6!E$5h+l8lex#TPzF`7ds)=i?K?g3P$dYEkxayTt9+nN1?W(qTZz`NcD!f}Qu zPkW+9|D^t7CzpHE!iZ^X(KcD+rnvC~UmeN3+z~#y>#_RSFZRLfDn=BAus6B_@2_nG zCU;09#r-(DzE6oR%t+;(|7|Cig^$?SK}!W+mQWZI^^hz)H8FWcC6kC;3F`!JE+J(`k;O+@Otl^otOm2v zTt|$$=7TMk%~Y$umqqsv!iM9un9^&2SB*D#j71C?DYqkRksgVfb>a4%TjZ%eo)&$2 zNIp*5OuZo97VsnMgOK6(W$ljDDGJv4LH~b zOIcr%Sbu`jG=4GPn9nHgDrCO*?~tl?4~=U5LVm&xYdD{XUs-|Jaa@6}_;vGR!=@nR zVj{hHy_tH)PGOr)Eud-37Lezwm*}QMO8F@-aCJY@!Chx?Y;F$I-9G~H+6&lR^&-0R zP7W?%mvGhPDRy2gAZz1pyxC)oetw*1y|9CYwK|DyH^5j9{&KMl%<6YwTHi|g?yF9n zvB6aLeLF?QI8ymVZ{DqTgj%Qeah2QSDR*BBswO3&_)il%qIU>pi^aK}syj)Bsq+Gi zpi^mZTD$PPFzG9vm3Bm)ePd-K2rU_0?fJa1+d-DB~)5yT-a(>EO70{ zPg8nA+w02^+@Lh1VyhLYfjzDx^Ak;6( zL-+g~1ROle?FQbXfvHQ$@+dN_;()8(*r3PMKF~Hn>T^74#7WTz8Qdh5VKP$|} zQKJudwR$9*{ze4}59{#W=O?PG?;t;~6Mr)<;IZZyI+=Nk=L`G%yH(dQUaWv3%eTQs z(Cy8A4A_{-dBnt=xcr+T)Z8XQTJoh7Hn^4>&AUX#jq8}_{ky~qHnS^z8L&Hdo7)c9 zf$O#=Sngzo6^jFS&uo2i`tHwrVzywWRx#Jv(nfLDl3~?7iFPS5Le72cxjurY>ju#N zZ{NwrWD)7D@WTGbuC#AZHr02RQsCs-JVALnU5apHYDv4`ef=w$yp_Pfu|;h9*K%5` zSi#gb?8Gx!d7jq(m`+XeW$lln$VM?2OV(Z%X7X|Tknd7-#w%d1kc)pZ#sg|2UXyHt z96R8Ck~~J|(984T^dZ!guD4vr{pLzIO}zz;(P0>S&l+l~DLi&oFJ0bIPv$Q~XuRQ8 z{%TABZvNHdrR+aMxN_7aPM{Be%bCvL$%23CCk4DyC6^1u;D0-k!}Z9(+tbzFC-&_^;=k>82_fu=G`mLc3to~OstPu(^;{&f&rQmso5-B+@` zKi)z=Bc3ee6JTyUnM-}%iQ_J#x!<@TTpy`}=;zw>CjB`Tdw(S53<*Rpw8Q)b2?*Cc zg;_hI&~YjrC2J@0hr>#RoU<*D9T`K7cWNp8>r7!z9?gx$O~mlUwtT|;BFfVH&2k2R zr_{}-vC1MC0ri#aZhC-lM|L1JH(gXU|Dk<5!f2Yb4?m>#m4eosqQI8Z7`q~$M1IZ1 zotp1V>QNKEzt}?C-Ct1rS2G$do{a?7NzYC%q&>Z*P^$|S_L0F%VYa~E(-&@hf{)s7 z?`*6%HXNlJGI*qn5mhz(<9l}8#3^l6UXvw@1n9E3$Zq-h}#cV8~{iee@gWUTwxUUI;V2L6n`bnb}ADf&P#L8gL{9dk1}{?n*||3UZin z(TsGWde|R>>-22$K$yE8$K#8VtZBXheCC|uL4%TMNoEF({kNOeJFI8@LZ7Amf6p-0 zPlu%SJ?Wz6cYMnb#q|dO(+}hy?zhn9f1eSdu#@`bOqm)}6-ypKQW z+NNW$zre}Nli>f3^a%G!Rc_Kj_`P8noEnZ&t~i)jaxuL=RK(U-Jf*;jjZ_y^PclkZ zc%f@K&De8{S7v#Vy`};4IQNYt7Uy90B4G~Lcpr_gvoJ&CI5M2d@H0P>r7;5Sjolbj8P^o^se;mbIIA9)#<{$9cI@Haf5UxAFx+F5P$ zC`^BG6;37{C>qm%9Yv3!7;ewn&*{K<(|U6KDDXMk>M724A6B>}W66I5F#6PFY^f0D z{+6vgsV9|ed-w874HHm1V1ZDLxrTh2Br)D=AMG0&$!^YR#I|R5c*=m?WGZy;&Wg)| z>=SRk`fLu_jJ(f=MHbS=&R7inYDDWI_8}vrf^-FT#l^+|q2I-eZ+xaf+dr2=Tl_R; zq}9Rq+i@y-r_N{p+Dgg4g>IE)#klE_Ma#_Y(2o_9C@SGC6+XGhera{m2-_Zhv`Y<7 ztQ3)`cA#)UOWzlUqaAbtHo#6t|j-VUO3#?iu?Y8$GIejHfjd2%O~Gp|Fc&}+Y~{%C!_c> zU1i#@nT4Krn~^DWXNhTek@Uo?0_!dTC+@wZCkL(28vGIRepm5)hdTLe(g9Bz$m&kt zLdD?)y#D49ytSH(36uX|NrfgWE#5>Hm+k13vKBS$`pgw3{KUtnk9mh=3sqGm^YpWI zR6RS9J$;*m9eWa)gnd3dbxkPud@PlGHsUJDdB{7X!RxN%Ao2KB`Z}k8#Ey<+8j? zzDnZtMKJJRL6_d!B0jB%8Jr?ox@9)Yu!*Dh2Up^PvId=#9M62a)TsT%b;S5Sgi^tM z+L*JDk|Krpc8UfjC`>J7z!sV!QX%_al zYE#GkEVlkvD(s5nMf*NnWY0d> zVVP(i9xho6_4HUeInD?3f85}smL8^Q$L{if#UgmNCzQ>|Xhy=ee2V#Vi8MoH1V59p z&>!x?PoEP($B8#|;LH(N#TIh0rI+aM`4n`nnhV)Q^Pp63N8fG_!<$#7Bt5N%%dhxM zp*!T*jXgvjo_kr4=wF-)xX89I38&RlKceGf6JAvW@I;?YxZ~YMvvvr)?7{O9bod}; zG#Kz}XYW$WhmX9w#*lI)_OaE8^J%xwC`#PA7HXYNJR!7_cHt7A_N0PNDw(mqG(U=W zNPvuH4Wh@Kq?u7EQ1-t~PfT0k8BmJLp)IJ`S46E{3iMA?3?5rlG5S>;ZXC{n%z%L` zD$p8#CC{^Ey5s1iizMB=uZ#IPI&d|biz2B2LR`wA3-_@xRwz6xWRdL_ z2wC8Z(0Y?g8akW=bkv8d-x+y@fCd@`<~2K zZ71oF0Gxigl)^3i`0tcws5lu)G4oQPB(Up7&yEv(SJ6;7a}$2o<=6~IdA#4>g4PSe zXu+Lfyvtn-BH|K|D1`hMWv%l6ZFqarZr`{8dq!R6qW!Dr_sXl#vK9s1^dw^;7r%J$8ot5I!MX;2cFNLOpk3sd-j|EYTqs4TW+ zU9_ek2m*p4!K?&{B1u6M41kzW5k(~kk~0!TC8;ElAQ@C7sE7ej6p4bE5KzgA0Rve; zBq_;Rw_SU$eb!#*+;{GMZ;W@}>oNYHPJdU;*-dxPs`|c2&VOzl+y>7=5B$zZjb4y&vt;BL2zk?3m(<1z}&}A(R1ZBG|nR6QfWoD z3Q?F7&PpTHHQ-cUG48l<9=-NmhU>M_SR0s(vFF!d`q6GW)pQ;Pxuw8F;S}UucVRfp z5^%MbJ~=BgfJw5ONMFu!Se0OnDN-Bo@jx)$r(6wjW^(k62p?**XcKGEgD5fY78I=H zhKzSDxSNgOhwBcsr`8xOo{!Ugq9RzAyoj_tpTudUnbbm+1-Shs;fcjICKl6+=du|c zh_N`_yZSS@)+^IzHD18;b1Tu941i5G2_*RBF4%csHF|VjL}AlNXgW6?v<8ooxZy+S zD#Z_{bf!VFGCyuncZA1Qi6F^UgU7^Yk_pap@X99^evGuD$EfJxfYjqWtT3E~1`Jl(psfb>%-cgQZEu51^P7lJf&+L&<6x~e{Nys2E-S*AKr!;(`~i?medIrP11g?O(nGp|46bGvKO3LI z;-JU)Ch0oxd#2E{Ont__6y`mnK@ww#1wG=v9UJ@{i1nubzlj+Prl{wx5`O>1gXu>oiVvKjN-M6ypyg6}s^|hZ*Q(xsaHRcesAylzs~6J>j7@EBBz-@)gAHRVE0PE`w8dqTpo{ zE2Mp?2OULQG?Ohx-GYypyKoYArtU*`u{)r*qlxJ0hck8bjU;FPGaNPfNp5;N;?=?j zaO&PsFrda5^nD918I8oSbZh3layD(LaewZk{jb<1h0dtM$>eDy&-M;dwa_3@&$ z2-qXZ`LxCwEuY2E*0tvFRalKE1F~*pbSg(g)mQXHZ9fO12Zq= zk;6e=kmBqNUddaqQsXR@<>toZ@@aIpjufm&Eu=Coj4ti#I5IES1~eBKkUoVZ%=4e1 zFCUiSRijXy7Yi!ssu#tVaE;gn4E0ZS=2QtMTmKT zF`J91-3~wOx!6O34f?T`yN{fA6vew1Z{cpnYHZvO6o z!Y(th?X4oih4>X+cRJwWIc|9WyE(KOM50d17+Pf=A^~x6@GX#wwAF|}t=l|eHRCIz zR~t#9#(Cg-%1vtF;sq7qNmN2*4->y!0aD7_F{LaS44HbOTim>4y3QA@p>eRQ;1yVK z9HX9=H*l&NXzHs~prSKQRG4@X=X!f;XsLvs?~Rc#JPn=a_@GBc5WL7BHf1F+_$>}v zII9eASv!(!?n%6}pPkNE(?rgt({Rj84dyM1Cb==3aLD@=DcLUsg(j4`t$q$d3Jf>B zG8;r}jE43v<7iXfN^WVsgY*JXjI;{Hi_AFGN0#9?H2zFgTvAcneV8PTuf~Aod}MIf z2pDM1B_{1#PbH6cad*ybN?(t}yk^-lZS^_qp^F=J+zHbLTldn)466=ZgedOY^pG2ay%hAsk*k9^vnUwu*j1w$g9ViS zB@34mSs~1G08EJx?M-UHYYbnN!ay##N_NA;31#MDbfzK4B+<-a6TD6o#ItpcAXSlx7HGaFMEJb^_8BIM(iaXikyf(EOI;VteC;+3`xN7rqE7d|c!Y7+!4KNews zL?mpuWW~g~AHX}0TewW@D6Q1m1&dF-rCaBxViAJ@-TZ6{Y<6EFe3i?gVO=?y_stMu zTev{YunA}GzK;Q&$I!L<9Pzrl5p~Yog->yI;H77SwP&T_Fh@SVunfZ4mf~>e$yKZ# zi~;r9a~Sx8(PYZvVR)enAcCFId#x12{VzU(VSp0OEm{PT?e*m6*D>tWT1<0`g7Mo6 zB@(t%8u)Ts=#t@0Fy!0=G9nz<=DM4(ZstO9+cIGHP{7?gc|k*S16~w$!X1Mw_(gV- zLuXG(RR;UMZ-L;#-Bf0f(Ybq9k1pxw;gzK)T+>m($J3QS z=jIUl3S7i!hOZ{wJCVVE9D+x*lIq2$gO~I4*1=1u4(LE-YzWPu5!gz`a8IfZTRuu+K}#w)}GN8vF!>{qwQFQjheC?Z96_bD;aj zF<5Jt2ajfQf#b$r;&Vg|)=6B39GmYjO|BRfxWb_#>>dVB*npW)E4IWvXZq64B@;!@7~si;F*sHty~4>`*8MKDdU_SH6<_=F8#! z`&ATM10nsLH`N$mgU?p0aB}t!hVL|h1dE=6mkMfRmf3x{@g^886QwbJ(h$VY9fD;w z;`GkhJt!P7jN7Bcz)o}?^N>%X9wZx*~wy@EGHeh^dcIdG-g z1DY8gypiL#i3N)d+!->%Nd{BeutSPW?9@h$kzK^r@&~L7Swp@VHUW>?Va(Lu0eq)d zP}Q6#Sg2kA+tn>n>KXR8>TncqNTeJX(Sz;3u!ZHdxNb)Y)iD>+xpF;THo8haHFu)u(MVW5Lz)>gjuN}WS758X9aUysg$M7%6PBaLab)@d z;ySSoX_6k;y^P+kM9FO4Lfpo`mC?YkgcU0TP+*`Qck~6I z^Nt!^r(=fCS|(BIbqxfbdycA|(WKYnDMW7(p$<>^F@I-0>RE@t4~JY>#bM)#GBrus%qZ_Ot>UUQ*o`8d*# z?RfvnQwV&p5>C`QqF2sdgd9kNlR*_4e{AbbQ-_ z30qn4n!#&0UlNE{1Gd2Toq>3#VK-LmWYCA#t^m*FXLJ$Pzy=*da&@Z}R!T8gl_PDq zQLq*|-dLc}z&zmWQODz)cgQ@^Z1j5fjL2p@0N!g-a8>mwE|@nDe6MuDq=N;n>+r@k zo(#A0D?Z>}=0XqfUIVdOTNHWz8YS#3DcgW6NLYWNKm43fBXbR${vH9-Q}$!PmJ~EO z5DlHHqG5*YE!fG7d)0E`CSQP7y4bq=MY*{+JTrY*1f~J_? zJOf8PLUH3G1=z;5hwftP+c~a?l6I#y800%hgq0eB?IRb44XXkdlTZ9{zYLqow6Jql z1dvCM@yrc5T(4nAc(a=ERkjM*zauGPkC zea_%r=!@SXUg2tAC3qiDOLx^Uxg)_S`c}dL{i-fQHIu`emI5GVT7u>BTfvbPz&VqX z8omw2>W#NBzJkFu|6(}Lti0hxnG+~iu)=N$St?=`iChj(8BUyToZ4JOa-Ccug2jUz z*%1MAE<7Pda#Nt(EkIVy?u8X1rP$XP0MkrsY2~+PsK(^&qouo`qD2W=K61gCRd?v# z-dE85Y8l8YDd5#32ar?t4XWQ-0M1u_fTx=w`s=TS%&2NG;2vglvf9b*BheUey^~HQ z1>m{Q(xBZn9go@i(tST-(Mc?s*0C6Z<~em}=e>ffKaA5m^@gw~`U};HE&}6v8_Fwu z3%ZKLq4d~UoaA;vTPI_f)VU7jf*(4ZyE!#9)k3A**HYzR@0FCt1$ZOZHTtqhcd?_$Bs_70`0Kakr)mvNMdXShEGm~Q-n`upX9PyY{$OK(8~F@AdX zTRCuWJYcIebo@gO7AeOpUxMD>wt`a>MbS%+m=D@a~U3?6w9MtyEB z29|A8^fjZq_;9`uL9IA+3h;z#<8e3>x}J(_vq6%3E2M2b4iA}{5KlD|T*oC%qHkY> z6)|PN%dp+dR9sBft~rd(6+1|>;Ru|Sh$6Q*C!xAdfjXSjh4#A#A)9>y7H6*oNk*T; z-CPenABJJ^t*7*@vkDX*e*@zwN}zPt7@u<(qKfQQdis1duIY9HrG^9e3(^UP!F@Ov zB124$jl$lN8zjc)DZmUHSac{GK6EOPpFevsG+P-(=GNfmwr0|;$BffgwlNs?0(?3- z#k^lIu@cKusB^6tP6zwo85=YFR&Wi6ZS*nt%@+)d>W7lhc(P07Ebhz7#0p(ue9w0m z`M4i4Tqlhf{wV?EM{<}x$iX@0$pkkr^# z8{zc)v-H&TUvR=<4la1T4Ys$grak!@pn0Q=Dmk|zr|k~hb-foNh4!Otmp8-)d?M?9 z=)`7IoYzZ4-b~-a|H8X@$ z({;(cqsr)UNCW#l3Zcw51f#rq;J&IEk$YZ@nOD4stc5SkJtC*bXVH=2a zUPKFG$D#Ml3K*-3Mb$$BF!VVCdVY4}<{NX+dPE-et&LIBdxYqH;s(i`(m4Jy6JIOM zrR7VQ_etlqV7XNs1q}7+!Uf#;wCgn;Nv>pSz51cyG!GnF{}TDse`3!mZ(=OC176f9 z(cPsXaQEFA5;@xhYNXH7lAL$od^i#lG}5s_VKbc*tqjq!d*~g#Z^#>{k6)fL*Ps^SHouxf{N041y;uspuYHLZ7{Uhuc1mlV9%lu=}+Qwx9fgg&zAD z?&29Ruy7seHwZ+Z=uld7?IRO+8iizA0eIh-hW1)Q82a`e4(dO}lgAn`d`1#J_+2Y; z;0_?~N_x!H7ClyV<1$}ctl4xGx|PmgLkt%PuVM$8S+A*LpDaAk3?OzfpJ9QqEbR-Q zg?#JM;JsTp^qmu;&eyWw(;5x*yIcZ#U$>D@DM3)D=|oztwt)8MtEBj0B=WNFN6r^# z!K3^F;ZqTZ`6nF6jn}L3(62@~AAAje+)1Lznp>fJohh|Ftp-cCGxe^yCy~QOm~MM& zg+0Ut9GLOEYo|7xtzh_DQ!dkJwq2O@*o^GGe-gA)T8Uc!S2Pu#hut}5IMaKK?iZ#i==SEXu;$GRykQ!H5^b&|w`~x#$M2I6{V-g6>?e)n@W9*Ip>)g7Na$mp z;p)OaQFgrwrj4+{GF25~%jl^1$J7FwH79O8vjNR^SzvSaQd9`qicSe9sk8n~(0{g# zj;Xoej5l`($NfX_ZT<{;{l$BD)DaAaxA)^0!+AvS-E#c=;2CMD^v2zJGw|$&mvHBm z0iBpyfi?%6$gk2AjA~B7RHjZz`MwdETUmk8OOKE`g3xOxjhRZ_aIu5Q$t)6vi4XJ1 z1_r0S^Y~-f@c1Kcm*FFO2Q{JU{y1)EY($Qw$z-$IF371+!*GVL)*^KTI%`!xO?VsK zRZ#)6St@DjB{w)7`I9&stKypenIxz+7>{K*kmJ%17#@R{bXUF(*8ccJ_||ej+ADDg zcQk}Ivl=i&*9i`1*x=k<-gxWIec~6%%EVapXfrQ2ntoeKQer#NFF+j?u^!dK`{>2h zOr7QO5hyR2VDPiba9Dpg-l|?lV-!|nO>Y?}JsE-h(hYQenHQ9FCBw$uX<+m)l}xl9 zh2yKgKmnf)1YYB$0>KwhQrH?-R;_`exZPM1GyuK#N@+`232t4f$MA`FKEEgFSE-e>s9J%yI}7~-dWufSWZ3)?uD8oi_e^zLq< z+g$YE5SJ=dY_`SN_h#hTVNtkH$3;0Cm7s;mw>4hx#y9*-JbWUU;Q{uegsK0I6V)cG z9zRC|cc8sD;$eQqSEvfU3$=%U9=~7=_tm#SXm38$d`4^ztH)_>GjJi7Gbmjk@N4cQ zid|VuxlT5K-E3tlWu6Q?E$ir;nMPRo#D&I)KLgRJqtrfY2h)~I_-dOKWaK;s8S)*D z7Ufdz!`rd{#2|J@mtdvoC#YF03AL5nF!!@5=3ICTKWlwKy3k4K#pUW%UcH}kDh?Yjy&vR&-pgO}W z*Gy$+yg-8|3AA4CHI9z`ME@~u`25oV4j$Eprcoo{4*UXg_ofr03|nMd6iB=8ti#SY zA)GCr0__&-sQd6F?$~BTcE5|k?HQDYH~oNau|#SnV*$^_6iDNUDrDcdkKw(})5ghxxe7YBpIWkO&()JgGvYIYec}5zj@5 zaA$@$nQ>`09JK7jfQ4S5DLRvM-(L-aXo_i)4^bnm6=vlP16s^NJ>_5sRgEL&->;)U zXFHX@tB33Kq`_&l1)lk=gB8D&ApFTYXt?wcR(sph`}_fr<#ipa?}TBnL_Xf+uEGs> zVj0dKX*j0rN4BP|gtlgXx^Lz%TI^#dqnbguPI@j$)HlHgYbWS{XE#%yB}R^Hw?|_e z3ljBG5S`+aNxO9+yp>m=!8^jRkmv%W#iH559()xWhpE>94E=8)+k!cCrt?o&UL22S zy5qn@T@y9llwj}IC3K-`DhhKAlB~65u;f%Y_Fp=VCQnSLJ7qzmJTvNTW`x&Wcwlba z7>u>Cz%Elq*jB!ka2@=DX?B{V*42;6yCU5>Z!7-Hi>Kaa*FuaoQxhSPhG`{Ct-^+2 z9CDiib-60I%TRlqT-^^>_==D-s{$@KzD1X_$I-_BBfTBrfZk&7(0|8lbaoIVhUMEJ zdsF~f`_!5IY7%L?MWO%LY2tUF2qX0T>6Csp9L&2-hMNu0dTlz^p5(!qC&S=nz&kW) zxrhUuo#^g%iC(rp1d4B`kvBe1@obepoq0$TS92KC>?AgGw0Y64Fm zSJ2kpgtH>H;HhJUILxm=Pxebd{iU4aAI=Ai-#Bhp` zeHXtld~sn^g?$^UA9RO%YqQ`?dL!MPxfos?bit)AZLlZ7gWUeK1+$}Cu(M_-3hZF; zjJjXpld3P}kPnBUm@C94|14&n<|4;6{ou2~ax&>K1D-yNB;E|K=uH7_P|$Qo%Nz+D zv+aSa)$HK(Z1Oz~^)WK=?CX3ID|Zjh8>Wy| zwmCRW_Z+oKJ_P=+{HW52K0K+v89od*K;rdR&}#P#?(3USqe>M#lkY|%Ors$%q#ev= z$HVGLMnlqy6{@TgV9}g0RAh2IRZkDV>L;IR)}e9SxIq(3zB0TJA1#Q>zz9SMR=}F& z`7k0QL~}IrFwrxa6z)p11K18z(qj2fVLl`Q_j&q8Ws0g|s$GJkPa8V3q zy2vwms|WaXIE$>^D+pVcmx8~lWrx`?>5)2`b#6whb=zTH zV;^2NNUXm{S$-V^}vYa zqoCEuB5l7*waa)K4!7oUAm^K`#w$iyO(V zGs|Hu8lw(Z5!6pECJ!>Buw7;j_21MD&ExhoFgUi|MKo+; zF)UjDlmwr*fYg_Qv^c#1c}p~a*2=?P{W2IVAHpQxbL4A!I(C}9A?t&E;X&+2q6E^o zV0kH7AMy=y9v8ylFHPuoX@q>qSqrH>5#%mYx2~0VfGoD03sJ(CX&A%pWhm?oOJb(O z@}lFY;ns=9nNKmY={@FMn1jL_k3n;43r>?&N4uTTR58>X4J^7CEFhzYQa~`9!-uKI zOCzGL;kc5)I*u}YB-67$Pz~4f7`!@_>{=WQz7u(*@2xEGFJS5lW46F}>1o1OT8_>Z~Zj~|89 zn)NvJn0JzQhEw>gRRHrwd$3{fD>zS-<6Z`PXSqfJPu;pey<`>9vxk=s9c%`ZOYaB^ z%U3+S-H7g5)d|zvyQs3zM?9k9N%&6_yiwl=DuXFlzflF6_+sDr7-5d}#`8$4NK3ogq) z0p1_tab8Umk-W*g6J3l($CLc9*}f8otxB0V=sCJ#zX!~C*#>1!ztGX2p9bw!#8Bq` z{AQT|p5m=V@3`yWI!BOP-L)8xd_M-=c@v=NbeGm&_kxcOm+{rk9-QCth1MP3jXO2j z;Z&goTwj=ueChV6I(H_qsJw@M8?KToK{a5Lc@4$=VAFu4-B?*12ge^5HGg@ z_nhpYKg0vTXdsyyn)^YT^HTiQGK8lJA2BiJ6qJmA3#YSA!2$g#azoo6GsdbZQMijI zw(ljAOx>vY#sN(3&&LnGfplw)Ic|vYLUWZ&+{x5?xu0*xerX=66*?0ICI*S&u}FL| zJ`9cX*5bD+bVXV%rwfUeZ(xg{4^Y#kq_=(xO4sct>;aC9E@?Zx zK2!}uHNjZ5pa(aw`N5^A&0ul%5a`Bp!=$|@$zS7xMBD+xOY3mPc^`5l!w|h0j=-P+ z2iz_<1{v)Gz~{^f`{TCZ>)rv#yd;Ej2@YsqR{}j<=5zrQ=gAg1gHA%4I8BSuK(^8Y ztA2Jc679zi>3hiPDmD!M8jL~{t+2u58XX<0$4rOk6w{pH#S97|-0onJdm5!*`{M1u zlbEtImdT5V5w4eWQGJ;c>9@(jU8kKfB3lRaJML23ytA-=Y!>#M;f2vn$LU+|M$|a; zmNW&1Vr0G^u3Rt^MqI;5UCwsAcrPA{I#}@XMQ74g8U|if5AdzsderRIpr-R~VzJyz z@_IId;nqLE=uY{A$q{B;5>Sg~v-VJq1tl=RaT(UWVB*dhhp}KbgGtE`14p%^$XY%L zS@qvh?4}WoZ5YM84NCBf+YJh{UlP}nIEF9u7DzLk{`(z{fRe~|*eD!}A6VHjVbB#H z)OEvQg=dfu--NTbiV|fBc9;{q0q5P+g6#giV17svSX6jnc`7r0v3pAkHTBW3XdT@Y z8IIf|SJB+{DLiw^z=sS^CruD8Mjce_}R?3#}bS47(^ivRSlZ;I)Y;dYQ z9rG*}kgnr<@g>hk^2@Xn#1rGl;ZWu|_kzi3C*~nrU?`+$oy8;R$#{48CeAN)!^joy zu_@>?`YzOh66sJfq|NA>)*yCWj{!lIIaI~xBCgDPi#zjwp?G5%gZDcDrU?rmIQ9X& z7++46Ohd3yCImOtox-V;g80s#AD=SuX9vrfOdWSLQD?WndwnK!!91pBQGlrpwb}_) z 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

  • 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