diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 15121c861cceccd5f722d1fa455d359db95c7acc..0000000000000000000000000000000000000000 --- a/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -*.der binary -/fuzz/corpora/** binary -*.pfx binary diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 7b384b1149c0d391eed13e7421eccedb62b9d0d4..0000000000000000000000000000000000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,14 +0,0 @@ -<!-- -Thank you for your pull request. Please review these requirements: - -Contributors guide: https://github.com/openssl/openssl/blob/master/CONTRIBUTING - -Other than that, provide a description above this comment if there isn't one already - -If this fixes a github issue, make sure to have a line saying 'Fixes #XXXX' (without quotes) in the commit message. ---> - -##### Checklist -<!-- Remove items that do not apply. For completed items, change [ ] to [x]. --> -- [ ] documentation is added or updated -- [ ] tests are added or updated diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1b0f25cc81b25b1e3067022deb70465105ae7c30..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,185 +0,0 @@ -# Ignore editor artefacts -/.dir-locals.el - -# Top level excludes -/Makefile.orig -/MINFO -/TABLE -/*.pc -/rehash.time -/inc.* -/makefile.* -/out.* -/tmp.* -/configdata.pm - -# *all* Makefiles -Makefile -# ... except in demos -!/demos/*/Makefile - -# Links under apps -/apps/CA.pl -/apps/tsget -/apps/tsget.pl -/apps/md4.c - -# Auto generated headers -/crypto/buildinf.h -/apps/progs.h -/crypto/include/internal/*_conf.h -/openssl/include/opensslconf.h -/util/domd - -# error code files -/crypto/err/openssl.txt.old -/engines/e_afalg.txt.old -/engines/e_capi.txt.old -/engines/e_dasync.txt.old -/engines/e_ossltest.txt.old - -# Executables -/apps/openssl -/test/sha256t -/test/sha512t -/test/gost2814789t -/test/ssltest_old -/test/*test -/test/fips_aesavs -/test/fips_desmovs -/test/fips_dhvs -/test/fips_drbgvs -/test/fips_dssvs -/test/fips_ecdhvs -/test/fips_ecdsavs -/test/fips_rngvs -/test/fips_test_suite -/test/ssltest_old -/test/x509aux -/test/v3ext -/test/versions -/test/ossl_shim/ossl_shim -/test/rsa_complex - -# Certain files that get created by tests on the fly -/test/test-runs -/test/buildtest_* - -# Fuzz stuff. -# Anything without an extension is an executable on Unix, so we keep files -# with extensions. And we keep the corpora subddir versioned as well. -# Anything more generic with extensions that should be ignored will be taken -# care of by general ignores for those extensions (*.o, *.obj, *.exe, ...) -/fuzz/* -!/fuzz/README* -!/fuzz/corpora -!/fuzz/*.* - -# Misc auto generated files -/include/openssl/opensslconf.h -/tools/c_rehash -/tools/c_rehash.pl -/util/shlib_wrap.sh -/tags -/TAGS -/libcrypto.map -/libssl.map - -# Windows (legacy) -/tmp32 -/tmp32.dbg -/tmp32dll -/tmp32dll.dbg -/out32 -/out32.dbg -/out32dll -/out32dll.dbg -/inc32 -/MINFO -/ms/.rnd -/ms/bcb.mak -/ms/libeay32.def -/ms/nt.mak -/ms/ntdll.mak -/ms/ssleay32.def -/ms/version32.rc - -# Files created on other branches that are not held in git, and are not -# needed on this branch -/include/openssl/asn1_mac.h -/include/openssl/des_old.h -/include/openssl/fips.h -/include/openssl/fips_rand.h -/include/openssl/krb5_asn.h -/include/openssl/kssl.h -/include/openssl/pq_compat.h -/include/openssl/ssl23.h -/include/openssl/tmdiff.h -/include/openssl/ui_compat.h -/test/fips_aesavs.c -/test/fips_desmovs.c -/test/fips_dsatest.c -/test/fips_dssvs.c -/test/fips_hmactest.c -/test/fips_randtest.c -/test/fips_rngvs.c -/test/fips_rsagtest.c -/test/fips_rsastest.c -/test/fips_rsavtest.c -/test/fips_shatest.c -/test/fips_test_suite.c -/test/shatest.c - -##### Generic patterns -# Auto generated assembly language source files -*.s -!/crypto/*/asm/*.s -/crypto/arm*.S -/crypto/*/*.S -*.asm -!/crypto/*/asm/*.asm - -# Object files -*.o -*.obj - -# editor artefacts -*.swp -.#* -\#*# -*~ - -# Certificate symbolic links -*.0 - -# All kinds of libraries and executables -*.a -*.so -*.so.* -*.dylib -*.dylib.* -*.dll -*.dll.* -*.exe -*.pyc -*.exp -*.lib -*.pdb -*.ilk -*.def -*.rc -*.res - -# Misc generated stuff -Makefile.save -/crypto/**/lib -/engines/**/lib -/ssl/**/lib -*.bak -cscope.* -*.d -pod2htmd.tmp - -# Windows manifest files -*.manifest -doc-nits diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index af32ea618cf72247fef175a05383300037a534d4..0000000000000000000000000000000000000000 --- a/.gitmodules +++ /dev/null @@ -1,11 +0,0 @@ -[submodule "boringssl"] - path = boringssl - url = https://boringssl.googlesource.com/boringssl - -[submodule "pyca.cryptography"] - path = pyca-cryptography - url = https://github.com/pyca/cryptography.git - -[submodule "krb5"] - path = krb5 - url = https://github.com/krb5/krb5 diff --git a/.travis-apt-pin.preferences b/.travis-apt-pin.preferences deleted file mode 100644 index 1797bd04148e992c6dd54962001ea4c20f857e4c..0000000000000000000000000000000000000000 --- a/.travis-apt-pin.preferences +++ /dev/null @@ -1,15 +0,0 @@ -Package: clang-3.9 -Pin: release o=Ubuntu -Pin-Priority: -1 - -Package: libclang-common-3.9-dev -Pin: release o=Ubuntu -Pin-Priority: -1 - -Package: libclang1-3.9 -Pin: release o=Ubuntu -Pin-Priority: -1 - -Package: libllvm3.9v4 -Pin: release o=Ubuntu -Pin-Priority: -1 diff --git a/.travis-create-release.sh b/.travis-create-release.sh deleted file mode 100644 index b39a00137ac578b10399c5d1f1b8d1757ce65cb4..0000000000000000000000000000000000000000 --- a/.travis-create-release.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! /bin/sh - -# $1 is expected to be $TRAVIS_OS_NAME - -./Configure dist -if [ "$1" == osx ]; then - make NAME='_srcdist' TARFILE='_srcdist.tar' \ - TAR_COMMAND='$(TAR) $(TARFLAGS) -cf -' tar -else - make TARFILE='_srcdist.tar' NAME='_srcdist' dist -fi diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 764da2885e546ffe38eb08d2e271c84e4ff75b5e..0000000000000000000000000000000000000000 --- a/.travis.yml +++ /dev/null @@ -1,254 +0,0 @@ -dist: trusty -sudo: required - -osx_image: xcode9.3 - -language: c -cache: ccache -git: - submodules: false - quiet: true - -before_install: - - if [ -n "$COVERALLS" ]; then - pip install --user cpp-coveralls; - fi; - - if expr "$CONFIG_OPTS" ":" ".*enable-external-tests" > /dev/null; then - git submodule update --init --recursive; - fi; - -os: - - linux - - osx - -compiler: - - clang - - gcc - -env: - - CONFIG_OPTS="" DESTDIR="_install" - - CONFIG_OPTS="no-asm -Werror --debug no-afalgeng no-shared enable-crypto-mdebug enable-rc5 enable-md2" - - CONFIG_OPTS="no-asm no-makedepend --strict-warnings -std=c89 -D_DEFAULT_SOURCE" BUILDONLY="yes" CHECKDOCS="yes" GENERATE="yes" - -matrix: - include: - - os: linux-ppc64le - sudo: false - compiler: clang - env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES" - - os: linux - addons: - apt: - packages: - - gcc-5 - - g++-5 - sources: - - ubuntu-toolchain-r-test - compiler: gcc-5 - env: CONFIG_OPTS="--strict-warnings" COMMENT="Move to the BORINGTEST build when interoperable" - - os: linux - compiler: clang - env: CONFIG_OPTS="--strict-warnings -D__NO_STRING_INLINES no-deprecated" BUILDONLY="yes" - - os: linux - addons: - apt: - packages: - - binutils-mingw-w64 - - gcc-mingw-w64 - compiler: i686-w64-mingw32-gcc - env: CONFIG_OPTS="no-stdio" BUILDONLY="yes" - # Uncomment if there is reason to believe that PPC-specific problem - # can be diagnosed with this possibly >30 mins sanitizer build... - #- os: linux-ppc64le - # sudo: false - # compiler: gcc - # env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-ubsan no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES" - - os: linux - addons: - apt: - packages: - - gcc-5 - - g++-5 - - golang-1.6 - sources: - - ubuntu-toolchain-r-test - compiler: gcc-5 - env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug --coverage no-asm enable-rc5 enable-md2 enable-ec_nistp_64_gcc_128 enable-ssl3 enable-ssl3-method enable-nextprotoneg enable-weak-ssl-ciphers no-shared -DPEDANTIC -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" COVERALLS="yes" BORINGSSL_TESTS="yes" CXX="g++-5" - - os: linux - addons: - apt: - packages: - - gcc-5 - - g++-5 - - golang-1.6 - sources: - - ubuntu-toolchain-r-test - compiler: gcc-5 - env: EXTENDED_TEST="yes" CONFIG_OPTS="--debug enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-external-tests" BORINGSSL_TESTS="yes" CXX="g++-5" TESTS=95 - - os: linux - compiler: clang - env: EXTENDED_TEST="yes" CONFIG_OPTS="enable-msan -D__NO_STRING_INLINES -Wno-unused-command-line-argument" - - os: linux - compiler: clang - env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method enable-nextprotoneg no-shared -fno-sanitize=alignment -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument" - - os: linux - compiler: clang - env: EXTENDED_TEST="yes" CONFIG_OPTS="no-asm enable-asan enable-rc5 enable-md2 no-shared -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -D__NO_STRING_INLINES -Wno-unused-command-line-argument" - - os: linux - addons: - apt: - packages: - - gcc-5 - - g++-5 - sources: - - ubuntu-toolchain-r-test - compiler: gcc-5 - env: UBUNTU_GCC_HACK="yes" EXTENDED_TEST="yes" CONFIG_OPTS="--debug no-asm enable-ubsan enable-rc5 enable-md2 -DPEDANTIC" OPENSSL_TEST_RAND_ORDER=0 - - os: linux - addons: - apt: - packages: - - binutils-mingw-w64 - - gcc-mingw-w64 - compiler: i686-w64-mingw32-gcc - env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic" - - os: linux - addons: - apt: - packages: - - binutils-mingw-w64 - - gcc-mingw-w64 - compiler: x86_64-w64-mingw32-gcc - env: EXTENDED_TEST="yes" CONFIG_OPTS="no-pic" - exclude: - - os: linux - compiler: clang - - os: osx - compiler: gcc - -before_script: - - env - - if [ "$TRAVIS_PULL_REQUEST" != "false" -a -n "$EXTENDED_TEST" ]; then - (git log -1 $TRAVIS_COMMIT_RANGE | grep '\[extended tests\]' > /dev/null) || exit 0; - fi - - if [ -n "$DESTDIR" ]; then - sh .travis-create-release.sh $TRAVIS_OS_NAME; - tar -xzf _srcdist.tar.gz; - mkdir _build; - cd _build; - srcdir=../_srcdist; - top=..; - else - srcdir=.; - top=.; - fi - - if [ -n "$UBUNTU_GCC_HACK" ]; then - $CC -dumpspecs | sed "s/--push-state//g; s/--pop-state/--as-needed/g" > gcc-specs.txt; - CC="$CC -specs=gcc-specs.txt"; - fi - - if [ "$CC" = i686-w64-mingw32-gcc ]; then - export CROSS_COMPILE=${CC%%gcc}; unset CC; - $srcdir/Configure mingw $CONFIG_OPTS -Wno-pedantic-ms-format; - elif [ "$CC" = x86_64-w64-mingw32-gcc ]; then - export CROSS_COMPILE=${CC%%gcc}; unset CC; - $srcdir/Configure mingw64 $CONFIG_OPTS -Wno-pedantic-ms-format; - else - if [ "$CC" = clang-3.9 ]; then - sudo cp .travis-apt-pin.preferences /etc/apt/preferences.d/no-ubuntu-clang; - curl -sSL "http://apt.llvm.org/llvm-snapshot.gpg.key" | sudo -E apt-key add -; - echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main" | sudo tee -a /etc/apt/sources.list > /dev/null; - sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"; - sudo -E apt-get -yq update; - sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-3.9; - elif which ccache >/dev/null; then - CC="ccache $CC"; - fi; - $srcdir/config -v $CONFIG_OPTS; - fi - - ./configdata.pm --dump - - cd $top - -script: - - if [ -z "$BUILDONLY" ]; then - make="make -s"; - else - make="make"; - fi - - if [ -n "$GENERATE" ]; then - make2="$make PERL=no-perl"; - else - make2="$make"; - fi - - top=${PWD} - - if [ -n "$DESTDIR" ]; then - cd _build; - fi - - if $make update; then - echo -e '+\057 MAKE UPDATE OK'; - else - echo -e '+\057 MAKE UPDATE FAILED'; false; - fi - - git diff --exit-code - - if [ -n "$CHECKDOCS" ]; then - if $make doc-nits; then - echo -e '+\057\057 MAKE DOC-NITS OK'; - else - echo -e '+\057\057 MAKE DOC-NITS FAILED'; false; - fi; - fi - - if [ -n "$GENERATE" ]; then - if $make build_all_generated; then - echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED OK'; - else - echo -e '+\057\057\057 MAKE BUILD_ALL_GENERATED FAILED'; false; - fi; - fi - - if $make2; then - echo -e '+\057\057\057\057 MAKE OK'; - else - echo -e '+\057\057\057\057 MAKE FAILED'; false; - fi; - - if [ -z "$BUILDONLY" ]; then - if [ -n "$CROSS_COMPILE" ]; then - sudo dpkg --add-architecture i386; - sudo apt-get update; - sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine; - export EXE_SHELL="wine" WINEPREFIX=`pwd`; - fi; - if [ -e krb5/src ]; then - sudo apt-get -yq install bison dejagnu gettext keyutils ldap-utils libldap2-dev libkeyutils-dev python-cjson python-paste python-pyrad slapd tcl-dev tcsh; - fi; - if HARNESS_VERBOSE=yes BORING_RUNNER_DIR=$top/boringssl/ssl/test/runner make test; then - echo -e '+\057\057\057\057\057 MAKE TEST OK'; - else - echo -e '+\057\057\057\057\057 MAKE TEST FAILED'; false; - fi; - else - if $make build_tests >~/build.log 2>&1; then - echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS OK'; - else - echo -e '+\057\057\057\057\057\057 MAKE BUILD_TESTS FAILED'; - cat ~/build.log - false; - fi; - fi - - if [ -n "$DESTDIR" ]; then - mkdir "$top/$DESTDIR"; - if $make install DESTDIR="$top/$DESTDIR" >~/install.log 2>&1 ; then - echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL OK'; - else - echo -e '+\057\057\057\057\057\057\057 MAKE INSTALL FAILED'; - cat ~/install.log; - false; - fi; - fi - - cd $top - -after_success: - - if [ -n "$COVERALLS" ]; then - coveralls -b . --gcov gcov-5 --gcov-options '\-lpbc'; - fi; - -notifications: - email: - secure: "xeGNgWO7aoaDgRvcZubposqMsj36aU8c6F0oHfw+rUqltCQ14IgYCUwzocmR2O+Pa7B3Cx5VjMfBFHbQaajZsfod8vu7g+aGq/zkjwbhsr/SR4dljJjFJXLGZjIalm9KgP6KInmVDuINfCqP+MHIY5lZkNI7DMcyHDhVc5nSKvCXV7xTDNgmstvh8rB/z51WfHDqGqfBtiuK5FDNxmvYK8OFJ5W94Lu9LDlizcxwK3GAj7arOui7Z5w8bQ6p4seUE3IvJL1Zbj0pZHxvNb6Zeb2Pn8QF1qLlN8YmBktD4aiw0ce4wYRiL87uLgcOxZY7SVXtv2XYFIYWapU/FKjCqa6vK93V/H9eZWEIYNMKnN3wXm2beqVdnKek3OeGJ8v0y7MbSfuLfRtBqbTSNYnpU1Zuo4MQAvHvEPuwCAYkYQajOSRplMH5sULFKptuVqNtOMfjL8jHb8AEoL1acYIk43ydxeYrzzas4fqgCDJ52573/u0RNdF1lkQBLkuM365OB8VRqtpnoxcdEIY/qBc/8TzZ24fxyrs5qdHFcxGSgpN2EP6cJMqpvkemnCNSdhxUqfzm22N7a3O8+4LFSBGOnHto/PwdsvF/01yGYL0LoZTnoO1i6x7AMJPBh+eyDU0ZjGhj/msjmqeb9C8vRqQ+1WjHrIS1iqCD0Czib8tUPD4=" diff --git a/CHANGES b/CHANGES index 4b68f4832909b8b1c5d8a9508532692031bd0704..c8662c392a7ff95894a138f092e488dd04276161 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,115 @@ https://github.com/openssl/openssl/commits/ and pick the appropriate release branch. + Changes between 1.1.1b and 1.1.1c [28 May 2019] + + *) Add build tests for C++. These are generated files that only do one + thing, to include one public OpenSSL head file each. This tests that + the public header files can be usefully included in a C++ application. + + This test isn't enabled by default. It can be enabled with the option + 'enable-buildtest-c++'. + [Richard Levitte] + + *) Enable SHA3 pre-hashing for ECDSA and DSA. + [Patrick Steuer] + + *) Change the default RSA, DSA and DH size to 2048 bit instead of 1024. + This changes the size when using the genpkey app when no size is given. It + fixes an omission in earlier changes that changed all RSA, DSA and DH + generation apps to use 2048 bits by default. + [Kurt Roeckx] + + *) Reorganize the manual pages to consistently have RETURN VALUES, + EXAMPLES, SEE ALSO and HISTORY come in that order, and adjust + util/fix-doc-nits accordingly. + [Paul Yang, Joshua Lock] + + *) Add the missing accessor EVP_PKEY_get0_engine() + [Matt Caswell] + + *) Have apps like 's_client' and 's_server' output the signature scheme + along with other cipher suite parameters when debugging. + [Lorinczy Zsigmond] + + *) Make OPENSSL_config() error agnostic again. + [Richard Levitte] + + *) Do the error handling in RSA decryption constant time. + [Bernd Edlinger] + + *) Prevent over long nonces in ChaCha20-Poly1305. + + ChaCha20-Poly1305 is an AEAD cipher, and requires a unique nonce input + for every encryption operation. RFC 7539 specifies that the nonce value + (IV) should be 96 bits (12 bytes). OpenSSL allows a variable nonce length + and front pads the nonce with 0 bytes if it is less than 12 + bytes. However it also incorrectly allows a nonce to be set of up to 16 + bytes. In this case only the last 12 bytes are significant and any + additional leading bytes are ignored. + + It is a requirement of using this cipher that nonce values are + unique. Messages encrypted using a reused nonce value are susceptible to + serious confidentiality and integrity attacks. If an application changes + the default nonce length to be longer than 12 bytes and then makes a + change to the leading bytes of the nonce expecting the new value to be a + new unique nonce then such an application could inadvertently encrypt + messages with a reused nonce. + + Additionally the ignored bytes in a long nonce are not covered by the + integrity guarantee of this cipher. Any application that relies on the + integrity of these ignored leading bytes of a long nonce may be further + affected. Any OpenSSL internal use of this cipher, including in SSL/TLS, + is safe because no such use sets such a long nonce value. However user + applications that use this cipher directly and set a non-default nonce + length to be longer than 12 bytes may be vulnerable. + + This issue was reported to OpenSSL on 16th of March 2019 by Joran Dirk + Greef of Ronomon. + (CVE-2019-1543) + [Matt Caswell] + + *) Ensure that SM2 only uses SM3 as digest algorithm + [Paul Yang] + + Changes between 1.1.1a and 1.1.1b [26 Feb 2019] + + *) Added SCA hardening for modular field inversion in EC_GROUP through + a new dedicated field_inv() pointer in EC_METHOD. + This also addresses a leakage affecting conversions from projective + to affine coordinates. + [Billy Bob Brumley, Nicola Tuveri] + + *) Change the info callback signals for the start and end of a post-handshake + message exchange in TLSv1.3. In 1.1.1/1.1.1a we used SSL_CB_HANDSHAKE_START + and SSL_CB_HANDSHAKE_DONE. Experience has shown that many applications get + confused by this and assume that a TLSv1.2 renegotiation has started. This + can break KeyUpdate handling. Instead we no longer signal the start and end + of a post handshake message exchange (although the messages themselves are + still signalled). This could break some applications that were expecting + the old signals. However without this KeyUpdate is not usable for many + applications. + [Matt Caswell] + + *) Fix a bug in the computation of the endpoint-pair shared secret used + by DTLS over SCTP. This breaks interoperability with older versions + of OpenSSL like OpenSSL 1.1.0 and OpenSSL 1.0.2. There is a runtime + switch SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG (off by default) enabling + interoperability with such broken implementations. However, enabling + this switch breaks interoperability with correct implementations. + + *) Fix a use after free bug in d2i_X509_PUBKEY when overwriting a + re-used X509_PUBKEY object if the second PUBKEY is malformed. + [Bernd Edlinger] + + *) Move strictness check from EVP_PKEY_asn1_new() to EVP_PKEY_asn1_add0(). + [Richard Levitte] + + *) Remove the 'dist' target and add a tarball building script. The + 'dist' target has fallen out of use, and it shouldn't be + necessary to configure just to create a source distribution. + [Richard Levitte] + Changes between 1.1.1 and 1.1.1a [20 Nov 2018] *) Timing vulnerability in DSA signature generation diff --git a/CONTRIBUTING b/CONTRIBUTING index c0eed39e34b2905eae449470123c84fffdcd1fee..5d717763d51e8a116a0e8d2238c6058a1e2de040 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -57,7 +57,7 @@ guidelines: 7. For user visible changes (API changes, behaviour changes, ...), consider adding a note in CHANGES. This could be a summarising description of the change, and could explain the grander details. - Have a look through existing entries for inspiration. + Have a look through existing entries for inspiration. Please note that this is NOT simply a copy of git-log oneliners. Also note that security fixes get an entry in CHANGES. This file helps users get more in depth information of what comes diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf index 8555ba158baf7b38e9fc4859af403c1694245f49..5fd995cb3392eb819c0bf0cb7f3bd2a02fb72d60 100644 --- a/Configurations/00-base-templates.conf +++ b/Configurations/00-base-templates.conf @@ -306,7 +306,7 @@ my %targets=( sha1_asm_src => "sha1-armv4-large.S sha256-armv4.S sha512-armv4.S", modes_asm_src => "ghash-armv4.S ghashv8-armx.S", chacha_asm_src => "chacha-armv4.S", - poly1305_asm_src=> "poly1305-armv4.S", + poly1305_asm_src=> "poly1305-armv4.S", keccak1600_asm_src => "keccak1600-armv4.S", perlasm_scheme => "void" }, diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 5cf345da0af09a9e1721f2cd657432631062c47d..930f2d3c920d7f44b9663da22b0e2cb067239f77 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -360,7 +360,7 @@ my %targets = ( inherit_from => [ "BASE_unix" ], template => 1, cppflags => threads("-D_SGI_MP_SOURCE"), - lib_cppflags => "-DB_ENDIAN -DBN_DIV3W", + lib_cppflags => "-DB_ENDIAN", ex_libs => add(threads("-lpthread")), thread_scheme => "pthreads", dso_scheme => "dlfcn", @@ -651,7 +651,7 @@ my %targets = ( dso_scheme => "dlfcn", shared_target => "linux-shared", shared_cflag => "-fPIC", - shared_ldflag => "-Wl,-znodelete", + shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" }, shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", enable => [ "afalgeng" ], }, @@ -733,7 +733,6 @@ my %targets = ( inherit_from => [ "linux-generic32", asm("mips32_asm") ], cflags => add("-mabi=32"), cxxflags => add("-mabi=32"), - lib_cppflags => add("-DBN_DIV3W"), perlasm_scheme => "o32", }, # mips32 and mips64 below refer to contemporary MIPS Architecture @@ -742,7 +741,6 @@ my %targets = ( inherit_from => [ "linux-generic32", asm("mips64_asm") ], cflags => add("-mabi=n32"), cxxflags => add("-mabi=n32"), - lib_cppflags => add("-DBN_DIV3W"), bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", perlasm_scheme => "n32", multilib => "32", @@ -751,7 +749,6 @@ my %targets = ( inherit_from => [ "linux-generic64", asm("mips64_asm") ], cflags => add("-mabi=64"), cxxflags => add("-mabi=64"), - lib_cppflags => add("-DBN_DIV3W"), perlasm_scheme => "64", multilib => "64", }, @@ -1115,7 +1112,7 @@ my %targets = ( dso_scheme => "dlfcn", shared_target => "self", module_ldflags => "-Wl,-G,-bsymbolic,-bexpall", - shared_ldflag => "-Wl,-G,-bsymbolic", + shared_ldflag => "-Wl,-G,-bsymbolic,-bnoentry", shared_defflag => "-Wl,-bE:", shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", dso_extension => ".so", @@ -1747,6 +1744,8 @@ my %targets = ( asflags => sub { vms_info()->{asflags} }, perlasm_scheme => sub { vms_info()->{perlasm_scheme} }, + disable => add('pinshared'), + apps_aux_src => "vms_term_sock.c", apps_init_src => "vms_decc_init.c", }, @@ -1782,7 +1781,7 @@ my %targets = ( }, "vms-ia64" => { inherit_from => [ "vms-generic", - sub { vms_info()->{as} + sub { vms_info()->{AS} ? asm("ia64_asm")->() : () } ], bn_ops => "SIXTY_FOUR_BIT RC4_INT", pointer_size => "", diff --git a/Configurations/15-android.conf b/Configurations/15-android.conf index 10342ed5e3750d37161515604c22933a957dd5ed..7b496a4529bd3072663fa08515125711d8bf81a7 100644 --- a/Configurations/15-android.conf +++ b/Configurations/15-android.conf @@ -22,13 +22,19 @@ return $android_ndk = { bn_ops => "BN_AUTO" }; } - my $ndk = $ENV{ANDROID_NDK}; - die "\$ANDROID_NDK is not defined" if (!$ndk); + my $ndk_var; + my $ndk; + foreach (qw(ANDROID_NDK_HOME ANDROID_NDK)) { + $ndk_var = $_; + $ndk = $ENV{$ndk_var}; + last if defined $ndk; + } + die "\$ANDROID_NDK_HOME is not defined" if (!$ndk); if (!-d "$ndk/platforms" && !-f "$ndk/AndroidVersion.txt") { # $ndk/platforms is traditional "all-inclusive" NDK, while # $ndk/AndroidVersion.txt is so-called standalone toolchain # tailored for specific target down to API level. - die "\$ANDROID_NDK=$ndk is invalid"; + die "\$ANDROID_NDK_HOME=$ndk is invalid"; } $ndk = canonpath($ndk); @@ -90,7 +96,7 @@ (my $tridefault = $triarch) =~ s/^arm-/$arm-/; (my $tritools = $triarch) =~ s/(?:x|i6)86(_64)?-.*/x86$1/; $cflags .= " -target $tridefault " - . "-gcc-toolchain \$(ANDROID_NDK)/toolchains" + . "-gcc-toolchain \$($ndk_var)/toolchains" . "/$tritools-4.9/prebuilt/$host"; $user{CC} = "clang" if ($user{CC} !~ m|clang|); $user{CROSS_COMPILE} = undef; @@ -127,13 +133,13 @@ die "no $incroot/$triarch" if (!-d "$incroot/$triarch"); $incroot =~ s|^$ndk/||; $cppflags = "-D__ANDROID_API__=$api"; - $cppflags .= " -isystem \$(ANDROID_NDK)/$incroot/$triarch"; - $cppflags .= " -isystem \$(ANDROID_NDK)/$incroot"; + $cppflags .= " -isystem \$($ndk_var)/$incroot/$triarch"; + $cppflags .= " -isystem \$($ndk_var)/$incroot"; } $sysroot =~ s|^$ndk/||; $android_ndk = { - cflags => "$cflags --sysroot=\$(ANDROID_NDK)/$sysroot", + cflags => "$cflags --sysroot=\$($ndk_var)/$sysroot", cppflags => $cppflags, bn_ops => $arch =~ m/64$/ ? "SIXTY_FOUR_BIT_LONG" : "BN_LLONG", diff --git a/Configurations/50-win-onecore.conf b/Configurations/50-win-onecore.conf index c71d3646f23e03516f257f6a18d542197c9cb874..51cb3819cb9907b73ef6d15c75d40be76f53608a 100644 --- a/Configurations/50-win-onecore.conf +++ b/Configurations/50-win-onecore.conf @@ -4,7 +4,7 @@ # Mobile[?] Windows editions. It's a set up "umbrella" libraries that # export subset of Win32 API that are common to all Windows 10 devices. # -# OneCore Configuration temporarly dedicated for console applications +# OneCore Configuration temporarly dedicated for console applications # due to disabled event logging, which is incompatible with one core. # Error messages are provided via standard error only. # TODO: extend error handling to use ETW based eventing diff --git a/Configurations/README b/Configurations/README index d2d893d8d2fe1c6d6dd80c0954d97214339de4ca..0b856284da7ea3dcb1a819bca0625696114e85bc 100644 --- a/Configurations/README +++ b/Configurations/README @@ -118,7 +118,7 @@ In each table entry, the following keys are significant: '<unistd.h>'. This is very rarely needed. shared_extension => File name extension used for shared - libraries. + libraries. obj_extension => File name extension used for object files. On unix, this defaults to ".o" (NOTE: this is here for future use, it's not @@ -518,7 +518,7 @@ clash with those generated by Configure, it's possible to tell it not to generate them with the use of OVERRIDES, for example: SOURCE[libfoo]=foo.c bar.c - + OVERRIDES=bar.o BEGINRAW[Makefile(unix)] bar.o: bar.c diff --git a/Configurations/README.design b/Configurations/README.design index cae08fc249627cc6bedda084a1f023bda85d3951..5fb2737c25343a8de9658f1f3f2658f80a682977 100644 --- a/Configurations/README.design +++ b/Configurations/README.design @@ -86,7 +86,7 @@ depends on the library 'libssl' to function properly. LIBS=../libcrypto SOURCE[../libcrypto]=aes.c evp.c cversion.c DEPEND[cversion.o]=buildinf.h - + GENERATE[buildinf.h]=../util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" DEPEND[buildinf.h]=../Makefile DEPEND[../util/mkbuildinf.pl]=../util/Foo.pm @@ -101,7 +101,7 @@ show that duplicate information isn't an issue. This build.info file informs us that 'libcrypto' is built from a few source files, 'crypto/aes.c', 'crypto/evp.c' and 'crypto/cversion.c'. It also shows us that building the object file inferred from -'crypto/cversion.c' depends on 'crypto/buildinf.h'. Finally, it +'crypto/cversion.c' depends on 'crypto/buildinf.h'. Finally, it also shows the possibility to declare how some files are generated using some script, in this case a perl script, and how such scripts can be declared to depend on other files, in this case a perl module. @@ -152,7 +152,7 @@ information comes down to this: SOURCE[libssl]=ssl/tls.c INCLUDE[libssl]=include DEPEND[libssl]=libcrypto - + PROGRAMS=apps/openssl SOURCE[apps/openssl]=apps/openssl.c INCLUDE[apps/openssl]=. include @@ -167,7 +167,7 @@ information comes down to this: SOURCE[engines/ossltest]=engines/e_ossltest.c DEPEND[engines/ossltest]=libcrypto.a INCLUDE[engines/ossltest]=include - + GENERATE[crypto/buildinf.h]=util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" DEPEND[crypto/buildinf.h]=Makefile DEPEND[util/mkbuildinf.pl]=util/Foo.pm diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 40876bdf88aa2b273ecaec89c0f7c775e61b16b5..0ccd5f0751b330f3aeb039351010d7eca132c793 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -795,10 +795,10 @@ $target : $args{generator}->[0] $deps $generator \$\@-S \@ $incs_on PIPE \$(CPP) $cppflags \$\@-S | - - \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@-i + \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" > \$\@-i \@ $incs_off RENAME \$\@-i \$\@ - DELETE \$\@-S + DELETE \$\@-S; EOF } # Otherwise.... @@ -840,19 +840,6 @@ EOF my $before = $unified_info{before}->{$obj.".OBJ"} || "\@ !"; my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !"; - if ($srcs[0] =~ /\.asm$/) { - my $asflags = { lib => ' $(LIB_ASFLAGS)', - dso => ' $(DSO_ASFLAGS)', - bin => ' $(BIN_ASFLAGS)' } -> {$args{intent}}; - return <<"EOF"; -$obj.OBJ : $deps - ${before} - SET DEFAULT $forward - \$(AS) $asflags \$(ASOUTFLAG)${objd}${objn}.OBJ $srcs - SET DEFAULT $backward -EOF - } - my $cflags; if ($args{installed}) { $cflags = { lib => '$(LIB_CFLAGS)', @@ -866,6 +853,9 @@ EOF $cflags .= { lib => '$(LIB_CPPFLAGS)', dso => '$(DSO_CPPFLAGS)', bin => '$(BIN_CPPFLAGS)' } -> {$args{intent}}; + my $asflags = { lib => ' $(LIB_ASFLAGS)', + dso => ' $(DSO_ASFLAGS)', + bin => ' $(BIN_ASFLAGS)' } -> {$args{intent}}; my @incs_cmds = includes({ lib => '$(LIB_INCLUDES)', dso => '$(DSO_INCLUDES)', @@ -877,6 +867,34 @@ EOF } @{$args{incs}}); my $incs_on = join("\n\t\@ ", @{$incs_cmds[0]}) || '!'; my $incs_off = join("\n\t\@ ", @{$incs_cmds[1]}) || '!'; + + if ($srcs[0] =~ /\.asm$/) { + return <<"EOF"; +$obj.OBJ : $deps + ${before} + SET DEFAULT $forward + \$(AS) $asflags \$(ASOUTFLAG)${objd}${objn}.OBJ $srcs + SET DEFAULT $backward + ${after} + - PURGE $obj.OBJ +EOF + } elsif ($srcs[0] =~ /.S$/) { + return <<"EOF"; +$obj.OBJ : $deps + ${before} + SET DEFAULT $forward + \@ $incs_on + PIPE \$(CPP) ${cflags} $srcs | - + \$(PERL) -ne "/^#(\\s*line)?\\s*[0-9]+\\s+""/ or print" - + > ${objd}${objn}.asm + \@ $incs_off + SET DEFAULT $backward + ${after} + \$(AS) $asflags \$(ASOUTFLAG)$obj.OBJ $obj.asm + - PURGE $obj.OBJ +EOF + } + my $depbuild = $disabled{makedepend} ? "" : " /MMS=(FILE=${objd}${objn}.D,TARGET=$obj.OBJ)"; @@ -1028,7 +1046,7 @@ EOF push @lines, "\@ WRITE OPT_FILE \"$x/SHARE\""; } elsif ($x =~ m|\.OLB$|) { (my $l = $x) =~ s/\W/_/g; - push @lines, + push @lines, "\@ IF nomain THEN WRITE OPT_FILE \"$x/LIB\$(INCLUDE_MAIN_$l)\"", "\@ IF .NOT. nomain THEN WRITE OPT_FILE \"$x/LIB\"" } diff --git a/Configurations/dist.conf b/Configurations/dist.conf deleted file mode 100644 index 2a458bcddfa77fa999a51d79eaffa468e18e7888..0000000000000000000000000000000000000000 --- a/Configurations/dist.conf +++ /dev/null @@ -1,12 +0,0 @@ -## -*- mode: perl; -*- -## Build configuration targets for openssl-team members - -# This is to support 'make dist' -my %targets = ( - "dist" => { - inherit_from => [ 'BASE_unix' ], - CC => "cc", - CFLAGS => "-O", - thread_scheme => "(unknown)", - }, -); diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index e7120194ef8c081840f9a4b768c8058f4f6088d0..1292053546f5f60592407eeaa5f64ed47282beec 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -227,6 +227,7 @@ TARFLAGS= {- $target{TARFLAGS} -} BASENAME= openssl NAME= $(BASENAME)-$(VERSION) +# Relative to $(SRCDIR) TARFILE= ../$(NAME).tar ##### Project flags ################################################## @@ -259,8 +260,8 @@ LIB_CPPFLAGS={- our $lib_cppflags = join(' ', $target{lib_cppflags} || (), $target{shared_cppflag} || (), (map { '-D'.$_ } - @{$config{lib_defines}}, - @{$config{shared_defines}}), + @{$config{lib_defines} || ()}, + @{$config{shared_defines} || ()}), @{$config{lib_cppflags}}, @{$config{shared_cppflag}}); join(' ', $lib_cppflags, @@ -284,6 +285,9 @@ LIB_LDFLAGS={- join(' ', $target{shared_ldflag} || (), LIB_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS) DSO_CPPFLAGS={- join(' ', $target{dso_cppflags} || (), $target{module_cppflags} || (), + (map { '-D'.$_ } + @{$config{dso_defines} || ()}, + @{$config{module_defines} || ()}), @{$config{dso_cppflags}}, @{$config{module_cppflags}}, '$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -} @@ -304,6 +308,7 @@ DSO_LDFLAGS={- join(' ', $target{dso_ldflags} || (), '$(CNF_LDFLAGS)', '$(LDFLAGS)') -} DSO_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS) BIN_CPPFLAGS={- join(' ', $target{bin_cppflags} || (), + (map { '-D'.$_ } @{$config{bin_defines} || ()}), @{$config{bin_cppflags}}, '$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -} BIN_CFLAGS={- join(' ', $target{bin_cflags} || (), @@ -650,7 +655,7 @@ install_runtime_libs: build_libs : {- output_off() unless windowsdll(); "" -}; \ $(ECHO) "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \ cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ - chmod 644 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ + chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \ mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \ $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \ : {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \ @@ -830,37 +835,8 @@ tags TAGS: FORCE # Release targets (note: only available on Unix) ##################### -# If your tar command doesn't support --owner and --group, make sure to -# use one that does, for example GNU tar -TAR_COMMAND=$(TAR) $(TARFLAGS) --owner 0 --group 0 -cf - -PREPARE_CMD=: tar: - set -e; \ - TMPDIR=/var/tmp/openssl-copy.$$$$; \ - DISTDIR=$(NAME); \ - mkdir -p $$TMPDIR/$$DISTDIR; \ - (cd $(SRCDIR); \ - excl_re=`git submodule status | sed -e 's/^.//' | cut -d' ' -f2`; \ - excl_re="^(fuzz/corpora|Configurations/.*\.norelease\.conf|`echo $$excl_re | sed -e 's/ /$$|/g'`\$$)"; \ - echo "$$excl_re"; \ - git ls-tree -r --name-only --full-tree HEAD \ - | egrep -v "$$excl_re" \ - | while read F; do \ - mkdir -p $$TMPDIR/$$DISTDIR/`dirname $$F`; \ - cp $$F $$TMPDIR/$$DISTDIR/$$F; \ - done); \ - (cd $$TMPDIR/$$DISTDIR; \ - $(PREPARE_CMD); \ - find . -type d -print | xargs chmod 755; \ - find . -type f -print | xargs chmod a+r; \ - find . -type f -perm -0100 -print | xargs chmod a+x); \ - (cd $$TMPDIR; $(TAR_COMMAND) $$DISTDIR) \ - | (cd $(SRCDIR); gzip --best > $(TARFILE).gz); \ - rm -rf $$TMPDIR - cd $(SRCDIR); ls -l $(TARFILE).gz - -dist: - @$(MAKE) PREPARE_CMD='$(PERL) ./Configure dist' TARFILE="$(TARFILE)" NAME="$(NAME)" tar + (cd $(SRCDIR); ./util/mktar.sh --name='$(NAME)' --tarfile='$(TARFILE)') # Helper targets ##################################################### diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index d420bfff347d9e86d5130075eabd5779f5fccf1d..8ef70b8699f8813ba8d92358272e8b63aa946955 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -187,6 +187,7 @@ AS={- $config{AS} -} ASFLAGS={- join(' ', @{$config{ASFLAGS}}) -} RC={- $config{RC} -} +RCFLAGS={- join(' ', @{$config{RCFLAGS}}) -} ECHO="$(PERL)" "$(SRCDIR)\util\echo.pl" @@ -586,7 +587,7 @@ EOF if ($srcs[0] =~ /\.rc$/) { return <<"EOF"; $args{obj}: $deps - \$(RC) \$(RCOUTFLAG)\$\@ $srcs + \$(RC) \$(RCFLAGS) \$(RCOUTFLAG)\$\@ $srcs EOF } (my $obj = $args{obj}) =~ s|\.o$||; diff --git a/Configure b/Configure index d5dc36c285bab2755017f736f59a083d098f7cdb..254b04c95d95d98dbbcff63592c14616442018c3 100755 --- a/Configure +++ b/Configure @@ -1,6 +1,6 @@ #! /usr/bin/env perl # -*- mode: perl; -*- -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -24,7 +24,7 @@ use OpenSSL::Glob; my $orig_death_handler = $SIG{__DIE__}; $SIG{__DIE__} = \&death_handler; -my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]\n"; +my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]\n"; # Options: # @@ -54,16 +54,14 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx # [no-]threads [don't] try to create a library that is suitable for # multithreaded applications (default is "threads" if we # know how to do it) -# [no-]shared [don't] try to create shared libraries when supported. +# [no-]shared [don't] try to create shared libraries when supported. # [no-]pic [don't] try to build position independent code when supported. # If disabled, it also disables shared and dynamic-engine. # no-asm do not use assembler -# no-dso do not compile in any native shared-library methods. This -# will ensure that all methods just return NULL. # no-egd do not compile support for the entropy-gathering daemon APIs # [no-]zlib [don't] compile support for zlib compression. -# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared -# library and will be loaded in run-time by the OpenSSL library. +# zlib-dynamic Like "zlib", but the zlib library is expected to be a shared +# library and will be loaded in run-time by the OpenSSL library. # sctp include SCTP support # enable-weak-ssl-ciphers # Enable weak ciphers that are disabled by default. @@ -75,7 +73,7 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx # -static while -static is also a pass-through compiler option (and # as such is limited to environments where it's actually # meaningful), it triggers a number configuration options, -# namely no-dso, no-pic, no-shared and no-threads. It is +# namely no-pic, no-shared and no-threads. It is # argued that the only reason to produce statically linked # binaries (and in context it means executables linked with # -static flag, and not just executables linked with static @@ -90,21 +88,22 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx # production quality. # # DEBUG_SAFESTACK use type-safe stacks to enforce type-safety on stack items -# provided to stack calls. Generates unique stack functions for -# each possible stack type. -# BN_LLONG use the type 'long long' in crypto/bn/bn.h -# RC4_CHAR use 'char' instead of 'int' for RC4_INT in crypto/rc4/rc4.h +# provided to stack calls. Generates unique stack functions for +# each possible stack type. +# BN_LLONG use the type 'long long' in crypto/bn/bn.h +# RC4_CHAR use 'char' instead of 'int' for RC4_INT in crypto/rc4/rc4.h # Following are set automatically by this script # -# MD5_ASM use some extra md5 assembler, -# SHA1_ASM use some extra sha1 assembler, must define L_ENDIAN for x86 -# RMD160_ASM use some extra ripemd160 assembler, -# SHA256_ASM sha256_block is implemented in assembler -# SHA512_ASM sha512_block is implemented in assembler -# AES_ASM AES_[en|de]crypt is implemented in assembler +# MD5_ASM use some extra md5 assembler, +# SHA1_ASM use some extra sha1 assembler, must define L_ENDIAN for x86 +# RMD160_ASM use some extra ripemd160 assembler, +# SHA256_ASM sha256_block is implemented in assembler +# SHA512_ASM sha512_block is implemented in assembler +# AES_ASM AES_[en|de]crypt is implemented in assembler -# Minimum warning options... any contributions to OpenSSL should at least get -# past these. +# Minimum warning options... any contributions to OpenSSL should at least +# get past these. Note that we only use these with C compilers, not with +# C++ compilers. # DEBUG_UNUSED enables __owur (warn unused result) checks. # -DPEDANTIC complements -pedantic and is meant to mask code that @@ -119,22 +118,23 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lx # code, so we just tell compiler to be pedantic about everything # but 'long long' type. -my $gcc_devteam_warn = "-DDEBUG_UNUSED" - . " -DPEDANTIC -pedantic -Wno-long-long" - . " -Wall" - . " -Wextra" - . " -Wno-unused-parameter" - . " -Wno-missing-field-initializers" - . " -Wswitch" - . " -Wsign-compare" - . " -Wmissing-prototypes" - . " -Wstrict-prototypes" - . " -Wshadow" - . " -Wformat" - . " -Wtype-limits" - . " -Wundef" - . " -Werror" - ; +my @gcc_devteam_warn = qw( + -DDEBUG_UNUSED + -DPEDANTIC -pedantic -Wno-long-long + -Wall + -Wextra + -Wno-unused-parameter + -Wno-missing-field-initializers + -Wswitch + -Wsign-compare + -Wshadow + -Wformat + -Wtype-limits + -Wundef + -Werror + -Wmissing-prototypes + -Wstrict-prototypes +); # These are used in addition to $gcc_devteam_warn when the compiler is clang. # TODO(openssl-team): fix problems and investigate if (at least) the @@ -144,16 +144,16 @@ my $gcc_devteam_warn = "-DDEBUG_UNUSED" # -Wlanguage-extension-token -- no, we use asm() # -Wunused-macros -- no, too tricky for BN and _XOPEN_SOURCE etc # -Wextended-offsetof -- no, needed in CMS ASN1 code -my $clang_devteam_warn = "" - . " -Wswitch-default" - . " -Wno-parentheses-equality" - . " -Wno-language-extension-token" - . " -Wno-extended-offsetof" - . " -Wconditional-uninitialized" - . " -Wincompatible-pointer-types-discards-qualifiers" - . " -Wmissing-variable-declarations" - . " -Wno-unknown-warning-option" - ; +my @clang_devteam_warn = qw( + -Wswitch-default + -Wno-parentheses-equality + -Wno-language-extension-token + -Wno-extended-offsetof + -Wconditional-uninitialized + -Wincompatible-pointer-types-discards-qualifiers + -Wno-unknown-warning-option + -Wmissing-variable-declarations +); # This adds backtrace information to the memory leak info. Is only used # when crypto-mdebug-backtrace is enabled. @@ -222,20 +222,20 @@ if (grep /^reconf(igure)?$/, @argvcopy) { die "reconfiguring with other arguments present isn't supported" if scalar @argvcopy > 1; if (-f "./configdata.pm") { - my $file = "./configdata.pm"; - unless (my $return = do $file) { - die "couldn't parse $file: $@" if $@; + my $file = "./configdata.pm"; + unless (my $return = do $file) { + die "couldn't parse $file: $@" if $@; die "couldn't do $file: $!" unless defined $return; die "couldn't run $file" unless $return; - } + } - @argvcopy = defined($configdata::config{perlargv}) ? - @{$configdata::config{perlargv}} : (); - die "Incorrect data to reconfigure, please do a normal configuration\n" - if (grep(/^reconf/,@argvcopy)); - $config{perlenv} = $configdata::config{perlenv} // {}; + @argvcopy = defined($configdata::config{perlargv}) ? + @{$configdata::config{perlargv}} : (); + die "Incorrect data to reconfigure, please do a normal configuration\n" + if (grep(/^reconf/,@argvcopy)); + $config{perlenv} = $configdata::config{perlenv} // {}; } else { - die "Insufficient data to reconfigure, please do a normal configuration\n"; + die "Insufficient data to reconfigure, please do a normal configuration\n"; } } @@ -250,8 +250,8 @@ $config{shlib_version_history} = "unknown"; collect_information( collect_from_file(catfile($srcdir,'include/openssl/opensslv.h')), qr/OPENSSL.VERSION.TEXT.*OpenSSL (\S+) / => sub { $config{version} = $1; }, - qr/OPENSSL.VERSION.NUMBER.*(0x\S+)/ => sub { $config{version_num}=$1 }, - qr/SHLIB_VERSION_NUMBER *"([^"]+)"/ => sub { $config{shlib_version_number}=$1 }, + qr/OPENSSL.VERSION.NUMBER.*(0x\S+)/ => sub { $config{version_num}=$1 }, + qr/SHLIB_VERSION_NUMBER *"([^"]+)"/ => sub { $config{shlib_version_number}=$1 }, qr/SHLIB_VERSION_HISTORY *"([^"]*)"/ => sub { $config{shlib_version_history}=$1 } ); if ($config{shlib_version_history} ne "") { $config{shlib_version_history} .= ":"; } @@ -263,7 +263,7 @@ if ($config{shlib_version_history} ne "") { $config{shlib_version_history} .= ": die "erroneous version information in opensslv.h: ", "$config{major}, $config{minor}, $config{shlib_major}, $config{shlib_minor}\n" if ($config{major} eq "" || $config{minor} eq "" - || $config{shlib_major} eq "" || $config{shlib_minor} eq ""); + || $config{shlib_major} eq "" || $config{shlib_minor} eq ""); # Collect target configurations @@ -332,6 +332,7 @@ my @disablables = ( "autoload-config", "bf", "blake2", + "buildtest-c\\+\\+", "camellia", "capieng", "cast", @@ -348,7 +349,6 @@ my @disablables = ( "dgram", "dh", "dsa", - "dso", "dtls", "dynamic-engine", "ec", @@ -374,6 +374,7 @@ my @disablables = ( "msan", "multiblock", "nextprotoneg", + "pinshared", "ocb", "ocsp", "pic", @@ -415,71 +416,70 @@ my @disablables = ( "zlib-dynamic", ); foreach my $proto ((@tls, @dtls)) - { - push(@disablables, $proto); - push(@disablables, "$proto-method") unless $proto eq "tls1_3"; - } + { + push(@disablables, $proto); + push(@disablables, "$proto-method") unless $proto eq "tls1_3"; + } my %deprecated_disablables = ( "ssl2" => undef, "buf-freelists" => undef, "ripemd" => "rmd160", "ui" => "ui-console", + "dso" => "", # Empty string means we're silent about it ); # All of the following are disabled by default: our %disabled = ( # "what" => "comment" - "asan" => "default", - "crypto-mdebug" => "default", - "crypto-mdebug-backtrace" => "default", - "devcryptoeng" => "default", - "ec_nistp_64_gcc_128" => "default", - "egd" => "default", - "external-tests" => "default", - "fuzz-libfuzzer" => "default", - "fuzz-afl" => "default", - "heartbeats" => "default", - "md2" => "default", + "asan" => "default", + "buildtest-c++" => "default", + "crypto-mdebug" => "default", + "crypto-mdebug-backtrace" => "default", + "devcryptoeng" => "default", + "ec_nistp_64_gcc_128" => "default", + "egd" => "default", + "external-tests" => "default", + "fuzz-libfuzzer" => "default", + "fuzz-afl" => "default", + "heartbeats" => "default", + "md2" => "default", "msan" => "default", - "rc5" => "default", - "sctp" => "default", - "ssl-trace" => "default", - "ssl3" => "default", - "ssl3-method" => "default", - "ubsan" => "default", - "unit-test" => "default", - "weak-ssl-ciphers" => "default", - "zlib" => "default", - "zlib-dynamic" => "default", - ); + "rc5" => "default", + "sctp" => "default", + "ssl-trace" => "default", + "ssl3" => "default", + "ssl3-method" => "default", + "ubsan" => "default", + "unit-test" => "default", + "weak-ssl-ciphers" => "default", + "zlib" => "default", + "zlib-dynamic" => "default", + ); # Note: => pair form used for aesthetics, not to truly make a hash table my @disable_cascades = ( - # "what" => [ "cascade", ... ] + # "what" => [ "cascade", ... ] sub { $config{processor} eq "386" } - => [ "sse2" ], - "ssl" => [ "ssl3" ], - "ssl3-method" => [ "ssl3" ], - "zlib" => [ "zlib-dynamic" ], - "des" => [ "mdc2" ], - "ec" => [ "ecdsa", "ecdh" ], - - "dgram" => [ "dtls", "sctp" ], - "sock" => [ "dgram" ], - "dtls" => [ @dtls ], + => [ "sse2" ], + "ssl" => [ "ssl3" ], + "ssl3-method" => [ "ssl3" ], + "zlib" => [ "zlib-dynamic" ], + "des" => [ "mdc2" ], + "ec" => [ "ecdsa", "ecdh" ], + + "dgram" => [ "dtls", "sctp" ], + "sock" => [ "dgram" ], + "dtls" => [ @dtls ], sub { 0 == scalar grep { !$disabled{$_} } @dtls } - => [ "dtls" ], + => [ "dtls" ], - "tls" => [ @tls ], + "tls" => [ @tls ], sub { 0 == scalar grep { !$disabled{$_} } @tls } - => [ "tls" ], + => [ "tls" ], "crypto-mdebug" => [ "crypto-mdebug-backtrace" ], - # Without DSO, we can't load dynamic engines, so don't build them dynamic - "dso" => [ "dynamic-engine" ], - # Without position independent code, there can be no shared libraries or DSOs "pic" => [ "shared" ], "shared" => [ "dynamic-engine" ], @@ -506,14 +506,14 @@ my @list = (reverse @tls); while ((my $first, my $second) = (shift @list, shift @list)) { last unless @list; push @disable_cascades, ( sub { !$disabled{$first} && $disabled{$second} } - => [ @list ] ); + => [ @list ] ); unshift @list, $second; } my @list = (reverse @dtls); while ((my $first, my $second) = (shift @list, shift @list)) { last unless @list; push @disable_cascades, ( sub { !$disabled{$first} && $disabled{$second} } - => [ @list ] ); + => [ @list ] ); unshift @list, $second; } @@ -540,24 +540,24 @@ my %user = ( AS => undef, ASFLAGS => [], CC => env('CC'), - CFLAGS => [], + CFLAGS => [ env('CFLAGS') || () ], CXX => env('CXX'), - CXXFLAGS => [], + CXXFLAGS => [ env('CXXFLAGS') || () ], CPP => undef, - CPPFLAGS => [], # -D, -I, -Wp, + CPPFLAGS => [ env('CPPFLAGS') || () ], # -D, -I, -Wp, CPPDEFINES => [], # Alternative for -D CPPINCLUDES => [], # Alternative for -I CROSS_COMPILE => env('CROSS_COMPILE'), HASHBANGPERL=> env('HASHBANGPERL') || env('PERL'), LD => undef, - LDFLAGS => [], # -L, -Wl, - LDLIBS => [], # -l + LDFLAGS => [ env('LDFLAGS') || () ], # -L, -Wl, + LDLIBS => [ env('LDLIBS') || () ], # -l MT => undef, MTFLAGS => [], PERL => env('PERL') || ($^O ne "VMS" ? $^X : "perl"), RANLIB => env('RANLIB'), RC => env('RC') || env('WINDRES'), - RCFLAGS => [], + RCFLAGS => [ env('RCFLAGS') || () ], RM => undef, ); # Info about what "make variables" may be prefixed with the cross compiler @@ -574,6 +574,7 @@ my %useradd = ( CXXFLAGS => [], LDFLAGS => [], LDLIBS => [], + RCFLAGS => [], ); my %user_synonyms = ( @@ -621,43 +622,43 @@ my %deprecated_options = (); my @known_seed_sources = qw(getrandom devrandom os egd none rdcpu librandom); my @seed_sources = (); while (@argvcopy) - { - $_ = shift @argvcopy; - - # Support env variable assignments among the options - if (m|^(\w+)=(.+)?$|) - { - $cmdvars{$1} = $2; - # Every time a variable is given as a configuration argument, - # it acts as a reset if the variable. - if (exists $user{$1}) - { - $user{$1} = ref $user{$1} eq "ARRAY" ? [] : undef; - } - #if (exists $useradd{$1}) - # { - # $useradd{$1} = []; - # } - next; - } - - # VMS is a case insensitive environment, and depending on settings - # out of our control, we may receive options uppercased. Let's - # downcase at least the part before any equal sign. - if ($^O eq "VMS") - { - s/^([^=]*)/lc($1)/e; - } - - # some people just can't read the instructions, clang people have to... - s/^-no-(?!integrated-as)/no-/; - - # rewrite some options in "enable-..." form - s /^-?-?shared$/enable-shared/; - s /^sctp$/enable-sctp/; - s /^threads$/enable-threads/; - s /^zlib$/enable-zlib/; - s /^zlib-dynamic$/enable-zlib-dynamic/; + { + $_ = shift @argvcopy; + + # Support env variable assignments among the options + if (m|^(\w+)=(.+)?$|) + { + $cmdvars{$1} = $2; + # Every time a variable is given as a configuration argument, + # it acts as a reset if the variable. + if (exists $user{$1}) + { + $user{$1} = ref $user{$1} eq "ARRAY" ? [] : undef; + } + #if (exists $useradd{$1}) + # { + # $useradd{$1} = []; + # } + next; + } + + # VMS is a case insensitive environment, and depending on settings + # out of our control, we may receive options uppercased. Let's + # downcase at least the part before any equal sign. + if ($^O eq "VMS") + { + s/^([^=]*)/lc($1)/e; + } + + # some people just can't read the instructions, clang people have to... + s/^-no-(?!integrated-as)/no-/; + + # rewrite some options in "enable-..." form + s /^-?-?shared$/enable-shared/; + s /^sctp$/enable-sctp/; + s /^threads$/enable-threads/; + s /^zlib$/enable-zlib/; + s /^zlib-dynamic$/enable-zlib-dynamic/; if (/^(no|disable|enable)-(.+)$/) { @@ -711,21 +712,24 @@ while (@argvcopy) } elsif (exists $deprecated_disablables{$1}) { - $deprecated_options{$_} = 1; - if (defined $deprecated_disablables{$1}) + if ($deprecated_disablables{$1} ne "") { - $disabled{$deprecated_disablables{$1}} = "option"; + $deprecated_options{$_} = 1; + if (defined $deprecated_disablables{$1}) + { + $disabled{$deprecated_disablables{$1}} = "option"; + } } } else { $disabled{$1} = "option"; } - # No longer an automatic choice - $auto_threads = 0 if ($1 eq "threads"); - } - elsif (/^enable-(.+)$/) - { + # No longer an automatic choice + $auto_threads = 0 if ($1 eq "threads"); + } + elsif (/^enable-(.+)$/) + { if ($1 eq "static-engine") { $disabled{"dynamic-engine"} = "option"; @@ -738,173 +742,172 @@ while (@argvcopy) { delete $disabled{"zlib"}; } - my $algo = $1; - delete $disabled{$algo}; - - # No longer an automatic choice - $auto_threads = 0 if ($1 eq "threads"); - } - elsif (/^--strict-warnings$/) - { - $strict_warnings = 1; - } - elsif (/^--debug$/) - { - $config{build_type} = "debug"; - } - elsif (/^--release$/) - { - $config{build_type} = "release"; - } - elsif (/^386$/) - { $config{processor}=386; } - elsif (/^fips$/) - { - die "FIPS mode not supported\n"; - } - elsif (/^rsaref$/) - { - # No RSAref support any more since it's not needed. - # The check for the option is there so scripts aren't - # broken - } - elsif (/^nofipscanistercheck$/) - { - die "FIPS mode not supported\n"; - } - elsif (/^[-+]/) - { - if (/^--prefix=(.*)$/) - { - $config{prefix}=$1; - die "Directory given with --prefix MUST be absolute\n" - unless file_name_is_absolute($config{prefix}); - } - elsif (/^--api=(.*)$/) - { - $config{api}=$1; - } - elsif (/^--libdir=(.*)$/) - { - $config{libdir}=$1; - } - elsif (/^--openssldir=(.*)$/) - { - $config{openssldir}=$1; - } - elsif (/^--with-zlib-lib=(.*)$/) - { - $withargs{zlib_lib}=$1; - } - elsif (/^--with-zlib-include=(.*)$/) - { - $withargs{zlib_include}=$1; - } - elsif (/^--with-fuzzer-lib=(.*)$/) - { - $withargs{fuzzer_lib}=$1; - } - elsif (/^--with-fuzzer-include=(.*)$/) - { - $withargs{fuzzer_include}=$1; - } - elsif (/^--with-rand-seed=(.*)$/) - { - foreach my $x (split(m|,|, $1)) - { - die "Unknown --with-rand-seed choice $x\n" - if ! grep { $x eq $_ } @known_seed_sources; - push @seed_sources, $x; - } + my $algo = $1; + delete $disabled{$algo}; + + # No longer an automatic choice + $auto_threads = 0 if ($1 eq "threads"); + } + elsif (/^--strict-warnings$/) + { + # Pretend that our strict flags is a C flag, and replace it + # with the proper flags later on + push @{$useradd{CFLAGS}}, '--ossl-strict-warnings'; + $strict_warnings=1; + } + elsif (/^--debug$/) + { + $config{build_type} = "debug"; + } + elsif (/^--release$/) + { + $config{build_type} = "release"; + } + elsif (/^386$/) + { $config{processor}=386; } + elsif (/^fips$/) + { + die "FIPS mode not supported\n"; + } + elsif (/^rsaref$/) + { + # No RSAref support any more since it's not needed. + # The check for the option is there so scripts aren't + # broken + } + elsif (/^nofipscanistercheck$/) + { + die "FIPS mode not supported\n"; + } + elsif (/^[-+]/) + { + if (/^--prefix=(.*)$/) + { + $config{prefix}=$1; + die "Directory given with --prefix MUST be absolute\n" + unless file_name_is_absolute($config{prefix}); } - elsif (/^--cross-compile-prefix=(.*)$/) - { - $user{CROSS_COMPILE}=$1; - } - elsif (/^--config=(.*)$/) - { - read_config $1; - } - elsif (/^-l(.*)$/) - { - push @{$useradd{LDLIBS}}, $_; - } - elsif (/^-framework$/) - { - push @{$useradd{LDLIBS}}, $_, shift(@argvcopy); - } - elsif (/^-L(.*)$/ or /^-Wl,/) - { - push @{$useradd{LDFLAGS}}, $_; - } - elsif (/^-rpath$/ or /^-R$/) - # -rpath is the OSF1 rpath flag - # -R is the old Solaris rpath flag - { - my $rpath = shift(@argvcopy) || ""; - $rpath .= " " if $rpath ne ""; - push @{$useradd{LDFLAGS}}, $_, $rpath; - } - elsif (/^-static$/) - { - push @{$useradd{LDFLAGS}}, $_; - $disabled{"dso"} = "forced"; - $disabled{"pic"} = "forced"; - $disabled{"shared"} = "forced"; - $disabled{"threads"} = "forced"; - } - elsif (/^-D(.*)$/) - { - push @{$useradd{CPPDEFINES}}, $1; - } - elsif (/^-I(.*)$/) - { - push @{$useradd{CPPINCLUDES}}, $1; - } - elsif (/^-Wp,$/) - { - push @{$useradd{CPPFLAGS}}, $1; - } - else # common if (/^[-+]/), just pass down... - { - $_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei; - push @{$useradd{CFLAGS}}, $_; - push @{$useradd{CXXFLAGS}}, $_; - } - } - else - { - die "target already defined - $target (offending arg: $_)\n" if ($target ne ""); - $target=$_; - } - unless ($_ eq $target || /^no-/ || /^disable-/) - { - # "no-..." follows later after implied deactivations - # have been derived. (Don't take this too seriously, - # we really only write OPTIONS to the Makefile out of - # nostalgia.) - - if ($config{options} eq "") - { $config{options} = $_; } - else - { $config{options} .= " ".$_; } - } - } + elsif (/^--api=(.*)$/) + { + $config{api}=$1; + } + elsif (/^--libdir=(.*)$/) + { + $config{libdir}=$1; + } + elsif (/^--openssldir=(.*)$/) + { + $config{openssldir}=$1; + } + elsif (/^--with-zlib-lib=(.*)$/) + { + $withargs{zlib_lib}=$1; + } + elsif (/^--with-zlib-include=(.*)$/) + { + $withargs{zlib_include}=$1; + } + elsif (/^--with-fuzzer-lib=(.*)$/) + { + $withargs{fuzzer_lib}=$1; + } + elsif (/^--with-fuzzer-include=(.*)$/) + { + $withargs{fuzzer_include}=$1; + } + elsif (/^--with-rand-seed=(.*)$/) + { + foreach my $x (split(m|,|, $1)) + { + die "Unknown --with-rand-seed choice $x\n" + if ! grep { $x eq $_ } @known_seed_sources; + push @seed_sources, $x; + } + } + elsif (/^--cross-compile-prefix=(.*)$/) + { + $user{CROSS_COMPILE}=$1; + } + elsif (/^--config=(.*)$/) + { + read_config $1; + } + elsif (/^-l(.*)$/) + { + push @{$useradd{LDLIBS}}, $_; + } + elsif (/^-framework$/) + { + push @{$useradd{LDLIBS}}, $_, shift(@argvcopy); + } + elsif (/^-L(.*)$/ or /^-Wl,/) + { + push @{$useradd{LDFLAGS}}, $_; + } + elsif (/^-rpath$/ or /^-R$/) + # -rpath is the OSF1 rpath flag + # -R is the old Solaris rpath flag + { + my $rpath = shift(@argvcopy) || ""; + $rpath .= " " if $rpath ne ""; + push @{$useradd{LDFLAGS}}, $_, $rpath; + } + elsif (/^-static$/) + { + push @{$useradd{LDFLAGS}}, $_; + } + elsif (/^-D(.*)$/) + { + push @{$useradd{CPPDEFINES}}, $1; + } + elsif (/^-I(.*)$/) + { + push @{$useradd{CPPINCLUDES}}, $1; + } + elsif (/^-Wp,$/) + { + push @{$useradd{CPPFLAGS}}, $1; + } + else # common if (/^[-+]/), just pass down... + { + $_ =~ s/%([0-9a-f]{1,2})/chr(hex($1))/gei; + push @{$useradd{CFLAGS}}, $_; + push @{$useradd{CXXFLAGS}}, $_; + } + } + else + { + die "target already defined - $target (offending arg: $_)\n" if ($target ne ""); + $target=$_; + } + unless ($_ eq $target || /^no-/ || /^disable-/) + { + # "no-..." follows later after implied deactivations + # have been derived. (Don't take this too seriously, + # we really only write OPTIONS to the Makefile out of + # nostalgia.) + + if ($config{options} eq "") + { $config{options} = $_; } + else + { $config{options} .= " ".$_; } + } + } if (defined($config{api}) && !exists $apitable->{$config{api}}) { - die "***** Unsupported api compatibility level: $config{api}\n", + die "***** Unsupported api compatibility level: $config{api}\n", } if (keys %deprecated_options) - { - warn "***** Deprecated options: ", - join(", ", keys %deprecated_options), "\n"; - } + { + warn "***** Deprecated options: ", + join(", ", keys %deprecated_options), "\n"; + } if (keys %unsupported_options) - { - die "***** Unsupported options: ", - join(", ", keys %unsupported_options), "\n"; - } + { + die "***** Unsupported options: ", + join(", ", keys %unsupported_options), "\n"; + } # If any %useradd entry has been set, we must check that the "make # variables" haven't been set. We start by checking of any %useradd entry @@ -960,36 +963,46 @@ if (grep { /-rpath\b/ } ($user{LDFLAGS} ? @{$user{LDFLAGS}} : ()) && !$disabled{shared} && !($disabled{asan} && $disabled{msan} && $disabled{ubsan})) { die "***** Cannot simultaneously use -rpath, shared libraries, and\n", - "***** any of asan, msan or ubsan\n"; + "***** any of asan, msan or ubsan\n"; } -my @tocheckfor = (keys %disabled); -while (@tocheckfor) { - my %new_tocheckfor = (); - my @cascade_copy = (@disable_cascades); - while (@cascade_copy) { - my ($test, $descendents) = (shift @cascade_copy, shift @cascade_copy); - if (ref($test) eq "CODE" ? $test->() : defined($disabled{$test})) { - foreach(grep { !defined($disabled{$_}) } @$descendents) { - $new_tocheckfor{$_} = 1; $disabled{$_} = "forced"; - } - } +sub disable { + my $disable_type = shift; + + for (@_) { + $disabled{$_} = $disable_type; + } + + my @tocheckfor = (@_ ? @_ : keys %disabled); + while (@tocheckfor) { + my %new_tocheckfor = (); + my @cascade_copy = (@disable_cascades); + while (@cascade_copy) { + my ($test, $descendents) = + (shift @cascade_copy, shift @cascade_copy); + if (ref($test) eq "CODE" ? $test->() : defined($disabled{$test})) { + foreach (grep { !defined($disabled{$_}) } @$descendents) { + $new_tocheckfor{$_} = 1; $disabled{$_} = "cascade"; + } + } + } + @tocheckfor = (keys %new_tocheckfor); } - @tocheckfor = (keys %new_tocheckfor); } +disable(); # First cascade run our $die = sub { die @_; }; if ($target eq "TABLE") { local $die = sub { warn @_; }; foreach (sort keys %table) { - print_table_entry($_, "TABLE"); + print_table_entry($_, "TABLE"); } exit 0; } if ($target eq "LIST") { foreach (sort keys %table) { - print $_,"\n" unless $table{$_}->{template}; + print $_,"\n" unless $table{$_}->{template}; } exit 0; } @@ -998,7 +1011,7 @@ if ($target eq "HASH") { local $die = sub { warn @_; }; print "%table = (\n"; foreach (sort keys %table) { - print_table_entry($_, "HASH"); + print_table_entry($_, "HASH"); } exit 0; } @@ -1029,7 +1042,7 @@ _____ } push @{$config{openssl_other_defines}}, map { (my $x = $_) =~ tr|[\-a-z]|[_A-Z]|; "OPENSSL_RAND_SEED_$x" } - @seed_sources; + @seed_sources; # Backward compatibility? if ($target =~ m/^CygWin32(-.*)$/) { @@ -1043,7 +1056,7 @@ if ($d) { # If we do not find debug-foo in the table, the target is set to foo. if (!$table{$target}) { - $target = $t; + $target = $t; } } @@ -1060,47 +1073,11 @@ foreach (keys %target_attr_translate) { %target = ( %{$table{DEFAULTS}}, %target ); -# Make the flags to build DSOs the same as for shared libraries unless they -# are already defined -$target{module_cflags} = $target{shared_cflag} unless defined $target{module_cflags}; -$target{module_cxxflags} = $target{shared_cxxflag} unless defined $target{module_cxxflags}; -$target{module_ldflags} = $target{shared_ldflag} unless defined $target{module_ldflags}; -{ - my $shared_info_pl = - catfile(dirname($0), "Configurations", "shared-info.pl"); - my %shared_info = read_eval_file($shared_info_pl); - push @{$target{_conf_fname_int}}, $shared_info_pl; - my $si = $target{shared_target}; - while (ref $si ne "HASH") { - last if ! defined $si; - if (ref $si eq "CODE") { - $si = $si->(); - } else { - $si = $shared_info{$si}; - } - } - - # Some of the 'shared_target' values don't have any entried in - # %shared_info. That's perfectly fine, AS LONG AS the build file - # template knows how to handle this. That is currently the case for - # Windows and VMS. - if (defined $si) { - # Just as above, copy certain shared_* attributes to the corresponding - # module_ attribute unless the latter is already defined - $si->{module_cflags} = $si->{shared_cflag} unless defined $si->{module_cflags}; - $si->{module_cxxflags} = $si->{shared_cxxflag} unless defined $si->{module_cxxflags}; - $si->{module_ldflags} = $si->{shared_ldflag} unless defined $si->{module_ldflags}; - foreach (sort keys %$si) { - $target{$_} = defined $target{$_} - ? add($si->{$_})->($target{$_}) - : $si->{$_}; - } - } -} - my %conf_files = map { $_ => 1 } (@{$target{_conf_fname_int}}); $config{conf_files} = [ sort keys %conf_files ]; +# Using sub disable within these loops may prove fragile, so we run +# a cascade afterwards foreach my $feature (@{$target{disable}}) { if (exists $deprecated_disablables{$feature}) { warn "***** config $target disables deprecated feature $feature\n"; @@ -1110,15 +1087,16 @@ foreach my $feature (@{$target{disable}}) { $disabled{$feature} = 'config'; } foreach my $feature (@{$target{enable}}) { - if ("default" eq ($disabled{$_} // "")) { + if ("default" eq ($disabled{$feature} // "")) { if (exists $deprecated_disablables{$feature}) { warn "***** config $target enables deprecated feature $feature\n"; } elsif (!grep { $feature eq $_ } @disablables) { die "***** config $target enables unknown feature $feature\n"; } - delete $disabled{$_}; + delete $disabled{$feature}; } } +disable(); # Run a cascade now $target{CXXFLAGS}//=$target{CFLAGS} if $target{CXX}; $target{cxxflags}//=$target{cflags} if $target{CXX}; @@ -1168,6 +1146,22 @@ foreach (keys %user) { delete $config{$_} unless defined $config{$_}; } +# Finish up %config by appending things the user gave us on the command line +# apart from "make variables" +foreach (keys %useradd) { + # The must all be lists, so we assert that here + die "internal error: \$useradd{$_} isn't an ARRAY\n" + unless ref $useradd{$_} eq 'ARRAY'; + + if (defined $config{$_}) { + push @{$config{$_}}, @{$useradd{$_}}; + } else { + $config{$_} = [ @{$useradd{$_}} ]; + } +} +# At this point, we can forget everything about %user and %useradd, +# because it's now all been merged into the corresponding $config entry + # Allow overriding the build file name $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; @@ -1175,7 +1169,7 @@ my %disabled_info = (); # For configdata.pm foreach my $what (sort keys %disabled) { $config{options} .= " no-$what"; - if (!grep { $what eq $_ } ( 'dso', 'threads', 'shared', 'pic', + if (!grep { $what eq $_ } ( 'buildtest-c++', 'threads', 'shared', 'pic', 'dynamic-engine', 'makedepend', 'zlib-dynamic', 'zlib', 'sse2' )) { (my $WHAT = uc $what) =~ s|-|_|g; @@ -1237,21 +1231,20 @@ foreach my $checker (($builder_platform."-".$target{build_file}."-checker.pm", push @{$config{defines}}, "NDEBUG" if $config{build_type} eq "release"; if ($target =~ /^mingw/ && `$config{CC} --target-help 2>&1` =~ m/-mno-cygwin/m) - { - push @{$config{cflags}}, "-mno-cygwin"; - push @{$config{cxxflags}}, "-mno-cygwin" if $config{CXX}; - push @{$config{shared_ldflag}}, "-mno-cygwin"; - } + { + push @{$config{cflags}}, "-mno-cygwin"; + push @{$config{cxxflags}}, "-mno-cygwin" if $config{CXX}; + push @{$config{shared_ldflag}}, "-mno-cygwin"; + } if ($target =~ /linux.*-mips/ && !$disabled{asm} - && !grep { $_ !~ /-m(ips|arch=)/ } (@{$user{CFLAGS}}, - @{$useradd{CFLAGS}})) { - # minimally required architecture flags for assembly modules - my $value; - $value = '-mips2' if ($target =~ /mips32/); - $value = '-mips3' if ($target =~ /mips64/); - unshift @{$config{cflags}}, $value; - unshift @{$config{cxxflags}}, $value if $config{CXX}; + && !grep { $_ !~ /-m(ips|arch=)/ } (@{$config{CFLAGS}})) { + # minimally required architecture flags for assembly modules + my $value; + $value = '-mips2' if ($target =~ /mips32/); + $value = '-mips3' if ($target =~ /mips64/); + unshift @{$config{cflags}}, $value; + unshift @{$config{cxxflags}}, $value if $config{CXX}; } # If threads aren't disabled, check how possible they are @@ -1259,7 +1252,7 @@ unless ($disabled{threads}) { if ($auto_threads) { # Enabled by default, disable it forcibly if unavailable if ($target{thread_scheme} eq "(unknown)") { - $disabled{threads} = "unavailable"; + disable("unavailable", 'threads'); } } else { # The user chose to enable threads explicitly, let's see @@ -1270,8 +1263,7 @@ unless ($disabled{threads}) { # system-dependent compiler options that are necessary. We # can't truly check that the given options are correct, but # we expect the user to know what [s]He is doing. - if (!@{$user{CFLAGS}} && !@{$useradd{CFLAGS}} - && !@{$user{CPPDEFINES}} && !@{$useradd{CPPDEFINES}}) { + if (!@{$config{CFLAGS}} && !@{$config{CPPDEFINES}}) { die "You asked for multi-threading support, but didn't\n" ,"provide any system-specific compiler options\n"; } @@ -1292,13 +1284,11 @@ if (defined($disabled{"deprecated"})) { my $no_shared_warn=0; if ($target{shared_target} eq "") - { - $no_shared_warn = 1 - if (!$disabled{shared} || !$disabled{"dynamic-engine"}); - $disabled{shared} = "no-shared-target"; - $disabled{pic} = $disabled{shared} = $disabled{"dynamic-engine"} = - "no-shared-target"; - } + { + $no_shared_warn = 1 + if (!$disabled{shared} || !$disabled{"dynamic-engine"}); + disable('no-shared-target', 'pic'); + } if ($disabled{"dynamic-engine"}) { push @{$config{openssl_other_defines}}, "OPENSSL_NO_DYNAMIC_ENGINE"; @@ -1310,20 +1300,16 @@ if ($disabled{"dynamic-engine"}) { unless ($disabled{asan}) { push @{$config{cflags}}, "-fsanitize=address"; - push @{$config{cxxflags}}, "-fsanitize=address" if $config{CXX}; } unless ($disabled{ubsan}) { # -DPEDANTIC or -fnosanitize=alignment may also be required on some # platforms. push @{$config{cflags}}, "-fsanitize=undefined", "-fno-sanitize-recover=all"; - push @{$config{cxxflags}}, "-fsanitize=undefined", "-fno-sanitize-recover=all" - if $config{CXX}; } unless ($disabled{msan}) { push @{$config{cflags}}, "-fsanitize=memory"; - push @{$config{cxxflags}}, "-fsanitize=memory" if $config{CXX}; } unless ($disabled{"fuzz-libfuzzer"} && $disabled{"fuzz-afl"} @@ -1337,25 +1323,25 @@ unless ($disabled{"fuzz-libfuzzer"} && $disabled{"fuzz-afl"} # This saves the build files from having to check if ($disabled{pic}) - { - foreach (qw(shared_cflag shared_cxxflag shared_cppflag - shared_defines shared_includes shared_ldflag - module_cflags module_cxxflags module_cppflags - module_defines module_includes module_lflags)) - { - delete $config{$_}; - $target{$_} = ""; - } - } + { + foreach (qw(shared_cflag shared_cxxflag shared_cppflag + shared_defines shared_includes shared_ldflag + module_cflags module_cxxflags module_cppflags + module_defines module_includes module_lflags)) + { + delete $config{$_}; + $target{$_} = ""; + } + } else - { - push @{$config{lib_defines}}, "OPENSSL_PIC"; - } + { + push @{$config{lib_defines}}, "OPENSSL_PIC"; + } if ($target{sys_id} ne "") - { - push @{$config{openssl_sys_defines}}, "OPENSSL_SYS_$target{sys_id}"; - } + { + push @{$config{openssl_sys_defines}}, "OPENSSL_SYS_$target{sys_id}"; + } unless ($disabled{asm}) { $target{cpuid_asm_src}=$table{DEFAULTS}->{cpuid_asm_src} if ($config{processor} eq "386"); @@ -1370,61 +1356,65 @@ unless ($disabled{asm}) { push @{$config{lib_defines}}, "OPENSSL_BN_ASM_MONT" if ($target{bn_asm_src} =~ /-mont/); push @{$config{lib_defines}}, "OPENSSL_BN_ASM_MONT5" if ($target{bn_asm_src} =~ /-mont5/); push @{$config{lib_defines}}, "OPENSSL_BN_ASM_GF2m" if ($target{bn_asm_src} =~ /-gf2m/); + push @{$config{lib_defines}}, "BN_DIV3W" if ($target{bn_asm_src} =~ /-div3w/); if ($target{sha1_asm_src}) { - push @{$config{lib_defines}}, "SHA1_ASM" if ($target{sha1_asm_src} =~ /sx86/ || $target{sha1_asm_src} =~ /sha1/); - push @{$config{lib_defines}}, "SHA256_ASM" if ($target{sha1_asm_src} =~ /sha256/); - push @{$config{lib_defines}}, "SHA512_ASM" if ($target{sha1_asm_src} =~ /sha512/); + push @{$config{lib_defines}}, "SHA1_ASM" if ($target{sha1_asm_src} =~ /sx86/ || $target{sha1_asm_src} =~ /sha1/); + push @{$config{lib_defines}}, "SHA256_ASM" if ($target{sha1_asm_src} =~ /sha256/); + push @{$config{lib_defines}}, "SHA512_ASM" if ($target{sha1_asm_src} =~ /sha512/); } if ($target{keccak1600_asm_src} ne $table{DEFAULTS}->{keccak1600_asm_src}) { - push @{$config{lib_defines}}, "KECCAK1600_ASM"; + push @{$config{lib_defines}}, "KECCAK1600_ASM"; } if ($target{rc4_asm_src} ne $table{DEFAULTS}->{rc4_asm_src}) { - push @{$config{lib_defines}}, "RC4_ASM"; + push @{$config{lib_defines}}, "RC4_ASM"; } if ($target{md5_asm_src}) { - push @{$config{lib_defines}}, "MD5_ASM"; + push @{$config{lib_defines}}, "MD5_ASM"; } $target{cast_asm_src}=$table{DEFAULTS}->{cast_asm_src} unless $disabled{pic}; # CAST assembler is not PIC if ($target{rmd160_asm_src}) { - push @{$config{lib_defines}}, "RMD160_ASM"; + push @{$config{lib_defines}}, "RMD160_ASM"; } if ($target{aes_asm_src}) { - push @{$config{lib_defines}}, "AES_ASM" if ($target{aes_asm_src} =~ m/\baes-/);; - # aes-ctr.fake is not a real file, only indication that assembler - # module implements AES_ctr32_encrypt... - push @{$config{lib_defines}}, "AES_CTR_ASM" if ($target{aes_asm_src} =~ s/\s*aes-ctr\.fake//); - # aes-xts.fake indicates presence of AES_xts_[en|de]crypt... - push @{$config{lib_defines}}, "AES_XTS_ASM" if ($target{aes_asm_src} =~ s/\s*aes-xts\.fake//); - $target{aes_asm_src} =~ s/\s*(vpaes|aesni)-x86\.s//g if ($disabled{sse2}); - push @{$config{lib_defines}}, "VPAES_ASM" if ($target{aes_asm_src} =~ m/vpaes/); - push @{$config{lib_defines}}, "BSAES_ASM" if ($target{aes_asm_src} =~ m/bsaes/); + push @{$config{lib_defines}}, "AES_ASM" if ($target{aes_asm_src} =~ m/\baes-/);; + # aes-ctr.fake is not a real file, only indication that assembler + # module implements AES_ctr32_encrypt... + push @{$config{lib_defines}}, "AES_CTR_ASM" if ($target{aes_asm_src} =~ s/\s*aes-ctr\.fake//); + # aes-xts.fake indicates presence of AES_xts_[en|de]crypt... + push @{$config{lib_defines}}, "AES_XTS_ASM" if ($target{aes_asm_src} =~ s/\s*aes-xts\.fake//); + $target{aes_asm_src} =~ s/\s*(vpaes|aesni)-x86\.s//g if ($disabled{sse2}); + push @{$config{lib_defines}}, "VPAES_ASM" if ($target{aes_asm_src} =~ m/vpaes/); + push @{$config{lib_defines}}, "BSAES_ASM" if ($target{aes_asm_src} =~ m/bsaes/); } if ($target{wp_asm_src} =~ /mmx/) { if ($config{processor} eq "386") { - $target{wp_asm_src}=$table{DEFAULTS}->{wp_asm_src}; - } elsif (!$disabled{"whirlpool"}) { - push @{$config{lib_defines}}, "WHIRLPOOL_ASM"; - } + $target{wp_asm_src}=$table{DEFAULTS}->{wp_asm_src}; + } elsif (!$disabled{"whirlpool"}) { + push @{$config{lib_defines}}, "WHIRLPOOL_ASM"; + } } if ($target{modes_asm_src} =~ /ghash-/) { - push @{$config{lib_defines}}, "GHASH_ASM"; + push @{$config{lib_defines}}, "GHASH_ASM"; } if ($target{ec_asm_src} =~ /ecp_nistz256/) { - push @{$config{lib_defines}}, "ECP_NISTZ256_ASM"; + push @{$config{lib_defines}}, "ECP_NISTZ256_ASM"; } if ($target{ec_asm_src} =~ /x25519/) { - push @{$config{lib_defines}}, "X25519_ASM"; + push @{$config{lib_defines}}, "X25519_ASM"; } if ($target{padlock_asm_src} ne $table{DEFAULTS}->{padlock_asm_src}) { - push @{$config{lib_defines}}, "PADLOCK_ASM"; + push @{$config{dso_defines}}, "PADLOCK_ASM"; } if ($target{poly1305_asm_src} ne "") { - push @{$config{lib_defines}}, "POLY1305_ASM"; + push @{$config{lib_defines}}, "POLY1305_ASM"; } } -my %predefined = compiler_predefined($config{CROSS_COMPILE}.$config{CC}); +my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC}); +my %predefined_CXX = $config{CXX} + ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX}) + : (); # Check for makedepend capabilities. if (!$disabled{makedepend}) { @@ -1432,8 +1422,8 @@ if (!$disabled{makedepend}) { # For VC- and vms- targets, there's nothing more to do here. The # functionality is hard coded in the corresponding build files for # cl (Windows) and CC/DECC (VMS). - } elsif (($predefined{__GNUC__} // -1) >= 3 - && !($predefined{__APPLE_CC__} && !$predefined{__clang__})) { + } elsif (($predefined_C{__GNUC__} // -1) >= 3 + && !($predefined_C{__APPLE_CC__} && !$predefined_C{__clang__})) { # We know that GNU C version 3 and up as well as all clang # versions support dependency generation, but Xcode did not # handle $cc -M before clang support (but claims __GNUC__ = 3) @@ -1442,13 +1432,13 @@ if (!$disabled{makedepend}) { # In all other cases, we look for 'makedepend', and disable the # capability if not found. $config{makedepprog} = which('makedepend'); - $disabled{makedepend} = "unavailable" unless $config{makedepprog}; + disable('unavailable', 'makedepend') unless $config{makedepprog}; } } -if (!$disabled{asm} && !$predefined{__MACH__} && $^O ne 'VMS') { +if (!$disabled{asm} && !$predefined_C{__MACH__} && $^O ne 'VMS') { # probe for -Wa,--noexecstack option... - if ($predefined{__clang__}) { + if ($predefined_C{__clang__}) { # clang has builtin assembler, which doesn't recognize --help, # but it apparently recognizes the option in question on all # supported platforms even when it's meaningless. In other words @@ -1470,24 +1460,24 @@ if (!$disabled{asm} && !$predefined{__MACH__} && $^O ne 'VMS') { # Deal with bn_ops ################################################### -$config{bn_ll} =0; -$config{export_var_as_fn} =0; +$config{bn_ll} =0; +$config{export_var_as_fn} =0; my $def_int="unsigned int"; -$config{rc4_int} =$def_int; +$config{rc4_int} =$def_int; ($config{b64l},$config{b64},$config{b32})=(0,0,1); my $count = 0; foreach (sort split(/\s+/,$target{bn_ops})) { $count++ if /SIXTY_FOUR_BIT|SIXTY_FOUR_BIT_LONG|THIRTY_TWO_BIT/; $config{export_var_as_fn}=1 if $_ eq 'EXPORT_VAR_AS_FN'; - $config{bn_ll}=1 if $_ eq 'BN_LLONG'; - $config{rc4_int}="unsigned char" if $_ eq 'RC4_CHAR'; + $config{bn_ll}=1 if $_ eq 'BN_LLONG'; + $config{rc4_int}="unsigned char" if $_ eq 'RC4_CHAR'; ($config{b64l},$config{b64},$config{b32}) - =(0,1,0) if $_ eq 'SIXTY_FOUR_BIT'; + =(0,1,0) if $_ eq 'SIXTY_FOUR_BIT'; ($config{b64l},$config{b64},$config{b32}) - =(1,0,0) if $_ eq 'SIXTY_FOUR_BIT_LONG'; + =(1,0,0) if $_ eq 'SIXTY_FOUR_BIT_LONG'; ($config{b64l},$config{b64},$config{b32}) - =(0,0,1) if $_ eq 'THIRTY_TWO_BIT'; + =(0,0,1) if $_ eq 'THIRTY_TWO_BIT'; } die "Exactly one of SIXTY_FOUR_BIT|SIXTY_FOUR_BIT_LONG|THIRTY_TWO_BIT can be set in bn_ops\n" if $count > 1; @@ -1508,49 +1498,40 @@ if (defined($config{api})) { push @{$config{defines}}, $apiflag; } +my @strict_warnings_collection=(); if ($strict_warnings) - { - my $wopt; - my $gccver = $predefined{__GNUC__} // -1; + { + my $wopt; + my $gccver = $predefined_C{__GNUC__} // -1; - die "ERROR --strict-warnings requires gcc[>=4] or gcc-alike" + warn "WARNING --strict-warnings requires gcc[>=4] or gcc-alike" unless $gccver >= 4; - foreach $wopt (split /\s+/, $gcc_devteam_warn) - { - push @{$config{cflags}}, $wopt - unless grep { $_ eq $wopt } @{$config{cflags}}; - push @{$config{cxxflags}}, $wopt - if ($config{CXX} - && !grep { $_ eq $wopt } @{$config{cxxflags}}); - } - if (defined($predefined{__clang__})) - { - foreach $wopt (split /\s+/, $clang_devteam_warn) - { - push @{$config{cflags}}, $wopt - unless grep { $_ eq $wopt } @{$config{cflags}}; - push @{$config{cxxflags}}, $wopt - if ($config{CXX} - && !grep { $_ eq $wopt } @{$config{cxxflags}}); - } - } - } + push @strict_warnings_collection, @gcc_devteam_warn; + push @strict_warnings_collection, @clang_devteam_warn + if (defined($predefined_C{__clang__})); + } + +if (grep { $_ eq '-static' } @{$config{LDFLAGS}}) { + disable('static', 'pic', 'threads'); +} + +$config{CFLAGS} = [ map { $_ eq '--ossl-strict-warnings' + ? @strict_warnings_collection + : ( $_ ) } + @{$config{CFLAGS}} ]; unless ($disabled{"crypto-mdebug-backtrace"}) - { - foreach my $wopt (split /\s+/, $memleak_devteam_backtrace) - { - push @{$config{cflags}}, $wopt - unless grep { $_ eq $wopt } @{$config{cflags}}; - push @{$config{cxxflags}}, $wopt - if ($config{CXX} - && !grep { $_ eq $wopt } @{$config{cxxflags}}); - } - if ($target =~ /^BSD-/) - { - push @{$config{ex_libs}}, "-lexecinfo"; - } - } + { + foreach my $wopt (split /\s+/, $memleak_devteam_backtrace) + { + push @{$config{cflags}}, $wopt + unless grep { $_ eq $wopt } @{$config{cflags}}; + } + if ($target =~ /^BSD-/) + { + push @{$config{ex_libs}}, "-lexecinfo"; + } + } unless ($disabled{afalgeng}) { $config{afalgeng}=""; @@ -1562,35 +1543,62 @@ unless ($disabled{afalgeng}) { ($mi2) = $mi2 =~ /(\d+)/; my $ver = $ma*10000 + $mi1*100 + $mi2; if ($ver < $minver) { - $disabled{afalgeng} = "too-old-kernel"; + disable('too-old-kernel', 'afalgeng'); } else { push @{$config{engdirs}}, "afalg"; } } else { - $disabled{afalgeng} = "cross-compiling"; + disable('cross-compiling', 'afalgeng'); } } else { - $disabled{afalgeng} = "not-linux"; + disable('not-linux', 'afalgeng'); } } push @{$config{openssl_other_defines}}, "OPENSSL_NO_AFALGENG" if ($disabled{afalgeng}); -# Finish up %config by appending things the user gave us on the command line -# apart from "make variables" -foreach (keys %useradd) { - # The must all be lists, so we assert that here - die "internal error: \$useradd{$_} isn't an ARRAY\n" - unless ref $useradd{$_} eq 'ARRAY'; +# Get the extra flags used when building shared libraries and modules. We +# do this late because some of them depend on %disabled. - if (defined $config{$_}) { - push @{$config{$_}}, @{$useradd{$_}}; - } else { - $config{$_} = [ @{$useradd{$_}} ]; +# Make the flags to build DSOs the same as for shared libraries unless they +# are already defined +$target{module_cflags} = $target{shared_cflag} unless defined $target{module_cflags}; +$target{module_cxxflags} = $target{shared_cxxflag} unless defined $target{module_cxxflags}; +$target{module_ldflags} = $target{shared_ldflag} unless defined $target{module_ldflags}; +{ + my $shared_info_pl = + catfile(dirname($0), "Configurations", "shared-info.pl"); + my %shared_info = read_eval_file($shared_info_pl); + push @{$target{_conf_fname_int}}, $shared_info_pl; + my $si = $target{shared_target}; + while (ref $si ne "HASH") { + last if ! defined $si; + if (ref $si eq "CODE") { + $si = $si->(); + } else { + $si = $shared_info{$si}; + } + } + + # Some of the 'shared_target' values don't have any entries in + # %shared_info. That's perfectly fine, AS LONG AS the build file + # template knows how to handle this. That is currently the case for + # Windows and VMS. + if (defined $si) { + # Just as above, copy certain shared_* attributes to the corresponding + # module_ attribute unless the latter is already defined + $si->{module_cflags} = $si->{shared_cflag} unless defined $si->{module_cflags}; + $si->{module_cxxflags} = $si->{shared_cxxflag} unless defined $si->{module_cxxflags}; + $si->{module_ldflags} = $si->{shared_ldflag} unless defined $si->{module_ldflags}; + foreach (sort keys %$si) { + $target{$_} = defined $target{$_} + ? add($si->{$_})->($target{$_}) + : $si->{$_}; + } } } -# ALL MODIFICATIONS TO %config and %target MUST BE DONE FROM HERE ON +# ALL MODIFICATIONS TO %disabled, %config and %target MUST BE DONE FROM HERE ON # If we use the unified build, collect information from build.info files my %unified_info = (); @@ -1635,38 +1643,38 @@ if ($builder eq "unified") { # Store the name of the template file we will build the build file from # in %config. This may be useful for the build file itself. my @build_file_template_names = - ( $builder_platform."-".$target{build_file}.".tmpl", - $target{build_file}.".tmpl" ); + ( $builder_platform."-".$target{build_file}.".tmpl", + $target{build_file}.".tmpl" ); my @build_file_templates = (); # First, look in the user provided directory, if given if (defined env($local_config_envname)) { - @build_file_templates = - map { - if ($^O eq 'VMS') { - # VMS environment variables are logical names, - # which can be used as is - $local_config_envname . ':' . $_; - } else { - catfile(env($local_config_envname), $_); - } - } - @build_file_template_names; + @build_file_templates = + map { + if ($^O eq 'VMS') { + # VMS environment variables are logical names, + # which can be used as is + $local_config_envname . ':' . $_; + } else { + catfile(env($local_config_envname), $_); + } + } + @build_file_template_names; } # Then, look in our standard directory push @build_file_templates, - ( map { cleanfile($srcdir, catfile("Configurations", $_), $blddir) } - @build_file_template_names ); + ( map { cleanfile($srcdir, catfile("Configurations", $_), $blddir) } + @build_file_template_names ); my $build_file_template; for $_ (@build_file_templates) { - $build_file_template = $_; + $build_file_template = $_; last if -f $build_file_template; $build_file_template = undef; } if (!defined $build_file_template) { - die "*** Couldn't find any of:\n", join("\n", @build_file_templates), "\n"; + die "*** Couldn't find any of:\n", join("\n", @build_file_templates), "\n"; } $config{build_file_templates} = [ cleanfile($srcdir, catfile("Configurations", "common0.tmpl"), @@ -2322,11 +2330,11 @@ EOF print OUT "our %config = (\n"; foreach (sort keys %config) { if (ref($config{$_}) eq "ARRAY") { - print OUT " ", $_, " => [ ", join(", ", - map { quotify("perl", $_) } - @{$config{$_}}), " ],\n"; + print OUT " ", $_, " => [ ", join(", ", + map { quotify("perl", $_) } + @{$config{$_}}), " ],\n"; } elsif (ref($config{$_}) eq "HASH") { - print OUT " ", $_, " => {"; + print OUT " ", $_, " => {"; if (scalar keys %{$config{$_}} > 0) { print OUT "\n"; foreach my $key (sort keys %{$config{$_}}) { @@ -2342,7 +2350,7 @@ foreach (sort keys %config) { } print OUT "},\n"; } else { - print OUT " ", $_, " => ", quotify("perl", $config{$_}), ",\n" + print OUT " ", $_, " => ", quotify("perl", $config{$_}), ",\n" } } print OUT <<"EOF"; @@ -2352,11 +2360,11 @@ EOF print OUT "our %target = (\n"; foreach (sort keys %target) { if (ref($target{$_}) eq "ARRAY") { - print OUT " ", $_, " => [ ", join(", ", - map { quotify("perl", $_) } - @{$target{$_}}), " ],\n"; + print OUT " ", $_, " => [ ", join(", ", + map { quotify("perl", $_) } + @{$target{$_}}), " ],\n"; } else { - print OUT " ", $_, " => ", quotify("perl", $target{$_}), ",\n" + print OUT " ", $_, " => ", quotify("perl", $target{$_}), ",\n" } } print OUT <<"EOF"; @@ -2389,11 +2397,11 @@ EOF print OUT "our %withargs = (\n"; foreach (sort keys %withargs) { if (ref($withargs{$_}) eq "ARRAY") { - print OUT " ", $_, " => [ ", join(", ", - map { quotify("perl", $_) } - @{$withargs{$_}}), " ],\n"; + print OUT " ", $_, " => [ ", join(", ", + map { quotify("perl", $_) } + @{$withargs{$_}}), " ],\n"; } else { - print OUT " ", $_, " => ", quotify("perl", $withargs{$_}), ",\n" + print OUT " ", $_, " => ", quotify("perl", $withargs{$_}), ",\n" } } print OUT <<"EOF"; @@ -2620,9 +2628,9 @@ _____ if ($reconf) { if ($verbose) { print 'Reconfiguring with: ', join(' ',@{$config{perlargv}}), "\n"; - foreach (sort keys %{$config{perlenv}}) { - print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n"; - } + foreach (sort keys %{$config{perlenv}}) { + print ' ',$_,' = ',($config{perlenv}->{$_} || ""),"\n"; + } } chdir $here; @@ -2817,7 +2825,7 @@ _____ sub asm { my @x = @_; sub { - $disabled{asm} ? () : @x; + $disabled{asm} ? () : @x; } } @@ -2883,29 +2891,29 @@ sub _add { my $found_array = !defined($separator); my @values = - map { - my $res = $_; - while (ref($res) eq "CODE") { - $res = $res->(); - } - if (defined($res)) { - if (ref($res) eq "ARRAY") { - $found_array = 1; - @$res; - } else { - $res; - } - } else { - (); - } + map { + my $res = $_; + while (ref($res) eq "CODE") { + $res = $res->(); + } + if (defined($res)) { + if (ref($res) eq "ARRAY") { + $found_array = 1; + @$res; + } else { + $res; + } + } else { + (); + } } (@_); $add_called = 1; if ($found_array) { - [ @values ]; + [ @values ]; } else { - join($separator, grep { defined($_) && $_ ne "" } @values); + join($separator, grep { defined($_) && $_ ne "" } @values); } } sub add_before { @@ -2955,10 +2963,10 @@ sub read_config { my %targets; { - # Protect certain tables from tampering - local %table = (); + # Protect certain tables from tampering + local %table = (); - %targets = read_eval_file($fname); + %targets = read_eval_file($fname); } my %preexisting = (); foreach (sort keys %targets) { @@ -2974,14 +2982,14 @@ EOF # For each target, check that it's configured with a hash table. foreach (keys %targets) { - if (ref($targets{$_}) ne "HASH") { - if (ref($targets{$_}) eq "") { - warn "Deprecated target configuration for $_, ignoring...\n"; - } else { - warn "Misconfigured target configuration for $_ (should be a hash table), ignoring...\n"; - } - delete $targets{$_}; - } else { + if (ref($targets{$_}) ne "HASH") { + if (ref($targets{$_}) eq "") { + warn "Deprecated target configuration for $_, ignoring...\n"; + } else { + warn "Misconfigured target configuration for $_ (should be a hash table), ignoring...\n"; + } + delete $targets{$_}; + } else { $targets{$_}->{_conf_fname_int} = add([ $fname ]); } } @@ -3000,13 +3008,13 @@ sub resolve_config { # my $extra_checks = defined($ENV{CONFIGURE_EXTRA_CHECKS}); if (grep { $_ eq $target } @breadcrumbs) { - die "inherit_from loop! target backtrace:\n " - ,$target,"\n ",join("\n ", @breadcrumbs),"\n"; + die "inherit_from loop! target backtrace:\n " + ,$target,"\n ",join("\n ", @breadcrumbs),"\n"; } if (!defined($table{$target})) { - warn "Warning! target $target doesn't exist!\n"; - return (); + warn "Warning! target $target doesn't exist!\n"; + return (); } # Recurse through all inheritances. They will be resolved on the # fly, so when this operation is done, they will all just be a @@ -3016,22 +3024,22 @@ sub resolve_config { # this stage is done. my %combined_inheritance = (); if ($table{$target}->{inherit_from}) { - my @inherit_from = - map { ref($_) eq "CODE" ? $_->() : $_ } @{$table{$target}->{inherit_from}}; - foreach (@inherit_from) { - my %inherited_config = resolve_config($_, $target, @breadcrumbs); - - # 'template' is a marker that's considered private to - # the config that had it. - delete $inherited_config{template}; - - foreach (keys %inherited_config) { - if (!$combined_inheritance{$_}) { - $combined_inheritance{$_} = []; - } - push @{$combined_inheritance{$_}}, $inherited_config{$_}; - } - } + my @inherit_from = + map { ref($_) eq "CODE" ? $_->() : $_ } @{$table{$target}->{inherit_from}}; + foreach (@inherit_from) { + my %inherited_config = resolve_config($_, $target, @breadcrumbs); + + # 'template' is a marker that's considered private to + # the config that had it. + delete $inherited_config{template}; + + foreach (keys %inherited_config) { + if (!$combined_inheritance{$_}) { + $combined_inheritance{$_} = []; + } + push @{$combined_inheritance{$_}}, $inherited_config{$_}; + } + } } # We won't need inherit_from in this target any more, since we've @@ -3052,14 +3060,14 @@ sub resolve_config { my $default_combiner = add(); my %all_keys = - map { $_ => 1 } (keys %combined_inheritance, - keys %{$table{$target}}); + map { $_ => 1 } (keys %combined_inheritance, + keys %{$table{$target}}); sub process_values { - my $object = shift; - my $inherited = shift; # Always a [ list ] - my $target = shift; - my $entry = shift; + my $object = shift; + my $inherited = shift; # Always a [ list ] + my $target = shift; + my $entry = shift; $add_called = 0; @@ -3084,16 +3092,16 @@ sub resolve_config { foreach (sort keys %all_keys) { my $previous = $combined_inheritance{$_}; - # Current target doesn't have a value for the current key? - # Assign it the default combiner, the rest of this loop body - # will handle it just like any other coderef. - if (!exists $table{$target}->{$_}) { - $table{$target}->{$_} = $default_combiner; - } + # Current target doesn't have a value for the current key? + # Assign it the default combiner, the rest of this loop body + # will handle it just like any other coderef. + if (!exists $table{$target}->{$_}) { + $table{$target}->{$_} = $default_combiner; + } - $table{$target}->{$_} = process_values($table{$target}->{$_}, - $combined_inheritance{$_}, - $target, $_); + $table{$target}->{$_} = process_values($table{$target}->{$_}, + $combined_inheritance{$_}, + $target, $_); unless(defined($table{$target}->{$_})) { delete $table{$target}->{$_}; } @@ -3108,39 +3116,39 @@ sub resolve_config { } sub usage - { - print STDERR $usage; - print STDERR "\npick os/compiler from:\n"; - my $j=0; - my $i; + { + print STDERR $usage; + print STDERR "\npick os/compiler from:\n"; + my $j=0; + my $i; my $k=0; - foreach $i (sort keys %table) - { - next if $table{$i}->{template}; - next if $i =~ /^debug/; - $k += length($i) + 1; - if ($k > 78) - { - print STDERR "\n"; - $k=length($i); - } - print STDERR $i . " "; - } - foreach $i (sort keys %table) - { - next if $table{$i}->{template}; - next if $i !~ /^debug/; - $k += length($i) + 1; - if ($k > 78) - { - print STDERR "\n"; - $k=length($i); - } - print STDERR $i . " "; - } - print STDERR "\n\nNOTE: If in doubt, on Unix-ish systems use './config'.\n"; - exit(1); - } + foreach $i (sort keys %table) + { + next if $table{$i}->{template}; + next if $i =~ /^debug/; + $k += length($i) + 1; + if ($k > 78) + { + print STDERR "\n"; + $k=length($i); + } + print STDERR $i . " "; + } + foreach $i (sort keys %table) + { + next if $table{$i}->{template}; + next if $i !~ /^debug/; + $k += length($i) + 1; + if ($k > 78) + { + print STDERR "\n"; + $k=length($i); + } + print STDERR $i . " "; + } + print STDERR "\n\nNOTE: If in doubt, on Unix-ish systems use './config'.\n"; + exit(1); + } sub run_dofile { @@ -3234,69 +3242,69 @@ sub print_table_entry return if $target{template}; my @sequence = ( - "sys_id", - "cpp", - "cppflags", - "defines", - "includes", - "cc", - "cflags", - "unistd", - "ld", - "lflags", - "loutflag", - "ex_libs", - "bn_ops", - "apps_aux_src", - "cpuid_asm_src", - "uplink_aux_src", - "bn_asm_src", - "ec_asm_src", - "des_asm_src", - "aes_asm_src", - "bf_asm_src", - "md5_asm_src", - "cast_asm_src", - "sha1_asm_src", - "rc4_asm_src", - "rmd160_asm_src", - "rc5_asm_src", - "wp_asm_src", - "cmll_asm_src", - "modes_asm_src", - "padlock_asm_src", - "chacha_asm_src", - "poly1035_asm_src", - "thread_scheme", - "perlasm_scheme", - "dso_scheme", - "shared_target", - "shared_cflag", - "shared_defines", - "shared_ldflag", - "shared_rcflag", - "shared_extension", - "dso_extension", - "obj_extension", - "exe_extension", - "ranlib", - "ar", - "arflags", - "aroutflag", - "rc", - "rcflags", - "rcoutflag", - "mt", - "mtflags", - "mtinflag", - "mtoutflag", - "multilib", - "build_scheme", - ); + "sys_id", + "cpp", + "cppflags", + "defines", + "includes", + "cc", + "cflags", + "unistd", + "ld", + "lflags", + "loutflag", + "ex_libs", + "bn_ops", + "apps_aux_src", + "cpuid_asm_src", + "uplink_aux_src", + "bn_asm_src", + "ec_asm_src", + "des_asm_src", + "aes_asm_src", + "bf_asm_src", + "md5_asm_src", + "cast_asm_src", + "sha1_asm_src", + "rc4_asm_src", + "rmd160_asm_src", + "rc5_asm_src", + "wp_asm_src", + "cmll_asm_src", + "modes_asm_src", + "padlock_asm_src", + "chacha_asm_src", + "poly1035_asm_src", + "thread_scheme", + "perlasm_scheme", + "dso_scheme", + "shared_target", + "shared_cflag", + "shared_defines", + "shared_ldflag", + "shared_rcflag", + "shared_extension", + "dso_extension", + "obj_extension", + "exe_extension", + "ranlib", + "ar", + "arflags", + "aroutflag", + "rc", + "rcflags", + "rcoutflag", + "mt", + "mtflags", + "mtinflag", + "mtoutflag", + "multilib", + "build_scheme", + ); if ($type eq "TABLE") { - print "\n"; - print "*** $now_printing\n"; + print "\n"; + print "*** $now_printing\n"; foreach (@sequence) { if (ref($target{$_}) eq "ARRAY") { printf "\$%-12s = %s\n", $_, join(" ", @{$target{$_}}); @@ -3305,19 +3313,19 @@ sub print_table_entry } } } elsif ($type eq "HASH") { - my $largest = - length((sort { length($a) <=> length($b) } @sequence)[-1]); - print " '$now_printing' => {\n"; - foreach (@sequence) { - if ($target{$_}) { + my $largest = + length((sort { length($a) <=> length($b) } @sequence)[-1]); + print " '$now_printing' => {\n"; + foreach (@sequence) { + if ($target{$_}) { if (ref($target{$_}) eq "ARRAY") { print " '",$_,"'"," " x ($largest - length($_))," => [ ",join(", ", map { "'$_'" } @{$target{$_}})," ],\n"; } else { print " '",$_,"'"," " x ($largest - length($_))," => '",$target{$_},"',\n"; } - } - } - print " },\n"; + } + } + print " },\n"; } } @@ -3365,21 +3373,21 @@ sub absolutedir { sub quotify { my %processors = ( - perl => sub { my $x = shift; - $x =~ s/([\\\$\@"])/\\$1/g; - return '"'.$x.'"'; }, - maybeshell => sub { my $x = shift; - (my $y = $x) =~ s/([\\\"])/\\$1/g; - if ($x ne $y || $x =~ m|\s|) { - return '"'.$y.'"'; - } else { - return $x; - } - }, - ); + perl => sub { my $x = shift; + $x =~ s/([\\\$\@"])/\\$1/g; + return '"'.$x.'"'; }, + maybeshell => sub { my $x = shift; + (my $y = $x) =~ s/([\\\"])/\\$1/g; + if ($x ne $y || $x =~ m|\s|) { + return '"'.$y.'"'; + } else { + return $x; + } + }, + ); my $for = shift; my $processor = - defined($processors{$for}) ? $processors{$for} : sub { shift; }; + defined($processors{$for}) ? $processors{$for} : sub { shift; }; return map { $processor->($_); } @_; } @@ -3507,8 +3515,8 @@ sub tokenize { } if ($ENV{CONFIGURE_DEBUG_TOKENIZE}) { - print STDERR "DEBUG[tokenize]: Parsed '$debug_line' into:\n"; - print STDERR "DEBUG[tokenize]: ('", join("', '", @result), "')\n"; + print STDERR "DEBUG[tokenize]: Parsed '$debug_line' into:\n"; + print STDERR "DEBUG[tokenize]: ('", join("', '", @result), "')\n"; } return @result; } diff --git a/INSTALL b/INSTALL index 4ce6651b6b3422a549bbb0939f6e1725100fa4c6..0b6a3fd1ec399a62838f63defdd384d26037a395 100644 --- a/INSTALL +++ b/INSTALL @@ -287,6 +287,19 @@ Typically OpenSSL will automatically load a system config file which configures default ssl options. + enable-buildtest-c++ + While testing, generate C++ buildtest files that + simply check that the public OpenSSL header files + are usable standalone with C++. + + Enabling this option demands extra care. For any + compiler flag given directly as configuration + option, you must ensure that it's valid for both + the C and the C++ compiler. If not, the C++ build + test will most likely break. As an alternative, + you can use the language specific variables, CFLAGS + and CXXFLAGS. + no-capieng Don't build the CAPI engine. This option will be forced if on a platform that does not support CAPI. @@ -326,8 +339,10 @@ Don't build support for datagram based BIOs. Selecting this option will also force the disabling of DTLS. - no-dso - Don't build support for loading Dynamic Shared Objects. + enable-devcryptoeng + Build the /dev/crypto engine. It is automatically selected + on BSD implementations, in which case it can be disabled with + no-devcryptoeng. no-dynamic-engine Don't build the dynamically loaded engines. This only has an @@ -402,6 +417,24 @@ no-pic Don't build with support for Position Independent Code. + no-pinshared By default OpenSSL will attempt to stay in memory until the + process exits. This is so that libcrypto and libssl can be + properly cleaned up automatically via an "atexit()" handler. + The handler is registered by libcrypto and cleans up both + libraries. On some platforms the atexit() handler will run on + unload of libcrypto (if it has been dynamically loaded) + rather than at process exit. This option can be used to stop + OpenSSL from attempting to stay in memory until the process + exits. This could lead to crashes if either libcrypto or + libssl have already been unloaded at the point + that the atexit handler is invoked, e.g. on a platform which + calls atexit() on unload of the library, and libssl is + unloaded before libcrypto then a crash is likely to happen. + Applications can suppress running of the atexit() handler at + run time by using the OPENSSL_INIT_NO_ATEXIT option to + OPENSSL_init_crypto(). See the man page for it for further + details. + no-posix-io Don't use POSIX IO capabilities. @@ -642,6 +675,11 @@ CC=gcc CROSS_COMPILE=x86_64-w64-mingw32- \ ./config -DCOOKIE + If CC is set, it is advisable to also set CXX to ensure + both C and C++ compilers are in the same "family". This + becomes relevant with 'enable-external-tests' and + 'enable-buildtest-c++'. + reconf reconfigure Reconfigure from earlier data. This fetches the previous @@ -941,10 +979,10 @@ * COMPILING existing applications - OpenSSL 1.1.0 hides a number of structures that were previously - open. This includes all internal libssl structures and a number - of EVP types. Accessor functions have been added to allow - controlled access to the structures' data. + Starting with version 1.1.0, OpenSSL hides a number of structures + that were previously open. This includes all internal libssl + structures and a number of EVP types. Accessor functions have + been added to allow controlled access to the structures' data. This means that some software needs to be rewritten to adapt to the new ways of doing things. This often amounts to allocating @@ -1047,7 +1085,7 @@ depend Rebuild the dependencies in the Makefiles. This is a legacy - option that no longer needs to be used in OpenSSL 1.1.0. + option that no longer needs to be used since OpenSSL 1.1.0. install Install all OpenSSL components. diff --git a/LICENSE b/LICENSE index e953f590cb76e470b0e0dc1c8d6aa0b1000cc664..9601ab43575f9719ca6d2731580ec31ca5dfb0e7 100644 --- a/LICENSE +++ b/LICENSE @@ -10,14 +10,14 @@ --------------- /* ==================================================================== - * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. + * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -72,21 +72,21 @@ * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. - * + * * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to. The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code. The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * + * * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -101,10 +101,10 @@ * Eric Young (eay@cryptsoft.com)" * The word 'cryptographic' can be left out if the rouines from the library * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from + * 4. If you include any Windows specific code (or a derivative thereof) from * the apps directory (application code) you must include an acknowledgement: * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * + * * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -116,7 +116,7 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * + * * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence diff --git a/NEWS b/NEWS index b95e93027f830d0b5c23f9815037b96aec6062f9..0e38f69dbbaad800617d7ac80977aba0b99447fd 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,17 @@ This file gives a brief overview of the major changes between each OpenSSL release. For more details please read the CHANGES file. + Major changes between OpenSSL 1.1.1b and OpenSSL 1.1.1c [28 May 2019] + + o Prevent over long nonces in ChaCha20-Poly1305 (CVE-2019-1543) + + Major changes between OpenSSL 1.1.1a and OpenSSL 1.1.1b [26 Feb 2019] + + o Change the info callback signals for the start and end of a post-handshake + message exchange in TLSv1.3. + o Fix a bug in DTLS over SCTP. This breaks interoperability with older versions + of OpenSSL like OpenSSL 1.1.0 and OpenSSL 1.0.2. + Major changes between OpenSSL 1.1.1 and OpenSSL 1.1.1a [20 Nov 2018] o Timing vulnerability in DSA signature generation (CVE-2018-0734) diff --git a/NOTES.ANDROID b/NOTES.ANDROID index bbbd8e4db9218c42e5275aecce62b24fbfb73757..86459778fae1a944dc16f308dbe362d39cf406f6 100644 --- a/NOTES.ANDROID +++ b/NOTES.ANDROID @@ -23,22 +23,22 @@ platform. Though you still need to know the prefix to extend your PATH, in order to invoke $(CROSS_COMPILE)gcc and company. (Configure will fail and give you a hint if you get it wrong.) Apart from PATH adjustment - you need to set ANDROID_NDK environment to point at NDK directory + you need to set ANDROID_NDK_HOME environment to point at NDK directory as /some/where/android-ndk-<ver>. Both variables are significant at both configuration and compilation times. NDK customarily supports multiple - Android API levels, e.g. android-14, android-21, etc. By default latest + Android API levels, e.g. android-14, android-21, etc. By default latest one available is chosen. If you need to target older platform, pass additional -D__ANDROID_API__=N to Configure. N is numeric value of the target platform version. For example, to compile for ICS on ARM with NDK 10d: - export ANDROID_NDK=/some/where/android-ndk-10d - PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH + export ANDROID_NDK_HOME=/some/where/android-ndk-10d + PATH=$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH ./Configure android-arm -D__ANDROID_API__=14 make Caveat lector! Earlier OpenSSL versions relied on additional CROSS_SYSROOT - variable set to $ANDROID_NDK/platforms/android-<api>/arch-<arch> to + variable set to $ANDROID_NDK_HOME/platforms/android-<api>/arch-<arch> to appoint headers-n-libraries' location. It's still recognized in order to facilitate migration from older projects. However, since API level appears in CROSS_SYSROOT value, passing -D__ANDROID_API__=N can be in @@ -53,9 +53,9 @@ Another option is to create so called "standalone toolchain" tailored for single specific platform including Android API level, and assign its - location to ANDROID_NDK. In such case you have to pass matching target - name to Configure and shouldn't use -D__ANDROID_API__=N. PATH adjusment - becomes simpler, $ANDROID_NDK/bin:$PATH suffices. + location to ANDROID_NDK_HOME. In such case you have to pass matching + target name to Configure and shouldn't use -D__ANDROID_API__=N. PATH + adjustment becomes simpler, $ANDROID_NDK_HOME/bin:$PATH suffices. Running tests (on Linux) ------------------------ diff --git a/NOTES.DJGPP b/NOTES.DJGPP index bbe63dc15438960a4f1e8bef7ad4db2621f53190..d43d4e86de4ea130b854adfd509549ab1f40f42b 100644 --- a/NOTES.DJGPP +++ b/NOTES.DJGPP @@ -1,5 +1,5 @@ - + INSTALLATION ON THE DOS PLATFORM WITH DJGPP ------------------------------------------- @@ -29,7 +29,7 @@ running "./Configure" with appropriate arguments: ./Configure no-threads --prefix=/dev/env/DJDIR DJGPP - + And finally fire up "make". You may run out of DPMI selectors when running in a DOS box under Windows. If so, just close the BASH shell, go back to Windows, and restart BASH. Then run "make" again. diff --git a/NOTES.PERL b/NOTES.PERL index 46d585acca145fe3ce016e7ab033cd6158687494..42c6127724b4835f861c3ce9fb265c414682a3ac 100644 --- a/NOTES.PERL +++ b/NOTES.PERL @@ -78,7 +78,7 @@ --------------------------------- There are a number of ways to install a perl module. In all - descriptions below, Text::Template will server as an example. + descriptions below, Text::Template will serve as an example. 1. for Linux users, the easiest is to install with the use of your favorite package manager. Usually, all you need to do is search diff --git a/NOTES.VMS b/NOTES.VMS index 98def0689a77a286c2fd7943fdac6354346dbbc6..d6a336ff7c0585a1fa0d4633b85fddb3dcab34bb 100644 --- a/NOTES.VMS +++ b/NOTES.VMS @@ -42,7 +42,7 @@ for now is to rename the OpenSSL source directory, as follows (please adjust for the actual source directory name you have): - $ rename openssl-1^.1^.0.DIR openssl-1_1_0.DIR + $ rename openssl-1^.1^.0.DIR openssl-1_1_0.DIR About MMS and DCL diff --git a/README b/README index affb172e8ba8241dbaeae66eb0bc3d7416f81841..29757157c3841b232f7e73f28e0d99752861ae2e 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ - OpenSSL 1.1.1a 20 Nov 2018 + OpenSSL 1.1.1c 28 May 2019 - Copyright (c) 1998-2018 The OpenSSL Project + Copyright (c) 1998-2019 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved. diff --git a/apps/apps.c b/apps/apps.c index 653e3973e04da7d4ce3de1f4ece0fc8e192ee41e..36cb0b27833780d023e5e0793c8acd74a7600708 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -1561,7 +1561,7 @@ CA_DB *load_index(const char *dbfile, DB_ATTR *db_attr) #else BIO_snprintf(buf, sizeof(buf), "%s-attr", dbfile); #endif - dbattr_conf = app_load_config(buf); + dbattr_conf = app_load_config_quiet(buf); retdb = app_malloc(sizeof(*retdb), "new DB"); retdb->db = tmpdb; @@ -2196,7 +2196,7 @@ double app_tminterval(int stop, int usertime) return ret; } -#elif defined(OPENSSL_SYSTEM_VXWORKS) +#elif defined(OPENSSL_SYS_VXWORKS) # include <time.h> double app_tminterval(int stop, int usertime) diff --git a/apps/asn1pars.c b/apps/asn1pars.c index 62c70b9cc4405e97581316e025241d80e614082b..6c44df7de490fce98a8a98dc4adf6d0deee0a66e 100644 --- a/apps/asn1pars.c +++ b/apps/asn1pars.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -170,17 +170,17 @@ int asn1parse_main(int argc, char **argv) if (derfile && (derout = bio_open_default(derfile, 'w', FORMAT_ASN1)) == NULL) goto end; + if ((buf = BUF_MEM_new()) == NULL) + goto end; if (strictpem) { - if (PEM_read_bio(in, &name, &header, &str, &num) != - 1) { + if (PEM_read_bio(in, &name, &header, &str, &num) != 1) { BIO_printf(bio_err, "Error reading PEM file\n"); ERR_print_errors(bio_err); goto end; } + buf->data = (char *)str; + buf->length = buf->max = num; } else { - - if ((buf = BUF_MEM_new()) == NULL) - goto end; if (!BUF_MEM_grow(buf, BUFSIZ * 8)) goto end; /* Pre-allocate :-) */ @@ -303,8 +303,6 @@ int asn1parse_main(int argc, char **argv) BUF_MEM_free(buf); OPENSSL_free(name); OPENSSL_free(header); - if (strictpem) - OPENSSL_free(str); ASN1_TYPE_free(at); sk_OPENSSL_STRING_free(osk); return ret; diff --git a/apps/cms.c b/apps/cms.c index e9d760c999b78f51f873aad243cf662469bf2710..15edd67dbefd5ac39608fa6fc35b409484604cc1 100644 --- a/apps/cms.c +++ b/apps/cms.c @@ -1,5 +1,5 @@ /* - * Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -636,6 +636,7 @@ int cms_main(int argc, char **argv) goto opthelp; } } else if (!operation) { + BIO_printf(bio_err, "No operation option (-encrypt|-decrypt|-sign|-verify|...) specified.\n"); goto opthelp; } diff --git a/apps/ct_log_list.cnf b/apps/ct_log_list.cnf index 650aa22da59c42701f27a3030901ee19538e801b..e643cfdbdf3fbd2d1d01ba9d0056c840bea9659e 100644 --- a/apps/ct_log_list.cnf +++ b/apps/ct_log_list.cnf @@ -2,8 +2,8 @@ # that are to be trusted. # Google's list of logs can be found here: -# www.certificate-transparency.org/known-logs +# www.certificate-transparency.org/known-logs # A Python program to convert the log list to OpenSSL's format can be # found here: -# https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py +# https://github.com/google/certificate-transparency/blob/master/python/utilities/log_list/print_log_list.py # Use the "--openssl_output" flag. diff --git a/apps/demoSRP/srp_verifier.txt b/apps/demoSRP/srp_verifier.txt index ccae6292472642a16d337c2e504305b8d8930f12..c2d5c6033608560dfe7d4e1f6370af5ea588285e 100644 --- a/apps/demoSRP/srp_verifier.txt +++ b/apps/demoSRP/srp_verifier.txt @@ -3,4 +3,4 @@ # records starting with a I followed by the g and N values and the id. # The exact values ... you have to dig this out from the source of srp.c # or srp_vfy.c -# The last value of an I is used as the default group for new users. +# The last value of an I is used as the default group for new users. diff --git a/apps/dh1024.pem b/apps/dh1024.pem index f1a5e180aa955138f3ea768bad145304efc20f5d..813e8a4a48224c5fd83a68f6bf165c906d556d86 100644 --- a/apps/dh1024.pem +++ b/apps/dh1024.pem @@ -4,7 +4,7 @@ Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL /1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC -----END DH PARAMETERS----- -These are the 1024-bit DH parameters from "Internet Key Exchange +These are the 1024-bit DH parameters from "Internet Key Exchange Protocol Version 2 (IKEv2)": https://tools.ietf.org/html/rfc5996 See https://tools.ietf.org/html/rfc2412 for how they were generated. diff --git a/apps/dh2048.pem b/apps/dh2048.pem index e899f2e0296db9b049ff1e5a0fc77bca9a528975..288a20997e5a50fa125ee32ea3d264b54db7778a 100644 --- a/apps/dh2048.pem +++ b/apps/dh2048.pem @@ -7,8 +7,8 @@ fDKQXkYuNs474553LBgOhgObJ4Oi7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq 5RXSJhiY+gUQFXKOWoqsqmj//////////wIBAg== -----END DH PARAMETERS----- -These are the 2048-bit DH parameters from "More Modular Exponential -(MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)": +These are the 2048-bit DH parameters from "More Modular Exponential +(MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)": https://tools.ietf.org/html/rfc3526 See https://tools.ietf.org/html/rfc2412 for how they were generated. diff --git a/apps/dh4096.pem b/apps/dh4096.pem index adada2b55815b7eff0bb9b80154109b4d9ec377a..08560e1284e2670d33ffc790db72a0d209c208ad 100644 --- a/apps/dh4096.pem +++ b/apps/dh4096.pem @@ -12,8 +12,8 @@ ARpyPBKnh+bXiHGaEL26WyaZwycYavTiPBqUaDS2FQvaJYPpyirUTOjbu8LbBN6O HNAGkSfVsFqpk7TqmI2P3cGG/7fckKbAj030Nck0BjGZ//////////8CAQI= -----END DH PARAMETERS----- -These are the 4096-bit DH parameters from "More Modular Exponential -(MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)": +These are the 4096-bit DH parameters from "More Modular Exponential +(MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)": https://tools.ietf.org/html/rfc3526 See https://tools.ietf.org/html/rfc2412 for how they were generated. diff --git a/apps/enc.c b/apps/enc.c index 8e5a57d3e5d74d72410a68cef3445641aad48191..de33e57a5f49a5ba3cabd3276d668920e7c9c184 100644 --- a/apps/enc.c +++ b/apps/enc.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -500,7 +500,7 @@ int enc_main(int argc, char **argv) if (hiv != NULL) { int siz = EVP_CIPHER_iv_length(cipher); if (siz == 0) { - BIO_printf(bio_err, "warning: iv not use by this cipher\n"); + BIO_printf(bio_err, "warning: iv not used by this cipher\n"); } else if (!set_hex(hiv, iv, siz)) { BIO_printf(bio_err, "invalid hex iv value\n"); goto end; diff --git a/apps/ocsp.c b/apps/ocsp.c index 7fd78624bbcca18c614c5a7cf6f7eaa93ee233cb..066a2e43af2b1e21172a999e7e518daa988f672f 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -36,7 +36,21 @@ NON_EMPTY_TRANSLATION_UNIT # include <openssl/x509v3.h> # include <openssl/rand.h> -# if defined(OPENSSL_SYS_UNIX) && !defined(OPENSSL_NO_SOCK) \ +#ifndef HAVE_FORK +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) +# define HAVE_FORK 0 +# else +# define HAVE_FORK 1 +# endif +#endif + +#if HAVE_FORK +# undef NO_FORK +#else +# define NO_FORK +#endif + +# if !defined(NO_FORK) && !defined(OPENSSL_NO_SOCK) \ && !defined(OPENSSL_NO_POSIX_IO) # define OCSP_DAEMON # include <sys/types.h> @@ -53,6 +67,20 @@ NON_EMPTY_TRANSLATION_UNIT # define LOG_ERR 2 # endif +# if defined(OPENSSL_SYS_VXWORKS) +/* not supported */ +int setpgid(pid_t pid, pid_t pgid) +{ + errno = ENOSYS; + return 0; +} +/* not supported */ +pid_t fork(void) +{ + errno = ENOSYS; + return (pid_t) -1; +} +# endif /* Maximum leeway in validity period: default 5 minutes */ # define MAX_VALIDITY_PERIOD (5 * 60) @@ -613,8 +641,10 @@ redo_accept: goto end; } - if (req != NULL && add_nonce) - OCSP_request_add1_nonce(req, NULL, -1); + if (req != NULL && add_nonce) { + if (!OCSP_request_add1_nonce(req, NULL, -1)) + goto end; + } if (signfile != NULL) { if (keyfile == NULL) @@ -863,6 +893,7 @@ static void killall(int ret, pid_t *kidpids) for (i = 0; i < multi; ++i) if (kidpids[i] != 0) (void)kill(kidpids[i], SIGTERM); + OPENSSL_free(kidpids); sleep(1); exit(ret); } @@ -977,7 +1008,6 @@ static void spawn_loop(void) } /* The loop above can only break on termsig */ - OPENSSL_free(kidpids); syslog(LOG_INFO, "terminating on signal: %d", termsig); killall(0, kidpids); } @@ -1217,7 +1247,10 @@ static void make_ocsp_response(BIO *err, OCSP_RESPONSE **resp, OCSP_REQUEST *req goto end; } } - OCSP_basic_sign_ctx(bs, rcert, mctx, rother, flags); + if (!OCSP_basic_sign_ctx(bs, rcert, mctx, rother, flags)) { + *resp = OCSP_response_create(OCSP_RESPONSE_STATUS_INTERNALERROR, bs); + goto end; + } if (badsig) { const ASN1_OCTET_STRING *sig = OCSP_resp_get0_signature(bs); diff --git a/apps/openssl-vms.cnf b/apps/openssl-vms.cnf index 178a0b0f2d3036bf79c629d844fa29fc8508ae4a..e64cc9f3a634a45dfa06bdac5689ce6d0392e232 100644 --- a/apps/openssl-vms.cnf +++ b/apps/openssl-vms.cnf @@ -18,7 +18,7 @@ oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: -# extensions = +# extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) @@ -115,7 +115,7 @@ x509_extensions = v3_ca # The extensions to add to the self signed cert # input_password = secret # output_password = secret -# This sets a mask for permitted string types. There are several options. +# This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). diff --git a/apps/openssl.cnf b/apps/openssl.cnf index 6df2878d5021551e8cceae297ac07b5675f627dd..4acca4b0446f536598cc1b127b0975294c928c58 100644 --- a/apps/openssl.cnf +++ b/apps/openssl.cnf @@ -18,7 +18,7 @@ oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: -# extensions = +# extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) @@ -115,7 +115,7 @@ x509_extensions = v3_ca # The extensions to add to the self signed cert # input_password = secret # output_password = secret -# This sets a mask for permitted string types. There are several options. +# This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString (PKIX recommendation before 2004) # utf8only: only UTF8Strings (PKIX recommendation after 2004). diff --git a/apps/pkcs12.c b/apps/pkcs12.c index c8fc452ec6d2e7baa5ac595e62d63c7902971e48..719a309a860c3cd0c41763ad3c86fcc4d521ea2f 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -311,6 +311,13 @@ int pkcs12_main(int argc, char **argv) if (cpass != NULL) { mpass = cpass; noprompt = 1; + if (twopass) { + if (export_cert) + BIO_printf(bio_err, "Option -twopass cannot be used with -passout or -password\n"); + else + BIO_printf(bio_err, "Option -twopass cannot be used with -passin or -password\n"); + goto end; + } } else { cpass = pass; mpass = macpass; diff --git a/apps/rehash.c b/apps/rehash.c index bb41d3129f9c518566bb4c1f072d803c6856b87a..2b769fbceb87ef3e7c5210875895c881d74a2421 100644 --- a/apps/rehash.c +++ b/apps/rehash.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2013-2014 Timo Teräs <timo.teras@gmail.com> * * Licensed under the OpenSSL license (the "License"). You may not use @@ -51,6 +51,26 @@ # endif # define MAX_COLLISIONS 256 +# if defined(OPENSSL_SYS_VXWORKS) +/* + * VxWorks has no symbolic links + */ + +# define lstat(path, buf) stat(path, buf) + +int symlink(const char *target, const char *linkpath) +{ + errno = ENOSYS; + return -1; +} + +ssize_t readlink(const char *pathname, char *buf, size_t bufsiz) +{ + errno = ENOSYS; + return -1; +} +# endif + typedef struct hentry_st { struct hentry_st *next; char *filename; diff --git a/apps/s_cb.c b/apps/s_cb.c index 2d4568f40ccbc1eeb8d20fc2b5e15666c7e432cc..520323c8b05cfe0498a7a8dc6ad46ff8a29f88a2 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,7 +24,7 @@ #define COOKIE_SECRET_LENGTH 16 -VERIFY_CB_ARGS verify_args = { 0, 0, X509_V_OK, 0 }; +VERIFY_CB_ARGS verify_args = { -1, 0, X509_V_OK, 0 }; #ifndef OPENSSL_NO_SOCK static unsigned char cookie_secret[COOKIE_SECRET_LENGTH]; @@ -63,7 +63,7 @@ int verify_callback(int ok, X509_STORE_CTX *ctx) if (!ok) { BIO_printf(bio_err, "verify error:num=%d:%s\n", err, X509_verify_cert_error_string(err)); - if (verify_args.depth >= depth) { + if (verify_args.depth < 0 || verify_args.depth >= depth) { if (!verify_args.return_error) ok = 1; verify_args.error = err; @@ -683,6 +683,53 @@ static STRINT_PAIR tlsext_types[] = { {NULL} }; +/* from rfc8446 4.2.3. + gost (https://tools.ietf.org/id/draft-smyshlyaev-tls12-gost-suites-04.html) */ +static STRINT_PAIR signature_tls13_scheme_list[] = { + {"rsa_pkcs1_sha1", 0x0201 /* TLSEXT_SIGALG_rsa_pkcs1_sha1 */}, + {"ecdsa_sha1", 0x0203 /* TLSEXT_SIGALG_ecdsa_sha1 */}, +/* {"rsa_pkcs1_sha224", 0x0301 TLSEXT_SIGALG_rsa_pkcs1_sha224}, not in rfc8446 */ +/* {"ecdsa_sha224", 0x0303 TLSEXT_SIGALG_ecdsa_sha224} not in rfc8446 */ + {"rsa_pkcs1_sha256", 0x0401 /* TLSEXT_SIGALG_rsa_pkcs1_sha256 */}, + {"ecdsa_secp256r1_sha256", 0x0403 /* TLSEXT_SIGALG_ecdsa_secp256r1_sha256 */}, + {"rsa_pkcs1_sha384", 0x0501 /* TLSEXT_SIGALG_rsa_pkcs1_sha384 */}, + {"ecdsa_secp384r1_sha384", 0x0503 /* TLSEXT_SIGALG_ecdsa_secp384r1_sha384 */}, + {"rsa_pkcs1_sha512", 0x0601 /* TLSEXT_SIGALG_rsa_pkcs1_sha512 */}, + {"ecdsa_secp521r1_sha512", 0x0603 /* TLSEXT_SIGALG_ecdsa_secp521r1_sha512 */}, + {"rsa_pss_rsae_sha256", 0x0804 /* TLSEXT_SIGALG_rsa_pss_rsae_sha256 */}, + {"rsa_pss_rsae_sha384", 0x0805 /* TLSEXT_SIGALG_rsa_pss_rsae_sha384 */}, + {"rsa_pss_rsae_sha512", 0x0806 /* TLSEXT_SIGALG_rsa_pss_rsae_sha512 */}, + {"ed25519", 0x0807 /* TLSEXT_SIGALG_ed25519 */}, + {"ed448", 0x0808 /* TLSEXT_SIGALG_ed448 */}, + {"rsa_pss_pss_sha256", 0x0809 /* TLSEXT_SIGALG_rsa_pss_pss_sha256 */}, + {"rsa_pss_pss_sha384", 0x080a /* TLSEXT_SIGALG_rsa_pss_pss_sha384 */}, + {"rsa_pss_pss_sha512", 0x080b /* TLSEXT_SIGALG_rsa_pss_pss_sha512 */}, + {"gostr34102001", 0xeded /* TLSEXT_SIGALG_gostr34102001_gostr3411 */}, + {"gostr34102012_256", 0xeeee /* TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256 */}, + {"gostr34102012_512", 0xefef /* TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512 */}, + {NULL} +}; + +/* from rfc5246 7.4.1.4.1. */ +static STRINT_PAIR signature_tls12_alg_list[] = { + {"anonymous", TLSEXT_signature_anonymous /* 0 */}, + {"RSA", TLSEXT_signature_rsa /* 1 */}, + {"DSA", TLSEXT_signature_dsa /* 2 */}, + {"ECDSA", TLSEXT_signature_ecdsa /* 3 */}, + {NULL} +}; + +/* from rfc5246 7.4.1.4.1. */ +static STRINT_PAIR signature_tls12_hash_list[] = { + {"none", TLSEXT_hash_none /* 0 */}, + {"MD5", TLSEXT_hash_md5 /* 1 */}, + {"SHA1", TLSEXT_hash_sha1 /* 2 */}, + {"SHA224", TLSEXT_hash_sha224 /* 3 */}, + {"SHA256", TLSEXT_hash_sha256 /* 4 */}, + {"SHA384", TLSEXT_hash_sha384 /* 5 */}, + {"SHA512", TLSEXT_hash_sha512 /* 6 */}, + {NULL} +}; + void tlsext_cb(SSL *s, int client_server, int type, const unsigned char *data, int len, void *arg) { @@ -1282,9 +1329,9 @@ static STRINT_PAIR callback_types[] = { {"Supported Curve", SSL_SECOP_CURVE_SUPPORTED}, {"Shared Curve", SSL_SECOP_CURVE_SHARED}, {"Check Curve", SSL_SECOP_CURVE_CHECK}, - {"Supported Signature Algorithm digest", SSL_SECOP_SIGALG_SUPPORTED}, - {"Shared Signature Algorithm digest", SSL_SECOP_SIGALG_SHARED}, - {"Check Signature Algorithm digest", SSL_SECOP_SIGALG_CHECK}, + {"Supported Signature Algorithm", SSL_SECOP_SIGALG_SUPPORTED}, + {"Shared Signature Algorithm", SSL_SECOP_SIGALG_SHARED}, + {"Check Signature Algorithm", SSL_SECOP_SIGALG_CHECK}, {"Signature Algorithm mask", SSL_SECOP_SIGALG_MASK}, {"Certificate chain EE key", SSL_SECOP_EE_KEY}, {"Certificate chain CA key", SSL_SECOP_CA_KEY}, @@ -1304,29 +1351,37 @@ static int security_callback_debug(const SSL *s, const SSL_CTX *ctx, security_debug_ex *sdb = ex; int rv, show_bits = 1, cert_md = 0; const char *nm; + int show_nm; rv = sdb->old_cb(s, ctx, op, bits, nid, other, ex); if (rv == 1 && sdb->verbose < 2) return 1; BIO_puts(sdb->out, "Security callback: "); nm = lookup(op, callback_types, NULL); + show_nm = nm != NULL; switch (op) { case SSL_SECOP_TICKET: case SSL_SECOP_COMPRESSION: show_bits = 0; - nm = NULL; + show_nm = 0; break; case SSL_SECOP_VERSION: BIO_printf(sdb->out, "Version=%s", lookup(nid, ssl_versions, "???")); show_bits = 0; - nm = NULL; + show_nm = 0; break; case SSL_SECOP_CA_MD: case SSL_SECOP_PEER_CA_MD: cert_md = 1; break; + case SSL_SECOP_SIGALG_SUPPORTED: + case SSL_SECOP_SIGALG_SHARED: + case SSL_SECOP_SIGALG_CHECK: + case SSL_SECOP_SIGALG_MASK: + show_nm = 0; + break; } - if (nm != NULL) + if (show_nm) BIO_printf(sdb->out, "%s=", nm); switch (op & SSL_SECOP_OTHER_TYPE) { @@ -1373,27 +1428,28 @@ static int security_callback_debug(const SSL *s, const SSL_CTX *ctx, { const unsigned char *salg = other; const char *sname = NULL; - switch (salg[1]) { - case TLSEXT_signature_anonymous: - sname = "anonymous"; - break; - case TLSEXT_signature_rsa: - sname = "RSA"; - break; - case TLSEXT_signature_dsa: - sname = "DSA"; - break; - case TLSEXT_signature_ecdsa: - sname = "ECDSA"; - break; - } + int raw_sig_code = (salg[0] << 8) + salg[1]; /* always big endian (msb, lsb) */ + /* raw_sig_code: signature_scheme from tls1.3, or signature_and_hash from tls1.2 */ - BIO_puts(sdb->out, OBJ_nid2sn(nid)); - if (sname) - BIO_printf(sdb->out, ", algorithm=%s", sname); + if (nm != NULL) + BIO_printf(sdb->out, "%s", nm); else - BIO_printf(sdb->out, ", algid=%d", salg[1]); - break; + BIO_printf(sdb->out, "s_cb.c:security_callback_debug op=0x%x", op); + + sname = lookup(raw_sig_code, signature_tls13_scheme_list, NULL); + if (sname != NULL) { + BIO_printf(sdb->out, " scheme=%s", sname); + } else { + int alg_code = salg[1]; + int hash_code = salg[0]; + const char *alg_str = lookup(alg_code, signature_tls12_alg_list, NULL); + const char *hash_str = lookup(hash_code, signature_tls12_hash_list, NULL); + + if (alg_str != NULL && hash_str != NULL) + BIO_printf(sdb->out, " digest=%s, algorithm=%s", hash_str, alg_str); + else + BIO_printf(sdb->out, " scheme=unknown(0x%04x)", raw_sig_code); + } } } diff --git a/apps/s_client.c b/apps/s_client.c index dcaa10cf44ebae4de0d828dcd4508692ad26526a..b85339a0b870cc397f9289f97a5798151fe9d584 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2005 Nokia. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -74,6 +74,7 @@ static void print_stuff(BIO *berr, SSL *con, int full); static int ocsp_resp_cb(SSL *s, void *arg); #endif static int ldap_ExtendedResponse_parse(const char *buf, long rem); +static int is_dNS_name(const char *host); static int saved_errno; @@ -596,6 +597,7 @@ typedef enum OPTION_choice { #endif OPT_DANE_TLSA_RRDATA, OPT_DANE_EE_NO_NAME, OPT_ENABLE_PHA, + OPT_SCTP_LABEL_BUG, OPT_R_ENUM } OPTION_CHOICE; @@ -750,6 +752,7 @@ const OPTIONS s_client_options[] = { #endif #ifndef OPENSSL_NO_SCTP {"sctp", OPT_SCTP, '-', "Use SCTP"}, + {"sctp_label_bug", OPT_SCTP_LABEL_BUG, '-', "Enable SCTP label length bug"}, #endif #ifndef OPENSSL_NO_SSL_TRACE {"trace", OPT_TRACE, '-', "Show trace output of protocol messages"}, @@ -976,6 +979,9 @@ int s_client_main(int argc, char **argv) #endif char *psksessf = NULL; int enable_pha = 0; +#ifndef OPENSSL_NO_SCTP + int sctp_label_bug = 0; +#endif FD_ZERO(&readfds); FD_ZERO(&writefds); @@ -1121,6 +1127,7 @@ int s_client_main(int argc, char **argv) goto opthelp; break; case OPT_VERIFY_RET_ERROR: + verify = SSL_VERIFY_PEER; verify_args.return_error = 1; break; case OPT_VERIFY_QUIET: @@ -1321,6 +1328,11 @@ int s_client_main(int argc, char **argv) case OPT_SCTP: #ifndef OPENSSL_NO_SCTP protocol = IPPROTO_SCTP; +#endif + break; + case OPT_SCTP_LABEL_BUG: +#ifndef OPENSSL_NO_SCTP + sctp_label_bug = 1; #endif break; case OPT_TIMEOUT: @@ -1707,6 +1719,11 @@ int s_client_main(int argc, char **argv) } } +#ifndef OPENSSL_NO_SCTP + if (protocol == IPPROTO_SCTP && sctp_label_bug == 1) + SSL_CTX_set_mode(ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG); +#endif + if (min_version != 0 && SSL_CTX_set_min_proto_version(ctx, min_version) == 0) goto end; @@ -1975,9 +1992,11 @@ int s_client_main(int argc, char **argv) SSL_set_mode(con, SSL_MODE_SEND_FALLBACK_SCSV); if (!noservername && (servername != NULL || dane_tlsa_domain == NULL)) { - if (servername == NULL) - servername = (host == NULL) ? "localhost" : host; - if (!SSL_set_tlsext_host_name(con, servername)) { + if (servername == NULL) { + if(host == NULL || is_dNS_name(host)) + servername = (host == NULL) ? "localhost" : host; + } + if (servername != NULL && !SSL_set_tlsext_host_name(con, servername)) { BIO_printf(bio_err, "Unable to set TLS servername extension.\n"); ERR_print_errors(bio_err); goto end; @@ -2234,7 +2253,7 @@ int s_client_main(int argc, char **argv) do { mbuf_len = BIO_gets(fbio, mbuf, BUFSIZZ); } - while (mbuf_len > 3 && mbuf[3] == '-'); + while (mbuf_len > 3 && (!isdigit(mbuf[0]) || !isdigit(mbuf[1]) || !isdigit(mbuf[2]) || mbuf[3] != ' ')); (void)BIO_flush(fbio); BIO_pop(fbio); BIO_free(fbio); @@ -3031,9 +3050,7 @@ int s_client_main(int argc, char **argv) BIO_printf(bio_err, "RENEGOTIATING\n"); SSL_renegotiate(con); cbuf_len = 0; - } - - if (!c_ign_eof && (cbuf[0] == 'K' || cbuf[0] == 'k' ) + } else if (!c_ign_eof && (cbuf[0] == 'K' || cbuf[0] == 'k' ) && cmdletters) { BIO_printf(bio_err, "KEYUPDATE\n"); SSL_key_update(con, @@ -3459,4 +3476,69 @@ static int ldap_ExtendedResponse_parse(const char *buf, long rem) return ret; } +/* + * Host dNS Name verifier: used for checking that the hostname is in dNS format + * before setting it as SNI + */ +static int is_dNS_name(const char *host) +{ + const size_t MAX_LABEL_LENGTH = 63; + size_t i; + int isdnsname = 0; + size_t length = strlen(host); + size_t label_length = 0; + int all_numeric = 1; + + /* + * Deviation from strict DNS name syntax, also check names with '_' + * Check DNS name syntax, any '-' or '.' must be internal, + * and on either side of each '.' we can't have a '-' or '.'. + * + * If the name has just one label, we don't consider it a DNS name. + */ + for (i = 0; i < length && label_length < MAX_LABEL_LENGTH; ++i) { + char c = host[i]; + + if ((c >= 'a' && c <= 'z') + || (c >= 'A' && c <= 'Z') + || c == '_') { + label_length += 1; + all_numeric = 0; + continue; + } + + if (c >= '0' && c <= '9') { + label_length += 1; + continue; + } + + /* Dot and hyphen cannot be first or last. */ + if (i > 0 && i < length - 1) { + if (c == '-') { + label_length += 1; + continue; + } + /* + * Next to a dot the preceding and following characters must not be + * another dot or a hyphen. Otherwise, record that the name is + * plausible, since it has two or more labels. + */ + if (c == '.' + && host[i + 1] != '.' + && host[i - 1] != '-' + && host[i + 1] != '-') { + label_length = 0; + isdnsname = 1; + continue; + } + } + isdnsname = 0; + break; + } + + /* dNS name must not be all numeric and labels must be shorter than 64 characters. */ + isdnsname &= !all_numeric && !(label_length == MAX_LABEL_LENGTH); + + return isdnsname; +} #endif /* OPENSSL_NO_SOCK */ diff --git a/apps/s_server.c b/apps/s_server.c index ac7dca607ba471f7fc90c72b43acda28ecf265ed..929a08bd85b06cc49a299cbf69b3610e3439dba3 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -751,7 +751,7 @@ typedef enum OPTION_choice { OPT_CERT2, OPT_KEY2, OPT_NEXTPROTONEG, OPT_ALPN, OPT_SRTP_PROFILES, OPT_KEYMATEXPORT, OPT_KEYMATEXPORTLEN, OPT_KEYLOG_FILE, OPT_MAX_EARLY, OPT_RECV_MAX_EARLY, OPT_EARLY_DATA, - OPT_S_NUM_TICKETS, OPT_ANTI_REPLAY, OPT_NO_ANTI_REPLAY, + OPT_S_NUM_TICKETS, OPT_ANTI_REPLAY, OPT_NO_ANTI_REPLAY, OPT_SCTP_LABEL_BUG, OPT_R_ENUM, OPT_S_ENUM, OPT_V_ENUM, @@ -938,6 +938,7 @@ const OPTIONS s_server_options[] = { #endif #ifndef OPENSSL_NO_SCTP {"sctp", OPT_SCTP, '-', "Use SCTP"}, + {"sctp_label_bug", OPT_SCTP_LABEL_BUG, '-', "Enable SCTP label length bug"}, #endif #ifndef OPENSSL_NO_DH {"no_dhe", OPT_NO_DHE, '-', "Disable ephemeral DH"}, @@ -1047,6 +1048,9 @@ int s_server_main(int argc, char *argv[]) const char *keylog_file = NULL; int max_early_data = -1, recv_max_early_data = -1; char *psksessf = NULL; +#ifndef OPENSSL_NO_SCTP + int sctp_label_bug = 0; +#endif /* Init of few remaining global variables */ local_argc = argc; @@ -1407,7 +1411,7 @@ int s_server_main(int argc, char *argv[]) for (p = psk_key = opt_arg(); *p; p++) { if (isxdigit(_UC(*p))) continue; - BIO_printf(bio_err, "Not a hex number '%s'\n", *argv); + BIO_printf(bio_err, "Not a hex number '%s'\n", psk_key); goto end; } break; @@ -1488,6 +1492,11 @@ int s_server_main(int argc, char *argv[]) case OPT_SCTP: #ifndef OPENSSL_NO_SCTP protocol = IPPROTO_SCTP; +#endif + break; + case OPT_SCTP_LABEL_BUG: +#ifndef OPENSSL_NO_SCTP + sctp_label_bug = 1; #endif break; case OPT_TIMEOUT: @@ -1792,6 +1801,12 @@ int s_server_main(int argc, char *argv[]) goto end; } } + +#ifndef OPENSSL_NO_SCTP + if (protocol == IPPROTO_SCTP && sctp_label_bug == 1) + SSL_CTX_set_mode(ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG); +#endif + if (min_version != 0 && SSL_CTX_set_min_proto_version(ctx, min_version) == 0) goto end; @@ -2754,6 +2769,8 @@ static int init_ssl_connection(SSL *con) BIO_ADDR_free(client); return 0; } + + (void)BIO_ctrl_set_connected(wbio, client); BIO_ADDR_free(client); dtlslisten = 0; } else { diff --git a/apps/speed.c b/apps/speed.c index 40e990408ab92fa73d5b92c02ad15fb651f3d5b2..8d4b1695d8514d46e2ac20ddff53e8076bd1b2e4 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -100,7 +100,7 @@ #include <openssl/modes.h> #ifndef HAVE_FORK -# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VXWORKS) # define HAVE_FORK 0 # else # define HAVE_FORK 1 @@ -489,30 +489,35 @@ static const OPT_PAIR rsa_choices[] = { static double rsa_results[RSA_NUM][2]; /* 2 ops: sign then verify */ #endif /* OPENSSL_NO_RSA */ -#define R_EC_P160 0 -#define R_EC_P192 1 -#define R_EC_P224 2 -#define R_EC_P256 3 -#define R_EC_P384 4 -#define R_EC_P521 5 -#define R_EC_K163 6 -#define R_EC_K233 7 -#define R_EC_K283 8 -#define R_EC_K409 9 -#define R_EC_K571 10 -#define R_EC_B163 11 -#define R_EC_B233 12 -#define R_EC_B283 13 -#define R_EC_B409 14 -#define R_EC_B571 15 -#define R_EC_BRP256R1 16 -#define R_EC_BRP256T1 17 -#define R_EC_BRP384R1 18 -#define R_EC_BRP384T1 19 -#define R_EC_BRP512R1 20 -#define R_EC_BRP512T1 21 -#define R_EC_X25519 22 -#define R_EC_X448 23 +enum { + R_EC_P160, + R_EC_P192, + R_EC_P224, + R_EC_P256, + R_EC_P384, + R_EC_P521, +#ifndef OPENSSL_NO_EC2M + R_EC_K163, + R_EC_K233, + R_EC_K283, + R_EC_K409, + R_EC_K571, + R_EC_B163, + R_EC_B233, + R_EC_B283, + R_EC_B409, + R_EC_B571, +#endif + R_EC_BRP256R1, + R_EC_BRP256T1, + R_EC_BRP384R1, + R_EC_BRP384T1, + R_EC_BRP512R1, + R_EC_BRP512T1, + R_EC_X25519, + R_EC_X448 +}; + #ifndef OPENSSL_NO_EC static OPT_PAIR ecdsa_choices[] = { {"ecdsap160", R_EC_P160}, @@ -521,6 +526,7 @@ static OPT_PAIR ecdsa_choices[] = { {"ecdsap256", R_EC_P256}, {"ecdsap384", R_EC_P384}, {"ecdsap521", R_EC_P521}, +# ifndef OPENSSL_NO_EC2M {"ecdsak163", R_EC_K163}, {"ecdsak233", R_EC_K233}, {"ecdsak283", R_EC_K283}, @@ -531,6 +537,7 @@ static OPT_PAIR ecdsa_choices[] = { {"ecdsab283", R_EC_B283}, {"ecdsab409", R_EC_B409}, {"ecdsab571", R_EC_B571}, +# endif {"ecdsabrp256r1", R_EC_BRP256R1}, {"ecdsabrp256t1", R_EC_BRP256T1}, {"ecdsabrp384r1", R_EC_BRP384R1}, @@ -549,6 +556,7 @@ static const OPT_PAIR ecdh_choices[] = { {"ecdhp256", R_EC_P256}, {"ecdhp384", R_EC_P384}, {"ecdhp521", R_EC_P521}, +# ifndef OPENSSL_NO_EC2M {"ecdhk163", R_EC_K163}, {"ecdhk233", R_EC_K233}, {"ecdhk283", R_EC_K283}, @@ -559,6 +567,7 @@ static const OPT_PAIR ecdh_choices[] = { {"ecdhb283", R_EC_B283}, {"ecdhb409", R_EC_B409}, {"ecdhb571", R_EC_B571}, +# endif {"ecdhbrp256r1", R_EC_BRP256R1}, {"ecdhbrp256t1", R_EC_BRP256T1}, {"ecdhbrp384r1", R_EC_BRP384R1}, @@ -1499,11 +1508,12 @@ int speed_main(int argc, char **argv) {"nistp192", NID_X9_62_prime192v1, 192}, {"nistp224", NID_secp224r1, 224}, {"nistp256", NID_X9_62_prime256v1, 256}, - {"nistp384", NID_secp384r1, 384}, + {"nistp384", NID_secp384r1, 384}, {"nistp521", NID_secp521r1, 521}, +# ifndef OPENSSL_NO_EC2M /* Binary Curves */ {"nistk163", NID_sect163k1, 163}, - {"nistk233", NID_sect233k1, 233}, + {"nistk233", NID_sect233k1, 233}, {"nistk283", NID_sect283k1, 283}, {"nistk409", NID_sect409k1, 409}, {"nistk571", NID_sect571k1, 571}, @@ -1512,6 +1522,7 @@ int speed_main(int argc, char **argv) {"nistb283", NID_sect283r1, 283}, {"nistb409", NID_sect409r1, 409}, {"nistb571", NID_sect571r1, 571}, +# endif {"brainpoolP256r1", NID_brainpoolP256r1, 256}, {"brainpoolP256t1", NID_brainpoolP256t1, 256}, {"brainpoolP384r1", NID_brainpoolP384r1, 384}, @@ -2031,6 +2042,7 @@ int speed_main(int argc, char **argv) } } } +# ifndef OPENSSL_NO_EC2M ecdsa_c[R_EC_K163][0] = count / 1000; ecdsa_c[R_EC_K163][1] = count / 1000 / 2; for (i = R_EC_K233; i <= R_EC_K571; i++) { @@ -2059,6 +2071,7 @@ int speed_main(int argc, char **argv) } } } +# endif ecdh_c[R_EC_P160][0] = count / 1000; for (i = R_EC_P192; i <= R_EC_P521; i++) { @@ -2071,6 +2084,7 @@ int speed_main(int argc, char **argv) } } } +# ifndef OPENSSL_NO_EC2M ecdh_c[R_EC_K163][0] = count / 1000; for (i = R_EC_K233; i <= R_EC_K571; i++) { ecdh_c[i][0] = ecdh_c[i - 1][0] / 2; @@ -2093,6 +2107,7 @@ int speed_main(int argc, char **argv) } } } +# endif /* repeated code good to factorize */ ecdh_c[R_EC_BRP256R1][0] = count / 1000; for (i = R_EC_BRP384R1; i <= R_EC_BRP512R1; i += 2) { @@ -2614,16 +2629,28 @@ int speed_main(int argc, char **argv) for (k = 0; k < loopargs_len; k++) { loopargs[k].ctx = EVP_CIPHER_CTX_new(); - EVP_CipherInit_ex(loopargs[k].ctx, evp_cipher, NULL, NULL, - iv, decrypt ? 0 : 1); + if (loopargs[k].ctx == NULL) { + BIO_printf(bio_err, "\nEVP_CIPHER_CTX_new failure\n"); + exit(1); + } + if (!EVP_CipherInit_ex(loopargs[k].ctx, evp_cipher, NULL, + NULL, iv, decrypt ? 0 : 1)) { + BIO_printf(bio_err, "\nEVP_CipherInit_ex failure\n"); + ERR_print_errors(bio_err); + exit(1); + } EVP_CIPHER_CTX_set_padding(loopargs[k].ctx, 0); keylen = EVP_CIPHER_CTX_key_length(loopargs[k].ctx); loopargs[k].key = app_malloc(keylen, "evp_cipher key"); EVP_CIPHER_CTX_rand_key(loopargs[k].ctx, loopargs[k].key); - EVP_CipherInit_ex(loopargs[k].ctx, NULL, NULL, - loopargs[k].key, NULL, -1); + if (!EVP_CipherInit_ex(loopargs[k].ctx, NULL, NULL, + loopargs[k].key, NULL, -1)) { + BIO_printf(bio_err, "\nEVP_CipherInit_ex failure\n"); + ERR_print_errors(bio_err); + exit(1); + } OPENSSL_clear_free(loopargs[k].key, keylen); } diff --git a/apps/verify.c b/apps/verify.c index 38377a57e4a9f7ad5bfc2b968453e2554726d31f..1f9385606046596c5cf6e3fdcd5277852f0134b5 100644 --- a/apps/verify.c +++ b/apps/verify.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -286,16 +286,19 @@ static int cb(int ok, X509_STORE_CTX *ctx) cert_error, X509_STORE_CTX_get_error_depth(ctx), X509_verify_cert_error_string(cert_error)); + + /* + * Pretend that some errors are ok, so they don't stop further + * processing of the certificate chain. Setting ok = 1 does this. + * After X509_verify_cert() is done, we verify that there were + * no actual errors, even if the returned value was positive. + */ switch (cert_error) { case X509_V_ERR_NO_EXPLICIT_POLICY: policies_print(ctx); /* fall thru */ case X509_V_ERR_CERT_HAS_EXPIRED: - - /* - * since we are just checking the certificates, it is ok if they - * are self signed. But we should still warn the user. - */ + /* Continue even if the leaf is a self signed cert */ case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: /* Continue after extension errors too */ case X509_V_ERR_INVALID_CA: diff --git a/config b/config index b8adf3499953d4cb3eb6f10f299fb7e2bb0f37d7..d0e31b6512ef0ec6ec71c73d1b71db0f70cff28a 100755 --- a/config +++ b/config @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -19,7 +19,7 @@ THERE=`dirname $0` # pick up any command line args to config for i do -case "$i" in +case "$i" in -d*) options=$options" --debug";; -t*) DRYRUN="true" VERBOSE="true";; -v*) VERBOSE="true";; @@ -59,7 +59,7 @@ __CNF_LDLIBS= # Now test for ISC and SCO, since it is has a braindamaged uname. # -# We need to work around FreeBSD 1.1.5.1 +# We need to work around FreeBSD 1.1.5.1 ( XREL=`uname -X 2>/dev/null | grep "^Release" | awk '{print $3}'` if [ "x$XREL" != "x" ]; then @@ -363,7 +363,7 @@ esac # At this point we gone through all the one's # we know of: Punt -echo "${MACHINE}-whatever-${SYSTEM}" +echo "${MACHINE}-whatever-${SYSTEM}" exit 0 ) 2>/dev/null | ( @@ -433,7 +433,7 @@ fi CCVER=${CCVER:-0} -# read the output of the embedded GuessOS +# read the output of the embedded GuessOS read GUESSOS echo Operating system: $GUESSOS @@ -732,7 +732,7 @@ case "$GUESSOS" in *-*-[Uu]nix[Ww]are7) if [ "$CC" = "gcc" ]; then OUT="unixware-7-gcc" ; options="$options no-sse2" - else + else OUT="unixware-7" ; options="$options no-sse2" __CNF_CPPFLAGS="$__CNF_CPPFLAGS -D__i386__" fi @@ -793,7 +793,7 @@ case "$GUESSOS" in OUT="aix64-gcc" fi elif [ $OBJECT_MODE -eq 64 ]; then - echo 'Your $OBJECT_MODE was found to be set to 64' + echo 'Your $OBJECT_MODE was found to be set to 64' OUT="aix64-cc" else OUT="aix-cc" @@ -897,7 +897,7 @@ if [ ".$PERL" = . ] ; then exit 1 fi -# run Configure to check to see if we need to specify the +# run Configure to check to see if we need to specify the # compiler for the platform ... in which case we add it on # the end ... otherwise we leave it off @@ -920,7 +920,7 @@ if [ $? = "0" ]; then __CNF_LDFLAGS="'$__CNF_LDFLAGS'" \ __CNF_LDLIBS="'$__CNF_LDLIBS'" \ $PERL $THERE/Configure $OUT $options - fi + fi if [ "$DRYRUN" = "false" ]; then # eval to make sure quoted options, possibly with spaces inside, # are treated right diff --git a/crypto/aes/asm/aes-x86_64.pl b/crypto/aes/asm/aes-x86_64.pl index 4d1dc9c70199db0f8bd5b87d5c46b04d1df76823..d87e2011477109981943778535c9482ae431fb3a 100755 --- a/crypto/aes/asm/aes-x86_64.pl +++ b/crypto/aes/asm/aes-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -554,6 +554,7 @@ $code.=<<___; .type _x86_64_AES_encrypt_compact,\@abi-omnipotent .align 16 _x86_64_AES_encrypt_compact: +.cfi_startproc lea 128($sbox),$inp # size optimization mov 0-128($inp),$acc1 # prefetch Te4 mov 32-128($inp),$acc2 @@ -587,6 +588,7 @@ $code.=<<___; xor 8($key),$s2 xor 12($key),$s3 .byte 0xf3,0xc3 # rep ret +.cfi_endproc .size _x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact ___ @@ -1161,6 +1163,7 @@ $code.=<<___; .type _x86_64_AES_decrypt_compact,\@abi-omnipotent .align 16 _x86_64_AES_decrypt_compact: +.cfi_startproc lea 128($sbox),$inp # size optimization mov 0-128($inp),$acc1 # prefetch Td4 mov 32-128($inp),$acc2 @@ -1203,6 +1206,7 @@ $code.=<<___; xor 8($key),$s2 xor 12($key),$s3 .byte 0xf3,0xc3 # rep ret +.cfi_endproc .size _x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact ___ @@ -1365,6 +1369,7 @@ AES_set_encrypt_key: .type _x86_64_AES_set_encrypt_key,\@abi-omnipotent .align 16 _x86_64_AES_set_encrypt_key: +.cfi_startproc mov %esi,%ecx # %ecx=bits mov %rdi,%rsi # %rsi=userKey mov %rdx,%rdi # %rdi=key @@ -1546,6 +1551,7 @@ $code.=<<___; mov \$-1,%rax .Lexit: .byte 0xf3,0xc3 # rep ret +.cfi_endproc .size _x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key ___ @@ -1728,7 +1734,9 @@ AES_cbc_encrypt: cmp \$0,%rdx # check length je .Lcbc_epilogue pushfq -.cfi_push 49 # %rflags +# This could be .cfi_push 49, but libunwind fails on registers it does not +# recognize. See https://bugzilla.redhat.com/show_bug.cgi?id=217087. +.cfi_adjust_cfa_offset 8 push %rbx .cfi_push %rbx push %rbp @@ -1751,6 +1759,7 @@ AES_cbc_encrypt: cmp \$0,%r9 cmoveq %r10,$sbox +.cfi_remember_state mov OPENSSL_ia32cap_P(%rip),%r10d cmp \$$speed_limit,%rdx jb .Lcbc_slow_prologue @@ -1986,6 +1995,7 @@ AES_cbc_encrypt: #--------------------------- SLOW ROUTINE ---------------------------# .align 16 .Lcbc_slow_prologue: +.cfi_restore_state # allocate aligned stack frame... lea -88(%rsp),%rbp and \$-64,%rbp @@ -1997,8 +2007,10 @@ AES_cbc_encrypt: sub %r10,%rbp xchg %rsp,%rbp +.cfi_def_cfa_register %rbp #add \$8,%rsp # reserve for return address! mov %rbp,$_rsp # save %rsp +.cfi_cfa_expression $_rsp,deref,+64 .Lcbc_slow_body: #mov %rdi,$_inp # save copy of inp #mov %rsi,$_out # save copy of out @@ -2187,7 +2199,9 @@ AES_cbc_encrypt: .cfi_def_cfa %rsp,16 .Lcbc_popfq: popfq -.cfi_pop 49 # %rflags +# This could be .cfi_pop 49, but libunwind fails on registers it does not +# recognize. See https://bugzilla.redhat.com/show_bug.cgi?id=217087. +.cfi_adjust_cfa_offset -8 .Lcbc_epilogue: ret .cfi_endproc diff --git a/crypto/aes/asm/aesni-x86_64.pl b/crypto/aes/asm/aesni-x86_64.pl index 2a202c53e5f841d93e8f6d04b4d8625481a11cb7..b68c14da60ca1cab700e88eab637e9f593faf361 100644 --- a/crypto/aes/asm/aesni-x86_64.pl +++ b/crypto/aes/asm/aesni-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2009-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2009-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -274,6 +274,7 @@ $code.=<<___; .type ${PREFIX}_encrypt,\@abi-omnipotent .align 16 ${PREFIX}_encrypt: +.cfi_startproc movups ($inp),$inout0 # load input mov 240($key),$rounds # key->rounds ___ @@ -284,12 +285,14 @@ $code.=<<___; movups $inout0,($out) # output pxor $inout0,$inout0 ret +.cfi_endproc .size ${PREFIX}_encrypt,.-${PREFIX}_encrypt .globl ${PREFIX}_decrypt .type ${PREFIX}_decrypt,\@abi-omnipotent .align 16 ${PREFIX}_decrypt: +.cfi_startproc movups ($inp),$inout0 # load input mov 240($key),$rounds # key->rounds ___ @@ -300,6 +303,7 @@ $code.=<<___; movups $inout0,($out) # output pxor $inout0,$inout0 ret +.cfi_endproc .size ${PREFIX}_decrypt, .-${PREFIX}_decrypt ___ } @@ -325,6 +329,7 @@ $code.=<<___; .type _aesni_${dir}rypt2,\@abi-omnipotent .align 16 _aesni_${dir}rypt2: +.cfi_startproc $movkey ($key),$rndkey0 shl \$4,$rounds $movkey 16($key),$rndkey1 @@ -350,6 +355,7 @@ _aesni_${dir}rypt2: aes${dir}last $rndkey0,$inout0 aes${dir}last $rndkey0,$inout1 ret +.cfi_endproc .size _aesni_${dir}rypt2,.-_aesni_${dir}rypt2 ___ } @@ -361,6 +367,7 @@ $code.=<<___; .type _aesni_${dir}rypt3,\@abi-omnipotent .align 16 _aesni_${dir}rypt3: +.cfi_startproc $movkey ($key),$rndkey0 shl \$4,$rounds $movkey 16($key),$rndkey1 @@ -391,6 +398,7 @@ _aesni_${dir}rypt3: aes${dir}last $rndkey0,$inout1 aes${dir}last $rndkey0,$inout2 ret +.cfi_endproc .size _aesni_${dir}rypt3,.-_aesni_${dir}rypt3 ___ } @@ -406,6 +414,7 @@ $code.=<<___; .type _aesni_${dir}rypt4,\@abi-omnipotent .align 16 _aesni_${dir}rypt4: +.cfi_startproc $movkey ($key),$rndkey0 shl \$4,$rounds $movkey 16($key),$rndkey1 @@ -442,6 +451,7 @@ _aesni_${dir}rypt4: aes${dir}last $rndkey0,$inout2 aes${dir}last $rndkey0,$inout3 ret +.cfi_endproc .size _aesni_${dir}rypt4,.-_aesni_${dir}rypt4 ___ } @@ -453,6 +463,7 @@ $code.=<<___; .type _aesni_${dir}rypt6,\@abi-omnipotent .align 16 _aesni_${dir}rypt6: +.cfi_startproc $movkey ($key),$rndkey0 shl \$4,$rounds $movkey 16($key),$rndkey1 @@ -503,6 +514,7 @@ _aesni_${dir}rypt6: aes${dir}last $rndkey0,$inout4 aes${dir}last $rndkey0,$inout5 ret +.cfi_endproc .size _aesni_${dir}rypt6,.-_aesni_${dir}rypt6 ___ } @@ -514,6 +526,7 @@ $code.=<<___; .type _aesni_${dir}rypt8,\@abi-omnipotent .align 16 _aesni_${dir}rypt8: +.cfi_startproc $movkey ($key),$rndkey0 shl \$4,$rounds $movkey 16($key),$rndkey1 @@ -574,6 +587,7 @@ _aesni_${dir}rypt8: aes${dir}last $rndkey0,$inout6 aes${dir}last $rndkey0,$inout7 ret +.cfi_endproc .size _aesni_${dir}rypt8,.-_aesni_${dir}rypt8 ___ } @@ -598,6 +612,7 @@ $code.=<<___; .type aesni_ecb_encrypt,\@function,5 .align 16 aesni_ecb_encrypt: +.cfi_startproc ___ $code.=<<___ if ($win64); lea -0x58(%rsp),%rsp @@ -943,6 +958,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size aesni_ecb_encrypt,.-aesni_ecb_encrypt ___ diff --git a/crypto/aes/asm/aesp8-ppc.pl b/crypto/aes/asm/aesp8-ppc.pl index 488b133250c677edd34a98d3fd15ae9c8e5ae6ad..c0da1b84aaa95355b0973b8086e87715c79843ef 100755 --- a/crypto/aes/asm/aesp8-ppc.pl +++ b/crypto/aes/asm/aesp8-ppc.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -1829,7 +1829,7 @@ Lctr32_enc8x_three: stvx_u $out1,$x10,$out stvx_u $out2,$x20,$out addi $out,$out,0x30 - b Lcbc_dec8x_done + b Lctr32_enc8x_done .align 5 Lctr32_enc8x_two: @@ -1841,7 +1841,7 @@ Lctr32_enc8x_two: stvx_u $out0,$x00,$out stvx_u $out1,$x10,$out addi $out,$out,0x20 - b Lcbc_dec8x_done + b Lctr32_enc8x_done .align 5 Lctr32_enc8x_one: diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl index 8b37cfc452a02d57f83f666b49a4960dc8570464..eec0ed230a8886a26dd79df821574dcf2bc0139c 100755 --- a/crypto/aes/asm/aesv8-armx.pl +++ b/crypto/aes/asm/aesv8-armx.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -262,6 +262,7 @@ $code.=<<___; ${prefix}_set_decrypt_key: ___ $code.=<<___ if ($flavour =~ /64/); + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 ___ @@ -305,6 +306,7 @@ $code.=<<___ if ($flavour !~ /64/); ___ $code.=<<___ if ($flavour =~ /64/); ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret ___ $code.=<<___; diff --git a/crypto/aes/asm/bsaes-x86_64.pl b/crypto/aes/asm/bsaes-x86_64.pl index 2c79c2b67c897d60eca6ea0a5d28af75e4ca3f84..e62342729e7fa56ebb06f5ddf5ba5f1b7b866242 100644 --- a/crypto/aes/asm/bsaes-x86_64.pl +++ b/crypto/aes/asm/bsaes-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -816,6 +816,7 @@ $code.=<<___; .type _bsaes_encrypt8,\@abi-omnipotent .align 64 _bsaes_encrypt8: +.cfi_startproc lea .LBS0(%rip), $const # constants table movdqa ($key), @XMM[9] # round 0 key @@ -875,11 +876,13 @@ $code.=<<___; pxor @XMM[8], @XMM[0] pxor @XMM[8], @XMM[1] ret +.cfi_endproc .size _bsaes_encrypt8,.-_bsaes_encrypt8 .type _bsaes_decrypt8,\@abi-omnipotent .align 64 _bsaes_decrypt8: +.cfi_startproc lea .LBS0(%rip), $const # constants table movdqa ($key), @XMM[9] # round 0 key @@ -937,6 +940,7 @@ $code.=<<___; pxor @XMM[8], @XMM[0] pxor @XMM[8], @XMM[1] ret +.cfi_endproc .size _bsaes_decrypt8,.-_bsaes_decrypt8 ___ } @@ -971,6 +975,7 @@ $code.=<<___; .type _bsaes_key_convert,\@abi-omnipotent .align 16 _bsaes_key_convert: +.cfi_startproc lea .Lmasks(%rip), $const movdqu ($inp), %xmm7 # load round 0 key lea 0x10($inp), $inp @@ -1049,6 +1054,7 @@ _bsaes_key_convert: movdqa 0x50($const), %xmm7 # .L63 #movdqa %xmm6, ($out) # don't save last round key ret +.cfi_endproc .size _bsaes_key_convert,.-_bsaes_key_convert ___ } diff --git a/crypto/aes/asm/vpaes-armv8.pl b/crypto/aes/asm/vpaes-armv8.pl index 5131e13a09a29523d3c8c92ae5ecafa679304968..e38288af5558adefa7d0c5b0b88de7ea2e8f0803 100755 --- a/crypto/aes/asm/vpaes-armv8.pl +++ b/crypto/aes/asm/vpaes-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -255,6 +255,7 @@ _vpaes_encrypt_core: .type vpaes_encrypt,%function .align 4 vpaes_encrypt: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -264,6 +265,7 @@ vpaes_encrypt: st1 {v0.16b}, [$out] ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_encrypt,.-vpaes_encrypt @@ -486,6 +488,7 @@ _vpaes_decrypt_core: .type vpaes_decrypt,%function .align 4 vpaes_decrypt: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -495,6 +498,7 @@ vpaes_decrypt: st1 {v0.16b}, [$out] ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_decrypt,.-vpaes_decrypt @@ -665,6 +669,7 @@ _vpaes_key_preheat: .type _vpaes_schedule_core,%function .align 4 _vpaes_schedule_core: + .inst 0xd503233f // paciasp stp x29, x30, [sp,#-16]! add x29,sp,#0 @@ -829,6 +834,7 @@ _vpaes_schedule_core: eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 ldp x29, x30, [sp],#16 + .inst 0xd50323bf // autiasp ret .size _vpaes_schedule_core,.-_vpaes_schedule_core @@ -1041,6 +1047,7 @@ _vpaes_schedule_mangle: .type vpaes_set_encrypt_key,%function .align 4 vpaes_set_encrypt_key: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1056,6 +1063,7 @@ vpaes_set_encrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key @@ -1063,6 +1071,7 @@ vpaes_set_encrypt_key: .type vpaes_set_decrypt_key,%function .align 4 vpaes_set_decrypt_key: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1082,6 +1091,7 @@ vpaes_set_decrypt_key: ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key ___ @@ -1098,6 +1108,7 @@ vpaes_cbc_encrypt: cmp w5, #0 // check direction b.eq vpaes_cbc_decrypt + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -1120,6 +1131,7 @@ vpaes_cbc_encrypt: st1 {v0.16b}, [$ivec] // write ivec ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp .Lcbc_abort: ret .size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt @@ -1127,6 +1139,7 @@ vpaes_cbc_encrypt: .type vpaes_cbc_decrypt,%function .align 4 vpaes_cbc_decrypt: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1168,6 +1181,7 @@ vpaes_cbc_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_cbc_decrypt,.-vpaes_cbc_decrypt ___ @@ -1177,6 +1191,7 @@ $code.=<<___; .type vpaes_ecb_encrypt,%function .align 4 vpaes_ecb_encrypt: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1210,6 +1225,7 @@ vpaes_ecb_encrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_ecb_encrypt,.-vpaes_ecb_encrypt @@ -1217,6 +1233,7 @@ vpaes_ecb_encrypt: .type vpaes_ecb_decrypt,%function .align 4 vpaes_ecb_decrypt: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 stp d8,d9,[sp,#-16]! // ABI spec says so @@ -1250,6 +1267,7 @@ vpaes_ecb_decrypt: ldp d10,d11,[sp],#16 ldp d8,d9,[sp],#16 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size vpaes_ecb_decrypt,.-vpaes_ecb_decrypt ___ diff --git a/crypto/aes/asm/vpaes-x86_64.pl b/crypto/aes/asm/vpaes-x86_64.pl index b715aca167d170f6dc0224776c807e3bc789375a..33d293e623d5ba79b5d0ef6c6a3fea65c7a6a817 100644 --- a/crypto/aes/asm/vpaes-x86_64.pl +++ b/crypto/aes/asm/vpaes-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -91,6 +91,7 @@ $code.=<<___; .type _vpaes_encrypt_core,\@abi-omnipotent .align 16 _vpaes_encrypt_core: +.cfi_startproc mov %rdx, %r9 mov \$16, %r11 mov 240(%rdx),%eax @@ -171,6 +172,7 @@ _vpaes_encrypt_core: pxor %xmm4, %xmm0 # 0 = A pshufb %xmm1, %xmm0 ret +.cfi_endproc .size _vpaes_encrypt_core,.-_vpaes_encrypt_core ## @@ -181,6 +183,7 @@ _vpaes_encrypt_core: .type _vpaes_decrypt_core,\@abi-omnipotent .align 16 _vpaes_decrypt_core: +.cfi_startproc mov %rdx, %r9 # load key mov 240(%rdx),%eax movdqa %xmm9, %xmm1 @@ -277,6 +280,7 @@ _vpaes_decrypt_core: pxor %xmm4, %xmm0 # 0 = A pshufb %xmm2, %xmm0 ret +.cfi_endproc .size _vpaes_decrypt_core,.-_vpaes_decrypt_core ######################################################## @@ -287,6 +291,7 @@ _vpaes_decrypt_core: .type _vpaes_schedule_core,\@abi-omnipotent .align 16 _vpaes_schedule_core: +.cfi_startproc # rdi = key # rsi = size in bits # rdx = buffer @@ -453,6 +458,7 @@ _vpaes_schedule_core: pxor %xmm6, %xmm6 pxor %xmm7, %xmm7 ret +.cfi_endproc .size _vpaes_schedule_core,.-_vpaes_schedule_core ## @@ -472,6 +478,7 @@ _vpaes_schedule_core: .type _vpaes_schedule_192_smear,\@abi-omnipotent .align 16 _vpaes_schedule_192_smear: +.cfi_startproc pshufd \$0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 pshufd \$0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a pxor %xmm1, %xmm6 # -> c+d c 0 0 @@ -480,6 +487,7 @@ _vpaes_schedule_192_smear: movdqa %xmm6, %xmm0 movhlps %xmm1, %xmm6 # clobber low side with zeros ret +.cfi_endproc .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear ## @@ -503,6 +511,7 @@ _vpaes_schedule_192_smear: .type _vpaes_schedule_round,\@abi-omnipotent .align 16 _vpaes_schedule_round: +.cfi_startproc # extract rcon from xmm8 pxor %xmm1, %xmm1 palignr \$15, %xmm8, %xmm1 @@ -556,6 +565,7 @@ _vpaes_schedule_low_round: pxor %xmm7, %xmm0 movdqa %xmm0, %xmm7 ret +.cfi_endproc .size _vpaes_schedule_round,.-_vpaes_schedule_round ## @@ -570,6 +580,7 @@ _vpaes_schedule_low_round: .type _vpaes_schedule_transform,\@abi-omnipotent .align 16 _vpaes_schedule_transform: +.cfi_startproc movdqa %xmm9, %xmm1 pandn %xmm0, %xmm1 psrld \$4, %xmm1 @@ -580,6 +591,7 @@ _vpaes_schedule_transform: pshufb %xmm1, %xmm0 pxor %xmm2, %xmm0 ret +.cfi_endproc .size _vpaes_schedule_transform,.-_vpaes_schedule_transform ## @@ -608,6 +620,7 @@ _vpaes_schedule_transform: .type _vpaes_schedule_mangle,\@abi-omnipotent .align 16 _vpaes_schedule_mangle: +.cfi_startproc movdqa %xmm0, %xmm4 # save xmm0 for later movdqa .Lk_mc_forward(%rip),%xmm5 test %rcx, %rcx @@ -672,6 +685,7 @@ _vpaes_schedule_mangle: and \$0x30, %r8 movdqu %xmm3, (%rdx) ret +.cfi_endproc .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle # @@ -681,6 +695,7 @@ _vpaes_schedule_mangle: .type ${PREFIX}_set_encrypt_key,\@function,3 .align 16 ${PREFIX}_set_encrypt_key: +.cfi_startproc ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -723,12 +738,14 @@ ___ $code.=<<___; xor %eax,%eax ret +.cfi_endproc .size ${PREFIX}_set_encrypt_key,.-${PREFIX}_set_encrypt_key .globl ${PREFIX}_set_decrypt_key .type ${PREFIX}_set_decrypt_key,\@function,3 .align 16 ${PREFIX}_set_decrypt_key: +.cfi_startproc ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -776,12 +793,14 @@ ___ $code.=<<___; xor %eax,%eax ret +.cfi_endproc .size ${PREFIX}_set_decrypt_key,.-${PREFIX}_set_decrypt_key .globl ${PREFIX}_encrypt .type ${PREFIX}_encrypt,\@function,3 .align 16 ${PREFIX}_encrypt: +.cfi_startproc ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -819,12 +838,14 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size ${PREFIX}_encrypt,.-${PREFIX}_encrypt .globl ${PREFIX}_decrypt .type ${PREFIX}_decrypt,\@function,3 .align 16 ${PREFIX}_decrypt: +.cfi_startproc ___ $code.=<<___ if ($win64); lea -0xb8(%rsp),%rsp @@ -862,6 +883,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size ${PREFIX}_decrypt,.-${PREFIX}_decrypt ___ { @@ -874,6 +896,7 @@ $code.=<<___; .type ${PREFIX}_cbc_encrypt,\@function,6 .align 16 ${PREFIX}_cbc_encrypt: +.cfi_startproc xchg $key,$len ___ ($len,$key)=($key,$len); @@ -944,6 +967,7 @@ ___ $code.=<<___; .Lcbc_abort: ret +.cfi_endproc .size ${PREFIX}_cbc_encrypt,.-${PREFIX}_cbc_encrypt ___ } @@ -957,6 +981,7 @@ $code.=<<___; .type _vpaes_preheat,\@abi-omnipotent .align 16 _vpaes_preheat: +.cfi_startproc lea .Lk_s0F(%rip), %r10 movdqa -0x20(%r10), %xmm10 # .Lk_inv movdqa -0x10(%r10), %xmm11 # .Lk_inv+16 @@ -966,6 +991,7 @@ _vpaes_preheat: movdqa 0x50(%r10), %xmm15 # .Lk_sb2 movdqa 0x60(%r10), %xmm14 # .Lk_sb2+16 ret +.cfi_endproc .size _vpaes_preheat,.-_vpaes_preheat ######################################################## ## ## diff --git a/crypto/armcap.c b/crypto/armcap.c index 1b3c2722d1e168e249a686bb30886323c7b26e9d..58e54f0da2e17ff83ca8281ca3e83964018a1430 100644 --- a/crypto/armcap.c +++ b/crypto/armcap.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -62,14 +62,12 @@ uint32_t OPENSSL_rdtsc(void) # if defined(__GNUC__) && __GNUC__>=2 void OPENSSL_cpuid_setup(void) __attribute__ ((constructor)); # endif -/* - * Use a weak reference to getauxval() so we can use it if it is available but - * don't break the build if it is not. - */ -# if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) -extern unsigned long getauxval(unsigned long type) __attribute__ ((weak)); -# else -static unsigned long (*getauxval) (unsigned long) = NULL; + +# if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +# if __GLIBC_PREREQ(2, 16) +# include <sys/auxv.h> +# define OSSL_IMPLEMENT_GETAUXVAL +# endif # endif /* @@ -134,6 +132,33 @@ void OPENSSL_cpuid_setup(void) */ # endif + OPENSSL_armcap_P = 0; + +# ifdef OSSL_IMPLEMENT_GETAUXVAL + if (getauxval(HWCAP) & HWCAP_NEON) { + unsigned long hwcap = getauxval(HWCAP_CE); + + OPENSSL_armcap_P |= ARMV7_NEON; + + if (hwcap & HWCAP_CE_AES) + OPENSSL_armcap_P |= ARMV8_AES; + + if (hwcap & HWCAP_CE_PMULL) + OPENSSL_armcap_P |= ARMV8_PMULL; + + if (hwcap & HWCAP_CE_SHA1) + OPENSSL_armcap_P |= ARMV8_SHA1; + + if (hwcap & HWCAP_CE_SHA256) + OPENSSL_armcap_P |= ARMV8_SHA256; + +# ifdef __aarch64__ + if (hwcap & HWCAP_CE_SHA512) + OPENSSL_armcap_P |= ARMV8_SHA512; +# endif + } +# endif + sigfillset(&all_masked); sigdelset(&all_masked, SIGILL); sigdelset(&all_masked, SIGTRAP); @@ -141,8 +166,6 @@ void OPENSSL_cpuid_setup(void) sigdelset(&all_masked, SIGBUS); sigdelset(&all_masked, SIGSEGV); - OPENSSL_armcap_P = 0; - memset(&ill_act, 0, sizeof(ill_act)); ill_act.sa_handler = ill_handler; ill_act.sa_mask = all_masked; @@ -150,30 +173,9 @@ void OPENSSL_cpuid_setup(void) sigprocmask(SIG_SETMASK, &ill_act.sa_mask, &oset); sigaction(SIGILL, &ill_act, &ill_oact); - if (getauxval != NULL) { - if (getauxval(HWCAP) & HWCAP_NEON) { - unsigned long hwcap = getauxval(HWCAP_CE); - - OPENSSL_armcap_P |= ARMV7_NEON; - - if (hwcap & HWCAP_CE_AES) - OPENSSL_armcap_P |= ARMV8_AES; - - if (hwcap & HWCAP_CE_PMULL) - OPENSSL_armcap_P |= ARMV8_PMULL; - - if (hwcap & HWCAP_CE_SHA1) - OPENSSL_armcap_P |= ARMV8_SHA1; - - if (hwcap & HWCAP_CE_SHA256) - OPENSSL_armcap_P |= ARMV8_SHA256; - -# ifdef __aarch64__ - if (hwcap & HWCAP_CE_SHA512) - OPENSSL_armcap_P |= ARMV8_SHA512; -# endif - } - } else if (sigsetjmp(ill_jmp, 1) == 0) { + /* If we used getauxval, we already have all the values */ +# ifndef OSSL_IMPLEMENT_GETAUXVAL + if (sigsetjmp(ill_jmp, 1) == 0) { _armv7_neon_probe(); OPENSSL_armcap_P |= ARMV7_NEON; if (sigsetjmp(ill_jmp, 1) == 0) { @@ -191,13 +193,16 @@ void OPENSSL_cpuid_setup(void) _armv8_sha256_probe(); OPENSSL_armcap_P |= ARMV8_SHA256; } -# if defined(__aarch64__) && !defined(__APPLE__) +# if defined(__aarch64__) && !defined(__APPLE__) if (sigsetjmp(ill_jmp, 1) == 0) { _armv8_sha512_probe(); OPENSSL_armcap_P |= ARMV8_SHA512; } -# endif +# endif } +# endif + + /* Things that getauxval didn't tell us */ if (sigsetjmp(ill_jmp, 1) == 0) { _armv7_tick(); OPENSSL_armcap_P |= ARMV7_TICK; diff --git a/crypto/asn1/a_digest.c b/crypto/asn1/a_digest.c index f4cc1f2e0eaa52ff1582400b1c0ac4720439ddfd..cc3532ea7df2ffc39a28117c93a1fd60a72f7168 100644 --- a/crypto/asn1/a_digest.c +++ b/crypto/asn1/a_digest.c @@ -23,18 +23,22 @@ int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, unsigned char *md, unsigned int *len) { - int i; + int inl; unsigned char *str, *p; - i = i2d(data, NULL); - if ((str = OPENSSL_malloc(i)) == NULL) { + inl = i2d(data, NULL); + if (inl <= 0) { + ASN1err(ASN1_F_ASN1_DIGEST, ERR_R_INTERNAL_ERROR); + return 0; + } + if ((str = OPENSSL_malloc(inl)) == NULL) { ASN1err(ASN1_F_ASN1_DIGEST, ERR_R_MALLOC_FAILURE); return 0; } p = str; i2d(data, &p); - if (!EVP_Digest(str, i, md, len, type, NULL)) { + if (!EVP_Digest(str, inl, md, len, type, NULL)) { OPENSSL_free(str); return 0; } diff --git a/crypto/asn1/a_sign.c b/crypto/asn1/a_sign.c index 130e23eaaa1e6160a561c8e4a1285cc5eca8c497..146fdb9626281024cbeefcc78dface7da1a4a7c3 100644 --- a/crypto/asn1/a_sign.c +++ b/crypto/asn1/a_sign.c @@ -29,7 +29,8 @@ int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, { EVP_MD_CTX *ctx = EVP_MD_CTX_new(); unsigned char *p, *buf_in = NULL, *buf_out = NULL; - int i, inl = 0, outl = 0, outll = 0; + int i, inl = 0, outl = 0; + size_t inll = 0, outll = 0; X509_ALGOR *a; if (ctx == NULL) { @@ -70,10 +71,15 @@ int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, } } inl = i2d(data, NULL); - buf_in = OPENSSL_malloc((unsigned int)inl); + if (inl <= 0) { + ASN1err(ASN1_F_ASN1_SIGN, ERR_R_INTERNAL_ERROR); + goto err; + } + inll = (size_t)inl; + buf_in = OPENSSL_malloc(inll); outll = outl = EVP_PKEY_size(pkey); - buf_out = OPENSSL_malloc((unsigned int)outl); - if ((buf_in == NULL) || (buf_out == NULL)) { + buf_out = OPENSSL_malloc(outll); + if (buf_in == NULL || buf_out == NULL) { outl = 0; ASN1err(ASN1_F_ASN1_SIGN, ERR_R_MALLOC_FAILURE); goto err; @@ -101,7 +107,7 @@ int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2, signature->flags |= ASN1_STRING_FLAG_BITS_LEFT; err: EVP_MD_CTX_free(ctx); - OPENSSL_clear_free((char *)buf_in, (unsigned int)inl); + OPENSSL_clear_free((char *)buf_in, inll); OPENSSL_clear_free((char *)buf_out, outll); return outl; } @@ -138,7 +144,7 @@ int ASN1_item_sign_ctx(const ASN1_ITEM *it, EVP_PKEY *pkey; unsigned char *buf_in = NULL, *buf_out = NULL; size_t inl = 0, outl = 0, outll = 0; - int signid, paramtype; + int signid, paramtype, buf_len = 0; int rv; type = EVP_MD_CTX_md(ctx); @@ -198,10 +204,16 @@ int ASN1_item_sign_ctx(const ASN1_ITEM *it, } - inl = ASN1_item_i2d(asn, &buf_in, it); + buf_len = ASN1_item_i2d(asn, &buf_in, it); + if (buf_len <= 0) { + outl = 0; + ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_INTERNAL_ERROR); + goto err; + } + inl = buf_len; outll = outl = EVP_PKEY_size(pkey); - buf_out = OPENSSL_malloc((unsigned int)outl); - if ((buf_in == NULL) || (buf_out == NULL)) { + buf_out = OPENSSL_malloc(outll); + if (buf_in == NULL || buf_out == NULL) { outl = 0; ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_MALLOC_FAILURE); goto err; @@ -223,7 +235,7 @@ int ASN1_item_sign_ctx(const ASN1_ITEM *it, signature->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); signature->flags |= ASN1_STRING_FLAG_BITS_LEFT; err: - OPENSSL_clear_free((char *)buf_in, (unsigned int)inl); + OPENSSL_clear_free((char *)buf_in, inl); OPENSSL_clear_free((char *)buf_out, outll); return outl; } diff --git a/crypto/asn1/a_verify.c b/crypto/asn1/a_verify.c index 973d50d24de901c787bcd244ad8998d4271ed0a0..cdaf17c3cbc1b4880156eb7f7201d00e9fbfc6ed 100644 --- a/crypto/asn1/a_verify.c +++ b/crypto/asn1/a_verify.c @@ -48,6 +48,10 @@ int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature, } inl = i2d(data, NULL); + if (inl <= 0) { + ASN1err(ASN1_F_ASN1_VERIFY, ERR_R_INTERNAL_ERROR); + goto err; + } buf_in = OPENSSL_malloc((unsigned int)inl); if (buf_in == NULL) { ASN1err(ASN1_F_ASN1_VERIFY, ERR_R_MALLOC_FAILURE); @@ -87,8 +91,8 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, EVP_MD_CTX *ctx = NULL; unsigned char *buf_in = NULL; int ret = -1, inl = 0; - int mdnid, pknid; + size_t inll = 0; if (!pkey) { ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_PASSED_NULL_PARAMETER); @@ -127,8 +131,8 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, goto err; ret = -1; } else { - const EVP_MD *type; - type = EVP_get_digestbynid(mdnid); + const EVP_MD *type = EVP_get_digestbynid(mdnid); + if (type == NULL) { ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM); @@ -150,11 +154,15 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, } inl = ASN1_item_i2d(asn, &buf_in, it); - + if (inl <= 0) { + ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_INTERNAL_ERROR); + goto err; + } if (buf_in == NULL) { ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_MALLOC_FAILURE); goto err; } + inll = inl; ret = EVP_DigestVerify(ctx, signature->data, (size_t)signature->length, buf_in, inl); @@ -164,7 +172,7 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a, } ret = 1; err: - OPENSSL_clear_free(buf_in, (unsigned int)inl); + OPENSSL_clear_free(buf_in, inll); EVP_MD_CTX_free(ctx); return ret; } diff --git a/crypto/asn1/ameth_lib.c b/crypto/asn1/ameth_lib.c index 9a1644148af5d564163b04c4de15b5acdddf17ee..d7d270dbb5819c984e4912d65bd4695b73019713 100644 --- a/crypto/asn1/ameth_lib.c +++ b/crypto/asn1/ameth_lib.c @@ -140,6 +140,22 @@ int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth) { EVP_PKEY_ASN1_METHOD tmp = { 0, }; + /* + * One of the following must be true: + * + * pem_str == NULL AND ASN1_PKEY_ALIAS is set + * pem_str != NULL AND ASN1_PKEY_ALIAS is clear + * + * Anything else is an error and may lead to a corrupt ASN1 method table + */ + if (!((ameth->pem_str == NULL + && (ameth->pkey_flags & ASN1_PKEY_ALIAS) != 0) + || (ameth->pem_str != NULL + && (ameth->pkey_flags & ASN1_PKEY_ALIAS) == 0))) { + EVPerr(EVP_F_EVP_PKEY_ASN1_ADD0, ERR_R_PASSED_INVALID_ARGUMENT); + return 0; + } + if (app_methods == NULL) { app_methods = sk_EVP_PKEY_ASN1_METHOD_new(ameth_cmp); if (app_methods == NULL) @@ -216,18 +232,6 @@ EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, goto err; } - /* - * One of the following must be true: - * - * pem_str == NULL AND ASN1_PKEY_ALIAS is set - * pem_str != NULL AND ASN1_PKEY_ALIAS is clear - * - * Anything else is an error and may lead to a corrupt ASN1 method table - */ - if (!((pem_str == NULL && (flags & ASN1_PKEY_ALIAS) != 0) - || (pem_str != NULL && (flags & ASN1_PKEY_ALIAS) == 0))) - goto err; - if (pem_str) { ameth->pem_str = OPENSSL_strdup(pem_str); if (!ameth->pem_str) diff --git a/crypto/asn1/charmap.h b/crypto/asn1/charmap.h index bfccac2cb4e317a4e4994715b36ee686d525d1b1..f15d72d73661d3f663d82bf42772223c13dde845 100644 --- a/crypto/asn1/charmap.h +++ b/crypto/asn1/charmap.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/asn1/charmap.pl * - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/crypto/asn1/charmap.pl b/crypto/asn1/charmap.pl index fbab1f3b0ad7ec72f17fd09c5a3fece555724514..dadd8df7749dfad93bb3af58ab3ed1beefa82564 100644 --- a/crypto/asn1/charmap.pl +++ b/crypto/asn1/charmap.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/asn1/d2i_pu.c b/crypto/asn1/d2i_pu.c index 9452e08a5874c654e35d170f1d34b8eb338b5514..7bc16c7bceb408b8e9deb03dc916ca1958f64a60 100644 --- a/crypto/asn1/d2i_pu.c +++ b/crypto/asn1/d2i_pu.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -32,7 +32,7 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, } else ret = *a; - if (!EVP_PKEY_set_type(ret, type)) { + if (type != EVP_PKEY_id(ret) && !EVP_PKEY_set_type(ret, type)) { ASN1err(ASN1_F_D2I_PUBLICKEY, ERR_R_EVP_LIB); goto err; } diff --git a/crypto/bio/b_addr.c b/crypto/bio/b_addr.c index abec7bb8dbba47f04a58945cba8a7b3208a9d955..f295b766fa7346d7ac4c11d4bb1485d9c36b80d4 100644 --- a/crypto/bio/b_addr.c +++ b/crypto/bio/b_addr.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -683,6 +683,12 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type, hints.ai_family = family; hints.ai_socktype = socktype; hints.ai_protocol = protocol; +#ifdef AI_ADDRCONFIG +#ifdef AF_UNSPEC + if (family == AF_UNSPEC) +#endif + hints.ai_flags |= AI_ADDRCONFIG; +#endif if (lookup_type == BIO_LOOKUP_SERVER) hints.ai_flags |= AI_PASSIVE; @@ -782,7 +788,12 @@ int BIO_lookup_ex(const char *host, const char *service, int lookup_type, * anyway [above getaddrinfo/gai_strerror is]. We just let * system administrator figure this out... */ +# if defined(OPENSSL_SYS_VXWORKS) + /* h_errno doesn't exist on VxWorks */ + SYSerr(SYS_F_GETHOSTBYNAME, 1000 ); +# else SYSerr(SYS_F_GETHOSTBYNAME, 1000 + h_errno); +# endif #else SYSerr(SYS_F_GETHOSTBYNAME, WSAGetLastError()); #endif diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index 8de2391267afe8d9d2b33edb03b0750ee12c1d46..057344783d61b791c5c99e812a5092a2d2af1b3d 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -253,9 +253,7 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) } # elif defined(OPENSSL_SYS_WIN32_CYGWIN) int fd = fileno((FILE *)ptr); - if (num & BIO_FP_TEXT) - setmode(fd, O_TEXT); - else + if (!(num & BIO_FP_TEXT)) setmode(fd, O_BINARY); # endif } @@ -279,11 +277,14 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) ret = 0; break; } -# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32_CYGWIN) +# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) if (!(num & BIO_FP_TEXT)) OPENSSL_strlcat(p, "b", sizeof(p)); else OPENSSL_strlcat(p, "t", sizeof(p)); +# elif defined(OPENSSL_SYS_WIN32_CYGWIN) + if (!(num & BIO_FP_TEXT)) + OPENSSL_strlcat(p, "b", sizeof(p)); # endif fp = openssl_fopen(ptr, p); if (fp == NULL) { diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c index e0a97c3b43e188dd740f299c246f47fb404335c9..8c621d6c1e880d6bebdd1b991c89ad77bf836245 100644 --- a/crypto/bio/bss_mem.c +++ b/crypto/bio/bss_mem.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -20,7 +20,7 @@ static long mem_ctrl(BIO *h, int cmd, long arg1, void *arg2); static int mem_new(BIO *h); static int secmem_new(BIO *h); static int mem_free(BIO *data); -static int mem_buf_free(BIO *data, int free_all); +static int mem_buf_free(BIO *data); static int mem_buf_sync(BIO *h); static const BIO_METHOD mem_method = { @@ -57,7 +57,12 @@ static const BIO_METHOD secmem_method = { NULL, /* mem_callback_ctrl */ }; -/* BIO memory stores buffer and read pointer */ +/* + * BIO memory stores buffer and read pointer + * however the roles are different for read only BIOs. + * In that case the readp just stores the original state + * to be used for reset. + */ typedef struct bio_buf_mem_st { struct buf_mem_st *buf; /* allocated buffer */ struct buf_mem_st *readp; /* read pointer */ @@ -140,10 +145,20 @@ static int secmem_new(BIO *bi) static int mem_free(BIO *a) { - return mem_buf_free(a, 1); + BIO_BUF_MEM *bb; + + if (a == NULL) + return 0; + + bb = (BIO_BUF_MEM *)a->ptr; + if (!mem_buf_free(a)) + return 0; + OPENSSL_free(bb->readp); + OPENSSL_free(bb); + return 1; } -static int mem_buf_free(BIO *a, int free_all) +static int mem_buf_free(BIO *a) { if (a == NULL) return 0; @@ -155,11 +170,6 @@ static int mem_buf_free(BIO *a, int free_all) if (a->flags & BIO_FLAGS_MEM_RDONLY) b->data = NULL; BUF_MEM_free(b); - if (free_all) { - OPENSSL_free(bb->readp); - OPENSSL_free(bb); - } - a->ptr = NULL; } return 1; } @@ -187,11 +197,14 @@ static int mem_read(BIO *b, char *out, int outl) BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)b->ptr; BUF_MEM *bm = bbm->readp; + if (b->flags & BIO_FLAGS_MEM_RDONLY) + bm = bbm->buf; BIO_clear_retry_flags(b); ret = (outl >= 0 && (size_t)outl > bm->length) ? (int)bm->length : outl; if ((out != NULL) && (ret > 0)) { memcpy(out, bm->data, ret); bm->length -= ret; + bm->max -= ret; bm->data += ret; } else if (bm->length == 0) { ret = b->num; @@ -236,29 +249,36 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr) BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)b->ptr; BUF_MEM *bm; + if (b->flags & BIO_FLAGS_MEM_RDONLY) + bm = bbm->buf; + else + bm = bbm->readp; + switch (cmd) { case BIO_CTRL_RESET: bm = bbm->buf; if (bm->data != NULL) { - /* For read only case reset to the start again */ - if ((b->flags & BIO_FLAGS_MEM_RDONLY) || (b->flags & BIO_FLAGS_NONCLEAR_RST)) { - bm->length = bm->max; + if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) { + if (b->flags & BIO_FLAGS_NONCLEAR_RST) { + bm->length = bm->max; + } else { + memset(bm->data, 0, bm->max); + bm->length = 0; + } + *bbm->readp = *bbm->buf; } else { - memset(bm->data, 0, bm->max); - bm->length = 0; + /* For read only case just reset to the start again */ + *bbm->buf = *bbm->readp; } - *bbm->readp = *bbm->buf; } break; case BIO_CTRL_EOF: - bm = bbm->readp; ret = (long)(bm->length == 0); break; case BIO_C_SET_BUF_MEM_EOF_RETURN: b->num = (int)num; break; case BIO_CTRL_INFO: - bm = bbm->readp; ret = (long)bm->length; if (ptr != NULL) { pptr = (char **)ptr; @@ -266,16 +286,16 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr) } break; case BIO_C_SET_BUF_MEM: - mem_buf_free(b, 0); + mem_buf_free(b); b->shutdown = (int)num; bbm->buf = ptr; *bbm->readp = *bbm->buf; - b->ptr = bbm; break; case BIO_C_GET_BUF_MEM_PTR: if (ptr != NULL) { - mem_buf_sync(b); - bm = bbm->readp; + if (!(b->flags & BIO_FLAGS_MEM_RDONLY)) + mem_buf_sync(b); + bm = bbm->buf; pptr = (char **)ptr; *pptr = (char *)bm; } @@ -290,7 +310,6 @@ static long mem_ctrl(BIO *b, int cmd, long num, void *ptr) ret = 0L; break; case BIO_CTRL_PENDING: - bm = bbm->readp; ret = (long)bm->length; break; case BIO_CTRL_DUP: @@ -314,6 +333,8 @@ static int mem_gets(BIO *bp, char *buf, int size) BIO_BUF_MEM *bbm = (BIO_BUF_MEM *)bp->ptr; BUF_MEM *bm = bbm->readp; + if (bp->flags & BIO_FLAGS_MEM_RDONLY) + bm = bbm->buf; BIO_clear_retry_flags(bp); j = bm->length; if ((size - 1) < j) diff --git a/crypto/blake2/blake2b.c b/crypto/blake2/blake2b.c index 829ba5b50a5c44a3ea743018894e07071807e678..4b353dd498bb0cd41509380ad1ab10ab399a1697 100644 --- a/crypto/blake2/blake2b.c +++ b/crypto/blake2/blake2b.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -23,10 +23,10 @@ static const uint64_t blake2b_IV[8] = { - 0x6a09e667f3bcc908U, 0xbb67ae8584caa73bU, - 0x3c6ef372fe94f82bU, 0xa54ff53a5f1d36f1U, - 0x510e527fade682d1U, 0x9b05688c2b3e6c1fU, - 0x1f83d9abfb41bd6bU, 0x5be0cd19137e2179U + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL }; static const uint8_t blake2b_sigma[12][16] = diff --git a/crypto/bn/asm/armv8-mont.pl b/crypto/bn/asm/armv8-mont.pl index 5d5af1b6be259800dcce4236534e02c7b9c6d092..d8347bf932492895ea80366da3ea9a912e9d30b3 100755 --- a/crypto/bn/asm/armv8-mont.pl +++ b/crypto/bn/asm/armv8-mont.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -287,6 +287,7 @@ __bn_sqr8x_mont: cmp $ap,$bp b.ne __bn_mul4x_mont .Lsqr8x_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1040,6 +1041,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + .inst 0xd50323bf // autiasp ret .size __bn_sqr8x_mont,.-__bn_sqr8x_mont ___ @@ -1063,6 +1065,7 @@ $code.=<<___; .type __bn_mul4x_mont,%function .align 5 __bn_mul4x_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1496,6 +1499,7 @@ __bn_mul4x_mont: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldr x29,[sp],#128 + .inst 0xd50323bf // autiasp ret .size __bn_mul4x_mont,.-__bn_mul4x_mont ___ diff --git a/crypto/bn/asm/ia64.S b/crypto/bn/asm/ia64.S index d235c45e2d632166f374c2d3fab95ecdea642464..0a26735c697923736e9a74d675648d57a5340f6b 100644 --- a/crypto/bn/asm/ia64.S +++ b/crypto/bn/asm/ia64.S @@ -3,7 +3,7 @@ .ident "ia64.S, Version 2.1" .ident "IA-64 ISA artwork by Andy Polyakov <appro@openssl.org>" -// Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +// Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. // // Licensed under the OpenSSL license (the "License"). You may not use // this file except in compliance with the License. You can obtain a copy @@ -48,7 +48,7 @@ // on Itanium2! What to do? Reschedule loops for Itanium2? But then // Itanium would exhibit anti-scalability. So I've chosen to reschedule // for worst latency for every instruction aiming for best *all-round* -// performance. +// performance. // Q. How much faster does it get? // A. Here is the output from 'openssl speed rsa dsa' for vanilla @@ -472,7 +472,7 @@ bn_mul_add_words: .global bn_sqr_words# .proc bn_sqr_words# .align 64 -.skip 32 // makes the loop body aligned at 64-byte boundary +.skip 32 // makes the loop body aligned at 64-byte boundary bn_sqr_words: .prologue .save ar.pfs,r2 diff --git a/crypto/bn/asm/mips.pl b/crypto/bn/asm/mips.pl index da35ec1b30cea5496b758ba0da317a8c6c1ccc3a..38b796e375fec283d49838d92612c04739447cd5 100644 --- a/crypto/bn/asm/mips.pl +++ b/crypto/bn/asm/mips.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2010-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -89,7 +89,7 @@ if ($flavour =~ /64|n32/i) { $SZREG=4; $REG_S="sw"; $REG_L="lw"; - $code=".set mips2\n"; + $code="#if !(defined (__mips_isa_rev) && (__mips_isa_rev >= 6))\n.set mips2\n#endif\n"; } # Below is N32/64 register layout used in the original module. @@ -798,6 +798,11 @@ $code.=<<___; move $a0,$v0 .end bn_sub_words_internal +#if 0 +/* + * The bn_div_3_words entry point is re-used for constant-time interface. + * Implementation is retained as hystorical reference. + */ .align 5 .globl bn_div_3_words .ent bn_div_3_words @@ -877,6 +882,7 @@ $code.=<<___; jr $ra move $a0,$v0 .end bn_div_3_words_internal +#endif .align 5 .globl bn_div_words diff --git a/crypto/bn/asm/ppc.pl b/crypto/bn/asm/ppc.pl index e37068192f2f5e39196b372e8e65854f61bc0f9f..d6d4e66f92e954d20bfa085caef37e740324f9c9 100644 --- a/crypto/bn/asm/ppc.pl +++ b/crypto/bn/asm/ppc.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -258,6 +258,7 @@ $data=<<EOF; # .text section .machine "any" + .text # # NOTE: The following label name should be changed to diff --git a/crypto/bn/asm/rsaz-avx2.pl b/crypto/bn/asm/rsaz-avx2.pl index f1292cc75cfb5eed601def82b63447ecb3079706..85cd73c668bddab6f328906712a39c5755601d5e 100755 --- a/crypto/bn/asm/rsaz-avx2.pl +++ b/crypto/bn/asm/rsaz-avx2.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2013-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2013-2019 The OpenSSL Project Authors. All Rights Reserved. # Copyright (c) 2012, Intel Corporation. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use @@ -1492,6 +1492,7 @@ $code.=<<___; .type rsaz_1024_red2norm_avx2,\@abi-omnipotent .align 32 rsaz_1024_red2norm_avx2: +.cfi_startproc sub \$-128,$inp # size optimization xor %rax,%rax ___ @@ -1525,12 +1526,14 @@ ___ } $code.=<<___; ret +.cfi_endproc .size rsaz_1024_red2norm_avx2,.-rsaz_1024_red2norm_avx2 .globl rsaz_1024_norm2red_avx2 .type rsaz_1024_norm2red_avx2,\@abi-omnipotent .align 32 rsaz_1024_norm2red_avx2: +.cfi_startproc sub \$-128,$out # size optimization mov ($inp),@T[0] mov \$0x1fffffff,%eax @@ -1562,6 +1565,7 @@ $code.=<<___; mov @T[0],`8*($j+2)-128`($out) mov @T[0],`8*($j+3)-128`($out) ret +.cfi_endproc .size rsaz_1024_norm2red_avx2,.-rsaz_1024_norm2red_avx2 ___ } @@ -1573,6 +1577,7 @@ $code.=<<___; .type rsaz_1024_scatter5_avx2,\@abi-omnipotent .align 32 rsaz_1024_scatter5_avx2: +.cfi_startproc vzeroupper vmovdqu .Lscatter_permd(%rip),%ymm5 shl \$4,$power @@ -1592,6 +1597,7 @@ rsaz_1024_scatter5_avx2: vzeroupper ret +.cfi_endproc .size rsaz_1024_scatter5_avx2,.-rsaz_1024_scatter5_avx2 .globl rsaz_1024_gather5_avx2 diff --git a/crypto/bn/asm/sparcv8plus.S b/crypto/bn/asm/sparcv8plus.S index fe4699b2bdd144cc619e124c0a2858329a55a815..d520ffa7c24834abc9246b34ffb155241a9f9e69 100644 --- a/crypto/bn/asm/sparcv8plus.S +++ b/crypto/bn/asm/sparcv8plus.S @@ -3,7 +3,7 @@ /* * ==================================================================== - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -154,9 +154,9 @@ .register %g2,#scratch .register %g3,#scratch # define FRAME_SIZE -192 -#else +#else # define FRAME_SIZE -96 -#endif +#endif /* * GNU assembler can't stand stuw:-( */ diff --git a/crypto/bn/asm/x86_64-mont5.pl b/crypto/bn/asm/x86_64-mont5.pl index ad6e8ada3ce75ea9814163462a455454f776bca8..f43e13d11643a58fde41a069b400bf4b010c09a2 100755 --- a/crypto/bn/asm/x86_64-mont5.pl +++ b/crypto/bn/asm/x86_64-mont5.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -2910,6 +2910,7 @@ bn_powerx5: .align 32 bn_sqrx8x_internal: __bn_sqrx8x_internal: +.cfi_startproc ################################################################## # Squaring part: # @@ -3542,6 +3543,7 @@ __bn_sqrx8x_reduction: cmp 8+8(%rsp),%r8 # end of t[]? jb .Lsqrx8x_reduction_loop ret +.cfi_endproc .size bn_sqrx8x_internal,.-bn_sqrx8x_internal ___ } diff --git a/crypto/bn/bn_ctx.c b/crypto/bn/bn_ctx.c index aa08b31a34bb9b9d93d7951ffe7624b17fe2ccf2..90cecea2aa5d28ad1b84f9fa52418d85b327860f 100644 --- a/crypto/bn/bn_ctx.c +++ b/crypto/bn/bn_ctx.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -194,6 +194,8 @@ void BN_CTX_start(BN_CTX *ctx) void BN_CTX_end(BN_CTX *ctx) { + if (ctx == NULL) + return; CTXDBG_ENTRY("BN_CTX_end", ctx); if (ctx->err_stack) ctx->err_stack--; @@ -227,6 +229,8 @@ BIGNUM *BN_CTX_get(BN_CTX *ctx) } /* OK, make sure the returned bignum is "zero" */ BN_zero(ret); + /* clear BN_FLG_CONSTTIME if leaked from previous frames */ + ret->flags &= (~BN_FLG_CONSTTIME); ctx->used++; CTXDBG_RET(ctx, ret); return ret; @@ -256,7 +260,7 @@ static int BN_STACK_push(BN_STACK *st, unsigned int idx) unsigned int newsize = st->size ? (st->size * 3 / 2) : BN_CTX_START_FRAMES; unsigned int *newitems; - + if ((newitems = OPENSSL_malloc(sizeof(*newitems) * newsize)) == NULL) { BNerr(BN_F_BN_STACK_PUSH, ERR_R_MALLOC_FAILURE); return 0; @@ -310,7 +314,7 @@ static BIGNUM *BN_POOL_get(BN_POOL *p, int flag) /* Full; allocate a new pool item and link it in. */ if (p->used == p->size) { BN_POOL_ITEM *item; - + if ((item = OPENSSL_malloc(sizeof(*item))) == NULL) { BNerr(BN_F_BN_POOL_GET, ERR_R_MALLOC_FAILURE); return NULL; diff --git a/crypto/bn/bn_depr.c b/crypto/bn/bn_depr.c index 7d89214b1c16a1eddd9403e38d3ab989e53184ff..58bcf197a490eb9aa6b340cf2f4d0f4a46cee4f7 100644 --- a/crypto/bn/bn_depr.c +++ b/crypto/bn/bn_depr.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -40,7 +40,7 @@ BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, goto err; /* we have a prime :-) */ - return ret; + return rnd; err: BN_free(rnd); return NULL; diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c index 70add10c7d6cefdf45642499d39df58d31e19516..3a6fa0a1b194b07e3ccb9069e294364053688a74 100644 --- a/crypto/bn/bn_div.c +++ b/crypto/bn/bn_div.c @@ -7,6 +7,7 @@ * https://www.openssl.org/source/license.html */ +#include <assert.h> #include <openssl/bn.h> #include "internal/cryptlib.h" #include "bn_lcl.h" @@ -86,6 +87,77 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, #else +# if defined(BN_DIV3W) +BN_ULONG bn_div_3_words(const BN_ULONG *m, BN_ULONG d1, BN_ULONG d0); +# elif 0 +/* + * This is #if-ed away, because it's a reference for assembly implementations, + * where it can and should be made constant-time. But if you want to test it, + * just replace 0 with 1. + */ +# if BN_BITS2 == 64 && defined(__SIZEOF_INT128__) && __SIZEOF_INT128__==16 +# undef BN_ULLONG +# define BN_ULLONG __uint128_t +# define BN_LLONG +# endif + +# ifdef BN_LLONG +# define BN_DIV3W +/* + * Interface is somewhat quirky, |m| is pointer to most significant limb, + * and less significant limb is referred at |m[-1]|. This means that caller + * is responsible for ensuring that |m[-1]| is valid. Second condition that + * has to be met is that |d0|'s most significant bit has to be set. Or in + * other words divisor has to be "bit-aligned to the left." bn_div_fixed_top + * does all this. The subroutine considers four limbs, two of which are + * "overlapping," hence the name... + */ +static BN_ULONG bn_div_3_words(const BN_ULONG *m, BN_ULONG d1, BN_ULONG d0) +{ + BN_ULLONG R = ((BN_ULLONG)m[0] << BN_BITS2) | m[-1]; + BN_ULLONG D = ((BN_ULLONG)d0 << BN_BITS2) | d1; + BN_ULONG Q = 0, mask; + int i; + + for (i = 0; i < BN_BITS2; i++) { + Q <<= 1; + if (R >= D) { + Q |= 1; + R -= D; + } + D >>= 1; + } + + mask = 0 - (Q >> (BN_BITS2 - 1)); /* does it overflow? */ + + Q <<= 1; + Q |= (R >= D); + + return (Q | mask) & BN_MASK2; +} +# endif +# endif + +static int bn_left_align(BIGNUM *num) +{ + BN_ULONG *d = num->d, n, m, rmask; + int top = num->top; + int rshift = BN_num_bits_word(d[top - 1]), lshift, i; + + lshift = BN_BITS2 - rshift; + rshift %= BN_BITS2; /* say no to undefined behaviour */ + rmask = (BN_ULONG)0 - rshift; /* rmask = 0 - (rshift != 0) */ + rmask |= rmask >> 8; + + for (i = 0, m = 0; i < top; i++) { + n = d[i]; + d[i] = ((n << lshift) | m) & BN_MASK2; + m = (n >> rshift) & rmask; + } + + return lshift; +} + # if !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) \ && !defined(PEDANTIC) && !defined(BN_DIV3W) # if defined(__GNUC__) && __GNUC__>=2 @@ -137,55 +209,73 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, BN_CTX *ctx) { - int norm_shift, i, loop; - BIGNUM *tmp, wnum, *snum, *sdiv, *res; - BN_ULONG *resp, *wnump; - BN_ULONG d0, d1; - int num_n, div_n; - int no_branch = 0; + int ret; + + if (BN_is_zero(divisor)) { + BNerr(BN_F_BN_DIV, BN_R_DIV_BY_ZERO); + return 0; + } /* * Invalid zero-padding would have particularly bad consequences so don't * just rely on bn_check_top() here (bn_check_top() works only for * BN_DEBUG builds) */ - if ((num->top > 0 && num->d[num->top - 1] == 0) || - (divisor->top > 0 && divisor->d[divisor->top - 1] == 0)) { + if (divisor->d[divisor->top - 1] == 0) { BNerr(BN_F_BN_DIV, BN_R_NOT_INITIALIZED); return 0; } - bn_check_top(num); - bn_check_top(divisor); + ret = bn_div_fixed_top(dv, rm, num, divisor, ctx); - if ((BN_get_flags(num, BN_FLG_CONSTTIME) != 0) - || (BN_get_flags(divisor, BN_FLG_CONSTTIME) != 0)) { - no_branch = 1; + if (ret) { + if (dv != NULL) + bn_correct_top(dv); + if (rm != NULL) + bn_correct_top(rm); } - bn_check_top(dv); - bn_check_top(rm); - /*- bn_check_top(num); *//* - * 'num' has been checked already - */ - /*- bn_check_top(divisor); *//* - * 'divisor' has been checked already - */ + return ret; +} - if (BN_is_zero(divisor)) { - BNerr(BN_F_BN_DIV, BN_R_DIV_BY_ZERO); - return 0; - } +/* + * It's argued that *length* of *significant* part of divisor is public. + * Even if it's private modulus that is. Again, *length* is assumed + * public, but not *value*. Former is likely to be pre-defined by + * algorithm with bit granularity, though below subroutine is invariant + * of limb length. Thanks to this assumption we can require that |divisor| + * may not be zero-padded, yet claim this subroutine "constant-time"(*). + * This is because zero-padded dividend, |num|, is tolerated, so that + * caller can pass dividend of public length(*), but with smaller amount + * of significant limbs. This naturally means that quotient, |dv|, would + * contain correspongly less significant limbs as well, and will be zero- + * padded accordingly. Returned remainder, |rm|, will have same bit length + * as divisor, also zero-padded if needed. These actually leave sign bits + * in ambiguous state. In sense that we try to avoid negative zeros, while + * zero-padded zeros would retain sign. + * + * (*) "Constant-time-ness" has two pre-conditions: + * + * - availability of constant-time bn_div_3_words; + * - dividend is at least as "wide" as divisor, limb-wise, zero-padded + * if so requied, which shouldn't be a privacy problem, because + * divisor's length is considered public; + */ +int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, + const BIGNUM *divisor, BN_CTX *ctx) +{ + int norm_shift, i, j, loop; + BIGNUM *tmp, *snum, *sdiv, *res; + BN_ULONG *resp, *wnum, *wnumtop; + BN_ULONG d0, d1; + int num_n, div_n; - if (!no_branch && BN_ucmp(num, divisor) < 0) { - if (rm != NULL) { - if (BN_copy(rm, num) == NULL) - return 0; - } - if (dv != NULL) - BN_zero(dv); - return 1; - } + assert(divisor->top > 0 && divisor->d[divisor->top - 1] != 0); + + bn_check_top(num); + bn_check_top(divisor); + bn_check_top(dv); + bn_check_top(rm); BN_CTX_start(ctx); res = (dv == NULL) ? BN_CTX_get(ctx) : dv; @@ -196,113 +286,72 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, goto err; /* First we normalise the numbers */ - norm_shift = BN_BITS2 - ((BN_num_bits(divisor)) % BN_BITS2); - if (!(BN_lshift(sdiv, divisor, norm_shift))) + if (!BN_copy(sdiv, divisor)) goto err; + norm_shift = bn_left_align(sdiv); sdiv->neg = 0; - norm_shift += BN_BITS2; - if (!(BN_lshift(snum, num, norm_shift))) + /* + * Note that bn_lshift_fixed_top's output is always one limb longer + * than input, even when norm_shift is zero. This means that amount of + * inner loop iterations is invariant of dividend value, and that one + * doesn't need to compare dividend and divisor if they were originally + * of the same bit length. + */ + if (!(bn_lshift_fixed_top(snum, num, norm_shift))) goto err; - snum->neg = 0; - - if (no_branch) { - /* - * Since we don't know whether snum is larger than sdiv, we pad snum - * with enough zeroes without changing its value. - */ - if (snum->top <= sdiv->top + 1) { - if (bn_wexpand(snum, sdiv->top + 2) == NULL) - goto err; - for (i = snum->top; i < sdiv->top + 2; i++) - snum->d[i] = 0; - snum->top = sdiv->top + 2; - } else { - if (bn_wexpand(snum, snum->top + 1) == NULL) - goto err; - snum->d[snum->top] = 0; - snum->top++; - } - } div_n = sdiv->top; num_n = snum->top; + + if (num_n <= div_n) { + /* caller didn't pad dividend -> no constant-time guarantee... */ + if (bn_wexpand(snum, div_n + 1) == NULL) + goto err; + memset(&(snum->d[num_n]), 0, (div_n - num_n + 1) * sizeof(BN_ULONG)); + snum->top = num_n = div_n + 1; + } + loop = num_n - div_n; /* * Lets setup a 'window' into snum This is the part that corresponds to * the current 'area' being divided */ - wnum.neg = 0; - wnum.d = &(snum->d[loop]); - wnum.top = div_n; - wnum.flags = BN_FLG_STATIC_DATA; - /* - * only needed when BN_ucmp messes up the values between top and max - */ - wnum.dmax = snum->dmax - loop; /* so we don't step out of bounds */ + wnum = &(snum->d[loop]); + wnumtop = &(snum->d[num_n - 1]); /* Get the top 2 words of sdiv */ - /* div_n=sdiv->top; */ d0 = sdiv->d[div_n - 1]; d1 = (div_n == 1) ? 0 : sdiv->d[div_n - 2]; - /* pointer to the 'top' of snum */ - wnump = &(snum->d[num_n - 1]); - - /* Setup to 'res' */ - if (!bn_wexpand(res, (loop + 1))) + /* Setup quotient */ + if (!bn_wexpand(res, loop)) goto err; res->neg = (num->neg ^ divisor->neg); - res->top = loop - no_branch; - resp = &(res->d[loop - 1]); + res->top = loop; + res->flags |= BN_FLG_FIXED_TOP; + resp = &(res->d[loop]); /* space for temp */ if (!bn_wexpand(tmp, (div_n + 1))) goto err; - if (!no_branch) { - if (BN_ucmp(&wnum, sdiv) >= 0) { - /* - * If BN_DEBUG_RAND is defined BN_ucmp changes (via bn_pollute) - * the const bignum arguments => clean the values between top and - * max again - */ - bn_clear_top2max(&wnum); - bn_sub_words(wnum.d, wnum.d, sdiv->d, div_n); - *resp = 1; - } else - res->top--; - } - - /* Increase the resp pointer so that we never create an invalid pointer. */ - resp++; - - /* - * if res->top == 0 then clear the neg value otherwise decrease the resp - * pointer - */ - if (res->top == 0) - res->neg = 0; - else - resp--; - - for (i = 0; i < loop - 1; i++, wnump--) { + for (i = 0; i < loop; i++, wnumtop--) { BN_ULONG q, l0; /* * the first part of the loop uses the top two words of snum and sdiv * to calculate a BN_ULONG q such that | wnum - sdiv * q | < sdiv */ -# if defined(BN_DIV3W) && !defined(OPENSSL_NO_ASM) - BN_ULONG bn_div_3_words(BN_ULONG *, BN_ULONG, BN_ULONG); - q = bn_div_3_words(wnump, d1, d0); +# if defined(BN_DIV3W) + q = bn_div_3_words(wnumtop, d1, d0); # else BN_ULONG n0, n1, rem = 0; - n0 = wnump[0]; - n1 = wnump[-1]; + n0 = wnumtop[0]; + n1 = wnumtop[-1]; if (n0 == d0) q = BN_MASK2; else { /* n0 < d0 */ - + BN_ULONG n2 = (wnumtop == wnum) ? 0 : wnumtop[-2]; # ifdef BN_LLONG BN_ULLONG t2; @@ -322,7 +371,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, t2 = (BN_ULLONG) d1 *q; for (;;) { - if (t2 <= ((((BN_ULLONG) rem) << BN_BITS2) | wnump[-2])) + if (t2 <= ((((BN_ULLONG) rem) << BN_BITS2) | n2)) break; q--; rem += d0; @@ -355,7 +404,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, # endif for (;;) { - if ((t2h < rem) || ((t2h == rem) && (t2l <= wnump[-2]))) + if ((t2h < rem) || ((t2h == rem) && (t2l <= n2))) break; q--; rem += d0; @@ -371,43 +420,33 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor, l0 = bn_mul_words(tmp->d, sdiv->d, div_n, q); tmp->d[div_n] = l0; - wnum.d--; + wnum--; /* - * ingore top values of the bignums just sub the two BN_ULONG arrays + * ignore top values of the bignums just sub the two BN_ULONG arrays * with bn_sub_words */ - if (bn_sub_words(wnum.d, wnum.d, tmp->d, div_n + 1)) { - /* - * Note: As we have considered only the leading two BN_ULONGs in - * the calculation of q, sdiv * q might be greater than wnum (but - * then (q-1) * sdiv is less or equal than wnum) - */ - q--; - if (bn_add_words(wnum.d, wnum.d, sdiv->d, div_n)) - /* - * we can't have an overflow here (assuming that q != 0, but - * if q == 0 then tmp is zero anyway) - */ - (*wnump)++; - } - /* store part of the result */ - resp--; - *resp = q; - } - bn_correct_top(snum); - if (rm != NULL) { + l0 = bn_sub_words(wnum, wnum, tmp->d, div_n + 1); + q -= l0; /* - * Keep a copy of the neg flag in num because if rm==num BN_rshift() - * will overwrite it. + * Note: As we have considered only the leading two BN_ULONGs in + * the calculation of q, sdiv * q might be greater than wnum (but + * then (q-1) * sdiv is less or equal than wnum) */ - int neg = num->neg; - BN_rshift(rm, snum, norm_shift); - if (!BN_is_zero(rm)) - rm->neg = neg; - bn_check_top(rm); + for (l0 = 0 - l0, j = 0; j < div_n; j++) + tmp->d[j] = sdiv->d[j] & l0; + l0 = bn_add_words(wnum, wnum, tmp->d, div_n); + (*wnumtop) += l0; + assert((*wnumtop) == 0); + + /* store part of the result */ + *--resp = q; } - if (no_branch) - bn_correct_top(res); + /* snum holds remainder, it's as wide as divisor */ + snum->neg = num->neg; + snum->top = div_n; + snum->flags |= BN_FLG_FIXED_TOP; + if (rm != NULL) + bn_rshift_fixed_top(rm, snum, norm_shift); BN_CTX_end(ctx); return 1; err: diff --git a/crypto/bn/bn_exp.c b/crypto/bn/bn_exp.c index c026ffcb339ceca205378df8fe63a92dbdb5b0e3..88f2baf0e553cf6629644a9a415be643dd0f07c4 100644 --- a/crypto/bn/bn_exp.c +++ b/crypto/bn/bn_exp.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -648,34 +648,41 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, goto err; } + if (a->neg || BN_ucmp(a, m) >= 0) { + BIGNUM *reduced = BN_CTX_get(ctx); + if (reduced == NULL + || !BN_nnmod(reduced, a, m, ctx)) { + goto err; + } + a = reduced; + } + #ifdef RSAZ_ENABLED - if (!a->neg) { - /* - * If the size of the operands allow it, perform the optimized - * RSAZ exponentiation. For further information see - * crypto/bn/rsaz_exp.c and accompanying assembly modules. - */ - if ((16 == a->top) && (16 == p->top) && (BN_num_bits(m) == 1024) - && rsaz_avx2_eligible()) { - if (NULL == bn_wexpand(rr, 16)) - goto err; - RSAZ_1024_mod_exp_avx2(rr->d, a->d, p->d, m->d, mont->RR.d, - mont->n0[0]); - rr->top = 16; - rr->neg = 0; - bn_correct_top(rr); - ret = 1; + /* + * If the size of the operands allow it, perform the optimized + * RSAZ exponentiation. For further information see + * crypto/bn/rsaz_exp.c and accompanying assembly modules. + */ + if ((16 == a->top) && (16 == p->top) && (BN_num_bits(m) == 1024) + && rsaz_avx2_eligible()) { + if (NULL == bn_wexpand(rr, 16)) goto err; - } else if ((8 == a->top) && (8 == p->top) && (BN_num_bits(m) == 512)) { - if (NULL == bn_wexpand(rr, 8)) - goto err; - RSAZ_512_mod_exp(rr->d, a->d, p->d, m->d, mont->n0[0], mont->RR.d); - rr->top = 8; - rr->neg = 0; - bn_correct_top(rr); - ret = 1; + RSAZ_1024_mod_exp_avx2(rr->d, a->d, p->d, m->d, mont->RR.d, + mont->n0[0]); + rr->top = 16; + rr->neg = 0; + bn_correct_top(rr); + ret = 1; + goto err; + } else if ((8 == a->top) && (8 == p->top) && (BN_num_bits(m) == 512)) { + if (NULL == bn_wexpand(rr, 8)) goto err; - } + RSAZ_512_mod_exp(rr->d, a->d, p->d, m->d, mont->n0[0], mont->RR.d); + rr->top = 8; + rr->neg = 0; + bn_correct_top(rr); + ret = 1; + goto err; } #endif @@ -747,12 +754,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, goto err; /* prepare a^1 in Montgomery domain */ - if (a->neg || BN_ucmp(a, m) >= 0) { - if (!BN_nnmod(&am, a, m, ctx)) - goto err; - if (!bn_to_mont_fixed_top(&am, &am, mont, ctx)) - goto err; - } else if (!bn_to_mont_fixed_top(&am, a, mont, ctx)) + if (!bn_to_mont_fixed_top(&am, a, mont, ctx)) goto err; #if defined(SPARC_T4_MONT) diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c index 80f910c807793490908cb8abbba286787397c91f..f93bbcfcc71f7f9fb91e0bf7ac4085fba02f46b2 100644 --- a/crypto/bn/bn_lib.c +++ b/crypto/bn/bn_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -338,6 +338,8 @@ void BN_swap(BIGNUM *a, BIGNUM *b) void BN_clear(BIGNUM *a) { + if (a == NULL) + return; bn_check_top(a); if (a->d != NULL) OPENSSL_cleanse(a->d, sizeof(*a->d) * a->dmax); @@ -695,6 +697,9 @@ int bn_cmp_words(const BN_ULONG *a, const BN_ULONG *b, int n) int i; BN_ULONG aa, bb; + if (n == 0) + return 0; + aa = a[n - 1]; bb = b[n - 1]; if (aa != bb) @@ -737,26 +742,25 @@ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, int cl, int dl) return bn_cmp_words(a, b, cl); } -/* +/*- * Constant-time conditional swap of a and b. - * a and b are swapped if condition is not 0. The code assumes that at most one bit of condition is set. - * nwords is the number of words to swap. The code assumes that at least nwords are allocated in both a and b, - * and that no more than nwords are used by either a or b. - * a and b cannot be the same number + * a and b are swapped if condition is not 0. + * nwords is the number of words to swap. + * Assumes that at least nwords are allocated in both a and b. + * Assumes that no more than nwords are used by either a or b. */ void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords) { BN_ULONG t; int i; + if (a == b) + return; + bn_wcheck_size(a, nwords); bn_wcheck_size(b, nwords); - assert(a != b); - assert((condition & (condition - 1)) == 0); - assert(sizeof(BN_ULONG) >= sizeof(int)); - - condition = ((condition - 1) >> (BN_BITS2 - 1)) - 1; + condition = ((~condition & ((condition - 1))) >> (BN_BITS2 - 1)) - 1; t = (a->top ^ b->top) & condition; a->top ^= t; @@ -794,42 +798,16 @@ void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords) a->flags ^= t; b->flags ^= t; -#define BN_CONSTTIME_SWAP(ind) \ - do { \ - t = (a->d[ind] ^ b->d[ind]) & condition; \ - a->d[ind] ^= t; \ - b->d[ind] ^= t; \ - } while (0) - - switch (nwords) { - default: - for (i = 10; i < nwords; i++) - BN_CONSTTIME_SWAP(i); - /* Fallthrough */ - case 10: - BN_CONSTTIME_SWAP(9); /* Fallthrough */ - case 9: - BN_CONSTTIME_SWAP(8); /* Fallthrough */ - case 8: - BN_CONSTTIME_SWAP(7); /* Fallthrough */ - case 7: - BN_CONSTTIME_SWAP(6); /* Fallthrough */ - case 6: - BN_CONSTTIME_SWAP(5); /* Fallthrough */ - case 5: - BN_CONSTTIME_SWAP(4); /* Fallthrough */ - case 4: - BN_CONSTTIME_SWAP(3); /* Fallthrough */ - case 3: - BN_CONSTTIME_SWAP(2); /* Fallthrough */ - case 2: - BN_CONSTTIME_SWAP(1); /* Fallthrough */ - case 1: - BN_CONSTTIME_SWAP(0); - } -#undef BN_CONSTTIME_SWAP + /* conditionally swap the data */ + for (i = 0; i < nwords; i++) { + t = (a->d[i] ^ b->d[i]) & condition; + a->d[i] ^= t; + b->d[i] ^= t; + } } +#undef BN_CONSTTIME_SWAP_FLAGS + /* Bits of security, see SP800-57 */ int BN_security_bits(int L, int N) diff --git a/crypto/bn/bn_prime.c b/crypto/bn/bn_prime.c index b91b31b1f304d2e75445d72244becc03b3094cb3..4bbd7c88103145b66791eb66695ffb894da91e28 100644 --- a/crypto/bn/bn_prime.c +++ b/crypto/bn/bn_prime.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -135,8 +135,7 @@ int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, found = 1; err: OPENSSL_free(mods); - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); bn_check_top(ret); return found; diff --git a/crypto/bn/bn_prime.h b/crypto/bn/bn_prime.h index a64c9630f3b04f428a913434eb3672b08f72b992..2eb7b52f76f9a937c4289df36c9b35332f4107dc 100644 --- a/crypto/bn/bn_prime.h +++ b/crypto/bn/bn_prime.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/bn/bn_prime.pl * - * Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/crypto/bn/bn_prime.pl b/crypto/bn/bn_prime.pl index eeca475b9366bbe9a51af2f2bf2d9fc5b7779aad..b0b16087429b27ce739de225151e5dd920a5fc27 100644 --- a/crypto/bn/bn_prime.pl +++ b/crypto/bn/bn_prime.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/bn/bn_shift.c b/crypto/bn/bn_shift.c index 15d4b321ba2684f74b5a1d87015a5d3f523c639f..b7a1e0ff9ae3c20b7ed93ad81c03e82a22198a1c 100644 --- a/crypto/bn/bn_shift.c +++ b/crypto/bn/bn_shift.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,6 +7,7 @@ * https://www.openssl.org/source/license.html */ +#include <assert.h> #include "internal/cryptlib.h" #include "bn_lcl.h" @@ -82,40 +83,70 @@ int BN_rshift1(BIGNUM *r, const BIGNUM *a) int BN_lshift(BIGNUM *r, const BIGNUM *a, int n) { - int i, nw, lb, rb; - BN_ULONG *t, *f; - BN_ULONG l; - - bn_check_top(r); - bn_check_top(a); + int ret; if (n < 0) { BNerr(BN_F_BN_LSHIFT, BN_R_INVALID_SHIFT); return 0; } + ret = bn_lshift_fixed_top(r, a, n); + + bn_correct_top(r); + bn_check_top(r); + + return ret; +} + +/* + * In respect to shift factor the execution time is invariant of + * |n % BN_BITS2|, but not |n / BN_BITS2|. Or in other words pre-condition + * for constant-time-ness is |n < BN_BITS2| or |n / BN_BITS2| being + * non-secret. + */ +int bn_lshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n) +{ + int i, nw; + unsigned int lb, rb; + BN_ULONG *t, *f; + BN_ULONG l, m, rmask = 0; + + assert(n >= 0); + + bn_check_top(r); + bn_check_top(a); + nw = n / BN_BITS2; if (bn_wexpand(r, a->top + nw + 1) == NULL) return 0; - r->neg = a->neg; - lb = n % BN_BITS2; - rb = BN_BITS2 - lb; - f = a->d; - t = r->d; - t[a->top + nw] = 0; - if (lb == 0) - for (i = a->top - 1; i >= 0; i--) - t[nw + i] = f[i]; - else - for (i = a->top - 1; i >= 0; i--) { - l = f[i]; - t[nw + i + 1] |= (l >> rb) & BN_MASK2; - t[nw + i] = (l << lb) & BN_MASK2; + + if (a->top != 0) { + lb = (unsigned int)n % BN_BITS2; + rb = BN_BITS2 - lb; + rb %= BN_BITS2; /* say no to undefined behaviour */ + rmask = (BN_ULONG)0 - rb; /* rmask = 0 - (rb != 0) */ + rmask |= rmask >> 8; + f = &(a->d[0]); + t = &(r->d[nw]); + l = f[a->top - 1]; + t[a->top] = (l >> rb) & rmask; + for (i = a->top - 1; i > 0; i--) { + m = l << lb; + l = f[i - 1]; + t[i] = (m | ((l >> rb) & rmask)) & BN_MASK2; } - memset(t, 0, sizeof(*t) * nw); + t[0] = (l << lb) & BN_MASK2; + } else { + /* shouldn't happen, but formally required */ + r->d[nw] = 0; + } + if (nw != 0) + memset(r->d, 0, sizeof(*t) * nw); + + r->neg = a->neg; r->top = a->top + nw + 1; - bn_correct_top(r); - bn_check_top(r); + r->flags |= BN_FLG_FIXED_TOP; + return 1; } @@ -173,3 +204,54 @@ int BN_rshift(BIGNUM *r, const BIGNUM *a, int n) bn_check_top(r); return 1; } + +/* + * In respect to shift factor the execution time is invariant of + * |n % BN_BITS2|, but not |n / BN_BITS2|. Or in other words pre-condition + * for constant-time-ness for sufficiently[!] zero-padded inputs is + * |n < BN_BITS2| or |n / BN_BITS2| being non-secret. + */ +int bn_rshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n) +{ + int i, top, nw; + unsigned int lb, rb; + BN_ULONG *t, *f; + BN_ULONG l, m, mask; + + bn_check_top(r); + bn_check_top(a); + + assert(n >= 0); + + nw = n / BN_BITS2; + if (nw >= a->top) { + /* shouldn't happen, but formally required */ + BN_zero(r); + return 1; + } + + rb = (unsigned int)n % BN_BITS2; + lb = BN_BITS2 - rb; + lb %= BN_BITS2; /* say no to undefined behaviour */ + mask = (BN_ULONG)0 - lb; /* mask = 0 - (lb != 0) */ + mask |= mask >> 8; + top = a->top - nw; + if (r != a && bn_wexpand(r, top) == NULL) + return 0; + + t = &(r->d[0]); + f = &(a->d[nw]); + l = f[0]; + for (i = 0; i < top - 1; i++) { + m = f[i + 1]; + t[i] = (l >> rb) | ((m << lb) & mask); + l = m; + } + t[i] = l >> rb; + + r->neg = a->neg; + r->top = top; + r->flags |= BN_FLG_FIXED_TOP; + + return 1; +} diff --git a/crypto/chacha/asm/chacha-armv8.pl b/crypto/chacha/asm/chacha-armv8.pl index 4a838bc2b32e204e0d0f3a3f7176a3f5b8e57dce..e90be6d0e5bdd629d7318056ef4b34643f503295 100755 --- a/crypto/chacha/asm/chacha-armv8.pl +++ b/crypto/chacha/asm/chacha-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -157,6 +157,7 @@ ChaCha20_ctr32: b.ne ChaCha20_neon .Lshort: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -276,6 +277,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + .inst 0xd50323bf // autiasp .Labort: ret @@ -332,6 +334,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + .inst 0xd50323bf // autiasp ret .size ChaCha20_ctr32,.-ChaCha20_ctr32 ___ @@ -377,6 +380,7 @@ $code.=<<___; .type ChaCha20_neon,%function .align 5 ChaCha20_neon: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -575,6 +579,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + .inst 0xd50323bf // autiasp ret .Ltail_neon: @@ -684,6 +689,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + .inst 0xd50323bf // autiasp ret .size ChaCha20_neon,.-ChaCha20_neon ___ @@ -696,6 +702,7 @@ $code.=<<___; .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-96]! add x29,sp,#0 @@ -1114,6 +1121,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#96 + .inst 0xd50323bf // autiasp ret .size ChaCha20_512_neon,.-ChaCha20_512_neon ___ diff --git a/crypto/chacha/build.info b/crypto/chacha/build.info index 02f8e518aeca9021336cc0d3502e3f5e18459623..e75ca72b67d4fb33cb4561c0c3498feb0ae4a402 100644 --- a/crypto/chacha/build.info +++ b/crypto/chacha/build.info @@ -9,6 +9,8 @@ GENERATE[chacha-armv4.S]=asm/chacha-armv4.pl $(PERLASM_SCHEME) INCLUDE[chacha-armv4.o]=.. GENERATE[chacha-armv8.S]=asm/chacha-armv8.pl $(PERLASM_SCHEME) INCLUDE[chacha-armv8.o]=.. +GENERATE[chacha-s390x.S]=asm/chacha-s390x.pl $(PERLASM_SCHEME) +INCLUDE[chacha-s390x.o]=.. BEGINRAW[Makefile(unix)] ##### CHACHA assembler implementations diff --git a/crypto/cms/cms_kari.c b/crypto/cms/cms_kari.c index 3bc46febf6403cf54f6512c5ce807ac239d76d30..5e83814d0fcf6ef5ca85eaca4ba7a22c100ee6fe 100644 --- a/crypto/cms/cms_kari.c +++ b/crypto/cms/cms_kari.c @@ -1,5 +1,5 @@ /* - * Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2013-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -282,7 +282,7 @@ static int cms_kari_create_ephemeral_key(CMS_KeyAgreeRecipientInfo *kari, return rv; } -/* Initialise a ktri based on passed certificate and key */ +/* Initialise a kari based on passed certificate and key */ int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, EVP_PKEY *pk, unsigned int flags) @@ -299,6 +299,9 @@ int cms_RecipientInfo_kari_init(CMS_RecipientInfo *ri, X509 *recip, kari->version = 3; rek = M_ASN1_new_of(CMS_RecipientEncryptedKey); + if (rek == NULL) + return 0; + if (!sk_CMS_RecipientEncryptedKey_push(kari->recipientEncryptedKeys, rek)) { M_ASN1_free_of(rek, CMS_RecipientEncryptedKey); return 0; diff --git a/crypto/cms/cms_pwri.c b/crypto/cms/cms_pwri.c index eac9c2fc862ebe05c9a45dc607343587f5651ef8..26e3bdcf9e41273e432cad1373fd46c6c0e5ded0 100644 --- a/crypto/cms/cms_pwri.c +++ b/crypto/cms/cms_pwri.c @@ -373,6 +373,7 @@ int cms_RecipientInfo_pwri_crypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri, goto err; } + OPENSSL_clear_free(ec->key, ec->keylen); ec->key = key; ec->keylen = keylen; diff --git a/crypto/conf/conf_def.c b/crypto/conf/conf_def.c index 7f0d70ea695ecfffafcd81812e1f0e96ab06960c..8e3f42a0caca2928824d5e468e098aabd88abbc5 100644 --- a/crypto/conf/conf_def.c +++ b/crypto/conf/conf_def.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -348,10 +348,15 @@ static int def_load_bio(CONF *conf, BIO *in, long *line) psection = section; } p = eat_ws(conf, end); - if (strncmp(pname, ".include", 8) == 0 && p != pname + 8) { + if (strncmp(pname, ".include", 8) == 0 + && (p != pname + 8 || *p == '=')) { char *include = NULL; BIO *next; + if (*p == '=') { + p++; + p = eat_ws(conf, p); + } trim_ws(conf, p); if (!str_copy(conf, psection, &include, p)) goto err; diff --git a/crypto/conf/conf_def.h b/crypto/conf/conf_def.h index 73e88baa8ba11ffbbc81c204937b3353e0ccec2a..2016d31b89290ad07eee10fdebd901ecea04f151 100644 --- a/crypto/conf/conf_def.h +++ b/crypto/conf/conf_def.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/conf/keysets.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at diff --git a/crypto/conf/conf_lib.c b/crypto/conf/conf_lib.c index 07110d8502a4e79175d8c439c51c4d05e16155bb..2d40ac97ec2756ab4622cdf265a2638334e44d1e 100644 --- a/crypto/conf/conf_lib.c +++ b/crypto/conf/conf_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -358,11 +358,36 @@ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void) if (ret != NULL) memset(ret, 0, sizeof(*ret)); + ret->flags = DEFAULT_CONF_MFLAGS; + return ret; } #ifndef OPENSSL_NO_STDIO +int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, + const char *filename) +{ + char *newfilename = NULL; + + if (filename != NULL) { + newfilename = strdup(filename); + if (newfilename == NULL) + return 0; + } + + free(settings->filename); + settings->filename = newfilename; + + return 1; +} + +void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, + unsigned long flags) +{ + settings->flags = flags; +} + int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, const char *appname) { @@ -383,6 +408,7 @@ int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings) { + free(settings->filename); free(settings->appname); free(settings); } diff --git a/crypto/conf/conf_mod.c b/crypto/conf/conf_mod.c index 51f262e774dd60db355b0c8ea93b7c287842ee0f..e703d97f5451fa8229bb88f5c4cc604baef1f1f5 100644 --- a/crypto/conf/conf_mod.c +++ b/crypto/conf/conf_mod.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -142,6 +142,9 @@ int CONF_modules_load_file(const char *filename, const char *appname, OPENSSL_free(file); NCONF_free(conf); + if (flags & CONF_MFLAGS_IGNORE_RETURN_CODES) + return 1; + return ret; } diff --git a/crypto/conf/conf_sap.c b/crypto/conf/conf_sap.c index 3d2e065e5b07c54d42c46b11d8f0830fe257bdaf..3805c426d8020461750440dd88696a70798a6b00 100644 --- a/crypto/conf/conf_sap.c +++ b/crypto/conf/conf_sap.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -35,14 +35,29 @@ void OPENSSL_config(const char *appname) memset(&settings, 0, sizeof(settings)); if (appname != NULL) settings.appname = strdup(appname); + settings.flags = DEFAULT_CONF_MFLAGS; OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, &settings); } #endif -void openssl_config_int(const char *appname) +int openssl_config_int(const OPENSSL_INIT_SETTINGS *settings) { + int ret; + const char *filename; + const char *appname; + unsigned long flags; + if (openssl_configured) - return; + return 1; + + filename = settings ? settings->filename : NULL; + appname = settings ? settings->appname : NULL; + flags = settings ? settings->flags : DEFAULT_CONF_MFLAGS; + +#ifdef OPENSSL_INIT_DEBUG + fprintf(stderr, "OPENSSL_INIT: openssl_config_int(%s, %s, %lu)\n", + filename, appname, flags); +#endif OPENSSL_load_builtin_modules(); #ifndef OPENSSL_NO_ENGINE @@ -51,11 +66,10 @@ void openssl_config_int(const char *appname) #endif ERR_clear_error(); #ifndef OPENSSL_SYS_UEFI - CONF_modules_load_file(NULL, appname, - CONF_MFLAGS_DEFAULT_SECTION | - CONF_MFLAGS_IGNORE_MISSING_FILE); + ret = CONF_modules_load_file(filename, appname, flags); #endif openssl_configured = 1; + return ret; } void openssl_no_config_int(void) diff --git a/crypto/conf/conf_ssl.c b/crypto/conf/conf_ssl.c index 024bdb4808e394aadfef94e31ea6ffc37d1efd93..387f2cf46c31b78c5edd223c08b3f982a96393b8 100644 --- a/crypto/conf/conf_ssl.c +++ b/crypto/conf/conf_ssl.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -78,6 +78,8 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) cnt = sk_CONF_VALUE_num(cmd_lists); ssl_module_free(md); ssl_names = OPENSSL_zalloc(sizeof(*ssl_names) * cnt); + if (ssl_names == NULL) + goto err; ssl_names_count = cnt; for (i = 0; i < ssl_names_count; i++) { struct ssl_conf_name_st *ssl_name = ssl_names + i; diff --git a/crypto/conf/keysets.pl b/crypto/conf/keysets.pl index cfa230ec3a1af553df3a1cdb78236314d6e40204..27a7214cc51925eb11896176c47f6e632cade5be 100644 --- a/crypto/conf/keysets.pl +++ b/crypto/conf/keysets.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c index 1cd77c96d2f7f7e0911dacf56ad88128f48affe0..7b761a3adced99ed029fa5d0670df13df59eaf7f 100644 --- a/crypto/cryptlib.c +++ b/crypto/cryptlib.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -352,9 +352,9 @@ void OPENSSL_showfatal(const char *fmta, ...) /* * TODO: (For non GUI and no std error cases) - * Add event logging feature here. + * Add event logging feature here. */ - + # if !defined(NDEBUG) /* * We are in a situation where we tried to report a critical @@ -393,7 +393,7 @@ void OPENSSL_showfatal(const char *fmta, ...) # endif # else MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONERROR); -# endif +# endif } #else void OPENSSL_showfatal(const char *fmta, ...) @@ -460,4 +460,14 @@ uint32_t OPENSSL_rdtsc(void) { return 0; } + +size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt) +{ + return 0; +} + +size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t max) +{ + return 0; +} #endif diff --git a/crypto/des/asm/des_enc.m4 b/crypto/des/asm/des_enc.m4 index 4a0d15620c00d94d8e96b8597e43e8778a0eeb75..4ada97b175d99aa1ed241aa1e0e2688290011dd3 100644 --- a/crypto/des/asm/des_enc.m4 +++ b/crypto/des/asm/des_enc.m4 @@ -1,4 +1,4 @@ -! Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +! Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. ! ! Licensed under the OpenSSL license (the "License"). You may not use ! this file except in compliance with the License. You can obtain a copy @@ -313,7 +313,7 @@ $4: sll out1, 28, out1 ! rotate xor $1, local1, $1 ! 1 finished, local1 now sbox 7 - ld [global2+local2], local2 ! 2 + ld [global2+local2], local2 ! 2 srl out0, 24, local1 ! 7 or out1, local0, out1 ! rotate @@ -1392,7 +1392,7 @@ DES_ncbc_encrypt: add %o7,global1,global1 sub global1,.PIC.DES_SPtrans-.des_and,out2 - cmp in5, 0 ! enc + cmp in5, 0 ! enc be .ncbc.dec STPTR in4, IVEC diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c index fc45577101d03e08b3564bb20936e34c39677a8d..c7e1dbf4ac0f685b7dc7a031b3795f4ceda5851e 100644 --- a/crypto/dh/dh_check.c +++ b/crypto/dh/dh_check.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,6 +12,8 @@ #include <openssl/bn.h> #include "dh_locl.h" +# define DH_NUMBER_ITERATIONS_FOR_PRIME 64 + /*- * Check that p and g are suitable enough * @@ -58,10 +60,8 @@ int DH_check_params(const DH *dh, int *ret) ok = 1; err: - if (ctx != NULL) { - BN_CTX_end(ctx); - BN_CTX_free(ctx); - } + BN_CTX_end(ctx); + BN_CTX_free(ctx); return ok; } @@ -127,7 +127,7 @@ int DH_check(const DH *dh, int *ret) if (!BN_is_one(t1)) *ret |= DH_NOT_SUITABLE_GENERATOR; } - r = BN_is_prime_ex(dh->q, BN_prime_checks, ctx, NULL); + r = BN_is_prime_ex(dh->q, DH_NUMBER_ITERATIONS_FOR_PRIME, ctx, NULL); if (r < 0) goto err; if (!r) @@ -155,7 +155,7 @@ int DH_check(const DH *dh, int *ret) } else *ret |= DH_UNABLE_TO_CHECK_GENERATOR; - r = BN_is_prime_ex(dh->p, BN_prime_checks, ctx, NULL); + r = BN_is_prime_ex(dh->p, DH_NUMBER_ITERATIONS_FOR_PRIME, ctx, NULL); if (r < 0) goto err; if (!r) @@ -163,7 +163,7 @@ int DH_check(const DH *dh, int *ret) else if (!dh->q) { if (!BN_rshift1(t1, dh->p)) goto err; - r = BN_is_prime_ex(t1, BN_prime_checks, ctx, NULL); + r = BN_is_prime_ex(t1, DH_NUMBER_ITERATIONS_FOR_PRIME, ctx, NULL); if (r < 0) goto err; if (!r) @@ -171,10 +171,8 @@ int DH_check(const DH *dh, int *ret) } ok = 1; err: - if (ctx != NULL) { - BN_CTX_end(ctx); - BN_CTX_free(ctx); - } + BN_CTX_end(ctx); + BN_CTX_free(ctx); return ok; } @@ -225,9 +223,7 @@ int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret) ok = 1; err: - if (ctx != NULL) { - BN_CTX_end(ctx); - BN_CTX_free(ctx); - } + BN_CTX_end(ctx); + BN_CTX_free(ctx); return ok; } diff --git a/crypto/dh/dh_gen.c b/crypto/dh/dh_gen.c index 59137e0f05aa4b90dca0075d50a31a18634544ab..887fc4c3aedeed9b0108c1e431b439f162f43062 100644 --- a/crypto/dh/dh_gen.c +++ b/crypto/dh/dh_gen.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -122,9 +122,7 @@ static int dh_builtin_genparams(DH *ret, int prime_len, int generator, ok = 0; } - if (ctx != NULL) { - BN_CTX_end(ctx); - BN_CTX_free(ctx); - } + BN_CTX_end(ctx); + BN_CTX_free(ctx); return ok; } diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c index 4f85be7e49bdf53be479b46a5c7cf355754f6469..99c00e5a05d1cb9a0df2e8ceab7a1a5ce8b6706d 100644 --- a/crypto/dh/dh_key.c +++ b/crypto/dh/dh_key.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -205,10 +205,8 @@ static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh) ret = BN_bn2bin(tmp, key); err: - if (ctx != NULL) { - BN_CTX_end(ctx); - BN_CTX_free(ctx); - } + BN_CTX_end(ctx); + BN_CTX_free(ctx); return ret; } diff --git a/crypto/dh/dh_pmeth.c b/crypto/dh/dh_pmeth.c index cce2d9e26efcb9392b4d917e4185f5573fee40c6..568831f1c2a75e661a2c8727f66bd6feb1e6640d 100644 --- a/crypto/dh/dh_pmeth.c +++ b/crypto/dh/dh_pmeth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -54,7 +54,7 @@ static int pkey_dh_init(EVP_PKEY_CTX *ctx) DHerr(DH_F_PKEY_DH_INIT, ERR_R_MALLOC_FAILURE); return 0; } - dctx->prime_len = 1024; + dctx->prime_len = 2048; dctx->subprime_len = -1; dctx->generator = 2; dctx->kdf_type = EVP_PKEY_DH_KDF_NONE; diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c index 383d853b6d37307be26a3dd5d15277cff79d0db4..af59a582b53e4e3ac384d2ed2f8e08a7f904bf23 100644 --- a/crypto/dsa/dsa_gen.c +++ b/crypto/dsa/dsa_gen.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -292,8 +292,7 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, if (seed_out) memcpy(seed_out, seed, qsize); } - if (ctx) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); BN_MONT_CTX_free(mont); return ok; @@ -607,8 +606,7 @@ int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N, OPENSSL_free(seed); if (seed_out != seed_tmp) OPENSSL_free(seed_tmp); - if (ctx) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); BN_MONT_CTX_free(mont); EVP_MD_CTX_free(mctx); diff --git a/crypto/dsa/dsa_ossl.c b/crypto/dsa/dsa_ossl.c index 7a0b0874c54e0ebb002c27b0c2704c579364bdf8..cefda5a450fa5175b51a8a643af592c399c5b35b 100644 --- a/crypto/dsa/dsa_ossl.c +++ b/crypto/dsa/dsa_ossl.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -190,6 +190,12 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, return 0; } + /* Reject obviously invalid parameters */ + if (BN_is_zero(dsa->p) || BN_is_zero(dsa->q) || BN_is_zero(dsa->g)) { + DSAerr(DSA_F_DSA_SIGN_SETUP, DSA_R_INVALID_PARAMETERS); + return 0; + } + k = BN_new(); l = BN_new(); if (k == NULL || l == NULL) diff --git a/crypto/dsa/dsa_pmeth.c b/crypto/dsa/dsa_pmeth.c index b4ee5a75715e3111e1239345186f950a4e6e7753..1dd2fef9beb9046b4b5fbe08f6be67c37a93f55a 100644 --- a/crypto/dsa/dsa_pmeth.c +++ b/crypto/dsa/dsa_pmeth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -20,8 +20,8 @@ typedef struct { /* Parameter gen parameters */ - int nbits; /* size of p in bits (default: 1024) */ - int qbits; /* size of q in bits (default: 160) */ + int nbits; /* size of p in bits (default: 2048) */ + int qbits; /* size of q in bits (default: 224) */ const EVP_MD *pmd; /* MD for parameter generation */ /* Keygen callback info */ int gentmp[2]; @@ -35,8 +35,8 @@ static int pkey_dsa_init(EVP_PKEY_CTX *ctx) if (dctx == NULL) return 0; - dctx->nbits = 1024; - dctx->qbits = 160; + dctx->nbits = 2048; + dctx->qbits = 224; dctx->pmd = NULL; dctx->md = NULL; @@ -138,7 +138,11 @@ static int pkey_dsa_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) EVP_MD_type((const EVP_MD *)p2) != NID_sha224 && EVP_MD_type((const EVP_MD *)p2) != NID_sha256 && EVP_MD_type((const EVP_MD *)p2) != NID_sha384 && - EVP_MD_type((const EVP_MD *)p2) != NID_sha512) { + EVP_MD_type((const EVP_MD *)p2) != NID_sha512 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_224 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_256 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_384 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_512) { DSAerr(DSA_F_PKEY_DSA_CTRL, DSA_R_INVALID_DIGEST_TYPE); return 0; } diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c index ad8899c289a374683b9d37a27230b35e136ef25f..4240f5f5e30c85f51d2ac508cb952f41a43978f9 100644 --- a/crypto/dso/dso_dlfcn.c +++ b/crypto/dso/dso_dlfcn.c @@ -17,6 +17,7 @@ #endif #include "dso_locl.h" +#include "e_os.h" #ifdef DSO_DLFCN @@ -99,6 +100,7 @@ static int dlfcn_load(DSO *dso) /* See applicable comments in dso_dl.c */ char *filename = DSO_convert_filename(dso, NULL); int flags = DLOPEN_FLAG; + int saveerrno = get_last_sys_error(); if (filename == NULL) { DSOerr(DSO_F_DLFCN_LOAD, DSO_R_NO_FILENAME); @@ -118,6 +120,11 @@ static int dlfcn_load(DSO *dso) ERR_add_error_data(4, "filename(", filename, "): ", dlerror()); goto err; } + /* + * Some dlopen() implementations (e.g. solaris) do no preserve errno, even + * on a successful call. + */ + set_sys_error(saveerrno); if (!sk_void_push(dso->meth_data, (char *)ptr)) { DSOerr(DSO_F_DLFCN_LOAD, DSO_R_STACK_ERROR); goto err; diff --git a/crypto/dso/dso_openssl.c b/crypto/dso/dso_openssl.c index 6626331e92565f3ea602129468dfe7424c6c55a9..f0dd38ace2599e7d2596c8c58c50e4319f1ddb3a 100644 --- a/crypto/dso/dso_openssl.c +++ b/crypto/dso/dso_openssl.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -9,7 +9,7 @@ #include "dso_locl.h" -#if !defined(DSO_VMS) && !defined(DSO_DLCFN) && !defined(DSO_DL) && !defined(DSO_WIN32) && !defined(DSO_DLFCN) +#ifdef DSO_NONE static DSO_METHOD dso_meth_null = { "NULL shared library method" diff --git a/crypto/dso/dso_win32.c b/crypto/dso/dso_win32.c index 0bbf5b5189ce2ecda5ccb50e4edb2ecf2cf7ea7a..6631d517f4c317c8bdee896c9e8581a73316eb18 100644 --- a/crypto/dso/dso_win32.c +++ b/crypto/dso/dso_win32.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -64,6 +64,7 @@ static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname); static char *win32_name_converter(DSO *dso, const char *filename); static char *win32_merger(DSO *dso, const char *filespec1, const char *filespec2); +static int win32_pathbyaddr(void *addr, char *path, int sz); static void *win32_globallookup(const char *name); static const char *openssl_strnchr(const char *string, int c, size_t len); @@ -78,7 +79,7 @@ static DSO_METHOD dso_meth_win32 = { win32_merger, NULL, /* init */ NULL, /* finish */ - NULL, /* pathbyaddr */ + win32_pathbyaddr, /* pathbyaddr */ win32_globallookup }; @@ -500,6 +501,111 @@ typedef HANDLE(WINAPI *CREATETOOLHELP32SNAPSHOT) (DWORD, DWORD); typedef BOOL(WINAPI *CLOSETOOLHELP32SNAPSHOT) (HANDLE); typedef BOOL(WINAPI *MODULE32) (HANDLE, MODULEENTRY32 *); +static int win32_pathbyaddr(void *addr, char *path, int sz) +{ + HMODULE dll; + HANDLE hModuleSnap = INVALID_HANDLE_VALUE; + MODULEENTRY32 me32; + CREATETOOLHELP32SNAPSHOT create_snap; + CLOSETOOLHELP32SNAPSHOT close_snap; + MODULE32 module_first, module_next; + + if (addr == NULL) { + union { + int (*f) (void *, char *, int); + void *p; + } t = { + win32_pathbyaddr + }; + addr = t.p; + } + + dll = LoadLibrary(TEXT(DLLNAME)); + if (dll == NULL) { + DSOerr(DSO_F_WIN32_PATHBYADDR, DSO_R_UNSUPPORTED); + return -1; + } + + create_snap = (CREATETOOLHELP32SNAPSHOT) + GetProcAddress(dll, "CreateToolhelp32Snapshot"); + if (create_snap == NULL) { + FreeLibrary(dll); + DSOerr(DSO_F_WIN32_PATHBYADDR, DSO_R_UNSUPPORTED); + return -1; + } + /* We take the rest for granted... */ +# ifdef _WIN32_WCE + close_snap = (CLOSETOOLHELP32SNAPSHOT) + GetProcAddress(dll, "CloseToolhelp32Snapshot"); +# else + close_snap = (CLOSETOOLHELP32SNAPSHOT) CloseHandle; +# endif + module_first = (MODULE32) GetProcAddress(dll, "Module32First"); + module_next = (MODULE32) GetProcAddress(dll, "Module32Next"); + + /* + * Take a snapshot of current process which includes + * list of all involved modules. + */ + hModuleSnap = (*create_snap) (TH32CS_SNAPMODULE, 0); + if (hModuleSnap == INVALID_HANDLE_VALUE) { + FreeLibrary(dll); + DSOerr(DSO_F_WIN32_PATHBYADDR, DSO_R_UNSUPPORTED); + return -1; + } + + me32.dwSize = sizeof(me32); + + if (!(*module_first) (hModuleSnap, &me32)) { + (*close_snap) (hModuleSnap); + FreeLibrary(dll); + DSOerr(DSO_F_WIN32_PATHBYADDR, DSO_R_FAILURE); + return -1; + } + + /* Enumerate the modules to find one which includes me. */ + do { + if ((uintptr_t) addr >= (uintptr_t) me32.modBaseAddr && + (uintptr_t) addr < (uintptr_t) (me32.modBaseAddr + me32.modBaseSize)) { + (*close_snap) (hModuleSnap); + FreeLibrary(dll); +# ifdef _WIN32_WCE +# if _WIN32_WCE >= 101 + return WideCharToMultiByte(CP_ACP, 0, me32.szExePath, -1, + path, sz, NULL, NULL); +# else + { + int i, len = (int)wcslen(me32.szExePath); + if (sz <= 0) + return len + 1; + if (len >= sz) + len = sz - 1; + for (i = 0; i < len; i++) + path[i] = (char)me32.szExePath[i]; + path[len++] = '\0'; + return len; + } +# endif +# else + { + int len = (int)strlen(me32.szExePath); + if (sz <= 0) + return len + 1; + if (len >= sz) + len = sz - 1; + memcpy(path, me32.szExePath, len); + path[len++] = '\0'; + return len; + } +# endif + } + } while ((*module_next) (hModuleSnap, &me32)); + + (*close_snap) (hModuleSnap); + FreeLibrary(dll); + return 0; +} + static void *win32_globallookup(const char *name) { HMODULE dll; diff --git a/crypto/ec/asm/ecp_nistz256-armv8.pl b/crypto/ec/asm/ecp_nistz256-armv8.pl index 1361cb395ffb207925a8db93909b0cc60198c758..887ddfb1ea9b1eb8f9655535353efc1ea3f9f86f 100644 --- a/crypto/ec/asm/ecp_nistz256-armv8.pl +++ b/crypto/ec/asm/ecp_nistz256-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -119,6 +119,7 @@ $code.=<<___; .type ecp_nistz256_to_mont,%function .align 6 ecp_nistz256_to_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -134,6 +135,7 @@ ecp_nistz256_to_mont: ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont @@ -142,6 +144,7 @@ ecp_nistz256_to_mont: .type ecp_nistz256_from_mont,%function .align 4 ecp_nistz256_from_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -157,6 +160,7 @@ ecp_nistz256_from_mont: ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont @@ -166,6 +170,7 @@ ecp_nistz256_from_mont: .type ecp_nistz256_mul_mont,%function .align 4 ecp_nistz256_mul_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -180,6 +185,7 @@ ecp_nistz256_mul_mont: ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont @@ -188,6 +194,7 @@ ecp_nistz256_mul_mont: .type ecp_nistz256_sqr_mont,%function .align 4 ecp_nistz256_sqr_mont: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-32]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -201,6 +208,7 @@ ecp_nistz256_sqr_mont: ldp x19,x20,[sp,#16] ldp x29,x30,[sp],#32 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont @@ -210,6 +218,7 @@ ecp_nistz256_sqr_mont: .type ecp_nistz256_add,%function .align 4 ecp_nistz256_add: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -223,6 +232,7 @@ ecp_nistz256_add: bl __ecp_nistz256_add ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_add,.-ecp_nistz256_add @@ -231,6 +241,7 @@ ecp_nistz256_add: .type ecp_nistz256_div_by_2,%function .align 4 ecp_nistz256_div_by_2: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -242,6 +253,7 @@ ecp_nistz256_div_by_2: bl __ecp_nistz256_div_by_2 ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 @@ -250,6 +262,7 @@ ecp_nistz256_div_by_2: .type ecp_nistz256_mul_by_2,%function .align 4 ecp_nistz256_mul_by_2: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -265,6 +278,7 @@ ecp_nistz256_mul_by_2: bl __ecp_nistz256_add // ret = a+a // 2*a ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 @@ -273,6 +287,7 @@ ecp_nistz256_mul_by_2: .type ecp_nistz256_mul_by_3,%function .align 4 ecp_nistz256_mul_by_3: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -299,6 +314,7 @@ ecp_nistz256_mul_by_3: bl __ecp_nistz256_add // ret += a // 2*a+a=3*a ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 @@ -308,6 +324,7 @@ ecp_nistz256_mul_by_3: .type ecp_nistz256_sub,%function .align 4 ecp_nistz256_sub: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -319,6 +336,7 @@ ecp_nistz256_sub: bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_sub,.-ecp_nistz256_sub @@ -327,6 +345,7 @@ ecp_nistz256_sub: .type ecp_nistz256_neg,%function .align 4 ecp_nistz256_neg: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 @@ -341,6 +360,7 @@ ecp_nistz256_neg: bl __ecp_nistz256_sub_from ldp x29,x30,[sp],#16 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_neg,.-ecp_nistz256_neg @@ -701,6 +721,7 @@ $code.=<<___; .type ecp_nistz256_point_double,%function .align 5 ecp_nistz256_point_double: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -835,6 +856,7 @@ ecp_nistz256_point_double: ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x29,x30,[sp],#80 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_point_double,.-ecp_nistz256_point_double ___ @@ -857,6 +879,7 @@ $code.=<<___; .type ecp_nistz256_point_add,%function .align 5 ecp_nistz256_point_add: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1094,12 +1117,13 @@ $code.=<<___; stp $acc2,$acc3,[$rp_real,#$i+16] .Ladd_done: - add sp,x29,#0 // destroy frame + add sp,x29,#0 // destroy frame ldp x19,x20,[x29,#16] ldp x21,x22,[x29,#32] ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_point_add,.-ecp_nistz256_point_add ___ @@ -1121,6 +1145,7 @@ $code.=<<___; .type ecp_nistz256_point_add_affine,%function .align 5 ecp_nistz256_point_add_affine: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -1309,6 +1334,7 @@ $code.=<<___; ldp x23,x24,[x29,#48] ldp x25,x26,[x29,#64] ldp x29,x30,[sp],#80 + .inst 0xd50323bf // autiasp ret .size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine ___ diff --git a/crypto/ec/asm/ecp_nistz256-x86_64.pl b/crypto/ec/asm/ecp_nistz256-x86_64.pl index eba6ffd430bef6b5a2c0836c9d6db83d0ca1f9e2..87149e7f680dfb5c656bececc8c57187436c3e06 100755 --- a/crypto/ec/asm/ecp_nistz256-x86_64.pl +++ b/crypto/ec/asm/ecp_nistz256-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. # Copyright (c) 2014, Intel Corporation. All Rights Reserved. # Copyright (c) 2015 CloudFlare, Inc. # @@ -1674,6 +1674,7 @@ $code.=<<___; .type __ecp_nistz256_mul_montq,\@abi-omnipotent .align 32 __ecp_nistz256_mul_montq: +.cfi_startproc ######################################################################## # Multiply a by b[0] mov %rax, $t1 @@ -1885,6 +1886,7 @@ __ecp_nistz256_mul_montq: mov $acc1, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_mul_montq,.-__ecp_nistz256_mul_montq ################################################################################ @@ -1968,6 +1970,7 @@ $code.=<<___; .type __ecp_nistz256_sqr_montq,\@abi-omnipotent .align 32 __ecp_nistz256_sqr_montq: +.cfi_startproc mov %rax, $acc5 mulq $acc6 # a[1]*a[0] mov %rax, $acc1 @@ -2125,6 +2128,7 @@ __ecp_nistz256_sqr_montq: mov $acc7, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq ___ @@ -2133,6 +2137,7 @@ $code.=<<___; .type __ecp_nistz256_mul_montx,\@abi-omnipotent .align 32 __ecp_nistz256_mul_montx: +.cfi_startproc ######################################################################## # Multiply by b[0] mulx $acc1, $acc0, $acc1 @@ -2295,11 +2300,13 @@ __ecp_nistz256_mul_montx: mov $acc1, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx .type __ecp_nistz256_sqr_montx,\@abi-omnipotent .align 32 __ecp_nistz256_sqr_montx: +.cfi_startproc mulx $acc6, $acc1, $acc2 # a[0]*a[1] mulx $acc7, $t0, $acc3 # a[0]*a[2] xor %eax, %eax @@ -2423,6 +2430,7 @@ __ecp_nistz256_sqr_montx: mov $acc7, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx ___ } @@ -2578,6 +2586,7 @@ ecp_nistz256_scatter_w5: .type ecp_nistz256_gather_w5,\@abi-omnipotent .align 32 ecp_nistz256_gather_w5: +.cfi_startproc ___ $code.=<<___ if ($avx>1); mov OPENSSL_ia32cap_P+8(%rip), %eax @@ -2666,6 +2675,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .LSEH_end_ecp_nistz256_gather_w5: .size ecp_nistz256_gather_w5,.-ecp_nistz256_gather_w5 @@ -2694,6 +2704,7 @@ ecp_nistz256_scatter_w7: .type ecp_nistz256_gather_w7,\@abi-omnipotent .align 32 ecp_nistz256_gather_w7: +.cfi_startproc ___ $code.=<<___ if ($avx>1); mov OPENSSL_ia32cap_P+8(%rip), %eax @@ -2771,6 +2782,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .LSEH_end_ecp_nistz256_gather_w7: .size ecp_nistz256_gather_w7,.-ecp_nistz256_gather_w7 ___ @@ -2787,6 +2799,7 @@ $code.=<<___; .type ecp_nistz256_avx2_gather_w5,\@abi-omnipotent .align 32 ecp_nistz256_avx2_gather_w5: +.cfi_startproc .Lavx2_gather_w5: vzeroupper ___ @@ -2874,6 +2887,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .LSEH_end_ecp_nistz256_avx2_gather_w5: .size ecp_nistz256_avx2_gather_w5,.-ecp_nistz256_avx2_gather_w5 ___ @@ -2893,6 +2907,7 @@ $code.=<<___; .type ecp_nistz256_avx2_gather_w7,\@abi-omnipotent .align 32 ecp_nistz256_avx2_gather_w7: +.cfi_startproc .Lavx2_gather_w7: vzeroupper ___ @@ -2995,6 +3010,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .LSEH_end_ecp_nistz256_avx2_gather_w7: .size ecp_nistz256_avx2_gather_w7,.-ecp_nistz256_avx2_gather_w7 ___ @@ -3064,6 +3080,7 @@ $code.=<<___; .type __ecp_nistz256_add_toq,\@abi-omnipotent .align 32 __ecp_nistz256_add_toq: +.cfi_startproc xor $t4,$t4 add 8*0($b_ptr), $a0 adc 8*1($b_ptr), $a1 @@ -3091,11 +3108,13 @@ __ecp_nistz256_add_toq: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_add_toq,.-__ecp_nistz256_add_toq .type __ecp_nistz256_sub_fromq,\@abi-omnipotent .align 32 __ecp_nistz256_sub_fromq: +.cfi_startproc sub 8*0($b_ptr), $a0 sbb 8*1($b_ptr), $a1 mov $a0, $t0 @@ -3122,11 +3141,13 @@ __ecp_nistz256_sub_fromq: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_sub_fromq,.-__ecp_nistz256_sub_fromq .type __ecp_nistz256_subq,\@abi-omnipotent .align 32 __ecp_nistz256_subq: +.cfi_startproc sub $a0, $t0 sbb $a1, $t1 mov $t0, $a0 @@ -3149,11 +3170,13 @@ __ecp_nistz256_subq: cmovnz $t3, $a3 ret +.cfi_endproc .size __ecp_nistz256_subq,.-__ecp_nistz256_subq .type __ecp_nistz256_mul_by_2q,\@abi-omnipotent .align 32 __ecp_nistz256_mul_by_2q: +.cfi_startproc xor $t4, $t4 add $a0, $a0 # a0:a3+a0:a3 adc $a1, $a1 @@ -3181,6 +3204,7 @@ __ecp_nistz256_mul_by_2q: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q ___ } @@ -3620,7 +3644,9 @@ $code.=<<___; movq %xmm1, $a_ptr # restore $a_ptr movq %xmm0, $r_ptr # restore $r_ptr add \$`32*(18-5)`, %rsp # difference in frame sizes +.cfi_adjust_cfa_offset `-32*(18-5)` jmp .Lpoint_double_shortcut$x +.cfi_adjust_cfa_offset `32*(18-5)` .align 32 .Ladd_proceed$x: @@ -4156,6 +4182,7 @@ $code.=<<___; .type __ecp_nistz256_add_tox,\@abi-omnipotent .align 32 __ecp_nistz256_add_tox: +.cfi_startproc xor $t4, $t4 adc 8*0($b_ptr), $a0 adc 8*1($b_ptr), $a1 @@ -4184,11 +4211,13 @@ __ecp_nistz256_add_tox: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_add_tox,.-__ecp_nistz256_add_tox .type __ecp_nistz256_sub_fromx,\@abi-omnipotent .align 32 __ecp_nistz256_sub_fromx: +.cfi_startproc xor $t4, $t4 sbb 8*0($b_ptr), $a0 sbb 8*1($b_ptr), $a1 @@ -4217,11 +4246,13 @@ __ecp_nistz256_sub_fromx: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_sub_fromx,.-__ecp_nistz256_sub_fromx .type __ecp_nistz256_subx,\@abi-omnipotent .align 32 __ecp_nistz256_subx: +.cfi_startproc xor $t4, $t4 sbb $a0, $t0 sbb $a1, $t1 @@ -4246,11 +4277,13 @@ __ecp_nistz256_subx: cmovc $t3, $a3 ret +.cfi_endproc .size __ecp_nistz256_subx,.-__ecp_nistz256_subx .type __ecp_nistz256_mul_by_2x,\@abi-omnipotent .align 32 __ecp_nistz256_mul_by_2x: +.cfi_startproc xor $t4, $t4 adc $a0, $a0 # a0:a3+a0:a3 adc $a1, $a1 @@ -4279,6 +4312,7 @@ __ecp_nistz256_mul_by_2x: mov $a3, 8*3($r_ptr) ret +.cfi_endproc .size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x ___ } diff --git a/crypto/ec/curve25519.c b/crypto/ec/curve25519.c index abe9b9cbf6dd0ec84bc2881f4dd4b7d0370a8749..c5d887ec4cd49fb84680f28b9ef3133f24d28346 100644 --- a/crypto/ec/curve25519.c +++ b/crypto/ec/curve25519.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -254,6 +254,7 @@ static void x25519_scalar_mulx(uint8_t out[32], const uint8_t scalar[32], #if defined(X25519_ASM) \ || ( (defined(__SIZEOF_INT128__) && __SIZEOF_INT128__ == 16) \ && !defined(__sparc__) \ + && (!defined(__SIZEOF_LONG__) || (__SIZEOF_LONG__ == 8)) \ && !(defined(__ANDROID__) && !defined(__clang__)) ) /* * Base 2^51 implementation. It's virtually no different from reference @@ -744,91 +745,99 @@ static void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32], /* * Reference base 2^25.5 implementation. - */ -/* + * * This code is mostly taken from the ref10 version of Ed25519 in SUPERCOP * 20141124 (http://bench.cr.yp.to/supercop.html). * * The field functions are shared by Ed25519 and X25519 where possible. */ -/* fe means field element. Here the field is \Z/(2^255-19). An element t, +/* + * fe means field element. Here the field is \Z/(2^255-19). An element t, * entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77 * t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on - * context. */ + * context. + */ typedef int32_t fe[10]; +static const int64_t kBottom21Bits = 0x1fffffLL; static const int64_t kBottom25Bits = 0x1ffffffLL; static const int64_t kBottom26Bits = 0x3ffffffLL; static const int64_t kTop39Bits = 0xfffffffffe000000LL; static const int64_t kTop38Bits = 0xfffffffffc000000LL; -static uint64_t load_3(const uint8_t *in) { - uint64_t result; - result = (uint64_t)in[0]; - result |= ((uint64_t)in[1]) << 8; - result |= ((uint64_t)in[2]) << 16; - return result; +static uint64_t load_3(const uint8_t *in) +{ + uint64_t result; + + result = ((uint64_t)in[0]); + result |= ((uint64_t)in[1]) << 8; + result |= ((uint64_t)in[2]) << 16; + return result; } -static uint64_t load_4(const uint8_t *in) { - uint64_t result; - result = (uint64_t)in[0]; - result |= ((uint64_t)in[1]) << 8; - result |= ((uint64_t)in[2]) << 16; - result |= ((uint64_t)in[3]) << 24; - return result; +static uint64_t load_4(const uint8_t *in) +{ + uint64_t result; + + result = ((uint64_t)in[0]); + result |= ((uint64_t)in[1]) << 8; + result |= ((uint64_t)in[2]) << 16; + result |= ((uint64_t)in[3]) << 24; + return result; } -static void fe_frombytes(fe h, const uint8_t *s) { - /* Ignores top bit of h. */ - int64_t h0 = load_4(s); - int64_t h1 = load_3(s + 4) << 6; - int64_t h2 = load_3(s + 7) << 5; - int64_t h3 = load_3(s + 10) << 3; - int64_t h4 = load_3(s + 13) << 2; - int64_t h5 = load_4(s + 16); - int64_t h6 = load_3(s + 20) << 7; - int64_t h7 = load_3(s + 23) << 5; - int64_t h8 = load_3(s + 26) << 4; - int64_t h9 = (load_3(s + 29) & 8388607) << 2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; - carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; - carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; - carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; - carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; - carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; - - h[0] = (int32_t)h0; - h[1] = (int32_t)h1; - h[2] = (int32_t)h2; - h[3] = (int32_t)h3; - h[4] = (int32_t)h4; - h[5] = (int32_t)h5; - h[6] = (int32_t)h6; - h[7] = (int32_t)h7; - h[8] = (int32_t)h8; - h[9] = (int32_t)h9; +static void fe_frombytes(fe h, const uint8_t *s) +{ + /* Ignores top bit of h. */ + int64_t h0 = load_4(s); + int64_t h1 = load_3(s + 4) << 6; + int64_t h2 = load_3(s + 7) << 5; + int64_t h3 = load_3(s + 10) << 3; + int64_t h4 = load_3(s + 13) << 2; + int64_t h5 = load_4(s + 16); + int64_t h6 = load_3(s + 20) << 7; + int64_t h7 = load_3(s + 23) << 5; + int64_t h8 = load_3(s + 26) << 4; + int64_t h9 = (load_3(s + 29) & 0x7fffff) << 2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; + carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; + carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; + carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; + carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; + carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; + + h[0] = (int32_t)h0; + h[1] = (int32_t)h1; + h[2] = (int32_t)h2; + h[3] = (int32_t)h3; + h[4] = (int32_t)h4; + h[5] = (int32_t)h5; + h[6] = (int32_t)h6; + h[7] = (int32_t)h7; + h[8] = (int32_t)h8; + h[9] = (int32_t)h9; } -/* Preconditions: - * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. +/* + * Preconditions: + * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. * * Write p=2^255-19; q=floor(h/p). * Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). @@ -848,102 +857,112 @@ static void fe_frombytes(fe h, const uint8_t *s) { * Then 0<x<2^255 so floor(2^(-255)x) = 0 so floor(q+2^(-255)x) = q. * * Have q+2^(-255)x = 2^(-255)(h + 19 2^(-25) h9 + 2^(-1)) - * so floor(2^(-255)(h + 19 2^(-25) h9 + 2^(-1))) = q. */ -static void fe_tobytes(uint8_t *s, const fe h) { - int32_t h0 = h[0]; - int32_t h1 = h[1]; - int32_t h2 = h[2]; - int32_t h3 = h[3]; - int32_t h4 = h[4]; - int32_t h5 = h[5]; - int32_t h6 = h[6]; - int32_t h7 = h[7]; - int32_t h8 = h[8]; - int32_t h9 = h[9]; - int32_t q; - - q = (19 * h9 + (((int32_t) 1) << 24)) >> 25; - q = (h0 + q) >> 26; - q = (h1 + q) >> 25; - q = (h2 + q) >> 26; - q = (h3 + q) >> 25; - q = (h4 + q) >> 26; - q = (h5 + q) >> 25; - q = (h6 + q) >> 26; - q = (h7 + q) >> 25; - q = (h8 + q) >> 26; - q = (h9 + q) >> 25; - - /* Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. */ - h0 += 19 * q; - /* Goal: Output h-2^255 q, which is between 0 and 2^255-20. */ - - h1 += h0 >> 26; h0 &= kBottom26Bits; - h2 += h1 >> 25; h1 &= kBottom25Bits; - h3 += h2 >> 26; h2 &= kBottom26Bits; - h4 += h3 >> 25; h3 &= kBottom25Bits; - h5 += h4 >> 26; h4 &= kBottom26Bits; - h6 += h5 >> 25; h5 &= kBottom25Bits; - h7 += h6 >> 26; h6 &= kBottom26Bits; - h8 += h7 >> 25; h7 &= kBottom25Bits; - h9 += h8 >> 26; h8 &= kBottom26Bits; - h9 &= kBottom25Bits; - /* h10 = carry9 */ - - /* Goal: Output h0+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. - * Have h0+...+2^230 h9 between 0 and 2^255-1; - * evidently 2^255 h10-2^255 q = 0. - * Goal: Output h0+...+2^230 h9. */ - - s[0] = (uint8_t)(h0 >> 0); - s[1] = (uint8_t)(h0 >> 8); - s[2] = (uint8_t)(h0 >> 16); - s[3] = (uint8_t)((h0 >> 24) | ((uint32_t)(h1) << 2)); - s[4] = (uint8_t)(h1 >> 6); - s[5] = (uint8_t)(h1 >> 14); - s[6] = (uint8_t)((h1 >> 22) | ((uint32_t)(h2) << 3)); - s[7] = (uint8_t)(h2 >> 5); - s[8] = (uint8_t)(h2 >> 13); - s[9] = (uint8_t)((h2 >> 21) | ((uint32_t)(h3) << 5)); - s[10] = (uint8_t)(h3 >> 3); - s[11] = (uint8_t)(h3 >> 11); - s[12] = (uint8_t)((h3 >> 19) | ((uint32_t)(h4) << 6)); - s[13] = (uint8_t)(h4 >> 2); - s[14] = (uint8_t)(h4 >> 10); - s[15] = (uint8_t)(h4 >> 18); - s[16] = (uint8_t)(h5 >> 0); - s[17] = (uint8_t)(h5 >> 8); - s[18] = (uint8_t)(h5 >> 16); - s[19] = (uint8_t)((h5 >> 24) | ((uint32_t)(h6) << 1)); - s[20] = (uint8_t)(h6 >> 7); - s[21] = (uint8_t)(h6 >> 15); - s[22] = (uint8_t)((h6 >> 23) | ((uint32_t)(h7) << 3)); - s[23] = (uint8_t)(h7 >> 5); - s[24] = (uint8_t)(h7 >> 13); - s[25] = (uint8_t)((h7 >> 21) | ((uint32_t)(h8) << 4)); - s[26] = (uint8_t)(h8 >> 4); - s[27] = (uint8_t)(h8 >> 12); - s[28] = (uint8_t)((h8 >> 20) | ((uint32_t)(h9) << 6)); - s[29] = (uint8_t)(h9 >> 2); - s[30] = (uint8_t)(h9 >> 10); - s[31] = (uint8_t)(h9 >> 18); + * so floor(2^(-255)(h + 19 2^(-25) h9 + 2^(-1))) = q. + */ +static void fe_tobytes(uint8_t *s, const fe h) +{ + int32_t h0 = h[0]; + int32_t h1 = h[1]; + int32_t h2 = h[2]; + int32_t h3 = h[3]; + int32_t h4 = h[4]; + int32_t h5 = h[5]; + int32_t h6 = h[6]; + int32_t h7 = h[7]; + int32_t h8 = h[8]; + int32_t h9 = h[9]; + int32_t q; + + q = (19 * h9 + (((int32_t) 1) << 24)) >> 25; + q = (h0 + q) >> 26; + q = (h1 + q) >> 25; + q = (h2 + q) >> 26; + q = (h3 + q) >> 25; + q = (h4 + q) >> 26; + q = (h5 + q) >> 25; + q = (h6 + q) >> 26; + q = (h7 + q) >> 25; + q = (h8 + q) >> 26; + q = (h9 + q) >> 25; + + /* Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. */ + h0 += 19 * q; + /* Goal: Output h-2^255 q, which is between 0 and 2^255-20. */ + + h1 += h0 >> 26; h0 &= kBottom26Bits; + h2 += h1 >> 25; h1 &= kBottom25Bits; + h3 += h2 >> 26; h2 &= kBottom26Bits; + h4 += h3 >> 25; h3 &= kBottom25Bits; + h5 += h4 >> 26; h4 &= kBottom26Bits; + h6 += h5 >> 25; h5 &= kBottom25Bits; + h7 += h6 >> 26; h6 &= kBottom26Bits; + h8 += h7 >> 25; h7 &= kBottom25Bits; + h9 += h8 >> 26; h8 &= kBottom26Bits; + h9 &= kBottom25Bits; + /* h10 = carry9 */ + + /* + * Goal: Output h0+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. + * Have h0+...+2^230 h9 between 0 and 2^255-1; + * evidently 2^255 h10-2^255 q = 0. + * Goal: Output h0+...+2^230 h9. + */ + s[ 0] = (uint8_t) (h0 >> 0); + s[ 1] = (uint8_t) (h0 >> 8); + s[ 2] = (uint8_t) (h0 >> 16); + s[ 3] = (uint8_t)((h0 >> 24) | ((uint32_t)(h1) << 2)); + s[ 4] = (uint8_t) (h1 >> 6); + s[ 5] = (uint8_t) (h1 >> 14); + s[ 6] = (uint8_t)((h1 >> 22) | ((uint32_t)(h2) << 3)); + s[ 7] = (uint8_t) (h2 >> 5); + s[ 8] = (uint8_t) (h2 >> 13); + s[ 9] = (uint8_t)((h2 >> 21) | ((uint32_t)(h3) << 5)); + s[10] = (uint8_t) (h3 >> 3); + s[11] = (uint8_t) (h3 >> 11); + s[12] = (uint8_t)((h3 >> 19) | ((uint32_t)(h4) << 6)); + s[13] = (uint8_t) (h4 >> 2); + s[14] = (uint8_t) (h4 >> 10); + s[15] = (uint8_t) (h4 >> 18); + s[16] = (uint8_t) (h5 >> 0); + s[17] = (uint8_t) (h5 >> 8); + s[18] = (uint8_t) (h5 >> 16); + s[19] = (uint8_t)((h5 >> 24) | ((uint32_t)(h6) << 1)); + s[20] = (uint8_t) (h6 >> 7); + s[21] = (uint8_t) (h6 >> 15); + s[22] = (uint8_t)((h6 >> 23) | ((uint32_t)(h7) << 3)); + s[23] = (uint8_t) (h7 >> 5); + s[24] = (uint8_t) (h7 >> 13); + s[25] = (uint8_t)((h7 >> 21) | ((uint32_t)(h8) << 4)); + s[26] = (uint8_t) (h8 >> 4); + s[27] = (uint8_t) (h8 >> 12); + s[28] = (uint8_t)((h8 >> 20) | ((uint32_t)(h9) << 6)); + s[29] = (uint8_t) (h9 >> 2); + s[30] = (uint8_t) (h9 >> 10); + s[31] = (uint8_t) (h9 >> 18); } /* h = f */ -static void fe_copy(fe h, const fe f) { - memmove(h, f, sizeof(int32_t) * 10); +static void fe_copy(fe h, const fe f) +{ + memmove(h, f, sizeof(int32_t) * 10); } /* h = 0 */ -static void fe_0(fe h) { memset(h, 0, sizeof(int32_t) * 10); } +static void fe_0(fe h) +{ + memset(h, 0, sizeof(int32_t) * 10); +} /* h = 1 */ -static void fe_1(fe h) { - memset(h, 0, sizeof(int32_t) * 10); - h[0] = 1; +static void fe_1(fe h) +{ + memset(h, 0, sizeof(int32_t) * 10); + h[0] = 1; } -/* h = f + g +/* + * h = f + g + * * Can overlap h with f or g. * * Preconditions: @@ -951,15 +970,20 @@ static void fe_1(fe h) { * |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. * * Postconditions: - * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. */ -static void fe_add(fe h, const fe f, const fe g) { - unsigned i; - for (i = 0; i < 10; i++) { - h[i] = f[i] + g[i]; - } + * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + */ +static void fe_add(fe h, const fe f, const fe g) +{ + unsigned i; + + for (i = 0; i < 10; i++) { + h[i] = f[i] + g[i]; + } } -/* h = f - g +/* + * h = f - g + * * Can overlap h with f or g. * * Preconditions: @@ -967,15 +991,20 @@ static void fe_add(fe h, const fe f, const fe g) { * |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. * * Postconditions: - * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. */ -static void fe_sub(fe h, const fe f, const fe g) { - unsigned i; - for (i = 0; i < 10; i++) { - h[i] = f[i] - g[i]; - } + * |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + */ +static void fe_sub(fe h, const fe f, const fe g) +{ + unsigned i; + + for (i = 0; i < 10; i++) { + h[i] = f[i] - g[i]; + } } -/* h = f * g +/* + * h = f * g + * * Can overlap h with f or g. * * Preconditions: @@ -1001,224 +1030,228 @@ static void fe_sub(fe h, const fe f, const fe g) { * 10 of them are 2-way parallelizable and vectorizable. * Can get away with 11 carries, but then data flow is much deeper. * - * With tighter constraints on inputs can squeeze carries into int32. */ -static void fe_mul(fe h, const fe f, const fe g) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t g1_19 = 19 * g1; /* 1.959375*2^29 */ - int32_t g2_19 = 19 * g2; /* 1.959375*2^30; still ok */ - int32_t g3_19 = 19 * g3; - int32_t g4_19 = 19 * g4; - int32_t g5_19 = 19 * g5; - int32_t g6_19 = 19 * g6; - int32_t g7_19 = 19 * g7; - int32_t g8_19 = 19 * g8; - int32_t g9_19 = 19 * g9; - int32_t f1_2 = 2 * f1; - int32_t f3_2 = 2 * f3; - int32_t f5_2 = 2 * f5; - int32_t f7_2 = 2 * f7; - int32_t f9_2 = 2 * f9; - int64_t f0g0 = f0 * (int64_t) g0; - int64_t f0g1 = f0 * (int64_t) g1; - int64_t f0g2 = f0 * (int64_t) g2; - int64_t f0g3 = f0 * (int64_t) g3; - int64_t f0g4 = f0 * (int64_t) g4; - int64_t f0g5 = f0 * (int64_t) g5; - int64_t f0g6 = f0 * (int64_t) g6; - int64_t f0g7 = f0 * (int64_t) g7; - int64_t f0g8 = f0 * (int64_t) g8; - int64_t f0g9 = f0 * (int64_t) g9; - int64_t f1g0 = f1 * (int64_t) g0; - int64_t f1g1_2 = f1_2 * (int64_t) g1; - int64_t f1g2 = f1 * (int64_t) g2; - int64_t f1g3_2 = f1_2 * (int64_t) g3; - int64_t f1g4 = f1 * (int64_t) g4; - int64_t f1g5_2 = f1_2 * (int64_t) g5; - int64_t f1g6 = f1 * (int64_t) g6; - int64_t f1g7_2 = f1_2 * (int64_t) g7; - int64_t f1g8 = f1 * (int64_t) g8; - int64_t f1g9_38 = f1_2 * (int64_t) g9_19; - int64_t f2g0 = f2 * (int64_t) g0; - int64_t f2g1 = f2 * (int64_t) g1; - int64_t f2g2 = f2 * (int64_t) g2; - int64_t f2g3 = f2 * (int64_t) g3; - int64_t f2g4 = f2 * (int64_t) g4; - int64_t f2g5 = f2 * (int64_t) g5; - int64_t f2g6 = f2 * (int64_t) g6; - int64_t f2g7 = f2 * (int64_t) g7; - int64_t f2g8_19 = f2 * (int64_t) g8_19; - int64_t f2g9_19 = f2 * (int64_t) g9_19; - int64_t f3g0 = f3 * (int64_t) g0; - int64_t f3g1_2 = f3_2 * (int64_t) g1; - int64_t f3g2 = f3 * (int64_t) g2; - int64_t f3g3_2 = f3_2 * (int64_t) g3; - int64_t f3g4 = f3 * (int64_t) g4; - int64_t f3g5_2 = f3_2 * (int64_t) g5; - int64_t f3g6 = f3 * (int64_t) g6; - int64_t f3g7_38 = f3_2 * (int64_t) g7_19; - int64_t f3g8_19 = f3 * (int64_t) g8_19; - int64_t f3g9_38 = f3_2 * (int64_t) g9_19; - int64_t f4g0 = f4 * (int64_t) g0; - int64_t f4g1 = f4 * (int64_t) g1; - int64_t f4g2 = f4 * (int64_t) g2; - int64_t f4g3 = f4 * (int64_t) g3; - int64_t f4g4 = f4 * (int64_t) g4; - int64_t f4g5 = f4 * (int64_t) g5; - int64_t f4g6_19 = f4 * (int64_t) g6_19; - int64_t f4g7_19 = f4 * (int64_t) g7_19; - int64_t f4g8_19 = f4 * (int64_t) g8_19; - int64_t f4g9_19 = f4 * (int64_t) g9_19; - int64_t f5g0 = f5 * (int64_t) g0; - int64_t f5g1_2 = f5_2 * (int64_t) g1; - int64_t f5g2 = f5 * (int64_t) g2; - int64_t f5g3_2 = f5_2 * (int64_t) g3; - int64_t f5g4 = f5 * (int64_t) g4; - int64_t f5g5_38 = f5_2 * (int64_t) g5_19; - int64_t f5g6_19 = f5 * (int64_t) g6_19; - int64_t f5g7_38 = f5_2 * (int64_t) g7_19; - int64_t f5g8_19 = f5 * (int64_t) g8_19; - int64_t f5g9_38 = f5_2 * (int64_t) g9_19; - int64_t f6g0 = f6 * (int64_t) g0; - int64_t f6g1 = f6 * (int64_t) g1; - int64_t f6g2 = f6 * (int64_t) g2; - int64_t f6g3 = f6 * (int64_t) g3; - int64_t f6g4_19 = f6 * (int64_t) g4_19; - int64_t f6g5_19 = f6 * (int64_t) g5_19; - int64_t f6g6_19 = f6 * (int64_t) g6_19; - int64_t f6g7_19 = f6 * (int64_t) g7_19; - int64_t f6g8_19 = f6 * (int64_t) g8_19; - int64_t f6g9_19 = f6 * (int64_t) g9_19; - int64_t f7g0 = f7 * (int64_t) g0; - int64_t f7g1_2 = f7_2 * (int64_t) g1; - int64_t f7g2 = f7 * (int64_t) g2; - int64_t f7g3_38 = f7_2 * (int64_t) g3_19; - int64_t f7g4_19 = f7 * (int64_t) g4_19; - int64_t f7g5_38 = f7_2 * (int64_t) g5_19; - int64_t f7g6_19 = f7 * (int64_t) g6_19; - int64_t f7g7_38 = f7_2 * (int64_t) g7_19; - int64_t f7g8_19 = f7 * (int64_t) g8_19; - int64_t f7g9_38 = f7_2 * (int64_t) g9_19; - int64_t f8g0 = f8 * (int64_t) g0; - int64_t f8g1 = f8 * (int64_t) g1; - int64_t f8g2_19 = f8 * (int64_t) g2_19; - int64_t f8g3_19 = f8 * (int64_t) g3_19; - int64_t f8g4_19 = f8 * (int64_t) g4_19; - int64_t f8g5_19 = f8 * (int64_t) g5_19; - int64_t f8g6_19 = f8 * (int64_t) g6_19; - int64_t f8g7_19 = f8 * (int64_t) g7_19; - int64_t f8g8_19 = f8 * (int64_t) g8_19; - int64_t f8g9_19 = f8 * (int64_t) g9_19; - int64_t f9g0 = f9 * (int64_t) g0; - int64_t f9g1_38 = f9_2 * (int64_t) g1_19; - int64_t f9g2_19 = f9 * (int64_t) g2_19; - int64_t f9g3_38 = f9_2 * (int64_t) g3_19; - int64_t f9g4_19 = f9 * (int64_t) g4_19; - int64_t f9g5_38 = f9_2 * (int64_t) g5_19; - int64_t f9g6_19 = f9 * (int64_t) g6_19; - int64_t f9g7_38 = f9_2 * (int64_t) g7_19; - int64_t f9g8_19 = f9 * (int64_t) g8_19; - int64_t f9g9_38 = f9_2 * (int64_t) g9_19; - int64_t h0 = f0g0+f1g9_38+f2g8_19+f3g7_38+f4g6_19+f5g5_38+f6g4_19+f7g3_38+f8g2_19+f9g1_38; - int64_t h1 = f0g1+f1g0 +f2g9_19+f3g8_19+f4g7_19+f5g6_19+f6g5_19+f7g4_19+f8g3_19+f9g2_19; - int64_t h2 = f0g2+f1g1_2 +f2g0 +f3g9_38+f4g8_19+f5g7_38+f6g6_19+f7g5_38+f8g4_19+f9g3_38; - int64_t h3 = f0g3+f1g2 +f2g1 +f3g0 +f4g9_19+f5g8_19+f6g7_19+f7g6_19+f8g5_19+f9g4_19; - int64_t h4 = f0g4+f1g3_2 +f2g2 +f3g1_2 +f4g0 +f5g9_38+f6g8_19+f7g7_38+f8g6_19+f9g5_38; - int64_t h5 = f0g5+f1g4 +f2g3 +f3g2 +f4g1 +f5g0 +f6g9_19+f7g8_19+f8g7_19+f9g6_19; - int64_t h6 = f0g6+f1g5_2 +f2g4 +f3g3_2 +f4g2 +f5g1_2 +f6g0 +f7g9_38+f8g8_19+f9g7_38; - int64_t h7 = f0g7+f1g6 +f2g5 +f3g4 +f4g3 +f5g2 +f6g1 +f7g0 +f8g9_19+f9g8_19; - int64_t h8 = f0g8+f1g7_2 +f2g6 +f3g5_2 +f4g4 +f5g3_2 +f6g2 +f7g1_2 +f8g0 +f9g9_38; - int64_t h9 = f0g9+f1g8 +f2g7 +f3g6 +f4g5 +f5g4 +f6g3 +f7g2 +f8g1 +f9g0 ; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - /* |h0| <= (1.65*1.65*2^52*(1+19+19+19+19)+1.65*1.65*2^50*(38+38+38+38+38)) - * i.e. |h0| <= 1.4*2^60; narrower ranges for h2, h4, h6, h8 - * |h1| <= (1.65*1.65*2^51*(1+1+19+19+19+19+19+19+19+19)) - * i.e. |h1| <= 1.7*2^59; narrower ranges for h3, h5, h7, h9 */ - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - /* |h0| <= 2^25 */ - /* |h4| <= 2^25 */ - /* |h1| <= 1.71*2^59 */ - /* |h5| <= 1.71*2^59 */ - - carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; - carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; - /* |h1| <= 2^24; from now on fits into int32 */ - /* |h5| <= 2^24; from now on fits into int32 */ - /* |h2| <= 1.41*2^60 */ - /* |h6| <= 1.41*2^60 */ - - carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; - carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; - /* |h2| <= 2^25; from now on fits into int32 unchanged */ - /* |h6| <= 2^25; from now on fits into int32 unchanged */ - /* |h3| <= 1.71*2^59 */ - /* |h7| <= 1.71*2^59 */ - - carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; - carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; - /* |h3| <= 2^24; from now on fits into int32 unchanged */ - /* |h7| <= 2^24; from now on fits into int32 unchanged */ - /* |h4| <= 1.72*2^34 */ - /* |h8| <= 1.41*2^60 */ - - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; - /* |h4| <= 2^25; from now on fits into int32 unchanged */ - /* |h8| <= 2^25; from now on fits into int32 unchanged */ - /* |h5| <= 1.01*2^24 */ - /* |h9| <= 1.71*2^59 */ - - carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; - /* |h9| <= 2^24; from now on fits into int32 unchanged */ - /* |h0| <= 1.1*2^39 */ - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - /* |h0| <= 2^25; from now on fits into int32 unchanged */ - /* |h1| <= 1.01*2^24 */ - - h[0] = (int32_t)h0; - h[1] = (int32_t)h1; - h[2] = (int32_t)h2; - h[3] = (int32_t)h3; - h[4] = (int32_t)h4; - h[5] = (int32_t)h5; - h[6] = (int32_t)h6; - h[7] = (int32_t)h7; - h[8] = (int32_t)h8; - h[9] = (int32_t)h9; + * With tighter constraints on inputs can squeeze carries into int32. + */ +static void fe_mul(fe h, const fe f, const fe g) +{ + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t g0 = g[0]; + int32_t g1 = g[1]; + int32_t g2 = g[2]; + int32_t g3 = g[3]; + int32_t g4 = g[4]; + int32_t g5 = g[5]; + int32_t g6 = g[6]; + int32_t g7 = g[7]; + int32_t g8 = g[8]; + int32_t g9 = g[9]; + int32_t g1_19 = 19 * g1; /* 1.959375*2^29 */ + int32_t g2_19 = 19 * g2; /* 1.959375*2^30; still ok */ + int32_t g3_19 = 19 * g3; + int32_t g4_19 = 19 * g4; + int32_t g5_19 = 19 * g5; + int32_t g6_19 = 19 * g6; + int32_t g7_19 = 19 * g7; + int32_t g8_19 = 19 * g8; + int32_t g9_19 = 19 * g9; + int32_t f1_2 = 2 * f1; + int32_t f3_2 = 2 * f3; + int32_t f5_2 = 2 * f5; + int32_t f7_2 = 2 * f7; + int32_t f9_2 = 2 * f9; + int64_t f0g0 = f0 * (int64_t) g0; + int64_t f0g1 = f0 * (int64_t) g1; + int64_t f0g2 = f0 * (int64_t) g2; + int64_t f0g3 = f0 * (int64_t) g3; + int64_t f0g4 = f0 * (int64_t) g4; + int64_t f0g5 = f0 * (int64_t) g5; + int64_t f0g6 = f0 * (int64_t) g6; + int64_t f0g7 = f0 * (int64_t) g7; + int64_t f0g8 = f0 * (int64_t) g8; + int64_t f0g9 = f0 * (int64_t) g9; + int64_t f1g0 = f1 * (int64_t) g0; + int64_t f1g1_2 = f1_2 * (int64_t) g1; + int64_t f1g2 = f1 * (int64_t) g2; + int64_t f1g3_2 = f1_2 * (int64_t) g3; + int64_t f1g4 = f1 * (int64_t) g4; + int64_t f1g5_2 = f1_2 * (int64_t) g5; + int64_t f1g6 = f1 * (int64_t) g6; + int64_t f1g7_2 = f1_2 * (int64_t) g7; + int64_t f1g8 = f1 * (int64_t) g8; + int64_t f1g9_38 = f1_2 * (int64_t) g9_19; + int64_t f2g0 = f2 * (int64_t) g0; + int64_t f2g1 = f2 * (int64_t) g1; + int64_t f2g2 = f2 * (int64_t) g2; + int64_t f2g3 = f2 * (int64_t) g3; + int64_t f2g4 = f2 * (int64_t) g4; + int64_t f2g5 = f2 * (int64_t) g5; + int64_t f2g6 = f2 * (int64_t) g6; + int64_t f2g7 = f2 * (int64_t) g7; + int64_t f2g8_19 = f2 * (int64_t) g8_19; + int64_t f2g9_19 = f2 * (int64_t) g9_19; + int64_t f3g0 = f3 * (int64_t) g0; + int64_t f3g1_2 = f3_2 * (int64_t) g1; + int64_t f3g2 = f3 * (int64_t) g2; + int64_t f3g3_2 = f3_2 * (int64_t) g3; + int64_t f3g4 = f3 * (int64_t) g4; + int64_t f3g5_2 = f3_2 * (int64_t) g5; + int64_t f3g6 = f3 * (int64_t) g6; + int64_t f3g7_38 = f3_2 * (int64_t) g7_19; + int64_t f3g8_19 = f3 * (int64_t) g8_19; + int64_t f3g9_38 = f3_2 * (int64_t) g9_19; + int64_t f4g0 = f4 * (int64_t) g0; + int64_t f4g1 = f4 * (int64_t) g1; + int64_t f4g2 = f4 * (int64_t) g2; + int64_t f4g3 = f4 * (int64_t) g3; + int64_t f4g4 = f4 * (int64_t) g4; + int64_t f4g5 = f4 * (int64_t) g5; + int64_t f4g6_19 = f4 * (int64_t) g6_19; + int64_t f4g7_19 = f4 * (int64_t) g7_19; + int64_t f4g8_19 = f4 * (int64_t) g8_19; + int64_t f4g9_19 = f4 * (int64_t) g9_19; + int64_t f5g0 = f5 * (int64_t) g0; + int64_t f5g1_2 = f5_2 * (int64_t) g1; + int64_t f5g2 = f5 * (int64_t) g2; + int64_t f5g3_2 = f5_2 * (int64_t) g3; + int64_t f5g4 = f5 * (int64_t) g4; + int64_t f5g5_38 = f5_2 * (int64_t) g5_19; + int64_t f5g6_19 = f5 * (int64_t) g6_19; + int64_t f5g7_38 = f5_2 * (int64_t) g7_19; + int64_t f5g8_19 = f5 * (int64_t) g8_19; + int64_t f5g9_38 = f5_2 * (int64_t) g9_19; + int64_t f6g0 = f6 * (int64_t) g0; + int64_t f6g1 = f6 * (int64_t) g1; + int64_t f6g2 = f6 * (int64_t) g2; + int64_t f6g3 = f6 * (int64_t) g3; + int64_t f6g4_19 = f6 * (int64_t) g4_19; + int64_t f6g5_19 = f6 * (int64_t) g5_19; + int64_t f6g6_19 = f6 * (int64_t) g6_19; + int64_t f6g7_19 = f6 * (int64_t) g7_19; + int64_t f6g8_19 = f6 * (int64_t) g8_19; + int64_t f6g9_19 = f6 * (int64_t) g9_19; + int64_t f7g0 = f7 * (int64_t) g0; + int64_t f7g1_2 = f7_2 * (int64_t) g1; + int64_t f7g2 = f7 * (int64_t) g2; + int64_t f7g3_38 = f7_2 * (int64_t) g3_19; + int64_t f7g4_19 = f7 * (int64_t) g4_19; + int64_t f7g5_38 = f7_2 * (int64_t) g5_19; + int64_t f7g6_19 = f7 * (int64_t) g6_19; + int64_t f7g7_38 = f7_2 * (int64_t) g7_19; + int64_t f7g8_19 = f7 * (int64_t) g8_19; + int64_t f7g9_38 = f7_2 * (int64_t) g9_19; + int64_t f8g0 = f8 * (int64_t) g0; + int64_t f8g1 = f8 * (int64_t) g1; + int64_t f8g2_19 = f8 * (int64_t) g2_19; + int64_t f8g3_19 = f8 * (int64_t) g3_19; + int64_t f8g4_19 = f8 * (int64_t) g4_19; + int64_t f8g5_19 = f8 * (int64_t) g5_19; + int64_t f8g6_19 = f8 * (int64_t) g6_19; + int64_t f8g7_19 = f8 * (int64_t) g7_19; + int64_t f8g8_19 = f8 * (int64_t) g8_19; + int64_t f8g9_19 = f8 * (int64_t) g9_19; + int64_t f9g0 = f9 * (int64_t) g0; + int64_t f9g1_38 = f9_2 * (int64_t) g1_19; + int64_t f9g2_19 = f9 * (int64_t) g2_19; + int64_t f9g3_38 = f9_2 * (int64_t) g3_19; + int64_t f9g4_19 = f9 * (int64_t) g4_19; + int64_t f9g5_38 = f9_2 * (int64_t) g5_19; + int64_t f9g6_19 = f9 * (int64_t) g6_19; + int64_t f9g7_38 = f9_2 * (int64_t) g7_19; + int64_t f9g8_19 = f9 * (int64_t) g8_19; + int64_t f9g9_38 = f9_2 * (int64_t) g9_19; + int64_t h0 = f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38; + int64_t h1 = f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19; + int64_t h2 = f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38; + int64_t h3 = f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19; + int64_t h4 = f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38; + int64_t h5 = f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19; + int64_t h6 = f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38; + int64_t h7 = f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19; + int64_t h8 = f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38; + int64_t h9 = f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 ; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + /* |h0| <= (1.65*1.65*2^52*(1+19+19+19+19)+1.65*1.65*2^50*(38+38+38+38+38)) + * i.e. |h0| <= 1.4*2^60; narrower ranges for h2, h4, h6, h8 + * |h1| <= (1.65*1.65*2^51*(1+1+19+19+19+19+19+19+19+19)) + * i.e. |h1| <= 1.7*2^59; narrower ranges for h3, h5, h7, h9 */ + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + /* |h0| <= 2^25 */ + /* |h4| <= 2^25 */ + /* |h1| <= 1.71*2^59 */ + /* |h5| <= 1.71*2^59 */ + + carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; + carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; + /* |h1| <= 2^24; from now on fits into int32 */ + /* |h5| <= 2^24; from now on fits into int32 */ + /* |h2| <= 1.41*2^60 */ + /* |h6| <= 1.41*2^60 */ + + carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; + carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; + /* |h2| <= 2^25; from now on fits into int32 unchanged */ + /* |h6| <= 2^25; from now on fits into int32 unchanged */ + /* |h3| <= 1.71*2^59 */ + /* |h7| <= 1.71*2^59 */ + + carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; + carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; + /* |h3| <= 2^24; from now on fits into int32 unchanged */ + /* |h7| <= 2^24; from now on fits into int32 unchanged */ + /* |h4| <= 1.72*2^34 */ + /* |h8| <= 1.41*2^60 */ + + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; + /* |h4| <= 2^25; from now on fits into int32 unchanged */ + /* |h8| <= 2^25; from now on fits into int32 unchanged */ + /* |h5| <= 1.01*2^24 */ + /* |h9| <= 1.71*2^59 */ + + carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; + /* |h9| <= 2^24; from now on fits into int32 unchanged */ + /* |h0| <= 1.1*2^39 */ + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + /* |h0| <= 2^25; from now on fits into int32 unchanged */ + /* |h1| <= 1.01*2^24 */ + + h[0] = (int32_t)h0; + h[1] = (int32_t)h1; + h[2] = (int32_t)h2; + h[3] = (int32_t)h3; + h[4] = (int32_t)h4; + h[5] = (int32_t)h5; + h[6] = (int32_t)h6; + h[7] = (int32_t)h7; + h[8] = (int32_t)h8; + h[9] = (int32_t)h9; } -/* h = f * f +/* + * h = f * f + * * Can overlap h with f. * * Preconditions: @@ -1227,286 +1260,307 @@ static void fe_mul(fe h, const fe f, const fe g) { * Postconditions: * |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. * - * See fe_mul.c for discussion of implementation strategy. */ -static void fe_sq(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t f0_2 = 2 * f0; - int32_t f1_2 = 2 * f1; - int32_t f2_2 = 2 * f2; - int32_t f3_2 = 2 * f3; - int32_t f4_2 = 2 * f4; - int32_t f5_2 = 2 * f5; - int32_t f6_2 = 2 * f6; - int32_t f7_2 = 2 * f7; - int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ - int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ - int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ - int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ - int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ - int64_t f0f0 = f0 * (int64_t) f0; - int64_t f0f1_2 = f0_2 * (int64_t) f1; - int64_t f0f2_2 = f0_2 * (int64_t) f2; - int64_t f0f3_2 = f0_2 * (int64_t) f3; - int64_t f0f4_2 = f0_2 * (int64_t) f4; - int64_t f0f5_2 = f0_2 * (int64_t) f5; - int64_t f0f6_2 = f0_2 * (int64_t) f6; - int64_t f0f7_2 = f0_2 * (int64_t) f7; - int64_t f0f8_2 = f0_2 * (int64_t) f8; - int64_t f0f9_2 = f0_2 * (int64_t) f9; - int64_t f1f1_2 = f1_2 * (int64_t) f1; - int64_t f1f2_2 = f1_2 * (int64_t) f2; - int64_t f1f3_4 = f1_2 * (int64_t) f3_2; - int64_t f1f4_2 = f1_2 * (int64_t) f4; - int64_t f1f5_4 = f1_2 * (int64_t) f5_2; - int64_t f1f6_2 = f1_2 * (int64_t) f6; - int64_t f1f7_4 = f1_2 * (int64_t) f7_2; - int64_t f1f8_2 = f1_2 * (int64_t) f8; - int64_t f1f9_76 = f1_2 * (int64_t) f9_38; - int64_t f2f2 = f2 * (int64_t) f2; - int64_t f2f3_2 = f2_2 * (int64_t) f3; - int64_t f2f4_2 = f2_2 * (int64_t) f4; - int64_t f2f5_2 = f2_2 * (int64_t) f5; - int64_t f2f6_2 = f2_2 * (int64_t) f6; - int64_t f2f7_2 = f2_2 * (int64_t) f7; - int64_t f2f8_38 = f2_2 * (int64_t) f8_19; - int64_t f2f9_38 = f2 * (int64_t) f9_38; - int64_t f3f3_2 = f3_2 * (int64_t) f3; - int64_t f3f4_2 = f3_2 * (int64_t) f4; - int64_t f3f5_4 = f3_2 * (int64_t) f5_2; - int64_t f3f6_2 = f3_2 * (int64_t) f6; - int64_t f3f7_76 = f3_2 * (int64_t) f7_38; - int64_t f3f8_38 = f3_2 * (int64_t) f8_19; - int64_t f3f9_76 = f3_2 * (int64_t) f9_38; - int64_t f4f4 = f4 * (int64_t) f4; - int64_t f4f5_2 = f4_2 * (int64_t) f5; - int64_t f4f6_38 = f4_2 * (int64_t) f6_19; - int64_t f4f7_38 = f4 * (int64_t) f7_38; - int64_t f4f8_38 = f4_2 * (int64_t) f8_19; - int64_t f4f9_38 = f4 * (int64_t) f9_38; - int64_t f5f5_38 = f5 * (int64_t) f5_38; - int64_t f5f6_38 = f5_2 * (int64_t) f6_19; - int64_t f5f7_76 = f5_2 * (int64_t) f7_38; - int64_t f5f8_38 = f5_2 * (int64_t) f8_19; - int64_t f5f9_76 = f5_2 * (int64_t) f9_38; - int64_t f6f6_19 = f6 * (int64_t) f6_19; - int64_t f6f7_38 = f6 * (int64_t) f7_38; - int64_t f6f8_38 = f6_2 * (int64_t) f8_19; - int64_t f6f9_38 = f6 * (int64_t) f9_38; - int64_t f7f7_38 = f7 * (int64_t) f7_38; - int64_t f7f8_38 = f7_2 * (int64_t) f8_19; - int64_t f7f9_76 = f7_2 * (int64_t) f9_38; - int64_t f8f8_19 = f8 * (int64_t) f8_19; - int64_t f8f9_38 = f8 * (int64_t) f9_38; - int64_t f9f9_38 = f9 * (int64_t) f9_38; - int64_t h0 = f0f0 +f1f9_76+f2f8_38+f3f7_76+f4f6_38+f5f5_38; - int64_t h1 = f0f1_2+f2f9_38+f3f8_38+f4f7_38+f5f6_38; - int64_t h2 = f0f2_2+f1f1_2 +f3f9_76+f4f8_38+f5f7_76+f6f6_19; - int64_t h3 = f0f3_2+f1f2_2 +f4f9_38+f5f8_38+f6f7_38; - int64_t h4 = f0f4_2+f1f3_4 +f2f2 +f5f9_76+f6f8_38+f7f7_38; - int64_t h5 = f0f5_2+f1f4_2 +f2f3_2 +f6f9_38+f7f8_38; - int64_t h6 = f0f6_2+f1f5_4 +f2f4_2 +f3f3_2 +f7f9_76+f8f8_19; - int64_t h7 = f0f7_2+f1f6_2 +f2f5_2 +f3f4_2 +f8f9_38; - int64_t h8 = f0f8_2+f1f7_4 +f2f6_2 +f3f5_4 +f4f4 +f9f9_38; - int64_t h9 = f0f9_2+f1f8_2 +f2f7_2 +f3f6_2 +f4f5_2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - - carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; - carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; - - carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; - carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; - - carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; - carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; - - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; - - carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - - h[0] = (int32_t)h0; - h[1] = (int32_t)h1; - h[2] = (int32_t)h2; - h[3] = (int32_t)h3; - h[4] = (int32_t)h4; - h[5] = (int32_t)h5; - h[6] = (int32_t)h6; - h[7] = (int32_t)h7; - h[8] = (int32_t)h8; - h[9] = (int32_t)h9; + * See fe_mul.c for discussion of implementation strategy. + */ +static void fe_sq(fe h, const fe f) +{ + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t f0_2 = 2 * f0; + int32_t f1_2 = 2 * f1; + int32_t f2_2 = 2 * f2; + int32_t f3_2 = 2 * f3; + int32_t f4_2 = 2 * f4; + int32_t f5_2 = 2 * f5; + int32_t f6_2 = 2 * f6; + int32_t f7_2 = 2 * f7; + int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ + int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ + int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ + int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ + int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ + int64_t f0f0 = f0 * (int64_t) f0; + int64_t f0f1_2 = f0_2 * (int64_t) f1; + int64_t f0f2_2 = f0_2 * (int64_t) f2; + int64_t f0f3_2 = f0_2 * (int64_t) f3; + int64_t f0f4_2 = f0_2 * (int64_t) f4; + int64_t f0f5_2 = f0_2 * (int64_t) f5; + int64_t f0f6_2 = f0_2 * (int64_t) f6; + int64_t f0f7_2 = f0_2 * (int64_t) f7; + int64_t f0f8_2 = f0_2 * (int64_t) f8; + int64_t f0f9_2 = f0_2 * (int64_t) f9; + int64_t f1f1_2 = f1_2 * (int64_t) f1; + int64_t f1f2_2 = f1_2 * (int64_t) f2; + int64_t f1f3_4 = f1_2 * (int64_t) f3_2; + int64_t f1f4_2 = f1_2 * (int64_t) f4; + int64_t f1f5_4 = f1_2 * (int64_t) f5_2; + int64_t f1f6_2 = f1_2 * (int64_t) f6; + int64_t f1f7_4 = f1_2 * (int64_t) f7_2; + int64_t f1f8_2 = f1_2 * (int64_t) f8; + int64_t f1f9_76 = f1_2 * (int64_t) f9_38; + int64_t f2f2 = f2 * (int64_t) f2; + int64_t f2f3_2 = f2_2 * (int64_t) f3; + int64_t f2f4_2 = f2_2 * (int64_t) f4; + int64_t f2f5_2 = f2_2 * (int64_t) f5; + int64_t f2f6_2 = f2_2 * (int64_t) f6; + int64_t f2f7_2 = f2_2 * (int64_t) f7; + int64_t f2f8_38 = f2_2 * (int64_t) f8_19; + int64_t f2f9_38 = f2 * (int64_t) f9_38; + int64_t f3f3_2 = f3_2 * (int64_t) f3; + int64_t f3f4_2 = f3_2 * (int64_t) f4; + int64_t f3f5_4 = f3_2 * (int64_t) f5_2; + int64_t f3f6_2 = f3_2 * (int64_t) f6; + int64_t f3f7_76 = f3_2 * (int64_t) f7_38; + int64_t f3f8_38 = f3_2 * (int64_t) f8_19; + int64_t f3f9_76 = f3_2 * (int64_t) f9_38; + int64_t f4f4 = f4 * (int64_t) f4; + int64_t f4f5_2 = f4_2 * (int64_t) f5; + int64_t f4f6_38 = f4_2 * (int64_t) f6_19; + int64_t f4f7_38 = f4 * (int64_t) f7_38; + int64_t f4f8_38 = f4_2 * (int64_t) f8_19; + int64_t f4f9_38 = f4 * (int64_t) f9_38; + int64_t f5f5_38 = f5 * (int64_t) f5_38; + int64_t f5f6_38 = f5_2 * (int64_t) f6_19; + int64_t f5f7_76 = f5_2 * (int64_t) f7_38; + int64_t f5f8_38 = f5_2 * (int64_t) f8_19; + int64_t f5f9_76 = f5_2 * (int64_t) f9_38; + int64_t f6f6_19 = f6 * (int64_t) f6_19; + int64_t f6f7_38 = f6 * (int64_t) f7_38; + int64_t f6f8_38 = f6_2 * (int64_t) f8_19; + int64_t f6f9_38 = f6 * (int64_t) f9_38; + int64_t f7f7_38 = f7 * (int64_t) f7_38; + int64_t f7f8_38 = f7_2 * (int64_t) f8_19; + int64_t f7f9_76 = f7_2 * (int64_t) f9_38; + int64_t f8f8_19 = f8 * (int64_t) f8_19; + int64_t f8f9_38 = f8 * (int64_t) f9_38; + int64_t f9f9_38 = f9 * (int64_t) f9_38; + int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; + int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; + int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; + int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; + int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; + int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; + int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; + int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; + int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; + int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + + carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; + carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; + + carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; + carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; + + carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; + carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; + + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; + + carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + + h[0] = (int32_t)h0; + h[1] = (int32_t)h1; + h[2] = (int32_t)h2; + h[3] = (int32_t)h3; + h[4] = (int32_t)h4; + h[5] = (int32_t)h5; + h[6] = (int32_t)h6; + h[7] = (int32_t)h7; + h[8] = (int32_t)h8; + h[9] = (int32_t)h9; } -static void fe_invert(fe out, const fe z) { - fe t0; - fe t1; - fe t2; - fe t3; - int i; +static void fe_invert(fe out, const fe z) +{ + fe t0; + fe t1; + fe t2; + fe t3; + int i; - /* - * Compute z ** -1 = z ** (2 ** 255 - 19 - 2) with the exponent as - * 2 ** 255 - 21 = (2 ** 5) * (2 ** 250 - 1) + 11. - */ + /* + * Compute z ** -1 = z ** (2 ** 255 - 19 - 2) with the exponent as + * 2 ** 255 - 21 = (2 ** 5) * (2 ** 250 - 1) + 11. + */ - /* t0 = z ** 2 */ - fe_sq(t0, z); + /* t0 = z ** 2 */ + fe_sq(t0, z); - /* t1 = t0 ** (2 ** 2) = z ** 8 */ - fe_sq(t1, t0); - fe_sq(t1, t1); + /* t1 = t0 ** (2 ** 2) = z ** 8 */ + fe_sq(t1, t0); + fe_sq(t1, t1); - /* t1 = z * t1 = z ** 9 */ - fe_mul(t1, z, t1); - /* t0 = t0 * t1 = z ** 11 -- stash t0 away for the end. */ - fe_mul(t0, t0, t1); + /* t1 = z * t1 = z ** 9 */ + fe_mul(t1, z, t1); + /* t0 = t0 * t1 = z ** 11 -- stash t0 away for the end. */ + fe_mul(t0, t0, t1); - /* t2 = t0 ** 2 = z ** 22 */ - fe_sq(t2, t0); + /* t2 = t0 ** 2 = z ** 22 */ + fe_sq(t2, t0); - /* t1 = t1 * t2 = z ** (2 ** 5 - 1) */ - fe_mul(t1, t1, t2); + /* t1 = t1 * t2 = z ** (2 ** 5 - 1) */ + fe_mul(t1, t1, t2); - /* t2 = t1 ** (2 ** 5) = z ** ((2 ** 5) * (2 ** 5 - 1)) */ - fe_sq(t2, t1); - for (i = 1; i < 5; ++i) { - fe_sq(t2, t2); - } + /* t2 = t1 ** (2 ** 5) = z ** ((2 ** 5) * (2 ** 5 - 1)) */ + fe_sq(t2, t1); + for (i = 1; i < 5; ++i) { + fe_sq(t2, t2); + } - /* t1 = t1 * t2 = z ** ((2 ** 5 + 1) * (2 ** 5 - 1)) = z ** (2 ** 10 - 1) */ - fe_mul(t1, t2, t1); + /* t1 = t1 * t2 = z ** ((2 ** 5 + 1) * (2 ** 5 - 1)) = z ** (2 ** 10 - 1) */ + fe_mul(t1, t2, t1); - /* Continuing similarly... */ + /* Continuing similarly... */ - /* t2 = z ** (2 ** 20 - 1) */ - fe_sq(t2, t1); - for (i = 1; i < 10; ++i) { - fe_sq(t2, t2); - } - fe_mul(t2, t2, t1); - - /* t2 = z ** (2 ** 40 - 1) */ - fe_sq(t3, t2); - for (i = 1; i < 20; ++i) { - fe_sq(t3, t3); - } - fe_mul(t2, t3, t2); - - /* t2 = z ** (2 ** 10) * (2 ** 40 - 1) */ - for (i = 0; i < 10; ++i) { - fe_sq(t2, t2); - } - /* t1 = z ** (2 ** 50 - 1) */ - fe_mul(t1, t2, t1); + /* t2 = z ** (2 ** 20 - 1) */ + fe_sq(t2, t1); + for (i = 1; i < 10; ++i) { + fe_sq(t2, t2); + } + fe_mul(t2, t2, t1); - /* t2 = z ** (2 ** 100 - 1) */ - fe_sq(t2, t1); - for (i = 1; i < 50; ++i) { - fe_sq(t2, t2); - } - fe_mul(t2, t2, t1); - - /* t2 = z ** (2 ** 200 - 1) */ - fe_sq(t3, t2); - for (i = 1; i < 100; ++i) { - fe_sq(t3, t3); - } - fe_mul(t2, t3, t2); - - /* t2 = z ** ((2 ** 50) * (2 ** 200 - 1) */ - fe_sq(t2, t2); - for (i = 1; i < 50; ++i) { + /* t2 = z ** (2 ** 40 - 1) */ + fe_sq(t3, t2); + for (i = 1; i < 20; ++i) { + fe_sq(t3, t3); + } + fe_mul(t2, t3, t2); + + /* t2 = z ** (2 ** 10) * (2 ** 40 - 1) */ + for (i = 0; i < 10; ++i) { + fe_sq(t2, t2); + } + /* t1 = z ** (2 ** 50 - 1) */ + fe_mul(t1, t2, t1); + + /* t2 = z ** (2 ** 100 - 1) */ + fe_sq(t2, t1); + for (i = 1; i < 50; ++i) { + fe_sq(t2, t2); + } + fe_mul(t2, t2, t1); + + /* t2 = z ** (2 ** 200 - 1) */ + fe_sq(t3, t2); + for (i = 1; i < 100; ++i) { + fe_sq(t3, t3); + } + fe_mul(t2, t3, t2); + + /* t2 = z ** ((2 ** 50) * (2 ** 200 - 1) */ fe_sq(t2, t2); - } + for (i = 1; i < 50; ++i) { + fe_sq(t2, t2); + } - /* t1 = z ** (2 ** 250 - 1) */ - fe_mul(t1, t2, t1); + /* t1 = z ** (2 ** 250 - 1) */ + fe_mul(t1, t2, t1); - /* t1 = z ** ((2 ** 5) * (2 ** 250 - 1)) */ - fe_sq(t1, t1); - for (i = 1; i < 5; ++i) { + /* t1 = z ** ((2 ** 5) * (2 ** 250 - 1)) */ fe_sq(t1, t1); - } + for (i = 1; i < 5; ++i) { + fe_sq(t1, t1); + } - /* Recall t0 = z ** 11; out = z ** (2 ** 255 - 21) */ - fe_mul(out, t1, t0); + /* Recall t0 = z ** 11; out = z ** (2 ** 255 - 21) */ + fe_mul(out, t1, t0); } -/* h = -f +/* + * h = -f * * Preconditions: * |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. * * Postconditions: - * |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. */ -static void fe_neg(fe h, const fe f) { - unsigned i; - for (i = 0; i < 10; i++) { - h[i] = -f[i]; - } + * |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + */ +static void fe_neg(fe h, const fe f) +{ + unsigned i; + + for (i = 0; i < 10; i++) { + h[i] = -f[i]; + } } -/* Replace (f,g) with (g,g) if b == 1; +/* + * Replace (f,g) with (g,g) if b == 1; * replace (f,g) with (f,g) if b == 0. * - * Preconditions: b in {0,1}. */ -static void fe_cmov(fe f, const fe g, unsigned b) { - size_t i; - b = 0-b; - for (i = 0; i < 10; i++) { - int32_t x = f[i] ^ g[i]; - x &= b; - f[i] ^= x; - } + * Preconditions: b in {0,1}. + */ +static void fe_cmov(fe f, const fe g, unsigned b) +{ + size_t i; + + b = 0-b; + for (i = 0; i < 10; i++) { + int32_t x = f[i] ^ g[i]; + x &= b; + f[i] ^= x; + } } -/* return 0 if f == 0 +/* + * return 0 if f == 0 * return 1 if f != 0 * * Preconditions: - * |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. */ -static int fe_isnonzero(const fe f) { - uint8_t s[32]; - static const uint8_t zero[32] = {0}; - fe_tobytes(s, f); + * |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + */ +static int fe_isnonzero(const fe f) +{ + uint8_t s[32]; + static const uint8_t zero[32] = {0}; - return CRYPTO_memcmp(s, zero, sizeof(zero)) != 0; + fe_tobytes(s, f); + + return CRYPTO_memcmp(s, zero, sizeof(zero)) != 0; } -/* return 1 if f is in {1,3,5,...,q-2} +/* + * return 1 if f is in {1,3,5,...,q-2} * return 0 if f is in {0,2,4,...,q-1} * * Preconditions: - * |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. */ -static int fe_isnegative(const fe f) { - uint8_t s[32]; - fe_tobytes(s, f); - return s[0] & 1; + * |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. + */ +static int fe_isnegative(const fe f) +{ + uint8_t s[32]; + + fe_tobytes(s, f); + return s[0] & 1; } -/* h = 2 * f * f +/* + * h = 2 * f * f + * * Can overlap h with f. * * Preconditions: @@ -1515,208 +1569,212 @@ static int fe_isnegative(const fe f) { * Postconditions: * |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. * - * See fe_mul.c for discussion of implementation strategy. */ -static void fe_sq2(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t f0_2 = 2 * f0; - int32_t f1_2 = 2 * f1; - int32_t f2_2 = 2 * f2; - int32_t f3_2 = 2 * f3; - int32_t f4_2 = 2 * f4; - int32_t f5_2 = 2 * f5; - int32_t f6_2 = 2 * f6; - int32_t f7_2 = 2 * f7; - int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ - int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ - int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ - int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ - int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ - int64_t f0f0 = f0 * (int64_t) f0; - int64_t f0f1_2 = f0_2 * (int64_t) f1; - int64_t f0f2_2 = f0_2 * (int64_t) f2; - int64_t f0f3_2 = f0_2 * (int64_t) f3; - int64_t f0f4_2 = f0_2 * (int64_t) f4; - int64_t f0f5_2 = f0_2 * (int64_t) f5; - int64_t f0f6_2 = f0_2 * (int64_t) f6; - int64_t f0f7_2 = f0_2 * (int64_t) f7; - int64_t f0f8_2 = f0_2 * (int64_t) f8; - int64_t f0f9_2 = f0_2 * (int64_t) f9; - int64_t f1f1_2 = f1_2 * (int64_t) f1; - int64_t f1f2_2 = f1_2 * (int64_t) f2; - int64_t f1f3_4 = f1_2 * (int64_t) f3_2; - int64_t f1f4_2 = f1_2 * (int64_t) f4; - int64_t f1f5_4 = f1_2 * (int64_t) f5_2; - int64_t f1f6_2 = f1_2 * (int64_t) f6; - int64_t f1f7_4 = f1_2 * (int64_t) f7_2; - int64_t f1f8_2 = f1_2 * (int64_t) f8; - int64_t f1f9_76 = f1_2 * (int64_t) f9_38; - int64_t f2f2 = f2 * (int64_t) f2; - int64_t f2f3_2 = f2_2 * (int64_t) f3; - int64_t f2f4_2 = f2_2 * (int64_t) f4; - int64_t f2f5_2 = f2_2 * (int64_t) f5; - int64_t f2f6_2 = f2_2 * (int64_t) f6; - int64_t f2f7_2 = f2_2 * (int64_t) f7; - int64_t f2f8_38 = f2_2 * (int64_t) f8_19; - int64_t f2f9_38 = f2 * (int64_t) f9_38; - int64_t f3f3_2 = f3_2 * (int64_t) f3; - int64_t f3f4_2 = f3_2 * (int64_t) f4; - int64_t f3f5_4 = f3_2 * (int64_t) f5_2; - int64_t f3f6_2 = f3_2 * (int64_t) f6; - int64_t f3f7_76 = f3_2 * (int64_t) f7_38; - int64_t f3f8_38 = f3_2 * (int64_t) f8_19; - int64_t f3f9_76 = f3_2 * (int64_t) f9_38; - int64_t f4f4 = f4 * (int64_t) f4; - int64_t f4f5_2 = f4_2 * (int64_t) f5; - int64_t f4f6_38 = f4_2 * (int64_t) f6_19; - int64_t f4f7_38 = f4 * (int64_t) f7_38; - int64_t f4f8_38 = f4_2 * (int64_t) f8_19; - int64_t f4f9_38 = f4 * (int64_t) f9_38; - int64_t f5f5_38 = f5 * (int64_t) f5_38; - int64_t f5f6_38 = f5_2 * (int64_t) f6_19; - int64_t f5f7_76 = f5_2 * (int64_t) f7_38; - int64_t f5f8_38 = f5_2 * (int64_t) f8_19; - int64_t f5f9_76 = f5_2 * (int64_t) f9_38; - int64_t f6f6_19 = f6 * (int64_t) f6_19; - int64_t f6f7_38 = f6 * (int64_t) f7_38; - int64_t f6f8_38 = f6_2 * (int64_t) f8_19; - int64_t f6f9_38 = f6 * (int64_t) f9_38; - int64_t f7f7_38 = f7 * (int64_t) f7_38; - int64_t f7f8_38 = f7_2 * (int64_t) f8_19; - int64_t f7f9_76 = f7_2 * (int64_t) f9_38; - int64_t f8f8_19 = f8 * (int64_t) f8_19; - int64_t f8f9_38 = f8 * (int64_t) f9_38; - int64_t f9f9_38 = f9 * (int64_t) f9_38; - int64_t h0 = f0f0 +f1f9_76+f2f8_38+f3f7_76+f4f6_38+f5f5_38; - int64_t h1 = f0f1_2+f2f9_38+f3f8_38+f4f7_38+f5f6_38; - int64_t h2 = f0f2_2+f1f1_2 +f3f9_76+f4f8_38+f5f7_76+f6f6_19; - int64_t h3 = f0f3_2+f1f2_2 +f4f9_38+f5f8_38+f6f7_38; - int64_t h4 = f0f4_2+f1f3_4 +f2f2 +f5f9_76+f6f8_38+f7f7_38; - int64_t h5 = f0f5_2+f1f4_2 +f2f3_2 +f6f9_38+f7f8_38; - int64_t h6 = f0f6_2+f1f5_4 +f2f4_2 +f3f3_2 +f7f9_76+f8f8_19; - int64_t h7 = f0f7_2+f1f6_2 +f2f5_2 +f3f4_2 +f8f9_38; - int64_t h8 = f0f8_2+f1f7_4 +f2f6_2 +f3f5_4 +f4f4 +f9f9_38; - int64_t h9 = f0f9_2+f1f8_2 +f2f7_2 +f3f6_2 +f4f5_2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - h0 += h0; - h1 += h1; - h2 += h2; - h3 += h3; - h4 += h4; - h5 += h5; - h6 += h6; - h7 += h7; - h8 += h8; - h9 += h9; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - - carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; - carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; - - carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; - carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; - - carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; - carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; - - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; - - carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - - h[0] = (int32_t)h0; - h[1] = (int32_t)h1; - h[2] = (int32_t)h2; - h[3] = (int32_t)h3; - h[4] = (int32_t)h4; - h[5] = (int32_t)h5; - h[6] = (int32_t)h6; - h[7] = (int32_t)h7; - h[8] = (int32_t)h8; - h[9] = (int32_t)h9; + * See fe_mul.c for discussion of implementation strategy. + */ +static void fe_sq2(fe h, const fe f) +{ + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int32_t f0_2 = 2 * f0; + int32_t f1_2 = 2 * f1; + int32_t f2_2 = 2 * f2; + int32_t f3_2 = 2 * f3; + int32_t f4_2 = 2 * f4; + int32_t f5_2 = 2 * f5; + int32_t f6_2 = 2 * f6; + int32_t f7_2 = 2 * f7; + int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ + int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ + int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ + int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ + int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ + int64_t f0f0 = f0 * (int64_t) f0; + int64_t f0f1_2 = f0_2 * (int64_t) f1; + int64_t f0f2_2 = f0_2 * (int64_t) f2; + int64_t f0f3_2 = f0_2 * (int64_t) f3; + int64_t f0f4_2 = f0_2 * (int64_t) f4; + int64_t f0f5_2 = f0_2 * (int64_t) f5; + int64_t f0f6_2 = f0_2 * (int64_t) f6; + int64_t f0f7_2 = f0_2 * (int64_t) f7; + int64_t f0f8_2 = f0_2 * (int64_t) f8; + int64_t f0f9_2 = f0_2 * (int64_t) f9; + int64_t f1f1_2 = f1_2 * (int64_t) f1; + int64_t f1f2_2 = f1_2 * (int64_t) f2; + int64_t f1f3_4 = f1_2 * (int64_t) f3_2; + int64_t f1f4_2 = f1_2 * (int64_t) f4; + int64_t f1f5_4 = f1_2 * (int64_t) f5_2; + int64_t f1f6_2 = f1_2 * (int64_t) f6; + int64_t f1f7_4 = f1_2 * (int64_t) f7_2; + int64_t f1f8_2 = f1_2 * (int64_t) f8; + int64_t f1f9_76 = f1_2 * (int64_t) f9_38; + int64_t f2f2 = f2 * (int64_t) f2; + int64_t f2f3_2 = f2_2 * (int64_t) f3; + int64_t f2f4_2 = f2_2 * (int64_t) f4; + int64_t f2f5_2 = f2_2 * (int64_t) f5; + int64_t f2f6_2 = f2_2 * (int64_t) f6; + int64_t f2f7_2 = f2_2 * (int64_t) f7; + int64_t f2f8_38 = f2_2 * (int64_t) f8_19; + int64_t f2f9_38 = f2 * (int64_t) f9_38; + int64_t f3f3_2 = f3_2 * (int64_t) f3; + int64_t f3f4_2 = f3_2 * (int64_t) f4; + int64_t f3f5_4 = f3_2 * (int64_t) f5_2; + int64_t f3f6_2 = f3_2 * (int64_t) f6; + int64_t f3f7_76 = f3_2 * (int64_t) f7_38; + int64_t f3f8_38 = f3_2 * (int64_t) f8_19; + int64_t f3f9_76 = f3_2 * (int64_t) f9_38; + int64_t f4f4 = f4 * (int64_t) f4; + int64_t f4f5_2 = f4_2 * (int64_t) f5; + int64_t f4f6_38 = f4_2 * (int64_t) f6_19; + int64_t f4f7_38 = f4 * (int64_t) f7_38; + int64_t f4f8_38 = f4_2 * (int64_t) f8_19; + int64_t f4f9_38 = f4 * (int64_t) f9_38; + int64_t f5f5_38 = f5 * (int64_t) f5_38; + int64_t f5f6_38 = f5_2 * (int64_t) f6_19; + int64_t f5f7_76 = f5_2 * (int64_t) f7_38; + int64_t f5f8_38 = f5_2 * (int64_t) f8_19; + int64_t f5f9_76 = f5_2 * (int64_t) f9_38; + int64_t f6f6_19 = f6 * (int64_t) f6_19; + int64_t f6f7_38 = f6 * (int64_t) f7_38; + int64_t f6f8_38 = f6_2 * (int64_t) f8_19; + int64_t f6f9_38 = f6 * (int64_t) f9_38; + int64_t f7f7_38 = f7 * (int64_t) f7_38; + int64_t f7f8_38 = f7_2 * (int64_t) f8_19; + int64_t f7f9_76 = f7_2 * (int64_t) f9_38; + int64_t f8f8_19 = f8 * (int64_t) f8_19; + int64_t f8f9_38 = f8 * (int64_t) f9_38; + int64_t f9f9_38 = f9 * (int64_t) f9_38; + int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; + int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; + int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; + int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; + int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; + int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; + int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; + int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; + int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; + int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + h0 += h0; + h1 += h1; + h2 += h2; + h3 += h3; + h4 += h4; + h5 += h5; + h6 += h6; + h7 += h7; + h8 += h8; + h9 += h9; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + + carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; + carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; + + carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; + carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; + + carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; + carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; + + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; + + carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + + h[0] = (int32_t)h0; + h[1] = (int32_t)h1; + h[2] = (int32_t)h2; + h[3] = (int32_t)h3; + h[4] = (int32_t)h4; + h[5] = (int32_t)h5; + h[6] = (int32_t)h6; + h[7] = (int32_t)h7; + h[8] = (int32_t)h8; + h[9] = (int32_t)h9; } -static void fe_pow22523(fe out, const fe z) { - fe t0; - fe t1; - fe t2; - int i; +static void fe_pow22523(fe out, const fe z) +{ + fe t0; + fe t1; + fe t2; + int i; - fe_sq(t0, z); - fe_sq(t1, t0); - for (i = 1; i < 2; ++i) { - fe_sq(t1, t1); - } - fe_mul(t1, z, t1); - fe_mul(t0, t0, t1); - fe_sq(t0, t0); - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - for (i = 1; i < 5; ++i) { - fe_sq(t1, t1); - } - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - for (i = 1; i < 10; ++i) { - fe_sq(t1, t1); - } - fe_mul(t1, t1, t0); - fe_sq(t2, t1); - for (i = 1; i < 20; ++i) { - fe_sq(t2, t2); - } - fe_mul(t1, t2, t1); - fe_sq(t1, t1); - for (i = 1; i < 10; ++i) { - fe_sq(t1, t1); - } - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - for (i = 1; i < 50; ++i) { + fe_sq(t0, z); + fe_sq(t1, t0); + for (i = 1; i < 2; ++i) { + fe_sq(t1, t1); + } + fe_mul(t1, z, t1); + fe_mul(t0, t0, t1); + fe_sq(t0, t0); + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + for (i = 1; i < 5; ++i) { + fe_sq(t1, t1); + } + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + for (i = 1; i < 10; ++i) { + fe_sq(t1, t1); + } + fe_mul(t1, t1, t0); + fe_sq(t2, t1); + for (i = 1; i < 20; ++i) { + fe_sq(t2, t2); + } + fe_mul(t1, t2, t1); fe_sq(t1, t1); - } - fe_mul(t1, t1, t0); - fe_sq(t2, t1); - for (i = 1; i < 100; ++i) { - fe_sq(t2, t2); - } - fe_mul(t1, t2, t1); - fe_sq(t1, t1); - for (i = 1; i < 50; ++i) { + for (i = 1; i < 10; ++i) { + fe_sq(t1, t1); + } + fe_mul(t0, t1, t0); + fe_sq(t1, t0); + for (i = 1; i < 50; ++i) { + fe_sq(t1, t1); + } + fe_mul(t1, t1, t0); + fe_sq(t2, t1); + for (i = 1; i < 100; ++i) { + fe_sq(t2, t2); + } + fe_mul(t1, t2, t1); fe_sq(t1, t1); - } - fe_mul(t0, t1, t0); - fe_sq(t0, t0); - for (i = 1; i < 2; ++i) { + for (i = 1; i < 50; ++i) { + fe_sq(t1, t1); + } + fe_mul(t0, t1, t0); fe_sq(t0, t0); - } - fe_mul(out, t0, z); + for (i = 1; i < 2; ++i) { + fe_sq(t0, t0); + } + fe_mul(out, t0, z); } -/* ge means group element. - +/* + * ge means group element. + * * Here the group is the set of pairs (x,y) of field elements (see fe.h) * satisfying -x^2 + y^2 = 1 + d x^2y^2 * where d = -121665/121666. @@ -1725,268 +1783,292 @@ static void fe_pow22523(fe out, const fe z) { * ge_p2 (projective): (X:Y:Z) satisfying x=X/Z, y=Y/Z * ge_p3 (extended): (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT * ge_p1p1 (completed): ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T - * ge_precomp (Duif): (y+x,y-x,2dxy) */ - + * ge_precomp (Duif): (y+x,y-x,2dxy) + */ typedef struct { - fe X; - fe Y; - fe Z; + fe X; + fe Y; + fe Z; } ge_p2; typedef struct { - fe X; - fe Y; - fe Z; - fe T; + fe X; + fe Y; + fe Z; + fe T; } ge_p3; typedef struct { - fe X; - fe Y; - fe Z; - fe T; + fe X; + fe Y; + fe Z; + fe T; } ge_p1p1; typedef struct { - fe yplusx; - fe yminusx; - fe xy2d; + fe yplusx; + fe yminusx; + fe xy2d; } ge_precomp; typedef struct { - fe YplusX; - fe YminusX; - fe Z; - fe T2d; + fe YplusX; + fe YminusX; + fe Z; + fe T2d; } ge_cached; -static void ge_tobytes(uint8_t *s, const ge_p2 *h) { - fe recip; - fe x; - fe y; +static void ge_tobytes(uint8_t *s, const ge_p2 *h) +{ + fe recip; + fe x; + fe y; + + fe_invert(recip, h->Z); + fe_mul(x, h->X, recip); + fe_mul(y, h->Y, recip); + fe_tobytes(s, y); + s[31] ^= fe_isnegative(x) << 7; +} - fe_invert(recip, h->Z); - fe_mul(x, h->X, recip); - fe_mul(y, h->Y, recip); - fe_tobytes(s, y); - s[31] ^= fe_isnegative(x) << 7; +static void ge_p3_tobytes(uint8_t *s, const ge_p3 *h) +{ + fe recip; + fe x; + fe y; + + fe_invert(recip, h->Z); + fe_mul(x, h->X, recip); + fe_mul(y, h->Y, recip); + fe_tobytes(s, y); + s[31] ^= fe_isnegative(x) << 7; } -static void ge_p3_tobytes(uint8_t *s, const ge_p3 *h) { - fe recip; - fe x; - fe y; +static const fe d = { + -10913610, 13857413, -15372611, 6949391, 114729, + -8787816, -6275908, -3247719, -18696448, -12055116 +}; - fe_invert(recip, h->Z); - fe_mul(x, h->X, recip); - fe_mul(y, h->Y, recip); - fe_tobytes(s, y); - s[31] ^= fe_isnegative(x) << 7; -} +static const fe sqrtm1 = { + -32595792, -7943725, 9377950, 3500415, 12389472, + -272473, -25146209, -2005654, 326686, 11406482 +}; -static const fe d = {-10913610, 13857413, -15372611, 6949391, 114729, - -8787816, -6275908, -3247719, -18696448, -12055116}; - -static const fe sqrtm1 = {-32595792, -7943725, 9377950, 3500415, 12389472, - -272473, -25146209, -2005654, 326686, 11406482}; - -static int ge_frombytes_vartime(ge_p3 *h, const uint8_t *s) { - fe u; - fe v; - fe v3; - fe vxx; - fe check; - - fe_frombytes(h->Y, s); - fe_1(h->Z); - fe_sq(u, h->Y); - fe_mul(v, u, d); - fe_sub(u, u, h->Z); /* u = y^2-1 */ - fe_add(v, v, h->Z); /* v = dy^2+1 */ - - fe_sq(v3, v); - fe_mul(v3, v3, v); /* v3 = v^3 */ - fe_sq(h->X, v3); - fe_mul(h->X, h->X, v); - fe_mul(h->X, h->X, u); /* x = uv^7 */ - - fe_pow22523(h->X, h->X); /* x = (uv^7)^((q-5)/8) */ - fe_mul(h->X, h->X, v3); - fe_mul(h->X, h->X, u); /* x = uv^3(uv^7)^((q-5)/8) */ - - fe_sq(vxx, h->X); - fe_mul(vxx, vxx, v); - fe_sub(check, vxx, u); /* vx^2-u */ - if (fe_isnonzero(check)) { - fe_add(check, vxx, u); /* vx^2+u */ +static int ge_frombytes_vartime(ge_p3 *h, const uint8_t *s) +{ + fe u; + fe v; + fe v3; + fe vxx; + fe check; + + fe_frombytes(h->Y, s); + fe_1(h->Z); + fe_sq(u, h->Y); + fe_mul(v, u, d); + fe_sub(u, u, h->Z); /* u = y^2-1 */ + fe_add(v, v, h->Z); /* v = dy^2+1 */ + + fe_sq(v3, v); + fe_mul(v3, v3, v); /* v3 = v^3 */ + fe_sq(h->X, v3); + fe_mul(h->X, h->X, v); + fe_mul(h->X, h->X, u); /* x = uv^7 */ + + fe_pow22523(h->X, h->X); /* x = (uv^7)^((q-5)/8) */ + fe_mul(h->X, h->X, v3); + fe_mul(h->X, h->X, u); /* x = uv^3(uv^7)^((q-5)/8) */ + + fe_sq(vxx, h->X); + fe_mul(vxx, vxx, v); + fe_sub(check, vxx, u); /* vx^2-u */ if (fe_isnonzero(check)) { - return -1; + fe_add(check, vxx, u); /* vx^2+u */ + if (fe_isnonzero(check)) { + return -1; + } + fe_mul(h->X, h->X, sqrtm1); } - fe_mul(h->X, h->X, sqrtm1); - } - if (fe_isnegative(h->X) != (s[31] >> 7)) { - fe_neg(h->X, h->X); - } + if (fe_isnegative(h->X) != (s[31] >> 7)) { + fe_neg(h->X, h->X); + } - fe_mul(h->T, h->X, h->Y); - return 0; + fe_mul(h->T, h->X, h->Y); + return 0; } -static void ge_p2_0(ge_p2 *h) { - fe_0(h->X); - fe_1(h->Y); - fe_1(h->Z); +static void ge_p2_0(ge_p2 *h) +{ + fe_0(h->X); + fe_1(h->Y); + fe_1(h->Z); } -static void ge_p3_0(ge_p3 *h) { - fe_0(h->X); - fe_1(h->Y); - fe_1(h->Z); - fe_0(h->T); +static void ge_p3_0(ge_p3 *h) +{ + fe_0(h->X); + fe_1(h->Y); + fe_1(h->Z); + fe_0(h->T); } -static void ge_precomp_0(ge_precomp *h) { - fe_1(h->yplusx); - fe_1(h->yminusx); - fe_0(h->xy2d); +static void ge_precomp_0(ge_precomp *h) +{ + fe_1(h->yplusx); + fe_1(h->yminusx); + fe_0(h->xy2d); } /* r = p */ -static void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p) { - fe_copy(r->X, p->X); - fe_copy(r->Y, p->Y); - fe_copy(r->Z, p->Z); +static void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p) +{ + fe_copy(r->X, p->X); + fe_copy(r->Y, p->Y); + fe_copy(r->Z, p->Z); } -static const fe d2 = {-21827239, -5839606, -30745221, 13898782, 229458, - 15978800, -12551817, -6495438, 29715968, 9444199}; +static const fe d2 = { + -21827239, -5839606, -30745221, 13898782, 229458, + 15978800, -12551817, -6495438, 29715968, 9444199 +}; /* r = p */ -static void ge_p3_to_cached(ge_cached *r, const ge_p3 *p) { - fe_add(r->YplusX, p->Y, p->X); - fe_sub(r->YminusX, p->Y, p->X); - fe_copy(r->Z, p->Z); - fe_mul(r->T2d, p->T, d2); +static void ge_p3_to_cached(ge_cached *r, const ge_p3 *p) +{ + fe_add(r->YplusX, p->Y, p->X); + fe_sub(r->YminusX, p->Y, p->X); + fe_copy(r->Z, p->Z); + fe_mul(r->T2d, p->T, d2); } /* r = p */ -static void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p) { - fe_mul(r->X, p->X, p->T); - fe_mul(r->Y, p->Y, p->Z); - fe_mul(r->Z, p->Z, p->T); +static void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p) +{ + fe_mul(r->X, p->X, p->T); + fe_mul(r->Y, p->Y, p->Z); + fe_mul(r->Z, p->Z, p->T); } /* r = p */ -static void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p) { - fe_mul(r->X, p->X, p->T); - fe_mul(r->Y, p->Y, p->Z); - fe_mul(r->Z, p->Z, p->T); - fe_mul(r->T, p->X, p->Y); +static void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p) +{ + fe_mul(r->X, p->X, p->T); + fe_mul(r->Y, p->Y, p->Z); + fe_mul(r->Z, p->Z, p->T); + fe_mul(r->T, p->X, p->Y); } /* r = 2 * p */ -static void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p) { - fe t0; - - fe_sq(r->X, p->X); - fe_sq(r->Z, p->Y); - fe_sq2(r->T, p->Z); - fe_add(r->Y, p->X, p->Y); - fe_sq(t0, r->Y); - fe_add(r->Y, r->Z, r->X); - fe_sub(r->Z, r->Z, r->X); - fe_sub(r->X, t0, r->Y); - fe_sub(r->T, r->T, r->Z); +static void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p) +{ + fe t0; + + fe_sq(r->X, p->X); + fe_sq(r->Z, p->Y); + fe_sq2(r->T, p->Z); + fe_add(r->Y, p->X, p->Y); + fe_sq(t0, r->Y); + fe_add(r->Y, r->Z, r->X); + fe_sub(r->Z, r->Z, r->X); + fe_sub(r->X, t0, r->Y); + fe_sub(r->T, r->T, r->Z); } /* r = 2 * p */ -static void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p) { - ge_p2 q; - ge_p3_to_p2(&q, p); - ge_p2_dbl(r, &q); +static void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p) +{ + ge_p2 q; + ge_p3_to_p2(&q, p); + ge_p2_dbl(r, &q); } /* r = p + q */ -static void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->yplusx); - fe_mul(r->Y, r->Y, q->yminusx); - fe_mul(r->T, q->xy2d, p->T); - fe_add(t0, p->Z, p->Z); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_add(r->Z, t0, r->T); - fe_sub(r->T, t0, r->T); +static void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) +{ + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->yplusx); + fe_mul(r->Y, r->Y, q->yminusx); + fe_mul(r->T, q->xy2d, p->T); + fe_add(t0, p->Z, p->Z); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_add(r->Z, t0, r->T); + fe_sub(r->T, t0, r->T); } /* r = p - q */ -static void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->yminusx); - fe_mul(r->Y, r->Y, q->yplusx); - fe_mul(r->T, q->xy2d, p->T); - fe_add(t0, p->Z, p->Z); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_sub(r->Z, t0, r->T); - fe_add(r->T, t0, r->T); +static void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) +{ + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->yminusx); + fe_mul(r->Y, r->Y, q->yplusx); + fe_mul(r->T, q->xy2d, p->T); + fe_add(t0, p->Z, p->Z); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_sub(r->Z, t0, r->T); + fe_add(r->T, t0, r->T); } /* r = p + q */ -static void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->YplusX); - fe_mul(r->Y, r->Y, q->YminusX); - fe_mul(r->T, q->T2d, p->T); - fe_mul(r->X, p->Z, q->Z); - fe_add(t0, r->X, r->X); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_add(r->Z, t0, r->T); - fe_sub(r->T, t0, r->T); +static void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) +{ + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->YplusX); + fe_mul(r->Y, r->Y, q->YminusX); + fe_mul(r->T, q->T2d, p->T); + fe_mul(r->X, p->Z, q->Z); + fe_add(t0, r->X, r->X); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_add(r->Z, t0, r->T); + fe_sub(r->T, t0, r->T); } /* r = p - q */ -static void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->YminusX); - fe_mul(r->Y, r->Y, q->YplusX); - fe_mul(r->T, q->T2d, p->T); - fe_mul(r->X, p->Z, q->Z); - fe_add(t0, r->X, r->X); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_sub(r->Z, t0, r->T); - fe_add(r->T, t0, r->T); +static void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) +{ + fe t0; + + fe_add(r->X, p->Y, p->X); + fe_sub(r->Y, p->Y, p->X); + fe_mul(r->Z, r->X, q->YminusX); + fe_mul(r->Y, r->Y, q->YplusX); + fe_mul(r->T, q->T2d, p->T); + fe_mul(r->X, p->Z, q->Z); + fe_add(t0, r->X, r->X); + fe_sub(r->X, r->Z, r->Y); + fe_add(r->Y, r->Z, r->Y); + fe_sub(r->Z, t0, r->T); + fe_add(r->T, t0, r->T); } -static uint8_t equal(signed char b, signed char c) { - uint8_t ub = b; - uint8_t uc = c; - uint8_t x = ub ^ uc; /* 0: yes; 1..255: no */ - uint32_t y = x; /* 0: yes; 1..255: no */ - y -= 1; /* 4294967295: yes; 0..254: no */ - y >>= 31; /* 1: yes; 0: no */ - return y; +static uint8_t equal(signed char b, signed char c) +{ + uint8_t ub = b; + uint8_t uc = c; + uint8_t x = ub ^ uc; /* 0: yes; 1..255: no */ + uint32_t y = x; /* 0: yes; 1..255: no */ + y -= 1; /* 4294967295: yes; 0..254: no */ + y >>= 31; /* 1: yes; 0: no */ + return y; } -static void cmov(ge_precomp *t, const ge_precomp *u, uint8_t b) { - fe_cmov(t->yplusx, u->yplusx, b); - fe_cmov(t->yminusx, u->yminusx, b); - fe_cmov(t->xy2d, u->xy2d, b); +static void cmov(ge_precomp *t, const ge_precomp *u, uint8_t b) +{ + fe_cmov(t->yplusx, u->yplusx, b); + fe_cmov(t->yminusx, u->yminusx, b); + fe_cmov(t->xy2d, u->xy2d, b); } /* k25519Precomp[i][j] = (j+1)*256^i*B */ @@ -4105,257 +4187,273 @@ static const ge_precomp k25519Precomp[32][8] = { }, }; -static uint8_t negative(signed char b) { - uint32_t x = b; - x >>= 31; /* 1: yes; 0: no */ - return x; +static uint8_t negative(signed char b) +{ + uint32_t x = b; + + x >>= 31; /* 1: yes; 0: no */ + return x; } -static void table_select(ge_precomp *t, int pos, signed char b) { - ge_precomp minust; - uint8_t bnegative = negative(b); - uint8_t babs = b - ((uint8_t)((-bnegative) & b) << 1); - - ge_precomp_0(t); - cmov(t, &k25519Precomp[pos][0], equal(babs, 1)); - cmov(t, &k25519Precomp[pos][1], equal(babs, 2)); - cmov(t, &k25519Precomp[pos][2], equal(babs, 3)); - cmov(t, &k25519Precomp[pos][3], equal(babs, 4)); - cmov(t, &k25519Precomp[pos][4], equal(babs, 5)); - cmov(t, &k25519Precomp[pos][5], equal(babs, 6)); - cmov(t, &k25519Precomp[pos][6], equal(babs, 7)); - cmov(t, &k25519Precomp[pos][7], equal(babs, 8)); - fe_copy(minust.yplusx, t->yminusx); - fe_copy(minust.yminusx, t->yplusx); - fe_neg(minust.xy2d, t->xy2d); - cmov(t, &minust, bnegative); +static void table_select(ge_precomp *t, int pos, signed char b) +{ + ge_precomp minust; + uint8_t bnegative = negative(b); + uint8_t babs = b - ((uint8_t)((-bnegative) & b) << 1); + + ge_precomp_0(t); + cmov(t, &k25519Precomp[pos][0], equal(babs, 1)); + cmov(t, &k25519Precomp[pos][1], equal(babs, 2)); + cmov(t, &k25519Precomp[pos][2], equal(babs, 3)); + cmov(t, &k25519Precomp[pos][3], equal(babs, 4)); + cmov(t, &k25519Precomp[pos][4], equal(babs, 5)); + cmov(t, &k25519Precomp[pos][5], equal(babs, 6)); + cmov(t, &k25519Precomp[pos][6], equal(babs, 7)); + cmov(t, &k25519Precomp[pos][7], equal(babs, 8)); + fe_copy(minust.yplusx, t->yminusx); + fe_copy(minust.yminusx, t->yplusx); + fe_neg(minust.xy2d, t->xy2d); + cmov(t, &minust, bnegative); } -/* h = a * B +/* + * h = a * B + * * where a = a[0]+256*a[1]+...+256^31 a[31] * B is the Ed25519 base point (x,4/5) with x positive. * * Preconditions: - * a[31] <= 127 */ -static void ge_scalarmult_base(ge_p3 *h, const uint8_t *a) { - signed char e[64]; - signed char carry; - ge_p1p1 r; - ge_p2 s; - ge_precomp t; - int i; - - for (i = 0; i < 32; ++i) { - e[2 * i + 0] = (a[i] >> 0) & 15; - e[2 * i + 1] = (a[i] >> 4) & 15; - } - /* each e[i] is between 0 and 15 */ - /* e[63] is between 0 and 7 */ - - carry = 0; - for (i = 0; i < 63; ++i) { - e[i] += carry; - carry = e[i] + 8; - carry >>= 4; - e[i] -= carry << 4; - } - e[63] += carry; - /* each e[i] is between -8 and 8 */ - - ge_p3_0(h); - for (i = 1; i < 64; i += 2) { - table_select(&t, i / 2, e[i]); - ge_madd(&r, h, &t); - ge_p1p1_to_p3(h, &r); - } - - ge_p3_dbl(&r, h); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p3(h, &r); - - for (i = 0; i < 64; i += 2) { - table_select(&t, i / 2, e[i]); - ge_madd(&r, h, &t); + * a[31] <= 127 + */ +static void ge_scalarmult_base(ge_p3 *h, const uint8_t *a) +{ + signed char e[64]; + signed char carry; + ge_p1p1 r; + ge_p2 s; + ge_precomp t; + int i; + + for (i = 0; i < 32; ++i) { + e[2 * i + 0] = (a[i] >> 0) & 15; + e[2 * i + 1] = (a[i] >> 4) & 15; + } + /* each e[i] is between 0 and 15 */ + /* e[63] is between 0 and 7 */ + + carry = 0; + for (i = 0; i < 63; ++i) { + e[i] += carry; + carry = e[i] + 8; + carry >>= 4; + e[i] -= carry << 4; + } + e[63] += carry; + /* each e[i] is between -8 and 8 */ + + ge_p3_0(h); + for (i = 1; i < 64; i += 2) { + table_select(&t, i / 2, e[i]); + ge_madd(&r, h, &t); + ge_p1p1_to_p3(h, &r); + } + + ge_p3_dbl(&r, h); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); + ge_p1p1_to_p2(&s, &r); + ge_p2_dbl(&r, &s); ge_p1p1_to_p3(h, &r); - } - OPENSSL_cleanse(e, sizeof(e)); + for (i = 0; i < 64; i += 2) { + table_select(&t, i / 2, e[i]); + ge_madd(&r, h, &t); + ge_p1p1_to_p3(h, &r); + } + + OPENSSL_cleanse(e, sizeof(e)); } #if !defined(BASE_2_51_IMPLEMENTED) -/* Replace (f,g) with (g,f) if b == 1; +/* + * Replace (f,g) with (g,f) if b == 1; * replace (f,g) with (f,g) if b == 0. * - * Preconditions: b in {0,1}. */ -static void fe_cswap(fe f, fe g, unsigned int b) { - size_t i; - b = 0-b; - for (i = 0; i < 10; i++) { - int32_t x = f[i] ^ g[i]; - x &= b; - f[i] ^= x; - g[i] ^= x; - } + * Preconditions: b in {0,1}. + */ +static void fe_cswap(fe f, fe g, unsigned int b) +{ + size_t i; + + b = 0-b; + for (i = 0; i < 10; i++) { + int32_t x = f[i] ^ g[i]; + x &= b; + f[i] ^= x; + g[i] ^= x; + } } -/* h = f * 121666 +/* + * h = f * 121666 + * * Can overlap h with f. * * Preconditions: * |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. * * Postconditions: - * |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. */ -static void fe_mul121666(fe h, fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int64_t h0 = f0 * (int64_t) 121666; - int64_t h1 = f1 * (int64_t) 121666; - int64_t h2 = f2 * (int64_t) 121666; - int64_t h3 = f3 * (int64_t) 121666; - int64_t h4 = f4 * (int64_t) 121666; - int64_t h5 = f5 * (int64_t) 121666; - int64_t h6 = f6 * (int64_t) 121666; - int64_t h7 = f7 * (int64_t) 121666; - int64_t h8 = f8 * (int64_t) 121666; - int64_t h9 = f9 * (int64_t) 121666; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; - carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; - carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; - carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; - carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; - - carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; - carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; - carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; - carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; - carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; - - h[0] = (int32_t)h0; - h[1] = (int32_t)h1; - h[2] = (int32_t)h2; - h[3] = (int32_t)h3; - h[4] = (int32_t)h4; - h[5] = (int32_t)h5; - h[6] = (int32_t)h6; - h[7] = (int32_t)h7; - h[8] = (int32_t)h8; - h[9] = (int32_t)h9; + * |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. + */ +static void fe_mul121666(fe h, fe f) +{ + int32_t f0 = f[0]; + int32_t f1 = f[1]; + int32_t f2 = f[2]; + int32_t f3 = f[3]; + int32_t f4 = f[4]; + int32_t f5 = f[5]; + int32_t f6 = f[6]; + int32_t f7 = f[7]; + int32_t f8 = f[8]; + int32_t f9 = f[9]; + int64_t h0 = f0 * (int64_t) 121666; + int64_t h1 = f1 * (int64_t) 121666; + int64_t h2 = f2 * (int64_t) 121666; + int64_t h3 = f3 * (int64_t) 121666; + int64_t h4 = f4 * (int64_t) 121666; + int64_t h5 = f5 * (int64_t) 121666; + int64_t h6 = f6 * (int64_t) 121666; + int64_t h7 = f7 * (int64_t) 121666; + int64_t h8 = f8 * (int64_t) 121666; + int64_t h9 = f9 * (int64_t) 121666; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + + carry9 = h9 + (1 << 24); h0 += (carry9 >> 25) * 19; h9 -= carry9 & kTop39Bits; + carry1 = h1 + (1 << 24); h2 += carry1 >> 25; h1 -= carry1 & kTop39Bits; + carry3 = h3 + (1 << 24); h4 += carry3 >> 25; h3 -= carry3 & kTop39Bits; + carry5 = h5 + (1 << 24); h6 += carry5 >> 25; h5 -= carry5 & kTop39Bits; + carry7 = h7 + (1 << 24); h8 += carry7 >> 25; h7 -= carry7 & kTop39Bits; + + carry0 = h0 + (1 << 25); h1 += carry0 >> 26; h0 -= carry0 & kTop38Bits; + carry2 = h2 + (1 << 25); h3 += carry2 >> 26; h2 -= carry2 & kTop38Bits; + carry4 = h4 + (1 << 25); h5 += carry4 >> 26; h4 -= carry4 & kTop38Bits; + carry6 = h6 + (1 << 25); h7 += carry6 >> 26; h6 -= carry6 & kTop38Bits; + carry8 = h8 + (1 << 25); h9 += carry8 >> 26; h8 -= carry8 & kTop38Bits; + + h[0] = (int32_t)h0; + h[1] = (int32_t)h1; + h[2] = (int32_t)h2; + h[3] = (int32_t)h3; + h[4] = (int32_t)h4; + h[5] = (int32_t)h5; + h[6] = (int32_t)h6; + h[7] = (int32_t)h7; + h[8] = (int32_t)h8; + h[9] = (int32_t)h9; } static void x25519_scalar_mult_generic(uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32]) { - fe x1, x2, z2, x3, z3, tmp0, tmp1; - uint8_t e[32]; - unsigned swap = 0; - int pos; - - memcpy(e, scalar, 32); - e[0] &= 248; - e[31] &= 127; - e[31] |= 64; - fe_frombytes(x1, point); - fe_1(x2); - fe_0(z2); - fe_copy(x3, x1); - fe_1(z3); - - for (pos = 254; pos >= 0; --pos) { - unsigned b = 1 & (e[pos / 8] >> (pos & 7)); - swap ^= b; - fe_cswap(x2, x3, swap); - fe_cswap(z2, z3, swap); - swap = b; - fe_sub(tmp0, x3, z3); - fe_sub(tmp1, x2, z2); - fe_add(x2, x2, z2); - fe_add(z2, x3, z3); - fe_mul(z3, tmp0, x2); - fe_mul(z2, z2, tmp1); - fe_sq(tmp0, tmp1); - fe_sq(tmp1, x2); - fe_add(x3, z3, z2); - fe_sub(z2, z3, z2); - fe_mul(x2, tmp1, tmp0); - fe_sub(tmp1, tmp1, tmp0); - fe_sq(z2, z2); - fe_mul121666(z3, tmp1); - fe_sq(x3, x3); - fe_add(tmp0, tmp0, z3); - fe_mul(z3, x1, z2); - fe_mul(z2, tmp1, tmp0); - } - - fe_invert(z2, z2); - fe_mul(x2, x2, z2); - fe_tobytes(out, x2); - - OPENSSL_cleanse(e, sizeof(e)); + fe x1, x2, z2, x3, z3, tmp0, tmp1; + uint8_t e[32]; + unsigned swap = 0; + int pos; + + memcpy(e, scalar, 32); + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + fe_frombytes(x1, point); + fe_1(x2); + fe_0(z2); + fe_copy(x3, x1); + fe_1(z3); + + for (pos = 254; pos >= 0; --pos) { + unsigned b = 1 & (e[pos / 8] >> (pos & 7)); + swap ^= b; + fe_cswap(x2, x3, swap); + fe_cswap(z2, z3, swap); + swap = b; + fe_sub(tmp0, x3, z3); + fe_sub(tmp1, x2, z2); + fe_add(x2, x2, z2); + fe_add(z2, x3, z3); + fe_mul(z3, tmp0, x2); + fe_mul(z2, z2, tmp1); + fe_sq(tmp0, tmp1); + fe_sq(tmp1, x2); + fe_add(x3, z3, z2); + fe_sub(z2, z3, z2); + fe_mul(x2, tmp1, tmp0); + fe_sub(tmp1, tmp1, tmp0); + fe_sq(z2, z2); + fe_mul121666(z3, tmp1); + fe_sq(x3, x3); + fe_add(tmp0, tmp0, z3); + fe_mul(z3, x1, z2); + fe_mul(z2, tmp1, tmp0); + } + + fe_invert(z2, z2); + fe_mul(x2, x2, z2); + fe_tobytes(out, x2); + + OPENSSL_cleanse(e, sizeof(e)); } static void x25519_scalar_mult(uint8_t out[32], const uint8_t scalar[32], const uint8_t point[32]) { - x25519_scalar_mult_generic(out, scalar, point); + x25519_scalar_mult_generic(out, scalar, point); } #endif -static void slide(signed char *r, const uint8_t *a) { - int i; - int b; - int k; - - for (i = 0; i < 256; ++i) { - r[i] = 1 & (a[i >> 3] >> (i & 7)); - } - - for (i = 0; i < 256; ++i) { - if (r[i]) { - for (b = 1; b <= 6 && i + b < 256; ++b) { - if (r[i + b]) { - if (r[i] + (r[i + b] << b) <= 15) { - r[i] += r[i + b] << b; - r[i + b] = 0; - } else if (r[i] - (r[i + b] << b) >= -15) { - r[i] -= r[i + b] << b; - for (k = i + b; k < 256; ++k) { - if (!r[k]) { - r[k] = 1; - break; - } - r[k] = 0; +static void slide(signed char *r, const uint8_t *a) +{ + int i; + int b; + int k; + + for (i = 0; i < 256; ++i) { + r[i] = 1 & (a[i >> 3] >> (i & 7)); + } + + for (i = 0; i < 256; ++i) { + if (r[i]) { + for (b = 1; b <= 6 && i + b < 256; ++b) { + if (r[i + b]) { + if (r[i] + (r[i + b] << b) <= 15) { + r[i] += r[i + b] << b; + r[i + b] = 0; + } else if (r[i] - (r[i + b] << b) >= -15) { + r[i] -= r[i + b] << b; + for (k = i + b; k < 256; ++k) { + if (!r[k]) { + r[k] = 1; + break; + } + r[k] = 0; + } + } else { + break; + } + } } - } else { - break; - } } - } } - } } static const ge_precomp Bi[8] = { @@ -4425,1033 +4523,1075 @@ static const ge_precomp Bi[8] = { }, }; -/* r = a * A + b * B +/* + * r = a * A + b * B + * * where a = a[0]+256*a[1]+...+256^31 a[31]. * and b = b[0]+256*b[1]+...+256^31 b[31]. - * B is the Ed25519 base point (x,4/5) with x positive. */ + * B is the Ed25519 base point (x,4/5) with x positive. + */ static void ge_double_scalarmult_vartime(ge_p2 *r, const uint8_t *a, - const ge_p3 *A, const uint8_t *b) { - signed char aslide[256]; - signed char bslide[256]; - ge_cached Ai[8]; /* A,3A,5A,7A,9A,11A,13A,15A */ - ge_p1p1 t; - ge_p3 u; - ge_p3 A2; - int i; - - slide(aslide, a); - slide(bslide, b); - - ge_p3_to_cached(&Ai[0], A); - ge_p3_dbl(&t, A); - ge_p1p1_to_p3(&A2, &t); - ge_add(&t, &A2, &Ai[0]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[1], &u); - ge_add(&t, &A2, &Ai[1]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[2], &u); - ge_add(&t, &A2, &Ai[2]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[3], &u); - ge_add(&t, &A2, &Ai[3]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[4], &u); - ge_add(&t, &A2, &Ai[4]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[5], &u); - ge_add(&t, &A2, &Ai[5]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[6], &u); - ge_add(&t, &A2, &Ai[6]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[7], &u); - - ge_p2_0(r); - - for (i = 255; i >= 0; --i) { - if (aslide[i] || bslide[i]) { - break; + const ge_p3 *A, const uint8_t *b) +{ + signed char aslide[256]; + signed char bslide[256]; + ge_cached Ai[8]; /* A,3A,5A,7A,9A,11A,13A,15A */ + ge_p1p1 t; + ge_p3 u; + ge_p3 A2; + int i; + + slide(aslide, a); + slide(bslide, b); + + ge_p3_to_cached(&Ai[0], A); + ge_p3_dbl(&t, A); + ge_p1p1_to_p3(&A2, &t); + ge_add(&t, &A2, &Ai[0]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[1], &u); + ge_add(&t, &A2, &Ai[1]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[2], &u); + ge_add(&t, &A2, &Ai[2]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[3], &u); + ge_add(&t, &A2, &Ai[3]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[4], &u); + ge_add(&t, &A2, &Ai[4]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[5], &u); + ge_add(&t, &A2, &Ai[5]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[6], &u); + ge_add(&t, &A2, &Ai[6]); + ge_p1p1_to_p3(&u, &t); + ge_p3_to_cached(&Ai[7], &u); + + ge_p2_0(r); + + for (i = 255; i >= 0; --i) { + if (aslide[i] || bslide[i]) { + break; + } } - } - for (; i >= 0; --i) { - ge_p2_dbl(&t, r); + for (; i >= 0; --i) { + ge_p2_dbl(&t, r); - if (aslide[i] > 0) { - ge_p1p1_to_p3(&u, &t); - ge_add(&t, &u, &Ai[aslide[i] / 2]); - } else if (aslide[i] < 0) { - ge_p1p1_to_p3(&u, &t); - ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); - } + if (aslide[i] > 0) { + ge_p1p1_to_p3(&u, &t); + ge_add(&t, &u, &Ai[aslide[i] / 2]); + } else if (aslide[i] < 0) { + ge_p1p1_to_p3(&u, &t); + ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); + } - if (bslide[i] > 0) { - ge_p1p1_to_p3(&u, &t); - ge_madd(&t, &u, &Bi[bslide[i] / 2]); - } else if (bslide[i] < 0) { - ge_p1p1_to_p3(&u, &t); - ge_msub(&t, &u, &Bi[(-bslide[i]) / 2]); - } + if (bslide[i] > 0) { + ge_p1p1_to_p3(&u, &t); + ge_madd(&t, &u, &Bi[bslide[i] / 2]); + } else if (bslide[i] < 0) { + ge_p1p1_to_p3(&u, &t); + ge_msub(&t, &u, &Bi[(-bslide[i]) / 2]); + } - ge_p1p1_to_p2(r, &t); - } + ge_p1p1_to_p2(r, &t); + } } -/* The set of scalars is \Z/l - * where l = 2^252 + 27742317777372353535851937790883648493. */ - -/* Input: +/* + * The set of scalars is \Z/l + * where l = 2^252 + 27742317777372353535851937790883648493. + * + * Input: * s[0]+256*s[1]+...+256^63*s[63] = s * * Output: * s[0]+256*s[1]+...+256^31*s[31] = s mod l * where l = 2^252 + 27742317777372353535851937790883648493. - * Overwrites s in place. */ -static void x25519_sc_reduce(uint8_t *s) { - int64_t s0 = 2097151 & load_3(s); - int64_t s1 = 2097151 & (load_4(s + 2) >> 5); - int64_t s2 = 2097151 & (load_3(s + 5) >> 2); - int64_t s3 = 2097151 & (load_4(s + 7) >> 7); - int64_t s4 = 2097151 & (load_4(s + 10) >> 4); - int64_t s5 = 2097151 & (load_3(s + 13) >> 1); - int64_t s6 = 2097151 & (load_4(s + 15) >> 6); - int64_t s7 = 2097151 & (load_3(s + 18) >> 3); - int64_t s8 = 2097151 & load_3(s + 21); - int64_t s9 = 2097151 & (load_4(s + 23) >> 5); - int64_t s10 = 2097151 & (load_3(s + 26) >> 2); - int64_t s11 = 2097151 & (load_4(s + 28) >> 7); - int64_t s12 = 2097151 & (load_4(s + 31) >> 4); - int64_t s13 = 2097151 & (load_3(s + 34) >> 1); - int64_t s14 = 2097151 & (load_4(s + 36) >> 6); - int64_t s15 = 2097151 & (load_3(s + 39) >> 3); - int64_t s16 = 2097151 & load_3(s + 42); - int64_t s17 = 2097151 & (load_4(s + 44) >> 5); - int64_t s18 = 2097151 & (load_3(s + 47) >> 2); - int64_t s19 = 2097151 & (load_4(s + 49) >> 7); - int64_t s20 = 2097151 & (load_4(s + 52) >> 4); - int64_t s21 = 2097151 & (load_3(s + 55) >> 1); - int64_t s22 = 2097151 & (load_4(s + 57) >> 6); - int64_t s23 = (load_4(s + 60) >> 3); - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - int64_t carry10; - int64_t carry11; - int64_t carry12; - int64_t carry13; - int64_t carry14; - int64_t carry15; - int64_t carry16; - - s11 += s23 * 666643; - s12 += s23 * 470296; - s13 += s23 * 654183; - s14 -= s23 * 997805; - s15 += s23 * 136657; - s16 -= s23 * 683901; - s23 = 0; - - s10 += s22 * 666643; - s11 += s22 * 470296; - s12 += s22 * 654183; - s13 -= s22 * 997805; - s14 += s22 * 136657; - s15 -= s22 * 683901; - s22 = 0; - - s9 += s21 * 666643; - s10 += s21 * 470296; - s11 += s21 * 654183; - s12 -= s21 * 997805; - s13 += s21 * 136657; - s14 -= s21 * 683901; - s21 = 0; - - s8 += s20 * 666643; - s9 += s20 * 470296; - s10 += s20 * 654183; - s11 -= s20 * 997805; - s12 += s20 * 136657; - s13 -= s20 * 683901; - s20 = 0; - - s7 += s19 * 666643; - s8 += s19 * 470296; - s9 += s19 * 654183; - s10 -= s19 * 997805; - s11 += s19 * 136657; - s12 -= s19 * 683901; - s19 = 0; - - s6 += s18 * 666643; - s7 += s18 * 470296; - s8 += s18 * 654183; - s9 -= s18 * 997805; - s10 += s18 * 136657; - s11 -= s18 * 683901; - s18 = 0; - - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 * (1 << 21); - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 * (1 << 21); - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 * (1 << 21); - - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 * (1 << 21); - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 * (1 << 21); - - s5 += s17 * 666643; - s6 += s17 * 470296; - s7 += s17 * 654183; - s8 -= s17 * 997805; - s9 += s17 * 136657; - s10 -= s17 * 683901; - s17 = 0; - - s4 += s16 * 666643; - s5 += s16 * 470296; - s6 += s16 * 654183; - s7 -= s16 * 997805; - s8 += s16 * 136657; - s9 -= s16 * 683901; - s16 = 0; - - s3 += s15 * 666643; - s4 += s15 * 470296; - s5 += s15 * 654183; - s6 -= s15 * 997805; - s7 += s15 * 136657; - s8 -= s15 * 683901; - s15 = 0; - - s2 += s14 * 666643; - s3 += s14 * 470296; - s4 += s14 * 654183; - s5 -= s14 * 997805; - s6 += s14 * 136657; - s7 -= s14 * 683901; - s14 = 0; - - s1 += s13 * 666643; - s2 += s13 * 470296; - s3 += s13 * 654183; - s4 -= s13 * 997805; - s5 += s13 * 136657; - s6 -= s13 * 683901; - s13 = 0; - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - carry11 = s11 >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - - s[0] = (uint8_t)(s0 >> 0); - s[1] = (uint8_t)(s0 >> 8); - s[2] = (uint8_t)((s0 >> 16) | (s1 << 5)); - s[3] = (uint8_t)(s1 >> 3); - s[4] = (uint8_t)(s1 >> 11); - s[5] = (uint8_t)((s1 >> 19) | (s2 << 2)); - s[6] = (uint8_t)(s2 >> 6); - s[7] = (uint8_t)((s2 >> 14) | (s3 << 7)); - s[8] = (uint8_t)(s3 >> 1); - s[9] = (uint8_t)(s3 >> 9); - s[10] = (uint8_t)((s3 >> 17) | (s4 << 4)); - s[11] = (uint8_t)(s4 >> 4); - s[12] = (uint8_t)(s4 >> 12); - s[13] = (uint8_t)((s4 >> 20) | (s5 << 1)); - s[14] = (uint8_t)(s5 >> 7); - s[15] = (uint8_t)((s5 >> 15) | (s6 << 6)); - s[16] = (uint8_t)(s6 >> 2); - s[17] = (uint8_t)(s6 >> 10); - s[18] = (uint8_t)((s6 >> 18) | (s7 << 3)); - s[19] = (uint8_t)(s7 >> 5); - s[20] = (uint8_t)(s7 >> 13); - s[21] = (uint8_t)(s8 >> 0); - s[22] = (uint8_t)(s8 >> 8); - s[23] = (uint8_t)((s8 >> 16) | (s9 << 5)); - s[24] = (uint8_t)(s9 >> 3); - s[25] = (uint8_t)(s9 >> 11); - s[26] = (uint8_t)((s9 >> 19) | (s10 << 2)); - s[27] = (uint8_t)(s10 >> 6); - s[28] = (uint8_t)((s10 >> 14) | (s11 << 7)); - s[29] = (uint8_t)(s11 >> 1); - s[30] = (uint8_t)(s11 >> 9); - s[31] = (uint8_t)(s11 >> 17); + * Overwrites s in place. +*/ +static void x25519_sc_reduce(uint8_t *s) +{ + int64_t s0 = kBottom21Bits & load_3(s); + int64_t s1 = kBottom21Bits & (load_4(s + 2) >> 5); + int64_t s2 = kBottom21Bits & (load_3(s + 5) >> 2); + int64_t s3 = kBottom21Bits & (load_4(s + 7) >> 7); + int64_t s4 = kBottom21Bits & (load_4(s + 10) >> 4); + int64_t s5 = kBottom21Bits & (load_3(s + 13) >> 1); + int64_t s6 = kBottom21Bits & (load_4(s + 15) >> 6); + int64_t s7 = kBottom21Bits & (load_3(s + 18) >> 3); + int64_t s8 = kBottom21Bits & load_3(s + 21); + int64_t s9 = kBottom21Bits & (load_4(s + 23) >> 5); + int64_t s10 = kBottom21Bits & (load_3(s + 26) >> 2); + int64_t s11 = kBottom21Bits & (load_4(s + 28) >> 7); + int64_t s12 = kBottom21Bits & (load_4(s + 31) >> 4); + int64_t s13 = kBottom21Bits & (load_3(s + 34) >> 1); + int64_t s14 = kBottom21Bits & (load_4(s + 36) >> 6); + int64_t s15 = kBottom21Bits & (load_3(s + 39) >> 3); + int64_t s16 = kBottom21Bits & load_3(s + 42); + int64_t s17 = kBottom21Bits & (load_4(s + 44) >> 5); + int64_t s18 = kBottom21Bits & (load_3(s + 47) >> 2); + int64_t s19 = kBottom21Bits & (load_4(s + 49) >> 7); + int64_t s20 = kBottom21Bits & (load_4(s + 52) >> 4); + int64_t s21 = kBottom21Bits & (load_3(s + 55) >> 1); + int64_t s22 = kBottom21Bits & (load_4(s + 57) >> 6); + int64_t s23 = (load_4(s + 60) >> 3); + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + int64_t carry10; + int64_t carry11; + int64_t carry12; + int64_t carry13; + int64_t carry14; + int64_t carry15; + int64_t carry16; + + s11 += s23 * 666643; + s12 += s23 * 470296; + s13 += s23 * 654183; + s14 -= s23 * 997805; + s15 += s23 * 136657; + s16 -= s23 * 683901; + s23 = 0; + + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + s22 = 0; + + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + s21 = 0; + + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + s20 = 0; + + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + s19 = 0; + + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + s18 = 0; + + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 * (1 << 21); + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 * (1 << 21); + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 * (1 << 21); + + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 * (1 << 21); + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 * (1 << 21); + + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + s17 = 0; + + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + s16 = 0; + + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + s15 = 0; + + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + s14 = 0; + + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + s13 = 0; + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + carry11 = s11 >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + + s[ 0] = (uint8_t) (s0 >> 0); + s[ 1] = (uint8_t) (s0 >> 8); + s[ 2] = (uint8_t)((s0 >> 16) | (s1 << 5)); + s[ 3] = (uint8_t) (s1 >> 3); + s[ 4] = (uint8_t) (s1 >> 11); + s[ 5] = (uint8_t)((s1 >> 19) | (s2 << 2)); + s[ 6] = (uint8_t) (s2 >> 6); + s[ 7] = (uint8_t)((s2 >> 14) | (s3 << 7)); + s[ 8] = (uint8_t) (s3 >> 1); + s[ 9] = (uint8_t) (s3 >> 9); + s[10] = (uint8_t)((s3 >> 17) | (s4 << 4)); + s[11] = (uint8_t) (s4 >> 4); + s[12] = (uint8_t) (s4 >> 12); + s[13] = (uint8_t)((s4 >> 20) | (s5 << 1)); + s[14] = (uint8_t) (s5 >> 7); + s[15] = (uint8_t)((s5 >> 15) | (s6 << 6)); + s[16] = (uint8_t) (s6 >> 2); + s[17] = (uint8_t) (s6 >> 10); + s[18] = (uint8_t)((s6 >> 18) | (s7 << 3)); + s[19] = (uint8_t) (s7 >> 5); + s[20] = (uint8_t) (s7 >> 13); + s[21] = (uint8_t) (s8 >> 0); + s[22] = (uint8_t) (s8 >> 8); + s[23] = (uint8_t)((s8 >> 16) | (s9 << 5)); + s[24] = (uint8_t) (s9 >> 3); + s[25] = (uint8_t) (s9 >> 11); + s[26] = (uint8_t)((s9 >> 19) | (s10 << 2)); + s[27] = (uint8_t) (s10 >> 6); + s[28] = (uint8_t)((s10 >> 14) | (s11 << 7)); + s[29] = (uint8_t) (s11 >> 1); + s[30] = (uint8_t) (s11 >> 9); + s[31] = (uint8_t) (s11 >> 17); } -/* Input: +/* + * Input: * a[0]+256*a[1]+...+256^31*a[31] = a * b[0]+256*b[1]+...+256^31*b[31] = b * c[0]+256*c[1]+...+256^31*c[31] = c * * Output: * s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l - * where l = 2^252 + 27742317777372353535851937790883648493. */ + * where l = 2^252 + 27742317777372353535851937790883648493. + */ static void sc_muladd(uint8_t *s, const uint8_t *a, const uint8_t *b, - const uint8_t *c) { - int64_t a0 = 2097151 & load_3(a); - int64_t a1 = 2097151 & (load_4(a + 2) >> 5); - int64_t a2 = 2097151 & (load_3(a + 5) >> 2); - int64_t a3 = 2097151 & (load_4(a + 7) >> 7); - int64_t a4 = 2097151 & (load_4(a + 10) >> 4); - int64_t a5 = 2097151 & (load_3(a + 13) >> 1); - int64_t a6 = 2097151 & (load_4(a + 15) >> 6); - int64_t a7 = 2097151 & (load_3(a + 18) >> 3); - int64_t a8 = 2097151 & load_3(a + 21); - int64_t a9 = 2097151 & (load_4(a + 23) >> 5); - int64_t a10 = 2097151 & (load_3(a + 26) >> 2); - int64_t a11 = (load_4(a + 28) >> 7); - int64_t b0 = 2097151 & load_3(b); - int64_t b1 = 2097151 & (load_4(b + 2) >> 5); - int64_t b2 = 2097151 & (load_3(b + 5) >> 2); - int64_t b3 = 2097151 & (load_4(b + 7) >> 7); - int64_t b4 = 2097151 & (load_4(b + 10) >> 4); - int64_t b5 = 2097151 & (load_3(b + 13) >> 1); - int64_t b6 = 2097151 & (load_4(b + 15) >> 6); - int64_t b7 = 2097151 & (load_3(b + 18) >> 3); - int64_t b8 = 2097151 & load_3(b + 21); - int64_t b9 = 2097151 & (load_4(b + 23) >> 5); - int64_t b10 = 2097151 & (load_3(b + 26) >> 2); - int64_t b11 = (load_4(b + 28) >> 7); - int64_t c0 = 2097151 & load_3(c); - int64_t c1 = 2097151 & (load_4(c + 2) >> 5); - int64_t c2 = 2097151 & (load_3(c + 5) >> 2); - int64_t c3 = 2097151 & (load_4(c + 7) >> 7); - int64_t c4 = 2097151 & (load_4(c + 10) >> 4); - int64_t c5 = 2097151 & (load_3(c + 13) >> 1); - int64_t c6 = 2097151 & (load_4(c + 15) >> 6); - int64_t c7 = 2097151 & (load_3(c + 18) >> 3); - int64_t c8 = 2097151 & load_3(c + 21); - int64_t c9 = 2097151 & (load_4(c + 23) >> 5); - int64_t c10 = 2097151 & (load_3(c + 26) >> 2); - int64_t c11 = (load_4(c + 28) >> 7); - int64_t s0; - int64_t s1; - int64_t s2; - int64_t s3; - int64_t s4; - int64_t s5; - int64_t s6; - int64_t s7; - int64_t s8; - int64_t s9; - int64_t s10; - int64_t s11; - int64_t s12; - int64_t s13; - int64_t s14; - int64_t s15; - int64_t s16; - int64_t s17; - int64_t s18; - int64_t s19; - int64_t s20; - int64_t s21; - int64_t s22; - int64_t s23; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - int64_t carry10; - int64_t carry11; - int64_t carry12; - int64_t carry13; - int64_t carry14; - int64_t carry15; - int64_t carry16; - int64_t carry17; - int64_t carry18; - int64_t carry19; - int64_t carry20; - int64_t carry21; - int64_t carry22; - - s0 = c0 + a0 * b0; - s1 = c1 + a0 * b1 + a1 * b0; - s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0; - s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0; - s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0; - s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0; - s6 = c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0; - s7 = c7 + a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 + - a6 * b1 + a7 * b0; - s8 = c8 + a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 + - a6 * b2 + a7 * b1 + a8 * b0; - s9 = c9 + a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 + - a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0; - s10 = c10 + a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 + - a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0; - s11 = c11 + a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 + - a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0; - s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 + a7 * b5 + - a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1; - s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 + a8 * b5 + - a9 * b4 + a10 * b3 + a11 * b2; - s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 + a9 * b5 + - a10 * b4 + a11 * b3; - s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 + a10 * b5 + - a11 * b4; - s16 = a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5; - s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6; - s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7; - s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8; - s20 = a9 * b11 + a10 * b10 + a11 * b9; - s21 = a10 * b11 + a11 * b10; - s22 = a11 * b11; - s23 = 0; - - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 * (1 << 21); - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 * (1 << 21); - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 * (1 << 21); - carry18 = (s18 + (1 << 20)) >> 21; - s19 += carry18; - s18 -= carry18 * (1 << 21); - carry20 = (s20 + (1 << 20)) >> 21; - s21 += carry20; - s20 -= carry20 * (1 << 21); - carry22 = (s22 + (1 << 20)) >> 21; - s23 += carry22; - s22 -= carry22 * (1 << 21); - - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 * (1 << 21); - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 * (1 << 21); - carry17 = (s17 + (1 << 20)) >> 21; - s18 += carry17; - s17 -= carry17 * (1 << 21); - carry19 = (s19 + (1 << 20)) >> 21; - s20 += carry19; - s19 -= carry19 * (1 << 21); - carry21 = (s21 + (1 << 20)) >> 21; - s22 += carry21; - s21 -= carry21 * (1 << 21); - - s11 += s23 * 666643; - s12 += s23 * 470296; - s13 += s23 * 654183; - s14 -= s23 * 997805; - s15 += s23 * 136657; - s16 -= s23 * 683901; - s23 = 0; - - s10 += s22 * 666643; - s11 += s22 * 470296; - s12 += s22 * 654183; - s13 -= s22 * 997805; - s14 += s22 * 136657; - s15 -= s22 * 683901; - s22 = 0; - - s9 += s21 * 666643; - s10 += s21 * 470296; - s11 += s21 * 654183; - s12 -= s21 * 997805; - s13 += s21 * 136657; - s14 -= s21 * 683901; - s21 = 0; - - s8 += s20 * 666643; - s9 += s20 * 470296; - s10 += s20 * 654183; - s11 -= s20 * 997805; - s12 += s20 * 136657; - s13 -= s20 * 683901; - s20 = 0; - - s7 += s19 * 666643; - s8 += s19 * 470296; - s9 += s19 * 654183; - s10 -= s19 * 997805; - s11 += s19 * 136657; - s12 -= s19 * 683901; - s19 = 0; - - s6 += s18 * 666643; - s7 += s18 * 470296; - s8 += s18 * 654183; - s9 -= s18 * 997805; - s10 += s18 * 136657; - s11 -= s18 * 683901; - s18 = 0; - - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 * (1 << 21); - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 * (1 << 21); - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 * (1 << 21); - - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 * (1 << 21); - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 * (1 << 21); - - s5 += s17 * 666643; - s6 += s17 * 470296; - s7 += s17 * 654183; - s8 -= s17 * 997805; - s9 += s17 * 136657; - s10 -= s17 * 683901; - s17 = 0; - - s4 += s16 * 666643; - s5 += s16 * 470296; - s6 += s16 * 654183; - s7 -= s16 * 997805; - s8 += s16 * 136657; - s9 -= s16 * 683901; - s16 = 0; - - s3 += s15 * 666643; - s4 += s15 * 470296; - s5 += s15 * 654183; - s6 -= s15 * 997805; - s7 += s15 * 136657; - s8 -= s15 * 683901; - s15 = 0; - - s2 += s14 * 666643; - s3 += s14 * 470296; - s4 += s14 * 654183; - s5 -= s14 * 997805; - s6 += s14 * 136657; - s7 -= s14 * 683901; - s14 = 0; - - s1 += s13 * 666643; - s2 += s13 * 470296; - s3 += s13 * 654183; - s4 -= s13 * 997805; - s5 += s13 * 136657; - s6 -= s13 * 683901; - s13 = 0; - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - carry11 = s11 >> 21; - s12 += carry11; - s11 -= carry11 * (1 << 21); - - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 * (1 << 21); - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 * (1 << 21); - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 * (1 << 21); - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 * (1 << 21); - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 * (1 << 21); - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 * (1 << 21); - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 * (1 << 21); - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 * (1 << 21); - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 * (1 << 21); - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 * (1 << 21); - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 * (1 << 21); - - s[0] = (uint8_t)(s0 >> 0); - s[1] = (uint8_t)(s0 >> 8); - s[2] = (uint8_t)((s0 >> 16) | (s1 << 5)); - s[3] = (uint8_t)(s1 >> 3); - s[4] = (uint8_t)(s1 >> 11); - s[5] = (uint8_t)((s1 >> 19) | (s2 << 2)); - s[6] = (uint8_t)(s2 >> 6); - s[7] = (uint8_t)((s2 >> 14) | (s3 << 7)); - s[8] = (uint8_t)(s3 >> 1); - s[9] = (uint8_t)(s3 >> 9); - s[10] = (uint8_t)((s3 >> 17) | (s4 << 4)); - s[11] = (uint8_t)(s4 >> 4); - s[12] = (uint8_t)(s4 >> 12); - s[13] = (uint8_t)((s4 >> 20) | (s5 << 1)); - s[14] = (uint8_t)(s5 >> 7); - s[15] = (uint8_t)((s5 >> 15) | (s6 << 6)); - s[16] = (uint8_t)(s6 >> 2); - s[17] = (uint8_t)(s6 >> 10); - s[18] = (uint8_t)((s6 >> 18) | (s7 << 3)); - s[19] = (uint8_t)(s7 >> 5); - s[20] = (uint8_t)(s7 >> 13); - s[21] = (uint8_t)(s8 >> 0); - s[22] = (uint8_t)(s8 >> 8); - s[23] = (uint8_t)((s8 >> 16) | (s9 << 5)); - s[24] = (uint8_t)(s9 >> 3); - s[25] = (uint8_t)(s9 >> 11); - s[26] = (uint8_t)((s9 >> 19) | (s10 << 2)); - s[27] = (uint8_t)(s10 >> 6); - s[28] = (uint8_t)((s10 >> 14) | (s11 << 7)); - s[29] = (uint8_t)(s11 >> 1); - s[30] = (uint8_t)(s11 >> 9); - s[31] = (uint8_t)(s11 >> 17); + const uint8_t *c) +{ + int64_t a0 = kBottom21Bits & load_3(a); + int64_t a1 = kBottom21Bits & (load_4(a + 2) >> 5); + int64_t a2 = kBottom21Bits & (load_3(a + 5) >> 2); + int64_t a3 = kBottom21Bits & (load_4(a + 7) >> 7); + int64_t a4 = kBottom21Bits & (load_4(a + 10) >> 4); + int64_t a5 = kBottom21Bits & (load_3(a + 13) >> 1); + int64_t a6 = kBottom21Bits & (load_4(a + 15) >> 6); + int64_t a7 = kBottom21Bits & (load_3(a + 18) >> 3); + int64_t a8 = kBottom21Bits & load_3(a + 21); + int64_t a9 = kBottom21Bits & (load_4(a + 23) >> 5); + int64_t a10 = kBottom21Bits & (load_3(a + 26) >> 2); + int64_t a11 = (load_4(a + 28) >> 7); + int64_t b0 = kBottom21Bits & load_3(b); + int64_t b1 = kBottom21Bits & (load_4(b + 2) >> 5); + int64_t b2 = kBottom21Bits & (load_3(b + 5) >> 2); + int64_t b3 = kBottom21Bits & (load_4(b + 7) >> 7); + int64_t b4 = kBottom21Bits & (load_4(b + 10) >> 4); + int64_t b5 = kBottom21Bits & (load_3(b + 13) >> 1); + int64_t b6 = kBottom21Bits & (load_4(b + 15) >> 6); + int64_t b7 = kBottom21Bits & (load_3(b + 18) >> 3); + int64_t b8 = kBottom21Bits & load_3(b + 21); + int64_t b9 = kBottom21Bits & (load_4(b + 23) >> 5); + int64_t b10 = kBottom21Bits & (load_3(b + 26) >> 2); + int64_t b11 = (load_4(b + 28) >> 7); + int64_t c0 = kBottom21Bits & load_3(c); + int64_t c1 = kBottom21Bits & (load_4(c + 2) >> 5); + int64_t c2 = kBottom21Bits & (load_3(c + 5) >> 2); + int64_t c3 = kBottom21Bits & (load_4(c + 7) >> 7); + int64_t c4 = kBottom21Bits & (load_4(c + 10) >> 4); + int64_t c5 = kBottom21Bits & (load_3(c + 13) >> 1); + int64_t c6 = kBottom21Bits & (load_4(c + 15) >> 6); + int64_t c7 = kBottom21Bits & (load_3(c + 18) >> 3); + int64_t c8 = kBottom21Bits & load_3(c + 21); + int64_t c9 = kBottom21Bits & (load_4(c + 23) >> 5); + int64_t c10 = kBottom21Bits & (load_3(c + 26) >> 2); + int64_t c11 = (load_4(c + 28) >> 7); + int64_t s0; + int64_t s1; + int64_t s2; + int64_t s3; + int64_t s4; + int64_t s5; + int64_t s6; + int64_t s7; + int64_t s8; + int64_t s9; + int64_t s10; + int64_t s11; + int64_t s12; + int64_t s13; + int64_t s14; + int64_t s15; + int64_t s16; + int64_t s17; + int64_t s18; + int64_t s19; + int64_t s20; + int64_t s21; + int64_t s22; + int64_t s23; + int64_t carry0; + int64_t carry1; + int64_t carry2; + int64_t carry3; + int64_t carry4; + int64_t carry5; + int64_t carry6; + int64_t carry7; + int64_t carry8; + int64_t carry9; + int64_t carry10; + int64_t carry11; + int64_t carry12; + int64_t carry13; + int64_t carry14; + int64_t carry15; + int64_t carry16; + int64_t carry17; + int64_t carry18; + int64_t carry19; + int64_t carry20; + int64_t carry21; + int64_t carry22; + + s0 = c0 + a0 * b0; + s1 = c1 + a0 * b1 + a1 * b0; + s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0; + s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0; + s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0; + s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0; + s6 = c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0; + s7 = c7 + a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 + a6 * b1 + a7 * b0; + s8 = c8 + a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 + a6 * b2 + a7 * b1 + a8 * b0; + s9 = c9 + a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 + a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0; + s10 = c10 + a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 + a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0; + s11 = c11 + a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 + a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0; + s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 + a7 * b5 + a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1; + s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 + a8 * b5 + a9 * b4 + a10 * b3 + a11 * b2; + s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 + a9 * b5 + a10 * b4 + a11 * b3; + s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 + a10 * b5 + a11 * b4; + s16 = a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5; + s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6; + s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7; + s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8; + s20 = a9 * b11 + a10 * b10 + a11 * b9; + s21 = a10 * b11 + a11 * b10; + s22 = a11 * b11; + s23 = 0; + + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 * (1 << 21); + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 * (1 << 21); + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 * (1 << 21); + carry18 = (s18 + (1 << 20)) >> 21; + s19 += carry18; + s18 -= carry18 * (1 << 21); + carry20 = (s20 + (1 << 20)) >> 21; + s21 += carry20; + s20 -= carry20 * (1 << 21); + carry22 = (s22 + (1 << 20)) >> 21; + s23 += carry22; + s22 -= carry22 * (1 << 21); + + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 * (1 << 21); + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 * (1 << 21); + carry17 = (s17 + (1 << 20)) >> 21; + s18 += carry17; + s17 -= carry17 * (1 << 21); + carry19 = (s19 + (1 << 20)) >> 21; + s20 += carry19; + s19 -= carry19 * (1 << 21); + carry21 = (s21 + (1 << 20)) >> 21; + s22 += carry21; + s21 -= carry21 * (1 << 21); + + s11 += s23 * 666643; + s12 += s23 * 470296; + s13 += s23 * 654183; + s14 -= s23 * 997805; + s15 += s23 * 136657; + s16 -= s23 * 683901; + s23 = 0; + + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + s22 = 0; + + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + s21 = 0; + + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + s20 = 0; + + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + s19 = 0; + + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + s18 = 0; + + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + carry12 = (s12 + (1 << 20)) >> 21; + s13 += carry12; + s12 -= carry12 * (1 << 21); + carry14 = (s14 + (1 << 20)) >> 21; + s15 += carry14; + s14 -= carry14 * (1 << 21); + carry16 = (s16 + (1 << 20)) >> 21; + s17 += carry16; + s16 -= carry16 * (1 << 21); + + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + carry13 = (s13 + (1 << 20)) >> 21; + s14 += carry13; + s13 -= carry13 * (1 << 21); + carry15 = (s15 + (1 << 20)) >> 21; + s16 += carry15; + s15 -= carry15 * (1 << 21); + + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + s17 = 0; + + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + s16 = 0; + + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + s15 = 0; + + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + s14 = 0; + + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + s13 = 0; + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = (s0 + (1 << 20)) >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry2 = (s2 + (1 << 20)) >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry4 = (s4 + (1 << 20)) >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry6 = (s6 + (1 << 20)) >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry8 = (s8 + (1 << 20)) >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry10 = (s10 + (1 << 20)) >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + + carry1 = (s1 + (1 << 20)) >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry3 = (s3 + (1 << 20)) >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry5 = (s5 + (1 << 20)) >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry7 = (s7 + (1 << 20)) >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry9 = (s9 + (1 << 20)) >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry11 = (s11 + (1 << 20)) >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + carry11 = s11 >> 21; + s12 += carry11; + s11 -= carry11 * (1 << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = s0 >> 21; + s1 += carry0; + s0 -= carry0 * (1 << 21); + carry1 = s1 >> 21; + s2 += carry1; + s1 -= carry1 * (1 << 21); + carry2 = s2 >> 21; + s3 += carry2; + s2 -= carry2 * (1 << 21); + carry3 = s3 >> 21; + s4 += carry3; + s3 -= carry3 * (1 << 21); + carry4 = s4 >> 21; + s5 += carry4; + s4 -= carry4 * (1 << 21); + carry5 = s5 >> 21; + s6 += carry5; + s5 -= carry5 * (1 << 21); + carry6 = s6 >> 21; + s7 += carry6; + s6 -= carry6 * (1 << 21); + carry7 = s7 >> 21; + s8 += carry7; + s7 -= carry7 * (1 << 21); + carry8 = s8 >> 21; + s9 += carry8; + s8 -= carry8 * (1 << 21); + carry9 = s9 >> 21; + s10 += carry9; + s9 -= carry9 * (1 << 21); + carry10 = s10 >> 21; + s11 += carry10; + s10 -= carry10 * (1 << 21); + + s[ 0] = (uint8_t) (s0 >> 0); + s[ 1] = (uint8_t) (s0 >> 8); + s[ 2] = (uint8_t)((s0 >> 16) | (s1 << 5)); + s[ 3] = (uint8_t) (s1 >> 3); + s[ 4] = (uint8_t) (s1 >> 11); + s[ 5] = (uint8_t)((s1 >> 19) | (s2 << 2)); + s[ 6] = (uint8_t) (s2 >> 6); + s[ 7] = (uint8_t)((s2 >> 14) | (s3 << 7)); + s[ 8] = (uint8_t) (s3 >> 1); + s[ 9] = (uint8_t) (s3 >> 9); + s[10] = (uint8_t)((s3 >> 17) | (s4 << 4)); + s[11] = (uint8_t) (s4 >> 4); + s[12] = (uint8_t) (s4 >> 12); + s[13] = (uint8_t)((s4 >> 20) | (s5 << 1)); + s[14] = (uint8_t) (s5 >> 7); + s[15] = (uint8_t)((s5 >> 15) | (s6 << 6)); + s[16] = (uint8_t) (s6 >> 2); + s[17] = (uint8_t) (s6 >> 10); + s[18] = (uint8_t)((s6 >> 18) | (s7 << 3)); + s[19] = (uint8_t) (s7 >> 5); + s[20] = (uint8_t) (s7 >> 13); + s[21] = (uint8_t) (s8 >> 0); + s[22] = (uint8_t) (s8 >> 8); + s[23] = (uint8_t)((s8 >> 16) | (s9 << 5)); + s[24] = (uint8_t) (s9 >> 3); + s[25] = (uint8_t) (s9 >> 11); + s[26] = (uint8_t)((s9 >> 19) | (s10 << 2)); + s[27] = (uint8_t) (s10 >> 6); + s[28] = (uint8_t)((s10 >> 14) | (s11 << 7)); + s[29] = (uint8_t) (s11 >> 1); + s[30] = (uint8_t) (s11 >> 9); + s[31] = (uint8_t) (s11 >> 17); } int ED25519_sign(uint8_t *out_sig, const uint8_t *message, size_t message_len, - const uint8_t public_key[32], const uint8_t private_key[32]) { - uint8_t az[SHA512_DIGEST_LENGTH]; - uint8_t nonce[SHA512_DIGEST_LENGTH]; - ge_p3 R; - uint8_t hram[SHA512_DIGEST_LENGTH]; - SHA512_CTX hash_ctx; - - SHA512_Init(&hash_ctx); - SHA512_Update(&hash_ctx, private_key, 32); - SHA512_Final(az, &hash_ctx); - - az[0] &= 248; - az[31] &= 63; - az[31] |= 64; - - SHA512_Init(&hash_ctx); - SHA512_Update(&hash_ctx, az + 32, 32); - SHA512_Update(&hash_ctx, message, message_len); - SHA512_Final(nonce, &hash_ctx); - - x25519_sc_reduce(nonce); - ge_scalarmult_base(&R, nonce); - ge_p3_tobytes(out_sig, &R); - - SHA512_Init(&hash_ctx); - SHA512_Update(&hash_ctx, out_sig, 32); - SHA512_Update(&hash_ctx, public_key, 32); - SHA512_Update(&hash_ctx, message, message_len); - SHA512_Final(hram, &hash_ctx); - - x25519_sc_reduce(hram); - sc_muladd(out_sig + 32, hram, az, nonce); - - OPENSSL_cleanse(&hash_ctx, sizeof(hash_ctx)); - OPENSSL_cleanse(nonce, sizeof(nonce)); - OPENSSL_cleanse(az, sizeof(az)); - - return 1; + const uint8_t public_key[32], const uint8_t private_key[32]) +{ + uint8_t az[SHA512_DIGEST_LENGTH]; + uint8_t nonce[SHA512_DIGEST_LENGTH]; + ge_p3 R; + uint8_t hram[SHA512_DIGEST_LENGTH]; + SHA512_CTX hash_ctx; + + SHA512_Init(&hash_ctx); + SHA512_Update(&hash_ctx, private_key, 32); + SHA512_Final(az, &hash_ctx); + + az[0] &= 248; + az[31] &= 63; + az[31] |= 64; + + SHA512_Init(&hash_ctx); + SHA512_Update(&hash_ctx, az + 32, 32); + SHA512_Update(&hash_ctx, message, message_len); + SHA512_Final(nonce, &hash_ctx); + + x25519_sc_reduce(nonce); + ge_scalarmult_base(&R, nonce); + ge_p3_tobytes(out_sig, &R); + + SHA512_Init(&hash_ctx); + SHA512_Update(&hash_ctx, out_sig, 32); + SHA512_Update(&hash_ctx, public_key, 32); + SHA512_Update(&hash_ctx, message, message_len); + SHA512_Final(hram, &hash_ctx); + + x25519_sc_reduce(hram); + sc_muladd(out_sig + 32, hram, az, nonce); + + OPENSSL_cleanse(&hash_ctx, sizeof(hash_ctx)); + OPENSSL_cleanse(nonce, sizeof(nonce)); + OPENSSL_cleanse(az, sizeof(az)); + + return 1; } +static const char allzeroes[15]; + int ED25519_verify(const uint8_t *message, size_t message_len, - const uint8_t signature[64], const uint8_t public_key[32]) { - ge_p3 A; - uint8_t rcopy[32]; - uint8_t scopy[32]; - SHA512_CTX hash_ctx; - ge_p2 R; - uint8_t rcheck[32]; - uint8_t h[SHA512_DIGEST_LENGTH]; - - if ((signature[63] & 224) != 0 || - ge_frombytes_vartime(&A, public_key) != 0) { - return 0; - } + const uint8_t signature[64], const uint8_t public_key[32]) +{ + int i; + ge_p3 A; + const uint8_t *r, *s; + SHA512_CTX hash_ctx; + ge_p2 R; + uint8_t rcheck[32]; + uint8_t h[SHA512_DIGEST_LENGTH]; + /* 27742317777372353535851937790883648493 in little endian format */ + const uint8_t l_low[16] = { + 0xED, 0xD3, 0xF5, 0x5C, 0x1A, 0x63, 0x12, 0x58, 0xD6, 0x9C, 0xF7, 0xA2, + 0xDE, 0xF9, 0xDE, 0x14 + }; + + r = signature; + s = signature + 32; + + /* + * Check 0 <= s < L where L = 2^252 + 27742317777372353535851937790883648493 + * + * If not the signature is publicly invalid. Since it's public we can do the + * check in variable time. + * + * First check the most significant byte + */ + if (s[31] > 0x10) + return 0; + if (s[31] == 0x10) { + /* + * Most significant byte indicates a value close to 2^252 so check the + * rest + */ + if (memcmp(s + 16, allzeroes, sizeof(allzeroes)) != 0) + return 0; + for (i = 15; i >= 0; i--) { + if (s[i] < l_low[i]) + break; + if (s[i] > l_low[i]) + return 0; + } + if (i < 0) + return 0; + } - fe_neg(A.X, A.X); - fe_neg(A.T, A.T); + if (ge_frombytes_vartime(&A, public_key) != 0) { + return 0; + } - memcpy(rcopy, signature, 32); - memcpy(scopy, signature + 32, 32); + fe_neg(A.X, A.X); + fe_neg(A.T, A.T); - SHA512_Init(&hash_ctx); - SHA512_Update(&hash_ctx, signature, 32); - SHA512_Update(&hash_ctx, public_key, 32); - SHA512_Update(&hash_ctx, message, message_len); - SHA512_Final(h, &hash_ctx); + SHA512_Init(&hash_ctx); + SHA512_Update(&hash_ctx, r, 32); + SHA512_Update(&hash_ctx, public_key, 32); + SHA512_Update(&hash_ctx, message, message_len); + SHA512_Final(h, &hash_ctx); - x25519_sc_reduce(h); + x25519_sc_reduce(h); - ge_double_scalarmult_vartime(&R, h, &A, scopy); + ge_double_scalarmult_vartime(&R, h, &A, s); - ge_tobytes(rcheck, &R); + ge_tobytes(rcheck, &R); - return CRYPTO_memcmp(rcheck, rcopy, sizeof(rcheck)) == 0; + return CRYPTO_memcmp(rcheck, r, sizeof(rcheck)) == 0; } void ED25519_public_from_private(uint8_t out_public_key[32], - const uint8_t private_key[32]) { - uint8_t az[SHA512_DIGEST_LENGTH]; - ge_p3 A; + const uint8_t private_key[32]) +{ + uint8_t az[SHA512_DIGEST_LENGTH]; + ge_p3 A; - SHA512(private_key, 32, az); + SHA512(private_key, 32, az); - az[0] &= 248; - az[31] &= 63; - az[31] |= 64; + az[0] &= 248; + az[31] &= 63; + az[31] |= 64; - ge_scalarmult_base(&A, az); - ge_p3_tobytes(out_public_key, &A); + ge_scalarmult_base(&A, az); + ge_p3_tobytes(out_public_key, &A); - OPENSSL_cleanse(az, sizeof(az)); + OPENSSL_cleanse(az, sizeof(az)); } int X25519(uint8_t out_shared_key[32], const uint8_t private_key[32], - const uint8_t peer_public_value[32]) { - static const uint8_t kZeros[32] = {0}; - x25519_scalar_mult(out_shared_key, private_key, peer_public_value); - /* The all-zero output results when the input is a point of small order. */ - return CRYPTO_memcmp(kZeros, out_shared_key, 32) != 0; + const uint8_t peer_public_value[32]) +{ + static const uint8_t kZeros[32] = {0}; + x25519_scalar_mult(out_shared_key, private_key, peer_public_value); + /* The all-zero output results when the input is a point of small order. */ + return CRYPTO_memcmp(kZeros, out_shared_key, 32) != 0; } void X25519_public_from_private(uint8_t out_public_value[32], - const uint8_t private_key[32]) { - uint8_t e[32]; - ge_p3 A; - fe zplusy, zminusy, zminusy_inv; - - memcpy(e, private_key, 32); - e[0] &= 248; - e[31] &= 127; - e[31] |= 64; - - ge_scalarmult_base(&A, e); - - /* We only need the u-coordinate of the curve25519 point. The map is - * u=(y+1)/(1-y). Since y=Y/Z, this gives u=(Z+Y)/(Z-Y). */ - fe_add(zplusy, A.Z, A.Y); - fe_sub(zminusy, A.Z, A.Y); - fe_invert(zminusy_inv, zminusy); - fe_mul(zplusy, zplusy, zminusy_inv); - fe_tobytes(out_public_value, zplusy); - - OPENSSL_cleanse(e, sizeof(e)); + const uint8_t private_key[32]) +{ + uint8_t e[32]; + ge_p3 A; + fe zplusy, zminusy, zminusy_inv; + + memcpy(e, private_key, 32); + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + + ge_scalarmult_base(&A, e); + + /* + * We only need the u-coordinate of the curve25519 point. + * The map is u=(y+1)/(1-y). Since y=Y/Z, this gives + * u=(Z+Y)/(Z-Y). + */ + fe_add(zplusy, A.Z, A.Y); + fe_sub(zminusy, A.Z, A.Y); + fe_invert(zminusy_inv, zminusy); + fe_mul(zplusy, zplusy, zminusy_inv); + fe_tobytes(out_public_value, zplusy); + + OPENSSL_cleanse(e, sizeof(e)); } diff --git a/crypto/ec/curve448/curve448.c b/crypto/ec/curve448/curve448.c index 7dc68c8853e1df7cc56216a71f1364b4164127f6..19bd3857812c53ee308ad21c97a8e3e81f66ed8e 100644 --- a/crypto/ec/curve448/curve448.c +++ b/crypto/ec/curve448/curve448.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015-2016 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -27,8 +27,8 @@ static const curve448_scalar_t precomputed_scalarmul_adjustment = { { { - SC_LIMB(0xc873d6d54a7bb0cf), SC_LIMB(0xe933d8d723a70aad), - SC_LIMB(0xbb124b65129c96fd), SC_LIMB(0x00000008335dc163) + SC_LIMB(0xc873d6d54a7bb0cfULL), SC_LIMB(0xe933d8d723a70aadULL), + SC_LIMB(0xbb124b65129c96fdULL), SC_LIMB(0x00000008335dc163ULL) } } }; diff --git a/crypto/ec/curve448/curve448_tables.c b/crypto/ec/curve448/curve448_tables.c index a1185b1eee6a6b22138f3745793df8daa5d8ae8e..9ef29769e3b3ae6bc8764c40fadff21ff99cb6db 100644 --- a/crypto/ec/curve448/curve448_tables.c +++ b/crypto/ec/curve448/curve448_tables.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015-2016 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -16,325 +16,1045 @@ static const curve448_precomputed_s curve448_precomputed_base_table = { { {{ - {FIELD_LITERAL(0x00cc3b062366f4cc,0x003d6e34e314aa3c,0x00d51c0a7521774d,0x0094e060eec6ab8b,0x00d21291b4d80082,0x00befed12b55ef1e,0x00c3dd2df5c94518,0x00e0a7b112b8d4e6)}, - {FIELD_LITERAL(0x0019eb5608d8723a,0x00d1bab52fb3aedb,0x00270a7311ebc90c,0x0037c12b91be7f13,0x005be16cd8b5c704,0x003e181acda888e1,0x00bc1f00fc3fc6d0,0x00d3839bfa319e20)}, - {FIELD_LITERAL(0x003caeb88611909f,0x00ea8b378c4df3d4,0x00b3295b95a5a19a,0x00a65f97514bdfb5,0x00b39efba743cab1,0x0016ba98b862fd2d,0x0001508812ee71d7,0x000a75740eea114a)}, - }}, {{ - {FIELD_LITERAL(0x00ebcf0eb649f823,0x00166d332e98ea03,0x0059ddf64f5cd5f6,0x0047763123d9471b,0x00a64065c53ef62f,0x00978e44c480153d,0x000b5b2a0265f194,0x0046a24b9f32965a)}, - {FIELD_LITERAL(0x00b9eef787034df0,0x0020bc24de3390cd,0x000022160bae99bb,0x00ae66e886e97946,0x0048d4bbe02cbb8b,0x0072ba97b34e38d4,0x00eae7ec8f03e85a,0x005ba92ecf808b2c)}, - {FIELD_LITERAL(0x00c9cfbbe74258fd,0x00843a979ea9eaa7,0x000cbb4371cfbe90,0x0059bac8f7f0a628,0x004b3dff882ff530,0x0011869df4d90733,0x00595aa71f4abfc2,0x0070e2d38990c2e6)}, - }}, {{ - {FIELD_LITERAL(0x00de2010c0a01733,0x00c739a612e24297,0x00a7212643141d7c,0x00f88444f6b67c11,0x00484b7b16ec28f2,0x009c1b8856af9c68,0x00ff4669591fe9d6,0x0054974be08a32c8)}, - {FIELD_LITERAL(0x0010de3fd682ceed,0x008c07642d83ca4e,0x0013bb064e00a1cc,0x009411ae27870e11,0x00ea8e5b4d531223,0x0032fe7d2aaece2e,0x00d989e243e7bb41,0x000fe79a508e9b8b)}, - {FIELD_LITERAL(0x005e0426b9bfc5b1,0x0041a5b1d29ee4fa,0x0015b0def7774391,0x00bc164f1f51af01,0x00d543b0942797b9,0x003c129b6398099c,0x002b114c6e5adf18,0x00b4e630e4018a7b)}, - }}, {{ - {FIELD_LITERAL(0x00d490afc95f8420,0x00b096bf50c1d9b9,0x00799fd707679866,0x007c74d9334afbea,0x00efaa8be80ff4ed,0x0075c4943bb81694,0x00c21c2fca161f36,0x00e77035d492bfee)}, - {FIELD_LITERAL(0x006658a190dd6661,0x00e0e9bab38609a6,0x0028895c802237ed,0x006a0229c494f587,0x002dcde96c9916b7,0x00d158822de16218,0x00173b917a06856f,0x00ca78a79ae07326)}, - {FIELD_LITERAL(0x00e35bfc79caced4,0x0087238a3e1fe3bb,0x00bcbf0ff4ceff5b,0x00a19c1c94099b91,0x0071e102b49db976,0x0059e3d004eada1e,0x008da78afa58a47e,0x00579c8ebf269187)}, - }}, {{ - {FIELD_LITERAL(0x00a16c2905eee75f,0x009d4bcaea2c7e1d,0x00d3bd79bfad19df,0x0050da745193342c,0x006abdb8f6b29ab1,0x00a24fe0a4fef7ef,0x0063730da1057dfb,0x00a08c312c8eb108)}, - {FIELD_LITERAL(0x00b583be005375be,0x00a40c8f8a4e3df4,0x003fac4a8f5bdbf7,0x00d4481d872cd718,0x004dc8749cdbaefe,0x00cce740d5e5c975,0x000b1c1f4241fd21,0x00a76de1b4e1cd07)}, - {FIELD_LITERAL(0x007a076500d30b62,0x000a6e117b7f090f,0x00c8712ae7eebd9a,0x000fbd6c1d5f6ff7,0x003a7977246ebf11,0x00166ed969c6600e,0x00aa42e469c98bec,0x00dc58f307cf0666)}, - }}, {{ - {FIELD_LITERAL(0x004b491f65a9a28b,0x006a10309e8a55b7,0x00b67210185187ef,0x00cf6497b12d9b8f,0x0085778c56e2b1ba,0x0015b4c07a814d85,0x00686479e62da561,0x008de5d88f114916)}, - {FIELD_LITERAL(0x00e37c88d6bba7b1,0x003e4577e1b8d433,0x0050d8ea5f510ec0,0x0042fc9f2da9ef59,0x003bd074c1141420,0x00561b8b7b68774e,0x00232e5e5d1013a3,0x006b7f2cb3d7e73f)}, - {FIELD_LITERAL(0x004bdd0f0b41e6a0,0x001773057c405d24,0x006029f99915bd97,0x006a5ba70a17fe2f,0x0046111977df7e08,0x004d8124c89fb6b7,0x00580983b2bb2724,0x00207bf330d6f3fe)}, - }}, {{ - {FIELD_LITERAL(0x007efdc93972a48b,0x002f5e50e78d5fee,0x0080dc11d61c7fe5,0x0065aa598707245b,0x009abba2300641be,0x000c68787656543a,0x00ffe0fef2dc0a17,0x00007ffbd6cb4f3a)}, - {FIELD_LITERAL(0x0036012f2b836efc,0x00458c126d6b5fbc,0x00a34436d719ad1e,0x0097be6167117dea,0x0009c219c879cff3,0x0065564493e60755,0x00993ac94a8cdec0,0x002d4885a4d0dbaf)}, - {FIELD_LITERAL(0x00598b60b4c068ba,0x00c547a0be7f1afd,0x009582164acf12af,0x00af4acac4fbbe40,0x005f6ca7c539121a,0x003b6e752ebf9d66,0x00f08a30d5cac5d4,0x00e399bb5f97c5a9)}, - }}, {{ - {FIELD_LITERAL(0x007445a0409c0a66,0x00a65c369f3829c0,0x0031d248a4f74826,0x006817f34defbe8e,0x00649741d95ebf2e,0x00d46466ab16b397,0x00fdc35703bee414,0x00343b43334525f8)}, - {FIELD_LITERAL(0x001796bea93f6401,0x00090c5a42e85269,0x00672412ba1252ed,0x001201d47b6de7de,0x006877bccfe66497,0x00b554fd97a4c161,0x009753f42dbac3cf,0x00e983e3e378270a)}, - {FIELD_LITERAL(0x00ac3eff18849872,0x00f0eea3bff05690,0x00a6d72c21dd505d,0x001b832642424169,0x00a6813017b540e5,0x00a744bd71b385cd,0x0022a7d089130a7b,0x004edeec9a133486)}, - }}, {{ - {FIELD_LITERAL(0x00b2d6729196e8a9,0x0088a9bb2031cef4,0x00579e7787dc1567,0x0030f49feb059190,0x00a0b1d69c7f7d8f,0x0040bdcc6d9d806f,0x00d76c4037edd095,0x00bbf24376415dd7)}, - {FIELD_LITERAL(0x00240465ff5a7197,0x00bb97e76caf27d0,0x004b4edbf8116d39,0x001d8586f708cbaa,0x000f8ee8ff8e4a50,0x00dde5a1945dd622,0x00e6fc1c0957e07c,0x0041c9cdabfd88a0)}, - {FIELD_LITERAL(0x005344b0bf5b548c,0x002957d0b705cc99,0x00f586a70390553d,0x0075b3229f583cc3,0x00a1aa78227490e4,0x001bf09cf7957717,0x00cf6bf344325f52,0x0065bd1c23ca3ecf)}, - }}, {{ - {FIELD_LITERAL(0x009bff3b3239363c,0x00e17368796ef7c0,0x00528b0fe0971f3a,0x0008014fc8d4a095,0x00d09f2e8a521ec4,0x006713ab5dde5987,0x0003015758e0dbb1,0x00215999f1ba212d)}, - {FIELD_LITERAL(0x002c88e93527da0e,0x0077c78f3456aad5,0x0071087a0a389d1c,0x00934dac1fb96dbd,0x008470e801162697,0x005bc2196cd4ad49,0x00e535601d5087c3,0x00769888700f497f)}, - {FIELD_LITERAL(0x00da7a4b557298ad,0x0019d2589ea5df76,0x00ef3e38be0c6497,0x00a9644e1312609a,0x004592f61b2558da,0x0082c1df510d7e46,0x0042809a535c0023,0x00215bcb5afd7757)}, - }}, {{ - {FIELD_LITERAL(0x002b9df55a1a4213,0x00dcfc3b464a26be,0x00c4f9e07a8144d5,0x00c8e0617a92b602,0x008e3c93accafae0,0x00bf1bcb95b2ca60,0x004ce2426a613bf3,0x00266cac58e40921)}, - {FIELD_LITERAL(0x008456d5db76e8f0,0x0032ca9cab2ce163,0x0059f2b8bf91abcf,0x0063c2a021712788,0x00f86155af22f72d,0x00db98b2a6c005a0,0x00ac6e416a693ac4,0x007a93572af53226)}, - {FIELD_LITERAL(0x0087767520f0de22,0x0091f64012279fb5,0x001050f1f0644999,0x004f097a2477ad3c,0x006b37913a9947bd,0x001a3d78645af241,0x0057832bbb3008a7,0x002c1d902b80dc20)}, - }}, {{ - {FIELD_LITERAL(0x001a6002bf178877,0x009bce168aa5af50,0x005fc318ff04a7f5,0x0052818f55c36461,0x008768f5d4b24afb,0x0037ffbae7b69c85,0x0018195a4b61edc0,0x001e12ea088434b2)}, - {FIELD_LITERAL(0x0047d3f804e7ab07,0x00a809ab5f905260,0x00b3ffc7cdaf306d,0x00746e8ec2d6e509,0x00d0dade8887a645,0x00acceeebde0dd37,0x009bc2579054686b,0x0023804f97f1c2bf)}, - {FIELD_LITERAL(0x0043e2e2e50b80d7,0x00143aafe4427e0f,0x005594aaecab855b,0x008b12ccaaecbc01,0x002deeb091082bc3,0x009cca4be2ae7514,0x00142b96e696d047,0x00ad2a2b1c05256a)}, - }}, {{ - {FIELD_LITERAL(0x003914f2f144b78b,0x007a95dd8bee6f68,0x00c7f4384d61c8e6,0x004e51eb60f1bdb2,0x00f64be7aa4621d8,0x006797bfec2f0ac0,0x007d17aab3c75900,0x001893e73cac8bc5)}, - {FIELD_LITERAL(0x00140360b768665b,0x00b68aca4967f977,0x0001089b66195ae4,0x00fe71122185e725,0x000bca2618d49637,0x00a54f0557d7e98a,0x00cdcd2f91d6f417,0x00ab8c13741fd793)}, - {FIELD_LITERAL(0x00725ee6b1e549e0,0x007124a0769777fa,0x000b68fdad07ae42,0x0085b909cd4952df,0x0092d2e3c81606f4,0x009f22f6cac099a0,0x00f59da57f2799a8,0x00f06c090122f777)}, - }}, {{ - {FIELD_LITERAL(0x00ce0bed0a3532bc,0x001a5048a22df16b,0x00e31db4cbad8bf1,0x00e89292120cf00e,0x007d1dd1a9b00034,0x00e2a9041ff8f680,0x006a4c837ae596e7,0x00713af1068070b3)}, - {FIELD_LITERAL(0x00c4fe64ce66d04b,0x00b095d52e09b3d7,0x00758bbecb1a3a8e,0x00f35cce8d0650c0,0x002b878aa5984473,0x0062e0a3b7544ddc,0x00b25b290ed116fe,0x007b0f6abe0bebf2)}, - {FIELD_LITERAL(0x0081d4e3addae0a8,0x003410c836c7ffcc,0x00c8129ad89e4314,0x000e3d5a23922dcd,0x00d91e46f29c31f3,0x006c728cde8c5947,0x002bc655ba2566c0,0x002ca94721533108)}, - }}, {{ - {FIELD_LITERAL(0x0051e4b3f764d8a9,0x0019792d46e904a0,0x00853bc13dbc8227,0x000840208179f12d,0x0068243474879235,0x0013856fbfe374d0,0x00bda12fe8676424,0x00bbb43635926eb2)}, - {FIELD_LITERAL(0x0012cdc880a93982,0x003c495b21cd1b58,0x00b7e5c93f22a26e,0x0044aa82dfb99458,0x009ba092cdffe9c0,0x00a14b3ab2083b73,0x000271c2f70e1c4b,0x00eea9cac0f66eb8)}, - {FIELD_LITERAL(0x001a1847c4ac5480,0x00b1b412935bb03a,0x00f74285983bf2b2,0x00624138b5b5d0f1,0x008820c0b03d38bf,0x00b94e50a18c1572,0x0060f6934841798f,0x00c52f5d66d6ebe2)}, - }}, {{ - {FIELD_LITERAL(0x00da23d59f9bcea6,0x00e0f27007a06a4b,0x00128b5b43a6758c,0x000cf50190fa8b56,0x00fc877aba2b2d72,0x00623bef52edf53f,0x00e6af6b819669e2,0x00e314dc34fcaa4f)}, - {FIELD_LITERAL(0x0066e5eddd164d1e,0x00418a7c6fe28238,0x0002e2f37e962c25,0x00f01f56b5975306,0x0048842fa503875c,0x0057b0e968078143,0x00ff683024f3d134,0x0082ae28fcad12e4)}, - {FIELD_LITERAL(0x0011ddfd21260e42,0x00d05b0319a76892,0x00183ea4368e9b8f,0x00b0815662affc96,0x00b466a5e7ce7c88,0x00db93b07506e6ee,0x0033885f82f62401,0x0086f9090ec9b419)}, - }}, {{ - {FIELD_LITERAL(0x00d95d1c5fcb435a,0x0016d1ed6b5086f9,0x00792aa0b7e54d71,0x0067b65715f1925d,0x00a219755ec6176b,0x00bc3f026b12c28f,0x00700c897ffeb93e,0x0089b83f6ec50b46)}, - {FIELD_LITERAL(0x003c97e6384da36e,0x00423d53eac81a09,0x00b70d68f3cdce35,0x00ee7959b354b92c,0x00f4e9718819c8ca,0x009349f12acbffe9,0x005aee7b62cb7da6,0x00d97764154ffc86)}, - {FIELD_LITERAL(0x00526324babb46dc,0x002ee99b38d7bf9e,0x007ea51794706ef4,0x00abeb04da6e3c39,0x006b457c1d281060,0x00fe243e9a66c793,0x00378de0fb6c6ee4,0x003e4194b9c3cb93)}, - }}, {{ - {FIELD_LITERAL(0x00fed3cd80ca2292,0x0015b043a73ca613,0x000a9fd7bf9be227,0x003b5e03de2db983,0x005af72d46904ef7,0x00c0f1b5c49faa99,0x00dc86fc3bd305e1,0x00c92f08c1cb1797)}, - {FIELD_LITERAL(0x0079680ce111ed3b,0x001a1ed82806122c,0x000c2e7466d15df3,0x002c407f6f7150fd,0x00c5e7c96b1b0ce3,0x009aa44626863ff9,0x00887b8b5b80be42,0x00b6023cec964825)}, - {FIELD_LITERAL(0x00e4a8e1048970c8,0x0062887b7830a302,0x00bcf1c8cd81402b,0x0056dbb81a68f5be,0x0014eced83f12452,0x00139e1a510150df,0x00bb81140a82d1a3,0x000febcc1aaf1aa7)}, - }}, {{ - {FIELD_LITERAL(0x00a7527958238159,0x0013ec9537a84cd6,0x001d7fee7d562525,0x00b9eefa6191d5e5,0x00dbc97db70bcb8a,0x00481affc7a4d395,0x006f73d3e70c31bb,0x00183f324ed96a61)}, - {FIELD_LITERAL(0x0039dd7ce7fc6860,0x00d64f6425653da1,0x003e037c7f57d0af,0x0063477a06e2bcf2,0x001727dbb7ac67e6,0x0049589f5efafe2e,0x00fc0fef2e813d54,0x008baa5d087fb50d)}, - {FIELD_LITERAL(0x0024fb59d9b457c7,0x00a7d4e060223e4c,0x00c118d1b555fd80,0x0082e216c732f22a,0x00cd2a2993089504,0x003638e836a3e13d,0x000d855ee89b4729,0x008ec5b7d4810c91)}, - }}, {{ - {FIELD_LITERAL(0x001bf51f7d65cdfd,0x00d14cdafa16a97d,0x002c38e60fcd10e7,0x00a27446e393efbd,0x000b5d8946a71fdd,0x0063df2cde128f2f,0x006c8679569b1888,0x0059ffc4925d732d)}, - {FIELD_LITERAL(0x00ece96f95f2b66f,0x00ece7952813a27b,0x0026fc36592e489e,0x007157d1a2de0f66,0x00759dc111d86ddf,0x0012881e5780bb0f,0x00c8ccc83ad29496,0x0012b9bd1929eb71)}, - {FIELD_LITERAL(0x000fa15a20da5df0,0x00349ddb1a46cd31,0x002c512ad1d8e726,0x00047611f669318d,0x009e68fba591e17e,0x004320dffa803906,0x00a640874951a3d3,0x00b6353478baa24f)}, - }}, {{ - {FIELD_LITERAL(0x009696510000d333,0x00ec2f788bc04826,0x000e4d02b1f67ba5,0x00659aa8dace08b6,0x00d7a38a3a3ae533,0x008856defa8c746b,0x004d7a4402d3da1a,0x00ea82e06229260f)}, - {FIELD_LITERAL(0x006a15bb20f75c0c,0x0079a144027a5d0c,0x00d19116ce0b4d70,0x0059b83bcb0b268e,0x005f58f63f16c127,0x0079958318ee2c37,0x00defbb063d07f82,0x00f1f0b931d2d446)}, - {FIELD_LITERAL(0x00cb5e4c3c35d422,0x008df885ca43577f,0x00fa50b16ca3e471,0x005a0e58e17488c8,0x00b2ceccd6d34d19,0x00f01d5d235e36e9,0x00db2e7e4be6ca44,0x00260ab77f35fccd)}, - }}, {{ - {FIELD_LITERAL(0x006f6fd9baac61d5,0x002a7710a020a895,0x009de0db7fc03d4d,0x00cdedcb1875f40b,0x00050caf9b6b1e22,0x005e3a6654456ab0,0x00775fdf8c4423d4,0x0028701ea5738b5d)}, - {FIELD_LITERAL(0x009ffd90abfeae96,0x00cba3c2b624a516,0x005ef08bcee46c91,0x00e6fde30afb6185,0x00f0b4db4f818ce4,0x006c54f45d2127f5,0x00040125035854c7,0x00372658a3287e13)}, - {FIELD_LITERAL(0x00d7070fb1beb2ab,0x0078fc845a93896b,0x006894a4b2f224a6,0x005bdd8192b9dbde,0x00b38839874b3a9e,0x00f93618b04b7a57,0x003e3ec75fd2c67e,0x00bf5e6bfc29494a)}, - }}, {{ - {FIELD_LITERAL(0x00f19224ebba2aa5,0x0074f89d358e694d,0x00eea486597135ad,0x0081579a4555c7e1,0x0010b9b872930a9d,0x00f002e87a30ecc0,0x009b9d66b6de56e2,0x00a3c4f45e8004eb)}, - {FIELD_LITERAL(0x0045e8dda9400888,0x002ff12e5fc05db7,0x00a7098d54afe69c,0x00cdbe846a500585,0x00879c1593ca1882,0x003f7a7fea76c8b0,0x002cd73dd0c8e0a1,0x00645d6ce96f51fe)}, - {FIELD_LITERAL(0x002b7e83e123d6d6,0x00398346f7419c80,0x0042922e55940163,0x005e7fc5601886a3,0x00e88f2cee1d3103,0x00e7fab135f2e377,0x00b059984dbf0ded,0x0009ce080faa5bb8)}, - }}, {{ - {FIELD_LITERAL(0x0085e78af7758979,0x00275a4ee1631a3a,0x00d26bc0ed78b683,0x004f8355ea21064f,0x00d618e1a32696e5,0x008d8d7b150e5680,0x00a74cd854b278d2,0x001dd62702203ea0)}, - {FIELD_LITERAL(0x00f89335c2a59286,0x00a0f5c905d55141,0x00b41fb836ee9382,0x00e235d51730ca43,0x00a5cb37b5c0a69a,0x009b966ffe136c45,0x00cb2ea10bf80ed1,0x00fb2b370b40dc35)}, - {FIELD_LITERAL(0x00d687d16d4ee8ba,0x0071520bdd069dff,0x00de85c60d32355d,0x0087d2e3565102f4,0x00cde391b8dfc9aa,0x00e18d69efdfefe5,0x004a9d0591954e91,0x00fa36dd8b50eee5)}, - }}, {{ - {FIELD_LITERAL(0x002e788749a865f7,0x006e4dc3116861ea,0x009f1428c37276e6,0x00e7d2e0fc1e1226,0x003aeebc6b6c45f6,0x0071a8073bf500c9,0x004b22ad986b530c,0x00f439e63c0d79d4)}, - {FIELD_LITERAL(0x006bc3d53011f470,0x00032d6e692b83e8,0x00059722f497cd0b,0x0009b4e6f0c497cc,0x0058a804b7cce6c0,0x002b71d3302bbd5d,0x00e2f82a36765fce,0x008dded99524c703)}, - {FIELD_LITERAL(0x004d058953747d64,0x00701940fe79aa6f,0x00a620ac71c760bf,0x009532b611158b75,0x00547ed7f466f300,0x003cb5ab53a8401a,0x00c7763168ce3120,0x007e48e33e4b9ab2)}, - }}, {{ - {FIELD_LITERAL(0x001b2fc57bf3c738,0x006a3f918993fb80,0x0026f7a14fdec288,0x0075a2cdccef08db,0x00d3ecbc9eecdbf1,0x0048c40f06e5bf7f,0x00d63e423009896b,0x000598bc99c056a8)}, - {FIELD_LITERAL(0x002f194eaafa46dc,0x008e38f57fe87613,0x00dc8e5ae25f4ab2,0x000a17809575e6bd,0x00d3ec7923ba366a,0x003a7e72e0ad75e3,0x0010024b88436e0a,0x00ed3c5444b64051)}, - {FIELD_LITERAL(0x00831fc1340af342,0x00c9645669466d35,0x007692b4cc5a080f,0x009fd4a47ac9259f,0x001eeddf7d45928b,0x003c0446fc45f28b,0x002c0713aa3e2507,0x0095706935f0f41e)}, - }}, {{ - {FIELD_LITERAL(0x00766ae4190ec6d8,0x0065768cabc71380,0x00b902598416cdc2,0x00380021ad38df52,0x008f0b89d6551134,0x004254d4cc62c5a5,0x000d79f4484b9b94,0x00b516732ae3c50e)}, - {FIELD_LITERAL(0x001fb73475c45509,0x00d2b2e5ea43345a,0x00cb3c3842077bd1,0x0029f90ad820946e,0x007c11b2380778aa,0x009e54ece62c1704,0x004bc60c41ca01c3,0x004525679a5a0b03)}, - {FIELD_LITERAL(0x00c64fbddbed87b3,0x0040601d11731faa,0x009c22475b6f9d67,0x0024b79dae875f15,0x00616fed3f02c3b0,0x0000cf39f6af2d3b,0x00c46bac0aa9a688,0x00ab23e2800da204)}, - }}, {{ - {FIELD_LITERAL(0x000b3a37617632b0,0x00597199fe1cfb6c,0x0042a7ccdfeafdd6,0x004cc9f15ebcea17,0x00f436e596a6b4a4,0x00168861142df0d8,0x000753edfec26af5,0x000c495d7e388116)}, - {FIELD_LITERAL(0x0017085f4a346148,0x00c7cf7a37f62272,0x001776e129bc5c30,0x009955134c9eef2a,0x001ba5bdf1df07be,0x00ec39497103a55c,0x006578354fda6cfb,0x005f02719d4f15ee)}, - {FIELD_LITERAL(0x0052b9d9b5d9655d,0x00d4ec7ba1b461c3,0x00f95df4974f280b,0x003d8e5ca11aeb51,0x00d4981eb5a70b26,0x000af9a4f6659f29,0x004598c846faeb43,0x0049d9a183a47670)}, - }}, {{ - {FIELD_LITERAL(0x000a72d23dcb3f1f,0x00a3737f84011727,0x00f870c0fbbf4a47,0x00a7aadd04b5c9ca,0x000c7715c67bd072,0x00015a136afcd74e,0x0080d5caea499634,0x0026b448ec7514b7)}, - {FIELD_LITERAL(0x00b60167d9e7d065,0x00e60ba0d07381e8,0x003a4f17b725c2d4,0x006c19fe176b64fa,0x003b57b31af86ccb,0x0021047c286180fd,0x00bdc8fb00c6dbb6,0x00fe4a9f4bab4f3f)}, - {FIELD_LITERAL(0x0088ffc3a16111f7,0x009155e4245d0bc8,0x00851d68220572d5,0x00557ace1e514d29,0x0031d7c339d91022,0x00101d0ae2eaceea,0x00246ab3f837b66a,0x00d5216d381ff530)}, - }}, {{ - {FIELD_LITERAL(0x0057e7ea35f36dae,0x00f47d7ad15de22e,0x00d757ea4b105115,0x008311457d579d7e,0x00b49b75b1edd4eb,0x0081c7ff742fd63a,0x00ddda3187433df6,0x00475727d55f9c66)}, - {FIELD_LITERAL(0x00a6295218dc136a,0x00563b3af0e9c012,0x00d3753b0145db1b,0x004550389c043dc1,0x00ea94ae27401bdf,0x002b0b949f2b7956,0x00c63f780ad8e23c,0x00e591c47d6bab15)}, - {FIELD_LITERAL(0x00416c582b058eb6,0x004107da5b2cc695,0x00b3cd2556aeec64,0x00c0b418267e57a1,0x001799293579bd2e,0x0046ed44590e4d07,0x001d7459b3630a1e,0x00c6afba8b6696aa)}, - }}, {{ - {FIELD_LITERAL(0x008d6009b26da3f8,0x00898e88ca06b1ca,0x00edb22b2ed7fe62,0x00fbc93516aabe80,0x008b4b470c42ce0d,0x00e0032ba7d0dcbb,0x00d76da3a956ecc8,0x007f20fe74e3852a)}, - {FIELD_LITERAL(0x002419222c607674,0x00a7f23af89188b3,0x00ad127284e73d1c,0x008bba582fae1c51,0x00fc6aa7ca9ecab1,0x003df5319eb6c2ba,0x002a05af8a8b199a,0x004bf8354558407c)}, - {FIELD_LITERAL(0x00ce7d4a30f0fcbf,0x00d02c272629f03d,0x0048c001f7400bc2,0x002c21368011958d,0x0098a550391e96b5,0x002d80b66390f379,0x001fa878760cc785,0x001adfce54b613d5)}, - }}, {{ - {FIELD_LITERAL(0x001ed4dc71fa2523,0x005d0bff19bf9b5c,0x00c3801cee065a64,0x001ed0b504323fbf,0x0003ab9fdcbbc593,0x00df82070178b8d2,0x00a2bcaa9c251f85,0x00c628a3674bd02e)}, - {FIELD_LITERAL(0x006b7a0674f9f8de,0x00a742414e5c7cff,0x0041cbf3c6e13221,0x00e3a64fd207af24,0x0087c05f15fbe8d1,0x004c50936d9e8a33,0x001306ec21042b6d,0x00a4f4137d1141c2)}, - {FIELD_LITERAL(0x0009e6fb921568b0,0x00b3c60120219118,0x002a6c3460dd503a,0x009db1ef11654b54,0x0063e4bf0be79601,0x00670d34bb2592b9,0x00dcee2f6c4130ce,0x00b2682e88e77f54)}, - }}, {{ - {FIELD_LITERAL(0x000d5b4b3da135ab,0x00838f3e5064d81d,0x00d44eb50f6d94ed,0x0008931ab502ac6d,0x00debe01ca3d3586,0x0025c206775f0641,0x005ad4b6ae912763,0x007e2c318ad8f247)}, - {FIELD_LITERAL(0x00ddbe0750dd1add,0x004b3c7b885844b8,0x00363e7ecf12f1ae,0x0062e953e6438f9d,0x0023cc73b076afe9,0x00b09fa083b4da32,0x00c7c3d2456c541d,0x005b591ec6b694d4)}, - {FIELD_LITERAL(0x0028656e19d62fcf,0x0052a4af03df148d,0x00122765ddd14e42,0x00f2252904f67157,0x004741965b636f3a,0x006441d296132cb9,0x005e2106f956a5b7,0x00247029592d335c)}, - }}, {{ - {FIELD_LITERAL(0x003fe038eb92f894,0x000e6da1b72e8e32,0x003a1411bfcbe0fa,0x00b55d473164a9e4,0x00b9a775ac2df48d,0x0002ddf350659e21,0x00a279a69eb19cb3,0x00f844eab25cba44)}, - {FIELD_LITERAL(0x00c41d1f9c1f1ac1,0x007b2df4e9f19146,0x00b469355fd5ba7a,0x00b5e1965afc852a,0x00388d5f1e2d8217,0x0022079e4c09ae93,0x0014268acd4ef518,0x00c1dd8d9640464c)}, - {FIELD_LITERAL(0x0038526adeed0c55,0x00dd68c607e3fe85,0x00f746ddd48a5d57,0x0042f2952b963b7c,0x001cbbd6876d5ec2,0x005e341470bca5c2,0x00871d41e085f413,0x00e53ab098f45732)}, - }}, {{ - {FIELD_LITERAL(0x004d51124797c831,0x008f5ae3750347ad,0x0070ced94c1a0c8e,0x00f6db2043898e64,0x000d00c9a5750cd0,0x000741ec59bad712,0x003c9d11aab37b7f,0x00a67ba169807714)}, - {FIELD_LITERAL(0x00adb2c1566e8b8f,0x0096c68a35771a9a,0x00869933356f334a,0x00ba9c93459f5962,0x009ec73fb6e8ca4b,0x003c3802c27202e1,0x0031f5b733e0c008,0x00f9058c19611fa9)}, - {FIELD_LITERAL(0x00238f01814a3421,0x00c325a44b6cce28,0x002136f97aeb0e73,0x000cac8268a4afe2,0x0022fd218da471b3,0x009dcd8dfff8def9,0x00cb9f8181d999bb,0x00143ae56edea349)}, - }}, {{ - {FIELD_LITERAL(0x0000623bf87622c5,0x00a1966fdd069496,0x00c315b7b812f9fc,0x00bdf5efcd128b97,0x001d464f532e3e16,0x003cd94f081bfd7e,0x00ed9dae12ce4009,0x002756f5736eee70)}, - {FIELD_LITERAL(0x00a5187e6ee7341b,0x00e6d52e82d83b6e,0x00df3c41323094a7,0x00b3324f444e9de9,0x00689eb21a35bfe5,0x00f16363becd548d,0x00e187cc98e7f60f,0x00127d9062f0ccab)}, - {FIELD_LITERAL(0x004ad71b31c29e40,0x00a5fcace12fae29,0x004425b5597280ed,0x00e7ef5d716c3346,0x0010b53ada410ac8,0x0092310226060c9b,0x0091c26128729c7e,0x0088b42900f8ec3b)}, - }}, {{ - {FIELD_LITERAL(0x00f1e26e9762d4a8,0x00d9d74082183414,0x00ffec9bd57a0282,0x000919e128fd497a,0x00ab7ae7d00fe5f8,0x0054dc442851ff68,0x00c9ebeb3b861687,0x00507f7cab8b698f)}, - {FIELD_LITERAL(0x00c13c5aae3ae341,0x009c6c9ed98373e7,0x00098f26864577a8,0x0015b886e9488b45,0x0037692c42aadba5,0x00b83170b8e7791c,0x001670952ece1b44,0x00fd932a39276da2)}, - {FIELD_LITERAL(0x0081a3259bef3398,0x005480fff416107b,0x00ce4f607d21be98,0x003ffc084b41df9b,0x0043d0bb100502d1,0x00ec35f575ba3261,0x00ca18f677300ef3,0x00e8bb0a827d8548)}, - }}, {{ - {FIELD_LITERAL(0x00df76b3328ada72,0x002e20621604a7c2,0x00f910638a105b09,0x00ef4724d96ef2cd,0x00377d83d6b8a2f7,0x00b4f48805ade324,0x001cd5da8b152018,0x0045af671a20ca7f)}, - {FIELD_LITERAL(0x009ae3b93a56c404,0x004a410b7a456699,0x00023a619355e6b2,0x009cdc7297387257,0x0055b94d4ae70d04,0x002cbd607f65b005,0x003208b489697166,0x00ea2aa058867370)}, - {FIELD_LITERAL(0x00f29d2598ee3f32,0x00b4ac5385d82adc,0x007633eaf04df19b,0x00aa2d3d77ceab01,0x004a2302fcbb778a,0x00927f225d5afa34,0x004a8e9d5047f237,0x008224ae9dbce530)}, - }}, {{ - {FIELD_LITERAL(0x001cf640859b02f8,0x00758d1d5d5ce427,0x00763c784ef4604c,0x005fa81aee205270,0x00ac537bfdfc44cb,0x004b919bd342d670,0x00238508d9bf4b7a,0x00154888795644f3)}, - {FIELD_LITERAL(0x00c845923c084294,0x00072419a201bc25,0x0045f408b5f8e669,0x00e9d6a186b74dfe,0x00e19108c68fa075,0x0017b91d874177b7,0x002f0ca2c7912c5a,0x009400aa385a90a2)}, - {FIELD_LITERAL(0x0071110b01482184,0x00cfed0044f2bef8,0x0034f2901cf4662e,0x003b4ae2a67f9834,0x00cca9b96fe94810,0x00522507ae77abd0,0x00bac7422721e73e,0x0066622b0f3a62b0)}, - }}, {{ - {FIELD_LITERAL(0x00f8ac5cf4705b6a,0x00867d82dcb457e3,0x007e13ab2ccc2ce9,0x009ee9a018d3930e,0x008370f8ecb42df8,0x002d9f019add263e,0x003302385b92d196,0x00a15654536e2c0c)}, - {FIELD_LITERAL(0x0026ef1614e160af,0x00c023f9edfc9c76,0x00cff090da5f57ba,0x0076db7a66643ae9,0x0019462f8c646999,0x008fec00b3854b22,0x00d55041692a0a1c,0x0065db894215ca00)}, - {FIELD_LITERAL(0x00a925036e0a451c,0x002a0390c36b6cc1,0x00f27020d90894f4,0x008d90d52cbd3d7f,0x00e1d0137392f3b8,0x00f017c158b51a8f,0x00cac313d3ed7dbc,0x00b99a81e3eb42d3)}, - }}, {{ - {FIELD_LITERAL(0x00b54850275fe626,0x0053a3fd1ec71140,0x00e3d2d7dbe096fa,0x00e4ac7b595cce4c,0x0077bad449c0a494,0x00b7c98814afd5b3,0x0057226f58486cf9,0x00b1557154f0cc57)}, - {FIELD_LITERAL(0x008cc9cd236315c0,0x0031d9c5b39fda54,0x00a5713ef37e1171,0x00293d5ae2886325,0x00c4aba3e05015e1,0x0003f35ef78e4fc6,0x0039d6bd3ac1527b,0x0019d7c3afb77106)}, - {FIELD_LITERAL(0x007b162931a985af,0x00ad40a2e0daa713,0x006df27c4009f118,0x00503e9f4e2e8bec,0x00751a77c82c182d,0x000298937769245b,0x00ffb1e8fabf9ee5,0x0008334706e09abe)}, - }}, {{ - {FIELD_LITERAL(0x00dbca4e98a7dcd9,0x00ee29cfc78bde99,0x00e4a3b6995f52e9,0x0045d70189ae8096,0x00fd2a8a3b9b0d1b,0x00af1793b107d8e1,0x00dbf92cbe4afa20,0x00da60f798e3681d)}, - {FIELD_LITERAL(0x004246bfcecc627a,0x004ba431246c03a4,0x00bd1d101872d497,0x003b73d3f185ee16,0x001feb2e2678c0e3,0x00ff13c5a89dec76,0x00ed06042e771d8f,0x00a4fd2a897a83dd)}, - {FIELD_LITERAL(0x009a4a3be50d6597,0x00de3165fc5a1096,0x004f3f56e345b0c7,0x00f7bf721d5ab8bc,0x004313e47b098c50,0x00e4c7d5c0e1adbb,0x002e3e3db365051e,0x00a480c2cd6a96fb)}, - }}, {{ - {FIELD_LITERAL(0x00417fa30a7119ed,0x00af257758419751,0x00d358a487b463d4,0x0089703cc720b00d,0x00ce56314ff7f271,0x0064db171ade62c1,0x00640b36d4a22fed,0x00424eb88696d23f)}, - {FIELD_LITERAL(0x004ede34af2813f3,0x00d4a8e11c9e8216,0x004796d5041de8a5,0x00c4c6b4d21cc987,0x00e8a433ee07fa1e,0x0055720b5abcc5a1,0x008873ea9c74b080,0x005b3fec1ab65d48)}, - {FIELD_LITERAL(0x0047e5277db70ec5,0x000a096c66db7d6b,0x00b4164cc1730159,0x004a9f783fe720fe,0x00a8177b94449dbc,0x0095a24ff49a599f,0x0069c1c578250cbc,0x00452019213debf4)}, - }}, {{ - {FIELD_LITERAL(0x0021ce99e09ebda3,0x00fcbd9f91875ad0,0x009bbf6b7b7a0b5f,0x00388886a69b1940,0x00926a56d0f81f12,0x00e12903c3358d46,0x005dfce4e8e1ce9d,0x0044cfa94e2f7e23)}, - {FIELD_LITERAL(0x001bd59c09e982ea,0x00f72daeb937b289,0x0018b76dca908e0e,0x00edb498512384ad,0x00ce0243b6cc9538,0x00f96ff690cb4e70,0x007c77bf9f673c8d,0x005bf704c088a528)}, - {FIELD_LITERAL(0x0093d4628dcb33be,0x0095263d51d42582,0x0049b3222458fe06,0x00e7fce73b653a7f,0x003ca2ebce60b369,0x00c5de239a32bea4,0x0063b8b3d71fb6bf,0x0039aeeb78a1a839)}, - }}, {{ - {FIELD_LITERAL(0x007dc52da400336c,0x001fded1e15b9457,0x00902e00f5568e3a,0x00219bef40456d2d,0x005684161fb3dbc9,0x004a4e9be49a76ea,0x006e685ae88b78ff,0x0021c42f13042d3c)}, - {FIELD_LITERAL(0x00fb22bb5fd3ce50,0x0017b48aada7ae54,0x00fd5c44ad19a536,0x000ccc4e4e55e45c,0x00fd637d45b4c3f5,0x0038914e023c37cf,0x00ac1881d6a8d898,0x00611ed8d3d943a8)}, - {FIELD_LITERAL(0x0056e2259d113d2b,0x00594819b284ec16,0x00c7bf794bb36696,0x00721ee75097cdc6,0x00f71be9047a2892,0x00df6ba142564edf,0x0069580b7a184e8d,0x00f056e38fca0fee)}, - }}, {{ - {FIELD_LITERAL(0x009df98566a18c6d,0x00cf3a200968f219,0x0044ba60da6d9086,0x00dbc9c0e344da03,0x000f9401c4466855,0x00d46a57c5b0a8d1,0x00875a635d7ac7c6,0x00ef4a933b7e0ae6)}, - {FIELD_LITERAL(0x005e8694077a1535,0x008bef75f71c8f1d,0x000a7c1316423511,0x00906e1d70604320,0x003fc46c1a2ffbd6,0x00d1d5022e68f360,0x002515fba37bbf46,0x00ca16234e023b44)}, - {FIELD_LITERAL(0x00787c99561f4690,0x00a857a8c1561f27,0x00a10df9223c09fe,0x00b98a9562e3b154,0x004330b8744c3ed2,0x00e06812807ec5c4,0x00e4cf6a7db9f1e3,0x00d95b089f132a34)}, - }}, {{ - {FIELD_LITERAL(0x002922b39ca33eec,0x0090d12a5f3ab194,0x00ab60c02fb5f8ed,0x00188d292abba1cf,0x00e10edec9698f6e,0x0069a4d9934133c8,0x0024aac40e6d3d06,0x001702c2177661b0)}, - {FIELD_LITERAL(0x00139078397030bd,0x000e3c447e859a00,0x0064a5b334c82393,0x00b8aabeb7358093,0x00020778bb9ae73b,0x0032ee94c7892a18,0x008215253cb41bda,0x005e2797593517ae)}, - {FIELD_LITERAL(0x0083765a5f855d4a,0x0051b6d1351b8ee2,0x00116de548b0f7bb,0x0087bd88703affa0,0x0095b2cc34d7fdd2,0x0084cd81b53f0bc8,0x008562fc995350ed,0x00a39abb193651e3)}, - }}, {{ - {FIELD_LITERAL(0x0019e23f0474b114,0x00eb94c2ad3b437e,0x006ddb34683b75ac,0x00391f9209b564c6,0x00083b3bb3bff7aa,0x00eedcd0f6dceefc,0x00b50817f794fe01,0x0036474deaaa75c9)}, - {FIELD_LITERAL(0x0091868594265aa2,0x00797accae98ca6d,0x0008d8c5f0f8a184,0x00d1f4f1c2b2fe6e,0x0036783dfb48a006,0x008c165120503527,0x0025fd780058ce9b,0x0068beb007be7d27)}, - {FIELD_LITERAL(0x00d0ff88aa7c90c2,0x00b2c60dacf53394,0x0094a7284d9666d6,0x00bed9022ce7a19d,0x00c51553f0cd7682,0x00c3fb870b124992,0x008d0bc539956c9b,0x00fc8cf258bb8885)}, - }}, {{ - {FIELD_LITERAL(0x003667bf998406f8,0x0000115c43a12975,0x001e662f3b20e8fd,0x0019ffa534cb24eb,0x00016be0dc8efb45,0x00ff76a8b26243f5,0x00ae20d241a541e3,0x0069bd6af13cd430)}, - {FIELD_LITERAL(0x0045fdc16487cda3,0x00b2d8e844cf2ed7,0x00612c50e88c1607,0x00a08aabc66c1672,0x006031fdcbb24d97,0x001b639525744b93,0x004409d62639ab17,0x00a1853d0347ab1d)}, - {FIELD_LITERAL(0x0075a1a56ebf5c21,0x00a3e72be9ac53ed,0x00efcde1629170c2,0x0004225fe91ef535,0x0088049fc73dfda7,0x004abc74857e1288,0x0024e2434657317c,0x00d98cb3d3e5543c)}, - }}, {{ - {FIELD_LITERAL(0x00b4b53eab6bdb19,0x009b22d8b43711d0,0x00d948b9d961785d,0x00cb167b6f279ead,0x00191de3a678e1c9,0x00d9dd9511095c2e,0x00f284324cd43067,0x00ed74fa535151dd)}, - {FIELD_LITERAL(0x007e32c049b5c477,0x009d2bfdbd9bcfd8,0x00636e93045938c6,0x007fde4af7687298,0x0046a5184fafa5d3,0x0079b1e7f13a359b,0x00875adf1fb927d6,0x00333e21c61bcad2)}, - {FIELD_LITERAL(0x00048014f73d8b8d,0x0075684aa0966388,0x0092be7df06dc47c,0x0097cebcd0f5568a,0x005a7004d9c4c6a9,0x00b0ecbb659924c7,0x00d90332dd492a7c,0x0057fc14df11493d)}, - }}, {{ - {FIELD_LITERAL(0x0008ed8ea0ad95be,0x0041d324b9709645,0x00e25412257a19b4,0x0058df9f3423d8d2,0x00a9ab20def71304,0x009ae0dbf8ac4a81,0x00c9565977e4392a,0x003c9269444baf55)}, - {FIELD_LITERAL(0x007df6cbb926830b,0x00d336058ae37865,0x007af47dac696423,0x0048d3011ec64ac8,0x006b87666e40049f,0x0036a2e0e51303d7,0x00ba319bd79dbc55,0x003e2737ecc94f53)}, - {FIELD_LITERAL(0x00d296ff726272d9,0x00f6d097928fcf57,0x00e0e616a55d7013,0x00deaf454ed9eac7,0x0073a56bedef4d92,0x006ccfdf6fc92e19,0x009d1ee1371a7218,0x00ee3c2ee4462d80)}, - }}, {{ - {FIELD_LITERAL(0x00437bce9bccdf9d,0x00e0c8e2f85dc0a3,0x00c91a7073995a19,0x00856ec9fe294559,0x009e4b33394b156e,0x00e245b0dc497e5c,0x006a54e687eeaeff,0x00f1cd1cd00fdb7c)}, - {FIELD_LITERAL(0x008132ae5c5d8cd1,0x00121d68324a1d9f,0x00d6be9dafcb8c76,0x00684d9070edf745,0x00519fbc96d7448e,0x00388182fdc1f27e,0x000235baed41f158,0x00bf6cf6f1a1796a)}, - {FIELD_LITERAL(0x002adc4b4d148219,0x003084ada0d3a90a,0x0046de8aab0f2e4e,0x00452d342a67b5fd,0x00d4b50f01d4de21,0x00db6d9fc0cefb79,0x008c184c86a462cd,0x00e17c83764d42da)}, - }}, {{ - {FIELD_LITERAL(0x007b2743b9a1e01a,0x007847ffd42688c4,0x006c7844d610a316,0x00f0cb8b250aa4b0,0x00a19060143b3ae6,0x0014eb10b77cfd80,0x000170905729dd06,0x00063b5b9cd72477)}, - {FIELD_LITERAL(0x00ce382dc7993d92,0x00021153e938b4c8,0x00096f7567f48f51,0x0058f81ddfe4b0d5,0x00cc379a56b355c7,0x002c760770d3e819,0x00ee22d1d26e5a40,0x00de6d93d5b082d7)}, - {FIELD_LITERAL(0x000a91a42c52e056,0x00185f6b77fce7ea,0x000803c51962f6b5,0x0022528582ba563d,0x0043f8040e9856d6,0x0085a29ec81fb860,0x005f9a611549f5ff,0x00c1f974ecbd4b06)}, - }}, {{ - {FIELD_LITERAL(0x005b64c6fd65ec97,0x00c1fdd7f877bc7f,0x000d9cc6c89f841c,0x005c97b7f1aff9ad,0x0075e3c61475d47e,0x001ecb1ba8153011,0x00fe7f1c8d71d40d,0x003fa9757a229832)}, - {FIELD_LITERAL(0x00ffc5c89d2b0cba,0x00d363d42e3e6fc3,0x0019a1a0118e2e8a,0x00f7baeff48882e1,0x001bd5af28c6b514,0x0055476ca2253cb2,0x00d8eb1977e2ddf3,0x00b173b1adb228a1)}, - {FIELD_LITERAL(0x00f2cb99dd0ad707,0x00e1e08b6859ddd8,0x000008f2d0650bcc,0x00d7ed392f8615c3,0x00976750a94da27f,0x003e83bb0ecb69ba,0x00df8e8d15c14ac6,0x00f9f7174295d9c2)}, - }}, {{ - {FIELD_LITERAL(0x00f11cc8e0e70bcb,0x00e5dc689974e7dd,0x0014e409f9ee5870,0x00826e6689acbd63,0x008a6f4e3d895d88,0x00b26a8da41fd4ad,0x000fb7723f83efd7,0x009c749db0a5f6c3)}, - {FIELD_LITERAL(0x002389319450f9ba,0x003677f31aa1250a,0x0092c3db642f38cb,0x00f8b64c0dfc9773,0x00cd49fe3505b795,0x0068105a4090a510,0x00df0ba2072a8bb6,0x00eb396143afd8be)}, - {FIELD_LITERAL(0x00a0d4ecfb24cdff,0x00ddaf8008ba6479,0x00f0b3e36d4b0f44,0x003734bd3af1f146,0x00b87e2efc75527e,0x00d230df55ddab50,0x002613257ae56c1d,0x00bc0946d135934d)}, - }}, {{ - {FIELD_LITERAL(0x00468711bd994651,0x0033108fa67561bf,0x0089d760192a54b4,0x00adc433de9f1871,0x000467d05f36e050,0x007847e0f0579f7f,0x00a2314ad320052d,0x00b3a93649f0b243)}, - {FIELD_LITERAL(0x0067f8f0c4fe26c9,0x0079c4a3cc8f67b9,0x0082b1e62f23550d,0x00f2d409caefd7f5,0x0080e67dcdb26e81,0x0087ae993ea1f98a,0x00aa108becf61d03,0x001acf11efb608a3)}, - {FIELD_LITERAL(0x008225febbab50d9,0x00f3b605e4dd2083,0x00a32b28189e23d2,0x00d507e5e5eb4c97,0x005a1a84e302821f,0x0006f54c1c5f08c7,0x00a347c8cb2843f0,0x0009f73e9544bfa5)}, - }}, {{ - {FIELD_LITERAL(0x006c59c9ae744185,0x009fc32f1b4282cd,0x004d6348ca59b1ac,0x00105376881be067,0x00af4096013147dc,0x004abfb5a5cb3124,0x000d2a7f8626c354,0x009c6ed568e07431)}, - {FIELD_LITERAL(0x00e828333c297f8b,0x009ef3cf8c3f7e1f,0x00ab45f8fff31cb9,0x00c8b4178cb0b013,0x00d0c50dd3260a3f,0x0097126ac257f5bc,0x0042376cc90c705a,0x001d96fdb4a1071e)}, - {FIELD_LITERAL(0x00542d44d89ee1a8,0x00306642e0442d98,0x0090853872b87338,0x002362cbf22dc044,0x002c222adff663b8,0x0067c924495fcb79,0x000e621d983c977c,0x00df77a9eccb66fb)}, - }}, {{ - {FIELD_LITERAL(0x002809e4bbf1814a,0x00b9e854f9fafb32,0x00d35e67c10f7a67,0x008f1bcb76e748cf,0x004224d9515687d2,0x005ba0b774e620c4,0x00b5e57db5d54119,0x00e15babe5683282)}, - {FIELD_LITERAL(0x00832d02369b482c,0x00cba52ff0d93450,0x003fa9c908d554db,0x008d1e357b54122f,0x00abd91c2dc950c6,0x007eff1df4c0ec69,0x003f6aeb13fb2d31,0x00002d6179fc5b2c)}, - {FIELD_LITERAL(0x0046c9eda81c9c89,0x00b60cb71c8f62fc,0x0022f5a683baa558,0x00f87319fccdf997,0x009ca09b51ce6a22,0x005b12baf4af7d77,0x008a46524a1e33e2,0x00035a77e988be0d)}, - }}, {{ - {FIELD_LITERAL(0x00a7efe46a7dbe2f,0x002f66fd55014fe7,0x006a428afa1ff026,0x0056caaa9604ab72,0x0033f3bcd7fac8ae,0x00ccb1aa01c86764,0x00158d1edf13bf40,0x009848ee76fcf3b4)}, - {FIELD_LITERAL(0x00a9e7730a819691,0x00d9cc73c4992b70,0x00e299bde067de5a,0x008c314eb705192a,0x00e7226f17e8a3cc,0x0029dfd956e65a47,0x0053a8e839073b12,0x006f942b2ab1597e)}, - {FIELD_LITERAL(0x001c3d780ecd5e39,0x0094f247fbdcc5fe,0x00d5c786fd527764,0x00b6f4da74f0db2a,0x0080f1f8badcd5fc,0x00f36a373ad2e23b,0x00f804f9f4343bf2,0x00d1af40ec623982)}, - }}, {{ - {FIELD_LITERAL(0x0082aeace5f1b144,0x00f68b3108cf4dd3,0x00634af01dde3020,0x000beab5df5c2355,0x00e8b790d1b49b0b,0x00e48d15854e36f4,0x0040ab2d95f3db9f,0x002711c4ed9e899a)}, - {FIELD_LITERAL(0x0039343746531ebe,0x00c8509d835d429d,0x00e79eceff6b0018,0x004abfd31e8efce5,0x007bbfaaa1e20210,0x00e3be89c193e179,0x001c420f4c31d585,0x00f414a315bef5ae)}, - {FIELD_LITERAL(0x007c296a24990df8,0x00d5d07525a75588,0x00dd8e113e94b7e7,0x007bbc58febe0cc8,0x0029f51af9bfcad3,0x007e9311ec7ab6f3,0x009a884de1676343,0x0050d5f2dce84be9)}, - }}, {{ - {FIELD_LITERAL(0x005fa020cca2450a,0x00491c29db6416d8,0x0037cefe3f9f9a85,0x003d405230647066,0x0049e835f0fdbe89,0x00feb78ac1a0815c,0x00828e4b32dc9724,0x00db84f2dc8d6fd4)}, - {FIELD_LITERAL(0x0098cddc8b39549a,0x006da37e3b05d22c,0x00ce633cfd4eb3cb,0x00fda288ef526acd,0x0025338878c5d30a,0x00f34438c4e5a1b4,0x00584efea7c310f1,0x0041a551f1b660ad)}, - {FIELD_LITERAL(0x00d7f7a8fbd6437a,0x0062872413bf3753,0x00ad4bbcb43c584b,0x007fe49be601d7e3,0x0077c659789babf4,0x00eb45fcb06a741b,0x005ce244913f9708,0x0088426401736326)}, - }}, {{ - {FIELD_LITERAL(0x007bf562ca768d7c,0x006c1f3a174e387c,0x00f024b447fee939,0x007e7af75f01143f,0x003adb70b4eed89d,0x00e43544021ad79a,0x0091f7f7042011f6,0x0093c1a1ee3a0ddc)}, - {FIELD_LITERAL(0x00a0b68ec1eb72d2,0x002c03235c0d45a0,0x00553627323fe8c5,0x006186e94b17af94,0x00a9906196e29f14,0x0025b3aee6567733,0x007e0dd840080517,0x0018eb5801a4ba93)}, - {FIELD_LITERAL(0x00d7fe7017bf6a40,0x006e3f0624be0c42,0x00ffbba205358245,0x00f9fc2cf8194239,0x008d93b37bf15b4e,0x006ddf2e38be8e95,0x002b6e79bf5fcff9,0x00ab355da425e2de)}, - }}, {{ - {FIELD_LITERAL(0x00938f97e20be973,0x0099141a36aaf306,0x0057b0ca29e545a1,0x0085db571f9fbc13,0x008b333c554b4693,0x0043ab6ef3e241cb,0x0054fb20aa1e5c70,0x00be0ff852760adf)}, - {FIELD_LITERAL(0x003973d8938971d6,0x002aca26fa80c1f5,0x00108af1faa6b513,0x00daae275d7924e6,0x0053634ced721308,0x00d2355fe0bbd443,0x00357612b2d22095,0x00f9bb9dd4136cf3)}, - {FIELD_LITERAL(0x002bff12cf5e03a5,0x001bdb1fa8a19cf8,0x00c91c6793f84d39,0x00f869f1b2eba9af,0x0059bc547dc3236b,0x00d91611d6d38689,0x00e062daaa2c0214,0x00ed3c047cc2bc82)}, - }}, {{ - {FIELD_LITERAL(0x000050d70c32b31a,0x001939d576d437b3,0x00d709e598bf9fe6,0x00a885b34bd2ee9e,0x00dd4b5c08ab1a50,0x0091bebd50b55639,0x00cf79ff64acdbc6,0x006067a39d826336)}, - {FIELD_LITERAL(0x0062dd0fb31be374,0x00fcc96b84c8e727,0x003f64f1375e6ae3,0x0057d9b6dd1af004,0x00d6a167b1103c7b,0x00dd28f3180fb537,0x004ff27ad7167128,0x008934c33461f2ac)}, - {FIELD_LITERAL(0x0065b472b7900043,0x00ba7efd2ff1064b,0x000b67d6c4c3020f,0x0012d28469f4e46d,0x0031c32939703ec7,0x00b49f0bce133066,0x00f7e10416181d47,0x005c90f51867eecc)}, - }}, {{ - {FIELD_LITERAL(0x0051207abd179101,0x00fc2a5c20d9c5da,0x00fb9d5f2701b6df,0x002dd040fdea82b8,0x00f163b0738442ff,0x00d9736bd68855b8,0x00e0d8e93005e61c,0x00df5a40b3988570)}, - {FIELD_LITERAL(0x0006918f5dfce6dc,0x00d4bf1c793c57fb,0x0069a3f649435364,0x00e89a50e5b0cd6e,0x00b9f6a237e973af,0x006d4ed8b104e41d,0x00498946a3924cd2,0x00c136ec5ac9d4f7)}, - {FIELD_LITERAL(0x0011a9c290ac5336,0x002b9a2d4a6a6533,0x009a8a68c445d937,0x00361b27b07e5e5c,0x003c043b1755b974,0x00b7eb66cf1155ee,0x0077af5909eefff2,0x0098f609877cc806)}, - }}, {{ - {FIELD_LITERAL(0x00ab13af436bf8f4,0x000bcf0a0dac8574,0x00d50c864f705045,0x00c40e611debc842,0x0085010489bd5caa,0x007c5050acec026f,0x00f67d943c8da6d1,0x00de1da0278074c6)}, - {FIELD_LITERAL(0x00b373076597455f,0x00e83f1af53ac0f5,0x0041f63c01dc6840,0x0097dea19b0c6f4b,0x007f9d63b4c1572c,0x00e692d492d0f5f0,0x00cbcb392e83b4ad,0x0069c0f39ed9b1a8)}, - {FIELD_LITERAL(0x00861030012707c9,0x009fbbdc7fd4aafb,0x008f591d6b554822,0x00df08a41ea18ade,0x009d7d83e642abea,0x0098c71bda3b78ff,0x0022c89e7021f005,0x0044d29a3fe1e3c4)}, - }}, {{ - {FIELD_LITERAL(0x00e748cd7b5c52f2,0x00ea9df883f89cc3,0x0018970df156b6c7,0x00c5a46c2a33a847,0x00cbde395e32aa09,0x0072474ebb423140,0x00fb00053086a23d,0x001dafcfe22d4e1f)}, - {FIELD_LITERAL(0x00c903ee6d825540,0x00add6c4cf98473e,0x007636efed4227f1,0x00905124ae55e772,0x00e6b38fab12ed53,0x0045e132b863fe55,0x003974662edb366a,0x00b1787052be8208)}, - {FIELD_LITERAL(0x00a614b00d775c7c,0x00d7c78941cc7754,0x00422dd68b5dabc4,0x00a6110f0167d28b,0x00685a309c252886,0x00b439ffd5143660,0x003656e29ee7396f,0x00c7c9b9ed5ad854)}, - }}, {{ - {FIELD_LITERAL(0x0040f7e7c5b37bf2,0x0064e4dc81181bba,0x00a8767ae2a366b6,0x001496b4f90546f2,0x002a28493f860441,0x0021f59513049a3a,0x00852d369a8b7ee3,0x00dd2e7d8b7d30a9)}, - {FIELD_LITERAL(0x00006e34a35d9fbc,0x00eee4e48b2f019a,0x006b344743003a5f,0x00541d514f04a7e3,0x00e81f9ee7647455,0x005e2b916c438f81,0x00116f8137b7eff0,0x009bd3decc7039d1)}, - {FIELD_LITERAL(0x0005d226f434110d,0x00af8288b8ef21d5,0x004a7a52ef181c8c,0x00be0b781b4b06de,0x00e6e3627ded07e1,0x00e43aa342272b8b,0x00e86ab424577d84,0x00fb292c566e35bb)}, - }}, {{ - {FIELD_LITERAL(0x00334f5303ea1222,0x00dfb3dbeb0a5d3e,0x002940d9592335c1,0x00706a7a63e8938a,0x005a533558bc4caf,0x00558e33192022a9,0x00970d9faf74c133,0x002979fcb63493ca)}, - {FIELD_LITERAL(0x00e38abece3c82ab,0x005a51f18a2c7a86,0x009dafa2e86d592e,0x00495a62eb688678,0x00b79df74c0eb212,0x0023e8cc78b75982,0x005998cb91075e13,0x00735aa9ba61bc76)}, - {FIELD_LITERAL(0x00d9f7a82ddbe628,0x00a1fc782889ae0f,0x0071ffda12d14b66,0x0037cf4eca7fb3d5,0x00c80bc242c58808,0x0075bf8c2d08c863,0x008d41f31afc52a7,0x00197962ecf38741)}, - }}, {{ - {FIELD_LITERAL(0x006e9f475cccf2ee,0x00454b9cd506430c,0x00224a4fb79ee479,0x0062e3347ef0b5e2,0x0034fd2a3512232a,0x00b8b3cb0f457046,0x00eb20165daa38ec,0x00128eebc2d9c0f7)}, - {FIELD_LITERAL(0x00bfc5fa1e4ea21f,0x00c21d7b6bb892e6,0x00cf043f3acf0291,0x00c13f2f849b3c90,0x00d1a97ebef10891,0x0061e130a445e7fe,0x0019513fdedbf22b,0x001d60c813bff841)}, - {FIELD_LITERAL(0x0019561c7fcf0213,0x00e3dca6843ebd77,0x0068ea95b9ca920e,0x009bdfb70f253595,0x00c68f59186aa02a,0x005aee1cca1c3039,0x00ab79a8a937a1ce,0x00b9a0e549959e6f)}, - }}, {{ - {FIELD_LITERAL(0x00c79e0b6d97dfbd,0x00917c71fd2bc6e8,0x00db7529ccfb63d8,0x00be5be957f17866,0x00a9e11fdc2cdac1,0x007b91a8e1f44443,0x00a3065e4057d80f,0x004825f5b8d5f6d4)}, - {FIELD_LITERAL(0x003e4964fa8a8fc8,0x00f6a1cdbcf41689,0x00943cb18fe7fda7,0x00606dafbf34440a,0x005d37a86399c789,0x00e79a2a69417403,0x00fe34f7e68b8866,0x0011f448ed2df10e)}, - {FIELD_LITERAL(0x00f1f57efcc1fcc4,0x00513679117de154,0x002e5b5b7c86d8c3,0x009f6486561f9cfb,0x00169e74b0170cf7,0x00900205af4af696,0x006acfddb77853f3,0x00df184c90f31068)}, - }}, {{ - {FIELD_LITERAL(0x00b37396c3320791,0x00fc7b67175c5783,0x00c36d2cd73ecc38,0x0080ebcc0b328fc5,0x0043a5b22b35d35d,0x00466c9f1713c9da,0x0026ad346dcaa8da,0x007c684e701183a6)}, - {FIELD_LITERAL(0x00fd579ffb691713,0x00b76af4f81c412d,0x00f239de96110f82,0x00e965fb437f0306,0x00ca7e9436900921,0x00e487f1325fa24a,0x00633907de476380,0x00721c62ac5b8ea0)}, - {FIELD_LITERAL(0x00c0d54e542eb4f9,0x004ed657171c8dcf,0x00b743a4f7c2a39b,0x00fd9f93ed6cc567,0x00307fae3113e58b,0x0058aa577c93c319,0x00d254556f35b346,0x00491aada2203f0d)}, - }}, {{ - {FIELD_LITERAL(0x00dff3103786ff34,0x000144553b1f20c3,0x0095613baeb930e4,0x00098058275ea5d4,0x007cd1402b046756,0x0074d74e4d58aee3,0x005f93fc343ff69b,0x00873df17296b3b0)}, - {FIELD_LITERAL(0x00c4a1fb48635413,0x00b5dd54423ad59f,0x009ff5d53fd24a88,0x003c98d267fc06a7,0x002db7cb20013641,0x00bd1d6716e191f2,0x006dbc8b29094241,0x0044bbf233dafa2c)}, - {FIELD_LITERAL(0x0055838d41f531e6,0x00bf6a2dd03c81b2,0x005827a061c4839e,0x0000de2cbb36aac3,0x002efa29d9717478,0x00f9e928cc8a77ba,0x00c134b458def9ef,0x00958a182223fc48)}, - }}, {{ - {FIELD_LITERAL(0x000a9ee23c06881f,0x002c727d3d871945,0x00f47d971512d24a,0x00671e816f9ef31a,0x00883af2cfaad673,0x00601f98583d6c9a,0x00b435f5adc79655,0x00ad87b71c04bff2)}, - {FIELD_LITERAL(0x007860d99db787cf,0x00fda8983018f4a8,0x008c8866bac4743c,0x00ef471f84c82a3f,0x00abea5976d3b8e7,0x00714882896cd015,0x00b49fae584ddac5,0x008e33a1a0b69c81)}, - {FIELD_LITERAL(0x007b6ee2c9e8a9ec,0x002455dbbd89d622,0x006490cf4eaab038,0x00d925f6c3081561,0x00153b3047de7382,0x003b421f8bdceb6f,0x00761a4a5049da78,0x00980348c5202433)}, - }}, {{ - {FIELD_LITERAL(0x007f8a43da97dd5c,0x00058539c800fc7b,0x0040f3cf5a28414a,0x00d68dd0d95283d6,0x004adce9da90146e,0x00befa41c7d4f908,0x007603bc2e3c3060,0x00bdf360ab3545db)}, - {FIELD_LITERAL(0x00eebfd4e2312cc3,0x00474b2564e4fc8c,0x003303ef14b1da9b,0x003c93e0e66beb1d,0x0013619b0566925a,0x008817c24d901bf3,0x00b62bd8898d218b,0x0075a7716f1e88a2)}, - {FIELD_LITERAL(0x0009218da1e6890f,0x0026907f5fd02575,0x004dabed5f19d605,0x003abf181870249d,0x00b52fd048cc92c4,0x00b6dd51e415a5c5,0x00d9eb82bd2b4014,0x002c865a43b46b43)}, - }}, {{ - {FIELD_LITERAL(0x0070047189452f4c,0x00f7ad12e1ce78d5,0x00af1ba51ec44a8b,0x005f39f63e667cd6,0x00058eac4648425e,0x00d7fdab42bea03b,0x0028576a5688de15,0x00af973209e77c10)}, - {FIELD_LITERAL(0x00c338b915d8fef0,0x00a893292045c39a,0x0028ab4f2eba6887,0x0060743cb519fd61,0x0006213964093ac0,0x007c0b7a43f6266d,0x008e3557c4fa5bda,0x002da976de7b8d9d)}, - {FIELD_LITERAL(0x0048729f8a8b6dcd,0x00fe23b85cc4d323,0x00e7384d16e4db0e,0x004a423970678942,0x00ec0b763345d4ba,0x00c477b9f99ed721,0x00c29dad3777b230,0x001c517b466f7df6)}, - }}, {{ - {FIELD_LITERAL(0x006366c380f7b574,0x001c7d1f09ff0438,0x003e20a7301f5b22,0x00d3efb1916d28f6,0x0049f4f81060ce83,0x00c69d91ea43ced1,0x002b6f3e5cd269ed,0x005b0fb22ce9ec65)}, - {FIELD_LITERAL(0x00aa2261022d883f,0x00ebcca4548010ac,0x002528512e28a437,0x0070ca7676b66082,0x0084bda170f7c6d3,0x00581b4747c9b8bb,0x005c96a01061c7e2,0x00fb7c4a362b5273)}, - {FIELD_LITERAL(0x00c30020eb512d02,0x0060f288283a4d26,0x00b7ed13becde260,0x0075ebb74220f6e9,0x00701079fcfe8a1f,0x001c28fcdff58938,0x002e4544b8f4df6b,0x0060c5bc4f1a7d73)}, - }}, {{ - {FIELD_LITERAL(0x00ae307cf069f701,0x005859f222dd618b,0x00212d6c46ec0b0d,0x00a0fe4642afb62d,0x00420d8e4a0a8903,0x00a80ff639bdf7b0,0x0019bee1490b5d8e,0x007439e4b9c27a86)}, - {FIELD_LITERAL(0x00a94700032a093f,0x0076e96c225216e7,0x00a63a4316e45f91,0x007d8bbb4645d3b2,0x00340a6ff22793eb,0x006f935d4572aeb7,0x00b1fb69f00afa28,0x009e8f3423161ed3)}, - {FIELD_LITERAL(0x009ef49c6b5ced17,0x00a555e6269e9f0a,0x007e6f1d79ec73b5,0x009ac78695a32ac4,0x0001d77fbbcd5682,0x008cea1fee0aaeed,0x00f42bea82a53462,0x002e46ab96cafcc9)}, - }}, {{ - {FIELD_LITERAL(0x0051cfcc5885377a,0x00dce566cb1803ca,0x00430c7643f2c7d4,0x00dce1a1337bdcc0,0x0010d5bd7283c128,0x003b1b547f9b46fe,0x000f245e37e770ab,0x007b72511f022b37)}, - {FIELD_LITERAL(0x0060db815bc4786c,0x006fab25beedc434,0x00c610d06084797c,0x000c48f08537bec0,0x0031aba51c5b93da,0x007968fa6e01f347,0x0030070da52840c6,0x00c043c225a4837f)}, - {FIELD_LITERAL(0x001bcfd00649ee93,0x006dceb47e2a0fd5,0x00f2cebda0cf8fd0,0x00b6b9d9d1fbdec3,0x00815262e6490611,0x00ef7f5ce3176760,0x00e49cd0c998d58b,0x005fc6cc269ba57c)}, - }}, {{ - {FIELD_LITERAL(0x008940211aa0d633,0x00addae28136571d,0x00d68fdbba20d673,0x003bc6129bc9e21a,0x000346cf184ebe9a,0x0068774d741ebc7f,0x0019d5e9e6966557,0x0003cbd7f981b651)}, - {FIELD_LITERAL(0x004a2902926f8d3f,0x00ad79b42637ab75,0x0088f60b90f2d4e8,0x0030f54ef0e398c4,0x00021dc9bf99681e,0x007ebf66fde74ee3,0x004ade654386e9a4,0x00e7485066be4c27)}, - {FIELD_LITERAL(0x00445f1263983be0,0x004cf371dda45e6a,0x00744a89d5a310e7,0x001f20ce4f904833,0x00e746edebe66e29,0x000912ab1f6c153d,0x00f61d77d9b2444c,0x0001499cd6647610)}, + {FIELD_LITERAL(0x00cc3b062366f4ccULL, 0x003d6e34e314aa3cULL, + 0x00d51c0a7521774dULL, 0x0094e060eec6ab8bULL, + 0x00d21291b4d80082ULL, 0x00befed12b55ef1eULL, + 0x00c3dd2df5c94518ULL, 0x00e0a7b112b8d4e6ULL)}, + {FIELD_LITERAL(0x0019eb5608d8723aULL, 0x00d1bab52fb3aedbULL, + 0x00270a7311ebc90cULL, 0x0037c12b91be7f13ULL, + 0x005be16cd8b5c704ULL, 0x003e181acda888e1ULL, + 0x00bc1f00fc3fc6d0ULL, 0x00d3839bfa319e20ULL)}, + {FIELD_LITERAL(0x003caeb88611909fULL, 0x00ea8b378c4df3d4ULL, + 0x00b3295b95a5a19aULL, 0x00a65f97514bdfb5ULL, + 0x00b39efba743cab1ULL, 0x0016ba98b862fd2dULL, + 0x0001508812ee71d7ULL, 0x000a75740eea114aULL)}, + }}, {{ + {FIELD_LITERAL(0x00ebcf0eb649f823ULL, 0x00166d332e98ea03ULL, + 0x0059ddf64f5cd5f6ULL, 0x0047763123d9471bULL, + 0x00a64065c53ef62fULL, 0x00978e44c480153dULL, + 0x000b5b2a0265f194ULL, 0x0046a24b9f32965aULL)}, + {FIELD_LITERAL(0x00b9eef787034df0ULL, 0x0020bc24de3390cdULL, + 0x000022160bae99bbULL, 0x00ae66e886e97946ULL, + 0x0048d4bbe02cbb8bULL, 0x0072ba97b34e38d4ULL, + 0x00eae7ec8f03e85aULL, 0x005ba92ecf808b2cULL)}, + {FIELD_LITERAL(0x00c9cfbbe74258fdULL, 0x00843a979ea9eaa7ULL, + 0x000cbb4371cfbe90ULL, 0x0059bac8f7f0a628ULL, + 0x004b3dff882ff530ULL, 0x0011869df4d90733ULL, + 0x00595aa71f4abfc2ULL, 0x0070e2d38990c2e6ULL)}, + }}, {{ + {FIELD_LITERAL(0x00de2010c0a01733ULL, 0x00c739a612e24297ULL, + 0x00a7212643141d7cULL, 0x00f88444f6b67c11ULL, + 0x00484b7b16ec28f2ULL, 0x009c1b8856af9c68ULL, + 0x00ff4669591fe9d6ULL, 0x0054974be08a32c8ULL)}, + {FIELD_LITERAL(0x0010de3fd682ceedULL, 0x008c07642d83ca4eULL, + 0x0013bb064e00a1ccULL, 0x009411ae27870e11ULL, + 0x00ea8e5b4d531223ULL, 0x0032fe7d2aaece2eULL, + 0x00d989e243e7bb41ULL, 0x000fe79a508e9b8bULL)}, + {FIELD_LITERAL(0x005e0426b9bfc5b1ULL, 0x0041a5b1d29ee4faULL, + 0x0015b0def7774391ULL, 0x00bc164f1f51af01ULL, + 0x00d543b0942797b9ULL, 0x003c129b6398099cULL, + 0x002b114c6e5adf18ULL, 0x00b4e630e4018a7bULL)}, + }}, {{ + {FIELD_LITERAL(0x00d490afc95f8420ULL, 0x00b096bf50c1d9b9ULL, + 0x00799fd707679866ULL, 0x007c74d9334afbeaULL, + 0x00efaa8be80ff4edULL, 0x0075c4943bb81694ULL, + 0x00c21c2fca161f36ULL, 0x00e77035d492bfeeULL)}, + {FIELD_LITERAL(0x006658a190dd6661ULL, 0x00e0e9bab38609a6ULL, + 0x0028895c802237edULL, 0x006a0229c494f587ULL, + 0x002dcde96c9916b7ULL, 0x00d158822de16218ULL, + 0x00173b917a06856fULL, 0x00ca78a79ae07326ULL)}, + {FIELD_LITERAL(0x00e35bfc79caced4ULL, 0x0087238a3e1fe3bbULL, + 0x00bcbf0ff4ceff5bULL, 0x00a19c1c94099b91ULL, + 0x0071e102b49db976ULL, 0x0059e3d004eada1eULL, + 0x008da78afa58a47eULL, 0x00579c8ebf269187ULL)}, + }}, {{ + {FIELD_LITERAL(0x00a16c2905eee75fULL, 0x009d4bcaea2c7e1dULL, + 0x00d3bd79bfad19dfULL, 0x0050da745193342cULL, + 0x006abdb8f6b29ab1ULL, 0x00a24fe0a4fef7efULL, + 0x0063730da1057dfbULL, 0x00a08c312c8eb108ULL)}, + {FIELD_LITERAL(0x00b583be005375beULL, 0x00a40c8f8a4e3df4ULL, + 0x003fac4a8f5bdbf7ULL, 0x00d4481d872cd718ULL, + 0x004dc8749cdbaefeULL, 0x00cce740d5e5c975ULL, + 0x000b1c1f4241fd21ULL, 0x00a76de1b4e1cd07ULL)}, + {FIELD_LITERAL(0x007a076500d30b62ULL, 0x000a6e117b7f090fULL, + 0x00c8712ae7eebd9aULL, 0x000fbd6c1d5f6ff7ULL, + 0x003a7977246ebf11ULL, 0x00166ed969c6600eULL, + 0x00aa42e469c98becULL, 0x00dc58f307cf0666ULL)}, + }}, {{ + {FIELD_LITERAL(0x004b491f65a9a28bULL, 0x006a10309e8a55b7ULL, + 0x00b67210185187efULL, 0x00cf6497b12d9b8fULL, + 0x0085778c56e2b1baULL, 0x0015b4c07a814d85ULL, + 0x00686479e62da561ULL, 0x008de5d88f114916ULL)}, + {FIELD_LITERAL(0x00e37c88d6bba7b1ULL, 0x003e4577e1b8d433ULL, + 0x0050d8ea5f510ec0ULL, 0x0042fc9f2da9ef59ULL, + 0x003bd074c1141420ULL, 0x00561b8b7b68774eULL, + 0x00232e5e5d1013a3ULL, 0x006b7f2cb3d7e73fULL)}, + {FIELD_LITERAL(0x004bdd0f0b41e6a0ULL, 0x001773057c405d24ULL, + 0x006029f99915bd97ULL, 0x006a5ba70a17fe2fULL, + 0x0046111977df7e08ULL, 0x004d8124c89fb6b7ULL, + 0x00580983b2bb2724ULL, 0x00207bf330d6f3feULL)}, + }}, {{ + {FIELD_LITERAL(0x007efdc93972a48bULL, 0x002f5e50e78d5feeULL, + 0x0080dc11d61c7fe5ULL, 0x0065aa598707245bULL, + 0x009abba2300641beULL, 0x000c68787656543aULL, + 0x00ffe0fef2dc0a17ULL, 0x00007ffbd6cb4f3aULL)}, + {FIELD_LITERAL(0x0036012f2b836efcULL, 0x00458c126d6b5fbcULL, + 0x00a34436d719ad1eULL, 0x0097be6167117deaULL, + 0x0009c219c879cff3ULL, 0x0065564493e60755ULL, + 0x00993ac94a8cdec0ULL, 0x002d4885a4d0dbafULL)}, + {FIELD_LITERAL(0x00598b60b4c068baULL, 0x00c547a0be7f1afdULL, + 0x009582164acf12afULL, 0x00af4acac4fbbe40ULL, + 0x005f6ca7c539121aULL, 0x003b6e752ebf9d66ULL, + 0x00f08a30d5cac5d4ULL, 0x00e399bb5f97c5a9ULL)}, + }}, {{ + {FIELD_LITERAL(0x007445a0409c0a66ULL, 0x00a65c369f3829c0ULL, + 0x0031d248a4f74826ULL, 0x006817f34defbe8eULL, + 0x00649741d95ebf2eULL, 0x00d46466ab16b397ULL, + 0x00fdc35703bee414ULL, 0x00343b43334525f8ULL)}, + {FIELD_LITERAL(0x001796bea93f6401ULL, 0x00090c5a42e85269ULL, + 0x00672412ba1252edULL, 0x001201d47b6de7deULL, + 0x006877bccfe66497ULL, 0x00b554fd97a4c161ULL, + 0x009753f42dbac3cfULL, 0x00e983e3e378270aULL)}, + {FIELD_LITERAL(0x00ac3eff18849872ULL, 0x00f0eea3bff05690ULL, + 0x00a6d72c21dd505dULL, 0x001b832642424169ULL, + 0x00a6813017b540e5ULL, 0x00a744bd71b385cdULL, + 0x0022a7d089130a7bULL, 0x004edeec9a133486ULL)}, + }}, {{ + {FIELD_LITERAL(0x00b2d6729196e8a9ULL, 0x0088a9bb2031cef4ULL, + 0x00579e7787dc1567ULL, 0x0030f49feb059190ULL, + 0x00a0b1d69c7f7d8fULL, 0x0040bdcc6d9d806fULL, + 0x00d76c4037edd095ULL, 0x00bbf24376415dd7ULL)}, + {FIELD_LITERAL(0x00240465ff5a7197ULL, 0x00bb97e76caf27d0ULL, + 0x004b4edbf8116d39ULL, 0x001d8586f708cbaaULL, + 0x000f8ee8ff8e4a50ULL, 0x00dde5a1945dd622ULL, + 0x00e6fc1c0957e07cULL, 0x0041c9cdabfd88a0ULL)}, + {FIELD_LITERAL(0x005344b0bf5b548cULL, 0x002957d0b705cc99ULL, + 0x00f586a70390553dULL, 0x0075b3229f583cc3ULL, + 0x00a1aa78227490e4ULL, 0x001bf09cf7957717ULL, + 0x00cf6bf344325f52ULL, 0x0065bd1c23ca3ecfULL)}, + }}, {{ + {FIELD_LITERAL(0x009bff3b3239363cULL, 0x00e17368796ef7c0ULL, + 0x00528b0fe0971f3aULL, 0x0008014fc8d4a095ULL, + 0x00d09f2e8a521ec4ULL, 0x006713ab5dde5987ULL, + 0x0003015758e0dbb1ULL, 0x00215999f1ba212dULL)}, + {FIELD_LITERAL(0x002c88e93527da0eULL, 0x0077c78f3456aad5ULL, + 0x0071087a0a389d1cULL, 0x00934dac1fb96dbdULL, + 0x008470e801162697ULL, 0x005bc2196cd4ad49ULL, + 0x00e535601d5087c3ULL, 0x00769888700f497fULL)}, + {FIELD_LITERAL(0x00da7a4b557298adULL, 0x0019d2589ea5df76ULL, + 0x00ef3e38be0c6497ULL, 0x00a9644e1312609aULL, + 0x004592f61b2558daULL, 0x0082c1df510d7e46ULL, + 0x0042809a535c0023ULL, 0x00215bcb5afd7757ULL)}, + }}, {{ + {FIELD_LITERAL(0x002b9df55a1a4213ULL, 0x00dcfc3b464a26beULL, + 0x00c4f9e07a8144d5ULL, 0x00c8e0617a92b602ULL, + 0x008e3c93accafae0ULL, 0x00bf1bcb95b2ca60ULL, + 0x004ce2426a613bf3ULL, 0x00266cac58e40921ULL)}, + {FIELD_LITERAL(0x008456d5db76e8f0ULL, 0x0032ca9cab2ce163ULL, + 0x0059f2b8bf91abcfULL, 0x0063c2a021712788ULL, + 0x00f86155af22f72dULL, 0x00db98b2a6c005a0ULL, + 0x00ac6e416a693ac4ULL, 0x007a93572af53226ULL)}, + {FIELD_LITERAL(0x0087767520f0de22ULL, 0x0091f64012279fb5ULL, + 0x001050f1f0644999ULL, 0x004f097a2477ad3cULL, + 0x006b37913a9947bdULL, 0x001a3d78645af241ULL, + 0x0057832bbb3008a7ULL, 0x002c1d902b80dc20ULL)}, + }}, {{ + {FIELD_LITERAL(0x001a6002bf178877ULL, 0x009bce168aa5af50ULL, + 0x005fc318ff04a7f5ULL, 0x0052818f55c36461ULL, + 0x008768f5d4b24afbULL, 0x0037ffbae7b69c85ULL, + 0x0018195a4b61edc0ULL, 0x001e12ea088434b2ULL)}, + {FIELD_LITERAL(0x0047d3f804e7ab07ULL, 0x00a809ab5f905260ULL, + 0x00b3ffc7cdaf306dULL, 0x00746e8ec2d6e509ULL, + 0x00d0dade8887a645ULL, 0x00acceeebde0dd37ULL, + 0x009bc2579054686bULL, 0x0023804f97f1c2bfULL)}, + {FIELD_LITERAL(0x0043e2e2e50b80d7ULL, 0x00143aafe4427e0fULL, + 0x005594aaecab855bULL, 0x008b12ccaaecbc01ULL, + 0x002deeb091082bc3ULL, 0x009cca4be2ae7514ULL, + 0x00142b96e696d047ULL, 0x00ad2a2b1c05256aULL)}, + }}, {{ + {FIELD_LITERAL(0x003914f2f144b78bULL, 0x007a95dd8bee6f68ULL, + 0x00c7f4384d61c8e6ULL, 0x004e51eb60f1bdb2ULL, + 0x00f64be7aa4621d8ULL, 0x006797bfec2f0ac0ULL, + 0x007d17aab3c75900ULL, 0x001893e73cac8bc5ULL)}, + {FIELD_LITERAL(0x00140360b768665bULL, 0x00b68aca4967f977ULL, + 0x0001089b66195ae4ULL, 0x00fe71122185e725ULL, + 0x000bca2618d49637ULL, 0x00a54f0557d7e98aULL, + 0x00cdcd2f91d6f417ULL, 0x00ab8c13741fd793ULL)}, + {FIELD_LITERAL(0x00725ee6b1e549e0ULL, 0x007124a0769777faULL, + 0x000b68fdad07ae42ULL, 0x0085b909cd4952dfULL, + 0x0092d2e3c81606f4ULL, 0x009f22f6cac099a0ULL, + 0x00f59da57f2799a8ULL, 0x00f06c090122f777ULL)}, + }}, {{ + {FIELD_LITERAL(0x00ce0bed0a3532bcULL, 0x001a5048a22df16bULL, + 0x00e31db4cbad8bf1ULL, 0x00e89292120cf00eULL, + 0x007d1dd1a9b00034ULL, 0x00e2a9041ff8f680ULL, + 0x006a4c837ae596e7ULL, 0x00713af1068070b3ULL)}, + {FIELD_LITERAL(0x00c4fe64ce66d04bULL, 0x00b095d52e09b3d7ULL, + 0x00758bbecb1a3a8eULL, 0x00f35cce8d0650c0ULL, + 0x002b878aa5984473ULL, 0x0062e0a3b7544ddcULL, + 0x00b25b290ed116feULL, 0x007b0f6abe0bebf2ULL)}, + {FIELD_LITERAL(0x0081d4e3addae0a8ULL, 0x003410c836c7ffccULL, + 0x00c8129ad89e4314ULL, 0x000e3d5a23922dcdULL, + 0x00d91e46f29c31f3ULL, 0x006c728cde8c5947ULL, + 0x002bc655ba2566c0ULL, 0x002ca94721533108ULL)}, + }}, {{ + {FIELD_LITERAL(0x0051e4b3f764d8a9ULL, 0x0019792d46e904a0ULL, + 0x00853bc13dbc8227ULL, 0x000840208179f12dULL, + 0x0068243474879235ULL, 0x0013856fbfe374d0ULL, + 0x00bda12fe8676424ULL, 0x00bbb43635926eb2ULL)}, + {FIELD_LITERAL(0x0012cdc880a93982ULL, 0x003c495b21cd1b58ULL, + 0x00b7e5c93f22a26eULL, 0x0044aa82dfb99458ULL, + 0x009ba092cdffe9c0ULL, 0x00a14b3ab2083b73ULL, + 0x000271c2f70e1c4bULL, 0x00eea9cac0f66eb8ULL)}, + {FIELD_LITERAL(0x001a1847c4ac5480ULL, 0x00b1b412935bb03aULL, + 0x00f74285983bf2b2ULL, 0x00624138b5b5d0f1ULL, + 0x008820c0b03d38bfULL, 0x00b94e50a18c1572ULL, + 0x0060f6934841798fULL, 0x00c52f5d66d6ebe2ULL)}, + }}, {{ + {FIELD_LITERAL(0x00da23d59f9bcea6ULL, 0x00e0f27007a06a4bULL, + 0x00128b5b43a6758cULL, 0x000cf50190fa8b56ULL, + 0x00fc877aba2b2d72ULL, 0x00623bef52edf53fULL, + 0x00e6af6b819669e2ULL, 0x00e314dc34fcaa4fULL)}, + {FIELD_LITERAL(0x0066e5eddd164d1eULL, 0x00418a7c6fe28238ULL, + 0x0002e2f37e962c25ULL, 0x00f01f56b5975306ULL, + 0x0048842fa503875cULL, 0x0057b0e968078143ULL, + 0x00ff683024f3d134ULL, 0x0082ae28fcad12e4ULL)}, + {FIELD_LITERAL(0x0011ddfd21260e42ULL, 0x00d05b0319a76892ULL, + 0x00183ea4368e9b8fULL, 0x00b0815662affc96ULL, + 0x00b466a5e7ce7c88ULL, 0x00db93b07506e6eeULL, + 0x0033885f82f62401ULL, 0x0086f9090ec9b419ULL)}, + }}, {{ + {FIELD_LITERAL(0x00d95d1c5fcb435aULL, 0x0016d1ed6b5086f9ULL, + 0x00792aa0b7e54d71ULL, 0x0067b65715f1925dULL, + 0x00a219755ec6176bULL, 0x00bc3f026b12c28fULL, + 0x00700c897ffeb93eULL, 0x0089b83f6ec50b46ULL)}, + {FIELD_LITERAL(0x003c97e6384da36eULL, 0x00423d53eac81a09ULL, + 0x00b70d68f3cdce35ULL, 0x00ee7959b354b92cULL, + 0x00f4e9718819c8caULL, 0x009349f12acbffe9ULL, + 0x005aee7b62cb7da6ULL, 0x00d97764154ffc86ULL)}, + {FIELD_LITERAL(0x00526324babb46dcULL, 0x002ee99b38d7bf9eULL, + 0x007ea51794706ef4ULL, 0x00abeb04da6e3c39ULL, + 0x006b457c1d281060ULL, 0x00fe243e9a66c793ULL, + 0x00378de0fb6c6ee4ULL, 0x003e4194b9c3cb93ULL)}, + }}, {{ + {FIELD_LITERAL(0x00fed3cd80ca2292ULL, 0x0015b043a73ca613ULL, + 0x000a9fd7bf9be227ULL, 0x003b5e03de2db983ULL, + 0x005af72d46904ef7ULL, 0x00c0f1b5c49faa99ULL, + 0x00dc86fc3bd305e1ULL, 0x00c92f08c1cb1797ULL)}, + {FIELD_LITERAL(0x0079680ce111ed3bULL, 0x001a1ed82806122cULL, + 0x000c2e7466d15df3ULL, 0x002c407f6f7150fdULL, + 0x00c5e7c96b1b0ce3ULL, 0x009aa44626863ff9ULL, + 0x00887b8b5b80be42ULL, 0x00b6023cec964825ULL)}, + {FIELD_LITERAL(0x00e4a8e1048970c8ULL, 0x0062887b7830a302ULL, + 0x00bcf1c8cd81402bULL, 0x0056dbb81a68f5beULL, + 0x0014eced83f12452ULL, 0x00139e1a510150dfULL, + 0x00bb81140a82d1a3ULL, 0x000febcc1aaf1aa7ULL)}, + }}, {{ + {FIELD_LITERAL(0x00a7527958238159ULL, 0x0013ec9537a84cd6ULL, + 0x001d7fee7d562525ULL, 0x00b9eefa6191d5e5ULL, + 0x00dbc97db70bcb8aULL, 0x00481affc7a4d395ULL, + 0x006f73d3e70c31bbULL, 0x00183f324ed96a61ULL)}, + {FIELD_LITERAL(0x0039dd7ce7fc6860ULL, 0x00d64f6425653da1ULL, + 0x003e037c7f57d0afULL, 0x0063477a06e2bcf2ULL, + 0x001727dbb7ac67e6ULL, 0x0049589f5efafe2eULL, + 0x00fc0fef2e813d54ULL, 0x008baa5d087fb50dULL)}, + {FIELD_LITERAL(0x0024fb59d9b457c7ULL, 0x00a7d4e060223e4cULL, + 0x00c118d1b555fd80ULL, 0x0082e216c732f22aULL, + 0x00cd2a2993089504ULL, 0x003638e836a3e13dULL, + 0x000d855ee89b4729ULL, 0x008ec5b7d4810c91ULL)}, + }}, {{ + {FIELD_LITERAL(0x001bf51f7d65cdfdULL, 0x00d14cdafa16a97dULL, + 0x002c38e60fcd10e7ULL, 0x00a27446e393efbdULL, + 0x000b5d8946a71fddULL, 0x0063df2cde128f2fULL, + 0x006c8679569b1888ULL, 0x0059ffc4925d732dULL)}, + {FIELD_LITERAL(0x00ece96f95f2b66fULL, 0x00ece7952813a27bULL, + 0x0026fc36592e489eULL, 0x007157d1a2de0f66ULL, + 0x00759dc111d86ddfULL, 0x0012881e5780bb0fULL, + 0x00c8ccc83ad29496ULL, 0x0012b9bd1929eb71ULL)}, + {FIELD_LITERAL(0x000fa15a20da5df0ULL, 0x00349ddb1a46cd31ULL, + 0x002c512ad1d8e726ULL, 0x00047611f669318dULL, + 0x009e68fba591e17eULL, 0x004320dffa803906ULL, + 0x00a640874951a3d3ULL, 0x00b6353478baa24fULL)}, + }}, {{ + {FIELD_LITERAL(0x009696510000d333ULL, 0x00ec2f788bc04826ULL, + 0x000e4d02b1f67ba5ULL, 0x00659aa8dace08b6ULL, + 0x00d7a38a3a3ae533ULL, 0x008856defa8c746bULL, + 0x004d7a4402d3da1aULL, 0x00ea82e06229260fULL)}, + {FIELD_LITERAL(0x006a15bb20f75c0cULL, 0x0079a144027a5d0cULL, + 0x00d19116ce0b4d70ULL, 0x0059b83bcb0b268eULL, + 0x005f58f63f16c127ULL, 0x0079958318ee2c37ULL, + 0x00defbb063d07f82ULL, 0x00f1f0b931d2d446ULL)}, + {FIELD_LITERAL(0x00cb5e4c3c35d422ULL, 0x008df885ca43577fULL, + 0x00fa50b16ca3e471ULL, 0x005a0e58e17488c8ULL, + 0x00b2ceccd6d34d19ULL, 0x00f01d5d235e36e9ULL, + 0x00db2e7e4be6ca44ULL, 0x00260ab77f35fccdULL)}, + }}, {{ + {FIELD_LITERAL(0x006f6fd9baac61d5ULL, 0x002a7710a020a895ULL, + 0x009de0db7fc03d4dULL, 0x00cdedcb1875f40bULL, + 0x00050caf9b6b1e22ULL, 0x005e3a6654456ab0ULL, + 0x00775fdf8c4423d4ULL, 0x0028701ea5738b5dULL)}, + {FIELD_LITERAL(0x009ffd90abfeae96ULL, 0x00cba3c2b624a516ULL, + 0x005ef08bcee46c91ULL, 0x00e6fde30afb6185ULL, + 0x00f0b4db4f818ce4ULL, 0x006c54f45d2127f5ULL, + 0x00040125035854c7ULL, 0x00372658a3287e13ULL)}, + {FIELD_LITERAL(0x00d7070fb1beb2abULL, 0x0078fc845a93896bULL, + 0x006894a4b2f224a6ULL, 0x005bdd8192b9dbdeULL, + 0x00b38839874b3a9eULL, 0x00f93618b04b7a57ULL, + 0x003e3ec75fd2c67eULL, 0x00bf5e6bfc29494aULL)}, + }}, {{ + {FIELD_LITERAL(0x00f19224ebba2aa5ULL, 0x0074f89d358e694dULL, + 0x00eea486597135adULL, 0x0081579a4555c7e1ULL, + 0x0010b9b872930a9dULL, 0x00f002e87a30ecc0ULL, + 0x009b9d66b6de56e2ULL, 0x00a3c4f45e8004ebULL)}, + {FIELD_LITERAL(0x0045e8dda9400888ULL, 0x002ff12e5fc05db7ULL, + 0x00a7098d54afe69cULL, 0x00cdbe846a500585ULL, + 0x00879c1593ca1882ULL, 0x003f7a7fea76c8b0ULL, + 0x002cd73dd0c8e0a1ULL, 0x00645d6ce96f51feULL)}, + {FIELD_LITERAL(0x002b7e83e123d6d6ULL, 0x00398346f7419c80ULL, + 0x0042922e55940163ULL, 0x005e7fc5601886a3ULL, + 0x00e88f2cee1d3103ULL, 0x00e7fab135f2e377ULL, + 0x00b059984dbf0dedULL, 0x0009ce080faa5bb8ULL)}, + }}, {{ + {FIELD_LITERAL(0x0085e78af7758979ULL, 0x00275a4ee1631a3aULL, + 0x00d26bc0ed78b683ULL, 0x004f8355ea21064fULL, + 0x00d618e1a32696e5ULL, 0x008d8d7b150e5680ULL, + 0x00a74cd854b278d2ULL, 0x001dd62702203ea0ULL)}, + {FIELD_LITERAL(0x00f89335c2a59286ULL, 0x00a0f5c905d55141ULL, + 0x00b41fb836ee9382ULL, 0x00e235d51730ca43ULL, + 0x00a5cb37b5c0a69aULL, 0x009b966ffe136c45ULL, + 0x00cb2ea10bf80ed1ULL, 0x00fb2b370b40dc35ULL)}, + {FIELD_LITERAL(0x00d687d16d4ee8baULL, 0x0071520bdd069dffULL, + 0x00de85c60d32355dULL, 0x0087d2e3565102f4ULL, + 0x00cde391b8dfc9aaULL, 0x00e18d69efdfefe5ULL, + 0x004a9d0591954e91ULL, 0x00fa36dd8b50eee5ULL)}, + }}, {{ + {FIELD_LITERAL(0x002e788749a865f7ULL, 0x006e4dc3116861eaULL, + 0x009f1428c37276e6ULL, 0x00e7d2e0fc1e1226ULL, + 0x003aeebc6b6c45f6ULL, 0x0071a8073bf500c9ULL, + 0x004b22ad986b530cULL, 0x00f439e63c0d79d4ULL)}, + {FIELD_LITERAL(0x006bc3d53011f470ULL, 0x00032d6e692b83e8ULL, + 0x00059722f497cd0bULL, 0x0009b4e6f0c497ccULL, + 0x0058a804b7cce6c0ULL, 0x002b71d3302bbd5dULL, + 0x00e2f82a36765fceULL, 0x008dded99524c703ULL)}, + {FIELD_LITERAL(0x004d058953747d64ULL, 0x00701940fe79aa6fULL, + 0x00a620ac71c760bfULL, 0x009532b611158b75ULL, + 0x00547ed7f466f300ULL, 0x003cb5ab53a8401aULL, + 0x00c7763168ce3120ULL, 0x007e48e33e4b9ab2ULL)}, + }}, {{ + {FIELD_LITERAL(0x001b2fc57bf3c738ULL, 0x006a3f918993fb80ULL, + 0x0026f7a14fdec288ULL, 0x0075a2cdccef08dbULL, + 0x00d3ecbc9eecdbf1ULL, 0x0048c40f06e5bf7fULL, + 0x00d63e423009896bULL, 0x000598bc99c056a8ULL)}, + {FIELD_LITERAL(0x002f194eaafa46dcULL, 0x008e38f57fe87613ULL, + 0x00dc8e5ae25f4ab2ULL, 0x000a17809575e6bdULL, + 0x00d3ec7923ba366aULL, 0x003a7e72e0ad75e3ULL, + 0x0010024b88436e0aULL, 0x00ed3c5444b64051ULL)}, + {FIELD_LITERAL(0x00831fc1340af342ULL, 0x00c9645669466d35ULL, + 0x007692b4cc5a080fULL, 0x009fd4a47ac9259fULL, + 0x001eeddf7d45928bULL, 0x003c0446fc45f28bULL, + 0x002c0713aa3e2507ULL, 0x0095706935f0f41eULL)}, + }}, {{ + {FIELD_LITERAL(0x00766ae4190ec6d8ULL, 0x0065768cabc71380ULL, + 0x00b902598416cdc2ULL, 0x00380021ad38df52ULL, + 0x008f0b89d6551134ULL, 0x004254d4cc62c5a5ULL, + 0x000d79f4484b9b94ULL, 0x00b516732ae3c50eULL)}, + {FIELD_LITERAL(0x001fb73475c45509ULL, 0x00d2b2e5ea43345aULL, + 0x00cb3c3842077bd1ULL, 0x0029f90ad820946eULL, + 0x007c11b2380778aaULL, 0x009e54ece62c1704ULL, + 0x004bc60c41ca01c3ULL, 0x004525679a5a0b03ULL)}, + {FIELD_LITERAL(0x00c64fbddbed87b3ULL, 0x0040601d11731faaULL, + 0x009c22475b6f9d67ULL, 0x0024b79dae875f15ULL, + 0x00616fed3f02c3b0ULL, 0x0000cf39f6af2d3bULL, + 0x00c46bac0aa9a688ULL, 0x00ab23e2800da204ULL)}, + }}, {{ + {FIELD_LITERAL(0x000b3a37617632b0ULL, 0x00597199fe1cfb6cULL, + 0x0042a7ccdfeafdd6ULL, 0x004cc9f15ebcea17ULL, + 0x00f436e596a6b4a4ULL, 0x00168861142df0d8ULL, + 0x000753edfec26af5ULL, 0x000c495d7e388116ULL)}, + {FIELD_LITERAL(0x0017085f4a346148ULL, 0x00c7cf7a37f62272ULL, + 0x001776e129bc5c30ULL, 0x009955134c9eef2aULL, + 0x001ba5bdf1df07beULL, 0x00ec39497103a55cULL, + 0x006578354fda6cfbULL, 0x005f02719d4f15eeULL)}, + {FIELD_LITERAL(0x0052b9d9b5d9655dULL, 0x00d4ec7ba1b461c3ULL, + 0x00f95df4974f280bULL, 0x003d8e5ca11aeb51ULL, + 0x00d4981eb5a70b26ULL, 0x000af9a4f6659f29ULL, + 0x004598c846faeb43ULL, 0x0049d9a183a47670ULL)}, + }}, {{ + {FIELD_LITERAL(0x000a72d23dcb3f1fULL, 0x00a3737f84011727ULL, + 0x00f870c0fbbf4a47ULL, 0x00a7aadd04b5c9caULL, + 0x000c7715c67bd072ULL, 0x00015a136afcd74eULL, + 0x0080d5caea499634ULL, 0x0026b448ec7514b7ULL)}, + {FIELD_LITERAL(0x00b60167d9e7d065ULL, 0x00e60ba0d07381e8ULL, + 0x003a4f17b725c2d4ULL, 0x006c19fe176b64faULL, + 0x003b57b31af86ccbULL, 0x0021047c286180fdULL, + 0x00bdc8fb00c6dbb6ULL, 0x00fe4a9f4bab4f3fULL)}, + {FIELD_LITERAL(0x0088ffc3a16111f7ULL, 0x009155e4245d0bc8ULL, + 0x00851d68220572d5ULL, 0x00557ace1e514d29ULL, + 0x0031d7c339d91022ULL, 0x00101d0ae2eaceeaULL, + 0x00246ab3f837b66aULL, 0x00d5216d381ff530ULL)}, + }}, {{ + {FIELD_LITERAL(0x0057e7ea35f36daeULL, 0x00f47d7ad15de22eULL, + 0x00d757ea4b105115ULL, 0x008311457d579d7eULL, + 0x00b49b75b1edd4ebULL, 0x0081c7ff742fd63aULL, + 0x00ddda3187433df6ULL, 0x00475727d55f9c66ULL)}, + {FIELD_LITERAL(0x00a6295218dc136aULL, 0x00563b3af0e9c012ULL, + 0x00d3753b0145db1bULL, 0x004550389c043dc1ULL, + 0x00ea94ae27401bdfULL, 0x002b0b949f2b7956ULL, + 0x00c63f780ad8e23cULL, 0x00e591c47d6bab15ULL)}, + {FIELD_LITERAL(0x00416c582b058eb6ULL, 0x004107da5b2cc695ULL, + 0x00b3cd2556aeec64ULL, 0x00c0b418267e57a1ULL, + 0x001799293579bd2eULL, 0x0046ed44590e4d07ULL, + 0x001d7459b3630a1eULL, 0x00c6afba8b6696aaULL)}, + }}, {{ + {FIELD_LITERAL(0x008d6009b26da3f8ULL, 0x00898e88ca06b1caULL, + 0x00edb22b2ed7fe62ULL, 0x00fbc93516aabe80ULL, + 0x008b4b470c42ce0dULL, 0x00e0032ba7d0dcbbULL, + 0x00d76da3a956ecc8ULL, 0x007f20fe74e3852aULL)}, + {FIELD_LITERAL(0x002419222c607674ULL, 0x00a7f23af89188b3ULL, + 0x00ad127284e73d1cULL, 0x008bba582fae1c51ULL, + 0x00fc6aa7ca9ecab1ULL, 0x003df5319eb6c2baULL, + 0x002a05af8a8b199aULL, 0x004bf8354558407cULL)}, + {FIELD_LITERAL(0x00ce7d4a30f0fcbfULL, 0x00d02c272629f03dULL, + 0x0048c001f7400bc2ULL, 0x002c21368011958dULL, + 0x0098a550391e96b5ULL, 0x002d80b66390f379ULL, + 0x001fa878760cc785ULL, 0x001adfce54b613d5ULL)}, + }}, {{ + {FIELD_LITERAL(0x001ed4dc71fa2523ULL, 0x005d0bff19bf9b5cULL, + 0x00c3801cee065a64ULL, 0x001ed0b504323fbfULL, + 0x0003ab9fdcbbc593ULL, 0x00df82070178b8d2ULL, + 0x00a2bcaa9c251f85ULL, 0x00c628a3674bd02eULL)}, + {FIELD_LITERAL(0x006b7a0674f9f8deULL, 0x00a742414e5c7cffULL, + 0x0041cbf3c6e13221ULL, 0x00e3a64fd207af24ULL, + 0x0087c05f15fbe8d1ULL, 0x004c50936d9e8a33ULL, + 0x001306ec21042b6dULL, 0x00a4f4137d1141c2ULL)}, + {FIELD_LITERAL(0x0009e6fb921568b0ULL, 0x00b3c60120219118ULL, + 0x002a6c3460dd503aULL, 0x009db1ef11654b54ULL, + 0x0063e4bf0be79601ULL, 0x00670d34bb2592b9ULL, + 0x00dcee2f6c4130ceULL, 0x00b2682e88e77f54ULL)}, + }}, {{ + {FIELD_LITERAL(0x000d5b4b3da135abULL, 0x00838f3e5064d81dULL, + 0x00d44eb50f6d94edULL, 0x0008931ab502ac6dULL, + 0x00debe01ca3d3586ULL, 0x0025c206775f0641ULL, + 0x005ad4b6ae912763ULL, 0x007e2c318ad8f247ULL)}, + {FIELD_LITERAL(0x00ddbe0750dd1addULL, 0x004b3c7b885844b8ULL, + 0x00363e7ecf12f1aeULL, 0x0062e953e6438f9dULL, + 0x0023cc73b076afe9ULL, 0x00b09fa083b4da32ULL, + 0x00c7c3d2456c541dULL, 0x005b591ec6b694d4ULL)}, + {FIELD_LITERAL(0x0028656e19d62fcfULL, 0x0052a4af03df148dULL, + 0x00122765ddd14e42ULL, 0x00f2252904f67157ULL, + 0x004741965b636f3aULL, 0x006441d296132cb9ULL, + 0x005e2106f956a5b7ULL, 0x00247029592d335cULL)}, + }}, {{ + {FIELD_LITERAL(0x003fe038eb92f894ULL, 0x000e6da1b72e8e32ULL, + 0x003a1411bfcbe0faULL, 0x00b55d473164a9e4ULL, + 0x00b9a775ac2df48dULL, 0x0002ddf350659e21ULL, + 0x00a279a69eb19cb3ULL, 0x00f844eab25cba44ULL)}, + {FIELD_LITERAL(0x00c41d1f9c1f1ac1ULL, 0x007b2df4e9f19146ULL, + 0x00b469355fd5ba7aULL, 0x00b5e1965afc852aULL, + 0x00388d5f1e2d8217ULL, 0x0022079e4c09ae93ULL, + 0x0014268acd4ef518ULL, 0x00c1dd8d9640464cULL)}, + {FIELD_LITERAL(0x0038526adeed0c55ULL, 0x00dd68c607e3fe85ULL, + 0x00f746ddd48a5d57ULL, 0x0042f2952b963b7cULL, + 0x001cbbd6876d5ec2ULL, 0x005e341470bca5c2ULL, + 0x00871d41e085f413ULL, 0x00e53ab098f45732ULL)}, + }}, {{ + {FIELD_LITERAL(0x004d51124797c831ULL, 0x008f5ae3750347adULL, + 0x0070ced94c1a0c8eULL, 0x00f6db2043898e64ULL, + 0x000d00c9a5750cd0ULL, 0x000741ec59bad712ULL, + 0x003c9d11aab37b7fULL, 0x00a67ba169807714ULL)}, + {FIELD_LITERAL(0x00adb2c1566e8b8fULL, 0x0096c68a35771a9aULL, + 0x00869933356f334aULL, 0x00ba9c93459f5962ULL, + 0x009ec73fb6e8ca4bULL, 0x003c3802c27202e1ULL, + 0x0031f5b733e0c008ULL, 0x00f9058c19611fa9ULL)}, + {FIELD_LITERAL(0x00238f01814a3421ULL, 0x00c325a44b6cce28ULL, + 0x002136f97aeb0e73ULL, 0x000cac8268a4afe2ULL, + 0x0022fd218da471b3ULL, 0x009dcd8dfff8def9ULL, + 0x00cb9f8181d999bbULL, 0x00143ae56edea349ULL)}, + }}, {{ + {FIELD_LITERAL(0x0000623bf87622c5ULL, 0x00a1966fdd069496ULL, + 0x00c315b7b812f9fcULL, 0x00bdf5efcd128b97ULL, + 0x001d464f532e3e16ULL, 0x003cd94f081bfd7eULL, + 0x00ed9dae12ce4009ULL, 0x002756f5736eee70ULL)}, + {FIELD_LITERAL(0x00a5187e6ee7341bULL, 0x00e6d52e82d83b6eULL, + 0x00df3c41323094a7ULL, 0x00b3324f444e9de9ULL, + 0x00689eb21a35bfe5ULL, 0x00f16363becd548dULL, + 0x00e187cc98e7f60fULL, 0x00127d9062f0ccabULL)}, + {FIELD_LITERAL(0x004ad71b31c29e40ULL, 0x00a5fcace12fae29ULL, + 0x004425b5597280edULL, 0x00e7ef5d716c3346ULL, + 0x0010b53ada410ac8ULL, 0x0092310226060c9bULL, + 0x0091c26128729c7eULL, 0x0088b42900f8ec3bULL)}, + }}, {{ + {FIELD_LITERAL(0x00f1e26e9762d4a8ULL, 0x00d9d74082183414ULL, + 0x00ffec9bd57a0282ULL, 0x000919e128fd497aULL, + 0x00ab7ae7d00fe5f8ULL, 0x0054dc442851ff68ULL, + 0x00c9ebeb3b861687ULL, 0x00507f7cab8b698fULL)}, + {FIELD_LITERAL(0x00c13c5aae3ae341ULL, 0x009c6c9ed98373e7ULL, + 0x00098f26864577a8ULL, 0x0015b886e9488b45ULL, + 0x0037692c42aadba5ULL, 0x00b83170b8e7791cULL, + 0x001670952ece1b44ULL, 0x00fd932a39276da2ULL)}, + {FIELD_LITERAL(0x0081a3259bef3398ULL, 0x005480fff416107bULL, + 0x00ce4f607d21be98ULL, 0x003ffc084b41df9bULL, + 0x0043d0bb100502d1ULL, 0x00ec35f575ba3261ULL, + 0x00ca18f677300ef3ULL, 0x00e8bb0a827d8548ULL)}, + }}, {{ + {FIELD_LITERAL(0x00df76b3328ada72ULL, 0x002e20621604a7c2ULL, + 0x00f910638a105b09ULL, 0x00ef4724d96ef2cdULL, + 0x00377d83d6b8a2f7ULL, 0x00b4f48805ade324ULL, + 0x001cd5da8b152018ULL, 0x0045af671a20ca7fULL)}, + {FIELD_LITERAL(0x009ae3b93a56c404ULL, 0x004a410b7a456699ULL, + 0x00023a619355e6b2ULL, 0x009cdc7297387257ULL, + 0x0055b94d4ae70d04ULL, 0x002cbd607f65b005ULL, + 0x003208b489697166ULL, 0x00ea2aa058867370ULL)}, + {FIELD_LITERAL(0x00f29d2598ee3f32ULL, 0x00b4ac5385d82adcULL, + 0x007633eaf04df19bULL, 0x00aa2d3d77ceab01ULL, + 0x004a2302fcbb778aULL, 0x00927f225d5afa34ULL, + 0x004a8e9d5047f237ULL, 0x008224ae9dbce530ULL)}, + }}, {{ + {FIELD_LITERAL(0x001cf640859b02f8ULL, 0x00758d1d5d5ce427ULL, + 0x00763c784ef4604cULL, 0x005fa81aee205270ULL, + 0x00ac537bfdfc44cbULL, 0x004b919bd342d670ULL, + 0x00238508d9bf4b7aULL, 0x00154888795644f3ULL)}, + {FIELD_LITERAL(0x00c845923c084294ULL, 0x00072419a201bc25ULL, + 0x0045f408b5f8e669ULL, 0x00e9d6a186b74dfeULL, + 0x00e19108c68fa075ULL, 0x0017b91d874177b7ULL, + 0x002f0ca2c7912c5aULL, 0x009400aa385a90a2ULL)}, + {FIELD_LITERAL(0x0071110b01482184ULL, 0x00cfed0044f2bef8ULL, + 0x0034f2901cf4662eULL, 0x003b4ae2a67f9834ULL, + 0x00cca9b96fe94810ULL, 0x00522507ae77abd0ULL, + 0x00bac7422721e73eULL, 0x0066622b0f3a62b0ULL)}, + }}, {{ + {FIELD_LITERAL(0x00f8ac5cf4705b6aULL, 0x00867d82dcb457e3ULL, + 0x007e13ab2ccc2ce9ULL, 0x009ee9a018d3930eULL, + 0x008370f8ecb42df8ULL, 0x002d9f019add263eULL, + 0x003302385b92d196ULL, 0x00a15654536e2c0cULL)}, + {FIELD_LITERAL(0x0026ef1614e160afULL, 0x00c023f9edfc9c76ULL, + 0x00cff090da5f57baULL, 0x0076db7a66643ae9ULL, + 0x0019462f8c646999ULL, 0x008fec00b3854b22ULL, + 0x00d55041692a0a1cULL, 0x0065db894215ca00ULL)}, + {FIELD_LITERAL(0x00a925036e0a451cULL, 0x002a0390c36b6cc1ULL, + 0x00f27020d90894f4ULL, 0x008d90d52cbd3d7fULL, + 0x00e1d0137392f3b8ULL, 0x00f017c158b51a8fULL, + 0x00cac313d3ed7dbcULL, 0x00b99a81e3eb42d3ULL)}, + }}, {{ + {FIELD_LITERAL(0x00b54850275fe626ULL, 0x0053a3fd1ec71140ULL, + 0x00e3d2d7dbe096faULL, 0x00e4ac7b595cce4cULL, + 0x0077bad449c0a494ULL, 0x00b7c98814afd5b3ULL, + 0x0057226f58486cf9ULL, 0x00b1557154f0cc57ULL)}, + {FIELD_LITERAL(0x008cc9cd236315c0ULL, 0x0031d9c5b39fda54ULL, + 0x00a5713ef37e1171ULL, 0x00293d5ae2886325ULL, + 0x00c4aba3e05015e1ULL, 0x0003f35ef78e4fc6ULL, + 0x0039d6bd3ac1527bULL, 0x0019d7c3afb77106ULL)}, + {FIELD_LITERAL(0x007b162931a985afULL, 0x00ad40a2e0daa713ULL, + 0x006df27c4009f118ULL, 0x00503e9f4e2e8becULL, + 0x00751a77c82c182dULL, 0x000298937769245bULL, + 0x00ffb1e8fabf9ee5ULL, 0x0008334706e09abeULL)}, + }}, {{ + {FIELD_LITERAL(0x00dbca4e98a7dcd9ULL, 0x00ee29cfc78bde99ULL, + 0x00e4a3b6995f52e9ULL, 0x0045d70189ae8096ULL, + 0x00fd2a8a3b9b0d1bULL, 0x00af1793b107d8e1ULL, + 0x00dbf92cbe4afa20ULL, 0x00da60f798e3681dULL)}, + {FIELD_LITERAL(0x004246bfcecc627aULL, 0x004ba431246c03a4ULL, + 0x00bd1d101872d497ULL, 0x003b73d3f185ee16ULL, + 0x001feb2e2678c0e3ULL, 0x00ff13c5a89dec76ULL, + 0x00ed06042e771d8fULL, 0x00a4fd2a897a83ddULL)}, + {FIELD_LITERAL(0x009a4a3be50d6597ULL, 0x00de3165fc5a1096ULL, + 0x004f3f56e345b0c7ULL, 0x00f7bf721d5ab8bcULL, + 0x004313e47b098c50ULL, 0x00e4c7d5c0e1adbbULL, + 0x002e3e3db365051eULL, 0x00a480c2cd6a96fbULL)}, + }}, {{ + {FIELD_LITERAL(0x00417fa30a7119edULL, 0x00af257758419751ULL, + 0x00d358a487b463d4ULL, 0x0089703cc720b00dULL, + 0x00ce56314ff7f271ULL, 0x0064db171ade62c1ULL, + 0x00640b36d4a22fedULL, 0x00424eb88696d23fULL)}, + {FIELD_LITERAL(0x004ede34af2813f3ULL, 0x00d4a8e11c9e8216ULL, + 0x004796d5041de8a5ULL, 0x00c4c6b4d21cc987ULL, + 0x00e8a433ee07fa1eULL, 0x0055720b5abcc5a1ULL, + 0x008873ea9c74b080ULL, 0x005b3fec1ab65d48ULL)}, + {FIELD_LITERAL(0x0047e5277db70ec5ULL, 0x000a096c66db7d6bULL, + 0x00b4164cc1730159ULL, 0x004a9f783fe720feULL, + 0x00a8177b94449dbcULL, 0x0095a24ff49a599fULL, + 0x0069c1c578250cbcULL, 0x00452019213debf4ULL)}, + }}, {{ + {FIELD_LITERAL(0x0021ce99e09ebda3ULL, 0x00fcbd9f91875ad0ULL, + 0x009bbf6b7b7a0b5fULL, 0x00388886a69b1940ULL, + 0x00926a56d0f81f12ULL, 0x00e12903c3358d46ULL, + 0x005dfce4e8e1ce9dULL, 0x0044cfa94e2f7e23ULL)}, + {FIELD_LITERAL(0x001bd59c09e982eaULL, 0x00f72daeb937b289ULL, + 0x0018b76dca908e0eULL, 0x00edb498512384adULL, + 0x00ce0243b6cc9538ULL, 0x00f96ff690cb4e70ULL, + 0x007c77bf9f673c8dULL, 0x005bf704c088a528ULL)}, + {FIELD_LITERAL(0x0093d4628dcb33beULL, 0x0095263d51d42582ULL, + 0x0049b3222458fe06ULL, 0x00e7fce73b653a7fULL, + 0x003ca2ebce60b369ULL, 0x00c5de239a32bea4ULL, + 0x0063b8b3d71fb6bfULL, 0x0039aeeb78a1a839ULL)}, + }}, {{ + {FIELD_LITERAL(0x007dc52da400336cULL, 0x001fded1e15b9457ULL, + 0x00902e00f5568e3aULL, 0x00219bef40456d2dULL, + 0x005684161fb3dbc9ULL, 0x004a4e9be49a76eaULL, + 0x006e685ae88b78ffULL, 0x0021c42f13042d3cULL)}, + {FIELD_LITERAL(0x00fb22bb5fd3ce50ULL, 0x0017b48aada7ae54ULL, + 0x00fd5c44ad19a536ULL, 0x000ccc4e4e55e45cULL, + 0x00fd637d45b4c3f5ULL, 0x0038914e023c37cfULL, + 0x00ac1881d6a8d898ULL, 0x00611ed8d3d943a8ULL)}, + {FIELD_LITERAL(0x0056e2259d113d2bULL, 0x00594819b284ec16ULL, + 0x00c7bf794bb36696ULL, 0x00721ee75097cdc6ULL, + 0x00f71be9047a2892ULL, 0x00df6ba142564edfULL, + 0x0069580b7a184e8dULL, 0x00f056e38fca0feeULL)}, + }}, {{ + {FIELD_LITERAL(0x009df98566a18c6dULL, 0x00cf3a200968f219ULL, + 0x0044ba60da6d9086ULL, 0x00dbc9c0e344da03ULL, + 0x000f9401c4466855ULL, 0x00d46a57c5b0a8d1ULL, + 0x00875a635d7ac7c6ULL, 0x00ef4a933b7e0ae6ULL)}, + {FIELD_LITERAL(0x005e8694077a1535ULL, 0x008bef75f71c8f1dULL, + 0x000a7c1316423511ULL, 0x00906e1d70604320ULL, + 0x003fc46c1a2ffbd6ULL, 0x00d1d5022e68f360ULL, + 0x002515fba37bbf46ULL, 0x00ca16234e023b44ULL)}, + {FIELD_LITERAL(0x00787c99561f4690ULL, 0x00a857a8c1561f27ULL, + 0x00a10df9223c09feULL, 0x00b98a9562e3b154ULL, + 0x004330b8744c3ed2ULL, 0x00e06812807ec5c4ULL, + 0x00e4cf6a7db9f1e3ULL, 0x00d95b089f132a34ULL)}, + }}, {{ + {FIELD_LITERAL(0x002922b39ca33eecULL, 0x0090d12a5f3ab194ULL, + 0x00ab60c02fb5f8edULL, 0x00188d292abba1cfULL, + 0x00e10edec9698f6eULL, 0x0069a4d9934133c8ULL, + 0x0024aac40e6d3d06ULL, 0x001702c2177661b0ULL)}, + {FIELD_LITERAL(0x00139078397030bdULL, 0x000e3c447e859a00ULL, + 0x0064a5b334c82393ULL, 0x00b8aabeb7358093ULL, + 0x00020778bb9ae73bULL, 0x0032ee94c7892a18ULL, + 0x008215253cb41bdaULL, 0x005e2797593517aeULL)}, + {FIELD_LITERAL(0x0083765a5f855d4aULL, 0x0051b6d1351b8ee2ULL, + 0x00116de548b0f7bbULL, 0x0087bd88703affa0ULL, + 0x0095b2cc34d7fdd2ULL, 0x0084cd81b53f0bc8ULL, + 0x008562fc995350edULL, 0x00a39abb193651e3ULL)}, + }}, {{ + {FIELD_LITERAL(0x0019e23f0474b114ULL, 0x00eb94c2ad3b437eULL, + 0x006ddb34683b75acULL, 0x00391f9209b564c6ULL, + 0x00083b3bb3bff7aaULL, 0x00eedcd0f6dceefcULL, + 0x00b50817f794fe01ULL, 0x0036474deaaa75c9ULL)}, + {FIELD_LITERAL(0x0091868594265aa2ULL, 0x00797accae98ca6dULL, + 0x0008d8c5f0f8a184ULL, 0x00d1f4f1c2b2fe6eULL, + 0x0036783dfb48a006ULL, 0x008c165120503527ULL, + 0x0025fd780058ce9bULL, 0x0068beb007be7d27ULL)}, + {FIELD_LITERAL(0x00d0ff88aa7c90c2ULL, 0x00b2c60dacf53394ULL, + 0x0094a7284d9666d6ULL, 0x00bed9022ce7a19dULL, + 0x00c51553f0cd7682ULL, 0x00c3fb870b124992ULL, + 0x008d0bc539956c9bULL, 0x00fc8cf258bb8885ULL)}, + }}, {{ + {FIELD_LITERAL(0x003667bf998406f8ULL, 0x0000115c43a12975ULL, + 0x001e662f3b20e8fdULL, 0x0019ffa534cb24ebULL, + 0x00016be0dc8efb45ULL, 0x00ff76a8b26243f5ULL, + 0x00ae20d241a541e3ULL, 0x0069bd6af13cd430ULL)}, + {FIELD_LITERAL(0x0045fdc16487cda3ULL, 0x00b2d8e844cf2ed7ULL, + 0x00612c50e88c1607ULL, 0x00a08aabc66c1672ULL, + 0x006031fdcbb24d97ULL, 0x001b639525744b93ULL, + 0x004409d62639ab17ULL, 0x00a1853d0347ab1dULL)}, + {FIELD_LITERAL(0x0075a1a56ebf5c21ULL, 0x00a3e72be9ac53edULL, + 0x00efcde1629170c2ULL, 0x0004225fe91ef535ULL, + 0x0088049fc73dfda7ULL, 0x004abc74857e1288ULL, + 0x0024e2434657317cULL, 0x00d98cb3d3e5543cULL)}, + }}, {{ + {FIELD_LITERAL(0x00b4b53eab6bdb19ULL, 0x009b22d8b43711d0ULL, + 0x00d948b9d961785dULL, 0x00cb167b6f279eadULL, + 0x00191de3a678e1c9ULL, 0x00d9dd9511095c2eULL, + 0x00f284324cd43067ULL, 0x00ed74fa535151ddULL)}, + {FIELD_LITERAL(0x007e32c049b5c477ULL, 0x009d2bfdbd9bcfd8ULL, + 0x00636e93045938c6ULL, 0x007fde4af7687298ULL, + 0x0046a5184fafa5d3ULL, 0x0079b1e7f13a359bULL, + 0x00875adf1fb927d6ULL, 0x00333e21c61bcad2ULL)}, + {FIELD_LITERAL(0x00048014f73d8b8dULL, 0x0075684aa0966388ULL, + 0x0092be7df06dc47cULL, 0x0097cebcd0f5568aULL, + 0x005a7004d9c4c6a9ULL, 0x00b0ecbb659924c7ULL, + 0x00d90332dd492a7cULL, 0x0057fc14df11493dULL)}, + }}, {{ + {FIELD_LITERAL(0x0008ed8ea0ad95beULL, 0x0041d324b9709645ULL, + 0x00e25412257a19b4ULL, 0x0058df9f3423d8d2ULL, + 0x00a9ab20def71304ULL, 0x009ae0dbf8ac4a81ULL, + 0x00c9565977e4392aULL, 0x003c9269444baf55ULL)}, + {FIELD_LITERAL(0x007df6cbb926830bULL, 0x00d336058ae37865ULL, + 0x007af47dac696423ULL, 0x0048d3011ec64ac8ULL, + 0x006b87666e40049fULL, 0x0036a2e0e51303d7ULL, + 0x00ba319bd79dbc55ULL, 0x003e2737ecc94f53ULL)}, + {FIELD_LITERAL(0x00d296ff726272d9ULL, 0x00f6d097928fcf57ULL, + 0x00e0e616a55d7013ULL, 0x00deaf454ed9eac7ULL, + 0x0073a56bedef4d92ULL, 0x006ccfdf6fc92e19ULL, + 0x009d1ee1371a7218ULL, 0x00ee3c2ee4462d80ULL)}, + }}, {{ + {FIELD_LITERAL(0x00437bce9bccdf9dULL, 0x00e0c8e2f85dc0a3ULL, + 0x00c91a7073995a19ULL, 0x00856ec9fe294559ULL, + 0x009e4b33394b156eULL, 0x00e245b0dc497e5cULL, + 0x006a54e687eeaeffULL, 0x00f1cd1cd00fdb7cULL)}, + {FIELD_LITERAL(0x008132ae5c5d8cd1ULL, 0x00121d68324a1d9fULL, + 0x00d6be9dafcb8c76ULL, 0x00684d9070edf745ULL, + 0x00519fbc96d7448eULL, 0x00388182fdc1f27eULL, + 0x000235baed41f158ULL, 0x00bf6cf6f1a1796aULL)}, + {FIELD_LITERAL(0x002adc4b4d148219ULL, 0x003084ada0d3a90aULL, + 0x0046de8aab0f2e4eULL, 0x00452d342a67b5fdULL, + 0x00d4b50f01d4de21ULL, 0x00db6d9fc0cefb79ULL, + 0x008c184c86a462cdULL, 0x00e17c83764d42daULL)}, + }}, {{ + {FIELD_LITERAL(0x007b2743b9a1e01aULL, 0x007847ffd42688c4ULL, + 0x006c7844d610a316ULL, 0x00f0cb8b250aa4b0ULL, + 0x00a19060143b3ae6ULL, 0x0014eb10b77cfd80ULL, + 0x000170905729dd06ULL, 0x00063b5b9cd72477ULL)}, + {FIELD_LITERAL(0x00ce382dc7993d92ULL, 0x00021153e938b4c8ULL, + 0x00096f7567f48f51ULL, 0x0058f81ddfe4b0d5ULL, + 0x00cc379a56b355c7ULL, 0x002c760770d3e819ULL, + 0x00ee22d1d26e5a40ULL, 0x00de6d93d5b082d7ULL)}, + {FIELD_LITERAL(0x000a91a42c52e056ULL, 0x00185f6b77fce7eaULL, + 0x000803c51962f6b5ULL, 0x0022528582ba563dULL, + 0x0043f8040e9856d6ULL, 0x0085a29ec81fb860ULL, + 0x005f9a611549f5ffULL, 0x00c1f974ecbd4b06ULL)}, + }}, {{ + {FIELD_LITERAL(0x005b64c6fd65ec97ULL, 0x00c1fdd7f877bc7fULL, + 0x000d9cc6c89f841cULL, 0x005c97b7f1aff9adULL, + 0x0075e3c61475d47eULL, 0x001ecb1ba8153011ULL, + 0x00fe7f1c8d71d40dULL, 0x003fa9757a229832ULL)}, + {FIELD_LITERAL(0x00ffc5c89d2b0cbaULL, 0x00d363d42e3e6fc3ULL, + 0x0019a1a0118e2e8aULL, 0x00f7baeff48882e1ULL, + 0x001bd5af28c6b514ULL, 0x0055476ca2253cb2ULL, + 0x00d8eb1977e2ddf3ULL, 0x00b173b1adb228a1ULL)}, + {FIELD_LITERAL(0x00f2cb99dd0ad707ULL, 0x00e1e08b6859ddd8ULL, + 0x000008f2d0650bccULL, 0x00d7ed392f8615c3ULL, + 0x00976750a94da27fULL, 0x003e83bb0ecb69baULL, + 0x00df8e8d15c14ac6ULL, 0x00f9f7174295d9c2ULL)}, + }}, {{ + {FIELD_LITERAL(0x00f11cc8e0e70bcbULL, 0x00e5dc689974e7ddULL, + 0x0014e409f9ee5870ULL, 0x00826e6689acbd63ULL, + 0x008a6f4e3d895d88ULL, 0x00b26a8da41fd4adULL, + 0x000fb7723f83efd7ULL, 0x009c749db0a5f6c3ULL)}, + {FIELD_LITERAL(0x002389319450f9baULL, 0x003677f31aa1250aULL, + 0x0092c3db642f38cbULL, 0x00f8b64c0dfc9773ULL, + 0x00cd49fe3505b795ULL, 0x0068105a4090a510ULL, + 0x00df0ba2072a8bb6ULL, 0x00eb396143afd8beULL)}, + {FIELD_LITERAL(0x00a0d4ecfb24cdffULL, 0x00ddaf8008ba6479ULL, + 0x00f0b3e36d4b0f44ULL, 0x003734bd3af1f146ULL, + 0x00b87e2efc75527eULL, 0x00d230df55ddab50ULL, + 0x002613257ae56c1dULL, 0x00bc0946d135934dULL)}, + }}, {{ + {FIELD_LITERAL(0x00468711bd994651ULL, 0x0033108fa67561bfULL, + 0x0089d760192a54b4ULL, 0x00adc433de9f1871ULL, + 0x000467d05f36e050ULL, 0x007847e0f0579f7fULL, + 0x00a2314ad320052dULL, 0x00b3a93649f0b243ULL)}, + {FIELD_LITERAL(0x0067f8f0c4fe26c9ULL, 0x0079c4a3cc8f67b9ULL, + 0x0082b1e62f23550dULL, 0x00f2d409caefd7f5ULL, + 0x0080e67dcdb26e81ULL, 0x0087ae993ea1f98aULL, + 0x00aa108becf61d03ULL, 0x001acf11efb608a3ULL)}, + {FIELD_LITERAL(0x008225febbab50d9ULL, 0x00f3b605e4dd2083ULL, + 0x00a32b28189e23d2ULL, 0x00d507e5e5eb4c97ULL, + 0x005a1a84e302821fULL, 0x0006f54c1c5f08c7ULL, + 0x00a347c8cb2843f0ULL, 0x0009f73e9544bfa5ULL)}, + }}, {{ + {FIELD_LITERAL(0x006c59c9ae744185ULL, 0x009fc32f1b4282cdULL, + 0x004d6348ca59b1acULL, 0x00105376881be067ULL, + 0x00af4096013147dcULL, 0x004abfb5a5cb3124ULL, + 0x000d2a7f8626c354ULL, 0x009c6ed568e07431ULL)}, + {FIELD_LITERAL(0x00e828333c297f8bULL, 0x009ef3cf8c3f7e1fULL, + 0x00ab45f8fff31cb9ULL, 0x00c8b4178cb0b013ULL, + 0x00d0c50dd3260a3fULL, 0x0097126ac257f5bcULL, + 0x0042376cc90c705aULL, 0x001d96fdb4a1071eULL)}, + {FIELD_LITERAL(0x00542d44d89ee1a8ULL, 0x00306642e0442d98ULL, + 0x0090853872b87338ULL, 0x002362cbf22dc044ULL, + 0x002c222adff663b8ULL, 0x0067c924495fcb79ULL, + 0x000e621d983c977cULL, 0x00df77a9eccb66fbULL)}, + }}, {{ + {FIELD_LITERAL(0x002809e4bbf1814aULL, 0x00b9e854f9fafb32ULL, + 0x00d35e67c10f7a67ULL, 0x008f1bcb76e748cfULL, + 0x004224d9515687d2ULL, 0x005ba0b774e620c4ULL, + 0x00b5e57db5d54119ULL, 0x00e15babe5683282ULL)}, + {FIELD_LITERAL(0x00832d02369b482cULL, 0x00cba52ff0d93450ULL, + 0x003fa9c908d554dbULL, 0x008d1e357b54122fULL, + 0x00abd91c2dc950c6ULL, 0x007eff1df4c0ec69ULL, + 0x003f6aeb13fb2d31ULL, 0x00002d6179fc5b2cULL)}, + {FIELD_LITERAL(0x0046c9eda81c9c89ULL, 0x00b60cb71c8f62fcULL, + 0x0022f5a683baa558ULL, 0x00f87319fccdf997ULL, + 0x009ca09b51ce6a22ULL, 0x005b12baf4af7d77ULL, + 0x008a46524a1e33e2ULL, 0x00035a77e988be0dULL)}, + }}, {{ + {FIELD_LITERAL(0x00a7efe46a7dbe2fULL, 0x002f66fd55014fe7ULL, + 0x006a428afa1ff026ULL, 0x0056caaa9604ab72ULL, + 0x0033f3bcd7fac8aeULL, 0x00ccb1aa01c86764ULL, + 0x00158d1edf13bf40ULL, 0x009848ee76fcf3b4ULL)}, + {FIELD_LITERAL(0x00a9e7730a819691ULL, 0x00d9cc73c4992b70ULL, + 0x00e299bde067de5aULL, 0x008c314eb705192aULL, + 0x00e7226f17e8a3ccULL, 0x0029dfd956e65a47ULL, + 0x0053a8e839073b12ULL, 0x006f942b2ab1597eULL)}, + {FIELD_LITERAL(0x001c3d780ecd5e39ULL, 0x0094f247fbdcc5feULL, + 0x00d5c786fd527764ULL, 0x00b6f4da74f0db2aULL, + 0x0080f1f8badcd5fcULL, 0x00f36a373ad2e23bULL, + 0x00f804f9f4343bf2ULL, 0x00d1af40ec623982ULL)}, + }}, {{ + {FIELD_LITERAL(0x0082aeace5f1b144ULL, 0x00f68b3108cf4dd3ULL, + 0x00634af01dde3020ULL, 0x000beab5df5c2355ULL, + 0x00e8b790d1b49b0bULL, 0x00e48d15854e36f4ULL, + 0x0040ab2d95f3db9fULL, 0x002711c4ed9e899aULL)}, + {FIELD_LITERAL(0x0039343746531ebeULL, 0x00c8509d835d429dULL, + 0x00e79eceff6b0018ULL, 0x004abfd31e8efce5ULL, + 0x007bbfaaa1e20210ULL, 0x00e3be89c193e179ULL, + 0x001c420f4c31d585ULL, 0x00f414a315bef5aeULL)}, + {FIELD_LITERAL(0x007c296a24990df8ULL, 0x00d5d07525a75588ULL, + 0x00dd8e113e94b7e7ULL, 0x007bbc58febe0cc8ULL, + 0x0029f51af9bfcad3ULL, 0x007e9311ec7ab6f3ULL, + 0x009a884de1676343ULL, 0x0050d5f2dce84be9ULL)}, + }}, {{ + {FIELD_LITERAL(0x005fa020cca2450aULL, 0x00491c29db6416d8ULL, + 0x0037cefe3f9f9a85ULL, 0x003d405230647066ULL, + 0x0049e835f0fdbe89ULL, 0x00feb78ac1a0815cULL, + 0x00828e4b32dc9724ULL, 0x00db84f2dc8d6fd4ULL)}, + {FIELD_LITERAL(0x0098cddc8b39549aULL, 0x006da37e3b05d22cULL, + 0x00ce633cfd4eb3cbULL, 0x00fda288ef526acdULL, + 0x0025338878c5d30aULL, 0x00f34438c4e5a1b4ULL, + 0x00584efea7c310f1ULL, 0x0041a551f1b660adULL)}, + {FIELD_LITERAL(0x00d7f7a8fbd6437aULL, 0x0062872413bf3753ULL, + 0x00ad4bbcb43c584bULL, 0x007fe49be601d7e3ULL, + 0x0077c659789babf4ULL, 0x00eb45fcb06a741bULL, + 0x005ce244913f9708ULL, 0x0088426401736326ULL)}, + }}, {{ + {FIELD_LITERAL(0x007bf562ca768d7cULL, 0x006c1f3a174e387cULL, + 0x00f024b447fee939ULL, 0x007e7af75f01143fULL, + 0x003adb70b4eed89dULL, 0x00e43544021ad79aULL, + 0x0091f7f7042011f6ULL, 0x0093c1a1ee3a0ddcULL)}, + {FIELD_LITERAL(0x00a0b68ec1eb72d2ULL, 0x002c03235c0d45a0ULL, + 0x00553627323fe8c5ULL, 0x006186e94b17af94ULL, + 0x00a9906196e29f14ULL, 0x0025b3aee6567733ULL, + 0x007e0dd840080517ULL, 0x0018eb5801a4ba93ULL)}, + {FIELD_LITERAL(0x00d7fe7017bf6a40ULL, 0x006e3f0624be0c42ULL, + 0x00ffbba205358245ULL, 0x00f9fc2cf8194239ULL, + 0x008d93b37bf15b4eULL, 0x006ddf2e38be8e95ULL, + 0x002b6e79bf5fcff9ULL, 0x00ab355da425e2deULL)}, + }}, {{ + {FIELD_LITERAL(0x00938f97e20be973ULL, 0x0099141a36aaf306ULL, + 0x0057b0ca29e545a1ULL, 0x0085db571f9fbc13ULL, + 0x008b333c554b4693ULL, 0x0043ab6ef3e241cbULL, + 0x0054fb20aa1e5c70ULL, 0x00be0ff852760adfULL)}, + {FIELD_LITERAL(0x003973d8938971d6ULL, 0x002aca26fa80c1f5ULL, + 0x00108af1faa6b513ULL, 0x00daae275d7924e6ULL, + 0x0053634ced721308ULL, 0x00d2355fe0bbd443ULL, + 0x00357612b2d22095ULL, 0x00f9bb9dd4136cf3ULL)}, + {FIELD_LITERAL(0x002bff12cf5e03a5ULL, 0x001bdb1fa8a19cf8ULL, + 0x00c91c6793f84d39ULL, 0x00f869f1b2eba9afULL, + 0x0059bc547dc3236bULL, 0x00d91611d6d38689ULL, + 0x00e062daaa2c0214ULL, 0x00ed3c047cc2bc82ULL)}, + }}, {{ + {FIELD_LITERAL(0x000050d70c32b31aULL, 0x001939d576d437b3ULL, + 0x00d709e598bf9fe6ULL, 0x00a885b34bd2ee9eULL, + 0x00dd4b5c08ab1a50ULL, 0x0091bebd50b55639ULL, + 0x00cf79ff64acdbc6ULL, 0x006067a39d826336ULL)}, + {FIELD_LITERAL(0x0062dd0fb31be374ULL, 0x00fcc96b84c8e727ULL, + 0x003f64f1375e6ae3ULL, 0x0057d9b6dd1af004ULL, + 0x00d6a167b1103c7bULL, 0x00dd28f3180fb537ULL, + 0x004ff27ad7167128ULL, 0x008934c33461f2acULL)}, + {FIELD_LITERAL(0x0065b472b7900043ULL, 0x00ba7efd2ff1064bULL, + 0x000b67d6c4c3020fULL, 0x0012d28469f4e46dULL, + 0x0031c32939703ec7ULL, 0x00b49f0bce133066ULL, + 0x00f7e10416181d47ULL, 0x005c90f51867eeccULL)}, + }}, {{ + {FIELD_LITERAL(0x0051207abd179101ULL, 0x00fc2a5c20d9c5daULL, + 0x00fb9d5f2701b6dfULL, 0x002dd040fdea82b8ULL, + 0x00f163b0738442ffULL, 0x00d9736bd68855b8ULL, + 0x00e0d8e93005e61cULL, 0x00df5a40b3988570ULL)}, + {FIELD_LITERAL(0x0006918f5dfce6dcULL, 0x00d4bf1c793c57fbULL, + 0x0069a3f649435364ULL, 0x00e89a50e5b0cd6eULL, + 0x00b9f6a237e973afULL, 0x006d4ed8b104e41dULL, + 0x00498946a3924cd2ULL, 0x00c136ec5ac9d4f7ULL)}, + {FIELD_LITERAL(0x0011a9c290ac5336ULL, 0x002b9a2d4a6a6533ULL, + 0x009a8a68c445d937ULL, 0x00361b27b07e5e5cULL, + 0x003c043b1755b974ULL, 0x00b7eb66cf1155eeULL, + 0x0077af5909eefff2ULL, 0x0098f609877cc806ULL)}, + }}, {{ + {FIELD_LITERAL(0x00ab13af436bf8f4ULL, 0x000bcf0a0dac8574ULL, + 0x00d50c864f705045ULL, 0x00c40e611debc842ULL, + 0x0085010489bd5caaULL, 0x007c5050acec026fULL, + 0x00f67d943c8da6d1ULL, 0x00de1da0278074c6ULL)}, + {FIELD_LITERAL(0x00b373076597455fULL, 0x00e83f1af53ac0f5ULL, + 0x0041f63c01dc6840ULL, 0x0097dea19b0c6f4bULL, + 0x007f9d63b4c1572cULL, 0x00e692d492d0f5f0ULL, + 0x00cbcb392e83b4adULL, 0x0069c0f39ed9b1a8ULL)}, + {FIELD_LITERAL(0x00861030012707c9ULL, 0x009fbbdc7fd4aafbULL, + 0x008f591d6b554822ULL, 0x00df08a41ea18adeULL, + 0x009d7d83e642abeaULL, 0x0098c71bda3b78ffULL, + 0x0022c89e7021f005ULL, 0x0044d29a3fe1e3c4ULL)}, + }}, {{ + {FIELD_LITERAL(0x00e748cd7b5c52f2ULL, 0x00ea9df883f89cc3ULL, + 0x0018970df156b6c7ULL, 0x00c5a46c2a33a847ULL, + 0x00cbde395e32aa09ULL, 0x0072474ebb423140ULL, + 0x00fb00053086a23dULL, 0x001dafcfe22d4e1fULL)}, + {FIELD_LITERAL(0x00c903ee6d825540ULL, 0x00add6c4cf98473eULL, + 0x007636efed4227f1ULL, 0x00905124ae55e772ULL, + 0x00e6b38fab12ed53ULL, 0x0045e132b863fe55ULL, + 0x003974662edb366aULL, 0x00b1787052be8208ULL)}, + {FIELD_LITERAL(0x00a614b00d775c7cULL, 0x00d7c78941cc7754ULL, + 0x00422dd68b5dabc4ULL, 0x00a6110f0167d28bULL, + 0x00685a309c252886ULL, 0x00b439ffd5143660ULL, + 0x003656e29ee7396fULL, 0x00c7c9b9ed5ad854ULL)}, + }}, {{ + {FIELD_LITERAL(0x0040f7e7c5b37bf2ULL, 0x0064e4dc81181bbaULL, + 0x00a8767ae2a366b6ULL, 0x001496b4f90546f2ULL, + 0x002a28493f860441ULL, 0x0021f59513049a3aULL, + 0x00852d369a8b7ee3ULL, 0x00dd2e7d8b7d30a9ULL)}, + {FIELD_LITERAL(0x00006e34a35d9fbcULL, 0x00eee4e48b2f019aULL, + 0x006b344743003a5fULL, 0x00541d514f04a7e3ULL, + 0x00e81f9ee7647455ULL, 0x005e2b916c438f81ULL, + 0x00116f8137b7eff0ULL, 0x009bd3decc7039d1ULL)}, + {FIELD_LITERAL(0x0005d226f434110dULL, 0x00af8288b8ef21d5ULL, + 0x004a7a52ef181c8cULL, 0x00be0b781b4b06deULL, + 0x00e6e3627ded07e1ULL, 0x00e43aa342272b8bULL, + 0x00e86ab424577d84ULL, 0x00fb292c566e35bbULL)}, + }}, {{ + {FIELD_LITERAL(0x00334f5303ea1222ULL, 0x00dfb3dbeb0a5d3eULL, + 0x002940d9592335c1ULL, 0x00706a7a63e8938aULL, + 0x005a533558bc4cafULL, 0x00558e33192022a9ULL, + 0x00970d9faf74c133ULL, 0x002979fcb63493caULL)}, + {FIELD_LITERAL(0x00e38abece3c82abULL, 0x005a51f18a2c7a86ULL, + 0x009dafa2e86d592eULL, 0x00495a62eb688678ULL, + 0x00b79df74c0eb212ULL, 0x0023e8cc78b75982ULL, + 0x005998cb91075e13ULL, 0x00735aa9ba61bc76ULL)}, + {FIELD_LITERAL(0x00d9f7a82ddbe628ULL, 0x00a1fc782889ae0fULL, + 0x0071ffda12d14b66ULL, 0x0037cf4eca7fb3d5ULL, + 0x00c80bc242c58808ULL, 0x0075bf8c2d08c863ULL, + 0x008d41f31afc52a7ULL, 0x00197962ecf38741ULL)}, + }}, {{ + {FIELD_LITERAL(0x006e9f475cccf2eeULL, 0x00454b9cd506430cULL, + 0x00224a4fb79ee479ULL, 0x0062e3347ef0b5e2ULL, + 0x0034fd2a3512232aULL, 0x00b8b3cb0f457046ULL, + 0x00eb20165daa38ecULL, 0x00128eebc2d9c0f7ULL)}, + {FIELD_LITERAL(0x00bfc5fa1e4ea21fULL, 0x00c21d7b6bb892e6ULL, + 0x00cf043f3acf0291ULL, 0x00c13f2f849b3c90ULL, + 0x00d1a97ebef10891ULL, 0x0061e130a445e7feULL, + 0x0019513fdedbf22bULL, 0x001d60c813bff841ULL)}, + {FIELD_LITERAL(0x0019561c7fcf0213ULL, 0x00e3dca6843ebd77ULL, + 0x0068ea95b9ca920eULL, 0x009bdfb70f253595ULL, + 0x00c68f59186aa02aULL, 0x005aee1cca1c3039ULL, + 0x00ab79a8a937a1ceULL, 0x00b9a0e549959e6fULL)}, + }}, {{ + {FIELD_LITERAL(0x00c79e0b6d97dfbdULL, 0x00917c71fd2bc6e8ULL, + 0x00db7529ccfb63d8ULL, 0x00be5be957f17866ULL, + 0x00a9e11fdc2cdac1ULL, 0x007b91a8e1f44443ULL, + 0x00a3065e4057d80fULL, 0x004825f5b8d5f6d4ULL)}, + {FIELD_LITERAL(0x003e4964fa8a8fc8ULL, 0x00f6a1cdbcf41689ULL, + 0x00943cb18fe7fda7ULL, 0x00606dafbf34440aULL, + 0x005d37a86399c789ULL, 0x00e79a2a69417403ULL, + 0x00fe34f7e68b8866ULL, 0x0011f448ed2df10eULL)}, + {FIELD_LITERAL(0x00f1f57efcc1fcc4ULL, 0x00513679117de154ULL, + 0x002e5b5b7c86d8c3ULL, 0x009f6486561f9cfbULL, + 0x00169e74b0170cf7ULL, 0x00900205af4af696ULL, + 0x006acfddb77853f3ULL, 0x00df184c90f31068ULL)}, + }}, {{ + {FIELD_LITERAL(0x00b37396c3320791ULL, 0x00fc7b67175c5783ULL, + 0x00c36d2cd73ecc38ULL, 0x0080ebcc0b328fc5ULL, + 0x0043a5b22b35d35dULL, 0x00466c9f1713c9daULL, + 0x0026ad346dcaa8daULL, 0x007c684e701183a6ULL)}, + {FIELD_LITERAL(0x00fd579ffb691713ULL, 0x00b76af4f81c412dULL, + 0x00f239de96110f82ULL, 0x00e965fb437f0306ULL, + 0x00ca7e9436900921ULL, 0x00e487f1325fa24aULL, + 0x00633907de476380ULL, 0x00721c62ac5b8ea0ULL)}, + {FIELD_LITERAL(0x00c0d54e542eb4f9ULL, 0x004ed657171c8dcfULL, + 0x00b743a4f7c2a39bULL, 0x00fd9f93ed6cc567ULL, + 0x00307fae3113e58bULL, 0x0058aa577c93c319ULL, + 0x00d254556f35b346ULL, 0x00491aada2203f0dULL)}, + }}, {{ + {FIELD_LITERAL(0x00dff3103786ff34ULL, 0x000144553b1f20c3ULL, + 0x0095613baeb930e4ULL, 0x00098058275ea5d4ULL, + 0x007cd1402b046756ULL, 0x0074d74e4d58aee3ULL, + 0x005f93fc343ff69bULL, 0x00873df17296b3b0ULL)}, + {FIELD_LITERAL(0x00c4a1fb48635413ULL, 0x00b5dd54423ad59fULL, + 0x009ff5d53fd24a88ULL, 0x003c98d267fc06a7ULL, + 0x002db7cb20013641ULL, 0x00bd1d6716e191f2ULL, + 0x006dbc8b29094241ULL, 0x0044bbf233dafa2cULL)}, + {FIELD_LITERAL(0x0055838d41f531e6ULL, 0x00bf6a2dd03c81b2ULL, + 0x005827a061c4839eULL, 0x0000de2cbb36aac3ULL, + 0x002efa29d9717478ULL, 0x00f9e928cc8a77baULL, + 0x00c134b458def9efULL, 0x00958a182223fc48ULL)}, + }}, {{ + {FIELD_LITERAL(0x000a9ee23c06881fULL, 0x002c727d3d871945ULL, + 0x00f47d971512d24aULL, 0x00671e816f9ef31aULL, + 0x00883af2cfaad673ULL, 0x00601f98583d6c9aULL, + 0x00b435f5adc79655ULL, 0x00ad87b71c04bff2ULL)}, + {FIELD_LITERAL(0x007860d99db787cfULL, 0x00fda8983018f4a8ULL, + 0x008c8866bac4743cULL, 0x00ef471f84c82a3fULL, + 0x00abea5976d3b8e7ULL, 0x00714882896cd015ULL, + 0x00b49fae584ddac5ULL, 0x008e33a1a0b69c81ULL)}, + {FIELD_LITERAL(0x007b6ee2c9e8a9ecULL, 0x002455dbbd89d622ULL, + 0x006490cf4eaab038ULL, 0x00d925f6c3081561ULL, + 0x00153b3047de7382ULL, 0x003b421f8bdceb6fULL, + 0x00761a4a5049da78ULL, 0x00980348c5202433ULL)}, + }}, {{ + {FIELD_LITERAL(0x007f8a43da97dd5cULL, 0x00058539c800fc7bULL, + 0x0040f3cf5a28414aULL, 0x00d68dd0d95283d6ULL, + 0x004adce9da90146eULL, 0x00befa41c7d4f908ULL, + 0x007603bc2e3c3060ULL, 0x00bdf360ab3545dbULL)}, + {FIELD_LITERAL(0x00eebfd4e2312cc3ULL, 0x00474b2564e4fc8cULL, + 0x003303ef14b1da9bULL, 0x003c93e0e66beb1dULL, + 0x0013619b0566925aULL, 0x008817c24d901bf3ULL, + 0x00b62bd8898d218bULL, 0x0075a7716f1e88a2ULL)}, + {FIELD_LITERAL(0x0009218da1e6890fULL, 0x0026907f5fd02575ULL, + 0x004dabed5f19d605ULL, 0x003abf181870249dULL, + 0x00b52fd048cc92c4ULL, 0x00b6dd51e415a5c5ULL, + 0x00d9eb82bd2b4014ULL, 0x002c865a43b46b43ULL)}, + }}, {{ + {FIELD_LITERAL(0x0070047189452f4cULL, 0x00f7ad12e1ce78d5ULL, + 0x00af1ba51ec44a8bULL, 0x005f39f63e667cd6ULL, + 0x00058eac4648425eULL, 0x00d7fdab42bea03bULL, + 0x0028576a5688de15ULL, 0x00af973209e77c10ULL)}, + {FIELD_LITERAL(0x00c338b915d8fef0ULL, 0x00a893292045c39aULL, + 0x0028ab4f2eba6887ULL, 0x0060743cb519fd61ULL, + 0x0006213964093ac0ULL, 0x007c0b7a43f6266dULL, + 0x008e3557c4fa5bdaULL, 0x002da976de7b8d9dULL)}, + {FIELD_LITERAL(0x0048729f8a8b6dcdULL, 0x00fe23b85cc4d323ULL, + 0x00e7384d16e4db0eULL, 0x004a423970678942ULL, + 0x00ec0b763345d4baULL, 0x00c477b9f99ed721ULL, + 0x00c29dad3777b230ULL, 0x001c517b466f7df6ULL)}, + }}, {{ + {FIELD_LITERAL(0x006366c380f7b574ULL, 0x001c7d1f09ff0438ULL, + 0x003e20a7301f5b22ULL, 0x00d3efb1916d28f6ULL, + 0x0049f4f81060ce83ULL, 0x00c69d91ea43ced1ULL, + 0x002b6f3e5cd269edULL, 0x005b0fb22ce9ec65ULL)}, + {FIELD_LITERAL(0x00aa2261022d883fULL, 0x00ebcca4548010acULL, + 0x002528512e28a437ULL, 0x0070ca7676b66082ULL, + 0x0084bda170f7c6d3ULL, 0x00581b4747c9b8bbULL, + 0x005c96a01061c7e2ULL, 0x00fb7c4a362b5273ULL)}, + {FIELD_LITERAL(0x00c30020eb512d02ULL, 0x0060f288283a4d26ULL, + 0x00b7ed13becde260ULL, 0x0075ebb74220f6e9ULL, + 0x00701079fcfe8a1fULL, 0x001c28fcdff58938ULL, + 0x002e4544b8f4df6bULL, 0x0060c5bc4f1a7d73ULL)}, + }}, {{ + {FIELD_LITERAL(0x00ae307cf069f701ULL, 0x005859f222dd618bULL, + 0x00212d6c46ec0b0dULL, 0x00a0fe4642afb62dULL, + 0x00420d8e4a0a8903ULL, 0x00a80ff639bdf7b0ULL, + 0x0019bee1490b5d8eULL, 0x007439e4b9c27a86ULL)}, + {FIELD_LITERAL(0x00a94700032a093fULL, 0x0076e96c225216e7ULL, + 0x00a63a4316e45f91ULL, 0x007d8bbb4645d3b2ULL, + 0x00340a6ff22793ebULL, 0x006f935d4572aeb7ULL, + 0x00b1fb69f00afa28ULL, 0x009e8f3423161ed3ULL)}, + {FIELD_LITERAL(0x009ef49c6b5ced17ULL, 0x00a555e6269e9f0aULL, + 0x007e6f1d79ec73b5ULL, 0x009ac78695a32ac4ULL, + 0x0001d77fbbcd5682ULL, 0x008cea1fee0aaeedULL, + 0x00f42bea82a53462ULL, 0x002e46ab96cafcc9ULL)}, + }}, {{ + {FIELD_LITERAL(0x0051cfcc5885377aULL, 0x00dce566cb1803caULL, + 0x00430c7643f2c7d4ULL, 0x00dce1a1337bdcc0ULL, + 0x0010d5bd7283c128ULL, 0x003b1b547f9b46feULL, + 0x000f245e37e770abULL, 0x007b72511f022b37ULL)}, + {FIELD_LITERAL(0x0060db815bc4786cULL, 0x006fab25beedc434ULL, + 0x00c610d06084797cULL, 0x000c48f08537bec0ULL, + 0x0031aba51c5b93daULL, 0x007968fa6e01f347ULL, + 0x0030070da52840c6ULL, 0x00c043c225a4837fULL)}, + {FIELD_LITERAL(0x001bcfd00649ee93ULL, 0x006dceb47e2a0fd5ULL, + 0x00f2cebda0cf8fd0ULL, 0x00b6b9d9d1fbdec3ULL, + 0x00815262e6490611ULL, 0x00ef7f5ce3176760ULL, + 0x00e49cd0c998d58bULL, 0x005fc6cc269ba57cULL)}, + }}, {{ + {FIELD_LITERAL(0x008940211aa0d633ULL, 0x00addae28136571dULL, + 0x00d68fdbba20d673ULL, 0x003bc6129bc9e21aULL, + 0x000346cf184ebe9aULL, 0x0068774d741ebc7fULL, + 0x0019d5e9e6966557ULL, 0x0003cbd7f981b651ULL)}, + {FIELD_LITERAL(0x004a2902926f8d3fULL, 0x00ad79b42637ab75ULL, + 0x0088f60b90f2d4e8ULL, 0x0030f54ef0e398c4ULL, + 0x00021dc9bf99681eULL, 0x007ebf66fde74ee3ULL, + 0x004ade654386e9a4ULL, 0x00e7485066be4c27ULL)}, + {FIELD_LITERAL(0x00445f1263983be0ULL, 0x004cf371dda45e6aULL, + 0x00744a89d5a310e7ULL, 0x001f20ce4f904833ULL, + 0x00e746edebe66e29ULL, 0x000912ab1f6c153dULL, + 0x00f61d77d9b2444cULL, 0x0001499cd6647610ULL)}, }} } }; @@ -343,133 +1063,421 @@ const struct curve448_precomputed_s *curve448_precomputed_base static const niels_t curve448_wnaf_base_table[32] = { {{ - {FIELD_LITERAL(0x00303cda6feea532,0x00860f1d5a3850e4,0x00226b9fa4728ccd,0x00e822938a0a0c0c,0x00263a61c9ea9216,0x001204029321b828,0x006a468360983c65,0x0002846f0a782143)}, - {FIELD_LITERAL(0x00303cda6feea532,0x00860f1d5a3850e4,0x00226b9fa4728ccd,0x006822938a0a0c0c,0x00263a61c9ea9215,0x001204029321b828,0x006a468360983c65,0x0082846f0a782143)}, - {FIELD_LITERAL(0x00ef8e22b275198d,0x00b0eb141a0b0e8b,0x001f6789da3cb38c,0x006d2ff8ed39073e,0x00610bdb69a167f3,0x00571f306c9689b4,0x00f557e6f84b2df8,0x002affd38b2c86db)}, + {FIELD_LITERAL(0x00303cda6feea532ULL, 0x00860f1d5a3850e4ULL, + 0x00226b9fa4728ccdULL, 0x00e822938a0a0c0cULL, + 0x00263a61c9ea9216ULL, 0x001204029321b828ULL, + 0x006a468360983c65ULL, 0x0002846f0a782143ULL)}, + {FIELD_LITERAL(0x00303cda6feea532ULL, 0x00860f1d5a3850e4ULL, + 0x00226b9fa4728ccdULL, 0x006822938a0a0c0cULL, + 0x00263a61c9ea9215ULL, 0x001204029321b828ULL, + 0x006a468360983c65ULL, 0x0082846f0a782143ULL)}, + {FIELD_LITERAL(0x00ef8e22b275198dULL, 0x00b0eb141a0b0e8bULL, + 0x001f6789da3cb38cULL, 0x006d2ff8ed39073eULL, + 0x00610bdb69a167f3ULL, 0x00571f306c9689b4ULL, + 0x00f557e6f84b2df8ULL, 0x002affd38b2c86dbULL)}, }}, {{ - {FIELD_LITERAL(0x00cea0fc8d2e88b5,0x00821612d69f1862,0x0074c283b3e67522,0x005a195ba05a876d,0x000cddfe557feea4,0x008046c795bcc5e5,0x00540969f4d6e119,0x00d27f96d6b143d5)}, - {FIELD_LITERAL(0x000c3b1019d474e8,0x00e19533e4952284,0x00cc9810ba7c920a,0x00f103d2785945ac,0x00bfa5696cc69b34,0x00a8d3d51e9ca839,0x005623cb459586b9,0x00eae7ce1cd52e9e)}, - {FIELD_LITERAL(0x0005a178751dd7d8,0x002cc3844c69c42f,0x00acbfe5efe10539,0x009c20f43431a65a,0x008435d96374a7b3,0x009ee57566877bd3,0x0044691725ed4757,0x001e87bb2fe2c6b2)}, + {FIELD_LITERAL(0x00cea0fc8d2e88b5ULL, 0x00821612d69f1862ULL, + 0x0074c283b3e67522ULL, 0x005a195ba05a876dULL, + 0x000cddfe557feea4ULL, 0x008046c795bcc5e5ULL, + 0x00540969f4d6e119ULL, 0x00d27f96d6b143d5ULL)}, + {FIELD_LITERAL(0x000c3b1019d474e8ULL, 0x00e19533e4952284ULL, + 0x00cc9810ba7c920aULL, 0x00f103d2785945acULL, + 0x00bfa5696cc69b34ULL, 0x00a8d3d51e9ca839ULL, + 0x005623cb459586b9ULL, 0x00eae7ce1cd52e9eULL)}, + {FIELD_LITERAL(0x0005a178751dd7d8ULL, 0x002cc3844c69c42fULL, + 0x00acbfe5efe10539ULL, 0x009c20f43431a65aULL, + 0x008435d96374a7b3ULL, 0x009ee57566877bd3ULL, + 0x0044691725ed4757ULL, 0x001e87bb2fe2c6b2ULL)}, }}, {{ - {FIELD_LITERAL(0x000cedc4debf7a04,0x002ffa45000470ac,0x002e9f9678201915,0x0017da1208c4fe72,0x007d558cc7d656cb,0x0037a827287cf289,0x00142472d3441819,0x009c21f166cf8dd1)}, - {FIELD_LITERAL(0x003ef83af164b2f2,0x000949a5a0525d0d,0x00f4498186cac051,0x00e77ac09ef126d2,0x0073ae0b2c9296e9,0x001c163f6922e3ed,0x0062946159321bea,0x00cfb79b22990b39)}, - {FIELD_LITERAL(0x00b001431ca9e654,0x002d7e5eabcc9a3a,0x0052e8114c2f6747,0x0079ac4f94487f92,0x00bffd919b5d749c,0x00261f92ad15e620,0x00718397b7a97895,0x00c1443e6ebbc0c4)}, + {FIELD_LITERAL(0x000cedc4debf7a04ULL, 0x002ffa45000470acULL, + 0x002e9f9678201915ULL, 0x0017da1208c4fe72ULL, + 0x007d558cc7d656cbULL, 0x0037a827287cf289ULL, + 0x00142472d3441819ULL, 0x009c21f166cf8dd1ULL)}, + {FIELD_LITERAL(0x003ef83af164b2f2ULL, 0x000949a5a0525d0dULL, + 0x00f4498186cac051ULL, 0x00e77ac09ef126d2ULL, + 0x0073ae0b2c9296e9ULL, 0x001c163f6922e3edULL, + 0x0062946159321beaULL, 0x00cfb79b22990b39ULL)}, + {FIELD_LITERAL(0x00b001431ca9e654ULL, 0x002d7e5eabcc9a3aULL, + 0x0052e8114c2f6747ULL, 0x0079ac4f94487f92ULL, + 0x00bffd919b5d749cULL, 0x00261f92ad15e620ULL, + 0x00718397b7a97895ULL, 0x00c1443e6ebbc0c4ULL)}, }}, {{ - {FIELD_LITERAL(0x00eacd90c1e0a049,0x008977935b149fbe,0x0004cb9ba11c93dc,0x009fbd5b3470844d,0x004bc18c9bfc22cf,0x0057679a991839f3,0x00ef15b76fb4092e,0x0074a5173a225041)}, - {FIELD_LITERAL(0x003f5f9d7ec4777b,0x00ab2e733c919c94,0x001bb6c035245ae5,0x00a325a49a883630,0x0033e9a9ea3cea2f,0x00e442a1eaa0e844,0x00b2116d5b0e71b8,0x00c16abed6d64047)}, - {FIELD_LITERAL(0x00c560b5ed051165,0x001945adc5d65094,0x00e221865710f910,0x00cc12bc9e9b8ceb,0x004faa9518914e35,0x0017476d89d42f6d,0x00b8f637c8fa1c8b,0x0088c7d2790864b8)}, + {FIELD_LITERAL(0x00eacd90c1e0a049ULL, 0x008977935b149fbeULL, + 0x0004cb9ba11c93dcULL, 0x009fbd5b3470844dULL, + 0x004bc18c9bfc22cfULL, 0x0057679a991839f3ULL, + 0x00ef15b76fb4092eULL, 0x0074a5173a225041ULL)}, + {FIELD_LITERAL(0x003f5f9d7ec4777bULL, 0x00ab2e733c919c94ULL, + 0x001bb6c035245ae5ULL, 0x00a325a49a883630ULL, + 0x0033e9a9ea3cea2fULL, 0x00e442a1eaa0e844ULL, + 0x00b2116d5b0e71b8ULL, 0x00c16abed6d64047ULL)}, + {FIELD_LITERAL(0x00c560b5ed051165ULL, 0x001945adc5d65094ULL, + 0x00e221865710f910ULL, 0x00cc12bc9e9b8cebULL, + 0x004faa9518914e35ULL, 0x0017476d89d42f6dULL, + 0x00b8f637c8fa1c8bULL, 0x0088c7d2790864b8ULL)}, }}, {{ - {FIELD_LITERAL(0x00ef7eafc1c69be6,0x0085d3855778fbea,0x002c8d5b450cb6f5,0x004e77de5e1e7fec,0x0047c057893abded,0x001b430b85d51e16,0x00965c7b45640c3c,0x00487b2bb1162b97)}, - {FIELD_LITERAL(0x0099c73a311beec2,0x00a3eff38d8912ad,0x002efa9d1d7e8972,0x00f717ae1e14d126,0x002833f795850c8b,0x0066c12ad71486bd,0x00ae9889da4820eb,0x00d6044309555c08)}, - {FIELD_LITERAL(0x004b1c5283d15e41,0x00669d8ea308ff75,0x0004390233f762a1,0x00e1d67b83cb6cec,0x003eebaa964c78b1,0x006b0aff965eb664,0x00b313d4470bdc37,0x008814ffcb3cb9d8)}, + {FIELD_LITERAL(0x00ef7eafc1c69be6ULL, 0x0085d3855778fbeaULL, + 0x002c8d5b450cb6f5ULL, 0x004e77de5e1e7fecULL, + 0x0047c057893abdedULL, 0x001b430b85d51e16ULL, + 0x00965c7b45640c3cULL, 0x00487b2bb1162b97ULL)}, + {FIELD_LITERAL(0x0099c73a311beec2ULL, 0x00a3eff38d8912adULL, + 0x002efa9d1d7e8972ULL, 0x00f717ae1e14d126ULL, + 0x002833f795850c8bULL, 0x0066c12ad71486bdULL, + 0x00ae9889da4820ebULL, 0x00d6044309555c08ULL)}, + {FIELD_LITERAL(0x004b1c5283d15e41ULL, 0x00669d8ea308ff75ULL, + 0x0004390233f762a1ULL, 0x00e1d67b83cb6cecULL, + 0x003eebaa964c78b1ULL, 0x006b0aff965eb664ULL, + 0x00b313d4470bdc37ULL, 0x008814ffcb3cb9d8ULL)}, }}, {{ - {FIELD_LITERAL(0x009724b8ce68db70,0x007678b5ed006f3d,0x00bdf4b89c0abd73,0x00299748e04c7c6d,0x00ddd86492c3c977,0x00c5a7febfa30a99,0x00ed84715b4b02bb,0x00319568adf70486)}, - {FIELD_LITERAL(0x0070ff2d864de5bb,0x005a37eeb637ee95,0x0033741c258de160,0x00e6ca5cb1988f46,0x001ceabd92a24661,0x0030957bd500fe40,0x001c3362afe912c5,0x005187889f678bd2)}, - {FIELD_LITERAL(0x0086835fc62bbdc7,0x009c3516ca4910a1,0x00956c71f8d00783,0x0095c78fcf63235f,0x00fc7ff6ba05c222,0x00cdd8b3f8d74a52,0x00ac5ae16de8256e,0x00e9d4be8ed48624)}, + {FIELD_LITERAL(0x009724b8ce68db70ULL, 0x007678b5ed006f3dULL, + 0x00bdf4b89c0abd73ULL, 0x00299748e04c7c6dULL, + 0x00ddd86492c3c977ULL, 0x00c5a7febfa30a99ULL, + 0x00ed84715b4b02bbULL, 0x00319568adf70486ULL)}, + {FIELD_LITERAL(0x0070ff2d864de5bbULL, 0x005a37eeb637ee95ULL, + 0x0033741c258de160ULL, 0x00e6ca5cb1988f46ULL, + 0x001ceabd92a24661ULL, 0x0030957bd500fe40ULL, + 0x001c3362afe912c5ULL, 0x005187889f678bd2ULL)}, + {FIELD_LITERAL(0x0086835fc62bbdc7ULL, 0x009c3516ca4910a1ULL, + 0x00956c71f8d00783ULL, 0x0095c78fcf63235fULL, + 0x00fc7ff6ba05c222ULL, 0x00cdd8b3f8d74a52ULL, + 0x00ac5ae16de8256eULL, 0x00e9d4be8ed48624ULL)}, }}, {{ - {FIELD_LITERAL(0x00c0ce11405df2d8,0x004e3f37b293d7b6,0x002410172e1ac6db,0x00b8dbff4bf8143d,0x003a7b409d56eb66,0x003e0f6a0dfef9af,0x0081c4e4d3645be1,0x00ce76076b127623)}, - {FIELD_LITERAL(0x00f6ee0f98974239,0x0042d89af07d3a4f,0x00846b7fe84346b5,0x006a21fc6a8d39a1,0x00ac8bc2541ff2d9,0x006d4e2a77732732,0x009a39b694cc3f2f,0x0085c0aa2a404c8f)}, - {FIELD_LITERAL(0x00b261101a218548,0x00c1cae96424277b,0x00869da0a77dd268,0x00bc0b09f8ec83ea,0x00d61027f8e82ba9,0x00aa4c85999dce67,0x00eac3132b9f3fe1,0x00fb9b0cf1c695d2)}, + {FIELD_LITERAL(0x00c0ce11405df2d8ULL, 0x004e3f37b293d7b6ULL, + 0x002410172e1ac6dbULL, 0x00b8dbff4bf8143dULL, + 0x003a7b409d56eb66ULL, 0x003e0f6a0dfef9afULL, + 0x0081c4e4d3645be1ULL, 0x00ce76076b127623ULL)}, + {FIELD_LITERAL(0x00f6ee0f98974239ULL, 0x0042d89af07d3a4fULL, + 0x00846b7fe84346b5ULL, 0x006a21fc6a8d39a1ULL, + 0x00ac8bc2541ff2d9ULL, 0x006d4e2a77732732ULL, + 0x009a39b694cc3f2fULL, 0x0085c0aa2a404c8fULL)}, + {FIELD_LITERAL(0x00b261101a218548ULL, 0x00c1cae96424277bULL, + 0x00869da0a77dd268ULL, 0x00bc0b09f8ec83eaULL, + 0x00d61027f8e82ba9ULL, 0x00aa4c85999dce67ULL, + 0x00eac3132b9f3fe1ULL, 0x00fb9b0cf1c695d2ULL)}, }}, {{ - {FIELD_LITERAL(0x0043079295512f0d,0x0046a009861758e0,0x003ee2842a807378,0x0034cc9d1298e4fa,0x009744eb4d31b3ee,0x00afacec96650cd0,0x00ac891b313761ae,0x00e864d6d26e708a)}, - {FIELD_LITERAL(0x00a84d7c8a23b491,0x0088e19aa868b27f,0x0005986d43e78ce9,0x00f28012f0606d28,0x0017ded7e10249b3,0x005ed4084b23af9b,0x00b9b0a940564472,0x00ad9056cceeb1f4)}, - {FIELD_LITERAL(0x00db91b357fe755e,0x00a1aa544b15359c,0x00af4931a0195574,0x007686124fe11aef,0x00d1ead3c7b9ef7e,0x00aaf5fc580f8c15,0x00e727be147ee1ec,0x003c61c1e1577b86)}, + {FIELD_LITERAL(0x0043079295512f0dULL, 0x0046a009861758e0ULL, + 0x003ee2842a807378ULL, 0x0034cc9d1298e4faULL, + 0x009744eb4d31b3eeULL, 0x00afacec96650cd0ULL, + 0x00ac891b313761aeULL, 0x00e864d6d26e708aULL)}, + {FIELD_LITERAL(0x00a84d7c8a23b491ULL, 0x0088e19aa868b27fULL, + 0x0005986d43e78ce9ULL, 0x00f28012f0606d28ULL, + 0x0017ded7e10249b3ULL, 0x005ed4084b23af9bULL, + 0x00b9b0a940564472ULL, 0x00ad9056cceeb1f4ULL)}, + {FIELD_LITERAL(0x00db91b357fe755eULL, 0x00a1aa544b15359cULL, + 0x00af4931a0195574ULL, 0x007686124fe11aefULL, + 0x00d1ead3c7b9ef7eULL, 0x00aaf5fc580f8c15ULL, + 0x00e727be147ee1ecULL, 0x003c61c1e1577b86ULL)}, }}, {{ - {FIELD_LITERAL(0x009d3fca983220cf,0x00cd11acbc853dc4,0x0017590409d27f1d,0x00d2176698082802,0x00fa01251b2838c8,0x00dd297a0d9b51c6,0x00d76c92c045820a,0x00534bc7c46c9033)}, - {FIELD_LITERAL(0x0080ed9bc9b07338,0x00fceac7745d2652,0x008a9d55f5f2cc69,0x0096ce72df301ac5,0x00f53232e7974d87,0x0071728c7ae73947,0x0090507602570778,0x00cb81cfd883b1b2)}, - {FIELD_LITERAL(0x005011aadea373da,0x003a8578ec896034,0x00f20a6535fa6d71,0x005152d31e5a87cf,0x002bac1c8e68ca31,0x00b0e323db4c1381,0x00f1d596b7d5ae25,0x00eae458097cb4e0)}, + {FIELD_LITERAL(0x009d3fca983220cfULL, 0x00cd11acbc853dc4ULL, + 0x0017590409d27f1dULL, 0x00d2176698082802ULL, + 0x00fa01251b2838c8ULL, 0x00dd297a0d9b51c6ULL, + 0x00d76c92c045820aULL, 0x00534bc7c46c9033ULL)}, + {FIELD_LITERAL(0x0080ed9bc9b07338ULL, 0x00fceac7745d2652ULL, + 0x008a9d55f5f2cc69ULL, 0x0096ce72df301ac5ULL, + 0x00f53232e7974d87ULL, 0x0071728c7ae73947ULL, + 0x0090507602570778ULL, 0x00cb81cfd883b1b2ULL)}, + {FIELD_LITERAL(0x005011aadea373daULL, 0x003a8578ec896034ULL, + 0x00f20a6535fa6d71ULL, 0x005152d31e5a87cfULL, + 0x002bac1c8e68ca31ULL, 0x00b0e323db4c1381ULL, + 0x00f1d596b7d5ae25ULL, 0x00eae458097cb4e0ULL)}, }}, {{ - {FIELD_LITERAL(0x00920ac80f9b0d21,0x00f80f7f73401246,0x0086d37849b557d6,0x0002bd4b317b752e,0x00b26463993a42bb,0x002070422a73b129,0x00341acaa0380cb3,0x00541914dd66a1b2)}, - {FIELD_LITERAL(0x00c1513cd66abe8c,0x000139e01118944d,0x0064abbcb8080bbb,0x00b3b08202473142,0x00c629ef25da2403,0x00f0aec3310d9b7f,0x0050b2227472d8cd,0x00f6c8a922d41fb4)}, - {FIELD_LITERAL(0x001075ccf26b7b1f,0x00bb6bb213170433,0x00e9491ad262da79,0x009ef4f48d2d384c,0x008992770766f09d,0x001584396b6b1101,0x00af3f8676c9feef,0x0024603c40269118)}, + {FIELD_LITERAL(0x00920ac80f9b0d21ULL, 0x00f80f7f73401246ULL, + 0x0086d37849b557d6ULL, 0x0002bd4b317b752eULL, + 0x00b26463993a42bbULL, 0x002070422a73b129ULL, + 0x00341acaa0380cb3ULL, 0x00541914dd66a1b2ULL)}, + {FIELD_LITERAL(0x00c1513cd66abe8cULL, 0x000139e01118944dULL, + 0x0064abbcb8080bbbULL, 0x00b3b08202473142ULL, + 0x00c629ef25da2403ULL, 0x00f0aec3310d9b7fULL, + 0x0050b2227472d8cdULL, 0x00f6c8a922d41fb4ULL)}, + {FIELD_LITERAL(0x001075ccf26b7b1fULL, 0x00bb6bb213170433ULL, + 0x00e9491ad262da79ULL, 0x009ef4f48d2d384cULL, + 0x008992770766f09dULL, 0x001584396b6b1101ULL, + 0x00af3f8676c9feefULL, 0x0024603c40269118ULL)}, }}, {{ - {FIELD_LITERAL(0x009dd7b31319527c,0x001e7ac948d873a9,0x00fa54b46ef9673a,0x0066efb8d5b02fe6,0x00754b1d3928aeae,0x0004262ac72a6f6b,0x0079b7d49a6eb026,0x003126a753540102)}, - {FIELD_LITERAL(0x009666e24f693947,0x00f714311269d45f,0x0010ffac1d0c851c,0x0066e80c37363497,0x00f1f4ad010c60b0,0x0015c87408470ff7,0x00651d5e9c7766a4,0x008138819d7116de)}, - {FIELD_LITERAL(0x003934b11c57253b,0x00ef308edf21f46e,0x00e54e99c7a16198,0x0080d57135764e63,0x00751c27b946bc24,0x00dd389ce4e9e129,0x00a1a2bfd1cd84dc,0x002fae73e5149b32)}, + {FIELD_LITERAL(0x009dd7b31319527cULL, 0x001e7ac948d873a9ULL, + 0x00fa54b46ef9673aULL, 0x0066efb8d5b02fe6ULL, + 0x00754b1d3928aeaeULL, 0x0004262ac72a6f6bULL, + 0x0079b7d49a6eb026ULL, 0x003126a753540102ULL)}, + {FIELD_LITERAL(0x009666e24f693947ULL, 0x00f714311269d45fULL, + 0x0010ffac1d0c851cULL, 0x0066e80c37363497ULL, + 0x00f1f4ad010c60b0ULL, 0x0015c87408470ff7ULL, + 0x00651d5e9c7766a4ULL, 0x008138819d7116deULL)}, + {FIELD_LITERAL(0x003934b11c57253bULL, 0x00ef308edf21f46eULL, + 0x00e54e99c7a16198ULL, 0x0080d57135764e63ULL, + 0x00751c27b946bc24ULL, 0x00dd389ce4e9e129ULL, + 0x00a1a2bfd1cd84dcULL, 0x002fae73e5149b32ULL)}, }}, {{ - {FIELD_LITERAL(0x00911657dffb4cdd,0x00c100b7cc553d06,0x00449d075ec467cc,0x007062100bc64e70,0x0043cf86f7bd21e7,0x00f401dc4b797dea,0x005224afb2f62e65,0x00d1ede3fb5a42be)}, - {FIELD_LITERAL(0x00f2ba36a41aa144,0x00a0c22d946ee18f,0x008aae8ef9a14f99,0x00eef4d79b19bb36,0x008e75ce3d27b1fc,0x00a65daa03b29a27,0x00d9cc83684eb145,0x009e1ed80cc2ed74)}, - {FIELD_LITERAL(0x00bed953d1997988,0x00b93ed175a24128,0x00871c5963fb6365,0x00ca2df20014a787,0x00f5d9c1d0b34322,0x00f6f5942818db0a,0x004cc091f49c9906,0x00e8a188a60bff9f)}, + {FIELD_LITERAL(0x00911657dffb4cddULL, 0x00c100b7cc553d06ULL, + 0x00449d075ec467ccULL, 0x007062100bc64e70ULL, + 0x0043cf86f7bd21e7ULL, 0x00f401dc4b797deaULL, + 0x005224afb2f62e65ULL, 0x00d1ede3fb5a42beULL)}, + {FIELD_LITERAL(0x00f2ba36a41aa144ULL, 0x00a0c22d946ee18fULL, + 0x008aae8ef9a14f99ULL, 0x00eef4d79b19bb36ULL, + 0x008e75ce3d27b1fcULL, 0x00a65daa03b29a27ULL, + 0x00d9cc83684eb145ULL, 0x009e1ed80cc2ed74ULL)}, + {FIELD_LITERAL(0x00bed953d1997988ULL, 0x00b93ed175a24128ULL, + 0x00871c5963fb6365ULL, 0x00ca2df20014a787ULL, + 0x00f5d9c1d0b34322ULL, 0x00f6f5942818db0aULL, + 0x004cc091f49c9906ULL, 0x00e8a188a60bff9fULL)}, }}, {{ - {FIELD_LITERAL(0x0032c7762032fae8,0x00e4087232e0bc21,0x00f767344b6e8d85,0x00bbf369b76c2aa2,0x008a1f46c6e1570c,0x001368cd9780369f,0x007359a39d079430,0x0003646512921434)}, - {FIELD_LITERAL(0x007c4b47ca7c73e7,0x005396221039734b,0x008b64ddf0e45d7e,0x00bfad5af285e6c2,0x008ec711c5b1a1a8,0x00cf663301237f98,0x00917ee3f1655126,0x004152f337efedd8)}, - {FIELD_LITERAL(0x0007c7edc9305daa,0x000a6664f273701c,0x00f6e78795e200b1,0x005d05b9ecd2473e,0x0014f5f17c865786,0x00c7fd2d166fa995,0x004939a2d8eb80e0,0x002244ba0942c199)}, + {FIELD_LITERAL(0x0032c7762032fae8ULL, 0x00e4087232e0bc21ULL, + 0x00f767344b6e8d85ULL, 0x00bbf369b76c2aa2ULL, + 0x008a1f46c6e1570cULL, 0x001368cd9780369fULL, + 0x007359a39d079430ULL, 0x0003646512921434ULL)}, + {FIELD_LITERAL(0x007c4b47ca7c73e7ULL, 0x005396221039734bULL, + 0x008b64ddf0e45d7eULL, 0x00bfad5af285e6c2ULL, + 0x008ec711c5b1a1a8ULL, 0x00cf663301237f98ULL, + 0x00917ee3f1655126ULL, 0x004152f337efedd8ULL)}, + {FIELD_LITERAL(0x0007c7edc9305daaULL, 0x000a6664f273701cULL, + 0x00f6e78795e200b1ULL, 0x005d05b9ecd2473eULL, + 0x0014f5f17c865786ULL, 0x00c7fd2d166fa995ULL, + 0x004939a2d8eb80e0ULL, 0x002244ba0942c199ULL)}, }}, {{ - {FIELD_LITERAL(0x00321e767f0262cf,0x002e57d776caf68e,0x00bf2c94814f0437,0x00c339196acd622f,0x001db4cce71e2770,0x001ded5ddba6eee2,0x0078608ab1554c8d,0x00067fe0ab76365b)}, - {FIELD_LITERAL(0x00f09758e11e3985,0x00169efdbd64fad3,0x00e8889b7d6dacd6,0x0035cdd58ea88209,0x00bcda47586d7f49,0x003cdddcb2879088,0x0016da70187e954b,0x009556ea2e92aacd)}, - {FIELD_LITERAL(0x008cab16bd1ff897,0x00b389972cdf753f,0x00ea8ed1e46dfdc0,0x004fe7ef94c589f4,0x002b8ae9b805ecf3,0x0025c08d892874a5,0x0023938e98d44c4c,0x00f759134cabf69c)}, + {FIELD_LITERAL(0x00321e767f0262cfULL, 0x002e57d776caf68eULL, + 0x00bf2c94814f0437ULL, 0x00c339196acd622fULL, + 0x001db4cce71e2770ULL, 0x001ded5ddba6eee2ULL, + 0x0078608ab1554c8dULL, 0x00067fe0ab76365bULL)}, + {FIELD_LITERAL(0x00f09758e11e3985ULL, 0x00169efdbd64fad3ULL, + 0x00e8889b7d6dacd6ULL, 0x0035cdd58ea88209ULL, + 0x00bcda47586d7f49ULL, 0x003cdddcb2879088ULL, + 0x0016da70187e954bULL, 0x009556ea2e92aacdULL)}, + {FIELD_LITERAL(0x008cab16bd1ff897ULL, 0x00b389972cdf753fULL, + 0x00ea8ed1e46dfdc0ULL, 0x004fe7ef94c589f4ULL, + 0x002b8ae9b805ecf3ULL, 0x0025c08d892874a5ULL, + 0x0023938e98d44c4cULL, 0x00f759134cabf69cULL)}, }}, {{ - {FIELD_LITERAL(0x006c2a84678e4b3b,0x007a194aacd1868f,0x00ed0225af424761,0x00da0a6f293c64b8,0x001062ac5c6a7a18,0x0030f5775a8aeef4,0x0002acaad76b7af0,0x00410b8fd63a579f)}, - {FIELD_LITERAL(0x001ec59db3d9590e,0x001e9e3f1c3f182d,0x0045a9c3ec2cab14,0x0008198572aeb673,0x00773b74068bd167,0x0012535eaa395434,0x0044dba9e3bbb74a,0x002fba4d3c74bd0e)}, - {FIELD_LITERAL(0x0042bf08fe66922c,0x003318b8fbb49e8c,0x00d75946004aa14c,0x00f601586b42bf1c,0x00c74cf1d912fe66,0x00abcb36974b30ad,0x007eb78720c9d2b8,0x009f54ab7bd4df85)}, + {FIELD_LITERAL(0x006c2a84678e4b3bULL, 0x007a194aacd1868fULL, + 0x00ed0225af424761ULL, 0x00da0a6f293c64b8ULL, + 0x001062ac5c6a7a18ULL, 0x0030f5775a8aeef4ULL, + 0x0002acaad76b7af0ULL, 0x00410b8fd63a579fULL)}, + {FIELD_LITERAL(0x001ec59db3d9590eULL, 0x001e9e3f1c3f182dULL, + 0x0045a9c3ec2cab14ULL, 0x0008198572aeb673ULL, + 0x00773b74068bd167ULL, 0x0012535eaa395434ULL, + 0x0044dba9e3bbb74aULL, 0x002fba4d3c74bd0eULL)}, + {FIELD_LITERAL(0x0042bf08fe66922cULL, 0x003318b8fbb49e8cULL, + 0x00d75946004aa14cULL, 0x00f601586b42bf1cULL, + 0x00c74cf1d912fe66ULL, 0x00abcb36974b30adULL, + 0x007eb78720c9d2b8ULL, 0x009f54ab7bd4df85ULL)}, }}, {{ - {FIELD_LITERAL(0x00db9fc948f73826,0x00fa8b3746ed8ee9,0x00132cb65aafbeb2,0x00c36ff3fe7925b8,0x00837daed353d2fe,0x00ec661be0667cf4,0x005beb8ed2e90204,0x00d77dd69e564967)}, - {FIELD_LITERAL(0x0042e6268b861751,0x0008dd0469500c16,0x00b51b57c338a3fd,0x00cc4497d85cff6b,0x002f13d6b57c34a4,0x0083652eaf301105,0x00cc344294cc93a8,0x0060f4d02810e270)}, - {FIELD_LITERAL(0x00a8954363cd518b,0x00ad171124bccb7b,0x0065f46a4adaae00,0x001b1a5b2a96e500,0x0043fe24f8233285,0x0066996d8ae1f2c3,0x00c530f3264169f9,0x00c0f92d07cf6a57)}, + {FIELD_LITERAL(0x00db9fc948f73826ULL, 0x00fa8b3746ed8ee9ULL, + 0x00132cb65aafbeb2ULL, 0x00c36ff3fe7925b8ULL, + 0x00837daed353d2feULL, 0x00ec661be0667cf4ULL, + 0x005beb8ed2e90204ULL, 0x00d77dd69e564967ULL)}, + {FIELD_LITERAL(0x0042e6268b861751ULL, 0x0008dd0469500c16ULL, + 0x00b51b57c338a3fdULL, 0x00cc4497d85cff6bULL, + 0x002f13d6b57c34a4ULL, 0x0083652eaf301105ULL, + 0x00cc344294cc93a8ULL, 0x0060f4d02810e270ULL)}, + {FIELD_LITERAL(0x00a8954363cd518bULL, 0x00ad171124bccb7bULL, + 0x0065f46a4adaae00ULL, 0x001b1a5b2a96e500ULL, + 0x0043fe24f8233285ULL, 0x0066996d8ae1f2c3ULL, + 0x00c530f3264169f9ULL, 0x00c0f92d07cf6a57ULL)}, }}, {{ - {FIELD_LITERAL(0x0036a55c6815d943,0x008c8d1def993db3,0x002e0e1e8ff7318f,0x00d883a4b92db00a,0x002f5e781ae33906,0x001a72adb235c06d,0x00f2e59e736e9caa,0x001a4b58e3031914)}, - {FIELD_LITERAL(0x00d73bfae5e00844,0x00bf459766fb5f52,0x0061b4f5a5313cde,0x004392d4c3b95514,0x000d3551b1077523,0x0000998840ee5d71,0x006de6e340448b7b,0x00251aa504875d6e)}, - {FIELD_LITERAL(0x003bf343427ac342,0x00adc0a78642b8c5,0x0003b893175a8314,0x0061a34ade5703bc,0x00ea3ea8bb71d632,0x00be0df9a1f198c2,0x0046dd8e7c1635fb,0x00f1523fdd25d5e5)}, + {FIELD_LITERAL(0x0036a55c6815d943ULL, 0x008c8d1def993db3ULL, + 0x002e0e1e8ff7318fULL, 0x00d883a4b92db00aULL, + 0x002f5e781ae33906ULL, 0x001a72adb235c06dULL, + 0x00f2e59e736e9caaULL, 0x001a4b58e3031914ULL)}, + {FIELD_LITERAL(0x00d73bfae5e00844ULL, 0x00bf459766fb5f52ULL, + 0x0061b4f5a5313cdeULL, 0x004392d4c3b95514ULL, + 0x000d3551b1077523ULL, 0x0000998840ee5d71ULL, + 0x006de6e340448b7bULL, 0x00251aa504875d6eULL)}, + {FIELD_LITERAL(0x003bf343427ac342ULL, 0x00adc0a78642b8c5ULL, + 0x0003b893175a8314ULL, 0x0061a34ade5703bcULL, + 0x00ea3ea8bb71d632ULL, 0x00be0df9a1f198c2ULL, + 0x0046dd8e7c1635fbULL, 0x00f1523fdd25d5e5ULL)}, }}, {{ - {FIELD_LITERAL(0x00633f63fc9dd406,0x00e713ff80e04a43,0x0060c6e970f2d621,0x00a57cd7f0df1891,0x00f2406a550650bb,0x00b064290efdc684,0x001eab0144d17916,0x00cd15f863c293ab)}, - {FIELD_LITERAL(0x0029cec55273f70d,0x007044ee275c6340,0x0040f637a93015e2,0x00338bb78db5aae9,0x001491b2a6132147,0x00a125d6cfe6bde3,0x005f7ac561ba8669,0x001d5eaea3fbaacf)}, - {FIELD_LITERAL(0x00054e9635e3be31,0x000e43f31e2872be,0x00d05b1c9e339841,0x006fac50bd81fd98,0x00cdc7852eaebb09,0x004ff519b061991b,0x009099e8107d4c85,0x00273e24c36a4a61)}, + {FIELD_LITERAL(0x00633f63fc9dd406ULL, 0x00e713ff80e04a43ULL, + 0x0060c6e970f2d621ULL, 0x00a57cd7f0df1891ULL, + 0x00f2406a550650bbULL, 0x00b064290efdc684ULL, + 0x001eab0144d17916ULL, 0x00cd15f863c293abULL)}, + {FIELD_LITERAL(0x0029cec55273f70dULL, 0x007044ee275c6340ULL, + 0x0040f637a93015e2ULL, 0x00338bb78db5aae9ULL, + 0x001491b2a6132147ULL, 0x00a125d6cfe6bde3ULL, + 0x005f7ac561ba8669ULL, 0x001d5eaea3fbaacfULL)}, + {FIELD_LITERAL(0x00054e9635e3be31ULL, 0x000e43f31e2872beULL, + 0x00d05b1c9e339841ULL, 0x006fac50bd81fd98ULL, + 0x00cdc7852eaebb09ULL, 0x004ff519b061991bULL, + 0x009099e8107d4c85ULL, 0x00273e24c36a4a61ULL)}, }}, {{ - {FIELD_LITERAL(0x00070b4441ef2c46,0x00efa5b02801a109,0x00bf0b8c3ee64adf,0x008a67e0b3452e98,0x001916b1f2fa7a74,0x00d781a78ff6cdc3,0x008682ce57e5c919,0x00cc1109dd210da3)}, - {FIELD_LITERAL(0x00cae8aaff388663,0x005e983a35dda1c7,0x007ab1030d8e37f4,0x00e48940f5d032fe,0x006a36f9ef30b331,0x009be6f03958c757,0x0086231ceba91400,0x008bd0f7b823e7aa)}, - {FIELD_LITERAL(0x00cf881ebef5a45a,0x004ebea78e7c6f2c,0x0090da9209cf26a0,0x00de2b2e4c775b84,0x0071d6031c3c15ae,0x00d9e927ef177d70,0x00894ee8c23896fd,0x00e3b3b401e41aad)}, + {FIELD_LITERAL(0x00070b4441ef2c46ULL, 0x00efa5b02801a109ULL, + 0x00bf0b8c3ee64adfULL, 0x008a67e0b3452e98ULL, + 0x001916b1f2fa7a74ULL, 0x00d781a78ff6cdc3ULL, + 0x008682ce57e5c919ULL, 0x00cc1109dd210da3ULL)}, + {FIELD_LITERAL(0x00cae8aaff388663ULL, 0x005e983a35dda1c7ULL, + 0x007ab1030d8e37f4ULL, 0x00e48940f5d032feULL, + 0x006a36f9ef30b331ULL, 0x009be6f03958c757ULL, + 0x0086231ceba91400ULL, 0x008bd0f7b823e7aaULL)}, + {FIELD_LITERAL(0x00cf881ebef5a45aULL, 0x004ebea78e7c6f2cULL, + 0x0090da9209cf26a0ULL, 0x00de2b2e4c775b84ULL, + 0x0071d6031c3c15aeULL, 0x00d9e927ef177d70ULL, + 0x00894ee8c23896fdULL, 0x00e3b3b401e41aadULL)}, }}, {{ - {FIELD_LITERAL(0x00204fef26864170,0x00819269c5dee0f8,0x00bfb4713ec97966,0x0026339a6f34df78,0x001f26e64c761dc2,0x00effe3af313cb60,0x00e17b70138f601b,0x00f16e1ccd9ede5e)}, - {FIELD_LITERAL(0x005d9a8353fdb2db,0x0055cc2048c698f0,0x00f6c4ac89657218,0x00525034d73faeb2,0x00435776fbda3c7d,0x0070ea5312323cbc,0x007a105d44d069fb,0x006dbc8d6dc786aa)}, - {FIELD_LITERAL(0x0017cff19cd394ec,0x00fef7b810922587,0x00e6483970dff548,0x00ddf36ad6874264,0x00e61778523fcce2,0x0093a66c0c93b24a,0x00fd367114db7f86,0x007652d7ddce26dd)}, + {FIELD_LITERAL(0x00204fef26864170ULL, 0x00819269c5dee0f8ULL, + 0x00bfb4713ec97966ULL, 0x0026339a6f34df78ULL, + 0x001f26e64c761dc2ULL, 0x00effe3af313cb60ULL, + 0x00e17b70138f601bULL, 0x00f16e1ccd9ede5eULL)}, + {FIELD_LITERAL(0x005d9a8353fdb2dbULL, 0x0055cc2048c698f0ULL, + 0x00f6c4ac89657218ULL, 0x00525034d73faeb2ULL, + 0x00435776fbda3c7dULL, 0x0070ea5312323cbcULL, + 0x007a105d44d069fbULL, 0x006dbc8d6dc786aaULL)}, + {FIELD_LITERAL(0x0017cff19cd394ecULL, 0x00fef7b810922587ULL, + 0x00e6483970dff548ULL, 0x00ddf36ad6874264ULL, + 0x00e61778523fcce2ULL, 0x0093a66c0c93b24aULL, + 0x00fd367114db7f86ULL, 0x007652d7ddce26ddULL)}, }}, {{ - {FIELD_LITERAL(0x00d92ced7ba12843,0x00aea9c7771e86e7,0x0046639693354f7b,0x00a628dbb6a80c47,0x003a0b0507372953,0x00421113ab45c0d9,0x00e545f08362ab7a,0x0028ce087b4d6d96)}, - {FIELD_LITERAL(0x00a67ee7cf9f99eb,0x005713b275f2ff68,0x00f1d536a841513d,0x00823b59b024712e,0x009c46b9d0d38cec,0x00cdb1595aa2d7d4,0x008375b3423d9af8,0x000ab0b516d978f7)}, - {FIELD_LITERAL(0x00428dcb3c510b0f,0x00585607ea24bb4e,0x003736bf1603687a,0x00c47e568c4fe3c7,0x003cd00282848605,0x0043a487c3b91939,0x004ffc04e1095a06,0x00a4c989a3d4b918)}, + {FIELD_LITERAL(0x00d92ced7ba12843ULL, 0x00aea9c7771e86e7ULL, + 0x0046639693354f7bULL, 0x00a628dbb6a80c47ULL, + 0x003a0b0507372953ULL, 0x00421113ab45c0d9ULL, + 0x00e545f08362ab7aULL, 0x0028ce087b4d6d96ULL)}, + {FIELD_LITERAL(0x00a67ee7cf9f99ebULL, 0x005713b275f2ff68ULL, + 0x00f1d536a841513dULL, 0x00823b59b024712eULL, + 0x009c46b9d0d38cecULL, 0x00cdb1595aa2d7d4ULL, + 0x008375b3423d9af8ULL, 0x000ab0b516d978f7ULL)}, + {FIELD_LITERAL(0x00428dcb3c510b0fULL, 0x00585607ea24bb4eULL, + 0x003736bf1603687aULL, 0x00c47e568c4fe3c7ULL, + 0x003cd00282848605ULL, 0x0043a487c3b91939ULL, + 0x004ffc04e1095a06ULL, 0x00a4c989a3d4b918ULL)}, }}, {{ - {FIELD_LITERAL(0x00a8778d0e429f7a,0x004c02b059105a68,0x0016653b609da3ff,0x00d5107bd1a12d27,0x00b4708f9a771cab,0x00bb63b662033f69,0x0072f322240e7215,0x0019445b59c69222)}, - {FIELD_LITERAL(0x00cf4f6069a658e6,0x0053ca52859436a6,0x0064b994d7e3e117,0x00cb469b9a07f534,0x00cfb68f399e9d47,0x00f0dcb8dac1c6e7,0x00f2ab67f538b3a5,0x0055544f178ab975)}, - {FIELD_LITERAL(0x0099b7a2685d538c,0x00e2f1897b7c0018,0x003adac8ce48dae3,0x00089276d5c50c0c,0x00172fca07ad6717,0x00cb1a72f54069e5,0x004ee42f133545b3,0x00785f8651362f16)}, + {FIELD_LITERAL(0x00a8778d0e429f7aULL, 0x004c02b059105a68ULL, + 0x0016653b609da3ffULL, 0x00d5107bd1a12d27ULL, + 0x00b4708f9a771cabULL, 0x00bb63b662033f69ULL, + 0x0072f322240e7215ULL, 0x0019445b59c69222ULL)}, + {FIELD_LITERAL(0x00cf4f6069a658e6ULL, 0x0053ca52859436a6ULL, + 0x0064b994d7e3e117ULL, 0x00cb469b9a07f534ULL, + 0x00cfb68f399e9d47ULL, 0x00f0dcb8dac1c6e7ULL, + 0x00f2ab67f538b3a5ULL, 0x0055544f178ab975ULL)}, + {FIELD_LITERAL(0x0099b7a2685d538cULL, 0x00e2f1897b7c0018ULL, + 0x003adac8ce48dae3ULL, 0x00089276d5c50c0cULL, + 0x00172fca07ad6717ULL, 0x00cb1a72f54069e5ULL, + 0x004ee42f133545b3ULL, 0x00785f8651362f16ULL)}, }}, {{ - {FIELD_LITERAL(0x0049cbac38509e11,0x0015234505d42cdf,0x00794fb0b5840f1c,0x00496437344045a5,0x0031b6d944e4f9b0,0x00b207318ac1f5d8,0x0000c840da7f5c5d,0x00526f373a5c8814)}, - {FIELD_LITERAL(0x002c7b7742d1dfd9,0x002cabeb18623c01,0x00055f5e3e044446,0x006c20f3b4ef54ba,0x00c600141ec6b35f,0x00354f437f1a32a3,0x00bac4624a3520f9,0x00c483f734a90691)}, - {FIELD_LITERAL(0x0053a737d422918d,0x00f7fca1d8758625,0x00c360336dadb04c,0x00f38e3d9158a1b8,0x0069ce3b418e84c6,0x005d1697eca16ead,0x00f8bd6a35ece13d,0x007885dfc2b5afea)}, + {FIELD_LITERAL(0x0049cbac38509e11ULL, 0x0015234505d42cdfULL, + 0x00794fb0b5840f1cULL, 0x00496437344045a5ULL, + 0x0031b6d944e4f9b0ULL, 0x00b207318ac1f5d8ULL, + 0x0000c840da7f5c5dULL, 0x00526f373a5c8814ULL)}, + {FIELD_LITERAL(0x002c7b7742d1dfd9ULL, 0x002cabeb18623c01ULL, + 0x00055f5e3e044446ULL, 0x006c20f3b4ef54baULL, + 0x00c600141ec6b35fULL, 0x00354f437f1a32a3ULL, + 0x00bac4624a3520f9ULL, 0x00c483f734a90691ULL)}, + {FIELD_LITERAL(0x0053a737d422918dULL, 0x00f7fca1d8758625ULL, + 0x00c360336dadb04cULL, 0x00f38e3d9158a1b8ULL, + 0x0069ce3b418e84c6ULL, 0x005d1697eca16eadULL, + 0x00f8bd6a35ece13dULL, 0x007885dfc2b5afeaULL)}, }}, {{ - {FIELD_LITERAL(0x00c3617ae260776c,0x00b20dc3e96922d7,0x00a1a7802246706a,0x00ca6505a5240244,0x002246b62d919782,0x001439102d7aa9b3,0x00e8af1139e6422c,0x00c888d1b52f2b05)}, - {FIELD_LITERAL(0x005b67690ffd41d9,0x005294f28df516f9,0x00a879272412fcb9,0x00098b629a6d1c8d,0x00fabd3c8050865a,0x00cd7e5b0a3879c5,0x00153238210f3423,0x00357cac101e9f42)}, - {FIELD_LITERAL(0x008917b454444fb7,0x00f59247c97e441b,0x00a6200a6815152d,0x0009a4228601d254,0x001c0360559bd374,0x007563362039cb36,0x00bd75b48d74e32b,0x0017f515ac3499e8)}, + {FIELD_LITERAL(0x00c3617ae260776cULL, 0x00b20dc3e96922d7ULL, + 0x00a1a7802246706aULL, 0x00ca6505a5240244ULL, + 0x002246b62d919782ULL, 0x001439102d7aa9b3ULL, + 0x00e8af1139e6422cULL, 0x00c888d1b52f2b05ULL)}, + {FIELD_LITERAL(0x005b67690ffd41d9ULL, 0x005294f28df516f9ULL, + 0x00a879272412fcb9ULL, 0x00098b629a6d1c8dULL, + 0x00fabd3c8050865aULL, 0x00cd7e5b0a3879c5ULL, + 0x00153238210f3423ULL, 0x00357cac101e9f42ULL)}, + {FIELD_LITERAL(0x008917b454444fb7ULL, 0x00f59247c97e441bULL, + 0x00a6200a6815152dULL, 0x0009a4228601d254ULL, + 0x001c0360559bd374ULL, 0x007563362039cb36ULL, + 0x00bd75b48d74e32bULL, 0x0017f515ac3499e8ULL)}, }}, {{ - {FIELD_LITERAL(0x001532a7ffe41c5a,0x00eb1edce358d6bf,0x00ddbacc7b678a7b,0x008a7b70f3c841a3,0x00f1923bf27d3f4c,0x000b2713ed8f7873,0x00aaf67e29047902,0x0044994a70b3976d)}, - {FIELD_LITERAL(0x00d54e802082d42c,0x00a55aa0dce7cc6c,0x006477b96073f146,0x0082efe4ceb43594,0x00a922bcba026845,0x0077f19d1ab75182,0x00c2bb2737846e59,0x0004d7eec791dd33)}, - {FIELD_LITERAL(0x0044588d1a81d680,0x00b0a9097208e4f8,0x00212605350dc57e,0x0028717cd2871123,0x00fb083c100fd979,0x0045a056ce063fdf,0x00a5d604b4dd6a41,0x001dabc08ba4e236)}, + {FIELD_LITERAL(0x001532a7ffe41c5aULL, 0x00eb1edce358d6bfULL, + 0x00ddbacc7b678a7bULL, 0x008a7b70f3c841a3ULL, + 0x00f1923bf27d3f4cULL, 0x000b2713ed8f7873ULL, + 0x00aaf67e29047902ULL, 0x0044994a70b3976dULL)}, + {FIELD_LITERAL(0x00d54e802082d42cULL, 0x00a55aa0dce7cc6cULL, + 0x006477b96073f146ULL, 0x0082efe4ceb43594ULL, + 0x00a922bcba026845ULL, 0x0077f19d1ab75182ULL, + 0x00c2bb2737846e59ULL, 0x0004d7eec791dd33ULL)}, + {FIELD_LITERAL(0x0044588d1a81d680ULL, 0x00b0a9097208e4f8ULL, + 0x00212605350dc57eULL, 0x0028717cd2871123ULL, + 0x00fb083c100fd979ULL, 0x0045a056ce063fdfULL, + 0x00a5d604b4dd6a41ULL, 0x001dabc08ba4e236ULL)}, }}, {{ - {FIELD_LITERAL(0x00c4887198d7a7fa,0x00244f98fb45784a,0x0045911e15a15d01,0x001d323d374c0966,0x00967c3915196562,0x0039373abd2f3c67,0x000d2c5614312423,0x0041cf2215442ce3)}, - {FIELD_LITERAL(0x008ede889ada7f06,0x001611e91de2e135,0x00fdb9a458a471b9,0x00563484e03710d1,0x0031cc81925e3070,0x0062c97b3af80005,0x00fa733eea28edeb,0x00e82457e1ebbc88)}, - {FIELD_LITERAL(0x006a0df5fe9b6f59,0x00a0d4ff46040d92,0x004a7cedb6f93250,0x00d1df8855b8c357,0x00e73a46086fd058,0x0048fb0add6dfe59,0x001e03a28f1b4e3d,0x00a871c993308d76)}, + {FIELD_LITERAL(0x00c4887198d7a7faULL, 0x00244f98fb45784aULL, + 0x0045911e15a15d01ULL, 0x001d323d374c0966ULL, + 0x00967c3915196562ULL, 0x0039373abd2f3c67ULL, + 0x000d2c5614312423ULL, 0x0041cf2215442ce3ULL)}, + {FIELD_LITERAL(0x008ede889ada7f06ULL, 0x001611e91de2e135ULL, + 0x00fdb9a458a471b9ULL, 0x00563484e03710d1ULL, + 0x0031cc81925e3070ULL, 0x0062c97b3af80005ULL, + 0x00fa733eea28edebULL, 0x00e82457e1ebbc88ULL)}, + {FIELD_LITERAL(0x006a0df5fe9b6f59ULL, 0x00a0d4ff46040d92ULL, + 0x004a7cedb6f93250ULL, 0x00d1df8855b8c357ULL, + 0x00e73a46086fd058ULL, 0x0048fb0add6dfe59ULL, + 0x001e03a28f1b4e3dULL, 0x00a871c993308d76ULL)}, }}, {{ - {FIELD_LITERAL(0x0030dbb2d1766ec8,0x00586c0ad138555e,0x00d1a34f9e91c77c,0x0063408ad0e89014,0x00d61231b05f6f5b,0x0009abf569f5fd8a,0x00aec67a110f1c43,0x0031d1a790938dd7)}, - {FIELD_LITERAL(0x006cded841e2a862,0x00198d60af0ab6fb,0x0018f09db809e750,0x004e6ac676016263,0x00eafcd1620969cb,0x002c9784ca34917d,0x0054f00079796de7,0x00d9fab5c5972204)}, - {FIELD_LITERAL(0x004bd0fee2438a83,0x00b571e62b0f83bd,0x0059287d7ce74800,0x00fb3631b645c3f0,0x00a018e977f78494,0x0091e27065c27b12,0x007696c1817165e0,0x008c40be7c45ba3a)}, + {FIELD_LITERAL(0x0030dbb2d1766ec8ULL, 0x00586c0ad138555eULL, + 0x00d1a34f9e91c77cULL, 0x0063408ad0e89014ULL, + 0x00d61231b05f6f5bULL, 0x0009abf569f5fd8aULL, + 0x00aec67a110f1c43ULL, 0x0031d1a790938dd7ULL)}, + {FIELD_LITERAL(0x006cded841e2a862ULL, 0x00198d60af0ab6fbULL, + 0x0018f09db809e750ULL, 0x004e6ac676016263ULL, + 0x00eafcd1620969cbULL, 0x002c9784ca34917dULL, + 0x0054f00079796de7ULL, 0x00d9fab5c5972204ULL)}, + {FIELD_LITERAL(0x004bd0fee2438a83ULL, 0x00b571e62b0f83bdULL, + 0x0059287d7ce74800ULL, 0x00fb3631b645c3f0ULL, + 0x00a018e977f78494ULL, 0x0091e27065c27b12ULL, + 0x007696c1817165e0ULL, 0x008c40be7c45ba3aULL)}, }}, {{ - {FIELD_LITERAL(0x00a0f326327cb684,0x001c7d0f672680ff,0x008c1c81ffb112d1,0x00f8f801674eddc8,0x00e926d5d48c2a9d,0x005bd6d954c6fe9a,0x004c6b24b4e33703,0x00d05eb5c09105cc)}, - {FIELD_LITERAL(0x00d61731caacf2cf,0x002df0c7609e01c5,0x00306172208b1e2b,0x00b413fe4fb2b686,0x00826d360902a221,0x003f8d056e67e7f7,0x0065025b0175e989,0x00369add117865eb)}, - {FIELD_LITERAL(0x00aaf895aec2fa11,0x000f892bc313eb52,0x005b1c794dad050b,0x003f8ec4864cec14,0x00af81058d0b90e5,0x00ebe43e183997bb,0x00a9d610f9f3e615,0x007acd8eec2e88d3)}, + {FIELD_LITERAL(0x00a0f326327cb684ULL, 0x001c7d0f672680ffULL, + 0x008c1c81ffb112d1ULL, 0x00f8f801674eddc8ULL, + 0x00e926d5d48c2a9dULL, 0x005bd6d954c6fe9aULL, + 0x004c6b24b4e33703ULL, 0x00d05eb5c09105ccULL)}, + {FIELD_LITERAL(0x00d61731caacf2cfULL, 0x002df0c7609e01c5ULL, + 0x00306172208b1e2bULL, 0x00b413fe4fb2b686ULL, + 0x00826d360902a221ULL, 0x003f8d056e67e7f7ULL, + 0x0065025b0175e989ULL, 0x00369add117865ebULL)}, + {FIELD_LITERAL(0x00aaf895aec2fa11ULL, 0x000f892bc313eb52ULL, + 0x005b1c794dad050bULL, 0x003f8ec4864cec14ULL, + 0x00af81058d0b90e5ULL, 0x00ebe43e183997bbULL, + 0x00a9d610f9f3e615ULL, 0x007acd8eec2e88d3ULL)}, }}, {{ - {FIELD_LITERAL(0x0049b2fab13812a3,0x00846db32cd60431,0x000177fa578c8d6c,0x00047d0e2ad4bc51,0x00b158ba38d1e588,0x006a45daad79e3f3,0x000997b93cab887b,0x00c47ea42fa23dc3)}, - {FIELD_LITERAL(0x0012b6fef7aeb1ca,0x009412768194b6a7,0x00ff0d351f23ab93,0x007e8a14c1aff71b,0x006c1c0170c512bc,0x0016243ea02ab2e5,0x007bb6865b303f3e,0x0015ce6b29b159f4)}, - {FIELD_LITERAL(0x009961cd02e68108,0x00e2035d3a1d0836,0x005d51f69b5e1a1d,0x004bccb4ea36edcd,0x0069be6a7aeef268,0x0063f4dd9de8d5a7,0x006283783092ca35,0x0075a31af2c35409)}, + {FIELD_LITERAL(0x0049b2fab13812a3ULL, 0x00846db32cd60431ULL, + 0x000177fa578c8d6cULL, 0x00047d0e2ad4bc51ULL, + 0x00b158ba38d1e588ULL, 0x006a45daad79e3f3ULL, + 0x000997b93cab887bULL, 0x00c47ea42fa23dc3ULL)}, + {FIELD_LITERAL(0x0012b6fef7aeb1caULL, 0x009412768194b6a7ULL, + 0x00ff0d351f23ab93ULL, 0x007e8a14c1aff71bULL, + 0x006c1c0170c512bcULL, 0x0016243ea02ab2e5ULL, + 0x007bb6865b303f3eULL, 0x0015ce6b29b159f4ULL)}, + {FIELD_LITERAL(0x009961cd02e68108ULL, 0x00e2035d3a1d0836ULL, + 0x005d51f69b5e1a1dULL, 0x004bccb4ea36edcdULL, + 0x0069be6a7aeef268ULL, 0x0063f4dd9de8d5a7ULL, + 0x006283783092ca35ULL, 0x0075a31af2c35409ULL)}, }}, {{ - {FIELD_LITERAL(0x00c412365162e8cf,0x00012283fb34388a,0x003e6543babf39e2,0x00eead6b3a804978,0x0099c0314e8b326f,0x00e98e0a8d477a4f,0x00d2eb96b127a687,0x00ed8d7df87571bb)}, - {FIELD_LITERAL(0x00777463e308cacf,0x00c8acb93950132d,0x00ebddbf4ca48b2c,0x0026ad7ca0795a0a,0x00f99a3d9a715064,0x000d60bcf9d4dfcc,0x005e65a73a437a06,0x0019d536a8db56c8)}, - {FIELD_LITERAL(0x00192d7dd558d135,0x0027cd6a8323ffa7,0x00239f1a412dc1e7,0x0046b4b3be74fc5c,0x0020c47a2bef5bce,0x00aa17e48f43862b,0x00f7e26c96342e5f,0x0008011c530f39a9)}, + {FIELD_LITERAL(0x00c412365162e8cfULL, 0x00012283fb34388aULL, + 0x003e6543babf39e2ULL, 0x00eead6b3a804978ULL, + 0x0099c0314e8b326fULL, 0x00e98e0a8d477a4fULL, + 0x00d2eb96b127a687ULL, 0x00ed8d7df87571bbULL)}, + {FIELD_LITERAL(0x00777463e308cacfULL, 0x00c8acb93950132dULL, + 0x00ebddbf4ca48b2cULL, 0x0026ad7ca0795a0aULL, + 0x00f99a3d9a715064ULL, 0x000d60bcf9d4dfccULL, + 0x005e65a73a437a06ULL, 0x0019d536a8db56c8ULL)}, + {FIELD_LITERAL(0x00192d7dd558d135ULL, 0x0027cd6a8323ffa7ULL, + 0x00239f1a412dc1e7ULL, 0x0046b4b3be74fc5cULL, + 0x0020c47a2bef5bceULL, 0x00aa17e48f43862bULL, + 0x00f7e26c96342e5fULL, 0x0008011c530f39a9ULL)}, }}, {{ - {FIELD_LITERAL(0x00aad4ac569bf0f1,0x00a67adc90b27740,0x0048551369a5751a,0x0031252584a3306a,0x0084e15df770e6fc,0x00d7bba1c74b5805,0x00a80ef223af1012,0x0089c85ceb843a34)}, - {FIELD_LITERAL(0x00c4545be4a54004,0x0099e11f60357e6c,0x001f3936d19515a6,0x007793df84341a6e,0x0051061886717ffa,0x00e9b0a660b28f85,0x0044ea685892de0d,0x000257d2a1fda9d9)}, - {FIELD_LITERAL(0x007e8b01b24ac8a8,0x006cf3b0b5ca1337,0x00f1607d3e36a570,0x0039b7fab82991a1,0x00231777065840c5,0x00998e5afdd346f9,0x00b7dc3e64acc85f,0x00baacc748013ad6)}, + {FIELD_LITERAL(0x00aad4ac569bf0f1ULL, 0x00a67adc90b27740ULL, + 0x0048551369a5751aULL, 0x0031252584a3306aULL, + 0x0084e15df770e6fcULL, 0x00d7bba1c74b5805ULL, + 0x00a80ef223af1012ULL, 0x0089c85ceb843a34ULL)}, + {FIELD_LITERAL(0x00c4545be4a54004ULL, 0x0099e11f60357e6cULL, + 0x001f3936d19515a6ULL, 0x007793df84341a6eULL, + 0x0051061886717ffaULL, 0x00e9b0a660b28f85ULL, + 0x0044ea685892de0dULL, 0x000257d2a1fda9d9ULL)}, + {FIELD_LITERAL(0x007e8b01b24ac8a8ULL, 0x006cf3b0b5ca1337ULL, + 0x00f1607d3e36a570ULL, 0x0039b7fab82991a1ULL, + 0x00231777065840c5ULL, 0x00998e5afdd346f9ULL, + 0x00b7dc3e64acc85fULL, 0x00baacc748013ad6ULL)}, }}, {{ - {FIELD_LITERAL(0x008ea6a4177580bf,0x005fa1953e3f0378,0x005fe409ac74d614,0x00452327f477e047,0x00a4018507fb6073,0x007b6e71951caac8,0x0012b42ab8a6ce91,0x0080eca677294ab7)}, - {FIELD_LITERAL(0x00a53edc023ba69b,0x00c6afa83ddde2e8,0x00c3f638b307b14e,0x004a357a64414062,0x00e4d94d8b582dc9,0x001739caf71695b7,0x0012431b2ae28de1,0x003b6bc98682907c)}, - {FIELD_LITERAL(0x008a9a93be1f99d6,0x0079fa627cc699c8,0x00b0cfb134ba84c8,0x001c4b778249419a,0x00df4ab3d9c44f40,0x009f596e6c1a9e3c,0x001979c0df237316,0x00501e953a919b87)}, + {FIELD_LITERAL(0x008ea6a4177580bfULL, 0x005fa1953e3f0378ULL, + 0x005fe409ac74d614ULL, 0x00452327f477e047ULL, + 0x00a4018507fb6073ULL, 0x007b6e71951caac8ULL, + 0x0012b42ab8a6ce91ULL, 0x0080eca677294ab7ULL)}, + {FIELD_LITERAL(0x00a53edc023ba69bULL, 0x00c6afa83ddde2e8ULL, + 0x00c3f638b307b14eULL, 0x004a357a64414062ULL, + 0x00e4d94d8b582dc9ULL, 0x001739caf71695b7ULL, + 0x0012431b2ae28de1ULL, 0x003b6bc98682907cULL)}, + {FIELD_LITERAL(0x008a9a93be1f99d6ULL, 0x0079fa627cc699c8ULL, + 0x00b0cfb134ba84c8ULL, 0x001c4b778249419aULL, + 0x00df4ab3d9c44f40ULL, 0x009f596e6c1a9e3cULL, + 0x001979c0df237316ULL, 0x00501e953a919b87ULL)}, }} }; const niels_t *curve448_wnaf_base = curve448_wnaf_base_table; diff --git a/crypto/ec/curve448/curve448utils.h b/crypto/ec/curve448/curve448utils.h index 9bf837993c94bf900ccd5a7e68553d761927fe76..9032bb4f730ada1a25e1aeeae6f31801f65258fd 100644 --- a/crypto/ec/curve448/curve448utils.h +++ b/crypto/ec/curve448/curve448utils.h @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -24,7 +24,9 @@ */ # ifndef C448_WORD_BITS # if (defined(__SIZEOF_INT128__) && (__SIZEOF_INT128__ == 16)) \ - && !defined(__sparc__) + && !defined(__sparc__) \ + && (!defined(__SIZEOF_LONG__) || (__SIZEOF_LONG__ == 8)) + # define C448_WORD_BITS 64 /* The number of bits in a word */ # else # define C448_WORD_BITS 32 /* The number of bits in a word */ diff --git a/crypto/ec/curve448/eddsa.c b/crypto/ec/curve448/eddsa.c index 909413a535a8e94a0751402ab25d3c262c1918f1..b28f7dff9138674a75016e273e6350735ce83e61 100644 --- a/crypto/ec/curve448/eddsa.c +++ b/crypto/ec/curve448/eddsa.c @@ -246,10 +246,36 @@ c448_error_t c448_ed448_verify( uint8_t context_len) { curve448_point_t pk_point, r_point; - c448_error_t error = - curve448_point_decode_like_eddsa_and_mul_by_ratio(pk_point, pubkey); + c448_error_t error; curve448_scalar_t challenge_scalar; curve448_scalar_t response_scalar; + /* Order in little endian format */ + static const uint8_t order[] = { + 0xF3, 0x44, 0x58, 0xAB, 0x92, 0xC2, 0x78, 0x23, 0x55, 0x8F, 0xC5, 0x8D, + 0x72, 0xC2, 0x6C, 0x21, 0x90, 0x36, 0xD6, 0xAE, 0x49, 0xDB, 0x4E, 0xC4, + 0xE9, 0x23, 0xCA, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00 + }; + int i; + + /* + * Check that s (second 57 bytes of the sig) is less than the order. Both + * s and the order are in little-endian format. This can be done in + * variable time, since if this is not the case the signature if publicly + * invalid. + */ + for (i = EDDSA_448_PUBLIC_BYTES - 1; i >= 0; i--) { + if (signature[i + EDDSA_448_PUBLIC_BYTES] > order[i]) + return C448_FAILURE; + if (signature[i + EDDSA_448_PUBLIC_BYTES] < order[i]) + break; + } + if (i < 0) + return C448_FAILURE; + + error = + curve448_point_decode_like_eddsa_and_mul_by_ratio(pk_point, pubkey); if (C448_SUCCESS != error) return error; diff --git a/crypto/ec/curve448/f_generic.c b/crypto/ec/curve448/f_generic.c index ed8f36d868f9688aae4e3efa902f67a298aa5cd8..09d08165e250b81a075564e96158e3bd24c4f5f3 100644 --- a/crypto/ec/curve448/f_generic.c +++ b/crypto/ec/curve448/f_generic.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015-2016 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -12,9 +12,9 @@ #include "field.h" static const gf MODULUS = { - FIELD_LITERAL(0xffffffffffffff, 0xffffffffffffff, 0xffffffffffffff, - 0xffffffffffffff, 0xfffffffffffffe, 0xffffffffffffff, - 0xffffffffffffff, 0xffffffffffffff) + FIELD_LITERAL(0xffffffffffffffULL, 0xffffffffffffffULL, 0xffffffffffffffULL, + 0xffffffffffffffULL, 0xfffffffffffffeULL, 0xffffffffffffffULL, + 0xffffffffffffffULL, 0xffffffffffffffULL) }; /* Serialize to wire format. */ diff --git a/crypto/ec/curve448/point_448.h b/crypto/ec/curve448/point_448.h index 0ef3b8714e26334ba8e2f0c0af6bd0f0bbb50482..399f91b9a1d98055516e31780b2115da526a1f3e 100644 --- a/crypto/ec/curve448/point_448.h +++ b/crypto/ec/curve448/point_448.h @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015-2016 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -116,7 +116,7 @@ void curve448_scalar_encode(unsigned char ser[C448_SCALAR_BYTES], /* * Add two scalars. |a|, |b| and |out| may alias each other. - * + * * a (in): One scalar. * b (in): Another scalar. * out (out): a+b. @@ -135,7 +135,7 @@ void curve448_scalar_sub(curve448_scalar_t out, /* * Multiply two scalars. |a|, |b| and |out| may alias each other. - * + * * a (in): One scalar. * b (in): Another scalar. * out (out): a*b. @@ -145,7 +145,7 @@ void curve448_scalar_mul(curve448_scalar_t out, /* * Halve a scalar. |a| and |out| may alias each other. -* +* * a (in): A scalar. * out (out): a/2. */ @@ -154,7 +154,7 @@ void curve448_scalar_halve(curve448_scalar_t out, const curve448_scalar_t a); /* * Copy a scalar. The scalars may alias each other, in which case this * function does nothing. - * + * * a (in): A scalar. * out (out): Will become a copy of a. */ @@ -183,7 +183,7 @@ static ossl_inline void curve448_point_copy(curve448_point_t a, * * a (in): A point. * b (in): Another point. - * + * * Returns: * C448_TRUE: The points are equal. * C448_FALSE: The points are not equal. @@ -243,7 +243,7 @@ void curve448_point_mul_by_ratio_and_encode_like_x448( /* * RFC 7748 Diffie-Hellman base point scalarmul. This function uses a different * (non-Decaf) encoding. - * + * * out (out): The scaled point base*scalar * scalar (in): The scalar to multiply by. */ @@ -273,7 +273,7 @@ void curve448_precomputed_scalarmul(curve448_point_t scaled, * base2 (in): A second point to be scaled. * scalar2 (in) A second scalar to multiply by. * - * Warning: This function takes variable time, and may leak the scalars used. + * Warning: This function takes variable time, and may leak the scalars used. * It is designed for signature verification. */ void curve448_base_double_scalarmul_non_secret(curve448_point_t combo, diff --git a/crypto/ec/curve448/scalar.c b/crypto/ec/curve448/scalar.c index b5702c025570936d8c4c22010bb79d3b6cec2710..347794bbac38de9bb7e24c6cbe31c49917b495e3 100644 --- a/crypto/ec/curve448/scalar.c +++ b/crypto/ec/curve448/scalar.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2015-2016 Cryptography Research, Inc. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -14,24 +14,24 @@ #include "word.h" #include "point_448.h" -static const c448_word_t MONTGOMERY_FACTOR = (c448_word_t) 0x3bd440fae918bc5; +static const c448_word_t MONTGOMERY_FACTOR = (c448_word_t) 0x3bd440fae918bc5ULL; static const curve448_scalar_t sc_p = { { { - SC_LIMB(0x2378c292ab5844f3), SC_LIMB(0x216cc2728dc58f55), - SC_LIMB(0xc44edb49aed63690), SC_LIMB(0xffffffff7cca23e9), - SC_LIMB(0xffffffffffffffff), SC_LIMB(0xffffffffffffffff), - SC_LIMB(0x3fffffffffffffff) + SC_LIMB(0x2378c292ab5844f3ULL), SC_LIMB(0x216cc2728dc58f55ULL), + SC_LIMB(0xc44edb49aed63690ULL), SC_LIMB(0xffffffff7cca23e9ULL), + SC_LIMB(0xffffffffffffffffULL), SC_LIMB(0xffffffffffffffffULL), + SC_LIMB(0x3fffffffffffffffULL) } } }, sc_r2 = { { { - SC_LIMB(0xe3539257049b9b60), SC_LIMB(0x7af32c4bc1b195d9), - SC_LIMB(0x0d66de2388ea1859), SC_LIMB(0xae17cf725ee4d838), - SC_LIMB(0x1a9cc14ba3c47c44), SC_LIMB(0x2052bcb7e4d070af), - SC_LIMB(0x3402a939f823b729) + SC_LIMB(0xe3539257049b9b60ULL), SC_LIMB(0x7af32c4bc1b195d9ULL), + SC_LIMB(0x0d66de2388ea1859ULL), SC_LIMB(0xae17cf725ee4d838ULL), + SC_LIMB(0x1a9cc14ba3c47c44ULL), SC_LIMB(0x2052bcb7e4d070afULL), + SC_LIMB(0x3402a939f823b729ULL) } } }; diff --git a/crypto/ec/ec2_oct.c b/crypto/ec/ec2_oct.c index 0867f994ea50f5e2221687a5aee8f29505a1e2cb..ee300518d69c95ba5a227ded69fa6b8724797387 100644 --- a/crypto/ec/ec2_oct.c +++ b/crypto/ec/ec2_oct.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -237,7 +237,7 @@ int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx) { point_conversion_form_t form; - int y_bit; + int y_bit, m; BN_CTX *new_ctx = NULL; BIGNUM *x, *y, *yxi; size_t field_len, enc_len; @@ -270,7 +270,8 @@ int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, return EC_POINT_set_to_infinity(group, point); } - field_len = (EC_GROUP_get_degree(group) + 7) / 8; + m = EC_GROUP_get_degree(group); + field_len = (m + 7) / 8; enc_len = (form == POINT_CONVERSION_COMPRESSED) ? 1 + field_len : 1 + 2 * field_len; @@ -295,7 +296,7 @@ int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, if (!BN_bin2bn(buf + 1, field_len, x)) goto err; - if (BN_ucmp(x, group->field) >= 0) { + if (BN_num_bits(x) > m) { ECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING); goto err; } @@ -306,7 +307,7 @@ int ec_GF2m_simple_oct2point(const EC_GROUP *group, EC_POINT *point, } else { if (!BN_bin2bn(buf + 1 + field_len, field_len, y)) goto err; - if (BN_ucmp(y, group->field) >= 0) { + if (BN_num_bits(y) > m) { ECerr(EC_F_EC_GF2M_SIMPLE_OCT2POINT, EC_R_INVALID_ENCODING); goto err; } diff --git a/crypto/ec/ec2_smpl.c b/crypto/ec/ec2_smpl.c index 87f7ce56911d9c23bf9b27cf5f8f4e1a8c1adffb..898e741fcb97ed1c6fd00768773670c4b38d02a8 100644 --- a/crypto/ec/ec2_smpl.c +++ b/crypto/ec/ec2_smpl.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -204,8 +204,7 @@ int ec_GF2m_simple_group_check_discriminant(const EC_GROUP *group, ret = 1; err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); return ret; } @@ -810,7 +809,7 @@ int ec_GF2m_simple_ladder_post(const EC_GROUP *group, || !group->meth->field_mul(group, t2, t2, t0, ctx) || !BN_GF2m_add(t1, t2, t1) || !group->meth->field_mul(group, t2, p->X, t0, ctx) - || !BN_GF2m_mod_inv(t2, t2, group->field, ctx) + || !group->meth->field_inv(group, t2, t2, ctx) || !group->meth->field_mul(group, t1, t1, t2, ctx) || !group->meth->field_mul(group, r->X, r->Z, t2, ctx) || !BN_GF2m_add(t2, p->X, r->X) @@ -889,6 +888,21 @@ int ec_GF2m_simple_points_mul(const EC_GROUP *group, EC_POINT *r, return ret; } +/*- + * Computes the multiplicative inverse of a in GF(2^m), storing the result in r. + * If a is zero (or equivalent), you'll get a EC_R_CANNOT_INVERT error. + * SCA hardening is with blinding: BN_GF2m_mod_inv does that. + */ +static int ec_GF2m_simple_field_inv(const EC_GROUP *group, BIGNUM *r, + const BIGNUM *a, BN_CTX *ctx) +{ + int ret; + + if (!(ret = BN_GF2m_mod_inv(r, a, group->field, ctx))) + ECerr(EC_F_EC_GF2M_SIMPLE_FIELD_INV, EC_R_CANNOT_INVERT); + return ret; +} + const EC_METHOD *EC_GF2m_simple_method(void) { static const EC_METHOD ret = { @@ -929,6 +943,7 @@ const EC_METHOD *EC_GF2m_simple_method(void) ec_GF2m_simple_field_mul, ec_GF2m_simple_field_sqr, ec_GF2m_simple_field_div, + ec_GF2m_simple_field_inv, 0, /* field_encode */ 0, /* field_decode */ 0, /* field_set_to_one */ diff --git a/crypto/ec/ec_ameth.c b/crypto/ec/ec_ameth.c index a3164b5b2ed9743854f7a2c209a869f30d3d0151..c086f47ab3cccb439fdd014f4fc1edacc9e5cdbc 100644 --- a/crypto/ec/ec_ameth.c +++ b/crypto/ec/ec_ameth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -504,8 +504,13 @@ static int ec_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) #endif case ASN1_PKEY_CTRL_DEFAULT_MD_NID: - *(int *)arg2 = NID_sha256; - return 2; + if (EVP_PKEY_id(pkey) == EVP_PKEY_SM2) { + /* For SM2, the only valid digest-alg is SM3 */ + *(int *)arg2 = NID_sm3; + } else { + *(int *)arg2 = NID_sha256; + } + return 1; case ASN1_PKEY_CTRL_SET1_TLS_ENCPT: return EC_KEY_oct2key(EVP_PKEY_get0_EC_KEY(pkey), arg2, arg1, NULL); diff --git a/crypto/ec/ec_err.c b/crypto/ec/ec_err.c index 8f4911abec79a02050012894b4934bb4cbcc2c9b..ce3493823218f37c4a73380e2a3b0396e3b9075c 100644 --- a/crypto/ec/ec_err.c +++ b/crypto/ec/ec_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -66,6 +66,8 @@ static const ERR_STRING_DATA EC_str_functs[] = { "ec_asn1_group2fieldid"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY, 0), "ec_GF2m_montgomery_point_multiply"}, + {ERR_PACK(ERR_LIB_EC, EC_F_EC_GF2M_SIMPLE_FIELD_INV, 0), + "ec_GF2m_simple_field_inv"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT, 0), "ec_GF2m_simple_group_check_discriminant"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE, 0), @@ -90,6 +92,8 @@ static const ERR_STRING_DATA EC_str_functs[] = { "ec_GFp_mont_field_decode"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_MONT_FIELD_ENCODE, 0), "ec_GFp_mont_field_encode"}, + {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_MONT_FIELD_INV, 0), + "ec_GFp_mont_field_inv"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_MONT_FIELD_MUL, 0), "ec_GFp_mont_field_mul"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE, 0), @@ -124,6 +128,8 @@ static const ERR_STRING_DATA EC_str_functs[] = { "ec_GFp_nist_group_set_curve"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES, 0), "ec_GFp_simple_blind_coordinates"}, + {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_SIMPLE_FIELD_INV, 0), + "ec_GFp_simple_field_inv"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT, 0), "ec_GFp_simple_group_check_discriminant"}, {ERR_PACK(ERR_LIB_EC, EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE, 0), @@ -287,6 +293,7 @@ static const ERR_STRING_DATA EC_str_reasons[] = { {ERR_PACK(ERR_LIB_EC, 0, EC_R_BAD_SIGNATURE), "bad signature"}, {ERR_PACK(ERR_LIB_EC, 0, EC_R_BIGNUM_OUT_OF_RANGE), "bignum out of range"}, {ERR_PACK(ERR_LIB_EC, 0, EC_R_BUFFER_TOO_SMALL), "buffer too small"}, + {ERR_PACK(ERR_LIB_EC, 0, EC_R_CANNOT_INVERT), "cannot invert"}, {ERR_PACK(ERR_LIB_EC, 0, EC_R_COORDINATES_OUT_OF_RANGE), "coordinates out of range"}, {ERR_PACK(ERR_LIB_EC, 0, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH), diff --git a/crypto/ec/ec_lcl.h b/crypto/ec/ec_lcl.h index e055ddab1c76e0a1d6194530879e1a706cc3c75b..119255f1dc832b5ed9fd245dd5df22f11f5d6185 100644 --- a/crypto/ec/ec_lcl.h +++ b/crypto/ec/ec_lcl.h @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -15,7 +15,6 @@ #include <openssl/bn.h> #include "internal/refcount.h" #include "internal/ec_int.h" -#include "curve448/curve448_lcl.h" #if defined(__SUNPRO_C) # if __SUNPRO_C >= 0x520 @@ -154,6 +153,13 @@ struct ec_method_st { int (*field_sqr) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); int (*field_div) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *); + /*- + * 'field_inv' computes the multipicative inverse of a in the field, + * storing the result in r. + * + * If 'a' is zero (or equivalent), you'll get an EC_R_CANNOT_INVERT error. + */ + int (*field_inv) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); /* e.g. to Montgomery */ int (*field_encode) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); @@ -390,6 +396,8 @@ int ec_GFp_simple_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *); int ec_GFp_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); +int ec_GFp_simple_field_inv(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, + BN_CTX *); int ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx); int ec_GFp_simple_ladder_pre(const EC_GROUP *group, @@ -413,6 +421,8 @@ int ec_GFp_mont_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *); int ec_GFp_mont_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); +int ec_GFp_mont_field_inv(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, + BN_CTX *); int ec_GFp_mont_field_encode(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *); int ec_GFp_mont_field_decode(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c index b89e3979d9dcb73a5e702e7c3b582a38f33b06ba..8cab5a5061cf04fea28725e1de301a9767cc56cb 100644 --- a/crypto/ec/ec_lib.c +++ b/crypto/ec/ec_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -1074,8 +1074,7 @@ static int ec_field_inverse_mod_ord(const EC_GROUP *group, BIGNUM *r, ret = 1; err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); return ret; } diff --git a/crypto/ec/ec_mult.c b/crypto/ec/ec_mult.c index 0e0a5e1394affb4bd1976ed0f65ae833d7f0ba1c..57bdf116f1b68237c20713cd3439bcb6b5be8c08 100644 --- a/crypto/ec/ec_mult.c +++ b/crypto/ec/ec_mult.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -378,7 +378,7 @@ int ec_scalar_mul_ladder(const EC_GROUP *group, EC_POINT *r, err: EC_POINT_free(p); - EC_POINT_free(s); + EC_POINT_clear_free(s); BN_CTX_end(ctx); return ret; @@ -441,7 +441,7 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, * scalar multiplication implementation based on a Montgomery ladder, * with various timing attack defenses. */ - if ((scalar != NULL) && (num == 0)) { + if ((scalar != group->order) && (scalar != NULL) && (num == 0)) { /*- * In this case we want to compute scalar * GeneratorPoint: this * codepath is reached most prominently by (ephemeral) key @@ -452,7 +452,7 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, */ return ec_scalar_mul_ladder(group, r, scalar, NULL, ctx); } - if ((scalar == NULL) && (num == 1)) { + if ((scalar == NULL) && (num == 1) && (scalars[0] != group->order)) { /*- * In this case we want to compute scalar * VariablePoint: this * codepath is reached most prominently by the second half of ECDH, @@ -948,8 +948,7 @@ int ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx) ret = 1; err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); EC_ec_pre_comp_free(pre_comp); if (points) { diff --git a/crypto/ec/ec_pmeth.c b/crypto/ec/ec_pmeth.c index f4ad0749ef45860d4ad260625d315139f23e88cf..454be16c543911ced87edaa9ecaa8434c44ff644 100644 --- a/crypto/ec/ec_pmeth.c +++ b/crypto/ec/ec_pmeth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -323,7 +323,11 @@ static int pkey_ec_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) EVP_MD_type((const EVP_MD *)p2) != NID_sha224 && EVP_MD_type((const EVP_MD *)p2) != NID_sha256 && EVP_MD_type((const EVP_MD *)p2) != NID_sha384 && - EVP_MD_type((const EVP_MD *)p2) != NID_sha512) { + EVP_MD_type((const EVP_MD *)p2) != NID_sha512 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_224 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_256 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_384 && + EVP_MD_type((const EVP_MD *)p2) != NID_sha3_512) { ECerr(EC_F_PKEY_EC_CTRL, EC_R_INVALID_DIGEST_TYPE); return 0; } diff --git a/crypto/ec/ecdh_ossl.c b/crypto/ec/ecdh_ossl.c index bd93793a180a31ce8a19fe3fe127501f1ec97926..5608c62b2ac94e3d1798c38eb115bb1e3be206c5 100644 --- a/crypto/ec/ecdh_ossl.c +++ b/crypto/ec/ecdh_ossl.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -112,9 +112,8 @@ int ecdh_simple_compute_key(unsigned char **pout, size_t *poutlen, ret = 1; err: - EC_POINT_free(tmp); - if (ctx) - BN_CTX_end(ctx); + EC_POINT_clear_free(tmp); + BN_CTX_end(ctx); BN_CTX_free(ctx); OPENSSL_free(buf); return ret; diff --git a/crypto/ec/ecp_mont.c b/crypto/ec/ecp_mont.c index 36682e5cfbd184bd471c636f179870eec7fdb513..252e66ef3791cbf2cf1061fa14de70a6a35c62d0 100644 --- a/crypto/ec/ecp_mont.c +++ b/crypto/ec/ecp_mont.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -50,6 +50,7 @@ const EC_METHOD *EC_GFp_mont_method(void) ec_GFp_mont_field_mul, ec_GFp_mont_field_sqr, 0 /* field_div */ , + ec_GFp_mont_field_inv, ec_GFp_mont_field_encode, ec_GFp_mont_field_decode, ec_GFp_mont_field_set_to_one, @@ -206,6 +207,54 @@ int ec_GFp_mont_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, return BN_mod_mul_montgomery(r, a, a, group->field_data1, ctx); } +/*- + * Computes the multiplicative inverse of a in GF(p), storing the result in r. + * If a is zero (or equivalent), you'll get a EC_R_CANNOT_INVERT error. + * We have a Mont structure, so SCA hardening is FLT inversion. + */ +int ec_GFp_mont_field_inv(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, + BN_CTX *ctx) +{ + BIGNUM *e = NULL; + BN_CTX *new_ctx = NULL; + int ret = 0; + + if (group->field_data1 == NULL) + return 0; + + if (ctx == NULL && (ctx = new_ctx = BN_CTX_secure_new()) == NULL) + return 0; + + BN_CTX_start(ctx); + if ((e = BN_CTX_get(ctx)) == NULL) + goto err; + + /* Inverse in constant time with Fermats Little Theorem */ + if (!BN_set_word(e, 2)) + goto err; + if (!BN_sub(e, group->field, e)) + goto err; + /*- + * Exponent e is public. + * No need for scatter-gather or BN_FLG_CONSTTIME. + */ + if (!BN_mod_exp_mont(r, a, e, group->field, ctx, group->field_data1)) + goto err; + + /* throw an error on zero */ + if (BN_is_zero(r)) { + ECerr(EC_F_EC_GFP_MONT_FIELD_INV, EC_R_CANNOT_INVERT); + goto err; + } + + ret = 1; + + err: + BN_CTX_end(ctx); + BN_CTX_free(new_ctx); + return ret; +} + int ec_GFp_mont_field_encode(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, BN_CTX *ctx) { diff --git a/crypto/ec/ecp_nist.c b/crypto/ec/ecp_nist.c index f53de1a1638bd4c5e6f4405d4b74884a469d526e..5eaa99d8402b6c3325de017124e20f4d416dda8f 100644 --- a/crypto/ec/ecp_nist.c +++ b/crypto/ec/ecp_nist.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -52,6 +52,7 @@ const EC_METHOD *EC_GFp_nist_method(void) ec_GFp_nist_field_mul, ec_GFp_nist_field_sqr, 0 /* field_div */ , + ec_GFp_simple_field_inv, 0 /* field_encode */ , 0 /* field_decode */ , 0, /* field_set_to_one */ diff --git a/crypto/ec/ecp_nistp224.c b/crypto/ec/ecp_nistp224.c index 555bf307dd031af61775500718359e294b1b26af..025273a1444087f708a1ab43a63da1b8fd25759a 100644 --- a/crypto/ec/ecp_nistp224.c +++ b/crypto/ec/ecp_nistp224.c @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2010-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -279,6 +279,7 @@ const EC_METHOD *EC_GFp_nistp224_method(void) ec_GFp_nist_field_mul, ec_GFp_nist_field_sqr, 0 /* field_div */ , + ec_GFp_simple_field_inv, 0 /* field_encode */ , 0 /* field_decode */ , 0, /* field_set_to_one */ diff --git a/crypto/ec/ecp_nistp256.c b/crypto/ec/ecp_nistp256.c index c87a5e548d369bd81c519b7faf704118899d697c..a21e5f78fc9065370f1a3744b06d8cf1685a5fa1 100644 --- a/crypto/ec/ecp_nistp256.c +++ b/crypto/ec/ecp_nistp256.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -1810,6 +1810,7 @@ const EC_METHOD *EC_GFp_nistp256_method(void) ec_GFp_nist_field_mul, ec_GFp_nist_field_sqr, 0 /* field_div */ , + ec_GFp_simple_field_inv, 0 /* field_encode */ , 0 /* field_decode */ , 0, /* field_set_to_one */ diff --git a/crypto/ec/ecp_nistp521.c b/crypto/ec/ecp_nistp521.c index 14f2feeb6999624c888e9e496810827c9b626eef..e31b85c5f755c06ba9651b6bd4c94a25d07a27ec 100644 --- a/crypto/ec/ecp_nistp521.c +++ b/crypto/ec/ecp_nistp521.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -357,10 +357,15 @@ static void felem_diff64(felem out, const felem in) static void felem_diff_128_64(largefelem out, const felem in) { /* - * In order to prevent underflow, we add 0 mod p before subtracting. + * In order to prevent underflow, we add 64p mod p (which is equivalent + * to 0 mod p) before subtracting. p is 2^521 - 1, i.e. in binary a 521 + * digit number with all bits set to 1. See "The representation of field + * elements" comment above for a description of how limbs are used to + * represent a number. 64p is represented with 8 limbs containing a number + * with 58 bits set and one limb with a number with 57 bits set. */ - static const limb two63m6 = (((limb) 1) << 62) - (((limb) 1) << 5); - static const limb two63m5 = (((limb) 1) << 62) - (((limb) 1) << 4); + static const limb two63m6 = (((limb) 1) << 63) - (((limb) 1) << 6); + static const limb two63m5 = (((limb) 1) << 63) - (((limb) 1) << 5); out[0] += two63m6 - in[0]; out[1] += two63m5 - in[1]; @@ -1647,6 +1652,7 @@ const EC_METHOD *EC_GFp_nistp521_method(void) ec_GFp_nist_field_mul, ec_GFp_nist_field_sqr, 0 /* field_div */ , + ec_GFp_simple_field_inv, 0 /* field_encode */ , 0 /* field_decode */ , 0, /* field_set_to_one */ diff --git a/crypto/ec/ecp_nistz256.c b/crypto/ec/ecp_nistz256.c index b0564bdbd04c56f9dc1bd63e3fd5ad9e5e9c5d8b..7ad5eb627de12969f83fedd2b55f448f5accbfed 100644 --- a/crypto/ec/ecp_nistz256.c +++ b/crypto/ec/ecp_nistz256.c @@ -1,5 +1,5 @@ /* - * Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2014, Intel Corporation. All Rights Reserved. * Copyright (c) 2015, CloudFlare, Inc. * @@ -888,8 +888,7 @@ __owur static int ecp_nistz256_mult_precompute(EC_GROUP *group, BN_CTX *ctx) ret = 1; err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); EC_nistz256_pre_comp_free(pre_comp); @@ -1677,6 +1676,7 @@ const EC_METHOD *EC_GFp_nistz256_method(void) ec_GFp_mont_field_mul, ec_GFp_mont_field_sqr, 0, /* field_div */ + ec_GFp_mont_field_inv, ec_GFp_mont_field_encode, ec_GFp_mont_field_decode, ec_GFp_mont_field_set_to_one, diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c index d0c5557ff4ddaf52c2d7389d7114a0abf012377a..e6e4c9d2cbb76e051ec0e441c02b9fd96dbc804b 100644 --- a/crypto/ec/ecp_smpl.c +++ b/crypto/ec/ecp_smpl.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -51,6 +51,7 @@ const EC_METHOD *EC_GFp_simple_method(void) ec_GFp_simple_field_mul, ec_GFp_simple_field_sqr, 0 /* field_div */ , + ec_GFp_simple_field_inv, 0 /* field_encode */ , 0 /* field_decode */ , 0, /* field_set_to_one */ @@ -306,8 +307,7 @@ int ec_GFp_simple_group_check_discriminant(const EC_GROUP *group, BN_CTX *ctx) ret = 1; err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); return ret; } @@ -553,7 +553,7 @@ int ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP *group, } } } else { - if (!BN_mod_inverse(Z_1, Z_, group->field, ctx)) { + if (!group->meth->field_inv(group, Z_1, Z_, ctx)) { ECerr(EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES, ERR_R_BN_LIB); goto err; @@ -786,8 +786,7 @@ int ec_GFp_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, ret = 1; end: - if (ctx) /* otherwise we already called BN_CTX_end */ - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(new_ctx); return ret; } @@ -1266,7 +1265,7 @@ int ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t num, * points[i]->Z by its inverse. */ - if (!BN_mod_inverse(tmp, prod_Z[num - 1], group->field, ctx)) { + if (!group->meth->field_inv(group, tmp, prod_Z[num - 1], ctx)) { ECerr(EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE, ERR_R_BN_LIB); goto err; } @@ -1369,6 +1368,50 @@ int ec_GFp_simple_field_sqr(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, return BN_mod_sqr(r, a, group->field, ctx); } +/*- + * Computes the multiplicative inverse of a in GF(p), storing the result in r. + * If a is zero (or equivalent), you'll get a EC_R_CANNOT_INVERT error. + * Since we don't have a Mont structure here, SCA hardening is with blinding. + */ +int ec_GFp_simple_field_inv(const EC_GROUP *group, BIGNUM *r, const BIGNUM *a, + BN_CTX *ctx) +{ + BIGNUM *e = NULL; + BN_CTX *new_ctx = NULL; + int ret = 0; + + if (ctx == NULL && (ctx = new_ctx = BN_CTX_secure_new()) == NULL) + return 0; + + BN_CTX_start(ctx); + if ((e = BN_CTX_get(ctx)) == NULL) + goto err; + + do { + if (!BN_priv_rand_range(e, group->field)) + goto err; + } while (BN_is_zero(e)); + + /* r := a * e */ + if (!group->meth->field_mul(group, r, a, e, ctx)) + goto err; + /* r := 1/(a * e) */ + if (!BN_mod_inverse(r, r, group->field, ctx)) { + ECerr(EC_F_EC_GFP_SIMPLE_FIELD_INV, EC_R_CANNOT_INVERT); + goto err; + } + /* r := e/(a * e) = 1/a */ + if (!group->meth->field_mul(group, r, r, e, ctx)) + goto err; + + ret = 1; + + err: + BN_CTX_end(ctx); + BN_CTX_free(new_ctx); + return ret; +} + /*- * Apply randomization of EC point projective coordinates: * diff --git a/crypto/ec/ecx_meth.c b/crypto/ec/ecx_meth.c index b76bfdb6dc342f4a19dc98f13d96561871a23f6f..e4cac99e2d2acf0c819bfe5e95e40d04e854402e 100644 --- a/crypto/ec/ecx_meth.c +++ b/crypto/ec/ecx_meth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -15,6 +15,7 @@ #include "internal/asn1_int.h" #include "internal/evp_int.h" #include "ec_lcl.h" +#include "curve448/curve448_lcl.h" #define X25519_BITS 253 #define X25519_SECURITY_BITS 128 diff --git a/crypto/engine/README b/crypto/engine/README index 0050b9e50951cc98729c1acd4b219d92afb4cfd7..c7a5696ca14cd7a4330a70530b8983741e962c7f 100644 --- a/crypto/engine/README +++ b/crypto/engine/README @@ -26,7 +26,7 @@ algorithm/mode pair are; EVP_EncryptInit(&ctx, cipher, key, iv); [ ... use EVP_EncryptUpdate() and EVP_EncryptFinal() ...] -(ii) indirectly; +(ii) indirectly; OpenSSL_add_all_ciphers(); cipher = EVP_get_cipherbyname("des_cbc"); EVP_EncryptInit(&ctx, cipher, key, iv); diff --git a/crypto/engine/eng_devcrypto.c b/crypto/engine/eng_devcrypto.c index 4a0ba09a38bec178f58eabbece9ff96b15827ce7..717d7c27794ff1a3709c798b14b1100403e34211 100644 --- a/crypto/engine/eng_devcrypto.c +++ b/crypto/engine/eng_devcrypto.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,6 +24,8 @@ #include "internal/engine.h" +/* #define ENGINE_DEVCRYPTO_DEBUG */ + #ifdef CRYPTO_ALGORITHM_MIN # define CHECK_BSD_STYLE_MACROS #endif @@ -35,6 +37,15 @@ */ static int cfd; +static int clean_devcrypto_session(struct session_op *sess) { + if (ioctl(cfd, CIOCFSESSION, &sess->ses) < 0) { + SYSerr(SYS_F_IOCTL, errno); + return 0; + } + memset(sess, 0, sizeof(struct session_op)); + return 1; +} + /****************************************************************************** * * Ciphers @@ -47,10 +58,12 @@ static int cfd; struct cipher_ctx { struct session_op sess; - - /* to pass from init to do_cipher */ - const unsigned char *iv; int op; /* COP_ENCRYPT or COP_DECRYPT */ + unsigned long mode; /* EVP_CIPH_*_MODE */ + + /* to handle ctr mode being a stream cipher */ + unsigned char partial[EVP_MAX_BLOCK_LENGTH]; + unsigned int blocksize, num; }; static const struct cipher_data_st { @@ -87,9 +100,9 @@ static const struct cipher_data_st { { NID_aes_256_xts, 16, 256 / 8 * 2, 16, EVP_CIPH_XTS_MODE, CRYPTO_AES_XTS }, #endif #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_AES_ECB) - { NID_aes_128_ecb, 16, 128 / 8, 16, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, - { NID_aes_192_ecb, 16, 192 / 8, 16, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, - { NID_aes_256_ecb, 16, 256 / 8, 16, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, + { NID_aes_128_ecb, 16, 128 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, + { NID_aes_192_ecb, 16, 192 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, + { NID_aes_256_ecb, 16, 256 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, #endif #if 0 /* Not yet supported */ { NID_aes_128_gcm, 16, 128 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM }, @@ -141,11 +154,17 @@ static int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, const struct cipher_data_st *cipher_d = get_cipher_data(EVP_CIPHER_CTX_nid(ctx)); - memset(&cipher_ctx->sess, 0, sizeof(cipher_ctx->sess)); + /* cleanup a previous session */ + if (cipher_ctx->sess.ses != 0 && + clean_devcrypto_session(&cipher_ctx->sess) == 0) + return 0; + cipher_ctx->sess.cipher = cipher_d->devcryptoid; cipher_ctx->sess.keylen = cipher_d->keylen; cipher_ctx->sess.key = (void *)key; cipher_ctx->op = enc ? COP_ENCRYPT : COP_DECRYPT; + cipher_ctx->mode = cipher_d->flags & EVP_CIPH_MODE; + cipher_ctx->blocksize = cipher_d->blocksize; if (ioctl(cfd, CIOCGSESSION, &cipher_ctx->sess) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; @@ -160,8 +179,11 @@ static int cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, struct cipher_ctx *cipher_ctx = (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); struct crypt_op cryp; + unsigned char *iv = EVP_CIPHER_CTX_iv_noconst(ctx); #if !defined(COP_FLAG_WRITE_IV) unsigned char saved_iv[EVP_MAX_IV_LENGTH]; + const unsigned char *ivptr; + size_t nblocks, ivlen; #endif memset(&cryp, 0, sizeof(cryp)); @@ -169,19 +191,28 @@ static int cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, cryp.len = inl; cryp.src = (void *)in; cryp.dst = (void *)out; - cryp.iv = (void *)EVP_CIPHER_CTX_iv_noconst(ctx); + cryp.iv = (void *)iv; cryp.op = cipher_ctx->op; #if !defined(COP_FLAG_WRITE_IV) cryp.flags = 0; - if (EVP_CIPHER_CTX_iv_length(ctx) > 0) { - assert(inl >= EVP_CIPHER_CTX_iv_length(ctx)); - if (!EVP_CIPHER_CTX_encrypting(ctx)) { - unsigned char *ivptr = in + inl - EVP_CIPHER_CTX_iv_length(ctx); - - memcpy(saved_iv, ivptr, EVP_CIPHER_CTX_iv_length(ctx)); + ivlen = EVP_CIPHER_CTX_iv_length(ctx); + if (ivlen > 0) + switch (cipher_ctx->mode) { + case EVP_CIPH_CBC_MODE: + assert(inl >= ivlen); + if (!EVP_CIPHER_CTX_encrypting(ctx)) { + ivptr = in + inl - ivlen; + memcpy(saved_iv, ivptr, ivlen); + } + break; + + case EVP_CIPH_CTR_MODE: + break; + + default: /* should not happen */ + return 0; } - } #else cryp.flags = COP_FLAG_WRITE_IV; #endif @@ -192,32 +223,113 @@ static int cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } #if !defined(COP_FLAG_WRITE_IV) - if (EVP_CIPHER_CTX_iv_length(ctx) > 0) { - unsigned char *ivptr = saved_iv; + if (ivlen > 0) + switch (cipher_ctx->mode) { + case EVP_CIPH_CBC_MODE: + assert(inl >= ivlen); + if (EVP_CIPHER_CTX_encrypting(ctx)) + ivptr = out + inl - ivlen; + else + ivptr = saved_iv; + + memcpy(iv, ivptr, ivlen); + break; + + case EVP_CIPH_CTR_MODE: + nblocks = (inl + cipher_ctx->blocksize - 1) + / cipher_ctx->blocksize; + do { + ivlen--; + nblocks += iv[ivlen]; + iv[ivlen] = (uint8_t) nblocks; + nblocks >>= 8; + } while (ivlen); + break; + + default: /* should not happen */ + return 0; + } +#endif + + return 1; +} - assert(inl >= EVP_CIPHER_CTX_iv_length(ctx)); - if (!EVP_CIPHER_CTX_encrypting(ctx)) - ivptr = out + inl - EVP_CIPHER_CTX_iv_length(ctx); +static int ctr_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) +{ + struct cipher_ctx *cipher_ctx = + (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); + size_t nblocks, len; - memcpy(EVP_CIPHER_CTX_iv_noconst(ctx), ivptr, - EVP_CIPHER_CTX_iv_length(ctx)); + /* initial partial block */ + while (cipher_ctx->num && inl) { + (*out++) = *(in++) ^ cipher_ctx->partial[cipher_ctx->num]; + --inl; + cipher_ctx->num = (cipher_ctx->num + 1) % cipher_ctx->blocksize; + } + + /* full blocks */ + if (inl > (unsigned int) cipher_ctx->blocksize) { + nblocks = inl/cipher_ctx->blocksize; + len = nblocks * cipher_ctx->blocksize; + if (cipher_do_cipher(ctx, out, in, len) < 1) + return 0; + inl -= len; + out += len; + in += len; + } + + /* final partial block */ + if (inl) { + memset(cipher_ctx->partial, 0, cipher_ctx->blocksize); + if (cipher_do_cipher(ctx, cipher_ctx->partial, cipher_ctx->partial, + cipher_ctx->blocksize) < 1) + return 0; + while (inl--) { + out[cipher_ctx->num] = in[cipher_ctx->num] + ^ cipher_ctx->partial[cipher_ctx->num]; + cipher_ctx->num++; + } } -#endif return 1; } -static int cipher_cleanup(EVP_CIPHER_CTX *ctx) +static int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2) { struct cipher_ctx *cipher_ctx = (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); + EVP_CIPHER_CTX *to_ctx = (EVP_CIPHER_CTX *)p2; + struct cipher_ctx *to_cipher_ctx; + + switch (type) { + case EVP_CTRL_COPY: + if (cipher_ctx == NULL) + return 1; + /* when copying the context, a new session needs to be initialized */ + to_cipher_ctx = + (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(to_ctx); + memset(&to_cipher_ctx->sess, 0, sizeof(to_cipher_ctx->sess)); + return cipher_init(to_ctx, cipher_ctx->sess.key, EVP_CIPHER_CTX_iv(ctx), + (cipher_ctx->op == COP_ENCRYPT)); + + case EVP_CTRL_INIT: + memset(&cipher_ctx->sess, 0, sizeof(cipher_ctx->sess)); + return 1; - if (ioctl(cfd, CIOCFSESSION, &cipher_ctx->sess.ses) < 0) { - SYSerr(SYS_F_IOCTL, errno); - return 0; + default: + break; } - return 1; + return -1; +} + +static int cipher_cleanup(EVP_CIPHER_CTX *ctx) +{ + struct cipher_ctx *cipher_ctx = + (struct cipher_ctx *)EVP_CIPHER_CTX_get_cipher_data(ctx); + + return clean_devcrypto_session(&cipher_ctx->sess); } /* @@ -233,6 +345,7 @@ static void prepare_cipher_methods(void) { size_t i; struct session_op sess; + unsigned long cipher_mode; memset(&sess, 0, sizeof(sess)); sess.key = (void *)"01234567890123456789012345678901234567890123456789"; @@ -250,18 +363,26 @@ static void prepare_cipher_methods(void) || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) continue; + cipher_mode = cipher_data[i].flags & EVP_CIPH_MODE; + if ((known_cipher_methods[i] = EVP_CIPHER_meth_new(cipher_data[i].nid, - cipher_data[i].blocksize, + cipher_mode == EVP_CIPH_CTR_MODE ? 1 : + cipher_data[i].blocksize, cipher_data[i].keylen)) == NULL || !EVP_CIPHER_meth_set_iv_length(known_cipher_methods[i], cipher_data[i].ivlen) || !EVP_CIPHER_meth_set_flags(known_cipher_methods[i], cipher_data[i].flags + | EVP_CIPH_CUSTOM_COPY + | EVP_CIPH_CTRL_INIT | EVP_CIPH_FLAG_DEFAULT_ASN1) || !EVP_CIPHER_meth_set_init(known_cipher_methods[i], cipher_init) || !EVP_CIPHER_meth_set_do_cipher(known_cipher_methods[i], + cipher_mode == EVP_CIPH_CTR_MODE ? + ctr_do_cipher : cipher_do_cipher) + || !EVP_CIPHER_meth_set_ctrl(known_cipher_methods[i], cipher_ctrl) || !EVP_CIPHER_meth_set_cleanup(known_cipher_methods[i], cipher_cleanup) || !EVP_CIPHER_meth_set_impl_ctx_size(known_cipher_methods[i], @@ -338,34 +459,36 @@ static int devcrypto_ciphers(ENGINE *e, const EVP_CIPHER **cipher, struct digest_ctx { struct session_op sess; - int init; + /* This signals that the init function was called, not that it succeeded. */ + int init_called; }; static const struct digest_data_st { int nid; + int blocksize; int digestlen; int devcryptoid; } digest_data[] = { #ifndef OPENSSL_NO_MD5 - { NID_md5, 16, CRYPTO_MD5 }, + { NID_md5, /* MD5_CBLOCK */ 64, 16, CRYPTO_MD5 }, #endif - { NID_sha1, 20, CRYPTO_SHA1 }, + { NID_sha1, SHA_CBLOCK, 20, CRYPTO_SHA1 }, #ifndef OPENSSL_NO_RMD160 # if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_RIPEMD160) - { NID_ripemd160, 20, CRYPTO_RIPEMD160 }, + { NID_ripemd160, /* RIPEMD160_CBLOCK */ 64, 20, CRYPTO_RIPEMD160 }, # endif #endif #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_SHA2_224) - { NID_sha224, 224 / 8, CRYPTO_SHA2_224 }, + { NID_sha224, SHA256_CBLOCK, 224 / 8, CRYPTO_SHA2_224 }, #endif #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_SHA2_256) - { NID_sha256, 256 / 8, CRYPTO_SHA2_256 }, + { NID_sha256, SHA256_CBLOCK, 256 / 8, CRYPTO_SHA2_256 }, #endif #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_SHA2_384) - { NID_sha384, 384 / 8, CRYPTO_SHA2_384 }, + { NID_sha384, SHA512_CBLOCK, 384 / 8, CRYPTO_SHA2_384 }, #endif #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_SHA2_512) - { NID_sha512, 512 / 8, CRYPTO_SHA2_512 }, + { NID_sha512, SHA512_CBLOCK, 512 / 8, CRYPTO_SHA2_512 }, #endif }; @@ -403,7 +526,7 @@ static int digest_init(EVP_MD_CTX *ctx) const struct digest_data_st *digest_d = get_digest_data(EVP_MD_CTX_type(ctx)); - digest_ctx->init = 1; + digest_ctx->init_called = 1; memset(&digest_ctx->sess, 0, sizeof(digest_ctx->sess)); digest_ctx->sess.mac = digest_d->devcryptoid; @@ -438,6 +561,9 @@ static int digest_update(EVP_MD_CTX *ctx, const void *data, size_t count) if (count == 0) return 1; + if (digest_ctx == NULL) + return 0; + if (digest_op(digest_ctx, data, count, NULL, COP_FLAG_UPDATE) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; @@ -451,11 +577,9 @@ static int digest_final(EVP_MD_CTX *ctx, unsigned char *md) struct digest_ctx *digest_ctx = (struct digest_ctx *)EVP_MD_CTX_md_data(ctx); - if (digest_op(digest_ctx, NULL, 0, md, COP_FLAG_FINAL) < 0) { - SYSerr(SYS_F_IOCTL, errno); + if (md == NULL || digest_ctx == NULL) return 0; - } - if (ioctl(cfd, CIOCFSESSION, &digest_ctx->sess.ses) < 0) { + if (digest_op(digest_ctx, NULL, 0, md, COP_FLAG_FINAL) < 0) { SYSerr(SYS_F_IOCTL, errno); return 0; } @@ -471,14 +595,9 @@ static int digest_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from) (struct digest_ctx *)EVP_MD_CTX_md_data(to); struct cphash_op cphash; - if (digest_from == NULL) + if (digest_from == NULL || digest_from->init_called != 1) return 1; - if (digest_from->init != 1) { - SYSerr(SYS_F_IOCTL, EINVAL); - return 0; - } - if (!digest_init(to)) { SYSerr(SYS_F_IOCTL, errno); return 0; @@ -495,7 +614,37 @@ static int digest_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from) static int digest_cleanup(EVP_MD_CTX *ctx) { - return 1; + struct digest_ctx *digest_ctx = + (struct digest_ctx *)EVP_MD_CTX_md_data(ctx); + + if (digest_ctx == NULL) + return 1; + + return clean_devcrypto_session(&digest_ctx->sess); +} + +static int devcrypto_test_digest(size_t digest_data_index) +{ + struct session_op sess1, sess2; + struct cphash_op cphash; + int ret=0; + + memset(&sess1, 0, sizeof(sess1)); + memset(&sess2, 0, sizeof(sess2)); + sess1.mac = digest_data[digest_data_index].devcryptoid; + if (ioctl(cfd, CIOCGSESSION, &sess1) < 0) + return 0; + /* Make sure the driver is capable of hash state copy */ + sess2.mac = sess1.mac; + if (ioctl(cfd, CIOCGSESSION, &sess2) >= 0) { + cphash.src_ses = sess1.ses; + cphash.dst_ses = sess2.ses; + if (ioctl(cfd, CIOCCPHASH, &cphash) >= 0) + ret = 1; + ioctl(cfd, CIOCFSESSION, &sess2.ses); + } + ioctl(cfd, CIOCFSESSION, &sess1.ses); + return ret; } /* @@ -510,24 +659,20 @@ static EVP_MD *known_digest_methods[OSSL_NELEM(digest_data)] = { NULL, }; static void prepare_digest_methods(void) { size_t i; - struct session_op sess; - - memset(&sess, 0, sizeof(sess)); for (i = 0, known_digest_nids_amount = 0; i < OSSL_NELEM(digest_data); i++) { /* - * Check that the algo is really availably by trying to open and close - * a session. + * Check that the algo is usable */ - sess.mac = digest_data[i].devcryptoid; - if (ioctl(cfd, CIOCGSESSION, &sess) < 0 - || ioctl(cfd, CIOCFSESSION, &sess.ses) < 0) + if (!devcrypto_test_digest(i)) continue; if ((known_digest_methods[i] = EVP_MD_meth_new(digest_data[i].nid, NID_undef)) == NULL + || !EVP_MD_meth_set_input_blocksize(known_digest_methods[i], + digest_data[i].blocksize) || !EVP_MD_meth_set_result_size(known_digest_methods[i], digest_data[i].digestlen) || !EVP_MD_meth_set_init(known_digest_methods[i], digest_init) @@ -615,15 +760,13 @@ void engine_load_devcrypto_int() ENGINE *e = NULL; if ((cfd = open("/dev/crypto", O_RDWR, 0)) < 0) { - fprintf(stderr, "Could not open /dev/crypto: %s\n", strerror(errno)); +#ifndef ENGINE_DEVCRYPTO_DEBUG + if (errno != ENOENT) +#endif + fprintf(stderr, "Could not open /dev/crypto: %s\n", strerror(errno)); return; } - prepare_cipher_methods(); -#ifdef IMPLEMENT_DIGEST - prepare_digest_methods(); -#endif - if ((e = ENGINE_new()) == NULL || !ENGINE_set_destroy_function(e, devcrypto_unload)) { ENGINE_free(e); @@ -636,6 +779,11 @@ void engine_load_devcrypto_int() return; } + prepare_cipher_methods(); +#ifdef IMPLEMENT_DIGEST + prepare_digest_methods(); +#endif + if (!ENGINE_set_id(e, "devcrypto") || !ENGINE_set_name(e, "/dev/crypto engine") diff --git a/crypto/engine/eng_lib.c b/crypto/engine/eng_lib.c index 3ef3aae28a210a5e08c26d3b9b2cd1605c323c1f..d7f2026fac546cb143a319e1cab7afd138d920ae 100644 --- a/crypto/engine/eng_lib.c +++ b/crypto/engine/eng_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -124,7 +124,7 @@ static int int_cleanup_check(int create) static ENGINE_CLEANUP_ITEM *int_cleanup_item(ENGINE_CLEANUP_CB *cb) { ENGINE_CLEANUP_ITEM *item; - + if ((item = OPENSSL_malloc(sizeof(*item))) == NULL) { ENGINEerr(ENGINE_F_INT_CLEANUP_ITEM, ERR_R_MALLOC_FAILURE); return NULL; diff --git a/crypto/err/err.c b/crypto/err/err.c index 03cbd738e19328e8e016e2392db51b1587a42d1d..eaf6712fdbd02bcb1bc9a15deb7f3542e6a25c42 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -19,6 +19,9 @@ #include <openssl/bio.h> #include <openssl/opensslconf.h> #include "internal/thread_once.h" +#include "internal/ctype.h" +#include "internal/constant_time_locl.h" +#include "e_os.h" static int err_load_strings(const ERR_STRING_DATA *str); @@ -181,8 +184,9 @@ static ERR_STRING_DATA *int_err_get_item(const ERR_STRING_DATA *d) } #ifndef OPENSSL_NO_ERR +/* A measurement on Linux 2018-11-21 showed about 3.5kib */ +# define SPACE_SYS_STR_REASONS 4 * 1024 # define NUM_SYS_STR_REASONS 127 -# define LEN_SYS_STR_REASON 32 static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1]; /* @@ -198,9 +202,12 @@ static ERR_STRING_DATA SYS_str_reasons[NUM_SYS_STR_REASONS + 1]; static void build_SYS_str_reasons(void) { /* OPENSSL_malloc cannot be used here, use static storage instead */ - static char strerror_tab[NUM_SYS_STR_REASONS][LEN_SYS_STR_REASON]; + static char strerror_pool[SPACE_SYS_STR_REASONS]; + char *cur = strerror_pool; + size_t cnt = 0; static int init = 1; int i; + int saveerrno = get_last_sys_error(); CRYPTO_THREAD_write_lock(err_string_lock); if (!init) { @@ -213,9 +220,26 @@ static void build_SYS_str_reasons(void) str->error = ERR_PACK(ERR_LIB_SYS, 0, i); if (str->string == NULL) { - char (*dest)[LEN_SYS_STR_REASON] = &(strerror_tab[i - 1]); - if (openssl_strerror_r(i, *dest, sizeof(*dest))) - str->string = *dest; + if (openssl_strerror_r(i, cur, sizeof(strerror_pool) - cnt)) { + size_t l = strlen(cur); + + str->string = cur; + cnt += l; + if (cnt > sizeof(strerror_pool)) + cnt = sizeof(strerror_pool); + cur += l; + + /* + * VMS has an unusual quirk of adding spaces at the end of + * some (most? all?) messages. Lets trim them off. + */ + while (ossl_isspace(cur[-1])) { + cur--; + cnt--; + } + *cur++ = '\0'; + cnt++; + } } if (str->string == NULL) str->string = "unknown"; @@ -229,6 +253,8 @@ static void build_SYS_str_reasons(void) init = 0; CRYPTO_THREAD_unlock(err_string_lock); + /* openssl_strerror_r could change errno, but we want to preserve it */ + set_sys_error(saveerrno); err_load_strings(SYS_str_reasons); } #endif @@ -497,8 +523,24 @@ static unsigned long get_error_values(int inc, int top, const char **file, return ERR_R_INTERNAL_ERROR; } + while (es->bottom != es->top) { + if (es->err_flags[es->top] & ERR_FLAG_CLEAR) { + err_clear(es, es->top); + es->top = es->top > 0 ? es->top - 1 : ERR_NUM_ERRORS - 1; + continue; + } + i = (es->bottom + 1) % ERR_NUM_ERRORS; + if (es->err_flags[i] & ERR_FLAG_CLEAR) { + es->bottom = i; + err_clear(es, es->bottom); + continue; + } + break; + } + if (es->bottom == es->top) return 0; + if (top) i = es->top; /* last error */ else @@ -671,6 +713,7 @@ DEFINE_RUN_ONCE_STATIC(err_do_init) ERR_STATE *ERR_get_state(void) { ERR_STATE *state; + int saveerrno = get_last_sys_error(); if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL)) return NULL; @@ -702,6 +745,7 @@ ERR_STATE *ERR_get_state(void) OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); } + set_sys_error(saveerrno); return state; } @@ -711,6 +755,20 @@ ERR_STATE *ERR_get_state(void) */ int err_shelve_state(void **state) { + int saveerrno = get_last_sys_error(); + + /* + * Note, at present our only caller is OPENSSL_init_crypto(), indirectly + * via ossl_init_load_crypto_nodelete(), by which point the requested + * "base" initialization has already been performed, so the below call is a + * NOOP, that re-enters OPENSSL_init_crypto() only to quickly return. + * + * If are no other valid callers of this function, the call below can be + * removed, avoiding the re-entry into OPENSSL_init_crypto(). If there are + * potential uses that are not from inside OPENSSL_init_crypto(), then this + * call is needed, but some care is required to make sure that the re-entry + * remains a NOOP. + */ if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL)) return 0; @@ -721,6 +779,7 @@ int err_shelve_state(void **state) if (!CRYPTO_THREAD_set_local(&err_thread_local, (ERR_STATE*)-1)) return 0; + set_sys_error(saveerrno); return 1; } @@ -747,20 +806,31 @@ int ERR_get_next_error_library(void) return ret; } -void ERR_set_error_data(char *data, int flags) +static int err_set_error_data_int(char *data, int flags) { ERR_STATE *es; int i; es = ERR_get_state(); if (es == NULL) - return; + return 0; i = es->top; err_clear_data(es, i); es->err_data[i] = data; es->err_data_flags[i] = flags; + + return 1; +} + +void ERR_set_error_data(char *data, int flags) +{ + /* + * This function is void so we cannot propagate the error return. Since it + * is also in the public API we can't change the return type. + */ + err_set_error_data_int(data, flags); } void ERR_add_error_data(int num, ...) @@ -800,7 +870,8 @@ void ERR_add_error_vdata(int num, va_list args) } OPENSSL_strlcat(str, a, (size_t)s + 1); } - ERR_set_error_data(str, ERR_TXT_MALLOCED | ERR_TXT_STRING); + if (!err_set_error_data_int(str, ERR_TXT_MALLOCED | ERR_TXT_STRING)) + OPENSSL_free(str); } int ERR_set_mark(void) @@ -857,3 +928,23 @@ int ERR_clear_last_mark(void) es->err_flags[top] &= ~ERR_FLAG_MARK; return 1; } + +void err_clear_last_constant_time(int clear) +{ + ERR_STATE *es; + int top; + + es = ERR_get_state(); + if (es == NULL) + return; + + top = es->top; + + /* + * Flag error as cleared but remove it elsewhere to avoid two errors + * accessing the same error stack location, revealing timing information. + */ + clear = constant_time_select_int(constant_time_eq_int(clear, 0), + 0, ERR_FLAG_CLEAR); + es->err_flags[top] |= clear; +} diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt index 5003d8735a4d23c8483aebb92cbbed6b5940ed49..feff1dccded72db835a2c207b0a1780746f71cc2 100644 --- a/crypto/err/openssl.txt +++ b/crypto/err/openssl.txt @@ -1,4 +1,4 @@ -# Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -519,6 +519,7 @@ EC_F_ECX_PUB_ENCODE:268:ecx_pub_encode EC_F_EC_ASN1_GROUP2CURVE:153:ec_asn1_group2curve EC_F_EC_ASN1_GROUP2FIELDID:154:ec_asn1_group2fieldid EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY:208:ec_GF2m_montgomery_point_multiply +EC_F_EC_GF2M_SIMPLE_FIELD_INV:296:ec_GF2m_simple_field_inv EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT:159:\ ec_GF2m_simple_group_check_discriminant EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE:195:ec_GF2m_simple_group_set_curve @@ -535,6 +536,7 @@ EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES:164:\ ec_GF2m_simple_set_compressed_coordinates EC_F_EC_GFP_MONT_FIELD_DECODE:133:ec_GFp_mont_field_decode EC_F_EC_GFP_MONT_FIELD_ENCODE:134:ec_GFp_mont_field_encode +EC_F_EC_GFP_MONT_FIELD_INV:297:ec_GFp_mont_field_inv EC_F_EC_GFP_MONT_FIELD_MUL:131:ec_GFp_mont_field_mul EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE:209:ec_GFp_mont_field_set_to_one EC_F_EC_GFP_MONT_FIELD_SQR:132:ec_GFp_mont_field_sqr @@ -555,6 +557,7 @@ EC_F_EC_GFP_NIST_FIELD_MUL:200:ec_GFp_nist_field_mul EC_F_EC_GFP_NIST_FIELD_SQR:201:ec_GFp_nist_field_sqr EC_F_EC_GFP_NIST_GROUP_SET_CURVE:202:ec_GFp_nist_group_set_curve EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES:287:ec_GFp_simple_blind_coordinates +EC_F_EC_GFP_SIMPLE_FIELD_INV:298:ec_GFp_simple_field_inv EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT:165:\ ec_GFp_simple_group_check_discriminant EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE:166:ec_GFp_simple_group_set_curve @@ -737,6 +740,7 @@ EVP_F_EVP_DECRYPTFINAL_EX:101:EVP_DecryptFinal_ex EVP_F_EVP_DECRYPTUPDATE:166:EVP_DecryptUpdate EVP_F_EVP_DIGESTFINALXOF:174:EVP_DigestFinalXOF EVP_F_EVP_DIGESTINIT_EX:128:EVP_DigestInit_ex +EVP_F_EVP_ENCRYPTDECRYPTUPDATE:219:evp_EncryptDecryptUpdate EVP_F_EVP_ENCRYPTFINAL_EX:127:EVP_EncryptFinal_ex EVP_F_EVP_ENCRYPTUPDATE:167:EVP_EncryptUpdate EVP_F_EVP_MD_CTX_COPY_EX:110:EVP_MD_CTX_copy_ex @@ -2115,6 +2119,7 @@ EC_R_ASN1_ERROR:115:asn1 error EC_R_BAD_SIGNATURE:156:bad signature EC_R_BIGNUM_OUT_OF_RANGE:144:bignum out of range EC_R_BUFFER_TOO_SMALL:100:buffer too small +EC_R_CANNOT_INVERT:165:cannot invert EC_R_COORDINATES_OUT_OF_RANGE:146:coordinates out of range EC_R_CURVE_DOES_NOT_SUPPORT_ECDH:160:curve does not support ecdh EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING:159:curve does not support signing @@ -2722,6 +2727,8 @@ SSL_R_MISSING_SRP_PARAM:358:can't find SRP server param SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION:209:missing supported groups extension SSL_R_MISSING_TMP_DH_KEY:171:missing tmp dh key SSL_R_MISSING_TMP_ECDH_KEY:311:missing tmp ecdh key +SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA:293:\ + mixed handshake and non handshake data SSL_R_NOT_ON_RECORD_BOUNDARY:182:not on record boundary SSL_R_NOT_REPLACING_CERTIFICATE:289:not replacing certificate SSL_R_NOT_SERVER:284:not server diff --git a/crypto/evp/digest.c b/crypto/evp/digest.c index f78dab7678654a56d4b286e6cebeb2c44f01776e..6693f270b69436539b1705eea7c72e4f9f8e6674 100644 --- a/crypto/evp/digest.c +++ b/crypto/evp/digest.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -150,6 +150,9 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl) int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, size_t count) { + if (count == 0) + return 1; + return ctx->update(ctx, data, count); } diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index 39eb4f379a99a108cb4bff53bb05d4d249515118..68322e1982b883d9ca4291410ad502637f2ec983 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -2216,9 +2216,6 @@ static int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (!cctx->aes.ccm.iv_set) return -1; - if (!enc && !cctx->aes.ccm.tag_set) - return -1; - if (out == NULL) { /* Update(): Pass message length. */ if (in == NULL) { @@ -2237,6 +2234,10 @@ static int s390x_aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return len; } + /* The tag must be set before actually decrypting data */ + if (!enc && !cctx->aes.ccm.tag_set) + return -1; + /* Update(): Process message. */ if (!cctx->aes.ccm.len_set) { @@ -3643,8 +3644,6 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (!cctx->iv_set) return -1; - if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set) - return -1; if (!out) { if (!in) { if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx), @@ -3659,6 +3658,11 @@ static int aes_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, CRYPTO_ccm128_aad(ccm, in, len); return len; } + + /* The tag must be set before actually decrypting data */ + if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set) + return -1; + /* If not set length yet do it */ if (!cctx->len_set) { if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx), diff --git a/crypto/evp/e_aria.c b/crypto/evp/e_aria.c index 81c8a7eaf1d33cf3108785810b495bcab108a3c4..100573f5fc7fcedc27ca8fb176d80869c3686858 100644 --- a/crypto/evp/e_aria.c +++ b/crypto/evp/e_aria.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -486,6 +486,16 @@ static int aria_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, return 0; } +static int aria_gcm_cleanup(EVP_CIPHER_CTX *ctx) +{ + EVP_ARIA_GCM_CTX *gctx = EVP_C_DATA(EVP_ARIA_GCM_CTX, ctx); + + if (gctx->iv != EVP_CIPHER_CTX_iv_noconst(ctx)) + OPENSSL_free(gctx->iv); + + return 1; +} + static int aria_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { @@ -727,6 +737,8 @@ static int aria_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, } } +#define aria_ccm_cleanup NULL + #define ARIA_AUTH_FLAGS (EVP_CIPH_FLAG_DEFAULT_ASN1 \ | EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \ | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CTRL_INIT \ @@ -739,7 +751,7 @@ static const EVP_CIPHER aria_##keylen##_##mode = { \ ARIA_AUTH_FLAGS|EVP_CIPH_##MODE##_MODE, \ aria_##mode##_init_key, \ aria_##mode##_cipher, \ - NULL, \ + aria_##mode##_cleanup, \ sizeof(EVP_ARIA_##MODE##_CTX), \ NULL,NULL,aria_##mode##_ctrl,NULL }; \ const EVP_CIPHER *EVP_aria_##keylen##_##mode(void) \ diff --git a/crypto/evp/e_chacha20_poly1305.c b/crypto/evp/e_chacha20_poly1305.c index c1917bb86a6b81c8ce0e62f572bb1463b2b8a82a..600365d2f077d151ac11df09cdb3ee0e3595359a 100644 --- a/crypto/evp/e_chacha20_poly1305.c +++ b/crypto/evp/e_chacha20_poly1305.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -30,6 +30,8 @@ typedef struct { #define data(ctx) ((EVP_CHACHA_KEY *)(ctx)->cipher_data) +#define CHACHA20_POLY1305_MAX_IVLEN 12 + static int chacha_init_key(EVP_CIPHER_CTX *ctx, const unsigned char user_key[CHACHA_KEY_SIZE], const unsigned char iv[CHACHA_CTR_SIZE], int enc) @@ -533,7 +535,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, return 1; case EVP_CTRL_AEAD_SET_IVLEN: - if (arg <= 0 || arg > CHACHA_CTR_SIZE) + if (arg <= 0 || arg > CHACHA20_POLY1305_MAX_IVLEN) return 0; actx->nonce_len = arg; return 1; diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c index 38633410cd1ab4bb6fd4164cac60d75e929b19e6..05dd791b6cb07767a6b2d52056efa43e428ca441 100644 --- a/crypto/evp/evp_enc.c +++ b/crypto/evp/evp_enc.c @@ -294,8 +294,9 @@ int is_partially_overlapping(const void *ptr1, const void *ptr2, int len) return overlapped; } -int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl) +static int evp_EncryptDecryptUpdate(EVP_CIPHER_CTX *ctx, + unsigned char *out, int *outl, + const unsigned char *in, int inl) { int i, j, bl, cmpl = inl; @@ -307,7 +308,7 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) { /* If block size > 1 then the cipher will have to do this check */ if (bl == 1 && is_partially_overlapping(out, in, cmpl)) { - EVPerr(EVP_F_EVP_ENCRYPTUPDATE, EVP_R_PARTIALLY_OVERLAPPING); + EVPerr(EVP_F_EVP_ENCRYPTDECRYPTUPDATE, EVP_R_PARTIALLY_OVERLAPPING); return 0; } @@ -324,7 +325,7 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, return inl == 0; } if (is_partially_overlapping(out + ctx->buf_len, in, cmpl)) { - EVPerr(EVP_F_EVP_ENCRYPTUPDATE, EVP_R_PARTIALLY_OVERLAPPING); + EVPerr(EVP_F_EVP_ENCRYPTDECRYPTUPDATE, EVP_R_PARTIALLY_OVERLAPPING); return 0; } @@ -371,6 +372,19 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, return 1; } + +int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl) +{ + /* Prevent accidental use of decryption context when encrypting */ + if (!ctx->encrypt) { + EVPerr(EVP_F_EVP_ENCRYPTUPDATE, EVP_R_INVALID_OPERATION); + return 0; + } + + return evp_EncryptDecryptUpdate(ctx, out, outl, in, inl); +} + int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) { int ret; @@ -383,6 +397,12 @@ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) int n, ret; unsigned int i, b, bl; + /* Prevent accidental use of decryption context when encrypting */ + if (!ctx->encrypt) { + EVPerr(EVP_F_EVP_ENCRYPTFINAL_EX, EVP_R_INVALID_OPERATION); + return 0; + } + if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) { ret = ctx->cipher->do_cipher(ctx, out, NULL, 0); if (ret < 0) @@ -426,6 +446,12 @@ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, int fix_len, cmpl = inl; unsigned int b; + /* Prevent accidental use of encryption context when decrypting */ + if (ctx->encrypt) { + EVPerr(EVP_F_EVP_DECRYPTUPDATE, EVP_R_INVALID_OPERATION); + return 0; + } + b = ctx->cipher->block_size; if (EVP_CIPHER_CTX_test_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS)) @@ -452,7 +478,7 @@ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, } if (ctx->flags & EVP_CIPH_NO_PADDING) - return EVP_EncryptUpdate(ctx, out, outl, in, inl); + return evp_EncryptDecryptUpdate(ctx, out, outl, in, inl); OPENSSL_assert(b <= sizeof(ctx->final)); @@ -469,7 +495,7 @@ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, } else fix_len = 0; - if (!EVP_EncryptUpdate(ctx, out, outl, in, inl)) + if (!evp_EncryptDecryptUpdate(ctx, out, outl, in, inl)) return 0; /* @@ -500,6 +526,13 @@ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) { int i, n; unsigned int b; + + /* Prevent accidental use of encryption context when decrypting */ + if (ctx->encrypt) { + EVPerr(EVP_F_EVP_DECRYPTFINAL_EX, EVP_R_INVALID_OPERATION); + return 0; + } + *outl = 0; if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) { diff --git a/crypto/evp/evp_err.c b/crypto/evp/evp_err.c index 3e14a7b509496a2ab9651f81a3c9a645731087a3..60df27cbc20ac6f5841c63dc284ea52792eb1cf9 100644 --- a/crypto/evp/evp_err.c +++ b/crypto/evp/evp_err.c @@ -50,6 +50,8 @@ static const ERR_STRING_DATA EVP_str_functs[] = { {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_DECRYPTUPDATE, 0), "EVP_DecryptUpdate"}, {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_DIGESTFINALXOF, 0), "EVP_DigestFinalXOF"}, {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_DIGESTINIT_EX, 0), "EVP_DigestInit_ex"}, + {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_ENCRYPTDECRYPTUPDATE, 0), + "evp_EncryptDecryptUpdate"}, {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_ENCRYPTFINAL_EX, 0), "EVP_EncryptFinal_ex"}, {ERR_PACK(ERR_LIB_EVP, EVP_F_EVP_ENCRYPTUPDATE, 0), "EVP_EncryptUpdate"}, diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index 9429be97e3f93a814324073975de7dd76b117c02..3cd7ca8d54ca918992f5a603ddb40428ebf9b84a 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -42,7 +42,7 @@ int EVP_PKEY_security_bits(const EVP_PKEY *pkey) return pkey->ameth->pkey_security_bits(pkey); } -int EVP_PKEY_size(EVP_PKEY *pkey) +int EVP_PKEY_size(const EVP_PKEY *pkey) { if (pkey && pkey->ameth && pkey->ameth->pkey_size) return pkey->ameth->pkey_size(pkey); @@ -394,6 +394,11 @@ int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e) pkey->pmeth_engine = e; return 1; } + +ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey) +{ + return pkey->engine; +} #endif int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key) { diff --git a/crypto/evp/p_open.c b/crypto/evp/p_open.c index f2976f8a994aef1334958e17c7701ba5d1fa82b9..1ce87454bdec81ee664123c505bd5f9c235929b8 100644 --- a/crypto/evp/p_open.c +++ b/crypto/evp/p_open.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -40,7 +40,7 @@ int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, } size = EVP_PKEY_size(priv); - key = OPENSSL_malloc(size + 2); + key = OPENSSL_malloc(size); if (key == NULL) { /* ERROR */ EVPerr(EVP_F_EVP_OPENINIT, ERR_R_MALLOC_FAILURE); diff --git a/crypto/hmac/hmac.c b/crypto/hmac/hmac.c index e4031b44a576c636a993064371456b323ccad567..0c0a7133fb5aa927fc31e83aee1b3f1d1f355494 100644 --- a/crypto/hmac/hmac.c +++ b/crypto/hmac/hmac.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -35,6 +35,13 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, return 0; } + /* + * The HMAC construction is not allowed to be used with the + * extendable-output functions (XOF) shake128 and shake256. + */ + if ((EVP_MD_meth_get_flags(md) & EVP_MD_FLAG_XOF) != 0) + return 0; + if (key != NULL) { reset = 1; j = EVP_MD_block_size(md); diff --git a/crypto/include/internal/bn_int.h b/crypto/include/internal/bn_int.h index cffe5cfc16507e21091120cbb2463397be31d70a..30be7efe14d8d6d97ce3b246c4d51cee1c8a6858 100644 --- a/crypto/include/internal/bn_int.h +++ b/crypto/include/internal/bn_int.h @@ -65,7 +65,10 @@ int bn_set_words(BIGNUM *a, const BN_ULONG *words, int num_words); * is customarily arranged by bn_correct_top. Output from below functions * is not processed with bn_correct_top, and for this reason it may not be * returned out of public API. It may only be passed internally into other - * functions known to support non-minimal or zero-padded BIGNUMs. + * functions known to support non-minimal or zero-padded BIGNUMs. Even + * though the goal is to facilitate constant-time-ness, not each subroutine + * is constant-time by itself. They all have pre-conditions, consult source + * code... */ int bn_mul_mont_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_MONT_CTX *mont, BN_CTX *ctx); @@ -79,5 +82,9 @@ int bn_mod_sub_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m); int bn_mul_fixed_top(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); int bn_sqr_fixed_top(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +int bn_lshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n); +int bn_rshift_fixed_top(BIGNUM *r, const BIGNUM *a, int n); +int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, + const BIGNUM *d, BN_CTX *ctx); #endif diff --git a/crypto/include/internal/dso_conf.h.in b/crypto/include/internal/dso_conf.h.in index d6e9d1b1baae18ce83bdbce2d008b5400b8d195f..2a76818b50d9803c99fef8b2443277f8be36d9b9 100644 --- a/crypto/include/internal/dso_conf.h.in +++ b/crypto/include/internal/dso_conf.h.in @@ -1,6 +1,6 @@ {- join("\n",map { "/* $_ */" } @autowarntext) -} /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -10,7 +10,6 @@ #ifndef HEADER_DSO_CONF_H # define HEADER_DSO_CONF_H -{- output_off() if $disabled{dso} -} {- # The DSO code currently always implements all functions so that no # applications will have to worry about that from a compilation point # of view. However, the "method"s may return zero unless that platform @@ -18,6 +17,9 @@ # by a define "DSO_<name>" ... we translate the "dso_scheme" config # string entry into using the following logic; my $scheme = uc $target{dso_scheme}; + if (!$scheme) { + $scheme = "NONE"; + } my @macros = ( "DSO_$scheme" ); if ($scheme eq 'DLFCN') { @macros = ( "DSO_DLFCN", "HAVE_DLFCN_H" ); @@ -26,5 +28,4 @@ } join("\n", map { "# define $_" } @macros); -} # define DSO_EXTENSION "{- $target{dso_extension} -}" -{- output_on() if $disabled{dso} -} #endif diff --git a/crypto/init.c b/crypto/init.c index 209d1a483daebee32c1407fb9cb1706923ee4501..62626a707ea8af805845ae268c7aec712d6d81bb 100644 --- a/crypto/init.c +++ b/crypto/init.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -100,10 +100,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_base) return 0; if ((init_lock = CRYPTO_THREAD_lock_new()) == NULL) goto err; -#ifndef OPENSSL_SYS_UEFI - if (atexit(OPENSSL_cleanup) != 0) - goto err; -#endif OPENSSL_cpuid_setup(); destructor_key.value = key; @@ -121,14 +117,53 @@ err: return 0; } +static CRYPTO_ONCE register_atexit = CRYPTO_ONCE_STATIC_INIT; +#if !defined(OPENSSL_SYS_UEFI) && defined(_WIN32) +static int win32atexit(void) +{ + OPENSSL_cleanup(); + return 0; +} +#endif + +DEFINE_RUN_ONCE_STATIC(ossl_init_register_atexit) +{ +#ifdef OPENSSL_INIT_DEBUG + fprintf(stderr, "OPENSSL_INIT: ossl_init_register_atexit()\n"); +#endif +#ifndef OPENSSL_SYS_UEFI +# ifdef _WIN32 + /* We use _onexit() in preference because it gets called on DLL unload */ + if (_onexit(win32atexit) == NULL) + return 0; +# else + if (atexit(OPENSSL_cleanup) != 0) + return 0; +# endif +#endif + + return 1; +} + +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_register_atexit, + ossl_init_register_atexit) +{ +#ifdef OPENSSL_INIT_DEBUG + fprintf(stderr, "OPENSSL_INIT: ossl_init_no_register_atexit ok!\n"); +#endif + /* Do nothing in this case */ + return 1; +} + static CRYPTO_ONCE load_crypto_nodelete = CRYPTO_ONCE_STATIC_INIT; DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete) { #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, "OPENSSL_INIT: ossl_init_load_crypto_nodelete()\n"); #endif -#if !defined(OPENSSL_NO_DSO) && !defined(OPENSSL_USE_NODELETE) -# ifdef DSO_WIN32 +#if !defined(OPENSSL_USE_NODELETE) \ + && !defined(OPENSSL_NO_PINSHARED) +# if defined(DSO_WIN32) && !defined(_WIN32_WCE) { HMODULE handle = NULL; BOOL ret; @@ -144,7 +179,7 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete) # endif return (ret == TRUE) ? 1 : 0; } -# else +# elif !defined(DSO_NONE) /* * Deliberately leak a reference to ourselves. This will force the library * to remain loaded until the atexit() handler is run at process exit. @@ -177,12 +212,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_nodelete) static CRYPTO_ONCE load_crypto_strings = CRYPTO_ONCE_STATIC_INIT; static int load_crypto_strings_inited = 0; -DEFINE_RUN_ONCE_STATIC(ossl_init_no_load_crypto_strings) -{ - /* Do nothing in this case */ - return 1; -} - DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings) { int ret = 1; @@ -201,6 +230,13 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_crypto_strings) return ret; } +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_load_crypto_strings, + ossl_init_load_crypto_strings) +{ + /* Do nothing in this case */ + return 1; +} + static CRYPTO_ONCE add_all_ciphers = CRYPTO_ONCE_STATIC_INIT; DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_ciphers) { @@ -218,6 +254,13 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_ciphers) return 1; } +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_ciphers, + ossl_init_add_all_ciphers) +{ + /* Do nothing */ + return 1; +} + static CRYPTO_ONCE add_all_digests = CRYPTO_ONCE_STATIC_INIT; DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_digests) { @@ -235,7 +278,8 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_add_all_digests) return 1; } -DEFINE_RUN_ONCE_STATIC(ossl_init_no_add_algs) +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_add_all_digests, + ossl_init_add_all_digests) { /* Do nothing */ return 1; @@ -243,19 +287,14 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_no_add_algs) static CRYPTO_ONCE config = CRYPTO_ONCE_STATIC_INIT; static int config_inited = 0; -static const char *appname; +static const OPENSSL_INIT_SETTINGS *conf_settings = NULL; DEFINE_RUN_ONCE_STATIC(ossl_init_config) { -#ifdef OPENSSL_INIT_DEBUG - fprintf(stderr, - "OPENSSL_INIT: ossl_init_config: openssl_config(%s)\n", - appname == NULL ? "NULL" : appname); -#endif - openssl_config_int(appname); + int ret = openssl_config_int(conf_settings); config_inited = 1; - return 1; + return ret; } -DEFINE_RUN_ONCE_STATIC(ossl_init_no_config) +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_config, ossl_init_config) { #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, @@ -586,17 +625,43 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) return 0; } + /* + * When the caller specifies OPENSSL_INIT_BASE_ONLY, that should be the + * *only* option specified. With that option we return immediately after + * doing the requested limited initialization. Note that + * err_shelve_state() called by us via ossl_init_load_crypto_nodelete() + * re-enters OPENSSL_init_crypto() with OPENSSL_INIT_BASE_ONLY, but with + * base already initialized this is a harmless NOOP. + * + * If we remain the only caller of err_shelve_state() the recursion should + * perhaps be removed, but if in doubt, it can be left in place. + */ if (!RUN_ONCE(&base, ossl_init_base)) return 0; + if (opts & OPENSSL_INIT_BASE_ONLY) + return 1; - if (!(opts & OPENSSL_INIT_BASE_ONLY) - && !RUN_ONCE(&load_crypto_nodelete, - ossl_init_load_crypto_nodelete)) + /* + * Now we don't always set up exit handlers, the INIT_BASE_ONLY calls + * should not have the side-effect of setting up exit handlers, and + * therefore, this code block is below the INIT_BASE_ONLY-conditioned early + * return above. + */ + if ((opts & OPENSSL_INIT_NO_ATEXIT) != 0) { + if (!RUN_ONCE_ALT(®ister_atexit, ossl_init_no_register_atexit, + ossl_init_register_atexit)) + return 0; + } else if (!RUN_ONCE(®ister_atexit, ossl_init_register_atexit)) { + return 0; + } + + if (!RUN_ONCE(&load_crypto_nodelete, ossl_init_load_crypto_nodelete)) return 0; if ((opts & OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS) - && !RUN_ONCE(&load_crypto_strings, - ossl_init_no_load_crypto_strings)) + && !RUN_ONCE_ALT(&load_crypto_strings, + ossl_init_no_load_crypto_strings, + ossl_init_load_crypto_strings)) return 0; if ((opts & OPENSSL_INIT_LOAD_CRYPTO_STRINGS) @@ -604,7 +669,8 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) return 0; if ((opts & OPENSSL_INIT_NO_ADD_ALL_CIPHERS) - && !RUN_ONCE(&add_all_ciphers, ossl_init_no_add_algs)) + && !RUN_ONCE_ALT(&add_all_ciphers, ossl_init_no_add_all_ciphers, + ossl_init_add_all_ciphers)) return 0; if ((opts & OPENSSL_INIT_ADD_ALL_CIPHERS) @@ -612,7 +678,8 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) return 0; if ((opts & OPENSSL_INIT_NO_ADD_ALL_DIGESTS) - && !RUN_ONCE(&add_all_digests, ossl_init_no_add_algs)) + && !RUN_ONCE_ALT(&add_all_digests, ossl_init_no_add_all_digests, + ossl_init_add_all_digests)) return 0; if ((opts & OPENSSL_INIT_ADD_ALL_DIGESTS) @@ -624,16 +691,17 @@ int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings) return 0; if ((opts & OPENSSL_INIT_NO_LOAD_CONFIG) - && !RUN_ONCE(&config, ossl_init_no_config)) + && !RUN_ONCE_ALT(&config, ossl_init_no_config, ossl_init_config)) return 0; if (opts & OPENSSL_INIT_LOAD_CONFIG) { int ret; CRYPTO_THREAD_write_lock(init_lock); - appname = (settings == NULL) ? NULL : settings->appname; + conf_settings = settings; ret = RUN_ONCE(&config, ossl_init_config); + conf_settings = NULL; CRYPTO_THREAD_unlock(init_lock); - if (!ret) + if (ret <= 0) return 0; } @@ -695,7 +763,8 @@ int OPENSSL_atexit(void (*handler)(void)) { OPENSSL_INIT_STOP *newhand; -#if !defined(OPENSSL_NO_DSO) && !defined(OPENSSL_USE_NODELETE) +#if !defined(OPENSSL_USE_NODELETE)\ + && !defined(OPENSSL_NO_PINSHARED) { union { void *sym; @@ -703,7 +772,7 @@ int OPENSSL_atexit(void (*handler)(void)) } handlersym; handlersym.func = handler; -# ifdef DSO_WIN32 +# if defined(DSO_WIN32) && !defined(_WIN32_WCE) { HMODULE handle = NULL; BOOL ret; @@ -719,7 +788,7 @@ int OPENSSL_atexit(void (*handler)(void)) if (!ret) return 0; } -# else +# elif !defined(DSO_NONE) /* * Deliberately leak a reference to the handler. This will force the * library/code containing the handler to remain loaded until we run the diff --git a/crypto/mips_arch.h b/crypto/mips_arch.h index 75043e79d337dfce8ebc068c5830ffbc01745f74..e18ac07210c5446104caec8ece33256b22ce0d5a 100644 --- a/crypto/mips_arch.h +++ b/crypto/mips_arch.h @@ -1,5 +1,5 @@ /* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -11,7 +11,7 @@ # define __MIPS_ARCH_H__ # if (defined(__mips_smartmips) || defined(_MIPS_ARCH_MIPS32R3) || \ - defined(_MIPS_ARCH_MIPS32R5) || defined(_MIPS_ARCH_MIPS32R6)) + defined(_MIPS_ARCH_MIPS32R5) || defined(_MIPS_ARCH_MIPS32R6)) \ && !defined(_MIPS_ARCH_MIPS32R2) # define _MIPS_ARCH_MIPS32R2 # endif diff --git a/crypto/modes/asm/ghash-x86_64.pl b/crypto/modes/asm/ghash-x86_64.pl index afc30c3e72a435d800219b584d2f27523f0c7869..6b2a51ecd77e254049bf3bb1c35b29e46169f471 100644 --- a/crypto/modes/asm/ghash-x86_64.pl +++ b/crypto/modes/asm/ghash-x86_64.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2010-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -529,6 +529,7 @@ $code.=<<___; .type gcm_init_clmul,\@abi-omnipotent .align 16 gcm_init_clmul: +.cfi_startproc .L_init_clmul: ___ $code.=<<___ if ($win64); @@ -598,6 +599,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size gcm_init_clmul,.-gcm_init_clmul ___ } @@ -609,6 +611,7 @@ $code.=<<___; .type gcm_gmult_clmul,\@abi-omnipotent .align 16 gcm_gmult_clmul: +.cfi_startproc .L_gmult_clmul: movdqu ($Xip),$Xi movdqa .Lbswap_mask(%rip),$T3 @@ -645,6 +648,7 @@ $code.=<<___; pshufb $T3,$Xi movdqu $Xi,($Xip) ret +.cfi_endproc .size gcm_gmult_clmul,.-gcm_gmult_clmul ___ } @@ -658,6 +662,7 @@ $code.=<<___; .type gcm_ghash_clmul,\@abi-omnipotent .align 32 gcm_ghash_clmul: +.cfi_startproc .L_ghash_clmul: ___ $code.=<<___ if ($win64); @@ -1005,6 +1010,7 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size gcm_ghash_clmul,.-gcm_ghash_clmul ___ } @@ -1014,6 +1020,7 @@ $code.=<<___; .type gcm_init_avx,\@abi-omnipotent .align 32 gcm_init_avx: +.cfi_startproc ___ if ($avx) { my ($Htbl,$Xip)=@_4args; @@ -1142,11 +1149,13 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size gcm_init_avx,.-gcm_init_avx ___ } else { $code.=<<___; jmp .L_init_clmul +.cfi_endproc .size gcm_init_avx,.-gcm_init_avx ___ } @@ -1156,7 +1165,9 @@ $code.=<<___; .type gcm_gmult_avx,\@abi-omnipotent .align 32 gcm_gmult_avx: +.cfi_startproc jmp .L_gmult_clmul +.cfi_endproc .size gcm_gmult_avx,.-gcm_gmult_avx ___ @@ -1165,6 +1176,7 @@ $code.=<<___; .type gcm_ghash_avx,\@abi-omnipotent .align 32 gcm_ghash_avx: +.cfi_startproc ___ if ($avx) { my ($Xip,$Htbl,$inp,$len)=@_4args; @@ -1577,11 +1589,13 @@ $code.=<<___ if ($win64); ___ $code.=<<___; ret +.cfi_endproc .size gcm_ghash_avx,.-gcm_ghash_avx ___ } else { $code.=<<___; jmp .L_ghash_clmul +.cfi_endproc .size gcm_ghash_avx,.-gcm_ghash_avx ___ } diff --git a/crypto/modes/ccm128.c b/crypto/modes/ccm128.c index 85ce84f10d80751c99f45eb5b5e25e2c1f7ab508..05a33239f56e2a377ccc73ff980d886363088826 100644 --- a/crypto/modes/ccm128.c +++ b/crypto/modes/ccm128.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -425,7 +425,7 @@ size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len) M *= 2; M += 2; - if (len < M) + if (len != M) return 0; memcpy(tag, ctx->cmac.c, M); return M; diff --git a/crypto/o_str.c b/crypto/o_str.c index a8357691ad66e9b668e28acad5f3b45eddab8fb8..1dbd70d58c4ddcaf22be5bf6c671e12738229474 100644 --- a/crypto/o_str.c +++ b/crypto/o_str.c @@ -1,5 +1,5 @@ /* - * Copyright 2003-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2003-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -223,7 +223,26 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen) #if defined(_MSC_VER) && _MSC_VER>=1400 return !strerror_s(buf, buflen, errnum); #elif defined(_GNU_SOURCE) - return strerror_r(errnum, buf, buflen) != NULL; + char *err; + + /* + * GNU strerror_r may not actually set buf. + * It can return a pointer to some (immutable) static string in which case + * buf is left unused. + */ + err = strerror_r(errnum, buf, buflen); + if (err == NULL) + return 0; + /* + * If err is statically allocated, err != buf and we need to copy the data. + * If err points somewhere inside buf, OPENSSL_strlcpy can handle this, + * since src and dest are not annotated with __restrict and the function + * reads src byte for byte and writes to dest. + * If err == buf we do not have to copy anything. + */ + if (err != buf) + OPENSSL_strlcpy(buf, err, buflen); + return 1; #elif (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || \ (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600) /* @@ -234,6 +253,7 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen) return !strerror_r(errnum, buf, buflen); #else char *err; + /* Fall back to non-thread safe strerror()...its all we can do */ if (buflen < 2) return 0; @@ -241,8 +261,7 @@ int openssl_strerror_r(int errnum, char *buf, size_t buflen) /* Can this ever happen? */ if (err == NULL) return 0; - strncpy(buf, err, buflen - 1); - buf[buflen - 1] = '\0'; + OPENSSL_strlcpy(buf, err, buflen); return 1; #endif } diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h index e931f7f516ca88d5abde05a259514df5d60f8743..ea91db660b655805d3fccd786dd5b06b78f17f12 100644 --- a/crypto/objects/obj_dat.h +++ b/crypto/objects/obj_dat.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/objects/obj_dat.pl * - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at @@ -1070,7 +1070,7 @@ static const unsigned char so[7762] = { 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01, /* [ 7684] OBJ_id_tc26_wrap_gostr3412_2015_magma */ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01,0x01, /* [ 7692] OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 */ 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02, /* [ 7701] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik */ - 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x01,0x01, /* [ 7709] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 */ + 0x2A,0x85,0x03,0x07,0x01,0x01,0x07,0x02,0x01, /* [ 7709] OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 */ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x02, /* [ 7718] OBJ_id_tc26_gost_3410_2012_256_paramSetB */ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x03, /* [ 7727] OBJ_id_tc26_gost_3410_2012_256_paramSetC */ 0x2A,0x85,0x03,0x07,0x01,0x02,0x01,0x01,0x04, /* [ 7736] OBJ_id_tc26_gost_3410_2012_256_paramSetD */ @@ -5364,7 +5364,7 @@ static const unsigned int obj_objs[NUM_OBJ] = { 1177, /* OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm 1 2 643 7 1 1 5 2 1 */ 1178, /* OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac 1 2 643 7 1 1 5 2 2 */ 1181, /* OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 1 2 643 7 1 1 7 1 1 */ - 1183, /* OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1 2 643 7 1 1 7 1 1 */ + 1183, /* OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1 2 643 7 1 1 7 2 1 */ 1148, /* OBJ_id_tc26_gost_3410_2012_256_paramSetA 1 2 643 7 1 2 1 1 1 */ 1184, /* OBJ_id_tc26_gost_3410_2012_256_paramSetB 1 2 643 7 1 2 1 1 2 */ 1185, /* OBJ_id_tc26_gost_3410_2012_256_paramSetC 1 2 643 7 1 2 1 1 3 */ diff --git a/crypto/objects/obj_dat.pl b/crypto/objects/obj_dat.pl index e80900d09d268750c639eaed09911c8b88d3e4be..e5d38147eccf01ebdd852eed229e77f1fcccc962 100644 --- a/crypto/objects/obj_dat.pl +++ b/crypto/objects/obj_dat.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/objects/obj_xref.h b/crypto/objects/obj_xref.h index 9606e57d6191e4fedc2793ebce8a3c8850515dda..9144d569dcd04585b90372e856ecb8ba9bdbdd95 100644 --- a/crypto/objects/obj_xref.h +++ b/crypto/objects/obj_xref.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by objxref.pl * - * Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy diff --git a/crypto/objects/objects.pl b/crypto/objects/objects.pl index 8f9b67f95991ad015a5e26e4874f72a3d7de269a..d7d1962c9999f67140a1c486c507ff7d474477b0 100644 --- a/crypto/objects/objects.pl +++ b/crypto/objects/objects.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt index 6dbc41ce372711fa4e44a753c334d95efe77fd25..5b2bb54eb929ec59a70daf748d7cb5ae3bdf08a1 100644 --- a/crypto/objects/objects.txt +++ b/crypto/objects/objects.txt @@ -1358,7 +1358,7 @@ id-tc26-algorithms 7 : id-tc26-wrap id-tc26-wrap 1 : id-tc26-wrap-gostr3412-2015-magma id-tc26-wrap-gostr3412-2015-magma 1 : id-tc26-wrap-gostr3412-2015-magma-kexp15 id-tc26-wrap 2 : id-tc26-wrap-gostr3412-2015-kuznyechik -id-tc26-wrap-gostr3412-2015-magma 1 : id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15 +id-tc26-wrap-gostr3412-2015-kuznyechik 1 : id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15 id-tc26 2 : id-tc26-constants diff --git a/crypto/objects/objxref.pl b/crypto/objects/objxref.pl index 0ec63f067e3cfba8b7e5c696ecc21496c0ff3b03..ce76cadae31c8166334bb4de0d7126974892dd2e 100644 --- a/crypto/objects/objxref.pl +++ b/crypto/objects/objxref.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy diff --git a/crypto/ocsp/ocsp_ext.c b/crypto/ocsp/ocsp_ext.c index 27ee21245944a0a67b03b97bdae4c24ab335526d..3ab5308a12bb1550b78381850bddcf661730d96b 100644 --- a/crypto/ocsp/ocsp_ext.c +++ b/crypto/ocsp/ocsp_ext.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -439,6 +439,7 @@ X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls) if ((sloc = OCSP_SERVICELOC_new()) == NULL) goto err; + X509_NAME_free(sloc->issuer); if ((sloc->issuer = X509_NAME_dup(issuer)) == NULL) goto err; if (urls && *urls @@ -449,12 +450,11 @@ X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls) goto err; if ((ad->method = OBJ_nid2obj(NID_ad_OCSP)) == NULL) goto err; - if ((ad->location = GENERAL_NAME_new()) == NULL) - goto err; if ((ia5 = ASN1_IA5STRING_new()) == NULL) goto err; if (!ASN1_STRING_set((ASN1_STRING *)ia5, *urls, -1)) goto err; + /* ad->location is allocated inside ACCESS_DESCRIPTION_new */ ad->location->type = GEN_URI; ad->location->d.ia5 = ia5; ia5 = NULL; diff --git a/crypto/ocsp/ocsp_lib.c b/crypto/ocsp/ocsp_lib.c index 8edd70ac8dd5c1ebfb1b65dfa51497aef627d7a4..b8b91cc9eb3f08212fe77972104eba61266ad50a 100644 --- a/crypto/ocsp/ocsp_lib.c +++ b/crypto/ocsp/ocsp_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -88,7 +88,7 @@ OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, return NULL; } -int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b) +int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b) { int ret; ret = OBJ_cmp(a->hashAlgorithm.algorithm, b->hashAlgorithm.algorithm); @@ -100,7 +100,7 @@ int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b) return ASN1_OCTET_STRING_cmp(&a->issuerKeyHash, &b->issuerKeyHash); } -int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b) +int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b) { int ret; ret = OCSP_id_issuer_cmp(a, b); diff --git a/crypto/pem/pem_info.c b/crypto/pem/pem_info.c index a45fe83001b35ac079c1803e0929b4cc90c61cf6..f90cb4465096c0c69300fefd7a50da0040153d78 100644 --- a/crypto/pem/pem_info.c +++ b/crypto/pem/pem_info.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -297,7 +297,7 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, goto err; } - /* Create the right magic header stuff */ + /* Create the right magic header stuff */ buf[0] = '\0'; PEM_proc_type(buf, PEM_TYPE_ENCRYPTED); PEM_dek_info(buf, objstr, EVP_CIPHER_iv_length(enc), diff --git a/crypto/pem/pem_sign.c b/crypto/pem/pem_sign.c index 9662eb14dbc9d54f927939b7eeed1d10e2d77d7a..7e7b32ebf7d0ca2548a9a6ce5c67ca48b5422766 100644 --- a/crypto/pem/pem_sign.c +++ b/crypto/pem/pem_sign.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -31,7 +31,7 @@ int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, int i, ret = 0; unsigned int m_len; - m = OPENSSL_malloc(EVP_PKEY_size(pkey) + 2); + m = OPENSSL_malloc(EVP_PKEY_size(pkey)); if (m == NULL) { PEMerr(PEM_F_PEM_SIGNFINAL, ERR_R_MALLOC_FAILURE); goto err; diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index f8380f2e9cfa9fb48e78e158e1bc45b32be45f4b..29a0eacfd532a6a41db6e986e144b33471920990 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -541,6 +541,7 @@ my %globals; ); my ($cfa_reg, $cfa_rsp); + my @cfa_stack; # [us]leb128 format is variable-length integer representation base # 2^128, with most significant bit of each byte being 0 denoting @@ -648,7 +649,13 @@ my %globals; # why it starts with -8. Recall that CFA is top of caller's # stack... /startproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", -8); last; }; - /endproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", 0); last; }; + /endproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", 0); + # .cfi_remember_state directives that are not + # matched with .cfi_restore_state are + # unnecessary. + die "unpaired .cfi_remember_state" if (@cfa_stack); + last; + }; /def_cfa_register/ && do { $cfa_reg = $$line; last; }; /def_cfa_offset/ @@ -688,6 +695,14 @@ my %globals; cfa_expression($$line))); last; }; + /remember_state/ + && do { push @cfa_stack, [$cfa_reg, $cfa_rsp]; + last; + }; + /restore_state/ + && do { ($cfa_reg, $cfa_rsp) = @{pop @cfa_stack}; + last; + }; } $self->{value} = ".cfi_$dir\t$$line" if ($dir); diff --git a/crypto/poly1305/asm/poly1305-armv8.pl b/crypto/poly1305/asm/poly1305-armv8.pl index ac06457b65301a4dd8b95e8aa30f12f5b02bd389..6c6c9bb05be074e442e41f2738075e9c4173017a 100755 --- a/crypto/poly1305/asm/poly1305-armv8.pl +++ b/crypto/poly1305/asm/poly1305-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -291,6 +291,7 @@ poly1305_blocks_neon: cbz $is_base2_26,poly1305_blocks .Lblocks_neon: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 @@ -859,6 +860,7 @@ poly1305_blocks_neon: st1 {$ACC4}[0],[$ctx] .Lno_data_neon: + .inst 0xd50323bf // autiasp ldr x29,[sp],#80 ret .size poly1305_blocks_neon,.-poly1305_blocks_neon diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info index 631b32b8e099ace19dd614ce2d99903278f127e5..4e4dcca521f6241bf4871816faa0f6f238fd6e27 100644 --- a/crypto/poly1305/build.info +++ b/crypto/poly1305/build.info @@ -17,6 +17,7 @@ GENERATE[poly1305-armv8.S]=asm/poly1305-armv8.pl $(PERLASM_SCHEME) INCLUDE[poly1305-armv8.o]=.. GENERATE[poly1305-mips.S]=asm/poly1305-mips.pl $(PERLASM_SCHEME) INCLUDE[poly1305-mips.o]=.. +GENERATE[poly1305-s390x.S]=asm/poly1305-s390x.pl $(PERLASM_SCHEME) BEGINRAW[Makefile(unix)] {- $builddir -}/poly1305-%.S: {- $sourcedir -}/asm/poly1305-%.pl diff --git a/crypto/ppc_arch.h b/crypto/ppc_arch.h index 65cf96fc1fe8be1d0414bff322290842958fcbcc..72bd7468745c77af501c51b08dd94a27b53c4b84 100644 --- a/crypto/ppc_arch.h +++ b/crypto/ppc_arch.h @@ -1,5 +1,5 @@ /* - * Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -22,5 +22,7 @@ extern unsigned int OPENSSL_ppccap_P; # define PPC_CRYPTO207 (1<<2) # define PPC_FPU (1<<3) # define PPC_MADD300 (1<<4) +# define PPC_MFTB (1<<5) +# define PPC_MFSPR268 (1<<6) #endif diff --git a/crypto/ppccap.c b/crypto/ppccap.c index 8b7d765c3aa23121f774239706e75063b38143d9..a59485207b167d23fa9dc31aa9f9c9c20e0f44c0 100644 --- a/crypto/ppccap.c +++ b/crypto/ppccap.c @@ -1,5 +1,5 @@ /* - * Copyright 2009-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2009-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -168,16 +168,50 @@ void OPENSSL_altivec_probe(void); void OPENSSL_crypto207_probe(void); void OPENSSL_madd300_probe(void); -/* - * Use a weak reference to getauxval() so we can use it if it is available - * but don't break the build if it is not. Note that this is *link-time* - * feature detection, not *run-time*. In other words if we link with - * symbol present, it's expected to be present even at run-time. - */ -#if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) -extern unsigned long getauxval(unsigned long type) __attribute__ ((weak)); -#else -static unsigned long (*getauxval) (unsigned long) = NULL; +long OPENSSL_rdtsc_mftb(void); +long OPENSSL_rdtsc_mfspr268(void); + +uint32_t OPENSSL_rdtsc(void) +{ + if (OPENSSL_ppccap_P & PPC_MFTB) + return OPENSSL_rdtsc_mftb(); + else if (OPENSSL_ppccap_P & PPC_MFSPR268) + return OPENSSL_rdtsc_mfspr268(); + else + return 0; +} + +size_t OPENSSL_instrument_bus_mftb(unsigned int *, size_t); +size_t OPENSSL_instrument_bus_mfspr268(unsigned int *, size_t); + +size_t OPENSSL_instrument_bus(unsigned int *out, size_t cnt) +{ + if (OPENSSL_ppccap_P & PPC_MFTB) + return OPENSSL_instrument_bus_mftb(out, cnt); + else if (OPENSSL_ppccap_P & PPC_MFSPR268) + return OPENSSL_instrument_bus_mfspr268(out, cnt); + else + return 0; +} + +size_t OPENSSL_instrument_bus2_mftb(unsigned int *, size_t, size_t); +size_t OPENSSL_instrument_bus2_mfspr268(unsigned int *, size_t, size_t); + +size_t OPENSSL_instrument_bus2(unsigned int *out, size_t cnt, size_t max) +{ + if (OPENSSL_ppccap_P & PPC_MFTB) + return OPENSSL_instrument_bus2_mftb(out, cnt, max); + else if (OPENSSL_ppccap_P & PPC_MFSPR268) + return OPENSSL_instrument_bus2_mfspr268(out, cnt, max); + else + return 0; +} + +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +# if __GLIBC_PREREQ(2, 16) +# include <sys/auxv.h> +# define OSSL_IMPLEMENT_GETAUXVAL +# endif #endif /* I wish <sys/auxv.h> was universally available */ @@ -277,8 +311,10 @@ void OPENSSL_cpuid_setup(void) } #endif - if (getauxval != NULL) { +#ifdef OSSL_IMPLEMENT_GETAUXVAL + { unsigned long hwcap = getauxval(HWCAP); + unsigned long hwcap2 = getauxval(HWCAP2); if (hwcap & HWCAP_FPU) { OPENSSL_ppccap_P |= PPC_FPU; @@ -297,16 +333,15 @@ void OPENSSL_cpuid_setup(void) if (hwcap & HWCAP_ALTIVEC) { OPENSSL_ppccap_P |= PPC_ALTIVEC; - if ((hwcap & HWCAP_VSX) && (getauxval(HWCAP2) & HWCAP_VEC_CRYPTO)) + if ((hwcap & HWCAP_VSX) && (hwcap2 & HWCAP_VEC_CRYPTO)) OPENSSL_ppccap_P |= PPC_CRYPTO207; } - if (hwcap & HWCAP_ARCH_3_00) { + if (hwcap2 & HWCAP_ARCH_3_00) { OPENSSL_ppccap_P |= PPC_MADD300; } - - return; } +#endif sigfillset(&all_masked); sigdelset(&all_masked, SIGILL); @@ -325,15 +360,16 @@ void OPENSSL_cpuid_setup(void) sigprocmask(SIG_SETMASK, &ill_act.sa_mask, &oset); sigaction(SIGILL, &ill_act, &ill_oact); +#ifndef OSSL_IMPLEMENT_GETAUXVAL if (sigsetjmp(ill_jmp,1) == 0) { OPENSSL_fpu_probe(); OPENSSL_ppccap_P |= PPC_FPU; if (sizeof(size_t) == 4) { -#ifdef __linux +# ifdef __linux struct utsname uts; if (uname(&uts) == 0 && strcmp(uts.machine, "ppc64") == 0) -#endif +# endif if (sigsetjmp(ill_jmp, 1) == 0) { OPENSSL_ppc64_probe(); OPENSSL_ppccap_P |= PPC_FPU64; @@ -358,6 +394,15 @@ void OPENSSL_cpuid_setup(void) OPENSSL_madd300_probe(); OPENSSL_ppccap_P |= PPC_MADD300; } +#endif + + if (sigsetjmp(ill_jmp, 1) == 0) { + OPENSSL_rdtsc_mftb(); + OPENSSL_ppccap_P |= PPC_MFTB; + } else if (sigsetjmp(ill_jmp, 1) == 0) { + OPENSSL_rdtsc_mfspr268(); + OPENSSL_ppccap_P |= PPC_MFSPR268; + } sigaction(SIGILL, &ill_oact, NULL); sigprocmask(SIG_SETMASK, &oset, NULL); diff --git a/crypto/ppccpuid.pl b/crypto/ppccpuid.pl index 9d1cada4dc4c9177552f1abdd2bd4151c1e73296..a38445fd3c5292aa743b546741b725d02bed170b 100755 --- a/crypto/ppccpuid.pl +++ b/crypto/ppccpuid.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2007-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -124,26 +124,23 @@ Ladd: lwarx r5,0,r3 .long 0 .size .OPENSSL_atomic_add,.-.OPENSSL_atomic_add -.globl .OPENSSL_rdtsc +.globl .OPENSSL_rdtsc_mftb .align 4 -.OPENSSL_rdtsc: -___ -$code.=<<___ if ($flavour =~ /64/); - mftb r3 -___ -$code.=<<___ if ($flavour !~ /64/); -Loop_rdtsc: - mftbu r5 +.OPENSSL_rdtsc_mftb: mftb r3 - mftbu r4 - cmplw r4,r5 - bne Loop_rdtsc -___ -$code.=<<___; blr .long 0 .byte 0,12,0x14,0,0,0,0,0 -.size .OPENSSL_rdtsc,.-.OPENSSL_rdtsc +.size .OPENSSL_rdtsc_mftb,.-.OPENSSL_rdtsc_mftb + +.globl .OPENSSL_rdtsc_mfspr268 +.align 4 +.OPENSSL_rdtsc_mfspr268: + mfspr r3,268 + blr + .long 0 + .byte 0,12,0x14,0,0,0,0,0 +.size .OPENSSL_rdtsc_mfspr268,.-.OPENSSL_rdtsc_mfspr268 .globl .OPENSSL_cleanse .align 4 @@ -210,9 +207,9 @@ my ($tick,$lasttick)=("r6","r7"); my ($diff,$lastdiff)=("r8","r9"); $code.=<<___; -.globl .OPENSSL_instrument_bus +.globl .OPENSSL_instrument_bus_mftb .align 4 -.OPENSSL_instrument_bus: +.OPENSSL_instrument_bus_mftb: mtctr $cnt mftb $lasttick # collect 1st tick @@ -240,11 +237,11 @@ Loop: mftb $tick .long 0 .byte 0,12,0x14,0,0,0,2,0 .long 0 -.size .OPENSSL_instrument_bus,.-.OPENSSL_instrument_bus +.size .OPENSSL_instrument_bus_mftb,.-.OPENSSL_instrument_bus_mftb -.globl .OPENSSL_instrument_bus2 +.globl .OPENSSL_instrument_bus2_mftb .align 4 -.OPENSSL_instrument_bus2: +.OPENSSL_instrument_bus2_mftb: mr r0,$cnt slwi $cnt,$cnt,2 @@ -292,7 +289,91 @@ Ldone2: .long 0 .byte 0,12,0x14,0,0,0,3,0 .long 0 -.size .OPENSSL_instrument_bus2,.-.OPENSSL_instrument_bus2 +.size .OPENSSL_instrument_bus2_mftb,.-.OPENSSL_instrument_bus2_mftb + +.globl .OPENSSL_instrument_bus_mfspr268 +.align 4 +.OPENSSL_instrument_bus_mfspr268: + mtctr $cnt + + mfspr $lasttick,268 # collect 1st tick + li $diff,0 + + dcbf 0,$out # flush cache line + lwarx $tick,0,$out # load and lock + add $tick,$tick,$diff + stwcx. $tick,0,$out + stwx $tick,0,$out + +Loop3: mfspr $tick,268 + sub $diff,$tick,$lasttick + mr $lasttick,$tick + dcbf 0,$out # flush cache line + lwarx $tick,0,$out # load and lock + add $tick,$tick,$diff + stwcx. $tick,0,$out + stwx $tick,0,$out + addi $out,$out,4 # ++$out + bdnz Loop3 + + mr r3,$cnt + blr + .long 0 + .byte 0,12,0x14,0,0,0,2,0 + .long 0 +.size .OPENSSL_instrument_bus_mfspr268,.-.OPENSSL_instrument_bus_mfspr268 + +.globl .OPENSSL_instrument_bus2_mfspr268 +.align 4 +.OPENSSL_instrument_bus2_mfspr268: + mr r0,$cnt + slwi $cnt,$cnt,2 + + mfspr $lasttick,268 # collect 1st tick + li $diff,0 + + dcbf 0,$out # flush cache line + lwarx $tick,0,$out # load and lock + add $tick,$tick,$diff + stwcx. $tick,0,$out + stwx $tick,0,$out + + mfspr $tick,268 # collect 1st diff + sub $diff,$tick,$lasttick + mr $lasttick,$tick + mr $lastdiff,$diff +Loop4: + dcbf 0,$out # flush cache line + lwarx $tick,0,$out # load and lock + add $tick,$tick,$diff + stwcx. $tick,0,$out + stwx $tick,0,$out + + addic. $max,$max,-1 + beq Ldone4 + + mfspr $tick,268 + sub $diff,$tick,$lasttick + mr $lasttick,$tick + cmplw 7,$diff,$lastdiff + mr $lastdiff,$diff + + mfcr $tick # pull cr + not $tick,$tick # flip bits + rlwinm $tick,$tick,1,29,29 # isolate flipped eq bit and scale + + sub. $cnt,$cnt,$tick # conditional --$cnt + add $out,$out,$tick # conditional ++$out + bne Loop4 + +Ldone4: + srwi $cnt,$cnt,2 + sub r3,r0,$cnt + blr + .long 0 + .byte 0,12,0x14,0,0,0,3,0 + .long 0 +.size .OPENSSL_instrument_bus2_mfspr268,.-.OPENSSL_instrument_bus2_mfspr268 ___ } diff --git a/crypto/rand/drbg_lib.c b/crypto/rand/drbg_lib.c index a13282181d6d1b31c606677ca55c0adad1f7c919..abbe0a8ba30f3ece734e8573abb94214c45af8f1 100644 --- a/crypto/rand/drbg_lib.c +++ b/crypto/rand/drbg_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -188,8 +188,8 @@ static RAND_DRBG *rand_drbg_new(int secure, unsigned int flags, RAND_DRBG *parent) { - RAND_DRBG *drbg = secure ? - OPENSSL_secure_zalloc(sizeof(*drbg)) : OPENSSL_zalloc(sizeof(*drbg)); + RAND_DRBG *drbg = secure ? OPENSSL_secure_zalloc(sizeof(*drbg)) + : OPENSSL_zalloc(sizeof(*drbg)); if (drbg == NULL) { RANDerr(RAND_F_RAND_DRBG_NEW, ERR_R_MALLOC_FAILURE); diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index d8639c4a03f36be609a8bc7ceacabaf2fd0ac16b..108b4f51634d25679a421551c8a3ccd1220ae886 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -137,7 +137,7 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg, size_t entropy_available = 0; RAND_POOL *pool; - if (drbg->parent && drbg->strength > drbg->parent->strength) { + if (drbg->parent != NULL && drbg->strength > drbg->parent->strength) { /* * We currently don't support the algorithm from NIST SP 800-90C * 10.1.2 to use a weaker DRBG as source @@ -155,7 +155,7 @@ size_t rand_drbg_get_entropy(RAND_DRBG *drbg, return 0; } - if (drbg->parent) { + if (drbg->parent != NULL) { size_t bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); unsigned char *buffer = rand_pool_add_begin(pool, bytes_needed); @@ -235,7 +235,7 @@ size_t rand_drbg_get_nonce(RAND_DRBG *drbg, struct { void * instance; int count; - } data = { 0 }; + } data = { NULL, 0 }; pool = rand_pool_new(0, min_len, max_len); if (pool == NULL) @@ -402,7 +402,7 @@ int RAND_poll(void) } else { /* fill random pool and seed the current legacy RNG */ pool = rand_pool_new(RAND_DRBG_STRENGTH, - RAND_DRBG_STRENGTH / 8, + (RAND_DRBG_STRENGTH + 7) / 8, RAND_POOL_MAX_LENGTH); if (pool == NULL) return 0; @@ -689,7 +689,7 @@ unsigned char *rand_pool_add_begin(RAND_POOL *pool, size_t len) if (pool->buffer == NULL) { RANDerr(RAND_F_RAND_POOL_ADD_BEGIN, ERR_R_INTERNAL_ERROR); - return 0; + return NULL; } return pool->buffer + pool->len; diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c index 9d8ffdd5379651f8d34883bd4cf6b0caa952e2e6..4710dbb2d1019ae1d9f5f57d05c4ee939b4ce41a 100644 --- a/crypto/rand/rand_unix.c +++ b/crypto/rand/rand_unix.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -19,7 +19,7 @@ #include <stdio.h> #include "internal/dso.h" #if defined(__linux) -# include <sys/syscall.h> +# include <asm/unistd.h> #endif #if defined(__FreeBSD__) # include <sys/types.h> @@ -93,6 +93,27 @@ static uint64_t get_timer_bits(void); # error "UEFI and VXWorks only support seeding NONE" #endif +#if defined(OPENSSL_SYS_VXWORKS) +/* empty implementation */ +int rand_pool_init(void) +{ + return 1; +} + +void rand_pool_cleanup(void) +{ +} + +void rand_pool_keep_random_devices_open(int keep) +{ +} + +size_t rand_pool_acquire_entropy(RAND_POOL *pool) +{ + return rand_pool_entropy_available(pool); +} +#endif + #if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) \ || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) \ || defined(OPENSSL_SYS_UEFI)) @@ -303,8 +324,8 @@ static ssize_t syscall_random(void *buf, size_t buflen) # endif /* Linux supports this since version 3.17 */ -# if defined(__linux) && defined(SYS_getrandom) - return syscall(SYS_getrandom, buf, buflen, 0); +# if defined(__linux) && defined(__NR_getrandom) + return syscall(__NR_getrandom, buf, buflen, 0); # elif (defined(__FreeBSD__) || defined(__NetBSD__)) && defined(KERN_ARND) return sysctl_random(buf, buflen); # else @@ -489,6 +510,29 @@ size_t rand_pool_acquire_entropy(RAND_POOL *pool) bytes_needed = rand_pool_bytes_needed(pool, 1 /*entropy_factor*/); { size_t i; +#ifdef DEVRANDOM_WAIT + static int wait_done = 0; + + /* + * On some implementations reading from /dev/urandom is possible + * before it is initialized. Therefore we wait for /dev/random + * to be readable to make sure /dev/urandom is initialized. + */ + if (!wait_done && bytes_needed > 0) { + int f = open(DEVRANDOM_WAIT, O_RDONLY); + + if (f >= 0) { + fd_set fds; + + FD_ZERO(&fds); + FD_SET(f, &fds); + while (select(f+1, &fds, NULL, NULL, NULL) < 0 + && errno == EINTR); + close(f); + } + wait_done = 1; + } +#endif for (i = 0; bytes_needed > 0 && i < OSSL_NELEM(random_device_paths); i++) { ssize_t bytes = 0; diff --git a/crypto/rand/rand_vms.c b/crypto/rand/rand_vms.c index bfcf6f0a86c508e9b0c23411f67c6ae2ac2d77d4..e1e1c0b9db8de93ce28b5156f67ea63729317310 100644 --- a/crypto/rand/rand_vms.c +++ b/crypto/rand/rand_vms.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -507,7 +507,11 @@ int rand_pool_add_additional_data(RAND_POOL *pool) * concurrently (which is the case for the <master> drbg). */ data.tid = CRYPTO_THREAD_get_current_id(); +#if __CRTL_VER >= 80400000 sys$gettim_prec(&data.time); +#else + sys$gettim((void*)&data.time); +#endif return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0); } diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c index d2039eb226ec11d366f2f789671da546efc9a696..56d79e7f3b6c8487f594fe754b7ad379cfead25f 100644 --- a/crypto/rand/rand_win.c +++ b/crypto/rand/rand_win.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -18,8 +18,8 @@ # endif # include <windows.h> -/* On Windows 7 or higher use BCrypt instead of the legacy CryptoAPI */ -# if defined(_MSC_VER) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0601 +/* On Windows Vista or higher use BCrypt instead of the legacy CryptoAPI */ +# if defined(_MSC_VER) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 # define USE_BCRYPTGENRANDOM # endif diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index 1b737d1ba2ba3385fbe8aabbeaf032f143ae42d9..ba121eefbf09ddd05066b9e8c071e86bab7137e3 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -254,7 +254,7 @@ const char *RAND_file_name(char *buf, size_t size) size_t len; int use_randfile = 1; -#if defined(_WIN32) && defined(CP_UTF8) +#if defined(_WIN32) && defined(CP_UTF8) && !defined(_WIN32_WCE) DWORD envlen; WCHAR *var; diff --git a/crypto/rc4/build.info b/crypto/rc4/build.info index 46ee66b61c68a2d44650c7fe81c88bb0a37c19e1..913942b5e98003ff38b7276ddda43f65d8892323 100644 --- a/crypto/rc4/build.info +++ b/crypto/rc4/build.info @@ -11,6 +11,8 @@ GENERATE[rc4-md5-x86_64.s]=asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) GENERATE[rc4-parisc.s]=asm/rc4-parisc.pl $(PERLASM_SCHEME) +GENERATE[rc4-s390x.s]=asm/rc4-s390x.pl $(PERLASM_SCHEME) + BEGINRAW[Makefile] # GNU make "catch all" {- $builddir -}/rc4-%.s: {- $sourcedir -}/asm/rc4-%.pl diff --git a/crypto/rsa/rsa_ameth.c b/crypto/rsa/rsa_ameth.c index a6595aec05420e03ee59c7d40fb25efb811e2112..ab5f61518bb1564de3d7c2814dc79432dff159db 100644 --- a/crypto/rsa/rsa_ameth.c +++ b/crypto/rsa/rsa_ameth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -34,7 +34,7 @@ static int rsa_param_encode(const EVP_PKEY *pkey, *pstr = NULL; /* If RSA it's just NULL type */ - if (pkey->ameth->pkey_id == EVP_PKEY_RSA) { + if (pkey->ameth->pkey_id != EVP_PKEY_RSA_PSS) { *pstrtype = V_ASN1_NULL; return 1; } @@ -58,7 +58,7 @@ static int rsa_param_decode(RSA *rsa, const X509_ALGOR *alg) int algptype; X509_ALGOR_get0(&algoid, &algptype, &algp, alg); - if (OBJ_obj2nid(algoid) == EVP_PKEY_RSA) + if (OBJ_obj2nid(algoid) != EVP_PKEY_RSA_PSS) return 1; if (algptype == V_ASN1_UNDEF) return 1; @@ -109,7 +109,10 @@ static int rsa_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) RSA_free(rsa); return 0; } - EVP_PKEY_assign(pkey, pkey->ameth->pkey_id, rsa); + if (!EVP_PKEY_assign(pkey, pkey->ameth->pkey_id, rsa)) { + RSA_free(rsa); + return 0; + } return 1; } @@ -580,10 +583,12 @@ static RSA_PSS_PARAMS *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx) return NULL; if (saltlen == -1) { saltlen = EVP_MD_size(sigmd); - } else if (saltlen == -2) { + } else if (saltlen == -2 || saltlen == -3) { saltlen = EVP_PKEY_size(pk) - EVP_MD_size(sigmd) - 2; if ((EVP_PKEY_bits(pk) & 0x7) == 1) saltlen--; + if (saltlen < 0) + return NULL; } return rsa_pss_params_create(sigmd, mgf1md, saltlen); diff --git a/crypto/rsa/rsa_gen.c b/crypto/rsa/rsa_gen.c index 7f0a25648140c4e89d0497bdc5c105fd7002b6c2..4997a632f2d3f63ec877ebd0c072f0bc9af0b786 100644 --- a/crypto/rsa/rsa_gen.c +++ b/crypto/rsa/rsa_gen.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -387,8 +387,7 @@ static int rsa_builtin_keygen(RSA *rsa, int bits, int primes, BIGNUM *e_value, RSAerr(RSA_F_RSA_BUILTIN_KEYGEN, ERR_LIB_BN); ok = 0; } - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); return ok; } diff --git a/crypto/rsa/rsa_oaep.c b/crypto/rsa/rsa_oaep.c index f13c6fc9e50636332f4e42d76bc5b83526b84a1d..48b888bf27adb48f95d2cd061fc1fb636f9b5ad6 100644 --- a/crypto/rsa/rsa_oaep.c +++ b/crypto/rsa/rsa_oaep.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -120,7 +120,7 @@ int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, const EVP_MD *mgf1md) { int i, dblen = 0, mlen = -1, one_index = 0, msg_index; - unsigned int good, found_one_byte; + unsigned int good = 0, found_one_byte, mask; const unsigned char *maskedseed, *maskeddb; /* * |em| is the encoded message, zero-padded to exactly |num| bytes: em = @@ -143,12 +143,15 @@ int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, * |num| is the length of the modulus; |flen| is the length of the * encoded message. Therefore, for any |from| that was obtained by * decrypting a ciphertext, we must have |flen| <= |num|. Similarly, - * num < 2 * mdlen + 2 must hold for the modulus irrespective of + * |num| >= 2 * |mdlen| + 2 must hold for the modulus irrespective of * the ciphertext, see PKCS #1 v2.2, section 7.1.2. * This does not leak any side-channel information. */ - if (num < flen || num < 2 * mdlen + 2) - goto decoding_err; + if (num < flen || num < 2 * mdlen + 2) { + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, + RSA_R_OAEP_DECODING_ERROR); + return -1; + } dblen = num - mdlen - 1; db = OPENSSL_malloc(dblen); @@ -157,24 +160,24 @@ int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, goto cleanup; } - if (flen != num) { - em = OPENSSL_zalloc(num); - if (em == NULL) { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, - ERR_R_MALLOC_FAILURE); - goto cleanup; - } + em = OPENSSL_malloc(num); + if (em == NULL) { + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, + ERR_R_MALLOC_FAILURE); + goto cleanup; + } - /* - * Caller is encouraged to pass zero-padded message created with - * BN_bn2binpad, but if it doesn't, we do this zero-padding copy - * to avoid leaking that information. The copy still leaks some - * side-channel information, but it's impossible to have a fixed - * memory access pattern since we can't read out of the bounds of - * |from|. - */ - memcpy(em + num - flen, from, flen); - from = em; + /* + * Caller is encouraged to pass zero-padded message created with + * BN_bn2binpad. Trouble is that since we can't read out of |from|'s + * bounds, it's impossible to have an invariant memory access pattern + * in case |from| was not zero-padded in advance. + */ + for (from += flen, em += num, i = 0; i < num; i++) { + mask = ~constant_time_is_zero(flen); + flen -= 1 & mask; + from -= 1 & mask; + *--em = *from & mask; } /* @@ -182,10 +185,10 @@ int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, * true. See James H. Manger, "A Chosen Ciphertext Attack on RSA * Optimal Asymmetric Encryption Padding (OAEP) [...]", CRYPTO 2001). */ - good = constant_time_is_zero(from[0]); + good = constant_time_is_zero(em[0]); - maskedseed = from + 1; - maskeddb = from + 1 + mdlen; + maskedseed = em + 1; + maskeddb = em + 1 + mdlen; if (PKCS1_MGF1(seed, mdlen, maskeddb, dblen, mgf1md)) goto cleanup; @@ -222,32 +225,49 @@ int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, * so plaintext-awareness ensures timing side-channels are no longer a * concern. */ - if (!good) - goto decoding_err; - msg_index = one_index + 1; mlen = dblen - msg_index; - if (tlen < mlen) { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, RSA_R_DATA_TOO_LARGE); - mlen = -1; - } else { - memcpy(to, db + msg_index, mlen); - goto cleanup; + /* + * For good measure, do this check in constant time as well. + */ + good &= constant_time_ge(tlen, mlen); + + /* + * Move the result in-place by |dblen|-|mdlen|-1-|mlen| bytes to the left. + * Then if |good| move |mlen| bytes from |db|+|mdlen|+1 to |to|. + * Otherwise leave |to| unchanged. + * Copy the memory back in a way that does not reveal the size of + * the data being copied via a timing side channel. This requires copying + * parts of the buffer multiple times based on the bits set in the real + * length. Clear bits do a non-copy with identical access pattern. + * The loop below has overall complexity of O(N*log(N)). + */ + tlen = constant_time_select_int(constant_time_lt(dblen - mdlen - 1, tlen), + dblen - mdlen - 1, tlen); + for (msg_index = 1; msg_index < dblen - mdlen - 1; msg_index <<= 1) { + mask = ~constant_time_eq(msg_index & (dblen - mdlen - 1 - mlen), 0); + for (i = mdlen + 1; i < dblen - msg_index; i++) + db[i] = constant_time_select_8(mask, db[i + msg_index], db[i]); + } + for (i = 0; i < tlen; i++) { + mask = good & constant_time_lt(i, mlen); + to[i] = constant_time_select_8(mask, db[i + mdlen + 1], to[i]); } - decoding_err: /* * To avoid chosen ciphertext attacks, the error message should not * reveal which kind of decoding error happened. */ RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1, RSA_R_OAEP_DECODING_ERROR); + err_clear_last_constant_time(1 & good); cleanup: OPENSSL_cleanse(seed, sizeof(seed)); OPENSSL_clear_free(db, dblen); OPENSSL_clear_free(em, num); - return mlen; + + return constant_time_select_int(good, mlen, -1); } int PKCS1_MGF1(unsigned char *mask, long len, diff --git a/crypto/rsa/rsa_ossl.c b/crypto/rsa/rsa_ossl.c index 2b1b006c2801db7c26495713db86d3f9b702ae4f..33be9ea8cb848b2fb7dbc431e03a834c8e682944 100644 --- a/crypto/rsa/rsa_ossl.c +++ b/crypto/rsa/rsa_ossl.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -10,6 +10,7 @@ #include "internal/cryptlib.h" #include "internal/bn_int.h" #include "rsa_locl.h" +#include "internal/constant_time_locl.h" static int rsa_ossl_public_encrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding); @@ -147,8 +148,7 @@ static int rsa_ossl_public_encrypt(int flen, const unsigned char *from, */ r = BN_bn2binpad(ret, to, num); err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); OPENSSL_clear_free(buf, num); return r; @@ -286,6 +286,11 @@ static int rsa_ossl_private_encrypt(int flen, const unsigned char *from, goto err; } + if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) + if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, rsa->lock, + rsa->n, ctx)) + goto err; + if (!(rsa->flags & RSA_FLAG_NO_BLINDING)) { blinding = rsa_get_blinding(rsa, &local_blinding, ctx); if (blinding == NULL) { @@ -318,13 +323,6 @@ static int rsa_ossl_private_encrypt(int flen, const unsigned char *from, } BN_with_flags(d, rsa->d, BN_FLG_CONSTTIME); - if (rsa->flags & RSA_FLAG_CACHE_PUBLIC) - if (!BN_MONT_CTX_set_locked(&rsa->_method_mod_n, rsa->lock, - rsa->n, ctx)) { - BN_free(d); - goto err; - } - if (!rsa->meth->bn_mod_exp(ret, f, d, rsa->n, ctx, rsa->_method_mod_n)) { BN_free(d); @@ -355,8 +353,7 @@ static int rsa_ossl_private_encrypt(int flen, const unsigned char *from, */ r = BN_bn2binpad(res, to, num); err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); OPENSSL_clear_free(buf, num); return r; @@ -481,12 +478,11 @@ static int rsa_ossl_private_decrypt(int flen, const unsigned char *from, RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, RSA_R_UNKNOWN_PADDING_TYPE); goto err; } - if (r < 0) - RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, RSA_R_PADDING_CHECK_FAILED); + RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, RSA_R_PADDING_CHECK_FAILED); + err_clear_last_constant_time(1 & ~constant_time_msb(r)); err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); OPENSSL_clear_free(buf, num); return r; @@ -582,8 +578,7 @@ static int rsa_ossl_public_decrypt(int flen, const unsigned char *from, RSAerr(RSA_F_RSA_OSSL_PUBLIC_DECRYPT, RSA_R_PADDING_CHECK_FAILED); err: - if (ctx != NULL) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); OPENSSL_clear_free(buf, num); return r; diff --git a/crypto/rsa/rsa_pk1.c b/crypto/rsa/rsa_pk1.c index d07c0d6f852b999da6b2186aa203f0d5bf65bef5..5260d12f4c91389f2338a7ddbf5248c480aeb23d 100644 --- a/crypto/rsa/rsa_pk1.c +++ b/crypto/rsa/rsa_pk1.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -158,10 +158,10 @@ int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, int i; /* |em| is the encoded message, zero-padded to exactly |num| bytes */ unsigned char *em = NULL; - unsigned int good, found_zero_byte; + unsigned int good, found_zero_byte, mask; int zero_index = 0, msg_index, mlen = -1; - if (tlen < 0 || flen < 0) + if (tlen <= 0 || flen <= 0) return -1; /* @@ -169,48 +169,49 @@ int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, * section 7.2.2. */ - if (flen > num) - goto err; - - if (num < 11) - goto err; + if (flen > num || num < 11) { + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, + RSA_R_PKCS_DECODING_ERROR); + return -1; + } - if (flen != num) { - em = OPENSSL_zalloc(num); - if (em == NULL) { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, ERR_R_MALLOC_FAILURE); - return -1; - } - /* - * Caller is encouraged to pass zero-padded message created with - * BN_bn2binpad, but if it doesn't, we do this zero-padding copy - * to avoid leaking that information. The copy still leaks some - * side-channel information, but it's impossible to have a fixed - * memory access pattern since we can't read out of the bounds of - * |from|. - */ - memcpy(em + num - flen, from, flen); - from = em; + em = OPENSSL_malloc(num); + if (em == NULL) { + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, ERR_R_MALLOC_FAILURE); + return -1; + } + /* + * Caller is encouraged to pass zero-padded message created with + * BN_bn2binpad. Trouble is that since we can't read out of |from|'s + * bounds, it's impossible to have an invariant memory access pattern + * in case |from| was not zero-padded in advance. + */ + for (from += flen, em += num, i = 0; i < num; i++) { + mask = ~constant_time_is_zero(flen); + flen -= 1 & mask; + from -= 1 & mask; + *--em = *from & mask; } - good = constant_time_is_zero(from[0]); - good &= constant_time_eq(from[1], 2); + good = constant_time_is_zero(em[0]); + good &= constant_time_eq(em[1], 2); + /* scan over padding data */ found_zero_byte = 0; for (i = 2; i < num; i++) { - unsigned int equals0 = constant_time_is_zero(from[i]); - zero_index = - constant_time_select_int(~found_zero_byte & equals0, i, - zero_index); + unsigned int equals0 = constant_time_is_zero(em[i]); + + zero_index = constant_time_select_int(~found_zero_byte & equals0, + i, zero_index); found_zero_byte |= equals0; } /* - * PS must be at least 8 bytes long, and it starts two bytes into |from|. + * PS must be at least 8 bytes long, and it starts two bytes into |em|. * If we never found a 0-byte, then |zero_index| is 0 and the check * also fails. */ - good &= constant_time_ge((unsigned int)(zero_index), 2 + 8); + good &= constant_time_ge(zero_index, 2 + 8); /* * Skip the zero byte. This is incorrect if we never found a zero-byte @@ -220,27 +221,35 @@ int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, mlen = num - msg_index; /* - * For good measure, do this check in constant time as well; it could - * leak something if |tlen| was assuming valid padding. + * For good measure, do this check in constant time as well. */ - good &= constant_time_ge((unsigned int)(tlen), (unsigned int)(mlen)); + good &= constant_time_ge(tlen, mlen); /* - * We can't continue in constant-time because we need to copy the result - * and we cannot fake its length. This unavoidably leaks timing - * information at the API boundary. + * Move the result in-place by |num|-11-|mlen| bytes to the left. + * Then if |good| move |mlen| bytes from |em|+11 to |to|. + * Otherwise leave |to| unchanged. + * Copy the memory back in a way that does not reveal the size of + * the data being copied via a timing side channel. This requires copying + * parts of the buffer multiple times based on the bits set in the real + * length. Clear bits do a non-copy with identical access pattern. + * The loop below has overall complexity of O(N*log(N)). */ - if (!good) { - mlen = -1; - goto err; + tlen = constant_time_select_int(constant_time_lt(num - 11, tlen), + num - 11, tlen); + for (msg_index = 1; msg_index < num - 11; msg_index <<= 1) { + mask = ~constant_time_eq(msg_index & (num - 11 - mlen), 0); + for (i = 11; i < num - msg_index; i++) + em[i] = constant_time_select_8(mask, em[i + msg_index], em[i]); + } + for (i = 0; i < tlen; i++) { + mask = good & constant_time_lt(i, mlen); + to[i] = constant_time_select_8(mask, em[i + 11], to[i]); } - memcpy(to, from + msg_index, mlen); - - err: OPENSSL_clear_free(em, num); - if (mlen == -1) - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, - RSA_R_PKCS_DECODING_ERROR); - return mlen; + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2, RSA_R_PKCS_DECODING_ERROR); + err_clear_last_constant_time(1 & good); + + return constant_time_select_int(good, mlen, -1); } diff --git a/crypto/rsa/rsa_pmeth.c b/crypto/rsa/rsa_pmeth.c index c10669f8a91b481b8caacd1b0dcfce562571af18..082ab8fd8a1f256e67be96b69afc31a22749e733 100644 --- a/crypto/rsa/rsa_pmeth.c +++ b/crypto/rsa/rsa_pmeth.c @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -7,6 +7,8 @@ * https://www.openssl.org/source/license.html */ +#include "internal/constant_time_locl.h" + #include <stdio.h> #include "internal/cryptlib.h" #include <openssl/asn1t.h> @@ -54,7 +56,7 @@ static int pkey_rsa_init(EVP_PKEY_CTX *ctx) if (rctx == NULL) return 0; - rctx->nbits = 1024; + rctx->nbits = 2048; rctx->primes = RSA_DEFAULT_PRIME_NUM; if (pkey_ctx_is_pss(ctx)) rctx->pad_mode = RSA_PKCS1_PSS_PADDING; @@ -340,10 +342,9 @@ static int pkey_rsa_decrypt(EVP_PKEY_CTX *ctx, ret = RSA_private_decrypt(inlen, in, out, ctx->pkey->pkey.rsa, rctx->pad_mode); } - if (ret < 0) - return ret; - *outlen = ret; - return 1; + *outlen = constant_time_select_s(constant_time_msb_s(ret), *outlen, ret); + ret = constant_time_select_int(constant_time_msb(ret), ret, 1); + return ret; } static int check_padding_md(const EVP_MD *md, int padding) diff --git a/crypto/rsa/rsa_ssl.c b/crypto/rsa/rsa_ssl.c index 286d0a42de0f04f2c19c865989fb99f3ddf80d03..3859128a6d808eeae66ece2ae09615d24816c0a8 100644 --- a/crypto/rsa/rsa_ssl.c +++ b/crypto/rsa/rsa_ssl.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,6 +12,7 @@ #include <openssl/bn.h> #include <openssl/rsa.h> #include <openssl/rand.h> +#include "internal/constant_time_locl.h" int RSA_padding_add_SSLv23(unsigned char *to, int tlen, const unsigned char *from, int flen) @@ -52,57 +53,118 @@ int RSA_padding_add_SSLv23(unsigned char *to, int tlen, return 1; } +/* + * Copy of RSA_padding_check_PKCS1_type_2 with a twist that rejects padding + * if nul delimiter is not preceded by 8 consecutive 0x03 bytes. It also + * preserves error code reporting for backward compatibility. + */ int RSA_padding_check_SSLv23(unsigned char *to, int tlen, const unsigned char *from, int flen, int num) { - int i, j, k; - const unsigned char *p; + int i; + /* |em| is the encoded message, zero-padded to exactly |num| bytes */ + unsigned char *em = NULL; + unsigned int good, found_zero_byte, mask, threes_in_row; + int zero_index = 0, msg_index, mlen = -1, err; - p = from; - if (flen < 10) { + if (tlen <= 0 || flen <= 0) + return -1; + + if (flen > num || num < 11) { RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_DATA_TOO_SMALL); return -1; } - /* Accept even zero-padded input */ - if (flen == num) { - if (*(p++) != 0) { - RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_BLOCK_TYPE_IS_NOT_02); - return -1; - } - flen--; - } - if ((num != (flen + 1)) || (*(p++) != 02)) { - RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_BLOCK_TYPE_IS_NOT_02); + + em = OPENSSL_malloc(num); + if (em == NULL) { + RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, ERR_R_MALLOC_FAILURE); return -1; } + /* + * Caller is encouraged to pass zero-padded message created with + * BN_bn2binpad. Trouble is that since we can't read out of |from|'s + * bounds, it's impossible to have an invariant memory access pattern + * in case |from| was not zero-padded in advance. + */ + for (from += flen, em += num, i = 0; i < num; i++) { + mask = ~constant_time_is_zero(flen); + flen -= 1 & mask; + from -= 1 & mask; + *--em = *from & mask; + } + + good = constant_time_is_zero(em[0]); + good &= constant_time_eq(em[1], 2); + err = constant_time_select_int(good, 0, RSA_R_BLOCK_TYPE_IS_NOT_02); + mask = ~good; /* scan over padding data */ - j = flen - 1; /* one for type */ - for (i = 0; i < j; i++) - if (*(p++) == 0) - break; - - if ((i == j) || (i < 8)) { - RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, - RSA_R_NULL_BEFORE_BLOCK_MISSING); - return -1; + found_zero_byte = 0; + threes_in_row = 0; + for (i = 2; i < num; i++) { + unsigned int equals0 = constant_time_is_zero(em[i]); + + zero_index = constant_time_select_int(~found_zero_byte & equals0, + i, zero_index); + found_zero_byte |= equals0; + + threes_in_row += 1 & ~found_zero_byte; + threes_in_row &= found_zero_byte | constant_time_eq(em[i], 3); } - for (k = -9; k < -1; k++) { - if (p[k] != 0x03) - break; + + /* + * PS must be at least 8 bytes long, and it starts two bytes into |em|. + * If we never found a 0-byte, then |zero_index| is 0 and the check + * also fails. + */ + good &= constant_time_ge(zero_index, 2 + 8); + err = constant_time_select_int(mask | good, err, + RSA_R_NULL_BEFORE_BLOCK_MISSING); + mask = ~good; + + good &= constant_time_ge(threes_in_row, 8); + err = constant_time_select_int(mask | good, err, + RSA_R_SSLV3_ROLLBACK_ATTACK); + mask = ~good; + + /* + * Skip the zero byte. This is incorrect if we never found a zero-byte + * but in this case we also do not copy the message out. + */ + msg_index = zero_index + 1; + mlen = num - msg_index; + + /* + * For good measure, do this check in constant time as well. + */ + good &= constant_time_ge(tlen, mlen); + err = constant_time_select_int(mask | good, err, RSA_R_DATA_TOO_LARGE); + + /* + * Move the result in-place by |num|-11-|mlen| bytes to the left. + * Then if |good| move |mlen| bytes from |em|+11 to |to|. + * Otherwise leave |to| unchanged. + * Copy the memory back in a way that does not reveal the size of + * the data being copied via a timing side channel. This requires copying + * parts of the buffer multiple times based on the bits set in the real + * length. Clear bits do a non-copy with identical access pattern. + * The loop below has overall complexity of O(N*log(N)). + */ + tlen = constant_time_select_int(constant_time_lt(num - 11, tlen), + num - 11, tlen); + for (msg_index = 1; msg_index < num - 11; msg_index <<= 1) { + mask = ~constant_time_eq(msg_index & (num - 11 - mlen), 0); + for (i = 11; i < num - msg_index; i++) + em[i] = constant_time_select_8(mask, em[i + msg_index], em[i]); } - if (k == -1) { - RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_SSLV3_ROLLBACK_ATTACK); - return -1; + for (i = 0; i < tlen; i++) { + mask = good & constant_time_lt(i, mlen); + to[i] = constant_time_select_8(mask, em[i + 11], to[i]); } - i++; /* Skip over the '\0' */ - j -= i; - if (j > tlen) { - RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_DATA_TOO_LARGE); - return -1; - } - memcpy(to, p, (unsigned int)j); + OPENSSL_clear_free(em, num); + RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, err); + err_clear_last_constant_time(1 & good); - return j; + return constant_time_select_int(good, mlen, -1); } diff --git a/crypto/rsa/rsa_x931g.c b/crypto/rsa/rsa_x931g.c index 3563670a12acaf06db380d034f6e1f0cd988ca3e..e7ac476bb4a4ffd475c2260d17713f7bfb345d06 100644 --- a/crypto/rsa/rsa_x931g.c +++ b/crypto/rsa/rsa_x931g.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -128,11 +128,12 @@ int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, /* calculate inverse of q mod p */ rsa->iqmp = BN_mod_inverse(NULL, rsa->q, rsa->p, ctx2); + if (rsa->iqmp == NULL) + goto err; ret = 1; err: - if (ctx) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); BN_CTX_free(ctx2); @@ -186,8 +187,7 @@ int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, ok = 1; error: - if (ctx) - BN_CTX_end(ctx); + BN_CTX_end(ctx); BN_CTX_free(ctx); if (ok) diff --git a/crypto/sha/asm/keccak1600-armv8.pl b/crypto/sha/asm/keccak1600-armv8.pl index 704ab4a7e45a875b1887d04bb7f4ea66b5fe6d53..a3117bd7506ddd816241aaf9d22970f300715bcb 100755 --- a/crypto/sha/asm/keccak1600-armv8.pl +++ b/crypto/sha/asm/keccak1600-armv8.pl @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -121,6 +121,7 @@ $code.=<<___; .align 5 KeccakF1600_int: adr $C[2],iotas + .inst 0xd503233f // paciasp stp $C[2],x30,[sp,#16] // 32 bytes on top are mine b .Loop .align 4 @@ -292,12 +293,14 @@ $code.=<<___; bne .Loop ldr x30,[sp,#24] + .inst 0xd50323bf // autiasp ret .size KeccakF1600_int,.-KeccakF1600_int .type KeccakF1600,%function .align 5 KeccakF1600: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -347,6 +350,7 @@ KeccakF1600: ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + .inst 0xd50323bf // autiasp ret .size KeccakF1600,.-KeccakF1600 @@ -354,6 +358,7 @@ KeccakF1600: .type SHA3_absorb,%function .align 5 SHA3_absorb: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-128]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -451,6 +456,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + .inst 0xd50323bf // autiasp ret .size SHA3_absorb,.-SHA3_absorb ___ @@ -461,6 +467,7 @@ $code.=<<___; .type SHA3_squeeze,%function .align 5 SHA3_squeeze: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-48]! add x29,sp,#0 stp x19,x20,[sp,#16] @@ -523,6 +530,7 @@ SHA3_squeeze: ldp x19,x20,[sp,#16] ldp x21,x22,[sp,#32] ldp x29,x30,[sp],#48 + .inst 0xd50323bf // autiasp ret .size SHA3_squeeze,.-SHA3_squeeze ___ @@ -649,6 +657,7 @@ $code.=<<___; .type KeccakF1600_cext,%function .align 5 KeccakF1600_cext: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -681,6 +690,7 @@ $code.=<<___; ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldr x29,[sp],#80 + .inst 0xd50323bf // autiasp ret .size KeccakF1600_cext,.-KeccakF1600_cext ___ @@ -693,6 +703,7 @@ $code.=<<___; .type SHA3_absorb_cext,%function .align 5 SHA3_absorb_cext: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-80]! add x29,sp,#0 stp d8,d9,[sp,#16] // per ABI requirement @@ -764,6 +775,7 @@ $code.=<<___; ldp d12,d13,[sp,#48] ldp d14,d15,[sp,#64] ldp x29,x30,[sp],#80 + .inst 0xd50323bf // autiasp ret .size SHA3_absorb_cext,.-SHA3_absorb_cext ___ @@ -775,6 +787,7 @@ $code.=<<___; .type SHA3_squeeze_cext,%function .align 5 SHA3_squeeze_cext: + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-16]! add x29,sp,#0 mov x9,$ctx @@ -830,6 +843,7 @@ SHA3_squeeze_cext: .Lsqueeze_done_ce: ldr x29,[sp],#16 + .inst 0xd50323bf // autiasp ret .size SHA3_squeeze_cext,.-SHA3_squeeze_cext ___ diff --git a/crypto/sha/asm/sha512-armv8.pl b/crypto/sha/asm/sha512-armv8.pl index ac84ebb52e4f72c2acac664f37cf8635b8e61a6e..01ffe9f98c3ea8e6fb05729402bf06ce291632e0 100644 --- a/crypto/sha/asm/sha512-armv8.pl +++ b/crypto/sha/asm/sha512-armv8.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -219,6 +219,7 @@ $code.=<<___ if ($SZ==8); ___ $code.=<<___; #endif + .inst 0xd503233f // paciasp stp x29,x30,[sp,#-128]! add x29,sp,#0 @@ -280,6 +281,7 @@ $code.=<<___; ldp x25,x26,[x29,#64] ldp x27,x28,[x29,#80] ldp x29,x30,[sp],#128 + .inst 0xd50323bf // autiasp ret .size $func,.-$func diff --git a/crypto/sha/keccak1600.c b/crypto/sha/keccak1600.c index e7223486af5b40023c367bc4ceb29b1aa33b651c..55a44023d51ab78071677fe3a8b92656cf444d19 100644 --- a/crypto/sha/keccak1600.c +++ b/crypto/sha/keccak1600.c @@ -1,5 +1,5 @@ /* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -78,30 +78,30 @@ static const unsigned char rhotates[5][5] = { }; static const uint64_t iotas[] = { - BIT_INTERLEAVE ? 0x0000000000000001U : 0x0000000000000001U, - BIT_INTERLEAVE ? 0x0000008900000000U : 0x0000000000008082U, - BIT_INTERLEAVE ? 0x8000008b00000000U : 0x800000000000808aU, - BIT_INTERLEAVE ? 0x8000808000000000U : 0x8000000080008000U, - BIT_INTERLEAVE ? 0x0000008b00000001U : 0x000000000000808bU, - BIT_INTERLEAVE ? 0x0000800000000001U : 0x0000000080000001U, - BIT_INTERLEAVE ? 0x8000808800000001U : 0x8000000080008081U, - BIT_INTERLEAVE ? 0x8000008200000001U : 0x8000000000008009U, - BIT_INTERLEAVE ? 0x0000000b00000000U : 0x000000000000008aU, - BIT_INTERLEAVE ? 0x0000000a00000000U : 0x0000000000000088U, - BIT_INTERLEAVE ? 0x0000808200000001U : 0x0000000080008009U, - BIT_INTERLEAVE ? 0x0000800300000000U : 0x000000008000000aU, - BIT_INTERLEAVE ? 0x0000808b00000001U : 0x000000008000808bU, - BIT_INTERLEAVE ? 0x8000000b00000001U : 0x800000000000008bU, - BIT_INTERLEAVE ? 0x8000008a00000001U : 0x8000000000008089U, - BIT_INTERLEAVE ? 0x8000008100000001U : 0x8000000000008003U, - BIT_INTERLEAVE ? 0x8000008100000000U : 0x8000000000008002U, - BIT_INTERLEAVE ? 0x8000000800000000U : 0x8000000000000080U, - BIT_INTERLEAVE ? 0x0000008300000000U : 0x000000000000800aU, - BIT_INTERLEAVE ? 0x8000800300000000U : 0x800000008000000aU, - BIT_INTERLEAVE ? 0x8000808800000001U : 0x8000000080008081U, - BIT_INTERLEAVE ? 0x8000008800000000U : 0x8000000000008080U, - BIT_INTERLEAVE ? 0x0000800000000001U : 0x0000000080000001U, - BIT_INTERLEAVE ? 0x8000808200000000U : 0x8000000080008008U + BIT_INTERLEAVE ? 0x0000000000000001ULL : 0x0000000000000001ULL, + BIT_INTERLEAVE ? 0x0000008900000000ULL : 0x0000000000008082ULL, + BIT_INTERLEAVE ? 0x8000008b00000000ULL : 0x800000000000808aULL, + BIT_INTERLEAVE ? 0x8000808000000000ULL : 0x8000000080008000ULL, + BIT_INTERLEAVE ? 0x0000008b00000001ULL : 0x000000000000808bULL, + BIT_INTERLEAVE ? 0x0000800000000001ULL : 0x0000000080000001ULL, + BIT_INTERLEAVE ? 0x8000808800000001ULL : 0x8000000080008081ULL, + BIT_INTERLEAVE ? 0x8000008200000001ULL : 0x8000000000008009ULL, + BIT_INTERLEAVE ? 0x0000000b00000000ULL : 0x000000000000008aULL, + BIT_INTERLEAVE ? 0x0000000a00000000ULL : 0x0000000000000088ULL, + BIT_INTERLEAVE ? 0x0000808200000001ULL : 0x0000000080008009ULL, + BIT_INTERLEAVE ? 0x0000800300000000ULL : 0x000000008000000aULL, + BIT_INTERLEAVE ? 0x0000808b00000001ULL : 0x000000008000808bULL, + BIT_INTERLEAVE ? 0x8000000b00000001ULL : 0x800000000000008bULL, + BIT_INTERLEAVE ? 0x8000008a00000001ULL : 0x8000000000008089ULL, + BIT_INTERLEAVE ? 0x8000008100000001ULL : 0x8000000000008003ULL, + BIT_INTERLEAVE ? 0x8000008100000000ULL : 0x8000000000008002ULL, + BIT_INTERLEAVE ? 0x8000000800000000ULL : 0x8000000000000080ULL, + BIT_INTERLEAVE ? 0x0000008300000000ULL : 0x000000000000800aULL, + BIT_INTERLEAVE ? 0x8000800300000000ULL : 0x800000008000000aULL, + BIT_INTERLEAVE ? 0x8000808800000001ULL : 0x8000000080008081ULL, + BIT_INTERLEAVE ? 0x8000008800000000ULL : 0x8000000000008080ULL, + BIT_INTERLEAVE ? 0x0000800000000001ULL : 0x0000000080000001ULL, + BIT_INTERLEAVE ? 0x8000808200000000ULL : 0x8000000080008008ULL }; #if defined(KECCAK_REF) diff --git a/crypto/srp/srp_lib.c b/crypto/srp/srp_lib.c index b97d630d375330d84b4c9623dfd52f6b11d0c246..ca20f6d09798157baaf5c5b6816c03d4803a62a0 100644 --- a/crypto/srp/srp_lib.c +++ b/crypto/srp/srp_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2004, EdelKey Project. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -26,6 +26,7 @@ static BIGNUM *srp_Calc_xy(const BIGNUM *x, const BIGNUM *y, const BIGNUM *N) unsigned char *tmp = NULL; int numN = BN_num_bytes(N); BIGNUM *res = NULL; + if (x != N && BN_ucmp(x, N) >= 0) return NULL; if (y != N && BN_ucmp(y, N) >= 0) @@ -139,7 +140,8 @@ BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass) || !EVP_DigestFinal_ex(ctxt, dig, NULL) || !EVP_DigestInit_ex(ctxt, EVP_sha1(), NULL)) goto err; - BN_bn2bin(s, cs); + if (BN_bn2bin(s, cs) < 0) + goto err; if (!EVP_DigestUpdate(ctxt, cs, BN_num_bytes(s))) goto err; diff --git a/crypto/srp/srp_vfy.c b/crypto/srp/srp_vfy.c index 17b35c00f9da8ccef487a925a11836a88adca9b1..eb279dd4187a22dc0dc0376adcd22f160ba0169f 100644 --- a/crypto/srp/srp_vfy.c +++ b/crypto/srp/srp_vfy.c @@ -1,5 +1,5 @@ /* - * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2004, EdelKey Project. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -187,7 +187,7 @@ void SRP_user_pwd_free(SRP_user_pwd *user_pwd) static SRP_user_pwd *SRP_user_pwd_new(void) { SRP_user_pwd *ret; - + if ((ret = OPENSSL_malloc(sizeof(*ret))) == NULL) { /* SRPerr(SRP_F_SRP_USER_PWD_NEW, ERR_R_MALLOC_FAILURE); */ /*ckerr_ignore*/ return NULL; @@ -598,10 +598,14 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, if ((len = t_fromb64(tmp, sizeof(tmp), N)) <= 0) goto err; N_bn_alloc = BN_bin2bn(tmp, len, NULL); + if (N_bn_alloc == NULL) + goto err; N_bn = N_bn_alloc; if ((len = t_fromb64(tmp, sizeof(tmp) ,g)) <= 0) goto err; g_bn_alloc = BN_bin2bn(tmp, len, NULL); + if (g_bn_alloc == NULL) + goto err; g_bn = g_bn_alloc; defgNid = "*"; } else { @@ -623,15 +627,19 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, goto err; s = BN_bin2bn(tmp2, len, NULL); } + if (s == NULL) + goto err; if (!SRP_create_verifier_BN(user, pass, &s, &v, N_bn, g_bn)) goto err; - BN_bn2bin(v, tmp); + if (BN_bn2bin(v, tmp) < 0) + goto err; vfsize = BN_num_bytes(v) * 2; if (((vf = OPENSSL_malloc(vfsize)) == NULL)) goto err; - t_tob64(vf, tmp, BN_num_bytes(v)); + if (!t_tob64(vf, tmp, BN_num_bytes(v))) + goto err; if (*salt == NULL) { char *tmp_salt; @@ -639,7 +647,10 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt, if ((tmp_salt = OPENSSL_malloc(SRP_RANDOM_SALT_LEN * 2)) == NULL) { goto err; } - t_tob64(tmp_salt, tmp2, SRP_RANDOM_SALT_LEN); + if (!t_tob64(tmp_salt, tmp2, SRP_RANDOM_SALT_LEN)) { + OPENSSL_free(tmp_salt); + goto err; + } *salt = tmp_salt; } @@ -686,11 +697,15 @@ int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, goto err; salttmp = BN_bin2bn(tmp2, SRP_RANDOM_SALT_LEN, NULL); + if (salttmp == NULL) + goto err; } else { salttmp = *salt; } x = SRP_Calc_x(salttmp, user, pass); + if (x == NULL) + goto err; *verifier = BN_new(); if (*verifier == NULL) diff --git a/crypto/threads_win.c b/crypto/threads_win.c index d8fdfb74f5b7b093ed3b926eb005c10c4f3df681..b0b16fd3307f4bdc84e11282e120d15f716b5b75 100644 --- a/crypto/threads_win.c +++ b/crypto/threads_win.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,11 +24,15 @@ CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void) return NULL; } +#if !defined(_WIN32_WCE) /* 0x400 is the spin count value suggested in the documentation */ if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) { OPENSSL_free(lock); return NULL; } +#else + InitializeCriticalSection(lock); +#endif return lock; } diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 6b996134df49e43da4a93f399f44b040ac1d93ae..5ca418d24870eb650c0b4d0214ec5238ef33b087 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -101,6 +101,12 @@ # endif +# if defined(OPENSSL_SYS_VXWORKS) +# undef TERMIOS +# undef TERMIO +# undef SGTTY +# endif + # ifdef TERMIOS # include <termios.h> # define TTY_STRUCT struct termios diff --git a/crypto/uid.c b/crypto/uid.c index f7ae2610b3607d80997dfa166d64060ad90ed5fe..b2b096446fb4e6580fae6f0b6b4fa0b45ddcdf48 100644 --- a/crypto/uid.c +++ b/crypto/uid.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -34,12 +34,13 @@ int OPENSSL_issetugid(void) # if defined(__GLIBC__) && defined(__GLIBC_PREREQ) # if __GLIBC_PREREQ(2, 16) # include <sys/auxv.h> +# define OSSL_IMPLEMENT_GETAUXVAL # endif # endif int OPENSSL_issetugid(void) { -# ifdef AT_SECURE +# ifdef OSSL_IMPLEMENT_GETAUXVAL return getauxval(AT_SECURE) != 0; # else return getuid() != geteuid() || getgid() != getegid(); diff --git a/crypto/x509/x509_lu.c b/crypto/x509/x509_lu.c index be39015b0d0126ae1c7a39420770741b9285a8d5..8ddd7ec280239b3c3679ed2adc8a74d82fbdb484 100644 --- a/crypto/x509/x509_lu.c +++ b/crypto/x509/x509_lu.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -297,6 +297,9 @@ int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, if (ctx == NULL) return 0; + stmp.type = X509_LU_NONE; + stmp.data.ptr = NULL; + CRYPTO_THREAD_write_lock(ctx->lock); tmp = X509_OBJECT_retrieve_by_subject(ctx->objs, type, name); CRYPTO_THREAD_unlock(ctx->lock); diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c index 61e81922b4dab165f905e2550178eefd3700c787..4ced716e3646ba204fdba18f52f5c6b376d251a1 100644 --- a/crypto/x509/x509_vfy.c +++ b/crypto/x509/x509_vfy.c @@ -3232,12 +3232,19 @@ static int check_key_level(X509_STORE_CTX *ctx, X509 *cert) EVP_PKEY *pkey = X509_get0_pubkey(cert); int level = ctx->param->auth_level; + /* + * At security level zero, return without checking for a supported public + * key type. Some engines support key types not understood outside the + * engine, and we only need to understand the key when enforcing a security + * floor. + */ + if (level <= 0) + return 1; + /* Unsupported or malformed keys are not secure */ if (pkey == NULL) return 0; - if (level <= 0) - return 1; if (level > NUM_AUTH_LEVELS) level = NUM_AUTH_LEVELS; diff --git a/crypto/x509/x_crl.c b/crypto/x509/x_crl.c index 10733b58bca289d08ca5c13809cb2925d0c3af0e..12ab3cca42c0522385837f7b376e0a6cbf435e5d 100644 --- a/crypto/x509/x_crl.c +++ b/crypto/x509/x_crl.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -158,6 +158,18 @@ static int crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, int idx; switch (operation) { + case ASN1_OP_D2I_PRE: + if (crl->meth->crl_free) { + if (!crl->meth->crl_free(crl)) + return 0; + } + AUTHORITY_KEYID_free(crl->akid); + ISSUING_DIST_POINT_free(crl->idp); + ASN1_INTEGER_free(crl->crl_number); + ASN1_INTEGER_free(crl->base_crl_number); + sk_GENERAL_NAMES_pop_free(crl->issuers, GENERAL_NAMES_free); + /* fall thru */ + case ASN1_OP_NEW_POST: crl->idp = NULL; crl->akid = NULL; diff --git a/crypto/x509/x_pubkey.c b/crypto/x509/x_pubkey.c index d050b0b4b3e24b87eba4eb6726f1d0dedcf9686e..1c87b8268eb57c3d8e1688e941517d864f478dd2 100644 --- a/crypto/x509/x_pubkey.c +++ b/crypto/x509/x_pubkey.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -36,6 +36,7 @@ static int pubkey_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, /* Attempt to decode public key and cache in pubkey structure. */ X509_PUBKEY *pubkey = (X509_PUBKEY *)*pval; EVP_PKEY_free(pubkey->pkey); + pubkey->pkey = NULL; /* * Opportunistically decode the key but remove any non fatal errors * from the queue. Subsequent explicit attempts to decode/use the key diff --git a/crypto/x509/x_x509.c b/crypto/x509/x_x509.c index 4c04f12c9494035ac1b430c9788189293cfb1564..afe59c46c51884b60f680091c0640a1100e3b000 100644 --- a/crypto/x509/x_x509.c +++ b/crypto/x509/x_x509.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -40,12 +40,35 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, switch (operation) { + case ASN1_OP_D2I_PRE: + CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509, ret, &ret->ex_data); + X509_CERT_AUX_free(ret->aux); + ASN1_OCTET_STRING_free(ret->skid); + AUTHORITY_KEYID_free(ret->akid); + CRL_DIST_POINTS_free(ret->crldp); + policy_cache_free(ret->policy_cache); + GENERAL_NAMES_free(ret->altname); + NAME_CONSTRAINTS_free(ret->nc); +#ifndef OPENSSL_NO_RFC3779 + sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free); + ASIdentifiers_free(ret->rfc3779_asid); +#endif + + /* fall thru */ + case ASN1_OP_NEW_POST: + ret->ex_cached = 0; + ret->ex_kusage = 0; + ret->ex_xkusage = 0; + ret->ex_nscert = 0; ret->ex_flags = 0; ret->ex_pathlen = -1; ret->ex_pcpathlen = -1; ret->skid = NULL; ret->akid = NULL; + ret->policy_cache = NULL; + ret->altname = NULL; + ret->nc = NULL; #ifndef OPENSSL_NO_RFC3779 ret->rfc3779_addr = NULL; ret->rfc3779_asid = NULL; diff --git a/crypto/x509v3/v3_genn.c b/crypto/x509v3/v3_genn.c index 85fc3fc24672a3c00e6a252aab1e404f4ea506ff..23e3bc45653cbabe01ac6db597b6ff2a0ae0ca5d 100644 --- a/crypto/x509v3/v3_genn.c +++ b/crypto/x509v3/v3_genn.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -143,7 +143,7 @@ void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value) a->type = type; } -void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype) +void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype) { if (ptype) *ptype = a->type; @@ -188,7 +188,7 @@ int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, return 1; } -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, +int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue) { if (gen->type != GEN_OTHERNAME) diff --git a/debian/changelog b/debian/changelog index 26b327d0157b088585f784acb7fb05addb32ba85..8ac24b922ae94438da684c9a365f4c31a4d2c03b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,30 @@ +openssl (1.1.1c-1) unstable; urgency=medium + + * New upstream version + - CVE-2019-1543 (Prevent over long nonces in ChaCha20-Poly1305) + * Update symbol list + + -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Thu, 30 May 2019 17:27:48 +0200 + +openssl (1.1.1b-2) unstable; urgency=medium + + * Fix BUF_MEM regression (Closes: #923516) + * Fix error when config can't be opened (Closes: #926315) + * Ship an openssl.cnf in libssl1.1-udeb.dirs + + -- Kurt Roeckx <kurt@roeckx.be> Tue, 16 Apr 2019 21:31:11 +0200 + +openssl (1.1.1b-1) unstable; urgency=medium + + [ Sebastian Andrzej Siewior ] + * Add Breaks on lighttpd (Closes: #913558). + + [ Kurt Roeckx ] + * New upstream version + * Update symbol list + + -- Kurt Roeckx <kurt@roeckx.be> Tue, 26 Feb 2019 19:52:12 +0100 + openssl (1.1.1a-1) unstable; urgency=medium * Add Breaks on python-boto (See: #909545) diff --git a/debian/control b/debian/control index becf0779e7c62f2b80764d080e36284d84641f87..2bdbaac1a2de109d8c7997944fb5e8c462425986 100644 --- a/debian/control +++ b/debian/control @@ -35,7 +35,7 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} -Breaks: python-httplib2 (<< 0.11.3-1), isync (<< 1.3.0-2), python-imaplib2 (<< 2.57-5), python3-imaplib2 (<< 2.57-5), python-boto (<< 2.44.0-1.1), python3-boto (<< 2.44.0-1.1) +Breaks: python-httplib2 (<< 0.11.3-1), isync (<< 1.3.0-2), python-imaplib2 (<< 2.57-5), python3-imaplib2 (<< 2.57-5), python-boto (<< 2.44.0-1.1), python3-boto (<< 2.44.0-1.1), lighttpd (<< 1.4.49-2) Description: Secure Sockets Layer toolkit - shared libraries This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for secure communication over the diff --git a/debian/libcrypto1.1-udeb.dirs b/debian/libcrypto1.1-udeb.dirs index 68457717bd8efb8ba6291fca9d862dd5eb0d3b1e..10354b0727ce0a75c4d9c39c1bef506785976d36 100644 --- a/debian/libcrypto1.1-udeb.dirs +++ b/debian/libcrypto1.1-udeb.dirs @@ -1 +1,2 @@ usr/lib +usr/lib/ssl diff --git a/debian/libssl1.1.symbols b/debian/libssl1.1.symbols index a9e6350c58c0cb013a7bb3969c006ff1a64bb247..97933caf79916f04824621f591376f2fa6f9eaf4 100644 --- a/debian/libssl1.1.symbols +++ b/debian/libssl1.1.symbols @@ -9,6 +9,8 @@ libcrypto.so.1.1 libssl1.1 #MINVER# *@OPENSSL_1_1_0i 1.1.0i *@OPENSSL_1_1_0j 1.1.0j *@OPENSSL_1_1_1 1.1.1 + *@OPENSSL_1_1_1b 1.1.1b + *@OPENSSL_1_1_1c 1.1.1c libssl.so.1.1 libssl1.1 #MINVER# *@OPENSSL_1_1_0 1.1.0 *@OPENSSL_1_1_0d 1.1.0d diff --git a/debian/patches/Set-systemwide-default-settings-for-libssl-users.patch b/debian/patches/Set-systemwide-default-settings-for-libssl-users.patch index 9de855ee4670410ac8cd712f56a336284c939544..21bd17c0a8442d581a850f925346af6164c0f788 100644 --- a/debian/patches/Set-systemwide-default-settings-for-libssl-users.patch +++ b/debian/patches/Set-systemwide-default-settings-for-libssl-users.patch @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> 1 file changed, 12 insertions(+) diff --git a/apps/openssl.cnf b/apps/openssl.cnf -index 6df2878d5021..d155d1eda0bd 100644 +index 4acca4b0446f..a6fed92a2e75 100644 --- a/apps/openssl.cnf +++ b/apps/openssl.cnf @@ -15,6 +15,9 @@ HOME = . diff --git a/debian/patches/man-section.patch b/debian/patches/man-section.patch index 8ef4ed8b8ead879e04b39851fa95f6818a0edb9a..2920145612924cd4f80d42c28e87b0c212f60344 100644 --- a/debian/patches/man-section.patch +++ b/debian/patches/man-section.patch @@ -8,7 +8,7 @@ Subject: man-section 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl -index e7120194ef8c..527ac3dc234c 100644 +index 1292053546f5..c034d21884d8 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -183,7 +183,8 @@ HTMLDIR=$(DOCDIR)/html @@ -21,7 +21,7 @@ index e7120194ef8c..527ac3dc234c 100644 HTMLSUFFIX=html # For "optional" echo messages, to get "real" silence -@@ -721,7 +722,8 @@ uninstall_runtime: uninstall_programs uninstall_runtime_libs +@@ -726,7 +727,8 @@ uninstall_runtime: uninstall_programs uninstall_runtime_libs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) @$(ECHO) "*** Installing manpages" $(PERL) $(SRCDIR)/util/process_docs.pl \ diff --git a/debian/rules b/debian/rules index 5ef5069c6844b48bbb2f475b2f7d9ff3befe738e..4a8af7f7fd11d83e0172d495d01a58296da0c0c6 100755 --- a/debian/rules +++ b/debian/rules @@ -119,6 +119,7 @@ override_dh_auto_install-arch: mv debian/tmp/usr/lib/ssl/{certs,openssl.cnf,private} debian/tmp/etc/ssl/ ln -s /etc/ssl/{certs,openssl.cnf,private} debian/tmp/usr/lib/ssl/ cp -pf debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto.so.* debian/libcrypto1.1-udeb/usr/lib/ + cp -pf debian/tmp/etc/ssl/openssl.cnf debian/libcrypto1.1-udeb/usr/lib/ssl/openssl.cnf cp -pf debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libssl.so.* debian/libssl1.1-udeb/usr/lib/ cp -auv build_shared/lib*.so* debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/ for opt in $(OPTS); \ diff --git a/demos/bio/accept.cnf b/demos/bio/accept.cnf index eb6965832ffa3d6db11b3a9b0c9fe5c820f80955..cb0cefba753268321cdb91fe34e76333d58a000c 100644 --- a/demos/bio/accept.cnf +++ b/demos/bio/accept.cnf @@ -6,7 +6,7 @@ Port = 4433 # Only support 3 curves Curves = P-521:P-384:P-256 # Restricted signature algorithms -SignatureAlgorithms = RSA+SHA512:ECDSA+SHA512 +SignatureAlgorithms = RSA+SHA512:ECDSA+SHA512 Certificate=server.pem PrivateKey=server.pem ChainCAFile=root.pem diff --git a/demos/bio/connect.cnf b/demos/bio/connect.cnf index 4dee03c373885edb7128ef899f737932d8661d18..ab764403a4742d8eeec488dc7f1f78d9628d3d77 100644 --- a/demos/bio/connect.cnf +++ b/demos/bio/connect.cnf @@ -6,4 +6,4 @@ Connect = localhost:4433 # Only support 3 curves Curves = P-521:P-384:P-256 # Restricted signature algorithms -SignatureAlgorithms = RSA+SHA512:ECDSA+SHA512 +SignatureAlgorithms = RSA+SHA512:ECDSA+SHA512 diff --git a/demos/bio/descrip.mms b/demos/bio/descrip.mms index 8e127b079a513f8357bce1276a0ee8e8f5aeb029..d49725ffd191df330f2656e6eeaaf519bcacd188 100644 --- a/demos/bio/descrip.mms +++ b/demos/bio/descrip.mms @@ -23,7 +23,7 @@ SHARED = TRUE @ ! # Because we use an option file, we need to redefine this -.obj.exe : +.obj.exe : $(LINK) $(LINKFLAGS) $<,OPT:/OPT all : client-arg.exe client-conf.exe saccept.exe sconnect.exe - diff --git a/demos/certs/README b/demos/certs/README index 126663a1d8c9fbcaddb7b83ffbca86601bcdb412..fde832eb2fd07fccf88a5aa3d6cb4473ae05d983 100644 --- a/demos/certs/README +++ b/demos/certs/README @@ -8,7 +8,7 @@ automatically using scripts. Example creates a root CA, an intermediate CA signed by the root and several certificates signed by the intermediate CA. The script then creates an empty index.txt file and adds entries for the -certificates and generates a CRL. Then one certificate is revoked and a +certificates and generates a CRL. Then one certificate is revoked and a second CRL generated. The script ocsprun.sh runs the test responder on port 8888 covering the diff --git a/demos/certs/apps/mkxcerts.sh b/demos/certs/apps/mkxcerts.sh index 0f88a48fb8483861f245a49b7e61b03d9cab8a46..ebe1920432be2ae9d6c227e0fd0f12ecbd972ed7 100644 --- a/demos/certs/apps/mkxcerts.sh +++ b/demos/certs/apps/mkxcerts.sh @@ -13,7 +13,7 @@ CN="OpenSSL Test RSA SHA-512 cert" $OPENSSL req \ -config apps.cnf -extensions usr_cert -x509 -nodes \ -keyout tsha512.pem -out tsha512.pem -new -days 3650 -sha512 -# Create EC parameters +# Create EC parameters $OPENSSL ecparam -name P-256 -out ecp256.pem $OPENSSL ecparam -name P-384 -out ecp384.pem diff --git a/demos/certs/mkcerts.sh b/demos/certs/mkcerts.sh index 18daa6bcfb8d2a4bf35bd8ea364c150ebfe74e0e..2d14a95989e811a0aefb21386ee298056b233b6d 100644 --- a/demos/certs/mkcerts.sh +++ b/demos/certs/mkcerts.sh @@ -42,7 +42,7 @@ CN="Test OCSP Responder Cert" $OPENSSL req -config ca.cnf -nodes \ $OPENSSL x509 -req -in respreq.pem -CA intca.pem -CAkey intkey.pem -days 3600 \ -extfile ca.cnf -extensions ocsp_cert -CAcreateserial -out resp.pem -# Example creating a PKCS#3 DH certificate. +# Example creating a PKCS#3 DH certificate. # First DH parameters diff --git a/demos/pkcs12/pkread.c b/demos/pkcs12/pkread.c index 3f7913b2ae36aa9777a6ec308e20fb0773339100..e5f78f1b355f0259abac0ebd699c1793cd245706 100644 --- a/demos/pkcs12/pkread.c +++ b/demos/pkcs12/pkread.c @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -17,7 +17,7 @@ static char *find_friendly_name(PKCS12 *p12) { - STACK_OF(PKCS7) *safes = PKCS12_unpack_authsafes(p12); + STACK_OF(PKCS7) *safes; int n, m; char *name = NULL; PKCS7 *safe; @@ -48,56 +48,64 @@ static char *find_friendly_name(PKCS12 *p12) int main(int argc, char **argv) { FILE *fp; - EVP_PKEY *pkey; - X509 *cert; + EVP_PKEY *pkey = NULL; + X509 *cert = NULL; STACK_OF(X509) *ca = NULL; - PKCS12 *p12; - const char *name; - int i; + PKCS12 *p12 = NULL; + char *name = NULL; + int i, ret = EXIT_FAILURE; if (argc != 4) { fprintf(stderr, "Usage: pkread p12file password opfile\n"); - exit(1); + exit(EXIT_FAILURE); } - OpenSSL_add_all_algorithms(); - ERR_load_crypto_strings(); + if ((fp = fopen(argv[1], "rb")) == NULL) { fprintf(stderr, "Error opening file %s\n", argv[1]); - exit(1); + exit(EXIT_FAILURE); } p12 = d2i_PKCS12_fp(fp, NULL); fclose(fp); - if (!p12) { + if (p12 == NULL) { fprintf(stderr, "Error reading PKCS#12 file\n"); ERR_print_errors_fp(stderr); - exit(1); + goto err; } if (!PKCS12_parse(p12, argv[2], &pkey, &cert, &ca)) { fprintf(stderr, "Error parsing PKCS#12 file\n"); ERR_print_errors_fp(stderr); - exit(1); + goto err; } name = find_friendly_name(p12); PKCS12_free(p12); if ((fp = fopen(argv[3], "w")) == NULL) { fprintf(stderr, "Error opening file %s\n", argv[1]); - exit(1); + goto err; } - if (name) + if (name != NULL) fprintf(fp, "***Friendly Name***\n%s\n", name); - if (pkey) { + if (pkey != NULL) { fprintf(fp, "***Private Key***\n"); PEM_write_PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL); } - if (cert) { + if (cert != NULL) { fprintf(fp, "***User Certificate***\n"); PEM_write_X509_AUX(fp, cert); } - if (ca && sk_X509_num(ca)) { + if (ca != NULL && sk_X509_num(ca) > 0) { fprintf(fp, "***Other Certificates***\n"); for (i = 0; i < sk_X509_num(ca); i++) PEM_write_X509_AUX(fp, sk_X509_value(ca, i)); } fclose(fp); - return 0; + + ret = EXIT_SUCCESS; + + err: + OPENSSL_free(name); + X509_free(cert); + EVP_PKEY_free(pkey); + sk_X509_pop_free(ca, X509_free); + + return ret; } diff --git a/doc/HOWTO/certificates.txt b/doc/HOWTO/certificates.txt index c2efdca8dc1a59ecb15f88d86966c63a2c766d7c..cfd2bdabb130c7ed2816621051ab33b20fb2495f 100644 --- a/doc/HOWTO/certificates.txt +++ b/doc/HOWTO/certificates.txt @@ -106,5 +106,5 @@ some applications, you don't even have to do that. By now, you have your certificate and your private key and can start using applications that depend on it. --- +-- Richard Levitte diff --git a/doc/HOWTO/proxy_certificates.txt b/doc/HOWTO/proxy_certificates.txt index 18b3e0340f1dca0c7b19343ea7d62a61d35d1ffd..2936cd6e518b1b1c8e0d9ea1446caa72264006db 100644 --- a/doc/HOWTO/proxy_certificates.txt +++ b/doc/HOWTO/proxy_certificates.txt @@ -315,5 +315,5 @@ certificates checked properly, using the code above: SSL_CTX_set_cert_verify_callback(s_ctx, my_X509_verify_cert, &needed_rights); --- +-- Richard Levitte diff --git a/doc/fingerprints.txt b/doc/fingerprints.txt index 2cb74aec2778777b596cd4ef36034ed2eef06aa8..51e76c8f71b91c3101d5564b6097f3f39c9d8068 100644 --- a/doc/fingerprints.txt +++ b/doc/fingerprints.txt @@ -18,7 +18,7 @@ uid Richard Levitte <richard@opensslfoundation.com> uid Richard Levitte <levitte@openssl.org> uid Richard Levitte <richard@openssl.com> -pub 2048R/0E604491 2013-04-30 +pub 2048R/0E604491 2013-04-30 Key fingerprint = 8657 ABB2 60F0 56B1 E519 0839 D9C4 D26D 0E60 4491 uid Matt Caswell <matt@openssl.org> uid Matt Caswell <frodo@baggins.org> diff --git a/doc/man1/ca.pod b/doc/man1/ca.pod index e998eabf83585c2e1dae1ec64625ff29a446d057..7385a00941ea335edf00a671219613461a4f287e 100644 --- a/doc/man1/ca.pod +++ b/doc/man1/ca.pod @@ -230,7 +230,7 @@ The section of the configuration file containing certificate extensions to be added when a certificate is issued (defaults to B<x509_extensions> unless the B<-extfile> option is used). If no extension section is present then, a V1 certificate is created. If the extension section -is present (even if it is empty), then a V3 certificate is created. See the:w +is present (even if it is empty), then a V3 certificate is created. See the L<x509v3_config(5)> manual page for details of the extension section format. @@ -475,7 +475,7 @@ the B<-selfsign> command line option. Note that it is valid in some circumstances for certificates to be created without any subject. In the case where there are multiple certificates without -subjects this does not count as a duplicate. +subjects this does not count as a duplicate. =item B<serial> @@ -753,7 +753,7 @@ L<config(5)>, L<x509v3_config(5)> =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/ciphers.pod b/doc/man1/ciphers.pod index 3aea982384ec7ee905bbc1a1b19169cedac2413a..faf9e538146a3c250d585d1f83ae0eba8011daf1 100644 --- a/doc/man1/ciphers.pod +++ b/doc/man1/ciphers.pod @@ -762,7 +762,7 @@ The B<-V> option for the B<ciphers> command was added in OpenSSL 1.0.0. The B<-stdname> is only available if OpenSSL is built with tracing enabled (B<enable-ssl-trace> argument to Configure) before OpenSSL 1.1.1. -The B<-convert> was added in OpenSSL 1.1.1. +The B<-convert> option was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man1/cms.pod b/doc/man1/cms.pod index 60ee3b505e1e2f66f9159a28a91e65ad60e1997f..72cd9b5d4e9e22a74673b9dc9fba21793cc7bd3d 100644 --- a/doc/man1/cms.pod +++ b/doc/man1/cms.pod @@ -724,14 +724,14 @@ No revocation checking is done on the signer's certificate. The use of multiple B<-signer> options and the B<-resign> command were first added in OpenSSL 1.0.0. -The B<keyopt> option was first added in OpenSSL 1.0.2. +The B<keyopt> option was added in OpenSSL 1.0.2. -Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.0.2. +Support for RSA-OAEP and RSA-PSS was added in OpenSSL 1.0.2. -The use of non-RSA keys with B<-encrypt> and B<-decrypt> was first added -to OpenSSL 1.0.2. +The use of non-RSA keys with B<-encrypt> and B<-decrypt> +was added in OpenSSL 1.0.2. -The -no_alt_chains options was first added to OpenSSL 1.0.2b. +The -no_alt_chains option was added in OpenSSL 1.0.2b. =head1 COPYRIGHT diff --git a/doc/man1/dgst.pod b/doc/man1/dgst.pod index 47e163b170013134cd5dd0fb038aed13152d8a9f..66a6697eb10e861a0504f56366948f2bc60d21a2 100644 --- a/doc/man1/dgst.pod +++ b/doc/man1/dgst.pod @@ -230,12 +230,12 @@ prior to verification. =head1 HISTORY -The default digest was changed from MD5 to SHA256 in OpenSSL 1.1.0 -The FIPS-related options were removed in OpenSSL 1.1.0 +The default digest was changed from MD5 to SHA256 in OpenSSL 1.1.0. +The FIPS-related options were removed in OpenSSL 1.1.0. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/ec.pod b/doc/man1/ec.pod index 0b836603cab183d1a7310403c3044b8f5aa11fc7..4d368e20ae1960a9e3ed5168571375c5d30f6ff3 100644 --- a/doc/man1/ec.pod +++ b/doc/man1/ec.pod @@ -101,10 +101,6 @@ Prints out the public, private key components and parameters. This option prevents output of the encoded version of the key. -=item B<-modulus> - -This option prints out the value of the public key component of the key. - =item B<-pubin> By default, a private key is read from the input file. With this option a @@ -197,7 +193,7 @@ L<ecparam(1)>, L<dsa(1)>, L<rsa(1)> =head1 COPYRIGHT -Copyright 2003-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2003-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/enc.pod b/doc/man1/enc.pod index 2136a94978499e602add8c79d3e6ce9c18c43dd8..a3e0b03b2000b451332a71d23cb2d252d7dd5a92 100644 --- a/doc/man1/enc.pod +++ b/doc/man1/enc.pod @@ -417,7 +417,7 @@ certain parameters. So if, for example, you want to use RC2 with a =head1 HISTORY -The default digest was changed from MD5 to SHA256 in Openssl 1.1.0. +The default digest was changed from MD5 to SHA256 in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man1/genpkey.pod b/doc/man1/genpkey.pod index fa62973abdd9ec1b27e7bd6db253abf044ac65b4..1ba54d48661931b160daeda36284427db9dc35da 100644 --- a/doc/man1/genpkey.pod +++ b/doc/man1/genpkey.pod @@ -118,7 +118,7 @@ or ED448 algorithms. =item B<rsa_keygen_bits:numbits> -The number of bits in the generated key. If not specified 1024 is used. +The number of bits in the generated key. If not specified 2048 is used. =item B<rsa_keygen_primes:numprimes> @@ -185,12 +185,12 @@ below. =item B<dsa_paramgen_bits:numbits> -The number of bits in the generated prime. If not specified 1024 is used. +The number of bits in the generated prime. If not specified 2048 is used. =item B<dsa_paramgen_q_bits:numbits> The number of bits in the q parameter. Must be one of 160, 224 or 256. If not -specified 160 is used. +specified 224 is used. =item B<dsa_paramgen_md:digest> @@ -209,7 +209,7 @@ or B<sha256> if it is 256. =item B<dh_paramgen_prime_len:numbits> -The number of bits in the prime parameter B<p>. The default is 1024. +The number of bits in the prime parameter B<p>. The default is 2048. =item B<dh_paramgen_subprime_len:numbits> @@ -319,13 +319,13 @@ Generate an ED448 private key: =head1 HISTORY The ability to use NIST curve names, and to generate an EC key directly, -were added in OpenSSL 1.0.2. The ability to generate X25519 keys was added in -OpenSSL 1.1.0. The ability to generate X448, ED25519 and ED448 keys was added in -OpenSSL 1.1.1. +were added in OpenSSL 1.0.2. +The ability to generate X25519 keys was added in OpenSSL 1.1.0. +The ability to generate X448, ED25519 and ED448 keys was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/ocsp.pod b/doc/man1/ocsp.pod index c9feef8f0e4751208cb4801cce984e7102c7c386..736055b1b669132d851f1427a0e3ce6acfbdd6bb 100644 --- a/doc/man1/ocsp.pod +++ b/doc/man1/ocsp.pod @@ -486,7 +486,7 @@ to a second file. =head1 HISTORY -The -no_alt_chains options was first added to OpenSSL 1.1.0. +The -no_alt_chains option was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man1/pkcs12.pod b/doc/man1/pkcs12.pod index 3389e595fed7567cc8a3c836f9ca597acfd80a8e..6f890c120f3c0e920594425c680967b07994baa6 100644 --- a/doc/man1/pkcs12.pod +++ b/doc/man1/pkcs12.pod @@ -154,7 +154,8 @@ Don't attempt to verify the integrity MAC before reading the file. Prompt for separate integrity and encryption passwords: most software always assumes these are the same so this option will render such -PKCS#12 files unreadable. +PKCS#12 files unreadable. Cannot be used in combination with the options +-password, -passin (if importing) or -passout (if exporting). =back @@ -381,7 +382,7 @@ L<pkcs8(1)> =head1 COPYRIGHT -Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/pkcs8.pod b/doc/man1/pkcs8.pod index 9c923b87c939971742ec645827c717259750dde9..b079885d2fc78bd0e0001c404013a45aaafb6687 100644 --- a/doc/man1/pkcs8.pod +++ b/doc/man1/pkcs8.pod @@ -305,7 +305,7 @@ L<gendsa(1)> =head1 HISTORY -The B<-iter> option was added to OpenSSL 1.1.0. +The B<-iter> option was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man1/pkeyutl.pod b/doc/man1/pkeyutl.pod index 664dbef3598b132d7217ff969c9644fe9bf1f3f5..dffc449a4e0ed454b7d7a806da14426d6f63c373 100644 --- a/doc/man1/pkeyutl.pod +++ b/doc/man1/pkeyutl.pod @@ -272,20 +272,19 @@ value less than the minimum restriction. =head1 DSA ALGORITHM The DSA algorithm supports signing and verification operations only. Currently -there are no additional options other than B<digest>. Only the SHA1 -digest can be used and this digest is assumed by default. +there are no additional B<-pkeyopt> options other than B<digest>. The SHA1 +digest is assumed by default. =head1 DH ALGORITHM The DH algorithm only supports the derivation operation and no additional -options. +B<-pkeyopt> options. =head1 EC ALGORITHM The EC algorithm supports sign, verify and derive operations. The sign and -verify operations use ECDSA and derive uses ECDH. Currently there are no -additional options other than B<digest>. Only the SHA1 digest can be used and -this digest is assumed by default. +verify operations use ECDSA and derive uses ECDH. SHA1 is assumed by default for +the B<-pkeyopt> B<digest> option. =head1 X25519 and X448 ALGORITHMS @@ -328,7 +327,7 @@ L<EVP_PKEY_CTX_set_hkdf_md(3)>, L<EVP_PKEY_CTX_set_tls1_prf_md(3)> =head1 COPYRIGHT -Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/req.pod b/doc/man1/req.pod index c76d63d6fd81a24b1ff37a4c9d46e2078e282d70..a9b5b1690a5cf3a1b1d566e0cdfe65789fe268ab 100644 --- a/doc/man1/req.pod +++ b/doc/man1/req.pod @@ -502,7 +502,7 @@ The actual permitted field names are any object identifier short or long names. These are compiled into OpenSSL and include the usual values such as commonName, countryName, localityName, organizationName, organizationalUnitName, stateOrProvinceName. Additionally emailAddress -is include as well as name, surname, givenName initials and dnQualifier. +is included as well as name, surname, givenName, initials, and dnQualifier. Additional object identifiers can be defined with the B<oid_file> or B<oid_section> options in the configuration file. Any additional fields diff --git a/doc/man1/s_client.pod b/doc/man1/s_client.pod index fa5cb0a92da1c80d48c444446fd8af16c9730fa9..15752b5e1613147c8ad8afa433740bd3303b8024 100644 --- a/doc/man1/s_client.pod +++ b/doc/man1/s_client.pod @@ -100,6 +100,7 @@ B<openssl> B<s_client> [B<-dtls1>] [B<-dtls1_2>] [B<-sctp>] +[B<-sctp_label_bug>] [B<-fallback_scsv>] [B<-async>] [B<-max_send_frag>] @@ -190,14 +191,17 @@ Use IPv6 only. =item B<-servername name> Set the TLS SNI (Server Name Indication) extension in the ClientHello message to -the given value. If both this option and the B<-noservername> are not given, the -TLS SNI extension is still set to the hostname provided to the B<-connect> option, -or "localhost" if B<-connect> has not been supplied. This is default since OpenSSL -1.1.1. +the given value. +If B<-servername> is not provided, the TLS SNI extension will be populated with +the name given to B<-connect> if it follows a DNS name format. If B<-connect> is +not provided either, the SNI is set to "localhost". +This is the default since OpenSSL 1.1.1. -Even though SNI name should normally be a DNS name and not an IP address, this -option will not make the distinction when parsing B<-connect> and will send -IP address if one passed. +Even though SNI should normally be a DNS name and not an IP address, if +B<-servername> is provided then that name will be sent, regardless of whether +it is a DNS name or not. + +This option cannot be used in conjunction with B<-noservername>. =item B<-noservername> @@ -489,6 +493,14 @@ Use SCTP for the transport protocol instead of UDP in DTLS. Must be used in conjunction with B<-dtls>, B<-dtls1> or B<-dtls1_2>. This option is only available where OpenSSL has support for SCTP enabled. +=item B<-sctp_label_bug> + +Use the incorrect behaviour of older OpenSSL implementations when computing +endpoint-pair shared secrets for DTLS/SCTP. This allows communication with +older broken implementations but breaks interoperability with correct +implementations. Must be used in conjunction with B<-sctp>. This option is only +available where OpenSSL has support for SCTP enabled. + =item B<-fallback_scsv> Send TLS_FALLBACK_SCSV in the ClientHello. @@ -530,7 +542,7 @@ further information). =item B<-bugs> -There are several known bug in SSL and TLS implementations. Adding this +There are several known bugs in SSL and TLS implementations. Adding this option enables various workarounds. =item B<-comp> @@ -811,12 +823,12 @@ L<SSL_CTX_set_max_pipelines(3)> =head1 HISTORY -The B<-no_alt_chains> option was first added to OpenSSL 1.1.0. +The B<-no_alt_chains> option was added in OpenSSL 1.1.0. The B<-name> option was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/s_server.pod b/doc/man1/s_server.pod index f4c4eda35313068c2aca7009ceb6b8a25c3f2b3c..768789633e7f6fe20023b6dc6415a11e3ed2cf1f 100644 --- a/doc/man1/s_server.pod +++ b/doc/man1/s_server.pod @@ -98,6 +98,7 @@ B<openssl> B<s_server> [B<-no_comp>] [B<-comp>] [B<-no_ticket>] +[B<-num_tickets>] [B<-serverpref>] [B<-legacy_renegotiation>] [B<-no_renegotiation>] @@ -172,6 +173,7 @@ B<openssl> B<s_server> [B<-dtls1>] [B<-dtls1_2>] [B<-sctp>] +[B<-sctp_label_bug>] [B<-no_dhe>] [B<-nextprotoneg val>] [B<-use_srtp val>] @@ -540,7 +542,7 @@ OpenSSL was built. =item B<-bugs> -There are several known bug in SSL and TLS implementations. Adding this +There are several known bugs in SSL and TLS implementations. Adding this option enables various workarounds. =item B<-no_comp> @@ -558,7 +560,14 @@ OpenSSL 1.1.0. =item B<-no_ticket> -Disable RFC4507bis session ticket support. +Disable RFC4507bis session ticket support. This option has no effect if TLSv1.3 +is negotiated. See B<-num_tickets>. + +=item B<-num_tickets> + +Control the number of tickets that will be sent to the client after a full +handshake in TLSv1.3. The default number of tickets is 2. This option does not +affect the number of tickets sent after a resumption handshake. =item B<-serverpref> @@ -677,6 +686,14 @@ Use SCTP for the transport protocol instead of UDP in DTLS. Must be used in conjunction with B<-dtls>, B<-dtls1> or B<-dtls1_2>. This option is only available where OpenSSL has support for SCTP enabled. +=item B<-sctp_label_bug> + +Use the incorrect behaviour of older OpenSSL implementations when computing +endpoint-pair shared secrets for DTLS/SCTP. This allows communication with +older broken implementations but breaks interoperability with correct +implementations. Must be used in conjunction with B<-sctp>. This option is only +available where OpenSSL has support for SCTP enabled. + =item B<-no_dhe> If this option is set then no DH parameters will be loaded effectively @@ -817,18 +834,18 @@ unknown cipher suites a client says it supports. L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)> L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>, -L<SSL_CTX_set_max_pipelines(3)> +L<SSL_CTX_set_max_pipelines(3)> =head1 HISTORY -The -no_alt_chains option was first added to OpenSSL 1.1.0. +The -no_alt_chains option was added in OpenSSL 1.1.0. -The -allow-no-dhe-kex and -prioritize_chacha options were first added to -OpenSSL 1.1.1. +The +-allow-no-dhe-kex and -prioritize_chacha options were added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/s_time.pod b/doc/man1/s_time.pod index c08e44a431be389570819a66a8bc33a0108d9387..ac32f36bc789850bf8d9625f144cdf862ab88178 100644 --- a/doc/man1/s_time.pod +++ b/doc/man1/s_time.pod @@ -127,7 +127,7 @@ OpenSSL was built. =item B<-bugs> -There are several known bug in SSL and TLS implementations. Adding this +There are several known bugs in SSL and TLS implementations. Adding this option enables various workarounds. =item B<-cipher cipherlist> @@ -202,7 +202,7 @@ L<s_client(1)>, L<s_server(1)>, L<ciphers(1)> =head1 COPYRIGHT -Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/smime.pod b/doc/man1/smime.pod index 0acdd08254a5006d6c27549c1a911b148a5fc4c1..7f224fdc5e9dc32bfa81fba8abd7b5b015c5a661 100644 --- a/doc/man1/smime.pod +++ b/doc/man1/smime.pod @@ -510,7 +510,7 @@ structures may cause parsing errors. The use of multiple B<-signer> options and the B<-resign> command were first added in OpenSSL 1.0.0 -The -no_alt_chains options was first added to OpenSSL 1.1.0. +The -no_alt_chains option was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man1/storeutl.pod b/doc/man1/storeutl.pod index 083f0282469ee1a6b1f88acec75ffffa1dfa8bc1..a8d82bfb612b2a684fde6e8260612b868591e011 100644 --- a/doc/man1/storeutl.pod +++ b/doc/man1/storeutl.pod @@ -119,7 +119,7 @@ L<openssl(1)> =head1 HISTORY -B<openssl> B<storeutl> was added to OpenSSL 1.1.1. +The B<openssl> B<storeutl> app was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man1/ts.pod b/doc/man1/ts.pod index eeccaf674c1a41805aafb09d0c6b6508f07e2204..ec57ec7ebbd4baed908a86222b2ee675bb8837e8 100644 --- a/doc/man1/ts.pod +++ b/doc/man1/ts.pod @@ -262,7 +262,7 @@ specified, the argument is given to the engine as a key identifier. =item B<-I<digest>> Signing digest to use. Overrides the B<signer_digest> config file -option. (Optional) +option. (Mandatory unless specified in the config file) =item B<-chain> certs_file.pem @@ -460,7 +460,8 @@ command line option. (Optional) =item B<signer_digest> Signing digest to use. The same as the -B<-I<digest>> command line option. (Optional) +B<-I<digest>> command line option. (Mandatory unless specified on the command +line) =item B<default_policy> @@ -664,7 +665,7 @@ L<config(5)> =head1 COPYRIGHT -Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man1/verify.pod b/doc/man1/verify.pod index b67890af3c34dcf8d30c682dcd171badf7c8fcf8..63ba850b915dbd9d58d79acdca8ba9ec7ca751f2 100644 --- a/doc/man1/verify.pod +++ b/doc/man1/verify.pod @@ -762,7 +762,7 @@ L<x509(1)> =head1 HISTORY -The B<-show_chain> option was first added to OpenSSL 1.1.0. +The B<-show_chain> option was added in OpenSSL 1.1.0. The B<-issuer_checks> option is deprecated as of OpenSSL 1.1.0 and is silently ignored. diff --git a/doc/man1/x509.pod b/doc/man1/x509.pod index 547da5da2368377295290dbe43f2bc6bccffee1a..7878753414da062919df149cff4ed0a1aaf04030 100644 --- a/doc/man1/x509.pod +++ b/doc/man1/x509.pod @@ -173,7 +173,7 @@ options. See the B<TEXT OPTIONS> section for more information. =item B<-noout> -This option prevents output of the encoded version of the request. +This option prevents output of the encoded version of the certificate. =item B<-pubkey> @@ -925,7 +925,7 @@ the old form must have their links rebuilt using B<c_rehash> or similar. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/ASN1_INTEGER_get_int64.pod b/doc/man3/ASN1_INTEGER_get_int64.pod index d0a6a3c810a164778d04f2d06f452ea294b0c065..9b73290742d4e764d692bf2331d5e12e19dbadf5 100644 --- a/doc/man3/ASN1_INTEGER_get_int64.pod +++ b/doc/man3/ASN1_INTEGER_get_int64.pod @@ -119,7 +119,7 @@ L<ERR_get_error(3)> ASN1_INTEGER_set_int64(), ASN1_INTEGER_get_int64(), ASN1_ENUMERATED_set_int64() and ASN1_ENUMERATED_get_int64() -were added to OpenSSL 1.1.0. +were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/ASN1_TIME_set.pod b/doc/man3/ASN1_TIME_set.pod index a083ebfd1bd422deed1206beacbe42b150d2e64f..5ed817517dc6ec352261a948845db193fd038845 100644 --- a/doc/man3/ASN1_TIME_set.pod +++ b/doc/man3/ASN1_TIME_set.pod @@ -173,38 +173,6 @@ certificates complying with RFC5280 et al use GMT anyway. Use the ASN1_TIME_normalize() function to normalize the time value before printing to get GMT results. -=head1 EXAMPLES - -Set a time structure to one hour after the current time and print it out: - - #include <time.h> - #include <openssl/asn1.h> - - ASN1_TIME *tm; - time_t t; - BIO *b; - - t = time(NULL); - tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60); - b = BIO_new_fp(stdout, BIO_NOCLOSE); - ASN1_TIME_print(b, tm); - ASN1_STRING_free(tm); - BIO_free(b); - -Determine if one time is later or sooner than the current time: - - int day, sec; - - if (!ASN1_TIME_diff(&day, &sec, NULL, to)) - /* Invalid time format */ - - if (day > 0 || sec > 0) - printf("Later\n"); - else if (day < 0 || sec < 0) - printf("Sooner\n"); - else - printf("Same\n"); - =head1 RETURN VALUES ASN1_TIME_set(), ASN1_UTCTIME_set(), ASN1_GENERALIZEDTIME_set(), ASN1_TIME_adj(), @@ -238,6 +206,38 @@ ASN1_TIME_compare() returns -1 if B<a> is before B<b>, 0 if B<a> equals B<b>, or ASN1_TIME_to_generalizedtime() returns a pointer to the appropriate time structure on success or NULL if an error occurred. +=head1 EXAMPLES + +Set a time structure to one hour after the current time and print it out: + + #include <time.h> + #include <openssl/asn1.h> + + ASN1_TIME *tm; + time_t t; + BIO *b; + + t = time(NULL); + tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60); + b = BIO_new_fp(stdout, BIO_NOCLOSE); + ASN1_TIME_print(b, tm); + ASN1_STRING_free(tm); + BIO_free(b); + +Determine if one time is later or sooner than the current time: + + int day, sec; + + if (!ASN1_TIME_diff(&day, &sec, NULL, to)) + /* Invalid time format */ + + if (day > 0 || sec > 0) + printf("Later\n"); + else if (day < 0 || sec < 0) + printf("Sooner\n"); + else + printf("Same\n"); + =head1 HISTORY The ASN1_TIME_to_tm() function was added in OpenSSL 1.1.1. @@ -248,7 +248,7 @@ The ASN1_TIME_compare() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/ASN1_generate_nconf.pod b/doc/man3/ASN1_generate_nconf.pod index bf29af62f7295b772c2cc0171b132938feddeab9..422bf7b7ed3df75000a54e8d8ead589608bb3b33 100644 --- a/doc/man3/ASN1_generate_nconf.pod +++ b/doc/man3/ASN1_generate_nconf.pod @@ -162,6 +162,13 @@ bits are zero. =back +=head1 RETURN VALUES + +ASN1_generate_nconf() and ASN1_generate_v3() return the encoded +data as an B<ASN1_TYPE> structure or B<NULL> if an error occurred. + +The error codes that can be obtained by L<ERR_get_error(3)>. + =head1 EXAMPLES A simple IA5String: @@ -247,20 +254,13 @@ structure: e=INTEGER:0x010001 -=head1 RETURN VALUES - -ASN1_generate_nconf() and ASN1_generate_v3() return the encoded -data as an B<ASN1_TYPE> structure or B<NULL> if an error occurred. - -The error codes that can be obtained by L<ERR_get_error(3)>. - =head1 SEE ALSO L<ERR_get_error(3)> =head1 COPYRIGHT -Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/ASYNC_WAIT_CTX_new.pod b/doc/man3/ASYNC_WAIT_CTX_new.pod index 204280210e042ce181556e6762a217828e6f1350..e4d809c08fd163c771bafc7309f8410c2d0c86fc 100644 --- a/doc/man3/ASYNC_WAIT_CTX_new.pod +++ b/doc/man3/ASYNC_WAIT_CTX_new.pod @@ -127,10 +127,10 @@ L<crypto(7)>, L<ASYNC_start_job(3)> =head1 HISTORY -ASYNC_WAIT_CTX_new, ASYNC_WAIT_CTX_free, ASYNC_WAIT_CTX_set_wait_fd, -ASYNC_WAIT_CTX_get_fd, ASYNC_WAIT_CTX_get_all_fds, -ASYNC_WAIT_CTX_get_changed_fds, ASYNC_WAIT_CTX_clear_fd were first added to -OpenSSL 1.1.0. +ASYNC_WAIT_CTX_new(), ASYNC_WAIT_CTX_free(), ASYNC_WAIT_CTX_set_wait_fd(), +ASYNC_WAIT_CTX_get_fd(), ASYNC_WAIT_CTX_get_all_fds(), +ASYNC_WAIT_CTX_get_changed_fds() and ASYNC_WAIT_CTX_clear_fd() +were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/ASYNC_start_job.pod b/doc/man3/ASYNC_start_job.pod index 21b77a96b95ea309b2cd3a1f65e6a51011345fee..9bd1044b266a94d1ed31efac882365b61ca38a18 100644 --- a/doc/man3/ASYNC_start_job.pod +++ b/doc/man3/ASYNC_start_job.pod @@ -317,7 +317,7 @@ L<crypto(7)>, L<ERR_print_errors(3)> ASYNC_init_thread, ASYNC_cleanup_thread, ASYNC_start_job, ASYNC_pause_job, ASYNC_get_current_job, ASYNC_get_wait_ctx(), ASYNC_block_pause(), ASYNC_unblock_pause() and ASYNC_is_capable() were first -added to OpenSSL 1.1.0. +added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/BIO_connect.pod b/doc/man3/BIO_connect.pod index 454832e7e032f87870eada4c39d80db026aba1db..2766c3d6c5b707d41d69b48c77e386a882209a40 100644 --- a/doc/man3/BIO_connect.pod +++ b/doc/man3/BIO_connect.pod @@ -95,19 +95,19 @@ B<INVALID_SOCKET> (-1) on error. When an error has occurred, the OpenSSL error stack will hold the error data and errno has the system error. -=head1 HISTORY - -BIO_gethostname(), BIO_get_port(), BIO_get_host_ip(), -BIO_get_accept_socket() and BIO_accept() were deprecated in -OpenSSL 1.1.0. Use the functions described above instead. - =head1 SEE ALSO L<BIO_ADDR(3)> +=head1 HISTORY + +BIO_gethostname(), BIO_get_port(), BIO_get_host_ip(), +BIO_get_accept_socket() and BIO_accept() were deprecated in OpenSSL 1.1.0. +Use the functions described above instead. + =head1 COPYRIGHT -Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BIO_new_CMS.pod b/doc/man3/BIO_new_CMS.pod index b06c224f7180b527d959fec44f78e13ab7844459..f8d4c3bde6ee3c3b50aff92c8f6a1f831c98b21a 100644 --- a/doc/man3/BIO_new_CMS.pod +++ b/doc/man3/BIO_new_CMS.pod @@ -61,7 +61,7 @@ L<CMS_encrypt(3)> =head1 HISTORY -BIO_new_CMS() was added to OpenSSL 1.0.0 +The BIO_new_CMS() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/BIO_push.pod b/doc/man3/BIO_push.pod index ce56db9836ff6b2de06143dc8d047658fb27614f..93f2cc31fdae5a4acdf45c1b958477590022b948 100644 --- a/doc/man3/BIO_push.pod +++ b/doc/man3/BIO_push.pod @@ -36,6 +36,13 @@ The process of calling BIO_push() and BIO_pop() on a BIO may have additional consequences (a control call is made to the affected BIOs) any effects will be noted in the descriptions of individual BIOs. +=head1 RETURN VALUES + +BIO_push() returns the end of the chain, B<b>. + +BIO_pop() returns the next BIO in the chain, or NULL if there is no next +BIO. + =head1 EXAMPLES For these examples suppose B<md1> and B<md2> are digest BIOs, B<b64> is @@ -62,13 +69,6 @@ by B<md1> and B<md2>. If the call: The call will return B<b64> and the new chain will be B<md1-b64-f> data can be written to B<md1> as before. -=head1 RETURN VALUES - -BIO_push() returns the end of the chain, B<b>. - -BIO_pop() returns the next BIO in the chain, or NULL if there is no next -BIO. - =head1 SEE ALSO L<bio> @@ -79,7 +79,7 @@ The BIO_set_next() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BIO_s_file.pod b/doc/man3/BIO_s_file.pod index 23cdc9b684a68f32306948969c2e5669663f96cc..2ed0bb3c0f353d8d447981510a6a9484fbf580d6 100644 --- a/doc/man3/BIO_s_file.pod +++ b/doc/man3/BIO_s_file.pod @@ -80,6 +80,24 @@ On Windows BIO_new_files reserves for the filename argument to be UTF-8 encoded. In other words if you have to make it work in multi- lingual environment, encode file names in UTF-8. +=head1 RETURN VALUES + +BIO_s_file() returns the file BIO method. + +BIO_new_file() and BIO_new_fp() return a file BIO or NULL if an error +occurred. + +BIO_set_fp() and BIO_get_fp() return 1 for success or 0 for failure +(although the current implementation never return 0). + +BIO_seek() returns the same value as the underlying fseek() function: +0 for success or -1 for failure. + +BIO_tell() returns the current file position. + +BIO_read_filename(), BIO_write_filename(), BIO_append_filename() and +BIO_rw_filename() return 1 for success or 0 for failure. + =head1 EXAMPLES File BIO "hello world": @@ -122,24 +140,6 @@ Alternative technique: BIO_printf(out, "Hello World\n"); BIO_free(out); -=head1 RETURN VALUES - -BIO_s_file() returns the file BIO method. - -BIO_new_file() and BIO_new_fp() return a file BIO or NULL if an error -occurred. - -BIO_set_fp() and BIO_get_fp() return 1 for success or 0 for failure -(although the current implementation never return 0). - -BIO_seek() returns the same value as the underlying fseek() function: -0 for success or -1 for failure. - -BIO_tell() returns the current file position. - -BIO_read_filename(), BIO_write_filename(), BIO_append_filename() and -BIO_rw_filename() return 1 for success or 0 for failure. - =head1 BUGS BIO_reset() and BIO_seek() are implemented using fseek() on the underlying @@ -158,7 +158,7 @@ L<BIO_set_close(3)>, L<BIO_get_close(3)> =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BIO_s_mem.pod b/doc/man3/BIO_s_mem.pod index 050d7786a6cf7564bfd10a0b0983832b4e8dafc0..2a5d423648db6cbf1ec1b680f0383fd1e44aee28 100644 --- a/doc/man3/BIO_s_mem.pod +++ b/doc/man3/BIO_s_mem.pod @@ -88,6 +88,22 @@ a buffering BIO to the chain will speed up the process. Calling BIO_set_mem_buf() on a BIO created with BIO_new_secmem() will give undefined results, including perhaps a program crash. +Switching the memory BIO from read write to read only is not supported and +can give undefined results including a program crash. There are two notable +exceptions to the rule. The first one is to assign a static memory buffer +immediately after BIO creation and set the BIO as read only. + +The other supported sequence is to start with read write BIO then temporarily +switch it to read only and call BIO_reset() on the read only BIO immediately +before switching it back to read write. Before the BIO is freed it must be +switched back to the read write mode. + +Calling BIO_get_mem_ptr() on read only BIO will return a BUF_MEM that +contains only the remaining data to be read. If the close status of the +BIO is set to BIO_NOCLOSE, before freeing the BUF_MEM the data pointer +in it must be set to NULL as the data pointer does not point to an +allocated memory. + =head1 BUGS There should be an option to set the maximum size of a memory BIO. @@ -124,7 +140,7 @@ BIO_new_mem_buf() returns a valid B<BIO> structure on success or NULL on error. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BN_CTX_start.pod b/doc/man3/BN_CTX_start.pod index 372da506d9d3c040e95059f4faf48af25ca0f570..bb039e5539cd731e1fda3c47cf5e3b8b82337579 100644 --- a/doc/man3/BN_CTX_start.pod +++ b/doc/man3/BN_CTX_start.pod @@ -27,6 +27,7 @@ calls must be made before calling any other functions that use the B<ctx> as an argument. Finally, BN_CTX_end() must be called before returning from the function. +If B<ctx> is NULL, nothing is done. When BN_CTX_end() is called, the B<BIGNUM> pointers obtained from BN_CTX_get() become invalid. @@ -47,7 +48,7 @@ L<BN_CTX_new(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BN_generate_prime.pod b/doc/man3/BN_generate_prime.pod index b505841832ec6e3a1fa2c0c923766c22b502cde1..b6e9145106bec7839c1f3d3a58b957f9a62f3878 100644 --- a/doc/man3/BN_generate_prime.pod +++ b/doc/man3/BN_generate_prime.pod @@ -197,8 +197,8 @@ L<RSA_generate_key(3)>, L<ERR_get_error(3)>, L<RAND_bytes(3)> =head1 HISTORY -BN_GENCB_new(), BN_GENCB_free(), -and BN_GENCB_get_arg() were added in OpenSSL 1.1.0 +The BN_GENCB_new(), BN_GENCB_free(), +and BN_GENCB_get_arg() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/BN_new.pod b/doc/man3/BN_new.pod index 08aae5e9191558230a42e58ebd309aead1b990eb..1fab6d26eb19d0f43d652e0bffeec593d2891c87 100644 --- a/doc/man3/BN_new.pod +++ b/doc/man3/BN_new.pod @@ -27,6 +27,7 @@ OPENSSL_secure_malloc(3) is used to store the value. BN_clear() is used to destroy sensitive data such as keys when they are no longer needed. It erases the memory used by B<a> and sets it to the value 0. +If B<a> is NULL, nothing is done. BN_free() frees the components of the B<BIGNUM>, and if it was created by BN_new(), also the structure itself. BN_clear_free() additionally @@ -53,7 +54,7 @@ BN_init() was removed in OpenSSL 1.1.0; use BN_new() instead. =head1 COPYRIGHT -Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BN_rand.pod b/doc/man3/BN_rand.pod index eb0a6b13862fe6c99577c53e48d9e580ea276ba6..d57348e62b8cf3bb67b1b49edf0d836ba968fa96 100644 --- a/doc/man3/BN_rand.pod +++ b/doc/man3/BN_rand.pod @@ -59,6 +59,15 @@ seeded with enough randomness to ensure an unpredictable byte sequence. The functions return 1 on success, 0 on error. The error codes can be obtained by L<ERR_get_error(3)>. +=head1 SEE ALSO + +L<ERR_get_error(3)>, +L<RAND_add(3)>, +L<RAND_bytes(3)>, +L<RAND_priv_bytes(3)>, +L<RAND(7)>, +L<RAND_DRBG(7)> + =head1 HISTORY =over 2 @@ -73,22 +82,14 @@ a future release. =item * -BN_priv_rand() and BN_priv_rand_range() were added in OpenSSL 1.1.1. +The +BN_priv_rand() and BN_priv_rand_range() functions were added in OpenSSL 1.1.1. =back -=head1 SEE ALSO - -L<ERR_get_error(3)>, -L<RAND_add(3)>, -L<RAND_bytes(3)>, -L<RAND_priv_bytes(3)>, -L<RAND(7)>, -L<RAND_DRBG(7)> - =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BN_security_bits.pod b/doc/man3/BN_security_bits.pod index 1aed85a71a9c2c9fcbb76462dc662519425bffb8..acf59027ba2417550ddaaceeb910331dba8026b3 100644 --- a/doc/man3/BN_security_bits.pod +++ b/doc/man3/BN_security_bits.pod @@ -31,17 +31,17 @@ Number of security bits. ECC (Elliptic Curve Cryptography) is not covered by the BN_security_bits() function. The symmetric algorithms are not covered neither. -=head1 HISTORY - -BN_security_bits() was added in OpenSSL 1.1.0. - =head1 SEE ALSO L<DH_security_bits(3)>, L<DSA_security_bits(3)>, L<RSA_security_bits(3)> +=head1 HISTORY + +The BN_security_bits() function was added in OpenSSL 1.1.0. + =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/BUF_MEM_new.pod b/doc/man3/BUF_MEM_new.pod index 61922502a3f1f7c148946deeaa16b45b5e5b2fc2..0c68f3776f7c58e64e3092e906b54b3ffc75e1fe 100644 --- a/doc/man3/BUF_MEM_new.pod +++ b/doc/man3/BUF_MEM_new.pod @@ -61,7 +61,7 @@ L<CRYPTO_secure_malloc(3)>. =head1 HISTORY -BUF_MEM_new_ex() was added in OpenSSL 1.1.0. +The BUF_MEM_new_ex() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/CMS_get0_type.pod b/doc/man3/CMS_get0_type.pod index cad8d3f66280f68bed197d8c69bcd10196e35cf1..bc38a09bdcbcb94fea7056ce4d23478e1dc74868 100644 --- a/doc/man3/CMS_get0_type.pod +++ b/doc/man3/CMS_get0_type.pod @@ -16,11 +16,12 @@ CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_content - =head1 DESCRIPTION CMS_get0_type() returns the content type of a CMS_ContentInfo structure as -and ASN1_OBJECT pointer. An application can then decide how to process the +an ASN1_OBJECT pointer. An application can then decide how to process the CMS_ContentInfo structure based on this value. CMS_set1_eContentType() sets the embedded content type of a CMS_ContentInfo -structure. It should be called with CMS functions with the B<CMS_PARTIAL> +structure. It should be called with CMS functions (such as L<CMS_sign>, L<CMS_encrypt>) +with the B<CMS_PARTIAL> flag and B<before> the structure is finalised, otherwise the results are undefined. @@ -60,7 +61,7 @@ embedded content as it is normally set by higher level functions. =head1 RETURN VALUES -CMS_get0_type() and CMS_get0_eContentType() return and ASN1_OBJECT structure. +CMS_get0_type() and CMS_get0_eContentType() return an ASN1_OBJECT structure. CMS_set1_eContentType() returns 1 for success or 0 if an error occurred. The error can be obtained from ERR_get_error(3). @@ -71,7 +72,7 @@ L<ERR_get_error(3)> =head1 COPYRIGHT -Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/CMS_verify.pod b/doc/man3/CMS_verify.pod index 7187d9840ab66d90858d1ff6c4a5b8a1236ebd3d..be688681cbc62195cf9ddea2220c068c091289b4 100644 --- a/doc/man3/CMS_verify.pod +++ b/doc/man3/CMS_verify.pod @@ -46,7 +46,7 @@ are used as untrusted CAs. If CRL checking is enabled in B<store> any internal CRLs are used in addition to attempting to look them up in B<store>. If any chain verify fails an error code is returned. -Finally the signed content is read (and written to B<out> is it is not NULL) +Finally the signed content is read (and written to B<out> if it is not NULL) and the signature's checked. If all signature's verify correctly then the function is successful. @@ -122,7 +122,7 @@ L<ERR_get_error(3)>, L<CMS_sign(3)> =head1 COPYRIGHT -Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/CONF_modules_load_file.pod b/doc/man3/CONF_modules_load_file.pod index ecf294a2c60dcf01b5e9f66f88b65b9d7c59eef5..04fbd60f40b7cf5bf333454715c4ffe04da4ab83 100644 --- a/doc/man3/CONF_modules_load_file.pod +++ b/doc/man3/CONF_modules_load_file.pod @@ -28,13 +28,21 @@ reads configuration information from B<cnf>. The following B<flags> are currently recognized: -B<CONF_MFLAGS_IGNORE_ERRORS> if set errors returned by individual +If B<CONF_MFLAGS_IGNORE_ERRORS> is set errors returned by individual configuration modules are ignored. If not set the first module error is considered fatal and no further modules are loaded. Normally any modules errors will add error information to the error queue. If B<CONF_MFLAGS_SILENT> is set no error information is added. +If B<CONF_MFLAGS_IGNORE_RETURN_CODES> is set the function unconditionally +returns success. +This is used by default in L<OPENSSL_init_crypto(3)> to ignore any errors in +the default system-wide configuration file, as having all OpenSSL applications +fail to start when there are potentially minor issues in the file is too risky. +Applications calling B<CONF_modules_load_file> explicitly should not generally +set this flag. + If B<CONF_MFLAGS_NO_DSO> is set configuration module loading from DSOs is disabled. @@ -59,6 +67,12 @@ Applications can use the CONF_modules_load() function if they wish to load a configuration file themselves and have finer control over how errors are treated. +=head1 RETURN VALUES + +These functions return 1 for success and a zero or negative value for +failure. If module errors are not ignored the return code will reflect the +return value of the failing module (this will always be zero or negative). + =head1 EXAMPLES Load a configuration file and print out any errors and exit (missing file @@ -114,19 +128,13 @@ Load and parse configuration file manually, custom error handling: NCONF_free(cnf); } -=head1 RETURN VALUES - -These functions return 1 for success and a zero or negative value for -failure. If module errors are not ignored the return code will reflect the -return value of the failing module (this will always be zero or negative). - =head1 SEE ALSO L<config(5)>, L<OPENSSL_config(3)> =head1 COPYRIGHT -Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/CRYPTO_get_ex_new_index.pod b/doc/man3/CRYPTO_get_ex_new_index.pod index 4d5a2b93a08237fbb7062cf6a347e82e6c03935a..b2d33ef90d9ebc223c0ab1c5e849db944f1ff149 100644 --- a/doc/man3/CRYPTO_get_ex_new_index.pod +++ b/doc/man3/CRYPTO_get_ex_new_index.pod @@ -100,7 +100,7 @@ to avoid likely double-free crashes. The function B<CRYPTO_free_ex_data> is used to free all exdata attached to a structure. The appropriate type-specific routine must be used. The B<class_index> identifies the structure type, the B<obj> is -be the pointer to the actual structure, and B<r> is a pointer to the +a pointer to the actual structure, and B<r> is a pointer to the structure's exdata field. =head2 Callback Functions @@ -157,7 +157,7 @@ dup_func() should return 0 for failure and 1 for success. =head1 COPYRIGHT -Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/CTLOG_STORE_get0_log_by_id.pod b/doc/man3/CTLOG_STORE_get0_log_by_id.pod index 36063b62e8583cc602447257a00c83068d7ca0e2..86696a5594626f11f67423697b43323dff078694 100644 --- a/doc/man3/CTLOG_STORE_get0_log_by_id.pod +++ b/doc/man3/CTLOG_STORE_get0_log_by_id.pod @@ -35,7 +35,7 @@ L<CTLOG_STORE_new(3)> =head1 HISTORY -This function was added in OpenSSL 1.1.0. +The CTLOG_STORE_get0_log_by_id() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/DES_random_key.pod b/doc/man3/DES_random_key.pod index 6e0394d637b2483e2c49a931d5ceba020cb162f8..bd4bd9750cd3cc2a30210a92d67db8384496e63c 100644 --- a/doc/man3/DES_random_key.pod +++ b/doc/man3/DES_random_key.pod @@ -296,6 +296,11 @@ last 4 bytes of the checksum of the input. DES_fcrypt() returns a pointer to the caller-provided buffer and DES_crypt() - to a static buffer on success; otherwise they return NULL. +=head1 SEE ALSO + +L<des_modes(7)>, +L<EVP_EncryptInit(3)> + =head1 HISTORY The requirement that the B<salt> parameter to DES_crypt() and DES_fcrypt() @@ -304,14 +309,9 @@ OpenSSL 1.1.0. Previous versions tried to use the letter uppercase B<A> if both character were not present, and could crash when given non-ASCII on some platforms. -=head1 SEE ALSO - -L<des_modes(7)>, -L<EVP_EncryptInit(3)> - =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/DH_size.pod b/doc/man3/DH_size.pod index 3b65d7ea6d6b23dfe517f0735fb60a7dcbb6d780..3cbdbc67da1c82416e6b3c091f744a571e15c103 100644 --- a/doc/man3/DH_size.pod +++ b/doc/man3/DH_size.pod @@ -43,7 +43,7 @@ L<BN_num_bits(3)> =head1 HISTORY -DH_bits() was added in OpenSSL 1.1.0. +The DH_bits() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/DTLS_get_data_mtu.pod b/doc/man3/DTLS_get_data_mtu.pod index ab7147217ac1d06f856c20e2a64f588a43179a3c..81b945f134a69dc7850889ad37c0b71d18ee83a1 100644 --- a/doc/man3/DTLS_get_data_mtu.pod +++ b/doc/man3/DTLS_get_data_mtu.pod @@ -22,7 +22,7 @@ Returns the maximum data payload size on success, or 0 on failure. =head1 HISTORY -This function was added in OpenSSL 1.1.1 +The DTLS_get_data_mtu() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/DTLS_set_timer_cb.pod b/doc/man3/DTLS_set_timer_cb.pod index 6e1347213e6fc999246af51e5a8d89969df86d1e..c5154dca35704213ad37c13d28f2f06d7e034087 100644 --- a/doc/man3/DTLS_set_timer_cb.pod +++ b/doc/man3/DTLS_set_timer_cb.pod @@ -26,7 +26,7 @@ Returns void. =head1 HISTORY -This function was added in OpenSSL 1.1.1 +The DTLS_set_timer_cb() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/DTLSv1_listen.pod b/doc/man3/DTLSv1_listen.pod index 858e39316105d734c87e25dfce12a4a2258621e7..76be40b68f10cf75473098421ebbe227fb7da740 100644 --- a/doc/man3/DTLSv1_listen.pod +++ b/doc/man3/DTLSv1_listen.pod @@ -117,10 +117,10 @@ L<ssl(7)>, L<bio(7)> =head1 HISTORY -SSL_stateless() was first added in OpenSSL 1.1.1. +The SSL_stateless() function was added in OpenSSL 1.1.1. -DTLSv1_listen() return codes were clarified in OpenSSL 1.1.0. The type of "peer" -also changed in OpenSSL 1.1.0. +The DTLSv1_listen() return codes were clarified in OpenSSL 1.1.0. +The type of "peer" also changed in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/ECDSA_SIG_new.pod b/doc/man3/ECDSA_SIG_new.pod index 0bf63f8bde80884fdb26eef1d74e916c2201950e..8d6cda5e7a3c97fb7ed368930c752c1ec1a98556 100644 --- a/doc/man3/ECDSA_SIG_new.pod +++ b/doc/man3/ECDSA_SIG_new.pod @@ -200,13 +200,13 @@ ANSI X9.62, US Federal Information Processing Standard FIPS 186-2 =head1 SEE ALSO -L<DSA_new(3)>, +L<EC_KEY_new(3)>, L<EVP_DigestSignInit(3)>, L<EVP_DigestVerifyInit(3)> =head1 COPYRIGHT -Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EC_GROUP_copy.pod b/doc/man3/EC_GROUP_copy.pod index ee20f9526adc6328188f126f0bed06aaf210a88f..7bf3500623758459e6199bcb216bf99214fd4fcc 100644 --- a/doc/man3/EC_GROUP_copy.pod +++ b/doc/man3/EC_GROUP_copy.pod @@ -89,7 +89,7 @@ named curve form is used and the parameters must have a corresponding named curve NID set. If asn1_flags is B<OPENSSL_EC_EXPLICIT_CURVE> the parameters are explicitly encoded. The functions EC_GROUP_get_asn1_flag and EC_GROUP_set_asn1_flag get and set the status of the asn1_flag for the curve. -Note: B<OPENSSL_EC_EXPLICIT_CURVE> was first added to OpenSSL 1.1.0, for +Note: B<OPENSSL_EC_EXPLICIT_CURVE> was added in OpenSSL 1.1.0, for previous versions of OpenSSL the value 0 must be used instead. Before OpenSSL 1.1.0 the default form was to use explicit parameters (meaning that applications would have to explicitly set the named curve form) in OpenSSL @@ -175,7 +175,7 @@ and EC_GROUP_get_degree return the order, cofactor, curve name (NID), ASN1 flag, specified curve respectively. If there is no curve name associated with a curve then EC_GROUP_get_curve_name will return 0. EC_GROUP_get0_order() returns an internal pointer to the group order. -EC_GROUP_get_order_bits() returns the number of bits in the group order. +EC_GROUP_order_bits() returns the number of bits in the group order. EC_GROUP_get0_cofactor() returns an internal pointer to the group cofactor. EC_GROUP_get0_seed returns a pointer to the seed that was used to generate the parameter b, or NULL if the seed is not diff --git a/doc/man3/EVP_DigestInit.pod b/doc/man3/EVP_DigestInit.pod index 5ecbcc5e89925a3776c06ac4546dac48630658fa..37bc10d38056fba40a832700f689b281f5e60deb 100644 --- a/doc/man3/EVP_DigestInit.pod +++ b/doc/man3/EVP_DigestInit.pod @@ -369,15 +369,15 @@ L<EVP_whirlpool(3)> =head1 HISTORY -EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to -EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.0. +The EVP_MD_CTX_create() and EVP_MD_CTX_destroy() functions were renamed to +EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.0, respectively. The link between digests and signing algorithms was fixed in OpenSSL 1.0 and later, so now EVP_sha1() can be used with RSA and DSA. -EVP_dss1() was removed in OpenSSL 1.1.0. +The EVP_dss1() function was removed in OpenSSL 1.1.0. -EVP_MD_CTX_set_pkey_ctx() was added in 1.1.1. +The EVP_MD_CTX_set_pkey_ctx() function was added in 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/EVP_DigestSignInit.pod b/doc/man3/EVP_DigestSignInit.pod index 773de87efac4dd48214b80201d35771dce19567b..7b74a23cbcf25a97e0a118514e0f0ac1b34226e0 100644 --- a/doc/man3/EVP_DigestSignInit.pod +++ b/doc/man3/EVP_DigestSignInit.pod @@ -152,7 +152,7 @@ L<SHA1(3)>, L<dgst(1)> =head1 HISTORY EVP_DigestSignInit(), EVP_DigestSignUpdate() and EVP_DigestSignFinal() -were first added to OpenSSL 1.0.0. +were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_DigestVerifyInit.pod b/doc/man3/EVP_DigestVerifyInit.pod index e93ac2ef08107c02a48c53ef68538283762e74e9..592a7508dce0b5d6592a37049794a3503a31c7af 100644 --- a/doc/man3/EVP_DigestVerifyInit.pod +++ b/doc/man3/EVP_DigestVerifyInit.pod @@ -28,8 +28,8 @@ EVP_PKEY_CTX of the verification operation will be written to B<*pctx>: this can be used to set alternative verification options. Note that any existing value in B<*pctx> is overwritten. The EVP_PKEY_CTX value returned must not be freed directly by the application if B<ctx> is not assigned an EVP_PKEY_CTX value before -being passed to EVP_DigestSignInit() (which means the EVP_PKEY_CTX is created -inside EVP_DigestSignInit() and it will be freed automatically when the +being passed to EVP_DigestVerifyInit() (which means the EVP_PKEY_CTX is created +inside EVP_DigestVerifyInit() and it will be freed automatically when the EVP_MD_CTX is freed). No B<EVP_PKEY_CTX> will be created by EVP_DigsetSignInit() if the passed B<ctx> @@ -98,11 +98,11 @@ L<SHA1(3)>, L<dgst(1)> =head1 HISTORY EVP_DigestVerifyInit(), EVP_DigestVerifyUpdate() and EVP_DigestVerifyFinal() -were first added to OpenSSL 1.0.0. +were added in OpenSSL 1.0.0. =head1 COPYRIGHT -Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2006-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EVP_EncryptInit.pod b/doc/man3/EVP_EncryptInit.pod index 5fdbc33ac10fbbfad028c172de8228d5af4205ab..6b068617b0adcf4a20b63c2c48d3a48a7341fc3c 100644 --- a/doc/man3/EVP_EncryptInit.pod +++ b/doc/man3/EVP_EncryptInit.pod @@ -412,7 +412,9 @@ The following I<ctrl>s are supported in CCM mode. This call is made to set the expected B<CCM> tag value when decrypting or the length of the tag (with the C<tag> parameter set to NULL) when encrypting. The tag length is often referred to as B<M>. If not set a default value is -used (12 for AES). +used (12 for AES). When decrypting, the tag needs to be set before passing +in data to be decrypted, but as in GCM and OCB mode, it can be set after +passing additional authenticated data (see L<AEAD Interface>). =item EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_L, ivlen, NULL) @@ -436,7 +438,9 @@ The following I<ctrl>s are supported for the ChaCha20-Poly1305 AEAD algorithm. Sets the nonce length. This call can only be made before specifying the nonce. If not called a default nonce length of 12 (i.e. 96 bits) is used. The maximum -nonce length is 16 (B<CHACHA_CTR_SIZE>, i.e. 128-bits). +nonce length is 12 bytes (i.e. 96-bits). If a nonce of less than 12 bytes is set +then the nonce is automatically padded with leading 0 bytes to make it 12 bytes +in length. =item EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_GET_TAG, taglen, tag) @@ -632,7 +636,7 @@ L<EVP_sm4(3)> =head1 HISTORY -Support for OCB mode was added in OpenSSL 1.1.0 +Support for OCB mode was added in OpenSSL 1.1.0. B<EVP_CIPHER_CTX> was made opaque in OpenSSL 1.1.0. As a result, EVP_CIPHER_CTX_reset() appeared and EVP_CIPHER_CTX_cleanup() @@ -641,7 +645,7 @@ EVP_CIPHER_CTX_reset(). =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EVP_PKEY_CTX_ctrl.pod b/doc/man3/EVP_PKEY_CTX_ctrl.pod index 4982e9205305b0a4308f4e51d828089cff735e45..75fad0f70ce0d1c3baf7b3cb221f8ea569cc311b 100644 --- a/doc/man3/EVP_PKEY_CTX_ctrl.pod +++ b/doc/man3/EVP_PKEY_CTX_ctrl.pod @@ -359,7 +359,7 @@ B<param_enc> when generating EC parameters or an EC key. The encoding can be B<OPENSSL_EC_EXPLICIT_CURVE> for explicit parameters (the default in versions of OpenSSL before 1.1.0) or B<OPENSSL_EC_NAMED_CURVE> to use named curve form. For maximum compatibility the named curve form should be used. Note: the -B<OPENSSL_EC_NAMED_CURVE> value was only added to OpenSSL 1.1.0; previous +B<OPENSSL_EC_NAMED_CURVE> value was added in OpenSSL 1.1.0; previous versions should use 0 instead. =head2 ECDH parameters @@ -439,8 +439,9 @@ L<EVP_PKEY_keygen(3)> =head1 HISTORY +The EVP_PKEY_CTX_set1_id(), EVP_PKEY_CTX_get1_id() and EVP_PKEY_CTX_get1_id_len() -macros were added in 1.1.1, other functions were first added to OpenSSL 1.0.0. +macros were added in 1.1.1, other functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_CTX_new.pod b/doc/man3/EVP_PKEY_CTX_new.pod index eff94cd9436414824dc2cadcd6f3e62742924836..f01fc97522979651a69bd3d52d36859cfa5b8474 100644 --- a/doc/man3/EVP_PKEY_CTX_new.pod +++ b/doc/man3/EVP_PKEY_CTX_new.pod @@ -48,7 +48,7 @@ L<EVP_PKEY_new(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_asn1_get_count.pod b/doc/man3/EVP_PKEY_asn1_get_count.pod index 9ad2daed4f5ba0c38aecb4887f9c6d90093af261..cd99e4d757860b7f2a8d4b389c699d99a97a5c93 100644 --- a/doc/man3/EVP_PKEY_asn1_get_count.pod +++ b/doc/man3/EVP_PKEY_asn1_get_count.pod @@ -48,7 +48,7 @@ engine that implements it. EVP_PKEY_asn1_get0_info() returns the public key ID, base public key ID (both NIDs), any flags, the method description and PEM type string -associated with the public key ASN.1 method B<*ameth>. +associated with the public key ASN.1 method B<*ameth>. EVP_PKEY_asn1_count(), EVP_PKEY_asn1_get0(), EVP_PKEY_asn1_find() and EVP_PKEY_asn1_find_str() are not thread safe, but as long as all @@ -70,7 +70,7 @@ L<EVP_PKEY_asn1_new(3)>, L<EVP_PKEY_asn1_add0(3)> =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EVP_PKEY_decrypt.pod b/doc/man3/EVP_PKEY_decrypt.pod index 2a691a61773b23f50c9c52319c2e438c93cd9238..2e3d266541a66cbc76c8f30a9516152a0ab14e61 100644 --- a/doc/man3/EVP_PKEY_decrypt.pod +++ b/doc/man3/EVP_PKEY_decrypt.pod @@ -91,7 +91,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_derive.pod b/doc/man3/EVP_PKEY_derive.pod index 8cd0b54740d43e6e3275761228b83ba0a78eff26..a74065e31f3b975d605ed9bca3eb5c4e1ca542e5 100644 --- a/doc/man3/EVP_PKEY_derive.pod +++ b/doc/man3/EVP_PKEY_derive.pod @@ -89,7 +89,7 @@ L<EVP_PKEY_verify_recover(3)>, =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_encrypt.pod b/doc/man3/EVP_PKEY_encrypt.pod index 4e9a34e740f3ad2a94b5b215157cc2bb0b8432bc..371891046473f1f8a4bbaeb32e2eb591dc9c5567 100644 --- a/doc/man3/EVP_PKEY_encrypt.pod +++ b/doc/man3/EVP_PKEY_encrypt.pod @@ -96,7 +96,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_get_default_digest_nid.pod b/doc/man3/EVP_PKEY_get_default_digest_nid.pod index da76677044c28064d1293b32bee492d59f2b376a..ed52e9696c9f45b496283aaefe543ae65e458dd2 100644 --- a/doc/man3/EVP_PKEY_get_default_digest_nid.pod +++ b/doc/man3/EVP_PKEY_get_default_digest_nid.pod @@ -37,7 +37,7 @@ L<EVP_PKEY_verify_recover(3)>, =head1 HISTORY -This function was first added to OpenSSL 1.0.0. +This function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_keygen.pod b/doc/man3/EVP_PKEY_keygen.pod index 0b86eaaaa3dbaa0e115838afd7bfc22d7c943721..83cebe7ce2f40752ac597a8c26110121673b143f 100644 --- a/doc/man3/EVP_PKEY_keygen.pod +++ b/doc/man3/EVP_PKEY_keygen.pod @@ -189,7 +189,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. EVP_PKEY_check(), EVP_PKEY_public_check() and EVP_PKEY_param_check() were added in OpenSSL 1.1.1. diff --git a/doc/man3/EVP_PKEY_meth_new.pod b/doc/man3/EVP_PKEY_meth_new.pod index db803fc2a268ff01315d62bcd2068e1c26be78cb..8a167ce0d6ff087d402f0d8c5618bcdadcaa0d5e 100644 --- a/doc/man3/EVP_PKEY_meth_new.pod +++ b/doc/man3/EVP_PKEY_meth_new.pod @@ -286,7 +286,7 @@ L<EVP_PKEY_verify_recover_init(3)> and L<EVP_PKEY_verify_recover(3)>. The signctx_init() and signctx() methods are used to sign a digest present by a B<EVP_MD_CTX> object. They are called by the EVP_DigestSign functions. See -L<EVP_DigestSignInit(3)> for detail. +L<EVP_DigestSignInit(3)> for details. int (*verifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, @@ -294,7 +294,7 @@ L<EVP_DigestSignInit(3)> for detail. The verifyctx_init() and verifyctx() methods are used to verify a signature against the data in a B<EVP_MD_CTX> object. They are called by the various -EVP_DigestVerify functions. See L<EVP_DigestVerifyInit(3)> for detail. +EVP_DigestVerify functions. See L<EVP_DigestVerifyInit(3)> for details. int (*encrypt_init) (EVP_PKEY_CTX *ctx); int (*encrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, @@ -321,7 +321,7 @@ L<EVP_PKEY_derive_init(3)> and L<EVP_PKEY_derive(3)>. int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value); The ctrl() and ctrl_str() methods are used to adjust algorithm-specific -settings. See L<EVP_PKEY_CTX_ctrl(3)> and related functions for detail. +settings. See L<EVP_PKEY_CTX_ctrl(3)> and related functions for details. int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, const unsigned char *tbs, size_t tbslen); @@ -330,7 +330,7 @@ settings. See L<EVP_PKEY_CTX_ctrl(3)> and related functions for detail. size_t tbslen); The digestsign() and digestverify() methods are used to generate or verify -a signature in a one-shot mode. They could be called by L<EVP_DigetSign(3)> +a signature in a one-shot mode. They could be called by L<EVP_DigestSign(3)> and L<EVP_DigestVerify(3)>. int (*check) (EVP_PKEY *pkey); @@ -414,7 +414,7 @@ arguments. =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EVP_PKEY_new.pod b/doc/man3/EVP_PKEY_new.pod index a3532a359632bdc42dd2c6cb427a569d0142cc41..ebe20986dba14baebac067cdbdc2ed28a5a1b70c 100644 --- a/doc/man3/EVP_PKEY_new.pod +++ b/doc/man3/EVP_PKEY_new.pod @@ -114,12 +114,15 @@ L<EVP_PKEY_set1_EC_KEY> =head1 HISTORY -EVP_PKEY_new() and EVP_PKEY_free() exist in all versions of OpenSSL. +The +EVP_PKEY_new() and EVP_PKEY_free() functions exist in all versions of OpenSSL. -EVP_PKEY_up_ref() was first added to OpenSSL 1.1.0. +The EVP_PKEY_up_ref() function was added in OpenSSL 1.1.0. + +The EVP_PKEY_new_raw_private_key(), EVP_PKEY_new_raw_public_key(), EVP_PKEY_new_CMAC_key(), EVP_PKEY_new_raw_private_key() and -EVP_PKEY_get_raw_public_key() were first added to OpenSSL 1.1.1. +EVP_PKEY_get_raw_public_key() functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_print_private.pod b/doc/man3/EVP_PKEY_print_private.pod index 3ebd086a1c1936cb30c3e603ff6cfd0c357f0234..e0750c7eedbbc0e58f751c00202bcc5a4b02311a 100644 --- a/doc/man3/EVP_PKEY_print_private.pod +++ b/doc/man3/EVP_PKEY_print_private.pod @@ -47,7 +47,7 @@ L<EVP_PKEY_keygen(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_set1_RSA.pod b/doc/man3/EVP_PKEY_set1_RSA.pod index d10fc59d8bccac961947ffec1b9d9fffb3248970..d571e58d95ba0062822e0721cd0dcd8dd74e3290 100644 --- a/doc/man3/EVP_PKEY_set1_RSA.pod +++ b/doc/man3/EVP_PKEY_set1_RSA.pod @@ -9,7 +9,7 @@ EVP_PKEY_assign_RSA, EVP_PKEY_assign_DSA, EVP_PKEY_assign_DH, EVP_PKEY_assign_EC_KEY, EVP_PKEY_assign_POLY1305, EVP_PKEY_assign_SIPHASH, EVP_PKEY_get0_hmac, EVP_PKEY_get0_poly1305, EVP_PKEY_get0_siphash, EVP_PKEY_type, EVP_PKEY_id, EVP_PKEY_base_id, EVP_PKEY_set_alias_type, -EVP_PKEY_set1_engine - EVP_PKEY assignment functions +EVP_PKEY_set1_engine, EVP_PKEY_get0_engine - EVP_PKEY assignment functions =head1 SYNOPSIS @@ -45,6 +45,7 @@ EVP_PKEY_set1_engine - EVP_PKEY assignment functions int EVP_PKEY_type(int type); int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); + ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *engine); =head1 DESCRIPTION @@ -81,6 +82,8 @@ often seen in practice. EVP_PKEY_type() returns the underlying type of the NID B<type>. For example EVP_PKEY_type(EVP_PKEY_RSA2) will return B<EVP_PKEY_RSA>. +EVP_PKEY_get0_engine() returns a reference to the ENGINE handling B<pkey>. + EVP_PKEY_set1_engine() sets the ENGINE handling B<pkey> to B<engine>. It must be called after the key algorithm and components are set up. If B<engine> does not include an B<EVP_PKEY_METHOD> for B<pkey> an @@ -111,13 +114,6 @@ is no longer possible: the equivalent is EVP_PKEY_base_id(pkey). EVP_PKEY_set1_engine() is typically used by an ENGINE returning an HSM key as part of its routine to load a private key. -=head1 EXAMPLES - -After loading an ECC key, it is possible to convert it to using SM2 -algorithms with EVP_PKEY_set_alias_type: - - EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2); - =head1 RETURN VALUES EVP_PKEY_set1_RSA(), EVP_PKEY_set1_DSA(), EVP_PKEY_set1_DH() and @@ -138,13 +134,20 @@ EVP_PKEY_set1_engine() returns 1 for success and 0 for failure. EVP_PKEY_set_alias_type() returns 1 for success and 0 for error. +=head1 EXAMPLES + +After loading an ECC key, it is possible to convert it to using SM2 +algorithms with EVP_PKEY_set_alias_type: + + EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2); + =head1 SEE ALSO L<EVP_PKEY_new(3)> =head1 COPYRIGHT -Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/EVP_PKEY_sign.pod b/doc/man3/EVP_PKEY_sign.pod index bdebf0b9241f8018b0cd81d29d39122c40b1ca4a..1672831ff0158c9f180722187ff310afa6562123 100644 --- a/doc/man3/EVP_PKEY_sign.pod +++ b/doc/man3/EVP_PKEY_sign.pod @@ -101,7 +101,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_verify.pod b/doc/man3/EVP_PKEY_verify.pod index 57d7f8cf86f8e6986e9a84d6bc88ac8c98e07661..cdbb80b99df86e425e8fc85b5787369ca2e84a35 100644 --- a/doc/man3/EVP_PKEY_verify.pod +++ b/doc/man3/EVP_PKEY_verify.pod @@ -89,7 +89,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_PKEY_verify_recover.pod b/doc/man3/EVP_PKEY_verify_recover.pod index 85d76f84ac37f900a4d01ae9d2860a742a33fafa..251360656167e5c0dcf8a9407f15748b9bd220c3 100644 --- a/doc/man3/EVP_PKEY_verify_recover.pod +++ b/doc/man3/EVP_PKEY_verify_recover.pod @@ -100,7 +100,7 @@ L<EVP_PKEY_derive(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.0. +These functions were added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/EVP_SignInit.pod b/doc/man3/EVP_SignInit.pod index 12e67f8cbf8677a837528a15037bd9447ce6df57..86fec82fb007dc5d69d72753d24a2dfa958728d6 100644 --- a/doc/man3/EVP_SignInit.pod +++ b/doc/man3/EVP_SignInit.pod @@ -17,7 +17,7 @@ functions void EVP_SignInit(EVP_MD_CTX *ctx, const EVP_MD *type); - int EVP_PKEY_size(EVP_PKEY *pkey); + int EVP_PKEY_size(const EVP_PKEY *pkey); int EVP_PKEY_security_bits(const EVP_PKEY *pkey); =head1 DESCRIPTION diff --git a/doc/man3/EVP_chacha20.pod b/doc/man3/EVP_chacha20.pod index 96da825cded4b1de62ecaf5b51925d0abfbb7888..a21b6485956892822105a1681331dc7a68b08ca8 100644 --- a/doc/man3/EVP_chacha20.pod +++ b/doc/man3/EVP_chacha20.pod @@ -21,7 +21,15 @@ The ChaCha20 stream cipher for EVP. =item EVP_chacha20() -The ChaCha20 stream cipher. The key length is 256 bits, the IV is 96 bits long. +The ChaCha20 stream cipher. The key length is 256 bits, the IV is 128 bits long. +The first 32 bits consists of a counter in little-endian order followed by a 96 +bit nonce. For example a nonce of: + +000000000000000000000002 + +With an initial counter of 42 (2a in hex) would be expressed as: + +2a000000000000000000000000000002 =item EVP_chacha20_poly1305() @@ -46,7 +54,7 @@ L<EVP_CIPHER_meth_new(3)> =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/HMAC.pod b/doc/man3/HMAC.pod index c480a9c9ebefb018b2a2f73b7f1d4fc12d48faa1..30c0e6bac39211255cb1ac2e6b0e8ec44038409f 100644 --- a/doc/man3/HMAC.pod +++ b/doc/man3/HMAC.pod @@ -63,7 +63,9 @@ If B<md> is NULL, the digest is placed in a static array. The size of the output is placed in B<md_len>, unless it is B<NULL>. Note: passing a NULL value for B<md> to use the static array is not thread safe. -B<evp_md> can be EVP_sha1(), EVP_ripemd160() etc. +B<evp_md> is a message digest such as EVP_sha1(), EVP_ripemd160() etc. HMAC does +not support variable output length digests such as EVP_shake128() and +EVP_shake256(). HMAC_CTX_new() creates a new HMAC_CTX in heap memory. @@ -91,7 +93,7 @@ because reuse of an existing key with a different digest is not supported. HMAC_Init() initializes a B<HMAC_CTX> structure to use the hash function B<evp_md> and the key B<key> which is B<key_len> bytes -long. +long. HMAC_Update() can be called repeatedly with chunks of the message to be authenticated (B<len> bytes at B<data>). @@ -147,7 +149,7 @@ OpenSSL before version 1.0.0. =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/OBJ_nid2obj.pod b/doc/man3/OBJ_nid2obj.pod index cbf889f2c7114c6fe598e7baad5671fe9cebcce4..f84d5b1eb38409db6a197c8560b6fc435f5f0038 100644 --- a/doc/man3/OBJ_nid2obj.pod +++ b/doc/man3/OBJ_nid2obj.pod @@ -130,6 +130,17 @@ These functions cannot return B<const> because an B<ASN1_OBJECT> can represent both an internal, constant, OID and a dynamically-created one. The latter cannot be constant because it needs to be freed after use. +=head1 RETURN VALUES + +OBJ_nid2obj() returns an B<ASN1_OBJECT> structure or B<NULL> is an +error occurred. + +OBJ_nid2ln() and OBJ_nid2sn() returns a valid string or B<NULL> +on error. + +OBJ_obj2nid(), OBJ_ln2nid(), OBJ_sn2nid() and OBJ_txt2nid() return +a NID or B<NID_undef> on error. + =head1 EXAMPLES Create an object for B<commonName>: @@ -159,17 +170,6 @@ Instead B<buf> must point to a valid buffer and B<buf_len> should be set to a positive value. A buffer length of 80 should be more than enough to handle any OID encountered in practice. -=head1 RETURN VALUES - -OBJ_nid2obj() returns an B<ASN1_OBJECT> structure or B<NULL> is an -error occurred. - -OBJ_nid2ln() and OBJ_nid2sn() returns a valid string or B<NULL> -on error. - -OBJ_obj2nid(), OBJ_ln2nid(), OBJ_sn2nid() and OBJ_txt2nid() return -a NID or B<NID_undef> on error. - =head1 SEE ALSO L<ERR_get_error(3)> @@ -181,7 +181,7 @@ and should not be used. =head1 COPYRIGHT -Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/OCSP_cert_to_id.pod b/doc/man3/OCSP_cert_to_id.pod index f1a4b1512b6463079ecc53c7063c21ce59a05422..c8d39c1913589688b5f355104612a61476f22032 100644 --- a/doc/man3/OCSP_cert_to_id.pod +++ b/doc/man3/OCSP_cert_to_id.pod @@ -19,8 +19,8 @@ OCSP_id_cmp, OCSP_id_get0_info - OCSP certificate ID utility functions void OCSP_CERTID_free(OCSP_CERTID *id); - int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); - int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); + 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_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, ASN1_OCTET_STRING **pikeyHash, @@ -79,7 +79,7 @@ L<OCSP_sendreq_new(3)> =head1 COPYRIGHT -Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/OPENSSL_init_crypto.pod b/doc/man3/OPENSSL_init_crypto.pod index a259539f05527a0d2fc48c3ab1c7145f46a143d6..c7823e32d6df8d9a893c4ed94cefa7a46007a461 100644 --- a/doc/man3/OPENSSL_init_crypto.pod +++ b/doc/man3/OPENSSL_init_crypto.pod @@ -2,10 +2,11 @@ =head1 NAME -OPENSSL_INIT_new, OPENSSL_INIT_set_config_appname, OPENSSL_INIT_free, -OPENSSL_init_crypto, OPENSSL_cleanup, -OPENSSL_atexit, OPENSSL_thread_stop - OpenSSL -initialisation and deinitialisation functions +OPENSSL_INIT_new, OPENSSL_INIT_set_config_filename, +OPENSSL_INIT_set_config_appname, OPENSSL_INIT_set_config_file_flags, +OPENSSL_INIT_free, OPENSSL_init_crypto, OPENSSL_cleanup, OPENSSL_atexit, +OPENSSL_thread_stop - OpenSSL initialisation +and deinitialisation functions =head1 SYNOPSIS @@ -17,6 +18,10 @@ initialisation and deinitialisation functions void OPENSSL_thread_stop(void); OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); + int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *init, + const char* filename); + int OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *init, + unsigned long flags); int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *init, const char* name); void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *init); @@ -33,7 +38,7 @@ As of version 1.1.0 OpenSSL will automatically allocate all resources that it needs so no explicit initialisation is required. Similarly it will also automatically deinitialise as required. -However, there way be situations when explicit initialisation is desirable or +However, there may be situations when explicit initialisation is desirable or needed, for example when some non-default initialisation is required. The function OPENSSL_init_crypto() can be used for this purpose for libcrypto (see also L<OPENSSL_init_ssl(3)> for the libssl @@ -96,7 +101,7 @@ B<OPENSSL_INIT_ADD_ALL_DIGESTS> will be ignored. With this option an OpenSSL configuration file will be automatically loaded and used by calling OPENSSL_config(). This is not a default option for libcrypto. -From OpenSSL 1.1.1 this is a default option for libssl (see +As of OpenSSL 1.1.1 this is a default option for libssl (see L<OPENSSL_init_ssl(3)> for further details about libssl initialisation). See the description of OPENSSL_INIT_new(), below. @@ -157,6 +162,13 @@ engines. This not a default option. With this option the library will register its fork handlers. See OPENSSL_fork_prepare(3) for details. +=item OPENSSL_INIT_NO_ATEXIT + +By default OpenSSL will attempt to clean itself up when the process exits via an +"atexit" handler. Using this option suppresses that behaviour. This means that +the application will have to clean up OpenSSL explicitly using +OPENSSL_cleanup(). + =back Multiple options may be combined together in a single call to @@ -196,12 +208,22 @@ the library when the thread exits. This should only be called directly if resources should be freed at an earlier time, or under the circumstances described in the NOTES section below. -The B<OPENSSL_INIT_LOAD_CONFIG> flag will load a default configuration -file. For optional configuration file settings, an B<OPENSSL_INIT_SETTINGS> -must be created and used. -The routines OPENSSL_init_new() and OPENSSL_INIT_set_config_appname() can -be used to allocate the object and set the application name, and then the -object can be released with OPENSSL_INIT_free() when done. +The B<OPENSSL_INIT_LOAD_CONFIG> flag will load a configuration file, as with +L<CONF_modules_load_file(3)> with NULL filename and application name and the +B<CONF_MFLAGS_IGNORE_MISSING_FILE>, B<CONF_MFLAGS_IGNORE_RETURN_CODES> and +B<CONF_MFLAGS_DEFAULT_SECTION> flags. +The filename, application name, and flags can be customized by providing a +non-null B<OPENSSL_INIT_SETTINGS> object. +The object can be allocated via B<OPENSSL_init_new()>. +The B<OPENSSL_INIT_set_config_filename()> function can be used to specify a +non-default filename, which is copied and need not refer to persistent storage. +Similarly, OPENSSL_INIT_set_config_appname() can be used to specify a +non-default application name. +Finally, OPENSSL_INIT_set_file_flags can be used to specify non-default flags. +If the B<CONF_MFLAGS_IGNORE_RETURN_CODES> flag is not included, any errors in +the configuration file will cause an error return from B<OPENSSL_init_crypto> +or indirectly L<OPENSSL_init_ssl(3)>. +The object can be released with OPENSSL_INIT_free() when done. =head1 NOTES @@ -242,7 +264,7 @@ and OPENSSL_INIT_free() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT -Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/OPENSSL_malloc.pod b/doc/man3/OPENSSL_malloc.pod index 049a12556ae7a242e6a94c78993aacde5c3aefaf..2d678c951f0ae20701b6fc6cf6a2405293acb1f5 100644 --- a/doc/man3/OPENSSL_malloc.pod +++ b/doc/man3/OPENSSL_malloc.pod @@ -90,10 +90,8 @@ generally macro's that add the standard C B<__FILE__> and B<__LINE__> parameters and call a lower-level B<CRYPTO_xxx> API. Some functions do not add those parameters, but exist for consistency. -OPENSSL_malloc_init() sets the lower-level memory allocation functions -to their default implementation. -It is generally not necessary to call this, except perhaps in certain -shared-library situations. +OPENSSL_malloc_init() does nothing and does not need to be called. It is +included for compatibility with older versions of OpenSSL. OPENSSL_malloc(), OPENSSL_realloc(), and OPENSSL_free() are like the C malloc(), realloc(), and free() functions. @@ -247,7 +245,7 @@ only, say, the malloc() implementation is outright dangerous.> =head1 COPYRIGHT -Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/OPENSSL_secure_malloc.pod b/doc/man3/OPENSSL_secure_malloc.pod index 5a01c8246933f8e0358375fa685254de9a842fca..6c395383513b7c53f442efd78bbb0c1f67762ef1 100644 --- a/doc/man3/OPENSSL_secure_malloc.pod +++ b/doc/man3/OPENSSL_secure_malloc.pod @@ -120,7 +120,7 @@ L<BN_new(3)> =head1 HISTORY -OPENSSL_secure_clear_free() was added in OpenSSL 1.1.0g. +The OPENSSL_secure_clear_free() function was added in OpenSSL 1.1.0g. =head1 COPYRIGHT diff --git a/doc/man3/OSSL_STORE_INFO.pod b/doc/man3/OSSL_STORE_INFO.pod index 20d41ac534e7b5c186b979029e2bac7207de027f..4c68986c56b2b3f5bdab5e86f2a7063a10bce268 100644 --- a/doc/man3/OSSL_STORE_INFO.pod +++ b/doc/man3/OSSL_STORE_INFO.pod @@ -190,7 +190,7 @@ OSSL_STORE_INFO_get0_CERT(), OSSL_STORE_INFO_get0_CRL(), OSSL_STORE_INFO_type_string(), OSSL_STORE_INFO_free(), OSSL_STORE_INFO_new_NAME(), OSSL_STORE_INFO_new_PARAMS(), OSSL_STORE_INFO_new_PKEY(), OSSL_STORE_INFO_new_CERT() and OSSL_STORE_INFO_new_CRL() -were added to OpenSSL 1.1.1. +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/OSSL_STORE_LOADER.pod b/doc/man3/OSSL_STORE_LOADER.pod index 87c135a1275bab42c4ecff0d362cebbeda98a0b0..15037541145228fb197b709d4b0afa552e1d2a99 100644 --- a/doc/man3/OSSL_STORE_LOADER.pod +++ b/doc/man3/OSSL_STORE_LOADER.pod @@ -250,7 +250,7 @@ OSSL_STORE_LOADER_set_eof(), OSSL_STORE_LOADER_set_close(), OSSL_STORE_LOADER_free(), OSSL_STORE_register_loader(), OSSL_STORE_unregister_loader(), OSSL_STORE_open_fn(), OSSL_STORE_ctrl_fn(), OSSL_STORE_load_fn(), OSSL_STORE_eof_fn() and OSSL_STORE_close_fn() -were added to OpenSSL 1.1.1. +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/OSSL_STORE_SEARCH.pod b/doc/man3/OSSL_STORE_SEARCH.pod index 6d36a190ae5ae0f49ce7417c518f6345c3d30f28..0c2dd2bc24c5eae1c4a4d604539bd9b8a9e03eb9 100644 --- a/doc/man3/OSSL_STORE_SEARCH.pod +++ b/doc/man3/OSSL_STORE_SEARCH.pod @@ -179,7 +179,7 @@ OSSL_STORE_SEARCH_get0_name(), OSSL_STORE_SEARCH_get0_serial(), OSSL_STORE_SEARCH_get0_bytes(), and OSSL_STORE_SEARCH_get0_string() -were added to OpenSSL 1.1.1. +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/OSSL_STORE_expect.pod b/doc/man3/OSSL_STORE_expect.pod index e3f06b55be716066e2bca68e01c01c12d9c71dca..154472a76b51468e1396ec6399cfcbcf39397472 100644 --- a/doc/man3/OSSL_STORE_expect.pod +++ b/doc/man3/OSSL_STORE_expect.pod @@ -65,7 +65,7 @@ L<OSSL_STORE_load(3)> =head1 HISTORY OSSL_STORE_expect(), OSSL_STORE_supports_search() and OSSL_STORE_find() -were added to OpenSSL 1.1.1. +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/OSSL_STORE_open.pod b/doc/man3/OSSL_STORE_open.pod index b1467f4100a71afdebcdbb49a6aaa3db772032d6..1e8ebf7ce1ce91ae88b28a3b3f644fc233f05e95 100644 --- a/doc/man3/OSSL_STORE_open.pod +++ b/doc/man3/OSSL_STORE_open.pod @@ -147,7 +147,7 @@ L<passphrase-encoding(7)> OSSL_STORE_CTX(), OSSL_STORE_post_process_info_fn(), OSSL_STORE_open(), OSSL_STORE_ctrl(), OSSL_STORE_load(), OSSL_STORE_eof() and OSSL_STORE_close() -were added to OpenSSL 1.1.1. +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/PEM_read_bio_PrivateKey.pod b/doc/man3/PEM_read_bio_PrivateKey.pod index 744a46f81ed9362d992b1bbd60c6c5c4d9132b87..7c381e85feff73ed58daa9c08d899859878b085d 100644 --- a/doc/man3/PEM_read_bio_PrivateKey.pod +++ b/doc/man3/PEM_read_bio_PrivateKey.pod @@ -298,71 +298,6 @@ arbitrary data to be passed to the callback by the application B<must> return the number of characters in the passphrase or -1 if an error occurred. -=head1 EXAMPLES - -Although the PEM routines take several arguments in almost all applications -most of them are set to 0 or NULL. - -Read a certificate in PEM format from a BIO: - - X509 *x; - - x = PEM_read_bio_X509(bp, NULL, 0, NULL); - if (x == NULL) - /* Error */ - -Alternative method: - - X509 *x = NULL; - - if (!PEM_read_bio_X509(bp, &x, 0, NULL)) - /* Error */ - -Write a certificate to a BIO: - - if (!PEM_write_bio_X509(bp, x)) - /* Error */ - -Write a private key (using traditional format) to a BIO using -triple DES encryption, the pass phrase is prompted for: - - if (!PEM_write_bio_PrivateKey(bp, key, EVP_des_ede3_cbc(), NULL, 0, 0, NULL)) - /* Error */ - -Write a private key (using PKCS#8 format) to a BIO using triple -DES encryption, using the pass phrase "hello": - - if (!PEM_write_bio_PKCS8PrivateKey(bp, key, EVP_des_ede3_cbc(), - NULL, 0, 0, "hello")) - /* Error */ - -Read a private key from a BIO using a pass phrase callback: - - key = PEM_read_bio_PrivateKey(bp, NULL, pass_cb, "My Private Key"); - if (key == NULL) - /* Error */ - -Skeleton pass phrase callback: - - int pass_cb(char *buf, int size, int rwflag, void *u) - { - - /* We'd probably do something else if 'rwflag' is 1 */ - printf("Enter pass phrase for \"%s\"\n", (char *)u); - - /* get pass phrase, length 'len' into 'tmp' */ - char *tmp = "hello"; - if (tmp == NULL) /* An error occurred */ - return -1; - - size_t len = strlen(tmp); - - if (len > size) - len = size; - memcpy(buf, tmp, len); - return len; - } - =head1 NOTES The old B<PrivateKey> write routines are retained for compatibility. @@ -460,20 +395,85 @@ if an error occurred. The write routines return 1 for success or 0 for failure. -=head1 HISTORY +=head1 EXAMPLES -The old Netscape certificate sequences were no longer documented -in OpenSSL 1.1.0; applications should use the PKCS7 standard instead -as they will be formally deprecated in a future releases. +Although the PEM routines take several arguments in almost all applications +most of them are set to 0 or NULL. + +Read a certificate in PEM format from a BIO: + + X509 *x; + + x = PEM_read_bio_X509(bp, NULL, 0, NULL); + if (x == NULL) + /* Error */ + +Alternative method: + + X509 *x = NULL; + + if (!PEM_read_bio_X509(bp, &x, 0, NULL)) + /* Error */ + +Write a certificate to a BIO: + + if (!PEM_write_bio_X509(bp, x)) + /* Error */ + +Write a private key (using traditional format) to a BIO using +triple DES encryption, the pass phrase is prompted for: + + if (!PEM_write_bio_PrivateKey(bp, key, EVP_des_ede3_cbc(), NULL, 0, 0, NULL)) + /* Error */ + +Write a private key (using PKCS#8 format) to a BIO using triple +DES encryption, using the pass phrase "hello": + + if (!PEM_write_bio_PKCS8PrivateKey(bp, key, EVP_des_ede3_cbc(), + NULL, 0, 0, "hello")) + /* Error */ + +Read a private key from a BIO using a pass phrase callback: + + key = PEM_read_bio_PrivateKey(bp, NULL, pass_cb, "My Private Key"); + if (key == NULL) + /* Error */ + +Skeleton pass phrase callback: + + int pass_cb(char *buf, int size, int rwflag, void *u) + { + + /* We'd probably do something else if 'rwflag' is 1 */ + printf("Enter pass phrase for \"%s\"\n", (char *)u); + + /* get pass phrase, length 'len' into 'tmp' */ + char *tmp = "hello"; + if (tmp == NULL) /* An error occurred */ + return -1; + + size_t len = strlen(tmp); + + if (len > size) + len = size; + memcpy(buf, tmp, len); + return len; + } =head1 SEE ALSO L<EVP_EncryptInit(3)>, L<EVP_BytesToKey(3)>, L<passphrase-encoding(7)> +=head1 HISTORY + +The old Netscape certificate sequences were no longer documented +in OpenSSL 1.1.0; applications should use the PKCS7 standard instead +as they will be formally deprecated in a future releases. + =head1 COPYRIGHT -Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/PEM_read_bio_ex.pod b/doc/man3/PEM_read_bio_ex.pod index e171bff2453a6a5438c0663c7ce90c418e884e35..a16b0ede5a9c3199cc4c49d4cca39e787f707ac7 100644 --- a/doc/man3/PEM_read_bio_ex.pod +++ b/doc/man3/PEM_read_bio_ex.pod @@ -56,7 +56,7 @@ L<PEM(3)> =head1 HISTORY -PEM_read_bio_ex() was added in OpenSSL 1.1.1. +The PEM_read_bio_ex() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/PEM_write_bio_CMS_stream.pod b/doc/man3/PEM_write_bio_CMS_stream.pod index c73fafd44bdcf4b2940b01c0fee56c8e4268b527..bc3ee167e0c4679d9f4eba5508a43a3c854baf62 100644 --- a/doc/man3/PEM_write_bio_CMS_stream.pod +++ b/doc/man3/PEM_write_bio_CMS_stream.pod @@ -36,7 +36,7 @@ L<i2d_CMS_bio_stream(3)> =head1 HISTORY -PEM_write_bio_CMS_stream() was added to OpenSSL 1.0.0 +The PEM_write_bio_CMS_stream() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/PEM_write_bio_PKCS7_stream.pod b/doc/man3/PEM_write_bio_PKCS7_stream.pod index 77f97aaa2bbc8e4a160cc9fef34b730c11835d29..32b7ef2ef75461378cad58dcf2751df7a2a77608 100644 --- a/doc/man3/PEM_write_bio_PKCS7_stream.pod +++ b/doc/man3/PEM_write_bio_PKCS7_stream.pod @@ -35,7 +35,7 @@ L<i2d_PKCS7_bio_stream(3)> =head1 HISTORY -PEM_write_bio_PKCS7_stream() was added to OpenSSL 1.0.0 +The PEM_write_bio_PKCS7_stream() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/PKCS12_parse.pod b/doc/man3/PKCS12_parse.pod index 747a36f5ed0488b705358e6c62729450baba09c2..208644c019bf0bc123332c5f3a3f83c05aac3888 100644 --- a/doc/man3/PKCS12_parse.pod +++ b/doc/man3/PKCS12_parse.pod @@ -8,7 +8,8 @@ PKCS12_parse - parse a PKCS#12 structure #include <openssl/pkcs12.h> -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca); + int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, + STACK_OF(X509) **ca); =head1 DESCRIPTION diff --git a/doc/man3/PKCS7_sign.pod b/doc/man3/PKCS7_sign.pod index c1df5f19a0702fe8b84ae500e1065fb2480de300..6fd54777d1f16c39c4134df362113d32f7e6bcbb 100644 --- a/doc/man3/PKCS7_sign.pod +++ b/doc/man3/PKCS7_sign.pod @@ -108,9 +108,9 @@ L<ERR_get_error(3)>, L<PKCS7_verify(3)> =head1 HISTORY The B<PKCS7_PARTIAL> flag, and the ability for B<certs>, B<signcert>, -and B<pkey> parameters to be B<NULL> to be was added in OpenSSL 1.0.0 +and B<pkey> parameters to be B<NULL> were added in OpenSSL 1.0.0. -The B<PKCS7_STREAM> flag was added in OpenSSL 1.0.0 +The B<PKCS7_STREAM> flag was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/PKCS7_sign_add_signer.pod b/doc/man3/PKCS7_sign_add_signer.pod index 2bc6c40bd2ea64af835c5840a4a16cde5fce0910..d4a27a2f619461f3952bc0679f5578f23b5f4f3b 100644 --- a/doc/man3/PKCS7_sign_add_signer.pod +++ b/doc/man3/PKCS7_sign_add_signer.pod @@ -83,7 +83,7 @@ L<PKCS7_final(3)>, =head1 HISTORY -PPKCS7_sign_add_signer() was added to OpenSSL 1.0.0 +The PPKCS7_sign_add_signer() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/RAND_DRBG_generate.pod b/doc/man3/RAND_DRBG_generate.pod index b39ee93f51421bf370fb5b4a427398ca1febab42..bee2d6c176ef4bcb33030eeae8be0e9231750d7b 100644 --- a/doc/man3/RAND_DRBG_generate.pod +++ b/doc/man3/RAND_DRBG_generate.pod @@ -65,10 +65,6 @@ Since the default DRBG implementation does not have access to such an approved entropy source, a request for prediction resistance will always fail. In other words, prediction resistance is currently not supported yet by the DRBG. -=head1 HISTORY - -The RAND_DRBG functions were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<RAND_bytes(3)>, @@ -76,9 +72,13 @@ L<RAND_DRBG_set_reseed_interval(3)>, L<RAND_DRBG_set_reseed_time_interval(3)>, L<RAND_DRBG(7)> +=head1 HISTORY + +The RAND_DRBG functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_DRBG_get0_master.pod b/doc/man3/RAND_DRBG_get0_master.pod index c958bf20ec0fd254c233b00bb7a714072ff45fa3..55d1eab7c21f3755af93acd6540856d057f5b80d 100644 --- a/doc/man3/RAND_DRBG_get0_master.pod +++ b/doc/man3/RAND_DRBG_get0_master.pod @@ -53,11 +53,6 @@ During initialization, it is possible to change the reseed interval and reseed time interval. It is also possible to exchange the reseeding callbacks entirely. - -=head1 HISTORY - -The RAND_DRBG functions were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<RAND_DRBG_set_callbacks(3)>, @@ -68,9 +63,13 @@ L<RAND_DRBG_set_callbacks(3)>, L<RAND_DRBG_generate(3)>, L<RAND_DRBG(7)> +=head1 HISTORY + +The RAND_DRBG functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_DRBG_new.pod b/doc/man3/RAND_DRBG_new.pod index dcd7a944190f3d72a31b79b5443ae1e02b1906b1..5da91be9dfabb79085db27de54de20965b3811b1 100644 --- a/doc/man3/RAND_DRBG_new.pod +++ b/doc/man3/RAND_DRBG_new.pod @@ -104,10 +104,6 @@ To ensure that they are applied to the global and thread-local DRBG instances RAND_DRBG_set_defaults() before creating any thread and before calling any cryptographic routines that obtain random data directly or indirectly. -=head1 HISTORY - -The RAND_DRBG functions were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<OPENSSL_zalloc(3)>, @@ -115,9 +111,13 @@ L<OPENSSL_secure_zalloc(3)>, L<RAND_DRBG_generate(3)>, L<RAND_DRBG(7)> +=head1 HISTORY + +The RAND_DRBG functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_DRBG_reseed.pod b/doc/man3/RAND_DRBG_reseed.pod index da3a40be4424865366288ef56911949a629b09ec..3610c1301e09c39bbc2b1853edcd50f4e56f8dd3 100644 --- a/doc/man3/RAND_DRBG_reseed.pod +++ b/doc/man3/RAND_DRBG_reseed.pod @@ -13,7 +13,8 @@ RAND_DRBG_set_reseed_defaults #include <openssl/rand_drbg.h> int RAND_DRBG_reseed(RAND_DRBG *drbg, - const unsigned char *adin, size_t adinlen); + const unsigned char *adin, size_t adinlen, + int prediction_resistance); int RAND_DRBG_set_reseed_interval(RAND_DRBG *drbg, unsigned int interval); @@ -37,6 +38,10 @@ and mixing in the specified additional data provided in the buffer B<adin> of length B<adinlen>. The additional data can be omitted by setting B<adin> to NULL and B<adinlen> to 0. +An immediate reseeding from a live entropy source can be requested by setting +the B<prediction_resistance> flag to 1. +This feature is not implemented yet, so reseeding with prediction resistance +requested will always fail. RAND_DRBG_set_reseed_interval() sets the reseed interval of the B<drbg>, which is the maximum allowed number @@ -88,10 +93,6 @@ To ensure that they are applied to the global and thread-local DRBG instances RAND_DRBG_set_reseed_defaults() before creating any thread and before calling any cryptographic routines that obtain random data directly or indirectly. -=head1 HISTORY - -The RAND_DRBG functions were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<RAND_DRBG_generate(3)>, @@ -99,9 +100,13 @@ L<RAND_DRBG_bytes(3)>, L<RAND_DRBG_set_callbacks(3)>. L<RAND_DRBG(7)> +=head1 HISTORY + +The RAND_DRBG functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_DRBG_set_callbacks.pod b/doc/man3/RAND_DRBG_set_callbacks.pod index a927d6a7dacc9006308ec7d8e0348a9284aac9f2..3da051e696aa0515a21a88abcca6d53ba753b16b 100644 --- a/doc/man3/RAND_DRBG_set_callbacks.pod +++ b/doc/man3/RAND_DRBG_set_callbacks.pod @@ -124,20 +124,19 @@ In this case the DRBG will automatically request an extra amount of entropy utilize for the nonce, following the recommendations of [NIST SP 800-90A Rev. 1], section 8.6.7. - -=head1 HISTORY - -The RAND_DRBG functions were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<RAND_DRBG_new(3)>, L<RAND_DRBG_reseed(3)>, L<RAND_DRBG(7)> +=head1 HISTORY + +The RAND_DRBG functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_add.pod b/doc/man3/RAND_add.pod index b6753fd2ed0b1b0cac0885303226b90d76ed0622..4ba6ff977dd1307ad2fc855a1537020c1462ccaa 100644 --- a/doc/man3/RAND_add.pod +++ b/doc/man3/RAND_add.pod @@ -80,11 +80,6 @@ RAND_event() returns RAND_status(). The other functions do not return values. -=head1 HISTORY - -RAND_event() and RAND_screen() were deprecated in OpenSSL 1.1.0 and should -not be used. - =head1 SEE ALSO L<RAND_bytes(3)>, @@ -92,9 +87,14 @@ L<RAND_egd(3)>, L<RAND_load_file(3)>, L<RAND(7)> +=head1 HISTORY + +RAND_event() and RAND_screen() were deprecated in OpenSSL 1.1.0 and should +not be used. + =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_bytes.pod b/doc/man3/RAND_bytes.pod index fca1ad6961debc193f2525c2f5c13161df702760..e2265d170a6198c8a9359d9dedb0c95ccfe40025 100644 --- a/doc/man3/RAND_bytes.pod +++ b/doc/man3/RAND_bytes.pod @@ -43,6 +43,15 @@ return 1 on success, -1 if not supported by the current RAND method, or 0 on other failure. The error code can be obtained by L<ERR_get_error(3)>. +=head1 SEE ALSO + +L<RAND_add(3)>, +L<RAND_bytes(3)>, +L<RAND_priv_bytes(3)>, +L<ERR_get_error(3)>, +L<RAND(7)>, +L<RAND_DRBG(7)> + =head1 HISTORY =over 2 @@ -53,22 +62,13 @@ RAND_pseudo_bytes() was deprecated in OpenSSL 1.1.0; use RAND_bytes() instead. =item * -RAND_priv_bytes() was added in OpenSSL 1.1.1. +The RAND_priv_bytes() function was added in OpenSSL 1.1.1. =back -=head1 SEE ALSO - -L<RAND_add(3)>, -L<RAND_bytes(3)>, -L<RAND_priv_bytes(3)>, -L<ERR_get_error(3)>, -L<RAND(7)>, -L<RAND_DRBG(7)> - =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RAND_cleanup.pod b/doc/man3/RAND_cleanup.pod index 3859ce343aa8d298e56e72bb97c72628569ecb19..e5187532222d19835270f756d2406765c1cc762a 100644 --- a/doc/man3/RAND_cleanup.pod +++ b/doc/man3/RAND_cleanup.pod @@ -23,18 +23,18 @@ L<OPENSSL_init_crypto(3)>. RAND_cleanup() returns no value. +=head1 SEE ALSO + +L<RAND(7)> + =head1 HISTORY RAND_cleanup() was deprecated in OpenSSL 1.1.0; do not use it. See L<OPENSSL_init_crypto(3)> -=head1 SEE ALSO - -L<RAND(7)> - =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RIPEMD160_Init.pod b/doc/man3/RIPEMD160_Init.pod index 77ac4fbc122f0f63ad6e8be175e7225fd1e90936..d3cdf930d88ebc1910f2cd7d1a720a46f22ec059 100644 --- a/doc/man3/RIPEMD160_Init.pod +++ b/doc/man3/RIPEMD160_Init.pod @@ -13,7 +13,7 @@ RIPEMD-160 hash function unsigned char *md); int RIPEMD160_Init(RIPEMD160_CTX *c); - int RIPEMD160_Update(RIPEMD_CTX *c, const void *data, unsigned long len); + int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, unsigned long len); int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); =head1 DESCRIPTION @@ -61,7 +61,7 @@ L<EVP_DigestInit(3)> =head1 COPYRIGHT -Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RSA_get0_key.pod b/doc/man3/RSA_get0_key.pod index cb7d0f66db10b2a984599b7b8e8e50ed4ec85cb2..358c2de256f935b41be0dc9f3af346340630c805 100644 --- a/doc/man3/RSA_get0_key.pod +++ b/doc/man3/RSA_get0_key.pod @@ -157,6 +157,7 @@ L<RSA_new(3)>, L<RSA_size(3)> =head1 HISTORY +The RSA_get_multi_prime_extra_count(), RSA_get0_multi_prime_factors(), RSA_get0_multi_prime_crt_params(), RSA_set0_multi_prime_params(), and RSA_get_version() functions were added in OpenSSL 1.1.1. diff --git a/doc/man3/RSA_padding_add_PKCS1_type_1.pod b/doc/man3/RSA_padding_add_PKCS1_type_1.pod index 93911cac97d6f6e405ba0e3b541ad9b07d8d143d..20926003d876aadf7d6f044a65b22e089a0081ad 100644 --- a/doc/man3/RSA_padding_add_PKCS1_type_1.pod +++ b/doc/man3/RSA_padding_add_PKCS1_type_1.pod @@ -5,6 +5,7 @@ RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1, RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2, RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP, +RSA_padding_add_PKCS1_OAEP_mgf1, RSA_padding_check_PKCS1_OAEP_mgf1, RSA_padding_add_SSLv23, RSA_padding_check_SSLv23, RSA_padding_add_none, RSA_padding_check_none - asymmetric encryption padding @@ -14,35 +15,46 @@ padding #include <openssl/rsa.h> int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - unsigned char *f, int fl); + const unsigned char *f, int fl); int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - unsigned char *f, int fl, int rsa_len); + const unsigned char *f, int fl, int rsa_len); int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - unsigned char *f, int fl); + const unsigned char *f, int fl); int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - unsigned char *f, int fl, int rsa_len); + const unsigned char *f, int fl, int rsa_len); int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - unsigned char *f, int fl, unsigned char *p, int pl); + const unsigned char *f, int fl, + const unsigned char *p, int pl); int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - unsigned char *f, int fl, int rsa_len, - unsigned char *p, int pl); + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl); + + int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *f, int fl, + const unsigned char *p, int pl, + const EVP_MD *md, const EVP_MD *mgf1md); + + int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl, + const EVP_MD *md, const EVP_MD *mgf1md); int RSA_padding_add_SSLv23(unsigned char *to, int tlen, - unsigned char *f, int fl); + const unsigned char *f, int fl); int RSA_padding_check_SSLv23(unsigned char *to, int tlen, - unsigned char *f, int fl, int rsa_len); + const unsigned char *f, int fl, int rsa_len); int RSA_padding_add_none(unsigned char *to, int tlen, - unsigned char *f, int fl); + const unsigned char *f, int fl); int RSA_padding_check_none(unsigned char *to, int tlen, - unsigned char *f, int fl, int rsa_len); + const unsigned char *f, int fl, int rsa_len); =head1 DESCRIPTION @@ -98,6 +110,10 @@ at B<to>. For RSA_padding_xxx_OAEP(), B<p> points to the encoding parameter of length B<pl>. B<p> may be B<NULL> if B<pl> is 0. +For RSA_padding_xxx_OAEP_mgf1(), B<md> points to the md hash, +if B<md> is B<NULL> that means md=sha1, and B<mgf1md> points to +the mgf1 hash, if B<mgf1md> is B<NULL> that means mgf1md=md. + =head1 RETURN VALUES The RSA_padding_add_xxx() functions return 1 on success, 0 on error. @@ -107,10 +123,21 @@ L<ERR_get_error(3)>. =head1 WARNING -The RSA_padding_check_PKCS1_type_2() padding check leaks timing +The result of RSA_padding_check_PKCS1_type_2() is a very sensitive information which can potentially be used to mount a Bleichenbacher padding oracle attack. This is an inherent weakness in the PKCS #1 -v1.5 padding design. Prefer PKCS1_OAEP padding. +v1.5 padding design. Prefer PKCS1_OAEP padding. If that is not +possible, the result of RSA_padding_check_PKCS1_type_2() should be +checked in constant time if it matches the expected length of the +plaintext and additionally some application specific consistency +checks on the plaintext need to be performed in constant time. +If the plaintext is rejected it must be kept secret which of the +checks caused the application to reject the message. +Do not remove the zero-padding from the decrypted raw RSA data +which was computed by RSA_private_decrypt() with B<RSA_NO_PADDING>, +as this would create a small timing side channel which could be +used to mount a Bleichenbacher attack against any padding mode +including PKCS1_OAEP. =head1 SEE ALSO @@ -120,7 +147,7 @@ L<RSA_sign(3)>, L<RSA_verify(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RSA_public_encrypt.pod b/doc/man3/RSA_public_encrypt.pod index 91c176e24c5234f7994cf26561da077cff54e9f9..d91c6884b1d5bb5f1e2d85f5a5a2d4de6bd4f864 100644 --- a/doc/man3/RSA_public_encrypt.pod +++ b/doc/man3/RSA_public_encrypt.pod @@ -8,10 +8,10 @@ RSA_public_encrypt, RSA_private_decrypt - RSA public key cryptography #include <openssl/rsa.h> - int RSA_public_encrypt(int flen, unsigned char *from, + int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding); - int RSA_private_decrypt(int flen, unsigned char *from, + int RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, RSA *rsa, int padding); =head1 DESCRIPTION @@ -27,6 +27,8 @@ B<padding> denotes one of the following modes: =item RSA_PKCS1_PADDING PKCS #1 v1.5 padding. This currently is the most widely used mode. +However, it is highly recommended to use RSA_PKCS1_OAEP_PADDING in +new applications. SEE WARNING BELOW. =item RSA_PKCS1_OAEP_PADDING @@ -46,23 +48,35 @@ Encrypting user data directly with RSA is insecure. =back -B<flen> must be less than RSA_size(B<rsa>) - 11 for the PKCS #1 v1.5 -based padding modes, less than RSA_size(B<rsa>) - 41 for +B<flen> must not be more than RSA_size(B<rsa>) - 11 for the PKCS #1 v1.5 +based padding modes, not more than RSA_size(B<rsa>) - 42 for RSA_PKCS1_OAEP_PADDING and exactly RSA_size(B<rsa>) for RSA_NO_PADDING. -The random number generator must be seeded prior to calling -RSA_public_encrypt(). +When a padding mode other than RSA_NO_PADDING is in use, then +RSA_public_encrypt() will include some random bytes into the ciphertext +and therefore the ciphertext will be different each time, even if the +plaintext and the public key are exactly identical. +The returned ciphertext in B<to> will always be zero padded to exactly +RSA_size(B<rsa>) bytes. +B<to> and B<from> may overlap. RSA_private_decrypt() decrypts the B<flen> bytes at B<from> using the -private key B<rsa> and stores the plaintext in B<to>. B<to> must point -to a memory section large enough to hold the decrypted data (which is -smaller than RSA_size(B<rsa>)). B<padding> is the padding mode that -was used to encrypt the data. +private key B<rsa> and stores the plaintext in B<to>. B<flen> should +be equal to RSA_size(B<rsa>) but may be smaller, when leading zero +bytes are in the ciphertext. Those are not important and may be removed, +but RSA_public_encrypt() does not do that. B<to> must point +to a memory section large enough to hold the maximal possible decrypted +data (which is equal to RSA_size(B<rsa>) for RSA_NO_PADDING, +RSA_size(B<rsa>) - 11 for the PKCS #1 v1.5 based padding modes and +RSA_size(B<rsa>) - 42 for RSA_PKCS1_OAEP_PADDING). +B<padding> is the padding mode that was used to encrypt the data. +B<to> and B<from> may overlap. =head1 RETURN VALUES RSA_public_encrypt() returns the size of the encrypted data (i.e., RSA_size(B<rsa>)). RSA_private_decrypt() returns the size of the -recovered plaintext. +recovered plaintext. A return value of 0 is not an error and +means only that the plaintext was empty. On error, -1 is returned; the error codes can be obtained by L<ERR_get_error(3)>. @@ -85,7 +99,7 @@ L<RSA_size(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/RSA_size.pod b/doc/man3/RSA_size.pod index 022620078a7c919591087e7ddfe9491595018f42..99498650866f3fd2615fbc3783f37347def3f115 100644 --- a/doc/man3/RSA_size.pod +++ b/doc/man3/RSA_size.pod @@ -41,7 +41,7 @@ L<BN_num_bits(3)> =head1 HISTORY -RSA_bits() was added in OpenSSL 1.1.0. +The RSA_bits() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CIPHER_get_name.pod b/doc/man3/SSL_CIPHER_get_name.pod index af59b58946cc6865e1b9987acbd13e2523857ac1..26edae3d80be93bafb874dbad1cb824e251535b9 100644 --- a/doc/man3/SSL_CIPHER_get_name.pod +++ b/doc/man3/SSL_CIPHER_get_name.pod @@ -124,7 +124,10 @@ Textual representation of the cipher name. =item <protocol version> -Protocol version, such as B<TLSv1.2>, when the cipher was first defined. +The minimum protocol version that the ciphersuite supports, such as B<TLSv1.2>. +Note that this is not always the same as the protocol version in which the +ciphersuite was first defined because some ciphersuites are backwards compatible +with earlier protocol versions. =item Kx=<key exchange> @@ -177,30 +180,30 @@ SSL_CIPHER_get_id() returns a 4-byte integer representing the OpenSSL-specific I SSL_CIPHER_get_protocol_id() returns a 2-byte integer representing the TLS protocol-specific ID. +=head1 SEE ALSO + +L<ssl(7)>, L<SSL_get_current_cipher(3)>, +L<SSL_get_ciphers(3)>, L<ciphers(1)> + =head1 HISTORY -SSL_CIPHER_get_version() was updated to always return the correct protocol -string in OpenSSL 1.1.0. +The SSL_CIPHER_get_version() function was updated to always return the +correct protocol string in OpenSSL 1.1.0. -SSL_CIPHER_description() was changed to return B<NULL> on error, +The SSL_CIPHER_description() function was changed to return B<NULL> on error, rather than a fixed string, in OpenSSL 1.1.0. -SSL_CIPHER_get_handshake_digest() was added in OpenSSL 1.1.1. +The SSL_CIPHER_get_handshake_digest() function was added in OpenSSL 1.1.1. -SSL_CIPHER_standard_name() was globally available in OpenSSL 1.1.1. Before -OpenSSL 1.1.1, tracing (B<enable-ssl-trace> argument to Configure) was +The SSL_CIPHER_standard_name() function was globally available in OpenSSL 1.1.1. + Before OpenSSL 1.1.1, tracing (B<enable-ssl-trace> argument to Configure) was required to enable this function. -OPENSSL_cipher_name() was added in OpenSSL 1.1.1. - -=head1 SEE ALSO - -L<ssl(7)>, L<SSL_get_current_cipher(3)>, -L<SSL_get_ciphers(3)>, L<ciphers(1)> +The OPENSSL_cipher_name() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_COMP_add_compression_method.pod b/doc/man3/SSL_COMP_add_compression_method.pod index 1dc8eb149947d94ebff0e825071a226cbff1fd9d..76c036e5ce44ab7b2e81d20e3d2135bd4acd8772 100644 --- a/doc/man3/SSL_COMP_add_compression_method.pod +++ b/doc/man3/SSL_COMP_add_compression_method.pod @@ -91,9 +91,8 @@ L<ssl(7)> =head1 HISTORY -SSL_COMP_free_compression_methods() was deprecated in OpenSSL 1.1.0; -do not use it. -SSL_COMP_get0_name() and SSL_comp_get_id() were added in OpenSSL 1.1.0d. +The SSL_COMP_free_compression_methods() function was deprecated in OpenSSL 1.1.0. +The SSL_COMP_get0_name() and SSL_comp_get_id() functions were added in OpenSSL 1.1.0d. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_CTX_new.pod b/doc/man3/SSL_CONF_CTX_new.pod index 79f0bbc7dd5fbea4962b65d31dba5120d328f852..df5492f79ba8c24e2c356605e5fd06696f85694b 100644 --- a/doc/man3/SSL_CONF_CTX_new.pod +++ b/doc/man3/SSL_CONF_CTX_new.pod @@ -36,7 +36,7 @@ L<SSL_CONF_cmd_argv(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2 +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_CTX_set1_prefix.pod b/doc/man3/SSL_CONF_CTX_set1_prefix.pod index d9864702547046177b37de75f70937674341a965..b2eff5bf519f5c07e8478266e12fe65d35ac21bf 100644 --- a/doc/man3/SSL_CONF_CTX_set1_prefix.pod +++ b/doc/man3/SSL_CONF_CTX_set1_prefix.pod @@ -44,7 +44,7 @@ L<SSL_CONF_cmd_argv(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2 +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_CTX_set_flags.pod b/doc/man3/SSL_CONF_CTX_set_flags.pod index 766d984626a996a12a31d122eff9032edd54cb63..d6f6ff5897583f90548577eb8804042cf7ca5960 100644 --- a/doc/man3/SSL_CONF_CTX_set_flags.pod +++ b/doc/man3/SSL_CONF_CTX_set_flags.pod @@ -70,7 +70,7 @@ L<SSL_CONF_cmd_argv(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2 +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod b/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod index 7e4120f7ce5773d14c523445b351669a85d1b0e1..3b001d1686f46aa02ad2d508102fecc7c57fb4b6 100644 --- a/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod +++ b/doc/man3/SSL_CONF_CTX_set_ssl_ctx.pod @@ -42,7 +42,7 @@ L<SSL_CONF_cmd_argv(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2 +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CONF_cmd.pod b/doc/man3/SSL_CONF_cmd.pod index b399bcf4990ca18a142330ca070fcd51d0ef5302..7f2449e379b932e3ce14156215c59fae6c7cbb09 100644 --- a/doc/man3/SSL_CONF_cmd.pod +++ b/doc/man3/SSL_CONF_cmd.pod @@ -308,11 +308,6 @@ Attempts to pad TLSv1.3 records so that they are a multiple of B<value> in length on send. A B<value> of 0 or 1 turns off padding. Otherwise, the B<value> must be >1 or <=16384. -=item B<NoRenegotiation> - -Disables all attempts at renegotiation in TLSv1.2 and earlier, same as setting -B<SSL_OP_NO_RENEGOTIATION>. - =item B<SignatureAlgorithms> This sets the supported signature algorithms for TLSv1.2 and TLSv1.3. @@ -456,6 +451,9 @@ Only used by servers. B<NoResumptionOnRenegotiation>: set B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> flag. Only used by servers. +B<NoRenegotiation>: disables all attempts at renegotiation in TLSv1.2 and +earlier, same as setting B<SSL_OP_NO_RENEGOTIATION>. + B<UnsafeLegacyRenegotiation>: permits the use of unsafe legacy renegotiation. Equivalent to B<SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION>. @@ -596,6 +594,23 @@ checking or translation of the command value. For example if the return value is B<SSL_CONF_TYPE_FILE> an application could translate a relative pathname to an absolute pathname. +=head1 RETURN VALUES + +SSL_CONF_cmd() returns 1 if the value of B<cmd> is recognised and B<value> is +B<NOT> used and 2 if both B<cmd> and B<value> are used. In other words it +returns the number of arguments processed. This is useful when processing +command lines. + +A return value of -2 means B<cmd> is not recognised. + +A return value of -3 means B<cmd> is recognised and the command requires a +value but B<value> is NULL. + +A return code of 0 indicates that both B<cmd> and B<value> are valid but an +error occurred attempting to perform the operation: for example due to an +error in the syntax of B<value> in this case the error queue may provide +additional information. + =head1 EXAMPLES Set supported signature algorithms: @@ -642,23 +657,6 @@ Set supported curves to P-256, P-384: SSL_CONF_cmd(ctx, "Curves", "P-256:P-384"); -=head1 RETURN VALUES - -SSL_CONF_cmd() returns 1 if the value of B<cmd> is recognised and B<value> is -B<NOT> used and 2 if both B<cmd> and B<value> are used. In other words it -returns the number of arguments processed. This is useful when processing -command lines. - -A return value of -2 means B<cmd> is not recognised. - -A return value of -3 means B<cmd> is recognised and the command requires a -value but B<value> is NULL. - -A return code of 0 indicates that both B<cmd> and B<value> are valid but an -error occurred attempting to perform the operation: for example due to an -error in the syntax of B<value> in this case the error queue may provide -additional information. - =head1 SEE ALSO L<SSL_CONF_CTX_new(3)>, @@ -670,12 +668,12 @@ L<SSL_CTX_set_options(3)> =head1 HISTORY -SSL_CONF_cmd() was first added to OpenSSL 1.0.2 +The SSL_CONF_cmd() function was added in OpenSSL 1.0.2. -B<SSL_OP_NO_SSL2> doesn't have effect since 1.1.0, but the macro is retained -for backwards compatibility. +The B<SSL_OP_NO_SSL2> option doesn't have effect since 1.1.0, but the macro +is retained for backwards compatibility. -B<SSL_CONF_TYPE_NONE> was first added to OpenSSL 1.1.0. In earlier versions of +The B<SSL_CONF_TYPE_NONE> was added in OpenSSL 1.1.0. In earlier versions of OpenSSL passing a command which didn't take an argument would return B<SSL_CONF_TYPE_UNKNOWN>. @@ -685,7 +683,7 @@ B<AllowNoDHEKEX> and B<PrioritizeChaCha> were added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2012-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2012-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CONF_cmd_argv.pod b/doc/man3/SSL_CONF_cmd_argv.pod index 567fa5a5084f9d2b5c92f92740dd434c3be99794..130814803d86837f4468cd58c5eba32ec81e610d 100644 --- a/doc/man3/SSL_CONF_cmd_argv.pod +++ b/doc/man3/SSL_CONF_cmd_argv.pod @@ -37,7 +37,7 @@ L<SSL_CONF_cmd(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2 +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_add1_chain_cert.pod b/doc/man3/SSL_CTX_add1_chain_cert.pod index 24730024f857ce3baddadf6ea4973d12f0b93ec5..8fe8a7d5e18e9ef396466e460950be0b3a1cb55e 100644 --- a/doc/man3/SSL_CTX_add1_chain_cert.pod +++ b/doc/man3/SSL_CTX_add1_chain_cert.pod @@ -144,7 +144,7 @@ L<SSL_CTX_add_extra_chain_cert(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2. +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_config.pod b/doc/man3/SSL_CTX_config.pod index 5b2aed76c28370dde56243f95fc17bda85009bd3..90d86746cec19205a10e824b535af47281b06234 100644 --- a/doc/man3/SSL_CTX_config.pod +++ b/doc/man3/SSL_CTX_config.pod @@ -77,7 +77,7 @@ L<CONF_modules_load_file(3)> =head1 HISTORY -SSL_CTX_config() and SSL_config() were first added to OpenSSL 1.1.0 +The SSL_CTX_config() and SSL_config() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_dane_enable.pod b/doc/man3/SSL_CTX_dane_enable.pod index d767bb296e83b028ff3cca61b162a78096e16fb0..d1b3c1aad7d3f98df6bb0f122d5e0738e9039925 100644 --- a/doc/man3/SSL_CTX_dane_enable.pod +++ b/doc/man3/SSL_CTX_dane_enable.pod @@ -368,7 +368,7 @@ L<EVP_PKEY_free(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.1.0. +These functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_get0_param.pod b/doc/man3/SSL_CTX_get0_param.pod index 6b9373745880623bb63fe5c42e5da1937f80f2e5..8b99dc330ad958164b424772aea58620c5ab69ed 100644 --- a/doc/man3/SSL_CTX_get0_param.pod +++ b/doc/man3/SSL_CTX_get0_param.pod @@ -50,7 +50,7 @@ L<X509_VERIFY_PARAM_set_flags(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2. +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_load_verify_locations.pod b/doc/man3/SSL_CTX_load_verify_locations.pod index a96aafed5f766acd8f6918aa1e027ada2b14e335..b16271bfaa19005793f942831e48d56cb866fbab 100644 --- a/doc/man3/SSL_CTX_load_verify_locations.pod +++ b/doc/man3/SSL_CTX_load_verify_locations.pod @@ -100,23 +100,6 @@ with different expiration dates. If a "certificate expired" verification error occurs, no other certificate will be searched. Make sure to not have expired certificates mixed with valid ones. -=head1 EXAMPLES - -Generate a CA certificate file with descriptive text from the CA certificates -ca1.pem ca2.pem ca3.pem: - - #!/bin/sh - rm CAfile.pem - for i in ca1.pem ca2.pem ca3.pem ; do - openssl x509 -in $i -text >> CAfile.pem - done - -Prepare the directory /some/where/certs containing several CA certificates -for use as B<CApath>: - - cd /some/where/certs - c_rehash . - =head1 RETURN VALUES For SSL_CTX_load_verify_locations the following return values can occur: @@ -139,6 +122,23 @@ SSL_CTX_set_default_verify_paths(), SSL_CTX_set_default_verify_dir() and SSL_CTX_set_default_verify_file() all return 1 on success or 0 on failure. A missing default location is still treated as a success. +=head1 EXAMPLES + +Generate a CA certificate file with descriptive text from the CA certificates +ca1.pem ca2.pem ca3.pem: + + #!/bin/sh + rm CAfile.pem + for i in ca1.pem ca2.pem ca3.pem ; do + openssl x509 -in $i -text >> CAfile.pem + done + +Prepare the directory /some/where/certs containing several CA certificates +for use as B<CApath>: + + cd /some/where/certs + c_rehash . + =head1 SEE ALSO L<ssl(7)>, @@ -151,7 +151,7 @@ L<SSL_CTX_set_client_CA_list(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_new.pod b/doc/man3/SSL_CTX_new.pod index d07834151eb70715159bd4b4e8cefd1bc097bc37..df25a6f657fd9be1f5768ee57ea928cff448a97d 100644 --- a/doc/man3/SSL_CTX_new.pod +++ b/doc/man3/SSL_CTX_new.pod @@ -190,6 +190,11 @@ SSL_CTX_up_ref() returns 1 for success and 0 for failure. =back +=head1 SEE ALSO + +L<SSL_CTX_set_options(3)>, L<SSL_CTX_free(3)>, L<SSL_accept(3)>, +L<SSL_CTX_set_min_proto_version(3)>, L<ssl(7)>, L<SSL_set_connect_state(3)> + =head1 HISTORY Support for SSLv2 and the corresponding SSLv2_method(), @@ -198,18 +203,13 @@ removed in OpenSSL 1.1.0. SSLv23_method(), SSLv23_server_method() and SSLv23_client_method() were deprecated and the preferred TLS_method(), TLS_server_method() -and TLS_client_method() functions were introduced in OpenSSL 1.1.0. +and TLS_client_method() functions were added in OpenSSL 1.1.0. All version-specific methods were deprecated in OpenSSL 1.1.0. -=head1 SEE ALSO - -L<SSL_CTX_set_options(3)>, L<SSL_CTX_free(3)>, L<SSL_accept(3)>, -L<SSL_CTX_set_min_proto_version(3)>, L<ssl(7)>, L<SSL_set_connect_state(3)> - =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set0_CA_list.pod b/doc/man3/SSL_CTX_set0_CA_list.pod index d7ed89775b2e4c36db24e42a8f7f7b96089a7e55..b483f83b71825a28bc5b4d185953fbc058427788 100644 --- a/doc/man3/SSL_CTX_set0_CA_list.pod +++ b/doc/man3/SSL_CTX_set0_CA_list.pod @@ -101,7 +101,7 @@ set CA names using the "client CA list" functions and then get them using the used on the server side then the "client CA list" functions take precedence. Typically, on the server side, the "client CA list " functions should be used in preference. As noted above in most cases it is not necessary to set CA names on -the client side. +the client side. SSL_CTX_set0_CA_list() sets the list of CAs to be sent to the peer to B<name_list>. Ownership of B<name_list> is transferred to B<ctx> and @@ -178,7 +178,7 @@ L<SSL_CTX_load_verify_locations(3)> =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set1_curves.pod b/doc/man3/SSL_CTX_set1_curves.pod index 7dca0e0161d9097a3456dfc53d7e823ade5acc6d..6c3d4fc9e9125156b22059bcfc9620e19f1d3a7a 100644 --- a/doc/man3/SSL_CTX_set1_curves.pod +++ b/doc/man3/SSL_CTX_set1_curves.pod @@ -97,8 +97,8 @@ L<SSL_CTX_add_extra_chain_cert(3)> =head1 HISTORY -The curve functions were first added to OpenSSL 1.0.2. The equivalent group -functions were first added to OpenSSL 1.1.1. +The curve functions were added in OpenSSL 1.0.2. The equivalent group +functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set1_sigalgs.pod b/doc/man3/SSL_CTX_set1_sigalgs.pod index 93d5320d965a4e8bd42040b1fccce7ebb31a27b0..1c462a95b6ae27faea80fdf202f3ae5470c3fc2a 100644 --- a/doc/man3/SSL_CTX_set1_sigalgs.pod +++ b/doc/man3/SSL_CTX_set1_sigalgs.pod @@ -83,6 +83,10 @@ be used with the B<_list> forms of the API. The use of MD5 as a digest is strongly discouraged due to security weaknesses. +=head1 RETURN VALUES + +All these functions return 1 for success and 0 for failure. + =head1 EXAMPLES Set supported signature algorithms to SHA256 with ECDSA and SHA256 with RSA @@ -97,10 +101,6 @@ using a string: SSL_CTX_set1_sigalgs_list(ctx, "ECDSA+SHA256:RSA+SHA256"); -=head1 RETURN VALUES - -All these functions return 1 for success and 0 for failure. - =head1 SEE ALSO L<ssl(7)>, L<SSL_get_shared_sigalgs(3)>, @@ -108,7 +108,7 @@ L<SSL_CONF_CTX_new(3)> =head1 COPYRIGHT -Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set1_verify_cert_store.pod b/doc/man3/SSL_CTX_set1_verify_cert_store.pod index bfe8b70af902266517aa656a36701792b9fad2f1..b42f2a499f138bd7ea81cd7d30f732eca6e22f3b 100644 --- a/doc/man3/SSL_CTX_set1_verify_cert_store.pod +++ b/doc/man3/SSL_CTX_set1_verify_cert_store.pod @@ -86,7 +86,7 @@ L<SSL_build_cert_chain(3)> =head1 HISTORY -These functions were first added to OpenSSL 1.0.2. +These functions were added in OpenSSL 1.0.2. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_client_hello_cb.pod b/doc/man3/SSL_CTX_set_client_hello_cb.pod index 6824b5b8d1a4c36b36d07b9dccda73c76c82bdd3..2ec298960a03bf81da2f45e098af090974fbc58a 100644 --- a/doc/man3/SSL_CTX_set_client_hello_cb.pod +++ b/doc/man3/SSL_CTX_set_client_hello_cb.pod @@ -65,6 +65,8 @@ both required, and on success the caller must release the storage allocated for B<*out> using OPENSSL_free(). The contents of B<*out> is an array of integers holding the numerical value of the TLS extension types in the order they appear in the ClientHello. B<*outlen> contains the number of elements in the array. +In situations when the ClientHello has no extensions, the function will return +success with B<*out> set to NULL and B<*outlen> set to 0. =head1 NOTES @@ -120,7 +122,7 @@ were added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_ctlog_list_file.pod b/doc/man3/SSL_CTX_set_ctlog_list_file.pod index 275831ab1550521423a2d85a3a706e1657707649..5fb0feb45183ef33bab6193916f002bf1c8133b8 100644 --- a/doc/man3/SSL_CTX_set_ctlog_list_file.pod +++ b/doc/man3/SSL_CTX_set_ctlog_list_file.pod @@ -24,7 +24,7 @@ See L<CTLOG_STORE_new(3)> for the file format. =head1 NOTES These functions will not clear the existing CT log list - it will be appended -to. To replace the existing list, use L<SSL_CTX_set0_ctlog_store> first. +to. To replace the existing list, use L<SSL_CTX_set0_ctlog_store> first. If an error occurs whilst parsing a particular log entry in the file, that log entry will be skipped. @@ -43,7 +43,7 @@ L<CTLOG_STORE_new(3)> =head1 COPYRIGHT -Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_default_passwd_cb.pod b/doc/man3/SSL_CTX_set_default_passwd_cb.pod index c7bdc9b92a046afafefc8ea4664559d5d45e362d..991ce7a5a9229795c645e2c938cfef65bb4cb32f 100644 --- a/doc/man3/SSL_CTX_set_default_passwd_cb.pod +++ b/doc/man3/SSL_CTX_set_default_passwd_cb.pod @@ -90,20 +90,20 @@ truncated. return strlen(buf); } -=head1 HISTORY - -SSL_CTX_get_default_passwd_cb(), SSL_CTX_get_default_passwd_cb_userdata(), -SSL_set_default_passwd_cb() and SSL_set_default_passwd_cb_userdata() were -first added to OpenSSL 1.1.0 - =head1 SEE ALSO L<ssl(7)>, L<SSL_CTX_use_certificate(3)> +=head1 HISTORY + +SSL_CTX_get_default_passwd_cb(), SSL_CTX_get_default_passwd_cb_userdata(), +SSL_set_default_passwd_cb() and SSL_set_default_passwd_cb_userdata() were +added in OpenSSL 1.1.0. + =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_generate_session_id.pod b/doc/man3/SSL_CTX_set_generate_session_id.pod index 2bee351a4dbc5664a841e1b766911c33d56c3bf0..dab56375080642ac2de02b8cf0029bda469d112b 100644 --- a/doc/man3/SSL_CTX_set_generate_session_id.pod +++ b/doc/man3/SSL_CTX_set_generate_session_id.pod @@ -82,6 +82,14 @@ and the same race condition applies. The callback must return 0 if it cannot generate a session id for whatever reason and return 1 on success. +=head1 RETURN VALUES + +SSL_CTX_set_generate_session_id() and SSL_set_generate_session_id() +always return 1. + +SSL_has_matching_session_id() returns 1 if another session with the +same id is already in the cache. + =head1 EXAMPLES The callback function listed will generate a session id with the @@ -114,21 +122,13 @@ server id given, and will fill the rest with pseudo random bytes: } -=head1 RETURN VALUES - -SSL_CTX_set_generate_session_id() and SSL_set_generate_session_id() -always return 1. - -SSL_has_matching_session_id() returns 1 if another session with the -same id is already in the cache. - =head1 SEE ALSO L<ssl(7)>, L<SSL_get_version(3)> =head1 COPYRIGHT -Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_info_callback.pod b/doc/man3/SSL_CTX_set_info_callback.pod index f01ca66fce7c14c92fe48d10fddb5966c2ce5fe6..01b03f9a59ae323dd5a9cdaef48e6cde2dc9b5e5 100644 --- a/doc/man3/SSL_CTX_set_info_callback.pod +++ b/doc/man3/SSL_CTX_set_info_callback.pod @@ -92,17 +92,13 @@ Callback has been called due to an alert being sent or received. =item SSL_CB_HANDSHAKE_START -Callback has been called because a new handshake is started. In TLSv1.3 this is -also used for the start of post-handshake message exchanges such as for the -exchange of session tickets, or for key updates. It also occurs when resuming a -handshake following a pause to handle early data. +Callback has been called because a new handshake is started. It also occurs when +resuming a handshake following a pause to handle early data. -=item SSL_CB_HANDSHAKE_DONE 0x20 +=item SSL_CB_HANDSHAKE_DONE -Callback has been called because a handshake is finished. In TLSv1.3 this is -also used at the end of an exchange of post-handshake messages such as for -session tickets or key updates. It also occurs if the handshake is paused to -allow the exchange of early data. +Callback has been called because a handshake is finished. It also occurs if the +handshake is paused to allow the exchange of early data. =back @@ -160,7 +156,7 @@ L<SSL_alert_type_string(3)> =head1 COPYRIGHT -Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_min_proto_version.pod b/doc/man3/SSL_CTX_set_min_proto_version.pod index 45866588601a459034c3241d017f6139da80cf1c..7dfbfecf079d09f951872e6570959dbca0121c59 100644 --- a/doc/man3/SSL_CTX_set_min_proto_version.pod +++ b/doc/man3/SSL_CTX_set_min_proto_version.pod @@ -52,18 +52,18 @@ lowest or highest protocol, respectively. All these functions are implemented using macros. +=head1 SEE ALSO + +L<SSL_CTX_set_options(3)>, L<SSL_CONF_cmd(3)> + =head1 HISTORY The setter functions were added in OpenSSL 1.1.0. The getter functions were added in OpenSSL 1.1.1. -=head1 SEE ALSO - -L<SSL_CTX_set_options(3)>, L<SSL_CONF_cmd(3)> - =head1 COPYRIGHT -Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_mode.pod b/doc/man3/SSL_CTX_set_mode.pod index 8f8edcf05420c093524c0efd1f0ccaaa03e0962a..387d1ec1ef048645df30c375873aa5db9239a88c 100644 --- a/doc/man3/SSL_CTX_set_mode.pod +++ b/doc/man3/SSL_CTX_set_mode.pod @@ -105,6 +105,15 @@ Enable asynchronous processing. TLS I/O operations may indicate a retry with SSL_ERROR_WANT_ASYNC with this mode set if an asynchronous capable engine is used to perform cryptographic operations. See L<SSL_get_error(3)>. +=item SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG + +Older versions of OpenSSL had a bug in the computation of the label length +used for computing the endpoint-pair shared secret. The bug was that the +terminating zero was included in the length of the label. Setting this option +enables this behaviour to allow interoperability with such broken +implementations. Please note that setting this option breaks interoperability +with correct implementations. This option only applies to DTLS over SCTP. + =back All modes are off by default except for SSL_MODE_AUTO_RETRY which is on by @@ -124,11 +133,11 @@ L<SSL_write(3)>, L<SSL_get_error(3)> =head1 HISTORY -SSL_MODE_ASYNC was first added to OpenSSL 1.1.0. +SSL_MODE_ASYNC was added in OpenSSL 1.1.0. =head1 COPYRIGHT -Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_msg_callback.pod b/doc/man3/SSL_CTX_set_msg_callback.pod index bbc78b64b9c5557bae1eca9aadf6f254f273f192..8cf77cc553a1320d69fa03e58414b262936f51b5 100644 --- a/doc/man3/SSL_CTX_set_msg_callback.pod +++ b/doc/man3/SSL_CTX_set_msg_callback.pod @@ -128,8 +128,7 @@ L<ssl(7)>, L<SSL_new(3)> =head1 HISTORY -The pseudo content type B<SSL3_RT_INNER_CONTENT_TYPE> was added in OpenSSL -1.1.1. +The pseudo content type B<SSL3_RT_INNER_CONTENT_TYPE> was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_num_tickets.pod b/doc/man3/SSL_CTX_set_num_tickets.pod index b6b0e3ebee74e443cfd243a5ea1054d02e56f0e7..ad13ed15f406583d0be522a1e26ed5391c6057bf 100644 --- a/doc/man3/SSL_CTX_set_num_tickets.pod +++ b/doc/man3/SSL_CTX_set_num_tickets.pod @@ -20,10 +20,10 @@ SSL_CTX_get_num_tickets =head1 DESCRIPTION SSL_CTX_set_num_tickets() and SSL_set_num_tickets() can be called for a server -application and set the number of session tickets that will be sent to the -client after a full handshake. Set the desired value (which could be 0) in the -B<num_tickets> argument. Typically these functions should be called before the -start of the handshake. +application and set the number of TLSv1.3 session tickets that will be sent to +the client after a full handshake. Set the desired value (which could be 0) in +the B<num_tickets> argument. Typically these functions should be called before +the start of the handshake. The default number of tickets is 2; the default number of tickets sent following a resumption handshake is 1 but this cannot be changed using these functions. diff --git a/doc/man3/SSL_CTX_set_options.pod b/doc/man3/SSL_CTX_set_options.pod index ae5ca1bd5d23c423a5552700478bdf6a2b4c67af..2d840b62cb24a40a77d0bd65db26269116e757ad 100644 --- a/doc/man3/SSL_CTX_set_options.pod +++ b/doc/man3/SSL_CTX_set_options.pod @@ -361,10 +361,10 @@ L<dhparam(1)> =head1 HISTORY The attempt to always try to use secure renegotiation was added in -Openssl 0.9.8m. +OpenSSL 0.9.8m. -B<SSL_OP_PRIORITIZE_CHACHA> and B<SSL_OP_NO_RENEGOTIATION> were added in -OpenSSL 1.1.1. +The B<SSL_OP_PRIORITIZE_CHACHA> and B<SSL_OP_NO_RENEGOTIATION> options +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_read_ahead.pod b/doc/man3/SSL_CTX_set_read_ahead.pod index 137e251b9585c95d3ef2d35c3b10af01bee82b8f..ff037d938dcd0e01a46ed85cc6ee408cc856bc8a 100644 --- a/doc/man3/SSL_CTX_set_read_ahead.pod +++ b/doc/man3/SSL_CTX_set_read_ahead.pod @@ -46,7 +46,7 @@ records, and SSL_has_pending() can't tell the difference between processed and unprocessed data, it's recommended that if read ahead is turned on that B<SSL_MODE_AUTO_RETRY> is not turned off using SSL_CTX_clear_mode(). That will prevent getting B<SSL_ERROR_WANT_READ> when there is still a complete -record availale that hasn't been processed. +record available that hasn't been processed. If the application wants to continue to use the underlying transport (e.g. TCP connection) after the SSL connection is finished using SSL_shutdown() reading @@ -64,7 +64,7 @@ L<ssl(7)>, L<SSL_pending(3)> =head1 COPYRIGHT -Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_record_padding_callback.pod b/doc/man3/SSL_CTX_set_record_padding_callback.pod index d0b2e30f2571946fd2eb3fd5cf96b3778dd27c02..13e56f0c57f6afbdd0f54d8c8db62153572af906 100644 --- a/doc/man3/SSL_CTX_set_record_padding_callback.pod +++ b/doc/man3/SSL_CTX_set_record_padding_callback.pod @@ -19,10 +19,10 @@ SSL_set_block_padding - install callback to specify TLS 1.3 record padding void SSL_set_record_padding_callback(SSL *ssl, size_t (*cb)(SSL *s, 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(SSL_CTX *ctx); + void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); - void *SSL_get_record_padding_callback_arg(SSL *ssl); + void *SSL_get_record_padding_callback_arg(const SSL *ssl); int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); int SSL_set_block_padding(SSL *ssl, size_t block_size); @@ -86,7 +86,7 @@ The record padding API was added for TLS 1.3 support in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_security_level.pod b/doc/man3/SSL_CTX_set_security_level.pod index 8baaaffec5c8dce2fd4f2acf3a43c0f20a08ea26..0cb6c1f52a223136d5905111d00bb4715dd3f9c8 100644 --- a/doc/man3/SSL_CTX_set_security_level.pod +++ b/doc/man3/SSL_CTX_set_security_level.pod @@ -176,7 +176,7 @@ data pointer or NULL if the ex data is not set. =head1 HISTORY -These functions were first added to OpenSSL 1.1.0 +These functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_session_ticket_cb.pod b/doc/man3/SSL_CTX_set_session_ticket_cb.pod index 8f98c6f1c99e05ca4b360e9f9ab7a400f262bb4b..f3dfb62c231c61bfd9ab1b6e02bad65bc0dde57f 100644 --- a/doc/man3/SSL_CTX_set_session_ticket_cb.pod +++ b/doc/man3/SSL_CTX_set_session_ticket_cb.pod @@ -177,8 +177,8 @@ L<SSL_get_session(3)> =head1 HISTORY -SSL_CTX_set_session_ticket_cb(), SSSL_SESSION_set1_ticket_appdata() and -SSL_SESSION_get_ticket_appdata() were added to OpenSSL 1.1.1. +The SSL_CTX_set_session_ticket_cb(), SSSL_SESSION_set1_ticket_appdata() +and SSL_SESSION_get_ticket_appdata() functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_split_send_fragment.pod b/doc/man3/SSL_CTX_set_split_send_fragment.pod index ef5e7cda35a2fcc31cdef8d9428140e044b087e8..d63ca4157e0989c15b7026240fe36415b38a0129 100644 --- a/doc/man3/SSL_CTX_set_split_send_fragment.pod +++ b/doc/man3/SSL_CTX_set_split_send_fragment.pod @@ -162,6 +162,10 @@ SSL_set_default_read_buffer_len(), SSL_CTX_set_tlsext_max_fragment_length(), SSL_set_tlsext_max_fragment_length() and SSL_SESSION_get_max_fragment_length() all these functions are implemented using macros. +=head1 SEE ALSO + +L<SSL_CTX_set_read_ahead(3)>, L<SSL_pending(3)> + =head1 HISTORY The SSL_CTX_set_max_pipelines(), SSL_set_max_pipelines(), @@ -169,16 +173,12 @@ SSL_CTX_set_split_send_fragment(), SSL_set_split_send_fragment(), SSL_CTX_set_default_read_buffer_len() and SSL_set_default_read_buffer_len() functions were added in OpenSSL 1.1.0. -SSL_CTX_set_tlsext_max_fragment_length(), SSL_set_tlsext_max_fragment_length() -and SSL_SESSION_get_max_fragment_length() were added in OpenSSL 1.1.1. - -=head1 SEE ALSO - -L<SSL_CTX_set_read_ahead(3)>, L<SSL_pending(3)> +The SSL_CTX_set_tlsext_max_fragment_length(), SSL_set_tlsext_max_fragment_length() +and SSL_SESSION_get_max_fragment_length() functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_ssl_version.pod b/doc/man3/SSL_CTX_set_ssl_version.pod index 901c057f453a72e1078b61c479e58e8dfd829fc0..6c132756f2caecfc584a3fd09e58e7baf7a10fbe 100644 --- a/doc/man3/SSL_CTX_set_ssl_version.pod +++ b/doc/man3/SSL_CTX_set_ssl_version.pod @@ -11,7 +11,7 @@ SSL_CTX_set_ssl_version, SSL_set_ssl_method, SSL_get_ssl_method int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *method); int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); - const SSL_METHOD *SSL_get_ssl_method(SSL *ssl); + const SSL_METHOD *SSL_get_ssl_method(const SSL *ssl); =head1 DESCRIPTION @@ -60,7 +60,7 @@ L<SSL_set_connect_state(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_tlsext_status_cb.pod b/doc/man3/SSL_CTX_set_tlsext_status_cb.pod index d6c04eced8ce97e7ec305ae7145e78a4373c087a..cb40a9dbcbcbfff3d89458a81d0f49931351c258 100644 --- a/doc/man3/SSL_CTX_set_tlsext_status_cb.pod +++ b/doc/man3/SSL_CTX_set_tlsext_status_cb.pod @@ -108,8 +108,8 @@ side if the client requested OCSP stapling. Otherwise -1 is returned. =head1 HISTORY -SSL_get_tlsext_status_type(), SSL_CTX_get_tlsext_status_type() and -SSL_CTX_set_tlsext_status_type() were added in OpenSSL 1.1.0. +The SSL_get_tlsext_status_type(), SSL_CTX_get_tlsext_status_type() +and SSL_CTX_set_tlsext_status_type() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod b/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod index 9b448db664e176668f9ebdc712fe6a245d5813b1..43bddc51e8cf16a23d6e4cdfeabced6dee712722 100644 --- a/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod +++ b/doc/man3/SSL_CTX_set_tlsext_ticket_key_cb.pod @@ -38,7 +38,7 @@ ticket information or it starts a full TLS handshake to create a new session ticket. Before the callback function is started I<ctx> and I<hctx> have been -initialised with EVP_CIPHER_CTX_init and HMAC_CTX_init respectively. +initialised with L<EVP_CIPHER_CTX_reset(3)> and L<HMAC_CTX_reset(3)> respectively. For new sessions tickets, when the client doesn't present a session ticket, or an attempted retrieval of the ticket failed, or a renew option was indicated, @@ -121,6 +121,10 @@ For example if a cipher suite uses 256 bit ciphers but only a 128 bit ticket key the overall security is only 128 bits because breaking the ticket key will enable an attacker to obtain the session keys. +=head1 RETURN VALUES + +returns 0 to indicate the callback function was set. + =head1 EXAMPLES Reference Implementation: @@ -175,10 +179,6 @@ Reference Implementation: } } -=head1 RETURN VALUES - -returns 0 to indicate the callback function was set. - =head1 SEE ALSO L<ssl(7)>, L<SSL_set_session(3)>, @@ -190,7 +190,7 @@ L<SSL_CTX_set_session_id_context(3)>, =head1 COPYRIGHT -Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2014-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_CTX_set_tmp_dh_callback.pod b/doc/man3/SSL_CTX_set_tmp_dh_callback.pod index a2ac1c0adbbc5a31d799cbb4e9173e358c0ec071..fba649f8f57232b51961c1c9edfbc2cfd72eef01 100644 --- a/doc/man3/SSL_CTX_set_tmp_dh_callback.pod +++ b/doc/man3/SSL_CTX_set_tmp_dh_callback.pod @@ -81,6 +81,14 @@ are advised to either use SSL_CTX_set_tmp_dh() or alternatively, use the callback but ignore B<keylength> and B<is_export> and simply supply at least 2048-bit parameters in the callback. +=head1 RETURN VALUES + +SSL_CTX_set_tmp_dh_callback() and SSL_set_tmp_dh_callback() do not return +diagnostic output. + +SSL_CTX_set_tmp_dh() and SSL_set_tmp_dh() do return 1 on success and 0 +on failure. Check the error queue to find out the reason of failure. + =head1 EXAMPLES Setup DH parameters with a key length of 2048 bits. (Error handling @@ -109,14 +117,6 @@ Code for setting up parameters during server initialization: /* Error. */ ... -=head1 RETURN VALUES - -SSL_CTX_set_tmp_dh_callback() and SSL_set_tmp_dh_callback() do not return -diagnostic output. - -SSL_CTX_set_tmp_dh() and SSL_set_tmp_dh() do return 1 on success and 0 -on failure. Check the error queue to find out the reason of failure. - =head1 SEE ALSO L<ssl(7)>, L<SSL_CTX_set_cipher_list(3)>, @@ -125,7 +125,7 @@ L<ciphers(1)>, L<dhparam(1)> =head1 COPYRIGHT -Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_SESSION_free.pod b/doc/man3/SSL_SESSION_free.pod index 87a1cab1b46294cb91db03084e8fb735734545bb..9a3bf3ec988eb36d9ef951529307eda8698d92d5 100644 --- a/doc/man3/SSL_SESSION_free.pod +++ b/doc/man3/SSL_SESSION_free.pod @@ -73,7 +73,7 @@ L<d2i_SSL_SESSION(3)> =head1 HISTORY -SSL_SESSION_dup() was added in OpenSSL 1.1.1. +The SSL_SESSION_dup() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_get0_cipher.pod b/doc/man3/SSL_SESSION_get0_cipher.pod index 60f66a2d2b9d285ee6c918311aaa16691f49d3e1..5ef754c4a8417dd165c2e0df65de15d916dc7538 100644 --- a/doc/man3/SSL_SESSION_get0_cipher.pod +++ b/doc/man3/SSL_SESSION_get0_cipher.pod @@ -43,8 +43,8 @@ L<SSL_CTX_set_psk_use_session_callback(3)> =head1 HISTORY -SSL_SESSION_get0_cipher() was first added to OpenSSL 1.1.0. -SSL_SESSION_set_cipher() was first added to OpenSSL 1.1.1. +The SSL_SESSION_get0_cipher() function was added in OpenSSL 1.1.0. +The SSL_SESSION_set_cipher() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_get0_hostname.pod b/doc/man3/SSL_SESSION_get0_hostname.pod index c35c89279520a274d01b65129fbcbf41b4589b51..989c997882cac4a6bcbfc16d1d1a3b5257d71e93 100644 --- a/doc/man3/SSL_SESSION_get0_hostname.pod +++ b/doc/man3/SSL_SESSION_get0_hostname.pod @@ -59,8 +59,8 @@ L<SSL_SESSION_free(3)> =head1 HISTORY -SSL_SESSION_set1_hostname(), SSL_SESSION_get0_alpn_selected() and -SSL_SESSION_set1_alpn_selected() were added in OpenSSL 1.1.1. +The SSL_SESSION_set1_hostname(), SSL_SESSION_get0_alpn_selected() and +SSL_SESSION_set1_alpn_selected() functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_get0_id_context.pod b/doc/man3/SSL_SESSION_get0_id_context.pod index 69619a72b4346c88e9dc80fffe9e379982f22b39..99b21bd126e986fd8a759d7c6de79556dd40ef4e 100644 --- a/doc/man3/SSL_SESSION_get0_id_context.pod +++ b/doc/man3/SSL_SESSION_get0_id_context.pod @@ -42,7 +42,7 @@ L<SSL_set_session_id_context(3)> =head1 HISTORY -SSL_SESSION_get0_id_context() was first added to OpenSSL 1.1.0 +The SSL_SESSION_get0_id_context() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_get_protocol_version.pod b/doc/man3/SSL_SESSION_get_protocol_version.pod index 84c9ac173b5c3ced8e3cdc85dbc293fe2826daa2..961ed3e923c7c3ff1988a531dd0cafb2d7fec23c 100644 --- a/doc/man3/SSL_SESSION_get_protocol_version.pod +++ b/doc/man3/SSL_SESSION_get_protocol_version.pod @@ -41,8 +41,8 @@ L<SSL_CTX_set_psk_use_session_callback(3)> =head1 HISTORY -SSL_SESSION_get_protocol_version() was first added to OpenSSL 1.1.0. -SSL_SESSION_set_protocol_version() was first added to OpenSSL 1.1.1. +The SSL_SESSION_get_protocol_version() function was added in OpenSSL 1.1.0. +The SSL_SESSION_set_protocol_version() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_has_ticket.pod b/doc/man3/SSL_SESSION_has_ticket.pod index 7197382369de4c882a8c5db92371184c4af5e7e9..6fb41b75cb6084470829d8c1c56d00ed951e4b11 100644 --- a/doc/man3/SSL_SESSION_has_ticket.pod +++ b/doc/man3/SSL_SESSION_has_ticket.pod @@ -44,8 +44,8 @@ L<SSL_SESSION_free(3)> =head1 HISTORY -SSL_SESSION_has_ticket, SSL_SESSION_get_ticket_lifetime_hint and -SSL_SESSION_get0_ticket were added in OpenSSL 1.1.0. +The SSL_SESSION_has_ticket(), SSL_SESSION_get_ticket_lifetime_hint() +and SSL_SESSION_get0_ticket() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_is_resumable.pod b/doc/man3/SSL_SESSION_is_resumable.pod index 729479a99b481012753db1038b3121927d2a8ec5..8e47eee09ac7ed189e80c606593d958c049e3509 100644 --- a/doc/man3/SSL_SESSION_is_resumable.pod +++ b/doc/man3/SSL_SESSION_is_resumable.pod @@ -30,7 +30,7 @@ L<SSL_CTX_sess_set_new_cb(3)> =head1 HISTORY -SSL_SESSION_is_resumable() was first added to OpenSSL 1.1.1 +The SSL_SESSION_is_resumable() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_SESSION_set1_id.pod b/doc/man3/SSL_SESSION_set1_id.pod index f0b131d6a1f6f791957b5a30d30a846ce2b0aa3e..deafdf1ea5795e4ee1bb46331f0db032e4a9e32c 100644 --- a/doc/man3/SSL_SESSION_set1_id.pod +++ b/doc/man3/SSL_SESSION_set1_id.pod @@ -36,7 +36,7 @@ L<ssl(7)> =head1 HISTORY -SSL_SESSION_set1_id() was first added to OpenSSL 1.1.0 +The SSL_SESSION_set1_id() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_export_keying_material.pod b/doc/man3/SSL_export_keying_material.pod index abebf911fc327ce2b2d71568e2e56f4641ff1f69..c6b9229cbf1633c94c773a4df54fd8e8caff003e 100644 --- a/doc/man3/SSL_export_keying_material.pod +++ b/doc/man3/SSL_export_keying_material.pod @@ -59,7 +59,8 @@ B<label> and should be B<llen> bytes long. Typically this will be a value from the IANA Exporter Label Registry (L<https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels>). Alternatively labels beginning with "EXPERIMENTAL" are permitted by the standard -to be used without registration. +to be used without registration. TLSv1.3 imposes a maximum label length of +249 bytes. Note that this function is only defined for TLSv1.0 and above, and DTLSv1.0 and above. Attempting to use it in SSLv3 will result in an error. @@ -72,7 +73,7 @@ SSL_export_keying_material_early() returns 0 on failure or 1 on success. =head1 HISTORY -SSL_export_keying_material_early() was first added in OpenSSL 1.1.1. +The SSL_export_keying_material_early() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_extension_supported.pod b/doc/man3/SSL_extension_supported.pod index 51ff6beeb51381706669f5a2d2b6114f72c227b8..df23ac6551ba0eaf2e7f755fb99ef56916685fa9 100644 --- a/doc/man3/SSL_extension_supported.pod +++ b/doc/man3/SSL_extension_supported.pod @@ -277,7 +277,7 @@ internally by OpenSSL and 0 otherwise. =head1 HISTORY -The function SSL_CTX_add_custom_ext() was added in OpenSSL 1.1.1. +The SSL_CTX_add_custom_ext() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_get_all_async_fds.pod b/doc/man3/SSL_get_all_async_fds.pod index fd4515db556168ee79b77132f335e48168042cbe..5b17f091e35337a49953eb552fab84d1880677da 100644 --- a/doc/man3/SSL_get_all_async_fds.pod +++ b/doc/man3/SSL_get_all_async_fds.pod @@ -73,8 +73,8 @@ L<SSL_get_error(3)>, L<SSL_CTX_set_mode(3)> =head1 HISTORY -SSL_waiting_for_async(), SSL_get_all_async_fds() and SSL_get_changed_async_fds() -were first added to OpenSSL 1.1.0. +The SSL_waiting_for_async(), SSL_get_all_async_fds() +and SSL_get_changed_async_fds() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_get_error.pod b/doc/man3/SSL_get_error.pod index b3ab50568731593058ba39a81168d5da09240a1f..32668a036ddb98bfcadcb93032d54e6ba74f4d90 100644 --- a/doc/man3/SSL_get_error.pod +++ b/doc/man3/SSL_get_error.pod @@ -138,17 +138,20 @@ Details depend on the application. =item SSL_ERROR_SYSCALL -Some non-recoverable I/O error occurred. -The OpenSSL error queue may contain more information on the error. -For socket I/O on Unix systems, consult B<errno> for details. +Some non-recoverable, fatal I/O error occurred. The OpenSSL error queue may +contain more information on the error. For socket I/O on Unix systems, consult +B<errno> for details. If this error occurs then no further I/O operations should +be performed on the connection and SSL_shutdown() must not be called. This value can also be returned for other errors, check the error queue for details. =item SSL_ERROR_SSL -A failure in the SSL library occurred, usually a protocol error. The -OpenSSL error queue contains more information on the error. +A non-recoverable, fatal error in the SSL library occurred, usually a protocol +error. The OpenSSL error queue contains more information on the error. If this +error occurs then no further I/O operations should be performed on the +connection and SSL_shutdown() must not be called. =back @@ -158,12 +161,12 @@ L<ssl(7)> =head1 HISTORY -SSL_ERROR_WANT_ASYNC was added in OpenSSL 1.1.0. -SSL_ERROR_WANT_CLIENT_HELLO_CB was added in OpenSSL 1.1.1. +The SSL_ERROR_WANT_ASYNC error code was added in OpenSSL 1.1.0. +The SSL_ERROR_WANT_CLIENT_HELLO_CB error code was added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_get_version.pod b/doc/man3/SSL_get_version.pod index b0aaba3a59d735e38bab53ff5b1a83c596c949d3..5507ff3f3de9cb97d0189041ae4ef532f4f6e2bb 100644 --- a/doc/man3/SSL_get_version.pod +++ b/doc/man3/SSL_get_version.pod @@ -97,7 +97,7 @@ L<ssl(7)> =head1 HISTORY -SSL_is_dtls() was added in OpenSSL 1.1.0. +The SSL_is_dtls() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_key_update.pod b/doc/man3/SSL_key_update.pod index 7772b70bc69e37b78320682008d1f00019ddad21..068ace59783675ed6ac872936dd52eb30a2cc436 100644 --- a/doc/man3/SSL_key_update.pod +++ b/doc/man3/SSL_key_update.pod @@ -14,11 +14,11 @@ SSL_renegotiate_pending #include <openssl/ssl.h> int SSL_key_update(SSL *s, int updatetype); - int SSL_get_key_update_type(SSL *s); + int SSL_get_key_update_type(const SSL *s); int SSL_renegotiate(SSL *s); int SSL_renegotiate_abbreviated(SSL *s); - int SSL_renegotiate_pending(SSL *s); + int SSL_renegotiate_pending(const SSL *s); =head1 DESCRIPTION @@ -100,7 +100,7 @@ OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_load_client_CA_file.pod b/doc/man3/SSL_load_client_CA_file.pod index 412b1a098ca4c0c52fffef7035e419a4448dd892..a6cfb308d30c20011b381c8ae07fba4311650f4b 100644 --- a/doc/man3/SSL_load_client_CA_file.pod +++ b/doc/man3/SSL_load_client_CA_file.pod @@ -23,21 +23,6 @@ the specific usage as support function for L<SSL_CTX_set_client_CA_list(3)>, it is not limited to CA certificates. -=head1 EXAMPLES - -Load names of CAs from file and use it as a client CA list: - - SSL_CTX *ctx; - STACK_OF(X509_NAME) *cert_names; - - ... - cert_names = SSL_load_client_CA_file("/path/to/CAfile.pem"); - if (cert_names != NULL) - SSL_CTX_set_client_CA_list(ctx, cert_names); - else - /* error */ - ... - =head1 RETURN VALUES The following return values can occur: @@ -54,6 +39,21 @@ Pointer to the subject names of the successfully read certificates. =back +=head1 EXAMPLES + +Load names of CAs from file and use it as a client CA list: + + SSL_CTX *ctx; + STACK_OF(X509_NAME) *cert_names; + + ... + cert_names = SSL_load_client_CA_file("/path/to/CAfile.pem"); + if (cert_names != NULL) + SSL_CTX_set_client_CA_list(ctx, cert_names); + else + /* error */ + ... + =head1 SEE ALSO L<ssl(7)>, @@ -61,7 +61,7 @@ L<SSL_CTX_set_client_CA_list(3)> =head1 COPYRIGHT -Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_read.pod b/doc/man3/SSL_read.pod index e671b8eb794a159884acc5b603e0b4530d4bb7db..4da7ad1ae1f4113b42990e0dbfcdf982e707f5ee 100644 --- a/doc/man3/SSL_read.pod +++ b/doc/man3/SSL_read.pod @@ -126,10 +126,6 @@ You should instead call SSL_get_error() to find out if it's retryable. =back -=head1 HISTORY - -SSL_read_ex() and SSL_peek_ex() were added in OpenSSL 1.1.1. - =head1 SEE ALSO L<SSL_get_error(3)>, L<SSL_write_ex(3)>, @@ -140,9 +136,13 @@ L<SSL_pending(3)>, L<SSL_shutdown(3)>, L<SSL_set_shutdown(3)>, L<ssl(7)>, L<bio(7)> +=head1 HISTORY + +The SSL_read_ex() and SSL_peek_ex() functions were added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_read_early_data.pod b/doc/man3/SSL_read_early_data.pod index 9769aa72e4a05f188a41a6ec10b7f5bef1510678..c51fe1359dc3cfd5fcd64e4b07301e5bce956478 100644 --- a/doc/man3/SSL_read_early_data.pod +++ b/doc/man3/SSL_read_early_data.pod @@ -93,7 +93,7 @@ the server. A client uses the function SSL_write_early_data() to send early data. This function is similar to the L<SSL_write_ex(3)> function, but with the following differences. See L<SSL_write_ex(3)> for information on how to write bytes to -the underlying connection, and how to handle any errors that may arise. This +the underlying connection, and how to handle any errors that may arise. This page describes the differences between SSL_write_early_data() and L<SSL_write_ex(3)>. @@ -364,7 +364,7 @@ All of the functions described above were added in OpenSSL 1.1.1. =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_session_reused.pod b/doc/man3/SSL_session_reused.pod index 1a3d567bd8447fd6bc1f2e7b433c900dc4709495..82c59435901ae8cc13fde91234f516a3dc26eb1b 100644 --- a/doc/man3/SSL_session_reused.pod +++ b/doc/man3/SSL_session_reused.pod @@ -8,7 +8,7 @@ SSL_session_reused - query whether a reused session was negotiated during handsh #include <openssl/ssl.h> - int SSL_session_reused(SSL *ssl); + int SSL_session_reused(const SSL *ssl); =head1 DESCRIPTION @@ -44,7 +44,7 @@ L<SSL_CTX_set_session_cache_mode(3)> =head1 COPYRIGHT -Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_set1_host.pod b/doc/man3/SSL_set1_host.pod index 3ca3c6b0136bc754da75c7658cc6270b25d90ed3..a2c9f133eed3b8034633db5cb46da5cad6c4cdb6 100644 --- a/doc/man3/SSL_set1_host.pod +++ b/doc/man3/SSL_set1_host.pod @@ -104,7 +104,7 @@ L<SSL_dane_enable(3)>. =head1 HISTORY -These functions were first added to OpenSSL 1.1.0. +These functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/SSL_shutdown.pod b/doc/man3/SSL_shutdown.pod index 0a3d6d370d8b0f2261122d06539090dc4585bed2..732e5ada04ae349fe76a4f42a6bcd35fd48e9304 100644 --- a/doc/man3/SSL_shutdown.pod +++ b/doc/man3/SSL_shutdown.pod @@ -22,6 +22,10 @@ Whether the operation succeeds or not, the SSL_SENT_SHUTDOWN flag is set and a currently open session is considered closed and good and will be kept in the session cache for further reuse. +Note that SSL_shutdown() must not be called if a previous fatal error has +occurred on a connection i.e. if SSL_get_error() has returned SSL_ERROR_SYSCALL +or SSL_ERROR_SSL. + The shutdown procedure consists of two steps: sending of the close_notify shutdown alert, and reception of the peer's close_notify shutdown alert. The order of those two steps depends on the application. @@ -153,7 +157,7 @@ L<ssl(7)>, L<bio(7)> =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/SSL_want.pod b/doc/man3/SSL_want.pod index ef4b2183e08d36e308014cf9610751aa2520598c..6840ccbfb626f26bde6bedb7d7339beb79a2f271 100644 --- a/doc/man3/SSL_want.pod +++ b/doc/man3/SSL_want.pod @@ -101,7 +101,8 @@ L<ssl(7)>, L<SSL_get_error(3)> =head1 HISTORY -SSL_want_client_hello_cb() and SSL_CLIENT_HELLO_CB were added in OpenSSL 1.1.1. +The SSL_want_client_hello_cb() function and the SSL_CLIENT_HELLO_CB return value +were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/SSL_write.pod b/doc/man3/SSL_write.pod index 4dffd1fefc8af5d4e4847a1bbde00b8704e1b2d1..84eb948cc6eb9eac185b3944f6248fca91806ccc 100644 --- a/doc/man3/SSL_write.pod +++ b/doc/man3/SSL_write.pod @@ -104,10 +104,6 @@ You should instead call SSL_get_error() to find out if it's retryable. =back -=head1 HISTORY - -SSL_write_ex() was added in OpenSSL 1.1.1. - =head1 SEE ALSO L<SSL_get_error(3)>, L<SSL_read_ex(3)>, L<SSL_read(3)> @@ -116,9 +112,13 @@ L<SSL_connect(3)>, L<SSL_accept(3)> L<SSL_set_connect_state(3)>, L<ssl(7)>, L<bio(7)> +=head1 HISTORY + +The SSL_write_ex() function was added in OpenSSL 1.1.1. + =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/UI_create_method.pod b/doc/man3/UI_create_method.pod index aefd41dac396b75070b85cfd739873e821a4a622..a01e1012dcf9b8e9c54120acb1266d11dc395b86 100644 --- a/doc/man3/UI_create_method.pod +++ b/doc/man3/UI_create_method.pod @@ -205,9 +205,8 @@ L<UI(3)>, L<CRYPTO_get_ex_data(3)>, L<UI_STRING(3)> =head1 HISTORY -UI_method_set_data_duplicator(), UI_method_get_data_duplicator() and -UI_method_get_data_destructor() -were added in OpenSSL 1.1.1. +The UI_method_set_data_duplicator(), UI_method_get_data_duplicator() +and UI_method_get_data_destructor() functions were added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/UI_new.pod b/doc/man3/UI_new.pod index dd1b80ec635d1e14122b5da32e1687260855986f..3042b13f1f1a105b6051536e0f20256c9a2ae825 100644 --- a/doc/man3/UI_new.pod +++ b/doc/man3/UI_new.pod @@ -233,14 +233,13 @@ UI_process() returns 0 on success or a negative value on error. UI_ctrl() returns a mask on success or -1 on error. -UI_get_default_method(), UI_get_method(), UI_Openssl(), UI_null() and +UI_get_default_method(), UI_get_method(), UI_OpenSSL(), UI_null() and UI_set_method() return either a valid B<UI_METHOD> structure or NULL respectively. =head1 HISTORY -UI_dup_user_data() -was added in OpenSSL 1.1.1. +The UI_dup_user_data() function was added in OpenSSL 1.1.1. =head1 COPYRIGHT diff --git a/doc/man3/X509_LOOKUP_meth_new.pod b/doc/man3/X509_LOOKUP_meth_new.pod index fb165fd6ad9d759fdddcca458a205f4a80275ff9..e5f0a098b3fa43cfa892184c0f3ab1b0abc565a1 100644 --- a/doc/man3/X509_LOOKUP_meth_new.pod +++ b/doc/man3/X509_LOOKUP_meth_new.pod @@ -150,10 +150,20 @@ the X509_LOOKUP context, the type of the X509_OBJECT being requested, parameters related to the lookup, and an X509_OBJECT that will receive the requested object. -Implementations should use either X509_OBJECT_set1_X509() or -X509_OBJECT_set1_X509_CRL() to set the result. Any method data that was -created as a result of the new_item function set by -X509_LOOKUP_meth_set_new_item() can be accessed with +Implementations must add objects they find to the B<X509_STORE> object +using X509_STORE_add_cert() or X509_STORE_add_crl(). This increments +its reference count. However, the X509_STORE_CTX_get_by_subject() +function also increases the reference count which leads to one too +many references being held. Therefore applications should +additionally call X509_free() or X509_CRL_free() to decrement the +reference count again. + +Implementations should also use either X509_OBJECT_set1_X509() or +X509_OBJECT_set1_X509_CRL() to set the result. Note that this also +increments the result's reference count. + +Any method data that was created as a result of the new_item function +set by X509_LOOKUP_meth_set_new_item() can be accessed with X509_LOOKUP_get_method_data(). The B<X509_STORE> object that owns the X509_LOOKUP may be accessed with X509_LOOKUP_get_store(). Successful lookups should return 1, and unsuccessful lookups should return 0. @@ -179,7 +189,7 @@ The functions described here were added in OpenSSL 1.1.0i. =head1 COPYRIGHT -Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/X509_NAME_ENTRY_get_object.pod b/doc/man3/X509_NAME_ENTRY_get_object.pod index 5de1b88b99459f7d38ecc6150461407868283810..74f1a96d07efa53fa135a5f6cf7cf7cd47ae8851 100644 --- a/doc/man3/X509_NAME_ENTRY_get_object.pod +++ b/doc/man3/X509_NAME_ENTRY_get_object.pod @@ -51,9 +51,6 @@ X509_NAME_ENTRY_get_object() and X509_NAME_ENTRY_get_data() can be used to examine an B<X509_NAME_ENTRY> function as returned by X509_NAME_get_entry() for example. -X509_NAME_ENTRY_create_by_txt(), X509_NAME_ENTRY_create_by_NID(), -and X509_NAME_ENTRY_create_by_OBJ() create and return an - X509_NAME_ENTRY_create_by_txt(), X509_NAME_ENTRY_create_by_OBJ(), X509_NAME_ENTRY_create_by_NID() and X509_NAME_ENTRY_set_data() are seldom used in practice because B<X509_NAME_ENTRY> structures diff --git a/doc/man3/X509_NAME_add_entry_by_txt.pod b/doc/man3/X509_NAME_add_entry_by_txt.pod index b48f0908e813418f57d17e25042d7df6373205fe..0459cf4a4655bd4b5a9b3de14ed617756062915c 100644 --- a/doc/man3/X509_NAME_add_entry_by_txt.pod +++ b/doc/man3/X509_NAME_add_entry_by_txt.pod @@ -74,6 +74,15 @@ structure respectively. This will then be a multivalued RDN: since multivalues RDNs are very seldom used B<set> is almost always set to zero. +=head1 RETURN VALUES + +X509_NAME_add_entry_by_txt(), X509_NAME_add_entry_by_OBJ(), +X509_NAME_add_entry_by_NID() and X509_NAME_add_entry() return 1 for +success of 0 if an error occurred. + +X509_NAME_delete_entry() returns either the deleted B<X509_NAME_ENTRY> +structure of B<NULL> if an error occurred. + =head1 EXAMPLES Create an B<X509_NAME> structure: @@ -95,15 +104,6 @@ Create an B<X509_NAME> structure: "Joe Bloggs", -1, -1, 0)) /* Error */ -=head1 RETURN VALUES - -X509_NAME_add_entry_by_txt(), X509_NAME_add_entry_by_OBJ(), -X509_NAME_add_entry_by_NID() and X509_NAME_add_entry() return 1 for -success of 0 if an error occurred. - -X509_NAME_delete_entry() returns either the deleted B<X509_NAME_ENTRY> -structure of B<NULL> if an error occurred. - =head1 BUGS B<type> can still be set to B<V_ASN1_APP_CHOOSE> to use a @@ -117,7 +117,7 @@ L<ERR_get_error(3)>, L<d2i_X509_NAME(3)> =head1 COPYRIGHT -Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/X509_NAME_get_index_by_NID.pod b/doc/man3/X509_NAME_get_index_by_NID.pod index 5621806bb5305afd3143a42fc8bb958b4779f340..420ace134874f22f46bee787ce6a5cca2c29f1cc 100644 --- a/doc/man3/X509_NAME_get_index_by_NID.pod +++ b/doc/man3/X509_NAME_get_index_by_NID.pod @@ -69,6 +69,18 @@ Applications which could pass invalid NIDs to X509_NAME_get_index_by_NID() should check for the return value of -2. Alternatively the NID validity can be determined first by checking OBJ_nid2obj(nid) is not NULL. +=head1 RETURN VALUES + +X509_NAME_get_index_by_NID() and X509_NAME_get_index_by_OBJ() +return the index of the next matching entry or -1 if not found. +X509_NAME_get_index_by_NID() can also return -2 if the supplied +NID is invalid. + +X509_NAME_entry_count() returns the total number of entries. + +X509_NAME_get_entry() returns an B<X509_NAME> pointer to the +requested entry or B<NULL> if the index is invalid. + =head1 EXAMPLES Process all entries: @@ -94,25 +106,13 @@ Process all commonName entries: /* Do something with e */ } -=head1 RETURN VALUES - -X509_NAME_get_index_by_NID() and X509_NAME_get_index_by_OBJ() -return the index of the next matching entry or -1 if not found. -X509_NAME_get_index_by_NID() can also return -2 if the supplied -NID is invalid. - -X509_NAME_entry_count() returns the total number of entries. - -X509_NAME_get_entry() returns an B<X509_NAME> pointer to the -requested entry or B<NULL> if the index is invalid. - =head1 SEE ALSO L<ERR_get_error(3)>, L<d2i_X509_NAME(3)> =head1 COPYRIGHT -Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/X509_STORE_CTX_new.pod b/doc/man3/X509_STORE_CTX_new.pod index 2828ed75d2a9427edce35068f9f5f3f9242e5fb5..472db508bc4e2187ca4cd22e8c5a5b13778ba14e 100644 --- a/doc/man3/X509_STORE_CTX_new.pod +++ b/doc/man3/X509_STORE_CTX_new.pod @@ -159,8 +159,8 @@ L<X509_VERIFY_PARAM_set_flags(3)> =head1 HISTORY -X509_STORE_CTX_set0_crls() was first added to OpenSSL 1.0.0 -X509_STORE_CTX_get_num_untrusted() was first added to OpenSSL 1.1.0 +The X509_STORE_CTX_set0_crls() function was added in OpenSSL 1.0.0. +The X509_STORE_CTX_get_num_untrusted() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_STORE_CTX_set_verify_cb.pod b/doc/man3/X509_STORE_CTX_set_verify_cb.pod index 5688ab79a77e1d4844a0facae381892746255074..647ed2f174016e2f105164a5533999e1e015d196 100644 --- a/doc/man3/X509_STORE_CTX_set_verify_cb.pod +++ b/doc/man3/X509_STORE_CTX_set_verify_cb.pod @@ -192,12 +192,13 @@ L<X509_STORE_CTX_get_ex_new_index(3)> =head1 HISTORY +The X509_STORE_CTX_get_get_issuer(), X509_STORE_CTX_get_check_issued(), X509_STORE_CTX_get_check_revocation(), X509_STORE_CTX_get_get_crl(), X509_STORE_CTX_get_check_crl(), X509_STORE_CTX_get_cert_crl(), X509_STORE_CTX_get_check_policy(), X509_STORE_CTX_get_lookup_certs(), X509_STORE_CTX_get_lookup_crls() -and X509_STORE_CTX_get_cleanup() were added in OpenSSL 1.1.0. +and X509_STORE_CTX_get_cleanup() functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_STORE_new.pod b/doc/man3/X509_STORE_new.pod index f7a5c81416b321734598ea7eae1033c2747aad33..b3bc96e20b59f887358ce7e3e4157476c4bfd712 100644 --- a/doc/man3/X509_STORE_new.pod +++ b/doc/man3/X509_STORE_new.pod @@ -44,7 +44,7 @@ L<X509_STORE_get0_param(3)> =head1 HISTORY The X509_STORE_up_ref(), X509_STORE_lock() and X509_STORE_unlock() -functions were added in OpenSSL 1.1.0 +functions were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_STORE_set_verify_cb_func.pod b/doc/man3/X509_STORE_set_verify_cb_func.pod index 12a464674191f794b97846b0b62e9a414dee948d..d16881edd83ddb33a371de5f1a7f34f3cd3ac506 100644 --- a/doc/man3/X509_STORE_set_verify_cb_func.pod +++ b/doc/man3/X509_STORE_set_verify_cb_func.pod @@ -237,8 +237,9 @@ L<CMS_verify(3)> =head1 HISTORY -X509_STORE_set_verify_cb() was added to OpenSSL 1.0.0. +The X509_STORE_set_verify_cb() function was added in OpenSSL 1.0.0. +The functions X509_STORE_set_verify_cb(), X509_STORE_get_verify_cb(), X509_STORE_set_verify(), X509_STORE_CTX_get_verify(), X509_STORE_set_get_issuer(), X509_STORE_get_get_issuer(), @@ -250,8 +251,8 @@ X509_STORE_set_cert_crl(), X509_STORE_get_cert_crl(), X509_STORE_set_check_policy(), X509_STORE_get_check_policy(), X509_STORE_set_lookup_certs(), X509_STORE_get_lookup_certs(), X509_STORE_set_lookup_crls(), X509_STORE_get_lookup_crls(), -X509_STORE_set_cleanup() and X509_STORE_get_cleanup() were added in -OpenSSL 1.1.0. +X509_STORE_set_cleanup() and X509_STORE_get_cleanup() +were added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_VERIFY_PARAM_set_flags.pod b/doc/man3/X509_VERIFY_PARAM_set_flags.pod index 9b64e0a915a2e35b71a36617a9ec419b7927f1ff..f45467caceccefa7571c4ef0da20c90048fe2cc7 100644 --- a/doc/man3/X509_VERIFY_PARAM_set_flags.pod +++ b/doc/man3/X509_VERIFY_PARAM_set_flags.pod @@ -368,11 +368,11 @@ L<x509(1)> =head1 HISTORY -The B<X509_V_FLAG_NO_ALT_CHAINS> flag was added in OpenSSL 1.1.0 -The flag B<X509_V_FLAG_CB_ISSUER_CHECK> was deprecated in -OpenSSL 1.1.0, and has no effect. +The B<X509_V_FLAG_NO_ALT_CHAINS> flag was added in OpenSSL 1.1.0. +The flag B<X509_V_FLAG_CB_ISSUER_CHECK> was deprecated in OpenSSL 1.1.0 +and has no effect. -X509_VERIFY_PARAM_get_hostflags() was added in OpenSSL 1.1.0i. +The X509_VERIFY_PARAM_get_hostflags() function was added in OpenSSL 1.1.0i. =head1 COPYRIGHT diff --git a/doc/man3/X509_get0_signature.pod b/doc/man3/X509_get0_signature.pod index f63c5a5b689ef6161c64d9dec21cd5ae5fa4e37f..4133bc37a9afdd2b4d10b17d35389864864dba7c 100644 --- a/doc/man3/X509_get0_signature.pod +++ b/doc/man3/X509_get0_signature.pod @@ -109,12 +109,14 @@ L<X509_verify_cert(3)> =head1 HISTORY -X509_get0_signature() and X509_get_signature_nid() were first added to -OpenSSL 1.0.2. +The +X509_get0_signature() and X509_get_signature_nid() functions were +added in OpenSSL 1.0.2. +The X509_REQ_get0_signature(), X509_REQ_get_signature_nid(), -X509_CRL_get0_signature() and X509_CRL_get_signature_nid() were first added -to OpenSSL 1.1.0. +X509_CRL_get0_signature() and X509_CRL_get_signature_nid() were +added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_get_serialNumber.pod b/doc/man3/X509_get_serialNumber.pod index 2e81c623969e652281b14872639f194f35c56d65..684adb7578b9ee9cb7f6d069fa76c1650e6fca9d 100644 --- a/doc/man3/X509_get_serialNumber.pod +++ b/doc/man3/X509_get_serialNumber.pod @@ -56,8 +56,9 @@ L<X509_verify_cert(3)> =head1 HISTORY -X509_get_serialNumber() and X509_set_serialNumber() are available in -all versions of OpenSSL. X509_get0_serialNumber() was added in OpenSSL 1.1.0. +The X509_get_serialNumber() and X509_set_serialNumber() functions are +available in all versions of OpenSSL. +The X509_get0_serialNumber() function was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/doc/man3/X509_get_subject_name.pod b/doc/man3/X509_get_subject_name.pod index 2107c1d0905e9fd09f1689d493cd37751c866962..807f9d3d9b19ca4f6417879c4e96e0b45f6a9a03 100644 --- a/doc/man3/X509_get_subject_name.pod +++ b/doc/man3/X509_get_subject_name.pod @@ -48,14 +48,6 @@ and X509_CRL_get_issuer() return an B<X509_NAME> pointer. X509_set_subject_name(), X509_set_issuer_name(), X509_REQ_set_subject_name() and X509_CRL_set_issuer_name() return 1 for success and 0 for failure. -=head1 HISTORY - -X509_REQ_get_subject_name() is a function in OpenSSL 1.1.0 and a macro in -earlier versions. - -X509_CRL_get_issuer() is a function in OpenSSL 1.1.0. It was first added -to OpenSSL 1.0.0 as a macro. - =head1 SEE ALSO L<d2i_X509(3)>, @@ -74,9 +66,17 @@ L<X509_sign(3)>, L<X509V3_get_d2i(3)>, L<X509_verify_cert(3)> +=head1 HISTORY + +X509_REQ_get_subject_name() is a function in OpenSSL 1.1.0 and a macro in +earlier versions. + +X509_CRL_get_issuer() is a function in OpenSSL 1.1.0. It was previously +added in OpenSSL 1.0.0 as a macro. + =head1 COPYRIGHT -Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/X509_sign.pod b/doc/man3/X509_sign.pod index 994fd438811a1b236021fa724f72d2eaebf99a09..8794c57e8d57c0a00ba5fb924e514d22785f0cd8 100644 --- a/doc/man3/X509_sign.pod +++ b/doc/man3/X509_sign.pod @@ -81,11 +81,11 @@ L<X509_verify_cert(3)> =head1 HISTORY -X509_sign(), X509_REQ_sign() and X509_CRL_sign() are available in all -versions of OpenSSL. +The X509_sign(), X509_REQ_sign() and X509_CRL_sign() functions are +available in all versions of OpenSSL. -X509_sign_ctx(), X509_REQ_sign_ctx() and X509_CRL_sign_ctx() were first added -to OpenSSL 1.0.1. +The X509_sign_ctx(), X509_REQ_sign_ctx() +and X509_CRL_sign_ctx() functions were added OpenSSL 1.0.1. =head1 COPYRIGHT diff --git a/doc/man3/d2i_PrivateKey.pod b/doc/man3/d2i_PrivateKey.pod index 13415d5488e8fb30d020347d714cce91d0815b1e..4e3f20f8b324b716100720ec324f92035b4f17c4 100644 --- a/doc/man3/d2i_PrivateKey.pod +++ b/doc/man3/d2i_PrivateKey.pod @@ -50,15 +50,19 @@ If the B<*a> is not NULL when calling d2i_PrivateKey() or d2i_AutoPrivateKey() (i.e. an existing structure is being reused) and the key format is PKCS#8 then B<*a> will be freed and replaced on a successful call. +To decode a key with type B<EVP_PKEY_EC>, d2i_PublicKey() requires B<*a> to be +a non-NULL EVP_PKEY structure assigned an EC_KEY structure referencing the proper +EC_GROUP. + =head1 RETURN VALUES -d2i_PrivateKey() and d2i_AutoPrivateKey() return a valid B<EVP_KEY> structure -or B<NULL> if an error occurs. The error code can be obtained by calling -L<ERR_get_error(3)>. +The d2i_PrivateKey(), d2i_AutoPrivateKey(), d2i_PrivateKey_bio(), d2i_PrivateKey_fp(), +and d2i_PublicKey() functions return a valid B<EVP_KEY> structure or B<NULL> if an +error occurs. The error code can be obtained by calling L<ERR_get_error(3)>. -i2d_PrivateKey() returns the number of bytes successfully encoded or a -negative value if an error occurs. The error code can be obtained by calling -L<ERR_get_error(3)>. +i2d_PrivateKey() and i2d_PublicKey() return the number of bytes successfully +encoded or a negative value if an error occurs. The error code can be obtained +by calling L<ERR_get_error(3)>. =head1 SEE ALSO @@ -67,7 +71,7 @@ L<d2i_PKCS8PrivateKey_bio(3)> =head1 COPYRIGHT -Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/d2i_X509.pod b/doc/man3/d2i_X509.pod index 71985a44edf430b2a53fc11cba9eb8197b716342..3d50f5d9081a89db15442b2d1b7b8067ca04f998 100644 --- a/doc/man3/d2i_X509.pod +++ b/doc/man3/d2i_X509.pod @@ -496,6 +496,19 @@ Represents the B<DigestInfo> structure defined in PKCS#1 and PKCS#7. =back +=head1 RETURN VALUES + +d2i_TYPE(), d2i_TYPE_bio() and d2i_TYPE_fp() return a valid B<TYPE> structure +or B<NULL> if an error occurs. If the "reuse" capability has been used with +a valid structure being passed in via B<a>, then the object is not freed in +the event of error but may be in a potentially invalid or inconsistent state. + +i2d_TYPE() returns the number of bytes successfully encoded or a negative +value if an error occurs. + +i2d_TYPE_bio() and i2d_TYPE_fp() return 1 for success and 0 if an error +occurs. + =head1 EXAMPLES Allocate and encode the DER encoding of an X509 structure: @@ -586,22 +599,9 @@ structure has been modified after deserialization or previous serialization. This is because some objects cache the encoding for efficiency reasons. -=head1 RETURN VALUES - -d2i_TYPE(), d2i_TYPE_bio() and d2i_TYPE_fp() return a valid B<TYPE> structure -or B<NULL> if an error occurs. If the "reuse" capability has been used with -a valid structure being passed in via B<a>, then the object is not freed in -the event of error but may be in a potentially invalid or inconsistent state. - -i2d_TYPE() returns the number of bytes successfully encoded or a negative -value if an error occurs. - -i2d_TYPE_bio() and i2d_TYPE_fp() return 1 for success and 0 if an error -occurs. - =head1 COPYRIGHT -Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 1998-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man3/i2d_CMS_bio_stream.pod b/doc/man3/i2d_CMS_bio_stream.pod index ece7a4800eeed13cb42b7605a315f5beb0738c55..dd2bd213f1e1672c23712bbc2c8fc151273b70ac 100644 --- a/doc/man3/i2d_CMS_bio_stream.pod +++ b/doc/man3/i2d_CMS_bio_stream.pod @@ -39,7 +39,7 @@ L<PEM_write_bio_CMS_stream(3)> =head1 HISTORY -i2d_CMS_bio_stream() was added to OpenSSL 1.0.0 +The i2d_CMS_bio_stream() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man3/i2d_PKCS7_bio_stream.pod b/doc/man3/i2d_PKCS7_bio_stream.pod index b42940a83cfaf3e938631a841820dcc8eba86af9..a33aa08f2d3200bb136107b8275eb214f8cd6657 100644 --- a/doc/man3/i2d_PKCS7_bio_stream.pod +++ b/doc/man3/i2d_PKCS7_bio_stream.pod @@ -39,7 +39,7 @@ L<PEM_write_bio_PKCS7_stream(3)> =head1 HISTORY -i2d_PKCS7_bio_stream() was added to OpenSSL 1.0.0 +The i2d_PKCS7_bio_stream() function was added in OpenSSL 1.0.0. =head1 COPYRIGHT diff --git a/doc/man5/config.pod b/doc/man5/config.pod index 3e110b03135be30088a5ec5ce3c7beab6868aba9..992fdfccf917108e501f4c021983044b620f574a 100644 --- a/doc/man5/config.pod +++ b/doc/man5/config.pod @@ -42,6 +42,13 @@ working directory so unless the configuration file containing the B<.include> directive is application specific the inclusion will not work as expected. +There can be optional B<=> character and whitespace characters between +B<.include> directive and the path which can be useful in cases the +configuration file needs to be loaded by old OpenSSL versions which do +not support the B<.include> syntax. They would bail out with error +if the B<=> character is not present but with it they just ignore +the include. + Each section in a configuration file consists of a number of name and value pairs of the form B<name=value> @@ -419,7 +426,7 @@ L<x509(1)>, L<req(1)>, L<ca(1)> =head1 COPYRIGHT -Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. +Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy diff --git a/doc/man7/ct.pod b/doc/man7/ct.pod index 355204d2a632cd5dcc6d56b4cb0b939c0367396d..9f82c0ba44bec2351e1be56a0838a3ad2c331be8 100644 --- a/doc/man7/ct.pod +++ b/doc/man7/ct.pod @@ -15,7 +15,7 @@ clients, as defined in RFC 6962. This verification can provide some confidence that a certificate has been publicly logged in a set of CT logs. By default, these checks are disabled. They can be enabled using -SSL_CTX_ct_enable() or SSL_ct_enable(). +L<SSL_CTX_enable_ct(3)> or L<SSL_enable_ct(3)>. This library can also be used to parse and examine CT data structures, such as Signed Certificate Timestamps (SCTs), or to read a list of CT logs. There are @@ -39,7 +39,7 @@ L<SSL_CTX_set_ct_validation_callback(3)> =head1 HISTORY -This library was added in OpenSSL 1.1.0. +The ct library was added in OpenSSL 1.1.0. =head1 COPYRIGHT diff --git a/e_os.h b/e_os.h index 534059382b0a81d2a500564ae94c48203cf0b4c3..e9ce6c9cc8b9b04ce807f3644aa0f05da371cd73 100644 --- a/e_os.h +++ b/e_os.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -27,10 +27,9 @@ * set this to a comma-separated list of 'random' device files to try out. By * default, we will try to read at least one of these files */ -# if defined(__s390__) -# define DEVRANDOM "/dev/prandom","/dev/urandom","/dev/hwrng","/dev/random" -# else -# define DEVRANDOM "/dev/urandom","/dev/random","/dev/srandom" +# define DEVRANDOM "/dev/urandom", "/dev/random", "/dev/hwrng", "/dev/srandom" +# ifdef __linux +# define DEVRANDOM_WAIT "/dev/random" # endif # endif # if !defined(OPENSSL_NO_EGD) && !defined(DEVRANDOM_EGD) @@ -39,7 +38,7 @@ * sockets will be tried in the order listed in case accessing the device * files listed in DEVRANDOM did not return enough randomness. */ -# define DEVRANDOM_EGD "/var/run/egd-pool","/dev/egd-pool","/etc/egd-pool","/etc/entropy" +# define DEVRANDOM_EGD "/var/run/egd-pool", "/dev/egd-pool", "/etc/egd-pool", "/etc/entropy" # endif # if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) @@ -49,6 +48,7 @@ # define get_last_sys_error() errno # define clear_sys_error() errno=0 +# define set_sys_error(e) errno=(e) /******************************************************************** The Microsoft section @@ -66,8 +66,10 @@ # ifdef WIN32 # undef get_last_sys_error # undef clear_sys_error +# undef set_sys_error # define get_last_sys_error() GetLastError() # define clear_sys_error() SetLastError(0) +# define set_sys_error(e) SetLastError(e) # if !defined(WINNT) # define WIN_CONSOLE_BUG # endif diff --git a/engines/e_dasync.c b/engines/e_dasync.c index b005f421a6604388d16e4da92606d3ebf453d6e8..5cdacb66a043fbae5e1d71394b8ee83f5964b063 100644 --- a/engines/e_dasync.c +++ b/engines/e_dasync.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -138,7 +138,6 @@ struct dasync_pipeline_ctx { unsigned char **inbufs; unsigned char **outbufs; size_t *lens; - int enc; unsigned char tlsaad[SSL_MAX_PIPELINES][EVP_AEAD_TLS1_AAD_LEN]; unsigned int aadctr; }; @@ -156,6 +155,14 @@ static const EVP_CIPHER *dasync_aes_128_cbc(void) /* * Holds the EVP_CIPHER object for aes_128_cbc_hmac_sha1 in this engine. Set up * once only during engine bind and can then be reused many times. + * + * This 'stitched' cipher depends on the EVP_aes_128_cbc_hmac_sha1() cipher, + * which is implemented only if the AES-NI instruction set extension is available + * (see OPENSSL_IA32CAP(3)). If that's not the case, then this cipher will not + * be available either. + * + * Note: Since it is a legacy mac-then-encrypt cipher, modern TLS peers (which + * negotiate the encrypt-then-mac extension) won't negotiate it anyway. */ static EVP_CIPHER *_hidden_aes_128_cbc_hmac_sha1 = NULL; static const EVP_CIPHER *dasync_aes_128_cbc_hmac_sha1(void) @@ -603,7 +610,7 @@ static int dasync_cipher_ctrl_helper(EVP_CIPHER_CTX *ctx, int type, int arg, len = p[arg - 2] << 8 | p[arg - 1]; - if (pipe_ctx->enc) { + if (EVP_CIPHER_CTX_encrypting(ctx)) { if ((p[arg - 4] << 8 | p[arg - 3]) >= TLS1_1_VERSION) { if (len < AES_BLOCK_SIZE) return 0; @@ -752,6 +759,10 @@ static int dasync_aes128_cbc_hmac_sha1_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *iv, int enc) { + /* + * We can safely assume that EVP_aes_128_cbc_hmac_sha1() != NULL, + * see comment before the definition of dasync_aes_128_cbc_hmac_sha1(). + */ return dasync_cipher_init_key_helper(ctx, key, iv, enc, EVP_aes_128_cbc_hmac_sha1()); } @@ -766,5 +777,9 @@ static int dasync_aes128_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, static int dasync_aes128_cbc_hmac_sha1_cleanup(EVP_CIPHER_CTX *ctx) { + /* + * We can safely assume that EVP_aes_128_cbc_hmac_sha1() != NULL, + * see comment before the definition of dasync_aes_128_cbc_hmac_sha1(). + */ return dasync_cipher_cleanup_helper(ctx, EVP_aes_128_cbc_hmac_sha1()); } diff --git a/engines/e_padlock.c b/engines/e_padlock.c index f6b1f169810e43b5b5b50e8295ce1d508bdf9455..a82c07e81373fd114bf75fdfc1f1aac312b6889a 100644 --- a/engines/e_padlock.c +++ b/engines/e_padlock.c @@ -1,5 +1,5 @@ /* - * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -41,7 +41,7 @@ */ # undef COMPILE_HW_PADLOCK -# if !defined(I386_ONLY) && defined(PADLOCK_ASM) +# if defined(PADLOCK_ASM) # define COMPILE_HW_PADLOCK # ifdef OPENSSL_NO_DYNAMIC_ENGINE static ENGINE *ENGINE_padlock(void); @@ -148,7 +148,7 @@ static int padlock_init(ENGINE *e) * This stuff is needed if this ENGINE is being compiled into a * self-contained shared-library. */ -# ifdef DYNAMIC_ENGINE +# ifndef OPENSSL_NO_DYNAMIC_ENGINE static int padlock_bind_fn(ENGINE *e, const char *id) { if (id && (strcmp(id, padlock_id) != 0)) { @@ -164,7 +164,7 @@ static int padlock_bind_fn(ENGINE *e, const char *id) IMPLEMENT_DYNAMIC_CHECK_FN() IMPLEMENT_DYNAMIC_BIND_FN(padlock_bind_fn) -# endif /* DYNAMIC_ENGINE */ +# endif /* !OPENSSL_NO_DYNAMIC_ENGINE */ /* ===== Here comes the "real" engine ===== */ /* Some AES-related constants */ diff --git a/fuzz/oids.txt b/fuzz/oids.txt index fe363fd37eb51ca62cb735e8a8ca0209bfaa3a1c..eda55e4e792cd67a4e39cfa5ce8b280cba229aba 100644 --- a/fuzz/oids.txt +++ b/fuzz/oids.txt @@ -1057,7 +1057,7 @@ OBJ_id_tc26_wrap="\x2A\x85\x03\x07\x01\x01\x07" OBJ_id_tc26_wrap_gostr3412_2015_magma="\x2A\x85\x03\x07\x01\x01\x07\x01" OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x01\x01" OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik="\x2A\x85\x03\x07\x01\x01\x07\x02" -OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x01\x01" +OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15="\x2A\x85\x03\x07\x01\x01\x07\x02\x01" OBJ_id_tc26_gost_3410_2012_256_paramSetB="\x2A\x85\x03\x07\x01\x02\x01\x01\x02" OBJ_id_tc26_gost_3410_2012_256_paramSetC="\x2A\x85\x03\x07\x01\x02\x01\x01\x03" OBJ_id_tc26_gost_3410_2012_256_paramSetD="\x2A\x85\x03\x07\x01\x02\x01\x01\x04" diff --git a/include/internal/conf.h b/include/internal/conf.h index dc1e72508ace59b74c9dc87b3a78d49707b3209d..29bc9f963c91d24de38f4b393f5453d72a9ea3a3 100644 --- a/include/internal/conf.h +++ b/include/internal/conf.h @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -12,11 +12,18 @@ #include <openssl/conf.h> +#define DEFAULT_CONF_MFLAGS \ + (CONF_MFLAGS_DEFAULT_SECTION | \ + CONF_MFLAGS_IGNORE_MISSING_FILE | \ + CONF_MFLAGS_IGNORE_RETURN_CODES) + struct ossl_init_settings_st { + char *filename; char *appname; + unsigned long flags; }; -void openssl_config_int(const char *appname); +int openssl_config_int(const OPENSSL_INIT_SETTINGS *); void openssl_no_config_int(void); void conf_modules_free_int(void); diff --git a/include/internal/constant_time_locl.h b/include/internal/constant_time_locl.h index 82ff74652ecca58f74c11c6754b52a176cf530b7..cde30f4067ef19c17627fc89a3803db8996b1d5a 100644 --- a/include/internal/constant_time_locl.h +++ b/include/internal/constant_time_locl.h @@ -324,4 +324,10 @@ static ossl_inline void constant_time_lookup(void *out, } } +/* + * Expected usage pattern is to unconditionally set error and then + * wipe it if there was no actual error. |clear| is 1 or 0. + */ +void err_clear_last_constant_time(int clear); + #endif /* HEADER_CONSTANT_TIME_LOCL_H */ diff --git a/include/internal/cryptlib.h b/include/internal/cryptlib.h index 329ef62014f67f7ddcf44070e01433dd9b4ff08a..b4d76d5f2ed73595faca43ebd91a377e82673e75 100644 --- a/include/internal/cryptlib.h +++ b/include/internal/cryptlib.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -92,5 +92,7 @@ void *openssl_fopen(const char *filename, const char *mode); # endif uint32_t OPENSSL_rdtsc(void); +size_t OPENSSL_instrument_bus(unsigned int *, size_t); +size_t OPENSSL_instrument_bus2(unsigned int *, size_t, size_t); #endif diff --git a/include/internal/dsoerr.h b/include/internal/dsoerr.h index a54a18545e3c75bf5bc16bc144dcbe51a1734eb7..0edf277f705175181ca34c53399993eca457fd60 100644 --- a/include/internal/dsoerr.h +++ b/include/internal/dsoerr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -13,11 +13,9 @@ # include <openssl/opensslconf.h> -# ifndef OPENSSL_NO_DSO - -# ifdef __cplusplus +# ifdef __cplusplus extern "C" -# endif +# endif int ERR_load_DSO_strings(void); /* @@ -79,5 +77,4 @@ int ERR_load_DSO_strings(void); # define DSO_R_UNLOAD_FAILED 107 # define DSO_R_UNSUPPORTED 108 -# endif #endif diff --git a/include/internal/refcount.h b/include/internal/refcount.h index 75d70a6418b72be9f71682882a249cb39b9d4a45..d2364c6212211c9f161739cf33ef5bbd2d9cfded 100644 --- a/include/internal/refcount.h +++ b/include/internal/refcount.h @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -79,7 +79,7 @@ static __inline__ int CRYPTO_DOWN_REF(int *val, int *ret, void *lock) typedef volatile int CRYPTO_REF_COUNT; -# if (defined(_M_ARM) && _M_ARM>=7) || defined(_M_ARM64) +# if (defined(_M_ARM) && _M_ARM>=7 && !defined(_WIN32_WCE)) || defined(_M_ARM64) # include <intrin.h> # if defined(_M_ARM64) && !defined(_ARM_BARRIER_ISH) # define _ARM_BARRIER_ISH _ARM64_BARRIER_ISH @@ -99,7 +99,17 @@ static __inline int CRYPTO_DOWN_REF(volatile int *val, int *ret, void *lock) return 1; } # else -# pragma intrinsic(_InterlockedExchangeAdd) +# if !defined(_WIN32_WCE) +# pragma intrinsic(_InterlockedExchangeAdd) +# else +# if _WIN32_WCE >= 0x600 + extern long __cdecl _InterlockedExchangeAdd(long volatile*, long); +# else + // under Windows CE we still have old-style Interlocked* functions + extern long __cdecl InterlockedExchangeAdd(long volatile*, long); +# define _InterlockedExchangeAdd InterlockedExchangeAdd +# endif +# endif static __inline int CRYPTO_UP_REF(volatile int *val, int *ret, void *lock) { diff --git a/include/internal/sockets.h b/include/internal/sockets.h index a6026dad081e7561b8a941374335fd6f8c1c0233..5bb0355f07ed1a820a7e1266273b71da074b6378 100644 --- a/include/internal/sockets.h +++ b/include/internal/sockets.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -72,11 +72,7 @@ struct servent *PASCAL getservbyname(const char *, const char *); # else # include <sys/socket.h> # ifndef NO_SYS_UN_H -# ifdef OPENSSL_SYS_VXWORKS -# include <streams/un.h> -# else -# include <sys/un.h> -# endif +# include <sys/un.h> # ifndef UNIX_PATH_MAX # define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)NULL)->sun_path) # endif diff --git a/include/internal/thread_once.h b/include/internal/thread_once.h index 224244353ab419c1f8a33b44aee88e0840c49de3..8a25d04d2d4d9eb2d9d4d0b82b2a1b0c579a11e8 100644 --- a/include/internal/thread_once.h +++ b/include/internal/thread_once.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -9,6 +9,20 @@ #include <openssl/crypto.h> +/* + * DEFINE_RUN_ONCE: Define an initialiser function that should be run exactly + * once. It takes no arguments and returns and int result (1 for success or + * 0 for failure). Typical usage might be: + * + * DEFINE_RUN_ONCE(myinitfunc) + * { + * do_some_initialisation(); + * if (init_is_successful()) + * return 1; + * + * return 0; + * } + */ #define DEFINE_RUN_ONCE(init) \ static int init(void); \ int init##_ossl_ret_ = 0; \ @@ -17,10 +31,30 @@ init##_ossl_ret_ = init(); \ } \ static int init(void) + +/* + * DECLARE_RUN_ONCE: Declare an initialiser function that should be run exactly + * once that has been defined in another file via DEFINE_RUN_ONCE(). + */ #define DECLARE_RUN_ONCE(init) \ extern int init##_ossl_ret_; \ void init##_ossl_(void); +/* + * DEFINE_RUN_ONCE_STATIC: Define an initialiser function that should be run + * exactly once. This function will be declared as static within the file. It + * takes no arguments and returns and int result (1 for success or 0 for + * failure). Typical usage might be: + * + * DEFINE_RUN_ONCE_STATIC(myinitfunc) + * { + * do_some_initialisation(); + * if (init_is_successful()) + * return 1; + * + * return 0; + * } + */ #define DEFINE_RUN_ONCE_STATIC(init) \ static int init(void); \ static int init##_ossl_ret_ = 0; \ @@ -30,6 +64,46 @@ } \ static int init(void) +/* + * DEFINE_RUN_ONCE_STATIC_ALT: Define an alternative initialiser function. This + * function will be declared as static within the file. It takes no arguments + * and returns an int result (1 for success or 0 for failure). An alternative + * initialiser function is expected to be associated with a primary initialiser + * function defined via DEFINE_ONCE_STATIC where both functions use the same + * CRYPTO_ONCE object to synchronise. Where an alternative initialiser function + * is used only one of the primary or the alternative initialiser function will + * ever be called - and that function will be called exactly once. Definitition + * of an alternative initialiser function MUST occur AFTER the definition of the + * primary initialiser function. + * + * Typical usage might be: + * + * DEFINE_RUN_ONCE_STATIC(myinitfunc) + * { + * do_some_initialisation(); + * if (init_is_successful()) + * return 1; + * + * return 0; + * } + * + * DEFINE_RUN_ONCE_STATIC_ALT(myaltinitfunc, myinitfunc) + * { + * do_some_alternative_initialisation(); + * if (init_is_successful()) + * return 1; + * + * return 0; + * } + */ +#define DEFINE_RUN_ONCE_STATIC_ALT(initalt, init) \ + static int initalt(void); \ + static void initalt##_ossl_(void) \ + { \ + init##_ossl_ret_ = initalt(); \ + } \ + static int initalt(void) + /* * RUN_ONCE - use CRYPTO_THREAD_run_once, and check if the init succeeded * @once: pointer to static object of type CRYPTO_ONCE @@ -43,3 +117,21 @@ */ #define RUN_ONCE(once, init) \ (CRYPTO_THREAD_run_once(once, init##_ossl_) ? init##_ossl_ret_ : 0) + +/* + * RUN_ONCE_ALT - use CRYPTO_THREAD_run_once, to run an alternative initialiser + * function and check if that initialisation succeeded + * @once: pointer to static object of type CRYPTO_ONCE + * @initalt: alternative initialiser function name that was previously given to + * DEFINE_RUN_ONCE_STATIC_ALT. This function must return 1 for + * success or 0 for failure. + * @init: primary initialiser function name that was previously given to + * DEFINE_RUN_ONCE_STATIC. This function must return 1 for success or + * 0 for failure. + * + * The return value is 1 on success (*) or 0 in case of error. + * + * (*) by convention, since the init function must return 1 on success. + */ +#define RUN_ONCE_ALT(once, initalt, init) \ + (CRYPTO_THREAD_run_once(once, initalt##_ossl_) ? init##_ossl_ret_ : 0) diff --git a/include/internal/tsan_assist.h b/include/internal/tsan_assist.h index f30ffe398ac7d262614f265c94ef84212fd53d22..d41ebb341a422ab04b63018a12291ce68c230081 100644 --- a/include/internal/tsan_assist.h +++ b/include/internal/tsan_assist.h @@ -1,12 +1,12 @@ /* - * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ - + /* * Contemporary compilers implement lock-free atomic memory access * primitives that facilitate writing "thread-opportunistic" or even real @@ -77,7 +77,7 @@ #elif defined(_MSC_VER) && _MSC_VER>=1200 \ && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \ - defined(_M_ARM64) || (defined(_M_ARM) && _M_ARM >= 7)) + defined(_M_ARM64) || (defined(_M_ARM) && _M_ARM >= 7 && !defined(_WIN32_WCE))) /* * There is subtle dependency on /volatile:<iso|ms> command-line option. * "ms" implies same semantic as memory_order_acquire for loads and diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h index 7e50b1bf4694921b5da4845a04faf5674ae7ee7e..7d0b526236f8e579429614a9ac5076eca6f53556 100644 --- a/include/openssl/crypto.h +++ b/include/openssl/crypto.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -109,13 +109,8 @@ DEFINE_STACK_OF(void) # define CRYPTO_EX_INDEX_DRBG 15 # define CRYPTO_EX_INDEX__COUNT 16 -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) +/* No longer needed, so this is a no-op */ +#define OPENSSL_malloc_init() while(0) continue int CRYPTO_mem_ctrl(int mode); @@ -377,6 +372,7 @@ int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); /* OPENSSL_INIT_ZLIB 0x00010000L */ # define OPENSSL_INIT_ATFORK 0x00020000L /* OPENSSL_INIT_BASE_ONLY 0x00040000L */ +# define OPENSSL_INIT_NO_ATEXIT 0x00080000L /* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ /* Max OPENSSL_INIT flag value is 0x80000000 */ @@ -396,8 +392,12 @@ void OPENSSL_thread_stop(void); /* 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_file); + const char *config_appname); # endif void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); diff --git a/include/openssl/e_os2.h b/include/openssl/e_os2.h index eeae2154452918c7a04a2be95d79163c2d15ab00..97a776cdacc76817fb045b8e870208f89c922467 100644 --- a/include/openssl/e_os2.h +++ b/include/openssl/e_os2.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -287,6 +287,13 @@ typedef unsigned __int64 uint64_t; # define ossl_noreturn # endif +/* ossl_unused: portable unused attribute for use in public headers */ +# if defined(__GNUC__) +# define ossl_unused __attribute__((unused)) +# else +# define ossl_unused +# endif + #ifdef __cplusplus } #endif diff --git a/include/openssl/ecerr.h b/include/openssl/ecerr.h index 8d429387a2a29e5205858c95a7a6bd54349a3df3..be313d2856b89ab5a24e0c9c7604a2168f9b6a29 100644 --- a/include/openssl/ecerr.h +++ b/include/openssl/ecerr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -62,6 +62,7 @@ int ERR_load_EC_strings(void); # define EC_F_EC_ASN1_GROUP2CURVE 153 # define EC_F_EC_ASN1_GROUP2FIELDID 154 # define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 +# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 296 # define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 # define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 # define EC_F_EC_GF2M_SIMPLE_LADDER_POST 285 @@ -74,6 +75,7 @@ int ERR_load_EC_strings(void); # define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 # define EC_F_EC_GFP_MONT_FIELD_DECODE 133 # define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 +# define EC_F_EC_GFP_MONT_FIELD_INV 297 # define EC_F_EC_GFP_MONT_FIELD_MUL 131 # define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 # define EC_F_EC_GFP_MONT_FIELD_SQR 132 @@ -91,6 +93,7 @@ int ERR_load_EC_strings(void); # define EC_F_EC_GFP_NIST_FIELD_SQR 201 # define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 # define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 287 +# define EC_F_EC_GFP_SIMPLE_FIELD_INV 298 # define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 # define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 # define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 @@ -202,6 +205,7 @@ int ERR_load_EC_strings(void); # define EC_R_BAD_SIGNATURE 156 # define EC_R_BIGNUM_OUT_OF_RANGE 144 # define EC_R_BUFFER_TOO_SMALL 100 +# define EC_R_CANNOT_INVERT 165 # define EC_R_COORDINATES_OUT_OF_RANGE 146 # define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 # define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 diff --git a/include/openssl/err.h b/include/openssl/err.h index 6cae1a36510fb5be7507e292d1c7c4ed23af2c71..b49f88129e28a4349bdb3c4cece038b70665144f 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -37,6 +37,7 @@ extern "C" { # define ERR_TXT_STRING 0x02 # define ERR_FLAG_MARK 0x01 +# define ERR_FLAG_CLEAR 0x02 # define ERR_NUM_ERRORS 16 typedef struct err_state_st { diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 8c8051993ffe1f59f889e90ae2686ea1684a94f6..dd1117d0fe2d90124ff893c3bf9bfab41dce914e 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -945,14 +945,9 @@ const EVP_CIPHER *EVP_sm4_ctr(void); | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) # ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() # else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) +# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() # endif # define OpenSSL_add_all_ciphers() \ @@ -994,12 +989,13 @@ int EVP_PKEY_id(const EVP_PKEY *pkey); int EVP_PKEY_base_id(const EVP_PKEY *pkey); int EVP_PKEY_bits(const EVP_PKEY *pkey); int EVP_PKEY_security_bits(const EVP_PKEY *pkey); -int EVP_PKEY_size(EVP_PKEY *pkey); +int EVP_PKEY_size(const EVP_PKEY *pkey); int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); # ifndef OPENSSL_NO_ENGINE int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); +ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); # endif int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); void *EVP_PKEY_get0(const EVP_PKEY *pkey); diff --git a/include/openssl/evperr.h b/include/openssl/evperr.h index 3484fa841d15a9b8a5c0b224328b8f7878f5fa79..84f03eb3c45f081de4cccb9e95a7f3c9e73667e1 100644 --- a/include/openssl/evperr.h +++ b/include/openssl/evperr.h @@ -47,6 +47,7 @@ int ERR_load_EVP_strings(void); # define EVP_F_EVP_DECRYPTUPDATE 166 # define EVP_F_EVP_DIGESTFINALXOF 174 # define EVP_F_EVP_DIGESTINIT_EX 128 +# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 219 # define EVP_F_EVP_ENCRYPTFINAL_EX 127 # define EVP_F_EVP_ENCRYPTUPDATE 167 # define EVP_F_EVP_MD_CTX_COPY_EX 110 diff --git a/include/openssl/lhash.h b/include/openssl/lhash.h index 88d7d977b9ec3f9ddb2acfbdbcd7cf70c300b2b5..47b99d17fb8a1e542a965ecb16f3ae4907877593 100644 --- a/include/openssl/lhash.h +++ b/include/openssl/lhash.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -127,52 +127,52 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); return (LHASH_OF(type) *) \ OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ } \ - static ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ { \ OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ + 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_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *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_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *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_inline int lh_##type##_error(LHASH_OF(type) *lh) \ + static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ { \ return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ } \ - static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *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_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ + 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_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *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_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *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); \ } \ - static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *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_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ + 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_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ + 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); \ } \ @@ -185,7 +185,7 @@ void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); int_implement_lhash_doall(type, argtype, type) #define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_inline void \ + static ossl_unused ossl_inline void \ lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ void (*fn)(cbargtype *, argtype *), \ argtype *arg) \ @@ -210,6 +210,31 @@ DEFINE_LHASH_OF(OPENSSL_CSTRING); # pragma warning (pop) # endif +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_LH_new +# pragma weak OPENSSL_LH_free +# pragma weak OPENSSL_LH_insert +# pragma weak OPENSSL_LH_delete +# pragma weak OPENSSL_LH_retrieve +# pragma weak OPENSSL_LH_error +# pragma weak OPENSSL_LH_num_items +# pragma weak OPENSSL_LH_node_stats_bio +# pragma weak OPENSSL_LH_node_usage_stats_bio +# pragma weak OPENSSL_LH_stats_bio +# pragma weak OPENSSL_LH_get_down_load +# pragma weak OPENSSL_LH_set_down_load +# pragma weak OPENSSL_LH_doall +# pragma weak OPENSSL_LH_doall_arg +# endif /* __SUNPRO_C */ + #ifdef __cplusplus } #endif diff --git a/include/openssl/obj_mac.h b/include/openssl/obj_mac.h index 80ff5a7c869785637ef33e6ee7ed5f5dcefd0626..47dafe48d056512161490be76901ab105cb8909e 100644 --- a/include/openssl/obj_mac.h +++ b/include/openssl/obj_mac.h @@ -2,7 +2,7 @@ * WARNING: do not edit! * Generated by crypto/objects/objects.pl * - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at @@ -4280,7 +4280,7 @@ #define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" #define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1183 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L +#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L #define SN_id_tc26_constants "id-tc26-constants" #define NID_id_tc26_constants 994 diff --git a/include/openssl/ocsp.h b/include/openssl/ocsp.h index 0a17166b5bf6a8876961588ae483626032a71e55..8582fe1ee1a4dd438a9635ee63104165bd1953ab 100644 --- a/include/openssl/ocsp.h +++ b/include/openssl/ocsp.h @@ -1,5 +1,5 @@ /* - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -229,8 +229,8 @@ int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, int *pssl); -int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); +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); diff --git a/include/openssl/opensslv.h b/include/openssl/opensslv.h index af7a3b564e9deb05b04fadfd42c26d5ece1d5133..bdf44d47e599b45dc79098d002e3eb971fbc8ebb 100644 --- a/include/openssl/opensslv.h +++ b/include/openssl/opensslv.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -39,8 +39,8 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1010101fL -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1a 20 Nov 2018" +# define OPENSSL_VERSION_NUMBER 0x1010103fL +# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1c 28 May 2019" /*- * The macros below are to be used for shared library (.so, .dll, ...) diff --git a/include/openssl/safestack.h b/include/openssl/safestack.h index 7438b193608ca30fd6f16725465a3f54fbe15583..38b5578978cbaf601bd70713ef091712f54458a5 100644 --- a/include/openssl/safestack.h +++ b/include/openssl/safestack.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -24,96 +24,96 @@ extern "C" { 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_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ { \ return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ + 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_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ + 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_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ + static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ { \ return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ + 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_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int 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_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_free((OPENSSL_STACK *)sk); \ } \ - static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ + 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_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ + 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_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *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_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *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_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ { \ return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ } \ - static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ { \ return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ } \ - static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ + 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_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ + 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_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ + 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_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *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_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *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_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ + static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ { \ OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ } \ - static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *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_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *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_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *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) \ { \ @@ -121,7 +121,7 @@ extern "C" { (OPENSSL_sk_copyfunc)copyfunc, \ (OPENSSL_sk_freefunc)freefunc); \ } \ - static ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ + 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); \ } @@ -166,6 +166,41 @@ DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) typedef void *OPENSSL_BLOCK; DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) +/* + * If called without higher optimization (min. -xO3) the Oracle Developer + * Studio compiler generates code for the defined (static inline) functions + * above. + * This would later lead to the linker complaining about missing symbols when + * this header file is included but the resulting object is not linked against + * the Crypto library (openssl#6912). + */ +# ifdef __SUNPRO_C +# pragma weak OPENSSL_sk_num +# pragma weak OPENSSL_sk_value +# pragma weak OPENSSL_sk_new +# pragma weak OPENSSL_sk_new_null +# pragma weak OPENSSL_sk_new_reserve +# pragma weak OPENSSL_sk_reserve +# pragma weak OPENSSL_sk_free +# pragma weak OPENSSL_sk_zero +# pragma weak OPENSSL_sk_delete +# pragma weak OPENSSL_sk_delete_ptr +# pragma weak OPENSSL_sk_push +# pragma weak OPENSSL_sk_unshift +# pragma weak OPENSSL_sk_pop +# pragma weak OPENSSL_sk_shift +# pragma weak OPENSSL_sk_pop_free +# pragma weak OPENSSL_sk_insert +# pragma weak OPENSSL_sk_set +# pragma weak OPENSSL_sk_find +# pragma weak OPENSSL_sk_find_ex +# pragma weak OPENSSL_sk_sort +# pragma weak OPENSSL_sk_is_sorted +# pragma weak OPENSSL_sk_dup +# pragma weak OPENSSL_sk_deep_copy +# pragma weak OPENSSL_sk_set_cmp_func +# endif /* __SUNPRO_C */ + # ifdef __cplusplus } # endif diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index d6b1b4e6a67032f6302fc4254e42ebbe09d3fb25..f93dc68fefdb55d76217cbb154b618bddd412a64 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -494,6 +494,19 @@ typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); */ # 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 @@ -1904,17 +1917,17 @@ __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(SSL *s); +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(SSL *s); +__owur int SSL_renegotiate_pending(const 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(SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(SSL *s); +__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); @@ -2062,8 +2075,8 @@ void SSL_set_tmp_dh_callback(SSL *ssl, int keylength)); # endif -__owur const COMP_METHOD *SSL_get_current_compression(SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(SSL *s); +__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); @@ -2107,26 +2120,26 @@ 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(SSL_CTX *ctx); +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); void 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(SSL *ssl); +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(SSL *s); +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(SSL_CTX *ctx); +size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); # if OPENSSL_API_COMPAT < 0x10100000L # define SSL_cache_hit(s) SSL_session_reused(s) # endif -__owur int SSL_session_reused(SSL *s); +__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); diff --git a/include/openssl/sslerr.h b/include/openssl/sslerr.h index 87b295c9f93bfecddb6b7051d1d765082622d83c..a50a075b42ec2307eb623d9345fbbcab778fbcef 100644 --- a/include/openssl/sslerr.h +++ b/include/openssl/sslerr.h @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -596,6 +596,7 @@ int ERR_load_SSL_strings(void); # define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 # define SSL_R_MISSING_TMP_DH_KEY 171 # define SSL_R_MISSING_TMP_ECDH_KEY 311 +# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 # define SSL_R_NOT_ON_RECORD_BOUNDARY 182 # define SSL_R_NOT_REPLACING_CERTIFICATE 289 # define SSL_R_NOT_SERVER 284 diff --git a/include/openssl/x509_vfy.h b/include/openssl/x509_vfy.h index 2adb1559700ffc2ca23aa4bdad2ba5607a1e331a..adb8bce7cb4374fb4edcc871c8c3108a75c99f05 100644 --- a/include/openssl/x509_vfy.h +++ b/include/openssl/x509_vfy.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -362,7 +362,11 @@ X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); # 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 diff --git a/include/openssl/x509v3.h b/include/openssl/x509v3.h index fe1791c6819af5a3cfb4876541ef8106283ba19a..9ea20275ac34b40f38f07ec5521330bdc3b7b250 100644 --- a/include/openssl/x509v3.h +++ b/include/openssl/x509v3.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -497,10 +497,10 @@ 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(GENERAL_NAME *a, int *ptype); +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(GENERAL_NAME *gen, +int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue); char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, diff --git a/ms/uplink.c b/ms/uplink.c index 7f7abfbe57eb985433b2155153ebbf5ca2de77c6..cd4e96b7804c58bb761ed83022550c333e1fbadc 100644 --- a/ms/uplink.c +++ b/ms/uplink.c @@ -1,5 +1,5 @@ /* - * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2004-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,7 +28,7 @@ static TCHAR msg[128]; static void unimplemented(void) { OPENSSL_showfatal(sizeof(TCHAR) == sizeof(char) ? "%s\n" : "%S\n", msg); - ExitProcess(1); + TerminateProcess(GetCurrentProcess(), 1); } void OPENSSL_Uplink(volatile void **table, int index) diff --git a/ssl/record/rec_layer_d1.c b/ssl/record/rec_layer_d1.c index 1f9b31969d8268d8878d78b12183b49ab5879937..cb5d54ef5a8f4a4037b2eba324f69a3173aa9a0c 100644 --- a/ssl/record/rec_layer_d1.c +++ b/ssl/record/rec_layer_d1.c @@ -1,5 +1,5 @@ /* - * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2005-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -440,19 +440,6 @@ int dtls1_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, && SSL3_RECORD_get_length(rr) != 0) s->rlayer.alert_count = 0; - if (SSL3_RECORD_get_type(rr) != SSL3_RT_HANDSHAKE - && SSL3_RECORD_get_type(rr) != SSL3_RT_CHANGE_CIPHER_SPEC - && !SSL_in_init(s) - && (s->d1->next_timeout.tv_sec != 0 - || s->d1->next_timeout.tv_usec != 0)) { - /* - * The timer is still running but we've received something that isn't - * handshake data - so the peer must have finished processing our - * last handshake flight. Stop the timer. - */ - dtls1_stop_timer(s); - } - /* we now have a packet which can be read and processed */ if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, diff --git a/ssl/record/rec_layer_s3.c b/ssl/record/rec_layer_s3.c index 6d495715b22abce20d69a7918dcd170851324c23..b2f97ef905a4086afdcc890c30493d24796f25ec 100644 --- a/ssl/record/rec_layer_s3.c +++ b/ssl/record/rec_layer_s3.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -1315,6 +1315,14 @@ int ssl3_read_bytes(SSL *s, int type, int *recvd_type, unsigned char *buf, } while (num_recs == 0); rr = &rr[curr_rec]; + if (s->rlayer.handshake_fragment_len > 0 + && SSL3_RECORD_get_type(rr) != SSL3_RT_HANDSHAKE + && SSL_IS_TLS13(s)) { + SSLfatal(s, SSL_AD_UNEXPECTED_MESSAGE, SSL_F_SSL3_READ_BYTES, + SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA); + return -1; + } + /* * Reset the count of consecutive warning alerts if we've got a non-empty * record that isn't an alert. diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c index fca84ef99acf4034fbde73847e9a94a409a28e56..2e185e9fba9af71e044139b7839c4c2ee14da427 100644 --- a/ssl/s3_enc.c +++ b/ssl/s3_enc.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2005 Nokia. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -90,8 +90,6 @@ static int ssl3_generate_key_block(SSL *s, unsigned char *km, int num) int ssl3_change_cipher_state(SSL *s, int which) { unsigned char *p, *mac_secret; - unsigned char exp_key[EVP_MAX_KEY_LENGTH]; - unsigned char exp_iv[EVP_MAX_IV_LENGTH]; unsigned char *ms, *key, *iv; EVP_CIPHER_CTX *dd; const EVP_CIPHER *c; @@ -239,12 +237,8 @@ int ssl3_change_cipher_state(SSL *s, int which) } s->statem.enc_write_state = ENC_WRITE_STATE_VALID; - OPENSSL_cleanse(exp_key, sizeof(exp_key)); - OPENSSL_cleanse(exp_iv, sizeof(exp_iv)); return 1; err: - OPENSSL_cleanse(exp_key, sizeof(exp_key)); - OPENSSL_cleanse(exp_iv, sizeof(exp_iv)); return 0; } diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index 866ca4dfa9b0672d5fd07e7278e1993fce63a6bc..99ae48199c2d32eb91255a76e6b9b9cbc53c325c 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -3781,7 +3781,7 @@ long ssl3_ctx_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) EVP_PKEY_security_bits(pkdh), 0, pkdh)) { SSLerr(SSL_F_SSL3_CTX_CTRL, SSL_R_DH_KEY_TOO_SMALL); EVP_PKEY_free(pkdh); - return 1; + return 0; } EVP_PKEY_free(ctx->cert->dh_tmp); ctx->cert->dh_tmp = pkdh; diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index 14066d0ea4519868ba64e283298a83a461696da6..b60d67aa0dcb6b2dad320e225d80a896b734624d 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -171,6 +171,8 @@ static int ssl_mac_pkey_id[SSL_MD_NUM_IDX] = { EVP_PKEY_HMAC, EVP_PKEY_HMAC, EVP_PKEY_HMAC, NID_undef, /* GOST2012_512 */ EVP_PKEY_HMAC, + /* MD5/SHA1, SHA224, SHA512 */ + NID_undef, NID_undef, NID_undef }; static size_t ssl_mac_secret_size[SSL_MD_NUM_IDX]; diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c index 11331ce41fd3e640652b01bfbc379085395c5ecd..4b12ed1485d985360ad5b50b90f4618333055471 100644 --- a/ssl/ssl_err.c +++ b/ssl/ssl_err.c @@ -1,6 +1,6 @@ /* * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -965,6 +965,8 @@ static const ERR_STRING_DATA SSL_str_reasons[] = { {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_TMP_DH_KEY), "missing tmp dh key"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MISSING_TMP_ECDH_KEY), "missing tmp ecdh key"}, + {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA), + "mixed handshake and non handshake data"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_NOT_ON_RECORD_BOUNDARY), "not on record boundary"}, {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_NOT_REPLACING_CERTIFICATE), diff --git a/ssl/ssl_init.c b/ssl/ssl_init.c index c0ccb9304a636cea64f7d1430a43148e5a6dbcec..f0969fa9b1afab55a5bf61d0a74e2d2078521e23 100644 --- a/ssl/ssl_init.c +++ b/ssl/ssl_init.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -134,7 +134,8 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_load_ssl_strings) return 1; } -DEFINE_RUN_ONCE_STATIC(ossl_init_no_load_ssl_strings) +DEFINE_RUN_ONCE_STATIC_ALT(ossl_init_no_load_ssl_strings, + ossl_init_load_ssl_strings) { /* Do nothing in this case */ return 1; @@ -194,20 +195,22 @@ int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS * settings) return 0; } - if (!OPENSSL_init_crypto(opts + opts |= OPENSSL_INIT_ADD_ALL_CIPHERS + | OPENSSL_INIT_ADD_ALL_DIGESTS; #ifndef OPENSSL_NO_AUTOLOAD_CONFIG - | OPENSSL_INIT_LOAD_CONFIG + if ((opts & OPENSSL_INIT_NO_LOAD_CONFIG) == 0) + opts |= OPENSSL_INIT_LOAD_CONFIG; #endif - | OPENSSL_INIT_ADD_ALL_CIPHERS - | OPENSSL_INIT_ADD_ALL_DIGESTS, - settings)) + + if (!OPENSSL_init_crypto(opts, settings)) return 0; if (!RUN_ONCE(&ssl_base, ossl_init_ssl_base)) return 0; if ((opts & OPENSSL_INIT_NO_LOAD_SSL_STRINGS) - && !RUN_ONCE(&ssl_strings, ossl_init_no_load_ssl_strings)) + && !RUN_ONCE_ALT(&ssl_strings, ossl_init_no_load_ssl_strings, + ossl_init_load_ssl_strings)) return 0; if ((opts & OPENSSL_INIT_LOAD_SSL_STRINGS) diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 61a0ea2cc974b2109cc94cbd612309ee0df827a0..f559bc10eff4ed9bdba71859d5c585204f3efb49 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -2107,7 +2107,7 @@ int SSL_key_update(SSL *s, int updatetype) return 1; } -int SSL_get_key_update_type(SSL *s) +int SSL_get_key_update_type(const SSL *s) { return s->key_update; } @@ -2148,7 +2148,7 @@ int SSL_renegotiate_abbreviated(SSL *s) return s->method->ssl_renegotiate(s); } -int SSL_renegotiate_pending(SSL *s) +int SSL_renegotiate_pending(const SSL *s) { /* * becomes true when negotiation is requested; false again once a @@ -2508,6 +2508,26 @@ STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx) return NULL; } +/* + * Distinguish between ciphers controlled by set_ciphersuite() and + * set_cipher_list() when counting. + */ +static int cipher_list_tls12_num(STACK_OF(SSL_CIPHER) *sk) +{ + int i, num = 0; + const SSL_CIPHER *c; + + if (sk == NULL) + return 0; + for (i = 0; i < sk_SSL_CIPHER_num(sk); ++i) { + c = sk_SSL_CIPHER_value(sk, i); + if (c->min_tls >= TLS1_3_VERSION) + continue; + num++; + } + return num; +} + /** specify the ciphers to be used by default by the SSL_CTX */ int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str) { @@ -2525,7 +2545,7 @@ int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str) */ if (sk == NULL) return 0; - else if (sk_SSL_CIPHER_num(sk) == 0) { + else if (cipher_list_tls12_num(sk) == 0) { SSLerr(SSL_F_SSL_CTX_SET_CIPHER_LIST, SSL_R_NO_CIPHER_MATCH); return 0; } @@ -2543,7 +2563,7 @@ int SSL_set_cipher_list(SSL *s, const char *str) /* see comment in SSL_CTX_set_cipher_list */ if (sk == NULL) return 0; - else if (sk_SSL_CIPHER_num(sk) == 0) { + else if (cipher_list_tls12_num(sk) == 0) { SSLerr(SSL_F_SSL_SET_CIPHER_LIST, SSL_R_NO_CIPHER_MATCH); return 0; } @@ -3428,12 +3448,12 @@ void ssl_update_cache(SSL *s, int mode) } } -const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx) +const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx) { return ctx->method; } -const SSL_METHOD *SSL_get_ssl_method(SSL *s) +const SSL_METHOD *SSL_get_ssl_method(const SSL *s) { return s->method; } @@ -3871,7 +3891,7 @@ const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s) return s->s3->tmp.new_cipher; } -const COMP_METHOD *SSL_get_current_compression(SSL *s) +const COMP_METHOD *SSL_get_current_compression(const SSL *s) { #ifndef OPENSSL_NO_COMP return s->compress ? COMP_CTX_get_method(s->compress) : NULL; @@ -3880,7 +3900,7 @@ const COMP_METHOD *SSL_get_current_compression(SSL *s) #endif } -const COMP_METHOD *SSL_get_current_expansion(SSL *s) +const COMP_METHOD *SSL_get_current_expansion(const SSL *s) { #ifndef OPENSSL_NO_COMP return s->expand ? COMP_CTX_get_method(s->expand) : NULL; @@ -4328,7 +4348,7 @@ void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg) ctx->record_padding_arg = arg; } -void *SSL_CTX_get_record_padding_callback_arg(SSL_CTX *ctx) +void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx) { return ctx->record_padding_arg; } @@ -4357,7 +4377,7 @@ void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg) ssl->record_padding_arg = arg; } -void *SSL_get_record_padding_callback_arg(SSL *ssl) +void *SSL_get_record_padding_callback_arg(const SSL *ssl) { return ssl->record_padding_arg; } @@ -4381,7 +4401,7 @@ int SSL_set_num_tickets(SSL *s, size_t num_tickets) return 1; } -size_t SSL_get_num_tickets(SSL *s) +size_t SSL_get_num_tickets(const SSL *s) { return s->num_tickets; } @@ -4393,7 +4413,7 @@ int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets) return 1; } -size_t SSL_CTX_get_num_tickets(SSL_CTX *ctx) +size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx) { return ctx->num_tickets; } @@ -4458,7 +4478,7 @@ int ssl_handshake_hash(SSL *s, unsigned char *out, size_t outlen, return ret; } -int SSL_session_reused(SSL *s) +int SSL_session_reused(const SSL *s) { return s->hit; } @@ -5050,6 +5070,11 @@ int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen) if (ext->present) num++; } + if (num == 0) { + *out = NULL; + *outlen = 0; + return 1; + } if ((present = OPENSSL_malloc(sizeof(*present) * num)) == NULL) { SSLerr(SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT, ERR_R_MALLOC_FAILURE); diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h index 70e5a1740f9c4d1ec06f3c099b80bdbf8be84cbf..0cf3893e0648c59850d4173f94785ba2e727a681 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -574,7 +574,6 @@ struct ssl_session_st { /* Session lifetime hint in seconds */ unsigned long tick_lifetime_hint; uint32_t tick_age_add; - int tick_identity; /* Max number of bytes that can be sent as early data */ uint32_t max_early_data; /* The ALPN protocol selected for this session */ @@ -1170,8 +1169,6 @@ struct ssl_st { EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ unsigned char write_iv[EVP_MAX_IV_LENGTH]; /* TLSv1.3 static write IV */ EVP_MD_CTX *write_hash; /* used for mac generation */ - /* Count of how many KeyUpdate messages we have received */ - unsigned int key_update_count; /* session info */ /* client cert? */ /* This is used to hold the server certificate used */ @@ -1358,6 +1355,13 @@ struct ssl_st { * as this extension is optional on server side. */ uint8_t max_fragment_len_mode; + + /* + * On the client side the number of ticket identities we sent in the + * ClientHello. On the server side the identity of the ticket we + * selected. + */ + int tick_identity; } ext; /* @@ -1511,7 +1515,7 @@ typedef struct cert_pkey_st CERT_PKEY; * CERT_PKEY entries */ typedef struct { - int nid; /* NID of pubic key algorithm */ + int nid; /* NID of public key algorithm */ uint32_t amask; /* authmask corresponding to key type */ } SSL_CERT_LOOKUP; @@ -2054,9 +2058,6 @@ typedef enum downgrade_en { #define TLSEXT_KEX_MODE_FLAG_KE 1 #define TLSEXT_KEX_MODE_FLAG_KE_DHE 2 -/* An invalid index into the TLSv1.3 PSK identities */ -#define TLSEXT_PSK_BAD_IDENTITY -1 - #define SSL_USE_PSS(s) (s->s3->tmp.peer_sigalg != NULL && \ s->s3->tmp.peer_sigalg->sig == EVP_PKEY_RSA_PSS) @@ -2461,7 +2462,7 @@ __owur int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret, const unsigned char *label, size_t labellen, const unsigned char *data, size_t datalen, - unsigned char *out, size_t outlen); + unsigned char *out, size_t outlen, int fatal); __owur int tls13_derive_key(SSL *s, const EVP_MD *md, const unsigned char *secret, unsigned char *key, size_t keylen); diff --git a/ssl/statem/extensions.c b/ssl/statem/extensions.c index 63e61c6184acfd478b516196c50a89d8635811d5..b27608cbb199ef01389383520aa3539afc086022 100644 --- a/ssl/statem/extensions.c +++ b/ssl/statem/extensions.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -348,10 +348,12 @@ static const EXTENSION_DEFINITION ext_defs[] = { { /* * Special unsolicited ServerHello extension only used when - * SSL_OP_CRYPTOPRO_TLSEXT_BUG is set + * SSL_OP_CRYPTOPRO_TLSEXT_BUG is set. We allow it in a ClientHello but + * ignore it. */ TLSEXT_TYPE_cryptopro_bug, - SSL_EXT_TLS1_2_SERVER_HELLO | SSL_EXT_TLS1_2_AND_BELOW_ONLY, + SSL_EXT_CLIENT_HELLO | SSL_EXT_TLS1_2_SERVER_HELLO + | SSL_EXT_TLS1_2_AND_BELOW_ONLY, NULL, NULL, NULL, tls_construct_stoc_cryptopro_bug, NULL, NULL }, { @@ -623,7 +625,12 @@ int tls_collect_extensions(SSL *s, PACKET *packet, unsigned int context, && type != TLSEXT_TYPE_cookie && type != TLSEXT_TYPE_renegotiate && type != TLSEXT_TYPE_signed_certificate_timestamp - && (s->ext.extflags[idx] & SSL_EXT_FLAG_SENT) == 0) { + && (s->ext.extflags[idx] & SSL_EXT_FLAG_SENT) == 0 +#ifndef OPENSSL_NO_GOST + && !((context & SSL_EXT_TLS1_2_SERVER_HELLO) != 0 + && type == TLSEXT_TYPE_cryptopro_bug) +#endif + ) { SSLfatal(s, SSL_AD_UNSUPPORTED_EXTENSION, SSL_F_TLS_COLLECT_EXTENSIONS, SSL_R_UNSOLICITED_EXTENSION); goto err; @@ -982,7 +989,6 @@ static int final_server_name(SSL *s, unsigned int context, int sent) ss->ext.ticklen = 0; ss->ext.tick_lifetime_hint = 0; ss->ext.tick_age_add = 0; - ss->ext.tick_identity = 0; if (!ssl_generate_session_id(s, ss)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_FINAL_SERVER_NAME, ERR_R_INTERNAL_ERROR); @@ -1506,7 +1512,7 @@ int tls_psk_do_binder(SSL *s, const EVP_MD *md, const unsigned char *msgstart, /* Generate the binder key */ if (!tls13_hkdf_expand(s, md, early_secret, label, labelsize, hash, - hashsize, binderkey, hashsize)) { + hashsize, binderkey, hashsize, 1)) { /* SSLfatal() already called */ goto err; } @@ -1639,7 +1645,6 @@ static int final_early_data(SSL *s, unsigned int context, int sent) if (s->max_early_data == 0 || !s->hit - || s->session->ext.tick_identity != 0 || s->early_data_state != SSL_EARLY_DATA_ACCEPTING || !s->ext.early_data_ok || s->hello_retry_request != SSL_HRR_NONE diff --git a/ssl/statem/extensions_clnt.c b/ssl/statem/extensions_clnt.c index ab4dbf67131ec84db60fe0f7ee1a5521a725c57e..3c7d84427f082ea8916cc1057e526e4217138de7 100644 --- a/ssl/statem/extensions_clnt.c +++ b/ssl/statem/extensions_clnt.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -993,7 +993,7 @@ EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int context, const EVP_MD *handmd = NULL, *mdres = NULL, *mdpsk = NULL; int dores = 0; - s->session->ext.tick_identity = TLSEXT_PSK_BAD_IDENTITY; + s->ext.tick_identity = 0; /* * Note: At this stage of the code we only support adding a single @@ -1083,6 +1083,7 @@ EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int context, agems += s->session->ext.tick_age_add; reshashsize = EVP_MD_size(mdres); + s->ext.tick_identity++; dores = 1; } @@ -1142,6 +1143,7 @@ EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int context, ERR_R_INTERNAL_ERROR); return EXT_RETURN_FAIL; } + s->ext.tick_identity++; } if (!WPACKET_close(pkt) @@ -1180,11 +1182,6 @@ EXT_RETURN tls_construct_ctos_psk(SSL *s, WPACKET *pkt, unsigned int context, return EXT_RETURN_FAIL; } - if (dores) - s->session->ext.tick_identity = 0; - if (s->psksession != NULL) - s->psksession->ext.tick_identity = (dores ? 1 : 0); - return EXT_RETURN_SENT; #else return EXT_RETURN_NOT_SENT; @@ -1927,8 +1924,7 @@ int tls_parse_stoc_early_data(SSL *s, PACKET *pkt, unsigned int context, } if (!s->ext.early_data_ok - || !s->hit - || s->session->ext.tick_identity != 0) { + || !s->hit) { /* * If we get here then we didn't send early data, or we didn't resume * using the first identity, or the SNI/ALPN is not consistent so the @@ -1956,17 +1952,28 @@ int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, return 0; } - if (s->session->ext.tick_identity == (int)identity) { + if (identity >= (unsigned int)s->ext.tick_identity) { + SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_F_TLS_PARSE_STOC_PSK, + SSL_R_BAD_PSK_IDENTITY); + return 0; + } + + /* + * Session resumption tickets are always sent before PSK tickets. If the + * ticket index is 0 then it must be for a session resumption ticket if we + * sent two tickets, or if we didn't send a PSK ticket. + */ + if (identity == 0 && (s->psksession == NULL || s->ext.tick_identity == 2)) { s->hit = 1; SSL_SESSION_free(s->psksession); s->psksession = NULL; return 1; } - if (s->psksession == NULL - || s->psksession->ext.tick_identity != (int)identity) { - SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_F_TLS_PARSE_STOC_PSK, - SSL_R_BAD_PSK_IDENTITY); + if (s->psksession == NULL) { + /* Should never happen */ + SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PARSE_STOC_PSK, + ERR_R_INTERNAL_ERROR); return 0; } @@ -1985,6 +1992,9 @@ int tls_parse_stoc_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, s->session = s->psksession; s->psksession = NULL; s->hit = 1; + /* Early data is only allowed if we used the first ticket */ + if (identity != 0) + s->ext.early_data_ok = 0; #endif return 1; diff --git a/ssl/statem/extensions_srvr.c b/ssl/statem/extensions_srvr.c index 0f2b22392bcafa171b386b449864eab8e96e597a..6301b4e77caf6235bf09c75433791344c90bc378 100644 --- a/ssl/statem/extensions_srvr.c +++ b/ssl/statem/extensions_srvr.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -1274,7 +1274,7 @@ int tls_parse_ctos_psk(SSL *s, PACKET *pkt, unsigned int context, X509 *x, goto err; } - sess->ext.tick_identity = id; + s->ext.tick_identity = id; SSL_SESSION_free(s->session); s->session = sess; @@ -1948,7 +1948,7 @@ EXT_RETURN tls_construct_stoc_psk(SSL *s, WPACKET *pkt, unsigned int context, if (!WPACKET_put_bytes_u16(pkt, TLSEXT_TYPE_psk) || !WPACKET_start_sub_packet_u16(pkt) - || !WPACKET_put_bytes_u16(pkt, s->session->ext.tick_identity) + || !WPACKET_put_bytes_u16(pkt, s->ext.tick_identity) || !WPACKET_close(pkt)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_CONSTRUCT_STOC_PSK, ERR_R_INTERNAL_ERROR); diff --git a/ssl/statem/statem.c b/ssl/statem/statem.c index f76c0e48034b8fca23d7493722fe46d84178cce4..e3c5ec003874bb1a042e9153d6369127e4610d56 100644 --- a/ssl/statem/statem.c +++ b/ssl/statem/statem.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -342,8 +342,10 @@ static int state_machine(SSL *s, int server) } s->server = server; - if (cb != NULL) - cb(s, SSL_CB_HANDSHAKE_START, 1); + if (cb != NULL) { + if (SSL_IS_FIRST_HANDSHAKE(s) || !SSL_IS_TLS13(s)) + cb(s, SSL_CB_HANDSHAKE_START, 1); + } /* * Fatal errors in this block don't send an alert because we have diff --git a/ssl/statem/statem_clnt.c b/ssl/statem/statem_clnt.c index 0a11b88183e3375ea01f9a4570d8b547446acf5a..87800cd8351c122f7bc737c0ff5791c89910cbe3 100644 --- a/ssl/statem/statem_clnt.c +++ b/ssl/statem/statem_clnt.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -1112,13 +1112,6 @@ int tls_construct_client_hello(SSL *s, WPACKET *pkt) SSL_SESSION *sess = s->session; unsigned char *session_id; - if (!WPACKET_set_max_size(pkt, SSL3_RT_MAX_PLAIN_LENGTH)) { - /* Should not happen */ - SSLfatal(s, SSL_AD_INTERNAL_ERROR, - SSL_F_TLS_CONSTRUCT_CLIENT_HELLO, ERR_R_INTERNAL_ERROR); - return 0; - } - /* Work out what SSL/TLS/DTLS version to use */ protverr = ssl_set_client_hello_version(s); if (protverr != 0) { @@ -1620,10 +1613,7 @@ MSG_PROCESS_RETURN tls_process_server_hello(SSL *s, PACKET *pkt) * so the PAC-based session secret is always preserved. It'll be * overwritten if the server refuses resumption. */ - if (s->session->session_id_length > 0 - || (SSL_IS_TLS13(s) - && s->session->ext.tick_identity - != TLSEXT_PSK_BAD_IDENTITY)) { + if (s->session->session_id_length > 0) { tsan_counter(&s->session_ctx->stats.sess_miss); if (!ssl_get_new_session(s, 0)) { /* SSLfatal() already called */ @@ -1714,6 +1704,7 @@ MSG_PROCESS_RETURN tls_process_server_hello(SSL *s, PACKET *pkt) if (SSL_IS_DTLS(s) && s->hit) { unsigned char sctpauthkey[64]; char labelbuffer[sizeof(DTLS1_SCTP_AUTH_LABEL)]; + size_t labellen; /* * Add new shared key for SCTP-Auth, will be ignored if @@ -1722,10 +1713,15 @@ MSG_PROCESS_RETURN tls_process_server_hello(SSL *s, PACKET *pkt) memcpy(labelbuffer, DTLS1_SCTP_AUTH_LABEL, sizeof(DTLS1_SCTP_AUTH_LABEL)); + /* Don't include the terminating zero. */ + labellen = sizeof(labelbuffer) - 1; + if (s->mode & SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG) + labellen += 1; + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, 0) <= 0) { + labellen, NULL, 0, 0) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_SERVER_HELLO, ERR_R_INTERNAL_ERROR); goto err; @@ -2353,7 +2349,8 @@ MSG_PROCESS_RETURN tls_process_key_exchange(SSL *s, PACKET *pkt) } #ifdef SSL_DEBUG if (SSL_USE_SIGALGS(s)) - fprintf(stderr, "USING TLSv1.2 HASH %s\n", EVP_MD_name(md)); + fprintf(stderr, "USING TLSv1.2 HASH %s\n", + md == NULL ? "n/a" : EVP_MD_name(md)); #endif if (!PACKET_get_length_prefixed_2(pkt, &signature) @@ -2739,7 +2736,7 @@ MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt) PACKET_data(&nonce), PACKET_remaining(&nonce), s->session->master_key, - hashlen)) { + hashlen, 1)) { /* SSLfatal() already called */ goto err; } @@ -3403,6 +3400,7 @@ int tls_client_key_exchange_post_work(SSL *s) if (SSL_IS_DTLS(s)) { unsigned char sctpauthkey[64]; char labelbuffer[sizeof(DTLS1_SCTP_AUTH_LABEL)]; + size_t labellen; /* * Add new shared key for SCTP-Auth, will be ignored if no SCTP @@ -3411,9 +3409,14 @@ int tls_client_key_exchange_post_work(SSL *s) memcpy(labelbuffer, DTLS1_SCTP_AUTH_LABEL, sizeof(DTLS1_SCTP_AUTH_LABEL)); + /* Don't include the terminating zero. */ + labellen = sizeof(labelbuffer) - 1; + if (s->mode & SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG) + labellen += 1; + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, 0) <= 0) { + labellen, NULL, 0, 0) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK, ERR_R_INTERNAL_ERROR); diff --git a/ssl/statem/statem_lib.c b/ssl/statem/statem_lib.c index 4324896f500ac11aa6b18fe5ccbaccc483d0c670..c0482b0a90563d19d4931d9926c7ccdfeb386894 100644 --- a/ssl/statem/statem_lib.c +++ b/ssl/statem/statem_lib.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -396,7 +396,8 @@ MSG_PROCESS_RETURN tls_process_cert_verify(SSL *s, PACKET *pkt) #ifdef SSL_DEBUG if (SSL_USE_SIGALGS(s)) - fprintf(stderr, "USING TLSv1.2 HASH %s\n", EVP_MD_name(md)); + fprintf(stderr, "USING TLSv1.2 HASH %s\n", + md == NULL ? "n/a" : EVP_MD_name(md)); #endif /* Check for broken implementations of GOST ciphersuites */ @@ -439,7 +440,8 @@ MSG_PROCESS_RETURN tls_process_cert_verify(SSL *s, PACKET *pkt) } #ifdef SSL_DEBUG - fprintf(stderr, "Using client verify alg %s\n", EVP_MD_name(md)); + fprintf(stderr, "Using client verify alg %s\n", + md == NULL ? "n/a" : EVP_MD_name(md)); #endif if (EVP_DigestVerifyInit(mctx, &pctx, md, NULL, pkey) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_PROCESS_CERT_VERIFY, @@ -612,13 +614,6 @@ MSG_PROCESS_RETURN tls_process_key_update(SSL *s, PACKET *pkt) { unsigned int updatetype; - s->key_update_count++; - if (s->key_update_count > MAX_KEY_UPDATE_MESSAGES) { - SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_F_TLS_PROCESS_KEY_UPDATE, - SSL_R_TOO_MANY_KEY_UPDATES); - return MSG_PROCESS_ERROR; - } - /* * A KeyUpdate message signals a key change so the end of the message must * be on a record boundary. @@ -1028,6 +1023,7 @@ unsigned long ssl3_output_cert_chain(SSL *s, WPACKET *pkt, CERT_PKEY *cpk) WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop) { void (*cb) (const SSL *ssl, int type, int val) = NULL; + int cleanuphand = s->statem.cleanuphand; if (clearbufs) { if (!SSL_IS_DTLS(s)) { @@ -1054,7 +1050,7 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop) * Only set if there was a Finished message and this isn't after a TLSv1.3 * post handshake exchange */ - if (s->statem.cleanuphand) { + if (cleanuphand) { /* skipped if we just sent a HelloRequest */ s->renegotiate = 0; s->new_session = 0; @@ -1074,15 +1070,6 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop) /* N.B. s->ctx may not equal s->session_ctx */ tsan_counter(&s->ctx->stats.sess_accept_good); s->handshake_func = ossl_statem_accept; - - if (SSL_IS_DTLS(s) && !s->hit) { - /* - * We are finishing after the client. We start the timer going - * in case there are any retransmits of our final flight - * required. - */ - dtls1_start_timer(s); - } } else { if (SSL_IS_TLS13(s)) { /* @@ -1104,15 +1091,6 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop) s->handshake_func = ossl_statem_connect; tsan_counter(&s->session_ctx->stats.sess_connect_good); - - if (SSL_IS_DTLS(s) && s->hit) { - /* - * We are finishing after the server. We start the timer going - * in case there are any retransmits of our final flight - * required. - */ - dtls1_start_timer(s); - } } if (SSL_IS_DTLS(s)) { @@ -1132,8 +1110,12 @@ WORK_STATE tls_finish_handshake(SSL *s, WORK_STATE wst, int clearbufs, int stop) /* The callback may expect us to not be in init at handshake done */ ossl_statem_set_in_init(s, 0); - if (cb != NULL) - cb(s, SSL_CB_HANDSHAKE_DONE, 1); + if (cb != NULL) { + if (cleanuphand + || !SSL_IS_TLS13(s) + || SSL_IS_FIRST_HANDSHAKE(s)) + cb(s, SSL_CB_HANDSHAKE_DONE, 1); + } if (!stop) { /* If we've got more work to do we go back into init */ diff --git a/ssl/statem/statem_locl.h b/ssl/statem/statem_locl.h index 6b8cf37faa011644e6fedd43d41e45a9936d9b3c..e27c0c13a2bbd54bc0064ced3610204de8b97460 100644 --- a/ssl/statem/statem_locl.h +++ b/ssl/statem/statem_locl.h @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -29,9 +29,6 @@ /* Max should actually be 36 but we are generous */ #define FINISHED_MAX_LENGTH 64 -/* The maximum number of incoming KeyUpdate messages we will accept */ -#define MAX_KEY_UPDATE_MESSAGES 32 - /* Dummy message type */ #define SSL3_MT_DUMMY -1 diff --git a/ssl/statem/statem_srvr.c b/ssl/statem/statem_srvr.c index e7c11c4bea4deebd7445cc8523f9c9e7d723846a..d454326a9971f5866ff6e32e06d2318c22662bbd 100644 --- a/ssl/statem/statem_srvr.c +++ b/ssl/statem/statem_srvr.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -774,6 +774,10 @@ static ossl_inline int conn_is_closed(void) #if defined(ECONNRESET) case ECONNRESET: return 1; +#endif +#if defined(WSAECONNRESET) + case WSAECONNRESET: + return 1; #endif default: return 0; @@ -830,6 +834,7 @@ WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst) if (SSL_IS_DTLS(s) && s->hit) { unsigned char sctpauthkey[64]; char labelbuffer[sizeof(DTLS1_SCTP_AUTH_LABEL)]; + size_t labellen; /* * Add new shared key for SCTP-Auth, will be ignored if no @@ -838,9 +843,14 @@ WORK_STATE ossl_statem_server_post_work(SSL *s, WORK_STATE wst) memcpy(labelbuffer, DTLS1_SCTP_AUTH_LABEL, sizeof(DTLS1_SCTP_AUTH_LABEL)); + /* Don't include the terminating zero. */ + labellen = sizeof(labelbuffer) - 1; + if (s->mode & SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG) + labellen += 1; + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, + labellen, NULL, 0, 0) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_OSSL_STATEM_SERVER_POST_WORK, @@ -3500,6 +3510,7 @@ WORK_STATE tls_post_process_client_key_exchange(SSL *s, WORK_STATE wst) if (SSL_IS_DTLS(s)) { unsigned char sctpauthkey[64]; char labelbuffer[sizeof(DTLS1_SCTP_AUTH_LABEL)]; + size_t labellen; /* * Add new shared key for SCTP-Auth, will be ignored if no SCTP * used. @@ -3507,9 +3518,14 @@ WORK_STATE tls_post_process_client_key_exchange(SSL *s, WORK_STATE wst) memcpy(labelbuffer, DTLS1_SCTP_AUTH_LABEL, sizeof(DTLS1_SCTP_AUTH_LABEL)); + /* Don't include the terminating zero. */ + labellen = sizeof(labelbuffer) - 1; + if (s->mode & SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG) + labellen += 1; + if (SSL_export_keying_material(s, sctpauthkey, sizeof(sctpauthkey), labelbuffer, - sizeof(labelbuffer), NULL, 0, + labellen, NULL, 0, 0) <= 0) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE, @@ -4028,7 +4044,6 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt) uint64_t nonce; static const unsigned char nonce_label[] = "resumption"; const EVP_MD *md = ssl_handshake_md(s); - void (*cb) (const SSL *ssl, int type, int val) = NULL; int hashleni = EVP_MD_size(md); /* Ensure cast to size_t is safe */ @@ -4040,24 +4055,6 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt) } hashlen = (size_t)hashleni; - if (s->info_callback != NULL) - cb = s->info_callback; - else if (s->ctx->info_callback != NULL) - cb = s->ctx->info_callback; - - if (cb != NULL) { - /* - * We don't start and stop the handshake in between each ticket when - * sending more than one - but it should appear that way to the info - * callback. - */ - if (s->sent_tickets != 0) { - ossl_statem_set_in_init(s, 0); - cb(s, SSL_CB_HANDSHAKE_DONE, 1); - ossl_statem_set_in_init(s, 1); - } - cb(s, SSL_CB_HANDSHAKE_START, 1); - } /* * If we already sent one NewSessionTicket, or we resumed then * s->session may already be in a cache and so we must not modify it. @@ -4099,7 +4096,7 @@ int tls_construct_new_session_ticket(SSL *s, WPACKET *pkt) tick_nonce, TICKET_NONCE_SIZE, s->session->master_key, - hashlen)) { + hashlen, 1)) { /* SSLfatal() already called */ goto err; } diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c index 2db913fb0687fd010efccd5744b2fece94df999c..57fb17a66031b7be1550ff05679435077e2c679c 100644 --- a/ssl/t1_enc.c +++ b/ssl/t1_enc.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2005 Nokia. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -81,10 +81,6 @@ static int tls1_generate_key_block(SSL *s, unsigned char *km, size_t num) int tls1_change_cipher_state(SSL *s, int which) { unsigned char *p, *mac_secret; - unsigned char tmp1[EVP_MAX_KEY_LENGTH]; - unsigned char tmp2[EVP_MAX_KEY_LENGTH]; - unsigned char iv1[EVP_MAX_IV_LENGTH * 2]; - unsigned char iv2[EVP_MAX_IV_LENGTH * 2]; unsigned char *ms, *key, *iv; EVP_CIPHER_CTX *dd; const EVP_CIPHER *c; @@ -334,16 +330,8 @@ int tls1_change_cipher_state(SSL *s, int which) printf("\n"); #endif - OPENSSL_cleanse(tmp1, sizeof(tmp1)); - OPENSSL_cleanse(tmp2, sizeof(tmp1)); - OPENSSL_cleanse(iv1, sizeof(iv1)); - OPENSSL_cleanse(iv2, sizeof(iv2)); return 1; err: - OPENSSL_cleanse(tmp1, sizeof(tmp1)); - OPENSSL_cleanse(tmp2, sizeof(tmp1)); - OPENSSL_cleanse(iv1, sizeof(iv1)); - OPENSSL_cleanse(iv2, sizeof(iv2)); return 0; } diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index fc41ed90e710d8a5bec434c06a52a4d120ae7a86..68cb237ea95ee6f60baa4a33178e59cccb68c9ee 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -2537,7 +2537,8 @@ static int tls12_get_cert_sigalg_idx(const SSL *s, const SIGALG_LOOKUP *lu) static int has_usable_cert(SSL *s, const SIGALG_LOOKUP *sig, int idx) { const SIGALG_LOOKUP *lu; - int mdnid, pknid; + int mdnid, pknid, default_mdnid; + int mandatory_md = 0; size_t i; /* TLS 1.2 callers can override lu->sig_idx, but not TLS 1.3 callers. */ @@ -2545,12 +2546,26 @@ static int has_usable_cert(SSL *s, const SIGALG_LOOKUP *sig, int idx) idx = sig->sig_idx; if (!ssl_has_cert(s, idx)) return 0; + /* If the EVP_PKEY reports a mandatory digest, allow nothing else. */ + ERR_set_mark(); + switch (EVP_PKEY_get_default_digest_nid(s->cert->pkeys[idx].privatekey, + &default_mdnid)) { + case 2: + mandatory_md = 1; + break; + case 1: + break; + default: /* If it didn't report a mandatory NID, for whatever reasons, + * just clear the error and allow all hashes to be used. */ + ERR_pop_to_mark(); + } if (s->s3->tmp.peer_cert_sigalgs != NULL) { for (i = 0; i < s->s3->tmp.peer_cert_sigalgslen; i++) { lu = tls1_lookup_sigalg(s->s3->tmp.peer_cert_sigalgs[i]); if (lu == NULL || !X509_get_signature_info(s->cert->pkeys[idx].x509, &mdnid, - &pknid, NULL, NULL)) + &pknid, NULL, NULL) + || (mandatory_md && mdnid != default_mdnid)) continue; /* * TODO this does not differentiate between the @@ -2563,7 +2578,7 @@ static int has_usable_cert(SSL *s, const SIGALG_LOOKUP *sig, int idx) } return 0; } - return 1; + return !mandatory_md || sig->hash == default_mdnid; } /* diff --git a/ssl/tls13_enc.c b/ssl/tls13_enc.c index b6825d20c2dc0bba5c199fef9c76dbbab8d88d35..1f956e61e9c1c8a3b9be2137444b9338d6966848 100644 --- a/ssl/tls13_enc.c +++ b/ssl/tls13_enc.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -13,14 +13,7 @@ #include <openssl/evp.h> #include <openssl/kdf.h> -/* - * RFC 8446, 7.1 Key Schedule, says: - * Note: With common hash functions, any label longer than 12 characters - * requires an additional iteration of the hash function to compute. - * The labels in this specification have all been chosen to fit within - * this limit. - */ -#define TLS13_MAX_LABEL_LEN 12 +#define TLS13_MAX_LABEL_LEN 249 /* Always filled with zeros */ static const unsigned char default_zeros[EVP_MAX_MD_SIZE]; @@ -29,12 +22,13 @@ static const unsigned char default_zeros[EVP_MAX_MD_SIZE]; * Given a |secret|; a |label| of length |labellen|; and |data| of length * |datalen| (e.g. typically a hash of the handshake messages), derive a new * secret |outlen| bytes long and store it in the location pointed to be |out|. - * The |data| value may be zero length. Returns 1 on success 0 on failure. + * The |data| value may be zero length. Any errors will be treated as fatal if + * |fatal| is set. Returns 1 on success 0 on failure. */ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret, const unsigned char *label, size_t labellen, const unsigned char *data, size_t datalen, - unsigned char *out, size_t outlen) + unsigned char *out, size_t outlen, int fatal) { static const unsigned char label_prefix[] = "tls13 "; EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, NULL); @@ -47,13 +41,28 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret, * + bytes for the hash itself */ unsigned char hkdflabel[sizeof(uint16_t) + sizeof(uint8_t) + - + sizeof(label_prefix) + TLS13_MAX_LABEL_LEN - + EVP_MAX_MD_SIZE]; + + (sizeof(label_prefix) - 1) + TLS13_MAX_LABEL_LEN + + 1 + EVP_MAX_MD_SIZE]; WPACKET pkt; if (pctx == NULL) return 0; + if (labellen > TLS13_MAX_LABEL_LEN) { + if (fatal) { + SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_HKDF_EXPAND, + ERR_R_INTERNAL_ERROR); + } else { + /* + * Probably we have been called from SSL_export_keying_material(), + * or SSL_export_keying_material_early(). + */ + SSLerr(SSL_F_TLS13_HKDF_EXPAND, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL); + } + EVP_PKEY_CTX_free(pctx); + return 0; + } + hashlen = EVP_MD_size(md); if (!WPACKET_init_static_len(&pkt, hkdflabel, sizeof(hkdflabel), 0) @@ -67,8 +76,11 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret, || !WPACKET_finish(&pkt)) { EVP_PKEY_CTX_free(pctx); WPACKET_cleanup(&pkt); - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_HKDF_EXPAND, - ERR_R_INTERNAL_ERROR); + if (fatal) + SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_HKDF_EXPAND, + ERR_R_INTERNAL_ERROR); + else + SSLerr(SSL_F_TLS13_HKDF_EXPAND, ERR_R_INTERNAL_ERROR); return 0; } @@ -82,9 +94,13 @@ int tls13_hkdf_expand(SSL *s, const EVP_MD *md, const unsigned char *secret, EVP_PKEY_CTX_free(pctx); - if (ret != 0) - SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_HKDF_EXPAND, - ERR_R_INTERNAL_ERROR); + if (ret != 0) { + if (fatal) + SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_HKDF_EXPAND, + ERR_R_INTERNAL_ERROR); + else + SSLerr(SSL_F_TLS13_HKDF_EXPAND, ERR_R_INTERNAL_ERROR); + } return ret == 0; } @@ -99,7 +115,7 @@ int tls13_derive_key(SSL *s, const EVP_MD *md, const unsigned char *secret, static const unsigned char keylabel[] = "key"; return tls13_hkdf_expand(s, md, secret, keylabel, sizeof(keylabel) - 1, - NULL, 0, key, keylen); + NULL, 0, key, keylen, 1); } /* @@ -112,7 +128,7 @@ int tls13_derive_iv(SSL *s, const EVP_MD *md, const unsigned char *secret, static const unsigned char ivlabel[] = "iv"; return tls13_hkdf_expand(s, md, secret, ivlabel, sizeof(ivlabel) - 1, - NULL, 0, iv, ivlen); + NULL, 0, iv, ivlen, 1); } int tls13_derive_finishedkey(SSL *s, const EVP_MD *md, @@ -122,7 +138,7 @@ int tls13_derive_finishedkey(SSL *s, const EVP_MD *md, static const unsigned char finishedlabel[] = "finished"; return tls13_hkdf_expand(s, md, secret, finishedlabel, - sizeof(finishedlabel) - 1, NULL, 0, fin, finlen); + sizeof(finishedlabel) - 1, NULL, 0, fin, finlen, 1); } /* @@ -185,7 +201,7 @@ int tls13_generate_secret(SSL *s, const EVP_MD *md, if (!tls13_hkdf_expand(s, md, prevsecret, (unsigned char *)derived_secret_label, sizeof(derived_secret_label) - 1, hash, mdlen, - preextractsec, mdlen)) { + preextractsec, mdlen, 1)) { /* SSLfatal() already called */ EVP_PKEY_CTX_free(pctx); return 0; @@ -307,11 +323,9 @@ int tls13_setup_key_block(SSL *s) { const EVP_CIPHER *c; const EVP_MD *hash; - int mac_type = NID_undef; s->session->cipher = s->s3->tmp.new_cipher; - if (!ssl_cipher_get_evp - (s->session, &c, &hash, &mac_type, NULL, NULL, 0)) { + if (!ssl_cipher_get_evp(s->session, &c, &hash, NULL, NULL, NULL, 0)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_SETUP_KEY_BLOCK, SSL_R_CIPHER_OR_HASH_UNAVAILABLE); return 0; @@ -345,7 +359,7 @@ static int derive_secret_key_and_iv(SSL *s, int sending, const EVP_MD *md, hashlen = (size_t)hashleni; if (!tls13_hkdf_expand(s, md, insecret, label, labellen, hash, hashlen, - secret, hashlen)) { + secret, hashlen, 1)) { /* SSLfatal() already called */ goto err; } @@ -525,7 +539,8 @@ int tls13_change_cipher_state(SSL *s, int which) early_exporter_master_secret, sizeof(early_exporter_master_secret) - 1, hashval, hashlen, - s->early_exporter_master_secret, hashlen)) { + s->early_exporter_master_secret, hashlen, + 1)) { SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS13_CHANGE_CIPHER_STATE, ERR_R_INTERNAL_ERROR); goto err; @@ -612,7 +627,7 @@ int tls13_change_cipher_state(SSL *s, int which) resumption_master_secret, sizeof(resumption_master_secret) - 1, hashval, hashlen, s->resumption_master_secret, - hashlen)) { + hashlen, 1)) { /* SSLfatal() already called */ goto err; } @@ -632,7 +647,7 @@ int tls13_change_cipher_state(SSL *s, int which) exporter_master_secret, sizeof(exporter_master_secret) - 1, hash, hashlen, s->exporter_master_secret, - hashlen)) { + hashlen, 1)) { /* SSLfatal() already called */ goto err; } @@ -746,10 +761,10 @@ int tls13_export_keying_material(SSL *s, unsigned char *out, size_t olen, || EVP_DigestFinal_ex(ctx, data, &datalen) <= 0 || !tls13_hkdf_expand(s, md, s->exporter_master_secret, (const unsigned char *)label, llen, - data, datalen, exportsecret, hashsize) + data, datalen, exportsecret, hashsize, 0) || !tls13_hkdf_expand(s, md, exportsecret, exporterlabel, sizeof(exporterlabel) - 1, hash, hashsize, - out, olen)) + out, olen, 0)) goto err; ret = 1; @@ -805,10 +820,10 @@ int tls13_export_keying_material_early(SSL *s, unsigned char *out, size_t olen, || EVP_DigestFinal_ex(ctx, data, &datalen) <= 0 || !tls13_hkdf_expand(s, md, s->early_exporter_master_secret, (const unsigned char *)label, llen, - data, datalen, exportsecret, hashsize) + data, datalen, exportsecret, hashsize, 0) || !tls13_hkdf_expand(s, md, exportsecret, exporterlabel, sizeof(exporterlabel) - 1, hash, hashsize, - out, olen)) + out, olen, 0)) goto err; ret = 1; diff --git a/test/README.external b/test/README.external index f836b1b499cf51a267af26e43a880b8bf81bd510..2f5423cbc8ad3b612a61404ede5feeeb049614d5 100644 --- a/test/README.external +++ b/test/README.external @@ -145,7 +145,7 @@ To update the commit for any of the above test suites: - Enter subdirectory and pull from the repository (use a specific branch/tag if required): - $ cd <submodule-dir> + $ cd <submodule-dir> $ git pull origin master - Go to root directory, there should be a new git status: diff --git a/test/asn1_encode_test.c b/test/asn1_encode_test.c index 6a64bf904b16385f979a5ed41b7539aa71f6ea5b..ed920a4d660aaeaa869867895257a3e96f531925 100644 --- a/test/asn1_encode_test.c +++ b/test/asn1_encode_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -396,7 +396,7 @@ static ASN1_INT64_DATA int64_expected[] = { CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad (illegal padding) */ CUSTOM_EXPECTED_SUCCESS(INT64_MIN, INT64_MIN), /* t_8bytes_4_neg */ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad (illegal padding) */ - CUSTOM_EXPECTED_SUCCESS(0x1ffffffff, 0x1ffffffff), /* t_5bytes_1 */ + CUSTOM_EXPECTED_SUCCESS(0x1ffffffffULL, 0x1ffffffffULL), /* t_5bytes_1 */ CUSTOM_EXPECTED_SUCCESS(0x80000000, 0x80000000), /* t_4bytes_1 */ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */ @@ -446,7 +446,7 @@ static ASN1_UINT64_DATA uint64_expected[] = { CUSTOM_EXPECTED_FAILURE, /* t_8bytes_3_pad */ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_4_neg */ CUSTOM_EXPECTED_FAILURE, /* t_8bytes_5_negpad */ - CUSTOM_EXPECTED_SUCCESS(0x1ffffffff, 0x1ffffffff), /* t_5bytes_1 */ + CUSTOM_EXPECTED_SUCCESS(0x1ffffffffULL, 0x1ffffffffULL), /* t_5bytes_1 */ CUSTOM_EXPECTED_SUCCESS(0x80000000, 0x80000000), /* t_4bytes_1 */ CUSTOM_EXPECTED_SUCCESS(INT32_MAX - 1, INT32_MAX -1), /* t_4bytes_2 */ CUSTOM_EXPECTED_FAILURE, /* t_4bytes_3_pad (illegal padding) */ diff --git a/test/bio_memleak_test.c b/test/bio_memleak_test.c new file mode 100644 index 0000000000000000000000000000000000000000..9724148fae6e2f52fd5003f22f9d1df63b8b90b0 --- /dev/null +++ b/test/bio_memleak_test.c @@ -0,0 +1,200 @@ +/* + * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ +#include <stdio.h> +#include <string.h> +#include <openssl/buffer.h> +#include <openssl/bio.h> + +#include "testutil.h" + +static int test_bio_memleak(void) +{ + int ok = 0; + BIO *bio; + BUF_MEM bufmem; + static const char str[] = "BIO test\n"; + char buf[100]; + + bio = BIO_new(BIO_s_mem()); + if (!TEST_ptr(bio)) + goto finish; + bufmem.length = sizeof(str); + bufmem.data = (char *) str; + bufmem.max = bufmem.length; + BIO_set_mem_buf(bio, &bufmem, BIO_NOCLOSE); + BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY); + if (!TEST_int_eq(BIO_read(bio, buf, sizeof(buf)), sizeof(str))) + goto finish; + if (!TEST_mem_eq(buf, sizeof(str), str, sizeof(str))) + goto finish; + ok = 1; + +finish: + BIO_free(bio); + return ok; +} + +static int test_bio_get_mem(void) +{ + int ok = 0; + BIO *bio = NULL; + BUF_MEM *bufmem = NULL; + + bio = BIO_new(BIO_s_mem()); + if (!TEST_ptr(bio)) + goto finish; + if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12)) + goto finish; + BIO_get_mem_ptr(bio, &bufmem); + if (!TEST_ptr(bufmem)) + goto finish; + if (!TEST_int_gt(BIO_set_close(bio, BIO_NOCLOSE), 0)) + goto finish; + BIO_free(bio); + bio = NULL; + if (!TEST_mem_eq(bufmem->data, bufmem->length, "Hello World\n", 12)) + goto finish; + ok = 1; + +finish: + BIO_free(bio); + BUF_MEM_free(bufmem); + return ok; +} + +static int test_bio_new_mem_buf(void) +{ + int ok = 0; + BIO *bio; + BUF_MEM *bufmem; + char data[16]; + + bio = BIO_new_mem_buf("Hello World\n", 12); + if (!TEST_ptr(bio)) + goto finish; + if (!TEST_int_eq(BIO_read(bio, data, 5), 5)) + goto finish; + if (!TEST_mem_eq(data, 5, "Hello", 5)) + goto finish; + if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0)) + goto finish; + if (!TEST_int_lt(BIO_write(bio, "test", 4), 0)) + goto finish; + if (!TEST_int_eq(BIO_read(bio, data, 16), 7)) + goto finish; + if (!TEST_mem_eq(data, 7, " World\n", 7)) + goto finish; + if (!TEST_int_gt(BIO_reset(bio), 0)) + goto finish; + if (!TEST_int_eq(BIO_read(bio, data, 16), 12)) + goto finish; + if (!TEST_mem_eq(data, 12, "Hello World\n", 12)) + goto finish; + ok = 1; + +finish: + BIO_free(bio); + return ok; +} + +static int test_bio_rdonly_mem_buf(void) +{ + int ok = 0; + BIO *bio, *bio2 = NULL; + BUF_MEM *bufmem; + char data[16]; + + bio = BIO_new_mem_buf("Hello World\n", 12); + if (!TEST_ptr(bio)) + goto finish; + if (!TEST_int_eq(BIO_read(bio, data, 5), 5)) + goto finish; + if (!TEST_mem_eq(data, 5, "Hello", 5)) + goto finish; + if (!TEST_int_gt(BIO_get_mem_ptr(bio, &bufmem), 0)) + goto finish; + (void)BIO_set_close(bio, BIO_NOCLOSE); + + bio2 = BIO_new(BIO_s_mem()); + if (!TEST_ptr(bio2)) + goto finish; + BIO_set_mem_buf(bio2, bufmem, BIO_CLOSE); + BIO_set_flags(bio2, BIO_FLAGS_MEM_RDONLY); + + if (!TEST_int_eq(BIO_read(bio2, data, 16), 7)) + goto finish; + if (!TEST_mem_eq(data, 7, " World\n", 7)) + goto finish; + if (!TEST_int_gt(BIO_reset(bio2), 0)) + goto finish; + if (!TEST_int_eq(BIO_read(bio2, data, 16), 7)) + goto finish; + if (!TEST_mem_eq(data, 7, " World\n", 7)) + goto finish; + ok = 1; + +finish: + BIO_free(bio); + BIO_free(bio2); + return ok; +} + +static int test_bio_rdwr_rdonly(void) +{ + int ok = 0; + BIO *bio = NULL; + char data[16]; + + bio = BIO_new(BIO_s_mem()); + if (!TEST_ptr(bio)) + goto finish; + if (!TEST_int_eq(BIO_puts(bio, "Hello World\n"), 12)) + goto finish; + + BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY); + if (!TEST_int_eq(BIO_read(bio, data, 16), 12)) + goto finish; + if (!TEST_mem_eq(data, 12, "Hello World\n", 12)) + goto finish; + if (!TEST_int_gt(BIO_reset(bio), 0)) + goto finish; + + BIO_clear_flags(bio, BIO_FLAGS_MEM_RDONLY); + if (!TEST_int_eq(BIO_puts(bio, "Hi!\n"), 4)) + goto finish; + if (!TEST_int_eq(BIO_read(bio, data, 16), 16)) + goto finish; + + if (!TEST_mem_eq(data, 16, "Hello World\nHi!\n", 16)) + goto finish; + + ok = 1; + +finish: + BIO_free(bio); + return ok; +} + + +int global_init(void) +{ + CRYPTO_set_mem_debug(1); + CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + return 1; +} + +int setup_tests(void) +{ + ADD_TEST(test_bio_memleak); + ADD_TEST(test_bio_get_mem); + ADD_TEST(test_bio_new_mem_buf); + ADD_TEST(test_bio_rdonly_mem_buf); + ADD_TEST(test_bio_rdwr_rdonly); + return 1; +} diff --git a/test/bioprinttest.c b/test/bioprinttest.c index d35bffa8408b94045a6f91dded41a5befaa9f091..680391ea9f4e416f9470d814be5a2142fabd9b1b 100644 --- a/test/bioprinttest.c +++ b/test/bioprinttest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -146,14 +146,14 @@ typedef struct j_data_st { } j_data; static j_data jf_data[] = { - { 0xffffffffffffffffU, "%ju", "18446744073709551615" }, - { 0xffffffffffffffffU, "%jx", "ffffffffffffffff" }, - { 0x8000000000000000U, "%ju", "9223372036854775808" }, + { 0xffffffffffffffffULL, "%ju", "18446744073709551615" }, + { 0xffffffffffffffffULL, "%jx", "ffffffffffffffff" }, + { 0x8000000000000000ULL, "%ju", "9223372036854775808" }, /* * These tests imply two's-complement, but it's the only binary * representation we support, see test/sanitytest.c... */ - { 0x8000000000000000U, "%ji", "-9223372036854775808" }, + { 0x8000000000000000ULL, "%ji", "-9223372036854775808" }, }; static int test_j(int i) diff --git a/test/bntest.c b/test/bntest.c index 0502497fe3dbd37ec4535fa5256e54465bb027ea..c68d7f6fb8796dabac1bf61216d6188a4c23236c 100644 --- a/test/bntest.c +++ b/test/bntest.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -123,7 +123,7 @@ static int getint(STANZA *s, int *out, const char *attribute) *out = (int)word; st = 1; -err: + err: BN_free(ret); return st; } @@ -138,7 +138,6 @@ static int equalBN(const char *op, const BIGNUM *expected, const BIGNUM *actual) return 0; } - /* * Return a "random" flag for if a BN should be negated. */ @@ -150,7 +149,6 @@ static int rand_neg(void) return sign[(neg++) % 8]; } - static int test_swap(void) { BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL; @@ -162,11 +160,12 @@ static int test_swap(void) || !TEST_ptr(d = BN_new())) goto err; - BN_bntest_rand(a, 1024, 1, 0); - BN_bntest_rand(b, 1024, 1, 0); - BN_copy(c, a); - BN_copy(d, b); - top = BN_num_bits(a)/BN_BITS2; + if (!(TEST_true(BN_bntest_rand(a, 1024, 1, 0)) + && TEST_true(BN_bntest_rand(b, 1024, 1, 0)) + && TEST_ptr(BN_copy(c, a)) + && TEST_ptr(BN_copy(d, b)))) + goto err; + top = BN_num_bits(a) / BN_BITS2; /* regular swap */ BN_swap(a, b); @@ -235,31 +234,31 @@ static int test_sub(void) for (i = 0; i < NUM0 + NUM1; i++) { if (i < NUM1) { - BN_bntest_rand(a, 512, 0, 0); - BN_copy(b, a); - if (!TEST_int_ne(BN_set_bit(a, i), 0)) + if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0))) + && TEST_ptr(BN_copy(b, a)) + && TEST_int_ne(BN_set_bit(a, i), 0) + && TEST_true(BN_add_word(b, i))) goto err; - BN_add_word(b, i); } else { - BN_bntest_rand(b, 400 + i - NUM1, 0, 0); + if (!TEST_true(BN_bntest_rand(b, 400 + i - NUM1, 0, 0))) + goto err; BN_set_negative(a, rand_neg()); BN_set_negative(b, rand_neg()); } - BN_sub(c, a, b); - BN_add(c, c, b); - BN_sub(c, c, a); - if (!TEST_BN_eq_zero(c)) + if (!(TEST_true(BN_sub(c, a, b)) + && TEST_true(BN_add(c, c, b)) + && TEST_true(BN_sub(c, c, a)) + && TEST_BN_eq_zero(c))) goto err; } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(c); return st; } - static int test_div_recip(void) { BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL; @@ -276,24 +275,27 @@ static int test_div_recip(void) for (i = 0; i < NUM0 + NUM1; i++) { if (i < NUM1) { - BN_bntest_rand(a, 400, 0, 0); - BN_copy(b, a); - BN_lshift(a, a, i); - BN_add_word(a, i); - } else - BN_bntest_rand(b, 50 + 3 * (i - NUM1), 0, 0); + if (!(TEST_true(BN_bntest_rand(a, 400, 0, 0)) + && TEST_ptr(BN_copy(b, a)) + && TEST_true(BN_lshift(a, a, i)) + && TEST_true(BN_add_word(a, i)))) + goto err; + } else { + if (!(TEST_true(BN_bntest_rand(b, 50 + 3 * (i - NUM1), 0, 0)))) + goto err; + } BN_set_negative(a, rand_neg()); BN_set_negative(b, rand_neg()); - BN_RECP_CTX_set(recp, b, ctx); - BN_div_recp(d, c, a, recp, ctx); - BN_mul(e, d, b, ctx); - BN_add(d, e, c); - BN_sub(d, d, a); - if (!TEST_BN_eq_zero(d)) + if (!(TEST_true(BN_RECP_CTX_set(recp, b, ctx)) + && TEST_true(BN_div_recp(d, c, a, recp, ctx)) + && TEST_true(BN_mul(e, d, b, ctx)) + && TEST_true(BN_add(d, e, c)) + && TEST_true(BN_sub(d, d, a)) + && TEST_BN_eq_zero(d))) goto err; } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(c); @@ -303,7 +305,6 @@ err: return st; } - static int test_mod(void) { BIGNUM *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL; @@ -316,19 +317,21 @@ static int test_mod(void) || !TEST_ptr(e = BN_new())) goto err; - BN_bntest_rand(a, 1024, 0, 0); + if (!(TEST_true(BN_bntest_rand(a, 1024, 0, 0)))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(b, 450 + i * 10, 0, 0); + if (!(TEST_true(BN_bntest_rand(b, 450 + i * 10, 0, 0)))) + goto err; BN_set_negative(a, rand_neg()); BN_set_negative(b, rand_neg()); - BN_mod(c, a, b, ctx); - BN_div(d, e, a, b, ctx); - BN_sub(e, e, c); - if (!TEST_BN_eq_zero(e)) + if (!(TEST_true(BN_mod(c, a, b, ctx)) + && TEST_true(BN_div(d, e, a, b, ctx)) + && TEST_true(BN_sub(e, e, c)) + && TEST_BN_eq_zero(e))) goto err; } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(c); @@ -399,46 +402,52 @@ static int test_modexp_mont5(void) || !TEST_ptr(mont = BN_MONT_CTX_new())) goto err; - BN_bntest_rand(m, 1024, 0, 1); /* must be odd for montgomery */ - /* Zero exponent */ - BN_bntest_rand(a, 1024, 0, 0); + /* must be odd for montgomery */ + if (!(TEST_true(BN_bntest_rand(m, 1024, 0, 1)) + /* Zero exponent */ + && TEST_true(BN_bntest_rand(a, 1024, 0, 0)))) + goto err; BN_zero(p); + if (!TEST_true(BN_mod_exp_mont_consttime(d, a, p, m, ctx, NULL))) goto err; if (!TEST_BN_eq_one(d)) goto err; /* Regression test for carry bug in mulx4x_mont */ - BN_hex2bn(&a, + if (!(TEST_true(BN_hex2bn(&a, "7878787878787878787878787878787878787878787878787878787878787878" "7878787878787878787878787878787878787878787878787878787878787878" "7878787878787878787878787878787878787878787878787878787878787878" - "7878787878787878787878787878787878787878787878787878787878787878"); - BN_hex2bn(&b, + "7878787878787878787878787878787878787878787878787878787878787878")) + && TEST_true(BN_hex2bn(&b, "095D72C08C097BA488C5E439C655A192EAFB6380073D8C2664668EDDB4060744" "E16E57FB4EDB9AE10A0CEFCDC28A894F689A128379DB279D48A2E20849D68593" "9B7803BCF46CEBF5C533FB0DD35B080593DE5472E3FE5DB951B8BFF9B4CB8F03" - "9CC638A5EE8CDD703719F8000E6A9F63BEED5F2FCD52FF293EA05A251BB4AB81"); - BN_hex2bn(&n, + "9CC638A5EE8CDD703719F8000E6A9F63BEED5F2FCD52FF293EA05A251BB4AB81")) + && TEST_true(BN_hex2bn(&n, "D78AF684E71DB0C39CFF4E64FB9DB567132CB9C50CC98009FEB820B26F2DED9B" "91B9B5E2B83AE0AE4EB4E0523CA726BFBE969B89FD754F674CE99118C3F2D1C5" "D81FDC7C54E02B60262B241D53C040E99E45826ECA37A804668E690E1AFC1CA4" - "2C9A15D84D4954425F0B7642FC0BD9D7B24E2618D2DCC9B729D944BADACFDDAF"); - BN_MONT_CTX_set(mont, n, ctx); - BN_mod_mul_montgomery(c, a, b, mont, ctx); - BN_mod_mul_montgomery(d, b, a, mont, ctx); - if (!TEST_BN_eq(c, d)) + "2C9A15D84D4954425F0B7642FC0BD9D7B24E2618D2DCC9B729D944BADACFDDAF")))) + goto err; + + if (!(TEST_true(BN_MONT_CTX_set(mont, n, ctx)) + && TEST_true(BN_mod_mul_montgomery(c, a, b, mont, ctx)) + && TEST_true(BN_mod_mul_montgomery(d, b, a, mont, ctx)) + && TEST_BN_eq(c, d))) goto err; /* Regression test for carry bug in sqr[x]8x_mont */ - parse_bigBN(&n, bn1strings); - parse_bigBN(&a, bn2strings); + if (!(TEST_true(parse_bigBN(&n, bn1strings)) + && TEST_true(parse_bigBN(&a, bn2strings)))) + goto err; BN_free(b); - b = BN_dup(a); - BN_MONT_CTX_set(mont, n, ctx); - BN_mod_mul_montgomery(c, a, a, mont, ctx); - BN_mod_mul_montgomery(d, a, b, mont, ctx); - if (!TEST_BN_eq(c, d)) + if (!(TEST_ptr(b = BN_dup(a)) + && TEST_true(BN_MONT_CTX_set(mont, n, ctx)) + && TEST_true(BN_mod_mul_montgomery(c, a, a, mont, ctx)) + && TEST_true(BN_mod_mul_montgomery(d, a, b, mont, ctx)) + && TEST_BN_eq(c, d))) goto err; /* Regression test for carry bug in bn_sqrx8x_internal */ @@ -474,53 +483,83 @@ static int test_modexp_mont5(void) NULL }; - parse_bigBN(&a, ahex); - parse_bigBN(&n, nhex); + if (!(TEST_true(parse_bigBN(&a, ahex)) + && TEST_true(parse_bigBN(&n, nhex)))) + goto err; } BN_free(b); - b = BN_dup(a); - BN_MONT_CTX_set(mont, n, ctx); + if (!(TEST_ptr(b = BN_dup(a)) + && TEST_true(BN_MONT_CTX_set(mont, n, ctx)))) + goto err; + if (!TEST_true(BN_mod_mul_montgomery(c, a, a, mont, ctx)) || !TEST_true(BN_mod_mul_montgomery(d, a, b, mont, ctx)) || !TEST_BN_eq(c, d)) goto err; /* Regression test for bug in BN_from_montgomery_word */ - BN_hex2bn(&a, + if (!(TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); - BN_hex2bn(&n, + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")) + && TEST_true(BN_hex2bn(&n, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"); - BN_MONT_CTX_set(mont, n, ctx); - if (!TEST_false(BN_mod_mul_montgomery(d, a, a, mont, ctx))) + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF")) + && TEST_true(BN_MONT_CTX_set(mont, n, ctx)) + && TEST_false(BN_mod_mul_montgomery(d, a, a, mont, ctx)))) goto err; /* Regression test for bug in rsaz_1024_mul_avx2 */ - BN_hex2bn(&a, + if (!(TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF"); - BN_hex2bn(&b, + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF")) + && TEST_true(BN_hex2bn(&b, "2020202020202020202020202020202020202020202020202020202020202020" "2020202020202020202020202020202020202020202020202020202020202020" "20202020202020FF202020202020202020202020202020202020202020202020" - "2020202020202020202020202020202020202020202020202020202020202020"); - BN_hex2bn(&n, + "2020202020202020202020202020202020202020202020202020202020202020")) + && TEST_true(BN_hex2bn(&n, + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020FF")) + && TEST_true(BN_MONT_CTX_set(mont, n, ctx)) + && TEST_true(BN_mod_exp_mont_consttime(c, a, b, n, ctx, mont)) + && TEST_true(BN_mod_exp_mont(d, a, b, n, ctx, mont)) + && TEST_BN_eq(c, d))) + goto err; + + /* + * rsaz_1024_mul_avx2 expects fully-reduced inputs. + * BN_mod_exp_mont_consttime should reduce the input first. + */ + if (!(TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020FF"); - BN_MONT_CTX_set(mont, n, ctx); - BN_mod_exp_mont_consttime(c, a, b, n, ctx, mont); - BN_mod_exp_mont(d, a, b, n, ctx, mont); + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF")) + && TEST_true(BN_hex2bn(&b, + "1FA53F26F8811C58BE0357897AA5E165693230BC9DF5F01DFA6A2D59229EC69D" + "9DE6A89C36E3B6957B22D6FAAD5A3C73AE587B710DBE92E83D3A9A3339A085CB" + "B58F508CA4F837924BB52CC1698B7FDC2FD74362456A595A5B58E38E38E38E38" + "E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E38E")) + && TEST_true(BN_hex2bn(&n, + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2020202020DF")) + && TEST_true(BN_MONT_CTX_set(mont, n, ctx)) + && TEST_true(BN_mod_exp_mont_consttime(c, a, b, n, ctx, mont)))) + goto err; + BN_zero(d); if (!TEST_BN_eq(c, d)) goto err; /* Zero input */ - BN_bntest_rand(p, 1024, 0, 0); + if (!TEST_true(BN_bntest_rand(p, 1024, 0, 0))) + goto err; BN_zero(a); if (!TEST_true(BN_mod_exp_mont_consttime(d, a, p, m, ctx, NULL)) || !TEST_BN_eq_zero(d)) @@ -531,8 +570,9 @@ static int test_modexp_mont5(void) * than the modulus m, in order to test the const time precomputation * scattering/gathering. */ - BN_one(a); - BN_MONT_CTX_set(mont, m, ctx); + if (!(TEST_true(BN_one(a)) + && TEST_true(BN_MONT_CTX_set(mont, m, ctx)))) + goto err; if (!TEST_true(BN_from_montgomery(e, a, mont, ctx)) || !TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL)) || !TEST_true(BN_mod_exp_simple(a, e, p, m, ctx)) @@ -540,15 +580,15 @@ static int test_modexp_mont5(void) goto err; /* Finally, some regular test vectors. */ - BN_bntest_rand(e, 1024, 0, 0); - if (!TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL)) - || !TEST_true(BN_mod_exp_simple(a, e, p, m, ctx)) - || !TEST_BN_eq(a, d)) + if (!(TEST_true(BN_bntest_rand(e, 1024, 0, 0)) + && TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL)) + && TEST_true(BN_mod_exp_simple(a, e, p, m, ctx)) + && TEST_BN_eq(a, d))) goto err; st = 1; -err: + err: BN_MONT_CTX_free(mont); BN_free(a); BN_free(p); @@ -573,18 +613,19 @@ static int test_gf2m_add(void) goto err; for (i = 0; i < NUM0; i++) { - BN_rand(a, 512, 0, 0); - BN_copy(b, BN_value_one()); + if (!(TEST_true(BN_rand(a, 512, 0, 0)) + && TEST_ptr(BN_copy(b, BN_value_one())))) + goto err; BN_set_negative(a, rand_neg()); BN_set_negative(b, rand_neg()); - BN_GF2m_add(c, a, b); - /* Test that two added values have the correct parity. */ - if (!TEST_false((BN_is_odd(a) && BN_is_odd(c)) - || (!BN_is_odd(a) && !BN_is_odd(c)))) + if (!(TEST_true(BN_GF2m_add(c, a, b)) + /* Test that two added values have the correct parity. */ + && TEST_false((BN_is_odd(a) && BN_is_odd(c)) + || (!BN_is_odd(a) && !BN_is_odd(c))))) goto err; - BN_GF2m_add(c, c, c); - /* Test that c + c = 0. */ - if (!TEST_BN_eq_zero(c)) + if (!(TEST_true(BN_GF2m_add(c, c, c)) + /* Test that c + c = 0. */ + && TEST_BN_eq_zero(c))) goto err; } st = 1; @@ -608,17 +649,19 @@ static int test_gf2m_mod(void) || !TEST_ptr(e = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 1024, 0, 0); + if (!TEST_true(BN_bntest_rand(a, 1024, 0, 0))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod(c, a, b[j]); - BN_GF2m_add(d, a, c); - BN_GF2m_mod(e, d, b[j]); - /* Test that a + (a mod p) mod p == 0. */ - if (!TEST_BN_eq_zero(e)) + if (!(TEST_true(BN_GF2m_mod(c, a, b[j])) + && TEST_true(BN_GF2m_add(d, a, c)) + && TEST_true(BN_GF2m_mod(e, d, b[j])) + /* Test that a + (a mod p) mod p == 0. */ + && TEST_BN_eq_zero(e))) goto err; } } @@ -650,22 +693,24 @@ static int test_gf2m_mul(void) || !TEST_ptr(h = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 1024, 0, 0); - BN_bntest_rand(c, 1024, 0, 0); - BN_bntest_rand(d, 1024, 0, 0); + if (!(TEST_true(BN_bntest_rand(a, 1024, 0, 0)) + && TEST_true(BN_bntest_rand(c, 1024, 0, 0)) + && TEST_true(BN_bntest_rand(d, 1024, 0, 0)))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod_mul(e, a, c, b[j], ctx); - BN_GF2m_add(f, a, d); - BN_GF2m_mod_mul(g, f, c, b[j], ctx); - BN_GF2m_mod_mul(h, d, c, b[j], ctx); - BN_GF2m_add(f, e, g); - BN_GF2m_add(f, f, h); - /* Test that (a+d)*c = a*c + d*c. */ - if (!TEST_BN_eq_zero(f)) + if (!(TEST_true(BN_GF2m_mod_mul(e, a, c, b[j], ctx)) + && TEST_true(BN_GF2m_add(f, a, d)) + && TEST_true(BN_GF2m_mod_mul(g, f, c, b[j], ctx)) + && TEST_true(BN_GF2m_mod_mul(h, d, c, b[j], ctx)) + && TEST_true(BN_GF2m_add(f, e, g)) + && TEST_true(BN_GF2m_add(f, f, h)) + /* Test that (a+d)*c = a*c + d*c. */ + && TEST_BN_eq_zero(f))) goto err; } } @@ -696,18 +741,20 @@ static int test_gf2m_sqr(void) || !TEST_ptr(d = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 1024, 0, 0); + if (!TEST_true(BN_bntest_rand(a, 1024, 0, 0))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod_sqr(c, a, b[j], ctx); - BN_copy(d, a); - BN_GF2m_mod_mul(d, a, d, b[j], ctx); - BN_GF2m_add(d, c, d); - /* Test that a*a = a^2. */ - if (!TEST_BN_eq_zero(d)) + if (!(TEST_true(BN_GF2m_mod_sqr(c, a, b[j], ctx)) + && TEST_true(BN_copy(d, a)) + && TEST_true(BN_GF2m_mod_mul(d, a, d, b[j], ctx)) + && TEST_true(BN_GF2m_add(d, c, d)) + /* Test that a*a = a^2. */ + && TEST_BN_eq_zero(d))) goto err; } } @@ -733,16 +780,18 @@ static int test_gf2m_modinv(void) || !TEST_ptr(d = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 512, 0, 0); + if (!TEST_true(BN_bntest_rand(a, 512, 0, 0))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod_inv(c, a, b[j], ctx); - BN_GF2m_mod_mul(d, a, c, b[j], ctx); - /* Test that ((1/a)*a) = 1. */ - if (!TEST_BN_eq_one(d)) + if (!(TEST_true(BN_GF2m_mod_inv(c, a, b[j], ctx)) + && TEST_true(BN_GF2m_mod_mul(d, a, c, b[j], ctx)) + /* Test that ((1/a)*a) = 1. */ + && TEST_BN_eq_one(d))) goto err; } } @@ -771,18 +820,20 @@ static int test_gf2m_moddiv(void) || !TEST_ptr(f = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 512, 0, 0); - BN_bntest_rand(c, 512, 0, 0); + if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0)) + && TEST_true(BN_bntest_rand(c, 512, 0, 0)))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod_div(d, a, c, b[j], ctx); - BN_GF2m_mod_mul(e, d, c, b[j], ctx); - BN_GF2m_mod_div(f, a, e, b[j], ctx); - /* Test that ((a/c)*c)/a = 1. */ - if (!TEST_BN_eq_one(f)) + if (!(TEST_true(BN_GF2m_mod_div(d, a, c, b[j], ctx)) + && TEST_true(BN_GF2m_mod_mul(e, d, c, b[j], ctx)) + && TEST_true(BN_GF2m_mod_div(f, a, e, b[j], ctx)) + /* Test that ((a/c)*c)/a = 1. */ + && TEST_BN_eq_one(f))) goto err; } } @@ -813,22 +864,24 @@ static int test_gf2m_modexp(void) || !TEST_ptr(f = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 512, 0, 0); - BN_bntest_rand(c, 512, 0, 0); - BN_bntest_rand(d, 512, 0, 0); + if (!(TEST_true(BN_bntest_rand(a, 512, 0, 0)) + && TEST_true(BN_bntest_rand(c, 512, 0, 0)) + && TEST_true(BN_bntest_rand(d, 512, 0, 0)))) + goto err; for (j = 0; j < 2; j++) { - BN_GF2m_mod_exp(e, a, c, b[j], ctx); - BN_GF2m_mod_exp(f, a, d, b[j], ctx); - BN_GF2m_mod_mul(e, e, f, b[j], ctx); - BN_add(f, c, d); - BN_GF2m_mod_exp(f, a, f, b[j], ctx); - BN_GF2m_add(f, e, f); - /* Test that a^(c+d)=a^c*a^d. */ - if (!TEST_BN_eq_zero(f)) + if (!(TEST_true(BN_GF2m_mod_exp(e, a, c, b[j], ctx)) + && TEST_true(BN_GF2m_mod_exp(f, a, d, b[j], ctx)) + && TEST_true(BN_GF2m_mod_mul(e, e, f, b[j], ctx)) + && TEST_true(BN_add(f, c, d)) + && TEST_true(BN_GF2m_mod_exp(f, a, f, b[j], ctx)) + && TEST_true(BN_GF2m_add(f, e, f)) + /* Test that a^(c+d)=a^c*a^d. */ + && TEST_BN_eq_zero(f))) goto err; } } @@ -859,18 +912,21 @@ static int test_gf2m_modsqrt(void) || !TEST_ptr(f = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 512, 0, 0); + if (!TEST_true(BN_bntest_rand(a, 512, 0, 0))) + goto err; + for (j = 0; j < 2; j++) { - BN_GF2m_mod(c, a, b[j]); - BN_GF2m_mod_sqrt(d, a, b[j], ctx); - BN_GF2m_mod_sqr(e, d, b[j], ctx); - BN_GF2m_add(f, c, e); - /* Test that d^2 = a, where d = sqrt(a). */ - if (!TEST_BN_eq_zero(f)) + if (!(TEST_true(BN_GF2m_mod(c, a, b[j])) + && TEST_true(BN_GF2m_mod_sqrt(d, a, b[j], ctx)) + && TEST_true(BN_GF2m_mod_sqr(e, d, b[j], ctx)) + && TEST_true(BN_GF2m_add(f, c, e)) + /* Test that d^2 = a, where d = sqrt(a). */ + && TEST_BN_eq_zero(f))) goto err; } } @@ -900,23 +956,26 @@ static int test_gf2m_modsolvequad(void) || !TEST_ptr(e = BN_new())) goto err; - BN_GF2m_arr2poly(p0, b[0]); - BN_GF2m_arr2poly(p1, b[1]); + if (!(TEST_true(BN_GF2m_arr2poly(p0, b[0])) + && TEST_true(BN_GF2m_arr2poly(p1, b[1])))) + goto err; for (i = 0; i < NUM0; i++) { - BN_bntest_rand(a, 512, 0, 0); + if (!TEST_true(BN_bntest_rand(a, 512, 0, 0))) + goto err; for (j = 0; j < 2; j++) { t = BN_GF2m_mod_solve_quad(c, a, b[j], ctx); if (t) { s++; - BN_GF2m_mod_sqr(d, c, b[j], ctx); - BN_GF2m_add(d, c, d); - BN_GF2m_mod(e, a, b[j]); - BN_GF2m_add(e, e, d); - /* - * Test that solution of quadratic c satisfies c^2 + c = a. - */ - if (!TEST_BN_eq_zero(e)) + if (!(TEST_true(BN_GF2m_mod_sqr(d, c, b[j], ctx)) + && TEST_true(BN_GF2m_add(d, c, d)) + && TEST_true(BN_GF2m_mod(e, a, b[j])) + && TEST_true(BN_GF2m_add(e, e, d)) + /* + * Test that solution of quadratic c + * satisfies c^2 + c = a. + */ + && TEST_BN_eq_zero(e))) goto err; } } @@ -1116,7 +1175,7 @@ static int file_sum(STANZA *s) } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(sum); @@ -1165,7 +1224,7 @@ static int file_lshift1(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(lshift1); BN_free(zero); @@ -1194,7 +1253,7 @@ static int file_lshift(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(lshift); BN_free(ret); @@ -1224,7 +1283,7 @@ static int file_rshift(STANZA *s) } st = 1; -err: + err: BN_free(a); BN_free(rshift); BN_free(ret); @@ -1281,7 +1340,7 @@ static int file_square(STANZA *s) #endif st = 1; -err: + err: BN_free(a); BN_free(square); BN_free(zero); @@ -1318,7 +1377,7 @@ static int file_product(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(product); @@ -1401,7 +1460,7 @@ static int file_quotient(STANZA *s) } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(quotient); @@ -1455,7 +1514,7 @@ static int file_modmul(STANZA *s) } st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(m); @@ -1507,7 +1566,7 @@ static int file_modexp(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(c); @@ -1535,7 +1594,7 @@ static int file_exp(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(e); BN_free(exp); @@ -1566,7 +1625,7 @@ static int file_modsqrt(STANZA *s) goto err; st = 1; -err: + err: BN_free(a); BN_free(p); BN_free(mod_sqrt); @@ -1596,8 +1655,8 @@ static int test_bn2padded(void) /* Test a random numbers at various byte lengths. */ for (size_t bytes = 128 - 7; bytes <= 128; bytes++) { -#define TOP_BIT_ON 0 -#define BOTTOM_BIT_NOTOUCH 0 +# define TOP_BIT_ON 0 +# define BOTTOM_BIT_NOTOUCH 0 if (!TEST_true(BN_rand(n, bytes * 8, TOP_BIT_ON, BOTTOM_BIT_NOTOUCH))) goto err; if (!TEST_int_eq(BN_num_bytes(n),A) bytes @@ -1628,7 +1687,7 @@ static int test_bn2padded(void) } st = 1; -err: + err: BN_free(n); return st; #else @@ -1700,7 +1759,7 @@ static int test_dec2bn(void) goto err; st = 1; -err: + err: BN_free(bn); return st; } @@ -1766,7 +1825,7 @@ static int test_hex2bn(void) goto err; st = 1; -err: + err: BN_free(bn); return st; } @@ -1820,7 +1879,7 @@ static int test_asc2bn(void) goto err; st = 1; -err: + err: BN_free(bn); return st; } @@ -1864,7 +1923,7 @@ static int test_mpi(int i) BN_free(bn2); st = 1; -err: + err: BN_free(bn); return st; } @@ -1890,7 +1949,7 @@ static int test_rand(void) goto err; st = 1; -err: + err: BN_free(bn); return st; } @@ -1954,7 +2013,7 @@ static int test_negzero(void) goto err; st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(c); @@ -1995,7 +2054,7 @@ static int test_badmod(void) ERR_clear_error(); if (!TEST_false(BN_mod_exp_mont_consttime(a, BN_value_one(), BN_value_one(), - zero, ctx, NULL))) + zero, ctx, NULL))) goto err; ERR_clear_error(); @@ -2017,12 +2076,12 @@ static int test_badmod(void) ERR_clear_error(); if (!TEST_false(BN_mod_exp_mont_consttime(a, BN_value_one(), BN_value_one(), - b, ctx, NULL))) + b, ctx, NULL))) goto err; ERR_clear_error(); st = 1; -err: + err: BN_free(a); BN_free(b); BN_free(zero); @@ -2056,7 +2115,7 @@ static int test_expmodzero(void) goto err; st = 1; -err: + err: BN_free(zero); BN_free(a); BN_free(r); @@ -2102,7 +2161,7 @@ static int test_expmodone(void) } ret = 1; -err: + err: BN_free(r); BN_free(a); BN_free(p); @@ -2123,7 +2182,7 @@ static int test_smallprime(void) goto err; st = 1; -err: + err: BN_free(r); return st; } @@ -2147,7 +2206,7 @@ static int test_is_prime(int i) } ret = 1; -err: + err: BN_free(r); return ret; } @@ -2170,11 +2229,97 @@ static int test_not_prime(int i) } ret = 1; -err: + err: BN_free(r); return ret; } +static int test_ctx_set_ct_flag(BN_CTX *c) +{ + int st = 0; + size_t i; + BIGNUM *b[15]; + + BN_CTX_start(c); + for (i = 0; i < OSSL_NELEM(b); i++) { + if (!TEST_ptr(b[i] = BN_CTX_get(c))) + goto err; + if (i % 2 == 1) + BN_set_flags(b[i], BN_FLG_CONSTTIME); + } + + st = 1; + err: + BN_CTX_end(c); + return st; +} + +static int test_ctx_check_ct_flag(BN_CTX *c) +{ + int st = 0; + size_t i; + BIGNUM *b[30]; + + BN_CTX_start(c); + for (i = 0; i < OSSL_NELEM(b); i++) { + if (!TEST_ptr(b[i] = BN_CTX_get(c))) + goto err; + if (!TEST_false(BN_get_flags(b[i], BN_FLG_CONSTTIME))) + goto err; + } + + st = 1; + err: + BN_CTX_end(c); + return st; +} + +static int test_ctx_consttime_flag(void) +{ + /*- + * The constant-time flag should not "leak" among BN_CTX frames: + * + * - test_ctx_set_ct_flag() starts a frame in the given BN_CTX and + * sets the BN_FLG_CONSTTIME flag on some of the BIGNUMs obtained + * from the frame before ending it. + * - test_ctx_check_ct_flag() then starts a new frame and gets a + * number of BIGNUMs from it. In absence of leaks, none of the + * BIGNUMs in the new frame should have BN_FLG_CONSTTIME set. + * + * In actual BN_CTX usage inside libcrypto the leak could happen at + * any depth level in the BN_CTX stack, with varying results + * depending on the patterns of sibling trees of nested function + * calls sharing the same BN_CTX object, and the effect of + * unintended BN_FLG_CONSTTIME on the called BN_* functions. + * + * This simple unit test abstracts away this complexity and verifies + * that the leak does not happen between two sibling functions + * sharing the same BN_CTX object at the same level of nesting. + * + */ + BN_CTX *nctx = NULL; + BN_CTX *sctx = NULL; + size_t i = 0; + int st = 0; + + if (!TEST_ptr(nctx = BN_CTX_new()) + || !TEST_ptr(sctx = BN_CTX_secure_new())) + goto err; + + for (i = 0; i < 2; i++) { + BN_CTX *c = i == 0 ? nctx : sctx; + if (!TEST_true(test_ctx_set_ct_flag(c)) + || !TEST_true(test_ctx_check_ct_flag(c))) + goto err; + } + + st = 1; + err: + BN_CTX_free(nctx); + BN_CTX_free(sctx); + return st; +} + static int file_test_run(STANZA *s) { static const FILETEST filetests[] = { @@ -2262,6 +2407,7 @@ int setup_tests(void) ADD_TEST(test_expmodone); ADD_TEST(test_smallprime); ADD_TEST(test_swap); + ADD_TEST(test_ctx_consttime_flag); #ifndef OPENSSL_NO_EC2M ADD_TEST(test_gf2m_add); ADD_TEST(test_gf2m_mod); diff --git a/test/build.info b/test/build.info index b6bb711c8b34d52c5012ee4ceed77bf31d5d3401..a2fb0e2e1e7eae5cfe401928bfc34193bdb1920e 100644 --- a/test/build.info +++ b/test/build.info @@ -41,7 +41,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN packettest asynctest secmemtest srptest memleaktest stack_test \ dtlsv1listentest ct_test threadstest afalgtest d2i_test \ ssl_test_ctx_test ssl_test x509aux cipherlist_test asynciotest \ - bio_callback_test \ + bio_callback_test bio_memleak_test \ bioprinttest sslapitest dtlstest sslcorrupttest bio_enc_test \ pkey_meth_test pkey_meth_kdf_test uitest cipherbytes_test \ asn1_encode_test asn1_decode_test asn1_string_table_test \ @@ -299,6 +299,10 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN INCLUDE[bio_callback_test]=../include DEPEND[bio_callback_test]=../libcrypto libtestutil.a + SOURCE[bio_memleak_test]=bio_memleak_test.c + INCLUDE[bio_memleak_test]=../include + DEPEND[bio_memleak_test]=../libcrypto libtestutil.a + SOURCE[bioprinttest]=bioprinttest.c INCLUDE[bioprinttest]=../include DEPEND[bioprinttest]=../libcrypto libtestutil.a @@ -389,7 +393,6 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN PROGRAMS_NO_INST=shlibloadtest SOURCE[shlibloadtest]=shlibloadtest.c INCLUDE[shlibloadtest]=../include ../crypto/include - DEPEND[shlibloadtest]=libtestutil.a ENDIF IF[{- $disabled{shared} -}] @@ -455,7 +458,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN PROGRAMS_NO_INST=sm4_internal_test ENDIF IF[{- !$disabled{ec} -}] - PROGRAMS_NO_INST=curve448_internal_test + PROGRAMS_NO_INST=ec_internal_test curve448_internal_test ENDIF SOURCE[poly1305_internal_test]=poly1305_internal_test.c @@ -502,6 +505,10 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=MAIN INCLUDE[sm4_internal_test]=.. ../include ../crypto/include DEPEND[sm4_internal_test]=../libcrypto.a libtestutil.a + SOURCE[ec_internal_test]=ec_internal_test.c + INCLUDE[ec_internal_test]=../include ../crypto/ec ../crypto/include + DEPEND[ec_internal_test]=../libcrypto.a libtestutil.a + SOURCE[curve448_internal_test]=curve448_internal_test.c INCLUDE[curve448_internal_test]=.. ../include ../crypto/ec/curve448 DEPEND[curve448_internal_test]=../libcrypto.a libtestutil.a @@ -572,11 +579,19 @@ ENDIF next if grep { lc("$name.h") =~ m/$_/i } @nogo_headers_re; $OUT .= <<"_____"; - PROGRAMS_NO_INST=buildtest_$name + PROGRAMS_NO_INST=buildtest_c_$name + SOURCE[buildtest_c_$name]=buildtest_$name.c GENERATE[buildtest_$name.c]=generate_buildtest.pl $name - SOURCE[buildtest_$name]=buildtest_$name.c - INCLUDE[buildtest_$name]=../include - DEPEND[buildtest_$name]=../libssl ../libcrypto + INCLUDE[buildtest_c_$name]=../include + DEPEND[buildtest_c_$name]=../libssl ../libcrypto +_____ + $OUT .= <<"_____" if $config{CXX} && !$disabled{"buildtest-c++"}; + + PROGRAMS_NO_INST=buildtest_cc_$name + SOURCE[buildtest_cc_$name]=buildtest_$name.cc + GENERATE[buildtest_$name.cc]=generate_buildtest.pl $name + INCLUDE[buildtest_cc_$name]=../include + DEPEND[buildtest_cc_$name]=../libssl ../libcrypto _____ } -} diff --git a/test/certs/root-cert-rsa2.pem b/test/certs/root-cert-rsa2.pem new file mode 100644 index 0000000000000000000000000000000000000000..b817fdf3e5dd377a4d2cb33aef404cf340114166 --- /dev/null +++ b/test/certs/root-cert-rsa2.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC7DCCAdSgAwIBAgIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290 +IENBMCAXDTE2MDExNTA4MTk0OVoYDzIxMTYwMTE2MDgxOTQ5WjASMRAwDgYDVQQD +DAdSb290IENBMIIBHTAIBgRVCAEBBQADggEPADCCAQoCggEBAOHmAPUGvKBGOHkP +Px5xGRNtAt8rm3Zr/KywIe3WkQhCO6VjNexSW6CiSsXWAJQDl1o9uWco0n3jIVyk +7cY8jY6E0Z1Uwz3ZdKKWdmdx+cYaUHez/XjuW+DjjIkjwpoi7D7UN54HzcArVREX +OjRCHGkNOhiw7RWUXsb9nofGHOeUGpLAXwXBc0PlA94JkckkztiOi34u4DFI0YYq +alUmeugLNk6XseCkydpcaUsDgAhWg6Mfsiq4wUz+xbFN1MABqu2+ziW97mmt9gfN +biuhiVT1aOuYCe3JYGbLM2JKA7Bo1g6rX8E1VX79Ru6669y2oqPthX9337VoIkN+ +ZiQjr8UCAwEAAaNQME4wHQYDVR0OBBYEFI71Ja8em2uEPXyAmslTnE1y96NSMB8G +A1UdIwQYMBaAFI71Ja8em2uEPXyAmslTnE1y96NSMAwGA1UdEwQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBAJ0OIdog3uQ1pmsjv1Qtf1w4If1geOn5uK0EOj2wYBHt +NxlFn7l8d9+51QMZFO+RlQJ0s3Webyo1ReuaL2dMn2LGJhWMoSBAwrMALAENU3lv +8jioRbfO2OamsdpJpKxQUyUJYudNe+BoKNX/ry3rxezmsFsRr9nDMiJZpmBCXiMm +mFFJOJkG0CheexBbMkua4kyStIOwO4rb5bSHszVso/9ucdGHBSC7oRcJXoWSDjBx +PdQPPBK5g4yqL8Lz26ehgsmhRKL9k32eVyjDKcIzgpmgcPTfTqNbd1KHQJKx4ssb +7nEpGKHalSo5Oq5L9s9qYrUv37kwBY4OpJFtmGaodoI= +-----END CERTIFICATE----- diff --git a/test/cipherlist_test.c b/test/cipherlist_test.c index 5023c1c4875fa4afd1aed34f9203354a1664feaf..8ee491091d3dc5f4dc5f7025a22c1ab223005477 100644 --- a/test/cipherlist_test.c +++ b/test/cipherlist_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL licenses, (the "License"); * you may not use this file except in compliance with the License. @@ -215,9 +215,44 @@ static int test_default_cipherlist_explicit(void) return result; } +/* SSL_CTX_set_cipher_list() should fail if it clears all TLSv1.2 ciphers. */ +static int test_default_cipherlist_clear(void) +{ + SETUP_CIPHERLIST_TEST_FIXTURE(); + SSL *s = NULL; + + if (fixture == NULL) + return 0; + + if (!TEST_int_eq(SSL_CTX_set_cipher_list(fixture->server, "no-such"), 0)) + goto end; + + if (!TEST_int_eq(ERR_GET_REASON(ERR_get_error()), SSL_R_NO_CIPHER_MATCH)) + goto end; + + s = SSL_new(fixture->client); + + if (!TEST_ptr(s)) + goto end; + + if (!TEST_int_eq(SSL_set_cipher_list(s, "no-such"), 0)) + goto end; + + if (!TEST_int_eq(ERR_GET_REASON(ERR_get_error()), + SSL_R_NO_CIPHER_MATCH)) + goto end; + + result = 1; +end: + SSL_free(s); + tear_down(fixture); + return result; +} + int setup_tests(void) { ADD_TEST(test_default_cipherlist_implicit); ADD_TEST(test_default_cipherlist_explicit); + ADD_TEST(test_default_cipherlist_clear); return 1; } diff --git a/test/clienthellotest.c b/test/clienthellotest.c index 10e3b1b1b172408e7fffcbb893d5c4453cc3d44d..862ca9ff6c26354357021be2a3a4ffc86bdbd412 100644 --- a/test/clienthellotest.c +++ b/test/clienthellotest.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -99,8 +99,9 @@ static int test_client_hello(int currtest) * ClientHello is already going to be quite long. To avoid getting one * that is too long for this test we use a restricted ciphersuite list */ - if (!TEST_true(SSL_CTX_set_cipher_list(ctx, ""))) + if (!TEST_false(SSL_CTX_set_cipher_list(ctx, ""))) goto end; + ERR_clear_error(); /* Fall through */ case TEST_ADD_PADDING: case TEST_PADDING_NOT_NEEDED: diff --git a/test/crltest.c b/test/crltest.c index 4d35fd4081c5c3bb4139d6f4e5c516c387453dc0..fe52282112338d7eda877f3dac6a1357d01b093d 100644 --- a/test/crltest.c +++ b/test/crltest.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -357,6 +357,20 @@ static int test_unknown_critical_crl(int n) return r; } +static int test_reuse_crl(void) +{ + X509_CRL *reused_crl = CRL_from_strings(kBasicCRL); + char *p; + BIO *b = glue2bio(kRevokedCRL, &p); + + reused_crl = PEM_read_bio_X509_CRL(b, &reused_crl, NULL, NULL); + + OPENSSL_free(p); + BIO_free(b); + X509_CRL_free(reused_crl); + return 1; +} + int setup_tests(void) { if (!TEST_ptr(test_root = X509_from_strings(kCRLTestRoot)) @@ -368,6 +382,7 @@ int setup_tests(void) ADD_TEST(test_bad_issuer_crl); ADD_TEST(test_known_critical_crl); ADD_ALL_TESTS(test_unknown_critical_crl, OSSL_NELEM(unknown_critical_crls)); + ADD_TEST(test_reuse_crl); return 1; } diff --git a/test/ct_test.c b/test/ct_test.c index de374764ef191af2d984eb2b5394d482f7a4965e..f881d5f6a9088e6d608c032e4ef0c4f0154d6476 100644 --- a/test/ct_test.c +++ b/test/ct_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -63,7 +63,7 @@ static CT_TEST_FIXTURE *set_up(const char *const test_case_name) if (!TEST_ptr(fixture = OPENSSL_zalloc(sizeof(*fixture)))) goto end; fixture->test_case_name = test_case_name; - fixture->epoch_time_in_ms = 1473269626000; /* Sep 7 17:33:46 2016 GMT */ + fixture->epoch_time_in_ms = 1473269626000ULL; /* Sep 7 17:33:46 2016 GMT */ if (!TEST_ptr(fixture->ctlog_store = CTLOG_STORE_new()) || !TEST_int_eq( CTLOG_STORE_load_default_file(fixture->ctlog_store), 1)) @@ -423,7 +423,7 @@ static int test_verify_fails_for_future_sct(void) SETUP_CT_TEST_FIXTURE(); if (fixture == NULL) return 0; - fixture->epoch_time_in_ms = 1365094800000; /* Apr 4 17:00:00 2013 GMT */ + fixture->epoch_time_in_ms = 1365094800000ULL; /* Apr 4 17:00:00 2013 GMT */ fixture->certs_dir = certs_dir; fixture->certificate_file = "embeddedSCTs1.pem"; fixture->issuer_file = "embeddedSCTs1_issuer.pem"; diff --git a/test/drbg_cavs_test.c b/test/drbg_cavs_test.c index 413f5bf6987cf15980d6710f99298f8cd9f52be7..eea387b4f950316d3fb7ba2fad0bb1a62cf8ecf3 100644 --- a/test/drbg_cavs_test.c +++ b/test/drbg_cavs_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -104,12 +104,9 @@ static int single_kat_no_reseed(const struct drbg_kat *td) failures++; err: - if (buff != NULL) - OPENSSL_free(buff); - if (drbg != NULL) { - RAND_DRBG_uninstantiate(drbg); - RAND_DRBG_free(drbg); - } + OPENSSL_free(buff); + RAND_DRBG_uninstantiate(drbg); + RAND_DRBG_free(drbg); return failures == 0; } @@ -172,12 +169,9 @@ static int single_kat_pr_false(const struct drbg_kat *td) failures++; err: - if (buff != NULL) - OPENSSL_free(buff); - if (drbg != NULL) { - RAND_DRBG_uninstantiate(drbg); - RAND_DRBG_free(drbg); - } + OPENSSL_free(buff); + RAND_DRBG_uninstantiate(drbg); + RAND_DRBG_free(drbg); return failures == 0; } @@ -243,12 +237,9 @@ static int single_kat_pr_true(const struct drbg_kat *td) failures++; err: - if (buff != NULL) - OPENSSL_free(buff); - if (drbg != NULL) { - RAND_DRBG_uninstantiate(drbg); - RAND_DRBG_free(drbg); - } + OPENSSL_free(buff); + RAND_DRBG_uninstantiate(drbg); + RAND_DRBG_free(drbg); return failures == 0; } diff --git a/test/drbgtest.c b/test/drbgtest.c index b690475e0cad3e75375387df12500ab3ba2b4179..0782a7c04584f11da48e2d7aa910bbf05022482b 100644 --- a/test/drbgtest.c +++ b/test/drbgtest.c @@ -1,5 +1,5 @@ /* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -420,7 +420,7 @@ static int error_check(DRBG_SELFTEST_DATA *td) */ /* Test explicit reseed with too large additional input */ - if (!init(drbg, td, &t) + if (!instantiate(drbg, td, &t) || RAND_DRBG_reseed(drbg, td->adin, drbg->max_adinlen + 1, 0) > 0) goto err; @@ -431,7 +431,7 @@ static int error_check(DRBG_SELFTEST_DATA *td) goto err; /* Test explicit reseed with too much entropy */ - if (!init(drbg, td, &t)) + if (!instantiate(drbg, td, &t)) goto err; t.entropylen = drbg->max_entropylen + 1; if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0) @@ -439,7 +439,7 @@ static int error_check(DRBG_SELFTEST_DATA *td) goto err; /* Test explicit reseed with too little entropy */ - if (!init(drbg, td, &t)) + if (!instantiate(drbg, td, &t)) goto err; t.entropylen = drbg->min_entropylen - 1; if (!TEST_int_le(RAND_DRBG_reseed(drbg, td->adin, td->adinlen, 0), 0) @@ -830,6 +830,11 @@ typedef HANDLE thread_t; static DWORD WINAPI thread_run(LPVOID arg) { run_multi_thread_test(); + /* + * Because we're linking with a static library, we must stop each + * thread explicitly, or so says OPENSSL_thread_stop(3) + */ + OPENSSL_thread_stop(); return 0; } @@ -851,6 +856,11 @@ typedef pthread_t thread_t; static void *thread_run(void *arg) { run_multi_thread_test(); + /* + * Because we're linking with a static library, we must stop each + * thread explicitly, or so says OPENSSL_thread_stop(3) + */ + OPENSSL_thread_stop(); return NULL; } diff --git a/test/dtlstest.c b/test/dtlstest.c index 772528febf9fafb6860d1e55dceda39ee218a657..9e6ed4438220607c1a98d7a5e3cc3caaf81f2e4b 100644 --- a/test/dtlstest.c +++ b/test/dtlstest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -87,17 +87,21 @@ static int test_dtls_unprocessed(int testidx) /* * Inject a dummy record from the next epoch. In test 0, this should never * get used because the message sequence number is too big. In test 1 we set - * the record sequence number to be way off in the future. This should not - * have an impact on the record replay protection because the record should - * be dropped before it is marked as arrived + * the record sequence number to be way off in the future. */ c_to_s_mempacket = SSL_get_wbio(clientssl1); c_to_s_mempacket = BIO_next(c_to_s_mempacket); mempacket_test_inject(c_to_s_mempacket, (char *)certstatus, sizeof(certstatus), 1, INJECT_PACKET_IGNORE_REC_SEQ); - if (!TEST_true(create_ssl_connection(serverssl1, clientssl1, - SSL_ERROR_NONE))) + /* + * Create the connection. We use "create_bare_ssl_connection" here so that + * we can force the connection to not do "SSL_read" once partly conencted. + * We don't want to accidentally read the dummy records we injected because + * they will fail to decrypt. + */ + if (!TEST_true(create_bare_ssl_connection(serverssl1, clientssl1, + SSL_ERROR_NONE, 0))) goto end; if (timer_cb_count == 0) { diff --git a/test/ec_internal_test.c b/test/ec_internal_test.c new file mode 100644 index 0000000000000000000000000000000000000000..8d3a4fdd67ce2750990ffc40b51180833f570314 --- /dev/null +++ b/test/ec_internal_test.c @@ -0,0 +1,205 @@ +/* + * Copyright 2019 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 + */ + +#include "internal/nelem.h" +#include "testutil.h" +#include <openssl/ec.h> +#include "ec_lcl.h" +#include <openssl/objects.h> + +static size_t crv_len = 0; +static EC_builtin_curve *curves = NULL; + +/* sanity checks field_inv function pointer in EC_METHOD */ +static int group_field_tests(const EC_GROUP *group, BN_CTX *ctx) +{ + BIGNUM *a = NULL, *b = NULL, *c = NULL; + int ret = 0; + + if (group->meth->field_inv == NULL || group->meth->field_mul == NULL) + return 1; + + BN_CTX_start(ctx); + a = BN_CTX_get(ctx); + b = BN_CTX_get(ctx); + if (!TEST_ptr(c = BN_CTX_get(ctx)) + /* 1/1 = 1 */ + || !TEST_true(group->meth->field_inv(group, b, BN_value_one(), ctx)) + || !TEST_true(BN_is_one(b)) + /* (1/a)*a = 1 */ + || !TEST_true(BN_pseudo_rand(a, BN_num_bits(group->field) - 1, + BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ANY)) + || !TEST_true(group->meth->field_inv(group, b, a, ctx)) + || (group->meth->field_encode && + !TEST_true(group->meth->field_encode(group, a, a, ctx))) + || (group->meth->field_encode && + !TEST_true(group->meth->field_encode(group, b, b, ctx))) + || !TEST_true(group->meth->field_mul(group, c, a, b, ctx)) + || (group->meth->field_decode && + !TEST_true(group->meth->field_decode(group, c, c, ctx))) + || !TEST_true(BN_is_one(c))) + goto err; + + /* 1/0 = error */ + BN_zero(a); + if (!TEST_false(group->meth->field_inv(group, b, a, ctx)) + || !TEST_true(ERR_GET_LIB(ERR_peek_last_error()) == ERR_LIB_EC) + || !TEST_true(ERR_GET_REASON(ERR_peek_last_error()) == + EC_R_CANNOT_INVERT) + /* 1/p = error */ + || !TEST_false(group->meth->field_inv(group, b, group->field, ctx)) + || !TEST_true(ERR_GET_LIB(ERR_peek_last_error()) == ERR_LIB_EC) + || !TEST_true(ERR_GET_REASON(ERR_peek_last_error()) == + EC_R_CANNOT_INVERT)) + goto err; + + ERR_clear_error(); + ret = 1; + err: + BN_CTX_end(ctx); + return ret; +} + +/* wrapper for group_field_tests for explicit curve params and EC_METHOD */ +static int field_tests(const EC_METHOD *meth, const unsigned char *params, + int len) +{ + BN_CTX *ctx = NULL; + BIGNUM *p = NULL, *a = NULL, *b = NULL; + EC_GROUP *group = NULL; + int ret = 0; + + if (!TEST_ptr(ctx = BN_CTX_new())) + return 0; + + BN_CTX_start(ctx); + p = BN_CTX_get(ctx); + a = BN_CTX_get(ctx); + if (!TEST_ptr(b = BN_CTX_get(ctx)) + || !TEST_ptr(group = EC_GROUP_new(meth)) + || !TEST_true(BN_bin2bn(params, len, p)) + || !TEST_true(BN_bin2bn(params + len, len, a)) + || !TEST_true(BN_bin2bn(params + 2 * len, len, b)) + || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx)) + || !group_field_tests(group, ctx)) + goto err; + ret = 1; + + err: + BN_CTX_end(ctx); + BN_CTX_free(ctx); + if (group != NULL) + EC_GROUP_free(group); + return ret; +} + +/* NIST prime curve P-256 */ +static const unsigned char params_p256[] = { + /* p */ + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + /* a */ + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, + /* b */ + 0x5A, 0xC6, 0x35, 0xD8, 0xAA, 0x3A, 0x93, 0xE7, 0xB3, 0xEB, 0xBD, 0x55, + 0x76, 0x98, 0x86, 0xBC, 0x65, 0x1D, 0x06, 0xB0, 0xCC, 0x53, 0xB0, 0xF6, + 0x3B, 0xCE, 0x3C, 0x3E, 0x27, 0xD2, 0x60, 0x4B +}; + +#ifndef OPENSSL_NO_EC2M +/* NIST binary curve B-283 */ +static const unsigned char params_b283[] = { + /* p */ + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA1, + /* a */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + /* b */ + 0x02, 0x7B, 0x68, 0x0A, 0xC8, 0xB8, 0x59, 0x6D, 0xA5, 0xA4, 0xAF, 0x8A, + 0x19, 0xA0, 0x30, 0x3F, 0xCA, 0x97, 0xFD, 0x76, 0x45, 0x30, 0x9F, 0xA2, + 0xA5, 0x81, 0x48, 0x5A, 0xF6, 0x26, 0x3E, 0x31, 0x3B, 0x79, 0xA2, 0xF5 +}; +#endif + +/* test EC_GFp_simple_method directly */ +static int field_tests_ecp_simple(void) +{ + TEST_info("Testing EC_GFp_simple_method()\n"); + return field_tests(EC_GFp_simple_method(), params_p256, + sizeof(params_p256) / 3); +} + +/* test EC_GFp_mont_method directly */ +static int field_tests_ecp_mont(void) +{ + TEST_info("Testing EC_GFp_mont_method()\n"); + return field_tests(EC_GFp_mont_method(), params_p256, + sizeof(params_p256) / 3); +} + +#ifndef OPENSSL_NO_EC2M +/* test EC_GF2m_simple_method directly */ +static int field_tests_ec2_simple(void) +{ + TEST_info("Testing EC_GF2m_simple_method()\n"); + return field_tests(EC_GF2m_simple_method(), params_b283, + sizeof(params_b283) / 3); +} +#endif + +/* test default method for a named curve */ +static int field_tests_default(int n) +{ + BN_CTX *ctx = NULL; + EC_GROUP *group = NULL; + int nid = curves[n].nid; + int ret = 0; + + TEST_info("Testing curve %s\n", OBJ_nid2sn(nid)); + + if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid)) + || !TEST_ptr(ctx = BN_CTX_new()) + || !group_field_tests(group, ctx)) + goto err; + + ret = 1; + err: + if (group != NULL) + EC_GROUP_free(group); + if (ctx != NULL) + BN_CTX_free(ctx); + return ret; +} + +int setup_tests(void) +{ + crv_len = EC_get_builtin_curves(NULL, 0); + if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len)) + || !TEST_true(EC_get_builtin_curves(curves, crv_len))) + return 0; + + ADD_TEST(field_tests_ecp_simple); + ADD_TEST(field_tests_ecp_mont); +#ifndef OPENSSL_NO_EC2M + ADD_TEST(field_tests_ec2_simple); +#endif + ADD_ALL_TESTS(field_tests_default, crv_len); + return 1; +} + +void cleanup_tests(void) +{ + OPENSSL_free(curves); +} diff --git a/test/ecdsatest.c b/test/ecdsatest.c index 96939a5b725959852b9b99fffa96af0c25d2c8fe..ad2f4048a0c9998e985b0f3ece0c7f18c242eb31 100644 --- a/test/ecdsatest.c +++ b/test/ecdsatest.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -8,32 +8,27 @@ * https://www.openssl.org/source/license.html */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - #include <openssl/opensslconf.h> /* To see if OPENSSL_NO_EC is defined */ #include "testutil.h" #ifndef OPENSSL_NO_EC -# include <openssl/crypto.h> -# include <openssl/bio.h> # include <openssl/evp.h> # include <openssl/bn.h> # include <openssl/ec.h> -# ifndef OPENSSL_NO_ENGINE -# include <openssl/engine.h> -# endif -# include <openssl/sha.h> -# include <openssl/err.h> # include <openssl/rand.h> +# include "internal/nelem.h" +# include "ecdsatest.h" /* functions to change the RAND_METHOD */ static int fbytes(unsigned char *buf, int num); static RAND_METHOD fake_rand; static const RAND_METHOD *old_rand; +static int use_fake = 0; +static const char *numbers[2]; +static size_t crv_len = 0; +static EC_builtin_curve *curves = NULL; static int change_rand(void) { @@ -57,25 +52,10 @@ static int restore_rand(void) return 1; } -static int fbytes_counter = 0, use_fake = 0; -static const char *numbers[8] = { - "651056770906015076056810763456358567190100156695615665659", - "6140507067065001063065065565667405560006161556565665656654", - "8763001015071075675010661307616710783570106710677817767166" - "71676178726717", - "7000000175690566466555057817571571075705015757757057795755" - "55657156756655", - "1275552191113212300012030439187146164646146646466749494799", - "1542725565216523985789236956265265265235675811949404040041", - "1456427555219115346513212300075341203043918714616464614664" - "64667494947990", - "1712787255652165239672857892369562652652652356758119494040" - "40041670216363" -}; - static int fbytes(unsigned char *buf, int num) { int ret = 0; + static int fbytes_counter = 0; BIGNUM *tmp = NULL; if (use_fake == 0) @@ -83,316 +63,254 @@ static int fbytes(unsigned char *buf, int num) use_fake = 0; - if (fbytes_counter >= 8) - return 0; - if (!TEST_ptr(tmp = BN_new())) - return 0; - if (!TEST_true(BN_dec2bn(&tmp, numbers[fbytes_counter]))) { - BN_free(tmp); - return 0; - } - fbytes_counter++; - if (TEST_int_eq(BN_num_bytes(tmp), num) - && TEST_true(BN_bn2bin(tmp, buf))) - ret = 1; + if (!TEST_ptr(tmp = BN_new()) + || !TEST_int_lt(fbytes_counter, OSSL_NELEM(numbers)) + || !TEST_true(BN_hex2bn(&tmp, numbers[fbytes_counter])) + /* tmp might need leading zeros so pad it out */ + || !TEST_int_le(BN_num_bytes(tmp), num) + || !TEST_true(BN_bn2binpad(tmp, buf, num))) + goto err; + + fbytes_counter = (fbytes_counter + 1) % OSSL_NELEM(numbers); + ret = 1; + err: BN_free(tmp); return ret; } -/* some tests from the X9.62 draft */ -static int x9_62_test_internal(int nid, const char *r_in, const char *s_in) +/*- + * This function hijacks the RNG to feed it the chosen ECDSA key and nonce. + * The ECDSA KATs are from: + * - the X9.62 draft (4) + * - NIST CAVP (720) + * + * It uses the low-level ECDSA_sign_setup instead of EVP to control the RNG. + * NB: This is not how applications should use ECDSA; this is only for testing. + * + * Tests the library can successfully: + * - generate public keys that matches those KATs + * - create ECDSA signatures that match those KATs + * - accept those signatures as valid + */ +static int x9_62_tests(int n) { - int ret = 0; - const char message[] = "abc"; - unsigned char digest[SHA_DIGEST_LENGTH]; + int nid, md_nid, ret = 0; + const char *r_in = NULL, *s_in = NULL, *tbs = NULL; + unsigned char *pbuf = NULL, *qbuf = NULL, *message = NULL; + unsigned char digest[EVP_MAX_MD_SIZE]; unsigned int dgst_len = 0; - EVP_MD_CTX *md_ctx; + long q_len, msg_len = 0; + size_t p_len; + EVP_MD_CTX *mctx = NULL; EC_KEY *key = NULL; ECDSA_SIG *signature = NULL; BIGNUM *r = NULL, *s = NULL; BIGNUM *kinv = NULL, *rp = NULL; - const BIGNUM *sig_r, *sig_s; - - if (!TEST_ptr(md_ctx = EVP_MD_CTX_new())) - goto x962_int_err; - - /* get the message digest */ - if (!TEST_true(EVP_DigestInit(md_ctx, EVP_sha1())) - || !TEST_true(EVP_DigestUpdate(md_ctx, (const void *)message, 3)) - || !TEST_true(EVP_DigestFinal(md_ctx, digest, &dgst_len))) - goto x962_int_err; - - TEST_info("testing %s", OBJ_nid2sn(nid)); - - /* create the key */ - if (!TEST_ptr(key = EC_KEY_new_by_curve_name(nid))) - goto x962_int_err; + const BIGNUM *sig_r = NULL, *sig_s = NULL; + + nid = ecdsa_cavs_kats[n].nid; + md_nid = ecdsa_cavs_kats[n].md_nid; + r_in = ecdsa_cavs_kats[n].r; + s_in = ecdsa_cavs_kats[n].s; + tbs = ecdsa_cavs_kats[n].msg; + numbers[0] = ecdsa_cavs_kats[n].d; + numbers[1] = ecdsa_cavs_kats[n].k; + + TEST_info("ECDSA KATs for curve %s", OBJ_nid2sn(nid)); + + if (!TEST_ptr(mctx = EVP_MD_CTX_new()) + /* get the message digest */ + || !TEST_ptr(message = OPENSSL_hexstr2buf(tbs, &msg_len)) + || !TEST_true(EVP_DigestInit_ex(mctx, EVP_get_digestbynid(md_nid), NULL)) + || !TEST_true(EVP_DigestUpdate(mctx, message, msg_len)) + || !TEST_true(EVP_DigestFinal_ex(mctx, digest, &dgst_len)) + /* create the key */ + || !TEST_ptr(key = EC_KEY_new_by_curve_name(nid)) + /* load KAT variables */ + || !TEST_ptr(r = BN_new()) + || !TEST_ptr(s = BN_new()) + || !TEST_true(BN_hex2bn(&r, r_in)) + || !TEST_true(BN_hex2bn(&s, s_in)) + /* swap the RNG source */ + || !TEST_true(change_rand())) + goto err; + + /* public key must match KAT */ use_fake = 1; - if (!TEST_true(EC_KEY_generate_key(key))) - goto x962_int_err; - - /* create the signature */ + if (!TEST_true(EC_KEY_generate_key(key)) + || !TEST_true(p_len = EC_KEY_key2buf(key, POINT_CONVERSION_UNCOMPRESSED, + &pbuf, NULL)) + || !TEST_ptr(qbuf = OPENSSL_hexstr2buf(ecdsa_cavs_kats[n].Q, &q_len)) + || !TEST_int_eq(q_len, p_len) + || !TEST_mem_eq(qbuf, q_len, pbuf, p_len)) + goto err; + + /* create the signature via ECDSA_sign_setup to avoid use of ECDSA nonces */ use_fake = 1; - /* Use ECDSA_sign_setup to avoid use of ECDSA nonces */ - if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp))) - goto x962_int_err; - if (!TEST_ptr(signature = - ECDSA_do_sign_ex(digest, SHA_DIGEST_LENGTH, kinv, rp, key))) - goto x962_int_err; + if (!TEST_true(ECDSA_sign_setup(key, NULL, &kinv, &rp)) + || !TEST_ptr(signature = ECDSA_do_sign_ex(digest, dgst_len, + kinv, rp, key)) + /* verify the signature */ + || !TEST_int_eq(ECDSA_do_verify(digest, dgst_len, signature, key), 1)) + goto err; /* compare the created signature with the expected signature */ - if (!TEST_ptr(r = BN_new()) || !TEST_ptr(s = BN_new())) - goto x962_int_err; - if (!TEST_true(BN_dec2bn(&r, r_in)) || !TEST_true(BN_dec2bn(&s, s_in))) - goto x962_int_err; ECDSA_SIG_get0(signature, &sig_r, &sig_s); if (!TEST_BN_eq(sig_r, r) - || !TEST_BN_eq(sig_s, s)) - goto x962_int_err; - - /* verify the signature */ - if (!TEST_int_eq(ECDSA_do_verify(digest, SHA_DIGEST_LENGTH, - signature, key), 1)) - goto x962_int_err; + || !TEST_BN_eq(sig_s, s)) + goto err; ret = 1; - x962_int_err: + err: + /* restore the RNG source */ + if (!TEST_true(restore_rand())) + ret = 0; + + OPENSSL_free(message); + OPENSSL_free(pbuf); + OPENSSL_free(qbuf); EC_KEY_free(key); ECDSA_SIG_free(signature); BN_free(r); BN_free(s); - EVP_MD_CTX_free(md_ctx); + EVP_MD_CTX_free(mctx); BN_clear_free(kinv); BN_clear_free(rp); return ret; } -static int x9_62_tests(void) -{ - int ret = 0; - - /* set own rand method */ - if (!change_rand()) - goto x962_err; - - if (!TEST_true(x9_62_test_internal(NID_X9_62_prime192v1, - "3342403536405981729393488334694600415596881826869351677613", - "5735822328888155254683894997897571951568553642892029982342"))) - goto x962_err; - if (!TEST_true(x9_62_test_internal(NID_X9_62_prime239v1, - "3086361431751678114926225473006680188549593787585317781474" - "62058306432176", - "3238135532097973577080787768312505059318910517550078427819" - "78505179448783"))) - goto x962_err; - -# ifndef OPENSSL_NO_EC2M - if (!TEST_true(x9_62_test_internal(NID_X9_62_c2tnb191v1, - "87194383164871543355722284926904419997237591535066528048", - "308992691965804947361541664549085895292153777025772063598"))) - goto x962_err; - if (!TEST_true(x9_62_test_internal(NID_X9_62_c2tnb239v1, - "2159633321041961198501834003903461262881815148684178964245" - "5876922391552", - "1970303740007316867383349976549972270528498040721988191026" - "49413465737174"))) - goto x962_err; -# endif - ret = 1; - - x962_err: - if (!TEST_true(restore_rand())) - ret = 0; - return ret; -} - -static int test_builtin(void) +/*- + * Positive and negative ECDSA testing through EVP interface: + * - EVP_DigestSign (this is the one-shot version) + * - EVP_DigestVerify + * + * Tests the library can successfully: + * - create a key + * - create a signature + * - accept that signature + * - reject that signature with a different public key + * - reject that signature if its length is not correct + * - reject that signature after modifying the message + * - accept that signature after un-modifying the message + * - reject that signature after modifying the signature + * - accept that signature after un-modifying the signature + */ +static int test_builtin(int n) { - EC_builtin_curve *curves = NULL; - size_t crv_len = 0, n = 0; - EC_KEY *eckey = NULL, *wrong_eckey = NULL; - EC_GROUP *group; - ECDSA_SIG *ecdsa_sig = NULL, *modified_sig = NULL; - unsigned char digest[SHA512_DIGEST_LENGTH]; - unsigned char wrong_digest[SHA512_DIGEST_LENGTH]; - unsigned char *signature = NULL; - const unsigned char *sig_ptr; - unsigned char *sig_ptr2; - unsigned char *raw_buf = NULL; - const BIGNUM *sig_r, *sig_s; - BIGNUM *modified_r = NULL, *modified_s = NULL; - BIGNUM *unmodified_r = NULL, *unmodified_s = NULL; - unsigned int sig_len, degree, r_len, s_len, bn_len, buf_len; + EC_KEY *eckey_neg = NULL, *eckey = NULL; + unsigned char dirt, offset, tbs[128]; + unsigned char *sig = NULL; + EVP_PKEY *pkey_neg = NULL, *pkey = NULL; + EVP_MD_CTX *mctx = NULL; + size_t sig_len; int nid, ret = 0; - /* fill digest values with some random data */ - if (!TEST_true(RAND_bytes(digest, SHA512_DIGEST_LENGTH)) - || !TEST_true(RAND_bytes(wrong_digest, SHA512_DIGEST_LENGTH))) - goto builtin_err; + nid = curves[n].nid; - /* create and verify a ecdsa signature with every available curve */ - /* get a list of all internal curves */ - crv_len = EC_get_builtin_curves(NULL, 0); - if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len)) - || !TEST_true(EC_get_builtin_curves(curves, crv_len))) - goto builtin_err; - - /* now create and verify a signature for every curve */ - for (n = 0; n < crv_len; n++) { - unsigned char dirt, offset; - - nid = curves[n].nid; - if (nid == NID_ipsec4 || nid == NID_ipsec3) - continue; - /* create new ecdsa key (== EC_KEY) */ - if (!TEST_ptr(eckey = EC_KEY_new()) - || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid)) - || !TEST_true(EC_KEY_set_group(eckey, group))) - goto builtin_err; - EC_GROUP_free(group); - degree = EC_GROUP_get_degree(EC_KEY_get0_group(eckey)); - - TEST_info("testing %s", OBJ_nid2sn(nid)); - - /* create key */ - if (!TEST_true(EC_KEY_generate_key(eckey))) - goto builtin_err; - /* create second key */ - if (!TEST_ptr(wrong_eckey = EC_KEY_new()) - || !TEST_ptr(group = EC_GROUP_new_by_curve_name(nid)) - || !TEST_true(EC_KEY_set_group(wrong_eckey, group))) - goto builtin_err; - EC_GROUP_free(group); - if (!TEST_true(EC_KEY_generate_key(wrong_eckey))) - goto builtin_err; - - /* check key */ - if (!TEST_true(EC_KEY_check_key(eckey))) - goto builtin_err; - - /* create signature */ - sig_len = ECDSA_size(eckey); - if (!TEST_ptr(signature = OPENSSL_malloc(sig_len)) - || !TEST_true(ECDSA_sign(0, digest, SHA512_DIGEST_LENGTH, - signature, &sig_len, eckey))) - goto builtin_err; - - /* verify signature */ - if (!TEST_int_eq(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, - signature, sig_len, eckey), - 1)) - goto builtin_err; - - /* verify signature with the wrong key */ - if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, - signature, sig_len, wrong_eckey), - 1)) - goto builtin_err; - - /* wrong digest */ - if (!TEST_int_ne(ECDSA_verify(0, wrong_digest, SHA512_DIGEST_LENGTH, - signature, sig_len, eckey), - 1)) - goto builtin_err; - - /* wrong length */ - if (!TEST_int_ne(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, - signature, sig_len - 1, eckey), - 1)) - goto builtin_err; - - /* - * Modify a single byte of the signature: to ensure we don't garble - * the ASN1 structure, we read the raw signature and modify a byte in - * one of the bignums directly. - */ - sig_ptr = signature; - if (!TEST_ptr(ecdsa_sig = d2i_ECDSA_SIG(NULL, &sig_ptr, sig_len))) - goto builtin_err; - - ECDSA_SIG_get0(ecdsa_sig, &sig_r, &sig_s); - - /* Store the two BIGNUMs in raw_buf. */ - r_len = BN_num_bytes(sig_r); - s_len = BN_num_bytes(sig_s); - bn_len = (degree + 7) / 8; - if (!TEST_false(r_len > bn_len) - || !TEST_false(s_len > bn_len)) - goto builtin_err; - buf_len = 2 * bn_len; - if (!TEST_ptr(raw_buf = OPENSSL_zalloc(buf_len))) - goto builtin_err; - BN_bn2bin(sig_r, raw_buf + bn_len - r_len); - BN_bn2bin(sig_s, raw_buf + buf_len - s_len); - - /* Modify a single byte in the buffer. */ - offset = raw_buf[10] % buf_len; - dirt = raw_buf[11] ? raw_buf[11] : 1; - raw_buf[offset] ^= dirt; - - /* Now read the BIGNUMs back in from raw_buf. */ - if (!TEST_ptr(modified_sig = ECDSA_SIG_new())) - goto builtin_err; - if (!TEST_ptr(modified_r = BN_bin2bn(raw_buf, bn_len, NULL)) - || !TEST_ptr(modified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) - || !TEST_true(ECDSA_SIG_set0(modified_sig, - modified_r, modified_s))) { - BN_free(modified_r); - BN_free(modified_s); - goto builtin_err; - } - sig_ptr2 = signature; - sig_len = i2d_ECDSA_SIG(modified_sig, &sig_ptr2); - if (!TEST_false(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, - signature, sig_len, eckey))) - goto builtin_err; - - /* Sanity check: undo the modification and verify signature. */ - raw_buf[offset] ^= dirt; - if (!TEST_ptr(unmodified_r = BN_bin2bn(raw_buf, bn_len, NULL)) - || !TEST_ptr(unmodified_s = BN_bin2bn(raw_buf + bn_len, - bn_len, NULL)) - || !TEST_true(ECDSA_SIG_set0(modified_sig, unmodified_r, - unmodified_s))) { - BN_free(unmodified_r); - BN_free(unmodified_s); - goto builtin_err; - } - - sig_ptr2 = signature; - sig_len = i2d_ECDSA_SIG(modified_sig, &sig_ptr2); - if (!TEST_true(ECDSA_verify(0, digest, SHA512_DIGEST_LENGTH, - signature, sig_len, eckey))) - goto builtin_err; - - /* cleanup */ - ERR_clear_error(); - OPENSSL_free(signature); - signature = NULL; - EC_KEY_free(eckey); - eckey = NULL; - EC_KEY_free(wrong_eckey); - wrong_eckey = NULL; - ECDSA_SIG_free(ecdsa_sig); - ecdsa_sig = NULL; - ECDSA_SIG_free(modified_sig); - modified_sig = NULL; - OPENSSL_free(raw_buf); - raw_buf = NULL; + /* skip built-in curves where ord(G) is not prime */ + if (nid == NID_ipsec4 || nid == NID_ipsec3) { + TEST_info("skipped: ECDSA unsupported for curve %s", OBJ_nid2sn(nid)); + return 1; } - ret = 1; - builtin_err: - EC_KEY_free(eckey); - EC_KEY_free(wrong_eckey); - ECDSA_SIG_free(ecdsa_sig); - ECDSA_SIG_free(modified_sig); - OPENSSL_free(signature); - OPENSSL_free(raw_buf); - OPENSSL_free(curves); + TEST_info("testing ECDSA for curve %s", OBJ_nid2sn(nid)); + + if (!TEST_ptr(mctx = EVP_MD_CTX_new()) + /* get some random message data */ + || !TEST_true(RAND_bytes(tbs, sizeof(tbs))) + /* real key */ + || !TEST_ptr(eckey = EC_KEY_new_by_curve_name(nid)) + || !TEST_true(EC_KEY_generate_key(eckey)) + || !TEST_ptr(pkey = EVP_PKEY_new()) + || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey, eckey)) + /* fake key for negative testing */ + || !TEST_ptr(eckey_neg = EC_KEY_new_by_curve_name(nid)) + || !TEST_true(EC_KEY_generate_key(eckey_neg)) + || !TEST_ptr(pkey_neg = EVP_PKEY_new()) + || !TEST_true(EVP_PKEY_assign_EC_KEY(pkey_neg, eckey_neg))) + goto err; + + sig_len = ECDSA_size(eckey); + + if (!TEST_ptr(sig = OPENSSL_malloc(sig_len)) + /* create a signature */ + || !TEST_true(EVP_DigestSignInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_true(EVP_DigestSign(mctx, sig, &sig_len, tbs, sizeof(tbs))) + || !TEST_int_le(sig_len, ECDSA_size(eckey)) + /* negative test, verify with wrong key, 0 return */ + || !TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey_neg)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 0) + /* negative test, verify with wrong signature length, -1 return */ + || !TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len - 1, tbs, sizeof(tbs)), -1) + /* positive test, verify with correct key, 1 return */ + || !TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1)) + goto err; + + /* muck with the message, test it fails with 0 return */ + tbs[0] ^= 1; + if (!TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 0)) + goto err; + /* un-muck and test it verifies */ + tbs[0] ^= 1; + if (!TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1)) + goto err; + + /*- + * Muck with the ECDSA signature. The DER encoding is one of: + * - 30 LL 02 .. + * - 30 81 LL 02 .. + * + * - Sometimes this mucks with the high level DER sequence wrapper: + * in that case, DER-parsing of the whole signature should fail. + * + * - Sometimes this mucks with the DER-encoding of ECDSA.r: + * in that case, DER-parsing of ECDSA.r should fail. + * + * - Sometimes this mucks with the DER-encoding of ECDSA.s: + * in that case, DER-parsing of ECDSA.s should fail. + * + * - Sometimes this mucks with ECDSA.r: + * in that case, the signature verification should fail. + * + * - Sometimes this mucks with ECDSA.s: + * in that case, the signature verification should fail. + * + * The usual case is changing the integer value of ECDSA.r or ECDSA.s. + * Because the ratio of DER overhead to signature bytes is small. + * So most of the time it will be one of the last two cases. + * + * In any case, EVP_PKEY_verify should not return 1 for valid. + */ + offset = tbs[0] % sig_len; + dirt = tbs[1] ? tbs[1] : 1; + sig[offset] ^= dirt; + if (!TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_ne(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1)) + goto err; + /* un-muck and test it verifies */ + sig[offset] ^= dirt; + if (!TEST_true(EVP_MD_CTX_reset(mctx)) + || !TEST_true(EVP_DigestVerifyInit(mctx, NULL, NULL, NULL, pkey)) + || !TEST_int_eq(EVP_DigestVerify(mctx, sig, sig_len, tbs, sizeof(tbs)), 1)) + goto err; + ret = 1; + err: + EVP_PKEY_free(pkey); + EVP_PKEY_free(pkey_neg); + EVP_MD_CTX_free(mctx); + OPENSSL_free(sig); return ret; } #endif @@ -402,8 +320,20 @@ int setup_tests(void) #ifdef OPENSSL_NO_EC TEST_note("Elliptic curves are disabled."); #else - ADD_TEST(x9_62_tests); - ADD_TEST(test_builtin); + /* get a list of all internal curves */ + crv_len = EC_get_builtin_curves(NULL, 0); + if (!TEST_ptr(curves = OPENSSL_malloc(sizeof(*curves) * crv_len)) + || !TEST_true(EC_get_builtin_curves(curves, crv_len))) + return 0; + ADD_ALL_TESTS(test_builtin, crv_len); + ADD_ALL_TESTS(x9_62_tests, OSSL_NELEM(ecdsa_cavs_kats)); #endif return 1; } + +void cleanup_tests(void) +{ +#ifndef OPENSSL_NO_EC + OPENSSL_free(curves); +#endif +} diff --git a/test/ecdsatest.h b/test/ecdsatest.h new file mode 100644 index 0000000000000000000000000000000000000000..216e66e277e7c791fc7c777630b5cdf083974ff9 --- /dev/null +++ b/test/ecdsatest.h @@ -0,0 +1,10214 @@ +/* + * Copyright 2019 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 ECDSATEST_CAVS_H +# define ECDSATEST_CAVS_H + +/*- + * NIST CAVP ECDSA KATs: + * https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/dss/186-3ecdsatestvectors.zip + * + * sha256sum e0d9bee3f760ca3fabb82bd43dd04c13ee64ca9e0b719c6ea64fd52c9f0dd929 + * 720 KATs from the SigGen.txt file. + * + * There are also 4 X9.62 KATs; two for prime fields and two for binary fields. + */ + +typedef struct { + const int nid; /* curve NID */ + const int md_nid; /* hash function NID */ + const char *msg; /* message to sign */ + const char *d; /* ECDSA private key */ + const char *Q; /* ECDSA public key: Q = dG */ + const char *k; /* ECDSA nonce */ + const char *r; /* ECDSA signature (r,s) */ + const char *s; +} ecdsa_cavs_kat_t; + +static const ecdsa_cavs_kat_t ecdsa_cavs_kats[] = { + /* prime KATs from X9.62 */ + {NID_X9_62_prime192v1, NID_sha1, + "616263", /* "abc" */ + "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb", + "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e" + "5ca5c0d69716dfcb3474373902", + "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e", + "885052380ff147b734c330c43d39b2c4a89f29b0f749fead", + "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686"}, + {NID_X9_62_prime239v1, NID_sha1, + "616263", /* "abc" */ + "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d", + "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e" + "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee", + "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af", + "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0", + "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf"}, + /* prime KATs from NIST CAVP */ + {NID_secp224r1, NID_sha224, + "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1" + "9495df081c3fc60245b9f25fc9e301b845b3d703a694986e4641ae3c7e5a19e6d6edbf1d" + "61e535f49a8fad5f4ac26397cfec682f161a5fcd32c5e780668b0181a91955157635536a" + "22367308036e2070f544ad4fff3d5122c76fad5d", + "16797b5c0c7ed5461e2ff1b88e6eafa03c0f46bf072000dfc830d615", + "04605495756e6e88f1d07ae5f98787af9b4da8a641d1a9492a12174eabf5cc733b17decc" + "806ef1df861a42505d0af9ef7c3df3959b8dfc6669", + "d9a5a7328117f48b4b8dd8c17dae722e756b3ff64bd29a527137eec0", + "2fc2cff8cdd4866b1d74e45b07d333af46b7af0888049d0fdbc7b0d6", + "8d9cc4c8ea93e0fd9d6431b9a1fd99b88f281793396321b11dac41eb"}, + {NID_secp224r1, NID_sha224, + "7de42b44db0aa8bfdcdac9add227e8f0cc7ad1d94693beb5e1d325e5f3f85b3bd033fc25" + "e9469a89733a65d1fa641f7e67d668e7c71d736233c4cba20eb83c368c506affe77946b5" + "e2ec693798aecd7ff943cd8fab90affddf5ad5b8d1af332e6c5fe4a2df16837700b2781e" + "08821d4fbdd8373517f5b19f9e63b89cfeeeef6f", + "cf020a1ff36c28511191482ed1e5259c60d383606c581948c3fbe2c5", + "04fa21f85b99d3dc18c6d53351fbcb1e2d029c00fa7d1663a3dd94695ee9e79578f8988b" + "168edff1a8b34a5ed9598cc20acd1f0aed36715d88", + "c780d047454824af98677cf310117e5f9e99627d02414f136aed8e83", + "45145f06b566ec9fd0fee1b6c6551a4535c7a3bbfc0fede45f4f5038", + "7302dff12545b069cf27df49b26e4781270585463656f2834917c3ca"}, + {NID_secp224r1, NID_sha224, + "af0da3adab82784909e2b3dadcecba21eced3c60d7572023dea171044d9a10e8ba67d31b" + "04904541b87fff32a10ccc6580869055fec6216a00320a28899859a6b61faba58a0bc10c" + "2ba07ea16f214c3ddcc9fc5622ad1253b63fe7e95227ae3c9caa9962cffc8b1c4e826003" + "6469d25ab0c8e3643a820b8b3a4d8d43e4b728f9", + "dde6f173fa9f307d206ce46b4f02851ebce9638a989330249fd30b73", + "04fc21a99b060afb0d9dbf3250ea3c4da10be94ce627a65874d8e4a630e8373ab7190890" + "326aac4aacca3eba89e15d1086a05434dd033fd3f3", + "6629366a156840477df4875cfba4f8faa809e394893e1f5525326d07", + "41f8e2b1ae5add7c24da8725a067585a3ad6d5a9ed9580beb226f23a", + "a5d71bff02dce997305dd337128046f36714398f4ef6647599712fae"}, + {NID_secp224r1, NID_sha224, + "cfa56ae89727df6b7266f69d6636bf738f9e4f15f49c42a0123edac4b3743f32ea52389f" + "919ceb90575c4184897773b2f2fc5b3fcb354880f15c93383215d3c2551fcc1b4180a1ac" + "0f69c969bbc306acd115ce3976eff518540f43ad4076dbb5fbad9ce9b3234f1148b8f5e0" + "59192ff480fc4bcbd00d25f4d9f5ed4ba5693b6c", + "aeee9071248f077590ac647794b678ad371f8e0f1e14e9fbff49671e", + "04fad0a34991bbf89982ad9cf89337b4bd2565f84d5bdd004289fc1cc35d8b6764f28c81" + "63a12855a5c266efeb9388df4994b85a8b4f1bd3bc", + "1d35d027cd5a569e25c5768c48ed0c2b127c0f99cb4e52ea094fe689", + "2258184ef9f0fa698735379972ce9adf034af76017668bfcdab978de", + "866fb8e505dea6c909c2c9143ec869d1bac2282cf12366130ff2146c"}, + {NID_secp224r1, NID_sha224, + "c223c8009018321b987a615c3414d2bb15954933569ca989de32d6bf11107bc47a330ab6" + "d88d9b50d106cf5777d1b736b14bc48deda1bc573a9a7dd42cd061860645306dce7a5ba8" + "c60f135a6a21999421ce8c4670fe7287a7e9ea3aa1e0fa82721f33e6e823957fe86e2283" + "c89ef92b13cd0333c4bb70865ae1919bf538ea34", + "29c204b2954e1406a015020f9d6b3d7c00658298feb2d17440b2c1a4", + "040e0fc15e775a75d45f872e5021b554cc0579da19125e1a49299c7630cb64fe462d025a" + "e2a1394746bdbf8251f7ca5a1d6bb13e0edf6b7b09", + "39547c10bb947d69f6c3af701f2528e011a1e80a6d04cc5a37466c02", + "86622c376d326cdf679bcabf8eb034bf49f0c188f3fc3afd0006325d", + "26613d3b33c70e635d7a998f254a5b15d2a3642bf321e8cff08f1e84"}, + {NID_secp224r1, NID_sha224, + "1c27273d95182c74c100d85b5c08f4b26874c2abc87f127f304aedbf52ef6540eba16dd6" + "64ae1e9e30ea1e66ff9cc9ab5a80b5bcbd19dde88a29ff10b50a6abd73388e8071306c68" + "d0c9f6caa26b7e68de29312be959b9f4a5481f5a2ad2070a396ed3de21096541cf58c4a1" + "3308e08867565bf2df9d649357a83cdcf18d2cd9", + "8986a97b24be042a1547642f19678de4e281a68f1e794e343dabb131", + "042c070e68e8478341938f3d5026a1fe01e778cdffbebbdd7a4cd29209cde21c9c7c6590" + "ba300715a7adac278385a5175b6b4ea749c4b6a681", + "509712f9c0f3370f6a09154159975945f0107dd1cee7327c68eaa90b", + "57afda5139b180de96373c3d649700682e37efd56ae182335f081013", + "eb6cd58650cfb26dfdf21de32fa17464a6efc46830eedc16977342e6"}, + {NID_secp224r1, NID_sha224, + "069ae374971627f6b8503f3aa63ab52bcf4f3fcae65b98cdbbf917a5b08a10dc76005671" + "4db279806a8d43485320e6fee0f1e0562e077ee270ace8d3c478d79bcdff9cf8b92fdea6" + "8421d4a276f8e62ae379387ae06b60af9eb3c40bd7a768aeffccdc8a08bc78ca2eca1806" + "1058043a0e441209c5c594842838a4d9d778a053", + "d9aa95e14cb34980cfddadddfa92bde1310acaff249f73ff5b09a974", + "043a0d4b8e5fad1ea1abb8d3fb742cd45cd0b76d136e5bbb33206ad120c90ac83276b2fa" + "3757b0f226cd7360a313bc96fd8329c76a7306cc7d", + "1f1739af68a3cee7c5f09e9e09d6485d9cd64cc4085bc2bc89795aaf", + "09bbdd003532d025d7c3204c00747cd52ecdfbc7ce3dde8ffbea23e1", + "1e745e80948779a5cc8dc5cb193beebb550ec9c2647f4948bf58ba7d"}, + {NID_secp224r1, NID_sha224, + "d0d5ae3e33600aa21c1606caec449eee678c87cb593594be1fbb048cc7cfd076e5cc7132" + "ebe290c4c014e7a517a0d5972759acfa1438d9d2e5d236d19ac92136f6252b7e5bea7588" + "dcba6522b6b18128f003ecab5cb4908832fb5a375cf820f8f0e9ee870653a73dc2282f2d" + "45622a2f0e85cba05c567baf1b9862b79a4b244e", + "380fb6154ad3d2e755a17df1f047f84712d4ec9e47d34d4054ea29a8", + "044772c27cca3348b1801ae87b01cb564c8cf9b81c23cc74468a907927de9d253935b096" + "17a1655c42d385bf48504e06fa386f5fa533a21dcb", + "14dbdffa326ba2f3d64f79ff966d9ee6c1aba0d51e9a8e59f5686dc1", + "ff6d52a09ca4c3b82da0440864d6717e1be0b50b6dcf5e1d74c0ff56", + "09490be77bc834c1efaa23410dcbf800e6fae40d62a737214c5a4418"}, + {NID_secp224r1, NID_sha224, + "79b7375ae7a4f2e4adad8765d14c1540cd9979db38076c157c1837c760ca6febbb18fd42" + "152335929b735e1a08041bd38d315cd4c6b7dd2729de8752f531f07fe4ddc4f1899debc0" + "311eef0019170b58e08895b439ddf09fbf0aeb1e2fd35c2ef7ae402308c3637733802601" + "dd218fb14c22f57870835b10818369d57d318405", + "6b98ec50d6b7f7ebc3a2183ff9388f75e924243827ddded8721186e2", + "041f249911b125348e6e0a473479105cc4b8cfb4fa32d897810fc69ffea17db03b9877d1" + "b6328329061ea67aec5a38a884362e9e5b7d7642dc", + "ab3a41fedc77d1f96f3103cc7dce215bf45054a755cf101735fef503", + "70ccc0824542e296d17a79320d422f1edcf9253840dafe4427033f40", + "e3823699c355b61ab1894be3371765fae2b720405a7ce5e790ca8c00"}, + {NID_secp224r1, NID_sha224, + "8c7de96e6880d5b6efc19646b9d3d56490775cb3faab342e64db2e388c4bd9e94c4e69a6" + "3ccdb7e007a19711e69c06f106b71c983a6d97c4589045666c6ab5ea7b5b6d096ddf6fd3" + "5b819f1506a3c37ddd40929504f9f079c8d83820fc8493f97b2298aebe48fdb4ff472b29" + "018fc2b1163a22bfbb1de413e8645e871291a9f6", + "8dda0ef4170bf73077d685e7709f6f747ced08eb4cde98ef06ab7bd7", + "047df67b960ee7a2cb62b22932457360ab1e046c1ec84b91ae65642003c764ca9fc1b0cc" + "2233fa57bdcfedaab0131fb7b5f557d6ca57f4afe0", + "9ef6ebd178a76402968bc8ec8b257174a04fb5e2d65c1ab34ab039b9", + "eef9e8428105704133e0f19636c89e570485e577786df2b09f99602a", + "8c01f0162891e4b9536243cb86a6e5c177323cca09777366caf2693c"}, + {NID_secp224r1, NID_sha224, + "c89766374c5a5ccef5823e7a9b54af835ac56afbbb517bd77bfecf3fea876bd0cc9ea486" + "e3d685cfe3fb05f25d9c67992cd7863c80a55c7a263249eb3996c4698ad7381131bf3700" + "b7b24d7ca281a100cf2b750e7f0f933e662a08d9f9e47d779fb03754bd20931262ff381a" + "2fe7d1dc94f4a0520de73fa72020494d3133ecf7", + "3dbe18cd88fa49febfcb60f0369a67b2379a466d906ac46a8b8d522b", + "04b10150fd797eb870d377f1dbfa197f7d0f0ad29965af573ec13cc42a17b63ccefbe27f" + "b2a1139e5757b1082aeaa564f478c23a8f631eed5c", + "385803b262ee2ee875838b3a645a745d2e199ae112ef73a25d68d15f", + "1d293b697f297af77872582eb7f543dc250ec79ad453300d264a3b70", + "517a91b89c4859fcc10834242e710c5f0fed90ac938aa5ccdb7c66de"}, + {NID_secp224r1, NID_sha224, + "30f0e3b502eec5646929d48fd46aa73991d82079c7bd50a38b38ec0bd84167c8cf5ba39b" + "ec26999e70208af9b445046cd9d20c82b7629ca1e51bdd00daddbc35f9eb036a15ac5789" + "8642d9db09479a38cc80a2e41e380c8a766b2d623de2de798e1eabc02234b89b85d60154" + "460c3bf12764f3fbf17fcccc82df516a2fbe4ecf", + "c906b667f38c5135ea96c95722c713dbd125d61156a546f49ddaadc6", + "043c9b4ef1748a1925578658d3af51995b989ad760790157b25fe0982655648f4ff4edfb" + "899e9a13bd8d20f5c24b35dc6a6a4e42ed5983b4a0", + "b04d78d8ac40fefadb99f389a06d93f6b5b72198c1be02dbff6195f0", + "4bdd3c84647bad93dcaffd1b54eb87fc61a5704b19d7e6d756d11ad0", + "fdd81e5dca54158514f44ba2330271eff4c618330328451e2d93b9fb"}, + {NID_secp224r1, NID_sha224, + "6bbb4bf987c8e5069e47c1a541b48b8a3e6d14bfd9ac6dfaa7503b64ab5e1a55f63e91cf" + "5c3e703ac27ad88756dd7fb2d73b909fc15302d0592b974d47e72e60ed339a40b34d39a4" + "9b69ea4a5d26ce86f3ca00a70f1cd416a6a5722e8f39d1f0e966981803d6f46dac34e4c7" + "640204cd0d9f1e53fc3acf30096cd00fa80b3ae9", + "3456745fbd51eac9b8095cd687b112f93d1b58352dbe02c66bb9b0cc", + "04f0acdfbc75a748a4a0ac55281754b5c4a364b7d61c5390b334daae1086587a6768f235" + "bf523fbfc6e062c7401ac2b0242cfe4e5fb34f4057", + "854b20c61bcdf7a89959dbf0985880bb14b628f01c65ef4f6446f1c1", + "a2601fbb9fe89f39814735febb349143baa934170ffb91c6448a7823", + "bf90f9305616020a0e34ef30803fc15fa97dffc0948452bbf6cb5f66"}, + {NID_secp224r1, NID_sha224, + "05b8f8e56214d4217323f2066f974f638f0b83689fc4ed1201848230efdc1fbca8f70359" + "cecc921050141d3b02c2f17aa306fc2ce5fc06e7d0f4be162fcd985a0b687b4ba09b681c" + "b52ffe890bf5bb4a104cb2e770c04df433013605eb8c72a09902f4246d6c22b8c191ef1b" + "0bece10d5ce2744fc7345307dd1b41b6eff0ca89", + "2c522af64baaca7b7a08044312f5e265ec6e09b2272f462cc705e4c3", + "045fad3c047074b5de1960247d0cc216b4e3fb7f3b9cd960575c8479fce4fc9c7f05ff0b" + "040eb171fdd2a1dfe2572c564c2003a08c3179a422", + "9267763383f8db55eed5b1ca8f4937dc2e0ca6175066dc3d4a4586af", + "422e2e9fe535eb62f11f5f8ce87cf2e9ec65e61c06737cf6a0019ae6", + "116cfcf0965b7bc63aecade71d189d7e98a0434b124f2afbe3ccf0a9"}, + {NID_secp224r1, NID_sha224, + "e5c979f0832242b143077bce6ef146a53bb4c53abfc033473c59f3c4095a68b7a504b609" + "f2ab163b5f88f374f0f3bff8762278b1f1c37323b9ed448e3de33e6443796a9ecaa466aa" + "75175375418186c352018a57ce874e44ae72401d5c0f401b5a51804724c10653fded9066" + "e8994d36a137fdeb9364601daeef09fd174dde4a", + "3eff7d07edda14e8beba397accfee060dbe2a41587a703bbe0a0b912", + "046dd84f4d66f362844e41a7913c40b4aad5fa9ba56bb44c2d2ed9efac15f65ebcdf2fd9" + "f8035385a330bdabec0f1cd9cc7bc31d2fadbe7cda", + "7bb48839d7717bab1fdde89bf4f7b4509d1c2c12510925e13655dead", + "127051d85326049115f307af2bc426f6c2d08f4774a0b496fb6982b1", + "6857e84418c1d1179333b4e5307e92abade0b74f7521ad78044bf597"}, + {NID_secp224r1, NID_sha256, + "2b49de971bb0f705a3fb5914eb7638d72884a6c3550667dbfdf301adf26bde02f387fd42" + "6a31be6c9ff8bfe8690c8113c88576427f1466508458349fc86036afcfb66448b947707e" + "791e71f558b2bf4e7e7507773aaf4e9af51eda95cbce0a0f752b216f8a54a045d47801ff" + "410ee411a1b66a516f278327df2462fb5619470e", + "888fc992893bdd8aa02c80768832605d020b81ae0b25474154ec89aa", + "044c741e4d20103670b7161ae72271082155838418084335338ac38fa4db7919151ac285" + "87b72bad7ab180ec8e95ab9e2c8d81d9b9d7e2e383", + "06f7a56007825433c4c61153df1a135eee2f38ec687b492ed40d9c90", + "0909c9b9cae8d2790e29db6afdb45c04f5b072c4c20410c7dc9b6772", + "298f4fcae1fe271da1e0345d11d07a1fca43f58af4c113b909eedea0"}, + {NID_secp224r1, NID_sha256, + "1fa7201d96ad4d190415f2656d1387fa886afc38e5cd18b8c60da367acf32c627d2c9ea1" + "9ef3f030e559fc2a21695cdbb65ddf6ba36a70af0d3fa292a32de31da6acc6108ab2be8b" + "d37843338f0c37c2d62648d3d49013edeb9e179dadf78bf885f95e712fcdfcc8a172e47c" + "09ab159f3a00ed7b930f628c3c48257e92fc7407", + "5b5a3e186e7d5b9b0fbdfc74a05e0a3d85dc4be4c87269190c839972", + "04897089f4ef05b943eeac06589f0e09ccc571a6add3eb1610a2fc830f62ba3f6b3e6f0f" + "062058b93e6f25b6041246c5be13584a41cae7e244", + "5b6f7eca2bcc5899fce41b8169d48cd57cf0c4a1b66a30a150072676", + "f12c9985d454ffbc899ebbbb6cf43e3debcac7f19029f8f2f35cce31", + "12fcb848adbd8b1b4c72b2b54a04d936e4a5f480ae2a3ea2e3c1baae"}, + {NID_secp224r1, NID_sha256, + "74715fe10748a5b98b138f390f7ca9629c584c5d6ad268fc455c8de2e800b73fa1ea9aae" + "e85de58baa2ce9ce68d822fc31842c6b153baef3a12bf6b4541f74af65430ae931a64c8b" + "4950ad1c76b31aea8c229b3623390e233c112586aa5907bbe419841f54f0a7d6d19c003b" + "91dc84bbb59b14ec477a1e9d194c137e21c75bbb", + "f60b3a4d4e31c7005a3d2d0f91cb096d016a8ddb5ab10ecb2a549170", + "0440a4ab1e6a9f84b4dedb81795e6a7124d1cfdfd7ec64c5d4b9e3266683aa32a3c2fc06" + "8e62626f2dafce5d7f050e826e5c145cd2d13d1b27", + "c31150420dfb38ba8347e29add189ec3e38c14b0c541497fb90bf395", + "bf6c6daa89b21211ea2c9f45192d91603378d46b1a5057962dafaf12", + "cb6b237950e0f0369323055cd1f643528c7a64616f75b11c4ddd63c7"}, + {NID_secp224r1, NID_sha256, + "d10131982dd1a1d839aba383cd72855bf41061c0cb04dfa1acad3181f240341d744ca600" + "2b52f25fb3c63f16d050c4a4ef2c0ebf5f16ce987558f4b9d4a5ad3c6b81b617de00e04b" + "a32282d8bf223bfedbb325b741dfdc8f56fa85c65d42f05f6a1330d8cc6664ad32050dd7" + "b9e3993f4d6c91e5e12cbd9e82196e009ad22560", + "c8fc474d3b1cba5981348de5aef0839e376f9f18e7588f1eed7c8c85", + "0466f49457ed15f67ed4042195856f052fe774077f61cebcb9efddc3653a6e3f3423eec7" + "308a69eb1b0416d67cc3b84d24f251d7cbdb45c079", + "5e5405ae9ab6164bb476c1bb021ec78480e0488736e4f8222920fbd9", + "7b7beaf9f696ca1a8051527478c4c075ab45aa4768937886dbf38618", + "93d4cf110a37c5a6f15c4e6024822118539e860dee2f60b8c3f462f6"}, + {NID_secp224r1, NID_sha256, + "ef9dbd90ded96ad627a0a987ab90537a3e7acc1fdfa991088e9d999fd726e3ce1e1bd89a" + "7df08d8c2bf51085254c89dc67bc21e8a1a93f33a38c18c0ce3880e958ac3e3dbe8aec49" + "f981821c4ac6812dd29fab3a9ebe7fbd799fb50f12021b48d1d9abca8842547b3b99befa" + "612cc8b4ca5f9412e0352e72ab1344a0ac2913db", + "04ef5d2a45341e2ace9af8a6ebd25f6cde45453f55b7a724eb6c21f6", + "048d642868e4d0f55ee62a2052e6b806b566d2ac79dbde7939fe72577379505a57cd5690" + "4d2523b3e1281e9021167657d38aeb7d42fc8ec849", + "ec60ea6f3d6b74d102e5574182566b7e79a69699a307fee70a2d0d22", + "2fd7fcbb7832c97ce325301dd338b279a9e28b8933284d49c6eabcf6", + "550b2f1efc312805a6ed8f252e692d8ee19eaa5bcd5d0cda63a1a3f0"}, + {NID_secp224r1, NID_sha256, + "4cc91f744ac858d3577e48813219aa3538dd813b186b42d1e6218376f07cc1cc448ddd6b" + "37240e98bf953f49cf54d65c12878b33c0bf6eb1c60254f0b6fa974f847e53abc56773ee" + "f6f29885dfc619e6a48fc15a667ca94001a0c945b6357a53221b0f4b266181456b0d2d25" + "e90708777f1a6f85971c00140c631c1991e0fd06", + "35d4bbe77d149812339e85c79483cb270bdac56bbf30b5ef3d1f4d39", + "047924b1d7f5920cce98e25094e40f2eb3eb80d70b17e14b3d36c3671c26c5af35f71e61" + "858582b7cc2b41790597c53ee514ffdf7a289d108c", + "751869c1d0e79eb30aae8fbfb6d97bfa332123fd6b6c72c9cd3c1796", + "26bb1b92b0f01e94eba5fa429271371db527ce857abba13bd1103f64", + "836aba9c63e1252c2b2d72a21e6a41b82241ebe32647e7f814652bcb"}, + {NID_secp224r1, NID_sha256, + "58f43cc1924de4bc5867664adbc9d26b4f096a43aca47c27c52851b006dc2a658919ef9c" + "e5b5ac48372703be15ac51631c2bd84b88f479f113b0569a9a09e230ec1e8e573474c607" + "5284d3e57d973829af35325d9e7dab4a5f9b065155bbcaff3642a82ef4c9b9e127d3575c" + "050721653da3b087d3fa394192897a5519527d19", + "2c291a393281b75264c9b8817af684fa86a1cdc900822f74039dc5d6", + "0418cb5826ad60e6696bf07655032a3749f6577ca36da3ccd6e66a137c194e14820fe02d" + "784fd1363ff7a30399518309765bd3f4412d646da2", + "e2a860416229dfd3f5a5cc92344ca015093a543943a0d8f73bf2b2fd", + "00e300c1ef4a8c4ca5da6413856f8981db49de29bdf03f32ffc3ceab", + "f250f18a51ba5f63e1584097841099fa6ae4e98ee458c061d1d5aed7"}, + {NID_secp224r1, NID_sha256, + "113a2806b052fde683ee09453098e402204155afb3776fd1cad3a9103421d327eab8f9ec" + "0dd050ffcc83f93b34ea707705fabeccfe43ab1a71c95298fd3ec769d99ead1066950eee" + "677d225816e0faad19cf69e1b35d16771689e2092cafe16d7c0dd7b0db73fffb8d0f3eae" + "d83004dd21e753530ec939c89ba25578fa5f785b", + "831ea25dbeda33d272a1382c5def0e83929170ab06a629eed6ee244b", + "04076518e393940d42dfd09819409d66966d8c9189c83d554a9cc8a08244d0ceaf4c0f50" + "e46bea4a52e30423ce3ada19edd363ac5694c65cb8", + "6be6dd9f6a083915ccba54626caf12d246d3aece0a7eda7d8d85599c", + "ff1460946e06fb6f5d35e8d2625ca70ffb9b45308e3fabf6ad8351b1", + "6029aa3990918e8cb8a388d53b0772e5cdfff49c3405fe0d3a95933a"}, + {NID_secp224r1, NID_sha256, + "64cbfc8f2e2149a31b3e8a80c4a552f6c62aaeb7990b6e0ee55500a9d17be04213406578" + "caf315951086dff5c2af3b5ce17d425d185101ef26f86396ba3a129a4f3f8e2dd595f59e" + "fb6c0f5c2dcc394569d7268695e9ac7daa84203f1f1895f1f9e4b514a5c9cd23baa63454" + "710144fe735ad9b8f42d8c43267aa434a26d7e5f", + "70f74c7324ef137318b610ead8ddc5b964e0eed3750b20612fc2e67b", + "04279649e2a2918e683520cde3fc98b0ae58a7100e8de35e7c9cc797b6aa4de6be34be61" + "f02880139787b9038f4554a8ef1c994b887c2974b5", + "8e984864f86f7a2a73f3edda17dbccd13fac8fa4b872814abf223b1b", + "3b18736fa11d04e27e2614cda03a63ec11a180f357b0b3192920d09c", + "2f0f3dbd570727b14fbb29155538e62c930dd51c4035275c1365dc60"}, + {NID_secp224r1, NID_sha256, + "a10a11c8e30fff118d371daf824f16c08200b83ea059436466a4611ccac93b2dea2de8c1" + "006f946196aef7fe9b0c251a391b0340f21797798278b412ff2b53842eec6450728e2bca" + "062f8337a2c204b9ea04ff660cd4d4db559f2f11c4d8ef199021339fcc82396f7a93926c" + "f5f247e37d8067fe50692de54f102bd5ab51925c", + "026be5789886d25039c11d7d58a11a6e1d52cb1d5657561f2165b8a8", + "043fa617c50b177da1a2bdb98b780ad21ad1195c4bd24465f6187de3c9e3fd8d8876dfd0" + "3a4a4e31a1acad3a08d983826d286c250c4e5620c1", + "0128b8e3f50731eb5fcc223517fc0cf6b96cd1d2807eb4524bc46f77", + "3a6b633f96f3d0b6d54f7fb29ac33709e4f0dd8fa0e51606ed9765ca", + "63e8c119dfa51784decd864f6911f2210a80f8f02d472d88df10d119"}, + {NID_secp224r1, NID_sha256, + "b3f720bf566ffa369259f4361959ae0641d2755ec264a4c4349981df2b02563275b2b9ad" + "b5aee47f7a456760a971991ffed6b17809bb9694138d1677fa916123795239353158fc6b" + "22d10f20d26f5d2dcd8c56c44373eea5b93067dba2d7c5318dac2e9e8714873cb1b37f58" + "c011fd14fa1e535554efe05f468bfc8e11cd8b99", + "e79c18d935c2839644762867aa793201f96a3cde080c5968412ce784", + "04b7ae1e992b1c7fde1141f40bd913358538ca0f07f62b729f13cea327811252d12120e0" + "4805fc171a439d382c43b68a21e1a0bdf5e4ec1da4", + "7abedab1d36f4f0959a03d968b27dd5708223b66e0fc48594d827361", + "d35047d74e1e7305bb8c1a94e8ae47cb1591c3437a3e185e00afe710", + "d9c425c9d5feb776ac8952e6c4eee0ecd68aef2f0e7bff2e49c9185e"}, + {NID_secp224r1, NID_sha256, + "0a398a46df7ccc48d1e7833f8bbc67100f1ef77a62dc78bbc115b2a662f9591fbaaa91ad" + "3d788e2fdd1b3164e45293d4f5686c151296901768028ac80ded4bf89c647ad35f0c7c4c" + "b318c0c757c1d83c44d850e5fd4677281b3f13b1ee54de79c8c042813f9d3312dcc6111a" + "68299cb7e829557d7f3d96e702f65aefc6499415", + "0d087f9d1f8ae29c9cf791490efc4a5789a9d52038c4b1d22494ad8c", + "04cd95cf8fb1cd21690f40d647f2353672a1076cc6c46bddaad2d0fc56934262f74d9ee0" + "f8a2754f64cb7415923d64bf00c94a39b52803f577", + "557d0e3995dc6377b3911546dd7aeaeec62a6d8f2af6a274382fc37f", + "56df0ea6afdcc232ceb41729eec00cf906b69b6e28423a36d3c92cc5", + "f4f70fd948c9a147f55317fdea7b8a84c33e721014552d5800d63edc"}, + {NID_secp224r1, NID_sha256, + "8c33616821a6038b448d8918668977fcf1ef5aa0cf7c341837b39bbcc9bca875a3757f4b" + "392630e9995b9bbe4eb66978b877586adaa02f99d2344dae082a7603351d8ffcfca081ab" + "403cd0acb90d078dd1d0789c2eb3185c62bff2d9f04cd38e509e3b83c12ed0a5c6808fc4" + "2f7ba5b06acdc496c8ad9be648ee6a4505f8560f", + "0830aebb6577d3a3be3ba54a4501c987b0e0bb593267b9bbadb66583", + "04b88652020e083ccc1c43dc83d1881884dd4c7e3b4e3460b344b1ea6422b69b517f86d7" + "c26dc37c0f8feb4bb07fe876149fbcc3334fd2805b", + "e4f4a3280574c704c2fde47ca81ec883d27f2c5a961a294db7cda9d2", + "b30b8a0079d9a134b5e1618c2ac63e3fbe0e95866b9dbc5f423f2707", + "3dc36746610271ef66e0aa52cc2ccadc5c9b08dc769e4dc4f6538c11"}, + {NID_secp224r1, NID_sha256, + "94d56535fd4edfe67a0daa6579f9d53bf6b7b8830ae2aeb62892ff59f18756ddf2811b44" + "9c7d20d65d54f8507de4e7c50eaa084830637812aa4b250a4d61ab67845be36e4a41cdc0" + "a70f8d6e3a63d4514f0dc197e6486015046a316153d5f3a3a4a0ae1ed7ea5fa55e12e73d" + "333333685c02e0eb636234ea7e6d4b76b4b76b5a", + "2acc9b97e625263e8e4cd164302c7d1e078bfcdd706111a13ccda5b2", + "04ce1a06f82df874dded37cca03b56c0648e4e8917ecd40ee73ee61588ceb6177b8f1ac7" + "c5c6e6e1f7737cc3026952ee392badd2cd7af32f9d", + "e401fa80f96480d437ed4f61a783888062ec33d530b188fd48016a6d", + "28674f447c4742e4087bbccfb522fbad4e18b56031d2ce8f532b078a", + "a5a7a13d15b423dd17771f73cea98d89dbffa846cc209b45c0e29b76"}, + {NID_secp224r1, NID_sha256, + "5d8ebdf9eb28b47bdafaa36bf0b66a9eaf99b6c83959da4f2b1151b4f4ecd28fb115a64c" + "0cb9491093a7e9b9c53ec423e4c72e7765bb9c818da0e8c428667e44474a71db4867130c" + "77c40bfd8544b2d7b9d6464d2b8e6a48482153256a32437c3a747231f51134dd14c70340" + "7e31146a6fcde23bededcf16950486e90ca69ac0", + "f4e873d4fb944fb52323406f933815092b7672221de4d1c45917f3fc", + "040dc2cdddb990341adb1de73f02d87fc3822485a659a15145f4251d5fcf78b2a83c7352" + "eda1af2c74e1804ea04b35f76c04e89d90281dc2bb", + "5d1476c682a64162fd2fdc82696fc8cab1469a86f707ea2757416e40", + "82982b38ed465138df4018d7cfb835edcb591cb57446ca49d163782b", + "8ef1d7b326cabee7f7ab95b7b98d3c27a069c0fd95a1599c0ccb422b"}, + {NID_secp224r1, NID_sha384, + "25e4416695f77551fdce276355528ccf1ddc2483821c5d22d751d50111ca2fadc6593b52" + "c74f4b5957494f1df25b0b2f86950d0d19229ec6506fee8581d2dd09d48418b146ff16bd" + "84a17ca0dc83b1888eb407376da6c8a88fa1e60b8c2a2471dfde4b3996ef673d5bde3d70" + "c434dc9f2488e9de16ae657d29e5e59ec922a1ec", + "62c572ee0d6f81b27e591d788bfc2f42b5105d2663078dfb58069ebd", + "04bd6ba605639b98fa8113a16a3bb004ddfaec901c98a931206165f4a5a3190b10ef39e8" + "8abd60b2293b4707512b45c6c5ed5794cc11454427", + "0f0bb1e428bcdebf4dc62a5278068efc0f8ce75f89e89b3630f102b2", + "aac0ea27e129f544abcc77f110e70bbdd5aa3e425dc39d5e8887025d", + "10e5dd06aee6b8419a04aa33d9d5678b0039c3acc3c4b61fe106bfdc"}, + {NID_secp224r1, NID_sha384, + "9164d633a553deccf3cbd2effccf1387fa3177cd28c95d94a7d1a3e159c5e5c027758cc2" + "6493301b2f4d141d8d07a5fe5fead987ce5f30abeafcb48c302afc6c2309f0e93d9b6818" + "cbb6972d222cb7b01302dfe202ae83b89f53150ae4a0e2b8fc0fd1091f19b4ab2e6ab213" + "ab322d04f2c5f57113bfad3c5675227237abf773", + "e2f86bf73ba9336fa023343060f038e9ad41e5fe868e9f80574619a3", + "04f5d5346f17898ea6bbdfff19c216a8757a5dc37b95315f5481628381ae61fd172ac8b7" + "a4f13870a932dece465834cbd4f50bbcfb802c824e", + "35724ac043e3b44b73b5a7919cf675190306d26aa67c27c28c873534", + "535147c265af138eec50c7fb570bcc8d2e6f675597b0fcc034e536bc", + "743812c188a1dddf9fb34b90738f8b2e58760d6cd20ccceb1bb9c516"}, + {NID_secp224r1, NID_sha384, + "019df05929321ecea7ee1de4f412aba1c8d3c24437db04b194a68a0a59dd871be10bd3a4" + "be6edf551350ea49fc7155a4d887e1221486291abe77a30633a4c4f7868fe2df24311cba" + "0c73804883954460e122387ed414111ff96ff1aebac8b6a6491d8a0d16e48a63bf3d027c" + "0f68ee4a4b234d73b412196706af8ea022b4dcef", + "b0a203438e2586d7575bc417a4a798e47abc22aa3955b58fc2789f17", + "04dc5d217862a1e5b00c95affa9d8b925a72b9beaeb7a86dc397e788d85f05f8e976ae1e" + "b1036eca6d683a82850795bf9127dee5f8b2859445", + "408e9c8b1f33136d6ddb93ff3a498bc09d4eee99bf69cdd5af0aa5a2", + "1b5a964c8b1fc634c6e2b82322499df1d7f0c12a4d2a77723c816ab8", + "cf54599a36ca064fae0aa936de5266f87704409d22a15d28c01b7f2a"}, + {NID_secp224r1, NID_sha384, + "5d09d2b1d3fa6e12c10d8b26dc9aabc8dc02bd06e63ff33f8bb91ede4b8694592a69e4ed" + "4cdf6820069e2b9c7803658949e877ffe23bf90bcf5ce1409c06c71d86885a94048b05ac" + "0ec9db193e489a5a2bfa367caf6aa8ecdb032be366174343f6875d2fe1785e8d77334f5f" + "469cec64998e08d3303e5c9a1923b34fdc105d65", + "efcfa50fad6fb2065f9a55f28c0c42fa24c809ccb19b6fc6d8ffb085", + "0461521a0cfb72be77ba33cb3b8e022743cd9130ff49e97093b71aa178ce0819aedaf6fc" + "e639d0e593f8ab0147eeb6058f5f2b448231584ea9", + "d1eea821f286eae6ebc1f61b08f9ad4323a3787e94af4c32cd31351b", + "b37caaa71103752ac559f9eb4943324409ebfa8b585f684dcaa5c411", + "7c28e7619e2944ab4b7be022878c8052ebdf2cae5dff4f976c49686a"}, + {NID_secp224r1, NID_sha384, + "50f6dfc81c6cf189e0a310f992907fe93356cee9dea9a41c7671a8daf3f4cfe0c459ce61" + "22c1e731dbf7593419d7114cb73b46956158a982c5d52c72f43f0f822046093c69aeff1f" + "7e4cd8af00ba655c5baa2e7b6a400b4be1f6fd51b3e4cfb35a69c80a28c5cafb771b6c2e" + "52e0aeef0e3fd045e8d40745f3f8b74fd969f816", + "61a17816937987764cdc064dc7b5b4f5b16db1023acdfe25902957dd", + "04a7e975c0a8f87c683bb8e31bc160843a7b69c945f4850bd60e1c08c08930a454dcc2aa" + "13bed7ea89368b2c9d689d816b2acf4e52585ee9c4", + "44b1fdec2629f9075f89c134ac28ff19bfddaa9db02a5d7f853582b4", + "b0f5635d8bc9c53a1d54a3ec63de59ed66e6b2358d4ab79755414326", + "67c68fe265c7e5aba4232deeafb88545a2aa266fb9f2c2bb3f3ae8d2"}, + {NID_secp224r1, NID_sha384, + "e90129ac6672c85bb7b6b18e9dc199c96c81fd65034b53c77818364d512366fb9cd1bc7c" + "82404c451e561fc1ed916c0948f6ac561b33a1ccca093f07684b8c2bafa9e966377bd208" + "556018a5bafb9edcecf70498c7140fe9c8cf3ad8b8c3b0aa489df797944465047465415b" + "b0e24333235fcdd59a98829a3941eaaf62033e82", + "79d5367314ec664aa0f6ca36f95549502a05bf8400bf532d669fab8d", + "043191f0237102dac159032ab2dde53cf56c9ec827b5caddfe9e83c02ab496b1bdcca443" + "4ac0d0d91ea38ff3bc33f9f54095bfe17796d5a9e2", + "da529c52f5cc1f435d873109cd991d6cd7e1631d9ff1dd9521dd5db6", + "8e0ac63903f4921755430572c3f08bc272790639bdf1009fe2a9a714", + "6278c841a2d0a270791fe54b36c49d426d67907aa4e4f59c8638ad97"}, + {NID_secp224r1, NID_sha384, + "3c9a483c9bee33b601549c592a82e95b4319b1e74b777877f0971bcb4273716b268e8f99" + "f876e42f942f4cf08284896bbc1ffbf094ac0956c3cedfc3580cffa8c74fc6db29a371f2" + "da2d05edb9185ece741fe0d3fabfe9d5b4d373755ebed13dc6840cfa3283b9ea46ec8b95" + "c434f253ae86998182e9cc0e95ee64f323fc74b0", + "1320eedad4745121793a7eaf732b0b4498f7cb456cac8cf45a1f66f0", + "049fdd99906ab77fd29e9021bde947d05a7a9eb153612269bfb0899bc9681b65b9ac8e4c" + "2899bb622dafb253b7bf5a6e38e5f6595f997c291a", + "66ed8d8934633f4125f593cf1b1d3745c4db1f15dde60cf46ca1c7f2", + "80199485a3a96447b39f7679cd47412a78675ba17dcbd10465dc5b48", + "a251fd9f136a3cb0dd0bc80659ae032e4a761ba7045da0034553fb8c"}, + {NID_secp224r1, NID_sha384, + "bfc073fdda63c5fccaa0ca8770c293e8154e7aec56128bbac4fdbd541d602216ebf7ca1e" + "02b514d6e396f20683802ba3f334310a9226576926e3bb19ceee27738d13377cbafeb09d" + "091043501702a07aa31d1f29d50ddc55adcf16ffd40578e734a4e6cb6535f26ad48e0c62" + "ad90e79720000e87d419e92dca3e11f943655b03", + "e18821329447d3f65ba7279e96bd4624ffa1b32b90f6e8331b1e876d", + "0446c9ed837232c47022df2f1a1578fbe65ac9f2e81c98a74cc22ea31a6fc5e9568ae62b" + "31412a0b0b367242e9fd7e518c83aa06a069e1d90d", + "a4c1eb402a2fb3af26e0e14a3d2fc8ed3bc1a8b2475270356a79fdd3", + "d478b68733d8ad44be46766e7b66af782fbdc7ff7ed0b191176da98a", + "5eae9160ccf71fd1d359d89cecce72ef8afaeee2365f6ba828aa450a"}, + {NID_secp224r1, NID_sha384, + "08079955d1a1f33728128c73673ec9f21a6ce138dcab5adc4dc068e6ab57314b9fbd8b01" + "3123b2fdafa9524fbdd0288777a233de8055cccfad83046ada6a19f01c47817496667bba" + "8fc8b9456fc0e044a562d931dab1adcb66af8b66325bdf28d83ded3e2937958ccd19da54" + "0d70ef2c189f55a506c9c0d63406394c5bd3823b", + "f73e030d5a696b358986d3efaca121cf71f775f8835a21e6135145d7", + "049ca2c6ea87ac8dd3a23a5b4010841a7c8af309038882ae44634bcf55b0a347dbd5ded3" + "b8702ac5a457e8b32bd4de06fd315095fa1b7d5fe1", + "e3cc786c1288ea567836c51d6d69dd0cab5c015987d936ccc3a4beb3", + "f1234da71761b7a0f49e661a419d2a739bdc4544bf87690e3d2f96db", + "096d16bf8020c3d3c233894ad8eb81206010e62c6e692a215e088fd4"}, + {NID_secp224r1, NID_sha384, + "23900b768f6cd42b8a8df0dcbc9cb5daec8de36b9d5c619adcc1ba2b649103d5af123746" + "cdf19c3fd0665a6fb9338156182aa06181e3c6e37ce56979612af2927440424f89cef43f" + "c754854b8a5c43370808cf5f9929cf47712512ce2f8a2a20d2e9f568c2848b27dfbe0914" + "2843c83905ffa5da3b15501761b03dbc2c5398b6", + "7a0789323f8741c157a1753ae165ecaf8e8b03a60561f8b80cee467c", + "04101271a9addd4bd1f19d00bf116c8524f52cefd598e85dc381597acb2f17d14f4d8ccb" + "28b216553718152ba7c104646d8eca986dd9ddea39", + "d169f04f05b60c625cda864d187938863964dab7bb3b9dfc04b05519", + "e4a51be686a764b709da23ab48b1985e153c6ee238d945e743907afc", + "118a8f1ffe3cd556ce6345bd1a398dd9cc3729b7fd6d8af9bfd82f40"}, + {NID_secp224r1, NID_sha384, + "1eb28c0bcdd18f73e347f957ece15b4cc83a771b0877e1feaac38e24028fb38ccea8b54e" + "e017dc7c3d5a1327bc6f40b294aa65d7dc487f278846cd101ee84202f14b38aa2c275046" + "aa2577f65ebaea41cd383e8def2fd0b4444dcf426fa75c4082cd7fa035cdb1e0d34a3c79" + "d42130f5b0273eae75bc701dda3aebe7358f41b5", + "78e795d0edb11fd9e28dc26b21e751aa89bea0d87932ef11c95c0e18", + "049edd544107977134bf6360d43ccabb3c94d627c03963c0a04b439627ece4c61d319a0e" + "41f3de7863e7c355bac94395aaa74cdb5f74a87a5b", + "36f7c0f76808b826a0a974a1fd6e155e00a73f1d34674a8f88be405a", + "3e319444438bc2cc92f323ea842cb402b3c3c2448c89869ef7998edb", + "3420cc38f058f41c31e71f4b1ad488f801111c73541de69fcee60695"}, + {NID_secp224r1, NID_sha384, + "efab51855407438fd5c250670366bca3c026ecec4a59394f00d8a4b51746d0c456436665" + "6d507e3e13e62fe7abeb976b8859895848dbaecf6582f1898ea06f00d4247702ed9721bd" + "375aa83ae4c67c2eaa6e080777ea5ecf2cf787d785389560ac91cf63a52f0373c3185e18" + "a3b8a466e21b61a239f1b77624eb1acacc76c4e1", + "bee02d8bc5bffb3fd3b4c9d6f686409f02662d10150d1e58d689966a", + "048848f964c847fe9dddc774618d4588c9cd56bbe588d7b1fb369c8bfaebbb699fbd0dc0" + "8859fe9132285fe20dff3b9d561c0640b6e0717607", + "59f1450d857b40e5552a4b8cd4ab0df2f01716635d172c1106840f21", + "a206d8398a16a991bc217f77f23c6f648384f254f255a8a876404444", + "eb1169cb5b1423dc0bfaffe565ae57f986e00de06405e3e7b605862e"}, + {NID_secp224r1, NID_sha384, + "31c29ca10279a417f0cc9b1382cf54dbfdfc89f2e6ef08c403c11f580cbf8674b141ed1a" + "417563282d99a55fc616d836421cde9424815c95e7fb7668bf3f137b29937f14882d74e0" + "34b732d78d91af7721aac4950734f5fa5d4b4d35534974f8cab6d2e6dca75ddb57e99148" + "c8a59df9fc5bcd723e546e8356f671cf2f65640a", + "dc0ddf6e501418bb8eafc5d7ccc143369e2aa441df8fc57d5f94a738", + "04063a5d632f4144376e14cfb03ad8ccf1489b613acd184d20dff66545e77727f057b043" + "d8a0f7458196b72e92d11f85b0891c6aaa9d915f58", + "ff0e5cae2671db7a1b90e22c63e7570bdd27352d45bac31e338debe0", + "5bc0b4998481ecbd3b6609184a84ca41d69b08c37138097f559259f8", + "0df8828eb1ca85e46405b94e1a2972c34c5e620a54e2f640f04aecc5"}, + {NID_secp224r1, NID_sha384, + "8db476f92e332519c1a0ece5d8deded6efbd2d8e8784eea0a6b4c3b4296c35f5f8de4317" + "e5c1627b91fb1973fee86c06e4992aa5a20cb7475c8808ff1da354d07a488dffa7838c6e" + "c1e3f99e3acba831f27bee8434eeda3eb36d0c6df3658883cd40068b1bed841310f6eb38" + "d4a3d07d85848770ff7933c054cd8b34662660b1", + "229d89b2fcf8441ffc95ebb2ac2ef156e25825782044b2b8bd6a3e01", + "04de616848d8044a44789ef1ba3a6dd66fe9257ddc57f7534e59a701be26cbf74a6d25e5" + "b34b96d30f327abd574cff7f7dbe6686573a7d6c5c", + "3b18ca6ec8e8e255ac88f64302745ca0b73ff94b2b2d48be95b4aaee", + "fa94fd8b827c06115c1eefd50afc02ce5926ee0e789667783c01c34b", + "edf766a66973cfc33e4159966c07321a7f6549c3c60e8586ef41402b"}, + {NID_secp224r1, NID_sha384, + "fcb272c828fe8fd3c6f8de9410c7b6e2b36717c1b0e5e359e9109bd7fc378978aa98182a" + "9d99961898ed88999b050d3b64d1457d7a899d6d273b9f4dde2aafa36d76329d62509043" + "c338f265fc4c7d938459b7fa3b230a9f6cb632b61489546bb4181a5ad7f0d7369b8caced" + "48eb374b075b2b325bc86add0f3b680cd9e80acd", + "97d747068147c0393a0bb5c159e2c9f1bd538f6204823294883abe28", + "043858a576eef2ce24d01766997fb81b3f3f78b6104cd188610be221d795ffc677ac7bfe" + "3e0bb4cffb17355a964c8356a807151b3cba5d1f4e", + "c1a2ec1ef16cfd5107c892790daefbed061be78bd8576696b60f64d5", + "18c908541843fcdac99b9ff6bb397f3f8094d16b42670216e4eaa2d7", + "c107a8a508ff57c5d4f78f86cc37e129c864d1c44ed5e73909613b74"}, + {NID_secp224r1, NID_sha512, + "7522492bdb916a597b8121f3e5c273b1d2800ef8c1db4f7dcbae633b60d7da5193ba53a6" + "3d7a377b351897c3b24903ae1cd1994211b259be3e6ae2cbc8970e4957fdf782c7d1bc7a" + "91c80c8ef65468d4ef35428f26e2940ae8b0bd9b8074236bf6c00d0ebe83f9ddb2ade0f8" + "35138d39f33b59f244e0037c171f1ba7045a96f5", + "ba5374541c13597bded6880849184a593d69d3d4f0b1cb4d0919cbd6", + "04ac635fe00e8b7a3c8ef5655bdfb7f83e8532e59c0cc0b6534d810ffa1d067aebeba66e" + "79b28ecfe59ac6fdf5e1970dc3a84499c9d90cd8e2", + "187ed1f45c466cbafcd4b9577fb222408c011225dcccfd20f08b8d89", + "f83d54945997584c923c09662c34cf9ad1e987da8bfd9be600e7a098", + "4ff2dba9dba992c98a095b1144a539310e1a570e20c88b7d0aa1955c"}, + {NID_secp224r1, NID_sha512, + "61097114ff855c3e34a62d9b853f8982d35f29cfa4a89893badbca7849e5fb437a1a38d6" + "451bf0ca5a0d528e352b8e4b57f2ea359a7fc8841d49dd3e570f9b016f14156b0bbc4be8" + "22e260bd147ec081454969e11cb0034b7450ef4deb7ed6edb977e2f4ed60121aa095fb0a" + "b40240dc329ecc917f5c64b4410612af065ee9dd", + "1e27187134d0a63542adf4665fba22f00cfc7b0a1e02effe913ceedc", + "04ecaea8ceea55c3bd418fd34a4ff2499e25e66a104eed846bc00c31d23933a356ab1f2d" + "abc303ff0a5d076131e77032e6f502336883bf78a7", + "34cb597deae9a3b1cada937abcd247161b19b2b336b20e2e42ae01f1", + "58177ba46fb291490b39368774accf72736412c1fb5ee0f27b9b1e02", + "58337d78b95a080bfcabb5809bee012501b4da84b8ef310a4628f11c"}, + {NID_secp224r1, NID_sha512, + "dd09ae6c982bb1440ca175a87766fefeacc49393ff797c446200662744f37a6e30c5d33b" + "a70cbd8f12277fd6cc0704c17478bbab2a3047469e9618e3c340a9c8caaff5ce7c8a4d90" + "ecae6a9b84b813419dec14460298e7521c9b7fdb7a2089328005bd51d57f92a1bcbeecd3" + "4aa40482b549e006bbf6c4ce66d34a22dda4e0e0", + "0905b40e6c29bfcbf55e04266f68f10ca8d3905001d68bb61a27749b", + "04d656b73b131aa4c6336a57849ce0d3682b6ab2113d013711e8c297626328335ffc2029" + "afbfe2a15cc5636978778c3f9dab84840b05f2e705", + "dc82840d147f893497a82f023d7d2cbf0a3a5b2ac6cc1b9b23e504be", + "583af080e0ec7c1ba5a491a84889b7b7b11ccfe18927c7c219b11757", + "b23700035349df25d839f0973bef78a7515287de6c83707907074fa6"}, + {NID_secp224r1, NID_sha512, + "37a73e2774d3b274db426c89b945696daa96035031f72cea01894b24508c7f81961ec254" + "d36ed6a0f448e11cf7950af769dc6cd2c47e52c6caf0ea92c270974f0214b4db436c36a6" + "0fb722060a6bb544462a82e1714f5906ec32886f7d59ebf289541c3a00ec1e004892ef2b" + "1286a0194f55d083c6ec92c64b8fd1452e1c68ba", + "afbaede5d75e4f241dd5b53220f3f5b9c1aa1d5d298e2d43236452dc", + "04fe83e59fc8ea8b939355d3258fe53a64d45f63031a0716b7cc416173f151d23060f1c8" + "56eb7f1f58be72a7228c3af89e43b56e9695b558c7", + "0fbbe7b40136c81a8fb894498d5502157a1cf5a89d0643de92cd38f6", + "24f3f457c7b72b7e759d5a8afbf330e31c5d8d2e36f92c0e79c5d87d", + "36fd1193def34f12a960740fd79fb38bf2b480726ccad540eb42cdf8"}, + {NID_secp224r1, NID_sha512, + "9dc2046ffdc6804544db964481abe5d2d276a2a9eeec4c7ad40215b1de23561d402db69b" + "d0f6eec2254711eea4487c64d9a6b62c3ebaf5ffa8db6e7e3a6e17154d126967a47a853a" + "6f8339bdca9be306a13c7f992ded7619b0da59909a49b1e0930360e05b47f18628a36d69" + "b2f87f2bfddd6a5d4a72f84dc76dbdd43f3a6a35", + "950b07b0c2b7539a21b5135bfede214733f2e009647d38d8b21d760c", + "04f43d13bbfcee3b724063b3910fea49fd591b81e86fdb813b1a492d0c6b4c8d6fa5dc66" + "1889e3cf5ec64997a78222837885f85d2fe9b684fb", + "83e110d0d1e700d2f36543028737d2a2f1474aa3b4b28998a39e4793", + "2685265bc878e85d10ab13293dec190881a57c4a467f8fc2170432ea", + "80a347bb49036522369339bd6485a967cdda818915d8eb947302fcf9"}, + {NID_secp224r1, NID_sha512, + "d9c6847fce688c5e7525a1098b545cb6c15dcd21a02761fc82fc664372a667390680135f" + "91c01a2fa5430c634b1a6d1cd6002d8aa021e7bf5956a7901c2f81bc25d502ba5f55a55f" + "30c0323dc68205cbefec0538e68654e7b327ac1743641896c3e740d8f66f400902b304ea" + "faa4e0d8cffae140536f0922444cc3216a675697", + "015bd9f5dfef393b431c3c7fced24385d861ccb563542574a5d2a9bc", + "04e868690641e2cda13b289a6c5d2fb175940396044d9cf27b4f2240af4c78c9abdf2b7f" + "c67ed4497001d7bcf1daca1739dc14a661f91d7c40", + "e2374350f47c08f3c1359d4edf87e61d1ba4e7dd1540d8d9062efa79", + "e12dc088d2bc032bb214c77d0e0fb749fc8e61ebe1ed72996f1084b6", + "0ab58aa31e0bba5fbc76855e6549f1036fba0a589aeab978ab01b8fb"}, + {NID_secp224r1, NID_sha512, + "69df8a01b66f04930efd2012ff2243874f256ca8758145d2a9e4ecc84d0dbdbd0dc494ae" + "06db0ccbe819918137c90957114558580d6623efbafdd342b38dad9f08708084d32f874f" + "ba04782ce26aaab78de2102ad171f8a8f2b30b5bd3d55fdac5fa3acd6f7def7e61c25339" + "38572b331ba6d1c02bd74bfdbf7337ade8f4a190", + "0a3c259df933247445acffb6d8265b601d597fb9997dc2a1eb4deef4", + "04e67f4385a9da54253cc371ee9bc6739ae6385a4b87669c7baf0c460d2bb00b6ddd7b67" + "d9ac5653ec04ca8529fbf16f815c04da3c2e58e82d", + "8bf5859665b6a23e6b05a311580f60187ba1c4ae89e44877fb48af66", + "653675fb993c3fa9e57b32e33029ec230b966e8077c72c1ec90ddefc", + "792723bf87e315147cd4303de7f1dfe95cd7658ebb95c38c1a196140"}, + {NID_secp224r1, NID_sha512, + "927524982b8d60777c1105c86fac05f634abf58c73f84fb95d81ba0b86e1e43592c4fcad" + "2e395a40fbe7005697d86088e2fb3bb7287eb3f917d4f2dc281f5cbe65d05b4f9623bca8" + "49b10a03beca6aa2056a12ebb91cf257ac448c5e9a78f8349a6a29b17c8978bef43a443c" + "bb8a149eb23f794844fc41693f2dbb97181444be", + "a1c8ef463f9e7e3dd63e677412f87cf9ea4ac9a6a2dae629da5b9916", + "04400e5cd4b315ceb309545cd3277acb70bdae2073fda6ad896ea14b27fbe1d2466cd2e1" + "16f38248bd5cabaa6cbe6c4a2694d998abd7b0c991", + "82f55a25d3ed6e47c22a6eed0fa52ed0818b87d6ea7950281dfefc09", + "16305a46a3f6f9e216ef8f6a6f5f0760d064a885657c864e1c1ea035", + "58fd97050bfbca6f87e64e1458c4ad80bae26e280356da344ad3b25d"}, + {NID_secp224r1, NID_sha512, + "5f9042283561e7f19a436d01c7ef5a950a6d77ede5629cd7e43c0a5d58e8c5673c37945a" + "453291d12938253c71dbe12c8b022ba7276eda6be034ef5ec1ec77dbd1e08f0d7b8e7725" + "b7ec671c075e008a20f77f4ab266f97079b0aa6337df59a33b881954084057b21f294dd1" + "4bcb0869a4a6f1f597955ec7bf9d19bb3537a66a", + "fa511dbf6fef7e5e9c73e4555eb75d435f7884322d9faf5d78cacc0b", + "04e8dccd706c31f895f2f261ab979cbab51b8ae28196bcc12a42046380ec246be8e71ea3" + "859cb717a59990fe22e4b76858ff49becd70739a01", + "a37d665fe4314aa4cd03eb8e6a1f366b43e11fdb419c96b48f787b62", + "05e4909bcc172ab4140be291aad4660e375032bce2d762b6269ba764", + "e347a1c9d3670690e1d8d1d4cd9579848f442199c10526488da5cebf"}, + {NID_secp224r1, NID_sha512, + "c2ae5573d3bf396523bfb703db8502fd0760cd1be528f6ddbfb95aad399e0b19f3bd9e0f" + "abdb05d49e3f893dffec5b627c9c2f7ad5f32e92e4e27a38cb5c28657657377fdfa1b66c" + "d7ac3d15c6d49df92d284db99f69744f37dc7cb4e7d52920fdb200a7942623a7057ba82e" + "467dcccaa5da416b48510d8364446a6a5e2a5aa8", + "a58bd53646400a646f0e4208320dc679a9664d1c6bfb27fdc8eac7ea", + "04e22e0dc4ecd96eb0071b72ba4b4988bf784f3fe73cb81bfb93d9ac4fb3e213e518bee1" + "367a4fb3703b9008bac9d95a1fc4aa61225fff9f3c", + "42c5b6f87d3bb1ed74f5ee8398d8f8c61e9e50ffa7a1da12d39893f9", + "5c0e5c6f057de1e99ef5d237a60d7a07fa9a42b120a82f573d9fb7b2", + "2fffc0bf550bd2f650fed085a84501cacfa6a1bb984df1f9237eaa59"}, + {NID_secp224r1, NID_sha512, + "03c1a1cd30a039d0dcb22fee2450a7fa79495a0d0f4f43d2de4d75bce003c0334a8860f5" + "c164dbd94888a9f751235a3e570d31070e3e1293a7be616af7176600585d36ac01360015" + "7d2569d491da4b8a3bf3630c26e0b9925412189f50b0ae6f04c86477932e2ecd8c354610" + "6ae1ebc684cc3adb27ed665eddece886adea4ce3", + "64bd4452b572cc95510ac2e572f41136299ff17f6e8448f4ffb571d0", + "0492521fa25c2e034d127e0921efdb167f0b2ff8b20504487ed87fa264e72c770e37375a" + "d7dc2c4e63e5701826f6606f6ffb9461ee61b4e872", + "eaf76ee4d7e00d13d8a6d03dffd07ad9a8bb6dc8176c9f93059b1b7f", + "cf5058e2a6cf5e61a138b013eb292f38a1b9f07239ae5941dbce8919", + "d14198621650d985d270bc997da6e78588fd0ef843b874c66a3de3c3"}, + {NID_secp224r1, NID_sha512, + "888f6d9bc7c86c0079fbfd42d8c08d6958f40f6e570fb0b1f03d2f8f8a63df4fcc87b379" + "a222cf835820a999d34996e08961f13b86b075e7fd1c303cd3baa44de42168561589012f" + "7e5300da4f8bdf470c07119a5d9f7ba7293568cd7c6a1b7fc1e41cda40bed7d46e5a28af" + "67ae2aabfefe67a86a1c601e6f5ee543e09bd7b6", + "7f3edb710df9d982f486233d0c176aa88f5a0ee81efa9b8145020294", + "04e7611e013e7b43ff5b8b57ad83333bffcc9e469ad23070b5791dc5947784da0a11dbe1" + "6208c6e0b6d5029e71fbec4dffc9fa046d3eeb71c9", + "94db7ef9a232593091eb9a74f289529c7e0d7fef21f80b3c8556b75e", + "a971f45bab10b1d16d7234ca8e4ec987da20d9e867f28aa063296e23", + "e38c538d65a7e1a28fd3ec53f015a7e5beb60e9d309f1e3ba4b2c3d2"}, + {NID_secp224r1, NID_sha512, + "48453340f1317769e6ee6e103153714365731163dc18f84e9f2fa4b120f9c5a9645ee2f9" + "b66c84c26d95912b422b009b64af96aa418b2427a4209f2e7513ba8e43ec8cf20b34e752" + "9b22eb1199545afe9a9f7d9bcb320aec9ee0162f91c0d1dd9674c9c284f25199c5e109f6" + "f84d7ed0d269cc6413edb81bc2c83e37d644d8b9", + "b569f8296ff1d9cc01fffd9919016e5730c1858bdb7b99527153751a", + "04242f34959516a4706172f7dede23110efa314bff22eb320ab88feeff45e3227710900a" + "8acfc9bcce728119d042f64ca40876c2b380ee46e0", + "ae61523866a8f43e6cdd42ba27a34ed06527e8a5842901a64c393f76", + "c2732a4e0815f9f785500e80147e9486994446beccf8a6a352b97585", + "6ecaece6487d7920e398f7f951ab7c7aba5832dabf03704106ad1244"}, + {NID_secp224r1, NID_sha512, + "4bdfd3b91d83108409ad765b256e0c9b9937ecf647f8e6f9fc807e2e72af8246178b3fe0" + "46b4ea10170450d71a4eec790ecb05f03d7077341de26c4db7eeae24d55c9a9093e837df" + "db38168fe8230cb9605825a1282fecd741989bfcdb34678fe077477927f66bd26d003e5d" + "da22043341a14dd31841ba483ad5ce2701e0f68e", + "41a4dd8eee39232b728516e2f21e66011e7426a6b25986c3ffa237e4", + "04c32988171caab178bf50dc7310bc7f604df5a9d19a8e602519c72d8af8985d112ad9de" + "05969e5364d943c1cc5cd198359f4c62b19da0e117", + "827d4999da81fa920c8492ccc1e2d5cdafed9754cf7382a859952071", + "89c61da7422ccd676baec07e2185c12e947a2374eede87847304be6c", + "2685379624717ea28422e8d001c090405a130b4ef9f1ac726c3ca502"}, + {NID_secp224r1, NID_sha512, + "e6cdee8558bc1eacc24e82f0624ce8d02cc8d925b4dd3dec3a72f4a4e0fb76076bfa3ef2" + "e2c33bdd7c27b322bdc09bbfee8fe46f75dbd7bbd2af09690b7137943efe21706e0a1b6d" + "3089540fc58d85ddb55ea836616db573e36c521be008893f40a0a7c349602cc178ea43be" + "59d31ec6449e7ff2c5379379f7d7645134df1bc3", + "67fa50569257c8cc89ac0325db4902003a62f30b917f53e4035a7e04", + "046773a0436a9c42635730413b19aa4166f08c69c0e5002953da42253b555138290b093b" + "f2fe79acda9131d920cd1e7ac43fb8775776cd713c", + "557cb45fd3a30b3bdbf08c56eabbd4478736024aaa52bf8448096453", + "8e92cf7a674aa5f7542dd95c695589a05747431692edd04804299b8f", + "af4908b41f8180b71a6ff10fd51f3d143147af6ddddf7534d3284ed9"}, + {NID_X9_62_prime256v1, NID_sha224, + "ff624d0ba02c7b6370c1622eec3fa2186ea681d1659e0a845448e777b75a8e77a77bb26e" + "5733179d58ef9bc8a4e8b6971aef2539f77ab0963a3415bbd6258339bd1bf55de65db520" + "c63f5b8eab3d55debd05e9494212170f5d65b3286b8b668705b1e2b2b5568610617abb51" + "d2dd0cb450ef59df4b907da90cfa7b268de8c4c2", + "708309a7449e156b0db70e5b52e606c7e094ed676ce8953bf6c14757c826f590", + "0429578c7ab6ce0d11493c95d5ea05d299d536801ca9cbd50e9924e43b733b83ab08c804" + "9879c6278b2273348474158515accaa38344106ef96803c5a05adc4800", + "58f741771620bdc428e91a32d86d230873e9140336fcfb1e122892ee1d501bdc", + "4a19274429e40522234b8785dc25fc524f179dcc95ff09b3c9770fc71f54ca0d", + "58982b79a65b7320f5b92d13bdaecdd1259e760f0f718ba933fd098f6f75d4b7"}, + {NID_X9_62_prime256v1, NID_sha224, + "9155e91fd9155eeed15afd83487ea1a3af04c5998b77c0fe8c43dcc479440a8a9a89efe8" + "83d9385cb9edfde10b43bce61fb63669935ad39419cf29ef3a936931733bfc2378e253e7" + "3b7ae9a3ec7a6a7932ab10f1e5b94d05160c053988f3bdc9167155d069337d42c9a70566" + "19efc031fa5ec7310d29bd28980b1e3559757578", + "90c5386100b137a75b0bb495002b28697a451add2f1f22cb65f735e8aaeace98", + "044a92396ff7930b1da9a873a479a28a9896af6cc3d39345b949b726dc3cd978b5475abb" + "18eaed948879b9c1453e3ef2755dd90f77519ec7b6a30297aad08e4931", + "36f853b5c54b1ec61588c9c6137eb56e7a708f09c57513093e4ecf6d739900e5", + "38b29558511061cfabdc8e5bb65ac2976d1aa2ba9a5deab8074097b2172bb9ad", + "0de2cde610502b6e03c0b23602eafbcd3faf886c81d111d156b7aa550f5bcd51"}, + {NID_X9_62_prime256v1, NID_sha224, + "b242a7586a1383368a33c88264889adfa3be45422fbef4a2df4e3c5325a9c7757017e0d5" + "cf4bbf4de7f99d189f81f1fd2f0dd645574d1eb0d547eead9375677819297c1abe62526a" + "e29fc54cdd11bfe17714f2fbd2d0d0e8d297ff98535980482dd5c1ebdc5a7274aabf1382" + "c9f2315ca61391e3943856e4c5e616c2f1f7be0d", + "a3a43cece9c1abeff81099fb344d01f7d8df66447b95a667ee368f924bccf870", + "045775174deb0248112e069cb86f1546ac7a78bc2127d0cb953bad46384dd6be5ba27020" + "952971cc0b0c3abd06e9ca3e141a4943f560564eba31e5288928bc7ce7", + "a0d9a7a245bd9b9aa86cecb89341c9de2e4f9b5d095a8150826c7ba7fb3e7df7", + "b02a440add66a9ff9c3c0e9acf1be678f6bd48a10cbdec2ad6d186ffe05f3f2a", + "a98bea42aec56a1fcecec00a1cc69b01fcbcf5de7ac1b2f2dcc09b6db064f92b"}, + {NID_X9_62_prime256v1, NID_sha224, + "b64005da76b24715880af94dba379acc25a047b06066c9bedc8f17b8c74e74f4fc720d9f" + "4ef0e2a659e0756931c080587ebdcd0f85e819aea6dacb327a9d96496da53ea21aef3b2e" + "793a9c0def5196acec99891f46ead78a85bc7ab644765781d3543da9fbf9fec916dca975" + "ef3b4271e50ecc68bf79b2d8935e2b25fc063358", + "7bbc8ff13f6f921f21e949b224c16b7176c5984d312b671cf6c2e4841135fc7f", + "04f888e913ec6f3cd8b31eb89e4f8aaa8887d30ae5348ed7118696949d5b8cc7c108895d" + "09620500d244e5035e262dea3f2867cd8967b226324d5c05220d8b410c", + "21c942f3b487accbf7fadc1c4b7a6c7567ce876c195022459fa1ebf6d04ffbaa", + "2e6cc883b8acc904ee9691ef4a9f1f5a9e5fbfde847cda3be833f949fb9c7182", + "2ac48f7a930912131a8b4e3ab495307817c465d638c2a9ea5ae9e2808806e20a"}, + {NID_X9_62_prime256v1, NID_sha224, + "fe6e1ea477640655eaa1f6e3352d4bce53eb3d95424df7f238e93d8531da8f36bc35fa6b" + "e4bf5a6a382e06e855139eb617a9cc9376b4dafacbd80876343b12628619d7cbe1bff675" + "7e3706111ed53898c0219823adbc044eaf8c6ad449df8f6aab9d444dadb5c3380eec0d91" + "694df5fc4b30280d4b87d27e67ae58a1df828963", + "daf5ec7a4eebc20d9485796c355b4a65ad254fe19b998d0507e91ea24135f45d", + "04137c465085c1b1b8cccbe9fccbe9d0295a331aaf332f3ed2e285d16e574b943bd3e8d5" + "a24cd218c19760b0e85b35a8569945aa857cbf0fd6a3ce127581b217b6", + "343251dffa56e6a612fec7b078f9c3819eab402a72686b894a47a08fd97e6c23", + "775e25a296bd259510ae9375f548997bec8a744900022945281dc8c4d94f2b5b", + "d87592ceab773ae103daebbb56a04144aaccb1e14efc1024dc36c0e382df1f70"}, + {NID_X9_62_prime256v1, NID_sha224, + "907c0c00dc080a688548957b5b8b1f33ba378de1368023dcad43242411f554eb7d392d3e" + "5c1668fad3944ff9634105343d83b8c85d2a988da5f5dc60ee0518327caed6dd5cf4e9bc" + "6222deb46d00abde745f9b71d6e7aee6c7fdfc9ed053f2c0b611d4c6863088bd012ea981" + "0ee94f8e58905970ebd07353f1f409a371ed03e3", + "8729a8396f262dabd991aa404cc1753581cea405f0d19222a0b3f210de8ee3c5", + "0482b1f1a7af9b48ca8452613d7032beb0e4f28fe710306aeccc959e4d03662a355e39f3" + "3574097b8d32b471a591972496f5d44db344c037d13f06fafc75f016fd", + "6de9e21f0b2cacc1762b3558fd44d3cf156b85dbef430dd28d59713bfb9cfa0b", + "a754b42720e71925d51fcef76151405a3696cc8f9fc9ca7b46d0b16edd7fb699", + "603924780439cc16ac4cf97c2c3065bc95353aa9179d0ab5f0322ca82f851cf2"}, + {NID_X9_62_prime256v1, NID_sha224, + "771c4d7bce05610a3e71b272096b57f0d1efcce33a1cb4f714d6ebc0865b2773ec5eedc2" + "5fae81dee1d256474dbd9676623614c150916e6ed92ce4430b26037d28fa5252ef6b10c0" + "9dc2f7ee5a36a1ea7897b69f389d9f5075e271d92f4eb97b148f3abcb1e5be0b4feb8278" + "613d18abf6da60bfe448238aa04d7f11b71f44c5", + "f1b62413935fc589ad2280f6892599ad994dae8ca3655ed4f7318cc89b61aa96", + "04e0bbfe4016eea93e6f509518cbffc25d492de6ebbf80465a461caa5bdc0181593231ee" + "7a119d84fa56e3034d50fea85929aec2eb437abc7646821e1bf805fb50", + "7a33eeb9f469afd55de2fb786847a1d3e7797929305c0f90d953b6f143bb8fc6", + "96d1c9399948254ea381631fc0f43ea808110506db8aacf081df5535ac5eb8ad", + "73bf3691260dddd9997c97313f2a70783eacf8d15bdfb34bb13025cdfae72f70"}, + {NID_X9_62_prime256v1, NID_sha224, + "a3b2825235718fc679b942e8ac38fb4f54415a213c65875b5453d18ca012320ddfbbc58b" + "991eaebadfc2d1a28d4f0cd82652b12e4d5bfda89eda3be12ac52188e38e8cce32a264a3" + "00c0e463631f525ae501348594f980392c76b4a12ddc88e5ca086cb8685d03895919a862" + "7725a3e00c4728e2b7c6f6a14fc342b2937fc3dd", + "4caaa26f93f009682bbba6db6b265aec17b7ec1542bda458e8550b9e68eed18d", + "04e3c58c1c254d11c7e781ad133e4c36dd1b5de362120d336a58e7b68813f3fbee59760d" + "b66120afe0d962c81a8e5586588fd19de2f40556371611c73af22c8a68", + "c0d37142dc8b0d614fad20c4d35af6eb819e259e513ddeac1e1c273e7e1dc1bb", + "25dd8e4086c62a40d2a310e2f90f6af5cb7e677b4dfdb4dc4e99e23ea2f0e6dc", + "90ad62c179b0c9d61f521dde1cd762bfd224b5525c39c3706f2549313ddb4f39"}, + {NID_X9_62_prime256v1, NID_sha224, + "3e6e2a9bffd729ee5d4807849cd4250021d8184cda723df6ab0e5c939d39237c8e58af9d" + "869fe62d3c97b3298a99e891e5e11aa68b11a087573a40a3e83c7965e7910d72f81cad0f" + "42accc5c25a4fd3cdd8cee63757bbbfbdae98be2bc867d3bcb1333c4632cb0a55dffeb77" + "d8b119c466cd889ec468454fabe6fbee7102deaf", + "7af4b150bb7167cb68037f280d0823ce5320c01a92b1b56ee1b88547481b1de9", + "04cb3634ec4f0cbb99986be788f889e586026d5a851e80d15382f1bdb1bda2bc7551e4e4" + "3bc16fb114896b18198a1aebe6054ba20ed0c0317c1b8776158c0e6bfb", + "98edd59fafbcaee5f64e84eb5ed59fff45d14aabada47cee2fa674377173627a", + "261a1cdb0fd93c0fb06ea6068b6b03c330a12f621a7eba76682a1d152c0e8d08", + "7ca049bad54feee101d6db807635ffb8bdb05a38e445c8c3d65d60df143514c5"}, + {NID_X9_62_prime256v1, NID_sha224, + "52e5c308e70329a17c71eaedb66bbee303c8ec48a6f1a2efb235d308563cd58553d434e1" + "2f353227a9ea28608ec9c820ed83c95124e7a886f7e832a2de1032e78dc059208f9ec354" + "170b2b1cab992b52ac01e6c0e4e1b0112686962edc53ab226dafcc9fc7baed2cd9307160" + "e8572edb125935db49289b178f35a8ad23f4f801", + "52ad53e849e30bec0e6345c3e9d98ebc808b19496c1ef16d72ab4a00bbb8c634", + "047cca1334bfc2a78728c50b370399be3f9690d445aa03c701da643eeb0b0f7fa83f7522" + "238668e615405e49b2f63faee58286000a30cdb4b564ac0df99bc8950f", + "8650c30712fc253610884fbba4a332a4574d4b7822f7776cab1df8f5fa05442a", + "a18194c7ac5829afc408d78dde19542837e7be82706c3941b2d9c5e036bb51e0", + "188ead1cdf7c1d21114ff56d0421ffd501ab978ef58337462c0fa736d86299af"}, + {NID_X9_62_prime256v1, NID_sha224, + "d3e9e82051d4c84d699453c9ff44c7c09f6523bb92232bcf30bf3c380224249de2964e87" + "1d56a364d6955c81ef91d06482a6c7c61bc70f66ef22fad128d15416e7174312619134f9" + "68f1009f92cbf99248932efb533ff113fb6d949e21d6b80dfbbe69010c8d1ccb0f3808ea" + "309bb0bac1a222168c95b088847e613749b19d04", + "80754962a864be1803bc441fa331e126005bfc6d8b09ed38b7e69d9a030a5d27", + "040aaeed6dd1ae020d6eefc98ec4241ac93cbd3c8afed05bb28007e7da5727571b2dda1d" + "5b7872eb94dfffb456115037ff8d3e72f8ebdd8fcfc42391f96809be69", + "738e050aeefe54ecba5be5f93a97bbcb7557d701f9da2d7e88483454b97b55a8", + "8cb9f41dfdcb9604e0725ac9b78fc0db916dc071186ee982f6dba3da36f02efa", + "5c87fe868fd4282fb114f5d70e9590a10a5d35cedf3ff6402ba5c4344738a32e"}, + {NID_X9_62_prime256v1, NID_sha224, + "968951c2c1918436fe19fa2fe2152656a08f9a6b8aa6201920f1b424da98cee71928897f" + "f087620cc5c551320b1e75a1e98d7d98a5bd5361c9393759614a6087cc0f7fb01fcb1737" + "83eb4c4c23961a8231ac4a07d72e683b0c1bd4c51ef1b031df875e7b8d5a6e0628949f5b" + "8f157f43dccaea3b2a4fc11181e6b451e06ceb37", + "cfa8c8bd810eb0d73585f36280ecdd296ee098511be8ad5eac68984eca8eb19d", + "04c227a2af15dfa8734e11c0c50f77e24e77ed58dd8cccf1b0e9fa06bee1c64766b68659" + "2ce3745eb300d2704083db55e1fa8274e4cb7e256889ccc0bb34a60570", + "2d6b449bb38b543d6b6d34ff8cb053f5e5b337f949b069b21f421995ebb28823", + "5e89d3c9b103c2fa3cb8cebeec23640acda0257d63ffbe2d509bfc49fab1dca6", + "d70c5b1eeb29e016af9925798d24e166c23d58fedd2f1a3bbdb1ef78cdbfb63a"}, + {NID_X9_62_prime256v1, NID_sha224, + "78048628932e1c1cdd1e70932bd7b76f704ba08d7e7d825d3de763bf1a062315f4af16ec" + "cefe0b6ebadccaf403d013f50833ce2c54e24eea8345e25f93b69bb048988d102240225c" + "eacf5003e2abdcc90299f4bf2c101585d36ecdd7a155953c674789d070480d1ef47cc785" + "8e97a6d87c41c6922a00ea12539f251826e141b4", + "b2021e2665ce543b7feadd0cd5a4bd57ffcc5b32deb860b4d736d9880855da3c", + "04722e0abad4504b7832a148746153777694714eca220eced2b2156ca64cfed3ddf0351b" + "357b3081e859c46cad5328c5afa10546e92bc6c3fd541796ac30397a75", + "b15bbce4b382145de7ecd670d947e77555ef7cd1693bd53c694e2b52b04d10e1", + "9d086dcd22da165a43091991bede9c1c14515e656633cb759ec2c17f51c35253", + "23595ad1cb714559faaecaf946beb9a71e584616030ceaed8a8470f4bf62768f"}, + {NID_X9_62_prime256v1, NID_sha224, + "9b0800c443e693067591737fdbcf0966fdfa50872d41d0c189d87cbc34c2771ee5e1255f" + "d604f09fcf167fda16437c245d299147299c69046895d22482db29aba37ff57f756716cd" + "3d6223077f747c4caffbecc0a7c9dfaaafd9a9817470ded8777e6355838ac54d11b2f0fc" + "3f43668ff949cc31de0c2d15af5ef17884e4d66a", + "0c9bce6a568ca239395fc3552755575cbcdddb1d89f6f5ab354517a057b17b48", + "044814d454495df7103e2da383aba55f7842fd84f1750ee5801ad32c10d0be6c7da0bd03" + "9d5097c8f0770477f6b18d247876e88e528bf0453eab515ffab8a9eda3", + "d414f1525cdcc41eba1652de017c034ebcc7946cb2efe4713d09f67c85b83153", + "84db02c678f9a21208cec8564d145a35ba8c6f26b4eb7e19522e439720dae44c", + "537c564da0d2dc5ac4376c5f0ca3b628d01d48df47a83d842c927e4d6db1e16d"}, + {NID_X9_62_prime256v1, NID_sha224, + "fc3b8291c172dae635a6859f525beaf01cf683765d7c86f1a4d768df7cae055f639eccc0" + "8d7a0272394d949f82d5e12d69c08e2483e11a1d28a4c61f18193106e12e5de4a9d0b4bf" + "341e2acd6b715dc83ae5ff63328f8346f35521ca378b311299947f63ec593a5e32e6bd11" + "ec4edb0e75302a9f54d21226d23314729e061016", + "1daa385ec7c7f8a09adfcaea42801a4de4c889fb5c6eb4e92bc611d596d68e3f", + "04f04e9f2831d9697ae146c7d4552e5f91085cc46778400b75b76f00205252941dbd2671" + "48174cd0c2b019cd0a5256e2f3f889d1e597160372b5a1339c8d787f10", + "7707db348ee6f60365b43a2a994e9b40ed56fe03c2c31c7e781bc4ffadcba760", + "5d95c385eeba0f15db0b80ae151912409128c9c80e554246067b8f6a36d85ea5", + "db5d8a1e345f883e4fcb3871276f170b783c1a1e9da6b6615913368a8526f1c3"}, + {NID_X9_62_prime256v1, NID_sha256, + "5905238877c77421f73e43ee3da6f2d9e2ccad5fc942dcec0cbd25482935faaf416983fe" + "165b1a045ee2bcd2e6dca3bdf46c4310a7461f9a37960ca672d3feb5473e253605fb1ddf" + "d28065b53cb5858a8ad28175bf9bd386a5e471ea7a65c17cc934a9d791e91491eb3754d0" + "3799790fe2d308d16146d5c9b0d0debd97d79ce8", + "519b423d715f8b581f4fa8ee59f4771a5b44c8130b4e3eacca54a56dda72b464", + "041ccbe91c075fc7f4f033bfa248db8fccd3565de94bbfb12f3c59ff46c271bf83ce4014" + "c68811f9a21a1fdb2c0e6113e06db7ca93b7404e78dc7ccd5ca89a4ca9", + "94a1bbb14b906a61a280f245f9e93c7f3b4a6247824f5d33b9670787642a68de", + "f3ac8061b514795b8843e3d6629527ed2afd6b1f6a555a7acabb5e6f79c8c2ac", + "8bf77819ca05a6b2786c76262bf7371cef97b218e96f175a3ccdda2acc058903"}, + {NID_X9_62_prime256v1, NID_sha256, + "c35e2f092553c55772926bdbe87c9796827d17024dbb9233a545366e2e5987dd344deb72" + "df987144b8c6c43bc41b654b94cc856e16b96d7a821c8ec039b503e3d86728c494a967d8" + "3011a0e090b5d54cd47f4e366c0912bc808fbb2ea96efac88fb3ebec9342738e225f7c7c" + "2b011ce375b56621a20642b4d36e060db4524af1", + "0f56db78ca460b055c500064824bed999a25aaf48ebb519ac201537b85479813", + "04e266ddfdc12668db30d4ca3e8f7749432c416044f2d2b8c10bf3d4012aeffa8abfa864" + "04a2e9ffe67d47c587ef7a97a7f456b863b4d02cfc6928973ab5b1cb39", + "6d3e71882c3b83b156bb14e0ab184aa9fb728068d3ae9fac421187ae0b2f34c6", + "976d3a4e9d23326dc0baa9fa560b7c4e53f42864f508483a6473b6a11079b2db", + "1b766e9ceb71ba6c01dcd46e0af462cd4cfa652ae5017d4555b8eeefe36e1932"}, + {NID_X9_62_prime256v1, NID_sha256, + "3c054e333a94259c36af09ab5b4ff9beb3492f8d5b4282d16801daccb29f70fe61a0b37f" + "fef5c04cd1b70e85b1f549a1c4dc672985e50f43ea037efa9964f096b5f62f7ffdf8d6bf" + "b2cc859558f5a393cb949dbd48f269343b5263dcdb9c556eca074f2e98e6d94c2c29a677" + "afaf806edf79b15a3fcd46e7067b7669f83188ee", + "e283871239837e13b95f789e6e1af63bf61c918c992e62bca040d64cad1fc2ef", + "0474ccd8a62fba0e667c50929a53f78c21b8ff0c3c737b0b40b1750b2302b0bde829074e" + "21f3a0ef88b9efdf10d06aa4c295cc1671f758ca0e4cd108803d0f2614", + "ad5e887eb2b380b8d8280ad6e5ff8a60f4d26243e0124c2f31a297b5d0835de2", + "35fb60f5ca0f3ca08542fb3cc641c8263a2cab7a90ee6a5e1583fac2bb6f6bd1", + "ee59d81bc9db1055cc0ed97b159d8784af04e98511d0a9a407b99bb292572e96"}, + {NID_X9_62_prime256v1, NID_sha256, + "0989122410d522af64ceb07da2c865219046b4c3d9d99b01278c07ff63eaf1039cb787ae" + "9e2dd46436cc0415f280c562bebb83a23e639e476a02ec8cff7ea06cd12c86dcc3adefbf" + "1a9e9a9b6646c7599ec631b0da9a60debeb9b3e19324977f3b4f36892c8a38671c8e1cc8" + "e50fcd50f9e51deaf98272f9266fc702e4e57c30", + "a3d2d3b7596f6592ce98b4bfe10d41837f10027a90d7bb75349490018cf72d07", + "04322f80371bf6e044bc49391d97c1714ab87f990b949bc178cb7c43b7c22d89e13c15d5" + "4a5cc6b9f09de8457e873eb3deb1fceb54b0b295da6050294fae7fd999", + "24fc90e1da13f17ef9fe84cc96b9471ed1aaac17e3a4bae33a115df4e5834f18", + "d7c562370af617b581c84a2468cc8bd50bb1cbf322de41b7887ce07c0e5884ca", + "b46d9f2d8c4bf83546ff178f1d78937c008d64e8ecc5cbb825cb21d94d670d89"}, + {NID_X9_62_prime256v1, NID_sha256, + "dc66e39f9bbfd9865318531ffe9207f934fa615a5b285708a5e9c46b7775150e818d7f24" + "d2a123df3672fff2094e3fd3df6fbe259e3989dd5edfcccbe7d45e26a775a5c4329a084f" + "057c42c13f3248e3fd6f0c76678f890f513c32292dd306eaa84a59abe34b16cb5e38d0e8" + "85525d10336ca443e1682aa04a7af832b0eee4e7", + "53a0e8a8fe93db01e7ae94e1a9882a102ebd079b3a535827d583626c272d280d", + "041bcec4570e1ec2436596b8ded58f60c3b1ebc6a403bc5543040ba829630572448af62a" + "4c683f096b28558320737bf83b9959a46ad2521004ef74cf85e67494e1", + "5d833e8d24cc7a402d7ee7ec852a3587cddeb48358cea71b0bedb8fabe84e0c4", + "18caaf7b663507a8bcd992b836dec9dc5703c080af5e51dfa3a9a7c387182604", + "77c68928ac3b88d985fb43fb615fb7ff45c18ba5c81af796c613dfa98352d29c"}, + {NID_X9_62_prime256v1, NID_sha256, + "600974e7d8c5508e2c1aab0783ad0d7c4494ab2b4da265c2fe496421c4df238b0be25f25" + "659157c8a225fb03953607f7df996acfd402f147e37aee2f1693e3bf1c35eab3ae360a2b" + "d91d04622ea47f83d863d2dfecb618e8b8bdc39e17d15d672eee03bb4ce2cc5cf6b217e5" + "faf3f336fdd87d972d3a8b8a593ba85955cc9d71", + "4af107e8e2194c830ffb712a65511bc9186a133007855b49ab4b3833aefc4a1d", + "04a32e50be3dae2c8ba3f5e4bdae14cf7645420d425ead94036c22dd6c4fc59e00d623bf" + "641160c289d6742c6257ae6ba574446dd1d0e74db3aaa80900b78d4ae9", + "e18f96f84dfa2fd3cdfaec9159d4c338cd54ad314134f0b31e20591fc238d0ab", + "8524c5024e2d9a73bde8c72d9129f57873bbad0ed05215a372a84fdbc78f2e68", + "d18c2caf3b1072f87064ec5e8953f51301cada03469c640244760328eb5a05cb"}, + {NID_X9_62_prime256v1, NID_sha256, + "dfa6cb9b39adda6c74cc8b2a8b53a12c499ab9dee01b4123642b4f11af336a91a5c9ce05" + "20eb2395a6190ecbf6169c4cba81941de8e76c9c908eb843b98ce95e0da29c5d43880402" + "64e05e07030a577cc5d176387154eabae2af52a83e85c61c7c61da930c9b19e45d7e34c8" + "516dc3c238fddd6e450a77455d534c48a152010b", + "78dfaa09f1076850b3e206e477494cddcfb822aaa0128475053592c48ebaf4ab", + "048bcfe2a721ca6d753968f564ec4315be4857e28bef1908f61a366b1f03c974790f6757" + "6a30b8e20d4232d8530b52fb4c89cbc589ede291e499ddd15fe870ab96", + "295544dbb2da3da170741c9b2c6551d40af7ed4e891445f11a02b66a5c258a77", + "c5a186d72df452015480f7f338970bfe825087f05c0088d95305f87aacc9b254", + "84a58f9e9d9e735344b316b1aa1ab5185665b85147dc82d92e969d7bee31ca30"}, + {NID_X9_62_prime256v1, NID_sha256, + "51d2547cbff92431174aa7fc7302139519d98071c755ff1c92e4694b58587ea560f72f32" + "fc6dd4dee7d22bb7387381d0256e2862d0644cdf2c277c5d740fa089830eb52bf79d1e75" + "b8596ecf0ea58a0b9df61e0c9754bfcd62efab6ea1bd216bf181c5593da79f10135a9bc6" + "e164f1854bc8859734341aad237ba29a81a3fc8b", + "80e692e3eb9fcd8c7d44e7de9f7a5952686407f90025a1d87e52c7096a62618a", + "04a88bc8430279c8c0400a77d751f26c0abc93e5de4ad9a4166357952fe041e7672d365a" + "1eef25ead579cc9a069b6abc1b16b81c35f18785ce26a10ba6d1381185", + "7c80fd66d62cc076cef2d030c17c0a69c99611549cb32c4ff662475adbe84b22", + "9d0c6afb6df3bced455b459cc21387e14929392664bb8741a3693a1795ca6902", + "d7f9ddd191f1f412869429209ee3814c75c72fa46a9cccf804a2f5cc0b7e739f"}, + {NID_X9_62_prime256v1, NID_sha256, + "558c2ac13026402bad4a0a83ebc9468e50f7ffab06d6f981e5db1d082098065bcff6f21a" + "7a74558b1e8612914b8b5a0aa28ed5b574c36ac4ea5868432a62bb8ef0695d27c1e3ceaf" + "75c7b251c65ddb268696f07c16d2767973d85beb443f211e6445e7fe5d46f0dce70d58a4" + "cd9fe70688c035688ea8c6baec65a5fc7e2c93e8", + "5e666c0db0214c3b627a8e48541cc84a8b6fd15f300da4dff5d18aec6c55b881", + "041bc487570f040dc94196c9befe8ab2b6de77208b1f38bdaae28f9645c4d2bc3aec8160" + "2abd8345e71867c8210313737865b8aa186851e1b48eaca140320f5d8f", + "2e7625a48874d86c9e467f890aaa7cd6ebdf71c0102bfdcfa24565d6af3fdce9", + "2f9e2b4e9f747c657f705bffd124ee178bbc5391c86d056717b140c153570fd9", + "f5413bfd85949da8d83de83ab0d19b2986613e224d1901d76919de23ccd03199"}, + {NID_X9_62_prime256v1, NID_sha256, + "4d55c99ef6bd54621662c3d110c3cb627c03d6311393b264ab97b90a4b15214a5593ba25" + "10a53d63fb34be251facb697c973e11b665cb7920f1684b0031b4dd370cb927ca7168b0b" + "f8ad285e05e9e31e34bc24024739fdc10b78586f29eff94412034e3b606ed850ec2c1900" + "e8e68151fc4aee5adebb066eb6da4eaa5681378e", + "f73f455271c877c4d5334627e37c278f68d143014b0a05aa62f308b2101c5308", + "04b8188bd68701fc396dab53125d4d28ea33a91daf6d21485f4770f6ea8c565dde423f05" + "8810f277f8fe076f6db56e9285a1bf2c2a1dae145095edd9c04970bc4a", + "62f8665fd6e26b3fa069e85281777a9b1f0dfd2c0b9f54a086d0c109ff9fd615", + "1cc628533d0004b2b20e7f4baad0b8bb5e0673db159bbccf92491aef61fc9620", + "880e0bbf82a8cf818ed46ba03cf0fc6c898e36fca36cc7fdb1d2db7503634430"}, + {NID_X9_62_prime256v1, NID_sha256, + "f8248ad47d97c18c984f1f5c10950dc1404713c56b6ea397e01e6dd925e903b4fadfe2c9" + "e877169e71ce3c7fe5ce70ee4255d9cdc26f6943bf48687874de64f6cf30a012512e787b" + "88059bbf561162bdcc23a3742c835ac144cc14167b1bd6727e940540a9c99f3cbb41fb1d" + "cb00d76dda04995847c657f4c19d303eb09eb48a", + "b20d705d9bd7c2b8dc60393a5357f632990e599a0975573ac67fd89b49187906", + "0451f99d2d52d4a6e734484a018b7ca2f895c2929b6754a3a03224d07ae61166ce4737da" + "963c6ef7247fb88d19f9b0c667cac7fe12837fdab88c66f10d3c14cad1", + "72b656f6b35b9ccbc712c9f1f3b1a14cbbebaec41c4bca8da18f492a062d6f6f", + "9886ae46c1415c3bc959e82b760ad760aab66885a84e620aa339fdf102465c42", + "2bf3a80bc04faa35ebecc0f4864ac02d349f6f126e0f988501b8d3075409a26c"}, + {NID_X9_62_prime256v1, NID_sha256, + "3b6ee2425940b3d240d35b97b6dcd61ed3423d8e71a0ada35d47b322d17b35ea0472f35e" + "dd1d252f87b8b65ef4b716669fc9ac28b00d34a9d66ad118c9d94e7f46d0b4f6c2b2d339" + "fd6bcd351241a387cc82609057048c12c4ec3d85c661975c45b300cb96930d89370a327c" + "98b67defaa89497aa8ef994c77f1130f752f94a4", + "d4234bebfbc821050341a37e1240efe5e33763cbbb2ef76a1c79e24724e5a5e7", + "048fb287f0202ad57ae841aea35f29b2e1d53e196d0ddd9aec24813d64c0922fb71f6daf" + "f1aa2dd2d6d3741623eecb5e7b612997a1039aab2e5cf2de969cfea573", + "d926fe10f1bfd9855610f4f5a3d666b1a149344057e35537373372ead8b1a778", + "490efd106be11fc365c7467eb89b8d39e15d65175356775deab211163c2504cb", + "644300fc0da4d40fb8c6ead510d14f0bd4e1321a469e9c0a581464c7186b7aa7"}, + {NID_X9_62_prime256v1, NID_sha256, + "c5204b81ec0a4df5b7e9fda3dc245f98082ae7f4efe81998dcaa286bd4507ca840a53d21" + "b01e904f55e38f78c3757d5a5a4a44b1d5d4e480be3afb5b394a5d2840af42b1b4083d40" + "afbfe22d702f370d32dbfd392e128ea4724d66a3701da41ae2f03bb4d91bb946c7969404" + "cb544f71eb7a49eb4c4ec55799bda1eb545143a7", + "b58f5211dff440626bb56d0ad483193d606cf21f36d9830543327292f4d25d8c", + "0468229b48c2fe19d3db034e4c15077eb7471a66031f28a980821873915298ba76303e8e" + "e3742a893f78b810991da697083dd8f11128c47651c27a56740a80c24c", + "e158bf4a2d19a99149d9cdb879294ccb7aaeae03d75ddd616ef8ae51a6dc1071", + "e67a9717ccf96841489d6541f4f6adb12d17b59a6bef847b6183b8fcf16a32eb", + "9ae6ba6d637706849a6a9fc388cf0232d85c26ea0d1fe7437adb48de58364333"}, + {NID_X9_62_prime256v1, NID_sha256, + "72e81fe221fb402148d8b7ab03549f1180bcc03d41ca59d7653801f0ba853add1f6d29ed" + "d7f9abc621b2d548f8dbf8979bd16608d2d8fc3260b4ebc0dd42482481d548c7075711b5" + "759649c41f439fad69954956c9326841ea6492956829f9e0dc789f73633b40f6ac77bcae" + "6dfc7930cfe89e526d1684365c5b0be2437fdb01", + "54c066711cdb061eda07e5275f7e95a9962c6764b84f6f1f3ab5a588e0a2afb1", + "040a7dbb8bf50cb605eb2268b081f26d6b08e012f952c4b70a5a1e6e7d46af98bbf26dd7" + "d799930062480849962ccf5004edcfd307c044f4e8f667c9baa834eeae", + "646fe933e96c3b8f9f507498e907fdd201f08478d0202c752a7c2cfebf4d061a", + "b53ce4da1aa7c0dc77a1896ab716b921499aed78df725b1504aba1597ba0c64b", + "d7c246dc7ad0e67700c373edcfdd1c0a0495fc954549ad579df6ed1438840851"}, + {NID_X9_62_prime256v1, NID_sha256, + "21188c3edd5de088dacc1076b9e1bcecd79de1003c2414c3866173054dc82dde85169baa" + "77993adb20c269f60a5226111828578bcc7c29e6e8d2dae81806152c8ba0c6ada1986a19" + "83ebeec1473a73a04795b6319d48662d40881c1723a706f516fe75300f92408aa1dc6ae4" + "288d2046f23c1aa2e54b7fb6448a0da922bd7f34", + "34fa4682bf6cb5b16783adcd18f0e6879b92185f76d7c920409f904f522db4b1", + "04105d22d9c626520faca13e7ced382dcbe93498315f00cc0ac39c4821d0d737376c47f3" + "cbbfa97dfcebe16270b8c7d5d3a5900b888c42520d751e8faf3b401ef4", + "a6f463ee72c9492bc792fe98163112837aebd07bab7a84aaed05be64db3086f4", + "542c40a18140a6266d6f0286e24e9a7bad7650e72ef0e2131e629c076d962663", + "4f7f65305e24a6bbb5cff714ba8f5a2cee5bdc89ba8d75dcbf21966ce38eb66f"}, + {NID_X9_62_prime256v1, NID_sha384, + "e0b8596b375f3306bbc6e77a0b42f7469d7e83635990e74aa6d713594a3a24498feff500" + "6790742d9c2e9b47d714bee932435db747c6e733e3d8de41f2f91311f2e9fd8e02565163" + "1ffd84f66732d3473fbd1627e63dc7194048ebec93c95c159b5039ab5e79e42c80b484a9" + "43f125de3da1e04e5bf9c16671ad55a1117d3306", + "b6faf2c8922235c589c27368a3b3e6e2f42eb6073bf9507f19eed0746c79dced", + "04e0e7b99bc62d8dd67883e39ed9fa0657789c5ff556cc1fd8dd1e2a55e9e3f24363fbfd" + "0232b95578075c903a4dbf85ad58f8350516e1ec89b0ee1f5e1362da69", + "9980b9cdfcef3ab8e219b9827ed6afdd4dbf20bd927e9cd01f15762703487007", + "f5087878e212b703578f5c66f434883f3ef414dc23e2e8d8ab6a8d159ed5ad83", + "306b4c6c20213707982dffbb30fba99b96e792163dd59dbe606e734328dd7c8a"}, + {NID_X9_62_prime256v1, NID_sha384, + "099a0131179fff4c6928e49886d2fdb3a9f239b7dd5fa828a52cbbe3fcfabecfbba3e192" + "159b887b5d13aa1e14e6a07ccbb21f6ad8b7e88fee6bea9b86dea40ffb962f38554056fb" + "7c5bb486418915f7e7e9b9033fe3baaf9a069db98bc02fa8af3d3d1859a11375d6f98aa2" + "ce632606d0800dff7f55b40f971a8586ed6b39e9", + "118958fd0ff0f0b0ed11d3cf8fa664bc17cdb5fed1f4a8fc52d0b1ae30412181", + "04afda82260c9f42122a3f11c6058839488f6d7977f6f2a263c67d06e27ea2c3550ae2bb" + "dd2207c590332c5bfeb4c8b5b16622134bd4dc55382ae806435468058b", + "23129a99eeda3d99a44a5778a46e8e7568b91c31fb7a8628c5d9820d4bed4a6b", + "e446600cab1286ebc3bb332012a2f5cc33b0a5ef7291d5a62a84de5969d77946", + "cf89b12793ee1792eb26283b48fa0bdcb45ae6f6ad4b02564bf786bb97057d5a"}, + {NID_X9_62_prime256v1, NID_sha384, + "0fbc07ea947c946bea26afa10c51511039b94ddbc4e2e4184ca3559260da24a14522d149" + "7ca5e77a5d1a8e86583aeea1f5d4ff9b04a6aa0de79cd88fdb85e01f171143535f2f7c23" + "b050289d7e05cebccdd131888572534bae0061bdcc3015206b9270b0d5af9f1da2f9de91" + "772d178a632c3261a1e7b3fb255608b3801962f9", + "3e647357cd5b754fad0fdb876eaf9b1abd7b60536f383c81ce5745ec80826431", + "04702b2c94d039e590dd5c8f9736e753cf5824aacf33ee3de74fe1f5f7c858d5ed0c2889" + "4e907af99fb0d18c9e98f19ac80dd77abfa4bebe45055c0857b82a0f4d", + "9beab7722f0bcb468e5f234e074170a60225255de494108459abdf603c6e8b35", + "c4021fb7185a07096547af1fb06932e37cf8bd90cf593dea48d48614fa237e5e", + "7fb45d09e2172bec8d3e330aa06c43fbb5f625525485234e7714b7f6e92ba8f1"}, + {NID_X9_62_prime256v1, NID_sha384, + "1e38d750d936d8522e9db1873fb4996bef97f8da3c6674a1223d29263f1234a90b751785" + "316444e9ba698bc8ab6cd010638d182c9adad4e334b2bd7529f0ae8e9a52ad60f59804b2" + "d780ed52bdd33b0bf5400147c28b4304e5e3434505ae7ce30d4b239e7e6f0ecf058badd5" + "b388eddbad64d24d2430dd04b4ddee98f972988f", + "76c17c2efc99891f3697ba4d71850e5816a1b65562cc39a13da4b6da9051b0fd", + "04d12512e934c367e4c4384dbd010e93416840288a0ba00b299b4e7c0d91578b57ebf883" + "5661d9b578f18d14ae4acf9c357c0dc8b7112fc32824a685ed72754e23", + "77cffa6f9a73904306f9fcd3f6bbb37f52d71e39931bb4aec28f9b076e436ccf", + "4d5a9d95b0f09ce8704b0f457b39059ee606092310df65d3f8ae7a2a424cf232", + "7d3c014ca470a73cef1d1da86f2a541148ad542fbccaf9149d1b0b030441a7eb"}, + {NID_X9_62_prime256v1, NID_sha384, + "abcf0e0f046b2e0672d1cc6c0a114905627cbbdefdf9752f0c31660aa95f2d0ede72d179" + "19a9e9b1add3213164e0c9b5ae3c76f1a2f79d3eeb444e6741521019d8bd5ca391b28c10" + "63347f07afcfbb705be4b52261c19ebaf1d6f054a74d86fb5d091fa7f229450996b76f0a" + "da5f977b09b58488eebfb5f5e9539a8fd89662ab", + "67b9dea6a575b5103999efffce29cca688c781782a41129fdecbce76608174de", + "04b4238b029fc0b7d9a5286d8c29b6f3d5a569e9108d44d889cd795c4a385905be8cb3ff" + "f8f6cca7187c6a9ad0a2b1d9f40ae01b32a7e8f8c4ca75d71a1fffb309", + "d02617f26ede3584f0afcfc89554cdfb2ae188c192092fdde3436335fafe43f1", + "26fd9147d0c86440689ff2d75569795650140506970791c90ace0924b44f1586", + "00a34b00c20a8099df4b0a757cbef8fea1cb3ea7ced5fbf7e987f70b25ee6d4f"}, + {NID_X9_62_prime256v1, NID_sha384, + "dc3d4884c741a4a687593c79fb4e35c5c13c781dca16db561d7e393577f7b62ca41a6e25" + "9fc1fb8d0c4e1e062517a0fdf95558b7799f20c211796167953e6372c11829beec64869d" + "67bf3ee1f1455dd87acfbdbcc597056e7fb347a17688ad32fda7ccc3572da7677d7255c2" + "61738f07763cd45973c728c6e9adbeecadc3d961", + "ecf644ea9b6c3a04fdfe2de4fdcb55fdcdfcf738c0b3176575fa91515194b566", + "04c3bdc7c795ec94620a2cfff614c13a3390a5e86c892e53a24d3ed22228bc85bf70480f" + "c5cf4aacd73e24618b61b5c56c1ced8c4f1b869580ea538e68c7a61ca3", + "53291d51f68d9a12d1dcdc58892b2f786cc15f631f16997d2a49bace513557d4", + "a860c8b286edf973ce4ce4cf6e70dc9bbf3818c36c023a845677a9963705df8b", + "5630f986b1c45e36e127dd7932221c4272a8cc6e255e89f0f0ca4ec3a9f76494"}, + {NID_X9_62_prime256v1, NID_sha384, + "719bf1911ae5b5e08f1d97b92a5089c0ab9d6f1c175ac7199086aeeaa416a17e6d6f8486" + "c711d386f284f096296689a54d330c8efb0f5fa1c5ba128d3234a3da856c2a94667ef710" + "3616a64c913135f4e1dc50e38daa60610f732ad1bedfcc396f87169392520314a6b6b9af" + "6793dbabad4599525228cc7c9c32c4d8e097ddf6", + "4961485cbc978f8456ec5ac7cfc9f7d9298f99415ecae69c8491b258c029bfee", + "048d40bf2299e05d758d421972e81cfb0cce68b949240dc30f315836acc70bef035674e6" + "f77f8b46f46cca937d83b128dffbe9bd7e0d3d08aa2cbbfdfb16f72c9a", + "373a825b5a74b7b9e02f8d4d876b577b4c3984168d704ba9f95b19c05ed590af", + "ef6fb386ad044b63feb7445fa16b10319018e9cea9ef42bca83bdad01992234a", + "ac1f42f652eb1786e57be01d847c81f7efa072ba566d4583af4f1551a3f76c65"}, + {NID_X9_62_prime256v1, NID_sha384, + "7cf19f4c851e97c5bca11a39f0074c3b7bd3274e7dd75d0447b7b84995dfc9f716bf08c2" + "5347f56fcc5e5149cb3f9cfb39d408ace5a5c47e75f7a827fa0bb9921bb5b23a6053dbe1" + "fa2bba341ac874d9b1333fc4dc224854949f5c8d8a5fedd02fb26fdfcd3be351aec0fcbe" + "f18972956c6ec0effaf057eb4420b6d28e0c008c", + "587907e7f215cf0d2cb2c9e6963d45b6e535ed426c828a6ea2fb637cca4c5cbd", + "04660da45c413cc9c9526202c16b402af602d30daaa7c342f1e722f15199407f31e6f8cb" + "b06913cc718f2d69ba2fb3137f04a41c27c676d1a80fbf30ea3ca46439", + "6b8eb7c0d8af9456b95dd70561a0e902863e6dfa1c28d0fd4a0509f1c2a647b2", + "08fabf9b57de81875bfa7a4118e3e44cfb38ec6a9b2014940207ba3b1c583038", + "a58d199b1deba7350616230d867b2747a3459421811c291836abee715b8f67b4"}, + {NID_X9_62_prime256v1, NID_sha384, + "b892ffabb809e98a99b0a79895445fc734fa1b6159f9cddb6d21e510708bdab6076633ac" + "30aaef43db566c0d21f4381db46711fe3812c5ce0fb4a40e3d5d8ab24e4e82d3560c6dc7" + "c37794ee17d4a144065ef99c8d1c88bc22ad8c4c27d85ad518fa5747ae35276fc104829d" + "3f5c72fc2a9ea55a1c3a87007cd133263f79e405", + "24b1e5676d1a9d6b645a984141a157c124531feeb92d915110aef474b1e27666", + "04b4909a5bdf25f7659f4ef35e4b811429fb2c59126e3dad09100b46aea6ebe7a6760ae0" + "15fa6af5c9749c4030fdb5de6e58c6b5b1944829105cf7edf7d3a22cfb", + "88794923d8943b5dbcc7a7a76503880ff7da632b0883aaa60a9fcc71bf880fd6", + "6ec9a340b77fae3c7827fa96d997e92722ff2a928217b6dd3c628f3d49ae4ce6", + "637b54bbcfb7e7d8a41ea317fcfca8ad74eb3bb6b778bc7ef9dec009281976f7"}, + {NID_X9_62_prime256v1, NID_sha384, + "8144e37014c95e13231cbd6fa64772771f93b44e37f7b02f592099cc146343edd4f4ec9f" + "a1bc68d7f2e9ee78fc370443aa2803ff4ca52ee49a2f4daf2c8181ea7b8475b3a0f608fc" + "3279d09e2d057fbe3f2ffbe5133796124781299c6da60cfe7ecea3abc30706ded2cdf18f" + "9d788e59f2c31662df3abe01a9b12304fb8d5c8c", + "bce49c7b03dcdc72393b0a67cf5aa5df870f5aaa6137ada1edc7862e0981ec67", + "04c786d9421d67b72b922cf3def2a25eeb5e73f34543eb50b152e738a98afb0ca5679627" + "1e79e2496f9e74b126b1123a3d067de56b5605d6f51c8f6e1d5bb93aba", + "89e690d78a5e0d2b8ce9f7fcbf34e2605fd9584760fa7729043397612dd21f94", + "07e5054c384839584624e8d730454dc27e673c4a90cbf129d88b91250341854d", + "f7e665b88614d0c5cbb3007cafe713763d81831525971f1747d92e4d1ca263a7"}, + {NID_X9_62_prime256v1, NID_sha384, + "a3683d120807f0a030feed679785326698c3702f1983eaba1b70ddfa7f0b3188060b845e" + "2b67ed57ee68087746710450f7427cb34655d719c0acbc09ac696adb4b22aba1b9322b71" + "11076e67053a55f62b501a4bca0ad9d50a868f51aeeb4ef27823236f5267e8da83e14304" + "7422ce140d66e05e44dc84fb3a4506b2a5d7caa8", + "73188a923bc0b289e81c3db48d826917910f1b957700f8925425c1fb27cabab9", + "0486662c014ab666ee770723be8da38c5cd299efc6480fc6f8c3603438fa8397b9f26b33" + "07a650c3863faaa5f642f3ba1384c3d3a02edd3d48c657c269609cc3fc", + "ec90584ab3b383b590626f36ed4f5110e49888aec7ae7a9c5ea62dd2dc378666", + "13e9ad59112fde3af4163eb5c2400b5e9a602576d5869ac1c569075f08c90ff6", + "708ac65ff2b0baaccc6dd954e2a93df46016bd04457636de06798fcc17f02be5"}, + {NID_X9_62_prime256v1, NID_sha384, + "b1df8051b213fc5f636537e37e212eb20b2423e6467a9c7081336a870e6373fc835899d5" + "9e546c0ac668cc81ce4921e88f42e6da2a109a03b4f4e819a17c955b8d099ec6b282fb49" + "5258dca13ec779c459da909475519a3477223c06b99afbd77f9922e7cbef844b93f3ce5f" + "50db816b2e0d8b1575d2e17a6b8db9111d6da578", + "f637d55763fe819541588e0c603f288a693cc66823c6bb7b8e003bd38580ebce", + "0474a4620c578601475fc169a9b84be613b4a16cb6acab8fd98848a6ec9fbd133d42b9e3" + "5d347c107e63bd55f525f915bcf1e3d2b81d002d3c39acf10fc30645a1", + "4d578f5099636234d9c1d566f1215d5d887ae5d47022be17dbf32a11a03f053b", + "113a933ebc4d94ce1cef781e4829df0c493b0685d39fb2048ce01b21c398dbba", + "3005bd4ec63dbd04ce9ff0c6246ad65d27fcf62edb2b7e461589f9f0e7446ffd"}, + {NID_X9_62_prime256v1, NID_sha384, + "0b918ede985b5c491797d0a81446b2933be312f419b212e3aae9ba5914c00af431747a9d" + "287a7c7761e9bcbc8a12aaf9d4a76d13dad59fc742f8f218ef66eb67035220a07acc1a35" + "7c5b562ecb6b895cf725c4230412fefac72097f2c2b829ed58742d7c327cad0f1058df1b" + "ddd4ae9c6d2aba25480424308684cecd6517cdd8", + "2e357d51517ff93b821f895932fddded8347f32596b812308e6f1baf7dd8a47f", + "047e4078a1d50c669fb2996dd9bacb0c3ac7ede4f58fa0fa1222e78dbf5d1f41860014e4" + "6e90cc171fbb83ea34c6b78202ea8137a7d926f0169147ed5ae3d6596f", + "be522b0940b9a40d84bf790fe6abdc252877e671f2efa63a33a65a512fc2aa5c", + "a26b9ad775ac37ff4c7f042cdc4872c5e4e5e800485f488ddfaaed379f468090", + "f88eae2019bebbba62b453b8ee3472ca5c67c267964cffe0cf2d2933c1723dff"}, + {NID_X9_62_prime256v1, NID_sha384, + "0fab26fde1a4467ca930dbe513ccc3452b70313cccde2994eead2fde85c8da1db84d7d06" + "a024c9e88629d5344224a4eae01b21a2665d5f7f36d5524bf5367d7f8b6a71ea05d413d4" + "afde33777f0a3be49c9e6aa29ea447746a9e77ce27232a550b31dd4e7c9bc8913485f2dc" + "83a56298051c92461fd46b14cc895c300a4fb874", + "77d60cacbbac86ab89009403c97289b5900466856887d3e6112af427f7f0f50b", + "04a62032dfdb87e25ed0c70cad20d927c7effeb2638e6c88ddd670f74df16090e544c5ee" + "2cf740ded468f5d2efe13daa7c5234645a37c073af35330d03a4fed976", + "06c1e692b045f425a21347ecf72833d0242906c7c1094f805566cdcb1256e394", + "eb173b51fb0aec318950d097e7fda5c34e529519631c3e2c9b4550b903da417d", + "ca2c13574bf1b7d56e9dc18315036a31b8bceddf3e2c2902dcb40f0cc9e31b45"}, + {NID_X9_62_prime256v1, NID_sha384, + "7843f157ef8566722a7d69da67de7599ee65cb3975508f70c612b3289190e364141781e0" + "b832f2d9627122742f4b5871ceeafcd09ba5ec90cae6bcc01ae32b50f13f63918dfb5177" + "df9797c6273b92d103c3f7a3fc2050d2b196cc872c57b77f9bdb1782d4195445fcc6236d" + "d8bd14c8bcbc8223a6739f6a17c9a861e8c821a6", + "486854e77962117f49e09378de6c9e3b3522fa752b10b2c810bf48db584d7388", + "04760b5624bd64d19c866e54ccd74ad7f98851afdbc3ddeae3ec2c52a135be9cfafeca15" + "ce9350877102eee0f5af18b2fed89dc86b7df0bf7bc2963c1638e36fe8", + "e4f77c6442eca239b01b0254e11a4182782d96f48ab521cc3d1d68df12b5a41a", + "bdff14e4600309c2c77f79a25963a955b5b500a7b2d34cb172cd6acd52905c7b", + "b0479cdb3df79923ec36a104a129534c5d59f622be7d613aa04530ad2507d3a2"}, + {NID_X9_62_prime256v1, NID_sha512, + "6c8572b6a3a4a9e8e03dbeed99334d41661b8a8417074f335ab1845f6cc852adb8c01d98" + "20fcf8e10699cc827a8fbdca2cbd46cc66e4e6b7ba41ec3efa733587e4a30ec552cd8dda" + "b8163e148e50f4d090782897f3ddac84a41e1fcfe8c56b6152c0097b0d634b41011471ff" + "d004f43eb4aafc038197ec6bae2b4470e869bded", + "9dd0d3a3d514c2a8adb162b81e3adfba3299309f7d2018f607bdb15b1a25f499", + "046b738de3398b6ac57b9591f9d7985dd4f32137ad3460dcf8970c1390cb9eaf8d83bc61" + "e26d2bbbd3cf2d2ab445a2bc4ab5dde41f4a13078fd1d3cc36ab596d57", + "9106192170ccb3c64684d48287bb81bbed51b40d503462c900e5c7aae43e380a", + "275fa760878b4dc05e9d157fedfd8e9b1c9c861222a712748cb4b7754c043fb1", + "699d906bb8435a05345af3b37e3b357786939e94caae257852f0503adb1e0f7e"}, + {NID_X9_62_prime256v1, NID_sha512, + "7e3c8fe162d48cc8c5b11b5e5ebc05ebc45c439bdbc0b0902145921b8383037cb0812222" + "031598cd1a56fa71694fbd304cc62938233465ec39c6e49f57dfe823983b6923c4e86563" + "3949183e6b90e9e06d8275f3907d97967d47b6239fe2847b7d49cf16ba69d2862083cf1b" + "ccf7afe34fdc90e21998964107b64abe6b89d126", + "f9bf909b7973bf0e3dad0e43dcb2d7fa8bda49dbe6e5357f8f0e2bd119be30e6", + "04f2a6674d4e86152a527199bed293fa63acde1b4d8a92b62e552210ba45c38792c72565" + "c24f0eee6a094af341ddd8579747b865f91c8ed5b44cda8a19cc93776f", + "e547791f7185850f03d0c58419648f65b9d29cdc22ed1de2a64280220cfcafba", + "4782903d2aaf8b190dab5cae2223388d2d8bd845b3875d37485c54e1ded1d3d8", + "dfb40e406bfa074f0bf832771b2b9f186e2211f0bca279644a0ca8559acf39da"}, + {NID_X9_62_prime256v1, NID_sha512, + "d5aa8ac9218ca661cd177756af6fbb5a40a3fecfd4eea6d5872fbb9a2884784aa9b5f0c0" + "23a6e0da5cf6364754ee6465b4ee2d0ddc745b02994c98427a213c849537da5a4477b3ab" + "fe02648be67f26e80b56a33150490d062aaac137aa47f11cfeddba855bab9e4e028532a5" + "63326d927f9e6e3292b1fb248ee90b6f429798db", + "724567d21ef682dfc6dc4d46853880cfa86fe6fea0efd51fac456f03c3d36ead", + "0470b877b5e365fcf08140b1eca119baba662879f38e059d074a2cb60b03ea5d395f56f9" + "4d591df40b9f3b8763ac4b3dbe622c956d5bd0c55658b6f46fa3deb201", + "79d6c967ed23c763ece9ca4b026218004c84dc2d4ccc86cf05c5d0f791f6279b", + "2ba2ea2d316f8937f184ad3028e364574d20a202e4e7513d7af57ac2456804d1", + "64fe94968d18c5967c799e0349041b9e40e6c6c92ebb475e80dd82f51cf07320"}, + {NID_X9_62_prime256v1, NID_sha512, + "790b06054afc9c3fc4dfe72df19dd5d68d108cfcfca6212804f6d534fd2fbe489bd8f64b" + "f205ce04bcb50124a12ce5238fc3fe7dd76e6fa640206af52549f133d593a1bfd423ab73" + "7f3326fa79433cde293236f90d4238f0dd38ed69492ddbd9c3eae583b6325a95dec3166f" + "e52b21658293d8c137830ef45297d67813b7a508", + "29c5d54d7d1f099d50f949bfce8d6073dae059c5a19cc70834722f18a7199edd", + "043088d4f45d274cc5f418c8ecc4cbcf96be87491f420250f8cbc01cdf2503ec47634db4" + "8198129237ed068c88ff5809f6211921a6258f548f4b64dd125921b78b", + "0508ad7774908b5705895fda5c3b7a3032bf85dab7232bf981177019f3d76460", + "acd9f3b63626c5f32103e90e1dd1695907b1904aa9b14f2132caef331321971b", + "15c04a8bd6c13ed5e9961814b2f406f064670153e4d5465dcef63c1d9dd52a87"}, + {NID_X9_62_prime256v1, NID_sha512, + "6d549aa87afdb8bfa60d22a68e2783b27e8db46041e4df04be0c261c4734b608a96f198d" + "1cdb8d082ae48579ec9defcf21fbc72803764a58c31e5323d5452b9fb57c8991d3174914" + "0da7ef067b18bf0d7dfbae6eefd0d8064f334bf7e9ec1e028daed4e86e17635ec2e409a3" + "ed1238048a45882c5c57501b314e636b9bc81cbe", + "0d8095da1abba06b0d349c226511f642dabbf1043ad41baa4e14297afe8a3117", + "0475a45758ced45ecf55f755cb56ca2601d794ebeaeb2e6107fe2fc443f580e23c5303d4" + "7d5a75ec821d51a2ee7548448208c699eca0cd89810ffc1aa4faf81ead", + "5165c54def4026ab648f7768c4f1488bcb183f6db7ffe02c7022a529a116482a", + "ebc85fc4176b446b3384ccc62fc2526b45665561a0e7e9404ac376c90e450b59", + "8b2c09428e62c5109d17ed0cf8f9fd7c370d018a2a73f701effc9b17d04852c6"}, + {NID_X9_62_prime256v1, NID_sha512, + "1906e48b7f889ee3ff7ab0807a7aa88f53f4018808870bfed6372a77330c737647961324" + "c2b4d46f6ee8b01190474951a701b048ae86579ff8e3fc889fecf926b17f98958ac7534e" + "6e781ca2db2baa380dec766cfb2a3eca2a9d5818967d64dfab84f768d24ec122eebacaab" + "0a4dc3a75f37331bb1c43dd8966cc09ec4945bbd", + "52fe57da3427b1a75cb816f61c4e8e0e0551b94c01382b1a80837940ed579e61", + "042177e20a2092a46667debdcc21e7e45d6da72f124adecbc5ada6a7bcc7b401d5550e46" + "8f2626070a080afeeb98edd75a721eb773c8e62149f3e903cf9c4d7b61", + "0464fe9674b01ff5bd8be21af3399fad66f90ad30f4e8ee6e2eb9bcccfd5185c", + "f8250f073f34034c1cde58f69a85e2f5a030703ebdd4dbfb98d3b3690db7d114", + "a9e83e05f1d6e0fef782f186bedf43684c825ac480174d48b0e4d31505e27498"}, + {NID_X9_62_prime256v1, NID_sha512, + "7b59fef13daf01afec35dea3276541be681c4916767f34d4e874464d20979863ee77ad0f" + "d1635bcdf93e9f62ed69ae52ec90aab5bbf87f8951213747ccec9f38c775c1df1e9d7f73" + "5c2ce39b42edb3b0c5086247556cfea539995c5d9689765288ec600848ecf085c01ca738" + "bbef11f5d12d4457db988b4add90be00781024ad", + "003d91611445919f59bfe3ca71fe0bfdeb0e39a7195e83ac03a37c7eceef0df2", + "047b9c592f61aae0555855d0b9ebb6fd00fb6746e8842e2523565c858630b9ba00d35b2e" + "168b1875bbc563bea5e8d63c4e38957c774a65e762959a349eaf263ba0", + "ef9df291ea27a4b45708f7608723c27d7d56b7df0599a54bc2c2fabbff373b40", + "66d057fd39958b0e4932bacd70a1769bbadcb62e4470937b45497a3d4500fabb", + "6c853b889e18b5a49ee54b54dd1aaedfdd642e30eba171c5cab677f0df9e7318"}, + {NID_X9_62_prime256v1, NID_sha512, + "041a6767a935dc3d8985eb4e608b0cbfebe7f93789d4200bcfe595277ac2b0f402889b58" + "0b72def5da778a680fd380c955421f626d52dd9a83ea180187b850e1b72a4ec6dd63235e" + "598fd15a9b19f8ce9aec1d23f0bd6ea4d92360d50f951152bc9a01354732ba0cf90aaed3" + "3c307c1de8fa3d14f9489151b8377b57c7215f0b", + "48f13d393899cd835c4193670ec62f28e4c4903e0bbe5817bf0996831a720bb7", + "0482a1a96f4648393c5e42633ecdeb1d8245c78c5ea236b5bab460dedcc8924bc0e8cbf0" + "3c34b5154f876de19f3bb6fd43cd2eabf6e7c95467bcfa8c8fc42d76fd", + "efed736e627899fea944007eea39a4a63c0c2e26491cd12adb546be3e5c68f7d", + "cf7fc24bdaa09ac0cca8497e13298b961380668613c7493954048c06385a7044", + "f38b1c8306cf82ab76ee3a772b14416b49993fe11f986e9b0f0593c52ec91525"}, + {NID_X9_62_prime256v1, NID_sha512, + "7905a9036e022c78b2c9efd40b77b0a194fbc1d45462779b0b76ad30dc52c564e48a493d" + "8249a061e62f26f453ba566538a4d43c64fb9fdbd1f36409316433c6f074e1b47b544a84" + "7de25fc67d81ac801ed9f7371a43da39001c90766f943e629d74d0436ba1240c3d7fab99" + "0d586a6d6ef1771786722df56448815f2feda48f", + "95c99cf9ec26480275f23de419e41bb779590f0eab5cf9095d37dd70cb75e870", + "0442c292b0fbcc9f457ae361d940a9d45ad9427431a105a6e5cd90a345fe3507f7313b08" + "fd2fa351908b3178051ee782cc62b9954ad95d4119aa564900f8ade70c", + "4c08dd0f8b72ae9c674e1e448d4e2afe3a1ee69927fa23bbff3716f0b99553b7", + "f2bc35eb1b8488b9e8d4a1dbb200e1abcb855458e1557dc1bf988278a174eb3b", + "ed9a2ec043a1d578e8eba6f57217976310e8674385ad2da08d6146c629de1cd9"}, + {NID_X9_62_prime256v1, NID_sha512, + "cf25e4642d4f39d15afb7aec79469d82fc9aedb8f89964e79b749a852d931d3743650280" + "4e39555f5a3c75dd958fd5291ada647c1a5e38fe7b1048f16f2b711fdd5d39acc0812ca6" + "5bd50d7f8119f2fd195ab16633503a78ee9102c1f9c4c22568e0b54bd4fa3f5ff7b49160" + "bf23e7e2231b1ebebbdaf0e4a7d4484158a87e07", + "e15e835d0e2217bc7c6f05a498f20af1cd56f2f165c23d225eb3360aa2c5cbcf", + "0489dd22052ec3ab4840206a62f2270c21e7836d1a9109a3407dd0974c7802b9aee91609" + "ba35c7008b080c77a9068d97a14ca77b97299e74945217672b2fd5faf0", + "c9f621441c235fc47ec34eef4c08625df1ec74918e1f86075b753f2589f4c60b", + "a70d1a2d555d599bfb8c9b1f0d43725341151d17a8d0845fa56f3563703528a7", + "4e05c45adf41783e394a5312f86e66871c4be4896948c85966879d5c66d54b37"}, + {NID_X9_62_prime256v1, NID_sha512, + "7562c445b35883cc937be6349b4cefc3556a80255d70f09e28c3f393daac19442a7eeced" + "cdfbe8f7628e30cd8939537ec56d5c9645d43340eb4e78fc5dd4322de8a07966b262770d" + "7ff13a071ff3dce560718e60ed3086b7e0003a6abafe91af90af86733ce8689440bf73d2" + "aa0acfe9776036e877599acbabfcb03bb3b50faa", + "808c08c0d77423a6feaaffc8f98a2948f17726e67c15eeae4e672edbe388f98c", + "04b0c0ad5e1f6001d8e9018ec611b2e3b91923e69fa6c98690ab644d650f640c42610539" + "c0b9ed21ac0a2f27527c1a61d9b47cbf033187b1a6ada006eb5b2662ed", + "1f6d4a905c761a53d54c362976717d0d7fc94d222bb5489e4830080a1a67535d", + "83404dcf8320baf206381800071e6a75160342d19743b4f176960d669dd03d07", + "3f75dcf102008b2989f81683ae45e9f1d4b67a6ef6fd5c8af44828af80e1cfb5"}, + {NID_X9_62_prime256v1, NID_sha512, + "051c2db8e71e44653ea1cb0afc9e0abdf12658e9e761bfb767c20c7ab4adfcb18ed9b5c3" + "72a3ac11d8a43c55f7f99b33355437891686d42362abd71db8b6d84dd694d6982f061217" + "8a937aa934b9ac3c0794c39027bdd767841c4370666c80dbc0f8132ca27474f553d266de" + "efd7c9dbad6d734f9006bb557567701bb7e6a7c9", + "f7c6315f0081acd8f09c7a2c3ec1b7ece20180b0a6365a27dcd8f71b729558f9", + "04250f7112d381c1751860045d9bcaf20dbeb25a001431f96ac6f19109362ffebb49fba9" + "efe73546135a5a31ab3753e247034741ce839d3d94bd73936c4a17e4aa", + "68c299be2c0c6d52d208d5d1a9e0ffa2af19b4833271404e5876e0aa93987866", + "7b195e92d2ba95911cda7570607e112d02a1c847ddaa33924734b51f5d81adab", + "10d9f206755cef70ab5143ac43f3f8d38aea2644f31d52eaf3b472ee816e11e5"}, + {NID_X9_62_prime256v1, NID_sha512, + "4dcb7b62ba31b866fce7c1feedf0be1f67bf611dbc2e2e86f004422f67b3bc1839c6958e" + "b1dc3ead137c3d7f88aa97244577a775c8021b1642a8647bba82871e3c15d0749ed343ea" + "6cad38f123835d8ef66b0719273105e924e8685b65fd5dc430efbc35b05a6097f17ebc59" + "43cdcd9abcba752b7f8f37027409bd6e11cd158f", + "f547735a9409386dbff719ce2dae03c50cb437d6b30cc7fa3ea20d9aec17e5a5", + "044ca87c5845fb04c2f76ae3273073b0523e356a445e4e95737260eba9e2d021db0f8647" + "5d07f82655320fdf2cd8db23b21905b1b1f2f9c48e2df87e24119c4880", + "91bd7d97f7ed3253cedefc144771bb8acbbda6eb24f9d752bbe1dd018e1384c7", + "008c1755d3df81e64e25270dbaa9396641556df7ffc7ac9add6739c382705397", + "77df443c729b039aded5b516b1077fecdd9986402d2c4b01734ba91e055e87fc"}, + {NID_X9_62_prime256v1, NID_sha512, + "efe55737771070d5ac79236b04e3fbaf4f2e9bed187d1930680fcf1aba769674bf426310" + "f21245006f528779347d28b8aeacd2b1d5e3456dcbf188b2be8c07f19219e4067c1e7c97" + "14784285d8bac79a76b56f2e2676ea93994f11eb573af1d03fc8ed1118eafc7f07a82f32" + "63c33eb85e497e18f435d4076a774f42d276c323", + "26a1aa4b927a516b661986895aff58f40b78cc5d0c767eda7eaa3dbb835b5628", + "0428afa3b0f81a0e95ad302f487a9b679fcdef8d3f40236ec4d4dbf4bb0cbba8b2bb4ac1" + "be8405cbae8a553fbc28e29e2e689fabe7def26d653a1dafc023f3cecf", + "f98e1933c7fad4acbe94d95c1b013e1d6931fa8f67e6dbb677b564ef7c3e56ce", + "15a9a5412d6a03edd71b84c121ce9a94cdd166e40da9ce4d79f1afff6a395a53", + "86bbc2b6c63bad706ec0b093578e3f064736ec69c0dba59b9e3e7f73762a4dc3"}, + {NID_X9_62_prime256v1, NID_sha512, + "ea95859cc13cccb37198d919803be89c2ee10befdcaf5d5afa09dcc529d333ae1e4ffd3b" + "d8ba8642203badd7a80a3f77eeee9402eed365d53f05c1a995c536f8236ba6b6ff889739" + "3506660cc8ea82b2163aa6a1855251c87d935e23857fe35b889427b449de7274d7754bde" + "ace960b4303c5dd5f745a5cfd580293d6548c832", + "6a5ca39aae2d45aa331f18a8598a3f2db32781f7c92efd4f64ee3bbe0c4c4e49", + "04c62cc4a39ace01006ad48cf49a3e71466955bbeeca5d318d672695df926b3aa4c85ccf" + "517bf2ebd9ad6a9e99254def0d74d1d2fd611e328b4a3988d4f045fe6f", + "dac00c462bc85bf39c31b5e01df33e2ec1569e6efcb334bf18f0951992ac6160", + "6e7ff8ec7a5c48e0877224a9fa8481283de45fcbee23b4c252b0c622442c26ad", + "3dfac320b9c873318117da6bd856000a392b815659e5aa2a6a1852ccb2501df3"}, + {NID_secp384r1, NID_sha224, + "39f0b25d4c15b09a0692b22fbacbb5f8aee184cb75887e2ebe0cd3be5d3815d29f9b587e" + "10b3168c939054a89df11068e5c3fac21af742bf4c3e9512f5569674e7ad8b39042bcd73" + "e4b7ce3e64fbea1c434ed01ad4ad8b5b569f6a0b9a1144f94097925672e59ba97bc4d33b" + "e2fa21b46c3dadbfb3a1f89afa199d4b44189938", + "0af857beff08046f23b03c4299eda86490393bde88e4f74348886b200555276b93b37d4f" + "6fdec17c0ea581a30c59c727", + "0400ea9d109dbaa3900461a9236453952b1f1c2a5aa12f6d500ac774acdff84ab7cb71a0" + "f91bcd55aaa57cb8b4fbb3087d0fc0e3116c9e94be583b02b21b1eb168d8facf39552793" + "60cbcd86e04ee50751054cfaebcf542538ac113d56ccc38b3e", + "e2f0ce83c5bbef3a6eccd1744f893bb52952475d2531a2854a88ff0aa9b12c65961e2e51" + "7fb334ef40e0c0d7a31ed5f5", + "c36e5f0d3de71411e6e519f63e0f56cff432330a04fefef2993fdb56343e49f2f7db5fca" + "b7728acc1e33d4692553c02e", + "0d4064399d58cd771ab9420d438757f5936c3808e97081e457bc862a0c905295dca60ee9" + "4f4537591c6c7d217453909b"}, + {NID_secp384r1, NID_sha224, + "5a3c80e608ed3ac75a6e45f6e94d374271a6d42b67a481860d5d309cc8b37c79cb61f171" + "6dc8aa84cb309ef9d68eb7fc6cf4b42333f316a5c30e74198c8b340926e340c5de47674a" + "707293c4aa2a1a2274a602f01c26b156e895499c60b38ef53fc2032e7485c168d73700d6" + "fa14232596a0e4997854a0b05d02e351b9d3de96", + "047dd5baab23f439ec23b58b7e6ff4cc37813cccb4ea73bb2308e6b82b3170edfe0e131e" + "ca50841bf1b686e651c57246", + "04de92ff09af2950854a70f2178d2ed50cc7042a7188301a1ea81d9629ad3c29795cb7f0" + "d56630a401e4d6e5bed0068d1e6135adbd8624130735e64e65ecbd43770dcc12b28e737b" + "5ed033666f34c918eb5589508e4a13b9243374a118a628dd0b", + "f3922351d14f1e5af84faab12fe57ded30f185afe5547aeb3061104740ecc42a8df0c27f" + "3877b4d855642b78938c4e05", + "38e181870cb797c1f4e6598cfd032add1cb60447d33473038d06df73919f844eddd16f40" + "f911075f8a4bacc0d924e684", + "a58dd1ca18aa31277de66c30c3bb7a14b53705ce6c547ed2cb0e336f63c42809422efffc" + "c722d1155f2254330a02b278"}, + {NID_secp384r1, NID_sha224, + "e7d974c5dbd3bfb8a2fb92fdd782f997d04be79e9713944ce13c5eb6f75dfdec811b7ee4" + "b3859114b07f263846ae13f795eec8f3cb5b7565baff68e0fdd5e09ba8b176d5a71cb03f" + "bc5546e6937fba560acb4db24bd42de1851432b96e8ca4078313cb849bce29c9d8052586" + "01d67cd0259e255f3048682e8fdbdda3398c3e31", + "54ba9c740535574cebc41ca5dc950629674ee94730353ac521aafd1c342d3f8ac52046ed" + "804264e1440d7fe409c45c83", + "043db95ded500b2506b627270bac75688dd7d44f47029adeff99397ab4b6329a38dbb278" + "a0fc58fe4914e6ae31721a6875049288341553a9ac3dc2d9e18e7a92c43dd3c25ca866f0" + "cb4c68127bef6b0e4ba85713d27d45c7d0dc57e5782a6bf733", + "04324bd078807f6b18507a93ee60da02031717217ee5ce569750737be912be72da087ac0" + "0f50e13fdf7249a6ae33f73e", + "b2752aa7abc1e5a29421c9c76620bcc3049ecc97e6bc39fcca126f505a9a1bfae3bde89f" + "b751a1aa7b66fa8db3891ef0", + "f1c69e6d818ca7ae3a477049b46420cebd910c0a9a477fd1a67a38d628d6edaac123aebf" + "ca67c53a5c80fe454dba7a9d"}, + {NID_secp384r1, NID_sha224, + "a670fda4d1d56c70de1d8680328043b2b7029633caf0ee59ffe1421c914bb937133d5a0f" + "9214846b2e0b350455a74c4ab434c56de65a17139bb8212bf1c76071a37536fa29348f87" + "1dbb26baa92eb93d97e923a6d2ffd9be25cbc33075e494e6db657bd8dc053fe4e17148d8" + "cf6e2058164f2b5766750eb01bbe7b361cdb848c", + "dabe87bbe95499bac23bc83c8b7307fe04be198f00059e2bf67c9611feaffb2c8f274f6a" + "a50eb99c3074186d8067d659", + "04c2aa0a695125279705917e02a4f258cade4c3ff9140a071414babf87764f426f7f36ff" + "da9d5f3394375d24864235476f8f9808da0ce0227cf453f9e456f557db9752e23b45cce4" + "baad5fee3844ddd7e1112bcec01ea9d67c7a76f3535bd0cb58", + "65a0305854033cbc6fe3ca139c40ca354d45801ecb59f4a923c251dc6b25d12d452d99b5" + "d6711fdb5efac812aa464cc4", + "c7fc32997d17ac79baf5789e4503f5f1a8863872bc350a91f12dd3ef8cf78c254e829217" + "809e8e00b6b8d4d85be3f1fd", + "1422e1838a22496df93486bce1142961dbd8478ae844b8dda54e210afdae0d9e930d587c" + "91bb600b0bde7237186d94e6"}, + {NID_secp384r1, NID_sha224, + "7843f918fe2588bcfe756e1f05b491d913523255aa006818be20b676c957f4edb8df863c" + "6f5f8c15b3b80c7a2aa277b70d53f210bdfb856337980c406ea140e439dd321471407f37" + "4f69877b2d82367eed51e3c82c13948616dcb301d0c31f8f0352f2846abd9e72071f446a" + "2f1bd3339a09ae41b84e150fd18f4ba5d3c6bfa0", + "df43107a1deb24d02e31d479087bd669e2bc3e50f1f44b7db9484a7143cdca6a3391bddf" + "ea72dc940dbce8ec5efbd718", + "0476bd4be5d520471162cb5c36f80038301b325f845d9642204a84d78b3e721098932827" + "bf872bde0a9f86383953667d29415116b8b878f896a5aa4dbbdc21076f27135d8bbcaaca" + "02489ef639d742bd63f377da0c8e8ab36ff19b4a7cc5d4ceb4", + "798abad5a30d1805794540057388ee05e2422901c6335f985b9d4447b3ef75524751abfe" + "ab6409ad6bf77d4ae3014558", + "98744e5c6742fa5118a74a70db4957647a3cc12add4e876b45974a6a8707809f871daadb" + "fc0b865e01624f706b65f10c", + "9e256e8da8eff5a0c83baaa1ef4f7be798eba9543bf97adb0fff8719f5406ea1207a0cf7" + "03d99aa8f02169724b492273"}, + {NID_secp384r1, NID_sha224, + "caa83d5ab07febbd2e0fe2d63738b9b7b8752594bea7aaf50345b3d2f316653a8c9222f2" + "b7877b64679e9573e81461a426029e45b8873a575094a1d572e0d32a9f0a9c6bcb9a2868" + "543b7d8bbe4a69a09e7321f05f8366cced1b72df526f895b60aed2c39c249653c7839538" + "770d4e5f47d3926ec0d168ab6a1af15bf1dca1f7", + "ea7a563ba2a7f5ab69973dca1f1a0d1572f0c59817cd3b62ad356c2099e2cdca1c553323" + "563f9dfbb333b126d84abc7f", + "04cf4717c5f5de668b785f06bdc9845df5a09e4edd83f4669756407cbb60807305c632bc" + "49f818f4a84b194369aa07736f7391e4982af8a2218f704f627d01f0508bfc8304992a2d" + "598a420bf2eb519f33bd7caf79380793733b3dba0cc5e2b9d8", + "7b9606b3df7b2a340dbc68d9754de0734e1faeb5a0135578a97628d948702235c60b20c8" + "002c8fcf906783e1b389e754", + "0d680010bed373287f9767955b5d2850e150b6713b49e453eb280148e45230c853d99ea2" + "d2f8fcbd3ddcba19aeec0af1", + "64329763a930ab5452afdb0557fef16ff71810d6343dfc9c6ae18905c3d274db6554cdc6" + "9d6078a1ca03284474a94f30"}, + {NID_secp384r1, NID_sha224, + "594603458d6534974aeeafba919c4d0f4cb6843a3af41204bbb88aeb2fca2772d305163d" + "ba863da050aabedbaf89db521955d1715de95bbcef979ecdc0c976181ece00355385f8a8" + "f8cce127c9eac15ce3e958a3ed686184674ec9a50eb63271606ee7fdcb1323da3c3db8e8" + "9cad1fb42139a32d08abcfbf0d4ccfca18c89a86", + "4cc70cb35b3ddeb0df53a6bd7bd05f8ff4392a2db7344f2d443761484b3a468a4ee3d1a8" + "b27113d57283fd18b05f7829", + "0440e1fe21df34bb85a642a0abe819ebd128f7e39b84d8dcc4a9a599b372fb9588da1484" + "600ec28b1297bb685f9ae77831f3aa69ada57879fdcbe8df19cefabc308add7d03b17b1f" + "ac2f7783fece6a8dfe20bc36f518692677d96e3f730a67a671", + "8eda401d98f5688c34d8dbebcd3991c87c0442b0379154eaa2e5287dabe9a9e34cfc1305" + "d11ff68781df25d5611b331d", + "ff2d772786e159448bba26afd8c3281941a4cb0c56fec6f5cccb4c292c4ee0f7af9bd39b" + "be2d88148732585e104fdb30", + "07a1d890770daa949a17797dca7af3e8163da981ec330c03d63d1a8312c152be6a718163" + "205ffa08da7dcc163ba261f4"}, + {NID_secp384r1, NID_sha224, + "733252d2bd35547838be22656cc7aa67eff0af0b13b428f77267a513c6824c3dbae53306" + "8b6817e82665f009560affcfe4b2ddb5b667a644fc1a42d24f24e0947e0dc50fb62c919b" + "c1fe4e7ded5e28f2e6d80fcf66a081fb2763526f8def5a81a4ddd38be0b59ee839da1643" + "eeeaee7b1927cec12cf3da67c02bc5465151e346", + "366d15e4cd7605c71560a418bd0f382fd7cd7ad3090ff1b2dfbed74336166a905e1b760c" + "f0bccee7a0e66c5ebfb831f1", + "04a143f277ab36a10b645ff6c58241ea67ffdc8acf12d60973068390f06b4d8f4d773b10" + "c1ebf6889b1cfa73ebb90f6ca17a17cad29bb507b309021f6f92cb5c10ba535f4a3e317f" + "cc68cfd02d3ccd269f465169c73d30ff308f5350d881b08aec", + "dbe545f920bc3d704c43d834bab21e40df12ec9e16a619a3e6b3f08760c26aae6e4fd91f" + "ad00f745194794b74bb1baee", + "cdc39b12bba30da66fe9554713c05880ddc27afa4d2d151440f124c351fb9496dc950465" + "16b0921083347d64369846ac", + "797d0344e49f9ba87a187c50f664e5015d449e346b1a7bd9427c5be559fc58173651880d" + "5aadf053f81899d3368d6181"}, + {NID_secp384r1, NID_sha224, + "5a182bd174feb038dfae3346267156bf663167f713dea1ce936b0edb815cd9b8c8e4d411" + "c786ba2494a81442617255db7158b142e720d86c9b56680fb9efd4298cdd69079a281534" + "94c42a24251c7ad42ecf7e97eabc1b3997529b2a297cbad2474269b87a0b1e385f2d7f8b" + "6eb8d1cd75eaf7e91d1acbecd45d7b2bfbbe3216", + "e357d869857a52a06e1ece5593d16407022354780eb9a7cb8575cef327f877d22322c006" + "b3c8c11e3d7d296a708bdb6d", + "04ce9a2185a68d6094aa5849a6efe78b349946f7380f0c79aa9664246cfcc71a879e90ad" + "78a0474f58644c6a208168150e8354fa47673cb3e07d446521345706c5515584b2602f92" + "1c3b9c44dded9e2c3f90ce47adb36d7e5f9f95a8c5ad8af397", + "1e77367ac4e10924854d135ad2f2507f39e2bafdbce33ff256bcbe9a7329b8d27185218b" + "cc3550aafbe3390e84c77292", + "df3182d49ad70959fb0c95bc7312750ce70fc87f1a328d39d9b29ac05d31305ce7209d6c" + "24d13225d9567b489f7a187b", + "d812b05abab0e96de13291e1f0da6479444ed5cd9d959b76f6cb43d394769035364f7c83" + "1a104dc7b5bd9b4a8e64df64"}, + {NID_secp384r1, NID_sha224, + "aaa99fb1c71340d785a18f6f668e898c25cf7a0ac31d13c5b388b7233408493a5a109af6" + "d07065376b96f4903df7aba2b2af671a18772bb0472490d1240cde28967680727dd4acd4" + "7e0308920a75da857a6eeedee5b6586d45dff3d8a680599665aa895c89dd7770b824b7de" + "e477ac5e7602d409d3cc553090c970b50811dbab", + "745a18db47324a3710b993d115b2834339315e84e7006eafd889fb49bd3cc5a8b50c9052" + "6e65e6c53bddd2916d14bead", + "04f692578c6f77531210aef55c9e004ce3b66cf268c6900dde31a8bbb76e7562e3fb7624" + "2de34ca330d2501030aa11946640965833b28de926c46de060aa25beaeda98f8415a6b1e" + "3564aa77870cf4c89bd4fde92c8f5d9bf0eb41721586859d8e", + "11b9b36720abcac084efdb44c9f5b7d039e3250cb1e9c47850189ba3cfc1489d858b2a44" + "df357772b61d919c7e729c0f", + "02b252c99820cf50e6ce060ab55bd4f682276e29b4ae4197417432e6a7bfb8cf0bac89df" + "e105456af805d822cee77696", + "8e248bbf7d7028d63177e565c9d1666ee5be4d1ffbfffc9c7814b0cd38f74b98f3f2cd59" + "be42b9f132bfe5ee789cd96c"}, + {NID_secp384r1, NID_sha224, + "1fadfa8254d3a0b82d137cfdd82043d5dc1fef195d5297b09cc5cfb061f59c933451c0dc" + "2a11b4037f34f88dacb803251f8880c4b72585c3c196e6fb23484ca43a191f8e41b9b9a3" + "7e2e6fcaab6738c3c62d1c98e1c620bb788b7b51a04f998a510efdba0d3418622fe8ce20" + "3b3fcd553b9b4206365a39031797ad11e49745ec", + "93f20963ea5011ff4f26481e359309e634195f6289134087bd2e83eee008c962780a6797" + "84ee7ac6acda03d663ed27e0", + "040edcde3533ea019e18f1a3cd97b7962e8823dda36c389f8f9287549f796d11376392b8" + "a01c7a80f127a8f75795e04f5463d7c458dccfc02f5148d755d59f9bbc8e3c3ea3490877" + "7928440747795955741296abcdd5386676419ed8049fedb489", + "3ad308faf04c42ee5ac69d36bc0aa9a96aacf55ea0f27dac4f52e088f023d206340a6324" + "874ffad169ff80624de24c96", + "209b72f9aae72c4339813573c3a8408a9e0be641ca863d81d9d14c48d0bf4cd44a1a7985" + "cff07b5d68f3f9478475645b", + "f6292e599b22a76eda95393cf59f4745fa6c472effd1f781879ad9a4437a98080b0b07da" + "dad0c249631c682d2836a977"}, + {NID_secp384r1, NID_sha224, + "9ecb6f5ed3ba666a8536a81ef65012c2cb8b433508798d84708abb06dfb75503886f7838" + "4fb8c7a4d2d49ef539d9b8a0b60938c7f07471dda91f258b0d99691b38a8403a2bb3f956" + "bdfd09baba16d9b6877097a9b6213481b47a06e139d23ec7abad5668d21f912fdb70d31b" + "b9adf9b3ce80e308252fa81a51674f88d02db72b", + "f175e6ac42fd48ec9d652c10707c039c67c4cc61d8c45a373dcda6e4ca6c53e947e49c24" + "e01b48e7cdf92edfe6d316a1", + "04a40c64f595491ce15790a5a87fbe64c1800247b42acd08fe5257700719f46afc8acce0" + "e4ede0517a312092d5e3d089cdd565df9dc2f381cc0c5d84f382a43a98018524c0b4708a" + "44b3e2817f9719f29fbf9c15803591ed9b4790c5adaba9f433", + "812dcaa6d4f9a43ccc553288065d13761581485aa903a500a690ccafbd330ba4818c977b" + "98c4bb57f8a182a1afacfae9", + "d000f18d3e4c162ff0d16f662e6703e7a6f5bff7a333ed266fa4f44c752415946c34945c" + "342c20f739677186b1d80ab3", + "ae7f1271c89e0aaa238710d039ea73a69110cc28fcf426f2fe6754b63a59e417fa84f903" + "cf7dccb5468b43ff083bbfd5"}, + {NID_secp384r1, NID_sha224, + "e55bfca78d98e68d1b63688db12485578f36c489766f4d0bfaa0088433ff12133aaca455" + "805095f2e655940860958b3ead111d9070778ee3bbf3e47e43d9eba8b8d9b1fdf72f793f" + "cde2bcaa334f3e35fa2cca531ea7cf27fe9ccba741e38ac26129b2d612bf54a34e0ae6c1" + "66c0fef07fcd2b9ac253d7e041a500f7be7b8369", + "46c4f0b228b28aaa0ec8cfdf1d0ed3408b7ae049312fb9eaf5f3892720e68684cc8ad298" + "44a3dc9d110edf6916dfb8bb", + "0413ddec844731b7e30c467451df08ca11d6c581cb64abd8a257671cffd26f5ccad4df7b" + "9ee8924047a88a5d2d7567609cd74ca94f590fd1d13e190cc1e03c3da6c3faab15c7dda0" + "34af3deefee8aeec3628fa8b1978c54cfcd071baa319a46ec0", + "2a9dd520207c40a379cd4036adef9ee60fa8bc8c0d39b3ad91850ac93fd543f218b16885" + "81f23481a090b0e4c73792ac", + "94e08cca20fe3866f643f53ec65faf3f2b4d80cd9bcc8ff8f88bb28da9eada324fc2d048" + "908dd3d08a9e0ebb547731bc", + "8e6f82c4d3069b14f4c844b4ca133a9503493265c9f77a7d4775eda67de76798a23dd7ea" + "48e0ac3c337dd62bf058319d"}, + {NID_secp384r1, NID_sha224, + "02c6b3c83bd34b288d96409162aa4ff114e9d134bf948046eb5ebcc0c7fe9dfceadda83e" + "d69da2fac00c8840f6c702a3fc5e6959d70f7e8af923e99e4937232ae3b841ffefd2e62f" + "ab3671a7c94a0281b8ea5bc176add57c5c9b6893fe7f5d48ce7256b96510810c4e046168" + "a3c5be9843b84d5268a50349b3444341aa5490dd", + "1d7b71ef01d0d33a8513a3aed3cabb83829589c8021087a740ca65b570777089be721a61" + "172b874a22a1f81aef3f8bb6", + "048d2721370df8f097d5a69396249a315f6037dc7045b3da11eacae6d43036f779d5de70" + "53d101768b42cc2b1283a3aaeaa046039ae662141f9954d278183eaa2e03917fe58583e3" + "2d344074d59d60caa5b0949c53066525d5cca923e2f201502e", + "d1b25ad25581cad17e96f1d302251681fee5b2efbb71c3c15ff035b2145d015d18e0e52d" + "c3187ab5a560277b3a3929b0", + "d836f52b14c7391744868daa2d5cf27eb9380b9b6176195573d5b04842e9f2fc3794d6cf" + "877feafee63d11b05f6a6bee", + "8b89042fef2c04d4bd6c9d66a06a010514321d623a5f8d57ba5ac3686872eaabca9e0ba2" + "d058ae7028e870acf03ca32d"}, + {NID_secp384r1, NID_sha224, + "94f8bfbb9dd6c9b6193e84c2023a27dea00fd48356909faec2161972439686c146184f80" + "686bc09e1a698af7df9dea3d24d9e9fd6d7348a146339c839282cf8984345dc6a51096d7" + "4ad238c35233012ad729f262481ec7cd6488f13a6ebac3f3d23438c7ccb5a66e2bf820e9" + "2b71c730bb12fd64ea1770d1f892e5b1e14a9e5c", + "cf53bdd4c91fe5aa4d82f116bd68153c907963fa3c9d478c9462bb03c79039493a8eaeb8" + "55773f2df37e4e551d509dcd", + "043a65b26c08102b44838f8c2327ea080daf1e4fc45bb279ce03af13a2f9575f0fff9e2e" + "4423a58594ce95d1e710b590cefe9dcbcb2ec6e8bd8ed3af3ff0aa619e900cc8bab3f50f" + "6e5f79fac09164fb6a2077cc4f1fed3e9ec6899e91db329bf3", + "df31908c9289d1fe25e055df199591b23e266433ab8657cc82cb3bca96b88720e229f8df" + "d42d8b78af7db69342430bca", + "6770eea9369d6718e60dd0b91aee845ff7ed7e0fcc91675f56d32e5227fd3a4612bbcb15" + "56fe94a989b9e3bcc25bb20e", + "c43072f706c98126d06a82b04251e3ecb0ba66c4bb6cd7c025919b9cc6019cdc635256d2" + "a7fa017b806b1e88649d2c0d"}, + {NID_secp384r1, NID_sha256, + "663b12ebf44b7ed3872b385477381f4b11adeb0aec9e0e2478776313d536376dc8fd5f3c" + "715bb6ddf32c01ee1d6f8b731785732c0d8441df636d8145577e7b3138e43c32a61bc124" + "2e0e73d62d624cdc924856076bdbbf1ec04ad4420732ef0c53d42479a08235fcfc4db4d8" + "69c4eb2828c73928cdc3e3758362d1b770809997", + "c602bc74a34592c311a6569661e0832c84f7207274676cc42a89f058162630184b52f0d9" + "9b855a7783c987476d7f9e6b", + "040400193b21f07cd059826e9453d3e96dd145041c97d49ff6b7047f86bb0b0439e90927" + "4cb9c282bfab88674c0765bc75f70d89c52acbc70468d2c5ae75c76d7f69b76af62dcf95" + "e99eba5dd11adf8f42ec9a425b0c5ec98e2f234a926b82a147", + "c10b5c25c4683d0b7827d0d88697cdc0932496b5299b798c0dd1e7af6cc757ccb30fcd3d" + "36ead4a804877e24f3a32443", + "b11db00cdaf53286d4483f38cd02785948477ed7ebc2ad609054551da0ab0359978c6185" + "1788aa2ec3267946d440e878", + "16007873c5b0604ce68112a8fee973e8e2b6e3319c683a762ff5065a076512d7c98b27e7" + "4b7887671048ac027df8cbf2"}, + {NID_secp384r1, NID_sha256, + "784d7f4686c01bea32cb6cab8c089fb25c341080d9832e04feac6ea63a341079cbd562a7" + "5365c63cf7e63e7e1dddc9e99db75ccee59c5295340c2bba36f457690a8f05c62ab001e3" + "d6b333780117d1456a9c8b27d6c2504db9c1428dad8ba797a4419914fcc636f0f14ede3f" + "ba49b023b12a77a2176b0b8ff55a895dcaf8dbce", + "0287f62a5aa8432ff5e95618ec8f9ccaa870dde99c30b51b7673378efe4ccac598f4bbeb" + "bfd8993f9abb747b6ad638b9", + "04b36418a3014074ec9bbcc6a4b2367a4fb464cca7ec0a324cb68670d5c5e03e7a7eb07d" + "a117c5ea50b665ab62bd02a4914ea299c30e7d76e2c5905babada2d3bb4ee5eb35a5a236" + "05cdb0d5133471a53eb9e6758e49105a4eaf29d2267ba84ef2", + "935eeab3edeb281fbd4eead0d9c0babd4b10ff18a31663ee9de3bfa9ae8f9d266441158e" + "a31c889ded9b3c592da77fd7", + "738f9cb28f3b991335ef17b62559255faf75cad370a222464a492e27bb173c7f16b22100" + "ada6b695875c7e4b1a28f158", + "bc998c30e1491cd5d60dc7d1c38333165efe036b2a78db9b8f0e85ee68619cfba654e11a" + "e5ca5ee5a87099c27cf22442"}, + {NID_secp384r1, NID_sha256, + "45e47fccc5bd6801f237cdbeac8f66ebc75f8b71a6da556d2e002352bd85bf269b6bc7c9" + "28d7bb1b0422601e4dd80b29d5906f8fcac212fe0eaaf52eda552303259cbcbe532e60ab" + "d3d38d786a45e39a2875bce675800a3eaeb9e42983d9fd9031180abd9adccc9ba30c6c19" + "8b4202c4dd70f241e969a3c412724b9b595bc28a", + "d44d3108873977036c9b97e03f914cba2f5775b68c425d550995574081191da764acc501" + "96f6d2508082a150af5cd41f", + "04c703835d723c85c643260379d8445b0c816fe9534351921e14a8e147fe140ec7b0c4d7" + "04f8dc66a232b2333b28f03deec5d0bb054053fd86c26f147c4966757aa04b00513a02d4" + "27b8d06c16055c607955efdc518d338abfe7927c195dc28588", + "c80f63e080650c8a21e4f63a62ec909adfb7d877f365d11ee1cb260baf112eb4730c161c" + "1d99dba98fc0d5bbd00dc97d", + "81de2810cde421997013513951a3d537c51a013110d6dbb29251410bcb5ba001a9686b84" + "90f1e581e282fd2ed0974b22", + "9cab0bbaffe91c7677ec3dd1f17060211a3cc0be574cbca064aa8c4b66ba6e64f3d80e83" + "da895042ca32d311c388d950"}, + {NID_secp384r1, NID_sha256, + "c33ff63b4e6891e00b2349b3f2907c417ca355560544a91e24a7a0ee260d6850aeded29f" + "c0176b6039ca6187e8333391047cceaf14b1077df8f147dad84d36b2dac5666dc2f69dc9" + "b58b88cc73956efdb3b47f91831d5875051c76b0c4e9fc087012a1f03eeee85d6745b46a" + "a50bd9cb0110c2c94508765cec162ee1aa841d73", + "d5b72cbb6ec68aca46b9c27ad992afd8ffa02cb3067b234fcfa6e272e3b31be760695ff7" + "df988b57663057ab19dd65e3", + "04135a6542612f1468d8a4d01ff1914e532b1dd64d3627db9d403dc325651d3f82b0f6f0" + "fd1dbdeca2be967c4fb3793b5fcbbd40f6d3a38d0dfb64582ff4789d7b268241bc0c36de" + "2884bccfaeeff3b7b2b46a30bb35719804e0d11124b4e7f480", + "9da6de7c87c101b68db64fea40d97f8ad974ceb88224c6796c690cbf61b8bd8eede8470b" + "3caf6e6106b66cf3f0eebd55", + "17840911ecdf6ae0428b2634f442163c2c11b8dbf0cc7a5596fbe4d33e3e52f9d99e99ad" + "169867b1f39e89c9180cedc2", + "dd7ed67e480866d0474379ea4afff72870746f4feef2153be42f13bf472b1613d7faa5c0" + "abb7f7464070f94d7cf3f234"}, + {NID_secp384r1, NID_sha256, + "f562f2b9d84b0e96a52532c3b43c39c8018c738bd8dc3797a7de7353971b2729d522d696" + "1b1f2e4df3f6a4bd3653e6d72b74fc0dba92ab939c4b542e994e5db6dd8ed4f56f651e69" + "9052e791237ae1f552f990ad156226ae8f7bf17fcbfa564f749604f97e9df0879d509857" + "47d981422a23040fe52f5ec74caf1d4aaad8a710", + "218ee54a71ef2ccf012aca231fee28a2c665fc395ff5cd20bde9b8df598c282664abf915" + "9c5b3923132983f945056d93", + "0401989ff07a7a452d8084937448be946bfedac4049cea34b3db6f7c91d07d69e926cce0" + "af3d6e88855a28120cf3dba8dfeb064e029d7539d4b301aabafe8de8870162deffe6383b" + "c63cc005add6ee1d5ced4a5761219c60cd58ad5b2a7c74aaa9", + "c5d39b436d851d94691f5f4aa9ef447f7989d984f279ae8b091aef5449ac062bcc056774" + "0f914624ad5b99fc32f9af0b", + "07d5b1b12877e8cb5e0aa5e71eeeb17bf0aa203064c7e98b3a1798a74dc9717252dc47c7" + "f06aaf1d5fe15b868323bbb9", + "69428cf101a7af5d08161a9fd7af212e02e33b6062aebdce4c96bf3a0684b5394cb902ca" + "7c2dec6e2f01f40c4576009d"}, + {NID_secp384r1, NID_sha256, + "ace953ae851f571d71779aa120915f27450b236da23e9106f8d0756abdd2586193794122" + "8d225d5fb1aa1b1ebf759b1e326aeb3b6cd0cd87edd2ab9f6a7ad67b63d2c501d6a550ed" + "b2e7c9d216cc8af78dd33546af64d00abed4d0d2cfc5c9a7b5a055dbe8f7547902d185cf" + "46937314832bc5c602419a82ab83dbd9d3bd5aff", + "e6ab171f6937c000e144950801ad91023ae8e8476856c2592d9f7d5bb7180fd729211803" + "d39a412ead6c0be761cfa5d1", + "0438bc42b8c9d8866d09b214398d584b1b24a488dfacc3420d1e9506aa825b19fdf1ba74" + "e7b8f547f47b571467fe8c4d1f5179d62668d3f6a7ab5c8e3761a685e12008fb87d0529a" + "97645f65cfb5364376c1b6682e0ffcddd0bcd995c41d013ad3", + "05e9718aea9669c9e434f73866da5f252dec6d24c47a1c4ee3233450b6ec626de9746ebe" + "095b285558dfc89fc1b622fe", + "df9bab9dd1f22ec6f27116f38831cb2089aa78aa8c073024a0faddd9a48e810a5e8e2cad" + "d80fbf8dbd6088c71fe30b5b", + "1e0e8718567d12d18558c57f9e87a755c309e4ffb497335a3adfc8d7475ce8fd882d5dc3" + "3a8f5a16274b7ad74bb7862a"}, + {NID_secp384r1, NID_sha256, + "9635ab832240be95301bedb94c5aec169eedc198cbbdfedcf41e9b586143d829b4597a6b" + "2a81902828332825fd84a785f187a3894e21bd99d22c4f94dcf34453fc052f15ec64d144" + "7c932cb38fcdd30b7be851963409c11881438cbaad7e96f9efbde317f2235d66af804477" + "a5dfe9f0c51448383830050ecf228889f83631e1", + "14acd516c7198798fd42ab0684d18df1cd1c99e304312752b3035bed6535a8975dff8acf" + "c2ba1675787c817b5bff6960", + "0429909d143cf7ee9c74b11d52f1a8f3ebd4a720c135612ca5618d3f432f03a95602ee75" + "a2057e1d7aab51d0648ac0b334404b6c5adffbadfa1b0380ae89fed96ec1ca16cc28661e" + "623d0f1c8b130fbaa96dd7257eae2bf03c2d3dcbc3dbc82c58", + "7f623c103eaa9099a0462e55f80519c565adaeffcb57a29993f3a8a92e63a560be8f0fb9" + "d23dc80bff1064bb41abad79", + "932ab291950c16b2b19a8036cd2e905714c6229cb190a73b3ea49c48dd8e76063a453c7c" + "3267a57597d2973678216296", + "d17d4c5ddbb9c27beebf526f113b416c8abfad53d11c4224813c7f351ba41a77dd4e77d6" + "e4a65bef2c9f62cc37a469a5"}, + {NID_secp384r1, NID_sha256, + "d98b9a7d4fe9d0fd95de5056af164a8b7882cd34ab5bde83a2abb32dc361eb56a479a3a6" + "119db3b91dcad26a42d2206749567f0d97c34a981a91fc734921821a429f6a53401743a5" + "c406ba9d560f956203abc9d1f32f1a13e7d7b290f75c95fdbf857ea597021461c06a3aac" + "fa554ede3d69e4ff03bbbee5b7463ec77de2b3b2", + "2e780550984f3a00cb1e412429b33493c6eb6cd86d12f9d80588c247dcf567bd04296d2d" + "4b24b889d9c54954b7f38f57", + "0437dac42ef04663238443ef33e8addee2e78c40d50a1751913a7f5c37d1f23a26c7f86e" + "16055c788b8ca9554f06b2f2efbbed1549652904e3d00c39b01cc0460dbaf3185e6190c2" + "705677a9701de1fe56dff4f4d8418ee15059ff8fc36800982d", + "b788ca82811b0d4e4841765c71eafaa1e575378beedcd3860d8b92db3d070ac5aef7c425" + "067860fbee6c50cf0c642bbb", + "7292b3851870daeb2555a8a2fb198ead78739fcfb75327e5c32a82c6b77d58983e5ad548" + "ccb75dcf9411039c9576d9b9", + "a378c61802d9f1dd062b6e18f16416a954018f77df4df95ad1b983570377d5cfce4cc786" + "1759e802c52f81abc4f49aac"}, + {NID_secp384r1, NID_sha256, + "1b4c754ac1c28dc415a71eac816bde68de7e8db66409af835838c5bb2c605111108a3bf1" + "3606ed5d8ade5ed72e50503e0de664416393d178ea4eec834d8d6f15039847b410080fd5" + "529b426e5aadd8451c20ebd92d787921f33e147bcbeb327b104d4aab1157fc1df33e4d76" + "8404b5ccb7110055c2508c600f429fd0c21b5784", + "a24d0fe90808aecc5d90626d7e6da7c9be5dfd4e1233c7f0f71f1b7c1c6fd318fafe1855" + "9c94718f044cf02ed5107cb1", + "04ec8ae1fb9bb88589d27d6f27d790392853396f37bc0c381631d85800fc668eea0886bf" + "1c6cff801147df19778d5b16041e1a8336c1e2506f8ee388b55cc648ae73b9295ea78467" + "979d2affb364536fad28120f51ec62a67cbb6ce7784780389f", + "755d025509b73cf1ea8817beb772ad150b4c17a52378be187daffe3db0158921e5e552d1" + "ca3c85df28519939f3cb794d", + "23ff2ffa62bbd427d49995d9c9950116e0d5a06ef076a4553448bc109e6482c5e87d4c83" + "3bc88de0bc722bc98cae2e61", + "9aea13d487c3ea6917e16374caafcf0321c12a80d28902dd8cd81909bb04b8c439e2491e" + "504756742d0d0bfb15a9c34c"}, + {NID_secp384r1, NID_sha256, + "3cd8c053741dd9f974c6c5dbf8a1e5728e9b5eafb1cbcfc3452f5fbbda32a8c7564dee15" + "7e8d902c52514361da6d972934a56b3276e2a9379e328e24282e0db697c5bc29090fc489" + "ec46b7b188325dd4e96494c250de0f4a89fe2ccf919eaefcfb50c288113e6df92714feb7" + "f46e0822478c796d0f4ff3447a32997e892693ce", + "1c172e25732555afee7ded67a496f3f11babc0875898619f4519c29321e201e8ba1149f2" + "c20b48e5efba235d58fea7c3", + "0413e9e2c8bbcfe26e8f5f43c86268c5980ee693236a6b8777f3a7323718baa21005b482" + "d08aafc6fa6e3667d91353544c9ba181b3ee505be030f87ecd249b00670a791489b42af0" + "4976013483ff95b630c91c01e95757e906129f2f9b4ce719a8", + "08aec9a9e58bdc028805eb5dc86073d05fff1f5fb3fd17f510fc08f9272d84ba7aa66b6f" + "77d84fe6360bd538192bf01a", + "2b4337c3dfbc886ffad7858ae2480cb62227e12205a70361c42f1a5ca9e658ee30fc3cf4" + "030d85bd065edad83b99821f", + "2550cef8574bf17fb3d6b0c9d04ab266962bac3621bac233ff2e4989712d2a4a07171c0a" + "ebd3040cd6a32c3bd3efb8b5"}, + {NID_secp384r1, NID_sha256, + "ed955dda6d9650124804d3deb6aeef900e520faf98b1ef6f14efcada7ca2433f09329b70" + "897305e59c89024d76e466b28fe02cb2a9b12e2478c66470259d7c282137a19e5a04ffad" + "ea55245c0f34a681593fedc42931d8b3321b3d82e9cc102cd00540ad311ec7bd8c9d06db" + "21bea4ca3dc74d98931ae0d40494aefc2345132c", + "5b96555dbd602e71d4d5d3aee19fd1ea084ee23d4f55c10937056762bc2015cbded2e898" + "a487f5482ab7e1e971245907", + "046e14c17bb831b0112d7f3543c5fd17c78379a516c9e0539b03b8b4bfdead2820343fc8" + "4b0382807573ded6c4d97b70037f60021d2de77546db666721c9aec84c3e2ba8de0ba774" + "43600dc77e6839bbf9316271adb22d4cb47d08f745ecb1dafd", + "7ad6f4ffd2b429ba10c6f112f800cacf1ad508cf8eba880893bb9659c1ddaaec57dcdc09" + "3a114500460d457bdde324f2", + "faea950ca513806bc59028c638d6302ffc86978c3ff1f06db015dd7c4777050186cb8dd8" + "71f5e926e1416539c1939c2f", + "2c592240eabb8a1f9878e1b5c9d5d3ced7b3a7ae571f5a86494ed2ca567a36eb72e7bea8" + "934bded29594bccf67ca84bd"}, + {NID_secp384r1, NID_sha256, + "ce395b001da2a58e49691605d44af4206306f62f561bf2394060d2a5591a350277166bed" + "043819035f1e60b5b3fb5ae113ddd0473f8ef6b2b050c472c2a264e1d8b3ca82a4f158c4" + "0f2d78d9ce5e5ea6de243f2e1f13f47f6c6f403b270912c81c636be35b396ca58468b3fb" + "60aa83911d61441a0528d973bc31f965d4059080", + "8df9c3c710a25192f3dea970910bb3784e3509874cccf4334823eb9f7a8d05b067f2d812" + "d61e878e24b093089a0b8245", + "0492c9e32b20cbe6d4ed0727c6c942cf804a72031d6dfd69078b5e78ebce2d192268f1f5" + "e2abce5aaf1f8d6a35f136837fd5167905fa7689e03b9fb1487c566f62b36f2bc1c4a2bf" + "b6a836113b5c8d46f7c1ca51b628b14397fbc06ec9a07f4849", + "258dd05919735cd48627c9fe9fac5c252604aa7c2ae0460d7c1149cd96b7bd2ba195ad39" + "3bf392a2499f06aead5ba050", + "413793bcce52eda0f5b675a8d687cce86d5c9e1659b38a89e96246b5e05f8b0934d17dbb" + "a3b2ea44c838aa5fd87125d1", + "ce7309fc2d6e3438818a1a29a997410b025b0403de20795b97c86c46034a6b02afeed279" + "aeb06522d4de941bfdf50469"}, + {NID_secp384r1, NID_sha256, + "ffefe316455ae4ffdb890bb804bf7d31424ea060ecacff419d0f7134ff76ad434063c0ec" + "0f8bb7059584d3a03f3625bb9e9f66ace1a47ac4b8f3e76fc7c420c55edb1427d1fa15b3" + "87ad73d02b0595c4e74321be8822752230a0dcfb85d60bfa186da7623a8ec3eb1633f0a2" + "94b23ae87216b14ccee9ef56418dcfab9427371e", + "6002cb01ad2ce6e7101665d47729c863b6435c3875de57a93f99da834f73e3e6e2b3880e" + "06de3e6bd1d51ea1807ab0d7", + "04e4216e1a20af8e8e3e74653ac016545001066e53e64af679ad1c85841bb475aed3e00e" + "ad052ae9955f48d675ff4ace568804c17641be21d4c6386902c9c5c888af25d97ca38370" + "3ea4a85cf93bbab360c0bbd2993374da499a303778650270b9", + "6b9507fd2844df0949f8b67b6fde986e50173713ac03df2edf65cb339859321cd3a2b9aa" + "b8356f95dec62460ab19c822", + "018891f6381ed358b422f79a299cf0789cee783ba388af4d82cbbe17f3709751b7fd9400" + "e9702820c28b9afc62fdf489", + "aef73bd590802b2fd2a65c4f7fec89f9b24ecc199a69254785925f334cd1977c5e1f858b" + "d9830d7d7d243ea707b1af0b"}, + {NID_secp384r1, NID_sha256, + "304bccb718b3a9e12669913490cc5bcc1979287b56c628fad706c354241e88d10e81445a" + "2853e3fc32ece094ba1abc3fdcab61da27f9a0fca739371049fed462ee6b08fa31cde127" + "20f8144a6f00ce9b1a7a6eadd231f126717074b4efb5c72ce673ca5859000a436f67a338" + "d698759f12c461247c45a361fb6cb661fdbe6714", + "d8559c3543afc6f7b3dc037a687bad2630283757ba7862fd23ed14e2151a4cf5fed3d249" + "268f780e0b96b6b46274a2d5", + "045f94223918f2ec9f0a08342cb99e724881c92453957c59672860f69daac01b660331a0" + "f5845e50f1f27766b219c89e7ed76d83396130d10d1168d76c7fc83742ffffbe66d9f4da" + "4ca3f95f5ad6dac8cc7bb65d16d317d37aa99fdbf30ec7439c", + "4ad5a92b5b8e170b71c8a7ed419dc624c7680004562b8d16a37b6e639f581ce81d5f0d98" + "cce44d54c4e7136229148340", + "f7baa6a5488ab462ea59aa31a36402b15880c68110b6069f51ede0c3b52a7b1e5bf926fd" + "be95768931b7d5f87058835c", + "28b1c4ef448a432f7c91b98b0c6471691e888211b6af907369a8930859b8cdb2e94f466a" + "44f4e52f46df9b0d65e35de6"}, + {NID_secp384r1, NID_sha256, + "64f9f05c2805acf59c047b5f5d2e20c39277b6d6380f70f87b72327a76170b872bfe4b25" + "c451602acfb6a631bb885e2655aee8abe44f69c90fb21ffde03cef2a452c468c6369867d" + "fd8aa26ac24e16aa53b292375a8d8fbf988e302bf00088e4c061aa12c421d8fe3cbd7273" + "b0e8993701df1c59431f436a08b8e15bd123d133", + "b9208cbfd186ddfa3efd5b71342ae1efb01a13ebc4c2a992a2cbee7254b7846a4252ece1" + "104b89d13d835911f8511224", + "04166e6d96cb60d916fd19888a2dd945a3306ff0d7b0a5e30729f47d3dac3de2be3fd5cd" + "7437e9a80d6c48cf960d2d36f8e6b2b70f131092ae210f29cc6bad701318bddb31bddf92" + "1695855c6208941100d0cee5d10799f8b835afe3ea510e8229", + "da706ab5f61531f2378b3c0a2b342108cd119eadaa88b859df64923bccfb0ec2393fd312" + "826f65c15a6587d1d460015b", + "d9124c42858080c62400e4d4d8136304e03d910cbe9b9b3487f4d27c7e0540a314d34bef" + "8c850045c8746ca631c11c42", + "bbf6424a3b70166fa799f49e918439d515327039258ef9bd88435a59c9c19659f8ec3c86" + "60720b0c08354ff60e0f5a76"}, + {NID_secp384r1, NID_sha384, + "6b45d88037392e1371d9fd1cd174e9c1838d11c3d6133dc17e65fa0c485dcca9f52d41b6" + "0161246039e42ec784d49400bffdb51459f5de654091301a09378f93464d52118b48d44b" + "30d781eb1dbed09da11fb4c818dbd442d161aba4b9edc79f05e4b7e401651395b53bd8b5" + "bd3f2aaa6a00877fa9b45cadb8e648550b4c6cbe", + "201b432d8df14324182d6261db3e4b3f46a8284482d52e370da41e6cbdf45ec2952f5db7" + "ccbce3bc29449f4fb080ac97", + "04c2b47944fb5de342d03285880177ca5f7d0f2fcad7678cce4229d6e1932fcac11bfc3c" + "3e97d942a3c56bf34123013dbf37257906a8223866eda0743c519616a76a758ae58aee81" + "c5fd35fbf3a855b7754a36d4a0672df95d6c44a81cf7620c2d", + "dcedabf85978e090f733c6e16646fa34df9ded6e5ce28c6676a00f58a25283db8885e16c" + "e5bf97f917c81e1f25c9c771", + "50835a9251bad008106177ef004b091a1e4235cd0da84fff54542b0ed755c1d6f251609d" + "14ecf18f9e1ddfe69b946e32", + "0475f3d30c6463b646e8d3bf2455830314611cbde404be518b14464fdb195fdcc92eb222" + "e61f426a4a592c00a6a89721"}, + {NID_secp384r1, NID_sha384, + "d768f41e6e8ec2125d6cf5786d1ba96668ac6566c5cdbbe407f7f2051f3ad6b1acdbfe13" + "edf0d0a86fa110f405406b69085219b5a234ebdb93153241f785d45811b3540d1c37424c" + "c7194424787a51b79679266484c787fb1ded6d1a26b9567d5ea68f04be416caf3be9bd2c" + "afa208fe2a9e234d3ae557c65d3fe6da4cb48da4", + "23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d494325ad2ac" + "8ba928394e01061d882c3528", + "045d42d6301c54a438f65970bae2a098cbc567e98840006e356221966c86d82e8eca515b" + "ca850eaa3cd41f175f03a0cbfd4aef5a0ceece95d382bd70ab5ce1cb77408bae42b51a08" + "816d5e5e1d3da8c18fcc95564a752730b0aabea983ccea4e2e", + "67ba379366049008593eac124f59ab017358892ee0c063d38f3758bb849fd25d867c3561" + "563cac1532a323b228dc0890", + "fb318f4cb1276282bb43f733a7fb7c567ce94f4d02924fc758635ab2d1107108bf159b85" + "db080cdc3b30fbb5400016f3", + "588e3d7af5da03eae255ecb1813100d95edc243476b724b22db8e85377660d7645ddc1c2" + "c2ee4eaea8b683dbe22f86ca"}, + {NID_secp384r1, NID_sha384, + "6af6652e92a17b7898e40b6776fabaf0d74cf88d8f0ebfa6088309cbe09fac472eeac2aa" + "8ea96b8c12e993d14c93f8ef4e8b547afe7ae5e4f3973170b35deb3239898918c70c1056" + "332c3f894cd643d2d9b93c2561aac069577bbab45803250a31cd62226cab94d8cba7261d" + "ce9fe88c210c212b54329d76a273522c8ba91ddf", + "b5f670e98d8befc46f6f51fb2997069550c2a52ebfb4e5e25dd905352d9ef89eed5c2ecd" + "16521853aadb1b52b8c42ae6", + "0444ffb2a3a95e12d87c72b5ea0a8a7cb89f56b3bd46342b2303608d7216301c21b5d292" + "1d80b6628dc512ccb84e2fc278e4c1002f1828abaec768cadcb7cf42fbf93b1709ccae6d" + "f5b134c41fae2b9a188bfbe1eccff0bd348517d7227f2071a6", + "229e67638f712f57bea4c2b02279d5ccad1e7c9e201c77f6f01aeb81ea90e62b44b2d210" + "7fd66d35e56608fff65e28e4", + "b11db592e4ebc75b6472b879b1d8ce57452c615aef20f67a280f8bca9b11a30ad4ac9d69" + "541258c7dd5d0b4ab8dd7d49", + "4eb51db8004e46d438359abf060a9444616cb46b4f99c9a05b53ba6df02e914c9c0b6cc3" + "a9791d804d2e4c0984dab1cc"}, + {NID_secp384r1, NID_sha384, + "b96d74b2265dd895d94e25092fb9262dc4f2f7a328a3c0c3da134b2d0a4e2058ca994e34" + "45c5ff4f812738e1b0c0f7a126486942a12e674a21f22d0886d68df2375f41685d694d48" + "7a718024933a7c4306f33f1a4267d469c530b0fed4e7dea520a19dd68bf0203cc87cad65" + "2260ed43b7b23f6ed140d3085875190191a0381a", + "de5975d8932533f092e76295ed6b23f10fc5fba48bfb82c6cc714826baf0126813247f8b" + "d51d5738503654ab22459976", + "04f1fabafc01fec7e96d982528d9ef3a2a18b7fe8ae0fa0673977341c7ae4ae8d8d3d674" + "20343d013a984f5f61da29ae381a31cf902c46343d01b2ebb614bc789c313b5f91f9302a" + "d9418e9c797563e2fa3d44500f47b4e26ad8fdec1a816d1dcf", + "fc5940e661542436f9265c34bce407eff6364bd471aa79b90c906d923e15c9ed96eea4e8" + "6f3238ea86161d13b7d9359d", + "c2fbdd6a56789024082173725d797ef9fd6accb6ae664b7260f9e83cb8ab2490428c8b9c" + "52e153612295432fec4d59cd", + "8056c5bb57f41f73082888b234fcda320a33250b5da012ba1fdb4924355ae679012d81d2" + "c08fc0f8634c708a4833232f"}, + {NID_secp384r1, NID_sha384, + "7cec7480a037ff40c232c1d2d6e8cd4c080bbeecdaf3886fccc9f129bb6d202c316eca76" + "c8ad4e76079afe622f833a16f4907e817260c1fa68b10c7a151a37eb8c036b057ed4652c" + "353db4b4a34b37c9a2b300fb5f5fcfb8aa8adae13db359160f70a9241546140e550af007" + "3468683377e6771b6508327408c245d78911c2cc", + "11e0d470dc31fab0f5722f87b74a6c8d7414115e58ceb38bfcdced367beac3adbf1fe9ba" + "5a04f72e978b1eb54597eabc", + "041950166989164cbfd97968c7e8adb6fbca1873ebef811ea259eb48b7d584627f0e6d6c" + "64defe23cbc95236505a252aa141ef424b5cb076d4e32accd9250ea75fcf4ffd81814040" + "c050d58c0a29b06be11edf67c911b403e418b7277417e52906", + "e56904028226eb04f8d071e3f9cefec91075a81ca0fa87b44cae148fe1ce9827b5d1910d" + "b2336d0eb9813ddba3e4d7b5", + "c38ef30f55624e8935680c29f8c24824877cf48ffc0ef015e62de1068893353030d1193b" + "f9d34237d7ce6ba92c98b0fe", + "651b8c3d5c9d5b936d300802a06d82ad54f7b1ba4327b2f031c0c5b0cb215ad4354edc7f" + "932d934e877dfa1cf51b13fe"}, + {NID_secp384r1, NID_sha384, + "00ce978603229710345c9ad7c1c2dba3596b196528eea25bd822d43ca8f76a024e292177" + "03dd0652c8a615284fc3edcc1c5ad1c8d5a8521c8e104c016a24e50c2e25066dcb56596f" + "913b872767e3627aa3e55ec812e9fdac7c2f1beade83aef093e24c9c953982adf431a776" + "880ae4583be158e11cdab1cbca3ad3a66900213d", + "5c6bbf9fbcbb7b97c9535f57b431ed1ccae1945b7e8a4f1b032016b07810bd24a9e20055" + "c0e9306650df59ef7e2cd8c2", + "042e01c5b59e619e00b79060a1e8ef695472e23bf9a511fc3d5ed77a334a242557098e40" + "972713732c5291c97adf9cf2cf563e3fe4ad807e803b9e961b08da4dde4cea8925649da0" + "d93221ce4cdceabc6a1db7612180a8c6bef3579c65539b97e9", + "03d23f1277b949cb6380211ad9d338e6f76c3eedac95989b91d0243cfb734a54b19bca45" + "a5d13d6a4b9f815d919eea77", + "abab65308f0b79c4f3a9ff28dd490acb0c320434094cef93e75adfe17e5820dc1f77544c" + "faaacdc8cf9ac8b38e174bef", + "11b783d879a6de054b316af7d56e526c3dce96c85289122e3ad927cfa77bfc50b4a96c97" + "f85b1b8221be2df083ff58fb"}, + {NID_secp384r1, NID_sha384, + "54a255c18692c6162a46add176a0ae8361dcb8948f092d8d7bac83e160431794d3b98128" + "49bf1994bcdcfba56e8540c8a9ee5b93414548f2a653191b6bb28bda8dc70d45cc1b92a4" + "89f58a2d54f85766cb3c90de7dd88e690d8ebc9a79987eee1989df35af5e35522f83d85c" + "48dda89863171c8b0bf4853ae28c2ac45c764416", + "ffc7dedeff8343721f72046bc3c126626c177b0e48e247f44fd61f8469d4d5f0a74147fa" + "baa334495cc1f986ebc5f0b1", + "0451c78c979452edd53b563f63eb3e854a5b23e87f1b2103942b65f77d024471f75c8ce1" + "cc0dfef83292b368112aa5126e313e6aaf09caa3ba30f13072b2134878f14a4a01ee8632" + "6cccbff3d079b4df097dc57985e8c8c834a10cb9d766169366", + "c3de91dbe4f777698773da70dd610ef1a7efe4dc00d734399c7dd100728006a502822a5a" + "7ff9129ffd8adf6c1fc1211a", + "f4f477855819ad8b1763f53691b76afbc4a31a638b1e08c293f9bcd55decf797f9913ca1" + "28d4b45b2e2ea3e82c6cf565", + "7c26be29569ef95480a6d0c1af49dc10a51a0a8931345e48c0c39498bfb94d62962980b5" + "6143a7b41a2fddc8794c1b7f"}, + {NID_secp384r1, NID_sha384, + "692a78f90d4f9d5aee5da536314a78d68c1feabbfe5d1ccea7f6059a66c4b310f8051c41" + "1c409ccf6e19a0cbd8b8e100c48317fe8c6d4f8a638b9551ce7ee178020f04f7da3001a0" + "e6855225fb3c9b375e4ed964588a1a41a095f3f476c42d52ffd23ce1702c93b56d4425d3" + "befcf75d0951b6fd5c05b05455bdaf205fe70ca2", + "adca364ef144a21df64b163615e8349cf74ee9dbf728104215c532073a7f74e2f6738577" + "9f7f74ab344cc3c7da061cf6", + "04ef948daae68242330a7358ef73f23b56c07e37126266db3fa6eea233a04a9b3e491523" + "3dd6754427cd4b71b75854077d009453ef1828eaff9e17c856d4fc1895ab60051312c3e1" + "db1e3766566438b2990cbf9945c2545619e3e0145bc6a79004", + "a2da3fae2e6da3cf11b49861afb34fba357fea89f54b35ce5ed7434ae09103fe53e2be75" + "b93fc579fedf919f6d5e407e", + "dda994b9c428b57e9f8bbaebba0d682e3aac6ed828e3a1e99a7fc4c804bff8df151137f5" + "39c7389d80e23d9f3ee497bf", + "a0d6b10ceffd0e1b29cf784476f9173ba6ecd2cfc7929725f2d6e24e0db5a4721683640e" + "aa2bbe151fb57560f9ce594b"}, + {NID_secp384r1, NID_sha384, + "3b309bb912ab2a51681451ed18ad79e95d968abc35423a67036a02af92f575a0c89f1b66" + "8afe22c7037ad1199e757a8f06b281c33e9a40bab69c9874e0bb680b905d909b9dc24a9f" + "e89bb3d7f7d47082b25093c59754f8c19d1f81f30334a8cdd50a3cb72f96d4b3c305e60a" + "439a7e93aeb640dd3c8de37d63c60fb469c2d3ed", + "39bea008ec8a217866dcbdb1b93da34d1d3e851d011df9ef44b7828b3453a54aa70f1df9" + "932170804eacd207e4f7e91d", + "045709ec4305a9c3271c304face6c148142490b827a73a4c17affcfd01fffd7eaa65d2fd" + "edfa2419fc64ed910823513fafb083cda1cf3be6371b6c06e729ea6299213428db571193" + "47247ec1fcd44204386cc0bca3f452d9d864b39efbfc89d6b2", + "3c90cc7b6984056f570542a51cbe497ce4c11aeae8fc35e8fd6a0d9adeb650e8644f9d1d" + "5e4341b5adc81e27f284c08f", + "d13646895afb1bfd1953551bb922809c95ad65d6abe94eb3719c899aa1f6dba6b01222c7" + "f283900fe98628b7597b6ea6", + "4a9a38afda04c0a6b0058943b679bd02205b14d0f3d49b8f31aac289129780cdb1c555de" + "f8c3f9106b478729e0c7efaa"}, + {NID_secp384r1, NID_sha384, + "f072b72b8783289463da118613c43824d11441dba364c289de03ff5fab3a6f60e85957d8" + "ff211f1cb62fa90216fb727106f692e5ae0844b11b710e5a12c69df3ed895b94e8769ecd" + "15ff433762d6e8e94d8e6a72645b213b0231344e2c968056766c5dd6b5a5df41971858b8" + "5e99afbf859400f839b42cd129068efabeea4a26", + "e849cf948b241362e3e20c458b52df044f2a72deb0f41c1bb0673e7c04cdd70811215059" + "032b5ca3cc69c345dcce4cf7", + "0406c037a0cbf43fdf335dff33de06d34348405353f9fdf2ce1361efba30fb204aea9dbd" + "2e30da0a10fd2d876188371be6360d38f3940e34679204b98fbf70b8a4d97f25443e46d0" + "807ab634ed5891ad864dd7703557aa933cd380e26eea662a43", + "32386b2593c85e877b70e5e5495936f65dc49553caef1aa6cc14d9cd370c442a0ccfab4c" + "0da9ec311b67913b1b575a9d", + "5886078d3495767e330c7507b7ca0fa07a50e59912a416d89f0ab1aa4e88153d6eaf0088" + "2d1b4aa64153153352d853b5", + "2cc10023bf1bf8ccfd14b06b82cc2114449a352389c8ff9f6f78cdc4e32bde69f3869da0" + "e17f691b329682ae7a36e1aa"}, + {NID_secp384r1, NID_sha384, + "cf4945350be8133b575c4ad6c9585e0b83ff1ed17989b6cd6c71b41b5264e828b4e11599" + "5b1ae77528e7e9002ac1b5669064442645929f9d7dd70927cb93f95edeb73e8624f4bc89" + "7ec4c2c7581cb626916f29b2d6e6c2fba8c59a71e30754b459d81b912a12798182bcff40" + "19c7bdfe929cc769bcc2414befe7d2906add4271", + "d89607475d509ef23dc9f476eae4280c986de741b63560670fa2bd605f5049f1972792c0" + "413a5b3b4b34e7a38b70b7ca", + "0449a1c631f31cf5c45b2676b1f130cbf9be683d0a50dffae0d147c1e9913ab1090c6529" + "a84f47ddc7cf025921b771355a1e207eece62f2bcc6bdabc1113158145170be97469a290" + "4eaaa93aad85b86a19719207f3e423051f5b9cbbe2754eefcb", + "78613c570c8d33b7dd1bd1561d87e36282e8cf4843e7c344a2b2bb6a0da94756d670eeaf" + "fe434f7ae7c780f7cf05ca08", + "66f92b39aa3f4aeb9e2dc03ac3855406fa3ebbab0a6c88a78d7a03482f0c9868d7b78bc0" + "81ede0947c7f37bf193074ba", + "e5c64ed98d7f3701193f25dd237d59c91c0da6e26215e0889d82e6d3e416693f8d58843c" + "f30ab10ab8d0edd9170b53ad"}, + {NID_secp384r1, NID_sha384, + "d9b5cf0b50416573ff3c63133275a18394dd4326be2041e8d97e6e4e3855a4a177e9d26d" + "fd223fe8aa74564edb49bd72de19916fb6f001f44530d5c18e2c332bce1b7415df5927ec" + "e5f3824f34d174b963136b53aef1fb78fb0c06a201a40b2db38e4d8216fc1e392a798c8a" + "b4b3a314496b7f1087804ebfa89bf96e9cdb80c0", + "083e7152734adf342520ae377087a223688de2899b10cfcb34a0b36bca500a4dfa530e23" + "43e6a39da7ae1eb0862b4a0d", + "0470a0f16b6c61172659b027ed19b18fd8f57bd28dc0501f207bd6b0bb065b5671cf3dd1" + "ed13d388dcf6ccc766597aa6044f845bf01c3c3f6126a7368c3454f51425801ee0b72e63" + "fb6799b4420bfdebe3e37c7246db627cc82c09654979c700bb", + "28096ababe29a075fbdf894709a20d0fdedb01ed3eeacb642a33a0da6aed726e13caf6cf" + "206792ec359f0c9f9b567552", + "ee2923f9b9999ea05b5e57f505bed5c6ba0420def42c6fa90eef7a6ef770786525546de2" + "7cdeb2f8586f8f29fb4ee67c", + "50ef923fb217c4cf65a48b94412fda430fac685f0da7bd574557c6c50f5b22e0c8354d99" + "f2c2f2c2691f252f93c7d84a"}, + {NID_secp384r1, NID_sha384, + "9e4042d8438a405475b7dab1cd783eb6ce1d1bffa46ac9dfda622b23ac31057b922eced8" + "e2ed7b3241efeafd7c9ab372bf16230f7134647f2956fb793989d3c885a5ae064e85ed97" + "1b64f5f561e7ddb79d49aa6ebe727c671c67879b794554c04de0e05d68264855745ef3c9" + "567bd646d5c5f8728b797c181b6b6a876e167663", + "63578d416215aff2cc78f9b926d4c7740a77c142944e104aa7422b19a616898262d46a8a" + "942d5e8d5db135ee8b09a368", + "04cadbacef4406099316db2ce3206adc636c2bb0a835847ed7941efb02862472f3150338" + "f13f4860d47f39b7e098f0a390752ad0f22c9c264336cde11bbc95d1816ed4d1b1500db6" + "b8dce259a42832e613c31178c2c7995206a62e201ba108f570", + "7b69c5d5b4d05c9950dc94c27d58403b4c52c004b80a80418ad3a89aabc5d34f21926729" + "e76afd280cc8ee88c9805a2a", + "db054addb6161ee49c6ce2e4d646d7670754747b6737ca8516e9d1e87859937c3ef9b1d2" + "663e10d7e4bd00ec85b7a97a", + "fcc504e0f00ef29587e4bc22faada4db30e2cb1ac552680a65785ae87beb666c792513f2" + "be7a3180fc544296841a0e27"}, + {NID_secp384r1, NID_sha384, + "0b14a7484a40b68a3ce1273b8a48b8fdb65ba900d98541c4bbd07b97e31bcc4c85545a03" + "e9deab3c563f47a036ff60d0361684ba241b5aa68bb46f440da22181ee328a011de98eff" + "34ba235ec10612b07bdfa6b3dc4ccc5e82d3a8d057e1862fef3def5a1804696f84699fda" + "2ec4175a54a4d08bcb4f0406fdac4eddadf5e29b", + "ed4df19971658b74868800b3b81bc877807743b25c65740f1d6377542afe2c6427612c84" + "0ada31a8eb794718f37c7283", + "0433093a0568757e8b58df5b72ea5fe5bf26e6f7aeb541b4c6a8c189c93721749bcacecc" + "f2982a2f0702586a9f812fc66febe320d09e1f0662189d50b85a20403b821ac0d000afdb" + "f66a0a33f304726c69e354d81c50b94ba3a5250efc31319cd1", + "d9b4cd1bdfa83e608289634dbfcee643f07315baf743fc91922880b55a2feda3b38ddf60" + "40d3ba10985cd1285fc690d5", + "009c74063e206a4259b53decff5445683a03f44fa67252b76bd3581081c714f882f882df" + "915e97dbeab061fa8b3cc4e7", + "d40e09d3468b46699948007e8f59845766dbf694b9c62066890dd055c0cb9a0caf0aa611" + "fb9f466ad0bbb00dbe29d7eb"}, + {NID_secp384r1, NID_sha384, + "0e646c6c3cc0f9fdedef934b7195fe3837836a9f6f263968af95ef84cd035750f3cdb649" + "de745c874a6ef66b3dd83b66068b4335bc0a97184182e3965c722b3b1aee488c3620adb8" + "35a8140e199f4fc83a88b02881816b366a09316e25685217f9221157fc05b2d8d2bc8553" + "72183da7af3f0a14148a09def37a332f8eb40dc9", + "e9c7e9a79618d6ff3274da1abd0ff3ed0ec1ae3b54c3a4fd8d68d98fb04326b7633fc637" + "e0b195228d0edba6bb1468fb", + "04a39ac353ca787982c577aff1e8601ce192aa90fd0de4c0ed627f66a8b6f02ae5131554" + "3f72ffc1c48a7269b25e7c289a9064a507b66b340b6e0e0d5ffaa67dd20e6dafc0ea6a6f" + "aee1635177af256f9108a22e9edf736ab4ae8e96dc207b1fa9", + "b094cb3a5c1440cfab9dc56d0ec2eff00f2110dea203654c70757254aa5912a7e73972e6" + "07459b1f4861e0b08a5cc763", + "ee82c0f90501136eb0dc0e459ad17bf3be1b1c8b8d05c60068a9306a346326ff7344776a" + "95f1f7e2e2cf9477130e735c", + "af10b90f203af23b7500e070536e64629ba19245d6ef39aab57fcdb1b73c4c6bf7070c62" + "63544633d3d358c12a178138"}, + {NID_secp384r1, NID_sha512, + "67d9eb88f289454d61def4764d1573db49b875cfb11e139d7eacc4b7a79d3db3bf720819" + "1b2b2078cbbcc974ec0da1ed5e0c10ec37f6181bf81c0f32972a125df64e3b3e1d838ec7" + "da8dfe0b7fcc911e43159a79c73df5fa252b98790be511d8a732fcbf011aacc7d45d8027" + "d50a347703d613ceda09f650c6104c9459537c8f", + "217afba406d8ab32ee07b0f27eef789fc201d121ffab76c8fbe3c2d352c594909abe591c" + "6f86233992362c9d631baf7c", + "04fb937e4a303617b71b6c1a25f2ac786087328a3e26bdef55e52d46ab5e69e5411bf9fc" + "55f5df9994d2bf82e8f39a153ea97d9075e92fa5bfe67e6ec18e21cc4d11fde59a68aef7" + "2c0e46a28f31a9d60385f41f39da468f4e6c3d3fbac9046765", + "90338a7f6ffce541366ca2987c3b3ca527992d1efcf1dd2723fbd241a24cff19990f2af5" + "fd6419ed2104b4a59b5ae631", + "c269d9c4619aafdf5f4b3100211dddb14693abe25551e04f9499c91152a296d7449c08b3" + "6f87d1e16e8e15fee4a7f5c8", + "77ffed5c61665152d52161dc13ac3fbae5786928a3d736f42d34a9e4d6d4a70a02d5af90" + "fa37a23a318902ae2656c071"}, + {NID_secp384r1, NID_sha512, + "45db86829c363c80160659e3c5c7d7971abb1f6f0d495709bba908d7aa99c9df64b3408a" + "51bd69aba8870e2aaff488ef138f3123cf94391d081f357e21906a4e2f311defe527c55e" + "0231579957c51def507f835cceb466eb2593a509dcbee2f09e0dde6693b2bfe17697c9e8" + "6dd672f5797339cbe9ea8a7c6309b061eca7aef5", + "0a3f45a28a355381a919372f60320d6610cfb69c3e318eb1607db3cadfc42b728b77a6a9" + "e9e333de9183c58933daf60f", + "04832cbb7061a719a316e73dbad348fa67cd17c33f40b9000a3d3b691a2a2cd821052566" + "717c3ead01089b56086af1366f1e15a048d1dce642d9ebcbfac7f92b1bcee90fd0240cc7" + "9abd29e32e0e655c4ee1fd34fb88178bba92aca100e7794ed0", + "2a78e651623ba604c42cf094fc7d046629306f508853427ba091448800d1092c041bb232" + "3035fc9d19a8d44950f7dcc3", + "0db0cc9a2bda8dd7e565ad36f91b1c5756d78164dc8a72a5bee4b6bc45ea38c7a16b01d0" + "5b1893d4e06b62db24c30385", + "abd383edaeda7d0b8de1b54fcd3c28874fed62ab266f1f84c8ba796a7b54e5e0695fdb43" + "ce7fe90ed00fa468d87bca64"}, + {NID_secp384r1, NID_sha512, + "4672fce0721d37c5be166bffa4b30d753bcf104b9b414db994b3ed33f36af4935ea59a0b" + "b92db66448b3f57dad4fc67cef10ce141bf82c536be604b89a0bc0e8bca605b867880049" + "d97142d30538fc543bd9d4fab7fdbe2f703815cdb6361beb66acff764bc275f910d16624" + "45b07b92830db69a5994857f53657ed5ca282648", + "2e408c57921939f0e0fe2e80ce74a4fa4a1b4fa7ab070206298fe894d655be50e2583af9" + "e45544b5d69c73dce8a2c8e7", + "04a2b24a5ad4a2e91f12199ed7699e3f297e27bf8b8ea8fbe7ed28366f3544cd8e680c23" + "8450f8a6422b40829d6647b25c2732be0075536e6519f6a099b975a40f8e0de337fa4d48" + "bd0762b43f41cab8deafdef9cfbb9973e457801e3bf9c93304", + "b10b6258afdde81f9c971cc1526d942e20cafac02f59fee10f98e99b8674636bff1d84a6" + "eaa49c0de8d8cfdc90d8ce84", + "be428a8de89a364a134719141ee8d776a3a8338f1132b07e01b28573d8eaf3b9008b6330" + "4c48821e53638b6141f9660b", + "866181dbef5c147d391bed6adcee408c339982c307adc718c2b9ab9e5642d8dedc36dd64" + "02559a3ab614c99c1e56b529"}, + {NID_secp384r1, NID_sha512, + "9ae48fdd9bfc5cb0f4d4761e28b2073bda05a3e3fe82c212e66701dc4573cc67a829b0f8" + "2d7520b1bf11db0c6d1743822bbe41bb0adbd7222aa5fae70fbd1a31f2d4453a01c81e06" + "4d775388468be96f6063f8673b7b8d4455fe1bd4c801ad5e625a015eaa4a1a18da490d2a" + "f8642201eaba3c611cbd65f861d8e19ca82a1ee6", + "1c285da72a8eb1c3c38faab8d3bb4e68dc95c797082b9a3991a21c1de54759071ecf2265" + "fb1eff504ab24174bc6710cf", + "0411acb1b5cc59a4f1df1913a8d6e91cbdafb8206dc44aff7d9da45906b664fc33194d99" + "35a82aa4d62f39618897c86025832ed0b9575fff52a3603bfe89f312751b4c396da98324" + "117a61b3f525d27b2266f6cfb22be07e50b6874435e380ed62", + "2513075e02cc7fb3cff7b7adde46da31c5493749b5cf02758bd5b098a838bfd4d5e4c7fb" + "8268bdc37e219c30efebe878", + "b3d638b3be45f14f170da5bdc22d2114deac93ab340a25b3af2b5c18584bb9147e00dc6c" + "67a2274f79aa4838793eb63f", + "876112bdca2c725eb2f6dbd76d07710a31f0c16d38430cb0817f320a25a9ecfec8a66137" + "d0304612ae29a6a484fd3319"}, + {NID_secp384r1, NID_sha512, + "817d6a110a8fd0ca7b4d565558f68b59a156744d4c5aac5c6610c95451793de2a756f774" + "558c61d21818d3ebeeeb71d132da1c23a02f4b305eccc5cd46bd21dfc173a8a91098354f" + "10ffbb21bf63d9f4c3feb231c736504549a78fd76d39f3ad35c36178f5c233742d2917d5" + "611d2073124845f1e3615b2ef25199a7a547e882", + "9da37e104938019fbdcf247e3df879a282c45f8fb57e6655e36b47723af42bec3b820f66" + "0436deb3de123a21de0ca37b", + "04722d0ea6891d509b18b85ca56f74deb5c3030d2a30433824123d430d03c99279572c3b" + "28ecf01e747b9db8acc55d0ba37e2605ea7092214f366f3639037bffd89fe103c646e990" + "839d3a1ced8d78edb5b9bc60d834fd8e2a3c17e920bdae023a", + "c8c18e53a9aa5915288c33132bd09323638f7995cd89162073984ed84e72e07a37e18c4c" + "023933eace92c35d10e6b1b6", + "6512a8a2be731e301dcf4803764297862bbfa0ac8daed64d8e98b34618ecb20520fc5d3c" + "f890b7783edf86e7ea407541", + "4ff10301f7b4168fae066361376007c1d7aa89a75c87719d0b54711ffef5ef3726f3eef8" + "4f7ebc025c110bde511b17f6"}, + {NID_secp384r1, NID_sha512, + "464f10ec6fb229a51db5fd0e122f2cb8a9a022117e2987f4007bf5565b2c16aba0714e2e" + "3cdd0c100d55ac3017e36fc7501ad8309ab9572aa65424c9eb2e580a119c55777676ec49" + "8df53ef6ae78fd8a988130ee0e6082bf1ef71cd4c946021018a8ca7154d13b174c638912" + "613b0bdb9001c302bf7e443ad2124ab2c1cce212", + "0661ab3bf9f7bef51bec7dff758de289154557beb9ce18cc4b8cc09a871e8322af259cf1" + "88b593dc62f03a19e75f7f69", + "04b4f100558043858efa728082d9b99ad5192b59b0947434f5ba7ff2514508a6d71ba54e" + "7221c31cb0712103272b3f6fa434f6df4eeb2da11498044635067c2715ed15ae251c78ff" + "b9030d87909ea8539b66394e93109ca54c0406cf99960c3e93", + "84a87137edb6894f96c5a8e94a3765162034feb84dfea94e1c71411170c285a80321ec79" + "99e25861844143209804882c", + "4dc9d1b949b36e3c3847ac1c7ed114e1bc9cbe76119cf6fcd3f1b69ee6ee54e3255f1bb2" + "88fe2f8bd6d4049a21793c27", + "56a561d647b62ccae1e6df818b1a6fbde66c82ef0ff69ee415f183e7daf76be22630c7e0" + "2cd3fd729dfa490f26824584"}, + {NID_secp384r1, NID_sha512, + "4e3e0fb96320ddccde8b463c273654c4f7164920b1d63430921d2e808dee403e6420eedd" + "a0a557b911d00736a4f8798dd4ef26673efd6d190988ad4929ec64f8685cfb76070a36cd" + "6a3a4bf2f54fb08a349d44642b6f614043fef9b2813b63457c76537d23da7b37310334f7" + "ba76edf1999dad86f72aa3446445a65952ac4e50", + "66e7cfdeb7f264cf786e35210f458c32223c3a12a3bc4b63d53a5776bc9b069928452484" + "f6241caa3781fd1a4109d4db", + "043c7682de540ab231daf21bf9fc80bda6abf7e17dcc79d476c7b7c3bd4d42d386877fd8" + "ba495c1b0333e04fb5fd2a15050a1582e4f4d72abea9d3476aff8369c41261f0c5dddf2c" + "a82e10f7a163f73df09473d9e5e2552187104e4cc7c6d83611", + "2fa266f5cce190eb77614933ca6a55121ad8bae168ff7a9043d96d13b5ca2fe70101ff9f" + "e1e2b2cd7413e6aa8f49abde", + "e7ecda9da0c52d0474a9f70094dc8f061d7d6a22210d3b69a7be8f389aa666f256322099" + "b87d16ad35357ea856574dba", + "ba348eb40a2830ec5a1130264ac0a8675420b1ae243e808a778135809ece21f42c0c8811" + "66321102b4f02df4c5c7ed9d"}, + {NID_secp384r1, NID_sha512, + "c466b6b6baf7e6ffa876ec06105e2d43534e0517c07b1c4c9fb67ba81ce09525a7721ec3" + "c290f2b1f65b6463d41598e7a25b2238501629953a5ca955b644354fb6856733a2e5bb8f" + "5bc21a0c803493f5539f9fb83aab3dba2c982989c2270c61ab244b68bfe1b948d00c2ed9" + "75e09c29b5f8a7effcad8652a148cc880d503217", + "92c2f7ee64af86d003ab484e12b82fcf245fc330761057fec5b7af8f7e0a2d85b468c21d" + "171460fcb829cae7b986316d", + "04ca43a306479bf8fb537d4b9ff9d635bbb2a0d60d9e854d5b7e269d09d91f78c6b90b61" + "6e4c931629453645a2bb371e14356c4d7f10e690614eaf7f82ba0f9dc1aad98130c0ad9f" + "e353deec565cc04bef789a0a4242322e0058b46cd02f2de77d", + "6ec81fb74f8725ba225f317264460ee300cfd2f02092000989acbdad4799cf55c244a65c" + "557113328fe20282e6badb55", + "cd7a4309bcebc25a8e10899fe2eda5f8b2dbcf329cd2f3d65befd67393e83fba2f8a67a1" + "5c01a6ac8314f9f5e87a9dca", + "6dcfc0426bc148e67e91d4784e3d7e9bc3b7ce3676be62daa7f3f55dfdff6d9dc735b5e3" + "e0bbd0785db1f76f7ac065f3"}, + {NID_secp384r1, NID_sha512, + "feac892b7720af80b3c9eede51e923f18d3d0c5de4c31f4aa75e36df7c7c2fd8f4177885" + "1a24b69e67dccb65e159dd5c383243bad7cfedcc5e85c8a01c34b0b94ba8e07e4c024c09" + "d279b3731e8b62f9562d3c4f5042567efe42a9d0eaaabab28bc6f11232fc8ceaaf4518d9" + "f3b2bebf020294496b7f6b879e69503f75fecd3d", + "15347caaad1067f1848a676bd0a8c52021ae604b79d02775a0459226e0391a3acd26653c" + "916fcfe86149fb0ee0904476", + "04e5a0463163964d984f5bad0072d45bc2059939e60a826ccca36c151460ae360f5d6679" + "f60fe43e999b6da5841c96e48a30f2dd425a3fa2c95d34124217250b39e3b4a14f3e6e41" + "5ae8e5b0409eb72f43f78b64d0ce6f2d49980d6f04cd1391db", + "1a2d224db4bb9c241ca5cab18920fad615fa25c1db0de0f024cb3ace0d11ef72b0568854" + "46659f67650fdff692517b1c", + "87b4de0fb21df38dfc9a4b1e350da67547e307f55b5b9dd6615e408afe7c3553a6e02722" + "847367439e636074faa2182b", + "375d965753b9ed6c6c08576726f8308c2f8dbd2737824464e71265d47907e26f615bbeb8" + "203ec617520d4ecd1851dc44"}, + {NID_secp384r1, NID_sha512, + "cf2982e3bf174ce547741b969403cd11e9553067e6af8177d89511a0eb040db924530bdb" + "a65d8b1ff714228db0737c1756f509e1506014a10736e65be2f91980a73891496e90ff27" + "14a3601c7565cdcef5a395e2e0e1652f138d90d61eaa9cba993b823245647f6e07cec9b8" + "b4449cd68a29741cd1579c66e548ca0d0acf33aa", + "ac1cb5e59bda2eff3413a3bab80308f9fb32c595283c795de4c17fdae8d4647b5f108fd0" + "801aee22adb7db129283b5aa", + "04bc6b1a718284803553c173089c397870aaaecca579bb8e81a8cfa12473cd2057567fa8" + "726a19ed427cc035baeec2c55114f82997d1129b669f0015350e47ad561b1b13441af4fb" + "44656f15ed0c5706984d66655accc52f2e943eef39cb1cdc21", + "8053a46e875f446056b06d4318fa3e8977622de7207cbf0996bf35b0e9b19aaa507f642b" + "cf0be9f048f1af09806f6946", + "a994eb15b64114ce8a9342d18b5edda96a6d76314a5ac03da723699177d352a4a9f3b712" + "1b11a91e43a6af4025da51d6", + "8183ae33a888e99aa76882da0a6705ad102f2bbd9572fad0d2e4d6d70151970469e00c52" + "20e59c14724d771c1384b302"}, + {NID_secp384r1, NID_sha512, + "bf9fdd4107ef5a6070108771ac9eee4f0c8043bf0d04db772a47294f4137e2439d94b337" + "114b074e57e0cb78d0ccf352a2833e9788ee2a1a9ffeacd34f38fcefb86653d70c7dadd4" + "cf6548d608e70acdef6c7530974b92c813798add659752a8c72b05e1ad9c65c21834ce6f" + "be49d8a1426b5a54270794436d284364fac6ec1a", + "205f1eb3dfacff2bdd8590e43e613b92512d6a415c5951bda7a6c37db3aae39b9b7ec6ed" + "d256609e75373419087fa71f", + "04c9f1f63a18c761b077a1ec35fbb2de635db9b8592c36194a01769b57728c7755d4c79b" + "3d5b97a1a4631e30c86d03f13cf8c4a38770054d5cc9bb9182e6d4638242c4fd16e869ac" + "22e44c4b9402d594e0c6f5df6a9a7de32a4893d9f6588f1950", + "ecd395c5d8b7d6e6b2b19644e0d2e6086c912c6a0f5b8ed4b94b7290b65852c9741ce8ee" + "b08d8751ead8a183e17d76c6", + "e81331d78b438b0b8d98c1be03385ba5d614af182f1677f259126cc3de7eaac6c19b02be" + "955d936b6bf9c27c6796e6f0", + "17c2b7a8e0fc93909762aa9f86f9561e759ecb88f02337b2018363be6095d9e4324a6d32" + "96046686624b5efad6b52878"}, + {NID_secp384r1, NID_sha512, + "5d634fb39a2239256107dc68db19751540b4badac9ecf2fce644724401d6d632b3ae3b2e" + "6d05746b77ddc0c899878032248c263eda08d3d004d35952ad7a9cfe19343d14b37f9f63" + "2245e7b7b5fae3cb31c5231f82b9f1884f2de7578fbf156c430257031ba97bc6579843bc" + "7f59fcb9a6449a4cd942dffa6adb929cf219f0ad", + "e21e3a739e7ded418df5d3e7bc2c4ae8da76266a1fc4c89e5b09923db80a72217f1e9615" + "8031be42914cf3ee725748c1", + "040f753171922b5334f3dd2778a64ce2da8295121939beae71ad85e5344e893be0fd03cf" + "14e1f031adec098e0c4409449c45c10a0ffc0eb2f1cec5c89b698061108313ee7d449ad5" + "80efad344f0e7cf35be8a18fca620f112e57bdc746abdace55", + "d06bea06b25e6c30e866b1eb0657b45673e37b709013fb28fd7373afc8277cbc861354f8" + "21d0bd1927e52ec083a0f41f", + "e8d4a31dd0e7d2522be62a32608e744c3775ceb606dc897899f0c73f1a40ce9a8be854cd" + "506e65cd81fd7fa2c616cb7b", + "8151b681b6b6046d3c36f332d06d9ba7751e740631cdb759f88c50a25a8e950d5023df8a" + "15c77243743733c4feaf21d5"}, + {NID_secp384r1, NID_sha512, + "c9b4ff721b3e886f0dc05856ffff0aabb64a8504b1746a47fdd73e6b7ebc068f06ac7ffa" + "44c757e4de207fc3cbfaf0469d3ac6795d40630bcafe8c658627e4bc6b86fd6a2135afbc" + "18ccc8e6d0e1e86016930ca92edc5aa3fbe2c57de136d0ea5f41642b6a5d0ddeb380f245" + "4d76a16639d663687f2a2e29fb9304243900d26d", + "93434d3c03ec1da8510b74902c3b3e0cb9e8d7dccad37594d28b93e065b468d9af4892a0" + "3763a63eae060c769119c23c", + "04a52c25f2af70e5bc6a992ecef4ea54e831ed5b9453747d28aec5cffb2fcfee05be80c5" + "cbab21606b5507aa23878adee12cf2a9afeff83f3041dc8a05f016ccae58aa1a0e0dc6be" + "9d928e97f2598c9ba5e9718d5eb74c9cfb516fd8c09f55f5b9", + "13d047708ae5228d6e3bbada0e385afdb3b735b31123454fdf40afe3c36efed563fd2cce" + "84dcc45c553b0993d9ca9ec3", + "a0203f6f2c456baac03538ed506a182e57a25151802cf4b2557613b2fb615ebd4c50ddc5" + "05f87c048a45bad3b2fc371c", + "0eab56457c4080400fa3af124761d5a01fef35f9649edba8b97d22116386f3b8b363e97e" + "f3f82616d5d825df1cf865ef"}, + {NID_secp384r1, NID_sha512, + "db2ad659cf21bc9c1f7e6469c5f262b73261d49f7b1755fc137636e8ce0202f929dca446" + "6c422284c10be8f351f36333ebc04b1888cba217c0fec872b2dfc3aa0d544e5e06a9518a" + "8cfe3df5b20fbcb14a9bf218e3bf6a8e024530a17bab50906be34d9f9bba69af0b11d8ed" + "426b9ec75c3bd1f2e5b8756e4a72ff846bc9e498", + "e36339ddbe8787062a9bc4e1540690915dd2a2f11b3fe9ee946e281a0a2cbed426df405e" + "d9cb0eca42f85443efd09e0c", + "04a1ffb4b790d1593e907369b69de10b93cddbb02c6131f787422364d9d692768ef80979" + "70306cce16c97f2b10c538efa7d0692028601ea794d2563ffe9facc7273938fab47dd00b" + "8960be15549a9c2b3f8552583eb4c6cd212fe486c159c79153", + "2226f7329378cecd697f36ae151546643d67760856854661e31d424fae662da910e2157d" + "a9bb6dfbe3622296e0b5710c", + "20dcc25b67dd997621f437f65d78347fb57f8295b1b14453b1128203cda892bcfe726a2f" + "107d30975d63172e56f11d76", + "51cff592cbef75ef8321c8fa1e4229c4298b8180e427bee4e91d1e24fc28a729cf296beb" + "728960d2a58cf26773d8e2e2"}, + {NID_secp384r1, NID_sha512, + "dbd8ddc02771a5ff7359d5216536b2e524a2d0b6ff180fa29a41a8847b6f45f1b1d52344" + "d32aea62a23ea3d8584deaaea38ee92d1314fdb4fbbecdad27ac810f02de0452332939f6" + "44aa9fe526d313cea81b9c3f6a8dbbeafc899d0cdaeb1dca05160a8a039662c4c845a3db" + "b07be2bc8c9150e344103e404411668c48aa7792", + "5da87be7af63fdaf40662bd2ba87597f54d7d52fae4b298308956cddbe5664f1e3c48cc6" + "fd3c99291b0ce7a62a99a855", + "0454c79da7f8faeeee6f3a1fdc664e405d5c0fb3b904715f3a9d89d6fda7eabe6cee86ef" + "82c19fca0d1a29e09c1acfcf18926c17d68778eb066c2078cdb688b17399e54bde5a79ef" + "1852352a58967dff02c17a792d39f95c76d146fdc086fe26b0", + "1b686b45a31b31f6de9ed5362e18a3f8c8feded3d3b251b134835843b7ae8ede57c61dc6" + "1a30993123ac7699de4b6eac", + "9dbfa147375767dde81b014f1e3bf579c44dd22486998a9b6f9e0920e53faa11eed29a4e" + "2356e393afd1f5c1b060a958", + "e4d318391f7cbfe70da78908d42db85225c85f4f2ff413ecad50aad5833abe91bdd5f6d6" + "4b0cd281398eab19452087dd"}, + {NID_secp521r1, NID_sha224, + "58ec2b2ceb80207ff51b17688bd5850f9388ce0b4a4f7316f5af6f52cfc4dde4192b6dbd" + "97b56f93d1e4073517ac6c6140429b5484e266d07127e28b8e613ddf65888cbd5242b2f0" + "eee4d5754eb11f25dfa5c3f87c790de371856c882731a157083a00d8eae29a57884dbbfc" + "d98922c12cf5d73066daabe3bf3f42cfbdb9d853", + "1d7bb864c5b5ecae019296cf9b5c63a166f5f1113942819b1933d889a96d12245777a994" + "28f93de4fc9a18d709bf91889d7f8dddd522b4c364aeae13c983e9fae46", + "0401a7596d38aac7868327ddc1ef5e8178cf052b7ebc512828e8a45955d85bef49494d15" + "278198bbcc5454358c12a2af9a3874e7002e1a2f02fcb36ff3e3b4bc0c69e70184902e51" + "5982bb225b8c84f245e61b327c08e94d41c07d0b4101a963e02fe52f6a9f33e8b1de2394" + "e0cb74c40790b4e489b5500e6804cabed0fe8c192443d4027b", + "141f679033b27ec29219afd8aa123d5e535c227badbe2c86ff6eafa5116e9778000f5385" + "79a80ca4739b1675b8ff8b6245347852aa524fe9aad781f9b672e0bb3ff", + "06b973a638bde22d8c1c0d804d94e40538526093705f92c0c4dac2c72e7db013a9c89ffc" + "5b12a396886305ddf0cbaa7f10cdd4cd8866334c8abfc800e5cca365391", + "0b0a01eca07a3964dd27d9ba6f3750615ea36434979dc73e153cd8ed1dbcde2885ead575" + "7ebcabba117a64fcff9b5085d848f107f0c9ecc83dfa2fa09ada3503028"}, + {NID_secp521r1, NID_sha224, + "2449a53e0581f1b56d1e463b1c1686d33b3491efe1f3cc0443ba05d65694597cc7a2595b" + "da9cae939166eb03cec624a788c9bbab69a39fb6554649131a56b26295683d8ac1aea969" + "040413df405325425146c1e3a138d2f4f772ae2ed917cc36465acd66150058622440d7e7" + "7b3ad621e1c43a3f277da88d850d608079d9b911", + "17e49b8ea8f9d1b7c0378e378a7a42e68e12cf78779ed41dcd29a090ae7e0f883b0d0f2c" + "bc8f0473c0ad6732bea40d371a7f363bc6537d075bd1a4c23e558b0bc73", + "0400156cd2c485012ea5d5aadad724fb87558637de37b34485c4cf7c8cbc3e4f106cb1ef" + "d3e64f0adf99ddb51e3ac991bdd90785172386cdaf2c582cc46d6c99b0fed101edeeda71" + "7554252b9f1e13553d4af028ec9e158dbe12332684fc1676dc731f39138a5d301376505a" + "9ab04d562cc1659b0be9cb2b5e03bad8b412f2699c245b0ba2", + "1dc3e60a788caa5f62cb079f332d7e5c918974643dca3ab3566a599642cd84964fbef43c" + "e94290041fe3d2c8c26104d9c73a57a7d4724613242531083b49e255f33", + "12592c0be6cce18efb2b972cd193d036dcb850f2390fa8b9b86b2f876548bc424fb3bc13" + "c1e5c415fa09d0ecfcae5bf76fb23e8322d7eecb264a2ae6d20ef50d405", + "11bc9713be88e3b9912a3e5f5d7b56f20573e979b1a75d04ce339f724bddffa4665d2599" + "5fe24d32507d8a07c5e10169f5338ef2827737f7b0291752b21237217e3"}, + {NID_secp521r1, NID_sha224, + "7ba05797b5b67e1adfafb7fae20c0c0abe1543c94cee92d5021e1abc57720a6107999c70" + "eacf3d4a79702cd4e6885fa1b7155398ac729d1ed6b45e51fe114c46caf444b20b406ad9" + "cde6b9b2687aa645b46b51ab790b67047219e7290df1a797f35949aaf912a0a8556bb210" + "18e7f70427c0fc018e461755378b981d0d9df3a9", + "135ea346852f837d10c1b2dfb8012ae8215801a7e85d4446dadd993c68d1e9206e1d8651" + "b7ed763b95f707a52410eeef4f21ae9429828289eaea1fd9caadf826ace", + "04018d40cc4573892b3e467d314c39c95615ee0510e3e4dbc9fa28f6cd1f73e7acde15ad" + "7c8c5339df9a7774f8155130e7d1f8de9139ddd6dfe1841c1e64c38ea98243017021782d" + "33dc513716c83afe7ba5e7abef9cb25b31f483661115b8d6b5ae469aaf6f3d54baa3b658" + "a9af9b6249fd4d5ea7a07cb8b600f1df72b81dac614cfc384a", + "0c24acc1edb3777212e5b0bac744eadf4eda11fa150753b355bf96b189e6f57fc02284bb" + "22d8b3cd8bba7a09aae9f4ea955b382063425a6f8da2f99b9647b147172", + "183da7b8a9f9d5f08903359c1a2435b085fcf26a2ed09ab71357bb7634054acc569535e6" + "fe81d28233e4703005fc4bf83ce794d9463d575795aa0f03398e854cefd", + "0b3621145b9866ab7809139795cc30cd0404127a7f0fafa793660491009f6c53724fdb0b" + "1ffbf0fd51c131180b8a957fe66e76d2970247c024261c768dee9abbfb9"}, + {NID_secp521r1, NID_sha224, + "716dabdb22a1c854ec60420249905a1d7ca68dd573efaff7542e76f0eae54a1828db69a3" + "9a1206cd05e10e681f24881b131e042ed9e19f5995c253840e937b809dfb8027fed71d54" + "1860f318691c13a2eb514daa5889410f256305f3b5b47cc16f7a7dad6359589b5f4568de" + "4c4aae2357a8ea5e0ebaa5b89063eb3aa44eb952", + "1393cb1ee9bfd7f7b9c057ecc66b43e807e12515f66ed7e9c9210ba1514693965988e567" + "fbad7c3f17231aacee0e9b9a4b1940504b1cd4fd5edfaa62ba4e3e476fc", + "0401e855c935139c8092092cfa733db1292530506eeb2bbb1687f9602c36d97a6714e998" + "892d5d3b842d1896a6ece9d549e9792881a256256137b3dff180c96cc5d07b018d83b6e9" + "3cd287311f7bf7c1d7f9eeabcf0b69c12f2d8f40e333e81e956d968532a37a4c04d76187" + "4df293b484cd7053b03fdbc2fdcd3b4c412d6f272fb7c93fe6", + "1d98619bdc04735d30c222fc67da82c069aea5f449af5e8c4db10c1786c0cb9e6f2cc0bb" + "66fa6be18c485570d648dafcd0a973c43d5c94e9a9dacbd3170e53fa2a0", + "0bf47fabe107ce0ec03e2ad60a79b058e1bebb18568b6a8cdbe86032e71aa30c15766105" + "b2ea952cfa79bcab046df601159f96e179bbcf252dc68ac73d31481fdae", + "1f918fec69cd07d90f9d892b7117e7519c3224947f4262f1fd97077dd5386a6c78aeddff" + "3ee97e59ea353f06029f1336f0d6ef5c0f4b17ca59343a55319b7bfc3db"}, + {NID_secp521r1, NID_sha224, + "9cc9c2f131fe3ac7ea91ae6d832c7788cbbf34f68e839269c336ceef7bef6f20c0a62ea8" + "cc340a333a3002145d07eba4cf4026a0c4b26b0217a0046701de92d573d7c87a386a1ea6" + "8dc80525b7dcc9be41b451ad9f3d16819e2a0a0b5a0c56736da3709e64761f97cae2399d" + "e2a4022dc4c3d73c7a1735c36dbde86c4bc5b6f7", + "179fa164e051c5851e8a37d82c181e809a05fea9a3f083299b22684f59aa27e40dc5a33b" + "3f7949338764d46bfe1f355134750518b856d98d9167ef07aac3092c549", + "0401857cc7bbed20e87b3fd9a104956aa20c6502192910e0e7598410526ebfe1c99397b8" + "5189612a60c51fb8f4dd5cb08a8cd2e702563062dcb043410715c5323a004601fce8d135" + "284310d2f38c216030634b32cd223222f0d9d8d2b7c55477c4b8b74fc6c96a6092f34b05" + "ca44d3633a5037c2166c479a032bb4f949f89fc1ba5236d07d", + "16d9704c0cee791f2938bb2a8a595752a3635c2f557efeecefd719414b5f2aaf846080f5" + "82c76eae7a8fddf81859b49d0131c212524d55defa67dca1a9a28ca400f", + "1c9a4e51774384e8362876a87c572e6463a54413c7c6252c552ebb182f83e45ace436ade" + "4ca373d8a7216e83efb62c8b41c4d5132a0afa65078f16d189baca39187", + "1e92a7dd5fea29a666398e1df5775cbb5664fe6943fe4c1d2bba516b7543c84df584458e" + "53919c4ffab579a26fb3c892a5d1a77b0a07428c89350f8b559e627b014"}, + {NID_secp521r1, NID_sha224, + "14c69f8d660f7a6b37b13a6d9788eff16311b67598ab8368039ea1d9146e54f55a83b3d1" + "3d7ac9652135933c68fafd993a582253be0deea282d86046c2fb6fd3a7b2c80874ced28d" + "8bed791bd4134c796bb7baf195bdd0dc6fa03fdb7f98755ca063fb1349e56fd0375cf947" + "74df4203b34495404ebb86f1c7875b85174c574c", + "13dabca37130ba278eae2b3d106b5407711b0d3b437fbf1c952f0773571570764d2c7cb8" + "896a8815f3f1975b21adc6697898e5c0a4242092fc1b80db819a4702df4", + "0400bc2aebf40cd435bc37d73c09d05f2fd71321111a767c2b0d446f90dd4a186839c694" + "ceb734e027e7ee948f0f63e4d3f1656d3d543df23c342a599306909b34710901f4c98ac0" + "3f0718e58d5d1762c920445b11dbdd60ec7f60095809204e14965a4ecb0be6fea06adbac" + "8ba431d6f144c75c199225df2a619a34be99897125b3a10af8", + "0401187c8b89945a1e48cda9ee52167789f4121e67482a7ac797899f5d3d2e623aed31e4" + "adae08a8d43e69028fa074d2650317cbc765f6ed191cf0317b4bae57881", + "1e572afed754016fba43fc33e352932c4db65efcb84e2bd159b40fc5925893b161effc40" + "240be28d8c07154d2615f605c6f0451b976522d95afd37f46602df7a12a", + "030370c1c5352c2b663ac1858b42f69545b2f58ed5b2c007f303726977d3c756b5d644ec" + "6788f94c886f78269aa190a3d8d1ae10e4fd24d937c4556fb9e1953fd6d"}, + {NID_secp521r1, NID_sha224, + "8d8e75df200c177dbfe61be61567b82177ea5ec58e2781168d2277d2fd42668f01248ca3" + "eb29ffa2689b12ae40f9c429532b6d2e1f15891322b825a0a072a1c68fa09e78cfdef3e9" + "5ed6fdf7233a43cb68236560d49a3278f0b3f47cb08f475bd9ab2f60755ea4a1767de931" + "3b71a1b9ea87ef33f34682efbda263b0f8cc2f52", + "198681adbde7840d7ccd9cf1fb82056433fb4dd26bddf909af7b3b99da1ca2c05c8d4560" + "ecd80ba68f376f8b487897e374e99a9288ed7e3645cc0d00a478aae8d16", + "040057ce3777af7032f1f82308682e71fe09f88bf29dacd5018a725e1caa4b1e2bfdd894" + "fe618f9266f31ba089856dc9c1b70e4a2faa08b4b744d1aafcd5ae99e2c7360199bcfef2" + "021bc5890d7d39ec5dc0c26956801e84cae742cf6c50386eb289b6e97754dd25a94abf81" + "f1cb1b36935b5eb29f4b32a6516d2ff6a7d23064a0daec94b3", + "19d2d74ad8ee2d85048f386998a71899ef6c960b4ab324e5fd1c0a076c5a632fd0009500" + "076522e052c5c9806eef7056da48df6b16eb71cdf0f1838b0e21715fce0", + "18ecacbcffd5414bbb96728e5f2d4c90178e27733d13617e134ec788022db124374bbaa1" + "1e2c77fe3f38d1af6e998e1b0266b77380984c423e80ffa6ff2bcafd57a", + "1c727f34b6a378f3087721a54e9796499b597ecf6666b8f18312d67e1190a8a66e878efc" + "2367b551267494e0245979ef4deed6d2cbf2c3711af6d82ccfeb101a377"}, + {NID_secp521r1, NID_sha224, + "10631c3d438870f311c905e569a58e56d20a2a560e857f0f9bac2bb7233ec40c79de1452" + "94da0937e6b5e5c34fff4e6270823e5c8553c07d4adf25f614845b2eac731c5773ebbd71" + "6ab45698d156d043859945de57473389954d223522fbafecf560b07ef9ba861bcc1df9a7" + "a89cdd6debf4cd9bf2cf28c193393569ccbd0398", + "08c4c0fd9696d86e99a6c1c32349a89a0b0c8384f2829d1281730d4e9af1df1ad5a0bcfc" + "cc6a03a703b210defd5d49a6fb82536f88b885776f0f7861c6fc010ef37", + "040164ac88ed9afe137f648dd89cdd9956682830cac5f7c1a06d19a1b19f82bb1d22dfee" + "fea30d35c11202fed93fd5ce64835d27c6564d6e181287fa04a2d20994986b005cb83669" + "265f5380ccefe6b4f85fdf0049e6703f6f378a0b2e52ed0fbbcf300afebb722f4ed48e38" + "19cb976c1d60e2ba05646b478f6dfecfbae730e9644c297f00", + "189801432cba9bf8c0763d43b6ec3b8636e62324587a4e27905b09a58e4aa66d07d096db" + "ce87824e837be1c243dd741f983c535a5dd2f077aac8beee9918258d3cb", + "0917723f7241e8dc7cd746b699ab621d068dd3a90e906aaf0a4862744b96fd4e5ccdb9c7" + "796c27f7196e693d06ec209464c3ea60ad6313e9b77cceaa14767e6651c", + "0957b0ecdc3668f6efa5d0957615bcfffd6419c5e57579b74f960f65ae3fb9e8284322ff" + "710b066f7e0959ac926d3cf9a594bdb70bbec756c96910b26a2486dee9e"}, + {NID_secp521r1, NID_sha224, + "80aad6d696cbe654faa0d0a24d2f50d46e4f00a1b488ea1a98ed06c44d1d0c568beb4ab3" + "674fc2b1d2d3da1053f28940e89ba1244899e8515cabdd66e99a77df31e90d93e37a8a24" + "0e803a998209988fc829e239150da058a300489e33bf3dcdaf7d06069e74569fee77f4e3" + "875d0a713ccd2b7e9d7be62b34b6e375e84209ef", + "1466d14f8fbe25544b209c5e6a000b771ef107867e28ed489a42015119d1aa64bff51d6b" + "7a0ac88673bbc3618c917561cff4a41cdb7c2833dab5ebb9d0ddf2ca256", + "0401dc8b71d55700573a26af6698b92b66180cf43e153edadb720780321dbb4e71d28e0a" + "488e4201d207fc4848fe9dd10dcabec44492656a3ff7a665fe932445c82d0b01920b1633" + "1b7abeb3db883a31288ef66f80b7728b008b3cc33e03a68f68d9e653a86e3177bbc00014" + "fa5ea4c1608c0d455c2e2ac7bd8ab8519ebf19955edf1baf8d", + "160d04420e0d31b0df476f83393b1f9aff68389cc3299e42ef348d97646f7531a722b66d" + "dfb9501bbb5c4a41d84c78be7233b11489bceb817d23060e6017433fab8", + "08077aabd0a342f03f912007c586cfedfc63f93d1118f720d5b62b3ce141a60f86f111df" + "d8fc2e31a6778981f1a5e28f29a7369bd7897bb41240c8d3a9c170e0ee0", + "00abc75fc154b93840579457820957e89d1260fee0a4b9bb1946f61ca1e71afd76bb5e10" + "77b3e38ceb39d1fac5ef8b217c4110617b3ad118e02b3fcc2a39ef38613"}, + {NID_secp521r1, NID_sha224, + "8a7792a2870d2dd341cd9c4a2a9ec2da753dcb0f692b70b64cef2e22071389c70b3b188d" + "ea5f409fb435cbd09082f59de6bc2ff9e65f91b7acc51e6e7f8e513148cb3c7c4664f227" + "d5c704626b0fda447aa87b9d47cd99789b88628eb642ed250312de5ba6b25f3d5342a3cb" + "b7ebd69b0044ee2b4c9ba5e3f5195afb6bea823d", + "01a99fcf54c9b85010f20dc4e48199266c70767e18b2c618044542cd0e23733817776a1a" + "45dbd74a8e8244a313d96c779f723013cd88886cb7a08ef7ee8fdd862e7", + "0401912d33b01d51e2f777bdbd1ada23f2b1a9faf2be2f2a3b152547db9b149b697dd718" + "24ca96547462e347bc4ef9530e7466318c25338c7e04323b1ba5fd25ea716200bbe9b1e3" + "a84accd69b76b253f556c63e3f374e3de0d1f5e3600fc19215533b2e40d6b32c3af33314" + "d223ea2366a51d1a337af858f69326389276f91be5c466e649", + "14fafd60cb026f50c23481867772411bb426ec6b97054e025b35db74fe8ea8f74faa2d36" + "e7d40b4652d1f61794878510b49b7b4fe4349afccd24fc45fec2fd9e9e7", + "18b1df1b6d7030a23a154cacce4a2e3761cc6251ff8bf6c9f6c89d0a15123baef9b338ad" + "a59728349ce685c03109fcde512ed01a40afd2ca34e1bc02ecf2871d45c", + "0a399f9b9e21aeddf450429fec2dc5749e4a4c7e4f94cee736004dcc089c47635da22845" + "992cd076a4f0a01d2cc1b0af6e17b81a802361699b862157ad6cad8bd1d"}, + {NID_secp521r1, NID_sha224, + "f971bcd396efb8392207b5ca72ac62649b47732fba8feaa8e84f7fb36b3edb5d7b5333fb" + "fa39a4f882cb42fe57cd1ace43d06aaad33d0603741a18bc261caa14f29ead389f7c2053" + "6d406e9d39c34079812ba26b39baedf5feb1ef1f79990496dd019c87e38c38c486ec1c25" + "1da2a8a9a57854b80fcd513285e8dee8c43a9890", + "1b6015d898611fbaf0b66a344fa18d1d488564352bf1c2da40f52cd997952f8ccb436b69" + "3851f9ccb69c519d8a033cf27035c27233324f10e9969a3b384e1c1dc73", + "040110c6177ceb44b0aec814063f297c0c890671220413dbd900e4f037a67d87583eaf4b" + "6a9a1d2092472c17641362313c6a96f19829bb982e76e3a993932b848c7a9700f6e566c4" + "e49b2ee70a900dc53295640f3a4a66732df80b29f497f4ae2fa61d0949f7f4b12556967b" + "b92201a4f5d1384d741120c95b617b99c47a61e11c93a482d6", + "1a88667b9bdfe72fb87a6999a59b8b139e18ef9273261549bc394d884db5aa64a0bc7c7d" + "38a8ef17333478d2119d826e2540560d65f52b9a6dc91be1340cfd8f8f8", + "015f73def52ea47ddb03e0a5d154999642202e06e6734ac930c1dc84756c67bbb1cca9f2" + "1f92d61bfdb2052c5dd2833349610f68139393d77250a7662ef7bd17cbe", + "155c744a729f83b27d1f325a91e63a0d564fe96ff91eaa1bad3bff17d2abffa065d14a1d" + "20a04dd993f6ed3260b60bcc6401e31f6bc75aaafe03e8c1a9cd14d2708"}, + {NID_secp521r1, NID_sha224, + "ec0d468447222506b4ead04ea1a17e2aa96eeb3e5f066367975dbaea426104f2111c45e2" + "06752896e5fa7594d74ed184493598783cb8079e0e915b638d5c317fa978d9011b44a76b" + "28d752462adf305bde321431f7f34b017c9a35bae8786755a62e746480fa3524d398a6ff" + "5fdc6cec54c07221cce61e46fd0a1af932fa8a33", + "05e0d47bf37f83bcc9cd834245c42420b68751ac552f8a4aae8c24b6064ae3d33508ecd2" + "c17ec391558ec79c8440117ad80e5e22770dac7f2017b755255000c853c", + "0401a6effc96a7f23a44bf9988f64e5cfafdae23fa14e4bee530af35d7a4ddf6b80dcd0d" + "937be9dd2db3adcda2f5216fecbce867ee67e7e3773082f255156e31358c2f01e7760190" + "dfbe07ec2df87067597087de262c1e0a12355456faba91b2e7277050d73b924e14c0e93b" + "8457a8b3e1f4207ce6e754274f88ad75c000d1b2977edc9c1a", + "18afea9a6a408db1e7a7bb1437a3d276f231eacfc57678bfa229d78681cbe4e800e60653" + "32a3128db65d3aa446bb35b517dca26b02e106e1311881a95b0302d15e8", + "01c49b3c1d21f1678bdbe1ac12167e95e06617190bdee1a729c1c649210da19e2e210f66" + "89e1310513bfe2ac6c0f4ee5f324f344b31b18df341eaadb826d07adc9b", + "129d4931ba457443012f6ffecd002f2abc3a4b65a58fee8457917ebcf24b29a1d3055b7f" + "c62939a74ebb0c3582172ee7c3c75e0b2fa2367c6e04df63a7a91d593ad"}, + {NID_secp521r1, NID_sha224, + "d891da97d2b612fa6483ee7870e0f10fc12a89f9e33d636f587f72e0049f5888782ccde3" + "ea737e2abca41492bac291e20de5b84157a43c5ea900aef761006a4471072ab6ae6d515f" + "fe227695d3ff2341355b8398f72a723ae947f9618237c4b6642a36974860b452c0c62026" + "88bc0814710cbbff4b8e0d1395e8671ae67ada01", + "1804ab8f90ff518b58019a0b30c9ed8e00326d42671b71b067e6f815ac6752fa35016bd3" + "3455ab51ad4550424034419db8314a91362c28e29a80fbd193670f56ace", + "0400a79529d23a832412825c3c2ad5f121c436af0f29990347ecfa586ce2e57fd3c7e062" + "4d8db1f099c53473dbc2578f85416ad2ac958a162051014fb96bf07f9e1d17017c0750f2" + "6df0c621d2d243c6c99f195f0086947b1bf0f43731555f5d677e2d4a082fb5fe8da87e15" + "92a5fa31777da3299cede5a6f756edf81c85b77853388bb3ab", + "042d7c36fec0415bc875deb0fab0c64548554062e618aee3aa6670ffd68ab579fe620d3a" + "9316357267fd3111c0ed567dca663acd94b646d2ba0771953cd9690ef42", + "0d01dfbef126febbdfa03ef43603fd73bc7d2296dce052216e965fed7bb8cbbc24142bfc" + "ddb60c2e0bef185833a225daa0c91a2d9665176d4ad9986da785f4bfcf0", + "16627e2614dbcd371693c10bbf579c90c31a46c8d88adf59912c0c529047b053a7c77151" + "42f64dcf5945dbc69ff5b706c4b0f5448d04dd1f0b5a4c3765148bf253d"}, + {NID_secp521r1, NID_sha224, + "924e4afc979d1fd1ec8ab17e02b69964a1f025882611d9ba57c772175926944e42c68422" + "d15f9326285538a348f9301e593e02c35a9817b160c05e21003d202473db69df695191be" + "22db05615561951867f8425f88c29ba8997a41a2f96b5cee791307369671543373ea91d5" + "ed9d6a34794d33305db8975b061864e6b0fe775f", + "0159bff3a4e42b133e20148950452d99681de6649a56b904ee3358d6dd01fb6c76ea0534" + "5cb9ea216e5f5db9ecec201880bdff0ed02ac28a6891c164036c538b8a8", + "04012d7f260e570cf548743d0557077139d65245c7b854ca58c85920ac2b290f2abfeccd" + "3bb4217ee4a29b92513ddce3b5cbf7488fb65180bb74aeb7575f8682337ef50175601862" + "30c7e8bff0bffce1272afcd37534f317b453b40716436a44e4731a3ec90a8f17c53357bc" + "54e6ff22fc5b4ca892321aa7891252d140ece88e25258b63d5", + "14b8a30f988cefdc0edec59537264edb0b697d8c4f9e8507cf72bc01c761304bd2019da1" + "d67e577b84c1c43dd034b7569f16635a771542b0399737025b8d817e1c3", + "0fc50939ebca4f4daa83e7eaf6907cb08f330c01d6ea497b86becda43dfcad47cb5c48f5" + "eb2cc924228628070bcd144088c449a7873242ba86badf796097dbecd6d", + "0ccb6463c4301ba5c043e47ed508d57dd908fd0d533af89fd3b11e76343a1cf2954ce90b" + "0eb18cbc36acd6d76b3906612d8a0feec6ebed13d88650ed9c708b28a11"}, + {NID_secp521r1, NID_sha224, + "c64319c8aa1c1ae676630045ae488aedebca19d753704182c4bf3b306b75db98e9be4382" + "34233c2f14e3b97c2f55236950629885ac1e0bd015db0f912913ffb6f1361c4cc25c3cd4" + "34583b0f7a5a9e1a549aa523614268037973b65eb59c0c16a19a49bfaa13d507b29d5c7a" + "146cd8da2917665100ac9de2d75fa48cb708ac79", + "17418dfc0fc3d38f02aa06b7df6afa9e0d08540fc40da2b459c727cff052eb0827bdb3d5" + "3f61eb3033eb083c224086e48e3eea7e85e31428ffe517328e253f166ad", + "04000188366b9419a900ab0ed9633426d51e25e8dc03f4f0e7549904243981ec469c8d6d" + "938f6714ee620e63bb0ec536376a73d24d40e58ad9eb44d1e6063f2eb4c51d009889b920" + "3d52b9243fd515294a674afd6b81df4637ffdddc43a7414741eda78d8aa862c9cbbb618a" + "cec55bb9a29aac59616fc804a52a97a9fc4d03254f4469effe", + "1211c8824dcbfa0e1e15a04779c9068aed2431daeac298260795e6a80401f11f6d52d36b" + "cee3cfa36627989c49d11475163aa201d2cd4c5394144a6bb500bbaf02b", + "1d59401b8ac438855d545a699991142685077a409de2418c7ccfe01a4771b3870e76287a" + "9654c209b58a12b0f51e8dc568e33140a6b630324f7ef17caa64bf4c139", + "143af360b7971095b3b50679a13cd49217189eaee4713f4201720175216573c68f7ac6f6" + "88bfe6eb940a2d971809bf36c0a77decc553b025ed41935a3898685183b"}, + {NID_secp521r1, NID_sha256, + "8ab8176b16278db54f84328ae0b75ef8f0cd18afdf40c04ad0927ed0f6d9e47470396c8e" + "87cde7a9be2ffbfe6c9658c88b7de4d582111119c433b2e4a504493f0a1166e3a3ea0d7b" + "93358f4a297d63f65a5e752f94e2ee7f49ebcc742fa3eb03a617d00c574245b77a200338" + "54d82964b2949e2247637239ab00baf4d170d97c", + "1e8c05996b85e6f3f875712a09c1b40672b5e7a78d5852de01585c5fb990bf3812c32455" + "34a714389ae9014d677a449efd658254e610da8e6cad33414b9d33e0d7a", + "04007d042ca19408524e68b981f1419351e3b84736c77fe58fee7d11317df2e850d960c7" + "dd10d10ba714c8a609d163502b79d682e8bbecd4f52591d2748533e45a867a0197ac6416" + "111ccf987d290459ebc8ad9ec56e49059c992155539a36a626631f4a2d89164b985154f2" + "dddc0281ee5b5178271f3a76a0914c3fcd1f97be8e8376efb3", + "0dc8daaacddb8fd2ff5c34a5ce183a42261ad3c64dbfc095e58924364dc47ea1c05e2599" + "aae917c2c95f47d6bb37da008af9f55730ddbe4d8ded24f9e8daa46db6a", + "09dd1f2a716843eedec7a6645ac834d4336e7b18e35701f06cae9d6b290d41491424735f" + "3b57e829ad5de055eaeef1778f051c1ee152bf2131a081e53df2a567a8a", + "02148e8428d70a72bc9fa986c38c2c97deda0420f222f9dc99d32c0acba699dc7ba0a2b7" + "9ce5999ff61bd0b233c744a893bc105bca5c235423e531612da65d72e62"}, + {NID_secp521r1, NID_sha256, + "c4bc2cec829036469e55acdd277745034e4e3cc4fcd2f50ec8bd89055c19795a1e051ccf" + "9aa178e12f9beab6a016a7257e391faa536eaa5c969396d4e1ade36795a82ebc709d9422" + "de8497e5b68e7292538d4ccdc6dd66d27a3ece6a2844962b77db073df9489c9710585ba0" + "3d53fa430dbc6626dc03b61d53fc180b9af5dea6", + "0b65bf33b2f27d52cbfabcadce741e691bf4762089afd37964de1a0deda98331bf8c7402" + "0a14b52d44d26e2f6fa7bcddbe83be7db17a0c8a1b376469cf92c6da27c", + "04010038bb9a7aea626de68c14c64243150e72c69e2f8a1ab922bfbdaa6f33d24fb4542c" + "0324357b0dd640bbcd07632ecd253f64ca2bfbfbf3de9b24fffd0568ab82da00faf867d9" + "5308cc36d6f46844a0f535dc70f9768eed011a2464d2f308fa1d8e72c3616aec7e705169" + "08183ffce7fdd36984a15f73efaa3858c2edf16a784d40e6c2", + "14aeb96c57d99677a1f5e4588064215e7e9af4027bfb8f31ff6126dbf341b8e6f719465e" + "4273e91ba32670feca802549808322b7ee108bb20653cf20f93284d365f", + "075ead62edf7d86c5d1bc2443d1aeb5dc034fd999e6ea012cef7499d9d050cd97d262095" + "884e9fc89a42e15bd3dee80fe3c1ba10f4caabc4aabb86347023028b663", + "129a992a6ff66d41948d11fa680f732b1a74315b804c982805190ed9d2fae223f2b14998" + "0b9241998cdea0c5672595a8a49d5186a0ef7a46c0a376f925bdda81726"}, + {NID_secp521r1, NID_sha256, + "1c1b641d0511a0625a4b33e7639d7a057e27f3a7f818e67f593286c8a4c827bb1f3e4f39" + "9027e57f18a45403a310c785b50e5a03517c72b45ef8c242a57b162debf2e80c1cf6c7b9" + "0237aede5f4ab1fcaf8187be3beb524c223cc0ceff24429eb181a5eea364a748c7132148" + "80d976c2cd497fd65ab3854ad0d6c2c1913d3a06", + "02c4e660609e99becd61c14d043e8b419a663010cc1d8f9469897d7d0a4f076a619a7214" + "a2a9d07957b028f7d8539ba7430d0b9a7de08beeeae8452d7bb0eac669d", + "0400fb3868238ca840dbb36ecc6cf04f5f773ea0ab8e8b0fdcf779dc4039a8d7146a4175" + "04e953c0cb5e7f4e599cc2c168deda8b7f16084b5582f89f2ece4cae5167f701f90b5c15" + "eeda48e747cf3ee8183166a49dbfac6161cbd09d29d40a6854f4c495e88a435892a920cd" + "aad20d41985890b648badd4f0a858ffcbd9afdfc23134ede18", + "1f875bbf882cd6dd034a87916c7b3ba54b41b2ea2ce84ebaf4e393fcf7291fee09dec2b5" + "bb8b6490997c9e62f077c34f0947fe14cec99b906dd6bf0b5d301e75ca1", + "07aa70425697736b298233249f5d0cf25c99e640c9ff88035ef1804820e1bfe7d043755f" + "02d7a079494f7fa6dc26740c4e6b7b430c63f29c67bbd3a5c88d2f0e8d1", + "0e0d42e4ff11cf5be37a9fda348514d5097a662f214687cbfb28ff42d635b13029871ca4" + "f464bb1fbce02d5da4d5fb61b2a071844259fc863d136197bec3a61e7c7"}, + {NID_secp521r1, NID_sha256, + "adb5f069b2b501a3ebb83d4f1808eb07710ac4a7b12532996855a20bcc54b2f76812915f" + "632163c3654ff13d187d007152617cf859200194b59c5e81fc6cc9eb1ceb75d654050f26" + "0caa79c265254089270ccd02607fdcf3246119738c496dc3a4bd5d3be15789fc3d29a08d" + "6d921febe2f40aef286d5d4330b07198c7f4588e", + "17c3522007a90357ff0bda7d3a36e66df88ca9721fb80e8f63f50255d47ee819068d018f" + "14c6dd7c6ad176f69a4500e6f63caf5cf780531004f85009c69b9c1230c", + "04013a4bea0eed80c66ea973a9d3d4a90b6abbb5dee57d8affaf93390a8783a20982eba6" + "44d2e2809f66530adeeee7f9a1da7515447e9ba118999f76f170c375f621f7012f9dfaee" + "40a75d8442b39b37a5c19ea124b464236e9b9a31bae6780cfd50f7ea4a700154b5ea0fee" + "b64e9b35a1b0e33e46900cca1f34d13bb17e5017769841af27", + "18388a49caeda35859ef02702c1fd45ff26991998bd9d5e189c12c36cdae3f642ddd4a79" + "561bd1d3e1cd9359de8f5c9e1604a312d207a27b08a6033f2741794ced5", + "15c6264795837dfea19f91876455f564f073c5c84a3c9d76e67872ae0447ba0d4850d872" + "1302b25bec7ebfedd2721de140b2f3dead547042b24b0876117e7093cc1", + "060eb74236c189a28ed20bd0822eb22d75f7d97c9043a3c8e3f6d4c90bc8ca02ac4d37c1" + "171c799a1c7dfd2fcbf83406b5e48c051e0fbf0fd937bfe6c3db4e18154"}, + {NID_secp521r1, NID_sha256, + "f253484d121d1ce8a88def6a3e9e78c47f4025ead6f73285bf90647102645b0c32d4d867" + "42a50b8b7a42d5f6156a6faf588212b7dc72c3ffd13973bdba732b554d8bffc57d04f816" + "7aef21ee941ee6ffb6cce0f49445bd707da8deb35dca650aaf761c3aa66a5ebccddd15ae" + "e21293f63061a7f4bfc3787c2cd62c806a1a9985", + "0c4dad55871d3bd65b016d143ddd7a195cc868b3048c8bbcb1435622036bdb5e0dec7178" + "ca0138c610238e0365968f6ddd191bbfacc91948088044d9966f652ff25", + "040014858a3b9bd426b678fdcf93fc53d17e7a9e8fe022442aaaba65399d12fd3a6a3819" + "58fb0f07ac6088f4e490506ec0f1ab4d0dbd461126f7eb46ff69cfa8bd88af018c18ce29" + "ecc6d79d26a2de0cd31c4b32e84b5e90f6ba748f86c5afbd89618aceb9079460cbd1a826" + "1ed5476973e61bf1d17ea78b022387443800c9247d21dde550", + "05577108f4187a173e5c29e927a8fc8f5ffd37e184254a6e381ff1018955aec91a35f300" + "85e8cee6a7555c10f9efdce26d62f2b4b52dfdbaeafc3a30983e2d50d5b", + "0344375ae7c804cbe32ced7a20976efae5d9c19eb88b6e24514d1d0cfb728b0f4601098b" + "18b2e98f42b5222dd5237d4d87767007bf5acb185c5526d72047e2cb1a1", + "02de4cfa908c73c1102d6fb7062baf54a056a9517701e036c9c51e09899d60051612d593" + "48945f845dffebec5aa395b2fac7229929033615788777306ccad96d0a3"}, + {NID_secp521r1, NID_sha256, + "33bab1c369c495db1610965bc0b0546a216e8dd00cd0e602a605d40bc8812bbf1ffa6714" + "3f896c436b8f7cf0bed308054f1e1ff77f4d0a13c1e831efbd0e2fcfb3eadab9f755f070" + "ba9aeaceb0a5110f2f8b0c1f7b1aa96a7f2d038a1b72e26400819b1f73d925ea4e34d6ac" + "af59d0a461a34ce5d65c9c937a80e844e323a16d", + "03d4749fadcc2008f098de70545a669133c548ce0e32eec1276ff531bcff535331445557" + "28ad8906d17f091cc0514571691107350b6561858e90dbe19633aaf31bf", + "04010fe5986b65f6e65d13c88c4d2aed781a91026904f82129d46779bdadaf6b733c845a" + "934e941ab4a285efdea9c96ecc9dc784d87e4d937b42c337b3a9cb111a96000077853768" + "a2a4d6f596f57414e57ec60b76d3cd5ece8351cd1f335ebcb8801a3d91fb82c65caaeb5c" + "31eea9918367bb5906863ff3ccaf7a6cee415e0d75c15ac2e0", + "1fbb4de337b09e935a6dc6215ffcfcb85d236cc490585e73251a8b8bac37cfa36c5d1df5" + "f4536d33659be1e7a442529a783452f7efda74a4f661b6a127f9248aaf7", + "09d8f10eeff6178594c89d6e8184f9502117384813243ddf9ccf3c8eac5dc6502c472dfc" + "1487a5caffc569f7dedd14a8ebcb310e9bacdb79fb6655aba026cdf87f2", + "0f74236c7915d638708d17c9f10e39dda358faf9bbb821d8dcda0d151aac143bfb165ad0" + "a23a65cd3de532e32cad928728f5ae1c16f58fc16577f3ca8e36f9e708b"}, + {NID_secp521r1, NID_sha256, + "08c8b7faaac8e1154042d162dca1df0f66e0001b3c5ecf49b6a4334ce4e8a754a1a8e4da" + "f8ec09cf1e521c96547aed5172ef852e82c03cddd851a9f992183ac5199594f288dbcc53" + "a9bb6128561ff3236a7b4b0dce8eaf7d45e64e782955ee1b690ce6a73ece47dc4409b690" + "de6b7928cbe60c42fc6a5ddf1d729faf1cc3885e", + "096a77b591bba65023ba92f8a51029725b555caf6eff129879d28f6400e760439d6e69ce" + "662f6f1aecf3869f7b6057b530a3c6ff8ed9e86d5944f583ee0b3fbb570", + "0400fdf6aed933dba73913142ef8bdcd4b760db8500831cd11d7707ab852a6372c05d112" + "a1e7fbc7b514c42142c7370d9f4129493cd75cc6f2daf83747078f15229db600ef91dffb" + "3c43080a59534b95ca585ee87f6145f6a0199b2b82c89f456d8bd8e6ac71c78039c08177" + "184484eb2ebd372f189db3a58fab961a75a18afec1ee32764a", + "13aa7b0471317a2a139c2f90df1c40d75e5a8a830fbaf87030fffdb2ef6f2c93d1310c9e" + "d7fe9d7bcd4fe46537ff2495bc9c4f0aaff11461f5e4bebbfbce9a8740a", + "1c7a21800962c91d4651553633b18612d931bb88bff8b743ed595b4e869437e50f8e84fb" + "f334c99061db123a1c40b73b07e203790561a37df65a660355ba2017d78", + "1301e1782559a38f1ca0eebe9bed0f5c7c33103d506a24f8a688f500ee1fe37f97b66853" + "19279e82e6fe43cfd823ccbc123309974cffa76c4f8d41ec02a3cbc45f1"}, + {NID_secp521r1, NID_sha256, + "ba74eed74282811631bd2069e862381e4e2a1e4e9a357b1c159a9ce69786f864b60fe90e" + "eb32d8b72b099986fc594965a33285f7185b415df58fead7b8b50fc60d073680881d7435" + "609ad1d22fd21e789b6730e232b0d2e888889fb82d6ad0337ab909308676164d4f47df44" + "b21190eca8ba0f94995e60ad9bb02938461eee61", + "015152382bfd4f7932a8668026e705e9e73daa8bade21e80ea62cf91bd2448ebc4487b50" + "8ca2bdaaf072e3706ba87252d64761c6885a65dcafa64c5573c224ae9e6", + "04000b8c7c0186a77dc6e9addd2018188a6a40c3e2ba396f30bbd9293dba2841d57d6086" + "6b37f587432719b544d8bf7eb06d90a8c0dc9c93b0c53d53b2f667077228ca01dd2e5c73" + "ab908ae34f701689f1cd3cf5186d3a2bc941e208bf3ef970e5e429ee9b154d73286b2e5d" + "a423e75b7c7b78c7bdf915da92279db43265a0cdefca51f86a", + "0d03506999f5cc9ec3304072984a20a9c64a22ad9b418495ca904f4bbddc96e76d34672c" + "b52763339d3f3bc5b1701c00a675b972797e3a086314da1a8d338436566", + "085406c0ff5ec91f598bb579ad8714ad718c3e133d5dcc2e67c5d2339c146b69919cac07" + "f3bc2bda218f4c7c8be04855e2ca6fff7fbdc4fc0fda87c8c3081cad4f5", + "1b45f2066e583636215ae135afc202b8bf3f301eccff2e1c0198b9aeddf695fa8179488e" + "7b622fc307f601e2f6551815117cc836bb09ef888f8e64a45d9c84ad30c"}, + {NID_secp521r1, NID_sha256, + "dc71f171a28bdc30968c39f08f999b88dc04c550e261ecf1124d67f05edeae7e87fe9b81" + "35a96fe2bc3996a4f47213d9d191184a76bd6310e1ee5cb67ea7fc3ef6f641a0ba165198" + "040fa668192b75a4754fc02c224bd4a74aade5a8c814adf151c2bfeda65165a04ef359e3" + "9847c84e312afb66d4cd1db50d41ef3fe5f31296", + "1750ff0ca0c166560b2034bc5760fe0b3915340bc43216e9de0c1d4a76550e8b2036e8b8" + "74230f8d29354aed43e183610f24fd4abd4b0be2f111dae942bd7a121f7", + "0401b4b8947192a7c0166c0e0b2791e217370836283e805f3ee11cfb78445aba3c5bc39f" + "e594e01916617ad59e7c8e740d8f2d07d88905d3f33bd5e51aafd4943c5dc601175d1172" + "32836c28e717ce2a55e59f4ec550effde30d18e3d99e42c6aa2283c7b3e7f2f6ff1fca60" + "5dde78c3a5bffa689347b4c93f51ba59a1787bb7d5e43861dc", + "023645023d6bdf20652cdce1185c4ef225c66d54f18632d99ccf743bf554d04c214c88ce" + "52a4f71ec75c899ad1b3c07c34112ca20b55c217ff1d72c9528e2774ce8", + "1e933f68ce0f8403cb16822b8e0564b1d39a35f27b53e4ae0bcdff3e051759464afbc349" + "98ba7c8a7ee34ef6c1aaa722cffe48356fd0b738058358d4c768b3186c1", + "0a67368a305508ce6d25d29c84f552a4a513998990fef4936244f891a2909c30d5fdc9e8" + "a267ecbf3c597138f4a08f7e92bee57d5420eadd700fee864bf78b2614b"}, + {NID_secp521r1, NID_sha256, + "b895788d7828aaeace4f6b61a072ffa344d8ea324962ba6dab5efda93f65bf64a0f2ac6d" + "5721d03ee70e2aef21cdba69fd29040199160e3a293b772ffb961ed694a8dc82800dab79" + "367a4809a864e4aff6bc837aaa868e952b771b76591c0bb82249034e3208e593d85973d3" + "fea753a95b16e221b2561644535c0131fe834ae7", + "023048bc16e00e58c4a4c7cc62ee80ea57f745bda35715510ed0fc29f62359ff60b0cf85" + "b673383b87a6e1a792d93ab8549281515850fa24d6a2d93a20a2fff3d6e", + "0400ba3dc98326a15999351a2ec6c59e221d7d9e7ee7152a6f71686c9797f3f330d31501" + "23620d547813ba9d7cc6c6d35cc9a087d07dff780e4821e74ad05f3762efd6018b051af9" + "824b5f614d23ecadd591e38edbfe910ad6cbebc3e8a6bec11ea90691c17deb3bc5f34a4a" + "3acd90b7b10f521f6ee7b3cfbfdc03b72d5a8783a4a77c3e4c", + "06099d2667f06c58798757632d07d8b3efbe9c1323efb0c244be6b12b3b163ba1b7cf524" + "6c98dcc0771665a66696d687af5f28ed664fd87d5093df6427523d4db84", + "10dc80ea853064a2ba5a781f108aca3785c5ec0aa45aa05ba31d4de671170797589e863d" + "54a3a986aadf6f670277f50355713dfb27d4ec7e348f787910b3cd668cd", + "018572bfad4f62e3694d1f2e6ffd432faed2e2b9d7e3611a07138212f1e79e6c394839f7" + "cfae96bc368422630016fb9346681eadc5f9699e7331c3b5fde6d65e4c6"}, + {NID_secp521r1, NID_sha256, + "2c5bd848c476e34b427cfe5676692e588e1957957db7b5704492bd02104a38216535607f" + "5d092dc40020130c04a3aaf0f1c52409834926d69a05d3f3188187a71d402a10ba34eac8" + "629b4c6359b1095f30f710219298bf06b9f19bfc299981d7e251ca232a0a85338a7e0246" + "4731d1b25d4a1f68baf97064516590644820c998", + "02b8b866ce4503bb40ffc2c3c990465c72473f901d6ebe6a119ca49fcec8221b3b4fa7ec" + "4e8e9a10dbd90c739065ad6a3a0dd98d1d6f6dcb0720f25a99357a40938", + "0401b8c7a169d5455f16bfe5df1ba5d6ec9c76e4bad9968d4f5f96be5878a7b6f71d74bf" + "ac0076dd278bc4630629f3294646f17d6b6c712b0087e2c4d576039cfdc8b9018faffd54" + "22dfd1b61432fa77b9a288b2b7d546656c0dcca3032179e6f45ee3cf61d6a447fc51731c" + "b54457343a41569fcf78cef42895f4da5efcb14ea1fc065f8d", + "0ac89e813f94042292aa1e77c73773c85cf881a9343b3f50711f13fa17b50f4e5cb04ac5" + "f6fc3106a6ef4c9732016c4e08e301eefac19199459129a41a7589e0628", + "05bc7a253a028ee8b7253979b8d689d41d8df6fae7736341f22e28b6faf0cbbdebbd2ef4" + "d73e56d2021af2c646dc15539a7c1e1c4dc9c7674808bd7968d8a66f947", + "0fd71575837a43a4cf1c47d0485cfd503c2cf36ebcea0fdef946ad29acb7fb2e7c6daf6b" + "4eb741eb211081aed6207d02569f1518988f275ad94c7fd4735cb18a92e"}, + {NID_secp521r1, NID_sha256, + "65a0b97048067a0c9040acbb5d7f6e2e6ac462e1e0064a8ce5b5bbf8e57059e25a3ef8c8" + "0fc9037ae08f63e63f5bdb9378c322ad9b2daf839fad7a75b1027abb6f70f110247da7e9" + "71c7c52914e5a4f7761854432fa16b2a521e7bcaee2c735a87cad20c535bf6d04a87340c" + "229bf9af8647eedca9e2dc0b5aa90f7fea3cdc0a", + "0a43b32ad7327ec92c0a67279f417c8ada6f40d6282fe79d6dc23b8702147a31162e6462" + "91e8df460d39d7cdbdd7b2e7c6c89509b7ed3071b68d4a518ba48e63662", + "040172fb25a3e22c2a88975d7a814f3e02d5bb74cfb0aaa082c5af580019b429fddd8c7f" + "9e09b6938f62e8c31019b25571aaceef3c0d479079db9a9b533ee8e1670abd00ff551622" + "3b6cc7c711705f15b91db559014e96d3839249c5c849f2aced228a8998177a1e91177abb" + "b24b57a8ea84d944e0c95da860ae0925f1b40c0e1b7c9e0a46", + "0383eda042e06c0297fbd279a2ad40559c5c12ad458f73458eebcc92b308d3c4fcec20a5" + "b59f698e16fa6ea02dba8661b6955f67c052f67b0a56460869f24cfdf7d", + "1b9c35356b9d068f33aa22a61370dae44a6cb030497a34fb52af23c6b684677370268f06" + "bb4433be6795a71de570088aec17ce0c9933d2f76c7edce7f406f62fedd", + "06f07ea453cfa20ad604ba855332f62834657b0b795684d50c1562a675456e37f4dae45f" + "0df47d8e27e47bc9ce9c9cbba1554c5b94b0b17401b73c8d0c0902c6cc4"}, + {NID_secp521r1, NID_sha256, + "d6e366a87808eea5d39fe77cac4b8c754e865a796062e2ec89f72165cd41fe04c4814806" + "8c570e0d29afe9011e7e7a2461f4d9897d8c1fa14b4ff88cab40059d17ab724f4039244e" + "97fcecb07f9ffeec2fb9d6b1896700fe374104a8c44af01a10e93b268d25367bf2bef488" + "b8abcc1ef0e14c3e6e1621b2d58753f21e28b86f", + "03c08fdccb089faee91dac3f56f556654a153cebb32f238488d925afd4c7027707118a37" + "2f2a2db132516e12ec25f1664953f123ac2ac8f12e0dcbbb61ff40fb721", + "040193301fc0791996ca29e2350723bd9aa0991ddbb4a78348ee72bdcd9ed63ce110ba34" + "96f2ce0331b5c00d4d674c1b70114e17ce44a73c3e16bab14ed1ee924202e400aea9b288" + "cfb2933ec0a40efa8e2108774e09b3863b3193d0dac6cc16ccaa5bd5f9ce133aec5cd3b6" + "2cbaeec04703e4b61b19572705db38cfaa1907c3d7c785b0cd", + "0d0e90d5ee7b5036655ad5c8f6a112c4b21c9449ca91c5c78421e364a2160bbac4428303" + "657bc11ea69f59fb0fe85a41b8f155a362343094456fd2a39f2a79e4804", + "1a8c23a2965d365a4c2ffd0802ae8b3a69c6b84a1ba77fd8a5f2f61e8ec3a1dcb336f136" + "e2a997252eaa94caf9b5ad6c9ecff5bf33abf547ca84985bb89908a11d7", + "1cc42a2dd97aa42b9df5ea430e0d4cb13106dd6da6e8c9315c96ed7b052db365bbde6960" + "c9a965954a4398c18ea7db9593bbfc3c3b6b3466ff806fccac3de6424ab"}, + {NID_secp521r1, NID_sha256, + "f99e1d272d0f5fb9c4f986e873d070ec638422bc04b47c715595e2cf1a701cdf88bc6c4b" + "20085b357bad12ccba67cac8a5ca07f31ba432f9154ff1fadefd487a83a9c37e49fb70a2" + "f170e58889cab0552e0a3806ccfa2a60d96e346851d84b7de6d1a4b8cf37567dc161a84f" + "13421e3412457d4bc27f6213453c8519a2d7daa2", + "0969b515f356f8bb605ee131e80e8831e340902f3c6257270f7dedb2ba9d876a2ae55b4a" + "17f5d9acd46c1b26366c7e4e4e90a0ee5cff69ed9b278e5b1156a435f7e", + "0400fc7ae62b05ed6c34077cbcbb869629528a1656e2e6d403884e79a21f5f612e91fc83" + "c3a8ac1478d58852f0e8ba120d5855983afd1a719949afa8a21aec407516c300aa705da6" + "459a90eaa2c057f2e6614fb72fc730d6fdebe70e968c93dbc9858534768ea2666553cd01" + "db132331441823950a17e8d2345a3cab039c22b21bfe7bd3b9", + "19029260f88e19360b70c11107a92f06faa64524cfbd9f70fecf02bd5a94f390582a7f4c" + "92c5313bb91dc881596768d86f75a0d6f452094adbe11d6643d1a0b2135", + "07f2158e9b9fa995199608263969498923cf918fdc736427c72ce27ce4a3540dce2e8e5e" + "63a8fc7ba46f7fa42480efbf79c6ed39521f6e6ec056079e453e80a89d9", + "08e349eed6f1e28b0dbf0a8aeb1d67e59a95b54a699f083db885f50d702f3c6a4069591a" + "faa5b80b3c75efb1674ebd32c7ead0040d115945f9a52ee3a51806cad45"}, + {NID_secp521r1, NID_sha256, + "91f1ca8ce6681f4e1f117b918ae787a888798a9df3afc9d0e922f51cdd6e7f7e55da996f" + "7e3615f1d41e4292479859a44fa18a5a006662610f1aaa2884f843c2e73d441753e0ead5" + "1dffc366250616c706f07128940dd6312ff3eda6f0e2b4e441b3d74c592b97d9cd910f97" + "9d7f39767b379e7f36a7519f2a4a251ef5e8aae1", + "013be0bf0cb060dbba02e90e43c6ba6022f201de35160192d33574a67f3f79df969d3ae8" + "7850071aac346b5f386fc645ed1977bea2e8446e0c5890784e369124418", + "040167d8b8308259c730931db828a5f69697ec0773a79bdedbaaf15114a4937011c5ae36" + "ab0503957373fee6b1c4650f91a3b0c92c2d604a3559dd2e856a9a84f551d9019d2c1346" + "aadaa3090b5981f5353243300a4ff0ab961c4ee530f4133fe85e6aab5bad42e747eee029" + "8c2b8051c8be7049109ad3e1b572dda1cac4a03010f99f206e", + "1a363a344996aac9a3ac040066a65856edfb36f10bb687d4821a2e0299b329c6b60e3547" + "dde03bdbd1afa98b0b75d79cf5aac0ef7a3116266cadf3dfbd46f8a4bfc", + "1ff097485faf32ce9e0c557ee064587c12c4834e7f0988cf181d07ba9ee15ae85a8208b6" + "1850080fc4bbedbd82536181d43973459f0d696ac5e6b8f2330b179d180", + "0306dc3c382af13c99d44db7a84ed813c8719c6ed3bbe751ead0d487b5a4aa018129862b" + "7d282cce0bc2059a56d7722f4b226f9deb85da12d5b40648bf6ec568128"}, + {NID_secp521r1, NID_sha384, + "dbc094402c5b559d53168c6f0c550d827499c6fb2186ae2db15b89b4e6f46220386d6f01" + "bebde91b6ceb3ec7b4696e2cbfd14894dd0b7d656d23396ce920044f9ca514bf115cf98e" + "caa55b950a9e49365c2f3a05be5020e93db92c37437513044973e792af814d0ffad2c8ec" + "c89ae4b35ccb19318f0b988a7d33ec5a4fe85dfe", + "095976d387d814e68aeb09abecdbf4228db7232cd3229569ade537f33e07ed0da0abdee8" + "4ab057c9a00049f45250e2719d1ecaccf91c0e6fcdd4016b75bdd98a950", + "04013b4ab7bc1ddf7fd74ca6f75ac560c94169f435361e74eba1f8e759ac70ab3af138d8" + "807aca3d8e73b5c2eb787f6dcca2718122bd94f08943a686b115d869d3f40600f293c1d6" + "27b44e7954d0546270665888144a94d437679d074787959d0d944d8223b9d4b5d068b4fb" + "bd1176a004b476810475cd2a200b83eccd226d08b444a71e71", + "0a8d90686bd1104627836afe698effe22c51aa3b651737a940f2b0f9cd72c594575e550a" + "db142e467a3f631f4429514df8296d8f5144df86faa9e3a8f13939ad5b3", + "02128f77df66d16a604ffcd1a515e039d49bf6b91a215b814b2a1c88d32039521fbd142f" + "717817b838450229025670d99c1fd5ab18bd965f093cae7accff0675aae", + "008dc65a243700a84619dce14e44ea8557e36631db1a55de15865497dbfd66e76a7471f7" + "8e510c04e613ced332aa563432a1017da8b81c146059ccc7930153103a6"}, + {NID_secp521r1, NID_sha384, + "114187efd1f6d6c46473fed0c1922987c79be2144439c6f61183caf2045bfb419f8cddc8" + "2267d14540624975f27232117729ccfeacccc7ecd5b71473c69d128152931865a60e6a10" + "4b67afe5ed443bdbcdc45372f1a85012bbc4614d4c0c534aacd9ab78664dda9b1f1e2558" + "78e8ac59e23c56a686f567e4b15c66f0e7c0931e", + "04ceb9896da32f2df630580de979515d698fbf1dd96bea889b98fc0efd0751ed35e6bcf7" + "5bc5d99172b0960ffd3d8b683fbffd4174b379fbdecd7b138bb9025574b", + "0400e7a3d30d5bd443549d50e9b297aaa87bc80b5c9e94169602d9d43d6d0c490c0bed8c" + "c2170288b106bdbf4c9f1ce53fd699af0b4c64b494b08520e57dc01ab9a8b001d81056d3" + "7aec8a75d588f6d05977416e6f24ad0117a7f4450036d695612e7bc2771caed80e580314" + "eebc88c8fc51c453f066e752481f212b57165d67f8a44f375a", + "046639c5a3ec15afae5e4a7a418ac760846512d880c359bc2c751b199ce43b10887e861b" + "14127809754dbea47f6cc0140d2817e3f5b9a80ce01abd81f81b748433a", + "0f913de91e19bd8f943d542ae357bacc942a0967abc9be6c06239a379db8cc733fa50013" + "e0b0f088bce9d630262feaa33b30d84f91bcf5ce9976e4e740fcb112f84", + "08a73a5c9c24235e0d9cecaac653f68ce5a6fb186ce67fa058d6ddbbd4d0a8c4d194e571" + "148e8ad6c8882b4e33d2f60fb23dd7d07a1ae60864e8277918f592b3dc6"}, + {NID_secp521r1, NID_sha384, + "6744b69fc2420fe00f2352399bd58719e4ecdd6d602e2c80f194d607e58b27a0854745bf" + "d6d504de2eb30b04cee0f44af710dd77e2f816ac3ac5692fad2d1d417893bb0edba2707a" + "4c146a486f8728ca696d35cc52e9c7187c82d4bdb92eb954794e5ad15133f6bfea1f025d" + "a32ada710a3014cf11095b3ff69a94d087f17753", + "00a8db566bd771a9689ea5188c63d586b9c8b576dbe74c06d618576f61365e90b843d003" + "47fdd084fec4ba229fe671ccdd5d9a3afee821a84af9560cd455ed72e8f", + "04004f5b790cbe2984b71d41af5efed6c6893d15e13f31816d55a9c2926a104eee66f1ad" + "a83115d1388551218773b8b9d1138e3e3f027bb4392c90c14fd232580b4a1100660eb160" + "e9bfc8c5619e70e948e238c6fd37739bc1bb657b8e8436e63628f91992be7e63d9a73596" + "23a1340642777b22026feb51116a6c50c54c3589b9bd39b6cb", + "1e7b5e53571a24bd102dd7ad44a4b8d8a4e60e5957bc3c4e5d3c73109f55233f072e572c" + "7892f425ba5e64d3cb7966096bb34a47e26cd5b3e3b44108b310d9f681b", + "1a88bcd7e2bdff6e497d943dde432fb3f855a7177c466319cb53b701230c299db0302762" + "69685857d1e3f28110e690f2f529c8d18115eb381f313bc891d92ad278e", + "146f1984ea879274dfd5e86ad92e564a4de081523ddbb1c397b8f9595911ef2e6501bc08" + "1584d5340f7aa47e1af036234ac6f27a5ac31f78dd3b0ff1a62693c630d"}, + {NID_secp521r1, NID_sha384, + "16001f4dcf9e76aa134b12b867f252735144e523e40fba9b4811b07448a24ef4ccf3e81f" + "e9d7f8097ae1d216a51b6eefc83880885e5b14a5eeee025c4232319c4b8bce26807d1b38" + "6ad6a964deb3bdca30ee196cfdd717facfad5c77d9b1d05fdd96875e9675e85029ecbf4f" + "94c524624746b7c42870c14a9a1454acf3354474", + "1a300b8bf028449344d0e736145d9dd7c4075a783cb749e1ec7988d60440a07021a25a3d" + "e74ea5e3d7bd4ab774d8ad6163adae31877ef0b2bd50e26e9e4be8a7b66", + "04005055b9ad726ba8a48219b0ecbfffb89f8428de895b231f676705b7de9f2022d9ff4e" + "0114ebb52dea342f9bf76b2fb060c020e29d92074ebb1fbfe5290a58c8bc1000415af7f2" + "0a6e945315adbf757316bb486c80780a0a3a15b4b9609f126d7341053a2b726ab63cb46f" + "eee527b0bf532b32b477e5671aea23d9b3c3e604b9029954b5", + "05a2e92717bb4dab3ee76724d4d9c2d58a32b873e491e36127985f0c9960c610962ca1c4" + "510dba75c98d83beebdc58b1d8678e054640951d11db1bd2d8a4ab8476b", + "104a78ce94f878822daaf00ee527fbdbf6cceb3cbb23a2caa485e4109466de8910252f92" + "379ab292cac8d1eda164f880c0067696e733fc8588a27703a3e1f5b8f1f", + "1ffe23e8ab5a31668a81161a234ea14879771fe9866f8872eb6edb672e0fe91d2bb75c97" + "67a2dfbac7c15c802211236b22ea41ecd055a0b8b311ffc4255f86d5c67"}, + {NID_secp521r1, NID_sha384, + "a9824a7b810aa16690083a00d422842971baf400c3563baa789c5653fc13416111c0236c" + "67c68e95a13cec0df50324dcc9ae780ce4232607cb57dd9b2c61b382f0fa51fd4e283e2c" + "55ffe272597651659fbd88cd03bfa9652cd54b01a7034c83a602709879e1325c77969beb" + "fd93932ce09a23eae607374602201614ff84b141", + "06a253acd79912a74270fc0703ed6507ab20a970f2bc2277f782062092cf0e60ae1ca1bb" + "44dec003169bc25ef6e7123dd04692f77b181a6d7e692e66b09d35a540c", + "0401f15c6b1df156fdd8381cd7446e039435e445f8f36f0247475058da0e371bf72753f6" + "e39f98066bc79370b038c39687ba18e16cb118fe6538b7568c5403c251f6b7012d2b4f46" + "b854eeae75f1c63f55b76bf0c604d47f870c28a50ecdeb52bba1dd9a0ff12e680804ff86" + "4111207652da7dd10b49edf66bb86be00bc06672de91982457", + "165faf3727e42fd61345cfa7b93e55fb4bf583b24bdc14ce635b6c99dbd788012f14da9a" + "210b677c44acdd851e672f1a48188d6b8946c0efeebfe8a597ba0090a2c", + "1ad9463d2759abd568626548578deefdcd8b2d050ce6d9c7ed05feca20167484b86e89bd" + "cc936fd647e0f8aedd7b6add2b8cf13ff6ff013c2b5540c6c56fda97a0c", + "1645a7d0e11015256cfb034adca198695eea6aedd44d9fbf496850ccfed950f43fffd8db" + "f41e113f2d3837d8a5dd62b2ed580112ff05800b1f73196e5576810e15b"}, + {NID_secp521r1, NID_sha384, + "90d8bbf714fd2120d2144022bf29520842d9fbd2dc8bb734b3e892ba0285c6a342d6e1e3" + "7cc11a62083566e45b039cc65506d20a7d8b51d763d25f0d9eaf3d38601af612c5798a8a" + "2c712d968592b6ed689b88bbab95259ad34da26af9dda80f2f8a02960370bdb7e7595c0a" + "4fffb465d7ad0c4665b5ec0e7d50c6a8238c7f53", + "0d5a5d3ddfd2170f9d2653b91967efc8a5157f8720d740dd974e272aab000cc1a4e6c630" + "348754ab923cafb5056fc584b3706628051c557fce67744ee58ba7a56d0", + "040128a4da5fc995678e457ceb3929adee93c280f851abe900fa21f4f809dafad4e33b38" + "1e0cd49ce8dd50e2e281cea162bfd60a1d6a1c0ee2228e6a011e171b559ab8006eb0917c" + "d72256992c49ea527f6bb0315f13d8047794a0f1da1e93737703b1c2a74a00441ef3b47b" + "6a2ff789c49ae32d91cabe7b29247aeec44f6c40a76597a2ca", + "03269983a5c2bcc98e9476f5abf82424566b1f08b17204d29e310ece88f99eb677a537f8" + "6fe2529e409cfef2c12929644100099e0de2f27c0f0ac11105a4dca935b", + "1a5257ae1e8187ba954f535b86ff9b8d6a181a3b95c250d090cb4e9c3bfbd03aa64696a7" + "6c569728ef67780d6338d70ce46da40b87a3e49bfe154b93930890dfa93", + "05b6ccdfd5c63c7db76d3a0478064a2a376e0e050cb093be795a72a549247c2e4adba918" + "3145c63d46479dbbdcf09986a6f64c09c7e16abc4853f6376c9558b014a"}, + {NID_secp521r1, NID_sha384, + "09952b1e09995e95bf0022e911c6ab1a463b0a1fdd0eec69117b34af1103c720b5760021" + "7de7cd178fef92de5391e550af72a8dcf7badf25b06dd039417f9a7d0f5be88fcd4e9655" + "931d5b605452a667c9d1bae91d3476e7d51cff4108f116a49966fb3a7cff8df1c09734ce" + "5620faf2dccb3dc5d94e7e9ac812da31f6d07a38", + "1bcedf920fa148361671b43c64e3186e1937eb1bd4b28cbd84c421472394552889bc0550" + "9aa732ef69d732b21b750523fdfd811f36467690fe94e01e64c9d5cbbe9", + "0400d33c151d202a5d4d831348e940b027ee32e4b0b9b48d823a05c67ff3bdaee0189fc6" + "680565f352c062e99968afc643208b4f9c7af185b861658a88c4ad0fcc8ba200e4441ddb" + "546468ad8ffa6074f137edfbb81e82e0e7d8f05c4c54598aa996a9cde54cb371f642bfdd" + "4ae7eca5b769696030027129a4183da93567ad142a2dff5183", + "046e619b83aac868b26d0b3cbfab55e630e0b55c461985b5d00f94ff3a5ce90ff412cebf" + "46bbd84550d2031d573ca27d924624428360708c8d8491c29eb01d30f2e", + "08427c0f0ac0263472cd423c0fb554bf3c851b9c775c566ab0f6878717bd57665830767b" + "05b7789c5c0b078195bd943dc737325552d32877ecb04a7c41bd07cd80c", + "10bb6652d6a624c40a7dd06828f15774130d02369ceb1a7d03b553e16e17b7fa5b5401f1" + "5885d5e4fc2e55c0c7a1b97871ab02f76386b93a16aa6e7eb65debac6dd"}, + {NID_secp521r1, NID_sha384, + "0bb0f80cff309c65ff7729c59c517d50fc0ed5be405ef70cb910c3f62c328c90853d4473" + "530b654dda6156e149bc2222a8a7f9be665240e2fbe9d03f78a2356af0bacd1edb84c480" + "1adc8293a8a0bd6123d1cf6ba216aca807a7eb4dca76b493eb6e3dbb69d36f0f00f85622" + "2f24d9b93ec34c3b261be2fca0451c00571928e5", + "03789e04b3a2a0254ade3380172c150d2fad033885e02ea8bea5b92db3f4adbab190ae42" + "3080a1154dfedec694c25eab46ce638be3db4e4cba67bc39f62d6e7db2d", + "0401dbc2cf19627bdccf02432b1761f296275230c150cdde823ce3141ec315d7d05e16b2" + "c29e2a67491078d5316883e933d85b4b10d4f64c477d3c4e0442dc928983a2007562e720" + "807dd118d3d8b265b3abc61a71fce43e3dce0e7b5ae18b7a4cb01ecc00d39c1f22e150a9" + "a8728997e502144f5b3f6fa9b4cb8a4136212b082ca394e3f6", + "0fbccd8d7804bdd1d1d721b5ec74d4ba37603bc306f9fce2ec241853d8e07334e6b4b12c" + "4ecca0c54bd71193dd7146507933a20737c5f3e15085830fab9b30ca57b", + "181915a3998d8fa214f9715f4ca928d09c36de168dc15c6970a8a062b5cea2dc969b2437" + "ca17b684f78a1fd583aad8e6c762c8f4ab0c91b86a497145e3ca440d307", + "15a6c18c5c77f5470b27d061eafdc26b78561941a3b2ab0f5c81d40899fc053c3d9ed12d" + "7d61e298abbae470009c7b2157731c58d7b16a66fa5abaf5e8a1b8ed394"}, + {NID_secp521r1, NID_sha384, + "7efacf213382ce30804e78b7256854d759147dba9729c51b2759465715bf2c421034c23d" + "c651c13d6cce95f71fe6a84dfbee5768163ac5789ac0474c5ddf4115684683c5f7c204b3" + "3b8bcc0c03ac58f66cef2f53b721fe2fac91ad841126101a88f512a7c2ded38549d9f050" + "d4b7961dda48a1489f026c5d111701762418cfe3", + "124700aa9186353e298edefc57bec0c7d0201cca10c1d80dd408d5d71040592b0ac59fac" + "dadfa8712445f5977ef8d4854022720c3f02d60e0732dbb2f171fcf1490", + "0400c80fc4cecae5d53348524ddba6a160b735c75b22fdb39af17e2a613d09246e3bb0fd" + "3f2978577f6db5d2118e05c7898024808f8eb8e021d7969cdcf7fc981200bb01a880c939" + "43fd446d4b3923b574d2221c1bb7b645fb5534dda60e827b497666ff586b77921f7e7f60" + "5147947194cffd2fef0678880b89cc0bc7fb74fa96d4b112d7", + "01a05238d595ded5c61d3bf6fde257dbf13095af8a5cb3a2e579e8e4c550fe31d12b71cc" + "2dbcb295e6c4fd0fb8c22d1b741c097cc59d826ced1a8771f09983143c4", + "132762bc81e9922a8d642e3a9d0218affa21fa2331cfcb9e452545c5981c64a8f7e4cc8e" + "68056023b2aa78bead59061d19c7f646c931163a91e544b106b3be8de9e", + "0c3a1b0b000c3169984132add51d611e2cb7069a262a6983d2ae72b459c36e6469509bdb" + "0f473600b8686700b08910779dee9ba83f82e755d4a4ef5f124eb09397f"}, + {NID_secp521r1, NID_sha384, + "28edff8b9d85f5f58499cc11f492abdfab25e8945975bbaeee910afa2b8fc1295ec61406" + "309ce4e09f4ab4f462959fc2a2786802466eb26d3b01be6919893ae75d0fdc2dc8a82e66" + "2550f9fce9627dd364188aaba5c6faa1b2d8a2235adfa5ad0dc140f88a2b2f103f5690e8" + "77d07fe8fd30d02d2b2729bd3d8eb5b23a21f54c", + "1f532d01af885cb4ad5c329ca5d421c5c021883bd5404c798d617679bb8b094cbb7e15c8" + "32fb436325c5302313ce5e496f9513455e7021ffad75777a19b226acfa1", + "0400c0bd76b0027b85bdd879052220da1494d503f6a4bb972105a48ae98e7dda8c2d9fd9" + "336f5646385b961ef68e8464e3a95b00f96614b1a408ceaa2c87b077b6a8fb017eb7eb5c" + "78db7819af92e8537d110d9f05a5e24f954f4dde21c224d4040f059ec99e051702f39041" + "3d2708d18f84d82998c61847475250fb844b20082cbe651a6b", + "14e66853e0f7cd3300ebcae06048532e19cbb95bee140edc1c867ce7310637651445b6df" + "eb1d99d2e32f2ffb787ebe3fe35032277f185d3dad84f95806924550abe", + "0c5b3a57161098e2e8e16e0a5ae8ecf4a14df14927eea18ed4925d11dc429dda14515932" + "3ba970174b194b9b4608a8fa2373b7a825c5e8bd80574e49698285c2c82", + "1a0c038a51796158b42eb5b0dac37aff9ab93b903a47e06ebbdd15946e4bcc9a3b3875b1" + "8cf6294c33fc6c3693cef04ed1a43d08951e664c760e2cf3fb4e47490d2"}, + {NID_secp521r1, NID_sha384, + "bae2a8897c742fd99fbf813351cd009d3f2e18d825ca22e115276484bce8f82f8c7c0c21" + "dd2af208404d8ef45bb5a6c41693912b630897d5246801bf0775aa9bbac8be98cb861d17" + "2c3563dc59e78a58ed13c66dea496471b3ad0eeae8995293e4ab97373edc1837ffc95ff1" + "cc0c1e90e64ea8680b2ca5f1e09bf86b99b343b6", + "11abf508bca68a85a54bc0659e77efad3c86112c9db04db2883e76144aa446918bb4bb07" + "84b0b6a0e9aa47399fe3de5aaecfd8894a0d130bb0c366c40d9d5050745", + "04005c0ea363a3a12633ea39d564587ebdd3a22a175ef32b9ebfc7311304b19cb3a62b5a" + "dc36f6afb6a6f7fabbf810ee89fdb72854fefd613e7798e9b9ff5938ea54c600bd06a85e" + "47b885c08124b55a3fcc07ca61647cda6efbfdbd21b24d1ea7a4c7300d46cd798e76063a" + "a979adef6f0698b15e5b7ae8a2ab39ab4f50b2d20614db6317", + "19cadb8c7eb10565aa4567e0709873918720f0e4b42b4817afb0b0547c70cd1100229dea" + "e97a276b9c98ea58b01d4839fee86336d749d123b03e8b1a31166acc110", + "0667448a8bbef1c810d40646977dc22f3dfb52a4d80928ded5e976e199cbed02fbd5a085" + "46756ece14548d721a6eb380d0e1a71ad0660dbcac6163c776eedd3e249", + "0ae7f0a238daaddb7fb4a1707fe5132daf653f8e19f732347134c96f1dd798f867c479a4" + "a4609a568a15b61afed70790adbde13ac5f68c468d0230852c1a2c22581"}, + {NID_secp521r1, NID_sha384, + "d57a26a9593e72bfc87322524639bcaae5f2252d18b99cdaa03b14445b0b8a4dd53928f6" + "6a2e4f202fb25b19cad0eb2f1bfda2ab9b0eb668cdcd0fe72f5d9ef2e45e0218590f7ab9" + "d2c9342202610c698bc786cce108a7d4a6730a13e9ea1b470e781f1237d3f84f44abde80" + "8516975546bd89075ef9a9732bfd7ee33b6f4399", + "18dbf520d58177e4b7a0627674d220137983f486dd2fd3639f19751804e80df0655db6af" + "d829cdf75238de525e1a7a9f048049b593dd64b4b96cc013f970c05ea1f", + "04018b872690c37995be324ddb5c2bd5462841bb062f8e63da248a853de79c3d6bb9a2eb" + "1e6933afda0998ca43491cc807b08ace2d5336a43d0ab50563a2d3d98755f00002ff3122" + "1aa32aa6546f35e8fe5b9361f938362a5e89e77ae130ba8bce3729e912dfac35a2fd21ef" + "e84b45b8be2a340850e4b574e1885b35c2afbe196b57c6cf4c", + "098faeb73054639cb2e4442cd68e7b3a13f4b3f397a7b26f303afa40789f8ddd3d918f1c" + "e4f0be53c8cb69c380744e2297d7fc01e2b3daef4ce64dd3a2644234753", + "09c0e7649f814f70a8416cb78bc4601472a363fe97f5c587305778169677860dd97f87b5" + "ab07c3a953bc4615fc34634509d6a25621bdded33ed42446d059509c190", + "120b90e1cfb8a1b5e530df7b17d1128bc051ca4f1a65dd9c9d9d3c59d2f00c7c1e994c52" + "b8671d40294b4d574d2c04475d5bebeacd3a0d3870a54dc7a4805614f40"}, + {NID_secp521r1, NID_sha384, + "8fdcf5084b12cfc043dd3416b46274e021bbed95d341d3c500c102a5609d3a34de29f8fa" + "9f0adb611a1f47a97ad981f8129d718fc0d6c709eab1a3490db8d550f34eb905b9e00663" + "543afc5bc155e368e0bc919a8b8c9fa42093603537a5614927efa6be819ed42ececbf1a8" + "0a61e6e0a7f9b5bc43b9238e62d5df0571fea152", + "002764f5696aa813cd55d30948585f86288ae05aeb264ca157cd09e1d09a10515a849b07" + "91b755ccc656a34707be9e52f5762d290a7d2bcd6de52c600ff862eaf4e", + "040127279c88719dc614db387f102e55104ea1c704ac7f57f3bca936f728439b76556730" + "dd7cde2ac1ad0a4c2c2f036ab6f00cf34cb87ea36113571f300713044106d20134a0786c" + "31f5f2291b83c50fb579ae4c620b95e5a8bdc0c7e1ee6b996c89d764f1b20403e7faa203" + "f397425ada297045dd8ba0e4b155d4900da249e934faab7991", + "08bffb0778cbb06466cecc114b9e89ca243a2b2b5e2597db920bc73a8bbcbe3f57144ad3" + "3409ef7faaab430e13f4c42d304d11347360c84972ca20b1539cce3a288", + "1f8f504e64a502e51e7c129517931c3b71f0d8a63b19cfe01ff7c951c6525249608b3ef5" + "d00061d77eb6b3d69581adeaa3732c773bbb9b919c3e7c71fdc09f44d06", + "058044fc64b340604ffd02a5b2918d76fd6fb59ea895feab7aa218e6f1e8c8f226eb9ee3" + "45ef8140183a69272582005077b008006aab11597e808d7ff1e8382c924"}, + {NID_secp521r1, NID_sha384, + "00669f433934992257bed55861df679804107d7fa491672574a7624949c60049b0533383" + "c88d6896c8de860704c3e6a6aefce83efa57c4d57e9ab253da5d15e1f53ab6dce218b592" + "772ab0bc01fee8e63368e85c0639301456fe2d44cd5396a7f2b22761cd03b80eba7883ee" + "de8249a2f5db2183bf00550c5c002f45a5e4fb31", + "1b0c9acd3eeb618b4b0de4db402206f0f29adc69d7ad324b6db6601b351f723ac8fe949e" + "eacd34228649bf0126276e5aceb0137d00c30dd858aef2d6b6449de2e89", + "0401811c8884486aaa083ddee1c51cb6e861cb830bd5eaa929f72efadbbd1286566ae7e7" + "ba7fde7e02529900d35ee64591652d28798bfc1bed0d192602a9cf5a7d22e3006d7fc9dd" + "494816cfd29613d4689af67f7d0a2e6fbad5d4d6e0130189172a1ab601c5ca71deaa8bfc" + "b5a190d49da191672ff6fc048e146cb902acec5eae6d87e60a", + "1fdc4f108070af3c66c9ba7b6c1f2603a19ceb4760399df81228cfc7eafde1082b5a0716" + "a3ff82fbe84726f14dd0db3376ca184a78c3c60679bab6cd45f77f9b9ce", + "1ec310339ff056faeb341c4499c43782078b04be1725ae9a6cdcb6011c46d1a4eb3d75c3" + "58225e4ec142fd1cd344186f5eb597f7ba559ddfa954824365d5b6edaec", + "005b679a33fdb7e04834f071cd0ac514c04add9f2614ab9bbd9b407b1420fed3f3e02a10" + "8e7e279899e43dcf64ae4083c289a87cd7d2103bdc036a95d36800ac7c6"}, + {NID_secp521r1, NID_sha384, + "4be81dcfab39a64d6f00c0d7fff94dabdf3473dc49f0e12900df328d6584b854fbaebaf3" + "194c433e9e21743342e2dd056b445c8aa7d30a38504b366a8fa889dc8ecec35b31300707" + "87e7bf0f22fab5bea54a07d3a75368605397ba74dbf2923ef20c37a0d9c64caebcc93157" + "456b57b98d4becb13fecb7cc7f3740a6057af287", + "181e1037bbec7ca2f271343e5f6e9125162c8a8a46ae8baa7ca7296602ae9d56c994b3b9" + "4d359f2b3b3a01deb7a123f07d9e0c2e729d37cc5abdec0f5281931308a", + "0400cfa5a8a3f15eb8c419095673f1d0bd63b396ff9813c18dfe5aa31f40b50b82481f9e" + "d2edd47ae5ea6a48ea01f7e0ad0000edf7b66f8909ee94f141d5a07efe315c018af728f7" + "318b96d57f19c1104415c8d5989565465e429bc30cf65ced12a1c5856ac86fca02388bc1" + "51cf89959a4f048597a9e728f3034aa39259b59870946187bf", + "09078beaba465ba7a8b3624e644ac1e97c654533a58ac755e90bd606e2214f11a48cb51f" + "9007865a0f569d967ea0370801421846a89f3d09eb0a481289270919f14", + "19cf91a38cc20b9269e7467857b1fc7eabb8cea915a3135f727d471e5bfcfb66d321fabe" + "283a2cf38d4c5a6ecb6e8cbee1030474373bb87fcdfcc95cf857a8d25d0", + "1cf9acd9449c57589c950f287842f9e2487c5610955b2b5035f6aacfd2402f511998a1a9" + "42b39c307fc2bcab2c8d0dae94b5547ddccfb1012ca985b3edf42bbba8b"}, + {NID_secp521r1, NID_sha512, + "9ecd500c60e701404922e58ab20cc002651fdee7cbc9336adda33e4c1088fab1964ecb79" + "04dc6856865d6c8e15041ccf2d5ac302e99d346ff2f686531d25521678d4fd3f76bbf2c8" + "93d246cb4d7693792fe18172108146853103a51f824acc621cb7311d2463c3361ea70725" + "4f2b052bc22cb8012873dcbb95bf1a5cc53ab89f", + "0f749d32704bc533ca82cef0acf103d8f4fba67f08d2678e515ed7db886267ffaf02fab0" + "080dca2359b72f574ccc29a0f218c8655c0cccf9fee6c5e567aa14cb926", + "040061387fd6b95914e885f912edfbb5fb274655027f216c4091ca83e19336740fd81aed" + "fe047f51b42bdf68161121013e0d55b117a14e4303f926c8debb77a7fdaad100e7d0c75c" + "38626e895ca21526b9f9fdf84dcecb93f2b233390550d2b1463b7ee3f58df7346435ff04" + "34199583c97c665a97f12f706f2357da4b40288def888e59e6", + "03af5ab6caa29a6de86a5bab9aa83c3b16a17ffcd52b5c60c769be3053cdddeac60812d1" + "2fecf46cfe1f3db9ac9dcf881fcec3f0aa733d4ecbb83c7593e864c6df1", + "04de826ea704ad10bc0f7538af8a3843f284f55c8b946af9235af5af74f2b76e099e4bc7" + "2fd79d28a380f8d4b4c919ac290d248c37983ba05aea42e2dd79fdd33e8", + "087488c859a96fea266ea13bf6d114c429b163be97a57559086edb64aed4a18594b46fb9" + "efc7fd25d8b2de8f09ca0587f54bd287299f47b2ff124aac566e8ee3b43"}, + {NID_secp521r1, NID_sha512, + "b3c63e5f5a21c4bfe3dbc644354d9a949186d6a9e1dd873828782aa6a0f1df2f64114a43" + "0b1c13fe8a2e09099e1ed05ef70de698161039ded73bcb50b312673bb073f8a792ac140a" + "78a8b7f3586dffb1fc8be4f54516d57418ccc9945025ce3acf1eb84f69ceee5e9bd10c18" + "c251dbc481562cd3aae54b54ab618cb1eeda33cf", + "1a4d2623a7d59c55f408331ba8d1523b94d6bf8ac83375ceb57a2b395a5bcf977cfc1623" + "4d4a97d6f6ee25a99aa5bff15ff535891bcb7ae849a583e01ac49e0e9b6", + "04004d5c8afee038984d2ea96681ec0dccb6b52dfa4ee2e2a77a23c8cf43ef19905a34d6" + "f5d8c5cf0981ed804d89d175b17d1a63522ceb1e785c0f5a1d2f3d15e513520014368b8e" + "746807b2b68f3615cd78d761a464ddd7918fc8df51d225962fdf1e3dc243e265100ff0ec" + "133359e332e44dd49afd8e5f38fe86133573432d33c02fa0a3", + "0bc2c0f37155859303de6fa539a39714e195c37c6ea826e224c8218584ae09cd0d1cc14d" + "94d93f2d83c96e4ef68517fdb3f383da5404e5a426bfc5d424e253c181b", + "1a3c4a6386c4fb614fba2cb9e74201e1aaa0001aa931a2a939c92e04b8344535a20f53c6" + "e3c69c75c2e5d2fe3549ed27e6713cb0f4a9a94f6189eb33bff7d453fce", + "16a997f81aa0bea2e1469c8c1dab7df02a8b2086ba482c43af04f2174831f2b176165879" + "5adfbdd44190a9b06fe10e578987369f3a2eced147cff89d8c2818f7471"}, + {NID_secp521r1, NID_sha512, + "6e0f96d56505ffd2d005d5677dbf926345f0ff0a5da456bbcbcfdc2d33c8d878b0bc8511" + "401c73168d161c23a88b04d7a9629a7a6fbcff241071b0d212248fcc2c94fa5c086909ad" + "b8f4b9772b4293b4acf5215ea2fc72f8cec57b5a13792d7859b6d40348fc3ba3f5e7062a" + "19075a9edb713ddcd391aefc90f46bbd81e2557b", + "14787f95fb1057a2f3867b8407e54abb91740c097dac5024be92d5d65666bb16e4879f3d" + "3904d6eab269cf5e7b632ab3c5f342108d1d4230c30165fba3a1bf1c66f", + "0400c2d540a7557f4530de35bbd94da8a6defbff783f54a65292f8f76341c996cea38795" + "805a1b97174a9147a8644282e0d7040a6f83423ef2a0453248156393a1782e0119f746c5" + "df8cec24e4849ac1870d0d8594c799d2ceb6c3bdf891dfbd2242e7ea24d6aec316621473" + "4acc4cbf4da8f71e2429c5c187b2b3a048527c861f58a9b97f", + "186cd803e6e0c9925022e41cb68671adba3ead5548c2b1cd09348ab19612b7af3820fd14" + "da5fe1d7b550ed1a3c8d2f30592cd7745a3c09ee7b5dcfa9ed31bdd0f1f", + "10ed3ab6d07a15dc3376494501c27ce5f78c8a2b30cc809d3f9c3bf1aef437e590ef66ab" + "ae4e49065ead1af5f752ec145acfa98329f17bca9991a199579c41f9229", + "08c3457fe1f93d635bb52df9218bf3b49a7a345b8a8a988ac0a254340546752cddf02e6c" + "e47eee58ea398fdc9130e55a4c09f5ae548c715f5bcd539f07a34034d78"}, + {NID_secp521r1, NID_sha512, + "3f12ab17af3c3680aad22196337cedb0a9dba22387a7c555b46e84176a6f841800455238" + "6ada4deec59fdabb0d25e1c6668a96f100b352f8dabd24b2262bd2a3d0f825602d54150b" + "dc4bcbd5b8e0ca52bc8d2c70ff2af9b03e20730d6bd9ec1d091a3e5c877259bcff4fd2c1" + "7a12bfc4b08117ec39fe4762be128d0883a37e9d", + "15807c101099c8d1d3f24b212af2c0ce525432d7779262eed0709275de9a1d8a8eeeadf2" + "f909cf08b4720815bc1205a23ad1f825618cb78bde747acad8049ca9742", + "040160d7ea2e128ab3fabd1a3ad5455cb45e2f977c2354a1345d4ae0c7ce4e492fb9ff95" + "8eddc2aa61735e5c1971fa6c99beda0f424a20c3ce969380aaa52ef5f5daa8014e4c83f9" + "0d196945fb4fe1e41913488aa53e24c1d2142d35a1eed69fed784c0ef44d71bc21afe0a0" + "065b3b87069217a5abab4355cf8f4ceae5657cd4b9c8008f1f", + "096731f8c52e72ffcc095dd2ee4eec3da13c628f570dba169b4a7460ab471149abdede0b" + "63e4f96faf57eab809c7d2f203fd5ab406c7bd79869b7fae9c62f97c794", + "1e2bf98d1186d7bd3509f517c220de51c9200981e9b344b9fb0d36f34d969026c80311e7" + "e73bb13789a99e0d59e82ebe0e9595d9747204c5f5550c30d934aa30c05", + "12fed45cc874dc3ed3a11dd70f7d5c61451fbea497dd63e226e10364e0718d3722c27c7b" + "4e5027051d54b8f2a57fc58bc070a55b1a5877b0f388d768837ef2e9cec"}, + {NID_secp521r1, NID_sha512, + "a1eed24b3b7c33296c2491d6ee092ec6124f85cf566bb5bc35bffb5c734e34547242e575" + "93e962fb76aee9e800eed2d702cc301499060b76406b347f3d1c86456978950737703c81" + "59001e6778f69c734a56e5ce5938bd0e0de0877d55adeee48b0d8dfa4ac65fd2d3ce3e12" + "878bac5c7014f9284d161b2a3e7d5c88569a45f6", + "18692def0b516edcdd362f42669999cf27a65482f9358fcab312c6869e22ac469b82ca90" + "36fe123935b8b9ed064acb347227a6e377fb156ec833dab9f170c2ac697", + "0401ceee0be3293d8c0fc3e38a78df55e85e6b4bbce0b9995251f0ac55234140f82ae0a4" + "34b2bb41dc0aa5ecf950d4628f82c7f4f67651b804d55d844a02c1da6606f701f775eb6b" + "3c5e43fc754052d1f7fc5b99137afc15d231a0199a702fc065c917e628a54e038cbfebe0" + "5c90988b65183b368a2061e5b5c1b025bbf2b748fae00ba297", + "161cf5d37953e09e12dc0091dc35d5fb3754c5c874e474d2b4a4f1a90b870dff6d99fb15" + "6498516e25b9a6a0763170702bb8507fdba4a6131c7258f6ffc3add81fd", + "14dfa43046302b81fd9a34a454dea25ccb594ace8df4f9d98556ca5076bcd44b2a9775df" + "aca50282b2c8988868e5a31d9eb08e794016996942088d43ad3379eb9a1", + "120be63bd97691f6258b5e78817f2dd6bf5a7bf79d01b8b1c3382860c4b00f89894c72f9" + "3a69f3119cb74c90b03e9ede27bd298b357b9616a7282d176f3899aaa24"}, + {NID_secp521r1, NID_sha512, + "9aace26837695e6596007a54e4bccdd5ffb16dc6844140e2eeeb584b15acb2bbffd203c7" + "4440b6ee8db676fd200b4186a8c3e957c19e74d4d865ada83f80655323dfa3570907ed3c" + "e853b6e8cc375ed2d758a2f5ad265dd3b47650517a49b3d02df9e0c60c21576378c2b3a0" + "8481eec129b2a75608e13e6420127a3a63c8a3f1", + "0a63f9cdefbccdd0d5c9630b309027fa139c31e39ca26686d76c22d4093a2a5e5ec4e230" + "8ce43eb8e563187b5bd811cc6b626eace4063047ac0420c3fdcff5bdc04", + "04014cab9759d4487987b8a00afd16d7199585b730fb0bfe63796272dde9135e7cb9e27c" + "ec51207c876d9214214b8c76f82e7363f5086902a577e1c50b4fbf35ce996601a83f0caa" + "01ca2166e1206292342f47f358009e8b891d3cb817aec290e0cf2f47e7fc637e39dca039" + "49391839684f76b94d34e5abc7bb750cb44486cce525eb0093", + "01e51fd877dbbcd2ab138fd215d508879298d10c7fcbdcc918802407088eb6ca0f18976a" + "13f2c0a57867b0298512fc85515b209c4435e9ef30ab01ba649838bc7a0", + "11a1323f6132d85482d9b0f73be838d8f9e78647934f2570fededca7c234cc46aa1b97da" + "5ac1b27b714f7a171dc4209cbb0d90e4f793c4c192dc039c31310d6d99b", + "0386a5a0fc55d36ca7231a9537fee6b9e51c2255363d9c9e7cb7185669b302660e23133e" + "b21eb56d305d36e69a79f5b6fa25b46ec61b7f699e1e9e927fb0bceca06"}, + {NID_secp521r1, NID_sha512, + "ac2175940545d4fbab6e2e651c6830aba562e0c11c919e797c43eff9f187a68a9e5a128e" + "3e2a330b955a3f4577d3f826529ad1b03d7b60f7ad678f005053b41dc0f8d267f3685c6a" + "be1a0e9a733c44b2f3ca48b90806f935141c842e3a6c06a58f5343d75e3585971a734f4a" + "e1074ce5b54f74bd9342f4bbca738d260393f43e", + "024f7d67dfc0d43a26cc7c19cb511d30a097a1e27e5efe29e9e76e43849af170fd9ad57d" + "5b22b1c8840b59ebf562371871e12d2c1baefc1abaedc872ed5d2666ad6", + "04009da1536154b46e3169265ccba2b4da9b4b06a7462a067c6909f6c0dd8e19a7bc2ac1" + "a47763ec4be06c1bec57d28c55ee936cb19588cc1398fe4ea3bd07e6676b7f014150cdf2" + "5da0925926422e1fd4dcfcffb05bdf8682c54d67a9bd438d21de5af43a15d979b320a847" + "683b6d12ac1383a7183095e9da491c3b4a7c28874625e70f87", + "1c1308f31716d85294b3b5f1dc87d616093b7654907f55289499b419f38ceeb906d2c9fe" + "4cc3d80c5a38c53f9739311b0b198111fede72ebde3b0d2bc4c2ef090d2", + "00dbf787ce07c453c6c6a67b0bf6850c8d6ca693a3e9818d7453487844c9048a7a2e48ff" + "982b64eb9712461b26b5127c4dc57f9a6ad1e15d8cd56d4fd6da7186429", + "0c6f1c7774caf198fc189beb7e21ca92ceccc3f9875f0e2d07dc1d15bcc8f210b6dd376b" + "f65bb6a454bf563d7f563c1041d62d6078828a57538b25ba54723170665"}, + {NID_secp521r1, NID_sha512, + "6266f09710e2434cb3da3b15396556765db2ddcd221dce257eab7399c7c4901359251129" + "32716af1434053b8b9fe340563e57a0b9776f9ac92cbb5fba18b05c0a2fafbed7240b3f9" + "3cd1780c980ff5fe92610e36c0177cabe82367c84cee9020cf26c1d74ae3eb9b9b512cb8" + "b3cb3d81b17cf20dc76591b2b394ef1c62ac12ee", + "0349471460c205d836aa37dcd6c7322809e4e8ef81501e5da87284b267d843897746b330" + "16f50a7b702964910361ed51d0afd9d8559a47f0b7c25b2bc952ce8ed9e", + "04000bbd4e8a016b0c254e754f68f0f4ed081320d529ecdc7899cfb5a67dd04bc85b3aa6" + "891a3ed2c9861ae76c3847d81780c23ad84153ea2042d7fd5d517a26ff3ce400645953af" + "c3c1b3b74fdf503e7d3f982d7ee17611d60f8eb42a4bddbec2b67db1f09b54440c30b44e" + "8071d404658285cb571462001218fc8c5e5b98b9fae28272e6", + "00eb2bd8bb56b9d2e97c51247baf734cc655c39e0bfda35375f0ac2fe82fad699bf19895" + "77e24afb33c3868f91111e24fefe7dec802f3323ac013bec6c048fe5568", + "14bf63bdbc014aa352544bd1e83ede484807ed760619fa6bc38c4f8640840195e1f2f149" + "b29903ca4b6934404fb1f7de5e39b1ea04dba42819c75dbef6a93ebe269", + "05d1bcf2295240ce4415042306abd494b4bda7cf36f2ee2931518d2454faa01c606be120" + "b057062f2f3a174cb09c14f57ab6ef41cb3802140da22074d0e46f908d4"}, + {NID_secp521r1, NID_sha512, + "3de9e617a6868dca1a1432d503f923535da3f9b34426b2a4822174399c73b1c1ee673114" + "10a58c17202ac767844b2024d8aa21a205707d93865693ac25a24fc87034fa3a7a7e27c3" + "344cb03b87602c15180a5fe6a9dd90cd11af4a0f150207bf2d83f55b12c088adae99aa8c" + "fa659311b3a25beb99056643760d6a282126b9b2", + "07788d34758b20efc330c67483be3999d1d1a16fd0da81ed28895ebb35ee21093d37ea1a" + "c808946c275c44454a216195eb3eb3aea1b53a329eca4eb82dd48c784f5", + "0400157d80bd426f6c3cee903c24b73faa02e758607c3e102d6e643b7269c299684fdaba" + "1acddb83ee686a60acca53cddb2fe976149205c8b8ab6ad1458bc00993cc43016e33cbed" + "05721b284dacc8c8fbe2d118c347fc2e2670e691d5d53daf6ef2dfec464a5fbf46f8efce" + "81ac226915e11d43c11c8229fca2327815e1f8da5fe95021fc", + "0a73477264a9cc69d359464abb1ac098a18c0fb3ea35e4f2e6e1b060dab05bef1255d9f9" + "c9b9fbb89712e5afe13745ae6fd5917a9aedb0f2860d03a0d8f113ea10c", + "07e315d8d958b8ce27eaf4f3782294341d2a46fb1457a60eb9fe93a9ae86f3764716c4f5" + "f124bd6b114781ed59c3f24e18aa35c903211b2f2039d85862932987d68", + "1bcc1d211ebc120a97d465b603a1bb1e470109e0a55d2f1b5c597803931bd6d7718f010d" + "7d289b31533e9fcef3d141974e5955bc7f0ee342b9cad05e29a3dded30e"}, + {NID_secp521r1, NID_sha512, + "aa48851af7ef17abe233163b7185130f4646203c205e22bcc2a5a3697bcab998c73a9ffe" + "1d3ea0b7978ce7df937a72586eb5ca60b0d939a7d1c115c820171c89c8116b7e2c7b98cf" + "0f14e4c4df3cb2f319ad3ab0ea25ff14526ddc037469f000bf82100acd4cdf94feb4eba4" + "ea1726f0569336604a473aee67d71afebb569209", + "1f98696772221e6cccd5569ed8aed3c435ee86a04689c7a64d20c30f6fe1c59cc10c6d29" + "10261d30c3b96117a669e19cfe5b696b68feeacf61f6a3dea55e6e5837a", + "04007002872c200e16d57e8e53f7bce6e9a7832c387f6f9c29c6b75526262c57bc2b56d6" + "3e9558c5761c1d62708357f586d3aab41c6a7ca3bf6c32d9c3ca40f9a2796a01fe3e5247" + "2ef224fb38d5a0a14875b52c2f50b82b99eea98d826c77e6a9ccf798de5ffa92a0d65965" + "f740c702a3027be66b9c844f1b2e96c134eb3fdf3edddcf11c", + "1a277cf0414c6adb621d1cc0311ec908401ce040c6687ed45a0cdf2910c42c9f1954a457" + "2d8e659733d5e26cbd35e3260be40017b2f5d38ec42315f5c0b056c596d", + "0d732ba8b3e9c9e0a495249e152e5bee69d94e9ff012d001b140d4b5d082aa9df77e10b6" + "5f115a594a50114722db42fa5fbe457c5bd05e7ac7ee510aa68fe7b1e7f", + "134ac5e1ee339727df80c35ff5b2891596dd14d6cfd137bafd50ab98e2c1ab4008a0bd03" + "552618d217912a9ec502a902f2353e757c3b5776309f7f2cfebf913e9cd"}, + {NID_secp521r1, NID_sha512, + "b0d5d52259af364eb2d1a5027e5f7d0afe4b999cc5dd2268cfe76f51d2f17b541bdd7867" + "e23a1bb897705153d9432a24012108979c6a2c9e2567c9531d012f9e4be764419491a52e" + "ae2e127430b0ab58cb8e216515a821b3db206447c235bf44ee304201b483b2a88844abaa" + "18bca0147dfff7e502397dd62e15524f67eb2df2", + "13c3852a6bc8825b45fd7da1754078913d77f4e586216a6eb08b6f03adce7464f5dbc2be" + "a0eb7b12d103870ef045f53d67e3600d7eba07aac5db03f71b64db1cceb", + "0400c97a4ebcbbe701c9f7be127e87079edf479b76d3c14bfbee693e1638e5bff8d4705a" + "c0c14597529dbe13356ca85eb03a418edfe144ce6cbf3533016d4efc29dbd4011c75b7a8" + "894ef64109ac2dea972e7fd5f79b75dab1bf9441a5b8b86f1dc1324426fa6cf4e7b973b4" + "4e3d0576c52e5c9edf8ce2fc18cb3c28742d44419f044667f8", + "1e25b86db041f21c2503d547e2b1b655f0b99d5b6c0e1cf2bdbd8a8c6a053f5d79d78c55" + "b4ef75bff764a74edc920b35536e3c470b6f6b8fd53898f3bbc467539ef", + "1dce45ea592b34d016497882c48dc0c7afb1c8e0f81a051800d7ab8da9d237efd892207b" + "c9401f1d30650f66af8d5349fc5b19727756270722d5a8adb0a49b72d0a", + "0b79ffcdc33e028b1ab894cb751ec792a69e3011b201a76f3b878655bc31efd1c0bf3b98" + "aea2b14f262c19d142e008b98e890ebbf464d3b025764dd2f73c4251b1a"}, + {NID_secp521r1, NID_sha512, + "9599788344976779383a7a0812a096943a1f771ee484d586af1a06207478e4c0be9c200d" + "42460fe837e24b266c8852d80d3c53cc52ffb1913fc3261145fc6da575611efd16c02605" + "9a2e64f802517ffd1b6b34de10ad2909c65c2155e8d939b8115400c1d793d23955b15f5d" + "1c13c962ff92b4a815cee0e10f8e14e1f6e6cd38", + "1654eaa1f6eec7159ee2d36fb24d15d6d33a128f36c52e2437f7d1b5a44ea4fa965c0a26" + "d0066f92c8b82bd136491e929686c8bde61b7c704daab54ed1e1bdf6b77", + "0401f269692c47a55242bb08731ff920f4915bfcecf4d4431a8b487c90d08565272c52ca" + "90c47397f7604bc643982e34d05178e979c2cff7ea1b9eaec18d69ca7382de00750bdd86" + "6fba3e92c29599c002ac6f9e2bf39af8521b7b133f70510e9918a94d3c279edec97ab75e" + "cda95e3dd7861af84c543371c055dc74eeeff7061726818327", + "1b7519becd00d750459d63a72f13318b6ac61b8c8e7077cf9415c9b4b924f35514c9c28a" + "0fae43d06e31c670a873716156aa7bc744577d62476e038b116576a9e53", + "183bddb46c249e868ef231a1ebd85d0773bf8105a092ab7d884d677a1e9b7d6014d6358c" + "09538a99d9dca8f36f163ac1827df420c3f9360cc66900a9737a7f756f3", + "0d05ee3e64bac4e56d9d8bd511c8a43941e953cba4e5d83c0553acb87091ff54f3aad4d6" + "9d9f15e520a2551cc14f2c86bb45513fef0295e381a7635486bd3917b50"}, + {NID_secp521r1, NID_sha512, + "fdde51acfd04eb0ad892ce9d6c0f90eb91ce765cbe3ce9d3f2defe8f691324d26b968b8b" + "90e77706b068585f2a3ee7bf3e910528f7403c5af745a6f9d7ba6c53abd885c3b1be5834" + "15b128f4d3f224daf8563476bd9aa61e9c8518c144335f8f879c03696bddbe3ac37a8fbe" + "de29861611feaa87e325e2f60278b4893ed57fb0", + "1cba5d561bf18656991eba9a1dde8bde547885ea1f0abe7f2837e569ca52f53df5e64e4a" + "547c4f26458b5d9626ed6d702e5ab1dd585cf36a0c84f768fac946cfd4c", + "04012857c2244fa04db3b73db4847927db63cce2fa6cb22724466d3e20bc950a9250a15e" + "afd99f236a801e5271e8f90d9e8a97f37c12f7da65bce8a2c93bcd2552620500f394e37c" + "17d5b8e35b488fa05a607dbc74264965043a1fb60e92edc212296ae72d7d6fe2e3457e67" + "be853664e1da64f57e44bd259076b3bb2b06a2c604fea1be9d", + "0e790238796fee7b5885dc0784c7041a4cc7ca4ba757d9f7906ad1fcbab5667e3734bc23" + "09a48047442535ff89144b518f730ff55c0c67eeb4c880c2dfd2fb60d69", + "1d7ce382295a2a109064ea03f0ad8761dd60eefb9c207a20e3c5551e82ac6d2ee5922b3e" + "9655a65ba6c359dcbf8fa843fbe87239a5c3e3eaecec0407d2fcdb687c2", + "161963a6237b8955a8a756d8df5dbd303140bb90143b1da5f07b32f9cb64733dc6316080" + "924733f1e2c81ade9d0be71b5b95b55666026a035a93ab3004d0bc0b19f"}, + {NID_secp521r1, NID_sha512, + "beb34c997f905c77451ac392f7957a0ab8b23325bd5c63ca31c109ac8f655a1e3094240c" + "b8a99284f8091de2ab9a7db2504d16251980b86be89ec3a3f41162698bab51848880633e" + "0b71a38f8896335853d8e836a2454ecab2acdcc052c8f659be1d703b13ae1b090334ac50" + "ab0137ddb5e8b924c0e3d2e5789daaef2fdd4a1e", + "0972e7ff25adf8a032535e5b19463cfe306b90803bf27fabc6046ae0807d2312fbab85d1" + "da61b80b2d5d48f4e5886f27fca050b84563aee1926ae6b2564cd756d63", + "0401d7f1e9e610619daa9d2efa563610a371677fe8b58048fdc55a98a49970f6afa6649c" + "516f9c72085ca3722aa595f45f2803402b01c832d28aac63d9941f1a25dfea01571facce" + "3fcfe733a8eef4e8305dfe99103a370f82b3f8d75085414f2592ad44969a2ef8196c8b98" + "09f0eca2f7ddc71c47879e3f37a40b9fecf97992b97af29721", + "0517f6e4002479dc89e8cbb55b7c426d128776ca82cf81be8c1da9557178783f40e3d047" + "db7e77867f1af030a51de470ee3128c22e9c2d642d71e4904ab5a76edfa", + "1c3262a3a3fb74fa5124b71a6c7f7b7e6d56738eabaf7666b372b299b0c99ee8a16be3df" + "88dd955de093fc8c049f76ee83a4138cee41e5fe94755d27a52ee44032f", + "072fd88bb1684c4ca9531748dfce4c161037fcd6ae5c2803b7117fb60d3db5df7df38059" + "1aaf3073a3031306b76f062dcc547ded23f6690293c34a710e7e9a226c3"}, + {NID_secp521r1, NID_sha512, + "543c374af90c34f50ee195006d5f9d8dd986d09ad182fcbefa085567275eee1e742bfe0a" + "f3d058675adeb5b9f87f248b00a9fbd2aa779129123a5b983f2f26fc3caf2ea34277550c" + "22fe8c814c739b46972d50232993cddd63a3c99e20f5c5067d9b57e2d5db94317a5a16b5" + "c12b5c4cafbc79cbc2f9940f074bbc7d0dc71e90", + "1f0ec8da29295394f2f072672db014861be33bfd9f91349dad5566ff396bea055e53b1d6" + "1c8c4e5c9f6e129ed75a49f91cce1d5530ad4e78c2b793a63195eb9f0da", + "04009ec1a3761fe3958073b9647f34202c5e8ca2428d056facc4f3fedc7077fa87f1d1eb" + "30cc74f6e3ff3d3f82df2641cea1eb3ff1529e8a3866ae2055aacec0bf68c400bed0261b" + "91f664c3ff53e337d8321cb988c3edc03b46754680097e5a8585245d80d0b7045c75a9c5" + "be7f599d3b5eea08d828acb6294ae515a3df57a37f903ef62e", + "0ac3b6d61ebda99e23301fa198d686a13c0832af594b289c9a55669ce6d6201138476901" + "3748b68465527a597ed6858a06a99d50493562b3a7dbcee975ad34657d8", + "0cef3f4babe6f9875e5db28c27d6a197d607c3641a90f10c2cc2cb302ba658aa151dc76c" + "507488b99f4b3c8bb404fb5c852f959273f412cbdd5e713c5e3f0e67f94", + "0097ed9e005416fc944e26bcc3661a09b35c128fcccdc2742739c8a301a338dd77d9d135" + "71612a3b9524a6164b09fe73643bbc31447ee31ef44a490843e4e7db23f"} +# ifndef OPENSSL_NO_EC2M + /* binary KATs from NIST CAVP */ + , {NID_sect233k1, NID_sha224, + "f23f784fe136c9fc0d169503d361e9c6148b0f1fbdcae0a97fae1af7033ddef25cb7489c" + "9963cfcb009a8cbfe44a8510a64a073eb1deae4c324ceb9302008c92c69b2dafcc9077fd" + "3cc3c7c119edc3ced36d176ceaa55ac036bf7f07f6fa215e8bb8196e59a5e1c9af4f98b9" + "0ab4970885bd7015fa26a09e03c7cf6b4b23d929", + "04c1d414696cc3657dd9df73ace56eda2636769ce7082e064c260be45a5", + "0401f228c0a75b057eb07fe7ce8223ed4163148c1fdab61e0f787271f836a900cdfa5655" + "d96ffd5ffb6027bfaa04da7b5d8fbdbb6202c8bb79f056ce43", + "058f8511089fcd59324469f6736b92693afe26bd4719e198f1f2287dc5f", + "016bafefb4933ffd00bd1db6d6c4fac8a06375603adc0aa2a5664083ff4", + "03bcb84b8f1990cfc7b88f2b8cc817105cd8e150808e7c87b310cdc47e3"}, + {NID_sect233k1, NID_sha224, + "400bcb297552bb37f2f8135a9314a35f5126788bb6fa4dc74152731ff64c5dab4b902103" + "d85443dec20e16b1d6629930cdc2bd183d4099f0e96295a63c2fe266f5e9d050c401a868" + "1b4a438efe53cbd8f2f43e2a31e9f88926a9c82917d873f6e8cd5ff5eb8c1ca36126b0bf" + "c8c2b0e85a7c9e7a45f1875ca9c82019ebedb729", + "027cb1d84865a16992476c9e353283d5d6a40c349a8e9179d1b1f403531", + "0401191227d064176f4ab020faea61330df5eb59163ecb4ea59c23e6f1f6c8012dbfbf85" + "b3624b9f56446f840602f9b839bab1368295b3ae919cb07c07", + "01a41af270269be052a62a9879638e3432a1479b05776ce61f45c0c361b", + "041a5f1d28b70bfa2925b9428ab8bac9fa174d88ae27d754824c7d16ead", + "044d359065672b3d3dfe8389fbc6fc751ca6a46820626c466174fb9b922"}, + {NID_sect233k1, NID_sha224, + "5f74d4b35c49fa454c97c05fdb6b9f6822cf1a2295f15bd766dbcb413d77c910bd8f4147" + "e8f317fac2300fa21cb80134d1b6f8ae8e50518c1f648a28506e419f5a6e8f05abffdb3d" + "d2587606c7e9c223ecff4f46b121216730ea13202b59128a7616bb2fd23a7e4a5aa08641" + "cc07b669641313febfc88d64d99447353dae3f06", + "031b443f46c4b5224237fac1022ee1570173f664aba0c84dbaa4246bdc1", + "04005f57b0e5f2e175006f4058cbb4ca9a0cac912c551ef1b94e97498fcc5a00f3a554d0" + "77b751478f8a2b7c2a9cf15effed958e0ac1a9e3db1e023c5f", + "07ff6ef3026c5a960e632beeb7313b3bca0baec76cea1fd9b82cedc3245", + "0099741698549c32a4e86aab6194527cea703ff869849c538a938585a83", + "02ad706c6f5dcff512498d84f1877eb997dfbe9b3d13b339917632d3cb1"}, + {NID_sect233k1, NID_sha224, + "8f92096876d9f81bcd992369d42d0b5877ac969004d17c8627c58d8b8b7bbf7a37e8cb6a" + "fa962b9b043bbbaa5bef4a5ee38d8bd31cb5866b828265a2f4102a616f87009cd346fcb8" + "af5519fb577c60d8792472232f33dc615655e53d2b715b15a2697b492f108b7906e1e359" + "7c6911f8cc30c7121ae338a6b747ec368f8e4a36", + "048f6ca29f35f253a4962734357c995920967b9eeff1ba5fd2080bfede5", + "04012b7ca7c21292f8795b2fbfd63a28c5a4ec8c850d6240f973c903bc817001be9855e5" + "c5a5064c27d1862010b2fd0d7be5a0180c861a288ceac89d6d", + "07dcb9725323fd7668991ce9a907b7129d53fae9016e253c53d057d195d", + "0498c4fca6ed7c2998347b464d3e562a74b0e4f3a6c1dc453aaa61bb710", + "03a77a13f011404d5c5341dcd2ca44dc2b08f21f09f524045c281fb221e"}, + {NID_sect233k1, NID_sha224, + "3d275dbde44494c45fc15fe89e2ae32aa26426a17e923e895c7941a5582fb95df4d49873" + "ab1bde358017f336b911b886b626b744806ab8113418473c441f1964159ded1b12122d53" + "ac56573167588e4b55f36b8bca8c67823883a51fb6e7f204d1c6b07ea49b577bfab9ca6b" + "8d51f72268b022e3a4db6f9d265ee8382f9b7b66", + "019b940eabbe682f961d9f3d90432e347fef3910e641656825d775705b1", + "0401efcc9f4576047c43eab1c13e0547b1c5ec1cd2afd2345fda72b5e1b50f00c7b5968a" + "f47e58f4ec15c0cd82ccd0b9f5bfde06c7f86fe5cd0105d693", + "03f783a94d1de73e4593f5d6d02238cfa0486e3ddf2bc0b95a528038e3c", + "013c467531f3f6508534ad072edb210e4182ce5a798d8a46674e92a0b4d", + "0685982aa8e2f3e46ecc03e00e7323f3b891da437235cfe9800139ee8d7"}, + {NID_sect233k1, NID_sha224, + "d2fa68e1f7dad02916b12fa38f1849d6d409dbad0344438520b4dd9b77d62d39ac9ae3cd" + "eab03ccbcfd4de703c6e798873671731c108f322b9f2a68145e3e210c9b15b879798e5c5" + "3c5022742e9819b99edabb2f44d89ae221f7a99dc84421a6905695ff91928db608f86174" + "5f17584d56e34b75c47281435b1b0b34e490692d", + "07a884b22e29fa9fe945e9ba13c0df8d786dc87cef0f77f069e182dd56c", + "04011e831647d0ffd53d75e44abceda753ab470b3cc93b457590617d925a19003db5bd0a" + "ecd6504d904bcf9dcce131abd239aeadb9a64a9811eac823cc", + "00241b763c6245b83afe61762b161c41467ef35b7f27a9c1066f02babd3", + "0514adca3481ac5f99287e6e966a5c223296b07a9456eb582ec5568688c", + "07ff6a2f7cb1d2594a11d8d0adb6fe50b4e740f025e7b4333ee26163d92"}, + {NID_sect233k1, NID_sha224, + "3830f75cf9df4eb2998c7c1b5fe11c1476bcf849c3a8fa7d3d0b5bc2292e5d07465ab8cc" + "9381c575d909e509c5dac49c78817c04e4bef18bd51bb09aa5897f21634633a5ce6d20bb" + "4638cb6c3927351eaec7b62cf4a33956916045c392f325adafb10a88a5f86d7e41dd7790" + "8fa7284210071c22aa40ef40da6339c02da05392", + "05da61f881d5a0dc085bb93764f584352882923cd237d878220ec624c1a", + "04018d740441eff1f785a14d04da4ba69540cbb469780ffd36e1dfae4f1de2018072ab30" + "e999ae26b872ef46a9a0604296d02c08fba9477d9e03f0f75d", + "000f95c5678fd08dda790cc60bfa578118f8687228a2ef5f31e71a6884b", + "074a6599b8cab75e0cf752e3f41288fbc673d52074950edb14f76524949", + "03523804351e3224e816cd4fb7191f332585f68053ddb32a85cc0fadc03"}, + {NID_sect233k1, NID_sha224, + "65b9fe15e6c35d453caa6bad39ee78a720a04b60d8a0a0f049186d2f777e48ae2d657e17" + "4df53edb7beb9f7d8f21904ed674add0cda5b62a7308de76c324a144021e8c6d387daaba" + "4ce48bf7dfe9c8aeee2c64e434ece1fa5ddcafcf3e5d0013a1eeec1742a00d384cc2ec0d" + "7eda83bb4dccfb0e57045ebfc27a4f404d03da37", + "03fe9f04647f6d82b13ec1ae5a8c2e49bc66b05649ad778eb16149ad83a", + "040158eecc6b8918e7813ef990217c603b28ed1774c740382a8af5c9af613301bbffeccd" + "41107c7e6f83e24c822d634a7ec064fae125dc8a3ecc4fc9b3", + "07731edfb3ef523a165a1b5817ab2805a5cf88043c98ea2393898e19551", + "01fa44fa18ebafee6f419fdb9de0e8365520617558b57e9ee89f2c8fc88", + "053f1b2da4cabad04fea1111d525f341417587823fce71e5bfd2353c2f1"}, + {NID_sect233k1, NID_sha224, + "d26521fd41eb5d46ece6836e188bf9cb1b461d011c41e002a935d256654d01725378e845" + "920ec4a7fd3f379df54772493df50d312c7c6aa4e909e7b83f2442c3a5e85c37d68aa015" + "098ecfb0a5e077370f4576f4bc63bf37e1dee06d780a3b6949af5e21c2a0960fcd20821e" + "f5f17bebf5fd5b3bdda260842cbbfad45667287a", + "05ebce648ace4cd555413de6a456fc487d14bf4b0b9a72311ef480d2f26", + "040020b46ecbdc36b4dc01111932090ba185eab2cdc4fa89775f2a6177c5920104cac1c8" + "00103c79642321a216bcfae497b037b29888cf9f70c507114e", + "027733120626e564b06ba71c4946c9c8bfae43f88511ec6352d2a52f407", + "0592de5184510e6ecb7be8a011f862470b918354a1ad82458cf716137fe", + "010a9c5fb6e4b70571a35c56744b57baf0108728bea2bf639af1960d1dc"}, + {NID_sect233k1, NID_sha224, + "b778c021b1a92c41dbd09963da07018075d73e54d62df5c2b7bf8abe137151650d1c1c6a" + "bce7eebd8f32e8c3e6d1433773f257bb3ba4a4fb6a02c0db1e47d03c27d3a90898ebd192" + "7c21df24c4c5443ca5b81f8ef2cc0f5e8b3d08f472bf07085df737adaedec63d99acd77b" + "87ba98225f198b791124ac2d9b191cb9251b4b00", + "056653c2f85593f789a926ba49fa3da9d7f946d8f1020508c5a527ce813", + "04010d65f6f5415dd86a83bb10118abfc1b1670a1664eb6dae99fb68b85019012c1e673e" + "575086ec1e76b90d59c2cbd2727f726f88298552b678ba7e60", + "021e26c098c9f9da9c782857fe640ff6abb21caf20a093f2277845bd10d", + "01d67cbc8209494dca1a74cee5d9894f98f03728214f7bbdac29b0c0e78", + "02215f758fcf0d8dd603e79658a8061ab45bfe6d854e52ea7074fd5654e"}, + {NID_sect233k1, NID_sha224, + "ec14e07f615960015a489ef999e308b42a4c571473b9bd64b433dabd9a1b1ad02e33eee9" + "100064405175928a94543a80f440040afa2965b4e5f95f768e7fab6d3c0a5f5e1bf1df78" + "22f78384e80f2955ea85f044ac60537d895747979f935bb0cd3673193c4a32dd7803e48d" + "7daf70a71bc2aa97236615b6411e28fc9a652145", + "049a91d320783cc70a5952c32036cfc75d41f1aa84127db2dc759fb291c", + "040190528df8fc3ae4db6e12930f176ec9c833d1668ac5808f1046366445a401f647d55c" + "e80b18a9add47fd1a8e4aa725297d9da03246f5c1ce503dd56", + "01eb80e2596d6c01431e7a4fd9e22903ea85547a31d675ff157a789a137", + "04523776d88199ebac2f96f9faa434bd81bde770ad4458ef126fde9198a", + "054665f31f92f8897482d34fcb63141a7539577037c84496167e9d3389f"}, + {NID_sect233k1, NID_sha224, + "89c645339ad0eb850e4e2fe583cee175b35feb02ed7541d7e9aace24cdd3939584f73ad3" + "9526de6399c86b36de77a018e2c70b532bd0f032f9137d10480acc30c49f9baaa86f9df0" + "033b77e98b485bf7a69cb5c281e527d3ccd1fce2415f0dda4a268ce68a0a34b16afda54e" + "d922cd6810ac8dc766df2a3a6c5e55972e9786fc", + "016a20016602fc7088a60469843e1d29ad67e3c3cb9500b1e2a00d4050a", + "04004f157541dc3a8bc8a2ad4dfb3933039b67e331b7353a2fa9ede322f4ad01348a7b8c" + "9495bcbecd556870715faf3d543cb8f2368805473bca17b82e", + "01df1ee39217d7f0d838e8b2d30a1159d8003b06e50a00d637edf08d6d1", + "045d16826bbc425637e7a05b826bc907f7453c70141d1bbd2cda63dd490", + "01ae1703cf179dfd1d5407ba2b7324cc7cac15235ee9c3756177444e122"}, + {NID_sect233k1, NID_sha224, + "ace14c4b101d2d8453c2bc22b756af016b5de537df9c3e639d208ad04ae0bf6232dc90b9" + "0c33228dc85de956db771ffde05fb4d0b15e4f218ed2771d703ae5bf981252a5bcd60c16" + "f14483131a481cbe04dc0adb1fb8aa32cb48bb5008e8a8e5c7b7465be2fd7afbc811cf5e" + "a6293b1a464669b49f55f57b93a8707e6042fda6", + "00ba922149bada2551b7be1c3df076f3f97ce93c13c50c285fef3f42363", + "04012daff2cfab994b9d1d1ba73bd2f8e7883b2d92f760b0d16351ec125fd40115666f7c" + "65b95ec2d713c5ab1a3eeaaf0f931b1859733416c3c778aa2a", + "07fc7c9503fabba0972e0e8892ec6331e0812c6452d211c5561fde79048", + "06477ec9d8d8d45418b9efe7ae47c0863ff94c43d8f392c079b870a7cf4", + "06b5a5d020b3d980b9d7880130802435ddb4e7362e36a70d193f18a7fe6"}, + {NID_sect233k1, NID_sha224, + "cec2ba0d1772c87e87d5bbbd67220692bea4301aa1a66e8dbdd7e651d45c26dc2a0d45cf" + "c32c34d76ae3e1c61db7b0fe1863457b93937d929e6ece7462ebd16adfd708353d6f7c27" + "aafe06593c76da7149b0cc574a4290b0d8fe219f3eada7082aca38dba3f78ed0d5942d09" + "5fa5556fc8bcef331ff0a6d5d1f4e6c51d4ff5af", + "02d635e12a58cc6dea44e71e87c37f91e8d08659f0b7955d24f65ab55ba", + "0401dd33d8224ffe63a32f2de5d4fcb0e5f1fca7ca2ade5b35ffbe75cdc65800bfbe9dfe" + "13f99258c787af82631ce2133dc73207c579b29869c7463943", + "04ef333049c575d6688aa04f87a6162185e4a57bb752a7f903e3aff86ff", + "01ade04af08ea1c1877779fbf6335156b1a1437f3e449f07458d700c67e", + "010fa82467d39e5ad51cda8fcedc72ee6a78dccd0c90544814e53ba9cb4"}, + {NID_sect233k1, NID_sha224, + "ffa13cd0f51ae2643d5d4edecb493ddd653e9faddcffc370e7e958abf726a5d67a2ab36c" + "ef42ea8ebe22a6f01b9c31f6ffad01e6894487d979acb5e618f765ac0ec3550ac5dbbced" + "e8f9fdbe52fbaba5c087ff382b6d7a09b2b5084227d324d98ff98793040884799b96d2ca" + "593201f4414f18c43b51c53c5e5059e0641aca02", + "0073883e5064e06814fc4de32e15f7a6cf825d2daf6eb1df8c83e25d80a", + "04000d3c79d627ee0d2d88f2de2dd082112c20dbc5ed66089454f7b8fd9f8101a2580e77" + "9753bcb023acba1b0852492b989c767f664c7047de8e6689fb", + "020231e05166271f47a91dd883c580ee313e9a07195ae511f0ee62173ec", + "0303eb4a0df97577c4cff531b3f54aa282e76669c0c5ebf4c9779c9bb82", + "0692432a7dfde09db7743f08130b3d3327dd98cbdc323627603518f70d7"}, + {NID_sect233k1, NID_sha256, + "c73e3dbac9513d0361dabe94071faf03a11cba18c06d131a172d5f0125b01a5eeb6055bf" + "72c7106fe3f4be3bd2b1771cbe7f85366dccfbc3bac20538510c3f51179cc540ddafb2f3" + "b05a0d276899674ab1d7d8fb4f6838f04e4f9e26b8c6af31540f63f4953c85840af4c57d" + "fa78c704f637dfc8dd750fe45e2c1e149986d127", + "01532271bfae8d4dfe60f69b88d3006d58e28aacfa701861cde8d624db6", + "040041c1ca965338976b4c45c28b1cb64836b3b4d3e7ba2b1323ea26fbcca201a177d042" + "fba7903007db122eabc459e37c2c7fe82e42752b267fafe4b0", + "06a54894825644901baf2ec3681ce5aaf93a18757d93ec9cbce7ccd9d65", + "03edb77fc7686b520493604db18fc69edb4cad8195a958e27ef289c4bac", + "004337ecfac57abb9271909aa43ff4e32851df7818dcd87216d051189c0"}, + {NID_sect233k1, NID_sha256, + "d00dcd0f3212a3167403abed91c20e76f5e7a7678a4fd970f944d11e6a8cd149d0aa6fd3" + "164c5a74c0f55193a4fa3d8ba6f99cabed10544625a7bd92b3e0b46edbd4a269bbc10518" + "c5268c3910a2aea567ccd32d4c7a0cbef09ea42c20b636d1f711d220e23dacdb9d1146e0" + "494401349749e5ed88e38295232a7effbae3aed6", + "0550406c0db882c6aee6cf3b6baf377375208c3e90cc44a067cee43efcf", + "040073348eaa8f2885fca3baf31830a2b28bfe983e3046418561f62ac5d24700033de5ae" + "e6d0bd4de286f1de1e80bf72e5e17083032bd4dc24577b6d2d", + "05c0e7ad0f9bbd522c862326a5734a766423fff7efbe57c51c315fa574c", + "02103f1a0200883850b6476c7d7e7d2b3e2f60923d028ee6f8227b1ec48", + "007cbbc3c6295ceafb3d9cf8411f85a045b11ef8472c5ed45346d26192a"}, + {NID_sect233k1, NID_sha256, + "3d36221f87157ca4db84884b8666660c4e2b6af330480c516cded9f3bfe132543626a39b" + "b6aed1964eb5c33ea0b95b9841665417679fceb95d199d55accfce35dd3f2283c1a7ced5" + "7d0c4b9ebe3da6e1ff2f979b6440db27caf9f6a4bbfa47e20d29ae304f4d0551fce9cc40" + "97eb2fbedb9b24680bb17d207bdccdbe799d5b0d", + "0257dc63752920b6854d6c2d1cca68589a38418c3d036e73760a12214ab", + "04011a42e9f66ecf030d0446cfb751136347d4df0ee4e031058ebdcc04df8000fb7161fa" + "c8cc5ad7bc4477a39350e419776f76f184e28abce886ae9cc5", + "00391d36c4044896ddcd68604d5f677d1df298f46abc00eb12f1165e8a1", + "04e19bdc6755a603085b66355256bce98d5fdd49b4f06b628e3e185574a", + "07697b29ce5546de969c9c4bbb5ea65f712d6cda3410f3dbfa0cd5b1a8c"}, + {NID_sect233k1, NID_sha256, + "033d82a42d0eddf58fbe3e91ddff7190e3f9fc2b1e2eede977d2c0473b358b5fce1f981c" + "a6f88fd61ce2f79e453e3a2b77d1baab2b970ed28d5dcff58873a620e195085e61c4b848" + "0d829525a1a944e8a4b63352f0291f0311f1f98ceb262804beec1c74947618f8e3b06786" + "6255878c2502966cefcdda4f5fa2b13d92ce7840", + "029025352297a7be850f8852411c09259b83219135e0e8949c1bd5b94c1", + "040184345e37f07077cc8df5947c1b1fcd8404b3c31586d6ebd91b240cf42b019dbc9091" + "a5d282fd6e62c34676a06a425e098567b990c47e61ef14d77e", + "02b2663a449ead3f8cce2459e04cf84333376624d994fd9312401ae57f1", + "03af223fd3a6b6b240e59dca83ce2477a577494438ddee3fd09632ea67f", + "0606576d89f2094572f0bbcb58a15d9a4bf10ae3667d4e35cdd8da32102"}, + {NID_sect233k1, NID_sha256, + "671a7c81b64b2919722d7b258bdbd90165bb757b53106e0af03d0eef27452942f40cf52b" + "c95cc7f6567df2613cce795f8bcfc723b2735efc35375c001d37c58480d89343697146b5" + "24835df3dbd333f7c06c98e36d3c4592ecd1f34ab57c341bb0f4c785f5b8372775f74b4b" + "ce60763fad1788e77ea158d735a64861320b36c6", + "02dc82d0e69e498528925c0e62a13fda9af8cefd047c10c3ffc2e41da3e", + "0400e5463926235ce53a85b489c3c278320ed986003962a5fc7ad4cbab0d9f01453e6edd" + "e95670a4653186ebd8246c28a94dd84f5a669bd3293176f1f0", + "034a8dfbbdc98bb1d9b175600bffd866306dffadcc4bbb6f24e7f918da5", + "03cf1407445cf1a619a280e139242056c23c58979f0b3f0aa7e1fc074e2", + "02e55f27593f2c76fafccb71493f14daf50073b35cc85f002528cc6d691"}, + {NID_sect233k1, NID_sha256, + "0ef677f4799298f4aab73b7393598041f56e902ced1726af49657b6601a06186212e3ee8" + "cd4bd33b760dfa2ea3c38884f94358d51dd479f2ccc8b0b352fa4e44fcfdcfbb24919d04" + "e6ee1108527b8e8d60e8d1b467c30c18c5455e5835d483161d3fc26b4a67d6df9e3ddd93" + "31247cb18450188752a1ca219f3396a872cb13d8", + "041535fff5d279bcd744b04e643458ce20b81df8a9e01b1181d52bb14e4", + "040021e1227457be78e49db22335139a136ba290d34871f90ab5e6a8db6ac100df43b381" + "a4d757864c39ce8d0b64d6a32e9e8be30f92a10a252d46a2e2", + "03019bd459b34133dc7331caa8976bee67f76db3a45b1793cb545e26c68", + "0025611bd4e3473aaea85228b2bf37eb1b4458d8166012aa098d9c1cab8", + "07acd38506e984fb7f1607b50837018f9b4246623dcfc9d7aceb486e76d"}, + {NID_sect233k1, NID_sha256, + "9290df0cc50c3cab6655f3a6de1f4cf613d9bc06ea7c99f38038369ff2fadefa57a3c7ae" + "7940c1b98bb1d03503cc271f7a891bf38eec93c31dcec7892dfd2e1ab337bedde3e5325e" + "d8d9cb7fa3096f6fafc3beb3a66cba66ba826d1032debfb4908cc9dded8c0099c85072da" + "ac4373fbc428fcaa9a6da02181ebc33f0cf926fb", + "000ecfe580a624df66c25e87e7689fc3b471d205970ff9ab51a64aa12ed", + "04002ca7b9c98bb8106ae14a87d5f9f7ae1f99a5524992116e68af89da6daa00a2fbee76" + "9eec313cf3c8519d3f96167477f0f06dcc470408e3f637b6c2", + "044f065c49bb7ff0772d628104bc2e222f1fde42aaa8b9345d324d7f936", + "046301f3f07922d338d5b7d82104597fc50941e4bc0a15ab5e0408f9fa1", + "03495e335905b4842b97f00b344313ca7d6a4ff60cfeaa5d589e0a31782"}, + {NID_sect233k1, NID_sha256, + "855c7be75fda372f062709827f333630acf28954a62a5193ff675f0dfeb63f32bca418f7" + "cbdb346bf388d62315b19a592267ca407120db93d4e3d7125b867c4c4670b7a57a76f617" + "34cead2caf2425eb9ff0a63293e8cd6defc9648257b401463f4533a2425e0024f1ea9336" + "5eeee3c6da20d25928602ec8b426f9b39f97f3fe", + "013c72c73358ffa168423149ecdd897f0a5f75a641de008649f00134944", + "0401c70e1b6c01477f95e718f193e13c093b101e9f16024082ac699ed6ebb601f8013a88" + "264266cb5cc5bd38e477fe0a1aa49ae4a5ff94cb58439a7c1b", + "07ad8a117f34bf2fcf7d689b8124e08118e28ebd172f8c220d57d3f0b88", + "012bc7d380192f2efe55625e39927ef799993af9451c662b562a239dfe7", + "035961b27e88d6731220f70e96d555f63853d14149df7bf6d24fc29441d"}, + {NID_sect233k1, NID_sha256, + "9c896f800281812ed57d31623d563377a5c725cec84313472b90e73f77d400f5d4fb2362" + "55741b73d46f7e5254d04099bec274db8a9af5fc7cc220d42cc172cbd3c3595c49ff74bf" + "aab7b5e46c90855b611f74753ccdbbabf92e011d52e9ba753b83ed2a251a632e1bd5c6d3" + "46e38e743950c8ce0f394a837028575fa44bcc26", + "00ac60e2e70b7c4cda64071c7738f68773c94df9456a8ec3bbb468fa7f8", + "04000109614a2ca27b7a749e53777e0f3ee2f57013ee83ea539ada6d98d8a9005668f4b2" + "7213a8a024455b398de2cd7635cb620d7401f5deb4fa9ab2f4", + "00098489f0966e27555268a94378b7b8685ac610fb0964694aae9aa716d", + "06d151437a0aac232a472af038b0fac095d224ce0e5487510e30c31d605", + "0563dbfd021c1b77f980530d0120e93c9ee4f1f092a268bd8aba7d3110e"}, + {NID_sect233k1, NID_sha256, + "139a14ead998d1a962fa47c47ef2953aa136bd912fe940709b8c560bc2a0c4bf8f3aab30" + "a8e21b7d5f487d30b0097e3da723f11b5cb4e8c5724f5a2fe0d68ee4bacbb85e5eacf180" + "94d2a8ec4506cf8497836a4a905059a998ea750adc54c27c69cbd0b0c1f9743a62f3d988" + "f3fa0a9865a73fc071f526623085a2ef12838888", + "060bf720052e8b9508a801340c213cf53bbecf4975faee63d4b44fc647a", + "040196e37671def44b35c9e8c719130389b40c7ebc0ed5ae354dc73e0c40c700d3fa0a45" + "a3cc5dfb61085290f6d18d710ad5d0d3ab31ce65b0e6915a72", + "0729c7e1de10e92634857a65a2ed75103df6bd4bf63b1ad6383c37a0435", + "06808491ffebf088476de7daf541bca3fd943d4c2089b848a130abdc0d3", + "02c0dcfff06a07e928c15a1fc2aceaa4b4dd6fe8eb67ccd4d01240f249f"}, + {NID_sect233k1, NID_sha256, + "cf4a8e754b23d0fffc1c5c80b0cb11deeaba3064b315bc2cee96db5b9881baf90d30af4b" + "69066f757b3020706def77a5fc1632d96bafba22a9c8cd3b52d535d941b3c7cc02b7fe6b" + "51639d5e2084478ab3a29d2f5e0e16639fc2833a47b58e2c3fb5b2ea1830fe2ff68e571a" + "8f281617a23d9a28db1c64ddfb1083d055030e5a", + "07cf3c216592febd8630a478b5b3e3a605084020322adb13ac0a626bc7b", + "04008eee2ea13a08d4e4d71ecd2547f6d80b8f88879c9edfab5a675831fef2005117c0d8" + "a0442ad7b95cac1a984dfb9efbb7eb3c3866955da60e6cea8a", + "038de0be25c23cbde9ed9fb259cd9a06b69bf15dafed723970dfcb91307", + "051c9c5fe50eb81a11c8e7b2db145c6b5dbff2c51def56f4981774c357c", + "053887c6cc2f21bff461c9182c17f634ee2b301c3cc4af0bb1d3075f74e"}, + {NID_sect233k1, NID_sha256, + "ae64030d4af9b36c8d3a6af0aff34e5ab201df04274691fb420b7d5c40c401ed7f3ade96" + "065d34f2490d17943e27156e7bed83cd7222d0d5a73d167855fbe7ff6c3ed87f20986ad8" + "bbbd80fed5f9705c6c783b423f641d40ff1f367f9648af5a79ea3cea0236997558bd9dcb" + "011ea4dc64d61ea1e1f85b4f696ed586bc7705be", + "061eda5999e5a9ed4485d2a0ac5510549b76ca37df858ea5d95aeed571b", + "0401642d56359cc0a5f261fdc405030d45b0d6f9c08a182d354bf2687dd9d5011bf0dcbf" + "62749a99e4b02b284aa7a6479b59b363d25319a5315423a589", + "03094fac5381a1b31e53f43a537d9e22ebe6bd2c149f2f69d792bd56f53", + "053c8c4f9a30e0500e01100bb97c00ce98f5cc6578686daa1bdbd679373", + "047086a88ea014f06d6345608bd0a6010e650b9f6f984b6efea9a4fb277"}, + {NID_sect233k1, NID_sha256, + "94a9d9cd9efa3e4ccf2a37f904dd9cab5624ec9393cf8816ea591c5e70cccd2f105388ae" + "133708fb974998ae61d218c71785f9eb808d1c28d953cc7eed00dd9854b6b4568c5ed5ee" + "3df3b58a1e04c64f1c87fee4365ec9aa41b08a6bae234dc43a0bf2f61420acdb891a40f1" + "7f246972afee75a4c0b249dee0fc8f9b9c8a243d", + "07e7e73171e4d2f2989dc024757c186485435b82544a448f5cfca05f281", + "040181c8cf579d9259020461184979757b097d5a94245a2b9a1f8a6931ee0a014baf1b76" + "1a0af3dd9c0521c6489f9a778da824283c94087698daa7cf78", + "02b57fabe6b866fd25ad8802c6b02b680c137ea9b623457b35a24d5a5f3", + "07421dbfa83859354345b9c3f1ce6242605094d924a4d38c7bd952e3910", + "05ee48a3a5119bb3433b53a625101492216421ce67fc04dacf947ec600e"}, + {NID_sect233k1, NID_sha256, + "4db998df7b90678b8aa4ec6233c9b4629800ad1f3e2cf8f7afcac62fc6982dcb290e4458" + "7015eca8dfe77dbb4a80f9bffe75b11e961e70deed14555db6dae47d49e73004f000eb86" + "77c18f7e8234bf0a5a104266167a05ef07152e7acc2f0368b37efe69c0c2feb51eedf733" + "8cf9ed398f066cf1f66bacd89ab9376d41da35a2", + "05f7270764a0444c7159d2db867930fdb0fb9fa6b8fc80ca02e11753095", + "04006806c7164a09e11629e16608b7312d9d988acefa626fe8e34e03203d11019c4200c9" + "522618dab8a16e217beb3011599ed6cc09291fe9d451f0cf02", + "04a8958c80481a18c6e0893da9ab2d48fa6ae30a0f1d0512196e658eba0", + "01d301da51eccd15e09ce0bc2d0bdcb215a43ed13792084e2969260d46f", + "031f96a2f322d27d0bef23ba7c457fdc45a6e612f7d13e9277d36c8def3"}, + {NID_sect233k1, NID_sha256, + "dbf9b8a4ae316bd2df0c80db1cb5d7038364a2634925ff957d7c03511b57d486274b2ecf" + "191746827c325a14dc94daacd66ad86d369e3f598f176c4f0eadec7e9edd13e34043efbe" + "0a801b75b8186b4a6d89ceae4fb250ab570d65b6dd7c04382738fe3f6f6c867a7d84b35b" + "20720cb0036a5d81a87126f236833831d9ff00b1", + "0179b924afa4acf30ecbe2b3c12de533a1f9675687876a7e5e5ddc8e03b", + "040175bf95ac8e768727d3b4a74c2b8a04b221247a3b8386ddf35fc39976ad0122f32f94" + "1066150c151b9db92b86f86a10cab0828a77e4f0d5c4026540", + "0210c75a63699b424585f65497c6e46988c28eff3e0977e3ade599581dc", + "06087e46c0677e3ca64a0cf030236583935d0dc03c896685dc6e446d9e2", + "0252e42b8f03b085f38c6849bd420837d985c9fe14750a654b584c4cc5d"}, + {NID_sect233k1, NID_sha384, + "986d9e5d636526f4deb7545c037fe81b09c74496ddb8e42e61650c74b6fe348593f0cf8f" + "8eca5e839baf62f17bf6ad96ec0c71dc44fdf11259dbfe7499157e402f6bd50769723541" + "50723afb632799a990c44cd0a4fa9609ec4db133e3b4700be3ea4a338e8ba1873d345e80" + "163ed60d0de274d7617a8382980bc2138b0a2a01", + "02c9eb4d392d7f2eef606e1861183acb1fc753d666225f0f154d9eda147", + "0400d58fd7b5aa570b1c4b2190ec413fbcc9ef44d33ef191b6e23abcb386900173e85377" + "bdd8dac58222cd1d0f7ed98d73d6fb6c2eaf34819b08ececa9", + "064f9fb13784c99185f334700ccfcc4ff60b7f4d613c3de6dc5d1b8dd5a", + "03bff54e3610ade656bbe002867168db1b521c49225eb9662950b01955c", + "01da3fd8c08d8e17692059c669da3c7c4c146df6d3cbeaf34598d28eaae"}, + {NID_sect233k1, NID_sha384, + "68d0be2883598bfb1433886aff118349157708690380c42b8919859d96db069c7fde6e11" + "7a3669f2cff94a0f1b66b27b09e3f1b24d26299e11552a084be428446f3174da2e041465" + "5bdceb38e58fcb065b6661190862db39c6545dead34a03584632e988d0459659dc7c7c78" + "d4d00fc2aa10465cf24b2410f14e2a62173c9962", + "024661c89b77b2c743cc175a6130904461138ddc4ef771ffb9fc2c8679a", + "040090383de7ca48f1e71a43845565a9f0c53d2c9f8c2e0f6c4ec7eb6437fc0167658227" + "2e7ebc9fd56e1010a570d744ae4fa70eed3e6eeaeb0e0eda7c", + "05cc5b36c7300a1cc3f624e9e663861b4e296f7e7a27e8f8f0a2d54eecd", + "039c6f5b484411c434ee161ebeda7aa21b7bb26bde0301d9ff92921337e", + "02aaae737aedecfd5d53af56ef154ac6430a45ff03a3495a34a5fe0e97e"}, + {NID_sect233k1, NID_sha384, + "f0ba0407485fecd7337f4b22236533a926cc744a5f06dd08276750196f1bf7ea7984278f" + "789f92dd07e36895a8bfe297ea43d4a1177c0368900e3b969d3083cbe626f0e27e7ab38e" + "185c923dff46d9ba187b2acb9cf4b23ec8eedbb8044b96b5263d956e50cd6240c66d5d96" + "517130c743752404ed09473f05d0004dc5971ff5", + "0065e20e5ce534576d7c17616cd4ede3bf4f500894850723bcc9f895f4b", + "04001413f6dd5349e94311f1d25e400b69c0f0ea446294eba4bbeb10278b850066a05055" + "d856621161d4f0e33dac82e5c0cd91ed8aa56e9abba9ec80cb", + "07377147b59dba008ed0e6b366e511f94c7f7c9088615c6d46f46736b97", + "05515a6bdfde3b4b78489194d39f4bb439f58a6b3c3f9e16c8a71590b14", + "00778f79083d11efc8ff959f607c4cee7cc8f38b855028ea248fe291adc"}, + {NID_sect233k1, NID_sha384, + "3827276694e413c886129c452c9a66e7d09dee84f5f09bf34e4baa308b4627e096c7d45c" + "f6ef45ba1d9a4019a60399feec10fa80e333e2aff1251c85ca48574d9b9e1affb9666828" + "dff5afcef3edaf5e8cae823505a0c73afe76c1bf130399fb06b092ba34ab0ae15ac6c682" + "f9ee8479b065ce75b57213b8aae0f55e4e386de5", + "014c85f66fbbd653f1e4e590cffe62c343ba6062df4b271fbd02e5d42f7", + "04018930b4a59a1c0e92febe650347c49e29a4e83cb8c507e30ad835dbc94b00a237bcd1" + "30235e34b4439293f15e7a3913d659089e38e5619fa52e3c0c", + "03c1f8d076fb4fbea91a97800607b2db3fb5a45149c0d30dce79f07e963", + "04b9d2c66d8cc55b64f3f62dc629ce8e50ae0bad8a4d14e8b6567fc87e4", + "00b9dfdbeecb061a455dd052258f3828d4b7174af972c65bd0043a9776f"}, + {NID_sect233k1, NID_sha384, + "d1afb8965b48d66b9acb1ece674d9548f83395275f2d8135554cfcc7ceb96450d850dd87" + "4529433883709483d0743798db5e0dee955a4f30ba328c7934b8dd9207f3c336cf89141a" + "175ebe23d2faed629eb4236a8aea8300604c3eb7704512f240fda66acedf1494a85058dc" + "6a31bf9531958c332b93cfe5545046876c6b99e0", + "030ac7a78593b570b29f6d3d267abb6ba7e5870ee1c8ee4f1ab2f141051", + "0400a409e90eb4314f95967607ea3de9817a0fdb439cf406135262624e7fac004b1dd719" + "434e8dfa5861887736f32ecd635878ed4b9e290c423da09059", + "027c4987ff872fe499039b4432dc889960ea8e3f07be42e36a5827b3964", + "06829b5e02b5849689d152ceacdddbfa8f68d782b3ae8da23ea48b1acbd", + "03dba0d2b4400495ee098325ae4450b32b83689349e82a69b799dac2cbc"}, + {NID_sect233k1, NID_sha384, + "4f95b71669fdfe5dc46d4b951b085e099de349fc740535175337127910acf24e9a0e4b2f" + "23196ad23880da47b740d77d74fe9bcfdcc44dd7d8d1a181ac290de5cf4da22d5034cda3" + "d8020bcc776dde8cef1786c9ce4d2c2cfb035da61406af745efb7ef1a55f2eccc5000319" + "cf1d6380963025dcea641cfd15a3106751fec286", + "06d7516aa040f7d559cae248e485834e8d9bb608279ed4d4f7e1dbcd2b3", + "040127a92888fdac8d4ba9c0243c9aca516bcb431911254bc2cf51883623a100606c30fb" + "b9958fb1140643f32c5dd582c2319f71bff197d58ba3e598bb", + "01104b6ad82327b0445e75cff0efa1281d266a9dfe4019ba2ed22dd6976", + "01f247b2850463e362ff8879054d3459b2cbae84b9d4bc005a2ccf4736b", + "05b3dbdf04758d546e54c43ca5973bd8ceba646a4dd5d17ae5d2f8ec516"}, + {NID_sect233k1, NID_sha384, + "2ad9e17780c824c4f2d1e1cbf19ab85638f2f71cb4fa3518f08085b8b358f54d4f08394a" + "5ac29cbb3cab828c5f07f41eec51e6cd61a5f2cf44dbfa46834370cebdeb328fd3bf681e" + "61011b5c2ebc8945ac7a2a8467606051008b15c89390e111999255bfe28634ce9bc2850a" + "2b55a4af1c4c2f94403c78aba1ebc87386ab7b32", + "0137050d7b455f43a8dc2516cfff5a91062c1a2727b27df41488f3dcf18", + "04015ccc90a5f3906469e3ecf7a70c429f5b50fd0ce74065d41f1bd6dccc1f00fe5611b8" + "b1b35a907bc188ad2b1fb7507d1043d148283911af3ad782e9", + "04881e879d7c76eb2ee61fe1844567316d7efaef047b96979e6dceb7858", + "03799e90bc64cfd7d0246a7fc89a4d8ed0399277cab2af40fa2ec8196d8", + "067e8728f4d8398e4e1c25775620865bcc2d4cfe635a1f4c6b7306f6d9f"}, + {NID_sect233k1, NID_sha384, + "958773c37d3eba003aa5c489f72118b3022c52b93399e9d8001695664918b86893f4922c" + "7b6e55b1855ed0fd1d8de5dc61af403ad660fec60d7c44bd0102c069957ed804d0d416fa" + "cdc1a95355ef58554606579ef89b1842f1055cfa2ae118abbc485356824cc09dddb77d06" + "71cb3011b33bc86cac526e3f6bb3293c7bdca1ff", + "001fd447b33a2ee3595b9f885c290d241422afdd74c3dc4981955a7e9ad", + "0400e706408803188263cb149428c60de57ac757f0776e5b27a2d5a859f58c0153b5e13f" + "17f0178cd90427f7d608a5659b9e03effebc89da65d59698d5", + "0339300c00cf7e8c6195ffb71e509613018e6a417782e4f52704026a510", + "0227c80e36e3571e1c783358c9ffed237b251332e8ed05a8d3b454c53b5", + "0679a32cee8ae001a18d9a9d0ed7e99e5ae67ffcd54de7b48c62e76ac8c"}, + {NID_sect233k1, NID_sha384, + "9cb2c496b1bc7f040228571e005e7e936e48e8f469e295edf914f5648701249a20bff6b9" + "8b5e862603dd9f12bb71c160aafe9df02e2e383e9b8a9a9d700f4425ce408feabbf754be" + "543f52204c849fed6c9d3e36e03dfbd9e35c18d7bb2295f1c484a66e73440a0a5aece5fe" + "80b9ade9321ef18cde3eb2db15e4b18e788b0441", + "06a061e10b4a6e7001d95411cb31bdea9c84670a59ed61b14fbbb05c8e7", + "04000ad2b726b805919cabc90d058c78896d2dd8a78484c1fec5bd5fb0e07b007e048ddb" + "487f667633d6d030338ded21a2ac5f65373ddcfe1e4a3424ae", + "013b4a86b70f0e4de6efdafd7ecc993f0d6f231b3d743ee5adf82db1515", + "0541c2d3b2c6f0655dd415e327f0ef07b03356f8047117c41e704169698", + "00300f45026200b8cc84fd564778281bd1d7e03727c242a249d9ad33338"}, + {NID_sect233k1, NID_sha384, + "9a4bc0a029e97742ed3bca207d5912cb568e4403cda106b00247520ea02008b14c041b8c" + "9b976294252da835f4ff27456039d79d90315abcb0b9b6958a22352672e229665457ec79" + "571ca80447c8ff2a86e6af3dabe7427c8bdcae65e3c6746a56079ce2cf8d22235180f466" + "46a21cd9e86032cfad874cb9c67f882fb037a13f", + "027ec31ca31acb4d2fbacb49fc085f1261b0042cc755cc97f9b199e7a37", + "0401d521f7abc2fd3b0a10732ed641cc1b7fdd7b49cf61909b215220c5253e0019e9095c" + "67af1b89ae6c486c4f9889c3f2994743eafe55bd9eafe438d9", + "0151aa44fd97be14578d68f87dbb884c960ab59d950c392e607ecae6bac", + "07be427f46958538004186d52aa50a0f83d184a9d2f4da2974163854eec", + "029d4ea73ab5b336ed44556f6944e734e531a5c71dc6c929e7253323906"}, + {NID_sect233k1, NID_sha384, + "8d89e22cf802dc68ff22d43c436c79311e705ff6fd845e77c880f399f403e6d5e9e2b355" + "11553c978171189e288cb2200fd95f84ec5ee9865c0eb9190aff6dacf783ef200e82027f" + "a992741876456472bdf27f2bd8ee55db15408c957a120eb64cd24d299818726a73fbb069" + "7eba726a326719765735b37a2dcff0c853c906bd", + "04c6f4d88e5a4f4f83196f2dda9dcf2a66eaf94d50c851f59bfcea1d876", + "0401e2677c1305f545472e373615d195d1f7a315f592e26fbbf44c4255805001638140f4" + "8bad525625a87d0e537db5500f034e71e60e8a8c48eea04108", + "02185d8ec6f35d5c3f965cd00597d93caf45bbe186d4128bf877ec304eb", + "075199f4d8af090e4666754a7dac0c1599c207735c0f54c9f11e305727c", + "008cadf59a224f812d64c2f492e7ad4a923f3463b878dffc75eca5f8fb2"}, + {NID_sect233k1, NID_sha384, + "aa1bf5a79e5339fb9ef6c2817bd95725551d064bc5064d6586c5a879901adf808dc2ef7c" + "78ec3b434b84569988db58b5e8e9782b1cbc2cc7c9b68e66f32d4ac4ebe7e75b345f654c" + "7b8a5e650acc9f170f75b7aaa3957cce248cc69cf93faf8d72abc6fc1cfa9ae2d18a7b31" + "ce720147e88e84f6563b2197882fe302449ac5ce", + "01aa169ea84365c22981bb766bfdad27e373440850569957544b0f9332a", + "0401f97d91302c70798e2278348e36bbe01587e0031ac3c422141e3d4c150400a95108f6" + "b7ff41546c98f4ea4d1b587a3280e49c6cd0d33abdebf9a1e7", + "03c9efc0f72d88168c2b1f7fa1c6e275839303c2bddca136dd19ef446c9", + "0639d1a1066465b4b2f443cd9677cfe3bf5bb33e3e9b14cab2d37f4a859", + "04582792ba78f782f112711ceaf36f5f0774b92a6fcaee327d687658835"}, + {NID_sect233k1, NID_sha384, + "475664d5e22cbe0da0d0289ca9a666a37270dc71c81cffac91f6229fa39315c1d55f7e0a" + "89b6a7a07df7d391dbdf8fb7af63d2da46ecc3b60110dbcd842da97f98d2b67f562b0364" + "ef8e1c589519024177c8ea079794f271f6d35554c0e9d0a39062383c95721b72f4e74eaa" + "fb6fbfbda02cb670a7c4c94f67b8ebc6442e84e3", + "04a665b92c0c33a3f8b9eb4b0ec061d40b603de36c87096455102ffe57b", + "0400f0ac5238553f0cd74e6f34f7f82563cb01138e5c9bac6d5e7b8b7ad4fe01903e9fd8" + "a5a2aa32913b18bddef20667061f919f8d61a5b3c814ba4aab", + "070ef25950a795b5e22fe4cf5402f49029c5d97cf9f57f0806c0bbb5855", + "01248dcf1993ac2eeacd062f853ebb4b2072357e728f0589258399ea95a", + "069800eb2e2b3a9162196dbaaf67cab4ae123ea817f223acb6e889f6d7b"}, + {NID_sect233k1, NID_sha384, + "9e5397d94465390a82a3c07e3ebf21b515776d18b4463aa5810e6b2f96ca61e92d13e034" + "fa853c3fa45411f51f79df6f799a2c6906e6a5b7896a4576a4464f9e0be2b529a43e1f50" + "3fb640d79db6b68f3a3a7deac1b5832fbe86673784ff6db1f8438f7dd332cdd1e7ad9df8" + "b6731aad1b6a72bde52e6bc62d80b8da57822c48", + "00531540d94823e19ab2b95cbc6e7492e1effcbabce875de6ba96f53aa9", + "040031ba225249916a5380235220b9657162eef43d59ccab507639e19bcd6c0062e85d61" + "366a73b62255c741a065708701c8fa024a15401a4cd58640b0", + "05375df0a23646e8033ec9e3ad269e7167a663b97b4f52cf18fbb5f50f4", + "05bdf7d643ffde5ea191553a9c99eb42fba9a8b6e2013dcc520298d224d", + "06cdd9e0d58bd4c5cfe66589ed7c7d15331f3e164dff562b6971af1a41d"}, + {NID_sect233k1, NID_sha384, + "3cc4c4192f317e52df6f8cefba6d4cd823c942aaee11b9a0ef5de5c2d181073b7085a558" + "05e9554def8dc13eb978e7396044d4f4a14be2c7605998c062095c929b9c23b2b1b2fa73" + "dd19a0c0af44ca4789f9841fa62dee8a5f91b3cc4b3264f5f67334c3f0772b30bd7431c3" + "fbbf1f34318ce1889b6e8a76ce6d42079a451e56", + "022a89addd8b85809e87e0aa2c038593ec277054842854de1197833a51c", + "04008e760b282d0ae4eeb2fcbbfdec851468fd8e04c4dec71fc2d5d3a98a1300849a56b9" + "b0b0a1ede6b9f9522685e7ace3baa57f72709aba705814d138", + "05515b025d6196ffdc8bf275479d72b29a752eb3e70ebf07d4c4e7bf74d", + "041902f9b7bc81d3a88066b03e4111ad8ff4d99dd868d5608d1f43eead4", + "059adb96af9f404d2f04d89fb39cf38ba5689f47bda749ae9aa1ecb097a"}, + {NID_sect233k1, NID_sha512, + "72cdef5bdf710978e0aa334b86b8ff4a58630da314eabe98b4d611aab56f55c526983d54" + "d19bbbf9ddba30a84b18aa0bae9f9503e9b222f842f084db83aa39625403213ca321cc0d" + "9c8a136c826e6ea4ec108b913dd0a9ce9d5b8c7e3af53c3876e56a2037ebd6d99f037a09" + "7111c837647bedfe4c494e4288ed6427c15969e3", + "01df252a11ff97b4421b3a2361db94e908e8243cd50d9179f9e03e331f1", + "040129f011fd5fedf3526f0437ae800a110435db907af60e16912d58523202008026ed86" + "afa7ec80277f322dfc8cf693089968ed9ceb8c95c930415a23", + "04fce14bc83be6f862f06680a32e9a51d1a569fdf1d9b10a89eb9fef4bf", + "04d7b8d19dd9cabc3c2245a9d2c8431c3151eeb6f49676a865e78c26c2f", + "0373e69da1fe35ce41ff344447fa7ffe6fc71e28dc68244372745739fc2"}, + {NID_sect233k1, NID_sha512, + "8e4eb88c0b2d525b2c58b8e00f32def90e6dd382301de49e0ac053dbc6b61afe926d8519" + "3e2c4948f7402a3d7c614cb2c58e060362b0516a1ba4a7425f1b3d09aa20d4c3c8993a38" + "7a3248aeec51e6efa8f558dbdcfcaa13ee08413227c8351e3107e9a3e3ac124224aaea91" + "bfe50c11c1c8ae582e718f50bc5d5c06076517d6", + "01d7125c299ebd0dbcc050f07de931c7ad0450af590d0a2d0228a66ac5d", + "04013ebde8790a113bdde87c11ccdcbc39e354b193d772921b86657f53f74a00aae910b0" + "e22f1a2505f55fef2eae47ab6d47db6e49190a5469b4b6dce5", + "0113d1737bee59f9f477f71f77a0ac1aea86aa67002c34a1b31c421cd7c", + "066f9871da9a22f07c9b2a44fb6c01ac74ba17649cecc33b729afcb488b", + "037fad90c288510d0cd8e99e5d930f4fe197df779dfd6088da48986c601"}, + {NID_sect233k1, NID_sha512, + "370fdd80f330311dbb3959666001bba61cdacf20f72f78953d946fa6cba02d24b5003f54" + "52d535609e489b9434f192011f99f918defe877d51349870e7e75502f61145f7c261dbd2" + "a0840926d824ebe9be3c5a77a3a84340aea930378367ed3615a47e3f792c7773f83f91eb" + "ea718a05fc62e9ed1d78629b2c27ae44fe8f8d4e", + "021238e66119844b146d40e48341f522f6ac2f9c8a0b33aaf95a3099a41", + "0401dc3ac1ecb670f867337b752cdbf48bed9f32589366f7c6ba7424af1d6601e3a38ded" + "8148bf45484ab6b77e0beff759812493347e32d2d54a322a2a", + "03626adf8e70506e74ea27ce740f7eed1c8b37d50415be6a2681c67ad2b", + "07a9c9056b51f1fe3e7733c6f54ed96662aa7f5a08a961f91fd6d0276df", + "05e7600e9fda45bb966fbbb5a9404af961058a128824b6d84d9d47ebdbf"}, + {NID_sect233k1, NID_sha512, + "f86c4433787c3ec3cb1663389ccf53d62f9425274ccef05fd14b1b8fef676208867764eb" + "98d16d006ee6ebdc27b8d9a8ddd303d941fdd82b630694cdc698bbe6bd52441190783428" + "6c94b24ee199fe6d646064277f244b7df3ea2d9d52a9dc6a33d7c8d6dbc919da0fa987a6" + "7621ef0829e48310e0ea2bb86fedcf4effc0b94b", + "015e1bdfdacd87c42ed439f3e243abf27fd42e54f3ebdfb47f60dbae5fe", + "0400fb7fa51c1a96baab65fc85c3b769ac84ca7b63a1fe9f507a2ee0c49395005d450aed" + "449f8f1aeaa9df0131f696c2bcd4528808d2f52b6a73f72811", + "070ca3f5dc30c70e576e2d2b30935b05b6e68598eeaafa1bfcb9e156e05", + "07e3cdc4207456773aa52b44156801b316a7ac850b3a9e717a9ae7fcdb0", + "07ad6de3ba8730ac887f045cae80fe2fb5237a8594e7125c4792d478594"}, + {NID_sect233k1, NID_sha512, + "4117d593aa92e3eae1124ec7482737cd3573fe5f0f2a5051a7ce86946a2abb9e47a0c6ea" + "75b262689b0b486476d2ab09a20efc2fb921419b1811b51a2e15891ae9e45a17ab4b96c6" + "65c6c423fc00e2d66df5804a164f0f3c958df6f25d7da6829b1fe162a0a8cf130858c83f" + "3555d6ad627db70cb41303cc6380f7b3fed2563e", + "00e09410548c17bbbf28a68c3963a52d39743a4f1ac28e6dfe7a6ede281", + "0401f5f36a21a3b7fc5ea37528566da695922d7d9b7e6800af9c1a00f68242003df4e2ba" + "0c8648cb1fa19663f31786b850e6b80068b8c007f41de08608", + "03c0a2a4bea270eaf66adfb297c0e3213254cd87b11edcd90cfcd6f3104", + "07b684e337d6778f84bdb7a6835e91877b41d6af4b76311258fbb8339d8", + "064a0c22057a858b153ecdf4d275cf5523dacafdfcb46423b5613c85691"}, + {NID_sect233k1, NID_sha512, + "882ecaff3ec8f4023df5397167f238869f78a5c499be19aea85c7486e73f66f0e08e71cf" + "85f3f1b6f6a70796bf46a18e6b555a0a87c2088640ca73051b3dd59ebfef922be0372208" + "fce602d8001681297b285701dbbe24ccb42541b5db4aac1a1c7f407e11c83db15b38cdbc" + "25e930fdc6558f64d9503e214571a435d890169b", + "049f5bea6e72d98579b78cb07d89f64503f8759dd7a73cd73713c120428", + "0400974dcd68cd85117f363812a0473e972c89551e31c74c8d99f1073eaafc00f306c905" + "1cf3b84803307beb3dc0d34a9758a4f535100e846462a49053", + "022a5564b468e706762e3ff934aa22d9aea0bf2b116b61182c9f7be19fe", + "02e050afb84e1b0591fb64d46dd7d4a939552d68bdb4213f16c5d7ec5ec", + "063225df0057d5368b2e103eb2181ff5760e6b2a9c13c83da042722c3e4"}, + {NID_sect233k1, NID_sha512, + "99b3b8f876f8359bd6369ce84f9261581c52d744b90261a1427ab9e447e6d833b6b3e89a" + "f8dc770f1dd55692d01c8bbc4277a729fddfa7cbdb2ec99133201dde44ac691a77904ca8" + "16feb0a1aaacbb9fba85048bc63d73506eb908ecd697caf582747051a3a38ac8930c9a43" + "65f407ed94ca7f2d26913c53f4c010c7ed9d7ca4", + "005eaa818690d1ca4838f0bc667be5721d178c3869884260fb230277c3b", + "0401f7b3b50167cb2ff7482240bade95f2850a02805742e6e29eabf7f9ad3400f8038a8c" + "ffa0f798a01e333251996662bc3c0ee56d94c392269b63edb7", + "064d518f7b8c87325d8edfd42a52793d87ef8db283606dd676be8584562", + "07128123004a515e277dd5b571e31bbc877cc966e27ed5b2ab2c16e881b", + "051d70485148996ec30f92097e4a12b5edf804e03e312072336bd912268"}, + {NID_sect233k1, NID_sha512, + "8c1a83023930a85c5b2f9930521b8b8963d5523a3323d87f862a17d3505ccee01246ee10" + "29b8b8c2b608772c4096d1e914cb398f027d91184a8e94e4feeae121eabb504a2a35c8bc" + "9294edd15ddd979946c14c792ad787dc2d4deffa284830fc90b3f8c0ced6a99fc6de7c41" + "b9ed261402a6b3d702ff86a9392731ecc37430c0", + "0603d89cd2f741d734587e77554fe6bbb1e5739d5ff73084d4de8ed69c4", + "040122f2b7802917e4164ac2f54033621c78cbc7040217e5ded6b9217f95bb01f867df74" + "3e73806957066c2ab45c04bf1af158e146a9d1eda9e974e0d4", + "076850b8ca9e454bdb320da624c0dc63e14ad279185e4f8c9e49905666c", + "04bc63bafd5bad022fe5db246680a0a0ccd0b50ff50482d3849c92eec7e", + "07b6d8a8446ddfc64392af0aa1763d45877023c0be9ec78db47efd3c366"}, + {NID_sect233k1, NID_sha512, + "f3c9dedd7115339dd3ede7d8d06a44de66bf80b4888ab7bc386cd40a92789042440a13d2" + "cc90dbcacca5feeec1e0e3c51724146e2c4904ed6b05c7b4e9b49d7f458ada695c5d2fc3" + "6f1193329b87c1268aa38eda9151430aa0bc004e5d2a61b9390accfc699f2efabfec785e" + "b34f52b1beff1e4c5492e922acc348667d2a3986", + "07977b3aba53616dac27b4d74930da23966a88ad98f1769674789c0be3d", + "0400aa61b4bd2fa9c61914ae306d69d3ade7d6cf621399e5791dda8a054dcd012e8d9274" + "d5593f5074c49ca34a7e2d64f9d9ccdf42df6087134b811762", + "03b8ee56bebb59207e107bb0c16938cab707e425f38b70f0bc918fc1b8a", + "068502a3e5e51f5481aad31eb6614152f4957eef1becfe3a297b023a94c", + "07b6b43be63aa79c10876179703b69caf9b03c5401b999a3c5be4737999"}, + {NID_sect233k1, NID_sha512, + "d878c4ee0bd6c84652d7f9e68df7b90cc78776d8d1b60f3e4d7465032bf401f1527ca7bf" + "d4a3dd916e13e93fadaa5e5f20c9f47d12f8fc922a9a3aaeeeef294c221ca1adf7df85b8" + "88faec8002f17ff202da1be837827619904121167bee2d2cd694a263d9a99062cada3399" + "dcbfcb283597a96ebec129c65e0850ec4cb4e2d7", + "050cd20e7eabd29008cc977d0a17e1195d79587b8f15ac2447e15daafc0", + "04001ff23ff4ea1f30663b17d8f1c67ea37b8c5df7009d0c0301db483803a400ec6bde92" + "921b83d4d84be8a67a23e1718e575101b93d9a800550a20e7d", + "041ba36d2e810e47c3de583772e9b5908c257b2aec232d855669d4dae2e", + "079e96ed1dfc4e31774159ef311805b5f8001203cf37a72921efaf5cbe5", + "00b8abcd623b17357f65ac365301a8823365ab948ae3f7fc6a4a0b8ab5d"}, + {NID_sect233k1, NID_sha512, + "ac3c118cc9cbc8eb3b74d8ccc9ecbd81d1996fb25ca43c8a43bffeb244f722b93c9e9692" + "41d45d5b81fda0b399f1e3623687190e428dae077e54cad1eff75ec2f7fbb9434bf71683" + "3421bc2634885677579c237340f76787b2eb19b446d56c0f2206099b81493349f4db0eca" + "d0e2dbe85dbff7d7070abb3d3b12ef0cec828af4", + "02dbb24fcaf9f3cd5d50d209937f0e2d134fa20ee3c9c2f1fff3dfbf302", + "0400a07240c52e385ecf75525201f9810859123bfd8ce04a5e8f4dc4ec88b2009bd81119" + "6ca9ac45b28031b9f65f9a5c4ec497d995f7dec6eb06dd2874", + "05785beb1ff70c7bea89b1fa14be09332ef94b09eebcc9fb1150bfe0d55", + "05279bb1b1ad8174e88bec4c723d65eda768c1d08d1c64c332a240a284f", + "015a90383c2c40ddcf721067b3435915a843f9c4708cc133fd1ee53f442"}, + {NID_sect233k1, NID_sha512, + "700313698cdfdcf0044ca07bf9e5f0702ece7cc66e35decb28d5f8cb7e7e5367a95cc172" + "8a90cc9a53a2b5fcd4702028b742538e9b386f5d8b4a2411579ed9553021a95bd00a73f0" + "3c4184a6145aaa367e3af76659d677fe7a2e98f9ddf4aa20eb8d1a1db72c3f5590598801" + "be7ebf44255fd7376d89d998b7068bd1296fdc38", + "0047142197d3d43fa46545b547968680ec81688589d1ec8d7c7e90eb969", + "040179450d83cd6dd1609830ec78011143eb64d2d1509ed1adfa085a58d786003ee40673" + "ac564c6b5732868d0f8a57727150a23c484228890d768dae54", + "064f8892245a198c9c819152edc168e69dc7b562ef1f54dcc1960cc7db1", + "0293f2f989fb6b6e7cf304faf3f63eef61ab89a626cf8152e15f38bf93b", + "04948643075cea6413b1c88a9bf11aa176611f56d027f2b165d00d46e87"}, + {NID_sect233k1, NID_sha512, + "0374673e1a685bdee55504ce3cd333f70084dd4ae685464a16924eccea34531663fda602" + "29166478b30193459a3113253cd6494dc26154156252dc6e822552c7c04d790eb9f8fcef" + "2ea8dd79e72f881f7f20fff93cd73ad303c0918ec27c6486c4da61f82bcd55422d16650c" + "c68bfd4b0132c1e7075bbf17dad919095860d445", + "031352b49ecde5434aac05f898e6ce4337304845d748f114c14319fe97f", + "040187ae6bc9167d9c69ce5544ad650055cb9a4e69c1772322d5722e68e7e000042187e9" + "d11a921adafc694b5cc8da9226ddad1b65f764274954b17333", + "0761189e63fc0c3b5db92b281e5a4bc0d6fdb30bd14f8e69ca85a211bc7", + "0453560e6e725a2bfe0383884ba3b3dd0816d8522d9e0762f781f6b6340", + "01aaec4bd98c765e4830de6593280779d1222918d4acf08c8fc3d0aa351"}, + {NID_sect233k1, NID_sha512, + "8b237085f135d6e94592f8d855ca397c8c1028236a3b412adefdac888245874f586d0695" + "0ee18118f751bfe26f4c31465ec34b578caa44cf1b7109ac4f6eab7f97ff9699b34271df" + "035d3bf58a2ed4bcbf7577cf8e5792b1945ebb9389b680baeb8518c8fdc5540e192aa4fd" + "e0eed0d7c82be2e362b286f582d65752c8db7038", + "0176f124c24e4420f6e726a6ca25f09dfa0c5a37e5bf879e7bdd36c3b65", + "040098c37cbd44aac5d5c749524b840fd849652349fb3e02cc8f8fd0a237900151a9a88d" + "a407ae41e52b3dad1ea6031c7a36bd834007c0cb1e2c2f2f0f", + "022e299985cf289f2fbe2b1b270fbf12ba818cd2b506f642e659cd541bf", + "0686ac0c09f90a077cb446c910e07fdf23e845487d0333efc65b9b84147", + "01688b18cb42082bea69f18511b0fd9fa35da83d738763cf13ef92a119b"}, + {NID_sect233k1, NID_sha512, + "e3a086ec15574f7017b3cd5f5a47ab7a73980f11074333490dfe9f8ad8926f9ea7c82271" + "aaa74e77133b1025b0b22a6900fbb71251bb6549341a23d194e79d03462cdad52ee0d1b6" + "f5d0d14e1136026961fa3467ccf0864bf7ae3fcc3b68cb35df7324bd9bbe58fc8aa9f63c" + "19feedf19d935b71bf5981c74fb2a487f84e453c", + "0755c48c3dbaf71042c58cb137f3632e3cf9d90b7b9a58fd378feef3d19", + "0400bd9a720553afbfc5349e4a65a21fed0444c30304f7018ec1ff6fc8d1f90109a1d6b9" + "cc4fbd0e888d0a2b6883fd06a5da347c0d4f7882fd29eabcf0", + "04fedf8785c6648798748504b1c9b6a066ab6606bc9a69534f93e908f4f", + "001e71744a1b683858444da0d270f43b0d5644424f2b38ef48a639685b3", + "07ff8199ffe723abacf1947a828e8596dc49ce655319087e4aca6ca34ee"}, + {NID_sect283k1, NID_sha224, + "ef90f85fbda05e693006e4c64e1dac56223becaf0890f73b5274e6e289a5a1de2c141b82" + "5c24d595b3fd18ca855b5c1aa60dac6b5356275b11be670692cdbe5f282f93ac7b2e410a" + "96cb9e9f80defcde98f3449f99e192bfd62040421a0ab8f99acb85369f25e5efbf81439e" + "fa8a5e1d9cf781355a0f47b037b09fe4086389a0", + "1e846c830a8ec04e8572d1a9d2df044ab47352fb346f67403a3bf87243871b164511c53", + "04012e43e20941f2641154bb66a56f2e0428a7ad22d607fb8af658df0b382bedc7d5ae22" + "cc022f226cd65052071066963b112aa302973fe2b5fdd7bb827d13da7634dd2fb9e3852d" + "db", + "03a76f87ede2b5d40a0f10e15e90e29198fc3a03943efea39ddf7afc37ed4e18832af8b", + "1be2c776c707098438fbd0561de578e4b9449f955a25626f2fbea257fc578ffa1bbbb70", + "1aeef69983da1a535b10a47e66d890c4413c7a8cd6a2511a1a670a4c573d4808f46e23a"}, + {NID_sect283k1, NID_sha224, + "a3ebc17c867cc9c7c28797f6364f6574b80c7ec5b2d8e1542a6f5db8568c15032f92cfbc" + "eefa3fe4ee654f690b0455ee5d38dd84bb8665ffc1ff8c849bdbc4aa0ddfdbbca4eb3797" + "2fcbcee8cecc1aae21ec736ef61781716b60247b7551ec4e552d0b59a53cec5964c67cf7" + "988787cedf769eabcc9cd5243f58034d96f0e43d", + "101c5ed48231a56ca0ea85eb45de0e395e6df2efd4987a226ae36489dd8b2dfbf7c465c", + "0407011260f504d809baefb54af48c890f94fa5984c8bf228baa4b6ea14d46372390d1a8" + "ac02bbfabb680659aa2611435c4058ed773467a41cdda8250f3490e4f491f1bbae452c5c" + "36", + "12a3c7f0b3d64614ff97133873d75c7c1406e316e8cf60d22139dba462055baffe6c8f5", + "0a9933496d60716a39e1c3f3bf22a7da546eafebef80dc6f25d0c109ecbc430fdb3e80a", + "0be56197a0098b022a7914c10f40207da58403d6c7d04edaf7efc96de740cd71f67e0de"}, + {NID_sect283k1, NID_sha224, + "60269efa4d0ffafbbc655f6f00578eadce7fc0a7eb7db923dca49b6f2bf3e13f7f829cc6" + "133e022c3c92143c075ab9ced0531a91e6e79848194ab98bb852f40c84e7aebe71fb8bc0" + "fd1f97ed5bb6bad6783d8dc048df42738e841d978456e055e1b8a781dfecfce2218701c7" + "af77e7894ccac5bfff360aab0b6136b978bc39c4", + "019679dc589440b11f82b3716e5b2a2bd42c3b1c83e88a28e304cf5148877faf760b4de", + "040743ae04e4b07d154ca0749a011c97a31ac68d8e1da3491f331136873598896e5320dd" + "cf0776c05891c27fd912267ac166bc9acbaecbf80ccdd887aded2d7b8c2a4a5d139833aa" + "d3", + "099ad7fba5284e406f6cf200a39e398aa0426448c09b95e691f653d6096a63adbd39965", + "0285a82340d9a6d96ed9ad0fd0916216fd20edf979df41a55835ef8fafa00d242ef6f11", + "0a8548b405c171d2a428507f7adda4944bade7cda6dc580b1d3f94e15d7e10f0a08e008"}, + {NID_sect283k1, NID_sha224, + "59d704d5b1f3a0605f1497f22f71b8f45b26138bc86371f00a4517554e7f6e7fa5d35189" + "fc656ce68bd2cb8510fa3e3c3df815dfdd749b2b6ac997d443f3954c7a927e138b579801" + "ffd035cea90840733e7884ccfe43d8d3a4a26b430673274aae312abe4ac1e1d7c67b7358" + "0fedf2d8de46572493c9205ebf0e8b4d75ccc88c", + "1703c21fb1e09f8947e12fddf166fda6f685221fbd803d75a0ae377a54a1e494e6c5e7b", + "040767564e13ae544dab22c3763c5d330a5571e07ff8f2f5ba3fd729379709b1fb184f99" + "0c027f9e5efbd1ff6ac53a6174670eb463b12f70a603354e25c577ea292b13b8e5f022ac" + "9c", + "10d875acb4d0dc211a82e78c0249e74de16768003b53830bf5648cf911fef6a57f8f048", + "02af92243b9dadcf21561ce32ca0744810478f8d5be8e0f83d9632ecd8e86ff467268b6", + "1f6c50fb3bdea228a6b623be9e2ea2c371dcfeb0e604ef1029b6766c43b193d86c02f27"}, + {NID_sect283k1, NID_sha224, + "12c8fdba3bc5f68e13f7ff8e7bee876fa68a970afc6924314dae0c2482763ced8d4752ce" + "c29ea288d350acd8a06c69289ae41ad345a1b88bcccaac903f2bff39015c289a8ad60860" + "6bfd65270a7bcdb5fb10c89bbc2d16dcb91fc9735d66103f6b1f3575622cf4d820929031" + "5b033ee1f79968939410f465a2d37add46af2d59", + "071de8eb14cbfb88e61b908990ce08b81e624ef4f2cd9cdf3dd7ca9097d5ffed9ae9a71", + "040136d50e1aa8203a0cd2c2d545b81d00b95c6b43b74b1fba3a6402abf756d38087affd" + "49046bec77240de7bde85ca4345f27c6df341c72a4eccd2cd495e86376c183ccb34f271c" + "d6", + "1d80734927505d8d4818b3bdf1aa2e5c557e5f717a5b3fb856ca9a2161bfd74a130ee38", + "07894bf10885a698899b118f57e7da22222e3d187a0aabfb99fac0ce0e134b6b44a5f90", + "07b4a87592004d6ef8345415064b4b4672db2943c7e6098a9e6d59ee3324847e753703e"}, + {NID_sect283k1, NID_sha224, + "26013a3ddf687bb2f37d9700923906f118d5cba5d8ed5113a0e3e84cff00918125108f74" + "f4b243e351aa5d07fa7c6ece29f5700f23e50286447883d2a058c3258a12e4ed8770cabe" + "627ebea7ef6e8c77811ed7d9a19c53287093e39226236587ddbc63b7ad5e7ad9895c64d1" + "d03ee432d45a067afe27d4cca920ae88a7a68db1", + "1d156eb15762ed00c4021884adbfc2426e910b18a5bc474268196f4b74e593a8f38702b", + "0400a99b45860615d7caab2f4e9bc01196a61f52f95c6c7fef615a4746d48553692d5fcf" + "13056f81a0088dec1382f8a3a863901d3443c8792cd13ce13a8f63b02d107b66d9d23bc4" + "92", + "1999524ce9525d85b562fd13634fd9ac50fb76d83b9d72d6976d6fbc47af7e1f354eee7", + "067748d49389c9b87a85b518f84f41b18f52569ba531985b8fe5e1f0cf9cffa958da3f0", + "00c44a583c704f69160c6258332f3121b022759b163c74c7c96058fa8e3a9928afee948"}, + {NID_sect283k1, NID_sha224, + "c4dbf70b9a2165e7279122460d05ceb8e43e03fbe2ae7c314007fe2b1d8567cac727a10f" + "ba5cbead0ddb167d387da8e8f3d6bc0ad851cc32885809d07a776fd4a95a979fe3833610" + "af89df0f454d9edfabe12495a118fe83add5eabb2acf54ba7ba7c4be20fc77478c0a0f07" + "26c4e60317422a612a234a7567648603b63f1c12", + "17d6eb1219cab8577168be86b61f372b27ca70fb1f1a767947895c185344e966db17aea", + "04065d8e43a290a6957230501509b95a208a6c37ddcacd1e882d97c73c38b2a256caef5e" + "8b002169cefa6ce170ce20a0b5463f5bd146224e0813acff304307da88830b0777b86cd3" + "d2", + "1519e37a66b4e665b2e3e59b8e836869a886c879aa1ed47901a6c8a8f365efbc67fb410", + "1734a8bc9a13f51d921a297bc6b2d38610c20b32b0adfd5efdd01a4db5084f3b0697904", + "0f9f00b25a33b166f09e2a819dfda80d87f6a2419a7b4162e435ee02c0fc10a669df6d4"}, + {NID_sect283k1, NID_sha224, + "b1d53b6af1face9b59af11c726b0099111d1adb3666209ba46b1744a528ed0f72be5a1b8" + "2423153b896384faebef0362343e2a4599803c08b8513708938aa8a498145fca1c63ba41" + "aff06d1a18aa2a045fce7fcd7e5552a2b98d0df97b6876f06a9cf52a7a40fb737996adda" + "97c3cedf7fe421235ac6951060eba9c0377e72a2", + "10ede9be6615b3b2a294d67da78127ffbf3a15bdba6f4fd78be7a60415b5d1a097c0cff", + "0406418eac385ce94c1982c216ffeb0b26f9c061ccdfd785ded75efc6a329385898331fd" + "a307d41f9cf1248a37fb8baea7f3545bbca707a903966019ad56e4dc810b6863e243968b" + "48", + "134ac4de6ed71106d11fa736960eef2873223aa87b1c5bf5c823de6c78092cba4726ec8", + "12a37587ddf224faaf8dab61210310792d4ccef650c98155a227bf468b7f323575115cd", + "10982c965331cf8529ef6adfe17dc3fde63dc2a557cab451d7c9408a089229e22b73d43"}, + {NID_sect283k1, NID_sha224, + "e78f538b1ac21602b00a09e3db243ef4803b447329c94a1476cd91a88ff790da71421b60" + "092c8a6e55327c7982e7655eb1fd6e40fa9b9fd2f10107dfc585994dfc5bc2143d18794a" + "39f7f69ae679b27dd11ed22040d5e93aa83f71783525a4db0c3fd7b43e57dafd0033d531" + "7680df19c2ecaadcb37ef896c61a758a5e455206", + "14f237cface123b64e8578ff33f86bfd2a8181b9c81f36b9ca31e2a446f0d91dbbe2249", + "0407aa347c03d8845f1566bbc3fa1d66ecb41ed1dab0a402405d8300591a1f3078f9fa53" + "2c063bd10274437c2690ed6df60ea632f3d4faefcc07a72ae8d85c2f999bafd373053265" + "dd", + "0570bf3b42aa44c11603d94e14b524b8cb1363306196924082ae71021707c3138503031", + "10f7f4af1c1e3f9e8e0c95f991c348bce6725f60aa12ee7b398be64728242088a469a58", + "17145a39fa4dd237e31a98daf3974138638b9462a31b87ada3eade6bf7f597195eb28b6"}, + {NID_sect283k1, NID_sha224, + "8a6ca8ec436d2c706fcbec6486b5665b21c174edee7ebe108211c388b1219a8224179f74" + "38e0bb7d6e41ac4a67337b52d4cd9a069fe6c88960ae20be29c8060efd7c62cb7a9a3713" + "6a250e68f253e7f27755df53ce7c570135641ad49b43507e5483e17b919cedffdc0d4913" + "b1d5e0ca0629876c0a551841a0fc2090d2857cce", + "08dbecb26587cb2ed7df2404e680fcfa5bf8cf6a58e87a350a1600211b3c844ca86daa5", + "04066610ce348821a77e8a6eb74a675ad9312b2622ad2e1e6d8dcd0be8b27d8384844a72" + "340014c15776bbd144c0c24bf419237db9401fb7f97a7c4c0ef50a9afd27c3964088f796" + "43", + "0204586a9314bc14bef8ccce8b9ca3874572b375d01c6b4a41c743c16502a27e91a9fb4", + "0fabfeb17bb8c1a57af7af81d99cfb7b0ecbf4e5e4a6ed483aee4be8ee4c70c2ef23941", + "08071e162dfeb068e3cad256c3603e07ae48b35f1bafdb726cf4ce32844e1a2181f23f9"}, + {NID_sect283k1, NID_sha224, + "95bee02b423d2c6e60252da4632f693a2d8f6597b4f9c6e356f670c3a9e4e80063e92fac" + "b6421d0325b99dc150464ed2ec1d0bac72a042b35d56d33d2fda686a75d582d475652221" + "8b4ddd25ed45503d90d3d185cba6cf0ac211b22aa4e1318a8316c369186f7130446dafad" + "64f7966f5414f43af37a87127534060a23c6165f", + "191badec2d28cbbe62c072c6b57eb5d4644d0c0b3283951bb66096cd15edd43a1bbde53", + "040020224b00428031056ed370147c51e68ffc02e7fe269ca15b22310a2974d383c6c83f" + "cc01686568fc4768158e75b4ef0427d8e262cd0638801ab158311749e0f432d5b69a667f" + "0d", + "03b1b6ca5e627f00176b599b68fe54e1b5a272c323a06b55e4871875c0e729c4c79326a", + "1ade251b9360a6ca1b48c2fce0768a01193a415bd23956fee1e5c4c5076b3571abae082", + "0adff25020af4e2b4908a33ce1d75c793934921267b6c4a0542924300fce40fc0031021"}, + {NID_sect283k1, NID_sha224, + "ccd7f7c0e04d1ef9a3c5617d77480bc624beed6582bc28e9e3a369b12144fcd96b735ee4" + "1713f4173b64b28c6102d82dcfc7876e06e76fc497d1d238bf6d85bb5feca630bbd0c0f0" + "fa7c0c72e28e9259087698973ac66244bc6e69c04deb22eaeaee7b20da239ab6333576f0" + "1349c76f594498620933b8969450ac2bae66db8b", + "0ff5e3d66eb57fd35ba4472effd6e7a016ca461e39000a7125e99080f6ab6ef4380dd7a", + "04019d8c1d9aca39de0e627981d21e35a628c35fd4096aaa86f61625fcd078f0400f615c" + "d5052ba2854ccd64407f6779c5e259917b251c9e34ec0d95c05488f30802b82cf4b25b53" + "89", + "16c9cabed653c57676ee46c8912cbc507b246078834f1667d0708e4c666346299c1fc03", + "12ac0ec9501ac91a2b57220e9c00ec6e815399ede94a658c36f9e89bbf1674316d65dc4", + "0c9480160c4e9db4e82b4ad26cb79e083e9e2056e68a2ea554aca45802bbb188389bc4f"}, + {NID_sect283k1, NID_sha224, + "65e9124a2606c8784c9489add2999f4cbe6186395df20838d653b263a207ec46995d2685" + "b55d1874e7ef05a6a3bb5b60a7be6751ad568cef1bcea2debfc494d1e2ece0dc8028c88f" + "1b2c6e4ee26b639c5e81f6448bd25b73ec4608a8e8cf4e0155c29b6f0a62781493b03bb7" + "384c9808529d5f87da6564ae196a365bd282f46f", + "1f3591eec4a8a3fe6ae6debe230d238a6b73cf3791cb735add1abee64239bb100f15166", + "040483e7e2b8f7ff95b86008c3042ab83a4b6a48f15ce1cedbaf3b586b56ab606e6f23a4" + "ef0287cbc8c609426f1665976e8120afb8de96b43978762ed44bea5aa1418b9af6922c60" + "66", + "08165da5f5427b38c447382c8dd0940c3bddf8f048185e6cad260031f7c0a2ffb83027e", + "09034633dbd735cec6208bb6f4455b295b7d730c9301bbd1c0e9f101399f2b3425a13fd", + "0204ec149b416ca3467e92194449cf2ca0f41ca1fde79145f3af856085b298149a3253b"}, + {NID_sect283k1, NID_sha224, + "e793c60fc725fd537d5fd38e9b4fb52e268722ae6bde5a058de8d20db301f5e8d8e1ad85" + "532198835a04b76f27ca3c972be5617a55677cffa8219eb64fe53ced242efe1b88999097" + "9227dbaaa15ed39d3b6be8c5a3237ebe12bd96f333d947f80048463d3859e34f865d83fa" + "f03894c2243a06cc96788ed952e606c2d8948271", + "05af03cdb45961e7ff35fb0146904ddd6c2bfd3cce814073d3aa56eaa9f13b4f7423926", + "04070bf676b9b0db558eeb8bb94a1248bcb599d1e8975ee13cd37dcb78af19307d1b7e57" + "d506ed9bf30c627062b99ff9d05ca03441b6194c34364cbe7b73b46ec9716ad8a9970cbc" + "99", + "192c7b1fa8f221edecbeaa51447818474dd9fc89e962e8e87400938ef0dff432a6c4b86", + "1df1a4f9578e9cae8102aab5eac70eddbabe4ced99b5bab1b1dee59c41b81e392968c14", + "0f2b1319335ee497fe3ebf1891a71cded59704365774e1ed9950f79100e70950783bc7c"}, + {NID_sect283k1, NID_sha224, + "a57682d21cebb48190199e9f57493696eae3a59acd22f64d5ef4729decf6c2615b326817" + "a6bc118bb7234bebfc7276dd998838c009a7348e46431574638dadc48538d6048d572e50" + "d9c5974d2049ebe1837dd857bcd1447b1514b62808a4e7a88162ae1bb08a0f6d3db6f258" + "74c6cd0cd4ca6333f1bd57bd192ef67e4616d182", + "1ec9710ada06e6270720692a06d488ae2ba863b905dd2fc323e7ce68dedacb35fc8c7d8", + "0405cda72b5b068f70b3c431def41b8ca1d4381e8c2fdf0821cfc17eceadf5e3eabf7987" + "b7079ae508354fe31899cda71e01cbc80e5192d24f1f13c954208d2ab8412802407ae376" + "3f", + "04f7b9372a8fed536396f0b87d4b20494786bdb8db77200c1aac1896486a05d3c940cb5", + "072ecde2a8f506f0fef273c8915a9edc29e440d48fc6cefb50e7117492fb4a13e123bed", + "0010dbd6229d770c468f5d8bd20edd6928bd8824b7fc2b10dc45fbd3242191e7557b984"}, + {NID_sect283k1, NID_sha256, + "f646e7334e191c2bf0056d3bfd23f03ef7f0777b923f962519a8399d311b8f68414c689c" + "a34b96871fae99eb7ea534fcd83e788e56eeef817cbfe33677283c736b99bf6a626f9515" + "291e842bf99f694e4e8aa7c9911c591a87d5f112b3d96b064594e2b368e6d1bf1a1cd343" + "d54916a66da22c26355266aa2884120fffb8b94d", + "0668de088c6913640fbefbe6d2c44ab26e481802dbf957044a4957c3c5d0a0fde331501", + "0400d3a50cb9d347cfe45d2a313813fec8b928a9b1defca6ff4b89c4787717f275c6b733" + "7f0762e47b0669f625c39c74d50e2b46875ef366b7c3b005c16ede69a2fba161faf6b3d0" + "db", + "0b24bf54795fa02eb9527f21ead5497a6db2bcc7849a16d206239f830df313dfb7a2716", + "0852d8b6fe93b0b36af5d99530eed08669eb9a25972fbea59f32dafe88b722bada98ab5", + "0e5b08d410f2252f724dfcecaedb37b92a6c09cde646ff6237007f4199068f945ebebe2"}, + {NID_sect283k1, NID_sha256, + "a2d7e69ea381d3edfde4664c56c4cb140d01cc4425df757975cedc995b89640dc016ab41" + "9b137ff25a6a6d64a309b23890439d2ba157262393cf93d15ca1b1ffd19373ef12367f88" + "98aaf56d5544c2f019a4854f69b3d8d320e03135bb7b675e588a5c3fe4b703938fa0f964" + "916501297cee2fd04af767155c7739419f9dbb7b", + "0e6af57cf47de1e6f07041eb5e1a413fb7ddd82f8c7f7ce957eb28a118004930bec4dbd", + "04021e31c4e4d412a261e40483b9106bbc1b0d7e7414e53d7b9fd84175229c8cefbbf6de" + "fc046ff2dc601dd407883af7dc71a6ef4286cd3b1b6ccee4fd861865bff8fb38ad51b63d" + "49", + "08f9e2113d0b223c04e678e8ebdd3aab4816681a9ef08b18a38afecc57d79c971421469", + "0d2c9113a18bd51008fd327a55c214c9584b6f1b816cf3b95e7346080da2cb07dcef8aa", + "19167051872759c36ba9eeb5d620cafd3289e8b7660fc847ff385b5143b3aca38780639"}, + {NID_sect283k1, NID_sha256, + "7088f60e9375ec6a42f705f851fc76cc833c4dcbb3352adcce9f59197c1b7121e7aa661c" + "4f8ad9f4ef280af3a2981e90c01291f7d1cf7d3ae2d96b37fe6975e11b7c6c02b8ef044d" + "1470b1a26b9c72e8c4e7b1dd83c8acc9542e2fc7d211b87841dcceea2ab8128d0ff7bb62" + "2b60faa4a89ea7008f7d55f8f9de675bc4596fd8", + "19f9b63fde8c6aa6177f2a38981505d04f8ac62bcc21007b05615d028cfe851ab9cbbc6", + "0405a3e567b227869f948180547c2713703c90698dc04864140d22b24bdf81b3996829ac" + "a505b2ba535040afed0bf6f9d850713e54013729bc6dcbaa336ebbfb9c461f7ac61af480" + "01", + "051e20545a0a98dc3fec59e4ebdf101c6aa2768f344c1e19424c1eaae4aaf7ffeb5205f", + "05fb3329f63587e8febcdec49f92de88366a9f75d0b9a0f374dadc6e7a62b833753e990", + "12edfabf1ce434c850b58804f1f31f8afb20fbb36ee69b68668e231e4c04fa75e658478"}, + {NID_sect283k1, NID_sha256, + "ffd6044ab991849939e8a29184b4d0ac3e07acb63c7e6b886df9e8254073fa800d5910b9" + "fe34fceb547565a2344eed4de394ce2251ed51ec882ee9207eb7340464c742d9d140fa09" + "64f6bcb1efcc2d13919af4f727953de41b20728ab975c1ae0ce784865f23ed1325c68daa" + "95ed5c932893610179be94f13b9a4149f09833b3", + "17704c1f436beb52f7ec97192e23e206ec09f9e8986e06bef71467c192bad6f0066b3c2", + "040329294a36ceae2b2c56bb6e21e52ec32af11aca9ab7785be9c2d79652e7960c0cf7a8" + "ae0658a89a48fb95cb7028252fa9792d91b989d7cef3fda8ba9c8e4ffaf19269f2a69f0a" + "24", + "0aa8d2e210ae40ba1f9f051ad85d37f7cdea43aad890ef802519cc5773e9a0984fe5d6b", + "1908e3a2740fa04ec0b23c964c4c3cca51c4603e7553461dd02f8319a7ca2ca09d0aef5", + "12d7860d7b438df4653fe40fb9e986cb035b1384464e061bc4ee3bb29aec74d16b0a694"}, + {NID_sect283k1, NID_sha256, + "c9f81c9ff7d80011fd41f2de97a6c1e6a22cc2da7b2b9e4c50e1354c3e139b44529ac786" + "ce795fc501dcbf11a935d4728a7bba44b4e86b5e5990fed4d3e24fa5ab6f303e1842918f" + "156e00dccebed6897c852207ae5941c630014a41696882066c2b296d39cd8658cb5830ee" + "e78e29a00335a99a0ba90722ceca5a2e9a99a2c6", + "0c7d1ac8faa689698f5c6325a3b3f35e7730bdbddabd0693f2bfdc5c838bd62f84508d4", + "040095a930071ce56f28a79a66b751283c756c4f2566ebc2a10770ca60cced6914bc9a0d" + "77046f70021e7a949c7f55b059d4c8e81ee23b13809a35932d83b8398fc8684c5a90f3ec" + "71", + "038ae832c25dcd30c1ee3f5fbe84bd8779c876c0641907695aa598132b0e581ea528332", + "0eb27c86d3ca86ef53aef0465d257e6b681f891a6357cfbf51260dc6e35a82799de0e97", + "0e8207959e8be94e7407543df80d38d9e662106ed68e1456dd1826602c5b73f27ddc901"}, + {NID_sect283k1, NID_sha256, + "a60de761eb32490184dc1d29e21fa33889295ca587b994746874c7289eb9c83e9c7bacbb" + "4066c761a06b65ecd78d701bd41f305cd7eb258c630f3febfbb0a367ad16737b146fd793" + "dab23562e8001cd113135b1c981d1ca23eb3be0fe3e24fe3fe1089caf9fd8f4f0d1f90dc" + "c7dbea4a9e2357793b65daf342b8e6d109c6dd10", + "1a173d158866db0ec665ee632b5fc397893f6a44ee17c348e7452800aadd8ce676e7fdc", + "0406a9369a93e0b5165ac6e692db035495c5cdd6df243d9756098385ad616374ac1e1efe" + "e2032f72a02c36954cd8221126e4eaec02668f454214e4508cf72b6d945e14d9b7c5d404" + "c8", + "0200713a78f58c755db4897f9b7e52057a087816a07fc388d66d34ea9e0bcf2f47e182a", + "11a26ee24610e705a42329f86aaa80d78934b4bbf19314f06eec46067d85c8377e04d91", + "077e35add124574e98e0056bbb106cd28ba8c3bc0c47063ceebbbf2684983a2a0061950"}, + {NID_sect283k1, NID_sha256, + "2cd0320cc73120ef13e83c8144b270c9a1f2049a9250ef7ee83ccc7584025140a51e2227" + "a5ebb824deff55b3affcda63ecb1fd3f337c67c08054dc82fdace0c4bb9cef1bea9dd792" + "635f655363d05903cd6b5ed50ee669bcd8157509366cd85aa40d19593265da26e5641590" + "ccf04672a6df52badd4b99964a8643d9687b499d", + "05523cfacf4ed3b74ebc30f608292e45173001d80cc801f729c5f71fc213b243f041ad5", + "040410751ae7d8bb2295f584ba3d55eda41a80b8520b02bb4e5ca669a1003d6f2829e0a0" + "1e05fe16244f76f0c8b24bd3ca3b53c697097e3ab0e2b44962ea534a655d6c7d80b857c2" + "1e", + "0a634f4cef0ba37c9ab211c57fe6574c67933280c91c8b175fa4164755bcde867fe1772", + "0b9f6946a578ee38433e98478a4c31b67e838939cbf128f023090c4848471482fd1dec7", + "157159e15a2d16da2e913c5ef00833a8e5513ee4e7d6cdc849fd822c59886d0ca3695ec"}, + {NID_sect283k1, NID_sha256, + "a743d8337bdefc4753f937e869a36439da1f8c75e1278c3f6a4a969d93787dac93293818" + "b1cbef5b8636e1a6cb3acaac1e15dbe0841c8001512b689292f3f4805997ae26ff52f7fe" + "1842512a020c448ed01af2a061f3638689446ed5f6bed9fc70726ce4104bc11142de6387" + "3fa7039830223e8f152996388417c48e0c1fa81b", + "09f6bd008c04b8823ccc3ee7d5aca535c211f35e9d9e7cfaec518b98647fbe6d28283de", + "04070019957dac0e9be0fce6abdfc00ca737096ba2d2bea9ba570acab6d73eae2132d7eb" + "060559545f82741ddd1cbb9dab0cd06454fda8abbd9d1eca752e57ec05498b14e4189f1b" + "9e", + "0fe407c226fb15bc63d37cc9840a1a1fb0ac4fc2939fbbcb6e1236831379d367669ffd9", + "0e96e301bf1193dfdd2815597e016e0a282d6e8f9d1d67a7f7e7d05288594f1ea92584e", + "07488687f13c3a2b9ae90536db7868f2bde1529ccdc0c84eb85c53ea979228d1fda7c94"}, + {NID_sect283k1, NID_sha256, + "6a7a3ad614a3a09d2dc5a80204815d0c6471057acc0fa73f3cbbf1801902c3e1cba3c113" + "4a79a8ce61994a94a5afa85ae1a44b2cdcf5153f8625713c872da36aba0afcc5c2f26636" + "dc3f60e04c256a5b023e20e2e7a3f7305bd5b3033fcf05368589f19021f8c9096a886799" + "04b657bbe5b9bee67d6e53d176fce1de9e54c64b", + "150d2812505c82584201e93f6e0cb875d29dc7bd99d9c0f98e0ed20128886e67e1f1071", + "04012c7750172bea15487a05580891aed51bf81548f4b65c51c6c54b990bae8857a20115" + "b003db9e7a17dc8b24ff080d80842f0488f17f7d43a40ce6ffad52c65f5a875b4b33efe3" + "fd", + "0c5c52dfb50b210ae13c2f664d958b2491bfa91ced638f925941234bcc4d66de1eeeb73", + "03887a270eeb515a59a7387d8acbb4e72dcdf13f317a6a93ace5cc98d69a79c64a9e7ea", + "0e922b2d021cd71e213bdb36ce3ebf56a34617d4dcca30fc05f238a1c097e38d7cbcf91"}, + {NID_sect283k1, NID_sha256, + "65bcd77a3ab345cc99b9c1300755288102a6ccf140bc7d1ad25df246ef01fd57a8614b35" + "2033b88cc6ffffe5b38b99ecf03baa365ab5529d6751a3c020d0198561969aade0909143" + "4d84ffe13b46df043d0a61e20a08e9c32b646771fea1b29e202d40aae1c7079873c3af49" + "4ecf6ef5eda855736c9338b4a5c29a086a8266fa", + "1b3fb9e1ff70f94bc9d7742ea535ca982215af3df381b5ebdf1db40c7c849a7978ceb98", + "040769a897a443c41ae7a8c1e45290ef39c40887ab8f4aa3f9ee8f3096921222ed7de457" + "39072621bfa30973da61fb6d363d66db25daf818ce79dd3268ac0520fc99ca7917fa3a23" + "60", + "03fa84ee38587f9c848b65b07c47551e27f15e7a87ed0ab705c99c8b7a4ee9e86a8e4ea", + "11b214ebe67eda2bd6e84c33be05c4373d2536e2cccf152e56b1569cc96d261e50910cd", + "0e100646cbffa016664bb57c1a67108645238573867c0b595c46e6053f844e5482a993a"}, + {NID_sect283k1, NID_sha256, + "ed1acc360d02ee6c36bbc223d91bc1d2009a3e8f8dfc4c3796cd8555b0d2b46716f4c805" + "8bf34c2d4954e098274ab9c2cbacff46a0578a14e77fe104196cbc6d2753e3bb5422b8b7" + "9fd004ac0aa920eea94925c016ece16ed4dea916fd92563ec65692a61b28ee84bef00071" + "20bb1e31bb75b8ecf68406a71af9a18b4edf5320", + "147fa46fccf0805d14c1b84ea59bb8b8283d54ca0ceefb29b5585e7141340c55b7232f7", + "0404ace4c65ce07fe5ec22c560bc553bd791434a691c2d865c52b5e38d541ef191ef4190" + "67076250c829de137b6549d22a12f196629d9d34cdd83758e5daf45fae41872c9b15190c" + "e5", + "18c4f89cc022236a0da6105f19c6661a8325d36fa285e3ca71c1a4af3dccb016cac186a", + "0271b421fd572de8a71d1b18ad2325bc0fb58cabaabacc1f015ee6b14bec49762f1f8ce", + "12e679010ccb143b7de0c3f6c82cf99a961a4f154be6c87abb111cde2d721d864d7a1bf"}, + {NID_sect283k1, NID_sha256, + "2debdb95a21d72b69c545988727366a42b819ca6398a82129c5e3772aea93fac0aae9a27" + "b11969ff0ffb9dc0301132ca2452cd863316cf24ae7696422d4dc68e37316161abc146e8" + "6f04b72d9a27a350d8545cca245b2be43c33bb822dd813d13e08a718f784845df8a4ef49" + "b02529871ec76bb3fc1ba31089359f2ede73e767", + "0fae097ea56b35a517be5480802f450eb832b244558d0cc922cd4a5b40b84d02ef11216", + "0404f6bda2dcb9560174ffa54f13fa5edf17bebd41399a1dce1fe13e82a2b487eddfe25a" + "19076dd375f2c5f24c342a8e2491271cebf5b97ac666aacecc8d693a85ebd2a93eaccd40" + "59", + "05e3a67091b9e10c7fd20fd70d51162e5d78555059802d0c3b133f49b89f37be6a119ad", + "0ddf93ef8797571af3cc9a66660c569445a2b5384f95a12d680c570694bce49bf2264cf", + "02f50d68bda006b88798d87c232f5ed1796c841074f063da03a471e0c00f08b10f410b3"}, + {NID_sect283k1, NID_sha256, + "e4e0c6c8fc01244abf81e139c961b6a6e2d95de5dff1083e8a48b40e3e5b9ed909152c92" + "b1cf2263179629cdf76ae553b58bb2e9223ce4f9ffb5f170f5f0c5ec97294c34a7529a89" + "7e9397f71198cbcd68bb4055cb8cd6b690290761b3b73303f82788379df145358afe28f2" + "997d191d968929b7a4b9a0f6228797dfaa17c613", + "026cd72e6ae19b3f4c53493fba1e8082a8df1fb7da6dc111b47a41f713f49b33f618d0c", + "0401c411f5e298c9b61023fb26765cf4132cc78ed77c07c3e815fd43032cdf0ae8b8920f" + "96035647b4c0807b287014043560d70c9b14651cddff4bdf6d44ead5e87720294ff89544" + "06", + "10e9bc449e8480474afffd20b8acd6dd08344981c4a6cc789c5338ad7e486c526d6c4fa", + "0e81594f1064e018aa3504bac75946d77f9e745673043417a47c0c82488e224cc4104d7", + "111bf8635b1bc3f6cb7f9b685077b38d67160d143ede2bd8b6ae93327d7f55c5317f00f"}, + {NID_sect283k1, NID_sha256, + "04710947b7c90855ba4e59107b919d4a1df22b503c5c4c33b286b6b08e451e6fbef8ba40" + "852f9f0ee62c9217abe6156bed46ad6f0e25f70f528f3a73d099338c578bebd6879d810e" + "6e173c2b0af1f7caacb3531ff0e6a7856e4c84db355d110febdb21c683223eb5990ef203" + "8d462ddb7962bc0feea5f850954943d53041f66a", + "198e13c7d95bbbb6e226688719639bda988867764ffa9b029018b5547850daecf58fe1f", + "04030b511d719217c485866273ffe2996a19e0a670b7a3fb077944a21f63ca2f22fe5a52" + "4a03a4d9a808e8d77c9dfcec6d033139fc33e67d7c8dfd7329c895bfb77f565391c37c8d" + "8f", + "1721f1ad4adf3c32614feb7f8df3374e24f76a32e27854a57dcafcbaaa3082b13e461ce", + "14b2622432adcfed7c2ecd2b52e43be7f611680ceb4bedbfa9dd9af54532911a07440de", + "0ece991128b10399188b18933c0d185e85d111ad401baee5ac376b84c523f130f70fee2"}, + {NID_sect283k1, NID_sha256, + "c62d07bb1ef756b6b2fad355c66b5be086b6dc387b37cbc4a63c841dba3fce65b09d3de8" + "f239e3649382d172f065b78f8a53e0283cf345de06b4ee0b4b7d8611bfce92a7d993b193" + "8419afe817611bc6df3ef74191e7e39ca2339fcb5b5cfee3166d09cd52a1a7d3779722ae" + "c328d326a11bbafb6aa417920225ac453146b9b7", + "19098a39956747de24ded56435fa1e6c30cc2b8088fe9a75f5d07b2f5939c7a60db64ad", + "04068cf5a2023753717d89d12d6861c8411e6081c3158339573dc5598b1700148d00b39d" + "c5076a22dcd4ff4f062eeff83a58d2ce6a1808af8733ae254f5157efa8ea35a85cc74469" + "2b", + "142e4907ce239cdaba562d1fa7305bacff05a75e2927800c7b7ea322b47c9ea47846e12", + "104620d752b73379e1e5d35e5b24a793d7a309685c00f8bdb97bba9876999ed9c763d0b", + "059cab3abb0738d8af4ea6dcbfca6d0ef11b6e591ca109b040347d7d4736724953cd9fa"}, + {NID_sect283k1, NID_sha384, + "e4d8d49c9bc566261d9134d5e237d9cbd6b67d2619a9bd06b7c9c139e091aa10682cbede" + "114e1d4777d9cd67a16b7d64278e99eed62bbf25ec5a5a8fabcb0a3468b0e73fd02ac653" + "3e04b1110d29da3e34f33eaa228b78341b357a5d892a61beb2168c3bd5e66bffe3f2080a" + "1e246f55a41ebf9d579e188d16991aa060460d6a", + "1636bd2be121e07ee83ac5e880cfdfca6a56f2b9d0badff003e872348368c7c2cd96b6c", + "040007acf46ab68744a9baaa33ebf6be20c1c093242b0056bb9885d93a4a9bb4640f17b2" + "ef015415c1b671e98f00c1fa364bd69cf998c0ae140485159b0a341994a4e27000e108f4" + "fb", + "0d0d4886c3500bff68455c41f5840d0313f33ac0155a693d27c66fbdb12791c2b5f8552", + "0256b8ff7d37fff7dcc8cc4461984a9bd9661643fd3a68d07fd30d426d10b8c7f4dfa34", + "1f516f8ed4372780380a798d2da04d691aec379483bc0d10560ca79edaab453d3e77585"}, + {NID_sect283k1, NID_sha384, + "2d1358fdffc14630fbc421b443d3c22ba10ef34f15c6c5bb3c73a9b8714e4c411de69b9c" + "d6628fe2eba5efc4862af66ff916505023e0514f564164b389ea422d0f1beb92adcd65ba" + "f43556614eba25e43852ba65af78f62d64b36696519ef8284ef7316ea52c365b99f63a39" + "e6701f81ad520d7445cfc0113c38ecdad4bf5b7a", + "15e5f555119c19b055b15b0c0d2813068bfc184f864e250b202384f5728bbbda1cb0f5a", + "04013cae2f0c3ba04d039c42cae27de4cf5842a3e24be35d7a3cc7f05083f02951cbeaa6" + "3b05d69ad5b7d64d6b19772a1794562b1fa5c2fea03909bc509e7d47b0e8144acb3c26fd" + "dd", + "1b881d95b7de9aed9fb5ff0085ca4da2fbd413b9b947066c98aa0257142c9000bbb30e2", + "176f9e3c9e9f98b2f5f352ca74310badf9f598f4d42cd2b26e5ea0999ae31e3c678fad2", + "1f2dba4e17470cdf7e1815d30771f352807b38080d44465f86044f5969b017c9059daf3"}, + {NID_sect283k1, NID_sha384, + "d6336faa5c3e838f4fa58626eb353d4cff9ba8f0aa0e6c3d0d850e8b22f5b0f047afc977" + "67f1afe2040b85d4e401ba688a4da7a0caca7fac450899092c4fea789231ba9b07782010" + "720f45d16d353798867dd7fef4a324520014ad5cb32684ec50cab742b750e05db040ff51" + "140e8d740f6774a059feeb493b10d8ac722f23fa", + "190c8f17bdd38669e345440d2c7631d67cee9c6548c4e7b9452377adb9303430efeda0e", + "0403235a8b7981b3ff376b6b0959a42cb56631fbb9f82f1694b9e273e6b7131e758fa0d3" + "700444e5747420d7f5ffd6119ef43b998d4ea4a58da13ff6fe7f241ccdfd4b6fd33aa93e" + "3d", + "0b2a690793107257d7bdc37c492eca48c4c9650ba0d657e6eb62042b16169fbe27f8984", + "168a83fcc67e0c155f1fa2329363729872e254f2e0c3ef85f3b3c84fa3406de4191b6e8", + "18c0f8e6b486e6d7d16b4103506d74bb2021232c0b1638858295a63ca35e0d6d26a6266"}, + {NID_sect283k1, NID_sha384, + "07384a3f650bd270b14ca388a441af201b7767a2d47e9033f50cefd3af8257ecb38f5267" + "e141cbbb2ab7327d8fc78cf27198ca3543d39553e178390bf1b921618432ad895e4f8153" + "783a7ac22f4ca3cad4560e64f1ee4a7bcad05df98ea49a3847dc2143b27c243e48be59c8" + "69a547988e2205358e8db98b635ca21b745df4d2", + "0dbbc2a0409ca58a9e39e33b95fdd15080443c1dbdb5874bee991bd1b127047f08ec9f3", + "0405a687605e54e49e3c40fc5ee8fc014a62d72e8595280a66ce7d367aac2df4d16b98de" + "b3030abd03dfc224f459dccd1606287cc30016be317c6207532a0725c957ca5fde692a9c" + "43", + "16bc5aa29cea64ce3297172f36fe4ce820c943908c21c9967697db0cd93bb8a12e42348", + "1b1fdf26a6eb2d736b8c1ab165af2ac31a4c206c5410f61ac7805a68992dbd62b457708", + "14e9a22ce703d942a4fe2e84a4c1c1b44538a33fbfe904bfbb17af6490d372acae4668e"}, + {NID_sect283k1, NID_sha384, + "824f26dcb4ce0ca020982814d5c727e629cbeeaa818c49668f8f6d743f0d0ad362b24cba" + "c48027898f386889ca5411d7d1f9afc69493b1d9ae4d7b695c9fa0a30bb59e6be2cbff79" + "231767e96cd8bba349fa2f97955d56f05430ab4ebd007064e3d5add94dfe255b6deff196" + "50883ce9966e1a2affaf84d9540f65c87ab1f936", + "05495e6c59ca1873f36b756579632fd47f9fb95b64f52589d70f2739aa6a3bf8cf8c198", + "0406df40d8259be64c8ac64a28359290bd52e843f330a68c2b605ba4f777d7bd7a798e93" + "440458667cd7021b291c3415d64f9b054db71d3fe20f232f2a2286aede89ddaf1ee8c68a" + "a0", + "138f05303ea63bad47c4c9a9d43c52c264725a668db5b631d9892daa1b71f62656cbf73", + "05e35c1f3b30b43cc9d60bf8779f3b31e053de0a390da50ea676dc9722a17ef00d68aec", + "1691ecfb826fef1ea0895242129cc3e9a14e1f84fac49d62ffc0a3455ad9c97becd5980"}, + {NID_sect283k1, NID_sha384, + "07de1e4bb9be15a710a74806d4447b093bc08ed04392d1bd5abb414f5f4b4d9d43520d0e" + "46fc81c2a97e71086b28e53242449ed37fd7ed1c5772dbabc430fcf82ad20437b38eac15" + "820421e51912325c872894452c3f8a10ddb040b35308e583c155c3707b52df467c4945f4" + "e1071126ed46611a3253c297f5cbca9e27f58448", + "1724987c9b698519b6c225cf1261b77d0300045e5fd774dcbf13f285e6bd74512cb7edf", + "04046adc9bd5f0cc0d8bc64f4ba491eae3b7f6fb4229bf94b804807c6137787adc0fed4b" + "2f041375e2c89da41af84529811ce7aef26b983ea8add6e37c32f2b00bd47f23f25e5fe1" + "94", + "02ea4ed0e87687a50dc3acc7f4c089040ddd367d1a3f470a711501ccaad63c201b87ea6", + "1be198a1b6e91453018513902f0a8a085c76a2798a2a0538ede30dab65afb6b9b0496d7", + "16342f87a813780aec006ee218a615c4e1c78c0c759d48d4094639b5b4c32a9658c4d9a"}, + {NID_sect283k1, NID_sha384, + "1edbbbe71057bf7d0bfda922be21a3a4dff57b017ebf6fa99651246cd173bdc9b11eefd0" + "48ea599c1f98e907932aa04f64ed0a007831f30daf186c88807400970904d6090b2cf181" + "e0f65f03b4234aceeb420867812562e47f452152bb1ddaaa48487170d06e47c5e9a7c0fa" + "a4fe494663d2fec22f7665ceffffc214b21c6b8f", + "1a5489091cfd51a0970508ee3e8449081ed175928ff8386592c83043a7911bbc2f8778b", + "0400aa1562c94bd16a3f8a1d6c465908ce3b83ba6711e7d8b0b9353d3c55d13dee213aba" + "700103a789854f63a139e31348f1b2608f1e71c88b5d42809f2460642ff46a470ad85735" + "43", + "18435a6d3bc02b3019e1b156ddd6f3e1bb9c5af70d1a2cd2089e677cbacc21624ec8947", + "031f561b668aeeb4df43a3a34716c4e67232f56959104b7237b26e3c95dd40e15eb076b", + "0f2ddb6e6d18a7393425c16b3e5a5aa232cc48198d63e46a601cd3ed221a8427178a0bb"}, + {NID_sect283k1, NID_sha384, + "db5cf1de38a5187af11c1f0f19a36db52f8417de997229e83072fb51a3b7152a3b383e99" + "19c1b8427582e53d4e7e25433d46cdf01492021c237ea0a87d38c71634743115a6b2aba6" + "6d3faa8003158340a5078171e0bd55a6e5d8c7fb2631a31c1204e1479bbfe79ac70d5e58" + "23af502922a900576f0088a33e42ec3e26c0089e", + "1a45ecda0788fbd7cb7a716dcf4c6e83d4148bf63ed58078690ebd238c00329c462590a", + "0407a1e2fb4e8e79e3946086fa65042362418db0dce51541121c73972a435aecb99f6340" + "23006bb02df9899ac3f207732fa7cdbc36a60c17592af7ce06b8df4255110e26a02b2318" + "00", + "1c986f88ba3d5109c0afa2c213dda8df462282f024cc8efc758a5342a0de91c40452443", + "1efbd9e0d912e170c9c55bfbdfa6106fea4a4e013e7dc26628a1aea4f6b806a51866003", + "0b1347f4f85adef612f5c3a436cfa59eaced5c7cfdbb69444936d71812a2ab2461bbb5b"}, + {NID_sect283k1, NID_sha384, + "4adaa850eec8272d25d76600aacf2cf66e754f6c5efa65c55a2a31b7bc69437d9a7e47c6" + "f51c5da93895a45221f5f92c2e20ee6a95eed3cc7249688261a35d82872284900eb54dd1" + "df6024ec48963ce43e8ed8b8cca8ed22beee8f0aadeae53726cca05443316537840ab824" + "cd1b595f36064e9a19333748d4f4972178e7f5ae", + "11461776c33f20b176dc8f2b0cb2446a9b69e55b6c7bc7457a7fb4639116b452b79661a", + "040043ba7157559659954ac58b44f19262bef9e3a00829c70af66d07cef08ad899d7f8ec" + "2301e8dd9c947b5a6decd1a26fc5d0eecc9605d22abda747fca038571bb37036d9034e80" + "61", + "18b231de7fc499b461afed9b80f4405bc005011865cdfeb25570b7c0ff79b6ae94b6ce9", + "0fb203f47a4e2e9365ce070ee7fd4540f3f7e9ecf69b4400eeded0f5a7bf6e5a5c6d004", + "0e635dc65233f27b8350db22b90a3b8611e6fd1b3e0f515e42fe8788b1376079816308e"}, + {NID_sect283k1, NID_sha384, + "11d212a99c39fb5e4ca0096bbe6c81ae1490e1b8e07374b4e773bee4fdd24a3c13d65391" + "9db663d2c32aa4db140c4ae2d472d4f878946e527ad33b3dc93012d97458f96cb622ddb5" + "6f1ce7c2474ad0d5291dc35545de47b7053d137a8e79dabe06757ab53e26eaf751111bd2" + "7690e57ffdab5337eb6f81889e9d1b1ac729012f", + "025a65f627db2b4d6cf83c5b0c00265b9b63f7656c5e3382139e4992bcdf3cab502844a", + "0405a35e7e0b914a3e01ce3a885192d2ecd27418e09898631de122db0c48e8b58658720f" + "cc0009eab47197d5f56927848855b6ff96db7c36f810ee7c89b305ef780ba8c993d65537" + "ab", + "18516ceafb61cf2c7e7c511a8918bfe394c7fb2fbc40fb3052e156cd4020fc674684f84", + "1892ac13b86ad00e38ce2427c8c78c93b08605a75ca22b3658132dcf9d9df7c4b5540a0", + "0437b33615c16a85ccb8c4769ee7c5f94122d31e2b5fe66291b401fd90257ebefe33818"}, + {NID_sect283k1, NID_sha384, + "9e4ec74c09528fdf3153a0f6955f20c70915ff524b2e19c991ec4c5b41ea9185e3e876a0" + "2ed6f27c9b3479dba951bee8680c4c99be1a626808114408856994be7444ccbd5ef9859f" + "a479b1050bb836034e20c531b4d618f5843fe1d4b613a731895b489a2363f3f5397d5ff9" + "64cf037e9b11e3ff5e1c3d403e5a46b8387c1241", + "173b28fc29f10245221a907778708b3ee62e0480aa9051d4c3eb4e8d552e6aad5509943", + "04024bb9bdef975af892ddc1bbd31314926a9c81f8f1864829edafdfe2744e793c100c04" + "83028ddde61b4361ced9c391c86c28ece9b902c48d14c61684962007dfd69d0468dfd65e" + "7f", + "199af64f79ebbc5b789d4676a07c224e4f6fd33285e5a555ac90cf65d0b669bc58ced4f", + "137d746d515b90890a413685bd9b26a1c05efee4c11a4b40bb621c9fa2580c46c20a687", + "1647f70ab7c68a0f522420893a466940ccf79067b323d940369f8b8694ccc3fc0daccad"}, + {NID_sect283k1, NID_sha384, + "5fe8253d2134c434cb0866796013722e82184638b024a5a30938039929ccd8415c71f71f" + "239c5c5a81f7a9cb493dde209f189bcf766c17c6d9589cd0c7de7f07ff9f24d2320669b5" + "89d084f8a8ea71127b9760b7355b162616afb34bcdcd416f1a062035102e29b70069b2b4" + "dbf70179b8d60bc2ee5a455efd40194533bf560a", + "0624616adcd45e1fdc6cfeab2b17230d73d91fe0b39f4664f3c6891554f9b8e238257f7", + "04010917ef84bd5c0b36c97cb5586d3057a34f2827f239cab2af2e6081c5bdffd48dccb0" + "b2078ab47fe1bd3e28055c688c78e617ddcf6c5060123e9d65c562df2e94cac973ab3b18" + "07", + "0795e229185bc1b3d6d69b08189fdd7a822cd18ac55971e4b35e51838bf12eacbc50e2e", + "185483378a162b8edd6a12f44e3aa4ff829630fe3a1c9ccc66e34775f69bb6a94282489", + "01662cde6cd497be7966a0a77b0626ba3c4b82e20bb3f2e839178a31aaf440aa0e059cd"}, + {NID_sect283k1, NID_sha384, + "db49891838fe23f0530abd4a4fbba5ea970afa5747f6a0a10d2cf4d841581ea2178705c1" + "203f00cafec91d0a72d25448072c9cf7d7ca5580b39f8589ec63128faa95cb0689574a6b" + "ebd515049a1eb9699922cde0366b5cd58aa8f3d3e847706896f7e1cac667fbfe94b2eca9" + "e7be79a810806ca4bf53f219bb30532ca2254c11", + "199757ffaa2c59e198d66824eaad37cc42d49b2e241b6a60382d05e425e800eaaf32470", + "0406ad18bdb3e51cc053f56b9f9c35e2d6eaecbc9749f41a9ffbf54634838d7745ca0648" + "9005dd77c42b31aebbbb46277176df08d81919ee0d9ddf14c3e4c0cccb207bf649c48fc8" + "b9", + "109d6332ceec5ea211f642a746a6ce055986b4a2feeed7e847904f7f411bf8361318d92", + "1a49fe690a34151056d290790a6bfa7b70958e69e9baeb30c55efc61dc5dc4934f2fc95", + "1710a4ba5b404d65f66a8fca2751a920224db0cc0266f7b0bc054069ea4cc51b1f017bb"}, + {NID_sect283k1, NID_sha384, + "29d385d09c1142a7c181fe4b6e6132e414c15aa8605b44208c0399464613b966edcc2d46" + "cf203a3f85d943d8eae658695dac74366224a0d0348083bec0106f5eb8809ae8d07f792f" + "dd7c48fb1a25d5ef3bb9acd40b20c61c821024a9acb2ede321bd2d0dda849c22d76f421c" + "bd8d51565d3c4266f666455ca1c0c3777aa44107", + "06e51381dcf21050aef2e9b97e35303cf3bd91956854ecf9b6b9827871d2efbe8201c5e", + "04052fee805d7938b8b97459b9fcb4b80cbe29f20a9aaebc07ac019539a4a966c5ee4175" + "1d078aaae02974de6530f285b4bbe87fd5d0c9a2ecfde5fdc9a3303e4b988f673c778004" + "bc", + "0b426ebda6628125d73efd84e6bbab6c4c8fcf7fa29ffb3c8d6b0a861dbf81cd18d088f", + "1270045e963b59e4a4f1237c2240a5b26a7ba8e28ea01326fbec00e5d95d40e859d88b3", + "1d721477ee1df1388e1b7f92c048e5759c060ce1291098a2fa647974a62a258a189b4cd"}, + {NID_sect283k1, NID_sha384, + "774c1cb8fb4f69ecfb5c7857d46415568d88f1f9f05a4bf64a1e1ff6d64aec16e1d09292" + "010d1f067c68dddbcde06ea49be2ad3838053f0b9c0c2383edc451ef0188565118e7b3c6" + "6a4fa372b96633dc8a753106283b02d0322df273d58cc9bd061ec219f1e1a9c8ca1400e5" + "e39c1b2c254273377dc98a1a2c44e5c2a5b89167", + "018adcc22cb9a2db64bad3d60f1608c353e091637b948914115ebd43679904f955c8732", + "0400630bdd8937e961d5396f9ea5310123a340ba316fbb7d79bf8573f27a0065c6fd6f88" + "900737a0ac1116e0e2979f973cd705588a71cec5e2a9f22e7e81fc61a4375624f55a6182" + "bc", + "10a0c04762d02f9d3014bbff287864743426cee14daa43b22149ce73d1ba609c0ba6be6", + "0ac29b041a6b95f9ab685470f50445d416df5f7ee06313185794f2b542fcc00606bed69", + "00a4241b97b6ccf0dcd533a15867f5889349ec353395d47e31c9eb6b8785736b3e285cf"}, + {NID_sect283k1, NID_sha512, + "c406aa4295f85c854b4db2de5a7a2defae53a319866921a3673af5b48c85ef22f6eb4cef" + "892c790d8e64530fc20c729b2821b5f5e515560b1ac764106560c3a6a05657e34cd6dead" + "fe2884bd288cef4ca92e1f25adde7d68a30fb0a1b3678156ced62e466718e68e9d67099a" + "d82613b8d06bdda1a7b867c2455422818ae9eeac", + "1898276f159c10d92d8d4b6ae214d68c72792a4b5f1f79936ca3c063dc8d9a88be439e2", + "040394cf9bb273923c88be7a1c49412ab8599e0cc5509926102c122326bc0b34243f7d1c" + "f3072330906f47e8fe95f63d0f0aca1115e77fc702a923c32a16505bcd9021da05fd9cf6" + "3b", + "058772fbb30227a136de616ace4a0334be0996d60e9772ae9bf672b7c38fe3ee1b24f98", + "10e0cd3fccd1728e99e2294efd6dd4797b6492ad95a789aab7fbd177475a047f1e5d38f", + "0c5e0b2d1991718355be14bc57e2d6ff9fa63e0812b9adae69f64da610cc6cbe36fe4c5"}, + {NID_sect283k1, NID_sha512, + "cb2809152f8258660933472c06ddcdb65f6d5221fa29d5b0efec9c2a7914dbbf9ce0a468" + "ce146fb333d26f510a87a6bb01bf8816756a1b5df81c5f65360957cae84ba038e37e8877" + "7580e91c34e2f5aef4fb55af7b81ad28aeba05e0b1c64a15381a6719fd2c16e38a441516" + "e1b394952d984baf9e051b1dc1bda2e12f8ba5b8", + "12ff37c808c3cc029a9cfbb67a5ed21f3bf362b49270d4ed0f1e38fad25ebd79f112a50", + "0400cc00fb36bf62e777a9f6048761e53633b92866158200c43900db95aa1342b5760290" + "90055d7e57221ad939f5639282cbfc203114ee69baab4fdf194f4d2a937d8a57b70b54a9" + "07", + "163d8eec726d01a1bbb19995777919f68689f7c2920f3549fef966593c4fb012a5c3a1e", + "0cbf5c3bf1ee58869e1d3c15a05c23217f1c252da97f79334bc79efe3f5c62164669ac9", + "1fd51644f471ea497b0560b65fdfa2fd0a6cef469021303f97753d22ce1993d1ae5b96f"}, + {NID_sect283k1, NID_sha512, + "e060af96d4a7fe512bbf26be9a27bb6a8ff37547d4a7bbbfa710db24cffcfc760dac120f" + "89f642880db2df6307f9ea5441d5932d49762d182b29d8e7fb067a61ab0df622f75cecc9" + "17e27d0326085d34581e052c85f50a37713e27518aed7c4434f86970e00a0a4b8503989e" + "72614131b7164c1bdc82d2b6aeac0787f9838476", + "02b8c1fef9c6def32b5f4127273ce384b6add4aecec957c1662f52334f5ee97f49852d4", + "04036a4fe1d77bc431012d25ff49fb5468f975353be70e7507d71966a0ef433df51dc323" + "24058d705cc883a690641f0ab85af4959ef4258a7ba9cde36dab77c125a1de1d39536658" + "4b", + "0865f59502382b324e1dbd75db150f342336fb19145fb43a733971da555ac5828a3457f", + "1ccb2e56c02cbe8038bf78dea256704ee6e51054668ba8c2ba11aef4ac6f9320d46ee8d", + "030e662c0e7d47cb3b835c63599d0c9c2e77ca47dbecd7ac834c2babeb039eb630cd0ef"}, + {NID_sect283k1, NID_sha512, + "d235c31f0a82957a087c7597673970aa39321d4c2640685a03df8388b5eae4825d1fee29" + "926f416d5e62a2e9ca1ea7cefffd31607e750fa9675983608e0f8dc895371b190574d065" + "c5c0c23ffdaf49e65362914363a3fffbc2c1bb487cbd4f69ec22dda5c7dc3bbab805c81f" + "aa85787cc176bc0e5703924f395d8c9e7e7701e2", + "0afb1c45e9a9f02942b8e04da4b815498454dde6643de186625a98b3c1c6993abc8bba4", + "04002fed49c59e9d5c09202a5dc29d8dd527a870a180feded66ea6fc94ee094122ae9765" + "6b03620820bdd5910037f5877649be38db3571a9c6ac632602d2013d0d5abe1f00133f6c" + "de", + "1fe749d9916f11100af525ee343b3b74a493f92339e432a482dc8e86ffb5affc4630037", + "120f6f13331cd4d1a5b9707483c74dc0722452062cd4534e94cf40840d22ae263244a51", + "0bc2e37a481478f879de612cf4a833f7e12b8df33f5b0d6ac5f5aa431678ff053e2bc1a"}, + {NID_sect283k1, NID_sha512, + "1a2559777a5fd8f269048feda82c4d9fceca95803f84a813789d6ed070422240e443789c" + "5231d63d5268ddebc060dfb99c4eff2ff115d2984d8bbc5c05314562ea6864fd543e7e0a" + "3b8572c017d8ae3563027d79bbe164d40a5bab354720e45094b9b26391ceb55339592fc2" + "f10b97dc9c2649f7227648f5cd2fc46d78d31c0e", + "0ff537d73a4da0ae3a4894016b71dccef3bc886f3d24a5abb7dd96cf8fdcbdf0fdc5e51", + "04001bd0537dfb29f727f91fb469c31164e1bb0ee192a5b89b880f3fa40e3e5437f0d2f9" + "e106df9bab2f9198494094a63f2ea091f60108449f0741806400694a93702f61fb0351a8" + "1e", + "0bbc511c6e1772ca6cd1cd308126c18c5db498055a4b3f1cb0dba3285f6d38b083e647f", + "1ba756f3c89b732398b90bfa2f92b2a77159c530a8020b75cdb9697c6d75c18d36040b4", + "18207cf326bfe97d657ac4197ee5c20c75431ee552681a92a5815db0d984fe597700bbf"}, + {NID_sect283k1, NID_sha512, + "658c0d3f764bbc952fa55a258bac16a5bb5184bfa76cee06baf9ee6b9ac3f116e08bb240" + "6b1dd4be487b057f3b29c2043ebc33019b2017c4deccb86f50ff15fc9248ea5fb6426112" + "0b1960525aec3cc18827c23291722c5add8a3761ff8516c61956c62b8cbb13f3d92bf3eb" + "45a70704c01bb3625d21c38ffa83a6db086ee968", + "16000d2e879906d1040b32eb6ba3caff700e5565871ac75f10c5c15b509964bbe5e14c7", + "0402ba89255d1c89e42518662611e2efe3b5e3b8043926ae9c43974ee2986185269246a4" + "3302b87762b9ada81bde958d1f9b81246f49098695391ba3b4b3b9ac5727f19fe42fd079" + "46", + "14e837476e628007b2df21b5035a39c24cd4869bb52dbbe13c9666ddd8a7e3eeae29f65", + "1b5091fc755c0f908ee13ef9bee40dd16a5710befd1e265a312e595842d52cc135fd722", + "0fa25f43c3c074d702e45d216e3704d942e9d67b3c0728645ac6c53b9be7300061e5fe5"}, + {NID_sect283k1, NID_sha512, + "4f10001e3517c2c1f973b555f4827681e096d860c4db08f1f4aef8000c9c24bebe59f8bf" + "3d7d3cac959a1a5477bb0ea43f2e746b5d14ed48a58ef35484b0ac786d2fec669f945e84" + "6ad73e6b77a9e47012a951b398941566330d89125eb3c1fbb2f06adb951ff5f047d102fd" + "f28b5cadb4a3e1a10412eb3474d2ed5c3fce78f5", + "019528d505bf0584628d0214bc857150a929d3f59619bf8f3acab545fff0977c9bcdc97", + "0400cc8863e1443e61fedc61abaff87d80450345489728d78c333b36fa28d8754a29cf3b" + "a100205ae70c35396c07f9f96aa7c59cf8a28aa2a365b4a1b68e7414d8c4ae5220c8bae9" + "ae", + "13d555426101fa3c239b7830fe0b6cf08a1c01f9a991f806c84baae20daddf5dec8f868", + "0af8bd9856dfd783217cf81b09b464614aa824b0298f35308e6427c679607853eb66c7d", + "0e6c1933d6ce25d0a00effbaf1db2cb2542cbe7521330c34286cf3bdffc20c001cd7722"}, + {NID_sect283k1, NID_sha512, + "c43ec3c3232cae59bdea7cfaf18a4672035dbd2b8b6b1b44ede376b36cc2d8baeb921e41" + "6aa177f5977da8bf1d713509e5251278b6622790056271715cd5feac58bee5baf50b216e" + "8eb886279c5a384cdb696470275b7487fe9ac4c506706f6b0f9809d1ccb102546a4297d2" + "017c2a8df9f02f30d3d1bd9aebf6a92a02e0d202", + "067795ce117bc0a389397fc22a01cfd9422cfbfb5aa44131938a8c45e48e1d5a718539c", + "04007924de08acfae6260009cc2f02daa2fc2a809e6ab4cd8858a9e9c2c15b17e29f1bc5" + "ee004f36cc2d36df63474a579b96f6e59b890782ad8fa865efd80abd798ca2938bacbf82" + "12", + "1bf3242e75f8331fe70113ec8e14ad0814850bb8cb262c7d0a44ca69de52d32dfcabd0c", + "145148d59c5be2b6d39dfa33e904c161456822ec0ad64b9dc52befbd6496c9303fc062f", + "0b75c3c404d694e086c0f5aafd534e7d8596601f675b2fac9384fca6084711e35149f9c"}, + {NID_sect283k1, NID_sha512, + "9b7d675a3d2cdeb280ea28289b5fc2a3ef6b535ebee8ad242fb031e2e1f364e8ee806568" + "b2f8627c5a5b4f51f4f65c71acdc1152c08b9211b81907b551e0ff47f5a6aca45dcfa06f" + "09bf195d19d7b165b52111b601fbd97b192f62465f8ba20773b1599c8041e91448eac7a5" + "763ca0628f40768324c5304e1119ca6a1fdb0778", + "19269dbfe4184249952a651a507584746c5b62c64cb3b17e0158aaf4d086a4afb0330c1", + "0406c60a475f2a3635fa523e1b138edc36f51e94a34e75989c2cacdf8949115d96f11ae7" + "520494d5e23ba9071b3e52c58b1d0740cf90cee7b084b9ef7a4a7be8aa47ce7b3d97c8c5" + "1d", + "111f4dc771b6ce5cc2f42172d3d70fe77c73683bdd2ea331ff711b7e9d8c3e4f2d7d6cb", + "027f224c01847c52ebc180ae81009923ae3453be1e0d94b5c2934603577f36653ecfccb", + "1e7b771631e5e72b7ddfb9c73f684b93270269ba4216cf3926e43b2ceb49756e7e7e0e6"}, + {NID_sect283k1, NID_sha512, + "f4a08daf8f66ce57a986f14b918099bcadcc4308bcde7c169ce8536a40d94a928cfc0968" + "180a2c2a242c59df73ff79a03687998c421cf9a0e661630378779a4744ae2a6cd24ff61d" + "7fcd6c11a4c8bcaf358075e96f864df0998ee98ee393b37bb38747b70bb7a208740959b4" + "5174a60153ee566e0f62528e9a5e4466186fa650", + "03835814de0d6441cd80a44e40350cc8bd62ffcc81e939a4410bb9c9259e30463c453b5", + "0405ce9f6c979bc1d6bc41f41095b7677cc184da8918265a7f0e5b9dbece2ca9e0667cfb" + "ad039a395aeaa04f5168de809164285974d306e474a610d89fd401c375c9b73f0d23dbbc" + "f0", + "0b714d734d063aa81a389be69c56dcc23bcced3517e330572f79c769645e7dd2fd55c20", + "0e4d4494f91e79f2b1d1c0e22ebf744ef448f57c951f1b5f4da3592fe60008ab00f5f7e", + "02edaa4d8731b598c24b993dc5bb4888ea3c2dfe2807daf88170982667e69b76a8ecfe0"}, + {NID_sect283k1, NID_sha512, + "864647405c70939fdb4c026bcad53218ba1d438d82c9138f0f0ecac815dbfb242307cca5" + "2c84826cf6556c51082a23f14252dfaea43ba229f7493db2bf8ae9cdb0228dab9e25cf38" + "5b504b92cca94f813acceaa1f18de851b8936c4dfe9e4e17002f02dded6b4c231ea5e614" + "ab46fcdd637b8c6193e8d0c2df1b3d883b97e1e8", + "0aee83dbed3b703cb6e60d51e373eb20e298ac005fa6a572d02fa1e6da0345558ad2a46", + "0400dc25760af992a8ecc108373281bd0d246f95933ec943f6346c1b2b941a03b33951f6" + "2206e35f02d225ba11d2ed7ea392898f78ca0deb2a47871eba6cd2be7440a410d910097d" + "e2", + "1df142187f8b27f4888075a3784aebe0fb7d80b0b6d3497a7adbb88cb6bd26cb82109c4", + "05a530bf1135ea6d599928cb0383f5d391d19be333b1577ee4eb6f2a78b54e4aac0e09b", + "06f3033cf392f698d1a1141cabf138c411f4e20687920f2915e17e805e8657a887c7953"}, + {NID_sect283k1, NID_sha512, + "c87c8f3ad5c28a027b28ae5021dbe8d425f74181d519451f1fead7a1f9dd102fa6785b14" + "7b610610cb59bfa91fa363bb79ea602a7d7e1439f874c5dce748e5c320560c2d9676f3a9" + "48754c72b6db249478b7e19c9829ab4de2e344535d3e0b7c20c272f82556a280ef491524" + "b255c4fafb9c8ecb87b0149ddd9d7bf6159e3337", + "17b65c66514019ff935e9d571a4e68e9ee4463b7b9a754b93f4f7741693f4399879fa8a", + "0405bfb704629596ed05096783e49864a11874f319b4020917f1ba700ddb0606e6e72c17" + "93069194592be64c33c2f63771af0e4100d060e9750031048002680541815b311ba8f7ff" + "a9", + "171b5c698175300b95dfd5ed8d3fd7cf4e19105ed7193b6013103555808743501ee8c46", + "13f001f287dd5c7ad9af8d0105b47caed66ede41dc1e121a602610ce20e41af91cbe586", + "1433d5263d5233c40c0ca526b3657fcce8cb88ee65105b5f5ec82b26e12bfff11c8812a"}, + {NID_sect283k1, NID_sha512, + "ac7da7611e2ade20aad64b418a16e02e79ab4894d758550210eb10013a9b5533132be701" + "f8843c840807c4167c38d21dff168d3baa65d5bcf285b73dcbb75819f8d7a20a849de335" + "e19bae2aab2ca560b93d340731f291599a5b28afd7737460d291105cbba6d0290e836f6f" + "6c1113d1b2faf90ac5de7c64e25206d79380a4ed", + "17d2071f39ba35515a8ec977ddd36ca15983e15bcda626f15af61d87d58114f4c80a8be", + "0406f09c255fdaf78d7d341fde4586526fcdec34a28448c7fe65685a67b6c33564ce9249" + "a3024ae4483fcbe3f823a7ce53db96ef2f6c68670e107e68cee4f358dfa844112d6b2144" + "e1", + "1403078da10f55724fe7b56dfc55990507307386ba82ca8f6340d33769ab1f6ca894bdd", + "0a54a35767a1cc77b2332b04694404fe5a31ed8851ccc2abfa5542b0f5acd9be9b1f02e", + "0577e0a1937172a6d45177c2b328d72f75a08a8a774a31151b89fd451d531348695d870"}, + {NID_sect283k1, NID_sha512, + "5757c472fa2f81430dd920f39b61066a28c870b80e6c96f822f8f19b398c3574d159cc22" + "120454dcd7e97be8211916e4bc8db365b2dbb99a6e597d06e6645046a0abdccbd06741e9" + "c0eedf33cb78d78a540c2a390719acc498331e694e6b0118cf4f787b51c7b7237458a614" + "9d6dbd0a08bae8097e919f970fde920485e9a0ac", + "11504659e12235855fe55220287a101e511d39a627f8a0d414446385d4a88f31507fe74", + "040192fb9bcd157c7ef385d48470c3173ccf1ef9650da7d680d8473d45ab2064a073232a" + "c3014ddf872b711157d121b0a61b88a7eeb7cd260f1f82ec5f62fa2681e28c7f2640e305" + "e7", + "17e10962721f041946bb5ffcce724c9f284b1c8970f974a069c36dd4391adb8cecb8bde", + "1546450d25e2536aa14b8751e3b3e7eeec8a6c1cd967ba0f03e6bfe64c0a59072280636", + "0159c8d6499fcfe8ac7b2e84990a714d7888d883c16c016c4b165f36d62c3493afa67f1"}, + {NID_sect283k1, NID_sha512, + "e350383d04af0f4081bf09b95d1d53040e7acc64e56b13b653df31dd119617b800e0cdfe" + "b935dfa5d94f1d7814688d8ce41021810958759cec76560e1e5c0581456acd1a02016584" + "9b2203f1c11d318d816697f36a86b59f160faeac7dba71682d3c031d0d547725ef69cbaa" + "28345512e38b75ab011911d8924b2d17a857a96b", + "16e4cbabb03215767249ba2a608708b78d7387be9e77f5efd2462467fa05e8dcde2c036", + "040112b7ea5d21df8ce52772a1b76a52ef6f0da62cb7718a467a034618b7ce701a05cd24" + "670649e0ad181437b4eeec87e202d8fab1c240f9dd9b31311284c24d89160b1895be5413" + "19", + "120e4bce412311d3e7adb36dc11d4cc1da8a4b9d6cd5219e772b3dc2b2b8ce08833748f", + "1ff2d53a8e6c1c23807eee681156a146e8f2cc1a8c262850dc69dece31860bf094e7f73", + "1e8906c0bf2a5f922ca271def90d704a1425e5cacc64bc5761b000c7df0f8f9fab51f2c"}, + {NID_sect409k1, NID_sha224, + "f153cc61981a46d8a47d17d29ec157fa93fcf644beb84558db7c99c57fb131dcbc5b6558" + "1ced5ff0b29bfdc66ff703ecdd4290f7c353c02a3e6d6867f33f3dccd1a0b6752b8a35fa" + "143f8921a5078af9c85b212564c5b795da9858c7955095938fcd10c21e35e1abe905e84c" + "8b4bc05f2a06091ce876d9519b96951d08c7ac9e", + "011c6528939672bed3e8c905b7ba594c3ce95f37fb28044f210cccd01dfdb42c10e8e1a0" + "b5d6fc757834ca7f08e98cbc52b0edd", + "04000b570ec1fd09d7b4d102f83cf37129d94c9cf2f982b702c5d1172bae2df558008518" + "493c08dac6f76a6646156f123c4f33e79800e3cfe1aafbf25a5a4536d6c0cfe13a540b4a" + "3c97d4e7bc6c0346addb4b0c32dce089a7a5385e8a3e67606b45e2062c642bbbad", + "027cecbe83853037cf46aa98e1e1e552a96af0bb24e57756d8239fea5d769b51b83f195b" + "7801b562259ee644ab4047764d130a0", + "06a1601e07dfdff9d3b4ffdbff124b717403490853099fb4a00ea98f84ddd64e908f99b4" + "0a2ba6ab88b2491a8d948fcc2f207db", + "0741d27c0dddca3641b56ba1e9bacb0da1fcee46b9e33ecc6990b98cf0db74668ef1009a" + "50e5d55f80e6642ea48689a529c8a08"}, + {NID_sect409k1, NID_sha224, + "258c91524423b5c876432b1930c7b07b56eb5e3945f1e2296a4e5bfb9b9123f800ad195d" + "6104641b1f1970bca553c2032f83d17252e52403a9381c1fc18eaffdf026f7537aa27d84" + "c5e3d6e39e651a92a41139cec5181fe794457f556b390943093be719acd23fa1ddf7ff0a" + "af0479484a381a309b4f681af74bf97caef08c22", + "07e3b714496dd118d8f3f597961eec5c43d0265bf85723b0b9b0616977e0acc2cf686cb6" + "afa6cdc19114e27ab000e762dfe467b", + "04007dea0ceb73b9bfaff7147a36436cfa7955eab02ce7fe9b60dcff3e088c5c9281be59" + "07de3e06ebb2e21dce8bf3ff85feeed50001cfa9b30af20612666e5df798f91eb4647d8f" + "5e1747c1b18adc6b73a848d987434c56d13ad78b775c4096e9f20d4878bbd9572c", + "028a8353c05129dcaa7caf0343130bf2e2186b9cb5ed0a27a565e1c24eb882617cc299d4" + "86be76fe0f8f3c52678b6992288d7c8", + "034299ca2aaaad51f12c90e8205da305523713516ba6e7d245eed8ef94a1b2409b98ae93" + "476aed6c9b9aef50406860b4e490db6", + "01a1adc76c65d77ea686d769dcd007c0101b4cdd0934402fa47dac22f8ecac28fc05c2f6" + "763a6781655ed5e7d84c41157255a4c"}, + {NID_sect409k1, NID_sha224, + "a16a0d6fd57240fe88c7c36b9f7f9040cfcaa9afc4beeb8300818c5f90cce73b819a12c3" + "1d42af33146399cdfa4ed4954d068dbb0f1f342269dd29f1fe357e7224304b67b0f924b7" + "94780fe7e6aa9dfa3380252fe7177b43e7b1789718949b9ec1b943c83ed4399491482f0f" + "59d2cb8050ab6f8b5854d76c50651428cd29c40a", + "0182d1e937b037bf7f84144f7d4c94c935269c9aae7d500aa459a7a0ec113b232dcf2829" + "08eee4c84b8106cd38cdc41db3f89e1", + "0400bd4f1ee6a967123d70d488dbf0fb43aa5e93dee5794b4492277fe559776f74075485" + "0477e275cee9f1c375403a4933dc9869200191a544b98ba954cc6e060ba26a52fecbd1f0" + "dc7c15381004cccb799a9f7960a3cedd02d36fcaeb0ceb844bb4683998d776dc5b", + "07904af733742716366f8ba07086f924697ac8a01bb4895bdb5715081ee89eaeafbff4ce" + "c44eb0ce14e774dba71bb9b091d2594", + "0723b2068957c4f2ac1df69378fc013797a3b071de30b514c3e610002dc8bfced32bd2f9" + "e8f692b653e736696cf818b0ecc1e10", + "058455b8f9abd5fcc28a4ef839ac0245c3feda1fdcbc3c171b6928c6abc931e8b0ec3438" + "2d63e414657e9319d2965fdc9eb74cc"}, + {NID_sect409k1, NID_sha224, + "d02ff569828fd1add21f6bd1c50cbdcd09222e458ee79fd5dfdba3cbb84e9d926fcf196c" + "ccedece77d5aa17f8c8cbf3a9facf0f02c71d5c1c8aeda9d75f6fd7b6f2c5c70dff992ef" + "6e02c438fb3c66da5a503b3c39acbe2a069da457595b542190d818015d462670b0807c40" + "1e36b1bfe05baff3a8ccf8d1f5f8de7840e87993", + "07ed09428f460724c8a5225a31151e031d9949493fff5703369c401762345d002c4ce424" + "294baab22d9e71edc4f854510cf0e6a", + "04007fcd003a8cde5503f5582a42738738ac7efc6cdb3813a00c072fc114006be9881c0a" + "881ca35988dcfb8088f3d07a03943cf23000e7041e666c1bed3b80a691ecff60ad4afe3a" + "544ce58030bbbcc130045e2c611d65f322ec78aff6757cb5df8ad54ee8a09616ea", + "02828c8c4bb1722b0f03262de32ca8a605c4046badb20d8eb9f19aecc5c69f199aa48d09" + "b61f285254425cb4bb5e0763dd471bb", + "06c99d796c5d4fa21c5cb7cee0b7570edc9d7e9d7c3604f5ca3766b17e44bc71d8a74ac2" + "68b8713cc2ea0adc3dc1971c062b4a1", + "075962e0ccbda2280e502559f48c8d37704964f67f8cd3b443b89be740976f1bd929c175" + "560fc8cfb282661c0fa792a5b200401"}, + {NID_sect409k1, NID_sha224, + "57befce973b225cfce7f996fa5a1a43acd160681b88a87b7de04544eb7b6a719718f1ca7" + "f559b6531bfc18fca3836d2be7f7a6e48387b7579a6845796d30e46f0dda9d82680f8c96" + "c5f0989741adef9762c3db763cae2699cb6c112543635e20ed5cfb4b55ca2ccb32d2d139" + "36085a8ff95ed658a54be73f80c912ccfe5f0ca0", + "0390f05b9619c27b800e99aeaf61ef7f6249367d5cfaeae3c7b523a8b29153eb8a77132f" + "6c4412545a842d6deb7b7aea7e2bda5", + "0401cbcfc492a2a6bb8a7341df67ef2bcdcd706afabad5e7ed1d63387ad9b0dbc47ed17b" + "82de6de936752632e43c393a93fc5cec0e0111768994b2dfe9677d9dbc45d4b55fbbafda" + "aa2b2638ba1605c35301fa557d628a87d0a7febcad9f8eb4b51fc9c807652579f6", + "00b8d236a9f8edba7b5207b4c7848807b933b214fa25cfc5a0e73f750d30051264bb9f67" + "02837b0f65a451d4ef24f047ec4e9dd", + "076bd4755427fda22a0f177624477c59de12a12621aac274b980b5e1ce5dc700591eec13" + "dc5bb48c5c8643de287a07a48a6a7fd", + "065a5b0a00548bcd7f59518f122d79c7552ca6097f3867604b462201add5f326807f0e87" + "79f2177f277e5ed25253885ca81220b"}, + {NID_sect409k1, NID_sha224, + "4277ba40cb462860ca722cb4ee71c61836d2ceba18bc91f3fad7dea478972c6da0ebc028" + "15eaaada1d1a5e93d7ab353855ccfdfc94a5742fe18daee2328871e06c1ab0a9a989d123" + "9df2d2d27f96c415e7ef9a941f06c6790675361173cc229aac7045f49eaca207f59c4976" + "19ba32e932b5c1c6576812ee5b146e2cc7de5e62", + "007d18652732596add3db31f7a0ce6020d03f3df58131b0c7c633faf619b8210cd309d6c" + "0c4083aef1a1b6d2a756adad0bfe344", + "04015ad0682962b4dfc8901a0dc77d548ed616286733cd9b3ede937cdf4401ab8b3e3516" + "d466ba43b6ab5356c4e72845767d55d27c017e4de3288ed44b48e7c47b16e2afb513c976" + "3d5bf4cbf9a357c128c94a758e3ff946957df461531def2b8d8411b81f45f0c2dd", + "01a896c30fcfdbe583d6b0119f467f47758ee01d4d601eb698f444ed0f76515c2b8053b1" + "1ae7abd0eef7aa61145a53d12d560d7", + "053b1cd57dfdd8d1802f3e295e450a155c366bdc2bd222d18a4d08369c25e53f1f633958" + "b22d80755ecaf8362d548b28dff1ba8", + "069339fc6058762a99576a96e76f75275f848102bcbc281e59fda26c98fc48a3f1061755" + "e80740a233e03287f510f4549bb1874"}, + {NID_sect409k1, NID_sha224, + "57ff6792ed4b12220d179bc0ea57ff217f322c85bd3676a681d32d7e4a3e0c8e891fd267" + "df17caba5992f68c35ff670b60b4bbdfff82404f6ed996c30539bc395120f97d4d7a652e" + "aee82bd8f9360bf8bb73748b8bbda9f9480eb54f7eaf2609d4259329e8a5ea020521e7db" + "d3ec56f23c849932cbdf2875f5d5c774a9d6b0c9", + "02a91244ea4623b63403dba807d60b914ca3b901a2523244c322f2f11251446d3f15e869" + "d086ebecfa1a39ce304e8b5c8de23e2", + "0400b7ad8f0a52ec21e54e28ef603d76652dbfecc7dd2427cfaaff3d280f0d1f62187d77" + "effcb433b5bd44c3d0c0d26c38d3f5930e0080641bb0163130be4444f79c500ceb8d6a9b" + "2cac42d21d31b2fb29da075bd41c6613f278944adfe92d3c99d494be9d4714e9b6", + "070125c89a1262a88f22e874c55ed149de6d961d6abaab2d13db9174e3cecb8f49752995" + "7058a0afe5361ddf9d3a5a3b923c7ef", + "01a28cfad13969c6449e5a0f879e01ef7dc1cdcd0bc77d20f3989c588a9cad12a4b52743" + "c12f4f6e2154ad963bf234ec96263f5", + "066d7f0b364a640c6c620e3d030448d155cffc9ffd46a6adfa1c13e1b01892463a472446" + "5aba3eb07009fa604f3af18109cb72b"}, + {NID_sect409k1, NID_sha224, + "f85113eda64478f460b60f8084220134933de049200a5f37884da7901471542e26690a5f" + "abc3cbf9e679ade71b6e54d869bc136c3d34cc4a9efcafb777abf046b5ae5429136112a9" + "a36a475121eb1f33f1f43481286fc1ada98a41064a1fa38c89e99a93065bb2a119348a9e" + "452497fd5a0d2b83a66b09da9f47a0583732adf4", + "0068c56c6b5d50d1d4e13d3837d8c5e8ba2f825e121b63e97603fdfe78bb6899600ff0dc" + "87b6b3b6868ad0d2f62b7b7a31603ff", + "0400d9a4f5992308013573f97864c23b98d276975d80cd6455e9f0d8a62d6674f3aee3d2" + "7dec15903da4e9d5908cebeb765ee02c80001f61189caacb05dfb982bcccd603a769d0e1" + "be8f9223288b5426e7f88854356fe825f11a88918085692f33b0f4c61ab09a861f", + "02ea7f0d81fbe3d4c865ff5315d1cc38f9e9a8653fc91dbdf445b62fe09b30ccddf50878" + "3ad87c8a48a6ccd5c9e817fe2977f90", + "02d7847479c16c4cba834ce5962724f185be06cc04a9a8d710cc72e6063a7b64fbf2694f" + "5b62de65d3d347d34c0dbfd5a4d93b7", + "069e32bb19d20e873d0e62b306db4d5663576e4b2fe75e8ec79b7a63f38c8f1007a817ce" + "30612e8578d48c63b04b1d34904010f"}, + {NID_sect409k1, NID_sha224, + "42811e9ee6dc509572e1cddbe5baf00afeb0c5c13e3755b922eee9e210001676082bc9ed" + "c3d78db2b5bebea7a2c0cd2b369226c2b8f83b28f33fb513407ab9d287d14b112d6c3be2" + "493805ace5cf6fd366d03cfb28f4ce3f0f060880db64d6962e997463ba7c05b6fcd1e66b" + "abe4b94afc5c2d38c7050c69571d27b66ef0090b", + "03c88084f8b78446db431bd6e240a0c050813d2a763675b0ea869cbe183df697146cf29c" + "03479af3d34587a95cd257027fbeed8", + "04015a09436de00d8d129e297ea60e04b704c0a8183d64a77d1c527189e25e21d6bb62be" + "8ef5eb2dbd833e5f9c7d5c3e69c9c018820001c32ba376d2e9de28fca644b0d567ce1f4e" + "f0aaddb2adec6213d03bc8cc99f9140005bed3cb6c3c0f5533275734aaec47404c", + "0132f4763959863a32919eb591799ffb8613797bd0b617c73654ec9eb32e2fb86631b66e" + "28e1b4cc4aeba65ba8c75aa1cfacd73", + "05fe0ccbd430d9459e0093cfe2c1d1d3edff8c1ae7111299d2e04f414c46ed2cc88ce9cc" + "9e23e187e87ef551de993f52214d609", + "0557acfe6347baafe031dc16032c45559693e2793d9b6d372670b09757c6f4a3e5ae5e55" + "264137d1859c8d9f8f03c25de409bf9"}, + {NID_sect409k1, NID_sha224, + "b38f76ede7441ae0887e689d556f43155b38dab7cde487ce9ef9a46f2957c830d4d28006" + "873fe2368197a6931f6fcaad755102686a457a7edccc8d344e2d2a9162e3d71d41c09a02" + "2539ae6d404955a6ad748231aee1f974d4f159940532fb3b1fa0254bfc5805d2fc686968" + "56fadea386c542d3cefd1be3af04ca595e54be25", + "051af7b63bf3297ae20517faaa1552f4fde65819dbbff6a52721611e5b7dc1242ed6e697" + "68cdc37ea8cdfd1a5971f06b84b5803", + "04009cd1280a2a79b182ddbd1712dbfd12cee3345a89636d7673a5fc3e1e51400603176e" + "27d538e90005625aacf5cadcc8a8c25532008b5aabedce498476b4c65ab3cdc81f819c2d" + "b670a7236c0357a86f9087b83e7568cc6e5139fb92f81975756d7dc4f48be87df2", + "00bba308a3eee9e3ab6d2482bb728bf44cde9eedde15af7300c57c2c1e6fed2ee4e404ae" + "ee3923e7871a2ff4ba6df64f9d01a87", + "07a9e69664b7b81edc5d47c014696d194b2ca4705b2e79af692b285ec476169d041dd9ee" + "f20f7d496fc49b8597574d2602757ca", + "01521d7cf6aeaf1c8dd54a7776cfac02967983083770346d9768a2629d606be90d58ea82" + "377413a0fcc3e4e66f05a0d05d933ef"}, + {NID_sect409k1, NID_sha224, + "356dc86cef7979148e995fc5abe2b14a7d5e4e42c9b3509b4363bb80c581a66f4e7e4aa5" + "3a4bfd37f9a7eccf75fdd726f348f6a3f779e6599f61bd1d668517f40453b39bcf35db08" + "52a6a6218198f52b7ceda2ec55fca5abe8e5d93af9a42b9ae4de9530c5870211bacc27c3" + "9aa094013db703de2fd3121f08d7e97dbd4e8946", + "03d65bdec48972d03811b78150a06956eb22d337dbec5416bbd8185a6322cd8c0ff80002" + "10dbd1326422289071cab65175f5d10", + "04000c9c1bb0a80c4b4863d78003e21ee60fc553ff72968c165f6eb6940250a6cb7d545c" + "6aed3760e42370df79b0d37c2d1433c486001a9d994828ac09a86c18b9758b3f6b91a577" + "5931a7a6e4d8b052204c972b993a3b420eb8ff7e91df77253a9f5847c5968b5636", + "0156d12708324cd30037753c78225d183723d3f15930f23bae854f121094bfffb5d7dece" + "1fca93bbe7457a2237760aef3db8e3f", + "071466e80e2a7cd8e6cb6dfde259a08619f880a71899c58bd4cd33c29f7b321d26953372" + "0101f2ef70f5b8e8f05c9cbe1ebc303", + "077330e08712ad709f855d92355cfb7d565efd806c6a853712916f7c943bfc79e496366d" + "eba79ef7491abad23086db341f339e5"}, + {NID_sect409k1, NID_sha224, + "06fd39a50bf25e89f1071ff81fec5d1e35b6dd68990414ee403dfdebb792627b6a4ae3d2" + "236c159e4441ff90b61ec87b1592c538515f0486b19e58583394a05e6411e69b4285d6d6" + "589982ac0eeb2c912c4948789cad741183663fc070943389d4e9a1150b8f6088fc506059" + "15e9e24b2d98a1f539024770e4820e14ae42ea8e", + "01f1a8b5f35dbbf82c102df550c72216a243f986f0325920f6186a16d1da74228cc02be6" + "024c7411160c183c923c743354f9438", + "040157ae8d90fe2416f70a7ce0669acdc0b5064ba650cb5416e59e6672e45b591774ebb2" + "f793c3a58e953da1ac08272d0b949e7b50006d49b9784f8423812967b857e25dc3af1312" + "a6ff29579f6acb6e155b6848ffac6fbce51bd2d41a22ef955f690e2487a4bbff00", + "04cc45e00847818397c6abb3d176cb8bd77814abfc253e3b0d799dff2c3e09a5195ed5e6" + "232873f2783c8e670b52a839e06bc30", + "067b418a5395216b83ab00d5568eeb62ae0693af2b0e4d052c6feb70562dcc06ef852002" + "687099dda114477871b924775e8460a", + "061d1e4d713689b2036272ad41571759b52a78e0f8a84d1f3a277aaa33ad558f0b71f3c5" + "a99d403e49df1afab66059db20f9f32"}, + {NID_sect409k1, NID_sha224, + "6daaa41150ea252a3e966a338377307d909b95080e006f13027f2be5059d9208930c5a32" + "9994c0b794ef50eb059bc6c215f68cf42260bd410f9bd86d2ad5ab7179c7c92de4a93a5f" + "6aa17de5aefea815e7c0b78a8cc53c21dc4dee037b29c9df4e12343109283ffd5d8a3b81" + "fba1b5e95506c7e01ac056c86dd0ee23bc21af0a", + "031dc621200cd174193d95e9092ffb86189c52cdbb9ed937593f2cde7c4a0264b9100e1b" + "8407336c8dfb5520d28a18dc4e39a89", + "0400904bb904d50bff09bae5dd21f425c808b41001ac917b022f7e1cda6e46504781a69b" + "aab4a6f0f100c4fff9ced26f871159cd30015cc300b0efbac707635c72bf855de4290f1b" + "8b70c16f9bd0cb771ed5c760ada04d0ff648f118d64e0aff6a6de16def15cf7437", + "07e32b1fc1cebeec3d84f56a67c8ea2b78723e7010a725ca4745e849e573e8e4a4ce11d1" + "af4ee508b80fb5336de3cb53161bf44", + "071cd81dfbacbb67be5903cbcbe402c0420adfa9d14148bea600b178fd06278572d34eb4" + "6d857085a2a4f48cd4ee9109d607dae", + "0347b1029e67a6ea2a45af1f7410dc951db813eabfd3c7f3e2c294b81e1c54fa8c98569e" + "fc580b68007bfa316424ac6eb353ac2"}, + {NID_sect409k1, NID_sha224, + "6378dd1c12c5197b57d47dc46a67949bdd1e0809004e94d49b0234126a08ad5bf8723ebf" + "d132145813136d8b7dd096f56c34248f09a65c34f60c2f80f9a51b3795f3d2518b11aaea" + "f6dd45a323794080b78f85d629e5fa719b6ab0b14c78cd908befeaef0dbfaa08cec9318b" + "bcb376d48b11b68735c9554a45293db5e9239ae1", + "016e6750245a88340b0f0665b890459f8038e9b1366f2fc1326245a88d4c523ec94429f2" + "1869ce3dbf75126e58f77241c99efaa", + "04010184fd47e8e1e4d534ca1cf67f15bc8a80921b07e251c22eb88f25395e08d7a92837" + "74aed204fb5c14aa13c63a94ee691b4ff401252ad972bb8c0b286c222f42f7d42ca6561b" + "ac5e517921bda53e51043f13e711da8a813bb6880678e4d6a16820bab819d62e59", + "07f18539d00152f5b9a75d4f114812b87024e8a8f9c9a8d12139d0a74d87986f4305bde6" + "0375918ff2dfdb88b6deda640e17364", + "0735a15e7bd1f69f4e90739d42ae239a8e9238ad28b63ce291b57cb5b99922fbd5dbb7f7" + "4fcc23117243efbd036eded6ee0f28b", + "07bb3dc77cdd4138a02e2d5fd4f6ff8516b4c95b8255c629132ea8705c399fc60f8fb660" + "ed3aae52db283aabc3626a5559dfe85"}, + {NID_sect409k1, NID_sha224, + "b898d0f9bd80e083fa541f457d14d853bba55b120424a95e1d9511c8833f48444329e034" + "9d68204c4b4581ef1c4dee23ed0a4445727a72e1e6cde422f7c10ae132a3fe681f9d741f" + "da263e73f7cdf10759467c9d76164086abf6780ad474772771eee22d195339bb8f6235e0" + "d992bbe282b13ce4fe01417f507a2c4fa155e108", + "0788fabdafeebb72f6385301e30024b56639e629a400f9c50d402cfc9b5817844f06a451" + "fbda29c7ece41dc9ffcfc625fe0ff0a", + "04009b2c36d221d18189e1617cb2f2ddcd64cdf8a42ba6acc55f04e9722b11588f7fa861" + "a3940820d9dabbab631d7fd4106c60f37e00da099cdb10dfe2d7c0a16ed332b459e7be31" + "f44b0b2d595dc948f0b073ac4e439f24f215fba5ed50aef3702731d6561eee1986", + "00581369aca680beb705f52b6bef075de83ad29034c3d6b2949b551a0bbd100897a079b4" + "9d41d5030e1a6950fdb14d70dbbdb41", + "04f62415c99c8e6750f9c41c31cf050eb58f61f62eb0b0023d61dfc30e7879d4f5a87e88" + "faf55522631a29fb69d16e15c354323", + "06df238f34b5ae664860b43ea11defe3120591cfa371367096006c03e83d372bfb70da6f" + "789665136b7dd1c59894a2fc5038c4b"}, + {NID_sect409k1, NID_sha256, + "dbe04561ea8579672a2b3afa94426a3cbc274b55263989d41a778bcb082da797d84d930c" + "a847a481789524940701cd5f1d11b460bdac0bffb0b3a3abe1ab689c519700de85a0a571" + "494ba0cfc3c865450eba7a9e916b7fa9df55e8a1c246c992e6a0b44b78274e008472bed8" + "d8411633e6520e1a906c5d0c8aafd572fe6f1f64", + "01b8dfd64563dc219d6eeb53f2e3ad1d771140d0960b211dc1f757af5e297dc7548d6133" + "ddb574711d466688f80dbd65a7bbcdc", + "0401ec530638ea0663cd3a9b237dd66402adf50d3094391f2343d7d6c52c1d14145c2454" + "64a3b771e4b1894462fbfaf440e53eef7e018349e244b24c8353811c29a60d8e02caf195" + "a424aeafdfd0361846d5ce5eb83da1901700f00fcb85a0c2543b49a8a3ccbac157", + "026a26cd09c9329cd45ceb4c798846dd81af67759794f5cadab84de19a835f8a0ae49b12" + "853b1e92822477a73891f85acce4216", + "04d83a5f9dad246717135bec6e386ec6b73be9ea6d1a17334ea2003a723d510914167d13" + "6254d6cb64b16ef7eec5044b8f2ba28", + "03e81601d0c66b507a491c530075edc5b09d770633a4c2355b3b1c7df9b200ebc7dcb706" + "be1696aab70d4c6e1c4a7e532284670"}, + {NID_sect409k1, NID_sha256, + "48a8300820fea2ad83c83f7d6b24192715329c3f159d56644e11ed25efcbd3d31600a813" + "b909812987b97d1087e74a63b4494cc031c63492b6615e9d6e5b36f62cb2ef88b9f73659" + "5800de465789f43811165a5fc093ee6d776008739de8de2a84e878748641be8bd52e5b89" + "1c4145f52bbd46644852a43108e93d86352b2a3c", + "0422131829608ff730c24ddf7e8b4a2600eaa9681eaf45432daa7d41fe2fb488fd0199d4" + "31a1ed823801ce21f4f01a4dd4248ca", + "04006ff24eb0ab812303bdc9a23719caa789eb75775e686b9511bf6e07d60447d1601a48" + "ae7f3041cef5aaf3ed2adb6feb422fbc54009a351fdc9422a81ebef5407d0d74b52a348c" + "af3cf6e1c6c2af722c408941de154619a1d54bc23a9dfc0c4964f3936d62daa6a4", + "0313ec63c34ed325d770664aed3bfd1a16eb636516eb686e806b0acf6f0d117998b30fd5" + "2068a36f03d0db3ec13e6989c6f196a", + "0088167f96d807bdd61e65fadaf0c56b623db42b831909d12641e4d00e7bca6077b36cfa" + "759fcbbf087c31f294f20a09e0bdc96", + "01cbd06232b4c73cdd13208dd254ebf9351745ee6196e3a94b9213e931f141e4cc71f3d3" + "18a67e7b8060e11e88783fca0be41cb"}, + {NID_sect409k1, NID_sha256, + "276e3a986ce33256014aaa3e55cc1f4c75fe831746b342eadb017676b0cba7c353b3a2b5" + "54522c12e6aeaf1364cd2eb765a404b3d0aa61258194a30219d76d2bfa98ad20e7e91756" + "cf65e50d7914157f283f2ba3930c0ad3a97532cc747b1cb9c806fff497f0322025a3d02f" + "f407fc7b5808585b91d95523c9d5864efdf7d983", + "0095ae8e4c7e55eb5da01acc05ecfe72a4dcd8ec152f1c8dc165014f70eb4e4a7861aeb2" + "b96c418b2d4db58659e76184e013a49", + "0400a3987d7262dc30e8ec11458ff7091ca993bc61f142ee535d544a2c88a47f96011076" + "19617a5e65cdd6d5e1a034aaa22304434201fc8af29d5134ca9baf92041b6d6aefabccac" + "a4013c55c1581ac05db6141290235ea09650a289907785d282cef1b9efb381ae66", + "066015a77c99015ed6983bb379772bd90e03b9c010e695853ebf8e461a20fc12b20bdda4" + "7eef856f162dfbd9fd4fc1ec49105d3", + "067c49b96e5bfb6a6d625346c3ecff13b8c8b7e59c764b73b256ac970aa4056460000e59" + "9a8195f2d235a75cee8e5634acfa7ed", + "03ce25ef1af0784645f0579da381542f5b8aef377e5b79193314f84853e2a07a4f1aaa4d" + "8210f3a3c249a879cfa3ea8af43a929"}, + {NID_sect409k1, NID_sha256, + "6a4fc1827c3a7256faa8ec6a0f3d23559d6949f8cc20e7f76111dc4ebd59213951cbf0ea" + "dacaeb8862d6baa0cb298645e4314b1c303bd0d5e9893304d4b7fbd36ab05fb6a5edc3fe" + "f763e3a4124d61539eb616b359c5cb55b5e2bec50c91dd95fc39ddf521aa854216eb5a70" + "7819fa6f067b316a17a3b146e7cc2dd517f7d63f", + "006f2075bd730f34df111ebda919167b1d3358ada32cd6747cb3353bcfb814a77ac70cd5" + "1b31a0e538539453bf9eaf9d8b384c9", + "0400bbc153deaec0bcc36c03d24afd20dacd9e78d104d94c279278d04b597ccccae43cd3" + "e64c9e1e58fb5408f376dd7827ede9dc3a015ae0d803acf12d9d3fd41f74357b1c93cec0" + "480f2e586d0e18f15e569d27d3d106e192ee0c1c570351eff1f463dc07d3bea933", + "0314330098250e38145d11a48f5043190c6b44f8572ae57cf83b1f3c4c03ce38b90ed5e1" + "57464c2613c82943d78c938fcde89d7", + "0160b20c370ef4b9cca3f7dd3c23f70efe6bd80751ca021731bdfb0f45ae07e5f2144c77" + "795aafdb0c3a92ebbef75fb2d334dee", + "045188dd2402ad36ae4278a9910648ed5e71d64737651c133aa89850e3bef2207d58ba41" + "69e471a4737962f5fafd50a37a28e1b"}, + {NID_sect409k1, NID_sha256, + "4b088199bd8c94775d8ee508377d672dbf50f6d2c7370e99821ec8f9387492fb2eebdbea" + "473ea18465565f79e2af418555f10c4a527e05a9e20c9c00b807dc8b350cd4ccc2d87e91" + "f66addf02ce4f43597aa258ac6fbe9365cc2c8e8bbe5c884abc929710e8423cd6722a8f4" + "73bb55804159a92a3d8b6661a536b4fb9293bb0a", + "03887d284e9ad17d38bc6da9d83c192a434c509340a7f233cebb032b09ab7c4c6e8730b4" + "a80844898616c9abcd16b753c6bb4c5", + "04012a6d5c5690ebf14ecfa54ac97b73e88e16e757c34c6bbfdc9a3a119f298860d330af" + "295756dec41eedeadc5257b202451faa06019f40ff28bb72af659d5319286fe21f018199" + "52d471ce2433ade745042a47c2dae798199c364ceb99029c2dd5cf57ef5daa2b00", + "035945b45221300f83c5fafbaf0645a7386e209d025b3e1dc367819728f630663fb732b2" + "51a019e08dde0f64dd3f60a10065c50", + "00c323c86e8cc548123d1337936d4be948bd4bce4631a2194c2bf04e1fd714df2c90e368" + "1e41a21d58d9567a5df9fc478dca8e8", + "0493d3f4d22cf8517c301f15bde52cef17c05fed2482f3ef15cdbe32c5f0975e054d45b1" + "3faf906896201942f29e5693bfbb229"}, + {NID_sect409k1, NID_sha256, + "848a13465ddcfb2dc14f7bc0db0756832c22dde1e31e4d8b3ae0dd1aafbdf15e954889e9" + "5d3bdfd6e5ebb6171fad62592c23277a89e8ba53978c9b1afedfef7e1c3f6d9f31077530" + "460b47834b30bbd84a4da601be988738aa815d3d7e72043243a5288751ee08b4815a017f" + "b5d9bd55833698a0d526b1ed79da35ef0fac93da", + "02ea5430610864257c9dc393c3addcd0d8d5bc8aab1067643b08857210464428aa85cf1a" + "e6c743fd2682255d4c8eaa46ca21e73", + "0401e502d3f47823ac7207861855fe6f6aad1fa4f2149bff2643b079da23fb270599f744" + "669b3c8ceb4cb0989aabd43d26d93c814600cdcfc138451bb59f34dc82b8128088b5ae0c" + "b8a77dce1895d5ffdfc8b4be24a206b9856954508b82b80d0163b276683489074a", + "0426b90275d720d19c6ef5c8c74c568a636257740530e3ad10de0d518c4eaad8bc58cf45" + "06cf5cdf7f2b03edd1caadb28fa3787", + "0123ad87c094c4ccfe4346dadad54a6b1ee1bffaa1b7b9094fe2e6ae785a2b77ce3f5e56" + "8e43e8b7fa997206262645f56078657", + "00d56cd5cc64736ff7ea0d9840916b1e1c94e11611f93b1b11c2ee98c79d92a8af1a560c" + "9938dc4bdd0b84252e259ae5669d1c3"}, + {NID_sect409k1, NID_sha256, + "d1850545c04ea65528849973c220205c35eae98826d169348970d1420b4d872ce233af1d" + "aa9e62f6a562544ae3a0633a954a493e9766dd5d87e47486559fdf86229a7c9e1726de21" + "895abdcf2422d438f4ad98d88b45c56742694ad5e11894253270997c049f0f419842482f" + "21c792fbe5613e2defecd485585f1835b6f4c578", + "062c757c92eaef41f5d81169ec4968145b5aa2bc1d2a3a5fd000634777748ecb93677b3d" + "a12e3be33272a8f0a52300f4a5a37c4", + "040139660fb8bbba59e8f4e95e5ee5b97227220f0e1b293901fedcc6dab86e7c5a9d20c1" + "a097ee2e926a934cce679fb8dcd8d2ed6c008ac510ddf735184e8fa9693da264194fb78d" + "a5d1cdc0bf5faadb33950ca191fe233eb8dac8adcbfe15b4f7c09d5ddeef6bcd1a", + "026868bf1764993d650aaebf117521cd146ea20067cc14a5843f726a3d68e41c3fba82a8" + "3d406b2275b3459748b3bd1a8d32f1a", + "05b17d13ae4d9535d062a2653bae4d15b9b859a87c33e175adc3ef04781bced888f3e93e" + "9804b2251a40b9344c0f8c6bd5be0ba", + "01ec3322c5beba4423b13a0528c71739a6b39f7b0e0e58a8274a8386167cadef51e5560a" + "3e9d97447e3d3c06288459fe6569345"}, + {NID_sect409k1, NID_sha256, + "421c9784d6fd507c82904e1054edf9bdd1efb58a0b211340086069ad38b7b0dd15c2345f" + "a8767ef71254ed1bd5c35f742b1d3f4765ff9007a5477ba9e5d3d5a5cb5fab4efc1cad73" + "701d4776c6c4343f42b5d94a9eb78ae428dfe5fbdd8e6ece09d5b75cf4346cf27db85635" + "2225ab04e6ea56661554fbc39916accebecb3935", + "048a313c0c11489939fc0cffc6ccb9f179093c4e13141b92dbbaac441b7ae878c9d41206" + "6e95615174a24692555cbbe904a14cf", + "0400677c2d364fa86b8b0c79af754e675ea3e806d5583e62087e01590b824d2730e31326" + "591167f02bdd29f8178787c4e1ba9d249600e7f78c423baeebf6defe9feb8ada8874ceca" + "b083ca2e71d9d8a3fbe846eda69262a1f5b4a3baccaaa4f2cc87220edb1fa6b6bf", + "012b8df87dd935775b80c62ed6c76974fa5772939a9e7372cb74e033fbae4f78d75b8bfb" + "b82240cf91009b5bef4d63ded04cbc9", + "000590a9e8de60b5cb181a1c11c2f6115c66b05e71e0c558ae203ee18e54de68016f4c7e" + "d2f01cb0cbaf1bdc45218c0fe2b1552", + "0521844eee9168a501e235de5fd19c84f052445fb0e68bba687ace45d8630070ddd3b730" + "34d1d65788a51acf91273fd187a24ed"}, + {NID_sect409k1, NID_sha256, + "7910bab15b6429947655e33a67f41b76f1d7b71534f8904d6a0472c2faded038565272d0" + "b5f51aa915e0d624e9ff48d50ebfa2f09324864f26c29ab73eb39b436c5c459c7cff4d2b" + "62992e3489cb4ddfc05d7366b161a463aa1b782641d93507de43c8cd0a0a0a9d1c644f45" + "54e3edaf7fd794248110ca9387e73ae5d00d299e", + "046e2adfe5d3549e1e6fa1fe69a7cbb4ac9b111c8903d544268f8318b0b47d4b78fe3e56" + "eb5e639ad5382e7cd5bd4b2c3e70ef6", + "04012902439be50c97aae7b40328984934d6c843415f76f3821c8e8323aba96ee41359e2" + "ce5ad3179063ea5e2c7deeda4d728d585201eb59fe96b269cc973b1fe1f3720aa9aa6ec4" + "cf303c5cccbaaebe6ef7c9f5356ec5e76b26b09479d9831d9f5aa41ae1d61f4c47", + "031893aef1baee0e21b50cff7002435b058d73dc4d8301ffdcf1e0c315d18c2b16f282e5" + "b294dc88369b25e2a1a19abffb578ab", + "039281ef10b9a2664b755a2db67b3c410276a424edf7681a5c97244eaac5826368a8095f" + "1b9b76f8e490e2783694d5bcf3565ea", + "039edd50721dd35d1704167e8cb609f309b9ed73d3c1eece181f9582aabc647c5ec8bd25" + "8e5802fb0647372e4c3929cf59ae2d5"}, + {NID_sect409k1, NID_sha256, + "e6fc96e060b956c25d50ad25443f3c30a12d199a47451a49ce88307201dfb15ed816982e" + "8888a28daa92eaf3c5584ca6ab2ca9e14577f84396de2e0ac214b24a2279f5e7b344fb73" + "87e9afc8f0a2b77a4d024a20ce6183499b17096947444bbb753d9b39e5c694239d28f9c4" + "54bb05468d17ab564ee6cea3741747ccb7f108af", + "0480103fd6180a431c837643566706e2b9597de0a1346a224d176a5b2c54aa4d064418ed" + "654a5d39f4773fb509f86473ebb373f", + "0401d39e2772ff3d26c5936ab347bd5a2940ece42b1964f030c59ab453acd7f44716ba9d" + "88f0828de1a4e730ab27fe1859915818c60140b1b66b0a87de29ba2cfa799d944b3b898f" + "e7ac43de68b01fb41464506e2f014e0d11bbc0c24996428c93bc1a5ecee5956bb2", + "06e9bd0290548d35168f7db7fc292bc161a7710b78ac49ec6a42c9423afea1310597e597" + "8b22b4dfa192489323b2317e4714d37", + "055dbf88b6221dff098345226d59d396b6773611ca6e747d26d5d758760d830693df0f5c" + "602859f9caffd0dc3790dfa08c527c2", + "03e679447b622c4b06871f2337f5a24150e76efcef9698c6fd463867508e9d7b803667c3" + "2989a881c98a90998944c070aa58b17"}, + {NID_sect409k1, NID_sha256, + "c8a8a0d41f35537e6fd523ee099eb45e1ad6ab54bed4d3e315e20227db03292e39dc1a91" + "bab439c0d20e36e7fea6ef08983f390a6b5551ac3b4f1895220b2867fab95552cef9bd87" + "02962839bd9b2c72772640e7d3be3c5889d226acbefdcb448432bc503e5a5fe7ae9ae769" + "6c720a799f9882c64ae0385f656074dd8a6821f5", + "013c489e8311c6bef02c8f58903b2ba2a98a27cb935d75a30d320af9a14fa3cbc6adcce0" + "9235a9eaf333dd05f4b2f1694985dc4", + "040046a1c0e7753cb499d19b2805df770ba54f1c6e03611c302c73c72902867c51c1cf9e" + "d154b8f30f72002421029de7ba2d8fad22002aef9c34c7c8216a805a58dd88185f404930" + "86213cb4c85e4d226bb5e892aa37be353d9123e9900f8b0790a43d55a19d78c48a", + "0491dcc881731112ad5e9e1df459c27381a7bf8270f97743466e178bf5ca903971b362b7" + "3fdbef8a75d4292e63e225396c7b32f", + "048425b76147427b8b1969bba3809dd70f0fda24cfb0e92509a7824f027b61cd38441a69" + "1efe213f3c331da8c82f94bbde511d9", + "00df36683f22e9e86c88097d75409ea297d391550440e4327f67b7af1b09141a0e7a1db4" + "0c4b0bf4d60376a6636dbeeff0b6b91"}, + {NID_sect409k1, NID_sha256, + "3407cd6d2845197cd7414a30fc3df7184da204222ffd65c4d16a12cadabf603de8043ea1" + "4f5e6ddcc22d3572dc06dec1a23cd924e1847ae285ecf01754e2d1247876431eb98e897e" + "47412a2330bb32990f9714122109e94b38f82cfdbbf2eeb4c6f88f5dbf9f0ccb47939df8" + "be321dcd9bfd9bb99cac9f94885fee7d443fbd87", + "02419bd2200f8e1d87db848b0379741685e680d9affe693eed49d82931030b6cb05d21a4" + "965f4e1df2045c8513a8f574ca9f2e7", + "0400641a6ac72455ceb142e00d6854acc5f8b86db7bb239a5054c1ed48dffb6d050458ff" + "ea8adb68613ad3cf5977ea7330268abaa201a954ab7d62796e5aed370285d3bf91ddd34e" + "ff3b995d04967db41c2171cb2157d85032c998795ed476c891702d63ff0108f45a", + "02e9928f427a86c4491a47b31454ea7d497435af81c07bc96fa61f4507494fbe4ffc1fff" + "a8faadc2a44c7e69c4f976661750f8b", + "01e8ff4cb8c58fa48aaf61488cc4118df90e8c06cbd88234cc920e5795597ffdc0ab967f" + "a7461082a49de56f02f84cd9d564316", + "06e77ac43fc7af3c126f997fe15011fa87a27479fbd5af48e28ccc2c1bedb6c0695291dd" + "67beeec3f17cbfecefbea46b6325fdd"}, + {NID_sect409k1, NID_sha256, + "ad43f8440071285d01fd79244907803601aff4bc5d14c77483a87cd742144d41c68269d7" + "6c9a83c09d2178bbcbdf99f927b378497ffdc907a75a3b0ad019e69758dfffa480871eb6" + "e1e17c8539373de611a557fad120d0bd147f8debe5f09a02e56fb607e9c1253ed592071f" + "042e42fee39775b407225a2b86a950d81bb7d7ef", + "0722951879a65bfcb414e11712ee9431eeb32319e0ff28601112f89276ffc2b96eb65c7f" + "d77d023f09914a53e2aae2c84652bad", + "0400a0304caec1b68b34c822a2a031145677fe515dda977f6932ea2a3291c6bb4fe8f297" + "b7d3c632f9b3806a8cd26e32403c27fc7a00012d4c3231898a4202f3f251802c690353ae" + "9cc28ae5089e259149bce444d31a38927dcb42ed613d4818e235884749057ebd02", + "0331611e81d3e6e3a24cc829c1cb9087a8c6f64c286e5f1acfb1ba764eea5ca55be544d3" + "cb95fb98407fb6c8f9eb1b3f7ae7386", + "056901f11ec69f91b31f7f41f7856752568b7d34ff3af1a2259fe15ae0b01391eeaffb62" + "9976525fce5d182663b7b23a8001bb3", + "04e89c3155afda2e64c749536392554cc299b70020362e6701e3a649f0a63ae5a5da4efe" + "d5c73b5e8098c0cf47d6f4c45c6fab9"}, + {NID_sect409k1, NID_sha256, + "d61a3765229dcd0b4fa6c57280f851ec2bd54d3ee2436935cd6d94e0120d0844adda1639" + "95fbc4cd9d7275da859ad8ebf30af9efbdcfc31c7c9ef42bce9011d37cf9d15fb018e117" + "bbc102f7d05750e5072f73d02c2f45509a55627a78cbd9082cbf36807759d1fe2ecbb92a" + "b30cf28434941712d38bdd100955d611987b5968", + "03f5b5a772d24bd5454bf26759dbd433fcc7bae4f5c593664c4d75da0cdf9430d7d9162b" + "ce3d7f6e13a344259da5a7d6a1635bb", + "0401ca1441b1f6e13138880196e69743206ce09c439a507a11c0fed069d4ed23676b27a3" + "a337c976c276809ae725229c9001708742013c47b14e3069af070869c12f0f39e35a6f33" + "4d98210d33c9da01ac80057911f5a392fb5c8cafeea01c1953e97d47e744160243", + "01484461d02c0337e8113e51aa7d46330f57d423b79b580a544d372524a853db9dac0c0d" + "16f733b273bf888271135a5162e70f2", + "0256d7ab133904a792987f8cea69e8e3cc674cd3c577f40ef6f12b31f52ac6366a2a3ea2" + "b2272c7bab8be00ca0d17989b6801a5", + "020d82cb9b3b1f25d993fc18b7303db4cfab91c03a97b249176f9bb2aa5ae7f589c74060" + "d25058c7acb6de1e888ff44481185b1"}, + {NID_sect409k1, NID_sha256, + "1f3c23636414ced48fab6763eed5b22537968e6bf08c178b3d31fb1f6ea773c697975970" + "1d94bc1bee7c354272811edec58eff50c93331b22723d460e56dbee90466b894354777b2" + "3b13a37d15a84c762caca70c01518bf34d0c2f072145d274b3b6c932b48bd815fe81161d" + "8507ffbc2f783bd212c29b2887af6d2ffa9d2b4d", + "046bb4a141c9099d531dd23ac440eff1f5b10f7cf34920b6b702311d490d25344c665ed5" + "211d401def24986c8094165d10f8934", + "04013db47ac0e33af0cc7d74f6ce647fd80cdc1849b15c349bf501c95893be5a440f85b9" + "b029713339fb888d7a93632ea4e0bd813601f26f7009cede02e054d6499c9280794184e2" + "12e3e1091032fe0e3c189de26d04aa8a5909569017cf06ac2a20acf579ca81f3fd", + "046e55a908f13441bab63e5327ac346781399d5a9035a72aa21df708b814b67e420b455e" + "1410014cb53e6ab00f526ceb396bcf6", + "06db7a7b03d6a85069a943fcc332cb8c54ac978810374b12eaed4a5fa5342c8eabaec238" + "bfc6107fd03d75dc2c6d258c218a186", + "010a4115161765dd0c22a0915a0d8cc01905de91d3f08c6d2d85a6a92e1dc00904f3be67" + "fef000ce19f57157deb9afba7582b59"}, + {NID_sect409k1, NID_sha384, + "ec69f2937ec793aaa3486d59d0c960ee50f640a9ce98a3becffc12d6a6c1c6c2f255d37d" + "29f9b4d068373a96beadac98fd5203a9f229bfc70bcd449640165ae5128e3f8d057769e2" + "8356e73e35d8e9af7876f608390090892c67391ddfcc1c332aa61efbf72d54bc615998b3" + "be8ab0a9d372784bea48c9fab244482c75cb2de3", + "06f2c6e9ea8109223d9a349fce14927618fc4fa95e05ecf9aba1546619eaeaca7b5815cc" + "07e97ae8cd1e9973ac603f84d838393", + "0401f5a9824584cbb0d5ed57f677caf62df77933ce19495d2df86855fb16456a50f157d1" + "8f35ff79b8a841a44ee821b36ea93b4f4001a88299000c07a9ad0e57c22fa8f15218cd90" + "ea1de5b8c56d69506ad0fd12b513ffbd224cb6ad590b79c7677a8eda47a8bdc484", + "042325aded3f71fc3ff0c84106f80a10af08d76d5e710a35d462e880e015a36d06359957" + "3ce2044537b9f62b51ed4fd2ed8b860", + "0667c74ee2d632aed13cad47e0b46a5176940652d7da613e4965876e7e22d89994bdeadd" + "6b5d9361c516fd51a4fb6b60b537e9c", + "026a01220a1166a4d0172428753e98caf0aaac5b0a09c5a3f11b2645d243991d141f59d6" + "cc502ac44b70e7c48d6b0d7b6ec4869"}, + {NID_sect409k1, NID_sha384, + "70e11efc78d7f079ae41ac3c31c96d3220f4abfe23814a2a4a78d9b1a25e838c3408bd41" + "6062e4b0a5cdadf0c6e16a11e00f59711b417751f5e4b43ecad99efbdb2a81c91a034e89" + "edc94eb552c3eba62808563cdf64453a1db07daff8742aea4a9fa738e1322da316b26dbc" + "a2954b2bc0de6da7518d28e6677dec6ba8af4285", + "004212b7fd913d794fc6bb33e0276e349c052c969ecbf6afc89b28f75a599a9242acf74d" + "ec9f374361ba296ba42a38407f9b7d6", + "04019220ebacedc60762877881262c0c3dc0c8a709fe2ea16cdaad3b680d7cc8aae8617f" + "0acc9b5c9861ede651481f39927a24ecb2018afd77bc7fe54266275fcadc0fe8d4c0dba7" + "a1264c79bc31479f4bcd02245cde991791a7b7e65fbfa907457fb6d450c0985ae4", + "04c01ff477786304b24cb9c95ed70ba376ed6e4f6b3ab2f99ac575c92d3801e7f43bab07" + "2268705d61d3e2fd881f754b9c84235", + "00987cf8ef2b382fb25a6a542e688aa96c098f5d16be0c7d46e961b4a4152c372cc06839" + "93843bf5a04f81e6068843582fca48c", + "036fba32f80cd2e66bf31baf87616027c5b107f72f11fc766b42e2774e29e10e860577c0" + "d3a27a3b49754e6a189680b7a638408"}, + {NID_sect409k1, NID_sha384, + "d922fa515e3bed60b517a2d37cafe4c041e5ab4b5c8d8d4011bf9fc4013dd8abf7add71f" + "cfde5e71d6abe76bd0f749e960cbed55711c87b5629a2c39cff48ed7d0feaf5cc4765e57" + "6a4959521f9a45fcba0dc65ae618826447e02ce6e1cab5ce8d6c96c3211adbb0660de7df" + "7453f3aa726016941d00d8ee536cc106a603d126", + "06baeebb5ffc89c94c3e8b37b9b0904e7c4b251d204894655bf3b1235710215c29820b9d" + "401c9ca7df1404d2d62d708aafe208a", + "0400a0b2a185ad7ddcaa0d8d21b643a14948d3552e25875506d64e236a90d274ad1ca678" + "e628acc208bfe6b56c02df9f5a36aa94ec00fef210c7137237da8ecfc2f069cb9390c132" + "d1c6ce961f2bb3ca925ee727c967f8a46727c8811c94ef66f20836c661a5cd1c59", + "02185be104ad16abfe4fb83de5db067d37ca58510b786b109514debef56cceb4dd6ebe53" + "b25127b85faf9c28b56d6586c26d60e", + "0404831192b4bd453c0a7e850815ac3fad88c7a2da27d29e83ca6f22213635a366018ac0" + "038b1fb1e4c512cac15b614fb69b3e2", + "06f677c361547c91428d0e200dd00777262a138afcd828238d132c56b2c232e2b446cc69" + "3fdc4013f05ce7021aea5b5b2f1b34f"}, + {NID_sect409k1, NID_sha384, + "4f64d0f6bfc542a0d4347576935bd68ca88524ead03b8d2c494061d0658e6c3e14576b5b" + "cea5f2f992f54cfb52b5c7cf1dfc517205e0454510eef1b7054a8cd06ab53ed2468193f9" + "8ff0dd62faf076549ab2a270f259276d5729996c120792c6f466a74ab65035bf38ff2c05" + "5b43e2a8b8e2449a2375ddbfc18242157bd905f8", + "008e5f66ba53e7caad1feda122a80c32c82d2c32a7237b8ee8ead44ea8f2f01d77c7056b" + "9dd60b92d051f060da8532c1fd0e8f4", + "0401a3d020a0c7e3f3fe5b3d9fa6b6148cd0c481b4f9e14dc85aeffff35e62545654fc31" + "3f930ca2e33dced28ec28d0fce6ceaeaa2013c1ac166c3c088e8a4a9d44556e3344e52e8" + "741ed1a8b526a45268086e2fe54c24d398553d509439ad4957454eb68af594e683", + "0095caaf063abba5073aa7123b2c0e1666d29bfdfdfb0c484e18931d756ed0845ea15dee" + "1e9abcbbe4576113a8806aab9476b16", + "04d6e33001933221e9eaa78da5874f639749c7396dae90f2da4ccfca15b50ee9e50521cd" + "84d78a098e0c383fab0186b3dfe1b3e", + "001e17cc7baa3e9ff4d882da970caf7d55b4e0fb7f0cdaaaa8290fe2fc9cc31d51b34b5d" + "cc825bf6799ce22fc95382d46f3f98c"}, + {NID_sect409k1, NID_sha384, + "7047d478ec5282d55db8c19c97af10951982d908c759ff590f27d57e2664f08d526cbb2b" + "fde39bdbb1aa3dca5a8d3feb50b868be6651f197abccc9d8040b623de367e2ea1d20ecd3" + "02afb9e273f4be9f3f64f2c2eb3f92d5e0e375db6549da2a589f0604bc7146562ccefd15" + "995a7c4208f640e7a17afbca69cda4e173380523", + "04ecb22b44e809f89b16abb10be062c89b41ee34e110403e42a20ce59a99afdc22f6f6dd" + "a56e1d9d1b8ce1d057f390db111def3", + "0400dbb4a6ed11f36eb78417269c1b1e9725eba1666591afaffb5582c8b4d5bee1d73922" + "b0164a05bf21a12052171abbdd3130555201eb385afe8588ceaac9f39a5cb4455e02bca4" + "8f3d2242730e0f9e06ff1db24344379f96356531676cd5af234a120f4b61f7e041", + "01cc97a718ebeffed4ca7a9a4389d6b0fafb73ab000463b68b5580267aec203b6231cfb5" + "afbf7ad8192f0947c7f40d9e060ab32", + "021a29f56c31227daf0dc5dc919434978943b80f4b18748bb5f7d6702153b966a0a4af6f" + "209ecfa3aae0e4f32a1b7c6ae58a55f", + "06921b2e2ab81517a0785c4ac3be3d7d4b4c917d7a1e4313b123ae96056a2a4a66d9e008" + "19d8c1cca5bc0d75e4e05477c1fcbff"}, + {NID_sect409k1, NID_sha384, + "1a8384b4771a410663e56eb36c5d9ede8d161a8fb0e31d3f74bcb017b9e31232bb2e2f4c" + "65a2d85bcd1cedd93ef08d4bb4af0095731574ab3f2762788a1ba3bf0ee46684da8d9dd3" + "84432fee99ed3c69213d790a5d81b351063eaf2bda71ca4868ac36be1b571024a8bf0903" + "9b347fa996d5d161078314e24b7d073e05cb3d48", + "051f9500c15ae73d6d479b9f3d2caccc2039d8d03820befc2aae3bbaf65d59bd9cb3c4e3" + "aa8bed5b3acb70a5566047ffad80729", + "0400ee8ca7f55225760c515bae053ebbf4ab23567f95c7091fee2acfff079eda297ec6a7" + "e9d526e12e5976431f9d7e52a2318ddcd80185e2c17705a2555fbb8afbe8e41ced8ace95" + "c83e198be3c7dcdeac8c2c5bdd988800f1194e553bd0348ebe6c29c16f35d50895", + "073f96451cab2d3ca9810e265b3461e0fbe7f32fd6702f06891b97969b133eafd68e53b5" + "26b5e32b0d06ab61ecd75e1bbb21b7c", + "067d55e709f6966cb2082d8021a313850c53305a3bcc926b6f9a122181665328fdc8e05a" + "88de812357be85d22c61c919876fec3", + "063d5ee4a63b1fae39f266a9f826754f5bca4d7bd414dedd16858b5c6ac2d4162e28ab57" + "215c6713320d3d6960f6b55e3f1897b"}, + {NID_sect409k1, NID_sha384, + "43513d6dd8bb0af7a6f5a2b35f99957d335a48d54f2c4019ce9518b35441d4935518976a" + "b1df37110b5b53532cd9e2c66d9f87ae7f683d7efdbe1775a6c15eecee84c6f879999d07" + "06f6779dc158c111fe8d7201983883bc8334f51dec60004eb1087347bfdab20f8f2f2605" + "56681e05fdbb8a6139857fd3bb2df5bc1f2dc143", + "00cf01dc4462cca764f4f8cbef48c51980737b9b98d1384b8de9f4c733829db7718a9b5e" + "aa46a8475c2144fe4454cb8eeb0a443", + "0400806457fbb7fc577497c937600c5a9c4df2c20cf7dad4510e5ad617fb2849bfe6956c" + "3efeab6b805cb7b63bf5d1c94e5ddb456e00915071cee2094efdcc155f893da8d83d9a5c" + "234d0f04f738b7af5b8fddaf1d3aa152fc11894a13caee0009bc106a64323e9dda", + "024968902b50febf13be11821d0d316f2daaa07737af45ce2e855aea6ed58f226d2279eb" + "e4295c5d7674104bff75b899609561a", + "0549f18f1d654f26ca134df4707694e5d9b3693bb34ab5123ce4d9e4c2b2d9756ddad957" + "a4169fc9bcea29944903080f6f5d01b", + "021887355c6360bc4ee59f1badb5325763e9428e60b31a7abed06ef03bff0b1265662d60" + "4dd2e0140c355c70fce1b56ab143201"}, + {NID_sect409k1, NID_sha384, + "752300bc5066d0efaf807183a41725e349907b7339d77c79921ead3c685b616b0eb97e70" + "8f3880fce0136c510c8cb53b22cb424af6f1c34633600939a0647c02d8f9601f9416f1d2" + "4a51657241fb559c25dfba91402cea43bca1a13718b3945b048725f3df560e6717cfc6eb" + "d894e29bff1e0c7763f15b8ea93e67385f059598", + "063a9a565497974c6dd459bea0d1196d74f263f333c31b7e8591499960e1cd79e2ef4cc8" + "709f6d54713f873b16e7b0be42f71c8", + "04018872e9d9410dbde671fc050ab88101f01d146a72d62b630b29790b20fc02cb62cd0e" + "bb5b453a46c60ec2d2c66de8715c32057801b6af51db1c42b743b89be0900d23f7da80b1" + "5f2e7a2a965c7bc13800bf58589560af4697f873b6155194badf5a19a653e63da3", + "01d3278e6e78386146fc15006258d7a62a1345db3c2e44fb8d3bf8101727bef254a9fbff" + "157072326a85b5ef4e17c5b0212bedd", + "07bd5b54d9c6d6f9c87f4a66472be2c4bb7f521ae56c1dd71781d95440b0a151d206ddf6" + "27e5ed3f9c7df2fc914a78454e97616", + "075e39ff66ab0e0d1b46f9679b95d10b692874d45fd6898c569aac28a53569646bb29f85" + "56e529ef83a15c574ad5e1c82878154"}, + {NID_sect409k1, NID_sha384, + "f620603489944769c02e2f902c2299dd5f32b5fb463c841b7e1fc0249a85d2c31684bd3d" + "aacd97de8291c5d39e84d6e59d3dde1b30c181bfe8d31b8d8e080bd191690a67fa00024a" + "c8c1b10981b40d4f88789ecc58fc69b15417fff34834e23453bb9933a43d08afab74d056" + "f366b40ad167b51ee5f008db151a12b467d3eaa2", + "041074dc186193d30aac7cc6d269b938ab40b257d095e54ba79967a377a91b8f73671470" + "cd07f0a3d1db7cf0a31ba9070625e43", + "04018fe9848dc599a759d90530480a6f11d052d2ce21a7275769ba02a61658c3b69ecc54" + "6aa6599e6699353ee1d65ce533c69fb2180192b9c41bfeb2af4f29dcd1c43d3fe72a070b" + "5d085d070acdb8c02f0dba00c9471df1dcca1006709676bc08b8ddad97310e25bc", + "036447681292dc781f7f4ed60126945354ad1df5987266038c5049d698b2ae12965b6fc5" + "8f3e944c4751406087859973d8afcd2", + "0541c22a6cb984cafddb3269ba3ee56af64cb36d03b7cd1693b112a7df20f0422219f85c" + "6820130ad53ef69fb66f3326bb863a9", + "00fa66b163ec3582760b048ba9a0fba9443d7e908b67d749d732ac9b6e89c1fcbc6d3ff4" + "e02a43ee41414b15ead0cb83749e0a9"}, + {NID_sect409k1, NID_sha384, + "5575f610762b42ce4e98d7bcf45a7a6a0d66ec7f27d6b8b17f1961249d905bc7e58e2ce0" + "806d467f106b16285dce4544c72666d08b5e2276cd0c4e13187cbda8aecf57b1855afedf" + "8fad39ee4fe009f204e60bdbec79b123456ec2d85631d382b8a2f2c7634af3992e4707f7" + "b4215e2c9d3b0aa8fb08267953883a4213669d33", + "010820db54ccf0226161aeaee79cfd2797f87702b4ee91adf8543b3c9e79579d0df8a889" + "e366ec1e0718e039b87a37c24d620e9", + "04002eb4e313f158ba7497130e2d64804ac45a7db207c55d41f39979e0303dd2641c8105" + "0fb7f24f2fd2485b90f60985cbb15d56be00a190fb6c81c104164578da6bd4f2b193cd11" + "935e1f87f14e824c2bf8c82c39f0be1a6de3dfc6dd68af8cb14f6a78f38773a7ca", + "0118e911f676f004fe581d1855e5795e5f4ddb33fb8d409d557aeea87895b7c23a513ca0" + "010f98b3a63f2c65da5e3b6c37cf5f0", + "060c7f7c47c16b294867cee3e65eac8fc828229a5d3adf8e68e14dee620e9d4e7b78c8b9" + "02b5042b5f19c94e621c52836c95ba8", + "008d036087b23319553faf835b793c73204cdbe2c1c2463e74de8f404e66ff15ce9384d2" + "6149e7300ed1a109afd1f915edef912"}, + {NID_sect409k1, NID_sha384, + "81cf067411dde2d0ab04fe5fa1e28e6975cdcc571588de60a35bd956a535fbbda4affd08" + "03d244f3f7e6902a2c9a7ef2488691b6bef7f8ffb33be09ccae4c5285265e4957f7928ea" + "5cbabd6823297f59a7cfc9939a49f26bde74c4c69e2d38c1efbacbcfdef0112138431580" + "72be84ed3c1781f67a0e2d4e9ba76a585c17fc0a", + "059d2a06e8bfd5e14a9bc8777958b85be5e97af892d2cdeb0ecbd2d5017952b5042349db" + "5fedba2e26e7b85bbb31ad313d99434", + "0400af276952a1216ac88ca7a194f5b27b7c98c78c42f852dfc1a2cd4c1a477ed16eebfd" + "c90f613b6e264576a35c45f49aef8a564c00639625074b69346dc6c617d624d63ce415a3" + "6154a817f4e18c59a3b09e01589407077b19bbbdd57b04ef8fc2cc23c673d52910", + "002728f7e9b4772ab790af0be9ed5b3eab697c4710249169d2a5782ab3797b8fa21bf8c1" + "de659e3060af5a286353402ab982320", + "02a7027c6f94cc236dc8cbae35f9c38102a663b84f66143e2fbf9a152b1a6478bd803bf3" + "171f933f63509d539a54dd348002ef5", + "0549ecf85ca1bae6d9f0038dcef90c93121a654552780f5583a7d44a73a9360c6799e76a" + "632bc8907ce4626c0439f1518e3a250"}, + {NID_sect409k1, NID_sha384, + "8ea18387940035cff2f37278d321b344231075db43c7fa7fee9bd3fdefe5e8f03e7af9de" + "afa1022eb108e19ec11fae34536a4fbac2e8c8139a081a997c080cbe8f3e2d2a72ff26ed" + "cc5338b21372fa1498e439e4d9bb12d51cc539f859047957b1b1f1fc30b90231eb06b365" + "a4d404a1fd5a0e5cef171fc95b04d0b557d78ebf", + "0405590893cbbe18f4ad99df28b5f9d17f8f1882269aff0b7eee9392859d68927a99c942" + "a3075269ddec6d69c0df2d76ab9d801", + "04006ce67ace45a9cfa0cb45e8e1d0eeb44e94bd7527fed6b563f1069140a3f36e010f85" + "e1ae5ef14d626c78465cae43230090baa601a66a58d87621b63ca662130ea342db029acc" + "2d99bf76cf6ec4e53ba71bde4b00e508d332081055a65fc6f44a96f4e947d729dd", + "0035f09e0c15b41c958596ad3f5c4bd4a3685ac94f19fb97503fb5fa29115cb18fdff4bd" + "104535847ff36650b7461550dacf2a3", + "051775fe1503ce80b3d581ea3e5ba761665568ce0eb7d6a7163d8d025d76002ca7bcf6d6" + "88b6477ae85d09c0d4017aba5ea8019", + "035cbe69edfb6fb99c9e45240b7a587c3805ab2ed6b0399c7dd8dd76187363b2ba1def66" + "b2c3dae4bc2e40d164bf0f4837798d8"}, + {NID_sect409k1, NID_sha384, + "6a253c1aa17b2b1e6624afc8e7456d366ef5b1bd78e740538260f395481148a64da0b6a5" + "8cd53d7e06c691beae1a616547cd95c4d259a371e51c2c0e334c8a5311ae31e4c7af3256" + "86ff9f7a36f731010ee1a9b8a29169ceac36a060dd23611dc9713c615424888bb574ad5f" + "5755d7311bd169336ae986c977a394bf16487c4e", + "062bbb4f565aa0f23b88ab9029d33b995729d10fcfc33ba7c4051e2fbc72f15636a834e3" + "ebfe604b927cdfc89f53c57f36890db", + "040125242acf14c7e08e9f2f0194f734841758b1eea1e37ba80b9855a14100a5f0b57bc5" + "2a0200cb640121d96769e9cabc45362f5600dcf52cb899470943a37d260aa85fe83c3869" + "c862001021660ad09b4d73f7739ad331b3566bffad590534207c6db9acf98399b5", + "06095b4ed8d51e37f6c723648af4cd4585d9d250d7519139f58a93c75f197c4bbd1142da" + "59769a5fe178415c677caed1c3da667", + "041b212a54d4396ddea2898dadc363ac3ec5385c9b3b8ef1ea17c3d2f751d4f791372385" + "48ad759b5e1700d7d78072df3bf84e3", + "0149242afc524b0c3583037da153f539aad85aa0c19c6c70852e3c3923df8c3abd0189a2" + "abba872932eee2e6f45e02f98e810bf"}, + {NID_sect409k1, NID_sha384, + "0f91d0f0139faf3b90a3d4bebd7e96ff6bb6f90f6c68321fb392637d8ab2a60d649a7b73" + "64ee6e4e274e1a8d342caee36cc11c56c54247fb0a8e8ef81ac4322b454dc9a195dc5456" + "7bf47ec8d4fa4cd32e76d78ea2d08bcbce3edbb68fd8597e56d5a9f2df4e47b2701046df" + "89615961db601bd8204584a6a6cfbb627e2a1190", + "03fad7031cf8810544a3e4bd1382c0a2e22c5a9fe4804ce67b27591fc516ee81dbac841d" + "399327168aa6abd79e2b5ef85df1528", + "0401ef0f918c683be57eeab95d5d1850bd492ace7f4b37785863647774a028e963ee2c0e" + "ea801838aa8217fad75c5780f1c36e8d4c01d5dfc69bcad46bde5539c58ebc89e1db2a3f" + "65069ed963280cc2cf228b2568bd53c6e0e164d6b63a5d3c2b8e3be9d5139a62ef", + "00eb16d784e2aed724cf1e4b72fe76b00dc80948c07f9c7524eb0e83bc59c12a8ed16fa7" + "ff21dffb8bbaa82925848a19c93884b", + "04a07e79b4f771363ad4c46cde0aadf3df4a233740a89168c97b54559029c51dc2c79b7c" + "c94a0e4e3d2f94e376fe47993da28bb", + "0360f559d37a777119b2aeebf00cc17e2edf04a2cbdf74366f5d34368d2eb2c92958e4dc" + "2b7453d5a509407a4d4643cc0235f57"}, + {NID_sect409k1, NID_sha384, + "50c17c1fe4dc84648e5c3c3ab8f7c971d4c58d8d56d2b5ddd92e35e6792111ed8dac7644" + "ac8a07ca8bb4e38e071aa47b22ffe495e9083f9bf781ac1b5fba571862c909c7aaa7b8d0" + "5ddfb7ef61c99700de734d5658f44ae9fc908c85a2dac8e7f854d6d24be805fcd7f873a9" + "1252985c5c73129c60177ba8fd99daa87b25a073", + "03db41b4f637fe7977c90e4f1a21799baaddd1826c667102414877138436cfae1b995984" + "2b8097b5276f15f2b982ee59df263c8", + "04018eb25bbdeb41c5d14edc675fcac8a523acbfadd6456632bd593ab5f694a7734b163a" + "ceb6e6b3d8ed83fa1cf7b5adb9871a6626014975abca1cb769a243936e65123167e53527" + "9197a37d8c92c7b138f31cad4e95c5f62b06f438f94c1a61634b34be7b96f09fbb", + "055fce73c9c385f007256253281c6b9d0930d127939026495d0a30f25f77fdb6b334043c" + "39fad4223852f7101fce72746ea205c", + "01d7c26e0236afeac032fc5f3dbffc8c03b04417b514adc26d6a4f697b4e87a008d5ae97" + "544a274c25ff66b98111d7c651c9381", + "07954191fad321e7f2de95a87d5a9c4527e658ef85faa6622d5f34f8bc2b84c881ededbe" + "0281456e9b70eaf7a207e253d216533"}, + {NID_sect409k1, NID_sha512, + "3583a3226e2dc463a462fefa97024e6e969c1b13bdc1d228e2d7823d9f7c09012390c253" + "5baf086588000e908309090daac6e6d2b06d2ede6fae838ed47f30b5b481185f607a3586" + "f6dea47c8f84e9d3b96d5b0ebae2462fde1e49d84d36658e87dccf5e30c0937feefd8862" + "dcdb1a1ca373f6ae41641502ac54df6633a8cec1", + "065b76c6093d9c49591293471286df1a4444e60d9d06cfa114e175afb5f119d2abeb273b" + "0596019a0ec5db5b5869f2cc827b364", + "0400266321fd15bf6b1af862496f467069819e3860f74a07825e68f3d023985bfbb838a4" + "9b6a41b6515cacf404ebf12ce0bd3d6d70001593c7a8e629599e63d3282cbea780235182" + "77e6731fe8d88cbe525ded554b51a7f8803ab9e330f210619dd07df8f67e1066a4", + "035682af873829e16b72bb86f3ee99b5d9f052e4a631b07f87d3b361c8d8260a877231db" + "cb3f4d461b4a1d4467824a26a5a6414", + "00a483dc2dc6408c256fdf63b04d71d3c58a08db7167da217f466cbbfb2d68444c10e87a" + "9a1bb04efd71135c00226e58414d407", + "078acfad2f2492f74b0281d53e4224c7544588ca9ceaeb16bf759b20c2f3d3ed69c64615" + "c247213d51800569dc8b00078de68ef"}, + {NID_sect409k1, NID_sha512, + "60ca58462d53d074b370127132f4e59f5eb8d15594dc721a94286afd082a8934e52462c9" + "c1c3910f8b50d7aa3671dafa5972958d876d7992467b2fee3795a6f9d8a7bd3003a8582e" + "a8c003aa1e02c08ab6804d85bcfa13a815d75c938671f0af0706c68bc70a6155708ca755" + "cac2fbb68b2952208d63e0e2e3d816f04c61bc03", + "07e9993f3fc1fdc4c376ef77ecded96006ac1159740bd1b2dc6ae3d97e15a67383f1fc93" + "1e460b9af3fe14a54e47919667ed06c", + "040189b82003b546f94c066963239c7a590e064b88bb4548678853545920e413f2be3212" + "5e40efb82d2c9582d2d8269c1d408a7ff0011583b267727ba6c1e17a244ba7acdcd83698" + "6089860ee312b6dc2d88a984b1fa232eb0419730db8fb94a5e077009c1d55979bf", + "07574dbe04e1ac2bb34e40f32d6f6db364a95cc5770b79888d72b74bd4dbce9fd91136e9" + "e1152424d76688dc995bbf2bea34175", + "009e42a63b41877e200829356a2191fbb6f2a9a234be58c76b0852e4f348ca61e7492f90" + "a37feb8b95a6dd6df9d1a2e61c63b4b", + "01499fdcc804fee8193de080b085b7513eb8022503de5f64dc12c04c0ba24af30e30f63f" + "0e3eac2c82eb20c6672336f8732ec5a"}, + {NID_sect409k1, NID_sha512, + "c749f9bb92ca9957ca6d0124206ebf65e860ff38a225e241950bf4526cef3f4fa9184ec8" + "3f71f813fe852dc08eca6b45b14fc7f2c6a19296529bfda007efe9d0d26492de2a902b45" + "ed39603e22f0a763dfa5deadd97ef6feb859d860baa2cfd1d066c0be0f9f4e0e2fafa69c" + "c51b12e814ad2e33b0acc0bcbe1df8cf018dcd4f", + "00c11e2979498695c660a2bdfd105b115bc4ff8664ea15cfb40c725406c6fc9a13027bd1" + "d72ffff6258f29e4e19b845243444a7", + "0400904a9bfebc23607c7c89b7aa89315343852cb894f54fe42ba4225285e58c6bc318b5" + "5691aa6a6ef22eb11f44cbda89f157d7a8019cc1826280e54832b455f0ce0cf89bdb62e9" + "73a8e819fb776b1a202b4f207b8baf9072929c9e3f6a8ff996d6d529de899b024e", + "070fe023c9341df9348f08882bef47bd8dd7f13db7215d1cd52cdbe7919031a62455ca96" + "9a8cc6db0a05a0b4befb47c142c4f34", + "035e7130d59d92ff8c4f264fb2c346e052bc305c7f57549a0fe43cc7cdac6aadf2ce1939" + "222decef4e1f900e3c2fb2c52bf53f5", + "0008d5ec1ed2091309ac11eb88157ba5122bb9b5c858a46769a130f7a941818445664ac7" + "8325e0b6d2a11bc89d08fe0e87a5bcf"}, + {NID_sect409k1, NID_sha512, + "4de8414780ea20f7943b1f1adae5e3962d96e828fee43bdbf2831bd71bd25df2976a3be3" + "7a7a667c7fbe1200de578920090d131a750c9bc09bd95b261234ea8cc25423c4ddfff565" + "6d6b32da6e2f6f530e6673a8660aeca31273bb9a3a21bbd7031a2fa71ba37c004d3d1c64" + "b2c0798783e47b2efe1a208959ac16e35d444245", + "068dfc23c6635bd1fa1076dcbd456ad6e8df7ce7c1370fe275803befc4ffad007fd062a6" + "1cf1d50b93aeb9afe1aab47a65af82a", + "04005591f8cb59ccea17bfbcb74e69f05218d16175f0547ab95f507ef8d7426c077b52b8" + "2dcd06baf6eae7a66bc72422236e589e420126a01d5c2331a2d00949e07ea9242ebb50d8" + "30b0aaa74bce841d4e43bbaa9e9aaa01ba25db7a8a2f4d72977c0f016f625cdebb", + "070682c9659089a703dd9fcdf2f3fa0c1d1ef5fae3f8f1b3dda55d9b611770244f892689" + "8c904f6952c1847d287bca21db4dd59", + "02734111e3b736ae795929f835701bf290dd50c0fd625738ab2769242c1403197a3f4dc2" + "9ca618c2e292c6bec6dccff71adb698", + "0755292cc5363fa74e0193a806879d3a275b4beebc97250fb230efbb8364b2a30098c048" + "8bcc6e20449622d6a5fd2ae24d7abe0"}, + {NID_sect409k1, NID_sha512, + "a081d54232f84bb19dbd52ec3812748e2e6486f6cf1b177b27929504ca878036547eb435" + "31bb5b3edc81bfe105370427e92831d2239cca0106d031d9fa8da9cf89c6fb6401377d59" + "36b6329ccad854e5567181b8f16a37c35f333eaa0ffe91d727d183fbab935fdac2d5670d" + "afb3fba59e4fa2df1746c58dd8360fa08af7f4e6", + "040807fb888e1d9fd33604546656a493629d94d4a0a9de2608962225ed158167f9e2438a" + "be2d12a11e2adb6c2b66ed78215b0b1", + "0401787c0e6c55acd69bde9b0a84d6022796d5b5c60fe5357bc0fa4386c16f61b38bfead" + "b6cfebee7e7701bde24418b8b5642afefa00d9579d271ba3d5e2327eb863cfdca3970700" + "55b97714e385ffc2fc23528f696dac1a4d0e535641f6c876f1819f2672a8c31cdb", + "010b8f5356d8a029659492c444876f1d274b82681d4f600cdb5fb2afde13598ddb71676d" + "9ed86e83351c70678886e8237a865d1", + "0304f43f9705d189f47ee09a079494030b0756993a93e4c6ee6b5e664f63431f99e50574" + "7c24377e5930f13492483e6cd06ebdc", + "0580d4707c97f0330f908042a6cb2a2b313f07bab34774ee03bbee63a4ff881b68def47c" + "d300fb49deb49829bf486d1efad39b8"}, + {NID_sect409k1, NID_sha512, + "ea60266f1538565b3ff42fa4bbfe319be070329059c52c8bc04a7da2824f209c1145a05e" + "551ea59ded8ca8439c328f6907da4e81d658937df614be98c7b8648818ea80ef40e49aaa" + "4431f4a211d62acf2611f5d60c446b2b25745078c643859be1b12b3141a09ab765dd63ea" + "1f2a2df015eca0840087a5db378c4c4cce76cba7", + "033bda0a02badae08fe40c239b9d59e5bfe1c4d4b9b7a5acda6790bfd77ad08dde5e93a2" + "da80ec54a7f88146d72218bbb88aa10", + "04002dec536832c8acf007daa66a47e4eeecfb6991a359f8c412299ef56c6ca2faaf18c4" + "db708493e84786a7837ab74c5fe0644cee00906c8f603b579cc2384e0803d31d577f7c91" + "c55406db3b2db91bbca323fdf3cb6d010617ad1aae7bf414c4d974f22e6f05af53", + "051e8d027e62db2397e4a807d98a24455a76eff6dc259ada89e794dec1484b44724894ee" + "ba842f60b73287642570460896dbe77", + "031769e6777444095d934d05dcdf82405c43ae91ad5fa9201568ae2aba25712717f1af2b" + "8f49f6eef373237bd70c34889d0d271", + "0023498aa50ee095f33a4081bfd70a9484089c85fc7a4569f560ed67243745c823cc0217" + "d29e2938f06ba9c8790650d10fa5b1e"}, + {NID_sect409k1, NID_sha512, + "82f38c9405ef0d26bcdd5b3fce4fb0060c3095f61403418e17c337933f0563c03691fabd" + "32ab5e896c593439e7492a9970ae325c67196d9e83fe0f9780409a930326f7e6efae035e" + "f8c321cb9ad12461edd5cde66c04739fe079db65406b3c2d22f2d04b1a4335285513d4ce" + "b901d2ca2ad10c508302266c2cd6079ff14eff4b", + "04ff431769d26b8837d3e1295f5464fe82be29edefba76323e92078a6483ea0daa962215" + "49102509a1bdcfd46a5a2e5de10c39f", + "0401beb74d427d849705cf26e26312446f27a7c5ff26ea9dc1aadca763254fe53a622de2" + "9cba4fa81ee2f9e0319e752f72be46cc7e008dfcda35a00ab77c3c47dbc05b0678cf561f" + "575369507097833e86e523dec879e0ae9583b4261f7a73c9dbd417accd4ae6688f", + "005aff3ad332af23e0dc38c16853252825076d602ed4c6d947be751af5dff3f59611e616" + "6c31740b5e5a167260adf2a5466289f", + "035c4e8e1858b9694cfef3e864ed959638ba309ba2066a28fb9d0e02a66cd4c187dc6fd8" + "ca5fabe68acbc2074168157b685aa6c", + "04ec2db89645018f9845b7ae31b8418a767e3570d401f41db18e424fe861bf09114d7860" + "6a056617613447d125a283be5bdb6ae"}, + {NID_sect409k1, NID_sha512, + "d8506fab4f681ba4ae86066aed447571eba4fe04e6585fe3be6af2ab1000a3da68c5b0c7" + "11a85ddf3a40cb7c8944eef81f2094650459e14f5b848e6add7e580b0198070f873eb3ed" + "5d0728eabd92bc1398764b94cbb4cdd7cc2027b9762dd10782658cd9e8a5022ac062fec5" + "35d892198c8a387b3d2b6f7c92b1af6ab7dd9e4a", + "03f85ca1169ca7e9df44cbc6bc7d2868c9d94e8f8b699a42ca492dca0914eb5789a90322" + "18dcef7f95f959c9554a1cd83360439", + "0400aa3c77dd4324258bebe7da5338c772d3496e3fd0e57f455459542f1a1c5b47692f51" + "c3815c9549d0c23fdc1ff610fff6847ea8005e626d6aeb86dc51f3b359b10862cd33ac99" + "27e38127f7f17426f2369d62132a2a62fb6b8354c5ca0b3e5c7c87117b4f777a0e", + "0495099cc73c9930333ae3f9d0b7057d7c70e2bc7c805c0c6a44404739b3fb68f9fafa53" + "033b54b7ad7bfaf4bbf7baba0dd5a0f", + "005612fe87c6a3a164d269da902aa43c5a4e0333770ea6334f05750be3f31ee758d16929" + "1e15b1540d40b60d1bda279599f254e", + "011a633bbc058550a597585bbc9f33099eb517795600b019255f649493d4a6dd533be8b0" + "965d9f9d9698677491bf929198ff34a"}, + {NID_sect409k1, NID_sha512, + "b3f30d34f252a4c26f396079e773142bf61c0981d912333ade3de4e27cbc72cd8a16b318" + "07f0c46116f87accb854487d83ec8c6a61565e6fca145eab70048245db08616779d7047d" + "b63aabd90dd15acbb05eaa510072c151c0518f1b34582b95f43ec7b9484b2993c176de79" + "e84566764467f72392ef31619426d159c91816d4", + "03a97deb36d68f81f50c8829d412ee5de7f9d775633cb69c09dac558182039e275fc2582" + "40517a7c4aa592e364765321f27cb12", + "04013f0f4c16a47ec3a46e7a088c1b6a63ef61eaea46aa9b2c532d8df84dbf64991bdc2c" + "81ced3635e562d1403dbcf6aab2f8aa9da003aaded3b99a454b820fed989dbf6430ddcda" + "67db58e356397d06aa137fbdb365ec43994abd9c0a9fadd2887da9539bb4ab3c44", + "06620ad14a5835b9e9e104607c317cc599416683a60ed8865acf78ae1e861246567cf9d9" + "1f759c2d4c82cec835a4784d3c231f4", + "068faabcb7c716fd73f129ebc6625f5b4660a88e47dc7dbcebab321051a61e46b74409e2" + "b0af420e1671ef4efe04973c43471ff", + "06851e5da033da0f28a89dbbdabe93ef11331c55cc03d5b096c0522370be681241fbe71d" + "1349f219ce57761c85fbe208ac36a36"}, + {NID_sect409k1, NID_sha512, + "0fb13b7c09467ad203852738eda5ddd25b17d330e82c279630b0e1f0c86681f67f6e537f" + "b00da9419114973c8559306de58b0387d86e52d821d982a60769d2f15fd5ac2ee6dc55d8" + "ac04ee247282cb2866b8cb8b4d7b4b6cfb33bfefdff09a73d727193e5fb939ff66ac5fcb" + "644a44f9083a790888cc538c5eb435243c6a34a8", + "03b1da0ffed24e1a3b5ba22bd684337f6b08053591620541bdad50c761d66201a2cf21a4" + "cc636426456525b598e96baf97d9851", + "0400116a1790e621272b56cb4579ffe6ab629a2d077b779b73e039d74f58c476283c110b" + "b18b9c9ed63de7288dd678064de68b7df60122b43afccb88982f2e07ff35468178572bd7" + "2b644322d9e1ee68f78880169a83a5bb88c6c994762a7e8d80e09333487ac30fa4", + "06d7a24f0fcad549e9c36dbc70ce264a75eb37b74db98b1f6a824ad1e5635be9818f45c7" + "544927807dc0fb3bb5fd38556e8656e", + "0232339b50bdb772d15f2cb8973f6dd9397af45cebb69adfc089bb802e9c4029dfb2078a" + "8a26d7197de10638ce512e5904ccc5d", + "056add03244174966d53105c570e8fa660ae8c5d53316a24cd26f24e29e4b7459f4c9dae" + "f07442247b63665f97a3c07d91a8706"}, + {NID_sect409k1, NID_sha512, + "f9b8124281628cf4e1da0cb4f021c8d19d815644cd80c7c8de4cc62722904ec4cddd26cc" + "4891f30b15098a25ba6923c6abf4774deb6e1883fbb409862f94467e75a725e7154be860" + "fd58347577c83adbf18535c54b102220197afa062cc1c84f6094490ce488af4a08d2c5b8" + "08a2572e18a59de96c87162f88413795351cedc1", + "040bac7e0d3b54c7753c79d43469e310d876015d948fac4e3a9765444754476af72330e8" + "8d79ee6119697aafac8435ab5690754", + "0400bd4fe8daffe47bfdfc43deca20b15da7c999084bee8983c62e3dd33740143c38d8f4" + "32cbacea51e6f53994265b2d8f4c393f6e006d88c33c31f4e143b13bedd5738bc1191fe6" + "815a099fb7b44617fdeb08daa0cb74edab7f9a8c67ac1e9c0f0fb21a9f02ef4b6b", + "020f2f6fcb3e471d47f21fb15301784f7cf3632dad3627a9ebfce587c0097871eca580bd" + "a051b100f991aa6de5edd3a7684e839", + "014f8884b5107e9ee5cf6f5d137ec9d59a85a6fa0431053d58a1400fbf0d518e8910179d" + "a1160de2c6cc8ea8ba8f3af8e0e1f6a", + "019aa8d55c8d876989f9b9559db0576f91c4610dc9187c74aae2d4f212cd94d90dd81ee4" + "483d88d866aec1ed469c5e3eed7d90c"}, + {NID_sect409k1, NID_sha512, + "4e3cd6100520db050af0daa69fe3cfe6603a223d4f2a6318fc5836db8640d4c7fb80bb78" + "1302036d2d6fb8e552b4eaef3133b98ba2d36b9ef0b86243b0391413c73d48ecbf1d1917" + "0f1b3b781b35ffd316afb1d55d1dda8e91eed5553780cb2714a93e7ece698b832e853e25" + "89c5ba2b8a997bbbbf625071ded66762af8cad42", + "025b7eb3bdefba3c5134438caf968f615b315204f348006f82e8d61057a8a8a853230cf0" + "500f9d0b8c1551a59b9184862dd2ed9", + "04017d2029cb711e52df416c54b63a95a66602a1d15c3761d91071964e0128c91ea766b3" + "d409f72d9fbb5161a459c3fd7990f87d8801e71a9c66a4d4dcf199aa329e44b99f80640f" + "c760fa7326f29c273aa13b153df5277feb3c049e407630173fdc9f735d7aee4e10", + "0575aade2692534b5a1a17d36c36973d24dc501c75c3b0b497a3d2fec80c67be7107988e" + "47199d4863044fe9176762497b5aff3", + "024c6004fa92cad446b8339917f517f04d22db47b3f9bdb83d863dadb5431866ce21b13e" + "780495bd66152ab33eeff8830cf8538", + "034aa568aca7be851d276d2235e42b6624df1cce2b97f6413dd3fc506f0f18483f95f911" + "feb0eb220415ac593f2c93dca0808fb"}, + {NID_sect409k1, NID_sha512, + "5411708381a65bef4381c9e13a04cdd5ba0c15829f7f25ccadf695f635384d8e4704cb56" + "2741747831b33852567f42fedbd190d2980f1bc921ce01c17d659d4bdd7eb787b3927fce" + "e659dd3b65132496c687f2249272a473d46326e66b3cb78dafbb522390162c168f73bdec" + "88adb145e6afecd561979846ea4c8cee38dc1686", + "0673b3a2985c95904732632e5d988d8d437a60db13215bb6aa880b348f011c609a1e8604" + "61427a8cf0d622abc47f910f5c97ffa", + "0400c4f1c0cdc44d867ed38d093eb967bfe285df897868c83ffcc0c53463e3852a1b2039" + "506d9508bf01d0d79ae537e42fa2070a5e00c2bd9343041c2c4100c5d795ef355c796a6e" + "a7954cd729e11063b14a27fc2c3a9ffdb3647613b44238eee17d9cc49e8c5dfbe0", + "019a9509f5f6d947532638a3c80782b556c553edaee9ade91e457f7b5d2c9055572fb116" + "f52cf4d3a2a0eca72fcb32b2f58e952", + "02def440e968d17d9904c5640619af2f447f74b7c067537db4a15be87df4fe68f4489704" + "7fa8af146462ceed4beae36d54e1aaa", + "013d5b00fef639c556d66420090c2cab1edc57b7257dc35addd62a5337300e94ea7ee116" + "e06b744da1b575d90da81e8ae2cd424"}, + {NID_sect409k1, NID_sha512, + "23757fa60fcabf543e603d8b31ef0cc99b3ed16b4816a84e01dbfc858872fcb79fd03d2f" + "8a1d4f28c25dc42a39e20c34f81ebccda1682ee9bd22fe323e7f8ea90cf4a2a6ebb634cd" + "1153cdc35f7306f28a2efd822bf23131baa1543d0ed5ab4c8168d3199983fbee117085f9" + "0550ec3ffa2b06070d3add1d707fc2593285ff58", + "00db7dcac414010b816236cad584dabeaec1da76c97182d1b62f87bb7fe2946a64d10430" + "571b2b29ccf2ef72c969a9f045f1f3b", + "0401f2a6cbb9c1fabc8db2848c74d918312267888d822b7dfd1634a543dcca4be7c99723" + "9f6281d1d8b5da9adc694706b7b19cfb0c01bde57a2ac15f4e6b26a373a624588a3379c8" + "eec758f3c68695e2eb1856075d90085f43283d982526c5e57913cca5e2b4169f8f", + "05a3d856ad1d6164993cc59e70f8551e2408da92c7e6cd52df51b37dc22e9ebc42fbe6b8" + "3c332eedffd4086a382056175ad7009", + "0489b0344ae4278a0376dcc64ef9ba8595bc2fd62ad22d42fb431d2863d8ca353cd9e59d" + "e4ac10108fc247d6ee9ef643f6bdb3f", + "06aa27335e15dc910515385764387798cd4a9b4cd6d99d7c42e07fc04e2bfedf8dfaa7bd" + "a396f88253357d3e2545e895d9aa3b8"}, + {NID_sect409k1, NID_sha512, + "b976314d2f066f8893307a726f450dcf2cf865c170e90e6908ce9787eec48e1e2119a731" + "b2bec3c12fd4e6282a393774251bcaef91af6ce57c63a8b45bedd72ab862cd169b7c84b8" + "f6a72084ff823a96f2f8eff3483a7ebfabdabf0998377c5a6836d88135cf61c65a0ca7ca" + "57727da68047dc635c17ad13731035fe9a6402af", + "04717efef16e1ae267e155aa1daabafc68515aa391dfeb73c13d01f3132bd22c984228dd" + "dc4dff4c39979e7585acd3f730cfcfa", + "0401526c58a3de46c95cb0527869f7d637f9441cb5504e6a01f339907c6df3d079361a41" + "571cf0a0f11996028a41682dab5decf78601581903be8a19bf8bde1d89bee0d436f061ca" + "1a3ddded4b7793fbc32ff852671103f34e16d469eacdbfa457643d1b18dd1c4107", + "05c846bf61c068b421efc472469ab1ff8d9f34847ae0065ba6f4a000be53727b3fcf97a7" + "80362566e13ebab84b9ed5f0cbbc225", + "00aa138e742ae81eafa820632f31e87bdcfce6b909d85805e46d87d1cdb8b968907470c7" + "ef5806accbf6245628c70d264fdd95d", + "04df507115384327f7b8311dfd1227c19a6124cb9bb5901bed45d8d5ca45db0903f53e7b" + "bf136350e66bf2b4f3d978f8bc546a5"}, + {NID_sect571k1, NID_sha224, + "964ad0b5acc1c4db6674e86035139f179a9d5ec711b5bae57d2988456bb136d3aade7ac9" + "ef10813e651ae4b9602308b071d75a934a6c012eb90c5eb9b2947b50fc97b1d36c5bf9eb" + "13a7b06c94212c3dcdab402a563262298defff62b836ead1f78f9d20713710fb48115cc5" + "045ba15140fbb4bdf516e4150d830d02cf30963d", + "19cf4f4d06825499949f9e0b442586fe1bfe3459813a2b92cd8de0f775a4735e02655702" + "ead8e60824180761808d9e816d60bdb0238e1e8039ca7bb63c92e1cf8433ef447e64ead", + "04007b9cb1728cba80367b62872a986e4fc7f90f269453634d9946f79b1fedf42ca67af9" + "3e97ee0601bb3166e85357e8b044e39dcc19e608eaaa8a0066ffc48aa480c0e1e8d5569c" + "bf0580858ab9223c2b2ea58df506d703d64b387a78ef43846894e7a2e47c02252bd2c1e3" + "d21ada7c21d50a08cef0f9a189c4e850c058cc57c37918251b5aaaff2321d7355b6b5556" + "44", + "0726d5e317f888dddc94c73acb14b320ff509908052868f8c6b14e531ca467c1f7c82874" + "76674efd0d636ca94c24a69d15210bb43a368a11d3453d69ca80430cbfb8b6e45d8f21a", + "04ec6205bdd8f7eab414110ed620dd3fbbda4cb3ad9e5559a114ca9344782847621961a3" + "577cbbe43d94eff6ffc8dd7dd09c049239f026a928301ffcddcc910bf196853edc86d31", + "16535b1af98a75b9bc0f122ca3ce23a01800fa33b43584a94fd8a8d6f40077eb739f07c9" + "f0e179a157a28023735fc8da2e2ebbee5f7308925900e657fae7c3b321f14fc45346f89"}, + {NID_sect571k1, NID_sha224, + "baddec4794effa668cde267016dda67bc70b847919a9aa595f93ba9dc27354399ef7a607" + "fbead31e57a8ce698beabb10f313d393980425e67cf95be45d512f00e950c0c5409573dd" + "c3d556f23daf056259ee8914e860562a674311452fed780b3e0317a7fe93baa81fb98df3" + "ae4328b28ad0ac8f8ea33efe24faee658ad026f6", + "098521a732e72ed945a549afc92318fef7156ed1d1ed9bab93b581478cb2339eb32bcef7" + "05c9bf61cf2873ddbadff8ff3806740a2e30ce67d1807a8179dfd5d952e6f8a583baf81", + "0401e09410bf4f84d53a2abf8d106fc64e643edefaea263dc98c308aea16ec75f083b3e6" + "b442ab261226c59ca5fa622db68f5cb5f2d1d465b01d0048554b0ccbf67c0aaf934d2365" + "f60361e5b43d313a62c7b3897c7db8a42116127138a1009f0bf9892981fb4fd6ae231b89" + "40e7509f96e2a49285143010dfb4516ff810a91a4d9d2974c522ff343e93e8aad00aaa78" + "b9", + "128056de96666acd09b93c5db7ba1b8fabf57251ec480d42b702940b5847d2a59b04eb51" + "01bb3990c3ae2a41181f19a2afcf08424f8b922a95df6b292b1856dc4a9dbb1c717ba5d", + "163483a7e0d1012695ce0c113ec8fae3694bccd40fc038d4038f81bd39e71c969cc7f0af" + "8313a9fdd3d028ab24a43279569dcba73fd78ad74897964ae715928b1cf7fcb779b12af", + "10aac6929432a6bc7e12ffa86e4d2421e0535fc44a1160fcfbee477c29a987e783a7f753" + "eb2278ce08954c7e90284d2ce7c42de103a9c59d8e4c459b457688ad515cf156cfc56f8"}, + {NID_sect571k1, NID_sha224, + "7ef7138fc657492d229054f8a50dcafcfcd1dc06f1c16640af3f658907e2969248b54416" + "066eb119adbfa23b8dc578aef18bba79610b9cc109394b900a25e55a779230bb858b2ddd" + "9499a7775d392328db9177aa9571c2f61dd52010b48502154e914a0c55a54edcc04a6713" + "cf7bda8744a893926118b09df877d1a4f3d95e8c", + "0336fb21549e397a190beac38a1ee10f0551952da15f71e11dfda415e5ee08da2356f114" + "d450c661f52b2b32cfc7b9be61732672691a079f0927989b7e9f4efe6095a242155b641", + "040316800fa2d8f8f3f9aa87ffb628dd7b2f63d4d8389ee86ed41bd4c3eecd3f3836ba92" + "e2ff7ee5626213f9ddb41b43561c5dc0bcc3df0a872e4b8026c09c7b52b89b4975a43f60" + "b00207f956df58f75286232967dc1d3e6507634f45c0014c48b42868fecce5b9434463ab" + "fcd2b3722a7f5ed25607270148466f6ffad6a8c86e538640ece80e84f7368d33c68807fe" + "d6", + "1517b3524b6d43dcf3964f7c35c89bf14dd1542c37606452e2035ff0bd0cd1edd6d7b801" + "ecb1f573e957131c0b3f30d5006f6e4748a11b9db10fad41961f4ae53e848c6dc6e1a52", + "1ffd4865dae7387ed797c5ffe58a929cffeab521e48284bd7d4427d5856e9d2582b91363" + "f1d353a0ab1aabfc132a778a516d4033c64cbc991d724115d72ff8e94ab4f95a9514843", + "10f010aaf1bb714042fb8cf06a9501dfd1ffa598d6b3e68e7addefe00e18f3a5db8414d6" + "25e374d9ae70bea43b57c6be4a590c28e50a548cdb2e30dd9d6e3ed1d9cdada9f8b0049"}, + {NID_sect571k1, NID_sha224, + "d58e1ff1d49a471d0567ecf8f29173dab5fe5f6184ab4cdd095c231fa7b82551f99a4829" + "94a46c3d8ebc07297fc9e952a5dee7d5f199b119f6f8b250f8fba45701ac252db725e75c" + "4da27ad77d59a4eac448e54a277986740dfee6596811e59afc9755e53d24b826c09e497e" + "29e69a22bbc85be11763064e9ecad7ae66458ca0", + "0e287ebfd9ba294128cbd484fc5121d271cd33e685bb1804f09b40aaacf64b5a9f2cde9b" + "30a4a02d3a9bda97d92f46bb8787b3c61f280b1e1a0680f1f0679d3bb34d53725d62e52", + "04052903a7afc17cce078b4b658766a67f2f75ac04e296757fd762fc05d6a7b4e4151598" + "a872eb4618efcd06c43cdc3e54f437c0ef1b091ab5e4927d3ab4227fb24d4413e0327abb" + "840385e808bee8dad1a1b84d644aa29fec324dac2242709421479fa7a712d18b54db5977" + "8724ccaf4e51a27da090c6dd0b7967024db0a8684944b77295c9624ce3aba24ff48c86ac" + "85", + "15e8cb22e371965801d99407d96200015ba58fd7eaea52c03269d8a374fc7aef17fbfd44" + "80d29b781292e179936a68ed175802f34043018ed1d6b5a4df667d859cd2ae53ed3cfcf", + "0d3a57af73b7504ef18c03ed2c52aefe1d1a3f0e27f78c11d45e9825647d5ff6e97af51a" + "5e366e52e01e5e832e4264a1d5b6967cd9debda59c955568e4c8bf804d843a49a0c5401", + "064fd7ecf4470f07b4df3b3046041e49f310a463210571606f00a1915c5220a27bb7a28c" + "d0bcdbe374651aac06d4d9e017e31879b7819301eabfe3a7afe4b53f75ccc465815b4cb"}, + {NID_sect571k1, NID_sha224, + "4949ba765c14c31f68ee0ca26bb42ba2edee63537de4a6f5c42bbd862c21288d6ff48145" + "260365193c6fd2b56dfb014da26b8a483776b717c6874f627c9a622154b824565b23e178" + "240f53ee9748c45759ba5c035b584df0f09504e95eb9bce0301653aadb860bb25e6ea6b9" + "606e0ec3bdb8089e6aa0d5763d331757490715f9", + "149de496fa8f88b2741864d0c35b3df666b87179b7bd06cd426a45f13bc87ea9f50dea85" + "e1fd02a532630e0e3a231cc3e7fbb7c7ba85b40cff1124e72c677c6a3ea6aa40ffc64b7", + "0400bb610e4308e229e4b4ddddff5c4633ef2ab40bf74514433bd068c7d59a6260ac7936" + "6dcdc039d5585e660a4cbee990a2cb55a99ea3d26dd9df856b0f3ee5b968bcc349240a9a" + "2d03e3ef4be63fde6ca09f12f8220e1d9b5016f267ca5aa09a2dca8a0e0feda9647fe0e1" + "f7ecae7147a10ff893f69a4f74172c6e9a62f0c5bd96d49b47379c9c84f5ef8e59dea104" + "bb", + "1cffdb963c2c8b8609809e998075299776b44d2808df509773f310124b5f318d7431f1ef" + "8b38fac5cd5580348abc41e6e6396767f4780656361dc9a71dcc8e7c9239d6eec5cdb94", + "0982b9989c92e1a5d25dce832bd8a3f602f0eaea69abcfda285cb3841fe3f019503e6faf" + "8a693712380a48a6af8844b6bd718f0edf3b57662a4fe82ee28d036ecc4cfc7310871c0", + "1678bec58d69def3fe35a64810b27fd06bc29d165593990f6f42c4c7676fd5d4a965fc92" + "cf20ab8616c7ac7b4b308ce6290c5e8b4edf6859fd6f6f01878f2601e22acaeb5ce1f36"}, + {NID_sect571k1, NID_sha224, + "5bc63e5c50b1650f0ed4a599960f1e4e11f6c151b2123fd71d9e3c44662312a74b685429" + "0628e20b30eaba81555acb2fb49b640bdab2528619c7fcad0f2a2880c7ea232d427d7c93" + "5fba2313370fda8863a7e7e203d63ea15d0cfa083e716ce6068c63fa616ddc225c9e413e" + "694cdf6b355cb1293af5d6cdea51168f5634e878", + "17605d7c5873d870462375d741b4bc6375f3d47f7f5e9d998917adf2137a81e63b66917b" + "3dda8968930c4b850f2270eb3187fc756e2beeaa67fe0d73053e6cc0ff0004a21250551", + "0400d8ac3e76c25cdf4902426569763f4ae0638ebb1fbcee6e12a4e0b89d6d451cf420d1" + "0441a0a9984710dcac13bfd7ba70370afdfb58e2d982ac367e178f6834b4cd2d232e7f24" + "6e012b5fd5b686e58df08b695fc333937eafad6006be5a7bfb1426206102a79bc32fd9ef" + "46e19869448fed0e917fe059b76c8b5a9c403c3921ad07e6c19ca7bbfeff5491b22f8bb9" + "61", + "09179b3ea906137dcdbb97b27f3690bbe3bc4f1f57c46ed60b8503cae97602717a0724e0" + "55a5c52199ae3f08f1586b87fbbe514667d2eef2fe44092f3c916976c7b71eed67e8fb5", + "05b28342703c83ec2df898458fea6f71030e4e9c567d140ab09cc95df29ccfe199837cd5" + "8ed00d07241988bf3c863504d065ebbeb8ed11cdcb02da0a945ff38ca58d629f76832f1", + "01442a5606791569749b5a9f20ba8eaaedd1a2ceaab2ef55d5d41271ba23f6a5b6a33c76" + "763fc99b291b07283122596a3331fcc9ac038447f3e0cb54872c140300fea65d7809191"}, + {NID_sect571k1, NID_sha224, + "610f6633718e49d232b3798654095e2efa0de11f41258b27aa01956480c870d901efa77e" + "109d5f95f1f5101d3c90fc51312d9b3019d2e42e0067eed7b457dc7fbe5466923b62c83d" + "7347e4dada571b57813bb9c21d5e308519b8eedb7a7706508ad04aa69698e03636eb30fd" + "9fb363ef3a185756494ee01175b16847f5b68076", + "09214dc2da0967912c31995cb8f5bcf4bfa832c5a2d3610f3a9857e5eee7c77100d599d9" + "ed003b4106013155dffd6c48859b846e45e0ddbc5fe24f4891c9b2df51407e9cddbd974", + "04064376a92c1227c1c479260c7497147760c103bfa5be95ca1593f29a851daf2e5c3a5c" + "73c1fe3e6e2506fcea710254ab5eb2daf8aaefc19cbce7b1c4afbaa2fcda1ef85750fc0a" + "3e070638482e5c7c17a82980b863cde11294c0df717bfa4b9f884cbbbbf80a64dd2cc7c7" + "d89ed21e10561260d372da2fb726de71863f0f60e8ad0fa5e74fb5d29bae0cbe8ad6b32f" + "6b", + "0621176102c6ebc2c810eabab9f60feb71083c07751c66f719370713ec2de9ee3957bba8" + "d768b076885db1f226a9d37588abf1b141d81b70f0af711c52edd30e92e34a1d3ed214f", + "1a21d460ae85d0703b4b10a2f77547e45135048ffea590ce86e0a1c049f8a4aa7b395f72" + "3b7480cc84e33f4772df8f181f3919f3c0b0b4f276b0f855174103a2f7bd757584425cf", + "0b56bbdf6e2be1b9e754f9b48b3ba9a13403c17c5cfcc4910112704aceea9a34209df406" + "ee40e0a10cbc26d03839f95e775e80ec5e29b156fa277a5ac68abd99c7005ea6ba2695b"}, + {NID_sect571k1, NID_sha224, + "c548f0546cee0c0400401cd540a0aa9377f27ac64492e6baaf38e794db4df83e64ca3d83" + "b67bbb46a6c269c04c2725287cce0dee984a0d468c9ce495a7e554a6835d72c7493bfe88" + "dbd5a044a148c89001b8087fb03e57c2b7212d0b175d616333a9affd8a1802dd49ba9be3" + "ab6c6d9f99a5578d26cc4707a5860c6c804d69ce", + "042f2682e9ac8b76f3c0880e12c292524601dce9ea6982dcf68bfdb0d3fbfb50dc9229e5" + "4149ef09b95bbf624eb04ce1427077f30d8536be9f69970ddb449ca22ab8368d2689ed4", + "040116135b273ef876453b9c4c39e4be5a815874857f4a72602f0d03b4ecd9a4ad73b906" + "00c71111e317df0782fc92e6ce2b194c204340bc11e68cc22ced38e99f90dbaf0f917e97" + "0d036dfa65a6e9d0ba521ade7daa2f6b01e1d14fbe7b5abd29ae71c4eff66c390914bf46" + "f09f4ab8a06dc0fad6fa257a85f993d6829b5e0add5086b8fe2ecb8027d08eec1bea981c" + "c4", + "0bf116711b31ca347d41a6cee5aa13a74e042ffbf79d2ae9448598e6950d721b3773ae6f" + "25d7b49ca9dbcd62feb011d5d556bb9f8a55a7acc9a3a166a4169351bc31a293db68eed", + "11dcb7f4103e814439df22764f776a74aa86ce9717585712b224803f0ff193d5f541d941" + "42812c726b75e8c2c37f2a4c33db6af118af73d3ec4fda49cfc911fef1eda9a470ff200", + "15fa4ada3a6e95164aa8972f14ab7572a3b898feb6cde160b8f25094f67343d35e6efdfa" + "b18793f77e09e5a42f56bae747b2b66fa9fe1e4a97e5e05ca743c058b1024cc848393b8"}, + {NID_sect571k1, NID_sha224, + "9431c6c5237f6b4b35682a0c32f68752035c8b295a1763c5dbdfd73466cea64a00ecc113" + "56d02d2a9211dc54548f5db1651e4471898402c887fbf45005a3bda271df0158c98319d4" + "d6751b8ca6b07100182957d5fe0d97c4e2294406f83e9afcae4850bb089f2252490417b5" + "afd8f07f4c795fa84c9c7cdcce26bd97273c0072", + "17ed9a9c75cf66528428e85b0f019e3488af8b893b12023ff1b4ca9c3691b74e594539af" + "a0f4d7c3863d15399b862f15e27bb077392d6bbd546ddfd46728c75177338466eb2f4ff", + "040760779389124c702686d8d7c25dccfa74fb333317bdb414965d2c271ca5e687c4cca5" + "7e6f6149e1714551761abd4d651e7b04451d8be8e58c0c9e361fe0c6771e3d547d6ac3e8" + "cd052d5725d14b9aef93b83d638377f5a19e3cd6e3584121fdfc2c3ba1a588491d7e9892" + "be081c9e7585a15b37a9cd4c204054dadf06a9f4ebe98f95f6554941982faf109c2af98c" + "65", + "104ba3049a642d9b49c4302e9173a9efaf215b67e060c5e9673521641c9c2a5b14bad25a" + "448e46faf73810979a3a50104ec8c5230a909ae588213161fbc10381d7c75b35c84046e", + "1bf3e89fb0beb1ab854a5513278dbd8b9c6b05c94ab67145ceb1ffcd93d1a2aa374db46e" + "f327043518a7f272b957dbbf9d6cbd6708f4c89f05865932b7e816b12a59647d972f6e5", + "13a8c121c9c170b244ae3a55aa2d53f4ae5af91b1f72c066207e3f52e44723bd4ae419d2" + "4821b83648cd64fa70536605912a5a9319dc446a6b2b639cb99ed2485271acafc2bc988"}, + {NID_sect571k1, NID_sha224, + "417cd5f60416f17081d2c70e9a510114e08be83573bf9deae75fbc3095dffc8a7f7325f6" + "1f9d6565381710eda871388cb17619e4448836076338ee309a2bba5f737319002e259b4a" + "875cce1bb97996101c9a7abe0278dcac203a712f0809eb3c4b85a9c380550ab0bbc5067a" + "8edfa78abf03c09b5c08f21714e1022ebfcada4a", + "1bcc09b3f2f1d26ab9955bff7e8c0f85c8a61293511a196b53d7963f4a4503849c96fb4d" + "aa68c9852ad9185e01a35f0bf298e34a09ec352cb6da34f89a1f23e8ea27712a8f43aa7", + "0401326341764a4aea222e7413a4a6f7bdc0c35ba246e3c68728ce06bdb19f2e1b9102ad" + "d88a8511130ff48c0cbe4012ab52de93329670a319f6b1e7e7dbf177667d4a98d3891ec1" + "4707a4aaa73713bf8fb3907d49e5653cf82a9587518c2f8269cd1e556a3be3589dad4c23" + "8e4c80681e141be93c318f0efddee3e378cd46512d778b9033dc8706bb843a3c3546e76e" + "4a", + "13412a98a2c14a9672ecd42db9c079a689b147ad91869c3d45a7046aa9dfd3f31edb43ce" + "6b84e9edcd7e3ac6b96d89f13878cf5befb052a6f8a4e5577bdf916adb10d908d5e99b0", + "11c8a92044a30be397007a71d9af3e4222556a10f3a07a1521c1bcef73b4ddb94fefdebb" + "a5944d5bd91313560718a8f520bb5cd5666539756a5e9b66a1b2d18fde5ae72e61d584c", + "1ea510e23ccc7596db529dfbea78c99fc78ae53da32ad7c7bdb1df01039310988ea60182" + "8fdfc59a0cd237110cfee9de8711c073be44dd4d04bca4b1cbec278b1a9ef175d93f70e"}, + {NID_sect571k1, NID_sha224, + "eced8c412a153a643ccd69596389f83b6a36880286f8aeede503452bef8305942d95734f" + "b5733f37ffeceb1c2dae7b1396c3323de11089082745c28a1756f784423fa7ad68bbfbf0" + "d93ff8b7ad62220500df6d6895788402c1f5c69c06dd9ef55e2401cf297184e411be87c1" + "bba657f847208c0e750f94a3df92f253b377b4da", + "0ec52fc3d9c272ca80623e06b15c35f349b13548ef7ee400bbfa04196850b3b8cc7b2392" + "38c827f9b0a3160cd97969ce21d66752791f5896e0385b0527d4d77e4b9fc70f04d73b2", + "0405cd2e63dcd48fc793c18776d030398dfe3f8b6978eec6d23f49240581fe1e141f6674" + "98421f4c40a9430587fa282441a78bb641894cb79d929c299f1aede218a0078c247f7402" + "5200cd2843ca87d98f6336c0adb97bbb9c5293a03e5b86d5534e2849ebbd73dff837ffa4" + "88fad7d134908234d0d7fdac8c7fafb4729ecf0516c42995fc9337f60db2f36eeac69a4e" + "42", + "1c40a15fca0c959852afcb4ca6cbcc99fb680950c64ba18ae5388bf783052b6ef3730b1f" + "b1487189ad983b6a68bcfbb707466092da52ea8893d8bc4898eb133fd771e78379b9c13", + "14485cb1caf1527350587d6695ee3df2b21c13084df0c093ca5109d7c192e7e5df2232ed" + "e11dbe5ff2f46b13dc2dedb709a0fc1641c1f32857040147599d8f179fea6b2f2417646", + "1a16ebf12c11d2d0a64b7ea124623ffdfe2650fc9603ded571e76dbd7e3b27cd32fcb709" + "e2ba04aee0e8e1b942a4e829cd0c9683aee67eec27d4244a2cefc36f84f7de209e22a62"}, + {NID_sect571k1, NID_sha224, + "30e83ea39a92036e22b7bed7639eab5e5be1d00c20b4a9b9afa9a0d1653369cbef363c11" + "9cc6f921c8f84663949c8b8dc9b743ac2b1861a480476e9b64c8f333f34b6fa0e1ddf09d" + "49618ee4f3c1f46751b5595f0aea413d4ca46f3c26b974b112cbe99c813a96a4423764c0" + "69454946f213c5f066ec38108f947abeeeb02fb8", + "06403de7627de22d1dcf6b8da5af62f9ec59ec065cc1ca1311bb98aa439a6d5985619b17" + "c17a70f59e17cf180ea6828ef57f5f1f8ef05680a9fc12ab7faad5af61e4e11fb45d341", + "0405575c329d73f261ab6897153d7261f87e9730eb5dad49c05d782cb02e483fac4a9ddf" + "f31d2fb695a62cdc44edef6398be8f4f84aea1d63d0b3a771fe91889dfac4780063d2583" + "250183e63ee783abbd00547567bb99e9b578ad8ce63d229db41c6877534487568c423d4c" + "389154af9627708d8d8f863597bc668e88f9412b21a6696d07bba06fe7aef93b26950c69" + "ed", + "0e751a4918643ba3e68bd9406a4386e876d0d66342aefb4ef75bc4dcb8cb2e2d9f8378bd" + "02c388c776535ba85d24b206f5bef4b2f23a1c99fe2f2e8ea201009ca468e5b2e21dcda", + "0ad6792fdff4c621219549834cf03808645171d944088f5a6d3cf1bd826b5588544a32f2" + "31e8428a03ec02d6c1c1243fb6b79b1cc6d732be5be8f2cedf03c1e5588822eec559b7c", + "178b64bc5f9fcedab17822e831fa52d49ed10afef1c5912893df4bd8dc960b474ed25883" + "ddc343341b696fdebd06e177f234ea45553cc83920a8c799ada2deccf1ddf1dd9aed863"}, + {NID_sect571k1, NID_sha224, + "3ed244dc16a5cb292db4b1433b0ca3226913f07377faa20c6c1402cb4d026de808ca74a6" + "d4ecdd7c4e662105bff6edb9fae0117c50aa053aef677c0750c7a446edbb879110030758" + "912e8fa666489d702d8fceb719963b24a256429bbcc869a1f4ab9de9db89263e3684d4da" + "a1df2ed94bb59dde2abba63793e5f82aa2e4db83", + "01fb980aef64254aeb9bb613ff2fc6967503db4bc1f337882f1566cbeb57489cf32e34f3" + "10549f41cba1b951f487453c29753a184e33330e90d4b973d2e406c99a239a5c3f96233", + "04036ea761ccc71ba55aeab229aaf874a7c2d1ec15d821401e2988dccf02798c4e7bea80" + "d9fb8d30be213fc80475a17f45d60c53249b66858d29c73e73117162934dd71096d74674" + "2e049bc28f4d45d29c3560915698d03271028f56c29f0ead0608cb72dd0b62490f95bbd6" + "7145a6c0adff0d6ef396b4deea6a5e2a33f242bf17e907b136c039c127d6012c88b76aab" + "3d", + "0ed404ee6b59ffc445b16f11b9b1471249443f8a7309ad8a662b7cb44c94866828c906fd" + "64784c699cd29d3d972e5db3d42157452630f14536eca23cbbdd1d37e199e5a586fc352", + "1056938496df511d745f2cb88acad279ec2d58bb36498fcd8139d426d596de6d145b765a" + "5b3e8366845fceae91d14075356a32515134e577937ce2af7e732b4e89a9164d083adaa", + "0d5156c776f2184babd69c1f200b8bd94289d45a2f8b7cd8e8afb1455e8901d8c3ed14b7" + "a23b0976b85a22b86f3ccff4ae91e286f696f39646188b675895684f33f0368098fa7ca"}, + {NID_sect571k1, NID_sha224, + "40343935d9423ad30f3fb1832bb08a5d20ddb3a55b59057cd275320db4a5835471c96cfb" + "7d67f41ef860cf5879897b8dcf307bd1a52a6226847b768ea38ff1858f59e64cd635b51e" + "6863773cc6c64b363ec47ca39266422406264668415c189e2f92447ac4c63ee5d74e95d1" + "e6af05016917ad237f482ea0b02aecadd370a8bb", + "1d96dc09dfaf602789c1dffa5c9ba130832badcf180429660daadf4cf1be5cca92fe9713" + "173861670eebfe3a0ba25bcc76aecac60a756f07b69687e05c7e25984a39556469f62b4", + "040452b1cd70e3c88bec1fd0e4b8f8e9bd5f844ffc12f3d6769eeb1c9ea90e5996199086" + "82eb5e43b1d6eea63ba9353fb64b59d6549d19cd95f2f54156c81fba53aa0dc91244e7ab" + "8b020926ca366dc657d133f0ff9149738738ce68f3cc2f61dad590e2502e8fea714b8954" + "3f43d97b46b7075c58375efa379cde208ce769a16be9a377a111a8ac51459840a223f346" + "95", + "1dfd064dbe64c25a832faea1819cd836d22583fc40b2ecbc19b1f5173c25f33ca8cb7f30" + "bcd619ef73a4c14c46e610c8996059612728f508bf7db7ab3191ad61955e8b1ba409692", + "03cbb0ae5f7c0978ad8c10c4ff099767465ed6fefb7358f3eb58a79366707107cc88b305" + "661526f2972bd16923375dd898ae72e81f290b86cf9a4dec086d7ef04d7a7bba5087f8e", + "09f77a86f0da4e35c395978603cbb9c4dcccf126b7cc924cf62732593bb1aff0dabb6d58" + "321debad4410dbfa1fb8fe249bfc336db7669e4ee13485ccf8dbde01ca4cdb9acfe5e74"}, + {NID_sect571k1, NID_sha224, + "274567f8841183e68c4f6c6b36c5a52fb0e88492e4076b9cd768bf571facf39dad6affeb" + "68941ee326ee461ce1f33c26e4bfb3c9e0cae8241fbcc14cc69c1af68701fd0be3def1e8" + "7b7d52b682ebbe1cc225c1bd177b0886e3698a06d0e410a1f92c9bdf7239189f6acde0d0" + "653815a72987671b415d1e8a70e685d6e5b14c33", + "09d98b32c8eacd135ffb8e13223690ef02c0c1f29ea8b4da193502c8cb3f39f9eed608c0" + "2fd457f2fb685ec4595e8fc8f388d26778d225d2b18c9bc8b199d8b65c0d1a6af33854a", + "040775560724ab7d98407e20af12b03634a757037f8b3854957e11900d58460ca20d93ef" + "06436921f8d4481ff9123a9eff3973e17d441511df3cd88d0d6dfc8016d2cbfb89633784" + "6303082aa4a81d4e6f0ffc94511327202f2baed72c08026e05a288eaaeaa36a1a4961f40" + "0b4712ce68778ff38be43adc2222a986ef0fecde62f861575842429816c8fc77797af018" + "c6", + "1f4acd3430931ecba5e9d986c6712467526ed94a0bfff36135da3ba7dd9870ceb38fa0b6" + "58dd391ce658774c6725360dc20e5ef41daa9cf52fa863840ca91053e7287ed29ac69f5", + "0502abe544fc3262663524cf88a5bc256b20829b7bed3e2779f559506adce3c4f3a89e18" + "bfd31819f78ae3809d9d0710c6591b2fc90039328678aed9df2fae38a74b66f69295d82", + "0b2f055248d9633cafa4db3b3cef0b76ee02f6bda3d508e19c68870e76a02c69dd1013a0" + "3fd741e854cb34f815432bf48138203177141be7209e957f4db1a958fcd45421a213c98"}, + {NID_sect571k1, NID_sha256, + "d9c99b8da92d3c2e40dea3c4025dc37770e867c4d2746c4d726b6de24250591a586c166c" + "88acb8ed340e161d4c81b9d14c919a1b06f1feb22c5ce5fca2693bdaf4994ac72c8983c8" + "7f331473fd094eccb3d5f3528e69d487562fb5a65c150a8217192f8aabfa7adcfd0b6916" + "d5000248fbbddf1ca2f38e3d9ed2b388998b7cfc", + "04d873ac744c4f68bb044783ad69e1a733cb8b8f483f2695bbd90c4211282036ad7914a5" + "3b25c3e890c6824643cffbdc4138d7ff457e3fbb99387494eb5cf2bdf1ad243a3a1e644", + "0404644456a4e5c543af7a086640fa9ff6627c2d9f17066d255c3e805db31fb1ba895682" + "e94f6ab96d6ca449b0c3f76bfd6593d182f422689b31d9dc3bc0b70df210a96d19af9ec2" + "ac01d38f8572a06ce22c1586a8329f9421414b334352f1e8b961f7e0732ee01e838eb975" + "bfb2f62132bbfd9acc6ef8899b4fd388c2b59e564fc3670da7a008ca016de678d6dded13" + "7c", + "0b050aa7266201a42dbee063ae2a21398ee1d2a190de9fbbce2468836e416b3ec18d7340" + "c81fd2a5283713f9aba33e8cbb105eaa2abbf0b687fe2713921bcbc02a4b77df21f762f", + "08351115714bc8f29b84a6e3f0a23bdc219d4271a9ee18bdab54c3acc9cb3468beb1f89b" + "0f981da5aa7d7ec7ad451bc5e91bc98440fe20f5877a4e73614820b9ab6f2bad3e2e609", + "0c64baaeed68178f5a1d8f095b0932fb73f9a02462df5e8378746ecf17d05971a0a287d5" + "a8e0317db055b02d4f4b5864597d0f9a9cb1ae68577dcaf7db09c55bf3d3575197295c9"}, + {NID_sect571k1, NID_sha256, + "d2b88a01fa17703c99e5b867c645e98feec0d6d1afaa20a97b5fce9c23f0594460142af4" + "e36a5739b8d26d3ba35a0263caa5429b4abba157f359fce701c43372500fd2ae1bc2ed80" + "bfcaf8cab7016ff93d4a27f565b7e67fe7dde22bf02c48be12114fbff2421517c825019c" + "0ccc72d927bef156140d7f0e9b6ee37af78c3efa", + "18d2eb947297a054f8a789771dd875b12b26ef057fb91235dff3b062916f85aab3365609" + "bd2a38a861439c8514e33f174c198139354e63766942f605107cb1b9709b782622b295a", + "0403f6454f1dd032a925c6bc3e1c62892c1dfaa700d3badf83f07c1185c31ea817641865" + "a129572f3351340fec331f5ed466db7bea3ffa9723c951b518ce6f3c9263a7bd6866c8b0" + "b40188877b68c10cd6ee543cc5638bf0f82db25b9327b2d81269dc61250eecb976d6568a" + "9df29277836b97973e3615e0a4345e610b33909c2340a23c61dcc6e2baf2bc363a333818" + "02", + "0ec6af799d92ab52c51cebda61ab642d4876f374edb17253a1de3e880048355e58367096" + "d3bc0402e4b93fa6a6c8d55c529b9fd68a27962c19274393ebe1bd0b1197a28125275bf", + "095c42b3ef01c0f9ab96693526e903ef3ccf0d843776089d15e77093fa9d010872d65cee" + "1801f821bcce747ddc5875eaa462b00424e6cdf0995b87c6cf33c37d4463848a6ad7fee", + "0c4f0edd4b2dff4f9fd1fea5addef6d483bb51c27bf5c7aa13f9482243e5ed5571bbe0a6" + "58543c69b731de56b6b34de27795095b3676375cb4686b45d48010fe8c941208cffded3"}, + {NID_sect571k1, NID_sha256, + "a704a1428cc894f958774368979fe075353b56790555386e3b043dc6a2919b94a11c7f85" + "883f46b4d47b324d349c28c667bf9a000daaca1d7191f2a0fd97a4867aa9f72422134a69" + "0625408a9ea4b723704690b69152655f9e9dd5fa3dd94814d97dd4f13e85c3f9bca76949" + "1c2461fbd17e28afac00bfa81371d5039013da8c", + "0594fc0b7a5cc0216d2e78eeeb6394c8225de795f4b73bec48b2f4ede185ba622b59a16d" + "d3eedf8cf2c94f2ccd6dcd205f64c97cf1b7f1e34129e94b5129502909f43940dba0746", + "040271cbd3e0d73ac19b975559450d686ed67eeaab4175435b2801e8989966d7c5ba81ee" + "7d749e43dffa12efba820462bdb274a57d04cd7e92c180cdf555686c78aad58444d5f171" + "2907c407b46e93d4c2b12c967cd3e41320ea8535a2ff24372a5791fac9e95865e14d545d" + "d3627dcb4aad2350db248ef49469ff4d59a879a84a19d1c0e5d7ad3db432af927c88aa5d" + "48", + "1e730d50a9747c7c1ce2918fda7575bb81a74757cf9625d0f0619aab7f1eb6954dbaab74" + "9e573290406e599eddd7d3376dcb3fb98c116ed7b65729dd04ece3eab1d7b4bed52326c", + "00d59ebcfb30d7b27c87d56ec2fc9286b04b39e68dc49b395f374e19647bcc58f2fdce1c" + "0dc815cb2aad55cf863a4786efd6c3a0ce56c1d92aa20a19245e74550c17fdaf7a08340", + "134e80d63c9b328e02ebafb75eabf0fafba886f48b25206cca9086e03658ce2047c94a52" + "22a206c6c5a57ddb8f59c5ba1408fc56668066fef4557124c430cbd1267455e0b31a8bb"}, + {NID_sect571k1, NID_sha256, + "f8a87c4acadee27a908718461e3b45060ae4ebb009b10a15926460bf219cb7e75dc3a993" + "fb9a741b94e2fd71615c50f6df958568f452b2cc284f0516816bc0d2e2d45f663155660a" + "26326f63f4aa42a6e1cc8462a2ec620a365257ec042f55e4047b62af689592a1a072553f" + "f174dd629a4f51837780ca232cf479a68c1ebdda", + "0f000631106c5851e8ae0802b01e7a8a8540b427a8a3956a1d36f0600be89318032320cc" + "420931d825cc964e823745c60aad3437ebc1c91d32004472e9677605fb708e5a71a0d83", + "04034136cc7b8e2dcade5cbb9b3d0e0857c485ee791f862273749b5d3757d072bbeccdd8" + "eb81c67fa6927c1aa54d823193c370fc596d0d903214d7967b905292f4b96549b3dbc9b4" + "7d056f69b42b29ea82b9f2fc377e874b58ee785010bb7f5814907fb5531789606810b716" + "13a36035cd257864e414fe0e6ea353f398745df87ccf25b3a25cce1c78f61f5039d66241" + "e6", + "009781f5d960870a289cc20f6b1af56602e5e12d9a7353e81b89a90b0a9675686f155111" + "57d9fb70b82e8b2e25534f8ad22e14ed518e62a88f1ae21c56d4ab7763808851762d3ec", + "0f3eba5ddbb8c127419fe5e8cc1aae2239bfbcd2ab43a006020b96c9e7db832fb09e0bc8" + "87aaf24848491d4de935b78141f426875f7dcf2937748afb303ec5eebd01b6a82a8c4df", + "17acc35bd81cf24f983072585ee1e096459b408da909fd82b5ea86b77154ecfbffa7fe97" + "271f50b67ca3c29ce704b28186b831300db0aa0dd6147d2d160e4aff14348ba76e6f711"}, + {NID_sect571k1, NID_sha256, + "10b5438294a77c7e517ecfe8f8cd58d75297b14116aa93e574996ec4acb21837e6297cc0" + "e7e7b5861e862062f192f2206a01b1caf42c6d7181d02c7d62b76c2881f8479449b02d32" + "c6f792714d8f70f0c75e81c7d9abb996be87f5ad9a01fe42b75855558d5f00df392b62ae" + "0d258f3f67dbeaf07208952e679a2c573aca941b", + "1023997206341c6147c536d034a9c38b4012035dc2c9b7ef0bb9cfe65e7d788296f055d5" + "08a1fd957b2dc7f9eb10c27790f15f30d81670945e54a508c57b70b46b4a09f4c769289", + "04066bd3f503cf42a20cea4a55cab75940907f38fac7fb024c55245f02d72d80336574a7" + "2fb248b1b61e3205b31489ed789ee78d88e487db3f5a1cd48efa1487916b8707e72e4be7" + "e6010b6e4330af0270abeccf0901dad2f8f64f4993ca93a7c5281dfd71c6ec405f9a9bd7" + "8008fd22fef76fb79e20a571df16c4d97244c7356e3ad16cc489d3a9b2e3fdcd5f23b48e" + "26", + "09137bd8436dd126924943e8599c87f64564297117766580e6344aa3c02056c811fb996f" + "264ac4f8f0cb33eaed5ef8f120d43a1d2b3e5e34697765ff9db4b4683ce5c1596d74723", + "03b684a66e92d352847f63196181160db3de7a304b6e43679340eaa9fc828322b5b9c16a" + "1772c981ff0febb474488daf998d4acd867e78019b61804bb675a98cef24fdad088afcb", + "02649a94d2bc243e997bdf27be7d6364459c38845c3bc8d1c8b549ad4689c8a4b4fd5519" + "3ac769b1da607dc96458e2f6abc602bb4048cf6b0933da6785795d04d10f22e439748a8"}, + {NID_sect571k1, NID_sha256, + "d83a52d43216fdb16b1b40469863ca8eff4df9fa358deccb5ffd18b3e22a9d654aedc98f" + "3dbdc4f5b4e56b4299e25d8a5a38d01b34eb93de382df1ae4d1c7f966e84b84c393d167a" + "ecc6f1192c4b42cae83748b1ee3d9147ce7de74cebd122695b455e8082f86e3e488fb0f5" + "1b3b7edcd579940d1cb9d045296e5e38f201b7ef", + "11ebf320ecf6a908ea5b868afb8e22246ce84e743e1076d6185ec65dd79043380708bf8d" + "a4ba802c3b93b8d15509bb7d7de9dc29f1e9fb0f0f2cb97a26698f955b1f7ef668122be", + "04038b2760315b0999f9629922bcdff65cfdee4938d4aab8cc3d200aa9c1db843fcbfeb9" + "da10afbf10280110c49f0c18f15c2aac4f39af35a79557c68eb6cf6afaab973538b98b0a" + "6c07da55796396e919f9b5967608af06bd01e8870354317e76bcb8597a379129e35bcb69" + "bbf6b38911a03c3076f7fbbe9b179e078b442c604519e330282f6f6c21aba515d6d73c02" + "57", + "1c219274e54a4c5e1e1aee3bf805a7002bbfe1c030cd4c8a1617dcea2a14b1d537a64cb0" + "7c5a1385edd76f3e4ea9a38e38b458d2c7bf8eb56a57fd33166bf59a8af2e9639106929", + "08677167a7ea1aec4de76d1c5effdb5a1655965850bd6498aaa4fb3fa50f213fa4d99caf" + "4145b4ba87e34797babfe614dce6ac21d9c13dd0fcd9802b1414aa92dfa18318c7e57eb", + "048d6161a3739fbb3ee1c223bc82a46255d10a86a605f6c8e1934b13f1a8662f30f8e95f" + "53848119c61f08037ee5a2440c8faa11a6b1800078ed476b2a3f4cfdb25367c8dc2989f"}, + {NID_sect571k1, NID_sha256, + "eddf5553ed4db6e8ce72cbcb59fb1eb80671c884ebd68e24bd7abe98bb1f40806de646f4" + "d509be50a3fabfa85c5630905ce81abfad8a55f4cd80208afffb9056bc67d9dd7f4660a5" + "f924af2a3745eec2daec39a3fe36131fe9eea444b92d31f6a125f12125159ba095f89968" + "a7028549466f41ad45668a861f671050d2a6f343", + "0746d5c824d78f42a1fd63d8fcca61f154ba3e75788b7a0b87f53e5420e23a935b02eaf6" + "7bace8dd8a8e7c1caee30154c2428e0a437cf12e235f41c416f92fb54528865fd4766d1", + "04063645fd3810e2458d15b43287f329c354b07324c0707f19847c544f129e4de1799996" + "f805fab7dd356567970e10eb21d875e8ee7bbce56c666511f9b4a4cca986683e937d6f0b" + "3e0595485c9a7f2a97fa7f8453df13b75682931fae10f3441042199fedba91a58c105df5" + "7b83d2a3911a2d34a2d41e451d0d2549b0a0a65b42aca40aaa618c252baec171da7937d8" + "12", + "0674788e75eb9d5ceaadad9fae036f129178fde1a584d73cf284acae3b4cbcc208ae7a5d" + "35aa473f4e1201c19ee5bbe685ff9218a8e2188f3428ab45bf09b6b600fcf81fadd8d69", + "060d6dc42329687012a93ffc5b846b4dce3df46ad12eb61437832f81f4fcdea7392582fd" + "75e701e106e5b83521759da6a22a21addb63b73783592d3f29347f3d484e05c19db148e", + "197f3b2d4f3e10425f4cb60dd1ae84fd8c87f62a2cc822342d5f0be4f0841623227c5cb0" + "f8bf83fef483a061e30ecac86cea0210036083a99fa1247b49e19a7f401a815cb68ab3b"}, + {NID_sect571k1, NID_sha256, + "3db94335f6d1a125309622c0a9d71bde1da09371f0285a93bd0aac255fa8f10a56074e0f" + "6057f1b1aecf2d86a2319590ead96a2ad1336fe844e09339b456be32374ba2e659fbe9d0" + "f2cdd83444d117d2ce3204ce4b4294dd05405634b84747ffb4227160c4e5c2c9da9815b0" + "c6d20f55705f16cdbaa13d107ae666d707ccbe6c", + "00670e72ac2de50dd2cdd975a6cdab10ac45e37ef7a28c685d77447051496b5e161f8b1b" + "93f6c7f32fce8ea05e94ed35fd7cb28c44bf51ea29cbaf5aaa31d6abca30a89430323dc", + "04054db4acd0815aa7ebec4f7661d80465c64f1fd4147507549352bc07dfcc6041ad309b" + "fb1434b60f73b3d61ebde91f849004d55257e98b6ebbbeeabe960f9429a55a36ff75c112" + "4e05b6f36f76b3b3c780b6a70bb8ea150e9cd6895ff6a6765a3516acbb4f5efa91434def" + "52dd0ab81f618ff28db10fcf39264be8e7ea76e06516335ac5ae33ba5393080f11418911" + "0c", + "0f74a0ec1a7496043d78891e308c82b4660606642ea669e4406683d44b79dd6e6a1b8102" + "92bcd6a9f59bcc2e590518bdf2e9224755654026d85cf2a3d9768d909278448f0d63fe3", + "047d808febc1065646e6a5608d62d1445d922084487a64e9ced5fafff2977eb3a7e29984" + "230946e3fc77a766820747122fdbbb9100c591ad7c9dd29d07efa2e8a43357e3c47762d", + "04dd6c8ce75bf2792ef227cd5a3102d30a9a31690ff5c21354f8dac9f826c86ebfaa0465" + "3f0ead103b1c8ea59f0a78f5d4e8eab597ec6c028ebcc57f4ce4103ac14579bd6e15166"}, + {NID_sect571k1, NID_sha256, + "69166ba40768d0a3930325405edfd85f3272f7b8e600b0b319f070274c91f9f03d0e6ec4" + "bfc7b4445e91b87cecabfecf5e77c7301ee3c6b0affca2fa02c92216698705eb75443eec" + "c25438db2d2fb4b24f4195d6b9c05c53e0868d3e58477100607ffdc31b18c40b4ad7202b" + "b034e58653daec0f6b33c024d42a3fc84bd8f86b", + "0369a3bb96f884983c23281bcd04e24a3e5f6359f81e3c8e46f3f6b865eb6bdf98a630e9" + "0646275c587e41b546d3ca7688cc207afda15cf9b25cf83bd6ad27908647f3f9de59de7", + "0400eb02f6e741b3f83a9dc50853828b8a6e0861ffc644162515a264730c662ba388ac0d" + "705f8b36f5388894df5c1bbc3582c85de141abb7712caadd2d616da589bdffdd9258808a" + "4105dbf831f450da6f8e503c19a7788c1317ebe556a458e2bfbf3137f986c9c966a14ca9" + "0344be1b76457159c9d70f13af7fe0013cf605010a8a3b84bc0fe187c7d93e4cfb2639de" + "57", + "0ce22f7f2f01355280ba2d2cda06a55771e66f598bf79c65171e08a98f1d954e4beb3ec7" + "7ab06ee60c5fd156a7098023558e3d630641579cc179739bda6d860f8ba1d5ef717ebb2", + "0ae86b40d10ca45c20bdb3db55a6dc12e9b75754679eccb44c40fa57351c23c062282e1d" + "a9e1703176e4b8f7f224982f2474494772a20269c43a18a7a03fd12d8ebb975b83ade0f", + "15ff7b34c3316d9e7ee3d7b48ebf97d98453ca32f3fc67fd08761d93cf34cfa5a2314fd0" + "752d263c3eb7cf842aeac395d41ad3c04c1a9d3808b4fb7489e880d130c35a26b702952"}, + {NID_sect571k1, NID_sha256, + "f64cb668b72f1e6dd026a478505c0eb33446ae9a2993bc7648aaed02e172fa9a0e05eeec" + "61e756ba246c1dad7e85d3f01baf734b1905c5bbd1b08d833c2cf1e079eca75b866d705c" + "407eea8618d23ebbaf269c7185984b3bd4117ecfb295ee6b47eecc8d3a78bb96552f6be3" + "14656f91caff793838226662c75cd7804b6bef79", + "026717b039df834855511815d5665ff9b654facab469390ae257b7f0eb4dfe66ea0dc037" + "242ed0c13bf229b8f7ff26da9b55fe4750d3451c62804aad493c179ae45d08ece5af085", + "040191a6d1ab9cdda2d593d5598a966efff829c04c421804c2297e658adc5c9a6092e146" + "b25c730ff7ee65cb9812ac9ea0c18dc6b60deda948b4b7568e8b8e14411a6969d7764652" + "ae03744af98387421d958b26971d21928b73bbf5b0f0ef183e9f606d0348fa715f153a60" + "b6c7991dcefead2ebb875d0c1dbd3665dc42a241c565ea0fb0e6349b4319c3de633883a5" + "16", + "0dcd28cdfe9028a4a6df1d41019bc58e4a1540ca94b717d258f2afe8bec560f3028e15ec" + "1e8bfd422415961516659fa2b006256745e85e488c359e8cbc94cd2592bbb892a19c45e", + "07ba5911415a3d21a3d98b400f61eb63ddda689bfff0c8c3ab83668b1e4bf8a703c853d3" + "585b8bdc29aa2fdc41d5e7534850f4656ec949f0a13fd18295b662c9829723e5a7fe3a1", + "1b027e38283d74c962fe0e7b58dfbf5e21ce1d9c91651bc98284008f44fddfe4cec94419" + "94e690d72a8ff3ba2b538718aa678e7de046b653403f3b7c064ee07c9c3c6d23e1b068f"}, + {NID_sect571k1, NID_sha256, + "51ee0b98eb6a3e3c1afcb35a33697c048dbf61374629ac5702a57801fafbea4d6fa5a26c" + "9d1b79d1c58257ac0106387fab2d4a1b7f8c0dadcbe7c830613531b3c209bc17f792bdba" + "1c1fae1b7528aac53dc86c2094b40194577325c05d2258303a2d17c854e7449489c43991" + "b6877a50692a6340a528a6b188440ac0cddd4c4b", + "1d642f2d393ed4abea37173e4a79534af87adf534ead4a0a1c46fb047619221e3577e6b8" + "bcc776114d01159c736ab78af3e53feac339d7afe58be8e7a8ed290f1dad960f1b5de94", + "04023d1ea50229b70b46578df6904fd528e9930985426eb2f1ce10eecbc0c16583959483" + "80c4047d67bc4072be2a2624d62a301da41a5265f040642d1937fbbb7cbd205e1db85b86" + "850625c82ccff6047b1ef4b08f1913f7366c4f6c0312c21e5ab01b598d1a9618cf5c22cd" + "dc64a4732b477dd5c06e332b846c8015a2e5a195326bca46c29cedcc2f24d37ebdb7c2ea" + "ee", + "0c9066831d61a4192ad9de23efcaf578a5d5774960a2b3e3e292e0decaef62d1701b86ec" + "6183d8e17a699d418ef9d084b982c97a55bd76c8b038ac5c639451096ca4d331f070ad8", + "005778acb38b1961195d38463abd9c19d9e07dcd997f19676633fa3c44caa44ad1a9bd63" + "435f3138ad8f22a731e749a81161c5448eb462fcbcd69ec2255cc2923ac697ed319316c", + "1a1aa90113952608dd17dbf391ed56231ecfa7d649f3274774ed2b6034a2207c05c6d8b6" + "cec480ae27b58495a50b1e5b74a17ce6cf2e43aa273c2b813c0e6c79976882b7e4b1c93"}, + {NID_sect571k1, NID_sha256, + "feee50aeacaccb6b1c3d95c6524044edb78322ee836d8159c4a4c2cc6982480567c4c6cc" + "4806a564876622266e1ebd45f2f4be851b79da025bd57d0e6acce1ec1c8c255eb89713a1" + "e4897d4ee0f7a248b9d4bd3ad5dc0e57f60ebfb65691e164bc908956a019083e923cfd33" + "dcf37c735af3462768a1e14a8051d7aee74d5228", + "08cb70be29e83f697a3e2f67d86f1c1ec9a163b5335cb4a06004b6634948bf60b8ad9df9" + "b27d2bedc4975265ce44a7884e57082d521320ca4372d38fc77b18d3fa05ad8aa5c43d6", + "0404c042bde9e90b38b48e60551d832a7c80377a81e8c5b010d0e491cf765c432b5edb07" + "71aaa5f672edf3ba108dc71459d245ad60f3884b8cf33f8cf797f36b20e4be39c8389e66" + "b4075f2454c41c0323ee1a640755077d36a65be7c2a014db36719ec217e21a9c004bae5b" + "efb499bf6be67e82d3da70475abf9dfb751c84c409fe838cf1c6ae109d27f24d75c02cc5" + "b3", + "186f16dfdd7a71f20a5e634ffc465356914bb52286d3d5ac00f3ebc02497112fcd592e1e" + "cb2ebbc819e07ea092e465e66f3e58da7a2ddd41c8787f57c135ba4c168539b4743c3a5", + "1c2140d294fafe3d9effb33ce73bb7e5485c93c7aa9d33b7535c7053831a1dbe79075713" + "794c87e52bc887ded969d2dfa6a1e2630cff96760310e04cd2a75be6fa020a12fc84d3b", + "110aa165707b7de1b3a8e05e4502701abb5ade0a27deb04fd93c6eb24ed2b67ade6c49d7" + "8e874d25247e948f704d3c5b925f84c5b07c9b289c4f8507e75d0f8927c6dad6dbce885"}, + {NID_sect571k1, NID_sha256, + "b115f7370d6a93a90fd9dfdfb292956be34b61992ce1fa5627c5e928d74bcdeea66d4040" + "c473306a0070fa8363c4303bea32f73ea3639b5c6676fa5a1d68a2cc1f91f00580d7453a" + "23ae70af4cb1f1657aa82c5b305374effe5d67d559e46a6cee6360503d21070506f1af30" + "bb000d2f2f85caa6465810f89968f33abae81cb3", + "1eef463771f9c6285f3257691dea0844687606d4dd00b6020517f190891cc1be97cfad21" + "d147ed8881b5a6e19b22ceeae30e1132476325f2de0e9af2e14c80b8c780a9d2d6c96de", + "04024de3ebe03d2d91b88794a77635aae6743e597410ae10c356a51e3af88fa7f9c4d648" + "c7d1fdb887c8313914ed554eede282b24a2e66aeafcc0cc96907bb2f3877eeb97df491be" + "f301ce1f9fd4d7d3870997f34f54f2ba8f08ac94ea94f74a766f2dbc02e4d5149802e313" + "5a2d762e3b8abb01461968f1e88cfc8c7fda49c099e392e80d57f0c14de9c4fa1eea2573" + "2b", + "026b545702baa340fb6d1bc2bb96f7fb1a77a2428cc122ea380a258c747d4e0625bbf4e3" + "dbc2ca2f15bcfea92f2417cd5d22f2bb5f38a9ba313b3bded506d3e570dcbcb86c2debd", + "091c162d040a12f08a416296a43501d92e2ecd6be302b5e1754b9ec119fb8a572626c509" + "855c7c868a07b263f66070ac986f95e4c83150a5a492d5ea8a7f8ebf556c17ad2bcc996", + "00c217fee7bb202d6399f6b1ae4e5811d9361573ed4fe1b3fe5d474cf06d0236d59dd358" + "0145dc0bc7632c721b6463c69490a67d1be1fae99e34318af6df939f9f7f36a9bb8d5e9"}, + {NID_sect571k1, NID_sha256, + "726782eb0d9720daa64e4a77b5d8dd67a1a193f15eb6b5162e3d89c925ba63b7c7e1c4bf" + "c8d6f11915b0e14d16ab53ab015317bd5958b0beb6074199e05181915496575768d026c2" + "3e92e06016598de008c3718aaabcda8b68bebca0a73ecfc7327e8d3646106b7d114dabc4" + "6cfe56265c326ee56fd2ca87abb5bed8f997c735", + "13bd452b0880b101df1aa65724fb60d5d85b37ed5419027481661a3617e0fb37bda1151b" + "9b5b41f908ba832011f7850b75a07b678e5b8cb35c5fc8b94a625e4398cd5ada2b04cc9", + "04031d88b62d2edd5f6ed29258c143bbcb3d29413afd8f86873698a9efb8d2021186415d" + "301599232989a0df5ea91ca222c5781314f200c708de30751feadc277d50e64842dd355b" + "a501c76f19ceb1be48f5540265b8b018da62fc225cc0d2d1675bf7df71456cc8e35b002a" + "220e2e80691600a2c1ae31e980d0cd22b4741c25bfbd413f10b375a4d8adf70a65c48ff0" + "06", + "1b9235221a6df49e39b4cde6650e994f624fcb5084daaa62aef54bc154949f4da9074636" + "c44f50ea40da1a3f01bf67e9b62a725ac0537a4e37ba33fdea8ba8b2286bf82901a933b", + "01dffcb5b5eb23694da4978419110ed2bc7961c571a2e68daebe21e598c8b483b34f3178" + "978708db6d78455cc1fb4f73c5ab7607cbb4f05d4d008c7bbeac88562fdaf7a370ba394", + "057018fc97d7b16d69af2b7dd4a859f09dc178a6025e1bd6839ec7c75c0383c59eee7079" + "fe61aa6bfb3e2c780d4ac0ee074e6b13223c239aa60ea1187ca4937864f89e2c65056b9"}, + {NID_sect571k1, NID_sha256, + "1c2418243fcd89c6382b7c3b2a8c341f26d08174a9e9296c4a5c98c5793a0fa48dce51e3" + "0811a96b515aa22bf9af89a43de06d696be1e531c5dece1f69fa6ecb7f20be063c602a16" + "454ddafb14385ae3f8246c3f989d0566e06e7ed1864502896ea19df8393259c4dab3b338" + "0a4a80b4103cbef4f38cb69198b7cf74ce94883b", + "1288141ec2244e4bb3f62daf4ee588aed09ce22be55e3d42e9085a947c1f8cd16533635d" + "170bd64ae0b417346fa4670c25d41387acb2a8e14407a1931d9f7c5358a14eca40974bb", + "0407ccb7b12a7d6997ed2a11eead3278a3f45ea284dfda8e17f6d926ddd6881a44d02a0f" + "7504dadbbcb0cbd6b85c113aa0d3b4efef1ca151cc38cab1aa8360a6d22e3d6fbc0ed980" + "d3031b85dc2d2096bbba6c465629ea09ae3421cacc5581770ce3479070f23b3aa938333c" + "7c691d9cb93a4533b2ce389ae34dbebe8f333cef530abe17cd21448f701608febd42d9bd" + "c0", + "1e411ab53c48cfc1ef9eda97002dc9181a78352de13fbee3bed86cb00c10e7406033fa0e" + "a97b50764b0eb2dc6eb8ea83e47bb3150ecb9437179c124f15fac6ac19b0c8bc324f171", + "14420d78f2f9f1010018848b0442ff6e6203c1dc06a4d523802190f462ed3c11c7aa7678" + "bd03ba27df01cacf4121309551877d3a2bbcfee116c59926daafce55a4e0a7d69c5c938", + "16de0b369c28ffa0bd6ed8802a503929cebb5c0a4bf0c0e99b14659b48aabfd08bcb64bc" + "2e39855d7d514d7525b3c4dfd2244f37019b5f86254cdda599bb144c8fdbaad5525cfad"}, + {NID_sect571k1, NID_sha384, + "1de4b642ec7220c64b91561caed7832044d6e811ac909f3b199cceb0d8a7db91bcdc8014" + "12044f5c34b355b95a2c6170fe497f6d5259bc20715a38cb0341c88e93029137e94d895b" + "ab464bca6568b852340a5c5d6a225475f6eefe2fc71ffa42f857d9bab768ccaf4793c80c" + "4751a5583269ddcfccf8283c46a1b34d84463e61", + "01fe06b94a27d551d409b0eb9db0b163fadcf0486e2a6074bafe167f9a3b4ce8ac11f42c" + "f72f9a1833a126b9473163d29bca2ad139dd1a5e7fedf54798bf56507326fae73a3e9a2", + "04038d4dce42bf8fffc39a5b6583a1a1864de288ef8479449d599115bfa35b37954ab288" + "ffbe81e69d58693e2c8c81639df12e4b36f62b2ab042e92a0715b518c63d0ec630051d4b" + "e1059c72c0bfb0ea1ac5e2fdd4fc380d08037a3d0eeed4990ff02e6cf5a16817ea598085" + "e28f8269da86c547e7b34e16a06724ee73776529c5b5dea4ce3321fb168827ca1cbdf885" + "6d", + "0a3b18c8c9f17badd123c674869ff428d533d2ecb8c74f9784220be7a90dda591003df52" + "59c5dfb612ac7398aa04cc9e82863eb0cbe66b6e7f45dd15dad252f74a538d5f4354c96", + "09c368c80f697c1718c55482b2c6c5c0edd7257a3a53f7193515629aa40a9716cc889d41" + "c120516b54f3a106a171082364886e5d3a1e9482a103f072988f61de68f034d658bd976", + "0e782ef47b250f40c56e3ac4de112347174bd59fd4cc991a2b538ca90cdb222d048fec62" + "e2773492a1d327152d1d6591740706fe2f8e1d65de888d47fdf173b2645813ac0fc3078"}, + {NID_sect571k1, NID_sha384, + "70279be7d7ac72a32606642ecd81b5d4d0f95fbc3c0b07d85c16adf2788601e44dedb8e5" + "5e0f9e0b4ca3ca35f5be7511b0e69224a05204af67aae11ce154af6d594d47f6e3142ad1" + "83969544aa95cae1edf42bc699137f60178c12b10a67698e37ab9f3edbfb3acdf1b3513d" + "62fe3db33b16cbb4e1f9dfe732c107f9d0c953f6", + "09cdc7e4945c485a41728f83d5188f539e372ff4fe38fffcaacbcb4522428e4f93ef4972" + "556f4398fe17bdd885768f0fb5590df495badc794d4d274e22f2f4a2535555922fa43f9", + "0403c6f046aa3007ba7f883bc1e0bb43a9a0a1daecdea3e2b6c10b2481d11a834af241d6" + "0cad7cab27b677c9ac11f2e5b5226c0a3de13029229af00e5a092340af9b230e0ed992ac" + "f406326ffcd62e1a68b63ac680a743130b1440bbcd3966207dbc8a8f4336eb6a7986aa53" + "cfa4fd7bf363b30706b4fae01568020b41caa70ee3d51db982de66b0ee39777da3fecf5b" + "01", + "0c717523a308418eeb2aeb816346b74149d56b9620774cab582f01681bec73adb779bcc7" + "462fff35685a4e1e114c8fba474c68fe2650344fc9cf610908966a9dd1779f76bce0cdd", + "0061067f377bff6a9be30c9c79d8abb7f54cc8f09eaacdc190beb27b1e6d297cd32b043b" + "31feb49958745b78e42ac074b8722e1a7653bf03611d87c44fd3891ae410b23a2140b83", + "00edbe756a5dc78c8a29baac9e2059154294e3adac9a5adeb7b27ac6e4d4086821cbd554" + "67266946ed8f6f03abff35b59434afe84067c1daa1e0bb62ee7c56b85e7f831eea99047"}, + {NID_sect571k1, NID_sha384, + "4d7e0ad520445b6a5cb46b7c77fbd367614044ae6004494c2b3a89089287e2836c73b799" + "cd8c90139eac427ebe335804c3788f3728ffb8edd7f49a4bcc76a9e24ce3c2299cea88c0" + "4645b82033115380f81b0c1d823e470631008d350cf0c0dba1915519985b8a389ccd8c80" + "9dbd5bb5051a79e631916e0d052d9b6cca18e0ef", + "02bc753d007c4491cfb8ce0a6c96455acd16d37e02c982db216b8cc1afd6d10c6be4e15a" + "3988b8b8b86b2b5b59a5c1939889024849317f27ee08a06bd8e7524d4ad83a1de208564", + "0400ea922b09e902ce3847f14d3b3afc5562dddf15811cb2e7b9e06e1b919d795f8451a3" + "dffcb92b418d30bbbd1a7ccf827ea0f1f6554387fa2fc51755799040133d7a655c7800b7" + "1301f12439a0c0df9f6ef08e89eb1a62e2cedafc0460030810b2483ad9427c48dc061e46" + "40ebbd9b4a398841c863a6e3d510e5c66934d66b317b1640bd05018a35677c6ac2c78397" + "06", + "0385f9caee4731627276875dd8d725fe79626c18841562e8a13fa7531c7be9adca565c22" + "459d519d643ea22478d7c51b4c286920b050bfa54ab7d42966e389c485b52cdb4fa1a0e", + "02ac84262fd121bbec43e81021c0f0610fd2fc0b26d66581ddaa78714ce58be469652838" + "51241d792ad6bc79af39f09d2d4bda83996ab41f1fd206b8293cdb6c4eb9d96f39efa25", + "1d9c9bc330adeee8f58ebfe8c1ba401d4433efa04a44185b0e8e20b634691bfe058770d0" + "74289e636af3e96c118edf31d72b5766c30f6fe84ade42f284fc7f2707bf27b3a309638"}, + {NID_sect571k1, NID_sha384, + "d49903f38b5c9b17542310425e59377f61f5b4f4740cd97371ee2116083f7758e69e7e2c" + "1b0950ec6b76f96e3c91c721d6f2843afde8c7505a559c8a64bca2e665aa1131b75bdf86" + "fb5b90581c7d3b61c2cff88f3fccf356ddf5ed282e27727be061b6925c51ea7f1a495f47" + "1dc8a5ca1a88bbe29e92338d3c9361460398965a", + "02082c6e61d0d72f040905d8c1c20d47b029f41ec68d6cbf43ce97c3b2a0a770557a33cb" + "803c432cfbd3958fda30ec1bba77a6613c318597a85ad02b26c44bb77ca96d9cc1194ea", + "04059ff339d505b307e05adb45aa314d47f2450e1b1aad840b5550a67c11940d0e786547" + "55a8e28fb651e12e48c66cc1ce0338114bc1ffb00965b342ef3a3caf495f1d73a69c3f3d" + "170724e9474e6de57b9f8cbf6f6bb4f73f5769e6cb0e006a34c2510b379995c9e054cc49" + "81c709ca85a3aebdf29090ca07dce5bd3c313c6153b551012d72a8f84600350e8754bc4a" + "bd", + "18d65ca6c2ef1fb32dddfb9ad4603e03c7cb1791a9ec7b41266cb68b6048aa111f5971f3" + "cbef3f0dbb9ce409b59c31cc59bd6f100ee5247f8c36f26ca77cb252331fc3be7346b5b", + "12853f9d695b8ac4431c1ccc8498f3fc4916eb6a5e66b3795a3693f3f5a29ad13e58dcda" + "ca5774f1f295e2d2d3c63c69abbcd9f388a3383371028fdcc8bd77f7554d6aa3f0431e8", + "0d1c324afdf01ea19e9453d2b7397584d773716d6a08b6e38f9a9fb104122ecfcc9de7bf" + "1e5a6cfd52a08b7cecb002ebc21798d474f035fe7d4554bf632f237bce14aad88b47d4d"}, + {NID_sect571k1, NID_sha384, + "0e3f4afc3e7b25c1bf2d98098a5a87db1224d9bb45adc6e434732b8722a708ab80a1f3f6" + "ef3c5aa70d2e1dad3e4416b12cc59171f05736c4b58bd084602c344f2f0bf3cfdcfe04c6" + "4e87597a99de23ded64b33607f7c273ec321f6462518715b11e91361e89ce5415bfc2ef5" + "20bfec378244a3bd2a4b9b6b3d68815f2f75baf6", + "0e298c93351323e2c5304015a4878997ae4e79d1c32f1dc64262e534d4f2c4b3e222356f" + "fce746763373fdfb936fd330d3214a18c07f1205b20c9a941331cd676040ba1fe3dbce7", + "0406ee4952a83477d89ea05ae63d5169cb0f7c7ff22f15728c6d69dfb30d1f28158e2667" + "f9342cfd9b32f2fd537dad47c190d82f72c03043f2a9c5d97cd09d07ed4c35b961040425" + "54026d5935dcebc0ed5a07b7ffa50de3c8aac309dddb61b8c560230379696d81d72bda3c" + "819c46387e7f026b384bb0f7b2ca90c402bb67b5e37d343cc21a8d1a0f822dbb2766030d" + "73", + "12d23969d230e0e2712f96b11e196202dd3e6ac755c824f92b9c765e3fc808d4e7236c8a" + "3c06ca2c8272c7ac953fdb936db30d892246cbdcb7f98c43177e1c30afcc162af511364", + "022f6dff5bc1eac1ef568588e2e512103cf56ebcb610e124a125fb004064a28291c19e83" + "ea08171bd1b14ac729392c7c46354e795d63e3bb087fd100642465efd817b79924408a1", + "1785e1fd773446e3b90b8704cc2723b8da2f99d1d699e817c3c4622015d178b0cebc19b3" + "a6dd972f75eb3828a386973c0a5e67ca192d69f1a84c825d1253f1062a990c3f1a947c7"}, + {NID_sect571k1, NID_sha384, + "8fe32671f6927272fd3cd8dd4e34d44d27fac8c88b41bf9a48039e914990bf06d1633b38" + "b9200ce1c2a275b9c55498e5da2d0707322c3ea0a0fd7aff598fb801628264e13047c800" + "8153e8595a0dc95d54e70b882ac2ac9314d2b78e7b93922da818d7075215e354708994af" + "66958954c92c074d132dbb2488e5a531c755a8e2", + "104f4ad56594c5cec2a988c5596d73adaa5a81802b40110dbae698ddb1f0b271fd1479c3" + "8abcdb9b234e69cd0da8a0328d2135c287d5b130a09fa0b899058e7800eb2dfcee95c1a", + "0404e8151aaf2aa6a6159622baad134be41c404982bb0101e820eac8f0a52166546c5392" + "7d9b419604e9b025757eaffac526d4fbebde5fba0841c6812dff2e9bab5054d4074a125f" + "fa04413639ad72d6eba870e1760c71966544f3f881f88880fdef1edeff47cf6c235e8dfe" + "f1eb1d8df51f9c48b985912f1f70b61fd3d4b859e052887560872fe6e95db0f435778d5c" + "4c", + "0cccd1bf3424d8bb0513fda3db93e81bd34175d84aefafd26b37eda9e767618247bdc94e" + "d2b1882bcae4c83eafc30a7a4a80806fda10a5e70b8827287eed8eac2721939a63c2175", + "05b1460e856548287683dfbb93efc869e80333a9ddcf292e2fa3b3c8d430563a01340685" + "c6db1059aaa8b298c8db9e8281f36e3a9664faa17f413cb439ef24cbdc1a4d58872ff6b", + "0c6faac191c95738f7c6ad0eceb035e5d22ae85e4bd0e27f2e65ab293717c0491be3d1b5" + "ace80f4cb4bac7e33258706010c2aa48d84c9e39c95e30805fa7669c42bad84386f7754"}, + {NID_sect571k1, NID_sha384, + "a8fa01136a0a78313a5d160c32fe5d1805eeb3730c18ca0c47818e82c48eb4c9e5b2dfe3" + "ee5facef9ec59b68f4e6f3213f77fba9f8ba06dcde546ae348d343233883894f4423331b" + "536f62373a495852977a51cb192cfbec04b5582b4ece69f345979e234de32da7a120138a" + "057a7119735c4cb19099bf48bb202e7ffac04def", + "0c4989bf33b3136bcb4ba67906eaff2bcbc6567635aa4b057acb7353ee87ba3cb4cb9838" + "f8f679729d5c6ed98e6c4199cf58605f009c6873a1b8321f83cd3c0973b7a3cfd9dbaa5", + "0403871c7781f2b4f653f0d49a224576bd1e5363d5171bd21da89f590f49fc212d8a57ac" + "8a140d923c2949ca287bea803afd763f15f909c099a07297e8ba1b37c70e1e8f0fd1fe9d" + "1c05806bd5b4858ba0814da2167d232d55bb5c41ea0a36fb28a0a151c1b79b22cb16613c" + "cd9dbf92174e42578ef88f4da6eb44918acf427fb7e4022da3376243e75410ba6ae012dd" + "fe", + "0a9eb767077886c48bc54503a0d2d62f0192d3581bd9ec253107092c22f68a15293d7c3e" + "7aff56282f0cd35e86a2b3c55c9eec079201d99b5f49946780ce6aa18b225c2dfd72cf8", + "03eec6ffb390ecb2af4f5ca17fa8a7fd6938667b319f0f61e5c7523efb77afccddddb511" + "4ca8c461b1c28dfe7eb85ab156e24e891cc6f9511d703e8b3c8443d04fd8de80f5d65f9", + "10cf3156cf71dafea6a0d6abbd503d72b13e6a684076ac900f390059cf3fc325966b3548" + "b58e14a82bf291d9689783b899db7d4baba524b0b63d31f9900a84fbabc2ccad95742f3"}, + {NID_sect571k1, NID_sha384, + "ba2d83b21c783d6ef2f3b7b10e910a418a9b9f49ae0fd37990335b3a3d15627846c9a12a" + "1f31a3d0e062ad1bec5650606ed4dd06c30e50c1e8761a29f4ea1a20f74635d5dac22e5b" + "787ac10f4ee82b338a641484f91771c128c84d31cdab0a6b9616078c898665655ee9dd4a" + "e73d33b94bf091b064928b959623aa71ff73b4db", + "1a96f2ad56e31397e236cafc108087479c9823589a5fbc3dc7488d0e5d1199cf245d7f21" + "f524cc0e8b47feca14c93fb760e631434a91188b32965053942f3bd39b3714f9d6f1a11", + "0400195bfb66e20ae295cd22d59b27b3880a890fc44ef5c720b568bf7f72266293841dcf" + "0572063a96c62736d9d4a9cce31b10c03016305a409858a79070477d3e989481ec555c81" + "460491122a199176e2492e07fae4ddbf02d2a40a21bbd99b8f742b546db2018cac27fb4b" + "1c03cff55f61b7caf13b0f3b097ffc8e1549eacab89225e0cf1e96b268eab7f9a1a69258" + "f1", + "097e28225aee5bc9a970a150502dd14bee900d3b040b0da9cb52f5824e66af46a991bbf6" + "423fe1e089cba47593af555b07b45e47b0f4141b0412ddf6e91153213c5b8645ae7bab2", + "1439928b55917e93d59341532cd1f9d09de1f6e0d9a04514bd4b692603f2cfb75a579301" + "b39b8cd92fbfc8832839691c23e0ad3efd3b4c7c3e9a366c1554c6dd13c50dd087b3055", + "1fb432e72be6fc524a7106b21d03fa71852c18c67edcb8b265db3b144214e7e6d10caad9" + "1f81616e03ae7913fea1e8d11e90d54b17705e8d04c8c20f0f4f46f117cc423ca178ff5"}, + {NID_sect571k1, NID_sha384, + "ea2d5f4e9797bfc2f33f0fccaf530db2bdf8abcec00f09a0338eefdba318221ec0e050ca" + "d1a85c3f76b784c6e8c18da2b062f333eeff18b7b781e67d6d0a4368b8231a892e0f4103" + "012348e5df53ac745e4d34e2cd1ee9369f97d4801ff485fc144b2007008036bbc07cb1c3" + "02a00054b54f3713919191e1d5052978c9c2895e", + "0c08ed8e0e0f8b0d0714b46a2164b933f8147692f18da97e5a108c44d5a5cf221cb50536" + "e41832b83bff4026c6df156386235cf5e3e9a67b7cf9b2fa7707c5e0ff33a91601b8e34", + "0402d516bdd1914c83aec1cb242710ed79efa61cbb31dcf8d238d8f5e089158b2ee2bab4" + "07e01996a1621b1a869a98227c12296cc2a71c1ef2d0f26bd6614f2ac77008048abeedaf" + "cf0151474bef5965c455eb95ca2ffe1d589107dc251d22635f4a9fc7270358b64e4d2b81" + "666b60c4a5c49902b0fa9963197b22f90a09cab97007842816f64fc49e351710db849800" + "32", + "01125bde6086753b3bcf29b7d5a4fb0a8abffa6503b4f0b39960eba226062bdade57e4d7" + "3e8c1621792626203e83fd5c231a53b0ce10890881460802788d481f233466060f73359", + "199a1e40229786b966592ae6e275874ace23d5605d0c3371a4f9eca7ce4858927958bc1c" + "2780e9f2f79767c1c72117c79c408f972006841cb621837ac002cc6510e0432d99a1f64", + "17f4e5e23e494ef149e4abce2d8a1ab10e3e6c2cc93998fc63baed6565ed350b220b2828" + "55e2824f398ae76b8679201b43450f62237f6fec643ea659e6c86abc24a63d82d9bf219"}, + {NID_sect571k1, NID_sha384, + "b2293b0a09f41decd9d8e637b1b08c2efe612f33c9c0beebb6e05033c6103b958f8aacd1" + "25d7c810b4c287349f5f922d2c6ed554be597fb8b3ba0e5a8c385ed8ae70d5ae19685298" + "f20e8d844fb5ad98db12ba7e5f45baed9045c3e86b3cac9bd55b614b82fd075954fc59bf" + "c6124cbd68edae988596575f379d8921b594c75d", + "144090a0ee38cfa21fabcc24d35139a99656911ad4f6dbffb77dbe74e7993edfa9fd63d2" + "c4f6bbdbc8ec21ba13c9f4a3576b5d6e3abeab5af5ac81b1f2bb6d4c42dde645d854d9c", + "040208729b3c7abadfc221cfad8be642588d5d1c20989fea731cfccef25886905e4b1e61" + "cf9548d89c24f5706f5243dc8aa7d5b2675c2c6d2755ce6a12e5b12c28a2cd9c597b7dac" + "b303db73ee445ffc0f6c77467f3add3b1e97061117e221687f5589a030f5248bb959bc2e" + "d98c9fb66da8679dea3949b77652dcf83ab9c50a00f6a9c22bd8d16e093b2deca4b0c759" + "6a", + "0adcadb26626eb9f8db9ae98c6808840b65d6f886a3f0c45f0b993a8bc62bb5c08dcd879" + "40dfef4f220f5e50234fba3a55e7127fcbb967ff78ce4fd6938a9bb653747116541cb85", + "18f7fb6ee028c3dd754d6e7b687560fa269b5a5fabb1d98529e0a27dc66bdb1ed79b7b5c" + "64fb71e767d9497b9255f26b8150b9903caedb25f51594f5b7ec2870515f701bd68faf5", + "09ca9519388402d5d96dd9ef2d4ebfd0ebcfa58bf8c1970d04851b2409671c9d5e4aa833" + "555df374469a4d277aab93b8df8d553399908c930f81c2d9769f1b30a13f61c02b16852"}, + {NID_sect571k1, NID_sha384, + "acce54270252e7d9e983c08c993cd6b7e3caf482a9149036afe4665bd3d0662a68180471" + "87872862d5718b8ac063477f693caf1a9baa8bdf2f36d411a796f2b46ab56f66bc949242" + "29f8264016d6769c85d9bbb7d6bb042fefdb8fde1be026b86af2017aacfe38c97309b468" + "9b23fff94f1de880064f1d3ad9d74dc804c41f41", + "1df26b672b2e3617b6b6c631d3c6be0cb49c0a690de49643e0f416215bcdaefc03fa9c70" + "8471f1d87476d58c8f147517ec8a14aa945ef001fa01984d5c3d81f7083ea500558fef4", + "040767ca8fe8f3a7addf01b230b99499b33c83db95db05e1956fb1891fed60406865291d" + "79b0daca0c307a3ec8b1bf2ac2cbab728c6ec65c013e01775ee21a29305e9403f72883a1" + "3800acfb786b09e5185dbd8abf831d12967107dc57a040d7c800d904b530eed1e19a8e52" + "e653fe8bb824cc424d7254532d0fee62e8ee7ce8e871cbf6e4ca3bc040444585b9a4e397" + "cc", + "13e5e47048122c8301258c638bc0f00f8f9646cba927335535f68f4f4f51f23ac5398ecc" + "21eb0bfe8fa6a2084e11fe67587bfa791cfbe2527797a4d98046f9df37662cb7e86a5a7", + "164b3500ad14063101b6c5ebabba53dc5acb4d6771d3b05a505e6a67727ca8ff73d996e1" + "329c0f6d8f738237ee0f0be415003e2db515ef93931e09bdd853b9497826929eac9e9a8", + "06b65511990c061a6d2a97fe2a5053c775ce2bc5471865abb7261d0436a04b79baf41a0a" + "852a57600cd4c6a114b3a8466f721a684aac2592640bc149980545daa271fa9b146f2fd"}, + {NID_sect571k1, NID_sha384, + "e25274ded4840df0d71d3369007118f002b83e2d375c78f7e29ade067db15cce21842611" + "f3f015db2efec57da77cb9d16eb1e00a8c1444d48dfda569e29fca1ebf40a22fc646a9fd" + "44460f0e473bde487634bfbdac2c312f66a1c2982c6fe76c54ac72b6c8cc9345e47cb319" + "a974b3cc4bb40634df74b4ad7e18adfa9a71ddd5", + "189918b832e9fa30161fdd927bfc267f6405335df3d66d225e17173af52a671138883bcb" + "94c4403ca3e001fcf09ef4c6488934d6775af2b1da30a8f331579af2d0fbb530298d8f9", + "04053e6b43c0551f32b7b34467d188985600c5c0ed12448f2e763609f40039f92002bc8e" + "70d8dd3e337c3507fc996a1557d5f2fb3132507e49ce653482cdc86f6ca5903b77fa1619" + "d904a9ac78a2c23be0841b96cdb1d55862e4854b530f1fa3f469ba9f7185e3f91c28d03c" + "27d9666345bdbc7a44764595b303f49cc43bc2d0e944862913d280273cfd00e15b6b55f8" + "5b", + "0b47a185140b583c330c64a10d50748e019134bacf153cb4a23753f140a4d607d5771a8f" + "0f535f9c35baae5ab6c37a55f38acd12f15be18d5bd9662383b30e4d0ce487e8cb553e9", + "1a2ae62cc9560590177aa544945377ff6ab1b34e7e32a25140f99996c130e17001563664" + "7756a5e8522c936eb1389c206ac74c012941269165f3772373047521f69510c7f3e6acf", + "1d86f4a6ab2bba7f6305c2df754652bad40d7c273ba2aadfbbe65c07ede4ac0e65fc0a37" + "a0139a6ecab296f58c6c2532701bb008bd9e1ecac2771d9384aca094537fcab47f3ef06"}, + {NID_sect571k1, NID_sha384, + "d8a4aed87c316012482819b03a1d91691f2ad11a2f46082497ea8f64880d686891f7da55" + "0b2ac17199c657d4eb9d04d5cb8eaa180f743b87d23b1c86103f9e9bb60f4e19f0ff9d16" + "0f180aed7735130c03adb62502e69be5c624ed7bda2301f30580ae0921b02e103a638f56" + "23c02c186e3bfe6ff134c762a2bcac1f879a9353", + "0bdcc175eca3a399b944eb0334ff33c4fd130999c8ac0e7b52ac5b774fbad53ccc3a3102" + "4f5262b2eecfeb2104b14bb244307effe3dbe8ed25686dbf46a42c4b6f8e34010ad826a", + "0407ab1a9279a8408828c2bd21ae6c643ad82633d636d36fd91498cfee49c8a635313f56" + "993d02cc46da3f5b78fd243516cd23c14a4c8d79cf27dfcb05f52f0cee59cad5646a9389" + "b80799beb1ada93a48819ab70b74c36d2dcc3c5cca1f7a57ec58e643924c3ceb7a90c9cd" + "9bf7ec762a2c428d16ef431a45cd5d069cd828601f903cb0a28182af2392b5ad12ac3a24" + "c6", + "04ad8d2759df82dd70ebe9f3402d3d533a1b4635dfd0024deeee52b32373550f550b9fd4" + "126aaa6c3a9b1f352c40c86e13f78e259abb17f85f0041e0cca9e2ae59f4ee3ba2fbc83", + "1cf9ce41dd5dbc3bee9f46f82e4bef10cefe79a87e8e00d002097045b9acd46364560e0f" + "d27b0be6655e73b5cff272c8764b4c80ce0e1c91a94b8d05209a28b553f589ee2fa1b11", + "149fe587b144c37df2c48c2b7749c509421cfebab734003e51383cfb773c3ef5a24fbac0" + "255cb807f5b95607121c5848d3f9656227b61d5a14042351de084d9b88745be242b6158"}, + {NID_sect571k1, NID_sha384, + "acbaa5ffc4eee0850075c0e502a70cc7a897a919f5e7bca4e798385601a26f411fdae546" + "6ba9f6b6d8d7f819a749b799fbf4a3bda9105063e74914e8583ed8b31ea4d22164bee6f1" + "4bf53afca269b901c80cb3265be32ffd4ca4bc4ddb83e11eff82ead6d75dc4aec8e5c67f" + "35d58a8a156cd1c0351abdccc0c5396c8fbe6920", + "007ab5a55a1d8ecb7f5dca2afdf9ef465569a4b0374716f604ad42a6e0271e934b09655e" + "8e2529784b69b2894bb399b02aeeae30e9e7ae70a2a8e56b9e775bd978a04c728e3951e", + "0402df88e368c8162c1dcea5ceee3a4c52cfc8d6121eb81c31236ba26dfd1874c61586d2" + "daacd96cb5ebc7053be57641bf53bf2651cfacf370cf470db86e1470bf285c7166c197e0" + "94030067763f9fa6a9082ea16dcbf53c2b6f11c9ba1817198e5a4e189dd98141ab682ba4" + "de0b3f873ae54efc080a2a03f755efeba3c0ade8ea67228b1a5a11d730302f1eb7c6bc37" + "37", + "0d3dd75ec61e0f87737812fe1ac86ba336b1512bb9f7ceac2c7d1a5b4d5dbafca57a5209" + "028cef9468ebdacb2a35988531baa094a1c901d9650f2c5d8e03a1621fb33ea85e2b506", + "184a98dec91b9afe52d4dd6b2d9f2d7e3c42e8e614332080aafd2621136ac7965beb4e8f" + "97b222c1b2e5448b79534db4e710331a2f877f8fc2a9259129f0b24d24289495da22542", + "0fa384a04c4b0b0745abea373aabc09404a6037f302e234e7a2840ff39c2b86ae37c814e" + "8bf3f3f7cf743748f2b88d02d66a3adef2028de94013c07075fb73f00555aa900337149"}, + {NID_sect571k1, NID_sha384, + "9a57b63a4f418404e8f5dcf3052b9bc04a4f6d2c33bde8651506d9cbc5542ffb9023292d" + "ea463111fb78913ccdcd182faabbff9164219b8900c7f9fb394f7d9678f77b18f8d58526" + "ec64d7c1328953b983a7c416583e05a069cd76aefe26e5f5687b70abfbf9f58f052dc086" + "3b4fc3bef805cc3bb05bf76a83235af9d6adfe66", + "1e7d4da72b1d82e17a066fe387f2a0a7fa4c60ab993ee09710531789186077f2f32b42dd" + "da497d5fb57356383e1f96973df043307f0b6519430c3f0d40d62954032872fceb7dce9", + "04037c59e95132f0027f661511d1bedc3018bffa62aad7f44d7370f5b169d683882fca3d" + "d0c4260fa8f72a47a44fb0fdcf0d7776ff0632378022bdd223753c66f98dc04904344ac7" + "4102d7f19468b8e4f32eeeaabd6e402a35f38dbb9f2476cf07881d8bcff170b0a6e1ff8c" + "b1bfdcaff734a32ae9bf34a909ae7fee689e3f1ae777812a45dd46ce13fe648016353c6b" + "b7", + "18ad70fb9c5673e5a39b3a1655ff76eb84519555a6cd88e86a26f9448a54f04516c2449b" + "ab3f75e74a8d15c69926ac43fe01ebbe7e1c97e73870e3cc4c0ca431cf614f35659e3eb", + "12abdbfb2eb08e326289fdf5615057d912749db4f17848c1ac73bf6a51fbe3e1b2732d4e" + "b656715a6c459c6c3065b67b577f21b8eaca7d657c3b3171e8a4849f55024c69487e50d", + "09609da5049092e0aa8ebcf10c204de54c968b09b9bfb3eff90b80bc675d557967b35f52" + "e459f37fd198a83a858e5d7f9f5aff8b2ef7272b236dba5857e88515ed471a60bf6da49"}, + {NID_sect571k1, NID_sha512, + "97b79c76d9c637f51294369e0bb52c4189f2fd3bd0607f91834aa71b3555605a89ff68e8" + "4fb5bda603f502f620e14e8b0c7affefafa2f0b303009ee99653ae4550a05315e551dd12" + "a4d8328279b8150d030b03c5650ed4f8d3ba7c3a5361f472f436b200b321e7863c771e20" + "ddd7bdf739c51de3676f953a5501e4477aed1bd8", + "15b7271d4319db5743119c8103a7d4c6d57e9c62f3eb93762156d2ebd159980aa57cea94" + "8e416717d715a2e458851f1b2e9ad4172bbcc53861db29c3ee0ba8e82617a5866170847", + "04003a5b9559b2058299161770166766aa65e151ac6a22a90205afd27de5eb99c5b1db36" + "9ad52f09141d3bf08884b96414c283b2669ec2a2a60c960a2f03d425dc4c229c0bb369d9" + "0f0024f3a9cf3dd257043dceefe6617a98e222e1cc820f3e19e63c64fdcf7ce8d9c7af73" + "23c9aaaef4df02e498597581082fa3767c8a38f508f4ca2c1eed6f298dc8142668a00274" + "90", + "0c585e425ae4a34f9b7b9205f095ea07599716f1eab1a8bbd934219ad760c4606ebbeb06" + "cbfd3952e045a040b8ce20603aea4f965d1b6e87eac7a61672823fb2de7767e3466c730", + "129162cce6fb05e1fc8630ec6c3a16d108bcd251719d89631497177e6fe6d1373f114ad9" + "dde6e04a4ee0b4747f91c78703012e5a058c132d54f2ccccfc0f9326b27d60322b497e4", + "140163edb5f3c4b49228e4614bfc6da9f73674eab82678ad9947b2a635f733dbce99ce32" + "09f613e2a75e62ed84db4d7d13de6d789b7cfedc0cb6a028d8316db8831db66c91791c5"}, + {NID_sect571k1, NID_sha512, + "564ad0e37c9c37a60872a4780a723d08d1159ddc77bd834d74c1025cdf3cbd5338c3fc07" + "a904fcad9b979b2a2ceb1a0139af35e5112305fd662a57af6312624b9bdd3a64849f95f5" + "9a46ca8feb2ed56f87f258518947474c1729275c4d89b7dd286ed65f286cbac76002cc63" + "b92a73ab6bd13c4adef282f32297e441bdd8fd36", + "07219ea7917d174a5386df985d0dca798ac9f8e215ab2f0003aee929a2dbd91e37fedead" + "0ed95b1e8aabcf516bdf54337b4aff7ace4c6b3179f2e919a49db50a41c9d4d58d4f636", + "0402fd7f6ea770e0a6f1eeb3318b6b609c0e76ffeaa34e75f56910e8f658b70940cd7a59" + "18328473b279f882816955b2e3702c22e0b3e03863f8d99c64f3a2c9d1c68f59a28eaf25" + "ad06c2cca84218aa019326cadae9639069dd27df4d1e95a4c8e7d7cb426e70e2d38650b3" + "82e325dc3835afa719145d16a29e4ff67de37ac8949641f0d140072f59718450a6699732" + "06", + "03413376b32f18385cced4549e231e514eadfe05fffa0b252732f5c88d13d9c6e0c35be3" + "dbf72029be5e4573b8f8829f6efbf58a12b5c161bb7055d1944eecc93f82c12c5c56d9e", + "1c45c25f3e8eef9b92142f12e4119842122ed7672fdd82c14b3c34ade3243a4c50495c06" + "b5984d0260376c4fa44c60b2e34b0084066d693943071bb663a44884927352668efcc62", + "08cdac0f4498173bf4e59de98ac9a26fc2c752cfea7a5b75141d4e1d019e25d70a717ac3" + "ebb82884436ebe1007b0488c4ff29fa31fdf02f77fd99535c99b69c9d4e5f432516da77"}, + {NID_sect571k1, NID_sha512, + "072ed5b14754fddaf54e20da42432df49bef38f4a3b1841b2db457ff86c44880727aca94" + "5770adb41269df41fc17f6a687bcaffaa45a3e59070526ed53b8dc3b78cf9a80a85461ea" + "f4b477e44d5ec4c2bab9c05aa747a5a520b35fd09e8b44539d060ba1c3470267e0dda111" + "b15dbb587614a46e1e477127f963a16cf3a43ee5", + "0bc623152253da24bf8d752bd78aedf7d5f6a2f889453ccdec14e10753335ea8bea83fd1" + "81a1f3680ed50f2324fbeaadae160cc85831750e021f3e44121ea1b1efc29a7d0069479", + "040003f3a6cc6964ab2f6da95c0a2a7b75afe4f77faff16fa28aa67809afd9495cde1f5d" + "ce079ec4e15ec8c1a2095a12e8adc409fe8729d865f50ff31ee75d7d807afd2c15cb142b" + "e9076b15c1ce931ba06dd56dd8e4f544425fba4f37f951a188c8e7eb13a2850c93b8ce60" + "f10b3783647a2d053e2764a957656a184a385e95c2013685d4954a2b2aa20e4a15dbc43b" + "78", + "1e091f4febd694879f78e83842572280daa48db65c463e66d9a7ea57b82fda531f116800" + "530a03cef2cf7e5be5eeb6e420213ff757c27b8e8a94513e417f4acc62adc02a76a4fdd", + "0264c499f7daa6ccaaf191d3502e86458ef088c9bf2ad989851c221364b24a1a3f4404fb" + "d0eb44a41938ac6ab67002faba0bdde7f44ffe6bc10def8317c4e2807c3ca711cb6cd33", + "1b91c18fc55635c5e3cff70503e7a49572ba52b11bac193230c88d6eb65eff6b2d9a01f5" + "3ab0eb34f5e208538136811157f872a8255b4d249b6ffe021b0c0763cde4d7a7e72b0b3"}, + {NID_sect571k1, NID_sha512, + "e660dbdf3e61af39b83b95d3f1970f66d616f03273f7dddb98f768452b21cd39604a31cf" + "80590d4a5e4b0d4917519e10fd325dd4ab7a52d70d154506329baefe0d5816f514ae1094" + "83122b4fa8fa1ebd7fdf1fc4e21e8d278a50c05d81c8f489596633d949c6c8fea96fe914" + "30c01522a5afbd5042be8aa47da04581b2bd21cc", + "0645947d981d258f2954558c31022a3b6ba5fa7b675312f794cb61bfff1d9ce87267e4a1" + "dacb7c8fc58624d31c85ebe22f80d26a620fed5df5bf38515e0903f0b69a606048197d8", + "0402d03e05c4b555943fd69a299249e7148e99633b286da69bbcda64e7b06ce9321d62be" + "ad7b8d095a68d9a3ab9e9cf1aeb1d8c4904a073c21806830451a79fe7a907b32df15ea45" + "67023cba4f6f1815cbe1934734a901206596c6f482011f6cb6d452329f9412d2ef456642" + "9e7d35f2d247eaa7849ee141bb16914b64920fffe6b7923cfb19759fed6e1f80d6c40a0a" + "e5", + "18955bb752f0af7d7aaccd0628dcf1f52d836fb91dc78b0fecf21ff5992d9c1f891f0eb3" + "c139803b88736ce10ba4733a523854c4ae9ac35421beff9b20e0c8daf90bece46737579", + "110a428aa96277c9a13d4529f58ecc57cd7209a7340b4a78694dd9ec800f36c9c306221f" + "a110e0b3fd65b9dcb67307b7d7678997a3143c04ba96d72be83a1cd6b01ef22acd0f82c", + "0b7ae2da5cd36006a92a5b2e6369afc2728a93edc845ccb1500e551be361f8658819f7d3" + "eb82ad41d7f2beea1a1cab6f103238a6025acbf03a2b08339841694022c17db8c6c6886"}, + {NID_sect571k1, NID_sha512, + "8c9acbdc431565feae60e08bc7da113e12372ed373f1e1fdd581f98c8a7b0c79ac4aa42c" + "7ffbc963fb4970fe26c5b5dd314b7051fe971c1186ebcb5650f7f7011a924de893f06961" + "b8c75da7bff331847feead4abd2e8b9d6ecbedac18f4eac207b948e6e4215e4d5cb483e5" + "c66ce7ad788cb89604d3a3e051539094079e7bdb", + "14cf93ca69d94ee8fbea0c8da9d76aea092b73073d8f5385b65c6dd4d567fe86bc2cfb8e" + "8be890c3c6cd9abf7dc3a17eaecee3d7a9455887863e496c48dc3e47821bd3d825b6bed", + "0403dfd1fac02ac4bd3e3017a3d94f29575238937824f80ba0b2eec185ce8c641e9fc721" + "94323c779dde8c4fd6e748e09d66e82c82add75106a0e1739f2b977d40ecd3cb15a1eca4" + "2006a73dd31226adba7ed8d08476b5af10a806fe8de72251400a83f6c9f6edf5e0cd6bd1" + "fa8f3595c3ab32b4c4548729c455e4eaf83230e1335cf181cfea6b6bfa6cd4ad75ac3278" + "cf", + "176972d9402d5d6c9753532e5ea907f256a872c100f87bd390c4d610bc00c408a97bd55d" + "ff2de1ef2fa8b9716e33a5a39bb6ed2ab541848685040656ad0468b360f42c3742c1fd0", + "00be28427524a3b0979cd82fea407463647a77ac45c489744a9998b545a13516abb9213a" + "b0d89a2f5f872d927ad48dfa502de95524f94f34b174933f3faa7b554a1c2c3a688a0ed", + "1d49594454516c1876f23f2ba0b1fa4dd8bee028bed5524b7635a2df5b8459f4832b3db5" + "f6074cf07c169cbfd9099a85ec2f5c42043c5b851c81a71c87affba34b11eda67e0ab69"}, + {NID_sect571k1, NID_sha512, + "53ef87d6ac7b9698f40b3ea9f3442e7b64207b140b7f66f73fb7d5f8f98452d30a4e493b" + "6c0e3268371e88e612b818d4d847f032ed4983817d020411a52d81fd2a17b58ebdec199d" + "817c2a8ba77042bbd747a6fd4bcc7e844ea829fd8461b389aa0b5957d92962b6d4e86385" + "a8fbca90b8fac40944607117e9a4ef6dccb8fc1e", + "033feeaaaa28f16bfaf5ea9c7319cf4561ba4fc55327a8477b6cd58ef6ccad3962ee1f3e" + "db243f3a04e7e49c8e23509fa2d63252adb186b8bc7e9255cd61fa9bc45242d42da3a68", + "0406fc62c39bdd41ef7083ae10dad59e38dad217c55864a55a6a80bffe2f5e7da977d79d" + "b9ed8c9ac22d6f096129a0c680ac93fd77da4ad96e292a19b48454f91c93a3132559fecf" + "07066f1f737ad3af3df674637aa5efbb844bbc441966bae73973481628e5c2c67cb74553" + "a7c8f2c5fc478edd8265bd6c99d6ce122a245e46fbfc21992b950f04cbda5eb220261316" + "c5", + "0a5b86b76f98310a25111cc3d1b0b70fd0c20208cd0bfd8007cb569a187c3a97edd8e716" + "aac938900c3ad8ed3a0d091a18555ab532b50f25184454d84af2beafadf754862b8ec74", + "0de2eade32f537727eeb82dce610b48106b277d15d8fbdb77cd312ab9983ab21bed05f05" + "186a5cb2b530ba72c8c68b768c26d942f9224c6e6b9e7827c48e129833cb679c70aeb29", + "15e4fb92190bbf8dcf7548057d1bd5e5ec54a6edf54f6b88f50e96ac87ed7a7b7c0fe1e1" + "174ba3e822fb7e7c083948296cdcdcfbdc4bde036a07f84d210001ded91c554ace71efe"}, + {NID_sect571k1, NID_sha512, + "dca1b7a9a313ead11c2d54739d9017ae27f9d08b3544e418aee862bb57e427636cb6aedd" + "a28e10f12aa15d2355f4f8ef112a86fec5dc46e6acef693cb8fc37c3e4885f3be3d3ab31" + "ea4d73a0de904e95c7135a149f77b621d642f9bd8ba192d39cfc58b6f19a797c4f3b4f3a" + "87054298e3ce5eda0ff7f44f8134c9a108285dfa", + "05613dfb53149bf5fdc4e08ccc1c752b0b66ab43aef2d008ed40f3df40fcbb2938d2c41e" + "3ea2dd4428aeba9059a97efe5593119673866a19d27a2ee37dd357e22b6bc849e7e22cc", + "0407ef12ccf6b64c7ca64b5da45937281ec770ede572b9a8eb685f3614bc358ce550195e" + "74666af9bb54379c1fe1304b76430d1e51a9976bba02e5781154c9bc187a31201ad99cb4" + "8e043d4ca20f06b26d75be1454e96f0568bd740165a2bc6e5b8429d557a79666bb7b9cfa" + "597d392cc5b8ecd180c37f9fe2088d7908e59ff644ab05568d974ab42ec9e01676e1b241" + "69", + "10b4b67007af35942216e9aab1d6561bf7684f334a80c7d909a6154cfde8ef06a148af10" + "4d534d7dda59b5cec7949de4086ae669edcc4d68b88347d2445edd3037525c97564ce78", + "15bfb47a27c6970fbb3256410d5c2f6c04eb308569a966790636899fdb3122f9e3015455" + "c4b50a6bd8cf519afc22ea845794f51e6994214feacf48322af48590d02cc9812960917", + "090c61f6c64381845491dac81d5273d58c59d9cfeed214527a52c8f23b0146431692a25c" + "bfd77abba22d4bc61ef24093c593c827ef645853bc8deef7c3b07bae919152b90c17f4d"}, + {NID_sect571k1, NID_sha512, + "aff61d62c8f5c31bbb7d0a64a6ac589e918bbf2f13e7ad13abb9ac26405e267249a7c992" + "2139bc28140833e10976b87e91cf28285274b2b48b63d24ac94c85c70fafa78f8ad05955" + "c0ce6c02b841ee196dab12306e3e3d6138371217e2b474f7e67a80bbb78a47e374ffe2c9" + "f86292e471c551da50d46e7b5c8331029f369767", + "11b92c8b72b86c51903387a65aa206988d443d1988253329ad3a89c902ff1ef8cf73b7f2" + "e4aaa352443bcb833712d94c3e637ec12cbe4c2d4606878576b17fae1512fc77785b737", + "04022440b63bb4557996b63faf19d9f391c5085cdc2cda3755622a6cedc676222ceb5a56" + "ec36e220e507973c0f07e4b2e2d565a69967804ad311f0658a9854b1eddfb5270f4a86b7" + "69050199c9e443555123f153249cf7256dc3e82c5d8cb611adca0cd4fbb0a9a90296bfa7" + "70c1b0c0b43e4363b0227273a9ec9f00ecf83afc605b0dd2e5e24f739dd0b4ef6bb11950" + "a0", + "0e5ebd85f5fd9a9a81067fdf51b1906023e68672d160ddcedeb35787688dcdc314359ff5" + "347907b685a718ce38a69be17de292eaef189fb9ee8c63271bd6818904cd246503dd227", + "051387b0d057985dce86cb962bbca7d9a047f70d96c20539ae7d6b7cb8bffff606f03b83" + "15f15a53049c6c1c227f86d395c2217d32aec32bbd406c790a6cd2706775ed8a0ba1ebe", + "0c7f3b7e4a8b65a58c1280110f6c2486cd2d2df7d48b49074e98accdfca4a72fa7d43bc2" + "5c6576279f4a70f22c98135ba79158bcc3452940963b556304da8e1ae88973d827bee32"}, + {NID_sect571k1, NID_sha512, + "721017294f17ef351e41256b57a64a79f3636628c4bcbe676ac9a2d96076b913dc4b246c" + "9945183ec9bd2d251441b5101eac44e2fa1bef59dec03ccd7fa5accf3b7d094d68dcf78c" + "8de4e2f19f56bf0dcb3b66b9421ec3f8b353b9fd74feb2e9affe0bf9aa421b6f03eeba3f" + "fd58fba56b3ebd094880e50de01ee62a108a24cf", + "0c3c90d5ce4375a08b85575faa78ee6bbd9e5571ce5a90582042617b807339c282cdc3b0" + "03d82006264b1c08c20af4ad4549fbde53d262facb98d923d81b8eb6093374b6a1e84cb", + "0401d900b4f64c07cb959049f2bfa18012f9bc2dccec5a73e9a48a9d5d65499e31ec4a16" + "15c4c50177c032d388263eba1a90e07ea68f081e10272e88a41389bd2626961b646c76ed" + "8e05c094fedfb5b118accd64d5d46ca2ed92b3123a62042a556ffee9e3bf709092fff882" + "31a26917d368db51d1959ad3285c7faac16ca57677651b070aa0abad96f07d35c5fb8a0e" + "e0", + "14d4070307cd269cc1a3c048ec0847edbff46f64c1ba5b734d8a800e50a0a02af57cf247" + "50d292e2c247ef1b860a9d7b5069a32f5b0546fe9e019e04af62316eb79507281fbef6d", + "1cda7f743c47ae93a9fa533145feab4c46252afabe3d54990663b5891b4979c645ccaa05" + "c744420ed6fa235952f370f5aa187250d7b069aea1123f19f0f18da18fde98100ff6ff0", + "180b4163f2eba6e3769d8345dd8cb003ea120164442efa885eda5bacd75f8d705b7f1bae" + "2976f67cdfe984430e36f93455ee7528fa6febfe92e42a002da165c63dba8fc589e7851"}, + {NID_sect571k1, NID_sha512, + "e2d1f33681759adb7954bb5248b0db3c3885fea0d4c1c0c226eb1e6d2d3ef1b9ac281a0f" + "1c2fe5175b67114b6a501e2426d1454bd5790dcbc4c232cf06b017de8a9bb39e6033f1ed" + "b5003e8de3b44cc3d6150c3c952afb442952483cc688908337b7c1a8b5c9da70937ccfa9" + "8b2b0098c530ff848010b8e8ee0a8d65283481a8", + "10f184c16228d9034271332178ed485d10b6aa76003efc160d63fea26fbbdf5552205ac7" + "df0d8c852a1210cf0ba512f20b798827b36ad56b12a826fa7dc1db45aed264ca6822659", + "0402637543ed8a11271bbbabb2cf72999f65df0104758c2fd6fbf3e1c5132ff1c1111fa5" + "504ee86bed8f219d5025f8ae07055a7849314d2d439408ea2b2ddc40320c57f5d41255d0" + "a6014e360137ae33ce6930b844d42bcda4050b25f349e9e19fc4fe82f5e4f73cf9bb5021" + "2ea875a5735faaa1d5494f1685d6c8177448dbf356b408ffc2ba0726c9befb9de9f0cebe" + "32", + "1146574a96394c82972eed1ab7ec98bd08f27653c565f0626fecb431ee4fc6f830554df3" + "5fa62b5f82eaad49524d3d4b0598cc7a2181ce9860e271812373d21be9536fc181c3f12", + "0dbf465de2c5242fb527f6e4a4188adb96a2030ed8417cd9431365173f569bfdd3e420f8" + "6947da10a703370d7f38dc43e2249a2476690829545992645c9c83d82af8adae893780d", + "1499782e0163f80de68e3a580ed08fdec8d6552ec69f186a74be89480be28a0df6acdf7c" + "65a72f115f8a59fbc28bb94af64cb3bb3cab20bd25265237a010370d9a5c781c1e26f3c"}, + {NID_sect571k1, NID_sha512, + "414fc5d2bd56b30040e105cb891788792da595583b11b8fcc7320f40dbf64d9263532dc5" + "7344dd17573c95eedf851668b5d552e8796af205f3a0043af1a829fabc2e93d9af9091fd" + "d9e0fcbcc9d6d9ec960aa60e4e2964c29a2f375400366480e513f63d124db7745847310e" + "69a38c8455e4e602056a6a4a14a8694155e0a9bf", + "181baf9d497159f837cba58a11ca435c442e5ca792ea559bff9f6a1f562c05bf6bb5914a" + "fbd1bcaea75b35f88bdd832314b249a5298622c89462344d3f28a44ba3d059df432fc71", + "0406f3915f884e250034db97327470197d13f0716d1d810e43055757460dc252f5281717" + "b3ef3fdd51085e65a0e073e78b697a21bc33137213981fc05d9b34caf7dca7a4f99be785" + "96047a96ab5ebec6201b7c65ce7a6e70effeaeea1c095a0172e9e2c7bfc88f7b05ea5750" + "76caeab189f810258373cff2484f4fb9c8167989f61aa61ae27113b5140c95f7faa505d2" + "d0", + "10e9e6047651362accc816389b26ea6befb0e34fe7363126f8c4ff9333266f46d63c4d45" + "075480da9ebdd0f8da7224b470d914ea1d68cd821f563b574bdeffdd0b3ed73ecb9133a", + "00e36644cf0861f45b333092d44fdd99f56e89bf3607f75a06920dfab0ccb1831208296a" + "a2431bdb75c5d50f15bbea2e13d185db6d7175c221858fd2b22afbeca7431c290b15d3f", + "023ee3b9ce817eb0a6733c85062cc3bc5f1ae62bdf3a74e3ec704baab05784dbb5ed01a6" + "a2a73c80a3e754c013ba886108d9eed2bc210f29a4774bfe5508ecd876ab47a8527c530"}, + {NID_sect571k1, NID_sha512, + "3b592cc8972a4782870e079b82a50f84b4c2d8ca90bd500d1ce5678982e266c391c556d8" + "162ac3aab967154d072dbc0ba1dab5545cf2651753dee2881eca5abd412fe624bf3f9d17" + "d33692d21ce23ad15ccffdfd250cb1949e73c9e40a64ebebb03852e92692dad1d7baef97" + "fe109f35b7a492b343d4b643a4a7b1723eaecb64", + "083fae86ab96bce99a53e50b7eecff38e4e25b21c4b0f6a4986915de245eae24f16b6a00" + "a4db159ebc27f5a6a072da94ab6be5bf75f5eb3f75c4452bf4ea7014392eb1e02706fb4", + "04078003779e0287bee54df31f64c58951df7999b48b647a6bac416f844485a4cd7a53a6" + "4170f9d2d31fdef0194a0c262b90e5bd33a1782d2ad56c210cf80abb5fb118cffd71ad79" + "c1073f89ebdf0e255205a7525cc12b7e1c58303ac3b3417183179c216ab8e47f33d0af32" + "38e3ae64d418ee89ef3a2cb4bc67a1d2fb1923947b9dbf3f4fa39ff82327d0ce3db24d23" + "24", + "13d126fc4033f537b00a81372031026f6a7a2062863a68e36c6909c548833d1a8f5fb5fe" + "25c7d9f2c65b1dfa974630204f71e96d657095b93cb54b00cb88f32adc08eeff4036654", + "09be9f4bcd7b8ef111337fb665379509b8b17a2212a80d5fecc685f1f362c45f930acaef" + "9df47c33c6028cf7aae424264575b4635a11edd6b005ad26cf2021051501fdd1b77d2dd", + "0dd196343ef76bec527c5929e02fbd5d02d5b0a4b5f2c8561978e600856de56d42943f1d" + "74cb81b67010bae98de0efddfcddea5d354c60c1fa76138801f6cdc5bc932c136309b6c"}, + {NID_sect571k1, NID_sha512, + "0079a02cbab3dc02601fcb5c8607d555beef7cd71a66911ab6514a4ae21c5a9c0e166f8c" + "f5fb198ec5a49a96e17cf041f35f00406b79270ebfe56dc6b8417d2529fd625686ffbc8f" + "69685aefa2fd30a937c02f25b48be4679e6fde821de928b33b12470867def874bb8c7c80" + "38ab6594346a2c44b39210d3610994ba60a05e06", + "1a663efa7bf4d8479bc535fad71e9b5e4f4281aec55967baa008ba17ac2f89cc3398d305" + "73edef29d590fddce8cb157f655e92779f59e7a18d0327d02e7daf4c1216143b3688fed", + "0406b4bb31856dc516be60a0d2d9f42508738edd4f925eca9c72a13cf136720867babb38" + "622fe97df70a1edb35735365f34c74baef9aca539aa1dfdead3324f41a16ca69bdf86b43" + "f706c4a91d3fac9e7647a6aec6e4369158bdcca2275866bcdc5a09b2f0f1eba10551da96" + "13eeb1e8d3233316b62a5f4641d6aaf669b975dfc511f2437d43c9eebe53c5115fb4741b" + "80", + "0a843d0cf776878fa9ceb163d7aaebd29ba3aea0808c3459036b258b99ccae4e2444bc32" + "11b5898c0769b7d7e036c07803497e13803132b3c6301412af3be8eb4a853e939a247a7", + "00356e282c096fe1690fdac4c0c66eda155ec42356dfc4783cff0160e1d76b33a99442d4" + "ee0e3f6e1c5bde4a16c8e18bd18f98a178c3fa4a560d8fb8b4b1d72663576f8baf8672f", + "0c5018c1383fc3847819726e1e940028892e1abd164b413293fe50f219f2059105218e4e" + "3b952b912a3258c4ae52dcc03ac5f027fdfa448a8d58e3aa5c21e790b3b47bdfbf21175"}, + {NID_sect571k1, NID_sha512, + "88573bd94ef50459814806efa868ebf92b066fbc2f7a4be9d2fa06b9dc1a72f72d783a6b" + "cbc107b18a6314511bff217037a2252e7a5cd34cf9d5b2fe9c7846931f0133b2e95876cb" + "800dc4ed7c4a4e4cc4f1195acf99fb0ec224b1f8fa8af71f72d390eca9d6be3879032a31" + "8734a63fec336c79035a43f70271def10c4955d3", + "0088d1a2c0219696a94337cd56516252b74139ea0733b17fdcbf7692c3e5f6c3989e5da2" + "aaed7468e65a5d578571928ca273ec3b6aa72cd196f560f05095cdc8346e5d31c4c2e0c", + "040357801cec0888461ffde22d83afa9ca008ac88518f4b09074d29a846f5900e024a8e5" + "947bc25ed0e5c980a58fd5e9aadfbfab31db8bec575fe886deda80134d91b3de96254653" + "020710806c7ed33f6879374c59ea144326f5948980c8013144345c5070122c0ddb7e18e9" + "f752eadf2a9b0854dfb7d9b2f0d80ff0ba46197ce6017885939e9f59b642a8fa41639ea7" + "5e", + "16940f69013026bafb6f400c037272176b04e35e9f1563d382dc9982968a186e3e152577" + "5d27150b34b8ce5e70b537f0149ce1a521d056b52e75da7e39ee8a529ed987c70b8234d", + "199058e36449ee1a3388d7357c9c1020b2e4c02144aea14b041bc584a752c94fb6e47495" + "9b24bd2c0c104f5ecfe223ebdede672298c29195033aaad5db1852ce4dc3185ba2409a6", + "11f3defd9b442378c461e2c68b239d2e4afaed691238c5ac4e0be46ebd461639a60176f9" + "884133900f988e2d730d34df5e2bd8a14681014c0a213f8d233b3c50ae3064fc38d1a19"}, + {NID_sect571k1, NID_sha512, + "d0e02045ece6e338cc8ab41d4a064c982ccb1748c48fc2fe0a6f10bdc876094358a6a90a" + "45facec798a83cc95c6795cf0f0d7c66b77e22cb114c1432bfdaa1485ff35b6a58107cac" + "3b7e58cb4f6c87c68db60b751e78f1fdfa54b8923b98caad0a4f31226956d065c083ace5" + "f1e9e91944dcca51879d782e40358d58ca758750", + "16cc8a0fd59455ed8d4de561fd518df2e008f7dfaa5f7f29ac2489a411e233917b43eb3e" + "be2596fc824be58871949545e667dbcf240dfb5e0c615ade0179d9ea2a1b1ebb8ab9384", + "0402477e678793593e2abe837961895c7ecef71af1feb882ff27cfbabfa0ba3ed771b792" + "23e7b2d2388efd371d5c325854cd60e48484f818e1a8146fbb780cd6ce06ba63c0db67df" + "8a001b696114838bb972ec6d536abd809d3a436650191c43b2bfeefab2b400d5921a7eb7" + "8e307266acc190e05f3869017f0a66f886bd6556c58aafb1042478cc768a4f86758e9f4c" + "32", + "1e1b851bb95d2913d6d35b756d49fba6f4c127dbed80fe4068260cab89c1d42f7a6843f7" + "31e83b379ccd8a4915d2e29550f3f6ccde607cd0b066dd5fa41ac2bf37bdcfc26cd4d04", + "10d4291346685fe070b267edad91154df83664dc115f058ea036c712929634d53662586b" + "b50cb6473c2170db5d4ee43be0c50532015937202e193d15d5189870691ba65aead7f3e", + "0b2a15f1ef00204bcfb5108d8f1da96ac3297aa041074b68989ff5b6b276380de7887753" + "fe3d416ba691ba0b2ad7fc065ace02815b2323fe17f6445b0fa66dba5d99d8e7d557cd5"}, + {NID_sect233r1, NID_sha224, + "f1b67fde01e60e4bb7904d906e9436a330c5cb5721fd4e0a3c75b83dade868736bb1d21c" + "fb1b5c6407c373e386ee68ec2239b700e763728eb675a153b8ac44cf2a87be85fe8ed668" + "3430cf4b7d718891cbf8d583d0a37cc952cc25fe803a7aa4fda80f05541a2f1f2601cdd0" + "c095f7110f2a84f7d641b8531572269b21cbe77b", + "056673197bfeea9bd7a8b820b4ae51a50411bf118a692bb9ed3d304da53", + "04003489be62e53910c20cb508de019c3e326f65051f26749944b4454f156a00f775ac38" + "baf19499675725e8190aeea16f52346b1c890d9583b38c7521", + "0a6c9914a55ef763913273b062475fd0188eb2d5af9c8c1dd97cb3cefc3", + "08601a42d7f7eb047e8ed9820ddce665c7277f8ef38c880b57109b7160d", + "026d6f50f0508953657df5d753c595ffb8e1c19f8d092f8ce8db54f76d0"}, + {NID_sect233r1, NID_sha224, + "1d496d96b533c632ed6a91f6e3653cdffaa5b8cc0008b35e49b2dd52fe261105c2ec7ee7" + "1a4ad5d51fdc3d36d688a3b7ccb3b3b0c3a65be17b8d8aa172e3005cfbf37a2d1b1a6e26" + "8c090c6f318e7e96f9ec9b9f5a8fbcc7558d89e840f7e76e44bed91c26ca48e6f5cbc253" + "ca2fe8cb81c484cabd24070e488f9c00cd96ad4f", + "0468f01d483144e514ec257f2e5fdee28a927f2adb19714c1f3524dd0d3", + "04016b3cad89cc42b80bb730431963526e26ae3b415b421575dfb6ed973e1701acaf7de0" + "6e20262efae01fc80969cdc1a281f68e8c8bc0d2d4fbba3a3d", + "04d261304678301985f5bb3f6ae465f11c9fe0e5031b31f194969252703", + "0878a87b2867c03f55726ea2a6db822788f4aa4e9ef609997940ee8c8b6", + "03545153f0554a8f55301d4b948043de3057cace62c8032c8ef8a11dbf8"}, + {NID_sect233r1, NID_sha224, + "723400655027f474446843645757f7e2cd466bf97275067b4bc4c9d79bb3b19b2421835d" + "69db916f24b77c381fa771fc1e7a19d2b4d09411ae55acccc615b16fd24705762b441ab6" + "7083a921fd4ae569ce0de69449aa96f5b977ac7dc022fdc8335656853796f54b3fbd1185" + "77f98920624eb0a00204f1ef83827245c06646cc", + "074052d027f05465a8083a59cdbf32600224e1f563f653b34314651517f", + "04006999290db440eb5b3291bd4bb4a1af6386654fc4d275ef136c0e03dbca01fed0b1f9" + "284e488c7fa2a010766c340bc25dc132c7679c2598e423c3c6", + "06e38460379ac3fb13f64d4de654d4fa30bd8178da0bfc29fab2a1e2e39", + "01b18bafe55e5c24fa2df4c09112b44d24e78dd09557349ceb1b916d280", + "0ad7cfa003267a6b7a99894f75720cedc9cbf820d355a6b840709f42f62"}, + {NID_sect233r1, NID_sha224, + "155860cb31a142082bcc0bad828d747e916392d21f1873b3a3c1d28ca3ff9d45ddb66a71" + "2e3856b6afd07c8d2b2a7badab296a9775b03f6fec0befa2d8d6d00fe3938df244ab46e8" + "36a3e686c8b4f918da49f0bb3940bba34a9aa22c7caf02df7758b0de01d9f47af6146344" + "b9be3842d9c055eaf0fb399cd8db95c544a62d8a", + "01856e7544223f55f80de72a6ef3822fa8fbd68eb397d06e2d76ddd35e0", + "0401a117e52f09080625f85fbaad8ebe0d3ad410f034242bf48365e88ff7350008b8bb79" + "58d191265901a3f15b2919142505efeea13df6e42da8b0dc1d", + "0aa106ad1461353865706bee9aa092b00fcf1b0108ecc1266ad5d8b6579", + "0bd6fcf49029df32fe0fa47f39cb9428d95d00a84a5afb392d7b4b365e0", + "0b17734befefebf03d1c79e59c12ed3c57e7d120dfd993bf276de559588"}, + {NID_sect233r1, NID_sha224, + "cbd6e305cc9f0dc90caee6e65a74582e9357bd25c78e33a7b14e1ac7e9397ff4466f192f" + "b432143e6df6d61a0ab808ec0a361a6d95a357a38cd3e241fe03ed883ccc364b248ee2a0" + "8702110745c2688bdcefa33c1a45b9c8b200e45cddf3e3f66b8d37eff07fbb3366ea1558" + "ef304085613c56707095724b3e134c7a7d3f8dbf", + "0860aa2b589f2defc617be73e191502e5d9952bf60547fef19eeccbca26", + "04006abc5619422b7d548c612e54df0385c293632d4d97c21e2e15ad98d0c5006c36c072" + "603681c1b03f6a023c8e987f39d931bc2a200eff82239ee38f", + "084fb252dae9a96a44212d18e15cc52d179cd5e3392ab9da57d04cd5a9d", + "037cd554e7815699f033ca9187ddb116777ef847b92353f613152c4216b", + "05f806dd062043420dd056998bdb9822b3177406a536d766c4aacdeee81"}, + {NID_sect233r1, NID_sha224, + "812a218ff1ee1472c189f63386e5b8ab341671c3a4dad27a8c6249d1c0f9a29338b471b6" + "179f17a078b6504e804ac55ca3b13e68a623041bc1a092ea2adf3fa1124bbfeb161e6d7c" + "483433f1548763b84da00352a6386e1339f674d45dab13898147ede468e0e01d2c4e0ed6" + "6b395a16cc3ded3e952ac739205f35a83376cbce", + "0d0dec052a00ccebd0c0c5d9a08272f75744a2582cec7ddd924a2b022b2", + "04016bb8c3d319b93731f1055756e57bd56d50b6b9ffbe42735925cf6f7675009dad7b87" + "a749df130b45d9cac8011101c15abb7e64bd4fbdd94107fa31", + "04098547601430c723ebcb04b23e0f1ce8b1f79ff7ed3d05ba130922b01", + "070ea6221c0d62930b019faaa856ad2c84c3989ec54040bffc42d8dadb8", + "0aa20fc58beae8ccc880e7fcb48a471faa5baeb36bbe5aee71ed9f8adb9"}, + {NID_sect233r1, NID_sha224, + "0204b1fca831919e89e108cf140b3770f531a696b1d9a4d1fb68809eb10afccc257cc90c" + "d36717c02b2f3d6d3d1d8a93cc5c48aa7ab9f9fddfe121ce9143376535a0c65e247c6558" + "eac49fd1d6d1bf431ba918c471cb3d536ad485ec51f6471a340ac75f160c4c54cd3ffb9d" + "cc123124b42df1fd2eaa005e3377c5d2d55938c6", + "08a017d717d6d1213f2b74c53281b07258738c0c7db649ea1ac46b9a3b6", + "0401eb379e27de6c04c5320cbc18e79ed9e8993710ac70ce823f1ab5762b6700f5521926" + "45d350361762aae79ffba39c33c2c5c0df208219f1b339016a", + "00e4822b2cffa327a8396301b21554da6fa52f418d67114bd58e850d935", + "0d64dbdadb4ada2d3a8892049f7fda3c733030522b44cd72ab850b77bd0", + "06fbae2d8e4fc04abd8a6e9cb011974ac851ec108e38f9c72603f7a04fc"}, + {NID_sect233r1, NID_sha224, + "2033eb48756638cb56e2cc39a3e775cfa11fce86cf71f04487dcdbc7f262bc8350a30ced" + "54d1fcb697b28a6e96f88f782947c997872307ed963e1d68985f756435af77f57755cacb" + "b4c6b50ed419deec9f39f0a549a13e54254fa0a5832dba2d943ad4aed8688889a2dd29dc" + "b4ea12abd6a6c50eabcb3981c3a0c1ca5f0b9629", + "01b56c14442b084cfd22aeef0f8028ec57c8b571c9fc1e43de05c45e47f", + "0400d450c533b13b211b8c91dad0738402a5c811460426ee2f35ae068f2c12015e1c9f9d" + "398925c619f8aa0bac746eb7907d3d510814cea185a7efe771", + "0dca09773730a2758b7f4d9257a8e6bd942c141e46bde5ca54a79468c4f", + "0379773ebb7a2860f3422d8f8f714b234e5abd8860defb19c659c9c6179", + "0cb9272a27661604425ab84632f586048483b9f9cb80b9697898e745117"}, + {NID_sect233r1, NID_sha224, + "2986ab1cfe8873009e932dc68d4727d77ccbbf378e43fe4aa7c54416346b036b89c0aad1" + "b82977c9fbc39a00f1dc916c0561d8dd70298c02b6cbfe572e0ef2058641e841c6875e85" + "15f3c1082765e046c90c956d984b76e0e8e6eb433ce26c1757ac5b13422479141971c201" + "02e9621d18f51096ae3173c2753facee2862d66e", + "05afce37c5594586ac46a34ae291f591eacb9880a7de92701977f447fbf", + "04002a069ef14f2989d2b715c5006642ba966cc84df88bbc27e713e15c47bd00f001f60b" + "8a8102a971faa2c42d3ea9cec37b49c7e6ec0cae9f7fb35713", + "09756db630ed9b708bf1ab8aae6a7559bc235c4e9f4002ed26e2f019aa1", + "06b9b2c1d214373647d9a2d24ba69741218064004614368915d5cfaacaf", + "090dd607329c27483fe43b7be137c3f51c23217c939baae40b53e65af2f"}, + {NID_sect233r1, NID_sha224, + "aabf5aa90ceef91c2155f90660adbcb0eedb996f5242cee15468ae217058ebeaad8cd4ff" + "8cdc754a8ab85ba43c59fbab6386686fad5e27ad3848fe52191c7e4b203720841501792a" + "625aef2acb6e36493b792fa55f253effca682946ad8c77e01f44e92ec3c258d0dd98d318" + "3f4dc4a0bd3eca183794abd6232a6f9e4add8f57", + "00696df05dc7a54a9908a73eb18416a155cc8df4ab26032539d86eae537", + "04008f9f494ddf8d0030746a8c0b8d215dda6cc2724f411a7ea407629294c301ea2e9f85" + "f06412d29c677aecf624a83c2fbd86482dc0d564906a91d97d", + "0d62b06628d3884f0a329a7b6b4f832fabea4ebc85ee03e63f2967e7810", + "02e39824f272d4b74810594810957963c777207217e53a672010605b9de", + "0e64bc44af64b6f879f0d32f814acfbb98795ef7b2f246b3f91cacb55cc"}, + {NID_sect233r1, NID_sha224, + "29ff209eabbde02b10b3fd559671fa53e418750c32c4a18d31cc0186d1077581bbefb877" + "0ed079f536e866414a07431ae6633955bf42a2389b6f8a565d6e4ffb4444336e00300938" + "76a26d4e3106e9ac697788e41f8a21c755eeb86a7c60f18e5e1069f16408a4c375a6a68d" + "42959f2fab7ac09736c7b37c80c05897d8566ce8", + "05ca31e88c5b2e96e433af2023a66095161710628e7bfa428944d6676b8", + "04008232d4bbe25536ea7f83c145a8d2b1cd72c383eefc2adaa1ce72c7dd9a0100b738c6" + "f1551b3240293ee8e8ec29fad0cc485ffc2cfded96b68162bb", + "0df9e1b418ca1d41d749ee998446ba1cc54bc8bf72eac6f30929b40b5c9", + "0d4248e0bb60fe46abf7bdb2effe804b9d394d8a5514a5791e149d435d3", + "0b89a459fb99cccebda754c4b2ae264c9aef7b5b610427f42c35dbe7d3a"}, + {NID_sect233r1, NID_sha224, + "97765d876c80819f4004a36d09ccba78e600efc71eb7e869d3a00f658d2ace6769c7ab1e" + "f590f41fb070aa8e08615e138df45ffbb6473d4a86ba5fdf17dd6dc9ea9ee19c0332563c" + "99e6a3451c211d286d69102b47bfa6e07d468d9bde82e5c2063fb1ebbbed6086f542cf68" + "ba46d4f214634afb1146dd5a6f3d50912ef5b824", + "0ef8fe84727a2ad8bf4e646ef28a492adfaf785a3a2ba6e6f985c649a8c", + "04003435eb25ce9891a78c120098992c666940103eefd80d9bd64f1d4ba37b00ddd6a4a0" + "1e443c92afbc247f634b85f1c858a2aaad35a26f57ad4c9126", + "09753a236759eb32e13f19b9d2ad06f7b4db4ac7b1df96813463d0cd557", + "08408fc46149dcce0753d7cae0f50c8c5fcc97acf7a1a02a9f68c0b80c7", + "0b5ffba104acc6d0cba87523382ff928859718122c4d0d2298e74985d89"}, + {NID_sect233r1, NID_sha224, + "21cf768d087d1e4eaa8a05e2008020e243116206d675c09be42ef2bc93617ecbb0575c87" + "3c6510ede9979215531b62126552738862fc4323d487992754e39d8f0d7e111e165ff254" + "200e05082f59a57ef649bccaef6f980094fad3b7ef93bceb161760e200f0a2e396fbb6b6" + "142dc84d872311bf932b84616b22231747937d58", + "03edb94b8c62f9af30c14a790c0f5d65e362a21cd8569b9725916d534c0", + "040065133691b888cd2513964b5a905ed9334cff6367e25c09db1743045d5801408e1ac7" + "21bfe2198086c1834d484b6e5692c037e09928cff87f4b5a88", + "01d8f800ba05d8173b0f1bb3aac0aff68c6b24cf98c28f5a69b0b5a52cf", + "097c07d4352e39e1878c42fe97ebd4c3ba5098706879fad9be4bb2dc2f7", + "0bc669db3a488e613665cd26da7927c6b6a073ba6b0951c00d22ab1ffd1"}, + {NID_sect233r1, NID_sha224, + "7b8e58eecdab3e40212bba6bf284f9379265b3d2baec3e4625aa08d0ced851da193c292e" + "c793dab42732c07b4e94d8b19c83aed796a7e3a6c2b954a7a9a1ff9b2bd4ca62592c8b68" + "f709f1ad38a5c8033ebb3f33d176945bfc68e9ef2b0cee2d45a13ce89d238a33c09ce2c0" + "c63c4233aba5717b85c4c161dd7648a41a5e39d8", + "00a7519be62562318da1b67d22cf8e720353d22641e0cee11c7a352bb93", + "04013b63dd8ca9044a3e518a67999a781a5b62994b6e20454003a9bdb8715c01a2f9bfaf" + "528b7f5bc8c3b02eccb71666c83e4a598b4077de999d90fe27", + "0992ba1a8331bc4d88be7dee06f96098bc2ea56668f345e187f32f38171", + "0c55b45bc7bc3092ffa82234b06ad45525b45f8904011f1bd6cd356f0cc", + "0e6163e70ab56d43fa27211b98b48f1cade127237bec1c6556020d39990"}, + {NID_sect233r1, NID_sha224, + "f8f268d2b04fe47e5052c8d0d653787384b9654f0bd2138a6f52b80713feeed452b976a9" + "0eea4edcfbb62d04f3eafe172ddebd7cdc3701ecd6008e3d82e8eb217b13b5228839f610" + "75159f3bd1e1409c08903874b6dfee2789dd72c208ae769ec8c7d52552a2b1fd73dad24d" + "e8b571f88e2184d0ee7d063a121187f97e746f2f", + "0264022fd7dc2328a6436b522793ad9406d7a586667a0daaf1bce927338", + "04012d7e7f8519a7e357510adfca2f50182dc5fa12fb2a77409fb781ed500d00ceaa9a22" + "b7ef9febd8a9962ce21d83fd2a2a938b9d7a78d669dd233974", + "026fb8fa6e746106500dd29ee32bbd03b94302ec3a123356b23b3055e51", + "0f416418f7aa4d437e7606afedf961b968a67d9a1524d60fe3f6df4d3d0", + "08d3afc975a8147fa8230fef4b16e3024180a9768702038f955357ce8df"}, + {NID_sect233r1, NID_sha256, + "d288768cbd066fad4bb2500b5683fa9e4eaedfb3dbb519b083f6b802efda0a022355565c" + "5fc6babeccb22f3adbbda450ce5d633193d1431e40c0fe631a295cf85965cd3f5937b318" + "66bd6a5300eaef9941daf54d49832acfceed90e572ef34ccc94eacd0fd6b903fee3c572b" + "963d21e2881656a214d2a4c125778dbe3bbeebca", + "0da43214e2efb7892cc1ccde6723946d2a8248a6b4d6c8872fad525ec3b", + "0400db09738bf0a0dd777f67e82be50dc8c2d8e91598bc0b8d4486f67c04a5008ef463e2" + "f37ac7c3d276676cbedf17ae11e767ec577da7ccd90cde3b74", + "0249cbd55e307a0fd10a0c70b1c0d5e2416f4d7f144779ddc11911f4a08", + "04d1c99f9d486fb92b132d68c0173df891ca757572f7acc03cb41d46bbf", + "07de2deeb58d55d65fb37f600d916cfa49f889f02ef53dcce412703d1c9"}, + {NID_sect233r1, NID_sha256, + "bf0ab46e0a756c11229b0ea961f8d57218be5b00ab8b0e91d7664cdf5e0341c412c0e992" + "d26ab12115197db39df2d1a6e18ed26a91be461432a2dfc21d98cb16003e339b0b0b1f10" + "0e4e6f4824ddac5442f22a1fac26326ed8a89cc91343d7223986d485cc8c64424e84d56b" + "e536c57e4dc5faee459b1958efd79e07e90a9811", + "0aeafa49d776b61f6a30d66ff64bd40dd8d79891dd5293c1b5cd3b46a7c", + "0401ba1b87b16122e6939da5dcadb8902177a9f9ef09194c8695008b80b588008f51ee5c" + "ea1f4fc9c44c70df57326ff121268bf4e02cd9b2626fe7c1ed", + "09d640ede5bb60b9aa78e393ed453b1643f6dade4aa20e994db53e81fac", + "0277bbfb7479077d5fb6813670fbc7f46055718199550130b122a7cb8b3", + "0f8dd350bc0bd2d84cdd374c56ff2341de4102269a1e80df7e35969d4cf"}, + {NID_sect233r1, NID_sha256, + "c7b1eeb7c19eb16e7f42b61d79e421b71de797a6cab4e0baee522fee7acdb533f7bbf585" + "5316544e1b82b4f2a18ad0a2311e7622549332122171f32fc62a90e408207e0fb90d1b05" + "2821dede9c41b15b6e07d84d5d7b9e31e6396a8ed229fb6232b3051298dc5321aa589f4e" + "289d27169f14c8cc93644916d9b72dbc92c43488", + "0e95db309f4305b621f51f93588a2678cb19aad0932f365fa0aaa3a3895", + "0401177eefc44b6070e2c41537e75c91e2f08908c0d950bc90cd2f4720b33500f751312d" + "de55b1bcabf31665deb6c12d043d5ccc89800622a557a7ed37", + "00015798ef57a771d62d194389817c93de1b225398fcc0d2b81d94054a0", + "0eef7161a167f69a6c89b0f173db2c4a7033b5d801c0d89642ce65e377b", + "04043f8985bbe0221fd595f9355c33e1930b5e10a1452e81c31259e1e3d"}, + {NID_sect233r1, NID_sha256, + "a738eb074e1f277dc665118ca055e6328059ab26da188c16f56384c566e43df8cff3d2a1" + "0d2d15c3c1406de8f734b20be5dd1ce937a4289f0ddfd7bddabd03586556eb8233b8feef" + "edaa1f49bdec6d45fd562c2a83fa9fcfc2013bdd77900857199e51fa9c7cbeab925ba8f6" + "c3c5fae46bf8e9c574b302f1e5f9c44400152a78", + "0d4319cc8e409b8755880827f3200d3f0f1c64d6356fe74eb1f5aa42499", + "0400bf65953f2d08477f7fd0428c31125184e3bad4d5da00c91991949e056200f1669d0d" + "116817d625128ae764b3fde956432552d24d98f08a12925afc", + "05e8704febc38bb8ea76f3c6433c1f0421dc5e5af959723a5a2f0e9a970", + "0307c0b838c65d1a47792cb367253bf7c9f627435f1c7ed74494b318446", + "00031a9b35e935be6620243f4878a38d4e617fb25f7a4883893366f39cd"}, + {NID_sect233r1, NID_sha256, + "b28103d77e5457c42e026e713ea6ff03722a36512da17197140117442a976f9e2139c54a" + "759fc26af5811b455e5a0d3a95362d9939c1e738045be9237b469ae2106ceed7e7842b44" + "cc0a475d5af6d781e32ff1dd1f4e1833dbc7f82b27dc7e1562d0e29213fd8911105104a7" + "a16f665b926aa137f70d868c90e72f8ee2c95b64", + "09e556c945052e5954915c773b2d47970c521fcc99139269c3ef46093b7", + "0400db68c16ffe64bede4a849812df0b8e202f74500cb7d5349aacf7f3f0260084b5892e" + "a74835e96e9dfb1bb201a4dcaf32da25dc00dca019d806f5c9", + "0d0c9e0b6d4526d5f6494d2c72f812fb8d26e17c7a44f6b5e3f9e684cad", + "0a379ac253f3aaf94cc49e91fe3f2908107a9e1a4d102e02395eb18cf08", + "0854c2f6ecbfe95cfd14045faf71ad47561e365c1dd5f515d8817c3198e"}, + {NID_sect233r1, NID_sha256, + "463d04c84521ae671bb35c0a7acb3ae509b1b0470f39b8fe7ae5f3c9fbadbeb2bcc3a87e" + "284cbdff07407a351f7ba743aeac50c4a1fef7375b90eb4af8ea2df040776bbf3e4389e7" + "a80bea40530842642b9895ab9ef5ac8ed6c9ce7917d7b3ebcf80b801da845943313988c1" + "970e7748cc306f914c37414f8247d648b580000f", + "0becc76f8a77615c4f92ae1f91645bf5bb908e75ef22fd544aae63a3c8e", + "04018cd93bfe8fc8ceef2b9be14fa947b60fb122f5099cb5bcfad0cdc601e8016de11e67" + "3011e30f6fd92025a60d7938412ac63b19d23e45bbf53c6c4a", + "04e75a7b92c42ba0581eb1201fa5b3fb2ac82460e953c26ce6bc60e145f", + "067bad23ecac0883d218b1368d822b3bf9b82453c0e5f3e336777c6a507", + "03788a331249463533384a61c47232aee6f057634c37560ee25895b2a03"}, + {NID_sect233r1, NID_sha256, + "8b2379b5553ae7db6023cb010e26ae91322bc3f94dbaa369481936f90a886e5d3827d995" + "ccf03ca59f46805fbac0337d31a8f117cc7044218a934d5bf507090e7e21178a7162c8fc" + "b39111e6967803dbf9d752f3ae737ba024d0f4f7627e08be58efbe997a164106bfe37f67" + "d2f19c0fcc7a6c7eebd96a72582a9c7bdf881896", + "020572c2a3dc3ea430cd8cde9d642081c21658e8bda165550cd9a5d37d9", + "04016117486794f14d171dfc3ccffef0396cc9fe5aa45d6d39ce0f252c416801b6a12fe2" + "adb279dbbefa4eafa273a2ddbafb2c6401067a5ef5e859fdcc", + "0edc8d0b64496da309b10630e9e5917c9a807ccd7cc7bab14360873eeab", + "0e1fdd3b7849806fe587ad93aef737ba0472409b7239981f0d325785fa2", + "0829449a0c39071a832664e8148e762efc36fda9e030e0d062458728273"}, + {NID_sect233r1, NID_sha256, + "3090bf7373731cc44c00372c1ac59280b0f36e627ccf763fa68a7be37bb0ac8cbd4f70db" + "54fc652566c78ad268f78f015e4bb1e41516fa56ac303a3bb4a52e1fe897d8338db5a6e3" + "7cad685e704b994504bd231c7dec0002dbd907a7ebfa809833e32eb23fffdb44fe4a18e1" + "1fa19d67356cfd703cf39a75b1a290b8a7c73afb", + "0769cfbf2dd8248ea1e0ac9b275c9d6ddcf923fe762079b9ed62ccbaa89", + "0401aadeee0e31ba9505da3e195d883643d260dac9fe5e86102c8ed7f88eef00d925bd5f" + "d700fcdec60cef9c9fdd304faa102d9d721b4f21291f8c96a4", + "0f2e203410107c075e25c4adc2f55dcc277883d679ea307df7d52060fa3", + "02fc0975c2e70328da4a0ad2b8bd344a8171c2c500c55b1c92270230c27", + "08871b6791f7d03796a3aa537fa820f0eac8f2463c9f918468e7588b784"}, + {NID_sect233r1, NID_sha256, + "c37389cbe3f46eeebdda343e354ccd543e96b0c2a87e057aa6b9c4895a403de706d658bb" + "c9066c140e50fef4b56af2db1f42efb70b8021254649983f1e11d04d6b10169d5a1c2093" + "b6ab89227b88a30537c776bb7575749c3ed87bcb29effd8e4f17915b4d5dff6cab9678d8" + "8f33abead1e73dbdc5c3307ff3d3b2d5fd7bfa83", + "040ea4a37b388f0cc464f7e2bf92173107b268ff77a8acf5f517b4ec0e4", + "04008acee84d29638a7285654d20f8e0653c7386140aba0bd2fc157d51764301482ba5eb" + "b82ba46654aa1eaa6a5f01e030177318921a0c99fa3f6eee9f", + "0a6fbf938e9cdd009c838196ffeb61f7f545f7e7e9a6cb18d1f595a87b1", + "096a80172a7b3b65c0a8acfa8b89cedf9cb19f6eaa5d38436c300b7c0f4", + "0b7bb96ddfc9d1324bea96836c557cf88d6ede9a93ada8fbfdfcfe56244"}, + {NID_sect233r1, NID_sha256, + "8884def8c3b9c5f856b9c2352c85ea71aae3c8d0e84ca74e70e404a21467159fc9826548" + "d16dd1ec5a75dc2c23ca37b30312f25e1194e0f9385a0499db34c855412bbf58979ffce7" + "fc3afeb7b8dbf9898df44023200d809f520db99eae315b5cf85674fab008a20340fae8f6" + "974034fd3e55bf08c5522a460680218f9757e368", + "037fc7898df9b37b5390537352f5c0b8de22659166c19d7d4df31c3938d", + "040198674b40d2a68ed94d5b2c51102393d1332404f75187130669b9de0df9013ee77d85" + "4a60f1aa74041ef1fb58727c09f13039bb4b33a818dfe9af2a", + "0cf92eebec59605b1d45848f5d06e93ff2767dfa282929208ba801a9fec", + "0f7bd93dd4df06219fb974a4e85030840c7d4877f131adccbd98cbd25de", + "0c2c4a864459488eb5498a06b0b56ce7fc98fb29b1eb9b6238da8cc8f52"}, + {NID_sect233r1, NID_sha256, + "f1fc154d469433f56c2bd42aa52237a4a4bfc08fb6d2f3f0da70a62f54e94e3f29c629c8" + "37e7adf0474fa8f23251b9b349a16848942c0d9cf5db1d0fd99527020dbe21cf0b94a9aa" + "21f376bf74da72d36f87b306b0696771efa7250c6182b426a4500ac14de4a1804b38db8d" + "4f3beefb8c9bb619ac82cb63fb37c2e1d22951f7", + "05d5069425e7a9925d2cfc6360a708147b2c1b55ede243591885147ef3b", + "0401f35f161ce0963dca70066b3a6de2a74ea1941a27cdfabd9e433d8084c701d5d9cca5" + "b741b2321d8511a777fcc2515c99ff8d13ff20266a163c94b9", + "01b9c83d36ada7e9367790ee850163ef4420104e0dd3299ef6d65191d7c", + "0dca4e804bf74aa496c15025acb4232c637c9b81e9e26d6f2065d6be21d", + "012014f77a4ddb7b266abf2c65a653988ee6f913e700f3f83f3e78c88ab"}, + {NID_sect233r1, NID_sha256, + "885cd348f7983a0721f96c0e866821223d3e5a95178b16d18652b4062b1b2278aed6f54a" + "b06f7e37ae6ce1020aa3eb812d215194bcd212302da5b971fd86aee1dcb23057dbedb569" + "bd0bbef80df538da69ae2358cb03bb77c64d3ead475c8c5ae5bfbdd75684b421a26f1a7b" + "0c37548fa32d805acdc91230dd70a48232a12846", + "0ffe3e7b82ca62b96e057ee072a4718ca20a6cc9a3e51e4fe8ed7b4b9f9", + "04010f774adc83c1893894855366f1db1962bc697b8e1d047a01a08b12da4a0078c6ff63" + "4d5dc8ffc4d8b1a53bbf94046023095a8c2b41618c4330a4de", + "005a4a50de4e97280d6ed1324214d91b271deb649a2dae18d21a0182022", + "04bc8ba9ffbca81b5f19f0d8b1306900ee642bc5cd9a9dc9867a4531b04", + "0353567acc062b83459017c70cff4f3b8ef0925032b51d7300261408549"}, + {NID_sect233r1, NID_sha256, + "ca3b0e2f1c7db4e73c699f06e432bb0f63705ba66954bec4a259bf31c161bb4861476e2f" + "2f7dde9d841d1ea6bd0990cc793cd7a10432e38735c3eeda7a0d786e8821239bdd6c4972" + "c96c2cf68ec5b935391f963a50fe16af2719c9029943b539ff0f1f5645962a6ac46c75d2" + "037fa0c7cd46deadcdfc66e1ddcaada3a376acbf", + "007a9cb5ce27c763646de414ca2a4dcdb774d69ed2bde7a817baddbc9de", + "040086d4ac1e3d54f7c154c5370f5c9a2d22cbe8f794df68974706bdc9172c017770a2cc" + "ac923423137731a14e97f6ca65a8cb3642eceb4e70c78ee929", + "0538b86e0a899281ab56d28f40bf3b7435f9a57e334a3269233766049a6", + "007ceaac3aa0e260c371843104f5cb91a057741b38889ee796e69f920e9", + "035eedd44b036b843deadb8e8df9d96b16e719ba350a634553457ae71a1"}, + {NID_sect233r1, NID_sha256, + "4b0a31b746763beee77cecd318b90acf50fac4172cf4bfb354e5a440f651cb89d7a515e0" + "9ab19e9850803ab9167c2aee3b395a5da10dc9aff799d73756dfb0a9961d93bc32f15a96" + "bf13962a03d5bd42ddc8b5928def7fc48fb063f42866fc5f96cf88fe0eb125b7c01906ad" + "6a7fdade28ccb0a421ceff50ae03a974671b2c27", + "0c03fa9e38dc1c697f70bc6381f2bacaf860bb5632fc837f728da959ac9", + "040195f386c7efe108fd1d580f0a77031e180e45a23911ba983217207a904b01a6837095" + "a64f71ec53ab1c0d9a3a39d69a514065d83f1af26870e41741", + "0d4f48085b367787a614b57c06ee8018b2e95e989c2e8cf355e71db1091", + "0391710f815babf07b6287b7aab8b9d2ce04bee2a144f4d4a46fd17cf77", + "0ef29cbd771b8a6f414ecb73b7937ffe0a108593ffc6899f28d4030a9eb"}, + {NID_sect233r1, NID_sha256, + "3011d42792b21c0f1719faf6f744d576f72c5fdfd22b1a520d0e8d47e8c2b06823d853b1" + "3c9fa039fa30a6f2e3e27bb2100c6a35f55703806bbf0f79b09d0f629f8042ec63fa0406" + "2f15f2edb92b19237980005566f02bb12a40b4ec66e4ba6c599d928b33f72d7437c0e399" + "a8e6a9068d1fef24917fc4f9ab5464ea6684dde9", + "087dba00e3fe4802e01718017510094924496bd2785d4ac1a352c530473", + "0401198518db2d1255aef955b9b80471aba60cf6d8fd1feae6d8e048ab140301833332a1" + "16214e4d9fb37c8e0ab7552b87348434a67a0c41f73972dc9c", + "0378578acdfa572b1de4e032158b28bcf00ab7dbaf07b0e772c39603216", + "0be2cb45d527a7685139290f1098de975b69957fff2c5c29059ce417950", + "06abf4afdcd2990121723b94ab8145d01cc4917cd70416620ef100c67bd"}, + {NID_sect233r1, NID_sha384, + "05a5d3a3b79f4e51b722e513620c88092a9bb02408f5f52a32e782fd4923f4fd3094fc55" + "36caf4b645d830260eba91b5173f3833dd65600fb9e246aec968b1f6ebdfddb4059fb2de" + "7e636ed60bb7affdb74aefd158e54485d5f26be373cf944c6570daf8fd7e4b77fad57300" + "667d6decf5c65db99ab8763bb4ecbb09fdf47e3a", + "05a387e7affc54a8fbb9157b5ebd400c98e2d7bd5c3e095538987d4f8d9", + "0401a97224cafc063967b25cd1a43283daa5411f3eabe9386b8b14c9768c29002cefaec5" + "141bcb084cbc9aebf28fc59780897ad1424fd439eb43eb911e", + "0fb7ec3804654b9c3675f7b3c427f6d01f83872e96de2742e59c93151fd", + "0808d829d78e65eea47122c92f8c2cbf5a8d6717a057ef1659fb6f8cd3c", + "0ef338e09dac0b12fa6109d15924efb694a0b672afb4ef05f4e6f2f7b88"}, + {NID_sect233r1, NID_sha384, + "247a101c8196eb93a440280650ad463795690bc620e46e8118db6900a71eb493d03fbcf2" + "f73a79bb47aa8e2d8c87ef70e4cfae36fae5c45fe247d8cd0f7d0718dad106526945014b" + "4f3bec324897d8e1fa2f457b8a68e61873b7fa0350fde3b87b7b001c13953c2050a24f71" + "fb77eb455053e49200ebcbba7299485c0f1a40db", + "0adae709a930d6f5a5c0e3d8ef4aab004d741d23f0ffb8287f7059890c0", + "0401541eaf3dca942957c48d693d2eaf2a456646d2fb3eb8df1779b917a9b00097379582" + "76dc31852e57063119f1d2d061616b6a2fd35b4a1a3f046954", + "0390d5ed395f8ee3478c2765525c235587dbf5bb2316df3a1e8c664185b", + "0ebcc4f84bf2deb9b3d669158998fc96d7516580675e24348ca58d70d2c", + "0b99462b85e6ce6b46e5aca221250ac9de7ccf3e63b38919b61700be866"}, + {NID_sect233r1, NID_sha384, + "a16678c71976a3ce3362ca379b3272b92e8ca7085b43752473db34e4d6b61eeed3875f49" + "f3328366fc9d0644824e0104817de458e4c1036636b18b83dbaf063f2f99818959224906" + "571c7b28873d9c702360888df151e9ad1a7003e6130033203acf8a69889be6ebd90816f2" + "abf0764f10be68653b1e56766ecc3150bef8b042", + "035d391411e6d679751092c4ea5a079c591e77ebdcb57c1d9006ae70d90", + "04001298e6f1612f90dbd2eedadfa8ecce22dff1da2d1cf057c41bd37d4b060073136a1c" + "af7dae2aaaac571a900135a51ef031643e9d5f01934333b864", + "09e343003670f61db85aedc0249db21953d232bc45488c3d6ceaa6072bb", + "04ac435e88f8e487b9b217e7d68fbba9bdea0b9685769878818f25e661c", + "074d8f4dd58c922d7e79f30950bd54c10c1cc52ae3b8d00b675c8e501a4"}, + {NID_sect233r1, NID_sha384, + "bc2f080a7f0b69a6b142b8f3fb481a43bd71d07418df4f3b802568073c1a8d35729ad197" + "f34a4e941a6dd511c63f201d1f6c34a1b66545bd5f43508c10bda1d6ef60ee5bdd25dde9" + "75e50c61f76cd36d50ee3bd8dfa2dff59524db9ef12f1e28d109b552cb42f021963f559c" + "843476b5c889fc567b7840297c5a480e18c221dc", + "084e79093f1947d6ab9cf399782436e36ef87c59a4c090930c9a74ddb10", + "04008e756774def210e2d6f76d6e4b0b43d86adca0880f017abfc911bafb5a0147e6a20c" + "1aad897829339630c5edd327ef9a7e40795630504318cb71d6", + "0ce780ea99a344d67de7921feba6ae062817101068266d5d1a140d2b49e", + "0fb2474b854b8e5d6920ed90e69b5b386a1b26a947b1cf28a13f7c5d3ac", + "072722017a67ea6754873f833fc51318d41d6ef598d3ec2d3e0eb5bf41d"}, + {NID_sect233r1, NID_sha384, + "ea71cede8b63ddc5648eb244184bae265cd65d50f77a9e25ff93f02b132487c08732544c" + "b88936d4fff7c0fedb39685822dd1c9be1158f647c605c9bb5f6a1ae34722fa08882c14b" + "36b6c93cab33c9a269c7c10f755b6453ed045ea3e56f29e95a9404ba189a0b4884812039" + "2b4dcac43148b706c3d9e4c03db410cbe5dca3da", + "079b6be015b8006f86fd81c2792bec6b42c08bee2d295cf9dc214c326ab", + "0400e24338d5e33ad12d41eb623ad0905f64d5b75835fec4e693eebf9bba100101b4297b" + "5b62fcca7c61637a2a57365e911d3bc7eb0fc7adb0a9dc7bad", + "0f06b001e5f874d16632e3c8d49f13d70f48ed4eecaff9d3b741f9d02e6", + "0de16d8fd7bb1783a2cc4b9ac1563eff3f87e4e6d75e6a32a4aed1ecb02", + "040bdb1197ee8ee51e4ecccb8d42dd985913809c131aa9224049425a052"}, + {NID_sect233r1, NID_sha384, + "319b41d16e18059a1324c37161c937e882192cd949c420ce9c59208a0ac208ebb06f894a" + "7fd78df2a3c5f23f25dee6595d3dacb25a699f115dd482ccd36fc54ba29dda279335424c" + "86b07a1b1fa76a5411bcecaf4d37065b229cdce0bac75b666c6626ec37a716e9841be93c" + "907f87453ad91d36846561f284421a89013b88c3", + "0ca9d751a060fde64336cdc88122819f4b3cd1b4e7df42d495197787894", + "04009549785f4f9c71f20133f5a1d409b244df55445beec404cf8cd4d2cadb01b246647d" + "7570f052840d4cc01182d1dc3bf357b25e5966434e1c3c2a30", + "09e99fe741cb23f7eb039f5df8414d069b5c2e3c144dcd6cbc6da56ef43", + "0cf00f519c18e7a0fcc84c1e338158399f16929ad89842ba97a4afb5bf2", + "05854ee1a6aa5a6a74bec0b4696e80aa275210183c86f45dde7002d7ae3"}, + {NID_sect233r1, NID_sha384, + "aebeee215e7b3d4c3b82db243a47506ffbf2263f6fe9de5b69286e8649d9218367c36ba9" + "5f55e48eebcbc99de3e652b0fecc4099714ee147d71b393de14a13e5044b1251e40c6791" + "f533b310df9e70a746f4c68c604b41752eca9ce5ce67cdc574a742c694ada8f20b34d0eb" + "467dce5566023f8533abfa9688d782646420c77b", + "01dde4b2d49338a10c8ebf475b3697e8480227b39bc04253a0055839e9e", + "0400504bd3a97baf9852d6d46ef3db78ee7555db752120d020cd056b1b4e50018dd305f6" + "a15e91fa46d2a6d30f2ec8fbe2baec491e26d9a2ac81155c85", + "03b78d2772b8ce01a00ffe2e6be2f9e2ca2c89ea3b29bec6d6cf31afe33", + "0c0c51fba155f98900eaa2d2935acd615e917f9dd979dc8d92f1d6e00c9", + "08c8354f95e24ed13d8ff3755e1122dbb4117c76b21b3bdc7f4dd856f8d"}, + {NID_sect233r1, NID_sha384, + "8d353a6b6f35590baef59b638914d3e934d0145b045d221d846517ceddc8ff5e3d28826d" + "3459f8ce1260f705e80923f39abc73d5949aa7aa8ad1734be0e992bff0c9a8f4cc9bdfa4" + "30d4cf52e29d3737b0cd3231b72b16e15e1a9040b832e4a920b4a1d94c4964ac6c8abb75" + "bbbdb10825f882ae44c534c7154c446421a04d87", + "02c8bea2803fd746c874fa110a716538c179c82712f38d33d0f6d037e7a", + "0400a034560353561cde19db89dbcad5c9dcb74e239efc604e86ff38a0577e0185e0b02c" + "48be2e90c916a7c8ef2b41a57ea8d4f21d8cd3a0878a03875b", + "02e39f851c57643bd799c4f3b2fcc5eec8ff7f9e9e279efa647f969cc6a", + "09b2ad7efc7ed60d9cd3dedbd4159b1e05f05ce5ec2d2cdf7a0e0657482", + "03fcbd4ace6a140c8bfebe36ff30848966bb0d3eec323cc8ddda55faf00"}, + {NID_sect233r1, NID_sha384, + "847f134b90f10ba3636ec24f36a94111f26d58428fda5bba4501e58c7bb55809f52320cb" + "e9e0df55af1e40bbac9f3eaa26a55d78b60621d4356d090d98363662f406367601eaa9eb" + "9568b1a1b319730bad7bf6a7ddf1b45eb6922faf8d065c540b671c50df758ebf8c4aca6f" + "01878e5e0012dd038c58833e2b13ebdb9a9f3fc3", + "0b9119b3b4b30cbfb98ddf0a4f6953417e515fcf0e5a94e83ebc1d1d14d", + "0401be65d340f7e99067bbbf961c2b357e1fd47a74393cae5f93a40c5dc28000c04cd8ca" + "3ee253b99e44ee6bc0e52d2f016b16f59c738b9f2bd8c1b9d8", + "02c851ba0123ff0543808931ab3857b5c15d7c10c343f232913f6e0c92e", + "0ba2b33550878e223cacb80e45e382dae84e76bca5a2ef8371b84d08572", + "08c370f82506e97cc15837f59e9779448decbd87bde0a463bc14b18edca"}, + {NID_sect233r1, NID_sha384, + "99d23950493bdd931915e9f9b65e4cd1329866c0071a19d4f7d6fd190689275b7b10fc07" + "503dd1c27a4da274dbeb3aa5cb0e71e9b7b03fc2697729b7be913756e6760098951d7015" + "df181cf14b1e0b954e6260276af553e3e59907794b863e941950718ef154669c5c262946" + "ba120892e0239e05910c2194f712db46e37e53b7", + "0f4ab2a573f3771d1e4222e251faf14e06cefed544e804c299c9a8395f5", + "0400b1f973d6495d277e24320622b9b99fccef8eb5c1c6952f35b82d4479ef0161dceea4" + "d3c9caa4f640f51b37fcbd5b8932642a94c8e7aaed5db17fdd", + "034ff28a5ed6958514c603b3af5a991e2e9b4cc2c0a7aa73ab2d70bd05d", + "01abe4a7b27395a37089f91eab27ccf29001ced1bb3348a6f919d466477", + "057449e55d3f2a4004d647ad6e8fbbd516adbb4de40b1a872ad8ecf67e2"}, + {NID_sect233r1, NID_sha384, + "7bef2487bc2bbbcbcc1570bbd4ed437c0dbcbbf63f666a3355aec49ea6ef593da25aefe9" + "ae0d94db50692475425dee3c88cdea975794ac69142c25732f3541457d68d9101c8be069" + "f2b515aadadea2019dc7abefa6c12cb3f76d9f4b5e46546f77eaf636aa8f232913092211" + "1151a4df913d18b7cf9d0308f01ad84d878adde7", + "0f4649cf30d4a5269296a45977de2652cb06d3ca2aff4475bb24517b927", + "040100ddcc8e09ba2122a6535c6a0a2dae83abf9e17687b5f6aae7ec6a2df10048f55873" + "60ee251925b7ed02de82307ba219a707705623727f98346a26", + "0a38b2bd0e9a5044db19d4312ec88d19ce1a9bf0eede8c357f898b0bc67", + "0d0ebabc8761ea215808a2c3035b14b614f64be0c2741b3d7789a8659ff", + "0f9e742bdca44c11bcab196f910c0d887e90f250817ee7027f6df8207a0"}, + {NID_sect233r1, NID_sha384, + "87c717eef6dd3c7434b2c91de05723783bef603d170f654b49a04b067b077c405d2d757c" + "e780101b930196ca4261efcfbd3fc1ebb762cc0eecf101072988aca508c41581936526d3" + "f337053000dcf77b16172492c5d654c6612bbd2523a6ad5966d7091697a29ce882fe331f" + "79a7eb59e5a3fe536263083cc59b8133bfd33c1d", + "0cca24ad914c24c011f41f80d27ea41caf41fcc8dc9dc6dff5248b2b474", + "0400175b73db13324a678b8afe086944a7ad257cd33fe9538c59b9177d1064016a98ac9e" + "0ff59de1ad94b50f8c709ccf4342f983c7530be64c3f1548fc", + "029c83def3a5c386b0bc3cf2663b8f4b02f26c6e3e14fcb17e9460087f3", + "061df783609ceb355aba3b1753d38f42434bd75c8354029966e7a788be0", + "01e8a093f53a1d73d5a994b97f2b2f210125ecd3dcdf77c68ea3199856c"}, + {NID_sect233r1, NID_sha384, + "9bf48c2aebf473b3a4a928b3b6a4d2fb7e9193c9e60bc2067f9f03083a8cc7b892bdbf05" + "601118bcc34dd283e7be996bf19b0bd36727eb9d65276b6517bf0c77ae0a9091e7a9e461" + "82a2586eb22324939801034e5ba94ba30d1bde7d8fed51eb71036fab6224f8ff30a00842" + "2efcff7ea239ff23b9f462777e62b41b396c5dc5", + "0f5e12d536ef327e3b0ba65ac5fc3f7f4880f5968f3340eb8868c1d47da", + "0400b2910f5de9475486b3975ce91c02187e8803e68586f3a1df14df67648e00f28af536" + "3ed851c42daaa810afa1fd0d2e001da7764671fd44fb6737c5", + "02a018753965bdfda98512c7f9da3e9235a4a77aab9804437b652182347", + "0b6fd02b2d84b7baf1a5eb592cde667ed6d4c2c821ca336027a72d9abdf", + "02253faa5935885945121a374010b2257123cd5db4c54a2aa0e08c8197b"}, + {NID_sect233r1, NID_sha384, + "716d25519ae8f3717da269902be4a7566d6f62b68cd0faae94bce98c8a4ac6f66215ebac" + "5407d6f64adf9d53f79f02e50921b6f0e8c805926a839443d30d9294eaa802faa7c5471d" + "81fd1db148cdc621a8dd0c096e06fb0b71943337d5325e1bca77062684873fe904ed9012" + "474ceae5b138e079f941a665a995026d13d7eed9", + "08c30d93536b8cb132277645021775d86c2ba8f199816c7539d560ac6de", + "0400d69332763cf533d48e56065e1b5255790f8c0eb23471fac9b945e6219500292df8c7" + "7d9a6803f60bf0722ed57ae2aa3bc816403b000fe2940e02dd", + "050967928d6089da5b16c88b7927de210325c8d8f5e727fa1ba3bd95b5e", + "02434697cb5c2ad95721943154bc81e2ae16332fa6629788f505bbc1522", + "09a5a6792b1b9c2e200ace5a3d50c04f69084dd9222c021ef5fce14d4b6"}, + {NID_sect233r1, NID_sha384, + "01e76755007b2ee5ac9e1d4c8adabad6d0f9c1c08ac6e2622b7c1ead89bd3ad0921b9525" + "b49a780a262fe8fc0904a80391717ad7cac9607de55f7c744af8a132ec45ce79723f4a4a" + "8c8b9ef658b360bd3890df164c9f1cd74eafb74feea251a34514ff2a57ae7a6d4bec2067" + "cbf6ee4fdaabf13721bf9ae178b9034ac5e9665b", + "0fa3f15a506ccf7b50bbbad0a54d3223f5a95eb54f0d1f4e5d0cc21469b", + "0400e797527d57fb3a18c71d1e82e7935e37e719439952d4b972f0c1e0c83500a345bef4" + "c5015e97a148b8991bed4b7ef48947b12f316b5621e94d49d5", + "075afdc12d4d50a7495f5a7d309696dca23e9356a0cab11c3b3d7b8c54d", + "0960ef460000fe8c761038bab7e29d665100494d0874b6556862c2808aa", + "08d3c004426dde6c18b1c9ae00a44ac947e36755d8c40eecf47bfa963fe"}, + {NID_sect233r1, NID_sha512, + "e95abeeb2c51a8cb75ab74253dbe130b5560cd52e2a63d501d26e1458aa568aca6694be9" + "1eee5fdfcf582c47c1c727084ee2b2c810281cf9b095808bf7e7c668eff00a6e48b06df3" + "fe6a445e092c24d5687d7d89acc8063275caac186c441bc697b2f67aa71b03294e1adeb7" + "e557c296dd91304ba0587cda3c984619f1eb4f2b", + "06400a4830889115aa88b860b3fb65905b01fd126c4aec2785518c2543a", + "0401a2051662c1681bbbf6bccbd33c44c7c7fc80b81a1bce14caa36a73f7a8011583d3ba" + "8f22080488471d8103f868100a97af94809b58bff1435b16a9", + "0ceac6e5d10c55888b9ecab8d3f6ada7f4d0bde2f109699157d194efa42", + "0c148f2337008ccc3e61501dc5df3ec95d3596d97eae96a7ab085a915d8", + "036d1debebaaef50243005e25c791b9674cd6fa986dc3d32e089fbfb2ec"}, + {NID_sect233r1, NID_sha512, + "bb8d8515365d240b2071daef0d80558fd3d0e059be9f6abb7b7a0a5f47e2ddca7d1b3b51" + "01d5c583143258520ce8db0a87f877a395615c9bf879ef46f2f20f68bbc9706f82781fad" + "69019396b27f292cdc70fff1772e90205a2225f80889f9daece1d03914d8776ac5bad24d" + "8fb190ba10a2ca17768b918c2e079d83734eb372", + "0c7b73c324250f14fac0edc941f79bdbc6933ee8f64bf94b847bee5eef6", + "0401af7266ee56bf0518f2875d4f4d9ec508a01769d9c1fd0a885a48bbd80c0084167ada" + "99502475478465315bf8163870a9ec1b43f15d68f0304ab03c", + "03badc9b8098c3b4d7e943a2365093028b579519031a8643b50c0f81eec", + "07ad4fc96c21963395f56eb63e1b0b4d2c93d827626e7bd4448697ded97", + "0e7504e6a9f662472e3e6f18a40f7645922fad2ef7313d600a5a6ee314d"}, + {NID_sect233r1, NID_sha512, + "cd8b2403435fac9caeffa21b55eaba52d7efee0f89df7142340cdffeb89556303ca01a80" + "0429397e2ff6c746743b6bc60a87133274282d4cac02e4ca90ad95d80c93b84163b96296" + "f67d40b2a1124b2b6534ab6b60fdee312fbcdf468d0e84eb85fce4ff360136bb31ced399" + "8d29cfaa3ae685e638ee272058f123c4f35f8b6b", + "03db7f28e161abf52ab0adc8c4c8544fc989af081303b8688f22b7b2eb7", + "0400ab94312e53832265b929f3d529bec33dbcc5c17b969e0afbe2d559ec3901d53b2c1b" + "e229e2c224e6e9fcb8bb0f044f3f9f5677c60bc9454f36eb06", + "034a8f980896284fe6d28b0b49703f1384d799e3f11a04b1e62da12965c", + "0e374fb355f30d7e427bc5db99ed76a914d6e286099c72f28c07302c741", + "08d5ffd41f8a1fd3de6c433635fddcfc2b21809d91496ac17571afbb856"}, + {NID_sect233r1, NID_sha512, + "4bb08eeb202564efb5bda40777d71f1bcc4c7c10b611e803e5c570876f3e319e9e2bc2d3" + "2031c56a32fc0d1fcf620d4e4377d881e9e1695bcdb78acba370b849115b86c1c4b83edf" + "a03299da8e7fd14c7cadb81a8e4911c8e427e32c8c9b67e317575331967cf58085cff0c0" + "d48ee0b8e7dc0b49687bb1c70c703a5dad08ec81", + "07e9d2fdd017d6da6029e88f78927d9ac9437f542db1f1fa99e32bfcf1a", + "04018429bf08752aa470a8f0801170a7ab96adfb168ee8212d76ab0b994e460072a5071c" + "e308d7daefb3e8f4da4681842ffe0f35dd8b071f0775c83f82", + "0a0f330e011d34714875500b70c881ff6b1c9e96da930eef75ec78ac120", + "0439bcdb86d40e8f64db5dbead95d85d6a771d811480c5765ffcbf75422", + "06c01f64e2812d18b0946ea4e6599e8cfca0a2b606c3c35c803ef2cfed3"}, + {NID_sect233r1, NID_sha512, + "0bce683d835fe64e6484328aa13e18b0956f6887b5e4442fce36ff09aed015889794e79d" + "a8aa60b4be565c78685674c51e1e7ac60db6a763c777198a56e382a03aff8b40862f961a" + "e23e8b8683b76a5577769422418972ab0049119382edde9e752b42e8b93f403c1ef8665d" + "7ce8530ce4ed9ebf6d397827cba6b7645e177231", + "0c94052760fc74c2b405ee4dd5dd2a7d38ebc16df9cc32df706075450b5", + "0401d2a5ee02d97f82ea9c8833b825cc57b0cb51d3f2a2cfa7577eba676eca0149c68d98" + "d0e9cb242962326a26164f3e3cb6d81b51f281474b0f8d333b", + "0fdd3ade90da682676d40008cebeadb9b2378d8a821e9e9428018cdc768", + "0f6d244daea95002daff2ff6513da694eee58f8b6c2d47ad121be87559a", + "0b04788fbb5655a053d0fb7a38c39e1fef68ff17860442ec8b8ad049842"}, + {NID_sect233r1, NID_sha512, + "a6defc770426daad4dafba3bbd2a69881334f7c31269b297e440926db54cdad3fd7ad200" + "f5ada2b72ad221ad99a06ecac9c2563a8deed89f0d0896991d1a652f6fa282affefbdb1c" + "1985652300d1792725071631d75a182b683a48448063c7d2563ec3d430e0fd3acea33a35" + "cd38ec0b5b07af96af71d0bfcd879d9864ededf3", + "04076b93487c2da8aeaeb4725fb53b7b41b465315335c18c6ca041175b4", + "040158755fd290910498f6c8eed83bcebcd1fcafef4878c860da118efa250c01781fdae5" + "01c2c147eca2c6c809d9428fff2f853b57c7d6add70fcfaa0e", + "07debe933553ba3420aa06e1bc52a1653f8a19b59c0bc9c47212389442e", + "09e09c6d96e33c845535468ec7f5b79cf30123538011d0b5ffd935d168f", + "0963bbae921317666f5852759e9ebf05cd026a5d9f026942835ff0daeb2"}, + {NID_sect233r1, NID_sha512, + "7803cdf4758c199962b62943f475c6c31356f5d9b997a12e21146a2399cd0dd3b97a860b" + "2ce639e2801571599136d4a8cdbfb12fd1a5ce22374991e090533ff42823a2c58d2076b7" + "72814eea7fd7a1fde68263ef912681c72c7aa3e5a7cc44ee8c65e72228b7631e600121ea" + "35bfbbc783b6ae3c0c8f80198ada218be533760b", + "076ddd73ee4fc1f5e6766e229cc7236cdfce312417ea291f7c3328d5ab1", + "04015185e029c0d4eb5102e0fe900ef3c921acc744feb44570a288015d090800ed56bf93" + "394a434cd84b521040d40452bb39755da5e273a05e8c0ba792", + "084e9e4a9c84a602c18bbb6b183d06969c8b8538e2ff901f1c2794d5eb5", + "0fde8e9b1959477ddb3423661df1e7182e4b583849d6d17fafd7dc5406c", + "01a12bd30e9c8b74912c670c0845ff5ecc77f29797160bd4992efa61f4c"}, + {NID_sect233r1, NID_sha512, + "e789461e1dad0b6e21abeb6ae2e96385549d1bae39415188c8f833233da6a3328144c97d" + "db36e0ff4d9e19d84f869e79e609c51b32de59892fb0446dd28cc164a3e53534c950d26f" + "87fb74e682db2038cde778bde06c3ee2eca2a077d8fcc2b0332e352e0e7e6487444a8ad6" + "0e78ff213b16fda9faf374dc6d27b7a3c4c6d196", + "07e1f8988ad804aae7d09a99be19384cc599e7652c02c391542be74b17b", + "0401fa4751e507740a7345e06a8964022fc6caa901cf0c2077a2c0fb86be8a00683c593a" + "0bcd123d958deb6b430d49d5a2386d44706f4149dc526ad896", + "01d288de55b90dbe72cd8f1f86a3ffbc2902f4b5f0cf4e641d32aec6f20", + "0048d16d87dbf4fb8e994dd874c10d5d16846b9ce2cbd43d09df62ca970", + "0e2ee47f422095d629c188df97e2839fc6239b9e2dc26baf8161b037236"}, + {NID_sect233r1, NID_sha512, + "9b58c145d1b6c887f2b25fb672cd49c3a1117224be697c15182d4048be92968a6500f8bc" + "f747fcf33145c13a8d72e891a6e0c4c7310c2b62f3181bf586fe32f1ecf4feee8c2c8bf6" + "c2bfdf9d5f88981ce080095c93e49a772d8e7b59f9cffccec3ca2f212ef4c6748f64e224" + "f4f098334d83108bf6f8c7b43c5eb549f1526897", + "09b2292b0244c2aabe8b43d95039984d504ebe05eaff318760e4dee739f", + "04012618d89f50b7f83ac470705dbe9ed81beb03929732a3f2aa7a636eaf59015f0f70c8" + "08e053b112a8c32ee422aac2b926c5b6a279a787fddf819990", + "0fb38174a83ceb9236fec8ea39be2b3c77c3dd2cf42d140e27838202d08", + "084941856a387a56022727f81a939d77d12b01dab603ea0cdef6d9cd6c0", + "0bb9fc30595f94d664a590ed4f163e4526809819baf96bbee629ff86bd9"}, + {NID_sect233r1, NID_sha512, + "52310a901fe9681a23dd6e02f12974d57f2c4f653322d9a0ff8b338cc6c2bd9f4765c90c" + "6b3c9fb17df3f492e67d204e39d81a8fdeb92c852a1dcc6151ed6c63049037235c6751c9" + "a902748163a567b714725b4d3995e0edbde03215c645b1a1da3147f7406245432800c50f" + "823a1f991c863427ff4c68e4e16d1b106ee40dd9", + "07ca463b50fdd92d9163f1c2bdfce2ee45ba1437b79162e3e959b814cab", + "04008eeeb146216c73ccff0096e1100008f8b1f3f0c5754c0abc4ed39f7f63018c9228b1" + "1888edd66b2e661284f583a0e8d3c3e922932cd9fc1568f959", + "0025291ec0dc2b0c709c5e69695980564552545c2497636b814aa049ccd", + "098dc98457ce6e69f77123d5d2460ff569786dd60fe07e847ed5bc14da9", + "0cd320afad2a4247fea5b74d78dc3df8967ab3159b4c8b191814d368dc2"}, + {NID_sect233r1, NID_sha512, + "ff419c011601cfaf833067cf28dbe6e935ebeddf8b5111a97f6eebf3bb28376334f329cd" + "877a134b074790a073db766efe018fce666a34650cbac285ae856fb6b3b8b96877282bc1" + "1cd9f9c8e510ed1f69bc2725a44a1d2b35de1edfd8bc9d20c7525ab0bbc27662a7cfc1bb" + "d1e0f4fce5b88411521e3893e027cc8c73acdabd", + "0c3844750f63fe0c2e930bc38fe88522f4e72a2fd0db9778ade20e939b3", + "040075acb00b5999f8b272a15a2cbdf8cb630dc3eeb1e78e58f58e467396f2016711aca4" + "24ca335878d273eca75d804d3f009a1f3628568530ef265eaa", + "0a63e7a20d100f14b8b709f0a6c383166c2151a36dc471f061b0f20dac6", + "04063be9d8e4f0f9afe0c79374c69b36910b5d2b1010e0f4db2e4cd23da", + "06a6eb90659aa79e4a2360ea9ffb99a415175dac6c3efef104bef6fd57e"}, + {NID_sect233r1, NID_sha512, + "05a89c4824c5de66587875011e704bc6e06e991ba8f3aed331cfffe55aa266a08c729f77" + "b8d082dca4d286b2d451ea838d726cc2cf298fddf2d7376714c5e37b64506f353917caec" + "525a1209391449c078c5197a371feade74f8fc8a1a1d67576edfda13c14ad324342fc0b0" + "9277941dc072ec0d39434ff1cb91fc59478fcde7", + "0a3bea235dea86506be4476eb7999dcb8e584a34238c4a894ad6823b93f", + "04014093a072c21c44d1c4beddc5c8dd9a2845db0935bbb4e1c4edb0aee032013286ed58" + "4deb744c9c35d7ae7eb9cad1c7ba2b670642de0399b230716d", + "078eda19f0cced2f84c1a7b354e5a79bec035b8bb279473f32d60f5d17f", + "0964e817f0cdc251eede4157a9bd830c476627c3f27d2931b4f593b0178", + "08dbf34e597ae06ad92b13900a4944e54a5bf0f16f586baad157da6dc96"}, + {NID_sect233r1, NID_sha512, + "13e6b5241365d9d0ef9e8b05cabb3248afd221ec02eab92284b98bda3d9272184bfe5251" + "d35705defba5085381430e99b33a3ab77d7870e5102757d065862372df2434a25556b76e" + "54ebc39d4e6c3aba5cd6acf0c335756f7d9385c1068d4cfa37526a9a58c0ccc7f87a8189" + "176c5d4f201499236058ec061357dcdb5acdba40", + "09a367cd1cffd8dfcca179e167ea437ee48e9b6f42559dda9224701d3f6", + "0401052d751901f6f8e61858d3b15eb59dedd21e4e997531ef65622d5750290112737be6" + "7ec621509d73cd613d7b448035397fa66eb881f90a6d531ea4", + "0d8dd8f1cab623ba6a4e840962fb31de97a4d14aa6dd34dd21154105030", + "0a8276d0f069f34c60b26a55d47df69e4c9ae2981afc59e14b5bfcaa498", + "09351c4b3a06b839eb2e9f450d9c3d15efa45509886ea3f2610ee1dd156"}, + {NID_sect233r1, NID_sha512, + "139a1a5090b97afb8fecfff8745efacf7dcf91a4393a7b629564e598d58d5be39c05c583" + "0d4c8ca85d29e9e2c31ad0447864e867d0ef4788ac734f8d871daebceda98d449308c2af" + "be97724c3af8a468f1925065f39e52ba4b7d15728a744b1252a20476dcfff7bcb82aa72c" + "209e72abb3c24419bc26191390ffed340c1b9c6f", + "046f4ad2522e78b9b35297d28f361fb0ce82306322aedc119251d8241be", + "0400b976c53a966e0834d5f6bc3af10a5f12cb6d16cb2303a3c6cee7d35f2201a1097cb5" + "6662265f4f2f52df375d70af086264752477c34c6af522f1ec", + "06a0d21e5aadcb0c9e3f9fedd2d896b0236dc90e33778fb114e970122bc", + "068063fe0a31b7e7925cf8959c3486985d98f58224d5f67cd0218af192b", + "0f11a22ced98173040062ff9e69d1b2a1b5a939eda0a6944e96fc62fa4a"}, + {NID_sect233r1, NID_sha512, + "3315e5cda5f252e3291b61e493ab919c20a8af1286d9660cfa2f5ca38b6defe19ebecf82" + "0787fe692d04eae8a5f5d37abfb593309569cedf45efd0cecef6951b718924c8380ba52e" + "8ab8c9bfb2261ed5f01cc5a5f9fc5fcdd269a0f122c597afdd9a836cf8f96838c3e8962c" + "1788c3ce4128719b3ef4fc88569643dcad6da16f", + "0ac82137e9c7a5ecfb8b1a7df9ab50732934566a392a6c8915ee8ca8144", + "04000f7f835f8223fa6c49eaf6650e33dc9d09e1d2bb098925d908606570b2006e659ce8" + "623767e8214b076d7588746bfdcbbed59b75bb19477366cc78", + "080655784e3e31c6a498a63d4d84f7e5a353a66641ca17d4e223441bb1d", + "07faf31d1d31ef4edac1c63072350536df84c417e0ef808c6be39617e74", + "089023aeb53ddd3e475d11c53479863739e62dd64348646581012784689"}, + {NID_sect283r1, NID_sha224, + "067f27bbcecbad85277fa3629da11a24b2f19ba1e65a69d827fad430346c9d102e1b4452" + "d04147c8133acc1e268490cd342a54065a1bd6470aabbad42fbddc54a9a76c68aceba397" + "cb350327c5e6f5a6df0b5b5560f04700d536b384dd4b412e74fd1b8f782611e9426bf8ca" + "77b2448d9a9f415bcfee30dda1ccb49737994f2d", + "299ff06e019b5f78a1aec39706b22213abb601bd62b9979bf9bc89fb702e724e3ada994", + "040405030ce5c073702cffd2d273a3799a91ef916fcd35dfadcdcd7111c2315eba8ca4c5" + "e3075988c6602a132fa0541c5fda62617c65cfa17062a1c72b17c975199ca05ab72e5fe9" + "c6", + "2af633ac1aee8993fc951712866d629b43ed4d568afa70287f971e8320fe17b69b34b5d", + "165ce308157f6ed7b5de4e2ffcaf5f7eff6cc2264f9234c61950ad7ac9e9d53b32f5b40", + "06e30c3406781f63d0fc5596331d476da0c038904a0aa181208052dc2ffbdb298568565"}, + {NID_sect283r1, NID_sha224, + "44adcb7e2462247b44c59608cbe228ada574ecb9f6f38baf30e42b589fb9b157bb0560e5" + "a2aa5523b71cc0d7f583b502bec45d9b8352f29ee1842f42a17a5b16136feaa2efa4a0ae" + "306402940ecd6b71e57d1467c98e7960de2a97f88b43487e4f4016af1292381d70c18c7e" + "6eed99a14cdeb5b3caf73688658e4c5b54c81e08", + "09c2804f8cab768248fb3fff8a055b3f4585c00de5c1615a19f9425b9432ea09afba8f2", + "0402570ff62b03a5124f08f752aa71ddc57944cd94197fd286d5a2a107b116d7b8ff1b04" + "21037714d9abe9aa0a9668fce89a3fcd5cf2e4548102a181a777c9b3f1008ac6e8d3a31a" + "2f", + "0dab5ef658ae3e2ce2bc5c88a8b8022a0ca5eb8524815ffae414327e3afaea5fcb8a7cf", + "2d99f82d92c9554722bb793988af0fd0bea776c5608f5939db7c8634eeb24ffd381dbef", + "27ceb1d01ec9a3ec0e74d79e08024359e117488020de6458fbbcad28b173918fc7d129c"}, + {NID_sect283r1, NID_sha224, + "cffee6252c7eb6d91d8fe100a1e62f0ad9f862d78ca2b747a6c17b8c9ea8980dc239b3b6" + "73310e6e7483582399163e39d889abc1a613fe77849ebc09b4f7f4fe0688b8a9869ae918" + "a88294c7ee199be50ee9460db14725ae70b449d0cb48f30e7d817ec02c0cd586119341db" + "a0b74f0279330807cfccc99c8c340b72c1764a45", + "2e625a6bc6d0ce7c06231de827068bdb0abc8ffb57c82b35ee3a0f873b9473905974d34", + "0400458bf39974812a4e0964c31f40083300454104c0d65f22c5688bfff3c256b7ea9589" + "000738dd33e32b9af93ade2dddf4147187a9270543afdfd66a0f2a53d6d3d815ef59795f" + "60", + "0a9388815c528fdadcc5d3b125c7a38db57fa8c163ba795ee00e8e307bf760619e705c9", + "2481571400ecf9dd31dbd9c905fa1006cd5bc7afae759da3312ead8d5a7dd0c25a37ab9", + "13952fa427d348b6347b9e93d4cb2c4cae3429dbea6aafd1e58d5a34805098722b3b8da"}, + {NID_sect283r1, NID_sha224, + "d058ab5dc07228253707ef224897ea0fcd09c3d5cc91fdce9e03c1c59c53fb4596be2ed9" + "29c7455e67ac7f4891aed3eb06ad88f2c4aaaabff045b959f900d1019d706b6052637585" + "1bb891494e99995928e4cd51c9616aa651ec77bd7e398916bb9ed3156391bf7fb1e29181" + "e2b011dae2edaf803607def2ac6b194929a57f45", + "376ac24e1b86f8a55c052d92a0bdc6472fa03acdcdbccbf7c321ec0ccd97aa0a66b4181", + "0407247c755b23bddf944e29348da82495b4f61d02a482c6111d8698cc77e8dda4c341f2" + "0b00f8c199138e1f4f8344facd90ac62d55f3c9a15ba7a672ce40241aa26419af790cf7d" + "d6", + "25d07c7afc5a335c2bd7863c1965a48c12f2687b2a365a7c2700b008ee8a0e8e35a68a1", + "23fc2837a879b79e470305088acf596eb0159edc2008478cc4c3841a1bd66fab34bbb5e", + "0a909b83bf77e74511063366ea1d1308a8a544864783459a60fb2669785ab1af8f4cb06"}, + {NID_sect283r1, NID_sha224, + "c86f2cc7ab5df5cf1a236fd83792769474cef464032800ffe98a44cf29dbfb6f24088160" + "eb31a11a382ff2a49f3e05e983462f5304272f96c0a002b69af3d233aebe867ee63fa466" + "66760a6889d022c18645b491f8d71b6a3b6b4ef058e280cf625198715b64b025bf044944" + "5d3dd7e1f27153926e617bd2c96638345431d1ed", + "2b50a6395fc02b9ac1841323de4520292f913519bc0d6a471aa28021322fc4dbcd7b802", + "040696d5ac4bc40e679524e246210b7bb0f93ccfe7dc506ba87be3fd018f829c93e62ad1" + "d8065953e01d9db8fc5d64516d864a33aa14af023e601d69875ac0f7af92a1e78aff0e47" + "5d", + "0aa25b43329de4e7739fd9134e4f4b3d68a64e55af47a2f6ccf71f518f19059b68d34cc", + "1338a5dda5fa09667604a6a7666b0e54e6b688b98b31c25d037ddf55ee6bee7565dad09", + "00aec025232c16e778f90785ded5348f3d5345b8344b2a762480383777328e0a0b11cb3"}, + {NID_sect283r1, NID_sha224, + "c1328d8d2e5b6ffc850a9600bd6482518ddd9cee3fc9140febb72bcd444b0cd7e8074587" + "d51b62cce4b3d4f34ad3355353fabe363369cf790db2df9fdac3a0ec4757e2dfb3b683ea" + "a3e26531691ce765742e1c0bdc0e1028d347b6085fc459df0989c6a144271454eaffe413" + "cae2ad7c8b2371fd2df1afffe56df727009765a2", + "24e5889722f6c35e18ca47effa9e415b1ba790066a91fb3c9f7b001ce28fc732b09bc23", + "0407d4a57e6aaec6b51dce5408f6a7fbe9ba9d55f5abe2da55fcf015ca25dd74eb61c155" + "6c02123390178b2992059151afb51ac652b364f562c65451eccc65d968e9e7210921c93c" + "9c", + "320d2a7f48cf3583e8d7e712b330d40ddbe4b6c128be5a43d72bf57d4227603762de7f0", + "09806a8e70742c6c4a9ee6f77fe7a36489e1fe8c442ddf9cdcfa61f019ab9b41241d949", + "061fda247ba7c198aa532906bc01d509088d6c2ba0f14ca3ecc5ba36f3595db1df3e64c"}, + {NID_sect283r1, NID_sha224, + "7176b7013ea27e94281977eacb976bb31c753bf80fa09680a29128a6fc15234f79f0e990" + "0aff3217ce9be72c378042c6c34fced0158740073d1a985fa25987fb218002e425868fda" + "5a47de51abfd04de34e2b8634cebfbdc98e80f93d94096193eaa82dc8778fc23f3765c7a" + "cdad94fdaa272df0ff0f28190c10a462ee78ac92", + "056d15b81f40b6378588a5efe43e21b95e18120d514bfdda0e7759a1d0766a8a35ce5ac", + "040306cb78fa576bdd2f43cf7b71d7e66a98b850d87ac087dd2e1ff62596a2e8d4cfff13" + "4403b1e3b12db842e00c2faef04d3e39cdb71546e4e3ecf21eacb6131c3501fa30edcc0b" + "70", + "1e8969d6cad41a40d8306d2a8db3290d547106eb59f661e0d0eeb163044a92aee4483fc", + "06786637c3bd5a95eba5ce015f151d99845255175ebb9e593d912c75cc45723612c4ed5", + "384471c17c45ddcf62b588993835bb913be88f7a8e46e52e211972ffb3b7768410bcb7a"}, + {NID_sect283r1, NID_sha224, + "4c3642ba040a9955b9d50dcd1c936688c17c363854358afa8ca49c6abd906dfdc4d89bb4" + "cab0bbc363fb5b74e1f004d4b09ec9dfeed4c0bfb482a9061a1f487a3d79195ff7b65a05" + "04bced3a28db0ebe8fcf8ab1ee4a3ae91324d15d890ac4c479144dd5538d2e36d3a58776" + "9ee9cd2d5c6f85a03362a022fe0efc4a3902b71a", + "12fb2fb5bf5f7e42a500154823a174ba2d05af71e3b0cf47fab46e673ea1822f1563def", + "0402414d172d74a6281169835d18bfaae91f1f1cdfa9ed451884466e63160ecdd4a2c790" + "6f02d892bb19b47a4fd9d851d3b101ba99acf6d11345596635cedd5d7557427a2896a913" + "c9", + "20786f42d77195bea5761f86dbed8b452f858b447d2f3775ba2a4865d738122363b50e3", + "334507412368f08bd0992a5d56581ea7139e8adc88abe4bd80dfeefdc7a37a481b18609", + "0fd8404df06a02618cdbf6c28610d5dfac9907635d9e5f2887f11a7f18cb8b7ac95b5d5"}, + {NID_sect283r1, NID_sha224, + "e471f39c18b081362adc7da47dec254dab8d765f005ac574640d78c14222639245563912" + "d942f3be212ee3cef134407334c8fe3602fa0e1629de5331643d76715dc1b0ffcebd484d" + "86c5211be4b285a31688b205fa988e6c15b36daf396ccdcc209c7dde2a732f5c31c84c7e" + "a041408ebf15e56632583af0131bd7f531b5fc45", + "30096c54fd480647e017f8cdbbdef292e799f054e3279d228b09816a757566a744a8266", + "0402d4b28fec18cd888017fd5a27a375131bec3aa7195c0a4f255eeb3616437079e356a6" + "cc027c607dcf0b068418eaa7de8da6f9707650e8d95aec571f7ec794415fc175061b4515" + "19", + "36880905a376faa594978713c2de1a90c8e27baee65bc60b1fa6508fab5abf843f66ecf", + "295193f1c64181bdf749987bbc8ff2a188126131f8f932bb8ca952ffa201f109762e18a", + "381c496b4035bba880225dcfe74fcf101103e38f9518d9427c74a5ec86ebf8f7183694e"}, + {NID_sect283r1, NID_sha224, + "8a93fe53e83075c4025228540af7e96a588520da34e3eadeb99a4ab2f3dbbb8f85fe63a3" + "b86c1f4ec912e665ca05b43e869985eae3791b91205afb1380e16c25b74e6793fa63e4a5" + "5dcf25dc22d03f09deddeb9042b620434111afe08c5657c7d754af66ad91a1b5423301b1" + "e8e6389a1404060d1b6a99fe0f89598482979e42", + "0a1b7e9c8c2dc25b494b5ef3195b294e41cd3c2c35235ab42542bd3e2a52d5826662bf9", + "0406232063dbb66a56e2a92dbdfd9b3c136eade9c214d831691d9b49c56a3962d20f14b8" + "a901b47b85bc223fde1918abf6308b74dff7f3e686af9c9d7a1855a1b77984d258c1f9ae" + "da", + "29b4221eebe151fe758218138535d81182c991c3b7fed93f9a6117e98c1c2f97e546937", + "1f8040fad671e2f32a1094413ee955ea5426bc906b8e034d87d7408e63db173b05afbfa", + "22a353c431a9e9315ff69facfa4e15f6e6ee1be2750472823db31b49b17fc759e6b94db"}, + {NID_sect283r1, NID_sha224, + "e193a8ef6f454ca1aed38bb67aca6d08280d421b196d89938c0582b7cde74dafd71716f3" + "818940af412d4a7ff3960a8517aee108ae03576b68ee7557d35e6f1ab823d124de7243dd" + "02b542591f62c80d822608572889573e4c9dc62f99d68e07800da6f83cb6f5e03d1f2ac1" + "5f90e38b4f25e0a75e354e4b60cc81c0bbe81d39", + "059b1a8fb84530bba7a607ee88310e31bc6ea6a6881603567a1081a05a3a9ff87e719ef", + "0400b9a71aa3cb4cff37586b1e522b0e332ad5962eec3dfeffcef3851976baadf611ae52" + "2606b1bf0b43b406b5edc6782fd391d9fb070fa3570d3cd5b2b66d7a95dbc45ccb162617" + "2c", + "00a77307da9845ec4572a24c9e74a17b76b6393da87a9d7b1b8456235473ff39d243ec7", + "36721835be490b5ffc4a42bee3c6d231417f7038c367efd9ecaf7fb3618ae8492906de0", + "237833bcc3e4a721e2079e579d1aaf2519c01cc238056fe0c0990dac7fe50e75eaf6f96"}, + {NID_sect283r1, NID_sha224, + "8a99b9db191f6cabc88b430bc2293e6774d5180f019d871839289e25aec29379f14606e7" + "42190b7aa062e3b29fe0254146d9614856c5140c7315015abb98ac00da2c7e33cbcc82c2" + "4b797366f12767322c4381454d9d1eeaedb616b0ea5c66d1422da459f18081f4f966d05c" + "e279c6ee69b1bf94b8388d38d4b770d9ed69025f", + "30ddc2c7a4ce300cc2b75f0f977033f16c1f8bb13aae3d494c381f9a6dc8622499ae4df", + "04047bdfd7c77ae0c53e327c15c30d90ab1c9b670fe2241dc0ffa939fec3cf6d3c1f493f" + "3a06a286aa2310a4d0468b62f3144a9da2e66d15bf86f60045824278e8986ff87a276119" + "20", + "38afc3d11c66eba3441a5ea298fa593eec57b84ea29973c306ac9d46bb8d8e2f4c8b049", + "06c830f6c0be99fea4712f1c75f5a4e439800dcf062a16d93135c3255d3cd04bef5bc7b", + "1eddfda0d0e02d382ae243e604f76939dc21f3ce106243b2d20aa562b78e620fb456428"}, + {NID_sect283r1, NID_sha224, + "5c437b331831530aa94623b1736f00b986172699f0a02a5e5df0008bf25341787e2e6604" + "6f2c929dfe0058c3cb89fc5bebbe1025bb1edd1ee31522ed568e7b5b4ca3991afdc76a68" + "cbc2c4f81863e27fdaf6a564fab2c6354e5c657de81390f8a4132669fd24a48580c716b5" + "b7961a9c091f614d11cf45dfdaec8946a54a11d8", + "07899928922fbfdb5407517725edf231d15a8b62d90b7fb6d8c8d20424850dc44f797ed", + "040614257f54514cf37df2cd78850658a85ee362764ab8186423aa0f9a1ff486557f8f16" + "7f03ceae9d1370df045d20f576931ca63bdba8885f463d5c82e5edca5116ed3d2c2b0c48" + "61", + "3395493478e69e6e1088166f622a4f9ec7feb998aa552b54bcf0fc67c06079f45a14993", + "3f31ad171dd59c9deb21851e631f223584b17f72a6807d5239ae31373512def954d5ebe", + "28f095ae43ba5bdd899573ce6823eccd8e127c6c03cb59dff43c087ca24e1ce5504d1ed"}, + {NID_sect283r1, NID_sha224, + "91aa08567d8da4c90684dc06068f69deae240212842ff1786f04ec41b40d9187aa92c764" + "01f9fcedced62876a34df82ad7c1e63b68bb2a972257ea8542bda6a7f1a020c9b122943b" + "6d651abda8b8d322a8fb762eee376daa2d3637a71ed6c4f5cf96f61c0da2d6e1dda3370d" + "80e51da2cbd8aef3267168c67359523faf910dfb", + "2a2af63d1171930758bd3e5bfdac62cca1a83a3b55a49b3f80cf0d9ee4b2082757beac0", + "0407dd6fd0868ec478e7e5c08965fa4f1efe8db4d0c04f0b6c63b5dfa397607a0d9d5ce9" + "09054ff4fba9058179a2c61951fb4955cb637b01267f8f08b3aad614738c562f602d498f" + "04", + "179482dddd033e8849abfd4991304137044d7433d7bf858a794340ea1cd66e736b821fb", + "071f4cb000ca1c51c698c867a78961e6d7defbd60109f79d1d165ed045a653ddebabd10", + "1e2975f4a1fce0b3b0e13c3f50005fa664ee9319cf774d2e107c406d36158bcecb0e5bc"}, + {NID_sect283r1, NID_sha224, + "eb5297bf408c1a55e400a20a3c10acbc5c2bc6d6ccfcc0941fb7a6fd4d2834415a6df86c" + "3a6c4b867d1215aeb8222153da8cbbb1576c92c07ca2c36d8f243fd911f9a057e39ee258" + "32454e28d7ed52a8d04169b9b9677a16b32d5d211b8573a8986e9bf36d7206417ad2771d" + "aa11bc21fd7ee1029b65ff7c9b2705a6dc9cf9cb", + "35994e89e13916ad82608f74a639e6aceb756ff913aec440519946d6434af9a60a6af49", + "0401f7805dfc9f90d4f8a1b241dc9d68aa41cb77b63d530cb3733cede23bb87ee5118e5b" + "be01c3f1aa3a1218de78a94ee8f88d3f787fdc68674e31792d919dbca681a6db1dabe89b" + "61", + "2116684a4307c67a3d8c1014b33b928a962a8daf86c4031b0c1d47315d74bad7dab2aad", + "33cab952e9382dc074d666f1f2ab2bd72ba394a404ce2fd02a6f7a4dc096d713827c94b", + "33b2886738d882146c0cd715701fe4e8b94b0d28c73a6b79d2899391119ba910bcbe3be"}, + {NID_sect283r1, NID_sha256, + "f415d0adcd533dd8318b94560f86732c262ad2c6dff9dc83e2435543f429a2158cd2fbab" + "0d96c027f71008c4895ecc644c2ceaefa80937f6cc6338d15d36e459a16bd9387a361a6d" + "800acfd834ad5aecf442e30b70f5bfa164747cf9f89325b80976052a83a5e896c00c54f8" + "1472b14329cf23bec10a8e693005de2a506ba83d", + "29639da33f48e4fb0d9efdf50bba550e739f0d2476385cba09d926e789191b6fb0a73ff", + "040770f9693777e261db9c700eb1af0b9e9d837ce5eabd8ed7864580bfb7672ced8ffca5" + "98068aef01c8126889204aaca8f3ccb089596f85e2aca773634bc5775ee4d27c77f2af83" + "e7", + "32a930fdb1ba2338554a252d1bf7f0169d18750a4ec4878d2968c5e735f98b9d0c25edb", + "30cd65f1097d3fa0d05e1d6072675f1377a883b683c54b8a1f4960f90d68f3ee8c7bd98", + "15c61ddf43386a2b8cf557760200ac06a480797e21c92e45e6a311e1a508b03c4d9632e"}, + {NID_sect283r1, NID_sha256, + "b178d86c9335b85e02178fc4551769db589ab91d823fac219c7e14e2f029753b20396238" + "9476723832f8d9631dd7764e6dd35da290afa42a794476f5c7727b3688aced848dabc995" + "4201578cc7b25801710931f45cba1199d3788d64dc0188412e70723fb25b8ecb67183581" + "50c4037b5b81466dac1686cb5270bb1c72d34bb1", + "0583a7ecbf2a975a32d07428d27ac82e5dc13d1466c4fdfc1e6a05a8d9a289f1010617d", + "0403775ec793ee4bff15027c70d9bb5dedfb7d2e41af8895faddddd4589cc5a00bd222b3" + "bb0300f7cd572d82f2f0a2d99a83977ed2034e03fdd76a0267455a524bd8199424ae5b81" + "ca", + "1e58b1f66c927f4ae16143856d67193d889debdac8eb03936f1b36d550c2f2639e13f8f", + "0f897dbc8ea12f4370fcd08e8700e5e4c68dff97495f401d01b782f2ebbe259bc0dcf25", + "3c32424fdcca39f411663284658b8f0c1f950f0cea4354f02f4b359f18e3fefac0976e1"}, + {NID_sect283r1, NID_sha256, + "c8bfe9fa7c848531aa2762d48c153cd091100858aa0d79f994fd0e31b495ec662209a9c8" + "761cd1d40c3d8c4262cf4dc83c4a2549a5cd477726ab6268b4b94a78b1c4a7e700812872" + "d7f41912a723dd9abc305420ea1e1fb1fee41bf643f3a24abd6e8fbf6fde2475e2905277" + "24a6f99fd75374bf7cb01b34d3e60d8db33c4de1", + "0f817ab1b49131fb9bbe8c112c25a36f064efa85de7506fb9cd29d81b326bf276277f7f", + "0402b3a06e07fce1848494d3227ff77d1c43f4ec3c037ad73ffebfebeeae87d3bff7f7e5" + "9a075df52e6a34229266ff28b1c217538ae23b3912e4bae8de5cad9b57b7c1c9ca8aabb2" + "e8", + "0ac57fbb899193b88fbf4ff2c502af72943b133e8d40459a833275212f6644f566f5c58", + "3e13307d5fc2b7ad24e9422355150578c78e1c99a6f9a24f9ca2e8bc6856936c5c4af2d", + "05e8b77b580cdacc2660e6f8a1877d93c5983d135d63ca0e0b06aa8daedf855c9f661fa"}, + {NID_sect283r1, NID_sha256, + "9a5f563d0f9fd1f31f3a822de628ae970954f4e71292492d727109036491c29e66b9b0f2" + "c90c26abe94c08502f5e923a9ddaf6a7d91e9541ce90d0a49f03ce4e4769753d5b7d922e" + "1ceaac4b4cfa4262732a09550aa076b8ff9d46a50fa17de17e3b6bd606698464d116fcd5" + "f1ae11bf45b0c48d3b738427cb47b0d1272b03cc", + "2782af76ffebf3e2bfc0576b70e4f4bb87c762e2bb230d278ce776310a14f5b678f29af", + "04000dc21b3be7efaba5c7f9f22591327f0f97083d4d844415d3148d227931256d026ec9" + "d401276f1d9e131f13bb129a1192fa24602fb508c9679ad2124e49c70a891777cd601955" + "fe", + "0255972b5329863f380de945574793beb0430dc416a8f2543330a125ce8d69f72dbdddf", + "25bcb54e188aef6e362a62fd88daaacc8e697dceadc8a6b6f804ce4a36856c8da6de97b", + "1e12e18e1e281606c16ed1f49804f8cfb33c29b0ae92c072d5c41ee3e6836cf1813d722"}, + {NID_sect283r1, NID_sha256, + "3d6b065721da9de82cb33ec2c27107eb399b1e69ac8fa51145ed4147e20d72e27434104e" + "76af988a3bc94f55e36677a05182fe2376dbe38195fc6a30673a4dca87336c7304f3f31d" + "49216fbdfea00fd1e105d8b0c13ab11f8892e0045e915c17dfaab07b24ed21b06af5a8ca" + "d4f45fbee5a25bb6e87466a7bc422c0bb896440b", + "31b827b88f14d3822244809096157df3c0aa99da90c00cd9f0b18dfe306f6881834e6b6", + "0407b3ed076a2901ab2625bf05fa6db10a8c156412fd2d26741738f5eeb6a91891575269" + "4606a8cc2061352c36f264d23dc2857fbe02af34397ae5130c582e885f50f2c112f141c0" + "7f", + "0b36f5d6da409c4a27f38ff9686cbf5f4714f4e17234fbee6e6deec97c9f0d4c585d42d", + "356911114c9ff9ae4f3a4fcc5379c987b9d298554cdd39ce124f04707e7fd1ea25231e9", + "13c0a321c4c5a1e89dacddae38a9b3dda32a20627e53dcdf28ee26a550797c255eefe6c"}, + {NID_sect283r1, NID_sha256, + "d125f0e2e6135567adec9e77da2afc6862e28d618416632ced829d14ee8b61116da59dfb" + "44098a40a0b927731125617e3d2f32cfbd1546a6e758c1ab6597e75db07add52ecb61d37" + "da2e9ed04df95b36ac249f4cbd794cb561655cbbe4b34834c497b3d392d78ed0db8db683" + "aff0076fb6e43acba3fa2b91210cc6cf3fa594b0", + "27da4916f1c471cff80bfa14d12aa10270fc3b26caed010c0111f6e5a40d914a3927763", + "0407d8202c88fb915446c521884fb756375a2b8d178f6a87306c1c8b67b926e830c8285c" + "150224dcebb8a7c46902532870ff855c780b2884dbce2956cd34dd6ffef8dc365b967534" + "49", + "3fcb1e759418e4539f9be76354cc1914ccf9a111338890eef723431925fa132ebad8695", + "0d4d4f23408db58a72495aaec6dc335ce85309fedccb6ade053c23347abdc9e77a81aa1", + "129b6b322573dcc79704d08921cb54f31c571573da78cb09d0aab40c4036ee8f195d88a"}, + {NID_sect283r1, NID_sha256, + "b380f97687ba24d617a42df1b14e5506edc4b62dfec35ed9fd886bb769832cec7f9adae1" + "0c21b7cd9152588797b4efc6b2b30a873d3f25e683ea9be070dd69731949a51121e534fa" + "bfa3a2eae0ee90a454182248bedf2595cd47ad08614177d58f7a773f5023b538f5f56868" + "2c83fb60e3fb1aa859948d01bf7b214e7f2dc719", + "10608eb51dc0ee97d6e488a23c582ecf0ea1df9a24db77094d87b3fb6ca98507280a934", + "040399b3e571caecdfa1efb243323159a45618702600b870954cd614e494bccd70e381f6" + "8a02e2fc57721a500611badf48fb435a6e399cea356d281e853f55ef2cf9fc5f70dc8b3d" + "a2", + "0a8045b4f55115dedd8d742545f9f2bd6e5ab81cdbd318747aebfe9f74b0cbc964b6040", + "2d022631bb7e05d316a1b130faaca5af5eac67dd25ad609e6e2a067ff74fd4ba534db2b", + "04595f184068433962d250394680701fbd2e2bd613a47e5de68fa1eb83cb08fb425571f"}, + {NID_sect283r1, NID_sha256, + "3f9ec57e4228e1a6ec49df02c58d756515305e48763ba1dc67298be9a1548576c28c82b4" + "e9b3f62357d9b3c522b16d5c496a39effbdc8290edd2cadc0019e6b9fae1e61238b13b62" + "65ad2ff413a5a0684babdb0013e7632051455e6fd943815213c555dba96cba8911e006bf" + "ddec6c3353065004538f37e48df9e339498d85c6", + "123f9eb8babed548df08cc3afc1d3b3bbed52b538d4654f2088fe76062fbea75b85a560", + "0403b2e980ae7a847394720a9cb982fc1e41f9381b0f2e08b87fdff1bf891b9637cb2248" + "5e04a367d593edfaa4e17113b6b1ea3ad185b3155b1bcbd9f00f4482e509b43bf7eb67a4" + "48", + "2adaba166d703d4d2d431a26200acea7fb47216fd04882f91c5730a55c349770d58a452", + "2c83e6a7b4fd48e1ba4fda8ed7891425213764078926d8862d0eb64765ee2900b3deccd", + "3561a949d583b7de9263d07ac427bc175b75dc52f43f3ebedf996218c94e51684ed5f9f"}, + {NID_sect283r1, NID_sha256, + "bdbd7b7bf3337bd9d21a3c6db379f95408c17e49dd394e94737ceae889f45dc0ff5d48ca" + "dc53703a16b5589939506b548f8dfd34c577c084f372166cbea320c8fd07c809b211e074" + "9ea639e68f890affa1569b66bd763c7c710989e491011371eb1d93ed9479ff0216b7f79c" + "901a2023e2cf80b565d1c0517e73117190cd2f02", + "06a18e626452111922e02e31d662f4301319946a204ae8a34f06b91dd1b5b96456365e3", + "04077c1fbe6a645b85fa0316ae412e8dc558c7c066d9aba900650749eb7b14a149ee57a2" + "5901b2f3002ff4936653412c8ccb8a67dcae18d78dcf6dcaaa75061013d2134af2c3fa0e" + "69", + "21bf4ca10d03a93d4675baa26285aaa554836bd0bab6e7fe42600ffe9137d5e304847e1", + "20702aa5b5cb45cbe8025b4ddda0a42a1ab746117d45382d018b2055b62791ad91abf54", + "12c31f9bdc096236d3ec46c4e6cdbcea47e4fba0e28d4df0fbc19e8740ce6dc0577b242"}, + {NID_sect283r1, NID_sha256, + "436b288512ea57bc24f84fdd117da9dc1858bae8c11637f99295d88fa9d05e3c053a2584" + "a6fe200ad190b3077d9a1608f660349dda405066c1562f6897ef69b6b674d6bc11fa470d" + "0b96a7cf8f6e098c9ac03b0ef415aa045867ac7c11d16cee78ecf08850ccabf70f761682" + "b561d0d0e4a889d840dc74932648ca2fb58259f7", + "3307fd717015b12a2dc76ada21442ac1d97519f66898b214c2ea317ab0f0905e819e4e9", + "0404ff9b8d60ed177df635a3953c0f5f5c0254224bc48d34329136706d6e8fa1b16ba091" + "6a02e50ef73f43ea9a5ad07c6bd68a82b7239534e195ee929aae7788c073dbe9e968c282" + "8b", + "14d8339f610b348f4639ac20dfe2b525517218f0c71b1908d407603b25f19971a1b5b4d", + "2acf3dc4e3569e5038fe97920de626ddb36bf213afa0f939785dec8319eb8321234c574", + "01db40fa416527266a3949211fd9fec158412c447c392ed6a7c7f159a1129da864d33be"}, + {NID_sect283r1, NID_sha256, + "672faa156dc188bf16bf8933d65e091c633f294486049ce96a4a403dca28a149f4f840e8" + "bef47412285363e9e89006614b013a41baad9885f1d9980cc897ffbd5f8a7d0e63feaeb4" + "2c07776efb307ed680ba1cebf470dd9bd8a2a9efc2b1daa569524394f9a50398add1a5bd" + "2f7c263f9e63c2d49461acf98444fd23341ce78d", + "14f9f412e3c7d770626e800d43cfcbba3ae6aec8563af748e8a97b67d244334b6e6d2b3", + "0402293b37c84e7514564635e517bbdb9bda0b4a41217ca64c38e94a4bd00753255b4cc3" + "890088c10bd909964ecfe10c373214544c6f60ab85b8f5545afb0fd2ac03d036db7ea9e6" + "7a", + "19b21a4d73012dd2a2ec3ee280a9b855b89e6ad53438431cdb5d2cec0e5ba21300e9bd6", + "3baaac69d182bf1a12a024dbc9a52ba244a654716e2756c36ddf8ca634129cf9d2b23b2", + "13ed92730d0a6d75f2a4a56b39f82d063e1be988dc58f0ba5f553fa88b6510116005727"}, + {NID_sect283r1, NID_sha256, + "4321334cc8ee44f1cb392a4b280a95561809dd3639ddf43b6e11cb73067597988d95b864" + "3d86c76c3c6b932d9262b9b8b55a04fba0666dd8b8ff1e8fdf799ae3945b6e30d3af3966" + "f1a6d634d5e012710d66cb447fc3375130968a2e1e647780aada2609d87247c90338dd71" + "c3bcc3902311caba27d5d4ea4d73ccea960d4bfa", + "3091a6a8bdac1e43542dce752694972e734dca31c061c7d1000754296d0748055db3f09", + "0405c0761d01020a30c478617313c67008a1332a0e6f295c5a9f01b3411eef585a9dafc6" + "9300eadfc6f7bb9986b0dd221b77b54287042ae8d1ae5788706b79a354fe785c66145bfe" + "81", + "0afb2e2e29b26a686368b127e38c2f5726fd55a13e9f87cf00e831d3fe19d9511d07e81", + "2685f634a8c16ee79acf62b7a1fb3acaec0db47c6ff5f2c97a804e9550494b128b2287b", + "12b545bd76b8d2cdfc5452291d5e4748a5e981c400daeb65c20812a65bbe936bc613219"}, + {NID_sect283r1, NID_sha256, + "2087e22094570d39fa937f15a3ef0601709a66666344186a33b487d041793fbb9709a95a" + "f250b1df0762ea98e911aeb3ff1fa19f0aca53fd4179e454e0e91636e55cc5b17cad9e15" + "75c82ad265dc34c4a66b7a31ecb9ef9dc756f2ac1d9dab35369a6bad4a0f47e629daab91" + "addc6d297d1e5d81477b3966d8c3b607ed194d88", + "1195921b91353db9bcd00510efffe009c94f6bd8d790f5fb3e5a0101c9ca5d21c6ef2eb", + "0405dd8aa95e24c054d508bc5081546677b9a8e8dad40d3f8a184af7cf07cdb09ffa2e04" + "9805032f208dc3bbad6aaab63211e13e17656c750c6c2a6e3caaf55a7c30ae5ba241d864" + "1b", + "3223c6439db7255e89c28aeb046e906ba79f4e9b8222ba5ec201b964d3666301f74967b", + "0fb7e194dae6420ac447e7d4f882da3c4859f53a948833a0a08f918acbe03c2e915d1eb", + "2336f1206b46b3166b28918bdc1c817b22ab16b355030cfd635ab3dade20d2dbde08b6a"}, + {NID_sect283r1, NID_sha256, + "15c7bca449a73b03bbfa783f5a91ca0b7916889a5d99d541e2e8593c3b176a5b634ba20b" + "34407fbd94ae1c1398f5313cab7402f3bcd7ad277a8c66d09a6df5dd086b20a0a3823fbb" + "b80980cd86bd13e527eee15656cc977103e80113539e26695addd9eef6a1f56986168d9a" + "53f8b5de833f8962c3826cca106ae9e8c00208d2", + "29dc20446e9abacb43823e12a83737b46e6e577466b5a3925e0f9d496824dadb4d4b50c", + "0404b3c1d41d8172ba15fc92d9586f29716821ea82274ac8e4fb3452ccca3e34925f1e73" + "6c023e22cec962d759bc659841f259de954911aa289e9994bd76a30149a73711bc41b299" + "04", + "0931ef56f08c379d1ddce0649f45ec21eccf3dcfa178616f45b200a06f82172b91bffe1", + "178348d533217543af694c8d3cee8177e22740b657bc6ce6df9e57f0c1f14fc9407c440", + "3eb25dc4ed42495b54679653ab1cd4d61c854207994a7318026afdfd44c89cda9247388"}, + {NID_sect283r1, NID_sha256, + "d12fbb82ee7a57eaf76b63fd6bc6c0a65c85f135f019d43ff7bc295cad15d53729d904fe" + "d63d69d3ffe8b82c0ebaf0399e2717ece40e011f710b5db46aa457c23b85545953398b81" + "4816a1e7a8ab5b0b14c4a0451b0bda9d0d2ec4a374bcaae208b7fe8056bfa17d6b7ffd4b" + "a2e9179f49b9cd781b0c06f6ce3eec26cd428cb6", + "3b9b77d19a42e9a555da8ab70aa5638890b2ed21daefa28ca6323fc658662dabcbfaf52", + "040632fdf8ebbb755c960ebf8fa5d6b679416e488faeeb021c0782352279a7ae00eed330" + "94041aa517eff6854ba04e2de6794848823e53ca580353f2b25e45fd4efd3a369cf80fbe" + "57", + "2450beeca6f1ebac3e82e3aa3239a5031f54ffe65fa6a45e2bf2ccbda448a2cf6988141", + "28664212774e23b6513f73a9b2da97f5eeafd10efe742e314f6913a6d0c0e3e581cc6cb", + "025bc733edffbc1330689e7aee0dc121b64a72dff19e1d7c5990206d6daae5bae75d0b9"}, + {NID_sect283r1, NID_sha384, + "eab0a37915c6b43b0d1e3ef92e6317b3afc8b8301b22f6059da8271fc5fe0e419ca6097d" + "aba213915855631af64e10d8382d70599d903d1535e25cbf74da3a12ba2f13c33a8562e0" + "db03edce791f1d39af8850fd1feff0eb25f9ad0a86dfab627b96e65831bffc5f6d9693d2" + "0493bc9dd6eb3e9325dea50b055768e8aa30d49c", + "0b9f8f3e89e9c1ef835390612bfe26d714e878c1c864f0a50190e5d2281081c5083923b", + "040542ea231974c079be966cf320073b0c045a2181698ae0d36a90f206ce37fa10fb9051" + "8607e6eccfe1303e218b26a9f008b8b7d0c755b3c6e0892a5f572cdc16897dcf18433f9a" + "10", + "31789e96e2ae53de7a7dbc3e46e9252015306d88af6bd62508554f89bb390a78fdbaf6b", + "0fba3bd1953a9c4cf7ce37b0cd32c0f4da0396c9f347ee2dba18d636f5c3ab058907e3e", + "15d1c9f7302731f8fcdc363ed2285be492cc03dd642335139ba71fbf962991bc7e45369"}, + {NID_sect283r1, NID_sha384, + "fdb93afd5dd1e3eaf72c7ea9a6cddb07fc2054499ffe152cb2870163eee71ace5bd420b8" + "98cb4fa80ea53fbbaece2a1eef6427b632320e9c97e38acb16b62fdbf6585b54fabf0a70" + "3307ca50f86387bed1815a05b0c8991e0743d10cdf49c8facfd7ddeb8d4a7b706b5a29e1" + "d00ac88b0ee88b3153185495ac8388cc70104154", + "3a30a1c15b9ed71e102341f97c223a9b5ea3e6a335861c3cf407ef691a18cc639dbe74c", + "04040937b263c87461eb5d409008255d4e14c54d7a86d6e3eaf2ad9c559f7a6b9d258254" + "2b07562e3a04f22ad37a1df0250215c163b45a6bd04a4b96c30fe2e2b7ded5486b172ef0" + "9d", + "13e745c76b33e6e91f47f8423653b0056014841f4df890121655ac2044f3a6d58b9e213", + "22467497bf1b5d29476f24aaf5f88d905be7900406c64033913fc88601c62063a924456", + "19cb024c7d6be51d15337a207e66fb0e473956932faf6d755393dd5a899bf63610ff887"}, + {NID_sect283r1, NID_sha384, + "c78e35d1a5b1bbb0ec21e7ba7b7c74c859d88f3e100e40ae34128cf093885dae4e87cd09" + "f3239dd8e79e25305220880dd352a650225d9bd193b9b84e488c458b0b5fde1af941c0c9" + "fdf952d2fa41f665918dccae27ab7923da4710f8c27ac8ed424992568dd6f0a6c3ecead2" + "1650ed162e0292104eef3c2d8551be866a88d279", + "083330123cc64c11888c1fd388629d0b329a50ef31a476b909a182c930ff02d0c389b93", + "0402e3a3e712676bede22893a8911ad6a683306e86487d24585bd6fe4f2657281f0bae2d" + "c80773889a95e9bd579be379fbf84dc8d26d47335253356e5b01c09eb8ed57474d6c0b04" + "91", + "0d630f20623e93c274239200393cc552d03da6bb9e74f4a44a518e2642e84e761dff7a9", + "27b8997fb98ad04488f5dc8ae5dc88b2a3231fca76d7320550c74cc540110c0cee5d8fc", + "1824f1050e85d527847faff236b7195965e7b93343ebac889b23425dc27226d50a5266c"}, + {NID_sect283r1, NID_sha384, + "e05435f695997229cce314e50065f3c5f71981988dddccaae6efb81f936b22cb48813f50" + "6d1edf5ebd69b0be34f278592c5935f0f6db0cca1ef9d62834fbf3c4c03f4da0596cb4d6" + "7b7b767e85dde7b7c6fbef7d89babe6f97b876b33594a9e36ab87079861ee556fb03274a" + "d4af527342a4794192b8933f28c6220f954c77de", + "1dc2b656c207eabc9e0d6272099babca8d149c9c4258b779c2f06de75f76d77505271c0", + "0402b03407b65809825a32ab50f1b556a65c3bbbd65cfcec898514637ce606182517fa1a" + "4d021c97e293ec74dee17c89b962356b7bd50c7b23fcc30ec7fdd0a629d11373e28380a8" + "c8", + "2d0dc9317a2af5a7d0a23c00d126b7fae4c06bda0a5c50462ba26bddf575adb091d0e50", + "211c396875b5dc71ba87ff2483b0ffbff60cc3656132fda7422a81964f1bfbcb5ecca23", + "0a0ed7bf1ca853b9b19924c706eff373b97585b692b4b535ad71cc4362073caf8f61a3f"}, + {NID_sect283r1, NID_sha384, + "0f9f36477076c4b5a7d1ceb314a397fb14646695b0803e36e98908c8a978770269f165a1" + "fed8f4b655d4efd6ad283d7f5d51b6e1e302d360e8ebf4e887c7523a757ffd55384e114b" + "bfc6b7a0ec8511079507b919065ca018573418f9e394854c5704227772161707b4d0246e" + "bceb91192f0eb2ea994ce61fd98a6d14cc8246c5", + "0081772348ff2d7a3fd57fe703555ab2e14f5d203c4cf0292f944e827e884d95f3b1d83", + "0403f7174e88ffa8bc0a770fffa4bc30a436fce331dbe7154f6e2fc0cdd09e76840f089b" + "3f0561e6aa3feffb2033ea716ae94b9a7402bccfed1fc4a137cb96fcdfe4685314f73a8b" + "b5", + "3a8c40754ef7ddd0e289b2cdac5e06c72dc3d6ae9d0351d9295aedfd6f0e88809674bae", + "1443b46c0e6bce31642dcf3037e25b6ba2b42daa9a83f5c0bbfb2487ce717c37b91f46b", + "3f59d5a925fe19c795b4992c265a3c61b2452237eb34efb9aba30208ce07d1ad47e2279"}, + {NID_sect283r1, NID_sha384, + "1d38b1c342b6611dbaf412a66c1c0b8397692755f576df33b31c2bd12b7f0707cc423376" + "391f7b00aa4e7b7fe54532e2b39c3c5284b9c8ccce48eaf9308ed338992f1d4ecde6cbe3" + "52e46339d7d602942158387881d9b493fd40cc59d4f9b53ee4191d42352c6f7bf32c331f" + "0c5afbd44a92901a4b713c7cf6ccddf7de4cc6e4", + "1eb6bf2ca1b5ffe6f6a795733eaeed12de6e87c53571e702635b9dbd0d96b47df4a005b", + "0400e64dbc1a08acf6ff0e820593cad79a46e3bd818ddef5ca0960fde799abacc7b840ed" + "db06115d3de2bdd011ad053550471368581a5f125eb0d32090646fe4407980a42988e551" + "aa", + "3b28fc6d0e4a7fc449b811b78900fb9f89885f4d4f70cb5a2b3d4f8ab87bd5448f4bfd2", + "2601923909c8c953087b0c0acda57d8c01f814dc9722171d8409d0acd2fa4d9c1314693", + "3eb316cacba93bd473a4b4acae4f2b5a5b2ac9856519032e63a0c718698956e8f35673b"}, + {NID_sect283r1, NID_sha384, + "3353ad05ef90e9762bcfedd6ef44a1e8ea0392ebef30cffd48ae620f3e567e1cd44882d5" + "14e7c6759200d4bcab18afd3038c3d3f8c50f7bba32a04eee5a4b1cfb8c349939e4efe0a" + "46fd047d02ed000d8fa1b98b0af5586f120d9ad174b3aea33905b979ece1eb3660b1e070" + "c8821b32df41904ad68bbd8ed247aabd94066f16", + "3b2a3e65e5a306bf8e3955b60e856dfa9bf68c1275a678ca056207a0ec67c96eb3f8309", + "0402c542cef892b06372af7d9c321ed5309995c1cbbf1a466e70bd30f3856ab7c5d18f4e" + "3d02a8acdc12a7cc0b54f4dec9cf61c484a5cf86c4cf6cb5ed615479123ef1c6ecbb6c7a" + "e4", + "09bb5e49188621466440a0841b007525000c2203d9821f4c6afab63ac2b97cb5e2e3dcf", + "00a09da1c4bedff47945898f4f4ee9a0857bb56be535544aff9d729ae44e23d678fc71f", + "2390be08ba0861b32ca35ba27a0c8dd1a4e96d28cb007133a096b52afa0126bf2a2abee"}, + {NID_sect283r1, NID_sha384, + "e7ec162185fe9a5803c6b03d98041422315ccdac67e48fbd07a1ef3c5661158710abc679" + "1bd0a75d56791b4ac0e7695d53c5989d9fa6a3b037583b2a80d2b154b024f1c36b63548b" + "e9afe1d51f2f68b2ba94d4ca1e69a35ac10e15ba72242aac20f7526b12ff9d3cde9a9bfd" + "70d55adf9bd92c66d092d7d08e9764c84bf7f329", + "1fd4d1af0bb7c79ed5fea7bb45574e46534387bd916649485ef15207352d7302e81dc01", + "04077057d3f93011440a78718a3cfded73e4196e7fde96e794465c51be8b679f912c10ed" + "cf059873441c590c43e0f00f80afad5b0166f94b62214ea45da29174874e44356b29eda6" + "b9", + "3f224b35737e78ec5bc9b081a601d8fe19e33b4787449d3353d2ad225358211cf9f7f0c", + "1a7bfe92c30ed1af478282786bdf7b5b89cd0fdba5e534bdf13899dab5af108803d73f6", + "2ba14810de4f5cf48b56e94bd6c439d230dfced3cb698c77627f59faff0ac5a42c43067"}, + {NID_sect283r1, NID_sha384, + "87c8f2e3f4fdebce0ca9300fc1ebcaa934f51a12b6b8f2cb6bb6eb77965468663044afeb" + "2a1334cb5a81e74b8427267f8b34b5e9ff0cf157a9f18be2b1942e32ca61dc23ea13c3f9" + "fcfa16df8fe05e067938b6994982676463fb12842d4ec532cb904cf222aa805dd0d86ab9" + "a33a83e294c6d81e8dfa273835e62e9041dc8ff6", + "20380b1136b5283e9b7f54b7535ebda33b129ceb177bf5d3d07b1daed5edd9fb3862530", + "0405e7d0931db006c6abe04671d1aede760f2b1ac5c866570f8e5a24ed356fdab49cc5cd" + "ea07004920fdb0a744cc545068bf82bc5d7a46edf9265fd7c5979b9559f5421c9a98f6db" + "89", + "3cfbb1204caf6011fceb8d4be987d9a41b81bcdd95b94919b220647d0e7a18feef4cd01", + "07096beda28c20d2e62d9b0750142d3d21b54c38c7fad1ed65e4f9b386f3dcfcc43a3c2", + "3d0af02aa39e329e4c39f2a1d6797f0e3d14554dedbcab9abbd158273a3c7116225abab"}, + {NID_sect283r1, NID_sha384, + "2ac53e8a50c4afe3b38904255b7cbf150c5f79dc15932dc0ac9aa631521f68a0d4b6bc5a" + "04d55c99a36531fd4886a23a8d99f262ecd2a9feea925d7a96ebe9b6979a207b7f9378af" + "be404fc8e959b0333572a2c911f8743c0ba64eebc7ef12fe5435d2cb0e5091ae518b6e42" + "33489efe3c16c6f21abf4e2c6808b733914e5a7d", + "19f815b98836948e0a0dc9c30828c31b13e175f1e79f23d084ae1bbe64823f4866214b5", + "0405109d8ce934972f5520101730d0a14b99213ea17772e3e7637d622a5de13fd2ffe3bf" + "fa0502927e0c7baedc4bb3ed2bd1b15fd2d06dd43424393b246dd530d5d8598b56dfcb3c" + "b7", + "10359d5cd8a9b7532c9902bbf1cb83d0d34bf37e73e7c0f5729b62a10bd4d8faa0f53a3", + "3503410a6feec71fde2feb14375d50f99ff9a2c8bef47e676bcc6c3045efa9948891ab4", + "159b1f65fd566ecfdc08b87e4ecf99ceea3088a750e2c3c9d868bb432de6a61f289d06f"}, + {NID_sect283r1, NID_sha384, + "0b201469cac4c078f587edecdcdb6efd5752cb4a3f43ab540463c4d908c27527aa3592f2" + "f9acad85dd94a3c056bd28618317ebdf2e7dd6c5ad26fa3c31dd8e5c50c60418d91c93bc" + "bb59ec1adb1db791f485ded78a5cdcddd23dd1cfa4f13443468d8a5f2d648059b9c4470d" + "0f4fe7733d56a28a2c24456b6923703ef32cf0b8", + "01854e954654e726cf4bebc0e5a840e8809fd716059211c6ffeaed36829808363164684", + "0407a6e7c542860e815d3fa24fbaf99989e8b9c812b08399056ae4f9a850a6711a7385b6" + "2200dde6bff33891a64744dce6456600f5a6a11049906608e77f8afc38b922972c805af2" + "58", + "2c9cfd376903122625c7fdca50e93d4c216f0c7d07f33b3b51e54e666e13b67dc89d290", + "18321f9ee35d47648060213df1275ae89c2ec7d17abe8093d8a431ced23aa61d3f8df4f", + "09e5a05a62b006a7787c97be38df6fb9fbc1433aa2241b5a788fa727229a18e07d7a8aa"}, + {NID_sect283r1, NID_sha384, + "fc5e4dddf4c4a328b685035ee79069770fbebcc56c14e31afb4bbcdd5220e025f31eba79" + "4fd6c05e64f19678dab33ce4f084bc32790392f14bf35669d75b6466b4214ec30d58ca90" + "ae285c9058f5804a1fc9d7a995958f2a0e84ee52e8a78b601bec04ab607ffc2091749cc5" + "48c6754ed14e2e5f92315bdacaa7a12823ef76bf", + "3548f8020819588b3202f4c1ac62eaec6a47c2a19b2900c5a3cf5b4ba5804231141c647", + "04038563f2482a399bf1c13f42f8b85ef64a3599c22da9688b97530718bfefdabca3ae86" + "3705c4aabf6d8a90af345008d5a244d0671cbe1afd08000c4eb37702a9bcba6dbc058ba6" + "da", + "32649876d776117003305f0ec9cdab5cd84bbdc747d3dad5d8d54a8fdc84d519d50df45", + "1f5160851981772c502088eef209f7f89a7c8ab35e630d16330bec7723e398fb37c84b1", + "073a7333a7037e1257d4d70be87c30bef770f9d728dd7e2615d47b399ec650aedc867c4"}, + {NID_sect283r1, NID_sha384, + "284cad790e6207e451a6a469cee3befc3ec43e047cf91b9dff1485718aa29de36a43f7c5" + "1eacd8589f0c3a96ec18e8ccfa92941b50b2132e3612d5b45e16f60d411d1c53e373e1ba" + "451352e28970ada9dcb9802102518a385dc571dcf6900971b00346098a58042e0d1d129b" + "d6801fa640a895a458a45b31318fe63ebb30c6e3", + "3cc4505005c41142308f1489226b7b542e2e7f24f1d3089ff6b92a4b0013f490ad52e60", + "040280b77ddc6648d9cc3f5557d406ea2a089c8179d4320781b2eb76ab07fcafd2535b91" + "de005f23bf4171aabbf0fd50049aa017c0dae70b065964c685bc03b958cee2fc3249149d" + "31", + "2ef488215648524f6caf85233736eddcd9d1d838c6a2799c3a68580492d40f9800bd119", + "3e8e13db22c97281307edd4037f0a75d2c70a070614e94e02c860f36a53aa738fa0db2f", + "356f2651b51a6be0c697300a8c2641bfaa1795397eac208385c3729248e36baefc173ae"}, + {NID_sect283r1, NID_sha384, + "6d46e57abea9d115deda48b69fe8e0b36144df2f6a659509ce1b514c8cc4769d46e5f71d" + "f2a084f1db4a22fdd3ef0c2f90394f2898ce291b9f279c0664aa01419f5f6bee1fc12998" + "71b27ecd57a5ac548f99d01871b8c238a6b46044c953b2e78e22346a0c7663af4db62799" + "038ffb5c21ee512e26d01e70a4ed967377ab8405", + "144a2fc8e0aa63506e14e4307df36416f963dd9da78655832f5b991af8c3eb97df78efc", + "0403fe8867b560bfb21dda517b8f4d50578a11e1d0ab7ed4ab3796580d31bdf710e8e222" + "8405a302baa3795e2d132c55d90858d14d4b17aea0ab70632b135f94bb23112d163357f8" + "ca", + "0b5225132f19419715170f5a3f26919b4127a05b4f0406f895af1e4bba95786daf95259", + "0651d17b00ed9a06bfc6a913883b5cdf51bd5f2dd22307cc5ad3bb545f623516232bb6e", + "01128d4784fc0fc050af0b97f859616d764b22f40734ba65aa15e2cf80e7bba3d15f42f"}, + {NID_sect283r1, NID_sha384, + "dd750b39bd8753f4e473c4484e2b36ce2da7576813ebe05861c339ffae1d029bc793173e" + "d394091c00685ad82f0550cb21ed1c68f0c27cb7396922239cfb886647af204e88a9101b" + "7453a8ab662e270b87a8a13f2fe61d695597382cabeb781933bebfd7d0dcd33f77266e43" + "e32d937f2dc89f67525e522977ce73e9ad36c8e1", + "24ffeaf139043ff25a395e4c560c7680c1c2155191378917eb25194136b4a69597dc277", + "0400402bf61c0e36385e5fa8371a553ed8652466fdc3ed9d4a3ce1bcc567d1f451f6703d" + "d104dbea6f67e1117116f30fe42e84383768b0da770f8a2b4cd8a4fec330a0034554a138" + "08", + "3e4e78f012eaf1778c086a3bbd9e996da0ddde651236ebdb6348062f56b36f63a901561", + "1e2312720f6fbf44d7a6449a7f30019c38e69f2e6424d4bd1054f40798e9fe58d080b86", + "379d1b610a976730dfdf3300280f1c61109ad13c788e8f8f9a8d5e0130ca9482ee417da"}, + {NID_sect283r1, NID_sha512, + "4736e59fe5812f63737eed57a570182c065538abd9fb0a1c9c2059199e7052ba57d84b5f" + "a1cda2ad9f216610361ce1dfb9334816b6bea509283756a03aaae2e5b0597f492d078b6b" + "015a40c9785dcc5d2ae266176980db04f5cffef40e16661a50ef871c5f531d73fd5d114f" + "a19bae9dd2da4267a131fc31849da38c2b78d1af", + "1d1f2e0f044a416e1087d645f60c53cb67be2efe7944b29ac832142f13d39b08ac52931", + "04010b2d7b00182ee9666a6a2bf039c4358683f234ae41a9e5485fd6594e3daa880c0dfe" + "0f00a419b2f40e573dc2dae4b22e6f56e842e50d631b6126153178585bd05a8b9e6e87e4" + "c8", + "3e4d36b479773e7a01e57c88306404a46b6e62bf494b0966b4ed57e8a16169b9a1bbfe3", + "30513169c8874141cdf05a51f20273ac6b55fe12fa345609a2fede6acbeb110f98471af", + "33fd50b214f402deed1e20bd22eba71b156305e4f5a41ab9374b481ee344ab3f27f4bcd"}, + {NID_sect283r1, NID_sha512, + "e573fa7d4bf5a5601e320130de91f4ad87eb7ca6b8998488afcef69c215b0cccd221b8b6" + "6eb0af9d699af9ad6c4b4a580e82941f31e4c0a9bd83995dd076c5ac9bebb34481061e7c" + "b1b26f6e8c6b26ee4bdf9887f7ae2eb9fad3115a21dcc96acce85d23a040c0ebbe0a56e7" + "5714dbfa803d6e279b2f4280bcb993f96ba321e1", + "1337362609df74d25f7adee382225e6a04dd6ee4c6b45fa31499ce9edb0ec046325caf9", + "040287b288ce6f65fed9f95c99fa4b8c1aaf6de65ca563df30ac67c1066d2ba2f5a554e0" + "9c025567fe183dd400d256c333da92dda2e364afe84492ede9fa0e913ca7f12069b5a44b" + "48", + "31b84ec438302155f2e84dd118c0d8479267f8d19c8c5d96d21177e20b23e0180dd6d33", + "08133e49644044bf9ba3b4c8bdc3973647d650c58fae4a7ea5a5fffabafed56e759010a", + "1d8cc410cd04b188418b20cebc8f66ab0dc29a42f9067aa2926dbadee39abce79deb396"}, + {NID_sect283r1, NID_sha512, + "7862864d0d78b44e2a28af44a0a16d8e9b1b8c4b794db0410c0a863ba011018ef43e1e11" + "f2fcda2f56fdb2a69cc817df425c9cb3b458922ba00d710190cae16d61af3c304a42fbb3" + "d0c4a74a297253fccd70aca414865b41f68b01c561be281265fa89f63f975d3101334886" + "e85929a5a47fa8dc459b663548faf8ed7484958d", + "1be00aa0afdfe92e24a2536594d4b41701ad4dfb223aab35ff49310bdba7566057fe8ac", + "04013583d8cd163fdef7c11e91f36c1d3eb2f7957d219244db883708a7c5777611b00668" + "1207a1f4df45073b838277d8da7daa7147b0f10aa98b5ec02fbbf97c89ee17f3a7ab4f3f" + "27", + "26b42f369ff9b2740147914a2698cf1ec9bab44caa3b5f05957ceb9a32073729aef0fc3", + "37640dcfa11483b3754ea027f5f239500894dda4f4c8308f0623db256eba2113c41ae61", + "2096767a1f8210b175334fad61b4c7fb4e2d6c7811b5d22521af7750f101077e2fd4e44"}, + {NID_sect283r1, NID_sha512, + "e73c96d1a84cf7cc96065b3c6a45db9531cd86a397e434072a38d5eeb9a90f62bf5d20ba" + "e22b926cfe967647d2bbb5dd1f59d6d58183f2cf8d06f4ac002ead026409ca6a1f868b40" + "6c84ff8887d737f65f9664f94801b2cd1f11aec336c0dbd4ec236d1cc4fc257489dc9709" + "dfa64eae3653ac66ab32344936c03eeb06d5852d", + "12ad0aa248db4fbc649f503e93f86104cb705d88c58e01d3ae0099590a69aa006aa7efb", + "04008d262f57f9528d55cc03c10bd63ded536bee9ecc617221d9892ae1a75b7cdee175cb" + "330754e40e8823e89fe23dd2748fb74e9e93c3b33f188f80377a32bc66f6a92da1804c04" + "cd", + "2405a351a3bf9a6dd548e8477452c4d9d719e32762754cd807a90abddd3ad380e197137", + "28c5d807ea1c3ddb7f2c90f3af644c5d6a2757336ae46c2c148752a2fc150e8183cfd83", + "397c8c52fd67b99792229194a787518db5be8e8c291b1a30e105b00f108ce41f8ec8fa9"}, + {NID_sect283r1, NID_sha512, + "a73fb0aaec838d011110d49c5e94395ce07408917bacf7689d2cfe0948c582214b263c6b" + "80e0a55f1e159086817605723740569eeaa1bae96b979679165c5c35ef2142525e943e59" + "5e6b4b160acd7ebe41de19775346363f779b1f80b6d5f0785b92a648028e456af8496102" + "d19dc6526247a654bdae3368f075fa9ee92b2f4a", + "2cfbb8f340cae8e2e2322829148981cd9e509b0c65497fd8d9da5dee9dcfd39b0f7556c", + "040260bb17da74429f049f3a7eb73fea9cbeb5b14ce553d7772a365376d0114ed2ef3087" + "d005889e41bca54c09be20dd406a6e1f11f9d31d720e0c4e2e88f381ba89a97f12fa9faf" + "f0", + "3fd7cb455cd97f7f9cb888444f39569114589612b108657ac59178ffe31a33569c9f0bb", + "048a10915fd3bf9ffab1cb13632359466ccc539128cd98c6273d5d8d26c64d57520394a", + "2d0f67f9baffbb34094c5fce36f47cb73a537ff984c89e38d073678c21148056bdd6893"}, + {NID_sect283r1, NID_sha512, + "eda775984c7c9f7db47af30dab314d070fb77e9b623baa6b73e2cbda800f167b20fdc2e7" + "219391efacf908f4ceed9b9b6bd3541b52ea087177e18c97391214758cf6455311fad336" + "ab56cfdce57a18add8cf85b0a0bd6fa7297dbaa34bfc8585b0f06a0aae055186658c227e" + "19cddb65de88d260f09f805c2e8854dcc524189d", + "070e82a1f3fa6158d15b7346dd56150faee5c98c9d07c996e01a06dc9b211b12ff62d60", + "0403d3ca5fe316a0820e84a8bb5d231bb14c810a87c7392d7f960e7cecacc56c337f88b0" + "ea027ac0ded5633a98ec5734db9de1399c83a181d522037266d856c83e5c8047c4eff2c4" + "e3", + "311b23487750c3c4b23b28424c33328c39d6f594d2a9b459a883508b985d8aca039a2b5", + "1465736c3c9e30e895b1544690e05108ca221cf2352ee4af1b5ee4130029a82b277b076", + "2819b94dca3a58cc5a96790871640fe0fae38883de6fb4712126c1c1cbfcb0c005c5af0"}, + {NID_sect283r1, NID_sha512, + "a4a13e0bfa761b9bf37fade6570d41c161e20558874911ff3bee38e5649849b159beccf3" + "21c6bc7243f99c01a2fadbab9e157e9952ca65d8ea676c74fdc976d00501c626b8465c6c" + "f0e4fd1a7d1260aea987161b821528b0b423e62ecc5193a0a49442b0c3e4ec9c4786a3a8" + "6b199c07dd3a17033d430d2c83c100f54e0a7c31", + "0b471bbc5f7a07996e370da4a09e71e2119ab3a562a273f079401951fbe4df39a4493da", + "040333e9d5e077bc64d022e49d5d207385a19282aff1b73b307523b0f861b4ce4219308c" + "8205414e431f3b90a2d4a454d073cdd81f8b224180ac4139104166ec33ab33d079dd147e" + "bf", + "3e431c39ef6f4b7674a1bf414460b58998ed7aa5b1af7ddab746cbcd2ed9f42ae3827d8", + "151df78c0f453d396d71528032933566e176eb7f6910fa9df2e9b2f5ebb6038777ef209", + "08a1c4a1e21cc63fc15a78f0a11a1bc7a59a5a31f57091a12896fa670dfdc05c04053b7"}, + {NID_sect283r1, NID_sha512, + "7ceda7a7248640f7055309ae712c19d741375d6a7e0608e07f0135bb830dc3e8863ee9e7" + "a75331a5e1bd38c42cdd484d4f45a26c2c1d4e05ce0d0ca941f4e94ecc6b371102f31633" + "629e9861de558bcb6407d66eb91f1062ac0e0409db68b9f2855296a7f42fc92359a7dae1" + "6c73fd2dddea52bd866a4d501aedd8fe3b3ea733", + "3c65cf80bfb507dff52f9bf2f93df0642020d41619b3990009409e7210fd7130ac44ffe", + "0403beb5b9b8785c5601093086b709c0a05955be42eca3d217e625349e5a875efa82d75e" + "d4007cd4e64475d628e6f562f0ac9c3f91075626063a52c2b621796e557799ab2f1ebf8d" + "bb", + "16212ce91eed7153fef806d2561912be1d988410641d5eb72d586cd4e6782deae4538a0", + "26ea04dded2cbeca81e75503932982c7fb5cc7d38a45a3fff8c4ed7f844dc759d8da302", + "061d3756e3da1c7816f0d72a8c84dd1f3b93624b631f5051c801af4e472fcf82d896c18"}, + {NID_sect283r1, NID_sha512, + "609815edfd58c0e26a4b06dded831d2f33466a130754b96d8d7c3b4d99fd4b0789ec719b" + "c25338d0ae8c5880560c02687d352d77c291e406eae865c3b26d00f2e63dc644ce7e01d6" + "e96ceeac8bc1eeb257d36cbb25d89b5fff6e30b6051506a0ae54cfaf6214f30985d54cab" + "78f708029c1fc0175bc58e888db89dea8d300abc", + "0f4d33a9c7e6744ab3c441828bf0f1866ae1c042cc54abc754e3801263a96cbb3955dfc", + "0404b925b97bbe67adbb6e918acbcae0ced8dcf11d012e1a97875b750bbb7d01945bd64d" + "f304591cc9caabc0db8fe9047e6b1f8d850ac4389fe67bb84f6846b631dc3524c8dbe6a0" + "6d", + "0483aefcad5e382351125b333dcede8ef50914b1d1f1843b075f242acba18c290c742cb", + "1fb791c288e2cd52d3837c56b02fc99f53a6ee27ad6dd9c0a31ca08d8fa64eefccc5c87", + "0a041ca35422d8985c1c706dcb0b8ece64b65285bd0a934cdb41fc08223885147281869"}, + {NID_sect283r1, NID_sha512, + "82d8ebba707b72655497320200ce719520c1ae7f46f38122958fd99322c25c9f4d4344bc" + "b77a6658df0eece5df163412ecdca58475d56b0c2d14a0361e4cef458df146925d473a43" + "692b15e9bbec550f1bde3444f2a5b2ecb55d2abd273ae999f16a32333529d94455e485ca" + "4585e6b07bedbfc2bd1eb766abf0d28bdb1ae6ec", + "3a4824bdcea6a144d85f1b194431724cc49849b6cb949b4766d641ae95477d1ec3d1464", + "0402c9eb36eca01dc2fe921933f4cebe8046b3679abed80d2f8fbcf8f254bf17be3d551a" + "56034c836aa4e946425fc9f49f3f62e33d8a0afd320292a34d0ef8bde8ad79a10e3f95f2" + "f1", + "23d8725af57d835018e8737fb4e8b2eed3ec5a83fda137c710fc1df875416ff82fba90a", + "0d9f57ba8b6a9a1cbba67adfbb938211ed2d267468f79ad39ea1eca7271d135bb67c18c", + "0f09a600d97c69ab521bd1ed6bcf0c0f69255c334e0aea06c68bba81d53e810cc553c9d"}, + {NID_sect283r1, NID_sha512, + "9c6fce18a6a96349b10c9f2f5f1505c8ab727a650b44bc0782a5f39fcb48b45fc7c1b821" + "80d5f229b8abfc807071f931d333d265fc940c93fae7520d8d40ef59d7c6e3678c6a2ecd" + "e52b6a8827b1ffc6ed269cb9832feb20e593a7e3d4708309342875199eb2ffceba7ecd70" + "7b122516c815e83e27872eda812e3ea52ee3c4a8", + "27ba543ea785df1d53d4ae4c1bd0a3a994cddf0c25d2b4e8ff17ea7aa00619e858da1a5", + "0407d375a9e78ccee85fd795e3fe6bc07f50af3456edda1ab00303f6de6b5b02fe09859c" + "63008d0d54ab9a239b5ff955452b32bfd2372fe095751bea4b56d52f79b4fda0fa635f57" + "f9", + "00ee7010af4a517502cc5d5433d98916f6750e8a9009ea04b8132268673d4a02a3e2031", + "3c147b66efa47a842eb90371eeae907f0c813ca0937e488da95ff8ee16d389f3ab902ff", + "01469d005eacd9ac84a140c93ed0aee09083a4822730a28df35058cad29267eacf03968"}, + {NID_sect283r1, NID_sha512, + "5eac15a64c7653d125605869012b8f036804817aedacbb5a5248a595ee0c12329f91e817" + "9c187192d3ed0d4ca2e202d8d4d9c93ad3f3ed931121c193af5b47a8a5dc39775b6c2d70" + "2708e5134f77a31bd62eaf87e39e6fd3f2b9f782c3057e162dd53b3addf92bf0ab99835c" + "7f6649abd1c5322a1ebb2ba313df9464a74c14d3", + "0708d0907d14dcd5f40e2903e1e90e48a0ffaa6d4d9b84ca14df4e985c294f74eb9f2d2", + "0406fb0fe1c3d5bfee5399c98518bc3ff135e0c351243fa0540717a9b1f7990eb8cf4359" + "7f05212fd4d6a50c08cd99ee5988103fa639b1123c878d416cc553639bdcee1f8e927bdc" + "8f", + "151465f40204d76f3bfc2e4052549869c19da82c678c332f536ef24567ea034358866c8", + "0803d3e8c876d46a9198f2f769faa76c4f66bc5ff4298b9640ccb8e67ff8d10f86342c4", + "00da3344354114d163d14d4c288785adbf9a8b31371c6e4420383c80ba0a430019c6acf"}, + {NID_sect283r1, NID_sha512, + "df735a7e60bc267b18f313ad56bff830be5ef119baf43ce27c6368ff1dd89f010afd4f48" + "740b11c12101c5903bfa71d6cb3d6462cf875bbd55a570ffedf3564088dfe8c8d3148231" + "b78b5adaa6c53696737d4704daa59eab8d986fc6e519e81540f201e77b923a6a4af65d71" + "73635b3b19b2023022186a7b8e869e1ed51717ab", + "21fb0a6b94080da8b8299b87457dc09d21bc430ba5f3359d92aacc1151be9941739567e", + "040179831c55ead3d11844fea2e18d25cd4d658822e626550aef1afe37d88aadbcc9bfd6" + "66075f8087d759ede340157667c1bb12be272b8318aedf2e8f8b487f4bcd12a50ca66f92" + "81", + "37833e9aab843a6b967264fdb705b419ed63fbb09c12170491019acc7c21b9ee28a00ba", + "1c9601440d109a3f4eb69a1a669bdaab9f4222a34a04ace8ae313b10bbb66811bea7d5b", + "3d2f9ad7595dcff69b65f035ce600f2667f8499d3bd25f789d3f3c1bf83d2855f68eafc"}, + {NID_sect283r1, NID_sha512, + "bb107b0eeaf175a786a61db923bc6d51dad5e922e85e57536118e032167b197b1a1f62d9" + "bbcde04922fde781665c1094181c16ac914cf6fbbfb27bb8346b2134f05c55a8c6b9b481" + "273758e380666d6e22c28577c29446cecc5c3df9ed9f1be060ca55ab2b7fda36a147aeb4" + "6df0275bb923e0876b703452fab42f6b7ad2ceb0", + "2c80151f91301fb6b0c7685bd172f20515b46bf94dbc4160d0720fbaedd40ec00084447", + "0404a62b0c9749ae9ff00dc1d50d2b4a4941741abfdf13c8e416549ea27fc26b14f191f2" + "4302c9cdab7c6512c322bd200167eb9657f8e8c84864b57480a80a3c6efbaa289ab8cbe4" + "d8", + "3df951f8c4490fc7c2d50a72a93e0e82c5a20be8d91afd890d6846bfd146169ab58b382", + "1f2accc7f7c4b5f877e12cc17b227e1ba110577c9f4e1785e6dacd8491bc6017129d798", + "27a167e6f2b43ce9663b810ed4f8ef15029fb6f2be2ddf25c014d844953f501d1dcf6d6"}, + {NID_sect283r1, NID_sha512, + "f47e49ae30b09b7666600b7a95e81b0afa1553da5e01fd917e4ce1b58dfaddb8dc8c03c0" + "f5591f533610deb6a7bb5faf5dd1ec4103a587a1a4c58a110a706b0f301a5c408b3d984c" + "210d5b4a0b347d2b5447271f25b527b3c7864f7cdfa735dfded47c63b723fa0f0413c57a" + "24ffde9a95c35f743f892ab1ed1df704cde82d9c", + "1538abd7ce8a6028d01604b1b87db3aaf720e04220edf4d1d28c2d731aa25f509e58f2f", + "0403076b5c3a12b8a2e1368c7e3458458dd7ba6c5a6dda8c82cc6b30d1ef767d36e01520" + "7f0369c7a80cf01e9f32c08f9924db08a7d0dfa5e9a8e0e29b57f5eea8506841e6e3da04" + "f0", + "3f0052ba6ae6bd7a7aeb077a764d21caced6b241f63616ae4e4f0d98d2bfc0e44dca592", + "01281bc0bd36ba1f3e1c262d98ddf4e9bf1d80dbf97db02089fdf1d2e625abb5733ec3d", + "076db2215d9f33054efb397c449f05db198d38a24749f046ee20032f5899dc142052e37"}, + {NID_sect409r1, NID_sha224, + "f2380acb0d869d1cf2e25a6bd46ebe49d1c9270624c5507be4299fe773749596d07d10f7" + "c2be1c0b27e86f27b4a6f8dff68cfe5c0b4c58dad1b4ebec7bd00ab195fdd635d9fa8a15" + "acf81816868d737b8922379648ed70022b98c388ede5355e4d50e6bc9ec57737d8843fab" + "da78054e92777c4b90466a5af35dd79e5d7a81ce", + "0beb0df3b0e05a4b5cf67abef2b1827f5f3ada4a0e6c3f23d698f15a3176cb40e85bf741" + "c9fbc78c9e207fa7302657527fd92fb", + "0401da1761981a65cb5c77ec50ebf7acc11eaf44bdd2f70242340ec26ffada7a4b5f661e" + "13d6e7ad341cd7dd1ca491cb7a0b580be3019ba11e4c4f2f5507d6bd2aa2f96b03510a03" + "d5f8c38bcc8acd08080d9effd1f8ae5a5586603b2e112964514c831bf786b2fcb2", + "091e575fc79444fd2d9021bc267a1a076438d73464726bd0fe4ac2884a374e71bd462b15" + "16b3e97c3202854bd0a286214b9e92c", + "057ab9d5cf4d18f05eaf17d3b5a4af96c3eda8ee48acf5e02eefdfe2f542cde32a37c04f" + "285794ddccbb14383a645db040bda81", + "05275de4157b32723366a0d63831e6512241e3e4416f3af02e22da8faeabbddd76116030" + "4927a71cfff4d6e8937347c9b78cd3b"}, + {NID_sect409r1, NID_sha224, + "22a97fc0a9694dabc6f274ab52eb592dbbe8beeb646ebe6cef60eff341a13017eef980ab" + "a6d24ab3afd976e2f6a84cf652654d4a54a36b2f2f62fab8858f8b0479a48fe9f47f8fd5" + "a4a1f3141a91cbca186507b2bbfef5e4c4d2df525f04ef7c4720fb443ccad540f03a2be4" + "68d88c9545d1dad579fd7cbcd103bbebc9e9f961", + "0504865a30984a9b273d1bc289d734d10e0aa56e93ab14720f1a42a27d8cc932cb8804b9" + "63175de6fe57d8eafa8ab7ea0592dfa", + "04002de5872c40a79d5238722fcb94d5158009e28fb41ea012e92028dc3c87855fba71f5" + "0e6d0dff709867de185f9a9671e7a91e2f00fbf607f69609ae96982bda3f0317fe46ad1e" + "0207030fdca702cd97fb5d5732f3abab24b10669875a64bd2a74c8603897c78d22", + "032d0f950d10d028db6e9115e9944e7c768e2da731df49dc9128bf145a747662de08cbe0" + "517fca6fa185abdfcc4e3ab604e196f", + "0e7d16daa689ddeb08074285f5293bd9f1c051ca5589e69e4b62c32af110b6f3981d9624" + "df15c7cac0ddd62aee9c41c7b6d690b", + "02f6bdcc551aef0e4e8da2df38288dcc29fe600de2f8b6cd8149f88146150790915148f0" + "69372151c3bdc4d719526eff252e610"}, + {NID_sect409r1, NID_sha224, + "af36c04af0e3fd64bf52dedf52fb788d2d1bd67fe05d98880cc7ad3c20436abf02f637fc" + "ec209fbf888903fdec8682717299f8a4386768153b7faeb6581db57fb9aaf4615b4ea8d9" + "24198fdd158363a1f40312527d6bd14c13d19985b668c6b88a7548104b1ff057d07082ee" + "a421f50062a315bc3866378f2d2d634f03fbc0cf", + "0cc08a4ea5ebe32027885a8c212870e7c45b6c610117994d6a42a284c05199414a3a0e8e" + "6645ac5c2ebf21c505a601f69c62b85", + "04009d2beb607f2bab64451327e1dc67f04f7569ffc0c67b410c6db06dc04edddb1362ce" + "8d8b8220be77c447640e7d0c676e5ad1d500ab813e800e75b6012faea43be56fe9d5a22c" + "d46fb1f4f1ba65eab19f75f2ce9d8187e4940fddc485c42cd18d40d47415a80b02", + "0cfcc307f847eb696f16af32502690711ffbaa2e60e75f80cbcf7704152d5eeb9ddeb701" + "952dd58fefb159926a83245fefa6196", + "068d1c646dca56393caf3239d9fb30d1dc56f991a8dfdbc0a7b69d273aec69a53056d955" + "3e105c7917e522ffe446cbea23227c8", + "01db30aceed2b126cf45163b9d878a6590e9ac8284a31ccb0faeba2202679f181eaebb66" + "4b5537f408b693800f24da590082dfe"}, + {NID_sect409r1, NID_sha224, + "6bd6f52a6204b60f37929aeff28c87ef61ddeecc231e52a7772275f9329add899c130956" + "f8c50ac2698aad3654fdb49b74a6427a62a11eca0a8ee8b719b8c0df7b9f0bb0af5fef49" + "18a8c83367d29fddd04b6a1ecad904471e5b59c8fe3cdb06b4f8f96419518dda960845d8" + "3c49a49f1b1f2fd1d2682a9d60c25fe3ce982cf7", + "07156ef0a74ee1119532a2a7e8c02be1559c3c21897af9d5b34553c3d0feca4a8d5929d1" + "945df824478e0c0b92a6fac8c84f639", + "04001df419310cf133408e9bdb32fd85f8f0950263e1886f2e2e108a596e7e76153ec47b" + "f9b33f69c1128dfbf52557f3c382de85f1016a15517a811c77cc67ec4fe2bcba1290e498" + "1880c071318aee28e30854692ed2d6bfb71e6e74fa97af750889ae8d010189733c", + "063f127c38160e85acdd4d5dee1db1c32cd9da6075b2d2f46b010636e374e0262a045339" + "4aaa8bbb5fe7b2dbcbcd62ad601cf51", + "0250cf50d52a5950999b9c0ddef219218f76dd9f22a2213def9ba98d258c2f8359d08d0e" + "fc208e23ea3614c9e27b2e4576b9c12", + "063479550873dea8a3ec0306ffa9252739c34c87bbac56d3d9138764347d5220bea9c27d" + "6a308dc2ec53724d6d3ac4862d1735a"}, + {NID_sect409r1, NID_sha224, + "0eb8de25f63abc9cba16823270e9b6f3fdedf0fb90f6652a34688970932e3ae98f6d3bf0" + "fefc5f247f72960a6975bff1f1acc2188a1775fe8974b2bb2b4c8d226ceb735113a14009" + "e8ce66d58808fada4e6f697fd016829913352c0f659b6be354a067df00cf74919580750a" + "a6064f21264d89dcb28b3b2d4d699115c36d1310", + "0a95c7abffa92e2c637611ccba66ff9d2ab121b40a85c5b71454cb0dca1f098ce1be8d9e" + "a4933d1a91bcd270c5a33687835d6e4", + "040048e6b8614c0c7156dc41884e17e36ef528a493c28c9e6275c3454d83beb939ccc749" + "52732c18424ba21b8ea9c528966c692141000ef9efe1145029d8d60d14dcf079d43e3cea" + "0e18010f680bddc2729ffbff9a981cef2cb595a69142b25a0a39863a929adb635a", + "0f43af45b0dd631bfe38d85979ff1612140b9cf80b4504857df17279d9d8ea12d5bcd292" + "0fcec81326f15832df6774b9c4bf5b9", + "099f403ced566fde4d9755258445b6d6c2a4e234f99425aaa78ef118321f8579fb513ccb" + "b71cc2732e31668a6a6bb0fdc7f4018", + "0d8568971a4f219d6d3d8bea6aecb4bf7de53886d2e6bbb0f71d054c63768c34d4d18830" + "00019c59168fbb32f4317330084f979"}, + {NID_sect409r1, NID_sha224, + "cad58ca7a3b9967dc0ab62a43037764f8074ef9177d60bd98f623d693333971c24a575ed" + "03cb61f4dc2e3d6285fb1204502a540f3c0bbbf23f5bbbd1544f322ce35d949d8b1d8ede" + "b82e90927ac67ad49c91007056bf5096bd690d15ac00e1874fe33293d8003a4a2b094078" + "cf09af799dde384143350c54a99e1f99cc31f2d1", + "02c438b07c6e0685d1f94a4bbafc013f8f21265d893f54e54c3ac2071606ad1ffacace0b" + "8367aad724b1d9508c65ce52282e397", + "0401fca66bdddefcc3c2072ea32f026c975a2c392dd7ed7e93e94a810e1125ec161bed69" + "8d8305830eb66fca5eeb71934ab3fd79b10189c22a2c9f1fd7624f805fdf4faeeb931709" + "d745a3feaa3cf04824f5fa58bbda144d4e96d83ce1e3282bd5fc9c50bcd68f5408", + "09230aa7b58505e2dc2f205b70a09cb9f4d8272f465b7380195ede0f7770af2a33f7623c" + "310a0520e7436835cfcaf32467f154e", + "013d0e70d8f4b1563efbd3c46feee15b88358562f769046f39df6d00477815e6b8763c02" + "3807eda87a86338c7b64214784fa2cb", + "0662f43fabd03a0c05ebba700203fa2188e16504f8655bfd0fd090b109e68220122dff7a" + "6cbb8bae08612e0d516e9f95ac15368"}, + {NID_sect409r1, NID_sha224, + "281ce2643799bbfacc7d5993683a4fa656040517854f3c2dc7c4f8848dc305382e34e894" + "d433caf12d8b493020a6a08d1fa05b08bf6c53127ad5f33bbe75b9db0615e3dd94408d02" + "8dcf3cb7598f6e7cb4c787681dabac7cba2cc06fccb7506fece6c7c1c1bf622d525ae973" + "7085ab4ac578905950002024f30159cf0d99f50c", + "09e8658f8f9e6cd98c0f4f0fd20d64d725653aeba339504def17f3ad12a63dc6157d8080" + "4e5f43f4ff48fc5573fde2c615ed31b", + "04015088531d914113a25f1598ba1d3cc611e27ea92ce8dc807fe8d446db14ef62ae2f06" + "c293bcdd739f916cfedfc481fd941b4feb00a9135dc1b0384e7169fb4648973559e50831" + "9235a3f41ba174d5f58307448671cf22a3649168495c36b0bced09ac6df98f14db", + "0d398fbed52228fe16d32a6ef539e4ee3858a1df327bec999ca25cdbc357de5a75903909" + "973bbb0a5d0269862a74623a38da515", + "0e38910abb3d84b2b26ed17d2124f4787dc5612942e98521d9f94baac3d14159eeef9e09" + "b9b20c807b479ba84640730a4ced4c8", + "0e370e575302ab0d8d08d5270fe89ba524b5bf21e43e70c4d335ec1525ff5696ced37f0d" + "e17e109fd833e5d179bcd4df42d7882"}, + {NID_sect409r1, NID_sha224, + "0c061da1a16f2be130ae3b20b89745e840bee09633fb49671db28ec9a051545f57ee07e2" + "410ae7ebc61c9af79868d3047705bfc64ac0c04ef0b286e579b650c7165443631e49e6a5" + "3c84cefa5625b1e1035a6ed89b8e839540040151132a937666524265e099272c1849f806" + "db0fdf2be64960d5b5853965099459968e5beb32", + "0c4c13f65eacce85a51881caa6f82d9e48ec2ac574947d2751823a7f072d38bd9da0cdf3" + "0b6f19084a6d291052e7bbc2e1349e1", + "0400af93430dd77e6016d1b076a52126a729f77e34bb3db11328d9edd56e29a7a09a7b6a" + "54f72076fcba886ea78ab6ad81de43a82101419e1bc339c03a8b4413ff009d76f9a19e20" + "1876ebbfbb3dc771b7df07bc19eb893ce23e40c679d7909c33af2bcd7d6306c0bc", + "0889be0918e7ef34d3ed226f967301a10fc30111b3559e37f5fa5a57dd5c73ff672c5279" + "d096c5b04c68b71d55e549d019281a5", + "0a4bddba9b7a402b584ceb82a54baab61e81973b7347e6dc9e3ce0f1e50dc21c9569d8ec" + "f8a7da97c38e92e52636eb13d3b4c02", + "063c7291656466f7bd647073a50f410a2cd9e8c938aa1fd3b28ddc1cbdd7b78b757689dd" + "661f5173f79896780ac3fdd4f3171ac"}, + {NID_sect409r1, NID_sha224, + "74ac2e1303297efc3ed8e624722df505df55b7f33964cc0d270604cc48b58205d8a11952" + "232a8feb0079baa30d7d33660268b56a5a3dd90105f0703abef8f6636a99bc63bd47d9df" + "100351bee32d8205dab0dbd2af36fd173409ff8d1fb7b24570f3c1e968458f58aea5aa2f" + "46731ee91ffd6d3a060af6b3d5020daf1362af3e", + "0da591461791ae7847e6d8dd8df46a63d3021644abe9520e158406c96540d8fd82ecfb1c" + "3f6f5cfd7688c7656cc3e3dc94e586e", + "0401f48c95301956c62e2fd931df49953519b88ec3915c8de495dcb4ccba97bee023b1a6" + "cd9a66dca29aeef8f4f1117eb954e47cdb010db6bf78cfeb92d29a922c4b05daa3cdff39" + "17ba6978fe738296956ed141c749a938ca9f8f13f711aec930e0f1948ce7daf9f6", + "00576a91862cd63acc067563626977fee6f074d5726cf4f68e80d25029d4b8efe5ea8457" + "45c45e4cd42879e52854c3f385a10b1", + "0806435400248ec38a6d362e8b2cafc3f3bd46ba5baf538cd97683f76a733ba2b4ca85fa" + "7d13b99f4076e7616e68d66f05ebd8b", + "00ecae395fb324b4366f238f0df22d011bde5db6b0cf4189e3ad47101067ba87336ca47d" + "637f09f7a40a1bc64de8c4aef7f497c"}, + {NID_sect409r1, NID_sha224, + "2afd17344552ccc577b0118caeb7dd56a0766e25f84df17c0505f9798931374b48df89a4" + "8c64e199108c36e00c0bf00a97ccde55787bb97c6765601765ab5417f3e75e35a9fe5e0f" + "85a721d9f08440ed617afcdc200b318940a1e496040a6ad9090476b0fb4fcceee77b3fea" + "11de09e7fb14853d1fff8ab12d66c101257e2d4f", + "0b5eb943f0dd390b737510e2bb703a67f2dd89dc9f6dca6790bc7a260cb2d0fb8e1a81ad" + "6009ed51010e7686d5b48233c6c1686", + "04001ac00da454bc329f7c13950c848392cb4f31594fb7837f0986f61601fe244eca3db6" + "c4f92accc2fbd1a4b8597b70e72d88b103009a364065a9f67a0aa7518b75a0b4a9140787" + "a67f852fa31342d6275c14713d484dec3116b9dbbb8af1d4945639997ded09cbc7", + "049176093dcde8549f95a8f1d1c87230046fd4b18a73243c3599815d4df8387a843bc8fe" + "1fd67f3c6bbe394547e11866f41acaf", + "09d7c4ddee55f61c5c4c2ac6efbba6164900344004976381c7b18c1de541a97cb58e14d1" + "4b6e433c4eb6d4bfe6d3e0a4e457469", + "0a9acf355bad544b3b120522365bcaa1e1dc6f1d3df1e30d3beb94f639e26147a81d154a" + "684bbafac965bc39974c505fd0f811d"}, + {NID_sect409r1, NID_sha224, + "174b2b083541f8284645a810801e72631a11bd7bb805f684a7159e055afc44357f2c80df" + "2b7853678d34a04144e0ede2327d03db6df23769ec41194a8d9d86af74d51c5bc11ea878" + "c6a80689af71d3fdaf1c651003385332a512e03dd040c33d9c328ca89ec7ee9026bbacf3" + "0a7f3a68e0d894fb9f7100ffbc64bf17679dedd1", + "09cc63f32152284fca27ab2837bf1343144336a1fdf15b9727c47e877ac69ac9cf4c97b4" + "bf42f1ab10d73de8597a554ed099efa", + "040044e655ad66ca9af330c33bc6d00ccbe4533a4c6a44a3f23c921b62eeec8cc1918e19" + "956f3ed848fed93a7fd7ddea57096d1f23003a71b221c85607821cd864af6f533f216b64" + "1ceae104b8e16dbfdfe7edcb2cf9ee0dc1679b696149ff42a051c51c861a3c7530", + "0db9bfe4c2e659006d31a7b44eb7bcd6dd23810f27c74dd587ab9af23aa5962dd18aef1e" + "95da4ebf4aabfd558cbf72d2951bd44", + "0c3b91bf0794eca7faf227c4ee4085eac6d6918803242bff4da9c5dbac2e23fc32a4d4a1" + "92d7737be22810812558f820b0a2c13", + "03120a558c0edb58ae7ba36e886084801e7604558238c85a199af6c9e7506ea4e748791b" + "04f3a92354a4f1407837d87faab66ad"}, + {NID_sect409r1, NID_sha224, + "758df71a952cdcffdc417b9fffdfb57582ab5c5473a8bdf0c2101953b023b77824263353" + "dea0e2ede1f800a5757ec6ac0e1e4e3ab5a4cd85567d2d19acc6b7069a6e7368401cba2b" + "6e642373654bec0ddd19fbf032794c15b7ef7e714e13e36875262c01e77766ed53cbcf73" + "5936dc9b33eaf2152a396349c82ca0297dbae4a5", + "09950355e8667bea8bbe3a2c4988436ab5394551b375e27fdc0c1a1d1b07ae957932f428" + "f1aca0a486e54cd0b5bb0a5c5650641", + "04002f623f81fb9a299b71ea8c58d5bd7d89e7be66ed8cfd7370de515eaceac903644383" + "38a3fcf9981f1b6f0b30bc61c4b7c15791016130b7c4061422d70b21251fa9c3d4e9636f" + "5a08cea794a0fddf74ff5ab1b750cce0f2768d54fb2fb75e2851c2296b39c0ddd2", + "038e8c70cd35591012f45f27980095c4bcbb3bd36bec594927968d3747618c7f5810ea9e" + "0a126e4d3e1e08185b031dbe0b37e5c", + "0cf957d59b03aed0e48189d2b9256b5472c8a48b4911f9cec14adce5c6b4aa22d093a116" + "364bcae01c1a739a4023da12a29c058", + "04cc2c22b243064758f52264ed84e757ff67c4f6596edcfe956b70f777d865d01e529f0a" + "8a9a6e1895168780ab60950a62d2d2c"}, + {NID_sect409r1, NID_sha224, + "b96d9f66b2000e9408d602096f032b112f0e05ea874229ab9daf6e05bee49b4722e4f2d8" + "bf2eeaab9dad94438c76b7cc64dcbb59cb4e03f9ac70487a1d24d8d6b72d7462fe738a17" + "edf381d52179b3acc0c0177c113eb4d10e8e78041deac1d56abda0ddf892edb8be956d28" + "5e7236bc6794168f8a180f622dd5f2b9e690c275", + "0a995493d6971c2d7e8fac3da9f8c0b5afd877cfb94924cfecc167f9d87002136ab253e3" + "a4f9ddf5c9c99bb1dc1af0c6a3a3c4c", + "0400ac0e558dbca0fa6f013b7282e02717e91eb73304b4f7ac5e04f12f55824c441faebe" + "5bb5af82189044827007bffb1e2655794101178bb726242c718b416b21cdc9fd90b31ba6" + "a8350f9b4ce3a188b1b5dffd0e8894ae6a417c4d74c920fda585624eed4c1d3f99", + "0d581293ab1e509baa50852bd3f21f6493cc524a2c16206e461e320c7f2c1c201b9d2a1d" + "d4207227592a6457670a67cb72eeb58", + "022624cbbae5214d2c29e273c334b9ea78e10c7efff3611574d5fdf6f67a81472b606e02" + "36aa47106097b9147fc1b56d062966e", + "08895d107ba789d88a17c30a537402591ed788206487697a72f69285ee5eb4f03cdad6c2" + "604e174ef4b9bb919d8b39bee6231c7"}, + {NID_sect409r1, NID_sha224, + "e7ae60ac55e6ba62a75d5328bbc15269d4638764169de0bf0df043d15f9152bed909b1fb" + "8c7a8d8e88ac4f552c1092b62db00958a3a827f64896f6de4bbd8fa5258d6c36e3904d82" + "d3eacf6eedba50b0242eb6b01212288448c3a9821c4fa493869c01149ff1850e8115cf9d" + "e1618cb8744626b1951d1de305745507c8b21045", + "070daf435cdc26ad66c3186267ad12d10f28d32d863f950cbfcf042fe9dfce553750ad09" + "8f82f7f1650c1126b3e4451bee6e11f", + "04019b41af3b557c274cf117d501ce7ccd04d8bff2dfc737d7efcd7888f2dda24737a678" + "8f16b3b6cd589d3f65bd95194799d65659011983077a2c371fcadbf47b10494f6ffc7ca8" + "873b3d812c45a87c48e1b49edacc0ac37e5038cf1aba20360b74c0903c23a62331", + "043fb8cb87591747d12f4897dfbbc79644b87907bdefdbd7ff0f6f2e7970c7d40bb2fc08" + "c17443d029a92487869f640607af460", + "05ea3493a8c04723de9de2cbd523481e3a8593ae8f010ecbd5add6db5a82d9b13ee7d24e" + "cb417419639d0e9f4e68d14f6799829", + "0a9bbaded0a2894e384184e166bc06e1b2fabdc70536caeb3d0cd46b955743cfa8ac6edd" + "03760d1b613fb445367734fa4270139"}, + {NID_sect409r1, NID_sha224, + "666b0dc2ddffaa7ffd57ea3b2768f02d4b77c16fa007c6d1918400d195f068cae2dcaa69" + "817e6e4c70d5b29c5598efe2d957bd12d0fafdcf5ac52dee80a2d46e77fc18cce2a49bfd" + "787ff77b942c753974d22434742bdb494590d17c42af725b1309e54566276af3bcfbf5e1" + "74d3cf191b85903faafa1583282c97e66c5da6c4", + "0f8121980dfbe9ad0bf92383c7cab95fb72d5caba96e1de7772c6a179e85414802fbb86d" + "725401451329287305570ec7fdd873a", + "0400c62f4e7eaf3f1bbae71734c86b8a40ed1297b9ba1151729f9363824425193e8605c2" + "bcd6094aecc9d7ef2a41aa6b12877291cd01882a45555b68596dbc8bb093dbf1aab9900c" + "f46653c58f5656f3688fbc72c5236297be2f0586a4031279b9014f2d3655adef41", + "0b4b5b19922bf6a34a00454374589f9c89745eb194b0352061a79401e23c0c0e1fecd759" + "7b5a7cc1c463b76cce7ab921867de00", + "0f1fcb80a4fb49348fb326e808d8ed8c21c376f0713429a22bfe16d68cab0295b21d4402" + "9083769761c4fb853662d440eba4cfa", + "0252a94a40008cc2c1a69113d8e14e989e7fe13918a2852de6930973a91784eb35e20d8a" + "e150a88c459167f8ece998cbf6c5eb7"}, + {NID_sect409r1, NID_sha256, + "3e967cbc2bd936e0b6125dc5cf885735bdcd2d95b2f764de6931c4578ac8e0e87abdf963" + "75481df67dbe1b6c43537e84ec62bfca6672cc5f3ea4125abd4a4119edffe04e42411d33" + "8e8b10abb1f1f818c50a9631a3f89feb5be5367bdcb0a8a82c96a427ba6ce99f9631d441" + "1a2b7f5b14d32cb3901dc9d285e4cf5508940942", + "047682b2e3bcb5800a531858e8137692a9b1ee98ea74e929ce4c919c26ae3b3f1d4122d0" + "7fd9a70d8315fab727ccb67004187a3", + "04017ffffc1d2009e844f8e625a3bf11749a8b4ea0b0fe3532d124112edddf72d518ef57" + "7f160962b88ee38b11445fdd356a26bcc500ca356fa8e90325aafb1826a694a55a80b2af" + "52e70ad8d507d48946392da8b9fa27b8ff6927fe5130c69809d9a2c4b1d7eff309", + "058edc8f3665ff9166af55e69aab9d468f576bcc8f652e950082a48224b4923cb9396ed4" + "ae06f05bcf7797352035484fdc501fe", + "09b46600fb3b8204d4cb63ddfaad1482dd8cf8652f63c926895b8b8ebfe27295c052b3bb" + "81dddd8687f4864f258a433010c89d0", + "0832f7674eea791b5f17db7cf9e2ab13253d870c6ab46ad01cdda30e78db8b8f51fd377d" + "d55ec7786ccc92b17364a3c17ad5be4"}, + {NID_sect409r1, NID_sha256, + "ca1c90012eba4e7c5f01d8cb3814c58f48c03a16be6ed86934014365eee547070b870d1d" + "26a872cfd28b60d9ee0a66dea223e9eaa90ee28076188d6091f26f665684f4b486af7066" + "9555db9058d485c677b2a34d4a98aa8d6f43bf6f44aff2a23c5d765e98f0438ab81be058" + "5a5be29daece5d4116f44ce6062753a3ddc505f3", + "040cd1a06233ac27f3ddd108de7c6c0982793ee620d71982697713be9fd5143658929924" + "cc88747a680779bb00da8a44e1e7d3f", + "040164e518a6719b1ad61a38a214ebb06dfb0553bc760799e668b1d0d098ae3f06dffd9b" + "84c16de90db19043d72bed2601fda14b1d018e022ceb850eb1db59e6cf63c4a7c73bea0b" + "70448a7dea77d5ee8a2e1a36cbc46454bacd5954792de82f3ec21ca6a509b0c7aa", + "04a936fccec003bd9e8eb45d27c0eaedbd452e6fe99abaa62cbd0739bcf259cfb6884d1e" + "60b82522c6146f081663f6f863576c9", + "0dec1635f2698d4666df2c217fbe3e644d27592c5607a5549c877257cba7bee29a8cac75" + "a044e72d039747d0d18de1c34acf072", + "0138493216ffc3b8aa2e0c26f4fafaccd6609e6b15f767da7c907db64b5181bfdb447d73" + "ede786144c70ddce7df7eff46dee4f2"}, + {NID_sect409r1, NID_sha256, + "a54c4351ebdb075d6a42a787647390f864b2bbfd8bb3d0e0ea9d767200fa344d1a9ff091" + "bddb186acd69bcaecd767068efe4d752d185bfe63f6674279d0e7192d2077c400bbc0d55" + "99ee28507c1253f05eae0687b965a015e1f3a292b4650106765266f5c95b77ad2d82a6a6" + "e012f233169eb6b8d83576901cfd4a927c54d7f4", + "01ca6f752aae4eb7fc9c73a08d6fbd96bfde5030d759a2507bd45b6e1d1487e53abbe98f" + "ad4f41976364e0a1d830910ccf97abc", + "0400f6b7220bd24652572b37a0ff25e75f72d583c71c159857482ca9944b956a117a6b2f" + "f96614898757b8a587e3c2b78d9943003d0118fe425768bbf3a4acade281c41c745c9ac9" + "46c2f8b95d65787fb6b64deb71e6b38fd8c721e01c87efc7c2a6d8066fe3b35a0c", + "04963aa161b5ffbe5d7e5058f0b1457ca1b9cd61d731a0470beefe5f8998904cf4594f98" + "dcb41283f66e2b07c5c5d6a6c587826", + "0abf824d43d993107b552d7ded13f49ea0ae7bb845e56ad7e53cc5f9d64f99f9f250e430" + "5ccd9f6594c92defa7f6860fab1c349", + "090a541f1844357f618e5ea34c0398ccbdab0cb363e266980ad304dfd675bc81c0345a4d" + "723fbcc76ab5ed4cb0ba0af1b71bcd9"}, + {NID_sect409r1, NID_sha256, + "6723dbddc8720feeb75e2a061b7fc49079f999fbc79ec8a8e01ab8d35b438b7049da5a23" + "c49a58101742791f84f45d5f5cf551cd7de6926a0e2c4ffa1e378f038da597368c62df8c" + "d8349bf046de46d02183dc05b3a3575f5f232dd2970057200e2c9cb60eaa6b4d72f8b73d" + "4d40b98d1cc801d1a69cb5ed780a75a4064623b2", + "0fb9b1a9597d216028902abf743d25944258b48c9762d4589fe660396130b75f6006cacf" + "de60f6204463cb8c18b032de1dd68d2", + "04019b07f7f4ba100aa9e749bcf93a2c9955c442730c5e1f6f72c1b1d132b780d92f414a" + "533282f7b66677c8cc8a3d5ba8b3cd3cf7006ec6e9c495ccf600f8c19597e9cfdb639406" + "b04f57a29dcd1a7a843c2c44e8321bb8508953e9c0503f77d36bdef24d5d39f85b", + "0757f6acf74eb02b7ff3161b476dfd8349854154186c959179f11b9a15da3dface40ae6e" + "d771096e053976866433382e640283a", + "08fe276e7f63ce5f85fce19d1739a8a9986cd3c3fbe26fd59324efd98826f9db3b228321" + "b3ad1d96145ca23cc02616d9e9d7aa6", + "016e06de8e3e0abf4a4f52bd2f827ca4c57412adcce3271fb4014069713f3723a038bf56" + "0788d8dd48430d3b30faf15ad9c0d69"}, + {NID_sect409r1, NID_sha256, + "ed53cec5e5500d62d38c829002916c657674ede4439c6f405ba672327ec677490e656bdd" + "698f114c2ab5e6a1fc94a1a8d64466cfe9eaabd23a8b5c37f76a3c0decdef73b3e7b751c" + "bf3b0817f4079560b5ea34cead88ba374201236bffc48eaf289bbaa4e828afa7d732473c" + "228ad00588c9b443d65b998f21c3d7a9e9196c08", + "032109202d754da290c266f74f47805a06e6b5c3f721a72fc97a3bffeb8887e0c642d49a" + "6bd034847d0a5ba09239c5dfdf0772d", + "0400f4dc8b94dfe0a27d4d41399005b242c3e5b14bc7cec55ff3a1561c894d73f365fa8f" + "a2ccde1fd7bf3760b96ab2db78d2d50b03013ac66e95c335b71fd1a98f101a392dd4696a" + "806239fbdd0708acc69333febb48d4b649f14f42841d66ce03f1fb557a361c12c1", + "0b010ef786c13ece3a10eaff79b93ef3899aa385dcc1914e16abba90de0ca6389d664082" + "fa727fa7c7907dc4c88bd621e6124c1", + "0488b8956c5999c317830206fc8b9f6760845c31bc4ba77584925dfe25c05a1e7d298a62" + "e9748c7278eba622713df59accdd78c", + "082701053ddfaa376c99cc42ad4587d84a358d9d8a9533888cc382623114aef51170de77" + "ecf64af02e09bee203851abb22f5d11"}, + {NID_sect409r1, NID_sha256, + "13829401bd41e9fe01329e9f5a002f90f1a6ecbf25fc63e7c1345f265ff02e496230f706" + "c6ab377ea52d8707b54f8fc5c7f089044e2bec1dfc66a07da76ee12fb9ea0697d87706b0" + "ebf677600bd2fe117f6cdefb8bd636a1b6b97549ee78f992c24acdf3a946053f06fd012a" + "9c703efb8bd929a66aa74b05d61bff0395232b00", + "080536e820fac59b3203aea928475043b2576446619001647e35693a9e65d15236c3cbc1" + "2e1bbe0eb305973535c882b70197a92", + "04016d7448c0afe992f8c59b19d6cec64d8fc5b10026a806760bbdbbf0012063f46d31e5" + "21a34771f826669c4d1ddd58d3aa13ebc901a3742a6f231546f0704345b9b83c72d50365" + "22449cf60c1b3bdfa4c8d36e499d4ce62e6e7bb05c6132bed1ae44eed17414d2da", + "042753a515e607cf9992dd1f249820dafe53993b59b1e57d8f2f9100f609cc15713d27f5" + "dff4007e078d6da1061ddd36c169c21", + "07eeb1cc19ac45f52c0b63ff8ecf4f4f35958e86cc3e3a071a35446d490a426b48b6c287" + "027b003488573a4834a06dad48520c3", + "01410d85f3f2adf065b60a126170c43e34e0883338118cd33b0b3eafea1d142480b236ce" + "49d35fefd1ce4ad3d25e0cc9268b1d2"}, + {NID_sect409r1, NID_sha256, + "e696acdfcc96a6c088069b7595ea9516a36d8fe04dedeb789fbd965db0cc64b7017a8210" + "15f6210b6989e515def5a9605fec0d337e4ac59f3101a505168bf72ab6d98ec62a71d2f9" + "4071fc05b95e98d4efc59fedc138e3e49c5d0b44d1f48f7b1e7c1944ee189b242950d2bc" + "804d31c7eeb45283c84638f043ab9533976433a4", + "0b05e5f0dad9583ea18fb8fc4d8c75fd2e3cf9e92cdd9b737485c953620d345006c31c28" + "8b380258b6500b84f729ce6730e5303", + "040157c083ad9789966905c212dcfd7c049a8ba3863fd4886e4b118b3f06445fb0d4745c" + "2a8a1193dc68915722089d0d382253b67500867e8efb575800f834c978ee2ecf0f84f72e" + "75dbbac86926b73fab8b47f38eee17a63baa02e3edb9d4f6b2fd2afc88b6de36bb", + "0c72eb08acb1d422999ee8d51f9ddef9f897dccfafd886998edd3ddf30a638dbd0ed59d6" + "8885ce242fb838f022bccd4f3b5f854", + "01f4dddcacb088f6e24d331e8b111e390735a41e1fc29da8f5ffdbf7342f4b9056786f2a" + "67159d1e57570bd69d69235ec562416", + "0809840df1ef8fce9b2edf8f970c07bdb5fb755e9d5bacd7996275c4f890173142c39299" + "ce9eeb51d21a32acfc7761d5a2cd7ef"}, + {NID_sect409r1, NID_sha256, + "4058b9a8cc15ac148909eb97fa32aafbb6077b168dde91a411dbc973df7db056dc57ff78" + "f0abcb70f70f800bd752197d681f44df4a7817c0e7f60f8f65489ecb6167c14b525e91fd" + "2cc5d8b80ba380a83d031d5827c8b1262c687c90ef0e62723d9b565557f9f6fed0db48f3" + "799274c2cd60a14303406c35802cba6261121296", + "0be1d277813e79051ca1611c783d66003ef759b9e104f32298017fb97667b94dcee1ce80" + "7dc6b4d62416e65d4120523bf6a4edc", + "0401fed0171b5b3c6d9092a6592944680a08a0d4f99f08a3ad1c22b5bbf11c0e4ab3cdae" + "9526b0ca2b1bbd961362faccd5caeb1d3701ae7d57db848e5c86c31f542f1995c76e916d" + "ea9aba882865febca630bc6a10ceb6732bd5f07f51bf2f37ecae7b7fbbca618ae0", + "09e3585213c6d6706524e3c8e753a2eb0edced626498eacd842d44a73c602d801a079f94" + "b781ae1ac5d44209e8e3c729ed4e820", + "01098d98cf83c705515494cdef8c3f50ea8316d95b3ca5f9a1296f09021de57930184ee4" + "b9f563aebf5fd0d5abc0885cd24c0f2", + "0d9706f4474a8fb0c701505516699025fde546a21a3fe519a173a3ac01f683d40b4db264" + "2330bcdfe188693b15a476cd9339ae7"}, + {NID_sect409r1, NID_sha256, + "e793237d46e265ab84ba9929b196405faa3b0e4686e8693567e53f68e6991e5767797467" + "7682a2510c4c35b1968a90b32c4941af7813775c061c008a60f9f671cf7419c94253d610" + "6b61e65034497f2d273a5058379bd986e3d917f708f0a2bebdba150f6d78a3af9c722a24" + "30ab0f4bad602e91e18aaf258e3785fee78e4502", + "073c807bd7e07379782ab790720de4ae5106f16d34e80ed70da5b1594e660c9b775db940" + "66b93e74f855f57d88b6ecc6228aace", + "0400301526b630ac3fca5085f633deadec27af353233e6f241772c7fdbfa42e47a04b0d3" + "ae38c04eef2109390a71fa9fda652343cf0137eacd97a8449ce83f19a13a248af52e512c" + "fab3e2ce1ceb789874cb08757dd9e47ac21b5c0846498d8d7cd90122c437602d52", + "09245ba1873114ee2a3e642c5b15049a3566a2f003cb3d25250028655fba98203feef5f3" + "07a9f4c77f232976d83723f2621eaa6", + "0c8136d4b998ca0544ca1430abf55601f259aac7756c75d1371de63d1471053c789833c5" + "cc257e323a71f80e21783df4efa169a", + "0e2ecc6f0a418bee5de7c2418c4ad85d981b18048f94865821de696488ee19291912ae7d" + "a1cf5fe9708e2beb18e6cad4e3f7849"}, + {NID_sect409r1, NID_sha256, + "ffb8bc80e7619a562d8506eba7658bef0c25ace3dc1d01bdc2ef00933d4fa07b80364e5e" + "5826074edd46a707dbc3b0ab19eec7ea8990839d7fc0a80b70661204c52bcbef57c1a7bd" + "c861c10766033a82dafbead283d911a9502d5f9ef0a39d35ef26f3616212d4bafcd413ff" + "d18b424fe09b48ba02ca5d97ec996205cd49d22e", + "0a68379b2296a6c944ad5dacb593b302d8ef0b05873ce12bbc371d705f308c739d21f343" + "349524aa72f05341e64f7435daef112", + "04007fa0f698535b011833dac1ac96f3739ecf0c29f7fc1f8bd635f4f98daa70a3931061" + "1ef51b2fdc8b37eee3573dc34cd2528d3900be1a9dc30dabee3403da4f2dac6622e6fb84" + "96e72f3f17c169e7b554efd84ac655e727ae9520feaecc752601d5391270cf0cfc", + "0630547017103c3f97de48ab6b942db94b2db9ed7dab0391ea9e71c1b788c547abc90088" + "de5b3e36c9ee4280bb454c7c3710999", + "0916aac91ad329d6f330cb051941c781b9e59bfbfe45c4d4f6ce0d1aca982e1c612952bc" + "ea06784c57c121b14cc0dcca783d0c2", + "06a83d93f9bb81c61ac290906d74e2d3b964c39b4e96370f19cfb4a55a3f7901bca3deef" + "4bb79ca6a798fb9b3a9b0137c5a9324"}, + {NID_sect409r1, NID_sha256, + "946bde90a5b903dd281a51d7fa93d80f3fed07eaf50c18fe9fac5acf67326bb18effa314" + "4e25c151efc006a50a274ec6c6a5d573051c4e2d117ceb0fa125acad07a10fb6534a8e5f" + "5b3da2a1136779c51377bf76c3a4a93c0c6158f729f2293e414fcb952c9509f228c804f0" + "adc1daa327a8991d48ccf4f3957c5f8ccbe3ad4a", + "026046bbb269ddb1ec14ade56175482343a21b7c265026cef3c7d6a1ae0f6a68166b9e6c" + "49a6e733ad2ad64df7137ef230038fb", + "0400d09d8118519f9d00df7514d2ff99483473f680b750604580b61017513870a3cf1c40" + "3495cba488309e2c084079d53139a3695300d25e41038c18e4ba6f4e9d14f210b71f27b8" + "ef2c1d4cdd5f63edf8fe11d548d070177e9ddae382fed2b163ff2b58546f10a99a", + "0d6b0e5d83155a035248ccea95feb0b4d1af818e5ac6d5f41f1a255dd8b482a94de0f4e0" + "37b10339d1805dbb6b22af6ba834219", + "08059524790304a37f2a0d57bb2b93cec79a827b1fdc9ce2d7dfd4d277e0f71844d33531" + "4a30bbec5598a399e197a852b5528dd", + "0e7870e2a0ed16cf340a04fed4d2048e4e231cb8918345e1852bcd3e30413a2219864851" + "121a34fc98dd99976e2b20cf1d1bf2e"}, + {NID_sect409r1, NID_sha256, + "07f3fe1369ebfcbcacd66675bd4ab22edbbff72e68709cb57d4f590e49440f01691f490c" + "58b5117bd24aa2fe2101b59c61c417c918ea08ea34bbb9b8aa17491ae5d9329affe894f4" + "2d7586017877fae3ce35bb80c97f92a004380374ec91e151995166e14ac00505fd1fa810" + "cf02981bacbcebf5f81b2e633d3a3db6737890f4", + "0bbcda66978ea526f7bd867c3303b625f11b94dd9ee6e2c2f8688ff07f2bba83c662949d" + "47ad47fa882cb7d203a7f0ef5dbc52a", + "04004cf5bc624553e833ffbee05ab863e5def062e0d57c28e71d758d6ffd3839504d7ed9" + "d3b1a040bdce8e187ae0b4ca23aa565b0100fc1a15b4f273737eb92a56928395f6518e05" + "bf946afb65ebca3787f7f8bb3d946dfd26c4831cfd171b4c66c2237409ebf224d9", + "0a2cd205d957a20c79699e91684cd22746c476a79245f11e7cdf7e6b74f07cf2fd9eea65" + "eda97e8994aaf51942e15695545abc3", + "0aa1da120fc19523e8162e6018e4ee053eb680ebc7e31d00db34f7b177c74c5e6ea344bb" + "a3c39ab7ebcd92996a1c156180b7dc9", + "071aa4588741208344b323642fe03f1cea73865ba645169df9c84bdbf7488829b83b8da1" + "72f1927de1c8cc318ede545c748c782"}, + {NID_sect409r1, NID_sha256, + "3a1cb13438e3bac9ad4ab1d319e90e2c9f118dcf1eb54d6333c674a665d41451f93cd4a9" + "334cd057a44c010edb668254517a63700a31eb0ca474c84873e486f2f8e158a1a7735362" + "ea0cff8ef17d959ffd851b21a91412709b3c729474d2cb40f6ca0e397030eb2611b40291" + "6e4b656f0fd868247d80be3ce33d52054b7661f0", + "09be3dd3442e0330750f0a6252bf9cb317f32f942ae516a4038dea2c40ca6484fb33611b" + "ef016cc64baf166c122e87c15466fd8", + "0400f05a6fdbe6f80c0f5ef3322d8accda4b9ae28c91b6198b888be713afa5e652e907e5" + "ca9aff5fe77b6546115b4c732bbd4010fd000923d07aeb8c947688e7d3dcb16ca69440e2" + "a89539a41b8fbb797523d3b766b46d257b87472f5084992422cebdc4e45556f5e4", + "094fe051a13ea8dbc89c4cc5511881a48ef5554de265f0badf8741ae5027eef25c617bb6" + "a3f454a992fc68f5a548903809de09f", + "0162687730f0ab2f57e348476d1fa4eaf13199ee44f44dad5807bbea4e5ba79e92556f28" + "7cacbbf1fdec9a8b78f37e78e52dc1c", + "01acc734e2d0c81a56ee8c0465661c365edae56228ca43184ea1d7503da3d38e7607b159" + "0f59f5190e5c7264cd0d7a39be71069"}, + {NID_sect409r1, NID_sha256, + "e58e7b881a563d54772125b2863718690a5276c93d9e1c5feabbdb5d6f7c7293ff0f8980" + "5b53663bb417fdd46874b8e6a466e7e3ff6737930a0662af1d5879b071b0dc4d014778df" + "f26a2eca5992e763bf4c4698c382ac947215aa116515876008a56e5bf547857049c38a2d" + "3737ed3393705fd346897c3beb80caab88e5b8cf", + "0ed321fa283c662e87eaab99b7715e6cdc9b42e14fa5bbe2c56fdfb381369191a42da7e5" + "74839f90a85577485f19446fccaf6cd", + "0401bbb34e6bfb1c1335c48e8b44cddd8a46486fad4313581df216002b382db1d58adcae" + "74af0d38445cac2f6cd9e2b439d106f5950084473a5da9f910b4807ec5ff450be353a187" + "af6ace821b18e096c47752b6336dbedfc4b481e356e689fd9c03ffcdbf3e4ea39f", + "06ae69e55ac1f7b0f844f5ee0b583e652e0e5bbfa4eae85c59eea1485148e34f4d33c9dd" + "d7ac071a28ac0a6191d5ed03e88bb86", + "0c3509b6c0356e4a30a82fa7411d1fe17ed190b7eebf9310c44fd568494c894a4f4a1a09" + "e58a4d030d47227e54f7220f3f79f4d", + "0d44ccff47d9fe82627393c03f882d4b98633961a897381ce8b2cd18f38d69742802d18e" + "6c988a23eb425b294f2c1b84cf42cd1"}, + {NID_sect409r1, NID_sha256, + "8889ea1da1cbed98963941f6ac24f47253ff6af52de920765214f2024aeb04f7ad469368" + "30a8eb04d95aba64ed7cda6ef242f454b67bc2de38a46b6524bd5c96739c4b580e89829a" + "61a8249ec8dc27a50f43b8554cfb6f4fa4ca6875983d4b60a1c6b49f32ddff6fac0cafb6" + "4d55c6f594b195c207a9bd920dcf20e0080920bf", + "0396b805073f3c3b552b1024dcf35559ac44f255b688871a3c6657f727a4b09f3806cbb7" + "5d26a00ae1728be632387e804775a8c", + "04009957f897a17241eec5b8415ed7ec1bde5df11583255e0a8136d076d72ef377ab3f55" + "3d6f56c054332a24098aed6d12878abbd301f58eee295765e8a55e388e235e833bc5cdc5" + "d51a1d98e13429bcb7891b25487b7fd8ed804b1856cb6071cc28756bf00924bf1e", + "021959970a6ad070d1ac518493e309289f3d9d6e2a8933bca715f53cee4ab9000ba2d014" + "7282495e15e63f258dca87a5db7eaca", + "0d1ca34413341c115f780e647519547602e0361ed4d70402f42d735353696eac6e4024ed" + "2eacf9577252d40c27297e9389d1f7e", + "08cd5bd43794b32d5bd2ccf7ae4deafffa0e0deb92b1eef9d3ef807d456e459f92e9f106" + "27b7e7574ebe3c2faa858bd3e62e187"}, + {NID_sect409r1, NID_sha384, + "55053af9370901e38622734a5bc5589f6a20e258627f381fb0c366f3dbe58394e5997e97" + "8eb7ebbc530f6e6186f48294149b8594fb551c31c50521a8c4d67e5862921695604afb23" + "977b6a69b21abe75966fdd11bfbdb6b51ab0a474c5fa07c4de7872a3bd81acc417655090" + "558dfcd5af449b3347e61fa9e839bb9457de64c1", + "0a8fe323f6736bcabe971c7d964e75dece70cb54561da48a11c40027ebddb23e41c7b486" + "00f569500fe8ea2abebdf480171dde4", + "040020f2dfee967949643b6cb8a3810524044a4b873a4984e9795e4dd7976536a2d748b8" + "cc636ef5c8fc92aba5677c4a0951a3332700956ec5433d73162c9683558f0dfe8870cfe6" + "6575f2c34c765372c7c3bc3b291e95c4e3665e4ec5e72131975f0b1f5f30b0c844", + "013f26e13d43ba05e01f92457374fe2ad1ccf94ebf22334447f9360f7f9748bf3665ec30" + "58ff6184fbfdbf7de9e1e2131cd3991", + "013c4c290cf89789bd6dc523deffa20c94e92e88a76eebe88457e30cddb066c7a43aadeb" + "0493b264cdae67532db7dadf879d991", + "043bb7a8db3d79938beedcd6ce02f375e26ce807a2afd4fc446f372fb09a69fb34734df5" + "dc8f6393f86577a8d29014494379624"}, + {NID_sect409r1, NID_sha384, + "c4264330534a6c2bbd8a3b757e0912558302ce302f835ad8c5474993832fd30036fdef40" + "b10ee37293e871db5b0b149654f9e543e22111f9709ef45732125f713c031ccfbc9a2f3a" + "ba160c241d27be4dab87ab2fa9a795752ab2daf20f9d06a98d90d01c07133adfe83cb11d" + "5176525e1bba6a9ba70ea48b224d46ddd8103f65", + "0105938ba9f25034da3e032dee121bdb192ac2128b50a2ed4bca042e96cfaf4660c9d35f" + "3e67bafd4c99f9447e6dc408e0c4471", + "0400f1a9243920d7cc26741eb828bb55e34c140b0e52837792ed6274a9aa6b5534cdc5c5" + "96a1141a746dee380c0d9c2f77094c36ef01393ed8c609751550ffd077347712f3b27a86" + "9cfb1b532c5b19c381365ae5dc8fbffcb2182777a17690616d71c66524017d861b", + "0fc52aa8c590aa28c5353568c9dc69734adfae840f1e0642b57863dc7f4faa37bf3ca789" + "a3d7afb32c57f66a61780e253f50af4", + "0c45b1629bbf3273c0e785a28cb8187ef387502ac4438a3372a5c72206a15d7c5ecf9203" + "ecfd7e0ac910b6ceee3be50c6664f81", + "0a0c2d31a47ad5f9dc2d42dc36714cdce47666f6e2f05ce0e7136f166647540d1e5fbdc7" + "c9fa0def8962f44f2f8bc9addc10057"}, + {NID_sect409r1, NID_sha384, + "3236f1ad164e1b25d828f5202e3513c80c72a577aa9af56f041fd96cf5a3363f4b827723" + "b1511a2f16360e32eac90ac55f4ee1146791420ef9e2af333c17d157b00e43992ef6f2be" + "2d2f211361e468413dd93fb69232f0a0d110bc5fff361c0410344aa0636bf809062c73a7" + "ac7c142063912b6ad7e1626fd2a384f35faffaad", + "0ce11677ca818537dbaeb880fc967dc8bead203a2538a55e756679c4a9e7975b9b3e6aba" + "4e6c6eab4152d0c0939027e9b0bd92a", + "040023c78eda396efa28c92b120c4ca1e19dc6c467234f9f73701d8966bd0826c20122af" + "5f7c9ad5a5b855b6dc517c22131fb0b5af01ea47619f91ed4a010dd49ece7ec78c5e9829" + "7220b4c239ff4a8c29aaec008011acbf7e4f985c02311ca703bf4ce4ba43412ecd", + "0dae763fced0e498e3efa1c6c412a25774c9bd6cd4bce25ab0a7266705cdd54040ec55bd" + "7e6708e71b09ffe9c19af9a1ed9c878", + "0a70694fe5da7646184b23b4b434bca1b754257b8e7fa9994dce4a7a92b7ec8c7f8cc69f" + "18d17915c6bbca24f6621f9563f7c35", + "009e6ba97ac2be8537afe7f8f8b9cde8841323b5cc63cf2ed46a7913096ff8d96040296a" + "1bf9aad691b60e1f18233964a421fe1"}, + {NID_sect409r1, NID_sha384, + "6c400ed098d8369dab6fde3553afbbd4d47836d0d12dd16015f15cb8d067a39391c85ca4" + "e78c62b8b72c1592349ff8dc52db8ccb7fd80c085fae456dba6f4a2378e184dd59238c92" + "cf04e40d43a66b342d2a1325a0bab12b1ac857f0564c27b35e6abed02ff5bbbdc3770ddb" + "b2ee0513df48bcba925da6d61583076cd3129603", + "05a239ae0f40d76d8d3589f1662b5ca12176a4b2784faa8339b54e96a1e1294433a4d83b" + "f904196f939bd8b33bdb4be340ec703", + "04009d03b7985647027a17c06b30ce9fa1b43d0484195f584fc347f7003802613b524cb5" + "641db3425ab4b3839e12c012853ea8384300818f5e270baf5a771627b098a6f9ad8a8262" + "e331c299fa0722a0df6ca09bdb9c92d22d72a73567cd5497d06639aa47349df207", + "0c22251c73998a3a49b3fc65acf01438941a8885d1c5072a5d41d779af70c044153fed40" + "80151b524af402a4e8ede4448b717d4", + "02d3a7ebe5de23e0e601c6e41616bf2a9a7fb6193fef8e3f0a7fb8128a925f7bec383366" + "9d1a304652b7bb1af5186b2f612da1e", + "0b7bb17155068a8d9b3412d04d407556ee133e1a704ec5da87ed19dfde60517501af345e" + "2e744d35d844f8ac8ad08b13b17c498"}, + {NID_sect409r1, NID_sha384, + "039a149eaef2de30b0ae457b376ce6fbf88afd4cfdec02d3c5e00400d3b0484c1cd6ba74" + "db5de65d6f2fe39871349b30fdf1ef29bcbb9e182eb3ec5629d07d98354a5dfa82d7f0db" + "3dd10d1510c0dce086848a198893ca5ad24a663494f0596b4eee86199ea85e7e8f2f76e7" + "a6bd4a052c54287f61b391f1e52f96b606151c34", + "0077390c62ac41aca995640fde0c79c76f4ea8a8dbb22323ed812bee837ab8798c5d0ba9" + "76c7aa634d4b1c2c155de2709e7352c", + "0401a9357770270c528f2af991c447bed86194d458f693a871ca38f271a9e6a566f5b9ba" + "3ef3d2f9bde959e42934c95867b280e9d1001f3a0516fed36d3622fae3f44d87c4bc67ce" + "e0a995cea242e530451d43781f2ebd163f6f521497fd7a1a6c7b93d33b77083a5c", + "02555cc113c8516d741b47ca41f53ed07d509845f140dfe7dffbd01a3f751ea9f22e12c9" + "39a2ecb1827c0e56b1b1c5459b66aa2", + "0e88333875a507520d0b62b35146e37e7ce4e2f2478a61adfcbc6e1aa9fd0195a4960c63" + "3d9d6aa9a79323b7ee00ab802768436", + "094595255e8862d14980893c095608113737f42b05b561771f56ac1d54eb521bcefeb392" + "8917c07c1bae74cb9aa80dbd34962d0"}, + {NID_sect409r1, NID_sha384, + "08617d04fffd6644c40f7dd57919f7dcf3c888f4147535d12ca658302305bb8e220bb17c" + "cdc480254004b9035b357120580882ef86aa5a061b2850100285b7d61588a664dd4f5394" + "f5478e68a80f610c9204d056009c1c9e902161eda33ef61aa902e96b6f094a9f05313569" + "2182943d38b9763055a38739a2a2d133c5dbee89", + "08bf23b09fbbed1b55769907aafb97f4759cec98649b2c9da5157517d4f85bb70157076b" + "5e4aaa7a940af042302f8be06a84ab6", + "0400883c31c474333f74ab2b86f3eac865c4b2b54975ce19c5cfd23682d041ef3deaa43c" + "9f9e2c194ccd3add6677de31fc9e07dfad00a5a36b54f4eea6b300491ca22054280b3f09" + "b202b2a6b55df9e3271c763b6d8360a330c16f936d69fa463bc0c4071707c9cf95", + "0812c83aa9dc4139f8c3f7c55509f9e10e6cceed30e16afc028b1904b4d260ed0e77acc2" + "6e711a7a8e24c75fd780ed893c0bbca", + "0fce07c6f791a05de29609b59d55b7062e82fb554341b2b2a8187baecb9c95b01ca5dbf8" + "ac88c60babe10af2edf5985b35e10db", + "02bd026a3e45ac439647a483261107829411c1b4a9ab603c080b92f605cf742754b65498" + "1460cf7aa72b5186b59d224dd015314"}, + {NID_sect409r1, NID_sha384, + "34c959f549a307f21b850ae105f41299b8bc94fc292aefc61aefbe0a1bf57576ba8d9b80" + "caac635e4edeb22530163fa9629665fcd43959f68eee32482f1845a78ed7278e6e43d09e" + "d6fedf465001afc0d61f1d2e1d747623e82a762576b879c7024e34f43104593cdd691d53" + "bccaeb8f212dc29bec6bc94cf69d0a8491db124a", + "0082ad05d19b8e16f80e53a4cccf6869ab5128c5e622ed146fa8555985ccd2aa3b9957dd" + "374586115d4d75b1c01cf98ecfc3646", + "04004428d05366b0a46e6578fc7528d185a3f85da06c4179e9c9055dc0a7fb4afbc53c94" + "954f268e36d2ba8731882bdd27d9684c810136ba6048ec672601987e9b7402fea24f88c1" + "a94717ed5a83794add0f31680592d6cafdec147dfbc400e73a6ba1d23d4cb0d707", + "0c00c897edea7bbfe1913e3da303d64d0d657a83c1eac9c111722b17c65391f2cf67b782" + "19e748ceb269d6c65f01e92e6952979", + "0624c5bcfd8e0ef22ee6b34a8b26bc051912cabac102cbf56c364a743e8150195fc55a3f" + "ec90a8fabed5eacc1799b565745bfd1", + "0cddd4937da8176ddf0de7f52a4babb1f6fccf861533f796a487f35d060ad9ed4435e5a6" + "7166782b53c20bc06fd1b36c265c1b0"}, + {NID_sect409r1, NID_sha384, + "514f4de08a6f49edbb6797c9dad6d33bfa367cc1a1b58a5becfe646c7f3352d5c5d95f74" + "56e7112c4ddc746b9076b9756ae3916c07bbe6d3823895774a42d25d44b3309d18bfe7e3" + "ccb1f85dacfec1654778c19e2981a853c1f40a7eafd16d331093110698c957fe9f1d8658" + "2706a6885543248b944bb70cdf9d2ea89190cb02", + "0af7e581aa4f9be5815f0c447e39de00da9194eee5e5f609668b9b69930b5b48a948614c" + "2250260d1917f0ebcb00ebda4bb52f8", + "040044703e0b49437315a64e397085ea2ba3f2e2c383b168f31a922e5916d590344906bd" + "2a911074b7481aae7f3f8f4807b110f2e1005a13607a3bb89a2a88e27d5eb5cac4eb498d" + "34e6ea861c80271ed0c73e1fa893adce0c1982b8a8af6a0249796e5276d369c3f7", + "08e7fcadc844456f14ce9354b218d519d86c0c5211d62904c937d6fbe8cb16264d7d41d9" + "8a15e9f73a636ac3739770738d6b46d", + "07aebfd1681bd5a2f995ad4a709e8681da742649c0530684fac251494263e98d67247e1e" + "4fc174b409e7e24a7b055500920cc82", + "07b83b9b5133aec165316021472307b8b481e6381754a9d0b4f9d683c2ee7cac94ed4d8a" + "72cef61fa1f6349b6c4a54ec38975cf"}, + {NID_sect409r1, NID_sha384, + "4e5d16cb1dcaa1abab1e371e1de02f31ef4e0944dfe1fdec45ab64326435b2af9aaf1a6e" + "d8fdf1a6ab1182bb53a844c7cfd66da30aec0d41757f5988ada0017c4ca752597a9fd363" + "7668bc1a92bb1556553f28d66805bb47f1ef91908ce098d452872da9800e77e1fbd43ffb" + "0ed6fe6a62185d4be73ae96c9241b82cefb2da22", + "06d14107b08354e6a41d7d7d50c004419db8bdc50db43428df5e86084551237223c498bc" + "e71a17e25695bc438c5c09e009c60e2", + "040088c1517355cd417a698b648508fd07a457ac13a49d1bad17dbfbc9735ee58343316e" + "3eca570bca130c753e17a69fe5bd7baff301397a697d2113d94daefe6be491ed3edce944" + "9c707a57af3a164d172cafece564d686fe0d25725c2919c60889af4d0354b05117", + "0f3bb2dd9eece25c56159f501af8b619a8c279d7ecbc08ee2af6b82ead80375e9c07227b" + "73a10918d8c89d1a2b12cb76427a7b4", + "0407b224d8d9c0f11a8e09ac8d654dc6e1119e2c2804510a84ec61f9017899f9613e37d8" + "166e0fcaae16c3cc11e9f739968c687", + "08c2bd7d02c4c537a308fa40db786ec64fbc2dd4c142b18cf9bcad66199afd4f44cbf221" + "adb3837e84173d174e9c0d534720ad3"}, + {NID_sect409r1, NID_sha384, + "e29e75269754ec1194270f5c9e8267dfdd8c696008b5ebc92bb840981fd065672f07f6a0" + "f1b19841adfc51b478371e1a0db9c3346a9f0a4ccbdecb7040191a00ddfd0a8faa0e69fc" + "f544319c0155d02797eeef99fabbc55078f9d852927c23fd931685424249b87ed0c70a4a" + "3e2d3b9a2f92830e7d8f7650c0bffa8f8986b7d5", + "099d96d2dc9c79549f031bd5346cf6a8544c312a3fbfc560dc8e378efdfe025b0e6e61e0" + "9c04c8bf4133396f993b0906c33dd30", + "0400883e00d72c60f22ab085a90901ba3e8a510f19c3d62dcb3ee5066e0be094cceb30bf" + "bed7068d0bfdf634a53e2fd002dc9e454d0194baa5d7ae2399965fc4009ea83273676e66" + "a56fd35a5939c26ccaf85633adf78b33dbed6da305979077418c625354c7fb6283", + "0c213540a452c4f2ef275dd844402dd5ea590f7df41ad35523edff09b7fbb096f8ae8a4b" + "aee95428fee03a9e6f6a14ceb90e289", + "071779b477245007ba1ef5f05446c4a08d1c2eab550db9c053e4588c9935f07ba87764f0" + "fce14d4a7b982ebba89cb056aad8cec", + "08174bb56cc85ebe7bca1de1f44cf93cf478d7fe59001c5947c66b837bd3a6d116f99dc4" + "f9acb4f378b0321228518e1ba0057e2"}, + {NID_sect409r1, NID_sha384, + "1a538eb447c18494ad5a5ad27be67fa60eb2c5cb2404eec1dbd7244cd802b17ca5497e77" + "9d5f779b981b165dab53ad19fd7bf2ea7dbb9b4baea782a43d758202f147e59d6b6b8ed5" + "4f4ea084bc18519943f6894d603e253ba3e8e339a6933bc3a0a47126087038e1c813c3f2" + "997aae321b7c95a802b4b73fc7db95897b7c91e3", + "049f347dfd361a65910e97fcefbf60013a54837f2ae657d65e02397f59dc6bca27704fed" + "3affdc3d833fdc621cc5e5f99b92a63", + "04017942b58d42da750a366d7e4cf4cf465c856cd911e5352b50bc8a12704c1ac6ad54f9" + "465e4fc5402b373d8bd4e4f8519341f133010abcea49c66730ddad7734eb1311b2626b75" + "ebbb299a28c9d60937e6833a9b3dda052379fbcf7875f18680924274fa1764158c", + "0134c70f031648bf470ccca4ec19c837051bf700c851df564ef3ceb99d7d41439293bcea" + "0c656c0e5361db92a03def51d7e4f26", + "06c0f9935abc5034a8b0a05e8d04de699b5916cb367e834f13642f0003510bfb68714be7" + "5c9e35b5e593eba45fe151d1df56d40", + "0930baf426b33eb4afbed64869a22712591db11acee7c4d3a221a1e98048f05900fe1481" + "6006854cb90631de5797f91176fdcd7"}, + {NID_sect409r1, NID_sha384, + "7502c755bbd385079a4001b8cd653287dc3054f3b57de19d0ff8f63c0308c64c56f03511" + "7a8971d43654f89b52e923947e4760ac72be073136da70c5ad7ca1658cc0a2d2a880d3a0" + "c0fe636fdb27b77ff260c4c1ef8a18da8e9fd777d732a37ae9906e6c4f381f0a3d941048" + "d5a1f6f2cb8593873fa4bb1621a44bc2bebfbcd1", + "0dd226de602af4e9f8e25784bd1bbd4cadb0a8aef525d5e2d57b9f3555feb698765672c5" + "099a7d6dd5faaded69d8d68b4804f26", + "04007ee34cc7a24e2e693f9409f52796427ed86fa71bf88c923db305ebd5a83bf3b6f761" + "2847f16d00f4a25614299a2df92bb693c301f63f177b54f8dd5c907ff318b66c2bfc1cee" + "09348c035a4413fa3cf5acde0db1c8af4fb8deaaf8a3a6f8f06b0acfd20c6f0049", + "0e19c21b05c82dd8c873e5f30c1e3aa9348327f959a4dbd9c741e233c649a426cf7bd9d8" + "e93232e496d0b93ce835f80fbcfdb2d", + "042a3907a480329a6169b439a6945cdbe8e4572779c43fa6cd1f15062559dae9eda27124" + "02ccbdf03d88a8a68b691f1f16f8f52", + "0d09fa4966d171a662a9ba6827fda830b5404f96f635edd8482ee009ec5c7b64a2a6c177" + "93993610ae8297efa9fe4c35ceb5001"}, + {NID_sect409r1, NID_sha384, + "95eca932d03f1df2e8bc90a27b9a1846963437cdafc49116ccf52e71e5a434cdb0aad5ec" + "cb2b692ca76e94f43a9f11fa2bdf94fe74af5c40e6bfd067a719523eea6b4e65730365ee" + "498ac84c46e1588b9b954f1c218920cbf71b167fc977ee2a89429590f43bf637eecd91b0" + "ce3be2d66bac5847205f76c06b914a970f543e59", + "0b6fdbc9c8c76cb2b822a940d8675889ca6f5132429da795462381ce29313a23bc132976" + "fbeb346ed4c691e651028f873ce7971", + "040147647d267afb4bdadf54baa3f5131e79dae8103f5b2ddf70e4652f9fc5495123be97" + "215b811554241c53023a247936053288bd015205cd5bf0c5154b2dad8367e1b487689b89" + "8acbbf44f9ed67a37babbec739804dfe737b324ad663cd2cad79274344397099e7", + "07321d12d616dd2ee5f843d6ed7e92d18968b3a76c0e4ccc167790afabad1b7c0dd53d82" + "aacac93d98679b203bad88d5ef0cd75", + "0672c5607acc646c67456ee77f2c02117cabd241f728ace5117626bdf91662323e756543" + "8f46a3e25c048a8e2130e27fa1fa2d3", + "064aaebf9f2fcbc843ae1128eb6c7e7d1fce2b9901dae0f60afbcb08c7f2ea1b550e1599" + "47deb87dd8959921846e2923880db6c"}, + {NID_sect409r1, NID_sha384, + "8ff68cb00d03e730dddb05fe0b2344689529096c3da6eeecaf097f22c7fa340593106b1f" + "6726f06b7ce7358edbcf801ead959438a42f94cdb467b3cd5b17fbbcf75739805f9eadc8" + "69c33c604cc58f81591b0b8bf4d42bd53a801f0f829a31af6c129fb4f20f1250f959754e" + "ff8c629b85a716b6a18465b6495798c0c5166c8c", + "0203d77fac64591eb9a18de20a9d5eacaa1c3ec58a5ecdb3008c2d642e197141d16b3a9f" + "dffe61429264f5b420f5e9926659a4c", + "04000f66ca09d15d0991b48ce7afde9a148565b73807e435ae0f16c14cd439454745f8ae" + "153786d7c40cce3f43a8aa4f0564cdcbc3000f4c919b7a97beba2559a8ad0f85dee40e8d" + "f28e23732d7de655262209a5170f94791e255e77e8c8cd64c8c9900092e0ff9d5c", + "0859bc752300d4ba5014e302aa4cd2a979b3097dcfde5c59f4bafc5bc8a99411174d2ef3" + "f7377df5a09269e3d9461be61801942", + "0691ea76acbd5e8137924bee13326ceac8231688af8595718e210bb857d6619c152e1fb4" + "6e03fa83bd6b5d81e2463f9260407eb", + "054df52eb86c679d8f8514a09f5a3062d2424cdc19fbf6927f744aaa8c444223f1c28ddc" + "84b1d135a886eb7ac7eab3c7b0a42e7"}, + {NID_sect409r1, NID_sha384, + "01451c4f09720cd53377a5ed04c907a735477378ed960235a833049d6bad6e6e89958b4c" + "4249bf0f6d4f043530c9e5426deb0ec3a12b7feb4860757b41bf602ca95655155356ec35" + "a2db8e2657998f56529be4b714364f83a140846308a2973907ed7b08e935173ebbce5e29" + "afe1444cd51c92824ede960056439555e7e74450", + "057a2e6a59d4871c3d547690237dd9846d6d5dc4ec0678aafc9c8669af8a641eed67bfea" + "4b05fd6b3b5357ec4d0caf352691ea4", + "0400351aaee4207bdac826ba17e3b08dd7f94c0c8ba0d9829d7bf0eeee7e6375458b5457" + "bd787f0ff38564734b3a0412bbddd7c37100e09c4dfbc33d61d69b5a8517baf5e4e16149" + "20cbdd89bb05f0420be757253fb92308dfe1de8db822f57b67b393d8a70d989b26", + "0fbe560003dc220e4c966b21c874b828874a33a93bb69c49909376df67e5df1652fd91a1" + "d73c7733f26c121e7a3b2d1246c9a61", + "08b85cf3a14fdfc69cd42750baf362286940994479f6ed7ce1d87af12c5ae075b311754f" + "1d37d8ed10bea092bd3d9f7afd2f1e2", + "02360bc1f7a98cc87ee2a4feadb98554cce59aa0fbfc087747c7253e54c38815cf91c851" + "7f5692f95bc7c3a713fb6ac43a34f7d"}, + {NID_sect409r1, NID_sha512, + "ccd494ca005ad706db03a3df6d5c6e876ef859ec77a54de11fe20d104377df1900b6b192" + "126c598944d19a2364b2ae87ad7fd32265d59e1f22be5833f20767793677b628f18e9619" + "f8ca32f3af3b41c31e87a98d1527e5e781bff33c1a8be3a82ea503e76afec5768d7f7dd1" + "f17dc98a9e7f92fd8c96fca0db518bd143d82e6d", + "00a3da7a6633608fcee9ce4253bbcec08d41ee6b00178ceb017de74e24d48fd89107c9f2" + "db3556063abe3cb011938f4b4871795", + "0400a6123b122d7d0d766897b15ba6b18b3a975d3d8058c9d359c6c6594cc0dc07d9ef60" + "33224b4aed63d319cc2747c0660e38897b01ab5fad5e78f380aeffca8d15e60731720184" + "ed456800967b2ca47d482957d38409ca07ea798bd892b529774e44080eb8510e6a", + "0da042642b3117f30ea5f4b354047b164bd128696b8c00cc6fcc767246daf7483284e411" + "009e05218246830940178cb4ebabf1b", + "0e4ce613e6976e9e1c30c0c93214a0a37f0632de85eaa25464b69a251d592560b2039fc5" + "9b15ed7045c29c268693d7c9e06d8ce", + "0ff3ad5ca70aac94facd842fecdf6a28afbceab80b549507954b7dea6da06d1facd11e0a" + "88e9c2a549e6971a08d1af75aba8363"}, + {NID_sect409r1, NID_sha512, + "5719e50d939a8d74efb444eb5a77cda48cbb59e7f976cdb2ea2848bfc558718b39ce27b8" + "93c229db94bf77992222d1746f8f52f858f85124a28193ae0da039c53d484681785f3367" + "f6516fbb8a86560aea9e3428551facc98cdb1e9df8e2f37db823a7abc589f667b5c93c4c" + "47061400220a2014197d514217fc252cef5a2433", + "0384723c8b4a316b450d1fce0b2645912b8acaeb3cad50860cca43bdc0206ed5b3b60ebd" + "c29b3eda305d0d60eeaec261edc24d5", + "0400fb89d87ca4282ccd048606e4d321e7ca73244b4d0c9d3df87d54e038a14939138bff" + "33c81a9ddd64abdfd698bf103e45c96f97004ff7e1706688a53a5544f4ed0f3f5e1f0fbd" + "6f21174166d25a690f260766646cc6fb39020de9327199225e44f3d95c5984fda9", + "03a9f5f26eac81dc8ca0a17acc44322d43bfd18edcbafe24113f5e5fad0ef0a3db75ad1b" + "2422c7321593e41e76eb2a767a14268", + "0c311000c27539247059e4a8d789ed4db93fbaea021272a90045bf6fdd70f4f32cd1e195" + "b99ee6f03f4fb57c3a115ffeb459af1", + "00db8bb46fe0f99b4e6e1394a5db283e310b24d6006319986dd2c4cc169c775c89d4ad98" + "d0fdbc3c0bef6b7fb6b43ef21049bd8"}, + {NID_sect409r1, NID_sha512, + "c84e5702a339259a61b5ba8ec1957f23ffc4f1eeef3a58f383d3731bbaabfcf49ce2ebb5" + "97960ac5115a2af1c62b193d4ab6c24433d5f168a1752e40145f19aeb6dee889a53a4fad" + "d13eef60e28fcc7ed6a9b8b0ca286c1b3d66a4b2c327a629d15c148049e3a0ccdccf05cf" + "22c31956014595e417060627c8125bd7c00f8850", + "0bd3136647572fef3de51b12e64b36460bd3a27dc660c164fc705417339cab21f9e1f9be" + "0f3da926df459c5ba58b701d306e67a", + "0400f45e18834d1933a2a26e95467b6db85d8c3da372e607907798745cd9847bb8f8b51f" + "996c7293b51550144f227933ba26722685005d8b108eb3591b164745d116c80afdd48701" + "87061c75af9b0c3e87dc8262586af14f4d6b1504d274c07c8e89247196d8ce8166", + "047a494645b99a3469369b72cc918708ebf453957b49ac4e209f2edd7a4861d014543754" + "e37e1d1a0f477951a0ac2b5826a470a", + "09de9e0147e1a268f80836d7db43779ce12e7947caa851d109273ba7e7dc7fc52c601f5b" + "f69cffd5adf0695cd7db8de2a64781f", + "0561aa76e1e9f2c1d4aaf6e2da143f67166f09199e1705b631d650528e94d643768cd611" + "467284a9f543e50520e3e738e5d56b9"}, + {NID_sect409r1, NID_sha512, + "c90bf11d04a708e64b6f94d4cca64b92463eae878c377b188c82c1c5f05a038be20eca2e" + "18034d46f00d9a6fc73c4084981748ee9d2915d87aee4e2321f4f9e11c176f01281913e3" + "24700d9cb474b7134fcc408fb4a7006acd9e63d4578ed4c2729d8e0d01b1e6174a43a024" + "ad261eb644ae98979c3cdab75af357f6dbdf5db1", + "0495be0b0a9d357f6155fac008cec90442200bb842d89292fde38b7256e4117284a60249" + "b3101b3f19f778b680c0d1d7422b84a", + "04011119cd910d4e962f54c9776c9180e7eac2f71cb9748ace4b7dfd2d2b3caef4964c7a" + "55caa9763e008de600b727068eda9b98650000b48246cfb7c86e9dff4ba77a3a53dbb1ce" + "fa168026b8929c42c3b0251fee5746897916e50f07dfe8b57baab7964447a2fea9", + "0ad4ab5ecb84118c33a4b06d1a9f5d2c4f1f3dd1cf71af596eea771f851d0371d2d72593" + "c926d7b69b39cdf72931f6bb11d10cb", + "0e959201622673d81ca16ed94e9e5be3f38bb8db48f9c09a585aa31ff39f14128d79d604" + "a5f93c80aa961c85bbf99e276937f4d", + "083099697856c780936ac01aea5e3a4d9b6e183639cd200464a5cc05232df30ff5220dce" + "4e2af714c580d561b72dc4969166a6a"}, + {NID_sect409r1, NID_sha512, + "e9b2a33906a1079280100039787377c2971c378b92e70a38ab41dc23979d6fb0c41e53a2" + "1b37632407adac6f212341cf6af8605b4978c85c9c16960e1674247f1795cd73b99ff28c" + "dca024f5078490513c77114c2f52288f5376872c331151d7b2c08f7794f2c1f9e0d849d3" + "2d73636f0aa899988ca561a76f74543b37cbf3a3", + "079626354dfc4eeeb51fcf232ee9e6b0130c9bd40f15ed45606bb7faeca8f359e0c3e18b" + "f12769254522fd4077eb24bd5454871", + "04007ad047bb38bde6ae2593e1e41c36b7efbce1e0ad08def9b23d25b7ea9aa336eaf102" + "17df16d32ada4af03dc193d44e6c77e67700d2b9466ecf321605b9f4f952812410800720" + "3ac32cfdc7cb87e1790ebf4bae497fb87011e0a81068e66a840d29583bb970e24c", + "0074548d1a3df580e45babda6096f4c78cd70945ff190d9da463fbb03a511c45d45dd1c4" + "6dc0b9521579fb506bf015f8b835680", + "09e04e9ffc2cafdefb600cf61e803eb78cb416304210165fa7c93c1bfefb02cd4a255512" + "622d524141de02c2cbd193991dcef67", + "01a7960232455f27768acd825b8ef91d4efacc38684d05a900a8512682ce19787033cd08" + "c1f2412b481b88ad02dacc0ddaa0ec2"}, + {NID_sect409r1, NID_sha512, + "672db3fb8cc8e5f831be700498d3ab3aef14b7548e8011b21351215fb6dfa09460d18f52" + "c02c8815baf396d856a429bb9afd602a10c213af34db80447f4c06ab4bd28873c88eb963" + "9b199042d4b2cb13cc364f734fd4ab7bebede7dd4da63decc0cc1f84e34d760013f66d71" + "641073f16c08078880b67230f2d6c6bfe17d206b", + "0ab42bc7d0e3c23f8bcf928e25f9f027b56f270398a1d37bea0ee5426b944a9c9ba6d0d7" + "796899543feedb470f70b2ab148234f", + "0401415fe81100f208ec8afd5e882e5773a0c1d46e44627732900c7e1722cd77b3ae2443" + "8a8463bf571fd6bb422d7c583439c07cff019c3ef3688ed397640e873dcb20cee9755437" + "d0023646d05612e8c360717a2e80e80f2b85860d71f9876f3a68548da7099f601d", + "08b44ec25214602de46046b2c94a45f64e9d0903f6148dfedb76a80b8e6314e87bf7dce8" + "e73b14bb274a88fa39136a00537779b", + "00ec4c5bc88a959a1234413026700bf5d4287a0263fe75daa16693bf74cb5071a64eb187" + "78da0a31210347aaa33130602f6b597", + "0b6c29b9177e89880f3eee3aff204b866020b3bf77d7c31204af383d9770804660711a85" + "79a3f1ffe325f225fc7e7894ecc601f"}, + {NID_sect409r1, NID_sha512, + "d7fd06b89226cfd66671ce5b4b656228c52d986afa7f6f30161680eb0c9cca177992a8a8" + "c40167a64165c518c55f678702125709361b536bd928567c97737bd750d0e2e6e0c00296" + "a6ca565f7c05cc8c54ae7a4e0c334c6a968fc18a959c18ebbd924457701316a4e999fb11" + "084520dac68dc2d69187134c40891af0355ba89b", + "07f7aa2216164ba689459ee5d5ca29e70ef75a5b2a4416ab588df1dcb9164330c0b405a9" + "d80c3acc41c19f58e24e17ecbc0fa7b", + "0401decae837c7258ea9d90314ac87c57aa6d49828787054cc068edc1955245271acae72" + "dce5c9cba422bee54f22e11810721c1ed50024cdc9e1b27e5d4bd024654df000bc9a0181" + "f7c0f4a90572c75e16b679f4362446993f9920e2244527801e8f6b1e9398bd8382", + "0463202dff25e6b9c633b60a3edcffc1a22031cff44dc1b0a5769214693ba02038fe5dcf" + "b4a48db7ec49b33068061616daf2fa9", + "08c06b72b73dc2655645892447fc0c0f8055838b194e8fad99fc6bd50774e1ed08313eba" + "4141018af33af95a3faa20b69bcc0bb", + "0958f104326df6008135bfbaf5c2980cba2833af1b4f04b5918bb51ab0a0df637d6a4af9" + "02a5e07db3022c134c72315f25972c2"}, + {NID_sect409r1, NID_sha512, + "83b7e9d3ec638fef51d2885fff5490c94e2509c126608f82660e5fc523032f3e85d69d9b" + "76af145f6bd916dda35775abbb6d1902bf38880f8b9259822055c5b1bc726c51029972cf" + "7474cf2a812f3251aa71813476bff55598d079f075a40c6c41498bd865ce960c518bef75" + "a873b9d010965f342dc4b35ef5c5972efe6fdd18", + "021d84f070c6823a70f1a74225a472118c93ce9dc509aa6064051ca4574939dcfa96be86" + "2069424bdf1a23f62f2868326422e64", + "0400f568f018b0dc4400bca3e9e4b0e5bd5245f15dc7acbcf4360b0be2ea5abbb87a3cd7" + "6aa653d32858438051cbefbcc4feee6f6b01fdf1e1bd7a2d3825df14f8bf8d5de8250956" + "63c3014f2eeedb9bed3c3416d56f805b623f40b847090d6b4b3bd5abc98ea55e48", + "03344dc1cd950a9c3d039b6fb6af8c5745395d2a3343d86dc6670580e331d59f6c003436" + "7a6df52423a625d70292893961ceddc", + "0fb010ba41d651fcc854762fa1437262eadfcabb95b9502a40b50f20cb34fa19ec570dad" + "2e0521809ecdb2bff3f4e7055c02bec", + "05a9c2dc0c1f946ce33f2f434c156c236b09098365a7f31e238b4685e7cd8c86a0b2455e" + "5c83907167c1324bbb37e66e0b2768d"}, + {NID_sect409r1, NID_sha512, + "c62c7bcc860f0e175128e1127dacf935ce62ae794cc4a0ce7966bceb023ac0498641d728" + "1fbc86f9ef470bbc77f608f83f8d0dd6299cf08f2cdacc7a9642e4246df131820220e5c0" + "5d0dbfceda7f16b86add4793e9b6244d96b5c07cfa23574ceb43e8e8b5483192a92b301a" + "a3b37702b8f94f0129d8af1617896b34990c9b02", + "0b6645344d17528968c719091b6e2072388881dc10bdb4c7fbf41906cadf3699b30f9c1d" + "bfb4796d009480664e6276c0359e5db", + "0400b164b075b80fc8b8ec785d5c2ef84d49f2f4d276546c9cf2e17ea4d367828e9aaab9" + "85c5cd0882204e293dba0359d47d9bdc0500a0c61f181d5d06ff20d0c41cf6d6cf7fea86" + "0075cdcbbab2efa0950e2276dafd4258a39c0fe4c45f3c04f76efa7d41392b4d34", + "0c497c621c5cd230fb1e4a4cb3af1cc9d8edf4af5c4af7f15c4ad0a8835b54de52d83bdb" + "3433808a67628912a85c5d00aa222c9", + "00b22e5773aca4d97d2da846c3947bf9cf2474101a6f0d39d31629a6aa2a4c3a77076a67" + "1e37aeb4cee0a94e82e914c8c553e04", + "06ccd79ab93e344e6f112c1e4a39e8505a2aaf5cf85595cadc6ddd1afb0b1583d9334cf1" + "c48f26e5baa38e05b6b52f9f12c141f"}, + {NID_sect409r1, NID_sha512, + "b5bf38fd9e822925254418475a1ce762a94e336f12b156b1625a4574fee11ee472d537ef" + "94b4a4b1c0a73b0140d0b818cd06636653e6c07f0f100118242a7703756f1cb1119b3477" + "c4ced99cf45e07e83b7f2749c1a5f8d8c9272d221fe17f7c6a5fb0f8a16af46f232ce406" + "aaf565c6b2766a2f6528c82e74fa1c0a7fcfd49e", + "0f8c2f770cf5f8e1f900e996ecdcd84fcff5cd959777fd005d721a419123221a3237e398" + "34b270d37752470deaa6cea023c5058", + "0401f861984fa06f15b801216a1c33672cff43740f0f736b4f4abed5656a1bee33a2aec4" + "31680942f2b0b0dce9a9196b49263fe183018633f4e057bb6d70a434f919b9ce4b7d9e61" + "fbf46c1d9638100d77881755fe9829a69d696d555b1a26e25ac1a1c27b40f909a2", + "0bdd99022dd964306955c57b226aef036527eca481622618fa7395f53e60aa95a275f1f2" + "d6e7354d8b55d3e83c85819e818199d", + "02f1330f41a86c09205004215c24f42fe582da189906fb23fbcc52136fcb4970a33b8961" + "13eeabcec8151cf3b150eaf1ec2dd88", + "0439507edbd36ebe4fa5df34d220c1441e1a4175c9b0373fc85669facebb5bda7a4b415c" + "269a7add207b461525c6cc94b7f7b22"}, + {NID_sect409r1, NID_sha512, + "6d3474770933ec01b76be789304b6fda423b12a0ae8c87a5ea8d7ee9f71300f39440e1c7" + "f5aa4b47c1a8628cfc3a490b15ef292a741344f40a8fcdd02cf3863bf3e32d53031f5037" + "03deab17fc52b3d4032f4e237dcc27231b85d3fd60b49ed7ee40c3344948d87c3f47564d" + "20a11d50e4e520bd16c8701694fc70901a5da625", + "0144adae951fe897d5812ee4a16c0be4c86c5e57e615c398f5768a1223a9be20fa82cecc" + "f8a16a31432bbfd17e594a4cd8a6a07", + "0400bce072255f7cbaf565f82db122e9c582ffcfbefadab6d79680b2506792028b200ca7" + "732a98322c290916c66c8a8ef77df6a2e501b4b6f65e678223bdbe5f8ecb68573ae3d7f1" + "11dac37d4fe3c0eb768c461187fc5859b13452381fe676257aa445bc7f38b4919d", + "0128c12479b7f0630374880b214aa26e4e8626deca57148a6c6a0e37a97e89da8acbadbb" + "fe7db28a0c5bd17303e1342af711f25", + "0a95124ec95e35747fb568e6659ff31867a4cb7c00985b36584201d1bac0775653e0a8b5" + "4cd9a9067ab3de434bc2cdf29ae287b", + "0257e5410a6f0bd94fb3b5b10500fb45b501a3734f0c718035a9a1516d2f88e10d1e38b7" + "0c791028e262e0c3128cb84e6064ea3"}, + {NID_sect409r1, NID_sha512, + "92ba7aaf71f625f7a2e024058dc8739da3567c306da4a812ed9e1542b7d1e982c1608216" + "6a59720203f4524c3bd463a662c26a82ec7b4376545206e650eed0d3dd7909dfe3810981" + "393070d15c45dc4a75a8c5bdeba533cad1ec34fd20466a61e4cde3b25af9a80a9a54afdd" + "7de1cf2a74ba32d4ea0082a037775413c61a8d1f", + "0a51f065fb32c55bf4ff6f18ba9d488d35d9f8da593adb0ab1632533284e0adc43ccdbda" + "9d9507b9862ac63b5ae7b0f78b479bb", + "040080e2f7ef17a11ae66172cf1c18eab12aca4c2ae06b8106aa1066677a93538e3dca06" + "26e836249eb884a382c3b726736565c3c301e98d37a17ea736ae58eab093fa7dce3f1079" + "1ee9ef5ec00bfb27bf3c705dd633badc94642c385dcc276f9b1fd5e01dd76ce944", + "0d5cf7b3d28459db8dd69c314f6464f770c31f239a12656368c84c64693f23733661081d" + "20dca9bec9c9659a8124b57a71ffd55", + "072ba8c1b4bfeca62e96a5649e851e9a311d7685603a11c1c299f5ed8605adaf27cae656" + "cd31335a7ae363cbae5dc7a39512c1b", + "01bb9819d25a211548461de4ff973ffbf475230baa161558d9cb7ee6f2e682dad21a465f" + "c2ae058121224f8680296d30e3692cc"}, + {NID_sect409r1, NID_sha512, + "b3fb9e48c333201324755a81f3ae5d4f0e2ae7cd24238fcc66d858e3aeb1ee03328660d6" + "399676eb1b7d8285ba571e214d935bb45516fccfab57b8eb4c3d5f1d7357c768eb7b5e7b" + "5710f599614bd4e92706eaba31f8a5e7e57af7ed13066af50b4540ccdc126b677789920c" + "ef8543907f0ba9dc92aae343d3425bd784ef483d", + "095351c0bc07acfabe6477fe85f97eab520dc96bdd58b44b036328ceadaa56a1904d2217" + "c5fd25155ff2aaf9005a3e2687fec81", + "0401c1311230cfdf5824323448c68ead5e5885ba540a21ff90b951f85d84d78e26da035b" + "fd99341b5901e1ebb18648a8dbb996fc9d0017a037929496e560cd1c936d9eb15f79fbff" + "737201dd880a69dfec31209faf5bd2846e3e664c668ad3d6500c5ed620f1bcc970", + "02234bafb54cad0d0d51f4b8508dbc8d014c303d90d21bc3f749ed7acc42f0335c5ab6d6" + "0002d3bb57cf07018e9c13b92c0a39f", + "04d0609f06320d69870a3e66f19cd46a2e0e3e13fb8b7785163a7b567bf2c0f437b4e30c" + "c67da288a3b34ce3110f6d87affe0f5", + "06c46d0248f7c309c1e5b80ac4b1459bf897e42f8f037031f5bbce0fde50af50cfdc4f60" + "d5ad3d1af152298cfe77dcab287874d"}, + {NID_sect409r1, NID_sha512, + "9ec5f7d65082264b8a50be772c44277a73ed19199eb275fe5976f9799d8629fcb4a59a8d" + "55074cd2eb2a0e02062d3f7cdeb05e62931a24fd1aaf14c257944d1b42eebd52726d6fe2" + "81211b39038e52baae077ea4df89675d860d6ba5a0f998d049614201b872e134367acc90" + "066ac602e478ac3e43c3ddf4b0ca0aac1a68591a", + "050245c1682344fef23bd549ac8d1e8e44b2840c43eec1cecd33daa4e9ef6b53f496104d" + "7432e14248682cfd6f5b4853b65adac", + "0400d2f8fe524b2108e375c9603598b555d6c4c7724c7d11039178037b3a4dc82b66c3ae" + "ffcccd89cc34dc2b2f6695892323bdd80501f98df95fc1837ec4d5239cf55e97d6b489b0" + "a8d7bf12c1ccf95f689ad23e46dcf20dbb531f5179e754f0c29c8757a1dc67493b", + "0c683f98253406c6587d87c57991fe5caa3f43b451875859feeb81176b732f1c1eed0ee4" + "4d1905d41922878617e03dac53562a7", + "00cdc9bc7d670a1b6794fd7da82d2ad1a0e92b82ae32656ddec3aca4de75f407f20fe782" + "daa0004317fa3f12cefc48518298d5d", + "03ee7c75810c2c05946b53e2f24feaa697af35174402c069b9fb03d89d73964c997eca4a" + "5d6f9482cb23c8ce337a374ffc3e186"}, + {NID_sect409r1, NID_sha512, + "61d657bf472676301503f6784b7286fb39fb4186bb88abf1edacb4a2693d0a1e2b77bbf2" + "758c84f2cbfd1753e20841b1cd4b456400d53f4d686e666943f9b6ffcdb77f510be97536" + "e9698fc84ae347d483bc8984548d1cf86b9b40d360f9c0dc5bd1c55868e26fce1460ba94" + "ef5e94eb63c9f0776a0f446c0cfd4106d9f36352", + "08d3b0277f0e9fe54581d3a9499ccd7f015c08339591326859af969d2a26284e3b3beac4" + "a0b74d324ce5cb5f38c7995e4e3a41f", + "0400ae18564ac04b54769e17df84aa54903df58decb870591dad73dbd712693d901f3f9a" + "d43a71f23b77705de2b4ec1c3bc616356f019810f92e80560979ac6e72bee505dcdef15b" + "4146185d2f8f5a955a4555523d982c34bbfc1326024410dbad3349e4c4e01c242d", + "0e52dea77fc59298cb06fb1401d11c662a04500f0470965c4cfaded13b339bde52f4fa04" + "c76a955faac16784f443b1ad9dfa0bc", + "00c917d487d2aae1651d76147de2a706a01c8b3d223afde7d20c9dd77cc2329bd3e0e4fc" + "01255b7c4ed1baae7d26667bc2e9ec6", + "0058c766fd514a405de91a4b9e99fc0b0146d954dc2e2decc2f3f066d0fe192832ad37a9" + "40949ca4e9abae0602248b3b56100ce"}, + {NID_sect571r1, NID_sha224, + "8e14f713a2c427b1f79491033994f76acbead614d12e73ac6f3f518f2052a10c1273aabe" + "628ab38e0d3d5f8ff254802e9f44a51367bf80325b6fc39d907a37f731372864747b1074" + "9ea5cb3d3a83da39c21a7b02885a8c1770e4397cedc958e4baa21d5007569dc9dd1e45d2" + "181709d900a394454090badbd0cd9c2cd2369aad", + "0f42afce7f7b3d45f3f925ab29fc3882a89c9f585177887584703cf8bd8fc572e677adfa" + "55b402446fe1e90dc855358d92c3267c35be9674b40c2ad5ce8dbe6a533c44b0ad8d2b2", + "04063dbcfc2d9171a7cc1835c1f56ecadcb59aa6d5852fde264ab25603f06817a20f2787" + "446445be8b2ba05c70fa25d9b9e34d5374febffeb536facd3da52d43d69fa7af4d4792c7" + "9207686e0629de47916af19f9013f65fa3b5f9d196916cab2f765aff31adb5a959515e83" + "fe3e00e91843c532041ba15f047e978bf2fc69627bb5cd7f3ecd74cdf1a8d623c1efd23f" + "c0", + "3fae665eb7a54f51c522ad5721d9e2648f13f3d84e3d64c8148d59c662872b5cb7d911c2" + "7bf45884f2ef717d72bd0569d9901f2308d9a68d128c042effea148cc963a8252f1426e", + "1df705ef13ce900ed61babed02e121dacd55a881ae32bd4f834fa8e362d059223b29ff3d" + "b835fa2b2db8fdb98c21dda5ef744cf24d0a798f501afa3a720a238ebd4fe3976a179b8", + "1b1e98db422fd48f1dfa049f38865f8bf9ec5618fdbfb50f21cc838051a1493e4b1e4f9e" + "a81156481e5fd84124fbab740421173862c63920e3a833aebf0762e7b5b39a1591d27c8"}, + {NID_sect571r1, NID_sha224, + "38b60d27ff08fb191811036dbfd5b39e1cc3427ff70efb67c851e9cb407f9fac6f348d28" + "9df98d055eec73299fcac068bd0fd9ffa3c5d244659e4f714a58d79f6727f323a7ee2636" + "9000e90e34e106f99f5ae2ae1b64ee89e5a1d304ef20c071a7773e9b977ed3d49f467d30" + "0a881c8371041394910f9c366942449045568f01", + "2f36613043cbf53ad36e2b38998bb867503359ae082d07d040e5a10a43e06ba9c91e7c73" + "308e41e2391b65e634f83b162cbdf4e7a44ad818fb93a978af00f06be06731d8c5886c6", + "0400fe1afd356670e1dc6bc195f9513f1dc6b03017416b5252c7b56153da538422e557d9" + "918298ba6c78283efa0288c0ac61298846a6f8adf74df21747cbe7c18a2b825a330e843c" + "d8018b7659f0a7e8e7ae5d636ea4d1d5f3a1f846d4bf3dfbd96c6ae874354db6faedf02f" + "75c4d1d8bd6a3b61e70ce58e38ea5de8cc16828f87a0667614f6640a3023b7f4aa93fba5" + "77", + "3fe351ff6ddf50752f7dfd8e5a72c9faad77dbea303fd97dc939eaad3aa7fed466fc8939" + "a7a6bb7abee63455284a5338e59dc067236dd699bdeeae1424d993a9c76fb2fe9595423", + "04a0e13a9fde9f2fef417199f8584d0f60b2f04aa6b7524cd2a2826d63043b2188ca977c" + "9567fc1ff292ed480dabc01589db8734c15aadb4ff54a552a7d9e66829fec1dc919dae6", + "01bc7d2c4ca9300d7a3001755ef25231d2852a7b9a3e91baf21f2a2bd2ff305be8a9de1d" + "1bcd7bd9eac4ce12ecf8a91c0a409726085382fb8d2428adf1b42b37b50c9e8e0535d7e"}, + {NID_sect571r1, NID_sha224, + "21709eeaf9e1953822294a478dfacfb205fc25f447a73a76a32601c00784cbf2f9ebd41c" + "22721d70cdb3842dcaff4a4f208d41c0816990e421cc4b8538ac2f347cdd0aa2a39f1aa2" + "6ace8cb6a606b23f6244894d4594a0f6a5b8f6a695fd66e1a41e2eb6a377017177fec56b" + "b58c837e311cd04c5b50575faee32606b9636ec1", + "2e74948c46930cbcd9dbe2325539c7dfdd910f309fd610e6599d425aad9ae230a8d46819" + "70a14f2a71fd08030d0a40ff40dade7de1b06a80441bbf7e2fcf1809cff39c7ef88bf9f", + "0401b75f2d281592c288fe6d5479a4e21ef626471819850cbbdf814593bae7e6ce2a35a9" + "78aea354649d979f161543fd4c12dae0efcdc2d95e82ae5874b9c04a2143535097b8a17c" + "6800c7160c2efa3aea1d18afc1a00b47209dfc750a5317ddebff04bc4d181f238d339a76" + "90c24e55be2cb0c01719d34ec986a07727f2e412aa72434efef4d64ecf7c16e2e75ebd7a" + "d8", + "0d3ae3d8e5e01ad838a7cc9a4d9b3e41eaf9894aed1d1ba597458391d4a2ae38c5d6efdb" + "4d91761a415812d77fd9ceaebbf1ad49c282e693d71d89f0e2d1bbd94698a47f1f30890", + "1e2e9e2633885c85f70208de30ae9b7f72950e2de980607f6d0e73fc1fb2a4a8afc63882" + "06c11b081540bb528a94e5386ce77a2d5c7830fca19223d57c1efe7ac488e69ae07e660", + "1250d1b920324919ef81865513db461409f6f8ad82f658dbfccfae4425906da306ba10ca" + "c84cf5379b6c1d8b252f3c6f86439413c617deadfad38a234bf2b0050fdabf7719bcc9e"}, + {NID_sect571r1, NID_sha224, + "3a131fabf3dc97334f212fce41c44300440d16de1d6060450875f7276f53c026e2a51168" + "1b5a8d75fc0d578546339542833145f7ee13c708df33e584445a75a5538829286480d339" + "be7c777c03c998a6d3f037b25799ab2d541021502a0b02a9b9c337a8b176c4f30e5b1864" + "85a6103b1d1563ad4ae73ca806a5e4daa92e9100", + "1b5fab1d36f6f6d559f65d8b01edba610620fc3a38307b1fb1c5bd63e7ffbd4a9098cb8b" + "df50975a873f5d047ee2b627b090897a7fb5f56d3f4a0f3528179e7c969926fc0d3b0e5", + "0405eb8c5a2bfc86aa9a82830d665296f74aeffa9c5b38750d0ff51d01c2dd0fb6f2209f" + "8ba89ff07297ab9b1b06168757f48cb6eee618a7b44f1b3902187c33208288f35a066659" + "2005334c203f4ee44fdfd5f99686b18696b3433f203dd148324dcfaa03a0a250cf606486" + "ef11ebcc1ed1839a76ad70909d835a4b30a014104a6ecbb284b33f50bfec33d8b5ede85a" + "c5", + "243889e7ad32076a3ea436356eb572c1b4ae402d0218d3ee43927eca0b4fc21a19926eea" + "35c37f09de4766f54e6079c34fb3c174afb953be1aac46d675bd300e717dfc2d0c3fae7", + "1d87b52dde9f502f02a502e7a331ca6dfc6204922fb94886efbe3013446d08240f6dba12" + "10a76eaf804562aa92a14d220d59b6310d6caea0274a5e1e8aa3c6b57f239191a71fe3d", + "2a5342df6908841b719f80ff905cee0ec3fd8be46396922c3f2f142393714b97128e0839" + "07a3a2343f0cf9aac73313279ed29eb44017e2a1cdd0fc86e4b7c536e9f7eb1bbd192a7"}, + {NID_sect571r1, NID_sha224, + "679d85a762f2574b0b31b516270b7d33d5e166c83e91a0f48e0f3db20b52f42f9e6ee964" + "8cf58267ffe3b713723cf3df52b5fab5c14db1e7189f7cb7170bc6ec7cc71946745e152b" + "39180f828688a5b6c0b2957ab94283b90052a3c6e36843c391aa8810f9253b639a8d5a69" + "aec10070603ad7a99dcedb544858d057a1d66b89", + "383e70c71b431eedd4574f65d01fb0304f7744d668408c847f7899eae44770a7f3243109" + "740f177d7146a27748886b7b77ecf3792b512e8d8e37c3bf4ecef2b1253df7066498f01", + "040769dd91fad550980225877d98f7c86963c88be141f91f7a3f1607e0cc6dab767aaa6c" + "eabaf46b65a7c80b6a494b0dac1da5d2fc8c5b07ef7085ed1bbdf4273da3665a6517ea1e" + "5a0282fb94b4726472248f01ee43607f7ef969446313e849998fbf0058c8ad5e24457006" + "b84fc0460b74d86ca281caa174e69fbb68673e1d28ccba17eae045eabc1839870831246a" + "14", + "336909099a1540e6f69172d55e0c88a1afa99808005bf09cc803ae1e4e4fbeac2f77f984" + "bddb482f1f13e4430e25e36962b1a4cae00f1fcd7f2c7a17372c91673d8286f9829bbdc", + "290055d578012a5b7d88fe2f70581a0fff976756b4581875cf5db07e01f09c0bdf6ab70f" + "fb5839567583d53c68e31a27c3fde12bd4f1e1315af2f742746277b1fb1349141ed3043", + "1480c63c8b90c7b51e092597fd8391a237b07f0ff7dbf615e6bdddd5aa880db29c9b9add" + "5bde7e0e81d9a37f852c26f21d750cd2f95520d16da7404c2c3feee1489aff09f298d7f"}, + {NID_sect571r1, NID_sha224, + "236152ad31ce2ffc0dead3c142cf6c770672cd2e75af4a82fda1a72e1c775cec9b481c6f" + "3e411644df7e7ee901c501405620af4b6e9667dfd46091788daa95ef2c6c9f5c240c06b1" + "5cb0df51f5f058d8a7934bd7845f007a35f99fa97200b20f3b5b14fbf1e372507f3b2f37" + "7e8d07d30fd3e222f398f26d8f428e320327f901", + "02261d4ead21f02fab19bbb0da8c272286704c8f0c6842ba47ded121e5cddef79fb34e6b" + "9694f725ca502949faecfb21e3cc062a2b4c654bd542d9a1fe8d97bdd0905c510aa0999", + "0403ef03980ea9b754b655948da63469fe526ff0ba2c0f572981d02f5693bff620b55b8e" + "9e9f9d553a78a0138072369775c7976f028631e65887cbed62fb447c9f41da86022f4b41" + "ef04446eed90f2716a7aedefa1385db9f5f803434517fcd80571adc9b7f086c9787b7630" + "6380a375668b05fbed30922746fecc0cc16f189dddab676516ed1fe4d02855a34a909753" + "89", + "0b309f6c53dee8a8956358df45e72126ec76266d38babff185d4db1d449c8fa9baa4b065" + "1af5f5b0aa70dee3dd55623060097e2f94ed12636961a7c0744b38f2f137bca239f974b", + "2b42395206ae79bd9df1c729856101ec3c4a719616701f836c9d69b542b59ce973d91951" + "853f89a0717abd4b929bc69e59cc379c941349dfb4f98d49f9dff572c614242fd370e56", + "1ecad482a8eadec6800a9d876a382125eafaa7bbd950fe5f0588126764126eb1b3844240" + "15c52ed6a335668506f25124aa78d98ec5739fe282af0c143c07da0fca53b9733e159b8"}, + {NID_sect571r1, NID_sha224, + "ba3f02c4847fae035d747db246fe4e82fb9224ff9cf568a6ae548f5dc2befb2079541d2c" + "f9aaa6b18c281a05e7ddfcdbcefb25f41dd91cb3092b3343e16985e91c912215cd99ae4a" + "099baf628e33a7b277e3c36a13aaef85418fca99f64d73b789f23ecbb76c3095ade0a5f7" + "f34836a98c5be933b44a94a2eaa3f99b1d8e7937", + "316c78f289e1860bb623082be9d9238b88e38c5e978a868bb90f776235bdff4eff591877" + "b7f350cf14c40356922b2b6aa51d64990360b2b0e44d6941b5dd9492b4f4e1f42ca163a", + "0406f4137a2c63b6b79138027464135021b034f97bcb2493943df6be844f1657a97632ac" + "80541a3b43ccc828789517efdd9f86ba171c1262a07a6b337bdb0c8d5f018302a8046a1a" + "8c0425cf553554d18f6cc97f0caca2a7eebbf266d57030014273f701562d5b1444240b9d" + "22060ac9bebb37deec393cebdad21ec7f13fe5c7f1752b4261cc2feddeb737284a6eec36" + "63", + "1e0321344bf364f1ede39a49c8051f36875ad78e4b080ece9088111739041b121f3f334c" + "6e923777fd716a52be669d6e45f381da11262fb4d09ad66dea74ca115838e19fe94b7f9", + "04f24ec978c52ffc7675a09334a895e044eb8eaf04d26c094d7607b77ac4168a02a972f5" + "77880a0d0c73f218815e3a7a70c91c50734c08d374a15fb42fd13367dbbe08fe9c2d4b5", + "060740270df0e1fdfb8e829c9601b9901223b19d07e9d7d422b9bade88a50fd6d4ec9684" + "2afc45900a0107ce85ea6d083d66ae202dba3a32e50c7c3af951cac7acdc6f4c406740b"}, + {NID_sect571r1, NID_sha224, + "6d0372b40559e075af56af853cbe18ba2d471b0fc8917764abcc69102b03d5bbe1fc1245" + "8215be66409c26c89f67c72a8933677a07f88993af6918acb074fa915fe883b24bc3d191" + "ff1b08852f07eda98977e70eba072d8bf189cd545230f59559ac05f1fa3f4e65886d0bc2" + "74a6e02e2399812b2bf91abae81e21279c5de996", + "2c1bc13f8320d97a82f3d9354e195481902214e16a4fd89332a0499208e91d50e5cabeb4" + "927ba030cb42f5bc53b10f500fa646a8c88508cb0d63ebfce5c4bd574c527d686c735ce", + "0402210791ca48aafed20de84ef9896a9c7584081f850b75884908c7b3dccc94e221401a" + "6ffd982f292a9d5f9c1d066ed493da948ac7e93977dabd7b820bfc0fd21cd8d99c072bb6" + "9c033574c6ce7da749ceb480b4e00bb1a58203bbbca5c16923992cc9767aba5483e4d46e" + "d39e71000a1fe920a4c1c211a14e63ace03635a2d77e72808e0664334890b819b3caff64" + "a3", + "2e3db2d82c4b9de2bc0dd0a93c1c5b385f75ad03d0da527a034da2876b42e43cd88dc648" + "33efef54af902d85c568bb8e71684bb16b28c32d80bb3e9911cb1b74be6ec520d99b381", + "065f4715e87ca3541ea695878ed5ccb7d2ea6eed5d6fc5ec29f9aa8deb4001cc7c06185d" + "6ab2dde4347344d44f8300a1e92513af4690d713762336d2e6a94d3324a224f06eeadeb", + "20104e0767530ce2f4351af4977b52339f34d13e458de0482bcd58ab38ee041c9adc7b05" + "650260d919b2648e2f820407fd60a8d6b4b991b86eaf29c2c4d12d3b0b45cac2ab22c5a"}, + {NID_sect571r1, NID_sha224, + "bbfe66c82bc060bd14fd0e40769d9b3a026eb447550dd9f118c30d8448f725f8366edef0" + "42447962ba7f7f833b9e9094d0ff600714697e632626e7d12a592e040bdcee166dcda939" + "52323191021bd12f3b1647d0f25a41739994659dcbb19333ca30f46f539c6f0a5c354cda" + "8969a1eda572a309950c84c7607eb8ac20163912", + "13bd80eafa67663e75d7ae139bf285d2b9f1e03d8e32153c73e26d06e86d7acad22bde9f" + "121a3f1ea674dcc1fe67bc7f5398d5e92555056bc046a02b0ba86c2a0dfe32e91add5b6", + "0404c01fef7f2fd8ee61726af1a2d046c7ac67716403b99e021082e96d733368c6c64d04" + "6986fb01a6b55cc930517762387eb2fa4a8eda23c700d88065bced8595188760170881a3" + "290189bfdc8e7a710522ab5416182c9579ca255c5009e6ee6604ab033c1388639c0f7aad" + "84642290954db9f4f7fbffd17481eabed38151160457d68ebdfd8695b5035e4e6e06532c" + "0d", + "3c5868345c5314aad5ed3a74488a85b2f049396022cdd1de855a0b33c2877f72e871805a" + "f3ed8fd7e7a392c4ff63acac6a6f0c431ce7af680984e8c81d0350abe491a01f0f9268f", + "0c7e96b9e9a5935ccd51b901aadab6e01ebde44f57e6f0b84e7b58ab4f62ffc0f3f3f980" + "665c581ee3de233ee49d11599529348f1ad3d362837c041cf98192bb324f577e973e1c7", + "2226922271fe8307bf597742618ea9c1c271c22c25b49aaa7c9292a81ecce2a55250415e" + "a2ec8ffec54bf0508e64426cb9cd7177265fecc40e056e96cab661485e789f0c435b72b"}, + {NID_sect571r1, NID_sha224, + "b35e9bf686717ce3b16a59963a32a2116130453b161a4e7ceb27b755856add836d779696" + "edcaee3b5c986523891c8836109d431e55c23afbca022437ad19e6777efabb6da3bba1f5" + "f44f905395b4cc7c9210590fd38da621582d059598e5e4569e904358e0dfc0dbfda4ce75" + "538aa97480912852bccd433a9b96c9c66e9597d2", + "30834b0a4284097cdda2ada6947c6c281f7290a49b56becefea1e2788ea3ef78fb968076" + "33c47c25138341768b241164ce0d42f7301728b928be2c047f2eb60fc2f844ab77306d2", + "04003a21f0d8e01a64b235cc455c291e3fec8de12682f05544de207d910c7c24c4cd56f3" + "354500d994380ebaa0b49a7604c6233a9aa24934c550c0e609f65fd4073cd6c1ee4170d7" + "7e067c83513e4acbdeb8343b3add40261edbf7c8fe0af7417264830edabfc40200283b92" + "484630741378b997c3f8bed7285decc6ef8633aa804b3846d3b4517e5ad836dbb1df4758" + "18", + "0031afb24fbc52b01480754837cd84a5165d5f2ad1a1d572b92ab546c049413806f0f523" + "9a77c751af4d57a84786ed1c11bc76123a82e7db3c0495b2fdc5fb9c8720eb7afb640c1", + "07a222cddfaea617f1190a0bd88af4d1983d2543dfba25c5036fe24529bbe2e382de89dc" + "1e36c1f6df59c8291d1c4277198084902e5619b64128c265bcf03b7d8cd6b663c225f11", + "1ca84c146ebbd16300b813621d503d8c754e4b11446d5ee31cbebc71f4b85ed09c5c94bb" + "dfc3570e8882ef790393234c5ee9e52f7d5b74ff4171d930af817eafc40ef203a1ce613"}, + {NID_sect571r1, NID_sha224, + "57b5ae7e95c638b258d1e09b3fcb4341e203f5706862e199b103c8fdac72cbc5155e5cf8" + "b300a0b3fb0ce1f897c45f7aefcc528182f73dd450cd84d5fe9eadff3f704dc2a01b4e84" + "7c22df430efd1c66b0199f3e5b59348af5386962a5ef25204fd230b54d58d7fae801c086" + "f8f405d3d0aa7a9a9da15c22b868817cd897d853", + "0c81a79ced1eaaafc31b69a40d9939f4e484d625db6364a8e589b6b4d336d458b44287ea" + "6c6aa7661113fc07806b147ff98216fa0c08708dc9d651821b922741deda522b4e436ad", + "04025f9b767b8796466c1cc8a1fe6286d591c04a0d115133fc7910640032b898a5c86547" + "f57794e5aac0148996151d3ecbe0d5939dbff5722679ecff378e3f21bbf1354b1eb294d1" + "a30074c2b91ef3472e60426d2fe182ccc678aa0abb8dda15a428e4f6f1ac401b015b2b7d" + "83535a0a92770cff7666659e1cd33941bea1168cffde82db0ea83668c2d387e6f4bdf28c" + "c5", + "27b407a29553203b829a87eb25d6d140e41184634ae1c64c6ec38e9012d0b06a1f4ad987" + "7d7ac4236a22145095990233e6c102a0052ba18cf6e47e289cce4f2ca21514d8868bd68", + "02416e11fe2f8e4738ecff1710dc827f4e03c8e7f04a4f52e755f0c1676abbd122eb9751" + "ec1fdf6c7ba04b4e29f8dee52bff7e9e726e28cb3de6f9abf2dbf58c0519ccc7d70f076", + "0b96f107a26097a468c1d410bf90e223cd72c5ec98d4ee4ec2e32259d7670d7e7689e62d" + "36549086139f6111884530e20f908d7be1edab75180c81a70ece341f7eda6e4a43a5ad3"}, + {NID_sect571r1, NID_sha224, + "daebfef74b452f039c999ba0528be3bd9e16deb5f46f6eae87b63db8b89952c949fd7db0" + "8311871eb2596865eed107aa065f030226ea675ee3256c31a3f85ddf4c21760582144e07" + "af208f33c5f47cc026db5403186a65a47940691ea2d74ffb1245676260ef5717dd879d8b" + "5b72d96f87fef5f762d4fd17454cb5ed83d8a11f", + "2f24670c0f77d2ca0266a743023d2c7413d56d0b5ec77b454ac59087efc4ea4d46179e10" + "278e4ba416ffd8c3f9786ed202faf8251c0ef5a9ea5371fbb35b7afe3d15a9cb4bad975", + "0402da72b8ae64c5ee717c33758ec26153a342936f9d41dcbb136590e1303b0e220ee84c" + "8a06b83d4d9fc924b8808de94dbd780cc8243bc4448efd27dfaa1572aae6abe574be6649" + "3903b3a95d962c48a81c48713247801e4ee630ec7956c9989023ba16f02f5bd1ef2edcdd" + "1c8d314be933225c64b7f8a80542b209b944e1f3fab95795ffa134e7e28e82307dc62c29" + "62", + "2bbb9abd2732994011c8d294c5342e8b1f7f3c1f5718187e9f75832604b43bf75abad5dd" + "c85e8d92cdc42656cc9f3349afad3f9022ccbb4937d9ffa9cf48314b604e82bda13475e", + "3986059f2e096a3675215698e23b53f471c578891f6d721a34a0d231d16348d5bf9853c7" + "9c4f4aa94642ad06cb7bfd11f724800cb5477636b6fc0586fb6efb8eb9bbef62329a884", + "2beda064eb3ffa1c3b5336613704b3bc3d4ff7b0e977df16477c7e33d480d678804bbdc0" + "8088186fbc4764be398a26c13f88bdd23e844be0d7ce598bb87c1b3430da02ae96b3767"}, + {NID_sect571r1, NID_sha224, + "62af0493ae79d71b552c4647d1fb7ab2f282a91cd44aebd8ef344dfd77b521b0c0a3f72e" + "4513c8ecc0e4b84efef3df9482a07ccc1b740c571c5e69cb913740a792aa231b9dc87edf" + "b72bac188293c6c6e788cb3dff32e8f483f8f34e21ee7efec71302cc3bdbfa47908a135f" + "6ef3ff179dcef26d1a3987f7be967a6c0f799b0c", + "20985f2c6fe3ea04bdbab66a8b6167e5969c073b9d53cf3c77cebbf73f4dbf75e601620e" + "c9c3107bf3fbfc6c79f8f063409bf8fe1d14b19e323d857e23dc05157d270c7514137e4", + "040010712d50ba7752962b140cfb943d9e8dc3bfa497bfe81c42606f4da5157656fe2ba5" + "cfd33ddffa0f27fabef8e267688943514df45e642ee0454e05b49f7c00f5785777897d22" + "5b01a2c7db6595c6d4c55110210c564cf102739760e7f5a29706fcb2515d99ca00949d5b" + "4f291716d0aa1e3a47efb9632410f60e2fee1ada47171f902f632bee85da75c7f3c895c2" + "4e", + "2f26eaba6452e687af452d5e1208fa011e4c84ada92a38f0a204a254641c23ffe1c184fa" + "8bfaff047db590ab40accda408717e4f30811b75cf3a5877ef99279476ab924d92565bf", + "1280adcac1c79352635f4165f9c5c1b6e1e6e33bd74d781773f483f637462f80340f8d22" + "cb24c9db5e49ace95a676df3dde53c8721f672006382ff806410bfcdbceda50e53285e6", + "07dd52973ef30dbd480047732622fb1b695fe3cfd080264d2aa30a6ff3dab4ab362518c4" + "f3de4fae042fce78c0c8fa0e763eb187eae2ff8f2e79b3f38cc3c1aea897e1f28b71a19"}, + {NID_sect571r1, NID_sha224, + "566f17851951777ebea3f8285610cd8ee5f882a68e7a4205e6fc9e2d66d210ee2505ee73" + "d6503169f7b903012d43e7e99efa493a8e6ef926b16b9ad8f52156840ab561fc6b680120" + "a88714fd66d1d0742189bf06c155e1138ee5314707173f7352e2cea0fc26e1553643f249" + "0428718e44afd8372cbb7bf5b88234318ebf4355", + "2b3d641607b8a141f876f6d285ee46aea543880e772dadd5dd83d595b9643191d9597218" + "e1d6adb081df133304037bcd2c05c24a54e6c4cca64fb2cc4569d6882315360059496d8", + "04042f2bffe25142ac6c1af26643b0f1c317b34950a8a0f112a0cd4ea4131303674328e0" + "bed5d9bc7ffcbb9712387cf67129365b4fa8a9e785b787c170463b24f6a7962c1e003c87" + "320070962ac4d3220f367f18caa7ceaadcb82fdba45cd2c034a97aab71f7f7546c09736c" + "b080c10d9a95a5f984aa4a3ed32d22636a7b3d5ab29c86d85db59f6f17ba29eb220bb141" + "b5", + "23d7021f5376e7b11be07288a0e47b4326c026df80d7e08c9a0fff11deccdadd479dad50" + "3ef2d4fa3f0ab2aada604b57fa7e09dbf5c8d493070b5faebb27cf68ad0b78bb6f3a9aa", + "3059720e7a2dfff03789e7a514f75f2af5ed18cf1568fa2a5354dcddc9d3c7a90605e9b9" + "a3d0d6fbfebddd615cdd52845ff922873079e06c4f349f7798410ee18e0c69045193668", + "1cc40209692cf5f8ed8b82372c95033e4199d378a28b9edcba516820ba21af1bcf5c5df2" + "ef4146b91fd37dff89ec8f9962eecce5c5e285d76a5f03eaf99fa132e98cc40ad66c296"}, + {NID_sect571r1, NID_sha224, + "25155825fc4f9a1c4dd1db837008e7e2594a879052431f5bfc76d0d2565b8fa726008bef" + "aeddceef73f3c60fa2cdf6d9a70e56d27210bd013034b38861ae49640ef208d3fe294ac4" + "362f8eea44f58af3af8a9167a36b5acafb7ec95652d5885a0e08067ce1dfbb45a0c89ad1" + "acb53eb404bf88fa5c3c463a0f912b5a2522a0d9", + "1afeb5ca87c81025ddf09c2b2c5ee22ba0105c0e619b67a324467485bd839030d149fee4" + "4d8bac6f5902a1245a50c3437046b7c89a84116b2147cddc645b6d2fd24d68e8d53bf5b", + "040119c46988a79e3ae8833ef096b0a1e2886c4b114ccfe881886859abc031df2b1e7581" + "8c82be8c5abafcbc5d7b3b8344e98e3f413d737938845e6eab5aec7e507f7baf0d339a36" + "2f03190912dfb5a1a31fbbbb50784b18051489a3cc0f44c42c71d3a54886ecf40507c324" + "0395e8ced37b5253b915fdedd38f75bb26df2a0a8edba865f898a15f2d96f632f7f06388" + "64", + "1facccc127c856db1994c4d9e9c76de6bffff81a88d7aa0ca1645e250e07674fba734479" + "11c5b47a1aae815d5e96164854636d3168d0344b2d2d913127011b6434d5a5e545d3bcd", + "21da49326f39577ee9f65cee64006525de88a834365a00f4f8cfb9a01dcfd6349a3d06bf" + "95990a2c17b7e95cc0589714b7a795c7016b29bc844ae9031488ca354548976eed68415", + "3364def38a8ee3116cbd971794c859776107154234d8b198efb19655647bb9228c7c6be2" + "e703672f795ed37481e994b6764d0b7c1bbeb2bd1db90b34f460278a54bd480bf4e9adf"}, + {NID_sect571r1, NID_sha256, + "29acb0fca27e2a10d7b9e7e84a79af73e420abdb0f80dd2665696638951b52dd39ca0281" + "66b47a3b6a2eaeceb1a11c152383f0bec64e862db1c249672b3770909f775b794e0b9b28" + "a5ec8635a996d912d837a5f22471b40ec2e84701a8804127a9f1a0b3c96ff654700bad31" + "67240c2518fb5dedcc1be9f56a807083e587bc56", + "32c97639b69c7cdbf419286d0a1b406d9b1f2886521a8b979a36118d2a368aace5b02dd8" + "c515f2041e6fb9f026d1e82e789dc826a56d2ef732b1bb0f49be2b696ab5d3d5694a2de", + "0400087ff1d8a4644edebd43c2d43d49e140940d215f272676fdfb72ccf58a12021de3d6" + "68f2766848044ac404fb45cf6e18fc6700f87aa53b4fac1e35e1731814f8a9d0233e2942" + "d7029fad3638177541d8392111064837bfa77b4455c21c5f7652e3fb302f4bff4a35b74d" + "e8aff3806538ef9ac86964cff755a81cb3002b6fb241ffcae8ac9621b8e034967d650836" + "ee", + "16a06e3d25873f6dae16bb2e569720ee9c6ae7b5ba36854c321a80be8b4be502b895e1a3" + "d161b001f6cbcf53d164b5485d8a5efa0476f581f9c79b3a291025be01a435e2fc5ded3", + "347138a43f3ed1a1a26f5f11549eb8a41f64aad302b6383879886216ebb6d08a4ce270d0" + "7a5bec6018eb313430ff017c1bbf78556436d9255e97aba1481f0f16b85e7320df79d69", + "28f35e1aeae288122b043deff9ac87d39478607da60cc33d999b6add6209f452f631c6ce" + "896afd92ab871387f5ea0eae5f6d5cf532e7a6ab44dcf44acb1fd1daafaf1ad5423d8e8"}, + {NID_sect571r1, NID_sha256, + "c92d67cf6536f5046e15b02158da698bcbba4ff1e4e9e9c882cda67f817210402ef917ae" + "93682c9c3dd817b21b73c6c00b7bf92ea80ecbbef2e67f4f4379d078a2b0f297742b2bb9" + "c3fa3297a7e8079f488555bd37715eec92b4b1cbf897640ae8a1d2a0fbcee5423ab31a37" + "629f98630275e35094a896cc574be0a449bb1bc3", + "0f93672159276c5a293582b9f49607bbdb970112f6c63b2b3b5d32ad3c8240c86b1af13a" + "8dff6502c6b6a17712cfd988f8cd23a60693d64104143b3f91adb37f852e9e11a0ef110", + "04019dda59a839aa2ed28f69a62a3e3a753c6fc789fe0d8551bf59095f009d0327386e6d" + "f5437846c6803df2442e0359a367d04f117e3965397576d4287398b4b8c92ad278df4a44" + "7f04159ced60503f7cfcfcd587bb3608699f54693068101a838d575715de02fff81058d0" + "25dbdda430e176f60e423e6fcbba889914f6409ce51d51e89e4cd7bbde6d24404e5b043e" + "79", + "10dd216d4b3da2fa6a75de60f722f1f128776741cba002c055d1445581242a175318291f" + "ae313eea11fd905b20d26cec845f57a3d5bf23ae4dc93d886c0594f1cf7be4f59f3e3eb", + "128d5c00a48c7352eb980d9c80781f8abcfdc1ddae415b7ac94b4d85c3d7d4f7316e2b33" + "44ca50c6ae82938bc728e640e59e2d733f0c7f7025e66c15c81e98a845c1ed4843b589d", + "1ab59ce5e54bffc68fda96c920b839fe03d1976ab36978bedd973715ed631bfc8e3edd10" + "0043ac527aeb5ca121da848bce4ec9799f55b22454e9af32848943058b257e815b04056"}, + {NID_sect571r1, NID_sha256, + "15413f614c4551e3b138b64f66d15f8964c40326a42b0afce820778eee4a88edb127fbf5" + "75da5263e5a2627b5461d311813ea868e6417615e7c4938313675009caac28bc7a2f4c0b" + "c37572d9bf36a3b1794294e09c0121ceecaa4b916df45b0dd31225415e6c87cfeeb092a0" + "08fce2c543cd62365779ae28f29fa02a15d9dcd5", + "3db080bc99c5fe7e06d5032167af56783cb423fae59fb5b3c6bce5fbedf56b7b39b17810" + "e48ea9a172881aa1f42f5e267349b60294d4a208b4437666b44abcfee5a1829e9467908", + "04059d1b3f680da784b49dde3b361eee819d67339447d7bdf7965550264eb63bcc7674b0" + "921f02e15d45466dee52b4c0a50c2bbbdf226af1662086476a9eb1236e3d4c2b6219af1b" + "db04e3466200dd6ecbc268cdc1937ac5123cbe33f32110cfdb8b7536987ddf5c9ef2464d" + "2334f315b9b489cf227a6300b6e054fe40d36c057a692f2fd3e762624069e2adefb65d24" + "d7", + "37fb32a902eae0c5d7cc9f9018a5d1a906a3d1b9adf5bfb696ff63f105cb2e736d9bc196" + "1677fc897fd3a9e9bedd370be6f25a03fad425b5a293c66180df78db33aec4a188d3db6", + "3aa8ab9fc9073429e52469088aea91f00cfba271b9dbb84818460883effa0c51d6a48c19" + "05d6f58d1312af073dc8735c29957f30324b467797acf86e028410de016338b972013ab", + "198a746411333172daef76359e7ad23035a0f5d14c283cb268828bd876b96b5f767e0c1e" + "2796def7a51429f39ab2332ac25d8e4f263f8dfb9c4c98da2ccc398fb3bb9a6b28ca28b"}, + {NID_sect571r1, NID_sha256, + "9f901557451ae2f8ec79b6d4adc794cbfd9b2e6d28f19409532d91682820205308b41498" + "a4e1ca247a2baa8da93de95e3c0f7afd6ca46bafdbdcc6d3374a12684676a50988b86a96" + "0a82180648c8c1e38f8fd9af604c7be3be4b24799f4544ac96d6360cdb83d1d0847fda21" + "642934fd6cf65385b50d86d4656987901fb88d0c", + "06ee767f6f36bb8f364f324d8346455c899a49237d759003dd52cfa13b9baa4c71347b13" + "4b24ecaee32d247c34e3787a0c64bc5d299b55c86f64b47521d22f2c09db225b0c84cc6", + "0403f971125860f4598fa310eb7a8c6b4e0c31bb721fdc17ce6df9af557beded6006b8ea" + "b10ebe7f3c4f3d759d4a87dcfc1fb767ef87beb1f5c845e3f41503a33b28b2b5aa1644dd" + "1a03296062514d4e89d2105dda5bd65a315b9770c45afe4050d8c3d15001405b1e32be58" + "67ee90cafbe4e239dd44d030b4fda855182f1fcf80963c1300cb842459aaa8c282737187" + "6c", + "2b247e2dd0024f534ed2797110df6ea4ba166c34d91c94e43b045c0ff80f124bfec1cf3b" + "e3da7c58389d352c8c5c1bc2a2e876a7e56301b1e688a085ea0222697fc63141564365c", + "2858eadd14373aeca65ee5a2cbbaceae4b54a50e0941a696406dd86d05c07c5599379c06" + "6b2288d01b2a43c9ae34bcb8c36f59d490aa8d066fd3d7e539ebc620a7176507ccfb232", + "33c20d26dca20af2c56982fcfa6f085bc5c317d01f3b1dfe0ade1ef6e3e960b18b626d17" + "d6696c936f04090ecd9606c2a6ecea1cd1883bbbca8b3dce3b0acb2688fb2834aaf922a"}, + {NID_sect571r1, NID_sha256, + "959fe5a19d7aea2ba611c7203e19f8e3f3cc101e03a98f91adfef602c424c580d5a86865" + "9368a930f9883d699fc633bd07f6cf8de474937db0bea86fa7cd140ec2f202663813033a" + "757b93bd72afba15be5e47a4eb93e8a666aa1c72c241ca3922547d63fa3732fec54afea7" + "ade84302e2f044275bb67433fb6b125b7913143c", + "38e2571d9f22309a636586d62863ed67a70538287f3ef88b88c3c2fa1a2900d48c342b6f" + "15c26b8e7fb4875cda4093b7de7ceda48fe1e2cc2975afe958040881de61f309931e48d", + "0405a221634ca85059543e2caf8bdf79c43bb78deb35e9c89e07d553bafb6b31750a1d85" + "ffa7689e528c11d8a3dae442b4fb2a4a21238d636eb04ccc04c8b5d794b0a213fe0480b1" + "d20225ff457b6cbc12d152b08025cdb7e1e921ee553add9cbf83228d678d5a9f5d3d1fb4" + "327a74c1dcb5d69a5b98f3ed1aebef0af09bd49d253a903636ef5a66844c500fa221470f" + "2f", + "3b4de49d57040141f3584ff596eda457e2835085d350b75391d90abe728723e1d1ac6413" + "979d4fc3eba98d72a01248e6510c722df15df876da881ad50539e4248facafcf311b464", + "00f259038b4d3d036bde101aab29f4558e88e604c62f967bc7a35eeacc6a56294268f8ab" + "00a34f9a0319b07754f502c98718e8b5c91093cdbff2c8496fd63d6fc2c50a35f87f423", + "2350d5406922e8822a91f7c95cfe8524f017a14cf7174ce534c60aeb351510d06ac20dc1" + "249129247b21c72c14b02b710c26c10899bcf995143aee632e294176e903645b660e998"}, + {NID_sect571r1, NID_sha256, + "97b9688d9ed5101b8cfb19e84b89cd644262ca1c7ee18944e29ddd3b4cca78e06338b270" + "385b00a5e8b91ca5e628de3bba50e36ecc695b3ea737a9cf8b36871c473a54ba17819f49" + "e730c0f253b0c769aefa6c16366fd2dd612f330e95fb119fcf3bf7f3e254438c0ab635ec" + "04a8b2424a05b483ecf65b74a93636fbab7bf1d8", + "0c8f5736f1ae65592f3ca850f43d06441aaad8c03820f3b08d8a6db46488dcfb828459f8" + "b3f34af73cce8dc7a5e3834e085a64523d890028e194214cef4003210e6eb530005b01a", + "040667ce3db45b8772f717ce20755ffaba968aa1314d75c84073042436823fb54bf8dda3" + "4a6bb45a61d610745b1fc10eb0eef71c4f55b26acceb442d822d6e2a27761c73b740f472" + "89056035da1adaae894e361f5283b3ea07b7d9f64a298be11de9fb487c2479b120381f1c" + "60cefe5d32d37e4644ac86a170f82b1c4443eb71b940b21c7a016b559c6c79835532c276" + "fd", + "190468668989a607a3aa966cad071ca8e8eb152b0dfca9205bc9417a3d612ca1105c7b90" + "340b04acd96a5223658adda16bf6b598ea9f32a2f8d1b61c2c2bdc08d6a49de246240b3", + "291e1fb18edb7a93badd6fab6f56ee0d390f3b6d298e97312d5277358511fc7621534ac0" + "35f3518cb140fa4ad5ef7d889c0d5f3f52a4e4d06bc9f647f99695531f85a4b76cb1184", + "2d916734e02b0a98406bb5a9723486a7ed40bdd0b39c4cb802af4bafd519803d23c6bed5" + "9a80c256a14eb878229942f67e0b8159d5cbf24b719043171b3958fd669adfc72eb7289"}, + {NID_sect571r1, NID_sha256, + "f08b250bf4a3980cb455338b3f4173723b3f44c97bacc9cf550149794a71426e398cb4a7" + "4bde141d8b7b4a72942f1c069676a9918e27792cb8f085ee037c78e3c468adea5123c4c6" + "4d8ca6a39f2f90140c5d2d80b669cbf0d1ccb466b18ded83a1d5f042c36188a04111c34f" + "f769abba9aedda40a87be1e24b700225e2078056", + "1ee68c3994adaaa9e0d61bfcd3bc1cdf198d3fbfe28a44e5dd518867ea04b20e795eadac" + "c48bfcf8e8216dceeaa069b756e8e99ed87b6b1d31154cc9310bc3b4555162a890b0c6c", + "0403efc83ad15d9bf889c9afbd769bdd1dc8925b0462c93868d85ca7554b540d8c3ef7b9" + "a63becc85981972eee8a70b7f948098ac050ad594ef2ec249cc3b557844bae9cb2cacbf3" + "97042a012b3a1d9e46cece4fc3460a2bedc9af4ce0289e95f69550eb3544f7c105b5769f" + "a52234ac88f9045ea5cdd4937664846d26deecf511ba6996ce4072e763e8ebdfe7096608" + "88", + "031df03a6cec2346b92d9ae7d3d983edf577d9a1bb88098f886f38536d8d8cf25def5772" + "6790604e674d036cbcb864bdedf8475ba9c850d510ef93b844c037e04348d5f48098c20", + "112dcafb63bb125d9610e59883df481bfde43589e46656b5952cdd72238cfbcfee79e916" + "5e3c9b89c9ffed12d303225ba2af19e00048e20e4edd3968807e4885003d148403321ef", + "2ded1456df54a24214d8c1d3fb314db52b046ca31458bed69bb3aeb6a9ece509ee521fb8" + "046ed43accc7e605440a09fd96db659c98a7dd606758c0c47e47acfa326b9ed73ba4b28"}, + {NID_sect571r1, NID_sha256, + "1cabd16fc29d7d919622810dc8b23c770b790b98b119eeab1b20900fa94fc2ebaf76be4f" + "5eea91fc5276c5621c8677d4d117c4a5a782ee2ca1d5b0db997fdc8a05b6b3fbb833d7a7" + "b81c3c615c2a662929760a96feefcf89e46b563314c9b77c86bf34438458b43b694ceba7" + "41b97dfcdacc0ed57652ae62856ce10ed2690770", + "3a6fbf66ebc1365ea7699c72cdac2dd85907ec59cd26e2d18713354b619ccb83b7fc0db9" + "193aa8493c1855f1a83fd987cbbb65de17c59fbe79256aa5392f4eba045346e9ba26592", + "040559dd556241f9b11d0f91c5458ef6adb783f9f5051bc12cac9f0b214f836f7b149d00" + "ba8218e873410a50445da9fbf68673f3282d783988981fb221d0579341892ba6824e0cf4" + "a5005dd0e594ce41122882538e51e9bf29d159fcbb8b29b97c5546582390ad5c59c97527" + "1c58ba1e75d70c3898fea929ef7316ee830eeefbdc69bd80d7b0e8133b977cd573a3b422" + "ee", + "1c5a193179ab859ec1166575007c3cacb30d31f341a0e82ed6d4ddb32da909dce08acfa1" + "0fb14183258caa743010fac6f7d0fb1f8c8f55c246e49a97f2bf571129144c23de8d68c", + "2625d0bdf37396585d22811a12ae7e0c3f512ffdd0bf4d048379434af46c03c6067dbe7c" + "271c417ac5307123bf58a9f2064bd2b3a2d4b4efa3027959bfe63e13a851f46a21da6e6", + "13f16b211b314a7e9918f3254da2f1aceb5340713985610f03ec1d0a33ecf9217d61076e" + "b153d8f27aa31aed3c9b165be52f8d857de362b2c88db5dccfd708a996a46b76b4ebd09"}, + {NID_sect571r1, NID_sha256, + "7bc8bbf5ebeacf40b3c82eb6eba5d994dcc6a3f2e12ef741f90f90e176d20c21e006ecda" + "f14cb5beef35bff46b2c374d9ee224516679b1a9e9255cd8ad8e60ed234f8ee7e0fc53c9" + "021488158217d4b4369cc597d6053746efa1e73340bdd73c1bd2eed57b92426fd4d278d6" + "a86e8be0f0a66ab3dfadefca8831b2f488636251", + "145748871a0b5c1cee628de04a12fd68ff2b154fda96e47afaa96389d66d22802968584f" + "6753d36618d49ed205260f09d3f5ccc2b27a34390ce58179b9834ff92a86d66ea0a97ca", + "0406cc7ce2782dd67cf1fc16f1b24ae46fd085b969d936fefc409a9bde354cfd33a154a3" + "113e837cfb88284d75a96f5fbe85274fdd0990af4a033a6c40b904a5e0f666e4d8b8bc35" + "3207adfea166087502657bf9e2c437beb2f62dab041553a06411f6c9dae83a2a2749a4e5" + "a2a36fbe23d40816b1b8d206b9f5cea20ef200b9150061ca22fee2076e31c88d60a006ef" + "4c", + "26c820dc92f97dbf545f51db7d5ba649333dde38eaa47d8a7edad9a3cf3e6780442db234" + "632458ff17e1d7b70019916708c128601ff547ac84dfb0173cf0a3c5d69ac96c3d7d395", + "338c88d1bbd0b93f3f1fe1ccfcbda65fa1667ec471730a40eda87f57b3eb63d979d8d6d8" + "19b974619799c90b09f33c051b8b522c3a1acede101857265ce1b58cc7eb5698049f494", + "3637bf89f9b66c7ebd8f91a8324eb70a510284b39f0f2e45578f26f5f1e4504ad70a3894" + "27f4d58960cbd918c2f8279de52096e25a1b0b0c3929fd5ef56bab6cde7c0d8e9d2fb30"}, + {NID_sect571r1, NID_sha256, + "0cd2a45392871c0c262e7e6f036946354bb41f9c2187b8c4d399231280682f3e0a09731f" + "bfd52c76ee63b9828c2d731f4cefee0a8c46419c398205b2ff80c67d7756db300a0a8385" + "fa287dd37d9126f75998ae1cbab5136560592118db52fbf102b7ff0a1ed45b8a91a7d99d" + "13a0f7fd4366392264aa1248d7324901467457ca", + "3c71911d24ad19c20fc1d8a044d63c9bb417abc3778d7e6234c6af79b898cbfc2f278724" + "4708d2fe203be786edbdc4c9b12b413156b7b0bab0be8af895d191d853cd58aafe1ccce", + "0406cc47aa586a73acddbc91398ff5782457e6da2b10e265153c678789d3d7fcfc485b03" + "b089eb67e6d6955d5c8c7ed5f933d84853576e76fc60332e5f0a62c3ab23690317bf1b42" + "3e015604d94ab9f2ae1d74fe46b1a070160513709de2ba8e74fbf9922e9bbe7f6e743b25" + "701a13f73eae0db0c98dc80c5f8528e16610fcf18f60eda3357ad5878add2554a6befc9d" + "39", + "3681fcc5fc1f0d7d413abf2e44cb5cce9a4a252ec449ec4f550df4a172305eecc072454e" + "fe2040aabaf4fee58ed19c9090061d3c4835c5fec38996f013e5512c0147cb14a4f0fe7", + "0d3c26796bb86b1a20ed4935bc3824bcb9742513ce91a66dd523a3c0d8a5abe63488aabb" + "806b5b113e90d3f3c80e3ffa01ad051e6b0d4edfc641689953ed65fafbaf3e554be31ff", + "2e3129ff95b06c274f7ac08882dc1da6660269f3dbd21a3e48377a628f6d81326084bbb8" + "d32b794fcbde8e574f853636fbbaba480fb36960b0994210bea319a99a46e29b79217b3"}, + {NID_sect571r1, NID_sha256, + "e97092625b09c9ae6e152e1cbee207d83361f34cb9b0e727c816a5ed851f12f91fbf88ad" + "9d4c8f9d07350f5d828fd8574eafc768bc72a2b18aaf4d2b48fb10f7c3431137b5185015" + "4de9706487d69a40a8f4cb2c799f48c5d8f518aff752500de93cbb94ab04ae1e0c7183a3" + "2d79a27291dd07b5fb6e6a4fab76e85c3a8607e2", + "18bd74698bac36ef11add6b3e3fad227ecd868f370ec04569462565d2f0af2340bf79348" + "6953a7b79ab04f0ab1f0e4fd16bf6b576cce677d543e73aa8edb0e50372f24ddfbff966", + "040231f891e63bc1c43377faa56c5799eb1c877954ca2cafdeb4883ae40bd78816ca5634" + "f48f5ef5c22dc7d3d0df208bab4149815274d7b134cadb700d166a5e3fc73e9be1bab725" + "220469ea29ef860adf24afdd386347763008ef6fe2488d902c4d513bc0183fc52742782a" + "6fe500d6b581902ccd4f9bf077f975bd5fa89bf240723b99f726c9fab4f953380745ff9e" + "17", + "1590570de563ea96eddd900e4a0a7efa2e4a0b389854e96af32bb7555f098a8cb52d160a" + "bcfbde65998c34f91338a40d40cc03e4a9a241d3b16b0e893d3f7ffdbf8912f35c7f538", + "32402fbee4831b16d762ea2cb218279f4db5e20bc8b6e2e53e89a2ef3646cfb0abbac361" + "16c8c708a1342db2fa0abd39d149e09db57aef65ad8092f37f7962f98c28331f0f20b64", + "2d1e38f40965e2697abc7df5896cf051ce5646f135d1ea0bb470a43250af8df0abf2a04c" + "a1e0f1f31013025b4136a8a6bdaa474bf50752c571f883829bc3a5482ec20e2b4a72c90"}, + {NID_sect571r1, NID_sha256, + "ae6723b8df5d6ab5fcfaa22d32fdf106d211514cb1892c7c43ca6cd85c2532f85929c8a2" + "59ed251215063cf92e1502528d1e22d5cf67efa0b8ef21e8eb2f5dff881ba1433e8bcf2b" + "6af8742ecb2bccde081e534615a305562cc22d3398f61f277d8ca785842bda85d8a40438" + "d9bf1aceaedcfc22c85533794a69cfc320931d3f", + "335699bfd058ee2e6163f55d1816bf3669acea8b73be9c4ddfe775230925e6093cff7a66" + "813adf22222c8376faa106d85ac9f3c67929bc58d8986795b6d35d5b9fa546dceabbedc", + "0407995e02dd3d40f9bc2e6f4cb1c0d29923c9022169e64532d1b357f36264d18059c44a" + "8617a6f1136e72648c9051a27714a0dc833428762275a1b5635a3ad91e65d2713236c20f" + "5006167d5839cd4476a638c50db218979a93da44dbf97281d90daa8b9b530960c689279f" + "ff6c342af97880db1e9c5ae57b91d7be727fd1c6210ec59416d1b675f4dd666e0b121d14" + "4b", + "3f037ebe0e4c3910953e123becc09c0862490e7f590245c4cdf9ea5fce930a7d7ca5d17f" + "5689edae1ce706b90efdf84cd82e06e4ab95e9e2368db91d50110eb91cf44e50cdce2cc", + "2baaf025290897a5d68c5e63543256523fb086a6f1166ddfd3d50fb307e0f0cf78b5fa89" + "5f8b71944a7b67b8afe5f3e10f2d248aedf573860c42cd7aff258055ee7cce472e8efb1", + "0f4d239f5af023ff6c94ad7f66d43201c7e40262cd92467c4ab54be8d2b8e6577d143750" + "64fbd00a6327da62f03f75262392add0ec119d820205065aa6238433fadc8d1734b8481"}, + {NID_sect571r1, NID_sha256, + "ee20c6b61886e02ed94359dff3559522ff550ca126fed4b2240ea7d999a182b7bb618c50" + "528fcbd261d5e497a991fbac0cf4c105c0f664d6a00a9001c1ed522962fb44dd4159677c" + "e8f1531019f86457c055c9cea6247086cdfe0442485cbbc4386ad002b4bd39a1a1877524" + "37f04569705cb7adc0c68f0fd059d946deb63f0b", + "2c3eaf801330b3f1b0504f2399f1d24455db29911f750c246ba0a134c3b59da8b3562911" + "197764699a92ea1d95a2aac587e24f743df1dad3e1cf7edf955203e24a0225717f8d2df", + "040703d69e2dfb13fb6e695b0b30b31d89c8789e8523a7eea15673aeb4f1909192c06c27" + "558eb55f0315f395b1f3ce84d9c304905cfda1d119bec33af9ade4420de2edbe75cc5460" + "e3075e35b2d6a8550969d49ac5d656afacf68d3a1dc6d17666f46ce3413c855b627f0891" + "912e373af2ba91211c20f067d66056e6bbc0814ff3921d944008b25d8772cc8d696bfe1d" + "09", + "0a9ebaea478893aa0e3bbfd5d007bcec5ad787d9bb5a8e9b8b79865c584966f0bf040d36" + "f62a8e97c123d2adb7f38eb49a86e9c2ce1294d04fef1b6fec7908c4ca1a70bd1699a9e", + "2d495eb5f6fb187a0ee1fa772ccefbb969e854abb445ec19ac3860f40ee65f53b92f6a79" + "7003574bccf0b9de8014ad4e5745ed264eb3ae88040ef6518809b4c66f691d496a85d51", + "1840b2977ff137f2a8f2f7c25e347cf1262fd128e008e30e4752315deb5231098c65e9a5" + "85496a9d6b5b56cd0b6d7dcb7150a077fd199be2d2de0262aa84dad414e100ac6162346"}, + {NID_sect571r1, NID_sha256, + "734a9eb8288e32f5a67cc1d88704523ca2c68b798d90e188d871d9f50d2da2063baf1ee6" + "685c45832a1818aabc9afc0bc935e97969dc983a484f16d2bedb3c7c0b8221408be2480a" + "5562d5d1e5d8763d1e474bf2826aa93a68c3b870e3bf34f4941cf590d88e1f5a8cd782a3" + "3992213f3f6b4b4f6dbfb3c3c8f21f5eaf4ef609", + "1c3ff067497e5d387f31f0ecc9c67b3c0dd6ec8c81318c492aad83c9dec6c99e4fa47447" + "f6f7082d636c2591d0df940b947d0a4ae3778e2b7cc8fb92214638399def894ada276b8", + "0402e56655e37b3e753f35eedca95f8ec07b7a3d3e14e365ec041cd9003bdb78a7a8b8ad" + "277a67da5d63dcdeb0ee8d8efb68fe61aad9b1fbef4373ab13c44efacf68cc499faf5b5d" + "be047bbec643d74874b77f0fdbbd2df3f3ff0d35f4b3e1534b2c4d5c76b8cc51693a70e1" + "7d1d4cd64713c5c05966c826458fb5411ac840ab5998bf3cd64a0769c3e075259a70aaf9" + "4d", + "149848f4534eeeb45fc38ddeace59e8f83f0bfb4cfcd2b8b7acd0bf19303051a6a8fe75d" + "4cdec1be036645beb075c772aef4a58785c16d984eb43b9b0317446bc3b3abfe7ec2cb7", + "17eb68556224f995733077501ed295088cc1184fa3872f5f11e97cf67c7bc1febebd3120" + "6a406c4479b60246a517cada5859d4f1aeb98dfc108e96e9898c6e71e59e39b6284895e", + "22904497dc7a98fbe117e4427d74f4ecfc4e14d4467c99227427e3abb8d3dcc406f3704a" + "7783d822ec1118a1d91d5945d5b902a2ad325bcc9c17c68ddf8b5323df9c2bde392710d"}, + {NID_sect571r1, NID_sha256, + "68e27cc72fec8f3f1f3882c6efa08efdf21d74d13be5171da35ef2855666ad2ea6919d21" + "dbc1cb6d296663dcbceeba2fe47a2c6507d3d4a67a61b55b0f81c93412d7e1fbe15a590e" + "342a05f55daa55f8591171303154e615e81189a523b855829a5c96621ad118f522e397e2" + "eea05c2603eeae6e3591215e29b2289bc384d8d4", + "04b4e04281b210fe78d516a5b69f878b7fa058941ee9ae8cc63b061d1eb9e12c3e0ecb87" + "17ff4623ff5bbbcdb53c48adbd9c69636506ab929c5507d7ebafae5654aad65a263e48d", + "040538049d071158c62f0102fb664a47431afe320474a173463819d5f83f6737b43880ed" + "378470d774d32ad59cd9d75e5bb06b118f1297af3f6fa910f40aaffe11e46cd56cbd29aa" + "5100a4a843af9841e2427357bdf26817656637bf4650e443ef303dd458ed092dca3cacf2" + "857d10aa190c256467ff834bc804f8557f6c3bdde89927a5f2bd55bb9d9f1f08a044cbc2" + "08", + "1191110485f56335f0e65fe04b9ad8fac1c3573cb4690db3e9f62086312d394b0e354890" + "c0f74e3df7c43e718ecf18caf6904e03bd6c0912f906de1d2bb4c49823bc6c0dbfe37f4", + "0dff371ac365cb7de248ddb2b2fdee624c527c6c1908dd287a294bb43a4be94c130bfa83" + "710b0655f21695dd91703acca64fe2e7927eaf9c2b9b230de8002798224f9505379bf34", + "2f30f31c863bdd68fae16f97fba756e033eada18cb0a23d7d4b2c9ea3c832e61b52185fc" + "d654d9eb281b92a9b102c3b17ebf02422a0e4a7a56a73974208371ef65434c38f4d7d1d"}, + {NID_sect571r1, NID_sha384, + "e67cecedf35058b80787589514a9c81c6b9f4bced4260411d2af75bc46b8b2c962dc9d26" + "0dc99ebbf8ee64950766efc0e394184bdc8e2891d66bd3300ecc880e9d6a3d0eb6153223" + "78afc3dba89938704e9a8d0c949d4bae9838805c00377e3fe5ec6a1a98ad7eaaba6b5009" + "73dac48b26b7fb2e1b9889f8c387de535d4b2363", + "30f2849a713aeac95fde5ce3af853e9d070ee60709eccf35a076567be2c43f0fa34420b0" + "fc097ff577221275a3a56e759efc32183be2d76058a7d20e5dd59f00415114d73a15b8f", + "0406d4ed3cf180e0e307745faa49247f269c3fa0a69042b3b78ad645f43eaa50d479622e" + "27429a6b6b1889944f85975fec8018d3321ed38f6c7d91f2efc98467a027ba4a02c7f231" + "b405f2ebf6abf7d53fa32865a9b6ada9bee51c1fe26cad74dd6ef78f13872f340d641700" + "31becb5073001fbca373be4e32ac3425d705ee942e6c4e639bf72379e34776680a387a0c" + "6d", + "0da9d8647d0950f558a3831b47858168b3379656e603f2bd44046ac7546892d1a7318c5a" + "9873c6ff85683edd3881a0f1af5501d17939f0825ed37bfc9a2d95faf43d3be92b237ef", + "0fc7eaeef74806606fe51882c6928a06bf552d18dcc4d326d44a540abb728146657048b2" + "0e5fe2868beb5f04f32d43e9ac23a7f22c6bf325bca24f5e3161c868911ee61baa8a3c6", + "33d63693268f3762635373fc901fd72e525965ac17e2cc009177f03bd3524107b30e4c6d" + "80bbc4f87fb1f288ed56812994541fe063f1d91afa7213bed8be5693dc6c17ec9a0714f"}, + {NID_sect571r1, NID_sha384, + "2baa1ac3f07e34b67b6af087400f261e138b070c8475378063286c16fa73578303380236" + "a4af2484ea01ba56c1c619f6ae4e5e6ac2594c8e5aae7e7f196f96fc5d0f507bebedd4d8" + "18e77b9120e5b4bc01c7ab6339e88b71d0886631cc7fd89659bf513faf149c61eb14d550" + "60c8dfc7e6e4c2b4ec8edaaa6bc36eca50a6feef", + "2ebb73d04e6e5361e20629e3ad119b33db5163ed91fd9a8aec4b774898784b6822a08992" + "118a8fe6013094bad0be1e9bf01b27c069e4335bff7e0abd28a10443818f6b825e9cef1", + "04001710eb0167e8c948d381e3a75aa1e036b70c414f69260aab434ee20b6724dd7393fc" + "487b5b3822e5e8065b06d0785a4a7be7193352d5b9eee66755ba106ba6e40f98a08c730a" + "0c06006f98fc25a641a7c6e67fedd37aaad77a9102be3e1e7d32dcb4c68029e623a42f4c" + "a7d1ea725bfd475756b80e18904107c460fc03b9bd68aa46f9dfbd60618670c4d9a68a32" + "87", + "1861e2a356a6fa8096418cde7fa17f1b893a7b63810f3fd807a82bf4c745aafdc4963eb7" + "a0ad0488a776e915b64d2b684e46d244703eb63b77835167908f2d6b06a2ed7b53f0717", + "046688e12d26cd96bb05d3f418d8ec34f4426f594acd2bfd8e9abd79405e612d60737007" + "440424bc4f546c54b7402d11880f68edd996f49277b729450f7dda5d05986b014b5244f", + "341a80e74f3a69b966ef81ae95dbdd60ed5a0446416653c4df431ff7c4b4272665a52337" + "9d76725e9fbe196018f0e747100084c823b95d7c7b1785d3623e52e9adbe773b81b49d3"}, + {NID_sect571r1, NID_sha384, + "0e640581f573068d8ebd2899a6aaeed0bf987ee11e22b05d25e88e9a1c3451f45ee3800d" + "976f4603c18a041febef07a01086832a6f7ecd5d498d52e796a9d90758c87c36f4a5b704" + "a39c456aaee2d5278183d5815d619c193da9fbc427d701bab0874bded848cb4bb066f56e" + "119b637c78aeb6eaa387c41bec6cdd4bf7b2061a", + "1bfab717d6f6e16d9bc6e89d2ffac7cbe0f808cc8ca2eb515af7ecce5f3b230303775710" + "a21bd25c2cc4566bb53c78c78e3774a9f306c751cc6e149929e45eef60f56c1d2388c6d", + "0406935c3e8b58f7bacd045e745054c227687800ddd86d6e0c8b1e426f4df0e4b71feede" + "fa9172c43becebbeee8ee382a75396fc5f29ef3d2cc55f8afa9232038609b5034513b222" + "cf0138463efe3b32259dd90b759062f848deda84f2bcc0d687c410f1ad2dd745517c96c3" + "451432b1e490902208cabb68bb872ec493eabdf1f3b07595d23a54c53e512777abffb7fc" + "65", + "00025bd48e2dbbf1ed8bd9c1514303dc503dd0799c7815870b902249cd1d7368380853d3" + "6f7fdefad973700ded1e0d66950181b0aeac73eb622c880571315f09504ed26e28e85a1", + "1b9d6ccb19b208022d3a579a66957429682517e84a71be42fd571fbbd0247609d0b5b338" + "08189efb52d21e6421d3b08821d82900577791b1c54e239b0d908bfbcdc060cfedaefb2", + "3356320389ffde577496c5b46a0de6d53005f5ae3489c0d292c5f460a3b7adc5bd204bc5" + "0a3bcc8538e0f8319c79b9024b065223b7ed9b0f211c5c224d363f5bdfe04db97f99e19"}, + {NID_sect571r1, NID_sha384, + "51a2a560ba226d629127ce1ea7e812219ceaddd23561256331458c9f11fe73990f21d0dc" + "d974a3773040090cfdc8e0f01692d951a0cbb60f8448a016c67abf46a9c150466ac77e65" + "6ea827b0ea7d1e77ea32071ba8314fc8a2edf69008f498bd1c18061d7d00f3340a7e2cd7" + "3e9766862378d8702e804a1870b442beb2d0aa14", + "00cc53bf7f1cad5e3dede4b4f4b082831604c92dd2b147869cdf1107259305b1d5035964" + "7f9f3d7d4e1e608865c65dc7c9ea46bc324dcb8423b554dc369d621743cbfb592b70eb5", + "04020187d7de90652caf1210703ef65cada3b88f978e14ce6055847be7127602ba7a5391" + "cef0fc9b009134105da7b09b49beb7ba2f961b84e6d66bd818ea99ec106c6e8428b17394" + "a60197aef36e47b571ccc0b41f948392d6061060063137d8c3b999ae507b76132fea1563" + "775be555616cb5816b9b19e42b34f9673aab833f4beb9d1a0848a4bbf2f6f44cd0398274" + "8c", + "08acd0f8f9660d21d62f391112908be73a4342767328d3375a8806dffd2598b6d77fcb47" + "93e69f2390389a78c2b11866cf0f03666a60ad088d2c77bbc49fff6efc5b7283d02bf36", + "1004bfb78dc0e4fc0f2624bec6893d717a476fc76bb5c1d94c1dbf157aab5d1dc80f98a3" + "aeabaac94d9cf9e26e1dd172f5d8fcd5b2d48cb3b7f0a4863813357b5cf8eae84478e44", + "30b1c8857977181d12c53cc2efc53a427801cde2890cf2ea2c99c6958b6869d0ac78ee2c" + "846c241362c885835af49c47d20c30f3cbfab27d9cfeaa6d858694bab059229e30bf845"}, + {NID_sect571r1, NID_sha384, + "90eeecff0a2e37df318c441df220dfea013ef29774ee92a56b213e13a798858f31e52b6c" + "cb7599e7314f12b48a89884b113c1ba0526a54f3e9a33c940944319e084bff320cf5f391" + "c02c731c4c4f8b05afa273374a1705d6c85337782ba7d36b9c00767180cad6422c11c581" + "672ff631fa4c49d41b02481568ec87ea97220400", + "2b009530cb9d586e35dd8951ccb686833afb7a37ec253e547e85b253ba999f0f186b6d4b" + "a41091615fe57678e9801b4dc94fa683511da25637b2acc9fe60936be15af16234c4ee7", + "0405913ab6a2287d946b5b6d1e6c3d64117e085da7cf6388e333cf58d22494f4b067c684" + "dca770ddbcea5db73f048b296e9c17284a8912b3cb722d9eaa17b6b1209311fb8e8757cb" + "f50007124ac6c48ac56746563db247bcfe6b20215ccc5cfb1d43c923daa07d429c8f0513" + "bd1ff1180ef0f7927fa23fda1af25d20b22c935c426f9ccb402c358b57b812516c431117" + "79", + "27a80a19e9c320b57146845fcf97d6debcffbcae877c33c62aec62a3351ef40bd90ef4c2" + "ca39f9e51086931d82eec4ee7870365cb14e9c54ae735069801ef12c571bf1c7c1cf6e6", + "1de22c8984c593a0948164e6cc8631489133972482f6a7fb1c3c13f97e4584604930d369" + "224850a1d24f267f41bc6fca04ad79326aef61f0d429e0e1b9e9d9686ee10f2bc52b104", + "085c6b34687081e280a180cd0c4ffe95cebbb0ad6d3b20a7341e467812f88c23973701cb" + "f3cd2bcd2811415d0bf0cd9df229a88754f4cb0c225a2d11f57369a29edfd7b04639055"}, + {NID_sect571r1, NID_sha384, + "d3740cad41e2e365d80ae81da97fdf06d8b6c278b505e34cb683fb55ddc5189da5435409" + "14c0accd405dbf0063f6222885fda4b316dad4a83fd03e8d7b7e936f87fc0a5b095defc8" + "a4b22fa97f00b394e672d5efd3e0a230c7e44dfeebda88641143502a400ed62e2a51f956" + "1e5d652a43d616f16699e875deb9610c77de8e1c", + "2cc2d0d7189cc8fb3565a039aee7633ddc00ff427cafad32fd2010b10fe249c9724d9178" + "5e7080203626038109158e3a61a3970aa3e51688aa7f5184b22f63af63f80d3540ec023", + "0405fe95a030efac2e5d9522680da58606e3e7544a317a3f24d726b69238367d30fa5868" + "64d8c143c3695126ce8dffbc7e7fb789f956dbf53aabbc38af988ce50f1fb30294ea3e2d" + "480193d1e745d82781ae5c3b3d2233e502959d6862fa7987c6416584504f65639ca76557" + "8378b75d3844df179cefdeccff3c4c43aeb8865063e176fd43a27c93e329f8d4f6fd5bad" + "21", + "02df3920fe4d328315353ff11b0264045248b32f48e860dc59d931ad65f39e97e3a683c7" + "b5c64b21c3fa50a9685fa11f49df9b14ddaae03eb02754b01e03f60fc6aef1e5d6d7d3c", + "1b91c4217b1580cfab56812c16bb5aefc1534ee8d049aa2e1d52a5bfc11519ff89f0d36e" + "a2bfdfce8b5d3cf1527dcf700c0208a70595e9ebe4feafd0eb597e05df54212fd6eca3e", + "21ce52440267fb16e713eabb8bf2d502c81939799f9d09cf48a50dce5da999f3b457dcd7" + "3c212d5d070056b1f373b07ad06e90d96febb7f8cdb4c423ef946f0799c038a3ee68ff4"}, + {NID_sect571r1, NID_sha384, + "5eb53b5f92121396c5ff30e0c92da48db4fbbdbf27297f9bc82614ab78f7fd863e34096c" + "615a02e349d8bc7ae4b0700130704bedf32756b5ee6af10da1cd717d624fadc57a9aa6db" + "4a6c5d6254c0e8f8c3c0d4d03c264eeeafd52cac2c1968d9d85b106167a49d0ccdbefb20" + "bdc10a2555f8149203af52853169a02db94e5e2a", + "3d8936c00c131e38c6566d2464c4e207c878070bbf681695a6cd98cab2c6e80fe98cda80" + "c66a5cf584e90a071144dda59c07b8fc7bb42464dbee5b6f739b0f2ee5fdff7e5a4e7cf", + "0400fc3a8a320e816305772bd5116cec2795d58633a9f490be8a1a360f21d2aebed6038c" + "a4a5081288b6bdb1066307c26897ce38c24f8ccc98a63e371ff6b54f6016917b430c267a" + "f7069719c868d8fd25a38a7338811904e3330a7b2289a8384bf24f6dad5312160f0093bf" + "556fa061ca5e52d6676a8f1a3e4656740c82d3cddf0ac4f903ea885d42610bf1b45d9e57" + "a1", + "050da632cd7aa58340adeb20389a2cb9897b8ec944c47e7177da65d9386a9dec5d63be7b" + "b2d0f5b4943932e1fd7d87d5d7a80bc50a63dfd101a6a28005c894c6a6fa4c652dc519c", + "0e6152b9050127bf306662f6beee81d024492b91efe87a56e70596a4a72cd02dd2f10b97" + "0c9a69909f85bf4783dcd3c32505d7c148166ab43b503ab098b6d95ef09a7932359f60e", + "1f7d68d53ba161b61eeb17139eeae1587a6bd148e288c1f73a6bfb3a0d1f6dd8f9cdc27f" + "a9e8c7a681410500c097ad01f320303421f1239b4a9c4d5446562b5b3cb2fc45a6fe239"}, + {NID_sect571r1, NID_sha384, + "5aced64f702a57ed7fabd045a40c967a485d2a70b0a5e82561d5141ef329469b2da5964a" + "34df203a980111a77adca376c643b9030aa74516f054648c1534d912ea66582adf3c655d" + "bd71ca55e47412315df5e2893e43b2e2dfe6e4dedf426f11846ebef34a99f5615460ce04" + "75f7bc54b4a4fd99e83c982097c3136ac6188a5c", + "3dc7de970bce28a943d7599f2a9010fc99435b93bc4ba884d42503ac2941aa63fd07db34" + "bcbb1127d56d6a4e277d6ca32051ea3467e376f74f98c3999d2f276b282ef8a28cf0cbc", + "0402066a50b9f961a58620f473fcf7d5eb635da47f4ce362f428669ea578d50d1c1513c1" + "45adcc03ba98f3d67bb422141c73e2f94ef9559ccfdc0be20eb206d3d114a5db302bd075" + "1f04437e655bd255e7f013d197210bed70c5c1a6cc1daccb96145c9c438c8a44b4074629" + "830d8df9914166c9378b33040d71918cdd0f47fa64b7c69f43eee0f34414b8f64882f90a" + "c3", + "3b2e20f4e258b7f0cf69a460fece9b4794a12a37c0f8e7aa6f4f51dbfaf508f6f1e0160a" + "b4388891efb09f0ca1f73178f0e8598750c9debd3ff856cb3a2872762ef9e16487a9513", + "2f265aa99ff806ffeacbf9ef7be575ce5300d3cfd4225b1835774ee075d7e530c9fdcd68" + "1584223f84a497119b4eb1fe34cd31d654c2fa262d7549acc251cece9530b26cfa3ab35", + "2c05ce4b35544bd1f20a68eae7f3483e0a0628dbb53f0466166257f69a7a110d2838a76d" + "204e7a955a8977508e65f2ef6d7deee13e4e2ec0f2b9a8b4bedc26b3502813b0334a1b0"}, + {NID_sect571r1, NID_sha384, + "43c24aea343d4e088bea25be69a332c631275c36677093e057de69cc83a4c5e70ab270e5" + "a8930f55846f1a22ec10e03007dcf0942c6761e89c65c6a4f032eed97dc3a2c7f7ed1e82" + "552fe48828a132ba16c41f6bd82a49335428a24fa1679522000e6a1d12c646e0e4b4c584" + "398577ea9493bb334fa3cee8bfdb6c2e66f46436", + "2de6ee12eefa7a4a736484b19b42a513dfc059a060976edc3b0aa4b50e98d72df6506fed" + "0499ff8480986748e938289e54a5e86c0c29733a9bcf5985aa63d8a2b57933a04a8e8e0", + "040073fa1b62d469f2991d54f1472b60da87ba51be0a9dea361d417b91a4a75373695e9f" + "27b3c672322315d7b566b1f22b96c54adce3e958080fa8a02836955f6264dad3a87fd11f" + "060452c0a07ff65fff741c96851657a5afc7eeca239622e1260414ed736a04e487157c52" + "da98a7845bcf6f311e0f2e59bb92248b6d47dcb93da6f7e0af644b7aec7603a01950293d" + "8c", + "1c87653066057636f9a98a7c69a84e103df480a92739abc4d5ba53891591e3aaaef6ef3e" + "f5e89213abbf71af9c84d3b30898580e782f557a03694446492afb05ab801d7dd631c8c", + "086d539546c61e82d74319f0180411172acaf08b5296dc6435d4ed7bd50cf23d3a071deb" + "3be01f74408e64ad244f069cd41227ba127145df5a357489f944b61606ec75e8377db81", + "0a34d9975fbd601614d04aa41506b03fc15189ee8102c0431272d691a322f3e77bcfd19d" + "8bddd19b307012b6c6349f5ecf88b5a69e83588b0e18096117f207304b38c16a9a8592b"}, + {NID_sect571r1, NID_sha384, + "e89210565959d93b483659e62cf41f0a0147ea23890c2f1a694c377a826165e363860e4b" + "084016cda878a43eb68465f81f397ecd50087a25215ce7c4ededa3552218071fa3acd7ae" + "380655fc8fa884998209ffc8a2c26f1ca19dfcfee455dad35a4e72caecd8da47eb9ee21b" + "889162f5d3032724abfd1a31e68612e18bfa9006", + "05468f0df2c9854f5f655743e79c750fd8812db28b096d97207bae7f5aafc6b6090c9c63" + "6ead9e0fde32a1ff8d539b53813733ca812b41b58ff85a941abe4f128d59fdf9847baa4", + "0406591750fbc104f82c213fe88aa620e8a960fd6140598e2e6282e0d5c5ecffd09d22ed" + "94166109561a7f4f694e171189056d8b300b54c8134485500effc7123aaa23862e897912" + "42005bf8ec10a9ac6a92c54e7fb2135e2aa4f84da571d33227bde0aa2e6c153207488223" + "5f3103d9a51e80b7a9a19067f35047ddc52462db7c634c291e8fc5eb2154f6913bd0846b" + "88", + "242308c430de514be1b9084a7e6c96894cd5615a7c71ea22316e539986e9702080ff6cee" + "f2980144c55d9749830c20c9ea90b93dfcdd28fd862b6a15748dbb3d982e4a275129c75", + "361e1b7a0f981bcc65480b370c5e09b1c2e2a67cf41646f6a3d829f663c0911589223740" + "0317601fcee78a04269411d267dad3e8fc6f069529fbdf0bcf9b5f13c9c6de1681e8b0a", + "2620c29f86cbf698cca5f79de364ae131345a802c0cccfaefdd7375dcc9ba6ccac91f709" + "43eb606506e51e2ced50491eb8f48769810b6dc178d56702838f1c2f0930f2a9e4f1db6"}, + {NID_sect571r1, NID_sha384, + "48629ec97f56273599cd9903f8a84ac2ba74275b40e1e42fa47649568babe05cf63c8417" + "d828251acc2eec525b56dc9082b68d51b0c2bbaa7389fbee15d058cf482993b2bedc5a91" + "01f1afdc79989a812478245d191550109fc17215679553c508c84e3d4cfdea377088d09e" + "b214e6f92410facee4790beeecafe72b2e3ed192", + "3d3c6a7ab9450c94aa3b8a1ffb678e5b647af24cbfd66ee3944e6f264f406295b8037674" + "71fc67936fdfed1714b4b8761a07eec86543b7c4da6bd2fcb33fa8cda4077737f398e18", + "04042d536f1b15a22f4ba80066798d8d1c2704988eeb9423319c1850a1ae6bba4097307b" + "515640ed3112e93f1f6ae67c60a4b0d2b6634aa7038a60b52b2b447fd1651857b71711c9" + "75079eb18cc7493a1c7f2f9b621969b9ce9ee37fc0701f6cf56f5d5dc6efb13a384517a3" + "87f253aae1e93bb0a919b0c22e4d6cbc79b449b268a068b7eb2853324b96715d75b8c26f" + "27", + "23ce112d60a2f7c29d77d64acd9f587e0eb75ef8e739b8548e154681efc24243594eef5e" + "33d845b1e4e89bac56f2e9586e042e0fff38bcf79c73fc9aa5fc908261df5cd2c6cb821", + "3a770df8a2bc35e122c1bd551c38400be47f2499ff57618ccd01e14a2e35e87a67b0e40f" + "9a10eee7efcc3d37b474f2840fb8c24a9adf93734680ae6b25818369c8608a2f8f338f1", + "0728a4eae5f5638a51579e224a24ecd4c997001bb8681e23a7476fbf78b4fab84497000f" + "20c1e67e8a4e4116498bcee49ff00026009af31c1037172188aacd264fde8db15c97167"}, + {NID_sect571r1, NID_sha384, + "aa3a9fe467b1ca638dd0622c9ea235a418b39b2e15ad81fee01b6892b240783d8db3c72e" + "16c13df8016dac6addbfb85232158325bd7432fca3b8bf5db3abd0b4c5ccd0999609dc42" + "199ca4680692a0805cdd68108bcb493a558ab507cec0a2782a9e976928985352edb2abc0" + "c07078b59d2fd86fda7fc76cfe573181d934c46c", + "01ce010ea8e6e1a0c26ab22eb90f0700dc73b232c429d36371e68e429792afb7223f1032" + "7708bcff779ea55fb5f22ad87aa054e84d10f5450f1bc9a89279062ea2173f55ab0f76c", + "0404b2b5acef5921e691f10ade81b91ba8e68e73b33a2494cf4ca6617707861f334eb07c" + "a96dfd681dd63f78102f8d792d66102117b739d477e431d9a3efd79bfcc18cea156db58a" + "0e07e421337d4cb7a98cf9c9c6fdf9fa242904d9906d8a6759ef64a82cbf923b2a57073e" + "a0eabd14aa4295bec84d50a1722fecad3e5f064bd3171facdfff45b170e49f185a3c193f" + "2a", + "326b62065b7c779dc398ee03a8332cfb940b0f24a7d3de4a90323d9e390ad3fb1f0036ab" + "f6f525d8d88ab6641302d10db447b78780d366f32ce36ae571e323124b21984c48aea7d", + "3d2b207b428829ed5100a92f7276e16978e374c734834b0d627cddf6aff5cab72dafefc6" + "c038a91426e35ee0f2c1acc11c55a34a89874100b89588aba7b02e19490e66eb49ef6ed", + "3259fef5c2a0779ae408b26e6c7d581fa973156cdb07c329dde0c12b6c498e7a94577719" + "865b7fcc0db078ba72a27bf338ec6b8aa41c15963538c329c55dee67833faebe3b643ad"}, + {NID_sect571r1, NID_sha384, + "6c3937014361799f1461f652841b5137eb0dcaf01dd293298d002f27e9a770b9e1a30367" + "e35c04603881f0c814cf8ecfbe1619cc49cd516b1d60d27de37ed52a5e1cc300e2face46" + "69f308ebe6747255a3d386f16778e494a7cdd10b45171b2bfcdabd91b805bf24857708c1" + "b75e368edb2874321324f83a19154d3a1578c767", + "1e7410d012aeef02b3723346d24ebafd684c99087ecccaea1cf3735d52c4c81dda41812c" + "09f1e874dc964d858ca240a19963d5dc89451f5dd6764426ae41cb23f19cbfdca0fc562", + "040400a3bb3ff07a339ff98f7c45fe032cf42c0e25de8dee2934ce42dfb0c9894f4fce27" + "fef299b41beb8579270efc7b01c0663c3f72d7bdd9f6ff5186eca9c42d15faaef8784211" + "a5006fe998f7a0db06efed050d178865a2b7de6ca7c789cedff7f2158a5e07ac1d335ec0" + "dbd213fc9465399028fad8b7f4d2cd16fb8ceae4d3d53abefd2b4037efd7f7245296bfdf" + "9d", + "2bb0fb9c428e42482d5dbdb35157ad0fa713fe732dac8604c0194e3f9738fac5cf3874bd" + "863718712a3da45b7c4612c8685465ecaec0930d9fec32ab25818d2f25fad580009b698", + "1062386d3e77043298eb88be46bd4e6f33c83a7358926b30ca06a6b7139815f6e1630f73" + "d352a2cb9bc0619d08a89d4bde1636c74b6580543ed743073eec2ae0037bea2b3c9228e", + "1ceef759d804ff7de526559636d0bc7930c096c7b959f04f8fec5d7e96129fba14c8341b" + "0ed84a64c6cce7cd5b058fab7f44dcf3e714544c9b6f9c1d46ce512870deb51856e9dec"}, + {NID_sect571r1, NID_sha384, + "12fea55ffda15db902aa6a4388b9807c89c193cbf75b5d2a4c95206fa43dedc45974c800" + "79933451bdc5b3ea015ed3ca2c54156dc61afb1bc82adefed1491302a48b9d3d2f474ab4" + "5343c611677d360515b93fb36da7a1c1b2341c9cce185c881c0beef33d43967134a190c0" + "9034ae3261f3295b79aebd3fe123616f73cf2089", + "2139839ce38eb879d266065dde5e5ea227244323b330e3ad5a0bc690f3c210f794cf18f0" + "d730693887548bfbc434f48ee10ed34cb41d52172b06e448df938170a5e17311cab8e88", + "0402ecf46b90616b534ea25cc9993942fd7576a1c4f2f443d3b1f56d4490bf0af669c9eb" + "9d110fe2a65609875e1a924bc4b9ed2ed2315047bbaeadaa1029b38a7a87dd8751d4128e" + "8002aec3a2f2557c7152a4907af68aa39485274f20927b2da70823440fbd09cbc308d46e" + "30bd6b705f615b7074fe5421ca36b4aa53861983eceae9a69649495952e75b0f060b5d26" + "e4", + "2e3412b61eb23d33ca2910dc25dd14c04d2c8b403d8077a72b9511d71ee9da6d7e1db093" + "b92287f8fb00aea0576f6712c56d80cc4e3554e0faa9c7d911e3d17682de831bf649bd9", + "06a3075efec81a86175cd1dc2bfe82e83aff1db640184a6a3ed7a0dcdef51aa0be0005c5" + "4ac05f9b65af265af7f2ec3d1d7c137184b0d695d701ff1aed194faf2efa98ce6c5e502", + "237d7ff92480fa7d6d1f5a0564a2608afe5e95ce2c29dd88853d1ad9d4d2beb8d1f0423e" + "db883faadd592394f52048bf2dc26d2dc19279477ed86621c7a5960ee3c3e2d345fda29"}, + {NID_sect571r1, NID_sha384, + "c8395546842ddb545d8ea3db4efe970453dcb06025ac3b7a25aa5ef62070f3021b9a1fea" + "91ff7055b6c398073e7886a6f71afe53c82c47b71377dfe291972503bbeb25bd477bf0e7" + "adc8a5d3f8b34ccd0080d61e121214e1b29802b711cdd8a6bb2275a2395c467ec2c15719" + "52992e448d736d8bd70ee629c75b5e32b8323a00", + "274f70fe69e4dbb55c5d404e39f5196335047113087f8711f2f67f2be4964e4fbcb86568" + "0758df1c401cd677b0971654b7a6aeb7bee0d6d80ac0de14d4f46f356b2d5545c185aa6", + "0402b2321e0a1df083919628dd8b4c318b9ded8a3e660ce5585b21e46843228b4d32da76" + "5a3776c181654aad0ce90724bf85b01b051d236342b48d41a1dbda1e9904d659c98a039a" + "97020227182fcf099d46d9882c0b0f26b0595a2a3166248898df2f3fd27c78e7c0b8b59e" + "f0ed6745660c0dea1acb567f9d943928864dd1e94f8eb6b5b8473c0c91485643189cf679" + "d2", + "2f234066c936625fca10dd080cbbb1228c4d2054cbdeafc8a0a248c0d22807fc92c661b4" + "f69586ecf9469bc4c22895cc73ecf492fb2165a12b027194d409677e7185de24f6870a3", + "3a48daa8e379b3b2f377049a4d462530c9ea67019752f4af4b4192b02d6e028386dcb9ef" + "95c8019e90e09dfc8dff5e6f6812df491906ced39befedf16caef614d8c174e7ea95fc1", + "33f18738cb26d88c8c048c58a210c7be70c71636dc62c022df1bd7747d8c67bfcf5ff2fb" + "3990ed35becf6c77755ac62aed480df55efea578671bd8d50536a10e2c0192bd42d78e2"}, + {NID_sect571r1, NID_sha512, + "10d2e00ae57176c79cdfc746c0c887abe799ee445b151b008e3d9f81eb69be40298ddf37" + "b5c45a9b6e5ff83785d8c140cf11e6a4c3879a2845796872363da24b10f1f8d9cc48f8af" + "20681dceb60dd62095d6d3b1779a4a805de3d74e38983b24c0748618e2f92ef7cac257ff" + "4bd1f41113f2891eb13c47930e69ddbe91f270fb", + "03e1b03ffca4399d5b439fac8f87a5cb06930f00d304193d7daf83d5947d0c1e293f74ae" + "f8e56849f16147133c37a6b3d1b1883e5d61d6b871ea036c5291d9a74541f28878cb986", + "0403b236fc135d849d50140fdaae1045e6ae35ef61091e98f5059b30eb16acdd0deb2bc0" + "d3544bc3a666e0014e50030134fe5466a9e4d3911ed580e28851f3747c0010888e819d3d" + "1f03a8b6627a587d289032bd76374d16771188d7ff281c39542c8977f6872fa932e5daa1" + "4e13792dea9ffe8e9f68d6b525ec99b81a5a60cfb0590cc6f297cfff8d7ba1a8bb81fe2e" + "16", + "2e56a94cfbbcd293e242f0c2a2e9df289a9480e6ba52e0f00fa19bcf2a7769bd155e6b79" + "ddbd6a8646b0e69c8baea27f8034a18796e8eb4fe6e0e2358c383521d9375d2b6b437f9", + "2eb1c5c1fc93cf3c8babed12c031cf1504e094174fd335104cbe4a2abd210b5a14b1c3a4" + "55579f1ed0517c31822340e4dd3c1f967e1b4b9d071a1072afc1a199f8c548cd449a634", + "22f97bb48641235826cf4e597fa8de849402d6bd6114ad2d7fbcf53a08247e5ee921f1bd" + "5994dffee36eedff5592bb93b8bb148214da3b7baebffbd96b4f86c55b3f6bbac142442"}, + {NID_sect571r1, NID_sha512, + "b61a0849a28672cb536fcf61ea2eb389d02ff7a09aa391744cae6597bd56703c40c50ca2" + "dee5f7ee796acfd47322f03d8dbe4d99dc8eec588b4e5467f123075b2d74b2a0b0bbfd3a" + "c5487a905fad6d6ac1421c2e564c0cf15e1f0f10bc31c249b7b46edd2462a55f85560d99" + "bde9d5b06b97817d1dbe0a67c701d6e6e7878272", + "2e09ffd8b434bb7f67d1d3ccf482164f1653c6e4ec64dec2517aa21b7a93b2b21ea1eebb" + "54734882f29303e489f02e3b741a87287e2dcdf3858eb6d2ec668f8b5b26f442ce513a2", + "04036f1be8738dd7dae4486b86a08fe90424f3673e76b10e739442e15f3bfafaf841842a" + "c98e490521b7e7bb94c127529f6ec6a42cc6f06fc80606f1210fe020ff508148f93301c9" + "d304d39666ebe99fe214336ad440d776c88eb916f2f4a3433548b87d2aebed840b424d15" + "c8341b4a0a657bf6a234d4fe78631c8e07ac1f4dc7474cd6b4545d536b7b17c160db4562" + "d9", + "378e7801566d7b77db7a474717ab2195b02957cc264a9449d4126a7cc574728ed5a4769a" + "bd5dde987ca66cfe3d45b5fc52ffd266acb8a8bb3fcb4b60f7febbf48aebe33bd3efbdd", + "3d8105f87fe3166046c08e80a28acc98a80b8b7a729623053c2a9e80afd06756edfe09bd" + "cf3035f6829ede041b745955d219dc5d30ddd8b37f6ba0f6d2857504cdc68a1ed812a10", + "34db9998dc53527114518a7ce3783d674ca8cced823fa05e2942e7a0a20b3cc583dcd930" + "c43f9b93079c5ee18a1f5a66e7c3527c18610f9b47a4da7e245ef803e0662e4d2ad721c"}, + {NID_sect571r1, NID_sha512, + "ba6be551bc60653192401ed8ff9e1acd9013d8811a7a1389528bf07438366f5772cd7aed" + "ad010c19c47622cec03a4d35b8003b39ed901b720629ab59de55a03c1ca50a62987f8da1" + "59e356245df58d5ae1936e65f3cd3acbe03ad1d0fcab4aaf2a7a947549ae776772201efb" + "c6fab1aebfa1d99994d4f43dc28f39c0f279b992", + "2a69bc1df069c6e89722521a63675f318252be629e7558f3716917998e660ac960b0b750" + "562846fe6c12ef492951e51e224754bab84a6eacd4147a5f26ae85ee4381bb14ec2a8c7", + "0404685c0358ca31883cdfd7d609afa8b1e47540a97f473e0ebe98b0aaaab9418877aeea" + "d3a26fb01a4725fda20e7223a4fe7de0df6891c0812555b8b146918d3b80edd11615d95b" + "77067c92736447946c7577965b613e18950d813a4df049a6000895f9dac34d73ea46a83c" + "6a4e7c83831af0d33026825664c44090953521175b9da2a7ac563a0fc5e13c85d34aaf49" + "f2", + "1700d9ac00a987ff3a1d0be4290979317fe60f4f8ce1e0e72a026fc89e28c0070b76ada1" + "4f7a1a66ac2e8aef17eec18b568ada4fd59c05414e55356fc17d9e5079e6cabfc1f220d", + "23a279662efec48f6cf8c7334862525b52ac37a9b03da6a063da2849f878015632427834" + "34fca02fa23e32249666ddc6f596e07750ed21de303f4f10de56f1d37101cb0826bb8bf", + "3b449467b150cba0d7c2b44280c5ac452f1217384ce121c979625d313394f6cef501b819" + "80a02567ca55da2bc313dc0754b5256b08d8e3b63ea033253b205cc5dcb014574b8e9a0"}, + {NID_sect571r1, NID_sha512, + "295720a79ac8201f40a66b06ae5d970afb15f36582897eed25cd92edcd00f70ac8e31c55" + "6eed4375ea044c2e8b227a8e02c0a3e996c9272d52ac7b3ad43b80f217295dddc84b177c" + "f1e800ad08bf7fdd021fb2f49b54162092f8d628679c4ee335abbc90c027264c8b288c6e" + "16eca3172eaa297ba50626b00fe0a0ad3a9dbeeb", + "0d11ed1b78b22b3420df4ddc4acc7c2286d9569dd6dd88e0fa3ecae69bcced68bb81bbb4" + "ca6e9b54e67856e7fdf39155aa27aecb9cc827ccb9cdcf9ac633561b27d8eebfc261aee", + "0401868a1335058a69e3ce24ea4e6e8dc25851777bb28d3a5da67b741ec9c46e26f2d2ae" + "70a48c3e4feabb3b15b3c3ebd561f667ef3b95a587621de6073b9c8a904755566c5f7a3b" + "4206365a03c3f3066eca1af17bbbd08cd52e89f8095075b415cd4b82f3364cbff008fe36" + "42fe71e8a8c634ad0e5d9979251e6cedd42cb97c2203f743210051f5ee1b70c861d2a72c" + "00", + "075e49d2ff6f2aa8b44fad90446474ee0e72323a3c39e731b6c2b075cce0cb9d193bc335" + "6f8fdae0e0143603a57028836ee6451cab101a6eb550042cb41b5c4233d3ad3e87034d1", + "207a8eed0b87efe65ec558a0ccbecb13b9215e176abd93c1a4803fcae713927ece70ec6c" + "41c621357d78a13a950958871a52621f1de7ab74befd964a0e8f4820b84af3e0811bc67", + "2f02017714f54089652e02af36ac5165e44ac4a83747c805a9e003fde4bdb29561dcead2" + "c76b02c195074396a2dcc1b93a256c721716f8eeda8dae443c3eea446118fec3cebc4dc"}, + {NID_sect571r1, NID_sha512, + "a9cff41c6dfdc4a12f31dc375a5455950077ae323d0b7a3d9a8dde73b76e9d7b94ddf9c8" + "8ae8e6c262d704052ac47681fc35adfc56c904baaa6e146eb653984369d76a85596cb744" + "941aa7b558c945ff2e81bd5ef7f00ecb4f43af23b4cea3bd4ba7b1899f1868a0c0ecfc62" + "ccb1d588955597ffbbaf34cab2838efc2b866669", + "2c36ef754b5bd065e9eadde684750acc52795be80f54dd3d7a7d743d968a18f7e404bd71" + "f8a76eb0395f396df5a7c2ff7e0ab6de35df34282fda6ee01fe5b9b68ecb4e378dbe32e", + "0404805e1a23b6eadcf91647b40903bc1fd3b9921861c942fc24d2c03d0544e7c01f004c" + "aeed04b5c4ebbce366a098a878c322cbebe7910bfb0f91b284ac1aef344152fc5831669b" + "7904f589ddb4da482ba1e9a59241b1dfbc7e9b9b69e8f69f8e90460ad58fdecc48a56842" + "ea6aa0537abec0a605ebfb713e588685a98f62e05a7d52082bfd57e3d68fb7851b37ec55" + "67", + "2f2002bdde0c0b0fd92e96abe76c0858e42fd7d94a181c711fc6753572539e18effa8155" + "cde7b1e9ceab2394f9eba874b7ea257d7c308c8ac08500f4944af5f33057650608db8fe", + "27f9109799bced42730faecdeea68259383a45033c6d5dc8d87adf994b46beb34177e013" + "700b13f1253cf756a8866218e9c8adc180f3c242c56b3de28405b36940d53c2aab24f1a", + "20a762ffb2f5a88b0e1356964fb558b555c424946109d16c7548f41a33cfe41da1f48327" + "6a27b188faf948a56670716ddf3b187570c9f514869c4492d7773d6ce453a075f9bc64f"}, + {NID_sect571r1, NID_sha512, + "efa6c582d7fcf5e431aa89b3b00180c0e78efd7ccb0384d90b80e59a115a13e55001d951" + "528c42860132531c9b8ab29dda7a657c53c2ce96fd85549f6f1810e121eb89961295335e" + "aa0e40532d85814a4206e6fffdf9bff76599da9b2e71a22ed572910b0e3bae38ad72c704" + "2579f106739a8628dea5a745168bd918736e488a", + "19ffee50be5496507e3ef5c40ee88a49625e46d1dd1686a52b09ad4a8e3ee9ef364f953b" + "fcd97c52104eecb6138067192997cd4ebadaccb73c7b2560879289a46353a756b73cc43", + "04077dca410e722009ef11b37742c2c003ab3015d0ca0328a70d9d41aae04cb64f7746f1" + "c348b08458eb3bb1788f9ffe7d0570a9b689a9b7aca43e05400bace7630d598f5b484d13" + "c407291f74cddd9ff69470cf0d92afaaddcc4c8c274d4a7a64fd94292ddc8bf080606795" + "376bb725ab4d32c72ef77dff34cfedd34aff2f463d635bfcd7e1fd002d84383dc5bf8d5d" + "23", + "2ea37750fc3bbdeec100694068d55f92fdf35bff9ed49251c4b8bbfb2dec2dd4446999af" + "8848e05c7b819aeb1864430ab4e8c1d684e1cf78947a71b04d5ab8ad61cc7e3e4e24205", + "12ff1852eaff37fee997531039adb1fb2f9b4f4199670c022e8534625fff1fa93390ee9b" + "c7204ad2ba3efc2233260943f1d2381a3cc025b78c6d1f660a7bd6f42e5ed3c123055a9", + "1b4d8abb28ef1a9d77066921ed50eba64b8433cf00c66b8467269a4a914f568cdb86c766" + "a7a6a52437c5d98cfc9a2130dfaba20f3c2001f31bba7071647d51fb9fbd5fc67ee120f"}, + {NID_sect571r1, NID_sha512, + "211acebfaf13bba33a9dd16722ec53baab92a140127d61372cbf1850f2fc894e942e25d7" + "80778235f880743953d04eca7a9205602e388172aec2abf35412b483490751f93b51239b" + "6701cb0aab14e5179b0d7f55d8586358381dd83e3e436bf69a6820317d1701750cb1fea1" + "293467ba589eec5f5779c2dbf2a9b8f28c4dc239", + "3129e96fd28c4198cc5242c1e3531a3979fae643d527044e98d7721aa56b5b4b45dfddfa" + "17a4115e10a2b4f46d92f81cbdd7e86e588a4c6d8c2b3a83f54cebcee1d1dd33e85d81a", + "04073a92abcc991e3f89d82c47fa0fec48e3e7c4d97e2525f8dc2d24da39f616af4a5a80" + "4d2603703f6db7cc9324c5b56a21009373f6605f561c8503394e7746e51273b5722ffbc2" + "3d00684c842f03a53a60cce087f4fcdbf23b7a28c48b6b6544f583342a65d97dd87037c6" + "fef176a1f00513713468273494a5be683b68c5e75bc08995fde763bb6f965da1acb7e894" + "f1", + "0165e52640fcaf8cbdbfe73cb8058c53045e7670aafb2def28d2c9eceb5ed1634b5339cc" + "47ba981eb6eb03ba714c7717e9ed5acc15c8f304702a0409bd4508015d4626cfc5484b1", + "27dcdf16b7156a7a05a752da28b5bd6b233e8a7c16eb7f9030f29c4352e6508f8424d1b5" + "ba789dac4152ac4812ff7975cce69908371a81a4d7d9dd70a8dabebdc4e3af27234f0d0", + "32a654a31f09a9803e502a1440c2bcf122780f4f47aa37e15991d9a548583fdca4880080" + "4712816b212cd3c657e6bd4cb7443a0288592541473c5086e1277250612c21346538374"}, + {NID_sect571r1, NID_sha512, + "ee592e20e0a45c18089c2e41460e65a7d22ed9714379f095d43a308bdd383128aaa6fb24" + "e9d35fd28fc95c5b792ad75c980d2cdf0f460ac60b12c5919d3cb28dac4d488196be6c2d" + "fe462b1b0ce59f8501692255840f5215c0fd8b74b1996a267a5e3b22d2841cf0a0b6315e" + "f4ec7180f1c8494f4c07d5869c01fa2711739efc", + "3d723d2697cd07dd8444f992f2ab4a063db334034c25ea9be99fd7a1f495e3a644e5ea03" + "3a41264e0d24a911e55741d0cab80a0bd678eaec2bd1e60424d4491eb86d664900d907e", + "0400c7a229b5fb9fc774c1b6250f3bba2f0972d1aada7080641c014d012db0637a0656a4" + "3024ec0ea25ff70012646dc19eeb1033aebcc96a001ba876b2f5def6e198b8d4a53f7c7f" + "4a009228a68eafaac214fdfa19923a0c19629de31ac0967c9d02c53dbf221f9affb735d3" + "bad732f381f1ca414d70920231a78f742254d895a33ffab492f8e6094a542e77962a324b" + "a4", + "3b3724a5933353bb9ff5f742f59385e780caa517a963590b7fc89882bed95cf90ca6365c" + "e8b882f2d96e56bd866a5c437733b681308c570c51ec893ea95fede66c7aaf4561173f7", + "2a487c1fc29426e8e85f0a35c177cd168a444959b2f5cd4519b9edd52af3ea829cfe964a" + "c2b59198af8e2d3859ebdf9885ebf57bdf5767da1611d3958de286f91ef397230d65599", + "10fc01efcb22b982f992efb71887bc79c3f32a9088bc2011c269924cee0f47c36452399d" + "499f2933587081b872e9fd2191c20cd5cd94927839228ebcf22cf7acdf4608a2fa66310"}, + {NID_sect571r1, NID_sha512, + "fffca41927debbd53455821441d9115db99fb31bfc69752a382f57bc7abe021f148346ee" + "29e17512c64b4918ab2391d12d6e5643bee6b5682885dc28177b292e23a37ff99b359b9c" + "f7578432af56e0ad1028a6cce7428980654c145af8daf09addbb3be11228d3c742defca9" + "d3b1667f48c63091fe3307ecf72667b02e008f24", + "1999ab45d66cd1d3a0fe6aa43bf5ef1e2a67637d53674f6fbbfb9b582be91fc42a12cdca" + "d94b50b0fc7ac55030de24a0b99fbc4314fa743ef4b5198bcc5f54d8b669fbed78e2e91", + "0400cbf3b0bb4a2e6c225aa922bea3b233da4661df5da7e0a1cd343a9b6655ee87fc60cd" + "763dee21eaa2b81c4dd5af6f4fadc3ceea643b37a6b17a6501e1b9b689fb0c4716911c1f" + "10014b5a9ae025f09066fffa6797ddf95f27eeade06b8ca5be5738f770362d5213c46ecf" + "ca58e3c60cb2bae1f8ab1bf0577c80b4fdad02819fc174cafb33df64fc0ec79713f7b252" + "09", + "253b533d3ad1c7095363e3fc80cb32471061e44dab3f9ae0ea6252f6ef169cee8badd3ec" + "cb77096ae9224f89baeee7e183058579680661655fb689419e36a61e8573de5ecb4cd09", + "3ba94f7682fb61de725a35caf1d4d799c4b05a1d1c44eb1c251dd8efab6b7d713c3fb917" + "776902a1bb202f9226558f4c1e75964349717e6dff938d0befea07a9ca1bbd429dd6318", + "226f43be8e24062180c726b5cb721cc04ffd3acd82183925523ff9e8631aecbec2c224d5" + "a291bb225f0da726d256aa822ee7cc2c7d69df3f2a5beb21132d91bea22e4c5db900cec"}, + {NID_sect571r1, NID_sha512, + "a2f71619ea04f7057e6943c2cece8594b341ec3b96c3915d924f94ba13fd7aaeed41ffa0" + "e842ade414784f1ef825fcf2dbcf7bd8263b802def45f94de596aec0c121fc06558c7bb0" + "6b9f27a9bf56c42090b5dc344e82b69c4f528d33be166764a593483f6fda0cf56e6000ff" + "363ba220f5ea0ea2c3191615c7ae3bb4fa575324", + "2ce1cae0716205330d730e6bc6dbfb6b951dc83ee3b4a7dae75d057e32e8a46e22be75b5" + "f09135452b29c34dfe81a9be2e8dcd243fbd946a0ed14a832a7802e20cfe1abfd3d6e4b", + "04075971399fa621ce535144ec1d57f544d798a0a59207166c3d657e5a80ac00e8f5b643" + "448e3546064d68ae624aaabf36face3016561a248256ff9131950ab8b04710551e12222d" + "0c0224a50f321647f47de3db4fbe1bf1e3a3dce8a834312779f66037315e3326721e3fd6" + "3d4d6ef92b7ba1fa9aeb70f92e2a6701458ac8da49ac386491f2306adcd8dd781fe75e99" + "e1", + "0ad95aa69cf9f40e13f8a72ed6d93388168abc8001670ee4d95fb4b726b1f958205ab2f4" + "58df8bb9ccf2405680d0e6951abbb922cc11d47cfded93c0efdb70caf0c54e7ae96d7e5", + "09ce019161bf29eeaf323933045f59d2efc372904ba50c4a6602b8305234a851d95f06a5" + "b56193ad5d28488102ec25e3f421a5f5c4626b435b423d612e6ab60e0a4fe5d4952e2c5", + "04f7b7ac787b361c2bdfa767da9c22152e402184a7ac133f651fdcd928239215dc917401" + "122a6d41e78299b4235e085399e594465b7f8dbfaae9bf302d83470b4295ea06bb9bd1e"}, + {NID_sect571r1, NID_sha512, + "b60415a831eca2cf60c79a334ef2f327a76d290846ee588d5d33d0a826bb0c7ec3e11dbb" + "384a7f89c8d180425dfae7463e0ea6497d2eec1dde112f1c1efccb532a2e2b66a28e2d36" + "d4252a4c3b12850d465fe21bddc441b92e6a7b0f67744f7f6e7812a0603211a26518b311" + "a5b190ed890ad852bed4f6ed13377cab3eebedf4", + "2c9d0fcfcee7e75c3245ba955ae04188b1033c55ec9c821d8de7685276bda3e9a93c3ae1" + "b003e5ea722913e7b169d67b1aa2dc8cd42adbd9368672a3f81a6817bf3e5529dcb0c8b", + "04019cba4c8ddadb596d7303331f2a22461849ebfbc78ea69277f72dcfe23d08397025ff" + "6691c61ed9958d68a9c5dd8a32048a89a2553afb9077ec43358763756b1473ab2cd8f25b" + "530319eeaa78444b7cc5d8cff4e9199ddd2c6dc7bd935a1be1d8b1c657dd5ac49bc92b0c" + "d91304ef44ddb7ecac05518301bfa0e533402043533f99549621e31dcc282a52186478df" + "2b", + "385e12170ed0b23c9c65ff7edd413145fd343dd841e85c498fae5f36e577641688999028" + "17d4dc39127010faa1da68000a511ac69f80708be5afe1631432f3bab7aaec2bdeb11b4", + "231ef400c6a3a0c7b26ba1b92341b72e138ca62d04ea2172854631c40c48081a18a57e9f" + "055748245d3e83d10d21af39935b0e50c9c86956ac46c1ea03ac4ae023d84b24f830973", + "24d37d67afafb0676cd7b5da2960cabfc804b0b3244b5e6739f8fe43d0841693d28c61b8" + "e76181f8aa24940d76fc5ea8ef3a95f72f67303e1ed85ad6e83cd2c44fd0e0f3f2f44f4"}, + {NID_sect571r1, NID_sha512, + "5d15a08226cc74cf495be681b795d0bde26b19f29aca1a8c6ef77d50271ebdcb4e5fa2df" + "23961fe11620b1c6580183f6ebdceb2c09516c8127be576496fb71449bbbf0a9d3d1c48a" + "25024619b97c3e0d8b165897db96ae9758d13ac28441d7cbfb75b23cb423e0002046358b" + "b6d64779974a5995dfe54b398f95f7d64fc52d96", + "10c057bbaa44ef0f565edc288bfe66d4f6acd8686899359bca418ba89fb690429489a37b" + "d3c6c9f3a8714b2ca225868c6a45fee360e378a676f7ea39321790f32a4b005b81dce43", + "04043b1e7d7b2aee3563813a6692f0b4b61ba82b801697c3e23724a2fbab2af80a2c56be" + "55af41def0a90cbfce7a45ec61629906055a8b2a5013740e96859e580c444ae9f0ddf73a" + "fe06742f13244f1bf156d321eab2c3095ca548c3182c405187c3de2fbcb01d0e16e1fef2" + "46012c87d4d32378629a75b694572ec8583ae0cc813ac64f10bb05a9e52e4805590482f2" + "89", + "2b8076102a6448bd4c4e192e93cdb96ea9a6c7f6753818267ee9e67644df1a4a6c9ff64b" + "be9f64904648cc640fb7f0cce69f9e02878ee950b91ad559a9ec0ae15b676d933f1620f", + "1ad97f4997037adfe306f3859d550f9fd89bce8b566e657d5742feb17466b6b8d507d581" + "0a8cbba44d671b043ddb557df084bf5d1de74ef8bbd6a93690459fc16a17b80dd6c0f28", + "3262ef6e4175e7afe095d18157f67b3d12564d54954e9964e991c31bcfe1dee7e86b3549" + "1ce818400cc0f83b819f478f2f2c2d21c6c7a6be43938841559e09bce70b0d61fe51245"}, + {NID_sect571r1, NID_sha512, + "9eca4bd88200baf61b901fca53dc1f1e7e3f83b94d58a6cc6a2adbc9b1a35fe3f8ec6178" + "7c76ed9a0d696167cd4fe46e1a0883fda564666131753c576a720125e0b712db1da02780" + "67cb899bdb14eec08737e864544663abb1d62f34a2114be07e8e3cf56e2d17099299ce6b" + "6d83b1a34e6153d7c6a32a72c7b1bf4583fcbcf7", + "2c182df7976ea93d996f3ba5d2221f3cb755cc7847bc3fe9e022fa4285046f5bfb426baf" + "a3580beea206de36f87593ae561b4b74a03fcd61fbd0e8d6fd5668f2148819a88a650aa", + "0406004b26a184ed710a5fb67e9d042f7fb9c8f5584b1f70a91b0b3be41c3fd2cd1a537e" + "962fdac8756df33f80fce2bb1bc7241d325bfc36dbaef7cf625918d589b6352fa7447189" + "10036a29b04a494abfe809d956c3cd6f84ea51a7fa28cb39a52f16137a13f72f0726a84f" + "6ae53ae24f5b468733f4cbfa0ce5bbbc1cc7b348fb996d33a45ff656a6a7557619f598a6" + "b7", + "2ab349232bcb4f4816b26bd0049e130fffc90ca0b9308edd50fb9055358a87fe798d0014" + "0b0ae01ed8b1f6bb9bfb726b253c3d4949ce9eecaa6c7fa84d1ef812669fa929f26be0f", + "0bbf2f9765b12742224ba7d064358c0305fb63e9b54a831e302a4546aa02cace798d82a1" + "88d2f536d78544c1571f481289d6ec69d117648026490e781f1eb9fca59bee05234ba7e", + "27e07ee0a1a99c90753cdc8c0291da25a82c116e62ec58b93f91086ac1cc039b35ce7d8b" + "53cdaa92a5ade65a7684b6e7ab79873dce33dcd467c39d0c764ee390b7fb25ca18912c3"}, + {NID_sect571r1, NID_sha512, + "707450bd84141f3b61beb12ffa5ae89d812dd11badcdf6a88a2d50fc70e23f6d822ff447" + "7047abc58cdfa28f97ad7f4911ae0773c04ebed1f51bb2308cf6e5712c4aaed461edd698" + "7fdd1796aab70198276b601241f6a14225dce575830ff60f935fd9f567d1d210652e4710" + "922fa793da78c8fdc30c273cb08365c9fc887f50", + "2d3a65bbe133cc98cf0eb56ee1362195968b4eab960a1d55d8b762f1361fc21348d6f275" + "d4bea1de7158fb97c995e20b92a9c887a3e332d154667ad167acc632eb88a0ead6113a2", + "04034355b54d00c3df7c2762ee2982cb777491aaf78e550c4d2ff5d5a893416eb3517671" + "dbe522b8c553fd71edfe0306cd7628324f4f748091fc5d84ad8af33b896985674649a6f4" + "e507e322a04eb600a3faf3e045959f1e9f798e1c965ced40fd4c0383c0d4e79a96bf693a" + "91d7662780990d0c9dfca77a9bc0e13551d2ab35af8a153fa34ea903961fe66996ca053b" + "64", + "0a59ac1240bcefc52456486ce23b780cc92c8b89314b8442a6898c373bd0adc3725e3eba" + "c580546d1ec82ebfb2e04c608441d962d759ab5f5af1596c6623487e1347537a3c35bf4", + "0c47ef55d93ac36cee537160bbe39c3d4504184188533edfe589a5ab6e5a3e06ef413aa4" + "8710d304f0b2bc380fd69a34aa0b8e2e9466fd8a131cb056dffe4b809a59fd83e594483", + "2d8de1e8e2a52dd1be08435cda69e673b328573edeb1767849536e6f2d5fc8f18f7bfde9" + "36d8c32ecbfa97bf976133d65641320ca1c41e81c388fd6088884bbd89274b1976470fc"}, + {NID_sect571r1, NID_sha512, + "d5ce9d59391cdc47ef942dd2a818d024ae3917deea8a5a4214e4db6a0c5e6b0936f3e632" + "fdb68a3f0006e05c44b7232013e1da5f877cd197f44fd6f60c1fd2378995e9a47534948c" + "5a09e33750f07a7165072ab38095373b07a50bc1391eb6b650ee13acd63d0352e7d9c316" + "95ea1ec6323f9b5f57b426ace56aa7fdbf419be0", + "2a920e8dc928acdd56e3655b2340d4371c793e66f67405fb7a90f31e9c4ef466cc44331d" + "1d2fe3ff7391d2576dc6640772166ef8c154a5ff1808f5dab2f03061070ec8b3f786c36", + "0405edc0fb974314e21ad40d73524d5620b7279084e3ecb9e58b06340ae53d2383efd206" + "b8b1eb3dd60c38f593efc05e2ba5fb8989472bac7db60fcada2d18d4108ab36e8c20cc71" + "0d00444cf65175f6bbaf647739cfd8407e7036fc6cc6208ccb9d776eb13e13b377136c68" + "3e108775d85b6bc5638926432a17344de965d45e042a0a8e0b63c7fc3a36fc15cf718f3b" + "af", + "35a0215892d0c52ece29559ebfa061011da8d597af6b3d1ee988ea4819be194c79a42681" + "476140738b1b5dc191485bd20c96c282ab38ddbc3987343155366b6a5d1ce7053efcd83", + "1a69a9a51f6b0dc196b2a8db2e8bf61764d4c65b038f43b5ed6b5dc2673971c32928606f" + "92b7caafb4dab3cd61ee724bba71a0d5c788cde4b96ef6b453f2a69126dafc20dbc7c82", + "13b5463636b8462cd9f479de8d114e29e7011489bcb9735ffe9ca0707a07df3c0aba0504" + "3eab387bfedd9fe982fbf04968f2be200e9e052cb4b02223b8579913d713acf94e7dc80"}, + /* binary KATs from X9.62 */ + {NID_X9_62_c2tnb191v1, NID_sha1, + "616263", /* "abc" */ + "340562e1dda332f9d2aec168249b5696ee39d0ed4d03760f", + "045de37e756bd55d72e3768cb396ffeb962614dea4ce28a2e755c0e0e02f5fb132caf416" + "ef85b229bbb8e1352003125ba1", + "3eeace72b4919d991738d521879f787cb590aff8189d2b69", + "038e5a11fb55e4c65471dcd4998452b1e02d8af7099bb930", + "0c9a08c34468c244b4e5d6b21b3c68362807416020328b6e"}, + {NID_X9_62_c2tnb239v1, NID_sha1, + "616263", /* "abc" */ + "151a30a6d843db3b25063c5108255cc4448ec0f4d426d4ec884502229c96", + "045894609ccecf9a92533f630de713a958e96c97ccb8f5abb5a688a238deed6dc2d9d0c9" + "4ebfb7d526ba6a61764175b99cb6011e2047f9f067293f57f5", + "18d114bdf47e2913463e50375dc92784a14934a124f83d28caf97c5d8aab", + "03210d71ef6c10157c0d1053dff93e8b085f1e9bc22401f7a24798a63c00", + "1c8c4343a8ecbf7c4d4e48f7d76d5658bc027c77086ec8b10097deb307d6"} +# endif /* OPENSSL_NO_EC2M */ +}; +#endif /* ECDSATEST_CAVS_H */ diff --git a/test/ectest.c b/test/ectest.c index 2703cb4a347885bc685be491dfb890940e0fbf63..269ec4ef8f11552b66778bfd6af28c09e45dea4e 100644 --- a/test/ectest.c +++ b/test/ectest.c @@ -1,5 +1,5 @@ /* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * * Licensed under the OpenSSL license (the "License"). You may not use @@ -1403,6 +1403,75 @@ err: BN_CTX_free(ctx); return r; } + +/* + * Tests a point known to cause an incorrect underflow in an old version of + * ecp_nist521.c + */ +static int underflow_test(void) +{ + BN_CTX *ctx = NULL; + EC_GROUP *grp = NULL; + EC_POINT *P = NULL, *Q = NULL, *R = NULL; + BIGNUM *x1 = NULL, *y1 = NULL, *z1 = NULL, *x2 = NULL, *y2 = NULL; + BIGNUM *k = NULL; + int testresult = 0; + const char *x1str = + "1534f0077fffffe87e9adcfe000000000000000000003e05a21d2400002e031b1f4" + "b80000c6fafa4f3c1288798d624a247b5e2ffffffffffffffefe099241900004"; + const char *p521m1 = + "1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"; + + ctx = BN_CTX_new(); + if (!TEST_ptr(ctx)) + return 0; + + BN_CTX_start(ctx); + x1 = BN_CTX_get(ctx); + y1 = BN_CTX_get(ctx); + z1 = BN_CTX_get(ctx); + x2 = BN_CTX_get(ctx); + y2 = BN_CTX_get(ctx); + k = BN_CTX_get(ctx); + if (!TEST_ptr(k)) + goto err; + + grp = EC_GROUP_new_by_curve_name(NID_secp521r1); + P = EC_POINT_new(grp); + Q = EC_POINT_new(grp); + R = EC_POINT_new(grp); + if (!TEST_ptr(grp) || !TEST_ptr(P) || !TEST_ptr(Q) || !TEST_ptr(R)) + goto err; + + if (!TEST_int_gt(BN_hex2bn(&x1, x1str), 0) + || !TEST_int_gt(BN_hex2bn(&y1, p521m1), 0) + || !TEST_int_gt(BN_hex2bn(&z1, p521m1), 0) + || !TEST_int_gt(BN_hex2bn(&k, "02"), 0) + || !TEST_true(EC_POINT_set_Jprojective_coordinates_GFp(grp, P, x1, + y1, z1, ctx)) + || !TEST_true(EC_POINT_mul(grp, Q, NULL, P, k, ctx)) + || !TEST_true(EC_POINT_get_affine_coordinates(grp, Q, x1, y1, ctx)) + || !TEST_true(EC_POINT_dbl(grp, R, P, ctx)) + || !TEST_true(EC_POINT_get_affine_coordinates(grp, R, x2, y2, ctx))) + goto err; + + if (!TEST_int_eq(BN_cmp(x1, x2), 0) + || !TEST_int_eq(BN_cmp(y1, y2), 0)) + goto err; + + testresult = 1; + + err: + BN_CTX_end(ctx); + EC_POINT_free(P); + EC_POINT_free(Q); + EC_POINT_free(R); + EC_GROUP_free(grp); + BN_CTX_free(ctx); + + return testresult; +} # endif static const unsigned char p521_named[] = { @@ -1510,6 +1579,7 @@ int setup_tests(void) # endif # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 ADD_ALL_TESTS(nistp_single_test, OSSL_NELEM(nistp_tests_params)); + ADD_TEST(underflow_test); # endif ADD_ALL_TESTS(internal_curve_test, crv_len); ADD_ALL_TESTS(internal_curve_test_method, crv_len); diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c index e396b07f5fab8e52a05185bc85792174bbd82eda..8277f950b19a65aa66c0e37cdf014979de1bec63 100644 --- a/test/evp_extra_test.c +++ b/test/evp_extra_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -299,6 +299,21 @@ static const unsigned char kExampleECPubKeyDER[] = { 0x56, 0x6a, 0xc6, 0xc8, 0xa5, 0x0b, 0xe5 }; +/* + * kExampleBadECKeyDER is a sample EC public key with a wrong OID + * 1.2.840.10045.2.2 instead of 1.2.840.10045.2.1 - EC Public Key + */ +static const unsigned char kExampleBadECPubKeyDER[] = { + 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x02, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, + 0x42, 0x00, 0x04, 0xba, 0xeb, 0x83, 0xfb, 0x3b, 0xb2, 0xff, 0x30, 0x53, + 0xdb, 0xce, 0x32, 0xf2, 0xac, 0xae, 0x44, 0x0d, 0x3d, 0x13, 0x53, 0xb8, + 0xd1, 0x68, 0x55, 0xde, 0x44, 0x46, 0x05, 0xa6, 0xc9, 0xd2, 0x04, 0xb7, + 0xe3, 0xa2, 0x96, 0xc8, 0xb2, 0x5e, 0x22, 0x03, 0xd7, 0x03, 0x7a, 0x8b, + 0x13, 0x5c, 0x42, 0x49, 0xc2, 0xab, 0x86, 0xd6, 0xac, 0x6b, 0x93, 0x20, + 0x56, 0x6a, 0xc6, 0xc8, 0xa5, 0x0b, 0xe5 +}; + static const unsigned char pExampleECParamDER[] = { 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07 }; @@ -494,6 +509,66 @@ static int test_d2i_AutoPrivateKey(int i) } #ifndef OPENSSL_NO_EC + +static const unsigned char ec_public_sect163k1_validxy[] = { + 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04, + 0x02, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69, + 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0x79, 0x02, 0xd1, 0x7b, + 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3, + 0x6a, 0xd8, 0x17, 0x65, 0x41, 0x2f +}; + +static const unsigned char ec_public_sect163k1_badx[] = { + 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04, + 0x0a, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69, + 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0xb0, 0x02, 0xd1, 0x7b, + 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3, + 0x6a, 0xd8, 0x17, 0x65, 0x41, 0x2f +}; + +static const unsigned char ec_public_sect163k1_bady[] = { + 0x30, 0x40, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, + 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x01, 0x03, 0x2c, 0x00, 0x04, + 0x02, 0x84, 0x58, 0xa6, 0xd4, 0xa0, 0x35, 0x2b, 0xae, 0xf0, 0xc0, 0x69, + 0x05, 0xcf, 0x2a, 0x50, 0x33, 0xf9, 0xe3, 0x92, 0x79, 0x0a, 0xd1, 0x7b, + 0x9f, 0x22, 0x00, 0xf0, 0x3b, 0x0e, 0x5d, 0x2e, 0xb7, 0x23, 0x24, 0xf3, + 0x6a, 0xd8, 0x17, 0x65, 0x41, 0xe6 +}; + +static struct ec_der_pub_keys_st { + const unsigned char *der; + size_t len; + int valid; +} ec_der_pub_keys[] = { + { ec_public_sect163k1_validxy, sizeof(ec_public_sect163k1_validxy), 1 }, + { ec_public_sect163k1_badx, sizeof(ec_public_sect163k1_badx), 0 }, + { ec_public_sect163k1_bady, sizeof(ec_public_sect163k1_bady), 0 }, +}; + +/* + * Tests the range of the decoded EC char2 public point. + * See ec_GF2m_simple_oct2point(). + */ +static int test_invalide_ec_char2_pub_range_decode(int id) +{ + int ret = 0; + BIO *bio = NULL; + EC_KEY *eckey = NULL; + + if (!TEST_ptr(bio = BIO_new_mem_buf(ec_der_pub_keys[id].der, + ec_der_pub_keys[id].len))) + goto err; + eckey = d2i_EC_PUBKEY_bio(bio, NULL); + ret = (ec_der_pub_keys[id].valid && TEST_ptr(eckey)) + || TEST_ptr_null(eckey); +err: + EC_KEY_free(eckey); + BIO_free(bio); + return ret; +} + /* Tests loading a bad key in PKCS8 format */ static int test_EVP_PKCS82PKEY(void) { @@ -963,6 +1038,37 @@ static int test_HKDF(void) return ret; } +#ifndef OPENSSL_NO_EC +static int test_X509_PUBKEY_inplace(void) +{ + int ret = 0; + X509_PUBKEY *xp = NULL; + const unsigned char *p = kExampleECPubKeyDER; + size_t input_len = sizeof(kExampleECPubKeyDER); + + if (!TEST_ptr(xp = d2i_X509_PUBKEY(NULL, &p, input_len))) + goto done; + + if (!TEST_ptr(X509_PUBKEY_get0(xp))) + goto done; + + p = kExampleBadECPubKeyDER; + input_len = sizeof(kExampleBadECPubKeyDER); + + if (!TEST_ptr(xp = d2i_X509_PUBKEY(&xp, &p, input_len))) + goto done; + + if (!TEST_true(X509_PUBKEY_get0(xp) == NULL)) + goto done; + + ret = 1; + +done: + X509_PUBKEY_free(xp); + return ret; +} +#endif + int setup_tests(void) { ADD_TEST(test_EVP_DigestSignInit); @@ -987,5 +1093,10 @@ int setup_tests(void) return 0; ADD_ALL_TESTS(test_EVP_PKEY_check, OSSL_NELEM(keycheckdata)); ADD_TEST(test_HKDF); +#ifndef OPENSSL_NO_EC + ADD_TEST(test_X509_PUBKEY_inplace); + ADD_ALL_TESTS(test_invalide_ec_char2_pub_range_decode, + OSSL_NELEM(ec_der_pub_keys)); +#endif return 1; } diff --git a/test/evp_test.c b/test/evp_test.c index e7e376e657a156b08c3f9e5b53a8ebd3024c51c6..7a3e41c88556957a61dd8716e2a7ee1328ede246 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -462,6 +462,7 @@ typedef struct cipher_data_st { size_t aad_len; unsigned char *tag; size_t tag_len; + int tag_late; } CIPHER_DATA; static int cipher_test_init(EVP_TEST *t, const char *alg) @@ -525,6 +526,15 @@ static int cipher_test_parse(EVP_TEST *t, const char *keyword, return parse_bin(value, &cdat->aad, &cdat->aad_len); if (strcmp(keyword, "Tag") == 0) return parse_bin(value, &cdat->tag, &cdat->tag_len); + if (strcmp(keyword, "SetTagLate") == 0) { + if (strcmp(value, "TRUE") == 0) + cdat->tag_late = 1; + else if (strcmp(value, "FALSE") == 0) + cdat->tag_late = 0; + else + return 0; + return 1; + } } if (strcmp(keyword, "Operation") == 0) { @@ -610,7 +620,7 @@ static int cipher_test_enc(EVP_TEST *t, int enc, * If encrypting or OCB just set tag length initially, otherwise * set tag length and value. */ - if (enc || expected->aead == EVP_CIPH_OCB_MODE) { + if (enc || expected->aead == EVP_CIPH_OCB_MODE || expected->tag_late) { t->err = "TAG_LENGTH_SET_ERROR"; tag = NULL; } else { @@ -633,14 +643,6 @@ static int cipher_test_enc(EVP_TEST *t, int enc, goto err; } - if (!enc && expected->aead == EVP_CIPH_OCB_MODE) { - if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, - expected->tag_len, expected->tag)) { - t->err = "TAG_SET_ERROR"; - goto err; - } - } - if (expected->aead == EVP_CIPH_CCM_MODE) { if (!EVP_CipherUpdate(ctx, NULL, &tmplen, NULL, out_len)) { t->err = "CCM_PLAINTEXT_LENGTH_SET_ERROR"; @@ -675,6 +677,15 @@ static int cipher_test_enc(EVP_TEST *t, int enc, goto err; } } + + if (!enc && (expected->aead == EVP_CIPH_OCB_MODE || expected->tag_late)) { + if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, + expected->tag_len, expected->tag)) { + t->err = "TAG_SET_ERROR"; + goto err; + } + } + EVP_CIPHER_CTX_set_padding(ctx, 0); t->err = "CIPHERUPDATE_ERROR"; tmplen = 0; @@ -1559,15 +1570,18 @@ static int encode_test_init(EVP_TEST *t, const char *encoding) } else if (strcmp(encoding, "invalid") == 0) { edata->encoding = BASE64_INVALID_ENCODING; if (!TEST_ptr(t->expected_err = OPENSSL_strdup("DECODE_ERROR"))) - return 0; + goto err; } else { TEST_error("Bad encoding: %s." " Should be one of {canonical, valid, invalid}", encoding); - return 0; + goto err; } t->data = edata; return 1; +err: + OPENSSL_free(edata); + return 0; } static void encode_test_cleanup(EVP_TEST *t) @@ -1596,7 +1610,7 @@ static int encode_test_run(EVP_TEST *t) ENCODE_DATA *expected = t->data; unsigned char *encode_out = NULL, *decode_out = NULL; int output_len, chunk_len; - EVP_ENCODE_CTX *decode_ctx; + EVP_ENCODE_CTX *decode_ctx = NULL, *encode_ctx = NULL; if (!TEST_ptr(decode_ctx = EVP_ENCODE_CTX_new())) { t->err = "INTERNAL_ERROR"; @@ -1604,7 +1618,6 @@ static int encode_test_run(EVP_TEST *t) } if (expected->encoding == BASE64_CANONICAL_ENCODING) { - EVP_ENCODE_CTX *encode_ctx; if (!TEST_ptr(encode_ctx = EVP_ENCODE_CTX_new()) || !TEST_ptr(encode_out = @@ -1612,15 +1625,15 @@ static int encode_test_run(EVP_TEST *t) goto err; EVP_EncodeInit(encode_ctx); - EVP_EncodeUpdate(encode_ctx, encode_out, &chunk_len, - expected->input, expected->input_len); + if (!TEST_true(EVP_EncodeUpdate(encode_ctx, encode_out, &chunk_len, + expected->input, expected->input_len))) + goto err; + output_len = chunk_len; EVP_EncodeFinal(encode_ctx, encode_out + chunk_len, &chunk_len); output_len += chunk_len; - EVP_ENCODE_CTX_free(encode_ctx); - if (!memory_err_compare(t, "BAD_ENCODING", expected->output, expected->output_len, encode_out, output_len)) @@ -1658,6 +1671,7 @@ static int encode_test_run(EVP_TEST *t) OPENSSL_free(encode_out); OPENSSL_free(decode_out); EVP_ENCODE_CTX_free(decode_ctx); + EVP_ENCODE_CTX_free(encode_ctx); return 1; } diff --git a/test/handshake_helper.c b/test/handshake_helper.c index 40bfd3ec26a4f152017ca0fc1349728fb9fda6ad..27ff794014d7c082a7ffbdd7cf87de059927523c 100644 --- a/test/handshake_helper.c +++ b/test/handshake_helper.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -22,6 +22,10 @@ #include "handshake_helper.h" #include "testutil.h" +#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK) +#include <netinet/sctp.h> +#endif + HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void) { HANDSHAKE_RESULT *ret; @@ -1282,13 +1286,33 @@ static int peer_pkey_type(SSL *s) #if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK) static int set_sock_as_sctp(int sock) { + struct sctp_assocparams assocparams; + struct sctp_rtoinfo rto_info; + BIO *tmpbio; + + /* + * To allow tests to fail fast (within a second or so), reduce the + * retransmission timeouts and the number of retransmissions. + */ + memset(&rto_info, 0, sizeof(struct sctp_rtoinfo)); + rto_info.srto_initial = 100; + rto_info.srto_max = 200; + rto_info.srto_min = 50; + (void)setsockopt(sock, IPPROTO_SCTP, SCTP_RTOINFO, + (const void *)&rto_info, sizeof(struct sctp_rtoinfo)); + memset(&assocparams, 0, sizeof(struct sctp_assocparams)); + assocparams.sasoc_asocmaxrxt = 2; + (void)setsockopt(sock, IPPROTO_SCTP, SCTP_ASSOCINFO, + (const void *)&assocparams, + sizeof(struct sctp_assocparams)); + /* * For SCTP we have to set various options on the socket prior to * connecting. This is done automatically by BIO_new_dgram_sctp(). * We don't actually need the created BIO though so we free it again * immediately. */ - BIO *tmpbio = BIO_new_dgram_sctp(sock, BIO_NOCLOSE); + tmpbio = BIO_new_dgram_sctp(sock, BIO_NOCLOSE); if (tmpbio == NULL) return 0; @@ -1438,6 +1462,13 @@ static HANDSHAKE_RESULT *do_handshake_internal( return NULL; } +#if !defined(OPENSSL_NO_SCTP) && !defined(OPENSSL_NO_SOCK) + if (test_ctx->enable_client_sctp_label_bug) + SSL_CTX_set_mode(client_ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG); + if (test_ctx->enable_server_sctp_label_bug) + SSL_CTX_set_mode(server_ctx, SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG); +#endif + /* Setup SSL and buffers; additional configuration happens below. */ if (!create_peer(&server, server_ctx)) { TEST_note("creating server context"); diff --git a/test/ocspapitest.c b/test/ocspapitest.c index 43b03e3f51e54ee41f1bba49dc630e3a93126b3b..8e9b7c0a9c488513a189299c334587729e8e10bf 100644 --- a/test/ocspapitest.c +++ b/test/ocspapitest.c @@ -1,5 +1,5 @@ /* - * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -47,6 +47,24 @@ static int get_cert_and_key(X509 **cert_out, EVP_PKEY **key_out) return 0; } +static int get_cert(X509 **cert_out) +{ + BIO *certbio; + X509 *cert = NULL; + + if (!TEST_ptr(certbio = BIO_new_file(certstr, "r"))) + return 0; + cert = PEM_read_bio_X509(certbio, NULL, NULL, NULL); + BIO_free(certbio); + if (!TEST_ptr(cert)) + goto end; + *cert_out = cert; + return 1; + end: + X509_free(cert); + return 0; +} + static OCSP_BASICRESP *make_dummy_resp(void) { const unsigned char namestr[] = "openssl.example.com"; @@ -131,7 +149,67 @@ static int test_resp_signer(void) EVP_PKEY_free(key); return ret; } -#endif + +static int test_access_description(int testcase) +{ + ACCESS_DESCRIPTION *ad = ACCESS_DESCRIPTION_new(); + int ret = 0; + + if (!TEST_ptr(ad)) + goto err; + + switch (testcase) { + case 0: /* no change */ + break; + case 1: /* check and release current location */ + if (!TEST_ptr(ad->location)) + goto err; + GENERAL_NAME_free(ad->location); + ad->location = NULL; + break; + case 2: /* replace current location */ + GENERAL_NAME_free(ad->location); + ad->location = GENERAL_NAME_new(); + if (!TEST_ptr(ad->location)) + goto err; + break; + } + ACCESS_DESCRIPTION_free(ad); + ret = 1; +err: + return ret; +} + +static int test_ocsp_url_svcloc_new(void) +{ + static const char * urls[] = { + "www.openssl.org", + "www.openssl.net", + NULL + }; + + X509 *issuer = NULL; + X509_EXTENSION * ext = NULL; + int ret = 0; + + if (!TEST_true(get_cert(&issuer))) + goto err; + + /* + * Test calling this ocsp method to catch any memory leak + */ + ext = OCSP_url_svcloc_new(X509_get_issuer_name(issuer), urls); + if (!TEST_ptr(ext)) + goto err; + + X509_EXTENSION_free(ext); + ret = 1; +err: + X509_free(issuer); + return ret; +} + +#endif /* OPENSSL_NO_OCSP */ int setup_tests(void) { @@ -140,6 +218,8 @@ int setup_tests(void) return 0; #ifndef OPENSSL_NO_OCSP ADD_TEST(test_resp_signer); + ADD_ALL_TESTS(test_access_description, 3); + ADD_TEST(test_ocsp_url_svcloc_new); #endif return 1; } diff --git a/test/rdrand_sanitytest.c b/test/rdrand_sanitytest.c index 0e67b377bd4d2c130f3aa44ada2cac49ae0ec0d2..906752a619d30c45cf69a1eebb6210310af76654 100644 --- a/test/rdrand_sanitytest.c +++ b/test/rdrand_sanitytest.c @@ -1,6 +1,6 @@ /* - * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. - * + * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. + * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at @@ -24,7 +24,7 @@ void OPENSSL_cpuid_setup(void); extern unsigned int OPENSSL_ia32cap_P[4]; -static int sanity_check_bytes(size_t (*rng)(unsigned char *, size_t), +static int sanity_check_bytes(size_t (*rng)(unsigned char *, size_t), int rounds, int min_failures, int max_retries, int max_zero_words) { int testresult = 0; diff --git a/test/recipes/02-test_errstr.t b/test/recipes/02-test_errstr.t new file mode 100644 index 0000000000000000000000000000000000000000..3a04310e112d94d41fb79b01e6b6efda00a33a47 --- /dev/null +++ b/test/recipes/02-test_errstr.t @@ -0,0 +1,121 @@ +#! /usr/bin/env perl +# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +no strict 'refs'; # To be able to use strings as function refs +use OpenSSL::Test; +use OpenSSL::Test::Utils; +use Errno qw(:POSIX); +use POSIX qw(strerror); + +# We actually have space for up to 4095 error messages, +# numerically speaking... but we're currently only using +# numbers 1 through 127. +# This constant should correspond to the same constant +# defined in crypto/err/err.c, or at least must not be +# assigned a greater number. +use constant NUM_SYS_STR_REASONS => 127; + +setup('test_errstr'); + +# In a cross compiled situation, there are chances that our +# application is linked against different C libraries than +# perl, and may thereby get different error messages for the +# same error. +# The safest is not to test under such circumstances. +plan skip_all => 'This is unsupported for cross compiled configurations' + if config('CROSS_COMPILE'); + +# The same can be said when compiling OpenSSL with mingw configuration +# on Windows when built with msys perl. Similar problems are also observed +# in MSVC builds, depending on the perl implementation used. +plan skip_all => 'This is unsupported on MSYS/MinGW or MSWin32' + if $^O eq 'msys' or $^O eq 'MSWin32'; + +plan skip_all => 'OpenSSL is configured "no-autoerrinit" or "no-err"' + if disabled('autoerrinit') || disabled('err'); + +# These are POSIX error names, which Errno implements as functions +# (this is documented) +my @posix_errors = @{$Errno::EXPORT_TAGS{POSIX}}; + +if ($^O eq 'MSWin32') { + # On Windows, these errors have been observed to not always be loaded by + # apps/openssl, while they are in perl, which causes a difference that we + # consider a false alarm. So we skip checking these errors. + # Because we can't know exactly what symbols exist in a perticular perl + # version, we resort to discovering them directly in the Errno package + # symbol table. + my @error_skiplist = qw( + ENETDOWN + ENETUNREACH + ENETRESET + ECONNABORTED + EISCONN + ENOTCONN + ESHUTDOWN + ETOOMANYREFS + ETIMEDOUT + EHOSTDOWN + EHOSTUNREACH + EALREADY + EINPROGRESS + ESTALE + EUCLEAN + ENOTNAM + ENAVAIL + ENOMEDIUM + ENOKEY + ); + @posix_errors = + grep { + my $x = $_; + ! grep { + exists $Errno::{$_} && $x == $Errno::{$_} + } @error_skiplist + } @posix_errors; +} + +plan tests => scalar @posix_errors + +1 # Checking that error 128 gives 'reason(128)' + +1 # Checking that error 0 gives the library name + ; + +foreach my $errname (@posix_errors) { + my $errnum = "Errno::$errname"->(); + + SKIP: { + skip "Error $errname ($errnum) isn't within our range", 1 + if $errnum > NUM_SYS_STR_REASONS; + + my $perr = eval { + # Set $! to the error number... + local $! = $errnum; + # ... and $! will give you the error string back + $! + }; + + # We know that the system reasons are in OpenSSL error library 2 + my @oerr = run(app([ qw(openssl errstr), sprintf("2%06x", $errnum) ]), + capture => 1); + $oerr[0] =~ s|\R$||; + $oerr[0] =~ s|.*system library:||g; # The actual message is last + + ok($oerr[0] eq $perr, "($errnum) '$oerr[0]' == '$perr'"); + } +} + +my @after = run(app([ qw(openssl errstr 2000080) ]), capture => 1); +$after[0] =~ s|\R$||; +$after[0] =~ s|.*system library:||g; +ok($after[0] eq "reason(128)", "(128) '$after[0]' == 'reason(128)'"); + +my @zero = run(app([ qw(openssl errstr 2000000) ]), capture => 1); +$zero[0] =~ s|\R$||; +$zero[0] =~ s|.*system library:||g; +ok($zero[0] eq "system library", "(0) '$zero[0]' == 'system library'"); diff --git a/test/recipes/03-test_internal_ec.t b/test/recipes/03-test_internal_ec.t new file mode 100644 index 0000000000000000000000000000000000000000..0d31d0ac070fa4ce926efda9a48bc30c42cc8884 --- /dev/null +++ b/test/recipes/03-test_internal_ec.t @@ -0,0 +1,19 @@ +#! /usr/bin/env perl +# Copyright 2019 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 + +use strict; +use OpenSSL::Test; # get 'plan' +use OpenSSL::Test::Simple; +use OpenSSL::Test::Utils; + +setup("test_internal_ec"); + +plan skip_all => "This test is unsupported in a no-ec build" + if disabled("ec"); + +simple_test("test_internal_ec", "ec_internal_test"); diff --git a/test/recipes/15-test_rsapss.t b/test/recipes/15-test_rsapss.t index f10625d4cd301db12082596702b88e3d3fa7f5e7..65ec6f3d75289d5d8f53d95f6818ecefdb925642 100644 --- a/test/recipes/15-test_rsapss.t +++ b/test/recipes/15-test_rsapss.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -20,14 +20,14 @@ plan tests => 5; #using test/testrsa.pem which happens to be a 512 bit RSA ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha1', - '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:-3', + '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max', '-sigopt', 'rsa_mgf1_md:sha512', '-out', 'testrsapss.sig', srctop_file('test', 'testrsa.pem')])), "openssl dgst -sign"); with({ exit_checker => sub { return shift == 1; } }, sub { ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha512', - '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:-3', + '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max', '-sigopt', 'rsa_mgf1_md:sha512', srctop_file('test', 'testrsa.pem')])), "openssl dgst -sign, expect to fail gracefully"); ok(run(app(['openssl', 'dgst', '-sign', srctop_file('test', 'testrsa.pem'), '-sha512', @@ -35,14 +35,14 @@ with({ exit_checker => sub { return shift == 1; } }, '-sigopt', 'rsa_mgf1_md:sha1', srctop_file('test', 'testrsa.pem')])), "openssl dgst -sign, expect to fail gracefully"); ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), '-sha512', - '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:-3', + '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max', '-sigopt', 'rsa_mgf1_md:sha512', '-signature', 'testrsapss.sig', srctop_file('test', 'testrsa.pem')])), "openssl dgst -prverify, expect to fail gracefully"); }); ok(run(app(['openssl', 'dgst', '-prverify', srctop_file('test', 'testrsa.pem'), '-sha1', - '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:-3', + '-sigopt', 'rsa_padding_mode:pss', '-sigopt', 'rsa_pss_saltlen:max', '-sigopt', 'rsa_mgf1_md:sha512', '-signature', 'testrsapss.sig', srctop_file('test', 'testrsa.pem')])), "openssl dgst -prverify"); diff --git a/test/recipes/25-test_verify.t b/test/recipes/25-test_verify.t index 6c3deab7c67cf473f8d8d59ab7d8ada779c17711..b80a1cde3edde0fd9b40985960297d7d310407de 100644 --- a/test/recipes/25-test_verify.t +++ b/test/recipes/25-test_verify.t @@ -27,7 +27,7 @@ sub verify { run(app([@args])); } -plan tests => 134; +plan tests => 135; # Canonical success ok(verify("ee-cert", "sslserver", ["root-cert"], ["ca-cert"]), @@ -361,6 +361,8 @@ ok(verify("some-names2", "sslserver", ["many-constraints"], ["many-constraints"] "Not too many names and constraints to check (2)"); ok(verify("some-names2", "sslserver", ["many-constraints"], ["many-constraints"], ), "Not too many names and constraints to check (3)"); +ok(verify("root-cert-rsa2", "sslserver", ["root-cert-rsa2"], [], "-check_ss_sig"), + "Public Key Algorithm rsa instead of rsaEncryption"); SKIP: { skip "Ed25519 is not supported by this OpenSSL build", 1 diff --git a/test/recipes/30-test_evp.t b/test/recipes/30-test_evp.t index da0eadad25ed6e8349b359614234467ff63b04e7..2385105b8bed20f99302bace5d66ed07ef4cb003 100644 --- a/test/recipes/30-test_evp.t +++ b/test/recipes/30-test_evp.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -16,7 +16,7 @@ setup("test_evp"); my @files = ( "evpciph.txt", "evpdigest.txt", "evpencod.txt", "evpkdf.txt", "evpmac.txt", "evppbe.txt", "evppkey.txt", "evppkey_ecc.txt", - "evpcase.txt" ); + "evpcase.txt", "evpccmcavs.txt" ); plan tests => scalar(@files); diff --git a/test/recipes/30-test_evp_data/evpccmcavs.txt b/test/recipes/30-test_evp_data/evpccmcavs.txt new file mode 100644 index 0000000000000000000000000000000000000000..4b74ea0223e2fc26c92585ce69e642fd2d3b9e1c --- /dev/null +++ b/test/recipes/30-test_evp_data/evpccmcavs.txt @@ -0,0 +1,23927 @@ +# +# Copyright 2019 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 + +# Tests from NIST CCM Test Vectors (SP800-38C) + +Title = NIST CCM 128 Decryption-Verfication Process Tests + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 5a8aa485c316e9 +AAD = +Tag = 02209f55 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 3796cf51b87266 +AAD = +Tag = 9a04c241 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 89ca5a64050f9f +AAD = +Tag = f5f915df +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = ec9d8edff25645 +AAD = +Tag = 7a3c3499 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 05e16f0f42a6f4 +AAD = +Tag = f09c2986 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 2e504b694f8df5 +AAD = +Tag = 4ae97e71 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 06d102a9328863 +AAD = +Tag = ecb38c8b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = c288b810fb5334 +AAD = +Tag = 9c4dc530 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 08a166d9eb6610 +AAD = +Tag = 67299ef6 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 4a5810b121c91b +AAD = +Tag = b0538d02 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 44077341139bf9 +AAD = +Tag = 88200ea8 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = a9df4f37847e1f +AAD = +Tag = 19867aa5 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 11df57fcd131e9 +AAD = +Tag = 3b392a52 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 890fff56d10dc0 +AAD = +Tag = 1c5e47e0 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4ae701103c63deca5b5a3939d7d05992 +IV = 9dc18698731b27 +AAD = +Tag = 97a56b8b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 5a8aa485c316e9 +AAD = +Tag = 75d582db43ce9b13ab4b6f7f14341330 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 3796cf51b87266 +AAD = +Tag = 3a65e03af37b81d05acc7ec1bc39deb0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 89ca5a64050f9f +AAD = +Tag = efc5721e0b9e4c3c90deab0e1d5c11bd +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = ec9d8edff25645 +AAD = +Tag = 91b4b779823f4f0e3979ced93b99736c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 05e16f0f42a6f4 +AAD = +Tag = e2e87ca82523ccfeb416b42af9d9aadc +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 2e504b694f8df5 +AAD = +Tag = 7b85fd105cc960df86ad86846d178274 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 06d102a9328863 +AAD = +Tag = ffa140be27b25f307a6efd9697d66c9b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = c288b810fb5334 +AAD = +Tag = ed356542e0a804a724bfaa422e98a970 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 08a166d9eb6610 +AAD = +Tag = e31dd8dc920fe7900e1b1817fe845c7d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 4a5810b121c91b +AAD = +Tag = ae5a0777f03bbf541f305d00acff0396 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 44077341139bf9 +AAD = +Tag = 957dca58616c1cbe99f94fd8f7c257d9 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = a9df4f37847e1f +AAD = +Tag = 0e150af422f6da238bb476810b2d5bc2 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 11df57fcd131e9 +AAD = +Tag = 8e1150756ff3a733a1274470f072b74c +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 890fff56d10dc0 +AAD = +Tag = a1f70df3fa9cfeb95f869b3fe08466e0 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 9dc18698731b27 +AAD = +Tag = fdf3f6c177aa1d71fe3474a5a2eb6bb1 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = 90156f3f +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = a16a2e741f1cd9717285b6d882 +AAD = +Tag = 88909016 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 368f3b8180fd4b851b7b272cb1 +AAD = +Tag = de547d03 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 7bb2bc00c0cafce65b5299ae64 +AAD = +Tag = ea4bad52 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 935c1ef3d4032ff090f91141f3 +AAD = +Tag = 1bc82b3d +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 2640b14f10b116411d1b5c1ad1 +AAD = +Tag = 92e72250 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = b229c173a13b2d83af91ec45b0 +AAD = +Tag = e81f0647 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 37ca0dc2d6efd9efde69f14f03 +AAD = +Tag = 7cb906ec +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 6b6238aed86d677ba2b3e2622c +AAD = +Tag = d60f815b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = d6cb2ac67bb13b8f6d31fad64a +AAD = +Tag = d3d4f3b0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 32a7cd361ef00e65f5778fdfd4 +AAD = +Tag = a9df97ad +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = d0a1508fdefcf5be30a459b813 +AAD = +Tag = 36a37a59 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = 5381a61b449dc6a42aa4c79b95 +AAD = +Tag = dba02a36 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = c55430f2da0687ea40313884ab +AAD = +Tag = 25dcb3c5 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3 +IV = ec76d1850acc0979a1f11906fb +AAD = +Tag = 1d2832d0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = fb04dc5a44c6bb000f2440f5154364b4 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = a16a2e741f1cd9717285b6d882 +AAD = +Tag = 5447075bf42a59b91f08064738b015ab +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 368f3b8180fd4b851b7b272cb1 +AAD = +Tag = fdc992847f0815fac67aa935b35208ed +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 7bb2bc00c0cafce65b5299ae64 +AAD = +Tag = 2cabd690a45e59854b7587b26dd77f8e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 935c1ef3d4032ff090f91141f3 +AAD = +Tag = 3dacc71169f6da77ec91ff1d2f649ed1 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 2640b14f10b116411d1b5c1ad1 +AAD = +Tag = 97a2eb170ef03fa12124f1315e3b694f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = b229c173a13b2d83af91ec45b0 +AAD = +Tag = 94d85a83169d8dc76f58baf4d63ecfee +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 37ca0dc2d6efd9efde69f14f03 +AAD = +Tag = d3903c6289ca3684b8ce1174c23153a4 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 6b6238aed86d677ba2b3e2622c +AAD = +Tag = 5cbac5c418374a68bd7085454c4b0c13 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = d6cb2ac67bb13b8f6d31fad64a +AAD = +Tag = 26317f6b8b0130097441ed04b8009aef +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 32a7cd361ef00e65f5778fdfd4 +AAD = +Tag = b82ab6f3bbf59b6caafc54f05570f74e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = d0a1508fdefcf5be30a459b813 +AAD = +Tag = 1ae34207e74c8c78890ae17e320e84bd +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 5381a61b449dc6a42aa4c79b95 +AAD = +Tag = 5c5fa254c0be503b02caffade6b85259 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = c55430f2da0687ea40313884ab +AAD = +Tag = 9340266730ea36207bb734819d3553e9 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = ec76d1850acc0979a1f11906fb +AAD = +Tag = ec17cccf33bd9a0d4ce7aa20690c1333 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 5a8aa485c316e9 +AAD = +Tag = 03e1fa6b +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = a90e8ea44085ced791b2fdb7fd44b5cf0bd7d27718029bb7 + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 31f8fa25827d48 +AAD = +Tag = 23e5d81c +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 50aafe0578c115c4a8e126ff7b3ccb64dce8ccaa8ceda69f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 5340ed7752c9ff +AAD = +Tag = 869a97f0 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 512ed208bf10d57406537e94d20a5b6e2e9ab0683dfdc685 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 9cbce402511b89 +AAD = +Tag = 838e7f95 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = af72db9cd9d6f46607d6f9542ca69988dd15255c5c91171c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 123a0beace4e39 +AAD = +Tag = 09b89801 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 47d71409a03c330be9451b3f92c9d21c584391ad1010e9d6 + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 8ea1594a58fe4a +AAD = +Tag = eaf5f825 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = e562c7af0384ea16431ca20934a293a058d722cbfc3186c8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 5a7743e59e82da +AAD = +Tag = 5ec1aa6a +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 004d9d89c401aa79919c2805fcd5de69316e191df56426c0 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = f477f754d7ee76 +AAD = +Tag = f3586c6f +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = d623673d7f6d57c208bde112ca858561f3af5cc2bf5de926 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 040a257dede70e +AAD = +Tag = 5fa40618 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = fd4733d158b5630f4f6c03ab26b11bff0cbe0d5d3df99a73 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = dd51b8e91683d1 +AAD = +Tag = 5bf4f930 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = d352cb996c3075ff367a8dcacbbae46a12fbef08aa96ec83 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = ab3cb86cca6fb2 +AAD = +Tag = 66f0496e +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 31730fac20e21eca0aef591faa9fa90b3c058e32af1ce48a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = f67b98efd39b55 +AAD = +Tag = b753181c +Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2 +Ciphertext = dd175905a7ea3aef9fce068e6cb78e9cc60519755a178c77 + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = e60e2c002d1c99 +AAD = +Tag = 0876f2da +Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0 +Ciphertext = 8ad6b76f54392ee0f2834f09142545bcde9bf03d04d64aa1 + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 098e053fa08043 +AAD = +Tag = d4f7fc07 +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = 808eb3e04c39abde64674f0f7716dde11699cff8dd367c4c + +Cipher = aes-128-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd +IV = 4bf48328725514 +AAD = +Tag = 973a2712 +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = e074d13aad43f7b2364d47db0a02326641ca3b2ad61a1c49 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 5a8aa485c316e9 +AAD = +Tag = 2d9a3fbc210595b7b8b1b41523111a8e +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 24ab9eeb0e5508cae80074f1070ee188a637171860881f1f + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 31f8fa25827d48 +AAD = +Tag = 63af747cc88a001fa94e060290f209c4 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 7ebfda6fa5da1dbffd82dc29b875798fbcef8ba0084fbd24 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 5340ed7752c9ff +AAD = +Tag = cf3b8e6c8aeb5eeb0a5efb3700be45a2 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = cbf133643851f91ddc7a1e19a0c21990459f2b7728da58f5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 9cbce402511b89 +AAD = +Tag = f7bd61a0158accbca28913e39fe80906 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 0de7567a945c0af4a2291a651de411e8d0438508f2d4da80 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 123a0beace4e39 +AAD = +Tag = 8feeda2e8f249dd93a8358def7639875 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = d43035cdb5a1868aa430e8b41a1dc57a639087238e38bd62 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 8ea1594a58fe4a +AAD = +Tag = bf19f89da977e56f308373c616299ad4 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 389547260b354a6cbc909de057d367677049e80613877f6f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 5a7743e59e82da +AAD = +Tag = 21366b9da457ede2a673351475b53d41 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = a95aa33483ed3711470025394616bf98fe624fbca8aa6fbc +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = f477f754d7ee76 +AAD = +Tag = d889a7cae55efd71b369cd6d43ef363b +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 3d53b6ab8925f429ae14a0065cd203d4f9deddd402a79ac6 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 040a257dede70e +AAD = +Tag = 4be7f19463dd330a4b9f3cbb30b88fa5 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = d5e6e82cb5f8034a89e58adf8298476253f18981bcb3b036 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = dd51b8e91683d1 +AAD = +Tag = c2df063f7fdbae27f0736a37fd065fb4 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 02f69107d62ff77145c7d57684c70ba671d55f1c63bb2ad8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = ab3cb86cca6fb2 +AAD = +Tag = 9b45d54cc24cff1b1d8aa1df32fbd81a +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 64ec2f321111da9c5389e8255bfe69876d4f548f94cacd52 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = f67b98efd39b55 +AAD = +Tag = 0217a4f1f4fb302257b0de7c9da2e750 +Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2 +Ciphertext = 37d63c2bbf44d2eb155ecc1a844841d5c33f1a6d44341933 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = e60e2c002d1c99 +AAD = +Tag = 36a305d520a1a24930a70a311aa3695d +Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0 +Ciphertext = 33e0dce4410e51bed5323ea49490207084ac91732bae4292 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 098e053fa08043 +AAD = +Tag = 81e3d64ed546b6b70ee088a693f55fbb +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = 1d732c334319bd775e7cf93dbdc4204bbdb58192be082804 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 4bf48328725514 +AAD = +Tag = 737719dd84ccfb397a4f61b70c85262a +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = c92fc2f0d24593f67d9c09d326158a8138237c4096093f0d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = a3e138b9 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 4a550134f94455979ec4bf89ad2bd80d25a77ae94e456134 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 49004912fdd7269279b1f06a89 +AAD = +Tag = 091a5ae9 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 118ec53dd1bfbe52d5b9fe5dfebecf2ee674ec983eada654 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = efeb82c8c68d6600b24dd6d8ee +AAD = +Tag = 78b6bcc4 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 6b0fea26e4dfe902b5e876c7ba92afbad8aa52d3c1d00ae5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 7b93d368dc551640b00ba3cbb5 +AAD = +Tag = ac542b09 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 640c740e2b8af851712a05948ecee055b25b145ccb82ca58 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 24b7a65391f88bea38fcd54a9a +AAD = +Tag = 6413020a +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 05f20b2ae70fcb0ea79aa1845c15b899a799ca60f51e6c29 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 6aa3f731522fce7e366ba59945 +AAD = +Tag = 142d5636 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 9fa576a8a5c72468afa372338cbbc33fef81ad5a873eb38a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = a11cf5bed0041ee3cb1fef4b43 +AAD = +Tag = f3757b6a +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 8d26582c74b2b4d960ee9e417c6395daafaebb3aff45d477 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 273cc5013785baeb5abc79c8bd +AAD = +Tag = a7001a16 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = cb62a13e38e17cc6635e409c922956ece38f593189a51b99 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = d2d4482ea8e98c1cf309671895 +AAD = +Tag = 050e9225 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = f3e29b792423c7fbe743a3b2f890a2bff29519f3636a6232 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = a8849b44adb48d271979656930 +AAD = +Tag = 850ec9f0 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 136e60d6714d906d1f4c02b7bdbb5f3ccdd2165306912dec +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = a632ba0d00511122abcd6227ff +AAD = +Tag = 4eb95533 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 49b6d0b6eeff74af0de70072d9ccdc68a0ee36a5ddbf098b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = c47af80cd26d047630c1fdf0d1 +AAD = +Tag = 0f8fb949 +Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff +Ciphertext = a2a59041c3f78f6e10c3045118e8a475945e24c85b02abc4 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 70e132023acae1f88c7a237b68 +AAD = +Tag = 69d8ab41 +Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e +Ciphertext = 19b4ad222795326cb031cfdb07b652dbf64ca5db5ff5d6d5 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = 8010d3a2a14f72f5585defc940 +AAD = +Tag = f00fe764 +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = 76b66b908657f4df8a329c34ccdde50ae7fc71c4a718b712 + +Cipher = aes-128-ccm +Key = 197afb02ffbd8f699dacae87094d5243 +IV = a98c2f0e0a7b68942853905191 +AAD = +Tag = 79f9eb72 +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = 20df4662ce6c8c4ce49b14fa791e41ff8598ec93d8a825e8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = 6a9a970b9beb2ac1bd4fd62168f8378a +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 49004912fdd7269279b1f06a89 +AAD = +Tag = a65666144994bad0c8195bcb4ade1337 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 0c56a503aa2c12e87450d45a7b714db980fd348f327c0065 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = efeb82c8c68d6600b24dd6d8ee +AAD = +Tag = a85f868739404b64a7cbdd61b577c388 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 5f69d6c21f771eb98dc724f891f530b1c045f49a054de103 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 7b93d368dc551640b00ba3cbb5 +AAD = +Tag = b2b164f3c255b699cbf75330d96c3c13 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = d335ba572520c336f711edf27ea738ba5e6b0d772ea443b8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 24b7a65391f88bea38fcd54a9a +AAD = +Tag = 2658e077687315eaf11458bdf6e3c36a +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 9fa846ef8d198c538f84f856bab8f7f9c3bed90b53acb6a3 + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 6aa3f731522fce7e366ba59945 +AAD = +Tag = 63db3756abba1feef626a956794d7e56 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = b7095030acdc5fbb8fea2c24717c1c236231f9737bcc78f4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a11cf5bed0041ee3cb1fef4b43 +AAD = +Tag = 7d6fee1de626bc7c93f2caa27a3ecaa0 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = d6911d5831163c8ebad0916af1833051b885aae822f9f665 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 273cc5013785baeb5abc79c8bd +AAD = +Tag = 89e2d235192f33ba0f357492112d98f4 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 6b10a098c96c2bbf9aeb5c9adcf91e4812838dff319f8be9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = d2d4482ea8e98c1cf309671895 +AAD = +Tag = 800b81e834ea5dd2bdc2c688d9505359 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = aecd11cbac04e1f79b0fd24052c8cedf393dce9df350d24f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a8849b44adb48d271979656930 +AAD = +Tag = 430889cd5c97343cc0dedfbd62e6b6eb +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = d3a7a25f71b1988482dc852ed713d55abdcc4bb1129ddcae +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a632ba0d00511122abcd6227ff +AAD = +Tag = 15acded53c41010554e1c1fe937a7605 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 368e1574a433d78d0276ce4a1cacfba834a216693536c00b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = c47af80cd26d047630c1fdf0d1 +AAD = +Tag = c9390fbdb9ec416267096ccbf2c148e5 +Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff +Ciphertext = 99e40b3c67aca95dd4462c20cbd6b2741e7033fc4f41a975 + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 70e132023acae1f88c7a237b68 +AAD = +Tag = 55c18ae38b7ee7f00f96cfca4fe9a2ef +Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e +Ciphertext = de079418c25ba67e5fda009998e3fce61bfdc3b7787cf066 + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 8010d3a2a14f72f5585defc940 +AAD = +Tag = b35357a35ff9e58e18d6d80df9fc335d +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = fbab64d8dd8b6e33c7cc6124cd65f004d7247277fe98d5d3 + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a98c2f0e0a7b68942853905191 +AAD = +Tag = 9aba89639f4033be9ba9f3c101acc1bd +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = 372b9af0655df2d0c830b4949a2d2faa8db251ee922a3bff +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 782e4318 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a265480ca88d5f +AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe +Tag = a04f270a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 87ec7423f1ebfc +AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5 +Tag = 97dfd257 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = b8b04f90616082 +AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8 +Tag = 6c202a1c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 8c687b4318813a +AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf +Tag = 1be535a0 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 29b810eed8fc92 +AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa +Tag = 4fb6617d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 62452462c53934 +AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96 +Tag = c056bd3e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 4cceba0e7aee97 +AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445 +Tag = 87048576 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = b5151b0601c683 +AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c +Tag = ea8c0407 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = 4e5d6d7ac9e71e +AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811 +Tag = 41c12dc5 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = dc88e989951a3f +AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5 +Tag = de84cf5c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = a1aeda4b4cb8dd +AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963 +Tag = e617e006 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = f248e5225e3d9a +AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e +Tag = b7909395 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = e68228f5c65b73 +AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 +Tag = 8a05d2ea +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 90929a4b0ac65b350ad1591611fe4829 +IV = ea167cfd1101d9 +AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041 +Tag = 8643ba47 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 41b476013f45e4a781f253a6f3b1e530 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = a265480ca88d5f +AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe +Tag = f9f018fcd125822616083fffebc4c8e6 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 87ec7423f1ebfc +AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5 +Tag = 534cc67c44c877c9c908071ee1082f4c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = b8b04f90616082 +AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8 +Tag = 201c0ef2ddaa51b645911b5c37d76e95 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 8c687b4318813a +AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf +Tag = ec774d9000763bba3a5ac307418827b2 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 29b810eed8fc92 +AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa +Tag = 75798c3fe5202f0e33c9183c837aeaf5 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 62452462c53934 +AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96 +Tag = 32601de5960c11c925444b5c47d42289 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 4cceba0e7aee97 +AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445 +Tag = 4c1cd6a774c8e6f4e261db1f73b0aa20 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = b5151b0601c683 +AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c +Tag = 8bd9c00ff23310216bbd24981c1e2cf7 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 4e5d6d7ac9e71e +AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811 +Tag = 174efd089409f9932b8e631965e762a6 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = dc88e989951a3f +AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5 +Tag = 8de80f620bd41eee6a58925dc8404bfa +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = a1aeda4b4cb8dd +AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963 +Tag = 0b9d79e8e33ec45532af5515a99f05df +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = f248e5225e3d9a +AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e +Tag = 1583e1e5a86001bbcec62292ccfd4d48 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = e68228f5c65b73 +AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 +Tag = b72caac6362e68e445f69f605f21e0a2 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = ea167cfd1101d9 +AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041 +Tag = 352769a19ac75b8a116be031b33d6449 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = 9f69f24f +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 8739b4bea1a099fe547499cbc6 +AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7 +Tag = e17afaa4 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 0f98fdbde2b04387f27b3401dd +AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc +Tag = 07155b7e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 4eed58f381e500902ba5c56864 +AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946 +Tag = d538cf2f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 1e7e51f0fa9a33ed618c26f5e3 +AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a +Tag = c283466f +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = f012f94f5988c79aa179d7fdfc +AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c +Tag = aa8d8098 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 715acf92cfb69ad56036c49e70 +AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff +Tag = a44b69b0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 141be3601e38185a9fa1596d2e +AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a +Tag = f395733f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = fcdda3c5f0e80843b03d8788da +AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512 +Tag = 1e9e9237 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = ca660ed3b917c0aca140dcd3fb +AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51 +Tag = e9d2a722 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 642ae3466661ce1f51783deece +AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5 +Tag = a90fc438 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 7864c717ec93db38b10679be47 +AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4 +Tag = 48f3a1ec +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = c3bf9dfe9d6c26f543188fb457 +AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0 +Tag = 24763def +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = 1527657d2fd98f7deca55cc649 +AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af +Tag = 63394bee +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b +IV = b8432d3d5525a0dadbbaa6b6b8 +AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba +Tag = d79b1686 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = 1859ac36a40a6b28b34266253627797a +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 8739b4bea1a099fe547499cbc6 +AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7 +Tag = edf8b46eb69ac0044116019dec183072 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 0f98fdbde2b04387f27b3401dd +AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc +Tag = 66622ac26c7227a0329739612012737c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 4eed58f381e500902ba5c56864 +AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946 +Tag = e4c9e86493ee78b1cbf6e55e94731b63 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 1e7e51f0fa9a33ed618c26f5e3 +AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a +Tag = 8b5bfe6b5b5552007300bae71172612f +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = f012f94f5988c79aa179d7fdfc +AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c +Tag = 1848be3cb7665ac68874c617a75d8bd2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 715acf92cfb69ad56036c49e70 +AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff +Tag = 65a23b7b5ee78af9c7d0113447f78ab9 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 141be3601e38185a9fa1596d2e +AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a +Tag = 90a420b6d2252392e161dcf4fb953d7e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = fcdda3c5f0e80843b03d8788da +AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512 +Tag = 004cbe11292887e246de7704a4a1a05f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = ca660ed3b917c0aca140dcd3fb +AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51 +Tag = ad7af41e39ea0c0cd072263e826f3cf0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 642ae3466661ce1f51783deece +AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5 +Tag = 16b1a4fadbadc906a949592d6ef319a3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 7864c717ec93db38b10679be47 +AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4 +Tag = e9cfb1069380434f221db4229a083a76 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = c3bf9dfe9d6c26f543188fb457 +AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0 +Tag = 380cb57fd531bb1dcf22350518bbf8af +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 1527657d2fd98f7deca55cc649 +AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af +Tag = fbf2becc35b5024078bfcfc1f831b669 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = b8432d3d5525a0dadbbaa6b6b8 +AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba +Tag = 080203eb842b3f98a730abbbf98f493e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 38f125fa +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 6be31860ca271ef448de8f8d8b39346daf4b81d7e92d65b3 + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = fdd2d6f503c915 +AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e +Tag = 28a66b69 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 4cc57a9927a6bc401441870d3193bf89ebd163f5c01501c7 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 27d73d58100054 +AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467 +Tag = ee2de18c +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 1f16c6d370fff40c011a243356076b67e905d4672ae2f38f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = dd16e0ce1250e3 +AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242 +Tag = 24537a81 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 46edb001d58a01dce1bcf064cfc9a04accc82c42b33ba165 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = ccee19d037cf4a +AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07 +Tag = 9405edb1 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 9b61335f96fc5b31274cc1fb275f29c1105d68c67b70654f + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 6c8ba94f09cbe6 +AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496 +Tag = 548effe3 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 97b5eb2d55847f5d5d9f8c762dace481d8efb19ccfd72265 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 1f670302fcdcc8 +AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c +Tag = 03459b29 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = f5cc8198dce8e890587b62572b07413a915bfb55628c901c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 5d05f658c729a2 +AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352 +Tag = 963b04f3 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 50c0b1f6c5e4c86a0c938ecbc762eeaf99b9fe04c2820a43 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 22a77db9fcbc95 +AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a +Tag = 1330f633 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 1fdbe91189da01c5098cf1538addd85b1cfef0abd0797c14 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 491e32b0bbfa4c +AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e +Tag = 10c1f6d7 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 462e7cdf9a6a553bca37d4d93bed4986b715d0349238613e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = bc4b7d3a380be0 +AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc +Tag = d37e5543 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 7d142f26aa6c9d55850c5c9f58ab36a66670d47c515bf93c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = a840e98df72ae9 +AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c +Tag = cc5e0c4a +Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da +Ciphertext = f7122cbcec93d53fc7e3fc629ea15d28363cad1c83a23bb3 + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 39d93c3cf31a6f +AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869 +Tag = fc12a512 +Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582 +Ciphertext = e1cad7f946b20c373323218c8a89e56edf3030662e50d459 + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = 0bbc177019321e +AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795 +Tag = c2eaf895 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = d4741814466a23e26107d773f103a4c83db9d772dbd5fdc1 + +Cipher = aes-128-ccm +Key = f9fdca4ac64fe7f014de0f43039c7571 +IV = ad048eb2ad7526 +AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e +Tag = f92fa2f7 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = ed35ff66bc7f6d8ec7acf896f994d79f5792cf6d22d6691f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 2cf3a20b7fd7c49e6e79bef475c2906f +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = b351ab96b2e45515254558d5212673ee6c776d42dbca3b51 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = fdd2d6f503c915 +AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e +Tag = 81d18ca149d6766bfaccec88f194eb5b +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = df1a5285caa41b4bb47f6e5ceceba4e82721828d68427a30 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 27d73d58100054 +AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467 +Tag = 5eb4f0875dda5ccd9b94026ba49fb34e +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 04a29fc109dfc626e8297e0f586d0bfaf31260017d95f62d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = dd16e0ce1250e3 +AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242 +Tag = 920843994def41aed3103995d3392eed +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 77e4cd5d319353ecb6b89e2de14bcfee4fbf738b61df14f3 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = ccee19d037cf4a +AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07 +Tag = d57603d5c45606c68be5535c671d5432 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = e676f5dfde8ad810d9e729d142670eef77f2878369a28797 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 6c8ba94f09cbe6 +AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496 +Tag = a0bfd54fb786208e1e49c6d0e645d9fb +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 60c51e5c3fe4197454d64fa14017639bcfd1423b9d74e506 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 1f670302fcdcc8 +AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c +Tag = af8a9b7a5c50b0be4596290a4d405e79 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 64d1160365062eca1027cc7036862b027bdda3a9abdf794d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 5d05f658c729a2 +AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352 +Tag = 2ce9c776932ecf7fddd849be58096b88 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 968ca115583c645710d2b47fb196cf55f6ef33f2b01400e2 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 22a77db9fcbc95 +AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a +Tag = 915d0020da92f483a5a7914cba14b1e7 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 4985821b16ff6d4d3416573e2fba4d53186d912f0b023a99 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 491e32b0bbfa4c +AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e +Tag = 71420e036ea48dddd671be622d372c5b +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = c7345b031ef85bde766226a7603adaa7dcb07a7b2a8be1b5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = bc4b7d3a380be0 +AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc +Tag = b619a331f8d67d70c3f3a59b3fab53a5 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 11460b9acccc13001be236814da6b73f2c8e0467574f151b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = a840e98df72ae9 +AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c +Tag = b944bb46306a9b1e783f3e54c92d5f5e +Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da +Ciphertext = 1bcff940a2d9d48e93bbfd13aed5947237485983e6ae04b8 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 39d93c3cf31a6f +AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869 +Tag = 48608963f3037763843b70c35d7011f8 +Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582 +Ciphertext = 3b6c1570c85f297079be14cd66d335251c7b52e131a636f1 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 0bbc177019321e +AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795 +Tag = 4ba2d0944c68cc36d4125b3ef9071d69 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = b540cd8cbe733e0ca2ba2112ea785596d2c1d707f4160851 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = ad048eb2ad7526 +AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e +Tag = 51387922af7182b7d46a33c703e6e7a8 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = 3c9c1481f1428acf202b510dca67e5e6b2abc5dd71a954da +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = c25e5329 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 934f893824e880f743d196b22d1f340a52608155087bd28a + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 0812757ad0cc4d17c4cfe7a642 +AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10 +Tag = 59b3b3ee +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = f43ba9d834ad85dfab3f1c0c27c3441fe4e411a38a261a65 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = eff510acc1b85f35029cf7dc00 +AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86 +Tag = 0bf6688e +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = c686eac859a7bae3cce97d0b6527a0a7c8c2b24ece35f437 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 3d13d09057190366c63c8750e9 +AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32 +Tag = 80ed869c +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 2b28355ecf7246ddb08d65c464dcaa90af85f434ff952672 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = e3c03ef7e1d31961ee0b97bd99 +AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784 +Tag = cd399507 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = ecde42091baa1f5c17b79746e21c3de5c78984570748021c + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 5d165ddd4e599387af5967cae6 +AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed +Tag = 3da37b66 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 5c338435ed4f148342604c9aed63e907c100453d719fda2a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = fcec171162a27a96066181fab2 +AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62 +Tag = 7e75dded +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 30eac1042015eb82729673edd9939bf9995b2575da4d6c4c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 2fa8120398d1a946f391367cf6 +AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da +Tag = 722b9c87 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = ebd3ce55b40e4bbd8172033948c6c78049161ee8f949eb50 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 88e0ae338bbca9d4299b294354 +AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb +Tag = 48c042e5 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 20f79b36ca83baac97600fd8a6dad22c2cd0f9b7e7705760 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 4862e36296d6afc9399a95bbb4 +AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8 +Tag = 885ba975 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 77b76f249f936fb19bd47fe28ad4dbb7725dec365a1cb23a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 2f360a4715074e942244ab7f9b +AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f +Tag = aa799e79 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = cf6763a23c2eab730845d1eb79bbba9f54ee899fe3d70570 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 93e08854560edb096e5d654086 +AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2 +Tag = 6c0b0104 +Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906 +Ciphertext = 1f8086a43c1b2dea557952db88e0dbbdb96aafdb345eddae + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = e3f37b68ff508cfe295441d9e3 +AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208 +Tag = 47a28dd8 +Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2 +Ciphertext = c0c5f92285b114e0a0777e1bc22b810e7cc4f68c28cd5ce0 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = ea98ec44f5a86715014783172e +AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810 +Tag = b7543552 +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 56327f4db9c18f72bbefc3f316d31f9795dd77f493385ab7 + +Cipher = aes-128-ccm +Key = a7aa635ea51b0bb20a092bd5573e728c +IV = 5a16a8902bd70fa06cfe184c57 +AAD = 399d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1bb5b7ee824fc287c8 +Tag = ee39867e +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 37d5b17995fac8c94302ec9ba20a36d97678e85199b677f8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = c0a458bfcafa3b2609afe0f825cbf503 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 50038b5fdd364ee747b70d00bd36840ece4ea19998123375 + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 0812757ad0cc4d17c4cfe7a642 +AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10 +Tag = 390042ba8bb5f6798dab01c5afad7306 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 78ed8ff6b5a1255d0fbd0a719a9c27b059ff5f83d0c4962c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = eff510acc1b85f35029cf7dc00 +AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86 +Tag = a3463394cf3c25bef8af8f244d0c0b00 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 4b91d8e616d3f60452fd3a576bd7c265b7f549523ed4a5d7 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 3d13d09057190366c63c8750e9 +AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32 +Tag = 88caf8ae59d9d1131626da0dddf8722d +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = ab8cf8891ab62924c0c6f49dd253cfa0c3d6260d0ee4d9ba +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = e3c03ef7e1d31961ee0b97bd99 +AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784 +Tag = d1292373a76970eda77a8194f6276262 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = c6b7680f321132a8bd00e8e92f785d0b828b100af6392a04 + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 5d165ddd4e599387af5967cae6 +AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed +Tag = a97af19d0b7bf7c7ce398cb0b44d73af +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = aea98867d3d707c43a963c1d7fdcfc953cbd707803b2b5f0 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = fcec171162a27a96066181fab2 +AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62 +Tag = 343065b4bdd973ee072dbf5160d310f3 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = c55e17ba7886eb58126d50bde8c5c211cc1aafd71a3d9e5b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 2fa8120398d1a946f391367cf6 +AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da +Tag = 233ec600bca1d31f704807494fb0f18d +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 791a62d5fb39ff9735ad94507e1afe2647714d5cc56b6ff4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 88e0ae338bbca9d4299b294354 +AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb +Tag = 7ec183db0e2a33ebb147d0e2363fbb01 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = f98a081998e29500f15ebd8978a95423aed4e8e78e0279d1 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 4862e36296d6afc9399a95bbb4 +AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8 +Tag = 7e67ea2577ade5836c26a89760e0959b +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 7779814dc295a23b4100ca94bec0ad4ce2f6be6fb75a0c21 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 2f360a4715074e942244ab7f9b +AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f +Tag = 4978a7865df8369635269411b3aaeb32 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 55640eed12c7595a36ab423da8d8241905b6ff1e906db962 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = 93e08854560edb096e5d654086 +AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2 +Tag = 4f9d302e4f1d2a2aedf2768d7b29163f +Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906 +Ciphertext = 7fcdce0ba567b9a708d54fdb16125de71dce952f4741684f + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = e3f37b68ff508cfe295441d9e3 +AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208 +Tag = a50036af67fadab163e9daa8bd8e9030 +Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2 +Ciphertext = d42111ba22987eac1ead5cc6cb8548bcda190d118dcd5461 + +Cipher = aes-128-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0e +IV = ea98ec44f5a86715014783172e +AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810 +Tag = 2f1322ac69b848b001476323aed84c47 +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 1bf0ba0ebb20d8edba59f29a9371750c9c714078f73c335d + + +Title = NIST CCM 192 Decryption-Verfication Process Tests + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 5a8aa485c316e9 +AAD = +Tag = 9d4b7f3b +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 3796cf51b87266 +AAD = +Tag = 80745de9 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 89ca5a64050f9f +AAD = +Tag = 2f6fa823 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = ec9d8edff25645 +AAD = +Tag = 3cc132c6 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 05e16f0f42a6f4 +AAD = +Tag = c79d5557 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 2e504b694f8df5 +AAD = +Tag = 41e0eea0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 06d102a9328863 +AAD = +Tag = 1f129266 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = c288b810fb5334 +AAD = +Tag = 41b0e4e2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 08a166d9eb6610 +AAD = +Tag = 5082e06a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 4a5810b121c91b +AAD = +Tag = 70587cce +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 44077341139bf9 +AAD = +Tag = 6aaa0acd +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = a9df4f37847e1f +AAD = +Tag = 22976e42 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 11df57fcd131e9 +AAD = +Tag = f440ea1d +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 890fff56d10dc0 +AAD = +Tag = 88903fb9 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c +IV = 9dc18698731b27 +AAD = +Tag = 3ff345c3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 5a8aa485c316e9 +AAD = +Tag = 17223038fa99d53681ca1beabe78d1b4 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 3796cf51b87266 +AAD = +Tag = d0e1eeef4d2a264536bb1c2c1bde7c35 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 89ca5a64050f9f +AAD = +Tag = 81d587f8673fd514c23172af7fb7523d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = ec9d8edff25645 +AAD = +Tag = 500142447e535207899ab1499994daea +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 05e16f0f42a6f4 +AAD = +Tag = fdfdbb38bf161785114f9ee2018e892f +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 2e504b694f8df5 +AAD = +Tag = 38fe9622eaa2a50152cf57e393dd3063 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 06d102a9328863 +AAD = +Tag = 73af4b87c167572e1400a0ee28209aff +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = c288b810fb5334 +AAD = +Tag = ace2248b9f23efa813449c82217e4a4a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 08a166d9eb6610 +AAD = +Tag = a9bb0e469829d9cf09ad765c5b0b58bf +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 4a5810b121c91b +AAD = +Tag = a5977f0826926ec0d32541b2bd4e2b1e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 44077341139bf9 +AAD = +Tag = 6938fb5afec1a84e4abb062e1a943c20 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = a9df4f37847e1f +AAD = +Tag = 7e3bbe0eb13988a93972f2fbcd35659e +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 11df57fcd131e9 +AAD = +Tag = 48d7a15cf4f5808eb45d1ad817470554 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 890fff56d10dc0 +AAD = +Tag = 97185ce68af1e6ab718c8c4b83ec04cd +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 9dc18698731b27 +AAD = +Tag = a81bc8f5a18293ffe19505a3687ce3f3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = fe69ed84 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = a16a2e741f1cd9717285b6d882 +AAD = +Tag = db7ffc82 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 368f3b8180fd4b851b7b272cb1 +AAD = +Tag = 7a677329 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 7bb2bc00c0cafce65b5299ae64 +AAD = +Tag = d903d8f7 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 935c1ef3d4032ff090f91141f3 +AAD = +Tag = 215e0bf2 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 2640b14f10b116411d1b5c1ad1 +AAD = +Tag = 0d38100f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = b229c173a13b2d83af91ec45b0 +AAD = +Tag = 9f8ab5f7 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 37ca0dc2d6efd9efde69f14f03 +AAD = +Tag = 7d811d50 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 6b6238aed86d677ba2b3e2622c +AAD = +Tag = c2e18439 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = d6cb2ac67bb13b8f6d31fad64a +AAD = +Tag = d8b5817b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 32a7cd361ef00e65f5778fdfd4 +AAD = +Tag = 28cd70ff +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = d0a1508fdefcf5be30a459b813 +AAD = +Tag = 790b2624 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = 5381a61b449dc6a42aa4c79b95 +AAD = +Tag = 9e46632d +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = c55430f2da0687ea40313884ab +AAD = +Tag = 39b82901 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65 +IV = ec76d1850acc0979a1f11906fb +AAD = +Tag = 4c0cf71f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = 0c66a8e547ed4f8c2c9a9a1eb5d455b9 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = a16a2e741f1cd9717285b6d882 +AAD = +Tag = 38757b3a61a4dc97ca3ab88bf1240695 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 368f3b8180fd4b851b7b272cb1 +AAD = +Tag = 11875da4445d92391d0fab5f3625497b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 7bb2bc00c0cafce65b5299ae64 +AAD = +Tag = 64477bcd4316e5c5789e1a678fdef943 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 935c1ef3d4032ff090f91141f3 +AAD = +Tag = 87da5dbc04e39fc468f43675d4e7df33 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 2640b14f10b116411d1b5c1ad1 +AAD = +Tag = bf0d53ee529d8cafc5ad7a8f2d85e7a2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = b229c173a13b2d83af91ec45b0 +AAD = +Tag = 676370637ad78c705d43fce066dc909f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 37ca0dc2d6efd9efde69f14f03 +AAD = +Tag = 289936db0f9f148a3c9e2d28f7d7de51 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 6b6238aed86d677ba2b3e2622c +AAD = +Tag = 58a283641627669d5514f2af559b6c14 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = d6cb2ac67bb13b8f6d31fad64a +AAD = +Tag = a6b058540ed905d6e3499a13ea1f3d83 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 32a7cd361ef00e65f5778fdfd4 +AAD = +Tag = 7a19b3377384f09915d0e1ae93a9f16c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = d0a1508fdefcf5be30a459b813 +AAD = +Tag = a0d047a1f9940d325e474da54aa13897 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 5381a61b449dc6a42aa4c79b95 +AAD = +Tag = 8a4768a2093694b6bcb7083c0bb6331c +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = c55430f2da0687ea40313884ab +AAD = +Tag = a7cafd6f68dc1f15a3603da654ce27bc +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = ec76d1850acc0979a1f11906fb +AAD = +Tag = c49845f2ea3c9981ad7e9b942f615b8d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 5a8aa485c316e9 +AAD = +Tag = ddc93a54 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 411986d04d6463100bff03f7d0bde7ea2c3488784378138c + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 31f8fa25827d48 +AAD = +Tag = b6889036 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 32b649ab56162e55d4148a1292d6a225a988eb1308298273 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 5340ed7752c9ff +AAD = +Tag = 9b4de35f +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = a963c3568ab413b174cd95cc1e3ca61ee181292bebdb2817 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 9cbce402511b89 +AAD = +Tag = 6df9ffc5 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 0396e6c8db43e5fac205f4c576fd577368adcb688cf3d7e7 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 123a0beace4e39 +AAD = +Tag = b28c8e38 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = b41bfba94edcafc41b4c144269b9126a6d47b19e83b15772 + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 8ea1594a58fe4a +AAD = +Tag = 7336a30a +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 01e3bb938e16d0284d1d0fee049d80fb97356ae4d84127cf +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 5a7743e59e82da +AAD = +Tag = 0c40cc72 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = abd7551c5e84e9bef5fbfad3e24d13f02864410eae9177ad +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = f477f754d7ee76 +AAD = +Tag = fc9fd290 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 3b5ae49e0974f41826152432b46f1a85ab4995afefbbccdd +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 040a257dede70e +AAD = +Tag = e485910b +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 21fb4324de4ba1e2762b3041ce26e43a3d191458a046d489 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = dd51b8e91683d1 +AAD = +Tag = 8695053f +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 99ca8f542fd06481e23719214c9892442f393d72899deea0 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = ab3cb86cca6fb2 +AAD = +Tag = 050d2054 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 5fcc05342cdc27f66b324ae7387205bfb4ab6302bfe0af09 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = f67b98efd39b55 +AAD = +Tag = 6def28ab +Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2 +Ciphertext = 0a7fe63046daf8a979935b897088c64acc1b47a5a9b86fdd + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = e60e2c002d1c99 +AAD = +Tag = 68941fce +Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0 +Ciphertext = daf7d7dfa512ceb1d7d3435634d9a70b3ef6c6dc38f409e0 + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 098e053fa08043 +AAD = +Tag = 51a1ec4a +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = cdb417dff6502208775f21e35cdb8e3e1199308d1a942290 + +Cipher = aes-192-ccm +Key = 19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa +IV = 4bf48328725514 +AAD = +Tag = 98eaddaf +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = e75441093c8ccba6eac5913dc246ce96de4784a010514982 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 5a8aa485c316e9 +AAD = +Tag = c5a5ebecf7ac8607fe412189e83d9d20 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = cba4b4aeb85f0492fd8d905c4a6d8233139833373ef188a8 + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 31f8fa25827d48 +AAD = +Tag = e699f15f14d34dcaf9ba8ed4b877c97d +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = ca62713728b5c9d652504b0ae8fd4fee5d297ee6a8d19cb6 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 5340ed7752c9ff +AAD = +Tag = f3b8899459788c58794f177cfd838f35 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = 93012c0a5f6f1025b8c4a5d897d3eea0b1c77be8000c9e59 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 9cbce402511b89 +AAD = +Tag = 3ad22e8fa4d2f9725ce4f212a8844855 +Plaintext = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22 +Ciphertext = b8eb95f72f643c2c51ad74775cc203d215c86626e903eb01 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 123a0beace4e39 +AAD = +Tag = b5eab45d7d096577643815e6d467312d +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 71f17cf21c44267c676657db9e55bee33273787474e77b17 + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 8ea1594a58fe4a +AAD = +Tag = 8b1a5ecca7354af824fea617b9b69031 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = d6737f642260c4ee3b19cb78cc2ef1767213416b82c71e91 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 5a7743e59e82da +AAD = +Tag = c54c98f8007ed55a21759f5452559538 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = cbe60d633399daa6ee66418be6d16e292ea47a93c291fce2 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = f477f754d7ee76 +AAD = +Tag = a555aa972e1c2e3f439f85663ae25889 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 2a78a7beb8df4bf5d35ff0b2853bc51ce127163d2f56e00e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 040a257dede70e +AAD = +Tag = 9aeb326578fa615e86969348d9bbfb7f +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = ee78ddbea9c3aede9f88af0e82464d9d1afe81de16aa18c4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = dd51b8e91683d1 +AAD = +Tag = 2efbff1da769af3b72099cbda3cbf091 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = cdf7cb74d978e7ea738e288ed79edfccf10b553c09d1856e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = ab3cb86cca6fb2 +AAD = +Tag = 3291a566e6641a965ffdabe097050dc5 +Plaintext = 9d033e3b66efed1467868f382417c80594877a28bc97f406 +Ciphertext = 90b990a1ea254592f2c226c969b332fc7bfe5f808729c2d8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = f67b98efd39b55 +AAD = +Tag = 84b47504dced5b70c302cc93502cc37e +Plaintext = f2e944e1ae47ad5873bf391f1b0cc07f6151eb4c50bb45b2 +Ciphertext = 44a6aa954c3508b3c9264c20c272e80c0e95d50ddec28490 + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = e60e2c002d1c99 +AAD = +Tag = 37109739a3676f03adfd740dbaa4940d +Plaintext = 70f48dc1d76e5028da07e29852801375a9edb2214a5ea4c0 +Ciphertext = 9d4ff7a44cdb9b14f586efc3d6be02d069b425c06bec4eed + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 098e053fa08043 +AAD = +Tag = c4bfacbb2f246b570efd93d98e99be49 +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = 23da95e102c7921a51b19b5733ea5776ab6c287f6057c00e + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 4bf48328725514 +AAD = +Tag = 6496912db41761a1d2aecfda04fb2cfa +Plaintext = bd81680e3dc0b35431c92598dcaa26ef09ca0da5e77193de +Ciphertext = 53d00d5839d0a1e695916151f9450b7311982917edcbd7c6 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = 34fad277 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 042653c674ef2a90f7fb11d30848e530ae59478f1051633a + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 49004912fdd7269279b1f06a89 +AAD = +Tag = a35df775 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 1902d9769a7ba3d3268e1257395c8c2e5f98eef295dcbfa5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = efeb82c8c68d6600b24dd6d8ee +AAD = +Tag = 1faaf310 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = ebacb8e78c0ad9d3ed99f1821b0b0085beac351f88a79ef7 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 7b93d368dc551640b00ba3cbb5 +AAD = +Tag = 4d5e6103 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = efc1d5b6f0a48e4ce3e821d743d34206b28c69485c410fa9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 24b7a65391f88bea38fcd54a9a +AAD = +Tag = 69ac966a +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 3c1836e5d0f0473dab7bfd7a95ba69575f7f841970ac6c67 + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 6aa3f731522fce7e366ba59945 +AAD = +Tag = c47e9a8e +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 2c583e54d75a02948c7f6dcd12cba32a65e8d605fba7ec10 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = a11cf5bed0041ee3cb1fef4b43 +AAD = +Tag = 1f3f537f +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = a8632dee22f34315b05c40135c6dd471c63b09438da834dc +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 273cc5013785baeb5abc79c8bd +AAD = +Tag = 26421940 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 0f03ea1b2561951d79062e19a85d98293c8c2846936c724c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = d2d4482ea8e98c1cf309671895 +AAD = +Tag = a3a22ac7 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = f9764405e54d827ac433fd624506b92e123463a5b01f21ff +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = a8849b44adb48d271979656930 +AAD = +Tag = 89429246 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = a326e0cf3f97adff3249944880ddfb8d616cd18a086e0462 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = a632ba0d00511122abcd6227ff +AAD = +Tag = 4c9649b7 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = f188bc1a72e81b34d75b402e4f8ef3d638d2f56a409eab06 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = c47af80cd26d047630c1fdf0d1 +AAD = +Tag = e2e93f29 +Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff +Ciphertext = 341df3a273e85cf387ab823bdf9c34a1ae2c86940cb4bfcd + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 70e132023acae1f88c7a237b68 +AAD = +Tag = 35c7081d +Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e +Ciphertext = a0e7997fd67ea66b6274d719b84da92433fdf7d512b160da + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = 8010d3a2a14f72f5585defc940 +AAD = +Tag = f83a9ad7 +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = dd8fd11e1c0746e7273fdd2e7dfa1ee4fc8ad835ca3141c0 + +Cipher = aes-192-ccm +Key = 197afb02ffbd8f699dacae87094d524324576b99844f75e1 +IV = a98c2f0e0a7b68942853905191 +AAD = +Tag = 7ff1eb5d +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = 39b0d3603f1289b5885ac244953275d28491952e7e57d93c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 5a8aa485c316e9403aff859fbb +AAD = +Tag = a7ade30a07d185692ab0ebdf4c78cf7a +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 49004912fdd7269279b1f06a89 +AAD = +Tag = f042c86363cc05afb98c66e16be8a445 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 9a98617fb97a0dfe466be692272dcdaec1c5443a3b51312e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = efeb82c8c68d6600b24dd6d8ee +AAD = +Tag = 41a8f6ac697430627826bd76b19da027 +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = d3068ae815c3605d7670058abb9384f4c15b75150eb79100 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 7b93d368dc551640b00ba3cbb5 +AAD = +Tag = 980581017fefef92c2b50ae20b93c81c +Plaintext = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697 +Ciphertext = 388a289bb85533b667b141a78d0c79acdeb9fbf72886d5ab +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 24b7a65391f88bea38fcd54a9a +AAD = +Tag = 327f5f91763c0a0bec43264c27cd237f +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 71f68480a8801d4966c84807c5ff6139d83ba0a5b902bee3 + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 6aa3f731522fce7e366ba59945 +AAD = +Tag = 52c4b7fd911ca77950ff2d035e47b7ec +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 8627bf1e3edafc69f1328c393dd8e7bd1c182d021e6d3a36 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a11cf5bed0041ee3cb1fef4b43 +AAD = +Tag = 4ffcb29bde8b9a81945d671b0f619045 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = b10ea86a384432a45f50b3c2e482595b46c81c61ca39bc0f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 273cc5013785baeb5abc79c8bd +AAD = +Tag = 578cc14aa558e18d5f777ab6e16dcfee +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 3ace8b7e03a0c1fa9e97f46975ab0a4924446e791540e225 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = d2d4482ea8e98c1cf309671895 +AAD = +Tag = 75433c4ae28757c8544c86f1f74ea6a5 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 8190abe4c21e320e10825e269190bb10a354691958e24362 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a8849b44adb48d271979656930 +AAD = +Tag = d7752ebe9c5dbf00ee8ad60ac34dd7d0 +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 1d7e308c34cdca7b7b222f4ebc92afd8055bff542c0b76d3 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a632ba0d00511122abcd6227ff +AAD = +Tag = 0a4432b35d3b884e4169c28d287499ff +Plaintext = 43419715cef9a48dc7280bc035082a6581afd1d82bee9d1a +Ciphertext = 9c2609f7af5b634a16e58f2e9cc7a9ef7812a12d20984700 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = c47af80cd26d047630c1fdf0d1 +AAD = +Tag = 9256ace490c2f0afb93ba32be58fd1de +Plaintext = d8306c9c4ea6c69c6e2ad0fc0e49b1e0126b01078d6419ff +Ciphertext = 5b0b5e6690d648e1b92c12cfddb431d6d3dfe689d01db819 + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 70e132023acae1f88c7a237b68 +AAD = +Tag = efd8535dd6b7fa701c9ca8c8b635c30b +Plaintext = d0b2bef5ed1a87d9c73d4a459cb05c11799c4f51ad640b1e +Ciphertext = 8722fca71fdf750ec5d62fc6d7ba079aef19210da764067a + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 8010d3a2a14f72f5585defc940 +AAD = +Tag = 1b5d2cd4d5b6d2ef48413245a6b27b67 +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = 91ac457f5e53492301e72d9d495277ed17edb30e8c7a48d2 + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a98c2f0e0a7b68942853905191 +AAD = +Tag = fdc83ea4863c3e84a5456f7f853a1ea6 +Plaintext = 4faba05569bf7ac656780c16995e9122e565fe9984be8a68 +Ciphertext = d2fe5293b7d53ed46ddf02a5618039adbae22845ce72e434 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 1d089a5f +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a265480ca88d5f +AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe +Tag = 2f46022a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 87ec7423f1ebfc +AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5 +Tag = 67dc4693 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = b8b04f90616082 +AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8 +Tag = 7027a849 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 8c687b4318813a +AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf +Tag = 5c6a4de2 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 29b810eed8fc92 +AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa +Tag = 1d855f5d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 62452462c53934 +AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96 +Tag = 1b318980 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 4cceba0e7aee97 +AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445 +Tag = cf871f91 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = b5151b0601c683 +AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c +Tag = 4f0e04bc +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = 4e5d6d7ac9e71e +AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811 +Tag = fc9013df +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = dc88e989951a3f +AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5 +Tag = 5134def3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = a1aeda4b4cb8dd +AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963 +Tag = 5814103a +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = f248e5225e3d9a +AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e +Tag = 74c75c4a +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = e68228f5c65b73 +AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 +Tag = 9884898b +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 90929a4b0ac65b350ad1591611fe48297e03956f6083e451 +IV = ea167cfd1101d9 +AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041 +Tag = 0b1cbfb1 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 5280a2137fee3deefcfe9b63a1199fb3 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = a265480ca88d5f +AAD = a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe +Tag = d40a7318c5f2d82f838c0beeefe0d598 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 87ec7423f1ebfc +AAD = 2bed1ec06c1ca149d9ffbaf048c474ea2de000eb7950f18d6c25acf6ab3f19b5 +Tag = 7551978bc9592bf9e294b4984c5862bb +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = b8b04f90616082 +AAD = 4898731e143fcc677c7cf1a8f2b3c4039fb5e57028e33b05e097d1763cbfe4d8 +Tag = 859cf444f89225b32a55a1645bd24979 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 8c687b4318813a +AAD = fcad52a88544325bb31eb5de4a41dbff6a96f69d0993b969a01792ee23953acf +Tag = 29e967a0245607c36cf3eaf00fdae566 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 29b810eed8fc92 +AAD = 40d1d320eb63a25d7a2b3141563a552114275ddda56beb62cc0c0273d5795faa +Tag = 9daa0e1c4df5f2bf507b1a57a1135b86 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 62452462c53934 +AAD = 1eb8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96 +Tag = 18caec79720a5d67d7457e9b7c7a153c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 4cceba0e7aee97 +AAD = f33e184c967165eb62542999afaca4e3e319840e439b5bb509544fb4b6901445 +Tag = 5f2c455546c56f514a0f69f05345c2c4 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = b5151b0601c683 +AAD = 73d27303ec91f28c79b278882034d11eb6a5266746f37edbb77f8409a8738b8c +Tag = b7e4846ff30b7c3673a962a2701c0387 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 4e5d6d7ac9e71e +AAD = a01b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811 +Tag = 7b5fa0d42a616ab05ac2c58c904ce92f +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = dc88e989951a3f +AAD = fdcacfaff46585406cc45a2da364e67e132a91c98900a8f9d7bfb14ec951fca5 +Tag = c8c67f558b5844b149dd47824c8cb9d8 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = a1aeda4b4cb8dd +AAD = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c6f6d03036edea963 +Tag = 70a09aaf22ac316124a169f6b0a83ffe +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = f248e5225e3d9a +AAD = fdc64ef76a3bfd0a15d0bc8e8bacaf64346796a3e35afcf2ac1ab136f63f7b6e +Tag = 5bc85ed5521a91b9eb42b437950f0e06 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = e68228f5c65b73 +AAD = 614efdf89ce2a9fcbd38bdc0b4cece54dfd7532880e0b4ce6eb3a4010b7cb1e7 +Tag = 989ec0e7b192ea010dd61d3fb64e8de0 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = ea167cfd1101d9 +AAD = 28130f938c45a1a92b02dbeadbd8df816b6d934e87cca2dfdbfdc49c7cd84041 +Tag = 15c2dbe7fa307654d8ca7c0f8d6d2f14 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = 5e0eaebd +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 8739b4bea1a099fe547499cbc6 +AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7 +Tag = 71b7fc33 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 0f98fdbde2b04387f27b3401dd +AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc +Tag = 93227bd4 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 4eed58f381e500902ba5c56864 +AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946 +Tag = ced654e2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 1e7e51f0fa9a33ed618c26f5e3 +AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a +Tag = bf7a8e0c +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = f012f94f5988c79aa179d7fdfc +AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c +Tag = 840caa3e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 715acf92cfb69ad56036c49e70 +AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff +Tag = 1e22fc41 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 141be3601e38185a9fa1596d2e +AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a +Tag = 968ccbbf +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = fcdda3c5f0e80843b03d8788da +AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512 +Tag = 0a31cc96 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = ca660ed3b917c0aca140dcd3fb +AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51 +Tag = a456c3da +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 642ae3466661ce1f51783deece +AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5 +Tag = 29746eea +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 7864c717ec93db38b10679be47 +AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4 +Tag = df7f63ca +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = c3bf9dfe9d6c26f543188fb457 +AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0 +Tag = bf0b1445 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = 1527657d2fd98f7deca55cc649 +AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af +Tag = ae8533f5 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2 +IV = b8432d3d5525a0dadbbaa6b6b8 +AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba +Tag = 9426cf89 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = d07ccf9fdc3d33aa94cda3d230da707c +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 8739b4bea1a099fe547499cbc6 +AAD = f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7 +Tag = 65fe32b649dc328c9f531584897e85b3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 0f98fdbde2b04387f27b3401dd +AAD = 02010329660fa716556193eb4870ee84bd934296a5c52d92bba859cc13caaddc +Tag = ec31fb6b41c2dae87cf395fc1fe3a080 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 4eed58f381e500902ba5c56864 +AAD = 96056d9ebd7c553c22cc2d9d816b61123750d96c1b08c4b661079424bf3c4946 +Tag = 33c2f2312dd5bfcadbb05f8d0a33fd4a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 1e7e51f0fa9a33ed618c26f5e3 +AAD = da9b8ffb0f3c2aee2e386cc9f035ec1eb3e629bd1544c11dc21be4fd8ac9074a +Tag = a9e81afd1030d195c679e2c837aeb736 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = f012f94f5988c79aa179d7fdfc +AAD = 612b2ef2683109d99452f95099417641d0c2be3f8ab4cbb2a44e83355ba9303c +Tag = 1db000f0e7d3a03718293fc118678427 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 715acf92cfb69ad56036c49e70 +AAD = 960667b85be07304634124b9324be12a1c11451f1fa9db82c683265b4cf8e5ff +Tag = ea37900f049db8fc5cbf46edb5fcac2c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 141be3601e38185a9fa1596d2e +AAD = 606452c62290b43559a588bb03356f846cecb0ccaf0bdaf67a18abd811d4315a +Tag = d1097ebd7ad0a41f61ba32a44dc15305 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = fcdda3c5f0e80843b03d8788da +AAD = 03f22247a55461a293d253c77483859fdac1b87c2480e208a3df767cfbfde512 +Tag = 0979729272d8b42f2e3dc0eb181a1217 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = ca660ed3b917c0aca140dcd3fb +AAD = 254a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b42574572f51 +Tag = 4457200916a20116b096225606f1a9e2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 642ae3466661ce1f51783deece +AAD = 4432a1cec5976cc13b8fb78341d426c2248f091b597123d263ffafc7f82da5a5 +Tag = cc6b51f39a3dcfb54abbb89f4df21114 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 7864c717ec93db38b10679be47 +AAD = 679aad1ad1e57029e3362b325572fc71cac53184b0f1546867e665a4a59466c4 +Tag = aac09cef9697927331251f028d24c31f +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = c3bf9dfe9d6c26f543188fb457 +AAD = e301f69ad3a7e08a3d02462f0aa584449eb0449b0e3c50aa8dfaa4472816c8b0 +Tag = 56c00070eae0db329894a045d866bbaf +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 1527657d2fd98f7deca55cc649 +AAD = f4c723433b7cafe3cda9bb4940a21a89a8382d13018b622ccd1ffb9ffd3211af +Tag = 090016bb96aeaabbf66fd34fc97591a4 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = b8432d3d5525a0dadbbaa6b6b8 +AAD = 86ee6e37b4a2d9a0b52ec95643b4e8297e237721e15ce8bf7593a98644f83eba +Tag = 264407dfe796bf7f6eb1f26c1f8504ef +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 75dea8d1 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 9f6ca4af9b159148c889a6584d1183ea26e2614874b05045 + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = fdd2d6f503c915 +AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e +Tag = d7965825 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 84d8212e9cfc2121252baa3b065b1edcf50497b9594db1eb +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 27d73d58100054 +AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467 +Tag = f7f796fe +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 5f60a8f867a33b2077ecc69863b295c3c6aeae7d7cade7f8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = dd16e0ce1250e3 +AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242 +Tag = b8f1f2ae +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 1353b3fa1bb1d57ffb139017885c02e26c90231a24b5a615 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = ccee19d037cf4a +AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07 +Tag = 8b4b53f6 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = c3116d9040e1ed4f7c9464d270fb302bd3f1561c25c5b95b + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 6c8ba94f09cbe6 +AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496 +Tag = f6bf3800 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 0ca17e8f89bea67db48a8f132ef6c6df7a292914d401299a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 1f670302fcdcc8 +AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c +Tag = 13244cf6 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 0ce543569e8187f3cec70399ff922e4903cb1d12f990f056 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 5d05f658c729a2 +AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352 +Tag = a5876de8 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 3acdbc163a350f312791b152a41e57627b1cc8bf3e41c8ae +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 22a77db9fcbc95 +AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a +Tag = 1970ed17 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 604518e436edf7a0561d5e284f3915839a6d28cb06ef792a +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 491e32b0bbfa4c +AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e +Tag = f68d8da4 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = fc79b520d67da891e63654d7927db6c8012c96985a0059d5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = bc4b7d3a380be0 +AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc +Tag = 90ee4c14 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = d86bb51a98770098d0feb39170bd979199a8f741041df137 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = a840e98df72ae9 +AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c +Tag = 29c87855 +Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da +Ciphertext = 51b6b928bdd1cc0bd0a0aed2cda302472d618ffaa60e1790 + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 39d93c3cf31a6f +AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869 +Tag = 4de8ed8d +Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582 +Ciphertext = d0abab9b8e9d6c11bb9c15bea8a486704bed32c57297055b + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = 0bbc177019321e +AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795 +Tag = 31d69947 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = 92fd519a966c0fbdd7087ff5a1bd946cd663502db3783835 + +Cipher = aes-192-ccm +Key = f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4 +IV = ad048eb2ad7526 +AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e +Tag = 30768d4d +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = 7f239b1916830161f3b52b7ab13542a5a0a97a17f30ca5fa +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 5a8aa485c316e9 +AAD = 3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c +Tag = 4d1d980d6fe0fb44b421992662b97975 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 6aab64c4787599d8f213446beadb16e08dba60e97f56dbd1 + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = fdd2d6f503c915 +AAD = 5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e +Tag = 3c51d36c826f01384100886198a7f6a3 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 4980b2ee49b1aaf393175f5ab9bae95ec7904557dfa20660 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 27d73d58100054 +AAD = f6468542923be79b4b06dfe70920d57d1da73a9c16f9c9a12d810d7de0d12467 +Tag = 758a111aae4f735b7dd4d9802f2a8406 +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 86a02bdd6ae733eee26f8eab898b336105978b5bbd6df781 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = dd16e0ce1250e3 +AAD = bc65cfd65e9863c8b7457d58afa6bdb48a84170d8aa97ba5b397b52ad17a9242 +Tag = 8cef14ebc2951069739d5d657d82addb +Plaintext = a265480ca88d5f536db0dc6abc40faf0d05be7a966977768 +Ciphertext = 59cfab8956813c48e09332a2bb8a30dbcdf5afb2529532ab +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = ccee19d037cf4a +AAD = c026696e6425e6c33f45b4145febf1137e7ac26383c9f5aa4cd4e5e8abb19e07 +Tag = 170a2b9c309de6c2326115a76efbdf98 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 67d989ea935b9ce190e3a7f3b645305e1e308a7fe617f80f + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 6c8ba94f09cbe6 +AAD = 774ad1a88f8bb063951486d4aec5bf82d5fc535bd0b952f86200c123c37fa496 +Tag = 4bcd14af0205af716f2b864f0c397f65 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 2522a5e4d157193ef2c264cfe877db8ac75b3cc5aab08a81 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 1f670302fcdcc8 +AAD = 1a9ff9698cfc96b581d7115c822e4363d7355ec5daed2eae5bf89ee944ac7d9c +Tag = 762d5d8adafe75a191310a2618930c48 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 4536422bbad220079ee09e700e103efdaac832d016a20813 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 5d05f658c729a2 +AAD = dd9564c1431ed490b17ef69f6115805e54ef156ef4e10e58f7d57a7e86626352 +Tag = 206f80080dfa3e66e6371c0cde6cd205 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = d6711a78adf54f4effe647d531c4618cf32e3037eb700580 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 22a77db9fcbc95 +AAD = 86bf1739c10f63df734ee3e60ac40ff5636c49f68ca4c16ece289609eb413e7a +Tag = b1b5b2b35c8a8125efccd1f4102f3e82 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = e44034a397778e1c6babab27f5a50fa4aac0e83d6b3eb25d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 491e32b0bbfa4c +AAD = 75bef075c79d6cfd7fc73aefd67b2d215be0648937477ba606b1fe1be591239e +Tag = ca36f53b01943f03cb8b69b5af53e505 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = b8e31c5910623e405f2ebf65821963e5b8814043612395fe +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = bc4b7d3a380be0 +AAD = 353dbb41e2d525a9f4fcd858d0f0aa1b1e86ac0f936d5c09c6b61c343f94e3fc +Tag = c3bfc6851049d32105fd16bd45b29f29 +Plaintext = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005 +Ciphertext = 4000faf8558f2f4e01e45e90796cd236e5211d1704270f31 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = a840e98df72ae9 +AAD = 22c6607732ef1bdc7fcf6197e037cdadd7ee17c008552dd9f04b8564d34fb17c +Tag = 847b022733ca5a5e3c4d472332484b7f +Plaintext = a2f53385618b41301f4e3ea4c597f411103dac2b37abf5da +Ciphertext = 53bb608f6236798839af35888cb0fa4797b599271084cc13 + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 39d93c3cf31a6f +AAD = 937dfac5cded938438f4e97aabd9beb50dba40f824198260a89729479cfe6869 +Tag = 1c79edbf38c50e0f240a2d70f65aa79f +Plaintext = c1bdef96dc868446be48491b160504546f2a40dd581f9582 +Ciphertext = be54551d1d2f1b3eb60ffe3b165524ff90ca09fb252bf21c + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 0bbc177019321e +AAD = f6e02678820f5ccbede6cbded02d6dd58d486166d7b18ee975a688af421fb795 +Tag = a82cd3ebaf6c2d3e21749bdf570ad28d +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = f07c1072d8f8e077dfbb3ad86dd92d32b41f29e647dcd7e3 + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = ad048eb2ad7526 +AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e +Tag = ef93a8759845326683a0d9c22151f486 +Plaintext = 72a70954d22ad722fc32756afce67b344b2f3c55fe1d9eed +Ciphertext = 7f7cf7f4d0645934cb0a5e67b4227a909aa55dba09b2c39c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = c25e9fce +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 16e543d0e20615ff0df15acd9927ddfe40668a54bb854ccc + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 0812757ad0cc4d17c4cfe7a642 +AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10 +Tag = 8ecedb3e +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = df35b109caf690656ae278bbd8f8bba687a2ce11b105dae9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = eff510acc1b85f35029cf7dc00 +AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86 +Tag = 728da544 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 7075da2291e2cb527eb926ed08d8020c5f8f0f2d4a6a4745 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 3d13d09057190366c63c8750e9 +AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32 +Tag = 02a9b9bc +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 18a77a66457b53286b1aea0845304cac8e66a02d5c642e4c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = e3c03ef7e1d31961ee0b97bd99 +AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784 +Tag = ccf8ecf0 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 24e1d3820101412d8f4d57118cab8f7e489d5cac78802dd5 + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 5d165ddd4e599387af5967cae6 +AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed +Tag = 661181d5 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = b5929bc9648e24a553c5cd953ecb9d67ee508d2d4ac7b46e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = fcec171162a27a96066181fab2 +AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62 +Tag = 7d74517d +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 54aa018dc7fdf8a54809e1393d18031bab4aa5ca35c20190 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 2fa8120398d1a946f391367cf6 +AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da +Tag = 4a8edd83 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 69bcc300a459862b3cd284c15dd4af53dc7e95f3067bb825 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 88e0ae338bbca9d4299b294354 +AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb +Tag = 70ad39a6 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 5c2d2df0d8aade3e5ae0f8d8b4b4d7c565817a31b2865dc2 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 4862e36296d6afc9399a95bbb4 +AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8 +Tag = ae423997 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = df1b3f98b6b0060191e7eb817f5908ddc0bc6f83860349e8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 2f360a4715074e942244ab7f9b +AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f +Tag = 3309108e +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 16e59dd38395c7be7f580371edabb1e9bf21270de270aa28 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 93e08854560edb096e5d654086 +AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2 +Tag = bcc87096 +Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906 +Ciphertext = 0ef8981dd37c055a3c3e14786fc662b2a11065964911d35e + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = e3f37b68ff508cfe295441d9e3 +AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208 +Tag = e981e935 +Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2 +Ciphertext = fc1870cfc440f74f73f40e682cf4713d027c297b9426c3ef + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = ea98ec44f5a86715014783172e +AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810 +Tag = 3b98de4f +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 9fc2c462dff1ba9756772d73de5c4e822b5ea0bc88845a32 + +Cipher = aes-192-ccm +Key = a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d +IV = 5a16a8902bd70fa06cfe184c57 +AAD = 399d6b0652836457ec4f701f0dc0e5aed73d16585d61cb1bb5b7ee824fc287c8 +Tag = af3b74e1 +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 05fc586d5c780b8e06f618b5bb85f591665a54390eba4e14 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 5a8aa485c316e9403aff859fbb +AAD = a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982 +Tag = 8464a6f7fa2b76744e8e8d95691cecb8 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = c5b0b2ef17498c5570eb335df4588032958ba3d69bf6f317 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 0812757ad0cc4d17c4cfe7a642 +AAD = ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10 +Tag = 06bd6dc2e6bcc3436cffb969ae900388 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = d1f0518929f4ae2f0543de2a7dfe4bb0110bb3057e524a1c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = eff510acc1b85f35029cf7dc00 +AAD = 0923b927b8295c5dfaf67da55e5014293bc8c708fda50af06c1e8aef31cccc86 +Tag = bb56d90669c726d866fe2206b8828727 +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 1aa7dfa3a9818142c4971cbf4f64d4cbdbd354c6958ef474 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 3d13d09057190366c63c8750e9 +AAD = 77e27aa9a7bf30e130c862a3296a1cd7a10195ed1d940f2c97bfff47c6f06e32 +Tag = 9953fec4e091b3573214e1ecac1ac00c +Plaintext = 8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5 +Ciphertext = 90352a5ec92d4fa52a96ae28251a57933728b2a3670e2ecd +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = e3c03ef7e1d31961ee0b97bd99 +AAD = 8a3676dd640821b58fb0f0329855fd5882c376ea166b958b7aaad223054e5784 +Tag = 783618374f6d03df28ee57a1a5aa38d8 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = eaa995946ed91d6a08ade14b260ac752cbd1081d5a7cad90 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 5d165ddd4e599387af5967cae6 +AAD = e374f875ce829b62c98fbd67bcf128b5647f25fff9a643300eb95559b889baed +Tag = 47bb3f30d6e674d10a496806c1c8933e +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 0e320c4ece6ef0305a431a07a5a34d463ec4a37fc513c4b9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = fcec171162a27a96066181fab2 +AAD = cf431cc3671ec468ea86f6cc09842fcf3a84b3ef0fa1c7b20b232145b4469d62 +Tag = 7dd7ee3f75cfb47fa72433644f9cf62e +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 10685888091597c50acc54b2fb65150b83a7115351d6f8bd +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 2fa8120398d1a946f391367cf6 +AAD = 92558a239c8e13230754f23aec67b153db29fdfc7daf641778185dd2931d89da +Tag = 43314076072a0ebd253fe1ab4883ebea +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = e456abf9ee83e0a68fbdb09c4a7afaba0efb0aa6d74a17c4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 88e0ae338bbca9d4299b294354 +AAD = 5db5c388dbadc9f175a5cd5a1472a458d25acd7fb9c951c0cd45edf64da473bb +Tag = 16a72444f0949868f0e71907acbb29f4 +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 5adadfd296edaf4bea92c8245983dc31b11335f682fb222c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 4862e36296d6afc9399a95bbb4 +AAD = 36d82ebd0e0f5fe3b12946d041ae5aee16e6d17025406dd776f499bbd8e8b4c8 +Tag = ab2025208191d73041c038cf2562bb8c +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = c2bb4d5a830646b3f8bf84044851c3b676c4ec02e43dcbf1 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 2f360a4715074e942244ab7f9b +AAD = f0087b0086a081c1071481f033a8be8e940c36763084329bb8461b9102238f4f +Tag = b7e6d183efa1f51b7ff31eaa52ed59ba +Plaintext = 92973ce707733a73118c8ce6b5e3fc77a17f448310c0197f +Ciphertext = 9589b8abcb47e54e6e8fad3e64fec7ed4f70ac435bb3e548 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 93e08854560edb096e5d654086 +AAD = bdc60dff08bfd5d44320b75c61e456fd4333c9c3d0294d4a48d936dfd5922ce2 +Tag = d990b642039f24755790332b3cc47c49 +Plaintext = 569e4aec88dd51ca519c0a00c922ee33d3559b98a32d7906 +Ciphertext = af63f27e2a9e70f106477493dc141d16a1d059dd7a8a7810 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = e3f37b68ff508cfe295441d9e3 +AAD = b2b6c5782e4f128467c589d2a6cf55ef12877adb771bbb6245c5bba9dcfd6208 +Tag = 6d3968fdceaae5138c411a29d0d333ee +Plaintext = 02b5511204bd55f7c37973e26f6df5883c0a530f07c7f8c2 +Ciphertext = 1d2ae88c878684a0b404986252b3a7583e1a5a51163ddc60 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = ea98ec44f5a86715014783172e +AAD = e4692b9f06b666c7451b146c8aeb07a6e30c629d28065c3dde5940325b14b810 +Tag = dbf8e9464909bdf337e48093c082a10b +Plaintext = 4da40b80579c1d9a5309f7efecb7c059a2f914511ca5fc10 +Ciphertext = 30c154c616946eccc2e241d336ad33720953e449a0e6b0f0 + + +Title = NIST CCM 256 Decryption-Verfication Process Tests + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = a544218dadd3c1 +AAD = +Tag = 469c90bb +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = d3d5424e20fbec +AAD = +Tag = 46a908ed +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = e776620a3bd961 +AAD = +Tag = fdd35c4d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 6c7a3be9f9ad55 +AAD = +Tag = 869ce60e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = dbb3923156cfd6 +AAD = +Tag = 1302d515 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = b390f67eaef8f5 +AAD = +Tag = 156416ee +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = a259c114eaac89 +AAD = +Tag = 4fe06e92 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 7fc8804fef18ef +AAD = +Tag = 611091aa +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = fbaf4cbc49fa0f +AAD = +Tag = 696e9371 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 2ed0c8761dbf04 +AAD = +Tag = a0e0a2cb +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 346bb04ea0db86 +AAD = +Tag = 43cc0375 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = e1be89af98ffd7 +AAD = +Tag = e5417f6b +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = a6a0d57aaaf012 +AAD = +Tag = fff8a068 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 1aa758eb2f9a28 +AAD = +Tag = f8fa8e71 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6 +IV = 2911167fc98fc3 +AAD = +Tag = 0bfa2d9d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = a544218dadd3c1 +AAD = +Tag = 8207eb14d33855a52acceed17dbcbf6e +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = d3d5424e20fbec +AAD = +Tag = 60f8e127cb4d30db6df0622158cd931d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = e776620a3bd961 +AAD = +Tag = 4239f29871651e9a26b8b06ffc5b3748 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 6c7a3be9f9ad55 +AAD = +Tag = 5d35364c621fe8959dfe70ab44700fbe +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = dbb3923156cfd6 +AAD = +Tag = e4dc5e03aacea691262ee69cee8ffbbe +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = b390f67eaef8f5 +AAD = +Tag = c8eb7643b4ed3c796c3873e8c6624e0d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = a259c114eaac89 +AAD = +Tag = f79c53fd5e69835b7e70496ea999718b +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 7fc8804fef18ef +AAD = +Tag = 687e00723a419fa81c0923b8b8e245ae +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = fbaf4cbc49fa0f +AAD = +Tag = 499ab350309ad6091ec4aaf6bf0cbd00 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 2ed0c8761dbf04 +AAD = +Tag = c27b9f14787dc5375f59d0c561a23446 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 346bb04ea0db86 +AAD = +Tag = 655c737722c78ac96582a883d407b2bb +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = e1be89af98ffd7 +AAD = +Tag = 10d3f6fe08280d45e67e58fe41a7f036 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = a6a0d57aaaf012 +AAD = +Tag = b4e425e43edb92c606f7cb2de8a06932 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 1aa758eb2f9a28 +AAD = +Tag = 2590df2453cb94c304ba0a2bff3f3c71 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 2911167fc98fc3 +AAD = +Tag = 1f344e30dfa95b2319e274caa5780e60 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = a544218dadd3c10583db49cf39 +AAD = +Tag = 8a19a133 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 3c0e2815d37d844f7ac240ba9d +AAD = +Tag = 2e317f1b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 75549e7e5657e5fe19872fcee0 +AAD = +Tag = 979bdcfe +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = d071ff72735820d73485870e83 +AAD = +Tag = 8ef89acf +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 79ac204a26b9fee1132370c20f +AAD = +Tag = 154024b2 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = a64bbc3d6d377dab513f7d9ce8 +AAD = +Tag = 8dbcc439 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 0545fd9ecbc73ccdbbbd4244fd +AAD = +Tag = 5c349fb2 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 182fb47a12becf0bfe65df1287 +AAD = +Tag = 79df3e02 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = f342059a6f9dc14226b40debc4 +AAD = +Tag = fbc2c500 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 6cbfe6bb4c9b171b93d28e9f8f +AAD = +Tag = 2fac1bca +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 82877df921c6ade43064ad963e +AAD = +Tag = 99948f6e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = 0a37f2e7c66490e97285f1b09e +AAD = +Tag = c59bf14c +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = d7b9c346ce2f8bad9623122e10 +AAD = +Tag = b764c393 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = +Tag = 5b96f41d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8 +IV = b6ce7d00731184b24428df046b +AAD = +Tag = f7e12df1 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = a544218dadd3c10583db49cf39 +AAD = +Tag = 97e1a8dd4259ccd2e431e057b0397fcf +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 3c0e2815d37d844f7ac240ba9d +AAD = +Tag = 5a9596c511ea6a8671adefc4f2157d8b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 75549e7e5657e5fe19872fcee0 +AAD = +Tag = 66f5c53efbc74fa02dedc303fd95133a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = d071ff72735820d73485870e83 +AAD = +Tag = 2dfd3c852f68eace45acf433a6aa9c05 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 79ac204a26b9fee1132370c20f +AAD = +Tag = 5c8c9a5b97be8c7bc01ca8d693b809f9 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = a64bbc3d6d377dab513f7d9ce8 +AAD = +Tag = ec093121bdcd589285f2262be8db5c4e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 0545fd9ecbc73ccdbbbd4244fd +AAD = +Tag = 84201662b213c7a1ff0c1b3c25e4ec45 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 182fb47a12becf0bfe65df1287 +AAD = +Tag = bbe746d6d31e8e9745faed4095ab8d5d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = f342059a6f9dc14226b40debc4 +AAD = +Tag = 646c1258dc4aa6fc380818e70e5f4328 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 6cbfe6bb4c9b171b93d28e9f8f +AAD = +Tag = 15fa37ca7f2883a4642c1ed41b8f6293 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 82877df921c6ade43064ad963e +AAD = +Tag = c6acf5e5ded4efb2c314370ebb9e9cde +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 0a37f2e7c66490e97285f1b09e +AAD = +Tag = 586e728193ce6db9a926b03b2d77dd6e +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = d7b9c346ce2f8bad9623122e10 +AAD = +Tag = 642a187e71feff5989e28184aded0199 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = +Tag = 64864d21b6ee3fca13f07fc0486e232d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = b6ce7d00731184b24428df046b +AAD = +Tag = 58c63ce68f132d30d177c5834344cc5d +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = a544218dadd3c1 +AAD = +Tag = 22aa8d59 +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = 64a1341679972dc5869fcf69b19d5c5ea50aa0b5e985f5b7 + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = bfcda8b5a2d0d2 +AAD = +Tag = 77d00a75 +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = c5b7f802bffc498c1626e3774f1d9f94045dfd8e1a10a202 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 6bae7f35c56b27 +AAD = +Tag = 28588021 +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = bf432e246b7fa4aff8b3ada738432b51f6872ed92284db9d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = c5e4214b1bf209 +AAD = +Tag = 37921120 +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = 0d5760ad0e156e401120a1ebd1b139248784c88e10e34254 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 9d773a31fe2ec7 +AAD = +Tag = dce2d25e +Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0 +Ciphertext = 5acfbe5e488976d8b9b77e69a736e8c919053f9415551209 + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = f42cb0cce9efb6 +AAD = +Tag = 1ef530d0 +Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0 +Ciphertext = be8be6046ac58411a00c131dd4a72d565f98d87a2c89124b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 24b7a65391f88b +AAD = +Tag = 750125f3 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = f00628e10e8e0115b4a4532a1212a23aade4090832c1972d + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = d2a7eb45780df3 +AAD = +Tag = 08aaaf93 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 9078151f674d5f7b56e2451b0316156f776459f17d277e01 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 046cbfd26093d8 +AAD = +Tag = bd95e677 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 921cbecce3b06f3d655a5a0a4d212320d4f147575079fd23 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 51b13b0b04d077 +AAD = +Tag = 7e2ebb1d +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 8cab1ff22d474e9863c153e84680e2a66981f03605136047 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = ce2e9967bf9eb7 +AAD = +Tag = 662f8684 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 15f476b5aefe072548a54f59506d9c3b9ce29025340214be +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = b672c91376f533 +AAD = +Tag = d5642830 +Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec +Ciphertext = 758aa03dc72c362c43b5f85bfaa3db4a74860887a8c29e47 + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 62f6f1872462d8 +AAD = +Tag = 01472fe1 +Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec +Ciphertext = ec645769b22161567e6a7e23aa06575bc767a34aa54d3cba +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = a6d01fb88ca547 +AAD = +Tag = 7aa999d7 +Plaintext = a36155de477364236591e453008114075b4872120ef17264 +Ciphertext = 615cbeabbe163ba8bc9c073df9ad40833fcf3f424644ccc3 + +Cipher = aes-256-ccm +Key = af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569 +IV = 46ad6ebbd8644a +AAD = +Tag = d27b7cf2 +Plaintext = a36155de477364236591e453008114075b4872120ef17264 +Ciphertext = 0ed6cc6451de57ca672d56dee45d4548a810d5c49dfe442d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = a544218dadd3c1 +AAD = +Tag = 374f3bb6db8377ebfc79674858c4f305 +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = bc51c3925a960e7732533e4ef3a4f69ee6826de952bcb0fd + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = bfcda8b5a2d0d2 +AAD = +Tag = 3275f2a4907d51b734fe7238cebbd48f +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = afa1fa8e8a70e26b02161150556d604101fdf423f332c336 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 6bae7f35c56b27 +AAD = +Tag = e672f1f22cbe4a5305f19aaa6967237b +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = 72bc8ef21a847047091b673ccf231d35ecf6f4049741703b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = c5e4214b1bf209 +AAD = +Tag = 400b152113c3976be63dcd9e7a84ddac +Plaintext = d3d5424e20fbec43ae495353ed830271515ab104f8860c98 +Ciphertext = b719f6555fc4e5424273f5903d5672af460413110278707f +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 9d773a31fe2ec7 +AAD = +Tag = f2870ce198af11f4fb698a67af6c89ad +Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0 +Ciphertext = 4539bb13382b034ddb16a3329148f9243a4eee998fe444af + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = f42cb0cce9efb6 +AAD = +Tag = cc98b3f5758972bf08ea9e88dc6e54ed +Plaintext = 839d8cfa2c921c3cceb7d1f46bd2eaad706e53f64523d8c0 +Ciphertext = 47cbb909cb12fa0a4b0f1aefd54c52d1edd1533290f76b8c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 24b7a65391f88b +AAD = +Tag = 432704eff9b6830476db3d30d4c103e4 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 6d0f928352a17d63aca1899cbd305e1f831f1638d27c1e24 + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = d2a7eb45780df3 +AAD = +Tag = 71256981db86f1e768170a104ebfb81d +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = e0e686d917f78b3b0058fed7b084976244789073a6305ff5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 046cbfd26093d8 +AAD = +Tag = 5efbbae6a346863a93d52e0321cef8b2 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 960c573f5d6934a4cac49d06998f827b3d665cf02c998fe5 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 51b13b0b04d077 +AAD = +Tag = ac2fdc3cc683f6120e405f446a10e0f3 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = 7cf8f4806848e34aa7d3bd7e2cb9f5d9ff21395ff6d34826 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = ce2e9967bf9eb7 +AAD = +Tag = d254f7765b6155054a5efde28dd38750 +Plaintext = 3bed52236182c19418867d468dbf47c8aac46c02445f99bb +Ciphertext = e4f6445ca36e7ee3323f11f6a5ca8ded0c85871e092aa687 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = b672c91376f533 +AAD = +Tag = 9dc42d22a5436bc12eff5505edb25e19 +Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec +Ciphertext = f23ac1426cb1130c9a0913b347d8efafb6ed125913aa678a + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 62f6f1872462d8 +AAD = +Tag = 2db05feb368ab772d977fd97b35262fa +Plaintext = 4f7a561e61b7861719e4445057ac9b74a9be953b772b09ec +Ciphertext = ac9f131389181b1023f1ee47633aa433fc5d93a87d9ece96 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = a6d01fb88ca547 +AAD = +Tag = 789d2043179fdd8fdcbd52313b7b15cb +Plaintext = a36155de477364236591e453008114075b4872120ef17264 +Ciphertext = 773b8eea2e9830297ac11d3c1f6ea4008c96040e83d76d55 + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 46ad6ebbd8644a +AAD = +Tag = 079a2bac0ab4bc249bbdb330181cdd16 +Plaintext = a36155de477364236591e453008114075b4872120ef17264 +Ciphertext = d3fae92043c419fe8ac0d7491ca8041ad089559d895103cf +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = a544218dadd3c10583db49cf39 +AAD = +Tag = 3d14fb3f +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = 63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412 + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 894dcaa61008eb8fb052c60d41 +AAD = +Tag = 8d0c0099 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = bb5425b3869b76856ec58e39886fb6f6f2ac13fe44cb132d +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 8feba0d720aa4a5e35abc99e82 +AAD = +Tag = efd4365c +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = 2ca3be419d5be5ed682f8954d2c20efd9e6d360814735dae +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = ed04c9ca8702aec8d0a58e09a0 +AAD = +Tag = a4ccbef1 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = 3d34bda62db39d6118d6fd5cd38f1a3820ca69ce584b94a2 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 1501a243bf60b2cb40d5aa20ca +AAD = +Tag = f1a72afc +Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994 +Ciphertext = 377b2f1e7bd9e3d1077038e084f61950761361095f7eeebb + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = c6edaf35f0cb433500a8c3a613 +AAD = +Tag = be4f5f9a +Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994 +Ciphertext = 9cef6c889ff51666df9dd1dd2215c15f4b2078a29373c106 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = d65e0e53f765f9d5e6795c0c5e +AAD = +Tag = 9d0ef4f7 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 6cab3060bf3b33b163b933c2ed0ba51406810b54d0edcf5c + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 2b0163418a341588db0f5786d8 +AAD = +Tag = c08a9e85 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = f9543a659e9a8b7d75dd859df923817452735f5051726422 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = f16bba081bddda83546eabc9a5 +AAD = +Tag = 75dd819a +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 0d20bf6a9d02da72091d94cdb38743bfea2473d3ab62dcad +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = ace99268a32b9c1b5ccd8b0d84 +AAD = +Tag = 86e205f9 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 8bca01e6ebd7ebcdfe52b88e314670ffeb35882fc05394b3 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 24570517bbb0df1b3fbd32f57a +AAD = +Tag = f73a8bf0 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 7061c84e2e1d9d58013543ff82666055a1f055c1296c42c8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = a6b2371acf8321864c08ddb4d8 +AAD = +Tag = 94f223f0 +Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635 +Ciphertext = c5aa500d1f7c09a590e9d15d6860c4433684e04dd6bc5c8f + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = f8e2d4e043f5fe7a72b6117811 +AAD = +Tag = 17af8b14 +Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635 +Ciphertext = e3efa7971e27ba1245ee9491ebdbb28ad9b24b325da57604 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = c2b60f14c894ec6178fe79919f +AAD = +Tag = b4d35d44 +Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36 +Ciphertext = 852cca903d7fdf899807bd14642057534c8a0ccacb8c7b8f + +Cipher = aes-256-ccm +Key = f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453 +IV = 4de4c909ac0cc5fc608baf45ac +AAD = +Tag = 0bc044b1 +Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36 +Ciphertext = e04fd4f5b60833021ed57c98de300bb68d0d892b2bf68e08 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = a544218dadd3c10583db49cf39 +AAD = +Tag = 3a578d179902f912f9ea1afbce1120b3 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = f0050ad16392021a3f40207bed3521fb1e9f808f49830c42 + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 894dcaa61008eb8fb052c60d41 +AAD = +Tag = 9084607b83bd06e6442eac8dacf583cc +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = c408190d0fbf5034f83b24a8ed9657331a7ce141de4fae76 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 8feba0d720aa4a5e35abc99e82 +AAD = +Tag = 9002a46cfb734290924a15e9c3d99924 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = 52b3d31d02d1b92b38cbae8c510204dde6bf9588e994296c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = ed04c9ca8702aec8d0a58e09a0 +AAD = +Tag = b238e316c3f9adccce95e8c8b9c7e8d2 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = f80190470212ce1e64bf4c64ca0133d90469abf87a8233c2 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 1501a243bf60b2cb40d5aa20ca +AAD = +Tag = 8aaa3f0133234c0cd91609982adc034b +Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994 +Ciphertext = 254b847d4175bbb44a82b4e805514fa444c224710933f3ec + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = c6edaf35f0cb433500a8c3a613 +AAD = +Tag = 33255731cd88345860da913bc696fdc1 +Plaintext = f5730a05fec31a11662e2e14e362ccc75c7c30cdfccbf994 +Ciphertext = 7a5c7bc02aa69efc5a159d653f3993399f69e20752c3b006 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = d65e0e53f765f9d5e6795c0c5e +AAD = +Tag = fafb76adf12f36740347e3edae62bca4 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = c3618c991b15de641d291419ff6957e8b9ae5046dd8c6f08 + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 2b0163418a341588db0f5786d8 +AAD = +Tag = 066f55f23d4e55bcbbbf2312ea2d8071 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 240927bfd671a92aef0311395ad55ae42233ecee53873da4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = f16bba081bddda83546eabc9a5 +AAD = +Tag = 004753689cc84810b8414f1464c0c5b9 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 4731a7e690c77cd47582ce54a1cec23d94c856b93a9fc767 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = ace99268a32b9c1b5ccd8b0d84 +AAD = +Tag = 504da83478ede24026ec91fb12769e4b +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = f0ea12eaff20c3a50674aa1546aaae3bd5c9249108535b21 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 24570517bbb0df1b3fbd32f57a +AAD = +Tag = c9fcf9b9fd5e99767a7b1679b57ea961 +Plaintext = 20e394c7cc90bdfa6186fc1ba6fff158dfc690e24ba4c9fb +Ciphertext = 5b164d9752ad6c497a7ab2d0bf8be68fea084ea5839b07b7 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = a6b2371acf8321864c08ddb4d8 +AAD = +Tag = acb5a51d10a58d6584fbe73f1063c31b +Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635 +Ciphertext = bd37326da18e5ac79a1a9512f724bb539530868576b79c67 + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = f8e2d4e043f5fe7a72b6117811 +AAD = +Tag = ce54cd7623a80a176f29a01b3abb642e +Plaintext = 1a43ca628026219c5a430c54021a5a3152ae517167399635 +Ciphertext = 0455b4dd1069281e10531c0dc180ced9a5ef5d3fe0007470 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = c2b60f14c894ec6178fe79919f +AAD = +Tag = 95c66d3f411b478853886afd177d88c3 +Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36 +Ciphertext = ecd337640022635ce1ed273756d02b7feeb2515614c1fadc + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 4de4c909ac0cc5fc608baf45ac +AAD = +Tag = 830b2b6317716b3975e2b101aebdd920 +Plaintext = 3e707d98f19972a63d913e6ea7533af2f41ff98aee2b2a36 +Ciphertext = e25d7c9fb388596b13a13b885d5b24e31579a3494ad256da +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = a544218dadd3c1 +AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab +Tag = 92d00fbe +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 78c46e3249ca28 +AAD = 232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc +Tag = 9143e5c4 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = c18d9e7971e2ae +AAD = 0d40324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa +Tag = 54337466 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 162d061351d82d +AAD = 106d1fb32d948b0d8884f178ad2332a599445fae0f6f71f9ebe53a60b2df9b8e +Tag = bf0bf84c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 3fcb328bc96404 +AAD = 10b2ffed4f95af0f98ed4f77c677b5786ad01b31c095bbc6e1c99cf13977abba +Tag = 11250056 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = b3fd1eb1422277 +AAD = fa5398cf4cddbe4b45e9f5d7491cd9eefc5e494255961ba3f4b40d22b5f5fe76 +Tag = 13de5339 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = c42ac63de6f12a +AAD = 7ff8d06c5abcc50d3820de34b03089e6c5b202bcbaabca892825553d4d30020a +Tag = 4eed80fd +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = d4a7a672237e17 +AAD = d1cdad7fe886d07625a4334be6de4df0645d2a8b4008a8d35f04e6bcf87bfa56 +Tag = 4bc2e450 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = b23255372455c6 +AAD = d2e2c3607c40e0a807b86c6ebbc502ab42bdb7f85ab26299cd963bbba3a3a8fa +Tag = b30e6bbd +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 92272d40475fbb +AAD = 2f3af695ee33a9ebe6a48ed1b00e337261857110bb104191a54fd13bd960d8bc +Tag = f7c11fe2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = c4a756f6024a9d +AAD = 2317b324b6420ada9ea7bf52b71c5faf2485528da5f56b42c517be6355cdb28b +Tag = 76673751 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 3a1701b185d33a +AAD = e5d54df8ed9f89b98c5ebb1bc5d5279c2e182784ff4cd9c869ae152e29d7a2b2 +Tag = 9a5382c3 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = e4db2e80dc3f63 +AAD = 7616bdf5737d01f936072b6576fa76556dfa072f7e2d7de16b9dc96ac8de409c +Tag = 9e632f56 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = 4f490ce07e0150 +AAD = 3e12d09632c644c540077c6f90726d4167423a679322b2000a3f19cfcea02b33 +Tag = e1842c46 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4 +IV = b4aaf9ad1bde60 +AAD = 8c96c891456ddec29fe04299506723db2079a6667f96db5d198bf085acf2a4ef +Tag = 9f644671 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = a544218dadd3c1 +AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab +Tag = 93af11a08379eb37a16aa2837f09d69d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 78c46e3249ca28 +AAD = 232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc +Tag = d19b0c14ec686a7961ca7c386d125a65 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = c18d9e7971e2ae +AAD = 0d40324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa +Tag = 02ea916d60e2ceec6d9dc9b1185569b3 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 162d061351d82d +AAD = 106d1fb32d948b0d8884f178ad2332a599445fae0f6f71f9ebe53a60b2df9b8e +Tag = fabd2d0c422b47d363ea9936ff4a311b +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 3fcb328bc96404 +AAD = 10b2ffed4f95af0f98ed4f77c677b5786ad01b31c095bbc6e1c99cf13977abba +Tag = b3884b69d117146cfa5529901753ddc0 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = b3fd1eb1422277 +AAD = fa5398cf4cddbe4b45e9f5d7491cd9eefc5e494255961ba3f4b40d22b5f5fe76 +Tag = 7162026b6306e74fe32ece8433801bc2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = c42ac63de6f12a +AAD = 7ff8d06c5abcc50d3820de34b03089e6c5b202bcbaabca892825553d4d30020a +Tag = b53d93cbfd3d5cf3720cef5080bc7224 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = d4a7a672237e17 +AAD = d1cdad7fe886d07625a4334be6de4df0645d2a8b4008a8d35f04e6bcf87bfa56 +Tag = c8bbecf69ecf8d10f0863bb4b7cbed51 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = b23255372455c6 +AAD = d2e2c3607c40e0a807b86c6ebbc502ab42bdb7f85ab26299cd963bbba3a3a8fa +Tag = 6037145cc23a175760ae4b573907c80c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 92272d40475fbb +AAD = 2f3af695ee33a9ebe6a48ed1b00e337261857110bb104191a54fd13bd960d8bc +Tag = df7ea77425d631f652ffe096a8157f71 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = c4a756f6024a9d +AAD = 2317b324b6420ada9ea7bf52b71c5faf2485528da5f56b42c517be6355cdb28b +Tag = 7182b25ef5b113c13fa8f6769e74f1e2 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 3a1701b185d33a +AAD = e5d54df8ed9f89b98c5ebb1bc5d5279c2e182784ff4cd9c869ae152e29d7a2b2 +Tag = 0a5d1bc02c5fe096a8b9d94d1267c49a +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = e4db2e80dc3f63 +AAD = 7616bdf5737d01f936072b6576fa76556dfa072f7e2d7de16b9dc96ac8de409c +Tag = 9eb6d9757ec7c56cc8c79461e0017486 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 4f490ce07e0150 +AAD = 3e12d09632c644c540077c6f90726d4167423a679322b2000a3f19cfcea02b33 +Tag = 1eda43bf07f2bf003107f3a0ba3a4c18 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = b4aaf9ad1bde60 +AAD = 8c96c891456ddec29fe04299506723db2079a6667f96db5d198bf085acf2a4ef +Tag = 5287cc160c5dd3a0f9c1986aac2a621c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = a544218dadd3c10583db49cf39 +AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907 +Tag = 866d4227 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = e8de970f6ee8e80ede933581b5 +AAD = 89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a +Tag = 94cb1127 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 6de75d3c05e83755083399a5f7 +AAD = 504b08cf34cbe17acf631ef219ae01437ebb6a980ab2f00121bb3073701b6511 +Tag = 82c2b67a +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 58d43b9f1581c590daab1a5c56 +AAD = 749f149ef306c70a5d006d9777adbbf7c0de453898c2978ef7c281535ea9b24c +Tag = 8c8283f9 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = dfdcbdff329f7af70731d8e276 +AAD = 2ae56ddde2876d70b3b34eda8c2b1d096c836d5225d53ec460b724b6e16aa5a3 +Tag = c4ac0952 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 199ec321d1d24d5408076912d6 +AAD = a77526f3614cd974498a76d8b3cb7bacc623fdc9c85503289c462df888b199ed +Tag = c59aa931 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 60f2490ba0c658848859fcbea8 +AAD = 3ad743283064929bf4fe4e0807f710f5e6a273e22614c728c3280a27b6c614a0 +Tag = 27c3953d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 6f29ca274190400720bba27651 +AAD = c0850aaf141bd3f1b24f4d882590f58682b41f874748f29f8925b4914f444842 +Tag = cb1ac8eb +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = f1dfb6fdb31cb423226f181c09 +AAD = ac6b08900fc1c9463e7dfdb60eee444c4989d7b200e675f3220ba1e14eed0ab4 +Tag = 4dcc55cc +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 0d45226c98eaa9bb445a3aa4f9 +AAD = b9cb3e1a5bcccb0b0599414c9822275b66fa0f913d51bdb0a2228cbb5aad0e0a +Tag = 727d8f5e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 39cdbb24bd273a3fe96f42ca9d +AAD = ddfe6c22f4cdc3128050072005f5bd4ecdef1d836e891683f1ba921d33fafba7 +Tag = 5aa56a54 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = db113f38f0504615c5c9347c3d +AAD = 3b71bc84e48c6dadf6ead14621d22468a3d4c9c103ac96970269730bcfce239b +Tag = c38fbdff +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = d16a20ef5f6587f1ee3cb7850b +AAD = b1133e1cd369617a9f937e9a1eb86a0979ee30b5b7b0b6ff838d9e11301d6b72 +Tag = 6be30c42 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = d35f531f714694b5e49303a980 +AAD = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc553c6c996e354a4b5 +Tag = d34e90bb +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088 +IV = 220624db34a022b758473994a2 +AAD = 5b3b2ae87b0d6759f38a858423227f8687f35478a8f565409b741eadcac4d8c4 +Tag = 4a5d14bc +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = a544218dadd3c10583db49cf39 +AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907 +Tag = 867b0d87cf6e0f718200a97b4f6d5ad5 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = e8de970f6ee8e80ede933581b5 +AAD = 89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a +Tag = 677a040d46ee3f2b7838273bdad14f16 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 6de75d3c05e83755083399a5f7 +AAD = 504b08cf34cbe17acf631ef219ae01437ebb6a980ab2f00121bb3073701b6511 +Tag = f650d46ade2cbabbc68ead6df1ea0c37 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 58d43b9f1581c590daab1a5c56 +AAD = 749f149ef306c70a5d006d9777adbbf7c0de453898c2978ef7c281535ea9b24c +Tag = 11b8fe8c139ee38f77fd8fa552cbff67 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = dfdcbdff329f7af70731d8e276 +AAD = 2ae56ddde2876d70b3b34eda8c2b1d096c836d5225d53ec460b724b6e16aa5a3 +Tag = ad879c64425e6c1ec4841bbb0f99aa8b +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 199ec321d1d24d5408076912d6 +AAD = a77526f3614cd974498a76d8b3cb7bacc623fdc9c85503289c462df888b199ed +Tag = 3c64f8731930ae000162c10654531066 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 60f2490ba0c658848859fcbea8 +AAD = 3ad743283064929bf4fe4e0807f710f5e6a273e22614c728c3280a27b6c614a0 +Tag = e2751f153fc76c0dec5e0cf2d30c1a28 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 6f29ca274190400720bba27651 +AAD = c0850aaf141bd3f1b24f4d882590f58682b41f874748f29f8925b4914f444842 +Tag = 76127bf891141e73854752ed10c02bd0 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = f1dfb6fdb31cb423226f181c09 +AAD = ac6b08900fc1c9463e7dfdb60eee444c4989d7b200e675f3220ba1e14eed0ab4 +Tag = 4bd833f9da0496e5f6a08a05d02df385 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 0d45226c98eaa9bb445a3aa4f9 +AAD = b9cb3e1a5bcccb0b0599414c9822275b66fa0f913d51bdb0a2228cbb5aad0e0a +Tag = 05f166328a67a8c58b10a7348f3df612 +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 39cdbb24bd273a3fe96f42ca9d +AAD = ddfe6c22f4cdc3128050072005f5bd4ecdef1d836e891683f1ba921d33fafba7 +Tag = 42499bcd949a5163855a9794f11f917e +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = db113f38f0504615c5c9347c3d +AAD = 3b71bc84e48c6dadf6ead14621d22468a3d4c9c103ac96970269730bcfce239b +Tag = fc85464a81fe372c12c9e4f0f3bf9c37 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = d16a20ef5f6587f1ee3cb7850b +AAD = b1133e1cd369617a9f937e9a1eb86a0979ee30b5b7b0b6ff838d9e11301d6b72 +Tag = 8c7501f423647dee77668858c5e350bb +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = d35f531f714694b5e49303a980 +AAD = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc553c6c996e354a4b5 +Tag = b1c09b093788da19e33c5a6e82ed9627 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 220624db34a022b758473994a2 +AAD = 5b3b2ae87b0d6759f38a858423227f8687f35478a8f565409b741eadcac4d8c4 +Tag = d2231ee1455b0bc337c4f8173fb8647c +Plaintext = +Ciphertext = +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = a544218dadd3c1 +AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab +Tag = 3ebc7720 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = c2fe12658139f5d0dd22cadf2e901695b579302a72fc5608 + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 6ba004fd176791 +AAD = 5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b +Tag = c44db2c9 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 94748ba81229e53c38583a8564b23ebbafc6f6efdf4c2a81 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 45c5c284836414 +AAD = 8f01a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a264c9dcf7d93 +Tag = 83a09067 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 1d670ccf3e9ba59186c48da2e5bd0ab21973eee2ea2985bf +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = c69f7679c80546 +AAD = 5d6c04a5b422b46065a79a889e30ac8d1b53b65d230d4c88190903a24e1fe1ea +Tag = 392ae25d +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 2c8c80ff10fac1bf6c9c83533c1514ee032c0983730b0657 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 57b940550a383b +AAD = 33c2c3a57bf8393b126982c96d87daeacd5eadad1519073ad8c84cb9b760296f +Tag = 3b91ff03 +Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0 +Ciphertext = e1b4ec4279bb62902c12521e6b874171695c5da46c647cc0 + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 11edd12ea5873d +AAD = e32e5384038379e2b7382ba337b6f7a72a1569e110ee89c4dd6aa6f7e69f5250 +Tag = 64b837fb +Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0 +Ciphertext = b5dda89fe879d6a665b99285b6d937fd5877ebef4de049fb +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = f32222e9eec4bd +AAD = 684595e36eda1db5f586941c9f34c9f8d477970d5ccc14632d1f0cec8190ae68 +Tag = 2a4e56a7 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 224db21beb8cd0069007660e783c3f85706b014128368aab + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = e0a0a7f262cb51 +AAD = 1d93b2856ad2bf3700440f9a281bd8947ba209e9ffd18e69921ed0678c957c6c +Tag = e960a769 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = ba1ce3a799e1173178b6788723005566f9269d5828c85d28 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 40316e7b38bdad +AAD = 6e49acd9c26944740c778e74b1dbaa8d640c7e18e949a1661f8a77543db69e1f +Tag = ed14a5a5 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 79d59e4bb251988c019c4eaaee2a2513f9cb0521334018fd +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 33008ef5baf263 +AAD = a726f31d9a22bfc0e7e4c3111b0d304e106ab04ed318f8bfe6ec9cb3a811285b +Tag = d7d6c61d +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = af4350795f24087aa05070d6d5f55ebb12d7ad3141066866 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = b48a16fb9a065d +AAD = be05e9c934c1dcba45223d47c6646a2d13c3b93265e354ae4970484b5101d809 +Tag = d0605b84 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 22d2da531be1f0d1da4bc21f984d29bf56bed2e92da6bf42 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 14c9bd561c47c1 +AAD = 141ae365f8e65ab9196c4e8cd4e62189b304d67de38f2117e84ec0ec8f260ebd +Tag = 8f9d6814 +Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8 +Ciphertext = 61b46c9024eed3989064a52df90349c18e14e4b552779d3f + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 5fb871eac2e52a +AAD = ff23906e9067da8999842318f2a867759ca2d171395c2ff31fa5a4e2ab349c45 +Tag = d930f5ce +Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8 +Ciphertext = 539799c2b22a33dd648fc4497d12f9455beaf932f1eaaff4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 1ccec9923aa6e8 +AAD = 88a6d037009a1c1756f72bb4589d6d940bd514ed55386baefacc6ac3ca6f8795 +Tag = 0d83fa19 +Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f +Ciphertext = 52f8205534447d722be2b9377f7395938cc88af081a11ccb + +Cipher = aes-256-ccm +Key = 8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a +IV = 68a5351e4422c8 +AAD = 303c767468f48ac9f6e331bbad535b06aa00ab593327320799e17eff63afd3fe +Tag = f243e273 +Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f +Ciphertext = d11c892ae155098f5e4b5fe60c7afd74fb2dbcc4db956556 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = a544218dadd3c1 +AAD = d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab +Tag = 1ac68bd42f5ec7fa7e068cc0ecd79c2a +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 3341168eb8c48468c414347fb08f71d2086f7c2d1bd581ce + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 6ba004fd176791 +AAD = 5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b +Tag = 47c3338a2400809e739b63ba8227d2f9 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = d543acda712b898cbb27b8f598b2e4438ce587a836e27851 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 45c5c284836414 +AAD = 8f01a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a264c9dcf7d93 +Tag = 46288ce9dd1c7088c752e35947fdca98 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 39a8af5c976b995ea8049e55b68bc65503592ab009156386 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = c69f7679c80546 +AAD = 5d6c04a5b422b46065a79a889e30ac8d1b53b65d230d4c88190903a24e1fe1ea +Tag = 7fd89caef9388fbb82361b8d53d9edc6 +Plaintext = 78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3 +Ciphertext = 950fbf6445f6ffb68178f52f5079d0c6081a48ae1f267a0b +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 57b940550a383b +AAD = 33c2c3a57bf8393b126982c96d87daeacd5eadad1519073ad8c84cb9b760296f +Tag = 4d8b30df941f3536ffb42083ef0e1c30 +Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0 +Ciphertext = fbfed2c94f50ca10466da9903ef85833ad48ca00556e66d1 + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 11edd12ea5873d +AAD = e32e5384038379e2b7382ba337b6f7a72a1569e110ee89c4dd6aa6f7e69f5250 +Tag = 04cf3426e8f975125a7eed00e5f33b6c +Plaintext = 6fb5ce32a851676753ba3523edc5ca82af1843ffc08f1ef0 +Ciphertext = 2ebfeb7a843618b37025352df3538526517ed320adfb486c +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = f32222e9eec4bd +AAD = 684595e36eda1db5f586941c9f34c9f8d477970d5ccc14632d1f0cec8190ae68 +Tag = f78e9e5e9faa058112af57f4ac78db2c +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = dae13e6967c8b1ee0dd2d5ba1dd1de69f22c95da39528f9e + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = e0a0a7f262cb51 +AAD = 1d93b2856ad2bf3700440f9a281bd8947ba209e9ffd18e69921ed0678c957c6c +Tag = 0c63959ce534a0f87fb42a9b000dec84 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = e683040a0bcf04c1748e7746400d6ef0f7cd8e77a2951779 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 40316e7b38bdad +AAD = 6e49acd9c26944740c778e74b1dbaa8d640c7e18e949a1661f8a77543db69e1f +Tag = 7d1a2111dc21aec79ef73193b306d31f +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 829e50e8c09e727a58287e6eb7d38edeb8ab39db279c0639 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 33008ef5baf263 +AAD = a726f31d9a22bfc0e7e4c3111b0d304e106ab04ed318f8bfe6ec9cb3a811285b +Tag = 7c516d2d1a8318893923f398ca249401 +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 873c91e76dca0062ae66325aefb84ece3e98928f8dbc5fee +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = b48a16fb9a065d +AAD = be05e9c934c1dcba45223d47c6646a2d13c3b93265e354ae4970484b5101d809 +Tag = 8055e777bb57eb49497cd2e233ee06fd +Plaintext = 2c29d4e2bb9294e90cb04ec697e663a1f7385a39f90c8ccf +Ciphertext = 343f6c86f2b852ac388a096faec4472107a924aba56d0cb8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 14c9bd561c47c1 +AAD = 141ae365f8e65ab9196c4e8cd4e62189b304d67de38f2117e84ec0ec8f260ebd +Tag = a1586bf922412e73ce338e372615c3bc +Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8 +Ciphertext = a654238fb8b05e293dba07f9d68d75a7f0fbf40fe20edaeb + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 5fb871eac2e52a +AAD = ff23906e9067da8999842318f2a867759ca2d171395c2ff31fa5a4e2ab349c45 +Tag = 03538d108df6ecd6f39acfe076ba5fb8 +Plaintext = c22524a1ea444be3412b0d773d4ea2ff0af4c1ad2383cba8 +Ciphertext = 4846816923ed9f0254bdd0be01028f75061d3594ad3a45bd +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 1ccec9923aa6e8 +AAD = 88a6d037009a1c1756f72bb4589d6d940bd514ed55386baefacc6ac3ca6f8795 +Tag = 3e3f51ee37fdcc5d81dd85d9e9d4f44e +Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f +Ciphertext = 765067ef768908d91ee4c3923943e0c7be70e2e06db99a4b + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 68a5351e4422c8 +AAD = 303c767468f48ac9f6e331bbad535b06aa00ab593327320799e17eff63afd3fe +Tag = d8a906488f79ad5d2234d72458dcfcd4 +Plaintext = 518a7fb11c463bf23798982118f3cfe4d7ddde9184f37d4f +Ciphertext = e58ea6c1522e5a3e93a85edd05ae80d6cf5c4dd6d604a8f8 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = a544218dadd3c10583db49cf39 +AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907 +Tag = ef891339 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = c0ea400b599561e7905b99262b4565d5c3dc49fad84d7c69 + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 8fa501c5dd9ac9b868144c9fa5 +AAD = 5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800 +Tag = 3d488623 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 60871e03ea0eb968536c99f926ea24ef43d41272ad9fb7f6 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 9bc0d1502a47e46350fe8667ca +AAD = 07203674260208d5bd4d39506836f7e76ffc58e938799f21aff7bb4dea4410d2 +Tag = 527e5ed0 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 81d7859dcbe51dcc94fe2591cd3b0540003d49a8c4dccbf4 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 611cb4c66e88f6acf96fea1919 +AAD = 327ee3657e49d4d988362fabae303ccea6638e5cb45993d9d56269bc3d3af32b +Tag = 4d20d5fa +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = bef380ad725b65fb5fceeabf09c665bc35089f434ec83149 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 0dd613c0fe28e913c0edbb8404 +AAD = 2ad306575b577c2f61da7212ab63e3db3941f1f751f2356c7443531a90b9d141 +Tag = d2898c3b +Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998 +Ciphertext = fabe11c9629e598228f5209f3dbcc641fe4b1a22cadb0821 + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 68806dfe720d0a9a84697de5f2 +AAD = c6b0e4dfd723d7637510f887b7852f60ecdf72e0d33396560fed6534d5b7f015 +Tag = 41e92090 +Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998 +Ciphertext = b7eb87f84951640de731d4093f1a4ed5f831138a27465d39 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 3e0fe3427eeda80f02dda4fed5 +AAD = ae0d1c9c834d60ff0ecfb3c0d78c72ddb789e58adfc166c81d5fc6395b31ec33 +Tag = d18fc889 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = d88f8fcd772125212ce09c2a6e5b5693dd35073f992004f0 + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 7c0c76d9f9316ff6c98758b464 +AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94 +Tag = 0f39ecea +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = d2d7d52b11304fc1d15b8c20e296ba7c63d99f4ce86cc8ae +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 07c728135bdfede0e0c8036b17 +AAD = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 +Tag = 94b1d516 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = ae1d9f82efb464d5dc2018cffa309634c09b34d1122c4bd9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 710c96d7a6f09de83f0507f28a +AAD = 2d64acfdbfc582cd9a933790eb1b739fb02e53f511255e49f421bb7acc98a130 +Tag = d394d047 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = 477c985d92ad1b69d22315235a29e3d3a5991487cbdc8d11 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 977bbcdeb6a7d9dcf8664bc2d8 +AAD = 135786125258a49475338ac1961d2718433b9e84cf64f63ca52913e8dd12e505 +Tag = bd3d22eb +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = d1c085c75d808dc6db493b8a0b4d884e0700d2844a1b4b46 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 60122cbd219e5cf17415e8bc09 +AAD = 895a45ddbe0c80793eccbf820de13a233b6aa7045cfd5313388e7184c392b216 +Tag = 1c0d067c +Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9 +Ciphertext = 76bdd9a7b34bf14ae121a87fdfa144f71b848744af6a2f0b + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 83a07f2e685959cb50a1bd2bce +AAD = 02afe300ec0cf0acb59108b2f70e069300294e34f40bb032cb59907599664408 +Tag = 74192744 +Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9 +Ciphertext = 413e2e8df9d65b4e5d3b63a738258aaee643f364be9a01b9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 3542fbe0f59a6d5f3abf619b7d +AAD = dd4531f158a2fa3bc8a339f770595048f4a42bc1b03f2e824efc6ba4985119d8 +Tag = 79018ad5 +Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed +Ciphertext = 617d8036e2039d516709062379e0550cbd71ebb90fea967c + +Cipher = aes-256-ccm +Key = 705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe +IV = 48f2d4c0b17072e0a9c300d90b +AAD = c56175e2cfe0d37454d989afcc36686fb34c015439601567506a4d0003182be7 +Tag = 5c916f91 +Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed +Ciphertext = 40e609c739e409750a6c41d9c6ea64ce36f70711b4ca3e36 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = a544218dadd3c10583db49cf39 +AAD = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907 +Tag = 367f30f2eaad8c063ca50795acd90203 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 8d34cdca37ce77be68f65baf3382e31efa693e63f914a781 + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 8fa501c5dd9ac9b868144c9fa5 +AAD = 5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800 +Tag = 4b41096dfdbe9cc1ab610f8f3e038d16 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 516c0095cc3d85fd55e48da17c592e0c7014b9daafb82bdc +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 9bc0d1502a47e46350fe8667ca +AAD = 07203674260208d5bd4d39506836f7e76ffc58e938799f21aff7bb4dea4410d2 +Tag = d81ec96df41b8fa8262ed2db880b5e85 +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 0293eae9f8d8bd7ad45357f733fc7b5d990d894783e18501 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 611cb4c66e88f6acf96fea1919 +AAD = 327ee3657e49d4d988362fabae303ccea6638e5cb45993d9d56269bc3d3af32b +Tag = 6ee80f60f72db2cbf25b2f8c6af8749c +Plaintext = e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3 +Ciphertext = 256bad8295e67d8d450f5ecc8276920ec23b1156c57be7c9 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 0dd613c0fe28e913c0edbb8404 +AAD = 2ad306575b577c2f61da7212ab63e3db3941f1f751f2356c7443531a90b9d141 +Tag = 945ee6db24aea5f5098952f1203339ce +Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998 +Ciphertext = 6df09613ea986c2d91a57a45a0942cbf20e0dfca12fbda8c + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 68806dfe720d0a9a84697de5f2 +AAD = c6b0e4dfd723d7637510f887b7852f60ecdf72e0d33396560fed6534d5b7f015 +Tag = 2cc4c90ac3f798957cb09a05868a8ad5 +Plaintext = 9522fb1f1aa58493cba682d788186d902cfc93e80fd6b998 +Ciphertext = c5b64577d3c34e50f7da5072db5bda1d1d2c6db1a4f1183e +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 3e0fe3427eeda80f02dda4fed5 +AAD = ae0d1c9c834d60ff0ecfb3c0d78c72ddb789e58adfc166c81d5fc6395b31ec33 +Tag = 6b1556631d3b52bf24154afec1448ef6 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = 2bfe51f1f43b982d47f76ea8206ddbf585d6f30cec0d4ef1 + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 7c0c76d9f9316ff6c98758b464 +AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94 +Tag = 14f42ec81e3af71c9a5de7e0ac16ca69 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = 1622ae109073f44a4596722d9943fea774dfc2a1f939fc09 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 07c728135bdfede0e0c8036b17 +AAD = 25a152850b4b80b19d8f0b504b2a8a241824b3a1fca8d85c8713b2c0c84b5e02 +Tag = 43d67d90850c4c76a43df1f95170b29b +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = 4c0b361a766d366d983c41e793d75635e17f6eab2eadcf97 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 710c96d7a6f09de83f0507f28a +AAD = 2d64acfdbfc582cd9a933790eb1b739fb02e53f511255e49f421bb7acc98a130 +Tag = 7bd5d5c8c098299394333b34fae9a110 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = 5b02347f30213df7f1506d7dca41b838c92aea0f190c5dba +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 977bbcdeb6a7d9dcf8664bc2d8 +AAD = 135786125258a49475338ac1961d2718433b9e84cf64f63ca52913e8dd12e505 +Tag = e26149d4a9711be81b4f69aa9fabd7f6 +Plaintext = 38333ce78110bf53a2c2abc7db99e133ad218ca43ff7a7bc +Ciphertext = c77283ca15484d82469ce7249d1fb8e5f4c3bc8245fb4d97 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 60122cbd219e5cf17415e8bc09 +AAD = 895a45ddbe0c80793eccbf820de13a233b6aa7045cfd5313388e7184c392b216 +Tag = e47d00f2eebb544e6ba7559ac2f34edb +Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9 +Ciphertext = bf0d219bb50fcc1d51f654bb0fd8b44efa25aef39e2f11af + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 83a07f2e685959cb50a1bd2bce +AAD = 02afe300ec0cf0acb59108b2f70e069300294e34f40bb032cb59907599664408 +Tag = 6fa3fddc87690a359fe55f8fa12ba749 +Plaintext = 794e734966e6d0001699aec3f8ab8f194de7653d3091b1b9 +Ciphertext = 1609f8de59da4f50ce034977d132d4f9881a9b85ffa5bb88 +Operation = DECRYPT +Result = CIPHERUPDATE_ERROR + +Cipher = aes-256-ccm +Key = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +IV = 3542fbe0f59a6d5f3abf619b7d +AAD = dd4531f158a2fa3bc8a339f770595048f4a42bc1b03f2e824efc6ba4985119d8 +Tag = 567a6b4426f1667136bed4a5e32a2bc1 +Plaintext = c5b3d71312ea14f2f8fae5bd1a453192b6604a45db75c5ed +Ciphertext = 39c2e8f6edfe663b90963b98eb79e2d4f7f28a5053ae8881 + + +Title = NIST CCM 128 Variable Associated Data Tests + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 1123301219c70599b7c373ad4b3ad67b +Plaintext = 7c86135ed9c2a515aaae0e9a208133897269220f30870006 +Ciphertext = 1faeb0ee2ca2cd52f0aa3966578344f24e69b742c4ab37ab + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = b77a140819f39ef045103e785e1df8c2 +Plaintext = 48df73208cdc63d716752df7794807b1b2a80794a2433455 +Ciphertext = 2bf7d09079bc0b904c711a0b0e4a70ca8ea892d9566f03f8 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 4b01098842a618390619b86e00850b2e +Plaintext = b99de8168e8c13ea4aef66bdb93133dff5d57e9837ff6ccb +Ciphertext = dab54ba67bec7bad10eb5141ce3344a4c9d5ebd5c3d35b66 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 8bd518724ab84fb814fe7b5570769f7f +Plaintext = 09fc21ac4a1f43de29621cacf3ad84e055c6b220721af7ce +Ciphertext = 6ad4821cbf7f2b9973662b5084aff39b69c6276d8636c063 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 7229cbcecef221570cee8345b38cd6ec +Plaintext = cb43320d7488dfd6eed9efd88f440ea3f6f77a0df09d0727 +Ciphertext = a86b91bd81e8b791b4ddd824f84679d8caf7ef4004b1308a + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = fee47fec27d7764e5e2819c850088bac +Plaintext = a350ed58c04473e113b9088b1fb9dad92807f6b63b0d690c +Ciphertext = c0784ee835241ba649bd3f7768bbada2140763fbcf215ea1 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 54d610bc1ab4bc9a8a28c7306f7c539e +Plaintext = 0709e691faf41383fab5d1848a8eee77101d1c99e526a264 +Ciphertext = 642145210f947bc4a0b1e678fd8c990c2c1d89d4110a95c9 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = 2e31657ecc51f5ec8590482fc053230d +Plaintext = e7b913c2f0630562eb1c16b3b1ed84090c011a15c09e5471 +Ciphertext = 8491b07205036d25b118214fc6eff37230018f5834b263dc + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = d500827f2081b00397102f90fc9ccd88 +Plaintext = 6b909697074900d41ce8c7d559b229af11fb3cec334784d4 +Ciphertext = 08b83527f229689346ecf0292eb05ed42dfba9a1c76bb379 + +Cipher = aes-128-ccm +Key = d24a3d3dde8c84830280cb87abad0bb3 +IV = f1100035bb24a8d26004e0e24b +AAD = +Tag = e2e7997803029476598c0e8d4fc63857 +Plaintext = 495ff03335bcb39a317b9ea3f8bb6306fa771f3c55adebce +Ciphertext = 2a775383c0dcdbdd6b7fa95f8fb9147dc6778a71a181dc63 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = dd +Tag = d16b6282283e16602331bcca9d51ce76 +Plaintext = 1b156d7e2bf7c9a25ad91cff7b0b02161cb78ff9162286b0 +Ciphertext = e8b80af4960d5417c15726406e345c5c46831192b03432ee + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = c5 +Tag = 08ebeed45f67ef8733737c9c6f82daad +Plaintext = 032fee9dbffccc751e6a1ee6d07bb218b3a7ec6bf5740ead +Ciphertext = f0828917020651c085e42459c544ec52e99372005362baf3 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = 68 +Tag = f9b477e3a23bfdfdb619c7bc531fbcce +Plaintext = 9c4cd65b92070bc382fd18146611defb4204acddfdf6b276 +Ciphertext = 6fe1b1d12ffd9676197322ab732e80b1183032b65be00628 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = be +Tag = aa82130f5a86c0cd0433585e5c208cf7 +Plaintext = 2ff93ef2fc5fe2c297ace05f3f7585aed75ef90ade3acf89 +Ciphertext = dc54597841a57f770c22dae02a4adbe48d6a6761782c7bd7 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = 7a +Tag = 9d60012a2f25463e036ceecea57b3c97 +Plaintext = 62766e9acd41285eeed9b4007340dbb611699624274ad117 +Ciphertext = 91db091070bbb5eb75578ebf667f85fc4b5d084f815c6549 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = 13 +Tag = e337897c90eb260729a729aed1c8a244 +Plaintext = ea689c268a04912d0527b16d9d9406df38302fb11cb64a99 +Ciphertext = 19c5fbac37fe0c989ea98bd288ab58956204b1dabaa0fec7 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = e5 +Tag = 73dc2911c75b37cd995481d42b04524a +Plaintext = f31e35953beb211efcce487ba8c0cd1a8446343d5851b9fd +Ciphertext = 00b3521f8611bcab674072c4bdff9350de72aa56fe470da3 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = e3 +Tag = 84f76ecf3dc5f3307ce982f185321248 +Plaintext = c4ac3c645387584c2a95b1f16b8317730592924dd831a388 +Ciphertext = 37015beeee7dc5f9b11b8b4e7ebc49395fa60c267e2717d6 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = d5 +Tag = 2c38d0fe4e4eba054c1420c39a3dcc61 +Plaintext = 81af394c2ea3a85e1ea954596e3772f01635d007794c0b19 +Ciphertext = 72025ec6935935eb85276ee67b082cba4c014e6cdf5abf47 + +Cipher = aes-128-ccm +Key = 08b0da255d2083808a1b4d367090bacc +IV = 777828b13679a9e2ca89568233 +AAD = ed +Tag = 7cfa6c9945f5aee3c799eee37b0605db +Plaintext = e013a2edd5b86bab8df5c9940d0a0c864478c1ad42668304 +Ciphertext = 13bec5676842f61e167bf32b183552cc1e4c5fc6e470375a + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = c93c +Tag = 3ca01d874439b4e1f79a26d8c6dc433a +Plaintext = e7b819a853ffe79baaa72097ff0d04f02640ae62bcfd3da5 +Ciphertext = 1d8f42f9730424fa27240bd6277f4882604f440324b11b00 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = 4cf9 +Tag = b40653cd23afc7cc7a31fa13ba8f4e49 +Plaintext = dc6cf325ed6d968efba9f57e48a58f4578cc3540fe121ba2 +Ciphertext = 265ba874cd9655ef762ade3f90d7c3373ec3df21665e3d07 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = b469 +Tag = c8c10aaf90b1116be216f912c82ca96a +Plaintext = 22ab6a0daf953165dda864cceeeb782e275c0b072aedd284 +Ciphertext = d89c315c8f6ef204502b4f8d3699345c6153e166b2a1f421 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = cf6b +Tag = 2f568ef41324189fb3644edcd76dc19c +Plaintext = a35f62a431fee63468dc02fdf7bef78d3a5937de56151939 +Ciphertext = 596839f511052555e55f29bc2fccbbff7c56ddbfce593f9c + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = af7c +Tag = 2548c244a875d3681d715db3da19962f +Plaintext = 548840cb0400824af809fb68447500b77e977128200d3b81 +Ciphertext = aebf1b9a24fb412b758ad0299c074cc538989b49b8411d24 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = 61dc +Tag = b599bc8927ad8d43067807f4b858f854 +Plaintext = 440b6095c77495e73fff54c785b7ceb5eb358731c213ffcd +Ciphertext = be3c3bc4e78f5686b27c7f865dc582c7ad3a6d505a5fd968 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = b97e +Tag = 7454774ee78f76e555cf743df340381e +Plaintext = 50c59ca54eb64575b82b13c6dac96488af369e9f5f86cdf2 +Ciphertext = aaf2c7f46e4d861435a8388702bb28fae93974fec7caeb57 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = 57ab +Tag = e0a22a5ee031978271c7dd2a0d4e7018 +Plaintext = 21b8eb1f0bda26ca36167ce7bc2e796818bf11fc8c192885 +Ciphertext = db8fb04e2b21e5abbb9557a6645c351a5eb0fb9d14550e20 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = 5f9c +Tag = 9a242ebae5c6da57ee38e5c227c46b32 +Plaintext = b4d84fb1e81e18c89391a7a59fc05fedaf160e0d0d027a7c +Ciphertext = 4eef14e0c8e5dba91e128ce447b2139fe919e46c954e5cd9 + +Cipher = aes-128-ccm +Key = 1538cc03b60880bf3e7d388e29f27739 +IV = 9e734de325026b5d7128193973 +AAD = e0c4 +Tag = a5f8a92f4201c4658289307167cee810 +Plaintext = 54dc5a0e1b67577cda4e7dbd48b769c120c1d13dd567cfad +Ciphertext = aeeb015f3b9c941d57cd56fc90c525b366ce3b5c4d2be908 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = f5827e +Tag = 78e2a23411147a6187da6818506232ee +Plaintext = 9759e6f21f5a588010f57e6d6eae178d8b20ab59cda66f42 +Ciphertext = f634bf00f1f9f1f93f41049d7f3797b05e805f0b14850f4e + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = e9699b +Tag = f10835db9897b7528e3204fe3a81424f +Plaintext = 1555bc87d6c688fd221a2c75cd1e4dd1c1693207ac421d24 +Ciphertext = 7438e575386521840dae5685dc87cdec14c9c65575617d28 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 972896 +Tag = 3efa05ba4a73ec2234461d459f54acd2 +Plaintext = b72b2a080d92f3f3bb7d96222982de82a28c9eebaddba247 +Ciphertext = d64673fae3315a8a94c9ecd2381b5ebf772c6ab974f8c24b + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 3053f3 +Tag = b557537c6525e827750917a1ed49602f +Plaintext = b5417ed6933ffe2b57ea601d77e97eb12fa1fb8fdc06c86f +Ciphertext = d42c27247d9c5752785e1aed6670fe8cfa010fdd0525a863 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 24db75 +Tag = dfd06b037e9094f120eb3d8649d48918 +Plaintext = 4e7f42666035a00e62783283c54b027603917685d27326bc +Ciphertext = 2f121b948e9609774dcc4873d4d2824bd63182d70b5046b0 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = ff27a4 +Tag = bfa8cfabbd79b3e3210482e6f3822fee +Plaintext = 7bf180699c294421ad9565cacc27227a4b3a7cf9637290c6 +Ciphertext = 1a9cd99b728aed5882211f3addbea2479e9a88abba51f0ca + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 77ec24 +Tag = 3b9575e347051e98d0c8646ad46318e6 +Plaintext = 3d47071c13f994cb42fb2887e5c6e53a542be7ddad9779e0 +Ciphertext = 5c2a5eeefd5a3db26d4f5277f45f6507818b138f74b419ec + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 6d7748 +Tag = 78e7af65eb0388ae7a52f58f6ba32109 +Plaintext = 317d5da0a2ec12c3b96c83dd61cc955242a9c1c640e2b92f +Ciphertext = 501004524c4fbbba96d8f92d7055156f9709359499c1d923 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 029674 +Tag = 8019fa97ff70d4d21c0bd83caa434b3a +Plaintext = c9bb21306ee1b4a6c4fa5443af2e181716993cbb374e177c +Ciphertext = a8d678c280421ddfeb4e2eb3beb7982ac339c8e9ee6d7770 + +Cipher = aes-128-ccm +Key = f149e41d848f59276cfddd743bafa9a9 +IV = 14b756d66fc51134e203d1c6f9 +AAD = 60dfe8 +Tag = 1814ed48a21d97ea02e86d7e6e8834cb +Plaintext = 44eb7edd6bee501ad97873aa7ecbf7ed8b613760d7c95e15 +Ciphertext = 2586272f854df963f6cc095a6f5277d05ec1c3320eea3e19 + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = a95bdff6 +Tag = 9b6443a35f329b2068916fb6ab8227eb +Plaintext = 035c516776c706a7dd5f181fa6aa891b04dd423042ea0667 +Ciphertext = b92f7ec2ebecebdbd2977b3874e61bf496a382153b2529fc + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = d2672cbb +Tag = 19e2aa492ce9ddfb6de0ab7a447f5351 +Plaintext = 3ba306bcec94615c347f990b62841a16df7b321f113f1714 +Ciphertext = 81d0291971bf8c203bb7fa2cb0c888f94d05f23a68f0388f + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 737f4d00 +Tag = 2bf683b1209f104e82ba39f7c62cd666 +Plaintext = 68313a29ace3efe521c3ca1e5bac8e98d6b4434c80a7dc74 +Ciphertext = d242158c31c802992e0ba93989e01c7744ca8369f968f3ef + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 3610b1ae +Tag = 4fc7d5cac043f182edbe5c2658f73092 +Plaintext = 963bfe556138317bebe3936b18a2c1dd100dc73be6fde556 +Ciphertext = 2c48d1f0fc13dc07e42bf04ccaee53328273071e9f32cacd + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = f1aa7f72 +Tag = b8234f3fbaca3dc2c497418219151b05 +Plaintext = 52d5c53ee4f23cb050a95db54112b44033c34ac31de96be8 +Ciphertext = e8a6ea9b79d9d1cc5f613e92935e26afa1bd8ae664264473 + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 6b1013aa +Tag = 8fa5f9539e0500f139016e4a4337d86b +Plaintext = a302aebc0f8fd61badc8371991beacf5933de46effacb8ce +Ciphertext = 1971811992a43b67a200543e43f23e1a0143244b86639755 + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 33028129 +Tag = fa2379fde155e64b5b84e336056445c3 +Plaintext = f7d653c23254875625b20e1ef60ae92847046d84bb4ce857 +Ciphertext = 4da57c67af7f6a2a2a7a6d3924467bc7d57aada1c283c7cc + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 2cab4a09 +Tag = 58208335cb81e4fb10923fca4ddb9ff9 +Plaintext = 872a3f7230e626abff519e5aeecc93897249405daeaffc98 +Ciphertext = 3d5910d7adcdcbd7f099fd7d3c800166e0378078d760d303 + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = 73142ba7 +Tag = 2d6ecfb49ac8983415503efef1e21950 +Plaintext = 766f94e7d9b1ce74bbaf2c99d215350f060122767fc1953f +Ciphertext = cc1cbb42449a2308b4674fbe0059a7e0947fe253060ebaa4 + +Cipher = aes-128-ccm +Key = 9a57a22c7f26feff8ca6cceff214e4c2 +IV = 88f30fd2b04fb8ddbce8fc26e6 +AAD = bc9f967e +Tag = 1978a62d15430fc20b87940292b49641 +Plaintext = 5f089ed9267363bc23c6c7b8f73208a36f61fa8ea8084ff7 +Ciphertext = e57bb17cbb588ec02c0ea49f257e9a4cfd1f3aabd1c7606c + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 5f476348dd +Tag = 4e5a32fbe7961b832b722bc07a18595b +Plaintext = c69f7c5a50f3e72123371bbfd6bdf532b99ef78500508dfe +Ciphertext = 20c43ad83610880249f1632dd418ec9a5ed333b50e996d1a + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 07db8aada5 +Tag = 401a2222443696021b5faa520129b563 +Plaintext = 9cf8b638f2b295b85cf782fabab11153dc091b4afcd761a9 +Ciphertext = 7aa3f0ba9451fa9b3631fa68b81408fb3b44df7af21e814d + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 31ef6561ff +Tag = f842681d2e90da5718234ed893197662 +Plaintext = 62b8263dc015ef873cd16272e4da89799b910f2b04204420 +Ciphertext = 84e360bfa6f680a456171ae0e67f90d17cdccb1b0ae9a4c4 + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = e97dfcbafb +Tag = 33a08eb30ee154f71279682ab02eff27 +Plaintext = 810bed3a2bc0f9d75389155b7a39d9d014c08646814f9718 +Ciphertext = 6750abb84d2396f4394f6dc9789cc078f38d42768f8677fc + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 4981c51fcc +Tag = 8d3071c79f0cf86fe4148cb5e8ace0ce +Plaintext = 063d23fc3ec344c1ba3486802e01e55617455d5cfbfb5279 +Ciphertext = e066657e58202be2d0f2fe122ca4fcfef008996cf532b29d + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = c8437dba76 +Tag = 842700619dc1599603f3f3f6cfdf5e0b +Plaintext = 41db5b245ea0fab985b93e7fc0a00cd3cca5bdbb642b7ebf +Ciphertext = a7801da63843959aef7f46edc205157b2be8798b6ae29e5b + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 6f65a24344 +Tag = 39a0cd8d8bbf211b907f34411f868c79 +Plaintext = b0e36734b2ba871d59df0b029c7f32af68e003a689ac4911 +Ciphertext = 56b821b6d459e83e331973909eda2b078fadc7968765a9f5 + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = cd62d6d203 +Tag = c4a90e5fc11266bab77eea1d24fbdbb9 +Plaintext = 747e53e627eabde0cd77d78d1bd720bea518f8a2f76e57a2 +Ciphertext = 922515644109d2c3a7b1af1f1972391642553c92f9a7b746 + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 9663b3c8e6 +Tag = b3c1246f7dd6462ce757db82db45f36e +Plaintext = c70c92ec4c518802662fa4c41a6a33a22599f79f8f7264b3 +Ciphertext = 2157d46e2ab2e7210ce9dc5618cf2a0ac2d433af81bb8457 + +Cipher = aes-128-ccm +Key = 54caf96ef6d448734700aadab50faf7a +IV = a3803e752ae849c910d8da36af +AAD = 35c4720d3c +Tag = d472c06a5f4c04f97d06ec401d3e7fd9 +Plaintext = a26835605b66fc08abdbb5dc77e39783d60b8e8f2314e95f +Ciphertext = 443373e23d85932bc11dcd4e75468e2b31464abf2ddd09bb + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = da853a27aee2 +Tag = 2e3ca4ec3c776ab58843f617d605fd72 +Plaintext = 15b369889699b6de1fa3ee73e5fe19814e46f129074c965b +Ciphertext = f39755d160a64611368a8eccf6fcbc45ef7f1f56240eb19a + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = d4ed4584678e +Tag = 327804c44c8f17a4446a3d5ba85f9c7f +Plaintext = a18c0460b56a5bcd5bf6842cec6ed44d90b2bfa968a6a7e7 +Ciphertext = 47a838394355ab0272dfe493ff6c7189318b51d64be48026 + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = 590a27721a36 +Tag = bcd00e9cb726d75e4283820ee81d933a +Plaintext = 41cee0ecaf9c65cef740440af37954ef49a585779d2abbca +Ciphertext = a7eadcb559a39501de6924b5e07bf12be89c6b08be689c0b + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = 58830fb0b1f3 +Tag = d5d71a1f0f1b6518c35f0632a30931fd +Plaintext = dce983e4e3734a9bd8848dba0d744d07bbeba602f4006025 +Ciphertext = 3acdbfbd154cba54f1aded051e76e8c31ad2487dd74247e4 + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = eedd0d767a25 +Tag = 3ad112899e9ba442660eb5dfe33b2f96 +Plaintext = 4653b3e879ab18b65c5c3706a5139698262cb830a22d943b +Ciphertext = a0778fb18f94e879757557b9b611335c8715564f816fb3fa + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = 618bcf2e3e79 +Tag = 54fba446028919342b2fe86ee67efcc7 +Plaintext = 8586383281925363ac15fb19c26d64c639c75920c792dc2c +Ciphertext = 63a2046b77ada3ac853c9ba6d16fc10298feb75fe4d0fbed + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = 549c9b84c7f7 +Tag = 9fc23013142f62881ccfa3037067e1ef +Plaintext = 95c25ae4445cd8c4d267df82687484667e309992fcf1e737 +Ciphertext = 73e666bdb263280bfb4ebf3d7b7621a2df0977eddfb3c0f6 + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = 92d7fa6a8135 +Tag = 8263568d56fae8bf35b2f2cdecbffe0a +Plaintext = e58034bbb0e6f5e724e32ee56896dadae25c2a3efb8c6f2f +Ciphertext = 03a408e246d905280dca4e5a7b947f1e4365c441d8ce48ee + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = f43e126c0f83 +Tag = de2c2fbfdddc7dd6672714af174c5121 +Plaintext = d98f0dddfe9cb3cae1336970d5efb55316a65e2c51e316f4 +Ciphertext = 3fab318408a34305c81a09cfc6ed1097b79fb05372a13135 + +Cipher = aes-128-ccm +Key = cc0c084d7de011e2f031616a302e7a31 +IV = f0b4522847f6f8336fe534a4e7 +AAD = f02074812dde +Tag = 3704560ff23ce0000fba8812c45940ad +Plaintext = 548747b1669c6383b793054d93957f9e99d605761c6c23b5 +Ciphertext = b2a37be890a3934c9eba65f28097da5a38efeb093f2e0474 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 922340ec94861f +Tag = fd541b988a801cb5751c7faaf5b0c164 +Plaintext = 1edef80c57d17f969f8bde10ab38a1a8811a124de72c526e +Ciphertext = de14558cc686e1836f1f121ea1b941a9ebd4f0fb916dc870 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 4eb379f21b1531 +Tag = c068bd1b1c309dfbd52d9a24be07c630 +Plaintext = ddd5282a207c1dcb03c1c3bbc9eb12a7bd28534118db2735 +Ciphertext = 1d1f85aab12b83def3550fb5c36af2a6d7e6b1f76e9abd2b + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 7fa89e9d6e3fec +Tag = 2d114d6ab082738d05d60acca8e8ccfb +Plaintext = c5b7c462eb166f48bb59c8102ee7b3dc67a28e5de7570c51 +Ciphertext = 057d69e27a41f15d4bcd041e246653dd0d6c6ceb9116964f + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = fda8665f87c618 +Tag = 1cc84bd77fe00e1a13433f2c10e3b799 +Plaintext = af793815e147e3180f5146aa6a582e343dc479f26b4226b2 +Ciphertext = 6fb3959570107d0dffc58aa460d9ce35570a9b441d03bcac + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 46bde207491ebd +Tag = 990c81f1bae32c953bf02ddbde047632 +Plaintext = 47c76a0bbd5b1616b278089d41a050c509c7a1c280574bf7 +Ciphertext = 870dc78b2c0c880342ecc4934b21b0c463094374f616d1e9 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = a799f5f895fd7a +Tag = 1af19f1f080dd1dd2da799059755e49f +Plaintext = d554806ffc3900a0952a3c094c745808950697a6e5d62c1d +Ciphertext = 159e2def6d6e9eb565bef00746f5b809ffc875109397b603 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 20225831a9ee06 +Tag = 23d3b9a0060834ac4860dae0eac570ef +Plaintext = ba45e1859efae362a44a0116a14e488ba369da6c76c3913b +Ciphertext = 7a8f4c050fad7d7754decd18abcfa88ac9a738da00820b25 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 785360916464eb +Tag = ff96e7cf841a66c50bbb6fb2bac7ef51 +Plaintext = 57bc338946ff78cf76adf5021e2e44e34e687fb68ad703f3 +Ciphertext = 97769e09d7a8e6da8639390c14afa4e224a69d00fc9699ed + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 57b946369226db +Tag = 86e1c33a45f9d52755c374650635bef6 +Plaintext = 9ac5be9929c4fe5a9992749a38dc69874866db3d4747da97 +Ciphertext = 5a0f1319b893604f6906b894325d898622a8398b31064089 + +Cipher = aes-128-ccm +Key = d7572ed0e37261efa02f8c83e695efdc +IV = f4f96d7b4384a3930b3d830f82 +AAD = 73e4da8973c1e3 +Tag = d78592c2d89c15edc5bb7486aa93f896 +Plaintext = 5a05410aa3a71f5f1a253b8576eba269c06a4c30591144cc +Ciphertext = 9acfec8a32f0814aeab1f78b7c6a4268aaa4ae862f50ded2 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = 2d5438b728b950d9 +Tag = eecfff971fdfaa856310b014aa59c978 +Plaintext = 9aa9c8358117564371366beeec923051ef433252197aaad5 +Ciphertext = 9ff942baa60f440c17a78e9581216b9a947a67f04d54911f + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = 6e430b497a16e7f5 +Tag = 6a4d7b4b4df6c831ee32116ee4dad98c +Plaintext = 5758a500978c71a9b90f6e5beae9d96ef05a41486b10ea2e +Ciphertext = 52082f8fb09463e6df9e8b20875a82a58b6314ea3f3ed1e4 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = e12f98507d6514c3 +Tag = 3243fc75cd1624e152f451678edcac87 +Plaintext = 49efe18c76a8355127d914a3a830c1c6ff2a163d728526e1 +Ciphertext = 4cbf6b0351b0271e4148f1d8c5839a0d8413439f26ab1d2b + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = eecf8d641ee0bee9 +Tag = dd6d8ca57da1880e1baff43736b3da34 +Plaintext = 49ae2309fbe6ce4e9421516b8f79ae64b1316cb849eaf638 +Ciphertext = 4cfea986dcfedc01f2b0b410e2caf5afca08391a1dc4cdf2 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = 9066367c784de0a4 +Tag = f05439a661001513a96b896de46b7081 +Plaintext = b1bda5fa4242aa6aad0f5a5b1d31d86b8d4a97588b3e315d +Ciphertext = b4ed2f75655ab825cb9ebf20708283a0f673c2fadf100a97 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = edf848b2510f7803 +Tag = cf20709b2dc2ff9946094190b5ea09d1 +Plaintext = eaa8608f6763d968576a7e89056b9828a1686c8441b06377 +Ciphertext = eff8ea00407bcb2731fb9bf268d8c3e3da513926159e58bd + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = 0f49cae81c8628d2 +Tag = a5bb6b4f87b9b198665203e4fdf9e7f7 +Plaintext = f32029cf51609f0df9832ad1b283ea94a5356f70112c1328 +Ciphertext = f670a34076788d429f12cfaadf30b15fde0c3ad2450228e2 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = b0c47e9cce46a276 +Tag = 29f416f89f1a34bbbf2ce40d943c6d8b +Plaintext = 7a550ef9254a8da6e4fee290a76ea838ffb61d3533d4d31f +Ciphertext = 7f05847602529fe9826f07ebcaddf3f3848f489767fae8d5 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = a6fe7c9ce2d49f85 +Tag = 7eb95550b91b955d5c2d72d5c189b704 +Plaintext = e67c486dd7ba9a9061844b9354f55890321ae626efaa28cc +Ciphertext = e32cc2e2f0a288df0715aee83946035b4923b384bb841306 + +Cipher = aes-128-ccm +Key = 98a42d7a0c5917deaf3b4de3f0cbe0a1 +IV = 03d33ab0c2df7bfce88b5ee4c4 +AAD = eb1d11cc4876f58f +Tag = 0e8e8a5a7e0ea6860bab4a4320f03ae5 +Plaintext = 35f2c810091e930a52e4a3f28c9c8184967f1554c2675eb5 +Ciphertext = 30a2429f2e06814534754689e12fda4fed4640f69649657f + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = abe4f1d3812bfe3ccf +Tag = fd49840440f866d1a22b0854996111d8 +Plaintext = 13b4a874888db0e5d8fd814b5e7e04f7fdfbc1601ccc02bc +Ciphertext = 032835a3dbf688d09cf2a32a92b101959d33ff47500f92f4 + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 2e21f466814d3d6340 +Tag = de2f5c335df537fbbc6ae59cd562732f +Plaintext = 08b5c773364cded74d7b308984313c17ff90eed496a27a2b +Ciphertext = 18295aa46537e6e2097412e848fe39759f58d0f3da61ea63 + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = dba22aabcea0e694fc +Tag = cc5ed6e4a907ff4742ab6c835a427f92 +Plaintext = bbac1790abb7aafe272ec472c897e6363e335b3c4126c762 +Ciphertext = ab308a47f8cc92cb6321e6130458e3545efb651b0de5572a + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 97e9d16bd757395ec1 +Tag = 1714b5a3df454f3bc35869da75adc882 +Plaintext = 7249612dc09809bbca9dd311e720f7da2cb54ce33e3eb9c3 +Ciphertext = 62d5fcfa93e3318e8e92f1702beff2b84c7d72c472fd298b + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 866cf710470cac74d3 +Tag = aa33dffe2596832f98a9c8413bd898b9 +Plaintext = 060ae0ab9857324a3b2ac79f3b6e6f90f5de884ce9c7b930 +Ciphertext = 16967d7ccb2c0a7f7f25e5fef7a16af29516b66ba5042978 + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 2dd7a7f832b29ccce2 +Tag = dd5049f7c53d6a7fe5d7f959689ee960 +Plaintext = f77a9fd5363836deefd34e1bea0882484a7ab746b4495d59 +Ciphertext = e7e6020265430eebabdc6c7a26c7872a2ab28961f88acd11 + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 502349a60e897356b5 +Tag = ed9c3a0d0de8788471c5f6c2f9638b7c +Plaintext = 96118dbfe53434d8aed88769a535eb0c8b5849dca1c81c34 +Ciphertext = 868d1068b64f0cedead7a50869faee6eeb9077fbed0b8c7c + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = debed45c9acf129268 +Tag = d49b4b9bead1b7de2021cff280d6f93b +Plaintext = df5a47d3eb5c0b6cabb6711a45400602d205b82ecae9e849 +Ciphertext = cfc6da04b8273359efb9537b898f0360b2cd8609862a7801 + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = 2726702dd62a6e5344 +Tag = 69df31aba209d87ee22bd6a1dcadb168 +Plaintext = 5a7649cb001fbb6f653cbca17756c5c1a078c2e240d92085 +Ciphertext = 4aead41c5364835a21339ec0bb99c0a3c0b0fcc50c1ab0cd + +Cipher = aes-128-ccm +Key = 2a68e3fe746f593c1b97cb637079c3e5 +IV = cd62d0f27b7f4864dc7c343acd +AAD = e8006cfb0536696ac7 +Tag = 7cc5b60c881fe834a789d28447d8fb54 +Plaintext = 95186d41f927cdbef42157f21d966e88061b6558b5ec932f +Ciphertext = 8584f096aa5cf58bb02e7593d1596bea66d35b7ff92f0367 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 8d65880eddb9fd96d276 +Tag = 27ecdcb257d0d30491e5bf1aa8f90958 +Plaintext = cc0915194218d4536e467433cd6d79ff1d9eb9ff160ab684 +Ciphertext = bd56edc015692c6ab9bec493a9893863598414a3d11a6a0f + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 8a65cde13149d9d54a5b +Tag = b10f9fc201e4128696dcd899dd2e24ea +Plaintext = 28257133b1d8b0b2be4faecd6e819ac783707a5c5f50c302 +Ciphertext = 597a89eae6a9488b69b71e6d0a65db5bc76ad70098401f89 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = e999ec3e1bfb25b5877c +Tag = c522e5ba5adbc6a639cbd06f103ebc9e +Plaintext = 96ab0cfc204bafc4f5851d6c682d631d0c5ad03ac925a943 +Ciphertext = e7f4f425773a57fd227dadcc0cc9228148407d660e3575c8 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = a8554441e073d6065dce +Tag = e1a4e0f7ebc3cff3915d27971cce7e91 +Plaintext = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +Ciphertext = 21cda08aff3bcbc6eed9e44483d3ae5dc9d564d38a42e922 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 838f0be8d04d28d77549 +Tag = c215c88d80bffc881aff10ba40f11976 +Plaintext = d0700658d5f4010ff21091f3d119c99645e339198029c3a9 +Ciphertext = a12ffe818285f93625e82153b5fd880a01f9944547391f22 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 20f014d928d5b25fbaf4 +Tag = 2cc9391bc06aa6ca9d486a4e2a218c54 +Plaintext = 4bdf28748a0c281dd49c7294ae8e55fe7a52d45ff6384db3 +Ciphertext = 3a80d0addd7dd0240364c234ca6a14623e48790331289138 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 56c026b8a71974ff7ecd +Tag = 778b05c6c582a0bb7d1d9dcf6a46b9f6 +Plaintext = f75db057f0276fff85014f54ecdec8f90b96a2a982db14cb +Ciphertext = 8602488ea75697c652f9fff4883a89654f8c0ff545cbc840 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 75c3b9e52648a4f9aca9 +Tag = f47d9ebbd3cff14623b10cecc94b53d6 +Plaintext = c15c554169dbb9b08494afaa44819a10dc9ddad54199ab54 +Ciphertext = b003ad983eaa4189536c1f0a2065db8c98877789868977df + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = 1c76c3014a14b7fa1ca8 +Tag = d2b74b84dc170c00dce85b56e346a976 +Plaintext = 19eef6f798fc68086aad1cda6d7976cdcfe6b8af74598032 +Ciphertext = 68b10e2ecf8d9031bd55ac7a099d37518bfc15f3b3495cb9 + +Cipher = aes-128-ccm +Key = 46b067cf9b1a28cf187002e90b14e130 +IV = bad8c03292bf01cfd8d34f860c +AAD = a4eb60d4eb7ead1bd0e6 +Tag = d92e19fd8b5c1fcbff36adaa5e47ae84 +Plaintext = e06e5dba5ac35cfd07949e5cc12ad70507d4a86a952ecca3 +Ciphertext = 9131a5630db2a4c4d06c2efca5ce969943ce0536523e1028 + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 537038b5357e358a930bd6 +Tag = 8790c1648f461a31c84e62ea8592a074 +Plaintext = 4d64461c55eb16bf7b9120f22be349598f2f394da8460dc6 +Ciphertext = e9fc5004c2359724e1e4411ae6f834ef6bea046d549753c8 + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 7e3d7b3eada988668f3784 +Tag = acb1d1c9231d2c22ecfeed622792dfd0 +Plaintext = eab7d5dbd91d4cbbac8d79fadd70b5dcb3baadac5cb713a3 +Ciphertext = 4e2fc3c34ec3cd2036f81812106bc86a577f908ca0664dad + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 78b107b29c4878ff18f749 +Tag = fffe60299768f048e7098033cde046b0 +Plaintext = 3c6ae2e2578875a1f5611582528e058aece2ddc33a4dde3d +Ciphertext = 98f2f4fac056f43a6f14746a9f95783c0827e0e3c69c8033 + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = d293908bb516c5f3a411b9 +Tag = 4ee6ebc0d90a0de05b428495c93e1801 +Plaintext = d7a46e726ed43f1580eb52141a93390982cc809dc833e3f0 +Ciphertext = 733c786af90abe8e1a9e33fcd78844bf6609bdbd34e2bdfe + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 33ef208faad4d2948c9e67 +Tag = 7e7e64cc0fcd6a92c79ceb6ce2abd8ee +Plaintext = b1fe5d9d34157193fc0608cd8ecb872e17720f5f6814a466 +Ciphertext = 15664b85a3cbf0086673692543d0fa98f3b7327f94c5fa68 + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = b7f7ed9ccac3c2b4fbfee0 +Tag = b02b53bc779e0976b634b0d1b88fc0a9 +Plaintext = de6bb539fb7a9c87414f62a7cf25a4cfca176509e991af41 +Ciphertext = 7af3a3216ca41d1cdb3a034f023ed9792ed258291540f14f + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = a6e287383927f76e4927af +Tag = 3c37fa936243b393f07fcccb0fc13e41 +Plaintext = 8719d20c20c8959068b8adcd65e6f6bc7b3693828f0735a0 +Ciphertext = 2381c414b716140bf2cdcc25a8fd8b0a9ff3aea273d66bae + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 70828be6dd93954f4e7b6b +Tag = 0d7534a489e6d242966ebea4455f8f79 +Plaintext = 30b39426831f61c8ba5f2ef5b71f0c4b2f916e3b5a578110 +Ciphertext = 942b823e14c1e053202a4f1d7a0471fdcb54531ba686df1e + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = 506015fc2831df293f4da0 +Tag = ccbf64f04e95b180d09e843847d22104 +Plaintext = 818d5d810f678629f078723f5c6c3657271077533bfb7c29 +Ciphertext = 25154b9998b907b26a0d13d791774be1c3d54a73c72a2227 + +Cipher = aes-128-ccm +Key = e94dac9c90984790a7c0c867536615ff +IV = c19f06f91e645d4199365f18c0 +AAD = e9394b0245b379e68e3dea +Tag = 27b546ef8cd717073832584fb25a0645 +Plaintext = f0613205a7a0822849df9e8a3cf6caf281f3adfa966c5507 +Ciphertext = 54f9241d307e03b3d3aaff62f1edb744653690da6abd0b09 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 040b25771239cc2a39446e3c +Tag = 54e5d050a405f755047d09cb0f49546a +Plaintext = 011fc50329bfd63a85ebd4f7693363602f1a4147371270b7 +Ciphertext = 4432d7eb42980734d34f19c50cf8abf71ac1b19ed75a7278 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 50a1d37fa2f3462bd304631b +Tag = 2abee8547ee3f24cfa677468ecc1d121 +Plaintext = c90e40540d372ab1eb00ea5d5b8de5bf7c94ce4e376d6949 +Ciphertext = 8c2352bc6610fbbfbda4276f3e462d28494f3e97d7256b86 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = ac3bb872a41df35e415d2b0c +Tag = 61cef865ce4080e7c7abfc43f62c03a3 +Plaintext = 9e7be78c0ab9e6a4c6c257e77c63681bea35d951f168b0c5 +Ciphertext = db56f564619e37aa90669ad519a8a08cdfee29881120b20a + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = e3106ae6456153dd922640a1 +Tag = e1d19c321a1e0852adba939b447220ab +Plaintext = 00df0c5a5d3eceb2bd293066529799544f846672a9a1d31b +Ciphertext = 45f21eb236191fbceb8dfd54375c51c37a5f96ab49e9d1d4 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 297b4498bf5427e6341aa927 +Tag = 79ea5fb65018abdcde1a39f6859ecb56 +Plaintext = 14967a0476dbaea03b07fa8d40d344eabaf479be2443243a +Ciphertext = 51bb68ec1dfc7fae6da337bf25188c7d8f2f8967c40b26f5 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 5de60dc0e3b5bda0b33a9520 +Tag = c2629ff871ee15745fd8c1ddbdae4c29 +Plaintext = 2da3716d76d10b6766a1f9cbf9f420316fd5f396e7b9a2ba +Ciphertext = 688e63851df6da69300534f99c3fe8a65a0e034f07f1a075 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 1c9b8541943ad50b4243c179 +Tag = 04e198ad16ad1106d3ba6172f4a13a8f +Plaintext = 8c1b3ba18d1f5cff74a457aadd6b3e7d093d06ad2622e6a0 +Ciphertext = c9362949e6388df122009a98b8a0f6ea3ce6f674c66ae46f + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 51e926d2542ac8faef61465a +Tag = 75981131e3934ec6d41e00d502729799 +Plaintext = 88936e97db070c0ec2aa58d1c6f5b34df3d32ddf7db34a8b +Ciphertext = cdbe7c7fb020dd00940e95e3a33e7bdac608dd069dfb4844 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = ebefbac97b363e6f32526aac +Tag = e2c005b5bebe07ff578b1b4bc51971cd +Plaintext = c20742e4b410c5b661da373a905fb0ed55b20e0e879eff5c +Ciphertext = 872a500cdf3714b8377efa08f594787a6069fed767d6fd93 + +Cipher = aes-128-ccm +Key = f6bb5d59b0fa9de0828b115303bf94aa +IV = 05358f33e1fc6a53ab5a5c98ce +AAD = 1ef059ac7d648e9e32d9b1f2 +Tag = 21a25f15b5b4229a872a9199972c85b3 +Plaintext = 65c55ca21a89a8325365bf2be861d700559de2eabb41b37f +Ciphertext = 20e84e4a71ae793c05c172198daa1f97604612335b09b1b0 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = e3afd091d2b588465872a6300f +Tag = 42d522cc9dc19c47a4fa0b1528069cf8 +Plaintext = 8e5fa1a6662a8378cda15697e926841594f2f394fa5a34ab +Ciphertext = ca0d95e3ff186ad6b88d45fc4079e6b7b4a615e7e8dd5f47 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = ce3186bb737753b59ee76b748c +Tag = 59b26510b8f25610799e011d7c850ecd +Plaintext = 311ebc5ff2f625944562ea699b2690df3e6e64a17c62bd3a +Ciphertext = 754c881a6bc4cc3a304ef9023279f27d1e3a82d26ee5d6d6 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = bfd636989dfbcb0edc9f014cc8 +Tag = 52942aa0d39649f3d9ed535bebc2b603 +Plaintext = c96cee5ba7b799f16254a17b1870cdb85fe0ef3f42110c13 +Ciphertext = 8d3eda1e3e85705f1778b210b12faf1a7fb4094c509667ff + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = 4812b092aa59d57451bfd812c3 +Tag = c1e61efb9c1d84ddac2d24f43531f569 +Plaintext = 13b1b4404dc5735655139414fcbd02c5327ae9fb148bd324 +Ciphertext = 57e38005d4f79af8203f877f55e26067122e0f88060cb8c8 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = f6ef9ac4f4c9ce1e4309c64fa8 +Tag = 13350de0ef34df12fb945b0ae0a0d9bd +Plaintext = 6c5b59319e2710f5d63407f85b424d1860425ef8ce0cfe53 +Ciphertext = 28096d740715f95ba3181493f21d2fba4016b88bdc8b95bf + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = 9bf12168bb3d79ebd25262f2b4 +Tag = a0734563638598d8c4bf1fcd94009925 +Plaintext = 968e1d78008da78611e82985c4028e86770858cfe61c3723 +Ciphertext = d2dc293d99bf4e2864c43aee6d5dec24575cbebcf49b5ccf + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = 7d870d7e52d3053c65eefad477 +Tag = a1f5fc53b08aca82bccfba6fbcb27e69 +Plaintext = 6a1306d911434cc7400d2f9a95e36aedceddca2b3d583f51 +Ciphertext = 2e41329c8871a56935213cf13cbc084fee892c582fdf54bd + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = e95099f04371e445e5eaa1d80e +Tag = 7d1a922953facbd630d7fea6b63594ec +Plaintext = b9197eb50c8168d16b8a12bd261d553ffcc521d979b26fee +Ciphertext = fd4b4af095b3817f1ea601d68f42379ddc91c7aa6b350402 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = 3e80eb03db6545204ef4241ad6 +Tag = 83fa000d10078256b71249d9d1f1846c +Plaintext = 95f59e36eac8eb3b51709d635b07fa2da0976ea20e25807f +Ciphertext = d1a7aa7373fa0295245c8e08f258988f80c388d11ca2eb93 + +Cipher = aes-128-ccm +Key = d1da2e961e78063af8de41865b226873 +IV = 03739f5474857006340cce554d +AAD = 9748798c0f3cc766795c8ce0e4 +Tag = 2773c2f55b752477c489facee812c614 +Plaintext = a48db9add9ecdeb49e51d3ab7bb2075202ed2aa50c0195b1 +Ciphertext = e0df8de840de371aeb7dc0c0d2ed65f022b9ccd61e86fe5d + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = d24651ef0561282d3e20e834960c +Tag = d9236d5c5c9319092078411b72c51ba8 +Plaintext = 798e31cce0a83702a95171fb1162a17b9ce00ec3592ce262 +Ciphertext = f3c3e52f1a1ff528a8d3783ee4e75f114e3e6416334815d2 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = c527d309ab29ee91c5fc53117e71 +Tag = d8ad2a48cb734e3f93e602c15c7c775e +Plaintext = d79cd4c8891ec4ce2c51136712d23b32266b2b73768aeb1e +Ciphertext = 5dd1002b73a906e42dd31aa2e757c558f4b541a61cee1cae + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = a93dfc3944514ddfc5acdd89fab7 +Tag = f34b297f3f106a9cdae255f7634fbd0f +Plaintext = d7fa81c949f1f2af29dbd56529b307e3b348e996d0936455 +Ciphertext = 5db7552ab34630852859dca0dc36f98961968343baf793e5 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = e502abe21c7b22120693a08ef3e6 +Tag = 4f5d9c3dbfe3e2fe03a002e55039ebe6 +Plaintext = 6330caaeddf0473d564d175b9408c6f12e6d3cd4ee2c423f +Ciphertext = e97d1e4d2747851757cf1e9e618d389bfcb356018448b58f + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = a49b34dfad43333fb2ffd701a2d6 +Tag = 6f7bb0749c99d75740f2d193fef36c60 +Plaintext = 45671482c390e65f75de15ca91b93596e9bf3d6fc9178bcb +Ciphertext = cf2ac06139272475745c1c0f643ccbfc3b6157baa3737c7b + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = 9e4d8aa3dbdc4d4b4b8d72734f52 +Tag = ceec82fc674da9efa6926e8641729ed8 +Plaintext = c8f34bea8bdc403a48d8ed9268429141cd03c29558050ef4 +Ciphertext = 42be9f09716b8210495ae4579dc76f2b1fdda8403261f944 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = 052327ad59cc791259817fd0ed96 +Tag = 2ff19e93f60c8f3a511300fddc38ee59 +Plaintext = d8d1c57b16c23894b66023c29f8648ce4a6074647e1f5f69 +Ciphertext = 529c1198ec75fabeb7e22a076a03b6a498be1eb1147ba8d9 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = 14bc3c44c001ccb261a2a0526523 +Tag = 7fa00fb244eda0d77cf6c05c8fd590af +Plaintext = 71c14a7031033db15bfe23b75fed9daf8886dd11392a0b78 +Ciphertext = fb8c9e93cbb4ff9b5a7c2a72aa6863c55a58b7c4534efcc8 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = 3477384c396a9e9efb3e169722cb +Tag = bae19612657c87d3bb73cfb8cee7c8a8 +Plaintext = afa795f836763a1210bb36fef167864f73ba3b6abc593537 +Ciphertext = 25ea411bccc1f83811393f3b04e27825a16451bfd63dc287 + +Cipher = aes-128-ccm +Key = 1eee667267ef10b03624cf9c341e3f75 +IV = 0630a3eae27e505c61c56e6560 +AAD = 0c3b9a6924ad506038cb2d6590c9 +Tag = 3d9713d2e916c23ac3039de34c295fc4 +Plaintext = ca4a186f116a179579e3d327aec3f5be358bc7094f853bc3 +Ciphertext = 4007cc8cebddd5bf7861dae25b460bd4e755addc25e1cc73 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 477937301c83ba02d50760b603e0ea +Tag = df9a0e986ab2890736423bb3772cec3e +Plaintext = 553714e17a208a2eceb847a4a2d95088388b1ac8d8ca43e0 +Ciphertext = 1c80213268bad5402c4dc9b5d836ab7499810d0d8a974716 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = c91eb5a07ff19c044023e5cf339203 +Tag = 39f907a92cb01215e3cda84ae13af48b +Plaintext = c94d0b9e728413c58202cb3f6b82dba7aa9e3ca0a72c40c7 +Ciphertext = 80fa3e4d601e4cab60f7452e116d205b0b942b65f5714431 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 38c71a8e9b279c605c7f0418a0afc1 +Tag = 3dbd8dbf7485106cdf9ea0e7088a5650 +Plaintext = b4e8c4fd5ad98a1be8b5a11677c57ca1c1694e3528092aa9 +Ciphertext = fd5ff12e4843d5750a402f070d2a875d606359f07a542e5f + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = f2c76ef617fa2bfc8a4d6bcbb15fe8 +Tag = 853fde6f4dca88ff11bbce20ed9e5012 +Plaintext = 578ce26cdb5ba2e8798e23588e5cd04ef782820b80e49a42 +Ciphertext = 1e3bd7bfc9c1fd869b7bad49f4b32bb2568895ced2b99eb4 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 36004342dd74e7966692a848b2c11e +Tag = d94e979108fcecbd32f6bdf72f0ccb4d +Plaintext = 78733c635d4d4e8b0729732f1e174dfcec4e020a7ac3870d +Ciphertext = 31c409b04fd711e5e5dcfd3e64f8b6004d4415cf289e83fb + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = db92bc3fe5d4141aeb39baea6f114c +Tag = 229c8f9d4e39fc16cbdb44236ef125c7 +Plaintext = c7aafe7760945e45703c1e19f1032dfd56ddc216c3b03826 +Ciphertext = 8e1dcba4720e012b92c990088becd601f7d7d5d391ed3cd0 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 34ec2d5b6f0d950509b47a0637d74c +Tag = 1c9ab7cb0a779c3fa78c9ee12603802b +Plaintext = 2345e36a63be0b78df95e60907c78da0e48e61e70685a1f3 +Ciphertext = 6af2d6b9712454163d6068187d28765c4584762254d8a505 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 6ab658d177c2dd87c9b8787cd70182 +Tag = 648c6307ec5ea304045a7cdc93f36b9d +Plaintext = b0725f735543eb0c0ec88ae69b140f5787d28ef4a2e36d57 +Ciphertext = f9c56aa047d9b462ec3d04f7e1fbf4ab26d89931f0be69a1 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = 483f135c61250fa610b4d14b99ecf0 +Tag = 364ff3b1ad915347b1c7f062b10d3da4 +Plaintext = 315a947bf5291278d446d332ee5ca0def7655d5c957a8fb4 +Ciphertext = 78eda1a8e7b34d1636b35d2394b35b22566f4a99c7278b42 + +Cipher = aes-128-ccm +Key = dbbd26f5d9e970e4e384b2273961be5a +IV = 0b1eabe504ef4822542e397fec +AAD = bb022aed60819ef84ae83ce27db9d0 +Tag = 7569808dab58d42181543b2e2d05992c +Plaintext = f78d00755bcb45e6822121fe7cb03c8e627c9f548ccd7e7c +Ciphertext = be3a35a649511a8860d4afef065fc772c3768891de907a8a + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = a209941fab710fda38d11c68b13d930f +Tag = 2341ea8c0785569973f90ee9ee645acc +Plaintext = e59782a9aea45f467b90e51a0fdf166baba05663def2d8b6 +Ciphertext = e357b1ccdaca6f3506dc45279c2e4c59f5307a5fd6a99cd7 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 2e2f6f9755a492ee54df77b2ecab9808 +Tag = 703eb81224cdb1fd2e1cfb2fbfe1e402 +Plaintext = 042a072f6ebf11f79fcb4f5a64f7946dc837d9d2355785ea +Ciphertext = 02ea344a1ad12184e287ef67f706ce5f96a7f5ee3d0cc18b + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 99e98c9983c85d1f49ae43ebad67a652 +Tag = 64c4aea7f17f18f068897557c93ffaaa +Plaintext = 5db6bda27910e7b8b61ac476c6532570b71b3932bd6a698c +Ciphertext = 5b768ec70d7ed7cbcb56644b55a27f42e98b150eb5312ded + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 37a837d73fa15793f6f823fb99c2ea74 +Tag = 6f3b2e70e6e2dc7acc74a823a7f49722 +Plaintext = 8cac261a461c3ddd2642b8e4e5c3389e491fcb2ff8356412 +Ciphertext = 8a6c157f32720dae5b0e18d9763262ac178fe713f06e2073 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 11119a4e779cfb64c736d425e4ff554d +Tag = 0dc3b57096f0df1d4eb5328c416921bc +Plaintext = 3429f9b088b501d7944c462694d0799568282e7ce07d3e61 +Ciphertext = 32e9cad5fcdb31a4e900e61b072123a736b80240e8267a00 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 962d7d4305f23d1692747b504960c0a4 +Tag = f62ed804e9f2ac0f7001d0f35ea9f3c1 +Plaintext = a46ae4c71d4c9eb72fabfa76b8074aa02e07653eca10eef5 +Ciphertext = a2aad7a26922aec452e75a4b2bf6109270974902c24baa94 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = bbb1fdfefcf3657ba6cd93ff341a04e1 +Tag = 907dcd7ac1e0bb248d46c3036c39fb02 +Plaintext = 92f5e3083f57c77ac9553a2024a66489698bd2261f05d415 +Ciphertext = 9435d06d4b39f709b4199a1db7573ebb371bfe1a175e9074 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 74be126f7c596642dafa8fe3da904e69 +Tag = 87cbb80fd21127feca7e76fd6947d5b7 +Plaintext = 41ecc3aae5cfebfad7921a47a0684601ffe73816380f8716 +Ciphertext = 472cf0cf91a1db89aadeba7a33991c33a177142a3054c377 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = d72cc521c90a468522af8966c24799f3 +Tag = cdb5d1243b6e73b8e380d8ca041647db +Plaintext = 8850bdda4bd0271e333db344a47b837183eb48269c3dc0b6 +Ciphertext = 8e908ebf3fbe176d4e711379378ad943dd7b641a946684d7 + +Cipher = aes-128-ccm +Key = 10a7720f2e18f739c26924925af6b670 +IV = 8c4e7813ab9bce9dafee01c628 +AAD = 28f427fba8d0bb0380bbe5072ccfa519 +Tag = 4a0ae8604b103f882f17db893ed5c576 +Plaintext = fdd3ca2f193f93f5a349b50357d26748b767cde6ab5cbfe7 +Ciphertext = fb13f94a6d51a386de05153ec4233d7ae9f7e1daa307fb86 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = 5cbba9ea778e01af00afb2a934f28c7211 +Tag = ab30780a2c4f12af8f35350d65284c59 +Plaintext = d91b12e8655dd92b1332fc1d71c391c96a17111562d90ba3 +Ciphertext = d302e5b2d5d90433186b804cd7717e2db2f22cdc34fb2942 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = 1583138aa307401dddc40804ac0f414d33 +Tag = 46577901b7f6feb88b8e2b8562f9cb5f +Plaintext = eeafb08d4a4819f5682a01d44371e34cc5729079e74e73a6 +Ciphertext = e4b647d7faccc4ed63737d85e5c30ca81d97adb0b16c5147 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = 23931c258c84086500c6a3b6eda457e6b5 +Tag = 8735a59390ba7a892741694f3a89b0bf +Plaintext = b8737d5bbfc976c2d8d9786148dea664dd83cee98df537b5 +Ciphertext = b26a8a010f4dabdad3800430ee6c49800566f320dbd71554 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = e12f98507d6514c3b551d240595346bc9e +Tag = f4f81ed18cc1820375a7bec2318cde1e +Plaintext = eb021b63c61c0b194bd44870608d7ef0b932b6104412d7a9 +Ciphertext = e11bec397698d601408d3421c63f911461d78bd91230f548 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = e14b87d49d231c0199eec627fd7f1b5332 +Tag = 187b430caa60d98dc3e2aeefe6249b44 +Plaintext = 93b42584c4956078359d77e80aef52281b9228a1f66aa36b +Ciphertext = 99add2de7411bd603ec40bb9ac5dbdccc3771568a048818a + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = ca095aec96a8b093e62b10f0950ce35ce7 +Tag = 0a77372b727408e1bf5a70790b9eba3a +Plaintext = 6a788d8238c7b313b8eba27b210a71c36819d719115b9b76 +Ciphertext = 60617ad888436e0bb3b2de2a87b89e27b0fcead04779b997 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = d1cac02b34ad33c0e77a5bda2c3baf5e5d +Tag = dc1f5cb4d4fa2204e82eedcb3784443d +Plaintext = 3bc1ee54d0094603dfc68eee118e547d031fb36e464e776d +Ciphertext = 31d8190e608d9b1bd49ff2bfb73cbb99dbfa8ea7106c558c + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = 065c06b49a49898e20bb679e35edbb1f76 +Tag = 2413f9496592a75a1d6e42ee3a258607 +Plaintext = 8a12adb8b746216baa8a418725e608e4377f13816a036a10 +Ciphertext = 800b5ae207c2fc73a1d33dd68354e700ef9a2e483c2148f1 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = 98a42d7a0c5917deaf3b4de3f0cbe0a191 +Tag = b571a3150887df1ac5f813676b2eb24f +Plaintext = 30a226c07401d0ae24c73d682e3a6e7e377ec1613bafba17 +Ciphertext = 3abbd19ac4850db62f9e41398888819aef9bfca86d8d98f6 + +Cipher = aes-128-ccm +Key = 6bffab1f4f4c1ff66b4a669b515b2f8d +IV = ddb34d5e0140fb96d690e1a2b7 +AAD = e245a7528931841b52a5f59d861d98d7b7 +Tag = 31aa5e4657c92e31c69ab18d447d3578 +Plaintext = 3d17bcdf30445ebd8a9b6aa2fe11d443c1161bb1ee69ced0 +Ciphertext = 370e4b8580c083a581c216f358a33ba719f32678b84bec31 + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = e04006b68c83a5dd4ceac3cde238e48895ae +Tag = 0d6d676d11fce907b5c93fa1ed7bff2b +Plaintext = 6a493c5ef3769ccc4101dbb2eb36e1e5bbc577a057ce0731 +Ciphertext = c7584c0203c2535c5702c6ae93b7cbfb066f4a055c627a18 + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 5da64e368f45153ea5b7ddca966b6c5b699a +Tag = 2cd45f211b1a1364c91ad07959bf0ee5 +Plaintext = 15e0c672c6764f3699d9d3e7120f8ce5daab166f08fdd074 +Ciphertext = b8f1b62e36c280a68fdacefb6a8ea6fb67012bca0351ad5d + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 1b315d024bb5d1e03d7510e61f37d8adb10a +Tag = 18f021a98b2edfb0b7500363099c2a1a +Plaintext = de907d58cd8f5a72acaa1d329b937dfbbfed65a4e45eb029 +Ciphertext = 73810d043d3b95e2baa9002ee31257e502475801eff2cd00 + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 8691ba4f9232ca86f919fe72ddb39c91d707 +Tag = 2ac9aeb018c48f3902276ac759710b6d +Plaintext = c7fa314d27be79f9d3e2d1e188c1785b0c970f91b8ed4290 +Ciphertext = 6aeb4111d70ab669c5e1ccfdf0405245b13d3234b3413fb9 + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = ff0baf1cbb5884a9290ea7b5ee49915efb4b +Tag = 7dac49f606dadb9f7034e0a1860d519b +Plaintext = 33b05b20f3c849fac091a5028cbfa0bc9a1c32514136fee3 +Ciphertext = 9ea12b7c037c866ad692b81ef43e8aa227b60ff44a9a83ca + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 2d118cda20700bc2748ea1753fbca6f74933 +Tag = 623ccbab19c1442806e21c5a820945da +Plaintext = f43832e420e2eccd5d80502bea2ba1804e17d4433318fc86 +Ciphertext = 592942b8d056235d4b834d3792aa8b9ef3bde9e638b481af + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 0c7a5fd2010c999a8a0efa81f89ff5bfefe0 +Tag = dbcd18947ac1800856c9c92eb0388c70 +Plaintext = ceb203c842a962183f22e602644fc66e4290b3d5be445fb4 +Ciphertext = 63a37394b21dad882921fb1e1cceec70ff3a8e70b5e8229d + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 73fdddb9e0a64f5671fd70c4ea8443507789 +Tag = 39c29ea73b0c5aa130d8b14f7b9926a9 +Plaintext = d6015b6bd5f5eabb2a649129f8f727c06a3ad59499f21caf +Ciphertext = 7b102b372541252b3c678c3580760dded790e831925e6186 + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 82c4484e3a6e18b6bbfd78b69b00c40b30c5 +Tag = f0a0f148ae138c2ea02538c8fd7ac76c +Plaintext = c288b810fb533441bd549d02c0b28d5b834293683eaacda2 +Ciphertext = 6f99c84c0be7fbd1ab57801eb833a7453ee8aecd3506b08b + +Cipher = aes-128-ccm +Key = ae6136df9ab43631ef143515dacedbe7 +IV = c5c445792208a50c8e93d64aa3 +AAD = 267d8385b14721eded743cffd69e4d595f7e +Tag = 85eb537e7583f04e040a0ddc41106213 +Plaintext = 667cc47d13c34923be2441300066a6c150b24d66c947ca7b +Ciphertext = cb6db421e37786b3a8275c2c78e78cdfed1870c3c2ebb752 + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 4a3634e5028df97fbe00eb016e8ea4f1918faa +Tag = 52570e769629dcc2e568737ba53a1195 +Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06eb +Ciphertext = 90c850790b0b380f5aeb2488fdf43c9d5ef1759861e86f6e + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 041b93e3fc059fa44aa755e88df277b9b6e499 +Tag = f1d82ec19a2e3ec43bbdb34e10999d90 +Plaintext = e61ca7310172eec16745a73e34516f65844eecd0dbc5566a +Ciphertext = 980af6f885e3e6f2e2ba4a2bb3e020d1a87976ba1bf63fef + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = d1be393376cb5d23cf8139da0fd92f3d520ae9 +Tag = f2abb0ce4de9eeb5e8af9cdf3391d3cc +Plaintext = ea887edee68ad5fa6bae928aa480dda898037f820700ec52 +Ciphertext = 949e2f17621bddc9ee517f9f2331921cb434e5e8c73385d7 + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = f3e551b34d2db1286a9f41085e4dda95ec3f75 +Tag = 239c73b01ba49a8498b5ff4833851069 +Plaintext = 71fe1ba5d299495d2a56039c64032ec6263d437f55e3f5be +Ciphertext = 0fe84a6c5608416eafa9ee89e3b261720a0ad91595d09c3b + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = a69ddc66e63a3415f21009d53adcf26bc1a9a5 +Tag = 2248dacd3903c26a2dc5ae649566ad67 +Plaintext = bd04d854216740a6ceb9827cbddd83761d19feb2a21d78ef +Ciphertext = c312899da5f648954b466f693a6cccc2312e64d8622e116a + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 5735d6f5882d8f27155eb4cc285a65138ad64a +Tag = d4156cf7d97b2e744351b6960a807cf8 +Plaintext = 33b44873a7a1e5b0fdbb7e7347623e4fa1ccd937feb26fda +Ciphertext = 4da219ba2330ed8378449366c0d371fb8dfb435d3e81065f + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 5d94ed976ab2063512690ae704c3b115519742 +Tag = 5a50086b6711ac72533c3c5717f6892c +Plaintext = d3909d577a4e89642227cc6fc146b61bc18392175e342898 +Ciphertext = ad86cc9efedf8157a7d8217a46f7f9afedb4087d9e07411d + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = db20b384620ab8691aed2fed14a745188d94c0 +Tag = 54fb74ecb9a5163b01b9dbf97ff2f999 +Plaintext = ba0716355fffb8ef947d2a15eb58375a1ff1084c56699029 +Ciphertext = c41147fcdb6eb0dc1182c7006ce978ee33c69226965af9ac + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 94897cdd04e0c8480b2ef7b5201dda37558ba9 +Tag = d2a81702f665ff5c54f586defd268c94 +Plaintext = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9cc +Ciphertext = 215d1e5e323b409e36cc81509d1d78cbf27d452d494cb049 + +Cipher = aes-128-ccm +Key = f1908328edf2996ebfc9655472ca5ad0 +IV = 4c693364546930b6c5250e2699 +AAD = 95c44e1e5ad256b3ce1cc1d87137a1e09f1fd4 +Tag = fa641889723e163825ab65727e8a5343 +Plaintext = 598e91d39c414496fd5e69f2cf80826b4e7d59ba28e0a0d8 +Ciphertext = 2798c01a18d04ca578a184e74831cddf624ac3d0e8d3c95d + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 09db3efac9473f713da630ae92c2c8604c61c51e +Tag = d89756e5d78753ef22c012ae34b39a20 +Plaintext = 6ad541695a37c32d73ff6d5f870abd5b0f362a8968c4fce0 +Ciphertext = e65fcc975865c1499b088b58ba163283085d8ca68dc3b235 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = b6d07035aed9c141c713cc3bce60f7ba8ac2545f +Tag = fc78ebae9c143a7283b0641e1f83f5a0 +Plaintext = 9cce4c82fe9d38ef64ac8abdf0619f201a25ce6903675627 +Ciphertext = 1044c17cfccf3a8b8c5b6cbacd7d10f81d4e6846e66018f2 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 80a5ab693378af29cd5a33555cb3579f9ae540aa +Tag = 5a7e44348d2b3085348f787128a4e96a +Plaintext = 7295a7aed3e987baef19ad68c33ba5a5dcbff27875ff5236 +Ciphertext = fe1f2a50d1bb85de07ee4b6ffe272a7ddbd4545790f81ce3 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 220817144a15a0a654fc1beaabce60270aa72df8 +Tag = 24dfc096cd8a09d2d81f6146fb54082a +Plaintext = eb21fe20fc4f92452b261eac0d7b70016f7469afdff7a3f5 +Ciphertext = 67ab73defe1d9021c3d1f8ab3067ffd9681fcf803af0ed20 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 5a2423c2ff2d642c80ac1ca27dd779321f3e9c01 +Tag = 5da82204f4dd8f535cb2fec2f133d882 +Plaintext = 23bf80f51dfd83f63986910e69d54a315c2bfb43f432b7de +Ciphertext = af350d0b1faf8192d171770954c9c5e95b405d6c1135f90b + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = f2c76ef617fa2bfc8a4d6bcbb15fe88436fdc216 +Tag = 108630135498ba409f4b6c8caee8a85b +Plaintext = fc3a50cc8a68778327923ea697f5388da4c814381e29c5e4 +Ciphertext = 70b0dd32883a75e7cf65d8a1aae9b755a3a3b217fb2e8b31 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = b40c8c1d2cee490653105ca2443356cdb63e4fd0 +Tag = f89c515837d129ba41f9c24b0229ddcf +Plaintext = 465e41c69928d08c33e063ea119595a04d0de6bffd17bba5 +Ciphertext = cad4cc389b7ad2e8db1785ed2c891a784a6640901810f570 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 6ebfa1e8f80b3cdb1bedf2e3c7e74f30f55c38e1 +Tag = a352fa6b9c4e40733ddcd3fcdaf9ae63 +Plaintext = 3f98ee3922f8f1086e3135ae66c5465426b13c8794954880 +Ciphertext = b31263c720aaf36c86c6d3a95bd9c98c21da9aa871920655 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 6d0159861031c1a5f01aab35927fe2ab28154d19 +Tag = 2c1aa13f062c0f1f5008e27ff2191942 +Plaintext = 5b43067a5ab3a9f9e633fdc084c44ffa7f11edd12ea5873d +Ciphertext = d7c98b8458e1ab9d0ec41bc7b9d8c022787a4bfecba2c9e8 + +Cipher = aes-128-ccm +Key = 61cb8eb792e95d099a1455fb789d8d16 +IV = 1f37b3e59137f2a60dc09d16ac +AAD = 15e5ade017b30ab41878a2747e93aa91c61c2908 +Tag = e149dd02bc7face0c4dfe4e501c2ac2a +Plaintext = e40b7e9e46e339e64891526e730b3bf6562fa37acefce307 +Ciphertext = 6881f36044b13b82a066b4694e17b42e514405552bfbadd2 + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 161d92c7df1ebb0924719e066e08b95eb4914a5eda +Tag = 62d2b338a7b34ebd9d85c244c952d681 +Plaintext = a9eec383f63892521e4616fcbadc5485942ffaf4669c43a7 +Ciphertext = 949be340720c4fdc4adc05cb777dd81a2549628d33fba07e + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 6b1d94bc0c6e45fc905c509ea667853e4b2c5a8848 +Tag = 8a4defafeb3d61dad8c007b68d8fb9b3 +Plaintext = 7b44a093162bfc8b4d65f1031d890a6b08a3705b142c0c26 +Ciphertext = 46318050921f210519ffe234d02886f4b9c5e822414befff + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 868dd3e241f60f097a7a2fe571307ee5eb961218ca +Tag = 57cbab553b511d68a4f41db211d0a2fc +Plaintext = 28c4d6de3e2ce51b849b135d9cfd3084f0e3155447cad9d5 +Ciphertext = 15b1f61dba183895d001006a515cbc1b41858d2d12ad3a0c + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 3776f37fbf8803bdfd246ffaff2e59658a6c3f0ebb +Tag = 0290fd7dbf0afa3e597274e3c9fe170b +Plaintext = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +Ciphertext = 2ba665a3ee05875c14f0a8fc8e6c0034582e8802f3b699ab + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = d0f2769eba9b8e618f00eed6b34c261c59322a253b +Tag = 9c7dec3960e6aba3174d793b4e08f449 +Plaintext = fcbbcdd9599a86e7c8ccb9347065789a9728ca1220fa51ca +Ciphertext = c1ceed1addae5b699c56aa03bdc4f405264e526b759db213 + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 2be180892faed0bb75887668d187807666d3c66c68 +Tag = 7057b9e2d844e86ee5c3ecfb3270804e +Plaintext = 8d145b1f792cc31a2e5b86216609bb018e7aea3012ff70a5 +Ciphertext = b0617bdcfd181e947ac19516aba8379e3f1c72494798937c + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 52859849a5b7c1d432c3bfb35271cd8141db2ec774 +Tag = 1150fa899152eef7a30ae0f20986818e +Plaintext = 741db990b43ef34993c33d1c4953b67b128b9299dfe86d74 +Ciphertext = 49689953300a2ec7c7592e2b84f23ae4a3ed0ae08a8f8ead + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = aa192759625f4e42d1d1fa73dc0f62199142155615 +Tag = ba7ff9203608089558698ec29472dda7 +Plaintext = 51dca5c0f8e5d49596f32d3eb87437bcae866640310ce1e3 +Ciphertext = 6ca985037cd1091bc2693e0975d5bb231fe0fe39646b023a + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = 6de564226884188ec7bea3894535a875cff2a42fdb +Tag = 85bd0a5074ef852575baf5f12c22663e +Plaintext = dfaa7aa8b28626210d5c24e2ddfe516189be05aabe26f3b2 +Ciphertext = e2df5a6b36b2fbaf59c637d5105fddfe38d89dd3eb41106b + +Cipher = aes-128-ccm +Key = be1ed49e2cb0caf6b6a0940c58453b93 +IV = b78ad129457681fa7346435b97 +AAD = f245f2ee23755df863dee55d7ef0c3c09a0b6f0b0c +Tag = 9eb617436bae012331daf020fce24e47 +Plaintext = eedf00aab5edefdd6549d37ed44358e11c588c24f141dc57 +Ciphertext = d3aa206931d9325331d3c04919e2d47ead3e145da4263f8e + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 1ab5cc3d7b01dc74e6cf838bb565fea3187d33d552a2 +Tag = 7ef14622a9b621d1721b944c60f7fd67 +Plaintext = 8d164f598ea141082b1069776fccd87baf6a2563cbdbc9d1 +Ciphertext = 0d30ab07153b5153637969e6bd3539448c541e42b3d432fd + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 1f1ac4674b272bc7a4ee9f4eae33e969b16fa90a69ba +Tag = dfa4ec2c92671c64ee07946527be67f0 +Plaintext = 14e99a2ef0de650adbd785c692342cdb765e6d20d5fca09a +Ciphertext = 94cf7e706b44755193be855740cdcde455605601adf35bb6 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 43ee77f12ea42e82a02275a68aa95cbd1bb440442bcf +Tag = 173572fbf3d9495760aae4347397b110 +Plaintext = 383242c709fe5f2ce782bf8c83b645d171f2bd238abc655d +Ciphertext = b814a69992644f77afebbf1d514fa4ee52cc8602f2b39e71 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = ae2ff288199be25bf640811541394ad7e1dd0dc0d24d +Tag = 4d2327956e030b9df753e063b5b71201 +Plaintext = 9c16a5b638c35c97c5c981c1b8dbcba11aec30e72e45a936 +Ciphertext = 1c3041e8a3594ccc8da081506a222a9e39d20bc6564a521a + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 4ccfb4281852b5ca7e787723d689384a68ff9437db31 +Tag = e4dac0c9130f5641afd035dd884b6271 +Plaintext = ec9d8edff25645520801b6e8d14a2fc3b193db70d5e5e878 +Ciphertext = 6cbb6a8169cc55094068b67903b3cefc92ade051adea1354 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = d3a2fffc798fd9cc2f409471faf18caa2ff3dcf4e652 +Tag = 48807dd50a9cf41651083c49c7493ceb +Plaintext = 0db33eda4188a9165147e24e40f79fee1985eb68d5162728 +Ciphertext = 8d95da84da12b94d192ee2df920e7ed13abbd049ad19dc04 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 7b5121aa4d1e314f209ffe3e92cd26ee4f74d91e27f2 +Tag = 8ea0da53046733f522ded40a09c6d7a6 +Plaintext = e0d3ea4308376423c4322503f56e427a64e2e6d8b4f5e668 +Ciphertext = 60f50e1d93ad74788c5b25922797a34547dcddf9ccfa1d44 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 6e12c112720ef346bbbe7d1c19483721b1c52c438dad +Tag = 345cb5a968f39654b994686699d532c2 +Plaintext = 491f2bca585d6b5fdf38d18890e4d1bc923fe26930b3d2f1 +Ciphertext = c939cf94c3c77b049751d119421d3083b101d94848bc29dd + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 20433402a2d869c95ac4a070c7a3da838c928a385f89 +Tag = cce85eb55339b886b7121b306fccc0b2 +Plaintext = f45908d691ddaf89c0bc129ffada94c3ceda5f47d63ef76a +Ciphertext = 747fec880a47bfd288d5120e282375fcede46466ae310c46 + +Cipher = aes-128-ccm +Key = 34ab6fd7f54a2e0276fcb7cf1e203aba +IV = 6091afb62c1a8eed4da5624dd7 +AAD = 42f944c21cc221beaacb288115ac628346b8a1d94bd5 +Tag = a37ca5ce12aa6f0659467642deb8bfcd +Plaintext = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b +Ciphertext = 63261824c00c9038caaa5a64603b09dd40bc4e3a210ef667 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 105258d2f25f62675aee975cfdb668aff833f05b61eb2a +Tag = c7fa9ee2e7cdc1b755258f2212a8a8f4 +Plaintext = 49db80f22bc267a70e5636dfbc8a21c83d9691fe4b9c3051 +Ciphertext = d2fcc8b7809b5fc07e44083e437d8180157f1782a9ce9f65 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 0f5938540651fa4ca03867e67518eb2b73f60dd8750fa0 +Tag = bfdb9bfcd3b969fb2e41221eb92b0147 +Plaintext = 26618e21099a79d6c517335389551323065ad89c8848ea12 +Ciphertext = bd46c664a2c341b1b5050db276a2b36b2eb35ee06a1a4526 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = d6b228960fcbcf07c7bede616139db62b3808718a5b511 +Tag = f8beea22cba93203c912209c78c03aa1 +Plaintext = 4de1d6d57144896ddea1c30f49afecd27bdf4840ed9928b5 +Ciphertext = d6c69e90da1db10aaeb3fdeeb6584c9a5336ce3c0fcb8781 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 75f8f071e229355e286882917ce5dd4f1db591fee51b6c +Tag = 69a2e3ea4a40f7c491912c1a0778ebde +Plaintext = 785359b1dc754a1e1b6d8731bd2d917ce3e91507401310e8 +Ciphertext = e37411f4772c72796b7fb9d042da3134cb00937ba241bfdc + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 4afb62aa8648ac7474dd16fcc376f8909c69e1ce36e6d1 +Tag = a75c7ba2a769c27903e99b72639b0841 +Plaintext = ab627aac1496d011ed2edcb2fc6b2afbcc394654f56124f6 +Ciphertext = 304532e9bfcfe8769d3ce253039c8ab3e4d0c02817338bc2 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 736fdf94db820a2efe89e7fc9dcfe7c23d5754ac2bcc7c +Tag = f84f4ca4a69fde75d7207e50494819b6 +Plaintext = 40722cffb37f1455c2618408e777ed0f4b1bd039952730cc +Ciphertext = db5564ba18262c32b273bae918804d4763f2564577759ff8 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 8a9a0367137c28db4c4e78d9cd9a68cde0d1b4583532ae +Tag = a0c34a24d3ee0946034c71fba4dbb333 +Plaintext = dcaabf7a061502618541c09ea59dbbbd52b2692fd0064747 +Ciphertext = 478df73fad4c3a06f553fe7f5a6a1bf57a5bef533254e873 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 34dbbff560ef04ea731b8979aef2ae50972f4db3efe14a +Tag = 0f5e24a435a39a716c39f43dabdc4281 +Plaintext = dd641a893b16e0e173ea2eda20638bb01849ac11e64e8ddb +Ciphertext = 464352cc904fd88603f8103bdf942bf830a02a6d041c22ef + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = f3d1fcd912252431db9d8ccfc3e203d5b34d537468b4c6 +Tag = f623d59f66764d859a772bb50ec91fc3 +Plaintext = 9aa3e8ad92777dfeb121a646ce2e918d1e12b30754bc0947 +Ciphertext = 0184a0e8392e4599c13398a731d931c536fb357bb6eea673 + +Cipher = aes-128-ccm +Key = ea96f90fbae12a857f5c97e0cba57943 +IV = 21cc46d9ced1539b0ad946e600 +AAD = 513b4cdc551c203ed5f1e659813584862023911590b672 +Tag = 3b6549eb16fba96318afb3df51f4675f +Plaintext = c8f44ae4b02fffdbce0df773c24075f877945fc7a86be460 +Ciphertext = 53d302a11b76c7bcbe1fc9923db7d5b05f7dd9bb4a394b54 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = d3c0ed74e5f25e4c1e479e1a51182bb018698ec267269149 +Tag = eee82c19ecba34280604b58d92dacd3f +Plaintext = 7dd7396db6613eb80909a3b8c0029b624912aabedda0659b +Ciphertext = 5b00cf8a66baa7fe22502ed6f4861af71fa64b550d643f95 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 62f4fe53e99a9b0c51e9561d910d7e2ffe19a5176c9dec06 +Tag = ab4999e9689d52b8afeb87923efa3b48 +Plaintext = 897f0dfd90213f64a9277a0eda4f134f303fa89f56ca54fb +Ciphertext = afa8fb1a40faa622827ef760eecb92da668b4974860e0ef5 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 191c4dfa653c20292657f7694c6b6a4a410c49a879abd217 +Tag = cdc71e556c34fd4e1b5ebc50d38da8b3 +Plaintext = 2b7cf9e6e2d6abcd7775f8a6eb6294e822041c4c45f09c3c +Ciphertext = 0dab0f01320d328b5c2c75c8dfe6157d74b0fda79534c632 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = ba34741f8edb51470eb20f891869aabeab562d92571ac943 +Tag = 46223d381090661c2ee2370d29a572a9 +Plaintext = dccb9a4625512496b372a2b8b768f75741d8c2e30e57d638 +Ciphertext = fa1c6ca1f58abdd0982b2fd683ec76c2176c2308de938c36 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 8b922aca6125722ec490b134a45864397f4e2c281d6e2089 +Tag = f78af50466646b7c7e652f787afe5357 +Plaintext = e0e452c990665465160b02cad6367ca89723613488d8efbf +Ciphertext = c633a42e40bdcd233d528fa4e2b2fd3dc19780df581cb5b1 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = afb9fd78e3f8eaf4e8c91da62b2da534508e54f7dfa214fc +Tag = cc9d9a1270f78648a6b66cb8c0f2471b +Plaintext = b536fdb8839f87080ae65ec35da347e792622ffe18a61d46 +Ciphertext = 93e10b5f53441e4e21bfd3ad6927c672c4d6ce15c8624748 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = ecf942ccee7396cb3ee177eadd4d96a4af1d90afdce97376 +Tag = b17d3d6f1fc4f530841b749d9f3a0a7a +Plaintext = c81233826e5125e1f31fe275184ccba8f1a743e58e146e4d +Ciphertext = eec5c565be8abca7d8466f1b2cc84a3da713a20e5ed03443 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 16fea92ffcaad563792aa924bffe7ef690edc90ea4e29cc0 +Tag = 5852ed48cf88d9ab2326aa46b6541b60 +Plaintext = 24ab253b5b06552665c3c810254c0ed15e68a783180d7eee +Ciphertext = 027cd3dc8bddcc604e9a457e11c88f4408dc4668c8c924e0 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 76f110eecd369d79e21fb208058359d3a2f37581d1f7f691 +Tag = c62dff6bcade5ac2edb8ec9797ce433e +Plaintext = 7f596bc7a815d103ed9f6dc428b60e72aeadcb9382ccde4a +Ciphertext = 598e9d2078ce4845c6c6e0aa1c328fe7f8192a7852088444 + +Cipher = aes-128-ccm +Key = 35b403a15212097085d6e2b77ec3d4f2 +IV = daa423bf9256c3fcc347a293aa +AAD = 8834c776a3237f060ae0ab9857324a3b2ac79f3b6e6f90f5 +Tag = b936ac4764575f85352c24ab23209d42 +Plaintext = 11cbfb3d348c7abef99f562607e289de34a2bb379a5dfe50 +Ciphertext = 371c0ddae457e3f8d2c6db483366084b62165adc4a99a45e + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 0c0b4a45df5c3919c1e1669c5af5d398d9545e44307d95c481 +Tag = a1138cff7b624f9908b5b4d7e90a824a +Plaintext = 0b3d947de8632dc8ff752f619ba7c84716fac7a23e101641 +Ciphertext = 7db9f3f7dc26fc2adf58d4525d26d5601e977de5a7c33911 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = aa27a28a36b5a2cee57ffeca0233feb4bdd4eacb2cae28e98f +Tag = e23f92b598f7a248a894e6b8f5691bee +Plaintext = e6dedce2c278c44e5678d13e7d5b5d3501d61bb0bb6b5558 +Ciphertext = 905abb68f63d15ac76552a0dbbda401209bba1f722b87a08 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 66220aa9b40a1772caba7749a544bff938e804dbc6e556498f +Tag = e94043c0d80fd651469232fe9d47a81f +Plaintext = a276b0922fbd5094bf89b9329d07341e039d6204397b81c0 +Ciphertext = d4f2d7181bf881769fa442015b8629390bf0d843a0a8ae90 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 3d765d20e03a4cebfda50316c4b7d8b6c55078d5b3e9cbc567 +Tag = 25088b522fc0731097e729448236b317 +Plaintext = b99afbc2dbb377350cc58d4bfe8e954cef25d7b27b82fad4 +Ciphertext = cf1e9c48eff6a6d72ce87678380f886be7486df5e251d584 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = e91b6265879153e1692b00a112b4205111c8eb1a7b7f2c6898 +Tag = 2208cf07574cc4f3f83ed6301b904404 +Plaintext = 56114cc783b80ca2dd2881387b6d92a59a237dfc8e976d8b +Ciphertext = 20952b4db7fddd40fd057a0bbdec8f82924ec7bb174442db + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 340b16f352817babb4fb70e9e6e18784b3e67bdd449872158c +Tag = 14b0a900068e55cd24c92bbb78c521ad +Plaintext = eb21fe20fc4f92452b261eac0d7b70016f7469afdff7a3f5 +Ciphertext = 9da599aac80a43a70b0be59fcbfa6d266719d3e846248ca5 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 5a2423c2ff2d642c80ac1ca27dd779321f3e9c01445be684dc +Tag = 3f8ba66d74321c80c057f010078d2f28 +Plaintext = b15083a73607c9d7e197a8cc884ad3be98ac343f6493df67 +Ciphertext = c7d4e42d02421835c1ba53ff4ecbce9990c18e78fd40f037 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 5fe8bb27a59a5f4e370adbba96484c2365fc0d8c6e58d7d3e6 +Tag = 0a189319e4f06d53c1405d37b06cc8eb +Plaintext = 07542d18e8f2d3e199fca0f90cabb78b169525fdce81666a +Ciphertext = 71d04a92dcb70203b9d15bcaca2aaaac1ef89fba5752493a + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = 23e5422e8d7560a9e65642b5e723a47536c16791f3a0cf918d +Tag = dd72f48ae03670249d74f8460b63b1ae +Plaintext = cd574ed56bdfd1408f7831e0b24b4345ee979ac906a7aa22 +Ciphertext = bbd3295f5f9a00a2af55cad374ca5e62e6fa208e9f748572 + +Cipher = aes-128-ccm +Key = 7a459aadb48f1a528edae71fcf698b84 +IV = fa4616b715ea898772b0e89dd4 +AAD = fcc9422ba5023a9997baa9c4ee6cb196ffe96e08eb9c2b8a75 +Tag = 1717c00c93d36a77141b723d573c8c65 +Plaintext = 8c9abe94beed4c9bd46adb1d04fbfe7016dd50d324525abb +Ciphertext = fa1ed91e8aa89d79f447202ec27ae3571eb0ea94bd8175eb + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 5fb96b045f494808c02014f06074bd45b8a8ad12b4cb448ec162 +Tag = b4a6843ec16078038c10afedc41f5362 +Plaintext = e92cd0cb97afe4fb00c4f12e9b9abe1d08db98f49a27f461 +Ciphertext = 82b666694232e86e82295beae66ae67d56aceb5d6b1484ce + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 87db0d9d69bc0cf69cabeb92570e482bbc8ff3e1ba72f12f3225 +Tag = a7c6566d0b8ff97f946d7c7773a845f2 +Plaintext = a6dbad96ad23ff61479df39b99f0673a09f2a7eaebbd34b9 +Ciphertext = cd411b3478bef3f4c570595fe4003f5a5785d4431a8e4416 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = a061a09024f1e03b223695d4703ee202e90e07156b95859a22e3 +Tag = e1d66a4728b67b42602e23c8500b0115 +Plaintext = b1dd81cc3b2b0efe540a3194d6fe304cd2de53db7929ebe1 +Ciphertext = da47376eeeb6026bd6e79b50ab0e682c8ca92072881a9b4e + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 0dd513c5d8d62b723ab8b0a3aaa477e843d9149dc8a2f878e585 +Tag = 03c51e8c59ed13b3e5d9b489d4ea2ccf +Plaintext = fb30c2e98f3d7e4ed7431da285711d3d287884db13a474e7 +Ciphertext = 90aa744b5aa072db55aeb766f881455d760ff772e2970448 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 3ff59c40bd796048e586eccc23a82e4d09fc5e779f38eb4afbed +Tag = f1ec270b43fc5a9811b56ccf033789c6 +Plaintext = 886f9f91a6566ceb99c39462ab675a3ae3be98f68787626f +Ciphertext = e3f5293373cb607e1b2e3ea6d697025abdc9eb5f76b412c0 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 0df7ef91f7124da867e992bcbc6fb38232ff6d5205f38768da72 +Tag = bb4ed25940d58cba64271fe1d2e8013d +Plaintext = ed370d1c2d6dc03e4fae4deb9343a7d4339562cffd427587 +Ciphertext = 86adbbbef8f0ccabcd43e72feeb3ffb46de211660c710528 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 6777de159c34d005b94f67c33ae4a35ebab09d9cb9c56b4c9c81 +Tag = 392636a5e373c1354ea9b969abb4932a +Plaintext = 2f77c2eb07db14bd713c5af10c0760ea3a6ca5ff8d046d36 +Ciphertext = 44ed7449d2461828f3d1f03571f7388a641bd6567c371d99 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 75559898f4ba03c55afc25ea91aa61a93c2f8270a5fa51b6f6dc +Tag = 59a7e8bc0570f19159f91fc14ac6532a +Plaintext = 360fb89429dc9b48358097d930c8561b2bd18dc0a470d1d6 +Ciphertext = 5d950e36fc4197ddb76d3d1d4d380e7b75a6fe695543a179 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 5e03fc430473c5de96d68907fa506f9da353ae48a965445e1f24 +Tag = 07e559568c27a30b5676f98cc66f57d6 +Plaintext = f2d8d67b9f291c3edc264893922622b2693f3e7231137eba +Ciphertext = 994260d94ab410ab5ecbe257efd67ad237484ddbc0200e15 + +Cipher = aes-128-ccm +Key = ca748225057f735f712ecc64791367f0 +IV = 1341a6998eb1f50d4b710a13ac +AAD = 7eee4869e77f6db12c91d1f647cad2340d33a3defaeb362d311d +Tag = 4910615920f6f3c3421a9c2bec1bec7e +Plaintext = 7fd6fb81c36e44b150af10e04683b1ec9b5dda87c71ff939 +Ciphertext = 144c4d2316f34824d242ba243b73e98cc52aa92e362c8996 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = c76846da496ed87b9c0f65c6266c9a822224acde9775efb186a4a5 +Tag = 25d05e5a2e76a90f6fe489fd74cab2a3 +Plaintext = d7aa4efa5d75195a400018bd38f7d8cd53fdffe88df1837f +Ciphertext = 150d9a8b78d9c04239d66207a1f95021bbb1b7c70d7c3548 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = 4efbd225553b541c3f53cabe8a1ac03845b0e846c8616b3ea2cc7d +Tag = be6af49ce97d5e0e77c7fd5d9cc6d932 +Plaintext = 5f94a2e48d348a1d56c55a659306e319c3d2ad78b9fe43a7 +Ciphertext = 9d337695a89853052f1320df0a086bf52b9ee5573973f590 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = 7631cf7822a545daefa16a5ec43c877d475a82d5aa2d51cec7fbb4 +Tag = 924b268cab915f999aea3e1cc3a88ccd +Plaintext = a44b010fc1c659eac9241a58b11a73d7ce33156ddfc54c3c +Ciphertext = 66ecd57ee46a80f2b0f260e22814fb3b267f5d425f48fa0b + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = e4da34663edc44370bfd8aa8315945471a893a1cc069628a071ee0 +Tag = c368f5af8e311e67209e02dfa2613377 +Plaintext = 28d157f5741f1be057d5219711414c0638b47d165a905a6a +Ciphertext = ea76838451b3c2f82e035b2d884fc4ead0f83539da1dec5d + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = 077509eae1dc367540f87832c5780f6c5b29e180bc6c1fee38e826 +Tag = ad175fcad35d29396380b79a28784cff +Plaintext = ba7432a8e34bfaa91b35c8dfd822d86850be39e63150257f +Ciphertext = 78d3e6d9c6e723b162e3b265412c5084b8f271c9b1dd9348 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = a513d750ca1e8bf6cb7b8cea5204e064c15c2dc40d742b31cf5459 +Tag = 93b4b3e33d325359c9c651290ce73bed +Plaintext = 3f5830b0ce8849a660af7d58a60c19a9824a3033bb5fed43 +Ciphertext = fdffe4c1eb2490be197907e23f0291456a06781c3bd25b74 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = e439db829c1291df49fc42c2fa1a92118c2665f11e13f28dc6f11a +Tag = 71f88ca5857c6d801e726a01c621a0c3 +Plaintext = e69b2a243340df5dc70b2cb05be12e5992ee36f7d9f4ca84 +Ciphertext = 243cfe5516ec0645bedd560ac2efa6b57aa27ed859797cb3 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = a12c690568114fd7a677f49d74e84fc1a6b7f7d2a08693266c0a91 +Tag = 0592d360fc6a46aa18c4ce5d74fa4532 +Plaintext = 9de35b840a69a84701ffae1b1d2bf13c34b42a57d14c524d +Ciphertext = 5f448ff52fc5715f7829d4a1842579d0dcf8627851c1e47a + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = 1813bf176a1127f4d508d7663ae750f9c4bcb84a6e26811ac60d46 +Tag = 8b772cef893495cf0a94e8ebf06e920b +Plaintext = 9e2fa20bf76768a5a1467d90a048bb503a2c33bbbaa71653 +Ciphertext = 5c88767ad2cbb1bdd890072a394633bcd2607b943a2aa064 + +Cipher = aes-128-ccm +Key = fdf2b2c7fcb3789b4e90abe607dca2af +IV = a69ddc66e63a3415f21009d53a +AAD = cc6e9cc2699d3ba0e624e715599480d6b7dbc6eeea0d12a9236444 +Tag = b1851d571a1ef8aed565b784dcaaac4e +Plaintext = 6681b1cbeceea57a828324831407280b00f4917ed52a10df +Ciphertext = a42665bac9427c62fb555e398d09a0e7e8b8d95155a7a6e8 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 9610949f6d23d5b1f3989b2f4e524fab4f297a5bec8ddad4f16cb616 +Tag = 2dd579cb0d201d22c86bbc7fbe47bd0d +Plaintext = 109317556c21c969eda65a94176d7a11462c9ae18a865b6d +Ciphertext = 4e6b967b1571c6d7b9e118b112b7ac949a4a175650316a24 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 96118dbfe53434d8aed88769a535eb0c8b5849dca1c81c34626ac9b9 +Tag = f0dd7aef4a609f3587652173446ebd82 +Plaintext = 3e6c914a196e175079315b1c92b2b8a844deb472e249e3d3 +Ciphertext = 60941064603e18ee2d76193997686e2d98b839c538fed29a + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 21fc96f73975298207f818909088295d6d6861677130ca258c2174f6 +Tag = 63e4405d45caf4836467edbf35089d87 +Plaintext = e0014147d5771b4380dc0192d45f36f7d60776d1ba47374d +Ciphertext = bef9c069ac2714fdd49b43b7d185e0720a61fb6660f00604 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 72a5151abcb55933ff7c9314f3235eba2a400121454144c2670e8359 +Tag = 7441c813e90fac775eddb7290df059d9 +Plaintext = 0f1c6dffeda98f7a159f9cc61820bfb29910d8eaa41b751a +Ciphertext = 51e4ecd194f980c441d8dee31dfa69374576555d7eac4453 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = dbbf192914b1ad73666e9f5e9c22c08ca398f7524af62b1046a863bd +Tag = 34d9316f1f1c3142c1c9b26e5c220a32 +Plaintext = c1ddd14e380cc91324cf2a381df1da1ccffd90ae436a373a +Ciphertext = 9f255060415cc6ad7088681d182b0c99139b1d1999dd0673 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 28e4b88fbf04e9897057ff5bfde7eb04fa480256817a50fa281030b4 +Tag = c0b188e33bfab29b237d6c6920ce3418 +Plaintext = d4dae9c4cae92afb80f9a5c99383ff16e23a2ec942eed4d2 +Ciphertext = 8a2268eab3b92545d4bee7ec965929933e5ca37e9859e59b + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = d9ebc1cbfab9034317132a72e0f11c341331146a59e7a2f26bf4f3d7 +Tag = fdde04d21b876468bd9184101b5f32d0 +Plaintext = 8a188d40a6e6fbb06a9f06304349a7a808b092cc2fc10b9e +Ciphertext = d4e00c6edfb6f40e3ed844154693712dd4d61f7bf5763ad7 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 34ad69f192ae4dcab771aeeacf01bbd32609bcbbea8ff9df31ded719 +Tag = 068c65e9d0e5f1b81c86393900e64c19 +Plaintext = 590c1aac30ab166b1caff748452fc146765c372e226ffc26 +Ciphertext = 07f49b8249fb19d548e8b56d40f517c3aa3aba99f8d8cd6f + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = f5e50ce1f99ed5e9f2baa54b96ae7039234b1131e734ec190695d28d +Tag = 06ab3b72c56c8df4a12dba89a2f21276 +Plaintext = 16d0522b2e691e42bd80ce95e00c8a7a1fc738169e904bdb +Ciphertext = 4828d305573911fce9c78cb0e5d65cffc3a1b5a144277a92 + +Cipher = aes-128-ccm +Key = 7d870d7e52d3053c65eefad47764cfeb +IV = 37d888f4aa452d7bf217f5a529 +AAD = 9b1e7e52ea1a12444d884866e11dcf367b70b816460936fdaebba36d +Tag = 0170ca7b16d23537eeb3034105334699 +Plaintext = 0bddf342121b82f906368b0d7b04df1c682ecd4c2b2b43df +Ciphertext = 5525726c6b4b8d475271c9287ede0999b44840fbf19c7296 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = 9ce65598cd1f86afc9aaaf172809570cc306333c25523f863c6d0e0154 +Tag = cb3b5151f327e65447e52c7525562c91 +Plaintext = 78d1e96af8cebdcc7e7e2a4ddcfa34f6cf9a24fb85672ad7 +Ciphertext = 9adb9a95a9379ad795d8d3ffd4e37a045160d6d727f974a6 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = e7c78ef4c4b959ee00cb1a09d71221a43892ef8ad705edd27ed85d03a3 +Tag = 34e5b08e27d8f5eeef0f064ff620652a +Plaintext = bc59f18c8473941abc681a92741ab5ee13679829f542b8f4 +Ciphertext = 5e538273d58ab30157cee3207c03fb1c8d9d6a0557dce685 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = f1bce6f2a4bdd3a07ebf5f8d47f931d27e7e63389d70e1059f701216be +Tag = 44c0a96baae318f4714f0206812516b5 +Plaintext = 5575d950312c14c89ac609dfb0b2fd1af732bb6aae5e8651 +Ciphertext = b77faaaf60d533d37160f06db8abb3e869c849460cc0d820 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = 3da3bb091016e54477dae88af1c84c1a51b59c1bb49a05deb6f32064e6 +Tag = 4e7bdce2dc6aae24178aab6984f31028 +Plaintext = df5947d8c6094ccc25816639ec42214b28731bfd7b8312dc +Ciphertext = 3d53342797f06bd7ce279f8be45b6fb9b689e9d1d91d4cad + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = c4cd183071c37a8157c6930a7d4d530cf4b7eb021682327810bd48209e +Tag = f18ece8260bd56ecdee768022d0dd8d1 +Plaintext = 2fbb6dc235761875411ef59ae06110df8f15f66b721b0fd6 +Ciphertext = cdb11e3d648f3f6eaab80c28e8785e2d11ef0447d08551a7 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = 0e0fece7b6b659b642668e8ba3dca330523e70279155f485f3f6f8041e +Tag = 6f0fb3b7440b84ddc3cc53819c2e93be +Plaintext = cd149d17dba7ec50000b8c5390d114697fafb61025301f4e +Ciphertext = 2f1eeee88a5ecb4bebad75e198c85a9be155443c87ae413f + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = a35c6f70f637a9a5e6f215c694fdf65b6fd85f794ed3eaa1bc19abe592 +Tag = 29ca778c51f9320f121dd803ece8d5da +Plaintext = 030390adb572f2bd2a6a4454fd68236cd1d465574328aa00 +Ciphertext = e109e352e48bd5a6c1ccbde6f5716d9e4f2e977be1b6f471 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = c2992096828325820e2d7acaa17ac789b6830ec3128dd7f904398afbec +Tag = 9c223a5ad65120bfca4a5992e5ebc6fc +Plaintext = f2d9cf953c8d3a051d9b3eae4307a3cb4fffaa2435b49586 +Ciphertext = 10d3bc6a6d741d1ef63dc71c4b1eed39d1055808972acbf7 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = c023763a285ea934bc5bc7ddfc2aefe2b3f9eafe7b87c61383dcc07990 +Tag = 5c3bc4f618ffb3a159f4e2d0622cea6e +Plaintext = 4b92e8d2ffaa4af8f3e0ac037a900bd18e195f490a3d71e1 +Ciphertext = a9989b2dae536de3184655b17289452310e3ad65a8a32f90 + +Cipher = aes-128-ccm +Key = 8fcac40527c0e7ca8eaff265ca12c053 +IV = ae9f012fd9af60a400e20b1690 +AAD = 0a39ec0163c7aeb1b4fbe7cb4fa5b0592fade70f430e23730a23ed4160 +Tag = 6f099dce6e18435fba4d26c1e93bda0c +Plaintext = 7c0e6a0d35f8ac854c7245ebc73693731bbbc3e6fab64446 +Ciphertext = 9e0419f264018b9ea7d4bc59cf2fdd81854131ca58281a37 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 20c5ab290e6d97f53c74121951f39ba865b3acc465fa3f0fb8a591622277 +Tag = 1816df1e0e82bb7bc8105930ad6a2232 +Plaintext = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d +Ciphertext = d00d29396ffa9e691290d746527777bf96a851f306d4da0b + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 0e205a4dc5d5ead0d9ff7f182dc140fc49511c01b0fdbc7e6d6cb5fdf027 +Tag = df823c8ccd466807f2bd1c4032f0cfeb +Plaintext = 88b2572fbe7cf2b46df04db476ffedb41778ae2eb3c3aae4 +Ciphertext = 2167fa0c69b415af3383c4e8ae35d41e00b8232e3dbc3cd2 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 48043560d60381e83c11d4bc9d997d3ee2add6b0524b779c62dfaa73ce0a +Tag = 31f5be8c9965345c760c72cc1b7908d1 +Plaintext = d44bf28b010e076b45db1b053af03db718b60748da51db1f +Ciphertext = 7d9e5fa8d6c6e0701ba89259e23a041d0f768a48542e4d29 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = f0729a8a2fd073699ab87b521cbe0420b43529556a505f5f87874d1a053c +Tag = 381d94a828a95872ebdfda8a4c6a196b +Plaintext = eab8cffb512eabe267cd64353552513defe97c2d10f35503 +Ciphertext = 436d62d886e64cf939beed69ed986897f829f12d9e8cc335 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = fc2cd69bb61223f713e33a5071d09bf2783640c307c22d836dd94952dd37 +Tag = 63931808533f4f70d7a78242ced110eb +Plaintext = 001056926546c261fbbdf92b94498e038c2bcfd0b6345497 +Ciphertext = a9c5fbb1b28e257aa5ce70774c83b7a99beb42d0384bc2a1 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 8f653c5c003c807d16d17f833eebb97c9c2f0e5aae3780a52ce53a6c33f7 +Tag = f34553198f8e40fde6473f9cf04f1de6 +Plaintext = 29ffaef9415fd300127ffd26ef324083a9d90e0f60e2ab4f +Ciphertext = 802a03da9697341b4c0c747a37f87929be19830fee9d3d79 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 8d05e7d3077151c6d9378cb08e049e4d7c28a908f7f7c079c46ff92cd01b +Tag = 0fac20e8d45d2b0771d140b5e4a47c87 +Plaintext = 9874dc5ca1b541f7b21c7b3860fa6b0c3ab1b712ab0fca98 +Ciphertext = 31a1717f767da6ecec6ff264b83052a62d713a1225705cae + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = d4feb3ea76ac2945651f557406f3f38a2d7e9232ed55ff4eaf1201dd8255 +Tag = d3cacfe4281e52d79e60eeb38319bc3a +Plaintext = 1e01c7128c821fb9c971a27fc7c6f9bb902fa735de583b8a +Ciphertext = b7d46a315b4af8a297022b231f0cc01187ef2a355027adbc + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = 7cbb4ae995a3367a256cafd11cd6c6cab5bf3252fa97f27a8a1434ca9a27 +Tag = 8f0d7646a799b14288bb2f354b5d8847 +Plaintext = 51cd306fac7d20e3c7043eae3a6dfec046c5c24a666a0723 +Ciphertext = f8189d4c7bb5c7f89977b7f2e2a7c76a51054f4ae8159115 + +Cipher = aes-128-ccm +Key = ddf9f150cc3f1c15e8e773663c5b061c +IV = 98c5036b7d54da9a1177105600 +AAD = bd40b06a4beded2be3d176266b10772c7fa2949f0a9b20d613af90c2daf5 +Tag = fd7f95e1d331e700aa9ef83f09b689fd +Plaintext = fc5b26befc633a3e8ace011aa7a42bd0258a9f3dc14fc1c8 +Ciphertext = 558e8b9d2babdd25d4bd88467f6e127a324a123d4f3057fe + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = f8b08aa83bed09ca342249b2cf9e2b45a89dcfb8711a120395e455921af481 +Tag = 11297930fd44c63675b7cca70671ef4d +Plaintext = 54390715b6e7c7bd51a234db059a51ba030cf22ee00b7277 +Ciphertext = cb629994c3418a662a8cde1b5f4d99aa7df66e24c53dc6df + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = 0351c969dd38eeaa4b9b0000e346eeb1a2cd462033c59d9e6e3331822045cd +Tag = 7e77f5566ca2fd9293835bceb461dbaa +Plaintext = 65b5e856a8cf35dffd42c5ba105cba4c434aa1c2a0390352 +Ciphertext = faee76d7dd697804866c2f7a4a8b725c3db03dc8850fb7fa + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = 5db8b6bc16740680f78fba917733a6899cdba5e4c10a8058963d1265681eaa +Tag = ec2cf9f5d35521c1c000685e49d2ed42 +Plaintext = 9a7685e3daac43ccf22cad0df900ba8acddc5d420846118d +Ciphertext = 052d1b62af0a0e17890247cda3d7729ab326c1482d70a525 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = e7d6024611210da0cfb90a9955195aa0a0539280a3a7c792a1540930daae2d +Tag = 66f33dfb44ae413283b238616c6b99fb +Plaintext = c18d9e7971e2ae5fc128777086338fbe194443324e2d2cd1 +Ciphertext = 5ed600f80444e384ba069db0dce447ae67bedf386b1b9879 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = 77a878c9c76f3e6a4ddd330d1d8828949d08e0fedffe0d8e2e557b29e7c78c +Tag = 31df6fc6b4cf0b6332936ed7cfe9455e +Plaintext = fcf8982f7342f1b953658453cd5ea413700eff00f1ee7d6f +Ciphertext = 63a306ae06e4bc62284b6e9397896c030ef4630ad4d8c9c7 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = aa540554ee80dbffa475f702d862d6b60e0a4090792420a26d02926517723e +Tag = 7c8162a815f2809601ad02595e2e0ff4 +Plaintext = 0d5690d2a7083ad6daf22b308314b8f5363aca77ca72835e +Ciphertext = 920d0e53d2ae770da1dcc1f0d9c370e548c0567def4437f6 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = fae86f95dd06fb7fbae63a646615555aec8153dc328bdf79da5d4cc9677ed6 +Tag = 7fcaa11bdeab86f60f9cd0a2b45cee1a +Plaintext = f6e313cc35e8f8812b10a44f8ad00b6893f8084d942effe0 +Ciphertext = 69b88d4d404eb55a503e4e8fd007c378ed029447b1184b48 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = fd525302d2fb246a47cf4e3a27808bda89d8488cf450f1a1c7df6eedd810ee +Tag = 0a86a810881bd969744ad80f579400f1 +Plaintext = 91e961ea2eb750577c5137c609602dbfcc4c07955ba429ec +Ciphertext = 0eb2ff6b5b111d8c077fdd0653b7e5afb2b69b9f7e929d44 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = 767b1bdf9793a512d3a84e99ef77b43011a3bcb8de4cd375dfe47a79293e01 +Tag = 250ca00d3231819ecdf501ad39c864f3 +Plaintext = 98438c4411bead6f30c89ead762a12bf39391d3652b78b7a +Ciphertext = 071812c56418e0b44be6746d2cfddaaf47c3813c77813fd2 + +Cipher = aes-128-ccm +Key = b1dc81d116d94f5eced526b37c004b95 +IV = 97c8f69fb91b17299461fd8d63 +AAD = aac7014f606df6feec415a75e29015891007f07518c955875fbf5619262ff2 +Tag = 1224d1d0294d46981d7dc39114a693d2 +Plaintext = 540cb00c0eface3d1b2d632d80a642f53c78ff672a1ff6ff +Ciphertext = cb572e8d7b5c83e6600389edda718ae54282636d0f294257 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = eca622a37570df619e10ebb18bebadb2f2b49c4d2b2ff715873bb672e30fc0ff +Tag = 7c4b4fa597666b86dd1353e400f28864 +Plaintext = a34dfa24847c365291ce1b54bcf8d9a75d861e5133cc3a74 +Ciphertext = 7a60fa7ee8859e283cce378fb6b95522ab8b70efcdb0265f + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = 55a62968c222a8501d1ae56a9a815667f8a9554607b7c56e6753f8fa92a4d054 +Tag = 423862a715dda2f63a4197f894515803 +Plaintext = 764dbefb42644d18d23e5e4568685d14dbacfa418d36c4ef +Ciphertext = af60bea12e9de5627f3e729e6229d1912da194ff734ad8c4 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = f8436e35b7a1c810ac6aabe8e2d48a3678d19e1e96337dada514ee5fc075fce4 +Tag = c200f190bd700f6108f9959f6d12f0f0 +Plaintext = cecef24b62676a5623bedae8087b9b05d7e22b41a14dd2d5 +Ciphertext = 17e3f2110e9ec22c8ebef633023a178021ef45ff5f31cefe + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = 548e2152f3a15b8fb81dc01062d99f7b4fc8f074e5cbdc1030c97f8ccc02ec3f +Tag = 3a66ebc4e0777a6fc140a51e04a10f86 +Plaintext = 53c164a4990c6e0637267ff2556c1542712fc584f6ff7458 +Ciphertext = 8aec64fef5f5c67c9a2653295f2d99c78722ab3a08836873 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = d100f1d08ef1e3eda4aef22cd970c2b785c4ff9b523c401b4064324aecf7f2d9 +Tag = b810cdc08db0a9966dffeb43ba26446e +Plaintext = 15681d2121ac56a63b9d0a38b9c4eccf84fdb746d32c14b4 +Ciphertext = cc451d7b4d55fedc969d26e3b385604a72f0d9f82d50089f + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = eece934a807c9f21487cd810f15fd55d7bb4421882333ff2c43b0353de7fc5a6 +Tag = cfc5b397578f8d02a0b936ffac29b99a +Plaintext = 412a8ef924ca156de860f147575e5731825f0a3759688928 +Ciphertext = 98078ea34833bd174560dd9c5d1fdbb474526489a7149503 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = 86311ff444d9be90459b6ee3652e1705ed0b5cdac3d27293ddea3378fb686ee5 +Tag = 2c3fcd6d618c260d51724126f257534a +Plaintext = 54ba8a020d0876fa369dc32e8627f565ba3dda862ea0bcfe +Ciphertext = 8d978a5861f1de809b9deff58c6679e04c30b438d0dca0d5 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = ab6efbc44a8906d5c067eaed71af467e130aaf170827a58beb03c55069674125 +Tag = bf8b2821920640b992b00cd1c9618025 +Plaintext = 7a15506fd1dae444d77b2a3ae7b57a8d5b4f10e25a9f78e2 +Ciphertext = a3385035bd234c3e7a7b06e1edf4f608ad427e5ca4e364c9 + +Cipher = aes-128-ccm +Key = 5a33980e71e7d67fd6cf171454dc96e5 +IV = 33ae68ebb8010c6b3da6b9cb29 +AAD = ddb640923d083725587aced81ae1d7409983d1f1e3ccc8dcf94376dc1bbcae8b +Tag = 4cd52d41a968284af8907ccbb4588cc0 +Plaintext = b18a61a89cd698f32e059b7a2a9f62a46be2c248790a9915 +Ciphertext = 68a761f2f02f30898305b7a120deee219defacf68776853e + + +Title = NIST CCM 192 Variable Associated Data Tests + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = b090155d34a76c8324e5550c3ef426ed +Plaintext = 39f08a2af1d8da6212550639b91fb2573e39a8eb5d801de8 +Ciphertext = 6342b8700edec97a960eb16e7cb1eb4412fb4e263ddd2206 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 167ee33e75d05023a7d63c770cfef2ea +Plaintext = 296fbda0017351491c2187273fbde2c3a427170e430a703c +Ciphertext = 73dd8ffafe754251987a3070fa13bbd088e5f1c323574fd2 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 70647420f79c0d91cbbd69b806fe96a5 +Plaintext = eb61c284fe009921039ef6a9ce50e702823e44b35357923f +Ciphertext = b1d3f0de01068a3987c541fe0bfebe11aefca27e330aadd1 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 8a3ef2324754539ac774872282534386 +Plaintext = ffeccc6460d23fdcc387c697e75dbb959b78013a8282eaa4 +Ciphertext = a55efe3e9fd42cc447dc71c022f3e286b7bae7f7e2dfd54a + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = e292cd0e32535a848e327bc53cdae94c +Plaintext = 90958d7f458d98c48cbb464c74bf495a49846dd468c514e9 +Ciphertext = ca27bf25ba8b8bdc08e0f11bb111104965468b1908982b07 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = bb21701af36936be5f62d02b84df87c3 +Plaintext = a4fad5205d38206e25097075687ca86032b95b3fe7e82a07 +Ciphertext = fe48e77aa23e3376a152c722add2f1731e7bbdf287b515e9 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 7da7f975367be24341e4af51b8bb156a +Plaintext = b37114c65372b052cbeecf83d05a5da44f7b5bbff7d986b5 +Ciphertext = e9c3269cac74a34a4fb578d415f404b763b9bd729784b95b + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 360c6d50a96f316eda0b216cbb6380ef +Plaintext = 9c0f0426f171ff18b2a4392f61fb4ee4a44c476fe03dc930 +Ciphertext = c6bd367c0e77ec0036ff8e78a45517f7888ea1a28060f6de + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 34cd1bd98e8137b578a174e39efe09b8 +Plaintext = 7b6e0a480a40585545b0e940e8d97c9ec987bd3c0e9c16a8 +Ciphertext = 21dc3812f5464b4dc1eb5e172d77258de5455bf16ec12946 + +Cipher = aes-192-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886 +IV = 15b369889699b6de1fa3ee73e5 +AAD = +Tag = 909a895a3b08b63d7a2a1e75d25e7861 +Plaintext = 34dac6dbc28be62332a6935efc122e37b26ee100eb4033f8 +Ciphertext = 6e68f4813d8df53bb6fd240939bc77249eac07cd8b1d0c16 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 67 +Tag = 7ff74e3b05b7d7c13284573bd3e7e481 +Plaintext = 100fa71462277d76ca81f2cfdb3d39d3894b0ca28074a0f0 +Ciphertext = 36e2415b4f888a6072f260d7e786d803be16f8b9cbee112d + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 17 +Tag = 3ee7ce845f85dfc770d96dee9ca54ccd +Plaintext = 0217eb6778691f8dfe2d0e5241f05fcbcf97b9171f4de3f0 +Ciphertext = 24fa0d2855c6e89b465e9c4a7d4bbe1bf8ca4d0c54d7522d + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = dc +Tag = dc14ddd8ae0aa5d810040a8d1d4da1e9 +Plaintext = a78b7bc6c1a7250c5fc236f2a8343725a9a7bd3ca81b53e4 +Ciphertext = 81669d89ec08d21ae7b1a4ea948fd6f59efa4927e381e239 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 0c +Tag = 6b40dec7e647720f1f5e8474bf570c2f +Plaintext = 390c808d998582793bb10ee60568eb8d975c51d68b4e4da9 +Ciphertext = 1fe166c2b42a756f83c29cfe39d30a5da001a5cdc0d4fc74 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 3e +Tag = c10c4aac45d90119cce490cc8681a49f +Plaintext = bcd9747fb54184b61b2e9e049caa75e22006e250f3722c0e +Ciphertext = 9a34923098ee73a0a35d0c1ca0119432175b164bb8e89dd3 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 7e +Tag = f9a95091d2cab7d3d9fa3e10d3e67ac9 +Plaintext = d0342e3cd2c1142b642da7297ee3b9978cec405e6810f12f +Ciphertext = f6d9c873ff6ee33ddc5e353142585847bbb1b445238a40f2 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = e3 +Tag = 180f7818c373e89f7ff3003f53260060 +Plaintext = 7fab91d1aa072947d22f0dc322355a022fe7f0747f4a184b +Ciphertext = 5946779e87a8de516a5c9fdb1e8ebbd218ba046f34d0a996 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 3e +Tag = 1905f581585e59e3c8c038b5bf966559 +Plaintext = e487143dc4d98dcc6a2dfe6ee0f85d565d1f46bb0fafe62a +Ciphertext = c26af272e9767adad25e6c76dc43bc866a42b2a0443557f7 + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = 3b +Tag = ea56569c34f8d9eea23e85fec18cfc51 +Plaintext = 976b489244ed6789a34251500057d1d4a3229367a42b9066 +Ciphertext = b186aedd6942909f1b31c3483cec3004947f677cefb121bb + +Cipher = aes-192-ccm +Key = 9748798c0f3cc766795c8ce0e4c979c1930dfe7faefea84a +IV = cdf4ba655acfe8e2134fa0542f +AAD = a5 +Tag = 212da23548f2ca4e9a8a07962be6422c +Plaintext = 71efa75961dfd60ad533082a8cfe111214eb02573adc4591 +Ciphertext = 570241164c70211c6d409a32b045f0c223b6f64c7146f44c + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 1c8b +Tag = 0ecdbc200be353112faf20e2be711908 +Plaintext = 262f4ac988812500cb437f52f0c182148e85a0bec67a2736 +Ciphertext = e6d43f822ad168aa9c2e29c07f4592d7bbeb0203f418f302 + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 9db5 +Tag = 015e5cd97b7dd3d981321ae0b2d99e1a +Plaintext = d5982c462ad40458660cd7b120ce07fce9afe812caedcebd +Ciphertext = 1563590d888449f231618123af4a173fdcc14aaff88f1a89 + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 69cf +Tag = bf3e75863c7acd2699caba3cc301f4b2 +Plaintext = 1a95f06b821879df3fd3ac52fc99a7c1d3e9775263b7d036 +Ciphertext = da6e85202048347568befac0731db702e687d5ef51d50402 + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 6c6e +Tag = 5d6a8f7a9f52a8038aa9dc1bdc9ed876 +Plaintext = 373c157e59b934a1afb57d4c5dd9ca7fb736b206a6210bef +Ciphertext = f7c76035fbe9790bf8d82bded25ddabc825810bb9443dfdb + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = dafa +Tag = 8a15603f10cbfdb041f8b2b12cc8f037 +Plaintext = 26e10a2ed8cc883a6552aee162c5542ff8bb8e758a1975f8 +Ciphertext = e61a7f657a9cc590323ff873ed4144eccdd52cc8b87ba1cc + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = c8b1 +Tag = 1278bf62ba6a4819513d49fdcdb45480 +Plaintext = dd235b05c15479dfe0326ba206ac784eca50038bbeb35d32 +Ciphertext = 1dd82e4e63043475b75f3d308928688dff3ea1368cd18906 + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = af48 +Tag = 8b4d00309b50f9ea72f8105c94475b52 +Plaintext = a0818342a5cae4a90ef281d3d1289d83f273f418a545fcbf +Ciphertext = 607af609079aa903599fd7415eac8d40c71d56a59727288b + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = b1cd +Tag = 220ba58e97936612c4183ba86705b2f9 +Plaintext = 33c0d06b6583bb4d15b4a07364c4be70ac6e72795c3dae0f +Ciphertext = f33ba520c7d3f6e742d9f6e1eb40aeb39900d0c46e5f7a3b + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 649a +Tag = 87d602dc85bb260fb3df1221e2fbd10c +Plaintext = 3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863bde9 +Ciphertext = fb5a67c9744faec46fa7e127d646ed5f8be555566a0169dd + +Cipher = aes-192-ccm +Key = 393dcac5a28d77297946d7ab471ae03bd303ba3499e2ce26 +IV = fe7329f343f6e726a90b11ae37 +AAD = 593c +Tag = eb3835b7eecad6dac9785ad1d370ede4 +Plaintext = a97faefcae36732fcfe47736c2334ea7d411bf7638b0c019 +Ciphertext = 6984dbb70c663e85988921a44db75e64e17f1dcb0ad2142d + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = a4490e +Tag = 91c88a3cb4fbafcb8a4a157d587d7e39 +Plaintext = 6372824bf416cd072a7ad0ae5f9f596c6127520c1b688ab4 +Ciphertext = b14a07bdc119d87611342c4c6935c5786ff1f9ae2eb49e61 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 5cad2e +Tag = 235c34d1390bba5b008c3fb29c2df958 +Plaintext = 295f4f3417a77fcf0bbda17b0fd629ad57a6086573c87eb1 +Ciphertext = fb67cac222a86abe30f35d99397cb5b95970a3c746146a64 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = ebdf4c +Tag = 5a733bba0a6992d0664dc77d2b5d194c +Plaintext = 86f354a505de941d34cd98e3af3706d56a938ab9a2797182 +Ciphertext = 54cbd15330d1816c0f836401999d9ac16445211b97a56557 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 7c0d70 +Tag = 0902a31b15eed99c2dc4ed1bf11cad96 +Plaintext = 88c3bfb546abe2f6bfc92a7c56c627e24ab92a8a87a6b43c +Ciphertext = 5afb3a4373a4f7878487d69e606cbbf6446f8128b27aa0e9 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 8fa501 +Tag = 2f25595ae00103d4eb20288158132e7d +Plaintext = 75d4216bad77943bfe82be216157843b0da0fd16eeee8471 +Ciphertext = a7eca49d9878814ac5cc42c357fd182f037656b4db3290a4 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = b7aca7 +Tag = 60e67693b509ea4795b7da32c5c5d17f +Plaintext = bf1401e8dcf6f681ed6dd74c7e23b7e54b384608b0e5ec52 +Ciphertext = 6d2c841ee9f9e3f0d6232bae48892bf145eeedaa8539f887 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 1f283f +Tag = 80ef8ea380a1a0a38b2c20288e637a9f +Plaintext = 7e623e7ef7d0a678b5d22a8402d89220f4f1bf759e3084dd +Ciphertext = ac5abb88c2dfb3098e9cd66634720e34fa2714d7abec9008 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = e93f31 +Tag = d553aafe8536385d34c412c14d3a1563 +Plaintext = 14f80e7a6298d85d31fb80376a394a8f88b0ae47f00450c7 +Ciphertext = c6c08b8c5797cd2c0ab57cd55c93d69b866605e5c5d84412 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 27e9a5 +Tag = f594d366c8fc826ce58309e9053c27f7 +Plaintext = 3330df12249639961f562a74b34f60b0a8bc7c783f6572fd +Ciphertext = e1085ae411992ce72418d69685e5fca4a66ad7da0ab96628 + +Cipher = aes-192-ccm +Key = a74abc4347e4be0acb0a73bb8f7d25c35bae13b77f80233a +IV = 6a850e94940da8781159ba97ef +AAD = 72d566 +Tag = cdd6ac6c42cd3d11e0344a9c1001e253 +Plaintext = 1a1860ac8c11c5d262f8141738cae8ff91ca05906dc98bb4 +Ciphertext = c820e55ab91ed0a359b6e8f50e6074eb9f1cae3258159f61 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 8ffc0e3d +Tag = 99b2e1e803550dcdde55fd66ecb45edd +Plaintext = e8c1a89228d8212f75c136bab7923a89f9fea18e781cb836 +Ciphertext = 66b5d782323925e1bd0a8413a9a5a881356453d5df2cbeb1 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 2b4f9cfc +Tag = 9e8fbc507244ba234a0581dc69962a66 +Plaintext = a12c6324e022affd61b7e0d8cccbeb23e2e6c65355c1d586 +Ciphertext = 2f581c34fac3ab33a97c5271d2fc792b2e7c3408f2f1d301 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = b4de3039 +Tag = 28a2857099af20a4ae08e687bdb02c75 +Plaintext = 7cccb26f1dd227bc77458b99fd9e00f8e801adaece7bfcd1 +Ciphertext = f2b8cd7f07332372bf8e3930e3a992f0249b5ff5694bfa56 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = bc59f18c +Tag = e33a6416e387d9e571a1954471ec9cc7 +Plaintext = 692b53c1355475c71ceff0b0952a8b3541b2938270247d44 +Ciphertext = e75f2cd12fb57109d42442198b1d193d8d2861d9d7147bc3 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 4fd9fd39 +Tag = 180f9735f994c8335e593f30b331a920 +Plaintext = 7e3e755e25bbe78d4a7770f9356ab9f4ff1bbfdba46383f5 +Ciphertext = f04a0a4e3f5ae34382bcc2502b5d2bfc33814d8003538572 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 296cd04c +Tag = 91990fa537d2657d01f66872ba9af22f +Plaintext = 997b712cd9295dc43cc19b40679f218c27af3e8c638d2e5d +Ciphertext = 170f0e3cc3c8590af40a29e979a8b384eb35ccd7c4bd28da + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 88037d3e +Tag = 4915cb93e84028c7aedce1a2dadbb6bb +Plaintext = 577981ccb6c893dfe6405075fcb41507de7f9bfda860791f +Ciphertext = d90dfedcac2997112e8be2dce283870f12e569a60f507f98 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = fc4bb852 +Tag = 25baa6385af8d7b807a2d2ab19aa4999 +Plaintext = 37ba9f57ec230675ce060ba3d388095adf15907aa0b0673d +Ciphertext = b9cee047f6c202bb06cdb90acdbf9b52138f6221078061ba + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = f40ec14f +Tag = 6adcdb44870e1105b7318d8bad0af957 +Plaintext = 401e0cdc132a9e4a9b5ceeed3c181f67e5203ea69508deff +Ciphertext = ce6a73cc09cb9a8453975c44222f8d6f29baccfd3238d878 + +Cipher = aes-192-ccm +Key = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb0 +IV = ba356d392c3f700f4f2706a4ca +AAD = 90e2c63b +Tag = 8b079fb71d45bd985bffd343c3362653 +Plaintext = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +Ciphertext = 8c40a5f5a79be2a2af34beb3212d8b12c1e13ceff68c2dfa + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = a468f08d07 +Tag = fe4d3a3bb25f89f692884be230c6035c +Plaintext = d3bef460223c81e4579c9d1d463ac5e0881685de1420a411 +Ciphertext = abb85db49a9b1c8724ecbc734cc8373bd20083cfa4007b1c + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 4497649a54 +Tag = d05ae56511a230627e02d066c52a919e +Plaintext = 81ad3f386bedcbf656ff535c63580d1f87e3c72326461ee1 +Ciphertext = f9ab96ecd34a5695258f723269aaffc4ddf5c1329666c1ec + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = c30ddd994e +Tag = 8ef92fc17dca026f1ac1eaf78a05017c +Plaintext = 84b88264afec06b370dfcebf5e1d3e2c1f005faf248b3215 +Ciphertext = fcbe2bb0174b9bd003afefd154efccf7451659be94abed18 + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 9573270f7e +Tag = 38eddff1e60e2d9ae74a936364b8df21 +Plaintext = 9e4c8aa9b58a8eabc5586892f5541000b43f17d9a051a040 +Ciphertext = e64a237d0d2d13c8b62849fcffa6e2dbee2911c810717f4d + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 40336790fc +Tag = aa3d464ad89cae59b474d019a5a7605c +Plaintext = 260f67122dfbe03365bc9e35e9d4ac4b2eb150eddb30857d +Ciphertext = 5e09cec6955c7d5016ccbf5be3265e9074a756fc6b105a70 + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 0b310c8529 +Tag = beab0c520e64939c6950c0fa406eafb1 +Plaintext = 1d55e7352bd895c4ef77389a7225c664f72b38c8de778d57 +Ciphertext = 65534ee1937f08a79c0719f478d734bfad3d3ed96e57525a + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 5756b2c681 +Tag = d22d339c382343bf39c239fd64c2a64f +Plaintext = fbd315e1f5bd0f0e60ee6684c88f3543452c62ea0701d11d +Ciphertext = 83d5bc354d1a926d139e47eac27dc7981f3a64fbb7210e10 + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 3b919e3665 +Tag = fcd6b562a1b6aa10be92a81f99ed540c +Plaintext = d68d6556c5a5b1f5a123389b3ce966d5837cb8fcf5accfff +Ciphertext = ae8bcc827d022c96d25319f5361b940ed96abeed458c10f2 + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = 58749b643f +Tag = 4b853022237d94d253b375bf2150e699 +Plaintext = 062cb6962fa5b3a6239b95f3a51b478a1f32b081dc538a80 +Ciphertext = 7e2a1f4297022ec550ebb49dafe9b5514524b6906c73558d + +Cipher = aes-192-ccm +Key = 16d345606a315ad2406abbcb43cd8cabe948107ba6d17a72 +IV = d4ef3e9e04f1b7f20ffc5a022e +AAD = a5d50c008b +Tag = e7aee0d403b2cf6f8b993eebd6b93615 +Plaintext = 08c62ff9bd7bcf189f530d5065f8764532d2692f69858483 +Ciphertext = 70c0862d05dc527bec232c3e6f0a849e68c46f3ed9a55b8e + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 28130f938c45 +Tag = eadc9601adf9fbdf4e3e94b395b0a332 +Plaintext = 6f3938932b5c1280311e892280d8a822a828a0be7fdb1bcd +Ciphertext = df48662fe134e75a85abc2cece2c3b6236c88a70fa792e9b + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = f600024a7bf9 +Tag = 0692a40a6aba8d7c5addae21de90fea9 +Plaintext = 0af7345e71f4e8886503395ade0b0296a5856e086638b06a +Ciphertext = ba866ae2bb9c1d52d1b672b690ff91d63b6544c6e39a853c + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 4eef510d1f48 +Tag = 22f64becb581070411957e632e19bb8f +Plaintext = 37f57772f056f45a5ce9f46d27be1858980c8935b9c839b7 +Ciphertext = 878429ce3a3e0180e85cbf81694a8b1806eca3fb3c6a0ce1 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 4c9c76b6fad5 +Tag = 08c59f83aa97d069b6d83d9387051f43 +Plaintext = 8bb10c82bcabb7fb2b169252ab443b01df217cf908b8c241 +Ciphertext = 3bc0523e76c342219fa3d9bee5b0a84141c156378d1af717 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 5572ecfc7e53 +Tag = f04686ee1d7b985d903f1de6cf78f8f4 +Plaintext = d1ccb4654a22b1afe32f3d3035fdccd87e9cbed83c679007 +Ciphertext = 61bdead9804a4475579a76dc7b095f98e07c9416b9c5a551 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = bffdf9d20d74 +Tag = f8118f1b9f39b51965ae9ef1bdb40111 +Plaintext = f990a8f6ba14065d48665db36eb470c49f38e2b6376a9bde +Ciphertext = 49e1f64a707cf387fcd3165f2040e38401d8c878b2c8ae88 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 3f27e678c580 +Tag = a3236d02f33f49759f281315e449bfef +Plaintext = f8c7d89639ab742a8bcfffe776e868d671e1fbdd55807a8a +Ciphertext = 48b6862af3c381f03f7ab40b381cfb96ef01d113d0224fdc + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = 1294cb9db5f5 +Tag = e74770a07c242c3854ceb242dadc1976 +Plaintext = 8601cfd7d935e8a8487b9c39d55ca27096255f2eb9e009e3 +Ciphertext = 3670916b135d1d72fcced7d59ba8313008c575e03c423cb5 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = cec271332b75 +Tag = d6c65f19175cfa49898655ccdddb864a +Plaintext = 77c85b8022f58337b364142a2474fe5cfddb31cfca48af46 +Ciphertext = c7b9053ce89d76ed07d15fc66a806d1c633b1b014fea9a10 + +Cipher = aes-192-ccm +Key = 1c476cfd7dd300d961fd3f24a6fe0e80742b00851676ca63 +IV = e300fc7a5b96806382c35af5b2 +AAD = da06bd140502 +Tag = 458822e49e69031431b3eea872a72eb7 +Plaintext = b0f2db802475fa70af02057373844f637a3244cda4b4f93d +Ciphertext = 0083853cee1d0faa1bb74e9f3d70dc23e4d26e032116cc6b + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = 076887d2abe900 +Tag = 18d1531a066de60a95d2924a6910e990 +Plaintext = 83c24f3a77b83b4ef45277ba90225f3ba1722312f52b1a07 +Ciphertext = 19d880f1d959a68f162de243d4a45747ace704613359b272 + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = 7535bcc6fbd1a0 +Tag = 6dbf58406020e6df7b312b6825127f9a +Plaintext = 24f85ef683cc521387f484bc0b2ad9172f61884c09a9718c +Ciphertext = bee2913d2d2dcfd2658b11454facd16b22f4af3fcfdbd9f9 + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = f4f96d7b4384a3 +Tag = 64dd755177efc87f8b1daf1fd88e51a6 +Plaintext = 212bedfa06b5e1a2c3a2f31f6f791dd9df8ef26077821c0a +Ciphertext = bb312231a8547c6321dd66e62bff15a5d21bd513b1f0b47f + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = 3b7e3d9c1a7fa2 +Tag = 0be31cab31f1a20805d5c07dc516d707 +Plaintext = 8b9036914bb0f440c8dbcfde9b9547be5e5ef1f56492c75e +Ciphertext = 118af95ae55169812aa45a27df134fc253cbd686a2e06f2b + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = a8c35fae8912d6 +Tag = 399df9a45ad153c0dfb3fec3b9d6f7c5 +Plaintext = 50f3f3a91bf6fd9573d5ef54b9bb5805205b2f9865d81fd7 +Ciphertext = cae93c62b517605491aa7aadfd3d50792dce08eba3aab7a2 + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = db636541f2429d +Tag = e20b7da94eac8c7ef8478671165e0d82 +Plaintext = 6fbda8d435555e735443f1e6bc09e96065092efd89edd64a +Ciphertext = f5a7671f9bb4c3b2b63c641ff88fe11c689c098e4f9f7e3f + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = a8de55170c6dc0 +Tag = 4979c35bdbf9538666b6fa57f0f915d8 +Plaintext = 640ef4c246a2c6e16ddc49072a5aeef70319149ffba071ef +Ciphertext = fe143b09e8435b208fa3dcfe6edce68b0e8c33ec3dd2d99a + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = f8d64ce2aa66e6 +Tag = 752824a691da2e99374ae6c031d74ffb +Plaintext = a14e3910766f31594a28ad2c3678c31d0c3aee88484ca6d6 +Ciphertext = 3b54f6dbd88eac98a85738d572fecb6101afc9fb8e3e0ea3 + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = b3c340afdc53a8 +Tag = 04159a68706faa2e8c3376b4dbeb423a +Plaintext = 1b8e0a09e6364020b4cac704dc19bfa79455295604cf9c9a +Ciphertext = 8194c5c248d7dde156b552fd989fb7db99c00e25c2bd34ef + +Cipher = aes-192-ccm +Key = 79d1e38a70df1cf239be168833dcd0570bc8f37b3aa26c37 +IV = 8229d6d7e9e21fdc789bff5dcf +AAD = 73824034001519 +Tag = e5adc7564721ead2af75cb98e61148b4 +Plaintext = 52c84a0735eea6c5c230644075ebfc5db0c3128056e7a8f4 +Ciphertext = c8d285cc9b0f3b04204ff1b9316df421bd5635f390950081 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = f427c47e10c45bb3 +Tag = 721961de5c768f4d19bd3034f44f08d2 +Plaintext = 54bc7e3c227df4e83252a5848fea12dfdb2d14b9e67c1629 +Ciphertext = 91e7baff2b42af63e26c87ce6991af22422c1f82906858b1 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = ca25504f3f5559aa +Tag = 42968c638ecb8a2b358e8eaefd931efb +Plaintext = ff4493fea916f49fbb3cae2838bc84e293531092cc0904ab +Ciphertext = 3a1f573da029af146b028c62dec7391f0a521ba9ba1d4a33 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = 8215753d9efc5132 +Tag = f8ac11752fe51e354f3f8a68815539aa +Plaintext = af16ab8558269a93d8e8c9e38f12a8768947d8b69be0e259 +Ciphertext = 6a4d6f465119c11808d6eba96969158b1046d38dedf4acc1 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = 9e7cdbc6202e6492 +Tag = 489de8e241dcab16bdcbf1a1ff4d8d10 +Plaintext = 744a167ae31a8ca20df82290766429de9ef0b7dfe199a78d +Ciphertext = b111d2b9ea25d729ddc600da901f942307f1bce4978de915 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = b8d511d0ab86a07f +Tag = 3fab212a1b6dc7b953e2bc211be194ae +Plaintext = eeb39de1fe21b5aba654da45fe1481decb22365fa4cbe49d +Ciphertext = 2be85922f71eee20766af80f186f3c2352233d64d2dfaa05 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = c74a5d4265f9f3d5 +Tag = 73918ab70fe048d6c5b63a01725eddfb +Plaintext = e95c20e80153bae3fde3c3d82b6b33b35fc1959fa31a5d11 +Ciphertext = 2c07e42b086ce1682ddde192cd108e4ec6c09ea4d50e1389 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = fd849d3ada03181a +Tag = 87089bc20867f474c1127aa1320f0000 +Plaintext = 6d00606c72cea3deaea5b51ae09e61924355e167058ef42c +Ciphertext = a85ba4af7bf1f8557e9b975006e5dc6fda54ea5c739abab4 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = 56825a68681f498c +Tag = 34a23b0b6ac4d297dd7832a5e2102272 +Plaintext = c47705d897a6c7e7aed710b96e2d8532c23b82090e21b114 +Ciphertext = 012cc11b9e999c6c7ee932f3885638cf5b3a89327835ff8c + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = 72e4da839913a26e +Tag = dd665766c7af21ff890bd40178f1c660 +Plaintext = c822a1ee581cf85b0482c821473385bd3f28528e5e5760d9 +Ciphertext = 0d79652d5123a3d0d4bcea6ba1483840a62959b528432e41 + +Cipher = aes-192-ccm +Key = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +IV = 3820db475c7cb04a0f74d8e449 +AAD = 138457571ee8dafd +Tag = 6a6a58bb772c79481dc26861ffbd68c6 +Plaintext = 3ffb82a83308da66e95ac63ae92931b09ffe0e42afbb4979 +Ciphertext = faa0466b3a3781ed3964e4700f528c4d06ff0579d9af07e1 + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 28d157f09a71da80dd +Tag = 02ada34addf0aa2f4744ed2e07995491 +Plaintext = 0662e63c88e963d3e0cf2c4653515ae4474a2c78ab0394c0 +Ciphertext = 01dcd4dd3b8c1369518136ce45e8bb9df565b0ad231a887b + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = c17d311362c41d442b +Tag = 38a27466b8741bffce44ef04b23af321 +Plaintext = d6df8b60c697093987b3d89a3667b36504b6ddddf12b0900 +Ciphertext = d161b98175f2798336fdc21220de521cb6994108793215bb + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 006669ef1a11b65b1d +Tag = 7d11372fb0dab1c99b159e5fe9f91118 +Plaintext = 49ad29ef5e82b08752ac5a50dd982e4bcb700005454ade6c +Ciphertext = 4e131b0eede7c03de3e240d8cb21cf32795f9cd0cd53c2d7 + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 8eafce9ba466fd53eb +Tag = 09e4898a4046f6ec9f40e412915007e4 +Plaintext = 385f9fb139dbf88561b7a500b0c7b835fe57e2698c6d9f76 +Ciphertext = 3fe1ad508abe883fd0f9bf88a67e594c4c787ebc047483cd + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 796e55fbe7bed46d02 +Tag = 5d40a9902481bfac7ff33d08fb4b3d31 +Plaintext = 4ebb149b01cbacba32d11168ca61928ea149dcf2ee2c1001 +Ciphertext = 4905267ab2aedc00839f0be0dcd873f71366402766350cba + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 8f958d796be0566512 +Tag = d972d09a17172161eb68a30b593b1bd6 +Plaintext = 0d974e5621caa1d86eaaee689ccbca57843373fcf20db407 +Ciphertext = 0a297cb792afd162dfe4f4e08a722b2e361cef297a14a8bc + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = cc879ff2d583a7288c +Tag = 119cc26a80c152c253fbc36cb886e0fc +Plaintext = f8e0dac6a691dfb231411b5c5f70a0daff83cc637b0c7bb3 +Ciphertext = ff5ee82715f4af08800f01d449c941a34dac50b6f3156708 + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = 4765d696d19dec58bc +Tag = 9de06cc5c3bc4ad75076c774576843fb +Plaintext = 096a36396ccfa260f28fb0919157a5076b53506c51a2a4ef +Ciphertext = 0ed404d8dfaad2da43c1aa1987ee447ed97cccb9d9bbb854 + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = a004f283afc3309c31 +Tag = 135493b44f79a5774df6b2943b0bec67 +Plaintext = 5b943269be41e2758a4ea6a3cc621b711a8ba6002783aa72 +Ciphertext = 5c2a00880d2492cf3b00bc2bdadbfa08a8a43ad5af9ab6c9 + +Cipher = aes-192-ccm +Key = 39c03a0c8634047b1635348f284d3dc1e752ab40548eb337 +IV = 9e2ea8eb7f56087ee506925648 +AAD = cdd5d8aefe49a315ad +Tag = 7a5da4a29a9012d78b6de6f1b3e8c9ed +Plaintext = 5f27867109e74862ce0dbc9ba73c420b93067bdede17ae51 +Ciphertext = 5899b490ba8238d87f43a613b185a3722129e70b560eb2ea + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = 2352648299b0413cb2ce +Tag = 0c96e8ab8774baa421f39c64a386c418 +Plaintext = 048c9ba4597c3bb595bfd5048e5e9a1296f30e5c0118b177 +Ciphertext = 25247a258e4ac0a988d8def60cc174a9d4578cd5346fb515 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = ce003c836a6f5f066053 +Tag = d453036cdc6bad0c5e770a6249a52e74 +Plaintext = 02ea8e7e488c863584f828df13dfeb68433294d11d9ca9d7 +Ciphertext = 23426fff9fba7d29999f232d914005d30196165828ebadb5 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = d11be73a104ccc6346d5 +Tag = 4627ad75bbfe17f3f5ddfd3dbc1045f3 +Plaintext = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024 +Ciphertext = 4cfd9248f0ae6ccbcc072678175fa50e889b2fa48bfea446 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = 6a7b80b6738ff0a23ad5 +Tag = af8943f74706cc3394a170fd49f7011a +Plaintext = 97a813e75d95d25c2edb1c705c4ffe4d7c08c756761fbc0b +Ciphertext = b600f2668aa3294033bc1782ded010f63eac45df4368b869 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = a391acdb3a06dae4a671 +Tag = f22597f63074ca3533bb5e107860481f +Plaintext = a78981ac244307451e4d3fd7f654b70cc4e6518aa47a3c18 +Ciphertext = 8621602df375fc59032a342574cb59b78642d303910d387a + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = 0b9f28f2d3215785f569 +Tag = 905b5609f593c6ea9281f66cd2e646dd +Plaintext = 5d649d79ff0e304e164a383c74f13d7ffab145d00cb0ec2c +Ciphertext = 7ccc7cf82838cb520b2d33cef66ed3c4b815c75939c7e84e + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = 7928b1091cbfb2eef0fe +Tag = 428195355618ea0cf87260ad20b6d7b9 +Plaintext = 83a273687dced7b94d569f81d75508595cde668f06406183 +Ciphertext = a20a92e9aaf82ca55031947355cae6e21e7ae406333765e1 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = 3b74afb81f54a93c79d5 +Tag = 55019659f41a5f0430695b4ada9d8b8d +Plaintext = b4dc3c059cf7b47dd0bb7f165a63fc80b5c6b5f3ca7eeb73 +Ciphertext = 9574dd844bc14f61cddc74e4d8fc123bf762377aff09ef11 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = a46ae4c71d4c9eb72fab +Tag = 1514b252f33dc870c42260e48c4fa9fd +Plaintext = 7e919581c5105d98717d0613e1ca869c6516506ea482d5c2 +Ciphertext = 5f3974001226a6846c1a0de16355682727b2d2e791f5d1a0 + +Cipher = aes-192-ccm +Key = e2a92ffbb0b5eb68cb82687f12449fae5167d375131b0b10 +IV = 441ad5e1382e083a95224f395d +AAD = a1ace61711f0a09ac17d +Tag = c263c667d7ed58907452c092905d0b31 +Plaintext = 3a4558b55214f21cbd2ae2eda5a2321cfc2f102e059b744a +Ciphertext = 1bedb93485220900a04de91f273ddca7be8b92a730ec7028 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 521583c25eb4a3b2e46120 +Tag = ed2c87135861b43a99f258b6938f66e3 +Plaintext = 9f580cc6c62a05ce125c6bec109a48ca527ee26a64b14b68 +Ciphertext = ff0ff95bcb0bccd5e4aadd77ac6770f5013654eb3c6386fd + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 31adb39e947f8883fa4b69 +Tag = 32b87476d66a1bd405f484ef9ac8ab7e +Plaintext = f16bba081bddda83546eabc9a55c81a439720dd8562ce964 +Ciphertext = 913c4f9516fc1398a2981d5219a1b99b6a3abb590efe24f1 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = f05f39eb0a3d6460076aa8 +Tag = a120b455b366cb104fd8b6dc2c80471e +Plaintext = 6baf784f63cf45a1836fa8f3609fff7870ce8cbd1e91268c +Ciphertext = 0bf88dd26eee8cba75991e68dc62c74723863a3c4643eb19 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 74c7a633ff73ff507009c5 +Tag = 0c8ca09f4bf06b1c27e75abf15112e49 +Plaintext = d8176a6de1c15a14c8b8b58725c179dc84c9308268d718d5 +Ciphertext = b8409ff0ece0930f3e4e031c993c41e3d78186033005d540 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = ab322a88cf44b9ca774415 +Tag = b3159274a7de3550baf759f7fae53dbc +Plaintext = 3706e4d8ff748574f382e5f9b0a3b6258f1f360fd87001b0 +Ciphertext = 57511145f2554c6f057453620c5e8e1adc57808e80a2cc25 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = d6fe6e17221d4e06ed3ab9 +Tag = 16fba8d193e133e6f78daa39681cb262 +Plaintext = e02217394772deffe218c405e40f2a3a56ca01d55d6d3330 +Ciphertext = 8075e2a44a5317e414ee729e58f212050582b75405bffea5 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 2739d2cdfcbe7d5cd7d28c +Tag = 65f92db3b3d1c2de04c69c5d06b0e001 +Plaintext = bb713f74a884bd1a994adba87561d637853c6181290ef5e8 +Ciphertext = db26cae9a5a574016fbc6d33c99cee08d674d70071dc387d + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 5841571299cd064a6262b7 +Tag = 6e4d20ab5ffad6f71155f6839dfdbb25 +Plaintext = 9641dedd50d80ac0abf7591436065fa2e23e4687abbb86e4 +Ciphertext = f6162b405df9c3db5d01ef8f8afb679db176f006f3694b71 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = dc5d7fd97bb3243ba585fa +Tag = 0ebc3af2de52b8bee3d130fa973f716b +Plaintext = aefda8501193edacb8abb94fff875529a537a462c4b9b69c +Ciphertext = ceaa5dcd1cb224b74e5d0fd4437a6d16f67f12e39c6b7b09 + +Cipher = aes-192-ccm +Key = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +IV = 8e7d8a44244daa7df2b340993e +AAD = 8789e0b3e0dc13d9725b37 +Tag = b5cd5a004a0ef28e30383bdaed8f93c7 +Plaintext = 65e53f549b62aca03f21ab2a494b93805e02cfecf4f12aa4 +Ciphertext = 05b2cac9964365bbc9d71db1f5b6abbf0d4a796dac23e731 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = f1e0af185180d2eb63e50e37 +Tag = 4484d93cb422cb564acc63d3d18e169c +Plaintext = 6333bde218b784ccd8370492f7c8c722f8ef143af66d71d7 +Ciphertext = b9401a4927b34dc15e9193db00212f85f0c319781ec90e3b + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = ea74231e49e667ca1c21d46d +Tag = c4c151d9927e6a9f19d47ff7d79ca6f6 +Plaintext = 3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e +Ciphertext = e67d8fbeec794d42fc64d7f36a87d2ac22aafa440021ea72 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = 7f5871a8300471dc325f8289 +Tag = 959eee29be1415ab03444de0fa42707d +Plaintext = c642c9722d84d708682350dc70bdaa9a1181a415a9e72b93 +Ciphertext = 1c316ed912801e05ee85c7958754423d19ada9574143547f + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = ee7e6075ba52846de5d62549 +Tag = ce97c1c8aea70de04580d7b37f8c014d +Plaintext = 2286a1eddd80737a724ca941217e9f0232870b6c2f20d29c +Ciphertext = f8f50646e284ba77f4ea3e08d69777a53aab062ec784ad70 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = a30f2fd445820cdf80014554 +Tag = 23b536f993381e525a14599dd5c02e80 +Plaintext = 92577d5db20391110309d490f52acecdfc18382f368bbe42 +Ciphertext = 4824daf68d07581c85af43d902c3266af434356dde2fc1ae + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = 0cfec933831644b468724e80 +Tag = d6ea722fdd82ede2c7b8832dde3cbe80 +Plaintext = 6803dc3f7c06568ca78ee5aa2e9b1b354a4f1e067ff6a25b +Ciphertext = b2707b9443029f81212872e3d972f392426313449752ddb7 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = 6bd14e3bf91dc7fd6be07647 +Tag = 5c2994b2b469ad977564d83db1ebfe38 +Plaintext = 5580672e52aacb9d714a34c31c33fc221e13e8f90849adba +Ciphertext = 8ff3c0856dae0290f7eca38aebda1485163fe5bbe0edd256 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = 6c6ad35e97d023217018162f +Tag = ac31ebf9e255eecf3c69ddf198760556 +Plaintext = 1bd1bcc6766d251144376d91ff93ef83033d0e0ee546266f +Ciphertext = c1a21b6d4969ec1cc291fad8087a07240b11034c0de25983 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = 52c35db85cc34b6efed180ee +Tag = 3424079e3de87fa59c3d10fd62380a90 +Plaintext = 28f71a2fe498f89203a5d23e8f8fa64b124aea6459fe721d +Ciphertext = f284bd84db9c319f8503457778664eec1a66e726b15a0df1 + +Cipher = aes-192-ccm +Key = 44cba20b7204ed85327c9c71c6fea00b47ce7bdde9dea490 +IV = f3329154d8908f4e4a5b079992 +AAD = a96e4776270683ee7d0c9b6e +Tag = 2258e1f3fc3eb7e976c86c8a21bd6569 +Plaintext = 5be078ead1926074afca81f9a97dc93dcb954c955e4343e4 +Ciphertext = 8193df41ee96a979296c16b05e94219ac3b941d7b6e73c08 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = ead4c45ff9db54f9902a6de181 +Tag = 9503d811701642143013f28ce384d912 +Plaintext = 3726c1aaf85ee8099a7ebd3268700e07d4b3f292c65bba34 +Ciphertext = fd80e88f07dad09eed5569a4f9bb65c42ef426dda4045011 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = e63b89e95df8338ecdcc885c3b +Tag = c6d3f9c7b9f25e09ce164a11370b8b05 +Plaintext = 37f86aa62b1e31e9ded3e1a38a7e1a8a638d619ac109694f +Ciphertext = fd5e4383d49a097ea9f835351bb5714999cab5d5a356836a + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = a2161536e263459e0b0a29a225 +Tag = e02b848b006c28803303fd97bdc35476 +Plaintext = 1749f5977197359a5d318d5fea38aba95b3603f1d7011e66 +Ciphertext = ddefdcb28e130d0d2a1a59c97bf3c06aa171d7beb55ef443 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 8ac95a6ae0bce0fb07f85368ab +Tag = 431de2bc45b2b726bfda92939a11f68b +Plaintext = 0842bfb8b38283257c2ea58b29c8350775f1dbf15f73c905 +Ciphertext = c2e4969d4c06bbb20b05711db8035ec48fb60fbe3d2c2320 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 44cc9b2510680c4d73f1938c77 +Tag = 786add8c2619f0782ca12312a1d64266 +Plaintext = 68d09fce5e89e4ef6d453b8ee326090cedb97b75b886c7b3 +Ciphertext = a276b6eba10ddc781a6eef1872ed62cf17feaf3adad92d96 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = d8a662ab8449bd037da0346a24 +Tag = b6bd4a09f9b4aa2864d39ff1a03e0ff7 +Plaintext = 45245de4ac6a6196a0b15b77c622a21bb50627379ddb4256 +Ciphertext = 8f8274c153ee5901d79a8fe157e9c9d84f41f378ff84a873 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 8ed39da1d9179e77156eb909f3 +Tag = 19b6935778ffbc0953974de0a9d87a31 +Plaintext = e928e37dbe8389a53c650edc86f83cd3589a53dc8e45adfd +Ciphertext = 238eca584107b1324b4eda4a17335710a2dd8793ec1a47d8 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 423515f7bd592d6a7a2408661a +Tag = 00a3da0d3ce34a272b51582a998f461e +Plaintext = 4c3bdc6186297896097b3297ba90bcde78dc8a9efe3bd8b1 +Ciphertext = 869df54479ad40017e50e6012b5bd71d829b5ed19c643294 + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 5a6bc2cd6890a473d478a582b4 +Tag = 4ef28c338f497a40f550f2945734ad1a +Plaintext = 1c5ebaeb7b926a39b8aaf65a4c484b113d6f2caafadc33ea +Ciphertext = d6f893ce841652aecf8122ccdd8320d2c728f8e59883d9cf + +Cipher = aes-192-ccm +Key = b5f43f3ae38a6165f0f990abe9ee50cd9ad7e847a0a51731 +IV = 13501aebda19a9bf1b5ffaa42a +AAD = 7bdc26b5b4df58af539d91eb2e +Tag = e07f1998e57ba9b611568632dc5cb9fe +Plaintext = be5c9fee6babf569c66e6a0d0f3c4dc314f40c0aeca493f7 +Ciphertext = 74fab6cb942fcdfeb145be9b9ef72600eeb3d8458efb79d2 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 5cc924222692979a8e28ab1e0018 +Tag = f58649400ac9e825b038d67f0c2a6f1c +Plaintext = d3b36c6289ad6ae7c5d885fe83d62a76270689ce05fa3b48 +Ciphertext = bc4fcef401c2e1d1c335734ff23ea52c3474d2e6f31648a7 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 21fb9cdd9b110bbbc6832275dfa7 +Tag = 3fa5ad4142e0b4650fa5cc8f7ef70d62 +Plaintext = a7742dd9c3e8bbad08157fbd01ebfb94e1639117c4b4eb5d +Ciphertext = c8888f4f4b87309b0ef8890c700374cef211ca3f325898b2 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 9919ddb6ee6c330646cd15953d39 +Tag = fec551d11b8647432cc4320173939600 +Plaintext = 297b4498bf5427e6341aa9275c1f62e3b0c9b150a195ae72 +Ciphertext = 4687e60e373bacd032f75f962df7edb9a3bbea785779dd9d + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = f94cfd1f8c7902a57784c10b9a5a +Tag = a79a075ec2cacee1482b8328b697a3b2 +Plaintext = 2218868033e17220655f0196dab6193c58293ca105d467d9 +Ciphertext = 4de42416bb8ef91663b2f727ab5e96664b5b6789f3381436 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 63f3fe58c348dc6bcbb44c3c370f +Tag = 39cbe17b4edd64a3dcd2b8ae3352c04a +Plaintext = 4a9bc26fb10000a57b9e73a8a3d30f66ef9de8782201ffa8 +Ciphertext = 256760f9396f8b937d738519d23b803cfcefb350d4ed8c47 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = dec0ce763833305aa9c9efdc2c65 +Tag = f54665c476d0741164685b0d81caca31 +Plaintext = 1b61b3ff3e4847a17f55f7565826b0e2ccc1368f4de32022 +Ciphertext = 749d1169b627cc9779b801e729ce3fb8dfb36da7bb0f53cd + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 592ef6784ee839a049e0d96257fa +Tag = 500d93b11fecc8b4560320878ba53550 +Plaintext = 32e5998b37987a38800f5bfe3132979ca1447314570aaef7 +Ciphertext = 5d193b1dbff7f10e86e2ad4f40da18c6b236283ca1e6dd18 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 4a47a82b999a2a739959f153a091 +Tag = 3c2a41443578adaf31483bbb6b9f10b0 +Plaintext = 84acfb6cf10b301558e5acbf41bbbe0b145dc66dc600f4df +Ciphertext = eb5059fa7964bb235e085a0e30533151072f9d4530ec8730 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 4ceba98cc0ff5de1a7d580cf23d2 +Tag = 2232a856c07999e99a4701988b486ef2 +Plaintext = d7c73d77a286df38aad116843620911c92e11486be5fcb0c +Ciphertext = b83b9fe12ae9540eac3ce03547c81e4681934fae48b3b8e3 + +Cipher = aes-192-ccm +Key = 13f179aa2a23bc90a85660306394940e9bb226ce3885ec01 +IV = aaa52c63ca1f74a203d08c2078 +AAD = 15e3b3c5794fececd703ac58ccb2 +Tag = b3a6d50a92f3183c0c5090edc3c7f822 +Plaintext = 140882c5d3534bb0861e7ba9423e67439a02ee6f0b0b00f3 +Ciphertext = 7bf420535b3cc08680f38d1833d6e8198970b547fde7731c + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = 39ba54a410a58a5d11615a2163cc3b +Tag = 26a51fe5b9b598a17eb3da10f936813b +Plaintext = 67d9728a88f1fac3af43ed6d634ba902896bd226858697d9 +Ciphertext = 360f0fc714994e3b59448b50cdd61d511b4f09e0e5fb5ac8 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = 38b0cca09d69320105d24ee3f96684 +Tag = ba673a94f4280e84724f4a2510165e9a +Plaintext = a8365ba9fcfff060b28895f7a2d786c5991a8f7758962caa +Ciphertext = f9e026e460974498448ff3ca0c4a32960b3e54b138ebe1bb + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = 76718dfb9c68acdd82592d96def39a +Tag = 18865ab37be6f015316e0d177b6c2e91 +Plaintext = 497be597dd695cb159d8a64f44049c3b549ac927837b1b90 +Ciphertext = 18ad98da4101e849afdfc072ea992868c6be12e1e306d681 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = dd719ba1710916a546233c1494a7a7 +Tag = 3d903f67ad0d72fb8ffea2035216b769 +Plaintext = ca452c21383ebc3fb584f0d59a227374854983f243a3f460 +Ciphertext = 9b93516ca45608c7438396e834bfc727176d583423de3971 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = d893fa2bd7c70e21a5934dc2e99037 +Tag = 0b885e3e054f519d0355db1bd589bb35 +Plaintext = 3dd118ed65453d3d7844d8de78d7a43587ac5e9305b11464 +Ciphertext = 6c0765a0f92d89c58e43bee3d64a10661588855565ccd975 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = 97c60265a3a6993b97ac1b375a79b8 +Tag = 4a950e4bed4137e38787839e39924821 +Plaintext = a7375ba32251af0138bd9fd8fcd56a7c43ab2ca9a7fc0117 +Ciphertext = f6e126eebe391bf9cebaf9e55248de2fd18ff76fc781cc06 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = acfdf302ed116ac4755069d1704423 +Tag = ca94dd97fd2a5d50eb7dd6234b40c525 +Plaintext = d39d188f28521e4fb0a0c5e48e6d6efe4383c95b2535ea8d +Ciphertext = 824b65c2b43aaab746a7a3d920f0daadd1a7129d4548279c + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = d449f97164aae9a3046624e98810bc +Tag = 96f11450d5d2ba55ffb4a6cf7eab847a +Plaintext = 758102470e221e30d87d2807b5f8b793a7a56c83eecf32a4 +Ciphertext = 24577f0a924aaac82e7a4e3a1b6503c03581b7458eb2ffb5 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = 3e6c914a196e175079315b1c92b2b8 +Tag = 64894e9218ecacd143fb62df69a13d33 +Plaintext = 1db875c4b4f9dd4926dfb5604d6c4d21aba7d905aed9d1b0 +Ciphertext = 4c6e0889289169b1d0d8d35de3f1f972398302c3cea41ca1 + +Cipher = aes-192-ccm +Key = c1dfc48273d406a3a7b9176f80b2dc4e9a7f68134bab66d2 +IV = 1ac53ba965cdaeeef7326a37e4 +AAD = e2b7b00d0cfbdfcc24f1819ae1869f +Tag = 85a7c19bc9c2f8e36ed95015ebb679ae +Plaintext = d7a75bc621addccbbe162b86d536d69c887c278384af54e7 +Ciphertext = 8671268bbdc5683348114dbb7bab62cf1a58fc45e4d299f6 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 1c1c082eeb5b8548283d50cc2ace1c35 +Tag = 867601fe79a122a7817819655183283e +Plaintext = 61fdd10938557080191d13dd6c3002dd445d9af988029199 +Ciphertext = 23c05927502a4ee6e61e4e10552d49b020643eab476eeacc + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = cae884fa25adedd883ef4e7c855def19 +Tag = 160bb976ab072aec8fcea8eab3dc5aff +Plaintext = 8c7ae2c3c503e9072d6e04e44c2ea78fd24994503567a136 +Ciphertext = ce476aedad7cd761d26d59297533ece2b6703002fa0bda63 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = a350ed58c04473e113b9088b1fb9dad9 +Tag = 291b2c13a3f5e49ce35b9047ee1e8627 +Plaintext = 863f9a26182f131c594972398b52b3a01a9d314fd9390bf4 +Ciphertext = c402120870502d7aa64a2ff4b24ff8cd7ea4951d165570a1 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = cb7090f7a465782f680fd44cbc558107 +Tag = fdd9fd1d469a9042b80e6458d25292b4 +Plaintext = bd94c9ad6253c25dc417f87b6e52e03621ccf4b3bff5b402 +Ciphertext = ffa941830a2cfc3b3b14a5b6574fab5b45f550e17099cf57 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 914cf55a3fc739b5f87ac7518cc4171b +Tag = a8b8e82175ff30c69ea71d2cfb814ada +Plaintext = c313bd213dc29c00691e25ce028884192e21a820003aece4 +Ciphertext = 812e350f55bda266961d78033b95cf744a180c72cf5697b1 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = adc8b69d84ef7ae62f9ca9f371d3488e +Tag = 76fa36db27b2f84d1b8ab55e2fc89ab8 +Plaintext = 85e4e053b976e06a64dfa8523130cdd802d3e7c3d6d797c2 +Ciphertext = c7d9687dd109de0c9bdcf59f082d86b566ea439119bbec97 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 29ed477994dd231d3a71157eb56d219d +Tag = 0e32058ea939036805a735198934a072 +Plaintext = c77aae5fd09dc9bceee7428e0734d4b0556528396a58f909 +Ciphertext = 85472671b8e2f7da11e41f433e299fdd315c8c6ba534825c + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 494c8f931029a4919e2dcbc16512a8bf +Tag = 37098c81475f8a1d8f3b0e63d499d387 +Plaintext = 1f47273103f265f963e498878361c06c01a5ffcfb630a161 +Ciphertext = 5d7aaf1f6b8d5b9f9ce7c54aba7c8b01659c5b9d795cda34 + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 53200bc5d1f1fb0eeff02d2bc42f7d54 +Tag = 9d7317973878957e8fc1fa57a025a3e9 +Plaintext = a38231af405dc7b70c8dbc8cb84e6be8a0dc2e95fddc2ce8 +Ciphertext = e1bfb9812822f9d1f38ee14181532085c4e58ac732b057bd + +Cipher = aes-192-ccm +Key = d8a662ab8449bd037da0346a24565683a3bbbbd1800e3c1c +IV = 166fb8d0e110124c09013e0568 +AAD = 61e0e28bf344a9a1b04b15156e06498e +Tag = b0aa1befae96e71b9d221673844b1cb7 +Plaintext = a0d3a94ba6bb3bedf38220d1cba7e91273ad19f9a1c436c0 +Ciphertext = e2ee2165cec4058b0c817d1cf2baa27f1794bdab6ea84d95 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 03c2d22a3bb08bbb96b2811ce4b1110a83 +Tag = 2f9340b0d48a17ae1cc71d7515e61ee9 +Plaintext = 1bd3b5db392402790be16e8d0a715453928f17f3384c13a7 +Ciphertext = ad736402626df0f9393fe4491eb812725ad39d6facf20b5b + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = f390387610741d560325b5d2010d8cd4a0 +Tag = 717bae4c040561bcfcf80fd842ae8dd8 +Plaintext = c93aaa04279e451b6880ed7b7fdb3ca9e80ab76180434937 +Ciphertext = 7f9a7bdd7cd7b79b5a5e67bf6b127a8820563dfd14fd51cb + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 891d7988a56415a7b433f463b1e80eaa62 +Tag = bc9fb15d874feccb6b5f581fa470734f +Plaintext = 2611612ccb5ffefaa73195509bb52c641472bca0dfd09d49 +Ciphertext = 90b1b0f590160c7a95ef1f948f7c6a45dc2e363c4b6e85b5 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 831c0fed5e600dd82d7d55669262a9a17d +Tag = a72589ee50d23f925f7998ab3ccac37f +Plaintext = 08136e946e306cde0544ddc2f3f4a529c89c7b77a5e635c1 +Ciphertext = beb3bf4d35799e5e379a5706e73de30800c0f1eb31582d3d + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 32ca9d412d4ef0e89928496e96c9de7f2e +Tag = 55c0b608f331dca47c65f5c879f2d532 +Plaintext = 695aaac402942de7d899cc3f741c7fb2b2d8247a7676cf29 +Ciphertext = dffa7b1d59dddf67ea4746fb60d539937a84aee6e2c8d7d5 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 0746b2e6149c7f55854e9ca3e6861bf0e9 +Tag = b039bd916e923e2fc1f7c60eb59916fd +Plaintext = 8f958d796be0566512f0512dcebd2e12f3160b05b72ae955 +Ciphertext = 39355ca030a9a4e5202edbe9da7468333b4a81992394f1a9 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 0e4cbd1c574d656112bf6e70a8f23347f0 +Tag = ac07f2c0847069fe5be26e623033f532 +Plaintext = 367ecd1b71dfb96a84e2369f28705dfaebf0c73ed35d5364 +Ciphertext = 80de1cc22a964beab63cbc5b3cb91bdb23ac4da247e34b98 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 1a05ff12412bf728497536534c234901ce +Tag = f4e66a2b210e5a03bb10ff2926ed8a48 +Plaintext = a9ccee975feb10f635d548a8502f7c8b6adbd2be74117257 +Ciphertext = 1f6c3f4e04a2e276070bc26c44e63aaaa2875822e0af6aab + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = 3bd063a51c71fab5aeb47e7f8f958d796b +Tag = ec90169d0c5c11fff8f255fedb13a99a +Plaintext = 7df6220599d6235eb450989b6f0cd6c96db62b0d13afc4f4 +Ciphertext = cb56f3dcc29fd1de868e125f7bc590e8a5eaa1918711dc08 + +Cipher = aes-192-ccm +Key = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5 +IV = 924322a3ef0c64412f460a91b2 +AAD = f0d334e0a27c3d00d56b15c2ee426e6347 +Tag = 170141cf3f207c4f0fc1b0238477cfad +Plaintext = 6f65a24344c32debaf9f8c3fa426fe0b139e8ad1c8b1fbbb +Ciphertext = d9c5739a1f8adf6b9d4106fbb0efb82adbc2004d5c0fe347 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 68d199e8fced02b7aeba31aa94068a25d27a +Tag = 7e30b2bcc3f1ea9ec2b8f28bf0af4ecf +Plaintext = d7a954dae563b93385c02c82e0143b6c17ce3067d8b54120 +Ciphertext = c6cfaa1f54d041089bd81f89197e57a53b2880cefc3f9d87 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = fc4bbe329a86089ebe2a2f3320dad55a9bda +Tag = 3a6e6844102d6bb86986c030765d3393 +Plaintext = a206a1eb70a9d24bb5e72f314e7d91de074f59055653bdd2 +Ciphertext = b3605f2ec11a2a70abff1c3ab717fd172ba9e9ac72d96175 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = d8741e540330692d83cc806a8ac1c4742be6 +Tag = 3f92a80b1d82f8c1dc32bfe64adca12a +Plaintext = 56ef76dbec6b8b46f5b7b4e311c0baaa6fcf54c69c0b9c3b +Ciphertext = 4789881e5dd8737debaf87e8e8aad6634329e46fb881409c + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = c8b1992dfba55b4ab86b480546c861655e1a +Tag = 2fb48ad162b0c0678674d79d26a6b5ef +Plaintext = 2729636112f2abe2c76ea5e52a3f80b0f882f0f3b6f7c806 +Ciphertext = 364f9da4a34153d9d97696eed355ec79d464405a927d14a1 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 347e12eec56e95aafcc7d25bf10fc756b4e4 +Tag = 81c7cd81c974d985bf24b7fe9542141a +Plaintext = dd433eb7422c7c4dccee57a1679633ced3b5f08df763d457 +Ciphertext = cc25c072f39f8476d2f664aa9efc5f07ff534024d3e908f0 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 45b35a04d6e2645e9a5aef206ed4e36199c9 +Tag = a7f6a5c04e59896074e1594706ab27e9 +Plaintext = 70523bc397417e09d791a4976960e02636ca7144a5681cf7 +Ciphertext = 6134c50626f28632c989979c900a8cef1a2cc1ed81e2c050 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 378b48531fe34f55125b2f14f59715dd6ef0 +Tag = a9d16c3ab79276cff345444511940a9d +Plaintext = 514cb462dd4b117f26cac22062fcbeb353650c71649a7b3d +Ciphertext = 402a4aa76cf8e94438d2f12b9b96d27a7f83bcd84010a79a + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 73ed686d6fecdc031cd97653137f269d6537 +Tag = f92bf8aa6facbe6f9607ea02b54a1bf0 +Plaintext = 7f0c2b261db3f3de0ce3a733f4b8c446c374567d96d00379 +Ciphertext = 6e6ad5e3ac000be512fb94380dd2a88fef92e6d4b25adfde + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = 5b0441107e5560be94f030a41cedbdb116d9 +Tag = e4936ee93b5c7a302913292df33c1700 +Plaintext = ebb3e2ad7803508ba46e81e220b1cff33ea8381504110e9f +Ciphertext = fad51c68c9b0a8b0ba76b2e9d9dba33a124e88bc209bd238 + +Cipher = aes-192-ccm +Key = e67f3ba11282d61fe36e38cab7b559c2fd9cbe8bf7eb5863 +IV = a727ed373886dd872859b92ccd +AAD = feedcc5f8524fe7d49bcd178415b9f4c450a +Tag = 93426b6193afe765a76b3dec00266e69 +Plaintext = 3216dce3b8b1ce0e79e40fffcac728ab191aaaf319d971d3 +Ciphertext = 237022260902363567fc3cf433ad446235fc1a5a3d53ad74 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 36e15baafa0002efbb4bb26503b7e3b79f6c68 +Tag = b60a77b9d38740356b544b1c0f259086 +Plaintext = 344dc8b6bd66a1fbbe330a95af5dd2a8783dc264d6a9267d +Ciphertext = 43b3b96aa5a54378f3bb573ffda3e154aa7f425fc3008175 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 712b788f0276e2b5a58be80f9114a12ab2a268 +Tag = 5f750bb4cd42db3038e2c1622b72cea8 +Plaintext = 6d0546d4e95d1cfcb37a8f88a62064f5d95791311511535b +Ciphertext = 1afb3708f19efe7ffef2d222f4de57090b15110a00b8f453 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 07f77f114d7264a122a7e9db4fc8d091334a03 +Tag = 61e77b59ef7eeeae35bb53bb9543b64a +Plaintext = 05024ce13b9057dd2c509db7dbcbd5585e4e64a1e2e380ff +Ciphertext = 72fc3d3d2353b55e61d8c01d8935e6a48c0ce49af74a27f7 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 899b036138cee77cd28382ba27984d858a6351 +Tag = 44a60fdb473098a11b2176d37b2c4643 +Plaintext = 77b8e735b13b10e45e411ab94c6fe1a9eb89f0a7af40ff1a +Ciphertext = 004696e9a9f8f26713c947131e91d25539cb709cbae95812 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 4b000440a8484a5201cd54aec058919769772e +Tag = 58d4afc30a7f672ea34e05ec1843d848 +Plaintext = 6b21800ae599a15254bb33f0bb080788fb6e9fa054bfd8b2 +Ciphertext = 1cdff1d6fd5a43d119336e5ae9f63474292c1f9b41167fba + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 73a222e681ed1ca47d92a6dd90625d895fbf29 +Tag = 4ef270e0f3b5e3ca0b8440af65c76e85 +Plaintext = bfa9d9af6e1f32b6626a1cd89b1c32513b5b50a18ddab028 +Ciphertext = c857a87376dcd0352fe24172c9e201ade919d09a98731720 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 7109a3a36b286059bc1a1abb2767c92f884e3f +Tag = ffb66991b38a0345fbbff5f2362f87de +Plaintext = c68b1bc0050e19780ab53efbea175634f70a7245d966966e +Ciphertext = b1756a1c1dcdfbfb473d6351b8e965c82548f27ecccf3166 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = cd15973753b94b77bb4b778de8b3b0cabbde85 +Tag = d033a087c44c2e44adbeb333aa9ded10 +Plaintext = 4256f1c9b64390fe2120df9fd38e497c2903c2ca5679ab75 +Ciphertext = 35a88015ae80727d6ca8823581707a80fb4142f143d00c7d + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = 6e5e0793855f7145e13a5872f563e5ec61cfd2 +Tag = ff9c8713422fe38d5bbf2dedccbffe10 +Plaintext = bb0036b34b0c20094d335a8c74f6b3dea42eeccf4145192e +Ciphertext = ccfe476f53cfc28a00bb072626088022766c6cf454ecbe26 + +Cipher = aes-192-ccm +Key = e0a29a2c7840cf9b41de49780b9ee92d646a4bfc5b9da74a +IV = fc9fd876b1edded09f70b18824 +AAD = f844684f5404e7d8eedfa20394b40b4f5d910a +Tag = e75de56eabcf8e02c1a27705adef2732 +Plaintext = 86afa9cdd743916563ebfd3adbdd56e015ea3a4ebc61cfe2 +Ciphertext = f151d811cf8073e62e63a0908923651cc7a8ba75a9c868ea + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 093ed26ada5628cfb8cfc1391526b3bcc4af97d9 +Tag = 6ca0e07e04674f21a46df2659a5905fb +Plaintext = 37ab2a0b7b69942278e21032fc83eba6cdc34f5285a8b711 +Ciphertext = a3a60b422eb070b499cf6da0a404b13a05cedda549c6b93e + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 7df13c9d2247aa40af7bbe2da98bd366d8b47b43 +Tag = 836597806f5da1d176c745d95c4fa46a +Plaintext = 93925579b6367ff592ecbd59495fdeccb50f31ea4fa390bc +Ciphertext = 079f7430e3ef9b6373c1c0cb11d884507d02a31d83cd9e93 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 7f369bbc99b6f08049eeb43566269a174829d4dd +Tag = f826dda99111691993027628c70ff6ae +Plaintext = 8363aef9c7c34e1f8149de46c97d5ac79d38c6ed31ab1d12 +Ciphertext = 176e8fb0921aaa896064a3d491fa005b5535541afdc5133d + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 04aa8442179f62babad0c006e36af0c21105f27a +Tag = d074b018143a7ea1b5369b7f80eae20d +Plaintext = 17281acb525b13653000ab45d86e70106c10a93c99b18f76 +Ciphertext = 83253b820782f7f3d12dd6d780e92a8ca41d3bcb55df8159 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 997e646014f19a53beab8877ca6022bef23016f1 +Tag = 5db17d3f75214c3cf39858617cfee57a +Plaintext = 5d48a71557608736eded309027a80349a18e9ce5dee2bc6a +Ciphertext = c945865c02b963a00cc04d027f2f59d569830e12128cb245 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 60ffcb23d6b88e485b920af81d1083f6291d06ac +Tag = 9550998376e61e11a5a69e9f8fe1c329 +Plaintext = 6c9d11cfb64d96bfab61c04a25d9e19294fb7330fb4847c8 +Ciphertext = f8903086e39472294a4cbdd87d5ebb0e5cf6e1c7372649e7 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = d574632658bf456dfbb11c2653602ed0f4dae777 +Tag = a1b0d05a7ebc657c3235479893bf7e5d +Plaintext = 7d41688c86d5e3bc53966810f2299fdd732e3471fb0a88f9 +Ciphertext = e94c49c5d30c072ab2bb1582aaaec541bb23a686376486d6 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = d896ed60128f4bb0277d3af94c5138cf91697aa9 +Tag = 80c98c8959c158ce209aebcbd554f250 +Plaintext = 8c7ae2c3c503e9072d6e04e44c2ea78fd24994503567a136 +Ciphertext = 1877c38a90da0d91cc43797614a9fd131a4406a7f909af19 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = a350ed58c04473e113b9088b1fb9dad92807f6b6 +Tag = 573175f9105cd16ee384465ebb232200 +Plaintext = 49bc9d3bcf3c22daa8cf55c1b59d4bffddc2412d60518e98 +Ciphertext = ddb1bc729ae5c64c49e22853ed1a116315cfd3daac3f80b7 + +Cipher = aes-192-ccm +Key = 26d0a3a8509d97f81379d21981fe1a02c579121ab7356ca0 +IV = 8015c0f07a7acd4b1cbdd21b54 +AAD = 1db5887001204194e8b5dcee92c8af8fa5f7321f +Tag = 2b67e993384f2e7229d1838efd040d99 +Plaintext = 25f3788e0d3dd8f5821faa4e45a9d6b3995fd881f927135c +Ciphertext = b1fe59c758e43c636332d7dc1d2e8c2f51524a7635491d73 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = 796e55fbe7bed46d025599c258964a99574c523f6a +Tag = 003c0c3b7369e79339433e1754c0937f +Plaintext = e8610756528f75607b83926597ef515f4b32a8386437e6d4 +Ciphertext = e0a3d5f43e688ce104f4ae1a4fcd85500aa6b8fdbcd1b8d3 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = 5170836711fcb1a350b087907d8a17c7637aa1595b +Tag = 120a7f18d021833b167bf330c4858239 +Plaintext = c61b0c1845fa9b2e0013b3fa9a8cb4f4fbbc6846f63ed180 +Ciphertext = ced9deba291d62af7f648f8542ae60fbba2878832ed88f87 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = 2a68e3fe746f593c1b97cb637079c3e5ee352c107a +Tag = ca9698d9a88e892c364e57dd35c2f17a +Plaintext = 10c654c78a9e3c0628f004b061e28c39a3c23e7250f53615 +Ciphertext = 18048665e679c587578738cfb9c05836e2562eb788136812 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = bf38ca0e89b8f5ccd29387f7f193ab5a967caa715b +Tag = f3839d6f7e20a2e343f4c4da9eb9be13 +Plaintext = fa3a959fdff853c39f76da626094a1ea6dbc78bd2f091a79 +Ciphertext = f2f8473db31faa42e001e61db8b675e52c286878f7ef447e + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = bee00f2f75a4415ce993d2d14a6d8e01d1d59a48f6 +Tag = 6630bfb7a2a2441e020efdf36274b72f +Plaintext = 76d12e3c4c5d990bf563c60aa4999e52998d887f97477f6d +Ciphertext = 7e13fc9e20ba608a8a14fa757cbb4a5dd81998ba4fa1216a + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = d5b614e4e8f72a5d8b1ec2b375da5dac64c2cc30b1 +Tag = 866bcee343ec5aae61f9effa19b99d3b +Plaintext = 693fae7af84aa397f0b2baaed9b3c7953f75e7424c49b634 +Ciphertext = 61fd7cd894ad5a168fc586d10191139a7ee1f78794afe833 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = 33f11aa36d8ab0fc53486839a576b31ee915dbd769 +Tag = 0331b60eb252f744a06b4a95aa9f4e7c +Plaintext = 56ce9a09f38127b14dbbdcaa59f363c92a3b9843ad20e2b7 +Ciphertext = 5e0c48ab9f66de3032cce0d581d1b7c66baf888675c6bcb0 + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = f40bce1a6817b29b9e8b56f214fcca7dfde17e7ee6 +Tag = 4153778a644cb2469cef3ad125e257bc +Plaintext = 5cd8986e974d09ede34ba68fd81d6109a64092e7fbbaf87d +Ciphertext = 541a4accfbaaf06c9c3c9af0003fb506e7d48222235ca67a + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = 53c457d8d4d4ab95ba116c28b82c16743cb09de9fe +Tag = 7013e1c34dbc5efc7bcd4f8e52797644 +Plaintext = 9c3c610f204d98702dd91ea28e0cc14830b26bb5e2ee0349 +Ciphertext = 94feb3ad4caa61f152ae22dd562e154771267b703a085d4e + +Cipher = aes-192-ccm +Key = aac60835c309d837aacc635931af95702a4784c214283ebb +IV = 0e20602d4dc38baa1ebf94ded5 +AAD = c7acf1b17609dc336df1006ffac6497777cdfd497c +Tag = 66aed667c761b7dea44822e30cff671f +Plaintext = 90c5dd9db0316dac89db18f70491bdf0a06a6a7f72b77d9a +Ciphertext = 98070f3fdcd6942df6ac2488dcb369ffe1fe7abaaa51239d + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 61dafc237cb52f83ab773ba8a885462b6f77d4924611 +Tag = 1bb089af0245792c16e6320cf5ffa19e +Plaintext = 576b069ae2713f53d2924c1fd68f786cb2eec68892f9e1be +Ciphertext = ce06b3d09b02921f290544032a081a776661294004886728 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 87e49b8164e7052becfa0c966991637b38df833fc5f7 +Tag = 3cec29bd5df92363d6bb75456f5cd32b +Plaintext = d7eb0d7dd737805cd3b8dbf451aeea2fa1f6a96eb58cb428 +Ciphertext = 4e86b837ae442d10282fd3e8ad298834757946a623fd32be + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = d302a518d7c625756d3e4c8cc2b1d973a19107c945fc +Tag = 01ca82cddb78a2fe3904d1d8bf6fe5b2 +Plaintext = 77d8c9e6321314524afd05b7ad599c29f4eedda9e9f0763f +Ciphertext = eeb57cac4b60b91eb16a0dab51defe32206132617f81f0a9 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 6566bb616a94bb03df5c26b722bcd38d516285c5f6c1 +Tag = d095ad121f0f76f07b715cad996def52 +Plaintext = abbf28b3ae164051648293d0b94e11f5af8468450005c7c0 +Ciphertext = 32d29df9d765ed1d9f159bcc45c973ee7b0b878d96744156 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 141be3601e38185a9fa1596d2ee406415c9673af32f5 +Tag = 8529ec8f477462dc2409482c3479756d +Plaintext = b67d50110f844b36a00d352123012a1123c7c3cba959dc48 +Ciphertext = 2f10e55b76f7e67a5b9a3d3ddf86480af7482c033f285ade + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = a2969243b0955402ab45a430fef2ef9e0c025006732b +Tag = b14fe8dbb3c361ea61d7b44e689a1c48 +Plaintext = 2a63f7b09b43fee65738e8115bd8419b3ef3e8f86eca707f +Ciphertext = b30e42fae23053aaacafe00da75f2380ea7c0730f8bbf6e9 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 87faef55c54250c30232ccaf5efa1ff41b6243b2a5bc +Tag = 54f0659fae291f943f2f3b33688602cb +Plaintext = 59dad755af92c29522da4348ab9b3037fe87004f5fa1394a +Ciphertext = c0b7621fd6e16fd9d94d4b54571c522c2a08ef87c9d0bfdc + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 5d895fb949344e603ce5de029842b20d2bb614ecbbb8 +Tag = 3af4e3a7a20390a8da264299712a34e3 +Plaintext = 64d8bd3c646f76dc6ce89defd40777fe17316729e22ba90f +Ciphertext = fdb508761d1cdb90977f95f3288015e5c3be88e1745a2f99 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 74cc8da150b0bacdefa8943900b4ea047611d96be70a +Tag = a7f79d2b5a9bde5bd453bc8a03e971d8 +Plaintext = 0c3c9a634a000f00be003846eac7482e303a5bef3a70fe75 +Ciphertext = 95512f293373a24c4597305a16402a35e4b5b427ac0178e3 + +Cipher = aes-192-ccm +Key = 671544bf2988056f7f9ccd526861391a27233793a23f811f +IV = 0a259148a1d081e0df381ecd0c +AAD = 65f6adbaaa803dbad5ba9cb6d231314d55147cc61399 +Tag = ffccebfb8c833833db40e98a1950fb70 +Plaintext = 712c788928c8a1562bc1f3f0eb1286e15c3405f6a6fa0443 +Ciphertext = e841cdc351bb0c1ad056fbec1795e4fa88bbea3e308b82d5 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = f5629ca0eea589f6cf963d875a7d2efb656983f2dd2231 +Tag = f7ec84dd992fdf98514f845dac8f656e +Plaintext = 44dd098b1f869d670a8a841900c4bef023a1946a0c278354 +Ciphertext = 6b38ca85450e05e7b9362ed7e6e291a130ff233b5a561cde + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = d43d7753530a7280b76221906dca85d396b6cf05125018 +Tag = 3613ed15d527d9dc58ab6893e723db58 +Plaintext = cea19562328bd1fea889f575db6a28a14b7d06fb9f9c98bb +Ciphertext = e144566c6803497e1b355fbb3d4c07f05823b1aac9ed0731 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 75650ce366757618af20205b69af7e5d4e82c398c00101 +Tag = ef8728d1bf3a2d93db3266bafadb7c26 +Plaintext = f0641f595b791edd860977fcf699688587a354e053e9c7fe +Ciphertext = df81dc5701f1865d35b5dd3210bf47d494fde3b105985874 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = c00f1b8066677c63e898fddfb8a1b482b536963da0628d +Tag = a5bce94d7564d297fe87730f1a36acf4 +Plaintext = c7486a084f8475e6f5138e8d6e9f42a1de90f05aa88a362d +Ciphertext = e8ada906150ced6646af244388b96df0cdce470bfefba9a7 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 5a89ab6b26b2ca78f98a8f8409fe8008b97ba9ef185d41 +Tag = cd971b07fc14c512b8df6dd964b129d0 +Plaintext = 091ef698e16dc43a11d3ea005d5a5cdb7f1bdb5665a6c81e +Ciphertext = 26fb3596bbe55cbaa26f40cebb7c738a6c456c0733d75794 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 5d24d80f22afe713c4076c200c1bab36917907fde7b6d3 +Tag = a192b781dc94448d4a0f6a439a716339 +Plaintext = 62f204394b367c4410746001e02dfd171858396568fdd43b +Ciphertext = 4d17c73711bee4c4a3c8cacf060bd2460b068e343e8c4bb1 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 4a47a82b999a2a739959f153a091a65c4d7387646da66b +Tag = cade9533b272e0a3edeba68362b057b4 +Plaintext = ac1cd5ba4997af91dbd74aee7730f9ee92cf8a360ca96a8a +Ciphertext = 83f916b4131f3711686be0209116d6bf81913d675ad8f500 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = d9fc295082e8f48569eb073ac1b9566246728fc62ccaab +Tag = 5d68df8ff28345be4d83541a72071059 +Plaintext = d0a249a97b5f1486721a50d4c4ab3f5d674a0e29925d5bf2 +Ciphertext = ff478aa721d78c06c1a6fa1a228d100c7414b978c42cc478 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 720a9dc3e33ac080775a06f67f4a6591c37d0e101944a0 +Tag = caa7ec8892be6a18458c663665495035 +Plaintext = 77fb98f24172f5d5edadbf466ee910855a71d46090b789ee +Ciphertext = 581e5bfc1bfa6d555e11158888cf3fd4492f6331c6c61664 + +Cipher = aes-192-ccm +Key = 90e2c63b6e5394b1aeec03f95a9d13a01a7d4e9d58610786 +IV = dada5465eb9b7229807a39e557 +AAD = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903 +Tag = 862fda880e45e891a3a50da7e14344c8 +Plaintext = 77fb98f24172f5d5edadbf466ee910855a71d46090b789ee +Ciphertext = 581e5bfc1bfa6d555e11158888cf3fd4492f6331c6c61664 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = ad6622279832502839a82348486d42e9b38626e8f06317c4 +Tag = 5623d15b24184481eadc63bb8c878fc4 +Plaintext = d7c837971b973f5f651102bf8d032e7dcd10e306739a0d6c +Ciphertext = 4709600418f2839841e6d126359f6982bdb53acc7ff20963 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = ad4833aa53218949cfd724814a43889a74a2114bbef4cf37 +Tag = 614c3e546273f0aeef207bd3f4d32fca +Plaintext = 7d672bccd0fb01ce79320ed61779146aa432038daa13cb41 +Ciphertext = eda67c5fd39ebd095dc5dd4fafe55395d497da47a67bcf4e + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 54a723826086c7175e8fdc854b62d780de6ac1f90b57dd3a +Tag = 13c6395ce9aee2e22ac0606beb140185 +Plaintext = 0e1b73df74982f535a5fb08bc13d22515ee10969efe033bb +Ciphertext = 9eda244c77fd93947ea8631279a165ae2e44d0a3e38837b4 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = bec02d7df4cc3deefdd7e7d3ea82d381c870ad46bc06d64f +Tag = 61e4f02150bedd86dfa49f52b214239d +Plaintext = 9a55aff269b180118ff0ea99e851c7474d19d23e641f16a9 +Ciphertext = 0a94f8616ad43cd6ab07390050cd80b83dbc0bf4687712a6 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 1b8090d712e0ec95a01bc3aeb6f5230c67c355e0ed68043a +Tag = f0e82b9f04bfc0cc0ba432b5135450c2 +Plaintext = ff19294e8faed8353dbcab0b146e2ef928dd2680833424bd +Ciphertext = 6fd87edd8ccb64f2194b7892acf269065878ff4a8f5c20b2 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 5ed0b9f25d07b26717cdcb2507bef9d681ecd9389831ac15 +Tag = 2e64c82b60880c5c7506321a1060a481 +Plaintext = db1eba6ac4a79aa1d97838d263c7c4ffa7d354770e762805 +Ciphertext = 4bdfedf9c7c22666fd8feb4bdb5b8300d7768dbd021e2c0a + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 55f16fefaf2168aebc61b5e01d9e1f7bfe215eaaef118974 +Tag = 7152f64dc993b36ad9d5d12bb52b1ad5 +Plaintext = 012d45168505ca9fde5aed123875639a207d473b993dc7b8 +Ciphertext = 91ec128586607658faad3e8b80e9246550d89ef19555c3b7 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 9893bf14fd3a86c418a35c5667e642d5998507e396596c50 +Tag = 3e5c69256b6326ebb7ee6e677d396765 +Plaintext = b205f26d6c8a8d6085ab28d595703cae046f96d82093082b +Ciphertext = 22c4a5fe6fef31a7a15cfb4c2dec7b5174ca4f122cfb0c24 + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 244b840085bda9576c8424bb05a925a6b09cad2d0528ab8d +Tag = 2083dac565c7a63908f0022e2867bb68 +Plaintext = 549ba26a299391538b56ce4bd71dbbfd96995836f8915ca5 +Ciphertext = c45af5f92af62d94afa11dd26f81fc02e63c81fcf4f958aa + +Cipher = aes-192-ccm +Key = 13cdaaa4f5721c6d7e709cc048063cfb8b9d92e6425903e6 +IV = f97b532259babac5322e9d9a79 +AAD = 9e8d492c304cf6ad59102bca0e0b23620338c15fc9ecd1e9 +Tag = 68242fe32958ea32e670ae1b3543974f +Plaintext = 9e9dbd78a1066800ae33253be6104015158a0187e4f38116 +Ciphertext = 0e5ceaeba263d4c78ac4f6a25e8c07ea652fd84de89b8519 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 69a9dd9ac8be489c3a3f7f070bdaca10699171f66ab3da9351 +Tag = 46c7246bd3130803bf8d703ef5bdf15c +Plaintext = ba1785a149cb8b69a4e011c11a3ff06f6d7218f525ac81b5 +Ciphertext = 89ab2efefa8406336d9e2245199fbc9454f0ef650b9ed0f4 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 0c39a72f0f38d2713c164b0f870646fc65b9838a322ecfddd0 +Tag = 096a6a4422e582c5d02973952ac80e5f +Plaintext = 263dc4fb5cd8798ce0f183a816e51fafba167533dde1bf96 +Ciphertext = 15816fa4ef97f4d6298fb02c15455354839482a3f3d3eed7 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 911d9f5c4c34c2f4b69be1e253d43fe729e2ab2622130394b1 +Tag = 5965f6df4332fe7a2cdc4d1b80e28a34 +Plaintext = 7b5da2c283116713f3d80c7907114270964541e03ab80d50 +Ciphertext = 48e1099d305eea493aa63ffd04b10e8bafc7b670148a5c11 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 8a961df9c23f6d5ecdafa94c61164a22f460a1bf7415258d39 +Tag = 18bed174081b2170ffc6ab53b54c9ddb +Plaintext = 541a2b3ee25022c92fdc6783a6cbde90680ad3dc41868e5f +Ciphertext = 67a68061511faf93e6a25407a56b926b5188244c6fb4df1e + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = cac7a248a4d4e96a9733627e247234995d6aa57e491498118a +Tag = bac3d3a2b9ef6d4c8715f9a5c6fe8245 +Plaintext = ebb2e893da9f32c363f98bc76fd14eda59e7cc620070f6d3 +Ciphertext = d80e43cc69d0bf99aa87b8436c71022160653bf22e42a792 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 41eacf70d05a6d0cdbdd38f197a52987def8fde37f332eebd9 +Tag = 7f9610c82fe9a7c78e8f1980e886b446 +Plaintext = 199cca0d0e1c70ec405d6816cbddc69f8ada624f2c168891 +Ciphertext = 2a206152bd53fdb689235b92c87d8a64b35895df0224d9d0 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 78b6ed20ed85337c969618bd41917cd85c37e7c35c3a12e25f +Tag = aab366637ec41d0bf557f578be424a8b +Plaintext = ca481f557306f9ce386edd0cfde375a550cb5b574be524f7 +Ciphertext = f9f4b40ac0497494f110ee88fe43395e6949acc765d775b6 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 87faef55c54250c30232ccaf5efa1ff41b6243b2a5bc93e7cf +Tag = e57a5b3ae26469d229425f887ad5a2a1 +Plaintext = 6f1b4ff66d3aec7b0c0d9e202acc52722e15bca0983291e0 +Ciphertext = 5ca7e4a9de756121c573ada4296c1e8917974b30b600c0a1 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 7f19ac3e53a629a2df1cb56d68fde0c80a46be40a996830e2a +Tag = 6ce4fe492062f74bff4c3c0e9ea849a4 +Plaintext = 7533c88ce55c2243b64b6c5bd01aed4dd6ac8bb9fd333e06 +Ciphertext = 468f63d35613af197f355fdfd3baa1b6ef2e7c29d3016f47 + +Cipher = aes-192-ccm +Key = 90851933d4d3257137984cdb9cba2ca737322dac4dbd64bc +IV = be02df3a840322df8d448c600c +AAD = 0516a69bfd8785ad001367b51e5410b75c11b761be08b9eea5 +Tag = ad47ffc17b871f530f62b9f9aec98509 +Plaintext = 19ea09a9bfd10db2a74e398859d8f4831fa5749767773acf +Ciphertext = 2a56a2f60c9e80e86e300a0c5a78b8782627830749456b8e + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 09fc21ac4a1f43de29621cacf3ad84e055c6b220721af7ce33bb +Tag = 101a34c777e918e16186fda05a386572 +Plaintext = b4da43ebfe9396b68f4689fba8837c68d0064841c6ddd4a7 +Ciphertext = d40725397229021a18f3481e3a85f70445557bb2a85e4ae8 + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 10f0c45d06a138a964fb11b2d450620a2977bcd2952afe371cad +Tag = c1e79234882846d916dabae40b1bd055 +Plaintext = 7b628930d44e22907277db057395601b82b65479fbd59613 +Ciphertext = 1bbfefe258f4b63ce5c21ae0e193eb7717e5678a9556085c + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 64dbb170a037b36beed28a2637c87830e2b23f8eea6cd9a7331c +Tag = e35499e3c09dc384eb41344ee8be3769 +Plaintext = 9db30b669fc5d25f05e0dc708d597da6ddce2dacc85ae99c +Ciphertext = fd6e6db4137f46f392551d951f5ff6ca489d1e5fa6d977d3 + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = c47de6608546a02c6eebd6628c9123f6936c0154d3df52a367e5 +Tag = d605189608ce40b237dde7bed6fde487 +Plaintext = 62036cbed3666d85624d3dc9c1f437454b9ab5c03ce0de92 +Ciphertext = 02de0a6c5fdcf929f5f8fc2c53f2bc29dec98633526340dd + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = bab7e36098d59d3a31d7784d549aebfc6938bbd0612c85c0edb7 +Tag = c31f69c847440be20bd08cfef330002f +Plaintext = 5c9bc739f6b6fe4214f3c6aad307d1f208892d79de010e37 +Ciphertext = 3c46a1eb7a0c6aee8346074f41015a9e9dda1e8ab0829078 + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 8a9716135fa38c250e249f6712f7cb3ad9210d7278b53d599df9 +Tag = ca83622b127fa50fc9637998c0ddd44d +Plaintext = 0df109298083d3896214b84ff6edb11e9cfdbd88f5702839 +Ciphertext = 6d2c6ffb0c394725f5a179aa64eb3a7209ae8e7b9bf3b676 + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 2d52447d1244d2ebc28650e7b05654bad35b3a68eedc7f851530 +Tag = 81e738b9e4b0dc7b7a39eb7d03adc64a +Plaintext = 518f651f6d82f670b63767ad8476ed8fc24df12a45110611 +Ciphertext = 315203cde13862dc2182a648167066e3571ec2d92b92985e + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 3cba0fd2bb16ae1d997cbe659a2dd101885c97f2322b0172b5d6 +Tag = d298c05b1d2e597f44f8621ecd11ed16 +Plaintext = e91a694bea2d351928b6098660d49f382c087f6777de159c +Ciphertext = 89c70f996697a1b5bf03c863f2d21454b95b4c94195d8bd3 + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = c7f93152016bba584dadc6002ec493a46305726068886d2340da +Tag = 5fd5221fceecbf0dc7211a1aec06793a +Plaintext = 2d14792ed349a878b2b879e7fa5f438a50e36947ce827e73 +Ciphertext = 4dc91ffc5ff33cd4250db8026859c8e6c5b05ab4a001e03c + +Cipher = aes-192-ccm +Key = 5c5d02c93faa74a848e5046fc52f236049e28cd8096dcac6 +IV = 54cbf2889437673b8875a0f567 +AAD = 799cac048eaccded37ca6a70dd89595e1ee04606212da5572679 +Tag = 5c25f00b862b49fcfe8447949f39787c +Plaintext = 315b8d95938d304015bbc94ea03c21f6dc25c90f991ba680 +Ciphertext = 5186eb471f37a4ec820e08ab323aaa9a4976fafcf79838cf + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = c37fdf7449fd7e943595d75e977089c623be0a3926e63fdbbfdf4a +Tag = a461f44dac1112ae3f9c65671a931d3e +Plaintext = 0f960a89a7e806f8709047cb7a2e7c4211ad724692c88a05 +Ciphertext = 3907880d25f910eab12dd14e704d1b33ea7c453634d54da2 + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb99 +Tag = ed15db6e142ee07b59eb5b0ad3a59194 +Plaintext = ab40a4baa39b0e568bf2193fecbc36b84c76bb50523b2912 +Ciphertext = 9dd1263e218a18444a4f8fbae6df51c9b7a78c20f426eeb5 + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 79ae14843b2e7ccf0fd85218184f7844fbb35e934476841b056b3a +Tag = 203f11f66b74366caeca8dbded2bf17a +Plaintext = b74c06d9077c568762796d5be14f3563e7205a6e9bc65bcb +Ciphertext = 81dd845d856d4095a3c4fbdeeb2c52121cf16d1e3ddb9c6c + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 542d86fd7ff591f97e6926a090553538bc3b8a6bcd45f2e29c7d9f +Tag = ed925fb9a4cf6b6bf17f72ab044653d1 +Plaintext = f2179beb5635a6d8a8340acea0ffcf4428e5de1306a8c12b +Ciphertext = c486196fd424b0ca69899c4baa9ca835d334e963a0b5068c + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 4392c3043287dd096b43b4a37ea7f5dc1d298b0623ccbf4fd650a4 +Tag = d1f677deca1bfda83c1b9223aaaedbfc +Plaintext = d1a9e4593bc3d02c407e84a1736e587c1819c72195a07d57 +Ciphertext = e73866ddb9d2c63e81c31224790d3f0de3c8f05133bdbaf0 + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 966954582e78e99ba68d6ffaf794b55a82325834ec4f373b2bd227 +Tag = 12937871932a7ca3e1e27a90a7f73694 +Plaintext = 15b94910853a8f23dfb8b31c0262b8461f777075cc0937e9 +Ciphertext = 2328cb94072b99311e0525990801df37e4a647056a14f04e + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = b7aca715dcc402565cb711b001f21e8e95ec54c4afab2e2dcc8a2f +Tag = a0464ff4ddeccbd523a5ed3b32337f7c +Plaintext = fd1681cc306518bf77766f55226afac3eb21e31ed897075c +Ciphertext = cb870348b2740eadb6cbf9d028099db210f0d46e7e8ac0fb + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = 290a36f7daeeeafca4431446b396dbec0bea0a1f6f081418811656 +Tag = 2f68ed5e44a71c5ba8bade07b7bf5495 +Plaintext = 0804fa48fc76f98bb021e3501bef8875b64a3b508adf8594 +Ciphertext = 3e9578cc7e67ef99719c75d5118cef044d9b0c202cc24233 + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = f0739a855422310a21ed863376bce9d75dc7c687b9b535cb7a05cc +Tag = 3b5dc1fbe32743e257b7c1c9d624adc8 +Plaintext = 4f5c6d80a3955f12f4d2594e02a045c42fabb11d90817fff +Ciphertext = 79cdef0421844900356fcfcb08c322b5d47a866d369cb858 + +Cipher = aes-192-ccm +Key = 0234dae5bd7ae66c67ff0c1a3f1a191a0d7bceb451bc2b7d +IV = 16d345606a315ad2406abbcb43 +AAD = ffac0edb0b62977bb5040e4128a48deaf711f5e6a84d8f677341f3 +Tag = e53b654de1976294897cae0476ac6248 +Plaintext = 5c29c458212d010a0d9c5a547aba1138eb4ce94742fef01e +Ciphertext = 6ab846dca33c1718cc21ccd170d97649109dde37e4e337b9 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = 511c6924fa96db716f6b053b7a48aebdc1504145a56cd02d6be2590d +Tag = 82c560fede4741e2fd3b54b3a48f3e38 +Plaintext = 0c0663dd69ccbffbbd0c8c2e9473d0354451ae7a20fa3695 +Ciphertext = 19f2745df5007619c79c84d174e4521b942776478a0601d9 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = d9ccd93317441e9d6ccc358f31e7e2ccef8c921b23d742993eff9d53 +Tag = ee82d927a2aa678e792acdeb615409f8 +Plaintext = 34a882834172924d39d2df5d637d9d273a99a9222971701c +Ciphertext = 215c9503ddbe5baf4342d7a283ea1f09eaef711f838d4750 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = c268d65f7a7b30d3d198b2045fc8d1db7adda56604fa567d8855d1a5 +Tag = 7a48226389d24ed3ec3da2da1a9bdf7c +Plaintext = 5b7450b73d68de079e92bba56c7860f11126b8fdedd3334d +Ciphertext = 4e804737a1a417e5e402b35a8cefe2dfc15060c0472f0401 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = 4c2b6815156f0643b4573825e28b9f2a668a4976e3342884f48bc310 +Tag = 16fe6bd83993ccbdd50e1ca061f4845f +Plaintext = 140c6933248f052e05bd4a36aec185ee86730108cc2989b6 +Ciphertext = 01f87eb3b843cccc7f2d42c94e5607c05605d93566d5befa + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = f11c873354b3c0cff2c8f8010e9e364582b9c05c62efdefbdcc2e1c0 +Tag = 577c5893cb3896400012e48f5b190b73 +Plaintext = 2a083de317380d94dd991349a7b8761c7c98013b1b0227e0 +Ciphertext = 3ffc2a638bf4c476a7091bb6472ff432aceed906b1fe10ac + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = d0a056754098d7f7ef2f639d61ea3d2b9cc936c48a1b2c5a9e96d169 +Tag = 80c80101fdfe6dc4cfce080bf921582e +Plaintext = 02769283d5a06c363c2cc66c09b1ac954134e3ec7df773f2 +Ciphertext = 17828503496ca5d446bcce93e9262ebb91423bd1d70b44be + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = 56de0e55653b9a04a3ded71c31f8807c3c8dd96bc82892e4acccef30 +Tag = 122dfc20e3088dcd33b6706a0c1fdfa8 +Plaintext = 4890404bc5b24822b4cf7a2fe28abc52fbefb919ae0629ec +Ciphertext = 5d6457cb597e81c0ce5f72d0021d3e7c2b99612404fa1ea0 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = 794a86f5b20d344ad86fd5523d08f1864737be57731440c29aa6b425 +Tag = 28f0a78ce798448529afe26eec875aa6 +Plaintext = 161f8501f59338f72026815c77cad6d8d581859192cd5644 +Ciphertext = 03eb9281695ff1155ab689a3975d54f605f75dac38316108 + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = b1eafc03ea2fa3e9e3842a09a225e83055de8a1f412badd6fc9ead12 +Tag = a48856a266c0d404474316f418f8f4e4 +Plaintext = b3f38aedbf08dd7ead9d402c5aaa1ec9279c7e4bfd4a2967 +Ciphertext = a6079d6d23c4149cd70d48d3ba3d9ce7f7eaa67657b61e2b + +Cipher = aes-192-ccm +Key = 6351a67fd6daabd2fd49ee944dd41dd37301f958dd17fcc3 +IV = b8d517b033754058128d13d11a +AAD = 8fec99f1be0e69267620c0b934bf984d60c1437f74c6ac19610fe188 +Tag = 6412292d8015285efaa6f1154580eb57 +Plaintext = 5c09e2a6a055fe9c21e06e5519cf56b8e2e7fb44094e79f9 +Ciphertext = 49fdf5263c99377e5b7066aaf958d49632912379a3b24eb5 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = c95a86d52088a8b0107cc5b437a8938b2c9e74e46e2e03bb9bceecdbe3 +Tag = 811020480e834f6fe55900a162a4e61a +Plaintext = 5bbe9c1fb2563e3e82999fe097b28da4dc6ff2e020f3b4f3 +Ciphertext = 6d5401db42b5c48b79203b6ad82806d7460ac4c82ad0809b + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193dfa755a5943 +Tag = ba9827513c7f1de970d316b6f81c109d +Plaintext = 8a85a9b32a323c6af156a3fa2f1448b6387cc3660aa8a0f4 +Ciphertext = bc6f3477dad1c6df0aef0770608ec3c5a219f54e008b949c + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = c834096e059ea73ddc90b0c982f9a3a31bfc6b1b81a03f9d41c9c741e7 +Tag = c9d79dd3255a8323f8229ac1c6d76ae4 +Plaintext = 1e02c13104937fe084b18eba1ea8951dcc5e75b692937dea +Ciphertext = 28e85cf5f47085557f082a3051321e6e563b439e98b04982 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 9249022bdead3d86ef5bd03acf053132d08663ba1f2426e19c126b22e9 +Tag = 425dc81f93257ae8399fc2d48b4a7685 +Plaintext = 3225570fb15ae13a13c71e364ae9a9fef03d1c9a7fa5dfa0 +Ciphertext = 04cfcacb41b91b8fe87ebabc0573228d6a582ab27586ebc8 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 3c3a92c4ece49fb9f84243d7c1bc91f595fce118305a758c83985c34b4 +Tag = b595003c58e69600c2a3b9ec45c0e15a +Plaintext = fa0a458174537ddba25708b8d0c22d5517d57b122517b0c9 +Ciphertext = cce0d84584b0876e59eeac329f58a6268db04d3a2f3484a1 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = b49b845ccf76acf508f9db8543c73375d530d91f3b0e4ed70decfd2c2d +Tag = 0da009261c43c6640303696655e2981f +Plaintext = b7fbdaeaa3ee1d0bbf5ec47898b069ec4ba6a140a3e83996 +Ciphertext = 8111472e530de7be44e760f2d72ae29fd1c39768a9cb0dfe + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 3aabdf589eeb1709bb3d60b08bc71eaa3ffeba4e2903a5dbd8339aae85 +Tag = dfdcdbd4ad711c493d3176f032a02af0 +Plaintext = 9aea86b9fbd9bd4504ee2e25054942b33d3cdbd84215db7e +Ciphertext = ac001b7d0b3a47f0ff578aaf4ad3c9c0a759edf04836ef16 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 6a79879cd62bd1dbf9609897d2ebf2dc4dda43cc15fcb241aaa0deb4b3 +Tag = fd59b45c05873c670f5f8bb47732d59f +Plaintext = 3a861638ccd6591e51e2a525be59447e4a28bab32e36a5f3 +Ciphertext = 0c6c8bfc3c35a3abaa5b01aff1c3cf0dd04d8c9b2415919b + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = c5b6ca474eb251817ae4d2f47c0632c381e222aae3b6f585a0dcae120a +Tag = 1572a24bc00b40a6b4b172b3648142e7 +Plaintext = c7da4e9ba6e5758be726e6e227d7bddb0332228f7e3ecb6b +Ciphertext = f130d35f56068f3e1c9f4268684d36a8995714a7741dff03 + +Cipher = aes-192-ccm +Key = 9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c +IV = c0049382cdd8646756d4e6bff5 +AAD = 64a96d191f1d5f95f5fed6259e33e7206adc07b0279e16cb453a9c6438 +Tag = 828bc33396179ac39ce0027a1d62e0fe +Plaintext = 2b9347d3e195152dce22afdb92acd179eb484872285704c3 +Ciphertext = 1d79da171176ef98359b0b51dd365a0a712d7e5a227430ab + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = a08763ca936abdeece06467bef8c3c47c3a473636a039d4db540c867d3e3 +Tag = 95aa6b99d3f894d3790c2aa2dae1ba2c +Plaintext = 1fada8f4c7daea0d1c370184c169485b80a278708ed41451 +Ciphertext = 680dd22f16a1290bde42c9792dfa997aed24d5bd2265b6e0 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = 19508a6c83b992c660a1a28597e07c729ea2ed39401aadbf9d7586b5720d +Tag = 2d9d77109f4597e9c4c8cf7023dc5f3b +Plaintext = e9f1f2cf0b8d563e2d20f39f9f464a808b136dba364a6446 +Ciphertext = 9e518814daf69538ef553b6273d59ba1e695c0779afbc6f7 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = e5929c3b5d68a4c9fcf1168ea35bf8c0bf3043cb1ed54ff301578b3b7266 +Tag = b2544ecc3c7d5accd22ac075e7b44d5a +Plaintext = 07a74c3b874849ecbf013713b80a84337c90b690cea0b837 +Ciphertext = 700736e056338aea7d74ffee5499551211161b5d62111a86 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = caa5cc5d0d87680eafc29429bac55c9e33167d485789c7c124b5c57a1ba8 +Tag = f1a8a1db25de0fab7cabb11a18497584 +Plaintext = 4255f2cf90f0d15e9bead4be799165c57f7225980713d609 +Ciphertext = 35f58814418b1258599f1c439502b4e412f48855aba274b8 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = f61cf7ae23a66777bd3fabc3d542feed2b00c6d4f46a772fda11b5214551 +Tag = 5a9718ed0257a50e38de86154054fc3a +Plaintext = 70b1e2e4cf260b108f5a52d0d8234838ffd6ffe7b4acd78d +Ciphertext = 0711983f1e5dc8164d2f9a2d34b099199250522a181d753c + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = 85f647d940a6d1acb6b7851912f807063515631eaabaa019dcfb993e86f4 +Tag = 550d1acca34c28ba8a3b890bb0542b23 +Plaintext = af4be10b3a59ea99dadc75fbe5651f6f7630852bb556aa39 +Ciphertext = d8eb9bd0eb22299f18a9bd0609f6ce4e1bb628e619e70888 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = 296cd04c4d9ab493def7aeb6841a45309e777028868efe45166235c56b2d +Tag = a268dc1596a7855639c63fa76ad8479b +Plaintext = 72d5663727592f1bfc9c65be83f4d3508126fecc4e34ae72 +Ciphertext = 05751cecf622ec1d3ee9ad436f670271eca05301e2850cc3 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = f380ca0a26a94adcf2c1ce26d226d3bf520268c72412e58a71acd9a66d00 +Tag = e3416c75fc28924a21cc123e62a7894c +Plaintext = 3e2ccce03c10ce1527ef8e002adb265edba5779fbd4fcaf6 +Ciphertext = 498cb63bed6b0d13e59a46fdc648f77fb623da5211fe6847 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = 8825532a31680cb3b5bdb027802d2d8718755e135367e0c8c88e21288311 +Tag = ff1a47f23d08485951aab18b393584ef +Plaintext = a18dfe7f2d7bbaf316366f67445170afcbe18e2a1de1e947 +Ciphertext = d62d84a4fc0079f5d443a79aa8c2a18ea66723e7b1504bf6 + +Cipher = aes-192-ccm +Key = 3e61094c80df0053e86d43fccf4e1d3ee2cdb862d3237b0a +IV = 63f00b2488809fdc49ca5f05d5 +AAD = f768375589b687fb17c56673af4263626da69eb991007d94d4f5a163fd05 +Tag = 7d024456bcb69a4f77008773a3f48805 +Plaintext = 17ca72a440c944fefd6c08ecc3a8ecb54d96b9cad9d2aa4c +Ciphertext = 606a087f91b287f83f19c0112f3b3d9420101407756308fd + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = c5f1a26351e53e6509c8bbbed03c42c23ad81c65fccec7ffa1cb494c7f1fc4 +Tag = a260b5ea3b047020b73b5bafa17e5084 +Plaintext = 0b6de49b530703affc94010c2b793ddc6de0c44d48037ff2 +Ciphertext = 56b02fea595cc24e798691ae905be3d466ca68ca744005db + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 89899be18b4c389afa769b11ecd22e9fad8f38fd614ea5f8eb7a066c0ed8d8 +Tag = 5e4bd97b9dc83134867c00c2acea0aaf +Plaintext = 2f1821aa57e5278ffd33c17d46615b77363149dbc9847041 +Ciphertext = 72c5eadb5dbee66e782151dffd43857f3d1be55cf5c70a68 + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = d43b841f174335f1347834590b0984a2cb35f7a00a0ee993157d2d4f848748 +Tag = 55202ba34bb9918fe915776de65947c0 +Plaintext = c7da4e95cb38342c6d5bf0c381d5a192adc3bfc1cda3a1d7 +Ciphertext = 9a0785e4c163f5cde84960613af77f9aa6e91346f1e0dbfe + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = c1093518efd80245e3c42371f220b21f2034e6738fe02ef43e828190f01aef +Tag = 2fdf807b5a6880f2d4c36d558b40eb90 +Plaintext = 414a70aba5a219dbd41cdc46b84812b28cc4f7399218004d +Ciphertext = 1c97bbdaaff9d83a510e4ce4036accba87ee5bbeae5b7a64 + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 90f627d5b939625bc76fe1bd4643b39edc11d3dc7f4bfe16e61bc26c3d49d8 +Tag = 5a9307ca4239380a45bb7f87e41c4cf7 +Plaintext = 58b260d3f645a35bad7a3842440bc03608248bd46e725e60 +Ciphertext = 056faba2fc1e62ba2868a8e0ff291e3e030e275352312449 + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 2f360a4715074e942244ab7f9b6db127b0442df9af2efa2e78db1a94312905 +Tag = f3aeadff9dd60468aef2a8e2c56dda7d +Plaintext = 5505caa97218957e90247fde60275bdafce4b16bcb36c263 +Ciphertext = 08d801d87843549f1536ef7cdb0585d2f7ce1decf775b84a + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 7db564811f14bc5c2098d5635655c3671fbd8288ea14944af925eaec653408 +Tag = 8335f2e31a0468b830c5009cd02dbd5f +Plaintext = b93e40f556a786e39126b8834a6ecacd2dc9f0f528bab135 +Ciphertext = e4e38b845cfc470214342821f14c14c526e35c7214f9cb1c + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 36be91854d3d02a5d62503bb9047ef4354280510f7576c4272fd757240b621 +Tag = 5d772a599e91504e022b9dbfb124b71a +Plaintext = 543a070fdb3a855dd7d83fbc5f983671ad9e905f307148e4 +Ciphertext = 09e7cc7ed16144bc52caaf1ee4bae879a6b43cd80c3232cd + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 6aa6ea668df60b0db85592d0a819c9df9e1099916272aafb8813ccc2f2dd96 +Tag = 9846cd12430f7adc910d1f0c51d80636 +Plaintext = 86ef67572cb339c6706eb5909b96848aba5246a196972a1e +Ciphertext = db32ac2626e8f827f57c253220b45a82b178ea26aad45037 + +Cipher = aes-192-ccm +Key = b5664dd6ed435df006052f6ded74bb7ce9482ca9229886f7 +IV = 7a1649896f3e030c18f0205599 +AAD = 3a64414c3588d7c26871d7d054ac6c8420d4917e3baad4a343685916265321 +Tag = d9ee65ac3a8fae1b00a4f1dfe2577293 +Plaintext = cecef24b62676a5623bedae8087b9b05d7e22b41a14dd2d5 +Ciphertext = 9313393a683cabb7a6ac4a4ab359450ddcc887c69d0ea8fc + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = d70aef3532bdc5293a3ebb11589ac1f801c9f93ea0d656e1d04068facf9f768b +Tag = 966e91a19617bb748f3495aa433585bb +Plaintext = 718f061e8b972a3adcf465d66c5b28e8661f080127f6722f +Ciphertext = bad3b0e6772e9c4c9c631c095e259d99692292932efb72b8 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 1ee0eb409398bc252175cb460ef9a2da4c9beab2ef6d8206e4fcce74df785246 +Tag = c8f70aa565a12ca3545e68110968040f +Plaintext = 72e6cebdaf88205c4e74428664bc0d7eb4687a272217b7ca +Ciphertext = b9ba78455331962a0ee33b5956c2b80fbb55e0b52b1ab75d + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 3820db475c7cb04a0f74d8e449f026ec951fa59667738698b0ed5c8cb09a8c96 +Tag = daf38076c810e14a7843444a02f010e0 +Plaintext = d959dd38a458039e2400d21d27b9a2faee8fe23683330cb5 +Ciphertext = 12056bc058e1b5e86497abc215c7178be1b278a48a3e0c22 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = f555216840a1f40b411d44128e567617e2694caf16216ea74c604a8d6ec01e72 +Tag = 594aebf9b8318877bdec2900a22df858 +Plaintext = 337f12e8ebc0544b82fcdd3c4a0dab0e5e75c9f433a27d66 +Ciphertext = f823a4101779e23dc26ba4e378731e7f514853663aaf7df1 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 2311a6fe1feeda3a1f16310d635496c0dd662024f0b0f1de79325e030cb850e5 +Tag = 1d9872d1c10a6594b5c349b84f710d64 +Plaintext = 463c65fa7becae5605af80d1feca59075ee88c0abfc72cb4 +Ciphertext = 8d60d302875518204538f90eccb4ec7651d51698b6ca2c23 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = b2c633e3181ae5fe7828707ed5b70e0460088a84465eadeecdbcfa0e9ff19bb1 +Tag = a9db7c4bcaf6087e158c1a5d4eb1c2cc +Plaintext = 23c1732959c4bf85bc707e45cc964b6227acd3a8fc73e675 +Ciphertext = e89dc5d1a57d09f3fce7079afee8fe132891493af57ee6e2 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 791f23252094b9b99fafe7fac1d8ff3ba09305c476041e75afb245ac438b4069 +Tag = 5e1c87d9e1c1f3b7d30fdc2f0ccac783 +Plaintext = 02f60f967e7fbcf957313619882407ea8a03fc943062296c +Ciphertext = c9aab96e82c60a8f17a64fc6ba5ab29b853e6606396f29fb + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 22197f9ad14591e7a6d5f8b18c969a553de9a85309757fa5d319cc505c24f438 +Tag = 1514b449a741e07f9287f7e9090fa54b +Plaintext = 6c1aa088d1a6086d0e72636744a6840c80ab8223409c61b7 +Ciphertext = a74616702d1fbe1b4ee51ab876d8317d8f9618b149916120 + +Cipher = aes-192-ccm +Key = 50925853a84a33ff392154e4e737efc18dcfc98f4d5235a9 +IV = 809343e986f6ff47f54d4cac22 +AAD = 0bb18f7280a30767cd769cb5ffd3edd1c18914b92d1b2192e27ac88f57135616 +Tag = 2c889b610157e16e9f31558c669298a7 +Plaintext = 57275bc3b4d63b9b01b0b0760235c9785d45761cace23f1e +Ciphertext = 9c7bed3b486f8ded4127c9a9304b7c095278ec8ea5ef3f89 + + +Title = NIST CCM 256 Variable Associated Data Tests + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 935753e601b79db4ae730b6ae3500731 +Plaintext = 30d56ff2a25b83fee791110fcaea48e41db7c7f098a81000 +Ciphertext = 55f068c0bbba8b598013dd1841fd740fda2902322148ab5e + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 003abc6a4b020625adc8b6cd7bafbd42 +Plaintext = e44b4307234281209bd41f89dbe2cc3fbf68e14df2f7fce4 +Ciphertext = 816e44353aa38987fc56d39e50f5f0d478f6248f4b1747ba + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = e7cfa7a208a8b3e6b6377236045df17d +Plaintext = 8db7a73856bcb4007346bb3e00096f69e75e97c0bb960f3b +Ciphertext = e892a00a4f5dbca714c477298b1e538220c052020276b465 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 81b39a0c55822e32042b4f8981021090 +Plaintext = 48f3ceda4fd390a7eb38f7f5bcd14310af6b5a557e676d44 +Ciphertext = 2dd6c9e8563298008cba3be237c67ffb68f59f97c787d61a + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 091117e2ad77db510d902038743b5a98 +Plaintext = 7cdb2c9b167b3ae811289acf7dc1814bbe241f553447699f +Ciphertext = 19fe2ba90f9a324f76aa56d8f6d6bda079bada978da7d2c1 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = ac7379b8e51592b98e4874f4592278a8 +Plaintext = 41eacf70d05a6d0cdbdd38f197a52987def8fde37f332eeb +Ciphertext = 24cfc842c9bb65abbc5ff4e61cb2156c19663821c6d395b5 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = d08c1c902c4c2f078452dd6943b85028 +Plaintext = bde9e3eb9f0c57302c9185b1cb912ef76d88f2f9c3b51e9a +Ciphertext = d8cce4d986ed5f974b1349a64086121caa16373b7a55a5c4 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 32fefb87445f1ca42811899acc0cdf68 +Plaintext = 6f9ccc033c6bfbdfad4719ad033c927e2175727a9a021dc6 +Ciphertext = 0ab9cb31258af378cac5d5ba882bae95e6ebb7b823e2a698 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 81d605a1019c8e9778b8928b4636053e +Plaintext = cc67bc3b7afd625b2610226d3b30e111e6aa47a3254f711a +Ciphertext = a942bb09631c6afc4192ee7ab027ddfa213482619cafca44 + +Cipher = aes-256-ccm +Key = 26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389 +IV = 72a60f345a1978fb40f28a2fa4 +AAD = +Tag = 96a82e8411e5b04426dc608298c6408d +Plaintext = a10c81725f49ab9075fbf4d96be030a2d881d8501b115d61 +Ciphertext = c429864046a8a337127938cee0f70c491f1f1d92a2f1e63f + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = 9e +Tag = a462ff2dd8ba44a381e1f6edab12b5a9 +Plaintext = 1b5cc6b1651dec4bbbf5130343852e971c7ff1774100d9be +Ciphertext = 789bce069a725a96c484e64a9e54dcb7a7c268c85df47815 + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = 4e +Tag = 6b0789c5866b7e3312ad992e228d6d20 +Plaintext = e7ab98901c0cb1d7d76e125d8ac8e86edf6f469fa937bc10 +Ciphertext = 846c9027e363070aa81fe71457191a4e64d2df20b5c31dbb + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = cc +Tag = 39b1b1a480fdd268c1c75b131cde798b +Plaintext = 53bc7e3648d0b389b887b065e9e8f79685beb2eb36e2eb95 +Ciphertext = 307b7681b7bf0554c7f6452c343905b63e032b542a164a3e + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = 45 +Tag = 32060fea35c3e9528fd18994fae9fce8 +Plaintext = 6d7262476da95db63b322c5193ea05030923c3cbf0f8e8b1 +Ciphertext = 0eb56af092c6eb6b4443d9184e3bf723b29e5a74ec0c491a + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = 2c +Tag = b4e0a604ab30a764e8c98a9cafbca8d4 +Plaintext = 8246bf7b81b287411777df7ecb53a1795e54b150ff3dd584 +Ciphertext = e181b7cc7edd319c68062a3716825359e5e928efe3c9742f + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = a9 +Tag = 7ca72f1acf6dfd078b6f4eb82fa01e9b +Plaintext = 2596ca8772bc69b50bcbf33088c6efbab614b691ed836f92 +Ciphertext = 4651c2308dd3df6874ba067955171d9a0da92f2ef177ce39 + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = 85 +Tag = 2a85c9252ee62612dc29cffa7289b2ca +Plaintext = 703065d701f4fcadee20d64300b3082c0c76490eb2dc4ba7 +Ciphertext = 13f76d60fe9b4a709151230add62fa0cb7cbd0b1ae28ea0c + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = dc +Tag = 9fbdac729413152c089d3939e30b8602 +Plaintext = a1aeda4b4cb8dd2943675181561bac48ba07e8de5b327837 +Ciphertext = c269d2fcb3d76bf43c16a4c88bca5e6801ba716147c6d99c + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = ce +Tag = f86266c273f8184e901b50c04845b8ab +Plaintext = aa17341f4cead054d41c171dd34c459f7052da225c6c365d +Ciphertext = c9d03ca8b3856689ab6de2540e9db7bfcbef439d409897f6 + +Cipher = aes-256-ccm +Key = a4490ed6ab51dbfccd6f3702a857575dad44da3a27eaf31178abc97da60d1e4b +IV = 26ceaf6e3b28190a17c4f0c378 +AAD = a6 +Tag = ddd02d5c9ae2bbac47a7a076edb1d207 +Plaintext = 448cdd9cbbf863eb666fda36b825f3798827da3c1349611f +Ciphertext = 274bd52b4497d536191e2f7f65f40159339a43830fbdc0b4 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = c0c3 +Tag = 06ec97f23bd6ea97834f92f7263c3195 +Plaintext = f4d7978fad36223623ccb5bb18a7373cba8a6e3b1c921259 +Ciphertext = bea778540a90033b2c0d087e3cc447711ea25f7eea968555 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 34b9 +Tag = f3230df0b52b5cb7ac907dcadcb662ca +Plaintext = f6c043c70136585d012ae0df6f42b25584e374649d0116c5 +Ciphertext = bcb0ac1ca69079500eeb5d1a4b21c21820cb45216b0581c9 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = d4ab +Tag = a99c3165ce83102891ef3885088ed6eb +Plaintext = dec0c896b04490816409da1783478ef2510231d0a28c5b39 +Ciphertext = 94b0274d17e2b18c6bc867d2a724febff52a00955488cc35 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 2a3a +Tag = c9d8078607994ae5dff0de6526fb53d1 +Plaintext = cbfd94fc31785d30214271dab2264134805fee6e52aa0b5c +Ciphertext = 818d7b2796de7c3d2e83cc1f964531792477df2ba4ae9c50 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 4eb1 +Tag = 7e84da7d2564533e7ad55390ec3a6ff9 +Plaintext = 134d2d9726400d09dd3521326f96fbef993ddc0c40887700 +Ciphertext = 593dc24c81e62c04d2f49cf74bf58ba23d15ed49b68ce00c + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 0a79 +Tag = 520849295a56191367a696999ffef8e9 +Plaintext = 1ccdcf789d42caba80d7893feaf26d3853fbcaf7d964df0b +Ciphertext = 56bd20a33ae4ebb78f1634face911d75f7d3fbb22f604807 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 865f +Tag = bc4aceed1a10309b6402b9e9420b33a3 +Plaintext = 4042dbe148db3e6dc542b25d57a5787af535d38e8c34c71b +Ciphertext = 0a32343aef7d1f60ca830f9873c60837511de2cb7a305017 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = f4ae +Tag = 76c180d2e299ccf0b8781ba6de8a72ce +Plaintext = 85b6894fec36294aa934cdc3523fd95c90ad56cbd18545dd +Ciphertext = cfc666944b900847a6f57006765ca9113485678e2781d2d1 + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = 10bf +Tag = 98d91c68d94873a5d6557611a5402a0a +Plaintext = 0f27f4fc8538a676a763b3e5db845a1bfb20d5fab340dee3 +Ciphertext = 45571b27229e877ba8a20e20ffe72a565f08e4bf454449ef + +Cipher = aes-256-ccm +Key = df594db94ef8eca56a417afe946085eaed444c7cc648d07d58132e6cb5bc2bc3 +IV = c1ad812bf2bbb2cdaee4636ee7 +AAD = b92e +Tag = 5321cedf1122354636e130acbd69718b +Plaintext = 1b5ec0cb03810a12fc6a0a1ff565afb001405d2a45a1f18a +Ciphertext = 512e2f10a4272b1ff3abb7dad106dffda5686c6fb3a56686 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 4dc2f4 +Tag = f59626ad5cdac2e4d4cb07b538a1fd8f +Plaintext = edba7d6312144e90ec9eaace7576045a46e553dcb8ee5a98 +Ciphertext = 44b9ea727c847336fd739ad11f4b906b292edb810462f06e + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 2f3bf0 +Tag = ed0d53402253453e494ad350994ca77a +Plaintext = 52a9626f5279c11e17e96f5dc5e1c1f58c1e913020d8499b +Ciphertext = fbaaf57e3ce9fcb806045f42afdc55c4e3d5196d9c54e36d + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 95d2cf +Tag = 96dbc3bff865a1d94b164df23d708e8e +Plaintext = 87b6447d97a74d0b315031078aa06fffc7b9f246bfa5f147 +Ciphertext = 2eb5d36cf93770ad20bd0118e09dfbcea8727a1b03295bb1 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 0caba9 +Tag = 791b4469fe50d45f8efb81217cd68580 +Plaintext = 1852848046706f2e274ba381a2bee1422df4f61d93219af7 +Ciphertext = b151139128e0528836a6939ec8837573423f7e402fad3001 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = f8d459 +Tag = 587106da25012f92f01cc2db8d11ac29 +Plaintext = 99aac82fa66a15e4f76b76cf4590150999d5cf8468df7f42 +Ciphertext = 30a95f3ec8fa2842e68646d02fad8138f61e47d9d453d5b4 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = e883dd +Tag = 64148536847290e4fdda7966fe6d5e3b +Plaintext = 4e2f0f91990b855a00d27fbb2e8db7184cd82909de361b52 +Ciphertext = e72c9880f79bb8fc113f4fa444b023292313a15462bab1a4 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = e45da4 +Tag = cc4cb33472825363940e2b26424b7802 +Plaintext = e558be3fd246170b294d18ffa708842242681890baf8bed9 +Ciphertext = 4c5b292ebcd62aad38a028e0cd3510132da390cd0674142f + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 3b6fc8 +Tag = a99dd8dbe89b3ecf663eda1b0f92be7f +Plaintext = f8b284c2d851289275973fcd807fac5d8e5e3b6a75ba2ace +Ciphertext = 51b113d3b6c11534647a0fd2ea42386ce195b337c9368038 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = 043d68 +Tag = dc4894c8fa0a1e1aa760acf9360042f5 +Plaintext = 8edf1eb90f0ad33be8a7c6446899e06addc10b3badc4ea25 +Ciphertext = 27dc89a8619aee9df94af65b02a4745bb20a8366114840d3 + +Cipher = aes-256-ccm +Key = d98193ab2a465e3fcd85651aaeca18b8e91489b73b7c7e93b518c4b5b81fc6ac +IV = 2247dc7e2674e9e0a63fe70613 +AAD = e89257 +Tag = cdad1590fd8bf2d7ea919e60d0316566 +Plaintext = 8fe9a6bd82462c97f436d382d1ff971c95406b1a6c847d81 +Ciphertext = 26ea31acecd61131e5dbe39dbbc2032dfa8be347d008d777 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 270981af +Tag = c76fc350e585277e373e9119bf9595cb +Plaintext = 0b92adbb251dc29a67f0bb97f8e7160862b6c4e843d07fd9 +Ciphertext = 274e2faea3271ea6fa0494c1951f115b5491a893056c3ee4 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 633f3efa +Tag = 0fa7e55dc54e80488a05ee7f1fc96e9d +Plaintext = 1f88dfd4f5c52c22b1db47f9f4fb6e2f8bcd78d593061369 +Ciphertext = 33545dc173fff01e2c2f68af9903697cbdea14aed5ba5254 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = aad86fb5 +Tag = 18151c17d9e3f97244000a3b2d3c2f95 +Plaintext = b2b4cb5e90ebf4bd265093b7f5efd4d62dc60e29737aa496 +Ciphertext = 9e68494b16d12881bba4bce19817d3851be1625235c6e5ab + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = ed42941a +Tag = 62d521c4b5c7a6f2c5ac65f2fd15b066 +Plaintext = f312b47d05f8eb5a29943b41347cb1983c75cb7a458a3868 +Ciphertext = dfce366883c23766b46014175984b6cb0a52a70103367955 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = e5b085d8 +Tag = e491a31218f688744098851672a09a64 +Plaintext = e9fb86938ea7f04cc230296859e7c96fcc352f968c9473e4 +Ciphertext = c5270486089d2c705fc4063e341fce3cfa1243edca2832d9 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 3776f37f +Tag = 0ece28347d7ebf8291d7eb66b7651b4e +Plaintext = 8af6b7540f997954812e38dbd99ccfaedd5c69963c353a4e +Ciphertext = a62a354189a3a5681cda178db464c8fdeb7b05ed7a897b73 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 4eb08c9e +Tag = cbd25fb40480d15c039878b5d2f25afb +Plaintext = b90cfd9dd58e320d98510483b1d939bdb5f3b81666ecee59 +Ciphertext = 95d07f8853b4ee3105a52bd5dc213eee83d4d46d2050af64 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = c7f93152 +Tag = fbfd98c8567b78d4b9c3a49a4641908e +Plaintext = 02caabc6ed0641681e7148c10cf3159fe35e44013252071e +Ciphertext = 2e1629d36b3c9d5483856797610b12ccd579287a74ee4623 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 57957630 +Tag = 655c1abcb3ed1a175f12721a407c5d00 +Plaintext = 2f29882fdf1418d04f0b9d44272995a56973c4369c687a99 +Ciphertext = 03f50a3a592ec4ecd2ffb2124ad192f65f54a84ddad43ba4 + +Cipher = aes-256-ccm +Key = 45c8afd7373cb0f6b092af3a633d9fd97c4ca378e19d75f9b74d089429726c29 +IV = fdb1fa230ae0b172ff98fc7496 +AAD = 19da955d +Tag = 90621a5e5683df421a0dc52341485d1b +Plaintext = 4e427130be9e94639320529ec135715e65da1117b5ba3c76 +Ciphertext = 629ef32538a4485f0ed47dc8accd760d53fd7d6cf3067d4b + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 3ba11282d6 +Tag = fe0667bcc5806b225224b04ade8b21c1 +Plaintext = d822f84b023f12ea9e3ce16b904278e4aaab5e11c2c23f3f +Ciphertext = 9f91fd2f6472e33b02b1eabb9d6655729d44c44dad6b3883 + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 3f3a4718ea +Tag = a6750fffa5a487540ce65770cd836e99 +Plaintext = af87b347b59e37a424004a00907dcbcf6a554e6782a9be12 +Ciphertext = e834b623d3d3c675b88d41d09d59e6595dbad43bed00b9ae + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = ff79ca8965 +Tag = e7cfafe32bd71ea9813607c5df446c9d +Plaintext = 82b7cd168b6a82cb2d837f41ceda0c27adc5f5b28030454b +Ciphertext = c504c872ed27731ab10e7491c3fe21b19a2a6feeef9942f7 + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 0021be18ed +Tag = 76716fe674c33ad3b9d3e54cc86bfccf +Plaintext = 1c1a0f144df76781e7c85ab178ed9b1ce8c6dc3f15c59149 +Ciphertext = 5ba90a702bba96507b45516175c9b68adf2946637a6c96f5 + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 9ae7996547 +Tag = ab55dbee34f1bab555bbb196095fb5fd +Plaintext = d9bb71ad90152d5c1af358c8501fa89ebd4b17bf4ff43841 +Ciphertext = 9e0874c9f658dc8d867e53185d3b85088aa48de3205d3ffd + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = fa292d1958 +Tag = 76a4e9e759d5bb79c187a157099e3d12 +Plaintext = fc7d028a1aa05c74b7ffe333ba6f676913b0f9f1ffa050b8 +Ciphertext = bbce07ee7cedada52b72e8e3b74b4aff245f63ad90095704 + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 88800df7b6 +Tag = 9f0f3699c9743ad6c9f09dc00ea10487 +Plaintext = c9ea772e61742a6706da3ab3e81df14b31506ae58b063ece +Ciphertext = 8e59724a0739dbb69a573163e539dcdd06bff0b9e4af3972 + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 715041afd4 +Tag = 560d78cba6d9f50e9c2677a710f92155 +Plaintext = 70d2b8d64121ceccf1961444e8d33b7b7f998aeb58d3d270 +Ciphertext = 3761bdb2276c3f1d6d1b1f94e5f716ed487610b7377ad5cc + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = 14682301a9 +Tag = 95ffb6e29172a283d47e4478e2e1f7c4 +Plaintext = 1013946815001a2c08acca4196e0d6668ffbb3883cf111e7 +Ciphertext = 57a0910c734debfd9421c1919bc4fbf0b81429d45358165b + +Cipher = aes-256-ccm +Key = a2e6bf39efd1ceddc92b4333ed92d65efeea6c031ca345adb93a7770a8039bcd +IV = 693cbb46bc8366086ec7cd7776 +AAD = e44c3c21c1 +Tag = ccf233caf0bad9f68f71d78ee58512ec +Plaintext = f40dc834067bd163e0004d0ec5dd4b96e2a1ea31ea431c98 +Ciphertext = b3becd50603620b27c8d46dec8f96600d54e706d85ea1b24 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 4759557e9bab +Tag = a88179e0d32f4928eff13b4ce2873338 +Plaintext = e758796d7db73bccb1697c42df691ac57974b40ca9186a43 +Ciphertext = 93ad58bd5f4f77ac4f92b0ae16c62489e4074c7f152e2ed8 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 2ea07d393a0a +Tag = b7d812c4d69f1f53ee9158382e56625b +Plaintext = ce60ddbe40b70bd55a9147036ad079dec1558ef4c2c625b3 +Ciphertext = ba95fc6e624f47b5a46a8befa37f47925c2676877ef06128 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = aa6667faedc1 +Tag = 26fdbed62b228db008a1b14bd7942e12 +Plaintext = 89eb3056770a6157f06921bc153834447c4b6d862d10d185 +Ciphertext = fd1e118655f22d370e92ed50dc970a08e13895f59126951e + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 9e2127d92311 +Tag = 124e1eb78de01b8af83b684baf3e43ad +Plaintext = 132f3e19e12f462a7463226b716c41a05a59c76f0e1a2f72 +Ciphertext = 67da1fc9c3d70a4a8a98ee87b8c37fecc72a3f1cb22c6be9 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 2f191bc9cff6 +Tag = cb0f79736d1a810d06a776094f9fb67f +Plaintext = b8611cbb9a3667b9458ca57eb636eb1dc580e7dbb5701692 +Ciphertext = cc943d6bb8ce2bd9bb7769927f99d55158f31fa809465209 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = ad739d5f4736 +Tag = bfba2348f629471c232c9ff7e5f6f85a +Plaintext = 112f89ccbdadc2433008d3ede2290f9ce81e5c736abf42a8 +Ciphertext = 65daa81c9f558e23cef31f012b8631d0756da400d6890633 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 01acc909b7d3 +Tag = c0f694d03ffed043787343827ea2603f +Plaintext = d47f2ff745de39a9055ad002de6334971fde480bef268b33 +Ciphertext = a08a0e27672675c9fba11cee17cc0adb82adb0785310cfa8 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = ce003c836a6f +Tag = 279b553998a6fee0a86e177a448573a4 +Plaintext = 13be365884b8a91a284ca24f70011e48794b51be275153b9 +Ciphertext = 674b1788a640e57ad6b76ea3b9ae2004e438a9cd9b671722 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 6a759a4efd00 +Tag = 4eeb434cca3ea719827417e94d6ed564 +Plaintext = d5c87c649579da3f632ba95cb0a07c924095e4bdd4e0376e +Ciphertext = a13d5db4b781965f9dd065b0790f42dedde61cce68d673f5 + +Cipher = aes-256-ccm +Key = c5a850167a5bfdf56636ce9e56e2952855504e35cc4f5d24ee5e168853be82d8 +IV = c45b165477e8bfa9ca3a1cd3ca +AAD = 02b84a26c773 +Tag = a74b5e4e2edb91fbbe722bfaf1500db4 +Plaintext = b7bc1580c68fd5d06c1bf75c31dad7a3e26d636d7eee20b9 +Ciphertext = c3493450e47799b092e03bb0f875e9ef7f1e9b1ec2d86422 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 0b1fabdf2a4107 +Tag = 6d5a6e4b1fbee15d35939c721004502e +Plaintext = bc9ca92a9c9919e39095d3e53fb148694620ae61227e0069 +Ciphertext = 45811b0c8f754bf03950e520cd4afc81c2e3eb8a11f4fd38 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 2fc7f5c0ce052f +Tag = 24a68f98716190fb55f743a8bf62a085 +Plaintext = f25a4ca20bbf4969bed6b93c1c77e3d7415f60fe3784216b +Ciphertext = 0b47fe8418531b7a17138ff9ee8c573fc59c2515040edc3a + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 8a74412da3034b +Tag = 23afef7b4955d7d1e8f1abef9933bf9f +Plaintext = 3237bf953989d17c65a0fafd2bb1e32c237f98f55389e8f8 +Ciphertext = cb2a0db32a65836fcc65cc38d94a57c4a7bcdd1e600315a9 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 7139f3c1d6cc36 +Tag = 8e824c62632dff5cbc103d3060fbd174 +Plaintext = 55d86dc0423cfc2616ef996a3316e776707f8d25c985884a +Ciphertext = acc5dfe651d0ae35bf2aafafc1ed539ef4bcc8cefa0f751b + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = af7a380f079aa1 +Tag = 80202d518ca871c9544f4a8c55fd8d20 +Plaintext = ac48398adb10292314973946f261ec39397442ca09b98dd8 +Ciphertext = 55558bacc8fc7b30bd520f83009a58d1bdb707213a337089 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = e602abe8f72964 +Tag = 4b33ea6e4344033f74f513d1e41b82ae +Plaintext = 2fb78654e4395df8c37f260d74def234a3a4e3d2b1fe8614 +Ciphertext = d6aa3472f7d50feb6aba10c8862546dc2767a63982747b45 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 82741c5fd6e1df +Tag = 73ccf18c7ea7dce79d0be1204c593234 +Plaintext = d488bdda400932de56a9f105f0e74ee79c2ed869faaadc31 +Ciphertext = 2d950ffc53e560cdff6cc7c0021cfa0f18ed9d82c9202160 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 78f0cc22535402 +Tag = b81b8af57b85093778690266e20e2fbb +Plaintext = b22aba8d3e9f4b4bf006e26062de15daf94597731a600912 +Ciphertext = 4b3708ab2d73195859c3d4a59025a1327d86d29829eaf443 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = 18e468139dd16f +Tag = 9b94a857e7a0423ef6c9cbebde1f9c40 +Plaintext = bd864f7b8efd6ed2b068f425482d449bf53a203ea88e1ca1 +Ciphertext = 449bfd5d9d113cc119adc2e0bad6f07371f965d59b04e1f0 + +Cipher = aes-256-ccm +Key = ae8f93c3efe38e2af07e256961dd33028faa0716e5320a7ab319a10d2f4c5548 +IV = 6333bde218b784ccd8370492f7 +AAD = a6dab47c0fbfe1 +Tag = 64718820065a739fbd3ba560a416895c +Plaintext = 47d9d18b6addc5f88986f0457b666faae59aba4fa3a02abb +Ciphertext = bec463ad793197eb2043c680899ddb426159ffa4902ad7ea + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = a6601111cd92c943 +Tag = f2a9047e37cc0be1fab0006af8db8dc4 +Plaintext = 49fd5cbe4aff89dc3b8718f9ce545d612cbbebb289ecbf42 +Ciphertext = 3cfc6211e359ae322802fc9566f377b0dfe17d1dfe0878eb + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 96f0b7cd7439721d +Tag = 106a430b04938e97f2e4cda81108ad3e +Plaintext = 94a95e945f660d1571b4d7d22709b000b45ff98b2129a4ae +Ciphertext = e1a8603bf6c02afb623133be8fae9ad147056f2456cd6307 + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 2ee135dc2ddd9501 +Tag = b2ab219c6c4952d52505cd9f904b0e04 +Plaintext = aeed3aea01755c912213c8c276a2b75dad24f888a611efa3 +Ciphertext = dbec0445a8d37b7f31962caede059d8c5e7e6e27d1f5280a + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 10c361934fd6ff77 +Tag = fc1f7b2fe314faea28ab0dae349feb9c +Plaintext = be1fcebea4c22a1d71e08047b028d7f4ccab0a6b8085d344 +Ciphertext = cb1ef0110d640df36265642b188ffd253ff19cc4f76114ed + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 3f6c8a69917f7776 +Tag = 08e529d64e786a29661cccddc0366f3b +Plaintext = 87680ac26fe1511e0f1f745aa4c2a5b9f6c0117dcf08feaa +Ciphertext = f269346dc64776f01c9a90360c658f68059a87d2b8ec3903 + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 0f7a1426ff3b5ee1 +Tag = 97c6510b85dfd097f3eac276aff00ba2 +Plaintext = 9e004b072a27b085e59ca201c157c7d3c906a2c3b455c56e +Ciphertext = eb0175a88381976bf619466d69f0ed023a5c346cc3b102c7 + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = faa5bed84dcf168e +Tag = 8e522b6f13f99ecb553b6de845940907 +Plaintext = a1bf47b15cd66e43daff420edf014a14b11994b97ada4030 +Ciphertext = d4be791ef57049adc97aa66277a660c5424302160d3e8799 + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 2851dae3cb3fcb1c +Tag = 7a9ca39566189ee96c86462bfea78af5 +Plaintext = 2d15734871adc63ff32d7002ab40c4a235a4d5fad223953f +Ciphertext = 58144de7d80be1d1e0a8946e03e7ee73c6fe4355a5c75296 + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 35a29c1bcbe2182f +Tag = a613b5fbbe73a2df6c630a00ff4b1b92 +Plaintext = 5a84c4fdd47510fb7aebc0f79d7b625ccd0a96575740b8e6 +Ciphertext = 2f85fa527dd33715696e249b35dc488d3e5000f820a47f4f + +Cipher = aes-256-ccm +Key = 548c2d1eb7d91e003633d4d9ff199e4a8447180edd89ac7867d25a1db288b5ce +IV = 23b205bd6ff8ed0bab0c98999c +AAD = 45820ae66c3e8e77 +Tag = d19feb067e9f6225376da21b4899d296 +Plaintext = 2052a94e1392dc1db0e89be19ea8f7379ee4cb607a914c89 +Ciphertext = 555397e1ba34fbf3a36d7f8d360fdde66dbe5dcf0d758b20 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 82b8c736037ce2f2e8 +Tag = 0de1a3f7fc5d06cc30f06075f5504ed7 +Plaintext = 7c0889854658d3408c5d8043aad2f4ae4a89449a36f8a3b8 +Ciphertext = 1044250f58857c69f72b5d3454d43949e5c02b3822970b28 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 8f2777ec4930f7e349 +Tag = 835840df6fa96f5c972ac09d94148cbc +Plaintext = bd845561f099500a6ff3fd09964dc3820f7ab48ba4ed04d5 +Ciphertext = d1c8f9ebee44ff231485207e684b0e65a033db29b082ac45 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 5cab3b846870709569 +Tag = 2f83ef84b299cfdb61d2b5039d536c3f +Plaintext = a6e09404fe60badfc63dc228057485e6f563ba82acdabd7c +Ciphertext = caac388ee0bd15f6bd4b1f5ffb7248015a2ad520b8b515ec + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 0938f2e2ebb64f8af8 +Tag = db04e655cbe22b9ea508d2a03757b97c +Plaintext = 33404d7e0e620c1030b91020e33619c5f53d8b210fa86489 +Ciphertext = 5f0ce1f410bfa3394bcfcd571d30d4225a74e4831bc7cc19 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 82f78ca0e0da2b2d3a +Tag = 4bd88dc6985f819004c2b634c5303ed8 +Plaintext = 617868ae91f705c6b583b5fd7e1e4086a1bb9f087a50bf50 +Ciphertext = 0d34c4248f2aaaefcef5688a80188d610ef2f0aa6e3f17c0 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 401191aa3fd34abe87 +Tag = 4ff3572e4ebf78473760d8cb4b0366b4 +Plaintext = 949cdd7c2973d7519e7bca98b2c5947e6d8e91c90e632319 +Ciphertext = f8d071f637ae7878e50d17ef4cc35999c2c7fe6b1a0c8b89 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 4df4377596d8987671 +Tag = de95ec3eee17753e60fb3c0661bdd098 +Plaintext = f6720a0bd8705c70e0f923338965e810b3ea939bad652327 +Ciphertext = 9a3ea681c6adf3599b8ffe44776325f71ca3fc39b90a8bb7 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 6593194b9970545c5a +Tag = b8590ff04f967e51fbd1be84f01b4dcb +Plaintext = de9b0556661e726f3e6e34515ff7196420fe61b4f38419f2 +Ciphertext = b2d7a9dc78c3dd464518e926a1f1d4838fb70e16e7ebb162 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = ab2d432058b540ac72 +Tag = 71d67b75b2da855a12ffb24ddd64a048 +Plaintext = 6cad7f3b9f196839bbc5a7f755c09aa8e17c83d9cb8b3954 +Ciphertext = 00e1d3b181c4c710c0b37a80abc6574f4e35ec7bdfe491c4 + +Cipher = aes-256-ccm +Key = aab793e377a12484dbdd74c9b3a85c74c286e1cc498663fbd7c718b5633bb91a +IV = 10022cddb323e88b3c08f95a0f +AAD = 5dc631eeeacb5a0b0b +Tag = 1fc798dd16c1fadef607a9297cbfbfef +Plaintext = 70a55aec1144357377612fd0bbc2c817f33465a656219957 +Ciphertext = 1ce9f6660f999a5a0c17f2a745c405f05c7d0a04424e31c7 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 215e2a6c24325340fdec +Tag = 3d70e6dffb31a376a1eb7f94526dca48 +Plaintext = 3216dce3b8b1ce0e79e40fffcac728ab191aaaf319d971d3 +Ciphertext = c5b3b50ed8a7b7b96b02ba9464b6a2ff80e90548605699a6 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = e0a29a2c7840cf9b41de +Tag = cbf516608fe20e06bbff931e84683545 +Plaintext = 7e5e5710a693ebfa36335cf7965574740880acdddd13fb1a +Ciphertext = 89fb3efdc685924d24d5e99c3824fe2091730366a49c136f + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = b8026fbada6339d84802 +Tag = d70eb14f3fa0229906b9e0360be3d3f9 +Plaintext = 08c342a50aa23362622934dfab55d9b22c22c249ad08138c +Ciphertext = ff662b486ab44ad570cf81b4052453e6b5d16df2d487fbf9 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 65f4b3a00c1c1ef39445 +Tag = 4184771199a427861bf17cd8401e794e +Plaintext = e085aba85882c75d5e41559167731496cf17d3907894352a +Ciphertext = 1720c2453894beea4ca7e0fac9029ec256e47c2b011bdd5f + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 96118dbfe53434d8aed8 +Tag = 4e20b2db52fde68f88bfb886fdcb2c47 +Plaintext = 710f890be2b8da77c1eff429ede9cc931d50f059748cbcb6 +Ciphertext = 86aae0e682aea3c0d3094142439846c784a35fe20d0354c3 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = cdf4b485d2e04709cf8f +Tag = 82ee3df38ddea8e269eb47e39900345e +Plaintext = cda96efee4e188ab3048bc1904ac2c36ab018f2ab7602682 +Ciphertext = 3a0c071384f7f11c22ae0972aadda66232f22091ceefcef7 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 50e57e57cf8e49e3a4e6 +Tag = 44aaac4ed86f687cfc031f22827725f1 +Plaintext = 3dc596d52e520779a50bcba3049388b340dbf6d0f2eb94cf +Ciphertext = ca60ff384e447eceb7ed7ec8aae202e7d928596b8b647cba + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 48c670f11ff7f74e7003 +Tag = d75255006ac037d6a4d048f1fc338012 +Plaintext = a33105c0dccf8e3b687212a870af9f710462756705fe09b3 +Ciphertext = 54946c2dbcd9f78c7a94a7c3dede15259d91dadc7c71e1c6 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = 465e3be6113a2fb2ee20 +Tag = 6c1da33a80bc8157cece1acf9400b2bb +Plaintext = 573ac2436158eb7dd9be981e3cfbe75d3a188ea9cf2b1ee2 +Ciphertext = a09fabae014e92cacb582d75928a6d09a3eb2112b6a4f697 + +Cipher = aes-256-ccm +Key = 06ac39896073a44283611a66ccab067e2dd2faa8da82ff9a45bb29e54d2e6e77 +IV = 6c7942c9819cf69b817bfcdb0a +AAD = ee4e10574faeae85e9b6 +Tag = 65c1cb98da4a1a920ca1ed9a7b6ec514 +Plaintext = ca35bdb54e73eac5a5200a296b3aba5f37c87349746102d4 +Ciphertext = 3d90d4582e659372b7c6bf42c54b300bae3bdcf20deeeaa1 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = f706a3e09df95d3e21d2e0 +Tag = d6c05eaf406a5ebd578e19edd5227380 +Plaintext = 6cdbd63f6d591f59776f828533b28e2453a214d1d0dd8a39 +Ciphertext = 8c8b4ae854a5d5c265b25e3b54bded9444cc454b3e0e6a24 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = e46b25b9a41a858e87900a +Tag = 5088446e42591c0ede68e82334d97cfa +Plaintext = 100132c315bfc9c4fb93023f5d3500d7208a68acb4d2c630 +Ciphertext = f051ae142c43035fe94ede813a3a636737e439365a01262d + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 28d34b29afe6586fd9bf0e +Tag = 3eaaef2823f5ac3f313f560bd774d10e +Plaintext = d5460c1db0d24dedc63c4c78ce6d1f0b2d46f3b01934525c +Ciphertext = 351690ca892e8776d4e190c6a9627cbb3a28a22af7e7b241 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 2852d4fd68a3e9e47d44a7 +Tag = 62d30d99bb7dadec34e2891c156a1f5d +Plaintext = d2d73b62e3b1c9ab75f3544ff8616741e0adbae84b8cf9d0 +Ciphertext = 3287a7b5da4d0330672e88f19f6e04f1f7c3eb72a55f19cd + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = ec1c17b2ab13d7c8ac874f +Tag = 41c9a05ebf9ed27792bbced83b5dc582 +Plaintext = 74796d78d6ad03634ed80800af530212baa7e5093651cedf +Ciphertext = 9429f1afef51c9f85c05d4bec85c61a2adc9b493d8822ec2 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 4f1ab5ddb1c199e9a5daab +Tag = 1ffc24020e86b1314724104e6b57b3ce +Plaintext = fb432488b5d08d576a90f085181ad883407a6ce9ea29950a +Ciphertext = 1b13b85f8c2c47cc784d2c3b7f15bb3357143d7304fa7517 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 864e0e728aea856fae6c6d +Tag = 539bbb0af8ecf77b4508533247b3501a +Plaintext = 2b82d96ed1778412378abe4e09c633acf3359b9709ae3dcb +Ciphertext = cbd245b9e88b4e89255762f06ec9501ce45bca0de77dddd6 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 21ee21a5ed0d75d0380a28 +Tag = f8981ec6ce7c4687b178f2103fa8c8be +Plaintext = 85143071241bb65261fe7afcc102416e59b9e46ee0c90073 +Ciphertext = 6544aca61de77cc97323a642a60d22de4ed7b5f40e1ae06e + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = 2b63f7b676f13f45d103dd +Tag = 65d9d899c6b71c0ab3049ea1dbfaf6a9 +Plaintext = 185577b48237acbdaa3590b8057fe374f875ce829b62c98f +Ciphertext = f805eb63bbcb6626b8e84c06627080c4ef1b9f1875b12992 + +Cipher = aes-256-ccm +Key = 50412c6444bcf9829506ab019e98234af1541061557412740bc120b456052763 +IV = 85684f94c3702c5d870310166d +AAD = a33e86d813c2c4ff3bab20 +Tag = b246474c4e79822f5fd55f2fb0067a40 +Plaintext = f051beb936e60fd4f3bca31964f1ad3e6fa16dd27b65a6db +Ciphertext = 1001226e0f1ac54fe1617fa703fece8e78cf3c4895b646c6 + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = e4296d1c8cf4ffc4b2635135 +Tag = de3ed995d1b70561c8e28a7b1a7e3dc8 +Plaintext = c825952293e434ea866db558aaf486ef09a92bf366988f71 +Ciphertext = b8b3b15fdf6a4a0b5abc313afc769e4e8413bd887552583e + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = d18bfcc1584eeb8695388ebe +Tag = 561575f6743c5759494be59afa0c3e11 +Plaintext = a1e0248355bfd1d881fb1a4798cda2f6f6ad513c69c5f9b4 +Ciphertext = d17600fe1931af395d2a9e25ce4fba577b17c7477a0f2efb + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 14682301a99bf680805d1ffe +Tag = 34f689367228cbaf3cd76fb407109cf6 +Plaintext = ded135fcbf62219bfba2cba40c2d2cbe4815ddaac1342231 +Ciphertext = ae471181f3ec5f7a27734fc65aaf341fc5af4bd1d2fef57e + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 8853aa2dfea9c4d370678bb6 +Tag = 2cacb7fc3856abcf759feb8dc0998ab1 +Plaintext = 12d3900c6c01968b8344762e0e883e5e219f42b052dc6215 +Ciphertext = 6245b471208fe86a5f95f24c580a26ffac25d4cb4116b55a + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = c5d3b9c593c3185fe4b6d1bc +Tag = 42a740cd3262424a2c3d77849ead6149 +Plaintext = 8c3c1193fe1a1ebad7e01a1eed1a32c08a0091b1c948e184 +Ciphertext = fcaa35eeb294605b0b319e7cbb982a6107ba07cada8236cb + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = dfb9e8149b51f89b1ec00a8e +Tag = 47d4dbe0f9415d40843070e1e93059eb +Plaintext = 8219618b7728ac89237705ecf84012cc7c80293c4cf171d8 +Ciphertext = f28f45f63ba6d268ffa6818eaec20a6df13abf475f3ba697 + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 08a4590d262e4dbcb7e23ffc +Tag = 1215b3dccba4ca5de64be7fab8a7a22c +Plaintext = b344b7dc239617fa51b9ea10a349e940c3163779f5284c9c +Ciphertext = c3d293a16f18691b8d686e72f5cbf1e14eaca102e6e29bd3 + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 74aab7b5b96238710637c6e5 +Tag = 34e09945ee44c95c7923d8b9249ade7b +Plaintext = 740d4b25ca7221d0826057701a6bfd66c50a82f010a57be8 +Ciphertext = 049b6f5886fc5f315eb1d3124ce9e5c748b0148b036faca7 + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 420aac47a3f212fffca40549 +Tag = 0a568dd779526a0058d522af1dafde30 +Plaintext = 5d9000489186abdf4f0a2794f0222fcaa156fe6309c10f79 +Ciphertext = 2d062435dd08d53e93dba3f6a6a0376b2cec68181a0bd836 + +Cipher = aes-256-ccm +Key = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0ed +IV = d80210b9f9776ea36dc0e0a787 +AAD = 6e80dd7f1badf3a1c9ab25c7 +Tag = 279442c88d612ed1a39ae0005f88155d +Plaintext = ac2c44263363810bec3a309aa618b303e05099dfdbeb5c16 +Ciphertext = dcba605b7fedffea30ebb4f8f09aaba26dea0fa4c8218b59 + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = 569c56b27268d3db54e728aac0 +Tag = 8aaaac20d4c9276f2851cbba2b04d185 +Plaintext = 10d4cff95ef490923c9e0906880729d4d05412e7675cce76 +Ciphertext = be3ce3e9dc72499839a98ae52abb17415e8547687e8a3c7b + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = d75635b6450e43285fba966835 +Tag = c121ff83891335dd1214ea6fc25f6a68 +Plaintext = c9db03e2efbab713b0b640421018d3971ffe2abd70fe8fa1 +Ciphertext = 67332ff26d3c6e19b581c3a1b2a4ed02912f7f3269287dac + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = 70750acea6a05f8b7b425d262b +Tag = 549e71ec517cd65150f42b3cb53f936e +Plaintext = add631ce5846ce71434aad4998f8e429aed430e7d38bdbb2 +Ciphertext = 033e1ddedac0177b467d2eaa3a44dabc20056568ca5d29bf + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = 2a567c7ec7edaa5a438ae3bb35 +Tag = 0e432ec394ddbb65205dc40a5a8e90a4 +Plaintext = a514d170422feb1d87bb7725a9e77cc6fc8afb45c2af6d90 +Ciphertext = 0bfcfd60c0a93217828cf4c60b5b4253725baecadb799f9d + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = 0f8795385b805246a0a2573afc +Tag = 926b0d977107a3918717f79b63f36b0a +Plaintext = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d +Ciphertext = d730a80a3ab4a07849d4ddf9280170800fb9897c917dbe30 + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = 111d224c102b136159fbeb44a7 +Tag = c2cd61599bb93db3dd3dabc12aa90932 +Plaintext = 2edd498e54b23aab6f4fd7b3f22c4c787e3a4f1fb06c9ec7 +Ciphertext = 8035659ed634e3a16a785450509072edf0eb1a90a9ba6cca + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = df0821c9ea6ab329c626d11b4b +Tag = bd027ecd00cc6dc5ffd5d746d92281e9 +Plaintext = 6e3e25db29da2c787bb37755ee770e2402fb8208da23389d +Ciphertext = c0d609cbab5cf5727e84f4b64ccb30b18c2ad787c3f5ca90 + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = aacaf4839c35338d6e2b47ac45 +Tag = 3c01354a450eda2588be7578530e38c0 +Plaintext = d4ed4584678e982ace8664e77d0e55be356be558cead3755 +Ciphertext = 7a056994e5084120cbb1e704dfb26b2bbbbab0d7d77bc558 + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = dc6eed3f8bd1b5563c1eeb9afa +Tag = 8d7a1d546e25ba026cd46556eb2c4b7e +Plaintext = 4ebf00eadaf70711f630f5badf0214d8518a200afb0e5765 +Ciphertext = e0572cfa5871de1bf30776597dbe2a4ddf5b7585e2d8a568 + +Cipher = aes-256-ccm +Key = a4cc7e1c90f8684e6a5f95e6898ab4e3c194cb46e196d8228062b9f3fa744930 +IV = cdc2712e51c7f333d6bad78eee +AAD = fbfe7e910f242a78dd6e69a2ec +Tag = 0e951aee790239e7067ef37f497b4bf4 +Plaintext = 2729636112f2abe2c76ea5e52a3f80b0f882f0f3b6f7c806 +Ciphertext = 89c14f71907472e8c25926068883be257653a57caf213a0b + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = 511c6924fa96db716f6b053b7a48 +Tag = e949b93003dfe63c95c1d49edfb4de3f +Plaintext = ca88dddfc876a12f45f19562bc9ca250f43267ab251a7f34 +Ciphertext = eeedcfa8f5b5b48c1d7e277526eecb7294213b9f5785167a + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = 10c26d5939618189a9503623f55f +Tag = 85c32a90d77fed97eb0ac164ed616e1c +Plaintext = de0c0d17c3950e7f8985b56d60623cbd010cd765da4df5ab +Ciphertext = fa691f60fe561bdcd10a077afa10559f611f8b51a8d29ce5 + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = bc09c59d20e55a9e184d70af2c7c +Tag = 180fdf5f63045f326057cf74fd4cee6b +Plaintext = 2f35102d78a32fcde1cfb563ea8d310ecb83c146ab8de362 +Ciphertext = 0b50025a45603a6eb940077470ff582cab909d72d9128a2c + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = b75887f13d6e8c4b35b27b965693 +Tag = 34959a180fc2cf2ba99af21cc1bc8e5c +Plaintext = a3fcce3420effdd6edb37271735a0d30c10c65233aee173f +Ciphertext = 8799dc431d2ce875b53cc066e9286412a11f391748717e71 + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = 603401a9b8ecde4d5c86b6107363 +Tag = 2ca2e5195dbd44f0a119538c95788510 +Plaintext = 4ac918727e41b8c536484e3781c403e260c278712853508d +Ciphertext = 6eac0a054382ad666ec7fc201bb66ac000d124455acc39c3 + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = 7206b06f306124ca3a302e84c5a6 +Tag = 74a4e1198878a76291594b9826d4b563 +Plaintext = 97d770cbb2c42a552e450cc4e35e5668b2ff89cec735cc91 +Ciphertext = b3b262bc8f073ff676cabed3792c3f4ad2ecd5fab5aaa5df + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = b15efed90a5d1d62f545ac22af6e +Tag = ff5f993dcfbd048274da7439c0f9ef5a +Plaintext = 86bb2ae50e36c72936240a74502172625cbca210cf285077 +Ciphertext = a2de389233f5d28a6eabb863ca531b403caffe24bdb73939 + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = c9eb714ed9858a8dc11a26ee3f00 +Tag = 0e87710559a375ece6ef2953b6aa2542 +Plaintext = 0dc79993047fd6e7260aac4d847fdb4d16483f28b13b5f17 +Ciphertext = 29a28be439bcc3447e851e5a1e0db26f765b631cc3a43659 + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = 07ca22271e95cb48a872046822b7 +Tag = 998035c81716e2d1ed4b4d56ff18af5d +Plaintext = f950e96d65a55efb3be3a55daffb421afad1d5625e3440a1 +Ciphertext = dd35fb1a58664b58636c174a35892b389ac289562cab29ef + +Cipher = aes-256-ccm +Key = 347e12eec56e95aafcc7d25bf10fc756b4e42bc2e43da7f97df24331f27f1f5c +IV = b8d517b033754058128d13d11a +AAD = b65f6773516124317cfb4b1fcdf5 +Tag = 1ae73a9b6896d8fc1b8c0d772d632983 +Plaintext = e160e28e601a49d16db18f25410756b330b036c42e615fd6 +Ciphertext = c505f0f95dd95c72353e3d32db753f9150a36af05cfe3698 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 22b4f8f1aac02a9b2ef785d0ff6f93 +Tag = 8a8f8d14d2bdac84c3737cfbd75b7c0b +Plaintext = 533fee7d2c7740db55770e48cb1b541d990ea3f8f08ed1a6 +Ciphertext = fc867b319e0e4ab45ec518a1b5dcec4f29982173f3abfd4d + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = d0a43de391d492746ecf322acd6e5b +Tag = fce59f5e6e3cee284b4cc747ff5ee13f +Plaintext = cced20b59a6b2c3c45ea6c87802440c9c47b1015e83d86c3 +Ciphertext = 6354b5f9281226534e587a6efee3f89b74ed929eeb18aa28 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 3a789c06f87f05933c34a1cf9834a8 +Tag = ddaef56d8255125f7c316c6c59ce779f +Plaintext = 90939a4530181ad6900664f66bfc2ce0289432a0afe9babe +Ciphertext = 3f2a0f09826110b99bb4721f153b94b29802b02baccc9655 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 785260973f112c56d9f891160c4c11 +Tag = 55810cbcdf48f05d0a7808673c82d08d +Plaintext = 86cd926b9565b76a88fde73c31e9ac908ffd1e6ca30b59ce +Ciphertext = 29740727271cbd05834ff1d54f2e14c23f6b9ce7a02e7525 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = bf6a144591c0ea7b10274fbd3345a1 +Tag = 49e41e5d34a698ae1d96f16bc68da944 +Plaintext = 6ecd1c1acc6290672f9cf639ed0cebcb21ed0c56f35a5ce3 +Ciphertext = c17489567e1b9a08242ee0d093cb5399917b8eddf07f7008 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 7d9488b500d89a27f367f34a448a87 +Tag = 1bc54e546d1a6fcf6187169feb1ea533 +Plaintext = b01e3f4fb5ee7501e8c2f4ccefb542ae20d7fd61a2c41c8b +Ciphertext = 1fa7aa0307977f6ee370e2259172fafc90417feaa1e13060 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 060fc718e994edc7bac9962ca7f28d +Tag = f2eb6c0ab42acf42985c721bfd576e71 +Plaintext = 22ab6a0daf953165dda864cceeeb782e275c0b072aedd284 +Ciphertext = 8d12ff411dec3b0ad61a7225902cc07c97ca898c29c8fe6f + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = cb6f96dd06015967279ade310a7401 +Tag = ac502b8e65cc1329b6895afdd354f5db +Plaintext = f96ed20b23c784015ff58f5f040798ca75e3b98045deca8e +Ciphertext = 56d7474791be8e6e544799b67ac02098c5753b0b46fbe665 + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = 9aa6d501455019b4ef4c7fb789d22f +Tag = 87e5f8a8148f21adf721477c36bd99ca +Plaintext = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671 +Ciphertext = cb3311cd8ed070804105f7aa90ee14ebf6ae04ebf2ab9a9a + +Cipher = aes-256-ccm +Key = 520902aa27c16dee112812b2e685aa203aeb8b8633bd1bfc99728a482d96c1fe +IV = ddf50502f414c1bf24888f1328 +AAD = ebd1d12bbd14176a0d4080aa1edb89 +Tag = da9ea0427522dbeaa509a11755434760 +Plaintext = 32d71e59634126ac6c6156a80a0dfa0175b29e9f40a31696 +Ciphertext = 9d6e8b15d1382cc367d3404174ca4253c5241c1443863a7d + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 0ae8c012ff39753510df3ee80707e4e2 +Tag = 0ec2c6fb687753bca4580adc6aa2f296 +Plaintext = ddc3c1aa73fb6de92bb4db138e26f3c2e0543ab4f5924871 +Ciphertext = daa8256d4753fdf9cfef876295badaba89b45cc497f54d22 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = d5b22e7697ba70e00c7ef32709563f01 +Tag = 8f30b9c8e380c98bb939a4e8a85af758 +Plaintext = 34270576724083e9989764d08a0d5c1b4738f34927a1e436 +Ciphertext = 334ce1b146e813f97ccc38a1919175632ed8953945c6e165 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 6b4edef415763aabcef01863e8197aec +Tag = 53e80d8ccc687fd303f4cdef44b6e8b9 +Plaintext = 904fe88e7a8e76447a64b488ef84184d0f1ab1b67f0c5a7d +Ciphertext = 97240c494e26e6549e3fe8f9f418313566fad7c61d6b5f2e + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 4c099809061024c010a77e9621fc2bcf +Tag = 0c635dac5b70338dac3f33ce16a99145 +Plaintext = 51fe7bac8f3255f17f64fb9322210fb7d8da8e762498b233 +Ciphertext = 56959f6bbb9ac5e19b3fa7e239bd26cfb13ae80646ffb760 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 9d329439588164d5a96675a85c07a039 +Tag = f996e8163affb1494bb3c12eeadf16b6 +Plaintext = eab6dbc13bb92df36b1882df2b8f34c3cefa41f95717fbd7 +Ciphertext = eddd3f060f11bde38f43deae30131dbba71a27893570fe84 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = b768fc3daf29ff9e8bd575072d986e99 +Tag = 98b4206a9622d5631751a497dfb1f662 +Plaintext = c44c9c287d3eac7c30570d9c4adf2e4857c598f7c54cd126 +Ciphertext = c32778ef49963c6cd40c51ed514307303e25fe87a72bd475 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 3efc7cc2d16bf82d2bcfbc559a09b2c9 +Tag = 7dd300167d267ad700dea37fb475ecdd +Plaintext = c11b9c9d7607f387359c0038d3e8ec4d527562ce63c3384c +Ciphertext = c670785a42af6397d1c75c49c874c5353b9504be01a43d1f + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = 0ff89eff92a530b66684cd75a39481e7 +Tag = 303e9c9bd0d8e4aac42894ca03d6ab06 +Plaintext = cc17904b166f28df82f57889f391159a4a308e752d714ee5 +Ciphertext = cb7c748c22c7b8cf66ae24f8e80d3ce223d0e8054f164bb6 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = fbd11bc75759f0461e796f6917aeb42b +Tag = 0953f46e0e9cf1369e9eb018a4df3c09 +Plaintext = 6f97e595ea2f40612ea84a2097b974d235055fe1dae59403 +Ciphertext = 68fc0152de87d071caf316518c255daa5ce53991b8829150 + +Cipher = aes-256-ccm +Key = 57da1c2704219ed59abfdf04743a9a93c87a63d471818de0f1564b2db6421562 +IV = 4b60a47b7e90f622fa0bf803e1 +AAD = b79940952f42537484aa2907c72dffa9 +Tag = 8a1702dfa0cd9c290c5ff9c35cc83705 +Plaintext = a48cbf933b88c0ec5ddcdd8fcad186391c2cbef308607de5 +Ciphertext = a3e75b540f2050fcb98781fed14daf4175ccd8836a0778b6 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = 5824689453bc406bf891b85e4576e38fe8 +Tag = 10ca926f1a430c08c12e23db3d913e93 +Plaintext = 967daf12f16f166b7b5038f83a1cf0b980f5abf4c7746f2a +Ciphertext = 7cfe2a7a54306eb8d8a63d3d1ae86794f9a2c22198b2cb4f + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = cd15973753b94b77bb4b778de8b3b0cabb +Tag = 5d5b674fd15410cc235dba6d8c8d82a8 +Plaintext = c4a756f6024a9dceabf6e264fffff9c719217fb418141ac5 +Ciphertext = 2e24d39ea715e51d0800e7a1df0b6eea6076166147d2bea0 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = ed8540f7ce451c522c1ff5d2d1030d7b3f +Tag = 88750b5f36c86e7eda9015e960a7471a +Plaintext = e0d5de7d1eace211c0e70859ff315ff485d1200c6dd13f93 +Ciphertext = 0a565b15bbf39ac263110d9cdfc5c8d9fc8649d932179bf6 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = cbbecf92551a15f5cf00a5be4a50b0eb17 +Tag = d5fa842209dbbc04c87965f78500fec1 +Plaintext = 05a4a4ba28fe8876f9bcfa5ec60651fd3fd4732f22049bd5 +Ciphertext = ef2721d28da1f0a55a4aff9be6f2c6d046831afa7dc23fb0 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = 873ba7f8b71517ec50297b21cf94cdb7a5 +Tag = 7d147edbe114bfdb3f3b9b37d5719ef5 +Plaintext = 9cdebaeee8690b68751070691f49593668a6de12d3a948b3 +Ciphertext = 765d3f864d3673bbd6e675ac3fbdce1b11f1b7c78c6fecd6 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = ac087420feb1e1e8c2546c2a8b8a5af0d0 +Tag = 57b4c2bbc377937d15b3b89543e29d0e +Plaintext = 5672e61cf664d73918dc1ca84df1fce82db0e305a61d57b9 +Ciphertext = bcf16374533bafeabb2a196d6d056bc554e78ad0f9dbf3dc + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = a12c690568114fd7a677f49d74e84fc1a6 +Tag = 2e6ca774074b47b59adabeaf8835582d +Plaintext = 0f5452e6b51540cf219998590995cd7f8785fa40b4f217fc +Ciphertext = e5d7d78e104a381c826f9d9c29615a52fed29395eb34b399 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = 7a78ddfe5afb2dc90ee4a600c2fc014b0f +Tag = bd320f48a7221537e3cbed5ac4154a56 +Plaintext = 9ad338cbfd1b52e6ae4178f05e00062274f8b0b25eae72f7 +Ciphertext = 7050bda358442a350db77d357ef4910f0dafd9670168d692 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = 6053e466ed1f647a3cd88c4d2052ec00cb +Tag = 40574e201f9a26932a87c8d822505814 +Plaintext = d17b8d556e83190c84d4a812957c64ffa7f336298f4e2c72 +Ciphertext = 3bf8083dcbdc61df2722add7b588f3d2dea45ffcd0888817 + +Cipher = aes-256-ccm +Key = 9267ebc99ccf648b146cba3c251187e24a9947d806ceb0ced6894211641a1e0d +IV = 9b7298950280e8762ecdc9bbe4 +AAD = f7673e3beb526834d6507058fe62e34987 +Tag = 837dfa3fdef2f012b6609de2ac5dd9d6 +Plaintext = 2eaef86b0f602364f86510eabc58bc9ad1e6f0a6f6df0b83 +Ciphertext = c42d7d03aa3f5bb75b93152f9cac2bb7a8b19973a919afe6 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 72674aca7eba2fc0eeafbd143c2c4d8aa6c8 +Tag = 57e9a9203da74387a9468f8af5e27547 +Plaintext = 33ae68ebb8010c6b3da6b9cb29fe9f8bd09b59ec39f4ce4b +Ciphertext = b22afdf4f12c43ec23e01ac1215a3f5286059211207e9570 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = f7da3f100b80e2ade812f1700aab6b72f746 +Tag = a3985f12a49eac424a35c94645917e91 +Plaintext = dbb29817b86cb80e0d008742cedfbf52b236f15ee8cad50e +Ciphertext = 5a360d08f141f78913462448c67b1f8be4a83aa3f1408e35 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 4b05eaadf98505d0806c233b2cdcaf4254e8 +Tag = 4ab089a8724b87a1167180963d44ec65 +Plaintext = 145aa8cfd544a2f46bae1aa83cbdb3d21c3d1350078a3af4 +Ciphertext = 95de3dd09c69ed7375e8b9a23419130b4aa3d8ad1e0061cf + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 05a3aaa08b9a6aaeb84704431425d0e45a14 +Tag = 0a7d1520141892e140448292185c41c7 +Plaintext = 6b32e8906dc89194a69410b79cd041b62eb01afb28a3e10a +Ciphertext = eab67d8f24e5de13b8d2b3bd9474e16f782ed1063129ba31 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 74db01edc26a2d2044cb8eaad8b907b78863 +Tag = 72d3eee219d94bd788f62df4add5ec40 +Plaintext = 545ed03588fd85a8bbfeee66d2082ae6f8e2f3c9dbd8725f +Ciphertext = d5da452ac1d0ca2fa5b84d6cdaac8a3fae7c3834c2522964 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 5f2c6ddf5a2403e04dac8b2813c060b67e76 +Tag = c600496f4f8b1b7da118ee36d8cd57f8 +Plaintext = 66dd5fd8611c551973a3d0c078ec2b4d39ad163d9168de3c +Ciphertext = e759cac728311a9e6de573ca70488b946f33ddc088e28507 + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = a650a2a5e3c6f7c95614570aaefd0cdd9a42 +Tag = 4710004d06ce7a7efbd19da4e3ce3cf7 +Plaintext = 6f364b3f778376cbf3f4b0b0c5350a8fa278f9d8c25faad6 +Ciphertext = eeb2de203eae394cedb213bacd91aa56f4e63225dbd5f1ed + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 477c2484cf5c56b813313927be8387b1024f +Tag = 304099641c4ec3dc2c54fdf4f48dbef2 +Plaintext = 3de4798d8ad84c460b92abc10b7f5e7c9fae46a1dd353687 +Ciphertext = bc60ec92c3f503c115d408cb03dbfea5c9308d5cc4bf6dbc + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = 564e1df74aa2d7ee33b66cfeda810774e16c +Tag = 905c1b05e8945685f8688faea777eb43 +Plaintext = 7769b45fea11f530fb9a67f1b5b1964a34cfa32bbb03f4b1 +Ciphertext = f6ed2140a33cbab7e5dcc4fbbd153693625168d6a289af8a + +Cipher = aes-256-ccm +Key = 7a855e1690ee638de01db43b37401dcd569c1ae03dc73dd0a917d0cadb5abc29 +IV = 8f160a873a1166c8b32bccbba7 +AAD = d5e66502529b0045883d935e05acd242baa8 +Tag = ea5a3b6a8bafde4006b993cfb3b13557 +Plaintext = 0c0a502b42f81b51806c7080a8155280f493f2922cdc7df8 +Ciphertext = 8d8ec5340bd554d69e2ad38aa0b1f259a20d396f355626c3 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 41e9d65632f74f449a6842d5e6c4a86ef83791 +Tag = 42be2e2ba05c54b619850db5c9d684fe +Plaintext = c7360282c85484a5a33ab1c68dd70873ab4e74ffd4a62cd5 +Ciphertext = 2e961b3a2fa1609a4e6fd04bff6ac5e306ae2638706f997b + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 555304659bde926cb2553b8a4605251fcddd92 +Tag = bbdee2605bc69601b1e83d1e7a0b400d +Plaintext = 1332314d1cf783b9f64e0fa2d42d43d225da9fd5165b5f0a +Ciphertext = fa9228f5fb0267861b1b6e2fa6908e42883acd12b292eaa4 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 69ea953dbb910ec589372d797c7379d3f3b9e9 +Tag = 304611baf530932da7954f714514d228 +Plaintext = f264da8606ea429e0e25da3f2efafe28beaff05b42097369 +Ciphertext = 1bc4c33ee11fa6a1e370bbb25c4733b8134fa29ce6c0c6c7 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = d7186a67061319b44eedc0677ebf5d932d5bce +Tag = 6d1d44e26404b7324767f0b3f7486f8b +Plaintext = c9ee6482144dc61c43041324a2c18ede370011cb4882b0c5 +Ciphertext = 204e7d3af3b82223ae5172a9d07c434e9ae0430cec4b056b + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 38f37d5e2da017f1953ff3701be0b38809ba80 +Tag = 5453724d2db19f606c85d00e49b0bb38 +Plaintext = 40524a4d32a711e7d5a59809878c318f42b6e2375b77b8a7 +Ciphertext = a9f253f5d552f5d838f0f984f531fc1fef56b0f0ffbe0d09 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = b3b2d249cd3517555fa692bbe9116f069e7405 +Tag = 6db1e4112fcd650e8c0f0f6fbf2d07e1 +Plaintext = 961c15bd7dc34cd5409c9e8869988676ec6845ecb0ee85fd +Ciphertext = 7fbc0c059a36a8eaadc9ff051b254be64188172b14273053 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = f5b5bcc38efaff01f69bd3a106dcfca3cc6414 +Tag = 1cedb29e68322e47ff9997f859257d98 +Plaintext = 879568ab9ebdea768a5459ced1d3181d822536c3d1ba38c3 +Ciphertext = 6e35711379480e4967013843a36ed58d2fc5640475738d6d + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = a2098e3e23826e01f31107a208202f710eff00 +Tag = 1c12bf2a3571ed672592b27e986e9058 +Plaintext = 47cb57599686716c75d7ecef5541d20fb908e6d98c39925a +Ciphertext = ae6b4ee17173955398828d6227fc1f9f14e8b41e28f027f4 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 20a3d53e77201599540344c4e746c3ae3a5f84 +Tag = f12b2be8f5966d96602111c28f87b104 +Plaintext = 4a8667b5ee09d3d4a6dca9a95f4ad406f1da94b846dcc6b8 +Ciphertext = a3267e0d09fc37eb4b89c8242df719965c3ac67fe2157316 + +Cipher = aes-256-ccm +Key = 0ebdc6ddb4c502725dd6ee8da95d56a0d1044b4694d6ba8475a4434f23a8474f +IV = fb717a8c82114477253acc14f6 +AAD = 92c592ead4b3f193cc36687593d4f0f412a5d5 +Tag = 776df0a0cf048892e65bd8ad77cb2255 +Plaintext = 1dc9e32ac4176f64bd78a6edd651ebeea3ba85dfcd8298a8 +Ciphertext = f469fa9223e28b5b502dc760a4ec267e0e5ad718694b2d06 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 2b411bea57b51d10a4d2fb17ef0f204aa53cf112 +Tag = e6f3ba30143acbc3a1c1c6ec74333107 +Plaintext = 4a17522da707b4b2587a0ae367a2cd2831bb593a18ef442a +Ciphertext = 1bf122798bd8ee8e73391d589bd046a294d1615794e69cb9 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 0248359f8071143c3cc1d61882a3547a0b3d2175 +Tag = 36cb510c13a039f4df8cc26a942f9911 +Plaintext = 4a6a7151465c2abd7e7fa1fd13019ad098b6ebcd190e96f7 +Ciphertext = 1b8c01056a837081553cb646ef73115a3ddcd3a095074e64 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = cca77bc4cf6c0abd3393dac3fbe90fbc8a1154f7 +Tag = 7fe0dedc2899dff81a251cff16bf5897 +Plaintext = a94f5ede43929d48d2c5a58c3262d9127d2ac3cb2fbd5768 +Ciphertext = f8a92e8a6f4dc774f986b237ce105298d840fba6a3b48ffb + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 9c082a84646c070bb11b7d6b92b62f06ee5b5b71 +Tag = 86c43ac23800de60a1fd2caef0f03261 +Plaintext = 7303bd41cf47289a3111366d08e8e21548baf293052029eb +Ciphertext = 22e5cd15e39872a61a5221d6f49a699fedd0cafe8929f178 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 1c3ede1982a807a410ae1e21947bf430f8db7027 +Tag = 26f7907e235c09d3322c4092d2e88f88 +Plaintext = fa9743a67978c20316cb91801d7789e350079aae3aadbd43 +Ciphertext = ab7133f255a7983f3d88863be1050269f56da2c3b6a465d0 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = deb05a30a026ff66ce71e98afa62f0255aef84f5 +Tag = 6bb44a28c145d49f49f2821d4044e4b6 +Plaintext = 99599b4042dcdb685350cdecfdf24992fd5b165670025d0c +Ciphertext = c8bfeb146e0381547813da570180c21858312e3bfc0b859f + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 93dd9b00a3353e5331338dcfcb7ca7e0bb873a4e +Tag = 0f7d20aa3d792d6a3ebc5ee0df2fd89c +Plaintext = 451101250ec6f26652249d59dc974b7361d571a8101cdfd3 +Ciphertext = 14f771712219a85a79678ae220e5c0f9c4bf49c59c150740 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 0855263860043207543c8c34648d53ec51c4f47e +Tag = 7ca4733f0208668b0a7879305e861d71 +Plaintext = b2db87b7787531968d603098cb20ca7c438b4af72623fea9 +Ciphertext = e33df7e354aa6baaa6232723375241f6e6e1729aaa2a263a + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = ee2d3a66deb3ebca867a902bb9202226ed516ded +Tag = d76b482ff20429da8f60f0f863e1af50 +Plaintext = ca18ce38086223e63b4f0b616d110010f9e45eac42f2ba46 +Ciphertext = 9bfebe6c24bd79da100c1cda91638b9a5c8e66c1cefb62d5 + +Cipher = aes-256-ccm +Key = 2ff64bbec197a63315c2f328dcb4837d0cdc21a5d6f89ff1d97cb51195330cd8 +IV = a235f8ee3de9896b71910ac02c +AAD = 8e531aaea849addab6a83497cbc504f489505952 +Tag = aab66e1ac2346ef97850a4985c64b737 +Plaintext = 5717ed5da5b8aa806a18bfe979502bab6632c9428d3a7725 +Ciphertext = 06f19d098967f0bc415ba8528522a021c358f12f0133afb6 + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 2d838eb51a4bc69a001a18adf2084a680f02a3c5fc +Tag = ef9af5679edbcbb7db20ab6af30698db +Plaintext = d3416a81b4246eb0bf8119a72a886bbc0ac9449c69f71d2f +Ciphertext = e001a8fae390dc5d672cdd18f86a1f728158ec83a002050d + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = d83ee7ce22fd1a2882d8d552346e4d7b3efdd67da4 +Tag = d435a5a38f84387f63b13407f65ec86c +Plaintext = 22b6f10b482448626f6c7bebb14f1497896d071738133b4d +Ciphertext = 11f633701f90fa8fb7c1bf5463ad605902fcaf08f1e6236f + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 2d5537b24d0b0f7a45703c1e131656ec9edc12cdf7 +Tag = 2ede8a705f8c988f55459542bd631b1c +Plaintext = d60edc830be8207ffd9e9f646d3b4343b10b3d56acb89d44 +Ciphertext = e54e1ef85c5c929225335bdbbfd9378d3a9a9549654d8566 + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 1a750eb326923412d94ccb35f5acd0f87415268178 +Tag = 986de774a612230ce6c71449d26732ce +Plaintext = 716d3132f449a9def383978102ae50ed3ccae0cb346ba1df +Ciphertext = 422df349a3fd1b332b2e533ed04c2423b75b48d4fd9eb9fd + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = b10fc523bc4562d44edfe5956f93c15c4ab38bba3c +Tag = e710431005264fa7d3fc04bac50fc1ec +Plaintext = 063c2ae2a15f26f979bf90657d20643e3184f1a9f75a3aad +Ciphertext = 357ce899f6eb9414a11254daafc210f0ba1559b63eaf228f + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = fe4f60ce9634e7dbc5e56204c4bf8aa9be577027ec +Tag = 5c13bea6ad0cad724e6cd02c89517ffc +Plaintext = bdc513e56a5bb70c02abc041af04d6e45e735d10cc88357f +Ciphertext = 8e85d19e3def05e1da0604fe7de6a22ad5e2f50f057d2d5d + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 48f3ceda4fd390a7eb38f7f5bcd14310af6b5a557e +Tag = d2a5531655aae01e249f213e0e04af0d +Plaintext = 7dc5d8cd90ce2faf76bbd0d52e5ae11b310fc2b0051c4377 +Ciphertext = 4e851ab6c77a9d42ae16146afcb895d5ba9e6aafcce95b55 + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 199ec321d1d24d5408076912d6bb2b6f192d6b347f +Tag = 2a127ef341345f9641b26e91265e1482 +Plaintext = 66c2696edec26ba3d07bd3f485a0d6ce8a1b0a85b20083e7 +Ciphertext = 5582ab158976d94e08d6174b5742a200018aa29a7bf59bc5 + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = 8b013f5782d5d1af8dbd451a4202866095dac975fc +Tag = a005ca13c4bf715c3b7b2782f799b23a +Plaintext = f4da8ac3e8fe5ec6a5b6a2f27b68396e850b46a024d441f0 +Ciphertext = c79a48b8bf4aec2b7d1b664da98a4da00e9aeebfed2159d2 + +Cipher = aes-256-ccm +Key = 24e9f08a9a007f9976919e10dc432002e2e078a339677f00105c72ed35633a3f +IV = 15977424eeec0ec7f647e6c798 +AAD = e320df32b71cc530e8493b12b9afbeabc255c5eb44 +Tag = 04642aff9cb9288d49f0e567dd837e05 +Plaintext = 244891cb4af66cc8e99a3784a2e82475e51bd5c7fde67cf5 +Ciphertext = 170853b01d42de253137f33b700a50bb6e8a7dd8341364d7 + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = a2f6337f86dd00d1a58448851e95d8c9bace4a5c8710 +Tag = abc1f9d0132394149c9062b74b82f04b +Plaintext = 2f59d94d4ab8eeb84c2a6fefb7fb0a3ac059c1e1a65ae34a +Ciphertext = 7ca0b1dbe34b0391e524b868b0af08b3e096917664d6aa2c + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = abf26b05558252c8e38c52b1ace087bbd1eb3d561239 +Tag = 6d7df57c6a792f6f6b24cb5f87e92123 +Plaintext = c25381853f73a3dc4195fdcbc45dfa1a40eb8324749adb2e +Ciphertext = 91aae91396804ef5e89b2a4cc309f8936024d3b3b6169248 + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = a13ade56b47803897666e42ef2ef88be0e779ac86c28 +Tag = 4ac19b0b74cd9d5e100598b96c9f1f2e +Plaintext = 8dc5226a2a13088c87f4bf94262e0c0413f06b35d2fda79b +Ciphertext = de3c4afc83e0e5a52efa6813217a0e8d333f3ba21071eefd + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = 3c5b68b65edf62755b7e064bd26c843816bf6c1cd481 +Tag = a77a27eabfc79f192c0ac491280af8d0 +Plaintext = ee4b23039cd512cfab8c7a2d0f2c78d66764520bc88759e1 +Ciphertext = bdb24b953526ffe60282adaa08787a5f47ab029c0a0b1087 + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = 0213fe13c49083d7c00335e1864dc139c9e7123162d1 +Tag = 39935f91c1e29fc1e4c5c5427ca9da79 +Plaintext = 30b48d4021838090fbd5251069ff8c631452daee5ef899db +Ciphertext = 634de5d688706db952dbf2976eab8eea349d8a799c74d0bd + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = a32291746b151be8134e183798aa82bef210343feaf6 +Tag = aeaec90ada2a1ffef64c3873af645a40 +Plaintext = 2286a1eddd80737a724ca941217e9f0232870b6c2f20d29c +Ciphertext = 717fc97b74739e53db427ec6262a9d8b12485bfbedac9bfa + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = a30f2fd445820cdf800145540602c877da0e4c311272 +Tag = 7932952831d0ba25c77c18fe154d8ed8 +Plaintext = fe703ca0901e4a706ce1393c7d8ce18a03eb2caadbfa7b8e +Ciphertext = ad89543639eda759c5efeebb7ad8e30323247c3d197632e8 + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = ed438e393e0e37629cb25044ae89de9fd0d42d60c1a3 +Tag = 234fd0241d00f3890a23ccd0bf16dcbf +Plaintext = 7043c67726870bb5816da925925bc2722478311c8a606cca +Ciphertext = 23baaee18f74e69c28637ea2950fc0fb04b7618b48ec25ac + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = 1013946815001a2c08acca4196e0d6668ffbb3883cf1 +Tag = af43498b0c3f70c119f82d5812db940f +Plaintext = 695e9712dbbf883e9bf8af9188bd01fc631968928258168d +Ciphertext = 3aa7ff84724c651732f678168fe9037543d6380540d45feb + +Cipher = aes-256-ccm +Key = 0ec1b22b8df05dc92135d2dfbefed8ea81458f5ea1b801e8a218faf6cbdf1a79 +IV = 97ebcb8575bb58260208d5c227 +AAD = 44cc9b2510680c4d73f1938c77de21242c8ee790ed7f +Tag = db66dbb03a4c943ac089ed11eb214bbb +Plaintext = 67ba90d22c6bb5f649bc0c505c5ed23a299882559a3bf520 +Ciphertext = 3443f844859858dfe0b2dbd75b0ad0b30957d2c258b7bc46 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 7cc9c51b69f98a06391ab32742fb6365e15106c811fe8a +Tag = 9163fa7a867f04cab6f52dc250070f31 +Plaintext = 065ef9eeafbe077c1c7049f43eb0d8999708e8609f214d5c +Ciphertext = 990065322a438e136860f7b019807e9feff52a642bf3d44a + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 7bb1bc069a783d45d51d8ecd0a53ab7a386fa1f5ef12a1 +Tag = fd33dd9155619fb040dcd6038c7b7367 +Plaintext = 69b2b056f2265e707d3e31e68bff6a060544c8a737b2a9b9 +Ciphertext = f6ec2c8a77dbd71f092e8fa2accfcc007db90aa3836030af + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 0dd220919d0eeee3b7cec36c47e376b778583b38bf61c8 +Tag = 4fcba5a886b1f33cf1cf44618d28f01f +Plaintext = b98d79aaa4c04171398c7f1189497acaa7546ef068bc7a3f +Ciphertext = 26d3e576213dc81e4d9cc155ae79dcccdfa9acf4dc6ee329 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 1c1915fab09348b9a5536495c70d1a040305708c112479 +Tag = eafe2c670eac203d5e90b9d520e7a618 +Plaintext = eeaeb773ade5fb2d27b50bb892916333e0b123c6e3ae5bdb +Ciphertext = 71f02baf2818724253a5b5fcb5a1c535984ce1c2577cc2cd + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 614b0ac4611b6c6d3b4ed089510dcd2215567bc3789f85 +Tag = f0388746438e83b731b5588fef53f1f3 +Plaintext = f2198e1f91fde2672a1ef60403c0d175f366b6780ee9f1c2 +Ciphertext = 6d4712c314006b085e0e484024f077738b9b747cba3b68d4 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 866fea4483d4e903566844e31c24283571832dfae32c74 +Tag = fca81f8b36d16698a600fd701f2c6424 +Plaintext = ba37617342b4eefd4bdce8fad30c4751b206d47814973b3a +Ciphertext = 2569fdafc74967923fcc56bef43ce157cafb167ca045a22c + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 9d7546f7e8b949c539d21a357f81d0151e278d0bf2c5a5 +Tag = 4c15a6d292c7ed2f31cf9512435ec7d2 +Plaintext = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f6 +Ciphertext = f6f3563424142a9d8a8edc1d384bea5d612e770ac247b8e0 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 42b692048c8b3cce1b5e83f4f33232a7d7d0bc20695e7e +Tag = a2ad73179d0314b5fe52dd7217518cb8 +Plaintext = e0753d4248643642c7a96404de8d76c9d80527b659ec6d31 +Ciphertext = 7f2ba19ecd99bf2db3b9da40f9bdd0cfa0f8e5b2ed3ef427 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = f1dfb6fdb31cb423226f181c0988a52ee4015aef4536f4 +Tag = 9ccc5ba1caf933b80bfc6f281109688f +Plaintext = 79ba959c7221b293e2115f538d9394c64284c756563c04b0 +Ciphertext = e6e40940f7dc3bfc9601e117aaa332c03a790552e2ee9da6 + +Cipher = aes-256-ccm +Key = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +IV = 451101250ec6f26652249d59dc +AAD = 8eafce9ba466fd53eb87f499d7c76bd486db0e90a3d281 +Tag = 73271ec36d92fff34609169f579c8f1d +Plaintext = e1590206717a708cad9cca7d23a3b8ee5f7fb7786aa3be47 +Ciphertext = 7e079edaf487f9e3d98c743904931ee82782757cde712751 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = cd0522ebe1fed82465277d1c10ae9316a98b4469be63b180 +Tag = b25764e40ac6a171e7e6bab4fdee4288 +Plaintext = c99c3e79125b6fd95e737326a842424eb6c6ecea4c0475c4 +Ciphertext = 76df4be4ec8373864399acda11294b220b9f7c3a7d2b3660 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = ce5bf070678cb07e963263b1562ff79311144addb6e4de4f +Tag = fca49758d17f2073066b82667eae6ce3 +Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06eb +Ciphertext = 519d742d71422c63c2fe1661c32e7a45cf9f7f2290f4454f + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = 07175be2475cc735c9a3c1140895277378debf8fb1c87c24 +Tag = 7c1d64d7e9de47a6ad7878283da9d870 +Plaintext = 6d5579aaaf8737b01620424f3ddeaf538f10dfad094e5ec4 +Ciphertext = d2160c37515f2bef0bca9db384b5a63f32494f7d38611d60 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = c821a8d4bab9d993c20dd206955304a55968e6db5ab6480d +Tag = adc2bb471862d25cfe25e66fedb8e28c +Plaintext = d0628b2027f06c246497977d05f211b2c2e302d5b82700b5 +Ciphertext = 6f21febdd928707b797d4881bc9918de7fba920589084311 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = 68439bc9d176feeeb4119d00ed5449dfefb72b5a582bfd97 +Tag = 319a493abc947945f1312395ea98d937 +Plaintext = 6cc9749f48c61050e421afa3a10ad3dd3aa02cc3f8586915 +Ciphertext = d38a0102b61e0c0ff9cb705f1861dab187f9bc13c9772ab1 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = adb262c924942e4e1964e9d97c6a8c159fbf9bfedc5ff296 +Tag = 21d0602d29447ba6b24a67509eaee1e8 +Plaintext = 92d50736466e64e6225962e76bd90da824f716a3301a1a90 +Ciphertext = 2d9672abb8b678b93fb3bd1bd2b204c499ae867301355934 + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = fc7b08707d3c3dac7689ec18088ee6502ef08d3ffbff38ed +Tag = e52a2eeacb1f023e849161b6306b6cfa +Plaintext = 87c7ac031fd63e4c83280dce6b68a92dfafb6ea19388fa9f +Ciphertext = 3884d99ee10e22139ec2d232d203a04147a2fe71a2a7b93b + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = fd43dfb66041b117f2ac54c94f7b6e2677860864d9494175 +Tag = 0d8c5b1e96b21460e0b5414639abeb0b +Plaintext = 6b53c46266b2f4284d8fe7f0549c98977344d67e178e9a8e +Ciphertext = d410b1ff986ae8775065380cedf791fbce1d46ae26a1d92a + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = ef1ad3eb0bde7d4728389da2255d1f8a66ecb72e6f2f1ac4 +Tag = 1c97260d20797d374c595cbc2ff080bc +Plaintext = 8e7d8a44244daa7df2b340993e32dac50e05d7b2e103be98 +Ciphertext = 313effd9da95b622ef599f658759d3a9b35c4762d02cfd3c + +Cipher = aes-256-ccm +Key = ef4c1d2314e671f666cc6667660f1438a293208c7cc29b412d81277f0a635c91 +IV = 50b23b052922366c25dd40e348 +AAD = 9895b24d12b004b215583eac70a95f4fba7442164f35c57b +Tag = 6cd287afcbdbc5531f11246080b22677 +Plaintext = cec07df916ffb7a453d0eb588b7462096f22874bd5abf814 +Ciphertext = 71830864e827abfb4e3a34a4321f6b65d27b179be484bbb0 + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = f5b2c88f5232c37273b1e66aa31cfa7201e33c21d60054d025 +Tag = c1411af83237c0f9eb0bfe8ed914da66 +Plaintext = 617d54fc6a23601c79e3984f93bfc2d151fde420863206b3 +Ciphertext = 57b3414db48982c6567265e1e0173bf38fdfaffe4461fbeb + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 8fabe14dcb3aa2fd28281147c326e98ad699ca7997f03a105d +Tag = 7ed6e23720b60ffe54bbb9f7ff371008 +Plaintext = 337290d0b4ce1e87afc3cf01d6c98f8c17a4603120dcfcd1 +Ciphertext = 05bc85616a64fc5d805232afa56176aec9862befe28f0189 + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = cf193eb3d755cb8e06c5be2334b5c8b7a22b6524d46d547ba3 +Tag = b6aa6b284e7720acbd027a50317f816a +Plaintext = 01ef7ac6470aa02ccd8c1712827e52699d05751b78e4c5a6 +Ciphertext = 37216f7799a042f6e21deabcf1d6ab4b43273ec5bab738fe + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = b4cadb5f9cb66415c3a3b71421b926f147566a174160a0bcc0 +Tag = 7058e9c0164ca079668097fde19e5302 +Plaintext = 64fb9322210fb7d8da8e762498b233b0eb172c91231c50cb +Ciphertext = 52358693ffa55502f51f8b8aeb1aca923535674fe14fad93 + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 48400d76ff882d6d5129c8674acc71f445356c9db9c91f8256 +Tag = f988611d5ce0f65b217bb4787bf59bbc +Plaintext = 291aa463c4babc76b4a6faf2e27e9401586b1ac83e4b06a4 +Ciphertext = 1fd4b1d21a105eac9b37075c91d66d2386495116fc18fbfc + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 749d369d837002ad33feb8aa22c3f68705eb4872e1b8f85a7f +Tag = d6251a5fd375a48583a6d0f8eb75cbb4 +Plaintext = 141cdd7f964a78815be144a785c6a2a298c54230e73039e2 +Ciphertext = 22d2c8ce48e09a5b7470b909f66e5b8046e709ee2563c4ba + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 80214108b16d030feff6e056c9a07a00a1d5e3ebb07abd3f4a +Tag = af1dab0f105414293cb130bea285fd6a +Plaintext = fa2441cb7f9d072b8a3f1a496b2be6728a38b94a4f44c9be +Ciphertext = ccea547aa137e5f1a5aee7e718831f50541af2948d1734e6 + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 8b9fabe29718a8f297c9bf6f199c80bbc71f94eb3034a11ecb +Tag = 1cc3f7640a42460be877fb7059a3ed61 +Plaintext = c8ce88ab40b62229223d46cc44f21bb39cfef27aa9fdccad +Ciphertext = fe009d1a9e1cc0f30dacbb62375ae29142dcb9a46bae31f5 + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = 8812f28a0cd5fdaa226fdd44ed857241007377057be3bea577 +Tag = bbe0ddd2e7f4aa2024b3fec9281b6cac +Plaintext = cf59f75ca4d6d216cf8862b44b5192c382c140f862def117 +Ciphertext = f997e2ed7a7c30cce0199f1a38f96be15ce30b26a08d0c4f + +Cipher = aes-256-ccm +Key = 8544808e8fbf8c3a5e1d4ca751d4b603af9fe119eabc6923205815e0e748b7e7 +IV = b44a58724596b4d8dea827c1a0 +AAD = c8f05e96d703a4850bae1421ae9ff3aec7531baf9b899dfd75 +Tag = e5df1e5e96bb84f730fcb253d468278f +Plaintext = 4eed58f381e500902ba5c56864f6249d191e14d1b1fad3dd +Ciphertext = 78234d425f4fe24a043438c6175eddbfc73c5f0f73a92e85 + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = ef88f4393d6c1e7b7be55a12144209ee051bb779e440432721ef +Tag = 8a20a1abe7c842ebc08c8c81a2743c81 +Plaintext = b3b0de10b7c0996662f1b064e04e528b7d85ca1166985d33 +Ciphertext = d63e6082c95c6c5ff2bc0771321a4f883ef61cff7b99e0ea + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = a4c891c9dd1fcc982c35bc74cfe71651bae424602519672b466d +Tag = 845e2d6de83ab729dd200a21088a1ec3 +Plaintext = 4f0b40913f07269550b7b06ab9027a4d9331f8ef98a45dca +Ciphertext = 2a85fe03419bd3acc0fa077f6b56674ed0422e0185a5e013 + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = 4db5730cb9794f3b1facc9d6738115d02ba9f27ba02330fbb856 +Tag = 10ed272c732247a696a608ef67510f9c +Plaintext = 841e032773d58bc72a3237bc9b24c61b9efdd850fc2ea605 +Ciphertext = e190bdb50d497efeba7f80a94970db18dd8e0ebee12f1bdc + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = 471a900ee49f2cfa1d3eb37c951d810c349364d4cc3b5b64fc47 +Tag = 15f0df52e392c37ec15f7458469dae84 +Plaintext = b4db42e523e65557157b93dc0281601f7997e6731543a914 +Ciphertext = d155fc775d7aa06e853624c9d0d57d1c3ae4309d084214cd + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = 7b40b3443d00a0348a060db109e8882157612c43084ac5c3e9c5 +Tag = 421433dafea2b5484ba87b5050e1fb49 +Plaintext = 73e0ed35c0e847188e607cde46586eb9e237fbdc5d59163c +Ciphertext = 166e53a7be74b2211e2dcbcb940c73baa1442d324058abe5 + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = d563f5c048a1b45265182b99ca7b9004fdc73a9cb07806dd44fc +Tag = df91749fe3cd52a9431d9a847a8c2a9a +Plaintext = 4f7669caaedee961dbba6bde9d09fee1a20eee55baaf98f5 +Ciphertext = 2af8d758d0421c584bf7dccb4f5de3e2e17d38bba7ae252c + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = d301a61eb17366d4e70942ab69b4f4bcf8ff6a97f5972ee5780a +Tag = 7563d37846f5185bb44d71be1ea6a73c +Plaintext = 154454fb74e9565c56775a8e4654f75a38b954dd28c4e939 +Ciphertext = 70caea690a75a365c63aed9b9400ea597bca823335c554e0 + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = f74b48d168f77fbd3429728c0b168ecbd854264eaef70b74fffb +Tag = 55e93bc2d3f05d7016747690fb920e12 +Plaintext = 716b371857e68a17b20ea06651cdcfd4560a741830ca8a13 +Ciphertext = 14e5898a297a7f2e224317738399d2d71579a2f62dcb37ca + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = 3a257ce3592a8f88162f0bb4ecd5db3bb79b54ab17b0bbc61506 +Tag = 1c46822f839f09c41b7aa6dc06035c93 +Plaintext = cfdb7363985aa01af6f8e8237dbfb7871eb39303b4135269 +Ciphertext = aa55cdf1e6c6552366b55f36afebaa845dc045eda912efb0 + +Cipher = aes-256-ccm +Key = e19eaddd9f1574447e7e6525f7fd67e3b42807e44fbb60e75d8c3e98abc18361 +IV = a8c459ce0223358826fb1ec0f0 +AAD = 21916ebeca9e66b77cf55d1cac80a4c85d8b6b014f268ffa73ca +Tag = 4f8e77600c5bbc6d028fa25ba61a1719 +Plaintext = b4b67ac551d1966caa20d951351387f384c2e5d81a76a92c +Ciphertext = d138c4572f4d63553a6d6e44e7479af0c7b13336077714f5 + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = 70cfcb828d483216b46c3cd22e2f9ee879e9e3059b566179b6e16c +Tag = 1f8332f4236437737438e7aa1b5100c7 +Plaintext = 0d16cc69caa9f19b88b05e151b3d26accd018ca4a5786a80 +Ciphertext = f1c4bedb8d6f91676881daa37656a7e6402f472735b04a0f + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = e7e5779282db80f424dc050b2c1e7754b2a5d3a8beae77beb74e34 +Tag = 8be2f6f356c2eb401468be15104e7763 +Plaintext = 148de640f3c11591a6f8c5c48632c5fb79d3b7e1cef9159c +Ciphertext = e85f94f2b407756d46c94172eb5944b1f4fd7c625e313513 + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = d17e8189a94a559b07be9549f73d653172740e8e978f5b0a38ad43 +Tag = 9646f2b6c2455603f1a6f20ea5a4611a +Plaintext = 00a23b25bca7c206edd051814d81083db1cd00048ce8ead5 +Ciphertext = fc704997fb61a2fa0de1d53720ea89773ce3cb871c20ca5a + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = fda37ff136895de7ebeaf81e701e5751245201baed2e13d7e1b591 +Tag = 303fa5d8321241b1c9e18a5909d6e428 +Plaintext = a89409b0977f60a029dc4c1560ba6dbe7c65b068633acf74 +Ciphertext = 54467b02d0b9005cc9edc8a30dd1ecf4f14b7bebf3f2effb + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = 9c179fd0d6277a5e073e77dd6abb4cba00ad9c9932e6c002b951c7 +Tag = 9e8cb01db1da077502814db1610662ce +Plaintext = e16c69861efc206e85aab1255e69d6d33c52cf058dec9d0b +Ciphertext = 1dbe1b34593a4092659b359333025799b17c04861d24bd84 + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = cf5703228e615428d3d3805e428e754961d205c5aa0297ecdea71d +Tag = 40a02a49857d7b280330b8105efac854 +Plaintext = 62036cbed3666d85624d3dc9c1f437454b9ab5c03ce0de92 +Ciphertext = 9ed11e0c94a00d79827cb97fac9fb60fc6b47e43ac28fe1d + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = bab7e36098d59d3a31d7784d549aebfc6938bbd0612c85c0edb796 +Tag = 5ecfa9dd03e2db70aa212ee7dcb573fd +Plaintext = 790ac86c5e9d8ce8cbec1dfb7e4fc4dca3d0b1039adfe585 +Ciphertext = 85d8bade195bec142bdd994d132445962efe7a800a17c50a + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = 96f0b7cd7439721d4c9cc4f69585f8c90a95bed8fea22150efffba +Tag = e17a7a0cd162945a3616892e101e3e93 +Plaintext = 3cfacd61ea3398de20ca6bdb00e81af482320614bdfb8642 +Ciphertext = c028bfd3adf5f822c0fbef6d6d839bbe0f1ccd972d33a6cd + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = ee71e53d0b4eef82575c2bd38d7bd21b41fabe58c6f571954fe159 +Tag = 15fadc2d79841d230cd55c04379f22b4 +Plaintext = d75c153e34ae1c6d1fcf5b1052190d8882041e1f9c5490e2 +Ciphertext = 2b8e678c73687c91fffedfa63f728cc20f2ad59c0c9cb06d + +Cipher = aes-256-ccm +Key = 9498f02e50487cfbda1ce6459e241233bd4c4cb10281dcb51915dbc7fb6545c0 +IV = e3bd4bc3a60cddd26c20aa8636 +AAD = 18a4aa894861c7720ddb43809c3d2ed2af2f1bfe8f9fd4f872c14c +Tag = b229b9bae4634eea6b723f432e19ae55 +Plaintext = 0e728056c7c64214be8f1f1727408d8cca8c42e2ac7bf67e +Ciphertext = f2a0f2e4800022e85ebe9ba14a2b0cc647a289613cb3d6f1 + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = ecbd7091732e49c0f4bda2e63235ea43bbf8c8730f955f9c049dd1ec +Tag = 475acd27900478f09fec1f479ab3a7c8 +Plaintext = 89198d3acc39b950f0d411119c478c60b2422ffe7e26e00b +Ciphertext = 7717b8e4447afcea1eeebf3e39ffdab2f52828e7931ef27e + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 9a04820205234795ecd540b6a0b2fbd0b19f18106c42f374a2b98425 +Tag = f7b7ed6e8ede6ef5a73b484bf13b3424 +Plaintext = c0f61950f98110db4226e269cf197c7e2794c5b87ad68cf9 +Ciphertext = 3ef82c8e71c25561ac1c4c466aa12aac60fec2a197ee9e8c + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 0e4dbd167da0240298f4795102ef18ff9a8772c6fd73b3374cdfa30a +Tag = e47d08ea0788f7ca0ecd846689c8027a +Plaintext = 7960dbc9136880e2eea7956c3271adfe2aba7dca53da917d +Ciphertext = 876eee179b2bc558009d3b4397c9fb2c6dd07ad3bee28308 + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 2de4291068a5d290b599a73c6a8ecff4f9fd6c9cc48f14c233e18581 +Tag = d081f66b1c7b70718dc50367c3da6792 +Plaintext = 0c5d7055bbfbd2bc213cfbbafa763b71b1fde6f4de96fa59 +Ciphertext = f253458b33b89706cf0655955fce6da3f697e1ed33aee82c + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = dedeb714f555575fcedbd9de8171484090e6466dd4fba3c6b7c42eae +Tag = ce672883438da186741e6c542b3f805d +Plaintext = b5654edcc8f09e4f80d0258c9376d7c53fb68f78d333b18b +Ciphertext = 4b6b7b0240b3dbf56eea8ba336ce811778dc88613e0ba3fe + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 03d340904ace1cd52d4b72a96d96afd77aee68ac3936415005ed0d56 +Tag = cf58d4a5552bc8ed1b1dda46703a256e +Plaintext = d796f3409a7eeb896c3d4ebef46e9c6e553aab28b1cc4a90 +Ciphertext = 2998c69e123dae338207e09151d6cabc1250ac315cf458e5 + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = c67f9aa8cf1be3b4377c30c175d33ab2af390982c6a015d99209acdd +Tag = f95cf2b57e06de4d01bbb6c0e39f37e1 +Plaintext = e4dd279a79a381c68de777df941a4779e50a1381c8aa9122 +Ciphertext = 1ad31244f1e0c47c63ddd9f031a211aba260149825928357 + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = fef1b2ccd661b9fac85ba005addebdf8317ab104920549d3a490a21a +Tag = 7589cd12984286af98908db88920323c +Plaintext = bbf0c267d952aeb6f810601b9cf1962a92dcaba7273e6902 +Ciphertext = 45fef7b95111eb0c162ace343949c0f8d5b6acbeca067b77 + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 693fae7af84aa397f0b2baaed9b3c7953f75e7424c49b6349c2fc20f +Tag = ee8fc441da990dd92c0caeac9d956699 +Plaintext = e8b13a263e0c4fb5645e500e88ab8074ab7d92e5a8dac6aa +Ciphertext = 16bf0ff8b64f0a0f8a64fe212d13d6a6ec1795fc45e2d4df + +Cipher = aes-256-ccm +Key = 3ac7d5bc4698c021e49a685cd71057e09821633957d1d59c3c30cbc3f2d1dbf8 +IV = 54c8ff5459702aac058bb3be04 +AAD = 85e5df4ddec99f0bea14b3338b2eb190ab6584f5253c6c2ee3064637 +Tag = d502f5434bea8c3c13ad5422ff90e218 +Plaintext = 067de2869333ed22c7b63ed7eeba1301bbac69b0d430adb5 +Ciphertext = f873d7581b70a898298c90f84b0245d3fcc66ea93908bfc0 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = a516ca8405e5c8854e667921b5c5e1968bdd052915b55ac9984b7eefb3 +Tag = 12e57c576b315f48c11877178389aaa0 +Plaintext = 8b9130b0c3c15366831bbb19f377e3209a8dbf7619cd09bd +Ciphertext = 4646b2acdeb11174171da23999cd54e297daa32bbc13d305 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = db3121ea71294983b185207a9d8de3e484a66c0431bf07c962eb82977c +Tag = 66775e693f93af6575dccc7903538065 +Plaintext = 7f369bbc99b6f08049eeb43566269a174829d4dddb05cb9b +Ciphertext = b2e119a084c6b292dde8ad150c9c2dd5457ec8807edb1123 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = 1651cf38fd9b2da65ebb4922b97dcb861128eeefa060d6c1c94b25eb4e +Tag = b70d8de40c2068de96a274d3b5086b5a +Plaintext = fd0900b5fa72e2fba43d611bad25de40a3507a5cc5d186c7 +Ciphertext = 30de82a9e702a0e9303b783bc79f6982ae076601600f5c7f + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = af87b347b59e37a424004a00907dcbcf6a554e6782a9be12cb3047625e +Tag = e7da096d2fb28f20f64a000fe93e96e2 +Plaintext = 36318d80c02a1da41ef1652d9a752e155526b5f597fba226 +Ciphertext = fbe60f9cdd5a5fb68af77c0df0cf99d75871a9a83225789e + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = 0680d5bacefa2ab14aa12b0e517a1432862d4215dc72dc4d5ac6b96c1c +Tag = b88748a2de31261534cdb2237565bf8a +Plaintext = 7a29aa2994d11215ab3ef3382b3db6ed581164a235c4b1d1 +Ciphertext = b7fe283589a150073f38ea184187012f554678ff901a6b69 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = 9af701f0a9de52309267289bd170fb97c03c131c0a169d736137ff3d74 +Tag = 0c003eb65ceedc98ae4e38ef341ee47d +Plaintext = 3542fbe0f59a6d5f3abf619b7d58b199f7caff0205093f8b +Ciphertext = f89579fce8ea2f4daeb978bb17e2065bfa9de35fa0d7e533 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = dab7845fb7ead205569475753c7e26540c09d3a74312f2de25181511f8 +Tag = 5c2fb596d8ff6a863604cd224fa3be42 +Plaintext = 83c15520d9541c86b3dd809ede42de22bbb2b75ff18a023b +Ciphertext = 4e16d73cc4245e9427db99beb4f869e0b6e5ab025454d883 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = a844d6dbd05545ecc736994dc9fc2260c5ab63ed6ffdc40b915f8744a1 +Tag = 2ac782e2cd8ecb06172eef2cb9b0e331 +Plaintext = 793a188fa3efa32f41d6e4c5b42353b95024117d546c79ca +Ciphertext = b4ed9a93be9fe13dd5d0fde5de99e47b5d730d20f1b2a372 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = f9112503884615c0e8a1d8414724b0d19298988f393a27c436b2b6734c +Tag = f814492b42571033f4dffc0282ea2f51 +Plaintext = 6b237444fb0e1f4150701546c4cb24021c5edad30d9b31dd +Ciphertext = a6f4f658e67e5d53c4760c66ae7193c01109c68ea845eb65 + +Cipher = aes-256-ccm +Key = 948882c3667caa81c9b900996e3d591e6fcb3d08333eeb29911e9c6338710c17 +IV = 43b0aca2f0a9030f90559fa6d3 +AAD = d633a5a3defdde6a68f959ef39a91c6ea6e13ef1a7859d2c2c94d3a5b4 +Tag = 75999099df2de6e436bd99f0341423f4 +Plaintext = 6342312e8a72f71f2e5afe04cfcde4d60a41556111752103 +Ciphertext = ae95b3329702b50dba5ce724a57753140716493cb4abfbbb + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = ebf0b3e3199a5c3773c761c725c7600add5f9d8321c9f8e5e5fd1c7a5d2f +Tag = f8562eadcdcbcdbad1299bea1523f5d2 +Plaintext = 094b538110495e938b08cf748a6bcf3e0c80ff9c66570237 +Ciphertext = 4d8b53016fc8bc9677184c0fa15bbd3d671b9366d82ecb67 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = a865b88d512e485ab3f2844c29e6dde0cf1151efa9ad3b3021d06fffb74b +Tag = 59ff77cf0962455b3539dbf91f3077cc +Plaintext = 23edddd8732cdbf03af08162f0e4a24c9222bdbb4549c663 +Ciphertext = 672ddd580cad39f5c6e00219dbd4d04ff9b9d141fb300f33 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 16918dbc785d94a8f1720c5ad234dde860219874c9fb076a5c290903f85b +Tag = 6dbed76d94c90595b49d50c84c3efc76 +Plaintext = 1798286c37c1504fc0d7402681f6f70711ef506dcc3e29d0 +Ciphertext = 535828ec4840b24a3cc7c35daac685047a743c977247e080 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = a2969243b0955402ab45a430fef2ef9e0c025006732bf8e592e3d3884918 +Tag = 48fbe60c146056e5cb01268403e4b9f5 +Plaintext = 0d02778f90a164a4f9ada9dc7fd24eeb941069621418ef32 +Ciphertext = 49c2770fef2086a105bd2aa754e23ce8ff8b0598aa612662 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 2de5222a0609f058f60e9e581b6e4f0ddebed84fc8302c8e985d17b89241 +Tag = acff35df1ec942b43eef5aef980cb038 +Plaintext = b0c3858231e284af6d231f043b95772f5e7b16a34ffcd2ec +Ciphertext = f40385024e6366aa91339c7f10a5052c35e07a59f1851bbc + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 3fc7453df038a92829dc103d44b63ad097d7cd7f9ae7996547012090c7c4 +Tag = 91a93f5fc28e5f4f351cfb888da763dc +Plaintext = 319f396cc02834f8e69d65f77496d0eb31ce1a7b7e324820 +Ciphertext = 755f39ecbfa9d6fd1a8de68c5fa6a2e85a557681c04b8170 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 18f1e92bd3c4a597ed970911d03a78ff9a6790147c9bb0ca5f23b70cce7a +Tag = 2c6a90ef2e9a969ec0576fae1d126a85 +Plaintext = 25550c03f8fa02b3781330f96e0fdc58681b0c0bc5e83fe9 +Ciphertext = 61950c83877be0b68403b382453fae5b038060f17b91f6b9 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 09ecb2406054716418ff3600c3c5cacb0845a377a2d80542abc36ec81bb1 +Tag = 59fd6aeb047200907911621e8756b45f +Plaintext = 210ff7975e08388b9a46eb732230e3a3856a497549b5eb49 +Ciphertext = 65cff7172189da8e66566808090091a0eef1258ff7cc2219 + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 62d515bb0525b565a6a3613ae20343c8da7424c8368e8cad6a862b7d37a5 +Tag = c4db6d5fd910c83fd77aefba3f7665d8 +Plaintext = 5d867265965bb2aafebb0691de9e157a24066d06fe3cbd7c +Ciphertext = 194672e5e9da50af02ab85eaf5ae67794f9d01fc4045742c + +Cipher = aes-256-ccm +Key = 3bf52cc5ee86b9a0190f390a5c0366a560b557000dbe5115fd9ee11630a62769 +IV = f9fbd02f28ecc929d369182752 +AAD = 00617ca141e55b045a188e4934caf6db63d4577f634db92c22010e1cbf1e +Tag = df5f21f32cbe5d272004f1c104cbcae9 +Plaintext = 396b27afd16a1081f37bbc1f742b549f5f68df799b93083f +Ciphertext = 7dab272faeebf2840f6b3f645f1b269c34f3b38325eac16f + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 860f4a09ad8b3d345c2aa18ffb803f0bc3b734a4d047a1437701a5e3d95288 +Tag = e678a392d228b210dc5c991905dacf3f +Plaintext = bc8b3bc48c7a88c9fafde258b6ccaa9d4f0d018703d63871 +Ciphertext = 95f083ad6bbaee6ab540fe023858f8baf25e333fd3e89c00 + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 8a84b57915bdbe7bf5a1c1a426512b3c178d883251cc46c95a8bbc8ed9e56b +Tag = 10fbdd3b305522dae6b652322d89d9ac +Plaintext = 9499ea48edab9bc21b91dd614f04934ca20db8630622f481 +Ciphertext = bde252210a6bfd61542cc13bc190c16b1f5e8adbd61c50f0 + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = ed8540f7ce451c522c1ff5d2d1030d7b3fbd1219a21aaa84044c4f23c08f5d +Tag = 8b6b08548e794eaf85ad9f5de80b1c00 +Plaintext = 73843a4e9e7937fed24bb1fae15822213b1aa86c07f1b5d1 +Ciphertext = 5aff822779b9515d9df6ada06fcc700686499ad4d7cf11a0 + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 61bb196b212feab645f05a8aa1986f6210a384c15bc749245d840b3565fb36 +Tag = cc73643a7ee9291e15137d7046a92f3f +Plaintext = a8e24266e5981b2ed14213a29f961cbbf7f02f63a33c987e +Ciphertext = 8199fa0f02587d8d9eff0ff811024e9c4aa31ddb73023c0f + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = a49c2df94ba65107f375ce1c53b72406143f6bcd270945de5b7811682fe361 +Tag = 204438662ea82f423a69c6e4e3c0623a +Plaintext = 3e3c402caeca41687d12897102e04312edf7b8c7d8567a22 +Ciphertext = 1747f845490a27cb32af952b8c74113550a48a7f0868de53 + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 7c48480e9bc87ba299e03899698b2259eef150ee0f2efff40a5583b80ab484 +Tag = 6ea00b9cd881e3f4b1e838dfa31f6560 +Plaintext = cfa9292b9052ac6bb863205d3c0dc2d9e20d2ba6a680d2ed +Ciphertext = e6d291427792cac8f7de3c07b29990fe5f5e191e76be769c + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 5cf9744090366d828b477dc890eab8ebebd44f6aeaa5b101291bf67d12867e +Tag = c59b3b87d722a58cd1de58f3963d12b3 +Plaintext = e0fe4e139ab0deb4fdf2145b719f35c50b869e6cb20608b5 +Ciphertext = c985f67a7d70b817b24f0801ff0b67e2b6d5acd46238acc4 + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 761d74be5fae170a1bdfa16081b44c1e49972e15ce0818df1390bf7204f619 +Tag = 158759886124f1f0ce8147c94f4e7114 +Plaintext = 665fdcdf55a1231e9912562eaa5a5011d69f6948e29e3f8f +Ciphertext = 4f2464b6b26145bdd6af4a7424ce02366bcc5bf032a09bfe + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 9815353b69d0b4effa52cefff13703fa71a6296f9cca0f02568661be4b64cb +Tag = 6310a79c9932456dbc00515b264f3168 +Plaintext = 7b2d52a5186d912cf6b83ace7740ceda3f5f443530c5a49f +Ciphertext = 5256eaccffadf78fb9052694f9d49cfd820c768de0fb00ee + +Cipher = aes-256-ccm +Key = e45bb1730d0d539aab3805350ac986540de9f0f6c239ee70395c291397b70309 +IV = d5c7824af715bb7822b6b340fe +AAD = 69dd1a050c8d79dafbbe3403af4dc1f070b9b2b980888aa796e6cff68d9060 +Tag = da7e97f9984a7db3b93aefb4316d9acb +Plaintext = 3cea5ff50167c5641066852fd00061df35b1f66bedb894b7 +Ciphertext = 1591e79ce6a7a3c75fdb99755e9433f888e2c4d33d8630c6 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = d37e35d7cdccd9824a1ae4c787819735e4af798a3beb49d4705336d6496853ad +Tag = d6b14027324b657a56263df148665393 +Plaintext = 771a7baa9cf83aa253349f6475d5e74dba4525307b022ba7 +Ciphertext = eebac2475004970071dfa2cfb855c4e78b1add8dcbccfc0b + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = ab22bc22bf2628b0e0ab245c3db2fc5128d13a011c2cc9b9fea05a79a3410704 +Tag = a8c810b6944815fd2e434193520b1d5b +Plaintext = dad95a4b4d3754613f0542caa62cfe4e375dfbdd369ec32e +Ciphertext = 4379e3a681cbf9c31dee7f616bacdde40602036086501482 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = c48c5aacf701137fc40fd0d3649641aaa5be427ceee702cf7ddf6408f458a581 +Tag = 8aa447b79284c588bef50b423de97908 +Plaintext = 3f28df9263e473be648fabad163aa4142b633388b16d8392 +Ciphertext = a688667faf18de1c46649606dbba87be1a3ccb3501a3543e + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = 477c2484cf5c56b813313927be8387b1024f995e98fc87f1029091c01424bdc2 +Tag = d4f4a413eb3ac2c474134995d4db9a16 +Plaintext = f83107b50a1f192ed45cc43fa80e6b519bfd859173ea9ee9 +Ciphertext = 6191be58c6e3b48cf6b7f994658e48fbaaa27d2cc3244945 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = 143bc037f1d0bd4ec16825c58cb3796bf8989200d27bda9beabbbc49247f59f7 +Tag = 56a3fb2e06734b28fbd57942a609d914 +Plaintext = dfeb324ba459ec4a5c54d2534e98002412e67db19cfc66bb +Ciphertext = 464b8ba668a541e87ebfeff88318238e23b9850c2c32b117 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = ffc416f1dae4e43c1a01339a604c44d6a0f25ab9ca3978c6aacb6d270d510ee6 +Tag = db94280d3c4a1cd8cb00705f60ae36f2 +Plaintext = 0765949e6f22c422ebd47dc1ed73f1b849d7a058a1656fc2 +Ciphertext = 9ec52d73a3de6980c93f406a20f3d212788858e511abb86e + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = 6090b596b4082ec6926576137f6561cf13916860ad1cfc43650d1b5142a12041 +Tag = 12caca26cc3bbb289da3be0616b3445f +Plaintext = 6db320cbe76bc5b8cee9ef89aca11765571c6c501993195a +Ciphertext = f41399262b97681aec02d222612134cf664394eda95dcef6 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = 178ba75adb7c5bea6769270bb3b4f6ce208d4a786913d3ced7bb4090b5f65544 +Tag = 6cc8c665289d907628eb0e299c2d411e +Plaintext = 0875020959ed969cfb38636d1d5aabce9658b00171a7614e +Ciphertext = 91d5bbe495113b3ed9d35ec6d0da8864a70748bcc169b6e2 + +Cipher = aes-256-ccm +Key = 2e6e34070caf1b8820ed39edfa83459abe1c15a1827f1c39f7ac316c4c27910f +IV = c49ccef869bb86d21932cb443b +AAD = 90f0474dca998916075b1b1428df14d90be05491bb8d5d88e32e65ec890ba9d3 +Tag = f7e481607a2a0529f9cda1d5903325b7 +Plaintext = 4f89ca6ad371f86a6e073ec12fb1b928bb10d6639233b918 +Ciphertext = d62973871f8d55c84cec036ae2319a828a4f2ede22fd6eb4 + + +Title = NIST CCM 128 Variable Nonce Tests + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = 37667f334dce90 +AAD = 0b3e8d9785c74c8f41ea257d4d87495ffbbb335542b12e0d62bb177ec7a164d9 +Tag = 84d71be8565c21a455db45816da8158c +Plaintext = 4f065a23eeca6b18d118e1de4d7e5ca1a7c0e556d786d407 +Ciphertext = 768fccdf4898bca099e33c3d40565497dec22dd6e33dcf43 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = f7a5098b2a4d92 +AAD = bc498326755503ff25d02805eb3517221b54eb4fd79af0fcdf9312b2a9ad95f7 +Tag = 697b41c9a69acaf8386140ee6e36f406 +Plaintext = 3e2144e2a381b718962a77e167778bf579957a8fae29612c +Ciphertext = 98ce91033fabaa8fe853d347be6cbe5de102fdccf042e7be + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = 732d2dd64b4a25 +AAD = 495b03df82e317e4f351c5323d17c673f4c77856983179d7c7cb75c2b0573c72 +Tag = 2d442ff663242fa269c4a742a220edc5 +Plaintext = 4bb0d170bdcc70fd18f19605cf9c6181082c4367f1e6fbce +Ciphertext = 9bd9304259962448fa8487bc15d950303621213afd88f1e3 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = fefd3ac595428f +AAD = 91ffb6be8e129cef9189f7e0fec8e937afcfc6083b6a79a778a724bb3e8d0794 +Tag = 564a2f1cb7d77e0223287740d5ff9003 +Plaintext = 9e8c4f1292e8d7e5179b34ae5d2ba2491d7754acc54bb91d +Ciphertext = a5d012b3062cc93b831860d76539169c88854b85550c67fc + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = e14d81ee3b873a +AAD = ecdc5249ceb48e8d5a4483043921c00c1acb1843fae00155a28f3a127150b1c4 +Tag = d217fb611daeb66fa2d8e1bd43cb2131 +Plaintext = f99e23288e6b5ae85c14610994d90d5fcbcab62b4ed1333e +Ciphertext = cc4ee711d0202deb58664e00cf0cf70b737f48ddadcefd6c + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = 2cbeaba94dbbd1 +AAD = d129674c6c91c1c89f4408139afe187026b8114893d0f172f16469b183fee97e +Tag = a45116736e95d823e579d73dc31dc487 +Plaintext = 1b42cb685bd462fbd40e0273a81c767aa81cb43f17d3c0c9 +Ciphertext = 1a1b1c7130aa63098dea17ffbb2216d1d276cb10145b0762 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = 8a961df9c23f6d +AAD = 07185502bf6d275c84e3ac4f5f77c3d4b30d8e106603be84410c11849a3c18ea +Tag = 837ed517dbd7e6fe34ea42b01c69d370 +Plaintext = 434e182d04ecda519a6119fbaa4c45e8c9803a9a3eb51dae +Ciphertext = 3f603939c6226d8208b2b0e675b82557609ceaeeee4032c7 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = d3604d390faab3 +AAD = c95e7329d36145664da69d25f24b301d334e1bca2baa74b2d5c325ed7d04fae4 +Tag = ef2e0b322f51abb366a1e8e37f4fe4ee +Plaintext = ee104be898a225eb1da99163bbf768d8ae6d5850af6f8767 +Ciphertext = 3e6a7683d9d804f791f77d2b69996102ba82477ec4557747 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = db5004a1cdae8e +AAD = 1370fc9d5bf1ad2d071be5a28b235402a85270f536b5601c221519a3b329c71a +Tag = 2e4ef944778281ed186b4a8099b47fff +Plaintext = 59bee7d18fd4ba573f3e4f61076f5b9f6a3487e47d98c729 +Ciphertext = 6db54d6f5c3f3efa6da67aea1234d46e8b679a5c257c66d8 + +Cipher = aes-128-ccm +Key = c0425ed20cd28fda67a2bcc0ab342a49 +IV = 783477f981ef05 +AAD = 04bbf2a826bdf3d55069b1936c4f8e8e08189f54066a035c950c7347604b1b65 +Tag = bc5c098625c51ac7fdd15da2cc9ef4b6 +Plaintext = 6150f132b25727ebbaed9f16bd91ebce00c68e5b39bc0ef9 +Ciphertext = 36f78cef22cacaf9f3d4464821737f7fbacd79be517b4727 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = 21fd9011d6d9484a +AAD = 66ff35c4f86ad7755b149e14e299034763023e7384f4af8c35277d2c7e1a7de2 +Tag = 4034d9fdb43c3f48932aa72177b23bf6 +Plaintext = 78a292662b8e05abc2d44fbefd0840795e7493028015d9f2 +Ciphertext = 5a0be834c57b59d47a4590d8d19a1206d3c06e937a9b57f7 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = 97f940d7c1230bd8 +AAD = 78337ddfe38be7897372b0f805603a9a9e55598452285764641c3bb7aeb54a3c +Tag = a20a3995cf25c5a7b9477d8916adff73 +Plaintext = 772aeff60eb3adf5a9589ad54dda0401cc9765589609dbd3 +Ciphertext = ef5c408dc6d0b501925a47def54d8deb9880a07a3e6380bc + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = acfdf302ed116ac4 +AAD = fe9d9989bffae3c9e6161eb0aa9d54ee8f5051f0dcabb5a750c5478c11798ce1 +Tag = 7d0e2fe322f203c08f44d7f9bd7258c3 +Plaintext = 99ffe16de323a9b65fe60305a2d062cae490ccca6d9fe9da +Ciphertext = 1bbc2c7877d845591660636cb6ccf4edcd4c156996a26a70 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = c8d36e13b7459c47 +AAD = 3f3c3a4c26dba18f385274ac5ac3df73282686488d91bc8190b7f61071b07f62 +Tag = 05fdd72307c3355b19ea66d4a16ef17d +Plaintext = 316ee95430329f706348886b8ac7779e3056809e25da0a03 +Ciphertext = fd2db9611a26a3e90f4861467df60edcc595f442332b0899 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = 5822755a3e47c27d +AAD = 1d72d6b371e85ca359483761704f80b3360f4d6610e6d5e490b0d509f73c3233 +Tag = 59124db19ab1373a5376f46ec7095ef4 +Plaintext = af4ae8f19cf6cbd199677fe033859f56906f1979b1b5926d +Ciphertext = d5ed6f8d5c42f4f3ea527094173b278724a2ba787e416ad7 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = 6c1c94c2e71b865b +AAD = 298cac1e4684182786f386ef3de79c11e30b2dab7579b8ca18d0312200860403 +Tag = eaa52d69ab9790edc384b9a5d8c91dbf +Plaintext = 6e4d992d7541e02a4aa167e56c7e47206abc25fea6c5125d +Ciphertext = 560cd43a502a6e8b1af478a3b640a68937d1a83057110d38 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = ce7ec65cfeda31da +AAD = 13c1298cbf7fe6a9ab378f86d3c2207944cc2a232f9383513ceb3b202086d365 +Tag = b1f45de395e021c6fb1b2991c91bd643 +Plaintext = 196c80d02b663bdd89fdaa31e329b5a8f7c596236ee8dd80 +Ciphertext = 00174dd83a7f8edc71afbe5da095160336be9184f693db3d + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = ddb739acda6c56ec +AAD = 7f89bbe513b9a7ebe9be3f6eb88782080593c83e8cbe47fbe15bdc3e5782090f +Tag = 713d941b845d96a5bf65e9f80ae7f923 +Plaintext = e95e142217c838d1f998a52e342e4f2d80b1cfd35cf6b73d +Ciphertext = 819d73dadaf095652cf39729b2e2cad7fc7783887a5acc15 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = d9bb71ad90152d5c +AAD = 20bfcba120cdbeb07c5f4d70338ffce493822d78a03c9e80b5b934e16e39f70e +Tag = 5e99761cb1ac77d772b9cce9345d9a75 +Plaintext = f1fe98b50ea2f9f088f6f93910757cf744d5aabf3081966d +Ciphertext = 36decda8ade6ab104a201c6d370412b907a559738eef5966 + +Cipher = aes-128-ccm +Key = 0b6256bd328a4cda2510d527c0f73ed4 +IV = 2c9ec9f1f1358c50 +AAD = 96f0b1edec4ad14407dcaf30ed68942b46c48d58b2dd63af60fccd5bdd48e560 +Tag = 85ce60506ac3bd97327904ad2e072a6a +Plaintext = d74badb8ad7f2c2bcdf67e497151d35a4fc2a3c4c871868a +Ciphertext = 0e9066270da6e03cb4307c43adc71b4b596213a63fc80320 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = b7776aa998f4d1189b +AAD = 9f9ac464de508b98e789243fdb32db458538f8a291ed93ddf8aeaacfbfc371aa +Tag = 3e259aecf12ba08f2a2e966a3341d6d4 +Plaintext = 56d0942490e546798f30d3c60ad4e3e110fc04f5b1c1fa83 +Ciphertext = 96f124c74fd737819008ddef440320f4a3733d0062c83c89 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 278cf1f09b13f467fe +AAD = af9627922758a9f7792345716782e8837ca78e8f9db16e3fe12a7124a3d4e99d +Tag = 11751638ed36c1fd3c7268b71633c1cf +Plaintext = aa9b9e80cef47b6db3816b1d665f233e696337e21bb8333a +Ciphertext = 5eba7e3b3ecab78121b0d56acb9dbfc6756c1255b42f145d + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 4ae701103c63deca5b +AAD = 5872a1507c833c581ac2750b2b54add4b92be14e45d72db7679f8fa2b4d1eeeb +Tag = d3635aa1d8167087600b01643b0a5ce5 +Plaintext = e832b053854fbd40c0d8b6d6b8fd5de2da0c173f5fe594ef +Ciphertext = 3b2b964c3a90d51c0ace186db79818b4d0f7b81236d36017 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = cfb5b12928e1c36849 +AAD = febe755bb8e4475d8d12f5e96269abd0d4e40d73cb966e2c523343e9a6d2d71a +Tag = ee6f8c4b252e10b42fbaf8c7af1e9f3e +Plaintext = f46d6970dcc37d32d93ff062e68034c1906ee487fd28eefa +Ciphertext = 0d5332a42fc583f4f81744b899cdf2a64cad1e78d577112f + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 68d5863cafc69e6ceb +AAD = 048ba28abb191ded5449dfe9dc7d19f9b132a2a9fd779aab7da44d2887485954 +Tag = 3a8639f21f8548fae45dc76de57bcee0 +Plaintext = dd4438d7ba3edc73872e42dbbf78cf300fe4bf0eac9e16b6 +Ciphertext = 874d3ef7f916db2c2799b6892ef4bfbeb4729ecbf26ac498 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = ea09fbe5da0fa4fe91 +AAD = 63ee18eb720b21ee4c157dafcb8c7bcc6817f54d5c1b8dd7058c37228a03f8ad +Tag = 1d3853a52971b0ab46cc0a3eded435c1 +Plaintext = c1811d613bf0789beeef693611ef733cd173da703b66ab3c +Ciphertext = cbe5c799952b28fadf414607a6cf8194e9f41194abace454 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 0021be18ed76b3a34c +AAD = bb5eded483f0ae1106fd08c5e2b91cf06d3a7a73518ad4c479fb05e631ba5399 +Tag = a2a8e3cfb827c7e6edabb34f7bbafd01 +Plaintext = 2d5531d1c51c6ea100b028596bf9f24dd90be14eab58f07b +Ciphertext = 7af0449f7359b7f3e5f6c1e7bc264c7724037f4f16077fd0 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 449b51ee0760179e35 +AAD = e99bdf783070a3a48431704e90277ca65a9704c12eeae2e2d70b62f816115267 +Tag = 4aa8feae6a500919a336dbba1d9fb7e9 +Plaintext = c4896d58442877c986e4f862a9f3a3179f0e9b96316a90d8 +Ciphertext = af7531c073df01077fd5c8ea9a5530c2fe1688d529e5c2f2 + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 232114642e0c6b55b5 +AAD = da288d2014616f16a2abf5923dea49aded1748592adbcd97415c33ebfa57150d +Tag = 0b25cea7ed6e4fe9069a2ce49875230d +Plaintext = 11fd3f94b5a5ce94f2740a27a0771aeeac77f3155d2bc12c +Ciphertext = f0c174a7927da0bb88e92917af8ae1df4ffc3527004e9e2d + +Cipher = aes-128-ccm +Key = afdccc84f257cb768b7ad735edbd1990 +IV = 660cb6d654afcbdab4 +AAD = bd96c3c225099fc58cc1f97779304606b11efe9712fba13abf74fc1d7d44a900 +Tag = 6218635754d5563f2cd48bdbb267e5ca +Plaintext = 793c0bc3deb6e0bec4c1d1fc17e455eb1aa5e9e25cada861 +Ciphertext = fa4b14a381ee41fec7b7279e58f0d06a3beec26d645f8133 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = c4fb7519a19f13d9d1fc +AAD = 092e64fef08b5655a86cdb8de63ffaa7772e8730844e9016141af8bad2216246 +Tag = 5603ab284a73a38cc916f8b653c92ab4 +Plaintext = 5ea35c082e2b190e9d98e6b2daad8672f587b4f2968072fc +Ciphertext = cda5fe3d15d00150b99120c7f206b88a4c2c4a39ca914342 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = 45927852550961f1ae9e +AAD = 53ae030474795ffda4d9ac0fc3c45afb592ddd761f7b5335c13a6747e21075a7 +Tag = 35bb811491d142cf1b26350f8451bd14 +Plaintext = 6c5f468077536b4c9a94ea4a6fe3cf621083a210daee45b6 +Ciphertext = 694847b6429cbc3902d9cb7049625aef1e97b569e1e31690 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = d8c54463dfcf02d0e327 +AAD = ff95c0ed0da32d1b5f57570b815a50592ecdc9c1c4e727e0f6dfd93fc10ce88d +Tag = 9c68e8e641b0120f7dd66e8f0cfa4205 +Plaintext = 7321a6de8d694ea05623206f5df438c5c2cdd6b1eccab4d8 +Ciphertext = 9cf8ef119aa5cf3d6305d50b2b520a0b10bcd240e2727674 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = f690f3a996928275050b +AAD = 41c05fda535770699ed22cef253753b658437f833afe65c9c393581d835f0fea +Tag = da44a62f97c0fead3f65b28928bfbcc3 +Plaintext = 56520a4bfd7b73a471e0446f9524a407e81c2681b7329e35 +Ciphertext = 14aa15f9f64c4c64f6e88094e012ecb24193249f044c033d + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = 26eb9ef25be62148fa61 +AAD = 8f45608a07521de86ed5a84a851e629b579b51d7bf4cc7202a773e0f9e9d8748 +Tag = f0d5444466bcc631bef8e58fe5818af7 +Plaintext = c68094c26c7f017b79f126dc26b3bbcb95f97535ca412da5 +Ciphertext = 7ba8a0c2fe2b230768d1c1874085ddff8926931961bc4558 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = fad21bc27dabafe7a4ae +AAD = dc5d7fd97bb3243ba585fa0d71a07191667af418e30a6b76bedd05b32c673403 +Tag = 0b5419293a67eb008aef0f9f675201df +Plaintext = c247fa8d8091cd3f299cdacba7fb7af93549e9e3160f9cf8 +Ciphertext = 3097d2ec0f8bf00b22504ab03a75e740d3e59c269c3ee3f0 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = c911348848fe67406dea +AAD = 50d50a0b5ed4d6904ec3045263af0255a6494b7a7e2e95ea806c4bb788423dc1 +Tag = dec5a554f4bbecbf6943ffdab8d8a26a +Plaintext = d846c170ae0111348362901503b26d58f5efc17b6d296aba +Ciphertext = 5d72562f7dfb47bf34b90ee4ea11ff9f726c915b07f4d843 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = bb921b46a16d20ae4046 +AAD = 7d17f8f60ad1e61a168b5b0e7fbbc90cee79b612b6d6c0d7ff6ede042341e8a1 +Tag = e5b1162b7489a59a50c0f0f3618e6c2e +Plaintext = 71bb6ae84262646c9be95e0f4289ffeab7555ec6746c6ae9 +Ciphertext = bac123320888b553666249756e6d63b3498760791cbe9e34 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = 61a8b8cbfc9bdbadb2a3 +AAD = 51cf2a8949e13eaa087a34c9ec4d7fd92b862efd6a0b1fef8b016fa2c6933426 +Tag = ed5505f1f0ff77723771338585c456b7 +Plaintext = 362f9a46aab59fb6213c83d791b2129b34367ac2de2048fb +Ciphertext = b8a57e8714d8789f4ef2af29e0efec21b1ef67fdabc7cdf0 + +Cipher = aes-128-ccm +Key = 6ccb68d3838d4ddf660b9cd904cad40f +IV = 6bc4cd23c32a913998a7 +AAD = 92fbc970b5e64198ce2a138de92767edff8d82f12f8832444b346d159657356b +Tag = 714025f485c7f40256049f16f859b859 +Plaintext = fa442383da234cf8f0c5fb667218bc3bea0c091b3a8e6b77 +Ciphertext = cdfe3e83aba43a9804c5a1832e0e47a9a153359cc32db907 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 74e689eb5af9441dd690a6 +AAD = 42f6518ee0fbe42f28e13b4bb2eb60517b37c9744394d9143393a879c3e107c7 +Tag = 16f322ce85d7c54e71ac560fd4da9651 +Plaintext = ba15916733550d7aa82b2f6b117cd3f54c83ddc16cd0288a +Ciphertext = dcc151443288f35d39ed8fae6f0ce1d1eb656f4f7fd65c0b + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = eb118fb41284bfcb1bc338 +AAD = b5a6067fbac46578cfc8d3fe04108588c9de077eb009249374f205553bba9d02 +Tag = 4a0177883346dc896eb39e8a32bc1393 +Plaintext = 863da00c7accf45418d47c1eda72338734dcc49cd599f328 +Ciphertext = d64de7a56146b971e21bf5784d67bab32dd837cfb81591da + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = caba2716d07e95de83855e +AAD = 0e0ff2c73ea5fa8f8726a3514cf906ce1610a1a6dc19b22682f9e4619f762d82 +Tag = 775ea25fb272981de8b8aa0a637498fb +Plaintext = 2af6d5636ab65db2058b2ba16df257369fc4e8aef8b9481c +Ciphertext = 3c9e006c7d8eff5f448b0cc9c27c964713241aa7fed3665d + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 314c136999e41d137bd7ba +AAD = 366c659bc45d0a88acd54ef7eeaa3e140e1cafb1b01474a065a9d460c5e83bfd +Tag = f2aaa211dec623947a50b1252bc5aad3 +Plaintext = 217b19ea6a431a1f66bd9d02b718e8507a08ab8e6f603e3f +Ciphertext = 33d7b672b23e8b03a39ff3fd1e7b0f2be67163e3e3bae072 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 6fe51f5013f53d4e4fd907 +AAD = ff182f2e179d790e827cbfd0bd8b9297ecae57ffcef9e25ef114474a22e4ec5b +Tag = 75ed171bb0fbaa6f431c5411cf9b536d +Plaintext = c6bf582b49dd4ab6cb33f3f88e8a4d14fe32b308ee3b4682 +Ciphertext = 26cd5dc5eac2acda283ca03354260ad57af79e20c5e92f57 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 24bc8dc1e2354667b79ba4 +AAD = d0d48d01fc79685c6bee04d45e40d06cdf1f4607542b1ece556fc2d1bb2b03f1 +Tag = f391749ea3acd624c01e4583ab1506b7 +Plaintext = 90f52ebb1bd5439386faeaa194623285f750672a7baae64b +Ciphertext = a7f43f56c50705a1a101044b954414fdfbe32b518e934d38 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 89ce46b3de3afaf2518d41 +AAD = 5767202c913584d653f37d926a0c5ac1c67db3efd1dc58fbff998778a6856254 +Tag = 94e43a6b1cf73cb2d6a1dd8331549520 +Plaintext = b2ab379a0dd15baf91415eee3a4e56e7eca54d4c1c3094f8 +Ciphertext = 9f530e455a54b86835eacd8801b34c884a3b2ac819ba38f8 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = d3208eb695e84c7a925037 +AAD = 91d8fa65a6885f162a795afe2898f391990a8b3a87c11f94734dcbddf5f58da8 +Tag = b27fb6425fcc3537ce471425a5b17dcf +Plaintext = f15e39f0e4eaa5bf81359d8e30186522f1a1a415436668cf +Ciphertext = 7f1d9fcd9e5cce3a81e3495bfecec817fd7180d8bbfe0aba + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 067de2869333ed22c7b63e +AAD = c31e441fd551b3fdfbe23ceec5ec1f838f31a5300f6055ad2a936a9d0c1c856e +Tag = dfb879c21b46f3307ef22f1da579303f +Plaintext = 1536d9c9a09302d142c85638202f5bbf0c287f68115d51d8 +Ciphertext = b1a5c7a7fd23228dc7ea26885802daa0719f6a23681e1d65 + +Cipher = aes-128-ccm +Key = e6ab9e70a4fb51b01c2e262233e64c0d +IV = 15f61b4526d19bceae1093 +AAD = b97b122af73e928e617e98684f845be4cb80566345739b7a884c6a3eec5102bf +Tag = 900504a73c8817ff2b55618b2602bf38 +Plaintext = 37c81988c07a5b01e2b40ff9f9ada5f50ca764efb717ff9e +Ciphertext = 0d93a5c77482d573b7f1b8c5e283f2571efc9f54216a4c01 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 0ec3ac452b547b9062aac8fa +AAD = 2f1821aa57e5278ffd33c17d46615b77363149dbc98470413f6543a6b749f2ca +Tag = 4829e2a7752fa3a14890972884b511d8 +Plaintext = b6f345204526439daf84998f380dcfb4b4167c959c04ff65 +Ciphertext = 9575e16f35da3c88a19c26a7b762044f4d7bbbafeff05d75 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 472711261a9262bef077c0b7 +AAD = 17c87889a2652636bcf712d111c86b9d68d64d18d531928030a5ec97c59931a4 +Tag = 715a641834bbb75bb6572ca5a45c3183 +Plaintext = 9d63df773b3799e361c5328d44bbb12f4154747ecf7cc667 +Ciphertext = 53323b82d7a754d82cebf0d4bc930ef06d11e162c5c027c4 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 6a7b80b6738ff0a23ad58fb2 +AAD = 26c12e5cdfe225a5be56d7a8aaf9fd4eb327d2f29c2ebc7396022f884f33ce54 +Tag = 86a0e926daf21d17b359253d0d5d5d00 +Plaintext = ba1978d58492c7f827cafef87d00f1a137f3f05a2dedb14d +Ciphertext = aa1d9eacabdcdd0f54681653ac44042a3dd47e338d15604e + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = d8e133e7ff8e0a0ec6c4096e +AAD = ef9e432c15d8c93a4b5c0666608e61c824cd466d7940d642acd3dc33057c0395 +Tag = 9f9cdf6ab825f6e026f5be2ad895033e +Plaintext = 2836de99c0f641cd55e89f5af76638947b8227377ef88bfb +Ciphertext = 5edb056d85dafeaaf74bdf4caa47339d6a75bf1ee998565e + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 2fa8120398d1a946f391367c +AAD = 377cd407ad28dc02bd3835a31d92f8295c9dbe597f56662ceda112c588dc73a5 +Tag = d3021f6ad620648b8196ab1693710398 +Plaintext = 7a37255b682766a0bfecf78e5162528885a339174c2a4932 +Ciphertext = 701f5f506fc7e9ea4a27a4db5cb890f7be3b4f6bcb20f97e + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 8d638ef43f56dece910139e9 +AAD = 87ea7b095388de70ac0ed23e86f502400910028a8ab5e3bbb91d05821c0d2d61 +Tag = 2d236162688096d80b8733d2afbcd244 +Plaintext = 7370d9b453936955b9c9d336f4b283237986232de007bf41 +Ciphertext = be2f03f6ce1731418a5f53b6f6e467b73992a0c8102d8ffc + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = f479ea8812b6b2f6ac78fe9d +AAD = 20c2b8f5d3a65a66ba8a25e2ee339a779a32d45f5db91077efae6cf308feef50 +Tag = 61bb9415b32d6a58f5f7647ed41de685 +Plaintext = 59ff9f7581a781808d36fed378080963f35c00ea5a6e3932 +Ciphertext = d127c956349c16e2186f55b72254c677f03c61f1c4ada9e6 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 423515f7bd592d6a7a240866 +AAD = 19eef6f798fc68086aad1cda6d7976cdcfe6b8af74598032972c939db300d8c1 +Tag = 30ba95c4058501234a1b97543c998e9d +Plaintext = 3c379f90b11c622a765756a15efc8fc3ca7b08b3281945f5 +Ciphertext = 15792e01fc17f5294c3405484291082c00a8f46dd9af8ca2 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = c3f3da69e13c5733039744b1 +AAD = eedf00aab5edefdd6549d37ed44358e11c588c24f141dc5731303fe0bd56b11e +Tag = afca1b08b6dd589a17a32d49b6f7135b +Plaintext = 9db6fe9adb8c0fee87cac9a7f01a7ed8a84f0512d09b1834 +Ciphertext = 9b6b829ca1dc4e90d4402188632ea3377cbec2ba60f0f072 + +Cipher = aes-128-ccm +Key = 005e8f4d8e0cbf4e1ceeb5d87a275848 +IV = 0a57d59f21ead5b6d80cd2ce +AAD = de5f2d413c98c6ea2a5640a7b1c424aebe75cbc78b06710b5bff8bec6afb5a76 +Tag = f344f2f1b2218d9b4283fe640a6d315b +Plaintext = 0b5f6389f7c20f4ba326e8f05d373ca27b7ebe59e6d729f0 +Ciphertext = 0b704e14bc7d2977d89e0b2e7ed7fe3c9e0f2ea80d2d6165 + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 0245484bcd987787fe97fda6c8ffb6e7058d7b8f7064f27514afaac4048767fd +Tag = 2eb66bb8213a515aa61e5f0945cd57f4 +Plaintext = 959403e0771c21a416bd03f3898390e90d0a0899f69f9552 +Ciphertext = cabf8aa613d5357aa3e70173d43f1f202b628a61d18e8b57 + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = 2a27257bfaadf23a87df082c57 +AAD = 0001dc666c9daf3560daeaf514270db0b5075d295068e6caf231c1de0e1a9300 +Tag = 4cd9d735f51430275387c565cf1a69bc +Plaintext = 6cbbfa6d736fbcc4cf73ab4d7be537420e0e574ee1f2d1b5 +Ciphertext = 72d525e6bb312bf2c20b91f41108779789c25720797ebffa + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = b94ac8ed14895c80a91fda8367 +AAD = e1eaf35fb266f243a3fa407cd41815ae6432ad79877bfa59d8f196cbf19bfbb2 +Tag = c89fb5f507f5aeefaa9365f0b18dcb3c +Plaintext = e6ec561496ce18d96b26d594a47ffad02d68ef25d2d2edb9 +Ciphertext = c63500445239bbdf71a8dfe3f8c01061d659cfeb038b825d + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = bbae10aa491ac9c668a3ba8d7a +AAD = 981fc31e64fbad244ba1ef0303ba1e4beef5bacca74f60ffdb9142a25a1ad5a3 +Tag = 83d0a61d453d596fbc5c2e315d9780bf +Plaintext = b9bec3e2adc83620772048d6cbfb6f78e4fad74d754ffbbb +Ciphertext = 9c629c375f014e162895cfc25a972c29839f97407e7c7cca + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = e0b10e78e9fb41ee970143e9e3 +AAD = 399b71ecb41f4590abda79045cdf6495f27daaa559c1b34f513b5c4ac105ec10 +Tag = 8e8f8e13b7896b244d0c9aa52ed31a95 +Plaintext = 4b81804d777a59b6a107cf3c99c9d1a35bd8e4ed36596789 +Ciphertext = 867799b30558697d6efb4afcfe458cfad8da21139a0b4312 + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = 17b61109f5e37754e4e92a28d7 +AAD = 0bc2fdd890c19882640f8d4188b88b9db99cc1934cc3e98a5df08589287968a6 +Tag = c40eb85585cc3b7520a940a4e993327d +Plaintext = 347c1eb4aff917bc0012f005e74caadc93f4f18f2b614ece +Ciphertext = ee19f3120991b67b2389e6f36543d99590f2e6d785c9c8ec + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = db3ca9e80ab761804349379961 +AAD = ce01369d08d37dcda2c899c9fc0d11ccf94a0051b2816a1d6c3ad07fc8dd02d7 +Tag = 401358c7b44aea27617b429583103a1a +Plaintext = f0e1af1276d2918be91a191814660bfe735463d3983de1ed +Ciphertext = 0f1b1228729b181772d7cf55ad257fbcb19cd46f7b31a885 + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = 1f57959cecbd377374477e33b3 +AAD = de1c7c83ac61e1f99ae99b198f4af5d24f8de60ea98fe637f3a801fab38b2a4b +Tag = e93525fe8048c3b2147a149f12eaecd3 +Plaintext = 42a42b84df098ceb43519c4cb86c14c2fafca39346159e13 +Ciphertext = 12425453de653d0fe8103013fde1ebf4a8fe18f76f0c9d60 + +Cipher = aes-128-ccm +Key = ac87fef3b76e725d66d905625a387e82 +IV = c9db03e2efbab713b0b6404210 +AAD = a2969243b0955402ab45a430fef2ef9e0c025006732bf8e592e3d3884918696a +Tag = 64ddee42614aa737231207636c114575 +Plaintext = d633a5a3defdde6a68f959ef39a91c6ea6e13ef1a7859d2c +Ciphertext = 5cdc183c32b4c1878eb83e8473a17c55c88e2ad6b944ab1f + + +Title = NIST CCM 192 Variable Nonce Tests + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 764043c49460b7 +AAD = 6e80dd7f1badf3a1c9ab25c75f10bde78c23fa0eb8f9aaa53adefbf4cbf78fe4 +Tag = 2dd6ef1c45d4ccb723dc074414db506d +Plaintext = c8d275f919e17d7fe69c2a1f58939dfe4d403791b5df1310 +Ciphertext = 8a0f3d8229e48e7487fd95a28ad392c80b3681d4fbc7bbfd + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 026a0b8b17be95 +AAD = 44caa8ecfaf38e5e773cb0366e1b04aa0b9fac5c34a362310f471960c4a1e1c9 +Tag = fedf191496d88cbe17c6271b65096e66 +Plaintext = 0e52a384cedcdf7f179348de6e7336aa86f8855fbd903cfa +Ciphertext = 3417044bad5fddd9455579123dda4fd342c273a57ff6333d + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = ea09fbe5da0fa4 +AAD = 1d9799f2bb0f7ab57fe3de27949ff64066131c81bfee172b308f9bb0b3171067 +Tag = d47e30b635d10d1663477d61d7ffb55d +Plaintext = 469ff9698cfc96b581d7115c822e4363d7355ec5daed2eae +Ciphertext = 1dae7cc16f1b469290902cfad47b959784b4d6f48a79e690 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 8d27bcbf9ebfd3 +AAD = a7070b85b7add9193c9dcd2e6c03f6e7ecc52ffe9e099866baf7472f20c03aab +Tag = 2eca8766bdf0db6bb2dcc793e1749c21 +Plaintext = 225651d072dc9d93762dd79691ac2b6ddba00ec1252d69eb +Ciphertext = 5da819adefbf794612eb458519debcd524c283763eb3d725 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 13f560187b6077 +AAD = c4ab4244db75f8256e55c5b613a07b11c963c3cc24f66128aad4ba8b7ca99331 +Tag = feab6761c55431bb5668e1f5b7505e89 +Plaintext = a38231af405dc7b70c8dbc8cb84e6be8a0dc2e95fddc2ce8 +Ciphertext = 3aedcf8347aa23fd3325ce08b6b00462536baed69968a753 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 61e0e28bf344a9 +AAD = 5f998952de70449ad46428f2ff8a01c5af43c0107a1bcc6930f19d4112598666 +Tag = 64b2302ace4f66216ca8b4d776197692 +Plaintext = db21b37e875d7709a02239ce6ea529cf37255d5b617c153d +Ciphertext = b8f5fed39c723d7643d6dcf2efd3bbd1ba0da1ec901305fd + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = f6be4aad63d33a +AAD = 18339be863fb8a887d04ae9ff3b4a7db095075cd5d113a9ec87b41fe85ea405e +Tag = effb985b9c2dd9ec954bd25d9c464c67 +Plaintext = e53101e6eabcda32c13d7b1dd1d88e7c2ca3ddc2064f64c6 +Ciphertext = b758858ab60e1630a0883d4d330119a593729a3015c42525 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 2c1c59aa0d8eff +AAD = d44af86b89fda8448a9b2fcae20ea156dd8738c8251699c02b785811c830bf72 +Tag = 72adafffbacb297d67f6b5c02b982e04 +Plaintext = 1fd7188a43dee7b059420e8634d71d2c0658f6d0d308dc73 +Ciphertext = d046f845a67800a5a58f461e5a8641e8fc9b4c53b32e61d1 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 48e4598edd191e +AAD = 61588bdc980ea2310e87dec4c651e9a55c27e3858b6505cbf3bf85e51931badc +Tag = 500ff4cfe66ade1832babc019778acc3 +Plaintext = c25868f390af5e59c035cb5830e018c62c5b96bd35b764f1 +Ciphertext = 0ece161bd77b7f969b3b20c818769a98c178d84524544664 + +Cipher = aes-192-ccm +Key = ceb009aea4454451feadf0e6b36f45555dd04723baa448e8 +IV = 6d576ce3c5fcb5 +AAD = 92c598cb5ca2926c11f67c3b3cf25493d77606fa60d7290430e0e975091644a6 +Tag = 391031b3a22b2adeb9791ee35765c8cc +Plaintext = bcd97479db934357a163a9e5f5a85999ca987f8243d8017b +Ciphertext = bee185e11b3d42bac846b9d92c70a078aebfa630ab763840 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = ad749d596d88a4b4 +AAD = c67219909828adef64422286008e1e306867a1c0b3da95444507a68b45c953e4 +Tag = 5a1969276aa2b0cdb37ccaf2845dbf6e +Plaintext = bd92d6744cde446fc8621625658fc4bc00dcb97f06195ad7 +Ciphertext = 076cffd0ca978fe2bad411ced45a090abafb22a99896f6a7 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = b1dc81d116d94f5e +AAD = aa4b71906b6642f10f66c2391ec157c7cde97eb322db10045af4c5248807f691 +Tag = a67e36d7cc8d54cfec0762514475127b +Plaintext = 9aa6dbe1cd3eb98d330c937d31ef93bee8938b6c5cfd38de +Ciphertext = 720f6876ac91665f20147483f0655fdbe21963a01e36f1da + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = e758738df5c89af3 +AAD = 5715fa238f432c926e62dd93708d0e3145428e0ed45e1efa8148d2c4ab6cba50 +Tag = ef50d85bc3ade6a773d956b2660ac367 +Plaintext = ce80b99039a16e69018d1e3c239dd1bf06e94a78b0b1df37 +Ciphertext = acdf7ba3edca1563727ed85cabf085c2f0c8f27556c3c064 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = d586c4c67d535476 +AAD = 1e8dc63c6c54a540b6b02067ba7c719221cf289fa3897299722c9a2bd6eed05b +Tag = 81e024aaf0a62b353f9bed36681288d2 +Plaintext = 2f88305117f9a5d807d54b7e95ecfeb7327e52d9acac352f +Ciphertext = e42b86e619be1a38973c934babeb4688243a9012c85d643d + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = 77e83758f68d272b +AAD = 25c80edef3d5bd8b049fa731215b80ca2ee9ee6fb051326e8c6d0b9e11e3d7ef +Tag = 05fe32f796f0b4a75a459fce6c7d740c +Plaintext = 92e47b82b728d639777d5d5843de2a5c364956cb4b21cabd +Ciphertext = 1b9177f5b76403cb8c690b39c3dd22b55da35cebccb9b64e + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = 311dc245549206cd +AAD = 87767f13bb4904d0df0d64eb22c9ddb65e81b5739baad86ad5e2c239ffde9f6c +Tag = b75f9e4239e43bbf93066897e60f6fbe +Plaintext = 8691c0301a216a5f3ed9123886d100309bd85630d6b845f5 +Ciphertext = f39fe3620a03b37a4bf457909e0770447b498ad2a2f0f9d7 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = 2a17b70f10e120c0 +AAD = 981fc31e64fbad244ba1ef0303ba1e4beef5bacca74f60ffdb9142a25a1ad5a3 +Tag = a0c069a2439a2d8843302c6a9999e658 +Plaintext = b9bec3e2adc83620772048d6cbfb6f78e4fad74d754ffbbb +Ciphertext = 92187955ee1ae702ef01a385537119b2bd4545402e8b2384 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = e0b10e78e9fb41ee +AAD = 9d072b8a3f1a496b2be6728a38b94a4f44c9be40c8793b69afd81d01696a6b4a +Tag = 5005b06d15f63f2f015cfe447828da09 +Plaintext = cea28e7cd0eff0c5eafeec908d4aa8ba303e72ada33db087 +Ciphertext = c605e48f2e66e8e0a92471e466981ae5e31db3e4ad80b09f + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = 02d72dde23f9772c +AAD = 2dc44c39940e2d9c94d2dbe40bbf5cca5efb4d4b250a31aa24f208b87e9c2453 +Tag = 3ed92ebb789c314a89c83542b15ed694 +Plaintext = 809343e986f6ff47f54d4cac22ed39babd12271d4c7edb58 +Ciphertext = 0bb59581f22f6b15de76c0066645495a5c19e44381c34926 + +Cipher = aes-192-ccm +Key = 1dd56442fa09a42890b1b4274b950770ea8beea2e048193d +IV = 28c4d6de3e2ce51b +AAD = 913a8eda924589d3206ce0a951fef93668c6c0c454824b217997bff6b3026d54 +Tag = ada8e796f2ce7f9449f42de504873868 +Plaintext = a19f65ffdafd6ad5ee43570f7e168f94a8b4a7b7402ac80b +Ciphertext = f0c91a29f1222b906550ef5c7c0944c5c4236cb6c31122cf + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = cd84acbe9abb6a990a +AAD = 447b6f36acdad2d1cfd6e9a92f4055ad90142e61f4a19927caea9dbe634d3208 +Tag = c5e36222d17c6fb0631c3f560a3ce4a4 +Plaintext = 597b3614ff9cd567afd1aad4e5f52cc3fa4ca32b9b213c55 +Ciphertext = 2d7fb83e6621eed9073e0386d032c6941bef37b2cf36a4c6 + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 1fc7a43ed124745d04 +AAD = c892b095173076a40e24522297be27fd3a765c8d417f24c71a9f03b3fe3d8e20 +Tag = 7a2a13c22df4a156e6d6063235452c85 +Plaintext = 415cd8312dd20a1c26f4b90d98104cdfbe06739466fc0aa5 +Ciphertext = 7bebd6f55f15ae57ab73f92f7be6ff37ddd99740e988f01a + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 19ff5e7c1f2c594abc +AAD = effcea4e4dbc57410426b39fcf51c9daecd9d310888590d77827973a29c4ebff +Tag = 7579b2c4a6bcf0356f48cf8959cfa54a +Plaintext = 97fd2c259a4e672e9555a9a5b98f4c0ec8c4c49c7ade26a4 +Ciphertext = a460674c2f358762e97dfc958d90973e1e419dbc6a832e98 + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 64d9bd368ac2357cf2 +AAD = 62c5a16f946b4312517f67c80afe2614c822e3a01b87dc81538c00bbf3fc0108 +Tag = 92be2b06a0ecd2d00877abded7d9634c +Plaintext = b6ada12f7a28211e9d2c07cbb3d39fa77aadc077b34c46f9 +Ciphertext = 8fb5e0954388b9b58519482962487e9b0768f0cee08afe9a + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = b4aaf2cd93efc0ce93 +AAD = 79d8841ab83279724ce35e1a8abd4e158168dcf388ab4c3d1ae70413e4e43d14 +Tag = f8d301ceace678f9bf91fc361dff5812 +Plaintext = dd42449da4c95e858b796085b6b5b3b5eef484dbf3c2bc8b +Ciphertext = 893f86e29972928c1f3c3e25c73947c8d677814bca7fff2c + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 132f3e19e12f462a74 +AAD = 176cc5a280f6171d00e247edacc81f05c1b9faa87fc831163ac9d76aae59a6c3 +Tag = 42ca4f4ccf986eb6a6b85b99db2fcd93 +Plaintext = 8ea05a5033ab8b009664fa2800c24e217488ce6888cad147 +Ciphertext = 4771d210ea678dbfab96e320e9c44b68f47cb05b01826ccf + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = de709ba64cb75704c0 +AAD = 0cf8e9ab95766b6fa85e88d86e4f349a17c0d90509939e343eede988e7462255 +Tag = 393162252ae91ca46fb8e8338cbeb75d +Plaintext = 51dd9fda9549f25dd868245a6a54b8d59346d2f336adf9af +Ciphertext = fccc3e44afa6bd2fbcfc5c834db63dc9d152c04c0dc0b43d + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = b11b4c1b7a26387265 +AAD = 14ed867cc909c0619f366918a7d5ae25279fb137e1dee7fd98ddbe3bd19d841d +Tag = 1f498ea6ec8251a6d149c7ca38b25fe4 +Plaintext = e35ea4a16e274fcab457fd4dc7886c3d81fc668c19e0f374 +Ciphertext = dcca8aa2eab8ac3f5db9cd9560ae0758d7df40d7d868d1f7 + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 20d03227a7fcaef1ce +AAD = c5c15245e641687d0ca9e913406acd2de3f21fbaf2dc5e4e8963222da61d02a6 +Tag = 8ce3ab864545ea81943ef0ea9489d223 +Plaintext = 6775e5faffd0b13e78da70a789042245d5ef31eab5245380 +Ciphertext = 4bb8ed2207f36f40f62d3a2c90f8e3bd8f589059b6903711 + +Cipher = aes-192-ccm +Key = 8cc622645065c72d0d2aca75802cf1bbbd81096721627c08 +IV = 267f76b9ec0f5e7c6f +AAD = 2b421be47d07dcb12a0706f7490d05024fce8f433079e18ec78f4c8678f5f155 +Tag = 655e14c7bc8be97ea47388cb7b18bcf0 +Plaintext = 9330bb23428ab45f573923e977db74882282cbe1371da68e +Ciphertext = c6ae24f82ac5cf9c18a2d98e610027eb2566a1ccfcf99945 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = d7a46e726ed43f1580eb +AAD = baa86f14271b2be7dbb37ddc7c95ce4857e57aa94624d594d7bd6ceeaada8d5f +Tag = 39365dce86859cd82395d11bfc8cf188 +Plaintext = 2a794b84fc9e4a7e6d70a82b5141fd132177a86b4e8fc13a +Ciphertext = 2d7f76464417613bb61d3657481346b74fc9d6abc6a3babd + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = d0afcbc1b2524a4a4553 +AAD = 7c267223047af946b06f6a45ffde4a5ec49c28b81ca22da4a36bf523e89e9da8 +Tag = 8355b915ca2633fd557ca7ed41e00926 +Plaintext = bfc5ce1316ccdbcd8ac62484e7656c87947ff98cbba8e1e9 +Ciphertext = 4772c121367d0e8d3edade883342395f3ea065fe7dd7be8c + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = 6eecffd227e8d5349523 +AAD = df7736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b +Tag = e7d017514d498f1f3c07d650afde8293 +Plaintext = 19eef017100dc82f26ed0815c55c122e0b1587302894c391 +Ciphertext = e2864c6e12ac089daaa1e94af4b2ed04060d7ef65d2f72f0 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = a67c0675753f725a8fd4 +AAD = 7dd546397a9a0129861fb6815d419a307f90d259d55f3503961754126cd1b776 +Tag = 7499a8544bc2a8fe95f55fefc7316f8d +Plaintext = 80f1f1ea46c92d28f2d60eab39ce056a4aefe63fa688538e +Ciphertext = 882c687c03eaaad9d7f591649e736f0c1c78f95e40d40cd7 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = eb83928f0d5f7aa3a74f +AAD = 060cd3e4aecdb03837dfa9f544318c0a16cdc37fa2a3135be7888ac67e7eb26b +Tag = 623f3a13fc13db958cbac49f7421d6af +Plaintext = 81e9174e9472777b6b184707108c01d6ea6b5d108ec3c6c8 +Ciphertext = 243cfa0a0a36a4c20333968910e6f52acc04c6f74e704180 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = 5757abe01f7a1183fdcf +AAD = 744629263041f0eccfce4a1ebcc18c4c984010f9241d35966263a8b2f72ee26b +Tag = 9c447a3132fbe5213133650000d50b06 +Plaintext = 991049f26b529af8b0bee0cc83989cf817d248254182f332 +Ciphertext = b20469b5f33f0996e8de869ad10ce09924a0bdd7b67a89a0 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = d9adfc5b44ad7aa94b05 +AAD = aa6a5448c6ec87be75eca35725ad2e902dbccf840d25b2bdf7e62e4a8fa4a511 +Tag = 5ae554cb440eadd875657fd5cecc214a +Plaintext = 14682301a99bf680805d1ffe62e1506d48cee8c51ef1d255 +Ciphertext = 9b44efa185b0c10325bb4c3c0815e6a6e46eea366b9a416b + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = dc3ca30782c9c0a7fe89 +AAD = e788c98ae85b11b3ae884eed6f3b8f5bcf5ab1b7b20ad3f44f760b2287cc5793 +Tag = f8312986315522081f0989838ef0429b +Plaintext = f9cb86f24536931a1b095b426a07e4621c000cf09b472bf8 +Ciphertext = 463f9124d1cc387a0f8b971d1e2da448f0efffc3956ebb2a + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = 9523f53f92b6e4ba86e5 +AAD = c3b123ccc916d26a2e6a8b5e30041ad69a944217e9b402b7acc0170c31e8c2e4 +Tag = 768e94f062e86129cc9210dfcd3e6128 +Plaintext = b9bdcac80f64175836ab51bb1a1bee5ffe3a6b9b71afe3ef +Ciphertext = c356b5a78cebd123808fb740754dc47a8ec7c9448bfacf39 + +Cipher = aes-192-ccm +Key = ab72eef2aba30205c986e2052d6e2c67881d24ae5fceaa8f +IV = 16bdf18c09d60f3a2a32 +AAD = eedd0796f23612749e9fd282c864f3118d0683409d3bef1fda352e1422273c7e +Tag = 978757883f07802b25e9a5b15c43b451 +Plaintext = cc96133e473d197be1bafdfc1a21d58e57d0d89b2ba1c3ff +Ciphertext = f9d78e9e3a41b3bcbfe756385a3715776eb84bb7d8d15432 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = df990c42a268950677c433 +AAD = a6ab5d78427f297a4b7e21f1091ff3a5b20caa3fe1cbcb09459d9df596a6c8e1 +Tag = fd6a7255e4801963bb30a63de3fc5b82 +Plaintext = 6db41aeb5f7c24df8929dbc30483b3c7934b3bd1cdce5bb9 +Ciphertext = 8c9328258bf71970d33e23a3ff81cc1c9cbe196a1294264b + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = b7ea72641bbe2dca6d85e7 +AAD = 4e0f2ddf183281ec131693bdcea3fc9743733c07a486a42d5737735b3f6e3fdf +Tag = 262de30da6ef505fe640c53d765f672c +Plaintext = 726844e41b1e4d883024b32fee0dcea38c889cb328885b7c +Ciphertext = 9a133e4582c2ebc445862a9c6f2f4e39223c84081e322c8f + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 446fee1e75e79c0dfc9ddc +AAD = 42b598eaee271e06d9e98dd94152b28ef10f506d65bd660b2fb8b1be9a2d7254 +Tag = 96ecb1e46beb16000d585e1d9559ee22 +Plaintext = 0cdcf348ecc9c3588001802c2106fb64be9c301adcc66e73 +Ciphertext = 0c2657b0482b6ca92e1b1c8fdf75eae3b0cd3af205e9bca3 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 2e6e34070caf1b8820ed39 +AAD = 8bd1ef3a1831fcc8919d736fb23111ca3ef4cccaf20264fab8eb3b071e56667f +Tag = 5198cbe3e34c884c3f56a732974aa1d6 +Plaintext = ca0860cc1e96506c2beb25b53d2947fbab634f0372afc8ba +Ciphertext = 19e4774030e43e6853ab5bf176ba9c4b59f29f285977e3c1 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 428542ecfb94a745980aa6 +AAD = 8efe01716b9018084e2ea7616f85b7333d945c0c970f8cdd400130b98db67cda +Tag = e7cec415030997e1ac5db974b617b5a7 +Plaintext = bc6b59120ba2845b0e41f65a55e2ef1c45a81485c926c14c +Ciphertext = cb48b0af6fad251d409d14ce0fbfae9cd9c40bf4a0c1e2b7 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = eff703e6d72ddd23ff52d9 +AAD = d7fc74035e66709d2590b7bb3276245dd43824c9896fbd801ec1d07018b39b6b +Tag = 3e59bfecf263bfdb24686627fd95e120 +Plaintext = 1a5432e8085511ddac1be91be3e2945f85f0cdcc3a1c9f8d +Ciphertext = c0a00cbaec65b7ca525fb26e80ee0cd18c7ef47c39c70483 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 6a652ce21334a40a259dcf +AAD = 5d24d80f22afe713c4076c200c1bab36917907fde7b6d34e141066f543526db6 +Tag = 0652b67d559a84b4a915ca6a420fd300 +Plaintext = eb8f1988cb405041bf48d138ad41da7ef364d4ac59a9e324 +Ciphertext = d4f23166c09a15466c7e0e2b30627ee5a84f22d7e6135b4a + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 9382e12d447c0ca23cc9c3 +AAD = 239129eb760f8a770410c160e4e13a6b9497077c3e463b65397393fcd3cb5c70 +Tag = 50f5a52f82211542b4e2661cf870c80c +Plaintext = b40e80564263c7f450c53ef84df67247d72e8a04dbb284bc +Ciphertext = 6de2ba26caa80874814816154784912c55e3d6da83488e72 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 2c3a4148cbb02504a2483f +AAD = 33c3bdbf185b580353de79e51e675b03b31e195f19ba1f063d44def0441dc528 +Tag = 7de16aaa41d06bc071657dacf14da754 +Plaintext = 60a31736d99c3dcf25b349f6110e1c152b93506e85a01e67 +Ciphertext = 4d5e705d08f3ed1ca6f1caa74b46e4b1eee18a0783686f20 + +Cipher = aes-192-ccm +Key = af84c6f302c59aeee6d5728ed5da2e3c64a5a781c52c4d1b +IV = 691cdf6fe9ecc2154d0101 +AAD = dc096596644c4e09c44078b86e5e0887c45094042eb0d74a6a13aa2524463076 +Tag = f07f23e65475a20fd96e45c6c695cd83 +Plaintext = 77e6441ee017a93dd876ff2c7980540c77ee15edb0f23933 +Ciphertext = 24cecc81c8ac7ca9906372dc5263f2220b4dd162f1e08283 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = 1af29e721c98e81fb6286370 +AAD = 64f8a0eee5487a4958a489ed35f1327e2096542c1bdb2134fb942ca91804c274 +Tag = 0af2a663da51bac626c9f4128ba5ec0b +Plaintext = 062eafb0cd09d26e65108c0f56fcc7a305f31c34e0f3a24c +Ciphertext = 721344e2fd05d2ee50713531052d75e4071103ab0436f65f + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = ca650ed993c4010c1b0bd1f2 +AAD = 4efbd225553b541c3f53cabe8a1ac03845b0e846c8616b3ea2cc7d50d344340c +Tag = ef7662525021c5777c2d74ea239a4c44 +Plaintext = fc375d984fa13af4a5a7516f3434365cd9473cd316e8964c +Ciphertext = 5b300c718d5a64f537f6cbb4d212d0f903b547ab4b21af56 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = 318adeb8d8df47878ca59117 +AAD = feccf08d8c3a9be9a2c0f93f888e486b0076e2e9e2fd068c04b2db735cbeb23a +Tag = 8925c37cc35c1c8530b0be4817814a8e +Plaintext = 610a52216f47a544ec562117e0741e5f8b2e02bc9bc9122e +Ciphertext = 83f14f6ba09a6e6b50f0d94d7d79376561f891f9a6162d0f + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = b4cadb5f9cb66415c3a3b714 +AAD = c4384069e09a3d4de2c94e7e6055d8a00394e268398d6ea32914097aec37a1f4 +Tag = 75ecb546efb8872a3f8b0281b3901752 +Plaintext = 22bade59214fa4b933cb5e3dc5f096e239af4c2f44f582b0 +Ciphertext = 2296e3f8a2245224d274f1b90ed1287cbeeb464c70a89ee4 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = 72e6cebdaf88205c4e744286 +AAD = feaf010f462ad40a38eefb788b648e1cc292cd4bb08ebeff3c39182862296042 +Tag = 51cffa571570618e2ada3376bd9f3e5f +Plaintext = 30655a6b5a5965db992e7248d24141055e988d726abb8e72 +Ciphertext = 69b27f2bbaa61c4f24e1c25e0779147fef79ec1582486b46 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = d8030fb31eca2c43f3f5eb88 +AAD = 66704365ddd0145febeb33f68b228a3f09e1e5a4b68149e6e06d886301841295 +Tag = 2beeeea7a638c717e63764b3a5118a0c +Plaintext = 9d014a02507a6f266bd1ace21b55ab8b73983ff503bb9adb +Ciphertext = 233a883650538ab8c0da30b90527f880fcad5b16bd435e76 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = 58038cc35ad3dcd75195e125 +AAD = 3da7a757e942409a3b39ccdc0669ce6401f7e133c07c4c42e366d70a8e9bdd49 +Tag = 33a87fa29e5fbfa9bc0430b0cac00b7e +Plaintext = eccfd817fa5e3a0146967fae13fc2471ee3944cee37969f4 +Ciphertext = 415a36872a04f5b4b5372f63394ab9fb353e0eb9b4304501 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = acd82ae31bfcabd90af5af45 +AAD = ce22126f01bde16249c47102b4da68ad3edebcd4a16c24a16ea7ccdd5d364d10 +Tag = b336cbbeb64fbebf2e7076a98ecf5bbe +Plaintext = 9d2126d34963d3ba12cd841bd321036cb82cfb78f2a6535f +Ciphertext = 88a5b889e6fd74fc15336e23374b430988416c7e6b6e7248 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = d24457d567fd0a65fdabf219 +AAD = 0091d39f3478d2c59bf874b96db9ce0f7e8b85a9b805e07dc96b219819d51663 +Tag = 0ea909047af4998c660afbaf346ed65b +Plaintext = 6da3ac85505e93c4f391ea367a9e15fa9b388ef7ae2693c1 +Ciphertext = 7039a8a49cfa6402b4ba3b840e69200c13ac4a3eb1c709a3 + +Cipher = aes-192-ccm +Key = d49b255aed8be1c02eb6d8ae2bac6dcd7901f1f61df3bbf5 +IV = 50c59ca54eb64575b82b13c6 +AAD = 5e4e42cbf172853c351d597c7d6d38b1a9cbb7ac92c00863a80ac4a2d9f0e7fd +Tag = b193dd767f17783f0b51ac0fb7323301 +Plaintext = 25b2ba0a937b71f3ee68e7172cf2c4524b662efcd08ce2b3 +Ciphertext = e95fc44287ce39c5ad6b91c88582563fa68a9e304094deb8 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 3af625df8be9d7685a842f260e +AAD = 308443033ecd4a814475672b814b7c6d813d0ec2a0caeecbcaba18a2840cdb6c +Tag = f8c99ccf2d82788cf613a61d60dae458 +Plaintext = 8b9db1c8f9b4892a5654c85467bcffa2e15e28392c938952 +Ciphertext = 6bc6890fee299c712fb8d9df9c141f24ee1572b8f15112c2 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 24eaeaa437649e61b706942b8d +AAD = fff75462f96157d9554bddb6aac156fefd88fd4a90a8536dfc28cc577f19c83a +Tag = d0a421bbbc002eb9ac9ad01f625f824b +Plaintext = 49ff4ff85f7407ca383cfa4fd7177adb4dab26e642c8186d +Ciphertext = 3647fae50c588d792442f43a20125e77ab5db3c469391d24 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 7325932d6694aaf61a8204c172 +AAD = be20ceb8ca14e9bef7158b280a26bcac763da79cd0eba9b1833ea808c5e7a66a +Tag = ee32a7ffd4e7bc303d3482fbac431828 +Plaintext = 2861494eb40b9d964d339797c1b6aac63c6674187768957c +Ciphertext = 286dc74001e2a6000a23db164f4b2912de4afcf1df8c3aa5 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 61c9949df5853e42599e5ee0c7 +AAD = 243d09ceb16755cb58d62065df84890b840ad9b7eec1132c6427cd7c3d843fcc +Tag = 5eb30cbec49cbb51c41cd5032b7fd759 +Plaintext = 943a49073db6ae94a88844ed895f8fd99ed25c3f42a2f78c +Ciphertext = d3c56bd265a2cb0811dd218f248800ceade4f02b5403b963 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 07b6c18dd3b0fd9e8ff026a436 +AAD = e85f141c3d1af7727fcdb00f8e2c34e42a436d04ac5b8ca9f321a178a2056806 +Tag = acb5cf2631987d3d963349b035324aac +Plaintext = a18b0a4618063c0519818d113b8e5435aaf153f664058f1b +Ciphertext = 69f933a2a5e774e8d013cbf78c6ab0b73e6ca323d0c52691 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 0c075df70630dec2fe81834945 +AAD = f3f5c5ffbfe8247bc0c33c793652f749fe91b6dd141cf0db56e71cef8a2fd266 +Tag = 4e239d33283d18415b54c2aad4bde354 +Plaintext = ddc4bac4115e8cb06d29d22e400674dbc615a667f933603d +Ciphertext = 26bdd25c9f204fc7520d26c161464c28fb35e395b295b3db + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 0c2d20375057fcd4241d290f6a +AAD = 70ff1b9ff8ec08fdb18b0e7dbe01127ed0cfe0b0a449ca2ace4992b7b6248b71 +Tag = 62d7e0320dc930df3640a786d7ea9ae4 +Plaintext = dacbdf1979e000d52b573e74800761b30acc26681f372acd +Ciphertext = 6a642c389433a3464fc64783ae6a14a9a45f0998b56a5b91 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = ea0801cb3dab853750a922dd25 +AAD = d83360d0896e022bf014bd33710ab212ddedda6d95a54996f33db304e5f12f01 +Tag = 0d06b4a545609a2128a95d4d73471559 +Plaintext = 46cc5653bbd8300dfb0df6d0af3fb7c7639a830bdc9f68c7 +Ciphertext = f1b0728920351d9edfdbe7df360b21f6cc5b628dcf43a3f1 + +Cipher = aes-192-ccm +Key = 36ad1e3fb630d1b1fbccfd685f44edd8984427b78deae7a9 +IV = 97e6de379c90fccf3fa8f27013 +AAD = 539f8eb802bfecaa4fb5b19debbf3d4847db9c4e0473a308ab3f3c859e68fecf +Tag = f3512baf72cd79ba9301194be204bcc0 +Plaintext = 8b013f52a828905013f250fb9c006a173f6c66a64b5ba317 +Ciphertext = 556a439bc979dac1cfea8c5b64aa78547f52a62896c19893 + + +Title = NIST CCM 256 Variable Nonce Tests + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = aaa23f101647d8 +AAD = a355d4c611812e5f9258d7188b3df8851477094ffc2af2cf0c8670db903fbbe0 +Tag = 3bdb67062a13ef4e986f5bb3d0bb4307 +Plaintext = 644eb34b9a126e437b5e015eea141ca1a88020f2d5d6cc2c +Ciphertext = 27ed90668174ebf8241a3c74b35e1246b6617e4123578f15 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 195c0b84baacc8 +AAD = c7d9557b2ed415652ce6faa8cff5217ac803530ec902890b31eaaf3eeb0aa98b +Tag = 82c00b5b463654adbf82888099a7d258 +Plaintext = fe012718481b2c4e1d7f9a7685e3daac43ccf22cad0df900 +Ciphertext = 893af0f130f1317de9f217234274b0c04fcc202cea9a0df8 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 363e0e921c6f11 +AAD = 805678936d4e94746ab4818dc5f50c41e32cf32e7a8aafb300fb91af6406108c +Tag = 80adf2762a1617adfd4d8356bb48aa8a +Plaintext = 7e7e33e1a07d4e8fde2f33304f21cb564d146860ccfeb49f +Ciphertext = 645cdd11a1c232815ce1e07ca3ea83f372eba46cedafddd9 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = e323cc866af462 +AAD = 163c747f3ba4ffd68af87f2475f48f2714659a2ec43b9ed115e02fe0e3c8be99 +Tag = fb9c02753c57fec7e1a5fa8f3860501b +Plaintext = 2bfc76f3b108ba3118b07433c4d3d5f41564d22547c12822 +Ciphertext = 0db04c6b068e73e3c4d71059bdeee3d27622f99dfd07d868 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 03ae777078b95d +AAD = f1dacf9062dff9a6a3d0498f9d058782f891475684196bf2d8e7e905393acff7 +Tag = d104990e598eabd88cc8342ac16424b5 +Plaintext = 38c4275a5f605fd1d99517e13deebf0c9794ef586070fa9a +Ciphertext = df8f524872b5f06f3f219ba76524990b466409894930d7e0 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 1c6c351d4fe9be +AAD = 14285e97cc3cae452e1a52e2fa0bbe24df96abf2faf6b9779acc59764612eadd +Tag = e004894b1861db5d2d8ae98ed8926c1e +Plaintext = 9e2220f3c17532e1ce0d6f562b049fcef35bcaf9a7e196be +Ciphertext = c274b28228a6b13b670c325080f88d188d40d78d385481ea + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = a121dc27479397 +AAD = 359421e9f78cc4a31f4f019977d7fd29780524e20288798c50002a682a6368b9 +Tag = ed2ac2cb63e1b9d7dc598634198fe4fc +Plaintext = d42b16b32e77637724144eaddb21ca8d7db4e7f73acbf707 +Ciphertext = 56e3e3e59e978161355e7d8573dc0657db400ca0b083dae8 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = b1f0e26b60bf1d +AAD = 2ab4239fffd13762fb5391f5a4760d12d96ea12666a793b4d651e9f4891c22c1 +Tag = 95b8a23ee377d5c2850f4ed95a385253 +Plaintext = 9a2851083ad4e7b915bb0526bb4054e4c0b4adf8626edc90 +Ciphertext = 5b2e0215523ff37f0df46e84f996fc9fc779986c766fa515 + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 50412c6444bcf9 +AAD = 09cdcaa87ddf8bbe6db8411d14bb9064e4a121286cc8a6e97fce1844935f436b +Tag = 514ef5cbf9991a919fb4974d55506ce1 +Plaintext = b28a5bc814e7f71ae94586b58281ff05a71191c92e45db74 +Ciphertext = 05cbc32a6ca797684636dedd16ce65a1eed69bcab1b1bdbd + +Cipher = aes-256-ccm +Key = 553521a765ab0c3fd203654e9916330e189bdf951feee9b44b10da208fee7acf +IV = 225557b0faca3d +AAD = 21611da060fa90cf7fd68b721caf303307a56e56453326495b628c7dc93cd175 +Tag = e8a3f7b848054cb235e1b58d6a12c5cb +Plaintext = e831b739e8eb9f787f63c0bb071ddcc9f44cab8d5b447d23 +Ciphertext = a97e0879407eb3b7f93118ca73f17eb34e9f4baf43b07be2 + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 790134a8db83f2da +AAD = a7a86a4407b7ecebc89434baa65ef173e88bd2dad9899b717ca578867c2d916f +Tag = bc00b1d8b2bc393a8d09e87af7811f55 +Plaintext = 59eb45bbbeb054b0b97334d53580ce03f699ac2a7e490143 +Ciphertext = db4961070f528ccd1a5a0681ee4d0ce3515fb890bccedc2d + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = fb2441d1594a488a +AAD = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +Tag = ee21c5738d1f7fddf3030d004a702704 +Plaintext = 451101250ec6f26652249d59dc974b7361d571a8101cdfd3 +Ciphertext = 1bca7b0d35a68c0ffc568ffc8221cca738b67b95e3ab26ef + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 0855263860043207 +AAD = c7fc24863c33f7e8cf97b337918495d52d864ac570c99cbb09d151758d6b504e +Tag = b223454c57c714d96681cd4d55615afd +Plaintext = 61fcd7ef9bf151b9d8a81dc1ba4f82c45e9c2e4784627acd +Ciphertext = 9b939b6b188e1d0fe016f366fb01eb79a99ef7b1b57c6f7a + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 415cd251a5e36943 +AAD = 1a393c7e85fb286709f4eb50f09640e1d65ec1135cb4443820136b3cec69772a +Tag = 9af96d3ce4ea94213b60cb69d92050e6 +Plaintext = 66ae08d494dc9df9b7f8f53199fa37d0c88885458b168c57 +Ciphertext = 1731e260ae31b8068ad1099313b167d9e6cbe49f471da61a + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = d95bd65242bb2265 +AAD = d0e20e1358be5cc1c45c1cf02c82d0a6d0824cfcb65774cf95f047b9f2cc1d3f +Tag = 627a352d056712e0d44404c61712e2ab +Plaintext = 312c3791c64d79205a11eebfc14b2d7a6b00391793c9559b +Ciphertext = c3fbe558ff9ea83ed86b7d66503ee38eee94e4a41fd53f0f + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 3f0bf0141dd3ace0 +AAD = 9dd4ed18209dd6cdf19cc76fee443827e7331aaf020960c15d7bbed0f6a3b1f7 +Tag = 32645a322fa9bc8aace600f942a84db4 +Plaintext = 08354480047eee3beeb5ab165da17d23f2f1a4ad98720611 +Ciphertext = 2db9d2c54134d37ebefcecb9e2076034b975677fde58ef60 + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 3fd8b3a3ff563a42 +AAD = e58327efebad3276a7cd1b1ccb56db0caddd02a303cd9fc7ea5c607a2ebefaae +Tag = 3957a2a5b6164218fc83e12c42d5c532 +Plaintext = d1abd89351384e1a3c3366f77c3175f6390801554d7cd783 +Ciphertext = be284dcb357ae99ada7cc891730320ebb32ca627eb8c8062 + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 14db1ffc1c87117f +AAD = 6c2b091433833a0ed915354dcb70d982095b614dc51a95a22cec417184d8e786 +Tag = 2cf16ce68a93f8839245baebb2278300 +Plaintext = 0594307491f157821e63f50c94034f9284f095d5b897153c +Ciphertext = a114c84a10071e359bba2b2ba4ea67f893e27e6ea880aa4b + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 40b0f74ff27a3fc8 +AAD = 3b9e1f4e9b57a6dfb5e0ca7ef601fc6af30a1f8650228e51e0dc61180d0bec6b +Tag = b8d191130e864bcfcd1dec94a1aaeaef +Plaintext = fc8b7dbceef6b0ffcbade789e09303044042cd671607e819 +Ciphertext = d00ef56074a8213740af8b8f974f778db560ac365d6ce916 + +Cipher = aes-256-ccm +Key = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +IV = 96cbe9cd19351359 +AAD = cf498fd042f9a07503e490cec4873d4df91162cfde60bd2cbb2b710c6681a9fd +Tag = 54e6ec9f6ae1e0976ecf04dbee6463c2 +Plaintext = 315e81c9ce556dcf97a5b68503fd2228a7a6a174a15cd618 +Ciphertext = 7383c2de08bce3f0b7e504dc03d062f44396bcedd2180fd9 + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = caa3d928d2bf2b7f2c +AAD = 304678b3ffd3200e33a8912bcb556b3cfec53ca17f70ecba00d359f9f51d3e3b +Tag = 5a9140ff50dc4da375c7d2de80de097f +Plaintext = e61bad17640ecff926d0b0238271ee4c9f8e801dd7243e9e +Ciphertext = 7bb1137c14cb4d324a4a8f1115c619ebf74927f0bed60a8d + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = cf09ca67659a583bb1 +AAD = 5507c4c3107cb446d19975f91207dbf3e2a51d1dcfd7da2f082159dbc3f41547 +Tag = 971f02b7122d1e4f78de9c3376520f5a +Plaintext = 1887bb0c02500093a30a44b99e137483704b06615d308c6b +Ciphertext = 834d3b2e5f0915c2348c706b4d2ff2717983ab4490edcc63 + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = 97f940d7c1230bd8d2 +AAD = 56be2c9e09b555373d58f6fe2a0ca9b4ddba899addddf12b0fda860ad791773a +Tag = d30ece13481609809b218de04c4e5ed0 +Plaintext = 5ac67c9bec9b95c54e187a4a6812f5d701c4ac8f847c005b +Ciphertext = 9f372ba1c87a115847cd708aaf5b8a143b6981ffc2c61cef + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = 147c7ebb6c92245054 +AAD = f95d64a513a9f3e6c95c9ed27b22fafd7dd10da52636029523142149116aff53 +Tag = 0c0986ecd7dab44e5e97db37392a485a +Plaintext = 08f199a8d7e3ea821dd3106e8947cd2e9d485342b25a6471 +Ciphertext = c438aa6d187643d030dfe4d6b5b578f84838f4dc5c396d70 + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = b9bad794d49cdac9b3 +AAD = de9ff2a43f49cdc502cd17a373989bafd13fa6ccff6660557ce05b6295186d47 +Tag = 38dd977042c4d97da84e4effa650799a +Plaintext = 40d1cd4063750184356a1d7cae1cf1824f552c5d59a62dc1 +Ciphertext = 9952b25f4f4f375440cd958456184fe61610381ba92ca48f + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = bbe054fbef86db3ce7 +AAD = dcec76181e3b872a5a6e79f070354e38866c7f67fc428fbca29ae6d929b1dd7f +Tag = bf22c81a5d824b4916660be6f9b513e6 +Plaintext = 5f29808ba74b672a0f82b3b7581dc32478c6e790e2b8c61c +Ciphertext = 4d176f48b09b772dde8adbdaef720aba128a8d38a902847e + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = 6a35e1a4307f6efc6d +AAD = af28120505a84a75b0f6b18cc9d8c75c661bf143be29c11d8ede78b9bb98c98a +Tag = 588ace6fc303600abc8e5825cbaedc7c +Plaintext = 5e2f601395ec406fcf96785f768162e849f867dca77667ab +Ciphertext = 4e305e26d34711c6aa775f490939cc6560d3cb6905f5b0f5 + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = f6c237fb3cfe95ec84 +AAD = 038f8ed89444784417a9c23bf11e9b436174e6c10959e00faa1704ce2f7f2c7e +Tag = 015a1f78abc287bd2a63381ead07c558 +Plaintext = dfd9cacbf7d73d688447ebab13d2e13f3613652379b386f6 +Ciphertext = fb16c17a6b22a8658f446203ad46a48b34808083b271cabb + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = 50d024a3e7455d7249 +AAD = 8513365786b7988b208984e11022c15573f978bbdc29e8a7a4745c8a81885a1d +Tag = 721f714120162514555b60560afa4256 +Plaintext = 400317786b7df63373ffe541efcee6318cfc95bb673aad3e +Ciphertext = d33b3141fea3a9ebdeb80d1da32dae42680be78471fb3023 + +Cipher = aes-256-ccm +Key = 58ae7965a508e8dd2eda69b5d888a28a1cb3783bad55d59d5b0da87137b72e93 +IV = 02769283d5a06c363c +AAD = 292c0be3713c6c588cb4e29a1c43b3e6353e33556194e568e800e4e44e8281e0 +Tag = 51f5e62b3b923a937e6c307af202fab3 +Plaintext = 12ba8eddff1c2a03ddd25bb924ff065a93fd712b2c4f61eb +Ciphertext = b15b1789c323a68568f86f35483bd7e204beff8f318ae143 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = c527d309ab29ee91c5fc +AAD = 8f9a73e7bc1c11e2919020ba3a404cbddf861e9e78477218e3be2cd4337b278d +Tag = ffc040ef3977e0035ce6ea6d157c18d3 +Plaintext = d4291c99901345afe29f58912a414a7498f37b44362bdf3c +Ciphertext = 392784a9e0b14bcd37639ec5409d6ead3e75f855e5a92c33 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = eebc31a5813b4fb93b63 +AAD = 9c87ad77953bf8a811e001ddb946eefafbfaa598150e85f0701853fa307d77d6 +Tag = ade65aa17e4dfb0aafe18cf71a72b180 +Plaintext = ebcfd71120b0f9a2cccb898e6dfa082998cbe10032de3e61 +Ciphertext = e38eaad1e2df77e85e7129a8ce0f82cfc32b0aef79ab651b + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = 231b33dc406c9210f59a +AAD = 38be46d271bf868c198052391f8a2147c663700d9bb25a0caaa36974f18dacea +Tag = b7f3b898a2356909784598f8a8916f5a +Plaintext = 9032f910347daf661092b5c1f15b5ffed1369b194d9e12f0 +Ciphertext = 868b85288828501cf1d06610fec25e8b8a4b437e2e4f5563 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = f2a88c3ebc74e62f24c7 +AAD = 5f495c5da035cabeb77e8aef10e91a05bd5aa414d1a37fa1099af959b26e5403 +Tag = 2788860aae5534cf84979e30c3327d37 +Plaintext = cfe8ee9b475e36058471e2984ae66f6ba1b3cb477b15155e +Ciphertext = 22c16333ac651cd9c183e78aba3e9312fb3b77dd6f919950 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = 9cbaf1c83ba60b1e90ea +AAD = 7ef136bd9a5809676abbaa68016d6fc713e34ac4b768a8246b1198c959f43085 +Tag = 599ca6ec1c61a14c37b5902389e47aee +Plaintext = c3bcb0aaea93893f05eeb6439c8619dec17670a6439e2921 +Ciphertext = ebd9fb86563aa8f10062624441336f982c161ce5717d990a + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = e25322845d87d8a76753 +AAD = 2a89b9f0e56a1cf87dd38ed78028b6286ef8b7141dd2b3c65c5a8e1ed79bf4aa +Tag = a0604deb3fd9cea2d89987833ff5c2f1 +Plaintext = ae622ff9381854f831892c318bae5c003e74b15199bc12c0 +Ciphertext = 144c920f0fe278f353d0b053563d907c7589e4f1479d7a93 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = f4d7978fad36223623cc +AAD = 8671de7e994967f2521d263925e745af9273682d9c08ced07d4a98fc985f68a0 +Tag = bc866ab47bea7a4d0070e52b492fb8f6 +Plaintext = ef9b4ff8da108cabc972192ffecd5f96594c6d0871ffa6aa +Ciphertext = ae4948b3bc1e50beb9f5d005871fc0d3dbde295de1c9ec3c + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = 6597ffb9eaad0fd9d830 +AAD = d2967ddf69ef62a9e23c9118dfaa55df92b4116322f1c9275131e3875dc92faa +Tag = efcb3dacac25bed0304f227fd5b77b8f +Plaintext = 5015c894b2437ff15c46bca9236830ff4bb057cd5764f027 +Ciphertext = 0b1dcb3cb0b4c32f398f3c43eccfe8f4242f33c99a2a2283 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = 80e376b87272d99cde28 +AAD = c9cc8f967dff45c05b9345d03813b6e30dace99556f7df75b7120bb6e5f55827 +Tag = cd2f7494b1fb0a0c6a2184e5c4787fea +Plaintext = 615f657e24129a3e0f119988959608821219ce8354c4be26 +Ciphertext = d3e8b8f7ff8faa666ffe2509187fa7befc7412fd4e3bdb06 + +Cipher = aes-256-ccm +Key = aecc5e18088bf9fd7b17f089bdd5607b69903b04b726361f8a81e221b1c91891 +IV = 344cce96455541d403f3 +AAD = 748cce18fb40126ce125dbe341fbbc59d2aacc170ed5ef0293b15713c9184a07 +Tag = d93b6f8c8a1bf72be75976e4ebe6dd1f +Plaintext = 828b6a4cd49f499a6e8e8508f9ab35255d8e9fed33ba4d91 +Ciphertext = b67e582a74d7f022a16ada2de7ec18caafdefa6b104baf4e + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = 0bcf78103ec52d6df28887 +AAD = 049c10f0cb37ae08eae2d0766563b7c5a8454f841c2061a4f71a0a2158ae6ce5 +Tag = 7a483163dd8f228d1f20cd4f86cf38fd +Plaintext = b99bf4dc781795fc4d3a8467b06e1665d4e543657f23129f +Ciphertext = 0d3891fa0caac1f7ebe41b480920ffd34d4155064c24f3b1 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = ab6374c6b2faefd92fa3d3 +AAD = f19c044023e5cf339203738ee70e76527519763664c06ae00e002a5ba94c32c6 +Tag = 1f1ad61758d828b70d4881b7d6ae8cd0 +Plaintext = a2e5c51f516db01688b64c173bb25645182a005018022ee1 +Ciphertext = f70c598df3c64d3527ebb7fc8408b7de2cfaa1da7984ec36 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = cfb89e7ddcba601e875110 +AAD = 052714010da516c896ac5842a839ae845324643cddb080e6206148432d0d0407 +Tag = 316dd62075fc761e2bc80edc5c564bdf +Plaintext = 037f206cab78a6ca0745dc8fc137e22e14f3d7183917ef83 +Ciphertext = ccd675862502a2e2520a33250150b8b7b220e84db854888c + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = 967cb6f8530bf8a43adb42 +AAD = cf391a84d03e2e22aec1965cec821f99e7bf21a7c3580dffa531464b22d83225 +Tag = fc8b5aca6d606222d6af7cfea0d1f4e1 +Plaintext = caa3d928d2bf2b7f2cd8a7f357055b6d6895a5e34f47972a +Ciphertext = 4f4f509debe6e52eae4af8b1740dde0a5338f78711a3b4eb + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = f5b7b5dd2b5e1ec93710c9 +AAD = e7a6b228a67d37b9d29a38efc547e50b4a6d95d599b45ee189ece21101ac6b5b +Tag = b2ff27a98029b23484e00c2a5d291887 +Plaintext = 4a74ff35418723f2cecec1012484b52114067b2b2393e7f4 +Ciphertext = 25b140922a9d4f2ce153a4ff86596a49d7de6a6184e931e8 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = 713de00faff892977d99d0 +AAD = 14ea93488d4284d21d4c7ce14414adf45c1ed9d2d99db866d0e59accb6234dac +Tag = 3d2ae816edf857c810b6fdc7f2c71f1d +Plaintext = 3820db475c7cb04a0f74d8e449f026ec951fa59667738698 +Ciphertext = e4d92ab8d1ffb0976670d891cc8338da12f86d5d79b33410 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = ba87934808de09b2ae829b +AAD = 30e2ea2a505f19e8760a0a84961000c7a0b7fe3460a9d3f5a38f54149be2e9ee +Tag = 93fc57997b977948d55bdb026db5bc48 +Plaintext = 0e52a384cedcdf7f179348de6e7336aa86f8855fbd903cfa +Ciphertext = 6df893eed2be958e5f542f8cb4adb392b34786cb4ce821ec + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = ea09fbe5da0fa4fe911e18 +AAD = 237dc8512b29bccdeb8ee39cf83b9b6dd203823d175c44d5f605b194e7ec136e +Tag = ff704a2bcfb8becd0226f76d68fbb08b +Plaintext = 41cee0ecaf9c65cef740440af37954ef49a585779d2abbca +Ciphertext = 2f204ebcf549ee2a800d870e6341b9a89a41ab4ae91b6902 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = 5b80d7affc4ab4a4b68bdd +AAD = 3a38dd7da30f5c312fb1e978d87b7a39792fd9ea3e9ab1565874e99df587327c +Tag = 8df9400df42baee6b9a0d75b45840104 +Plaintext = 5ff92f6d3ca791421363e10cc84b4e8e21e0ebe5d8c55d6c +Ciphertext = 05472db7875d59f8bed45606f355a516de93740aa2baeba1 + +Cipher = aes-256-ccm +Key = 97bc7482a87ba005475dfa3448f59d4b3f9c4c969d08b39b1b21ef965c0f5125 +IV = 514bba483fe7f2b7e555cc +AAD = ac8beb419099cdb42a39e9b46fd900cc52eec4b43a96ed18b37b899b63fb931c +Tag = 847729a70d7b4cff5281aece37006015 +Plaintext = b0b11dfca9b3936d1b4a423c5acd3d012b399a487c19c994 +Ciphertext = fa20629d514c4ce7bf727629bca5aa1c0c7e7851fc1bfc5c + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 2f1d0717a822e20c7cd28f0a +AAD = d50741d34c8564d92f396b97be782923ff3c855ea9757bde419f632c83997630 +Tag = 08aca7dec636170f481dcb9fefb85c05 +Plaintext = 98626ffc6c44f13c964e7fcb7d16e988990d6d063d012d33 +Ciphertext = 50e22db70ac2bab6d6af7059c90d00fbf0fb52eee5eb650e + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 819ecbe71f851743871163cc +AAD = 48e06c3b2940819e58eb24122a2988c997697347a6e34c21267d76049febdcf8 +Tag = 32d42f9954f9d35d989a09e4292949fc +Plaintext = 8d164f598ea141082b1069776fccd87baf6a2563cbdbc9d1 +Ciphertext = 70fd9d3c7d9e8af610edb3d329f371cf3052d820e79775a9 + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 22168c66967d545823ea0b7a +AAD = 7f596bc7a815d103ed9f6dc428b60e72aeadcb9382ccde4ac9f3b61e7e8047fd +Tag = 7522efcd96cd4de4cf41e9b67c708f9f +Plaintext = b28a5bc814e7f71ae94586b58281ff05a71191c92e45db74 +Ciphertext = 30254fe7c249c0125c56c90bad3983c7f852df91fa4e828b + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 225557b0faca3d6cbaedec5c +AAD = c7aafe7d3b419fa4ea06143897054846ac4b25e4744b62ba8a809cc19253a94b +Tag = ac57f6ae1080efab4ed93f8b4ce1d355 +Plaintext = 0e71863c2962244c7d1a28fc755f0c73e5cbd630a8dbdeb3 +Ciphertext = 2369b56f21336aba9ac3e9ba428e0d648842a7971182d5ff + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 78912be1a35e156a70fb72f7 +AAD = 12ba8eddff1c2a03ddd25bb924ff065a93fd712b2c4f61eb80d77fab2c4900e0 +Tag = ed3ccaeb7a814f69d3ec1fbf2ee9792d +Plaintext = 113efd182f683596862ccd5eba2e2d4ffa709d9b85c6f1d5 +Ciphertext = 835a22eb8d718c0ee1531a2d1bb95f58215c997c612908ee + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 91ad90b58d2044abacf957e1 +AAD = 4fc795b9126c23dd7fd514c2e5a8ca583e88a783b28cbb2a5df09f8b520ba0d1 +Tag = c257d67143722a976c9d7f44b09a767d +Plaintext = ed55f6b9eb8fe74474c037ede94ffd84ada846ede4ecff74 +Ciphertext = ecb595276fd5d412a7cc3f5cfe960f47a0d0e2df0b08a11a + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 4bbe4ca29122c4892ca09b5b +AAD = 367ecd1b71dfb96a84e2369f28705dfaebf0c73ed35d5364449b2391230be846 +Tag = 6843a685bde3175695796f6e64f35901 +Plaintext = 8dd497bb777bbc3e56e3af25a43545007bb00f2b9e9f815c +Ciphertext = 563d61fc0a5b82804a580a7d752a8e61d3342fb39372b39b + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = 218e7b8a8fd62927f90b70e5 +AAD = 01815f599d6ba0d1c09f6f673bb6cca4c2a7a74f4e985be4c0f37842c7bbc5a4 +Tag = d027e3466e8220144cb0552f9b2800e6 +Plaintext = 80f3e4245c3eab16ef8bf001429122e46bde21735f63adba +Ciphertext = aaceb16589b9de253c99d0d32409a631db71e8df8a7644bf + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = eecc9f106a0721334cc7f5ba +AAD = bf38d0ee11a796a517539bbc9ab00ff85a4ddbf0a612d46e2bc635180ad34c50 +Tag = 4c9027fc41bb8c848025fcf9d092a873 +Plaintext = 36cefa10af1a3446a2c8d4a1171144b9ddd8e33a7cd5a02d +Ciphertext = 9bf3b2df93cf5b587ecc96f45fc75e6eb066cb286cb06f28 + +Cipher = aes-256-ccm +Key = d6ff67379a2ead2ca87aa4f29536258f9fb9fc2e91b0ed18e7b9f5df332dd1dc +IV = e41af8ca408c4c12e37561a4 +AAD = e0b20892875f60b5d8763a04958487fa5b7cf8d67a456e430475b337245d671c +Tag = 7e6e0e5dc0a03826e51bd94269d7a41d +Plaintext = 32a4da08bdd51336ed5798c7177b853a534bc98f2e6f7d4e +Ciphertext = 95ffdc68f721cf2294d0d88002e3814167306fd906dbebdb + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 46eb390b175e75da6193d7edb6 +AAD = 282f05f734f249c0535ee396282218b7c4913c39b59ad2a03ffaf5b0e9b0f780 +Tag = 5460e9b7856d60a5ad9803c0762f8176 +Plaintext = 205f2a664a8512e18321a91c13ec13b9e6b633228c57cc1e +Ciphertext = 58f1584f761983bef4d0060746b5d5ee610ecfda31101a7f + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 8a56588fe5e125237b6cdc30f9 +AAD = b3aee5fbf409bcfe9b46ae68d570edbbed32c12d13926ffb5ddc60ff0bdb7f85 +Tag = 276664f6567f2f978bd4be4d80cd07be +Plaintext = eca81bbd12d3fd28df85e2cc3dcc2ecbd87408002fd00fe1 +Ciphertext = 9aad62a5443550d11f9efdab2de0eba74d47ae4f7d16adf4 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = d908b04840caca2280e5293ade +AAD = 314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e +Tag = 6e5a9df1b1d6284ef657cde6f74734bb +Plaintext = ad1109ea5c79bb55d22e9713eb2df42767cb29a2eba3ad2c +Ciphertext = 61fdcebb158cd03151697ae7871c0a998802997e0672e588 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 080f82469505118842e5fa70df5323de175a37609904ee5e76288f94ca84b3c5 +Tag = 8cc80aa08572b90e9598d0a73712b720 +Plaintext = 1a95f06b821879df3fd3ac52fc99a7c1d3e9775263b7d036 +Ciphertext = 704f60f9cc3ef7bc00b4f7a271ca70a89f4d5605387b3e2f + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 6c6ebacce80dde9fefb7e5bb47 +AAD = 93f0fca0c8c84d5cc48160b25e246226d489225c0f8275e52856da592c715aa6 +Tag = 86b2c952055899184f0d95ffe3959f89 +Plaintext = 46820aec46ebd0d61706129584058a1498514928a87fe620 +Ciphertext = 00f6cccf45f046da1e6266afe61eed61c60c28515b2e1ab3 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = b94bc20d8c9abca7645fc6bebf +AAD = e1c083c93663f5a066ef337a61aa3fddde7c301a42463137c375cc2dcdd76954 +Tag = e37a53d77b9e38605febdd7b2b666f98 +Plaintext = f1fca581d3dbbc61060c0c02adb47bc57954d25a283f66d6 +Ciphertext = 90c65d23e0e1786cebb95f9b1306d001b2e503842cdedb75 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = a4974791d417d7e9eea0f4ae8d +AAD = 33602f308f3a0f7e1c75fc1e4321d545ffa278234958dbadd37f59a0f85349c3 +Tag = 63ceb824708a20724c99c83f1caacd70 +Plaintext = 41712c058d2d56b43b2c79278e790858a289320746c15a60 +Ciphertext = aab5656a1ef060c9b1ef7e2f3cc0bda40ff0679004011825 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 6003b771afe4e99e1ef1ed4a31 +AAD = f60d8362b2ebf523681bb051fd3ee13919ad86acd963c703c4178a5f01a84236 +Tag = a84e7af3116a18f7ce44ae93f420270b +Plaintext = b766022311c5e1d74a607fec7cb8ee805b8397a6c5f374c1 +Ciphertext = f73b2a6dbf8f798d4bfb489a6578c9c79152e42aa3b81b64 + +Cipher = aes-256-ccm +Key = 4a75ff2f66dae2935403cce27e829ad8be98185c73f8bc61d3ce950a83007e11 +IV = 27861168ac731a223dc35c03e8 +AAD = b7ba1c66282cb6092ba601407ff9578afdadf7ba7a4d08edef06dbbfd87171bf +Tag = 4009312bdae46958d844eca502bcb005 +Plaintext = 0822e3e6ba982091d532cd5271fbde25305d1f6e71880f81 +Ciphertext = 5ab3e5296cd1f08704c82f6b42939702515b7733853d723d + + +Title = NIST CCM 128 Variable Plaintext Tests + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = e1de6c6119d7db471136285d10b47a450221b16978569190ef6a22b055295603 +Tag = 0ead29ef205fbb86d11abe5ed704b880 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 98d477b7ef0e4ded679b0bc8d880f09823ad80e9732fde59c3a87da6a1fcf70b +Tag = 5b85d144bb51d4927074d3536a2db83a +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 28f32de10b6c9d3c3f46efec7aee24006208a54c4d1c2bba4b8cdce166cab7d9 +Tag = 01045de4a09486eea5efa33ecc6cd299 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = af397a8b8dd73ab702ce8e53aa9f0189995c6c9e920dcb75795149550b499deb +Tag = dfd75400b59c3ad387bc86dfbbfb52ac +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 3fa956bfaa27e249bf0a1276468d808259f3b8e2687851d780885d44cc2f04bd +Tag = 2b11d2549b4e2f0a81c07ee90af4d081 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = babbd1b44cae3af06e0150bf0e3d898f6fe862b71ea9f6b727accfc18848fc79 +Tag = 10f76ab445f4ec158ccc1f7c6fee3ede +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 7fba0bfda3b03c736c121cf9a257db55060b621be5168619ec4182f13ef6a408 +Tag = 59e02d6a6aa3fb2692b04e65a0e735da +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 057354a29808f4ed77671ed3dc36f8b03f5cd952caac5cb80dc3b319f3333e29 +Tag = 367a2ade4087964dcb0ca2984d44657e +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = ec08b618602d091e9304715cb552b357c16fd1d7f7f023a28d84a98ba21ca0ab +Tag = 47cb92cd40bc89328d4dd44fbd727032 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 2ebf60f0969013a54a3dedb19d20f6c8 +IV = 1de8c5e21f9db33123ff870add +AAD = 45622834ea658b09b17f32777d18b34b387ef957bd344468f68e7178417a7c24 +Tag = f5185afb8359b5ef995483c0bc4192c3 +Plaintext = +Ciphertext = + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 9c9b0f11e020c6512a63dfa1a5ec8df8bd8e2ad83cf87b80b38635621c5dc0d7 +Tag = 201784bdab19e255787fecd02000c49d +Plaintext = 0e +Ciphertext = 4c + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 73616a428f1a567b2e9af86b1fc8aec6d597b1b55f2aa2219b3b662fa6bd3407 +Tag = f14519f06b63fac3d5b2d9bbfa0cb758 +Plaintext = 30 +Ciphertext = 72 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 6d62f4e15e8bcc9ba4993bc50a046737121016f0d15020b90068250551167b1c +Tag = 76b581a28ca0a0ba5178eba7fe028da6 +Plaintext = 34 +Ciphertext = 76 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 8f0b8289a1834ecc2167b59ce3c9d3b58465c4cfaad50c728d04360cb7e5bc41 +Tag = d99b805c0a4785ff2913cab3e50f6205 +Plaintext = ec +Ciphertext = ae + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 477b2a6932f838f0d1bc420c0ca306981d8e2dab945b6f259e15fe888667220a +Tag = b50e41cd7af84a8fdb6aee144e904616 +Plaintext = ec +Ciphertext = ae + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = d6518d409b1f05708d0b44f18fb5721f20f3220f8d2f2718650aa9932e4579e0 +Tag = 12639c863974f077fe8236c943b464c4 +Plaintext = d1 +Ciphertext = 93 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 865e7cde73b558e9bfd05356923f8a697970811fc484acad2d5b3528baf1f986 +Tag = d7265cde50bc7a3989458437baf06db5 +Plaintext = 24 +Ciphertext = 66 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = f0c3c67a935eace53ed32435655dd0974fafe283622e8294a15d70977398eae2 +Tag = 063144b25d2268063815d1b42ebbac34 +Plaintext = c5 +Ciphertext = 87 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 341e71b2ef26e9db03882e06d06cde2c0617326cd157d5984d22f6f3407a9c39 +Tag = 7da45c10d0d6498716bcf3f13ca7e26c +Plaintext = 34 +Ciphertext = 76 + +Cipher = aes-128-ccm +Key = 6ae7a8e907b8720f4b0d5507c1d0dc41 +IV = 7f18ad442e536a0159e7aa8c0f +AAD = 31fce6735ba9a3385df11c153179b8e4141a3c6b8ad6eceaa211f3f17bfd0474 +Tag = cb0a6f562974cfb3fb7c8d5cafd50f2b +Plaintext = 7d +Ciphertext = 3f + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 90446190e1ff5e48e8a09d692b217de3ad0ab4a670e7f1b437f9c07a902cad60 +Tag = db77c1f8bbac2903a2ec7bc0f9c5654d +Plaintext = 4360 +Ciphertext = e38f + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 6bc3d30925c67371573271f1a4273ad76e91e07dfab65f7bce0b241b5e4cd00e +Tag = 55210d62e1393e4fda647c2b2e59a47d +Plaintext = 17c6 +Ciphertext = b729 + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = d1bb4cdfc3f2c16d92576068543692aa4b5a427d688387af0f1583e91a0e8b3c +Tag = d54fd88a47b9f6e39cb4606af86d13e8 +Plaintext = 6575 +Ciphertext = c59a + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = ae6136df9ab43631ef143515dacedbe759b3459e951bfaf4712a21c86352f1c0 +Tag = 6de841af64b55bb7ebe3fd30ba493c7d +Plaintext = b1dd +Ciphertext = 1132 + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = ffead34ac26e21158212d07c367c3a7cb6b795887ee2d3d8ae25c60556ea88d3 +Tag = 3a206339de534271f6469edfa5ed07d3 +Plaintext = cd16 +Ciphertext = 6df9 + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = e768e7d867820d46c1cc62ee0e51d4dac6f5c4b5785b5ccfbf05236871bdce2a +Tag = a8f65144f2ec5809e2ccb38c8760f7bc +Plaintext = 12f5 +Ciphertext = b21a + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 402e802885e4119df17fe85f141c3d1af7727fcdb00f8e2c34e42a436d04ac5b +Tag = 9af825957abe7d89e175b6e8c0b84b5f +Plaintext = 39c0 +Ciphertext = 992f + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 8a3a622b3d347c0c5210d484adf77fa33205ba02224ddceea71d89c9ad8429ae +Tag = 25d6a12e91e84e355934547f6b5dceb8 +Plaintext = 912f +Ciphertext = 31c0 + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 636114e5e5f83cec94e1df21d6babb9f6a14a532fcbfc3bcf649fbd79ac1abbb +Tag = 6db959a21e9e4ebf25ca4f98501b560d +Plaintext = cb6d +Ciphertext = 6b82 + +Cipher = aes-128-ccm +Key = 3d746ae6cac5cefd01f021c0bbf4bc3c +IV = 597b3614ff9cd567afd1aad4e5 +AAD = 04e84f9156998c2eca9e96079a6001f2947dc49a081b3d75e47d75f71ed4a606 +Tag = 2006ff22ff231a6646ae561923818a21 +Plaintext = 5bd2 +Ciphertext = fb3d + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 00d57896da2435a4271afb9c98f61a650e63a4955357c47d073c5165dd4ea318 +Tag = 57bfc5f385b179be7333eb3f57df546b +Plaintext = 3a6734 +Ciphertext = 384be6 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 50f6e6dd57bd3a24f6bfdc8b1c7b5a36ebdd07fd6d194e6e82da47151d9c88fb +Tag = b8ca97bda492546d82dccdebef441f8b +Plaintext = 4ffad3 +Ciphertext = 4dd601 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 70e132023acae1f88c7a237b68f5bdce56bcfc92be9f403d95d3bcc93b4477a9 +Tag = fa0f3e397d9a580aa39c7028e1a508c9 +Plaintext = 8a594b +Ciphertext = 887599 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 08d2b011f36e05dc728c1a8bda3d92c779a3d2f27c4b041810bd6222c852b14d +Tag = 593460d335e2f7a6d40b8fe305b0f690 +Plaintext = 1f89df +Ciphertext = 1da50d + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = b207eb870aeeab27c6201ef04650bdc7ea30028a243420f7d198f1c9c9a43023 +Tag = a2d49e1a113767ea4219107819d88b65 +Plaintext = 72e9c1 +Ciphertext = 70c513 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 74294088721fc9e7aabd5f1c66b5369b1e2d2cdb3e73abaa28ecd1c37d4ecea2 +Tag = dab1c819778be8453db163c882063af8 +Plaintext = 016083 +Ciphertext = 034c51 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = abbd347999a1c26368cdb17ab08bf57a8e942d1248296e952f5f42f2cabbf0e6 +Tag = 537eb435df8d0e48c3f7e0bd1877c866 +Plaintext = 25f665 +Ciphertext = 27dab7 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 231b33dc406c9210f59a5df1cfd595c803474db34b9b1848f0bcbe7b28df33c2 +Tag = da549fc63d55b5910bbbf64435b95220 +Plaintext = 158606 +Ciphertext = 17aad4 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 69b851e63a78baef90637978e3dfe8c47be4b21e85bb89bf67051cf251004376 +Tag = d5ee29fb2af47f8040fad585921057f5 +Plaintext = b07452 +Ciphertext = b25880 + +Cipher = aes-128-ccm +Key = 3e4fa1c6f8b00f1296956735ee86e310 +IV = c6a170936568651020edfe15df +AAD = 9b1f786c887d310b8efd3e8192fe504f603024c94aaa4ec9123736a40bf1605d +Tag = bc3ee43e10205f83143e0d3794a6734c +Plaintext = 65187c +Ciphertext = 6734ae + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = fba1d18a74a3bb38671ab2842ffaa434cd572a0b45320e4145930b3008d8d350 +Tag = 35c4dd96e83d5ab4c3c31c523453c317 +Plaintext = 4cabeb02 +Ciphertext = 32501f42 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 78b3faecb2bdf6ed14ac2b86ded07aa791b60f5d54f9e24a965a8453f5131898 +Tag = 7907d6a03e66403a7d9330d30d934a8d +Plaintext = 5ff73653 +Ciphertext = 210cc213 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = db1239528eb464dd063e2a97ee83a87d6002ebb4fbafa77036f72c14f3fe959b +Tag = 44f4bc78fbb969935076134437df82b4 +Plaintext = 062fa9ca +Ciphertext = 78d45d8a + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 0071f1edb3a0ce57af3c88bb0ccf138f752697a77e55695838fb39de04c78dfb +Tag = 59692911fea2e0034d06c3b2e89af3d1 +Plaintext = cad710b4 +Ciphertext = b42ce4f4 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 7381471a62b1fa6f5061c4c37e9721f07099d007ffaf8639aa2ae3f82da5a559 +Tag = 68484e22381923bfcaed16e0cb85b0f8 +Plaintext = 7ac716b4 +Ciphertext = 043ce2f4 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 19bea6d92d5892216e8e4a30dda802387800bb046a6717817fc46c7edafe17b0 +Tag = d081de39c247df309c4b56c31c03690d +Plaintext = 362da02c +Ciphertext = 48d6546c + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 8503c8eb9cebc6110f259e35e03a0740267768130ce6f61b1c7d1d25be942274 +Tag = c6c6bd7b3a9d7c4dfa2738847ea3cb33 +Plaintext = de52b209 +Ciphertext = a0a94649 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = d2445db6efecaa3f426b06de8d496ceed54a1d0171384cc762e21b31e265c6d5 +Tag = 2ca874d18d0b790856837555f4d4699a +Plaintext = 8fe8b383 +Ciphertext = f11347c3 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = 8cda7d1e135cf5fde1ec9473c4b42c1bbb445c27fd87b5f73df61ceb2d0b6f75 +Tag = 932c2f8d78e322aaffc90846025190f1 +Plaintext = d8d6b2c9 +Ciphertext = a62d4689 + +Cipher = aes-128-ccm +Key = 7ccbb8557f6e08f436d0957d4bbe7fdf +IV = bb8e2ef2ed9484f9021cda7073 +AAD = b506a6ba900c1147c806775324b36eb376aa01d4c3eef6f5a4c25393ecbf2025 +Tag = c346a4084918081b4bbe53b50d896788 +Plaintext = 6a029e53 +Ciphertext = 14f96a13 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 11bc87f1c2d2076ba47c5cb530dd6c2a224f7a0f7f554e23d7d29077c7787680 +Tag = 2066751af249d521c6eaebdff40b2642 +Plaintext = f5499a7082 +Ciphertext = e378b77624 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = d54219ef4fb851bebd1c546011ae3922b8337e19c28d4d58428efd66f80edcf0 +Tag = e7258df363e0e9af67a543c86db3c994 +Plaintext = 513c46fcce +Ciphertext = 470d6bfa68 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = a92e88edd297da8c7089e21822b3e6cffd6837c78b975c8413fd6cca1b99bcb0 +Tag = 72b7573e5b27a1d0e15cdb7b06c8857f +Plaintext = 9d62e557c3 +Ciphertext = 8b53c85165 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 77d9c306aa257379053cf1f2043c388a301dac2a9e2bb89eb8bab6eb3f150fe3 +Tag = de691a412ad54bbdb6ceac45ed45902b +Plaintext = 7a05db235f +Ciphertext = 6c34f625f9 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 081568ae0b948aa647b9d4dda5d42641ad5de72aa9874d8d0717d872007720a8 +Tag = 8a1bb8ba3d6763dcb1bdd3400e3459f7 +Plaintext = 30a22ca0fc +Ciphertext = 269301a65a + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 695ba4dea0f84baf190ec25a25fc00cb9898902d7a17e6f5ff2df323b974f7c4 +Tag = 403897d496cabcd5bd9de3282199a8ed +Plaintext = 35e25aa51f +Ciphertext = 23d377a3b9 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 1f3ba0336a634efdd11f8168c0fe25039f9403bfa70b3898f4dbe577dbd52957 +Tag = 70a81f7cb0ab7ab2b495f51d66abeee5 +Plaintext = 8bde704c74 +Ciphertext = 9def5d4ad2 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 097b9ebff3ff93a143678d59721fdf359e95cbc82585ae47727a773317925d38 +Tag = ce68e9b01a4462a2221bd2f3cadf64c0 +Plaintext = 428542ecfb +Ciphertext = 54b46fea5d + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 76d0341dd44c39e43a23dbcf4cb602f15d5fb9fee20c3d0d262d539c3fd1dfd5 +Tag = f2545964ef3978cad3387d61104bab84 +Plaintext = bd6866ded0 +Ciphertext = ab594bd876 + +Cipher = aes-128-ccm +Key = 3725c7905bfaca415908c617b78f8dee +IV = c98ec4473e051a4d4ac56fd082 +AAD = 7e7c40ad64b511005b4546f9ec61ca24829390fbc4bd8507225bc348ae0807d7 +Tag = 002c41938a935d51905b2a708a2c5194 +Plaintext = 5822755a3e +Ciphertext = 4e13585c98 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = bb4e706e73d21df66f64173859d47e247527cd9832e20dccff8548ed5f554108 +Tag = 8427f36b1f6c633e4542f32b50ca8edb +Plaintext = e479990bf082 +Ciphertext = 89c924623887 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = 9db2182c8a4f5471082bfa1a8496602cbcdef2790f7e8f71f791303bd48dcb05 +Tag = d76fe54da69af5edf8309c7f013bb07e +Plaintext = 017a7fd1aecb +Ciphertext = 6ccac2b866ce + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = bf483f59fb73681f27b68168c998c90ea8ceea997654c6fab2bd737dcdc884f9 +Tag = 662f53d17f7cb6673415bb2324ca0666 +Plaintext = 512fc5e4973a +Ciphertext = 3c9f788d5f3f + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = b91e641d8210e1ef705fec2beb9f58a391c7d1a38935cd1d13f2c00363388ff5 +Tag = 40c86156b1065b64af1e4d6c89b32603 +Plaintext = 06212e989616 +Ciphertext = 6b9193f15e13 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = 5cebf908e232d797fcce8453c4c3000868d4172622a4ee0d6a1bdd876a0b7c96 +Tag = c07ef5349903b928e39e99e2e32625de +Plaintext = c45629069ebc +Ciphertext = a9e6946f56b9 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = ab92cbc97f3aa6f9ea4dae5d8c3d9e91231f43ffff548da7b668e61c183ac2cf +Tag = 5e40654ea16e83cc6faeaad668c416f3 +Plaintext = b949ced37725 +Ciphertext = d4f973babf20 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = 2c3d2f9c7e89c2b9e07317c4db6e9f00f5faadfad531c5bea79d164ac24d4543 +Tag = 3102a502dbba0c280e1d5fc627fe3a9e +Plaintext = 517ff7b383b7 +Ciphertext = 3ccf4ada4bb2 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = d798e77ab0f3697768f23014fd31b9e8762ae65b6aa8a4bbc17ecb8cbe78461f +Tag = 6745fd4c954396e696697731e1f9a262 +Plaintext = b40d863ca4ff +Ciphertext = d9bd3b556cfa + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = 45b44e3dec57e24d960fd1767797ffdbbab81e38bab37e6974df262c3d932327 +Tag = bdf2b2dd47077c98234eae5d47c3b594 +Plaintext = 56e00289a003 +Ciphertext = 3b50bfe06806 + +Cipher = aes-128-ccm +Key = 80bead98a05d1bb173cd4fca463b8fa3 +IV = 8a14a6d255aa4032ebff37a3d7 +AAD = 645d27970ccce096d082fccfc1183955bad2611af0dd7c58c9d54430f28bd992 +Tag = ea66649ad7e204a344d3234125aa324b +Plaintext = aa22bb1de579 +Ciphertext = c79206742d7c + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 6d5573c9279897d7d1602d8a95c04bb5ca3fad2dbe89a024b3651eb227e73bb5 +Tag = a852a7c4358dfa9f5467357638acac90 +Plaintext = 2a5775986551c8 +Ciphertext = 4f259f2a718fae + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = ff0ab5021ef466e2e898b0993d691145168be558682c74914c172f2b5e863754 +Tag = 8767c76e707d48a2144e090812e0192d +Plaintext = 8db3c1ca0580f9 +Ciphertext = e8c12b78115e9f + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 2ee03cc28f79773af139c4ea55ec4daa48bb2885b8adcd5f066eceda5c4ec27b +Tag = 5486df740083c959fb62ef7e2e221602 +Plaintext = 3c69e2e83236b6 +Ciphertext = 591b085a26e8d0 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = f041504d4c1b3d5be358bd6d350af42921205d29ab22b44ffe221358adef5bb4 +Tag = bdc4d2b86b2528f75db4a7f5423f4395 +Plaintext = 777828ab5ccb68 +Ciphertext = 120ac21948150e + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 81ea116832d69542ac8d3d22c16c82eecf2ccac39264dd933c4f9c13c8d0f1d4 +Tag = a7b06d1b710baa15daef19069ecf46f0 +Plaintext = af556fef3584e3 +Ciphertext = ca27855d215a85 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 8a0a120ed290a62456f002da1c250a0ddb1ebd57185a733d8fb562aad482679d +Tag = 3811129add52e1406d50cbff4aa82802 +Plaintext = 98f26635351f14 +Ciphertext = fd808c8721c172 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 12b5a76faedf6f855e328c2cb87be8aea78c5e926b32d828e167b46205c86de5 +Tag = 1563d3da8a6cabb7515f642e42fb4b2e +Plaintext = bd22c1ec05dc26 +Ciphertext = d8502b5e110240 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 8dc32f35ef4bcbfd040ad25dc36d0bd2486f93d0cabb7704cd1582dc99f65449 +Tag = 17609a21f703253e5e56beef4ac71759 +Plaintext = 2a87c0d64806fe +Ciphertext = 4ff52a645cd898 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 83ced632359a11eb0c4c99baad84df5cac15bc5453b6593d9ffb4c5e8c84037f +Tag = 236c72f98da859b54be7c598d85c37eb +Plaintext = f05f39eb0a3d64 +Ciphertext = 952dd3591ee302 + +Cipher = aes-128-ccm +Key = dc8ec91184ba18eae31ac2d3b252673f +IV = 0da4c988f521f5648259f2bec2 +AAD = 771a818a24e7da7b98f4b4291ef34bec7e1656b0c6c6e9474a989a04ea7de385 +Tag = 64c8cd38cbcc46e7f09bf3e1c6590c71 +Plaintext = 59dad755af92c2 +Ciphertext = 3ca83de7bb4ca4 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 85853f120981f33cf1d50fde6b8bc865fe988a9f12579acdb336f9f992b08b89 +Tag = 2563309efc19368cdee8266538ca89d3 +Plaintext = 6d972a673fbe1ca1 +Ciphertext = 2f12a7e7acecae5d + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = a4ec5aee89e2cce2115b6c1f42570bc5062887cad08192a682d0b4508fcd936a +Tag = 28096a5fec5e5359c369833eac3b7efb +Plaintext = 68b1b6367a15fe49 +Ciphertext = 2a343bb6e9474cb5 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = f5499a7082bf1e6e2923211271f5f7f6d7c7b26db7963071705a58ddc4dca0dd +Tag = 754a65863efb60c98dbb536e2b5a69d8 +Plaintext = 707023615563a40e +Ciphertext = 32f5aee1c63116f2 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 765f267befe6fcfaaa4b46eda32e7bfab87f12ceb07fa3b37be74965bb664a21 +Tag = 0b6e9b7f3b3541ffee66a1f668f67d28 +Plaintext = b56454bc50df3e28 +Ciphertext = f7e1d93cc38d8cd4 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 9ce65598cd1f86afc9aaaf172809570cc306333c25523f863c6d0e0154c55e40 +Tag = 7018c9db8baf6be349d93d4eef7d7c9d +Plaintext = 962f765da3565bde +Ciphertext = d4aafbdd3004e922 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = d0125e30c36232a8c07cee9abc53453b276849a7c04ade80ad586ed8cbcede51 +Tag = 501b28887f05fd66f050525943d101f8 +Plaintext = 4f18bcc8ee0bbb80 +Ciphertext = 0d9d31487d59097c + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 90dfd9e7bb7bf8fb70c22a879ffa760d14cda7b79ce4968f69b8a7f2b7a59642 +Tag = da53dde2e1aef96b3658a7635ee54188 +Plaintext = ca293c9e1780b401 +Ciphertext = 88acb11e84d206fd + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 58f518710e6b282482a7f1950fa353b13bdda10c9aaea6d5f0d7ea0a965d31e8 +Tag = b62a5ec234f1efd1b52c8fad1cf09890 +Plaintext = b9df9fb4a6b299b4 +Ciphertext = fb5a123435e02b48 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = df052e95aea3769a433ce4e4e800b8418649bbe8c6297eb07545e6802de7e807 +Tag = bc051ede6f37cf67543a7252d7d9b203 +Plaintext = fb2441d1594a488a +Ciphertext = b9a1cc51ca18fa76 + +Cipher = aes-128-ccm +Key = 19f97ef5318b8005fc7133fa31dd1236 +IV = 01ce9814c6329dbee1d02b1321 +AAD = 0875020959ed969cfb38636d1d5aabce9658b00171a7614ea9e5395331c7659c +Tag = 5be4be6bc6b18104fac167b6e3fc15f7 +Plaintext = 451101250ec6f266 +Ciphertext = 07948ca59d94409a + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = edf64f98b3ab593cbcf68ab37a8c9472e49cb849d4a744deae925a5a43faf262 +Tag = f8ee4a233dfb7753f6bfe321b3e26959 +Plaintext = 7caae2640e734539d3 +Ciphertext = 0dae8b3ccf0b439f6f + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = 29ac8fd6a20a5df4ec79660c44d373da42de7d7c5fc35982b6c29b480723b484 +Tag = 63b1477d9506a51ae23abbac179d8b02 +Plaintext = e574b3a37af3bf2251 +Ciphertext = 9470dafbbb8bb984ed + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = 9ae5a04baa9d02c8854e609899c6240851cbc83f81f752bc04c71affa4eed385 +Tag = db0986198bce2e486581c041029a81d9 +Plaintext = 2e3cf0af8c96c7b227 +Ciphertext = 5f3899f74deec1149b + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = cc8e789462879e348d20be4e1161d7b7fc6f8371d8f8cb2d25d13f0e07de47b0 +Tag = 0cbb2df2079a6eb964c3469f4f326122 +Plaintext = 16f22817c5b79f9fa6 +Ciphertext = 67f6414f04cf99391a + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = c63061f2800228269015693336f78bb535ae8b88869e4ccf4ead2f3b0ea4e48a +Tag = a40ca7622acf7266b7c24cf0c3202e4c +Plaintext = 64fe8076d4e8538e18 +Ciphertext = 15fae92e15905528a4 + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = 71c14a7031033db15bfe23b75fed9daf8886dd11392a0b787660e7b1a581af11 +Tag = 7de20e98586cd5d684bf015a7abbe82c +Plaintext = 4814aaac48bdf43c92 +Ciphertext = 3910c3f489c5f29a2e + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = 8f4947f8588ed866ed7477d7f1a28046430c6470806a50e3c9e80958c61f1b42 +Tag = 8d503f5d87818f7c0e173b857cef4288 +Plaintext = 392a692b57a8a97f60 +Ciphertext = 482e007396d0afd9dc + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = 9d44f6df58c2b43db67e3daa95b176c81daff32e996d670e86405e15eae72e93 +Tag = c85e2283d9e80700268a6459d1451d00 +Plaintext = cba1e00e345b0cb7eb +Ciphertext = baa58956f5230a1157 + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = b6ada12f7a28211e9d2c07cbb3d39fa77aadc077b34c46f93006c1ca2ff66f87 +Tag = 1056aea3d3e4f7a5219170aaa52465e1 +Plaintext = 22f5b6752582919dc1 +Ciphertext = 53f1df2de4fa973b7d + +Cipher = aes-128-ccm +Key = c17944bfaeeb808eed66ae7242ab545f +IV = 910b3db64df3728ca98219e01b +AAD = d6411fd5b25433f67ca75e4560ceb809d3721266beec358dde126b2f6a514137 +Tag = fbfcf8200a8a3f8d995f50284a7280c8 +Plaintext = 6e1b55d6f5288c5451 +Ciphertext = 1f1f3c8e34508af2ed + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = 4f9938d5bc3dcbe47f6b256d5e99723d0891e50c6175aba41b011e4686113c49 +Tag = 4cf0d8c24189affd35060cb7ca3dd136 +Plaintext = e10cc36bc1c5d3c646ab +Ciphertext = 7f797367de50be6dc04e + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = e013a2edd5b86bab8df5c9940d0a0c864478c1ad42668304a643141855adac10 +Tag = 4148ef85caab151488c1a6b3df540d21 +Plaintext = 15841284c959febe63f9 +Ciphertext = 8bf1a288d6cc9315e51c + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = 147d77d509f642189594df17574a0ce62b52a838feb62310e11533995ba4c851 +Tag = daaa1e7c22b3efa8362abb3d31ee8884 +Plaintext = a8b4e5829069c335d1d8 +Ciphertext = 36c1558e8ffcae9e573d + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = 0bb09658e23fe8a08c01a6994ef36cb8dcc9a806297a09c67efe3558ca56bb5d +Tag = 317b141383ad38dd78569d5f846f2520 +Plaintext = 1bb2da0f1ae7e044deb0 +Ciphertext = 85c76a0305728def5855 + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = 34eb2e6149bad764837f6f25ddd96865e5b05d5cbf233c4f6cc2aa654dfea3b7 +Tag = 4e6432971aecf6bf7cf5244d21f7f173 +Plaintext = 63af538196add9b3fad2 +Ciphertext = fddae38d8938b4187c37 + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = b69f26fda6d1cd92897e03758cae020c4e1beb019ce5ad987f872940780a9468 +Tag = e4d0ffc0f0add38a80c7ffe6b4701e54 +Plaintext = 6ef2df5a1688ae795537 +Ciphertext = f0876f56091dc3d2d3d2 + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = a7375ba32251af0138bd9fd8fcd56a7c43ab2ca9a7fc0117d25f6d4ef9c2fcbc +Tag = 47fdd0b2f29f39094ba5a7375e278349 +Plaintext = 3f46c83021069ac488a1 +Ciphertext = a133783c3e93f76f0e44 + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = f9b91f7298b4e43843fc739a2f41c57c3f2cf36378fe4c34b574a43f9cedee7b +Tag = 57500f913ee3f46801e1bba9d4db7ecf +Plaintext = 86c10a6dfdd6a06ef638 +Ciphertext = 18b4ba61e243cdc570dd + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = 9d35876d9449a1642b5062dfbfc7a26a7ac080b7198f4aeff2c79e463565cfd2 +Tag = 56a6b87519b4807a2114ced587f72189 +Plaintext = 196c80d02b663bdd89fd +Ciphertext = 871930dc34f356760f18 + +Cipher = aes-128-ccm +Key = 0fb9df6f638847f5de371f003dd938f4 +IV = c9ddf61c052f3502ad6b229819 +AAD = f2d5e927eb507f889efc6f21d783851f638f978c74960cc347f89f2703476114 +Tag = 2101012808adefe9b8166e04685bd537 +Plaintext = bd27ae3ade0781a33d5f +Ciphertext = 23521e36c192ec08bbba + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 7d9681cac38e778fba11f4464f69ed9ebfea31b7ffcaf2925b3381c65d975974 +Tag = a625c43233476bbb959acd9edebe2883 +Plaintext = 31be1b241cae79c54c2446 +Ciphertext = 9dd8a4244fbdb30b624578 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 1b0012c468009bd2851653013782c7b71ef43c393afd4dc0aec4d6d0c3fa11c5 +Tag = d477ca066ec2befa854a1faef018ea8b +Plaintext = 8802831e22092b30110cf7 +Ciphertext = 24643c1e711ae1fe3f6dc9 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 48b216375c00ca7e9c4048834b37944d2543e24fa091fb3c7290e11c53a6b6a0 +Tag = eb6be9a78dfbd9e16181679b782969ad +Plaintext = 3b3f782d637319d7fd161d +Ciphertext = 9759c72d3060d319d37723 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = f3e06a45fcf1f6abeb00727bf2c9bcea00ce621d38f7b7eba17c27e51f04c793 +Tag = 3d9574d95b821a5170e9b61d8e6b2ff3 +Plaintext = e98f5e5a20d02c80372d6d +Ciphertext = 45e9e15a73c3e64e194c53 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = b36e27729f9a139d8ec4f61215b7bf1149cbb4d93a5c14bebd7cfb7c6fe585cb +Tag = aa193d257907be1330abaa56bc4f431a +Plaintext = ceeed4fde3406ec40f7ac6 +Ciphertext = 62886bfdb053a40a211bf8 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 8886ed7fa414d74aef704a9751b197cbab02c41c6aedcaf65cda019dc2d2d815 +Tag = 1d92029a6428748664b5c815f15ca1b7 +Plaintext = b38f03449883773135c0cd +Ciphertext = 1fe9bc44cb90bdff1ba1f3 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 816d81af167d2294497d9b06a39fdf75e37cbacf4d10c3a444068c891b361bba +Tag = 386e4ad7c72ce0081a85d4cfd34254c7 +Plaintext = 8efb141db7b77c521003cf +Ciphertext = 229dab1de4a4b69c3e62f1 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = f427c47e10c45bb3c7e75e9e604503b3560427691470358efdef48ddaf3794d2 +Tag = 98eeb05bc376a1042735569d5b63f8fa +Plaintext = 6dc38e37d1379732df4dd5 +Ciphertext = c1a5313782245dfcf12ceb + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = f3df712b5e8dd8e4aa8b7c5f41e93bd11b0df66a3456a01f3d0094ad91482cdb +Tag = 065b03ebeb68a9153cb4ed152ce0d64c +Plaintext = e0e358aff203369dd5960c +Ciphertext = 4c85e7afa110fc53fbf732 + +Cipher = aes-128-ccm +Key = 006ff7d3153caf906ec7929f5aef9276 +IV = 57db1541a185bd9cdc34d62025 +AAD = 264f2c7b095a296eb8ff6b5151ab3d9497ea8dc0002a9e5b09c2fd0ccd32b6ff +Tag = fcd16c8360a408e2787f930ed275bf3f +Plaintext = 57b940550a383b40f3c308 +Ciphertext = fbdfff55592bf18edda236 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 26e011143a686a7224ddb8c5b1e5d31713fa22c386785e2c34f498ae56d07ed5 +Tag = cb56a9c1a1c3bb16fbb9fbaedacdb12b +Plaintext = a82200ef3a08c390dec5cbf9 +Ciphertext = adf4fc6f9be113066c09248f + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 97a720ae4720546e31263a1a538ce1d35c198c23bd4362e0023a67536328ab9a +Tag = 002120b619a391fbd23402e5edd4949e +Plaintext = 7fc58d1bb450b396b9161f53 +Ciphertext = 7a13719b15b963000bdaf025 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = aff6c8cefda055c67262e9c68825d1ad2a7488e5b09640a111fabf6254d96cc0 +Tag = 48b6e9a8de0099a28cebbf5c2bad42ff +Plaintext = e9ea182d7f895f312b9738db +Ciphertext = ec3ce4adde608fa7995bd7ad + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 35a3963b43f47855ef3df12af5de3626e0c5c8d9cd2a534c737cd695609b05a9 +Tag = df80fd62e751757bb0a32a987980afe6 +Plaintext = cfbc8bcbb5e5bb744bb1f340 +Ciphertext = ca6a774b140c6be2f97d1c36 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 46a2e6bd3fd5336abf02eace3cd1e1f6dde505ab976a9fa596edd6fbde7175de +Tag = 3b211350c70adf9bab5c01081bdc6a99 +Plaintext = a334f8f41897cbcaeb5cffdf +Ciphertext = a6e20474b97e1b5c599010a9 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = d110651c00ac5540f9d1ed9eb175e06b97163fc36d43f048565e5d0c30a069b1 +Tag = d7f65690d9a2fb6759d658c9bdfdfc37 +Plaintext = 3f781267290e8e73c6355e75 +Ciphertext = 3aaeeee788e75ee574f9b103 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 978644dc4e36f1d98a2a63e19bbf8af11785d09fce58a95c00cc6bf6cecf6161 +Tag = 0d5df472f49e7f713cd1373293810906 +Plaintext = 3dc39dbb91efe8b16396d488 +Ciphertext = 3815613b30063827d15a3bfe + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 5ae7528c5e965880b1533cbd78c1e81a8187379327a2fc3f76ff45829049e183 +Tag = 4bfca9ef00b0f2bbb03c1a3f7a0862e7 +Plaintext = 6caa8c0764512baa39dabac0 +Ciphertext = 697c7087c5b8fb3c8b1655b6 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = afe754828be6e3731d3eee54b021b4fa182247bd958e9074fb0094a11030f5e8 +Tag = a03be1d1d262b03c0ab425d533fe4ec1 +Plaintext = b19bc92e2305883580dd7742 +Ciphertext = b44d35ae82ec58a332119834 + +Cipher = aes-128-ccm +Key = 026331e98aba9e8c23a9e8a91d0b0c97 +IV = bccfe69bba168b81cbdf7d018a +AAD = 0650859c635654ca4d815963c0a99f9d2f47456ad37f739c425e924d4360bd7e +Tag = da61ca8461925996880e2874393232d6 +Plaintext = dab87e79544df1cc98096b91 +Ciphertext = df6e82f9f5a4215a2ac584e7 + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa +Tag = a6f73242f2f227350c0277e4e72cdaa6 +Plaintext = 4b10788c1a03bca656f04f1f98 +Ciphertext = 89f15b1cb665a8851da03b874c + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = a533b3279db530eaed425842b0d3528f5c5e4c16acfa0f49de43d6491f0060a9 +Tag = 94271cc06f81d510075728cfeb89222c +Plaintext = de6ea86d3641d916c4394fdd31 +Ciphertext = 1c8f8bfd9a27cd358f693b45e5 + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 8e6c1cde142e18635c1b4f0cb54d3cf817f22ad7c25bf6a022501682f6a7da1c +Tag = ab1aefed75400a41447b2bd8f0605542 +Plaintext = 6f3b32adc8c0314872947f3d31 +Ciphertext = adda113d64a6256b39c40ba5e5 + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 248a4389da2d51b87907dc11c46253515503ba80de5d06c9b505cb89906614a6 +Tag = 46b3a6463876f1a43a287748f339e913 +Plaintext = 0cc992a8c736b44fedb4ad498f +Ciphertext = ce28b1386b50a06ca6e4d9d15b + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 2e2c8244a2cbf53816b59e413207fb75f9c5ce1af06e67d182d3250ea3283bcb +Tag = f625786bdc58af24b17c1ba34fa87baa +Plaintext = 98104fd3f3413ad1f57ef4912c +Ciphertext = 5af16c435f272ef2be2e8009f8 + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 4ada86d88d5f49dfcde13fc30ba9a1af58d5254b47fb1885a20fad915c87952e +Tag = d4a918290cf97208232c76908514b07a +Plaintext = 3b4fec79d52d8b2a533917b75f +Ciphertext = f9aecfe9794b9f091869632f8b + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 9e3b23232e5a9e69747f8bcb148cd6d282fd9b7ecd6d97e8bb5cdc261b2fc86f +Tag = 01d6306bb91c315bb4a23fe23d496d09 +Plaintext = f10c19c76ae7ed55e1651155df +Ciphertext = 33ed3a57c681f976aa3565cd0b + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = ccea2c815ea4efadc3007f511d633e98f9fa38b0e0fb572b282ed6a610adf7a9 +Tag = 620d9d3004587c5d510e2a857fc857ea +Plaintext = fa34af376868d9a49aa200f59a +Ciphertext = 38d58ca7c40ecd87d1f2746d4e + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = f7277fb296e2c0d2c9ceb7013ea8b59fe37e26b3b42a0b8cd01aaaa8d35283d4 +Tag = 82d2438a5138977bde5f514e2335c28c +Plaintext = abe2fd996bb6804ed3286c057d +Ciphertext = 6903de09c7d0946d9878189da9 + +Cipher = aes-128-ccm +Key = d32088d50df9aba14d9022c870a0cb85 +IV = e16c69861efc206e85aab1255e +AAD = 14dd1810df3eeee78ed3836c77edf510d91ea28f119bf57111e580d70da94b74 +Tag = 78100a05448fa6e74bd3ed16c3bd364e +Plaintext = 395ea6979b77dabd2042aee4ff +Ciphertext = fbbf85073711ce9e6b12da7c2b + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 2c5d114eff62c527cc2e03c33c595a80fe609bfc0fe13ce3380efe05d85cceac +Tag = e8eeb5d5b493661259a9d91ea31a5f7e +Plaintext = 484300aa3a506afcd313b49ead8d +Ciphertext = 928ca58b0d373dc50c52afac787c + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = d9ebc1cbfab9034317132a72e0f11c341331146a59e7a2f26bf4f3d778da52c4 +Tag = 552193439abfedda67d765d030cef30b +Plaintext = 8b318f75ed79a7978adc17c4d2d4 +Ciphertext = 51fe2a54da1ef0ae559d0cf60725 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 9aea86b9fbd9bd4504ee2e25054942b33d3cdbd84215db7ea337e548cb706780 +Tag = 15013c2bc9338868fad0d2fac11df019 +Plaintext = 0256b0d154c768c85070da6ea8c7 +Ciphertext = d89915f063a03ff18f31c15c7d36 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 08afe10bbfbd65b948a6561bbeaf3ab46a8e3d0a861f1cfc46584156197f30a3 +Tag = 6c3c4cb8c50891d6523245e4c619aa99 +Plaintext = 89ed296a3ac03fbfb71422b92117 +Ciphertext = 53228c4b0da768866855398bf4e6 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 7d653792bb8683e07c7d2c800db6f7f08343c85af2377115df4fc86ff7d8fcaa +Tag = 792d2cb93e45811a4c897ae9d907c9cf +Plaintext = 414b6acb1db479028f5cc8800f2b +Ciphertext = 9b84cfea2ad32e3b501dd3b2dada + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 4d73c1484f9429eb15742f29ab05cbab6552abf40e127b93427d649d195ed25a +Tag = 1983a87812eaa7b66c5a0e54a01cb882 +Plaintext = 163f67b3766c3c650ce26c5bd8b5 +Ciphertext = ccf0c292410b6b5cd3a377690d44 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 2fba7a881f019a8745691343d79ef3656e25bb37b93fb5ab7311889f92010a5f +Tag = b0afabd23b33765a63753cad66b0e6db +Plaintext = 9c5b4aa703c27d16d82013853e16 +Ciphertext = 4694ef8634a52a2f076108b7ebe7 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = a640343fd4a866aec07b667d25176e11a32fb4d8bfc08fde2c46dc9b492fa010 +Tag = 39b8d0f97540373a7b9061aa3b2f7044 +Plaintext = 99eb86b3202c7ce68a2339065f47 +Ciphertext = 43242392174b2bdf556222348ab6 + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = 9efd58d3ef5f74f663b2b5ca5e96c5a2fe85ca5eac1495d7f1751c7d8b412b3e +Tag = 312c803e29f7be7c5eb236401037a320 +Plaintext = 3f5c1d038161e65c9ed955c961af +Ciphertext = e593b822b606b16541984efbb45e + +Cipher = aes-128-ccm +Key = 7301c907b9d2aaac355c5416ff25c59b +IV = 7304b65b6dab466273862c88b9 +AAD = a7d7ba684c0903323f7efc83dc32815195df325394162fb5a18f201047be7999 +Tag = fd929c717d75388387dc25bfcf90b707 +Plaintext = be8dea2b4e602a787ecd28f2f7f0 +Ciphertext = 64424f0a79077d41a18c33c02201 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = c6de3be97f11d0e2ab85c9353b783f25b37366a78a2012cecf5b7a87138b3c86 +Tag = 5e902f296dcce870263ae50cda4fadae +Plaintext = 61bd1385be92097e866550a55278f0 +Ciphertext = 7c9fa8d99b38f825315ece6a2613f5 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 7c8cf9c650511f33af82e807e60336ec086bd2d9400a5f35652b8c3fcf968ead +Tag = cae8a9e4b606f5fbeac2b829b42a150a +Plaintext = 7e5e51301fa44a21f2734731ee3710 +Ciphertext = 637cea6c3a0ebb7a4548d9fe9a5c15 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 5f8b1400920891e8057639618183c9c847821c1aae79f2a90d75f114db21e975 +Tag = f5419c6085e5434f056162cf80f6729d +Plaintext = 9cea3b061e5c402d48497ea4948d75 +Ciphertext = 81c8805a3bf6b176ff72e06be0e670 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 238d3c9d9de32f2040b1dd0dd040b921e456c3653263f4020cffdc552b948a46 +Tag = 7fedcc743389a9d48e6b871dc0dd63b2 +Plaintext = 20660408d6890aed84aa65dfe23032 +Ciphertext = 3d44bf54f323fbb63391fb10965b37 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 3b5d61ca21953fdd22280747dd4ae908a511750127875da84dfe7d0063a318c9 +Tag = 8137e0a856d3d911af9f420b68d8110d +Plaintext = 9ab83c81f2d2c896c6596660c3974d +Ciphertext = 879a87ddd77839cd7162f8afb7fc48 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 78c1751e86144a78285a30dc04f51742bd47e3d36b607bab48d91cddabfff4b7 +Tag = 5644448fa8445b6cd185bdf9b3718033 +Plaintext = c1ec469aa9c73b677af225a9f5f6f8 +Ciphertext = dccefdc68c6dca3ccdc9bb66819dfd + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = add33e9a1d7e91e2c160c1123537e3f7e3535881cb4aac1a80ecbe367379212c +Tag = bd38e4dc44f768cef0c51344e3a7f7b8 +Plaintext = 9df1d6b6debffdd316aeb27143508e +Ciphertext = 80d36deafb150c88a1952cbe373b8b + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = df7736560b1a13aa8e536500ea6cdb9a6757309aadf25a6a9189055a309c3f8b +Tag = 2e7f2ec918099898b843a34c385f2a57 +Plaintext = 19eef017100dc82f26ed0815c55c12 +Ciphertext = 04cc4b4b35a7397491d696dab13717 + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = b40c8d22069b8a65cddb51c1ea3571160cacb19fd371552436b19c7122b28d08 +Tag = 94c2709685b0827cc42f3a25b579db28 +Plaintext = 2af5db43f2a5fe8b494b40661510bb +Ciphertext = 37d7601fd70f0fd0fe70dea9617bbe + +Cipher = aes-128-ccm +Key = 38be46d271bf868c198052391f8a2147 +IV = 6758f67db9bfea5f0e0972e08b +AAD = 9de5559ea8ccc70f4375a436ce0b72551a75960ad5ed6a1949ee8f6c47548558 +Tag = 63bf4b40ce7e672587816fdcda16efbe +Plaintext = 5de41a8ca8ed8011304fa9e9f36498 +Ciphertext = 40c6a1d08d47714a87743726870f9d + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 3fec0e5cc24d67139437cbc8112414fc8daccd1a94b49a4c76e2d39303547317 +Tag = eef08e3fb15f4227e0d989a4d587a8cf +Plaintext = be322f58efa7f8c68a635e0b9cce77f2 +Ciphertext = 8e4425ae573974f0f0693a188b525812 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = b6fecd1edeb55a9a4148b1aefb716a1e162779a5ab2a682e4adce4479c527bd2 +Tag = df7f186e8d3d7c21c549c41ebcc7f505 +Plaintext = 0e6118d0409751d36cb642504678535e +Ciphertext = 3e171226f809dde516bc264351e47cbe + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 5c3933c30bf9d4841eff4000aaa1cb4d39cdf8ef1240e2aabbf9da95bdee5270 +Tag = 810a68be1814f53c09aca4066527fef8 +Plaintext = 5c8a5fb36f860d00c21ae9e3f24097c4 +Ciphertext = 6cfc5545d7188136b8108df0e5dcb824 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 7ca7ef30d3ac08aa51a9e5d3d84e8b6bb7fdde921e72b98ad6a93ebf2efc6b04 +Tag = cc30245a6e64625c4f6531d7497fb144 +Plaintext = ebd1cb4b35257790c9806be476bd25a3 +Ciphertext = dba7c1bd8dbbfba6b38a0ff761210a43 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 90f1416768fca7dd48d01230dabf95f2f1a0c044bf2d755448aaf72316c8448c +Tag = 10d85725dacc274034669acf7f34fed7 +Plaintext = 842b7e5f22d921b2b8ab3131684b7eff +Ciphertext = b45d74a99a47ad84c2a155227fd7511f + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = adc5c36849283d57acb2bcbc0e12465cb7c1830cb4e314b9ce6e25acbd8d460c +Tag = f731b465eb59c4989e42020d86102a59 +Plaintext = f0c2cc5a1b4c4cbe839338fa0d7a3435 +Ciphertext = c0b4c6aca3d2c088f9995ce91ae61bd5 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 80a7a483d1dbcdf00ed02a700e93d8b87fa6ac5c7368d1e81bd1b32cd1621cd7 +Tag = 84bcd2775448447ed801b3b0ff071c19 +Plaintext = 2c1a5f906f2ae0373cc25e3519df2ba4 +Ciphertext = 1c6c5566d7b46c0146c83a260e430444 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 13c02992992d2708250184a579c43bc29a3a8cf1e02dade4496cbd8b1214f97d +Tag = 01d1919f1451ad16f115cde863f15303 +Plaintext = 1da5190517546f1ad852f64263e1f679 +Ciphertext = 2dd313f3afcae32ca2589251747dd999 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = f6f18dfe093e4c0c3fbfa8a5b1f4a703c08addc2ab959741611a594b93d08bf7 +Tag = ccae4f6ec07bf73d6f086cf09e2e14ed +Plaintext = 13ccb08a580efea53dfba6a59626bbe2 +Ciphertext = 23baba7ce090729347f1c2b681ba9402 + +Cipher = aes-128-ccm +Key = 70010ed90e6186ecad41f0d3c7c42ff8 +IV = a5f4f4986e98472965f5abcc4b +AAD = 63708e12dfa14f192ec5ee5856dc3cf2403817d9628c31899b4613f65e1e61c2 +Tag = 2bad8bf67d32a855c3940ac908397a5f +Plaintext = e0b5fbc6c2269d445a60273bf844892b +Ciphertext = d0c3f1307ab81172206a4328efd8a6cb + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = 46603500af9e4e7a2f9545411a58b21a6efd21f2b5f315d02d964c09270145b3 +Tag = 70f0edb415993588b2535e2e0e4fd086 +Plaintext = 001343e6191f5f1738e7d19d4eec2b9592 +Ciphertext = 2162e27bfbf1d00f2404754a254665fd92 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = 278afebc604bb7d87bed3574a2c5053de17eb8ca7e18ddc7892f2c54b38104a8 +Tag = 778e3c4a11f3f9dc42554d45796379ef +Plaintext = ba47d5bfb36f6150a100e36caa116405c4 +Ciphertext = 9b3674225181ee48bde347bbc1bb2a6dc4 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = 3239b2ce4efe4f6a6255dc53347400a6446ed3280c65422386fab471ef09eed6 +Tag = ab5540cc01d867f641c9b196fa159291 +Plaintext = 96eccb7f9b0e16c6883de0a381e4767f5a +Ciphertext = b79d6ae279e099de94de4474ea4e38175a + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = e2a5488d5f7930ea4ce399f2a6c0810265f7c0dc52fe824d19a0fa0d9ffd55e6 +Tag = 6366fbe302e142dcf6aa16337d98550f +Plaintext = d68f5990da1a2fe39ed81af145ab834fa4 +Ciphertext = f7fef80d38f4a0fb823bbe262e01cd27a4 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = 0071f1edb3a0ce57af3c88bb0ccf138f752697a77e55695838fb39de04c78dfb +Tag = f88c07797267bf5a49b3d0f601a225ce +Plaintext = cdd4d8b3d8f6e4742793b456cefc9e686d +Ciphertext = eca5792e3a186b6c3b701081a556d0006d + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = f5d6989587e463969d97aadabea9538511f8d109cc2d3cecf09ba7cc346aaea0 +Tag = 5c9fbf69d81cef238ac513562d4a0dd5 +Plaintext = e7d7fc60ae852b68102e01b506f9dab986 +Ciphertext = c6a65dfd4c6ba4700ccda5626d5394d186 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = e0b5fbc6c2269d445a60273bf844892b26fed03b82869edacd6dd7a63fd69e8d +Tag = e2c748c8c9e3190de095de8eb0650203 +Plaintext = be9f51abfbe2da5a56db0f9a31b67c9f83 +Ciphertext = 9feef036190c55424a38ab4d5a1c32f783 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = e6bd0010c98e60b9af7cf905c58e0653bc425e2ccc809bd4f9cd7b1f95c18786 +Tag = 05cf563c5b4ba4ebd5bf107f2ad3555b +Plaintext = 81b9c73029cea1936ef8755c80ba8d4093 +Ciphertext = a0c866adcb202e8b721bd18beb10c32893 + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = b1688cbc058816974694cd26c0f28ba9418e9912867fc8c5f4e7bd9c891a8d2e +Tag = 60dbbd8f46343c8442b03a472da4e23f +Plaintext = 618dc26853ee339689467ffbc2a77be69e +Ciphertext = 40fc63f5b100bc8e95a5db2ca90d358e9e + +Cipher = aes-128-ccm +Key = 79eae5baddc5887bdf3031fd1d65085b +IV = 9da59614535d1fad35f2ece00f +AAD = 469e004fee9878ed40621b41d04ec34af175f213d64d16e2f77d0bb2b6efe2e3 +Tag = 43352e46995e8c1aee43dbdb26b46c30 +Plaintext = 4f18bcc8ee0bbb80de30a9e08629323116 +Ciphertext = 6e691d550ce53498c2d30d37ed837c5916 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 733f8e7670de3446016916510dfe722ce671570121d91331a64feb3d03f210e6 +Tag = b4cc36852fd64a423fb8e872252b248e +Plaintext = 617868ae91f705c6b583b5fd7e1e4086a1bb +Ciphertext = b2dc1e548b3d3f225a34082f4391980a0788 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = b6ec659856866959ef6fd4e71ba930f0e3e5fd49d7465fd65f6813ab4ca1a770 +Tag = 95a66eb5b902bb23a1a8584249409fda +Plaintext = b8b342c49c28bffc2a1c457db0b537ad46bb +Ciphertext = 6b17343e86e28518c5abf8af8d3aef21e088 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 89eb3636fff80230352a3582be5698e3401c9e0579d48f2680c6e5e24d99f74b +Tag = 7fa792fb7246218f7d56d5fa4a5476bd +Plaintext = 37d694ba94d0af8df662134f20d142903839 +Ciphertext = e472e2408e1a956919d5ae9d1d5e9a1c9e0a + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 03434f3709e19a1e37edfcaabc215116763b71ab1c5e053dbdb599f86959f25d +Tag = a83dc3f0012ae6da32a15fd1684835ef +Plaintext = 90e4c0550cb7b279ef61f9140b7d94b8003d +Ciphertext = 4340b6af167d889d00d644c636f24c34a60e + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 0e2ddb65fcc72094ac388d53a1055c7e902285c4c3c33c13bb6fbb4f1956414a +Tag = f09d38d3dba01995e36bd685c8ea3371 +Plaintext = 69b851e63a78baef90637978e3dfe8c47be4 +Ciphertext = ba1c271c20b2800b7fd4c4aade503048ddd7 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = a42b2538ee2fb5f6a85d4d00524b01ad3331f61c404069243f35f28e2c2d0a82 +Tag = c89becf8d2bb935cb17f44b950df3ef5 +Plaintext = b7dbf8382115199dd2a2d87938c6ae6c4241 +Ciphertext = 647f8ec23bdf23793d1565ab054976e0e472 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 09bc5c426dc1faa4d71f50908bd6f297ec8e754d4d20def005585b4bc1fa31da +Tag = 96e28badf0202097e80561451796194d +Plaintext = d53698d719c51bf9eae346269c6a1da07162 +Ciphertext = 0692ee2d030f211d0554fbf4a1e5c52cd751 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 2ac87e59c2c86532cf165af3e8ff4871d730f5e742cccca38bbcdffff4472c93 +Tag = 710d4d7f66660891ac655d6eca4a3f3e +Plaintext = cfdb7363985aa01af6f8e8237dbfb7871eb3 +Ciphertext = 1c7f059982909afe194f55f140306f0bb880 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = 05d2fbc3d0ec81f52f31cb0c4bf960c2076867f6d9f0174ed9176e20177b2693 +Tag = f90ab18925fea6964490f364a975a473 +Plaintext = 56fdf10dc0c1dfd10965b83938e557459c61 +Ciphertext = 855987f7da0be535e6d205eb056a8fc93a52 + +Cipher = aes-128-ccm +Key = c14eda0f958465246fe6ab541e5dfd75 +IV = 32b63ca7e269223f80a56baaaa +AAD = c2c3902cfe8622254b3787cc13e79c5a3c388c2357c29f1c1ab5539a10bfae5c +Tag = 68a00e5e7a39b371024927d3ac98fe43 +Plaintext = e7c9812eda2ed7dcfc80fc5fe0d43e1e5982 +Ciphertext = 346df7d4c0e4ed381337418ddd5be692ffb1 + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = 3a069a2bfda44abbb0a82a97e5e9047258c803da2c66190d77149e0f010b3af9 +Tag = a6d7568c738e3a7fdf142d8f2d1562c0 +Plaintext = 2f3bf0b566440912a1e47a0c07f1cfd39cb440 +Ciphertext = bd6265dcba9e14c59e515e395dc60bd053345f + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = 7709132415c94960025cc39c950ead208703a9d5a71e224fd022dc0a1817d0f4 +Tag = f22337efa5cb7db7240e7518b67ffbb1 +Plaintext = 7c880d787726c4ddeb2304b5d161b4a257298e +Ciphertext = eed19811abfcd90ad49620808b5670a198a991 + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = aad77595f87a27f2c7995fc7149317f4cbebcece8336db2068380070784a4283 +Tag = 40bac6094528f02eeda093312fcf716f +Plaintext = 08c43bbfa706512aa39e2bfa5c365aca11e22e +Ciphertext = 9a9daed67bdc4cfd9c2b0fcf06019ec9de6231 + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = bdb1b82ba864893c2ee8f7426c7b9a8460b00a50f164fc8f2ff2ae9cddab8657 +Tag = 0c041d86dd483c1d6da366e91bd826dd +Plaintext = a531c0ed8840b2fcf08d76eca71036153b6e11 +Ciphertext = 37685584549aaf2bcf3852d9fd27f216f4ee0e + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = 38b3b9f45041ceb743fc2655b409213fa081427e41c833a2321a09fbd566c80c +Tag = fde45ca2a83dec2f930bb652a6fcdc5f +Plaintext = 177946b4dc3b0b825a505f097a0a203eb21c00 +Ciphertext = 8520d3dd00e1165565e57b3c203de43d7d9c1f + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = ec9d8edff25645520801b6e8d14a2fc3b193db70d5e5e878742de83154a578da +Tag = 8b89aa22cd7d0170a975565cd3a33dc1 +Plaintext = a2634ef20a2a418b2c3be64f0b5f79d7ea9b7b +Ciphertext = 303adb9bd6f05c5c138ec27a5168bdd4251b64 + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = 8f6c1de4efdc5ac2d6e5452b5b4f58416d618da672f521332fd297ede8350134 +Tag = d960b33c3df5cd38a82980dc0950ada4 +Plaintext = 40e52edaad5acf2d4eedfb3f9ac2908112e9b1 +Ciphertext = d2bcbbb37180d2fa7158df0ac0f55482dd69ae + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = b0f1dc85fe223bcf29cdfa9319866bacd0a0a79c554e24d1f10889279e31c0af +Tag = 38fa273c4102b5ca050b23044ac2064f +Plaintext = bf97780f498c23adcf1c49f60873780a235969 +Ciphertext = 2dceed6695563e7af0a96dc35244bc09ecd976 + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = 7d02a323aa769a8201549bf48a520d940bf6f69ed6106f1ce68856c22a594216 +Tag = c15438af1bafac3eac61e1c24ed00ab7 +Plaintext = 58bfe1eb2d38d91f80b3467db94fdcb84ff5f3 +Ciphertext = cae67482f1e2c4c8bf066248e37818bb8075ec + +Cipher = aes-128-ccm +Key = c5e7147f56ba4530b8799ababeb82772 +IV = bdd38e173fb20b981659c597d6 +AAD = d4b90ef8abad08c552c8c3b080b8c37df314d514049d45e27ec4527cb06cdf85 +Tag = 4422d9e2f4f84fde49e9701296294d5a +Plaintext = a206a1eb70a9d24bb5e72f314e7d91de074f59 +Ciphertext = 305f3482ac73cf9c8a520b04144a55ddc8cf46 + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = e98a77f2a941b36232589486b05f4278275588665a06d98aec98915cc5607e06 +Tag = 9d5ca3d8ec5065630d2de0717cdeb7d5 +Plaintext = 4802422c9b3b4459ba26e7863ad87b0c172cfe4b +Ciphertext = daea2234ea433533bf0716abe1aa3844b6d3c51e + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 5970a836de1f1e91d94d7eef79742cbbd46a759c413715eb0224fd6a27145333 +Tag = 0ff0648ddb07f42f815b38bfc95688b1 +Plaintext = 796a69ad0e9379173ef6b66f44f5c84fa70a0e28 +Ciphertext = eb8209b57feb087d3bd747429f878b0706f5357d + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = e3f08834c4894f6fa66a55a280c0e677a79e97c1ef9488b21384e74e57b1b51f +Tag = 3ddd9a6977ea8e7adf5c5234346e560f +Plaintext = 98e1f8cf250183b13ad418024dc40c1a6a7ee8ac +Ciphertext = 0a0998d75479f2db3ff5e92f96b64f52cb81d3f9 + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 18349be2894d49290339b97f4db28c92b3e112ffac77100abbf9c093935b1a46 +Tag = bdee05328a7ea8cc6c2e42bf3faeeda0 +Plaintext = 4a856d9b50a5b40d6566b38eae6a53ed0c192805 +Ciphertext = d86d0d8321ddc567604742a3751810a5ade61350 + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 7355e34ad13880de17a1d66b02672ea5c9f51774019f64ecbe36747ffcd9b671 +Tag = afb1435cf929db35ec5986aabaf4a7d1 +Plaintext = ad048eb2ad75266b43b59d9d1f073c44e4cbf25e +Ciphertext = 3feceeaadc0d570146946cb0c4757f0c4534c90b + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 4be21ba2eb26234ddcbb6aac6b4c3be7ef644af64edf51b7c29ffc3ddd80036b +Tag = 736be6563cf9f5bce97486b7cc6f1c18 +Plaintext = 5b527ac6cc6d1b4c3c56f8315bc96dae91632df9 +Ciphertext = c9ba1adebd156a263977091c80bb2ee6309c16ac + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 266e0e3365e06d3b1e864c6e5897145df7bdde90eb744013a7b36632d4cf6580 +Tag = 2e90335fcea56b969b4fce65442768dd +Plaintext = cee059cb0fe91a39faccc2914340baeab4b644ce +Ciphertext = 5c0839d37e916b53ffed33bc9832f9a215497f9b + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 55a723883a340877d85ad1a5f264f2c834d824c7bbf207cdd8500c9d11ef9225 +Tag = acd6afdb3578ebc75e8a408d32758931 +Plaintext = 85321fef6a2b7d31cbd079c4bf2bfbbc979df90b +Ciphertext = 17da7ff71b530c5bcef188e96459b8f43662c25e + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = 773864475a1a60a778468a66cbe13dfe3458094e62abb593f50c8495e3a8b81e +Tag = a19fb73fc0488d9f29a09c1b47e3e066 +Plaintext = e227b8d44320bd3ce9d3f7d688f3de887947b1e9 +Ciphertext = 70cfd8cc3258cc56ecf206fb53819dc0d8b88abc + +Cipher = aes-128-ccm +Key = 78c46e3249ca28e1ef0531d80fd37c12 +IV = 5de41a86ce3f3fb1b685b3ca4d +AAD = f64f3b00c9117aed3c486aa4c8d574b44d679be4069e1078bb7100af38cdb190 +Tag = ce2c5ef8cdce76b358739e2a1b173fb3 +Plaintext = 206e9eb2bc3f8534d844a38debf1306df808744a +Ciphertext = b286feaacd47f45edd6552a03083732559f74f1f + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = 545aeac737c0ca2a3d5e1fd966840c3a0d71e0301abbe99c7af18d24cc7e9633 +Tag = 2f2da4dd4d817c9fa2d44bc02163a0a9 +Plaintext = d516bbff452e7706c91c7ace3e9baa76d65ff7050f +Ciphertext = b85242fdc06344f2bd9a97b408902ebcd22aece3d4 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = f032db01da60ca078d35c3fb5d05d6750fce1c01911a0422e827e8976946e4dc +Tag = 180f41bccbcd47c8b7890754c032269b +Plaintext = 590d1aa655fed50ca2e402299f2da6fe20eed56071 +Ciphertext = 3449e3a4d0b3e6f8d662ef53a9262234249bce86aa + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = 71ecb4252518997b53491cf42a3e0fe1496a2af2329a16f9fcd9c4f249900341 +Tag = 1d6ba58cc2eb474401851bf9502c3413 +Plaintext = ecd86cdb7d78d310dca5b477cd9da2612f5a05ab39 +Ciphertext = 819c95d9f835e0e4a823590dfb9626ab2b2f1e4de2 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = ec7abed9bda4a52fdf1bf278b6bdd6b0a27d4688deb9ff5ca9c8c865a4d2f730 +Tag = 9b94d4b7a2044696c72322e850537b6d +Plaintext = 0024b14c283df032cf80c22ad8d2c96289ee229092 +Ciphertext = 6d60484ead70c3c6bb062f50eed94da88d9b397649 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = c2c77d7ad7b27d7c0f976a1e28881ea4ec7ad03b63a4e67f47280a40b8f58086 +Tag = 9d8da8e718570caf8bed7909fbff3ec6 +Plaintext = bc6965d8f62d066d118c14044c1fd2a224b9d95110 +Ciphertext = d12d9cda73603599650af97e7a14566820ccc2b7cb + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = 28929286bd1391468ac75f5c03689f74780ddd7585fc16f9a9bf7b00357a72e5 +Tag = e671012690c61fe3c9abd50a78eb4736 +Plaintext = da4a630cabaff0728a1cc3e6a79721a7176b708f1d +Ciphertext = b70e9a0e2ee2c386fe9a2e9c919ca56d131e6b69c6 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = ed360d22081b019dc979420a3a45c21c8903c59daedd9f1b4ef2bfdedff0ec1d +Tag = e657e2250427130acef7032454cde7b6 +Plaintext = a95058f8e1f6bc0f143a9ca7e4425a2a63eb2f7e33 +Ciphertext = c414a1fa64bb8ffb60bc71ddd249dee0679e3498e8 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = 2b4022d0b951fe48635d04fb3e2fa032c07c855fdd73f45670953bb9ddc77cb4 +Tag = aac6ff0a264b8199550d93c1f06063da +Plaintext = fcbbc7f9d1ace60e830ca56ec84814fbd2579993d4 +Ciphertext = 91ff3efb54e1d5faf78a4814fe439031d62282750f + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = 48e553a87a7d3c1bd68af39f96aca67583da86e06701d5e4c4ed404dc66d70f3 +Tag = 7e68bf636e81c332f72063dc0d6fc2b6 +Plaintext = b95d298d391c6b893c6cad66f9780534516e71455e +Ciphertext = d419d08fbc51587d48ea401ccf7381fe551b6aa385 + +Cipher = aes-128-ccm +Key = 8883002bf13b3a94b2467225970df938 +IV = 818a702d5c8ee973b34e9acda1 +AAD = e8e2835e47144365a2f218d4c95d7522e824fb43b66d4727ee570f8303dd6dd3 +Tag = df3af9e9c4e04bad261dc17cf00a00dd +Plaintext = bc79d444dff9d9e722effab07b068cb7723ae8fae0 +Ciphertext = d13d2d465ab4ea13566917ca4d0d087d764ff31c3b + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 50422c5e6a0fb8231b3bb6e2f89607019be6ad92a4dae8e0fe3f9e486476004b +Tag = d828101682de32923788c70262b84814 +Plaintext = 33bfd0713f30fcac8f7f95920ac6d9b803ddd5480dd8 +Ciphertext = b168747dea3ae0fbede4402af9a3dc3185d6d162f859 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = bb0036b34b0c20094d335a8c74f6b3dea42eeccf4145192eada64ae00c726b2e +Tag = bafc4ae4d31907def6f648b081174e2a +Plaintext = 5576d94b577ed26820fb13c00ab0e2d1a1c3589bfdc4 +Ciphertext = d7a17d478274ce3f4260c678f9d5e75827c85cb10845 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 5140324aa758dbbb5391b5e6edb8a2310c94a4ae51d4fba8a7458d7cc8488baa +Tag = 314e378e9ed6e725a14c07632b02bdbd +Plaintext = 13303e14068205cbfa992d4ccb6a265804ea64a15d7f +Ciphertext = 91e79a18d388199c9802f8f4380f23d182e1608ba8fe + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 74da07d324060e590356988f27d9879fa3a3ade0fe71e2a0e49054211cfa1fe1 +Tag = 5bc2f2f9331536f7f70be09c41bda0ad +Plaintext = 567e6d14b446add630d53ea86a537c0938537c4604a8 +Ciphertext = d4a9c918614cb181524eeb1099367980be58786cf129 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 0e403cff47adee3ec5bb6b178dabfc7d53b60a04eaad33a2fedd9db705358a4c +Tag = 6b59cc9c3c008bc5876ef86327859cbe +Plaintext = 9f3d165d44cf1c5770346d211d4ff34ca2ecd6b28549 +Ciphertext = 1deab25191c5000012afb899ee2af6c524e7d29870c8 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 211e6ce3d0c3abdef069e6e4fa35015797bd8a9d64bc9b75f20b028b12cca04a +Tag = 135e6d59a5385a78658d60d254f99962 +Plaintext = d726e599db6a6d40629bc4bda5e3fa2e5aeda229cea4 +Ciphertext = 55f141950e607117000011055686ffa7dce6a6033b25 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 3c5c67b083322115e1b3112c2b6968efc050094e23e646dce982eac9d6e67d10 +Tag = e234e83d9a0570dbf2b2fa59ce3cdbd9 +Plaintext = 42646cfb8a99e48a35cee3f5f9b3e6175695973f6de0 +Ciphertext = c0b3c8f75f93f8dd5755364d0ad6e39ed09e93159861 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = 37a931f1dd05755b376d1a164aa36b8de802e39f8108a0453c1114754665fe46 +Tag = 2084e352b1b157267228576dd056c1a3 +Plaintext = e814c7b5c72d973a9bc7ccd463f107325ffa3321783b +Ciphertext = 6ac363b912278b6df95c196c909402bbd9f1370b8dba + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = f1ddc2c49da7363526ba36c600c589b4c3121fbb8c5b9a8aa0de0e7453b30568 +Tag = bf88ad35ee338e489e55bb49732447cf +Plaintext = 4f7a5618870945b89f194e31b1aa802c5350326dc691 +Ciphertext = cdadf214520359effd829b8942cf85a5d55b36473310 + +Cipher = aes-128-ccm +Key = 5cea00ee44cfb9cfbb598d3812e380ef +IV = 948788a9c8188cb988430a7ebd +AAD = d14b3d3803df432488b5d66704abef6a500d397e855bc2c2574df746a515cf70 +Tag = 7ab67f9397a81371ef6ebc775cb7007b +Plaintext = f555216840a1f40b411d44128e567617e2694caf1621 +Ciphertext = 7782856495abe85c238691aa7d33739e64624885e3a0 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 2bd112231f903fa0dff085db48a2e2a96ec0199249b005d5ab4c2eab753f9ad0 +Tag = af57647efda119c59862cd5dd3904efc +Plaintext = eede01b08f9a303cdf14c99d7a45732972c6eff2a1db06 +Ciphertext = feb114b7bd3b43497b62454a675a632c3546d2802462c6 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 864e0e728aea856fae6c6daa6357d1542cef7177f441ba21a563f6c4f6fdc1dd +Tag = 2af4027ca5824b41c7bb238d3e8eeebf +Plaintext = 8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0c +Ciphertext = 9a394d88d7405656df1a50e7e45fa8ddcca85e9ed5a3cc + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = dac7f3cba0b5a47f67f85b226b66df695a8ae2501355e36aad105375bb95f732 +Tag = f7fbd7044ce1d7b266bdf545247a3c2b +Plaintext = 66e34540d7accf377877aa2d3e6d2db0cfafc608a1eb3d +Ciphertext = 768c5047e50dbc42dc0126fa23723db5882ffb7a2452fd + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 07f48cdc12aa27119fbdfda4ec07ce6068c92ba7ba9c930905aadd156b1dd56e +Tag = afabc559b552cf7c7730c7dca25bc3ed +Plaintext = a9ebd04fba7155c39b5c29c5571b5354c9ae228f5e5b13 +Ciphertext = b984c54888d026b63f2aa5124a0443518e2e1ffddbe2d3 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 2d24e79abd157af2c21b60932947fd9f9d6478f09ec56fffd341ea04a17b8e5f +Tag = 488ca99e0f85ac388f981ce25560b8f9 +Plaintext = f179353aef342f0f691caf1fcb811e3f6504e14d6d9381 +Ciphertext = e116203ddd955c7acd6a23c8d69e0e3a2284dc3fe82a41 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = fea280f710379e4665b5ed3d1620729a7bc164899dc83e6aee3612d538fa20db +Tag = 9156faae3d8860bed216e8d497a75962 +Plaintext = 6c19a18eab544acc883c5886eaa89f54d61ae5f1f1368c +Ciphertext = 7c76b48999f539b92c4ad451f7b78f51919ad883748f4c + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 18f2e3457127c35f2e0cff2d821af8178028fcc7803bc795c49f4a435b37abeb +Tag = 88cd7791c544d1098b2de49d04b1e0c1 +Plaintext = d0df1bdf1df6203241722fb9c9c1cf7405017497ae1545 +Ciphertext = c0b00ed82f575347e504a36ed4dedf71428149e52bac85 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 35221f0efcb109cb93c38a62c58b5ab8b236437e171e8507cf417a569af1767c +Tag = c523fd8a2524717f63dac75c22268fa6 +Plaintext = 479526b33c42c240b9a4549ca70cbfb691f16ae3be8888 +Ciphertext = 57fa33b40ee3b1351dd2d84bba13afb3d67157913b3148 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 95f2ab02af01aeacce86b02cf846f9fbd516963d06e350e8b7f6df2778765a01 +Tag = 92904f05dc2397596543df73de5aa708 +Plaintext = aa6761148b254a2ff202b620c2ec2c5e623bf61f05e483 +Ciphertext = ba087413b984395a56743af7dff33c5b25bbcb6d805d43 + +Cipher = aes-128-ccm +Key = cb83f77751e72711401cbbf4f61aa0ed +IV = c0b461b2e15b8b116ef9281704 +AAD = 3746a36154e42dd600049d506f5ce4d034864263b1a65cecd24c8e25fb9c82e1 +Tag = c3cbfecfa3f75fb111ef0011222b7948 +Plaintext = 2f298f106703b8a994cbb20acf47f9442e44f6b5e82c38 +Ciphertext = 3f469a1755a2cbdc30bd3eddd258e94169c4cbc76d95f8 + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 6a59aacadd416e465264c15e1a1e9bfa084687492710f9bda832e2571e468224 +Tag = 2ec067887114bc370281de6f00836ce4 +Plaintext = b506a6ba900c1147c806775324b36eb376aa01d4c3eef6f5 +Ciphertext = 14b14fe5b317411392861638ec383ae40ba95fefe34255dc + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = e82fc3ffd276218a82aede65fe5abf4fd35c7059a26923f8dbb97a59c903a7f4 +Tag = 0d2d30268e9f1ce0e7c762993297d828 +Plaintext = eab8cef576816a82ed036f158e5036f5987b195e60582a6f +Ciphertext = 4b0f27aa559a3ad6b7830e7e46db62a2e578476540f48946 + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 776aae7f62225556b6da522c0c9432ac70fe72ac6f3f361071ef3deb4a6715e8 +Tag = 0939e56f0b7200d1b1409f3f8e8179cc +Plaintext = 566ef9ce1d397be2547c385639507a9e7d6f9eed9a3b1055 +Ciphertext = f7d910913e222bb60efc593df1db2ec9006cc0d6ba97b37c + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = d9aef0955922f89747ba4a8ddcdb8c1c7579aefd3c2eb8ad0589c66576a8504c +Tag = 138e3b817023993608be06fe92efca8b +Plaintext = 8c28b6d93b23f1ea031d5020aa92f6608c3d3df0ee24a895 +Ciphertext = 2d9f5f861838a1be599d314b6219a237f13e63cbce880bbc + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 13c222a65ce30570ecac85a185a2a0922a8c96d633339a1ca067ce57ae426e1d +Tag = f3ca13b4ab7fd0d4badf158972570c06 +Plaintext = f0c1cd60f5fa8d1efd5e2e1ab37c4f7e6aef76d15e8d6ac8 +Ciphertext = 5176243fd6e1dd4aa7de4f717bf71b2917ec28ea7e21c9e1 + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = ce40fb0cbfdf07676ed55b040ae6be5db8f0a0f28816ae8ea71da3cbd71661d8 +Tag = 0a79fa4e8b27a31ff360a1b6c05ff844 +Plaintext = 570d5f79aa8db14b1ac99ee567cc105ae9e238e482b52628 +Ciphertext = f6bab6268996e11f4049ff8eaf47440d94e166dfa2198501 + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 446b01d09cbc41b6393ef81ca65ab7e099018187d5f9d22f5074dfc491e72077 +Tag = 5d34ef0ca0b47d6a2ec7442cbb739504 +Plaintext = 7c267223047af946b06f6a45ffde4a5ec49c28b81ca22da4 +Ciphertext = dd919b7c2761a912eaef0b2e37551e09b99f76833c0e8e8d + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 01ec87920b42639d4ba22adb1fbe5138d2849db670a2960fd94a399c1532ed75 +Tag = 8f607d154393e35fd1efc1ae8cb244e4 +Plaintext = cbf112e4fb85276c4e09649f3de225b2398e86ac3fe48bc7 +Ciphertext = 6a46fbbbd89e7738148905f4f56971e5448dd8971f4828ee + +Cipher = aes-128-ccm +Key = 43c1142877d9f450e12d7b6db47a85ba +IV = 76becd9d27ca8a026215f32712 +AAD = 5032b818d202872f3fe2b08fc7940696df02cf393a6d6247f5c6f5f2125cb08b +Tag = 617d9cebea38591a00c9fba4ef9c8e71 +Plaintext = 4324a89788e8ddae5d560cf937df701743cbbc3bf980558c +Ciphertext = e29341c8abf38dfa07d66d92ff5424403ec8e200d92cf6a5 + + +Title = NIST CCM 192 Variable Plaintext Tests + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 58f70bab24e0a6137e5cd3eb18656f2b5ccddc3f538a0000c65190e4a3668e71 +Tag = 3bf9d93af6ffac9ac84cd3202d4e0cc8 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 760d065275e345900a7bbab451cc9309fb161e6cfec526538b98800e4102e14d +Tag = b0078a769ab68db44e723993da382abc +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = ffedc67efd355ea404fcbcb3993d3bae81386ded86230270771deb747163bf44 +Tag = 31fbff2d715a2eb9af54e8320a8e42e1 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 55153ff5e4d208d2e647794f382c788e0e36f293e63e7290ba9ff2657ae0f167 +Tag = 945839d62c9d1b899f6dcd0ca9517e68 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = f8813985f59bf284bd3882e899ca9b67fb496f3eb78d7ebe6ffbad084f639915 +Tag = 903f90d23321a6882d6c4c1955b14847 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 7b95cd827ab93507f1819ae76627d6e2a31d29890c092e5c300f0e2f9e4ef4d2 +Tag = 652ec5ab43088eb568186d0d9887b30f +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = bd144c9bb974729aaa1188ceefdf85e1d9fddc0b0c8afe8828ba204aa9293feb +Tag = e6c1455d1117eec49338c96f51007309 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 92b911cdc3137a6f7f32651b788eb82975660aea52b2c03b4759755a6da4a0f8 +Tag = 1cf3c32fb229dac209523eaa517bb59a +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = a8200dbbfe4086015cdbdec2fc8e4934d0d663527430c424627ed44065ade091 +Tag = ee10bfeb1cf9b3cd5a0faebd4d8f3fe1 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 086e2967cde99e90faaea8a94e168bf0e066c503a849a9f3 +IV = 929542cd690f1babcf1696cb03 +AAD = 3b7f37b6b8e3c1390a99d59c47f7c102cf659d361a132ef8b4e70b9585bafebb +Tag = c51ed994253adb9bb5b9a8c34a27f225 +Plaintext = +Ciphertext = + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 27cabc40da0e1eda0ea5f8abbb7c179e30776250a7b30d711b0e106c5ee9d84a +Tag = 96f58c3f38c44d1a345f3e2da6679f20 +Plaintext = 1c +Ciphertext = 1a + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = dc2e28d5ae726c1beadb1e7e92ae7d14f5546320deb81a910bf170cbe0210eaa +Tag = 0579aee7c17482691f3f832d867ffea7 +Plaintext = e9 +Ciphertext = ef + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = c579f912ac1b45d5aa8cf20f78f0a1ace32abd3dc7fd0b3f3a7182a008795c7f +Tag = 3452d8ece38ffa1d4107d6a053acd8c8 +Plaintext = 97 +Ciphertext = 91 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 69ea953dbb910ec589372d797c7379d3f3b9e9fd48894c9b55e6e8eb360a6211 +Tag = 0d760b9fe29530738157db0ba2d253f0 +Plaintext = f4 +Ciphertext = f2 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 622835dea57b2c70cca8f7548d6210714070b55b36adde7a4c547269c07aba9c +Tag = 6fc21f24dee7b52f51d69eea30819f4a +Plaintext = 9f +Ciphertext = 99 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 67ebda0a3573a9a58751d4169e10c7e8663febb3a8cf769d81bc872113f0720f +Tag = 94c5b8db0064426a77dc536814c56147 +Plaintext = 43 +Ciphertext = 45 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 255412e380e9a28cbcd345be172c40f72dec3e8a10adfd8a9ab147e9022524e1 +Tag = 6d36c0b0d699a22da3116dfb8f453181 +Plaintext = c1 +Ciphertext = c7 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = c7c8e7151eb6844a954d091b460f83add0f0a634aa5ac213b774f2451aa497fb +Tag = 0c3a1690acc3f0eb09c9cfd3396c7fa9 +Plaintext = 31 +Ciphertext = 37 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 63f00b2488809fdc49ca5f05d54e98468906308115f7e702da05ddfd970b5537 +Tag = ad45070fe4c61270c13cc52247fee411 +Plaintext = a7 +Ciphertext = a1 + +Cipher = aes-192-ccm +Key = 992d38768b11a236945bd4b327c3728fac24c091238b6553 +IV = b248a90b84b0122a5ad8e12760 +AAD = 8e2c5e55c0bf70014e9897b6f6940e4e738b1e84e8269b6382f0b1fe59b0e162 +Tag = b2a2a8b283ff7eeff5c2670f77b8809d +Plaintext = 40 +Ciphertext = 46 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 40affd355416200191ba64edec8d7d27ead235a7b2e01a12662273deb36379b8 +Tag = ef3d6ef9f981557506ecc8797bbaaaa7 +Plaintext = 0c6c +Ciphertext = c996 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = c5e12e17e02bcc12b3a4c14cf837250e2886db3ee1c717d28bd11e8a3b764ddf +Tag = 4405257a837c5343b59d5689d6de5269 +Plaintext = 23df +Ciphertext = e625 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 213b5b6015d472bd593be5acf85ebba6d6a09f3a962be302ba83c6d70c61f241 +Tag = e93e67d37d2367bb1f27f71b54b29317 +Plaintext = 0dc2 +Ciphertext = c838 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = fc1b6e152fe232b6c10b5d89900961c445f4c46833df242c826678b68c869811 +Tag = ca3744a4ab375af9060621a9dc4f4c32 +Plaintext = dc88 +Ciphertext = 1972 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 5b2eb1a6fa585d61d1fb3da68f5b93829c8e2d5e4fe03782617553d7a130ecf1 +Tag = 172626e930d24052bc056d8609c4175f +Plaintext = 8179 +Ciphertext = 4483 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = e2b3c3bf33cf847660929e48cce51d9d9289945169651aaecb1e939756e93105 +Tag = 852310207be8d3417de800b372700da2 +Plaintext = 01fd +Ciphertext = c407 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 6051f12cd8aae68b4023aaf7178fd086aa582b8d8821e36637abc97025f5e858 +Tag = 28553bc037954dbf4ce5db99792c2c7a +Plaintext = ca18 +Ciphertext = 0fe2 + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 2d3555faf285caaddfe95c010c2a7f233e09c2fc0cd30d644035269280527ad7 +Tag = 904725668634d6345bd8f90a3831b452 +Plaintext = a855 +Ciphertext = 6daf + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 4fca820dc545bf93bdffed33a04b67eb45384e696f092c2197e5d79cecd09913 +Tag = df6098cb3135c3045a54ffce88efaceb +Plaintext = 5555 +Ciphertext = 90af + +Cipher = aes-192-ccm +Key = 5012db40ff6ae23c1e1ce43768c5936c4400b0e79ae77f30 +IV = b67e500b35d60ad7264240027c +AAD = 1789ae403e183d2225f431f001d475b53bccdec66572bb027340ae592839ba8b +Tag = 8568e8c08ff5ee5ea0a608589c2fc029 +Plaintext = 11dd +Ciphertext = d427 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 31a0338c3839931fa1dd5131cb796c4c6cfde9fb336d8a80ac35dec463be7a94 +Tag = 98d9a2147776dca9c1a42382bce323b2 +Plaintext = bcb898 +Ciphertext = 68f082 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 4863dd810ee70ef0f5da81f60c5ce550abb96454619032322e34657af25207de +Tag = a9a77755b324f3a557217752ade14ed7 +Plaintext = d1da2e +Ciphertext = 059234 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 173594fc26b167f044aeaf9bfe920cab99a27eb2b01827d61f7553cb2018b5fe +Tag = a4441a79a90e228a28069fe109d5d876 +Plaintext = 394f31 +Ciphertext = ed072b + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 71cdd16eca9255aeedc23bd623513918ea97da21485074415fe75bcc42f454c0 +Tag = 65f272f44c5210b5bcc571e819580910 +Plaintext = 868bda +Ciphertext = 52c3c0 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = e84418d332d16d2298e69e7ff3c37bc7b6e030cc822e73b3f4a0029bc2ea4d80 +Tag = 59c5f7f73a1b5f419c9f63ca401894a8 +Plaintext = 52d6bf +Ciphertext = 869ea5 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 42d962109bea1d50be0f3d83b4c2a6033d53b3d7112591866b1ae52dc84cb5d0 +Tag = 220b828cf5365137fb3f1df67cc8d2a1 +Plaintext = 6f8d58 +Ciphertext = bbc542 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 943b4327b5c70dba63c82f27e0412b3ada012bc0f7dd39ebb13db2f864daf80e +Tag = 422b0f41075ac79a0afa2d1047cbbfb5 +Plaintext = fda286 +Ciphertext = 29ea9c + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 6076b94caabfa476ab7e6482e4fda9b29f2e2b2883efe44d668c7c74628505bb +Tag = ae68cd6d6815ecbfd01293d160d4d38a +Plaintext = 8651fb +Ciphertext = 5219e1 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 3e4bb5781f84b4bbd23583e3dae561c6ff4af8eff35e2a4f35b50d2f360d3469 +Tag = fbaa81cfdbcaee476860cd5102f556e4 +Plaintext = c3e179 +Ciphertext = 17a963 + +Cipher = aes-192-ccm +Key = fa15cc7f0de294d7341b1fd79326c8be78e67822343c1992 +IV = e5257aed2bda0495aa44591db4 +AAD = 364008acbad330d0b8d574641a97b0682c49279cfdc80ff309b7514514d18a44 +Tag = 7ad1520564b68824a3a939371c21a336 +Plaintext = 4a97d5 +Ciphertext = 9edfcf + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 1225b036e6044df52314016760e92750de0936120395de750a2c54a7fa0cea82 +Tag = 9344e2de064f269d065a2a6108605916 +Plaintext = b46b343e +Ciphertext = c2c39d6f + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = aaa6257d6783936a4445833c2ac3bea8cb7334f22ade9c035d515bbc91d6a78a +Tag = 693d90b8297b90bc41c231d08b0204fb +Plaintext = cb216301 +Ciphertext = bd89ca50 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 1c1915fab09348b9a5536495c70d1a040305708c1124797e564b63e008e7b8ab +Tag = 9d0146fe373437c529fb2eeb169e4bd7 +Plaintext = 697a8696 +Ciphertext = 1fd22fc7 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 864d0f786497c7ce283762ca0959ec9c825ed445a5dbe5b4b2e5772fe88ce7f5 +Tag = e389c549bfc4ede936d7896e544b23ad +Plaintext = 6bee3db9 +Ciphertext = 1d4694e8 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = d5388b0b548c58886dcd335dff2b1ed23ce3eebbb708fb5bbd831c83e959d3fa +Tag = 95177a9fe6d9329a585c8737c92a4d29 +Plaintext = 85d95855 +Ciphertext = f371f104 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 83cddd189736f224cad6a29efba45e43c75450a14f1541713b7fb926ffc768c6 +Tag = 3914431a10b1f94a2b99b9e442f3dca4 +Plaintext = e8b23340 +Ciphertext = 9e1a9a11 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 8fccbd1fc5240691cf24e8807bf3416c1b2d87fc86dbf3955fa2e52b9a3a8457 +Tag = 383d8dc98b22010dd93cd0cbb396d9e3 +Plaintext = 595c4d7c +Ciphertext = 2ff4e42d + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 513d45f6f37f3f051667dc743215059e06e4fdc8945789b16d50556a2e839368 +Tag = 40c513bfc92d1a7db5ed7cab2d8212b0 +Plaintext = 314e0c7d +Ciphertext = 47e6a52c + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 70828be102e554f0d4b07641fa3254bc8db06eefaf5b85a7c97e01c217fc8f3f +Tag = ea98f4ac6b3eabd483f1e6ab92f3b83c +Plaintext = 35753e32 +Ciphertext = 43dd9763 + +Cipher = aes-192-ccm +Key = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf +IV = 2ef29d62b40d8643848797cde8 +AAD = 343d5a4ad39acf81adcf24e9807618932abcb3bc076734f179174c77c8cb89e9 +Tag = f99fb67b1e2aba2d232db2445e6aec2a +Plaintext = a531c0ed +Ciphertext = d39969bc + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = e04e81e860daf9696098c723085d8023c240ebe7a643131e35359ab04bd650fe +Tag = 43ddf77b33d8cf2963ba76fd4e19f3c5 +Plaintext = 8ceaeb89fd +Ciphertext = ec9d5ed362 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = 6217cd581d4b3b2f7bcf1b8dad9ad6430e2e3a0063cad52260e0a1cd6fc9e73a +Tag = 6b73fe9e638e205b27f78ed1bb9b0ed0 +Plaintext = 7e51d6f870 +Ciphertext = 1e2663a2ef + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = 8aa7847e496f5e9f1f87851442de844f27a21c1b48f82fe525f0dd5a88b8ec38 +Tag = 5936115e23158aff1916edec241fad56 +Plaintext = e0023b674d +Ciphertext = 80758e3dd2 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = 3612abc865a4d8d7b86a84109388584df6526525adb1006ec6c8d00048d725bc +Tag = f15aae4b70dbee244be1daa74475d7e2 +Plaintext = e2b5b6f36e +Ciphertext = 82c203a9f1 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = 849a99c6f1cae0ad4bcde4bd0811e87ca5ed7b913de1a8285a206e980b4b7043 +Tag = bbff424487848385f8501ab5a77f327c +Plaintext = 9a17e4a22a +Ciphertext = fa6051f8b5 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = 9066367c784de0a4d1116bbe95ce55ded85edddb6273c2049ee24e0fb3429352 +Tag = 72d8d5da6f593a8d9956731b42645aa9 +Plaintext = d4e765fc78 +Ciphertext = b490d0a6e7 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = e7aa9f767fa8920f96f91c41d9e86755faaedaeda596a444b65f99b7a9e23e85 +Tag = e3eca12b835dcfd08166ac8831585626 +Plaintext = 1074349e10 +Ciphertext = 700381c48f + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = bc0db1ebf910b6f4dcad5401401d6bc2272e23130947dc236ca664d5b5ed6d66 +Tag = 2bcce66018e9e552d2c8a229301361df +Plaintext = a46dd7fb58 +Ciphertext = c41a62a1c7 + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = fcbeba2d0d73239d05f691a52b08152c9dd871f8dc76c2c18b8a638a74460d31 +Tag = 3e41a50a28ea3be14baadf12964a37c4 +Plaintext = 2e0ca09221 +Ciphertext = 4e7b15c8be + +Cipher = aes-192-ccm +Key = 30419145ae966591b408c29e5fd14d9112542909be5363f7 +IV = 27e6b2a482bbc6f13702005708 +AAD = dcdefce64ae4339f46c0759a4a10b29d59daaaf1e5dbf75cf11b4e4f73c5025f +Tag = bee2ab25bfafa76dc3e54832b2f76864 +Plaintext = 2e108ce0fa +Ciphertext = 4e6739ba65 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 691dd98f61fd213b0840ec5a6f06ef9a1420be0d59bde5e43546347a2a865a94 +Tag = c15536e21d961c675070ec4cff9037bc +Plaintext = 24d6880aed7e +Ciphertext = 270120f9634e + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = d1fd047cdb18463766841abb1fcd25257f1458b595bfcf24066ff9385232fa97 +Tag = 9b303af0b098f902dc24e66fe56adc6e +Plaintext = 2298028d0213 +Ciphertext = 214faa7e8c23 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 65a480d120a0459dab69e8f23094801e10092666cc56f9fb2549662982bda6d0 +Tag = 1b657925a9740d6828bd85cd12205764 +Plaintext = f248e5225e3d +Ciphertext = f19f4dd1d00d + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = b738a53fbc9689dd49f68f97f5a99665258cd52e74dc653b594cffec045508aa +Tag = 395a1c49129ef6cce0ad5f6ef378aa1c +Plaintext = 611dade00cec +Ciphertext = 62ca051382dc + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 7006f54184f0ff0ab215ca408d46325b86c1cbae6da7838435b1826ff81f55dd +Tag = 5e68468d1b2b516be3d688567d84ab80 +Plaintext = 5871a8300471 +Ciphertext = 5ba600c38a41 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 9e6e6675d4c6b1e0f3894aac071f4c99a364708edea12f319cbc27b40fabc0f1 +Tag = 0ba1af163049d16817021665d183bc9e +Plaintext = 3ca8a7520e94 +Ciphertext = 3f7f0fa180a4 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 10ceef716f54b74d7c8a435d6aa38a10ff23939ca29e2de7b6c3e0a8269a23c9 +Tag = 670f35869da9821b6ff1fab3e6062ad4 +Plaintext = 9c2a0070fbba +Ciphertext = 9ffda883758a + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 3ee0865f29be50160273b4a94ec078932b9cd10a858e31838d5b607867e1ce69 +Tag = 08f395250fd79087c858b83755411114 +Plaintext = 436179c74fd2 +Ciphertext = 40b6d134c1e2 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = ec2b8bfe1ccd491b02aa4a9178fd6f099556963e39e2ca5fe6ecb6b5d2a46085 +Tag = afcbd9af2d584a0f638d066f2496d9be +Plaintext = ecfa41c614c5 +Ciphertext = ef2de9359af5 + +Cipher = aes-192-ccm +Key = 748ad503388a34041a7bdae6361d57894357c333bacf02ca +IV = 518b79d194579b19f2d8845b70 +AAD = 5b6f6369643d83b1db33d75257d7dea761e574e6e1f1ecead64e5e354a2f4235 +Tag = 17861882b8930296fd51d969a1e9489e +Plaintext = b48c10105dbc +Ciphertext = b75bb8e3d38c + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 1cf83928b6a9e525fe578c5c0f40c322be71b3092239bff954dd6883738d6d71 +Tag = f4b6cab1383adb420c4724aa7bdfefb7 +Plaintext = 2a755e362373ef +Ciphertext = f06238b0450fd1 + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = bb5450f66273f63b2f79dce177381ce846584ce4f7a0ad5a0171a56e149370bb +Tag = a1f99175d3dff5a73f0053a95c36fd8d +Plaintext = fab43224bf8989 +Ciphertext = 20a354a2d9f5b7 + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 3e5e1037bd2922eb20c34200c470b76e537baf7e7f1d8dd2f7a184a593c66554 +Tag = 34b4ad0e41117940abf530093dac648e +Plaintext = e3aed6715aa429 +Ciphertext = 39b9b0f73cd817 + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 3cc88a096a1a440827f5b7da675389e50b5cce35fa2cc36674d6bfc5a3a966b2 +Tag = 663a8324014550430c7eaeffbd8568f7 +Plaintext = e78db0f83997cb +Ciphertext = 3d9ad67e5febf5 + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 2cca33a10b9da7ba99a6b552d1405f2df3fdfd15358d8fdab5e15296b38f9135 +Tag = 34ab635c4eb5b38b86e71da8af3840ae +Plaintext = 726557906845b1 +Ciphertext = a87231160e398f + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 2fe5dd58b17914187e29029c53cfe5b015ca74cab750d8f95e05f818c3cdf947 +Tag = bd9961766e03eaa7e8888227c98d1f42 +Plaintext = 043a759b578be4 +Ciphertext = de2d131d31f7da + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 8b8e3d7c88fa16d70130cee290b7e2eecf0ce711118cd9265093b11467e63554 +Tag = 637842d96d13c4aab97e296458745a9d +Plaintext = f31f2fb4b3fd80 +Ciphertext = 29084932d581be + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 6341370e126097f9721a13c977eb4875cf1286e15c3adfa4e7597e0e13d93b6a +Tag = a51ac46611366c666cab6bfd3d1baaa5 +Plaintext = 7e3c8224104669 +Ciphertext = a42be4a2763a57 + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 227926b62f7cdd90e4d3b0cb5457e71fb087d329671f0fa891ec06eb8edeb58a +Tag = 8c7d7e5aec14845f844ad38544a2f11d +Plaintext = 26a0528ae6f9c1 +Ciphertext = fcb7340c8085ff + +Cipher = aes-192-ccm +Key = b930cca30a3fd230c237c8f3cc6792d0c4084dff5c18d775 +IV = 7574802fd82fe96c05431acd40 +AAD = 05b50c40b02e79b74b94d726a7ce8b2b7216ef8af6e7a42d041d2a692a58ad83 +Tag = f1605ab8a2332012b759ccd2eedbed24 +Plaintext = 61dcf53d1a184e +Ciphertext = bbcb93bb7c6470 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = 5c7ce4819b30b975ae6ce58dcc1bfa29a8b6dda8f4b76c7e23516487745e829c +Tag = 07482362ab3f157c42d0e9c6c5cffcf0 +Plaintext = 4d54d8b06b204445 +Ciphertext = 2baf90c490b11f96 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = 90257ed88679197b8219bc4c2434a71a4e3664d5859c4ffb9a075654898ffedf +Tag = 5389509b5b6f2df1faf7e8c39203970f +Plaintext = b2a35df881cd63a2 +Ciphertext = d458158c7a5c3871 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = dff8ad83525d8235eacdccc91abeb80795e6b5f463fd28af35c46199f646ceb8 +Tag = 95328747ca544e987df28883d0377b35 +Plaintext = e98f5e5a20d02c80 +Ciphertext = 8f74162edb417753 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = cde159c5343cd9d98001cd719d3e9ea25e47e1ff13fc87055d4a53b741f59285 +Tag = a4ba841883a0d7aeda398c043161966f +Plaintext = 90c3e48313cd4fe4 +Ciphertext = f638acf7e85c1437 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = fa88cf5a08be4fb0c1a7960f45726c303eb559861fa60d17aa8dfe8bb5795382 +Tag = 09195efe66c5faf413e0f68df8cb647d +Plaintext = 8ad6d5a28ec075e6 +Ciphertext = ec2d9dd675512e35 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = fe9e93a9370b43efa1560aeb017ff04fca7f207191e6f707c1c35b2e90c44eb2 +Tag = b51af067ad69ad96009e50ead3d03f02 +Plaintext = eb83928f0d5f7aa3 +Ciphertext = 8d78dafbf6ce2170 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = 35792c854fdf1c8cf7f3f8ed2b8ec4f31fe17bf8d4ba49caec03f954bd8bb17a +Tag = 6b1cb03ee76587f84364825f7c1fcbe9 +Plaintext = 4cd74ed2fd083011 +Ciphertext = 2a2c06a606996bc2 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = c084108f9c0a74cbf70f614dceae592546865006930db0401828a0eecff98671 +Tag = 8fa70c5e195f1f955d64892f532b7683 +Plaintext = 52365f94579e0646 +Ciphertext = 34cd17e0ac0f5d95 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = e8045949de61c5c18a63e628330a4d1d12782379a8f9187755409d1825f453c5 +Tag = 2ddf297bdad58083645a052815d29a83 +Plaintext = 8fb85c857a3e38e7 +Ciphertext = e94314f181af6334 + +Cipher = aes-192-ccm +Key = 314c136999e41d137bd7ba17201a9fa406025868334e39b3 +IV = 65f7a0f4c0f5bba9d26f7e0ddb +AAD = 53cfdfd66d63c2924bd583487b90b1dd9ec199f90d660cb9c3a763a4776abfe1 +Tag = 1ad3b2be41dbc39df4c0145dcbae3e76 +Plaintext = 43d2828e86f7856b +Ciphertext = 2529cafa7d66deb8 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = d68d5f763db6111c5d6324d694cb0236beab877daae8115ecb75d60530777b58 +Tag = 467fd8e139eb9ee8fcdca45ed87dc1c8 +Plaintext = 13511ae5ff6c6860a1 +Ciphertext = b3859b757802ebd048 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = f6e219b29884dab9ea9bad34d9ef8a50ae389c9a908de7154a1f2e894f27141f +Tag = 89d0ee8323ea2ee7a68aaaa9c49b98df +Plaintext = 7e7e33e1a07d4e8fde +Ciphertext = deaab2712713cd3f37 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = bcca002d69d9d1044c40ae741ea33ce6b8463f5a28d0514e044fdae2fe7d3c3b +Tag = 37c9fe3d9feb0485e6d7c04423b77a53 +Plaintext = cc88980c73e6c5f0cd +Ciphertext = 6c5c199cf488464024 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = 39cac8f0825ffdb0668455933ad1581263a23b9e5f1305340528f0320d4b1269 +Tag = b87e90a71ffe6c30bee1771078a701ab +Plaintext = 34cb528f50d073cfdc +Ciphertext = 941fd31fd7bef07f35 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = 510a02a44d142c8e975d1d933f828fd7e47d28b88223f1698cf009dc3b079be6 +Tag = 9e9c5be0657649448c38692e8d703d30 +Plaintext = cbce3df86438a61065 +Ciphertext = 6b1abc68e35625a08c + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = 40e0418cd52f74d78a8e18ed86210e3661a86d8574aedcee540340d8996d9852 +Tag = 13e5f2bfd33101597cfae7cf334a8528 +Plaintext = 80a2b835f8b0729a4b +Ciphertext = 207639a57fdef12aa2 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = 1f2938b3bde19e1af91299c08638061dc3c1ea3284c259d415e996477cb37b0e +Tag = 516a7310fbd4ceb90d8db9a86cb6311b +Plaintext = dd04794e65ce34127a +Ciphertext = 7dd0f8dee2a0b7a293 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = cbae5b46e35fa2a279dcaa4c724b923805d4707412a84252b64228c91cedd019 +Tag = ef6165af65f3522dfbfed0293db39ecd +Plaintext = 00c4101052f54462d5 +Ciphertext = a0109180d59bc7d23c + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = d0f27c7f42892f3ad4c0029c5b698abb1d035ba5869a665b1de8861db6c055e8 +Tag = 0726434c1349e3e874a2d6bf598d05fc +Plaintext = d0865445d3b26b6f49 +Ciphertext = 7052d5d554dce8dfa0 + +Cipher = aes-192-ccm +Key = a19f6be062ec0aaf33046bd52734f3336c85d8368bef86ab +IV = 7f2d07f8169c5672b4df7f6cac +AAD = ab0f5a829a9319a74d5d5179aa0a410a0fcf52f344a7a896aeb1f7a6c5d398ea +Tag = ab491e60fc97b3cb5248291e4866dcab +Plaintext = 7c7c8580b944ed3fd3 +Ciphertext = dca804103e2a6e8f3a + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 9ad52c041390d0d4aaf65a4667c3239c95e7eae6178acc23fb4e70a852d483c6 +Tag = 6aba025abc01416a7ca9f096ab2529cb +Plaintext = f777aba1fa70f94e6de9 +Ciphertext = 9d8bff6d2dcde77104ac + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = b49c7e7b47870c1cc339c7c09aaacfd6115fa8a0f04990367eea10cfacb9d23c +Tag = 4acb200e85a0d4753a8ba226aca72f98 +Plaintext = 349feebfbe58f93ea3c3 +Ciphertext = 5e63ba7369e5e701ca86 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = e61ca7310172eec16745a73e34516f65844eecd0dbc5566ac5213626b9096ef1 +Tag = 7869784e3321183d8c044657a020e9b9 +Plaintext = 678a40b4c2c7df0e4c9d +Ciphertext = 0d761478157ac13125d8 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 690f5e5d8da6cdb0f492e80449e152ffe88fea9742564d8383c79cef739a7f74 +Tag = 70634d00b1facf0e9e9979ca257a71e2 +Plaintext = 2b81e0533313664bf615 +Ciphertext = 417db49fe4ae78749f50 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 78e34b0a1d61ccd411cbfd306ea2ef3ce89c0b085deb4cfbaec2ab72ce16daa9 +Tag = 994630ed92e2973b22773f229b45bdad +Plaintext = 1ac63aa38a206d8e7d68 +Ciphertext = 703a6e6f5d9d73b1142d + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 51bacfcf87ea11da34b76acba8c444792ec3db3c8ee6e600d69679975a682a54 +Tag = 04571b015bb6b4651f1eb9f6fb3a7b74 +Plaintext = 027a7fd7897808ec7a56 +Ciphertext = 68862b1b5ec516d31313 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 5159357a133e4743f903d05bd641da369a3675337760fcd2424a99221ba70b78 +Tag = bb0e11ac4608081fd0702a137da0aea3 +Plaintext = 1086953d352e94a51a6d +Ciphertext = 7a7ac1f1e2938a9a7328 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = f567820865340314d46a17f520ff315efb6b33bdeda590ca9c4fad604c2d8e8d +Tag = 52c9ec1317ce30dffeb4c9bf3fd0bbdd +Plaintext = b8b148aafec4a035e9a7 +Ciphertext = d24d1c662979be0a80e2 + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 0cfec933831644b468724e808bb3d25fe8f15850ce513fc341da46089c845208 +Tag = 691e32be3cdd9721a13aabad26dba58c +Plaintext = 884242a87779d3921f8e +Ciphertext = e2be1664a0c4cdad76cb + +Cipher = aes-192-ccm +Key = de1c8263345081d2dfa9afdf37675971135e178df554a4d8 +IV = a301bb82f91a582db01355c388 +AAD = 8edc2b85d44297ac66bdd90d05d8df38124033d6a583bb8dda18a2246ba096e8 +Tag = 333a381be77800654aac335bf9220ac9 +Plaintext = 25c32770a299020d8500 +Ciphertext = 4f3f73bc75241c32ec45 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 9ec08c7ed6b70823d819e9ab019e9929249f966fdb2069311a0ddc680ac468f5 +Tag = 0cddce66df9b4802f737bea4bd8f5378 +Plaintext = 33709d9c7906e2f82dd9e2 +Ciphertext = 9114d36b79b1918b2720f4 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = ba13974d95f2eeb367b63850609c53dc66c2710f682f10bef0142d48f851b430 +Tag = 12c94615be2bd81bd598f3022f5775a4 +Plaintext = 84172985e7d194ba28a87c +Ciphertext = 26736772e766e7c922516a + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 5f16180bfac9b7483774cb0e1d57a43e9bf3cf03bf6fe758293aadcbbef25b80 +Tag = 2758e936750e335702542bc598e211c4 +Plaintext = 9a34d32070c71d7de8f512 +Ciphertext = 38509dd770706e0ee20c04 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 4352057bdd1735a85dc0fc4dbeedc73279c27eb24a97641236f03f11cdafb8c0 +Tag = 0762bb2a7d04ba2ad251d595d0619dc4 +Plaintext = 2054a268b1f6fae4f15d91 +Ciphertext = 8230ec9fb1418997fba487 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = ddf118ae403b2509e75eb7a26d17e73e527acbacfbe49a56fa3210169030144b +Tag = 27d85594da3fd35bd8498d7e389ee7cd +Plaintext = f71afe9a60f08a0ef694aa +Ciphertext = 557eb06d6047f97dfc6dbc + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 973904409e8154132439926f0dc45c0d81bbbd5793f7f81e20eb818bfa374d58 +Tag = 055936db383a8ad10b152046d721d3f7 +Plaintext = cdf5b47ff73306aa55c496 +Ciphertext = 6f91fa88f78475d95f3d80 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 06bca7ef6f91355d19f90bf25590a44a24e5a782f92bc693c031e6de1e948008 +Tag = d57e228369e24fe955fd8924526af6e5 +Plaintext = 9ebf93643854ea5c97a4f3 +Ciphertext = 3cdbdd9338e3992f9d5de5 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 8321f65baf9dc856ac1c24f3fee5c74d697eb0b50470d59d8f4a14b506e86c53 +Tag = 6c23abfb3b4eb39deb8da2064390dfa8 +Plaintext = 685116faa5cc527ac8bfa1 +Ciphertext = ca35580da57b2109c246b7 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = a4e7738038a5116592bb9d92d6d4ed191ab774310f6409e4e45fe907674c006f +Tag = b4272c0639e8e6a1d356fb4fea86762c +Plaintext = 9e8c4f1292e8d7e5179b34 +Ciphertext = 3ce801e5925fa4961d6222 + +Cipher = aes-192-ccm +Key = 248d36bd15f58e47fcf1c948272355821f8492e6e69f3661 +IV = 9e8d492c304cf6ad59102bca0e +AAD = 0df202431ee7f251a38aaf6aa8cd313782bd293af9114005adfe9faab253b572 +Tag = 0633a0f9cdc9490231ec2dd69f6e35db +Plaintext = 3ecc2ba566c723462eb0ea +Ciphertext = 9ca86552667050352449fc + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 8c18486d52571f70f2ba6a747aaa3d4b3ebc2e481ee1b70907dddb94bdfa0ca6 +Tag = ff4b0f2b2a5067283210aba8630d0306 +Plaintext = 10554c062d269ff6dcd98493 +Ciphertext = 7f8b0cad79b545e5addf0b04 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 4e0b4771c7f6c66f9577c430611fdeec5702296ee3691b6bb8c6a81217edabe4 +Tag = 5b16dbdf0b9be3c8c82ac652992d630d +Plaintext = 1c9e7875cf02129ac52daeb0 +Ciphertext = 734038de9b91c889b42b2127 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 4a687e1d0a95ed2efb95b4c6b040999fcd35136811cd665f934d10224b6064c2 +Tag = e629274d654ef5a4480e24f6bef3bc8c +Plaintext = 34575694dde459d195b7357a +Ciphertext = 5b89163f897783c2e4b1baed + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = b5330a8447d74a7987fb718cfae246b5c7e057991064eeaf823641a12bfce9f5 +Tag = 42ab5407a08b648ce24e9955e28fe47e +Plaintext = ab20c8e8aab1aac1e4f64206 +Ciphertext = c4fe8843fe2270d295f0cd91 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 4f19bbc3135d7a216465b4c1df2616e8bfc3cc64af0bf52bdc42543f4d2448d4 +Tag = 151e94d311c7cd2c1b9048575076ceac +Plaintext = e556ca05bcd1991d2c9836a9 +Ciphertext = 8a888aaee842430e5d9eb93e + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = b6ffc7387b19786282bda7caad52eb37fbe7e557afcb80faaf57767e2a0f178a +Tag = 61b71330d72506050368186a5619f180 +Plaintext = e5b665600a2aa413e117c538 +Ciphertext = 8a6825cb5eb97e0090114aaf + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 6a493c5ef3769ccc4101dbb2eb36e1e5bbc577a057ce0731203ba3f25b52497b +Tag = ea21e36f99e5aab6ffa85994d13d5bb0 +Plaintext = 870864a611aa0475d120bc40 +Ciphertext = e8d6240d4539de66a02633d7 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = 8215753d9efc51325f182199e39f9082cc3fe524400f2a7434c68df7eb2b06d4 +Tag = 7cc93a50dea11c5e0b19f14b9c8f16bd +Plaintext = 71afe8d00c6f2ea8c8b050d4 +Ciphertext = 1e71a87b58fcf4bbb9b6df43 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = eb8f198da6ee92a03913c6575343f6c749d2377a09430eb751b13c041e6edbea +Tag = 99cbfd1beafa2d2942f6812b8dfc88e6 +Plaintext = 7021f18b8f398a5999fcdcd1 +Ciphertext = 1fffb120dbaa504ae8fa5346 + +Cipher = aes-192-ccm +Key = 77a67fb504b961028633321111aac2c30eb6d71a8cf72056 +IV = acadc0330194906f8c75ac287f +AAD = de2ee30359e390db72f682c2ca0f14b72b60ff9bccd8c6fbd19a512b12add794 +Tag = 337405235dce6161441caa25cc6007c6 +Plaintext = affca856eb412f0b3276ae6e +Ciphertext = c022e8fdbfd2f518437021f9 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = cdd9bf1b4f865e922c678ec4947ea0cb02e78bd5c1538f33aeb818ad3f47e519 +Tag = 37f16761dd6aedbfc789ad96edf1490d +Plaintext = 4021ff104ff1dbd91e46db249f +Ciphertext = 7953d3cd66d093785d123f65ba + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 342de5fe61e05c2e58ac2978a871fbdf186a7294ec5f85c4631c21b584231211 +Tag = 8f8e855ae975a1fc64bcce3e7492e9d6 +Plaintext = 95050ca1d494bdb561d4840f8a +Ciphertext = ac77207cfdb5f5142280604eaf + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 7871482948d8d09d0a7491d915543082cb5fc7d6c1e82ee2218279f54c15c154 +Tag = 017a6515156691b3161b747576078da4 +Plaintext = c45823203b20821a48502f9c67 +Ciphertext = fd2a0ffd1201cabb0b04cbdd42 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 65781d018f27ca0c72a9fa9ab4648ed369646dd3ce45d7ad3a54f6b051f1b6e9 +Tag = 25cec7d2566a07cd78181ae94577befe +Plaintext = e901661b7d47c9918244ee1077 +Ciphertext = d0734ac654668130c1100a5152 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 05556b04dae5cde8525633d1862aa200c54af534e302d2cbd34ddc2b78532a60 +Tag = 133f51dac00f973fd42e0948fab70ea9 +Plaintext = 5556f799d6a6cffb343f28c1a9 +Ciphertext = 6c24db44ff87875a776bcc808c + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 151304e3e4f3c2d4d3227e035d849e0d3841ba00cf6cab1cf2e3e4d6cc760623 +Tag = fe78bdeaa8d408ffe8fe64811aa87742 +Plaintext = 56bf26be81c7b55ef898e23981 +Ciphertext = 6fcd0a63a8e6fdffbbcc0678a4 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = f870cc1fe67d6169279f905b0fe5fd9a0436c36498e4b7c6f584f00f7efe8784 +Tag = 97228d155dda2bc814ff33ebeb9a7ffd +Plaintext = 36b304a72dbf4acfffa1d7d624 +Ciphertext = 0fc1287a049e026ebcf5339701 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = 5692c9d452ea1c067e62fdc554ddd2b18c8433d59067f971316797fd9853ae6a +Tag = e7ba03e144e34a4ab34791a372a2b8ab +Plaintext = fb529eb5ae79a0830474ffbc98 +Ciphertext = c220b2688758e82247201bfdbd + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = dcf7fe16b7ca9e27ec3291103398eaa2e77c7b770b67f8858c215af4c523822d +Tag = 03c2eb5ef0657306d12b753a0694efcc +Plaintext = 6218c778955d9a56360f06c704 +Ciphertext = 5b6aeba5bc7cd2f7755be28621 + +Cipher = aes-192-ccm +Key = 0d423519e4110c06063061323f8c7c95387776b6ee4e4b6e +IV = 39abe53826d9b8e300fe747533 +AAD = b0f1e2668611dca86e8d0f58c2a4cf4a9472d81ba013e271800b75841fe5ffde +Tag = 7cc6119151393461ecf65bfe06e0163b +Plaintext = bf6b143fb713a81c965c5a9d8d +Ciphertext = 861938e29e32e0bdd508bedca8 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = baa482c64eefd09118549a8968f44cfea7a436913a428e30aa4ab44802a4ba35 +Tag = 8242ac1a1979c5a9e7bc67d7698c7efa +Plaintext = d64f9426febce6a84c954dd5ded5 +Ciphertext = f7580f17266d68237747bf57c7ed + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 2ad8ecc5ac9437ace079419f17e6018625b10490120fbe2f12b41e64b73b653c +Tag = 18abced491c063d8bfd0e7341febddc3 +Plaintext = fcd9b67717bcadeceddea336c671 +Ciphertext = ddce2d46cf6d2367d60c51b4df49 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 7585ee95e74d7a869bdc0b59ca9939dd57e7b09afab179079d467bfe0668416c +Tag = 659ecbb3dbfbcdb0f913abedf8afab05 +Plaintext = 18232d7c792fb80e6ca1c8f2c3cc +Ciphertext = 3934b64da1fe368557733a70daf4 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 41be6ca6188f34da1ce83fb8c27652848dc2a71e32bd3631fb9b33ae69e5d879 +Tag = a220d5ec0b5397d6b4e323b5dc7d1b63 +Plaintext = 764dbefb42644d18d23e5e456868 +Ciphertext = 575a25ca9ab5c393e9ecacc77150 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 197cee3b15320d57996191dd13106fbd4546a5cc3d2bcf0c886af52ea3d9a855 +Tag = 3a5f713f5d0793b732c6e114805cc9b3 +Plaintext = 8003586af34bdd0acae4f5547394 +Ciphertext = a114c35b2b9a5381f13607d66aac + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = ee0b647a47656a6e9e09c2d64f734a2cc3fd45b7ee52fea51c24af59ee22a006 +Tag = ed90e8650bc16f590789dcc625b9e63d +Plaintext = da143266516a4145cde92c93f961 +Ciphertext = fb03a95789bbcfcef63bde11e059 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 9f5bfffa01f1425d95465723735b49fc1dffbad06cf37a00ca4b59efa21739c1 +Tag = bda183dda1aef021d92210e27cdd7c5e +Plaintext = 3842b033f3ca31a6f8e5a638b39e +Ciphertext = 19552b022b1bbf2dc33754baaaa6 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 64e92ba2748d07f602808f7c5ded15cb0e43140400d37107e59a01e7d45b4c9c +Tag = 5e4087fb314f893937e95383e66745c0 +Plaintext = cedf60b17185fc71b957cb759260 +Ciphertext = efc8fb80a95472fa828539f78b58 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = 6ebcaeb4bd44ff4c990305ac64264dfe2ada5f7cd4b294eb9f492865cd28905c +Tag = 0a71ce5813c578532b742d704fa92276 +Plaintext = 035f449bb28f43365f4a0556096a +Ciphertext = 2248dfaa6a5ecdbd6498f7d41052 + +Cipher = aes-192-ccm +Key = a60cf7ceb62bf3118532bc61daa25ce946991047f951b536 +IV = 7499494faa44a7576f9ed5580d +AAD = db617207dccd1f6baea5f2242d5e577adb8d69af3bb1707a7a53a8b75452455c +Tag = b7fc45d15d6939668065d2282fc589c7 +Plaintext = 9a2a45424f4965a71270e77cc403 +Ciphertext = bb3dde739798eb2c29a215fedd3b + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 6d14bb2635c5d0ae83687f1824279cf141173527e1b32d1baf8a27f7fe34a542 +Tag = cb3993ca35acf354cb2b4254ff672e7f +Plaintext = 25a53fd3e476dc0860eeeea25fcb0c +Ciphertext = 4a1cfd0023557a184b929965b0a445 + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 9f8a56fecf32fa7d50f033b2524c3d798e254bc87245cce57e38edd6ee5d5f1a +Tag = a25b5eb103bac224cad66ec0f100875c +Plaintext = 797dca47597947c057789433309b67 +Ciphertext = 16c408949e5ae1d07c04e3f4dff42e + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 86f15b8b677b7655f358a2c7fd5785bc84d31e079ed859b6af88e198debd36fc +Tag = b598cc6ec2295c586e7ae270a01846d1 +Plaintext = e61f9a663d3a2b50ea2f9475971270 +Ciphertext = 89a658b5fa198d40c153e3b2787d39 + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 4de6bd43c28143ea5d40919cb5330a7e674f5bd8aeb7b178343a2851281c8668 +Tag = 97ff732093f7d0a96b30d8cdfd1bd583 +Plaintext = df990c42a268950677c433555319b3 +Ciphertext = b020ce91654b33165cb84492bc76fa + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = a5c3a480dea1b2a1e3a0ce416148b04f60104217c9d24a5b267b4aa6aa07a4dd +Tag = ad98e32a9156e125ff021ef6951b0c40 +Plaintext = a7e72fb4bec3768594a2f6f5b4379e +Ciphertext = c85eed6779e0d095bfde81325b58d7 + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 51b041f1666c59045d333fe63d43457107e1adad34fcbf965e0d191f3e414776 +Tag = 390f10df08a84c21031626861b201fbd +Plaintext = d3d1550047cf90eceaea7000d8e280 +Ciphertext = bc6897d380ec36fcc19607c7378dc9 + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 22f8a3c9d85b2d53ffd92078d3c94373f855ecd01a8ac521d1abd0f2c7cba9ff +Tag = dd5d840bb8c4348a9a548482e6b93043 +Plaintext = 756412c4ee6416f2f4e0342011cde2 +Ciphertext = 1addd0172947b0e2df9c43e7fea2ab + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = da08b14e1b770b81faaf1e59851df1cba8838cd63bef141340ee378e65fdcbd4 +Tag = 3f0d49927cd6103e3705ba201e8f73c6 +Plaintext = 666e4a4b3f6cf598aa763cdada4109 +Ciphertext = 09d78898f84f5388810a4b1d352e40 + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 2db3ded385ef9c82fd39ea5782d9befe66e8a070066269b2aa7c4bbfac3711c3 +Tag = 2d97f7c2b3b42bf570cce79bf30ccc50 +Plaintext = eb9013a74352b0677a88bd73052477 +Ciphertext = 8429d1748471167751f4cab4ea4b3e + +Cipher = aes-192-ccm +Key = 82d4bc9aac298b09112073277205e1bf42176d1e6339b76c +IV = 70325ef19e581b743095cd5eb1 +AAD = 194c9e1eaa8e376f9c41bf33823efa28ee60a9213438665b7002cf0fcad7e644 +Tag = d3c2a4fc45d014a0c54edab2930a5bdc +Plaintext = e3126400e3c571a4d39b37bc938a22 +Ciphertext = 8caba6d324e6d7b4f8e7407b7ce56b + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 77743b5d83a00d2c8d5f7e10781531b496e09f3bc9295d7ae9799e64668ef8c5 +Tag = 40bce58fd4cd6548df90a0337c842004 +Plaintext = 5051a0b0b6766cd6ea29a672769d40fe +Ciphertext = 0ce5ac8d6b256fb7580bf6acc76426af + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = e883dd42e9ddf7bc64f460ba019c28597587d06e57c3b7242f84d5e7d124ab81 +Tag = 8707b1a4d9ce3def33703e19eaab6dda +Plaintext = b31dfa833b0cda20eaa84d2ecd18f49a +Ciphertext = efa9f6bee65fd941588a1df07ce192cb + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 409401eb49cd96b1aad2525c5124c509766ff86f88b2011c67a1d501d3485e31 +Tag = fd9041ddce37d88e79fba28e385b2327 +Plaintext = 24bc8dc1e2354667b79ba4d7061448ff +Ciphertext = 780881fc3f66450605b9f409b7ed2eae + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 83bf5c063bf1febf71688a832d615e09d6f14badedeaeb6ffbfe343fc7274e78 +Tag = 91d971893543868bd8c69078fc2bdb24 +Plaintext = d41d95a1d2326e12cba636910ddfca53 +Ciphertext = 88a9999c0f616d737984664fbc26ac02 + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 8cdd70524e24318c64d681aa27752d4c86c5348c05c9e48f06ed41594785a6e6 +Tag = 866b23e4c991f4007e56a1ee9265c6cf +Plaintext = e8a4b80e081919f1912542d3136764f2 +Ciphertext = b410b433d54a1a902307120da29e02a3 + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 615985f63571c0f94ffcd4df77326abd41e84f388f061d97573a181da7ee5695 +Tag = 2abbea637996b954027efa9464ced6b9 +Plaintext = 7fca7388058d6d1438b6eee0292131cb +Ciphertext = 237e7fb5d8de6e758a94be3e98d8579a + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 17aa90f2bff0419011b01dee62be31354431cbc89f22332704b096143d4743f4 +Tag = 57bc8d48d82ebefc76f17323c518ecc2 +Plaintext = aa540554ee80dbffa475f702d862d6b6 +Ciphertext = f6e0096933d3d89e1657a7dc699bb0e7 + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 85288b2be612e42335c144fb058a7dcd567c382fbcee3962bd5be4cc7a7000a8 +Tag = 65470c81e487a26cdc26830f2b51bd1c +Plaintext = 6d745581831edba437e70ea89cad217d +Ciphertext = 31c059bc5e4dd8c585c55e762d54472c + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 288f9f52824b54b608dd7226a0a89d43ae8c05107dbae761e1c756911a003b74 +Tag = a3043722be9448c3ef144f2288066f75 +Plaintext = 811a61869c7a6b2aa9ac0fcc523ef784 +Ciphertext = ddae6dbb4129684b1b8e5f12e3c791d5 + +Cipher = aes-192-ccm +Key = 6873f1c6c30975aff6f08470264321130a6e5984ade324e9 +IV = 7c4d2f7cec04361f187f0726d5 +AAD = 51dbaba180d4746edbb3420461919b5b735797bf7dd19f84d80475f5efc2748d +Tag = 49aba95e04e11cf18ddf73773d395c1a +Plaintext = 378a4e39817f308ed1e639f943b694c4 +Ciphertext = 6b3e42045c2c33ef63c46927f24ff295 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 30457e99616f0247f1339b101974ea231904d0ef7bd0d5ee9b57c6c16761a282 +Tag = dc5e53e68c51ee55b276eb3f85d2cf63 +Plaintext = f6dd2c64bf597e63263ccae1c54e0805fe +Ciphertext = ce3031c3a70600e9340b2ddfe56aa72cff + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 42370f115bbd4b31bb99fe82cca273b3c93072f96b2e09bdc6718d926d48db69 +Tag = c6328a7476db2c10ec7bca3f6bd3df42 +Plaintext = f45fee3e086c28a7c590ec0cc05b972664 +Ciphertext = ccb2f3991033562dd7a70b32e07f380f65 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = e2d692c5678124998a7862b8e87276b0a19e293a609103c99583b36305bcb2b0 +Tag = 8080f0d51d3b8841683eff361984f7e4 +Plaintext = 4ad69a8ab433ed8909825c71f6081f64a7 +Ciphertext = 723b872dac6c93031bb5bb4fd62cb04da6 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = b5b38791160959dd2836ec1ad25286c1ba410d7212347a95b5738a3d725bb651 +Tag = c1428ef5d40bc9e363817f219af2ed56 +Plaintext = 3d47071c13f994cb42fb2887e5c6e53a54 +Ciphertext = 05aa1abb0ba6ea4150cccfb9c5e24a1355 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 02691171795a77d1e3bdad513b6fab5b50d1def81bcc1df15012de3433a6aa78 +Tag = fdfb37dfd1236198035c8461b304152b +Plaintext = e8a4b80e081919f1912542d3136764f264 +Ciphertext = d049a5a91046677b8312a5ed3343cbdb65 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 7371d8ae79e628f53ffede174eb068db2318c05e2f6d94ad2233a59369b16db0 +Tag = cefde0e84a3ce0cb702ceb73ca1dd9a5 +Plaintext = 549aa84bb182312dd016e3107f3b1f9c5b +Ciphertext = 6c77b5eca9dd4fa7c221042e5f1fb0b55a + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = bb1e1f51082e470f7245458ec902098e1e41d0ed28efa31be71d21ce86527ff7 +Tag = f8441d46dc5456a587b765e1a820c11c +Plaintext = 31a12ca6d69db2e6e252474d7d59ed6552 +Ciphertext = 094c3101cec2cc6cf065a0735d7d424c53 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 7584f57b49e95bbf5a67153e18b9b8c4722644e8f611613c39cbe8c679aba5b4 +Tag = d0daddcfcc92349ef059149c54a25cd0 +Plaintext = 5bb121e70452a954f420a56aca8cd5c059 +Ciphertext = 635c3c401c0dd7dee6174254eaa87ae958 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 505687182c06e6f4effe7fe03c1f436199a9015380ff21d0b2aa9453cfa10b1d +Tag = 48c1242b89490c6ee69dedc1e91286ee +Plaintext = 5b80d1cf745b14cb71cbc8dfe0bc7c7358 +Ciphertext = 636dcc686c046a4163fc2fe1c098d35a59 + +Cipher = aes-192-ccm +Key = 3cf8da27d5be1af024158985f725fd7a6242cbe0041f2c17 +IV = 07f77f114d7264a122a7e9db4f +AAD = 7ebb051741145a3bad87131553375c6debcbcecee9b79ee451bd1429cbb33fc1 +Tag = a2ddd54e509bca0a45dcf2fd514e1496 +Plaintext = 79ac204a26b9fee1132370c20f8c5bcada +Ciphertext = 41413ded3ee6806b011497fc2fa8f4e3db + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = ea9405d6a46cac9783a7b48ac2e25cc9a3a519c4658b2a8770a37240d41587fb +Tag = 0ca478f40a6fbde01f584d938a1c91bf +Plaintext = 56d18d3e2e496440d0a5c9e1bcb464faf5bc +Ciphertext = 01baba2e0d5b49d600d03a7ed84ee878926c + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = 72340d595f3dbd23b46513f8f2b73b6249328c705e7968084bcb647fe734a967 +Tag = e4646492b6f4cb169383c075756073b6 +Plaintext = 7a76eac44486afdb112fc4aab939e4d1eedb +Ciphertext = 2d1dddd46794824dc15a3735ddc36853890b + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = d5c87c649579da3f632ba95cb0a07c924095e4bdd4e0376e06bb90e07460172e +Tag = f584289f560cbf76606942fe1a92dd63 +Plaintext = 48348c5ec996f7a97ef0ba2cd6885572fe64 +Ciphertext = 1f5fbb4eea84da3fae8549b3b272d9f099b4 + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = ffa6277395d31d5db13034d362228a87610e441c98ca3038e252a9db12bdbcef +Tag = 5964f5f5532d7cddd7207f0e9a6aace9 +Plaintext = d5c58f10e1a03d8a2501d1eaf5fcdfff3ae5 +Ciphertext = 82aeb800c2b2101cf57422759106537d5d35 + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = daf83d02a9bd992ea58c23e7ad18d41796314bae20e864e729f40ccc215454fc +Tag = 90ae047e35aecfc38ffdc07e7d8f5705 +Plaintext = da2a863ab1c58ddde320ecadeecac9c5d2d8 +Ciphertext = 8d41b12a92d7a04b33551f328a304547b508 + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = 21ddad5f550044dc5cb123ade17eeef549c4e0173b216bcc602c1e736764cca8 +Tag = b2bdf539ceaa35015712dd15265ca476 +Plaintext = 4573969afa831c244817230406fe51183091 +Ciphertext = 1218a18ad99131b29862d09b6204dd9a5741 + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = 9228265ae5c3daf1485ff8011738da508bf2a73731396c5d9aa56fc554e0c00b +Tag = 241412124ae20b84c13b0c3671d305c9 +Plaintext = edf5557e15473b747a819398c9ac1459ffdb +Ciphertext = ba9e626e365516e2aaf46007ad5698db980b + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = c0a2ff0de21b3ba961e06015ccd71374856a65a4c57cf8cde0a1643aca8ed868 +Tag = ee9803747bf9fa63412bfc4e10aea89e +Plaintext = e139263478900df806a0f3446bd6600c1aeb +Ciphertext = b65211245b82206ed6d500db0f2cec8e7d3b + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = b54378f031a31cf3985f573829c9ffca14616742e0a7e03b0a2d7f05eff0219e +Tag = 5afdf430b57845dcf622d4f25cdeb2a3 +Plaintext = 660eaff0f113eaa2f5f7ad4b62bb849a3a25 +Ciphertext = 316598e0d201c73425825ed4064108185df5 + +Cipher = aes-192-ccm +Key = b46a3a24c66eb846ca6413c001153dc6998970c12e7acd5a +IV = b79c33c96a0a90030694163e2a +AAD = e67f35c18a9336469eae23040f98f52338ca8d0cab269ac32fe6bc7605d3ea56 +Tag = 7ed4c04c4b4dd585891ecfddeab8cc87 +Plaintext = 0f89897271f5d0349d57399005ea60c0cadc +Ciphertext = 58e2be6252e7fda24d22ca0f6110ec42ad0c + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = b89166f97deb9cc7fdeb63639eeafb145895b307749ec1a293b27115f3aa8232 +Tag = 87ebe35e883cbd53b82f2a4624c03894 +Plaintext = 890d05420d57e3b3d8dbef117fe60c3fa6a095 +Ciphertext = f842ff6662684de8785af275fa2d82d587de06 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 4392c3043287dd096b43b4a37ea7f5dc1d298b0623ccbf4fd650a49569a5b27b +Tag = 07d4824f0a98db2d87365a42ca3b80e1 +Plaintext = 6b425cdcdf8304e7fbb70b2973d55e6940025b +Ciphertext = 1a0da6f8b0bcaabc5b36164df61ed083617cc8 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 9b4fc98fcdcf485205e7054bc9d1e02d0d8584420537e20d3821de2fd6824787 +Tag = 404e631735c544edeeb4c0105c55bf0b +Plaintext = c8bf145fcffbafd6cd1a4c5b6cedfe008aacb2 +Ciphertext = b9f0ee7ba0c4018d6d9b513fe92670eaabd221 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 45622e1472542be2f63f463d253617eafd4f2ad609f9020884905dd5c22fba53 +Tag = c16a4cf37e8e96eed1217d21133e83d1 +Plaintext = 12b5a76faedf6f855e328c2cb87be8aea78c5e +Ciphertext = 63fa5d4bc1e0c1defeb391483db0664486f2cd + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 958689aea3c6cd19020eff9d635ef44ee0793424df38fdf13a238b969d429777 +Tag = 9facf81a636351f6e67d6ec12636ae0b +Plaintext = f0927c3cb0a876d7877466507da8bfa0bd9a16 +Ciphertext = 81dd8618df97d88c27f57b34f863314a9ce485 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = c22911efc36fa739048af0c951ef2449bb3605c52f65120c4d71fe5976026032 +Tag = 7ce73a7e2db69d30441f89a03fd0e84e +Plaintext = d2c5d4e2362f19c99de66da7bd9c495c03d9a1 +Ciphertext = a38a2ec65910b7923d6770c33857c7b622a732 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 799da61e2c10ebb4783f618b8f69da7704a1b2b925cebc228af57d7ceebb9825 +Tag = 8d787a9d06b8533ca96fb1db8aecc8e5 +Plaintext = 1c9d7f5b329ef4d384b8b7955a20f8a3fc15cd +Ciphertext = 6dd2857f5da15a882439aaf1dfeb7649dd6b5e + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 14a8e18afe0b9fe18ddfd754219a7e18ed36f419f8262d91678e10daffb31c81 +Tag = 8ff5f819d552c08054b5ac02063e102a +Plaintext = 3a64414c3588d7c26871d7d054ac6c8420d491 +Ciphertext = 4b2bbb685ab77999c8f0cab4d167e26e01aa02 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 7294a8b4ad97c81969e4a2876a3dc0ee322d554726997dc9ed98c5601985ee5b +Tag = 1cde5af8fada67c47cbb5787a6b2d9c9 +Plaintext = 545dd71bea9967e07a89f84a2027aacd132187 +Ciphertext = 25122d3f85a6c9bbda08e52ea5ec2427325f14 + +Cipher = aes-192-ccm +Key = 7b71045ccef735bd0c5bea3cf3b7e16e58d9c62061a204e0 +IV = 2b9ecfd179242c295fe6c6fa55 +AAD = 99294b22d73805805630fb416d20d4fca67419ab660ff45cd19a3729e81b9f69 +Tag = 7412640b179bd3e8a417dc38462c16e8 +Plaintext = ec1b17b885c018272652453f47fa6e9ed972b9 +Ciphertext = 9d54ed9ceaffb67c86d3585bc231e074f80c2a + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = f799818d91be7bab555a2e39f1f45810a94d07179f94fe1151d95ab963c47611 +Tag = 743f71e15490ca41d245768988719ede +Plaintext = f383bd3e6270876b74abbb5d35e7d4f11d83412c +Ciphertext = 377b5df263c5c74f63603692cbb61ea37b6d686c + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f67e7ea8d7b58d9fc8 +Tag = a9bc8cfaf2a1734a792076618c4b9690 +Plaintext = 615d724ae94a5daf8d27ad5132d507504898f61e +Ciphertext = a5a59286e8ff1d8b9aec209ecc84cd022e76df5e + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 4586f73a1f162b2cdb65f6e798a60b5f48938d40b4612d84c1f39244f14efdce +Tag = c5122df904b052e4d5580fdeddf5297c +Plaintext = 6e923e1f404002aa5cf8f8aaf1b9772da425e21c +Ciphertext = aa6aded341f5428e4b3375650fe8bd7fc2cbcb5c + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 9f7ae892e5662803408d4d062265846441a43c1fa202da59f640ae722a692671 +Tag = e0ba1bb1af18e15ade3316c21d6b41fb +Plaintext = 68115771505daa18bb3ce90054bfb7d077e1f37c +Ciphertext = ace9b7bd51e8ea3cacf764cfaaee7d82110fda3c + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 1f0769a7ae82bd985661e031c4a892c15d3ef37bdcfb45243d02f40fdb51d34b +Tag = dc71e342fbc44289ef7e53e28edf3839 +Plaintext = 681fd2a324b3fea4cfebed567ae4546ba373c8f1 +Ciphertext = ace7326f2506be80d820609984b59e39c59de1b1 + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = bf957ef5ab2805e58ea752da5793f7f23d98fce1b2b67738929e5de8a15f9801 +Tag = ced1fb4a2a3e349aa590aabbfc3d13bc +Plaintext = a7b9d2d069941e8b943706a02d2847ea713bb103 +Ciphertext = 6341321c68215eaf83fc8b6fd3798db817d59843 + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 833264c1bebb597043b4158087cb651960915d9023189c9509c0d2aed84e7fe4 +Tag = 5079f6c2739e2b789b6e3d3c60389374 +Plaintext = 9b946e8198ce69d2173e970f4e0c103a47ee4160 +Ciphertext = 5f6c8e4d997b29f600f51ac0b05dda6821006820 + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 94c8414cbbec52e2d73bb8f02ef687c91432495c0c744666317d02e6d46706d2 +Tag = 2a02f287db7217148317d897f65f6a0c +Plaintext = 81ac4618f3db6bcf9bbf67220b7671be4bb4f8a2 +Ciphertext = 4554a6d4f26e2beb8c74eaedf527bbec2d5ad1e2 + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = fced1131dab3dabdc1a16d3409fa09a90ffe02f0e2c814a63f77f771c08c3389 +Tag = 362df9f8b41b1dd4821f8f14e9e633d7 +Plaintext = 90851933d4d3257137984cdb9cba2ca737322dac +Ciphertext = 547df9ffd56665552053c11462ebe6f551dc04ec + +Cipher = aes-192-ccm +Key = dc7c67715f2709e150cceff020aaacf88a1e7568191acbcf +IV = da56ea046990c70fa216e5e6c4 +AAD = 495dfcf91f4735ab35c6bc4deef8468bd988e4099cd291a32b4707f93e13d82b +Tag = f61ffb51e56497ca9f39c6665fcbdfa8 +Plaintext = c14ce6d57f0fe7367331c9fe159ae1fb8f1ccb2c +Ciphertext = 05b406197ebaa71264fa4431ebcb2ba9e9f2e26c + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = dbe3e82e49624d968f5463ceb8af189fb3ad8b3b4122142b110d848a286dae71 +Tag = 6f68a03a11cf00d58f062a7b36465d13 +Plaintext = 81ad3f386bedcbf656ff535c63580d1f87e3c72326 +Ciphertext = 9f6028153e06d14d30b862a99a35413413c04a49dc + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = d9acfd611e5bbb08c5d05d56791b8aebabf8d69734ec89153c91a1f65b2e1adb +Tag = ca1fb470b666523a19f83481f16481ed +Plaintext = 35f6bb3f6a388f3a5a039b0a495b676d0b928aeb19 +Ciphertext = 2b3bac123fd395813c44aaffb0362b469fb10781e3 + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 6003b771afe4e99e1ef1ed4a31b10540d95f4ac49885f0c8e5cdcb63d213127e +Tag = 53cb05bfcd64da2b45c2e9a89a380b49 +Plaintext = 6aa7e3802b5a29d4f9ca88eb59f94af783d1054466 +Ciphertext = 746af4ad7eb1336f9f8db91ea09406dc17f2882e9c + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = c371644275a6290821e7d308714bec2bf62d36c30f7fa77a0d60b28894f1c82a +Tag = 48f70fbc680cf7092b3dd90b943fc6e5 +Plaintext = 13332b67ba5ba18137c306bd860dc3eb0a9a0b871a +Ciphertext = 0dfe3c4aefb0bb3a518437487f608fc09eb986ede0 + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 8eceb15300ec4220510ed5b7deb3429de6ae5f618e1c222c28990a9ab4b4bac8 +Tag = e386f33c0b8da8d0c5934e617dd618e5 +Plaintext = 05981dc26a1db2d8e2c3d85ea9a4d1dc3432d9edc4 +Ciphertext = 1b550aef3ff6a8638484e9ab50c99df7a01154873e + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 96d1cf3690c48c77a155ce13e67bbd62e6f03d88c893c1f7c30a6435d5ab36e0 +Tag = 3d2db1360fb1121893f4d197731bce4f +Plaintext = 60249343a8cd4d33c6edc583ea7e5c221ef3064787 +Ciphertext = 7ee9846efd265788a0aaf476131310098ad08b2d7d + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 379bbc9f919dc2a8687f2a86cc9c3291804240a9b566c58519956848102e6155 +Tag = 335ce1bfafc0948f2523e75f2aad86f9 +Plaintext = 79003a8d3d20d412f468f11712cec4d37cee847440 +Ciphertext = 67cd2da068cbcea9922fc0e2eba388f8e8cd091eba + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 9bff9c9a8f94cd77e7016748da31f86d1b9c68465cbf954511c93a4776981524 +Tag = 7dc265e281307f0f4c38cddc556ac725 +Plaintext = 7d078a8b200514a00628756250d410f7a0f8a769e6 +Ciphertext = 63ca9da675ee0e1b606f4497a9b95cdc34db2a031c + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = 25125a4668c31dc2e8a68b6c4c95ad7cf9322852e371b415a357d09acb01b587 +Tag = 61c78a2f85a447c3e62b6197d65b9065 +Plaintext = d9b0eaaff786165f882f41a98dbc0c355b3a1aaf40 +Ciphertext = c77dfd82a26d0ce4ee68705c74d1401ecf1997c5ba + +Cipher = aes-192-ccm +Key = f41e369a1599627e76983e9a4fc2e963dab4960b09ebe390 +IV = 68ef8285b90f28bcd3cb1bacea +AAD = ad34d8f0902a5b79fb145b8206bb4d3b77e0bd8ae2d0964815389eacb33b4007 +Tag = 0312d067c08a9b4400e1df8bb7ed671a +Plaintext = 17b517ef577f588da374340d2522cc9ea642c8d8ae +Ciphertext = 097800c202944236c53305f8dc4f80b5326145b254 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 2870bd9a26c510e9a256920899bbc77a4eb9b53f927045a943d5ed6b13638cf3 +Tag = 2fe9afafc2fccd98ccf63b0fdec30eac +Plaintext = 53911a67b65738f87fc7c20d6db8044bde1af95838d1 +Ciphertext = 70cf37d4b6f7e707376b1574ce17c040b5143da47abb + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 611032a95ee87f89ad6be7c0fed8bd245c5f81076087b3bda4cde5587b8d14b6 +Tag = 102dfd8c231d6a355f079c213ce6858e +Plaintext = 46917e38b8a542296d290d065b0aa7c8aaa38950c386 +Ciphertext = 65cf538bb8059dd62585da7ff8a563c3c1ad4dac81ec + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 2e7ea26d1cceaca3b7862a7a8469e366b52ec27ca127e3317222ee651d8da4a0 +Tag = 6df11febe34dd568da12c374674b9ac4 +Plaintext = b527828c89f674dc6f024f8cdd80c694bb3ebd57b2d9 +Ciphertext = 9679af3f8956ab2327ae98f57e2f029fd03079abf0b3 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 0bf4413010daec585de34142224d1cad3072f9720f91ac664ad152820e838741 +Tag = b2916540d9439b832aa44236a7e187ac +Plaintext = 78230f73f9c0150f630eca4cd679818551d449db82e6 +Ciphertext = 5b7d22c0f960caf02ba21d3575d6458e3ada8d27c08c + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 2e7cae3306582eb5bad148247aa6c6ec943f8748e84b8a069ca9488b11844716 +Tag = 0d0768a18dead55700901408aa3f901a +Plaintext = 847bb12e0e56fa07a086eeda5907ae148148fa4107d2 +Ciphertext = a7259c9d0ef625f8e82a39a3faa86a1fea463ebd45b8 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = 63036dc4ad13aee5dc1832e867f7538da108188fec7b08262af440d07579c451 +Tag = 5f2073605d2a441805b6ff89d8beb68c +Plaintext = ec59e208c4bb429a371f1b3ffdf07fce5dea8a05f0ce +Ciphertext = cf07cfbbc41b9d657fb3cc465e5fbbc536e44ef9b2a4 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = f9ec5ce4b63156d57e451eb67ab6d7a59cc397f43f6d26dc07d1036f0fb4a8cf +Tag = dcabef6907811c6b7df4e74c7a63d83b +Plaintext = fb12d94bd21b5748b23132a03065c78dae65a0bd2cfb +Ciphertext = d84cf4f8d2bb88b7fa9de5d993ca0386c56b64416e91 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = e13a204e16f42bbf4716e95f1cb7e125ffac66a87f591c8ef2c7b8485ff707fd +Tag = 26aa8aa37e858cd990f5593d9ef35f2a +Plaintext = 239fa31d4a65de0318bfc5b60a06d706c129dcf255ac +Ciphertext = 00c18eae4ac501fc501312cfa9a9130daa27180e17c6 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = c4591c3ad984a1e189c526b719212f8248289eeb277827272b8205d78191eb2d +Tag = d81e424d6b4528901ae46fb35f8b3106 +Plaintext = 57caadbb1a56cc5b8a5cf9584552e17e7af9542ba13e +Ciphertext = 749480081af613a4c2f02e21e6fd257511f790d7e354 + +Cipher = aes-192-ccm +Key = 3289e59e3a7b29bf4a309afc253030bba4b9bdd64f0722f9 +IV = 30259ce106e9bd7a8bacbaf212 +AAD = cf4795bc7f43c30d3c3a8fd1b8a9d77d69bf59eb8b59d0f464315f40cb52335d +Tag = f25a4bfda35e1390f3f16f638dcd4047 +Plaintext = a68c74e05f0a44d4a0372c0e5915b83d8e6729efacbb +Ciphertext = 85d259535faa9b2be89bfb77faba7c36e569ed13eed1 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = e9699b20b0574fce8b5cbc4ef792eb96e2c1cce36b1b1f06ea2a95fe300633cc +Tag = a39c3b429a1f922fac0b59e29a122e43 +Plaintext = 8d98c580fb366f330dbfda20f91d99a0878b47efd14c6d +Ciphertext = 579cdf9da62a2df471e03450516adb4ce99ae0f70b1776 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = bd94c9ad6253c25dc417f87b6e52e03621ccf4b3bff5b402677aeb51e216335f +Tag = 67bf538e40f9366adf8758968f06ce8a +Plaintext = 7391ba60fabe2c632bbaca16af9a235b2c7dae61691c0b +Ciphertext = a995a07da7a26ea457e5246607ed61b7426c0979b34710 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 4f263cda4a50b0e5379ec2fb546b326a07943527c1d175c029455a917753883b +Tag = 64a1199251b54f419720a30de83161de +Plaintext = 7e1e93a6ca35a2c0e4f08fdb2e7ee22b9f486f0ab919e2 +Ciphertext = a41a89bb9729e00798af61ab8609a0c7f159c8126342f9 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 4d43702be4f0530319555d7f1a3356160f6cae48051f12e22a153d7e405c1149 +Tag = b417e4cceb8dcf45ef33cc0007755bbc +Plaintext = f94ff053c7413f34f96eae41fd1ac101151069af5a9428 +Ciphertext = 234bea4e9a5d7df385314031556d83ed7b01ceb780cf33 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = f4d7978fad36223623ccb5bb18a7373cba8a6e3b1c921259e319266042db8887 +Tag = d35aed57f49dcfecf248cf9d246ac024 +Plaintext = ba0716355fffb8ef947d2a15eb58375a1ff1084c566990 +Ciphertext = 60030c2802e3fa28e822c465432f75b671e0af548c328b + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 12e4fe727b1f27a619dd67bb976ddc2b18b2ef8b7184290d9553494a500d933e +Tag = 97cda0e04d2ff65c2e06a8276bdf6f97 +Plaintext = 872940780a94680a791c937994ceafd2c8b7a22b5f4927 +Ciphertext = 5d2d5a6557882acd05437d093cb9ed3ea6a6053385123c + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 2c16724296ff85e079627be3053ea95adf35722c21886baba343bd6c79b5cb57 +Tag = 3494dd2ee0a0fe5bfc9f69234c8142ed +Plaintext = d71864877f2578db092daba2d6a1f9f4698a9c356c7830 +Ciphertext = 0d1c7e9a22393a1c757245d27ed6bb18079b3b2db6232b + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = cefc4f2fb796c2502329ca3d8f8af3200dd9edb8f164e15acec90536a15b6fdc +Tag = 9008ead8e923997508eebf5e776198dc +Plaintext = cda681aa3109ebf5f21ee3a849098ea3a551e844fae4b4 +Ciphertext = 17a29bb76c15a9328e410dd8e17ecc4fcb404f5c20bfaf + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 94fc7eb8febb832097ba6eecd2697da91b5a8a1f2248f67a7659e0ac55a09a0d +Tag = f136cc6ea1b0fdb554e0803053875b89 +Plaintext = d4f8d262870b5000a40b8fcce88f55c65c4d12e729975e +Ciphertext = 0efcc87fda1712c7d85461bc40f8172a325cb5fff3cc45 + +Cipher = aes-192-ccm +Key = 40f1aff2e44d05f12126097a0f07ac0359ba1a609356a4e6 +IV = 0df3fc6396f851785fca9aa5ff +AAD = 459085184094e302b2e921cc04270b676e75bbcf0e4b53ed387df2bd0e75e0ac +Tag = 5da8ceccae093888daaf92c95817fc3d +Plaintext = 732f211061c0a32c6ad124c58418d560ef5eab2602314c +Ciphertext = a92b3b0d3cdce1eb168ecab52c6f978c814f0c3ed86a57 + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 3bdfd7f18d2b6d0804d779f0679aaa2d7d32978c2df8015ae4b758d337be81dd +Tag = b7e17f235bd660e7e17b2c65320e9fd4 +Plaintext = 4eaf9384cad976f65f98042d561d760b5a787330dc658f6c +Ciphertext = 635530cab14e3d0a135bb6eebb5829412676e6dd4995f99c + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 9de45b7e30bb67e88735b8fb7729d6f3de46c78921b228bad8f17cc9c709c387 +Tag = 9f40890c7d650afccda40fb2a4cd603b +Plaintext = 59bee7d18fd4ba573f3e4f61076f5b9f6a3487e47d98c729 +Ciphertext = 7444449ff443f1ab73fdfda2ea2a04d5163a1209e868b1d9 + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 783477f981ef0551b5e7a714b640bbb38316c53756c96e30c898cdee3b72e6f4 +Tag = 50236cf1a12a9e3542a4051788f9775a +Plaintext = 4e7f3c86d846ff351db81dbe1d2e9ed73ec0450587ae681b +Ciphertext = 63859fc8a3d1b4c9517baf7df06bc19d42ced0e8125e1eeb + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 2851d40243512a43f70f9c25e9b18c122a1433f05c61e65017e197e88b129e43 +Tag = b1bbad9861192df356c6678b2f561ea3 +Plaintext = 2db7cb2739c839383b64c2c93c7d5c906d984756c3dedaa9 +Ciphertext = 004d6869425f72c477a7700ad13803da1196d2bb562eac59 + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 1cfa2d62cc1f6313fb0c6eb21803e09cdf61ee3ddb15192529560e5d8096cafb +Tag = 1da4211d4c28d2d91568117fc99fd911 +Plaintext = 2f2b82497c78369890809460d80a16be4f3330e8a0089165 +Ciphertext = 02d1210707ef7d64dc4326a3354f49f4333da50535f8e795 + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 5a14b556156191b2704936f64df0bf1dd2bd8d587418f4f85472338fcf86aa52 +Tag = da99be0e054bb881a25a74b547d3ed5e +Plaintext = 7cfefca725da1b6bb5d9545e3e50f5a624a8160bdb0e7d4e +Ciphertext = 51045fe95e4d5097f91ae69dd315aaec58a683e64efe0bbe + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 148de640f3c11591a6f8c5c48632c5fb79d3b7e1cef9159c680d71fd1f9801fa +Tag = 4c1fedb47fa30ff2ead6bf382431b2de +Plaintext = 5205165c4e9612974dc92f60d1e328d68aa9466e27dbd499 +Ciphertext = 7fffb5123501596b010a9da33ca6779cf6a7d383b22ba269 + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = f852e38703097cc37c589b7860dbc333e091411462d5576dc9909a8cf6ac99d4 +Tag = 338762a4e4299615c67130a28b56a383 +Plaintext = f968f2833427abbc9fe1cab7e7a3f905a3b23a35802029ff +Ciphertext = d49251cd4fb0e040d32278740ae6a64fdfbcafd815d05f0f + +Cipher = aes-192-ccm +Key = 91f9d636a071c3aad1743137e0644a73de9e47bd76acd919 +IV = 1bf491ac320d660eb2dd45c6c3 +AAD = 43df03a0e23c7ad0d13485150ca224c0b3f39d4e5f2d718db6308e003d3dc683 +Tag = 9dbdf61387294812f483aad76d48d899 +Plaintext = 67da6ca42655188af0b8e389152b2a1b6e2c3ed88926afa5 +Ciphertext = 4a20cfea5dc25376bc7b514af86e75511222ab351cd6d955 + + +Title = NIST CCM 256 Variable Plaintext Tests + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = b4f8326944a45d95f91887c2a6ac36b60eea5edef84c1c358146a666b6878335 +Tag = ca482c674b599046cc7d7ee0d00eec1e +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 36c17fd901169e5b144fdb2c4bea8cd65ad8acf7b4d3dd39acf2ad83da7b1971 +Tag = 67747defe5da5fecc00b9bf3b249f434 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 9a37c654ab8e5a0c6bdfff9793457197d206ed207d768cbc8318cfb39f077b89 +Tag = c57ef5d0faf49149c311707493a4cfd4 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 5ab80169184541393a6975f442ee583cd432d71a6d1568fa51159df7c5b8f959 +Tag = bc2fb5571a7563bb90689a229d2f63a7 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = c78a22a667aafab0c94047e03837d51b11490693d5c57ea27b901ff80b6a38f9 +Tag = 428888c6420c56806f465b415a66e65a +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = e11e30cbf63623816379f578788b0c8e6b59ee3c9c50aa6e1dcd749172d48fed +Tag = 9f1b7520025e1075731adc946b80121d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 05716168829276ff7ab23b7dd373db361e6d9e1f11d0028d374a0d3fe62be19f +Tag = bd36b053b6a90f19e3b6622cba93105d +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 3e915389639435629fcc01e1b7022d3574e2848e9151261ad801d03387425dd7 +Tag = 458595a3413b965b189de46703760aa0 +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 2f496be73a9a5d9db5927e622e166c6ec946150687b21c51c8ca7e680f9775ac +Tag = 8b259b84a6ee5669e175affca8ba3b1a +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = c6c14c655e52c8a4c7e8d54e974d698e1f21ee3ba717a0adfa6136d02668c476 +IV = 291e91b19de518cd7806de44f6 +AAD = 0a8725bd8c8eab9ed52ca47835837b9f00a6c8d834ab17105b01eb4eb30402e7 +Tag = c5f35fdf2b63e77a18d154f0ddcfedbf +Plaintext = +Ciphertext = + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 080f82469505118842e5fa70df5323de175a37609904ee5e76288f94ca84b3c5 +Tag = f24e87a11a95374d4c190945bf08ef2f +Plaintext = 1a +Ciphertext = a5 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = f6cfb81373f1cbb0574dda514747d0099635b48cb809c6f1fa30cbb671baa505 +Tag = d43c5f39be92778fdce3c832d2d3a019 +Plaintext = 40 +Ciphertext = ff + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 5a88b14bada16b513d4aa349b11ce4a77d4cda6f6322ff4939ad77d8ecb63748 +Tag = 753b7b661f1aad57c24c889b1c4fe513 +Plaintext = 41 +Ciphertext = fe + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = a92b95b997cf9efded9ff5e1bff2e49d32e65f6283552ded4b05485b011f853f +Tag = 1c5ac66e89bf2769ef5f38a3f1738b24 +Plaintext = 06 +Ciphertext = b9 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = a206a1eb70a9d24bb5e72f314e7d91de074f59055653bdd24aab5f2bbe112436 +Tag = 3fe64379cea1a8ae3627418dd3e489a2 +Plaintext = c8 +Ciphertext = 77 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = d3029f384fd7859c287e38c61a9475d5ddbfd64af93746b1dc86b8842a8c194c +Tag = abc529442ff93005551b7689bcb748f7 +Plaintext = e2 +Ciphertext = 5d + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 51ca3d3b70b5e354451a5177d7acfd8e7b44eae55e29d88b5e8eb8fc1e5c62fc +Tag = ee68e416617ac974b3d1af7320cd51f6 +Plaintext = 1a +Ciphertext = a5 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 8c6c6791f1ac957b18bf008e260a0af4a5b7bfdb1e0008d6eaaa227f45cf4f62 +Tag = 43883d93d7066991e0fac453400b4fbf +Plaintext = dd +Ciphertext = 62 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = b0a1af969a95025385b251afd1e89f353426ed6e5d71019cd73366aa31d5b464 +Tag = b940d416f3435812f9d1b18f441b7721 +Plaintext = 4c +Ciphertext = f3 + +Cipher = aes-256-ccm +Key = cc49d4a397887cb57bc92c8a8c26a7aac205c653ef4011c1f48390ad35f5df14 +IV = 6df8c5c28d1728975a0b766cd7 +AAD = 7e72b2ca698a18cb0bf625f5daddb0d40643009db938340a9e4fe164a052fee1 +Tag = 1d27e9a32feea28a6a7e7da2d27e1cc4 +Plaintext = 88 +Ciphertext = 37 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = b5c6e8313b9c68e6bb84bffd65fa4108d243f580eab99bb80563ed1050c8266b +Tag = c3152e43d9efea26e16c1d1793e2a8c4 +Plaintext = be80 +Ciphertext = ecac + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 38e5032c5949c2668191ef1af5bb17eddc28abdb4e5bb41eaffec2523b2525d6 +Tag = d06bf4b50ccce0b2acfd16ce90a8854d +Plaintext = 82c9 +Ciphertext = d0e5 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 0b50f5173249fb7118f80d25874d6745d88e4ce265fa0dd141ad67ae26c31122 +Tag = 8d784f486c1dc4a2bafd5b02ca1e1c05 +Plaintext = 8239 +Ciphertext = d015 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 0296743a3125b103a2b2a78a109e825ea10834bd684215ab2e85cc4172e37348 +Tag = a3377002a48f9fe306d157358e6df37d +Plaintext = 16c1 +Ciphertext = 44ed + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = a94e64becb803e211785ba51db7f3db042fbf44a7a821509156a6828b0f207e9 +Tag = f6c09bf1dcb1c82bd98c6e2c13a8d7a5 +Plaintext = 2801 +Ciphertext = 7a2d + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 105358cc17b12107e023a23d57b44c66a2c58d8db05100311575e1ea152fc350 +Tag = 2ea363c0d8864363056467570959ba03 +Plaintext = 65e7 +Ciphertext = 37cb + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 669f9a63cf638a202dca1965c4116273249813ce0b39703887d89bdf5b3b12d6 +Tag = 6519377e6d0252b5f80cdf3d0253eccf +Plaintext = 819d +Ciphertext = d3b1 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = e288590a3eba28ac6847a50b0294ab6bd0a548716ff5102c44a5b656b2d9ddd6 +Tag = 9a4dee6ca2cde473f08f76f779856c3c +Plaintext = 761e +Ciphertext = 2432 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 5b222aae3c7786c3b9021ba672f9136190ec931cf055f84c85706127f74c6d5b +Tag = 9e65c0f01e644e74092253b470cd5511 +Plaintext = 56de +Ciphertext = 04f2 + +Cipher = aes-256-ccm +Key = 36b0175379e7ae19c277fe656a2252a82796309be0f0d4e1c07fdde88aca4510 +IV = 021bd8b551947be4c18cf1a455 +AAD = 2082f96c7e36b204ad076d8b2f796cccf5cbc80b8384b53a504e07706b07f596 +Tag = 809fa107f379957b52ac29fe0bc8a1e2 +Plaintext = b275 +Ciphertext = e059 + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 887486fff7922768186363ef17eb78e5cf2fab8f47a4eb327de8b16d63b02acb +Tag = 3f65d6be431e79700378049ac06f2599 +Plaintext = db457c +Ciphertext = 54473c + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 0683c20e82d3c66787cb047f0b1eb1c58cdde9fb99ee4e4494bbf27eb62777d1 +Tag = 3b186edc15c22ba24e470eb5a072da9f +Plaintext = 62a6c5 +Ciphertext = eda485 + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 413074619b598f8bed34cab51ddf59941861ba0169ebe7570a5ed01d790c08e5 +Tag = 52a1fb5a58bd51931230c1a7dfb1a8c1 +Plaintext = cc67bc +Ciphertext = 4365fc + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 2d65a5175c29a095dc082dab9cfcf4b895efbfa715c57614589d4db159543ce9 +Tag = 7d3810f59176cb108c7e969da51d4d79 +Plaintext = 33800b +Ciphertext = bc824b + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 6a831b6059456be98e6fce608d8c71cb8efb04a96b45c2dfbdaeabf5420a1482 +Tag = 46ffea832595c9c86e6517215541ddbd +Plaintext = b2c826 +Ciphertext = 3dca66 + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 3a04a01160402bf36f33337c340883597207972728c5014213980cd7744e9e41 +Tag = e89a6725f0fc35622d89d2f3e34be90a +Plaintext = d7e620 +Ciphertext = 58e460 + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 64d8bd3c646f76dc6ce89defd40777fe17316729e22ba90f6a2443ee03f6390b +Tag = b1bd7ad5d81686aeb44caa6025d488bd +Plaintext = 795af4 +Ciphertext = f658b4 + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 7bef8d35616108922aab78936967204980b8a4945b31602f5ef2feec9b144841 +Tag = 0553c801f37c2b6f82861a3cd68a75e3 +Plaintext = 66efcd +Ciphertext = e9ed8d + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 92f7dc22dcbbe6420aca303bd586e5a24f4c3ed923a6ebe01ec1b66eee216341 +Tag = e3eeb8ea6c08b466baf246b3667feb3f +Plaintext = 78b00d +Ciphertext = f7b24d + +Cipher = aes-256-ccm +Key = ddb739acda6c56ec9aefc4f4cbc258587f443da4e76ddfa85dbe0813a8784944 +IV = 0bddf342121b82f906368b0d7b +AAD = 71bf573cf63b0022d8143780fc2d9c7dbd0505ac31e9dce0ad68c2428b0878a0 +Tag = 1db811640c533794bfec6eeb977233ec +Plaintext = 9dd5e1 +Ciphertext = 12d7a1 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = fffb40b0d18cb23018aac109bf62d849adca42629d8a9ad1299b83fe274f9a63 +Tag = ab21dfdcfe95bd83592fb6b4168d9a23 +Plaintext = 87294078 +Ciphertext = 2bc22735 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 75c3b3059e59032067e9cd94d872e66f168e503bcf46bc78d82a4d4a15a29f6e +Tag = b5de3331078aa13bd3742b59df4f661a +Plaintext = 0f28ee1c +Ciphertext = a3c38951 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 8fb9569f18a256aff71601d8412d22863e5a6e6f639214d180b095fa3b18d60e +Tag = e52afe7326a12a9aaf22255a38d4bd0d +Plaintext = d41c9c87 +Ciphertext = 78f7fbca + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 8b62d9adf6819c46c870df8a1486f0a329672f7d137bb7d8659f419c361a466c +Tag = 7543692a72f0d599de48b5e5f5a9413f +Plaintext = 046bc0d8 +Ciphertext = a880a795 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = fd98f8f39dfa46ea5926e0ffacbabbe8c34205aade08aa0df82e1d4eaaf95515 +Tag = 30fc357f5482b9004d466bf858586acb +Plaintext = 39bd4db8 +Ciphertext = 95562af5 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 09bf4f77a9883733590a3cc7ee97f3c9b70f4db255620e88cd5080badc73684c +Tag = a9e8db046fdd548b52d40375c1e9a448 +Plaintext = b43cdd3a +Ciphertext = 18d7ba77 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 40326d765e0f6cf4b4deccb128bebf65a7b3c3e5bcf1d58f6158e1e9153b7e85 +Tag = 4efbdd4ad8d3e863172d9372fca07c20 +Plaintext = e0052e9b +Ciphertext = 4cee49d6 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = aa5ae6dcdc21b5446489bdabf5c6747bdf3bbfdb3de2c03170efefe5ccb06d69 +Tag = 95bd661b32bc18025808f8b4035acad6 +Plaintext = 696825f6 +Ciphertext = c58342bb + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = d3d34f140a856e55b29471fde4c0e5f7306b76d03faab26db79c10f95ffb3122 +Tag = ac05b072264e31a4b2801a6d790512d7 +Plaintext = 7eb07739 +Ciphertext = d25b1074 + +Cipher = aes-256-ccm +Key = 62b82637e567ad27c3066d533ed76e314522ac5c53851a8c958ce6c64b82ffd0 +IV = 5bc2896d8b81999546f88232ab +AAD = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671194646e0b0136432 +Tag = c00514d260e1d211de361c254369e93a +Plaintext = 9cad70b1 +Ciphertext = 304617fc + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 574931ae4b24bdf7e9217eca6ce2a07287999e529f6e106e3721c42dacf00f5d +Tag = 9c66e1a43103d9a18f5fba5fab83f994 +Plaintext = 3e8c6d1b12 +Ciphertext = 45f3795fcf + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 99cd9d15630a55e166114f04093bd1bb6dbb94ecaad126fe5c408dee5f012d9f +Tag = 6f3cd579294f706213ed0f0bf32f00c5 +Plaintext = 76fc98ec66 +Ciphertext = 0d838ca8bb + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 1516fdf7a7a99f3c9acc7fff686203dec794c3e52272985449ddf5a268a47bc3 +Tag = 7d38e026f706c9273dbcb6dc982751d0 +Plaintext = 6564c247cc +Ciphertext = 1e1bd60311 + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 0c9c35be98591bf6737fc8d5624dcdba1a3523c6029013363b9153f0de77725b +Tag = c3e46166767c6ad2aeffb347168b1b55 +Plaintext = c11b9c9d76 +Ciphertext = ba6488d9ab + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = e74afe3ba960e6409dba78ecb9457e2a4ce2e09792b1d2e3858f4c79f7ddba62 +Tag = 33a7dca78bcbf4d75d651ee5fadff31b +Plaintext = 45a4e0d7dd +Ciphertext = 3edbf49300 + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 96cbe9cd193513599c81f5a520fabaff51ee8cbdb81063c8311b1a57a0b8c8fd +Tag = 11585167c83105ee16828a574c84ac86 +Plaintext = e5861b2327 +Ciphertext = 9ef90f67fa + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 2e7ea84da4bc4d7cfb463e3f2c8647057afff3fbececa1d20024dac29e41e2cf +Tag = ffaba456f78e431f4baa5665f14e1845 +Plaintext = f5b5bcc38e +Ciphertext = 8ecaa88753 + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = be125386f5be9532e36786d2e4011f1149abd227b9841150d1c00f7d0efbca4a +Tag = 34714731f9503993df357954ecb19cd3 +Plaintext = b6cc89c75d +Ciphertext = cdb39d8380 + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 3fa8628594b2645bc35530203dca640838037daeaf9cf8acaa0fb76abf27a733 +Tag = 6c1b008b7572752f04362b2bfdc296bb +Plaintext = 3802f2aa9e +Ciphertext = 437de6ee43 + +Cipher = aes-256-ccm +Key = bc29a16e19cfbe32bf4948e8e4484159bc819b7eec504e4441a1a98ca210e576 +IV = 4f18bcc8ee0bbb80de30a9e086 +AAD = 642ae3466661ce1f51783deece86c38e986b8c0adea9e410e976f8a2fe0fe10f +Tag = a3f7c3c29dc312c1f51a675400500e32 +Plaintext = e082b8741c +Ciphertext = 9bfdac30c1 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = a66c980f6621e03ff93b55d5a148615c4ad36d6cbdd0b22b173b4b1479fb8ff7 +Tag = b14e0e659a6305b4aeffae82f8a66c94 +Plaintext = 1b62ad19dcac +Ciphertext = 4ad1fcf57c12 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = c13f65bd491cb172a0f7bbc4a056c579484b62695e90383358d605307d5be0a5 +Tag = 79fa7932d365e2da9b05c00a7318384a +Plaintext = 3ef0faaa9b79 +Ciphertext = 6f43ab463bc7 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = 59dcca8fc50740831f8f259eb55d4db11f763a83187d93758d78d166f4d73cd5 +Tag = 813229912137b7a4945dc07cea24a974 +Plaintext = 1a98ddbf35f1 +Ciphertext = 4b2b8c53954f + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = 578509ca4f57aadb78056794bf18b0714090970db786e2e838105e672165761c +Tag = 6e045f19f737a24c8addf832ed3f7a42 +Plaintext = f46a7b1c28ea +Ciphertext = a5d92af08854 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = 696c0c6427273cf06be79f2206c43af9cbda0b884efaf04deba0c4bf0a25cb26 +Tag = daae8a7dcd3b0fbb59438f88743ec6e8 +Plaintext = e98f5e5a20d0 +Ciphertext = b83c0fb6806e + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = 95a66b60249ed086eecaeb9bc449afcee9de212619e87516ca947351b25120df +Tag = d9cb636ca6543c4e35964f47341f2814 +Plaintext = 06319c0480e2 +Ciphertext = 5782cde8205c + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = 2b411bea57b51d10a4d2fb17ef0f204aa53cf112e1130c21d411cdf16a84176d +Tag = ec82eadf4eb1f055da1a92a82052ab8b +Plaintext = f4c723433b7c +Ciphertext = a57472af9bc2 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = ff3bff3a26fc5a91252d795f7e1b06f352314eb676bff50dc9fbe881c446941e +Tag = 01b10a7ae24a4ca2bfb07ea2a3b31a97 +Plaintext = 02f809b01ce3 +Ciphertext = 534b585cbc5d + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = f6be4aad63d33a96c0b5e9c4be62323c9e2308b29961fff980ba0dbda0549274 +Tag = 231323a4b88af5d7d0b07c0e73ddce1d +Plaintext = 2b6004823a29 +Ciphertext = 7ad3556e9a97 + +Cipher = aes-256-ccm +Key = 5f4b4f97b6aa48adb3336c451aac377fde4adf47897fd9ccdf139f33be76b18c +IV = 7a76eac44486afdb112fc4aab9 +AAD = c3706a28d7420b41e072dcecc06b6b13116cca110bde8faea8e51f5107352d71 +Tag = db30eb33d2ede33abbe22f37704fe68b +Plaintext = 236c60cba4fa +Ciphertext = 72df31270444 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = e97175c23c5b47da8ce67811c6d60a7499b3b7e1347ad860519285b67201fe38 +Tag = 2fa325bafc176a07c31e6cc0a852d288 +Plaintext = d48daa2919348d +Ciphertext = eb32ab153a8e09 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = ba45e1859efae362a44a0116a14e488ba369da6c76c3913b6df8e69e5e1111fa +Tag = a24840f4f40a7963becde3a85968b29c +Plaintext = f95b716bfe3475 +Ciphertext = c6e47057dd8ef1 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = efcaa6f6cda3036b0b52ff9f36bc38ca74049c32c6b7cdfb8a46ca4144bacd64 +Tag = 8f2a4a5c276727e0a210fc2efb5aeabe +Plaintext = 4862e3677083f0 +Ciphertext = 77dde25b533974 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = 360bcb407603fe92f856bf677625b9882521e6dae8f35fdfc3dc737f9398f609 +Tag = 051734fc31232ab2ab63474020ab4dc9 +Plaintext = 7f1ca0728f6d65 +Ciphertext = 40a3a14eacd7e1 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = f12ee9d37946cfd88516cbe4a046f08c9bbba76a3973ff1e2cb14493405bd384 +Tag = c715244f307609ffa253e4e3659b0ece +Plaintext = 67478ef73290fa +Ciphertext = 58f88fcb112a7e + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = 5833dde0c577b2be4eb4b3d01d7b0042fa8441ad7043ea462bbbbd56a59790ea +Tag = f11047da612d2987fa2e50ada5ae7f9d +Plaintext = 36bb9e511276c5 +Ciphertext = 09049f6d31cc41 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = 1e103c63d8ead36b985f921044cd32b8f9f04a2ba9fa154a09e676ffaa093970 +Tag = 382f7648718127ebae7eb7443ebd2c2c +Plaintext = d68d6556c5a5b1 +Ciphertext = e932646ae61f35 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = a1cfb61d45a140bdea6329ba0fe80429ff9aa4624a1d31bc752f7c97f1d390a0 +Tag = cc40a5e7fffb1fb9a5dd9d6ba91bede1 +Plaintext = 0568cca4ff79dc +Ciphertext = 3ad7cd98dcc358 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = 116b5b015e44ceef0061b2d2e73fa0b386d5c1e187782beebdfc6efb5a1c6935 +Tag = 468d2b70c311732f11ed72b57d83e500 +Plaintext = bd93d08eea4263 +Ciphertext = 822cd1b2c9f8e7 + +Cipher = aes-256-ccm +Key = f7aaeff3a1dc0cc5ecf220c67ad9f6dda060b4f1be3cc609cb4f18b2342a88a2 +IV = d0d6871b9adc8623ac63faf00f +AAD = 3d55882e6f3f89309b6940a3b408e573458eedd10fc3d0e1f3170eb313367475 +Tag = b41a70f548e359add30c0e5746fbeb2b +Plaintext = 4fb62753024e92 +Ciphertext = 7009266f21f416 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 579a637e37a0974cd2fc3b735d9ed088e8e488ffe210f043e0f9d2079a015ad6 +Tag = e2ba537355ae8ab25cc9ed3511ff5053 +Plaintext = e5653e512d8b0b70 +Ciphertext = 75d31f8d47bee5c4 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 1583138aa307401dddc40804ac0f414d338fc3ffb2946f09aaaa7079426fc1ee +Tag = 781a9e359804831f31a1efb1ae1cb71d +Plaintext = 2c4ba9ce52e01645 +Ciphertext = bcfd881238d5f8f1 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 78d3dda40e433bba7a330ca3e5bd5170f0895f2e3e438402344ced79fcb0c719 +Tag = 2dcc77c4e1fe2bafd477598977835f0c +Plaintext = 5eb2d054a0e58c62 +Ciphertext = ce04f188cad062d6 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = dfc762466fa84c27326e0ee4320aa71103d1e9c8a5cf7d9fab5f27d79df94bd6 +Tag = 08946723baf0dbf613359b6e040f9bd5 +Plaintext = bbbf7830d04ab907 +Ciphertext = 2b0959ecba7f57b3 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 7e8ea82d1137c1e233522da12626e90a5f66a988e70664cb014c12790d2ab520 +Tag = 003bd62ca51f74088bbbd33e54ac9dd4 +Plaintext = 10c654c78a9e3c06 +Ciphertext = 8070751be0abd2b2 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 873da112557935b3929f713d80744ed08b4b276b86331dbc386fba361726d565 +Tag = 67e65e7f2cdedf6ef8cc0ee7a6dcfb02 +Plaintext = 668d32e322e1da3e +Ciphertext = f63b133f48d4348a + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = cfba97919f703d864efc11eac5f260a5d920d780c52899e5d76f8fe66936ff82 +Tag = 0532f8c6639e5d6c7b755fcf516724e3 +Plaintext = e39f6225e8eab6cc +Ciphertext = 732943f982df5878 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = 01abcfee196f9d74fcaa7b69ae24a275485c25af93cc2306d56e41e1eb7f5702 +Tag = 7fd7a33828413ebc252dd9d015773524 +Plaintext = 6021a00f6d0610a4 +Ciphertext = f09781d30733fe10 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = ce1c31e7121c071d89afab5a9676c9e96cac3d89dcae83136bbb6f5ca8f81e5d +Tag = d3d51368799325ad1c8233fa071bade0 +Plaintext = bbaf0ac4e77ee78d +Ciphertext = 2b192b188d4b0939 + +Cipher = aes-256-ccm +Key = 493e14623cd250058a7fc66a3fee0c24b6e363b966c2314aff53b276b6c2ea7b +IV = fe2d8ae8da94a6df563f89ce00 +AAD = bb210ca5bc07e3c5b06f1d0084a5a72125f177d3e56c151221115ae020177739 +Tag = 5d1ea568637f773174a7f920a51b1fe1 +Plaintext = 98a2336549a23a76 +Ciphertext = 081412b92397d4c2 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 69adcae8a1e9a3f2fe9e62591f7b4c5b19d3b50e769521f67e7ea8d7b58d9fc8 +Tag = 896e7127f17d13f98013b420219eb877 +Plaintext = 615d724ae94a5daf8d +Ciphertext = f019ae51063239287d + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 162d0033c9ea8d8334d485b29eef727302135a07a934eea5fee6041e9f1f47c1 +Tag = 7cc2cd61da9358b4045fef32f8192cbf +Plaintext = 0d9168eeab3b27ba69 +Ciphertext = 9cd5b4f54443433d99 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 3f4ab57efa32f51a4c00790280e77c0e55b85bbda4f854e242368e9a289b5a81 +Tag = d280f0ffdd560fb8915978e3bd6205bb +Plaintext = 6287dcffdd5fb97885 +Ciphertext = f3c300e43227ddff75 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 945d18134c148f164b39fd7c4aef0335045553f6ea690a3b1726418d86f0de00 +Tag = 7dbf90420a1ff2e24bd6303b80cfc199 +Plaintext = 6e5e01b3fd71d16b9c +Ciphertext = ff1adda81209b5ec6c + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 23af12893431b07c2922ab623aed901c0eaaeb9a24efc55273e96aea4dab7038 +Tag = d741f4329ae7cc77d42bf7e5f2ec5ab6 +Plaintext = b51521e689b5247362 +Ciphertext = 2451fdfd66cd40f492 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = b15a118b3132c20c31e6c9d09acdee0e15fcc59d6f18306442682512d22eb10f +Tag = c9ffdcc2f36edac14613b1d85baf25a9 +Plaintext = 7f973617e710fb76fe +Ciphertext = eed3ea0c08689ff10e + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = dcfbeb6490f5fa7eaf917462473a6cec98bebf8f17493fe9b994119a6d5a5457 +Tag = 5a61a28bb10265b26043d7a8dd357713 +Plaintext = 7e909b6727ac3fd02f +Ciphertext = efd4477cc8d45b57df + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 77e9317294f046f315a0d79e3423f29f7d9ebcd36d6eaa2a3fb2f4500309478c +Tag = d321c371ae1fd01bdf3b6c75a597da6e +Plaintext = a5075638932b5632f8 +Ciphertext = 34438a237c5332b508 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 3aa8f204eb127b547e13873ed0238018394e13686c8734e49e3e629deb352c77 +Tag = 9393d1635bc40ac62405a39155406c47 +Plaintext = c10f15a0de78db8aa3 +Ciphertext = 504bc9bb3100bf0d53 + +Cipher = aes-256-ccm +Key = b23255372455c69244a0210e6a9e13b155a5ec9d6d0900e54a8f4d9f7a255e3a +IV = 274846196d78f0af2df5860231 +AAD = 7f67e6f97c6c258f014d721a4edaaa0ddb3f9f09993276ab7b714ea9356c231d +Tag = ff89641e1bd5ad6cc827441b17c45ecf +Plaintext = 8294f830cfca42cfbe +Ciphertext = 13d0242b20b226484e + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 9ae5a04baa9d02c8854e609899c6240851cbc83f81f752bc04c71affa4eed385 +Tag = 76f2730d771d56099a0c8d2703d7a24e +Plaintext = 2e3cf0af8c96c7b22719 +Ciphertext = e317df43ab46eb31be7e + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = da77c6d5627a2aa34911bd1f7cc5f8aa68a2c6546adc96a186b9af8e5baac4cf +Tag = bcc7a8260ef361dc39fdb776d041f0d4 +Plaintext = e081c43a07450ce0dfa2 +Ciphertext = 2daaebd62095206346c5 + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 134d2d9726400d09dd3521326f96fbef993ddc0c4088770057b0f8d70356456f +Tag = 19f0cbb0899f221aac9762f2650f8058 +Plaintext = c381d2ae5e72fc82324a +Ciphertext = 0eaafd4279a2d001ab2d + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 0d065dfde1de1f21784c7869eb566c977f807cfbd53578f4616995b51d7dc045 +Tag = 3dc92a9bd26b9653e5917359c331fcff +Plaintext = 737f4d00c54ddca80eec +Ciphertext = be5462ece29df02b978b + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 95c54d187f2415535451cbb9cb35869749b171f7043216ce6886dd77baeecf60 +Tag = 91dda72c27d272561e00f7041845d998 +Plaintext = 4e9e251ebbbbe5dbc8ff +Ciphertext = 83b50af29c6bc9585198 + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 0f98039e6a9fe360373b48c7850ce113a0ff7b2ae5ce773dd4c67ca967cd691b +Tag = 928ac628758ad58fc1b5a768d4722848 +Plaintext = 0db72b281ab4046d15a6 +Ciphertext = c09c04c43d6428ee8cc1 + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = ad840bc55654762e5eba0e4a9e7998992d990a06d70da1b1ca922ef193dab19a +Tag = d11dad4dc8b265a53cf0bdd85c5f15f4 +Plaintext = 4f7b4f38ff1ba4df5a59 +Ciphertext = 825060d4d8cb885cc33e + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 911e9876ea98e1bcf710d8fd05b5bf000ea317d926b41b6015998ee1462ab615 +Tag = 8eb659a5a7084be48d099467da4395df +Plaintext = 58ce55379ef24b72d6d6 +Ciphertext = 95e57adbb92267f14fb1 + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 3f68a4fb4043bcf9b6d277c97e11365d949c705bd6679c6f0aaf52e62330ad79 +Tag = 3b2b2583fd117cec47b1c84d3863159e +Plaintext = a219028a953ce1544835 +Ciphertext = 6f322d66b2eccdd7d152 + +Cipher = aes-256-ccm +Key = dbf06366f766e2811ecd5d4384d6d08336adc37e0824d620cf0d9e7fd1e7afa9 +IV = b3503ed4e277ed9769b20c10c0 +AAD = 02f32242cba6204319075ea8ce806a57845355ae73e6b875955df510096ebff9 +Tag = 5456eb2b6a2d35c649a84051f843153c +Plaintext = 83b0ee9a52252c456105 +Ciphertext = 4e9bc17675f500c6f862 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = 9bcc5848e928ba0068f7a867e79e83a6f93593354a8bfcfc306aeeb9821c1da1 +Tag = 6512a0481255b729a10f9edb5f07c60c +Plaintext = 8015c0f07a7acd4b1cbdd2 +Ciphertext = 8e9f80c726980b3d42e43a + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = c2e75952ab49216f305e3776865791ce877cef8c0229ca97561787093fddf1d8 +Tag = 8c514444f00ffdb80a4bb7e9eb651946 +Plaintext = c97b62a719720b44b7779c +Ciphertext = c7f122904590cd32e92e74 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = c76a3ff4e6d1f742dd845be2d74c1a9b08e418909b15077deb20373ef55caf91 +Tag = db609dfc1929ac1ba5753fc83bf945b7 +Plaintext = cb7c17ef62464ecc8008f6 +Ciphertext = c5f657d83ea488bade511e + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = bdb69f99f9a144b9ad88c6cfd8ffb8304c201de9b2818552ce6379e6042c1951 +Tag = 53b74283296d0fca83b262915289163c +Plaintext = 893a690cc5221de597d0e8 +Ciphertext = 87b0293b99c0db93c98900 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = 01815f599d6ba0d1c09f6f673bb6cca4c2a7a74f4e985be4c0f37842c7bbc5a4 +Tag = 88a34955893059d66549795b3ac2105c +Plaintext = 80f3e4245c3eab16ef8bf0 +Ciphertext = 8e79a41300dc6d60b1d218 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = a9db62e9ab53c4a805c43838ce36b587d29b75b43fb34c17a22d3981120f3bc5 +Tag = 377c4e2f20aaa872a9a0b1d1d7f56df0 +Plaintext = 641c6914920a79943dca39 +Ciphertext = 6a962923cee8bfe26393d1 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = f0c2cc5a1b4c4cbe839338fa0d7a343514801302aef2403530605cf4f44d2811 +Tag = 5545aa0c1dd11551891ae553d3a91908 +Plaintext = 2286a1eddd80737a724ca9 +Ciphertext = 2c0ce1da8162b50c2c1541 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = 9842922499ad4d487488b3731f48765efe0b4eb59e7b491ba5f6636f09ed564d +Tag = d9e07ec5806360843676ef27d811b246 +Plaintext = d8c63e7d7d332198249c0c +Ciphertext = d64c7e4a21d1e7ee7ac5e4 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = 399b71ecb41f4590abda79045cdf6495f27daaa559c1b34f513b5c4ac105ec10 +Tag = 483b8727c5753ede25e1fab0d86963be +Plaintext = 4b81804d777a59b6a107cf +Ciphertext = 450bc07a2b989fc0ff5e27 + +Cipher = aes-256-ccm +Key = 4dd555bd3a5253a90b68b5d4d46bd050340ee07ddad3a72048c657b5d76bb207 +IV = bdb1b82ba864893c2ee8f7426c +AAD = 2c186c5c3463a4a8bad771feb71e2973c4f6dede2529827707bf4fa40672660f +Tag = 4b5c3c1dc577ee8fcf6ef3ebc0783430 +Plaintext = dfc762466fa84c27326e0e +Ciphertext = d14d2271334a8a516c37e6 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = ea26ea68facdac3c75ba0cdf7b1ad703c9474af83b3fbfc58e548d776b2529b9 +Tag = 56bc555899345e0404b2938edf33168e +Plaintext = a203aeb635e195bc33fd42fa +Ciphertext = 62666297a809c982b50722bd + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 0b32069fc7e676f229f1037d3026c93eef199913e426efd786b524ce1dbde543 +Tag = 9b15447c904b671824c2ca24c4fc7ad4 +Plaintext = aac414fbad945a49ae178103 +Ciphertext = 6aa1d8da307c067728ede144 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 7a8658302e5181552292aa56e8209de63b5d86934167549b0d936202681757e1 +Tag = ea13850e99ef9300c65f5abc9419d13a +Plaintext = 7ee0ce371329192618e3cda0 +Ciphertext = be8502168ec145189e19ade7 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 4f05600950664d5190a2ebc29c9edb89c20079a4d3e6bc3b27d75e34e2fa3d02 +Tag = 486c93c31bbedc9e5ffa2f4154bceea9 +Plaintext = b0a1af969a95025385b251af +Ciphertext = 70c463b7077d5e6d034831e8 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 4530e4dc6a4c3733b8ab7e77e384223cc1a8c179fb66818c08aca47e5c705d89 +Tag = f18b556e7da59fd2549dc57a17bf64f8 +Plaintext = 9f6c6d60110fd3782bdf49b0 +Ciphertext = 5f09a1418ce78f46ad2529f7 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = f179353aef342f0f691caf1fcb811e3f6504e14d6d9381c5439b098ff978b01b +Tag = 30aad3a838680cbd313004685a5510c5 +Plaintext = 90958d7f458d98c48cbb464c +Ciphertext = 50f0415ed865c4fa0a41260b + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = f6df267e5cbc9d2a67b1c0fd762f891ee3b7c435884cb87d8228091b34aeddae +Tag = 1d57b89ed0c91251aed37a6ca68a50c7 +Plaintext = 9f7ae892e5662803408d4d06 +Ciphertext = 5f1f24b3788e743dc6772d41 + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 4372e152b1afd99c7f87c8a51dbc3a5c14c49d04ea1c482a45dfbcda54972912 +Tag = d79a3b0feea16ff5fbca16211ea6fdd9 +Plaintext = 817074e351455f23cb67883d +Ciphertext = 4115b8c2ccad031d4d9de87a + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = 82b6cd1c6618c42ba74e746075dc28700333578131ca6fde6971d2f0c6e31e6a +Tag = 49f22737c4b2f9fa0a7e3dd4b067fbaa +Plaintext = 1b7da3835e074fdf62f1eb3c +Ciphertext = db186fa2c3ef13e1e40b8b7b + +Cipher = aes-256-ccm +Key = d3ad8cda9a0d91a205c4c05665728bb255d50a83403c9ab9243fcbbe95ae7906 +IV = 0b5f69697eb1af24e8e6fcb605 +AAD = a5422e53975e43168726677930f6d3e13281bdbd13c67c168340ed67e45d15b0 +Tag = ef43a48dbea8c1547455ad0197af88a2 +Plaintext = 57473e7a105c806867379194 +Ciphertext = 9722f25b8db4dc56e1cdf1d3 + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 9b1d85384cb6f47c0b13514a303d4e1d95af4c6442691f314a401135f07829ec +Tag = 4c6520dac0f073856d9b9010b7857736 +Plaintext = 8714eb9ecf8bdb13e919de40f9 +Ciphertext = ba6063824d314aa3cbab14b8c5 + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = fa17c693d0997140fbc521d39e042d8e08388106874207ca81c85f45c035d6e6 +Tag = 20a423dd30796b6016baff106aaef206 +Plaintext = a0837676e091213890dc6e0a34 +Ciphertext = 9df7fe6a622bb088b26ea4f208 + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 27663597b389b78e96c785ca2f5510c8963a5561d2b0b24c4dcdf8e58562c12c +Tag = 6032bc79c4aef1f74da25e92b0aa7f8a +Plaintext = b8a2ce7e051b8d094ec43f2a7f +Ciphertext = 85d6466287a11cb96c76f5d243 + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = d8f1a83371487d611ce704e0a6731f97a933c43569690022fce33cb5aecdc0a7 +Tag = 658123d2e5bb324c7ead8897f8e32b0a +Plaintext = 9e4103ab1dfb77ae3494507332 +Ciphertext = a3358bb79f41e61e16269a8b0e + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 05c57aab99f94b315cf8bdd2d6b54440c097fe33c62a96b98b1568cdee4ce62c +Tag = 270758ab09f93fa3ba7d7a2aa8eac789 +Plaintext = fb3e3d1b6394d2daebf121f8ac +Ciphertext = c64ab507e12e436ac943eb0090 + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 1c1b0933c508c6a8a20846ebd0d0377e24f4abc0c900d3a92bc409ba14ef1434 +Tag = 2293813f1bcb96564f772e9308e42b2d +Plaintext = 549ba26a299391538b56ce4bd7 +Ciphertext = 69ef2a76ab2900e3a9e404b3eb + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 9f5cf9149f556124d6bb4e3e243cca1502c02682709392cc2ec7eb262fd4d479 +Tag = 81877380d5cf097c2fb5177750f8b53a +Plaintext = 287f31e69880823df7798c7970 +Ciphertext = 150bb9fa1a3a138dd5cb46814c + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 1a49aaea6fc6fae01a57d2fc207ef9f623dfd0bc2cf736c4a70aaaa0af5dafd3 +Tag = cf42c75787edc62a180568c6ef56545d +Plaintext = 040d18b128ae4a1935f9509266 +Ciphertext = 397990adaa14dba9174b9a6a5a + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = f29a0b2c602ff2cacb587292db301182e6c76c5110b97ca8b706198f0e1dbc26 +Tag = 56d47a0631f2038103e3904b556ba7a5 +Plaintext = 92441cbe8d70820870bb01ad63 +Ciphertext = af3094a20fca13b85209cb555f + +Cipher = aes-256-ccm +Key = e300fc7a5b96806382c35af5b2c2e8e26382751b59010d4b1cfc90a4a9cb06df +IV = 55b59eb434dd1ba3723ee0dc72 +AAD = 01fcf5fef50e36175b0510874ea50a4d2005ad5e40e5889b61417700d827251e +Tag = 5be15b7ae24edccd0b0934e3af513ed3 +Plaintext = f11d814df217de96333dee1cbf +Ciphertext = cc69095170ad4f26118f24e483 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 0245484bcd987787fe97fda6c8ffb6e7058d7b8f7064f27514afaac4048767fd +Tag = 6385a52c68914e9d1f63fd297ee6e7ed +Plaintext = 959403e0771c21a416bd03f38983 +Ciphertext = 37a346bc4909965c549783825182 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 52f6a10a022e5ee57eda3fcf53dcf0d922e9a3785b39fad9498327744f2852e4 +Tag = 364b603de6afbc2d96d00510894ccbe7 +Plaintext = 23fe445efa5bcb318cc85e2ad1ac +Ciphertext = 81c90102c44e7cc9cee2de5b09ad + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = d236e3841b9556b32dbd02886724d053a9b8488c5ad1b466b06482a62b79ebb6 +Tag = 1a4321c2ddbc35ce4864457d611219e9 +Plaintext = 762fdc3e0c30c7ecf2ec8808bb79 +Ciphertext = d418996232257014b0c608796378 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 0d2739cfdac782b61f484fa1a423c478c414397ec420327963d79112b2d70a7e +Tag = 296e55efebb17fe145cdca9b31ea7bcc +Plaintext = b6813d5fe8afa68d646c197337a2 +Ciphertext = 14b67803d6ba117526469902efa3 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 7f291aa463c4babc76b4a6faf2e27e9401586b1ac83e4b06a4090e94b3ef5fd4 +Tag = 59270a0510e7cc1b599705853af2144d +Plaintext = 4ce8b6578537215224eb9398c011 +Ciphertext = eedff30bbb2296aa66c113e91810 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 06bca7ef6f91355d19f90bf25590a44a24e5a782f92bc693c031e6de1e948008 +Tag = b55847573bf21e946ce9bdc5f569e3ff +Plaintext = 9ebf93643854ea5c97a4f38f50bd +Ciphertext = 3c88d63806415da4d58e73fe88bc + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 5a44ff94f817c7c028a8f3db35a4d01364d2598432469f09ded86e5127d42d35 +Tag = b8a61c5687ea02f0276824b8316b76f1 +Plaintext = da989cc7d375ed5fac4d7f938d74 +Ciphertext = 78afd99bed605aa7ee67ffe25575 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 2a755e362373ef27a911c4d93ca07bc97135645442ad7ad6a8ef98146c71e9d7 +Tag = a07ee02791011129fcacffcfb1bf4145 +Plaintext = 6fbab5a0f98e21e4d15904af5948 +Ciphertext = cd8df0fcc79b961c937384de8149 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = f7988873f45a5de314e5381d3f14d8f8c48c9b649bf3e745ed5dc882d507da58 +Tag = d34204b1ce23f5f58a8eb7cf1fa8cfa7 +Plaintext = b610349e8b370a7c195598573637 +Ciphertext = 142771c2b522bd845b7f1826ee36 + +Cipher = aes-256-ccm +Key = 3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0 +IV = 61bf06b9fa5a450d094f3ddcb5 +AAD = 95d2c8502e28ab3ee2cac52e975c3e7bccb1a93acc33d9c32786f66d6268d198 +Tag = 9c618bb88bbcefb008a5ea6bed4ff949 +Plaintext = 1d969fd81dab5ced3e6ee70be3bf +Ciphertext = bfa1da8423beeb157c44677a3bbe + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 5e60b02b26e2d5f752eb55ea5f50bb354a6f01b800cea5c815ff0030b8c7d475 +Tag = d6852dc829469368491149d6bb140071 +Plaintext = 54be71705e453177b53c92bbf2ab13 +Ciphertext = 788db949697b8cd9abbc74ed9aa40c + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 210c04632341fbfc185bfe3cbf6fe272bbe971104173bcb11419b35ab3aaf200 +Tag = 56940dc5a7e44bf10234806d00a012b5 +Plaintext = 22197f9ad14591e7a6d5f8b18c969a +Ciphertext = 0e2ab7a3e67b2c49b8551ee7e49985 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = d3a205dd017e79a67400a937a20ef049f4c40d73311731f03ab857a3f93bd458 +Tag = 0898f7dbde25b0b70d335df71a06987b +Plaintext = 096b2f530933c1273304a6ad423726 +Ciphertext = 2558e76a3e0d7c892d8440fb2a3839 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 0c9b3ba4faf5fc2f310ad1bab06c4ca13474b714feeffb6ad615c1b850bbd6a3 +Tag = 2fd10d1f21b6b963c05aeda8eb09e272 +Plaintext = d44fdfd9da3a63c1083afe574e91bf +Ciphertext = f87c17e0ed04de6f16ba1801269ea0 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = d9bb71ad90152d5c1af358c8501fa89ebd4b17bf4ff43841528cccb79fd791b3 +Tag = 4491d23d90ff55abca17e9d943b98c7f +Plaintext = 8d836acc13ed83c2b2c706415c9679 +Ciphertext = a1b0a2f524d33e6cac47e017349966 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 69dc21eb6f295b12ba493ee8fe6c40d78af946067ce772db316a3cbf00d3c521 +Tag = 9616886c6b2adc97db5a673846b6662c +Plaintext = 2a68e3fe746f593c1b97cb637079c3 +Ciphertext = 065b2bc74351e49205172d351876dc + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 095eb52135dc6d9c1f56a2571c1389852482e7aa3edc245a3904a0449db24a70 +Tag = 2441dcae1760db90379bd354fa99164e +Plaintext = 39799b001ed2c334c269acb0f2328c +Ciphertext = 154a533929ec7e9adce94ae69a3d93 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = efd7270e0396392fde8b0ddaab00544cbbd504f4d97d4e90d749d1946de90dcb +Tag = c7c7deb28bdcf84886ef843216b94449 +Plaintext = 42143a2b9e1d0b354df3264d08f7b6 +Ciphertext = 6e27f212a923b69b5373c01b60f8a9 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = 8bc181ce2e66294e803a8dc3834958b5f173bc2123c0726e31f3fca25b622ed6 +Tag = 35061ae3cd892ba63c44b809d6d29421 +Plaintext = a3dcf26327059a4245b79a38bb8db6 +Ciphertext = 8fef3a5a103b27ec5b377c6ed382a9 + +Cipher = aes-256-ccm +Key = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +IV = a5c1b146c82c34b2e6ebeceb58 +AAD = c39ec70c2c71633ae0dccc41477ac32e47638c885cf59f34ebd4a096d32f91f9 +Tag = 3c9ae69a4c59ff8e251c2fe022d065a9 +Plaintext = 3d54883449ecca8f153436c25a0a01 +Ciphertext = 1167400d7ed277210bb4d09432051e + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 718d13e47522ac4cdf3f828063980b6d452fcdcd6e1a1904bf87f548a5fd5a05 +Tag = 6f9d28fcb64234e1cd793c4144f1da50 +Plaintext = d15f98f2c6d670f55c78a06648332bc9 +Ciphertext = cc17bf8794c843457d899391898ed22a + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = a371ca29b92ed676bab5dfc4d78631bb6d9bb23a29f822907084a1f0fe17721f +Tag = 8b55bbe42d8c97504b97c34a5f16e6a6 +Plaintext = 60d55a8d5ab591a51e87fdf6aaa2ad25 +Ciphertext = 7d9d7df808aba2153f76ce016b1f54c6 + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 01ec87920b42639d4ba22adb1fbe5138d2849db670a2960fd94a399c1532ed75 +Tag = 017d8706acd676ae99e93d5312a4113c +Plaintext = cbf112e4fb85276c4e09649f3de225b2 +Ciphertext = d6b93591a99b14dc6ff85768fc5fdc51 + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = eebd2bbf1e9f6d817cd8062a6a9680e7f10464eefeb50b07cb46b14b9b3fcb2c +Tag = 5982f0fe5d951a8c62c87894657301e4 +Plaintext = 865b89aa38ee1b5a3ce56620307e8937 +Ciphertext = 9b13aedf6af028ea1d1455d7f1c370d4 + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 72863362612f146699f6b2f6ec3688f2ca6cb1505af7a309c91c1933e34d516a +Tag = 5addfddbb59f4985947fb3a9ab56333e +Plaintext = a8efc37d1b8b51f2a47b21dd14da383d +Ciphertext = b5a7e40849956242858a122ad567c1de + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 9c9efc6593f96207678db813608f2b8bc33ed1bef974ed77ed7b6e74b621b819 +Tag = b651053516673402a57538db1a9ce7e9 +Plaintext = d9b0eaaff786165f882f41a98dbc0c35 +Ciphertext = c4f8cddaa59825efa9de725e4c01f5d6 + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = dc482a051b58d8a3904d3af37c37b51983f634a504451bbba6f77d71337f8e78 +Tag = 86d772b1a1991b7be6589bbccad36171 +Plaintext = df49d972b6ebbbb18ee975ac635d847e +Ciphertext = c201fe07e4f58801af18465ba2e07d9d + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 51ef065a43caa23faf750b02a41ad6ba701aeb8058f6d8738d6f6b005bec7f60 +Tag = 569387a1a6bcc826e94012670820576e +Plaintext = 78318aa5cd16699b77bdcea2fc9d1d20 +Ciphertext = 6579add09f085a2b564cfd553d20e4c3 + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = 88e2a74d2920c89c6a101f5f06d0624a6d5eabd9bdb51395ee3983934c55c73d +Tag = e9c788b4aae9b2c6caf0c44aa9bd2ed0 +Plaintext = 8e20d65d02dd9a64379f75b6d8328f2d +Ciphertext = 9368f12850c3a9d4166e4641198f76ce + +Cipher = aes-256-ccm +Key = ee8ce187169779d13e443d6428e38b38b55dfb90f0228a8a4e62f8f535806e62 +IV = 121642c4218b391c98e6269c8a +AAD = ada3ed7db2dabbfbc441ef68a5656e628d6d5bd6c1574369688497179a77601a +Tag = f1df0f01944641a1b04d753e6ab8d3cc +Plaintext = 97e8d8513af41b97801de98cc4269096 +Ciphertext = 8aa0ff2468ea2827a1ecda7b059b6975 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 217d130408a738e6a833931e69f8696960c817407301560bbe5fbd92361488b4 +Tag = f628ee49a8c2005c7d07d354bf80994d +Plaintext = b0053d1f490809794250d856062d0aaa92 +Ciphertext = a6341ee3d60eb34a8a8bc2806d50dd57a3 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 4ae414bc888a42141d3060c71c2dbbffd425b6a952806982271a8e756b3c9e24 +Tag = 3c1c5755a5a240c33b2b890a486aac8b +Plaintext = 51eb190c6a9f46e8ec1628b090795470c0 +Ciphertext = 47da3af0f599fcdb24cd3266fb04838df1 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 7b7f78ae1a5ee96fdc49dacd71be1a6ac09a6a162d44dea0172886eca5674e46 +Tag = 4cfca1c19abf447d7bc0898d61885144 +Plaintext = 25144e807e389bb0e45b6dc25558caf61a +Ciphertext = 33256d7ce13e21832c8077143e251d0b2b + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 03f31c6143b77f6ad44749e2256306b8bf82242f2821fad4075b09b388ba81ca +Tag = 229cc7a390867a245dcb7c434f1db347 +Plaintext = dbe1ee14abfe2ecf4edf6db206cf9886ce +Ciphertext = cdd0cde834f894fc860477646db24f7bff + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 030390adb572f2bd2a6a4454fd68236cd1d465574328aa001d553375cc63f8a2 +Tag = 5361b539f9fe0fb7842907c2326aef63 +Plaintext = db6df31f12bf552f81deff5fa2a373fc22 +Ciphertext = cd5cd0e38db9ef1c4905e589c9dea40113 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 7294ae94358669f2ada4b64c125b248df7fe86c6715e3b6a7b9bb2bd99392c8a +Tag = 8ed10943929e7d7bf798b2ae8371aae5 +Plaintext = ff2a97b49fcc6a50d4549c979d53ccc51f +Ciphertext = e91bb44800cad0631c8f8641f62e1b382e + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 4d1513478fc1fb0a18eb6d2a9324fefbd975ecd1b409025de826bc397462acc1 +Tag = f92b9e49ab83f113f8949dc9e4a36e0d +Plaintext = 73ddfa0185200a890b7690a7e3986d8818 +Ciphertext = 65ecd9fd1a26b0bac3ad8a7188e5ba7529 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = b26a7ff61bfe94864249af7cc9b4a723627dd4463f5a22f0ca6063769522eab7 +Tag = d0e53223adff22a08e3dddf66fff23e3 +Plaintext = 5c7604f9ac8fdf30ee5820e5aeb75b65d7 +Ciphertext = 4a4727053389650326833a33c5ca8c98e6 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 960f9a85cfbfb6eab223a4139c72ce926a680ea8e8ecc3088cf123de659ad310 +Tag = 33f49a42521a7a2367f91bfcc2180b7c +Plaintext = d44fdfd9da3a63c1083afe574e91bf01c9 +Ciphertext = c27efc25453cd9f2c0e1e48125ec68fcf8 + +Cipher = aes-256-ccm +Key = 7da6ef35ad594a09cb74daf27e50a6b30d6b4160cf0de41ee32bbf2a208b911d +IV = 98a32d7fe606583e2906420297 +AAD = 3718467effb5d5dc009aaefce84d8cb4fe8f80eb608f4c678f5d0de02ea11e59 +Tag = c08bd395c6807223311070659f550934 +Plaintext = bb515dc227abb9acad8fefaa14771bb77b +Ciphertext = ad607e3eb8ad039f6554f57c7f0acc4a4a + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = 67874c808600a27fcab34d6f69cc5c730831ad4589075dd82479823cb9b41dc3 +Tag = 52f2210b7a798ad5c778ee7cfd7fe6e0 +Plaintext = 6a26677836d65bd0d35a027d278b2534e7df +Ciphertext = d1c1f3c60603359c7d6a707f05ecb2296f8e + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = e0c27cddf919d3092d9a34766c89a5ae6dcf39fe954d1e6f1a70ddf96805def4 +Tag = 0923bb5a347af13df12f234fca5f03ef +Plaintext = 4021ff104ff1dbd91e46db249fd82198b0a1 +Ciphertext = fbc66bae7f24b595b076a926bdbfb68538f0 + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = 7ae9eca03f616ab39ebb3be26b848842b4aa584e5c8e5695065ad5af34951175 +Tag = d03ed7bffac83e890caceb6903d9cab5 +Plaintext = 6a681f164efce199a787bccff223b8ae1a98 +Ciphertext = d18f8ba87e298fd509b7cecdd0442fb392c9 + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = b47c9bc4eb01c74f5db2e6a293bef80db18c58cf06feef7ee0f8a7a9a51c22bb +Tag = 4dd8f30870025b2bd1e2a2511574d3e7 +Plaintext = 7861dac338ba3f8274dca04c8c6f92b6d44c +Ciphertext = c3864e7d086f51cedaecd24eae0805ab5c1d + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = f6afd661f218c7426b92ee53e65d14898cd0c78a7e594fcc6ac0e3fb5cab1c9c +Tag = 6046d17f337f3cb49884d94995edbdc9 +Plaintext = a3f0473c620d2739d5ba4f7156f88d0fb669 +Ciphertext = 1817d38252d849757b8a3d73749f1a123e38 + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = d3802911e341577046cfc61d9043b4af059fb4bef3c6a2ff46ccdcb05670af37 +Tag = 5fdc77b43bca254d6459263cdfed8fbb +Plaintext = 07c535d9456a6ff1e41321150d16dae3f7a3 +Ciphertext = bc22a16775bf01bd4a2353172f714dfe7ff2 + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = db60720db67a60ca286fe744d46173c231fbcc7deb4c9b0d87d52a2247e06b74 +Tag = dd1a1d36c8164c55d55dbf0ff1e9517a +Plaintext = 5ee220720a896249efdab2ce418318bb5ebf +Ciphertext = e505b4cc3a5c0c0541eac0cc63e48fa6d6ee + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = 57f70ba5493265b30491decc726354e2065e7971a2efd56db9cf0f79b1d76859 +Tag = b476e2ca48fd52bec0539b00744a8a07 +Plaintext = 98e4eb0361c8bf40bcbe0539b0850e4c35ff +Ciphertext = 23037fbd511dd10c128e773b92e29951bdae + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = 4a29b9ad548964942f87f28ba267ec0d0e8f72c73b3823ee57693dd63c2605c1 +Tag = fad68c62b81d62f2d490ae74f5bb1465 +Plaintext = 7f0745bea62479c0080ecec52e37c1e32d72 +Ciphertext = c4e0d10096f1178ca63ebcc70c5056fea523 + +Cipher = aes-256-ccm +Key = 0786706f680c27b792d054faa63f499a8e6b5ddb90502946235bf74c022d772c +IV = f61ef1c8c10a863efeb4a1de86 +AAD = acbd2e9911b3218a230d9db5086d91dccac3fc93fc64b0f4a15d56954906b2b7 +Tag = 13b15d8000266c61ba5aec898eb35b52 +Plaintext = e99ed2ac6c38e033061b5d85f3e77dd72518 +Ciphertext = 527946125ced8e7fa82b2f87d180eacaad49 + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = 89ad6ae1e550975eaa916a62615e6b6a66366a17a7e06380a95ea5cdcc1d3302 +Tag = e3243faec177de4a2e4a293952073e43 +Plaintext = c1a994dc198f5676ea85801cd27cc8f47267ec +Ciphertext = 7c9b138177590edaafec4728c4663e77458ffb + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = dfddb719d00398bf48a6cefd27736389e654a93b8595cd5ac446af1996e0f161 +Tag = 8422f736fc435687634d42254b22fd99 +Plaintext = 791e232bfb42fb18197adc1967da1a83f70168 +Ciphertext = c42ca4769594a3b45c131b2d71c0ec00c0e97f + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = 58ef310997dcaf067dd217274921504da6dbf0428a2b48a65fe8a02c616ac306 +Tag = 38a96e68ef7dbaef1b460cc0980eacd4 +Plaintext = 3d4127942459bb8682e662dfc862467582fa68 +Ciphertext = 8073a0c94a8fe32ac78fa5ebde78b0f6b5127f + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = 511e5d5e100b595f6b20e791830bca37e23f7b785e482a58405bffe7a632a5b8 +Tag = 5c5c702a82d468929227502e4e35796f +Plaintext = 0e71863c2962244c7d1a28fc755f0c73e5cbd6 +Ciphertext = b343016147b47ce03873efc86345faf0d223c1 + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = e48dfaa53b6807ea6f01d8dca67960b9f321f7851f324459a9bf61fe0be73abb +Tag = 89188c0940182dd99a902d158c5b0810 +Plaintext = e0f1cd013e6aea4fa484fc3fa35d348b1a2399 +Ciphertext = 5dc34a5c50bcb2e3e1ed3b0bb547c2082dcb8e + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = c12c0423fe36e4c88775dd00b4af267b85b7dd2a37a742a3156923c8917c97a3 +Tag = 15849acbb7af1892790300bb84fb0558 +Plaintext = b1cc1946b4fc1dbd033254cdf536f61e9f9cd7 +Ciphertext = 0cfe9e1bda2a4511465b93f9e32c009da874c0 + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = 4255f8af18df7237e0abe98421aec9634443561752d893aaffe76380e829ef32 +Tag = e75aaf3077ac6dfb5454851ec3910de6 +Plaintext = 87284658928208e3bddca83e3ceb13708d88d4 +Ciphertext = 3a1ac105fc54504ff8b56f0a2af1e5f3ba60c3 + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = ab83567833d2f3461b5fbecc0e366694bb5ea00933b2b3e792ec3aefe20325df +Tag = e70f42e3e1f2b5bb58433bd11f5dea1f +Plaintext = bdb79f931ef3035a33bdd1b032fd9de8f6b2ba +Ciphertext = 008518ce70255bf676d4168424e76b6bc15aad + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = bd1446ba3185d1c16551730947c22142142caa8cc1c540e89ab734ec297401bc +Tag = 564f6248cefe5fc7cfb547c90a558925 +Plaintext = 1f9c3a8eb8bc59f3869e10f73883aa8f8990cb +Ciphertext = a2aebdd3d66a015fc3f7d7c32e995c0cbe78dc + +Cipher = aes-256-ccm +Key = bac55f9847d93325bf5071c220c0a3dfeb38f214292d47b4acb7b0a597fe056f +IV = 05b50c458adbba16c55fcc454d +AAD = b87577755d2d9489194f6f7cfabf267dc3433a9c91954e81beb72c5e06870922 +Tag = b52249d812f7f235afa0732e984e91b2 +Plaintext = 5f28809181f9a889894da8d6fe1fde6cce354a +Ciphertext = e21a07ccef2ff025cc246fe2e80528eff9dd5d + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 7aebdfd955d6e8a19a701d387447a4bdd59a9382156ab0c0dcd37b89419d6eff +Tag = 04e2dfeeeac9c3255f6227704848d5b2 +Plaintext = 7b125c3b9612a8b554913d0384f4795c90cd387c +Ciphertext = 6cc611d816b18c6847b348e46a4119465104254a + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = d119f300fbd74e754a200ea2c3f9fabc1466d02078c84245db693eef3f5672a6 +Tag = 38d48329997c5981d678b5e24a6f01b0 +Plaintext = 8b013f5782d5d1af8dbd451a4202866095dac975 +Ciphertext = 9cd572b40276f5729e9f30fdacb7e67a5413d443 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = d6204303b86acf62d5ab860ca70161288ede56e3cf017c08dca56fd2d6f8f6fe +Tag = a77e3ab68e0a73519591a33ed098b758 +Plaintext = b2b1d82a5523b72ea366a680922ed3a4624536c4 +Ciphertext = a56595c9d58093f3b044d3677c9bb3bea38c2bf2 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 8557e22eb4529b43f16b1f8ae47c714ac8a2c827c1408a47704778b4c5b52601 +Tag = cff6c24251c2fb7b8604dfa10c60ef4a +Plaintext = f8c4eb4285d3d7744da52775bb44ca436a3154f7 +Ciphertext = ef10a6a10570f3a95e87529255f1aa59abf849c1 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 8c1a4187efbb3d38332f608f2c8bbe64247d9afa2281ced56c586ecb4ab7a85e +Tag = 6c3c39f915d081d34559179869b32d81 +Plaintext = 6e7fe35fa39c937a0e6b3a8c072e218650f42b8d +Ciphertext = 79abaebc233fb7a71d494f6be99b419c913d36bb + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = a41bb1f256228302cd0548ae2148ff42774d18c2d6d3e38b36bc4938da13bac3 +Tag = 9389a6a6a74c6eb0e1f87562469f2082 +Plaintext = 917b467d841850fc6e648f1bc298a7f9f1ee38ca +Ciphertext = 86af0b9e04bb74217d46fafc2c2dc7e3302725fc + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = b0b024e20c4f75a6dad54c21a9edbce846792e957878b1c8ed2d916c757e2b3c +Tag = 3bed3a2f5dfdbfcc0d7ac26c88d1962c +Plaintext = 2b4314fe1a6bfa786b7cfc13fbee861b348efbf6 +Ciphertext = 3c97591d9ac8dea5785e89f4155be601f547e6c0 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 42153925c46fc9d5d328312d62f59bb99fdc4ac479a3386d5f88fefd4b32f577 +Tag = 35ea1d99be344fa1467ee91c73bbca67 +Plaintext = e19fa7f83c79920cbff45c41a9dee8fc99e97396 +Ciphertext = f64bea1bbcdab6d1acd629a6476b88e658206ea0 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 37ab2a0b7b69942278e21032fc83eba6cdc34f5285a8b711a08da6acd42299fe +Tag = 7936ec10a81b36768b606e9a38b2f4c5 +Plaintext = 53e0475cf492b3d39dad600f5c58eb0bd0021554 +Ciphertext = 44340abf7431970e8e8f15e8b2ed8b1111cb0862 + +Cipher = aes-256-ccm +Key = 8beedeb85d42c2a7fa6f7237b05acb197dd8e1672471ac878064fe5319eab876 +IV = 8479bdfad28ebe781e9c01a3f6 +AAD = 4a17522da707b4b2587a0ae367a2cd2831bb593a18ef442a7977eda6de045878 +Tag = 11575ae03ea8a57bbe4a67c060367b74 +Plaintext = c119a383d9a3d4bff4270a1d22076b346db5f61c +Ciphertext = d6cdee605900f062e7057ffaccb20b2eac7ceb2a + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 2a243246bfe5b5ab05f51bf5f401af52d5bbaa2549cf57a18e197597fe15dd8c +Tag = 2abeeaef1187f815ca481ed8ddd3dd37 +Plaintext = 73b09d18554471309141aa33b687f9248b50fe3154 +Ciphertext = b7e8264ca70fd2a4fb76f20a8ad5da3c37f5893fb1 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 0595306eb7441622a49800edee0134492d82320707fceba902af2e0c95fe634a +Tag = ccc2b55011dbe92ce7619e0ad48b4ccf +Plaintext = b64d00f3a4df754fa4ee6376922fb67ccce0c6209f +Ciphertext = 7215bba75694d6dbced93b4fae7d95647045b12e7a + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = bd439dbefec589e120fb4f9825b315bf86523b85c61791cd4da4c8d474ba2714 +Tag = 1e8b1f4d70d8f4c7df4f22847d36b394 +Plaintext = 2b11d1ac74ffe701ec733d32085b1054132726e622 +Ciphertext = ef496af886b444958644650b3409334caf8251e8c7 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = cfebe1cf82267394065bcecfada6709c6c35a3ac835644f560d4c9a8c1848364 +Tag = a85e76a9d07b7b361ca56d53c34cda50 +Plaintext = a88f22424643a523aa3d7d88f4364f1290f49dd0a2 +Ciphertext = 6cd79916b40806b7c00a25b1c8646c0a2c51eade47 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 7a37255b682766a0bfecf78e5162528885a339174c2a49325739d2bd8877e64f +Tag = fddb010e7508ad03ad287068ecee6020 +Plaintext = c81427bc84c6a3cfefd4c4cb210fe82212977e1947 +Ciphertext = 0c4c9ce8768d005b85e39cf21d5dcb3aae320917a2 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 619f2ae80070e278615466a3fd6c9acb7b510c5679bed7038889c77e78d8bd32 +Tag = ddea785e6c470c52c4fdf432fd78b66e +Plaintext = 28c4d6de3e2ce51b849b135d9cfd3084f0e3155447 +Ciphertext = ec9c6d8acc67468feeac4b64a0af139c4c46625aa2 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = b2571e56f66a857daffbdc99370ceddd4a7bed3867d600cc797000a3b7b57a9d +Tag = 91232cfbd7ffff252498b35274fb2995 +Plaintext = 4c88151cafef75832bacef43a06e862349d56b67ee +Ciphertext = 88d0ae485da4d617419bb77a9c3ca53bf5701c690b + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = db409636e3e3bcd606a91aeb7592009896f9ad2c4cc6b7f578e6ad59c0f8fa22 +Tag = 72b2c50e5e391ad104f9ee33b94f2872 +Plaintext = 572855e22ce89bc2bcf09cb15a1765d99973449d61 +Ciphertext = 9370eeb6dea33856d6c7c488664546c125d6339384 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 62c89a835721207a182968c516dc8be45774ec846e8dcab9ab8611888f2a76a8 +Tag = 2d69c5d6db1b130102af3dae0690673b +Plaintext = 89ce46b3de3afaf2518d419b1a2ac24cabca269a96 +Ciphertext = 4d96fde72c7159663bba19a22678e154176f519473 + +Cipher = aes-256-ccm +Key = c3a0c126cad581012151c25cf85a44472c23f83b6095b6004f4f32cd60ec2db2 +IV = 94ab51ce75db8b046d6ab92830 +AAD = 33f30ddd83002eea50fd4a8fae39d0980a04160a22ac88b755ac050f1d1f8639 +Tag = 489903365970c2673c9fd457e1077aad +Plaintext = edf1682a626e9fbf3d57bb260e0876c6f92ba5b114 +Ciphertext = 29a9d37e90253c2b5760e31f325a55de458ed2bff1 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = f5353fb6bfc8f09d556158132d6cbb97d9045eacdc71f782bcef62d258b1950a +Tag = 6eef83da9f6384b1a2bda10790dadb3f +Plaintext = 3cbb08f133270e4454bcaaa0f20f6d63c38b6572e766 +Ciphertext = 3966930a2ae8fdd8f40e7007f3fde0bd6eb48a46e6d2 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = e3a1555ffe5f34bb43c4a2dae9019b19f1e44a45fb577d495d2a57097612448d +Tag = 587bdd120a7d08cd3841cb117af444fb +Plaintext = 946e86795c332031e2d1ee09d3d4a101fb6800d00911 +Ciphertext = 91b31d8245fcd3ad426334aed2262cdf5657efe408a5 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = 9c5d43c1a1269cde199509a1eff67cc83a1759b71c9e7a6ee99f76b98c6e23a6 +Tag = 45b32f81dcf03e2bcc2aaf62ad366e97 +Plaintext = b76ce2ab0065ba1c0a754494991c8c452cb416f18ab1 +Ciphertext = b2b1795019aa4980aac79e3398ee019b818bf9c58b05 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = b07452a7900a289b91b2771dfdd5108852536659aa259def7b41e38f80bd03ab +Tag = fea17d78533bc9e022dbfb460afdf499 +Plaintext = a3e0d8d0784155bfc45769c52711d4fa68e8bc390c20 +Ciphertext = a63d432b618ea62364e5b36226e35924c5d7530d0d94 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = 6b30f55c3101540523a92380390f3f84632f42962061b2724cde78ac39809397 +Tag = 56defc6dcaeec80b1c639350ab6f1fde +Plaintext = 6e6a88abbb52a709b47365ad6aa8016fa9a03a9bd834 +Ciphertext = 6bb71350a29d549514c1bf0a6b5a8cb1049fd5afd980 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = 9fc62d14f8b7a6026509275cff80312ff1ade2b5d9c274cb72a506a571439fc1 +Tag = 9d37b7251fb8c0ef2b37c36d51219d0f +Plaintext = eba1810d537041821121aeff8e0914ac26a550072c8c +Ciphertext = ee7c1af64abfb21eb19374588ffb99728b9abf332d38 + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = 6b9389cc42113d639fd2b40cbc732ae0dc7c14513b88b36b45a6ea5a06fe4d2b +Tag = d279d9da4437c8a2a252436508134c56 +Plaintext = dfc6692cd2442e5ff1f918c8812a27f81d107d16a12f +Ciphertext = da1bf2d7cb8bddc3514bc26f80d8aa26b02f9222a09b + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = db72d98d63fc10acff7dceec0e2691a80ecee50a0e957ad166c77952a50318bd +Tag = 63943543bc1c5f5991ecc5964a288f79 +Plaintext = 9ad338cbfd1b52e6ae4178f05e00062274f8b0b25eae +Ciphertext = 9f0ea330e4d4a17a0ef3a2575ff28bfcd9c75f865f1a + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = e98b710c47a4d12a73cd8aa2613fc2910c16f4195ea7f15650132493521d19be +Tag = 0a49ee2b7ceddcbd28abb24b77d5edee +Plaintext = 9f5a05db89e0e336da066ce81b79ad9be1d0ec4fb7b8 +Ciphertext = 9a879e20902f10aa7ab4b64f1a8b20454cef037bb60c + +Cipher = aes-256-ccm +Key = 9cdebaeee8690b68751070691f49593668a6de12d3a948b38ddbd3f75218b2d4 +IV = af1a97d43151f5ea9c48ad36a3 +AAD = 527817316fc48b105f8ab178dd2db1fefa09c50461aa9d8bdf3c03482343bbf9 +Tag = b099a68cfa3572d974e03232e09f37fb +Plaintext = 58f31e5770070a5d4031fb795dc2d298561d3559960d +Ciphertext = 5d2e85ac69c8f9c1e08321de5c305f46fb22da6d97b9 + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 0cda000ed754456a844c9ed61843deea9dadf5e723ea1448057712996d660f8c +Tag = 6950608d7bcb39dcf03a2cab01587f61 +Plaintext = 79ac1a6a9eca5e07ce635bfd666ef72b16f3f2e140d56c +Ciphertext = 1abcc9b1649deaa0bfa7dcd23508282d9c50ca7fee7248 + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 3fb6ddb76809b8e6d703347664ef00a365955124c603900d5c8d4ff476138252 +Tag = 1c4fb40e5c8bc37152a173d4bbb18c3e +Plaintext = 76d12e3c4c5d990bf563c60aa4999e52998d887f97477f +Ciphertext = 15c1fde7b60a2dac84a74125f7ff4154132eb0e139e05b + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = d9fc295082e8f48569eb073ac1b9566246728fc62ccaab4a5667c472c98b2626 +Tag = 019c359008adae3070b5a543ead0effb +Plaintext = a027c28fbe22111fd4c8a226cfe8531c16d7790d561eca +Ciphertext = c33711544475a5b8a50c25099c8e8c1a9c744193f8b9ee + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 7a459aadb48f1a528edae71fcf698b84ed64dc0e18cc23f27ab47eeabeaf833f +Tag = bd099ab134756b90746762a92a4a9f7f +Plaintext = fa597e37c26c38694abdcf450f9edc529160fa0d651979 +Ciphertext = 9949adec383b8cce3b79486a5cf803541bc3c293cbbe5d + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 484207909dec4c35929ebe82fcacf20d2af6d850bd69364ebac9557adeadfbd4 +Tag = fa4f6adfec85d055310107ba89198afa +Plaintext = 9e4c8aa9b58a8eabc5586892f5541000b43f17d9a051a0 +Ciphertext = fd5c59724fdd3a0cb49cefbda632cf063e9c2f470ef684 + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 88b5448372548e6aab1b262630a28a471d285514703f1bdb10c695850e18fe6d +Tag = 915d23eb2e952afcc89fbddb567d9d75 +Plaintext = 7d9582cf9e3bb9ee34dce965f56b08e716589486b0641c +Ciphertext = 1e855114646c0d4945186e4aa60dd7e19cfbac181ec338 + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 0e71863c2962244c7d1a28fc755f0c73e5cbd630a8dbdeb38842d7795d830d2e +Tag = aad6c31828314e24198f005955ca8f5e +Plaintext = 5a387e7cc22491fc556fe6a0c060b4911d01f0c11f801e +Ciphertext = 3928ada73873255b24ab618f93066b9797a2c85fb1273a + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 2aa7a28da38c42fda2e578d9d6340cd8e80b9b32047c3db296d0640d517b0872 +Tag = e531ebbadccfe47182b41904bbfebcfe +Plaintext = 87946e910059cbaf48df63b220f397049c65ca10cd1920 +Ciphertext = e484bd4afa0e7f08391be49d7395480216c6f28e63be04 + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = 3382051c268891da04e6ca73adcead4029f6a1593be4acfe3968e7351a6a2fb5 +Tag = 7c582414154236c09ee704cf4a5de411 +Plaintext = c62f67d208f1c8ffd5d57df9de15ef54f97fbc07d1630a +Ciphertext = a53fb409f2a67c58a411fad68d73305273dc84997fc42e + +Cipher = aes-256-ccm +Key = d34264a12c35cdd67ac105e2826b071e46f8131d1e325f8e0ae80a6447375135 +IV = 3891e308b9f44c5b5a8b59004a +AAD = c352828b1920e53bbb60f2ea6a5f15639659e6f3243405c26f6e48628d5519a9 +Tag = 57c9990029c89d1b37988745fa5737a3 +Plaintext = 697e73eaaf562d31bdbf7ce9e78c7426fe1c87e421def9 +Ciphertext = 0a6ea03155019996cc7bfbc6b4eaab2074bfbf7a8f79dd + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 5f8b1400920891e8057639618183c9c847821c1aae79f2a90d75f114db21e975 +Tag = 0f73bfb28ad42aa8f75f549a93594dd4 +Plaintext = 9cea3b061e5c402d48497ea4948d75b8af7746d4e570c848 +Ciphertext = f28ec535c2d834963c85814ec4173c0b8983dff8dc4a2d4e + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 1ae8108f216defea65d9426da8f8746a3ae408e563d62203063d49bf7e0d6bdf +Tag = 4de907a59c5e4d3f21e1348d7cdf92b6 +Plaintext = 2b223932fb2fd8433e4b1af9e8234a824569a141f6c96a69 +Ciphertext = 4546c70127abacf84a87e513b8b90331639d386dcff38f6f + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 460f08114b1015fe8b7a9b5dd1b9e6a3d28367c4bd15f29b13c02a8cb9a53968 +Tag = ff4239544e2f354d6c6837cd9c23b884 +Plaintext = 4d57cbe4a7e780d4ed17267d5ebc91750c2f0209e0444bd2 +Ciphertext = 233335d77b63f46f99dbd9970e26d8c62adb9b25d97eaed4 + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 860f4428259d9c5b17698cc95363db6cfee603258582e3a3e8feb886599d4ac4 +Tag = 3f6c6f7cc494201069344e2d6d41bd9b +Plaintext = fda8665f87c618646a89c7abdca275fd10c31453ad4b9c99 +Ciphertext = 93cc986c5b426cdf1e4538418c383c4e36378d7f9471799f + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 1b43c482f83780c21583f88e5afcf6938edd20f21b74d895161b60c27a6a42f0 +Tag = 3787a15352cfceb028202c8730beaa7a +Plaintext = 98104fd3f3413ad1f57ef4912cb50097dca379a58c47b0d2 +Ciphertext = f674b1e02fc54e6a81b20b7b7c2f4924fa57e089b57d55d4 + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = b082ccd964617c27a5607b7324faad237ee53acfc18c35502dbf7c1937a9dfcb +Tag = f3a0ca3da647eb31893e867956097983 +Plaintext = b46b343e64d2d70e0bd909dbb3f6bedf7e4adc74321be526 +Ciphertext = da0fca0db856a3b57f15f631e36cf76c58be45580b210020 + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = b8539ba93ef17254ec1d8d62e8f4eae4d41ee1e75345bf90c9cbb26c63bce501 +Tag = e663fbbebbc251b9f1760afa49e89e71 +Plaintext = 8e12620bb575e6b167b085255b2b5631ff28e04cbef8826d +Ciphertext = e0769c3869f1920a137c7acf0bb11f82d9dc796087c2676b + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = b6b09463b5ef5ead1f17f4021693a0d8452e98dcbb8e7590f9fde6394970a6f8 +Tag = da90cd87e9d9ca5d85430a150e682752 +Plaintext = 792aaa23b923d1b53173fe19853b9aa402a301d48529873e +Ciphertext = 174e541065a7a50e45bf01f3d5a1d317245798f8bc136238 + +Cipher = aes-256-ccm +Key = 4ad98dbef0fb2a188b6c49a859c920967214b998435a00b93d931b5acecaf976 +IV = 00d772b07788536b688ff2b84a +AAD = 390f6de14d5e1f2f78dbe757c00b89209d0cf8bc48cbbea035779f93de357905 +Tag = fc0cc4601afb61efa7059cfe49ec9dde +Plaintext = ddc5b4e48970ebd72869be6998e9103c014475e8ae6ea29c +Ciphertext = b3a14ad755f49f6c5ca54183c873598f27b0ecc49754479a + + +Title = NIST CCM 128 Variable Tag Tests + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 2084f3861c9ad0ccee7c63a7e05aece5db8b34bd8724cc06b4ca99a7f9c4914f +Tag = a8c74677 +Plaintext = a2b381c7d1545c408fe29817a21dc435a154c87256346b05 +Ciphertext = cc69ed76985e0ed4c8365a72775e5a19bfccc71aeb116c85 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 79db716e6b0b1627890d378c4560eba7871883d94527be3454dc3c257ea93556 +Tag = 676e2df1 +Plaintext = 47f4cdd574264f48716d02d616cf27c759fdf787cdcd43b1 +Ciphertext = 292ea1643d2c1ddc36b9c0b3c38cb9eb4765f8ef70e84431 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 0d02778f90a164a4f9ada9dc7fd24eeb941069621418ef32c3f9ca6bf6fb2c4a +Tag = eb1321a1 +Plaintext = 5eadeaec29561244ede706b6eb30a1c371d74450a105c3f9 +Ciphertext = 3077865d605c40d0aa33c4d33e733fef6f4f4b381c20c479 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 02e5a1306f612bdec098458cff3e691d93f050ba11ba627355dc7029d2cea5ab +Tag = dd8cb4ca +Plaintext = aac9fb69fed114c62db65090947096a2f5c85c271c6a6d53 +Ciphertext = c41397d8b7db46526a6292f54133088eeb50534fa14f6ad3 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 25144e807e389bb0e45b6dc25558caf61a2263869c4d0e4079d07674d7091110 +Tag = b659a844 +Plaintext = fb6e8d38ce38a8c1e710f3a33c682e6dabf055fb33fe75f8 +Ciphertext = 95b4e1898732fa55a0c431c6e92bb041b5685a938edb7278 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = be303c1ed9327ad88dae7cb5930b5a786d4f5477ef9370a9fdb56501964cb8fa +Tag = e9e5e005 +Plaintext = 87d81389a6062e8ed501ea964c2fe35b2d3de9fd676c04f7 +Ciphertext = e9027f38ef0c7c1a92d528f3996c7d7733a5e695da490377 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 46dfb8f3e06c3f168e5ac9b341e7710d7b9c6a19b32389eafb58036de0a27756 +Tag = c9fc48e0 +Plaintext = e1bd9095fa9bb811e4054643feea3eac13fb57b43a0502a0 +Ciphertext = 8f67fc24b391ea85a3d184262ba9a0800d6358dc87200520 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 19eb03c35c352b79e8c32fa40bb9759b0565e04a6c18519ace346e2e9987a250 +Tag = ac73022c +Plaintext = 92f7dc22dcbbe6420aca303bd586e5a24f4c3ed923a6ebe0 +Ciphertext = fc2db09395b1b4d64d1ef25e00c57b8e51d431b19e83ec60 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = efa6ddd6fb8e4480a0f64414694e5f9e7f2e9b97cbe9cd145b65173d072ab001 +Tag = 5dc8d581 +Plaintext = cecdf831c4044c8fe149e4cd579a1aecf222bf8e9dadba09 +Ciphertext = a01794808d0e1e1ba69d26a882d984c0ecbab0e62088bd89 + +Cipher = aes-128-ccm +Key = 43b1a6bc8d0d22d6d1ca95c18593cca5 +IV = 9882578e750b9682c6ca7f8f86 +AAD = 1b156d7e2bf7c9a25ad91cff7b0b02161cb78ff9162286b0622fccda2e251c97 +Tag = b941b65b +Plaintext = 7cfb0973ea13dedc33ef6728db90f47559273ea6d3cd4db6 +Ciphertext = 122165c2a3198c48743ba54d0ed36a5947bf31ce6ee84a36 + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = cd149d17dba7ec50000b8c5390d114697fafb61025301f4e3eaa9f4535718a08 +Tag = 32bc2ffa8600 +Plaintext = 8db6ae1eb959963931d1c5224f29ef50019d2b0db7f5f76f +Ciphertext = df952dce0f843374d33da94c969eff07b7bc2418ca9ee01e + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = 463c65fa7becae5605af80d1feca59075ee88c0abfc72cb463312b3c772ec308 +Tag = 8b847d3a0c98 +Plaintext = bde3fc83287ddd1227bdab4305102c94d885412eb332bf6b +Ciphertext = efc07f539ea0785fc551c72ddca73cc36ea44e3bce59a81a + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = ab153b0a8933f2eb0d721621c86de0cfe100d13e09654824b09d54277912c79d +Tag = fb4f9d559a8e +Plaintext = 82176e573c6070faa08d18b5957f119bb1ff51d744b04240 +Ciphertext = d034ed878abdd5b7426174db4cc801cc07de5ec239db5531 + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = b22aba8d3e9f4b4bf006e26062de15daf94597731a6009129bfd12957877b1ce +Tag = 1e09ff3d6a6c +Plaintext = bcfc4485eaf225d945146374b737cdf5301c7738ea9f142a +Ciphertext = eedfc7555c2f8094a7f80f1a6e80dda2863d782d97f4035b + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = eb80a43c5986deee6925d7c6d53cbdcbe11194843ea133f72d3590d8e8363efa +Tag = b60ba1175f1b +Plaintext = aa182e3ec4fb2f7a905c03582b2ee100ab81a9a311a778bc +Ciphertext = f83badee72268a3772b06f36f299f1571da0a6b66ccc6fcd + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = 3ee186594f110fb788a8bf8aa8be5d4ad52d6e3bd5f406f080d9df0d7553a851 +Tag = 4a75860f3dd6 +Plaintext = 8ad6db8216af16bfda3261a220d078cc98c8ad134e4a80ca +Ciphertext = d8f55852a072b3f238de0dccf967689b2ee9a206332197bb + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = d36fc18b5b12662ff5f6ea55af7c7a82d25d386220e399a85a590b1505c0dcd5 +Tag = 00cf106d70a4 +Plaintext = a65d24bd1ab92d8d294d654423412860e113c976f12ed76b +Ciphertext = f47ea76dac6488c0cba1092afaf638375732c6638c45c01a + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = f0028503e7cd54474c56dc8b2416fe41f416eed73c63ddd141bdd51a0f8fe49c +Tag = c0193a87ddfb +Plaintext = 6e9dc61dd9cf19a6eebc10c9b51c13970636de2c9ea33592 +Ciphertext = 3cbe45cd6f12bceb0c507ca76cab03c0b017d139e3c822e3 + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = 9a58a226a578bda012dbd7d04b11c879179aaaa36c6145418586cb103360c6c2 +Tag = 444d9b63ffab +Plaintext = b526896c11e514b5b4c26351859e2a33800fefd6fd9e6d1a +Ciphertext = e7050abca738b1f8562e0f3f5c293a64362ee0c380f57a6b + +Cipher = aes-128-ccm +Key = 44e89189b815b4649c4e9b38c4275a5a +IV = 374c83e94384061ac01963f88d +AAD = c015fb08540755a8a8adc387d60553478667158964202eb2d25e28efd94c8c76 +Tag = c339ba21fcf7 +Plaintext = 88907b639f3fd07f40bf6b9b6334b11b2852557975721bf3 +Ciphertext = dab3f8b329e27532a25307f5ba83a14c9e735a6c08190c82 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 34396dfcfa6f742aea7040976bd596497a7a6fa4fb85ee8e4ca394d02095b7bf +Tag = f6d1d897d6051618 +Plaintext = 1cccd55825316a94c5979e049310d1d717cdfb7624289dac +Ciphertext = 1a58094f0e8c6035a5584bfa8d1009c5f78fd2ca487ff222 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 25865c1b89f1973bfa680d8458df35a56993a7e81e407e061794004068e481ab +Tag = ceca422687f41550 +Plaintext = 36004342dd74e7966692a848b2c11e1fc311eac9d9cef616 +Ciphertext = 30949f55f6c9ed37065d7db6acc1c60d2353c375b5999998 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = e6209480da9e49172ba58a9048f2f1b0349030e8e7a79dcdf295eecd613f401a +Tag = d2b981fc741f2591 +Plaintext = e81f4fb360bcae372d8be3f32655a29bc10a2f31876173cc +Ciphertext = ee8b93a44b01a4964d44360d38557a892148068deb361c42 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 112c969882e685b4ae1ee6b67f680e6a1d9d840e627d12118f991c1a3d71314c +Tag = a1fd47cd41fcf013 +Plaintext = 27d6443e729d35d7a0690fcb7fe0b20892875f60b5d8763a +Ciphertext = 2142982959203f76c0a6da3561e06a1a72c576dcd98f19b4 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 73ef62870c50faca5d4e6c6ec45fa7b54bf79ed229fcf1fc8c79c9c09596039b +Tag = 43eb86ffa6958d71 +Plaintext = 6c17ad5496dfccde8b877630e1e582dab52aaabe385a321f +Ciphertext = 6a837143bd62c67feb48a3ceffe55ac855688302540d5d91 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = b537f0f2981405f6069b401966656461b3516a32d181777121a60cea537e7cef +Tag = 1dfc38975c948d29 +Plaintext = dc4a1e39561f14321238272adff8b74a4e770c0a0c864a52 +Ciphertext = dadec22e7da21e9372f7f2d4c1f86f58ae3525b660d125dc + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 96bd747ccdcd5fa6cd920514a2f38203e82ee9c7ec6e88080e9f6e2a6a812b0d +Tag = 20a48ee3845d9e7a +Plaintext = c51958d7d7d39906b14d4ebb574db881355ec3e6b41838dd +Ciphertext = c38d84c0fc6e93a7d1829b45494d6093d51cea5ad84f5753 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 690d6a2377314fc2f7dd06ae401e3585c79faf648a7af358ae4ef615669222eb +Tag = 884188f946c9a317 +Plaintext = 9eaf24f84e8818e286410de321d65ffbf25d1a14073c60da +Ciphertext = 983bf8ef65351243e68ed81d3fd687e9121f33a86b6b0f54 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 748dc83299a43033239ad2fef2dc3d72b76a38ca127607cef72de94a56d5e5c0 +Tag = 0ae2dd33327f8459 +Plaintext = 71c8eb0079559a306e236c49b7ce1b6cfe26c7888733eb7e +Ciphertext = 775c371752e890910eecb9b7a9cec37e1e64ee34eb6484f0 + +Cipher = aes-128-ccm +Key = 368f35a1f80eaaacd6bb136609389727 +IV = 842a8445847502ea77363a16b6 +AAD = 35a49535684637f67573fb0b4fdc1bdd8a57650a1d8f29b866fa552a6e0cdf91 +Tag = c50821a48b93d0ca +Plaintext = f09569906381138cc49e3fc2384c5d33c34abd3d617c487b +Ciphertext = f601b587483c192da451ea3c264c8521230894810d2b27f5 + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = c71620d0477c8137b77ec5c72ced4df3a1e987fd9af6b5b10853f0526d876cd5 +Tag = 6d86e69c07f053d1a607 +Plaintext = 84cdd7380f47524b86168ed95386faa402831f22045183d0 +Ciphertext = a7fbf9dd1b099ed3acf6bcbd0b6f7cae57bee99f9d084f82 + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 7b40b3443d00a0348a060db109e8882157612c43084ac5c3e9c5350c88bc165d +Tag = 94af9359a96acfb31a4a +Plaintext = 7ebb051741145a3bad87131553375c6debcbcecee9b79ee4 +Ciphertext = 5d8d2bf2555a96a3876721710bdeda67bef6387370ee52b6 + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 5cab3b84687070956916c11cab0ceea61adb6ea1f909be63d73df96fbfa3a9f4 +Tag = 36d3920d1012bf093a5c +Plaintext = 35a29c1bcbe2182f34fe05f09dfb9ac4a496f95819ef11ec +Ciphertext = 1694b2fedfacd4b71e1e3794c5121ccef1ab0fe580b6ddbe + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 6d440b44a069a6967f8750c3b4f8118798fe32d2eaa696ccc7f24e16d6366753 +Tag = c23025c1776811647f99 +Plaintext = a0e21d971876ae4048a61b43a3ac07c685005a20bccbe6ec +Ciphertext = 83d433720c3862d862462927fb4581ccd03dac9d25922abe + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 06904325b8c6fc2b5a0412ba8062cd48d3af51beacb5ced9e2bdf8d0e056b738 +Tag = 6efeeaed29e65f1a8908 +Plaintext = 8d333ed7d4b208e794e1673f6df692caee4e3a00fc49115e +Ciphertext = ae051032c0fcc47fbe01555b351f14c0bb73ccbd6510dd0c + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = e5049e1c32f0a000024882e4fca9b77adb6c87fdbad96d0c8e97bdb8f46789dc +Tag = 70d42f84a5411dfa43f9 +Plaintext = 4189351b5caea375a0299e81c621bf434b6b97da68ad44be +Ciphertext = 62bf1bfe48e06fed8ac9ace59ec839491e566167f1f488ec + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 6f0be1905d1b5b607574ad93a1e7b4a536020fc6798acae862253916a0562707 +Tag = add2256112d1f7d04934 +Plaintext = 5a063a24410b3d265c9a32a027cb2382a52bb8e35db15b98 +Ciphertext = 793014c15545f1be767a00c47f22a588f0164e5ec4e897ca + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = a90f9f55ef22f5e6c542ed3573a9ab67d9c3b6775587fc2be70817479347ce00 +Tag = e187f5f37e8a5029ca4e +Plaintext = 0b72cb09a444be2d7b34cf9997fc5b885851d7e6092008b4 +Ciphertext = 2844e5ecb00a72b551d4fdfdcf15dd820d6c215b9079c4e6 + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 4dd64fd7d8b571704cddabef854c51691ace4c30de74bfecad42eaed65284ebf +Tag = fbbb92009435f9ab6691 +Plaintext = ce2d996c9a4cf85edb888822773e03179feeb9e4b0928d6a +Ciphertext = ed1bb7898e0234c6f168ba462fd7851dcad34f5929cb4138 + +Cipher = aes-128-ccm +Key = 996a09a652fa6c82eae8be7886d7e75e +IV = a8b3eb68f205a46d8f632c3367 +AAD = 75f4031d2e5098a9ea3eaa20c2423fbc1705ea18289efb96e311f3fefc153b67 +Tag = 3cae38db7cc9d577b0ed +Plaintext = aa182e3ec4fb2f7a905c03582b2ee100ab81a9a311a778bc +Ciphertext = 892e00dbd0b5e3e2babc313c73c7670afebc5f1e88feb4ee + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 2c16724296ff85e079627be3053ea95adf35722c21886baba343bd6c79b5cb57 +Tag = d6965f5aa6e31302a9cc2b36 +Plaintext = d71864877f2578db092daba2d6a1f9f4698a9c356c7830a1 +Ciphertext = b4dd74e7a0cc51aea45dfb401a41d5822c96901a83247ea0 + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 78230f73f9c0150f630eca4cd679818551d449db82e665d8dc25fc53ebc11293 +Tag = 6356e2548a22e7cbee3b89d4 +Plaintext = 048ba28abb191ded5449dfe9dc7d19f9b132a2a9fd779aab +Ciphertext = 674eb2ea64f03498f9398f0b109d358ff42eae86122bd4aa + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = c09191a7d2fca98fca486f8843f275a78d57b8c9a6d330d5652ba641f928c6d8 +Tag = 35516f170a2aada38d1d94eb +Plaintext = adf51386b3cc133ea9d18e679fe4bbf10ea780b7bed57d6a +Ciphertext = ce3003e66c253a4b04a1de85530497874bbb8c985189336b + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = ea46cc1a7ba5afaa6176f8dedc049283d2ac38fa74ef37ea1fc575328033b222 +Tag = ea2d3237788a02ff15258351 +Plaintext = f660a28551416b2f8e21466ba99daee280a91740d98219cf +Ciphertext = 95a5b2e58ea8425a23511689657d8294c5b51b6f36de57ce + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 3093b74eb088bdd59999629d59509920938f4feabbd29df8e0b44364c8b55244 +Tag = 65fb6719509987930d350890 +Plaintext = b9a96f0e4c6dea8861e888bdd693b300017718da958aaa00 +Ciphertext = da6c7f6e9384c3fdcc98d85f1a739f76446b14f57ad6e401 + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 5580672e52aacb9d714a34c31c33fc221e13e8f90849adbad3f6b3bec8571838 +Tag = 8ecdf173444c334cfda5b22b +Plaintext = cc4acdbd34ec9b7cbc3e23a53e0627c2a7c63206f3e0298d +Ciphertext = af8fddddeb05b209114e7347f2e60bb4e2da3e291cbc678c + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = c7acf1b17609dc336df1006ffac6497777cdfd497c8c91525377c130accce0bc +Tag = 2221c860022d92b0f961c3e6 +Plaintext = ed75d28be4794ad81bbc0f26a11c5466f23c0270d2d7b8f8 +Ciphertext = 8eb0c2eb3b9063adb6cc5fc46dfc7810b7200e5f3d8bf6f9 + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = ac1adca686e1d129142c49f26b52941d037d8052b8a27d5215b7ffcfd2202481 +Tag = 1c73d6a695afc704228ed7a1 +Plaintext = b8234b8bd34d9c6ceffebbb85722764e7d37e43c495256e0 +Ciphertext = dbe65beb0ca4b519428eeb5a9bc25a38382be813a60e18e1 + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 472bf7946bce1d3c6f168f4475e5bb3a67d5df2fa01e64bce8bb6e43a6c8b177 +Tag = bf1e81950e44c63183a679d7 +Plaintext = 790134a8db83f2da35dde832c3ae45ec62aff0274495d6e7 +Ciphertext = 1ac424c8046adbaf98adb8d00f4e699a27b3fc08abc998e6 + +Cipher = aes-128-ccm +Key = 3ee186594f110fb788a8bf8aa8be5d4a +IV = 44f705d52acf27b7f17196aa9b +AAD = 1340ac7ff04dd7450afc13f8fa52df6d526c744a2dc2f76b0aadf284da270508 +Tag = c2c3a1876e49a47a9b44b737 +Plaintext = 21ea2f778cf37aa02fea30e855c20a77909548da4ee7eb61 +Ciphertext = 422f3f17531a53d5829a600a99222601d58944f5a1bba560 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 76cf3522aff97a44b4edd0eef3b81e3ab3cd1ccc93a767a133afd508315f05ed +Tag = ddb36e37da1ee8a88a77d7f12cc6 +Plaintext = ea384b081f60bb450808e0c20dc2914ae14a320612c3e1e8 +Ciphertext = 79070f33114a980dfd48215051e224dfd01471ac293242af + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 41aa11ec55980609482575b97eee172590ff545d5798fd4246313da3fdbbcda6 +Tag = a850b0116f3269b5e44e57de7166 +Plaintext = 811d54bad842a8b92b96fc03b4fff8b5f1939fd3a49876dc +Ciphertext = 12221081d6688bf1ded63d91e8df4d20c0cddc799f69d59b + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = dedfb02e93b975270f50cffa3351c85975a7b21fd89bbb921c40c1e5310e6702 +Tag = 0f053627bd0c90714820c4fbe5ec +Plaintext = 8bbf87b490020b863fc596a8d169d79c0cb3506e1f1f5aa2 +Ciphertext = 1880c38f9e2828ceca85573a8d4962093ded13c424eef9e5 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = a727ed3d13331ee6a224ae4b73f0ccb04b997fcf88533a1f57e9b055275de92b +Tag = f865a77d66f1232cd7e36af3d1be +Plaintext = 7294ae94358669f2ada4b64c125b248df7fe86c6715e3b6a +Ciphertext = e1abeaaf3bac4aba58e477de4e7b9118c6a0c56c4aaf982d + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 6704dc39a259152d2dc3f08b8799ffecf4e1bc38ce5b77c71cc293c6664ef2dd +Tag = e1fba154f6b166549d0d6bb9b573 +Plaintext = 48033c46389f6221fb9cdda1ecb8fc25fdec6afe4eaa5fd0 +Ciphertext = db3c787d36b541690edc1c33b09849b0ccb22954755bfc97 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 6cba004dfb5e5d9e1433bf1223039ae1d2df89cd2db68f550327a22c8f946ae9 +Tag = c485e9e28ae33959f8acbb640fbf +Plaintext = 01acc909b7d3bb3b3e1f72845f05238d2e1d9162976d3bd2 +Ciphertext = 92938d32b9f99873cb5fb316032596181f43d2c8ac9c9895 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = dd5799710523aa1da0b1209fab1e6f2ed177444ed3880d462deebbd5f774c621 +Tag = 8ef976fa9bda9544ed94ef266ed2 +Plaintext = 3706def87786e49baec2d13407865286cb4e05908cac430f +Ciphertext = a4399ac379acc7d35b8210a65ba6e713fa10463ab75de048 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 5d7505ff863d218f6822150455b977ad2df3c02be094f6832ee68872b1ae7a01 +Tag = 0caadf1dbd07515e3bfb6992e2cd +Plaintext = f38d4b225d9b80a0c5fadc61476aef419ad3d18937d8661f +Ciphertext = 60b20f1953b1a3e830ba1df31b4a5ad4ab8d92230c29c558 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 796b62c7abf797de7f6bad8bf5d549688ccb7ada62fff9469c14b08208b07a8a +Tag = 733ad369e4a067b7976c9d6d0456 +Plaintext = 993bb3a85f67f6c1a809d8094ee80e2ad9b694063af2fdb3 +Ciphertext = 0a04f793514dd5895d49199b12c8bbbfe8e8d7ac01035ef4 + +Cipher = aes-128-ccm +Key = 7b2d52a5186d912cf6b83ace7740ceda +IV = f47be3a2b019d1beededf5b80c +AAD = 84fd27557aeb283282366083e3586f3a59691ccd0d43ec81c4e5f4e85715eba8 +Tag = 39860d66891f32ce0a09788f5899 +Plaintext = 1286506be19fb865a288b09dda8af4323567cd9a66e08643 +Ciphertext = 81b91450efb59b2d57c8710f86aa41a704398e305d112504 + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = 40a27c1d1e23ea3dbe8056b2774861a4a201cce49f19997d19206d8c8a343951 +Tag = d80e8bf80f4a46cab06d4313f0db9be9 +Plaintext = 4535d12b4377928a7c0a61c9f825a48671ea05910748c8ef +Ciphertext = 26c56961c035a7e452cce61bc6ee220d77b3f94d18fd10b6 + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = ac8dde7ba60e4ba226eecb0a789b1c4673ddffe8f371464389f52f767004f0a6 +Tag = 96363d27b9e11fee55111b273399f5ff +Plaintext = 7c0889854658d3408c5d8043aad2f4ae4a89449a36f8a3b8 +Ciphertext = 1ff831cfc51ae62ea29b0791941972254cd0b846294d7be1 + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = 8f2777ec4930f7e349c3bd4830120cebdd896db9d8a33d34f101672024bd737f +Tag = f741e15ad9b2f5ab864ad94d3f9de562 +Plaintext = c641cf589020b94026ae5ac0bfdc29822cc13862a54614c7 +Ciphertext = a5b1771213628c2e0868dd128117af092a98c4bebaf3cc9e + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = a87426f83bf91bd3c3556bf859cd97f51c92609879f02dbca9c7ae637a3fbf05 +Tag = 652a083ea1b43b7da026692c7aa796d7 +Plaintext = d204994c128d6204ef2939c22572daa56c12df2e4d3e33e9 +Ciphertext = b1f4210691cf576ac1efbe101bb95c2e6a4b23f2528bebb0 + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = 7ff9ca86f820e4d57995d450611009ffaa726e6fbe4ce1558ca1e775daed9ec2 +Tag = 057e0faa2711cfa1e3da5499f9a1ee0b +Plaintext = aff9bb0238689255f54cd5fdebe6d3dff5f5604ab8d77038 +Ciphertext = cc090348bb2aa73bdb8a522fd52d5554f3ac9c96a762a861 + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = faa6b7f8c6e076b5e5b981119b7ec2e0b9c73da4064f9704e303d5792f59674b +Tag = 90b39704d8913391ebd3424117b93b68 +Plaintext = 95d2cf30b6174b17278ad9f44079a2199082dab917f89763 +Ciphertext = f622777a35557e79094c5e267eb2249296db2665084d4f3a + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = b553e65640c1ad0d2ff748c5b2af9d970c74131cff4fa73384a33dfec056332e +Tag = d0a6cb58733be0a3b608afdf78eaa70c +Plaintext = aaa53244520e157c4890a0e62100a12daa84f9be710242d7 +Ciphertext = c9558a0ed14c2012665627341fcb27a6acdd05626eb79a8e + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = a9be73668b94bc6a212744522a0adff03d49fd495daadaf6cd32f4ca25ebc2b5 +Tag = af20ce64e6a821e39ca96aded43f0875 +Plaintext = 1066b96c3c44301073717520ea5c07adbac7759b88d52154 +Ciphertext = 73960126bf06057e5db7f2f2d4978126bc9e89479760f90d + +Cipher = aes-128-ccm +Key = 4189351b5caea375a0299e81c621bf43 +IV = 48c0906930561e0ab0ef4cd972 +AAD = 8b516c47e6630b2c31d8eefd8ba152d7315582a3f4d3f0e0eb2984a365b434db +Tag = cf4699d23f5fc6742bffebbd16858f6e +Plaintext = b5969813d0f892febe64ed52d429cc737b5df8d5e0c63207 +Ciphertext = d666205953baa79090a26a80eae24af87d040409ff73ea5e + + +Title = NIST CCM 192 Variable Tag Tests + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = 7dc8c52144a7cb65b3e5a846e8fd7eae37bf6996c299b56e49144ebf43a1770f +Tag = 1f2c5bad +Plaintext = ee7e6075ba52846de5d6254959a18affc4faf59c8ef63489 +Ciphertext = 137d9da59baf5cbfd46620c5f298fc766de10ac68e774edf + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = edb8834974b02fc9ab29b4b3c49683426124e729b44e43cde4ab9bb1b30b5531 +Tag = 24285996 +Plaintext = d05410f42d4759f8cab3884785cf8f60ecbf902e525b92e8 +Ciphertext = 2d57ed240cba812afb038dcb2ef6f9e945a46f7452dae8be + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = 8baf194e81e47a6ca82ca51b488339d014a0a494007793aa5201ac72fc3f808d +Tag = 6c510570 +Plaintext = db3022ef4cd68ae22b501599448ffe2dda15cfd2e259315c +Ciphertext = 2633df3f6d2b52301ae01015efb688a4730e3088e2d84b0a + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = c0b55acc7fbfa9d9af6e1f32b6626a1cd89b1c32513b5b50a18ddab028470953 +Tag = b418cfd2 +Plaintext = 7f0745bea62479c0080ecec52e37c1e32d72a6b3864da44a +Ciphertext = 8204b86e87d9a11239becb49850eb76a846959e986ccde1c + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = 9dc672e64c468242ddeec318c71f9b8cbaa14639eba3c861acfc26463fb7d5d7 +Tag = 3e5b5794 +Plaintext = 263dbe1bd5e9d9b29b316fe36ec8bb10f64543b4921c01f6 +Ciphertext = db3e43cbf4140160aa816a6fc5f1cd995f5ebcee929d7ba0 + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = 1798286c37c1504fc0d7402681f6f70711ef506dcc3e29d0183dc578ed976f92 +Tag = f63b4847 +Plaintext = 22dbba2b1a39074ddac736767ebdedc37e4208b233e03b34 +Ciphertext = dfd847fb3bc4df9feb7733fad5849b4ad759f7e833614162 + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = ed2898d0bcb34eebf98b5279bc3e8a20214321a7e23bc55b2b7613b1a9b94f2c +Tag = 7ab29a40 +Plaintext = f0f1235ee88d04de3f3d1489ec6b28b285a6a4fbb344911a +Ciphertext = 0df2de8ec970dc0c0e8d110547525e3b2cbd5ba1b3c5eb4c + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = 50c4a285d6a4e64efceb288b82e7c8277307cf1eaa4b8b9294f97a1c38926a60 +Tag = 68f40ff6 +Plaintext = 0e50aa6a3079c0b8d61e51c3bd93b592a03719acb9f0252e +Ciphertext = f35357ba1184186ae7ae544f16aac31b092ce6f6b9715f78 + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = b48a16fb9a065d3aeb2bdf1860e4b0f1348c8f13cd00b1729ff8c19e4e9724f3 +Tag = ceeff92c +Plaintext = 82f39f5207afcfd677a7544579f2b888a1eabdee4e835924 +Ciphertext = 7ff0628226521704461751c9d2cbce0108f142b44e022372 + +Cipher = aes-192-ccm +Key = 11fd45743d946e6d37341fec49947e8c70482494a8f07fcc +IV = c6aeebcb146cfafaae66f78aab +AAD = d92b80544f29aba52496e2c9a0aa4adeb89820be321cfd2f0a53585a15d04c7f +Tag = 619c1124 +Plaintext = bc3b08eec6506d1497572f901f0e5f3e9854b40b0f992d08 +Ciphertext = 4138f53ee7adb5c6a6e72a1cb43729b7314f4b510f18575e + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 599b12ebd3347a5ad098772c44c49eed954ec27c3ba6206d899ddaabca23a762 +Tag = 8ba1360406f9 +Plaintext = 473b6600559aefb67f7976f0a5cc744fb456efd86f615648 +Ciphertext = 26d2be30e171439d54a0fec291c6024d1de09d61b44f5325 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 3a8423feb661db30542dc3cfb596280429397f80755a4bc8d4d941d03b61aacc +Tag = b5e5938e8c75 +Plaintext = 7edfce3dedd65a8592aec2bfc7a751e2360f3137941fc960 +Ciphertext = 1f36160d593df6aeb9774a8df3ad27e09fb9438e4f31cc0d + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 0dc79993047fd6e7260aac4d847fdb4d16483f28b13b5f17330744d401d2875b +Tag = 94f534b76f0b +Plaintext = a9fb3ebba43c273cacbf0f7187030c69172f31382e9e059b +Ciphertext = c812e68b10d78b1787668743b3097a6bbe994381f5b000f6 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 6546d9a90e0e763679d5469a1bcffcc4f18f35f50c7714d14c7329b76ce7984e +Tag = 3c6c025faa1b +Plaintext = a7573e5b7dd7f4ce9e4480f603c14145a27f7c7a9246a3cf +Ciphertext = c6bee66bc93c58e5b59d08c437cb37470bc90ec34968a6a2 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 7f398ff0d47e2c0fccd8a16cc9e79b4813abac42e346fa33ba033956f798d6ac +Tag = ae0f88d836be +Plaintext = 84370557e0bbf74fd0a4533185adfe202d9fa9d622bba72f +Ciphertext = e5dedd6754505b64fb7ddb03b1a788228429db6ff995a242 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = d0f46fb37d516cc957aaefd3be2a8bede885330a8edb96f3e5e0ab8cd03a8c59 +Tag = 66d09f64b4c2 +Plaintext = 029575400bd3f2621c7d9ca9b6a09ea6f776968b19dc3f3e +Ciphertext = 637cad70bf385e4937a4149b82aae8a45ec0e432c2f23a53 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 4abaa4260c864572e12553c5aabfe62e4e7038490d4ba160119fc5d646780cc6 +Tag = 677fd479c852 +Plaintext = 448be3821d94452425fae41a06457260a2666e890fa94954 +Ciphertext = 25623bb2a97fe90f0e236c28324f04620bd01c30d4874c39 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 686e0578eadd19583291a01e11a29fc95a2c156da100dd85429ad58ba65440c6 +Tag = bbc332573774 +Plaintext = aebfe3e15a876412ec9df714f1afa898e69004c1ef25732b +Ciphertext = cf563bd1ee6cc839c7447f26c5a5de9a4f267678340b7646 + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = e3d29f970667286a81586aa02bb490c72d8bb3a308eafec5da0d105fddd1a157 +Tag = 33171a8ccec1 +Plaintext = 08b2ce5f7296016e86d02f8c7952d746703ee4f0429b8df3 +Ciphertext = 695b166fc67dad45ad09a7be4d58a144d988964999b5889e + +Cipher = aes-192-ccm +Key = 146a163bbf10746e7c1201546ba46de769be23f9d7cc2c80 +IV = f5827e51707d8d64bb522985bb +AAD = 9e2ea8eb7f56087ee506925648661eeefffd643a056cd4f4fc5cc23172b5c637 +Tag = bc8299cc9f95 +Plaintext = e73d7d23736db17cca816ab2440062a8051177d47feb514e +Ciphertext = 86d4a513c7861d57e158e280700a14aaaca7056da4c55423 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 4d6546167b3ed55f01c62bd384e02e1039c0d67ef7abe33291fecb136272f73b +Tag = 778a299f1224f10c +Plaintext = 0ff89eff92a530b66684cd75a39481e7e069a7d05e89b692 +Ciphertext = 6ef66a52c866bd5df20ec5096de92167ad83cab0e095ad0c + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 95722ef5e0cf9f482e4c359f1fd6b9efe2b6e0630413c40285b8958c31188ca4 +Tag = a5c2c6b097a04d50 +Plaintext = b1ea02e3721e44c327443fcf4b424cce19afbb9e8cf06b76 +Ciphertext = d0e4f64e28ddc928b3ce37b3853fec4e5445d6fe32ec70e8 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = f7b76a2a4fe0a1b07a6b193b4600aec02360eb35853d88fe8a4f31a8dda48ad9 +Tag = f62e74c2312f9243 +Plaintext = c1f9c7b2e0ba712b4d2b32e4693b145228213999703767fc +Ciphertext = a0f7331fba79fcc0d9a13a98a746b4d265cb54f9ce2b7c62 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 406f39cb77b8d8c63f7797d184b6ebde819af7d48de5003538c022fe96b841ce +Tag = f1cb228ffd2ff8e6 +Plaintext = ebf3a717546199c6f6b14efe8888613ca7e075e8290b277c +Ciphertext = 8afd53ba0ea2142d623b468246f5c1bcea0a188897173ce2 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 3dd3110703a95b05b9b9cff92ab7244e6c6dcb4509522c305d5d33e03f1b0b60 +Tag = 1f38e2d280a8f3ff +Plaintext = a0e317b790870e6703e6077dfb8ea327c12e29a17107284c +Ciphertext = c1ede31aca44838c976c0f0135f303a78cc444c1cf1b33d2 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 044ae4064156b6ebc0921cb2c3c607976339f824d4dc6902eac66910dce086b2 +Tag = afbcf46b4e75bb11 +Plaintext = 8a16990690717dc16eea24da39878a2ee7c1579976e5b173 +Ciphertext = eb186dabcab2f02afa602ca6f7fa2aaeaa2b3af9c8f9aaed + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 5479cc7f92460ff7a3e500f76d70e3036c44300005058b5517e3f64ad41b46b3 +Tag = fac11c84d08e918e +Plaintext = 1e7e51f0fa9a33ed618c26f5e37754df0f7de7778882c26c +Ciphertext = 7f70a55da059be06f5062e892d0af45f42978a17369ed9f2 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = f950e96d65a55efb3be3a55daffb421afad1d5625e3440a16414085469effe1c +Tag = b50cb871173d9bb8 +Plaintext = 3ef1f4c438dce131990ba536d7a6166022ae7de4a436f87c +Ciphertext = 5fff0069621f6cda0d81ad4a19dbb6e06f4410841a2ae3e2 + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = 52742be3969830ba9c2bce26c98c2fb44ac881ec55c85627b2c94ba17b0de8cf +Tag = 4ce29627efbc3523 +Plaintext = 3c7b4a68dfb766e24739f14932563fb81f24591f0e31e895 +Ciphertext = 5d75bec58574eb09d3b3f935fc2b9f3852ce347fb02df30b + +Cipher = aes-192-ccm +Key = bdf277af2226f03ec1a0ba7a8532ade6aea9b3d519fe2d38 +IV = cc3c596be884e7caed503315c0 +AAD = e16e5dc034719e5d815f937b672cf34d5d420a3945c8f73645241779d2bec150 +Tag = 095168ed90827db2 +Plaintext = 03038acd2d8351e4e5aa308e554abfcd0d0334d8f864ec60 +Ciphertext = 620d7e607740dc0f712038f29b371f4d40e959b84678f7fe + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 1bc05440ee3e34d0f25e90ca1ecbb555d0fb92b311621d171be6f2b719923d23 +Tag = 2ff0bb90a8879812683f +Plaintext = f5522e3405d9b77cbf3257db2b9675e618e8744a0ee03f0f +Ciphertext = b9103942dbbb93e15086751c9bb0a3d33112b55f95b7d4f3 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 25c32770a299020d8500d8a4b5d7621e4379dbd6ef34a9aceefd4055ea6144f5 +Tag = 6982d0796e1bd1cc9879 +Plaintext = c8bf145fcffbafd6cd1a4c5b6cedfe008aacb2528ef51c80 +Ciphertext = 84fd032911998b4b22ae6e9cdccb2835a356734715a2f77c + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = cba0e0140f094e17652ea6f64c26f69dd9429bfefb41aaf104c38f3f6501f4f9 +Tag = fe08edf50e05d4d85faf +Plaintext = f8813985f59bf284bd3882e899ca9b67fb496f3eb78d7ebe +Ciphertext = b4c32ef32bf9d619528ca02f29ec4d52d2b3ae2b2cda9542 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = a846d0f56eb963b308ab8f697adca378ab6ccf9f739edcd7f5db197b2ffa99ac +Tag = 800ae2523c5f161ed96f +Plaintext = 72862d82d940748d54369e3143192453069b80d10f32e569 +Ciphertext = 3ec43af407225010bb82bcf6f33ff2662f6141c494650e95 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 1dc5f6d6103ed2ae7f4ecd7b1bae4d5b9c0adef9100527b1737e1cf57f1175ef +Tag = 34a29547607846bc9834 +Plaintext = 46f2199305ff4e1f21a89d96d3902c54939f52278ba7aa0e +Ciphertext = 0ab00ee5db9d6a82ce1cbf5163b6fa61ba65933210f041f2 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 8c28bcb9c31191c347dd64e552af5aff500e6e6f39e866351dd7065501a2837d +Tag = 95f73957e86152df56bd +Plaintext = 18c38c41a4e70c3f7362249ea329059b0e026bce7ae976b0 +Ciphertext = 54819b377a8528a29cd60659130fd3ae27f8aadbe1be9d4c + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 1081afd5bf9f1a87169973ebdca85c2b69598154673d7ca9d6e2f63d52030fc1 +Tag = b2b028cd785f4f964069 +Plaintext = c89e388dd6124c41251e7422b420a71e4618f5cf9f0a63fc +Ciphertext = 84dc2ffb087068dccaaa56e50406712b6fe234da045d8800 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = 079bc543c966734fa70814139ba8051271ee1c4f701579013c427f8efb141db7 +Tag = fd3ef357e5e69f504c95 +Plaintext = 68449bc3f6c8bd8f3a46a8e147522d979948c88ca791d204 +Ciphertext = 24068cb528aa9912d5f28a26f774fba2b0b209993cc639f8 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = e7094697b78d20174ec3c97a48abcf67c2ba6790b4db5fda82b454becd2a25ef +Tag = e092ed15d1a074306a9e +Plaintext = 330088153204c3d5de7744047b60887c8c044e4eeaae4bab +Ciphertext = 7f429f63ec66e74831c366c3cb465e49a5fe8f5b71f9a057 + +Cipher = aes-192-ccm +Key = 62f8eba1c2c5f66215493a6fa6ae007aae5be92f7880336a +IV = 15769753f503aa324f4b0e8ee0 +AAD = f8d64ce2aa66e67de0f2fa584dec858983333b0570882ab628419bcee541395a +Tag = afaad39e9183b2970027 +Plaintext = 893c5c45db989bd39485caa05ed700bb17c526b426edf4ba +Ciphertext = c57e4b3305fabf4e7b31e867eef1d68e3e3fe7a1bdba1f46 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 29bdf65b29394d363d5243d4249bad087520f8d733a763daa1356be458d487e5 +Tag = 733013b8ebe5e92b1917640c +Plaintext = d0e4024d6e33daafc011fe463545ed20f172872f6f33cefa +Ciphertext = 479f3d408bfa00d1cd1c8bf11a167ce7ae4bcdb011f04e38 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 314f069dd4ac5aa3fdc2a74e83daa1d5d18330cd3b90684a9260bb48f5626d49 +Tag = 425a1bad4381dc84fee903e3 +Plaintext = 9ebd994a9af0cb94552ffd749fdd97f75a1ebd0ad3de3a9a +Ciphertext = 09c6a6477f3911ea582288c3b08e06300527f795ad1dba58 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 3aa7f30ac5bfbcb3f8de7c5e76269c608fbc76361d215e78abc0e308ddc3528f +Tag = efcb43c6aaec88b51d0a378b +Plaintext = 590a27721a36987d1ffa15f23c6ca5cc556dfcfa6993a2fb +Ciphertext = ce71187fffff420312f76045133f340b0a54b66517502239 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 5630345f662df248886f771b2b77cc0cbdc8fe4cc4a6cde52b1ea4e5d946cebe +Tag = b9a60374d9304316e2fc50d9 +Plaintext = 65f4b3a00c1c1ef39445a69b2150b034705410140ff9dad0 +Ciphertext = f28f8cade9d5c48d9948d32c0e0321f32f6d5a8b713a5a12 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 38ee97f0dc635c7416a024e3af5c95dd1d496db8a5a5c3bcc20b9093ca906dfb +Tag = 07611163d6b0f1734292ed8c +Plaintext = 0edea2afaeaf650704d2c6c6622aad82169807c983c17309 +Ciphertext = 99a59da24b66bf7909dfb3714d793c4549a14d56fd02f3cb + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = ea3b3f3c5b28f7d48af2ccf97083937baccb0a6b1a041080a73b15b9640ccf44 +Tag = edefbcbb51d9d607b7b2e8f8 +Plaintext = b80175a03dff1b10078ded64ed759e5453e3bc0657c68590 +Ciphertext = 2f7a4aadd836c16e0a8098d3c2260f930cdaf69929050552 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 287f31e69880823df7798c7970c0e42e600bf567ad78f5d559d0182d570c03cb +Tag = f2b6d4dc8afae25ff400d73d +Plaintext = 531c1e721e185f58b2c654b9098ce0c1338bab4149c7bef7 +Ciphertext = c467217ffbd18526bfcb210e26df71066cb2e1de37043e35 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 1d4579c9410cc34ade1352ed433e0d4faaaa28200e359bcb4140d35939b3a792 +Tag = 19cd80c1ce0f9ed40f1e9dec +Plaintext = cead1c5af16ca89bc0821775f8cba8c25620a03dfd27d6f1 +Ciphertext = 59d6235714a572e5cd8f62c2d79839050919eaa283e45633 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = 3fec0e5cc24d67139437cbc8112414fc8daccd1a94b49a4c76e2d39303547317 +Tag = e53d5aeccfb4a6837b79a625 +Plaintext = be322f58efa7f8c68a635e0b9cce77f28e3f8faaa76fcad4 +Ciphertext = 294910550a6e22b8876e2bbcb39de635d106c535d9ac4a16 + +Cipher = aes-192-ccm +Key = 5a5667197f46b8027980d0a3166c0a419713d4df0629a860 +IV = 6236b01079d180fce156fbaab4 +AAD = ec6857533675b5ed8d4315b0d5f59c826f3ccb2d0bd6f604bd54f7c9542123ce +Tag = 385e080bf29ae097c328789a +Plaintext = c222374d366baf2d0301340582aa056c04441ac766065ab1 +Ciphertext = 55590840d3a275530e0c41b2adf994ab5b7d505818c5da73 + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = 9ef2d0d556d05cf9d1ee9dab9b322a389c75cd4e9dee2c0d08eea961efce8690 +Tag = 3abcdb0563978785bf7fd71c6c1f +Plaintext = 78168e5cc3cddf4b90d5bc11613465030903e0196f1fe443 +Ciphertext = e2324a6d5643dfc8aea8c08cbbc245494a3dcbcb800c797c + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = 6f99d9ce00a4be502a5d2c76a07b914d56f49a1592c1ee2e46e11b3c9da0d083 +Tag = cb0e8ec0879db8ffa59125eac239 +Plaintext = 3c3992cac792e019720d38f768beac3deb6a43e7e1f59f20 +Ciphertext = a61d56fb521ce09a4c70446ab2488c77a85468350ee6021f + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = deae66f68bb18178d1bc0734f19fd3ab390049c2ca083a159f5c078fcb4f0a38 +Tag = 664a2d992f7cf821e19bb7d4dff8 +Plaintext = 8eaae72e532943d66ce8250c6b434d299b6afbf8e2b4f8b1 +Ciphertext = 148e231fc6a7435552955991b1b56d63d854d02a0da7658e + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = e2d592cb412e65f9044257d78e7491f9f80c8b08102c2d5da20535cef74ad8c8 +Tag = 46a4a816b709a55db450ac249c5c +Plaintext = 1b8096b79ace8c6ee5dbd8735f1287aa2c94865f382dc2da +Ciphertext = 81a452860f408ceddba6a4ee85e4a7e06faaad8dd73e5fe5 + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = 78a292662b8e05abc2d44fbefd0840795e7493028015d9f2aae7b3b7a4634437 +Tag = fbebbdb2e35ebf682f7fe30996bc +Plaintext = 014f15219463ac22820ba6a1fa04d7f686003ef24004da67 +Ciphertext = 9b6bd11001edaca1bc76da3c20f2f7bcc53e1520af174758 + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = de6ea86d3641d916c4394fdd31e6a50194993d6ef1d3dfd9fffca20b2f58107d +Tag = eee137bb5b1e7385aa1bd5d69831 +Plaintext = cc8c855a4c122046916bdcf8089eba3ddb80483e201c7102 +Ciphertext = 56a8416bd99c20c5af16a065d2689a7798be63eccf0fec3d + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = 87b937b1d36e8a9ab33a1d3eed617030923acaabc7e620dfcb3c388936030fc6 +Tag = 9b13b729c70e1fa89c43a05a544b +Plaintext = 3fb7d1f17e7e36d5d4b816cc6db11d1d85848c577fdfe938 +Ciphertext = a59315c0ebf03656eac56a51b7473d57c6baa78590cc7407 + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = 116f4855121d6aa53e8b8b43a2e23d468c8568c744f49de5f7f1a60cf4e16278 +Tag = 2d900340d90dc4f09a7171d331d6 +Plaintext = 268fe424d6db30f680c10fe2684707a0778069958e9a3bf7 +Ciphertext = bcab201543553075bebc737fb2b127ea34be42476189a6c8 + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = e13e0c9cef1f86160a75ccb131586370b0edabbf8b3b63f21f3a6fee072dd926 +Tag = e4ad0d90322ed2813a3343029e93 +Plaintext = 9d64de7161895884e7fa3d6e9eb996e7ebe511b01fe19cd4 +Ciphertext = 07401a40f4075807d98741f3444fb6ada8db3a62f0f201eb + +Cipher = aes-192-ccm +Key = d2d4482ea8e98c1cf309671895a16610152ce283434bca38 +IV = 6ee177d48f59bd37045ec03731 +AAD = d4cd69b26ea43596278b8caec441fedcf0d729d4e0c27ed1332f48871c96e958 +Tag = 0065601bb59972c35b580852e684 +Plaintext = e4abe343f98a2df09413c3defb85b56a6d34dba305dcce46 +Ciphertext = 7e8f27726c042d73aa6ebf43217395202e0af071eacf5379 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = 2529a834668187213f5342a1f3deea0dc2765478c7d71c9c21b9eb1351a5f6cb +Tag = 380ea23dcffc9574f672bca92e306411 +Plaintext = 2cea0f7304860a4f40a28c8b890db60f3891b9982478495e +Ciphertext = 5bb7aa6ab9c02a5712d62343fbe61f774e598d6b87545612 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = a4dbf26802b2dba1bf828f57618fd197d3e60b6efc9d884f965ce3b43e1dc008 +Tag = b93605b46a8a6a9c7e02cb8feac67af4 +Plaintext = 2baf3d378942bd44f67fb787def50aaf446bf15c56243484 +Ciphertext = 5cf2982e34049d5ca40b184fac1ea3d732a3c5aff5082bc8 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = cbd1302c9fffe29fe882838236f64fe9d9ba35db5499e90f0faa35f34c7490f2 +Tag = 82e411c052c0a025ab15767b0242ebf7 +Plaintext = a0639aa4e7a8bda4e9e096d17c1c47d3786010fabe9c72d2 +Ciphertext = d73e3fbd5aee9dbcbb9439190ef7eeab0ea824091db06d9e + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = b6112eb8299b28445aca8f72e7170a1cd8bbfee4d2145fbe8d49c6af8831c4d4 +Tag = ab58a892f7142414d3f7cf10925a403a +Plaintext = e2d78ce5df9284c045b84df33f551211ddccf7bb14cd4529 +Ciphertext = 958a29fc62d4a4d817cce23b4dbebb69ab04c348b7e15a65 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = c70a9fb811894b73e445b78db7a931705a181f3a8730341cbb50eaff43572c6e +Tag = b5b3ce6bae6ecb060289508d6e9212fe +Plaintext = c3f1e735a6741aa481ad577a98dbac1f03cc80ea0dae1b94 +Ciphertext = b4ac422c1b323abcd3d9f8b2ea3005677504b419ae8204d8 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = c7cbda495a7dc1d91837f652a9d084df9b717e99b29bf1ab7f6c17b3341ecd6c +Tag = a16229a91a2298ffe104f9c032720abb +Plaintext = db8cd5d76e459afce765e07da98f4ac58231224238c293c7 +Ciphertext = acd170ced303bae4b5114fb5db64e3bdf4f916b19bee8c8b + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = 4bd3a656796cb1fa87976f3a93471e33dd1209ce33d7a28aaca4d17c99d78c94 +Tag = b9cacc4fdb44402971a0eee7f1ad90d7 +Plaintext = fd66aebc94f2513b1b9218396b08c63a869b9c4dd0752a91 +Ciphertext = 8a3b0ba529b4712349e6b7f119e36f42f053a8be735935dd + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = 448cdd9cbbf863eb666fda36b825f3798827da3c1349611f45605ab734b24498 +Tag = 13306e7f0a61d4b3da372db669321143 +Plaintext = 5831e9a6af0234d051ffd17a14b8e3c8da95067ab767901b +Ciphertext = 2f6c4cbf124414c8038b7eb266534ab0ac5d3289144b8f57 + +Cipher = aes-192-ccm +Key = a7177fd129674c6c91c1c89f4408139afe187026b8114893 +IV = 31bb28f0e1e63c36ca3959dd18 +AAD = f8f04f12174b5205866515ce3775bd8e11d50d8b96142be0c347a773379fb928 +Tag = 09726d3a3d04005dc13629658624d05b +Plaintext = 248a4969621cf291bec7f0d76d80b7f019d4eb002a22c46a +Ciphertext = 53d7ec70df5ad289ecb35f1f1f6b1e886f1cdff3890edb26 + + +Title = NIST CCM 256 Variable Tag Tests + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 3c5f5404370abdcb1edde99de60d0682c600b034e063b7d3237723da70ab7552 +Tag = 3cb9afed +Plaintext = 239029f150bccbd67edbb67f8ae456b4ea066a4beee065f9 +Ciphertext = 9c8d5dd227fd9f81237601830afee4f0115636c8e5d5fd74 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = ab91d1aa072947d22f0dc322355a022fe7f0747f4a184b48446bd27999ef01fe +Tag = 169d7775 +Plaintext = 25a43fd8bf241d67dab9e3c106cd27b71fd45a87b9254a53 +Ciphertext = 9ab94bfbc86549308714543d86d795f3e4840604b210d2de + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 4c3bdc6186297896097b3297ba90bcde78dc8a9efe3bd8b10a85eed1bf63a30c +Tag = b9c2e299 +Plaintext = e63d8303fa5c51550e417e77ec1ec647c9e2a853cab00fee +Ciphertext = 5920f7208d1d050253ecc98b6c04740332b2f4d0c1859763 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 8587324c1ff6712aed8af134744de5df1f88c5d2cb33f4f888af9fd39eb8e813 +Tag = 02f73205 +Plaintext = f27548ec1608d3b8a5bdcbccb7e09cf4b5c29d3661b13a61 +Ciphertext = 4d683ccf614987eff8107c3037fa2eb04e92c1b56a84a2ec + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 58820fb68ba1cd73b05a6698b4394ba1b13e8e296480f5afe1154d9b8536007c +Tag = 4e1dd81b +Plaintext = ecbd7091732e49c0f4bda2e63235ea43bbf8c8730f955f9c +Ciphertext = 53a004b2046f1d97a910151ab22f580740a894f004a0c711 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = f3034031933e7807d47140cf5c7794e42a228a522a83883b0765b57a411bad85 +Tag = 46525bc4 +Plaintext = 3002c6fb49497c7d1d06e1bd4edd57a9e54bbbb74e948c79 +Ciphertext = 8f1fb2d83e08282a40ab5641cec7e5ed1e1be73445a114f4 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 05981dc26a1db2d8e2c3d85ea9a4d1dc3432d9edc4795ca03ca4661d2fc35b8c +Tag = 651844a3 +Plaintext = 214acfb2613b266f2929d43c7666f3a23e61423061cdbec3 +Ciphertext = 9e57bb91167a7238748463c0f67c41e6c5311eb36af8264e + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 968a302a27624c304e894633af600c3cc7c614b7da3af0bf2d3f239c7605338a +Tag = 49fd550d +Plaintext = 9c575d592a9622c014c1303329757a65a414a9ed0c1b1b3f +Ciphertext = 234a297a5dd77697496c87cfa96fc8215f44f56e072e83b2 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 9011231ec382ecaaae57f34de1ac6bbb50741014a978160ce59c60491e64f30d +Tag = 4137defa +Plaintext = 426a4c83793abdcff5e2a99e161785dc27c6168a329ee465 +Ciphertext = fd7738a00e7be998a84f1e62960d3798dc964a0939ab7ce8 + +Cipher = aes-256-ccm +Key = 9074b1ae4ca3342fe5bf6f14bcf2f27904f0b15179d95a654f61e699692e6f71 +IV = 2e1e0132468500d4bd47862563 +AAD = 96f0b1edec4ad14407dcaf30ed68942b46c48d58b2dd63af60fccd5bdd48e560 +Tag = 56a4953f +Plaintext = e04006b68c83a5dd4ceac3cde238e48895ae17728fdc7bbe +Ciphertext = 5f5d7295fbc2f18a11477431622256cc6efe4bf184e9e333 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 4e0d3aa502bd03fe1761b167c4e0df1d228301d3ebaa4a0281becd813266e255 +Tag = 265867a29eb3 +Plaintext = f0b065da6ecb9ddcab855152d3b4155037adfa758ba96070 +Ciphertext = d6a0f377f7c1b14dcdba729cae5271b027e71cc7850173ec + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = aeef2d1e3d3c9920a4fdb5f9d963b88e78a5d0edae531e3b55e702ed609d9a3c +Tag = 66e89a72dc0e +Plaintext = f2a8855e34854656df0776e80255ad1d125841c727201509 +Ciphertext = d4b813f3ad8f6ac7b93855267fb3c9fd0212a77529880695 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 3051ffb19862370bc46ca94a8eb906a660d539b18e965583e95acc149190e3e9 +Tag = dff4f6257e06 +Plaintext = 20955a0ca3c9c10d4055406ec12226130ecdaf195b08d65e +Ciphertext = 0685cca13ac3ed9c266a63a0bcc442f31e8749ab55a0c5c2 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = aafa45a107d909756b4a1956d5228b50316fc5852afdeecf401fa2a71aabea46 +Tag = ef0017c9acc1 +Plaintext = 246b60d17ea70deb1380fbf4bd767d88f53069b0f4136511 +Ciphertext = 027bf67ce7ad217a75bfd83ac0901968e57a8f02fabb768d + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = ccdeab6a28b1b9e9f0c67116a91f2215b229d0edcd35d696db2bcf54e77db743 +Tag = c73969437912 +Plaintext = 5b735697c5577ee0e352cf6a1495c490d6f7e97c3898f0ee +Ciphertext = 7d63c03a5c5d5271856deca46973a070c6bd0fce3630e372 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 33a1e7d4820ed6a76a6dab90b4ba830888caf12a262e4eb6d75a505b2207de36 +Tag = d7cb3721fcdd +Plaintext = 1170416faf81896c7f00815f53c2be5f7246d4794895b4b1 +Ciphertext = 3760d7c2368ba5fd193fa2912e24dabf620c32cb463da72d + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 3df3edd9fc93be9960b5a632e2847b30b10187c8f83de5b45fcb2e3ed475569a +Tag = 82183448e643 +Plaintext = 556765ffe5c46015cbd8194e32abc41e8f711773e2bcac90 +Ciphertext = 7377f3527cce4c84ade73a804f4da0fe9f3bf1c1ec14bf0c + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 4cb8663a1a934b6b27cbc1ed3040fbb99fbb6812f8ca35ff73cc13feeb483af7 +Tag = 6069901b5e3a +Plaintext = 3070e269f3e87cd82af3896895a5dd6fbfa9898279e0f73b +Ciphertext = 166074c46ae250494cccaaa6e843b98fafe36f307748e4a7 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = 876df130c01d0b9b8ebe43e71046c365e13124169026876d50d7e155f0299676 +Tag = 6d65c2b005d4 +Plaintext = dd18d40728c561e24e6e54834348dde5683f067baf8df469 +Ciphertext = fb0842aab1cf4d732851774d3eaeb9057875e0c9a125e7f5 + +Cipher = aes-256-ccm +Key = 8596a69890b0e47d43aeeca54b52029331da06fae63aa3249faaca94e2605feb +IV = 20442e1c3f3c88919c39978b78 +AAD = da08b14e1b770b81faaf1e59851df1cba8838cd63bef141340ee378e65fdcbd4 +Tag = 75b37e9fb9e9 +Plaintext = 7064a2491f716f4a2969815e4a281a54690ced9f794b264e +Ciphertext = 567434e4867b43db4f56a29037ce7eb479460b2d77e335d2 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 7022eaa52c9da821da72d2edd98f6b91dfe474999b75b34699aeb38465f70c1c +Tag = 8cf050f48c505151 +Plaintext = 28ef408d57930086011b167ac04b866e5b58fe6690a0b9c3 +Ciphertext = 356367c6cee4453658418d9517f7c6faddcd7c65aef46013 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = a61b6c1f0293a7c35520abf158a995e5ae59b43ec5f38ff6fd6529970c9f83ac +Tag = 6bca352f92f383e1 +Plaintext = 1c5ad37d2a55afbc390b27cde0c42d6651fe191239bfaa27 +Ciphertext = 01d6f436b322ea0c6051bc2237786df2d76b9b1107eb73f7 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 0f1c6dffeda98f7a159f9cc61820bfb29910d8eaa41b751a41f9fe5648f02fba +Tag = 14fd7c84052208d9 +Plaintext = 6efe6652d46a84166d30befe2fbee0795e9475b401eedd60 +Ciphertext = 737241194d1dc1a6346a2511f802a0edd801f7b73fba04b0 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 151110a9ce7e44e5d76d9cad53c1819317527fcd169051f01c6a3efcc06ea999 +Tag = c3ebc7214b9eef31 +Plaintext = 55b791ee495299916ff3c2327b4990952bebd0a2da9acfc5 +Ciphertext = 483bb6a5d025dc2136a959ddacf5d001ad7e52a1e4ce1615 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 0ba1210696d735eebc13b609d0ec33bc740805105dd82f065b82892b931f1e6d +Tag = eff08182f8a00f13 +Plaintext = 794a86f5b20d344ad86fd5523d08f1864737be57731440c2 +Ciphertext = 64c6a1be2b7a71fa81354ebdeab4b112c1a23c544d409912 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 5a3b71b0fdecce8bd759d3d72321b5c3e882c82627c14e0b59cc8c6d191f243f +Tag = 6894be1f8fa14538 +Plaintext = efa6ddd6fb8e4480a0f64414694e5f9e7f2e9b97cbe9cd14 +Ciphertext = f22afa9d62f90130f9acdffbbef21f0af9bb1994f5bd14c4 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 5d344c5b94695a66192b6692e420c8eaa3cb482502be837b2a0a91b787fbe48e +Tag = f4393bca514c3336 +Plaintext = 561dd3bf419ae33ff521a43898cf12c6a5c6163eec22abc1 +Ciphertext = 4b91f4f4d8eda68fac7b3fd74f7352522353943dd2767211 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 08344486df2b2f9a6880a03503a3986c485f067c480c31a51607553b875f91fa +Tag = b708ffd04c8c2da0 +Plaintext = 6d3596f25401f2e3b099613236f1d88a2f3d8edc1f04bc0c +Ciphertext = 70b9b1b9cd76b753e9c3fadde14d981ea9a80cdf215065dc + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = 9d0824a4dc7e67326c5b68a6ea99cb68298a2af2cc1952351454b038f6270603 +Tag = 1511d7d684d58762 +Plaintext = c563a43e4cc0f93d955432f68287e63400a7fdcae738ba84 +Ciphertext = d8ef8375d5b7bc8dcc0ea919553ba6a086327fc9d96c6354 + +Cipher = aes-256-ccm +Key = bae73483de27b581a7c13f178a6d7bda168c1b4a1cb9180512a13e3ab914eb61 +IV = daf54faef6e4fc7867624b76f2 +AAD = c4384069e09a3d4de2c94e7e6055d8a00394e268398d6ea32914097aec37a1f4 +Tag = ef0919c5f5daf093 +Plaintext = 18c5865b414b2a06b4d71ab9550985b4f3c3d7817e8a8d7c +Ciphertext = 0549a110d83c6fb6ed8d815682b5c5207556558240de54ac + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = ba762bbda601d711e2dfc9dbe3003d39df1043ca845612b8e9dc9ff5c5d06ec4 +Tag = 01a4d765bc1c95c90a95 +Plaintext = 6aa6ea668df60b0db85592d0a819c9df9e1099916272aafb +Ciphertext = 97027de5effd82c58f8dbfb909d7696fbe2d549162629120 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 77a685958ca801dbcbf346d6bac72662d3870899d7bcdef6665d57bacd4e558f +Tag = 288aecb4c38c2391c21d +Plaintext = c2992096828325820e2d7acaa17ac789b6830ec3128dd7f9 +Ciphertext = 3f3db715e088ac4a39f557a300b4673996bec3c3129dec22 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 3a54d3e14bbd0549570ef12425c4b36fd25382d56b68e217bc711ab1625fe9bb +Tag = db4bd2cb1f1222e0d64f +Plaintext = e5151262cafdd2f4dea187372dacb9e5975065572446f2a5 +Ciphertext = 18b185e1a8f65b3ce979aa5e8c621955b76da8572456c97e + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 5c7604f9ac8fdf30ee5820e5aeb75b65d7855e5d2ff9ccf021640707bf1f53e8 +Tag = 9283c1a61e9113462325 +Plaintext = 1fe786f52daab92a6aa5f43263bed74153d90579a34bceff +Ciphertext = e24311764fa130e25d7dd95bc27077f173e4c879a35bf524 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 42b8863ea100babc1713654afcf54f21f8bff754223ad70269ace9d034f26a96 +Tag = bd3ffe1b1051ec3206db +Plaintext = 56c3130c5af210b5bcf7c58b968fc75fc92b9c339efb7aee +Ciphertext = ab67848f38f9997d8b2fe8e2374167efe91651339eeb4135 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = c5a369a8291f4278e797ff11ea5e777d69df3b9c0c32d46150ed4b3e2c3defdd +Tag = 10d5d255f193b29eb961 +Plaintext = daa716f3cd1e008b46318ec90d976c3fbf88c3ff73cf0052 +Ciphertext = 27038170af15894371e9a3a0ac59cc8f9fb50eff73df3b89 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 63bdceb36a032d3e0e81b4e98ad9861e2c708cef4e870c5b88a87ecc24449be3 +Tag = 4e524729fb06212508e6 +Plaintext = 42477d7d44881dabccfce52efb8a2cc917b182a23b71fb49 +Ciphertext = bfe3eafe26839463fb24c8475a448c79378c4fa23b61c092 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = b7f8e7b66726e07c3c73d74135f068bb8025c9da9ba70affb9ed9a69675f0eef +Tag = 222af86d91fb6a2b09d3 +Plaintext = 07f48cdc12aa27119fbdfda4ec07ce6068c92ba7ba9c9309 +Ciphertext = fa501b5f70a1aed9a865d0cd4dc96ed048f4e6a7ba8ca8d2 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 09891ed14f4488069cd6a5744061e06f8ff8d1bc87b10448b3fbfc1a4e327787 +Tag = 4cddcb65a76c40698017 +Plaintext = e2e7002b769fb5b4201053457158147d99b0d5147f3acac2 +Ciphertext = 1f4397a814943c7c17c87e2cd096b4cdb98d18147f2af119 + +Cipher = aes-256-ccm +Key = d5b321b0ac2fedce0933d57d12195c7b9941f4caa95529125ed21c41fac43374 +IV = b35fb2262edfa14938a0fba03e +AAD = 8f9786940943752c536548497f9dae2bd8d677b8bbcb0121a9c9f3c399b62e4b +Tag = ddb42d504b6fc47d6575 +Plaintext = 86be1d1949fe03b8b80ef7abb3e27394273d7b76d7697f0e +Ciphertext = 7b1a8a9a2bf58a708fd6dac2122cd3240700b676d77944d5 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = 404f5df97ece7431987bc098cce994fc3c063b519ffa47b0365226a0015ef695 +Tag = 2927a053c9244d3217a7ad05 +Plaintext = 7ebef26bf4ecf6f0ebb2eb860edbf900f27b75b4a6340fdb +Ciphertext = 353022db9c568bd7183a13c40b1ba30fcc768c54264aa2cd + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = e9ed05813262fbe769c1104d8ba5c836dbd229a22a681de3565d17ac1129f96b +Tag = 1c000c9d88f047ca198c4e65 +Plaintext = fdf5a5fb377bb52ad07a971c6a9da3e1a68d279be9ac4ed7 +Ciphertext = b67b754b5fc1c80d23f26f5e6f5df9ee9880de7b69d2e3c1 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = f246f1e948c81c98ea13f03dd8eea878449d0c3d5b5fe87c633bbe0106fcb899 +Tag = 5c09878f1a963b795b29f4dd +Plaintext = e5e6b57e74ce7afbde3697e2a69d61ca615aa3dfd32fe31f +Ciphertext = ae6865ce1c7407dc2dbe6fa0a35d3bc55f575a3f53514e09 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = e4683285695348ff04a61d51d90b868dfe4cf6ea246544727adeaeface571d57 +Tag = 807d196d2628df1c384816f7 +Plaintext = ef2c3a6bb8602d290045854a5f223e6f43bfd0bb9278fa88 +Ciphertext = a4a2eadbd0da500ef3cd7d085ae264607db2295b1206579e + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = 42695369dbd69f07b46db282653704c34106aad82efdcc99b452598b5353f904 +Tag = 961c666279394e1e28cf1b02 +Plaintext = beda29c7fe15c73ee5bef96485eb8c9e3cd3ea7ee633ef45 +Ciphertext = f554f97796afba1916360126802bd69102de139e664d4253 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = 58c3ce3906633475441229cfcdf05e02ff3738ae8d1b255974f431b3309ed41e +Tag = 64efe624dd6c6f8b8cdc76e3 +Plaintext = 419c96ba8142b27e3377716358c97a8a636d7fe8403165e1 +Ciphertext = 0a12460ae9f8cf59c0ff89215d0920855d608608c04fc8f7 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = a9c06d8029f8da31629c3a6ddceb6009220a69fc614af1c231ae8702b3a85d6e +Tag = 0ef4b71970b9f80087533cf7 +Plaintext = 69bb441a7640f77e124d66af45a0e9f646658a838dfcb957 +Ciphertext = 223594aa1efa8a59e1c59eed4060b3f9786873630d821441 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = a92e88edd297da8c7089e21822b3e6cffd6837c78b975c8413fd6cca1b99bcb0 +Tag = 6e27dfbf1ff7f08d1b213848 +Plaintext = a45b755658d38bdea57d1faae21d75428a17f2c74a33d2d5 +Ciphertext = efd5a5e63069f6f956f5e7e8e7dd2f4db41a0b27ca4d7fc3 + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = 421533453c8129fc8e681c68b9d7371adb0a19442ede7accd185129fcb7db648 +Tag = a48d1a0b815139fa28652d94 +Plaintext = 2c3e28b61cede08121e80ee08c4f1f19dabb19add9d2dc8a +Ciphertext = 67b0f80674579da6d260f6a2898f4516e4b6e04d59ac719c + +Cipher = aes-256-ccm +Key = 7f4af6765cad1d511db07e33aaafd57646ec279db629048aa6770af24849aa0d +IV = dde2a362ce81b2b6913abc3095 +AAD = 55351bc7ddbc6b668d435088f1f9cf6f53caae16d4292b14bc0deec20f393ba0 +Tag = 1301c87a2a94df147c8cce4c +Plaintext = 81fa7fd41ba267bcbdf024cef1543b041cadd96b62a7cf1f +Ciphertext = ca74af6473181a9b4e78dc8cf494610b22a0208be2d96209 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = f1e0af185180d2eb63e50e37ba692647cac2c6a149d70c81dbd34685ed78feaa +Tag = 5f82c828413643b8794494cb5236 +Plaintext = 138ee53b1914d3322c2dd0a4e02faab2236555131d5eea08 +Ciphertext = 5b2f3026f30fdd50accc40ddd093b7997f23d7c6d3c8bc42 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = 45c5c284836414407268d7c8a89a0146759cfc92242004027d58d0828fad74e7 +Tag = 6db5c92de5fb3aafba9537795e17 +Plaintext = fe3df84ee9b237f9edd77a5b8af96bc3e184579ac9c6e246 +Ciphertext = b69c2d5303a9399b6d36ea22ba4576e8bdc2d54f0750b40c + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = a41ea42692eac0914fef35e58409007342cef027de141223ffb46da7f58df034 +Tag = 1af6cf931ac943fd3affa6ad6fd1 +Plaintext = e0f5c02f9f84e57fada3f3575f1b1a748f360e0ea781b7b8 +Ciphertext = a8541532759feb1d2d42632e6fa7075fd3708cdb6917e1f2 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = 17dae00f2a9417780ecfef98f290a5ca9b17c873a9149cd81c18bd33164a0405 +Tag = 38a3f09c56ae653be49b355fb938 +Plaintext = 3a77a2ec5a1be6cbfbbfaab3e65427cb38d6798b132ff5c7 +Ciphertext = 72d677f1b000e8a97b5e3acad6e83ae06490fb5eddb9a38d + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = 33b44873a7a1e5b0fdbb7e7347623e4fa1ccd937feb26fda2749b42f00744e50 +Tag = 974deec7ce2e1f296890bee795cb +Plaintext = d0628b26019dad84de628d9dabf42cfb195165a369c22b49 +Ciphertext = 98c35e3beb86a3e65e831de49b4831d04517e776a7547d03 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = f4fc5acff75d404849675b813cf7adcaeb8f3d56cb9a54a083f8ec07feb666bb +Tag = 98a3bc56f900bee7e8271c6dab22 +Plaintext = 10b5ec41036e4bc5d61728e8811b520b7080c2177c122cbd +Ciphertext = 5814395ce97545a756f6b891b1a74f202cc640c2b2847af7 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = ba051d1bc19b9a27520834fa3977b6413a319c9a52c8785e3e9594bd4265d911 +Tag = e6623d80c677633a9e4f999bb885 +Plaintext = 648a84813ca97aef4ab7e143ee29acb946388660f18eb671 +Ciphertext = 2c2b519cd6b2748dca56713ade95b1921a7e04b53f18e03b + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = f5c629299d18901c8c34c42e8fc29a70c377c160fdea4a6068a36867707575f7 +Tag = c65b88ff4fdd9b8187f7d71ba04b +Plaintext = 3ead49ed0b41de79c829098d034b666bce052d79bf1f56db +Ciphertext = 760c9cf0e15ad01b48c899f433f77b409243afac71890091 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = da486fd2953a72838e67e1909ed4042df67c355b648a45bcd2cc1ba610659e76 +Tag = 727c3404564ed41528973d389c7c +Plaintext = 4543457c8fdf463c4bf8515a762cdc83d9aaa887d3eaa2af +Ciphertext = 0de2906165c4485ecb19c1234690c1a885ec2a521d7cf4e5 + +Cipher = aes-256-ccm +Key = 5c8b59d3e7986c277d5ad51e4a2233251076809ebf59463f47cd10b4aa951f8c +IV = 21ff892b743d661189e205c7f3 +AAD = a0b1d3600f6eba910a11537d61fa12184959f1c3ae386570cbbc9106f7a7ba07 +Tag = 46ecb536703a7a97928f80fcc7cf +Plaintext = 22071ef5d204417f99bc2faf53ecc4c6cf795e77805633ee +Ciphertext = 6aa6cbe8381f4f1d195dbfd66350d9ed933fdca24ec065a4 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = fab62b3e5deda7a9c1128663cc81c44b74ab1bfe70bc1c9dec7c7fd08173b80a +Tag = 63ddd56464aed6d0613159d1aa181dcb +Plaintext = a8be794613835c4366e75817d228438f011a2ec8a86f9797 +Ciphertext = cc3efe04d84a4ec5cb6a6c28dc2c2d386a359d9550dbdec9 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = b3ff11e57eeab41bc597622c770c9eea333e178d5bd5689c6a30011187a965b8 +Tag = 7c1273765bc5bfdeca429cc8ebd8aca2 +Plaintext = 7590769380dc91832da023798dfdd447b9f7adaa09d7e2d0 +Ciphertext = 1110f1d14b158305802d174683f9baf0d2d81ef7f163ab8e + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = 2a953a081c5d52bc500c9c12f56cd2aab5c920d73098335baa5d947100cb3411 +Tag = 886229c09b986bee3a8a3025c150d3a3 +Plaintext = 30e4de5e8c275677f8f4f7bbf9d101f96b38d79968ea028c +Ciphertext = 5464591c47ee44f15579c384f7d56f4e001764c4905e4bd2 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = 99cc9d1b3db79640dfdc4423af3ded03c329f7ba5b6b509269c10e59519053b8 +Tag = 80cd04041918c4071ea5ac263f36c544 +Plaintext = 852698f6ab4aa794b3d657c4a2ca7b9c8bfb5fc9b4ad0aca +Ciphertext = e1a61fb46083b5121e5b63fbacce152be0d4ec944c194394 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = b76aef71eaf03c2d0dc0623e90596fcb0bc4dbbed1d5bb24c8af37d778863e5b +Tag = f001d6002eafaec49c472acdfaedf1de +Plaintext = cd337fcf362d301d66916c7097bdeb31df8206e00f7ac106 +Ciphertext = a9b3f88dfde4229bcb1c584f99b98586b4adb5bdf7ce8858 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = 42a718d892e229a1807b74bd730fb15500ac4a790392100aef362cd7628d5806 +Tag = 75d86cde91b6610496c3bb5276238741 +Plaintext = 0041a0cf48fcf870b21db6107cfd9ef91e409afc7562ffa7 +Ciphertext = 64c1278d8335eaf61f90822f72f9f04e756f29a18dd6b6f9 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = e788c98ae85b11b3ae884eed6f3b8f5bcf5ab1b7b20ad3f44f760b2287cc5793 +Tag = db7d9f10e75d1b213beae0e0230dd82b +Plaintext = fcc74ef1908dbcab9b05c76ee5a9941cdef933d433c0d25f +Ciphertext = 9847c9b35b44ae2d3688f351ebadfaabb5d68089cb749b01 + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = d330fc1ca406dd9528e9281aa1a3cdf013b698c14a4e55371e7539c9f6867dd4 +Tag = c63ba64291e73e6349ed089a53564291 +Plaintext = 611dade00cec14743be4e035cafe7507df5fb94b278875b1 +Ciphertext = 059d2aa2c72506f29669d40ac4fa1bb0b4700a16df3c3cef + +Cipher = aes-256-ccm +Key = 60823b64e0b2da3a7eb772bd5941c534e6ff94ea96b564e2b38f82c78bb54522 +IV = 48526f1bffc97dd65e42906983 +AAD = 06bbadd5d22d1796d88415d7a4b024313f243bd0f58aafc75bb554a691d7e54f +Tag = ac4d7bd964a2f9e2303df688dd0513da +Plaintext = b67b5dd7f90ecd48a45853cb193e0d9702d78898f07e831d +Ciphertext = d2fbda9532c7dfce09d567f4173a632069f83bc508caca43 diff --git a/test/recipes/30-test_evp_data/evpciph.txt b/test/recipes/30-test_evp_data/evpciph.txt index d117455052f5cc45ea818b9c7f049c4411fed23e..68eddca7b72844d63ee944340ec28c63dedbaf40 100644 --- a/test/recipes/30-test_evp_data/evpciph.txt +++ b/test/recipes/30-test_evp_data/evpciph.txt @@ -1,5 +1,5 @@ # -# Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -733,6 +733,17 @@ Ciphertext = 9a5fcccdb4cf04e7293d2775cc76a488f042382d949b43b7d6bb2b9864786726 Operation = DECRYPT Result = CIPHERUPDATE_ERROR +# Test that the tag can be set after specifying AAD. +Cipher = aes-256-ccm +Key = 1bde3251d41a8b5ea013c195ae128b218b3e0306376357077ef1c1c78548b92e +IV = 5b8e40746f6b98e00f1d13ff41 +AAD = c17a32514eb6103f3249e076d4c871dc97e04b286699e54491dc18f6d734d4c0 +Tag = 2024931d73bca480c24a24ece6b6c2bf +SetTagLate = TRUE +Operation = DECRYPT +Plaintext = 53bd72a97089e312422bf72e242377b3c6ee3e2075389b999c4ef7f28bd2b80a +Ciphertext = 9a5fcccdb4cf04e7293d2775cc76a488f042382d949b43b7d6bb2b9864786726 + # AES GCM test vectors from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf Cipher = aes-128-gcm Key = 00000000000000000000000000000000 @@ -2232,7 +2243,7 @@ IV = 00000000000000000000000000000000 Plaintext = 11111111aaaaaaaa11111111bbbbbbbb11111111cccccccc11111111dddddddd22222222aaaaaaaa22222222bbbbbbbb22222222cccccccc22222222dddddddd33333333aaaaaaaa33333333bbbbbbbb33333333cccccccc33333333dddddddd44444444aaaaaaaa44444444bbbbbbbb44444444cccccccc44444444dddddddd55555555aaaaaaaa55555555bbbbbbbb55555555cccccccc55555555dddddddd Ciphertext = 30026c329666141721178b99c0a1f1b2f06940253f7b3089e2a30ea86aa3c88f5940f05ad7ee41d71347bb7261e348f18360473fdf7d4e7723bffb4411cc13f6cdd89f3bc7b9c768145022c7a74f14d7c305cd012a10f16050c23f1ae5c23f45998d13fbaa041e51619577e0772764896a5d4516d8ffceb3bf7e05f613edd9a60cdcedaff9cfcaf4e00d445a54334f73ab2cad944e51d266548e61c6eb0aa1cd -Title = ARIA GCM test vectors from IETF draft-ietf-avtcore-aria-srtp-10 +Title = ARIA GCM test vectors from RFC8269 Cipher = ARIA-128-GCM Key = e91e5e75da65554a48181f3846349562 @@ -2250,6 +2261,36 @@ Tag = e210d6ced2cf430ff841472915e7ef48 Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5 Ciphertext = 6f9e4bcbc8c85fc0128fb1e4a0a20cb9932ff74581f54fc013dd054b19f99371425b352d97d3f337b90b63d1b082adeeea9d2d7391897d591b985e55fb50cb5350cf7d38dc27dda127c078a149c8eb98083d66363a46e3726af217d3a00275ad5bf772c7610ea4c23006878f0ee69a8397703169a419303f40b72e4573714d19e2697df61e7c7252e5abc6bade876ac4961bfac4d5e867afca351a48aed52822 +Title = ARIA GCM self-generated test vectors + +Cipher = ARIA-128-GCM +Key = e91e5e75da65554a48181f3846349562 +# Shorter than default IV +IV = 0001020304 +AAD = 8008315ebf2e6fe020e8f5eb +Tag = ebaa2645bb154542117ee46031aa176e +Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5 +Ciphertext = 1723ccfc0ed44a12520473cfeb63bc933cd450a943f5f1cba78e19d72f80cc102acc51f2459a06cf6435182b8ddd451f83e13479efe5ec7dfbf16229f4017920fb41457a9b6fe1a401b30b2f332d827ae2f86e962326927c1ed8bfedac1f7a00ddde63bd392a8f28a488ba5974689f8d15b9b1739fb50aae0ff244026ec72064003c621b33ffc8086b0a97eefb70604a2826f6499f6eb12d67a0da03fc8e1482 + +Cipher = ARIA-128-GCM +Key = e91e5e75da65554a48181f3846349562 +# Longer than default IV +IV = 000102030405060708090a0b0c0d0e0f +AAD = 8008315ebf2e6fe020e8f5eb +Tag = 61f7f44c7da3c60195b29ae0b46051a4 +Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5 +Ciphertext = 0d3e98fcaf7a2c4fe9198d66add90d113e5e0ff47598c40a4bf501960d935a4156c9a4d46c9358a608e10a16479a4247c9ab9bb4a02809e3eac3571b832590fe2ca3e2d545741e36282d96c041fc7d39a46ed60214c2c0ec70f27768dfea4f9563b5d5c2ac33b1368a78f2908f5daf942433fec6ab588f09e908e95cc8dfa85d1a0dfd5835dc14e148323230c63eedc99a9ce942214cb3768b97b821d613629f + +Cipher = ARIA-128-GCM +Key = e91e5e75da65554a48181f3846349562 +# Extra long IV +IV = 000102030405060708090a0b0c0d0e0f1011 +AAD = 8008315ebf2e6fe020e8f5eb +Tag = c8b31ab6c2ddccab06b76af4e56e664e +Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5 +Ciphertext = 616a7bce24206501082cef7267c09a4affa54f8f82eb7fb2cdebdcaab4b6ab05c37e891c2d0fc90d15c5fb684247625c8bc0befad86896ae1c8f5a8506954caba4e13df0a0eb23853d4474e7f3b2c57bb398456a24d198e14566bce8a5f8d3bcdb12994d2fdc0f5cf19aeff990c1fe119e01f9fcc86757b1d43a9accf7b2f913c2208a46c1967f403867f89b46ffe96864c63f042265806ea5270e0dddd0e8dd + + Title = ARIA CCM test vectors from IETF draft-ietf-avtcore-aria-srtp-02 # 16-byte Tag @@ -2357,14 +2398,41 @@ Operation = ENCRYPT Plaintext = B41E6BE2EBA84A148E2EED84593C5EC7 Ciphertext = 9B9B7BFCD1813CB95D0B3618F40F5122 -Title = Chacha20 +Title = Chacha20 test vectors from RFC7539 +# A.1 Test Vector 1 Cipher = chacha20 Key = 0000000000000000000000000000000000000000000000000000000000000000 IV = 00000000000000000000000000000000 Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Ciphertext = 76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586 +# A.1 Test Vector 2 +Cipher = chacha20 +Key = 0000000000000000000000000000000000000000000000000000000000000000 +IV = 01000000000000000000000000000000 +Plaintext = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +Ciphertext = 9f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f + +# A.2 Test Vector 1 is the same as A.1 Test Vector 1 +# A.2 Test Vector 2 +Cipher = chacha20 +Key = 0000000000000000000000000000000000000000000000000000000000000001 +#Counter (first 4 bytes) expressed in little-endian order +IV = 01000000000000000000000000000002 +Plaintext = 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f +Ciphertext = a3fbf07df3fa2fde4f376ca23e82737041605d9f4f4f57bd8cff2c1d4b7955ec2a97948bd3722915c8f3d337f7d370050e9e96d647b7c39f56e031ca5eb6250d4042e02785ececfa4b4bb5e8ead0440e20b6e8db09d881a7c6132f420e52795042bdfa7773d8a9051447b3291ce1411c680465552aa6c405b7764d5e87bea85ad00f8449ed8f72d0d662ab052691ca66424bc86d2df80ea41f43abf937d3259dc4b2d0dfb48a6c9139ddd7f76966e928e635553ba76c5c879d7b35d49eb2e62b0871cdac638939e25e8a1e0ef9d5280fa8ca328b351c3c765989cbcf3daa8b6ccc3aaf9f3979c92b3720fc88dc95ed84a1be059c6499b9fda236e7e818b04b0bc39c1e876b193bfe5569753f88128cc08aaa9b63d1a16f80ef2554d7189c411f5869ca52c5b83fa36ff216b9c1d30062bebcfd2dc5bce0911934fda79a86f6e698ced759c3ff9b6477338f3da4f9cd8514ea9982ccafb341b2384dd902f3d1ab7ac61dd29c6f21ba5b862f3730e37cfdc4fd806c22f221 + +# A.2 Test Vector 3 +Cipher = chacha20 +Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0 +#Counter (first 4 bytes) expressed in little-endian order +IV = 2a000000000000000000000000000002 +Plaintext = 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e +Ciphertext = 62e6347f95ed87a45ffae7426f27a1df5fb69110044c0d73118effa95b01e5cf166d3df2d721caf9b21e5fb14c616871fd84c54f9d65b283196c7fe4f60553ebf39c6402c42234e32a356b3e764312a61a5532055716ead6962568f87d3f3f7704c6a8d1bcd1bf4d50d6154b6da731b187b58dfd728afa36757a797ac188d1 + +Title = Chacha20 + Cipher = chacha20 Key = 0000000000000000000000000000000000000000000000000000000000000001 IV = 00000000000000000000000000000000 @@ -2506,3 +2574,12 @@ AAD = f33388860000000000004e91 Tag = e0723bce23528ce6ccb10ff9627038bf Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c299da65ba25e6a85842bf0440fd98a9a2266b061c4b3a13327c090f9a0789f58aad805275e4378a525f19232bfbfb749ede38480f405cf43ec2f1f8619ebcbc80a89e92a859c7911e674977ab17d4a7126a6b8a477358ff14a344d276ef6e504e10268ac3619fcf90c2d6c03fc2e3d1f290d9bf26c1fa1495dd8f97eec6229a55c2354e4524143551a5cc370a1c622c9390530cff21c3e1ed50c5e3daf97518ccce34156bdbd7eafab8bd417aef25c6c927301731bd319d247a1d5c3186ed10bfd9a7a24bac30e3e4503ed9204154d338b79ea276e7058e7f20f4d4fd1ac93d63f611af7b6d006c2a72add0eedc497b19cb30a198816664f0da00155f2e2d6ac61045b296d614301e0ad4983308028850dd4feffe3a8163970306e4047f5a165cb4befbc129729cd2e286e837e9b606486d402acc3dec5bf8b92387f6e486f2140 + +Cipher = chacha20-poly1305 +Key = 1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0 +IV = ff000000000102030405060708 +AAD = f33388860000000000004e91 +Tag = e0723bce23528ce6ccb10ff9627038bf +Plaintext = 496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d +Ciphertext = 64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c299da65ba25e6a85842bf0440fd98a9a2266b061c4b3a13327c090f9a0789f58aad805275e4378a525f19232bfbfb749ede38480f405cf43ec2f1f8619ebcbc80a89e92a859c7911e674977ab17d4a7126a6b8a477358ff14a344d276ef6e504e10268ac3619fcf90c2d6c03fc2e3d1f290d9bf26c1fa1495dd8f97eec6229a55c2354e4524143551a5cc370a1c622c9390530cff21c3e1ed50c5e3daf97518ccce34156bdbd7eafab8bd417aef25c6c927301731bd319d247a1d5c3186ed10bfd9a7a24bac30e3e4503ed9204154d338b79ea276e7058e7f20f4d4fd1ac93d63f611af7b6d006c2a72add0eedc497b19cb30a198816664f0da00155f2e2d6ac61045b296d614301e0ad4983308028850dd4feffe3a8163970306e4047f5a165cb4befbc129729cd2e286e837e9b606486d402acc3dec5bf8b92387f6e486f2140 +Result = INVALID_IV_LENGTH diff --git a/test/recipes/30-test_evp_data/evpmac.txt b/test/recipes/30-test_evp_data/evpmac.txt index 2bcb3c33be16a63f644d256aac6f503d22c226e9..716897dc73efe52fe9bb219f04417f2323ef9fba 100644 --- a/test/recipes/30-test_evp_data/evpmac.txt +++ b/test/recipes/30-test_evp_data/evpmac.txt @@ -1,5 +1,5 @@ # -# Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -351,6 +351,14 @@ Input = "Sample message for keylen>blocklen" Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081828384858687 Output = 5f464f5e5b7848e3885e49b2c385f0694985d0e38966242dc4a5fe3fea4b37d46b65ceced5dcf59438dd840bab22269f0ba7febdb9fcf74602a35666b2a32915 +Title = HMAC self generated tests + +MAC = HMAC +Algorithm = SHAKE128 +Input = "Test that SHAKE128 fails" +Key = 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f +Result = DIGESTSIGNINIT_ERROR + Title = CMAC tests (from FIPS module) diff --git a/test/recipes/30-test_evp_data/evppkey.txt b/test/recipes/30-test_evp_data/evppkey.txt index f4470ff46b64a85442ab55371a550745a094784d..736e0ce4d33f5cbcbbeb31978fc2c22ff5f03c74 100644 --- a/test/recipes/30-test_evp_data/evppkey.txt +++ b/test/recipes/30-test_evp_data/evppkey.txt @@ -17601,6 +17601,14 @@ Key = ED25519-1-PUBLIC-Raw Input = "" Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b +#Signature maleability test. +#Same as the verify operation above but with the order added to s +OneShotDigestVerify = NULL +Key = ED25519-1-PUBLIC-Raw +Input = "" +Output = e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901554c8c7872aa064e049dbb3013fbf29380d25bf5f0595bbe24655141438e7a101b +Result = VERIFY_ERROR + Title = ED448 tests from RFC8032 PrivateKey=ED448-1 @@ -17809,6 +17817,13 @@ Key = ED448-1-PUBLIC-Raw Input = "" Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e652600 +#Signature malelability test. +#Same as the verify operation above but with the order added to s +OneShotDigestVerify = NULL +Key = ED448-1-PUBLIC-Raw +Input = "" +Output = 533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980f25278d3667403c14bcec5f9cfde9955ebc8333c0ae78fc86e518317c5c7cdda8530a113a0f4dbb61149f05a7363268c71d95808ff2e656600 +Result = VERIFY_ERROR # Key generation tests KeyGen = rsaEncryption diff --git a/test/recipes/70-test_sslextension.t b/test/recipes/70-test_sslextension.t index 20e1933f0054162277d18f367a6dd68aeefba9f7..469567cb7257540730937d6a57e343742d727419 100644 --- a/test/recipes/70-test_sslextension.t +++ b/test/recipes/70-test_sslextension.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -88,9 +88,11 @@ sub inject_duplicate_extension foreach my $message (@{$proxy->message_list}) { if ($message->mt == $message_type) { my %extensions = %{$message->extension_data}; - # Add a duplicate (unknown) extension. - $message->set_extension(TLSProxy::Message::EXT_DUPLICATE_EXTENSION, ""); - $message->set_extension(TLSProxy::Message::EXT_DUPLICATE_EXTENSION, ""); + # Add a duplicate extension. We use cryptopro_bug since we never + # normally write that one, and it is allowed as unsolicited in the + # ServerHello + $message->set_extension(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION, ""); + $message->dupext(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION); $message->repack(); } } @@ -173,9 +175,23 @@ sub inject_unsolicited_extension $sent_unsolisited_extension = 1; } +sub inject_cryptopro_extension +{ + my $proxy = shift; + + # We're only interested in the initial ClientHello + if ($proxy->flight != 0) { + return; + } + + my $message = ${$proxy->message_list}[0]; + $message->set_extension(TLSProxy::Message::EXT_CRYPTOPRO_BUG_EXTENSION, ""); + $message->repack(); +} + # Test 1-2: Sending a duplicate extension should fail. $proxy->start() or plan skip_all => "Unable to start up Proxy for tests"; -plan tests => 7; +plan tests => 8; ok($fatal_alert, "Duplicate ClientHello extension"); $fatal_alert = 0; @@ -234,3 +250,11 @@ SKIP: { $proxy->start(); ok($fatal_alert, "Unsolicited server name extension (TLSv1.3)"); } + +#Test 8: Send the cryptopro extension in a ClientHello. Normally this is an +# unsolicited extension only ever seen in the ServerHello. We should +# ignore it in a ClientHello +$proxy->clear(); +$proxy->filter(\&inject_cryptopro_extension); +$proxy->start(); +ok(TLSProxy::Message->success(), "Cryptopro extension in ClientHello"); diff --git a/test/recipes/70-test_sslrecords.t b/test/recipes/70-test_sslrecords.t index 123302838683b6f1611da49308371cae48068e0c..bb4e3543af492a95f82a714a6bef44780fe01d40 100644 --- a/test/recipes/70-test_sslrecords.t +++ b/test/recipes/70-test_sslrecords.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -44,7 +44,7 @@ my $content_type = TLSProxy::Record::RT_APPLICATION_DATA; my $inject_recs_num = 1; $proxy->serverflags("-tls1_2"); $proxy->start() or plan skip_all => "Unable to start up Proxy for tests"; -plan tests => 18; +plan tests => 20; ok($fatal_alert, "Out of context empty records test"); #Test 2: Injecting in context empty records should succeed @@ -155,7 +155,7 @@ ok($fatal_alert, "Changed record version in TLS1.2"); #TLS1.3 specific tests SKIP: { - skip "TLSv1.3 disabled", 6 if disabled("tls1_3"); + skip "TLSv1.3 disabled", 8 if disabled("tls1_3"); #Test 13: Sending a different record version in TLS1.3 should fail $proxy->clear(); @@ -181,7 +181,9 @@ SKIP: { use constant { DATA_AFTER_SERVER_HELLO => 0, DATA_AFTER_FINISHED => 1, - DATA_AFTER_KEY_UPDATE => 2 + DATA_AFTER_KEY_UPDATE => 2, + DATA_BETWEEN_KEY_UPDATE => 3, + NO_DATA_BETWEEN_KEY_UPDATE => 4, }; #Test 16: Sending a ServerHello which doesn't end on a record boundary @@ -198,7 +200,6 @@ SKIP: { $fatal_alert = 0; $proxy->clear(); $boundary_test_type = DATA_AFTER_FINISHED; - $proxy->filter(\¬_on_record_boundary); $proxy->start(); ok($fatal_alert, "Record not on boundary in TLS1.3 (Finished)"); @@ -207,9 +208,24 @@ SKIP: { $fatal_alert = 0; $proxy->clear(); $boundary_test_type = DATA_AFTER_KEY_UPDATE; - $proxy->filter(\¬_on_record_boundary); $proxy->start(); ok($fatal_alert, "Record not on boundary in TLS1.3 (KeyUpdate)"); + + #Test 19: Sending application data in the middle of a fragmented KeyUpdate + # should fail. Strictly speaking this is not a record boundary test + # but we use the same filter. + $fatal_alert = 0; + $proxy->clear(); + $boundary_test_type = DATA_BETWEEN_KEY_UPDATE; + $proxy->start(); + ok($fatal_alert, "Data between KeyUpdate"); + + #Test 20: Fragmented KeyUpdate. This should succeed. Strictly speaking this + # is not a record boundary test but we use the same filter. + $proxy->clear(); + $boundary_test_type = NO_DATA_BETWEEN_KEY_UPDATE; + $proxy->start(); + ok(TLSProxy::Message->success(), "No data between KeyUpdate"); } @@ -573,7 +589,7 @@ sub not_on_record_boundary #Update the record $last_record->data($data); $last_record->len(length $data); - } else { + } elsif ($boundary_test_type == DATA_AFTER_KEY_UPDATE) { return if @{$proxy->{message_list}}[-1]->{mt} != TLSProxy::Message::MT_FINISHED; @@ -605,5 +621,79 @@ sub not_on_record_boundary $record->data($data); $record->len(length $data); push @{$records}, $record; + } else { + return if @{$proxy->{message_list}}[-1]->{mt} + != TLSProxy::Message::MT_FINISHED; + + my $record = TLSProxy::Record->new( + 1, + TLSProxy::Record::RT_APPLICATION_DATA, + TLSProxy::Record::VERS_TLS_1_2, + 0, + 0, + 0, + 0, + "", + "" + ); + + #Add a partial KeyUpdate message into the record + $data = pack "C1", + 0x18; # KeyUpdate message type. Omit the rest of the message header + + #Add content type and tag + $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16); + + $record->data($data); + $record->len(length $data); + push @{$records}, $record; + + if ($boundary_test_type == DATA_BETWEEN_KEY_UPDATE) { + #Now add an app data record + $record = TLSProxy::Record->new( + 1, + TLSProxy::Record::RT_APPLICATION_DATA, + TLSProxy::Record::VERS_TLS_1_2, + 0, + 0, + 0, + 0, + "", + "" + ); + + #Add an empty app data record (just content type and tag) + $data = pack("C", TLSProxy::Record::RT_APPLICATION_DATA).("\0"x16); + + $record->data($data); + $record->len(length $data); + push @{$records}, $record; + } + + #Now add the rest of the KeyUpdate message + $record = TLSProxy::Record->new( + 1, + TLSProxy::Record::RT_APPLICATION_DATA, + TLSProxy::Record::VERS_TLS_1_2, + 0, + 0, + 0, + 0, + "", + "" + ); + + #Add the last 4 bytes of the KeyUpdate record + $data = pack "C4", + 0x00, 0x00, 0x01, # Message length + 0x00; # Update not requested + + #Add content type and tag + $data .= pack("C", TLSProxy::Record::RT_HANDSHAKE).("\0"x16); + + $record->data($data); + $record->len(length $data); + push @{$records}, $record; + } } diff --git a/test/recipes/80-test_cms.t b/test/recipes/80-test_cms.t index f038bea31d5b774ed55ef220ad1f814032c4a39e..b57ca66dac5855e241f32ecf948ff7a6be68f7d7 100644 --- a/test/recipes/80-test_cms.t +++ b/test/recipes/80-test_cms.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -308,6 +308,14 @@ my @smime_cms_param_tests = ( "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ] ], + [ "signed content test streaming PEM format, RSA keys, PSS signature, saltlen=max", + [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach", + "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss", + "-keyopt", "rsa_pss_saltlen:max", "-out", "test.cms" ], + [ "-verify", "-in", "test.cms", "-inform", "PEM", + "-CAfile", catfile($smdir, "smroot.pem"), "-out", "smtst.txt" ] + ], + [ "signed content test streaming PEM format, RSA keys, PSS signature, no attributes", [ "-sign", "-in", $smcont, "-outform", "PEM", "-nodetach", "-noattr", "-signer", catfile($smdir, "smrsa1.pem"), "-keyopt", "rsa_padding_mode:pss", diff --git a/test/recipes/80-test_ssl_new.t b/test/recipes/80-test_ssl_new.t index db2271c388dd846caaf2b1042a8028296c934040..81d8f59a70b4a14ec9411154220430ca250cb34c 100644 --- a/test/recipes/80-test_ssl_new.t +++ b/test/recipes/80-test_ssl_new.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -28,7 +28,7 @@ map { s/\^// } @conf_files if $^O eq "VMS"; # We hard-code the number of tests to double-check that the globbing above # finds all files as expected. -plan tests => 28; # = scalar @conf_srcs +plan tests => 29; # = scalar @conf_srcs # Some test results depend on the configuration of enabled protocols. We only # verify generated sources in the default configuration. @@ -102,6 +102,7 @@ my %skip = ( "24-padding.conf" => disabled("tls1_3"), "25-cipher.conf" => disabled("ec") || disabled("tls1_2"), "26-tls13_client_auth.conf" => disabled("tls1_3"), + "29-dtls-sctp-label-bug.conf" => disabled("sctp") || disabled("sock"), ); foreach my $conf (@conf_files) { diff --git a/test/recipes/90-test_bio_memleak.t b/test/recipes/90-test_bio_memleak.t new file mode 100644 index 0000000000000000000000000000000000000000..1e063ed03dd6b8823b40f1cea2413b78dcedae94 --- /dev/null +++ b/test/recipes/90-test_bio_memleak.t @@ -0,0 +1,12 @@ +#! /usr/bin/env perl +# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the OpenSSL license (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + + +use OpenSSL::Test::Simple; + +simple_test("test_bio_memleak", "bio_memleak_test"); diff --git a/test/recipes/90-test_gost.t b/test/recipes/90-test_gost.t index c7bbb4edd8d4214b355fa4620234e48d6a5755ec..de9b0bfa04e7cb3d42ce02354191eaec2d94f747 100644 --- a/test/recipes/90-test_gost.t +++ b/test/recipes/90-test_gost.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -12,11 +12,11 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/; setup("test_gost"); # The GOST ciphers are dynamically loaded via the GOST engine, so we must be -# able to support that. The engine also uses DSA and CMS symbols, so we skip -# this test on no-dsa or no-cms. +# able to support that. The engine also uses DSA, CMS and CMAC symbols, so we +# skip this test on no-dsa, no-cms or no-cmac. plan skip_all => "GOST support is disabled in this OpenSSL build" if disabled("gost") || disabled("engine") || disabled("dynamic-engine") - || disabled("dsa") || disabled("cms"); + || disabled("dsa") || disabled("cms") || disabled("cmac"); plan skip_all => "TLSv1.3 or TLSv1.2 are disabled in this OpenSSL build" if disabled("tls1_3") || disabled("tls1_2"); diff --git a/test/recipes/90-test_includes.t b/test/recipes/90-test_includes.t index 5169700c4c839b886a9d54646e7d85885d91f9f0..c6a86fc0092acfcda9c22bfa782a9bee89ae21b2 100644 --- a/test/recipes/90-test_includes.t +++ b/test/recipes/90-test_includes.t @@ -11,11 +11,13 @@ plan skip_all => "test_includes doesn't work without posix-io" if disabled("posix-io"); plan tests => # The number of tests being performed - 3 + 5 + ($^O eq "VMS" ? 2 : 0); ok(run(test(["conf_include_test", data_file("includes.cnf")])), "test directory includes"); ok(run(test(["conf_include_test", data_file("includes-file.cnf")])), "test file includes"); +ok(run(test(["conf_include_test", data_file("includes-eq.cnf")])), "test includes with equal character"); +ok(run(test(["conf_include_test", data_file("includes-eq-ws.cnf")])), "test includes with equal and whitespaces"); if ($^O eq "VMS") { ok(run(test(["conf_include_test", data_file("vms-includes.cnf")])), "test directory includes, VMS syntax"); diff --git a/test/recipes/90-test_includes_data/includes-eq-ws.cnf b/test/recipes/90-test_includes_data/includes-eq-ws.cnf new file mode 100644 index 0000000000000000000000000000000000000000..38109a7ab3ade5d0ed492ec25d3069bcb42505f2 --- /dev/null +++ b/test/recipes/90-test_includes_data/includes-eq-ws.cnf @@ -0,0 +1,5 @@ +# +# Example configuration file using includes. +# + +.include = conf-includes diff --git a/test/recipes/90-test_includes_data/includes-eq.cnf b/test/recipes/90-test_includes_data/includes-eq.cnf new file mode 100644 index 0000000000000000000000000000000000000000..9d3715854b51101cbf97609db216523c24325d75 --- /dev/null +++ b/test/recipes/90-test_includes_data/includes-eq.cnf @@ -0,0 +1,5 @@ +# +# Example configuration file using includes. +# + +.include=conf-includes diff --git a/test/recipes/90-test_shlibload.t b/test/recipes/90-test_shlibload.t index 2761d58502ba764b3e1e912628b4c5d7a13eadea..8372a61e885f5f179ba3c5420f53b6c774bcbdf1 100644 --- a/test/recipes/90-test_shlibload.t +++ b/test/recipes/90-test_shlibload.t @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -8,6 +8,7 @@ use OpenSSL::Test qw/:DEFAULT bldtop_dir bldtop_file/; use OpenSSL::Test::Utils; +use File::Temp qw(tempfile); #Load configdata.pm @@ -19,8 +20,10 @@ use configdata; plan skip_all => "Test only supported in a shared build" if disabled("shared"); plan skip_all => "Test is disabled on AIX" if config('target') =~ m|^aix|; +plan skip_all => "Test is disabled on VMS" if config('target') =~ m|^vms|; +plan skip_all => "Test only supported in a dso build" if disabled("dso"); -plan tests => 4; +plan tests => 10; # When libssl and libcrypto are compiled on Linux with "-rpath", but not # "--enable-new-dtags", the RPATH takes precedence over LD_LIBRARY_PATH, @@ -30,14 +33,31 @@ plan tests => 4; my $libcrypto = bldtop_file(shlib('libcrypto')); my $libssl = bldtop_file(shlib('libssl')); -ok(run(test(["shlibloadtest", "-crypto_first", $libcrypto, $libssl])), - "running shlibloadtest -crypto_first"); -ok(run(test(["shlibloadtest", "-ssl_first", $libcrypto, $libssl])), - "running shlibloadtest -ssl_first"); -ok(run(test(["shlibloadtest", "-just_crypto", $libcrypto, $libssl])), - "running shlibloadtest -just_crypto"); -ok(run(test(["shlibloadtest", "-dso_ref", $libcrypto, $libssl])), - "running shlibloadtest -dso_ref"); +(my $fh, my $filename) = tempfile(); +ok(run(test(["shlibloadtest", "-crypto_first", $libcrypto, $libssl, $filename])), + "running shlibloadtest -crypto_first $filename"); +ok(check_atexit($fh)); +unlink $filename; +($fh, $filename) = tempfile(); +ok(run(test(["shlibloadtest", "-ssl_first", $libcrypto, $libssl, $filename])), + "running shlibloadtest -ssl_first $filename"); +ok(check_atexit($fh)); +unlink $filename; +($fh, $filename) = tempfile(); +ok(run(test(["shlibloadtest", "-just_crypto", $libcrypto, $libssl, $filename])), + "running shlibloadtest -just_crypto $filename"); +ok(check_atexit($fh)); +unlink $filename; +($fh, $filename) = tempfile(); +ok(run(test(["shlibloadtest", "-dso_ref", $libcrypto, $libssl, $filename])), + "running shlibloadtest -dso_ref $filename"); +ok(check_atexit($fh)); +unlink $filename; +($fh, $filename) = tempfile(); +ok(run(test(["shlibloadtest", "-no_atexit", $libcrypto, $libssl, $filename])), + "running shlibloadtest -no_atexit $filename"); +ok(!check_atexit($fh)); +unlink $filename; sub shlib { my $lib = shift; @@ -50,3 +70,12 @@ sub shlib { |.$config{shlib_version_number}|x; return $lib; } + +sub check_atexit { + my $fh = shift; + my $data = <$fh>; + + return 1 if (defined $data && $data =~ m/atexit\(\) run/); + + return 0; +} diff --git a/test/rsa_test.c b/test/rsa_test.c index 2ad4de4734cd2c32f6ffb74bf9c07e34e60c983b..3820785edcc6f80d502fcd37172969b86b211dda 100644 --- a/test/rsa_test.c +++ b/test/rsa_test.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -268,6 +268,36 @@ err: return ret; } +static int test_rsa_sslv23(int idx) +{ + int ret = 0; + RSA *key; + unsigned char ptext[256]; + unsigned char ctext[256]; + static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a"; + unsigned char ctext_ex[256]; + int plen; + int clen = 0; + int num; + + plen = sizeof(ptext_ex) - 1; + clen = rsa_setkey(&key, ctext_ex, idx); + + num = RSA_public_encrypt(plen, ptext_ex, ctext, key, + RSA_SSLV23_PADDING); + if (!TEST_int_eq(num, clen)) + goto err; + + num = RSA_private_decrypt(num, ctext, ptext, key, RSA_SSLV23_PADDING); + if (!TEST_mem_eq(ptext, num, ptext_ex, plen)) + goto err; + + ret = 1; +err: + RSA_free(key); + return ret; +} + static int test_rsa_oaep(int idx) { int ret = 0; @@ -332,6 +362,7 @@ err: int setup_tests(void) { ADD_ALL_TESTS(test_rsa_pkcs1, 3); + ADD_ALL_TESTS(test_rsa_sslv23, 3); ADD_ALL_TESTS(test_rsa_oaep, 3); return 1; } diff --git a/test/servername_test.c b/test/servername_test.c index 1a73bf006ee670a147c0b0d5781f77da516ca67e..d246918d6640dbbf172fcad0e785281fbc94d700 100644 --- a/test/servername_test.c +++ b/test/servername_test.c @@ -1,5 +1,5 @@ /* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2017 BaishanCloud. All rights reserved. * * Licensed under the OpenSSL license (the "License"). You may not use @@ -203,7 +203,7 @@ static int server_setup_sni(void) /* SNI should have been cleared during handshake */ goto end; } - + testresult = 1; end: SSL_free(serverssl); diff --git a/test/shlibloadtest.c b/test/shlibloadtest.c index 53714aa12591602272f6715bc13964b7440389d3..86bbfcd849f4e41971e109f8bd2b8eb513be6302 100644 --- a/test/shlibloadtest.c +++ b/test/shlibloadtest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -14,13 +14,14 @@ #include <openssl/ssl.h> #include <openssl/ossl_typ.h> #include "internal/dso_conf.h" -#include "testutil.h" typedef void DSO; typedef const SSL_METHOD * (*TLS_method_t)(void); typedef SSL_CTX * (*SSL_CTX_new_t)(const SSL_METHOD *meth); typedef void (*SSL_CTX_free_t)(SSL_CTX *); +typedef int (*OPENSSL_init_crypto_t)(uint64_t, void *); +typedef int (*OPENSSL_atexit_t)(void (*handler)(void)); typedef unsigned long (*ERR_get_error_t)(void); typedef unsigned long (*OpenSSL_version_num_t)(void); typedef DSO * (*DSO_dsobyaddr_t)(void (*addr)(void), int flags); @@ -30,12 +31,14 @@ typedef enum test_types_en { CRYPTO_FIRST, SSL_FIRST, JUST_CRYPTO, - DSO_REFTEST + DSO_REFTEST, + NO_ATEXIT } TEST_TYPE; static TEST_TYPE test_type; static const char *path_crypto; static const char *path_ssl; +static const char *path_atexit; #ifdef DSO_DLFCN @@ -99,6 +102,20 @@ static int shlib_close(SHLIB lib) #if defined(DSO_DLFCN) || defined(DSO_WIN32) +static int atexit_handler_done = 0; + +static void atexit_handler(void) +{ + FILE *atexit_file = fopen(path_atexit, "w"); + + if (atexit_file == NULL) + return; + + fprintf(atexit_file, "atexit() run\n"); + fclose(atexit_file); + atexit_handler_done++; +} + static int test_lib(void) { SHLIB ssllib = SHLIB_INIT; @@ -113,64 +130,93 @@ static int test_lib(void) SSL_CTX_free_t mySSL_CTX_free; ERR_get_error_t myERR_get_error; OpenSSL_version_num_t myOpenSSL_version_num; + OPENSSL_atexit_t myOPENSSL_atexit; int result = 0; switch (test_type) { case JUST_CRYPTO: - if (!TEST_true(shlib_load(path_crypto, &cryptolib))) - goto end; - break; + case DSO_REFTEST: + case NO_ATEXIT: case CRYPTO_FIRST: - if (!TEST_true(shlib_load(path_crypto, &cryptolib)) - || !TEST_true(shlib_load(path_ssl, &ssllib))) + if (!shlib_load(path_crypto, &cryptolib)) { + fprintf(stderr, "Failed to load libcrypto\n"); goto end; - break; + } + if (test_type != CRYPTO_FIRST) + break; + /* Fall through */ + case SSL_FIRST: - if (!TEST_true(shlib_load(path_ssl, &ssllib)) - || !TEST_true(shlib_load(path_crypto, &cryptolib))) + if (!shlib_load(path_ssl, &ssllib)) { + fprintf(stderr, "Failed to load libssl\n"); goto end; - break; - case DSO_REFTEST: - if (!TEST_true(shlib_load(path_crypto, &cryptolib))) + } + if (test_type != SSL_FIRST) + break; + if (!shlib_load(path_crypto, &cryptolib)) { + fprintf(stderr, "Failed to load libcrypto\n"); goto end; + } break; } - if (test_type != JUST_CRYPTO && test_type != DSO_REFTEST) { - if (!TEST_true(shlib_sym(ssllib, "TLS_method", &symbols[0].sym)) - || !TEST_true(shlib_sym(ssllib, "SSL_CTX_new", &symbols[1].sym)) - || !TEST_true(shlib_sym(ssllib, "SSL_CTX_free", &symbols[2].sym))) + if (test_type == NO_ATEXIT) { + OPENSSL_init_crypto_t myOPENSSL_init_crypto; + + if (!shlib_sym(cryptolib, "OPENSSL_init_crypto", &symbols[0].sym)) { + fprintf(stderr, "Failed to load OPENSSL_init_crypto symbol\n"); + goto end; + } + myOPENSSL_init_crypto = (OPENSSL_init_crypto_t)symbols[0].func; + if (!myOPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL)) { + fprintf(stderr, "Failed to initialise libcrypto\n"); + goto end; + } + } + + if (test_type != JUST_CRYPTO + && test_type != DSO_REFTEST + && test_type != NO_ATEXIT) { + if (!shlib_sym(ssllib, "TLS_method", &symbols[0].sym) + || !shlib_sym(ssllib, "SSL_CTX_new", &symbols[1].sym) + || !shlib_sym(ssllib, "SSL_CTX_free", &symbols[2].sym)) { + fprintf(stderr, "Failed to load libssl symbols\n"); goto end; + } myTLS_method = (TLS_method_t)symbols[0].func; mySSL_CTX_new = (SSL_CTX_new_t)symbols[1].func; mySSL_CTX_free = (SSL_CTX_free_t)symbols[2].func; - if (!TEST_ptr(ctx = mySSL_CTX_new(myTLS_method()))) + ctx = mySSL_CTX_new(myTLS_method()); + if (ctx == NULL) { + fprintf(stderr, "Failed to create SSL_CTX\n"); goto end; + } mySSL_CTX_free(ctx); } - if (!TEST_true(shlib_sym(cryptolib, "ERR_get_error", &symbols[0].sym)) - || !TEST_true(shlib_sym(cryptolib, "OpenSSL_version_num", - &symbols[1].sym))) + if (!shlib_sym(cryptolib, "ERR_get_error", &symbols[0].sym) + || !shlib_sym(cryptolib, "OpenSSL_version_num", &symbols[1].sym) + || !shlib_sym(cryptolib, "OPENSSL_atexit", &symbols[2].sym)) { + fprintf(stderr, "Failed to load libcrypto symbols\n"); goto end; + } myERR_get_error = (ERR_get_error_t)symbols[0].func; - if (!TEST_int_eq(myERR_get_error(), 0)) + if (myERR_get_error() != 0) { + fprintf(stderr, "Unexpected ERR_get_error() response\n"); goto end; + } - /* - * The bits that COMPATIBILITY_MASK lets through MUST be the same in - * the library and in the application. - * The bits that are masked away MUST be a larger or equal number in - * the library compared to the application. - */ -# define COMPATIBILITY_MASK 0xfff00000L myOpenSSL_version_num = (OpenSSL_version_num_t)symbols[1].func; - if (!TEST_int_eq(myOpenSSL_version_num() & COMPATIBILITY_MASK, - OPENSSL_VERSION_NUMBER & COMPATIBILITY_MASK)) + if (myOpenSSL_version_num() != OPENSSL_VERSION_NUMBER) { + fprintf(stderr, "Invalid library version number\n"); goto end; - if (!TEST_int_ge(myOpenSSL_version_num() & ~COMPATIBILITY_MASK, - OPENSSL_VERSION_NUMBER & ~COMPATIBILITY_MASK)) + } + + myOPENSSL_atexit = (OPENSSL_atexit_t)symbols[2].func; + if (!myOPENSSL_atexit(atexit_handler)) { + fprintf(stderr, "Failed to register atexit handler\n"); goto end; + } if (test_type == DSO_REFTEST) { # ifdef DSO_DLFCN @@ -185,10 +231,11 @@ static int test_lib(void) * will always return an error, because DSO_pathbyaddr() is not * implemented there. */ - if (!TEST_true(shlib_sym(cryptolib, "DSO_dsobyaddr", &symbols[0].sym)) - || !TEST_true(shlib_sym(cryptolib, "DSO_free", - &symbols[1].sym))) + if (!shlib_sym(cryptolib, "DSO_dsobyaddr", &symbols[0].sym) + || !shlib_sym(cryptolib, "DSO_free", &symbols[1].sym)) { + fprintf(stderr, "Unable to load DSO symbols\n"); goto end; + } myDSO_dsobyaddr = (DSO_dsobyaddr_t)symbols[0].func; myDSO_free = (DSO_free_t)symbols[1].func; @@ -196,33 +243,44 @@ static int test_lib(void) { DSO *hndl; /* use known symbol from crypto module */ - if (!TEST_ptr(hndl = myDSO_dsobyaddr((void (*)(void))ERR_get_error, 0))) + hndl = myDSO_dsobyaddr((void (*)(void))myERR_get_error, 0); + if (hndl == NULL) { + fprintf(stderr, "DSO_dsobyaddr() failed\n"); goto end; + } myDSO_free(hndl); } # endif /* DSO_DLFCN */ } - switch (test_type) { - case JUST_CRYPTO: - if (!TEST_true(shlib_close(cryptolib))) - goto end; - break; - case CRYPTO_FIRST: - if (!TEST_true(shlib_close(cryptolib)) - || !TEST_true(shlib_close(ssllib))) - goto end; - break; - case SSL_FIRST: - if (!TEST_true(shlib_close(ssllib)) - || !TEST_true(shlib_close(cryptolib))) - goto end; - break; - case DSO_REFTEST: - if (!TEST_true(shlib_close(cryptolib))) + if (!shlib_close(cryptolib)) { + fprintf(stderr, "Failed to close libcrypto\n"); + goto end; + } + + if (test_type == CRYPTO_FIRST || test_type == SSL_FIRST) { + if (!shlib_close(ssllib)) { + fprintf(stderr, "Failed to close libssl\n"); goto end; - break; + } + } + +# if defined(OPENSSL_NO_PINSHARED) \ + && defined(__GLIBC__) \ + && defined(__GLIBC_PREREQ) \ + && defined(OPENSSL_SYS_LINUX) +# if __GLIBC_PREREQ(2, 3) + /* + * If we didn't pin the so then we are hopefully on a platform that supports + * running atexit() on so unload. If not we might crash. We know this is + * true on linux since glibc 2.2.3 + */ + if (test_type != NO_ATEXIT && atexit_handler_done != 1) { + fprintf(stderr, "atexit() handler did not run\n"); + goto end; } +# endif +# endif result = 1; end: @@ -231,9 +289,21 @@ end: #endif -int setup_tests(void) +/* + * shlibloadtest should not use the normal test framework because we don't want + * it to link against libcrypto (which the framework uses). The point of the + * test is to check dynamic loading and unloading of libcrypto/libssl. + */ +int main(int argc, char *argv[]) { - const char *p = test_get_argument(0); + const char *p; + + if (argc != 5) { + fprintf(stderr, "Incorrect number of arguments\n"); + return 1; + } + + p = argv[1]; if (strcmp(p, "-crypto_first") == 0) { test_type = CRYPTO_FIRST; @@ -242,17 +312,24 @@ int setup_tests(void) } else if (strcmp(p, "-just_crypto") == 0) { test_type = JUST_CRYPTO; } else if (strcmp(p, "-dso_ref") == 0) { - test_type = JUST_CRYPTO; + test_type = DSO_REFTEST; + } else if (strcmp(p, "-no_atexit") == 0) { + test_type = NO_ATEXIT; } else { - TEST_error("Unrecognised argument"); - return 0; + fprintf(stderr, "Unrecognised argument\n"); + return 1; + } + path_crypto = argv[2]; + path_ssl = argv[3]; + path_atexit = argv[4]; + if (path_crypto == NULL || path_ssl == NULL) { + fprintf(stderr, "Invalid libcrypto/libssl path\n"); + return 1; } - if (!TEST_ptr(path_crypto = test_get_argument(1)) - || !TEST_ptr(path_ssl = test_get_argument(2))) - return 0; #if defined(DSO_DLFCN) || defined(DSO_WIN32) - ADD_TEST(test_lib); + if (!test_lib()) + return 1; #endif - return 1; + return 0; } diff --git a/test/ssl-tests/29-dtls-sctp-label-bug.conf b/test/ssl-tests/29-dtls-sctp-label-bug.conf new file mode 100644 index 0000000000000000000000000000000000000000..24f9e04f16d9356dbb5898e7e4a9e05b37be27b8 --- /dev/null +++ b/test/ssl-tests/29-dtls-sctp-label-bug.conf @@ -0,0 +1,116 @@ +# Generated with generate_ssl_tests.pl + +num_tests = 4 + +test-0 = 0-SCTPLabelBug-good1 +test-1 = 1-SCTPLabelBug-good2 +test-2 = 2-SCTPLabelBug-bad1 +test-3 = 3-SCTPLabelBug-bad2 +# =========================================================== + +[0-SCTPLabelBug-good1] +ssl_conf = 0-SCTPLabelBug-good1-ssl + +[0-SCTPLabelBug-good1-ssl] +server = 0-SCTPLabelBug-good1-server +client = 0-SCTPLabelBug-good1-client + +[0-SCTPLabelBug-good1-server] +Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem +CipherString = DEFAULT +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[0-SCTPLabelBug-good1-client] +CipherString = DEFAULT +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-0] +EnableClientSCTPLabelBug = No +EnableServerSCTPLabelBug = No +ExpectedResult = Success +Method = DTLS +UseSCTP = Yes + + +# =========================================================== + +[1-SCTPLabelBug-good2] +ssl_conf = 1-SCTPLabelBug-good2-ssl + +[1-SCTPLabelBug-good2-ssl] +server = 1-SCTPLabelBug-good2-server +client = 1-SCTPLabelBug-good2-client + +[1-SCTPLabelBug-good2-server] +Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem +CipherString = DEFAULT +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[1-SCTPLabelBug-good2-client] +CipherString = DEFAULT +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-1] +EnableClientSCTPLabelBug = Yes +EnableServerSCTPLabelBug = Yes +ExpectedResult = Success +Method = DTLS +UseSCTP = Yes + + +# =========================================================== + +[2-SCTPLabelBug-bad1] +ssl_conf = 2-SCTPLabelBug-bad1-ssl + +[2-SCTPLabelBug-bad1-ssl] +server = 2-SCTPLabelBug-bad1-server +client = 2-SCTPLabelBug-bad1-client + +[2-SCTPLabelBug-bad1-server] +Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem +CipherString = DEFAULT +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[2-SCTPLabelBug-bad1-client] +CipherString = DEFAULT +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-2] +EnableClientSCTPLabelBug = Yes +EnableServerSCTPLabelBug = No +ExpectedResult = ClientFail +Method = DTLS +UseSCTP = Yes + + +# =========================================================== + +[3-SCTPLabelBug-bad2] +ssl_conf = 3-SCTPLabelBug-bad2-ssl + +[3-SCTPLabelBug-bad2-ssl] +server = 3-SCTPLabelBug-bad2-server +client = 3-SCTPLabelBug-bad2-client + +[3-SCTPLabelBug-bad2-server] +Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem +CipherString = DEFAULT +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[3-SCTPLabelBug-bad2-client] +CipherString = DEFAULT +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-3] +EnableClientSCTPLabelBug = No +EnableServerSCTPLabelBug = Yes +ExpectedResult = ClientFail +Method = DTLS +UseSCTP = Yes + + diff --git a/test/ssl-tests/29-dtls-sctp-label-bug.conf.in b/test/ssl-tests/29-dtls-sctp-label-bug.conf.in new file mode 100644 index 0000000000000000000000000000000000000000..97476999b8442e0fdc3df4251ccf7f919b308a83 --- /dev/null +++ b/test/ssl-tests/29-dtls-sctp-label-bug.conf.in @@ -0,0 +1,67 @@ +# -*- mode: perl; -*- +# Copyright 2019 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 + + +## Test SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG handling + +use strict; +use warnings; + +package ssltests; +use OpenSSL::Test::Utils; + +our @tests = ( + { + name => "SCTPLabelBug-good1", + server => {}, + client => {}, + test => { + "Method" => "DTLS", + "UseSCTP" => "Yes", + "EnableClientSCTPLabelBug" => "No", + "EnableServerSCTPLabelBug" => "No", + "ExpectedResult" => "Success" + } + }, + { + name => "SCTPLabelBug-good2", + server => {}, + client => {}, + test => { + "Method" => "DTLS", + "UseSCTP" => "Yes", + "EnableClientSCTPLabelBug" => "Yes", + "EnableServerSCTPLabelBug" => "Yes", + "ExpectedResult" => "Success" + } + }, + { + name => "SCTPLabelBug-bad1", + server => {}, + client => {}, + test => { + "Method" => "DTLS", + "UseSCTP" => "Yes", + "EnableClientSCTPLabelBug" => "Yes", + "EnableServerSCTPLabelBug" => "No", + "ExpectedResult" => "ClientFail" + } + }, + { + name => "SCTPLabelBug-bad2", + server => {}, + client => {}, + test => { + "Method" => "DTLS", + "UseSCTP" => "Yes", + "EnableClientSCTPLabelBug" => "No", + "EnableServerSCTPLabelBug" => "Yes", + "ExpectedResult" => "ClientFail" + } + }, +); diff --git a/test/ssl_test_ctx.c b/test/ssl_test_ctx.c index 753338530daaa00286f7af3a6a06cc5910c6c676..6cdced5a167545119f9a750d0407b2f74844890b 100644 --- a/test/ssl_test_ctx.c +++ b/test/ssl_test_ctx.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -446,6 +446,8 @@ const char *ssl_ct_validation_name(ssl_ct_validation_t mode) IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, resumption_expected) IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_SERVER_CONF, server, broken_session_ticket) IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, use_sctp) +IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_client_sctp_label_bug) +IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_server_sctp_label_bug) /* CertStatus */ @@ -669,6 +671,8 @@ static const ssl_test_ctx_option ssl_test_ctx_options[] = { { "ExpectedClientSignType", &parse_expected_client_sign_type }, { "ExpectedClientCANames", &parse_expected_client_ca_names }, { "UseSCTP", &parse_test_use_sctp }, + { "EnableClientSCTPLabelBug", &parse_test_enable_client_sctp_label_bug }, + { "EnableServerSCTPLabelBug", &parse_test_enable_server_sctp_label_bug }, { "ExpectedCipher", &parse_test_expected_cipher }, { "ExpectedSessionTicketAppData", &parse_test_expected_session_ticket_app_data }, }; diff --git a/test/ssl_test_ctx.h b/test/ssl_test_ctx.h index 86d227d86550cf0764838b9899d655147c8706af..36d73f752c3e4e374c1bf7db2436d8070fa34ea5 100644 --- a/test/ssl_test_ctx.h +++ b/test/ssl_test_ctx.h @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -214,6 +214,10 @@ typedef struct { STACK_OF(X509_NAME) *expected_client_ca_names; /* Whether to use SCTP for the transport */ int use_sctp; + /* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on client side */ + int enable_client_sctp_label_bug; + /* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on server side */ + int enable_server_sctp_label_bug; /* Whether to expect a session id from the server */ ssl_session_id_t session_id_expected; char *expected_cipher; diff --git a/test/sslapitest.c b/test/sslapitest.c index 108d57e4781cd9a6e468ec71ff9d1122e1ddc655..2261fe4a7a9cd0640648abce16c4050fa285eecd 100644 --- a/test/sslapitest.c +++ b/test/sslapitest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -4028,20 +4028,25 @@ static int test_serverinfo(int tst) * no test vectors so all we do is test that both sides of the communication * produce the same results for different protocol versions. */ +#define SMALL_LABEL_LEN 10 +#define LONG_LABEL_LEN 249 static int test_export_key_mat(int tst) { int testresult = 0; SSL_CTX *cctx = NULL, *sctx = NULL, *sctx2 = NULL; SSL *clientssl = NULL, *serverssl = NULL; - const char label[] = "test label"; + const char label[LONG_LABEL_LEN + 1] = "test label"; const unsigned char context[] = "context"; const unsigned char *emptycontext = NULL; unsigned char ckeymat1[80], ckeymat2[80], ckeymat3[80]; unsigned char skeymat1[80], skeymat2[80], skeymat3[80]; + size_t labellen; const int protocols[] = { TLS1_VERSION, TLS1_1_VERSION, TLS1_2_VERSION, + TLS1_3_VERSION, + TLS1_3_VERSION, TLS1_3_VERSION }; @@ -4058,7 +4063,7 @@ static int test_export_key_mat(int tst) return 1; #endif #ifdef OPENSSL_NO_TLS1_3 - if (tst == 3) + if (tst >= 3) return 1; #endif if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), TLS_client_method(), @@ -4076,33 +4081,52 @@ static int test_export_key_mat(int tst) SSL_ERROR_NONE))) goto end; + if (tst == 5) { + /* + * TLSv1.3 imposes a maximum label len of 249 bytes. Check we fail if we + * go over that. + */ + if (!TEST_int_le(SSL_export_keying_material(clientssl, ckeymat1, + sizeof(ckeymat1), label, + LONG_LABEL_LEN + 1, context, + sizeof(context) - 1, 1), 0)) + goto end; + + testresult = 1; + goto end; + } else if (tst == 4) { + labellen = LONG_LABEL_LEN; + } else { + labellen = SMALL_LABEL_LEN; + } + if (!TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat1, sizeof(ckeymat1), label, - sizeof(label) - 1, context, + labellen, context, sizeof(context) - 1, 1), 1) || !TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat2, sizeof(ckeymat2), label, - sizeof(label) - 1, + labellen, emptycontext, 0, 1), 1) || !TEST_int_eq(SSL_export_keying_material(clientssl, ckeymat3, sizeof(ckeymat3), label, - sizeof(label) - 1, + labellen, NULL, 0, 0), 1) || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat1, sizeof(skeymat1), label, - sizeof(label) - 1, + labellen, context, sizeof(context) -1, 1), 1) || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat2, sizeof(skeymat2), label, - sizeof(label) - 1, + labellen, emptycontext, 0, 1), 1) || !TEST_int_eq(SSL_export_keying_material(serverssl, skeymat3, sizeof(skeymat3), label, - sizeof(label) - 1, + labellen, NULL, 0, 0), 1) /* * Check that both sides created the same key material with the @@ -4131,10 +4155,10 @@ static int test_export_key_mat(int tst) * Check that an empty context and no context produce different results in * protocols less than TLSv1.3. In TLSv1.3 they should be the same. */ - if ((tst != 3 && !TEST_mem_ne(ckeymat2, sizeof(ckeymat2), ckeymat3, + if ((tst < 3 && !TEST_mem_ne(ckeymat2, sizeof(ckeymat2), ckeymat3, sizeof(ckeymat3))) - || (tst ==3 && !TEST_mem_eq(ckeymat2, sizeof(ckeymat2), ckeymat3, - sizeof(ckeymat3)))) + || (tst >= 3 && !TEST_mem_eq(ckeymat2, sizeof(ckeymat2), ckeymat3, + sizeof(ckeymat3)))) goto end; testresult = 1; @@ -4226,6 +4250,58 @@ static int test_export_key_mat_early(int idx) return testresult; } + +#define NUM_KEY_UPDATE_MESSAGES 40 +/* + * Test KeyUpdate. + */ +static int test_key_update(void) +{ + SSL_CTX *cctx = NULL, *sctx = NULL; + SSL *clientssl = NULL, *serverssl = NULL; + int testresult = 0, i, j; + char buf[20]; + static char *mess = "A test message"; + + if (!TEST_true(create_ssl_ctx_pair(TLS_server_method(), + TLS_client_method(), + TLS1_3_VERSION, + 0, + &sctx, &cctx, cert, privkey)) + || !TEST_true(create_ssl_objects(sctx, cctx, &serverssl, &clientssl, + NULL, NULL)) + || !TEST_true(create_ssl_connection(serverssl, clientssl, + SSL_ERROR_NONE))) + goto end; + + for (j = 0; j < 2; j++) { + /* Send lots of KeyUpdate messages */ + for (i = 0; i < NUM_KEY_UPDATE_MESSAGES; i++) { + if (!TEST_true(SSL_key_update(clientssl, + (j == 0) + ? SSL_KEY_UPDATE_NOT_REQUESTED + : SSL_KEY_UPDATE_REQUESTED)) + || !TEST_true(SSL_do_handshake(clientssl))) + goto end; + } + + /* Check that sending and receiving app data is ok */ + if (!TEST_int_eq(SSL_write(clientssl, mess, strlen(mess)), strlen(mess)) + || !TEST_int_eq(SSL_read(serverssl, buf, sizeof(buf)), + strlen(mess))) + goto end; + } + + testresult = 1; + + end: + SSL_free(serverssl); + SSL_free(clientssl); + SSL_CTX_free(sctx); + SSL_CTX_free(cctx); + + return testresult; +} #endif /* OPENSSL_NO_TLS1_3 */ static int test_ssl_clear(int idx) @@ -4710,18 +4786,14 @@ static struct info_cb_states_st { {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, {SSL_CB_LOOP, "TWSC"}, {SSL_CB_LOOP, "TRSCV"}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_LOOP, "TED"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TRFIN"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "TWST"}, {SSL_CB_HANDSHAKE_DONE, NULL}, - {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "TWST"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, - {SSL_CB_ALERT, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, - {SSL_CB_LOOP, "TWSH"}, {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, - {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_LOOP, "TED"}, {SSL_CB_EXIT, NULL}, - {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TRFIN"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "TWST"}, {SSL_CB_HANDSHAKE_DONE, NULL}, - {SSL_CB_EXIT, NULL}, {0, NULL}, + {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_LOOP, "TWST"}, + {SSL_CB_LOOP, "TWST"}, {SSL_CB_EXIT, NULL}, {SSL_CB_ALERT, NULL}, + {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "}, + {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TRCH"}, {SSL_CB_LOOP, "TWSH"}, + {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWEE"}, {SSL_CB_LOOP, "TWFIN"}, + {SSL_CB_LOOP, "TED"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TED"}, + {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL}, + {SSL_CB_LOOP, "TWST"}, {SSL_CB_EXIT, NULL}, {0, NULL}, }, { /* TLSv1.3 client followed by resumption */ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "}, @@ -4729,20 +4801,16 @@ static struct info_cb_states_st { {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"}, {SSL_CB_LOOP, "TRSC"}, {SSL_CB_LOOP, "TRSCV"}, {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL}, - {SSL_CB_EXIT, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, - {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "SSLOK "}, - {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, + {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, + {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "}, + {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL}, {SSL_CB_ALERT, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "}, {SSL_CB_LOOP, "TWCH"}, {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "TWCH"}, {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"}, {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TWCCS"}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, - {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "SSLOK "}, - {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, {0, NULL}, + {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, + {SSL_CB_EXIT, NULL}, {0, NULL}, }, { /* TLSv1.3 server, early_data */ {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "PINIT "}, @@ -4751,8 +4819,7 @@ static struct info_cb_states_st { {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TWEOED"}, {SSL_CB_LOOP, "TRFIN"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "TWST"}, {SSL_CB_HANDSHAKE_DONE, NULL}, + {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_LOOP, "TWST"}, {SSL_CB_EXIT, NULL}, {0, NULL}, }, { /* TLSv1.3 client, early_data */ @@ -4763,9 +4830,8 @@ static struct info_cb_states_st { {SSL_CB_LOOP, "TED"}, {SSL_CB_LOOP, "TRSH"}, {SSL_CB_LOOP, "TREE"}, {SSL_CB_LOOP, "TRFIN"}, {SSL_CB_LOOP, "TPEDE"}, {SSL_CB_LOOP, "TWEOED"}, {SSL_CB_LOOP, "TWFIN"}, {SSL_CB_HANDSHAKE_DONE, NULL}, - {SSL_CB_EXIT, NULL}, {SSL_CB_HANDSHAKE_START, NULL}, - {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "TRST"}, - {SSL_CB_HANDSHAKE_DONE, NULL}, {SSL_CB_EXIT, NULL}, {0, NULL}, + {SSL_CB_EXIT, NULL}, {SSL_CB_LOOP, "SSLOK "}, {SSL_CB_LOOP, "SSLOK "}, + {SSL_CB_LOOP, "TRST"}, {SSL_CB_EXIT, NULL}, {0, NULL}, }, { {0, NULL}, } @@ -4804,8 +4870,11 @@ static void sslapi_info_callback(const SSL *s, int where, int ret) return; } - /* Check that, if we've got SSL_CB_HANDSHAKE_DONE we are not in init */ - if ((where & SSL_CB_HANDSHAKE_DONE) && SSL_in_init((SSL *)s) != 0) { + /* + * Check that, if we've got SSL_CB_HANDSHAKE_DONE we are not in init + */ + if ((where & SSL_CB_HANDSHAKE_DONE) + && SSL_in_init((SSL *)s) != 0) { info_cb_failed = 1; return; } @@ -5384,7 +5453,7 @@ static int test_shutdown(int tst) if (tst == 3) { if (!TEST_true(create_bare_ssl_connection(serverssl, clientssl, - SSL_ERROR_NONE)) + SSL_ERROR_NONE, 1)) || !TEST_ptr_ne(sess = SSL_get_session(clientssl), NULL) || !TEST_false(SSL_SESSION_is_resumable(sess))) goto end; @@ -5909,9 +5978,10 @@ int setup_tests(void) ADD_ALL_TESTS(test_custom_exts, 3); #endif ADD_ALL_TESTS(test_serverinfo, 8); - ADD_ALL_TESTS(test_export_key_mat, 4); + ADD_ALL_TESTS(test_export_key_mat, 6); #ifndef OPENSSL_NO_TLS1_3 ADD_ALL_TESTS(test_export_key_mat_early, 3); + ADD_TEST(test_key_update); #endif ADD_ALL_TESTS(test_ssl_clear, 2); ADD_ALL_TESTS(test_max_fragment_len_ext, OSSL_NELEM(max_fragment_len_test)); diff --git a/test/ssltest_old.c b/test/ssltest_old.c index 92970776fdda87811caedf61344715775efe5ccf..36e6031f3a102f00a9308c85e7bd50f2f3998b9a 100644 --- a/test/ssltest_old.c +++ b/test/ssltest_old.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright 2005 Nokia. All rights reserved. * @@ -1382,11 +1382,52 @@ int main(int argc, char *argv[]) goto end; if (cipher != NULL) { - if (!SSL_CTX_set_cipher_list(c_ctx, cipher) - || !SSL_CTX_set_cipher_list(s_ctx, cipher) - || !SSL_CTX_set_cipher_list(s_ctx2, cipher)) { - ERR_print_errors(bio_err); - goto end; + if (strcmp(cipher, "") == 0) { + if (!SSL_CTX_set_cipher_list(c_ctx, cipher)) { + if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) { + ERR_clear_error(); + } else { + ERR_print_errors(bio_err); + goto end; + } + } else { + /* Should have failed when clearing all TLSv1.2 ciphers. */ + fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n"); + goto end; + } + + if (!SSL_CTX_set_cipher_list(s_ctx, cipher)) { + if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) { + ERR_clear_error(); + } else { + ERR_print_errors(bio_err); + goto end; + } + } else { + /* Should have failed when clearing all TLSv1.2 ciphers. */ + fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n"); + goto end; + } + + if (!SSL_CTX_set_cipher_list(s_ctx2, cipher)) { + if (ERR_GET_REASON(ERR_peek_error()) == SSL_R_NO_CIPHER_MATCH) { + ERR_clear_error(); + } else { + ERR_print_errors(bio_err); + goto end; + } + } else { + /* Should have failed when clearing all TLSv1.2 ciphers. */ + fprintf(stderr, "CLEARING ALL TLSv1.2 CIPHERS SHOULD FAIL\n"); + goto end; + } + } else { + if (!SSL_CTX_set_cipher_list(c_ctx, cipher) + || !SSL_CTX_set_cipher_list(s_ctx, cipher) + || !SSL_CTX_set_cipher_list(s_ctx2, cipher)) { + ERR_print_errors(bio_err); + goto end; + } } } if (ciphersuites != NULL) { diff --git a/test/ssltestlib.c b/test/ssltestlib.c index eafac3cc42f78a6f61623cfb80fcb578f93bcb52..05139be7507ade0f9cec7006eb8ad72d49ddc096 100644 --- a/test/ssltestlib.c +++ b/test/ssltestlib.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -17,18 +17,28 @@ #ifdef OPENSSL_SYS_UNIX # include <unistd.h> -static ossl_inline void ossl_sleep(unsigned int millis) { +static ossl_inline void ossl_sleep(unsigned int millis) +{ +# ifdef OPENSSL_SYS_VXWORKS + struct timespec ts; + ts.tv_sec = (long int) (millis / 1000); + ts.tv_nsec = (long int) (millis % 1000) * 1000000ul; + nanosleep(&ts, NULL); +# else usleep(millis * 1000); +# endif } #elif defined(_WIN32) # include <windows.h> -static ossl_inline void ossl_sleep(unsigned int millis) { +static ossl_inline void ossl_sleep(unsigned int millis) +{ Sleep(millis); } #else /* Fallback to a busy wait */ -static ossl_inline void ossl_sleep(unsigned int millis) { +static ossl_inline void ossl_sleep(unsigned int millis) +{ struct timeval start, now; unsigned int elapsedms; @@ -428,7 +438,7 @@ int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum, { MEMPACKET_TEST_CTX *ctx = BIO_get_data(bio); MEMPACKET *thispkt = NULL, *looppkt, *nextpkt, *allpkts[3]; - int i, duprec = ctx->duprec > 0; + int i, duprec; const unsigned char *inu = (const unsigned char *)in; size_t len = ((inu[RECORD_LEN_HI] << 8) | inu[RECORD_LEN_LO]) + DTLS1_RT_HEADER_LENGTH; @@ -441,6 +451,8 @@ int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum, if ((size_t)inl == len) duprec = 0; + else + duprec = ctx->duprec > 0; /* We don't support arbitrary injection when duplicating records */ if (duprec && pktnum != -1) @@ -717,8 +729,12 @@ int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl, /* * Create an SSL connection, but does not ready any post-handshake * NewSessionTicket messages. + * If |read| is set and we're using DTLS then we will attempt to SSL_read on + * the connection once we've completed one half of it, to ensure any retransmits + * get triggered. */ -int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want) +int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want, + int read) { int retc = -1, rets = -1, err, abortctr = 0; int clienterr = 0, servererr = 0; @@ -756,11 +772,24 @@ int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want) return 0; if (clienterr && servererr) return 0; - if (isdtls) { - if (rets > 0 && retc <= 0) - DTLSv1_handle_timeout(serverssl); - if (retc > 0 && rets <= 0) - DTLSv1_handle_timeout(clientssl); + if (isdtls && read) { + unsigned char buf[20]; + + /* Trigger any retransmits that may be appropriate */ + if (rets > 0 && retc <= 0) { + if (SSL_read(serverssl, buf, sizeof(buf)) > 0) { + /* We don't expect this to succeed! */ + TEST_info("Unexpected SSL_read() success!"); + return 0; + } + } + if (retc > 0 && rets <= 0) { + if (SSL_read(clientssl, buf, sizeof(buf)) > 0) { + /* We don't expect this to succeed! */ + TEST_info("Unexpected SSL_read() success!"); + return 0; + } + } } if (++abortctr == MAXLOOPS) { TEST_info("No progress made"); @@ -789,7 +818,7 @@ int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want) unsigned char buf; size_t readbytes; - if (!create_bare_ssl_connection(serverssl, clientssl, want)) + if (!create_bare_ssl_connection(serverssl, clientssl, want, 1)) return 0; /* diff --git a/test/ssltestlib.h b/test/ssltestlib.h index 27b040c3cf9f2e596907e00634c624a7b646231e..fa19e7d80d6ef38594d3e76befc0b7f8f754aa07 100644 --- a/test/ssltestlib.h +++ b/test/ssltestlib.h @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -18,7 +18,8 @@ int create_ssl_ctx_pair(const SSL_METHOD *sm, const SSL_METHOD *cm, char *privkeyfile); int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl, SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio); -int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want); +int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want, + int read); int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want); void shutdown_ssl_connection(SSL *serverssl, SSL *clientssl); diff --git a/test/testutil/main.c b/test/testutil/main.c index 6781a5245a029758e6c07595152bf757a946ec97..d3ccdda3911f213705369333596f9552fdee72a2 100644 --- a/test/testutil/main.c +++ b/test/testutil/main.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -54,7 +54,7 @@ int main(int argc, char *argv[]) ret = pulldown_test_framework(ret); test_close_streams(); - return ret; + return ret; } const char *test_get_program_name(void) diff --git a/test/tls13secretstest.c b/test/tls13secretstest.c index 724c170c56b89937b586b5c2c758008ad4fcc9ed..f04ee142a1411b908f585dab243cd7cd6a5917b6 100644 --- a/test/tls13secretstest.c +++ b/test/tls13secretstest.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -28,7 +28,7 @@ /* * Based on the test vectors availble in: - * https://tools.ietf.org/html/draft-ietf-tls-tls13-vectors-06 + * https://tools.ietf.org/html/draft-ietf-tls-tls13-vectors-06 */ static unsigned char hs_start_hash[] = { @@ -236,7 +236,7 @@ static int test_secret(SSL *s, unsigned char *prk, } if (!tls13_hkdf_expand(s, md, prk, label, labellen, hash, hashsize, - gensecret, hashsize)) { + gensecret, hashsize, 1)) { TEST_error("Secret generation failed"); return 0; } diff --git a/test/x509aux.c b/test/x509aux.c index c8bef0094db6416f9db0cadcf660c155bfbad559..e41f1f6809d2a1b432202b3c6cecd2f65ed71b7e 100644 --- a/test/x509aux.c +++ b/test/x509aux.c @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL licenses, (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ static int test_certs(int num) typedef int (*i2d_X509_t)(X509 *, unsigned char **); int err = 0; BIO *fp = BIO_new_file(test_get_argument(num), "r"); + X509 *reuse = NULL; if (!TEST_ptr(fp)) return 0; @@ -91,6 +92,13 @@ static int test_certs(int num) err = 1; goto next; } + p = buf; + reuse = d2i(&reuse, &p, enclen); + if (reuse == NULL || X509_cmp (reuse, cert)) { + TEST_error("X509_cmp does not work with %s", name); + err = 1; + goto next; + } OPENSSL_free(buf); buf = NULL; @@ -139,6 +147,7 @@ static int test_certs(int num) OPENSSL_free(data); } BIO_free(fp); + X509_free(reuse); if (ERR_GET_REASON(ERR_peek_last_error()) == PEM_R_NO_START_LINE) { /* Reached end of PEM file */ diff --git a/util/cavs-to-evptest.pl b/util/cavs-to-evptest.pl new file mode 100644 index 0000000000000000000000000000000000000000..8df32943dbc7c302b4911b2605b29adb8c61de14 --- /dev/null +++ b/util/cavs-to-evptest.pl @@ -0,0 +1,121 @@ +#! /usr/bin/env perl +# Copyright 2019 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 + +#Convert CCM CAVS test vectors to a format suitable for evp_test + +use strict; +use warnings; + +my $alg; +my $mode; +my $keylen; +my $key = ""; +my $iv = ""; +my $aad = ""; +my $ct = ""; +my $pt = ""; +my $tag = ""; +my $aadlen = 0; +my $ptlen = 0; +my $taglen = 0; +my $res = ""; +my $intest = 0; +my $fixediv = 0; + +while (<STDIN>) +{ + chomp; + + # Pull out the cipher mode from the comment at the beginning of the file + if(/^#\s*"([^-]+)-\w+" information/) { + $mode = lc($1); + # Pull out the key length from the comment at the beginning of the file + } elsif(/^#\s*(\w+) Keylen: (\d+)/) { + $alg = lc($1); + $keylen = $2; + # Some parameters common to many tests appear as a list in square brackets + # so parse these + } elsif(/\[(.*)\]/) { + my @pairs = split(/, /, $1); + foreach my $pair (@pairs) { + $pair =~ /(\w+)\s*=\s*(\d+)/; + # AAD Length + if ($1 eq "Alen") { + $aadlen = $2; + # Plaintext length + } elsif ($1 eq "Plen") { + $ptlen = $2; + # Tag length + } elsif ($1 eq "Tlen") { + $taglen = $2; + } + } + # Key/Value pair + } elsif (/^\s*(\w+)\s*=\s*(\S.*)\r/) { + if ($1 eq "Key") { + $key = $2; + } elsif ($1 eq "Nonce") { + $iv = $2; + if ($intest == 0) { + $fixediv = 1; + } else { + $fixediv = 0; + } + } elsif ($1 eq "Adata") { + $aad = $2; + } elsif ($1 eq "CT") { + $ct = substr($2, 0, length($2) - ($taglen * 2)); + $tag = substr($2, $taglen * -2); + } elsif ($1 eq "Payload") { + $pt = $2; + } elsif ($1 eq "Result") { + if ($2 =~ /Fail/) { + $res = "CIPHERUPDATE_ERROR"; + } + } elsif ($1 eq "Count") { + $intest = 1; + } elsif ($1 eq "Plen") { + $ptlen = $2; + } elsif ($1 eq "Tlen") { + $taglen = $2; + } elsif ($1 eq "Alen") { + $aadlen = $2; + } + # Something else - probably just a blank line + } elsif ($intest) { + print "Cipher = $alg-$keylen-$mode\n"; + print "Key = $key\n"; + print "IV = $iv\n"; + print "AAD ="; + if ($aadlen > 0) { + print " $aad"; + } + print "\nTag ="; + if ($taglen > 0) { + print " $tag"; + } + print "\nPlaintext ="; + if ($ptlen > 0) { + print " $pt"; + } + print "\nCiphertext = $ct\n"; + if ($res ne "") { + print "Operation = DECRYPT\n"; + print "Result = $res\n"; + } + print "\n"; + $res = ""; + if ($fixediv == 0) { + $iv = ""; + } + $aad = ""; + $tag = ""; + $pt = ""; + $intest = 0; + } +} diff --git a/util/find-doc-nits b/util/find-doc-nits index 860bb9958bd2d8b7d86e0b962009fa2e286d2923..7340782662a9ae9f6e1510429c6fbf09ceaf1f67 100755 --- a/util/find-doc-nits +++ b/util/find-doc-nits @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -137,6 +137,20 @@ sub name_synopsis() } } +# Check if SECTION is located before BEFORE +sub check_section_location() +{ + my $filename = shift; + my $contents = shift; + my $section = shift; + my $before = shift; + + return unless $contents =~ /=head1 $section/ + and $contents =~ /=head1 $before/; + print "$filename: $section should be placed before $before section\n" + if $contents =~ /=head1 $before.*=head1 $section/ms; +} + sub check() { my $filename = shift; @@ -150,6 +164,13 @@ sub check() close POD; } + # Check if EXAMPLES is located after RETURN VALUES section. + &check_section_location($filename, $contents, "RETURN VALUES", "EXAMPLES") if $filename =~ m|man3/|; + # Check if HISTORY is located after SEE ALSO + &check_section_location($filename, $contents, "SEE ALSO", "HISTORY") if $filename =~ m|man3/|; + # Check if SEE ALSO is located after EXAMPLES + &check_section_location($filename, $contents, "EXAMPLES", "SEE ALSO") if $filename =~ m|man3/|; + my $id = "${filename}:1:"; &name_synopsis($id, $filename, $contents) diff --git a/util/indent.pro b/util/indent.pro index 443bddb1cc2ae4cb203708d6ecace9f7d86c1be8..3d3f747bf88325223f1a4fefff3b7dbd6645efa1 100644 --- a/util/indent.pro +++ b/util/indent.pro @@ -26,7 +26,7 @@ -nprs -npsl -nsc --ppi1 +-ppi1 -saf -sai -saw diff --git a/util/libcrypto.num b/util/libcrypto.num index bad3a3814ecdc1ba7f16bb395dd93c7b1907c980..474f9f950d1f4d9cc9aedb63d48a244db9880902 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -4577,3 +4577,6 @@ OCSP_resp_get0_respdata 4530 1_1_0j EXIST::FUNCTION:OCSP EVP_MD_CTX_set_pkey_ctx 4531 1_1_1 EXIST::FUNCTION: EVP_PKEY_meth_set_digest_custom 4532 1_1_1 EXIST::FUNCTION: EVP_PKEY_meth_get_digest_custom 4533 1_1_1 EXIST::FUNCTION: +OPENSSL_INIT_set_config_filename 4534 1_1_1b EXIST::FUNCTION:STDIO +OPENSSL_INIT_set_config_file_flags 4535 1_1_1b EXIST::FUNCTION:STDIO +EVP_PKEY_get0_engine 4536 1_1_1c EXIST::FUNCTION:ENGINE diff --git a/util/local_shlib.com.in b/util/local_shlib.com.in index e49aa15c77921c0bc700b035e66c805fa02a89ef..a381872537e14242eb8408a4308caa4b1868fb28 100644 --- a/util/local_shlib.com.in +++ b/util/local_shlib.com.in @@ -16,7 +16,7 @@ $ $ NAMES := {- join(",", keys %names); -} {- join("\n", map { "\$ __$_ = \"".$names{$_}."\"" } keys %names); --} +-} $ I = 0 $ LOOP: $ E = F$ELEMENT(I,",",NAMES) diff --git a/util/openssl-format-source b/util/openssl-format-source index 2655e9c4009ccaa6d5e320c94c7d8c7a21881f72..e39964420f56c47c8b98aa1d75f28c4a29bb9314 100755 --- a/util/openssl-format-source +++ b/util/openssl-format-source @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2015-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -8,18 +8,18 @@ # https://www.openssl.org/source/license.html # -# openssl-format-source +# openssl-format-source # - format source tree according to OpenSSL coding style using indent # # usage: # openssl-format-source [-v] [-n] [file|directory] ... # # note: the indent options assume GNU indent v2.2.10 which was released -# Feb-2009 so if you have an older indent the options may not +# Feb-2009 so if you have an older indent the options may not # match what is expected # # any marked block comment blocks have to be moved to align manually after -# the reformatting has been completed as marking a block causes indent to +# the reformatting has been completed as marking a block causes indent to # not move it at all ... # @@ -55,17 +55,17 @@ fi # Extra arguments; for adding the comment-formatting INDENT_ARGS="" -for i +for i do if [ "$STOPARGS" != "true" ]; then case $i in --) STOPARGS="true"; continue;; -n) DONT="true"; continue;; - -v) VERBOSE="true"; + -v) VERBOSE="true"; echo "INDENT_PROFILE=$INDENT_PROFILE"; continue;; - -c) COMMENTS="true"; - INDENT_ARGS="-fc1 -fca -cdb -sc"; + -c) COMMENTS="true"; + INDENT_ARGS="-fc1 -fca -cdb -sc"; continue;; -nc) COMMENTS="true"; continue;; @@ -76,14 +76,14 @@ do if [ -d "$i" ]; then LIST=`find "$i" -name '*.[ch]' -print` - else + else if [ ! -f "$i" ]; then echo "$0: source file not found: $i" >&2 exit 1 fi LIST="$i" fi - + for j in $LIST do # ignore symlinks - we only ever process the base file - so if we @@ -98,7 +98,7 @@ do tmp=$(mktemp /tmp/indent.XXXXXX) trap 'rm -f "$tmp"' HUP INT TERM EXIT - case `basename $j` in + case `basename $j` in # the list of files that indent is unable to handle correctly # that we simply leave alone for manual formatting now obj_dat.h|aes_core.c|aes_x86core.c|ecp_nistz256.c) @@ -108,11 +108,11 @@ do if [ "$COMMENTS" = "true" ]; then # we have to mark single line comments as /*- ...*/ to stop indent # messing with them, run expand then indent as usual but with the - # the process-comments options and then undo that marking, and then + # the process-comments options and then undo that marking, and then # finally re-run indent without process-comments so the marked-to- - # be-ignored comments we did automatically end up getting moved - # into the right position within the code as indent leaves marked - # comments entirely untouched - we appear to have no way to avoid + # be-ignored comments we did automatically end up getting moved + # into the right position within the code as indent leaves marked + # comments entirely untouched - we appear to have no way to avoid # the double processing and get the desired output cat "$j" | \ expand | \ diff --git a/util/perl/TLSProxy/Alert.pm b/util/perl/TLSProxy/Alert.pm index e66883d459667833811d335ea049363b5c057c60..e27497dbde17ad58c02dfedec1892c8d7d60210c 100644 --- a/util/perl/TLSProxy/Alert.pm +++ b/util/perl/TLSProxy/Alert.pm @@ -1,4 +1,4 @@ -# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -16,7 +16,7 @@ sub new $encrypted, $level, $description) = @_; - + my $self = { server => $server, encrypted => $encrypted, diff --git a/util/perl/TLSProxy/Certificate.pm b/util/perl/TLSProxy/Certificate.pm index d3bf7f21804471e47fc52cbb61b0e0262ff11b6c..73737137b10130e1549e1178ab7fffc152949795 100644 --- a/util/perl/TLSProxy/Certificate.pm +++ b/util/perl/TLSProxy/Certificate.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -138,11 +138,6 @@ sub set_message_contents $extensions .= pack("n", $key); $extensions .= pack("n", length($extdata)); $extensions .= $extdata; - if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) { - $extensions .= pack("n", $key); - $extensions .= pack("n", length($extdata)); - $extensions .= $extdata; - } } $data = pack('C', length($self->context())); $data .= $self->context; diff --git a/util/perl/TLSProxy/ClientHello.pm b/util/perl/TLSProxy/ClientHello.pm index 2ae9d6f55d2b9a5c83e0705b376c2075fc01e21a..76dce740ae2de3099ff3dad62ec5209bd47b2f3b 100644 --- a/util/perl/TLSProxy/ClientHello.pm +++ b/util/perl/TLSProxy/ClientHello.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -124,11 +124,6 @@ sub extension_contents $extension .= pack("n", $key); $extension .= pack("n", length($extdata)); $extension .= $extdata; - if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) { - $extension .= pack("n", $key); - $extension .= pack("n", length($extdata)); - $extension .= $extdata; - } return $extension; } @@ -151,6 +146,8 @@ sub set_message_contents foreach my $key (keys %{$self->extension_data}) { next if ($key == TLSProxy::Message::EXT_PSK); $extensions .= $self->extension_contents($key); + #Add extension twice if we are duplicating that extension + $extensions .= $self->extension_contents($key) if ($key == $self->dupext); } #PSK extension always goes last... if (defined ${$self->extension_data}{TLSProxy::Message::EXT_PSK}) { diff --git a/util/perl/TLSProxy/EncryptedExtensions.pm b/util/perl/TLSProxy/EncryptedExtensions.pm index 81242e29ff9de8f8fbdc1ab65bb8a6d3355f5541..262b720cf659aa34abe3531b2e47a0b4e37e42e2 100644 --- a/util/perl/TLSProxy/EncryptedExtensions.pm +++ b/util/perl/TLSProxy/EncryptedExtensions.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -81,11 +81,6 @@ sub set_message_contents $extensions .= pack("n", $key); $extensions .= pack("n", length($extdata)); $extensions .= $extdata; - if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) { - $extensions .= pack("n", $key); - $extensions .= pack("n", length($extdata)); - $extensions .= $extdata; - } } $data = pack('n', length($extensions)); diff --git a/util/perl/TLSProxy/Message.pm b/util/perl/TLSProxy/Message.pm index 16ed0120669b884c95112137f395f670c04ebad5..5682ae3e1582bea3b348ed8a00def4dd8ff04659 100644 --- a/util/perl/TLSProxy/Message.pm +++ b/util/perl/TLSProxy/Message.pm @@ -1,4 +1,4 @@ -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -86,10 +86,7 @@ use constant { EXT_SIG_ALGS_CERT => 50, EXT_RENEGOTIATE => 65281, EXT_NPN => 13172, - # This extension is an unofficial extension only ever written by OpenSSL - # (i.e. not read), and even then only when enabled. We use it to test - # handling of duplicate extensions. - EXT_DUPLICATE_EXTENSION => 0xfde8, + EXT_CRYPTOPRO_BUG_EXTENSION => 0xfde8, EXT_UNKNOWN => 0xfffe, #Unknown extension that should appear last EXT_FORCE_LAST => 0xffff @@ -241,7 +238,7 @@ sub get_messages $startoffset = $recoffset; $recoffset += 4; $payload = ""; - + if ($recoffset <= $record->decrypt_len) { #Some payload data is present in this record if ($record->decrypt_len - $recoffset >= $messlen) { @@ -413,14 +410,15 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = { server => $server, data => $data, records => $records, mt => $mt, startoffset => $startoffset, - message_frag_lens => $message_frag_lens + message_frag_lens => $message_frag_lens, + dupext => -1 }; return bless $self, $class; @@ -575,6 +573,14 @@ sub encoded_length my $self = shift; return TLS_MESSAGE_HEADER_LENGTH + length($self->data); } +sub dupext +{ + my $self = shift; + if (@_) { + $self->{dupext} = shift; + } + return $self->{dupext}; +} sub successondata { my $class = shift; diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index 8c13520ec68dd7ec366d658f49b3d8ac2e27ed8a..f7bca02e58aa632925be2567fecef3f68c8aabd9 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -1,4 +1,4 @@ -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -44,7 +44,7 @@ BEGIN $s->close(); }; if ($@ eq "") { - $IP_factory = sub { IO::Socket::INET6->new(@_); }; + $IP_factory = sub { IO::Socket::INET6->new(Domain => AF_INET6, @_); }; $have_IPv6 = 1; } else { eval { diff --git a/util/perl/TLSProxy/Record.pm b/util/perl/TLSProxy/Record.pm index 0a280cb269961bf750798ba89753d9d252368544..841467b8e02f4b0549cdffa5cb9434c1a107bdfc 100644 --- a/util/perl/TLSProxy/Record.pm +++ b/util/perl/TLSProxy/Record.pm @@ -1,4 +1,4 @@ -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -173,7 +173,7 @@ sub new $decrypt_len, $data, $decrypt_data) = @_; - + my $self = { flight => $flight, content_type => $content_type, diff --git a/util/perl/TLSProxy/ServerHello.pm b/util/perl/TLSProxy/ServerHello.pm index 84f2faab058bd58683ee7c44da85f995ec5bc670..e9f1eca1934b9f5fc6bd255944c98487f5f38d57 100644 --- a/util/perl/TLSProxy/ServerHello.pm +++ b/util/perl/TLSProxy/ServerHello.pm @@ -1,4 +1,4 @@ -# Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -25,7 +25,7 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = $class->SUPER::new( $server, TLSProxy::Message::MT_SERVER_HELLO, @@ -78,7 +78,7 @@ sub parse my $extension_data; if ($extensions_len != 0) { $extension_data = substr($self->data, $ptr); - + if (length($extension_data) != $extensions_len) { die "Invalid extension length\n"; } @@ -154,7 +154,7 @@ sub set_message_contents $extensions .= pack("n", $key); $extensions .= pack("n", length($extdata)); $extensions .= $extdata; - if ($key == TLSProxy::Message::EXT_DUPLICATE_EXTENSION) { + if ($key == $self->dupext) { $extensions .= pack("n", $key); $extensions .= pack("n", length($extdata)); $extensions .= $extdata; diff --git a/util/perl/TLSProxy/ServerKeyExchange.pm b/util/perl/TLSProxy/ServerKeyExchange.pm index cb4cc7c7625a58946cdaa7cde9e2c090e4ce7e2f..e0086e2bef9db5642e006f89e3c6c70d25826028 100644 --- a/util/perl/TLSProxy/ServerKeyExchange.pm +++ b/util/perl/TLSProxy/ServerKeyExchange.pm @@ -1,4 +1,4 @@ -# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -20,7 +20,7 @@ sub new $records, $startoffset, $message_frag_lens) = @_; - + my $self = $class->SUPER::new( $server, TLSProxy::Message::MT_SERVER_KEY_EXCHANGE,