pax_global_header00006660000000000000000000000064152306006720014513gustar00rootroot0000000000000052 comment=bc0ce2be8d28e4fc2a7c13bd6e31165b6f29eb60 upki-1.0.0~beta.3/000077500000000000000000000000001523060067200136545ustar00rootroot00000000000000upki-1.0.0~beta.3/.github/000077500000000000000000000000001523060067200152145ustar00rootroot00000000000000upki-1.0.0~beta.3/.github/cargo-c-setup.yml000066400000000000000000000011111523060067200204020ustar00rootroot00000000000000# Injected by dist (via `github-build-setup` in dist-workspace.toml) into the release build jobs. # # The FFI packages` build-commands run `cargo cbuild`, which requires cargo-c. Only install it on # the runners that actually build an FFI cdylib, mirrorning the cargo-c install in `build.yml`. - name: Install cargo-c (for the FFI cdylib builds) if: ${{ contains(join(matrix.targets), 'apple-darwin') || contains(join(matrix.targets), 'linux-gnu') || contains(join(matrix.targets), 'x86_64-pc-windows-msvc') }} uses: taiki-e/cache-cargo-install-action@v3 with: tool: cargo-c upki-1.0.0~beta.3/.github/dependabot.yml000066400000000000000000000006151523060067200200460ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: cargo directory: "/" schedule: interval: daily time: "07:00" open-pull-requests-limit: 10 cooldown: default-days: 7 - package-ecosystem: "github-actions" directory: ".github/workflows" schedule: interval: "daily" time: "07:00" open-pull-requests-limit: 10 cooldown: default-days: 7 upki-1.0.0~beta.3/.github/workflows/000077500000000000000000000000001523060067200172515ustar00rootroot00000000000000upki-1.0.0~beta.3/.github/workflows/bench.yml000066400000000000000000000024331523060067200210550ustar00rootroot00000000000000name: bench on: push: branches: - main pull_request: env: CARGO_TERM_COLOR: always jobs: bench: permissions: contents: read id-token: write # required for OIDC authentication with CodSpeed runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v7 with: submodules: true persist-credentials: false - name: Install stable toolchain uses: dtolnay/rust-toolchain@master with: toolchain: stable - name: Install cargo-binstall uses: cargo-bins/cargo-binstall@main - name: Install cargo-codspeed run: cargo binstall -y cargo-codspeed - name: Set up upki # ensure there is a config file, and a filled cache. run: | cargo run --release --bin upki show-config > config.toml target=$(cargo run --release --bin upki -- show-config-path) mkdir --parents $(dirname $target) mv config.toml $target RUST_LOG=debug cargo run --release --bin upki -- fetch - name: Build benchmarks run: cargo codspeed build -p revoke-test --features __bench_codspeed - name: Run benchmarks uses: CodSpeedHQ/action@v4.18.5 with: run: cargo codspeed run mode: simulation upki-1.0.0~beta.3/.github/workflows/build.yml000066400000000000000000000076111523060067200211000ustar00rootroot00000000000000name: build permissions: contents: read on: push: branches: ["main", "rel-*", "ci/*"] tags: - "**" pull_request: merge_group: schedule: - cron: "0 18 * * *" workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: build: strategy: matrix: os: - ubuntu-latest - macos-latest - windows-latest - ubuntu-24.04-arm rustc: - stable include: - os: ubuntu-latest rustc: nightly exclude: # and never use macos/windows for merge checks - os: ${{ github.event_name == 'merge_group' && 'windows-latest' }} - os: ${{ github.event_name == 'merge_group' && 'macos-latest' }} runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 with: submodules: true persist-credentials: false - name: Install ${{ matrix.rustc }} toolchain uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rustc }} - name: Install cargo-c uses: taiki-e/cache-cargo-install-action@v3 with: tool: cargo-c - name: Check all targets if: matrix.os != 'windows-latest' run: cargo check --locked --all-features --all-targets - name: Check all targets (Windows) # Skip upki-openssl on Windows because it requires OpenSSL to be installed if: matrix.os == 'windows-latest' run: cargo check --locked -p upki -p rustls-upki -p upki-cli -p upki-mirror -p revoke-test --all-features --all-targets - name: Run tests (debug) if: matrix.os != 'windows-latest' run: cargo test --locked -p upki -p rustls-upki -p upki-cli -p upki-mirror -p revoke-test - name: Run tests (debug, Windows) # Skip upki-openssl on Windows because it requires OpenSSL to be installed if: matrix.os == 'windows-latest' run: cargo test -p revoke-test -p rustls-upki -p upki - name: Without features run: cargo check --locked -p upki --no-default-features - name: CLI without features run: cargo check --locked -p upki-cli --no-default-features - name: CLI with native-tls run: cargo check --locked -p upki-cli --no-default-features --features fetch-native-tls - name: Build FFI run: cargo cbuild --locked -p upki - name: Build OpenSSL integration if: runner.os != 'Windows' run: cargo cbuild --locked -p upki-openssl - name: Run system tests (release) run: cargo test --locked --release --test system_tests -- --ignored --nocapture ffi-example: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: submodules: true persist-credentials: false - name: Install stable toolchain uses: dtolnay/rust-toolchain@master with: toolchain: stable - name: Install cargo-c uses: taiki-e/cache-cargo-install-action@v3 with: tool: cargo-c - name: Check upki/ffi-example builds run: | mkdir -p dist/ffi cargo cinstall -p upki --release --prefix=$(realpath dist/ffi) export PKG_CONFIG_PATH=$(realpath dist/ffi/lib/x86_64-linux-gnu/pkgconfig/) cd upki/ffi-example make ./upki-demo || true valgrind ./upki-demo || true msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: submodules: true persist-credentials: false - name: Install MSRV toolchain uses: dtolnay/rust-toolchain@master with: toolchain: "1.85" - name: Check MSRV run: cargo check --locked --all-features -p upki -p rustls-upki -p upki-openssl -p upki-cli upki-1.0.0~beta.3/.github/workflows/lints.yml000066400000000000000000000032441523060067200211300ustar00rootroot00000000000000name: quality lints permissions: contents: read on: push: branches: ["main", "rel-*", "ci/*"] tags: - "**" pull_request: merge_group: schedule: - cron: "0 18 * * *" workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: lints: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: submodules: true persist-credentials: false - name: Install stable toolchain uses: dtolnay/rust-toolchain@master with: toolchain: stable components: rustfmt, clippy - name: Install nightly toolchain uses: dtolnay/rust-toolchain@master with: toolchain: nightly components: rustfmt, clippy - name: clippy run: cargo +stable clippy --all-features --all-targets -- --deny warnings - name: clippy (nightly) run: cargo +nightly clippy --all-features --all-targets - name: rustfmt run: cargo +stable fmt --check - name: rustfmt (nightly) run: cargo +nightly fmt --check -- --config-path=.rustfmt.unstable.toml - name: cargo doc run: cargo +nightly doc --locked --all-features --no-deps --document-private-items env: RUSTDOCFLAGS: -Dwarnings - name: clang-format run: | clang-format -i upki/ffi-example/upki-demo.c git diff --exit-code audit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - uses: EmbarkStudios/cargo-deny-action@v2.1.1 upki-1.0.0~beta.3/.github/workflows/mirror.yml000066400000000000000000000031171523060067200213100ustar00rootroot00000000000000name: update mirror permissions: contents: read on: workflow_dispatch: push: branches: - main schedule: - cron: "0 0,6,12,18 * * *" jobs: generate: name: Generate backend files runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v7 with: persist-credentials: false - name: Install rust toolchain uses: dtolnay/rust-toolchain@stable - name: Generate backend files run: | mkdir -p tmp/revocation/ tmp/intermediates cargo run --locked --release --bin mozilla-crlite -- tmp/revocation/ production --manifest-comment="$GITHUB_REPOSITORY run $GITHUB_RUN_ID" # backwards compatible location & manifest cp tmp/revocation/* tmp/ jq '. + {filters: .files} | del(.files)' tmp/manifest.json > tmp/manifest.json.new mv tmp/manifest.json.new tmp/manifest.json cargo run --locked --release --bin intermediates -- tmp/intermediates/ --manifest-comment="$GITHUB_REPOSITORY run $GITHUB_RUN_ID" - name: Package and upload artifact uses: actions/upload-pages-artifact@v5 with: path: ./tmp/ deploy: name: Deploy runs-on: ubuntu-latest if: github.repository == 'rustls/upki' && github.ref == 'refs/heads/main' needs: generate permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5 upki-1.0.0~beta.3/.github/workflows/release.yml000066400000000000000000000306751523060067200214270ustar00rootroot00000000000000# This file was autogenerated by dist: https://axodotdev.github.io/cargo-dist # # Copyright 2022-2024, axodotdev # SPDX-License-Identifier: MIT or Apache-2.0 # # CI that: # # * checks for a Git Tag that looks like a release # * builds artifacts with dist (archives, installers, hashes) # * uploads those artifacts to temporary workflow zip # * on success, uploads the artifacts to a GitHub Release # # Note that the GitHub Release will be created with a generated # title/body based on your changelogs. name: Release permissions: "contents": "write" # This task will run whenever you push a git tag that looks like a version # like "1.0.0", "v0.1.0-prerelease.1", "my-app/0.1.0", "releases/v1.0.0", etc. # Various formats will be parsed into a VERSION and an optional PACKAGE_NAME, where # PACKAGE_NAME must be the name of a Cargo package in your workspace, and VERSION # must be a Cargo-style SemVer Version (must have at least major.minor.patch). # # If PACKAGE_NAME is specified, then the announcement will be for that # package (erroring out if it doesn't have the given version or isn't dist-able). # # If PACKAGE_NAME isn't specified, then the announcement will be for all # (dist-able) packages in the workspace with that version (this mode is # intended for workspaces with only one dist-able package, or with all dist-able # packages versioned/released in lockstep). # # If you push multiple tags at once, separate instances of this workflow will # spin up, creating an independent announcement for each one. However, GitHub # will hard limit this to 3 tags per commit, as it will assume more tags is a # mistake. # # If there's a prerelease-style suffix to the version, then the release(s) # will be marked as a prerelease. on: pull_request: push: tags: - '**[0-9]+.[0-9]+.[0-9]+*' jobs: # Run 'dist plan' (or host) to determine what tasks we need to do plan: runs-on: "ubuntu-22.04" outputs: val: ${{ steps.plan.outputs.manifest }} tag: ${{ !github.event.pull_request && github.ref_name || '' }} tag-flag: ${{ !github.event.pull_request && format('--tag={0}', github.ref_name) || '' }} publishing: ${{ !github.event.pull_request }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v6 with: persist-credentials: false submodules: recursive - name: Install dist # we specify bash to get pipefail; it guards against the `curl` command # failing. otherwise `sh` won't catch that `curl` returned non-0 shell: bash run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.32.0/cargo-dist-installer.sh | sh" - name: Cache dist uses: actions/upload-artifact@v7 with: name: cargo-dist-cache path: ~/.cargo/bin/dist # sure would be cool if github gave us proper conditionals... # so here's a doubly-nested ternary-via-truthiness to try to provide the best possible # functionality based on whether this is a pull_request, and whether it's from a fork. # (PRs run on the *source* but secrets are usually on the *target* -- that's *good* # but also really annoying to build CI around when it needs secrets to work right.) - id: plan run: | dist ${{ (!github.event.pull_request && format('host --steps=create --tag={0}', github.ref_name)) || 'plan' }} --output-format=json > plan-dist-manifest.json echo "dist ran successfully" cat plan-dist-manifest.json echo "manifest=$(jq -c "." plan-dist-manifest.json)" >> "$GITHUB_OUTPUT" - name: "Upload dist-manifest.json" uses: actions/upload-artifact@v7 with: name: artifacts-plan-dist-manifest path: plan-dist-manifest.json # Build and packages all the platform-specific things build-local-artifacts: name: build-local-artifacts (${{ join(matrix.targets, ', ') }}) # Let the initial task tell us to not run (currently very blunt) needs: - plan if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null && (needs.plan.outputs.publishing == 'true' || fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }} strategy: fail-fast: false # Target platforms/runners are computed by dist in create-release. # Each member of the matrix has the following arguments: # # - runner: the github runner # - dist-args: cli flags to pass to dist # - install-dist: expression to run to install dist on the runner # # Typically there will be: # - 1 "global" task that builds universal installers # - N "local" tasks that build each platform's binaries and platform-specific installers matrix: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix }} runs-on: ${{ matrix.runner }} container: ${{ matrix.container && matrix.container.image || null }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUILD_MANIFEST_NAME: target/distrib/${{ join(matrix.targets, '-') }}-dist-manifest.json steps: - name: enable windows longpaths run: | git config --global core.longpaths true - uses: actions/checkout@v6 with: persist-credentials: false submodules: recursive - name: Install Rust non-interactively if not already installed if: ${{ matrix.container }} run: | if ! command -v cargo > /dev/null 2>&1; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y echo "$HOME/.cargo/bin" >> $GITHUB_PATH fi - name: "Install cargo-c (for the FFI cdylib builds)" uses: "taiki-e/cache-cargo-install-action@v3" if: "${{ contains(join(matrix.targets), 'apple-darwin') || contains(join(matrix.targets), 'linux-gnu') || contains(join(matrix.targets), 'x86_64-pc-windows-msvc') }}" with: "tool": "cargo-c" - name: Install dist run: ${{ matrix.install_dist.run }} # Get the dist-manifest - name: Fetch local artifacts uses: actions/download-artifact@v8 with: pattern: artifacts-* path: target/distrib/ merge-multiple: true - name: Install dependencies run: | ${{ matrix.packages_install }} - name: Build artifacts run: | # Actually do builds and make zips and whatnot dist build ${{ needs.plan.outputs.tag-flag }} --print=linkage --output-format=json ${{ matrix.dist_args }} > dist-manifest.json echo "dist ran successfully" - id: cargo-dist name: Post-build # We force bash here just because github makes it really hard to get values up # to "real" actions without writing to env-vars, and writing to env-vars has # inconsistent syntax between shell and powershell. shell: bash run: | # Parse out what we just built and upload it to scratch storage echo "paths<> "$GITHUB_OUTPUT" dist print-upload-files-from-manifest --manifest dist-manifest.json >> "$GITHUB_OUTPUT" echo "EOF" >> "$GITHUB_OUTPUT" cp dist-manifest.json "$BUILD_MANIFEST_NAME" - name: "Upload artifacts" uses: actions/upload-artifact@v7 with: name: artifacts-build-local-${{ join(matrix.targets, '_') }} path: | ${{ steps.cargo-dist.outputs.paths }} ${{ env.BUILD_MANIFEST_NAME }} # Build and package all the platform-agnostic(ish) things build-global-artifacts: needs: - plan - build-local-artifacts runs-on: "ubuntu-22.04" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json steps: - uses: actions/checkout@v6 with: persist-credentials: false submodules: recursive - name: Install cached dist uses: actions/download-artifact@v8 with: name: cargo-dist-cache path: ~/.cargo/bin/ - run: chmod +x ~/.cargo/bin/dist # Get all the local artifacts for the global tasks to use (for e.g. checksums) - name: Fetch local artifacts uses: actions/download-artifact@v8 with: pattern: artifacts-* path: target/distrib/ merge-multiple: true - id: cargo-dist shell: bash run: | dist build ${{ needs.plan.outputs.tag-flag }} --output-format=json "--artifacts=global" > dist-manifest.json echo "dist ran successfully" # Parse out what we just built and upload it to scratch storage echo "paths<> "$GITHUB_OUTPUT" jq --raw-output ".upload_files[]" dist-manifest.json >> "$GITHUB_OUTPUT" echo "EOF" >> "$GITHUB_OUTPUT" cp dist-manifest.json "$BUILD_MANIFEST_NAME" - name: "Upload artifacts" uses: actions/upload-artifact@v7 with: name: artifacts-build-global path: | ${{ steps.cargo-dist.outputs.paths }} ${{ env.BUILD_MANIFEST_NAME }} # Determines if we should publish/announce host: needs: - plan - build-local-artifacts - build-global-artifacts # Only run if we're "publishing", and only if plan, local and global didn't fail (skipped is fine) if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} runs-on: "ubuntu-22.04" outputs: val: ${{ steps.host.outputs.manifest }} steps: - uses: actions/checkout@v6 with: persist-credentials: false submodules: recursive - name: Install cached dist uses: actions/download-artifact@v8 with: name: cargo-dist-cache path: ~/.cargo/bin/ - run: chmod +x ~/.cargo/bin/dist # Fetch artifacts from scratch-storage - name: Fetch artifacts uses: actions/download-artifact@v8 with: pattern: artifacts-* path: target/distrib/ merge-multiple: true - id: host shell: bash run: | dist host ${{ needs.plan.outputs.tag-flag }} --steps=upload --steps=release --output-format=json > dist-manifest.json echo "artifacts uploaded and released successfully" cat dist-manifest.json echo "manifest=$(jq -c "." dist-manifest.json)" >> "$GITHUB_OUTPUT" - name: "Upload dist-manifest.json" uses: actions/upload-artifact@v7 with: # Overwrite the previous copy name: artifacts-dist-manifest path: dist-manifest.json # Create a GitHub Release while uploading all files to it - name: "Download GitHub Artifacts" uses: actions/download-artifact@v8 with: pattern: artifacts-* path: artifacts merge-multiple: true - name: Cleanup run: | # Remove the granular manifests rm -f artifacts/*-dist-manifest.json - name: Create GitHub Release env: PRERELEASE_FLAG: "${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease' || '' }}" ANNOUNCEMENT_TITLE: "${{ fromJson(steps.host.outputs.manifest).announcement_title }}" ANNOUNCEMENT_BODY: "${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}" RELEASE_COMMIT: "${{ github.sha }}" run: | # Write and read notes from a file to avoid quoting breaking things echo "$ANNOUNCEMENT_BODY" > $RUNNER_TEMP/notes.txt gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/* announce: needs: - plan - host # use "always() && ..." to allow us to wait for all publish jobs while # still allowing individual publish jobs to skip themselves (for prereleases). # "host" however must run to completion, no skipping allowed! if: ${{ always() && needs.host.result == 'success' }} runs-on: "ubuntu-22.04" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v6 with: persist-credentials: false submodules: recursive upki-1.0.0~beta.3/.gitignore000066400000000000000000000001541523060067200156440ustar00rootroot00000000000000target/ revoke-test/tmp/ *.pending-snap dist-packages/**/*.dylib dist-packages/**/*.so dist-packages/**/*.h upki-1.0.0~beta.3/.rustfmt.toml000066400000000000000000000001231523060067200163270ustar00rootroot00000000000000# keep in sync with .rustfmt.unstable.toml chain_width = 40 style_edition = "2024" upki-1.0.0~beta.3/.rustfmt.unstable.toml000066400000000000000000000002361523060067200201500ustar00rootroot00000000000000# keep in sync with .rustfmt.toml chain_width = 40 style_edition = "2024" # format imports group_imports = "StdExternalCrate" imports_granularity = "Module" upki-1.0.0~beta.3/Cargo.lock000066400000000000000000002442271523060067200155740ustar00rootroot00000000000000# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 4 [[package]] name = "aho-corasick" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] [[package]] name = "alloca" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" dependencies = [ "cc", ] [[package]] name = "android_system_properties" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] [[package]] name = "anes" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", "windows-sys 0.61.2", ] [[package]] name = "anyhow" version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" [[package]] name = "approx" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ "num-traits", ] [[package]] name = "ascii" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "asn1-rs" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", "num-traits", "rusticata-macros", "thiserror 2.0.18", "time", ] [[package]] name = "asn1-rs-derive" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", "synstructure", ] [[package]] name = "asn1-rs-impl" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "aws-lc-rs" version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4342d8937fc7e5dd9b1c60292261c0670c882a2cd1719cfc11b1af41731e32ad" dependencies = [ "aws-lc-sys", "untrusted 0.7.1", "zeroize", ] [[package]] name = "aws-lc-sys" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d9ceb1da931507a12f4fccea479dccd00da1943e1b4ae72d8e502d707361444" dependencies = [ "cc", "cmake", "dunce", "fs_extra", "pkg-config", ] [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bincode" version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ "serde", ] [[package]] name = "bitflags" version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] name = "bstr" version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cee35f73844aa3014bb606320a6c1f010249dbdf43342fe54b5a4f6a8ed4b79" dependencies = [ "memchr", "regex-automata", "serde_core", ] [[package]] name = "bumpalo" version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytes" version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cast" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cbindgen" version = "0.29.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ecb53484c9c167ba674026b656d8a27d7657a58e6066aa902bfb1a4aa00ae20" dependencies = [ "clap", "heck", "indexmap", "log", "proc-macro2", "quote", "serde", "serde_json", "syn 2.0.118", "tempfile", "toml 0.9.12+spec-1.1.0", ] [[package]] name = "cc" version = "1.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996" dependencies = [ "find-msvc-tools", "jobserver", "libc", "shlex", ] [[package]] name = "cesu8" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" [[package]] name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chacha20" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" dependencies = [ "cfg-if", "cpufeatures 0.3.0", "rand_core 0.10.1", ] [[package]] name = "chrono" version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327" dependencies = [ "iana-time-zone", "num-traits", "windows-link", ] [[package]] name = "chunked_transfer" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" [[package]] name = "ciborium" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ "ciborium-io", "ciborium-ll", "serde", ] [[package]] name = "ciborium-io" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] name = "ciborium-ll" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", "half", ] [[package]] name = "clap" version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" dependencies = [ "clap_builder", "clap_derive", ] [[package]] name = "clap_builder" version = "4.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim", ] [[package]] name = "clap_derive" version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" dependencies = [ "heck", "proc-macro2", "quote", "syn 3.0.3", ] [[package]] name = "clap_lex" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "clubcard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ef474a1b4f0f838c9f513e224f6b5b74ee63a55d9ec42874bfb343b0fce29c8" dependencies = [ "rand 0.8.6", "serde", ] [[package]] name = "clubcard-crlite" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "077423e546548daf83d605a1f8427fe926be6d714585a9807096a71a4b1aa984" dependencies = [ "base64", "bincode", "clubcard", "serde", "serde_json", "sha2", ] [[package]] name = "cmake" version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] [[package]] name = "codspeed" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7083f253260bcb4aaa3b4aa4c52973703dabc1a85c2f193997e2689aafa8a919" dependencies = [ "anyhow", "cc", "colored", "getrandom 0.4.3", "glob", "libc", "nix", "serde", "serde_json", "statrs", ] [[package]] name = "codspeed-criterion-compat" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f24251445188c69d50f10179d795424bd71b533b7e3f84fc03f26893b01af0" dependencies = [ "clap", "codspeed", "codspeed-criterion-compat-walltime", "colored", "regex", ] [[package]] name = "codspeed-criterion-compat-walltime" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c38205d56e2cb4fe04b708de7f9653a3f1b89edbe3a20b28f21e9e525e9e061" dependencies = [ "anes", "cast", "ciborium", "clap", "codspeed", "criterion-plot 0.5.0", "is-terminal", "itertools 0.10.5", "num-traits", "once_cell", "oorandom", "plotters", "rayon", "regex", "serde", "serde_derive", "serde_json", "tinytemplate", "walkdir", ] [[package]] name = "colorchoice" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "colored" version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "combine" version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ "bytes", "memchr", ] [[package]] name = "console" version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" dependencies = [ "encode_unicode", "libc", "windows-sys 0.61.2", ] [[package]] name = "core-foundation" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", ] [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "cpufeatures" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" dependencies = [ "libc", ] [[package]] name = "criterion" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" dependencies = [ "alloca", "anes", "cast", "ciborium", "clap", "criterion-plot 0.8.2", "itertools 0.13.0", "num-traits", "oorandom", "page_size", "plotters", "rayon", "regex", "serde", "serde_json", "tinytemplate", "walkdir", ] [[package]] name = "criterion-plot" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", "itertools 0.10.5", ] [[package]] name = "criterion-plot" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" dependencies = [ "cast", "itertools 0.13.0", ] [[package]] name = "crossbeam-deque" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" dependencies = [ "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" [[package]] name = "crunchy" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", ] [[package]] name = "csv" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", "serde_core", ] [[package]] name = "csv-core" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] [[package]] name = "data-encoding" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] name = "der-parser" version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ "asn1-rs", "displaydoc", "nom", "num-bigint", "num-traits", "rusticata-macros", ] [[package]] name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" [[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", ] [[package]] name = "directories" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", "redox_users", "windows-sys 0.61.2", ] [[package]] name = "displaydoc" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "dunce" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "either" version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "encode_unicode" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys 0.52.0", ] [[package]] name = "eyre" version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ "indenter", "once_cell", ] [[package]] name = "fastrand" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "find-msvc-tools" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foreign-types" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ "foreign-types-shared", ] [[package]] name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] [[package]] name = "fs_extra" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "futures-channel" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", ] [[package]] name = "futures-core" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-sink" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-core", "futures-task", "pin-project-lite", "slab", ] [[package]] name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", ] [[package]] name = "getrandom" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", "libc", "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", "rand_core 0.10.1", "wasm-bindgen", ] [[package]] name = "glob" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "h2" version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", "http", "indexmap", "slab", "tokio", "tokio-util", "tracing", ] [[package]] name = "half" version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", "zerocopy", ] [[package]] name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" dependencies = [ "serde", ] [[package]] name = "http" version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" dependencies = [ "bytes", "itoa", ] [[package]] name = "http-body" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", ] [[package]] name = "http-body-util" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", "http", "http-body", "pin-project-lite", ] [[package]] name = "httparse" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" dependencies = [ "atomic-waker", "bytes", "futures-channel", "futures-core", "h2", "http", "http-body", "httparse", "itoa", "pin-project-lite", "smallvec", "tokio", "want", ] [[package]] name = "hyper-rustls" version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", "hyper-util", "rustls", "tokio", "tokio-rustls", "tower-service", ] [[package]] name = "hyper-tls" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", "hyper", "hyper-util", "native-tls", "tokio", "tokio-native-tls", "tower-service", ] [[package]] name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64", "bytes", "futures-channel", "futures-util", "http", "http-body", "hyper", "ipnet", "libc", "percent-encoding", "pin-project-lite", "socket2", "tokio", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "log", "wasm-bindgen", "windows-core", ] [[package]] name = "iana-time-zone-haiku" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ "cc", ] [[package]] name = "icu_collections" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] name = "icu_locale_core" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", "tinystr", "writeable", "zerovec", ] [[package]] name = "icu_normalizer" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", "zerovec", ] [[package]] name = "icu_normalizer_data" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", "writeable", "yoke", "zerofrom", "zerotrie", "zerovec", ] [[package]] name = "idna" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", "utf8_iter", ] [[package]] name = "idna_adapter" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", ] [[package]] name = "indenter" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "insta" version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86f0f8fee8c926415c58d6ae43a08523a26faccb2323f5e6b644fe7dd4ef6b82" dependencies = [ "console", "once_cell", "regex", "serde", "similar 2.7.0", "strip-ansi-escapes", "tempfile", ] [[package]] name = "insta-cmd" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bffdf4af1db390cf0401535d7c1303cd079a074d28d8473b026fdb6559c41403" dependencies = [ "insta", "serde", "serde_json", ] [[package]] name = "ipnet" version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "is-terminal" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", "windows-sys 0.52.0", ] [[package]] name = "is_terminal_polyfill" version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itertools" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] [[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", "cfg-if", "combine", "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", "windows-sys 0.45.0", ] [[package]] name = "jni-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" dependencies = [ "jni-sys 0.4.1", ] [[package]] name = "jni-sys" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" dependencies = [ "jni-sys-macros", ] [[package]] name = "jni-sys-macros" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", "syn 2.0.118", ] [[package]] name = "jobserver" version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ "getrandom 0.4.3", "libc", ] [[package]] name = "js-sys" version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ "cfg-if", "futures-util", "wasm-bindgen", ] [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libredox" version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" dependencies = [ "libc", ] [[package]] name = "linux-raw-sys" version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "log" version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "lru-slab" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "matchers" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ "regex-automata", ] [[package]] name = "memchr" version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minimal-lexical" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "wasi", "windows-sys 0.61.2", ] [[package]] name = "native-tls" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", "openssl", "openssl-probe", "openssl-sys", "schannel", "security-framework", "security-framework-sys", "tempfile", ] [[package]] name = "nix" version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ "bitflags", "cfg-if", "cfg_aliases", "libc", ] [[package]] name = "nom" version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] name = "nu-ansi-term" version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ "windows-sys 0.61.2", ] [[package]] name = "num-bigint" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", ] [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-integer" version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ "num-traits", ] [[package]] name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "oid-registry" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" dependencies = [ "asn1-rs", ] [[package]] name = "once_cell" version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "oorandom" version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" version = "0.10.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" dependencies = [ "bitflags", "cfg-if", "foreign-types", "libc", "openssl-macros", "openssl-sys", ] [[package]] name = "openssl-macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "openssl-probe" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" version = "0.9.117" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695" dependencies = [ "cc", "libc", "pkg-config", "vcpkg", ] [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "page_size" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" dependencies = [ "libc", "winapi", ] [[package]] name = "percent-encoding" version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project-lite" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "plotters" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "num-traits", "plotters-backend", "plotters-svg", "wasm-bindgen", "web-sys", ] [[package]] name = "plotters-backend" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" [[package]] name = "plotters-svg" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" dependencies = [ "plotters-backend", ] [[package]] name = "potential_utf" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] [[package]] name = "powerfmt" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "proc-macro2" version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quinn" version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" dependencies = [ "bytes", "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", "rustls", "socket2", "thiserror 2.0.18", "tokio", "tracing", "web-time", ] [[package]] name = "quinn-proto" version = "0.11.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560" dependencies = [ "aws-lc-rs", "bytes", "getrandom 0.4.3", "lru-slab", "rand 0.10.2", "rand_pcg", "ring", "rustc-hash", "rustls", "rustls-pki-types", "slab", "thiserror 2.0.18", "tinyvec", "tracing", "web-time", ] [[package]] name = "quinn-udp" version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2", "tracing", "windows-sys 0.52.0", ] [[package]] name = "quote" version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha", "rand_core 0.6.4", ] [[package]] name = "rand" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", "getrandom 0.4.3", "rand_core 0.10.1", ] [[package]] name = "rand_chacha" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core 0.6.4", ] [[package]] name = "rand_core" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom 0.2.17", ] [[package]] name = "rand_core" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_pcg" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" dependencies = [ "rand_core 0.10.1", ] [[package]] name = "rayon" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", ] [[package]] name = "rayon-core" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] [[package]] name = "redox_users" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", "thiserror 2.0.18", ] [[package]] name = "regex" version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "reqwest" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b11be62ac29861f5e3205a0941578e265c93fa566fd1c36cfdb20a16ae3efc5" dependencies = [ "base64", "bytes", "encoding_rs", "futures-core", "h2", "http", "http-body", "http-body-util", "hyper", "hyper-rustls", "hyper-tls", "hyper-util", "js-sys", "log", "mime", "native-tls", "percent-encoding", "pin-project-lite", "quinn", "rustls", "rustls-pki-types", "rustls-platform-verifier", "serde", "serde_json", "sync_wrapper", "tokio", "tokio-native-tls", "tokio-rustls", "tower", "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", ] [[package]] name = "revoke-test" version = "0.1.0" dependencies = [ "aws-lc-rs", "base64", "codspeed-criterion-compat", "criterion", "eyre", "http", "insta-cmd", "openssl-sys", "rustls", "rustls-pki-types", "rustls-upki", "serde", "serde_json", "tokio", "tokio-rustls", "upki", "upki-openssl", "webpki-ccadb", "webpki-roots", "x509-parser", ] [[package]] name = "ring" version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", "getrandom 0.2.17", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", ] [[package]] name = "rustc-hash" version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" [[package]] name = "rusticata-macros" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ "nom", ] [[package]] name = "rustix" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] [[package]] name = "rustls" version = "0.23.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", "rustls-webpki 0.103.13", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", "security-framework", ] [[package]] name = "rustls-pki-types" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046" dependencies = [ "web-time", "zeroize", ] [[package]] name = "rustls-platform-verifier" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" dependencies = [ "core-foundation", "core-foundation-sys", "jni", "log", "once_cell", "rustls", "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki 0.103.13", "security-framework", "security-framework-sys", "webpki-root-certs", "windows-sys 0.52.0", ] [[package]] name = "rustls-platform-verifier-android" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-upki" version = "1.0.0-beta.3" dependencies = [ "rustls", "rustls-native-certs", "rustls-webpki 0.104.0-alpha.7", "upki", ] [[package]] name = "rustls-webpki" version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustls-webpki" version = "0.104.0-alpha.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bea702cca24d344fc70973022bf7eb920c224e318466eb49784272337dd24b1a" dependencies = [ "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "ryu" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ "winapi-util", ] [[package]] name = "schannel" version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] [[package]] name = "security-framework" version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags", "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", ] [[package]] name = "security-framework-sys" version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", ] [[package]] name = "serde" version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", ] [[package]] name = "serde_core" version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "serde_json" version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", "serde", "serde_core", "zmij", ] [[package]] name = "serde_spanned" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ "serde_core", ] [[package]] name = "sha2" version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures 0.2.17", "digest", ] [[package]] name = "sharded-slab" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "shlex" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "similar" version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "similar" version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6505efef05804732ed8a3f2d4f279429eb485bd69d5b0cc6b19cc02005cda16" dependencies = [ "bstr", "unicode-segmentation", ] [[package]] name = "similar-asserts" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "997e6ca38e97437973fc9f7f50a50d1274cacd874341a4960fea90067291038c" dependencies = [ "console", "similar 3.1.1", ] [[package]] name = "slab" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" [[package]] name = "socket2" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", "windows-sys 0.61.2", ] [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "statrs" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" dependencies = [ "approx", "num-traits", ] [[package]] name = "strip-ansi-escapes" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" dependencies = [ "vte", ] [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "syn" version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] name = "synstructure" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "tempfile" version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", "getrandom 0.4.3", "once_cell", "rustix", "windows-sys 0.52.0", ] [[package]] name = "thiserror" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl 2.0.18", ] [[package]] name = "thiserror-impl" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "thiserror-impl" version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "thread_local" version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", ] [[package]] name = "time" version = "0.3.49" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711a53c2d47bbd818258c498c8dbfe186a2526c631495cfe7e078567f86b8469" dependencies = [ "deranged", "num-conv", "powerfmt", "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71c652a3727a9cbb9a02f707f530b618ce00d0ccd762009c8c23bd191df3c17d" dependencies = [ "num-conv", "time-core", ] [[package]] name = "tiny_http" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "389915df6413a2e74fb181895f933386023c71110878cd0825588928e64cdc82" dependencies = [ "ascii", "chunked_transfer", "httpdate", "log", ] [[package]] name = "tinystr" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", ] [[package]] name = "tinytemplate" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" dependencies = [ "serde", "serde_json", ] [[package]] name = "tinyvec" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] [[package]] name = "tinyvec_macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", "mio", "pin-project-lite", "socket2", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "tokio-native-tls" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" dependencies = [ "native-tls", "tokio", ] [[package]] name = "tokio-rustls" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", ] [[package]] name = "tokio-util" version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", ] [[package]] name = "toml" version = "0.9.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ "indexmap", "serde_core", "serde_spanned", "toml_datetime 0.7.5+spec-1.1.0", "toml_parser", "toml_writer", "winnow 0.7.15", ] [[package]] name = "toml" version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", "serde_spanned", "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", "winnow 1.0.3", ] [[package]] name = "toml_datetime" version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] [[package]] name = "toml_datetime" version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_parser" version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow 1.0.3", ] [[package]] name = "toml_writer" version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tower" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", "pin-project-lite", "sync_wrapper", "tokio", "tower-layer", "tower-service", ] [[package]] name = "tower-http" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "bitflags", "bytes", "futures-util", "http", "http-body", "pin-project-lite", "tower", "tower-layer", "tower-service", "url", ] [[package]] name = "tower-layer" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "tracing-core" version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] [[package]] name = "tracing-subscriber" version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "regex-automata", "sharded-slab", "thread_local", "tracing", "tracing-core", ] [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unicode-ident" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" [[package]] name = "untrusted" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "untrusted" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "upki" version = "1.0.0-beta.3" dependencies = [ "base64", "cbindgen", "chrono", "clubcard", "clubcard-crlite", "directories", "hex", "reqwest", "rustls-pki-types", "rustls-webpki 0.104.0-alpha.7", "serde", "serde_json", "similar-asserts", "tempfile", "toml 1.1.2+spec-1.1.0", "tracing", ] [[package]] name = "upki-cli" version = "1.0.0-beta.3" dependencies = [ "clap", "eyre", "insta", "insta-cmd", "rand 0.10.2", "regex", "rustls-pki-types", "tempfile", "tiny_http", "tokio", "toml 1.1.2+spec-1.1.0", "tracing", "tracing-subscriber", "upki", ] [[package]] name = "upki-mirror" version = "0.1.0" dependencies = [ "aws-lc-rs", "clap", "csv", "eyre", "hex", "reqwest", "rustls-pki-types", "serde", "serde_json", "tokio", "upki", ] [[package]] name = "upki-openssl" version = "1.0.0-beta.3" dependencies = [ "cbindgen", "openssl-sys", "rustls-pki-types", "similar-asserts", "upki", ] [[package]] name = "url" version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", ] [[package]] name = "utf8_iter" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vte" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" dependencies = [ "memchr", ] [[package]] name = "walkdir" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", ] [[package]] name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ "try-lock", ] [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasm-bindgen" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] name = "wasm-bindgen-macro" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", "quote", "syn 2.0.118", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] name = "web-time" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] name = "webpki-ccadb" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "858e93a80904fcec06e46036a6b85d4a30f33f7efb865d5e77ad71948699b720" dependencies = [ "chrono", "csv", "hex", "num-bigint", "reqwest", "rustls-pki-types", "rustls-webpki 0.103.13", "serde", "x509-parser", "yasna", ] [[package]] name = "webpki-root-certs" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" dependencies = [ "rustls-pki-types", ] [[package]] name = "webpki-roots" version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" dependencies = [ "rustls-pki-types", ] [[package]] name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", "windows-link", "windows-result", "windows-strings", ] [[package]] name = "windows-implement" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "windows-interface" version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ "windows-link", ] [[package]] name = "windows-sys" version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ "windows-targets 0.42.2", ] [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets 0.52.6", ] [[package]] name = "windows-sys" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ "windows-link", ] [[package]] name = "windows-targets" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm 0.42.2", "windows_aarch64_msvc 0.42.2", "windows_i686_gnu 0.42.2", "windows_i686_msvc 0.42.2", "windows_x86_64_gnu 0.42.2", "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" [[package]] name = "winnow" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" [[package]] name = "writeable" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" [[package]] name = "x509-parser" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" dependencies = [ "asn1-rs", "data-encoding", "der-parser", "lazy_static", "nom", "oid-registry", "rusticata-macros", "thiserror 2.0.18", "time", ] [[package]] name = "yasna" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" [[package]] name = "yoke" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", "zerofrom", ] [[package]] name = "yoke-derive" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", "synstructure", ] [[package]] name = "zerocopy" version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75726053136156d419e285b9b7eddaaea9e3fea6ce32eed44a89901f0bd98de1" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4714fd92cf900833d49538023a9b3915155210801d1c1169eba513b2addefd71" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "zerofrom" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", "synstructure", ] [[package]] name = "zeroize" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerotrie" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", "zerofrom", ] [[package]] name = "zerovec" version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", "zerovec-derive", ] [[package]] name = "zerovec-derive" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", "syn 2.0.118", ] [[package]] name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" upki-1.0.0~beta.3/Cargo.toml000066400000000000000000000037571523060067200156200ustar00rootroot00000000000000[workspace] members = ["upki", "upki-cli", "upki-mirror", "upki-openssl", "revoke-test", "rustls-upki", ] resolver = "3" [workspace.package] license = "Apache-2.0 OR MIT" rust-version = "1.85" edition = "2024" repository = "https://github.com/rustls/upki" [workspace.dependencies] aws-lc-rs = "1.15.2" base64 = "0.22.1" chrono = { version = "0.4.42", features = ["alloc"], default-features = false } clap = { version = "4.5", features = ["derive"] } clubcard = { version = "0.3.3", features = ["builder"] } clubcard-crlite = { version = "0.6", default-features = false, features = ["bincode"] } criterion = "0.8" csv = "1.4" directories = "6" eyre = "0.6" hex = { version = "0.4", features = ["serde"] } http = "1" insta = { version = "1.44.3", features = ["filters"] } insta-cmd = "0.7" openssl-sys = "0.9" reqwest = { version = "0.13", default-features = false, features = ["charset", "h2", "http2", "json"] } rand = "0.10" regex = "1.12" rustls = { version = "0.23", default-features = false } rustls-pki-types = "1.13" rustls-upki = { path = "rustls-upki" } rustls-webpki = "0.104.0-alpha.7" serde = "1" serde_json = "1" similar-asserts = "2" tempfile = "3.23.0" tiny_http = "0.12.0" tokio = { version = "1.47", features = ["io-util", "macros", "net", "rt"] } tokio-rustls = "0.26" toml = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", default-features = false, features = ["ansi", "env-filter", "fmt"] } x509-parser = "0.18" cbindgen = "0.29" webpki-ccadb = "0.2.1" webpki-roots = "1" [workspace.lints.clippy] alloc_instead_of_core = "warn" cloned_instead_of_copied = "warn" manual_let_else = "warn" or_fun_call = "warn" std_instead_of_core = "warn" upper_case_acronyms = "warn" use_self = "warn" new_without_default = "allow" [workspace.lints.rust] elided_lifetimes_in_paths = "warn" trivial_numeric_casts = "warn" unnameable_types = "warn" unreachable_pub = "warn" unused_extern_crates = "warn" unused_import_braces = "warn" unused_qualifications = "warn" [profile.dist] inherits = "release" lto = "thin" upki-1.0.0~beta.3/LICENSE-APACHE000066400000000000000000000251371523060067200156100ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. upki-1.0.0~beta.3/LICENSE-MIT000066400000000000000000000020451523060067200153110ustar00rootroot00000000000000Copyright (c) 2026 upki contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. upki-1.0.0~beta.3/PACKAGING.md000066400000000000000000000034221523060067200154630ustar00rootroot00000000000000# Packaging `upki` When distributed in a package, these are the main goals: ## Provide a system-wide configuration file `upki` looks for this at `/etc/upki/config.toml` (after looking at typical per-user XDG locations.) An example looks like: ``` cache-dir = "/var/cache/upki" [revocation] fetch-url = "https://example.com/" ``` `cache-dir` points `upki` at where to find its data files. These should be durable, but losing them only means more network traffic on the next `upki fetch` run. `[revocation].fetch-url` is a HTTPS webserver where the data files should be made available. Notes on this: - `upki` does not communicate with any server other than the configured one. - You may wish to run your own mirror for your package or distribution. - Your users may wish to run a site- or network-local mirror of their own. - `upki` uses the installed CA certificates to establish the connection, so your package should have these as a dependency. ## Run `upki fetch` regularly Currently the data is updated every twelve hours. We would suggest running `upki fetch` every two hours or so; the exact timing is a trade-off between efficiency and latency. Ideally it should also be run shortly after network-up events. You may also consider running it during package installation. Running `upki fetch` when there is nothing to do downloads a ~1.5KB JSON file. This is usually very fast. Running `upki fetch` when the cache is empty downloads up to ~10MB of data. # Packaging checklist - The executable `upki`, built in release mode. - A system-wide configuration file at `/etc/upki/config.toml` which points at a `cache-dir` that may be read by any user needing to use `upki`. - Arrangements to regularly run `upki fetch` as a low-privilege user who can write to the configured `cache-dir`. upki-1.0.0~beta.3/README.md000066400000000000000000000065771523060067200151520ustar00rootroot00000000000000

**upki** implements platform-independent browser-grade certificate infrastructure. The first goal of this project is to provide reliable, privacy-preserving and efficient certificate revocation building on foundational work by Mozilla. Later goals include intermediate preloading, certificate transparency enforcement, replicating common root distrust processes, and supporting deployment of Merkle Tree Certificates. ## Revocation This is for checking revocation status for certificates issued by publicly-trusted authorities. It uses [crlite-clubcard](https://eprint.iacr.org/2025/610). This requires a data set that updates several times per day. `upki` therefore includes a synchronization component, which fetches updated data. You can run `upki fetch` to do this at any time, but ideally it is run system-wide as [arranged by packagers](PACKAGING.md). There are a number of interfaces available: ### Command-line interface This is useful for monitoring, testing and alerting purposes. ```shell $ curl -w '%{certs}' https://google.com | upki revocation check (...) NotRevoked ``` ### C-FFI interface This is a simple C interface to checking revocation status. The simplest use is this sequence of calls: 1. `upki_config_new(NULL, ..)` - finding and loading upki's configuration from a file. The first parameter may be used to specify where the configuration file should be found. 2. `upki_check_revocation(config, certs, certs_count)` - checking revocation status. `certs` is a sequence of certificates represented by `upki_certificate_der` structs, and is `certs_count` elements long. This returns `UPKI_REVOCATION_REVOKED` if the certificate is revoked, `UPKI_REVOCATION_NOT_REVOKED` if it is OK, or another error. 3. `upki_config_free(config)`. See [the header](https://github.com/rustls/upki/blob/main/upki/upki.h) for further documentation, or [a minimal example](https://github.com/rustls/upki/blob/main/upki/ffi-example/). ### OpenSSL integration The `upki-openssl` library provides `upki_openssl_verify_callback()` which is an OpenSSL verification callback (it matches the [`SSL_verify_cb`][ssl-verify] type) that performs revocation checking. You can pass this to [`SSL_CTX_set_verify()`][ssl-verify] or [`SSL_set_verify()`][ssl-verify]. See [the header](https://github.com/rustls/upki/blob/main/upki-openssl/upki-openssl.h) for further documentation. [ssl-verify]: https://docs.openssl.org/3.3/man3/SSL_CTX_set_verify/ ### [Rustls](https://crates.io/crates/rustls/) integration The [`rustls-upki`](https://crates.io/crates/rustls-upki) crate provides a rustls server certificate verifier that checks the server certificate's revocation status. See the [documentation](http://docs.rs/rustls-upki) or [example code](https://github.com/rustls/upki/blob/main/rustls-upki/examples/simpleclient.rs): ```shell ~/src/upki/rustls-upki$ cargo -q run --example simpleclient revoked.r6.roots.globalsign.com Error: Custom { kind: InvalidData, error: InvalidCertificate(Revoked) } ``` # Packaging See [PACKAGING.md](PACKAGING.md). # License upki is distributed under the following two licenses: - Apache License version 2.0. - MIT license. These are included as LICENSE-APACHE and LICENSE-MIT respectively. You may use this software under the terms of any of these licenses, at your option. upki-1.0.0~beta.3/admin/000077500000000000000000000000001523060067200147445ustar00rootroot00000000000000upki-1.0.0~beta.3/admin/upki.png000066400000000000000000002204411523060067200164250ustar00rootroot00000000000000‰PNG  IHDR‹ÆÚ»sBIT|dˆ pHYs‡‡åñetEXtSoftwarewww.inkscape.org›î< IDATxœìÝy|\w}ïÿÏ÷{fF‹7y“w[²-;–÷ØÁqV‡m)4·¦ìÉe1i ,å–¥í­®K Ë…&¨ÛRJB’Æ-„'q¼`;Þdy_åUò.[ÛÌ9ßߟ߹’e-3£åhy=ñ–äYÎמŒÄùœÏçkœsÎ9€6Ù¨@ïGa@‡(,è…E¢° CtˆÂ"€QXÐ! ‹:Da@‡(,è…E¢° CtˆÂ"€QXÐ! ‹:Da@‡(,èP,ê LùùŸùÌsÏMšäyΉ=šéýùÌg®\ù‡xûÛ}´ëÐ…E@ÄŒ ‚æßqΘôî«åE@÷£°ˆ”–¯-ÓqÁÐZcÒ¹ kPXD$K$œñýdòÚŽÅôc-…Eè)3Æ˜ì ‹ÎQX€žBa™º:çb±l „éïÄè< ‹€HcŒµÙt,Š´Ü›Ð}(,"‘—§éûƈd^XÔ’"…Eè)‘0&O$œilÌnEʊГ(,"ç\6%Bc²» ËnEc(,@O¢°ˆHm­f<žÍ‹"ÎCaz …E@$Œ‰Çsrœ1&•J¯°èœ1Í¿ê®c\Â" RÆd²ÇbÓíŒÑ{v×qa`=úsŸûéO‡ I¥ƒÀó.\xôÑw¼ãâŨ è (,"eL¶{,ŠPXDWK¥¬Ç—/7&7ט/~qøðÏþ…ví1æ•WDD‚à•W.^¬­5fãFç¾ùÍ·¾µ¡!Ú£z…E`3æï\½ÚóFŽœ1cèÐE‹|?DÞòkEŒ©¨8wî‘GÞüæÿú¯¨ý1Ùí±(‹èzΉÜv›~f­°çÎÕ¯5ùØÇ òóEêëGŒøÂ^xaãFí»}õÕ òòòóÿùŸ++[¶,•Šn@×£° Ƭ\¹zu"1|x29dÈÞ`ŒsÖÞ}÷ˆ%%C‡þás"……:Z2,ñlÚ¤÷¦°ˆîgLk…Eç®ÝSñú?Ï® \/¼ÐbøðiÓ¾ùfý^Û¯0}e&úÕí·ëwŠŠ´ øOÿÔÇ ô4õè>#Füõ_ÿêW_øÂðáÆmÙ¢ý7?øöxÝ¿s"ÆŒ%Òtݘ Ðæ  ºråš5úç@w¨« ? ;›§1úºl;­¥c]£  ¤¤  ìH2D¿ÓIcD^~¹§Žˆ…E ³Öc|_‡ùåå…{Ò¥—ÖÆbõõ÷ÜÍÑ£ÿ‹ÅrrÂÂ`Sa;ý4†Q¨è*ÆAÜv›¬ÃÂuû©¯¿0­õ¼µk£^Ð(,ý˜vsýêWZ,Ô‚aØ‘˜^ß}wÔë@×¼P“Y6u8eŒÈ-·èÎZ0ì(›:}ß÷ãqç^{-êU݉Â"ÐUW?òț޴}»sÆX{òd¦…-ÛÜ|saáÊ•kÖ õzÐ?iGmX«›tSÄZF¡¢³ŒùÄ'^x!'ÇcŒY¸P¿—Y­µ»v]ºTVvï½çÏG± §PXú1-¾hF䥗4ƒ ³ŒÅR©T*™¼ãŽ¨×ƒþL „™t|?ŠcE2|øÐ¡ÆÜt“1ƈÄãÍ Ýé¦sŒ@ÀÀ@aœ ‚—^ÒÏ2ÿð<Ó½ñµ­ à ´Í˜Õ«W¯ö<ýjÞ<ÍÌ:eEŽ9sæK_ºûî3gzòØ€Þ†Â"9uêóŸ¿ùæ#G´7çèQ‘Ö÷Tlû#œ›3gÒ¤•+ׯ1"ÚÕ ¯ÑQ¼Îeºç£P‘ŽÂÂŠŠ±cgÏÖ¯òòÚÞ»³õ4FD„¨€…EÍèiô×^ӵ̨i­žho;q.•ò¼dò曣^úŽ+W4³ÛcÑÚ°ƒh‹µÖŠÜx£1úºÉ4õ3F "4cŒï‹¼öš~žy¡Ç9cb±¥K£8vô=Æ$yyé®[KöXD:´ø|ã™î©¨Vø¾s99±Ø¶mQ¯è (,øNŸ.+»ýöÝ»­µÖ˜³g­Õ‘“é¦îb¶`Á„ +WnÙ’ŸõzÐWt4j·­öXD[Š‹W®\³&7W Ñ3gêwÃ=;N眳vÏžêêÏ~öÖ[kjzîÈ€Þ‹Â"€ÿGK5Îi÷áºuÚë£EœtR?‹Åœ‹Å/Žz=è2-`‡©C.éXDëêê¬ÅæÏÑÝ85Ûï¼¶¶)uoÅ-[zþÈ€Þ‹Â"€VëÖ…ŸešÆ#ÂHTd"ýN²¦Ô®²ž;Fô%Z€^° yAÚÚö³yá:óòȺu D}|m¡° #Öþþ÷:¢R÷RÌ$u€åâÅQ¯½ÍõiíDl?±–ŽEh'u¸³kiiӈ掲i¤³1UUGŽüÕ_-ZtêTÔëÁ@‘Lúþ‡>¤¯\íT4fôh½`âoþfâį|eãÆÏ|fôè¯}mïÞ!C¢>Z€…Ei k­Ý¼9üªeÇOGÆ8gÌ¢EÑ®½–yt'Ï0Ãºí¥ŽåÅ@7yòW¾²ysq±–š ɼ–¨è)&|ùË6Üz«Žà]´èú½‹›ç’%‰„s.<úè„ _ýêÆ·ÝõñPXì#ÌÿoÒ¤G]¿>//êãÁÀtâÄg>³hÑÙ³zÿðáöOˆ^ŸÎyžÈ¤IcÇ~ýëëÖF½ô™ÖmJF¡B$•ŠÅ¬=;Ý‚tËt.DÊË£^ú·Â•+׬Ž~‹úø00Y«‹ÙžÈO$ŒÉÍ]¸0êu ZÆä欣)³-,2 Ö:çû³gëˆÜö_7×Ô ‚D"//Ûµ+êu K$ <ø½ï5Æk‡ Éþ}Ïk·m‹z=`ࢰØKMžüè£[·.^ìy‰„ç••‰xžÈ 78g­µÓ¦Mžüõ¯oÞ|÷ÝQ'&íXܲE¤£ƒM'B›ïm¦ÿKaʘ¦Q¹™%‹™1+W®Y‹éÝéÓõ»úz‚Ö³ùû“1ÎY{ìØáßúÔ‚/F±ôãÇík6Ìš¥åìÛoÏvb[±u뉟ûÜM7­[õºÀÀEa±—()ùÖ·:´¨èþaÛ¶}LO@­X¡…™ÜÜëG·Ykí;Þ1uêãoÜ8fLÔÇ¥²òÓŸž?ÿÄ çNŸnY8lJ½…ȵ'ôµ[húôiÓ¾úÕ-[† ‹jˆÞ¥K"™ŽÔmžt,\“'œ—7c†v€ÅãétLkFÓ9kŠî2gÎÊ•‰„çðƒ"áEm]ˆÓÞ8Ôºº °Ö˜ï}/º( ‹›2åßxýõE‹’ÉÆÆšš¿ý[=…4w®Hû`zr*÷}ßO$xÀ˜•+W®´ü{¢Gé ý×_Ï|$ª1Ö:—JÅb±˜¾Þ1°µßùÚV¦RÑ-zƒ Ï›5+Û´^ ÃTtššAƒ®^}Ç;´œ8fLÛà„ÙúëÔϳvõêpã¨×@!*bƈX»p¡^Ã>hÐõWªwtÊ‘¢¢I“ Þö¶7½)êõ``q.‚`ëV‘–ŸôNìc­È‚Ñ®QËv¯N-OÓ±8Pé 7Ü Ÿ·Þ¦¯ÖÒ÷1¦¾~ß¾(×€þgâį}mÇŽ‰sΘ{ïÍöýMíàÁÊÊ+Wn¼ñ׿ŽvUM(,F¬¶6/ïâÅgž±ÖÚ‹i*¸drÊó‚Àóþà&MzôÑíÛ'Lˆz]*+ÿò/-:tHÄóŒ¹p¡©pØÞ ý–yà ÅÅßÿþ‘#¹¹Q¯QÑáÏ™§ç±ÇâÀ3aÂÊ•[¶äçëHÓ)SÚ~i«ãßc¨¬üô§—.­«‹n%èOôõhŒµÖ¦R÷߯Ÿ‡ßͬ#[$• ‚D˜ÿwçÊÊDÂïDÂbĪªzhÙ²+WœócV¯ñ¼ž_}Ý9g­ïÁöíÆ8Î5ßˬ㎠kƒàܹóçgÏŽn%ˆ‚µ¹¹ƒ··çXGžDbØ0Ï›1CDÇ_ANû©@0]kòäo|cÛ¶{îÑ×WqqÇû­O¤P/¼pâÄ'>±hѱcQ¯  % ‹½Ä±cŸøÄ¼yååÚe±qãõ˜–#R[ÿÐûO˜0eJeå¶m÷Þõº008çyÎmÛ&ÒZçEkimó´Öó¬e¯ÅçÒ%‘ÎB ËÛ8|?•r®½¨í§~¶{wÏ9ú£I“}´¢bÄçD‚àío×=°ë8[»Ðæôé1c† 3æ§?vUm£°ØËX;bİaÿõ_zªýüùð öô;2ÂUžgÌ=÷L›öÍoVTLžõºÐ¿=:aÂÁƒûöéëîÊ•Ž;5Zë¸=Û˜•+׬‰Å¢\ ¢Þžœ×wø` 2Æó¬1#› pŒ©¯?~üòåË—‰zè<Ϲúúw¿[;õãqݸ½¼öç 1Öú¾µ¾/òä“›7¯X±hQ2ÅZÒAa±—9|øŠŠêë­µ6žzÊk=Ï÷EŒ O@¥—a/˜s¾ÿîw/^¼jÕ–-z èjÎ-_¾|¹ïãûAPQ‘~ÇFS“HL™2lØÐ¡%%Q¯=MGè6ÏÖ?®…þoÚ´¯~uË–aô¬ô/û÷?üð[ßÚÐ`­ˆçíÝ+ÒQ‘sÚq¦iŒsA0xpQÑcmÛ6eJt+AOº¾ÐÜ4Ò9ìHl=S)Z:"|úôpÐwk?íZ»ÐF{bkj*+~øÆOŠz蛦Mûæ7·m+)±6ó¼Å‹3}Ú<‰ÅŒ)/?räSŸš7ïõ×£^@¦(,ö‡êS 9¢¥—µkEtd`æéœµµµgΈ¼å-Q¬1ÆìÜÙrß¼ëS_—-Ó9Ï‹ÅfÏŽzè)ט› Íu¢Y‹Ñ±ØßMúøãå座¢sC‡Š„…åëG*ë»Êµi­Ž@u.|}é ÷¨Ö±Íögab¦³ú:­¯O&¯^mhX½:êud‹ÂbsôèùógϾø¢ˆˆs§O‡=éwø„éœÈ’%Ó¦}ó›»w—”D³ôWõõyyõõ»v髲©Ã¶µÂPki­ˆHiiÔë@Ïh«ÀÜQŠXË(ÔþÏc|?û¨Úë¸o_Ôë@ßîQ­{ÀŽ‘þÞÁ"áT½¨KÄ÷ö³ãÇ¿ð…7¼áܹèVÐ9ûçÊÊ–-K¥|ßÚx|õjc¬I¥Â‘oÆè°¸Ž2¼}Xò'“&=úèúõyyQ¯ýÉ+V,ZT[kŒ1žwø°ˆçiQËl½ÃH{A†/.þö·+*ÆŽz=èÖæçªï[™ìÅÙ”ž×tâýUˆÄbÓ¦¥_xÖŸsa&“©”ÈQ¯}KQÑcíÞ=nœþlºãcÂNÅt³©°-räÈáÃ/þô§:q /£°ØG;öñÏœyò¤~õÊ+"íe×zêøƒÇbñxAÁ½÷öô:пsÎíÚ¥¯³ ÈôĬsAJѹØÿ…>a7uºì°ØŸ³råÊ•ÖêÞtEEºSp¸cp{Ù´g«sgÏVV~úÓ¥¥çÏG½ô áëÎk“Éw¾SÄóÂß–ÂÞmåµ{)ê…_¾omNÎêÕΕ•••…Œ}…Å>îС—_ÞµkÍk1æøñ°1ýÔþ0=-¶paQÑ·¿]^>kVÔëBÿ ƒP+*ÂÏ3MÏñ¼nˆâØÑsšúTõ³ôÓZöÌ뿦N>|ùò‰õ…Ü\‘L÷¶6c*2S\\Ppß}·Ý&"bÌøñº›§î ÜQ6ßA8œ ‚ßþöÚ Áú> ‹}œsÏ>»|¹ïA*•“óÜsÆ8gLØÅÓ´·OÛyíž@Öú¾µð“&­^}ü8£QÑ9‡êS \¼¨…ì“'ÓÝc1L}]Ž3eÊw¾³sçðáQ¯]ïÂÍl ÏaOlÏ5z‚ï‹87mZ˽„ÓMÏ F "]ÅÅ=väHAs"ÖÞ}·H¦…ìæ#P««‹Š.^œ?ÿ¥—¢Y @÷¡°ØO:ôÉOŸ9ãœçyÞš5ÙîYf­ç“ŸŸHTW_¹òÖ·F½.ôÚ‹VQ!âyz6LcÒIkEb±™3£^ºGgöXŒÅ(,öWžgŒ1ÅÅ"ÚÖv¶IiŒs¾_W—›[PpèPt+@_bŒ1W¯þñëë'ÑÜmgØ1­iL,æy¾ŸJ#òãÿîweeŒký…Å~æÐ¡êê3Ö­‰Å*+E2½â>Ü OĘY³fÌøö·÷ïg4*:ÇZÏK$öì¹vP\ú{ééWûŸ°_1ӽÑd2ÊãGwX¼xÕª-[âqkE&NÑžç¶óÚÝ[ñÔ©'V¬7®¶6êõ w+.~챊Š ´”=c†1ÖêïAeÓïKÖj÷´1›6;öðÃsæ<õºº …Å~ƹ²2‘ ˆÇóýçŸ×­M#âœÓ“_é¥sÎÁ½÷ΟÿÄgÎ õúÐ78ðàƒÓ¦UUéIÿ³g›DMg/Pí™8q„U«NÊÏz=èÖæç¦¢L:X›2èXì.^L¥òò¦LÑŸ_Ö^?B¹ýtÎZF ¢#&¬ZµeK~¾µñ¸1÷Þ+’ÝHf}»|9•J&/^|ñÅ(ÖГ(,öS»wìc7Üpîœçï¿ürS‡˜1"zb¾£ Oà“›[[[Ssñ"£QÑYÆ8·wo¦…-Œ;7xpCCMMIIÔ«@×J§ÀÜúëÂZ ‹ýŽN.*ʶà¬{+2íËËK&óóï½W/\ÉËK÷B—¦Ôß«b1cœûùÏ++?ýé¥Këê¢^@w£°ØÏíÛ÷ðÃ¥¥›6#"rôh&{˜é‰³¦™:uúôï~w÷î9s¢^ú¦XÌób±={®ßk±eZv+5OíO›1#êu k5/¦ó~ÔÔ'Ä(ÔþH‹ƒEE™^€`­ˆµÉä°a99sæ;õ:Ð;÷»{öéL†yóô»á ™¤1ÆìÝ»ÿǼk IDAT>VZºkWÏ=@ô(,ösz Ì9ßʼn_üBK6õõzŠ>ÒϦ=ͬ}ãKJ¾õ­†vuèköí{ðÁ3NžÔ×RMvŠèkëÚl}䜎è2eΜի+*‰(ׂ®EÒɦÑÎ:&·gÝeÒ¤G=~h2½´6•ª¬Ü¼yÅ JÎh)Ü»S;Zÿè2¹ÐªyjA±¾ÞZ牟ý,êuô4 ‹ÄÁƒ+VLzé’ç㜎Fm½ ÓVê‰|câq‘XÌ÷uO" ]a¡[»÷ïׯÃÞ³ÖÓÚ¦ c<ϘTêìYÏ+.Žjè:çÎif³·™ˆç1 µÿÈËËɹx±¨HÄZk›ÓK眳–¨hÝ… Éä!wÜ!"b̰a"ús%ótÎÚ—^Ú¿ÿᇧO¿|¹çW- ‹ÌÞ½ýèŒÛ·ëW‡£'Ê2McdŒç…®èûœ³67wòd‘ì ͱXsäH‡Ž^lúôï~÷àÁÂBk­õýÅ‹uÇÞô ÖaŠˆ8wâÄ¡CÿøÌ™[¶D½.€¨PX rsƒ •úõ¯õ[]]óm™¤ï[ëû·ÝV\üØcÛ¶D½.ô {öŒ¹iSe¥1ΉÔ×k:—njq»¸Ø˜Õ«W¯ö¼¨×ƒÎÒ÷vÛZ:çûεÌTJ»Ô¢>zt kE‚`òäÌ Ìú>²wï¹s3gž>õ:Ð;³r¥v¿A2ùŽQ»æµs¾ã4Æ9ß÷}kãñ_ü¢©ó``¢°8@•—?ôPié•+"¾/òòË"×úºö#<wmj1‹ÅòóóòÞô&cDôÏ€¶9·|ùòå¾ï\,&rèˆçéë.“ŒÇ‹‹/_^¼xâĨ׃Îi»¾Ïè¿{ËŒú¸Ñ5Â={}?‚`ذ¶ ÉmŒ1æèQçÊÊDx]@͘1f̾}‹‹ˆSXhL¸Wo¦‹yÞºu<øà´iUUQ¯ j¸}ûz¨¤d÷nc¬9p éD¾^åß”íwŒX+‹SRò/ÿräÈüùQ¯ }ƒv½8 ¯:}=µÌöNø&Éd0µïk«€lL{i {,öA““JM™ÒV¹yêûµim,ÆT„¦M[µjË–aÃR)cŒYº4ôõ“i:çy"çÎêÔÉ“6D½.€Þ‚Â"DD¤¶öÊ•ªª5ktðàÕ«éì}×Zzžs¾¿dÉœ9ÿöoÇõºÐ» nLmí‘#Ú›L¶V¸i;µ×­¸˜NÙ¾-ÛN"} PXìëŒ1&Ÿ8±£Br[™HX›L;õ:Ð;x^ tÏ=ÖênÐÙ¾¿1¾ÿë_ÿîweeË–¥RQ¯  · °©¬üô§—.­«ÓSrkÖtTÐi+ÃðR)çêëßøÆp£(Ö„Þoóæ+- ŠZ÷Ìk-Ó·sg*•Hó«_e÷ìãÇkÞu—æ-·h’ýЉX¬¾~Äç®/§»÷™ç±Çbß§ÿŠ&¤_øÑ÷ß‚+WÊË?ô¡ÒÒóç£^¢5cÆ¿þëþý³f9'bíäÉé¾´LíVܱãàÁ+JK)X´‹úлìÙóáÏœyøðÌ™ÿöo‡í߯;[MŸžÉcèþhA 2räôéãÆ8°`ˆÈô鯿Þ=G¾/•òýC‡t/«É“µ‡íòe-=êy" îÞýàƒ³f>­ßÏ´ ´h‘æ×¿®yçš-;ëë5ŸxBó¯ÿZ³º:óu¡#áßj"ÑôïiŒîÞÚñ½µKº»Ž ÝkæÌU«öí5Ê9çŒÉËiº -áe*ÖêÈî 8z´û½Yqñ÷¿äHnn""·ßÞ4I!3AàœsµµAJóê«Ýq¬ý…E´*:têÔW_ml¼páС1côDÿ A™>ŽµÆˆ,\8sæªU§N;¶wïŠãÆ=ÛÇŒ¾+‘=:™7&‹Åè(èb±ÆÆTêŽ;œsÎÚœýnæï'ÆX›Hüö·û÷?üð¤I ]}œý#*ѪòòåËE ‚Dâå—1FG¦Ÿa¡ÀZkc±ÆÆ;ï4fõjÏ‹z}è]ÊË—//-mlìš‘†K—j†²_ùŠfGŶ ®ùÏÿ¬ù“ŸhNš”Ýã¡%ctakyíž›ž×2ãq:û.çÏ2däH=Ñ2I:û¦Y³ÆÛ½{ÌçŒI¥b±–ã–éœvœ…i­s¾_Yõ:Ó§÷ï?xð oЯ† ɾãÕ‘õë)Pd†Â"Ò²yóŠ"Éd,fL¬]ÛñÈÂÖ3|¼x<b±[o}ç;Št•–j†%Ï>«YX˜í#þ÷ïÙS]-²uëéÓ?­Šé¥öœhÀ¹™3§Oâ‰3g²ïô¤›oÖ\»Vó?þCs„l±¼¼ºúÊ‘øÉOvíùÎw6o>~\äêÕdR_uz»ÖÒ9‘Ë—ëꪫE~ñ‹;}TäÇ?~ýõ/}IäÒ¥ººªªl*´p¡æï~§ùë_kΞÝÙGî{´¬˜ý(T½T!êU = ñxAÁرºk¢Òn½`ÜzZk­ç1u ˜3çÛß®®sF$•j«PØ~†£Q›òÚ?÷^ܲåðáçžùá×­ûìgEŽ;~çÎή&ìÔýä'5Ðü_ÿK3/¯³ÏÐ[uÜáÜúhCÆaö%žg­çfZ@ö}kil,/ÿð‡ ««£^º×ܹ«VUVN›¦½ÌÙ¢1&ß»wûö÷¿̘Î÷š@QXD—p®¬L$b1ç~ÿ{kuW,íDÔwž§'úÒIÏó¼XìÆçÌY¹²¢"‘ˆz}ÈDØi÷Õ¯jî߯ùàƒšÙº=tèüùÚZ‘+ž{n×.‘ÿý¿_ziß>‘sçjkZ+ ¦×©Ø¼c±µ Œ-óüù«WOœùÉO¶lùò—E^xaÇŽÇ©­ml¼t©3‡""Çkþßÿ«þ=®X¡‹uöz [è\ÛéyZ(h™ì±ØÿûGŽäæ:g­µC‡¦[8nžAPU¥ÿÒ:âýOIÉ·¾uà@NN2i­s †{1‡ïÎM©¿a´Lc4­5ƹÚZc¾|9ì@Wé7'¦Ñ;lÝúÀEE/ÎûħNíÞmŒï‹Ìš%Ҵݵ<¯íGËɱ¶¤døð¹sõë-[ºþˆÑyƒi†vù—š}äK—êëS)‘o~sÆ£GE~þó½{«ªš:µ£¥ë„ÖŒiÿ™t‡Q‘½{OZ·Näðá³g·mY´hÊ”?ú#‘Å‹‹‹ßþvíØÊ¾î9ùÏÿ¬v2þíßj>ûl¸ŠlŸ¡§mÙòÑŽWW7{ö³ÏVTüèG™Þ÷n‘]»t´áòå]|èyy¾Ÿ“3fŒˆH*Õü'AøþïyÖ¶] öýT*NŸîÞ£DÔ+R^~âÄK/‰Ü|óôéË—‹Ìž=~ü]wuöXKJ4Ÿ~ZósŸÓüë¿ÖüÅ/:û Ý-ì ɶPZڵDŽ®g­ç¥R……aïa¦÷ÏÍÍÏ7†Âb¥?ßdzÖó‰I“ô»Ù\ aŒÈÉ“<ðÀ´i••]{”1 ݹ²²²² H¥R©œœÍ›­M¥’Iß7&R)qØQêÞ‹ºW’µ"‰Äüùᨴ¨×7° ¬v$†#9¿ñ ÍÎùËýûÏžyûÛŸ|rË‘ø‡µk¹x±®.™lo„iÓ¨Ò¶²µ¦™f¦{5¶ÌË—kk««E~õ«;¾ým‘§žÚ°á _9yòâŽ{;û·Z°@óç?× G†½|]ÛÝ ¤+<Ϙѣ3‰­Âõõ;w¾÷½“'_¼õ:еÞùÎÕ«µkÕ÷En¼Ñ-<·–ííÁ*bm,ÖÐPS“Ÿo̦MQ¯  ¿£cÝjÏž~pÔ¨šš9sž|òøñÝ»qÎZš看ÇsrFŒÈÉ™7O¿Ç Äî1dˆæCi†‰áÞ‰·~ýÑ£.ˆ<þøúõ‡‹ìÞ]UuõªHæÅ¯l‹e­ß/Ü›±åíšF¡¶õ|×÷4¶>>U¿sêÔ… ûö‰<ó̆ ó7"Ó§Þt“Èí·Ïœùþ÷‹ >hиq™®©¥°ÐŽHݱC3,?ù¤fßоeΜի««Ö§¹¹Î…»–¦GwË;s¦yg+úŠŠ††'æÌ±Ö˜X,/O¿«—søþµïž:ð¸u±Xøþöí••Ë—Ož\W×Ç :ÑCvízÿû'N‘D"ËÍmqê”æªUš=¦É^wèsæ¬^]Q‘Hˆ\½šŸ?bDyù>õq¡k”–>õTuuI‰1©T2YZšíãø¾µ"{öìÙó¾÷ßu»Ô =©yóžzêÔ©E‹ôUŽäÔ¾D‘º:ϳ6™,/ß±ã=ï™<ùÂ…(µ÷ ;?ï»Oó3ŸÑ\²¤«ŸéðáóçkkEþõ_7m:vLäùçwï>}Z$•jÙñױλvŶ ‹üÚz†ìûÓ»]^^"1dˆÈܹ“&Ý}·ÈÒ¥Ó§¿ó"¹¹ñøàÁ™oÇ.]Ò ßü¦æñã]ýLúùóŸxâÌ™Aƒô2¡;ï ‘ ð<½8(“wVk»re×®C‡&LX³† Œ¢Á(TDjðàxÜ÷+*jjb±%Kthê™3³gçæŽ·oß³Ï._®}o¸Þ°ašá(Ó°#±¸¸«ŸéÐ!-$~ç;Ú‘ø‹_ìÙs挀3Ú•²ïXlýžÙ_hÑ5ëÌ´€YW—LÖÔˆlÚtèÐO~"²cDZc¿ùȼy“'ßsÈÍ7O›¶|yS²sÂ×Û_þ¥f8J÷™g4¿ñ ÍíÛ;ûLúßO¥æÎuÎZkõ=ιt†L+kõݹ¡Á¹mÛ((D‹ŽEô á¼òòåËKK£>žÞiñbÍÔ|×»4»noÄPyùéÓ—/‹|÷»7=*òÒKœ=«…Ä®>ÛÝ‹™ŒB½ÿþ¢¢¯}íúÛu\ðk½71›ŽÅÌþŒiïØrsutêüùS¦¼ùÍ"K–L›ö§*’Ÿß{4¶å7¿Ñ G§¾ð‚&…` ™?ÿ‡?<~âDç‚ ±1ÜÓ5s:2ýèÑmÛî¿ìØ]»ºò9 ‹@¯î–÷¶·i†ˆ·ÞÚ]ϸfÍÁƒçÎéhÓ#GD6m:vìÂ…æ½$ZÀÊ\¦…´ž*,¶îþû‹‹Û*,f*›ÂbÓ}Ò™š^—£Þ"‘ˆÅòóE,˜<ùÞ{En¾yúô°Ðö#v½'4Ÿ|RóÿQ“ª@Ô´Wf}ýÈ‘·Ý&bL$™?RÓЛ[_âÄÚµ›7¯X±hQ2ÙõG €LPX"7gŽf؉ø¾÷iv}©'™Ô=ö³ŠŠÓ§Eþýß7m:zTd÷ššöîÙý…ÅlJx- ‹é¿Ÿµþ<<в°ØtëL;[ÿnºÝSXlùȱ˜1ž'RR2vì’%"·Þ:sæ{ß+RX8dHQQzG¹°#ùG?Òüîw5_~¹»ž@Ï™;÷é§«ªæÍÓ.å±c[þ¹sAàû¿kyžˆµ[·nßþþ÷SUÕ=G €LQXzL¸ËÝ}÷i~ä#šÝ׉xéR}}2)òÔS[·?.òƒlÚtì˜HuummCCÇ÷ï|ÇbǺ»c1g ”ÂâµÅÜæ¬µVdÊ”‘#ç͹å–3þìÏDŠŠFŽœ??½#Ê^E…æw¾£ùÄš—.u÷3è¼™3Ÿ~úÔ©Q£ ßwnáÂìÉób±3gvî|÷» wìèº#@WˆE}@ÿãyšo~³fØøŽwhæçw×3>|þüÕ«"ÿò/6=*òüó§N‰ÔÖ66ú~ó[¦W¸j~ÑAv tW9R¥sL­Aë÷¼þB‹ì?Ûñ©™ý=g÷¯Òö½‚À÷EŽ©®ÞºUsÛ6‘±c‡ ›>]÷h¼ï>‘ÒÒ î¸CËšÖfs­)-ÕüÖ·4¿òÍgžÑüÿÐ\»¶£Uè9ï|çêÕ"ž—Hø¾ç͘a­1ÙìÆë\8—JÕÕ\¾¼w¯ˆHaa×/:‡ŽE ÓfÏÖ|ÿû5ï¿_óúp]Å÷u¤é/¹woU•v$VVŠlØpôèùóéŒÍ´°Øw;Óí%ùŸÿ³¸8,g5¿]Ë®Àt éu¶udÝ×±ØþwÛÿNøyAÁ AcÇŠ,^ù¤fØéxþ|O0ÜpÃOzöì!‰D}½Ž>õýæ?)œóýTªãwç¬õ¼‹ËËßóžÑ£·mëÞ£@g1 ¸NX@ G—†{"Þy§f× lËÚµ‡Ÿ;'ò½ïýþ÷GŽˆ¼üòÁƒgÏŠ¤R¾ßú€¹îé'ìüEÝ{ÙB:޹ѢÍO’gò8ÙÉü9ºú¨ÒëXl©±1•ª«Ù±ãرßüFó¥—D Š‹µ£ñÞ{5ßúV‘XÌórrºöÈE–.½6}Tó¿ÐüÁ®ý:]F´^ü0oÞåËÉdI‰sM?c±æ—£Xëym¿GYkŒHÄb55©Ç}‹ÀfÎÔü“?¹6oºI³{÷©®¾r¥¡Aä‡?|ýuíDܾ½²Räøñ‹ëê2{¬îîXÌìhÒ¿_oêXüà[v,¶> µsÏÒþ£DÛ±˜neºÏxíjòò‰¡CEæÍ›4éî»E-**zÛÛDFŒ4h„ޱ«\¸ ùÓŸjþä'š/¾¨™éyÀÀ2wî3Ïœ??i’ç9çûS¦dû8¾oŒç=ºsç»Þ5bD8â½…E á¨ÒåË5ÿè4-ê©#¨¯O¥‚@äg?ÛµëÔ)‘ýhÇŽ“'EÖ¯?zôܹæˆÙðúÇ(ÔÌtuañCš:õ‘GZ¿u6£PÓ}ÞëŸ'ýÂbz·îšÂb&ÿV­¯¿îªVT4jÔ‚"7Þ8eÊþ¡ÈŒcÇ.]*âyÖ¶·'[× Š/½¤ùüóšaᱪª§ŽèîºkÍ‘ÜÜË—Ïœ9sfÁ‚ p.Ϧƒ?¬­­Ý¶í=ï)(ؾ]Îð›(@_Á(Tôñ¸æ­·j†#LÃ̾£"[[¶?~á‚î…xüxSAñò庺d²évQœJͤ8ÔóÇ—iÇb×>ûõZt®kµû{^Ûަõ4­ªý¿³ö ‹™t°¦W ‚ 9x°ªjË–¦ÌˋǙ1cܸ¥KEæÏŸ4éMoÒäÂ…=s¶òò4à ÂüÇÔüÝï4ücÍçžÓT\ü¥/]»l;¯ÿnûÝ=é5½ö=9 µõGéøyÛ¾uºÇ¥†ב©³fÇ" N™ò–·ôô(ÕPXPÙ°A3,4þò—š;vôôÝaþü'ž8s¦°PˉÅÅ""Ùt[+’Lž9³uë»Þ5vì‘#]|˜è!Ñ‹Œ¥y×]š÷Ü£yz=ßyª¬Ô=Ÿ{nçΓ'5Oœ©¨8}úòåöîÙS…ÅÞ= µ½÷™î…šÉ³~øÃS§vea1Ýçmþ§Ó{t]·1ÖŠLœ8bDi©îÝxÏ="sæL˜p×]"99ñø Aéi× G§¾ü²æo~£ŽX¥Ó½ÛâÅ«V‰Äã©ÔÈ‘/ΙcL*åûÙ”}?’É’’x|ôè;Ÿ}vùrßïú#@O °ˆ”“£yÛmšaça˜ hf³gSר»÷Ì™š‘çŸ×Ñ¥¿úÕÞ½gΈìÚuêÔ¥KÙ m뛋áûB&£/³=ªÞбº¾°˜îQ¥Û±Øõ{,öda±£ï¶u‹t ‹™Ek÷ Ëß±˜µ99:JuÉ‘ÒÒñãï¼³iïÆðÏ£T¶nÕ\³æÚ|õUÍö/YºÛ¼y?úQUÕÔ©ñ¸ï[;|¸HÓàñLA<îÜÁƒ[·¾ã/võq gQXD*(Ð ÷:¼åͰxÓMšá^fÑ ; üã;Nœyé¥}ûªªDvï>}º¦¦½{fZ`먀×ÙÇoº_w{fjfºº°ø‘Lú÷ýí²éXÌævÑÛ»gf‹Í×ÑùŽÅÌ ‹m ŠS¦Œ=w®HIIaáÍ77V2$7wäÈö¡'¤Rš¯¿®_{MsýzÍêê=, 7ßü çÏZ__[kí´imÝιTªý=­õý ¶o_¾|̘Ç»ãXD!üγfi––jNª©&Š;¦nR^Þ3Çèn‘ÏÓ ÷8 „K–h†…Ãð‰è:CA ¯ëuë>wN䗿ܽ[;wï>sF䨱pÄëuM©íÛ÷…ŽÅPw¯÷‰¶cñ#™:õ‹_¼þvÙŽB;c1]é–!£êXì]…Ŷîg­Þsܸ‚‚3DJK'L¸ã‘ٳǿë.‘aÃòòÆŒéè‘{Úša¡1Üë1ü:ü?lÉdÏú*ýoÃÚùóŸ~úôéY³Œ‰Å<¯õÅö:}_Ä9ßO$.\>|Ϟ͛W¬àuôf&h†…–Ãð|`øuaavÏóÄš>¨ÙÖ™9@oGaq@ O±k.^¬Ã\´Hsðàž;¶ôœ:uéR}½Èo»U•ÈË/k¾úêÁƒgÏŠœ?_Wר˜ÙcöÍÂbïÞc±óGÒº®ÞcqÅŠiÓ²+,†ÇÓô~šMA.úŽÅt_ý]UXlý™»¿°˜Þ߯1ÖzžÈøñÆ•”ˆÌœ9nÜ-·4V9rРI“Òy¤(44hîÜ©v@†ŽbݱC³¾¾çŽ ½Ñ‚«WŸ;7a‚çYkmö½» AàyÇ——/_>tèùó]yŒÚ^è_T¤ÙVpöìk¿6¬Gïÿùõ¯5ßúVMö`Žp’a8ù0ü:Ó 'y…[©„[…ßGoAa±_J$4KJ4ÃÂ`˜á/ jF?ü¯-µµ¾¯‡gÏjá°ºZäµ×´±¢¢ý½Û~mgºë[zšÎíûjÇb¦Ç“îý®½E´‹+VLúwwýíz¾c±÷;÷/Ÿ~ÇâµZþ\êÞÂb{Ç×úóh–Ÿ?fŒHqñèÑ Šµh‘ŽX]²D$77ï}—c´þbލ9tH³¢Bs×®k¿ ’W¯öÌñ¡»ÝrËêÕ"yyµµÖ^¹2uªs©T2Ùü•þNÑ6í`ŒÅb±«W·oÛÛrs} t^8+dútÍŽ „aF¿Qz>üaÍû·h@ç¯yçšáiaý!ÜjeìØÌ7œ€TY©yð æÆšëÖi¾úªæ•+™=>²Ea±O=Z3¼Ò(üEaæLÍð‹ðë)S4£IÚ‘pdéÖ­Ç_¸ òÛßîÙ£‡‡UW‹lÝZYyá‚HCC*×Þ7ÒÀÀ),ö—ŽÅL ‹ÙAëßýèG§Mk­°˜Í³ôLa1ÝnÊ®),v}Çb×<Ó•¦ÿªK··±ùg±˜ç%"&ÜpƒÈ´i……‹iáqñb퀜1C·÷¿K·¾Ÿ8¡";ÊðÀ3g4¹Ò,jáe sçþ÷_ºT\‹ù¾çåæ¶uû H¥¯ÿ/ÂÚXLĹššÁƒÏŸ?xpÿþ·¾uúô°cðÿ±wßáQTûÿÀ?ÙÝì¦÷^H¡„"]@Ê©J/Rì~õŠPñ½ vQQ±#½ƒ" ôB ¡¥Bzïßçwž%°3»3»³»ï×óÜç}gfÏÎnÂf>s>@ün/Þ^ ä×ùxAñn‹X3¾”/@€òùø°œ:•å¤I,ùϱ)½éLÁ;qíØÁrÍ–›6±ÛÓ AaÑ,t:–¼o=ʳ¹ïóEù¬õáﮄ„¬¬âb¢C‡’’òóYæå>̲°°¢¢ñ·4-4),šþ¨wß…Å»mala±ùñ‰-,.XpçvŠwBÅVf,*µ°hhTÒÎX÷Èú£ét«+QX˜·wûöD¾¾;³™]»{x´je­…GCøO-/0òä…ÊÛ¿_XØ8y+ŒÛ¿Ï“,KK?.ߟx¸‰×­#R«SRêë BBêënÞ?ÇÖÁ¡¡¡¦&7÷äÉ)S‚ƒóòä+€2ñ¢† „|¢¿þg{釬e†%€=â¿·^~™åc±tuµÈpDã×›>ûŒåW_±¼ýºˆ…Âb#j5K^Èã-BoO¾¨1ŸºËWÙ lü5ÿï|Æ¡í©ªª­­¯':uŠÍ,<|˜­mxâDjjAÑ©SiiDÅÅUU|â²0bgÚûŒE±{ÚJaÑØ4 ‹BÇw·ów·wÅÝGžq™«jsG½û±„Ÿ/''GGWW¢à`6³1,ÌÛ;6–(<œ"ü½;tÐoƨ¨`ÉgÖñ€\\„íÏg`ò;áÞŸ%Ÿ¡i}zõúõׂÚZ­V£ P©ˆøç¢;i4õõõõÕÕGNžì啚Êþ½À'J°E#G²|â –=z°ä­ÿlWm-ë –””™YP@tùrzz^ž>/]JKËÍ%ºråúõü|¢—^š4©o_¢Q£úôáåUÃøò ⮀ÜÝY¾ù&ËÙ³Y6ßáȺdf²|ã –?ÿÌ×3ÄÒXzÂð [½z±äÿ4ùù±ä—Vù.,ù÷üÏ¿Ï@x¡‡/ ¼EibbVVI ÑÉ“©©……DgÎܸQXHôÏ?ׯ±™ˆ¥¥Dµµõõ·/µ|û¥{© _bާÔºtc’gš¹ÏÙ­„¼ªâžCÓG4| c簙Μ¯ÑíÏI™?UÖ¯²²¶¶¬Œ())/ïôi¢äd–œJÅÊ=¾¾nnááú–«ÁÁžž­[{yÅĺ»·lIäè¨Vó²p¼€(´x;~ÑÓO³œ6å”),·n5~l–qôèÔ©>>%%ì缬,.nÓ¦²2??•ª¡¡¡ß‰­çææïïå••…‚"Ø~‘_pž0Árc‘VMM]]}=QRRFFA+ æå¥¤de%&²Bá¥K¬pÈ¿®®®©² Euum-¾°FÿúËdÉ'VÙšà`–üy>þ8ËéÓY¦¥™}HVJá…E~GÐ石äSoÁXµµõõ7o]¸‘QTDŸ™YRBãFQÑùóÅÅDññ,ËË«« h\Z°Ä¥Dãf,Þ^ØTÆŒEÓo櫓xç÷…Îú(B_}©g,6=á­Cehoáϳ©ïZê†ãω4£mh¸y³¾ž(7·´4%EŸgϦ§ïÜ©o¥êççîÞ¢…¾ÐÄ nn‘‘DžžÑÑDîî:¿ÍÄâÊÕ«YvïÎòÂËŒÇxì]ÚÐ@4fŒ›[NNŸ>ëÖ]¿^ZZSCäççïOäì\[[Q±o߀úÖE¶äË/Y*¿ X\\^^U¥Ÿ1È W®ð…g¦§çäë'€½ÒüÿºïÀôâ‹,¥»6Íodà¿RR23 ‰²³‹ŠÊʈÊÊ/æàÀ®súøxx8;…„øúº»EE{{EFùøßW¯iýû³<{–%/4nÞ,ÝcØ&…gÌ`ùÃ,Ñ{¼9üƒ@jj~~EÑ¥KÙÙ¥¥D/fe]¼˜‘QR¢ŸyxåJnni)û±&2õ—…%>„4ý˜b¾«RÎX”£$©üó'ý›±hÊÑÍAšw‡±L9ܼÙÔír5않i…T±ÛݼÉÊC¹¹ee©©úŒÏÌÜ»÷ÎíµZ77"—°0"w÷ˆ"__WWžaaDÞÞ..!!úÄŒÈ[ñÎ ¼©òøñ–‹4ž0!,¬²’½ÛX X[i€ÐXçÎ,}ÔR#ÈË+../'JLLMÍÍ%º|™ o/òÌÊ*(ÀJa ïØ¸v-Ëûï7õˆii99EED›78@´{÷É“W®>}ùrFQU•°φøø¸»;;õìN4bDïÞ11DÆõìCäååæfüõ oo–6°|í5–~hê¸m• ‹¼µØ²e,í¯ ˜—WVV]M”’’ŸÏZáåæ–—]¾œ“SVFtù2+&%±aRR^^y9[ëý€ ¿D.ÅÅtKž„Ì@T~aLyG’ÿ¨Ò²Æ¢¸ã5]ª”îQ¬{FªyʸÂÈ;“ROÞ÷ƒ²TUÕÖ––ed'$°LLljËÆskÝÜ´Zoo"//gç  "OO—  ý×nnNN>>ú‘®®Z­‘——‹K@ûÚÛ›µxÕ(ìS‰ñ†gÉ× ¹õ<ë„–§`ûø¦ÿÕǯ.\¿ž›[\ÌfòÖ¢yyú¯y+ÒË—Ù×……¥¥••¦>:Àíøš°»w³Œ5öHœ;—’B´téÆGŽíÙsúôµkò/™TPÀ~?îØqìØåËúÔé´Ú;ˆ&O4(.Žè¹çÆŒéÕ‹(::$ÄÇGì£ðzÔ°ä-a_~™%®‹p »„÷ÔS,ùÿÖƒ·ÍÎ.-­ª"JO/((/'ÊÉ))©®&ºq£¨¨²’(9™ ÓÓ **ôÛ¥§VV²Ö£l©âÆn…¬ñ&´iã­Ç•¢µ§°-¥¿/×Å}¹‹ò_ú5,M;¾ðÇ1í}"õÙl¾e®Ø¶âZ°*e;yŽ"¶ñ0ÿ®ÖF•ò&ås»v¨t|ç‘Ëʪ«óóY]¿^\|ñbóûÜúS¥oÛJäâ¢Õzz9;;:º¹ét›‘““VëêJää¤V³ï;:º»¹¸°í4µÚɉH«ÕhœœˆÔj­–H¥R©Ôjvœ[WRäǹ]]ÝÍ›µµDuu M•ÝÝ££‰|}]\Z´0tføç˜€–ׯÚ,­U+C[ð¿Rwì8vìÒ¥[g²¤|&!oMZ^^Ueý·€õâ¹öìaÙºµØ#ðßkóæ}÷ÝîÝD{öœ:uíš”c4 _ö§Ÿvî<}šhåÊ?ÿ<{–èñLJïÖhΜ‡îߟÈÓÓÕUüŒFÞ"–÷êzî9––¾biy +,öé#ב‹ŠXÏÞŠŠššúz¢‚63°  ²²¦†}]SC”Ÿ_^ξ¯ÏÚZ¢ÂBöu^^iiu5QVVIIe%k-WSÃfVUÝ­2o}-G…Pθš.|)g|M“rÆ¢ÏÕΟØŸ¥Ÿ3™¼… Cnܾr¸µì$f{en'eaönÇjªÌ-l=Mã äR¬%zó&QeemmQ‘>Å?Bóßsƒ~ûÆÛõïýè£D}úDF.,r¶3Àö^ä¡®®¾¾¡húôE‹Ö­3ǘŒÁ[{Š/(ò«Ì?ÿ¼k×éÓDsç._¾{7Qe%Ÿ¥lµµuu D_½uëñãDÛ·>œ˜H´lÙË/MÔ§O‡¯ëp³f±,+c9gŽ”c¶F »àexrjF›ù7uê7ß:DT]][[_¯/–•± ue%ûþ­=|ïv!Rüó;/7PÌ#YÇq¥9¾Ø™n–aêŒ*K± >SÖ2Œ?Í­ÉiùrŒ|gÕ”#ËùZKsÞ•ñê5GêÖ½J$ç34|ly›K«TjµØ#54H1Ãx+Ï+X /(òÖO?½dɦMD;w?~åŠc4¯7òòJJˆFž;÷—_ˆþûß§ž2„èÉ'GŽìÞ]ìÑøÚ‹ ,üQ¡Z… _€ã…ÄþIK+,lj ã.kÊ9Úþf,š6f{(3HI©­PAJw¾ Bog:¿Ë¼­UM9¢±­fÅÝ"õŒEãŽgl+Y!Gh¼•Ôã²·”ûI÷z5õ>Q©T*ñ+?£°æ2>ËáÃ…î‘“SXXVF4aÂÛo¯ZEŸœœ-×ø,§¾¾¡áæM¢9s¾þz×.}Áñ­·ydð`±W¿¿ü’åÑ£,¥±²)¬°X_oh µZ¥âüÄ^X6mÍ3ePÎŒ*ænc‘{Æ¢J:WM‘w~R*ãǧÜV¨w£¬Ÿ~Ûçà Œ‚zS¯ºRÖXlšΚžt£1æ<þ\`šöíY¾ù¦Ð=xAqôè¹sW¬ ºt‰­¥h/>ûlÆ#GˆJJØxK–Ìš5lëXeøZ’³3˯¿f9`Kû¹vku…E•Š¥.°IÑ UNúñzc q­[Å_>öÙ"¶ù£*sÆ¢Ø9FbŸ…ÔsŸšžhüñäÞμÄÊÐoëœqòhþõ3ïÌÜæþuwpÀŒEP¢eËXjµ†¶ä-OÇ{ë­•+í¯ x»ܹóôi¢  __ww¢W_<¹_?¡{÷ïÏò±ÇX~ÿ½cT"+,,òKâK (D™ç¸M_úWKÌñ•4ÓóÖq`Æ¢üĽó,ÿŒÅÀ¼%1ËŸ¥’÷Ì4õ*Ë{#ù4þ}¨ìw˜ƒƒ~¥áPX¹<ð˾}…îñÜsŸ|²mÑÅ‹))99rËú,^¼råþýDqq-[=ð@÷îÂW¨|ë-–¿ü²¶VŽ1*‰èKdò2\XÔhÔj•JòÎdÛ! §qÿcgÚÚRIø%~ióö‚;ÒØ”óU’–~þw;Ê…ÓÒç§q*áŒXç™»û™T©T*µšDBaä"¼õéÆû÷_¸@´uë¡C rŽÉ:54°:ÂìÙŸþÛoDEEeeUUB÷Žˆ`9uª\ãS… _€S«ùe>0•q—‚-}¡iÎR‚Òÿ'ýóUÆ«)}Jóú| O%œ ëIËý{“Kó·)#ï/‰†5@j;³ä­8›WQQUU[K4wîòå»wË=.ëÇמ\¼xÕªýûÅîýïË1&%²ºV¨jµRÖX4/%޽–ÅÝ)}|ÒÑ_Ø—’ÒÏŸñ‰y|f®q{+™4ïyÞeæe ÏHì;SØÖR¼ÛÅ_¡[+c;•ÊÁ­PÀò~Xè–?ý´k×éÓú‚Ã×^|á…qãúô! ôñqs3´W—.,Ûµci»sC6cQxaQ s€l#Ÿæ„WÃXbÞ×w~O?¥JISgÒY_*—¸g"ìvp°žþ¬¤L¬±–įøL™bhKÞÚsÙ²-[Ž—{\¶§ºº¦¦®Žè‡vì8uJìÞ“'Ë1&%±Â¢ý^â–'-w‰V©i‰WÁp‚yXþý§ä÷«ÒJ¤OK¿º¶™ÖúʨT*•øÂ"Z¡€TÚ¶efhË#G.\HK#º~=7·¸XîqÙ®õëÿþ;>þÖ…s„ø×¿ä‘2Xa+TµZ¥2®eÛÝöQ^ÃCëhȨÔq™‚_º6éΟ<£Vúë+õø¤n± B™ó§,M¾W[ÞŸ^V\»~£€Túöºå¶m‡'&Ê9ûœœ™YXHŸœœMÔ±ctt` ¡½ºucéì̲²RÎ1Z‚y+Tñ亘)ÏqõGw|á[7ž{dÜñï¶·ð- ïmìñ›¿¤ÛüñïþȦ?i/Åž–=¾’Æ­ŸQeü1LÙϘÇqpûÅ=ž±gDØï-¡¹³®ä÷¹°ý„Ù¸íÔj•ÊÑQØžz55b÷hZ¯^B·>-Mαؗ£GÙ Pa…E­–å=÷°¢T…VµÚÁAøŒEÌT©EEÚ"99+«°¨¾¾¡ ´HçÚµŒŒ‚±{EGË1%PXa±ªJè–:Fà ‹uu†¨ÊÁ¼sBðKîïæ˜ö“Šóz+9Ïδ8òÎP†¦¨ÕÂg,VWË9°'j5ËC[¦¥egÉ=ûcÜy —c,J ²ô~!Žä¦V‹i…Š‹ –†+"%%rÇþ••UV54ܹ8_óÜÜä“%YíŒE­ÖÑ‘×é@nÒÌ+•ovª¼33ÅÍXDa¤Â ‹†UVVW×ÖÊ9ûÄˉUUÕÕuuD..NN†—ÌþºY…å±h]­ö¬c´Ö1J{€V‡R¸ó~åŸWsþ êφôªü3 öN­V©´Z¡[£°R1\Ââjkëëä‹}«®®­^X~%ÉÚ(¬™¨ð¢““Fƒ Ñ`âZ¡bEJe¥Ð-œ´Zá×/@,''áåBÛmJ«°·˜˜V¨j5ÖX{%¦£»’HqS%ž9Z¡€e”— ÝÒÕULá „ÒhX=J§³DŸð×ÍÚXmaQÿ ¿´j]3­k´JeÌÅgë¼To£Vë+Õ˜ó7…þÜØËï'¥¿ìåuPµZ¥Þx…E ïŒÄg.:;7·ep°¯¯»»9Æd_Œ;¯……rŒE 6çOxë0­Vü‹ÆÀ‹`üæ÷ädC[¶hèå%÷xìODDP··Ø½ ¿^ÖÊjg,:9‰™r `;ÄÍ¥¶µÒçgÞÊs5Ñ ,‹ªbc›Û",ÌßßÓ“ÈÃÃÕU§#*))/> šÓ®]D„¿¿Ø½’’ä‹XmaQ§ÓÏX´¦‹¡Êƒ³w;ël.h£61ïð;·ÅÏÇ­ìï]fÏš§ÕªÕÍ7¹í.Î –ÏrĈæ¶P«U*¢nÝbbˆöî=}úÚ5sÏvõê.v¯ ä‹(¬™(ïl˜³3f,€¼T*µZì‹¶»87XÊ¡CB·ìß¿S§ÈH‡b'x¡¶oߎ#"„î•“ÃòÒ%¹Æei +,–• ÝÒÕÕÉIxK2°w7oÞ¼yó¦m$>Â’?ÿ»§ù ™eS£Q©t:±Ï …EÚáÃ, m9fL¿~±±DèÈeо}ãâ"#‰üü<=]]…îÅ À¶Û Oa¥9áâÜÜ´Z6c‘_:ãà‹%I÷ÞÅOAsĽÃo?¶òó!Íûï2°GŽŽ(,€äç³äƾ}›Û’¯µxï½;FF¹Çe}ÜÝ]\t:¢¯¾z饇"R©xIVˆ}ûX;&×ø”Fa…E>u·®ÎЖ..(,˜“5θ4OZzFjãT±Î3×ô™4nÆ" ‹ ·«WY~ýµÐ=fÏž0áÞ{‰†ïÕ+&F®qY^@üâ‹Ù³|¨U«ÐP__¡{ó‚îœ9rO©VXä Ï\tsÓé4öÿ_ª´ô…HëɦΞáSÉs‰Þòï'[I9_%!iéç÷ó`4´B%{óM–™™†¶äóð¾ýöÕWÇŒ!ê×/..2RÖÁ)?ï¿?sæÐ¡D#Fôî-¾ÐºlË'¤òYmaÑÝ]§Ã‹ '­V¥ÒéÄî…Â"˜Kq1ËY³Xž$àä¤Õj4D+WΟ?iÑtïÞºµœcT¾ÆäÇ?÷܈D?>|ø=÷ˆ=Jr2˹s¥Ÿµ°Ú¢‹‹~Æ"È?Q 3:•™òjêQÅý½‚JLö|”ŽŽjµ««ØW­´Tì¦Ù¼™å’%B÷pqqrrt$Z±bþü‰‰^}uòä~ýˆÔj•JøƒÊçççééâB´nÝ‚?L4}ú!]ºˆ= _Êo–¼ kZš3|AÎËËÅ…ÍXÔ_òfléínKÐJ‘“çŠ÷}sļóx!ƒĽ’–-€íÓé4±{•”È1ÃøLºNX>ð€¡=øZƒ¯¿>uê}÷ |Ï=-[=÷Ü'ŸlÛFtõêùùrŽYÆõìÙ¦~†¢¿¿——øÈù5Ø'Ÿdyê””c´F ±XTdh oo­Öc{åääèèæ&v/ßcäQWÇrÌ–{÷Š=B÷îmÛ†…8°téÓO½÷ÞÓO?ð›ù'¾0g>:DE²™‰S¦­X1oÞĉ¦Ÿ{Žå¯¿J9Vk¦Ð‹……†¶pscStÕj¢ÚÚúzÌݱ˜›g=Úµ pw×g›6~~nnDnn¬•±··³³ik¥Jûnˆõð˜?ÿÎã;8˜ï}§D±ûH÷èR»ùcèÿ‹y®?šé-ìyHùyŸ>¦”g´m íaÚHÅíÝ¢…·w\œØÇ°ßV ••,|åÖ­, z­V£Q«‰žzjÔ¨î݉fÌ:´kW¢÷ï'úå—]»Îž%:q"1ñúu¢††Û;Lʃ¯ÉgV>ñÄðáݺõïß©ST”©×¹êëY¾ðË/¿4}ĶE¡…Eáwú»»ëtŽŽD55rŽévú4…@9P^–yò^Û={¶háãC4|xÛ¶D=Ô¾}p0QëÖ¬hM"",=°~‡³Ü¶åöí,b‰O`.åå,yKÔ… YΙ#öH:££ZM4eÊàÁ:é3;»  ¬Œè¯¿ÎžMJb…Æ7ˆâã““³³‰RS³³‹Šˆrr ËÊš?¾££F£R…†úùyzµhèåEÔ¥KëÖÁÁD=z°™”¼€È׈”Ù´i,·l‘êȶF¡…EÃ39OOWW­Ö…E°~9¥JóÓéØ/ö§ŸîÙ3*ŠhΜ[·&òósuÕé,=:¥ˆmœüƒzb"K¾ÖÁ¦M,Qh¹ñ©¯¿ÎòìY–_|ÁÒÇÇØ#úø¸¹Mš4hP\œ>›SRR^^]­ŸáÈg ò4/¾fâôé,Ì=kcµk,ržž¦¶R€æð)ããÆuìBtæÌìÙƒ-Y2rd‡((ˆÓ¶-Ë X=ÊrÀ‹ ìØêÕ,;t`Éo€–Ÿ‡»®ìååææädî‚bu5ËwßeÙ»7K…²ú‹|ª«yz÷êYjm0ëaÚëÙâHû.ôñqqÑj‰~ýuêÔ=ˆ hÙÒß_ÊG¢=XîÛÇ’÷ìŸ=›em­ùÇö%3“娱,û÷g¹x1Ëž=Í?&)54°ä…TÞI*%Å"ñ ±(¼°èåÅZ¡€éøšˆûö=óÌ}÷¡ `^³f±Ü»—e@€åÆöiÿ~–½z±ì×åºu,yKU¥âk%~ó ËŽYNÊES)tÆ¢ðV¨^^ÎÎ(,˜æþûÛ´ $Z±‚ÍPôðÐéÌߢ¾}Y>ÌrÄ–—.Yf<`¿lœ,zˆåèÑ,ï½—¥‡‡yÆuãKÞ Š·rݹ“eE…yÆaZ:>cñÖ5•Ý_üܹkײ²ôùå—›7;F4{ö„ ÷ÞKôÔS#GvïN¤Ó™r#_ÓàãY>û¬éÏ@8…y+TÞ±ùÕÞüüØÌ+c[AšZ{Š£ìWSyøœ™»{î¹¾}[µ"êÙ3"ÂÇÇøG;>));›hÚ´… ×®%º~=7·¸ØøãØšÂÂÒÒÊJ¢·ßþþû?ÿ$ڰ᯿âã‰~ùeÞ¼ ˆÂÂüýooø!ܬY,7nd¹gc0Deé4­¡¥á™‹þþ¬°Íñòbk‘¾üò€mÚœ­[JH :ôÕWøE¡ÎKJÊÊb¿?üQƒ†iþ÷?–¸y ÌC¡…EŽ/ÎÙ<ww´Bh›É;gΠA11DÞÞ..Z­ø£;–žN4sæ‡nÞLTUUSÃç€p™™ùù¥¥D'¾óΪUDyy%%Æ­{w–ãÇK5>€»Qxa17×Ц¬§\¼(oñjoyë@ΦÏcp°‡‡“ÑÌ™÷ÞÛ²%‰–žž“S\L4cÆ¢EëÖUW×ÖbíDÓåä–•͘ñßÿ®_OT]mÊ ‹±ÄÌE—Õ=5ž[ئ¿¿»»ø£ìÞ}êÔÕ«D55uuJüóÍÝÝÅE§#êÝ»}ûðp¢ÐP??OO¢€ooWW"ÎÑQ£ðßj`^ÕÕµµDyy%%Déé99ÅÅDÇŽ]¼˜ž®¼ßw ©©¹¹DIIDÑÑ!!>>bÒ¹3KÀžñÂ_ÇŽ“¯M|{aÊð…¼xKÖ>}çíÊÊXò‚㟲üã–§O³TÒ'9û ðÌÂg,úúº¹iµìÿÛwóFûyö[Š¢aì­‚‚ÜÝ™Á{òdbâõëÒÇXÆõìÙ¦ ÑOŒÑ­ѽ÷vìA¤Õj4|¥c”–VTTWíÞ}òäÕ«DK—nÚtô(Ñ?ÿ\½š™iéÑ=Ê ŸÆÛ¶•cLöcÈ–Ï=DzW/–¼u4n?z”å_°ÜµË2ã±u]º°|ùe–|Ž3o¹ˆÏÆMËÈ`yèË?fyäˆeÆâxz²¼½P×ô÷y ¬“›ËçÂ…, XîÙÃ’ÿ{³iSãÿ`«øç½ X>ý4Ë®]Yz{›L¶Œ¯QÌgÔ¯[ÇòÓOY–—›LBð¿c_y…%_B¥eK–¶ÚiÁTÅÅ,Ïžeùý÷,W¬`ÙÐ`þ1)‹Â ‹ÙÙB· ôôä9ì]p°‡‡1…Ŭ¬‚~_¨%´o@´dɬYÆõìÙ®± vî†Ï€;¶ÿöí‰ÆŒéׯ}{¢¸pèÍ7¿ùæ?ˆòòŠ‹-ñçÁµklÆ¢q¤‹íãMÃ?ÿœå¬Y–‹5ã°ŽÕ8¿úŠ%/Ôâ0Ó¼ðË?d‰[­Ä aÉ/ÀÏòwX¾û®Ù‡Däë˲{w–ݺ5N>ŸÏ, "â·^ñŸgž_~É’Ïl\½šå–-,-ù/€øÔš•+YŽg¹±Ø~¥•.áùøã,‡eÉ×¶4~ƒì¶m,ùÚÍ ¿¡í¾ûçÔ©,ùÏý~®Pxa‘ßQjXh¨··‹‹œc¥hzN¦ýÌÔlšƒÃ­÷¥{xShÏÊ*((-•nTB Ò½{«VDß|óÊ+cÆè/ø˜ ÿ-:n+4öîN4mÚ¢EëÖ™&cIIy9¿R ¶Örc±¼€Ã×ÈãZx€%¿“Ÿ_µüßé´´ìì¢"¢ë×ss‹‹‰22òóKK‰nÜÈÍ-)¹õûyy¥¥D™™ùù%%¬pXY©/$64ð£uâǨ¨à`oo}ò–î‘‘AAÞÞD11-Zøùµk×¢E@‘££Fc¾w¿õvÊ”Æyæ KÞ¹`Õ*–Æßâ þ9…ÏÐe‰‰aùÔS,y‹Ts{ýu–((Ê‹ŽàdN²ÜX,Cá…EŽÏ\lÓ¦¹-ô…EPºNZµ &úè£gŸ>EP.WW''­–hÕª·ßž4‰hðà_üþ{ËÍð)Ý?Ëæo\)¹º²äç}ÍËÅšÄÆ²lþï ¿Ã»gO–˜ÉÄð÷/ò8¥õý­®f…ÁôtVøã´´œœâb¢ôôÆ_ßþßsr í·ñÕxëxž'N$&òyêMá3;tˆŠ $êÜ™ý}È“/‰Ñ²eh¨øµ¦ÅâkÖòµ“ÞŸ%_+˜Ïç7¾˜Û“O²äV@ÙFfi©Â"|01cX¢°¨P† ‹aa>>(,*þ>KóÞqiï…)븿U«e­w¾ûîµ×ÆŽÕ·ØPº  ww¢ÿýï駇 !zì±÷ÞÛ°ÁÒ£Óo½·oß™3II¬Emuµœc².®®:ÑÀ]ºDG ÝË~[Gøù:uêÒ¥7Ø )\þÖ ðövu%êÝ»}û-„îÅÏ»½ùÚA³g³äwÜ ÿ ·”ššººúz¢K—ÒÒòòˆRSsrôyáBJJNQbbjjn.Ñyyø9±^Øå¿·xÞ®E‹€//¢ºt‰Š"0 sçèh¢þý;uŠŒ$òövw7f »ãkóµWŸžåâÅ,—.ei©w`?ø y¼u³aüßÃ;»|YßrL×pv32Ò CjYX˜¡-ÓÒrrŠŠˆÎœ¹|ÙœK¾X‹‡êÛ·];¡[Ûïß·VRXlê#fcnn¬õ£‹‹N§V³5Œo!&Žu—´ð ˜Ï# Öµ«¾5€µyðÁ{ïm׎¨Gv툎OH¸Ûù d¼…Ÿao¿ýý÷þ©¿0 Llldd@ÑŸþôÓB÷~ÞHÌùúúë­['Ú°aÿþ ä“u<øž{Z¶[X´·÷)/¤ìÜÉ’¯ dy¼CÀ¹s×®eg]¼È …ÉÉÙÙúÂáÕ«7näçÕÖÖÕ54XzÔ ~áóçŸwí:sFŸj5[²wï""ôkdÕ§OÛ¶R}}Yò™Œ/¾ÈrÑ"–_Í­“@*íÛ³\·Ž¥áR/ Ξýùç¿ýF´fÍÞ½çÎÉ7B{1{ö„ ÷Þ+¶Ðd©[—øûÄp¥âðáóçÓÒˆž}ö“O¶n•{\Ö'?¿oßyó„nm¿Sf¬¤°Èg,èééìL”œœ“ƒeÊÀ[>ÿüر½{[z4¦ã¿Ï¦O_´ˆÿ¹`V¬`i¾‚b~>[[ðÌ™+W22ˆÎž½r%3“èÌ™«W33õ_£õ84¥¾¾¡áæM¢ƒÏKIÑçœ9Ë–íÜ©ŸI?~ü€:É Ž¼ƒŽi‚‚Xò5gÍbùï³üóOSìÿýòÛo,==…îùÁkÖ8€‚¢T&N8°cG¢yó¦Oçß…;p@Ž1(•…OÊ BañînŸ/ß|KóÎä”næ¥uÎá¼ól+éytîܪUHQh¨ŸŸ‡‡¥G`ºAƒºvmÙRß ¥²²º÷©€u¹ï>–|ÍDÓ54°¿7ãã“’²³‰þþûŸ’“‰NŸ¾|ùÖ"Ÿ‰ %Þp×®'®\Ñg` ›Ñc vÏ=D>:th×®Dþþ^^|`ãñ9,»w³Ü¸‘åË/³LI1õÀÖñ޸ܱˆ¡{®[÷×_ññDï¿¿råßË16ûÒ¿§NQQDŸ~ú著(! ¿"À[fØ6+),n…Êyx8;³¢Š°ÂŠ’Ê/¶éþû»ukÕÊÒ£Ž““V«ÑõëAôÇ'N\½jéQˆ1r¤±{æä–•é× Ý»÷ôé¤$¢¿þ:{69™(/¯¸¸¼\ʱ/;»  ¬Œè½÷~ýõ￉>þxíÚƒYk»ØX¢_d­îÚ´ ÷ó3õÑÆŽe9lK¾Vã°D³^àT*–¼s@÷îB÷%²’¢ðV¨ÁÁ^^ü>P†èèK@zQQÁÁøýÖ)<ÜÐüBå‚?þ¸g+ ^»¦_ë2ÁUW×ÖÖ×­]»oßùóD6üýw|ù„ågŸI=>%SYzŸ±êãcz+ Ëâš™'ùŸ‚ÖžÒë¤ìgÄZÏØšÀ@ooü~ë¤1x£1ïôùç79BtáBJ Š`køš|m²^½žy櫯ˆ^yåË/wìÐÏx4M¿~,ÏžeùØc¦¬ÕÌ™,yËdà JK++‰&MZ°`õjý×`^@äE^`gýz–Â_G[b%…Åë×Y¾£E __VX¼³l$wAʾ [Íóôtuur²ô(¤çííîÎïGëW[[W×Ð@ôÃ;vœ:EÔ­Ûÿýß_°5Ìöï7u†¿týý÷,W­b‰Þ[¶oèP–Ÿ.t¾vìc½÷Þ† ú‹`GGF¥"úá‡×_7NßUœƒYNŸÎ-®Á>YIa‘/~š•ehËÈH??ÌSUTTUÕÖ-^¼jÕþýD}û>÷Ü×_íÞ}ò¤éklOžÌ’_¨Žˆ0õˆ 4qq,×®e)¤c›~ò Ÿ}¶};ÑÁƒçÎ¥¤È6@›çààà@Dôé§Ï??r$Ñ€;GG‹= _;ñ¡‡XVUI7Bëc%…E.5ÕБ‘~~îîÒ=bó³ Í×èÓZZˆZWZºu«ü¯#H‹Ïš<™µ$œ9óÃ7o&*../7þ2s—.,Oœ`Ù¿¿cKâ7 ìØÁRøë÷Þ[¹òï¿õkÁ‚iæÍ›1cÐ ¢I“ âe^áøD§aÃXbÎ(‘Õ ß›áééâ¢Õ¹»;9ñû?„ZPœ1Ö­ûë¯øx¶6ã²e¦Îdô÷gùçŸ,gÌbŒ`N~~,wîd"tÏ÷ï¿pèÃ׬9p@Ž±Ù—G:´kW¢Ù³ÇïÓGìÞ|uÝ#XbÎ(À­¬¬°hxÆ"æãƒ–¨ ·œœÂ²2¢)SÞ}wõj¢¹s—/ÿãýiâ8:²üá–³fI9V_+uÛ6–mÛ ÝóСóçSS‰ž}öã·n½µ?cøð^½bbˆ–,yæ>ÏP¸º:–'²<}ZʱØ ›-,††z{;;ÙB QeQF#Skzý,ÓÚÌÿU¾lÙ–-Çýæ›+Våæ•—‹=šêÿ_·ûâ –¯¿.ÝH@¼g_C±W/¡{^º”žž—G4cÆÿ»n±7"×§O‡-Z-_þê«cÆ©Õ*[]QŒ™3Yò¶Ð›-,†‡ûúbÆ"Xʱc ééDΞ½|9ÑéÓ—/gd{´ÿýåÂ…RŒÅKVß~Ë’·Ì4,33?¿´”hÒ¤wÞYµŠ¨¨¨¬Ìø5Z¡]»ˆ¢_~™;wâD"N«åå^á,`ùÝwRÀ¡° #^H5ê7~þ™hÓ¦.^4öhsç²|õU©Æb-ZÄòÑG…îÁ ˆ&¼ýöÊ•Déé99ÅÅ2 ÏDDzymØðî»S§yy¹¹99‰= o9Í ‹ „èÚ½eñÂ"oöØüdæÈH??w÷Æ[[–i£PÆs ºÛ977ÓFb¹3*Ï#+çu€¦UUÕÔÔÕ=õÔ’%7å屩O=5jT÷îböþû,óòXò ä ŸgžaùÆB÷à?÷Ó¦-\¸v-QBBjjn®\ã³}¾¾..Dk×.X0e Q` ø F¿ýÆòé§Y*çê;€5°²‹, ÿêŠò÷ÇŒEP¾ão|ûí®]DK—nÚtô¨Ø£ð›Œ¿þšå°aÒ›8‘åÒ¥B÷¨¯oh¸y“hæÌ?ܼ™èÈ‘ ÒÒäŸísvÖé‰~ýuþü‰‰Zµ õõ{”#GXò׳®NÊ1Ø ++,r×®Ú¢M›  OOsŒ@<^`|ûíï¿ÿóO¢%KV¯>p@ìQY®[DzsgéF`ï bùóÏ,U‚¯§¿öÚW_íØA´mÛáɉrŒÍ>hµZM´bży&uïÞ¶mX˜Ø£ðæÓ#G²ä˜ÀVZX¼zÕÐÎÎZ-‘Ÿï­Ì§3KŸìÿJ9G`Îú|•ž–;ò0ï£ÉFL IDAT€ôÞ{ï×_ÿþ›è«¯¶l9vLìÞ®®,7l`éí-åØì /ÐoÚÄR§ºçûï¯\¹?Ñ?îÜyú´c³lVö'Ÿ<ÿüˆDtî-ö(éé,‡eYP Ýì—͹ˆ¾Ö"€ÒÍŸÿÝw»w­Y³wï¹sb÷æ—ÞÅϰ€¨(–¿ÿÎÒÃCèž?ýÄ ‰‹¯Zµ¿c³/ >ñÄ!D“& 'vïü|–¼ È Œ +ý`!¼°åç‡Â"X Þoé…>ÿ|ûv¢½{OŸ6¼0ÐíxË¿×_—vt¶ÈÏåŽ,ƒƒ…î¹sçñãW®½öÚ²e;wÊ16ûòÒK'öíK4sæCõè!vïÊJ–=Ä’·@)ÙAa1 €m£µ¥¹[¸*§…(ZºÞ-ÑÀÖÔÖÖÕ54=ñÄâÅ7%%edˆoä÷î»,ûö•z|ÖÏÍ%Ÿ¡#tÏ£G/^LO'zâ‰÷ßß°¨®®¾¾¡AŽ1Ú‡éÓ‡ éÒ…èÍ7§M0@ìÞµµ,'L`yè„C€ÛXiañÊ¡[¶j(|Â:€²”””—WW=òÈÿþ·~=Qeeu5¿Œn˜ZÍòûïYº¸È1FëâèÈrÝ:–Ý» Ý311--7—hÚ´… ×®%ªªª©©«“cŒöaøð^½bbˆ>ø`Ö¬aÃôk+ çX<ù$Ëß~“~„p;+-,²ä½’›×ªUP§§Üã×Å‹))99D³gþ¹øËç­[³üϤ€õàE+^hçkð–™™Ÿ_ZJ4iÒ;ï¬^MTXXZÊo‚x÷Ý×¹sTÑò寽6v,‘F£V‹_vΖ|MY0+-,r†g.ÆÄyyY¾U¥òZŽJAîÆ«wË›7 §í·tm®µ+تõëÿþ;>žè§Ÿvî<}ZìÞ³g³ìÓGêq(ß’%,§Mº/ Ž7þ¯¿]¿ž›[\,×øl_íÚ……­X1wîĉD:£#ŸW-܇²ä¯'˜“ÆÒ0 _k±W¯æ¶ðôtqÑj‰|}ÝÝœˆòóKK«ªÌ5>P‚øøääìl¢éÓ.ä .À6œ:µ|ù³Ï©T⚥؂¹s—/ß½›¨ÿN¢¢ˆ¢¢‚ƒ½½ íÅç}÷ËNXÖÔÈ5NË{å–/¿,tÞâ”·<½t)==/O®ñÙ¾ØØÈÈ€¢U«Þzkòd"''ÞV¸_~aùê«R„³ò¢ðµ[¶ ôôDaÀUW³‚ii99EE– HI?OeE°?|­Å_\ºô·ßˆ6mZ¸pÚ4¡k”µmËrÖ,–Ÿ|"ßH,eút–‹ Ý£®®¾¾¡è‰'/Þ¸‘èèÑ‹ÓÓåŸí‹Ž ññ!Ú¸ñ?ÿ™:•ÈËËÍÍÉIìQ¶laùøã,ѳ À’¬¼jb¢Ð-۴ѯµ¨ŒÖ•b[[Z{*­•«å^]sŸ_°?¼µ¿€ëì¬Ó‰ŸÖâÀsçRRˆ~üqçÎS§Äî=>K‰‡`AƱä3s ÛùU¶—_þâ‹ß'Ú¹óر˗å¡­ õóóðÐýý½¼\]Åeï^–“'³¬«“rŒ`+Ÿ±xñ¢Ð-cbBBØZ‹–áêêä¤ÕµhÁ:+…‡xzùø¸»ûúº»…„° ²ÞÞnnú ´¼uœ»»‹‹NG¤V«T*•þûZ­F#d­ªêêÚÚúz¢¼¼ââòr¢ÌÌüüÒR¢¬,–—/_¿ž—G”šš›KôÏ?×®ef]»vãFAüç ŒóÎ;?ü°gÑС=z´i£?Ý/(¾õK¾#€5êÙ“%_ Gø-‹­X±oÑŠ»wŸ=+ÇØìƒŸŸ§§‹ ц ¬ Èÿçøq–£G³DB%±òÂ"¿g„ß© iöù´kŒÂ"H_(ˆ  ôò"jÑ‚}¿E‹Æ_óÿîããîîìléÑëg4ò‚%OC²³ ÊʈŠOM%úý÷£G/]"úã'®^%*/¯ªÂJ}–SVVYYSC´pá/¿ìÛGôųg?ø Ð½yKÔ/¾`)| "Ëã­}·og)|nÜ·ßnÛvâÑǯ]{èc³®®:Ѻu <ü0QëÖaa¾¾bráËáÃY––J9F†•ùGÕk×XÆÄ4·ellxxÓ‹W+µa¤~z¾RG(ŽÒž…åÖâ’ç‘•v~lÛ›oN›6`ÑĉvìhéјO` ›Ñرýû·o¯Ïª*¶¶ýöíGŽ$&-_¾}ûÉ“D'N$&^¿néQÛŸµk÷î=žèÿþoÔ¨=ˆââZ¶ 2´ŸÙÅg.òµé”,4”åÎ,ýü„î¹iÓ/½ùæ·ßþñ‡c³¼ÕöÊ•óçOš$ô÷Íí’’XÂ2?_Ê1€´¬|E.!ÁÐáá샯‡k ÒprÒj5¢ñãﻯC¢;—,yôQ¢?þøàƒÇ#0 sçèhKÒ~44°ÕâæÍûî»Ý»ÅîÍ×2Ã+JƧð‚bD„Ð=÷ïÿçŸäd¢Y³>úhËýÏ ˆãè¨Ñ¨TD?üðúëãÆõîݾ}‹b’‘Áòþû Jf#…Eák-FE±5 @^÷ÜÊÖÚzøa¢M›.œ:•¨U«ÐPñ-ò@¬C‡ÎŸOM%Ú¹óøqáMùRC¯½&׸ŒÇ›IoÝʲC¡{ž;wíZVÑôé‹­[GTSSWW_/Çm›Jåààà@ôÕW/½4z4Ñý÷wëÖª•Ø£ð‰<À’ÏXk`å­P9á…Å6m‚ƒ==‰þù'%%7—È’-1…7BåÜ_Óx$Ê?ÏÂ(çü6f+çîT[Ë2;»qVT°¬®fÉ—Œ)/gÉÿ†-*b鿯’÷râ_óV‚¼y]@€tco¬ÿN¢¢ˆöïÿì³§ž"úàƒ5k$úì³ &ª««¯ohëÑí׬^}àÑС=z´n-t¯GeùŸÿ°¼qC†¡Ä Þ«W³ìÛWèžÉÉ™™D'¾óΪUúµHAVN$úàƒY³† #3¦_¿ØX±Gák&ò5ãã¥!˜‹ ·Båbb‚ƒ›^k@N'O²LNf™šÊ2%…eZKÞ ŽgVKsÝìʯœðKÆ=z°0 qzxû:k:wîôé Ö³g›6D3g~ôÑæÍD׮ݸQP`ìÑávgÎ\¹’‘Aô×_gÏ&% mM«Ó±œ=›å«¯Ê9F€¦ñ›é—-cùàƒB÷ÌË+.®¨ š4iÁ‚Õ«‰rs‹Šøm Þ[o=òÈàÁD<2th×®b÷®ªb9z4ËãÇ¥˜—Yò{ÚTͶx‹kÑ­6싃»§ŠßY¶?×`]úõcÉ/°*Ua!ËC‡çdzä'¾&ÖŒ,ùc>#R¸®]Û´ !Ú·ï“Ož|’è™gØÚg¿ýväÈ¥KÆ<hÊG­YsèØ5/{Œåüù,•þþÛÂgÌ>ñ„Ð=JK+*ª«‰&Lxë­•+q£‚©fÏ?¾O¢ÿ{ܸ޽Åî]WÇ’¯Ýºw¯”c˰‘Â"oýÁ{17ßÕ¹K—ÈH??öÿM»Ï-1 i<Ëœ/cõîû(çü6¦Ô÷£2ð?Póò¶n7ÏÒ£°v¼õêöí3$„å+¯°|æ–NNBìêêä¤ÕýôÓoL˜@´hÑŠûö}üñÚµ¼¼ Æ;t(>>5•èØ±„„ôt¢ž=Ûµ 7´¿EìX–+WÊ9Fæ¹çXÎ+têêÚÚúzýŠçÎ%%ñùÞ Þc vÏ=DóæÍ˜1hؽù Çg¹e‹”cËjvfŸuúçC[yz:;ùúº»ó¥~ÀT¼uëK/±lÓ†åæÍbÄ;SÌ›7}úÀD‹Ïœ9t(:VHå»ï¶oçy…{úi9ÆÐØÄ‰,?ýTè 7oÞ¼Éf:oÞLtàÀ¹s¼Á4ˆ7~ü}÷uè@´xñ3Ïÿ{÷…Xþò‹´£%°»Â"×¶mHÖZKz:Ë1cXN˜À2/O쑞xbĈn݈.|â‰!C¤ŸýÚ¾ýÈ‘ÄD¢üü’Þ̰þýYÆÄÈ5.°gƒ³üùg–Í/uu»×__¶l×.¢-[LHclöaÈîÝ[µ"Zºtöì$R©Œ))¾õË¥K¥(‡ÝÛ· c…EÞBRlê{y’Ý¡£¼´ôy1æ•mŠ¥G×ü¨Å=s[¿že\Ë?ÿ{„™3z¨G¢çŸ;VüZ_Àñ–‘«WïÙsîœÐ½x‰¯¹ …®]YnÜÈ’¯ájØ’%«W8@ôÝw¿ÿ.~.p=z´kFôÝw¯½6n‘££F#¼¬Ë}ôK¾&&Ø2»-,ÆÅµhÁ×ZsÉÌd9lKá-¹·ß~ôÑÁƒ‰FŒèÝóçŒ÷óÏ»v9sëmáBŒ'߈ÀþlÛÆÒÃCèü}ûÞ{¿þú÷ßrËöuêÔªUp0ÑÚµï¼3e ‘‹‹““££Ø£|ÿ=K¾¶.Ø+,¦¥±,,4´e§N|éi0·º:–³g³|ýu¡{ò}K—¾ðƒEEcÉñ®^½q#?ŸèĉÄÄë×…îÕªËN䨡[þþûÑ£—.½òÊ—_þþ»œc²mmÚ„‡ûù­[·`Á”)Dîî..Âç‰r|:_{=Ôì‰ù/0ÃMÚ· óñ!ÒéÔjÞÈAžÖ™·Í²<-1"´t5Ïùjü]kóþû,ç̺‡‡‡««NG´|ù«¯ŽK¤Ñ¨Õâ[øÁ¶m‡‹_›nìX9Æp»#G.\HK#zòÉ%K6m"ª¯ohÀ0ñZ´ðò"Ú°áÝw~˜È××ÃÃÅEìQþøƒåÔ©,ëë¥#Xý¨e¸%ª£#û äåeŽ1€a‹³üì3¡{tîܺup0ѳώÓ«—\ã²]Û·>|é’Ø–¨(,‚¼ÓÒrs‰¦M[¸píZ¢êêš>Ï„ öõuw'Ú¸qá©S‰BBüü„7žåfÉîkj¤#X»-,r;†‡£%*€Ò¼ôË¿þºÇœ9S¦ôïÖ¨b¥¥åä?Ÿ””•%t¯XFGË5.°Oéé99ÅÅDãÇ¿õÖÊ•DEEeeUU–•õ ðövs#Ú²eÑ¢éÓý½È¯³Á²¼\Ê1€uÒXzò8sFè–]»FEùû­]{äÈåËrމ7\U6"¥60|¾,3rë=_ö¬¤¤¼¼ºZìš` ¾çž–--= o±7e K¾ôMók²étZ­FCôÖ[<2hÑc½÷Þ† rÓvlÛvøpb"Q\\Ë–AAB÷4ˆeR’\ãûŸ_RRQA4aÂÛo¯\I”™™Ÿ_ZjéQY??OO¢Í›-š6¨eËÐP±G¹r…å°,*’rŒ`Ýl´°ϲ²’¥³ss[öèѲe@€9Æ–råÊõëyyD'¾óΪU– H)'gË–¹s‰Ôj• ·XØ*>‡îùçY®^mhQ£úôi׎¨{÷¶mÃÂp£©P{öœ>}íÑܹӧ t/¾åòåòŒ l]EEUUm-Ñ”)ï¾»f »Ž“ŸoéQYwwggÖòtÚ4¢˜˜ðp??±GIOgyÿý,³³¥#Øm…Z[ËÒpKÔÎ#"üý‰t:F­–{\`œ5kXþþ»¡-Ømg¯¼2yrß¾òŽÊ–ÄdzV¨ÅÅååÂ[O(ç˜ÀvÕÖÖÕ54°™Åë×:uéÒ–•õñðpuÕéˆÖ®]°`Ê¢öí##ÅO¤ÉÌd9x0ËÔT)ǶÅF ‹Ü‰†¶Ðj5•ЍuëÞcš7»”6ùò×JK¹ž¯üçK®G7çù’îl|<l×Ë/³ä7–7oðà®][µ"Š‹‹ŽÞÚÓ~Õ×74ܼItäH||ZšÐ½BBX¶i#׸À¶44°ëWÏ?ÿé§[·ýùç©S×®YzTÖÇÝÝÅE§#Z¿~Á‚‡&êÒ¥ukþÓ(\n.K>C‘·@hžOžºe—.⧆€y%&²üé'C[ò™‹Ï<3ztÏžòŽÊ–8pþ|JŠØ½î»O†¡€ zýõeËví"Z·î¯¿ø‚V œ‹‹““£#ÑêÕo¿=y2Ñ=÷ÄÄ„†Š= o6Ëg(^¸ åÀ¶ÙxaÑðŒE®kר(¬µ`-Þ{e}½¡-|ðÞ{Ûµ#òòrssr’{\ÖïСóçÅ7BìÚUޱ€íX¸ð—_öí#úî»ß>8''­V£!ZµjþüI“ˆzõŠ {”âb–C‡²<^Ê1€}°ñÂâ¥K,KK mÙ£G«VDòµØ4ž¥[ŽÚ[‹Ö»³ôèšµôï<%ãÍ7o6´%¿ ?~ü€;Ê=.ë—šš›KT]]SSW't¯.]äX¯Ï?߸ñÈ¢?^»öÐ!KÆúètì÷׊óæMœHÔ·o\\d¤Ø£””°2„%J»`<¥ ¯†–§O³l¾%Cûö¡¡ÞÞDÎÎ:FCTYY]-üƒ(Yl,[´ú¯¿>ýô©§,=’Z­R±æV`¿¾ù†å¸q†¶7®ÿö퉖/ß¾]xŸ+ûSWW_ßÐ@tñbjjNŽÐµÛxÉV­fix&)ضU«öìùç¢ ~üqÏKÆú8:j4*Ñ÷ßÏ™3nÑÀ]ºDG‹=JYËáÃY?.åÀ>Ùxa‘ã›/,j4jµJE×¢…ŸѱcW®de™k| 'ggÎÑ‘¨cÇèh63lÇŸ²ä«6?—§{÷¶mÈBCýü<<ˆnÜÈËãóxàNçÏ'%eg -,º¸°lÓ†eB‚œcåÚ¾ýðáÄD¢^øì³íÛoíOBðh¿ú꥗F&:´GÖ­Å¥¢‚å¨Q,1W¤cã­P¹£G…nÙ£GË–¼ð`Ùæ–úÖ ò>š|Т՜‰F¨`¯xǪµk méàÀú] Ú³'/AóâãYaQœÎå (ßž=§N]»Fôä“K–lÜHT_ßЀ+TÂñ‚â×_¿òʘ1DcÆôë+ö(UU,Gfù×_€ˆì¦°xð Ð-{÷nÓ&8Xα€ôÖ¯ºå AÆ´´?ññÉÉâ ‹11rŒ”oíÚ}ûΟ'ª­­«ãå~0L¥b·<,]:{öƒ[P¬©aÉ[BïÞ-åne'…Eþ(9ÙЖ÷Ý×®]h(»ƒ k6X‹“'YffÚ²o߸¸ÈHýfдk×22òóÅî%ÇXl ¿ú¼dɬYÆMœ8p _©T¸ÚÿÇÞ}‡Eqµmè½J“ª¨(*Š€]±w]c‹5‰úš¨±ÆÞ{41š¨±·Ø{AQ±wEÅ. X@Dº”¥øýq¾sqg—™]v÷þ]—×ýÆwfö™·Ì3çœ\–½{³MÇ>:ÉŸKÚÆÆÜÜØ˜¨B''"L¹©ü¥%{4ùJûù«û÷@·ðoÄ|ÍÅâYZš™Õ¨Q¡f®*^bbjjf&QFFV%Æ‚|o(.Z4|x»vDƒµm èQòòXöëÇòÀñ*ø<k,^¾,tË  Š]\¤¬Äwú´Ð-||\]¥¬E;ÄÆ¾}›’"tkŒXøœ™3 jÑ‚hÈöíÝ;?Ÿå A,wï±4AÐX,F½zh,hž«W…nP©‹òÅÄ(ÒXäc@MM¥ª@MŸþÕWÍš}÷]·nõë+º7_µòë¯YnÛ&fmŠ0Twªuÿ>ËÔT–l²ÓO öõúÁRš©'Kë„–¥gåÉ¢•¨êù*ùùëÖï €ª=}Ê’·Âlm‹ÛÒÏÏÛ7–Ë/¼±ÈW­ôôdɺéÇûõkÒ„h̘ž=6Tto~ÍoäH–6ˆY€2t¬±Èïì¸veëÖÅméãS¶¬­-‘ƒƒµµ™QbbZZV–*j±ååå祤ddàß1€vqp°±±°PwPºð ñwï²lÒ¤¸-+Tps³·'2440Ð×/üþEÅŽŸ–¦è^,ÑXÝ4jT×®õêÿå—+{”1cX®^-V]%¥cEîÒ%–Å7¹:u*V,[–èØ±Û·£¢¤® ¤p÷îóçqqD­[ûº´KBÂÁƒS§èë—ž1õP:|ÈÉ!êÕkÖ¬;ˆ¶l™:µgO¢fÍjÕòözþúµq#ËÜ\–;wŠ\.€\:ÞX”ÉX^¹Â²E‹â¶ôõuuµ·'rv¶µ57'ŠOIáíÈÒ5ù¤Ô—W…Ÿ­j/ôŠ÷hŸ?ÃÒõÓ.„ËêŸS¦ [#µoß–-kÖTw5 Zü Nñ«(𙡱ø9¹¹yyŠ7ñŒüSVVNNn.Qß¾sæìÜI´~ýäÉÝ»µkW·®Ð£ðã¶m,ùµÊ]»Ä® 8:>*'|­Å† «TÁÈEMÁ‹Å3775E¬xùù?¦0±ð)2kÔ²`ÁÞ½D‡_¾üø±¢Gá Æ-[Xvì(fŸƒÆ"…† ݲeK??//)k†gùñcÑ&#CÞXcQ™L‘µÑXøÞ`6lÑ¢}ûˆöï¿pááCEÂ_¹vïfYüŒ|bAc‘ˆˆnÜ`™”$oËÊ•#20ÐWÙsW´$/ÿÝ`;­GU)Þy~þÑJN¬ó!>|·F, £ØíÌX¶@ˆ¼¼üü‚¢á×.=p€èÈeF0šš²(9eî°W†ªîÊÿø÷ÿ€¹¹ùù2QllbbDQ\\jjTÑ»wii11D E333''-MñÆ¡±±¡¡™‘©©‘‘¹9‘££••§'‘££µµ—‘““µµ§'‘³³M¹rD^^~~DVV¦¦öö’>ˆ(/MѤùvÄ'dÄ"‹Ÿcbbd„Æ"€zeddeÉdD½{Ïž½cѱc DT¡‚››ðïÑuë²Ü½›å_°Ì˹\Ðbh,~_kqÌy[¶m˦D=u*<<*ês[ª®Á$tKÕ6¢Ä´¢gªh›m8]rï^TT|³gïÜ©îj4ßòåß}סQ«VAA+ª»ø·ÙŸ/Þ½»ŸèÉ“¸¸k׈ž={ûöæMö÷÷î6¥’“ÃF6òLMÍÊzÿžèùó„„;wþ»½žûãâbkëíMT©’³sPQ¥J..AAD¾¾®®õë6,@ý”ÙÆ"¨ÿîok+oËôôÌÌœ©ëÑ\66¦¦Šî•ž.E-Pzéë³Ér TuC¿nJLLMÍÌ$êÑcÆŒíÛ‰Ž_¼xà@"{{++¡Gi׎åš5,‡e‰ŸȇÆâ'……±üðeñCût©]»B¢‰·l #ÊÏ/(PüÎm_+#>>) _kJ.;[&Ã}l¥ÇÛ·©©/^ݺõâEHÑÍ›ÑÑǽ{—žÎ'øÖ¼!úæMJJddaž;÷äÉÎl¦¢êÕÝÝ7&ªSÇÛ»CÖplЀÈÀ@_ߟjT*7W™‹˜ TÉÆ†¥üOŠïß§¥efJ]æ²µµ²Rü¿äd)jÒkÖ¬Áƒ[´ :xðÒ¥GˆnÝzòäõkuW¥½bcRRˆºwŸ>}ûv¢#G,øê+";;Eþ½ÌòÍ–Ó¦IQ+h\‚û¤¬,–§O³äCÂÿËÅÅÖÖÜœ¨Z5OO¢{÷^¼HHPEÚJøMEÇŠ7QÜûrTu—ÏÏ÷h—?~,( ºÿÕ« ˆNŠˆØ´‰(:š@üm›-“ååÉdD·o¿xqútaÚØ˜™985iâëûå—DÁÁ•+÷ìɦ`UÅŠææXkYs o‰éé±;¯¡(妌ÈEP¥2e„n™œœ‘‘-e-šM¹‹h,êgg{{KK¢Ã‡þyÀ¢1c~ÿýèQ¢]»Îž½_ÝÕi¯Çccß½#êßÞ¼]»ˆöî;·_?"SSccá7àNÊ’·‚ÿøCŠZ@;è«»€ÒíÈ¡[¶jU£F¹rìó†NÑä 3åòãG¡©Ú?ÅŸ¯²çDlê˜ü|¢k×"#%úé§C‡¾ü’hÍš³gÇû|CQ—¤¦fe%&:tûöï¿MŸ¾wo‡D‡ݹ³r%QzzvvR’tß¾}ýú•+U«V®œ““tR>öÚÀ€­­ Ea*T(ý„n™”„‹Ÿckki‰Æ"ebÂZüñÃ;ýòËÿþ×¾=‘¡!>WKéêÕ‡_¾$2dÁ‚½{‰òòòóŸadÅ –]ºˆ]h¼”o,ÊoyuîT¡‚Ôõ€¶{þüíÛÛ·‰æÏ?r¤_?¢Í›/]š9“(..55*JÑ›:t/33e²Œ ¢û÷7l š1c߾ΉŽ½{wÍ¢¼¼‚‚Ü\ ±xèÐüù_}ET¿~µjžžâ¤$¼±hd„ Ÿ’“æÆVl ᫾”œ««Ð-“’ÒÒøüUð_h,BI ضm@ÑöíÓ§÷îMdmmaab¢îª´WHÈÏžMž¼zuHˆ¢{°Ü¾e:bÖÚ—H>+.Žå­[ò¶ ôövr"ruµ³ÓîË%ÊŽ¼”úbrÉF„þ3Å­î¿Tsþ )øˆ»M›.^œ1ƒhÙ²o¿%zý:9ùùsõ7ê4=sròò²² ‹|äçÇoÞ\¹B¢áZöì™3§o_¢¶mëÖõñïø á-fÜYýi¼¡˜šªÈÔqööRÖP”··Ð-cbÞ¾MI‘²Íæâbo¯øõ®ÄD)jÍÕ¢E``… DÇŽ-\8hQÙ²eÊh÷uTõÚ°áøñ[·ˆ–.ݹóâEE÷æ«4<ÈÒËKÌÚ@³aEAøÈÅ  y[6kV½º§'ѶmçÏ?xðÏÿ§ô­ÌS´‘&Té;yœœìì,-‰† ëØ±vmuW£ùÊ—/[ÖÎNÝUh¾;wbcÏœ!ÚºõòåyóØH»´4uW¥ýâãÓÒbbˆV¬ ýî;¢ºu½½Û·'êÛ·^½)SˆŒ ¿»_ÃbÆɓ»w'êÓgöì;‰ÂÂÂã¢Ä;¦BKrrzzV‘•¿üP<ák]”œð¹¥bbâã1¾®xnnŽŽÖÖŠîõꕵ€æóõõòrt$:ztá‰zô˜1cûv¢¨¨7o¤\ÊBWÍŸ¿m[X»AÀÒ’¨_¿V­üý…îíâÂòða–±Ä ]†Æ¢ ü…sÖ,y[véR§N¥JŸj,€ºxx89ÙØ-\øí·mÚ¨»ÐU¹¹ùù2Ñþý·nýöÑ™3ýý·º«‚«W###Š}ÿþñc¢aÚ4™?ŸÈÕÕÖ¶$SœmÞ‘1Å_ç† Y°`ß>¢ˆˆèhŸíÚ±\¾\ìú@s ±(¿ì¸¿¼-ù<-Zøù•+Wtï’6¤„6Ø@ý^¿NI‰Œ$Z´èøñ¯¿.l\}üÈ&•F–ÎÌÎfk2®^öãD!![¶”ü÷ÁÚÚÂÂÄ„hûöéÓ{÷&rp°±17/ùq¡$ÐXKrrzzf¦Ð­ù3ii)U=DNN,=<ämùäIl,V”O±µð0*(‡ß˜¹}ûôé½z±u%™I>íÇìl™Œ¨oß9svî$zû6))#CÑ£ŒÅräH±ë€ÒE…ìÝ+tË®]ëÖ>”´ÅãÇññ7o-\xüø°aDII™™ ꑇT, ØÿÞ³‡M]û÷ßׯ/]Ênã)É}×®®ÖÖDþ9n\—.DúúzzX½X]ÐXKbbjªðÆ"çé)E-LPÐ-ïÜyþ<.NÊZ4›££­­……¢Ÿ‡bc¥¬ ´Ÿ‰ [Š`óæ)Szö$jÑ F)ð) ûö;wçN¢¬¬œœÜ\EÂG.6i"v}Pz¡±¨ XÊÿÈÙ¾}­ZÞÞDÖÖüƒWiÚSº)J‹>šøJëy«ëçXôo@Õ>%Eѽpi¤(tË»wÑXüœÊ•==ÝëÉ)jÝÃŒ[¶°cóæø)¾ðpö:8bÄ/¿FáÐ!y[êë5mZ­îÇÐ^QQ‰‰D+Wž=;iQnn~¾L¦þFRš”¢Ð]¼Á¸uëÔ©={Þ¨ â:|øòåljæÍÛ¼ùìYE÷æ· 8Àß ´‹JÙ³Gè–]»Ö­ëã#e- ¯_''GF-[vêÔèÑDÙÙ¹¹™™DªTo:þ×_D!!lÝJJãS¡þñÇØ±;®ÅªÀRþä¶ÎÎvvX°xÑÑqqIIŠî…{Í@ 66,4·eTÔ›7IIDïÞ¥¤|ø u]š«reOO4AZgÎݲ°Á8mZ¯^DM›úû£Á(¾_ݳçòe¢]»Îž½_ѽýýY®_Ï‹h#4•ÆòÝ;y[vìèíMdaab† S8FBÚK£%½!ü{<1³dg'ä™#Uu‰[‘3€’ÈÈÈÉIM%Z¶,4tÌößiib¿v 5%wî¼ysÅ ¢{÷^½ºt‰”æìlooiI4iRŸ>X™BUòòX¾/oK'';; ©ëÑ\¯^½{—šJ”——Ÿ/| R4@ -[²”&4ôÖ­ÈH©ëÑ|•+{xo,òÕÙž?—ªÐF]»² º‡©)k0nÛ6}z¯^DuëúúzxHUŸî3æ÷ß% öLñ‘ݽ{³œ4Iìº@ýÐXT ¿uø°¼-ÍÍÙ]Ë–5kbŠ3ÍÅo”X¿þÒ¥¹s‰?|ˆWc ©Þ,(øø± €hõêóçgÌ z÷.#ãÍRÚ×_wêT»6‘‡‡“¿ß¤/o GG[[4‹—››—WP@ôòeBBjªÐ½øÌbêÖMè–¡¡·n¡ýU<>³†Ÿ_… ..B÷zöŒ%o0‘•Åò‹/Xž>-tOÞ`ܾ}ƌ޽‰ªV-WÎÉIŠuSNŽL–—G4`ÀÏ?ïÞM”œœ‘¡èQæÍcÉoüm`¨î4_”vÈy[öéÓ°¡¯/ÑÁƒ×¯?}*u]ðO‘‘¯_'%MŸ¾nÝ©Sꮤ6lXÇŽAAâ/ê~äȽ{7ݺ{þ<û;Lè\F†L–žN´jUXØÔ©DS§¶o¿f ‘¡¡¾¾"3èëëéõîݬYÒÕ ÿÄ‹~~ÅmáâbooeEÄ.¯Îÿýö-QùòeËÚÙÉÛš_¢ä·ÞEGKYh;[[–|äSñ²²rrrs‰.^¼?&Fêº4W¥JîîeÊÙØXX˜š ÝëÖ-)km÷ï#ÐѼ¹¼=mm--MM‰vïž=»O¢ví&LØ´‰(66!!%EªzuÇ›7‰‰iiDƒÍŸ¿w/Ñ?ÿÜ¿?‘±±¡¡¼½ùÛ·³ `ùê•Tõ€ôÐX,>Dÿí[–ÎÎÅmÙ¡›ÕÁÁÊÊÌŒ(11--3ósÇ.¼\-Õ…kvILUÆJÛå÷âÏ[ÜJUuÞÿ¾Ä‰ žÿ”’’‘‘•Erã¿´W›6uêTª$Þñ¢¢< Ú»÷ÎÕ«ñ¯ >/2’ý¾ìÛwçΚ5D½zþïŠÇËËÅ…_©ÅÆÊÛ‚ß íìlggeEŸ””ž®ŠÚ4ËÍ›¿zEÔ©SƒUªÝ«^=–h,@IôéÃÒÌLÞ–ÇŽ]»öôiáHø´Úµ«TqwWt¯kפ¨t ¿bÚ©Ká F~Cà¾}óæõëGÔ®Ýĉ7b-U±\»öèÑË—DcDz)RW®3†·åstd¹k˦MYÊd"— *€©PK„å#‹Ç§h×.0°bE©ë€’âS\®_ùò‚Dùù…m|$òsyìXDÄÖ­D±±II¸¡¡´‹Šº¥··««ü‘xºëÆÇ_¿Vt¯úõ¥¨t…þÿ_×9RèÛ·Ÿ:u÷®Tõh€WWE÷ºzUŠZ@WñcçÎ,…7®ù ;wΜùå—D––ffÆÆRÔ¨›þþûôé{÷ˆ6nѦMW¯.^ÌþžÿPÚo,zy9;£±X¼ððÈȸ8"™,//?_è^òï<(_S±zuy[òµ€ÏŸ¿{ãäå«SÇ××ÃCèÖ| Ë{÷¤ªt_Õ¯cG– ݳfÍŠË–%Ú¼yÊ”ž=‰ŒŒ õq5\4S¦¬YBtçγgoÞ(º÷wß±ä#Î@“à¥TüŽ,ùMƒƒ}}Ý݉Üݬ­Ùß}ú¢¤ôc*”?_aJvQVêóWÕÅeUÎ×·d‹µ''gf¾{G´g›ÊRÝ *¤fçãÇo߆‡?ÿìŸÀJ›ÈH¡[ [;Pwñ)åîÝ‹Œä+WÊW­˪U¥ª ´o ̘!t-[Nž¼s‡ÍL‚ïÑÅsv¶··´$ªRÅÓ“O\(_[17WªºˆY¶iÃòåK¡{6iâï_¾<Ñ’%#G¶o/Emº)''77?Ÿhðà öî%JJJOç··f K ÅÐ$h,Š‚$ݱCè;שãã#U=ºÇÄ„­æëëå%ü ðää­[wôèÍ›R×¥ùš5«UËÛ›ˆ-è#ÔÙ³ÒUðo¼¡Ø¶-Ë÷ï…îÙ¿«VþþD£G÷èÑ µé&>"|èÐ… ÷ícKÉ¿ÃÒ’åÎ,寕 êg¨î´ËÖ­,§L‘·å°a-ZÔ¨A´jÕ±c7n^xñYZš››˜Õ­«ÈT. i‚ƒkÖ,WŽÈÄÄÈÈP‰w·””¬¬÷ï‰Îž}úôÐ!¼.—ffFFDžžU­êâHdggnîà@d` ¯odT¸ý‡2Yz:Qf&Ëk×^¼8s†è޽ׯչâKbâ‡oß?ÿüùÑ£DÍ›ûøt颾zàŸ’’XòÕÝÜŠÛ²jÕ’ˆÖ\¸ðèÑ´i4k&t¯ÁƒYΚŒOyðOe˲\°@èþyèеkD))ÙÙRÕ¥=š6õ÷÷öVt¯“'¥¨àó>dɧH eia!oÏiÓ¾úªY3¢è踸äd¢C‡.]>Á*‡O5½dÉß_¸@4iRß¾ÁÁB÷æ7Š,_ÎòÛo¥¨ÄÆ¢¨ø[Px8Kÿâ¶ôñaSiÕªåí]¶,ÑíÛ‘‘Eç¢VäÎ0U~©½dg õùâ6TõsD äs*Wöðpp :vlÑ¢Õ] ”V‡Ý¿¿e QNN~¾LÆþ®´¾k3##cc¢ÎkÔ8¨]»ªU{÷&²°06¶²Rüx99yy99Dwï¾~}íšøõ*jß¾»w7l ®X±C"CâQP'¾&PñÅrå\\ììˆ,,LM‰>|ÈÎæ¯P(::..)‰èò刈ØX¢ ªW÷ô”·—½=ËQ£X ¿` º€O}ºz5K[[y{ðFâŸ~¼?‘ªVFEM;»Š‰.ìÜyëV¢=üý‡ S¾¡˜šš••”Ħ¶Ý¼YýçÇóÝ»ôôøx¢«W££OŸVü¼@J÷ïËÛ‚O †‘‹Â(7åÜäÉ,ùˆ"¢ùóYvê$t¹s7m:s†(5õÃŒT”/ ÀÇÇÕ•ÈÁÁÆFþx/îÌ–yyRÕ ÜÑ£,ÇŽº‡©)[ReÛ¶iÓzõ"òôtr’ÛÈÃײ9rÙ²ƒ‰ââÞ¿OOWô(üF’ŠÅ®JEIð)QsrämÙ¿ãÆU«™›³;ß@µ.]ŠŠ:uŠ(;;//;[ýkñéZúû»»7h@4gN‡kÖ¹ºÚØxy‘ÒrsÙˆÓÅ‹OŸž8‘())331Qýçùï<{öÙ3þµJ >bQ>ÿJ•Ðö’ïÈ‘+W?&ŠŠzó†O8+Ÿ Ë?ÿd‰±ãºmôh–' ÝãÊ•bc‰6m ¹}[ªº´O×®+~ã{Hˆµ”ÌŠES>GG[[ ¢mÛ¦OïÕ«p†(™ÄÄÔÔÌL¢o¿]²äÀE×^´¶fÉ×^41‘¢FP‹’à‹9"oK++33cc¢6mjÕ>$üs„_ÚTn¬…ª.ºJ=f¤øÇ—XÏ{i9íÆÖ¼Sw£Iײ]»jÕz÷&š<¹U«¥K ×RTÖÇìϪU.ÌKôäIBÂýûê?Ïâòþý¸¸›7‰Þ¿gk/Bi |lÖì&//?¿ €hÑ¢;ΟWtï/¾`ÉG0€n™9“%_kK¾œ™,/è‡V®%êàÁ͛ר!a)PD\\ZÚË—DOŸ&$DD¨¿Ñ¤íI¤§§¯O4|x£FS§ \·î?°/jú"|Ù¶íÆ•+‰.\ˆŠ:yRýç+/ >~,( :wîùó'?_ÂÓ§,åmY¯^Õªh, ·gϹsD/Þ»÷â…¢{ÿôË#D. @M‚‚Ô]AéÄ'¿ß´‰å¬YB÷ä ÄÑ£W¬8r„èéÓ—/å¿›W·.û\ãêêàÀÇÉwáËøx©ê(9ÞïÓ‡åÝ»B÷ìÔ©Aƒ*UˆÆëÝ»qc)jÓM¿ü²sçÅ‹DaaááQQŠîÍ×bïÚUìº@qh,JŠ_*Œ‹“·eóæÕªyzyya.oyp¯ˆáòåèèÐP¢‚‚ÂÑnDHñŠìu{ذúõ'L jÑÂLJCÃéÓOŸ:D´ÿýû[¶¨ÿ|Mþ{¥ÿ©\¹"o˲eË”±²"rsSäœîâ|'LøóÏ'ˆ²³Ùˆaø'¿U«Xò;•ŒÄ­@UxC†àH ÕSºÕ¯Ï’OZúÕWŠaÁ‚íÛÏ#Ú½;,,"BÌÚtC×®ÁÁU«*ºŸš@ðÕý:vd)ÿ:-7iRß¾ÁÁDmÛÖ­ëã#Emº…¯½8bÄ/¿:Dôî]JʇB÷æß Ö­cY®œ%€@h,JŠ_2ák.­ï×/8ØÏ¨ðŒtS•*Gø£(W¿üó((P´’O¥ÔS­ÒøïãÀçݽûúõõëª{5ÐÕìß¿víQ£ˆÚ´©R¥[7á?y""âânß&Z½úÒ¥E‹ÔžÊftôû÷Ïž¥¥eg''‹÷ü@I\¾,tˆ ýüJ²&¨®á#H&Nd FåŒÏ’O]Û¼¹µ¨^‹,÷ícÍ’ÔfW´çܾå¥K,+VTôHëÖ;vó&ÑÒ¥;wòv-gffbbdDÔ£G“&Õ« Ý‹_çâ¿·šäÕ+–ü›iN޼=øTÁþùÃ;U®ìááà eº!!!99#ƒhøð¥K,l8 cgÇrÇ–¸á@ÐXT‰õëYʉ>¼uëš5‰LLŒŒtõ~E)åææçËdD'$5¡âsýòË®]/MœøÇ'NÞ°ŠéÖ-8¸Z5" á¿Mü}7!Aªº¤wõ*KáSí[Y™››˜mÝ:mZ¯^Šþ»âð)Q—/ß½›š®^=–üýT E•xü˜å¹sò¶,SÆÊÊÌŒ¨uëZµp¡ @|ÄLJ‡Éd¬ÁÈ/C ÅIÞHìÑ£fÍAƒH4ÉÉYYïßÍ™2v,QF†L–ž®þó+ïÞ}ó†¿u»veZš¼-›5«U«|ùÂ;™A1Ó¦­[wò$Ñ–-'OÞ¹SÒ£5hÀ’¯ÍÅW×:y’åœ9,{ödéëËRê[ù X::²ä“hñ !|J®‘#Yò #›7³œ9SÚú $&MZ½:$„hÙ²]».]"ÊÉÉͯÑÈñ±d?þÈ’O¡š”Äòüy–¿ýÆrèP–üuÆÕ‡^ IDAT•%=*)–Uª°l׎åÔ©,ù˜t>áC,»wgil¬è#æææåMž¼fMHÑO?mÙ¦DéPÄ AmÛ(º×ÚµRÔ 6°ä¯Ÿòy{»ºÚÛ­ZÅF0â[€8.ܾýüy¢+W<ˆUtïqãX¶i#v]P<Œ‰S©?ÿdÙ´©¼-‡oÓ& €èðáëן¥_{'%¥ègd|ú¸œ…K~¡\ÿÿoÜäS4ÙØ(V7h’¬¬œœÜ\¢yó¶l9{–hÛ¶ÐÐðpö:Ö¨QÏžM›úùè‹~[·™ËÆ‹fqøëÝÛ·,33Yòiø”€¼É_ïøjÂææ,YJÿ 4::..)‰è›o–,9p€èöí§Oß¼‘úQµ_ìsK@€o;ËÇ?áðF1€6á)~#‡ü©öÛ¶­S§R%¢Ñ£»woЀhùò={„/¨ÿ–——Ÿ_PPøzöë¯Ã†•)cmÍß}Š÷ïµùTâXl@J±¨R|zù—œš6­ZÕÃÈÇÇÍßß %÷òejjLŒúG¨iKº¹ÙÚzyM˜Ð¬Ù¼ylä–Î>~üø± €héÒ°°™3ÙÔµê?_©òõë´´ØX¶¶ŸÔ-$Dè–íÚÕ­ËÇ¡âxƒqþümÛÎ#êÓgΜ¿ÿ&JLLMýðAêGç#y#°|y–|ªU>’g``Ñä#v¼½Y–+Ç E]—œL4jÔòå‡Õ­;|ø­[wôèÍ›Déé™™òWô’ ½sscY©KþzÆ_çêÖeéïÏ’¿¾¹¸°”®¡˜Ÿ_Pðñ#ÑÆ'NܾMÔ´éèÑý…†¢ØFŽìÒ…gŽ/ñÃoÀÐ&üÆ‹^½Xò5oå›2eÀ€f͈5ªQƒ å½y“˜˜–ÆÞG*üž >”‡Æ¢Jñ`7 ÝcÀv‡#ˆãÕ«”4Kž––&&ÖÖDÓ§·jµt)‘¹¹±±˜+šmÜxãÆªUD—/¿x¦þó•:e²üüÜ\6"#ÞJ áÅÎ6äkBÉ:uóæóçDuê|ûí­^}èÐõëD2™˜k™HïÅ‹øøäd¢‰ÿüóÄ ¢jÕüõW¢ñãW­:~œèÖ­'O^¿Vw•êwúô­[‘‘¬‘¸v-Ѹq+W;F”‘‘•%“©»:íáééädkKÔµkãÆU« Ý‹¿ób TÐïß³ä3–ð‘ÝÅ30Ð××Ó#úë¯ ºv%rq±··²’²FÝpòäÏŸýñÇÁƒ|¡ áú÷gÙ­›Øu@!4Õ‚O‰*ÿÒÈ7ß´lY£‘µµ™›ˆ„ß«Q\J}ñSÞã‹•Å×!ŽâEUç!íÏþíãGöçÕ«ÔÔØXÕ½ši[ê鱉þ~ø¡I“Ù³‰Ê–µ¶vwWæ'òigÎ<~ü8ÑÞ½÷îmݪþóUuòÆ7”/^°¼uKÞ–>>DU«–+çä$qY:$5õÇìl¢)SÖ®=y’( `ذß'Z¹rÿþ«WÙˆFù—{J²³e2¢ Ž¿u‹¨uëñã7l ú曕+ ×¼w/**>žÍd MßïøùïØqúôÝ»D:Lš´iQ¯^³fíØAôðá‹ ê®R{ýï]»Ö­«èÔ¼°Ä'TÐ%wﲾȇ££­­…Ѻu“&uëFdddh(þغg޼͛Ϝ!zô(&æÝ;E÷æ×ßñ @ XcQ-ø2´üNøöí‹ÛÒÒÒÔÔØ˜¨G† «V%Z¿þÔ©Û·UQcéÅ¿XaMAPDjjVVJ QVVnnV–º«Ñ\ýû}û-QP‡Gýúâ—OuºbÅ… óç‹}3‰æˆOOÇT_¥ÍîÝ,ùTqÅã#qaTqqïß§§͘±~}h(ÑܹìBC‹*µn]»v¥JDÍšx{ŽÌÐT|í¶—/RS‰^¿fSCñ)¢^½z÷.-­ðï¯\yøðåKuW ÊàS¨þòË®]/¦ƒƒ¹9QãÆlн&MüýË—gkã¹¹ùø¸»;8”¾ Øü|®^}ø06–èܹððèh¢cÇ®^}ú´°ÁªÁúõkÕŠOp+ÜÂ…RÔ 6mbÙ°!˯¿–·G½zli«éÓ¿úªyóÂÏ­ œœœÜÜü|¢‘#—-;xèäÉ%K† ú¾Çã FŒ`‹jµr%Ëâ‹Üøñ:Õ©C´yó™3áá…‹Ú€0™™2YFkXió zzì¿¿›[PQË–•*uè@T¥Š“SõêDeÊXX8:­]{õ꯿=úè_øsjÔ([60¨gÏ5 ¯ÞÄĈæÍ ýñG¢œ6%(?]óáƒLVò5å Ĩ8ÞX\°@Þ–}ú´lY³&Ñ¢E;vœ?_¸VH#77/¯ €èĉëן=+LÎÆÆÂÂÔ´p$©¯¯——£cá—-˦ª²°0336&²¶6771!²²biiÉþÞÀ€ìø÷Úhüóø‡E§êãÛ%'gddg¥¤ddde%'§§ÿó¿“’ÒÒ²²ˆ’“32X£05•èÍÖ@MNNOÇ0ºÌÞ¿ÿÂ…‡ “366440 ªR…½¾ùúzy99±+llˆÊ–-SÆÊŠ¥µ5‘³³…‘±±‘‘¡!‘™™‰‰¡!‘…»¡9?¿   €(;[&ËË#JKûð!'‡]ØÍË#zÿž½nÅİ)^ùT¯11ññ))…#-ù P:Œ×»wãÆìçmd$t¯3gXÞ¸!U]šãûïYò äíÁ×2½xñþý/ §öåÜ»_xãͤI}û Ý›Om˧HݺUŠt ‹juü8Ë'OXV®\Ü–åʱ/M›úù•/Où©-…_¾RîB—ª.óJ}®øó÷ ÿ{Òœ™.^~PLffn®6O™×²e¥JíÛõéS«Ö!lŠR¾tù§ Z·î¨QDaa‘‘'O²†VFÆ·³²bk)Žß´éŒDzzzzbÜ/“åååäÍ{êÔäÉDII™™‰‰%?®¦ËÊã÷Tø%#"*ŠåÍ›,ƒ‚ŠÛÒÍÍÁÁÚš¨M›:u||ØÈ þ)TO¥zåʃ±±…  -øÚ³ü‚+O"¢rå\\ììˆ j×N~äß-’¢&͔ͲgO–ü{]q{èé±ët+VŒýÅDMš|ÿýÚµDññII¸ñBy¼±ØºuíÚ+ÕªU©’««Ð½W¬`yö,K¬r P¥h² ]Ä[L¿ý&tï¿ïСvm©êÐ^¼a£ÚõO¥Ï¾}†ekNŸ.¿¡È™šš™{{·lYüñ¿ÿ¾qã$rp°°ce¾Öå²e.üôÑÓ§‰‰©ÿy,-)NEi¬['tË!CÚ·—?q*€tfÎ4¨yó‘­ÂðŠ|é(Äo88¥ü¡|*â5k&LèÒ…ÈÀ@_C”Çg 9rÙ²C‡ GØ ÃIàßëð“( 4K…Y&%ÉÛ²eK??//"__]]z/û Œìì¼¼ìlõ7ŽÄÎöí«TéÒ¥øó–§U+Ÿþ{ÜvíØq6,W®iSåÿo»vݽ»e ÑÙ³‘‘§N©ÿù+m)ΈECÌH! >eNZš¼-›6õ÷÷ö&ª\ÙÃÃÁAêº Õ©ãëëîNÔ©Sƒ¾¾Šî=q¢5h—ÇY.Y"t† «W÷ò"úþû=4ª.ÝñôéË—‰‰DóçoݦèÞmÚ°üæ‘ËÐ)h,– ü¢ð;áGŽlÛ–Ý ÿñ#»ÉSøÅK唢u)šR_¼-i}ÊŸ‡4þû¸P”±±±±êþõ«.Kö¼ðµË•³³«X‘ÈÃÃÆ¦\9¢o¿­Woôè’ûŸ®\‰‰¹phÆ7V¯. Ï[éLccCCSÓ’<ÓDDùù%=| Ÿ,xËy[ò©&LèÓGøÚÊã#—-5ªC‡ÂÏ#ÂðF‰â—èt×Ô©,…¯E:yrß¾MšÞ%³jÕ×®]º£èÞ¼1ìí-v]ºÅRå÷ßYÊÄ=p`Ó¦Õ«¹¹±EØàóÌÌŒŒÌÍÕ?"MìÌÈÈÉ‘?~J¾)SZ´˜;—hþüöíûÈÄDŒQLLrrt4Ñ‚gÏΚETPðñcAúŸ·ÒšææFFTB¹¹%=|ΰ”ßÖïܹQ#__¢jÕÊ•ÓÕ™&@5ÆŒéÙ³aC¢*U<=…îů?Mž,U]Ú‹ïêÓ‡¥üo憆úúD«Wߥ ‘……ß»uUA»Ewôèß~;r„(33;[ø·aKK–6°ÔGŸ@øSªÄƲܿ_Þ–üèë¯Û´Ñµ5|0"”annlla¡þÆ‘ØùêUjêË—ÅŸ·Pžž¶¶åʱµ…_ˆ(^VVnnVÑܹ§OOZ¸v ºŸ¯Òž¼^2h,JëÁ–ÈÛR_Ÿ˜<¹_¿&M¤® t‘¯¯——£#ÑØ±½z5l¨èÞkײ|øPìºtGd$Ë#„îáééädkK´páðámÛJU—îˆŽŽ‹KN&š9sÆÐPE÷æsÌ|ÿ½Øuh34K¥E‹„n9jT»vDvv––ffìﻈ©è$mÂ_2òE¹ú?’¥ª&ÏyøH°ÙZ­Ú’‘‘IIÏŸ«ûÙý¯eË.\X°€èÅ‹ää/Ôÿݳ};ËM›„îѳ'›‘®{÷ààjÕ¤ªKwlØpüø­[DaaááQQŠî=>˪UÅ® @¡±X*ݼÉòôiy[š›}õUóæþþR× ¹ììÌÌì숌ŒøZ‹ìï5=#"âãïßÿü¹«ÒÁƒîÝKtútdä©Sê~4-­¬\\4¹¸{·Ð=/1¢m["öù @Ysæ Ò²%QÍš+–-«èÞdzLI».5ŠåÓ§B÷X´hĈvíˆÜܰä•òøð‹ï¿ÿõ×#GˆÒÒ>|Èɺ7Ÿ”–ä~«€.Bc±T[¸Pè–&tî\·.‘¹¹‰‰±±”5h&====}}"77kkœšž÷îÅÅ…‡åääåeg‹ý¬ ÷äÉ»w­ZuåÊo¿©ÿyÑÔôð°±ñòRæ'ê3kKùSЖ/_¶¬½=ÑØ±l $E}ñEƾ¾DÆuìX»¶¢{ïÜÉòÐ!±ë.#ƒ%_{Q&“·‡­­¥¥©iáÚ‹|IPÎë׉‰iiDS§þõ×É“ŠîÝ Ë~».m‚Æb©vêË[·ämioÏÞ€zõjÜØÏHø%LUÂPôÒªüã–LñG÷±ºž_(Ž»»­­§§ªþmJŸ99ùù2Ñ­[¯_߸ñùs—BzzNNZѬY¡¡Ó¦Édùù¹¹ê^4- ôõ ‰Ê–µ¶vu%Ð(³\¶LècÆôèѰ!Q``åÊnnRÕÚÄÛÛÕÕÞžè×_¿û®cGE÷~û–%ÖPÛ·Yòå«_¿Z5OO¢#ºt©[W¢²tÈöí¡¡wï…„ܸñ왢{Ï™ÃÒ×W캴‹añb¡[ΘÁ.T™šIY€fòð°µõòR#Iì°üî;¡{ð5TV®;ö‹/Ø”ÍRUšÅÔ”­É¼uë´i½zU¨àæfo¯èQæÍc*v} T~>ËY¦¥ÉÛÃÄÄÈÈÀ pjTþzÊyû6))#ƒhÊ”µkŸµQ#–ß|#v]š EÀ߀~úIèÓ¦õèѨ{#*î‡]ÌTÕªQR_”¯qý÷QTýü@Qþþ®®…SOª»¡$Vò)Q}üøðáÏ?%ñþ}fæû÷D«V]»öûïê?omÉ€W×  ­päË-[„îѦMíÚ•*MœØ§Op°Tu€&00Ð××Ó#Z»v„®]‰êÔñõuwWô(gϲä3*€úEG³>%q•*žžŽŽ…#¡dví:{öþ}¢cÇ®^}òDѽ,`‰ÅKˆÐXÔ0[·²ŒŠ’·¥››½½¥å?×\Ôh˜iž¼¼ü|> €º™›™›ùø88T©Â^Sôô´'÷쉈س‡(?¿ €ß–"¦¥K/^\²„(--''#Cýç«-èæ(þÏ ÔiäH–¿²òÆâ!íÛã÷@·ð†âï¿óÅDíÛ׫W¹²¢Gá‹>}XJñJfÓ&–|†:ù†ïܹN¢ààš5Ë——ª.Ý1nܪUÇ¥¤dddg ÝËÆ†åŠRÕ IÐXÔ(¹¹,þYè3fôìÙ¸ñçG.HíÝ»ÔT>A@ièæV»6‘ªÆm«*ãâÒÓãã‰Î‹Ž>wN¼ç+4ôùóÐP¢ó磣ϟWÿyjKzzÚØxy9:ZX89)úSÒOJÜ«Ká_YçÏÿæ›6mˆZ¶ ¬PAŠÚ ´àk/ÿõ×ĉݺõêÕ¬™â7ˆ'%±lßžåÛ·bÖR>œå›7ò¶Ô×g‹&¬\9fL§ND¶¶––|@P\BBrrFÑܹ›69£èÞݺ±ìÜYìº4 ‹ióf–üN´âñ‘‹}ú4iR³&Ñ?/iJYá?A5—fÿýxòRU—ŒÿûøÅ?G%IöxíîÝçÏãâÔ]@Q>>>>D*”)S±¢úLbçóçII‘‘DS§ž:5mѽ{ññ÷î±ÿÿs_W¢£Y#qݺ[·Ö¯':tÿþaÈÒÓe2>õii8?mÉ6m*UjÓ†@'¬[Ç’¯Í!¿à¸ik0véÒ¨QÕªRÕªàà`ccnNtàÀ¼yýûuèP¿¾âSžò[dyþ¼˜5€*<ÉRø›ÝºW«FÔ½;KPNA 1vìï¿=J”““›+üÆlOO–S¦HU@i†É15ÚÆ,ü‘eñ³l;:Z[›› ܲe` ÑŠ‡_¹¢‚% §§î @Q'N\¿þìÑ’%l½)6@éЮO»vD¿ývåŠ6ΔîÜ‹çϦ©©¡¡©)QÙ²VV..DÙÙyy99D))ÙÙ))DYY¹¹YYê®ZûU¯îì\½:‘——­­——º«Õâ_<ÝÝYöï/o>EÚš5&tíJdoommfF´~ý±c·nIY+ˆ¥re¢;fÎüòK"//gg[[Eòï†âÎbÖê4y2Ë–-YÊ¿¥pþüo¿mÓ†(,,<<:šèýû´´ÌL)kÔNOŸ¾|™˜H´|ùîÝ—.MšÔ·op°Ð½ÇgɯÓ?.A‰¥F,j4>rqÖ,¡{L›Ö£GÆDvvVVffDDÒMÊQþ0~E}zÔ‡ÔS§*›ª›rµ4‹OJJO'º|9""&FÝÕÕ¦M¥J­[è몛ԙ••——MÅF&¾y“žG”™ÉŠê®OW²}{ÖÐ]Ä †eyê”Ð= ôõõô §>ZºôÿkßžÈØØÐÐÀ@ŠZ ¤Úµ«[×LJèĉŋV¶¡˜—Dz_?–Û¶‰Y#”ü_~ã¡L&o2eØ@’Ÿ~úúëÖ­¥¬M7üúëž=—.EGÇÅñ•kåãs._.U]¥‹ZaëV–wïÊÛÒÊÊÌÌØ˜hÔ¨Žë×—º.€¢fÏf‹"kF;t…½½™™½=QÛ¶•*µm«ºÛº™vv¦¦ööl¤lÛ¶:_(èÜ™åñãŠaР¶mˆöïÿé§þý‰œœìì,-Ŭŧ2_¸$Ú²eêÔ^½ˆ¬­-,_š†ßPÞ§KŒPÐ~wî°œ9Sè={6mZ½:Q«VAA+JU—öãS¡N™²v-Ÿ V¸Xvê$v]¥‹Z¡ €¥ð7œ±c;v "rv¶··²’ª.€¢nÝzòäõk¢.^|øPÝÕ5hP@ÀW_éëŽ\ÔÓC"Å;}kÖìÓ§pJZ€Â;“»ta¹oŸ¢G¨W¯jU¢‹ÿý›oˆ:ujРJ1ky||ØT§'O.Y2x0Ѱa;Ö®­ìR ÉÉ,ù­h{öˆW)h†%KX _ü€ÏhbiÉ–€rNž¼qãùóÂ¥ÃnFFb×P𠱍Udyù²¼-MMŒ ‰¦MëÕ«Iöwl,…T)þØ¢"qÏCê絸ºJ·1cV¬8r„èÑ£˜˜wïÔ] ãînmíæFÔºuÅŠ-[ªêß.RWÒÚÚÔÔÆ†¨{÷jÕxû (>‚±wo–›7+z>ÒÆ?þØ£Ñúõ“&uïþÏ)ð@,¦¦ldâĉ}ú……-_>lQõêåË;;+{T¾6ŸcêÌ1jMħ@æK(ðÌÅsssp°¶&š1càÀæÍ¥¬M7LÊF.æäÈdü§!ŸËo¿•ª.€ÒE­Äû•oèÐæÍkÖ$òó+_ÞÕUÊš@• ”k0êë+w/¥¢22²²d2¢~úi×.¢ØØ„„”é@ˆ¡C "24Ô×72RC ©9hP­Z™›™›“Ä”y€Òƒe8åĉ,óó=RçÎùú]¹²jÕðá…S§èã[h9>r¨iSooE÷Vüßè&33ŒGÐ=mÚÔ®]©ÑåËìýuÒ¤¾}ƒƒ §@UÎùó,ëÕcù䉵€6àK_-^,tÁƒÛ· ,œÙ”óâE||r2ÑŠûö]¹¢èÞ3f°´±».€Ò—´Ò… ,…¯Õ³hÑÀ­Z±‰ÚJ·Ò_¡ú½{—––™©ø~eÊØØHÁ»Ptt\\r2Q‹cƬ[GtéÒýû11ª{|€Oñô´±ñð 0Àß¿o_õ7¤šÞÞööåË}ù¥Ÿ_¤">¨ê‘@ø¾fŸM8GG[[ ‹Â©‘Ο_±â›oˆZ·®]k°€¦ªPÁÍÍޞ諯ڴ©U‹hÍš ºv%zøpÓ¦1c ê#GvéR·®¢G‹“¢fÐ>‹Ѷmáï_ÕªåÊ99©»*[ýúÕªyzíß?o^¿~D۷Ϙѻ7‘——³³­­²GåKÚüü3Ë-X¾_Òz@[ÍËòñcy[òË—÷]ÇŽD&&FFR×§½~ýuïÞË—‰Þ¾MJÊȺ—£#Ká€4‰Ò÷R&7Ž%kï\“&ì–6m*W& ¹y³¤÷Ç/!^;·èÅñùJ=ÿÖ%Í8’¢uÅǧ¤£+äìlggi)VMÂ%%¥§geuë6}ú¶mDýúµjåïO4i›RÆÙÙÞ^un:”­¹xâÄóç¡¡D¯^¥¥½~­îª@Sèé±?'6jôÃl¬òw°+*-MUª²N–Û¶ýoá*Wf#¹vì˜1ãË/‰Âß=‹‹#úワ]#:xðÒ¥‡‰rsóòøeOU±²2771! ôñqs# ¬\ÙÕ•((¨rew÷ÂÿæSÿŠ‹ß˜!i ""}}}}¢î݃ƒ«U#êÖ­qãjÕˆNž¼yóÙ3¢õë½y“è̙۷£¢wŒS IDAT”ŸYT‹7ùHÄÆkÔ(WN¬£¿yÃrÀ–˜ê„ÊÎfùõ×,ÏcYü\$•*¹»—)C4n\ïÞýüóÖ­aa—©…23³³ss‰,ؾýÜ9¢eËFâ·}Ê7f ËU«X¾|)Eª†Æ¢V{ôˆåÚµ,GŒ·ÇÒ¥ƒµjEv÷nd$QNNn®ð9¤¡´P¶±èááä¤ÎúyyùùD›68qû6Ñž=aaD;6hP¥ Q»vuëúø5iR³fùòDÖÖ&&ê«´›‰‰¡¡‰ Ñäɬ1ô¿ÿ=Êo×§sg_߈‚‚\]kÕRõ£cì·vãk/5lÈrÊ–Ó¦±T|R>ÿJ•Ê–%Z½züø.]ˆfÎ4¨ys¢µk¹qƒèï¿Ïœ¹Ÿ(!!9Y™ÏD…ÀêÕ½½ÙR ÎÎì¿]\ˆjÔ¨PÁť𘪦è/jùr–ééª~dÐü·–O•É“/ý°eKHHx8Ñ®]gÏÞ¿OôêÕ»w©©ê®Zwñxcxà@6e8=×,¿ù†å»wb?芋Yþù'Ë‘#åíñý÷Ý»7h@tèÐ¥KEDDG¿}+eÚiÛ¶S§Âɾù¦S§:uˆ|}½¼ø¸Ä♚²üßÿXb#h4uÂÌ™,ûöeY|ëÈÛ›Må1xpëÖAADþyôèÕ«ª¨ÄôærÅæÍ*T ZºtçNþ1E>|ÈΖɈvîåÛoÙ¾Þ½›7÷óS|ÿ <=ëÖ-œÊrÇŽû÷÷ì¿NОž66îîDãÇ7hðÝwʇhPîÂ:ÖäÑ üÖ¯9sX;ÆrãF–Õª){dþ¾:sæ A-ZM›öÕWÍ›³)Ë_¼ Ú³çܹˆŽ½råñc¢””Œ ~ÿ4è>¥_ËÐÇÇÝÝÁ]`qr"ªZµ|y'§Â"ÿ½*Že9{¶zëmåééädkK4uê€M›M™Ò¿Ó¦D·n=}úú5ÑÁƒ/>|Htøðå˽|™€†£xŒŒ õõÙHD//¢nÝ‚ƒ«VeY­‘……©©±±ØÍrôh–‡‹ý ë~ü‘e§N,‹_M‘¿þú+›µuëñãׯ'ÊÏ/(ÀHzáøó5{öƧOýý÷Ì™_~)tïæÍ¥¬ @ÕÐXÔ üN¸ùóY.X o9s¾ü28˜hÿþ+W< ŠOJRtb5©¦*ýôUu?³¢çñߺ¤©´è”:7n<{¦Ì”uêøúº»®Åôî]JJi^©+##+K&#zúôåËÄDuW¥Õ¸q«V;FT¯^µjʯ…2n\ƒ£F=|øîÝ“'Dááññâ× šÉÄÄÀÀؘhÑ¢Ö­çÎ%²°06¶°PþxÊ5srX^¿®ü#ƒæºy“¥¿?K>EÒ¬Y,•_õËÀ@__O(8˜ÍÀsñâ#Úµ#ºzõÁƒØX¢óçïÞŽ& Ž&ºw/22>Sÿi ~a¯]X©’›[™2…BÞ@äwf{y¹¸ØÙþ~h–W¯Xþò Ë+Xb®P þ.T¹²›[aÎ;th«VDOž°ï7aawîDE±×Õ¨(¢‹Ùšô|J6(ŠÏhÃg¸iß¾^½Ê•ٚ•*ÙÚZZòq#âãŸÃ-bɯ¿deIõˆ ùïzzD3f ˆ6Áùù±™„á“îcò}åð+µ|†º#GäíÁg*ákÇÄÄǧ¤HY£vKOÏÌÌÉ)ÿyÒV#üslÍš+–-‹×1qèî÷½ñE_wðв,_^ÞÛ¶]¸ðàѰa¿ý¶o‘"m±’]`PtïOo_üïvñÇ÷ÂÈç‹ÿ­OœGçxbbV®=šÈÑQ±5h¦Ný믓'ÿ¯½ûŽ®¢ZÛþÞ ‰Iè5Ô€:„^¥†"ÒA)"‚ ‚‚‚¢‚^kA/rEK‘Ž BoÒ!Ô Rùþx×þB9É™™3''åù­ÅzîMfö위™wö»9s–/çíiÊ/Úµ“Vº‹½ñF¯^ÆÇ¹t)1ñÊ W¯¥K‡ îÝãåôÎ;Í›OœtéR©RûöÆÇ9{öòå„ dI#ð?þ´e”ÿ¨5b&H¾ü²¤§§½¯¬öPÞ¾ýÀ³g½{Oœˆ‹öï?yòÒ%`ß>ÉË—ããÙbÕ<îînn..@ñâAA~~@ùòaa@ùòÒb´lÙ°°€ù¸¤|<$$ À××ѳ7‹úͼi“¤ÚÃLí*¤z`ô™ªC÷îY¡  êÜù½÷rj^yÇìÙ¯¼Ò¥ ЫWóæF:c襶Ž8pàäÉË—;9عóðás瀿ÿ>räÂ…ü×bUýûV=Р ±êÁØzõ*W.Q¨TI|È™VÊ))’ªSÀ´i’lIŸ·ýûß’jO4²/õH|ñâŽG~¡ö`Wë(wÙºU²qcû^G5¹5þ`)é1c†äøñŽGÎca±@êÖMRJ…Z´l9eÊÂ…À¶m‡Ÿ>­í-–…EeÞ¼áÃ;v ˆŠŠˆÐ~Þõë·n%%µkúùç™Oàå NšÔ³gæÌFýý÷Å‹11ÀóϯX1nœœž®n/PÁ1p`½{KëSµc‚ê}ÖÛ[Z<»!¦žTU{mY¢ž!5JrøpI{?A›5µwã¡CgÎ\¹’ùä´*´Ÿ>-ÿÿÌùÿê†ùR¸T7ÚóÕÒÝÏÏÛÛÃðó“'ÕŠ›€y0¬X1i!,%Š“‚áO)âㄆúùIaÐÇ(RÄ××þecG;wNRmÚ Rcb$ÓÓsv^y ‹¶Êé¢V·nݹ“œ œ8qáÂõë™^Ž?þÚ5y½u ˆ‹‹¿}¸vM:Õ¨^»vófR’yóqssqqvýý½¼€à`yÿzâ‰"E¼½eVoo).œÙZY=øP¾¼¬ V-˜ƒ…Ä‚¡ukÉÿýϱó((æÍ“T{’mÔnjA‰ãþûž,™4IRýþ°—ùó% ²ïuH4o.©`,8XX,ÐÔ^":X;òÐ!ùHƒ¯¾úå—@JJZšµ¦?|CÔœB¡Þ‘Œ³g{áÏ>…EË7 ;wŽŒ¬XXºôå—{ôÐ?ê¬Y?ü°e ðÞ{ ¼·GʯԊŒ?ùä¹ç€¢EýýmiY¹aÃéÓ[·cÆüñǤIÒsŸ·1ó¿NÂÃÛ¶¦MkÙrÒ$y÷¶å7„*¨T©"-õQ¿MÔžFšaSÁ¥z  ©žÐ·åÑ‹œ¥ ój…d|¼ÜW7ÖÝ2--###HLÔöà”««ÜÏj.__//77YQã丸8;;9¾¾R TÃÂ…}|<=3 ‡9³¢&¯Qk¬öî•ܱCRÕÿ¿x1gç•_±°h«ÜZX4‹zU?II÷d}?@=(¡Þß¼¼<<\]3 ‹y‹j™üõ×’_}õðÇ)R¿™Õ¨(‡M%_S½*T ÿþqÜ\ò£§Ÿ–\¼Ø±ó ¡þ»µZ5É7ì{½Š%ÕƒvzzØ‘vëÖI¶jåØy8 ‹Zùò’j—0ëÝ _~ù›oÖ¬æÌùý÷íÛ³?Ö^…E=#ô¢úܾ}3f ”)¬§µžÚ”¸OŸ©S/֮ݽ›ÿ¹GùEãÆ¥K?ýôÎ;}ûÚ¾GÔo¿;ö¿ÿ'®[÷Þ{r&/® ¡ì5o^ºtãÆÀÇ·k÷î»òsc˲]»Ž½p!³¥—1?ÿ,m|&DŠz'¬__²woIÕDZû®9D™Ô CU0Ì*OžÌÙyt,,ÚÊXañÃ%»v•,WÎs#­ÔÞHª¥üܹ’+WJò‘Á‚)4TrÍɪU7—üDí9ªþ»Òúž€d µ×ú”)F/©¶*Ééͦºt‘\²DÒú}Òbÿ~IµÂ]µž-xœ=r¤'$Uyë¦MëÓ§ys dÉàà"Eì5/2‹z’ô­·–.ݸQÿùªÐòå—ãÆuë–¹'Q~°e˾}§O3g.^¼y³íãuêT±b›6À»ï¶hñúëò÷ÇÅ%ófÞÎvíÊ—oÙ˜5«mÛ©Sm/(ž:wãP«VÅŠaaFGQ7ºÞxÃøLˆ¥~êÕ#dcÆHª½oÔ? ¾üR’… ‚).NR=©ûé§’#FHª’%KJvî,9y²¤Úš?GT¨ßÛêAßÚµ%Õ `µ“*x‘9îÜ‘\¶LR­Ôâ ÉN$ûM’Å‚Mýž«WOrêTIõ  i£þÞ©ÂÆ“OJ² ˜3Ôï•¶m%ÕJ\þ~±„IÕâW=r”ÓEeùrIõ÷néRI3›gÏJª¿OêÜ‚[PT¸b‘¨&€‡KªVjY[¹rÏžþºwŸ>ýÛo-cï=µ¬ˆÌ{,>ÈÌ=³;S­gܶíÝw‡ jÕ*SF=§ÇåËññ‰‰@ÿþÓ¦-] ìÞ-+mˆò2ÕªiéÒ©SŸyhÖ¬fͲem÷¯¿ÎŸß½xñEi‘š˜˜’¢þYEyGÿþ=z¯½Ö¨Ñ‹/ÊÏ‹“ e%%Ý»—š 89Ƀnn..FGS…u#ŸÈ‘Ô;§j£R˜Ô[Ê]Ôžaª'ÅÑ£’ÇŽI?.y䈤ڳG=MyW,ÚÊØŠEµ êƒMš-ñó“lÑB²Y3Ɇ %U AWW­WÎßÔë¹k—ä¶m’jïÕõë%ÕŠ)"[¨G®õô„*HT³ùK—$Y¨Ï]ÔÊ5Õ‰$ï5«Î]T¡Ný¼çvêû­¾ÿ\Éh™jYkïÖµy ‹ô€nÝ$Õ“ÃÖõî=kÖO?Ë—oß®+ö*,Zþ ‹ZÎlÞ¼ZµÒ¥U«^½o߬¨Z—œœ’’–Œ7{öªUÀ÷߯[ ðÝ„ò2µçÕòåÓ¦õïDD”-kFÿƒ¯^=z1â÷ß_{ ¸z5)éúuÛÇ%ûpv–Â᫯6l8r$0hPªQ-Tki[[îŠ[·$+U’TOTåfjm®zböÑŒˆ,UJ’7ʵQ…Aõ> ùR{¹¨díúõÛ·ïÞ""^zéóÏøø[·ÔŠ­–Ó…Eeòä=¢¢€I“¢£›41zÅL11Ç_¼L™2þºuÀÖ­û÷Ÿ9cû¸DŽ\¤ˆ°rå ”)jFëçøø»w€‰ׯŸ>ذáÌk{ÕRÎ ññ fÌhÕjòd N°°5=«G©];ÕïgÕª‹(?QOЪ֫j%d™2’ªð¨z/¨V›jå€Jõqµ’@uè°u#ûѵéª%ÒÍ›ÆR=Š¢Zí¨lê‰è+WlŸ;\,,Úʱ…E½TKbõ¾ªø ’T+ËÕû«¯¯¤¿ÿÃã¨÷Õ¬þªÞÕû¢Z¹¤>~õª¤zÿR©PïwjÅ4É#"""ÊmXX$ Ô?$ÔÖ[;,X°aþ}ÀˆŸ}¦Ê’Ó[0ÓÛ Õ2ó ‹æ–Í+,ê[{¨ù}ûí¨QÑÑ@õëW©bìÊ–¨BãÊ•ýuì°zõÎÇŽ‡9så W6RÞPºtHH‘"Àï¿ðÁ€@HH@€º½b‹û÷åÏÂ…±±Ë–ÿú×öí³g©©éé©©¶Oú´hQ¦L£FÀôé²7fáªñXîóÚk’|àØyåj¥Ï£­Ô ÿ¬Zå©Ã\áGù ‹¶Ê[…E"""""s°°HÙ9RòóϵžÑ¹óôé‹kÖìÞ­- -qTaQ]ÇÛÛÝÝÕذ᭷ ""J–´çH÷îI Õ³g/_NHîÞMNf!…r;µ^Ù²aa€««‹‹-{ì=êðák׎Þ~{Ó¦>ö쉋{´µ4™§hQ/¯"E€W_mÐàùç®]+UjÛVÞÍ}‡7Ó¢E’ýú9vDD”¿°°h+‰ˆˆˆ¨ ba‘²¡n«ÍÎ5²vÆ¥K wîµj½üòìÙÀ·oKÃ-1³ª>_' ÀÇÇÓøî»Ñ£»w—½UÃ1"Êj%ã/¿=ºz50cƶmsæÈžŒññŽž]Þåììääì ôìY¹òSOcÇÖ¯?lXn_™¨Ì+9j”$Å ""3±°h+‰ˆˆˆ¨ 2qÍå?j/§aÃ$ÕÞY )\ØÛ˜1cÈöím¹¶*¹eò¿2 ã9“^×Z>>NnŸ˜x÷.бã|÷0sæo¿mÛæèY,jÅ\·nááíÚ«W÷í»h0fL½zÏ>+…0ÿœz¯Ë»éä$Íž;uªX±U+à·ßž~ú?ÿÞy§Y³qãr{A1-MrÌÉáÃ%YP$"""""""¢Ü…EÒ@íµ8eŠÖ3úömÒ¤jU ]»:u*W¶×¼ÈliiééÀ¤Iß¿nðüóóæ­Xܸq矧%ÊY¾¾nnÞÞÀ¨Q‘‘7°t)ðÆ „„øø;¾çètqqvvuºv oÛøã>}.fÍjÝzòd B…€{¬ÀVï—æ8qB²U+ÉO>1kd"""""""""3±*éàì,¹e‹dýúÖθ~ýöí»wZµ^yeÎàÊ•„„[·ì17Ë-DÍo…ªçÖÇwô‹Ö¨ù)âííáŒ×¹s£FÀ¨QmÛÖ­ xzÊÞsD”óÒÓïßÏÈbb.]:xøùç#GV¯–/?vlíZ ))5õî]GÏÒ|Õª‡‡ËÊÎ6m€.]deb@€§gáÂö¿þŠÛ¶9$&Þ»—’ôîÝ¢ED„ÑÑÔÆcÇJZï @DDd¶Bµ[¡QAÄ’éž.9x°dLŒ¤‡GVgúúzz_~9rd—.@÷îÓ§/\ddddd_ӻǢyåq[ç•©‹j%ãœ9kÖìڌױcÆ@×®uꄇ¡¡EŠøú:z¶Dƒ³³´üŒŒ ­^=3'MjÜø…€5kNÚºزåܹ]»€¿þºp!&8þÖ­K—=û¬ùøÈJͺuÃÂ""€úõ‹{òI ]»r墢€%üüBCsn>ÉÉ))iiÀÛo/X°~=ðå—¿þºs'Э[“&UªØZXŒ‹SW1k¾DDDDDDDDDöÄ‹dƒqã$gÌÐzƨQ_}µjðõ×ü±cGvGê-,ZfdÅ¢íWÕ>B^Y±¨õê‘‘eˆ…;GFVª´iS£FÙ²@åÊÅŠ®®\áHäXª°¸cÇÅ‹{÷ÇÇÇŸ> œ<™pþ<ðÏ?7nœ9œ={ëV\ššžnÆ¡¡ÒºµL™Â…‹—,Q(W®H‘’%ÚµCBªVÍ\‘¨ §Ž²k×Ñ£.cÆ|òÉŠÀ‘#gÏ^½šùù€ypæèÑE‹^yEövÔÿ¾aƒdóæ&M›ˆˆH®X´W,QAÄ[üdƒY³$;t´~côßÿ<¸m[`ëÖC‡Îœ‘µö^9cK«R{ŒfŸB¾½Èþ†¹z<áï¿ÿùçâÅÌ|óÍ%K֯ϼáàë ùùy{>>îî®®€››‹‹4ÚÕ{[Þœ´Ò AÑ¢«W[ܵªZGÑ~5½s{ðØÇÏ3o~Ù_GïõÌ#W|øºÙÍÏÒçýXÿþíÚ½þ:P¬XPP¹rfÌÒ¾Š÷ó ‘l×.ëãÒÒ22ÒÓ;wRS“’€[·’“åÿß½ ܽ›šzï’’‘‘š xy¹¸xxþþ¾¾€··««§§¤—àááââîžs_§^׮ݼyçðöÛß|³~=ðý÷ëÖÅÆf¾¿=*>^Z}8pòäåË@DD¹r!!z¯Ú°¡¤··ä;Æ¿"""""""""ûca‘l‘!9`€dl¬d@@Vg¸º:;;9ÿýïK/EGM›¾öÚ¼yÀÝ»))))i}­áÃGÌ¥y…zÒùüùë×oÝÊÌÇ9¶°èí]¬ØÖ­Ÿm´°h¤pg©ðeíx=¯Bn-,š3/ëÌ,,:;;99;AAEŠ+¦.GÊ ¸€??// (¨paU^Ê \\äëó÷ww÷õÍÌü"--==#øæ›U«vï¦MûöÛ›7¥õ³V6ìÝ{ê”Ñ¢››d“&’ü¡w""""""""¢œäÀ&c”œ?/9|¸Ö3ªW/Y28øøã#ºtÑw5¶î%¢Ü xñàà dÅmÖ;ÍfmÕª;ŽjÔ2ä“O€W^ùüó•+óç¯^½yÓüùt))iiééÀ?üùçþý@ƒ#GΙL˜ðå—«Wë/(*›6ÅÆž:eëìZµ²u""""""""¢œÀ‹d"µGÇ·ßJöëgíŒþý£¢ªU6m:pàôi`áÂuëþþвBéácN•õ®œ2oÅì*dßWÀèèæ®(|œõyY>"««Z>ÚúU´~Ù¤ÿµ3ô¼ ¶4óµçºàç¥eŽ–Wšó}°v¤úX™2aaÕªiéq11'NÄÅÉÉ©©ééÀ‚ü±gðÝwk×îÝ ôèÑ´iõêÀ˜1=z4lT¨P¼x` ñë4·o'%%'óç¯Zµg0{öòå;vW®Ü¸‘˜hÞu¶m;xðìYàÞ½””´4ÀÃÃÍMÿ^²,,QÞÀÂ"ÙÁ /Hª½£Ê–µvÆ_ Þ¡{úôÅ‹À¾}'O^¸`Ï9Ù¦lÙ°°ªUŸsìØÅ‹<55--##s?•5j”/ ôîÝ¢EDUµ*P´¨¿¿——ñyäuªÕòß9rþ<°dÉúõû÷Ë–mÜxà˜x÷îí¶Í•œ,Å;>wˆŠªQ£L½£DDHªfªöÞ}˜ˆˆˆˆˆˆˆˆÈÉÔîyÑÑ’Û·Kzzfu†Ú{ñ§Ÿ&Lxæ nÝqã¾øˆ¿};)ÉÞó%"Ò¯lÙ°°êÕõŸwíÚÍ›IIÀ… ×®YÞkÔ²ØXYá¨ò­·æÏ_»hÕ*2²|y kׯ«Tš4‰ˆ(]:÷íÙh+µ"p×.) ®\)­dþyóæC‡Ì_‰¨×Ʊ±§O-,ªÕ¶Í›K~ÿ½‰S#""""""""2 ‹dG±±’cÆHÎkíŒâÅ}}/¿5ª[7 wï÷ß_´HOÏÈ0»‰¤1¶4’´'{·‚5úu8~^–ÐÚòT>R¨Yßùìçk¤aéýûú^­3ÐÿYKÇZ›Yæˆf´\Õ2?3¾nn..îî@‰²Ç¢^{öX^©¨—j¡úûïÛ·=š™Jxx‰E‹W¯^º4ШQõê¥JµjU¬/äﯧ…¬}ݽ›œœššùúlÙ²ÿ™3ÀÖ­’»v=zþ|æ×Ûlܸwï©SÀ›o Êƒú©–¨,,QîÄÂ"å€yó$4<ØÚ:Õ®]±"ðâ‹]ºDE}ôóÏ7ÚsŽDDÚ”*8;;;ëßKˆ‰9~܌¢5Gž;wíZf~ýõÊ•»ve~¾~ý*UJ”~ÿýƒÌzœK—âãoßÎ,øy{{x¸¹þþÞÞ™…ÉÄÄ{÷RR€¤¤{÷RS'''' yóZµ¬7Ä>úèÇ·mfÎ\¼xóf[¿úœ§V’^¿~ëVRèç§¿Em›6ö˜‘YXX¤4r¤d’µjY;cúô¾}[¶öì9yòâE`Ó¦ØØãÇí9G"¢ì•-[¬˜‘¨ÊÞ½'NäDaÑšÀ@m{3>|æÌÕ«@ÿþï½·t©öñ+W.U*(ز¥V­áíïä”[ÖN£özT+,;wnÔ¨re½£/.Y±¢ä±cfΑˆˆˆˆˆˆˆˆÈVNŽž$÷îI>ý´äÍ›ÖÎP·™¿ûîå—{ôBCýý-©Úžò¿²J½#ZϬ´7ãó²oš=¯G?ªu.f}õ~7ÍþiÊþëÔóŠhËì¾*ý¯¯­×Õ2(S&,¬jU}#=hïÞ'.]2~¾YŠõó³~œÑrŸÞw'gg'§¼\XT6m’½m£Z¢å.,,’œ8!Ù¿¿¤õ›ÏE‹úúzz+V¼ù怀ŸŸ——‡‡=çHDdY¹rÆV,ž?õêÍ›À•+7n$&š?/½BC|}í7þýûúJ‹ÎÎÒ:5¯Û°aïÞ“'m……E""""""""ÊòÁ-<Ê»~ûMræL­gT­Z¢DP°`Á+¯ô긺:;;;Ûk~DD™<<Üܼ¼dåtéÒúω9~<.ÎôiV¬XP¶‹òG/ÕT+'§ü±bñÔ©¸¸7€3g._NH0:Jóæ’ü GDDDDDDDD¹ ‹” Lœ(¹q£Ö3Ú·òÉòå™3Ÿ{®S'iÕgßæŒŠí£å®– önµjï&¢æ¾^j…Õ£iïÖšÎ*»y<žæ\Wë÷‘Ô\; IDATçÁëZûóøÙ¶|Wµ}EZ^7}óyø¥KK T''''#åž½{Ï {+*aa¹«ª³s~X±¨lܸwï©SFÏ.\X22Ò¬ù™!Ý£¼+-M²woɳgµž9|x›6µjC‡¶oߨ‘=æFD$Œ¶@UöìÉ]+ʵg+Tý+–0s§M›bc¶D%"""""""¢Ü……EÊE.]’lß^R{¹?2¤]; mÛ:uªT±Ç܈¨ kÚ´V­.]ôŸ§Êk±±'Nä†Â¢*ßiÝc±P!c?ý+óG+TE­XÔ[`}XëÖfΉˆˆˆˆˆˆˆˆÈV,,R.tè¤ZÁ¨V4fMÝö^²dìØž=š5Ë—/QB>gnëPÛ[—fÏø¨f´5?õ¾f½ÊÖšqÚ>Yµ.µÖ>Ô>¯ƒå‘ÿ“}ëP£×ÕòÝÉêúZ楿l£ýoÃýû@ddժ͛Å‹U¨ ïJ€ì¹ܼyçν{úÏ7[` ŸŸ·7àîîææâbýx£Å>õúi•ß ‹ññ·oß½ 8pòäåËFGiÐ@ÒÛÛ¬yÙ‚…EÊÅV¯–1Bë®®..À/¿¼þzß¾²‡˜Ú©ŠˆHÒ¥ÃÂ*VFîÞ}Ö,ããìÙ“ÛöV´o TEoaÑÉÉÉ)?í±¨lØ`Ë^‹nn’QQf͇ˆˆˆˆˆˆˆˆÈùðå?_-ùá‡ZÏ )\ØÛøå—7Þ0(\ØÇÇËË^ó#¢‡åíugþþÁÁÀøñýú}ù%àêêââîn|¼½{sßÞŠ~~ÚÏ©V¨NNùkŢ½‰ˆˆˆˆˆˆˆ(?aa‘òñã%þYë%KË—¿ñÆ A€§§µc[ˆmvi¼5¦VFç•3_¿9ózü£ZÇ4ç«1ëºÆ_íìi¿nF†¶×A+³Ú,ÏÂËËÓÓǘ0aàÀ9s€€_ß}3µ$&&w­X,V,0POaÑh¡XïÞ‚ù­ª²mÛÁƒgÏ÷Xo쉈ˆˆˆˆˆˆ(w`a‘ò)V}ûJþõ—Ö3ëÕ«P!, X¾üÍ7¼½­‰¨`pwwsóð&L0`öl dÉààÊ•m7==#ãþ}`ß¾“'/]²}<³èm…Z¨±Ò¢‘=óc+Ôäd)(îÜyøð¹sFG©^]ò‰'Ìš‘ùðåwïJvë&yö¬Ö35 /^øþûñãûõ<<ÜÜ\\ì1G"Ê휜œ^èÙsút <¼D‰ÈHóÆ?vìܹk×€¤¤{÷RSÍ×(77gg I“ˆˆÒ¥µŸg¬*W,>jãF[öZT¯LË–f͇ˆˆˆˆˆˆˆˆÈ)Sk€Ú¶•¼rEë™mÚDD”)üç?/½ôÌ3€««³³¬”qt«Îœj¡jï–®¹g^–¯–£MG-_ÁöQ¬·µ¥Éªñï¦už©V®e—Ù_ß¼WãþýÌxC‡vë6y2P·nåÊíÚiýÊ´Û»÷ĉÜÔuæÌ‘#Û·j×/VÌþ×Ó[XtrÊÙ‹eÊ„†)’¹ç¤‹‹ú=`6ØRXTXX$""""""""ÇâZ-ÊŽ‘lÝZòÏ?%¬]¯^x8˜øÂ =zÏ?ÿÙg?þ¤§§§§§Ûk¾Dä(… }ûvèðòË@óæO>Ù«—ý®sìX\œýÆ×jÔ¨nÝê×úömݺfMýç*dlÍ¢¾²¢ýW,vèP¿~x80cÆóÏ·k„„<ØöÆÛ·ïÞV­Ú±ãØ1`ΜåËwì<}Zûc+YÛ·ïŸ.]ʼN‘"¾¾žžzGá^‹DDDDDDDDäX\±HùȾ}’:HÞ¾­õÌš6ˆ>þxĈèèœ_9CDö×¹s³f:5l8t¨ý¯ãØ‹={6kV­0eÊàÁ¶¬s3Ú U­HÕÊÉÉ>…ÅaÃ:uªSøï'NìÙóñ‚¢¢ }}ú´jU£°qã'Ÿ |ýõ„ ÑÑYŸ§•ZÁ¹yó¾}§O¥dIÉðpã3!""""""""2Ž¥ʇvìlß^òέg>÷\Ë–5k3f Ú¥‹¥ݶ7<5»fδ(5JïëaÆ+¬%-¿.z¿[Ƥfͬëjm%šÝ ,ÍDKKSK­Míñ]´üý³œ­Z5hн;зo›6¯½–Õ×ní5Ñ.%%--=8xðÔ©Ë—õžm;µ2ï³Ï^z©sgÀÉÉhiÐ6z ‹ÎÎæ>Ð1fL Ó§Ö¶­þ©:¾kׯ«T¶oÿâ‹#2 ¶Fٶע•‹DDDDDDDDä,,R>¶u«¤jv˜’¢õÌ^hÛ62˜;wôè§Ÿ\]]\œí1G"²—V­ê×ïÞ:´S§÷ÞÓ{vF†¤ö•ÏÊáÃÒ:39955'[*·lY»v¹rÀW_mÞžjOJ½Õ u„>}¢¢€É“lÑÂöñ??ooww`Μ±c»vÞ_ –®®..z^çccYX$"""""""¢¼Š…E*V®”ìÓGRû­þ~ý¢¢ªW-?¾_?ÀÃÃÃÃÕÕs$"³´jU¿~À°a]ºL›ft”·ß–ôóÓ{æž=Ççd TµBqáBiõéîîêš„Ðß Õ¶••¯¿Þ·oÓ¦ÀøñÏ<e|­†•«üñ¯  /äïoý¼S§âânÜΜ¹|9!ÁèÕ›5“Ì ßi""""""""*HXX¤dÙ2ÉÁƒ%ÕŠ$ë:wŽŒ¬Xøé§‰ ||¼¼<<¤I¢Þ?€¾V”ÚÒÞ­SÍkšýk3-3µ¿.ú›˜f7š–WKï÷Qïëaëüô¥µ£ÌýikÕªAUPÔ¿BQQŃŽsüx\œÑ³µ<¸}ûÚµ &NìÑpwwssq1ÿ:FË}jOA­ôîm«æõÞ{Ï=צ 0n\ïÞMšè¥íjÖ¬P!4X½zæÌAƒ€Ê•K• ²~žm-Q –¬SÇèDDDDDDDDDF°°HÐÂ…’C†Hj_ÁØ¢Eµj¥K?ÿüƃIk{é¥N€Ûµ«UËØÜ§}»5êûµ|ù´iýûõëW©R¢ÄãÇmÞ¼oßéÓú °ca‘ˆˆˆˆˆˆˆˆr ‹DøõWɧž’LLÔzf­ZeÊ„„ë×O›6|8PªÔOöljNKLýrk³M3çe¼çã×0òz˜ÝÔRªëh}ýd´…©–ŸC­ß/èÞ½U«aÀÛ·ãÇç©ÍÌ™’ãÆYþ|¹rzGÜ¿ÿäÉË—´´ôt3ÊT:5lX©°uë矴lY»¶þYÙÎøŠÅŒ ½+-µBuuuqqræÎ}õÕnÝ€§ŸnÑ""Bÿ|,Sï÷ª@7p ä­[¶ŽìççííîüðÃÛo?ó ^¬Xæç¯_¿u+) 8p@~nŒiÐ@ÒÛÛÖùiÁÂ"Ñÿ[¿^RµßX®T),,0عóÃGêׯZÕ¢üÈÙÙÙÙÅ:´{÷7Þz÷nÕêÑõ…ÚMŸ.ùê«Ùçï¯wdOO77 ,¬hQ??ý3S…'ÕJó›o^½GÌpy̓v-œœn…êîîêêì ÌŸÿÚk=z]»6n\¥ŠY³»yS²];É?ÿ”üï%UsÕC‡l½’··‡‡›[fñÑ©6ØÒÕÍM2*ÊÖyiÁÂ"Ñc6m’lÑBòÚ5­g.ìååî¬[÷öÛC†={6mª¿¡"€››««»;0fLß¾3fmÚÔ­Û¿¿ÑÑþõ/ɉµ¯ Y•*¥K›7úé°aÀäɶh4jT½z©R@历MšDD”. ¼ôR þùÑGÏ=¬^=sæàÁ™Ÿ7WJŠäõëzÏôðpssqÑE½ >ÕÞ‰êz NšÔ«о}½z+꿾eññ’­[KnÝjù¸£G%ë×—üùg[¯ìïïííáüøã;ïôéT¨P¼x` ÷Z$"""""""¢¼ÅÀ­B¢‚b÷nIµdÍÉ›ÙYæââììä|ûí˜1Ý»eˆ„3füðÃÚµ²§–åV‰F[•êmTh¼%ª>ö—–£-Ï@ë¼l{?;ûëf~Vëumû:ô~u™W³~Ý[—êý>ùúz{ûû& ôÅ@¥J¥JÕ©£o®™>ø@òµ×ô·m›d¥Jz¯X¸°‡0fŒU:Æ;’Ý»KŽ%Ù±£ÖTÁ´gÏfͪU–.ݰáÀëçéÝ;Ð×WÌX²Dö’lÜØÌ«ÚõRccµwû¶dÏž’³gKjt&~~^^À’%o½õÌ3@×®'~û-œœ’’–¸»)ä6kft>DDDZ¨¤èaEŠøúzz:zDDDDD9«Pæ^[D”=ÕÜtåJIýkh/Þ¶íàA`øðO?ýáàÞ½ädµŽÈ6Æö@³&ó½ÁèèÖϳeÞ÷ïßòG;t ]´ÈòÑZK‚Ff£ý:Ÿ¡ÿk3Èú#z ‹z¯W¨Lžüì³ÿùZ´hÙ²zÇT?µj÷ÅiӌͭqcÉÍ›ïhgÏJª‚â®]’ª¬ÞB+pëÖ;ÉÉ@³fcÆÌ›œ9sùrBBÖÇ+&-a÷í›?ôh½W3K\œ¤ZÑgkkSõ3ûþû’ãÇÛ6°wïñãqq@ZZFFFÆã{1j£öŠôõµu>DDT|õ•ä³Ï:vÅÝ»’^^Ž‘mØ •H³þ‘lÐ@RµLÕ®wï† «V–/óÍgŸýýy˜ º2eŠÞÔ¨4ZPLK“T7ÆŒ•-[$—-³mœœö¿ÿIÖ®-© ŠÊO?ÙÏÏÛÛݘ3gìØ®]3WfgeèÐNŒ¯4µ•*¬6m*iû^‰B®'Lœ:ÕÖkÖ¬P!4xòÉ ÂÂŒŽâînë<ˆˆ¨ Ú¹ÓÑ3(XøzQþÀÂ"‘nîѵ`Þš5«R¥dI`÷îY³Fj×®X±Lùœºm­/ÕÊc­©ÿ:ÆXݶyéýº­§¥¯úþ}käü3§¾š¬®ÿpfþyü«{ô+5s~Y]G4lX³f›6Àôé#Gþø£ìAW´höçHµ48°mÛZµŒ^Ũ“'%UAñøqû^oÊÉ™3mÉÙÙÉÉøZà l½>D‹Kê߃™Œøâ GÏ€ˆˆˆˆÈ ,,¦š˜$ùÒK’–wO´$4´H`ëÖéÓ‡ FîÖ­eKip™ÝJ ¢¼ÈÙÙÉÉÅèß¿S§±c±cûôùüsÀÕÕÅEÿz+uLøÿÝ̹fºuKRí’¨n9º‰¸Zy!ùÙg’Zçõüó’êëÓoܸ޽›45ªV­T©Ì?ûl‡µkg®pÌGJª=qOŸÎ©+ ÕuΜœ½®²q£c®KDDy›úïõ •êAæR›-üðƒcçADDDDd–.ˆLóñÇ’O?-©öаNí8cFÿþ­[ÿùÏË/÷éx{{zzzš?S¢œäííééë Œ?dȧŸ]»FEat4µ"Mú¶o7cŽÖ©•/¼ Ù¡ƒäÅ‹ö½®zPaõjIµFPí¨Z4ë¥^ÇQ£ŒÎÌÉIÞ¹fÏ;¶K 8X”6¬S§ºuŽª×’j…¢£Vî©‚®z=ý5g¯?wnÎ^ˆˆòõ{«cGÉ3g7—ü@=€ªZó踹™¯j•GDfS…_~‘ Ò;±cqqׯÝ»¿ÿþÂ…À±cgÏ^ºdéHã ô²“ùÞ JŸzY?Ë–™ß¿oôlËçµoòý÷gä*–ÏÉ~¤ÌÏj¿b¡Bú^e­3ÐÿÙÇ )U ˜4iðàyódïDÕòW?ÕÂSÝðºrÅèHæò÷—ìÒåálÛVÒÛ[Û8j…Àþý’«VI~õ•ä©S¶ÍÓõ$}Ÿ>FG8{öÊ•„ dÉààÂ…ÍšWV¶m“T¯wV­_ÅËKòÏ?%íUjýö[Éþýí3>L..’-[Jª Ž™On§(Unýñ‡äÕ«Ž™‘}±°HdwÅ‹KªÖ7 è!))9956lΜ_–.ݸQÊ,êo/ ‹ú°°hí8ýŸÍÔ¨QíÚíÚ/¾Ø³çÌ™€››««‡‡¶s·d‰¤jÑ¥Vævj­q:’ª)è£%7µÂ.&FRûJgs©éÞ½’¥K;fYQ…ÃY³$?üPR­È­‚ƒ%×­“¬VÍœq·l‘Tì¼ò÷‚ˆˆˆˆˆˆˆˆò:‰rŒzò÷Ýw%'L0:ÒÒ¥ýuø00zôœ9Ë–ññ·n%&š1LJ±°È¢–Ϻ»»»{yƒwé2~<ЦM½zýúY›SVÒÓ%'M’ü׿$ù›*g4j$¹aƒ¤zß²·Û·%Õû£*°<(©V(Þ»—3ó1›*Ü~ô‘¤j‰¦õïºZѪöÒ|ýuɼúzQ^ÅÂ"‘è–ƒjo,­-3]»vëVR0hЧŸ.[¬Y³k—º Ÿ=m7³,,ê›V¬ï:Æß»²*,††>\X´vFÖŸÕVðÓ>^VÇé½ÎƒÇZžµöQJ” -WxõÕ>ù(Q"88<\û\/ùÌ3’ÿûŸÑ‘È o½%9eJÎ\oæLÉW_Í™ë9Z… ’jOÞÚµ%}|$$wî”TïLçÏçÌüˆˆˆˆˆˆˆˆˆ,ca‘ÈáTk¼”4^š™3g͚ݻ‰¿ùæ·ß€;w’’,¯gaaÑÒGYX´öU*ää´nݨQt40th—.S§..ÎÎnnÚçð°$»v•üç£#‘™ÔJEµrQ­d4›Ú{¨bEIUP#""""""""¢Üˆ…E¢\ÃÏOòë¯%{ô0:ÒÑ£qqׯƒ}üñÒ¥Àž=Gž>ýà,,Zú( ‹–G*RÄß¿hQ`Ô¨Þ½ß{¨U+<¼eKí×´lÙ2ÉAƒ$íÑÌ—l*ù×_’%Kš3nr²d‡’ë×›3.Ù ‹D¹Ö€’jO-__£#-X°qcl,0aÂ×_ÿú+pãÆíÛZÊ8¶¿Ç¢ž½Ûµ{tÅÌ£mÙ›Pëqú‹‘Z ‹zG•? ÖªÕ¦ 0rdï¿x{{zªò·~ª¤öýäIþÊŠ“\²DÒè Æsç$Õ.œ›6Ù6/"""""""""ÊI,,åzåÊIþ÷¿’ éêUÙ“ñ¥—æÏÿýw`Ù²M›vïîßÏȰô>ÀÂbæÑ¡°X¸pP0|x¯^S§uëV®Ü¦žùXrø°¤Ú;16ÖÖÉ‘ÔÏR÷î’J6h (™”$#©Z=õ•$W¨åE,,åÎÎ’ãÆIN*i|w»+öì9v 3fîÜ_~Ο¿|ùúõÌϳ°˜yt~,,:9999;QQ‘‘:ÆEG¿óàååîn|}¬²p¡äóÏKÞ¹cëˆDDDDDDDDDDäX,,åYµkKªNåÊFGJJJIIMÞzkÉ’?ÿæÎýý÷Í›¤¤ädi`),û3E½…ÅÅ‹-gäë׺‡áãGèo]ªõˆB…€R¥Š«P1¢G·ßªT)S¦^==W´$!ArèPIµBˆˆˆˆˆˆˆˆˆˆò ‰ò+i^¡199--=˜?ÿÏ?÷î,BcLÌñã§OééÚöXÔÓ2´M›G÷XÌÜñPoëÑ≠ °0 eË ¢£Î£¢ž}ðññôTëCÍ“š*9¾ä”)’—.™}%""""""""""*XXX$"U¯.ùÖ[’]»J:9™}¥K—E‹¶nÝ·X¼xÓ¦˜ 6V Ž–ÞËr²°èááááé DFV«´jU¿~¯^@ddåÊ-[jŸ‡>ªyì¢E’ªxꔽ®HDDDDDDDDDD ‹Dd2Õ:uôhÉ¡C%==íuÅÇ/^¼v ˜7oݺݻ_ݾ}ß>àÌ™K—®^Õ>ŽÖ¢»»››‡Q©R½z@TTddÇŽ@Æ;îî®®öûjSR$ÕL§M“ Ô¯_¬ØùóÀ“O†‡7m ”(‘S³RΜ‘œ=[ò«¯$¯_Ïé™=ˆ…E"Ê%5’T+££%=<3{Sï¼þ)ùÙg’¿þ*™žžós"""""""""""Ê ‹D”KùûKvé"Ù³§dÛ¶’®®9?'[\¸ ùí·’ªµéñ㎙‘>,,QóÄ’ªÐøÌ3’ H*”ószÐ’?ÿ,¹x±äºu’9?'"""""""""""Û±°HDùDéÒ’Ý»K¶i#Ù¤‰¤§§¹×;yRrõjÉ+$×®•LI1÷zDDDDDDDDDDDŽÅÂ"åsª ¨ ŒkÖ”ts{ø¼+W$ÿúKrÍIUHd S""""""""""*XXX$¢N½½%Õ;bB‚cæCDDDDDDDDDD”;±°HDDDDDDDDDDDDDV99zDDDDDDDDDDDDD”û±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDD•2IDATDDDDDDDDDV±°HDDDDDDDDDDDDDV±°HDDDDDDDDDDDDDVýîYM£5­ IEND®B`‚upki-1.0.0~beta.3/admin/upki.svg000066400000000000000000000433771523060067200164530ustar00rootroot00000000000000 upki✔ upki-1.0.0~beta.3/deny.toml000066400000000000000000000004351523060067200155120ustar00rootroot00000000000000[licenses] version = 2 allow = [ "Apache-2.0", "BSD-3-Clause", "CDLA-Permissive-2.0", "ISC", "MIT", "MPL-2.0", "Unicode-3.0", ] private = { ignore = true } [advisories] ignore = [ "RUSTSEC-2025-0141", # bincode is unmaintained; going away with newer CRLite versions ] upki-1.0.0~beta.3/dist-packages/000077500000000000000000000000001523060067200163735ustar00rootroot00000000000000upki-1.0.0~beta.3/dist-packages/libupki/000077500000000000000000000000001523060067200200325ustar00rootroot00000000000000upki-1.0.0~beta.3/dist-packages/libupki/build-ffi.sh000077500000000000000000000024731523060067200222400ustar00rootroot00000000000000#!/bin/sh # Build the `upki` C FFI artifacts for the target dist requested, then stage them # in this directory where dist collects them (the cdylib named in dist.toml's # `cdylibs`, and the header named in `include`). set -eu target="${CARGO_DIST_TARGET:?CARGO_DIST_TARGET must be set by dist}" # cargo-c builds the cdylib (and would generate the header, but ours is checked # in and `capi.header.generation = false`). Build against the workspace and # select the `upki` package; outputs land in ../target//release/. cargo cbuild \ --manifest-path ../../Cargo.toml \ --package upki \ --release \ --target "$target" \ --library-type cdylib out="../../target/$target/release" case "$target" in *-windows-*) cp "$out/upki.dll" . ;; *-apple-*) cp "$out/libupki.dylib" . # cargo-c bakes in an absolute /usr/local install name; use @rpath so # consumers control lookup (and dist's linkage check doesn't trip over # the nonexistent path). Re-sign: install_name_tool invalidates the # ad-hoc signature, which makes the dylib unloadable on arm64. install_name_tool -id @rpath/libupki.dylib libupki.dylib codesign -f -s - libupki.dylib ;; *) cp "$out/libupki.so" . ;; esac # Stage the header for `include`. cp ../../upki/upki.h . upki-1.0.0~beta.3/dist-packages/libupki/dist.toml000066400000000000000000000005411523060067200216720ustar00rootroot00000000000000[package] name = "libupki" version = "1.0.0-beta.3" repository = "https://github.com/rustls/upki" build-command = ["sh", "build-ffi.sh"] cdylibs = ["upki"] [dist] package-libraries = ["cdylib"] include = ["upki.h"] targets = [ "aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc", ] upki-1.0.0~beta.3/dist-packages/libupki_openssl/000077500000000000000000000000001523060067200215755ustar00rootroot00000000000000upki-1.0.0~beta.3/dist-packages/libupki_openssl/build-ffi.sh000077500000000000000000000027141523060067200240010ustar00rootroot00000000000000#!/bin/sh # Build the `upki-openssl` C FFI artifacts for the target dist requested, then # stage them in this directory where dist collects them (the cdylib named in # dist.toml's `cdylibs`, and the headers named in `include`). set -eu target="${CARGO_DIST_TARGET:?CARGO_DIST_TARGET must be set by dist}" # cargo-c builds the cdylib (and would generate the header, but ours is checked # in and `capi.header.generation = false`). Build against the workspace and # select the `upki-openssl` package; outputs land in ../target//release/. cargo cbuild \ --manifest-path ../../Cargo.toml \ --package upki-openssl \ --release \ --target "$target" \ --library-type cdylib out="../../target/$target/release" case "$target" in *-apple-*) cp "$out/libupki_openssl.dylib" . # cargo-c bakes in an absolute /usr/local install name; use @rpath so # consumers control lookup (and dist's linkage check doesn't trip over # the nonexistent path). Re-sign: install_name_tool invalidates the # ad-hoc signature, which makes the dylib unloadable on arm64. install_name_tool -id @rpath/libupki_openssl.dylib libupki_openssl.dylib codesign -f -s - libupki_openssl.dylib ;; *) cp "$out/libupki_openssl.so" . ;; esac # Stage the headers for `include`. upki-openssl.h includes upki.h, so ship both # to keep the archive self-contained. cp ../../upki-openssl/upki-openssl.h . cp ../../upki/upki.h . upki-1.0.0~beta.3/dist-packages/libupki_openssl/dist.toml000066400000000000000000000007621523060067200234420ustar00rootroot00000000000000[package] name = "libupki_openssl" version = "1.0.0-beta.3" repository = "https://github.com/rustls/upki" build-command = ["sh", "build-ffi.sh"] cdylibs = ["upki_openssl"] [dist] package-libraries = ["cdylib"] include = ["upki-openssl.h", "upki.h"] # No Windows targets: upki-openssl requires OpenSSL, which isn't available on # the Windows runners (see the equivalent skips in build.yml). targets = [ "aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", ] upki-1.0.0~beta.3/dist-workspace.toml000066400000000000000000000006611523060067200175130ustar00rootroot00000000000000[workspace] members = [ "cargo:upki", "dist:dist-packages/libupki", "dist:dist-packages/libupki_openssl", ] [dist] cargo-dist-version = "0.32.0" ci = "github" installers = [] github-build-setup = "../cargo-c-setup.yml" targets = [ "aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "aarch64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc", ] upki-1.0.0~beta.3/revoke-test/000077500000000000000000000000001523060067200161245ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/Cargo.toml000066400000000000000000000020011523060067200200450ustar00rootroot00000000000000[package] name = "revoke-test" version = "0.1.0" rust-version.workspace = true edition.workspace = true repository.workspace = true publish = false [features] __bench_codspeed = ["dep:codspeed-criterion-compat"] [dependencies] aws-lc-rs.workspace = true base64.workspace = true eyre.workspace = true codspeed-criterion-compat = { version = "5", optional = true } http.workspace = true rustls.workspace = true serde.workspace = true serde_json.workspace = true tokio.workspace = true tokio-rustls.workspace = true webpki-ccadb.workspace = true webpki-roots.workspace = true x509-parser.workspace = true [dev-dependencies] criterion.workspace = true insta-cmd.workspace = true rustls-pki-types.workspace = true rustls-upki.workspace = true upki = { path = "../upki", features = ["capi", "fetch"] } [target.'cfg(not(windows))'.dev-dependencies] openssl-sys.workspace = true upki-openssl = { path = "../upki-openssl" } [[bench]] name = "bench" harness = false [lints] workspace = true [package.metadata.dist] dist = false upki-1.0.0~beta.3/revoke-test/README.md000066400000000000000000000024011523060067200174000ustar00rootroot00000000000000# revoke-test Real-world certificate revocation integration tests and benchmarks for `upki` and `rustls-upki`. ## Explainer Browser-trusted CAs that participate in the [CCADB](https://www.ccadb.org/) are required to maintain publicly accessible test websites whose TLS certificates have been intentionally revoked. This crate uses those test websites to verify that `upki`'s revocation checking correctly identifies revoked certificates in practice. Unfortunately, a snag is that such sites are occasionally unreliable. On top of that, upki inherits an unpredictable latency to recognizing revocations. That means these tests are fuzzy: we actually just require that a majority of sites are detected as revoked. ## Why do these tests rot? `test-sites.json` is a JSON snapshot that records, for each CA in the CCADB, the URL of its revoked test website together with details of the certificate chain it presents. Certificate chains presented by the test websites have varying lifetimes, and as a result these tests currently accept expired certificates. The tests enforce a 30-day limit on test data lifetime to avoid expiry becoming a significant factor. Refresh the snapshot with: ``` cargo run -p revoke-test --bin fetch ``` Then commit the updated `test-sites.json`. upki-1.0.0~beta.3/revoke-test/benches/000077500000000000000000000000001523060067200175335ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/benches/bench.rs000066400000000000000000000055711523060067200211700ustar00rootroot00000000000000use core::hint::black_box; use core::iter; use std::fs::File; use std::path::PathBuf; use base64::prelude::{BASE64_STANDARD, Engine}; #[cfg(feature = "__bench_codspeed")] use codspeed_criterion_compat::{Criterion, criterion_group, criterion_main}; #[cfg(not(feature = "__bench_codspeed"))] use criterion::{Criterion, criterion_group, criterion_main}; use revoke_test::RevocationTestSites; use rustls_pki_types::CertificateDer; use upki::revocation::{Index, Manifest, RevocationCheckInput, RevocationStatus}; use upki::{Config, ConfigPath}; fn revocation(c: &mut Criterion) { c.bench_function("load-config", |b| { b.iter(|| { Config::from_file_or_user_default(&ConfigPath::Specified(PathBuf::from( "benches/data/config.toml", ))) .unwrap() }) }); c.bench_function("load-manifest", |b| { let config = Config::from_file_or_user_default(&ConfigPath::Specified(PathBuf::from( "benches/data/config.toml", ))) .unwrap(); b.iter(|| { black_box(Manifest::from_config(&config).unwrap()); }) }); c.bench_function("revocation-input-from-certs", |b| { let revoked_certs = certificates_for_test_site(BENCHMARK_CASE); b.iter(|| { black_box(RevocationCheckInput::from_certificates(&revoked_certs).unwrap()); }); }); c.bench_function("revocation-check", |b| { let config = Config::from_file_or_user_default(&ConfigPath::new(None).unwrap()).unwrap(); let revoked_certs = certificates_for_test_site(BENCHMARK_CASE); b.iter(|| { let mut index = Index::from_cache(&config).unwrap(); let input = RevocationCheckInput::from_certificates(&revoked_certs).unwrap(); assert_eq!( index.check(&input).unwrap(), RevocationStatus::CertainlyRevoked ); }) }); } fn certificates_for_test_site(ca_label: &str) -> Vec> { let tests = serde_json::from_reader::<_, RevocationTestSites<'static>>( File::open("../revoke-test/test-sites.json") .expect("cannot find ../revoke-test/test-sites.json"), ) .expect("cannot parse test-sites.json"); let detail = tests .sites .iter() .find(|item| item.ca_label == ca_label) .unwrap() .detail .clone() .unwrap(); iter::once(detail.end_entity_cert) .chain(detail.intermediates) .map(|c| { CertificateDer::from( BASE64_STANDARD .decode(c) .expect("cannot decode issuer_cert"), ) }) .collect::>() } criterion_group!(benches, revocation); criterion_main!(benches); // choose a stable test site for benchmarking const BENCHMARK_CASE: &str = "COMODO ECC Certification Authority"; upki-1.0.0~beta.3/revoke-test/benches/data/000077500000000000000000000000001523060067200204445ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/benches/data/config.toml000066400000000000000000000001341523060067200226040ustar00rootroot00000000000000cache-dir = "benches/data/" [revocation] fetch-url = "https://upki.rustls.dev/revocation/" upki-1.0.0~beta.3/revoke-test/benches/data/revocation/000077500000000000000000000000001523060067200226155ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/benches/data/revocation/manifest.json000066400000000000000000000115061523060067200253210ustar00rootroot00000000000000{"generated_at":1774181961,"comment":"rustls/upki run 23402886033","filters":[{"filename":"20260304-1-default.filter","size":6126299,"hash":"d2dfd3b4de4ee7b6479888af5ceaef82c5c59ac471b7ef488a59654a32089e26"},{"filename":"20260305-0-default.filter.delta","size":172145,"hash":"be2ab676a75fe30848b7cdbcd47b866183b696664c92ac11d92369025cc6ad96"},{"filename":"20260305-1-default.filter.delta","size":167195,"hash":"8aeaa7abecd77c30eb388557d640909fd5d88ca1c82b4e4dc5a2a60ca34adafa"},{"filename":"20260306-0-default.filter.delta","size":181651,"hash":"e6e3da75e60c5c4fb55b50ccdd66defe084a15554d42576a9887598957674eeb"},{"filename":"20260306-1-default.filter.delta","size":178243,"hash":"44e973a1eedde383082cc6bbd37c5a8785ab875c39be72f0b4dc3bd422baf30b"},{"filename":"20260307-0-default.filter.delta","size":172930,"hash":"9549bb65a4eb8b17f826b4c71d68dfcbc8923152fca204ad2a4bbcc33930c537"},{"filename":"20260307-1-default.filter.delta","size":152922,"hash":"5c57ef0edd7af84ee27719380ac0af9b1a592cd7f60a722de9308a8293f51c4e"},{"filename":"20260308-0-default.filter.delta","size":160282,"hash":"60ad9c92ceff17b08476f6e31c2eb0f5ab55ded28eae3f6cb7b33287e2cda97c"},{"filename":"20260308-1-default.filter.delta","size":152482,"hash":"dead6955b49fe8eb8ece37e261f60418bbc93b397a0e04c63cc99714a7229891"},{"filename":"20260309-0-default.filter.delta","size":165466,"hash":"0bc311770d894b1b0b3dd0902092405cae13d469e6e3b82cd3933a2ca695150a"},{"filename":"20260309-1-default.filter.delta","size":158475,"hash":"fd24d409f1ddaebb89ea456acac81fe2700723a8625afbe9a42d81d392629a8a"},{"filename":"20260310-0-default.filter.delta","size":160579,"hash":"545c515d1b4f54a3d4ff4004c41743c14165e7e9a9e2e033ac00eecfd891c675"},{"filename":"20260310-1-default.filter.delta","size":174965,"hash":"cb6e5020d8a479ae8334f0aaac0ee109c4250dd15a77ee158e1b616802736ba0"},{"filename":"20260311-0-default.filter.delta","size":194220,"hash":"e71479f6ddb8bb920a12cce045ddff71dbec93e08d585d009a6359004e0b179a"},{"filename":"20260311-1-default.filter.delta","size":165044,"hash":"2de05a2718166d6278e526c0adbf56157a084bfc00f26cea3bb6fe8cb82e3b7a"},{"filename":"20260312-0-default.filter.delta","size":183452,"hash":"8fa183ccc25edf79e6c8f9244fbe7e84cea21eebca7feeda6414c3f2cea3fa56"},{"filename":"20260312-1-default.filter.delta","size":184019,"hash":"01e4f54431ef885165183c26afe8aa1642b819ca6d7c0458d8e1b7ac04667846"},{"filename":"20260313-0-default.filter.delta","size":176355,"hash":"f6c4d6af382b7bff71078e8e436339d9515f92c37ecd8c1e0075feaa812fe893"},{"filename":"20260313-1-default.filter.delta","size":192340,"hash":"40dfc18507d1fcffb9116b3c58de89a074b8f952885c7670aebec532ca19c397"},{"filename":"20260314-0-default.filter.delta","size":187860,"hash":"9b3a9d55f0dbba9083d47e22bbc59ca456ed382a9221a07d9cfa7b178ea295a9"},{"filename":"20260314-1-default.filter.delta","size":194428,"hash":"9eaf9ddabac7046fc2f69958b0d8f34ea50e98593857933216218a04ca020826"},{"filename":"20260315-0-default.filter.delta","size":176724,"hash":"54dd65d87eb337ddf99b518706f5115a3939eb9bbd2195a4b2e385c10720851f"},{"filename":"20260315-1-default.filter.delta","size":183244,"hash":"10133b37e503bc683325190886737acd6528ba8344b42e823d47eca206997257"},{"filename":"20260316-0-default.filter.delta","size":166164,"hash":"67330bf3a259d45ceb5bed21ff60d617d0cae64515d89143fb2d64317393bc5b"},{"filename":"20260316-1-default.filter.delta","size":176340,"hash":"6cfc0b16eda12a3714b78dc6733db92928defd28b4d4d132097d0fb188ed515b"},{"filename":"20260317-0-default.filter.delta","size":170317,"hash":"4016c388da2b875049a89f3a9bed100ad84f46b3e9ebbe7ebae3e4c98834e8ba"},{"filename":"20260317-1-default.filter.delta","size":183351,"hash":"7e21e2b756d7b8700de30d789a93cf865f203a052b8ee6702fb2ef4440075d58"},{"filename":"20260318-0-default.filter.delta","size":175752,"hash":"69488cfb3ee0f7e052480f4742b9a90a68bfcd28ed5a626c66419573f91dc906"},{"filename":"20260318-1-default.filter.delta","size":169794,"hash":"ff8a8fc6219123ebf00537b9dea3fb5b4e209fa34a83f350aee7d9fc2775c916"},{"filename":"20260319-0-default.filter.delta","size":201419,"hash":"31122a0351ee25218fffd9d0d2b789f3e3613946a889ea4f4454febb1b7a6b74"},{"filename":"20260319-1-default.filter.delta","size":182427,"hash":"214150e057187d642fbd686bc094ecd0c9e1c7054301df19e8419b71e21a2d36"},{"filename":"20260320-0-default.filter.delta","size":167835,"hash":"d826d6229835a5e20d90d7897f508e25f895fbd134a8dd88d933698e19812705"},{"filename":"20260320-1-default.filter.delta","size":186226,"hash":"ec42a8c2ca3612f3cc8b59cdd5963ad23c74b71db23bb7ba4278585601fa8ff5"},{"filename":"20260321-0-default.filter.delta","size":213374,"hash":"57380462d054efba7f63dd61a646bbc54013aa7cae1c2f6b06128378e50b260d"},{"filename":"20260321-1-default.filter.delta","size":148462,"hash":"6d4ed59f5b7ee61a99cb82235e7334f18dbd8bcdffb66b369af1ed72bd3a6a15"},{"filename":"20260322-0-default.filter.delta","size":161917,"hash":"d883f70a59c05c87b295f215ed36de5c8a6818e577bc8fe0cd893fe781718935"}]}upki-1.0.0~beta.3/revoke-test/src/000077500000000000000000000000001523060067200167135ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/src/bin/000077500000000000000000000000001523060067200174635ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/src/bin/fetch.rs000066400000000000000000000070011523060067200211200ustar00rootroot00000000000000use core::str::FromStr; use std::borrow::Cow; use std::fs::File; use std::sync::Arc; use std::time::SystemTime; use eyre::{Report, Result}; use http::Uri; use revoke_test::{CertificateDetail, RevocationTestSite, RevocationTestSites}; use tokio::net::TcpStream; use tokio_rustls::TlsConnector; use tokio_rustls::rustls::client::Resumption; use tokio_rustls::rustls::pki_types::ServerName; use tokio_rustls::rustls::{ClientConfig, RootCertStore, crypto}; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<(), Report> { let mut root_store = RootCertStore::empty(); root_store.extend( webpki_roots::TLS_SERVER_ROOTS .iter() .cloned(), ); let provider = Arc::new(crypto::aws_lc_rs::default_provider()); let mut tls_config = ClientConfig::builder_with_provider(provider) .with_safe_default_protocol_versions() .map_err(|e| eyre::eyre!("failed to set protocol versions: {e}"))? .with_root_certificates(root_store) .with_no_client_auth(); tls_config.resumption = Resumption::disabled(); let tls_connector = TlsConnector::from(Arc::new(tls_config)); let mut sites = Vec::new(); let metadata = webpki_ccadb::fetch_ccadb_roots().await; for metadata in metadata.into_values() { let mut site = RevocationTestSite { ca_sha256_fingerprint: metadata.sha256_fingerprint, ca_label: metadata.common_name_or_certificate_name, test_website_revoked: metadata.test_website_revoked, error: None, detail: None, }; let url = &site.test_website_revoked; println!("processing URL: {url}"); match dissect(url, &tls_connector).await { Ok(detail) => site.detail = Some(detail), Err(e) => { println!("failed: {e}"); site.error = Some(e.to_string()) } }; sites.push(site); } sites.sort_by(|a, b| { a.ca_sha256_fingerprint .cmp(&b.ca_sha256_fingerprint) }); serde_json::to_writer_pretty( File::create("test-sites.json")?, &RevocationTestSites { sites: Cow::Borrowed(&sites), timestamp: SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) .unwrap() .as_secs(), }, )?; Ok(()) } async fn dissect(url: &str, tls_connector: &TlsConnector) -> Result { if ENTRUST_SUCKS.contains(&url) { eyre::bail!("entrust cannot run a website"); } // Parse URL to extract host and port let url_parsed = Uri::from_str(url)?; let host = url_parsed .host() .ok_or_else(|| eyre::eyre!("no host in URL"))?; let port = match url_parsed.port() { Some(port) => port.as_u16(), None => 443, }; // Connect via TCP let tcp_stream = TcpStream::connect(format!("{host}:{port}")).await?; // Perform TLS handshake let server_name = ServerName::try_from(host.to_owned()) .map_err(|e| eyre::eyre!("invalid server name: {e}"))?; let tls_stream = tls_connector .connect(server_name, tcp_stream) .await?; // Get peer certificates from the connection let (_io, conn) = tls_stream.get_ref(); let peer_certs = conn .peer_certificates() .ok_or_else(|| eyre::eyre!("no peer certificates"))?; CertificateDetail::from_chain(peer_certs) } const ENTRUST_SUCKS: &[&str] = &["https://entrustrootcertificationauthorityec1.sectigo.com:444"]; upki-1.0.0~beta.3/revoke-test/src/lib.rs000066400000000000000000000131241523060067200200300ustar00rootroot00000000000000use core::time::Duration; use std::borrow::Cow; use std::time::SystemTime; use aws_lc_rs::digest::{SHA256, digest}; use base64::Engine; use base64::prelude::BASE64_STANDARD; use eyre::Result; use serde::{Deserialize, Serialize}; use tokio_rustls::rustls::pki_types::CertificateDer; use x509_parser::certificate::X509Certificate; use x509_parser::der_parser::Oid; use x509_parser::oid_registry::asn1_rs::oid; use x509_parser::prelude::FromDer; #[derive(Debug, Deserialize, Serialize)] pub struct RevocationTestSites<'a> { pub sites: Cow<'a, [RevocationTestSite]>, pub timestamp: u64, } impl RevocationTestSites<'_> { pub fn expired(&self) -> bool { let one_month = Duration::from_secs(60 * 60 * 24 * 30); let deadline = SystemTime::UNIX_EPOCH .checked_add(Duration::from_secs(self.timestamp) + one_month) .unwrap(); SystemTime::now() > deadline } } #[derive(Clone, Debug, Deserialize, Serialize)] pub struct RevocationTestSite { pub ca_sha256_fingerprint: String, pub ca_label: String, pub test_website_revoked: String, #[serde(skip_serializing_if = "Option::is_none")] pub error: Option, #[serde(skip_serializing_if = "Option::is_none")] pub detail: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct CertificateDetail { pub end_entity_cert: String, pub intermediates: Vec, pub serial: String, pub issuer_spki_sha256: String, pub scts: Vec, } impl CertificateDetail { pub fn from_chain(certs: &[CertificateDer<'_>]) -> Result { if certs.len() < 2 { eyre::bail!("no issuer"); } let (_, end_entity) = X509Certificate::from_der(&certs[0])?; let sct_ext = end_entity .extensions() .iter() .find(|ext| ext.oid == SCT_OID) .ok_or_else(|| eyre::eyre!("missing from ct"))?; let sct_list = parse_octet_string(sct_ext.value)?; if sct_list.len() < 2 { let len = sct_list.len(); eyre::bail!("SCT list too short: {len} bytes"); } let list_len = u16::from_be_bytes(sct_list[0..2].try_into().unwrap()) as usize; let mut offset = 2; let mut scts = Vec::new(); while offset < sct_list.len() && offset < list_len + 2 { if offset + 2 > sct_list.len() { break; } scts.push(Sct::from_der(sct_list, &mut offset)?); } let (_, issuer) = X509Certificate::from_der(&certs[1])?; let intermediates = certs[1..] .iter() .map(|c| BASE64_STANDARD.encode(c)) .collect(); Ok(Self { end_entity_cert: BASE64_STANDARD.encode(&certs[0]), intermediates, serial: BASE64_STANDARD.encode(end_entity.raw_serial()), issuer_spki_sha256: BASE64_STANDARD .encode(digest(&SHA256, issuer.public_key().raw).as_ref()), scts, }) } pub fn end_entity_cert_der(&self) -> Result> { Ok(CertificateDer::from( BASE64_STANDARD .decode(&self.end_entity_cert) .map_err(|e| eyre::eyre!("cannot base64-decode certificate {e:?}"))?, )) } pub fn intermediates_der(&self) -> impl Iterator>> { self.intermediates.iter().map(|pem| { BASE64_STANDARD .decode(pem) .map_err(|e| eyre::eyre!("cannot base64-decode certificate {e:?}")) .map(CertificateDer::from) }) } } fn parse_octet_string(data: &[u8]) -> Result<&[u8]> { if data.is_empty() { eyre::bail!("empty data"); } else if data[0] != 0x04 { eyre::bail!("not an OCTET STRING"); } let (length, length_bytes) = parse_asn1_length(&data[1..])?; let content_start = 1 + length_bytes; if content_start + length > data.len() { eyre::bail!("OCTET STRING length exceeds data"); } Ok(&data[content_start..content_start + length]) } fn parse_asn1_length(data: &[u8]) -> Result<(usize, usize)> { if data.is_empty() { eyre::bail!("empty length"); } else if data[0] & 0x80 == 0 { return Ok((data[0] as usize, 1)); } let num_octets = (data[0] & 0x7f) as usize; if num_octets > 4 || data.len() < 1 + num_octets { eyre::bail!("invalid ASN.1 length"); } let mut length = 0usize; for i in 0..num_octets { length = (length << 8) | (data[1 + i] as usize); } Ok((length, 1 + num_octets)) } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Sct { pub log_id: String, pub timestamp: i64, } impl Sct { pub fn from_der(sct_list: &[u8], offset: &mut usize) -> Result { let sct_len = u16::from_be_bytes( sct_list[*offset..*offset + 2] .try_into() .unwrap(), ) as usize; *offset += 2; if *offset + sct_len > sct_list.len() { let total_len = sct_list.len(); eyre::bail!( "invalid SCT length: offset={offset} sct_len={sct_len} total_len={total_len}" ); } let sct_data = &sct_list[*offset..*offset + sct_len]; if sct_data.len() < 41 { eyre::bail!("SCT too short"); } *offset += sct_len; Ok(Self { log_id: BASE64_STANDARD.encode(&sct_data[1..33]), timestamp: i64::from_be_bytes(sct_data[33..41].try_into().unwrap()), }) } } const SCT_OID: Oid<'static> = oid!(1.3.6.1.4.1.11129.2.4.2); upki-1.0.0~beta.3/revoke-test/test-sites.json000066400000000000000000024536551523060067200211470ustar00rootroot00000000000000{ "sites": [ { "ca_sha256_fingerprint": "018E13F0772532CF809BD1B17281867283FC48C6E13BE9C69812854A490C1B05", "ca_label": "DigiCert TLS ECC P384 Root G5", "test_website_revoked": "https://digicert-tls-ecc-p384-root-g5-revoked.chain-demos.digicert.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDajCCAu+gAwIBAgIQBBxdKC6zcQ5rcsLavSZxbzAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDQxNDAwMDAwMFoXDTMxMDQxMzIzNTk1OVowVDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSwwKgYDVQQDEyNEaWdpQ2VydCBHNSBUTFMgRUNDIFNIQTM4NCAyMDIxIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLzRK0f/iJs+T+i9//yOWT++GUuwRjMLdbsA+9YQsrHFyayUZeqYRATordp1DcodGY/1DxRAwDDEi0cmkfHX08nLQ0ujF1VhdlBxYUPol2HLYjN3EzVAcDC8V5uiQc5zCqOCAYowggGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFJtY3I2mZZjnvAb+GqQVoG/L5qmQMB8GA1UdIwQYMBaAFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwegYIKwYBBQUHAQEEbjBsMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wRAYIKwYBBQUHMAKGOGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0VDQ1AzODRSb290RzUuY3J0MEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRMU0VDQ1AzODRSb290RzUuY3JsMD0GA1UdIAQ2MDQwCwYJYIZIAYb9bAIBMAcGBWeBDAEBMAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMAoGCCqGSM49BAMDA2kAMGYCMQDt1p2aebRUXBPN1FXg+V6oG+mRLdRC49k8dSxwRG77lsj1YqTOIvZuhDckSAkMNGICMQD4lvGyMGMQirgiqAaMdybUTpcDTLtRQPKiGVZOoSaRtq8ogRocsHZfwG69pfWn10Y=" ], "serial": "DFMi8hcpf2l46ltEGz9w5w==", "issuer_spki_sha256": "LsOdqDFw3goo/G8jjeEPxe+JSJ7aFp1RF5Ih4/2ZvFY=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155700283 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155700242 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155700295 } ] } }, { "ca_sha256_fingerprint": "0552E6F83FDF65E8FA9670E666DF28A4E21340B510CBE52566F97C4FB94B2BD1", "ca_label": "D-TRUST BR Root CA 2 2023", "test_website_revoked": "https://certdemo-dv-revoked-rsa.tls.d-trust.net/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Z2dmMevNQC723fWe4BuTYg==", "issuer_spki_sha256": "qGGyjNHY/ixMkbltlA+mYLthXMj3eymvfaRR/6pIOtQ=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783364499597 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1783364499509 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783364499603 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783364499946 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783364500099 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783364500436 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783364500008 } ] } }, { "ca_sha256_fingerprint": "06C08D7DAFD876971EB1124FE67F847EC0C7A158D3EA53CBE940E2EA9791F4C3", "ca_label": "TrustAsia TLS RSA Root CA", "test_website_revoked": "https://ev-rsatls-revoked.trustasia.com", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "WWO4MKBMQot7HAewapUBLyK1NPc=", "issuer_spki_sha256": "TcwsJhAKwWICVN6Q/+7q3y7eRrrfy3jzpeQpmQQJ1xI=", "scts": [ { "log_id": "Jbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GU=", "timestamp": 1782165609401 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782165609558 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782165610198 } ] } }, { "ca_sha256_fingerprint": "08170D1AA36453901A2F959245E347DB0C8D37ABAABC56B81AA100DC958970DB", "ca_label": "D-TRUST EV Root CA 1 2020", "test_website_revoked": "https://certdemo-ev-revoked.tls.d-trust.net/", "detail": { "end_entity_cert": "MIIH2DCCB12gAwIBAgIQSM2DuZkmFj1Y2y0iERgAfzAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIENBIDEtMjAtMSAyMDIwMB4XDTI2MDYyMjE5MDIzMFoXDTI2MDgxMTE5MDIyNFowgd8xEzARBgsrBgEEAYI3PAIBAxMCREUxFzAVBgsrBgEEAYI3PAIBAgwGQmVybGluMRcwFQYLKwYBBAGCNzwCAQEMBkJlcmxpbjEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xFDASBgNVBAUTC0hSQiA3NDM0NiBCMQswCQYDVQQGEwJERTEPMA0GA1UECBMGQmVybGluMRUwEwYDVQQKEwxELVRydXN0IEdtYkgxLDAqBgNVBAMTI2NlcnRkZW1vLWV2LXJldm9rZWQudGxzLmQtdHJ1c3QubmV0MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE1JvLFKN2uf0yAmhKOCz7UL4hLt/OwylondeYYfVGD5zuDBKmJ0WXl1WpOlwYqsLdSTAjQC381XAt70PzRCS1yVshzmyW0ybilwtiDbPbEii+MLRSV4LnPlvO94dENivBo4IFcjCCBW4wWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NnaS1iaW4vRC1UUlVTVF9FVl9DQV8xLTIwLTFfMjAyMC5jcnQweQYDVR0gBHIwcDAHBgVngQwBATAIBgYEAI96AQQwWwYLKwYBBAGlNAKBSgEwTDBKBggrBgEFBQcCARY+aHR0cHM6Ly93d3cuZC10cnVzdC5uZXQvaW50ZXJuZXQvZmlsZXMvRC1UUlVTVF9DU01fUEtJX0NQUy5wZGYwggNgBgorBgEEAdZ5AgQCBIIDUASCA0wDSgB3AMIxfldFGaNF7n843rKQQevHwiFaIr9/1bWtdprZDlLNAAABnvC2s3sAAAQDAEgwRgIhAICeftTQ9027+mjGWjyf5Xkd8y6nXS62xmm8dWzn/7R/AiEAu/nJf/tjjfj3UPDBuox4n2Cr+ZSoPVwD5LpcM/KCYpoAdwCvZ4g7V7BO3Y+m2X72LqjrgQrHcWDwJF5V1gwv54WHOgAAAZ7wtrGMAAAEAwBIMEYCIQCz7FzQiW1xF/tddMOnQcnP2fX7DrkFpSsTpXUmhjaPQAIhAKLoiVREf38zb9c53iG5wZ9Fc6aGLF91QKknCR/q5FuhAHUAyKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5oAAAGe8LayeQAABAMARjBEAiBw0w5QtmzQ3FObLOJ5Ej0V+XZ78M0B+25FJ9oBYNARuAIgegRSEMuAP6yqtUYBz2ZhHqpNpbEVa1ORR21x1TDjfRwAdwDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZ7wtrKVAAAEAwBIMEYCIQDTIefsXzN4jR0h4YD6mwEis53Ug8wNuJuXoSk/7/VMLAIhAOqcRnmHBedNkUZFj59Lg4/zpuT6s+XECnkyH5wASJU4AHYA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGe8Laz4wAABAMARzBFAiEA2Go51f+S1LeFFbMCsUwfgZsikuLvH0aNiCsEqpS+O10CICJp9dSK48ExhVyJ4OyAULkJOG7olpemTGqcCNQbtzojAHUAlE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdgAAAGe8La1lQAABAMARjBEAiAjWduCFn9LZB7KBo/2GvstlxOfD3CChage7DHmdPwGhgIgSNMHJq4Pdc+W9Z4u1lNsDp96f5i2zwPGnBQth+SVPQUAdwDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ7wtrTkAAAEAwBIMEYCIQCMslzfSo4kinixHj0LXex73tQg50PYVBL5yBSlF1mSsQIhAJOo4ZBQvQcrJexBMMxGXVaAVm3nUZ5H8a6SONoRcV9bMAwGA1UdEwEB/wQCMAAwgY8GA1UdHwSBhzCBhDCBgaB/oH2GOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfY2FfMS0yMC0xXzIwMjAuY3JshkFodHRwOi8vY2RuLmQtdHJ1c3QtY2xvdWRjcmwubmV0L2NybC9kLXRydXN0X2V2X2NhXzEtMjAtMV8yMDIwLmNybDATBgNVHSUEDDAKBggrBgEFBQcDATAuBgNVHREEJzAlgiNjZXJ0ZGVtby1ldi1yZXZva2VkLnRscy5kLXRydXN0Lm5ldDAfBgNVHSMEGDAWgBQ4XkT64I1QzIKoUxClYBUpzCNHgTAOBgNVHQ8BAf8EBAMCA4gwHQYDVR0OBBYEFF2uQOgsnRJbSvMFrGFFUkj0IQdkMAoGCCqGSM49BAMDA2kAMGYCMQCmqEAF4Xhm7rLH8Y9AcLWNllaqipKsehJCVjX0JPqiJ6MS2cgBAvjVercNJKtJfUwCMQDyIQUpblmLqWo6sXg0lUv5Dfvbi5qGjO2qtrZ32hebGOp0NGk1Vgfd9JPeRWwNCIE=", "intermediates": [ "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" ], "serial": "SM2DuZkmFj1Y2y0iERgAfw==", "issuer_spki_sha256": "SJEHwcDvLp0G/+CfkfLyIPLHc6/k+E4CaepcoEBFq5s=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1782154965883 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782154965388 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1782154965625 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1782154965653 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782154965987 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782154966421 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782154966244 } ] } }, { "ca_sha256_fingerprint": "125609AA301DA0A249B97A8239CB6A34216F44DCAC9F3954B14292F2E8C8608F", "ca_label": "emSign Root CA - C1", "test_website_revoked": "https://testevc1r.emsign.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIEZDCCA0ygAwIBAgILALrf0ps/HmeMaWAwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTMzMDIxODE4MzAwMFowWDELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMR4wHAYDVQQDExVlbVNpZ24gRVYgU1NMIENBIC0gQzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmkb1Lx0+6eN56d3D9Afd0fc/Qp5U2YAv+58LT7MdksmffNOU0Eh5lD/87lnFH89Dfb0D9ru9P0cuvllMJoQIJzEGShiZ1K50XZKz/xTUwYsQHYL4KtAKCTHdZjy6WsKS8VAoiaqHJAxmlI1vEXGESsGzCmy6TQyjNpIXRrHHlSFMtNn6NUllARATWjmm1vXqeh4M4ru48RuFJ/AvKLQwXWHHTfUNBEI9gSwmLTfenUBKUeLHnSJFPR3mSuEgg/Q1+Y2bGHHpe1IBy1Qg9M0UZMMeQhiy7SLvRu18MTJ8NcvDmpaKnrfO6+QLmwMl65/wdnz4iu2bpYzFR8mQveFtLAgMBAAGjggEvMIIBKzAfBgNVHSMEGDAWgBT+oeBwHioDOVJaQr5ckYV6GKpNtTAdBgNVHQ4EFgQUyXEWRUM7Fl5fRv3uNU1Ee32udQcwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cDovL3JlcG9zaXRvcnkuZW1zaWduLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AuZW1zaWduLmNvbTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVtc2lnbi5jb20/Um9vdENBQzEuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQAzd2UxT3MCEOyLiutoG4mkAo6UGNooruBKvRMfAx0IWndWqt9rIIMvpOFvvuCWAxVILnEWihw1MCBka08EzEBVJq1SWffJZ51YmyZrlvuJhoipaA7KRGetDzFBdGF86BG4dFVRbgMtfAen8YkkHMMfvL1+mP75Vq3vMm4E+LkIgjUlPzy0h5Xbl31QmWBgz87v/MC2ICLBaWVi45/yNA60Rcu1+Xf5C6WBjPLRHgcDPEbXWm5QmCpG0Is6WQHHGux8m6d4/1OQ6eftBPSahqPBbFtWhBsac3mdPubbMd2QPOmIUv/BCU+zeRRgbcq+KBV0blu2NkktFW/LhsAlcl+E" ], "serial": "JY+POJnERZY8xU5KL+nQ", "issuer_spki_sha256": "bJpaGvT+ExoQi2/an1HG3Mo5yMrot02ORyF/NS5p5J8=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1765362288999 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1765362289636 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1765362291627 } ] } }, { "ca_sha256_fingerprint": "1793927A0614549789ADCE2F8F34F7F0B66D0F3AE3A3B84D21EC15DBBA4FADC7", "ca_label": "COMODO ECC Certification Authority", "test_website_revoked": "https://comodoecccertificationauthority-ev.comodoca.com:444/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDojCCAyigAwIBAgIQBh1GQ7QStdjXFUmdhVOqAzAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTMwNDE1MDAwMDAwWhcNMjgwNDE0MjM1OTU5WjCBkjELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxODA2BgNVBAMTL0NPTU9ETyBFQ0MgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEV3AaPyeTQy0aWXXkBJMR42DsJ5pnbliJe7ndaHzCDslVlY8ofpxeFiqluZrKKNcJeBU/Jl1YI9jLMyMZKsfSoaOCAWkwggFlMB8GA1UdIwQYMBaAFHVxpxlIGbydnepBR9+UxEh3mdN5MB0GA1UdDgQWBBTTTsMZulhZ0Rxgt2FTRzund4/4ijAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADA+BgNVHSAENzA1MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPRUNDQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwcQYIKwYBBQUHAQEEZTBjMDsGCCsGAQUFBzAChi9odHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9FQ0NBZGRUcnVzdENBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMAoGCCqGSM49BAMDA2gAMGUCMQDmPWS98nREWdt4xB83r9MVvgG5INpKHi6V1dUYlCqvSvXXjK0QvZSrOB7cj9RavGgCMG2xJNG+SvlTWEYpmK7eXSgmRUgoBDeQ0yDKlnxmeeOBnnCaDIxAcA3aCj2Gtdt3sA==" ], "serial": "AOuK+SpehGoJu7FC2bRJoxQ=", "issuer_spki_sha256": "YH3gQW7+dkqR106QZabQ1Aj+6wtLuy70aAZpWreNcBc=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1760026972620 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1760026972722 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1760026972505 } ] } }, { "ca_sha256_fingerprint": "179FBC148A3DD00FD24EA13458CC43BFA7F59C8182D783A513F6EBEC100C8924", "ca_label": "GlobalSign", "test_website_revoked": "https://revoked.r5.roots.globalsign.com", "detail": { "end_entity_cert": "MIIFjDCCBRKgAwIBAgIQAR8h414GYUD9+fLP2Xs7GDAKBggqhkjOPQQDAzBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBBdGxhcyBFQ0NSNSBPViBUTFMgQ0EgMjAyNSBRMjAeFw0yNTA2MTcxMjA0NTFaFw0yNjA3MTkxMjA0NTBaMHcxCzAJBgNVBAYTAkdCMQ0wCwYDVQQIDARLZW50MRIwEAYDVQQHDAlNYWlkc3RvbmUxGzAZBgNVBAoMEkdNTyBHbG9iYWxTaWduIExURDEoMCYGA1UEAwwfcmV2b2tlZC5yNS5yb290cy5nbG9iYWxzaWduLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IABEscLBukyeUFRWDTzgkP/w/NEwhG/hOESTR68D9+irWmxFD3S1fyREZRJpF7gdB5Bp/tu9c8ngQ7pPlukBnXRwZFnp5LUZ+STVi7qcHl7o0FGmJN1sGpjWDKbQQ9F9KuA6OCA30wggN5MCoGA1UdEQQjMCGCH3Jldm9rZWQucjUucm9vdHMuZ2xvYmFsc2lnbi5jb20wDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU7KNW99H4GJbgeLjCSThBaybYki0wVwYDVR0gBFAwTjAIBgZngQwBAgIwQgYKKwYBBAGgMgoBAjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAMBgNVHRMBAf8EAjAAMIGkBggrBgEFBQcBAQSBlzCBlDBDBggrBgEFBQcwAYY3aHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vY2EvZ3NhdGxhc2VjY3I1b3Z0bHNjYTIwMjVxMjBNBggrBgEFBQcwAoZBaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NhdGxhc2VjY3I1b3Z0bHNjYTIwMjVxMi5jcnQwHwYDVR0jBBgwFoAUAljWByvUPeTR0YngGGyGmABiqV4wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9jYS9nc2F0bGFzZWNjcjVvdnRsc2NhMjAyNXEyLmNybDCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcAlLHBirDQV8R74KwEDh8svI3DdXJ7yVHyClJhJoY7pzwAAAGXfccolAAABAMASDBGAiEAqkAEGVspcYxK15vziJcb/T8keDUaC5pJ8UJ8KSZ40C8CIQDTkjx1Xgm8xqSvIDsYUpRyG6zaVs2bpGgd3BYaU73tUgB2ANdtfRDRp/V3wsfpX9cAv/mCyTNaZeHQswFzF8DIxWl3AAABl33HKLIAAAQDAEcwRQIgduBK5zFdqvc0NrvAwQ8DjqyH8CQAlZjqk1zSN6oCaQoCIQCH2t5rhFWiDrrwaGDN+vh21pSQWDSXAu6ycxOKwvX0LAB2AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABl33HKfEAAAQDAEcwRQIgdunvaepPkQOhfOfMYrH8E/f99+BBhs5VZNyTe00AhakCIQCN8JTvDDl8PNAnEYlIqKptIsLnT+1IC05/XCIUHal5sTAKBggqhkjOPQQDAwNoADBlAjBmJQGdrwPcxkHY6VlRKAqKdxhuB5RK89iRLEICxZHh7FVgRtjN4RxYMd8BqjDuVdACMQDtywKaG1QO44vFxgNwfNrJGVpO316hpLmHP6NuLIrvL7m7bw4zynk/ZdG7/5oI804=", "intermediates": [ "MIIDSTCCAs6gAwIBAgIRAIK3ZRYh2amL5sn/OEXsDyowCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTI1MDEyMjA0MDY0MFoXDTI3MDEyMjAwMDAwMFowWzELMAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2JhbFNpZ24gQXRsYXMgRUNDUjUgT1YgVExTIENBIDIwMjUgUTIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQsv/j9xLMx18RdBbWU0iNlzdQ1rRj4E4pEHleZagW6vP4u0iNIS1bxB2uaeQFTx/lwzTGNVzDs7ys0UKGNfVRxLSk1yB94/KXE+yseNA7v/Jr0JBT2GQctmv1undpbunOjggFfMIIBWzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAJY1gcr1D3k0dGJ4BhshpgAYqleMB8GA1UdIwQYMBaAFD3mKUib6gfKIURKJt5u3tKD0J9ZMHsGCCsGAQUFBwEBBG8wbTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AyLmdsb2JhbHNpZ24uY29tL3Jvb3RyNTA7BggrBgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvcm9vdC1yNS5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9yb290LXI1LmNybDAhBgNVHSAEGjAYMAgGBmeBDAECAjAMBgorBgEEAaAyCgECMAoGCCqGSM49BAMDA2kAMGYCMQCXe/ZSukWLrOc2pnRKBYAZSuXrNrPnla7KhSJ3ejZtLDldyf6v0RvO/6VqG61irKoCMQDalls2pvpX7JXL6GJLds5gtZq0GiMWTTh5DQ5Zxkyh7I5ZCt5P+0YCk7iHTvO5Tjc=" ], "serial": "AR8h414GYUD9+fLP2Xs7GA==", "issuer_spki_sha256": "nAnMTUK7YP5ZZlz8EgN1MN1Fp4SLWnez+RLUfswj0O4=", "scts": [ { "log_id": "lLHBirDQV8R74KwEDh8svI3DdXJ7yVHyClJhJoY7pzw=", "timestamp": 1750161893524 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1750161893554 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1750161893873 } ] } }, { "ca_sha256_fingerprint": "18CE6CFE7BF14E60B2E347B8DFE868CB31D02EBB3ADA271569F50343B46DB3A4", "ca_label": "Amazon Root CA 3", "test_website_revoked": "https://revoked.sca3a.amazontrust.com/", "detail": { "end_entity_cert": "MIIEgDCCBCWgAwIBAgIQDdrHQDIPMWy+TLz088PvezAKBggqhkjOPQQDAjA9MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMR0wGwYDVQQDExRBbWF6b24gRUNEU0EgMjU2IE0wMTAeFw0yNjA3MDYwMDAwMDBaFw0yNzAxMTkyMzU5NTlaMC8xLTArBgNVBAMTJHJldm9rZWQucm9vdGNhMy5kZW1vLmFtYXpvbnRydXN0LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNdQPkdtGcnfMx1nj6HnE5j2jAckufxMMlmRWqljrBWL+tA8nnaFTvBKf872gbeoA9kWoousOk5pI2Lf3VvfN7CjggMTMIIDDzAfBgNVHSMEGDAWgBRPWfy8BhYov6LI2wj7zxMkumlCXDAdBgNVHQ4EFgQUsBYu63GHWuQcb5TL/uaSo1fQ7OQwTgYDVR0RBEcwRYIkcmV2b2tlZC5yb290Y2EzLmRlbW8uYW1hem9udHJ1c3QuY29tgh1yZXZva2VkLnNjYTNhLmFtYXpvbnRydXN0LmNvbTATBgNVHSAEDDAKMAgGBmeBDAECATAOBgNVHQ8BAf8EBAMCA4gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5lMm0wMS5hbWF6b250cnVzdC5jb20vZTJtMDEuY3JsMHUGCCsGAQUFBwEBBGkwZzAtBggrBgEFBQcwAYYhaHR0cDovL29jc3AuZTJtMDEuYW1hem9udHJ1c3QuY29tMDYGCCsGAQUFBzAChipodHRwOi8vY3J0LmUybTAxLmFtYXpvbnRydXN0LmNvbS9lMm0wMS5jZXIwDAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHYATGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviYAAAGfOJZvwwAABAMARzBFAiEAk2oVbOOv9MLHCnEWMFzxZonRLXAeIyp5sSvhWDdDxMICIERZOAn7eEabRx4QGoAAxkX+BaDqIeCCShD3kAZ4gBdfAHcA1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwIAAAGfOJZvigAABAMASDBGAiEA7hxq+sSv0FmVqziyfAAiz9nUfQfxgYYGy3DAUIPVzuwCIQCwC54+uvHC/h3XmbHPpmxx1RQisrpqbNJ/5bNBcuvOmwB2AETCvQzpFA5kpclKAZMKWqG7NZcOAO4RFoloKhxE17VmAAABnziWb8gAAAQDAEcwRQIgYSXX4Yk+/xVlM2zAGGYIjAt6fzR9epI8bSDFOIo5v6QCIQDfFFM2I/3Vt+kcM5hdw5TdzEmbfjPJCHB8rPsRZ7vQUDAKBggqhkjOPQQDAgNJADBGAiEAzYKDlJvlnSx62C/eAJM8z+j0SbxdOs6XaQAPOgEeZ5ECIQCRO10VT9TWceG2fhCI05izbb4Anc7oPUknOI4jKNa7AQ==", "intermediates": [ "MIIC0zCCAnmgAwIBAgITB3MSZoTVd8D8+NOjQr6ob5T8jzAKBggqhkjOPQQDAjA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTIyMDgyMzIyMzE0NloXDTMwMDgyMzIyMzE0NlowPTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEdMBsGA1UEAxMUQW1hem9uIEVDRFNBIDI1NiBNMDEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAT80w+2RwNHzyXmVUM/OUKBZpJkTzHyCKDl4sBrUfjzVjot/lNba9kYzMKSHYv95CUDoMaF2h2KAqx65uLQY8ago4IBWjCCAVYwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB0GA1UdDgQWBBRPWfy8BhYov6LI2wj7zxMkumlCXDAfBgNVHSMEGDAWgBSrttvXBp43rDCGB5Fwx5zEGbF4wDB7BggrBgEFBQcBAQRvMG0wLwYIKwYBBQUHMAGGI2h0dHA6Ly9vY3NwLnJvb3RjYTMuYW1hem9udHJ1c3QuY29tMDoGCCsGAQUFBzAChi5odHRwOi8vY3J0LnJvb3RjYTMuYW1hem9udHJ1c3QuY29tL3Jvb3RjYTMuY2VyMD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly9jcmwucm9vdGNhMy5hbWF6b250cnVzdC5jb20vcm9vdGNhMy5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgEwCgYIKoZIzj0EAwIDSAAwRQIhALRfxq3SQIhj5xA4S5UAY/KlKqayZDpnbBdCDH8Kqmf/AiAUVZddALefnqRe+ifxN2FUp461LL6/cgVMEH3Ty27f1Q==", "MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==" ], "serial": "DdrHQDIPMWy+TLz088Pvew==", "issuer_spki_sha256": "Qn2rVbyC3wQTe4rKJB9XU1WaCtwtBNpusM7f5eHjj9M=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783360810947 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783360810890 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1783360810952 } ] } }, { "ca_sha256_fingerprint": "193144F431E0FDDB740717D4DE926A571133884B4360D30E272913CBE660CE41", "ca_label": "SwissSign RSA TLS Root CA 2022 - 1", "test_website_revoked": "https://ev-rsa-tls-2022-1-revoked-cert-demo.swisssign.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "V/sJD0G1E5oWzAzjt6mYqnsg8Cs=", "issuer_spki_sha256": "Bn9jzIIfxMU9TZeTnNy2O98e9NZidLgEpgEoR6vfT8c=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783463299814 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783463299858 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1783463299765 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1783463299928 }, { "log_id": "7drrgVxjITRJtHvlB3kFq9DZMUfCesUUazvFjkPptsc=", "timestamp": 1783463299871 } ] } }, { "ca_sha256_fingerprint": "1BA5B2AA8C65401A82960118F80BEC4F62304D83CEC4713A19C39C011EA46DB4", "ca_label": "Amazon Root CA 2", "test_website_revoked": "https://revoked.sca2a.amazontrust.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "CXatLbQ9WRXzzOmFQ6YZ+Q==", "issuer_spki_sha256": "iZEKooQ3Z2hRlfox5B5j5upQGSBxBNialNi2XBoFqSc=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783360815813 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783360815812 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1783360815988 } ] } }, { "ca_sha256_fingerprint": "22A2C1F7BDED704CC1E701B5F408C310880FE956B5DE2A4A44F99C873A25A7C8", "ca_label": "SSL.com EV Root Certification Authority ECC", "test_website_revoked": "https://revoked-ecc-ev.ssl.com", "detail": { "end_entity_cert": "MIIFvjCCBUSgAwIBAgIQYGZBARGlACGH8mZRfCxPHzAKBggqhkjOPQQDAzByMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24xETAPBgNVBAoMCFNTTCBDb3JwMS4wLAYDVQQDDCVTU0wuY29tIEVWIFNTTCBJbnRlcm1lZGlhdGUgQ0EgRUNDIFIyMB4XDTI1MDkyNTE3MTg0N1oXDTI2MDkyNTE3MTg0N1owgdkxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEiMCAGA1UECgwZU1NMLmNvbSAoU1NMIENvcnBvcmF0aW9uKTEWMBQGA1UEBRMNTlYyMDA4MTYxNDI0MzEfMB0GA1UEAwwWcmV2b2tlZC1lY2MtZXYuc3NsLmNvbTEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xFzAVBgsrBgEEAYI3PAIBAgwGTmV2YWRhMRMwEQYLKwYBBAGCNzwCAQMTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGHxqm7/smsX2qreMtyp0CdmsU301h7iZU20QGndauAIZj40VSZctlRBNrvNI63EQTcV7dogHaNu5/YYclrWP06OCA1IwggNOMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUhO74eT4IZHZIZDn1sb+LAl4LvCcwdAYIKwYBBQUHAQEEaDBmMEIGCCsGAQUFBzAChjZodHRwOi8vY2VydC5zc2wuY29tL1NTTGNvbS1TdWJDQS1FVi1TU0wtRUNDLTM4NC1SMi5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3Nwcy5zc2wuY29tMD0GA1UdEQQ2MDSCFnJldm9rZWQtZWNjLWV2LnNzbC5jb22CGnd3dy5yZXZva2VkLWVjYy1ldi5zc2wuY29tMFAGA1UdIARJMEcwBwYFZ4EMAQEwPAYMKwYBBAGCqTABAwEEMCwwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LnNzbC5jb20vcmVwb3NpdG9yeTAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwRwYDVR0fBEAwPjA8oDqgOIY2aHR0cDovL2NybHMuc3NsLmNvbS9TU0xjb20tU3ViQ0EtRVYtU1NMLUVDQy0zODQtUjIuY3JsMB0GA1UdDgQWBBQverDlvULMhmDaAUnWYnLIL7oNEjAOBgNVHQ8BAf8EBAMCB4AwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB2AMIxfldFGaNF7n843rKQQevHwiFaIr9/1bWtdprZDlLNAAABmYHrqLcAAAQDAEcwRQIgJvfI2g4NCfJtPUulIzzv2tJ/ig3tVWtT7pJ/fsfT+RQCIQDXtneYsbij2QstJteLniGdjlE+iSgXZEYEOuQV43N+JgB1AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABmYHrqNEAAAQDAEYwRAIgbDBBd5wNkAb0SOAs27gna6Md4m4S1sWufCGJrqjqEfACIEvdK4xQO6BYNgOU//eNiTpX/AUWjCi7Rd5A/3Lts13VAHYA2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQAAAGZgeuouwAABAMARzBFAiAwe/W2hIpwBjsuo1yjyBswa1p0+9rb04Ww0xEcAoBC6QIhANXmh67ofELEuQrMNBmRDugrABQ+Sy08lL9V9hz8b7qBMAoGCCqGSM49BAMDA2gAMGUCMDM8T173z6wz/brq6n09/A/DZRVWTnyTBHvaLFpKNtgYEO3F5g0kKkkbfXsRmwL4EgIxAK5e89LxCZHGpX2RZ1Yi+Uy/bh8rx96oNIUAqVu3H5zTPxs8nLbN+Gm4ofYyRDo44g==", "intermediates": [ "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" ], "serial": "YGZBARGlACGH8mZRfCxPHw==", "issuer_spki_sha256": "d1tKuR2aFFnhw8eRBoNei7sB4YWR1iQmOEmGB337A0k=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1758821329079 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758821329105 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1758821329083 } ] } }, { "ca_sha256_fingerprint": "242B69742FCB1E5B2ABF98898B94572187544E5B4D9911786573621F6A74B82C", "ca_label": "Telia Root CA v2", "test_website_revoked": "https://juolukka.cover.telia.fi:10601/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AZ8bdoC7idLu7G+kyXCE", "issuer_spki_sha256": "pbnDROwxL9imiYDtQcKHL4D07MvFyHJGsfaj/hTH+uw=", "scts": [ { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782872179018 }, { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1782872179243 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1782872179071 } ] } }, { "ca_sha256_fingerprint": "2530CC8E98321502BAD96F9B1FBA1B099E2D299E0F4548BB914F363BC0D4531F", "ca_label": "Izenpe.com", "test_website_revoked": "https://test-revoked-ev.izenpe.eus", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "DXMdSa5U2ClpwpbPMilXXA==", "issuer_spki_sha256": "BjaOlbGE+OH8+vlWV2hZE4pvFyfXCm2QvaM1twHCrYk=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1774360271855 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1774360272310 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1774360272661 } ] } }, { "ca_sha256_fingerprint": "2CABEAFE37D06CA22ABA7391C0033D25982952C453647349763A3AB5AD6CCF69", "ca_label": "GlobalSign", "test_website_revoked": "https://revoked.r6.roots.globalsign.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIGnDCCBISgAwIBAgIRAIPahsFYPxTTweDRpvLfKaAwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMjUwNzE2MDMwNjUzWhcNMjcwNzE2MDAwMDAwWjBYMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEuMCwGA1UEAxMlR2xvYmFsU2lnbiBBdGxhcyBSNiBFViBUTFMgQ0EgMjAyNSBRNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIpkLHX7I27mJ8ID0YaMiOy5y9tKv/PO6ysCEDC32nFxgluw3I/+eVAbKcfXH1beEBpUmmW0U5x9E/S2MRqvLxcCi4+lBL7SxeX8EBmnvIBEGrQycPJALXxTR/Ej0glNFsdgfZsUIhLB/Yn7HdXjRatiy9Vfx9RYOdTqYodhBCVthU/oCRo3gMMpPySTdAkXdQDdh6w6Zvd9HiazaeQC9zBMBychXUlpA6C0wS6AvvVXpmTWmM+ybsYzvCuz5Nz9usteZFReSYxcHbD1gFTPm4itmgQtRRZeXn9IBKiIP5T5d46+VzP/qmVWIT/y2sOVnlHA37gkZtIdFeiKLrrfXzydhJGyLJQHtku4DxSiD/rv7S8CgWkSEHeOsP0KcrVDIDCrVhsxDQJfRzJjbebRjYZPDhCYQdw0DpvaN0cT7wNtwf+i4B4tiAldpUJASWdtVUbcJ6iHrC0mEhxNFxMF9URz2W7r7bVp9Pjd5b+FV1llFMK5AaeL4pJseA91PPv2LPe/zoWaquYDdSR1Lu3RUAATMtMQrorq0Hy+EGstqh5AXM5gAcR76GVI3izUiENmHyCrJi7V+EJy24GIAEfqNtJf7qJi85unZIJJZTaXZB6BdVwZBe10crMc4oqibFyOj3ymUgIgaqNDSDChut2jmL647qJBiioEv1vIDqO6xWq5AgMBAAGjggFrMIIBZzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHtkuJjoMDrTO80C2wuaky04rgV7MB8GA1UdIwQYMBaAFK5sBaOTE+Ki5+LXHNbH8H/IZ1OgMHsGCCsGAQUFBwEBBG8wbTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AyLmdsb2JhbHNpZ24uY29tL3Jvb3RyNjA7BggrBgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvcm9vdC1yNi5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9yb290LXI2LmNybDAtBgNVHSAEJjAkMAcGBWeBDAEBMAwGCisGAQQBoDIKAQEwCwYJKwYBBAGgMgEBMA0GCSqGSIb3DQEBDAUAA4ICAQBmAjKkBWea8hnGKP9MDhRoexlG3VQ2gPBaliy3wEX6DRhRWVxo/oCnYHoqWzVmVg5cuztLnZiA3CtXQXVyNkOdUL7PNUdelUxHzlF9TqEGHPwfccVFk1eIPw2Nlzp5ycr+tZCdO3DQMiveRJvrrB6Gpn3ZG/F3EoXCmYQcGXdc1obT38bsfP8mwNzz2HHygFm3NzRWLchlnctShbLMHhzwlCRi8pdzs9iS3QJi1WxtFZ57rExg7a8x8KQbdn1B1jq+vbfMtKF3n0XBGtE5Wc6cjUJ+GIs0SdTL47qbM+ViD+Z5PdTR/7fV10WCJSUhnUXe9YwO+L3hLCBgDJ/KDLEV3WW1YuYP7cqshx5ptUi4R7Ir1osNmJyy4JPUnmT/IAQMxGs2yEvLrE3tpk4dkO+RyUxzHy6LSV00K/4EUz7haL7oHUWD0vW/QxuJ2ueLFLxCOYiu6hN9yVi8ObQ5/NdXGn0q29I8ksuSzKFWfcbWRehF77T4T2T4LQEfequH2vPfKNkxcBUqAoe1OStac34Jn3xlMxMaGXlcNNpkZFEcCLwT2QrOVZXQAGEXxU33yqTZZGxzf1AmVXFyG9nlRwcNBeMgkEDzpSJmcl9nQUNOqk5k/OTdZt3u9+VfomnGjAgwBGvIsZRiWL61V4ZMhBNZPuEsk3cz4dd4M8MHkHzf8w==", "MIIFUTCCBDmgAwIBAgIQdR4/VknnTLv2nQAmtnyqjDANBgkqhkiG9w0BAQwFADBXMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTE5MDYxOTAwMDAwMFoXDTI4MDEyODEyMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCVB+hzymb57BTKezz3DQjxtEULLIK0SMbrWzyug7hBkjMUpG9/6SrMxrCIa8W2idHGsv8UzlEUIexK3RtaxtaH7k06FQbtZGYLkoDKRN5zlE7zp4l/T3hjCMgSUG1CZi9NuXkoTVIaihqAtxmBDn7EirxkTCEcQ2jXPTyKxbJm1ZCatzEGxb7ibTIGph75ueuqo7i/voJjUNDwGInf5A959eqiHyrScC5757yTu21T4kh8jBAHOP9msndhfuDqjDyqtKT285VKEgdt/Yyyic/QoGF3yFh0sNQjOvddOsqi250J3l1ELZDxgc1Xkvp+vFAEYzTfa5MYvms2sjnkrCQ2t/DvthwTV5O23rL44oW3c6K4NapF8uCdNqFvVIrxclZuLojFUUJEFZTuo8U4lptOTloLR/MGNkl3MLxxN+Wm7CEIdfzmYRY/d9XZkZeECmzUAk10wBTt/Tn7g/JeFKEEsAvp/u6P4W4LsgizYWYJarEGOmWWWcDwNf3J2iiNGhGHcIEKqJp1HZ46hgUAntuA1iX53AWeJ1lMdjlb6vmlodiDD9H/3zAR+YXPM0j1ym1kFCx6WE/TSwhJxZVkGmMOeT31s4zKWK2cQkV5bg6HGVxUsWW2v4yb3BPpDW+4LtxnbsmLEbWEFIoAGXCDeZGXkdQaJ783HjIH2BRjPChMrwIDAQABo4IBIjCCAR4wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFK5sBaOTE+Ki5+LXHNbH8H/IZ1OgMB8GA1UdIwQYMBaAFGB7ZhpFDZfKiVAvfQTNNKj//P1LMD0GCCsGAQUFBwEBBDEwLzAtBggrBgEFBQcwAYYhaHR0cDovL29jc3AuZ2xvYmFsc2lnbi5jb20vcm9vdHIxMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vcm9vdC5jcmwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEBDAUAA4IBAQDHrE3fEsZgYRw59I03e5wt03B45il4hAHmquLc33pbkGZn6r3GgoKVzvwCaBgtl6Jp93gZD8G5UjAFLj840jWDhOP7KSX6Q7rGjOsWNFFDJJLDUKQeJpB1PTRuHqVI15zxiCl/VCP7mbTW7X/pILaFOPO+T0Qj+TUOU37WOjk6wdeyyOFiDhKSwH2YVE4YlAo0R10Jo3uNnSCFBgPw7gy1xt1+ajCbnzZYpQNXFy/0Lp9h3JOClE7TGvliFUazCjxvhHm5YWqulA51wFT2K9LRiiEWw3UJAgTTmxASitVHHLb3erkETk6SCwGvOG1eD0qLwuSeARZmhw3xFOCvMHeQ" ], "serial": "AdUgkmNbyfTcFYFWUE3eAw==", "issuer_spki_sha256": "DS4YDt78h//kz9TVAfb1h7QTx0PQHfVkxGU9iOqRZOE=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1763478001531 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1763478001746 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1763478001940 } ] } }, { "ca_sha256_fingerprint": "2CE1CB0BF9D2F9E102993FBE215152C3B2DD0CABDE1C68E5319B839154DBB7F5", "ca_label": "Starfield Root Certificate Authority - G2", "test_website_revoked": "https://revoked.sfig2.catest.starfieldtech.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFADCCA+igAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTExMDUwMzA3MDAwMFoXDTMxMDUwMzA3MDAwMFowgcYxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTMwMQYDVQQLEypodHRwOi8vY2VydHMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9yeS8xNDAyBgNVBAMTK1N0YXJmaWVsZCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDlkGZL7PlGcakgg77pbL9KyUhpgXVObST2yxcT+LBxWYR6ayuFpDS1FuXLzOlBcCykLtb6Mn3hqN6UEKwxwcDYav9ZJ6t21vwLdGu4p64/xFT0tDFE3ZNWjKRMXpuJyySDm+JXfbfYEh/JhW300YDxUJuHrtQLEAX7J7oobRfpDtZNuTlVBv8KJAV+L8YdcmzUiymMV33a2etmGtNPp99/UsQwxaXJDgLFU793OGgGJMNmyDd+MB5FcSM1/5DYKp2N57CSTTx/KgqT3M0WRmX3YISLdkuRJ3MUkuDq7o8W6o0OPnYXv32JgIBEQ+ct4EMJddo26K3biTr1XRKOIwSDAgMBAAGjggEsMIIBKDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUJUWBaFAmOD07LSy+zWrZtj2zZmMwHwYDVR0jBBgwFoAUfAwyH6fZMH/EfWijYqihzqsHWycwOgYIKwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5zdGFyZmllbGR0ZWNoLmNvbS8wOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zdGFyZmllbGR0ZWNoLmNvbS9zZnJvb3QtZzIuY3JsMEwGA1UdIARFMEMwQQYEVR0gADA5MDcGCCsGAQUFBwIBFitodHRwczovL2NlcnRzLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRvcnkvMA0GCSqGSIb3DQEBCwUAA4IBAQBWZcr+8z8KqJOLGMfeQ2kTNCC+Tl94qGuc22pNQdvBE+zcMQAiXvcAngzgNGU0+bE6TkjIEoGIXFs+CFN69xpk37hQYcxTUUApS8L0rjpf5MqtJsxOYUPl/VemN3DOQyuwlMOS6eFfqhBJt2nk4NAfZKQrzR9voPiEJBjOeT2pkb9UGBOJmVQRDVXFJgt5T1ocbvlj2xSApAer+rKluYjdkf5lO6Sjeb6JTeHQsPTIFwwKlhR8Cbds4cLYVdQYoKpBaXAko7nv6VrcPuuUSvC33l8Odvr7+2kDRUBQ7nIMpBKGgc0T0U7EPMpODdIm8QC3tKai4W56gf0wrHofx1l7", "MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/KpL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0" ], "serial": "A1KP9PT9/yQ=", "issuer_spki_sha256": "8kGWrpQHhmc0jwLo43RYo6bmqtHgsNxhARjM5yFCe/w=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1757985855981 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1757985856262 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1757985856429 } ] } }, { "ca_sha256_fingerprint": "2E44102AB58CB85419451C8E19D9ACF3662CAFBC614B6A53960A30F7D0E2EB41", "ca_label": "TunTrust Root CA", "test_website_revoked": "https://revokedovssl.tuntrust.tn", "error": "invalid peer certificate: Other(OtherError(NameConstraintViolation))" }, { "ca_sha256_fingerprint": "2E7BF16CC22485A7BBE2AA8696750761B0AE39BE3B2FE9D0CC6D4EF73491425C", "ca_label": "SSL.com EV Root Certification Authority RSA R2", "test_website_revoked": "https://revoked-rsa-ev.ssl.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "KL+QoUolsXj1cskOdQfvkQ==", "issuer_spki_sha256": "4V6KJv09j4wCTdB1kG8+rfM7XCExYEpiXCGzJNL58IQ=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1759426108929 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1759426108883 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1759426108942 } ] } }, { "ca_sha256_fingerprint": "30D0895A9A448A262091635522D1F52010B5867ACAE12C78EF958FD4F4389F2F", "ca_label": "IdenTrust Public Sector Root CA 1", "test_website_revoked": "https://identrust-public-ov-revoked.identrustssl.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "QAGe+j5NNawvnT3WgXdPDw==", "issuer_spki_sha256": "8tH7Dh4xfmk7Qci7zhMFmxVcpAzVMwFBeAsRhtLDaLg=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782314847626 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782314847693 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782314847719 } ] } }, { "ca_sha256_fingerprint": "30FBBA2C32238E2A98547AF97931E550428B9B3F1C8EEB6633DCFA86C5B27DD3", "ca_label": "vTrus ECC Root CA", "test_website_revoked": "https://revokeecc.itrus.cn/", "detail": { "end_entity_cert": "MIIFVTCCBPugAwIBAgIUY5m6C+JuxtqdbNTjJ0wKeeS3/h0wCgYIKoZIzj0EAwIwSTELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xHDAaBgNVBAMTE3ZUcnVzIEVDQyBPViBTU0wgQ0EwHhcNMjUwOTI1MDAzODI0WhcNMjYxMDI1MDAzODI0WjCBjTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeWMl+S6rOW4gjESMBAGA1UEBwwJ5YyX5Lqs5biCMTkwNwYDVQQKDDDljJfkuqzlpKnlqIHor5rkv6HnlLXlrZDllYbliqHmnI3liqHmnInpmZDlhazlj7gxGzAZBgNVBAMMEnJldm9rZWVjYy5pdHJ1cy5jbjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKR5RHYK2iHkUw1+6c7nPdG4DzN2mjAGlooyfZXc2pxeAt+XEC671dPxFXmxJzHAWL0Sjfbx4XHB/QEDj4zXMPmjggN6MIIDdjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwaQYDVR0fBGIwYDBeoFygWoZYaHR0cDovL3d0Y2EtY3JsLml0cnVzLmNvbS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MkU4MkExMDUxOTJFMjA3MTlFMDBCRUU4MTc4ODkwQzU1RURDNUY4MDCBlAYIKwYBBQUHAQEEgYcwgYQwOQYIKwYBBQUHMAGGLWh0dHA6Ly93dG9jc3AtY2RuLml0cnVzLmNvbS5jbi9vY3NwL29jc3Avb2NzcDBHBggrBgEFBQcwAoY7aHR0cDovL3d0Y2EtY2FmaWxlcy5pdHJ1cy5jb20uY24vY2EvdlRydXMtRUNDLU9WLVNTTC1DQS5jZXIwVAYDVR0gBE0wSzA/BgoqgRyG7xcBAQUBMDEwLwYIKwYBBQUHAgEWI2h0dHBzOi8vd3d3Lml0cnVzLmNvbS5jbi9yZXBvc2l0b3J5MAgGBmeBDAECAjAdBgNVHREEFjAUghJyZXZva2VlY2MuaXRydXMuY24wHwYDVR0jBBgwFoAUNfnvzmB3b7vAn2gnGoeDBHCIFcYwHQYDVR0OBBYEFA7olZWMp4wiVLffA3ExIEMxLUN9MIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZl+TqIgAAAEAwBHMEUCIQCFFQLnD7a1UotjHO0ST6AUn5K6Yk1KS/cxGmLGCqHTTgIgPrjfTpHyR8cJKio4dihv8C8s7s2UFN16Q53vbRTdAPkAdgDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZl+TqDBAAAEAwBHMEUCIFPOw6SRuVdBzoJ12AHB04JFAKbpFRamBkf3ZVT++IVRAiEAuUHY1GMCfvPRb063RfsRhmgu5/rldmLvgumQgHEkbdgAdgDCMX5XRRmjRe5/ON6ykEHrx8IhWiK/f9W1rXaa2Q5SzQAAAZl+TqEeAAAEAwBHMEUCICEF+D7CT3JbCXgumdVGpv2zAU8EakEZHAI0SnhMcPA+AiEAy6L5Urgm7ObZU/snX0XX/gXWgVn88GToXjFr88HjImEwCgYIKoZIzj0EAwIDSAAwRQIhALOAdsS/CwvHFkQAk0ObMnxilK8jXqcn3YCR21ux6mC+AiATJBkaAbmM/k7/6Sg8nmx7ZmreGkYFbFz8RGrYZU+3BQ==", "intermediates": [ "MIIDLzCCArWgAwIBAgIULoKhBRkuIHGeAL7oF4iQxV7cX4AwCgYIKoZIzj0EAwMwRzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMB4XDTI1MDkxNjA3NTUwM1oXDTM1MDkxNDA3NTUwM1owSTELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xHDAaBgNVBAMTE3ZUcnVzIEVDQyBPViBTU0wgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ1+s6s6u40bSlQGK4ebojQLkYM7toucy7/g7/2EUjNWLIzjNIX/cTpZU5YK3TYVmgSIioufkz+RkhfBme1xq9No4IBezCCAXcwHQYDVR0OBBYEFDX5785gd2+7wJ9oJxqHgwRwiBXGMB8GA1UdIwQYMBaAFJg5zb7Ysoz3sqvhrSSve3yh2x/PMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMIGOBggrBgEFBQcBAQSBgTB/MDkGCCsGAQUFBzABhi1odHRwOi8vd3RvY3NwLUNETi5pdHJ1cy5jb20uY24vb2NzcC9vY3NwL29jc3AwQgYIKwYBBQUHMAKGNmh0dHA6Ly93dGNhLWNhZmlsZXMuaXRydXMuY29tLmNuL2NhL3ZUcnVzRUNDUm9vdENBLmNlcjBIBgNVHR8EQTA/MD2gO6A5hjdodHRwOi8vd3RjYS1jYWZpbGVzLml0cnVzLmNvbS5jbi9jcmwvdlRydXNFQ0NSb290Q0EuY3JsMCEGA1UdIAQaMBgwCAYGZ4EMAQICMAwGCiqBHIbvFwEBBQEwCgYIKoZIzj0EAwMDaAAwZQIxAKS2VkN9Q921JRUxMUZZNsxBpaFm+vhR6PUP6dSHEIuUlutnpIgwUlBlFBt7VsKAggIwJ71I1nHauDK0+aYdTzWDSPUheI49EfOvNFxZCjnQ+ZgR9YVtoKWYKZSLYoLJ5wHr" ], "serial": "Y5m6C+JuxtqdbNTjJ0wKeeS3/h0=", "issuer_spki_sha256": "atwg6ejpADR/jBbKnuSFzeAuVeHiQKJdUl2HSR0gLmU=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758760706592 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758760706241 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1758760706334 } ] } }, { "ca_sha256_fingerprint": "31AD6648F8104138C738F39EA4320133393E3A18CC02296EF97C2AC9EF6731D0", "ca_label": "DigiCert Global Root G3", "test_website_revoked": "https://global-root-g3-revoked.chain-demos.digicert.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDeTCCAv+gAwIBAgIQCwDpLU1tcx/KMFnHyx4YhjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaMFkxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMzAxBgNVBAMTKkRpZ2lDZXJ0IEdsb2JhbCBHMyBUTFMgRUNDIFNIQTM4NCAyMDIwIENBMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABHipnHWuiF1jpK1dhtgQSdavklljQyOF9EhlMM1KNJWmDj7ZfAjXVwUoSJ4Lq+vC05ae7UXSi4rOAUsXQ+Fzz21zSDTcAEYJtVZUyV96xxMH0GwYF2zK28cLJlYujQf1Z6OCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIoj655r1/k3XfltITl2mqFn3hCoMB8GA1UdIwQYMBaAFLPbSKT5ocXYrjZBzBFjaWIpvEvGMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RHMy5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEczLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzAKBggqhkjOPQQDAwNoADBlAjB+Jlhu7ojsDN0VQe56uJmZcNFiZU+gIJ5HsVvBsmcxHcxyeq8ickBCbmWE/odLDxkCMQDmv9auNIdbP2fHHahv1RJ4teaHMUSpXca4eMzP79QyWBH/OoUGPB2Eb9P1+dozHKQ=" ], "serial": "BK5UnizS/zh0dGtCVhIZ0g==", "issuer_spki_sha256": "qBRjZmOmkSNJL0p70zek7odSIzqs/muR4Jk9xYyCP+E=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155748279 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155748232 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155748282 } ] } }, { "ca_sha256_fingerprint": "3417BB06CC6007DA1B961C920B8AB4CE3FAD820E4AA30B9ACBC4A74EBDCEBC65", "ca_label": "SSL.com Root Certification Authority ECC", "test_website_revoked": "https://revoked-ecc-dv.ssl.com", "detail": { "end_entity_cert": "MIIEoDCCBCegAwIBAgIQLszvByA7OMCnOoa558JwqzAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSYwJAYDVQQDDB1TU0wuY29tIFRMUyBJc3N1aW5nIEVDQyBDQSBSMjAeFw0yNjA2MDkxMzUyMzhaFw0yNjEyMjQxMzUyMzhaMCExHzAdBgNVBAMMFnJldm9rZWQtZWNjLWR2LnNzbC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASpcL8h1rjcMAXJX58FW/MFRjH0N0aiILhnbMZISKv72M3vAW7DNaErCno3fRMR8vcRuUaf6TIKeqo3P3uh+5cSo4IDETCCAw0wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBROuVJasY9+1jBTQ+XKXaIEjEwU9DBqBggrBgEFBQcBAQReMFwwOAYIKwYBBQUHMAKGLGh0dHA6Ly9jZXJ0LnNzbC5jb20vU1NMLmNvbS1UTFMtSS1FQ0MtUjIuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcHMuc3NsLmNvbTA9BgNVHREENjA0ghZyZXZva2VkLWVjYy1kdi5zc2wuY29tghp3d3cucmV2b2tlZC1lY2MtZHYuc3NsLmNvbTAjBgNVHSAEHDAaMAgGBmeBDAECATAOBgwrBgEEAYKpMAEDAQEwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmxzLnNzbC5jb20vU1NMLmNvbS1UTFMtSS1FQ0MtUjIuY3JsMB0GA1UdDgQWBBREqWYYZqvL4GXcZ/Azh4MUZg5T8DAOBgNVHQ8BAf8EBAMCB4AwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB1AMIxfldFGaNF7n843rKQQevHwiFaIr9/1bWtdprZDlLNAAABnqyxRe4AAAQDAEYwRAIgKo+Qcfe5EBZ9GMnn/1bgcCzGsDtHcwk+lpZEThu7XZICIE2xoAx6P01ihEyAjUFeZjJkD8R/6si1fLsjd0m9TUOVAHYAyzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOcAAAGerLFGEAAABAMARzBFAiAk7RqZK8D9WbiIDdONEDhzSIkndT0MBEeO0LlgJxuB4QIhANxszEtqJA5E1vPMmU5X5UC/LD/Sq91njRx3EduvrnjhAHYA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGerLFF7wAABAMARzBFAiEAmx92OSINoEg8LXHXzalW/ZIfwCUKh6AN58FiAD8ChpACIBHBUWprXeHYvU+5K5rx7p1Kw5N1km402cKYWlqmLRfFMAoGCCqGSM49BAMDA2cAMGQCMGCwJCYLsUMmQq+VKEJYLSUFcdlswDaAFcdKQOgomJPCl4lILCudX+j4KGBlQHB3MwIwJC6iyjSVsd7Wh7dCEsbDAoCyKOcBc3tLuNen/Wj926FM2N2F/gvGl0V6ssKJNhOB", "intermediates": [ "MIIDMjCCArmgAwIBAgIQXXRDuZTTIfJn8gTxhErHMjAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMTAyMTE3MDE0NloXDTMyMTAxODE3MDE0NVowTzELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjEmMCQGA1UEAwwdU1NMLmNvbSBUTFMgSXNzdWluZyBFQ0MgQ0EgUjIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATW47D5Jj9R0bn6C9WsOHGBS8DYaqCkMWxUiekwmabE+rDw7gGw4vRhyj/MFuC+qO4fj3zn6CKTaynRLe7hFUfc2/Fnql2gPOO2na5qRxcAt45CH4r36BYtDsEuaKMMMbWjggFZMIIBVTASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFImPL6PoK6AUVHvzVrgmX2c4C5zQMEwGCCsGAQUFBwEBBEAwPjA8BggrBgEFBQcwAoYwaHR0cDovL2NlcnQuc3NsLmNvbS9TU0xjb20tVExTLVJvb3QtMjAyMi1FQ0MuY2VyMD8GA1UdIAQ4MDYwNAYEVR0gADAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5zc2wuY29tL3JlcG9zaXRvcnkwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly9jcmxzLnNzbC5jb20vU1NMY29tLVRMUy1Sb290LTIwMjItRUNDLmNybDAdBgNVHQ4EFgQUTrlSWrGPftYwU0Plyl2iBIxMFPQwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMHVinPKrbaBpWlm+p/Geb1d2b+E97rrzMS2OBv0ubUsAYHjyKnncnNfenNdQWF4YAQIwcKGifQ4alo9dEuJvkhGrazPmEE3scNd+EKvX5v9LuIzO6sbFuMOpCptD9M3cjzDM", "MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==" ], "serial": "LszvByA7OMCnOoa558Jwqw==", "issuer_spki_sha256": "NPRrBk96t64vay83a8Kf7kLV8Vmdi/17Qgpes328/Pk=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1781013759470 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1781013759504 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1781013759471 } ] } }, { "ca_sha256_fingerprint": "349DFA4058C5E263123B398AE795573C4E1313C83FE68F93556CD5E8031B3C7D", "ca_label": "GTS Root R4", "test_website_revoked": "https://revoked.gtsr4.demosite.pki.goog", "detail": { "end_entity_cert": "MIIEhzCCBC2gAwIBAgIQK720RqH/44IKM8F6XasYdDAKBggqhkjOPQQDAjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYDVQQDEwNXRTMwHhcNMjYwNzA3MDcwNTQyWhcNMjYwODA1MDcwNTQxWjAqMSgwJgYDVQQDEx9yZXZva2VkLmd0c3I0LmRlbW9zaXRlLnBraS5nb29nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw8SRcaEMdwht+mss6c00PeD3He+nYCBMoOextkL+tVXccK8h4G1sDh3rl6gk1UVT+r6IGPxBl7ndTvmj2ECaCZQ4cWQlVDXGZB9CzbBkbdJky4NON5OAmWBG+mEihKUp1ekmtSKI9UWG9nOzKfW6a0eEZeHBTX1R92d+MLLn2gFq7p2jNS/p/9eL9qA+gcF2pyoU9g9bsz0L7xyG6ZtO5X+Ly4O7jQsl41lR5A9n/luJhAWgapO6qVtHzjHaDGLoH/2Erme02bEDQ/mxQ/Cjq8YPezYtwhUx69Va2EsdmJzsj4mNbuJyjpUWw90e8zM33jHW4o1RzXb80OqQsbohrwIDAQABo4ICVzCCAlMwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFHRVwAyhpZD1lKfpr6ufji4WcnbLMB8GA1UdIwQYMBaAFDa2LM6jtNBAkEXzi0WBwcjjGdRtMF4GCCsGAQUFBwEBBFIwUDAnBggrBgEFBQcwAYYbaHR0cDovL28ucGtpLmdvb2cvcy93ZTMvSzcwMCUGCCsGAQUFBzAChhlodHRwOi8vaS5wa2kuZ29vZy93ZTMuY3J0MCoGA1UdEQQjMCGCH3Jldm9rZWQuZ3RzcjQuZGVtb3NpdGUucGtpLmdvb2cwEwYDVR0gBAwwCjAIBgZngQwBAgEwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2MucGtpLmdvb2cvd2UzL0JiN21RNFVCWkpJLmNybDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnzudvgwAAAQDAEcwRQIgEKjdRevscymmwlfLL7h8gT+1OqaaXU/TQnWcjFEHiHYCIQDEVYF57CPwTqm+EAXrjQhKwWZa/gs1ify8immjRXWjFwB1AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABnzudvfwAAAQDAEYwRAIgfjVrm+l8I+Hvet758eLJPycKi3CXt18bDFV1Q5dxcuACIB+tw622YSTxvBrdfTmKYMZzEpcsbhe4xIRtuKqza9mmMAoGCCqGSM49BAMCA0gAMEUCIQC1QabCfuBVRuMmjqK5+9gLx+yEcAu98CrxL92jSkyMfgIgA9YhMStdzLXCdhI+jfW2h/hftO44uHmv0jwLj+WTmY0=", "intermediates": [ "MIICnzCCAiWgAwIBAgIQf/Mtbb1e3VTKTktnlXKRQzAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIwMTQwMDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYDVQQDEwNXRTMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASMcnFcZuUEVJZ5G8HCgWWQMzZzPMAvtLlUBipaNCeVkTUJqnq/ksmNGOhWkuJPqm1nWm1BUawKw3XGJ7ICt8VCo4H+MIH7MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUNrYszqO00ECQRfOLRYHByOMZ1G0wHwYDVR0jBBgwFoAUgEzW63T/STaj1dj8tT7FavCUHYwwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzAChhhodHRwOi8vaS5wa2kuZ29vZy9yNC5jcnQwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL2MucGtpLmdvb2cvci9yNC5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgEwCgYIKoZIzj0EAwMDaAAwZQIxAIJutzK4aOygK5jJtFzNrXBfbMJ1vjJRGXfT0G4Y7ZhhGsK88s6hVKBCNZnPjzsM2wIwQ+1oNQ1OVS3u5Q+qppOsa88f7zw2YZUuMzcnPlL3pdgwQOi3CE8PYWom/usNdj+u" ], "serial": "K720RqH/44IKM8F6XasYdA==", "issuer_spki_sha256": "daBIAnKdRIX3bqM85I6We7wBUh0DPycNFBMvYkXGX2Q=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783411621388 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783411621372 } ] } }, { "ca_sha256_fingerprint": "34D8A73EE208D9BCDB0D956520934B4E40E69482596E8B6F73C8426B010A6F48", "ca_label": "GTS Root R3", "test_website_revoked": "https://revoked.gtsr3.demosite.pki.goog", "detail": { "end_entity_cert": "MIIEhzCCBC2gAwIBAgIRANUPZKff0L6wCvb5uRjyeDAwCgYIKoZIzj0EAwIwOzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczEMMAoGA1UEAxMDV0U1MB4XDTI2MDcwNzA3MDU0MloXDTI2MDgwNTA3MDU0MVowKjEoMCYGA1UEAxMfcmV2b2tlZC5ndHNyMy5kZW1vc2l0ZS5wa2kuZ29vZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMATotZNbP4kNHfINAnxyA1YaAV5mk3S3ZRlaTKKaOuVq3TNuB4lqsdqQuTratAG1r5yDsJdxhHceN4fmBNzG347dYpWNP0BLW0oBs/WHARxRtY/wGlyIPlHiZFN5E+1p0MTvf5gcNIaV4T1L+D/7KhXcintxlgImjZgx0lU3P5nGAVwl+HbJxHqQqinjSAjWvKOX44Q5ND/g1cAmni9kJyaAwYQ4AOV37YbJlGlIBul7hD/OJJzOmcnSNAdtngunybt0HSdE0rB9Ah6m4ADMh8oc3yxLf5j60/HeihxPvK6h1sjSHexIkHKFJLAiP+6bfIzCcoP2lY3vaNNFCNYRBsCAwEAAaOCAlYwggJSMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBT730oCJpnVtSgfGLlxQ4RymB4MnDAfBgNVHSMEGDAWgBTUZcs4xyU8KGvpfkPDoaG45ExooDBeBggrBgEFBQcBAQRSMFAwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vLnBraS5nb29nL3Mvd2U1LzFRODAlBggrBgEFBQcwAoYZaHR0cDovL2kucGtpLmdvb2cvd2U1LmNydDAqBgNVHREEIzAhgh9yZXZva2VkLmd0c3IzLmRlbW9zaXRlLnBraS5nb29nMBMGA1UdIAQMMAowCAYGZ4EMAQIBMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jLnBraS5nb29nL3dlNS95VWtpMDZwLTJ3SS5jcmwwggECBgorBgEEAdZ5AgQCBIHzBIHwAO4AdQDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ87nZdkAAAEAwBGMEQCIGsMEIajmHxa3hL/DC3c3XGCa9sazeoGEhhHwgfwbUIkAiBMivnLMfXZ7CUAc/KiqIpafiXMnG/eu8e1PCCdHy+iBQB1AMijxH/Hs625NWsBP2p6Em3jOk5DpcZG+ZetOXWZHc+aAAABnzudlx4AAAQDAEYwRAIgVEkCWW8tMoVIgOEzG3CD+9LUWH3O/T9c2qT9jR5XGNACIHENUc8fkYETwj3cbmix1MOdw09vmf8YlD1gp9/EZxrOMAoGCCqGSM49BAMCA0gAMEUCIQDpX1Ngi5ozGxzVAoR/W9pJLnmP1MwaTLJ7UjY7PTuWpQIgH1pTjlNB6LOcjaH6DVEHhv+BfjyPJHdqW3q1cjMBxt8=", "intermediates": [ "MIICnzCCAiWgAwIBAgIQf/Tly+zZgfKt+giRPO+rFDAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIwMTQwMDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYDVQQDEwNXRTUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASIDI3hOuQkBpOFd9YcwOwfUN8WCKSQpQ48yu7c6CTtC/ODiDuudeu35m8eO08gEiu37LgeqzfX+7WrfsdbGf6io4H+MIH7MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU1GXLOMclPChr6X5Dw6GhuORMaKAwHwYDVR0jBBgwFoAUwfEmuqAtroWBz9PxKhK9uApn/bwwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzAChhhodHRwOi8vaS5wa2kuZ29vZy9yMy5jcnQwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL2MucGtpLmdvb2cvci9yMy5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgEwCgYIKoZIzj0EAwMDaAAwZQIwQjiJxp6xemwYU66H6l9GmPJ/NXqElqp5AzTz0vjijRzpwvoTo06uevFBs+ip5v/GAjEAsJ0VSBpvqCUI6stAGOoOXV2hr9F5Do9d5HAwNY+cJIofFgCbWhIhwRL9UTTFxeV0" ], "serial": "ANUPZKff0L6wCvb5uRjyeDA=", "issuer_spki_sha256": "8yZxLgpR8EbO8ANRrWKAzIzz9XdlSUgtYPkXKYUlGSY=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783411611492 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783411611422 } ] } }, { "ca_sha256_fingerprint": "358DF39D764AF9E1B766E9C972DF352EE15CFAC227AF6AD1D70E8E4A6EDCBA02", "ca_label": "Microsoft ECC Root Certificate Authority 2017", "test_website_revoked": "https://rvkeccroot2017.pki.microsoft.com/", "detail": { "end_entity_cert": "MIIGazCCBfKgAwIBAgITFQAAD6itgFyYat8KLAAAAAAPqDAKBggqhkjOPQQDAzBSMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgVExTIEcxIEVDQyBDQSAwMTAeFw0yNjA2MTkyMjM3MzZaFw0yNzAxMDMyMjM3MzZaMEwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEH+YWEhY4kJjjTetvemVV8dIfxakqPFYzWUb0/B5um5ihIc7WJGpgn8CeAz4wZbUYvQ+Rz5ip+oe/EvMZVa0vUNi29wT4CeYkVLWyI/3RCZ0Amm/C7oPD8etIoTiOslN7o4IEjjCCBIowggGABgorBgEEAdZ5AgQCBIIBcASCAWwBagB3ANbVjanQF1Pzakqgx1dJAq/rx9ws04zZ92TIDIkZHp8CAAABnuIRhGAAAAQDAEgwRgIhAKww4lDXST/JQOGGqZHsLMram/q/+RxdsmhAl9KU4+XQAiEA99s2kSkBUqO24iWOcYQx2YwRr/Uyxc60XeJEzJFAX4cAdwAAGl0aHC2TdbZIVXj4L3Ghrm7vOX0pfIrjFXvK3uGgHgAAAZ7iEYMXAAAEAwBIMEYCIQDUDEqyIfbQPUeG29bZelHWyk2d+5uCNT2vUqDh97Wx1gIhAIDErYoNOEnxf4/QGn/25d2GZ4DMeSt+4PFG1J1AhfVSAHYAHJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8AAAGe4hGDewAABAMARzBFAiAgs1wl0Y3vZad7YsFqx6XH1Am/YlargwfRcZgTeEAHfgIhANfQxfwIsnMcNvQAIEv7BVRjm1Lj3j0CmwHTpbK6p0q0MBsGCSsGAQQBgjcVCgQOMAwwCgYIKwYBBQUHAwEwPAYJKwYBBAGCNxUHBC8wLQYlKwYBBAGCNxUIh73XG4Hn60aCgZ0ujtAMh/DaHV2Btd1QhZ/9dgIBAAIBATCBzgYIKwYBBQUHAQEEgcEwgb4wWgYIKwYBBQUHMAKGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVExTJTIwRzElMjBFQ0MlMjBDQSUyMDAxLmNydDBgBggrBgEFBQcwAoZUaHR0cDovL2NhaXNzdWVycy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUTFMlMjBHMSUyMEVDQyUyMENBJTIwMDEuY3J0MB0GA1UdDgQWBBRgDYaegiEatEPtV43eMB3CRH13hTAOBgNVHQ8BAf8EBAMCB4AwKwYDVR0RBCQwIoIgcnZrZWNjcm9vdDIwMTcucGtpLm1pY3Jvc29mdC5jb20wDAYDVR0TAQH/BAIwADCBzwYDVR0fBIHHMIHEMIHBoIG+oIG7hltodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUTFMlMjBHMSUyMEVDQyUyMENBJTIwMDFfUGFydGl0aW9uMDAwOTQuY3JshlxodHRwOi8vY3JsMi5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVExTJTIwRzElMjBFQ0MlMjBDQSUyMDAxX1BhcnRpdGlvbjAwMDk0LmNybDBmBgNVHSAEXzBdMAgGBmeBDAECAjBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMB8GA1UdIwQYMBaAFHyqyand0a/Y9NJBYVcvS/jTbl0OMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAoGCCqGSM49BAMDA2cAMGQCMFBhOW5pFzglPRD1JEJ9UYxw0ZEdAohiyh4ggagI1lAP2QfkVznmtaeIfoxN1hWDLAIwLHVFH+BsN1QOZmF5ig8liDHxo50zXEGmCmpZPeQi6zA/4wDnnLQmlCz7ILQfje16", "intermediates": [ "MIIDPjCCAsSgAwIBAgIQDD0vCSCddtgbKfyz7qZsBjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0yNTA5MTcwMDAwMDBaFw0yOTA0MTUyMzU5NTlaMFIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUTFMgRzEgRUNDIENBIDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE4bf3wQ3oLe+O1eMFpJVkk4SctqalQBb9lQlW1sG1H9nL+2HUeDamOp5O8iJaem8uzjJPk7DrNDYXzJpz+WSWMw7Bp6TCqtQ4agc6QqcvYlIoRdPjyuIbvXkywM2SRjUWo4IBTjCCAUowEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUfKrJqd3Rr9j00kFhVy9L+NNuXQ4wHwYDVR0jBBgwFoAUs9tIpPmhxdiuNkHMEWNpYim8S8YwDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290RzMuY3J0MEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RHMy5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgIwCgYIKoZIzj0EAwMDaAAwZQIwcsfDAXiOZvn3QBzxwNLjx0/LNyvDeysk/DU9ofBQ/qC8I4EgUkEmPBuFLSHyShZOAjEAul4zjNv104+HcPKwH3Qrt7KYcQYzO/xCSoWkt+ud3JXvnw2LcJSWNS/zzuKeHDHr" ], "serial": "FQAAD6itgFyYat8KLAAAAAAPqA==", "issuer_spki_sha256": "p4UlhI+4INdk1HPs8+QdeU9xFTzIwh8tuwVaVcuoAdg=", "scts": [ { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1781909259360 }, { "log_id": "ABpdGhwtk3W2SFV4+C9xoa5u7zl9KXyK4xV7yt7hoB4=", "timestamp": 1781909259031 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1781909259131 } ] } }, { "ca_sha256_fingerprint": "371A00DC0533B3721A7EEB40E8419E70799D2B0A0F2C1D80693165F7CEC4AD75", "ca_label": "DigiCert TLS RSA4096 Root G5", "test_website_revoked": "https://digicert-tls-rsa4096-root-g5-revoked.chain-demos.digicert.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Da3plTPpfopky/1owBwyEw==", "issuer_spki_sha256": "5R0B4UlPeqmGgtewU9+0QUYDvO9+UNN4YyL8SiHOYVo=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155713006 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155712971 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155713017 } ] } }, { "ca_sha256_fingerprint": "3C5F81FEA5FAB82C64BFA2EAECAFCDE8E077FC8620A7CAE537163DF36EDBF378", "ca_label": "Microsec e-Szigno Root CA 2009", "test_website_revoked": "https://qtlsca2018-revoked.e-szigno.hu/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Axo9kIbfRH4z6f3iXwo=", "issuer_spki_sha256": "B+kJdgVu+sQKTRurO5lOkBlDQ+2+UfVcgWNPVcJ2soQ=", "scts": [ { "log_id": "dNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLw=", "timestamp": 1758887012125 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758887013133 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758887013472 } ] } }, { "ca_sha256_fingerprint": "3F63BB2814BE174EC8B6439CF08D6D56F0B7C405883A5648A334424D6B3EC558", "ca_label": "TWCA CYBER Root CA", "test_website_revoked": "https://cyberevrevoked.twca.com.tw/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "R+oAAAASXSE732tKRVAstw==", "issuer_spki_sha256": "btGJwhfTwVHtIsstjUFcqKRC+ieluyFA3aG6ukVYLZA=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1778055350603 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1778055350591 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1778055350697 } ] } }, { "ca_sha256_fingerprint": "3F99CC474ACFCE4DFED58794665E478D1547739F2E780F1BB4CA9B133097D401", "ca_label": "HARICA TLS ECC Root CA 2021", "test_website_revoked": "https://tls-ecc-revoked-ev.root2021.harica.gr", "detail": { "end_entity_cert": "MIIFWDCCBN2gAwIBAgIQDwkyscQfRcYmAe0ZJ4aK9zAKBggqhkjOPQQDAzBkMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEcMBoGA1UEAwwTSEFSSUNBIEVWIFRMUyBFQ0MgMjAeFw0yNjA0MTUxNDIwMTlaFw0yNjEwMzExNDIwMThaMIG+MQswCQYDVQQGEwJHUjEPMA0GA1UEBwwGQXRoZW5zMSMwIQYDVQQKDBpHcmVlayBVbml2ZXJzaXRpZXMgTmV0d29yazEVMBMGA1UEBRMMMTYwNzI5NDAxMDAwMS4wLAYDVQQDDCV0bHMtZWNjLXJldm9rZWQtZXYucm9vdDIwMjEuaGFyaWNhLmdyMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjETMBEGCysGAQQBgjc8AgEDEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEgAPw/bls6tgCxbvuUJrBfY9jSrIrXny1/qtmKtvXSuL/ZNxce0lXTz1tY+1WB3Drn1Dkn5wDVUUvimgOwf/bKjggMUMIIDEDAfBgNVHSMEGDAWgBS6YvOF/YNoztOwmSmV66sJGK9JfjBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9jcnQuaGFyaWNhLmdyL0hBUklDQS1FVi1UTFMtU3ViLUUyLmNlcjAwBgNVHREEKTAngiV0bHMtZWNjLXJldm9rZWQtZXYucm9vdDIwMjEuaGFyaWNhLmdyMGAGA1UdIARZMFcwBwYFZ4EMAQEwCAYGBACPegEEMEIGDCsGAQQBgc8RAQEBBDAyMDAGCCsGAQUFBwIBFiRodHRwczovL3JlcG8uaGFyaWNhLmdyL2RvY3VtZW50cy9DUFMwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMD4GA1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly9jcmwuaGFyaWNhLmdyL0hBUklDQS1FVi1UTFMtU3ViLUUyLmNybDAdBgNVHQ4EFgQUMxcmTzZ/jefseg21Z0PZAMwM+9IwDgYDVR0PAQH/BAQDAgeAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgCUTkOH+uzB74HzGSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZ2RjN7DAAAEAwBHMEUCIQDqx1iyYTCDe1LUKw1p34qwLWyhgQguoGgd9WWlkALOrwIgUU6FiymHaRwm7l4JibWbMzn5bbT9+Wgn4XY5MuUfXD8AdwDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ2RjN0zAAAEAwBIMEYCIQCe8+aqMK5vs5rJWJqiTpKmCklSL7m65FreFI3vx0Rv1wIhAKhWioi9aUyE0rIpWhK4zLNrIoea8ds1Shf7gr51SuVnAHUAyKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5oAAAGdkYze1gAABAMARjBEAiBmo++F6JYPh3k+uGc3mUsre2MG4EwUMMrA39UtGkLmhgIgBmFDmpx3aoXCQEQvTzbOKqZp5CZiL8PxNCP2h1bVeSMwCgYIKoZIzj0EAwMDaQAwZgIxAIgZURQn4Ar2vXquPbOoui1/yaHL0ojP7B1LOFrwbte5v5CV9kf6nezDJwWnNSs6iQIxAKTj89G7dLlTEwETJMwXUQAvZX6GgiktEfjB8XZfz58bYD1LrZoOLgZ97el8o+ZKTQ==", "intermediates": [ "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" ], "serial": "DwkyscQfRcYmAe0ZJ4aK9w==", "issuer_spki_sha256": "nCKlApA0IK/LGFiqF8sW8G6WcSozlupFdMt2pzPnvPk=", "scts": [ { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1776263421635 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776263421235 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1776263421654 } ] } }, { "ca_sha256_fingerprint": "40F6AF0346A99AA1CD1D555A4E9CCE62C7F9634603EE406615833DC8C8D00367", "ca_label": "emSign Root CA - G1", "test_website_revoked": "https://testevg1r.emsign.com", "detail": { "end_entity_cert": "MIIG+zCCBeOgAwIBAgIPBtMMdrgw0zi130a+XdK/MA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMR4wHAYDVQQDExVlbVNpZ24gRVYgU1NMIENBIC0gRzEwHhcNMjUxMjEwMDcyODUzWhcNMjYxMjEwMDcyODUzWjCB3jEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xEzARBgsrBgEEAYI3PAIBAxMCSU4xGjAYBgsrBgEEAYI3PAIBAgwJS2FybmF0YWthMREwDwYDVQQFEwgwMDA2NTE1MzELMAkGA1UEBhMCSU4xEjAQBgNVBAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MSUwIwYDVQQKDBxFTVVESFJBIFRFQ0hOT0xPR0lFUyBMSU1JVEVEMR0wGwYDVQQDDBR0ZXN0ZXZnMXIuZW1zaWduLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJUPrdyHw0Fvde/+UG9oHAINA1Tgymr1XuL4VWbfcDFt0Y/pIL2cso6TFvZZTcBd3TNxPTU+HOULC7W4wTjs7qmqUMxJE7sPUvTk80+9+RPYkpsTdsCSqwkm/ak7xsQuhc1CbTHE0wr8ie0Noy43sQt7AjRnrD5e1CzxLTntD+EP2YL8bF5nTnzqdB32rQANKpdltOvVWHydWDWCI84AL8eb5i0T2Q6Oqi0bnAzQpF2biJfrqKBerhXnYrXecSlg4GWJtRUwkQC35I9ZGvPQ1lVvgsnRHzE9EB+x7zRp8oeH6hCLGti5vLbYacgCYtMv7eCFn6DOZEPQ+U5MxQYPJ1sCAwEAAaOCAygwggMkMB8GA1UdIwQYMBaAFLKdz0Gn6cPghVZAmEv2j3xVKed+MB0GA1UdDgQWBBSQxw/cwFxRgV4BeBcvsY4lbR/VDjAfBgNVHREEGDAWghR0ZXN0ZXZnMXIuZW1zaWduLmNvbTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwuZW1zaWduLmNvbT9lbVNpZ25FVlNTTENBRzEuY3JsME0GA1UdIARGMEQwOQYLKwYBBAGDjiEBAAEwKjAoBggrBgEFBQcCARYcaHR0cDovL3JlcG9zaXRvcnkuZW1TaWduLmNvbTAHBgVngQwBATB2BggrBgEFBQcBAQRqMGgwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmVtU2lnbi5jb20wQgYIKwYBBQUHMAKGNmh0dHA6Ly9yZXBvc2l0b3J5LmVtc2lnbi5jb20vY2VydHMvZW1TaWduRVZTU0xDQUcxLmNydDAMBgNVHRMBAf8EAjAAMIIBfwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdQDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZsHKdNEAAAEAwBGMEQCIFhFhWZfQQYY8hzm5CoVg6Wmv3BjgMJFL5ah8psMbmCHAiAqnlIQLlhzBxT2kr//tBNUAaKcfUJqzO4mxdbhmrtvdgB3AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABmwcp1VIAAAQDAEgwRgIhAK36uiKDaU0/KWATwHabPWzzRZmusKeWtV7eF0jwXOeWAiEAvVvqBI2LJ8XMXyzt++VHjeVHtbQHvKxtRpqJO1PrH08AdwCvZ4g7V7BO3Y+m2X72LqjrgQrHcWDwJF5V1gwv54WHOgAAAZsHKd1ZAAAEAwBIMEYCIQCrPywnDC51AAAMKoYtRQ2GBEhKHzceLPwj98U3Rq8HQwIhAOBVrSdQSN0csp4feA7e+B+H/+L/p90Lh5FjbCUl0jZeMA0GCSqGSIb3DQEBCwUAA4IBAQAGoM451rpb0gHVYoPnYspZO2cjmJdtr96ZpS6W7tT6K+BGtMwTxoj2Gj+0boGXkrk6yig63z3epqW6Bot4uwljYOXIPpVNHHK1+EdTd7Kyz5Vfs4byK4FBXibgHdhJ9CooobuLWDTxjaYLbCUQDLRAfz/XDz8PwKRIDGAP/Ck5ZJGCvpT5mc5dS8xAYuteocDgbKqchLHsPG2b8IXP9eN12dSuAH5iOOhFGYqCnyIgIVaBuoRuztEZQIk5rBPJB2Hr7bBRIq2OUs3pUxbRRs4JLh94rYbvVP8jIyWVzhVZ0Ovv83qdPkGsmgdarPiKeDTionspQZiHjsgGEJFiCNVC", "intermediates": [ "MIIEhTCCA22gAwIBAgIKYmy5KyN/+C4/UDANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw0zMzAyMTgxODMwMDBaMGkxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVkaHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMR4wHAYDVQQDExVlbVNpZ24gRVYgU1NMIENBIC0gRzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWF1wRluuWpE1fd8hS/hP6IeRs/pHB1dFbSzlWKMXxgfd5l71liosvLmJAXPxaky2dVfV3wa/5ObUOwk9mbg2eZvZoMAtoU5UguN/iotBHycy2Z4wg2p9JM6UKd4/W1Hgue091XhBpQOpgIHNC6VuLzP0GKWQirZQkZysfXwXbwfhPSbjkbCzQvI5la6px9vr6asPejkhN6rAco7/Z0GdpHOKDKi86UlrZXKi46unqV+VtLaaQz0lI+Vk0FCevISrriH3CWCbzwD1U0/f0o/2L60+wHZ+9Busk8UTXkyEjkWOPN/8rHDXOO78fFtFL5nKTuiOInM7XlRQ/v2hv+pg7AgMBAAGjggEvMIIBKzAfBgNVHSMEGDAWgBT77w2GnrDj3am58SEXfz788HcrGjAdBgNVHQ4EFgQUsp3PQafpw+CFVkCYS/aPfFUp534wDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cDovL3JlcG9zaXRvcnkuZW1zaWduLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEAMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AuZW1zaWduLmNvbTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmVtc2lnbi5jb20/Um9vdENBRzEuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQAk8oWFJ3nWTZ1ssW1PBGFYXjGLURdZ7/q+Zu8cQlbZE0fygEp4bYEwrr9gXekwE8qutiHEbQau71JuR2X/s7rAaLT0a3FZEg1h6+lpqy+WyJaEYgR0HLOkoynkm5ZgbxR/LgJMazOmfSGEgVFRxBU6Tj3/llL9c0dBJ9VeDfad4FlUMtx8Wz60lVuH953C1+MuiiS2MRgbW+zxJO/RZEq7uPNdXhlhERZiLJ4odAMNHrWItmOIgFafs+FCz2jCHRB6Bjt/DNBh7kh2Zh9M63/1sTtIAVN7ZCOEFUOXrJfQAQM4RJrZV8ufIGTPCosO9KcAlLUEasN5SNEuIgkDS1Pu" ], "serial": "BtMMdrgw0zi130a+XdK/", "issuer_spki_sha256": "uyublT6SsX3mh/3EIO2/Tv5ftRcL40wCzJ0G9rOjYKE=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1765351740228 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1765351740754 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1765351742809 } ] } }, { "ca_sha256_fingerprint": "44B545AA8A25E65A73CA15DC27FC36D24C1CB9953A066539B11582DC487B4833", "ca_label": "Hellenic Academic and Research Institutions ECC RootCA 2015", "test_website_revoked": "https://haricaeccrootca2015-revoked-ev.harica.gr", "detail": { "end_entity_cert": "MIIFWzCCBOGgAwIBAgIQPgT169NZshkcCndk9yYlIjAKBggqhkjOPQQDAzBkMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEcMBoGA1UEAwwTSEFSSUNBIEVWIFRMUyBFQ0MgMjAeFw0yNjA3MDIxMjU4MDZaFw0yNzAxMTcxMjU4MDVaMIHBMQswCQYDVQQGEwJHUjEPMA0GA1UEBwwGQXRoZW5zMSMwIQYDVQQKDBpHcmVlayBVbml2ZXJzaXRpZXMgTmV0d29yazEVMBMGA1UEBRMMMTYwNzI5NDAxMDAwMTEwLwYDVQQDDChoYXJpY2FlY2Nyb290Y2EyMDE1LXJldm9rZWQtZXYuaGFyaWNhLmdyMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjETMBEGCysGAQQBgjc8AgEDEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIQqxP8RbE9+PEI0n1rLc4bvTTW+cCvjWahGkDdatXReDQuOBQxguLKee8V+5yy6s/VEvnMQVkffG0PWTy06RBejggMVMIIDETAfBgNVHSMEGDAWgBS6YvOF/YNoztOwmSmV66sJGK9JfjBJBggrBgEFBQcBAQQ9MDswOQYIKwYBBQUHMAKGLWh0dHA6Ly9jcnQuaGFyaWNhLmdyL0hBUklDQS1FVi1UTFMtU3ViLUUyLmNlcjAzBgNVHREELDAqgihoYXJpY2FlY2Nyb290Y2EyMDE1LXJldm9rZWQtZXYuaGFyaWNhLmdyMGAGA1UdIARZMFcwBwYFZ4EMAQEwCAYGBACPegEEMEIGDCsGAQQBgc8RAQEBBDAyMDAGCCsGAQUFBwIBFiRodHRwczovL3JlcG8uaGFyaWNhLmdyL2RvY3VtZW50cy9DUFMwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMD4GA1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly9jcmwuaGFyaWNhLmdyL0hBUklDQS1FVi1UTFMtU3ViLUUyLmNybDAdBgNVHQ4EFgQU8jzfV8689mn/W8dx1U2uXLdB6twwDgYDVR0PAQH/BAQDAgeAMIIBfAYKKwYBBAHWeQIEAgSCAWwEggFoAWYAdgBgTJqven93XwHUBvySDciZ6wscffjJUhv6+hd3O5eLyQAAAZ8i8aFAAAAEAwBHMEUCIFcVPYb11HAKUapK3Ta3BDhpIQUGlo03WuFkXQvj9fiNAiEAj/pp8zKZgXXEyQbyJI6J9P+6cq/Y8nZVAMcQkEwzGYUAdQDW1Y2p0BdT82pKoMdXSQKv68fcLNOM2fdkyAyJGR6fAgAAAZ8i8aFmAAAEAwBGMEQCIDStT1eGGpCHAKo/CTfKOAHKVneRLtDb7oOrIw7MyplvAiBhKqYcxT0vO6/k4C1bRTLfn09qURmc/MTKfJBlDL0oQgB1AETCvQzpFA5kpclKAZMKWqG7NZcOAO4RFoloKhxE17VmAAABnyLxoTIAAAQDAEYwRAIgQP2/FQGhIO8USGnp6xkoyKhjFXQjIX2vD+OFCbaL4igCIDVPKprWewvNp6BDq4hpFHSmKjO7F4oxMAuQZy//TIQIMAoGCCqGSM49BAMDA2gAMGUCMQCQkDNGt88hGTCn2JhlcCIxgNR+NEOjpA9EyU/QgUX1ZdwUnNZyU4oyITEnSUcvJJkCMEwfwcW6+cSKWIqzkn302u63Vfcick8b0fp3GtzinuubITGUaTwR18xbevZVEM3uUA==", "intermediates": [ "MIIDkTCCAxagAwIBAgIQHWmGF8wAYPE/L0HuXO1vaTAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIyMDEyODEzMjE0MVoXDTM3MDEyNDEzMjE0MFowZDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExHDAaBgNVBAMME0hBUklDQSBFViBUTFMgRUNDIDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATy9nEVNxtCt99nf92nT4f4oHWl0ofsE/TzJ6fI/G2CWoEn1OTg/oUKJC7KVYiYfT9OMHkTpxO1z0DT30Ugk13ctk6Bah59DyuI5HEK+KogiFQnCdtt8geKAWtAYxdGzZmjggGDMIIBfzASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFMkbU4ES/gTVFtGqvJpvt6CVGW7KMHAGCCsGAQUFBwEBBGQwYjA9BggrBgEFBQcwAoYxaHR0cDovL2NydC5oYXJpY2EuZ3IvSEFSSUNBLVRMUy1Sb290LTIwMjEtRUNDLmNlcjAhBggrBgEFBQcwAYYVaHR0cDovL29jc3AuaGFyaWNhLmdyMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwOi8vcmVwby5oYXJpY2EuZ3IvZG9jdW1lbnRzL0NQUzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC5oYXJpY2EuZ3IvSEFSSUNBLVRMUy1Sb290LTIwMjEtRUNDLmNybDAdBgNVHQ4EFgQUumLzhf2DaM7TsJkpleurCRivSX4wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYCMQC59TzehDH1djZ9UcBqKYfzVSNdaB8ez+VFCyeUwvYn735pOnGfMP1D6UV55leIsJwCMQDVlKFSNI9Ex9gCZ9XYbbKYHFYQ1SFmthdsUJMSQuiDnWOkN0y8B7ltkr2fgtn0X74=", "MIIDezCCAwGgAwIBAgIQcWAnyIV6c1Qt71FsHC7rDzAKBggqhkjOPQQDAzCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTIxMDkwMjA3NDQzN1oXDTI5MDgzMTA3NDQzNlowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1lAEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+bECUqqHgtvpBBWJAVcqeht6OCAScwggEjMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUtCILgpkkAQ6cu+QO/b/7lyCTmSowTwYIKwYBBQUHAQEEQzBBMD8GCCsGAQUFBzAChjNodHRwOi8vcmVwby5oYXJpY2EuZ3IvY2VydHMvSGFyaWNhRUNDUm9vdENBMjAxNS5jcnQwEQYDVR0gBAowCDAGBgRVHSAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLmhhcmljYS5nci9IYXJpY2FFQ0NSb290Q0EyMDE1LmNybDAdBgNVHQ4EFgQUyRtTgRL+BNUW0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMQCPc45gQV6pCkMR4px3k+YnF0MoDpXQ0+0lWz7fnplqgHn+qHmoKrE5Y/bcWucG6QQCMB/DIYjUTGAl5j07G7ZIuK3Qehx68VPXTwvJ9tLbh9A9SkiBmJGpiHL7Rzfxa5CptQ==" ], "serial": "PgT169NZshkcCndk9yYlIg==", "issuer_spki_sha256": "nCKlApA0IK/LGFiqF8sW8G6WcSozlupFdMt2pzPnvPk=", "scts": [ { "log_id": "YEyar3p/d18B1Ab8kg3ImesLHH34yVIb+voXdzuXi8k=", "timestamp": 1782997688640 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1782997688678 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1782997688626 } ] } }, { "ca_sha256_fingerprint": "45140B3247EB9CC8C5B4F0D7B53091F73292089E6E5A63E2749DD3ACA9198EDA", "ca_label": "Go Daddy Root Certificate Authority - G2", "test_website_revoked": "https://revoked.gdig2.catest.godaddy.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AM+6a3q4RnXI", "issuer_spki_sha256": "8Rw90Ej3Ttt8RRkrg+WYDS9n7IS03bk5bjP/UXPtaY8=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1757966384435 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1757966385813 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1757966386047 } ] } }, { "ca_sha256_fingerprint": "46EDC3689046D53A453FB3104AB80DCAEC658B2660EA1629DD7E867990648716", "ca_label": "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1", "test_website_revoked": "https://testsslrevoked.kamusm.gov.tr/", "detail": { "end_entity_cert": "MIIFyDCCBU+gAwIBAgILAP/FQ2uSK541JXgwCgYIKoZIzj0EAwMwgZExCzAJBgNVBAYTAlRSMRAwDgYDVQQIDAdLb2NhZWxpMSswKQYDVQQKDCJUVUJJVEFLIEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUMwQQYDVQQDDDpUVUJJVEFLIEthbXUgU00gU1NMIFNlcnRpZmlrYSBIaXptZXQgU2FnbGF5aWNpc2kgLSBTdXJ1bSAzMB4XDTI2MDQyMDA3NTYwMVoXDTI2MTEwNDA3NTYwMVowZzELMAkGA1UEBhMCVFIxEDAOBgNVBAgMB0tvY2FlbGkxHzAdBgNVBAoMFlRVQklUQUsgQklMR0VNIEtBTVUgU00xJTAjBgNVBAMMHHRlc3Rzc2xyZXZva2VkLmthbXVzbS5nb3YudHIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyI/+Y1h/DFk2M0pBB4smBgI31besBnkg2yC5sW4j1XcY6AnOxlGtTG5+UPOE9PC0d/kpcQqwSOCRqLAEVL4AOvlLH010HgQJcY7SGoMUcIqh94S/8AbBy2v23x/ZYMcKP9DAfCZMiZdlfira0Y0NjLGpLGPOBVlC6KVZolqq4lRy+llEW8PzhpUvdtbt67X2J4BLeQBHl4mEbRd5u7Q/j9biO3ycWX6bumYStojzuY26sDNRivhJG48Mcd34YAF/5TvD1gxW6MljJg8Bw40PebJby5Vq+uuq7O/F31ZOJpVIiv46E7QQnsNOHz1Vfzt3aUFF5Di2mDuU5XuCPBnvjAgMBAAGjggLqMIIC5jAfBgNVHSMEGDAWgBSp4RsBPJY0Sr0757bm10U4zCy0vjAdBgNVHQ4EFgQUhvC8IeWYy9y+GvZZXVR65r4MeBkwDgYDVR0PAQH/BAQDAgWgMCIGA1UdIAQbMBkwCAYGZ4EMAQICMA0GC2CGGAECAQEFBwEDMBMGA1UdJQQMMAoGCCsGAQUFBwMBMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9kZXBvLmthbXVzbS5nb3YudHIvc3NsL1NTTFNJTC5TMy5jcmwwcgYIKwYBBQUHAQEEZjBkMDYGCCsGAQUFBzAChipodHRwOi8vZGVwby5rYW11c20uZ292LnRyL3NzbC9TU0xTTS5TMy5jZXIwKgYIKwYBBQUHMAGGHmh0dHA6Ly9vY3Nwc3NsczMua2FtdXNtLmdvdi50cjAnBgNVHREEIDAeghx0ZXN0c3NscmV2b2tlZC5rYW11c20uZ292LnRyMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdQDCMX5XRRmjRe5/ON6ykEHrx8IhWiK/f9W1rXaa2Q5SzQAAAZ2p4+qCAAAEAwBGMEQCIA+B9b0nYB7DrTB4TdFtoDo8AoDVG/JYWNmxLwoKJDJpAiBBF8hLlgHtV0TLOXLHGUFrhHoqYQFjAJfd8sIMFN9ibgB3ANdtfRDRp/V3wsfpX9cAv/mCyTNaZeHQswFzF8DIxWl3AAABnanj9PIAAAQDAEgwRgIhAIQDtYE/YM6xAOe+pEgEftFwe96zoLJGInPv+SGhqrSgAiEAsCbZnkCTADCMY1aRdPp9XwFRxUcZgKNWfO9nDOhdZ7kAdgDIo8R/x7OtuTVrAT9qehJt4zpOQ6XGRvmXrTl1mR3PmgAAAZ2p4/dQAAAEAwBHMEUCIQD6V4G183EWva2+20kQRaBPua4IrC5yZc56ZFlwMbLRWQIgCrr6+U8a1x0SHeqYVDSyDp2ZWuZTODoqVwNR6u12kbkwCgYIKoZIzj0EAwMDZwAwZAIwHusjZ6qxif5cGsitdOjXtaQHu0Yg8gMw7MA4IjwmOLAevXNV4c5OpaTRsML+5vWsAjAewXfJMQ35/GPJqFNhoz3iXxgcFyc40avKMN0wqAFdFEig6OOMxPhJkLGHxwNoAt8=", "intermediates": [ "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" ], "serial": "AP/FQ2uSK541JXg=", "issuer_spki_sha256": "PzuMSR5AxRQhsGMxqVf0TKD5oDtxbLJludAah1I2n0c=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1776671779458 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1776671782130 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1776671782736 } ] } }, { "ca_sha256_fingerprint": "49E7A442ACF0EA6287050054B52564B650E4F49E42E348D6AA38E039E957B1C1", "ca_label": "D-TRUST Root Class 3 CA 2 2009", "test_website_revoked": "https://certdemo-ov-revoked.ssl.d-trust.net/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFMjCCBBqgAwIBAgIDCZBjMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMTIxMjQ2NTVaFw0yOTExMDUwODM1NThaMEwxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJjAkBgNVBAMMHUQtVFJVU1QgU1NMIENsYXNzIDMgQ0EgMSAyMDA5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoal0SyLSijE0JkuhHJmOCbmQznyxuSY7DaEwhUsdUpI+2llkDLz6s9BWQe1zCVXDhrt3qz5U5H4h6jxm5Ec+ZbFiU3Gv2yxpI5cRPrqj9mJU1CGgy1+29khuUnoopzSq66HPuGZGh06I7bJkXTQ7AQ92z1MdL2wATj1UWdNid3sQNiWIm+69nURHY6tmCNenNcG6aV4qjHMUPsjpCRabNY9nUO12rsmiDW2mbAC3gcxQlqLgLYur9HvB8cW0xu2JZ/B3PXmNphVuWskp3Y1u0SvIYzuEsE7lWDbBmtWZtabBhzThkDQvd+3keQ1sU/beq1NeXfgKzQ5G+4Ql2PUY/wIDAQABo4ICGjCCAhYwHwYDVR0jBBgwFoAU/doUxJ8w3iG9HkI5/KtjI0ng8YQwRAYIKwYBBQUHAQEEODA2MDQGCCsGAQUFBzABhihodHRwOi8vcm9vdC1jMy1jYTItMjAwOS5vY3NwLmQtdHJ1c3QubmV0MF8GA1UdIARYMFYwVAYEVR0gADBMMEoGCCsGAQUFBwIBFj5odHRwOi8vd3d3LmQtdHJ1c3QubmV0L2ludGVybmV0L2ZpbGVzL0QtVFJVU1RfUm9vdF9QS0lfQ1BTLnBkZjAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQtdHJ1c3QubmV0MIHTBgNVHR8EgcswgcgwgYCgfqB8hnpsZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0ElMjAyJTIwMjAwOSxPPUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDBDoEGgP4Y9aHR0cDovL3d3dy5kLXRydXN0Lm5ldC9jcmwvZC10cnVzdF9yb290X2NsYXNzXzNfY2FfMl8yMDA5LmNybDAdBgNVHQ4EFgQUUBkylJrEtQRNVtDAgyHVNVWwsXowDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBABM5QRHX/yInsmZLWVlvmWmKb3c4IB3hAIVRsAGhkvQJ/RD1GZjZUBBYMWkD1P37fTQxlqTOe3NecVvElkYZuCq7HSM6o7awzb3myLn1kN+hDCsxX0EYbVSNjEjkW3QEkqJH9owH4qeMDxf7tfXB7BVKO+rarYPa2PR8Wz2KhjFDmAeFg2J89YcpeJJEEJXoweAkgJEEwwEIfJ2yLjYo78RD0Rvij/+zkfj9+dSvTiZTuqicyo37qNoYHgchuqXnKodhWkW89oo2NKhfeNHHbqvXEJmx0PbI6YyQ50GnYECZRHNKhgbPEtNy/QetU53aWlTlvu4NIwLW5XVsrxlQ2Zw=" ], "serial": "ZEWgCsr9w5jtNMIoXjU30g==", "issuer_spki_sha256": "9w0QP9HzLXkfs+4zENaUFq2XKcQON1oyksoJ+Gg2AZE=", "scts": [ { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1769421795488 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1769421796086 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1769421795790 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1769421795987 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1769421796186 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1769421796667 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1769421796438 } ] } }, { "ca_sha256_fingerprint": "4B009C1034494F9AB56BBA3BA1D62731FC4D20D8955ADCEC10A925607261E338", "ca_label": "SecureSign Root CA14", "test_website_revoked": "https://ss14-revoked.managedpki.ne.jp", "error": "missing from ct" }, { "ca_sha256_fingerprint": "4FA3126D8D3A11D1C4855A4F807CBAD6CF919D3A5A88B03BEA2C6372D93C40C9", "ca_label": "GlobalSign Root R46", "test_website_revoked": "https://revoked.r46.roots.globalsign.com", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AetVx2FjgNBVShZFZTGaZg==", "issuer_spki_sha256": "4naYYOxK0libr7tOuTJ1hCUYCe7+Z5yGm0myjCV3lF8=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1763479192785 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1763479192861 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1763479192981 } ] } }, { "ca_sha256_fingerprint": "4FF460D54B9C86DABFBCFC5712E0400D2BED3FBC4D4FBDAA86E06ADCD2A9AD7A", "ca_label": "USERTrust ECC Certification Authority", "test_website_revoked": "https://usertrustecccertificationauthority-ev.comodoca.com:444/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDbjCCAvSgAwIBAgIRAJ5WjSHe2JMHw0CA/y2ZWQEwCgYIKoZIzj0EAwMwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgRUNDIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIwMTAwNTAwMDAwMFoXDTM1MTAwNDIzNTk1OVowZTELMAkGA1UEBhMCRVMxHDAaBgNVBAoTE1NlY3RpZ28gKEV1cm9wZSkgU0wxODA2BgNVBAMTL1NlY3RpZ28gUXVhbGlmaWVkIFdlYnNpdGUgQXV0aGVudGljYXRpb24gQ0EgRTM1MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoZ/maiXB18YoY6sIFi0kuyZTQltgwxwjnljRZ8u/VLF3L4b1NgZAlNTwGR1QLIYgGOBZx2k8c8r+E4wS3gARlaOCAV8wggFbMB8GA1UdIwQYMBaAFDrhCYbUzxnClnZ0SXbc4DXGY2OaMB0GA1UdDgQWBBQBELB9TETSoLJg+ejaffuKr56vWTAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEQYDVR0gBAowCDAGBgRVHSAAMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RFQ0NDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcBAQRlMGMwOgYIKwYBBQUHMAKGLmh0dHA6Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RFQ0NBQUFDQS5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wCgYIKoZIzj0EAwMDaAAwZQIxAPdGdzU3wUj6nUMuGR88wpKNe8anlEp+iIkEqq9E4Trb/Vsl+0Kza3bZxD1+TpLXIwIwSn26MmiP43/g/EVOPLSG/jw9EEodK6gdSA8irfkWi7SmhFPLMduOCbAGR7MVbVBV" ], "serial": "AIYq/V55JxbnqW3okFjOVnE=", "issuer_spki_sha256": "LTu6tENFs1xZQP1NiYhwg6AMeqalq2jUuwpowf0rQuY=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1760102979280 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1760102979391 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1760102979212 } ] } }, { "ca_sha256_fingerprint": "513B2CECB810D4CDE5DD85391ADFC6C2DD60D87BB736D2B521484AA47A0EBEF6", "ca_label": "Security Communication RootCA2", "test_website_revoked": "https://cross-ovrsa2024r.secomtrust-verification.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIG2TCCBMGgAwIBAgIQR6WRHwp8vQIanpnP6lehlDANBgkqhkiG9w0BAQwFADBaMQswCQYDVQQGEwJKUDEmMCQGA1UEChMdU0VDT00gVHJ1c3QgU3lzdGVtcyBDby4sIEx0ZC4xIzAhBgNVBAMTGlNFQ09NIFRMUyBSU0EgUm9vdCBDQSAyMDI0MB4XDTI0MDUxNjA0NDQwOFoXDTM5MDExMjAwMDAwMFowZTELMAkGA1UEBhMCSlAxJjAkBgNVBAoTHVNFQ09NIFRydXN0IFN5c3RlbXMgQ28uLCBMdGQuMS4wLAYDVQQDEyVTRUNPTSBQYXNzcG9ydCBmb3IgV2ViIE9WIFJTQSBDQSAyMDI0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvOIm6Y97ZSbLk0BS1/9zSONNOsON0MKBV5MWC3PPBDHOtxx0Eczh/Kyv+kfCsgTduqwUs1bXeU4iZnkPTEcQ4e+62KGvtICEa33pQ7afHF82qkYkJx2zhVU2qt5p8ksTLpEaEXMCx1oQD/qx4Jku9UjUcIxYpNoXRO/9pyOGfG6EPySe6DtrdYMjut2xFRw7AqBtkJxp35ljeK6lWG9VqscL681dIwtgrF6vtFAcAsz2YrvjhL/oiWCtnXL8nRIHQ3Fv2tsXX3w3khApU2rmL82nCJBra3w9BAaKk5rgJXYyeyYegHef9Fp0INi2g8O1ajbjbjGkOmo/mEsxJXDGFaI2dYRIBQYG1NgwAt/XvxI7QPW/wFnzMtZnZiBGXmWCfKvfiGUZNFzUX1nDxoPuNcUunJi3ooGFIhXCzoz6fnjSTl+PmpWuqRuDel0BK2e7Hlab12+pYu7jGAmOcyKU3WHr3o0BfoPTzLDPlXfBkHhpLCsXAj6BavL/DgcuSidTkyyx34MZ4jBmcYiylrur4qX+yJSRA3s0tSDFrYlJvL1BbtGCy3FF4R6Mq+T/Sn6mpJpxx4J+bmyUjplZox9JkkBEpM5y/eg90Cg9XEPFLx9WCy0vrPZHgip9UE2bDm/OzMD70XDOsBPo03w2QGwc0gB+QYmj9XAtLDcgBBVqlLMCAwEAAaOCAY4wggGKMB8GA1UdIwQYMBaAFCzrchKOWHdkNRVWNQFXB6l9DTbmMB0GA1UdDgQWBBQ1m8V5hgsi+PnkNrnh9Ch6V4qEgjAOBgNVHQ8BAf8EBAMCAQYwIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKKoMIjJsbZIcFCzASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBNBgNVHR8ERjBEMEKgQKA+hjxodHRwOi8vcmVwbzEuc2Vjb210cnVzdC5uZXQvcm9vdC90bHNyc2EvdGxzcnNhcm9vdGNhMjAyNC5jcmwwgZIGCCsGAQUFBwEBBIGFMIGCMDYGCCsGAQUFBzABhipodHRwOi8vdGxzcnNhcm9vdGNhMjAyNC5vY3NwLnNlY29tLWNlcnQuanAwSAYIKwYBBQUHMAKGPGh0dHA6Ly9yZXBvMi5zZWNvbXRydXN0Lm5ldC9yb290L3Rsc3JzYS90bHNyc2Fyb290Y2EyMDI0LmNlcjANBgkqhkiG9w0BAQwFAAOCAgEAeL1/SIdf/C9zShLRncCOxTP1MGTM3bBKXybUHqKDpsEOoGW0XsjBcDCi1acPeCRp4w0T35+DerrJzA0WHR/VpfaQDCksYLEYyCkYdjasAo2VLCGWfT05dzD3IWzz70pXGOWUE6yFOlp5yqzi0wEI5npMAYQEPraiCMZ3jpQK211rA8F9TZil/dSM0OdgpKK+NSwadAWk1LwW24xeNUXvMU68k20vqFRjhuIhHbPvf+/xsYumv0iUeB/+bcLe5OKfr3dVfMoja5+Tx4GOuiyAYVdTwoKJqCnULC140k2cFGmR/kZh670/GfDuwuqhdtCWlhd6MMXgOBZ2GKmvAyqJEx1TtB5xsdSvGsEEhpMbztRVHhPbBiycZhTbDSVM/lQ+uxY0Akrc/a37VD7jIeT0ghNn86ikB6EVkVArI4cAgdwnuYZHdMz1oRWFVHmPnPc4wEwqvlRIofHCkxTW3H/HTrc9/j9vB0sB8LAFkWd9NJvAsx655bOu6AMF3czOdiZ4ZcfC5bUgbQUK9CQjTEO3AJGbJ9HNucw20UIFLaVGptX2u84IwwFwtu2sGdL+VCGmmbPxLvGpSeubwBG6yKl/o1agVFc+QuLQSmID3HiMQmOUHONRadYxOziFFAuAFezmxtfRQsA9C7EH9VnFuQbqeDJW3DioRERAbHNMNNdmiE8=", "MIIFrTCCBJWgAwIBAgIQIrmxrYDmWIJW0HBTD3hSLTANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTI1MDQwOTA1MjgxNVoXDTI5MDUyOTA1MDAzOVowWjELMAkGA1UEBhMCSlAxJjAkBgNVBAoTHVNFQ09NIFRydXN0IFN5c3RlbXMgQ28uLCBMdGQuMSMwIQYDVQQDExpTRUNPTSBUTFMgUlNBIFJvb3QgQ0EgMjAyNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOE44s1MM8WyJ6vE8ddYGhWDZOXzvt+Mu08jOJ3odFIC+SSGWyTS089sf/y/we9fuZul+pxiK+3eJRSQRrYzuu+4Vzs/d85HFmlE5t1WzgIwZbeGFsZXHHAR17me6N0PuEfqK5qwXR3idQk1BBvLbUGyiJdxuzmWG5x/P6T/HIz7m/9JA1TbjM6e8bFUUTjorELed3zKCS5WIKHm27jKYTqjArY5Ce0ennxDHy6fFAFYvWWi0Z++hE/wiZJPduZ3brrnwuAWrUuJp1xZsTdL1F29Io/QfDvw/IIsUBLFUg+BivBVkT4d21Xf+m83ZBxiY8ttVyNMno1aJmVG0aznzbs9G6DxldabdfHxQt/SB0BLYdzham+TQzty/gPWzak4AMlIEZiJ+LnIA3P0Yvypt1edbnmY8tf8pNKsCVWnQFVawreeojXlzshL8yQAxoA0PBNT3WqnLfAsp8/+O0XkDOtrxWDtPMHEJK45l/7XrIpKNVdcsmn+hHz81Bc5mhsvcb5AsHW5teRHU6JToxNB9lW+fwDwzsghRKJImBpl0y3QFJdMCmeCMo5Bxs8tI4aWlxFxPxiXBLyOlcxHIY2gS9NxCdIfaRuDqniDsnCrwKNwPk23rcn7K4GMh81NGu/6lIxmrdQAKtZ1ZYzKSqqYpz07H/3fR9/RU1HiS+06c841AgMBAAGjggFqMIIBZjAfBgNVHSMEGDAWgBQKhal3ZQWYfECB+A+XLDjxCuw8zzAdBgNVHQ4EFgQULOtyEo5Yd2Q1FVY1AVcHqX0NNuYwDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADAPBgNVHRMBAf8EBTADAQH/MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vcmVwb3NpdG9yeS5zZWNvbXRydXN0Lm5ldC9TQy1Sb290Mi9TQ1Jvb3QyQ1JMLmNybDCBhQYIKwYBBQUHAQEEeTB3MDAGCCsGAQUFBzABhiRodHRwOi8vc2Nyb290Y2EyLm9jc3Auc2Vjb210cnVzdC5uZXQwQwYIKwYBBQUHMAKGN2h0dHA6Ly9yZXBvc2l0b3J5LnNlY29tdHJ1c3QubmV0L1NDLVJvb3QyL1NDUm9vdDJjYS5jZXIwDQYJKoZIhvcNAQELBQADggEBALkijiCUMV8tErauMrk323rmalPaLRbJ5VHHpNZHj4NkTiPb9vjBdAhk+vJUko3196lZi0tdB9iPihzv9tkgqSjvhoD+Tg8ozVdeT2CSWwXYI1sPb2QXg7PJSekOTuEDZsfBt+6uWkucDI6v3EPEM1O3Q4TjWpuyorztpnu469Em0RWaSF2E8aWzptE5MtGuJNywrfGzjdodBSNkwJIcFZFWzl/3ZyxuUmL3OIlRPcjRa50ZGkC3HQ7ZXdIEzj9ah5iC9l+mJjBjmMabzm7V52gOwvTGu2eGUGk4lwZUsAqPFlCbxarNM2/14hNirW7EV/NXNv4izOmWlNpgGOTX5Hg=", "MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03" ], "serial": "MlHaWZccGWPO+A+q9avSwg==", "issuer_spki_sha256": "MPznOZcyiDmZpfN4ptp5ESc6L5j4QTDQfDwltgjwahg=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783300444886 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783300446534 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783300447293 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783300447661 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783300448517 } ] } }, { "ca_sha256_fingerprint": "52F0E1C4E58EC629291B60317F074671B85D7EA80D5B07273463534B32B40234", "ca_label": "COMODO RSA Certification Authority", "test_website_revoked": "https://comodorsacertificationauthority-ev.comodoca.com:444/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AMfMT7ewItpY+dtR7FHP+FU=", "issuer_spki_sha256": "Fbr/5aSOo4KRal8YE49t4lc76IOnK/oto9NWV1cSKWM=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1760027050608 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1760027050734 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1760027050508 } ] } }, { "ca_sha256_fingerprint": "552F7BDCF1A7AF9E6CE672017F4F12ABF77240C78E761AC203D1D9D20AC89988", "ca_label": "DigiCert Trusted Root G4", "test_website_revoked": "https://trusted-root-g4-revoked.chain-demos.digicert.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Ac/6+eJ7gybRFEMhsSSS4Q==", "issuer_spki_sha256": "rjm2hHKNhSnI/7YDoWFLmDSpnIwnr9n9bbNU0dhDiJg=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155809650 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155809608 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155809662 } ] } }, { "ca_sha256_fingerprint": "554153B13D2CF9DDB753BFBE1A4E0AE08D0AA4187058FE60A2B862B2E4B87BCB", "ca_label": "AC RAIZ FNMT-RCM SERVIDORES SEGUROS", "test_website_revoked": "https://testrevokedtipo1.cert.fnmt.es/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDhTCCAwugAwIBAgIQUImGzbQXDv5cG2vVyCTrWzAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgyNjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4MTIyMDEwMTU0OVoXDTMzMTIyMDEwMTU0OVowcDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSQwIgYDVQQDDBtBQyBTRVJWSURPUkVTIFNFR1VST1MgVElQTzEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQ7GIZDbz5Oj5xyUWDC0WHfRa5fjaYDsf3hqmyRoWxsi5iQaG3aaKw/bnYeW1ei6IhC/I6LtI8H2Xuta8565GSQAf7yOcyoXeRL0qrdqSeTOuu0EcyEnnTWM+/TQLTvy7OjggFgMIIBXDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUjEIyQPl5P2sTwXXGXe6GIkQ5b3cwEQYDVR0gBAowCDAGBgRVHSAAMIGaBggrBgEFBQcBAQSBjTCBijBBBggrBgEFBQcwAYY1aHR0cDovL29jc3Bmbm10c3NyLmNlcnQuZm5tdC5lcy9vY3Nwc3NyL09jc3BSZXNwb25kZXIwRQYIKwYBBQUHMAKGOWh0dHA6Ly93d3cuY2VydC5mbm10LmVzL2NlcnRzL0FDUkFJWlNFUlZJRE9SRVNTRUdVUk9TLmNydDBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9jcmxzL0FSTFNFUlZJRE9SRVNTRUdVUk9TLmNybDAfBgNVHSMEGDAWgBQBuS/vvxGGYPJP0EFuq3Mf59JuSTAKBggqhkjOPQQDAwNoADBlAjB9iZG9la1vG1nY6M7ZutxXbKZVKbCKAwFlDj/+Y/UN4XsyJA+e1tjnfR021MeiItcCMQDEej4K+h5qCFN19m+vVg0O2h1qTS5CId1ea0JBF5Zee5TZroNF1uWnWKK6FGa0cp4=" ], "serial": "EaleJGnonBDM2EN/pzB05i/GF6g=", "issuer_spki_sha256": "Rlnql4UHcyG02SDPnuECa/zDzdDX09uEM9PKaegr4Qs=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1774340060839 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1774340064069 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1774340060945 } ] } }, { "ca_sha256_fingerprint": "55926084EC963A64B96E2ABE01CE0BA86A64FBFEBCC7AAB5AFC155B37FD76066", "ca_label": "Actalis Authentication Root CA", "test_website_revoked": "https://ssltest-revoked.actalis.it/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "JGpg2Fo85if6ED11kf8FUQ==", "issuer_spki_sha256": "bX2Ri6lz4UqCdYdntmbFTrpmv0zVxEqhgCHCu9QV278=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1755501421990 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1755501422044 }, { "log_id": "lLHBirDQV8R74KwEDh8svI3DdXJ7yVHyClJhJoY7pzw=", "timestamp": 1755501422027 } ] } }, { "ca_sha256_fingerprint": "568D6905A2C88708A4B3025190EDCFEDB1974A606A13C6E5290FCB2AE63EDAB5", "ca_label": "Starfield Services Root Certificate Authority - G2", "test_website_revoked": "https://revoked.sca0a.amazontrust.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "BCooPmriCqaqLnVpJZBBbQ==", "issuer_spki_sha256": "DxH4tt40L+eduF6szpY6TONlxhZhBd+pJ9wbHlQ2fuw=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783360813929 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783360813920 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1783360814013 } ] } }, { "ca_sha256_fingerprint": "574DF6931E278039667B720AFDC1600FC27EB66DD3092979FB73856487212882", "ca_label": "BJCA Global Root CA2", "test_website_revoked": "https://demossl-ecc-revoked.bjca.org.cn", "detail": { "end_entity_cert": "MIIFyjCCBW+gAwIBAgIQTWdg2V1LW5RgdfQgP177ZzAKBggqhkjOPQQDAjBSMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxGzAZBgNVBAMMEkJKQ0EgRVYgU1NMIENBMiBHMjAeFw0yNjA0MTYxMDA3MTVaFw0yNjEwMTMxMDA4MTVaMIIBSjETMBEGCysGAQQBgjc8AgEDEwJDTjEaMBgGCysGAQQBgjc8AgECDAnljJfkuqzluIIxGjAYBgsrBgEEAYI3PAIBAQwJ5YyX5Lqs5biCMRgwFgYDVQQPDA9CdXNpbmVzcyBFbnRpdHkxGzAZBgNVBAUTEjkxMTEwMTA4NzIyNjE5NDExQTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeWMl+S6rOW4gjESMBAGA1UEBwwJ5YyX5Lqs5biCMTYwNAYDVQQJDC3ljJfkuqzluILmtbfmt4DljLrljJflm5vnjq/opb/ot682OOWPtzE1MDHlj7cxLTArBgNVBAoMJOWMl+S6rOaVsOWtl+iupOivgeiCoeS7veaciemZkOWFrOWPuDEoMCYGA1UEAwwfZGVtb3NzbC1lY2MtcmV2b2tlZC5iamNhLm9yZy5jbjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKOfEcNB4dJhM7c6SBxyfcmJKqfOzqFdDlW8+yX3i73qxoCOzYIwoO2f4LmMua58DZgAZXG2q3+q6Y/Ug1Rg88qjggMrMIIDJzBzBggrBgEFBQcBAQRnMGUwQgYIKwYBBQUHMAKGNmh0dHA6Ly9yZXBvLmJqY2EuY24vZ2xvYmFsL2NlcnQvQkpDQV9FVl9TU0xfQ0EyX0cyLmNydDAfBggrBgEFBQcwAYYTaHR0cDovL29jc3AuYmpjYS5jbjAdBgNVHQ4EFgQUry7ieIoYhH0y+B+1agnkktX6WmAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQMJnVcaGUq7VxahIGjHbeblF1VYDBGBgNVHSAEPzA9MAcGBWeBDAEBMDIGCSqBHIbvMgICCzAlMCMGCCsGAQUFBwIBFhdodHRwczovL3d3dy5iamNhLmNuL0NQUzBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vcmVwby5iamNhLmNuL2dsb2JhbC9jcmwvQkpDQV9FVl9TU0xfQ0EyX0cyLmNybDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwKgYDVR0RBCMwIYIfZGVtb3NzbC1lY2MtcmV2b2tlZC5iamNhLm9yZy5jbjCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGdlcNO2AAABAMASDBGAiEA8Jh+4Ap10jPYtbkciEpPxABxsCUAwI5aviuZ7ywRxcQCIQDrclLKr3WzCdNPr2rJYqVXFHIR/y3FcyeI/l6akYhJZwB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnZXDUZ8AAAQDAEcwRQIhAMyMbetX38X0orqbi6GrjIuknzl1CUDldk3lvtBqimNgAiB+hFxKqwjSYpQQBx5lRdO1QUIPZd1eXVyqW/8jjPXmHAB2AK9niDtXsE7dj6bZfvYuqOuBCsdxYPAkXlXWDC/nhYc6AAABnZXDU8UAAAQDAEcwRQIhAMiCwtbi7vuze+airJQWpr0vmXxSktakv+VlD3Dg8nBAAiAmy/nVHvEq6AKwqSRuiuXMTOvABru9majb72Shcl2yUzAKBggqhkjOPQQDAgNJADBGAiEAube2cGuFPCQkiWfyD7OfxsDQWAqWulsWJ19WszwTKtsCIQDRUtMSSA7oWKpnTSERJvsbbOc20tho5WoDzQBxu+FLZw==", "intermediates": [ "MIIDGDCCAp6gAwIBAgIQFQNuslsGb0VErTy8PAdPoTAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTI1MDUyODA4MDk0OFoXDTQwMDUyNDA4MDk0OFowUjELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMRswGQYDVQQDDBJCSkNBIEVWIFNTTCBDQTIgRzIwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASsfnYQAEmZOYj8ImCMUpLo/XjtJ8cV1k/gRbmhgu6PtEmo9wE+IcjzYMSo6EMWQsi8cCLKkNB3aBfURqYnmQdGo4IBUjCCAU4wdQYIKwYBBQUHAQEEaTBnMEQGCCsGAQUFBzAChjhodHRwOi8vcmVwby5iamNhLmNuL2dsb2JhbC9jZXJ0L0JKQ0FfR2xvYmFsX1Jvb3RfQ0EyLmNydDAfBggrBgEFBQcwAYYTaHR0cDovL29jc3AuYmpjYS5jbjAdBgNVHQ4EFgQUDCZ1XGhlKu1cWoSBox23m5RdVWAwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBTSSrFRfwbw0YIfTm5fq4P8SNSwkTASBgNVHSAECzAJMAcGBWeBDAEBMEgGA1UdHwRBMD8wPaA7oDmGN2h0dHA6Ly9yZXBvLmJqY2EuY24vZ2xvYmFsL2NybC9CSkNBX0dsb2JhbF9Sb290X0NBMi5jcmwwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAoGCCqGSM49BAMDA2gAMGUCMQD1XWpa3onETk0vCB1dK/9wE2Eqi3kbcjzrdWIFsVsL2e2aA9YMIIY5+OI9Hz/z7cwCMBbGiZyoDycWyEVLR/Y0O5S3FSyfhXhe9Zzneo+McqHuFAmCG9eG/90iDMntHbQ7Fg==", "MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0EgR2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRCSkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jlSR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8gUXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w==" ], "serial": "TWdg2V1LW5RgdfQgP177Zw==", "issuer_spki_sha256": "67af9xS2EBisbFPJKaFGqSirwXd/aRV/fNJljdOCNIQ=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1776334098136 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776334098847 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1776334099397 } ] } }, { "ca_sha256_fingerprint": "578AF4DED0853F4E5998DB4AEAF9CBEA8D945F60B620A38D1A3C13B2BC7BA8E1", "ca_label": "Telekom Security TLS ECC Root 2020", "test_website_revoked": "https://revoked.tstlser20.test.telesec.de/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDizCCAxGgAwIBAgIQN6ZhMwQa1Kj5Tbm3f7uccTAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTI0MTEyNjEwNTI1NloXDTM0MTEyNTIzNTk1OVowXjELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDEmMCQGA1UEAwwdVGVsZWtvbSBTZWN1cml0eSBEViBFQ0MgQ0EgMjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQXrQKQVxgImD0qNpMm2mFRtSkP+tOO0yV3PrqhxUVUvyQMm3LMWof1ZW3ZkmFH3biiVvB1io0wRgn2LJcSp/dLnjDRY9cmpVYmooRKXu5PwP8l51PjcobkSdmCr21Js2OjggGNMIIBiTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFC1/ZyRBR/Uw7hAsPNBV9HBEN8GHMB8GA1UdIwQYMBaAFONyzG6VmUex5rNhTNHLq+O6zd6fMBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL3RzdGxzZXIyMC5jcmwudGVsZXNlYy5kZS9ybC9UZWxla29tX1NlY3VyaXR5X1RMU19FQ0NfUm9vdF8yMDIwLmNybDCBnAYIKwYBBQUHAQEEgY8wgYwwMgYIKwYBBQUHMAGGJmh0dHA6Ly90c3Rsc2VyMjAub2NzcC50ZWxlc2VjLmRlL29jc3ByMFYGCCsGAQUFBzAChkpodHRwOi8vdHN0bHNlcjIwLmNydC50ZWxlc2VjLmRlL2NydC9UZWxla29tX1NlY3VyaXR5X1RMU19FQ0NfUm9vdF8yMDIwLmNydDATBgNVHSAEDDAKMAgGBmeBDAECATAKBggqhkjOPQQDAwNoADBlAjEAqdk/EaSARcFNJmgHaDSCLHvT8ltwx7et3L/HAlji5F28SqFsc4EsyV4cQp8TGsFZAjBDd0n+ad6lDlloNqAQKMeVNQKNUhOVfgB8LR10UXYH7tq/QMTI/+lcUjbEXQ4ev0I=" ], "serial": "EdWKn0dDxGfDigegsS11hQ==", "issuer_spki_sha256": "tGWZA28lF6LJg0Dsi5yFRZWGA1wpl4xIY2axjBiIA9Q=", "scts": [ { "log_id": "qCbL4wrGNRJGUz/gZfFPGdluGQgTxB3ZbXkAsxI8VSc=", "timestamp": 1771237940498 }, { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1771237941150 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1771237940208 }, { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1771237940093 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1771237940120 } ] } }, { "ca_sha256_fingerprint": "57DE0583EFD2B26E0361DA99DA9DF4648DEF7EE8441C3B728AFA9BCDE0F9B26A", "ca_label": "Autoridad de Certificacion Firmaprofesional CIF A62634068", "test_website_revoked": "https://testrevokedsslev.firmaprofesional.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFlzCCA3+gAwIBAgIQBze4hza24LPbCI8jaq48fDANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJFUzFCMEAGA1UEAww5QXV0b3JpZGFkIGRlIENlcnRpZmljYWNpb24gRmlybWFwcm9mZXNpb25hbCBDSUYgQTYyNjM0MDY4MB4XDTI1MDIyNTEyMzUzOVoXDTI4MDIyNTEyMzUzOVowdzELMAkGA1UEBhMCRVMxHjAcBgNVBAoMFUZpcm1hcHJvZmVzaW9uYWwgUy5BLjEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MS4wLAYDVQQDDCVBQyBGaXJtYXByb2Zlc2lvbmFsIC0gU2VjdXJlIFdlYiAyMDI1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7J8/7viHIpRTGTFSId0Y2lpN1DuvC+OhHXy+PUKqPL3Zvhzk2smlhA7sT+TDRHRM8VeQosnEaYp8TJP2qBml++fjJ1+K5WmFvD2lrU9NYMZiwiLZL+FlvtBHtZ8tL7qm+KnTtthrb/HwwiEVTyKO12pCd4lzqakKJ2Z6YnlMITfb0fxQjS0QyTNNmOEK9y2YdtIQ15mSnMnOobhxl5pZ3cSwK9tVGvU45+1eHnMRtlU55vFScOuEtUYiKyzsqlBtYt6W4PxPLQeuD3dZPxpmpju5M0oibFSNw/qiWahahXKase+GfOKRMcEEcpRMnjvtWCZwaem6X3h4XNlR0icKsQIDAQABo4IBQzCCAT8wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRlzeurNR4APn7VdMActHNHDhpkLzB0BggrBgEFBQcBAQRoMGYwNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcmwuZmlybWFwcm9mZXNpb25hbC5jb20vY2Fyb290LmNydDAsBggrBgEFBQcwAYYgaHR0cDovL29jc3AuZmlybWFwcm9mZXNpb25hbC5jb20wEQYDVR0gBAowCDAGBgRVHSAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuZmlybWFwcm9mZXNpb25hbC5jb20vZnByb290LmNybDAdBgNVHQ4EFgQUKqVb/MYNuyU674eP9R55ADZJZvUwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAmW2tSVj9Vn9LwEtHvGK50rHdTvbb1EJ2ZwHYWhhOGWhbArYinMR8gGCmHQBu0OvlzNKU3tDhvTXqB7/E+u2MBqfkDRZC9+VAnZCuoqy+1FKuIBfkKfGl9rRzQwhad/WIuCYG6RtTcRXQBAEoL+au9jd8BmvZ2Hqxa5HsI3ORsC3fvCUO1ur9QljQ3MEM4KrT1YEEB0CvgcGSwsM/Q9ot9TW9neEY3biPc7lA7qfERSu4uBvPK9sbiA0VFfBNRUi97wsvc69dGClmEL3331gply7ljVhbNuTaAVi76EDXBd1zgOW6Xn0TMbBbj3r/X8JlwN2iKE1ZT2hxo8qxNtMuAosKx86LgQkZttkm09unsji1X50y3wCmbY+ME6UoDt37baf4iJbzosUhno2evKwi8unHt2cAMOVgzx30x2FlcG+X69g2by3pqLxcUa74riqMnEQLEv435J9QlRuhS8OYZqVy8xh1oFXVXM7+LJag/6Z4wBaEYMYzpqombN1JmQHa5xtTF3xGBgy3oj37g9fBzT+Sr9GMQFD7CnN/E0BXbHWlym4IFj942zEfLCvzVUYmicsCyP73o6/rPugpRuBRwMwvzVaAoh4GvOhOaGuRZqUVCk2Ja2KeeVS8cuy/MHoreDXU4k6ceXSk04Bqj8ZnPOf1tulvxzHoA2PiM+pDxmA==" ], "serial": "QpJlTBxkfhgtINfCdjRuWw==", "issuer_spki_sha256": "j4RL7W9ePcB4Cq0F/Ru9msmXr9LBeS/A8iEr+N9MRAY=", "scts": [ { "log_id": "ooEAGHNOF24dR+CVQPOBulRml81jqENQcW64CU7a8Q0=", "timestamp": 1768393350551 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1768393350177 }, { "log_id": "ABpdGhwtk3W2SFV4+C9xoa5u7zl9KXyK4xV7yt7hoB4=", "timestamp": 1768393350199 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1768393350360 } ] } }, { "ca_sha256_fingerprint": "59769007F7685D0FCD50872F9F95D5755A5B2B457D81F3692B610A98672F0E1B", "ca_label": "TWCA Global Root CA", "test_website_revoked": "https://evssldemo7.twca.com.tw/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFdzCCA1+gAwIBAgIQQAEzBPcAAAAAAAAMwELNbTANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRwwGgYDVQQDExNUV0NBIEdsb2JhbCBSb290IENBMB4XDTEyMDgyMzA5NTMzMFoXDTMwMDgyMzE1NTk1OVowczELMAkGA1UEBhMCVFcxEjAQBgNVBAoTCVRBSVdBTi1DQTEcMBoGA1UECxMTR2xvYmFsIEVWU1NMIFN1Yi1DQTEyMDAGA1UEAxMpVFdDQSBHbG9iYWwgRVZTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7MIaeq4wMnTjA5C2LsR6HJUj6rZbs8NmqsSqFoqu6LwjrMbzkAg274EL6913MQ6eOy6VUDRzqAfgBEYcwFofe/w8nC7Q6NrzzxTkl9lovXLJIm0CI44Qk2IhiCkoYaPlIoqexqnm3Fc2QRdRNeLk2pU/s86DpGrwTBqRRRkziBlhcgo7K5Z9ihf+c82DT31iIUIi2nr0ES1eaRR7zpKrzJPZ8foNxRPwT2D0tJWQJ4hNzbFGSKsSzshdwQ/p4JP9AEjK2eeXXbEePt0/JarwBjO2Lwign38/g0ZiP3uE47bItxZhgXlnR5L/0bhJitE6U1xgVFbbrQnG2B2kZxVKxAgMBAAGjggEnMIIBIzAfBgNVHSMEGDAWgBRI283ejulJclqI6LHYPQezuWtmUDAdBgNVHQ4EFgQUbr2hK87kwtUodFy92YxvBHIqBt4wDgYDVR0PAQH/BAQDAgEGMDgGA1UdIAQxMC8wLQYEVR0gADAlMCMGCCsGAQUFBwIBFhdodHRwOi8vd3d3LnR3Y2EuY29tLnR3LzBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vUm9vdENBLnR3Y2EuY29tLnR3L1RXQ0FSQ0EvZ2xvYmFsX3Jldm9rZV80MDk2LmNybDASBgNVHRMBAf8ECDAGAQH/AgEAMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL1Jvb3RPY3NwLnR3Y2EuY29tLnR3LzANBgkqhkiG9w0BAQsFAAOCAgEAaOmLaZ2+WN2EtB6feuSV5KnL88ckI9jsUTB4YtKsv0ViORkeBMCQur5OoAgRE9VYdRVlWHN0zJAX232fdoZmnajl8gtju0AOOyDDJ7Vlh38rDMRlX/u+MS2DFcsq5Vd3EMwJsWWFR9D3Dcey+Tu9uEmEdqeB+Erd4YjCeV9PyOW3SzPQ47RdW6XYmHArPh65/LcmSxTn/lxQy/NEBGGWqhm6s6n149mPq4MtQcMLo/NBI+8jv7BVjnThbbEh2edHHxMNiAd5kLZFDCyJuFkoezjWL4AHratXdoHtqvqtPoy97LyGrLrJeh+0hkO9u8QOt2gF7BEhNfid7o5dnsPRk+8l77HnT1dvBs++M0r0QG4AWMSMj9uUn6rhl4FGTvAsyB1fA8p/xCLoIEetIpKRP3BD+ve2eYjWPorR/0W77iMTeoQEeuxDIxi2J/U9QLKKvzzqBy1TYrqqPe5YxqHLNAcfHZvoBTPPbtP0WAiXrJiELTYcqFXETvQcGw0XjoUZNvJE8RD7vssSNT17RKU8iBRX7CbLAB3T8gYykPMJTUqQSmdgEdVRBcqRMMdU+XRAEoU/Mz5oHAkm3ZNTDNwsEp2Dg1/bqzfPMhg4/3/YyWzGrzNeCSWZkjYImAzLCvN0D5rbdVHEmFIrEJt+igocGozroq5xDT5KhixlrqexzWE=" ], "serial": "R+oAAAASXOMd6E2RpJE5CQ==", "issuer_spki_sha256": "3sXbPfqhHfn3hza4ob3X6iuMjfN9qdgOhBAC5GOp+TY=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1773132881475 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1773132881541 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1773132881568 } ] } }, { "ca_sha256_fingerprint": "5A2FC03F0C83B090BBFA40604B0988446C7636183DF9846E17101A447FB8EFD6", "ca_label": "Hongkong Post Root CA 3", "test_website_revoked": "https://revoked-ev.ecert.gov.hk/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "D/aN7QOdRQpdPuWc1xl7gcRn1Mo=", "issuer_spki_sha256": "shxxZc44F1hF3pjKzr0Oaoq+CwRFBKIr0/noGHUYkjA=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1759393530174 }, { "log_id": "dNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLw=", "timestamp": 1759393530703 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1759393530651 } ] } }, { "ca_sha256_fingerprint": "5C58468D55F58E497E743982D2B50010B6D165374ACF83A7D4A32DB768C4408E", "ca_label": "Certum Trusted Network CA", "test_website_revoked": "https://revoked-certum-ctnca.certificates.certum.pl", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIE0TCCA7mgAwIBAgIRAMWi0/brTRk8F6kKo4opblQwDQYJKoZIhvcNAQELBQAwfjELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEiMCAGA1UEAxMZQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQTAeFw0xNDA5MTExMjAwMDBaFw0yNzA2MDkxMDQ2MzlaMIGHMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSswKQYDVQQDEyJDZXJ0dW0gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQSBTSEEyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwkjZnegjQDnmzVUWTRJjmqhLeUg5+KdA+8O00r5sYK5ZAYXRIaGygJSpI7Xlnc6hVfWebNqkSropm130IDmyQvYLOr7SFFwkyJpwW0M4ibk/rV9UaVEfsTqmiGNl3+dUX7swDeLfuUoTqXOF52qxBZf1qMfwFPSvBBxCLRQECnNTTHXtEdF00fYGnikgkceuWJfn/0PkKR7Fo4paMhRtXN1cRKuoMwUaWGRlpZJLztsDUEVpgex1n/PbKI9n/WDif0BceTj0Yr7D0DDzybS9GniVW9jI406Zbfi5apOLxKIH/Y5d7tLSxlLhV1Dt/ORa3iF+OzxZ9Bj7ox0rbHhzpwIDAQABo4IBPjCCATowDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUufIi0SCS9aXhE3Wu4Hb4yfGtc48wHwYDVR0jBBgwFoAUCHbNywf/JPbFze27kLzihDdGdfcwDgYDVR0PAQH/BAQDAgEGMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9jcmwuY2VydHVtLnBsL2N0bmNhLmNybDBrBggrBgEFBQcBAQRfMF0wKAYIKwYBBQUHMAGGHGh0dHA6Ly9zdWJjYS5vY3NwLWNlcnR1bS5jb20wMQYIKwYBBQUHMAKGJWh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9jdG5jYS5jZXIwOQYDVR0gBDIwMDAuBgRVHSAAMCYwJAYIKwYBBQUHAgEWGGh0dHA6Ly93d3cuY2VydHVtLnBsL0NQUzANBgkqhkiG9w0BAQsFAAOCAQEAUbDCOxFY2JERv02ZR8fmQelc/AzuQtSLs2MOb/Mz3l9NU3EdsF+Pd9zTr3MZvnw6+QfD+eTgkjNGpMTXRMxtNZahEACjdYftukcP7sTTYlAa3DjR6h2ayCY5+LCpC9y+agNqnn11DJvwD8Tk0jVuGvWjgPii5zlTG1CyCWSLvykZQiTA3ffszzcSEGklT+lftAzTqTiC69Ul7J56gZfmwSiK2jiyMcXDVHyBIhWyLCLnD1fA8hYnnSlXKLNKHX0ZLORY585jv1dJ2GHPis42NjE6re+RY+jezTDJVYpsqEvLOEvf08u5xjzZ6HRX8wD561zNWX1uvFR3JDmyb8eW1g==" ], "serial": "bddZFsaC8cPGRsOXlh5uzA==", "issuer_spki_sha256": "HYLX8fqXEbN3Nn7+5kDCagbbzZnSoXsP+rAxbZJ4isM=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1763973448104 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1763973448422 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1763973448513 } ] } }, { "ca_sha256_fingerprint": "5CC3D78E4E1D5E45547A04E6873E64F90CF9536D1CCC2EF800F355C4C5FD70FD", "ca_label": "CFCA EV ROOT", "test_website_revoked": "https://rev.cebnet.com.cn/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFfDCCA2SgAwIBAgILAPnfat/1ZL6mi4IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEVMBMGA1UEAwwMQ0ZDQSBFViBST09UMB4XDTE1MDMyNTAyMDI1NloXDTI5MTIyNTAyMDI1NlowVTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEUMBIGA1UEAwwLQ0ZDQSBPViBPQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDn14xTy0bHzkaeyACeq6ryfxxG5zZT1fCL4lmw7sk6SVmOKNfE60Gf7W6orksrFVIbIMK+VrYp+aYyhScq8EJT9xXBgXK2HqtpaDGOeclspJvcs+rXn9tlT789NBp3i5U+nLE9M1bRCHSx3Hzu8p7Aeqllou+8nZ2egaVbWFL1zC1JENupSSI9Yjbefhb06y/TVxQ0x4ZtzwPwLcd8NUtSruldolxPbhQeCZNJMPq1GKMxhd5pDwY4mCKxDeraqhTNXui9Aef3qyi2Ic9EXmdNPARkZJU2XTJ9FJ+DE+ChaIvfJ/VwQfM0eGlBn/SAaav54jBmRnecPeD6YfpuiJ8vAgMBAAGjggFKMIIBRjA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmNmY2EuY29tLmNuL29jc3AwHwYDVR0jBBgwFoAU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDwYDVR0TAQH/BAUwAwEB/zBEBgNVHSAEPTA7MDkGBFUdIAAwMTAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xMi5odG0wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5jZmNhLmNvbS5jbi9ldnJjYS9SU0EvY3JsMS5jcmwwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRms+/7VJWH6aylllau5n3tOtBD0TAnBgNVHSUEIDAeBggrBgEFBQcDAgYIKwYBBQUHAwQGCCsGAQUFBwMBMA0GCSqGSIb3DQEBCwUAA4ICAQDKER8qcBmZGOG8GOJ670VWOSg3UovOoc7/xz2mE+enyEcSwn/0QrL8C5DSA6nMvBMrCWEytYPofGQUXTwtlu78GLxYNn3A/RtzczJ+/BXIhoe3aOT4tQ+2s9vrFRfIXs4CkmqHhfYSvArokdayYmBd78psIwS5LCUzGKSn7y8UmAgoxiy7RtrVt5c1wvJyeuYk1Z1l8MN1szPrmAb4HS/DqnB+0qdhFGvfOyv7lg6/wlIAkN84cHlKNC3JvyFHaCIAyhTPgjUayUvBKFK7XwN9utIXl2L3IZX7zfxGS/J9+ZeNwyblQKmd/MKydJu9Ak6+ZMLLgjlCFkihJIn9Ur8M2KQigz7YPDVIJjOtS7ljOQVGh88LPUnQ1fBY7RwagficS/xclIOnaXhoyWzg7EcQ/T1/O4FkpMqKuOreaI5NExjAT8cKizyY2wcOOXKIYri3Ewnbm+00IaYYaiQRGUR6pzFFKxdFMbStCtI4ObN+A9tB7cnBCW4vz3sAJd/OgmLF38XTa+/km3c1nQOfhCGs6kx2heN/DgFAc+P7ldObo/kgGQtR6tr02gyXCFWnLMtT0+CoNOY0o3T+LbEqYeKLW7p29G9sgHgoqLFibWNMSKG1QvevkhjUMOD/g48f/nMSYsbU++yEaLvjvRHbb5ONIPkcE28TRhQQKmDKI+DRIg==", "MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIBACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su" ], "serial": "IBUBLbmC60KGz5xIzs/2nA==", "issuer_spki_sha256": "uc0FPx73f1ObHGmGZOcevy371Uo9asVjdabpiS0lKgQ=", "scts": [ { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1760412686315 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1760412686294 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1760412686323 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1760412686387 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1760412686493 } ] } }, { "ca_sha256_fingerprint": "5D56499BE4D2E08BCFCAD08A3E38723D50503BDE706948E42F55603019E528AE", "ca_label": "IdenTrust Commercial Root CA 1", "test_website_revoked": "https://identrust-commercial-ov-revoked.identrustssl.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIGvTCCBKWgAwIBAgIQQAFu+vSEq6LjsbaVYwMsczANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTkxMjEyMTYzMjM5WhcNMjkxMjEyMTYzMjM5WjBZMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MRcwFQYDVQQLEw5UcnVzdElEIFNlcnZlcjEdMBsGA1UEAxMUVHJ1c3RJRCBTZXJ2ZXIgQ0EgTzEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7g55cFrCoIeDK1sq2+V5Am2l1vbqjhalYhRH6x0BhmP6XLx0jhqwcVm7HfhQ6pJQEVxo8kB0Qp9RymSOvvVNCtW2UnmPxuoNxGFlZvjNaYf/jhMzUMGGQZ0ZXb2hKe5NMYDHwuVvnSHnTMvSYAzu9rPOruXOlfURxYIu+3o3huWivZyBP+Ze+xMqmbRmYgnAcXSoOVI3UhwKF/r5+o+CFOBvSkgB1ov8vLhE0rLQkHCXdk/qCmxFbwhYO+SsBrGKUfXOK8ze7AXLDn6e01EyvUscRZu8NlFParxMWW7STjwZ+kh+QFB2HLj8o2V8irmubZMBsVkKWyG+WHoEuL7m/AgMBAAGjggKOMIICijASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjCBiQYIKwYBBQUHAQEEfTB7MDAGCCsGAQUFBzABhiRodHRwOi8vY29tbWVyY2lhbC5vY3NwLmlkZW50cnVzdC5jb20wRwYIKwYBBQUHMAKGO2h0dHA6Ly92YWxpZGF0aW9uLmlkZW50cnVzdC5jb20vcm9vdHMvY29tbWVyY2lhbHJvb3RjYTEucDdjMB8GA1UdIwQYMBaAFO1EGcDT8AaL7qR7vkLnJlTIjjZ2MIIBKwYDVR0gBIIBIjCCAR4wggEaBgRVHSAAMIIBEDBKBggrBgEFBQcCARY+aHR0cHM6Ly9zZWN1cmUuaWRlbnRydXN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L3RzL2luZGV4Lmh0bWwwgcEGCCsGAQUFBwICMIG0DIGxVGhpcyBUcnVzdElEIFNlcnZlciBDZXJ0aWZpY2F0ZSBoYXMgYmVlbiBpc3N1ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIElkZW5UcnVzdCdzIFRydXN0SUQgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vc2VjdXJlLmlkZW50cnVzdC5jb20vY2VydGlmaWNhdGVzL3BvbGljeS90cy9pbmRleC5odG1sMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly92YWxpZGF0aW9uLmlkZW50cnVzdC5jb20vY3JsL2NvbW1lcmNpYWxyb290Y2ExLmNybDAdBgNVHQ4EFgQUThcZFloOTNxO9HLs5DoBwRmU/TUwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4ICAQCbLpB+BNTA1WvOU48YNwB9OzfX5UIqLOtw+3FoFuvsMY0b5V4u8+lDj9n8hQW67qtbcb1eN+ZTD9hqkG39BnfkjnJeAdagfDBl08UtfmhqgZpH0SI/6ug18pVTPU4MBAWHgyILWXsuSydFrt/Sw6pq+G53ACWWs8zYMvmfZB9y4ABsr1k0YtM2wwist+XlxRQqH+NOqc9sUPeTfPmITxyvotAXR6sHrjEj12sQIE65/IfFFvsYFlfmHpy9bX5Y3hQ05sscd35ONefXYzNDxe0spVpwbKmRc20Nd/TtjtDOyINrxW1e92karKJUf2cO4GowOElP6c5MRSXzmmIDnahoJ/CSXcf5c5lv/YhdJU7Mb8ZYTBJqeaZYQemukOLyn8bXMlZdx4lSdQotO7wwnmXNxDaLt3AsoynM93yti0pJNuhNdFwG/ml5gDVcK6Vfq/f2mOcNf3YCkl7vJuLvvR+Qc1/+cpSpmnGxMC8qPp1mcg9cX8n5eTzA6ypwRli4S+V+fJsi00SYpQGY72UEFwN/MmSJTL8vQevba2IHC8eRQj37A6623FIQRfV4CnPupuZ8i/ErZMgUM423EeuAg68TEgP+w22IijHD9ZLXlm7OLfwZqbN9zHTd8TIoBYNBEzCv94oduRyUa0//S1mfW1QH9sHDoA0CNud3OBtTdpwLiQ==", "MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H" ], "serial": "QAGe+jcHwnPXrm6xd6RlAg==", "issuer_spki_sha256": "TpfnK/TFKAbtiqXG0BETu96LfmJwwZKETBR58/SIZnk=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782314371242 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782314371887 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782314371235 } ] } }, { "ca_sha256_fingerprint": "657CFE2FA73FAA38462571F332A2363A46FCE7020951710702CDFBB6EEDA3305", "ca_label": "certSIGN ROOT CA G2", "test_website_revoked": "https://testssl-revoked-evcp-g2.certsign.ro/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "OQQXF4IZLV7a57w=", "issuer_spki_sha256": "+4NfwLvI+oS2XMvCOK+SvLyI3uhHOqTdnARBHdcqvtE=", "scts": [ { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1778243946151 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1778243946696 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1778243948195 } ] } }, { "ca_sha256_fingerprint": "69729B8E15A86EFC177A57AFB7171DFC64ADD28C2FCA8CF1507E34453CCB1470", "ca_label": "ISRG Root X2", "test_website_revoked": "https://revoked.x2.test-certs.letsencrypt.org/", "detail": { "end_entity_cert": "MIIDbTCCAvKgAwIBAgISBfSJOmltBBrPQfMHMjQZl1MLMAoGCCqGSM49BAMDMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZRTIwHhcNMjYwNzA3MDgxNjI5WhcNMjYwNzE0MDAxNjI4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEV2fAYKBwOUNAsUiimZMq9G82pnSWYH4dt7gddhUBh2LWTLPUAtjOr+ALFJC+Cr301ixlFBiibeb/Tg/Q7BCvA6OCAhcwggITMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFLlZ8o7PIvCG0zdI/3YUGLqC2FWHMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAoYXaHR0cDovL3llMi5pLmxlbmNyLm9yZy8wMwYDVR0RAQH/BCkwJ4IlcmV2b2tlZC54Mi50ZXN0LWNlcnRzLmxldHNlbmNyeXB0Lm9yZzATBgNVHSAEDDAKMAgGBmeBDAECATAuBgNVHR8EJzAlMCOgIaAfhh1odHRwOi8veWUyLmMubGVuY3Iub3JnLzEyLmNybDCCAQwGCisGAQQB1nkCBAIEgf0EgfoA+AB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnzvb+FMAAAQDAEcwRQIhALBFHIPeC0SxNVgADnURTpDOcgtAZ7kTpsGqFIruNrZ0AiBeE/C/JDPA+FrvcZxZNt1MtFqYoLqcuS8Yjh0iCzSW+wB+ACbjZG5YaSEjvDQ/RyQ1mzeSzSRaiNgV05Mz/ZkYq0cjAAABnzvb9eYACAAABQAmaWR0BAMARzBFAiEAzS6ky3eZFvXFRriIilhr0gC2vBR1674SizyNNhmDFyQCIH1NsvqLSW7sbCwoZR06v6Ju9UhYb3T83BAtImiVaO/RMAoGCCqGSM49BAMDA2kAMGYCMQDcBuXNVyaDrCaoh7C5U5BW3kQKlYRvpychDJdj5nhZPE+2Rm787Gp0Dv9cFZYjt4QCMQC33FvAgXGrvTA+jxCMPV403h7MqMGwaImo9A1hlhoGoOn38v5FdjMv8KGLZbLWcJM=", "intermediates": [ "MIICjDCCAhGgAwIBAgIQTfOxXdbAeExQfNN7WObxFTAKBggqhkjOPQQDAzAuMQswCQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZRTAeFw0yNTA5MDMwMDAwMDBaFw0yODA5MDIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZRTIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARxmrQzkdbEEL3MqXt3dJQttYc47axkdDTHud5TPqM2z5uSD5cmk0WrHlWXvnlvqBLqiB34kluxIbmMyAiq3/YD6e80/vV259K8XQIdjFXloYOa0mIU71f7HQ09PvYDlw+jge4wgeswDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLlZ8o7PIvCG0zdI/3YUGLqC2FWHMB8GA1UdIwQYMBaAFKPIJlqOoUzQNWP8myPIOq5W809WMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3llLmkubGVuY3Iub3JnLzATBgNVHSAEDDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veWUuYy5sZW5jci5vcmcvMAoGCCqGSM49BAMDA2kAMGYCMQDIcnw5dcZLN9ffynXnnkLD/itSJEycJPb3sRkzeqBowup7vOsAwaqoCnNn/jh9wycCMQCJM6CPlaOC4pQYYbJtVPYbDKrIb2EKk5NpOpE6/XttQYZV/3gilB9l+Cc/DOVwmyg=", "MIICpjCCAiugAwIBAgIRAIchZfw0tuX7qK3Vs3BftTowCgYIKoZIzj0EAwMwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDIwHhcNMjYwNTEzMDAwMDAwWhcNMzIwOTAyMjM1OTU5WjAuMQswCQYDVQQGEwJVUzENMAsGA1UEChMESVNSRzEQMA4GA1UEAxMHUm9vdCBZRTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDwS/6vhrcVqcbBo+wgdI3fwn9x7DNJJOY/lTOti0vkwuRN87RhEhTH17E7XyFjWsPYhIPt/wzOqxTd2b+4ZJNy9ID04YywF9U5zasDVyGSNErVNtz8uSGh5izW87j77GaOB6zCB6DAOBgNVHQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUo8gmWo6hTNA1Y/ybI8g6rlbzT1YwHwYDVR0jBBgwFoAUfEKWrt5LSDv6kviejM9ti6lyN5UwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8veDIuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcGA1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly94Mi5jLmxlbmNyLm9yZy8wCgYIKoZIzj0EAwMDaQAwZgIxAMU19WCtmxVND8UHBZRoma49Z7jPs64Dma0eTu1OChVbB/2J7GV3nvYKAx54uk1G9QIxAO0miLVJu8PLNiXXXkiE/gsK3CTRTF/aeo4bMX42Zw40csRU6AC26hSW1/IWaas6dg==" ], "serial": "BfSJOmltBBrPQfMHMjQZl1ML", "issuer_spki_sha256": "s/tdAOmUzd8syaTuqfgGvFcn6DzA5Cmb+Vby1ST+U3Y=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783415699539 }, { "log_id": "JuNkblhpISO8ND9HJDWbN5LNJFqI2BXTkzP9mRirRyM=", "timestamp": 1783415698918 } ] } }, { "ca_sha256_fingerprint": "6B328085625318AA50D173C98D8BDA09D57E27413D114CF787A0F5D06C030CF6", "ca_label": "Certum EC-384 CA", "test_website_revoked": "https://revoked-cec384ca.certificates.certum.pl", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDTTCCAtOgAwIBAgIQKbZFTV2iSQM7s3qlNxe3QzAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMjQwNjE4MDc1MTU1WhcNMzkwNjA1MDc1MTU1WjBSMQswCQYDVQQGEwJQTDEhMB8GA1UECgwYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMSAwHgYDVQQDDBdDZXJ0dW0gRVYgVExTIEcyIEUzOSBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABN8qvfMhMelO8KnmqLZe9NiMx8M5q3LFopMboR4Syr36zeCRQldw6WGsyNLzt3w1+oikj1UXvgMuFYoXWiP8jqIFZojlScmebssTbdumQySWZs7PdERt54QsYE128XxKuqOCAUowggFGMHQGCCsGAQUFBwEBBGgwZjA6BggrBgEFBQcwAoYuaHR0cDovL3N1YmNhLnJlcG9zaXRvcnkuY2VydHVtLnBsL2NlYzM4NGNhLmNlcjAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNvbTAfBgNVHSMEGDAWgBSNBmZ0JHY684n3vNa9R30vvBBfSzASBgNVHRMBAf8ECDAGAQH/AgEAMDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9zdWJjYS5jcmwuY2VydHVtLnBsL2NlYzM4NGNhLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADAdBgNVHQ4EFgQUP7YBdVog+NGwJpR43KmM0WkM17MwCgYIKoZIzj0EAwMDaAAwZQIxANg5S7igNJqlbY0Oz4wTha/1qYkhyEeRV5ysEzaGXi9CSI3gdN34R2c+krl6/qSBGAIwPY7qWovNcmcEEA2qwmhJvvhGPGxV3Hk+Dl8rQukBUWmaQSRYWQesU8bBBGjS5cTe" ], "serial": "C8MS+AFhF4n5p3rZmm4UDw==", "issuer_spki_sha256": "6U5bo8jkX6murfunyMH4g3qaK357PWrqLEjcX/m3tpI=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1758285604465 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758285604500 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1758285606854 } ] } }, { "ca_sha256_fingerprint": "6B9C08E86EB0F767CFAD65CD98B62149E5494A67F5845E7BD1ED019F27B86BD6", "ca_label": "OISTE WISeKey Global Root GB CA", "test_website_revoked": "https://gbrevokedssl.hightrusted.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIEuTCCA6GgAwIBAgITMwAAAB1sHJ4B1ms5uQAAAAAAHTANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0yMDA3MDQxNTI1MjZaFw0zNTA3MDQxNTM1MjZaMEcxCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSYwJAYDVQQDEx1XSVNlS2V5IENlcnRpZnlJRCBTU0wgR0IgQ0EgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPskiJ2KuwQyuDILa9u+q2DamhpomWIrrCxyjq2w2rY95wJyqf74cLEwHEJ89L9F0z5MFpF0FgW2CVZCLTLwHiDEtaRz0I5xLQA4x6W1cbonXiK857hSASEGsZoXdljjkH1lo1B3f2VvVdQ0frgF3nU4swwHE9kg+LI6Ed9n36/iYuMQY9RpYqYFBJcIdcEgyyI11g93mNnGg3CZifiqBjVq4jIaKSAkIa3bXQr2gylcaERQPaiDo0KRxTP+xQu04uirsJhzpqB/ps63IiIJHb7pXvZf/n97JU1rlanOtZFUzjjjye5GQ0oslh0gCH8INBMH2ta/a+xI7/ULBfcqFXsCAwEAAaOCAXYwggFyMB0GA1UdDgQWBBRfG8UKezh9PsO3Mb+k+xQjUuGNGzAfBgNVHSMEGDAWgBQ1D8g2Y17io+z5O2YVzlFS45GaPTA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9vd2dyZ2JjYS5jcmwwbAYIKwYBBQUHAQEEYDBeMDYGCCsGAQUFBzAChipodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NydC9vd2dyZ2JjYS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLndpc2VrZXkuY29tLzBCBgNVHSAEOzA5MDcGBFUdIAAwLzAtBggrBgEFBQcCARYhaHR0cDovL3d3dy53aXNla2V5LmNvbS9yZXBvc2l0b3J5MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEABRDesyjqWXCR4JmGdGqDaXZ2yxVF6GMUTzbyCMbwSGr/NzQcuHeUGCapHMxSX9HRG1he/+pIW3+FVckuQG+4ZNQ9b8+QTo1GH3fbbsm7I/PHofp8mv4f8beEDXS7AW/lfKNZT1SMJoFifazqARMHZ3fe+e1S3IcAfbj0ZiIXGEnbj5ZfFpgmVBcUxp07CI+xMw2WVd4P4HjapTeZ7wEL8eWj+NFqwHtJwCdrScEFlvOWGJxV9NoPlhRyuisC2OUQvFM6u5hVMJ/InGvaY4vr0cYLkcRl/rcEUN9iwn9J/3z8JypI2xrHwI8mttJBkgSZYHPU4qNBNzctN63j7u1OgQ==" ], "serial": "OPFbO026H15JZklxspcGN0qvHCc=", "issuer_spki_sha256": "ktJRzJxhVE71wdby3vum5K+dgm6QylD4z+l9CBGOUQU=", "scts": [ { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1783151968244 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783151968134 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783151968155 } ] } }, { "ca_sha256_fingerprint": "6C61DAC3A2DEF031506BE036D2A6FE401994FBD13DF9C8D466599274C446EC98", "ca_label": "NetLock Arany (Class Gold) FÅ‘tanúsítvány", "test_website_revoked": "https://revoked.ev.tanusitvany.hu", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Xql+KhItENKhOQ2KGqA=", "issuer_spki_sha256": "vRSkgbqFoy29lSNM6Ih557Nl+K07Rwh3GriW7t3fMJw=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782205327001 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1782205327317 } ] } }, { "ca_sha256_fingerprint": "77B82CD8644C4305F7ACC5CB156B45675004033D51C60C6202A8E0C33467D3A0", "ca_label": "Certainly Root R1", "test_website_revoked": "https://revoked.root-r1.certainly.com", "detail": { "end_entity_cert": "MIIFNjCCBB6gAwIBAgISeGcsGFURMeCTBQWt8DlP24SiMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxIjAgBgNVBAMTGUNlcnRhaW5seSBJbnRlcm1lZGlhdGUgUjEwHhcNMjYwNzAyMDM0NzQzWhcNMjYwODAxMDM0NzQyWjAoMSYwJAYDVQQDEx1yZXZva2VkLnJvb3QtcjEuY2VydGFpbmx5LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKgzipgV3bsWvSNfh2l8HDZHxQP+5TsbUkn6FyRpGvvInPtXikH6Nr1e4X0ydQrk3MhePQfIXjLUYiENdJvBQZjyKhLxpU2sARt5kOyBAxvvTjMlijgS3HebOF4F1X5j4zUHv0q21jEedlF4fBF/GX37KVJP8nz77Lto5nb5mzMY6ereyhBwznO5Cbkw7H1sdCovh4EB6KaeOS7u6L4vEERwztDOhEHf03/IpZyy6Sy/kko0yMFbY6qvNgHp7TrcfKLgc0C7mHvDoh8jZXI8BTgoOZO1k0BJ+OFfjBHqT96D7ddxdEKJmYAzIUhvqSFttxV211fShdt1F7V7BQRa1VECAwEAAaOCAjswggI3MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTv48riuz5rS0hcGa2gi9DGn4IoBzAfBgNVHSMEGDAWgBS9l53fodgbJZnjDAQGiWQS12UkxzA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAKGG2h0dHA6Ly9pbnQtcjEuY2VydGFpbmx5LmNvbTAoBgNVHREEITAfgh1yZXZva2VkLnJvb3QtcjEuY2VydGFpbmx5LmNvbTATBgNVHSAEDDAKMAgGBmeBDAECATBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3Jscy5jZXJ0YWlubHkuY29tLzE3MTgyMjYyNDUzMDAyNTE0LzEuY3JsMIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHUAlE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdgAAAGfISYcXAAABAMARjBEAiADVA4KKT9BCEHBS/DIMhspZGWD57T33/7r+ZmT5bqcYgIgHVFu0MITJbbNITOrSUJxyoFh7o26iS4JGlxf3FCeZQ4AdwDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ8hJhyCAAAEAwBIMEYCIQC734a8evqwBd9teM1yx/Djemh5yl7AEXsgJtWmBCSjCwIhALUuEcx9JZaCYnN4Fs5jYzTG+up/3rJPJvLZcG+Is1WLMA0GCSqGSIb3DQEBCwUAA4IBAQBw4QAFJyyZA+gtQsdymE7NxRV4lZbKKaZnL2JjYuvbbA2eJFwbbsR/atIRUiaJyijtdIwmj0OegIvvawvvyC1GO5LRF8wJKxIbPf9CgiF/9sWSSnsaZKiAi5ru3bL+KE13FFwBIQmay+ace8Sd6AJWZXQHQrgCRwGRitqMtc68WalGJQjNt0y4Bu0n7BzMcjpx8giWq/jMG66YAI33bh3MNUS6RU6m4+bdqV13OgcbjLRzc9iyRp+wbJp3BzkVLOF8Rx7LuIwXRMex7dM3Wy/tI3p37r+6c/Rq6JSWb9t3Jmm7Xqn4wRdm904GqJUo4ta/WE4u/K+6QzYDzlYgES1E", "intermediates": [ "MIIFKDCCAxCgAwIBAgIRAOtFJ4ojquR1HTetA0VJyX4wDQYJKoZIhvcNAQELBQAwPTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcNMjEwNDAxMDAwMDAwWhcNMzEwNDAxMDAwMDAwWjBFMQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MSIwIAYDVQQDExlDZXJ0YWlubHkgSW50ZXJtZWRpYXRlIFIxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAltJIZrGtZADK8OkOpD7Imei31l0HKXA57tfkJe/hWGMgSk98xUrI8fmUyNskRtrBTsGwTHIbUH+TBlKEHzc50QDZalDV3VpTK5LKPdyW7q86gRKDRsvLrStEzZ3qTG29cnOGLl5P5zEWWgTwNi4fLrcFBt7zLzUB7JYlePAkPuAibrTN+K7yPQHyXiNgpHMQVJQsmGrRnANdp7wq+3RnchCnhuRuF8gWpOPOe9RbUKjapEpAkJapr/dy1aDh6sxECnCVsPMz8WXNHZzkWVZoC5d1rP0JbQrCH+jk8kDnxh4vNXoa+j+I9SkOejH4FnKganXiADcVXG9GVVW90ohIUwIDAQABo4IBGTCCARUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS9l53fodgbJZnjDAQGiWQS12UkxzAfBgNVHSMEGDAWgBTgqj8ljZ9EXME66C6ud0yEPmcM9DA5BggrBgEFBQcBAQQtMCswKQYIKwYBBQUHMAKGHWh0dHA6Ly9yb290LXIxLmNlcnRhaW5seS5jb20vMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucm9vdC1yMS5jZXJ0YWlubHkuY29tLzAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAYOGGQEBMA0GCSqGSIb3DQEBCwUAA4ICAQBDMEjX2VcZq+4o3509O8FkJVPnSmH6SXw2/sa7VWxYttbqEqpSF9s9FBXPkD8pAclyTvTxE8OkWkzSvU+e3i79sNEE+QXoEFsweFcRhD/4WAn42sVhuNIOjAwp1J1mPUSdrosjguhlg0f+rGp0Ta4tWllpz7mG+IfDIUMzFfx/p5y7yh1RjZ/Fvu5HTgNS+VoOU1V2KI8tLk8bvuA9KR5GPI0nbEAwqiS+UuQvMeIK3syMW3+ZdkH7EqS+WgNJIubBzfnmCBkvsSanxnic2paU1zdWyUcNvLK7x1JCLk6ERrsbJuDhk24kzmCTwCsGjBJjgEOon85ezEKhwmgTLW7kX0W+yvH11HBdm5J2eFw7EipWwIMW2cAVdTfFIAF3FThINc1o1ogiyYMXdqSiuD2PGWFSW/lKQ7oufj4Vx43dMXYH/6qgqXk/pLTGQjA4ymgXckwXGG55RbnQsgLCUqn2I0D9jOk5DS10PXd7llxD7ZuOX67C18zmhQtEMa3KFzQAZ4P3Q/bX9WRjUxu4KjQ08wFEvYns8A3FBYm+CvGeDGCR6qFt0tgIdvqy1BRMvDEo6eoNuulYEgmZtqs6vlNQogVd8JjZcLE8t3LNdR4Xonu85U9TkDLAONrLCqJ4+FoTpfRYqZUwYRmBMiNPuAqWjRDeDx6qzki2lS9FLExT9A==" ], "serial": "eGcsGFURMeCTBQWt8DlP24Si", "issuer_spki_sha256": "oW7smChMJRcnzTObF7K+HzInReAPTxB/L1h6eZTmw9Q=", "scts": [ { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782967573596 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782967573634 } ] } }, { "ca_sha256_fingerprint": "7BB647A62AEEAC88BF257AA522D01FFEA395E0AB45C73F93F65654EC38F25A06", "ca_label": "Sectigo Public Server Authentication Root R46", "test_website_revoked": "https://sectigopublicserverauthenticationrootr46-ev.sectigo.com:444/", "detail": { "end_entity_cert": "MIIH3DCCBkSgAwIBAgIQU5ObCeZKSACMK1zLOpx5xDANBgkqhkiG9w0BAQsFADBgMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRVYgUjM2MB4XDTI2MDQxMzAwMDAwMFoXDTI2MTAyODIzNTk1OVowgcUxETAPBgNVBAUTCDA0MDU4NjkwMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRlIE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxEzARBgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDFAMD4GA1UEAxM3c2VjdGlnb3B1YmxpY3NlcnZlcmF1dGhlbnRpY2F0aW9ucm9vdHI0Ni1ldi5zZWN0aWdvLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO9nbXdn0dqPJsIAqHUFsSpDfzw24tbVV03SDIRQP5GgS8LGg0/EjzbBLd52tmLVlHS/An3m+36GLSwx9L3unfIAIKGqBnD15paTLf8iSfcJiIRfhlh0ybLPRpUVmnllHpBvC+0uxonoBSZftDvNHdVeRmpEQsV02IO2R7LT79c6qjCYJ7B7P4l+cK6kUWWYIiw1O5HM4HTUXo4fQiMQlKnP4Ks3wk33bMGamxIREIjZY+oIjoSVl7DRfX6BjBrN+ou40N7MULgHyKHk3MW1VPTj/NNxlOI4ZlurSL7jUoIbmFBExsYSzSAw7V6IBwl5pJTi9MiHLu9gPUFXv63h4VsCAwEAAaOCA6owggOmMB8GA1UdIwQYMBaAFJgtXh6P61T0uf9Vla1Mx36kmK57MB0GA1UdDgQWBBQNPOPr3wVDY6zGW6rQ/TL+K/2dvTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATBJBgNVHSAEQjBAMDUGDCsGAQQBsjEBAgEFATAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAHBgVngQwBATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvbkNBRVZSMzYuY3JsMIGEBggrBgEFBQcBAQR4MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY1NlcnZlckF1dGhlbnRpY2F0aW9uQ0FFVlIzNi5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMH8GA1UdEQR4MHaCN3NlY3RpZ29wdWJsaWNzZXJ2ZXJhdXRoZW50aWNhdGlvbnJvb3RyNDYtZXYuc2VjdGlnby5jb22CO3d3dy5zZWN0aWdvcHVibGljc2VydmVyYXV0aGVudGljYXRpb25yb290cjQ2LWV2LnNlY3RpZ28uY29tMIIBhgYKKwYBBAHWeQIEAgSCAXYEggFyAXAAdwDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ2G/ZcCAAAEAwBIMEYCIQCtqEvcyt39Xr5Ojsa0E8RVJzH+zGJu3ci7cjYWM+T+lQIhAPvxHKtk7RijCULKc5Bw9x7A4m9XnSKwFNr2HPiEBuWdAHUAyKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5oAAAGdhv2XvQAABAMARjBEAiAcWqZOz+ndq63DfGeUmhbv/EcZ7HGBq7xixuGoxMMaSQIgFhmApwHpe6YgPFp1UekfcPcoGqykYfmIwKdGgsDR9U8AfgBs/lAZQ6heqRa8UtEz5NzJHvFBHH0lhCDRc4CeGBjrOgAAAZ2G/Zm3AAgAAAUABwXEugQDAEcwRQIgezMd/jKWHFnzAcxLJnWXhyKv8370b4hr1twYV3pFHDQCIQCxwnsbxG45v9tpy2JQIaybZ8xLlJHVG3CTMqMWuwIxVzANBgkqhkiG9w0BAQsFAAOCAYEAhxNb6o5dnzW+JqhjBaQ1ahYcIMLXBVVjbtQsARTWvPrKNLJu7TwsZUasE9NSCfRHGAUXZbahBcnAf17qz6lYhKeL4n7A0oO9cGvfkHgL5hfAgAZd+UN+Y72r/XkChFddTIc/ZcVabdA9iJMO4uyKQfEtVu1nciJ2nrdxBVfRPXulRdcJrBWgO15DmtAWRvZICr32W8Beh/ktq1/9pGcGt7Kaxm5MQVTkgzCLMN7pEFvsGjuA486Cj8rQbo6RoZWUJ2Ll8mA0BCPtV4wXW8RPuIm/U+TPWFbHxPJXwrlb73J2P9kCuM+aBj0Wfuy11CZE/2bxp9Ql4M6v2t73zy7V67vB3UB/eQ7WBsL12HI8/nAq4gfioy6F9E8LVSXljyumxJhXZwxkOUey5N2XO5m1+OPDQkzO6n/McRBtEGKdidQlvbN3MdUAhrnXof5Xk74Y57KXQMjP69o2esM/KNqarzEmmCQiONEfFQiTLQqCJinyEgZGc3dWO99Xkzmvj+lG", "intermediates": [ "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" ], "serial": "U5ObCeZKSACMK1zLOpx5xA==", "issuer_spki_sha256": "0RfXDfccNqREsDzRXraedr+pPfaWA8fMplHCU30xYlo=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776086259458 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1776086259645 }, { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1776086260151 } ] } }, { "ca_sha256_fingerprint": "7D05EBB682339F8C9451EE094EEBFEFA7953A114EDB2F44949452FAB7D2FC185", "ca_label": "DigiCert Assured ID Root G2", "test_website_revoked": "https://assured-id-root-g2-revoked.chain-demos.digicert.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Dd47D5i9c4gfknJYckccZA==", "issuer_spki_sha256": "Ld64SpoeXjpLjc+/7Wahk6p5+KVyzVSUptciuWsyxeY=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155622342 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155622303 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783155622337 } ] } }, { "ca_sha256_fingerprint": "7E37CB8B4C47090CAB36551BA6F45DB840680FBA166A952DB100717F43053FC2", "ca_label": "DigiCert Assured ID Root G3", "test_website_revoked": "https://assured-id-root-g3-revoked.chain-demos.digicert.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDizCCAxKgAwIBAgIQA+C9ek+B53gx9pAY6AV2NjAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMjIwMzAzMDAwMDAwWhcNMzIwMzAyMjM1OTU5WjBiMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOjA4BgNVBAMTMURpZ2lDZXJ0IEFzc3VyZWQgSUQgRzMgVExTIEVDQzM4NCBTSEEzODQgMjAyMiBDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARhUoxSC+PLSEGpnP5nLPM6yh4U4rPRNQEDFt9V7cI2sz4MG8+ce2DohdIaDAw5G8bEGlLrwJ9Dril1Z3twYUu/26Py0xABzbDIAGyayWkCFuRwQgbFzDkMetF10x1oVLyjggGIMIIBhDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS/FOA6nWZXzx0j4K6kY1ONMlB+FzAfBgNVHSMEGDAWgBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290RzMuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RHMy5jcmwwPQYDVR0gBDYwNDALBglghkgBhv1sAgEwBwYFZ4EMAQEwCAYGZ4EMAQIBMAgGBmeBDAECAjAIBgZngQwBAgMwCgYIKoZIzj0EAwMDZwAwZAIwU1oEiucK0DpEzO+zcKLREb1rDJsYAnh3UpGIHsj3KPeinLtjMcWIETYwL+4rM6cBAjBYLcX/zElb0yta6Qf1nSja9tf/uqltiBAQ/WlIpBt0YQK9hRJ3oUZFuRanJ1pPQkE=" ], "serial": "AvVet2suvBHkUVmqgQPgVA==", "issuer_spki_sha256": "otVuF/gByhb3Aev07shrO8GeUcthd4Qw5N/K1L0fizo=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155635657 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155635614 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155635673 } ] } }, { "ca_sha256_fingerprint": "81A9088EA59FB364C548A6F85559099B6F0405EFBF18E5324EC9F457BA00112F", "ca_label": "Atos TrustedRoot Root CA RSA TLS 2021", "test_website_revoked": "https://tls-rsa-root-2021-pki-revoked.atos.net", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "QFqWVr3H9bo1XktI", "issuer_spki_sha256": "1+mHw9AHBDFOOcleNBxZiK9/XOFAmoN5RVkILbBi7b0=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1779441646977 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1779441647230 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1779441646929 } ] } }, { "ca_sha256_fingerprint": "8560F91C3624DABA9570B5FEA0DBE36FF11A8323BE9486854FB3F34A5571198D", "ca_label": "OISTE WISeKey Global Root GC CA", "test_website_revoked": "https://gcrevokedssl.hightrusted.com/", "detail": { "end_entity_cert": "MIIExzCCBG2gAwIBAgIUKgriFpmqdQ0tdPkA1aMp0m3XZvUwCgYIKoZIzj0EAwIwRzELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxJjAkBgNVBAMMHVdJU2VLZXkgQ2VydGlmeUlEIFNTTCBHQyBDQSAxMB4XDTI2MDcwNDA4Mjk1OVoXDTI2MDcyNTA4Mjk1OVowWjELMAkGA1UEBhMCQ0gxDzANBgNVBAgMBkdlbmV2ZTETMBEGA1UECgwKV0lTZUtleSBTQTElMCMGA1UEAwwcZ2NyZXZva2Vkc3NsLmhpZ2h0cnVzdGVkLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABInAlDWLfSSkOIpDPYsye90rYiTeA15YOj4qrUvapgVqC+CJaFXW8fwus1oYbQ1llQp4yqyNuQbAYxgrGfIxMTCjggMiMIIDHjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFNV6OdU47FU25Dbell3dX0xYJg8BMG8GCCsGAQUFBwEBBGMwYTA6BggrBgEFBQcwAoYuaHR0cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvd2NpZHNzbGdjY2ExLmNlcjAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Aud2lzZWtleS5jb20wJwYDVR0RBCAwHoIcZ2NyZXZva2Vkc3NsLmhpZ2h0cnVzdGVkLmNvbTBFBgNVHSAEPjA8MDoGBmeBDAECAjAwMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3Lndpc2VrZXkuY29tL3JlcG9zaXRvcnkvMBMGA1UdJQQMMAoGCCsGAQUFBwMBMD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly9wdWJsaWMud2lzZWtleS5jb20vY3JsL3djaWRzc2xnY2NhMS5jcmwwHQYDVR0OBBYEFIKZJkWrIN/PjkZRreTCQjmRI4/uMA4GA1UdDwEB/wQEAwIHgDCCAYUGCisGAQQB1nkCBAIEggF1BIIBcQFvAH4ARq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8AAAGfLD+7PAAIAAAFAAuuYhwEAwBHMEUCIH+o8Lyvs6FmuynF/DqSbhEtkZ6pr94jA/UUCT4H6djHAiEAorWtKfo4S1qcOu/lWyVnAE0+xK4z+hI5BqqrJ9XskJYAdQDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ8sP7r9AAAEAwBGMEQCIExFV3/zEV85u1YsNK2oKiptKnn8HjfZhXh5bjVXV3q1AiAh/TEmNyFlzSwZZtrk5zXB18dVFUvdW0agCQNJquO9vwB2AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABnyw/u5oAAAQDAEcwRQIgBWzpVLXjIHNlvQob0CYhBTkY7Dh4sIrj2H2AVbeg+78CIQCnSlcVPMfCevenJAHZwZEBfYN0aitpOh71H6HRZ4g+ODAKBggqhkjOPQQDAgNIADBFAiANAFKsi5D7MDR5wlzqJezIFlCYAGpW98QgABKnyybzSAIhAL/y3pGcM1fpwal5bqPITO9naLTMLJhryQqrjAMUjn9+", "intermediates": [ "MIIDFjCCAp2gAwIBAgITMO8+zNqIKmM3m/NfZt+DXHSVmzAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0yNDAyMjAxNTU2NTZaFw0zOTAyMTYxNTU2NTVaMEcxCzAJBgNVBAYTAkNIMRAwDgYDVQQKDAdXSVNlS2V5MSYwJAYDVQQDDB1XSVNlS2V5IENlcnRpZnlJRCBTU0wgR0MgQ0EgMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFo9Hr9AfSsG3orudevnxL71OLzuOomMnvxOihmPWCmdT/irNirQ4Wj2cf/iteTeJEBzLmQcH/iJrVZgCWxDoVyjggFAMIIBPDASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFEiHFKzjw56QYDrXyonu062MtFBmMGkGCCsGAQUFBwEBBF0wWzA0BggrBgEFBQcwAoYoaHR0cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvb3dncmdjLmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Aud2lzZWtleS5jb20wEQYDVR0gBAowCDAGBgRVHSAAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATA5BgNVHR8EMjAwMC6gLKAqhihodHRwOi8vcHVibGljLndpc2VrZXkuY29tL2NybC9vd2dyZ2MuY3JsMB0GA1UdDgQWBBTVejnVOOxVNuQ23pZd3V9MWCYPATAOBgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDZwAwZAIwL9gJThkkzsJj7twL41VgcDEuzTZfjklHZZKYADzHaruQBunzXUtb372SE8KVFegzAjB+jHb80NIgjBtZLgW9ZwCHf6/3CIiOYdLyZlm2dujKwQjyMyzjam80hpzylyoiGaY=" ], "serial": "KgriFpmqdQ0tdPkA1aMp0m3XZvU=", "issuer_spki_sha256": "IUntA2TGvGsJRd1XrGg2Y7dxJ73p4cADKYPamKiIAPs=", "scts": [ { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1783153802044 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783153801981 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783153802138 } ] } }, { "ca_sha256_fingerprint": "85666A562EE0BE5CE925C1D8890A6F76A87EC16D4D7D5F29EA7419CF20123B69", "ca_label": "SSL.com Root Certification Authority RSA", "test_website_revoked": "https://revoked-rsa-dv.ssl.com", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "GBGwnEu54XkTO7nZqbFAxQ==", "issuer_spki_sha256": "0FKBVxnyd4Jq8v8ST+3sjO+WoB7PLBEpSdixbHE1L4g=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1781013640987 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1781013640917 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1781013640936 } ] } }, { "ca_sha256_fingerprint": "86A1ECBA089C4A8D3BBE2734C612BA341D813E043CF9E8A862CD5C57A36BBE6B", "ca_label": "emSign ECC Root CA - G3", "test_website_revoked": "https://testevg3r.emsign.com", "detail": { "end_entity_cert": "MIIFtTCCBTqgAwIBAgIQAPpg3BQIttEmumfudB1E6DAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEiMCAGA1UEAxMZZW1TaWduIEVDQyBFViBTU0wgQ0EgLSBHMzAeFw0yNTEyMTAwOTMzMDRaFw0yNjEyMTAwOTMzMDRaMIHcMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjETMBEGCysGAQQBgjc8AgEDEwJJTjEaMBgGCysGAQQBgjc8AgECDAlLYXJuYXRha2ExDzANBgNVBAUTBjA2NTE1MzELMAkGA1UEBhMCSU4xEjAQBgNVBAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MSUwIwYDVQQKDBxFTVVESFJBIFRFQ0hOT0xPR0lFUyBMSU1JVEVEMR0wGwYDVQQDDBR0ZXN0ZXZnM3IuZW1zaWduLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IABFri918aY+uZkXVp2qDHDWH5BeckR5jsXeEJxrpIIc7EmYvMmV/2YJnNCuFFAVaEuTgMPk0sZSBcSB1qLgo/4iH8/xjfpzgmqYPjXgjm0S4WInzt1G7iKzhIq0k7QfzpyaOCAy0wggMpMB8GA1UdIwQYMBaAFNGqtNLSJYJOs/CTYBdKm2N6+R8NMB0GA1UdDgQWBBTeFTMObiRS2xAdkCVUAcTAH9+LCjAfBgNVHREEGDAWghR0ZXN0ZXZnM3IuZW1zaWduLmNvbTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwuZW1zaWduLmNvbT9lbVNpZ25FQ0NFVlNTTENBRzMuY3JsME0GA1UdIARGMEQwOQYLKwYBBAGDjiEBAAEwKjAoBggrBgEFBQcCARYcaHR0cDovL3JlcG9zaXRvcnkuZW1TaWduLmNvbTAHBgVngQwBATB5BggrBgEFBQcBAQRtMGswIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmVtU2lnbi5jb20wRQYIKwYBBQUHMAKGOWh0dHA6Ly9yZXBvc2l0b3J5LmVtc2lnbi5jb20vY2VydHMvZW1TaWduRUNDRVZTU0xDQUczLmNydDAMBgNVHRMBAf8EAjAAMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZsHm3oFAAAEAwBHMEUCIQCOflOeScvuP355bfpBjjei70wZslvH2kqwxPifJkCVwQIgcaxyLpn+bljcUJkPwP/OG/926K2o3c0hIRutebcgonUAdwDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZsHm3ytAAAEAwBIMEYCIQD42HoTDOdz9ZWZdLySjQA1MqAXoZq4my3l7vTzM7umrwIhALg2h7MloZ3o9bQN9Cb8KvwcpfVCrAWsdR0qDctlILwnAHUAr2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzoAAAGbB5uEwAAABAMARjBEAiBv74Jt9J5XUnNtVqOmsoRvrvS35IQ3P8banAPMoNi3cAIgTWC7i/Ijk21u69muWNnha9IYDqYjN3uwhDlCy0kURfowCgYIKoZIzj0EAwMDaQAwZgIxANWhXivedSg1egCFOO2zSkvAcCao7lxeD2YqVPjlYpb85SHeE6wq7XEyYuLPgJ3uKwIxALBmRCrYSkrHgjr/IwVNy07bsEYrVLGQIwJqhDLXvzWs0mJ8YawCz3U3NUYFeICblw==", "intermediates": [ "MIIDPjCCAsSgAwIBAgIKAf4+bGjeu+wmPjAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNMzMwMjE4MTgzMDAwWjBtMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEiMCAGA1UEAxMZZW1TaWduIEVDQyBFViBTU0wgQ0EgLSBHMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABLZXoamhYa/WwWE0nrNCo2lczaM2A35u59TmOxsIbT3s4bb5KkXPt3x/5Aa79uxf+m3gc3fFPxbe3FjvZXY2eNvbNGW4CX/pQdNpbwVxpMg6/F+oF9OMHk9vq94KQ1+UYKOCAS8wggErMB8GA1UdIwQYMBaAFHxdAoQT1MyKm4HOFxwuKR6cSGNCMB0GA1UdDgQWBBTRqrTS0iWCTrPwk2AXSptjevkfDTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwOi8vcmVwb3NpdG9yeS5lbXNpZ24uY29tMBIGA1UdEwEB/wQIMAYBAf8CAQAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC5lbXNpZ24uY29tMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZW1zaWduLmNvbT9Sb290Q0FHMy5jcmwwCgYIKoZIzj0EAwMDaAAwZQIxAPOSHbUT2M805KMjMEor2epuLoycKuwnsGmtixn+ozlvCuJS+sq+9onRDkgwtG3iqAIwAYlrF96JmhW7JN5JyYl/C8tK0d30N8s/Pk3Denh3KyPhSif7POMc82DvHqWLL+S0" ], "serial": "APpg3BQIttEmumfudB1E6A==", "issuer_spki_sha256": "f01011qEaFf6Wqq3wyJQCu96P1p4Ia4fYG9V/7Q6Pu4=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1765359188485 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1765359189165 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1765359191232 } ] } }, { "ca_sha256_fingerprint": "88EF81DE202EB018452E43F864725CEA5FBD1FC2D9D205730709C5D8B8690F46", "ca_label": "QuoVadis Root CA 3 G3", "test_website_revoked": "https://quovadis-root-ca-3-g3-revoked.chain-demos.digicert.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFgDCCA2igAwIBAgIUQn3TOo/1HYFS6BPH3sk7p2MSp9gwDQYJKoZIhvcNAQELBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0yMTAxMDYyMDU1NDBaFw0zMTAxMDQyMDU1NDBaMFkxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1EaWdpQ2VydCwgSW5jMTIwMAYDVQQDDClEaWdpQ2VydCBRdW9WYWRpcyBUTFMgSUNBIFFWIFJvb3QgQ0EgMyBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALxNTdqnFD+AMhketYfVfVUWQKPkVEuyYj7Y2uwXBMRP4RStO4CoQih+hX/h94vRlObOIsqcNnyCElwBnLbmusaWYLYnDEWoROL8uN0pkWk0asfhhEsXTkAJ6FLHUD85WBkED4gIVWPiSp4AOwiA+/zpbwgVAgdjJTO3jjMsp4F1lBrdViYSwoPRACH1ZMjJG572oXTpZkQXuWmEKLUOnik1i5cbqGLnwXiDvTAhxit7aBlj/C5IDvONWVQL34ZTYppvo8S3Hhy9xX0S4HCpTpeBe3mas7VOrjsXNlEoFvejrxcQ+fB/gUf6fLUPxUhcPtm8keBPQuxcqP12/+KG0WECAwEAAaOCAU8wggFLMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUxhfQvKjqAkPyGwaZXSuQILnXnOQwdAYIKwYBBQUHAQEEaDBmMDgGCCsGAQUFBzAChixodHRwOi8vdHJ1c3QucXVvdmFkaXNnbG9iYWwuY29tL3F2cmNhM2czLmNydDAqBggrBgEFBQcwAYYeaHR0cDovL29jc3AucXVvdmFkaXNnbG9iYWwuY29tMBMGA1UdIAQMMAowCAYGZ4EMAQICMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLnF1b3ZhZGlzZ2xvYmFsLmNvbS9xdnJjYTNnMy5jcmwwHQYDVR0OBBYEFDNm+y+RBcyzYlLvzTz1fhzOpxeWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAY0ZuDgyM4I4MO9llD8qFUPQ8xtcGOuJgSRhDS2onIJ0M8yOGOYJCobIEGIgqyx94kI/n/1Xw+WvsnhwbOYOtVedx6VGDu6IuSKTVgPPhzwKP5ZA7wtmgKR8+W4E3DM1VerA9Po9ycDK9qCdlK4tuF37grKEzlQKovG+kn0z+Zi0D/E1kN1Q8YmX35HHRenJWKEnAL9QROh0X9jFiSlsHPrxWC3adOdAW+B+kVG0cM2nurd0Ic2YkiLKOOaSd5hbCQY/fCZwohtest+ZUAjyd+FVzSNvEFrwPzZwKfcdemvD4kew8lx5sG6BUL4GkFWnotxSr+F9Huwgj4pC+cxE2841a/9r/gliuwDM/8jkt16epFAdw0fXemyM8FdHJDnB++3d8SyjOOQ8j+VHW31NWx27sORa5CgRchlldXWDzIIEwbc82a1OAfGUmNAsdEHjMl1HMcZHbjCmdSdswfmyldZrj2YmvOI5ZlE9z4vzi35KyqlxWCtu9O/SJq/rBvYS0TPmm8HbhJQbeMe6pvJGrxcb1muSBANn9T9wvukjiNNw32ciSDCjZ0h4N+CGxbzoZtgIAQ29IunYdnJixZiP+ED6xvwgVRBkDSgWD2W/hex/+z4fNmGQJDcri51/tZCqHHv2Y7XReuf4Fk+nPl8Sd/Kpqwde/sJkoqwDcBSJygh0=" ], "serial": "BZVvOq4jglbPAY9roWDTyQ==", "issuer_spki_sha256": "7ApQ2uogI9DcsOpR1VtehjK8iLSy9QdPNJ4xQbOXGvw=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155796649 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155796798 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155796663 } ] } }, { "ca_sha256_fingerprint": "88F438DCF8FFD1FA8F429115FFE5F82AE1E06E0C70C375FAAD717B34A49E7265", "ca_label": "NAVER Global Root Certification Authority", "test_website_revoked": "https://test1-certificate.naver.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "CNFPF06MWrLj8QRuc77c2UbTBzs=", "issuer_spki_sha256": "qmq+IeHhR6HY99Hqh08a3g8BhKna44jZ911OLTU6mN8=", "scts": [ { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1780020601930 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1780020601817 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1780020601887 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1780020601073 } ] } }, { "ca_sha256_fingerprint": "8A71DE6559336F426C26E53880D00D88A18DA4C6A91F0DCB6194E206C5C96387", "ca_label": "vTrus Root CA", "test_website_revoked": "https://revokersa.itrus.cn/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFjDCCA3SgAwIBAgIUES1whbbaAmbU9t4ZLix7AWf3SIMwDQYJKoZIhvcNAQELBQAwQzELMAkGA1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJvb3QgQ0EwHhcNMjUwOTE2MDc1MDI5WhcNMzUwOTE0MDc1MDI5WjBFMQswCQYDVQQGEwJDTjEcMBoGA1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEYMBYGA1UEAxMPdlRydXMgT1YgU1NMIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoHBkIznD5u8lGdGhALEWFj/bLg0txFuOoz5ImcFfpJ+bM06A2g/utzZAAnahhsRL5Yj62OyNq7hpOcCyX2xZ9bXUnVqMWnGrmdh22NCKzFoU79jAiJtijr6FX2H0zjM0gYcA1MExz29taybjwEQQ0p2FfTudGPBzuM0SnsTjRgy2P6RQ5e1Ocb2TP3ae0PDAVZOBi+5iXxFkrRr3638aCCZ9MbJzODMmq8hwWhOCWXpni0FZDLTEcVd+RXfLME3aoI8uTxwzaxAM/B3l7JfhPphdP9b1TC8tfjlsiJ7TG9joO3gCwqxh0cOKgDHIxD+M2kKsy/UKzp2NoljjohydJwIDAQABo4IBdDCCAXAwHQYDVR0OBBYEFORyw6cymHvCoVsCcIdUlHGEsP3mMB8GA1UdIwQYMBaAFFRicGPxdYRDWI7RFiCxxqwavPaJMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMIGKBggrBgEFBQcBAQR+MHwwOQYIKwYBBQUHMAGGLWh0dHA6Ly93dG9jc3AtQ0ROLml0cnVzLmNvbS5jbi9vY3NwL29jc3Avb2NzcDA/BggrBgEFBQcwAoYzaHR0cDovL3d0Y2EtY2FmaWxlcy5pdHJ1cy5jb20uY24vY2EvdlRydXNSb290Q0EuY2VyMEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly93dGNhLWNhZmlsZXMuaXRydXMuY29tLmNuL2NybC92VHJ1c1Jvb3RDQS5jcmwwIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKKoEchu8XAQEFATANBgkqhkiG9w0BAQsFAAOCAgEADnNjRm0377SXRpoQt0MLKYKRUM1ubC3Fr413n7bclsbdy3/kOGjtFWL0gzWGXi0En5tTiO4Iays6dvYbz+kpWBrmJMOsjfxIWd5ukppZACF2Cu+Sy71zW7dFNRZIFRPRkmDmM/73oa4BNLMCcSwsgURJ0NVAWG6h7v/nqSmetWTx1duC0ouSP9Ws6PgjMNN4MdFk/MqWctHv3sABRAc22Uposseihw16d/Bt2wBt0sy9LfhviPUIXRRDvE+ZUuoe3CWGct6EFUTXbAykmqF7ggH6Rob2k8XJpKKDJr50O0wAKwuk9o1KGUbNvsIz8vZWH+h6/OYnb11v6gU8ro4KW4Umz6CfokM5BddrKZsyEHe3slwUtODd5urLr2osQuSHdp0SEUlKDe+yNDGfJeeFguiS5gucmmtD7yYjVrC0dVzBdRRZpUGKbc2kQ1kdgKhYQhZoD+IStQwZ7MJW+yMTZ2u48Yp2USLYgAZUzCvyCSep+s/NT0R89oV0LM5ZobPA0GBNSkS3OE+gCRezi9OwL7jezi4fEoy0yZRLZAuuWjQ/1hFKeeXSBbpzeqEQjbEyPeHYZnJZauU/3EzqmQaXXG/WFIHtU7OJcem42klTZXNoLo8opxRCoOVzcOrhaMBJPErun/arpsA9Ukr6k4GwIqogWUKNJztu84hk57aCKqU=" ], "serial": "X8naIs9UNu8+wAgPgLQ9Njjqhqg=", "issuer_spki_sha256": "/AQe5lWT9xIwgAiIHcAT+pRj70+ckw8xE4qArEfIyd0=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758760726609 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758760725923 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1758760726374 } ] } }, { "ca_sha256_fingerprint": "8A866FD1B276B57E578E921C65828A2BED58E9F2F288054134B7F1F4BFC9CC74", "ca_label": "QuoVadis Root CA 1 G3", "test_website_revoked": "https://quovadis-root-ca-1-g3-revoked.chain-demos.digicert.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFgDCCA2igAwIBAgIUKDfVw8K1cpS+z5mv6Lvc0bsLIPEwDQYJKoZIhvcNAQELBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0yMTAxMDYyMDUwNTFaFw0zMTAxMDQyMDUwNTFaMFkxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1EaWdpQ2VydCwgSW5jMTIwMAYDVQQDDClEaWdpQ2VydCBRdW9WYWRpcyBUTFMgSUNBIFFWIFJvb3QgQ0EgMSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMrbkb9kz/4y00r7tfK+uDRomMNd5iCDVMWOvSx1VygKoBn3aavw7gq9Vfb2fIMIWkWG0GMxWbGcx3wDHLWemd7yl9MxRUTGXkvH6/dNEavAQhUTL9TSf/N2e8f7q2dRDNYT7lXi/vRfTBiYlY7BLNha8C3sPHsKduaJN32cjdjVFH51rFDRdhUXlo2hhOjgB6bqoqs75A3Y3w88AdbMkapT63oGsCDO6N/uX2Mo9GSWREvlxHiXSMFf5qFw41vn5QIa5ADL1MPCzlLmJSHXE138H1+cG5IutD7tIieKjo/t+66PGMo8xicj3yUd8rHEmBqClG4Ty3dfF+bETFjLIUCAwEAAaOCAU8wggFLMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUo5fW816iEOGrRZ88F2Q87gFwnMwwdAYIKwYBBQUHAQEEaDBmMDgGCCsGAQUFBzAChixodHRwOi8vdHJ1c3QucXVvdmFkaXNnbG9iYWwuY29tL3F2cmNhMWczLmNydDAqBggrBgEFBQcwAYYeaHR0cDovL29jc3AucXVvdmFkaXNnbG9iYWwuY29tMBMGA1UdIAQMMAowCAYGZ4EMAQICMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLnF1b3ZhZGlzZ2xvYmFsLmNvbS9xdnJjYTFnMy5jcmwwHQYDVR0OBBYEFJkRfemwrS1iWnDTPI2HIK3a2i5BMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAb6tTptzzi4ssb+jAn2O2vAjAo7ydlfN9v+QH0ZuGHlUc9bm8dpNpBo9yt6fWHIprGLJjVOF7HwVDQcJDDhX4638Q7ETDrbTVQ4/edX6Yesq6C1G8Pza1LwStXD/jCQHFvWbPud86V0ikS4rSqlmu3fzUrGZ2/Q+n5jrnRqM5IS8TXYcnzLD3azH1+aZjkwQt9HP4IuvAe/Bg9aWEXeDmksbg0SqQInrWn+BVYtD+hCZNz8K0GnKKpx3Q9VxzRv+BMbO5e9iqK1Hcj5WvZXvU45j2r5y9WML4fc8CvphzbF6ezr1e51i+yabNmfld33gRX48V5oNk16wX32edkQ83sKNomQm1dXURWK8aSDcZFAvJQ8vKTLIE9wiQmtjfSGoJzQhKLaN+egrp4L9yfjpFIeK4zgAH39P4s4kaPWTdfXe2n6P5o7Xolp4R22SVkI76d8d+5Iv7Rtqd+mqIy1hkwyTBbOBLtyF7yMtJQewkkZ0MWxkPvWg193RbYVRx8w1EycnxMgNwy2sJw7MRXM6Mihkw910BkvlbsFUXw4uSvRkkRWSBWVrkM5hvZGtbIJkqrdnj55RSk4DLOOT/LUyji/KpgD7YCi7emFA4tH6OpkNrjUJ3gdRnD4GwQj/87tYeoQWZ6uCl0MHDUCmw73bpxSkjPrYbmKo9mGEAMhW1ZxY=" ], "serial": "DmpSgcvVeaS2uXYwQl8L1w==", "issuer_spki_sha256": "mDRXN3fhAPbsEZzZ6KgUrT9K8v0Uy1/lYQrkjelgldw=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155761117 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155761091 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155761143 } ] } }, { "ca_sha256_fingerprint": "8E8221B2E7D4007836A1672F0DCC299C33BC07D316F132FA1A206D587150F1CE", "ca_label": "D-TRUST EV Root CA 2 2023", "test_website_revoked": "https://certdemo-ev-revoked-rsa.tls.d-trust.net/", "detail": { "end_entity_cert": "MIILLTCCCRWgAwIBAgIQdokgupj+YGqpqNLUkKisOzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIENBIDItMjMtMSAyMDIzMB4XDTI2MDcwNjE5MDIxMVoXDTI2MDgyNTE5MDIwNFowgeMxEzARBgsrBgEEAYI3PAIBAxMCREUxFzAVBgsrBgEEAYI3PAIBAgwGQmVybGluMRcwFQYLKwYBBAGCNzwCAQEMBkJlcmxpbjEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRpb24xFDASBgNVBAUTC0hSQiA3NDM0NiBCMQswCQYDVQQGEwJERTEPMA0GA1UECBMGQmVybGluMRUwEwYDVQQKEwxELVRydXN0IEdtYkgxMDAuBgNVBAMTJ2NlcnRkZW1vLWV2LXJldm9rZWQtcnNhLnRscy5kLXRydXN0Lm5ldDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJl0mnPLxtEXgin1irinRhJWKP6ANZTSCX/0YTYbBwa9b/b6IMKgX4u9Z4S3BMeNzRjZt4E+NmAovg/2DQpGQpbWy7s9mNHoy6QKPun86luuBKNC7via/fpkJ0HSumO9A8+GNKrDjkNgUQNY0D5FPez3U1m2CpFdhwn926k9vkPj19Cwnq11f9o1UyMgp9z395V/AvvQ1kKFc912Lw7UPnsYl+Gn770hDADql0pzvF/He4nSku81lHFe106mGCNqnMkj1+7TOzbBXJc6B8sZ/lh9iVvwHMfAvL+wsfhPpAxU2xx/V6XXRB9qblJ3eI3f07ZRmJq617dGSHYqEGq6106prdFyheXdLIrZINyg5qDCRZGl0t7R248aM+HVkggrQFNCJEDzGPb0NR2l55KP+tgBbBHRHW6bGSeWM269/2tCRav45Cbk4rYF+03Ds6xwTGFXxTmTidGtqI2iyelaR3PFReWX6nnVO3DpQoRpr5XxMKLz5l5ow+d3so31IQ2+13oFF4Gi6NNeorJllCt97OalFRfq2aEurUTE1/KF++3Bxt8H2F0FbTnIhvLKfTWKK6p8u9S/qPDCR+dar8YH2VO0Sd3TGZrI5uy9XQYu/O2Ykh+AKUhvwku4x0KEyla+Q+9xh8Ceb7KstHVB3GCr3kwdERUTN7gAt9fWfsYljPn1AgMBAAGjggV1MIIFcTBYBggrBgEFBQcBAQRMMEowSAYIKwYBBQUHMAKGPGh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY2dpLWJpbi9ELVRSVVNUX0VWX0NBXzItMjMtMV8yMDIzLmNydDB5BgNVHSAEcjBwMAcGBWeBDAEBMAgGBgQAj3oBBDBbBgsrBgEEAaU0AoFKATBMMEoGCCsGAQUFBwIBFj5odHRwczovL3d3dy5kLXRydXN0Lm5ldC9pbnRlcm5ldC9maWxlcy9ELVRSVVNUX0NTTV9QS0lfQ1BTLnBkZjCCA18GCisGAQQB1nkCBAIEggNPBIIDSwNJAHUAr2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzoAAAGfOM9v2AAABAMARjBEAiAgwdBuz2JKo1yz3tpA2jfNku6C/imdIk1ebbXxGQOLVQIgdH0IZFQcP0fP8cnPBff0fa9TyG4wO2D/Hd+CidNIAE8AdgDIo8R/x7OtuTVrAT9qehJt4zpOQ6XGRvmXrTl1mR3PmgAAAZ84z3B8AAAEAwBHMEUCIBch2qm0tI3E9u0QJU7LTTFRan9C+DosvyR3fH3VV4HUAiEAvpAYaGtuQD2Sm6TxbOf6D18nVhogkor/pUc5GvSKNBYAdQDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ84z2/mAAAEAwBGMEQCIC44gr2FicbZ2ei1KM4hrQQhu0HBTeEX1WMVeK5j40jAAiBAA0/iA2giS1dj+0LShkhDEs5UFRzF8CBDX1zSDY6+ewB3AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABnzjPcZ8AAAQDAEgwRgIhAMs0I5kariz9ty8j2KaKqvD6hGToHowKfRL2vqN6mNhvAiEA4QXhk9QinL94OB/xxiLl223yba/w6sNcsdQAzUlc0wgAdwDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ84z3KGAAAEAwBIMEYCIQDhnl+6BcTFD57RXqAUR4gWl2WYVpCAoY+kcml2FPqbuwIhAOSkCf7xjwv3v5Q5k+tN7RGLNnnlLZArlGQl304BwqULAHcAyzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOcAAAGfOM9y1AAABAMASDBGAiEA/WHGWgKKHJrXonUzEXqbCYttynBgXm8AsCFWiPXe1BICIQDKPbs9WFdRvDoHPQN4TV9Rq3Qa9HpaNgu+Xy5POncalQB2AMIxfldFGaNF7n843rKQQevHwiFaIr9/1bWtdprZDlLNAAABnzjPdI8AAAQDAEcwRQIhAKbSuu2rgB+Rwp+HEupaPgVmGWCn2OJkkbdXqXkWtMihAiBj+h7z/+wiHQ+1vTOH/52R7dC8iW4dNOj1ajEmDSn6sDAMBgNVHRMBAf8EAjAAMIGPBgNVHR8EgYcwgYQwgYGgf6B9hjhodHRwOi8vY3JsLmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X2V2X2NhXzItMjMtMV8yMDIzLmNybIZBaHR0cDovL2Nkbi5kLXRydXN0LWNsb3VkY3JsLm5ldC9jcmwvZC10cnVzdF9ldl9jYV8yLTIzLTFfMjAyMy5jcmwwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMgYDVR0RBCswKYInY2VydGRlbW8tZXYtcmV2b2tlZC1yc2EudGxzLmQtdHJ1c3QubmV0MB8GA1UdIwQYMBaAFMOia3OwRAdlOGlnWDimR7ePAHd+MA4GA1UdDwEB/wQEAwIFoDAdBgNVHQ4EFgQU82vsXmRu6cmeAmsEFekJ92yXTEcwDQYJKoZIhvcNAQENBQADggIBAHBLoDNcuilluFD0CyQLylB90DZqnVnJMLX5ntF5lCJDT4Afuk0ZQR03oLkLkV5orKIxjFsGml111a9VcWZOK1w4Lvj/su6TaQ55mQ2MaJKKdex/FQ6eSuU73PWPUY+iqxUztQ61FkabSxxIiVjMSlFwBBtr3+4C/nY+TqwVlF5hUICr8gjn3X91vtlAZkHrY49zvCJqWAjIi1pipj4J/GForZVoqBfMq6WDSzQiiT+Hq1bLxApydzFcGuTzag1RYw3TdZWSk+CPr25jvHDXQw/MwBIWs0sYJFHpIbYIP36D2FcK+3pCaB0V0ZiMB/wbdY+8KO5EJ3xqSzz/3nDr7UbLFVVgGhfARu+cvDRyl0KiYLdJFYS58E1Mxb6Hj9P7vm88IV2E9mClYCYplmJvzWzpapLSzwm/63QnV0t2iFAtH1qwQV/iTQadUBfHNmNgIv6U6hu9i0Dpfnbn13J9EqHEr+obM0Hoe9RvfpQawuVIXoy+IboAZyHu0rOrZRCQEqioKyHR0mmndWPGYtChJweJQ6SwZbgMk7UgU+uxL0y8eqVvh+qp+fEgGoH5roO+lDhoLqm++cgZqQY3YUfVCcrFUu6FFCUIMxV09gHMXDhHrjN8PSQAa57gGSh45EjtVGXgsvKUkdCJMUW/P/z5PTiS93rjFJkiH3dTu6fSL3Pb", "intermediates": [ "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" ], "serial": "dokgupj+YGqpqNLUkKisOw==", "issuer_spki_sha256": "8IfYggJHMOHFzncvWfd4yQOlv7flr6aZNg7W/7SSG5c=", "scts": [ { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1783364546520 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783364546684 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783364546534 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783364546975 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783364547206 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783364547284 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783364547727 } ] } }, { "ca_sha256_fingerprint": "8ECDE6884F3D87B1125BA31AC3FCB13D7016DE7F57CC904FE1CB97C6AE98196E", "ca_label": "Amazon Root CA 1", "test_website_revoked": "https://revoked.sca1a.amazontrust.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "CkofN+vRTvt5DuynwLP12Q==", "issuer_spki_sha256": "DxH4tt40L+eduF6szpY6TONlxhZhBd+pJ9wbHlQ2fuw=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783360854909 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783360854916 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1783360854955 } ] } }, { "ca_sha256_fingerprint": "8FAF7D2E2CB4709BB8E0B33666BF75A5DD45B5DE480F8EA8D4BFE6BEBC17F2ED", "ca_label": "SSL.com TLS RSA Root CA 2022", "test_website_revoked": "https://revoked-root-2022-rsa.ssl.com", "detail": { "end_entity_cert": "MIIHhjCCBe6gAwIBAgIQI4LbUsXyp8zgKpsipGfMqTANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSkwJwYDVQQDDCBTU0wuY29tIEVWIFRMUyBJc3N1aW5nIFJTQSBDQSBSMTAeFw0yNTEwMDIxNzA2MzhaFw0yNjEwMTcxNzA2MzhaMIHgMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24xIjAgBgNVBAoMGVNTTC5jb20gKFNTTCBDb3Jwb3JhdGlvbikxFjAUBgNVBAUTDU5WMjAwODE2MTQyNDMxJjAkBgNVBAMMHXJldm9rZWQtcm9vdC0yMDIyLXJzYS5zc2wuY29tMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjEXMBUGCysGAQQBgjc8AgECDAZOZXZhZGExEzARBgsrBgEEAYI3PAIBAxMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFEAV63WGvXmnghMDP71RQASRSyLbUA4Gxd5VbViPdmefKiTek/2v36bSOED2+IHqKQ1YjJ0TvsdDuLbIi+n6TJ1gSNwC2dok3JbHDfqoOVRzbJheDoEDDhzI4LU90F6mpHLKXGca1egeZ8p8UpfqkY9HuYCVUqIUpHT2kR8/OyoPPC+iY/pLIpHPqwcnvf8RbXfQQUmQ+0Rf5gahR9UGG95tEQXvp7l7iTteZTo2u7cwUGOZ5E82MAG/DoQcBsgaQHcM7iSmf1XKO5aLcHhvtYM0Qgf7tFPdpjxJKkfiRCyQFf7TRO4J+zho5YmcyqMZa5ecGMUyxiYeKwf5BUb0PAgMBAAGjggNHMIIDQzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFNd8efCbCLFrkG89DDkVHvK2H5eSMGwGCCsGAQUFBwEBBGAwXjA6BggrBgEFBQcwAoYuaHR0cDovL2NlcnQuc3NsLmNvbS9TU0wuY29tLUVWVExTLUktUlNBLVIxLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3BzLnNzbC5jb20wSwYDVR0RBEQwQoIdcmV2b2tlZC1yb290LTIwMjItcnNhLnNzbC5jb22CIXd3dy5yZXZva2VkLXJvb3QtMjAyMi1yc2Euc3NsLmNvbTBQBgNVHSAESTBHMAcGBWeBDAEBMDwGDCsGAQQBgqkwAQMBBDAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5zc2wuY29tL3JlcG9zaXRvcnkwEwYDVR0lBAwwCgYIKwYBBQUHAwEwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybHMuc3NsLmNvbS9TU0wuY29tLUVWVExTLUktUlNBLVIxLmNybDAdBgNVHQ4EFgQUIYvg20wVsuiaRAoWQWo3mgBW/9EwDgYDVR0PAQH/BAQDAgWgMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZml7Qv6AAAEAwBHMEUCIQDeDKisKIDDUbOl4Lp/HM85svTleY8QDkOoOWFQWqVk2wIgWwTd+BGLe+VIuUI2Su9YhIap8PHcCZVJdKeXbHNPRkwAdQCUTkOH+uzB74HzGSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZml7QwjAAAEAwBGMEQCIFZlRKoPM9D2SnlcsREgkvaMSEa5YufQWdE83QQTD0ZsAiA947hM53R0ZOEAltMv3R3VlNxepS+u4bntyIHLgIdlQAB3ANdtfRDRp/V3wsfpX9cAv/mCyTNaZeHQswFzF8DIxWl3AAABmaXtDDkAAAQDAEgwRgIhANp5otF2SntlSkvvFkAn/gORNFaOoQTksifmIOYP6w+fAiEA3EjBHBFVX4J/fK0I/Mdn6TKVECLuCHXyt0xLWctIAZIwDQYJKoZIhvcNAQELBQADggGBAA0fpX0jK6nAqu/IbX32BGIbJZWPAAfVrzELBzmb1PYbUljA/Lgj/9g6Sab/VzIk51tDxygrITU2G4B7psCuZT+NQw5/wobL+u/Kg+hBvHpPABxlVKMV1MitASV6WhSdh4kMxQC52JfZ5/euHg96q4+USPSNXbWEL5IidgfUn6fVI1BIJIy/HOYzelGKz8vzsjlcQLFm2fJv3gxGh20RYFIV4q2F922X3g8YU7cZ13iOxXfNB6o7t+/P5aMVVwBcVc3v9pQiSOS9TjqO6PtoI9mUoZu348uqNbi5LRqfbVaPKEmYppX2+eTAExMMXAXFDfa6KLTCXaEl36xtBjG/5JvJk1JlHTmqgrhlJ7N59Xk9ebUkmU+Zx70I90r9kZQiIf/VI8OIVAeHALiKhZJohOcPSdvrQtzNLUYqkxRV2zQikFTzlVNsz+qYnUC2AJh/ktIJ7YeGj0PqFJwKSR+ELTFanUd9vFJ75aP+E7sh2eZUyCbNYz2BUhEzx+ojm3P/FQ==", "intermediates": [ "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" ], "serial": "I4LbUsXyp8zgKpsipGfMqQ==", "issuer_spki_sha256": "3ebNWkR6qhSsVzk3WkbXqmW0areNxC++6UeU++EA9Io=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1759425399802 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1759425399843 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1759425399865 } ] } }, { "ca_sha256_fingerprint": "8FE4FB0AF93A4D0D67DB0BEBB23E37C71BF325DCBCDD240EA04DAF58B47E1840", "ca_label": "QuoVadis Root CA 2 G3", "test_website_revoked": "https://quovadis-root-ca-2-g3-revoked.chain-demos.digicert.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFbzCCA1egAwIBAgIUZem81T55HfIt/+tezCvHpViNCIMwDQYJKoZIhvcNAQELBQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0yMDAzMTYxOTM5NDJaFw0zMDAzMTQxOTM5NDJaMEoxCzAJBgNVBAYTAlVTMRcwFQYDVQQKDA5EaWdpQ2VydCwgSW5jLjEiMCAGA1UEAwwZRGlnaUNlcnQgUVYgRVYgVExTIElDQSBHMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMhwn6I+pGrJsnisnzP7EU5cFN9UT5XFauA13F3jHeUUZmBOcMSOJEhx/e7oeVScTnmKpe7t7uey7lIIC9DWFmP8klbtLBgL0jY4MPlCkVyxUIhZ73EHCPqDCX9bo+rMB6C758/tKZOPcoWRixQypPwoC4cXNOOkntqFPRxFSZoBdTDNlAmkAQJCRsXGCEC5pZ0JqzGcAA0/Pw1fB8lSPAti3trubYmdaaPFAKzGK7vsexxpuSUKO0opNkFWbLdHZ8jkr86R80oo1vhURJXWNeMS74ws5nbtLl9sJTDW33MQPS0/JO3xYI7bQcW3K1sPSERa4BahqgOJvEXMk1eWRcUCAwEAAaOCAU0wggFJMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU7edvdlq/YOxJW8ald7tyFnGbxD0wOgYIKwYBBQUHAQEELjAsMCoGCCsGAQUFBzABhh5odHRwOi8vb2NzcC5xdW92YWRpc2dsb2JhbC5jb20wSwYDVR0gBEQwQjAHBgVngQwBATA3BglghkgBhv1sAgEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5xdW92YWRpc2dsb2JhbC5jb20vcXZyY2EyZzMuY3JsMB0GA1UdDgQWBBQTL6fobnFR9uIMmEeDnn+deHk08zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAEoOxze3kgnR39LX8M63EjiNxx0LThZHROqYqev65ox/c5NNitk8/ODA8osdPpvnUBAlmE0+gqBvnTBRPVrJFd9bOr5BK8z6Os9/U0edc3UINkWLS05B7ChC9s6Zw1Vd/WlW08TQJ80GpvAIbEKcg8EO/DXPniHxC4cMtv1TjtNeh98XiVgQXHL1FY+u/l413J8C4utKi4ZOQeCJDqvlSDzRsOi+tHsXrCJxnMWN2QBgMGgdPW37zwf0EffoH0Gee3pTgg7I5SzmvBq0t5xRDfv4N0OdM/sN1mc5f3o70YCd9WXhyDCV5W2O8QIbrd42CK5k1rlM6gXwOyDmYY5CVAl1QeXEeRfDk/zNjU/1+LnH/Dv88VcZhODYq+VGbyM8bpNr0v95PY3yaH4kzpWGqWAN5i9LosfcaqRPmyL4PcKTQwcA9AVTjITExFua/QtGrXLPvMVxR248G9IQpJMxP3JEGkjlKCenmc29r2u1KE4TeCs2xxjR1PusTfX91bBW3YAoAPDTRQKZjolegLUY44j3uKSzAdhMEbZQhovHLraqx1WjTayTuq1Vuakcia5shmgFVSNcE+NVgLEIe32oTOm/G6Kd1lcm9C4Ph1CgnfDuqohZrk76kJTk8poAY5aFCQHhVzbpSw3zooMGjjvWnkG+/DC6SZM8rKoOdKiBcy+N" ], "serial": "Dz5gK15IO2FIOlqOv12miA==", "issuer_spki_sha256": "WlGHvWN6kWbS5I0pZA1mzBa36H7tg/dkp0nOMyIfpIg=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155778553 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155778540 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155778572 } ] } }, { "ca_sha256_fingerprint": "91E2F5788D5810EBA7BA58737DE1548A8ECACD014598BC0B143E041B17052552", "ca_label": "T-TeleSec GlobalRoot Class 2", "test_website_revoked": "https://root-class2-revoked.test.telesec.de/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFdTCCBF2gAwIBAgIQDl0piRXEBDGk4cTKSIuOozANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMjIwODAyMDkxNjQ0WhcNMjcwODAyMjM1OTU5WjBoMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMTAwLgYDVQQDDCdUZWxla29tIFNlY3VyaXR5IFNlcnZlcklEIE9WIENsYXNzIDIgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDJI0Rpfxc6t0rquSh1jjQompiuSfyNpmGhel4Nt3D+0xNa6Vj1ed4P5eqtUZootIP8+X36Vg8c1TxZ9yX2CoUeSM7MSZ2DbyAbtnb4KH1qdmP2uO54tJhb6WRISzq2rjlPsQWB5s3G4Z+nD3DNuGXtlszHPPTDNEFQRj3yr17wX2V5Sz6KmH8ok/H/pLKhCGDktUkPeeAFaWLsWF4aUkkSPY6JRTiVE6xILq3YIFlc8vQn/GP82Wo5H56TQpapYdKimQlygj9jG9Xj+o/0TXuTUOqPPoSTsKdvjEDuqaR63hZggzscFFDw6g45dapfYK5e0xyiE4hkDDWkLi1VbLjm0+Jy+xGRnPTex1vd2Pmk8GyNFg2nqH9DK+o/atmb1VQj+APwEj6Iu1ZlvY1A6TxDVmMwwGLvik57lcSSQicqLQCvCk+rJCA5RnU/Sq6iA3ke/zEu1UJaVcM1vBmtu597c857ntt1FXObUK+DEED0/RN2vq6hro99hlquqUoV24sCAwEAAaOCAX4wggF6MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUHAWTsX+oNDCMUuCWQKByoxBd4P8wHwYDVR0jBBgwFoAUv1kgNgB5oKAia4zV8mHSuCzLgkowEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2dyY2wyLmNybC50ZWxlc2VjLmRlL3JsL1QtVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3JsMIGNBggrBgEFBQcBAQSBgDB+MC4GCCsGAQUFBzABhiJodHRwOi8vZ3JjbDIub2NzcC50ZWxlc2VjLmRlL29jc3ByMEwGCCsGAQUFBzAChkBodHRwOi8vZ3JjbDIuY3J0LnRlbGVzZWMuZGUvY3J0L1QtVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzIuY3J0MBMGA1UdIAQMMAowCAYGZ4EMAQICMA0GCSqGSIb3DQEBCwUAA4IBAQBTLMxV+kTsIj6ks1K3WOWM5MyS/IDOGYRAcjP99Dsqqsb0+Klv/DjDpqG+fNhToZkMIOLwFCVORG2o0lx3OLN89yUxsWsi9gbxnJl8WMdYWablIlL4SGUT79GuumemtKs53WxEOpcZ5wKeRNz4kX6dzDp9/186Z87Fss478BuOLUvpeRyqzvHBNHNgPagqwD8DK3ab/OjaI81PR4Ah4HgVf0IcCUhIoJeZ5Egv63G/IonqwMmmRgylu1eRENJ49PplOL70QEkfVwnYyLPcxt13TEp8IwH1gjqmyTUO6hx3Tz/jmkrfjwAVaN8sBBREXzzCexjyeM5UUQI/g3ovkWbg" ], "serial": "KzyDrA1gYlh+g7x7fb0x0A==", "issuer_spki_sha256": "9K4RwKQgzd+IOm+vvVnHkFwvlV12A4LOuuuJ7/2Wo8Q=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1761732664441 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1761732664661 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1761732664396 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1761732664644 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1761732664762 } ] } }, { "ca_sha256_fingerprint": "96BCEC06264976F37460779ACF28C5A7CFE8A3C0AAE11A8FFCEE05C0BDDF08C6", "ca_label": "ISRG Root X1", "test_website_revoked": "https://revoked.x1.test-certs.letsencrypt.org/", "detail": { "end_entity_cert": "MIIE2jCCA8KgAwIBAgISBRQpwyRMNI5l9Z3hum4BOmr3MA0GCSqGSIb3DQEBCwUAMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQDEwNZUjEwHhcNMjYwNzA3MTAxNjQzWhcNMjYwNzE0MDIxNjQyWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArRo+PZV52+jEj5a23XTMzwwdseWGkUSfE2aE5+JrI6sjDgj3KECYvNstqvRHm22m3IMGjfbD1oyOndTAZCy88EsL+eUDGyWjBtR/wNqwIApXsquC6TtbAAWZED2u1yINMBkreN+xvUW9kYFk4cW9JqZZSZ1dHUtBXe2zmxw0kQ/HXSiR1+G9fsH7j8rio99qfxXS4VugnifH1QnulEm/B7YHjDWBZZVuEWX8ip9h8brCM6YSysLbD1Kjr8qlip9y6aJcHOVUB0WDo43iEl6sJz4USu5e5kVHPFrewx4ygnZY+J/EN4VeDxagXbeyTRvQu2Pq5pa9hFEqfZtVApE68wIDAQABo4ICGTCCAhUwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUHy81vkYUgs1Asa55LFV4+vfUaPswMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAChhdodHRwOi8veXIxLmkubGVuY3Iub3JnLzAzBgNVHREBAf8EKTAngiVyZXZva2VkLngxLnRlc3QtY2VydHMubGV0c2VuY3J5cHQub3JnMBMGA1UdIAQMMAowCAYGZ4EMAQIBMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly95cjEuYy5sZW5jci5vcmcvMTIwLmNybDCCAQ0GCisGAQQB1nkCBAIEgf4EgfsA+QB3AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABnzxKDT4AAAQDAEgwRgIhAOXwTF1ln3XiNuKoszQEwYE3BxtRq9Iy+8MKS80IAcSaAiEA/PDGRoQe2lfespACh2V2shzujO2n05PRqHX1MmF+9dAAfgAai51rD/6/gbR5OcbSMQqG1tEC1PBG4hgsneNfXiYl7wAAAZ88ShC8AAgAAAUAJx+OFwQDAEcwRQIgethXUKmKgAa19i7HMNZEhF9h6W8GQXjNA0IIH4+nUJYCIQDAST7tqOxjYVU+QTFwyCU5wmzqAtKBu9Tg0oupt92lkzANBgkqhkiG9w0BAQsFAAOCAQEAb9+kGoo0+C0ZXbUIqQoj2LxP0pZGE2XMqojtZZDlf5FMtyGsSQCacZ0oqpg5GAMWlPkxv/PJuif9JP7hky5y89LwCXeSB952mWjLu1mmTh2uCdMyo1O/GsRSJChr/Ef6PtFa5Fa0HHgT3kKyMRcUZcGV0UWCmoUqWM4oCEpIeuWfDgvIUomgKkMHMI3YJzqkWRqinn3YIEaTOMDnGyhycQWcWppaiSMsG2l7sC+d7FIrOTTUAxUxDY9/KoyBrpalRgMp0uAjNEpSBNBmTDhAJptFFgxu9wYEW0mY4N14Y4lYoF6At1jFRyHyU7oQLwSS7HzrRZfAeGX1zyLz7rdtqA==", "intermediates": [ "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" ], "serial": "BRQpwyRMNI5l9Z3hum4BOmr3", "issuer_spki_sha256": "LoMHBotttiDko50Gi13uXW71eIy7LAttI+rYT8wXF4w=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783422913854 }, { "log_id": "Goudaw/+v4G0eTnG0jEKhtbRAtTwRuIYLJ3jX14mJe8=", "timestamp": 1783422914748 } ] } }, { "ca_sha256_fingerprint": "9A114025197C5BB95D94E63D55CD43790847B646B23CDF11ADA4A00EFF15FB48", "ca_label": "Buypass Class 2 Root CA", "test_website_revoked": "https://revoked.business.ca22.ssl.buypass.no", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFKTCCAxGgAwIBAgIJG3gcbV40zh93MA0GCSqGSIb3DQEBCwUAME4xCzAJBgNVBAYTAk5PMR0wGwYDVQQKDBRCdXlwYXNzIEFTLTk4MzE2MzMyNzEgMB4GA1UEAwwXQnV5cGFzcyBDbGFzcyAyIFJvb3QgQ0EwHhcNMTkwMzI1MTIxNzEwWhcNMzAxMDI2MDkxNjE3WjBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKtnxpZLDQ+R0uzKzDMr83L8Dn+5ToSpD31zqiYMykj7I2geNQ7javKsBOzhgeVr7GP4yJ5bK/P0dhoKesYvQITihfwztbMP6DyHq1QJLQBqQnF0Lk8GhxSSNAZnlkCgX3aazoL32p9BeEfHuUE/8BlPywJY/RyE5/39w3EKmWylhUkeRCMo3dUZr4khJq8JwGp/feKFs9n5FouM5PGhpFpZO+WQXEeqxpncCxbvWpInBoTnmX3+ofjm+fmY+sdAnyHkuOBBw3koGbFQygDaJP9VItOGByCX4iSVty/2uzppowIkf7Mpu5v5HJGKObLMP1gGv5lNqjAe8mz0bn25kwIDAQABo4IBCzCCAQcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTJgHfgYpKC9Uac87r3TMPeuKOtOTAdBgNVHQ4EFgQUkq1libIAD8tRDcEj7JROj8EEP3cwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjARBgNVHSAECjAIMAYGBFUdIAAwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5idXlwYXNzLm5vL2NybC9CUENsYXNzMlJvb3RDQS5jcmwwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5idXlwYXNzLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEApNka48a+qhJXXS9R24p34CWnirlyxPMhxFfQyvPFXnwBQGHvrm7H5KY3/9/etShFXdY/N05Aq6UnE8my8jR4iHMm2e9iEf4v+O2E2JGH/5/H8wup160GBAsp4zAmJIT8KEghYAA1j+NaClVryZfEaaDfAdF6LbU3cW0ZgooILPMeeCEXso23KsdCD1Q+SMvD6nQJ86iTvzWPY2GFJyEmvG/N2f29nBaHxWwZBwCfWB4Hqsw9wdKfY5M9SE/AGSLZ7LRMBmkkF9nqkWxxISadx12nbxn0LsU2k8Xyt830DqhHGSoYHEC/iGxbU4Bub8NC0uw/QNBj5Gd5cXLFhRUWLLBTq4p6P6kLc7JudpM4FNQ+stWK/eDZylbDLN3iCBRnHH4pqg6HAlWuieiAKVsidBMxPUyDLJ/8Dt+aW8Z3vCNcYC2n7wqrLZz5e4FG+Wn9teFWRt5pO6ZUZAkDS59ZVojbbjOdQzNw3QHtZl0IMHeNYXJlPIUlHi4hGL3maGZ9sBF+AMfMLDu56+J2DewIuTXPzCeJeSTam/ybNt5FxTznxCSCIDqwmZMy3AQEz9nGSbE8zfwB5VT2ijLB0PpPX4YbLf33Vodf0NAkBUv6N5It30XiTUPhdk+caBYPoljz/J9U15T5+EGHs8ccHQWyYQ6gqYk8o4JgP4rSJqO1sMI=" ], "serial": "AKozLVEmSRsW74U=", "issuer_spki_sha256": "61MXD2Y0eBaJtXDtSP1wW5LIdaIPjtVmYYrVCM8GDDg=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1761897192574 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1761897192129 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1761897192232 } ] } }, { "ca_sha256_fingerprint": "9A6EC012E1A7DA9DBE34194D478AD7C0DB1822FB071DF12981496ED104384113", "ca_label": "ACCVRAIZ1", "test_website_revoked": "https://revocado.accv.es:442/test/hola.html", "detail": { "end_entity_cert": "MIIJADCCBuigAwIBAgIQAe4plMUtKpO4/FP3RQyt5TANBgkqhkiG9w0BAQsFADBDMRMwEQYDVQQDDApBQ0NWQ0EtMTIwMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0yNTEyMjIxMDMzMDBaFw0yNjEyMjIxMDMyMDBaMIGNMQswCQYDVQQGEwJFUzERMA8GA1UECAwIVkFMRU5DSUExEjAQBgNVBAcMCUJVUkpBU1NPVDEOMAwGA1UECgwFSVNURUMxEjAQBgNVBAUTCUE0MDU3MzM5NjEZMBcGA1UEAwwQcmV2b2NhZG8uYWNjdi5lczEYMBYGA1UEYQwPVkFURVMtQTQwNTczMzk2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAydcz5e5jvqRzBIXuqdfBWSAFoZJ97wHrctxzWh1W/dKvV/Oz/uYRJfByzkU6zoW+JUqOz7hWezgfK0mNMc+q3Qk6IuQhHIhSIFFTZZmvdRuPEOhbWYOcPkWKn/M7IN1ASHVY7EfFM80BwZmx1bC79V/ApoifH6qSI+EZO63tYXixLlS89q15Am17eXY/yNEXcgzc+UiC1hmQd9hIqskbQInjBWVwbmdwVRYmkuw4t5TDY5bwXPTL/lhjAZn94Vz8F5oa5xQaG6F4XZMoa0rhwhqtMsBloRLgPMucJbZ87d10erUd6xSSYHRgCPSUqBFBfDB2bRGUUHGDjBKyAapnwwIDAQABo4IEozCCBJ8wcQYIKwYBBQUHAQEEZTBjMEAGCCsGAQUFBzAChjRodHRwOi8vd3d3LmFjY3YuZXMvZ2VzdGNlcnQvQUNDVkNBMTIwU0hBMi5jYWNlcnQuY3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB8GA1UdIwQYMBaAFOhAm477Zj/BRNih39RKgUIIF8vlMIGyBggrBgEFBQcBAwSBpTCBojAKBggrBgEFBQcLAjAIBgYEAI5GAQEwCwYGBACORgEDAgEPMBMGBgQAjkYBBjAJBgcEAI5GAQYDMGgGBgQAjkYBBTBeMFwWVmh0dHBzOi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL1ByYWN0aWNhc19kZV9jZXJ0aWZpY2FjaW9uL0FDQ1YtUERTLVYxLjEtRU4ucGRmEwJlbjCBjwYDVR0gBIGHMIGEMAkGBwQAi+xAAQUwYwYLKwYBBAG/VQMDBQAwVDBSBggrBgEFBQcCARZGaHR0cDovL3d3dy5hY2N2LmVzL0NFUlQtQ1VBTElGSUNBRE8tV0VCX0FDQ1YtSVNURUNfQ0lGLUE0MDU3MzM5Nl9TUEFJTjAIBgYEAI96AQcwCAYGZ4EMAQICMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL2FjY3ZjYTEyMF9kZXIuY3JsMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAsBgNVHREEJTAjghByZXZvY2Fkby5hY2N2LmVzgg9yZXZva2VkLmFjY3YuZXMwHwYFZ4EMAwEEFjAUEwNWQVQTAkVTDAlBNDA1NzMzOTYwggH1BgorBgEEAdZ5AgQCBIIB5QSCAeEB3wB1AMijxH/Hs625NWsBP2p6Em3jOk5DpcZG+ZetOXWZHc+aAAABm0WfQG0AAAQDAEYwRAIgC4nOCSrWQp5nXp23+jTka5q649OZbfbosz1sH2VUU+wCIECmZITXA+Y6i/R2hutdeV0w/OfD9tp7pXh8iOTL7GrUAHYAyzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOcAAAGbRZ9BVgAABAMARzBFAiEA2eazSuOYWeGk7V9zT5NZotW/pvnBs8jJtRpTzSaH9LUCIFEUdT+1vS0QPYOtifS4YKc/OiK+2n/8Qdh6sw7G2eH6AHYA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGbRZ8+eAAABAMARzBFAiApsj78A0h2MDfYo/BpGkCCkgzikaeqiuzIoJ1KY2TVPgIhAI6JPP+AqE++1hdw0DwEn1ZarW1wKhpSG+ZPqMaEllgpAHYAwjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0AAAGbRZ9FwQAABAMARzBFAiARrwAwHas/kLFXEeR8UOCPwrnxNHkFGv6+NbpDY/s3BgIhAOeroknlnkxExQHLyaw3EoHK/kyx8oO+9Sfrp1EwhYfDMA0GCSqGSIb3DQEBCwUAA4ICAQA2MQmCGo0Ixo/7ZhICgD0Ls5XuX1pltgZGYhBa+dLfJD8bri50CBKEj4BfSE0tXmV7GHHz+joWR0Oax0GFa3i7AWuMS5dosrJ5gbcXF0+CjeaiiHQT77q8kt+vLcGEMpKcFFaqMU11lmgF2QdM5/jIGZtB9U7GDteXfjyyPSUdCmhF/tGhadPzuUvk5FMn7gLa/gugO/jus215a7ic/4fIQ22yLI2TtmvnYFiyQ3zHQzntGFdymrO3kkWbHaqB1YAXAklYlclT2iNgpXD7aQ6qTJvDCmy5CY1qrgHoJysgXJ07P6Lz0+Cv4sd+XxE9z3cxuEYDFHOdkAcZXL4nvau7YEbGZC+wTSl5cX4hiCki7G7g4JMETl5dKTuk4E7coRECmO/t6WXY9NPBE1EufpifMU31tXX7QwR6OmGfTmKDv7q2kHgYJlgqIJXzJBaEEfVdGlk2mzIZ3CykLnYY2AZyUAmG1WZDputEwTcipEgn3DgQQwDn1nOaOYAZo/ctS+dxHnFLYaTGKNIbJIc+uxmqEVbCvHu8BC5XXCqpRSwbZtSuraB/vL0A2BmEsCHruYmyZfNcyovwklXHq/NKvyDERH0B+o5Id4fImyE9bwzPAbz0ctL8FLnY0p/z5GLBY+/eh7PSzclex7Rg9vbw8zvusjV9RbFW2RhTIuyxxpOYNA==", "intermediates": [ "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" ], "serial": "Ae4plMUtKpO4/FP3RQyt5Q==", "issuer_spki_sha256": "XH3Wh5FuH9ZeZcCdLZM0VbsyQg3aeFV1wujvNEYNRQ8=", "scts": [ { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1766399623277 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1766399623510 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1766399622776 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1766399624641 } ] } }, { "ca_sha256_fingerprint": "9AE36232A5189FFDDB353DFD26520C015395D22777DAC59DB57B98C089A651E6", "ca_label": "OISTE Server Root RSA G1", "test_website_revoked": "https://rsag1revokedssl.hightrusted.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Mk8qAV1YsqzlGodLVyH9cc62tfg=", "issuer_spki_sha256": "jPBpLKnIvbeUJ2GIOpgvh7MWa1MRUikOe84q8o2y+Eg=", "scts": [ { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1783148541362 }, { "log_id": "Jbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GU=", "timestamp": 1783148541252 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783148541310 } ] } }, { "ca_sha256_fingerprint": "9BEA11C976FE014764C1BE56A6F914B5A560317ABD9988393382E5161AA0493C", "ca_label": "UCA Global G2 Root", "test_website_revoked": "https://rsaovg5.revoked.sheca.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Rp7nCXMKESGHNO3paDJO3w==", "issuer_spki_sha256": "WI6nGsclPUABSKW3JyWkcmgz7zhO6+Y87hF/ON9GKbE=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1774147485542 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1774147485788 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1774147486351 } ] } }, { "ca_sha256_fingerprint": "A040929A02CE53B4ACF4F2FFC6981CE4496F755E6D45FE0B2A692BCD52523F36", "ca_label": "Hellenic Academic and Research Institutions RootCA 2015", "test_website_revoked": "https://haricarootca2015-revoked-ev.harica.gr", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "ETeIC7X/AGp4fDpjK3GldQ==", "issuer_spki_sha256": "L71qnaLy9ik60mK7sra3MIvUXyqNjaoejV3p0YDj4us=", "scts": [ { "log_id": "YEyar3p/d18B1Ab8kg3ImesLHH34yVIb+voXdzuXi8k=", "timestamp": 1782997762335 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1782997762354 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1782997762309 } ] } }, { "ca_sha256_fingerprint": "A1339D33281A0B56E557D3D32B1CE7F9367EB094BD5FA72A7E5004C8DED7CAFE", "ca_label": "SZAFIR ROOT CA2", "test_website_revoked": "https://revoked.elektronicznypodpis.pl/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFmTCCBIGgAwIBAgIUFobWbkmXQcNY82H+JTMWCRDxtXQwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0yNDEwMjEwODAwNTZaFw0zNDEwMjEwODAwNTZaMFQxCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRswGQYDVQQDDBJTWkFGSVIgVHJ1c3RlZCBDQTYwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC4J0tw3SWSeKcGCcXOVZ2Vc3rcFo77SF7APLLWXtjcRkL8jq9SmZSYVoo9NdiytmHaQfOVI5jZBKt4ER5OS8+e+/BUZPz1TeGc7p5fhSAuXC3CizHQD93txK2raiuIwqZqLpAb22Je1MdFyQh1ICRgombZ7LRyVx/j6RfJkvQe3sJzMzBHRRyucD66MCi8oUH6w5j2k2y1X14ONpHtTFs9nCGiEY3UXjvlPfSt1b4PljfwZj5l7rDRl4SyMhsQhef+rxgtkqp3nyT4OLIfi+ynEiiMmFoZWveudEZQHZ+IK6UDASSCwq1zn4ISC2VT62yDGqMPBbCyJTfFs6VuJeUn28ydp80ZOlfSUp5/+pxKbrboDDJxQi3LuI0x/ocysSMucPwpp7HSesYYmFnI0Jp9YBGM19keFCHYjjCic3J4grKX04Al/UDNit7IA41gDxmAjRiQahSx3o6yItW241PyTGpeVHbJ0171BRcJqjnaUiAl6QgkQ8nnY8G8Q2aW4wwRahEPTIqlBOFMD+j2d5xIdWh2vpfX0+/4hivtJgHwUh2x4koCwcMZb3BIAT7aSem23d1nLwYNyu0Om6KD0ye0KX/YM9kidd+HRkU3rkrqrCgN0lMfiuD6FCpViq9ctVIrE2KjAxvtLHhhuTRZP8VYGdNx88zahRtp73nFjca27QIDAQABo4IBZDCCAWAwDwYDVR0TAQH/BAUwAwEB/zB6BggrBgEFBQcBAQRuMGwwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmVsZWt0cm9uaWN6bnlwb2RwaXMucGwwOgYIKwYBBQUHMAKGLmh0dHA6Ly9jZHAuZWxla3Ryb25pY3pueXBvZHBpcy5wbC9yb290X2NhMi5jcnQwIQYDVR0gBBowGDAIBgZngQwBAgIwDAYKKoRoAYb3IwECBjAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFC4WqUoYtcvM9W9Q8yNf+F3nrPDIMD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly9jZHAuZWxla3Ryb25pY3pueXBvZHBpcy5wbC9yb290X2NhMi5jcmwwHQYDVR0OBBYEFAQC5AVJAffed7/r+4W/H0TMPvG0MA0GCSqGSIb3DQEBCwUAA4IBAQBPl2jU755j+FBvSsgTR5GyREO7WuRBflAqk7TURuGbjBkL6pB93QWVFTpW36+yu6C3J1ippS+fuDR7psHc618/W2mznczu6TJkqgINI+6VYftJZU33Dm5SLFeFkPHp+V1hXAlntZPPT++h4IOexpCLfXmW3hRbZoVdXHIFHLB35liPW2942BHy94DpvMHaS3e8UneNpKsoCgMUsyMVoxG7O8TUPtoD3te1RS3CdTspIJGKQ2zNTcAcIJxKWQotT8DgQLIfIlRoguVQH2c9UhYrwKbPM2KV60wQvea2pxPT5vGMH3aBePk4W6gJOWigSPXsL0POAtsJlF4by9GjJQpQ", "MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==" ], "serial": "GF90//vz/R1oYlcJPYXWXBsGXyA=", "issuer_spki_sha256": "GiMESp8Ku729pOVng+Vo3/RwenkeGpT9iDpIb91vAKk=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783407669995 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1783407670007 }, { "log_id": "RqI5Z8YNtkaHxm89+ZmUdpOmphEghFfVVefj0KHZtkY=", "timestamp": 1783407670324 } ] } }, { "ca_sha256_fingerprint": "B085D70B964F191A73E4AF0D54AE7A0E07AAFDAF9B71DD0862138AB7325A24A2", "ca_label": "GlobalSign", "test_website_revoked": "https://revoked.gsr4.demosite.pki.goog", "detail": { "end_entity_cert": "MIIEhzCCBCygAwIBAgIRAImzHRzYOLRhCt6eU7eqC7QwCgYIKoZIzj0EAwIwOzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczEMMAoGA1UEAxMDV0UzMB4XDTI2MDcwNzA3MDU0MVoXDTI2MDgwNTA3MDU0MFowKTEnMCUGA1UEAxMecmV2b2tlZC5nc3I0LmRlbW9zaXRlLnBraS5nb29nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArzAZU4DA5UGftVlJIhttqV8md4Kz8npFXMWvkbWV+m+ZW2XC8U+6PLAOj2lRX3+fl1PRLycL/huZKAbaA7vsuzgEct+zf1wo0IQUIkV10+oGcK3mWOAjRB5bxQDBD6qKQ5+eZsdSS7PLPtAWkbaheAQ0+YSA4foCod6RnMwqh11H8RRteE4M8CJnBvBL9yIUOCt+PXILhGER/oKLX6xr5oR26UdJ6uD54xKtPG6cU2AAvFhB/qhPUUFSjJPGuTaCcEeRJtmO15D5vxh755q0gqu4H0V1GhpUWcPuKOvyIw+xoTRHcmwbsDf2AdT5aAArzuhv5yKYHTvg3CuSe6GLmwIDAQABo4ICVjCCAlIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFN6D+tsxmT/FLbNX6MslIjxTHE87MB8GA1UdIwQYMBaAFDa2LM6jtNBAkEXzi0WBwcjjGdRtMF4GCCsGAQUFBwEBBFIwUDAnBggrBgEFBQcwAYYbaHR0cDovL28ucGtpLmdvb2cvcy93ZTMvaWJNMCUGCCsGAQUFBzAChhlodHRwOi8vaS5wa2kuZ29vZy93ZTMuY3J0MCkGA1UdEQQiMCCCHnJldm9rZWQuZ3NyNC5kZW1vc2l0ZS5wa2kuZ29vZzATBgNVHSAEDDAKMAgGBmeBDAECATA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vYy5wa2kuZ29vZy93ZTMvYThTdl90M3lrT28uY3JsMIIBAwYKKwYBBAHWeQIEAgSB9ASB8QDvAHUAwjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0AAAGfO514mQAABAMARjBEAiB2mFqwiZR2VjW8REk5gmDOmqPBZBaQOOWdkkufH/NwIAIgeb7P0K3pXrO+I4iZ45uwSpYN5gw7rZxOTd/IgFdpht0AdgDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ87nXi9AAAEAwBHMEUCIDVTelF1gw+LBA5fXKy5WyOclOMRoUoWJTzE6Dxb62sRAiEA7psMk8bJ0iAYB4ydUUK0HuXC0zVOWs6CCDpV+IHKLFkwCgYIKoZIzj0EAwIDSQAwRgIhAIuPTlCjoNjPM/m0Jy11iFmBIBPHlHRwRBz+YgNPDE/bAiEAqILYpq2IuyK6pxnmvR9W+HGEOlN6x8b2kKkqs23KqHA=", "intermediates": [ "MIICjTCCAjOgAwIBAgIQf/NXkQ8H4ZKfPQCErvGYxzAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIwMTQwMDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYDVQQDEwNXRTMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASMcnFcZuUEVJZ5G8HCgWWQMzZzPMAvtLlUBipaNCeVkTUJqnq/ksmNGOhWkuJPqm1nWm1BUawKw3XGJ7ICt8VCo4IBAjCB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDa2LM6jtNBAkEXzi0WBwcjjGdRtMB8GA1UdIwQYMBaAFFSwe61FuOJAf/sKbvu+M8k8o4TVMDYGCCsGAQUFBwEBBCowKDAmBggrBgEFBQcwAoYaaHR0cDovL2kucGtpLmdvb2cvZ3NyNC5jcnQwLQYDVR0fBCYwJDAioCCgHoYcaHR0cDovL2MucGtpLmdvb2cvci9nc3I0LmNybDATBgNVHSAEDDAKMAgGBmeBDAECATAKBggqhkjOPQQDAgNIADBFAiBc11MKxPIaqvzIUiWwn7XDlkA4i7vj/r+TF5RnxwwLwgIhANU+BbcLl0xXJcfX7jl3WiSD8RK6mdRxCoMvbnDUC7i7" ], "serial": "AImzHRzYOLRhCt6eU7eqC7Q=", "issuer_spki_sha256": "daBIAnKdRIX3bqM85I6We7wBUh0DPycNFBMvYkXGX2Q=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783411603609 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783411603645 } ] } }, { "ca_sha256_fingerprint": "B2FAE53E14CCD7AB9212064701AE279C1D8988FACB775FA8A008914E663988A8", "ca_label": "Atos TrustedRoot Root CA ECC TLS 2021", "test_website_revoked": "https://tls-ecc-root-2021-pki-revoked.atos.net", "detail": { "end_entity_cert": "MIIFQDCCBMWgAwIBAgIMDl8wGeyaQZo76cWNMAoGCCqGSM49BAMDMEoxLDAqBgNVBAMMI0F0b3MgVHJ1c3RlZFJvb3QgU2VydmVyIENBIEVDQyAyMDIyMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0yNjA1MjAwOTEwMzhaFw0yNjA4MTgwOTEwMzdaMF4xCzAJBgNVBAYTAkZSMQ8wDQYDVQQHDAZCZXpvbnMxDTALBgNVBAoMBEF0b3MxLzAtBgNVBAMMJnRscy1lY2Mtcm9vdC0yMDIxLXBraS1yZXZva2VkLmF0b3MubmV0MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEBuRtYSRi5QzZPNAqR3S7OYdXNTK3dLdPYYrnyuCDDVgrNYTCBU5kDJcD2d4p4YiMKHj5A0jfjymnB+1gdzRxc/5QoCKahOOd52+9pUGuyV9rwXR92YQA9JoNrfBR4L+io4IDXjCCA1owDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBS6UhxB1B08/+nkF6K7RTw0Crh/hjCBgQYIKwYBBQUHAQEEdTBzMEsGCCsGAQUFBzAChj9odHRwOi8vcGtpLmF0b3MubmV0L0Rvd25sb2FkL0F0b3NUcnVzdGVkUm9vdFNlcnZlckNBRUNDMjAyMi5jZXIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9wa2ktb2NzcC5hdG9zLm5ldDAxBgNVHREEKjAogiZ0bHMtZWNjLXJvb3QtMjAyMS1wa2ktcmV2b2tlZC5hdG9zLm5ldDBLBgNVHSAERDBCMAgGBmeBDAECAjA2BgwrBgEEAbAtBQEBAQMwJjAkBggrBgEFBQcCARYYaHR0cHM6Ly9wa2kuYXRvcy5uZXQvQ1BTMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vcGtpLWNybC5hdG9zLm5ldC9jcmwvQXRvc19UcnVzdGVkUm9vdF9TZXJ2ZXJfQ0FfRUNDXzIwMjIuY3JsMB0GA1UdDgQWBBT21d51iSacbUbXEtaVY9uCUmWGLzAOBgNVHQ8BAf8EBAMCB4AwggF/BgorBgEEAdZ5AgQCBIIBbwSCAWsBaQB2ANdtfRDRp/V3wsfpX9cAv/mCyTNaZeHQswFzF8DIxWl3AAABnkSv6moAAAQDAEcwRQIgd4hw/qJdiQ2kUz1HslwPP+Sq9m0cg4D+/a8y7p5VLcMCIQD1Cyr82qA3qUlASPZnVwzto+1eJp21ugEp9xZkk7PUvAB2AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABnkSv6+MAAAQDAEcwRQIhAMoW0NDdUFaT9zn8ST68bDDQj3MO+ofSydQ/ncsjCcC0AiAkTN9O+I4rldGOFT9ZzfFJT+69+xLbT+zFmDy6svO03wB3ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnkSv6jwAAAQDAEgwRgIhAMCeRFxi0lr+lR++eFjJYgYOWLfyDlw4KbA2i76mTqBaAiEA3VR/yyOgBnGhkmpGN3mqWHwt5okV8EyAEuPS7nRDDtwwCgYIKoZIzj0EAwMDaQAwZgIxANbuZWUUi+DeDRdlzoRFa0rx99+gcI8dmSSd/9CA5xB6b9iJHgnR/1dekCiF7+G4DAIxAOjF8hi6X+bpb1nowb0Rv420izsnOTqQ57gzZwovc7cUqLAni721PK1jSQr4BypWPg==", "intermediates": [ "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" ], "serial": "Dl8wGeyaQZo76cWN", "issuer_spki_sha256": "8KEW23ySm9lo7J6pGuljKJ3cjwPhuVAWxBJIxXB8TgE=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1779268840042 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1779268840419 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1779268839996 } ] } }, { "ca_sha256_fingerprint": "B4585F22E4AC756A4E8612A1361C5D9D031A93FD84FEBB778FA3068B0FC42DC2", "ca_label": "Certainly Root E1", "test_website_revoked": "https://revoked.root-e1.certainly.com", "detail": { "end_entity_cert": "MIIDyTCCA1CgAwIBAgISeE9724dJDpLKJxFEule5uJB0MAoGCCqGSM49BAMDMEUxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlubHkxIjAgBgNVBAMTGUNlcnRhaW5seSBJbnRlcm1lZGlhdGUgRTEwHhcNMjYwNzAyMDM0NzMxWhcNMjYwODAxMDM0NzMwWjAoMSYwJAYDVQQDEx1yZXZva2VkLnJvb3QtZTEuY2VydGFpbmx5LmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPPW/56+V0KZgW5DuLsvpeq/RbMDxSdpVbP8q2xIhL0k+uc4ZPfTnJmY/JJKhDtT/VPp1O0/NG4ubXvh84Ix8pOjggI7MIICNzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUUmgwDW67dA/iPpIdXLPqe2+8M58wHwYDVR0jBBgwFoAUCpiYrk86191nhueXJVqbI09bWB0wNwYIKwYBBQUHAQEEKzApMCcGCCsGAQUFBzAChhtodHRwOi8vaW50LWUxLmNlcnRhaW5seS5jb20wKAYDVR0RBCEwH4IdcmV2b2tlZC5yb290LWUxLmNlcnRhaW5seS5jb20wEwYDVR0gBAwwCjAIBgZngQwBAgEwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybHMuY2VydGFpbmx5LmNvbS8xMTA4MzA5MzQxMDI1ODc4Ny8zLmNybDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnyEl7h4AAAQDAEcwRQIhAIcv3RjGHBYjFFLaMm1d6jvC4ijvA2QY8vyv2o1hKHnjAiBGH1GJVjlUP+TZstY0mfdywLOJqqAQdtvRSZmTN+lUzwB2AK9niDtXsE7dj6bZfvYuqOuBCsdxYPAkXlXWDC/nhYc6AAABnyEl7sMAAAQDAEcwRQIhAMD7tBxogiUAsaffOEMyfwjX7mUxqr74Mq0V2+T5BHmuAiBWeZIX5JscfMYLVcHkor4PEppshGyfRLnkE+tIU/vDmTAKBggqhkjOPQQDAwNnADBkAjBy53gtfQnsR3xqhLky7AD+E2UcUIo8Y8TYsI928oxeEDtl5+yAy09BaM3T1wpU6QMCMAXmrF1DA1FYdBKXFokKTd/Iri7FXzyI4GvJvpLMer7JxlyDEgXmnpiuCym2l1KZxQ==", "intermediates": [ "MIIC2TCCAl+gAwIBAgIRAJYHppJ2acna+Y48FdIY4P0wCgYIKoZIzj0EAwMwPTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgRTEwHhcNMjEwNDAxMDAwMDAwWhcNMzEwNDAxMDAwMDAwWjBFMQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2VydGFpbmx5MSIwIAYDVQQDExlDZXJ0YWlubHkgSW50ZXJtZWRpYXRlIEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEIytwCy+dJMrSsrBQV/BHqHcm8DElWAncRwx93X/EzltIWYS0yPWohGvkgabOxoYQEL25khqULTyUtdEo3fhpgxilon8K6PYRPAn+T+pHt6O14WDig1eg2jRw4ojvYVKLo4IBGTCCARUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQKmJiuTzrX3WeG55clWpsjT1tYHTAfBgNVHSMEGDAWgBTzKBjLZHXuKSrr7a4jWDiF68giBzA5BggrBgEFBQcBAQQtMCswKQYIKwYBBQUHMAKGHWh0dHA6Ly9yb290LWUxLmNlcnRhaW5seS5jb20vMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwucm9vdC1lMS5jZXJ0YWlubHkuY29tLzAhBgNVHSAEGjAYMAgGBmeBDAECATAMBgorBgEEAYOGGQEBMAoGCCqGSM49BAMDA2gAMGUCMQCMTsYZ58bD1gHwU+ENg8QOsQcX6eqZtkX0B3XW2sBgw95cqTHXPKU5PxDc1mG2sXMCMDytOehXbAYtAokk5ll5M96ze3Q2gcaGn90Fl1+yx9ftHEZwGk6pRauHtuPAPfxPEA==" ], "serial": "eE9724dJDpLKJxFEule5uJB0", "issuer_spki_sha256": "XkxTESlVMF59ZsGRFSBQJyCYjYJYNYkLwv/sqaDnMJA=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782967561758 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782967561923 } ] } }, { "ca_sha256_fingerprint": "B49141502D00663D740F2E7EC340C52800962666121A36D09CF7DD2B90384FB4", "ca_label": "e-Szigno TLS Root CA 2023", "test_website_revoked": "https://eqtlsca2023-revoked.e-szigno.hu", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIDjTCCAu+gAwIBAgINASVziXmNAOWkl2blCjAKBggqhkjOPQQDBDB1MQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xFzAVBgNVBGEMDlZBVEhVLTIzNTg0NDk3MSIwIAYDVQQDDBllLVN6aWdubyBUTFMgUm9vdCBDQSAyMDIzMB4XDTI1MDUzMDA5MDAwMFoXDTI4MDUyOTA4NTk1OVowejELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEnMCUGA1UEAwweZS1Temlnbm8gUXVhbGlmaWVkIFRMUyBDQSAyMDIzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEA4/gOiBz1e0647AvqnFMidtXUuk7tUmsdA4N+rB691u8MfFlXOYeiRq6IsFSiHwTQqs9nR9SmPzghGbteCM8aaOCAV0wggFZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB0GA1UdDgQWBBR/mLQUIbKeGkKrd8NIWQZRSU7DSTAfBgNVHSMEGDAWgBRZhAJiWkZ49V3cjwoQKCPc1db7RTBHBgNVHR8EQDA+MDygOqA4hjZodHRwOi8vdGxzcm9vdGNhMjAyMy1jcmwuZS1zemlnbm8uaHUvdGxzcm9vdGNhMjAyMy5jcmwwgYQGCCsGAQUFBwEBBHgwdjAxBggrBgEFBQcwAYYlaHR0cDovL3Rsc3Jvb3RjYTIwMjMtb2NzcC5lLXN6aWduby5odTBBBggrBgEFBQcwAoY1aHR0cDovL3Rsc3Jvb3RjYTIwMjMtY2EuZS1zemlnbm8uaHUvdGxzcm9vdGNhMjAyMy5jcnQwEQYDVR0gBAowCDAGBgRVHSAAMAoGCCqGSM49BAMEA4GLADCBhwJBKfc90330/NmS7RdalPMko9zAzhBXauJVTCgdYqQrtAmu1HDHKp/vHpJRy96cpfhVo6N7fiR2iCwW2qttFazXWnUCQgHN/i10B70JZHeMXtYekoE1lmzqOVXAVUlvkiGPC0rXK25EpCv8j5ZgPu+9zR3oPFE7hNzt3aAGICHXcd8uwUOcQA==" ], "serial": "Axo+4auYwP3CjeIYiAo=", "issuer_spki_sha256": "FfstIBJRQL/OSddFhkXVXxYXvlwpeV4N5QyzQSOMer4=", "scts": [ { "log_id": "dNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLw=", "timestamp": 1758887117689 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758887123622 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758887123937 } ] } }, { "ca_sha256_fingerprint": "B676F2EDDAE8775CD36CB0F63CD1D4603961F49E6265BA013A2F0307B6D0B804", "ca_label": "Certum Trusted Network CA 2", "test_website_revoked": "https://revoked-certum-ctnca2.certificates.certum.pl", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "ahI9RUw8pB42E9F8FLhf2w==", "issuer_spki_sha256": "rxmDSIbuiNS8fzkHrqwb5gM8fGXYXY7Egq5fLYyEn4s=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1757584376885 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1757584376944 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1757584376980 } ] } }, { "ca_sha256_fingerprint": "BC4D809B15189D78DB3E1D8CF4F9726A795DA1643CA5F1358E1DDB0EDC0D7EB3", "ca_label": "emSign ECC Root CA - C3", "test_website_revoked": "https://testevc3r.emsign.com", "detail": { "end_entity_cert": "MIIFoTCCBSegAwIBAgIPE70OUpeY/X9kMpijUoAYMAoGCCqGSM49BAMDMFwxCzAJBgNVBAYTAlVTMRMwEQYDVQQLEwplbVNpZ24gUEtJMRQwEgYDVQQKEwtlTXVkaHJhIEluYzEiMCAGA1UEAxMZZW1TaWduIEVDQyBFViBTU0wgQ0EgLSBDMzAeFw0yNTEyMTAxMTA3MThaFw0yNjEyMTAxMTA3MThaMIHcMR0wGwYDVQQPDBRQcml2YXRlIE9yZ2FuaXphdGlvbjETMBEGCysGAQQBgjc8AgEDEwJJTjEaMBgGCysGAQQBgjc8AgECDAlLYXJuYXRha2ExDzANBgNVBAUTBjA2NTE1MzELMAkGA1UEBhMCSU4xEjAQBgNVBAgMCUthcm5hdGFrYTESMBAGA1UEBwwJQmVuZ2FsdXJ1MSUwIwYDVQQKDBxFTVVESFJBIFRFQ0hOT0xPR0lFUyBMSU1JVEVEMR0wGwYDVQQDDBR0ZXN0ZXZjM3IuZW1zaWduLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IABFGEFIq8+w96PftUWnfTelAJm3Lnb4CgGtA6W2WK2Fk75kE1vn7Ty3AvVSzf8Ciu0QUVroSXZL300CfC0HKxF3TNQKN7y+EERJCDaPluZKH208SPtUi2g7LxuwwUrAdIoaOCAywwggMoMB8GA1UdIwQYMBaAFEi3aOg8suaxEkRMxNfTmgtv6VrGMB0GA1UdDgQWBBTUZ7KwWglpjH2JvD/rq686U5w9MDAfBgNVHREEGDAWghR0ZXN0ZXZjM3IuZW1zaWduLmNvbTAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly9jcmwuZW1zaWduLmNvbT9lbVNpZ25FQ0NFVlNTTENBQzMuY3JsME0GA1UdIARGMEQwOQYLKwYBBAGDjiEBAAEwKjAoBggrBgEFBQcCARYcaHR0cDovL3JlcG9zaXRvcnkuZW1TaWduLmNvbTAHBgVngQwBATB5BggrBgEFBQcBAQRtMGswIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmVtU2lnbi5jb20wRQYIKwYBBQUHMAKGOWh0dHA6Ly9yZXBvc2l0b3J5LmVtc2lnbi5jb20vY2VydHMvZW1TaWduRUNDRVZTU0xDQUMzLmNydDAMBgNVHRMBAf8EAjAAMIIBfQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdgDYCVU7lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZsH8bs6AAAEAwBHMEUCIQC3l+RpKBKY9ICdyvnruPQkPeTj1SWVdXwyFYhZZAqxCAIgHQ49n9CJEstRgqxwgr+4z7EpTWKPJOBpWsTq5+gncZsAdgDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZsH8b0lAAAEAwBHMEUCID5nQEoszfcW3IfKu6hdUAl3+fmjSH+a/qqLHXVzJC2mAiEAhSIPCuovVB3rUcE8tF7Qmj5nC/7068w+JbioSYG+EnsAdQCvZ4g7V7BO3Y+m2X72LqjrgQrHcWDwJF5V1gwv54WHOgAAAZsH8cArAAAEAwBGMEQCIDW5VMDqpI3rwayuK9Kri+iypwDXYeIC3ET0FbV31rriAiAMNPBA2sDV76+hY6MqtM6lbzuTJhro2vqCQAy94+2OCDAKBggqhkjOPQQDAwNoADBlAjEAmJhm6WafhFvzGWW6W6GVEII7b9KQfW+ZIhSnrpMT72DyiDU8mMdnBK/pxxcwjhxwAjAKatoP4POKP7ke9xESOR93cWooOncTrjBbJZtMpitC6XkChPJG1neTDdrausyegao=", "intermediates": [ "MIIDHTCCAqKgAwIBAgIKG1BYH3M0swsnIzAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTMzMDIxODE4MzAwMFowXDELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSIwIAYDVQQDExllbVNpZ24gRUNDIEVWIFNTTCBDQSAtIEMzMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEDv1Ol3bDxlGBala4t3g3KFCZ0xD+OutvrHBHwGpGbdAB1Xc9VvwVnL411pQ3BU3E6cqj0ZOzTetb8qW0rRWKl+hIo0Zq+nAV5S/M41t/N5t37cQkJv2tnSTwSnAUM/CQo4IBLzCCASswHwYDVR0jBBgwFoAU+1pI0IAgQPKo6QAHaRl3p+bD9M8wHQYDVR0OBBYEFEi3aOg8suaxEkRMxNfTmgtv6VrGMA4GA1UdDwEB/wQEAwIBBjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9yZXBvc2l0b3J5LmVtc2lnbi5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmVtc2lnbi5jb20wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5lbXNpZ24uY29tP1Jvb3RDQUMzLmNybDAKBggqhkjOPQQDAwNpADBmAjEA4rW0NYDpnpfRcmVfGS0SD5ilapt0hqCSJeE1OctiXrn22WtIIjOERmOUD3AHXYPiAjEA1wNB4UxxrucJVDiGcRCiskqSL+BnLAoomcPYC9ETImRiChgpdGzelBT14bB0HKXT" ], "serial": "E70OUpeY/X9kMpijUoAY", "issuer_spki_sha256": "UEYlLVSYKuv5nRGqAxngK1P6jpyy3oyLZGnFpQIPQFk=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1765364841274 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1765364841765 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1765364842539 } ] } }, { "ca_sha256_fingerprint": "BE4B56CB5056C0136A526DF444508DAA36A0B54F42E4AC38F72AF470E479654C", "ca_label": "TrustAsia Global Root CA G4", "test_website_revoked": "https://ev-eccg4-revoked.trustasia.com", "detail": { "end_entity_cert": "MIIFtDCCBTmgAwIBAgIUB59IA+s6iHmoWcVO44hsq3vDkx0wCgYIKoZIzj0EAwMwWTELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xIzAhBgNVBAMMGlRydXN0QXNpYSBFViBUTFMgRUNDIENBIEc0MB4XDTI2MDYwOTIwMDAwMFoXDTI2MDcyNDE5NTk1OVowggEQMR0wGwYDVQQPExRQcml2YXRlIE9yZ2FuaXphdGlvbjETMBEGCysGAQQBgjc8AgEDEwJDTjEZMBcGCysGAQQBgjc8AgECEwhTaGFuZ2hhaTEfMB0GCysGAQQBgjc8AgEBEw5YdWh1aSBEaXN0cmljdDEbMBkGA1UEBRMSOTEzMTAxMDQwNjYwNDMxOTM5MQswCQYDVQQGEwJDTjERMA8GA1UECBMIU2hhbmdoYWkxETAPBgNVBAcTCFNoYW5naGFpMSUwIwYDVQQKExxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMScwJQYDVQQDEx5ldi1lY2NnNC1yZXZva2VkLnRydXN0YXNpYS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQbpeL5MVtOl/D50hqssfglHIYLJA1lMOFgLtWKVJIlsAkE31OgO2OrDRYD7cpGXp64039zduPRtpw5KsKnn3b9o4IDJDCCAyAwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBTvRkOc6fQSHfEaGBloVx2Euq99GTCBkwYIKwYBBQUHAQEEgYYwgYMwQQYIKwYBBQUHMAKGNWh0dHA6Ly9pY2Eud3QudHJ1c3Rhc2lhLmNvbS9UcnVzdEFzaWFFVlRMU0VDQ0NBRzQuY3J0MD4GCCsGAQUFBzABhjJodHRwOi8vb2NzcC53dC50cnVzdGFzaWEuY29tL1RydXN0QXNpYUVWVExTRUNDQ0FHNDApBgNVHREEIjAggh5ldi1lY2NnNC1yZXZva2VkLnRydXN0YXNpYS5jb20wIQYDVR0gBBowGDAHBgVngQwBATANBgsrBgEEAYLbTgIBATATBgNVHSUEDDAKBggrBgEFBQcDATBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLnd0LnRydXN0YXNpYS5jb20vVHJ1c3RBc2lhRVZUTFNFQ0NDQUc0LmNybDAdBgNVHQ4EFgQUbDl/vg7Q48POFypV1NCKAPPAuZwwDgYDVR0PAQH/BAQDAgeAMIIBfQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdgAlt+/eoRMBk+2TB5dwqjIqJmIN41rIqnx1GX3gsangZQAAAZ6uS7C1AAAEAwBHMEUCIAX4YUp99TvpNuHTPcuwoS3q7/4SBzQqOf2byt1lpJr9AiEA7FglzIZhrwl20YSxm5lfpdbajlpPpdUurv5nq2kFVBoAdgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ6uS7FtAAAEAwBHMEUCIQCKzdSAsb21m/uqfCf98ZiOLhFpHafAS7otVkSssKNsMwIgScytADixcpsD8uNh3hda+5P77U5fbvegCSqP1gCvBaUAdQCvZ4g7V7BO3Y+m2X72LqjrgQrHcWDwJF5V1gwv54WHOgAAAZ6uS7PCAAAEAwBGMEQCIBlTo3Zssb4X1u1z2AvaYNMWTVbmZAT5+1nHxneR30dzAiAHLNKsYH43K5SRn/W4i+G/ed+r+v3tC6EkmfG0lEKEYTAKBggqhkjOPQQDAwNpADBmAjEAqLxmMPc9XOuEwO4wse4AfXc1zvCjmRVZvYBS3uOwWdOp/jdUmeAeNMRE/T8BDA9WAjEAi9KyGpYAha+00mwt6iFQYnuB0egkTJsl/j1GdbdBww9T/Aa7KRFd8LVhL/V5nI2m", "intermediates": [ "MIIDnzCCAyWgAwIBAgIUA0NI1fGVgFUQSUd24gQvAiVuKp4wCgYIKoZIzj0EAwMwWjELMAkGA1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwNTAwMDBaFw00MTA1MTkxMjAwMDBaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDDBpUcnVzdEFzaWEgRVYgVExTIEVDQyBDQSBHNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABEp4lHv5mEQZwY37awXPHr3823LItXL/Zzm3iJsGAuX9fauzWNzE1NAvS3PwWuTtvgldMcXFsh2fdFhaPp8Z9mWtQFjZd7ayPLh7EEzdgorn6YLYmBEa0yKYo8f1I2BehaOCAaswggGnMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wgZcGCCsGAQUFBwEBBIGKMIGHMEMGCCsGAQUFBzAChjdodHRwOi8vaWNhLnd0LnRydXN0YXNpYS5jb20vVHJ1c3RBc2lhR2xvYmFsUm9vdENBRzQuY3J0MEAGCCsGAQUFBzABhjRodHRwOi8vb2NzcC53dC50cnVzdGFzaWEuY29tL1RydXN0QXNpYUdsb2JhbFJvb3RDQUc0MD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwczovL3d3dy50cnVzdGFzaWEuY29tL0NQUzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwSAYDVR0fBEEwPzA9oDugOYY3aHR0cDovL2NybC53dC50cnVzdGFzaWEuY29tL1RydXN0QXNpYUdsb2JhbFJvb3RDQUc0LmNybDAdBgNVHQ4EFgQU70ZDnOn0Eh3xGhgZaFcdhLqvfRkwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMQDBsx2v4FafQkA4pxwLeIbQ8h5TNvffPKn6lsI1Qqz6vzM6TtxRVwGuYyZbN1lMgsgCMHigWwehpR+N8idUaOawuJTzvPIBeHtASN5MYGgRc8kzBGtFTrwR/Zu5fqe7hpHoKQ==" ], "serial": "B59IA+s6iHmoWcVO44hsq3vDkx0=", "issuer_spki_sha256": "8yE4+1OesI1v8JXzpSp47XLFwrJh2fEhVnsstmEf3Kg=", "scts": [ { "log_id": "Jbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GU=", "timestamp": 1781040656565 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1781040656749 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1781040657346 } ] } }, { "ca_sha256_fingerprint": "BEB00B30839B9BC32C32E4447905950641F26421B15ED089198B518AE2EA1B99", "ca_label": "e-Szigno Root CA 2017", "test_website_revoked": "https://eqtlsca2018-revoked.e-szigno.hu", "detail": { "end_entity_cert": "MIIHWDCCBv6gAwIBAgIOAxo8HDD+xZNJeKF4iQowCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEnMCUGA1UEAwweZS1Temlnbm8gUXVhbGlmaWVkIFRMUyBDQSAyMDE4MB4XDTI1MDkyNjExNDE1M1oXDTI2MDkyNjExNDE1Mlowga0xEzARBgsrBgEEAYI3PAIBAxMCSFUxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRUwEwYDVQQFEwwwMS0xMC0wNDcyMTgxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEoMCYGA1UEAwwfZXF0bHNjYTIwMTgtcmV2b2tlZC5lLXN6aWduby5odTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGNkW/yfdtx/Vd6eLE8c5VaANvML05iY+hketH0Xn4Z6XqilvxhjOdEz3ri9EpMIkZb5rPn8qFR2CJ5cRTmAYW+jggUyMIIFLjAOBgNVHQ8BAf8EBAMCA4gwggGABgorBgEEAdZ5AgQCBIIBcASCAWwBagB3AHTbnVj31H6d/Xh6FiqZHBjPaY2nxymRjJoYsEUNukS8AAABmYXUzgIAAAQDAEgwRgIhAKehv9cy2Vihq1q14cS6nK49j4/L0Di6xIm3DgMdWzsJAiEAt0gSceuhZArpdk0IaqlDvzjavqWbmy/ya6QmI0Tb10QAdwDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZmF1ONcAAAEAwBIMEYCIQCkybVon546AlwVxY/r5DJMThzG67wmVEm79gWAbMaSRQIhANh9dMAuHC//NsAag3rWvjMaN2RHJz+fHwPNZEXsskpwAHYAyzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOcAAAGZhdTlEwAABAMARzBFAiBZGkkUI57QrbFVZ9KnXobj2TWj+2CYLqLm4oCsW0c0iQIhAM2YR+QE8L9TTW4pYAoPbo/yPF99FotYOEbjXolfNXGOMBMGA1UdJQQMMAoGCCsGAQUFBwMBMFgGA1UdIARRME8wBwYFZ4EMAQEwCQYHBACL7EABBDA5Bg0rBgEEAYGoGAIBAYEqMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcC5lLXN6aWduby5odS9xY3BzMB0GA1UdDgQWBBTeGzw4/vqy4nDY6lWX/HgR2lrw7zAfBgNVHSMEGDAWgBTZjRi4rCO2O4wXyetuuRcAaQ2gjDAqBgNVHREEIzAhgh9lcXRsc2NhMjAxOC1yZXZva2VkLmUtc3ppZ25vLmh1MIG8BgNVHR8EgbQwgbEwOaA3oDWGM2h0dHA6Ly9lcXRsc2NhMjAxOC1jcmwxLmUtc3ppZ25vLmh1L2VxdGxzY2EyMDE4LmNybDA5oDegNYYzaHR0cDovL2VxdGxzY2EyMDE4LWNybDIuZS1zemlnbm8uaHUvZXF0bHNjYTIwMTguY3JsMDmgN6A1hjNodHRwOi8vZXF0bHNjYTIwMTgtY3JsMy5lLXN6aWduby5odS9lcXRsc2NhMjAxOC5jcmwwggFoBggrBgEFBQcBAQSCAVowggFWMDAGCCsGAQUFBzABhiRodHRwOi8vZXF0bHNjYTIwMTgtb2NzcDEuZS1zemlnbm8uaHUwMAYIKwYBBQUHMAGGJGh0dHA6Ly9lcXRsc2NhMjAxOC1vY3NwMi5lLXN6aWduby5odTAwBggrBgEFBQcwAYYkaHR0cDovL2VxdGxzY2EyMDE4LW9jc3AzLmUtc3ppZ25vLmh1MD4GCCsGAQUFBzAChjJodHRwOi8vZXF0bHNjYTIwMTgtY2ExLmUtc3ppZ25vLmh1L2VxdGxzY2EyMDE4LmNydDA+BggrBgEFBQcwAoYyaHR0cDovL2VxdGxzY2EyMDE4LWNhMi5lLXN6aWduby5odS9lcXRsc2NhMjAxOC5jcnQwPgYIKwYBBQUHMAKGMmh0dHA6Ly9lcXRsc2NhMjAxOC1jYTMuZS1zemlnbm8uaHUvZXF0bHNjYTIwMTguY3J0MIGRBggrBgEFBQcBAwSBhDCBgTAIBgYEAI5GAQEwCwYGBACORgEDAgEKMFMGBgQAjkYBBTBJMCQWHmh0dHBzOi8vY3AuZS1zemlnbm8uaHUvcWNwc19lbhMCZW4wIRYbaHR0cHM6Ly9jcC5lLXN6aWduby5odS9xY3BzEwJodTATBgYEAI5GAQYwCQYHBACORgEGAzAKBggqhkjOPQQDAgNIADBFAiAMPeFjJuBGBocPSictwbT/W7nbTOBt40ViS9qjHxI74AIhAPyU8Hu6/FCBatJWGw5QJPPB0e9kDLWx/4fmVq9GYpum", "intermediates": [ "MIIEpzCCBEygAwIBAgINALfzPrd462McvnyACjAKBggqhkjOPQQDAjBxMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xFzAVBgNVBGEMDlZBVEhVLTIzNTg0NDk3MR4wHAYDVQQDDBVlLVN6aWdubyBSb290IENBIDIwMTcwHhcNMTgwNzMxMDkwMDAwWhcNNDIwODIyMDkwMDAwWjB6MQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xFzAVBgNVBGEMDlZBVEhVLTIzNTg0NDk3MScwJQYDVQQDDB5lLVN6aWdubyBRdWFsaWZpZWQgVExTIENBIDIwMTgwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASgco960wV76MEdWtug1L/YHhkrZqorU/aHRUrHy/bW+MwlYCE+SiUk3KK6r/V/YAwMz+zqGOLeq1iB9osx34aso4ICvjCCArowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcC5lLXN6aWduby5odS9hY3BzMB0GA1UdDgQWBBTZjRi4rCO2O4wXyetuuRcAaQ2gjDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDCBtgYDVR0fBIGuMIGrMDegNaAzhjFodHRwOi8vcm9vdGNhMjAxNy1jcmwxLmUtc3ppZ25vLmh1L3Jvb3RjYTIwMTcuY3JsMDegNaAzhjFodHRwOi8vcm9vdGNhMjAxNy1jcmwyLmUtc3ppZ25vLmh1L3Jvb3RjYTIwMTcuY3JsMDegNaAzhjFodHRwOi8vcm9vdGNhMjAxNy1jcmwzLmUtc3ppZ25vLmh1L3Jvb3RjYTIwMTcuY3JsMIIBXwYIKwYBBQUHAQEEggFRMIIBTTAvBggrBgEFBQcwAYYjaHR0cDovL3Jvb3RjYTIwMTctb2NzcDEuZS1zemlnbm8uaHUwLwYIKwYBBQUHMAGGI2h0dHA6Ly9yb290Y2EyMDE3LW9jc3AyLmUtc3ppZ25vLmh1MC8GCCsGAQUFBzABhiNodHRwOi8vcm9vdGNhMjAxNy1vY3NwMy5lLXN6aWduby5odTA8BggrBgEFBQcwAoYwaHR0cDovL3Jvb3RjYTIwMTctY2ExLmUtc3ppZ25vLmh1L3Jvb3RjYTIwMTcuY3J0MDwGCCsGAQUFBzAChjBodHRwOi8vcm9vdGNhMjAxNy1jYTIuZS1zemlnbm8uaHUvcm9vdGNhMjAxNy5jcnQwPAYIKwYBBQUHMAKGMGh0dHA6Ly9yb290Y2EyMDE3LWNhMy5lLXN6aWduby5odS9yb290Y2EyMDE3LmNydDAKBggqhkjOPQQDAgNJADBGAiEAj8YMiPO+G04YDF/K4z0t6b+lZDH9kgBwJF5TWvQZoagCIQCy1mnuRaH3DnZw7SjejdGQKCIRuWB6o0gC8aPza8yhsg==", "MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtvxie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+HWyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arBeAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61NlojbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ+efcMQ==" ], "serial": "Axo8HDD+xZNJeKF4iQo=", "issuer_spki_sha256": "qd9EIyfp7CEtbkxafeyYAuC/8wQBWqGZflkLznwnuyc=", "scts": [ { "log_id": "dNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLw=", "timestamp": 1758886940162 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758886945628 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1758886946067 } ] } }, { "ca_sha256_fingerprint": "BFD88FE1101C41AE3E801BF8BE56350EE9BAD1A6B9BD515EDC5C6D5B8711AC44", "ca_label": "TWCA Root Certification Authority", "test_website_revoked": "https://evssldemo4.twca.com.tw/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "R+oAAAASXOQscfwjDe2gWA==", "issuer_spki_sha256": "3sXbPfqhHfn3hza4ob3X6iuMjfN9qdgOhBAC5GOp+TY=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1773132912391 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1773132912418 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1773132912476 } ] } }, { "ca_sha256_fingerprint": "BFFF8FD04433487D6A8AA60C1A29767A9FC2BBB05E420F713A13B992891D3893", "ca_label": "GDCA TrustAUTH R5 ROOT", "test_website_revoked": "https://ev-ssl-test-2.95105813.cn/", "detail": { "end_entity_cert": "MIIHUzCCBjugAwIBAgIQWGfoDj7dUZozoEmPz0vOLzANBgkqhkiG9w0BAQsFADBvMQswCQYDVQQGEwJDTjE5MDcGA1UECgwwR2xvYmFsIERpZ2l0YWwgQ3liZXJzZWN1cml0eSBBdXRob3JpdHkgQ28uLCBMdGQuMSUwIwYDVQQDDBxHRENBIFRydXN0QVVUSCBSNCBFViBTU0wgQ0EyMB4XDTI2MDYwNDA4NDYxMVoXDTI2MTIxOTA4NDYxMVowggERMRMwEQYLKwYBBAGCNzwCAQMTAkNOMRowGAYLKwYBBAGCNzwCAQIMCeW5v+S4nOecgTEaMBgGCysGAQQBgjc8AgEBDAnkvZvlsbHluIIxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRswGQYDVQQFExI5MTQ0MDYwMDc0NzA5ODk1OEgxCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnlub/kuJznnIExEjAQBgNVBAcMCeS9m+WxseW4gjEtMCsGA1UECgwk5pWw5a6J5pe25Luj56eR5oqA6IKh5Lu95pyJ6ZmQ5YWs5Y+4MSIwIAYDVQQDDBlldi1zc2wtdGVzdC0yLjk1MTA1ODEzLmNuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9KgaNUrjg/ZYk6uqppHQENWI7HZzA8tJIj8W7sZxiybKhmM6guWpcSzYl6A7KIKGNN4JXK+7vBCixWMKqaEM6rddSF1jXXP46RtMsxQmX9KKLg81oWFCBbBN/O+R2yTtaoEUBieaA0PhFjmV4j11RZQx5p+SuFoAz0JJk4ygIJC3z9Os1uVGYbHZCoJTkJJHzYxWojO54FksNIYN3iLo91BhMtjmjOp1b8eVWv22Sq0vFZVoWStrjNwc1ZyopjRZuZEASW/lbweoUxQjHBTt7KNgm5H7sCSwU8he6X4cW5fmS/0RbcGxbekBUWt9VIkis2r+TlR71FS82VPp4QaSuQIDAQABo4IDRTCCA0EwgYMGCCsGAQUFBwEBBHcwdTBIBggrBgEFBQcwAoY8aHR0cDovL3d3dy5nZGNhLmNvbS5jbi9jZXJ0L0dEQ0FfVHJ1c3RBVVRIX1I0X0VWX1NTTF9DQTIuZGVyMCkGCCsGAQUFBzABhh1odHRwOi8vb2NzcDIuZ2RjYS5jb20uY24vb2NzcDAdBgNVHQ4EFgQUuV8do11FuRAoZyKKz18HCb84SdUwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQzmIxYQCzbpQZTXJGqxyFXvGqANTBRBgNVHSAESjBIMAcGBWeBDAEBMD0GCiqBHIbvLwEBBgEwLzAtBggrBgEFBQcCARYhaHR0cDovL3d3dy5nZGNhLmNvbS5jbi9jcHMvZXYtY3BzMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwuZ2RjYS5jb20uY24vY3JsL0dEQ0FfVHJ1c3RBVVRIX1I0X0VWX1NTTF9DQTIuY3JsMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAkBgNVHREEHTAbghlldi1zc2wtdGVzdC0yLjk1MTA1ODEzLmNuMIIBfQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdQDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ6Rz8C1AAAEAwBGMEQCIE2ZSAiecZd1SK8ARxu9zQPd6ZEUNHYm6z8ONvPdOAY8AiBJl0aSmOkHKvG5TmU9VVxufhIPx4EBTOQvZ4/sLoX26gB2AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABnpHPzdEAAAQDAEcwRQIhAOr05CYXKPuVGprLSA/k7uI/yTA65qda/ZyBe3ik/33eAiBxbU95h7YuRhUH61mh/BpJM+Ka3q9W0VXG05Vz9xsGogB2AMIxfldFGaNF7n843rKQQevHwiFaIr9/1bWtdprZDlLNAAABnpHPzj0AAAQDAEcwRQIgD8YBu6PD3B2EIlElx5KzRgDf55c60ICHGDCGWqYQwrMCIQD42023cvVVkrFii0zclcWxRafGEIURKN30csPnzrJTVDANBgkqhkiG9w0BAQsFAAOCAQEAUz+AUCECtuSV1vg2EpZMRgwgbxEyCYyveUtnZK/kY4Laufz8/D+uulvEi08zi4gv+LDyha+jpGo2RPXwGpfldvq+wqyvNa/X6QpmxZDPIbeQlmOixfhaJSoG+SSQ3JYYP1a2vJcGgigg8M2tpU+S3GAiwzM9oJviZ+ew69kV8DGYObeh40r1EqQKV2TD4iKAIxhSQj174zV4ef3ebHqLu24YntC9qBvbY6ekTWABKlnRhmkx52TIB1UwaiugSxWZVDvC0PUd9Xg1U43Z8ZcKOKp/fn0I0C8dvW6gMpqfF8swaq1RYSPF51gp/js2dKFPVQE0nzXcJSXa7gf5t/m2NA==", "intermediates": [ "MIIFtDCCA5ygAwIBAgIQV5TwQ1A2w1TgGg6wfy6LvTANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpR1VBTkcgRE9ORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkgQ08uLExURC4xHzAdBgNVBAMMFkdEQ0EgVHJ1c3RBVVRIIFI1IFJPT1QwHhcNMjYwMjI1MDYwMjE5WhcNMzYxMjMwMTYwMDAwWjBvMQswCQYDVQQGEwJDTjE5MDcGA1UECgwwR2xvYmFsIERpZ2l0YWwgQ3liZXJzZWN1cml0eSBBdXRob3JpdHkgQ28uLCBMdGQuMSUwIwYDVQQDDBxHRENBIFRydXN0QVVUSCBSNCBFViBTU0wgQ0EyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwKGH9b7HNN8I3TLh/fTGuyN8QwRixvemuPcwGduITZCOoPzWUIqM4Zvh9LXalT7pOUrprudL39Dwc4dzBqdd7lNtwt2X6rFy//HHjwuF0EPpebXMLSSAmW2UgoatgqUowCr9Sswv3gA3EFwORLgbKvo+EHbSTbSzTt3XHsuFxVw+oih14FqcFeaP+1m3vUDz3vTYQtFcwicVdfhtMQ22TkBcpuSThIcvgCQWmd5/MDAawlRPFu1edahmFE5uwIr+FAc2A+l3BKsgGZKRWarv2TqyQVoDH0WzBo4UAq1iSgAucuAU2m7uzQmmopFS2/rMt/YYBWAHS6Xga68CEoC1DQIDAQABo4IBVzCCAVMwfQYIKwYBBQUHAQEEcTBvMEIGCCsGAQUFBzAChjZodHRwOi8vd3d3LmdkY2EuY29tLmNuL2NlcnQvR0RDQV9UcnVzdEFVVEhfUjVfUk9PVC5kZXIwKQYIKwYBBQUHMAGGHWh0dHA6Ly9vY3NwMi5nZGNhLmNvbS5jbi9vY3NwMB0GA1UdDgQWBBQzmIxYQCzbpQZTXJGqxyFXvGqANTASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFOLJQJ9NzuiaoXzPDj9lxSmIahlRMBEGA1UdIAQKMAgwBgYEVR0gADBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLmdkY2EuY29tLmNuL2NybC9HRENBX1RydXN0QVVUSF9SNV9ST09ULmNybDAOBgNVHQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggIBAJcd+nh8QI+ZnYZuo8GjbE2+1L5sdEWzXRRBTcDqRKn+hc+GLe4tCgpzz26rGA6BV0pkk+gSIM5QojwezyZLFNxGZT9MHlUjvh+vOpN1dym5bgvoJJ4JIgfrkRINV/FKYw1RBF+rWySfPsxoJZRnmyPflsAOR/afKJ4HaEQCwEM/I3SwU5kevUZC6X5NUo7BBL9T7VKgGVzmOabMKCpGXntjt0j5pK3OSguNmNYsyqx5DqpeJ+NxoYRfM9jvkcHsJv9KRfCPpmKlYxo95pOYRV1ndNhKEUanZsWIkvPD3vqV2neMF1vJIG/kT/W9iOLRg3zXGBoSThk5nVp9qjrhXsuayJ18mHuuWYG4iFqKGKvlF+oDS4C37NBwmMLZfPaNSEGmFnWPWykNEBqo2P7mszfGaGOMjM2xA0TW8rFWowawOUAixrCM9caKWzBoResuHGxz9Ww5PASxKXX9JrxdzEwL1y3B4AZqp2Jnq/N04jQ2Zbv+ogMUsNhjO/oyjJ4/asnSwORA+9aRI554QfEVAj32INznKXg/1r5xOU1wti3x/Qpha4nUPi2nwiFkI5WkdjO1lfQTeIi/3fRK4QqQg7kfdv5okYKXJvUS8ExUiPyOZAHqPZkUxceE+gz5IMctsfRrC/OXUvgwlHhZrKdoFsCS+uNDxGAIZcYUciVCMb/o" ], "serial": "WGfoDj7dUZozoEmPz0vOLw==", "issuer_spki_sha256": "kBJcqqIaBGWVEKNjZF2uTYqwmmwbsHP162iQT/SCFXU=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1780562772149 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1780562775505 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1780562775613 } ] } }, { "ca_sha256_fingerprint": "C0076B9EF0531FB1A656D67C4EBE97CD5DBAA41EF44598ACC2489878C92D8711", "ca_label": "TrustAsia TLS ECC Root CA", "test_website_revoked": "https://ev-ecctls-revoked.trustasia.com", "detail": { "end_entity_cert": "MIIFxTCCBUygAwIBAgIUNZD0KPD3H5L5q79iUEaXkefwkC8wCgYIKoZIzj0EAwMwXjELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xKDAmBgNVBAMTH1RydXN0QXNpYSBFViBUTFMgRUNDIENBIDIwMjQgVjIwHhcNMjYwNjIyMjEwMDAwWhcNMjYwODA2MjA1OTU5WjCCARExHTAbBgNVBA8TFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYBBAGCNzwCAQMTAkNOMRkwFwYLKwYBBAGCNzwCAQITCFNoYW5naGFpMR8wHQYLKwYBBAGCNzwCAQETDlh1aHVpIERpc3RyaWN0MRswGQYDVQQFExI5MTMxMDEwNDA2NjA0MzE5MzkxCzAJBgNVBAYTAkNOMREwDwYDVQQIEwhTaGFuZ2hhaTERMA8GA1UEBxMIU2hhbmdoYWkxJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xKDAmBgNVBAMTH2V2LWVjY3Rscy1yZXZva2VkLnRydXN0YXNpYS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASYdFi5TxNzjLxkss9BctYDIf+jfU0+SJ3c6GjMvq+uad6P0Jnov5UKErv3Qw1/fWGbPZoM+Fb9uSalAyBxrQfdo4IDMTCCAy0wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSOjss18YFYqiAtzsM2FooQEThZxzCBmwYIKwYBBQUHAQEEgY4wgYswRQYIKwYBBQUHMAKGOWh0dHA6Ly9pY2Eud3QudHJ1c3Rhc2lhLmNvbS9UcnVzdEFzaWFFVlRMU0VDQ0NBMjAyNFYyLmNydDBCBggrBgEFBQcwAYY2aHR0cDovL29jc3Aud3QudHJ1c3Rhc2lhLmNvbS9UcnVzdEFzaWFFVlRMU0VDQ0NBMjAyNFYyMCoGA1UdEQQjMCGCH2V2LWVjY3Rscy1yZXZva2VkLnRydXN0YXNpYS5jb20wIQYDVR0gBBowGDAHBgVngQwBATANBgsrBgEEAYLbTgIBATATBgNVHSUEDDAKBggrBgEFBQcDATBKBgNVHR8EQzBBMD+gPaA7hjlodHRwOi8vY3JsLnd0LnRydXN0YXNpYS5jb20vVHJ1c3RBc2lhRVZUTFNFQ0NDQTIwMjRWMi5jcmwwHQYDVR0OBBYEFGmWwsDUJ2MiQu+OIElOTMLZ38lAMA4GA1UdDwEB/wQEAwIHgDCCAX0GCisGAQQB1nkCBAIEggFtBIIBaQFnAHYAJbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GUAAAGe8VnRDQAABAMARzBFAiAvXUhgfWqWKGqj0t3Th/fm7E18RwGi8XZmUwOHH9QqjwIhAIIjKxi+ljMSMH9r4Tr3iBSF3obXs4AvQHTrQ5MGujmVAHYA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGe8VnUAAAABAMARzBFAiAIQcKvM0oOothoiSfGpByrzSURNy5PD3IRexI/vrFW+QIhAKtdW7VGcpwueBVFjDbMYMQz8Rb0xO0KTF2uvgSIUsvCAHUAr2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzoAAAGe8VnRqQAABAMARjBEAiA3BDSgn0gme5TDDJqjXYFlWvW7kieqhNae+nXp7uS6qAIgRClnDI0G9kYnkNsmCVsuNo6YfgBZVDJTYJihF+y+hRgwCgYIKoZIzj0EAwMDZwAwZAIwKpCqTQqLYtuDxM5mvRTk5iRBBcyesozIR8wrF4Hnr0BfN2Vv7A4JxJvd9TJ2YwnoAjAwjROR1e2ibFOoOlWBbkT111r/R+fiEL4xucevHN0lN600pPzjO4Wv8ChcomijqVk=", "intermediates": [ "MIIDgDCCAwWgAwIBAgIUPuKeA2FjGXffo4EHYhvVcv+ni0gwCgYIKoZIzj0EAwMwWDELMAkGA1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xIjAgBgNVBAMTGVRydXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQwNzE4MDIxNDU0WhcNMzQwNzE4MDIxNDUzWjBeMQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEoMCYGA1UEAxMfVHJ1c3RBc2lhIEVWIFRMUyBFQ0MgQ0EgMjAyNCBWMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEETkUgATp8pXasjCOlkiZraqZYN8iFauyBYcAKVwp2pNwzJAEFYEWIDIjY45ogcwhB7uIeuTXKLPLY/liGbgqEhhyBTWJfu56WCFL93TNTuCUjcRf/PpO+i8dn3I94usKOCAYgwggGEMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAULIVTu7FDzTLqnqOH/qKYqKaT6RAwgZMGCCsGAQUFBwEBBIGGMIGDMEEGCCsGAQUFBzAChjVodHRwOi8vaWNhLnd0LnRydXN0YXNpYS5jb20vVHJ1c3RBc2lhVExTRUNDUm9vdENBLmNydDA+BggrBgEFBQcwAYYyaHR0cDovL29jc3Aud3QudHJ1c3Rhc2lhLmNvbS9UcnVzdEFzaWFUTFNFQ0NSb290Q0EwIQYDVR0gBBowGDAHBgVngQwBATANBgsrBgEEAYLbTgIBATAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NybC53dC50cnVzdGFzaWEuY29tL1RydXN0QXNpYVRMU0VDQ1Jvb3RDQS5jcmwwHQYDVR0OBBYEFI6OyzXxgViqIC3OwzYWihAROFnHMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAwNpADBmAjEAumjYIdG2VBbnSljzHaLL8zG5zNpHtHrI6WOVEkN9XHI4q4TVwlYP9Lr1dur8n+quAjEA1rY1E5bvmdEDOCIq6rynSj+TOD2rIJtPJO6TtA8MgzuqLmq3kM2C6/9aiGTGOcz3" ], "serial": "NZD0KPD3H5L5q79iUEaXkefwkC8=", "issuer_spki_sha256": "7U61eZ4xMG3x6qHpfWYVmKJWTdiaYVIULIx0M/RG3a4=", "scts": [ { "log_id": "Jbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GU=", "timestamp": 1782165655821 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782165656576 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782165655977 } ] } }, { "ca_sha256_fingerprint": "C32FFD9F46F936D16C3673990959434B9AD60AAFBB9E7CF33654F144CC1BA143", "ca_label": "SSL.com TLS ECC Root CA 2022", "test_website_revoked": "https://revoked-root-2022-ecc.ssl.com", "detail": { "end_entity_cert": "MIIErDCCBDKgAwIBAgIQI5jnyq4QL6zHpmymLb1GSTAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSYwJAYDVQQDDB1TU0wuY29tIFRMUyBJc3N1aW5nIEVDQyBDQSBSMjAeFw0yNTEwMDIxNjU1MzZaFw0yNjEwMDIxNjU1MzZaMCgxJjAkBgNVBAMMHXJldm9rZWQtcm9vdC0yMDIyLWVjYy5zc2wuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFyiUstMvIiWCMrFcxN9IRSUHwZ9jcibLsFaid8RBG7ZNP8+HALoTzFZ2D5AMwdcwboIXNEIfCo8mKcBTEKlC2qOCAxUwggMRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUTrlSWrGPftYwU0Plyl2iBIxMFPQwagYIKwYBBQUHAQEEXjBcMDgGCCsGAQUFBzAChixodHRwOi8vY2VydC5zc2wuY29tL1NTTC5jb20tVExTLUktRUNDLVIyLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3BzLnNzbC5jb20wSwYDVR0RBEQwQoIdcmV2b2tlZC1yb290LTIwMjItZWNjLnNzbC5jb22CIXd3dy5yZXZva2VkLXJvb3QtMjAyMi1lY2Muc3NsLmNvbTAjBgNVHSAEHDAaMAgGBmeBDAECATAOBgwrBgEEAYKpMAEDAQEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybHMuc3NsLmNvbS9TU0wuY29tLVRMUy1JLUVDQy1SMi5jcmwwHQYDVR0OBBYEFFEzkajbvz7gwDn+bNy18KkY7u5HMA4GA1UdDwEB/wQEAwIHgDCCAX0GCisGAQQB1nkCBAIEggFtBIIBaQFnAHUAwjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0AAAGZpeLyHQAABAMARjBEAiAo44LsldTF1tCWrsmTl1tgw5OI4/ZdjkFxFUv6ru8vxwIgcqpxd8yLHd2EBsPcIbcF3gA9fxAzIJQbiBlX9tvbDNkAdgCUTkOH+uzB74HzGSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZml4vIVAAAEAwBHMEUCIEitWHbR4HWsu/Yy9cXCnviYp7WWk4pN15WGCUsrxnmDAiEAvRCCAqHyq7zhnTXSq2pI66gAs45uEjEx4oBUGQh1FIAAdgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZml4vIeAAAEAwBHMEUCIQCx8NX/ndX1yPj4/mFKgOpOT5ixi5SlB0YDsLPWZ6shgwIgN6OxjvxZsstHGptcY75fNoROgNvqcVBXlGx1+gV4rJUwCgYIKoZIzj0EAwMDaAAwZQIxAK5MTA8Nwsyka/lYTn3YeeljBo8TBAD/cW+oUumhEvnncW8c+V/+jxqPdesaF2KtAQIwZTGSj7O4pUcBm1ueyt9FmrSYVGi/U4bd7GJ/VkKehZP/rJq/dyr/wgY92Gk3iGxd", "intermediates": [ "MIIDMjCCArmgAwIBAgIQXXRDuZTTIfJn8gTxhErHMjAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMTAyMTE3MDE0NloXDTMyMTAxODE3MDE0NVowTzELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjEmMCQGA1UEAwwdU1NMLmNvbSBUTFMgSXNzdWluZyBFQ0MgQ0EgUjIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATW47D5Jj9R0bn6C9WsOHGBS8DYaqCkMWxUiekwmabE+rDw7gGw4vRhyj/MFuC+qO4fj3zn6CKTaynRLe7hFUfc2/Fnql2gPOO2na5qRxcAt45CH4r36BYtDsEuaKMMMbWjggFZMIIBVTASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFImPL6PoK6AUVHvzVrgmX2c4C5zQMEwGCCsGAQUFBwEBBEAwPjA8BggrBgEFBQcwAoYwaHR0cDovL2NlcnQuc3NsLmNvbS9TU0xjb20tVExTLVJvb3QtMjAyMi1FQ0MuY2VyMD8GA1UdIAQ4MDYwNAYEVR0gADAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5zc2wuY29tL3JlcG9zaXRvcnkwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly9jcmxzLnNzbC5jb20vU1NMY29tLVRMUy1Sb290LTIwMjItRUNDLmNybDAdBgNVHQ4EFgQUTrlSWrGPftYwU0Plyl2iBIxMFPQwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMHVinPKrbaBpWlm+p/Geb1d2b+E97rrzMS2OBv0ubUsAYHjyKnncnNfenNdQWF4YAQIwcKGifQ4alo9dEuJvkhGrazPmEE3scNd+EKvX5v9LuIzO6sbFuMOpCptD9M3cjzDM", "MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3QgQ0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWyJGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v15wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR781a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5Zn6g6g==" ], "serial": "I5jnyq4QL6zHpmymLb1GSQ==", "issuer_spki_sha256": "NPRrBk96t64vay83a8Kf7kLV8Vmdi/17Qgpes328/Pk=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1759424737821 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1759424737813 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1759424737822 } ] } }, { "ca_sha256_fingerprint": "C741F70F4B2A8D88BF2E71C14122EF53EF10EBA0CFA5E64CFA20F418853073E0", "ca_label": "Microsoft RSA Root Certificate Authority 2017", "test_website_revoked": "https://rvkrsaroot2017.pki.microsoft.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFjTCCBHWgAwIBAgIQAaZld+J1VXXU7dpfBudB0TANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0yNTA5MTcwMDAwMDBaFw0yOTA0MTUyMzU5NTlaMFIxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUTFMgRzEgUlNBIENBIDAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv2NLmjl9oTEoWoYii6eM2VrS13cclL53Lwm/bejprSv0jWXw1tbF3TRJ+7bgwfrNDFFV1tOhMonG6iOUB2LqYa9uWZ9lz9+SrCuDnw7NVLqURyh5bSE+FwtDh1MV0ZweK3ZefhmajMJVNoewCKJw/OAzhVUnyJzGa+D88WB6ZfmQEeY7Vvo05+c7ZKncOx2JRu3w+fp2D1EotrKVUOQXUKsXVHqDqPYFQIgxA/FQd/FS8B4OPsKCt+QLEiO+4q7KHw7az2VSMSIh9NXnvU43yKfNoCroinJCbs7jxF/Id8hNt602sq3Jxzuaj8/4mTuFkejs6TXhmUxg6wqtRKjkjsjWhXhLrNL5gUAl9+2IzJm92cnp42nAv4AukAc37t8FlxCBqTCZPnFIgIgg4m4xzwAfTwbinJKS9vH8YLGizGtq2/b0ro9r+ygVIB1iz0WhUM4hMcU4XyZrUfkt1niyd5D7icDdH+Y6a+j0a2sxxYV12clip+SG7lkHhi/TU9VQ8vherLq1QcBDDBtjvMiu3M8Kzyf1GTRnHiiCzHA/sG7JODs1UvABhdp1+DwHXI8S2whkyCa6ufqcawoXOMAiUGKKeYkd0I3KVuQxUURXbgKOHj67U3KMBo93M26V7YTvJu04SqeN8eTQzwafdDgu5UkzNcWHpESsmZ0A4/q71t8CAwEAAaOCAU4wggFKMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFCC78hmOpMZytKrJBEFvVZqmnz0PMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNydDBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290RzIuY3JsMBMGA1UdIAQMMAowCAYGZ4EMAQICMA0GCSqGSIb3DQEBDAUAA4IBAQBqlVytPavHnJ2gm4KZJ5rcbaorJ+twhSmMbOQ8VnZte52gRMLpJz9EzIQqvkfqG+ZtmmKDkMqPquBPbi9EpnL6CL5+FaORHutRRTSZEN5a6QUT3IPwSU5wxNoLQcYu4LCqNsjFl1cy1mr+BUwBov+1tniOVnfAboUKvCodkJFaFQrJW8WgMPvf1fS5iX4rU36hubw0vRZhw4g+DsiR8gd9UXER5GLS9JGBoTNbfl0Nn8/diLRiJ9ACUq7F2jy8SwU9Uh5e+hBH9SSDVx0RV6n5jDo/1XIZHW1nk5CxcUqEZ04sz72FVH6TjsiWMC+S7BPcxHxZIolIjSSap9UMZKtR" ], "serial": "EQAABp+VZDp1bVkZsAAAAAAGnw==", "issuer_spki_sha256": "FZ9pybbuyn9HhpGR1NPthWsnzkVhQmQzQLyshe2YYQI=", "scts": [ { "log_id": "RqI5Z8YNtkaHxm89+ZmUdpOmphEghFfVVefj0KHZtkY=", "timestamp": 1781910035109 }, { "log_id": "YEyar3p/d18B1Ab8kg3ImesLHH34yVIb+voXdzuXi8k=", "timestamp": 1781910035182 }, { "log_id": "ABpdGhwtk3W2SFV4+C9xoa5u7zl9KXyK4xV7yt7hoB4=", "timestamp": 1781910034939 } ] } }, { "ca_sha256_fingerprint": "C90F26F0FB1B4018B22227519B5CA2B53E2CA5B3BE5CF18EFE1BEF47380C5383", "ca_label": "Sectigo Public Server Authentication Root E46", "test_website_revoked": "https://sectigopublicserverauthenticationroote46-ev.sectigo.com:444/", "detail": { "end_entity_cert": "MIIF0DCCBXegAwIBAgIQC6fNUTtjynAHcakn4YMOhzAKBggqhkjOPQQDAjBgMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRVYgRTM2MB4XDTI2MDQxMzAwMDAwMFoXDTI2MTAyODIzNTk1OVowgcUxETAPBgNVBAUTCDA0MDU4NjkwMRMwEQYLKwYBBAGCNzwCAQMTAkdCMR0wGwYDVQQPExRQcml2YXRlIE9yZ2FuaXphdGlvbjELMAkGA1UEBhMCR0IxEzARBgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDFAMD4GA1UEAxM3c2VjdGlnb3B1YmxpY3NlcnZlcmF1dGhlbnRpY2F0aW9ucm9vdGU0Ni1ldi5zZWN0aWdvLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABIreR7lbzpKwdNkk2dhmvRL/jndHOM7rJmGkxgQ+jcQ+2E+Mvaxgt7Nu3R8Pry4h6QOfrtrDKDHGYbVUVUp74NWjggOrMIIDpzAfBgNVHSMEGDAWgBTicWbHOuUGtl2bQQoVai3FseY3dDAdBgNVHQ4EFgQUm+tYOHhsziIDGGBWBDbJsOQ+oV4wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwSQYDVR0gBEIwQDA1BgwrBgEEAbIxAQIBBQEwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwBwYFZ4EMAQEwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljU2VydmVyQXV0aGVudGljYXRpb25DQUVWRTM2LmNybDCBhAYIKwYBBQUHAQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvbkNBRVZFMzYuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTB/BgNVHREEeDB2gjdzZWN0aWdvcHVibGljc2VydmVyYXV0aGVudGljYXRpb25yb290ZTQ2LWV2LnNlY3RpZ28uY29tgjt3d3cuc2VjdGlnb3B1YmxpY3NlcnZlcmF1dGhlbnRpY2F0aW9ucm9vdGU0Ni1ldi5zZWN0aWdvLmNvbTCCAYcGCisGAQQB1nkCBAIEggF3BIIBcwFxAHYA2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQAAAGdhvtt+AAABAMARzBFAiAkiihO6JUTOesTX5gmf+YX3ChpYI6/baIVMP6QreUJ6wIhAO7dBZb9muDva6Sx1HtRN6Iq3eMXMoHrFioXhzL+/9U/AHcAyKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5oAAAGdhvtusAAABAMASDBGAiEAiwxwiTepzIhk8yQtH/3CfoO3DB/DYWstDBpa8xKvTlsCIQDmmwpC5GcbNW39F/cGp7fg6H3ruqkKlQ0wljycZ0qtuwB+AGz+UBlDqF6pFrxS0TPk3Mke8UEcfSWEINFzgJ4YGOs6AAABnYb7bwcACAAABQAHBbX+BAMARzBFAiEArTACDOcqix3mKXhKuctbmN2EuRhxthlhvgaGMlrvQgACIB1bPKO1yRhMdQsAc03QaZZ5iYTB5YbZTofPGGAV9Fh7MAoGCCqGSM49BAMCA0cAMEQCIHsvo39QgEz3iYgwAEIoDwIqH+4pypBjyKcLgsUwtNCYAiAW2ZnqT2zFNfIFM3McOfqLwpEy8Dlmwun5yIlSLS+/Ew==", "intermediates": [ "MIIDXjCCAuWgAwIBAgIQdfCDfT4iwr52uKvBJaBGbDAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRVYgRTM2MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIclecB70mupDsxx5Q+pE94vB8/gMU8oIh9y7pEQ6c0QxbPhINFQ//AaiQBw60d9K1wMMhqy/QRkJy8MiywuslaOCAYAwggF8MB8GA1UdIwQYMBaAFNEi2kxZ8UtfJjiqndbu6w3D+6lhMB0GA1UdDgQWBBTicWbHOuUGtl2bQQoVai3FseY3dDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGgYDVR0gBBMwETAGBgRVHSAAMAcGBWeBDAEBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY1NlcnZlckF1dGhlbnRpY2F0aW9uUm9vdEU0Ni5jcmwwgYQGCCsGAQUFBwEBBHgwdjBPBggrBgEFBQcwAoZDaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290RTQ2LnA3YzAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wCgYIKoZIzj0EAwMDZwAwZAIwVtVm5z312gdibMeVJaC/LfWrobVfLPCiT0aXGrfMg/jc/9k+i1obrebeCiZtSnGOAjAyI28uokQqX0U3YJym7XbDb13u5EiUEJk2DQnoYyVUTr28vG1V+wPuBVCqOMi/Ov8=" ], "serial": "C6fNUTtjynAHcakn4YMOhw==", "issuer_spki_sha256": "lVUzVQgp60SlPl4E5/Nd7GLlg0qdQkgNz39YIr8YwFI=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776086117880 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1776086118064 }, { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1776086118151 } ] } }, { "ca_sha256_fingerprint": "CB3CCBB76031E5E0138F8DD39A23F9DE47FFC35E43C1144CEA27D46A5AB1CB5F", "ca_label": "DigiCert Global Root G2", "test_website_revoked": "https://global-root-g2-revoked.chain-demos.digicert.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIEyDCCA7CgAwIBAgIQDPW9BitWAvR6uFAsI8zwZjANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0yMTAzMzAwMDAwMDBaFw0zMTAzMjkyMzU5NTlaMFkxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxMzAxBgNVBAMTKkRpZ2lDZXJ0IEdsb2JhbCBHMiBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMz3EGJPprtjb+2QUlbFbSd7ehJWivH0+dbn4Y+9lavyYEEVcNsSAPonCrVXOFt9slGTcZUOakGUWzUb+nv6u8W+JDD+Vu/E832X4xT1FE3LpxDyFuqrIvAxIhFhaZAmunjZlx/jfWardUSVc8is/+9dCopZQ+GssjoP80j812s3wWPc3kbW20X+fSP9kOhRBx5Ro1/tSUZUfyyIxfQTnJcVPAPooTncaQwywa8WV0yUR0J8osicfebUTVSvQpmowQTCd5zWSOTOEeAqgJnwQ3DPP3Zr0UxJqyRewg2C/Uaoq2yTzGJSQnWS+Jr6Xl6ysGHlHx+5fwmY6D36g39HaaECAwEAAaOCAYIwggF+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFHSFgMBmx9833s+9KTeqAx2+7c0XMB8GA1UdIwQYMBaAFE4iVCAYlebjbuYP+vq5Eu0GF485MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RHMi5jcnQwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDA9BgNVHSAENjA0MAsGCWCGSAGG/WwCATAHBgVngQwBATAIBgZngQwBAgEwCAYGZ4EMAQICMAgGBmeBDAECAzANBgkqhkiG9w0BAQsFAAOCAQEAkPFwyyiXaZd8dP3A+iZ7U6utzWX9upwGnIrXWkOH7U1MVl+twcW1BSAuWdH/SvWgKtiwla3JLko716f2b4gp/DA/JIS7w7d7kwcsr4drdjPtAFVSslme5LnQ89/nD/7d+MS5EHKBCQRfz5eeLjJ1js+aWNJXMX43AYGyZm0pGrFmCW3RbpD0ufovARTFXFZkAdl9h6g4U5+LXUZtXMYnhIHUfoyMo5tS58aI7Dd8KvvwVVo4chDYABPPTHPbqjc1qCmBaZx2vN4Ye5DUys/vZwP9BFohFrH/6j/f3IL16/RZkiMNJCqVJUzKoZHm1Lesh3Sz8W2jmdv51b2EQJ8HmA==" ], "serial": "B/p6bQC7E5nee/kPpXtG+w==", "issuer_spki_sha256": "Wec45nQiFwKvHtuHxSAMGkt19k+uPSw9JlEkxhvYPHk=", "scts": [ { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783155735835 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783155735796 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783155735855 } ] } }, { "ca_sha256_fingerprint": "CBB522D7B7F127AD6A0113865BDF1CD4102E7D0759AF635A7CF4720DC963C53B", "ca_label": "GlobalSign", "test_website_revoked": "https://revoked.r3.roots.globalsign.com", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIEkDCCA3igAwIBAgIRAIK3ZQoh4PzMiJGQA/FV6gwwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMjUwMTIyMDQwNjMxWhcNMjcwMTIyMDAwMDAwWjBYMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEuMCwGA1UEAxMlR2xvYmFsU2lnbiBBdGxhcyBSMyBPViBUTFMgQ0EgMjAyNSBRMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKcoXp/N0aOl1YX+FVyAEPNMG0ksuXNWSleioe+/v/IRRq8NANgQ0jGCmHTAavai8F8kLGdC9aIB8BX+6awgI+O6dln0M0fCy7z9EJmrN3a1K6GBOJCQLzaIBroJqiX9TK0xqrrL1q1Au3EpasX5O4GgHlWZZojcp3yXJaLyv+4E0FipYmLVU/iZys6jbg5K81z59yP9MNC9hoPDyPJ87fGnBZaaqAHDnWigLAXgkKOpaKZJEmYsemojSwgZ+N+GAMlbrhYTnmlYXuvg57sDIuK4E1r98Q0dFqnvcRjpSbr/MB9NKDGkn2RWZU+izNwYdr5XySOI5FUO8Ub4Mki1LJUCAwEAAaOCAV8wggFbMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUSFEmzp2tODkWLlLFZ3qRNAAT3uMwHwYDVR0jBBgwFoAUj/BLf6guRSSuTVD6Y5qL3uLdG7wwewYIKwYBBQUHAQEEbzBtMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vcm9vdHIzMDsGCCsGAQUFBzAChi9odHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2NhY2VydC9yb290LXIzLmNydDA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QtcjMuY3JsMCEGA1UdIAQaMBgwCAYGZ4EMAQICMAwGCisGAQQBoDIKAQIwDQYJKoZIhvcNAQELBQADggEBADM7bTP5scLYXf3h3Va/xAyK4OrNwvF2k+JIanynLbiv5idGA3q1u/vIQIsnIMFb7g2QRMSlQAl0+CSCuONzIbVn/NffcOiNSXjxjJn5tTRO1HBmrMl0hBXzkuF6F8lVfDuzntFJ//AAAnpMY61w1Y1IWr3OUy7PddYqddI/2GRqRO45p4F2s5FldQrMNovddNRTnr8plA0WZTH+/rSEFIADosc6OsizFHqwvD+iLi/VNzqJAhARJcUwtHlbj5jmd6Pu9iECs61zaiuCAA0DM1uNAUSVNMXN/Qw5qcT4Nv1miJupHoOFVYVhRQYyrULmvRVp2TdXvC7ojYCmpuhkOh8=" ], "serial": "AZFaKNQKWPOzuhDAze9QmQ==", "issuer_spki_sha256": "NI3buroOMVFfbl3h/OtuqNsgS8ai4tU4ZkH/UZ/Aw6Q=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1750154615880 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1750154615902 }, { "log_id": "H1bRq5RwSkHdP+r99GmTVTAsFDG/5hNGCJ//rnldzC8=", "timestamp": 1750154616237 } ] } }, { "ca_sha256_fingerprint": "CBB9C44D84B8043E1050EA31A69F514955D7BFD2E2C6B49301019AD61D9F5058", "ca_label": "GlobalSign Root E46", "test_website_revoked": "https://revoked.e46.roots.globalsign.com", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Ab6bB7cCQWiSD7kEN8p35w==", "issuer_spki_sha256": "2QdsCtI22J6baJM808LUaaIimOTG5iB2FiAXhZXBsas=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1763478135077 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1763478135407 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1763478135556 } ] } }, { "ca_sha256_fingerprint": "D43AF9B35473755C9684FC06D7D8CB70EE5C28E773FB294EB41EE71722924D24", "ca_label": "UCA Extended Validation Root", "test_website_revoked": "https://rsaevg3.revoked.sheca.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "W7y5WTLTUMOKFrIJLusP7Q==", "issuer_spki_sha256": "/TZlweMrnlWlbe9bWC3bxYQFepegJ8WfsZkfyAe3zTo=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1774144937651 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1774144938009 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1774144938728 } ] } }, { "ca_sha256_fingerprint": "D48D3D23EEDB50A459E55197601C27774B9D7B18C94D5A059511A10250B93168", "ca_label": "Certigna Root CA", "test_website_revoked": "https://revoked.servicesca.dhimyotis.com", "detail": { "end_entity_cert": "MIII6DCCBtCgAwIBAgIQWzS22JQ0yc+QYg6Y2jcO1zANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJGUjESMBAGA1UECgwJREhJTVlPVElTMRwwGgYDVQQLDBMwMDAyIDQ4MTQ2MzA4MTAwMDM2MR0wGwYDVQRhDBROVFJGUi00ODE0NjMwODEwMDAzNjEdMBsGA1UEAwwUQ2VydGlnbmEgU2VydmljZXMgQ0EwHhcNMjYwNjA1MjIwMTE2WhcNMjYwOTAzMjIwMTE1WjB7MQswCQYDVQQGEwJGUjEaMBgGA1UEBwwRVklMTEVORVVWRSBEJ0FTQ1ExETAPBgNVBAoMCENFUlRJR05BMSkwJwYDVQQDDCByZXZva2VkLnNlcnZpY2VzY2EuZGhpbXlvdGlzLmNvbTESMBAGA1UEBRMJUzYwMzI1MDU1MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0t/dEznEee8BQcGwrMscGh4AuJTQQzpy9cUX0dKH8BfV507J3vGsQ912QVsdrQlUJMI6Op93KbSHRCzyG2ZaViy/cY5IapR1/JvN9hDua9do5loteNWawtJdf7bf1jKWMig0KWqSj/+iqhwbmrO9yYFRfLrBz3PQXRRKia41W9AU3wTFeOuhNa4K7P2IDoqPCTyKZJtzUNwWmbW0wHq7hukXAH5l4DUNVH+rP3tXoc45o0KTNfE6s23n4z6guv3LXoOdMCqFDlJu41+I5/nuncBrz8VQwYnu9XkqDI98HdV4SiQU3iiQ6AUTfAmtcRCrlu57aoXW+Grk63JnRgfPwLQgxFiHOzkr/gyMNcups76cNCADuh43iae13aXotl/jTcojSTU/6Ejd8WYoUJK+oV0bM80H57b1RopC29BwERReCxL4iJLIQy6lC4E6QkN4Q7a6s+Z5CZ8Q3QguMY+w50hQKasau0KSRCeW8vJBigDPlCAwicmL9ey37/4064XFAgMBAAGjggPkMIID4DCB8gYIKwYBBQUHAQEEgeUwgeIwPQYIKwYBBQUHMAKGMWh0dHA6Ly9hdXRvcml0ZS5jZXJ0aWduYS5mci9zZXJ2aWNlc2NhX3Jvb3RjYS5kZXIwPwYIKwYBBQUHMAKGM2h0dHA6Ly9hdXRvcml0ZS5kaGlteW90aXMuY29tL3NlcnZpY2VzY2Ffcm9vdGNhLmRlcjAuBggrBgEFBQcwAYYiaHR0cDovL3NlcnZpY2VzY2Eub2NzcC5jZXJ0aWduYS5mcjAwBggrBgEFBQcwAYYkaHR0cDovL3NlcnZpY2VzY2Eub2NzcC5kaGlteW90aXMuY29tMB8GA1UdIwQYMBaAFKzsho9LNxy4fxcbGdCu6E7jNFwSMAwGA1UdEwEB/wQCMAAwYQYDVR0gBFowWDAIBgZngQwBAgIwTAYLKoF6AYExAgUBAQIwPTA7BggrBgEFBQcCARYvaHR0cHM6Ly93d3cuY2VydGlnbmEuY29tL2F1dG9yaXRlLWNlcnRpZmljYXRpb24wZQYDVR0fBF4wXDAtoCugKYYnaHR0cDovL2NybC5kaGlteW90aXMuY29tL3NlcnZpY2VzY2EuY3JsMCugKaAnhiVodHRwOi8vY3JsLmNlcnRpZ25hLmZyL3NlcnZpY2VzY2EuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA4GA1UdDwEB/wQEAwIFoDArBgNVHREEJDAigiByZXZva2VkLnNlcnZpY2VzY2EuZGhpbXlvdGlzLmNvbTAdBgNVHQ4EFgQUB2CJxP6httBUf0QW3Kea49o+OfswggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnpnOCmQAAAQDAEcwRQIgctd15iBiAMZJ5FLD2prvw2vAlCyyR5RHg+DdXx/+lMoCIQConHRsDBorVjot8OEQwk8eVFT2929QXjwuIiyxwOlvaAB2AMs49xWJfIShRF9bwd37yW7ymlnNRwppBYWwyxTDFFjnAAABnpnOC2UAAAQDAEcwRQIhAJEfI+XjRgbmoOeln6XPOMwaJDURwcYhJoZuTjh10mMMAiBcA1s1J0HRxkrVmyLDidrTtJoZetifCcpTlIeQosJTeQB1AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABnpnODG0AAAQDAEYwRAIgeEaAAoOAvtBkJYPJn3OQE8WA5zzLPEH5q/m0w/V4DrUCICANmW11BSlRkQ5ATSWPIfmvfJ3r+zv6htxIxGGZB/BhMA0GCSqGSIb3DQEBCwUAA4ICAQAhhKMeXHs7mMUGZdflf63huGvbEWuxf645IkbLMpRNn4WDQwf0hAjLdKqf20RxyMkpZY3lu5w5BSaHooPg3QaxwQAtZvnfaKJJZZJsvgZM7HMAaQGRKxdmtfKbXMRjVLCQ5Vc1dAfNtS8PiSGtVSQQYnohJfG/6A0jFkJHYj2QHo8Kb+vdzquC04LJL30Mh8bo11cLbn3qxa0PKdRjKzvBi1BMjVc8NNcVrzKCrCUsF9R8P8+qkfiShNPg1KRBxja2v8bCa+aWG1pumgOP5MdE8kdwGk5DuNQ2Srm+EGCULb4TknR/8poe8uj+da3u4UMNGBFIchO/Ls68a9fPYt9OfdXVKk1J6fJzgkZC0UJD42YecSM71TP7i2mz2+IcylZ61hQsPcqEY1fPXBlazpDj/fIAB8EIB2c17t6HW+76nKVxrSl3SbwpIP5nSfSoFmlTK9crw4gZqJ6DH+cGzeYZ+2ndp2r7P/TCf/CtYyIW5cXLilwNrDM63bJyvyxMw0InuTGti/sue78XMl0BmOG9lbEbbtR49UfmcKM+sV5iNyVX48oK4qssknBwZwM7qpEB/maFLVR5ujxREY1L+TkwWdshyl0eANs/+MFNV90uHCnNZu+xZJDeP+soSVXaVaGqjzs3WqBwo4qZpOrzBQITO0aDz+57VAU39X8oEMhmeg==", "intermediates": [ "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" ], "serial": "WzS22JQ0yc+QYg6Y2jcO1w==", "issuer_spki_sha256": "Vvyvg4+bOEbI6aO7K28ioVsUfckLqCSKqlIqZTEB/uE=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1780696877668 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1780696877925 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1780696878189 } ] } }, { "ca_sha256_fingerprint": "D947432ABDE7B7FA90FC2E6B59101B1280E0E1C7E4E40FA3C6887FFF57A7F4CF", "ca_label": "GTS Root R1", "test_website_revoked": "https://revoked.gtsr1.demosite.pki.goog", "detail": { "end_entity_cert": "MIIFSTCCBDGgAwIBAgIRAMX8mP7Wj38uCuOTS5xR3ucwDQYJKoZIhvcNAQELBQAwOzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczEMMAoGA1UEAxMDV1IzMB4XDTI2MDcwNzA3MDU0MloXDTI2MDgwNTA3MDU0MVowKjEoMCYGA1UEAxMfcmV2b2tlZC5ndHNyMS5kZW1vc2l0ZS5wa2kuZ29vZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK/IYCBMgQadDNy11XeGTGX1jHSnQs4R3A73ir8+8VOrXNPhTAfeOsMXm0IrbNzk7mAvhbiozER4pYP/0VZp37UjHUqGtqVfzoFbrZVRtvMZbARi9PFWvGqiHNITm+tqQfRUXadMBoj0l2QZBjrVJRFklmzvUxOe0akzsPpyhBEryP8ABds/qjYo/sm4lqug+eik6NN6AwSq/0xr83v6eZFhQxTcqu6XBQCFczCVARUqrILRszmwBhqNi+BuMKbftmO5V+/sG2wKuOXWT94GsfgANsD/qtVT/Ki9cjv8C4TQ+Gsv+OR/4lNd3HsKd3eQ3lPMIaKHF4BOjFNmrWUem6cCAwEAAaOCAlcwggJTMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTJdBsA7F4GFd4SmLgjJ9kLrLpLuTAfBgNVHSMEGDAWgBTHgfX9jojZADxNY6JQMSSgziP+IzBeBggrBgEFBQcBAQRSMFAwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vLnBraS5nb29nL3Mvd3IzL3hmdzAlBggrBgEFBQcwAoYZaHR0cDovL2kucGtpLmdvb2cvd3IzLmNydDAqBgNVHREEIzAhgh9yZXZva2VkLmd0c3IxLmRlbW9zaXRlLnBraS5nb29nMBMGA1UdIAQMMAowCAYGZ4EMAQIBMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jLnBraS5nb29nL3dyMy85Vi1PMUJTTU9Yby5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQCUTkOH+uzB74HzGSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZ87nZryAAAEAwBGMEQCIAMAt+5CwilBCb3PMg66DINUG/SKMx+aucDPfOCXdRI/AiBJ/26zNOjdOipJOWjvcxIuu5w1rbgYqsYU03bWT7asVAB2ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnzudmy8AAAQDAEcwRQIgd72z1HsUUF/RzPrrhGUY6NW22bii4us6cxiHOCD5Jg4CIQDBZcqJGThxImsNKEP6P7MuzjO7LlJpUzbOPJE8FysaNzANBgkqhkiG9w0BAQsFAAOCAQEARqyv4t63zEXts0yRkVaRchnvPNDm/vDxjVd9RVW/ucsCyHK7IT37DRq/71+AIo5Qp1fMRKPAVub0jmH+mmscIAQswOisQ4/3XmE6QK67UDtYlkA1CvMbIGK70qGB7rO98ATN3mQuFvSWc8ACKvlxcYzccpzRcqkYuHFXp9RZYiA4mVgyvqcn4TTY7OhjFVfGCAZRrZPwHZt1ftKjkH+x/dWqc5eXAri+LYIlG1zpVfBp25qMhCKeMTLy3vAeuCAYznOWachl310yW2jlaZzAVW1lW/O4SbAe1ugN+CV7ta02VE4T09e5OnO7ZHi+ndiTi/6vBDaYlL5hDPMhm34VGQ==", "intermediates": [ "MIIFCzCCAvOgAwIBAgIQf/AFqRVo1jq8IoYWhKpLWjANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIwMTQwMDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYDVQQDEwNXUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCPNHWHr4RyFI0HEJFvA6zx1Ag1mhnymxiJNGyYj3rU3eoF6N4bfIxUErp5ivsYDQ18nPO9OOSoXsYzy0aJb0ag6TdjjdzM1ZdOMq17HSMFufV7SUOY0LxXx1N4GLHtp1SyfIa+8FRFvIe6mVkd9LjbAPuBT0YrYl6xOqUqFyOsor7FjuVe/XEefaS0I30EUrI00t+ZrIfGTFlf+OZPjnWSwrIwRpLQtg3H5Iln/z9UlCdl4wHISiyEL2Vfza1c/aatQVvcTD8XlpF9qdg8Uyoc0ObUd+ZDSsK3+Eiiza1jtSVrlnIdgUVvhmnE5OZ4TDHmoX+nAXMKh++HiXLM08WNAgMBAAGjgf4wgfswDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTHgfX9jojZADxNY6JQMSSgziP+IzAfBgNVHSMEGDAWgBTkrysmcRorSCeFL1JmLO/wiRNxPjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAKGGGh0dHA6Ly9pLnBraS5nb29nL3IxLmNydDArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8vYy5wa2kuZ29vZy9yL3IxLmNybDATBgNVHSAEDDAKMAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAgEAnI1DlJQzSKcWbyXXrJSsgKMo6KG74TMqhsuTg67a0FX02752+eiJb5YsOJc8DVOHalwpOvbuPdl5BuAEgIK4Va7l9j3J9M1/EjeWjGTM3RoszmBJGu82oz6EWi5q75xeF+onJmh2Hm98a/yJAI/mODXq5LofYcQ9AffKP9ZMZu+YwW+/qHqyX2JhaOntvl7i8S+l1Y8CcKEqM1NFK4s4EBYPRFjZDawOHX7fSchbSMVPn5Nu04lrU6xufuZqRosEQw2o0UAyzDoyA52NXzJTWr1G2FVg/0A9hdrQ/6fe9G3167zKxNqXErs6MpHttEouGbpm2ftzrmcvruYxTfxc4G2GwBi3LFLozNpy042gDfXBzDyn1staWsy7+QnzMlR59Fz6jBOk5R4LT+ma0+KjnfRhMh5T2ucm69HkvNQtDZlVa1tLUlzs0zLEdQSehTCjZ6SYsGt2bMVK6dvtxzcyCP0QDUFnNXCwgw12+mGSkAuj4ORi8kMRpnL8UEjkNbdw9KL1eYbEC3D0GPue2Yk2AGhxkmcdm1BoOp05kYw/Nnqgh7QV8DKyBTUHbjH0pXlLiOsSOY+CLh1eTM+Do6rSjqGnDQeUXylZmPCmuveaw38IVnBaa6Eiz6pngZ1u6OeO/1UzfhmyTm0n0G+9JZ3KS2Mq08isNgXHLnhlHJaphpE=" ], "serial": "AMX8mP7Wj38uCuOTS5xR3uc=", "issuer_spki_sha256": "OdSlmQD9NWJh4EbcOHBxkhygPwNSwA9Q91eounfbcoE=", "scts": [ { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783411612402 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783411612463 } ] } }, { "ca_sha256_fingerprint": "D95D0E8EDA79525BF9BEB11B14D2100D3294985F0C62D9FABD9CD999ECCB7B1D", "ca_label": "HARICA TLS RSA Root CA 2021", "test_website_revoked": "https://tls-rsa-revoked-ev.root2021.harica.gr", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "T7v18uN9/kscABU79Hb+Bg==", "issuer_spki_sha256": "L71qnaLy9ik60mK7sra3MIvUXyqNjaoejV3p0YDj4us=", "scts": [ { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1776263322863 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1776263322864 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776263322814 } ] } }, { "ca_sha256_fingerprint": "E0D3226AEB1163C2E48FF9BE3B50B4C6431BE7BB1EACC5C36B5D5EC509039A08", "ca_label": "TrustAsia Global Root CA G3", "test_website_revoked": "https://ev-rsag3-revoked.trustasia.com", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "ND3ZmctZFCUxl2TKV3k6I1xWy00=", "issuer_spki_sha256": "W19nbGvl7OjWR0ODnprYtSlhjq/QnDddsFv6D2IGKmA=", "scts": [ { "log_id": "Jbfv3qETAZPtkweXcKoyKiZiDeNayKp8dRl94LGp4GU=", "timestamp": 1781040608971 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1781040609868 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1781040609797 } ] } }, { "ca_sha256_fingerprint": "E23D4A036D7B70E9F595B1422079D2B91EDFBB1FB651A0633EAA8A9DC5F80703", "ca_label": "CA Disig Root R2", "test_website_revoked": "https://testssl-revoked-r2i2.disig.sk/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIGAjCCA+qgAwIBAgIRCBeSUjZo9chQAAAAAAAAAAMwDQYJKoZIhvcNAQELBQAwUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIwHhcNMTQxMDAyMTIxOTA2WhcNMjkwOTI4MTIxOTA2WjBlMQswCQYDVQQGEwJTSzETMBEGA1UEBwwKQnJhdGlzbGF2YTETMBEGA1UECgwKRGlzaWcgYS5zLjEsMCoGA1UEAwwjQ0EgRGlzaWcgUjJJMiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyUskVGBrkooW8zWUYsR8WKNA5baWkD6PKuMXL3mi9lt/u0W1J5b2FIjtWJt6PBZlMGcnzCQSEC8Ao/9HZQQwwAttLgmcdBSwyIenDMuxiM1WbnZ+5kmUnKjHs+LaROq3vBCIzdGDQGoJACEFsJuFpDGQXrVDtlzhhRlmM0bsyJRJwp6iL31OCnGBz/sj5/rugnWFB9XNwUSFcafzTLwlo8OI/gIhhXQSdk8WjrFvQdG1TiqkIojm9Mz5a6pzfN9NncZbGV4Xa1cV/oMG4fZAqu7+X7tlVPPDF3/7UKzSRGydrShWc4tPOORPevcT6/XQnpqGrB89sxvtkm2lCsvrDAgMBAAGjggG+MIIBujCBgwYIKwYBBQUHAQEEdzB1MDcGCCsGAQUFBzABhitodHRwOi8vcm9vdGNhcjItb2NzcC5kaXNpZy5zay9vY3NwL3Jvb3RjYXIyMDoGCCsGAQUFBzAChi5odHRwOi8vd3d3LmRpc2lnLnNrL3Jvb3RjYXIyL2NlcnQvcm9vdGNhcjIuZGVyMB0GA1UdDgQWBBQkpbw6KGIVQjL5MFrJ8T7koQmosTAfBgNVHSMEGDAWgBS1mfivsJT14yDWCq3OTlakLm5C7TASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjB1BgNVHR8EbjBsMDSgMqAwhi5odHRwOi8vY2RwMS5kaXNpZy5zay9yb290Y2FyMi9jcmwvcm9vdGNhcjIuY3JsMDSgMqAwhi5odHRwOi8vY2RwMi5kaXNpZy5zay9yb290Y2FyMi9jcmwvcm9vdGNhcjIuY3JsMDkGA1UdIAQyMDAwLgYEVR0gADAmMCQGCCsGAQUFBwIBFhhodHRwOi8vd3d3LmRpc2lnLnNrL2Nwcy8wHAYDVR0RBBUwE4ERc3ByYXZhY2FAZGlzaWcuc2swDQYJKoZIhvcNAQELBQADggIBAEoFQYsKbtRjEdbWeqZHhJF8cRcg66HUY0zDOksWZpGzTOL7K7PGaJVRrMxIiIiG3hFU/CYWQlVk3NjiUo1T3m02TgkWfcXsyEZ2MVXpImSl5fgsDfI/5/INCGh39YkN5Y91yE0bDrJUa/uTadpS3fd4vKzmhy5qRsl2QFt29QDu7p/NUi5rojns1fCqzPserZyvciAG/hYS8t4C3GIOK2rwn09nZK+du5GquSX89KaVKM6UySqT+jIXzyhTwnXbEabFGSMVlmW/fKlGGLhET6jYPUnGje/b0qPvGmuvYpNC7ztCHcnNdfGLpB4L6Puxtn5xcYTswh1D8raQvArDFoqPwOQr2XggqU+t0ktu6IKIfInhB4WjGgAMr3aGyoNqKSv9Qzbh8vkdIe7+lwIBievK/+04q+Fsi5JBzTAUumLQZhS9eXd+065GF/0O90D5fS0Y5Wc7naMQ7/o9T+9hIxC4BIm+2g0KtL43SPF+jdqrLjUfe7/mWyZIvEKqlk6X6CUjRx9fVc01uO5gUyLHMSoWAtIyGBtmDUVC7exu4q8BHUDMQdrZyhJOJ9TbN2Xi+z8BhpqosGPe7UTtRB3/UmMsbEgbfIIb5mMwnx6TtnF5r+FLiew8BeQcD7+7768rw0+LaddwiKlmGBjYvNy+e1cSlJl1ZBXtHzlj57JOD9u0" ], "serial": "DMYZ9WSea/q8AAAAAAAACN0=", "issuer_spki_sha256": "v1zylIDkrVcStoBb1ajeFz3xSjTmFzgYYMJDQsfaIxo=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1751888442763 }, { "log_id": "H1bRq5RwSkHdP+r99GmTVTAsFDG/5hNGCJ//rnldzC8=", "timestamp": 1751888444084 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1751888443498 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1751888444670 } ] } }, { "ca_sha256_fingerprint": "E35D28419ED02025CFA69038CD623962458DA5C695FBDEA3C22B0BFB25897092", "ca_label": "Amazon Root CA 4", "test_website_revoked": "https://revoked.sca4a.amazontrust.com/", "detail": { "end_entity_cert": "MIIExjCCBEugAwIBAgIQBNCDcAJVYrvOTkBkAWi1ADAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMR0wGwYDVQQDExRBbWF6b24gRUNEU0EgMzg0IE0wMTAeFw0yNjA3MDYwMDAwMDBaFw0yNzAxMTkyMzU5NTlaMC8xLTArBgNVBAMTJHJldm9rZWQucm9vdGNhNC5kZW1vLmFtYXpvbnRydXN0LmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGe/ToIDzDZ+pgziO+GJ1I2Jgode5dKDW8Q1rWvd0AkaWA2kdkYuJDrMs1kXDKeVy+faor5D1xFnUbZmeKt/ntdnZY631hF+q4ytOfDLJi8V2mRM1HAlRSE3q8gOyCQkM6OCAxwwggMYMB8GA1UdIwQYMBaAFAPkpASOBX+aEpeEBP8RdzCMuiqnMB0GA1UdDgQWBBSukW2ox45cqv/jSzpliOcigDVUZDBOBgNVHREERzBFgiRyZXZva2VkLnJvb3RjYTQuZGVtby5hbWF6b250cnVzdC5jb22CHXJldm9rZWQuc2NhNGEuYW1hem9udHJ1c3QuY29tMBMGA1UdIAQMMAowCAYGZ4EMAQIBMA4GA1UdDwEB/wQEAwIDiDATBgNVHSUEDDAKBggrBgEFBQcDATA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vY3JsLmUzbTAxLmFtYXpvbnRydXN0LmNvbS9lM20wMS5jcmwwdQYIKwYBBQUHAQEEaTBnMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5lM20wMS5hbWF6b250cnVzdC5jb20wNgYIKwYBBQUHMAKGKmh0dHA6Ly9jcnQuZTNtMDEuYW1hem9udHJ1c3QuY29tL2UzbTAxLmNlcjAMBgNVHRMBAf8EAjAAMIIBiAYKKwYBBAHWeQIEAgSCAXgEggF0AXIAdwBMY9yY5Zwdq4j2Hoo93q6Pq0SjN3tfm5TD+6Gc/MG+JgAAAZ84lpZtAAAEAwBIMEYCIQDNyCZySi8IXeL2eXwA4V+0ikDAoBZZYZ9cGmVIRtg0LgIhALy3MUdOrj2epGVu38OpeIbDHs2jP7c9vDPw4dTuIwcCAHYA1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwIAAAGfOJaWRAAABAMARzBFAiBLES9FH6aErYZvraGpYlLSH2r+XFPyUg1dSx5K8vKLfgIhAI0RY9yH7UB4x6oF0093cPU3t8mEHIkEG90n8y4+EzfzAH8AooEAGHNOF24dR+CVQPOBulRml81jqENQcW64CU7a8Q0AAAGfOJaWegAIAAAFAATQn28EAwBIMEYCIQDeMQJkxDkTl2nw7B0cHdQ7X0J4jpm7isbm3ZRllXB5iQIhALljWjLkHNb3rdbCpDP7Xelt2Ia6s1BGj7yHIozEGGEQMAoGCCqGSM49BAMDA2kAMGYCMQC/Vp6iMyd/2yDQol0EMnFAS3XQXqGv4NllfHzKOm8qsClTzPD440vj9QmemQsn55ICMQCaiVlfki9CttlGyKVlGbVi7SgilG2xKB3yc6dQrZyepB4FKtIcR7G8FDE60CzKTqk=", "intermediates": [ "MIIDEDCCApagAwIBAgITB3MSdX70w2YPCK8kA9PlVDXUCzAKBggqhkjOPQQDAzA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTIyMDgyMzIyMzUwNVoXDTMwMDgyMzIyMzUwNVowPTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEdMBsGA1UEAxMUQW1hem9uIEVDRFNBIDM4NCBNMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQ5bmTiZs1mL0Y7oj3O+GbZwZTqNeCsMHLx4mu35J+tuvZpk63hkJ/6/U2R2CLuYnho6nQG/7XezNv6swiSO0+j0T4SQ/z2XeuumfmpeFLC/rn6Kx+JaS/evPe9TUIct06jggFaMIIBVjASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHQYDVR0OBBYEFAPkpASOBX+aEpeEBP8RdzCMuiqnMB8GA1UdIwQYMBaAFNPsxzplbszh2naaVvuc84ZtV+WBMHsGCCsGAQUFBwEBBG8wbTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3Aucm9vdGNhNC5hbWF6b250cnVzdC5jb20wOgYIKwYBBQUHMAKGLmh0dHA6Ly9jcnQucm9vdGNhNC5hbWF6b250cnVzdC5jb20vcm9vdGNhNC5jZXIwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC5yb290Y2E0LmFtYXpvbnRydXN0LmNvbS9yb290Y2E0LmNybDATBgNVHSAEDDAKMAgGBmeBDAECATAKBggqhkjOPQQDAwNoADBlAjEAhMv1OvCV4GMdPegudRJwkaL9ao2gWqeDeU5YEP8WuAcX5sB5pN9nYvUtEVdw09EaAjBhHnlZkT/sa6bIk0gjjJLKjm2jzidOuFP3t87DNXSn6SKzVuYYEarg2oYELfF21Bk=", "MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==" ], "serial": "BNCDcAJVYrvOTkBkAWi1AA==", "issuer_spki_sha256": "RM3y5tcn1oEOdEd+IzeZYwxr+FiMF6DAbydz8US9IHA=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1783360820845 }, { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1783360820804 }, { "log_id": "ooEAGHNOF24dR+CVQPOBulRml81jqENQcW64CU7a8Q0=", "timestamp": 1783360820858 } ] } }, { "ca_sha256_fingerprint": "E59AAA816009C22BFF5B25BAD37DF306F049797C1F81D85AB089E657BD8F0044", "ca_label": "D-TRUST BR Root CA 1 2020", "test_website_revoked": "https://certdemo-ov-revoked.tls.d-trust.net/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "WCFqwZ43eH0DU1PLDAJtTQ==", "issuer_spki_sha256": "kVO5KcVhLn+EO7KjAiRhLgxhA1OOzdUgODPbCEfZ+kQ=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782155001956 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782155002314 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1782155002273 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1782155002315 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1782155002475 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1782155002954 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782155002588 } ] } }, { "ca_sha256_fingerprint": "E74FBDA55BD564C473A36B441AA799C8A68E077440E8288B9FA1E50E4BBACA11", "ca_label": "Security Communication ECC RootCA1", "test_website_revoked": "https://cross-ovecc2024r.secomtrust-verification.com/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "aMfUDSSCb4nnWiIu4HG74g==", "issuer_spki_sha256": "KaLohbfxUFEfj4AAh3ZqZy1OO8w6lhcloTTUbDlQ1/8=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1783300684453 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1783300686231 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1783300687026 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1783300687415 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1783300688336 } ] } }, { "ca_sha256_fingerprint": "E778F0F095FE843729CD1A0082179E5314A9C291442805E1FB1D8FB6B8886C3A", "ca_label": "SecureSign Root CA15", "test_website_revoked": "https://ss15-revoked.managedpki.ne.jp", "error": "missing from ct" }, { "ca_sha256_fingerprint": "E793C9B02FD8AA13E21C31228ACCB08119643B749C898964B1746D46C3D4CBD2", "ca_label": "USERTrust RSA Certification Authority", "test_website_revoked": "https://usertrustrsacertificationauthority-ev.comodoca.com:444/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "W40js8cbllKDUTGIZL762g==", "issuer_spki_sha256": "KxJdQKV5G03wpSUMzFPrE/WdnS5RnO4gex+GeXPUDnw=", "scts": [ { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1760101602300 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1760101602390 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1760101663075 } ] } }, { "ca_sha256_fingerprint": "EBC5570C29018C4D67B1AA127BAF12F703B4611EBC17B7DAB5573894179B93FA", "ca_label": "AC RAIZ FNMT-RCM", "test_website_revoked": "https://testrevoked.cert.fnmt.es", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "I5yu6OoFshdppTmZtBumOA==", "issuer_spki_sha256": "MEJWDQI0WXBrEdYtj1u1WdwD26XsIXQQ+57NkgXsoGc=", "scts": [ { "log_id": "TGPcmOWcHauI9h6KPd6uj6tEozd7X5uUw/uhnPzBviY=", "timestamp": 1772435866505 }, { "log_id": "YEyar3p/d18B1Ab8kg3ImesLHH34yVIb+voXdzuXi8k=", "timestamp": 1772435867157 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1772435867776 } ] } }, { "ca_sha256_fingerprint": "EDF7EBBCA27A2A384D387B7D4010C666E2EDB4843E4C29B4AE1D5B9332E6B24D", "ca_label": "Buypass Class 3 Root CA", "test_website_revoked": "https://revoked.evident.ca23.ssl.buypass.no", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFKTCCAxGgAwIBAgIJG+Dcaj5/IgR1MA0GCSqGSIb3DQEBCwUAME4xCzAJBgNVBAYTAk5PMR0wGwYDVQQKDBRCdXlwYXNzIEFTLTk4MzE2MzMyNzEgMB4GA1UEAwwXQnV5cGFzcyBDbGFzcyAzIFJvb3QgQ0EwHhcNMTkwMzI1MTIxMjE2WhcNMzAxMDI2MDgxNjE3WjBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvU4V2hRFFe4K7BMEmm4IoMTwS7NyDQB4JEardV1qBsKHIIQJDm9hbCakcLIWXVv6vYrJZ1AEF0b6awBwhhlqXlyNnOtNa9uR+IAP86d4yOGpgHSlNAhdtOOk9Qw6MUzzBo1lyoYmoL0f5n02SMrlMcArSg458o08eDUx4iZs4dXDR9Hjxac2s+mdAO35Js8VK/D50AIMDJvHVeCMw+rumZkNZuRqM7PjIK+uBmbqO8A95PeqQEWHvM5nchlV1+ZGNVqHHSJenlMnVKytGv+4KJp7U741H/9cMbd2X2PXsewWWFhGXoS8R9VXQ5xb3hF6324FQXvcA1mXRv6DAJedXQIDAQABo4IBCzCCAQcwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRHuM3/5W/u+LLsL04O+SWwjjxrwzAdBgNVHQ4EFgQUIjAu0vv2S8rAuDvSBMTpcuaXmwwwDgYDVR0PAQH/BAQDAgEGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjARBgNVHSAECjAIMAYGBFUdIAAwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5idXlwYXNzLm5vL2NybC9CUENsYXNzM1Jvb3RDQS5jcmwwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5idXlwYXNzLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAo42Yfp96nUiZbZsqvYBID3Sqtx3jJfU8gNHFeXgkS0pxYHHYUwsVSVRjw+BGVEGUswpFMaYMCZD37ZL0JpvvXWrCDaMb/GqDJAQHLLTyVKPGGGIWCZH/FrhnNvcpt2XXA8lUUjzp5nZPuqvenzQ/aXHI4sH5sN/QjyKVMSa/6RbWBeQmvIdgyM+0jIR5/r6UGiKMar55trZgnlIbvQJ/w8QTmI/NwvA5CtRaOslQBxeKoAR0BuA/lRWnocXa/BM5uO6PULL7ct/uI1bS+YThHXHmFybI6kDf+RhRzWY9165ZP96PBph6smQkxPDAz2b8v+mhLThH+5hkqnoetYfK2MdBYinceGPP3gZ+uBSDDI2o6vdVvdg7G96GP1OEtgTEqZa3glVafckpn/8F5CisypdQuZ5zyy/6SXZCKkPcikR87ysSKnjtteXbxMWVtwkeBALTK7DbJA+5aOCYRNj6CJGULQKiGlC01/ipORKewf5J3yus81lLHzBmgQMA5l9RL8rV6dI246mPpQ+8WDLsDrK3ydSDv5izgdVHzhL0tT2u4vwSq2WUqCgi4xLIA1N/fA2HxEW7zh0X/3YVz++g/6bd7iqRD9nRRZxACekRbza7AqU5xN1UjvVtCJQ9VC74K9KPpBoLWE2Bz5ksL9VUc4kS+WGORvZrSE1EpBq6cHc=" ], "serial": "Vd7rfqwlnMXHEQ==", "issuer_spki_sha256": "4ZQYrjRV6ScgdFiC0vn/Vy4QMIji7Tv+wkkEKEEQ6/I=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1761897392963 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1761897392496 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1761897392995 } ] } }, { "ca_sha256_fingerprint": "EEC5496B988CE98625B934092EEC2908BED0B0F316C2D4730C84EAF1F3D34881", "ca_label": "D-TRUST Root Class 3 CA 2 EV 2009", "test_website_revoked": "https://certdemo-ev-revoked.ssl.d-trust.net/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIFRTCCBC2gAwIBAgIDCZBkMA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMTIxMjUyNDNaFw0yOTExMDUwODUwNDZaME8xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKTAnBgNVBAMMIEQtVFJVU1QgU1NMIENsYXNzIDMgQ0EgMSBFViAyMDA5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAygp+ZziakFyPq80fk1QIT9UCcPy0R3UIyq56hXA6lhgfs1l9R9wRM9/DIVX2olb0gHCXdpnHRm+jwzeL3dHJO8Im5Om/c24ZfSVEzBcgKxS5X7X5e7oCYb9tozd9xs04WqYd5kWrvCJsSQf5gtv5gAeJt+QiU7dtXs3AYDflWv4g9eEaDExxM0VQmceEAo5qc7I7dk5ry356G14zQmr29cxie6YS0kH+7qn5g+c21M01sENle0tBPxIfkv+nV95Ih3JkpHSPm/wgFKfCtwRtG+5VehUoMEpgfi0XfmVkag558aQpaaeQCtYZnXuq6g1D1LAcjIqMpOP4wNRp1ldLzQIDAQABo4ICJzCCAiMwHwYDVR0jBBgwFoAU05SKTGITKhkuzK9yin0215oc3GcwRwYIKwYBBQUHAQEEOzA5MDcGCCsGAQUFBzABhitodHRwOi8vcm9vdC1jMy1jYTItZXYtMjAwOS5vY3NwLmQtdHJ1c3QubmV0MF8GA1UdIARYMFYwVAYEVR0gADBMMEoGCCsGAQUFBwIBFj5odHRwOi8vd3d3LmQtdHJ1c3QubmV0L2ludGVybmV0L2ZpbGVzL0QtVFJVU1RfUm9vdF9QS0lfQ1BTLnBkZjAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQtdHJ1c3QubmV0MIHdBgNVHR8EgdUwgdIwgYeggYSggYGGf2xkYXA6Ly9kaXJlY3RvcnkuZC10cnVzdC5uZXQvQ049RC1UUlVTVCUyMFJvb3QlMjBDbGFzcyUyMDMlMjBDQSUyMDIlMjBFViUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwRqBEoEKGQGh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfZXZfMjAwOS5jcmwwHQYDVR0OBBYEFKztpZ16orZD8RiKJWpsscyo8lrUMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMA0GCSqGSIb3DQEBCwUAA4IBAQA6I3sGyvb4MdTyEZFBBWBN/5Kx1SVkkPsll8DvgosJiuuK4I7mD6FFKDjKgogr407EoDSS2t1+pSmQCb0rNXoJT3YIlpZGqPYU2rcwrelabJQZWAfoRnbkDx2aqofhp5u45dyQpM2tR93/oA36iuHYc9Ewq8CaLGolrpT138RD7i4nN7sZFuFH0IseNz0+EZm88NHi9WeJUyshWFKBKARi+589Y4P/G2XnbckxFKUxa7uEroZcMwvKBy469K0Au0zVTxs1zNtfOl3QkNgPwzOPeHhOnpzcenyPgNEm+HQ0FPTnB4HeKBqTeLpkM7h4gq5MZ2TPmfuXKDz3AHrWLLdH" ], "serial": "YmRtXLoLXduckW0Aq12r9Q==", "issuer_spki_sha256": "lv5BNZ5aWd27ooolULDolFTwIaaWjHvG4yyH3rss4X8=", "scts": [ { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1767034869558 }, { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1767034869597 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1767034869712 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1767034869973 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1767034870295 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1767034870710 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1767034870555 } ] } }, { "ca_sha256_fingerprint": "EEC997C0C30F216F7E3B8B307D2BAE42412D753FC8219DAFD1520B2572850F49", "ca_label": "OISTE Server Root ECC G1", "test_website_revoked": "https://eccg1revokedssl.hightrusted.com/", "detail": { "end_entity_cert": "MIIE0DCCBHegAwIBAgIUfzhY2IerOnuYBMRsb5vdZbKJBjIwCgYIKoZIzj0EAwIwSzELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxKjAoBgNVBAMMIVdJU2VLZXkgQ2VydGlmeUlEIFNlcnZlciBFQ0MgQ0EgMTAeFw0yNjA3MDQwNzMxNTBaFw0yNjA3MjUwNzMxNTBaMF0xCzAJBgNVBAYTAkNIMQ8wDQYDVQQIDAZHZW5ldmUxEzARBgNVBAoMCldJU2VLZXkgU0ExKDAmBgNVBAMMH2VjY2cxcmV2b2tlZHNzbC5oaWdodHJ1c3RlZC5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQQLA/g0i93BDZna3qX+jrrWl7YUOGnEF8FySIj4ighUKBWvH2TWOVOM4PvFKoInM9UeRBZJ1xXyaO2/Q+620Fxo4IDJTCCAyEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSfqeFVgKq8POj5jNDBkX03HJB7ezBwBggrBgEFBQcBAQRkMGIwOwYIKwYBBQUHMAKGL2h0dHA6Ly9wdWJsaWMud2lzZWtleS5jb20vY3J0L3djaWRzcnZlY2NjYTEuY2VyMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC53aXNla2V5LmNvbTAqBgNVHREEIzAhgh9lY2NnMXJldm9rZWRzc2wuaGlnaHRydXN0ZWQuY29tMEUGA1UdIAQ+MDwwOgYGZ4EMAQICMDAwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cud2lzZWtleS5jb20vcmVwb3NpdG9yeS8wEwYDVR0lBAwwCgYIKwYBBQUHAwEwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcmwvd2NpZHNydmVjY2NhMS5jcmwwHQYDVR0OBBYEFGgoefRm75aV8JhOjMgM9f+31Fc7MA4GA1UdDwEB/wQEAwIHgDCCAYMGCisGAQQB1nkCBAIEggFzBIIBbwFtAH0AJuNkblhpISO8ND9HJDWbN5LNJFqI2BXTkzP9mRirRyMAAAGfLAp6eQAIAAAFACU8nvYEAwBGMEQCIBiXOzC1WcBFO0UTM7zoUwe8VoaAimQ4FOTyMwh81fbCAiB0ZJ0j1eTlSh2ytUGgaaZhSUQVzvp4appEH88hatTQ2QB1AMijxH/Hs625NWsBP2p6Em3jOk5DpcZG+ZetOXWZHc+aAAABnywKfboAAAQDAEYwRAIgVwSTaLn450I1reOUbRUKJUS1jyhF8ZbW2YkZk1AK/xMCIAYiyO1XmXa1UOnX505RVfmno6ccxpPf1ThU5xHrPtGmAHUAdNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLwAAAGfLAp+IgAABAMARjBEAiATnGGBl+ayHkpTpAoLxVcNNzQLU9nFiKloA3/ZpSY3QQIgGFPkCJ/oyRXDDzhL+wsQz3e2qR39BNsJYbsido67l2AwCgYIKoZIzj0EAwIDRwAwRAIgaZcWxHPneEapxAhxL3Y6p/rry1IiPI6DiShw9/V4x3YCIFNfmIsbByVuWXOY2gAcsFiD/zjMP0L4UOQ6MAiYimlV", "intermediates": [ "MIIC+zCCAoCgAwIBAgIQR8h4LswCPffHJH99apl7YDAKBggqhkjOPQQDAzBLMQswCQYDVQQGEwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwYT0lTVEUgU2VydmVyIFJvb3QgRUNDIEcxMB4XDTI0MDIyMDE2MTIwMloXDTM5MDIxNjE2MTIwMVowSzELMAkGA1UEBhMCQ0gxEDAOBgNVBAoMB1dJU2VLZXkxKjAoBgNVBAMMIVdJU2VLZXkgQ2VydGlmeUlEIFNlcnZlciBFQ0MgQ0EgMTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOSbImP4zZiCzoSZt1Yg6rfKeLteBreDqCM7T0tvb0QgzRK1bDgn31n3Ps2lbzRXZe887Nv9dz1nJlU+IuRzWLOjggFEMIIBQDASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFDdNiGXP/D2K1aPxScBODBBvQrScMGsGCCsGAQUFBwEBBF8wXTA2BggrBgEFBQcwAoYqaHR0cDovL3B1YmxpYy53aXNla2V5LmNvbS9jcnQvb3NyZWNjZzEuY2VyMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC53aXNla2V5LmNvbTARBgNVHSAECjAIMAYGBFUdIAAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9wdWJsaWMud2lzZWtleS5jb20vY3JsL29zcmVjY2cxLmNybDAdBgNVHQ4EFgQUn6nhVYCqvDzo+YzQwZF9NxyQe3swDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2kAMGYCMQDj8g5/Yhs9kqUzKOAYIfZO2v083iywFDX7Gac9bN/YKKjosghAJu0ELvLWIbXoMBECMQCmjblTMFADWEQsp4v8db9A2d46nWao+nciOpZi+iCPZ6X0CTdS9cDvT9AoRwT4/L0=" ], "serial": "fzhY2IerOnuYBMRsb5vdZbKJBjI=", "issuer_spki_sha256": "8rUbchbDG5PVbsRCXu5nmJ7py5XGeNQn2MD11gSRkzQ=", "scts": [ { "log_id": "JuNkblhpISO8ND9HJDWbN5LNJFqI2BXTkzP9mRirRyM=", "timestamp": 1783150312057 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1783150312890 }, { "log_id": "dNudWPfUfp39eHoWKpkcGM9pjafHKZGMmhiwRQ26RLw=", "timestamp": 1783150312994 } ] } }, { "ca_sha256_fingerprint": "EFC65CADBB59ADB6EFE84DA22311B35624B71B3B1EA0DA8B6655174EC8978646", "ca_label": "Telekom Security TLS RSA Root 2023", "test_website_revoked": "https://revoked.tstlsrr23.test.telesec.de/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "D51PEfYQloi+nIg9jrGW7g==", "issuer_spki_sha256": "tQbtm3UZur5Jv1CmL4d5hpGJ3Fu3hdpnIVGHV4syVas=", "scts": [ { "log_id": "qCbL4wrGNRJGUz/gZfFPGdluGQgTxB3ZbXkAsxI8VSc=", "timestamp": 1771238016497 }, { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1771238016150 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1771238016124 }, { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1771238016093 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1771238015858 } ] } }, { "ca_sha256_fingerprint": "F015CE3CC239BFEF064BE9F1D2C417E1A0264A0A94BE1F0C8D121864EB6949CC", "ca_label": "HiPKI Root CA - G1", "test_website_revoked": "https://revoked.hipkig1ov.hinet.net", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AKaUweMnH6Z5T67BKoMCmPs=", "issuer_spki_sha256": "hWMpQ4xuO/I1s2fKIr56xHfWzraaOM5aZ0fGcwoT160=", "scts": [ { "log_id": "yzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOc=", "timestamp": 1782439056723 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1782439057023 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1782439057108 }, { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1782439057364 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1782439058253 } ] } }, { "ca_sha256_fingerprint": "F356BEA244B7A91EB35D53CA9AD7864ACE018E2D35D5F8F96DDF68A6F41AA474", "ca_label": "Atos TrustedRoot 2011", "test_website_revoked": "https://pki-revoked.atos.net", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "MusV28MVJBKZcUGW", "issuer_spki_sha256": "SD8O2olCwqFt3wL6/lvBiVzprjUyo7vWr7bIS3B3am8=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1779873640412 }, { "log_id": "lE5Dh/rswe+B8xkkJqgYZQHH0184AgE/cmd9VTcuGdg=", "timestamp": 1779873640403 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1779873640357 } ] } }, { "ca_sha256_fingerprint": "F3896F88FE7C0A882766A7FA6AD2749FB57A7F3E98FB769C1FA7B09C2C44D5AE", "ca_label": "BJCA Global Root CA1", "test_website_revoked": "https://demossl-rsa-revoked.bjca.org.cn", "detail": { "end_entity_cert": "MIIIUjCCBjqgAwIBAgIQAPI4vSD93jdY5INy0u6sIDANBgkqhkiG9w0BAQsFADBSMQswCQYDVQQGEwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxGzAZBgNVBAMMEkJKQ0EgRVYgU1NMIENBMSBHMjAeFw0yNjA0MTYxMDA2MzlaFw0yNjEwMTMxMDA3MzlaMIIBSjETMBEGCysGAQQBgjc8AgEDEwJDTjEaMBgGCysGAQQBgjc8AgECDAnljJfkuqzluIIxGjAYBgsrBgEEAYI3PAIBAQwJ5YyX5Lqs5biCMRgwFgYDVQQPDA9CdXNpbmVzcyBFbnRpdHkxGzAZBgNVBAUTEjkxMTEwMTA4NzIyNjE5NDExQTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeWMl+S6rOW4gjESMBAGA1UEBwwJ5YyX5Lqs5biCMTYwNAYDVQQJDC3ljJfkuqzluILmtbfmt4DljLrljJflm5vnjq/opb/ot682OOWPtzE1MDHlj7cxLTArBgNVBAoMJOWMl+S6rOaVsOWtl+iupOivgeiCoeS7veaciemZkOWFrOWPuDEoMCYGA1UEAwwfZGVtb3NzbC1yc2EtcmV2b2tlZC5iamNhLm9yZy5jbjCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKTzgFJhrYH4gZCV1KCZeGeS14Yve2cbj/wX0dBdrKZPlTjxv+RWBCUsAisWTqesCdA7VPDTBKUoJMVWL8UHcHmmV9RvGs9gD27ZDU55/m8CAuW2bL0WJ3M+CosYAm5l86j9xzTMimPWf4Ip6hrwIorZTATwzreIjb0ic1T+CKv/aeMr+K1dZKP+GLuLCO0AkfdJ2vOwEisjzmr/BSyWxJoCduYi3OT0HmYHX3JoVPTERSR+/Gtt7PB39VnPdZ24RvBSHP1ymgIX2QLoAG2KgtQ3UjySA4fequ+E1Z6za7WxjQiXm5HCya45aW/IChuh1DkDUqRqUZaTUUk+rEQg+3MCAQOjggMqMIIDJjBzBggrBgEFBQcBAQRnMGUwQgYIKwYBBQUHMAKGNmh0dHA6Ly9yZXBvLmJqY2EuY24vZ2xvYmFsL2NlcnQvQkpDQV9FVl9TU0xfQ0ExX0cyLmNydDAfBggrBgEFBQcwAYYTaHR0cDovL29jc3AuYmpjYS5jbjAdBgNVHQ4EFgQUla5qBmEANLnlgrSruletWMpPJScwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSeXZPc8LkSb4I+7vtQl+urx80hFjBGBgNVHSAEPzA9MAcGBWeBDAEBMDIGCSqBHIbvMgICCzAlMCMGCCsGAQUFBwIBFhdodHRwczovL3d3dy5iamNhLmNuL0NQUzBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vcmVwby5iamNhLmNuL2dsb2JhbC9jcmwvQkpDQV9FVl9TU0xfQ0ExX0cyLmNybDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwKgYDVR0RBCMwIYIfZGVtb3NzbC1yc2EtcmV2b2tlZC5iamNhLm9yZy5jbjCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHcA1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXcAAAGdlcK/QQAABAMASDBGAiEAkWW58lRodlWKRL5jv7sSKEUG0hKJlI933uE7+nqIpvYCIQDEokKjShkqDLgTKmW7s6wkf4rHSYZATxKfmUmEVq0GewB1ANgJVTuUT3r/yBYZb5RPhauw+Pxeh1UmDxXRLnK7RUsUAAABnZXCxnkAAAQDAEYwRAIgDcgS5dKYG4KTxL7epTfeAl+IcNtiYIEv/DvGuQv3NcECIB/NPmdDo7MXwaYZ35I5WyjB4QZwBwfOfYpX6ZUan1TLAHYAr2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzoAAAGdlcLJdgAABAMARzBFAiEAyYnjJaeM/bsRQ2jmRtriuQ7S0kH8nl7ZN3qz6RmVlwMCIBH0HsFBy9Znrm6d16GnR7v3sU1b5xza91g0x6Mpdh7QMA0GCSqGSIb3DQEBCwUAA4ICAQB8FItI39jWk+N+lmZUwVmhdA6OctX++HFWOgvrNf4cnnvnjxBpf0KjU3dHGy5JHy6ED0VNj36A75T3qOpIX67imD6Bt1KVZyptnc2A4L7CHowsecyGcMzME27VQ3J4ynDW60Wq5/txwQ9TgKpg7QPcNvrphsQW9UKhS7NlWILsq6pacgrlYO1ChzU7985aijnKJHrkD0tH4f6T4QuUbXrIdDZWcRjw6czbPHcUP1+n+9XQBOMWR4WCBJfq3FE8DOHPLo1L61RZHOdrBF5aJX294Fn8WEI7PJ3zP1oCa3B3+HxfaHzxqRaMiY8uV+PGeTkk1mm7s84wJ8YgFbQgpz3Uz+4qjZmaC4GP8tg7CAnFDiwROv0lRqK1UqXbW+HOgbWWpmlDhnDhQvzM5Hk/SwfOTTMcLfVD2t7TZXFNjUV+5LYASPbu6fyx1fYKnSsbbzLtJGri/98yrsCVr77+ZGLgkRLQkzV4jeLMF4FJC4EtFgK/ihcAY9a6K95wFHjd/Oh0NGCpV57q/r2XzIevSmbN+5Kw0HeZe3c2dDmtDFWA7sAFMCBi27hj1PCGGsvec5s4T0jzc04R+K9rEO1t8o9T6d8NzKhsvgfnF+2+Gcf9cwhpms1BjmtC4A9whk2u5F2AoUwhyFGTFUMJ3cUamjMT2fehkE7SivWGU37Rk8XW+w==", "intermediates": [ "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" ], "serial": "API4vSD93jdY5INy0u6sIA==", "issuer_spki_sha256": "tSn2eZmYPk/XxYYz5YXtkHIwDjvcWl+0iRSAcHMB/AQ=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1776334061377 }, { "log_id": "2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQ=", "timestamp": 1776334063225 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1776334063990 } ] } }, { "ca_sha256_fingerprint": "FB8FEC759169B9106B1E511644C618C51304373F6C0643088D8BEFFD1B997599", "ca_label": "ANF Secure Server Root CA", "test_website_revoked": "https://testrevokedsslev.anf.es", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "AzodwscNl4ACUTtb", "issuer_spki_sha256": "uiEcUi6rH4hr3LVqMdSOFpFfUPBYYzPvgxeYIKOOeGk=", "scts": [ { "log_id": "1tWNqdAXU/NqSqDHV0kCr+vH3CzTjNn3ZMgMiRkenwI=", "timestamp": 1782808634090 }, { "log_id": "RMK9DOkUDmSlyUoBkwpaobs1lw4A7hEWiWgqHETXtWY=", "timestamp": 1782808634242 }, { "log_id": "ABpdGhwtk3W2SFV4+C9xoa5u7zl9KXyK4xV7yt7hoB4=", "timestamp": 1782808634615 }, { "log_id": "RqI5Z8YNtkaHxm89+ZmUdpOmphEghFfVVefj0KHZtkY=", "timestamp": 1782808634951 }, { "log_id": "YEyar3p/d18B1Ab8kg3ImesLHH34yVIb+voXdzuXi8k=", "timestamp": 1782808635338 }, { "log_id": "HJ9oLOn68EVpUPgbloqH3dsyENhM5siy44JSSsTPWZ8=", "timestamp": 1782808635616 }, { "log_id": "jspHC6zeavOiBrCkeoS3Rv4fxr+VPiXmm07kAkjzxug=", "timestamp": 1782808636566 }, { "log_id": "ooEAGHNOF24dR+CVQPOBulRml81jqENQcW64CU7a8Q0=", "timestamp": 1782808637965 }, { "log_id": "7drrgVxjITRJtHvlB3kFq9DZMUfCesUUazvFjkPptsc=", "timestamp": 1782808638695 }, { "log_id": "VzRIzG4dLA3JS2nyh9Hv5IPHolxQxTILuzrep29usEE=", "timestamp": 1782808639680 }, { "log_id": "WW5sM4aUsllyolbIoOjdkEp26Ag92oc7AQg4KBQ87lk=", "timestamp": 1782808641831 }, { "log_id": "ROgi/CurDpLu0On61pZkYCd20Bdg4IkFCckjobA/w38=", "timestamp": 1782808641631 }, { "log_id": "Gouda43XkdHNBUnttgNV1ga2T60w23H+eI8Px8j7xLE=", "timestamp": 1782808645293 } ] } }, { "ca_sha256_fingerprint": "FD73DAD31C644FF1B43BEF0CCDDA96710B9CD9875ECA7E31707AF3E96D522BBD", "ca_label": "T-TeleSec GlobalRoot Class 3", "test_website_revoked": "https://root-class3-revoked.test.telesec.de/", "detail": { "end_entity_cert": "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", "intermediates": [ "MIIG2jCCBMKgAwIBAgIQFpzL7dh7ymqLvziNKSteUTANBgkqhkiG9w0BAQwFADBjMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAyMDIzMB4XDTI0MTEyNjEwNTEwNFoXDTM0MTEyNTIzNTk1OVowXjELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkgR21iSDEmMCQGA1UEAwwdVGVsZWtvbSBTZWN1cml0eSBEViBSU0EgQ0EgMjQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCUlIueFOsL1p9+ZRmdYQzTOwoweVKshxe10QXXMA0yHgI6XWose7YiF6dnfeN/aK+2w4cWOSt+EOjhBnM0vMqqxjOkw92spap9euVZ5QWrOnssvFdpnyrnG+MUDxtckU7ysL7PKafluctMKlJtsghBd2zImHRIV8Rl4H6feIzMjpkClVAQW9pt9+Yint0VOuEhF2NYMWkW9fKQsOscZ2/KU+aWOs9OC7kW8vaAkj9aBvxvPQGpy3GCHjo6qx9dzbDcTZOvq8cXL9EVR6svjpdZGirQFxnkHDGE6rdbsxvjDZtjJI/kVrBn6xaiw5IZRl0Ht65BDCZvHH4K2ig7Th/cciYzRKy+rA0TvOyLRhUMe80WEKaAmtLePz0/vsDMt6hDyHMSln3M6ChrMsz9plzdnGmcK0dSlDpijIo2EG2wnv7Nz396rKwK9aGdOul/hLb79PZ1xY/O/IUqM829OJoCk58peAk+iT4YqyDvceFmnlVAuQPhDW7Zyon2eMdBKYzboJuJaB9QzDZ87ayeCLjk80gQ2l3Cr1rw0r3GCnZny1kaF1H8kMHH56gIy7VucrorRo5b6HnFmURRP+rRCUrHS9L9fT9fGYoQ1q7cbvl3SbDhS7fI02wtXToSpRm2ZPcBjkz69SBDvP58ZHVwd7wmNobemumvUDzlEZcyKlUrmwIDAQABo4IBjTCCAYkwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSOUas/MezRbC0laBB/KO8QaRjMxTAfBgNVHSMEGDAWgBS2p5eCPXSFm/c8n5OalXl1UoxtRzASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly90c3Rsc3JyMjMuY3JsLnRlbGVzZWMuZGUvcmwvVGVsZWtvbV9TZWN1cml0eV9UTFNfUlNBX1Jvb3RfMjAyMy5jcmwwgZwGCCsGAQUFBwEBBIGPMIGMMDIGCCsGAQUFBzABhiZodHRwOi8vdHN0bHNycjIzLm9jc3AudGVsZXNlYy5kZS9vY3NwcjBWBggrBgEFBQcwAoZKaHR0cDovL3RzdGxzcnIyMy5jcnQudGVsZXNlYy5kZS9jcnQvVGVsZWtvbV9TZWN1cml0eV9UTFNfUlNBX1Jvb3RfMjAyMy5jcnQwEwYDVR0gBAwwCjAIBgZngQwBAgEwDQYJKoZIhvcNAQEMBQADggIBAIBhqZkbyGiq5tYCR+VCAC6WbLzX+OcPcVEx694vH1WLdxok60xWXA7orDAzPRGOmoHLH9oti8aLsJEV+OLeCca39KpFpSqBRXzSUbSj5dyQIFA7+Kgj/3D/9H6KDHp4Y2wA3xkluPWlHhyTXolTQwaHiMPJbAQJz29xcZSFsxtmLc/7VExl1SbpkCFHedx67CvZOAsZDm9dXOO9r+ux/7iOAkK5WwVlL7oKwQLlOFEwX2vBJ1pLOZrBDqFoxQwV2HE151+IKhwodPA9W7mg3wrCAIar233aUmmyeTHiySs8eF22cuhumb1/aLD3yXKDwy1BWEJfG0L18HwxbZWpfClpnUlKahKbdzU3X17TEWGIkmRl1ufhFIMBj5QEfj8CoaQvduFJLm5V3s0BBAaYFqXmJkXQNW/cX2eNQmbAia22AcCGmHjz0NCos/KtQy5XNTq1pUp9TjAMCLhgVzjkS6+S8ceBBLeiayaMLLymfFT/e8sxMFffDrv1zo1sFkY/7nSLv24k97NhRyh4j5wIDPCpe/omEw0nMftbb11CDwEI27hw08A50q8N2wlQJ6tUTjmRRCz6QrK6Nrs/3cAc4uZfEesZ2v9iaQUKcnX/4PFQBvFYmhF1avs72pGvGH2PrqgweblnI19WjUEEAKPegWQT+M1cH4bkeYe3Y9/syOYc", "MIIFrzCCBJegAwIBAgIQI4s2B234rNrPfrMASSeBszANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMjYwMzE5MTIwMzE5WhcNMzMwOTMwMjM1OTU5WjBjMQswCQYDVQQGEwJERTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxla29tIFNlY3VyaXR5IFRMUyBSU0EgUm9vdCAyMDIzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7TWhgYDzy0ppW8L7UYOuJv3hbvOBEn1xQP+HdUIpIe2BUizfEsEZhInBvcUo1dVLbETWTNsHlkpVeso2ggQ2qKX8J/ZJ8dVynpH5I9Zwe7v1m8Hsk88Z6mV+iHCgc/z2/7VWYuFzajSYPoK4rJVT9AGgJwdyowBToOSyq4M4VzMllJ++SB2Y4aO6nlzNBHFRfXV4q/NZqsTgYL6Pg1K4dRpBNe288zpj6akURdfmUtFu0t684/ULO+bgxL1DZBOmzvSYN2yKlaiXyEcP8F4Qi+cdHP6xO6AFM2gFQYLBAysByOePTavotfbNa0S1592L7OoltAAiV02wsbIxwRbO//0UhLdH+rLxcN7bi2w2WKR8sxHRw3d/X7Yl4A3F0rP5uLh32zdxcUfjYBhPJLZ1N3i5o2Kvvclyji/Mu67b5BVSGQcz+2q3LUuQKIJz/hiLNY3bpwRqvurBTTY7FjaRMu+2QImRQ+DyoqsELubyTA4WNCCsh8EtfslmRxcUEaTz96EkiavYGsihXLGj94xtyAHJT8nsxPysUTPRyIPRyZ8d1Ec0KT7LsA76gwsoWOUp3D98qJ/Jtgq7puhGFg+W5XvkanpIbXaYBaXcbR5CHkLaGuBS97WDwBp7eDUsOPUf/UmjLtJZY7+AsIyTc8s1ppmVImFlA2D7L5NL+pqcgDsCAwEAAaOCAT0wggE5MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtqeXgj10hZv3PJ+TmpV5dVKMbUcwHwYDVR0jBBgwFoAUtQP3djthgmoSqhhT6wMhlL/+zsowDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAKBggrBgEFBQcDATBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vZ3JjbDMuY3JsLnRlbGVzZWMuZGUvcmwvVC1UZWxlU2VjX0dsb2JhbFJvb3RfQ2xhc3NfMy5jcmwwXAYIKwYBBQUHAQEEUDBOMEwGCCsGAQUFBzAChkBodHRwOi8vZ3JjbDMuY3J0LnRlbGVzZWMuZGUvY3J0L1QtVGVsZVNlY19HbG9iYWxSb290X0NsYXNzXzMuY3J0MBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQsFAAOCAQEAGTUIq5mVDdVPMvppnb10OEJo+g5YhhTNsPs25MSn9Cu1bG1pCIJfI7bvSp1byv2a2vLBArSljqW22NBOfj6PfQmMGp4t6xQNvR6sUfSZnsJE1wUuJyTBIKwA/XdX8UafX0bqNxS3XeXr8sxvcoOQh9dGhuko0YI3KQHVO7dhGho2GESeKDuk+19dd+oikYW5HErxDR36em/tLgdoI8xXAMHc6yg4luYPFN6JZ3GqCUAj3/k6oir+XMAe10/cY/W5hRJ4Xb+1gAlvMt5BN98P8hT92lg+c75J2Io83rMjSIZiF2MnWA2bThce9d6L6G79f1dxM5NJ6Vw2QmkUQoy3mQ==" ], "serial": "FQK7QiC09kUbHwHDbfIGxw==", "issuer_spki_sha256": "tQbtm3UZur5Jv1CmL4d5hpGJ3Fu3hdpnIVGHV4syVas=", "scts": [ { "log_id": "qCbL4wrGNRJGUz/gZfFPGdluGQgTxB3ZbXkAsxI8VSc=", "timestamp": 1771238963498 }, { "log_id": "bP5QGUOoXqkWvFLRM+TcyR7xQRx9JYQg0XOAnhgY6zo=", "timestamp": 1771238963151 }, { "log_id": "yKPEf8ezrbk1awE/anoSbeM6TkOlxkb5l605dZkdz5o=", "timestamp": 1771238962939 }, { "log_id": "Rq+GPTs+5Z+ld96oJF02sNntIqIj9GF3QSKUUu6VUF8=", "timestamp": 1771238962893 }, { "log_id": "r2eIO1ewTt2Pptl+9i6o64EKx3Fg8CReVdYML+eFhzo=", "timestamp": 1771238962744 } ] } }, { "ca_sha256_fingerprint": "FE7696573855773E37A95E7AD4D9CC96C30157C15D31765BA9B15704E1AE78FD", "ca_label": "Certum Trusted Root CA", "test_website_revoked": "https://revoked-ctrca.certificates.certum.pl/", "detail": { "end_entity_cert": "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", "intermediates": [ "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" ], "serial": "Gm1yGFIXe2EEuwC7zi1P9A==", "issuer_spki_sha256": "gqB1V0MFQpiBCTz+E+8NcNvy/Y4bUkg+ByYHikZE2W4=", "scts": [ { "log_id": "1219ENGn9XfCx+lf1wC/+YLJM1pl4dCzAXMXwMjFaXc=", "timestamp": 1758285229558 }, { "log_id": "rKswcGzr7IQx9BPS9JFfER5CJEOx8qaMTzwrO6ceAsM=", "timestamp": 1758285229554 }, { "log_id": "wjF+V0UZo0XufzjespBB68fCIVoiv3/Vta12mtkOUs0=", "timestamp": 1758285229582 } ] } } ], "timestamp": 1783507655 }upki-1.0.0~beta.3/revoke-test/tests/000077500000000000000000000000001523060067200172665ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/tests/api/000077500000000000000000000000001523060067200200375ustar00rootroot00000000000000upki-1.0.0~beta.3/revoke-test/tests/api/ffi.rs000066400000000000000000000034151523060067200211540ustar00rootroot00000000000000use core::ptr; use std::ffi::CString; use revoke_test::CertificateDetail; use rustls_pki_types::CertificateDer; use upki::ffi::{ upki_certificate_der, upki_check_revocation, upki_config, upki_config_free, upki_config_new, upki_result, }; use super::{TEST_CONFIG_PATH, TestResult}; pub(super) fn ffi(detail: &CertificateDetail) -> TestResult { let certs = [detail.end_entity_cert_der().unwrap()] .into_iter() .chain( detail .intermediates_der() .collect::>>>() .unwrap(), ) .collect::>(); let mut cert_pointers = Vec::new(); for c in &certs { cert_pointers.push(upki_certificate_der { data: c.as_ptr(), len: c.len(), }); } let mut config = OwnedConfig(ptr::null_mut()); assert!(matches!( unsafe { upki_config_new( CString::new(TEST_CONFIG_PATH) .unwrap() .as_ptr(), &mut config.0, ) }, upki_result::UPKI_OK )); let rc = unsafe { upki_check_revocation(config.0, cert_pointers.as_ptr(), cert_pointers.len()) }; drop(certs); // extend lifetime for benefit of cert_pointers match rc { upki_result::UPKI_REVOCATION_REVOKED => TestResult::CorrectlyRevoked, upki_result::UPKI_REVOCATION_NOT_COVERED | upki_result::UPKI_REVOCATION_NOT_REVOKED => { TestResult::IncorrectlyNotRevoked } e => panic!("upki_check_revocation() failed with {:?}", e as usize), } } struct OwnedConfig(*mut upki_config); impl Drop for OwnedConfig { fn drop(&mut self) { unsafe { upki_config_free(self.0) }; } } upki-1.0.0~beta.3/revoke-test/tests/api/openssl.rs000066400000000000000000000103451523060067200220730ustar00rootroot00000000000000use core::ffi::{c_int, c_long, c_void}; use core::{mem, ptr}; use std::ffi::CString; use openssl_sys::{ OPENSSL_STACK, OPENSSL_sk_free, OPENSSL_sk_new_null, OPENSSL_sk_push, SSL, SSL_CTX, SSL_CTX_free, SSL_CTX_new, SSL_free, SSL_get_ex_data_X509_STORE_CTX_idx, SSL_new, TLS_client_method, X509_STORE_CTX, X509_STORE_CTX_free, X509_STORE_CTX_get_error, X509_STORE_CTX_new, X509_V_ERR_CERT_REVOKED, d2i_X509, stack_st_X509, }; use revoke_test::CertificateDetail; use upki::ffi::{upki_config_new, upki_result}; use upki_openssl::{upki_openssl_set_config, upki_openssl_verify_callback}; use super::{TEST_CONFIG_PATH, TestResult}; pub(super) fn openssl(detail: &CertificateDetail) -> TestResult { let mut chain = Chain::new(); for cert in [detail.end_entity_cert_der().unwrap()] .into_iter() .chain( detail .intermediates_der() .collect::>>() .unwrap(), ) { chain.push(&cert); } let mut config = ptr::null_mut(); assert!(matches!( unsafe { upki_config_new( CString::new(TEST_CONFIG_PATH) .unwrap() .as_ptr(), &mut config, ) }, upki_result::UPKI_OK )); let ssl_ctx = SslCtx::new(); unsafe { upki_openssl_set_config(ssl_ctx.0, config) }; let ssl = ssl_ctx.new_ssl(); let mut store_ctx = StoreCtx::new(); store_ctx.attach_ssl(ssl); store_ctx.set_error_depth(0); store_ctx.set_verified_chain(chain); let rc = unsafe { upki_openssl_verify_callback(1, store_ctx.ptr) }; match rc { 1 => TestResult::IncorrectlyNotRevoked, 0 if store_ctx.error() == X509_V_ERR_CERT_REVOKED => TestResult::CorrectlyRevoked, _ => panic!( "upki_openssl_verify_callback failed with rc={rc:?} store_ctx.error={:?}", store_ctx.error() ), } } struct SslCtx(*mut SSL_CTX); impl SslCtx { fn new() -> Self { Self(unsafe { SSL_CTX_new(TLS_client_method()) }) } fn new_ssl(&self) -> Ssl { Ssl(unsafe { SSL_new(self.0) }) } } impl Drop for SslCtx { fn drop(&mut self) { unsafe { SSL_CTX_free(self.0) }; } } struct Ssl(*mut SSL); impl Drop for Ssl { fn drop(&mut self) { unsafe { SSL_free(self.0) }; } } struct StoreCtx { ptr: *mut X509_STORE_CTX, attached_ssl: Option, } impl StoreCtx { fn new() -> Self { Self { ptr: unsafe { X509_STORE_CTX_new() }, attached_ssl: None, } } fn error(&self) -> c_int { unsafe { X509_STORE_CTX_get_error(self.ptr) } } fn set_error_depth(&mut self, depth: i32) { unsafe { X509_STORE_CTX_set_error_depth(self.ptr, depth) }; } fn set_verified_chain(&mut self, mut chain: Chain) { unsafe { X509_STORE_CTX_set0_verified_chain(self.ptr, chain.steal()) }; } fn attach_ssl(&mut self, ssl: Ssl) { unsafe { X509_STORE_CTX_set_ex_data(self.ptr, SSL_get_ex_data_X509_STORE_CTX_idx(), ssl.0.cast()) }; self.attached_ssl = Some(ssl); } } impl Drop for StoreCtx { fn drop(&mut self) { unsafe { X509_STORE_CTX_free(self.ptr) } } } struct Chain(*mut stack_st_X509); impl Chain { fn new() -> Self { Self(unsafe { OPENSSL_sk_new_null() as *mut stack_st_X509 }) } fn push(&mut self, der_bytes: &[u8]) { unsafe { let mut ptr = der_bytes.as_ptr(); let x509 = d2i_X509(ptr::null_mut(), &mut ptr, der_bytes.len() as c_long); assert!(!x509.is_null()); OPENSSL_sk_push(self.0 as *mut OPENSSL_STACK, x509 as *mut c_void); } } fn steal(&mut self) -> *mut stack_st_X509 { mem::replace(&mut self.0, ptr::null_mut()) } } impl Drop for Chain { fn drop(&mut self) { unsafe { OPENSSL_sk_free(self.0 as *mut OPENSSL_STACK) } } } unsafe extern "C" { fn X509_STORE_CTX_set_error_depth(ctx: *mut X509_STORE_CTX, depth: c_int); fn X509_STORE_CTX_set0_verified_chain(ctx: *mut X509_STORE_CTX, chain: *mut stack_st_X509); fn X509_STORE_CTX_set_ex_data(ctx: *mut X509_STORE_CTX, idx: c_int, ptr: *mut c_void); } upki-1.0.0~beta.3/revoke-test/tests/system_tests.rs000066400000000000000000000215521523060067200224070ustar00rootroot00000000000000//! NB. these tests require an up-to-date `revoke-test/test-sites.json` input, and //! that the fetched revocation data set matches. They run `upki fetch` into an //! empty directory and so do significant network IO. use std::fs::{self, File}; use std::io::Write; use std::path::Path; use std::process::{Command, Stdio}; use std::sync::Arc; use std::time::SystemTime; use revoke_test::{CertificateDetail, RevocationTestSite, RevocationTestSites}; use rustls::client::danger::ServerCertVerifier; use rustls::pki_types::{ServerName, UnixTime}; use rustls::{CertificateError, Error, RootCertStore}; use rustls_pki_types::CertificateDer; use rustls_upki::{Policy, ServerVerifier}; #[path = "api/ffi.rs"] mod ffi; #[cfg(not(windows))] #[path = "api/openssl.rs"] mod openssl; #[ignore] #[test] fn real_world_system_tests() { fs::create_dir_all( Path::new(TEST_CONFIG_PATH) .parent() .unwrap(), ) .unwrap(); fs::write(TEST_CONFIG_PATH, TEST_CONFIG).unwrap(); let fetch = upki() .arg("--config-file") .arg(TEST_CONFIG_PATH) .arg("fetch") .output() .expect("cannot execute 'upki fetch'"); assert!( fetch.status.success(), "'upki fetch' failed ({})\nstdout:\n{}\nstderr:\n{}", fetch.status, String::from_utf8_lossy(&fetch.stdout), String::from_utf8_lossy(&fetch.stderr), ); let tests = serde_json::from_reader::<_, RevocationTestSites<'static>>( File::open("../revoke-test/test-sites.json") .expect("cannot find ../revoke-test/test-sites.json"), ) .expect("cannot parse test-sites.json"); assert!( !tests.expired(), "test-sites.json is expired, please regenerate" ); let high_level_cli = test_each_site(tests.sites.iter(), high_level_cli, "cli"); let ffi = test_each_site(tests.sites.iter(), ffi::ffi, "ffi"); #[cfg(not(windows))] let openssl = test_each_site(tests.sites.iter(), openssl::openssl, "openssl"); let verifier = ServerVerifier::new( Policy::default(), Some(TEST_CONFIG_PATH.into()), Arc::new(RootCertStore { roots: webpki_roots::TLS_SERVER_ROOTS.to_vec(), }), Arc::new(rustls::crypto::aws_lc_rs::default_provider()), ) .unwrap(); let rustls_results = test_each_site(tests.sites.iter(), verifier, "rustls"); let iter = tests .sites .iter() .zip(high_level_cli.iter()) .zip(rustls_results.iter()) .zip(ffi.iter()); #[cfg(not(windows))] let iter = iter.zip(openssl.iter()); for cases in iter { #[cfg(windows)] let (((site, high), rustls), ffi) = cases; #[cfg(not(windows))] let ((((site, high), rustls), ffi), openssl) = cases; // When rustls reports the cert as expired it short-circuits before doing any revocation // check, so its verdict says nothing about revocation status. The high-level API does no // expiry check, so the two are not comparable in that case; skip the comparison. assert!( high == rustls || *rustls == TestResult::Expired, "site {site:?} revocation result disagrees between high-level API ({high:?}) and rustls verifier ({rustls:?})" ); assert!( high == ffi, "site {site:?} revocation result disagrees between high-level API ({high:?}) and FFI API ({ffi:?})" ); #[cfg(not(windows))] assert!( high == openssl, "site {site:?} revocation result disagrees between high-level API ({high:?}) and OpenSSL API ({openssl:?})" ); } } impl TestCase for ServerVerifier { fn run(&self, detail: &CertificateDetail, test: &RevocationTestSite) -> TestResult { // Decode certificates from base64 let end_entity = detail .end_entity_cert_der() .expect("cannot decode end_entity_cert"); let intermediates = detail .intermediates_der() .collect::>>>() .expect("cannot decode issuer_cert"); let url = &test.test_website_revoked; let host = url .strip_prefix("https://") .or_else(|| url.strip_prefix("http://")) .unwrap_or(url) .split('/') .next() .unwrap(); // Strip port if present let domain = host.split(':').next().unwrap(); let server_name = ServerName::try_from(domain.to_string()).unwrap(); match self.verify_server_cert( &end_entity, &intermediates, &server_name, &[], UnixTime::now(), ) { Ok(_) => TestResult::IncorrectlyNotRevoked, Err(Error::InvalidCertificate(CertificateError::Revoked)) => { TestResult::CorrectlyRevoked } Err(Error::InvalidCertificate( CertificateError::Expired | CertificateError::ExpiredContext { .. }, )) => TestResult::Expired, Err(e) => panic!( "unexpected error verifying certificate: {e} (site: {})", test.test_website_revoked ), } } } fn high_level_cli(detail: &CertificateDetail) -> TestResult { let mut c = upki() .arg("--config-file") .arg(TEST_CONFIG_PATH) .arg("revocation") .arg("check") .stdin(Stdio::piped()) .stdout(Stdio::piped()) .spawn() .expect("cannot run upki"); let mut stdin = c .stdin .take() .expect("cannot get stdin"); for base64 in [&detail.end_entity_cert, &detail.intermediates[0]] { stdin .write_all(b"-----BEGIN CERTIFICATE-----\r\n") .unwrap(); stdin .write_all(base64.as_bytes()) .unwrap(); stdin .write_all(b"\r\n-----END CERTIFICATE-----\r\n") .unwrap(); } stdin.flush().unwrap(); drop(stdin); let e = c.wait_with_output().unwrap(); match e.status.code() { Some(2) => { assert_eq!(e.stdout, b"CertainlyRevoked\n"); TestResult::CorrectlyRevoked } Some(0) => { assert!(matches!( e.stdout.as_slice(), b"NotCoveredByRevocationData\n" | b"NotRevoked\n" )); TestResult::IncorrectlyNotRevoked } _ => { println!("unexpected stdout {}", String::from_utf8_lossy(&e.stdout)); panic!("unexpected error"); } } } fn test_each_site<'a>( sites: impl Iterator, test_one: impl TestCase, kind: &str, ) -> Vec { let mut results = Vec::new(); for t in sites { println!("testing [{kind}] {}... ", t.test_website_revoked); let Some(detail) = &t.detail else { results.push(TestResult::DecorationFailed); continue; }; let start = SystemTime::now(); let result = test_one.run(detail, t); let time_taken = start.elapsed().unwrap(); println!("duration: {time_taken:?}"); results.push(result); } let correctly_revoked = results .iter() .filter(|item| matches!(item, TestResult::CorrectlyRevoked)) .count(); let incorrectly_not_revoked = results .iter() .filter(|item| matches!(item, TestResult::IncorrectlyNotRevoked)) .count(); let decorate_failed = results .iter() .filter(|item| matches!(item, TestResult::DecorationFailed)) .count(); let expired = results .iter() .filter(|item| matches!(item, TestResult::Expired)) .count(); println!("summary:"); println!(" correctly revoked: {correctly_revoked}"); println!(" incorrectly not revoked: {incorrectly_not_revoked}"); println!(" test case absent: {decorate_failed}"); println!(" test case expired: {expired}"); assert!(correctly_revoked > 0); assert!(correctly_revoked > incorrectly_not_revoked); results } fn upki() -> Command { let mut cmd = Command::new("cargo"); cmd.arg("run") .arg("--quiet") .arg("--package") .arg("upki-cli") .arg("--"); cmd } impl TestCase for F where F: Fn(&CertificateDetail) -> TestResult, { fn run(&self, detail: &CertificateDetail, _: &RevocationTestSite) -> TestResult { self(detail) } } trait TestCase { fn run(&self, detail: &CertificateDetail, test: &RevocationTestSite) -> TestResult; } #[derive(Debug, Clone, Copy, PartialEq)] enum TestResult { CorrectlyRevoked, IncorrectlyNotRevoked, DecorationFailed, Expired, } const TEST_CONFIG_PATH: &str = "tmp/system-test/config.toml"; const TEST_CONFIG: &str = "cache-dir=\"tmp/system-test\"\n\ [revocation]\n\ fetch-url=\"https://upki.rustls.dev/revocation/\"\n"; upki-1.0.0~beta.3/rustls-upki/000077500000000000000000000000001523060067200161565ustar00rootroot00000000000000upki-1.0.0~beta.3/rustls-upki/Cargo.toml000066400000000000000000000011071523060067200201050ustar00rootroot00000000000000[package] name = "rustls-upki" version = "1.0.0-beta.3" license.workspace = true edition.workspace = true description = "A rustls verifier with upki revocation integration" repository.workspace = true rust-version.workspace = true readme = "README.md" [dependencies] rustls = { workspace = true, features = ["std", "tls12"] } rustls-webpki.workspace = true upki = { version = "=1.0.0-beta.3", path = "../upki" } [dev-dependencies] rustls = { workspace = true, features = ["aws-lc-rs"] } rustls-native-certs = "0.8.3" [lints] workspace = true [package.metadata.dist] dist = false upki-1.0.0~beta.3/rustls-upki/README.md000066400000000000000000000040631523060067200174400ustar00rootroot00000000000000# rustls-upki [rustls](https://crates.io/crates/rustls) integration for [upki](https://github.com/rustls/upki), providing browser-grade certificate revocation checking for TLS clients. This crate exposes a [`ServerCertVerifier`] that verifies a server certificate in the usual way (using [`webpki`](https://crates.io/crates/rustls-webpki) against a set of trusted roots) and then checks its revocation status using upki's [crlite-clubcard](https://eprint.iacr.org/2025/610) data set. Revocation checking requires a local copy of upki's revocation data, which updates several times per day. See the [upki README] and [PACKAGING.md] for how to fetch and install this data (typically `upki fetch`, or a system-wide setup arranged by your packager). [upki README]: https://github.com/rustls/upki/blob/main/README.md [PACKAGING.md]: https://github.com/rustls/upki/blob/main/PACKAGING.md [`ServerCertVerifier`]: https://docs.rs/rustls/latest/rustls/client/danger/trait.ServerCertVerifier.html ## Error-handling policy `ServerVerifier::new` takes a [`Policy`] that controls how to behave in cases where revocation status cannot be determined conclusively: - When the local upki data is missing - When a certificate is not covered by the revocation data - When a certificate carries no SCTs, and so was not logged in Certificate Transparency, meaning it likely is not publicly trusted Each case maps to an [`Outcome`]: - Allow the connection - Treat the certificate as revoked - Return a specific error `Policy::default()` errors when the data is missing, and allows the other two cases. ## License This crate is distributed under the terms of both the Apache License (Version 2.0) and the MIT license, at your option. See [LICENSE-APACHE] and [LICENSE-MIT] in the repository root for details. [LICENSE-APACHE]: https://github.com/rustls/upki/blob/main/LICENSE-APACHE [LICENSE-MIT]: https://github.com/rustls/upki/blob/main/LICENSE-MIT [`Policy`]: https://docs.rs/rustls-upki/latest/rustls_upki/struct.Policy.html [`Outcome`]: https://docs.rs/rustls-upki/latest/rustls_upki/enum.Outcome.html upki-1.0.0~beta.3/rustls-upki/examples/000077500000000000000000000000001523060067200177745ustar00rootroot00000000000000upki-1.0.0~beta.3/rustls-upki/examples/simpleclient.rs000066400000000000000000000047521523060067200230420ustar00rootroot00000000000000//! This is the simplest possible client using rustls that does something useful: //! it accepts the default configuration, loads some root certs, and then connects //! to rust-lang.org and issues a basic HTTP request. The response is printed to stdout. //! //! It makes use of rustls::Stream to treat the underlying TLS connection as a basic //! bi-directional stream -- the underlying IO is performed transparently. //! //! Note that `unwrap()` is used to deal with networking errors; this is not something //! that is sensible outside of example code. use std::env; use std::io::{Read, Write, stdout}; use std::net::TcpStream; use std::sync::Arc; use rustls::crypto::aws_lc_rs; use rustls::{ClientConnection, RootCertStore, Stream}; use rustls_upki::{Policy, ServerVerifier}; fn main() -> Result<(), Box> { let hostname = env::args() .nth(1) .expect("call with a hostname to access"); let path = env::args() .nth(2) .unwrap_or_else(|| "/".to_string()); let mut root_store = RootCertStore { roots: vec![] }; root_store.add_parsable_certificates(rustls_native_certs::load_native_certs().unwrap()); let provider = Arc::new(aws_lc_rs::default_provider()); let verifier = ServerVerifier::new(Policy::default(), None, root_store.into(), provider.clone())?; let mut config = rustls::ClientConfig::builder_with_provider(provider) .with_safe_default_protocol_versions() .unwrap() .dangerous() .with_custom_certificate_verifier(Arc::new(verifier)) .with_no_client_auth(); // Allow using SSLKEYLOGFILE. config.key_log = Arc::new(rustls::KeyLogFile::new()); let server_name = hostname.clone().try_into()?; let mut conn = ClientConnection::new(Arc::new(config), server_name)?; let mut sock = TcpStream::connect(format!("{hostname}:443"))?; let mut tls = Stream::new(&mut conn, &mut sock); tls.write_all( format!( "GET {path} HTTP/1.1\r\n\ Host: {hostname}\r\n\ Connection: close\r\n\ Accept-Encoding: identity\r\n\ \r\n" ) .as_bytes(), )?; let ciphersuite = tls .conn .negotiated_cipher_suite() .unwrap(); writeln!( &mut std::io::stderr(), "Current ciphersuite: {:?}", ciphersuite.suite() ) .unwrap(); let mut plaintext = Vec::new(); tls.read_to_end(&mut plaintext)?; stdout().write_all(&plaintext)?; Ok(()) } upki-1.0.0~beta.3/rustls-upki/src/000077500000000000000000000000001523060067200167455ustar00rootroot00000000000000upki-1.0.0~beta.3/rustls-upki/src/lib.rs000066400000000000000000000317571523060067200200760ustar00rootroot00000000000000#![doc = include_str!("../README.md")] #![warn(missing_docs)] use core::fmt; use std::path::PathBuf; use std::sync::Arc; use rustls::client::danger::{HandshakeSignatureValid, ServerCertVerified, ServerCertVerifier}; use rustls::crypto::hash::{Hash, HashAlgorithm}; use rustls::crypto::{CryptoProvider, verify_tls12_signature, verify_tls13_signature}; use rustls::pki_types::{CertificateDer, ServerName, UnixTime}; use rustls::{ CertRevocationListError, CertificateError, DigitallySignedStruct, DistinguishedName, ExtendedKeyPurpose, RootCertStore, SignatureScheme, SupportedCipherSuite, }; use upki::revocation::{ CertSerial, CtTimestamp, Index, IssuerSpkiHash, RevocationCheckInput, RevocationStatus, }; use upki::{self, Config, ConfigPath}; use webpki::{EndEntityCert, ExtendedKeyUsage, InvalidNameContext, VerifiedPath}; /// A [`ServerCertVerifier`] that uses upki to check revocation status of server certificates. pub struct ServerVerifier { provider: Arc, sha256: &'static dyn Hash, roots: Arc, config: Config, policy: Policy, } impl ServerVerifier { /// Make a verifier that checks revocation status using upki. /// /// This first verifies the certificate using the `webpki` crate, against the supplied `roots`. /// This uses cryptography specified in `provider`. /// /// `config_path` points to where the upki configuration file can be found -- if it is /// [`None`] then it is searched for in usual places. The configuration file is read and kept /// in memory during this construction, so later changes to it will not be respected. /// /// A certificate which is acceptable in the normal way, issued by one of the `roots` and /// valid for the given server name, is then checked for revocation. `policy` controls /// whether failures in this process are hard errors. pub fn new( policy: Policy, config_path: Option, roots: Arc, provider: Arc, ) -> Result { let sha256 = provider .cipher_suites .iter() .find_map(|scs| { let hash = match scs { SupportedCipherSuite::Tls12(tls12) => tls12.common.hash_provider, SupportedCipherSuite::Tls13(tls13) => tls13.common.hash_provider, }; match hash.algorithm() { HashAlgorithm::SHA256 => Some(hash), _ => None, } }) .expect("no cipher suites supported with SHA256"); let config = ConfigPath::new(config_path) .and_then(|path| Config::from_file_or_user_default(&path)) .map_err(|report| rustls::Error::General(report.to_string()))?; // Pre-roll storage to check it works, and bring (eg. permanent configuration) errors // to forefront prior to any networking. if Index::from_cache(&config).is_err() { let _ = policy.missing_data.as_result()?; } Ok(Self { provider, sha256, roots, config, policy, }) } /// Determine the revocation status of `ee`. /// /// This should have been determined to be issued by a trusted root. `verified_path` /// proves this. /// /// This returns errors only for hard failure cases. fn check_revocation_status( &self, verified_path: &VerifiedPath<'_>, ) -> Result { let issuer_spki = verified_path.issuer_spki(); let issuer_spki_hash = self.sha256.hash(&issuer_spki); let issuer_spki_hash = issuer_spki_hash .as_ref() .try_into() .expect("sha256 must have a 32-byte output"); let mut sct_timestamps = vec![]; let sct_iter = verified_path .end_entity() .sct_log_timestamps(); for ts in sct_iter.map_err(sct_error)? { let ts = ts.map_err(sct_error)?; sct_timestamps.push(CtTimestamp { log_id: ts.log_id, timestamp: ts.timestamp_ms, }); } // Lacking SCTs means we cannot check revocation, and the certificate // probably is not publicly trusted anyway. if sct_timestamps.is_empty() { return self.policy.cert_has_no_scts.as_result(); } let input = RevocationCheckInput::new( CertSerial( verified_path .end_entity() .serial() .to_vec(), ), IssuerSpkiHash(issuer_spki_hash), sct_timestamps, ); match Index::from_cache(&self.config).and_then(|mut index| index.check(&input)) { Ok(rs) => Ok(rs), Err(e) => Err(rustls::Error::General(e.to_string())), } } } impl ServerCertVerifier for ServerVerifier { fn verify_server_cert( &self, end_entity: &CertificateDer<'_>, intermediates: &[CertificateDer<'_>], server_name: &ServerName<'_>, _ocsp_response: &[u8], now: UnixTime, ) -> Result { let ee = EndEntityCert::try_from(end_entity).map_err(webpki_error)?; let verified_path = ee .verify_for_usage( self.provider .signature_verification_algorithms .all, &self.roots.roots, intermediates, now, &ExtendedKeyUsage::server_auth(), None, None, ) .map_err(webpki_error)?; ee.verify_is_valid_for_subject_name(server_name) .map_err(webpki_error)?; match self.check_revocation_status(&verified_path)? { RevocationStatus::NotRevoked => Ok(ServerCertVerified::assertion()), RevocationStatus::NotCoveredByRevocationData => self .policy .cert_not_covered .as_result() .map(|_| ServerCertVerified::assertion()), RevocationStatus::CertainlyRevoked => Err(CertificateError::Revoked.into()), } } fn verify_tls12_signature( &self, message: &[u8], cert: &CertificateDer<'_>, dss: &DigitallySignedStruct, ) -> Result { verify_tls12_signature( message, cert, dss, &self .provider .signature_verification_algorithms, ) } fn verify_tls13_signature( &self, message: &[u8], cert: &CertificateDer<'_>, dss: &DigitallySignedStruct, ) -> Result { verify_tls13_signature( message, cert, dss, &self .provider .signature_verification_algorithms, ) } fn supported_verify_schemes(&self) -> Vec { self.provider .signature_verification_algorithms .supported_schemes() } fn root_hint_subjects(&self) -> Option<&[DistinguishedName]> { None } } impl fmt::Debug for ServerVerifier { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let Self { provider, roots, policy, sha256: _, config, } = self; f.debug_struct("ServerVerifier") .field("provider", &provider) .field("roots", &roots) .field("config", &config) .field("policy", &policy) .finish_non_exhaustive() } } /// Controls the error behavior of this crate. #[derive(Debug)] pub struct Policy { /// What to do if upki filter data is missing pub missing_data: Outcome, /// What to do if upki filter data does not cover a certificate /// /// A certificate can be not covered by the crlite filter if: /// /// - the data is out of date, perhaps because it has not been fetched recently. /// - the data does not cover the certificate, because the backend processing does not cover /// it (at the time of writing, this is the case for some certifcates). pub cert_not_covered: Outcome, /// What to do if certificate was not logged in CT pub cert_has_no_scts: Outcome, } impl Default for Policy { fn default() -> Self { Self { missing_data: Outcome::Error(rustls::Error::General("upki data is missing".into())), cert_not_covered: Outcome::Allowed, cert_has_no_scts: Outcome::Allowed, } } } /// For a given item in a [`Policy`], controls what the outcome is. #[derive(Debug)] pub enum Outcome { /// It's not an error. Allowed, /// The certificate is treated as revoked. TreatAsRevoked, /// The given error is returned. Error(rustls::Error), } impl Outcome { fn as_result(&self) -> Result { match self { Self::Allowed => Ok(RevocationStatus::NotCoveredByRevocationData), Self::TreatAsRevoked => Err(CertificateError::Revoked.into()), Self::Error(err) => Err(err.clone()), } } } fn sct_error(error: webpki::sct::Error) -> rustls::Error { let message = match error { webpki::sct::Error::MalformedSct => "malformed sct", webpki::sct::Error::UnsupportedSctVersion => "unsupported sct version", _ => "unknown sct error", }; rustls::Error::General(message.into()) } fn webpki_error(error: webpki::Error) -> rustls::Error { use webpki::Error::*; match error { BadDer | BadDerTime | TrailingData(_) => CertificateError::BadEncoding.into(), CertNotValidYet { time, not_before } => { CertificateError::NotValidYetContext { time, not_before }.into() } CertExpired { time, not_after } => { CertificateError::ExpiredContext { time, not_after }.into() } InvalidCertValidity => CertificateError::Expired.into(), UnknownIssuer => CertificateError::UnknownIssuer.into(), CertNotValidForName(InvalidNameContext { expected, presented, }) => CertificateError::NotValidForNameContext { expected, presented, } .into(), CertRevoked => CertificateError::Revoked.into(), UnknownRevocationStatus => CertificateError::UnknownRevocationStatus.into(), CrlExpired { time, next_update } => { CertificateError::ExpiredRevocationListContext { time, next_update }.into() } IssuerNotCrlSigner => CertRevocationListError::IssuerInvalidForCrl.into(), InvalidSignatureForPublicKey => CertificateError::BadSignature.into(), UnsupportedSignatureAlgorithm(cx) => { CertificateError::UnsupportedSignatureAlgorithmContext { signature_algorithm_id: cx.signature_algorithm_id, supported_algorithms: cx.supported_algorithms, } .into() } UnsupportedSignatureAlgorithmForPublicKey(cx) => { CertificateError::UnsupportedSignatureAlgorithmForPublicKeyContext { signature_algorithm_id: cx.signature_algorithm_id, public_key_algorithm_id: cx.public_key_algorithm_id, } .into() } InvalidCrlSignatureForPublicKey => CertRevocationListError::BadSignature.into(), UnsupportedCrlSignatureAlgorithm(cx) => { CertRevocationListError::UnsupportedSignatureAlgorithmContext { signature_algorithm_id: cx.signature_algorithm_id, supported_algorithms: cx.supported_algorithms, } .into() } UnsupportedCrlSignatureAlgorithmForPublicKey(cx) => { CertRevocationListError::UnsupportedSignatureAlgorithmForPublicKeyContext { signature_algorithm_id: cx.signature_algorithm_id, public_key_algorithm_id: cx.public_key_algorithm_id, } .into() } RequiredEkuNotFound(webpki::RequiredEkuNotFoundContext { required, present }) => { rustls::Error::from(CertificateError::InvalidPurposeContext { required: ekp_for_values(required.oid_values()), presented: present .into_iter() .map(|eku| ekp_for_values(eku.into_iter())) .collect(), }) } _ => CertificateError::Other(rustls::OtherError(Arc::new(error))).into(), } } pub(crate) fn ekp_for_values(values: impl Iterator) -> ExtendedKeyPurpose { let values = values.collect::>(); match &*values { ExtendedKeyUsage::CLIENT_AUTH_REPR => ExtendedKeyPurpose::ClientAuth, ExtendedKeyUsage::SERVER_AUTH_REPR => ExtendedKeyPurpose::ServerAuth, _ => ExtendedKeyPurpose::Other(values), } } upki-1.0.0~beta.3/upki-cli/000077500000000000000000000000001523060067200153715ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/Cargo.toml000066400000000000000000000015321523060067200173220ustar00rootroot00000000000000[package] name = "upki-cli" version = "1.0.0-beta.3" rust-version.workspace = true edition.workspace = true repository.workspace = true license.workspace = true readme = "README.md" description = "Platform-independent browser-grade certificate infrastructure" [features] default = ["fetch"] fetch = ["upki/fetch", "__fetch"] fetch-native-tls = ["upki/fetch-native-tls", "__fetch"] __fetch = ["upki/__fetch"] [dependencies] clap.workspace = true eyre.workspace = true rustls-pki-types.workspace = true upki = { version = "=1.0.0-beta.3", path = "../upki" } tokio.workspace = true toml.workspace = true tracing.workspace = true tracing-subscriber.workspace = true [dev-dependencies] insta.workspace = true insta-cmd.workspace = true rand.workspace = true regex.workspace = true tempfile.workspace = true tiny_http.workspace = true [lints] workspace = true upki-1.0.0~beta.3/upki-cli/README.md000066400000000000000000000027701523060067200166560ustar00rootroot00000000000000# upki-cli The `upki` command-line tool: browser-grade certificate revocation checking for monitoring, testing and alerting. It uses [upki](https://github.com/rustls/upki)'s [crlite-clubcard](https://eprint.iacr.org/2025/610) revocation data, which updates several times per day. The CLI both synchronizes that data and checks certificates against it. ## Usage ``` Platform-independent browser-grade certificate infrastructure Usage: upki [OPTIONS] Commands: fetch Update the local cache of crlite filters, downloading them as needed verify Verifies the local cache of crlite filters revocation Checks the revocation status of a certificate show-config-path Print the location of the configuration file show-config Print the configuration that will be used help Print this message or the help of the given subcommand(s) Options: --config-file Use this specific configuration file. This must exist --verbose Emit logging output -h, --help Print help (see more with '--help') -V, --version Print version ``` ## License This crate is distributed under the terms of both the Apache License (Version 2.0) and the MIT license, at your option. See [LICENSE-APACHE] and [LICENSE-MIT] in the repository root for details. [LICENSE-APACHE]: https://github.com/rustls/upki/blob/main/LICENSE-APACHE [LICENSE-MIT]: https://github.com/rustls/upki/blob/main/LICENSE-MIT upki-1.0.0~beta.3/upki-cli/src/000077500000000000000000000000001523060067200161605ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/src/bin/000077500000000000000000000000001523060067200167305ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/src/bin/upki.rs000066400000000000000000000117631523060067200202560ustar00rootroot00000000000000//! upki command-line entrypoint. use std::io::{BufReader, stdin}; use std::path::PathBuf; use std::process::ExitCode; use clap::{Parser, Subcommand}; use eyre::{Context, Report}; use rustls_pki_types::CertificateDer; use rustls_pki_types::pem::PemObject; use tracing::level_filters::LevelFilter; use tracing_subscriber::EnvFilter; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; use upki::revocation::{Index, RevocationCheckInput}; #[cfg(feature = "__fetch")] use upki::revocation::{Manifest, fetch}; use upki::{Config, ConfigPath}; #[tokio::main(flavor = "current_thread")] async fn main() -> Result { let args = Args::parse(); tracing_subscriber::registry() .with(tracing_subscriber::fmt::layer().compact()) .with( EnvFilter::builder() .with_default_directive( match args.verbose { true => LevelFilter::TRACE, false => LevelFilter::ERROR, } .into(), ) .from_env()?, ) .init(); let config_path = ConfigPath::new(args.config_file).wrap_err("cannot find configuration path")?; if let Command::ShowConfigPath = args.command { println!("{}", config_path.as_ref().display()); return Ok(ExitCode::SUCCESS); } let config = Config::from_file_or_user_default(&config_path)?; Ok(match args.command { #[cfg(feature = "__fetch")] Command::Fetch { dry_run } => fetch(dry_run, &config).await?, #[cfg(feature = "__fetch")] Command::Verify => Manifest::from_config(&config)?.verify(&config)?, Command::ShowConfigPath => unreachable!(), Command::ShowConfig => { print!( "{}", toml::to_string_pretty(&config).wrap_err("cannot format configuration")? ); ExitCode::SUCCESS } Command::Revocation(Revocation::Check) => { let mut certs = vec![]; for cert in CertificateDer::pem_reader_iter(&mut BufReader::new(stdin())) { certs.push(cert.wrap_err("cannot read certificate from stdin")?); } let input = RevocationCheckInput::from_certificates(&certs)?; Index::from_cache(&config)? .check(&input)? .to_cli() } }) } #[derive(Debug, Parser)] #[command(name = "upki", author, version, about)] struct Args { #[command(subcommand)] command: Command, /// Use this specific configuration file. This must exist. /// /// If not specified, this tool looks for its configuration file in a platform-standard local directory. #[arg(long)] config_file: Option, /// Emit logging output. #[arg(long)] verbose: bool, } #[derive(Debug, Subcommand)] enum Command { /// Update the local cache of crlite filters, downloading them as needed. /// /// If the `revocation.cache_dir` path does not exist, this tool creates it and parent directories. /// /// This also deletes filters that become unreferenced. #[cfg(feature = "__fetch")] Fetch { /// Download the new manifest, and then describe what actions are needed to /// synchronize with the remote server. #[arg(long)] dry_run: bool, }, /// Verifies the local cache of crlite filters. /// /// Exits zero if the manifest and all referenced filters are present. /// /// Exits non-zero if the manifest if any filter file is missing or corrupt. /// /// This command does no network I/O. It does not say anything whether the files are up-to-date or recent. #[cfg(feature = "__fetch")] Verify, /// Checks the revocation status of a certificate. #[clap(subcommand)] Revocation(Revocation), /// Print the location of the configuration file. ShowConfigPath, /// Print the configuration that will be used. ShowConfig, } #[derive(Debug, Subcommand)] enum Revocation { /// Check the revocation status of an end-entity certificate. /// /// This interface reads a sequence of PEM-encoded certificates from standard input. /// The first **must** be the end-entity certificate. The end-entity certificate's issuer /// **must** be present in the other certificates (but does not need to be in any specific /// position). /// /// Note this interface **only** checks the end-entity certificate for revocation. It does /// **not** check any of the certificates for validity: it assumes the caller has done any /// required checks **before** calling this interface (path building, naming validation, /// expiry checking, etc.). /// /// # Exit status /// /// 0 means the certificate is not revoked or no revocation information is available, /// 1 means an error prevented the revocation check, and /// 2 means the revocation check completed and the certificate is revoked. Check, } upki-1.0.0~beta.3/upki-cli/tests/000077500000000000000000000000001523060067200165335ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/000077500000000000000000000000001523060067200174445ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/config_unknown_fields/000077500000000000000000000000001523060067200240165ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/config_unknown_fields/config.toml000066400000000000000000000001751523060067200261630ustar00rootroot00000000000000cache_dir = "tests/data/config_unknown_fields/" [revocation] cache-dir = "tests/data/config_unknown_fields/" fetch-url = "" upki-1.0.0~beta.3/upki-cli/tests/data/evolution/000077500000000000000000000000001523060067200214705ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/evolution/revocation/000077500000000000000000000000001523060067200236415ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/evolution/revocation/filter1.filter000066400000000000000000000000131523060067200264100ustar00rootroot00000000000000hello worldupki-1.0.0~beta.3/upki-cli/tests/data/evolution/revocation/filter3.delta000066400000000000000000000000121523060067200262150ustar00rootroot00000000000000third itemupki-1.0.0~beta.3/upki-cli/tests/data/evolution/revocation/filter4.delta000066400000000000000000000000031523060067200262160ustar00rootroot00000000000000newupki-1.0.0~beta.3/upki-cli/tests/data/evolution/revocation/manifest.json000066400000000000000000000010411523060067200263360ustar00rootroot00000000000000{ "generated_at": 1765446031, "comment": "evolution from typical test manifest", "files": [ { "filename": "filter1.filter", "size": 11, "hash": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9" }, { "filename": "filter3.delta", "size": 10, "hash": "91db9aeaa71dcdce8b94c793a2c0028513ae55ced477ababa097b702fe3daacc" }, { "filename": "filter4.delta", "size": 14, "hash": "11507a0e2f5e69d5dfa40a62a1bd7b6ee57e6bcd85c67c9b8431b36fff21c437" } ] } upki-1.0.0~beta.3/upki-cli/tests/data/typical/000077500000000000000000000000001523060067200211115ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/typical/revocation/000077500000000000000000000000001523060067200232625ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/typical/revocation/filter1.filter000066400000000000000000000000131523060067200260310ustar00rootroot00000000000000hello worldupki-1.0.0~beta.3/upki-cli/tests/data/typical/revocation/filter2.delta000066400000000000000000000000161523060067200256410ustar00rootroot00000000000000second item :)upki-1.0.0~beta.3/upki-cli/tests/data/typical/revocation/filter3.delta000066400000000000000000000000121523060067200256360ustar00rootroot00000000000000third itemupki-1.0.0~beta.3/upki-cli/tests/data/typical/revocation/manifest.json000066400000000000000000000010221523060067200257560ustar00rootroot00000000000000{ "generated_at": 1765445031, "comment": "typical test manifest", "files": [ { "filename": "filter1.filter", "size": 11, "hash": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9" }, { "filename": "filter2.delta", "size": 14, "hash": "3f8657575e33180cd1f0976836c0604d1c154c5401b2f8ff7987879f16b14492" }, { "filename": "filter3.delta", "size": 10, "hash": "91db9aeaa71dcdce8b94c793a2c0028513ae55ced477ababa097b702fe3daacc" } ] } upki-1.0.0~beta.3/upki-cli/tests/data/verify_non_existent_dir/000077500000000000000000000000001523060067200244035ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/verify_non_existent_dir/config.toml000066400000000000000000000000661523060067200265470ustar00rootroot00000000000000cache-dir = "not-exist/" [revocation] fetch-url = "" upki-1.0.0~beta.3/upki-cli/tests/data/verify_of_empty_manifest/000077500000000000000000000000001523060067200245405ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/verify_of_empty_manifest/config.toml000066400000000000000000000001201523060067200266730ustar00rootroot00000000000000cache-dir = "tests/data/verify_of_empty_manifest/" [revocation] fetch-url = "" upki-1.0.0~beta.3/upki-cli/tests/data/verify_of_empty_manifest/revocation/000077500000000000000000000000001523060067200267115ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-cli/tests/data/verify_of_empty_manifest/revocation/manifest.json000066400000000000000000000001171523060067200314110ustar00rootroot00000000000000{ "generated_at": 1765445031, "comment": "empty manifest", "files": [] } upki-1.0.0~beta.3/upki-cli/tests/integration.rs000066400000000000000000000343131523060067200214300ustar00rootroot00000000000000// these tests won't run on windows due to insurmountable disagreements over path formatting, // but should work ok on macOS and WSL #![cfg(not(target_os = "windows"))] use core::error::Error; use std::fs::create_dir; use std::path::{Path, PathBuf}; use std::process::Command; use std::sync::Arc; use std::{fs, thread}; use insta::assert_snapshot; use insta::internals::SettingsBindDropGuard; use insta_cmd::assert_cmd_snapshot; use rand::RngExt; use tempfile::TempDir; #[test] fn version() { let _filters = apply_common_filters(); assert_cmd_snapshot!(upki().arg("--version"), @" success: true exit_code: 0 ----- stdout ----- upki 1.0.0-beta.3 ----- stderr ----- "); } #[test] fn config_unknown_fields() { let _filters = apply_common_filters(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg("tests/data/config_unknown_fields/config.toml") .arg("show-config"), @r#" success: false exit_code: 1 ----- stdout ----- ----- stderr ----- Error: failed to parse config file at tests/data/config_unknown_fields/config.toml Caused by: TOML parse error at line 1, column 1 | 1 | cache_dir = "tests/data/config_unknown_fields/" | ^^^^^^^^^ unknown field `cache_dir`, expected `cache-dir` or `revocation` Location: upki-cli/src/bin/upki.rs:[LINE]:[COLUMN] "#); } #[test] fn show_config_path_fixpoint() { let _filters = apply_common_filters(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg("/home/example/not-exist/yo.txt") .arg("show-config-path"), @r" success: true exit_code: 0 ----- stdout ----- /home/example/not-exist/yo.txt ----- stderr ----- "); } #[test] fn show_config_fixpoint() { let _filters = apply_common_filters(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg("tests/data/verify_non_existent_dir/config.toml") .arg("show-config"), @r#" success: true exit_code: 0 ----- stdout ----- cache-dir = "not-exist/" [revocation] fetch-url = "" ----- stderr ----- "#); } #[test] fn verify_of_non_existent_dir() { let _filters = apply_common_filters(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg("tests/data/verify_non_existent_dir/config.toml") .arg("verify"), @r#" success: false exit_code: 1 ----- stdout ----- ----- stderr ----- Error: cannot read file "not-exist/revocation/manifest.json" Caused by: No such file or directory (os error 2) Location: upki-cli/src/bin/upki.rs:[LINE]:[COLUMN] "#); } #[test] fn verify_of_empty_manifest() { let _filters = apply_common_filters(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg("tests/data/verify_of_empty_manifest/config.toml") .arg("verify"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); } #[test] fn fetch_of_empty_manifest() { let _filters = apply_common_filters(); let (server, _filters) = http_server("tests/data/verify_of_empty_manifest/"); let (temp, config_file, _filters) = temp_dir_and_config(server.url()); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); assert_snapshot!( server.into_log(), @"GET /manifest.json -> 200 OK (79 bytes)" ); assert_eq!( list_dir(&temp.path().join("revocation")), vec!["index.bin", "manifest.json"], ); } #[test] fn full_fetch() { let _filters = apply_common_filters(); let (server, _filters) = http_server("tests/data/typical/"); let (temp, config_file, _filters) = temp_dir_and_config(server.url()); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); assert_snapshot!( server.into_log(), @r" GET /manifest.json -> 200 OK (530 bytes) GET /filter1.filter -> 200 OK (11 bytes) GET /filter2.delta -> 200 OK (14 bytes) GET /filter3.delta -> 200 OK (10 bytes) "); assert_eq!( list_dir(&temp.path().join("revocation")), vec![ "filter1.filter", "filter2.delta", "filter3.delta", "manifest.json" ] ); } #[test] fn full_fetch_and_incremental_update() { let _filters = apply_common_filters(); let (server, _filters) = http_server("tests/data/typical/"); let (temp, config_file, _filters) = temp_dir_and_config(server.url()); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(&config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); assert_snapshot!( server.into_log(), @r" GET /manifest.json -> 200 OK (530 bytes) GET /filter1.filter -> 200 OK (11 bytes) GET /filter2.delta -> 200 OK (14 bytes) GET /filter3.delta -> 200 OK (10 bytes) "); assert_eq!( list_dir(&temp.path().join("revocation")), vec![ "filter1.filter", "filter2.delta", "filter3.delta", "manifest.json" ], ); // now server is updated to "evolution" which requires a partial update // compared to "typical" let (server, _filters) = http_server("tests/data/evolution/"); write_config(&temp, server.url()); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(&config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); assert_snapshot!( server.into_log(), @r" GET /manifest.json -> 200 OK (545 bytes) GET /filter4.delta -> 200 OK (3 bytes) "); // filter2 could be deleted, filter4 is new assert_eq!( list_dir(&temp.path().join("revocation")), vec![ "filter1.filter", "filter2.delta", "filter3.delta", "filter4.delta", "manifest.json" ] ); // a fetch of the same manifest clears away "filter2.delta" as it is now unused let (server, _filters) = http_server("tests/data/evolution/"); write_config(&temp, server.url()); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(&config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); assert_snapshot!( server.into_log(), @"GET /manifest.json -> 200 OK (545 bytes)"); // filter2 is now deleted assert_eq!( list_dir(&temp.path().join("revocation")), vec![ "filter1.filter", "filter3.delta", "filter4.delta", "manifest.json" ] ); } #[test] fn typical_incremental_fetch() { let _filters = apply_common_filters(); let (server, _filters) = http_server("tests/data/typical/"); let (temp, config_file, _filters) = temp_dir_and_config(server.url()); fs::copy( "tests/data/typical/revocation/manifest.json", temp.path() .join("revocation/manifest.json"), ) .unwrap(); fs::copy( "tests/data/typical/revocation/filter1.filter", temp.path() .join("revocation/filter1.filter"), ) .unwrap(); fs::copy( "tests/data/typical/revocation/filter3.delta", temp.path() .join("revocation/filter3.delta"), ) .unwrap(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(config_file) .arg("fetch"), @r" success: true exit_code: 0 ----- stdout ----- ----- stderr ----- "); // only fetched the neccessary files assert_snapshot!( server.into_log(), @r" GET /manifest.json -> 200 OK (530 bytes) GET /filter2.delta -> 200 OK (14 bytes) "); assert_eq!(list_dir(temp.path()), vec!["config.toml", "revocation",],); assert_eq!( list_dir(&temp.path().join("revocation")), vec![ "filter1.filter", "filter2.delta", "filter3.delta", "manifest.json" ] ); } #[test] fn typical_incremental_fetch_dry_run() { let _filters = apply_common_filters(); let (server, _filters) = http_server("tests/data/typical/"); let (temp, config_file, _filters) = temp_dir_and_config(server.url()); fs::copy( "tests/data/typical/revocation/manifest.json", temp.path() .join("revocation/manifest.json"), ) .unwrap(); fs::copy( "tests/data/typical/revocation/filter1.filter", temp.path() .join("revocation/filter1.filter"), ) .unwrap(); fs::copy( "tests/data/typical/revocation/filter3.delta", temp.path() .join("revocation/filter3.delta"), ) .unwrap(); assert_cmd_snapshot!( upki() .arg("--config-file") .arg(config_file) .arg("fetch") .arg("--dry-run"), @r#" success: true exit_code: 0 ----- stdout ----- 3 steps required (14 bytes to download) - download 14 bytes from http://127.0.0.1:[PORT]/filter2.delta to "[TEMPDIR]/revocation/filter2.delta" - build index from filters into "[TEMPDIR]/revocation" - save new manifest into "[TEMPDIR]/revocation" ----- stderr ----- "#); // fetched just the manifest assert_eq!(list_dir(temp.path()), vec!["config.toml", "revocation",],); assert_eq!( list_dir(&temp.path().join("revocation")), vec!["filter1.filter", "filter3.delta", "manifest.json"] ); } fn upki() -> Command { let mut cmd = Command::new("cargo"); cmd.arg("run") .arg("--quiet") .arg("--package") .arg("upki-cli") .arg("--"); cmd } fn http_server(root: &str) -> (TestHttpServer, SettingsBindDropGuard) { let port = rand::rng().random_range(4000..12000); // add a filter eliding the (random) port in logs let mut current_filters = insta::Settings::clone_current(); current_filters.add_filter(&format!(":{port}/"), ":[PORT]/"); let mut root = PathBuf::from(root); root.push("revocation"); ( TestHttpServer::new(("127.0.0.1", port), &root).unwrap(), current_filters.bind_to_scope(), ) } fn list_dir(path: &Path) -> Vec { let mut list = fs::read_dir(path) .unwrap() .map(|p| { p.unwrap() .file_name() .into_string() .unwrap() }) .collect::>(); list.sort(); list } fn temp_dir_and_config(fetch_url: &str) -> (TempDir, PathBuf, SettingsBindDropGuard) { let temp = TempDir::new().unwrap(); write_config(&temp, fetch_url); let mut settings = insta::Settings::clone_current(); // remove tempdirs references settings.add_filter( ®ex::escape(&temp.path().display().to_string()), "[TEMPDIR]", ); let config_file = temp.path().join("config.toml"); create_dir(temp.path().join("revocation")).unwrap(); (temp, config_file, settings.bind_to_scope()) } fn write_config(temp: &TempDir, fetch_url: &str) { fs::write( temp.path().join("config.toml"), format!( "cache-dir=\"{}\"\n\ [revocation]\n\ fetch-url=\"{fetch_url}\"\n", temp.path().display(), ) .as_bytes(), ) .unwrap(); } fn apply_common_filters() -> SettingsBindDropGuard { let mut settings = insta::Settings::clone_current(); // remove source locations in errors settings.add_filter(r"\.rs:\d+:\d+", ".rs:[LINE]:[COLUMN]"); // remove http.server timestamps settings.add_filter( r"\d{2}/[A-Z][a-z]{2}/\d{4} \d{2}:\d{2}:\d{2}", "[TIMESTAMP]", ); settings.bind_to_scope() } pub struct TestHttpServer { server: Arc, url: String, handle: Option>, } impl TestHttpServer { pub fn new( addr: (&str, u16), server_root: &Path, ) -> Result> { let server = Arc::new(tiny_http::Server::http(addr)?); let thread_server = server.clone(); let server_root = server_root.to_owned(); let joiner = thread::spawn(move || { let mut log = String::new(); for request in thread_server.incoming_requests() { let target = server_root.join(request.url().strip_prefix("/").unwrap()); let response = match fs::read(&target) { Ok(data) => tiny_http::Response::from_data(data), Err(e) => tiny_http::Response::from_string(e.to_string()).with_status_code(404), }; log.push_str(&format!( "{} {} -> {} {} ({} bytes)\n", request.method(), request.url(), response.status_code().0, response .status_code() .default_reason_phrase(), response .data_length() .unwrap_or_default(), )); let _ = request.respond(response); } log }); Ok(Self { server, url: format!("http://{}:{}/", addr.0, addr.1), handle: Some(joiner), }) } pub fn into_log(mut self) -> String { self.server.unblock(); self.handle .take() .unwrap() .join() .unwrap() } pub fn url(&self) -> &str { &self.url } } impl Drop for TestHttpServer { fn drop(&mut self) { self.server.unblock(); } } upki-1.0.0~beta.3/upki-mirror/000077500000000000000000000000001523060067200161345ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-mirror/Cargo.toml000066400000000000000000000010411523060067200200600ustar00rootroot00000000000000[package] name = "upki-mirror" version = "0.1.0" license.workspace = true edition.workspace = true rust-version.workspace = true repository.workspace = true [dependencies] aws-lc-rs.workspace = true clap.workspace = true csv.workspace = true eyre.workspace = true hex.workspace = true reqwest = { workspace = true, features = ["default-tls"] } rustls-pki-types.workspace = true serde.workspace = true serde_json.workspace = true tokio.workspace = true upki = { path = "../upki" } [lints] workspace = true [package.metadata.dist] dist = false upki-1.0.0~beta.3/upki-mirror/src/000077500000000000000000000000001523060067200167235ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-mirror/src/bin/000077500000000000000000000000001523060067200174735ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-mirror/src/bin/intermediates.rs000066400000000000000000000104741523060067200227040ustar00rootroot00000000000000use core::time::Duration; use std::collections::HashMap; use std::fs; use std::path::PathBuf; use std::time::SystemTime; use aws_lc_rs::digest::{SHA256, digest}; use clap::Parser; use eyre::{Context, Report, anyhow}; use rustls_pki_types::CertificateDer; use rustls_pki_types::pem::PemObject; use serde::Deserialize; use upki::revocation::{Manifest, ManifestFile}; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<(), Report> { let opts = Opts::try_parse()?; let client = reqwest::Client::builder() .use_rustls_tls() .timeout(Duration::from_secs(opts.http_timeout_secs)) .user_agent(format!( "{}/{} ({})", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"), env!("CARGO_PKG_REPOSITORY") )) .build() .wrap_err("failed to create HTTP client")?; let response = client .get("https://ccadb.my.salesforce-sites.com/mozilla/MozillaIntermediateCertsCSVReport") .send() .await .wrap_err("records request failed")?; if !response.status().is_success() { return Err(anyhow!( "HTTP error for records request: {}", response.status() )); } let csv_bytes = response .bytes() .await .wrap_err("failed to receive CSV body")?; let intermediates = csv::ReaderBuilder::new() .has_headers(true) .from_reader(&mut csv_bytes.as_ref()) .into_deserialize::() .collect::, _>>() .wrap_err("failed to parse CSV")?; println!("we have {} intermediates", intermediates.len()); // we bucket intermediates into up to 256 files, by the first byte of the // sha256-hash of their DER value. // // that means the manifest contains up to 256 items, and the filenames are small. let mut buckets: HashMap> = HashMap::new(); for i in intermediates { let der = CertificateDer::from_pem_slice(i.pem.as_bytes()).wrap_err("cannot parse PEM")?; // check hash matches let actual_hash = digest(&SHA256, &der); if i.sha256 != actual_hash.as_ref() { return Err(anyhow!("cert {i:?} does not have correct hash")); } let bucket = i.sha256[0]; buckets .entry(bucket) .or_default() .push(i); } let mut files = Vec::new(); for (bucket, certs) in buckets { let filename = format!("{bucket:02x?}.pem",); let mut contents = String::new(); for inter in certs { contents.push_str(&inter.pem); contents.push('\n'); } fs::write(opts.output_dir.join(&filename), &contents).wrap_err("cannot write PEM file")?; let hash = digest(&SHA256, contents.as_bytes()); files.push(ManifestFile { filename, size: contents.len(), hash: hash.as_ref().to_vec(), }); } let manifest = Manifest { generated_at: SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) .unwrap() .as_secs(), comment: opts.manifest_comment.clone(), files, }; let output_filename = opts.output_dir.join("manifest.json"); fs::write( output_filename, serde_json::to_string(&manifest) .wrap_err("cannot encode JSON manifest")? .as_bytes(), ) .wrap_err_with(|| "cannot write manifest to {output_filename:?}")?; Ok(()) } #[derive(Debug, Parser)] struct Opts { /// Where to write output files. This must exist. output_dir: PathBuf, /// Timeout in seconds for all HTTP requests. #[clap(long, default_value_t = 10)] http_timeout_secs: u64, /// Comment included in output manifest. #[clap(long, default_value = "")] manifest_comment: String, } #[non_exhaustive] #[derive(Debug, Clone, Hash, Eq, PartialEq, Deserialize)] struct IntermediateData { #[serde(rename = "Subject")] subject: String, #[serde(rename = "Issuer")] issuer: String, #[serde(rename = "SHA256", with = "hex::serde")] sha256: [u8; 32], #[serde(rename = "Full CRL Issued By This CA")] full_crl: String, #[serde(rename = "PEM")] pem: String, #[serde(rename = "JSON Array of Partitioned CRLs")] json_crls: String, } upki-1.0.0~beta.3/upki-mirror/src/bin/mozilla-crlite.rs000066400000000000000000000133631523060067200227760ustar00rootroot00000000000000use core::time::Duration; use std::collections::HashMap; use std::fs; use std::path::PathBuf; use std::time::SystemTime; use aws_lc_rs::digest::{SHA256, digest}; use clap::{Parser, ValueEnum}; use eyre::{Context, Report, anyhow}; use upki::revocation::{Manifest, ManifestFile}; #[tokio::main(flavor = "current_thread")] async fn main() -> Result<(), Report> { let opts = Opts::try_parse()?; let source = Source::from(opts.mozilla_backend); let client = reqwest::Client::builder() .use_rustls_tls() .timeout(Duration::from_secs(opts.http_timeout_secs)) .user_agent(format!( "{}/{} ({})", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"), env!("CARGO_PKG_REPOSITORY") )) .build() .wrap_err("failed to create HTTP client")?; let response = client .get(source.records_url) .send() .await .wrap_err("records request failed")?; if !response.status().is_success() { return Err(anyhow!( "HTTP error for records request: {}", response.status() )); } let incoming_manifest = response .json::() .await .wrap_err("failed to parse records JSON")?; let by_parent: HashMap = HashMap::from_iter( incoming_manifest .data .iter() .filter_map(|it| Some((it.parent.as_ref()?.clone(), it))), ); // Walk the DAG of filters, starting from the root full filter. let mut next = incoming_manifest .data .iter() .find(|it| { !it.incremental && it.parent.is_none() && it.channel == mozilla::Channel::Default }); let mut download_plan = Vec::new(); while let Some(item) = next { next = by_parent.get(&item.id).copied(); download_plan.push(item); } let mut files = Vec::new(); for p in download_plan { let attachment_url = source.attachment_host.to_string() + &p.attachment.location; let response = client .get(&attachment_url) .send() .await .wrap_err_with(|| format!("download request failed for {attachment_url}"))?; let bytes = response.bytes().await?; // check hash matches let actual_hash = digest(&SHA256, &bytes); if p.attachment.hash != actual_hash.as_ref() { return Err(anyhow!( "item {p:?} downloaded from {attachment_url:?} does not have correct hash" )); } // and size (impossible if hash is correct, but should make us distrust the data) if p.attachment.size != bytes.len() { return Err(anyhow!( "item {p:?} downloaded from {attachment_url:?} does not have correct size" )); } let output_filename = opts .output_dir .join(&p.attachment.filename); fs::write(&output_filename, bytes) .wrap_err_with(|| format!("cannot write filter data to {output_filename:?}",))?; files.push(ManifestFile { filename: p.attachment.filename.clone(), size: p.attachment.size, hash: p.attachment.hash.clone(), }); } let manifest = Manifest { generated_at: SystemTime::now() .duration_since(SystemTime::UNIX_EPOCH) .unwrap() .as_secs(), comment: opts.manifest_comment.clone(), files, }; let output_filename = opts.output_dir.join("manifest.json"); fs::write( output_filename, serde_json::to_string(&manifest) .wrap_err("cannot encode JSON manifest")? .as_bytes(), ) .wrap_err_with(|| "cannot write manifest to {output_filename:?}")?; Ok(()) } #[derive(Debug, Parser)] struct Opts { /// Where to write output files. This must exist. output_dir: PathBuf, /// Which Mozilla settings backend to fetch from. #[clap(default_value_t = MozillaBackend::Production)] #[arg(value_enum)] mozilla_backend: MozillaBackend, /// Timeout in seconds for all HTTP requests. #[clap(long, default_value_t = 10)] http_timeout_secs: u64, /// Comment included in output manifest. #[clap(long, default_value = "")] manifest_comment: String, } #[derive(Clone, Copy, Debug, ValueEnum)] enum MozillaBackend { Production, } struct Source { records_url: &'static str, attachment_host: &'static str, } impl From for Source { fn from(value: MozillaBackend) -> Self { match value { MozillaBackend::Production => MOZILLA_PROD, } } } const MOZILLA_PROD: Source = Source { records_url: "https://firefox.settings.services.mozilla.com/v1/buckets/security-state/collections/cert-revocations/records", attachment_host: "https://firefox-settings-attachments.cdn.mozilla.net/", }; /// JSON structures used in the Mozilla preferences service. mod mozilla { use serde::Deserialize; #[derive(Debug, Deserialize)] pub(crate) struct Manifest { pub(crate) data: Vec, } #[derive(Clone, Debug, Deserialize)] pub(crate) struct Item { pub(crate) attachment: Attachment, pub(crate) channel: Channel, pub(crate) id: String, pub(crate) incremental: bool, pub(crate) parent: Option, } #[derive(Clone, Debug, Deserialize, PartialEq)] #[serde(rename_all = "snake_case")] pub(crate) enum Channel { Default, Compat, } #[derive(Clone, Debug, Deserialize)] pub(crate) struct Attachment { #[serde(with = "hex::serde")] pub hash: Vec, pub size: usize, pub filename: String, pub location: String, } } upki-1.0.0~beta.3/upki-openssl/000077500000000000000000000000001523060067200163055ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-openssl/Cargo.toml000066400000000000000000000011751523060067200202410ustar00rootroot00000000000000[package] name = "upki-openssl" version = "1.0.0-beta.3" # Sync with `dist-packages/libupki_openssl/dist.toml` license.workspace = true rust-version.workspace = true edition.workspace = true repository.workspace = true [features] capi = [] [dependencies] openssl-sys = { workspace = true } rustls-pki-types.workspace = true upki = { version = "=1.0.0-beta.3", path = "../upki", features = ["capi"] } [dev-dependencies] cbindgen.workspace = true similar-asserts.workspace = true [lints] workspace = true [package.metadata.capi.header] generation = false [package.metadata.capi.install.include] asset = [{ from = "upki-openssl.h" }] upki-1.0.0~beta.3/upki-openssl/src/000077500000000000000000000000001523060067200170745ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-openssl/src/lib.rs000066400000000000000000000273431523060067200202210ustar00rootroot00000000000000#![warn(clippy::undocumented_unsafe_blocks)] use core::ffi::{c_long, c_void}; use core::marker::PhantomData; use core::ptr; use std::os::raw::c_int; use std::slice; use std::sync::LazyLock; use openssl_sys::{ CRYPTO_EX_DATA, CRYPTO_EX_INDEX_SSL_CTX, CRYPTO_get_ex_new_index, OPENSSL_free, OPENSSL_sk_num, OPENSSL_sk_value, SSL, SSL_CTX, SSL_CTX_get_ex_data, SSL_CTX_set_ex_data, SSL_get_SSL_CTX, SSL_get_ex_data_X509_STORE_CTX_idx, X509, X509_STORE_CTX, X509_STORE_CTX_get_error_depth, X509_STORE_CTX_get_ex_data, X509_STORE_CTX_get0_chain, X509_STORE_CTX_set_error, X509_V_ERR_APPLICATION_VERIFICATION, X509_V_ERR_CERT_REVOKED, i2d_X509, stack_st_X509, }; use rustls_pki_types::CertificateDer; use upki::ffi::{ upki_certificate_der, upki_check_revocation, upki_config, upki_config_free, upki_config_new, upki_result, }; /// Sets the upki config to use for connections based upon `ctx`. /// /// `config` becomes owned by `SSL_CTX`. If `config` is NULL the previous configuration is /// freed. /// /// # Thread safety /// /// This inherits the property of the OpenSSL API, whereby a single `SSL_CTX` cannot be shared /// between threads. /// /// # Safety /// /// This does nothing if `ctx` is NULL. `config` is required to be a valid `upki_config` pointer, /// or NULL. #[unsafe(no_mangle)] pub unsafe extern "C" fn upki_openssl_set_config(ctx: *mut SSL_CTX, config: *const upki_config) { if ctx.is_null() { return; } let Some(index) = *UPKI_SSL_CTX_CONFIG_INDEX else { return; }; // SAFETY: `upki_config_free` is defined for a previous valid pointer, or NULL. // We also rely on `SSL_CTX_get_ex_data` only returning NULL or a previous // pointer provided to `SSL_CTX_set_ex_data`. unsafe { // free any previous value. upki_config_free(SSL_CTX_get_ex_data(ctx, index).cast()); } // SAFETY: `ctx` is required to be non-NULL (as established above). unsafe { SSL_CTX_set_ex_data(ctx, index, config.cast_mut().cast()); } } /// Checks certificate revocation using upki, matching OpenSSL's `SSL_verify_cb` interface. /// /// This function returns 0 if called with 0 for the `preverify_ok` parameter. /// As a result, it never allows a verification to pass if the previous verification /// step has failed. /// /// If the certificate chain obtained from `x509_ctx` is not included in the revocation data, /// this function returns `preverify_ok`. /// /// # Configuration /// /// If ``upki_openssl_set_config()` was previously called against the `SSL_CTX` available /// from `X509_STORE_CTX`, this configuration is used. /// /// Otherwise, if that function wasn't called, or no `SSL_CTX` can be obtained from `X509_STORE_CTX`, /// the configuration file and data location is found automatically based on defaults. /// /// # Errors /// /// If the certificate chain obtained from `x509_ctx` is revoked, this function returns 0 /// and sets the `X509_V_ERR_CERT_REVOKED` error on `x509_ctx` (using /// `X509_STORE_CTX_set_error(3SSL)`). /// /// If the revocation status cannot be determined, this function returns 0 and sets /// the `X509_V_ERR_APPLICATION_VERIFICATION` error on `x509_ctx` (using /// `X509_STORE_CTX_set_error(3SSL)`). /// /// On unexpected/unrecoverable errors, this function returns 0. /// /// # Safety /// /// This function requires that `x509_ctx` is a valid pointer, or NULL. #[unsafe(no_mangle)] pub unsafe extern "C" fn upki_openssl_verify_callback( mut preverify_ok: c_int, x509_ctx: *mut X509_STORE_CTX, ) -> c_int { // Revocation checking never improves the situation if the verification has failed. if preverify_ok == 0 { return preverify_ok; } // SAFETY: We rely on the caller providing a valid or NULL `x509_ctx` pointer. This // is required by the C undefined behavior rules (C17 §6.3.2.3 item 7) let Some(mut x509_ctx) = (unsafe { BorrowedX509StoreCtx::from_ptr(x509_ctx) }) else { return 0; }; // This callback is called once per certificate, with the final call being for the // leaf certificate denoted by error_depth = 0. We only process the chain as a whole; // do this at the leaf certificate level. if x509_ctx.error_depth() != 0 { return preverify_ok; } let Some(chain) = x509_ctx.chain() else { return 0; }; let Some(certs) = chain.copy_certs() else { return 0; }; let cert_descriptors = certs .iter() .map(BorrowedUpkiCertificateDer::from_cert) .collect::>>(); if cert_descriptors.is_empty() { x509_ctx.set_error(X509_V_ERR_APPLICATION_VERIFICATION); return 0; } let Ok(config) = UpkiConfig::new(&x509_ctx) else { return 0; }; // SAFETY: `upki_check_revocation` requires: // - a valid config pointer, established above (either transitively via the safety // preconditions on `upki_openssl_set_config`, or by creating one stored in `_our_config`) // - valid pointers to a sequence of certificates, which is provided by the `cert_descriptors` vec. match unsafe { upki_check_revocation( config.as_ptr(), cert_descriptors.as_ptr().cast(), cert_descriptors.len(), ) } { upki_result::UPKI_REVOCATION_REVOKED => { x509_ctx.set_error(X509_V_ERR_CERT_REVOKED); preverify_ok = 0; } upki_result::UPKI_REVOCATION_NOT_COVERED | upki_result::UPKI_REVOCATION_NOT_REVOKED => {} _e => { x509_ctx.set_error(X509_V_ERR_APPLICATION_VERIFICATION); preverify_ok = 0; } } preverify_ok } struct BorrowedX509StoreCtx<'a>(&'a mut X509_STORE_CTX); impl<'a> BorrowedX509StoreCtx<'a> { unsafe fn from_ptr(ptr: *mut X509_STORE_CTX) -> Option { // SAFETY: we pass up the requirements of `ptr::as_mut()` to our caller unsafe { ptr.as_mut() }.map(Self) } fn error_depth(&self) -> c_int { // SAFETY: the input pointer is valid, because it comes from our reference. unsafe { X509_STORE_CTX_get_error_depth(ptr::from_ref(self.0)) } } fn chain(&self) -> Option> { // SAFETY: This type guarantees that the pointer is of the correct type, alignment, etc, // and is non-NULL (via coming from a reference.) let chain = unsafe { X509_STORE_CTX_get0_chain(ptr::from_ref(self.0)) }; // SAFETY: we require that openssl correctly returns a valid pointer, or NULL. unsafe { chain.as_ref() }.map(BorrowedX509Stack) } fn set_error(&mut self, err: i32) { // SAFETY: the input pointer is valid, because it comes from our reference. // OpenSSL does not document any other preconditions. unsafe { X509_STORE_CTX_set_error(ptr::from_mut(self.0), err) }; } fn upki_config_from_ssl_ctx(&self) -> *const upki_config { let ssl_ctx = self.ssl_ctx(); match (ssl_ctx.is_null(), *UPKI_SSL_CTX_CONFIG_INDEX) { // SAFETY: `ssl_ctx` is non-NULL, the index only has a upki_config pointer inserted into it. (false, Some(index)) => unsafe { SSL_CTX_get_ex_data(ssl_ctx, index).cast() }, (_, _) => ptr::null(), } } fn ssl_ctx(&self) -> *const SSL_CTX { // SAFETY: the input pointer is valid, because it comes from our reference. let ssl: *const SSL = unsafe { X509_STORE_CTX_get_ex_data(ptr::from_ref(self.0), SSL_get_ex_data_X509_STORE_CTX_idx()) .cast() }; match ssl.is_null() { true => ptr::null(), // SAFETY: `SSL_get_SSL_CTX` requires non-NULL parameter, established here. false => unsafe { SSL_get_SSL_CTX(ssl) }, } } } struct BorrowedX509Stack<'a>(&'a stack_st_X509); impl<'a> BorrowedX509Stack<'a> { fn copy_certs(&self) -> Option>> { // SAFETY: the stack pointer is valid, thanks to it being from a reference. let count = unsafe { OPENSSL_sk_num(ptr::from_ref(self.0).cast()) }; if count < 0 { return None; } let mut certs = vec![]; for i in 0..count { // SAFETY: the stack pointer is valid, thanks to it being from a reference. `OPENSSL_sk_value` returns // a valid pointer to the item or NULL. let x509: *const X509 = unsafe { OPENSSL_sk_value(ptr::from_ref(self.0).cast(), i).cast() }; // SAFETY: we require OpenSSL only fills the stack with valid pointers to X509 objects (or NULL) let x509 = unsafe { x509.as_ref() }?; certs.push(x509_to_certificate_der(x509)?); } Some(certs) } } enum UpkiConfig { FromContext(*const upki_config), Owned(*mut upki_config), } impl UpkiConfig { fn new(store_ctx: &BorrowedX509StoreCtx<'_>) -> Result { match store_ctx.upki_config_from_ssl_ctx() { ptr if !ptr.is_null() => { return Ok(Self::FromContext(ptr)); } _ => {} }; let mut ptr = ptr::null_mut(); // SAFETY: `upki_config_new` requires a pointer output, as established here. let rc = unsafe { upki_config_new(ptr::null(), &mut ptr) }; match ptr.is_null() { true => Err(rc), false => Ok(Self::Owned(ptr)), } } fn as_ptr(&self) -> *const upki_config { match self { Self::FromContext(ptr) => *ptr, Self::Owned(ptr) => *ptr, } } } impl Drop for UpkiConfig { fn drop(&mut self) { if let Self::Owned(ptr) = self { // SAFETY: `upki_config_free` defined for a valid pointer or NULL. unsafe { upki_config_free(*ptr) } } } } /// A `upki_certificate_der` with borrow information intact. #[repr(transparent)] struct BorrowedUpkiCertificateDer<'a>(upki_certificate_der, PhantomData<&'a ()>); impl<'a> BorrowedUpkiCertificateDer<'a> { fn from_cert(a: &'a CertificateDer<'a>) -> Self { Self( upki_certificate_der { data: a.as_ptr(), len: a.len(), }, PhantomData, ) } } fn x509_to_certificate_der(x509: &'_ X509) -> Option> { // SAFETY: the x509 pointer is valid, thanks to it coming from a reference. let (ptr, len) = unsafe { let mut ptr = ptr::null_mut(); let len = i2d_X509(ptr::from_ref(x509), &mut ptr); (ptr, len) }; if len <= 0 || ptr.is_null() { return None; } let len = len as usize; let mut v = Vec::with_capacity(len); // SAFETY: we rely on i2d_X509 allocating `ptr` correctly and signalling an error via negative `len` if not. // `ptr` must be an allocated pointer from OpenSSL's allocator. unsafe { v.extend_from_slice(slice::from_raw_parts(ptr, len)); OPENSSL_free(ptr as *mut _); } Some(v.into()) } static UPKI_SSL_CTX_CONFIG_INDEX: LazyLock> = LazyLock::new(|| unsafe { // SAFETY: no documented safety conditions for this function. let index = CRYPTO_get_ex_new_index( CRYPTO_EX_INDEX_SSL_CTX, 0, ptr::null_mut(), None, None, Some(ssl_ctx_upki_config_free), ); match index { -1 => None, _ => Some(index), } }); /// Funnel `CRYPTO_EX_free` into calling `upki_config_free`. unsafe extern "C" fn ssl_ctx_upki_config_free( _parent: *mut c_void, config: *mut c_void, _ad: *mut CRYPTO_EX_DATA, _idx: c_int, _argl: c_long, _argp: *mut c_void, ) { // SAFETY: The previous value is either NULL or a valid config pointer. // This matches the precondition of `upki_config_free`. unsafe { upki_config_free(config.cast()) }; } #[cfg(test)] mod test; upki-1.0.0~beta.3/upki-openssl/src/test.rs000066400000000000000000000123541523060067200204260ustar00rootroot00000000000000#![allow(clippy::undocumented_unsafe_blocks)] use core::{mem, ptr}; use std::os::raw::c_int; use openssl_sys::{ OPENSSL_STACK, OPENSSL_sk_free, OPENSSL_sk_new_null, OPENSSL_sk_push, SSL_CTX_free, SSL_CTX_new, TLS_client_method, X509_STORE_CTX, X509_STORE_CTX_free, X509_STORE_CTX_get_error, X509_STORE_CTX_new, X509_STORE_CTX_set_error, X509_V_ERR_APPLICATION_VERIFICATION, stack_st_X509, }; use upki::ffi::upki_config_new; use super::upki_openssl_verify_callback; use crate::upki_openssl_set_config; #[test] fn preverify_zero_returns_zero() { assert_eq!( unsafe { upki_openssl_verify_callback(0, ptr::null_mut()) }, 0 ); } #[test] fn null_ctx_returns_zero() { assert_eq!( unsafe { upki_openssl_verify_callback(1, ptr::null_mut()) }, 0 ); } #[test] fn preverify_ok_zero_valid_ctx_returns_zero() { let ctx = StoreCtx::new(); assert_eq!(unsafe { upki_openssl_verify_callback(0, ctx.0) }, 0); assert!(ctx.untouched_error()); } #[test] fn preverify_ok_zero_nonzero_depth_returns_zero() { let mut ctx = StoreCtx::new(); ctx.set_error_depth(3); assert_eq!(unsafe { upki_openssl_verify_callback(0, ctx.0) }, 0); assert!(ctx.untouched_error()); } #[test] fn error_depth_various_nonzero_all_pass_through() { for depth in [-1, 1, 3, 5, 10, 100] { let mut ctx = StoreCtx::new(); ctx.set_error_depth(depth); assert_eq!( unsafe { upki_openssl_verify_callback(1, ctx.0) }, 1, "expected preverify_ok pass-through at error_depth={depth}" ); assert!(ctx.untouched_error()); } } #[test] fn error_depth_nonzero_preserves_arbitrary_preverify_ok_value() { for (depth, pv) in [(1, 2), (2, 42), (5, -1), (10, 100)] { let mut ctx = StoreCtx::new(); ctx.set_error_depth(depth); assert_eq!( unsafe { upki_openssl_verify_callback(pv, ctx.0) }, pv, "preverify_ok={pv} should be returned unchanged at error_depth={depth}" ); assert!(ctx.untouched_error()); } } #[test] fn missing_chain_returns_zero() { let ctx = StoreCtx::new(); assert_eq!(unsafe { upki_openssl_verify_callback(1, ctx.0) }, 0); assert!(ctx.untouched_error()); } #[test] fn empty_chain_reports_error() { let mut ctx = StoreCtx::new(); ctx.set_verified_chain(Chain::new()); assert_eq!(unsafe { upki_openssl_verify_callback(1, ctx.0) }, 0); assert_eq!(ctx.error(), X509_V_ERR_APPLICATION_VERIFICATION); } #[test] fn malformed_chain_returns_zero() { let mut chain = Chain::new(); chain.push_null(); let mut ctx = StoreCtx::new(); ctx.set_verified_chain(chain); assert_eq!(unsafe { upki_openssl_verify_callback(1, ctx.0) }, 0); assert!(ctx.untouched_error()); } #[test] fn set_config_twice() { unsafe { let ctx = SSL_CTX_new(TLS_client_method()); let mut config = ptr::null_mut(); upki_config_new(ptr::null(), &mut config); upki_openssl_set_config(ctx, config); upki_config_new(ptr::null(), &mut config); upki_openssl_set_config(ctx, config); SSL_CTX_free(ctx); } } #[test] fn set_config_is_freed() { unsafe { let ctx = SSL_CTX_new(TLS_client_method()); let mut config = ptr::null_mut(); upki_config_new(ptr::null(), &mut config); upki_openssl_set_config(ctx, config); // takes ownership. // frees config for us. SSL_CTX_free(ctx); } } struct StoreCtx(*mut X509_STORE_CTX); impl StoreCtx { fn new() -> Self { let mut v = Self(unsafe { X509_STORE_CTX_new() }); // we set a placeholder error here, which is intended to be unused // anywhere else, and allows detection of whether the error has been // set or preserved. assert!(!v.untouched_error()); v.set_error(UNTOUCHED_ERROR); assert!(v.untouched_error()); v } fn set_error_depth(&mut self, depth: i32) { unsafe { X509_STORE_CTX_set_error_depth(self.0, depth) }; } fn error(&self) -> c_int { unsafe { X509_STORE_CTX_get_error(self.0) } } fn untouched_error(&self) -> bool { self.error() == UNTOUCHED_ERROR } fn set_error(&mut self, e: c_int) { unsafe { X509_STORE_CTX_set_error(self.0, e) } } fn set_verified_chain(&mut self, mut chain: Chain) { unsafe { X509_STORE_CTX_set0_verified_chain(self.0, chain.steal()) }; } } impl Drop for StoreCtx { fn drop(&mut self) { unsafe { X509_STORE_CTX_free(self.0) } } } struct Chain(*mut stack_st_X509); impl Chain { fn new() -> Self { Self(unsafe { OPENSSL_sk_new_null() as *mut stack_st_X509 }) } fn push_null(&mut self) { unsafe { OPENSSL_sk_push(self.0 as *mut OPENSSL_STACK, ptr::null()) }; } fn steal(&mut self) -> *mut stack_st_X509 { mem::replace(&mut self.0, ptr::null_mut()) } } impl Drop for Chain { fn drop(&mut self) { unsafe { OPENSSL_sk_free(self.0 as *mut OPENSSL_STACK) } } } const UNTOUCHED_ERROR: c_int = 12345678; unsafe extern "C" { fn X509_STORE_CTX_set_error_depth(ctx: *mut X509_STORE_CTX, depth: c_int); fn X509_STORE_CTX_set0_verified_chain(ctx: *mut X509_STORE_CTX, chain: *mut stack_st_X509); } upki-1.0.0~beta.3/upki-openssl/tests/000077500000000000000000000000001523060067200174475ustar00rootroot00000000000000upki-1.0.0~beta.3/upki-openssl/tests/codegen.rs000066400000000000000000000015571523060067200214310ustar00rootroot00000000000000use std::path::PathBuf; use std::{env, fs}; use cbindgen::{Builder, Language}; #[test] fn generate_header() { let crate_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); let header = crate_dir.join("upki-openssl.h"); let old = fs::read_to_string(&header).unwrap(); Builder::new() .with_crate(&crate_dir) .with_language(Language::C) .with_sys_include("openssl/x509_vfy.h") .with_include("upki.h") .with_include_guard("UPKI_OPENSSL_H") .generate() .expect("unable to generate bindings") .write_to_file(&header); let new = fs::read_to_string(&header).unwrap(); similar_asserts::assert_eq!( old.replace('\r', ""), new.replace('\r', ""), "Generated header file has changed. Please review the changes and update the snapshot if they are expected." ); } upki-1.0.0~beta.3/upki-openssl/upki-openssl.h000066400000000000000000000041421523060067200211100ustar00rootroot00000000000000#ifndef UPKI_OPENSSL_H #define UPKI_OPENSSL_H #include #include #include #include #include #include "upki.h" /** * Sets the upki config to use for connections based upon `ctx`. * * `config` becomes owned by `SSL_CTX`. If `config` is NULL the previous configuration is * freed. * * # Thread safety * * This inherits the property of the OpenSSL API, whereby a single `SSL_CTX` cannot be shared * between threads. * * # Safety * * This does nothing if `ctx` is NULL. `config` is required to be a valid `upki_config` pointer, * or NULL. */ void upki_openssl_set_config(SSL_CTX *ctx, const upki_config *config); /** * Checks certificate revocation using upki, matching OpenSSL's `SSL_verify_cb` interface. * * This function returns 0 if called with 0 for the `preverify_ok` parameter. * As a result, it never allows a verification to pass if the previous verification * step has failed. * * If the certificate chain obtained from `x509_ctx` is not included in the revocation data, * this function returns `preverify_ok`. * * # Configuration * * If ``upki_openssl_set_config()` was previously called against the `SSL_CTX` available * from `X509_STORE_CTX`, this configuration is used. * * Otherwise, if that function wasn't called, or no `SSL_CTX` can be obtained from `X509_STORE_CTX`, * the configuration file and data location is found automatically based on defaults. * * # Errors * * If the certificate chain obtained from `x509_ctx` is revoked, this function returns 0 * and sets the `X509_V_ERR_CERT_REVOKED` error on `x509_ctx` (using * `X509_STORE_CTX_set_error(3SSL)`). * * If the revocation status cannot be determined, this function returns 0 and sets * the `X509_V_ERR_APPLICATION_VERIFICATION` error on `x509_ctx` (using * `X509_STORE_CTX_set_error(3SSL)`). * * On unexpected/unrecoverable errors, this function returns 0. * * # Safety * * This function requires that `x509_ctx` is a valid pointer, or NULL. */ int upki_openssl_verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx); #endif /* UPKI_OPENSSL_H */ upki-1.0.0~beta.3/upki/000077500000000000000000000000001523060067200146245ustar00rootroot00000000000000upki-1.0.0~beta.3/upki/Cargo.toml000066400000000000000000000023611523060067200165560ustar00rootroot00000000000000[package] name = "upki" version = "1.0.0-beta.3" # Sync with `dist-packages/libupki/dist.toml` rust-version.workspace = true edition.workspace = true repository.workspace = true license.workspace = true readme = "README.md" description = "Platform-independent browser-grade certificate infrastructure" [features] default = [] capi = [] fetch = ["reqwest/default-tls", "__fetch"] fetch-native-tls = ["reqwest/native-tls", "__fetch"] __fetch = ["dep:reqwest", "dep:serde_json", "dep:tempfile"] [dependencies] base64.workspace = true chrono.workspace = true clubcard-crlite.workspace = true directories.workspace = true hex.workspace = true reqwest = { workspace = true, optional = true } rustls-pki-types.workspace = true rustls-webpki.workspace = true serde.workspace = true serde_json = { workspace = true, optional = true } tempfile = { workspace = true, optional = true } toml.workspace = true tracing.workspace = true [dev-dependencies] cbindgen.workspace = true clubcard.workspace = true clubcard-crlite = { workspace = true, features = ["builder"] } similar-asserts.workspace = true tempfile.workspace = true [lints] workspace = true [package.metadata.capi.header] generation = false [package.metadata.capi.install.include] asset = [{ from = "upki.h" }] upki-1.0.0~beta.3/upki/README.md000077700000000000000000000000001523060067200175702../README.mdustar00rootroot00000000000000upki-1.0.0~beta.3/upki/ffi-example/000077500000000000000000000000001523060067200170215ustar00rootroot00000000000000upki-1.0.0~beta.3/upki/ffi-example/Makefile000066400000000000000000000003271523060067200204630ustar00rootroot00000000000000CPPFLAGS += $(shell pkg-config --cflags upki) LDLIBS += $(shell pkg-config --libs upki) LDFLAGS += -Wl,-rpath,$(shell pkg-config --variable libdir upki) upki-demo: upki-demo.c demo-certs.h clean: rm -f upki-demo upki-1.0.0~beta.3/upki/ffi-example/demo-certs.h000066400000000000000000000372061523060067200212440ustar00rootroot00000000000000unsigned char CERT_0_DER[] = { 0x30, 0x82, 0x04, 0xff, 0x30, 0x82, 0x03, 0xe7, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x12, 0x06, 0x18, 0x29, 0xba, 0x4d, 0x0e, 0x6a, 0xc6, 0x56, 0x8d, 0x37, 0x7c, 0xe5, 0xaa, 0x6e, 0x43, 0x97, 0x3f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x33, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x03, 0x52, 0x31, 0x32, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x36, 0x30, 0x34, 0x32, 0x34, 0x30, 0x36, 0x31, 0x35, 0x35, 0x34, 0x5a, 0x17, 0x0d, 0x32, 0x36, 0x30, 0x37, 0x32, 0x33, 0x30, 0x36, 0x31, 0x35, 0x35, 0x33, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0a, 0x72, 0x75, 0x73, 0x74, 0x6c, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0x98, 0x98, 0x58, 0xeb, 0xec, 0xcb, 0xb6, 0x77, 0x81, 0xe8, 0x70, 0x0e, 0x87, 0x22, 0x31, 0xef, 0xd2, 0x63, 0x63, 0x67, 0x01, 0x9c, 0x90, 0x4e, 0x10, 0x16, 0x94, 0x9c, 0xf5, 0x19, 0xb6, 0x05, 0x30, 0x56, 0xb6, 0x82, 0x41, 0x62, 0xd4, 0x31, 0x0b, 0x79, 0xc0, 0xd4, 0xe1, 0xc1, 0x36, 0x13, 0x1f, 0x5c, 0x70, 0x16, 0x21, 0xd0, 0x1c, 0x53, 0x13, 0x8c, 0x3c, 0x0c, 0x8c, 0x5d, 0x15, 0x47, 0xf8, 0xc7, 0x94, 0x29, 0x41, 0x8f, 0xc2, 0xe3, 0xb2, 0x29, 0xb6, 0x1b, 0x77, 0x8d, 0xa8, 0x73, 0xea, 0xd8, 0x63, 0x91, 0x37, 0xd2, 0x26, 0x50, 0x61, 0xa1, 0x04, 0xbd, 0xfa, 0x76, 0x22, 0x06, 0xa5, 0xa0, 0x3d, 0xdc, 0x07, 0x4b, 0x8f, 0xb7, 0x06, 0x24, 0xb6, 0x17, 0x92, 0x2e, 0xc9, 0xae, 0xdc, 0x16, 0x2c, 0x2c, 0xc3, 0x6c, 0x94, 0x23, 0x2d, 0x9f, 0x9d, 0xd4, 0x40, 0xda, 0x98, 0x26, 0x3d, 0x67, 0x87, 0x37, 0xb6, 0x4c, 0xa4, 0xa3, 0xee, 0x52, 0x31, 0xe3, 0x87, 0x2c, 0xed, 0x38, 0xee, 0x70, 0xa5, 0xb5, 0x98, 0x7d, 0xc3, 0x87, 0x96, 0xfb, 0x2e, 0x45, 0x6c, 0xa2, 0x6c, 0x24, 0xff, 0x63, 0x42, 0xb6, 0xe4, 0x7c, 0xd4, 0x5f, 0x6b, 0x96, 0x73, 0x24, 0x7a, 0x0c, 0xa5, 0x89, 0x68, 0x86, 0xf1, 0x71, 0x03, 0x79, 0x53, 0x0e, 0x88, 0x1c, 0x6e, 0x5a, 0xa5, 0xf0, 0x80, 0x0c, 0x66, 0x0d, 0xa4, 0xa2, 0x20, 0xb5, 0xb9, 0x09, 0x1c, 0x00, 0x35, 0x8f, 0x3c, 0x89, 0xa7, 0x8a, 0x8c, 0x4e, 0x57, 0xfd, 0x1e, 0x28, 0x19, 0x3a, 0x63, 0xd0, 0x56, 0x03, 0xe9, 0xf5, 0x32, 0x0d, 0x37, 0x40, 0x3f, 0x9a, 0x90, 0x71, 0x33, 0xd7, 0xd7, 0xb4, 0x7e, 0x41, 0x48, 0xb4, 0x05, 0xaa, 0x8e, 0xf7, 0x65, 0x36, 0x87, 0x87, 0x66, 0xca, 0xff, 0x6d, 0x83, 0x43, 0xef, 0x48, 0xac, 0x8d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x02, 0x29, 0x30, 0x82, 0x02, 0x25, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x05, 0xa0, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x0c, 0x30, 0x0a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x58, 0xc9, 0xb2, 0xaa, 0x68, 0xe6, 0xa5, 0x48, 0xcc, 0xd8, 0x2b, 0xe8, 0x42, 0xb2, 0xbf, 0x7f, 0xbe, 0x45, 0x66, 0x68, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x00, 0xb5, 0x29, 0xf2, 0x2d, 0x8e, 0x6f, 0x31, 0xe8, 0x9b, 0x4c, 0xad, 0x78, 0x3e, 0xfa, 0xdc, 0xe9, 0x0c, 0xd1, 0xd2, 0x30, 0x33, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x72, 0x31, 0x32, 0x2e, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x63, 0x72, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x30, 0x25, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x1e, 0x30, 0x1c, 0x82, 0x0a, 0x72, 0x75, 0x73, 0x74, 0x6c, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x82, 0x0e, 0x77, 0x77, 0x77, 0x2e, 0x72, 0x75, 0x73, 0x74, 0x6c, 0x73, 0x2e, 0x64, 0x65, 0x76, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0c, 0x30, 0x0a, 0x30, 0x08, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x2e, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x27, 0x30, 0x25, 0x30, 0x23, 0xa0, 0x21, 0xa0, 0x1f, 0x86, 0x1d, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x72, 0x31, 0x32, 0x2e, 0x63, 0x2e, 0x6c, 0x65, 0x6e, 0x63, 0x72, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x36, 0x34, 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x82, 0x01, 0x0d, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02, 0x04, 0x02, 0x04, 0x81, 0xfe, 0x04, 0x81, 0xfb, 0x00, 0xf9, 0x00, 0x77, 0x00, 0xd8, 0x09, 0x55, 0x3b, 0x94, 0x4f, 0x7a, 0xff, 0xc8, 0x16, 0x19, 0x6f, 0x94, 0x4f, 0x85, 0xab, 0xb0, 0xf8, 0xfc, 0x5e, 0x87, 0x55, 0x26, 0x0f, 0x15, 0xd1, 0x2e, 0x72, 0xbb, 0x45, 0x4b, 0x14, 0x00, 0x00, 0x01, 0x9d, 0xbe, 0x56, 0xfb, 0x49, 0x00, 0x00, 0x04, 0x03, 0x00, 0x48, 0x30, 0x46, 0x02, 0x21, 0x00, 0xa7, 0x61, 0xdc, 0x84, 0x50, 0xbe, 0xa6, 0x64, 0x23, 0xc0, 0x4d, 0x89, 0x65, 0x30, 0x3d, 0x42, 0x65, 0x8d, 0xca, 0xc1, 0xed, 0x0f, 0x2a, 0x7d, 0xc3, 0xb9, 0x28, 0xe5, 0xfd, 0xf0, 0x95, 0xa7, 0x02, 0x21, 0x00, 0x8c, 0xaa, 0xbe, 0x5f, 0x9e, 0xeb, 0xe3, 0xdf, 0x44, 0x01, 0x1e, 0x08, 0xe3, 0xc3, 0x77, 0x56, 0xfa, 0x0b, 0x7f, 0xfe, 0x30, 0x71, 0x1e, 0xb7, 0xbc, 0x90, 0x6b, 0x9c, 0x97, 0xd8, 0x2f, 0x9b, 0x00, 0x7e, 0x00, 0x1a, 0x8b, 0x9d, 0x6b, 0x0f, 0xfe, 0xbf, 0x81, 0xb4, 0x79, 0x39, 0xc6, 0xd2, 0x31, 0x0a, 0x86, 0xd6, 0xd1, 0x02, 0xd4, 0xf0, 0x46, 0xe2, 0x18, 0x2c, 0x9d, 0xe3, 0x5f, 0x5e, 0x26, 0x25, 0xef, 0x00, 0x00, 0x01, 0x9d, 0xbe, 0x56, 0xff, 0x25, 0x00, 0x08, 0x00, 0x00, 0x05, 0x00, 0x0b, 0xab, 0x9b, 0x03, 0x04, 0x03, 0x00, 0x47, 0x30, 0x45, 0x02, 0x21, 0x00, 0x95, 0x86, 0x3a, 0x19, 0x87, 0x70, 0x43, 0x36, 0x20, 0xc8, 0x37, 0x25, 0x9f, 0xe9, 0xdb, 0xaf, 0x98, 0x10, 0x3e, 0xc6, 0x4f, 0x9a, 0x78, 0x44, 0xc9, 0xe7, 0x8f, 0xc6, 0xee, 0x6a, 0x6b, 0xb9, 0x02, 0x20, 0x32, 0x3b, 0xa9, 0x74, 0xc7, 0xaa, 0x59, 0x68, 0xcf, 0xcb, 0x34, 0x96, 0xd3, 0x9a, 0x0f, 0x8e, 0x74, 0xc1, 0xc6, 0x20, 0xc2, 0xcd, 0x4b, 0x56, 0x5a, 0x51, 0x01, 0x3b, 0x2e, 0xe3, 0x44, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0xd6, 0xa9, 0xe8, 0xc9, 0x90, 0xf4, 0x35, 0x54, 0xb4, 0xd3, 0x0f, 0x59, 0x56, 0xb4, 0xea, 0xd7, 0x36, 0x66, 0x54, 0x06, 0xcd, 0xad, 0xb9, 0x11, 0x4e, 0x4c, 0x7c, 0xd5, 0x47, 0x65, 0xfb, 0xd8, 0x21, 0xb2, 0xea, 0x4a, 0x6d, 0xe4, 0x45, 0x5f, 0xf4, 0x24, 0x09, 0x5a, 0xaa, 0xf4, 0x44, 0xba, 0xf8, 0xff, 0x4d, 0x38, 0x3d, 0x46, 0xd8, 0x82, 0xb5, 0x3a, 0x2e, 0xa3, 0xab, 0x82, 0x6d, 0xd6, 0x22, 0x71, 0x29, 0xd1, 0x27, 0xb6, 0xde, 0xc7, 0x79, 0x36, 0x22, 0xd0, 0xc6, 0x1f, 0x7e, 0x90, 0x4e, 0x22, 0x1c, 0xb2, 0xc7, 0xbe, 0x61, 0xd4, 0x89, 0x8e, 0x5c, 0x21, 0x6f, 0xb8, 0xf9, 0x45, 0x74, 0xe7, 0xae, 0x75, 0x87, 0x60, 0x53, 0x2f, 0x88, 0xcc, 0x84, 0x99, 0x78, 0x15, 0x10, 0xae, 0xa0, 0x0f, 0xe2, 0x60, 0x37, 0x06, 0x35, 0xd4, 0xd5, 0x8e, 0x10, 0xf2, 0x1d, 0xd9, 0xd8, 0x30, 0x0c, 0x62, 0x0e, 0x00, 0x8c, 0x07, 0xc4, 0xb7, 0xb1, 0x00, 0x87, 0x14, 0x43, 0x91, 0xe2, 0xa0, 0xa9, 0x6c, 0x29, 0x34, 0x16, 0x09, 0x78, 0x8b, 0x3c, 0x83, 0x99, 0x73, 0xb3, 0x90, 0xd4, 0x28, 0x1b, 0xed, 0x99, 0xd5, 0xc6, 0xc8, 0xd3, 0x0f, 0xdd, 0xf7, 0x7c, 0xc5, 0x82, 0x10, 0x56, 0x56, 0x36, 0x3a, 0x1b, 0x7e, 0xc5, 0x11, 0x63, 0xe8, 0x79, 0x2f, 0xe6, 0x7d, 0x86, 0x73, 0x10, 0xd8, 0xfb, 0x75, 0x24, 0x78, 0xd9, 0x79, 0xb8, 0x15, 0x0c, 0x34, 0xee, 0x1f, 0xb5, 0x38, 0x6e, 0xa6, 0x6b, 0x3f, 0xe9, 0xab, 0x8c, 0xd1, 0xe3, 0xde, 0xea, 0x01, 0x4b, 0xdd, 0xa7, 0x1b, 0x4b, 0xf0, 0xb0, 0x5e, 0x31, 0x9f, 0xa0, 0x58, 0xe2, 0xa7, 0x00, 0xa3, 0x98, 0xc0, 0x72, 0x58, 0x29, 0x28, 0xff, 0xba, 0xde, 0x40, 0x6d, 0x89, 0xd4, 0x81, 0xac, 0xfa, 0x57, 0xb2, 0x60, 0x0a, 0xbd, 0xda }; unsigned int CERT_0_DER_LEN = 1283; unsigned char CERT_1_DER[] = { 0x30, 0x82, 0x05, 0x06, 0x30, 0x82, 0x02, 0xee, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00, 0xc2, 0x12, 0x32, 0x4b, 0x70, 0xa9, 0xb4, 0x91, 0x71, 0xdc, 0x40, 0xf7, 0xe2, 0x85, 0x26, 0x3c, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x4f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x20, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0c, 0x49, 0x53, 0x52, 0x47, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x58, 0x31, 0x30, 0x1e, 0x17, 0x0d, 0x32, 0x34, 0x30, 0x33, 0x31, 0x33, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x37, 0x30, 0x33, 0x31, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, 0x4c, 0x65, 0x74, 0x27, 0x73, 0x20, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x03, 0x52, 0x31, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x98, 0x28, 0x74, 0xad, 0xbe, 0x94, 0xfe, 0x3b, 0xe0, 0x1e, 0xe2, 0xe5, 0x4b, 0x75, 0xab, 0x2c, 0x12, 0x7f, 0xed, 0xa7, 0x03, 0x32, 0x7e, 0x36, 0x97, 0xec, 0xe8, 0x31, 0x8f, 0xa5, 0x13, 0x8d, 0x0b, 0x99, 0x2e, 0x1e, 0xcd, 0x01, 0x51, 0x3d, 0x4c, 0xe5, 0x28, 0x6e, 0x09, 0x55, 0x31, 0xaa, 0xa5, 0x22, 0x5d, 0x72, 0xf4, 0x2d, 0x07, 0xc2, 0x4d, 0x40, 0x3c, 0xdf, 0x01, 0x23, 0xb9, 0x78, 0x37, 0xf5, 0x1a, 0x65, 0x32, 0x34, 0xe6, 0x86, 0x71, 0x9d, 0x04, 0xef, 0x84, 0x08, 0x5b, 0xbd, 0x02, 0x1a, 0x99, 0xeb, 0xa6, 0x01, 0x00, 0x9a, 0x73, 0x90, 0x6d, 0x8f, 0xa2, 0x07, 0xa0, 0xd0, 0x97, 0xd3, 0xda, 0x45, 0x61, 0x81, 0x35, 0x3d, 0x14, 0xf9, 0xc4, 0xc0, 0x5f, 0x6a, 0xdc, 0x0b, 0x96, 0x1a, 0xb0, 0x9f, 0xe3, 0x2a, 0xea, 0xbd, 0x2a, 0xd6, 0x98, 0xc7, 0x9b, 0x71, 0xab, 0x3b, 0x74, 0x0f, 0x3c, 0xdb, 0xb2, 0x60, 0xbe, 0x5a, 0x4b, 0x4e, 0x18, 0xe9, 0xdb, 0x2a, 0x73, 0x5c, 0x89, 0x61, 0x65, 0x9e, 0xfe, 0xed, 0x3c, 0xa6, 0xcb, 0x4e, 0x6f, 0xe4, 0x9e, 0xf9, 0x00, 0x46, 0xb3, 0xff, 0x19, 0x4d, 0x2a, 0x63, 0xb3, 0x8e, 0x66, 0xc6, 0x18, 0x85, 0x70, 0xc7, 0x50, 0x65, 0x6f, 0x3b, 0x74, 0xe5, 0x48, 0x83, 0x0f, 0x08, 0x58, 0x5d, 0x2d, 0x23, 0x9d, 0x5e, 0xa3, 0xfe, 0xe8, 0xdb, 0x00, 0xa1, 0xd2, 0xf4, 0xe3, 0x19, 0x4d, 0xf2, 0xee, 0x7a, 0xf6, 0x27, 0x9e, 0xe5, 0xcd, 0x9c, 0x2d, 0xa2, 0xf2, 0x7f, 0x9c, 0x17, 0xad, 0xef, 0x13, 0x37, 0x39, 0xd1, 0xb4, 0xc8, 0x2c, 0x41, 0xd6, 0x86, 0xc0, 0xe9, 0xec, 0x21, 0xf8, 0x59, 0x1b, 0x7f, 0xb9, 0x3a, 0x7c, 0x9f, 0x5c, 0x01, 0x9d, 0x62, 0x04, 0xc2, 0x28, 0xbd, 0x0a, 0xad, 0x3c, 0xca, 0x10, 0xec, 0x1b, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x81, 0xf8, 0x30, 0x81, 0xf5, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x00, 0xb5, 0x29, 0xf2, 0x2d, 0x8e, 0x6f, 0x31, 0xe8, 0x9b, 0x4c, 0xad, 0x78, 0x3e, 0xfa, 0xdc, 0xe9, 0x0c, 0xd1, 0xd2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x79, 0xb4, 0x59, 0xe6, 0x7b, 0xb6, 0xe5, 0xe4, 0x01, 0x73, 0x80, 0x08, 0x88, 0xc8, 0x1a, 0x58, 0xf6, 0xe9, 0x9b, 0x6e, 0x30, 0x32, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x26, 0x30, 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x31, 0x2e, 0x69, 0x2e, 0x6c, 0x65, 0x6e, 0x63, 0x72, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x30, 0x13, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 0x0c, 0x30, 0x0a, 0x30, 0x08, 0x06, 0x06, 0x67, 0x81, 0x0c, 0x01, 0x02, 0x01, 0x30, 0x27, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x20, 0x30, 0x1e, 0x30, 0x1c, 0xa0, 0x1a, 0xa0, 0x18, 0x86, 0x16, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x78, 0x31, 0x2e, 0x63, 0x2e, 0x6c, 0x65, 0x6e, 0x63, 0x72, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x8f, 0x75, 0xd0, 0x09, 0xcf, 0x6a, 0x76, 0x48, 0x65, 0x32, 0x92, 0xde, 0xb5, 0x44, 0xc8, 0x85, 0x76, 0xf4, 0x15, 0x84, 0x8c, 0x02, 0xbf, 0x76, 0xeb, 0xb3, 0xf1, 0xe2, 0xf9, 0x6e, 0x84, 0xa8, 0x56, 0x91, 0xe1, 0x92, 0x4b, 0xf7, 0xe1, 0xea, 0x00, 0x78, 0x48, 0x8f, 0x75, 0x92, 0xe3, 0xe4, 0x46, 0x7b, 0x1b, 0x60, 0x2b, 0x20, 0xaf, 0xa0, 0xce, 0x14, 0xe5, 0x45, 0x0d, 0x6a, 0xe0, 0x52, 0x86, 0xa4, 0xf3, 0xda, 0x14, 0x14, 0xa9, 0xa9, 0x5f, 0xf1, 0x6d, 0x46, 0xf9, 0x52, 0x50, 0x17, 0x40, 0xe9, 0xe4, 0x1e, 0x7d, 0xe6, 0x15, 0x58, 0xfe, 0xa9, 0x8b, 0xfc, 0xef, 0xf5, 0x9e, 0x63, 0xe0, 0x66, 0xe2, 0xc3, 0x77, 0x3b, 0x1f, 0x01, 0x87, 0x26, 0x94, 0xed, 0x40, 0x10, 0xdc, 0xb7, 0x99, 0xec, 0xdd, 0x57, 0xd3, 0x5c, 0x71, 0x41, 0xee, 0x30, 0x20, 0x00, 0x04, 0xdc, 0x95, 0x4b, 0x50, 0x28, 0x87, 0x99, 0x92, 0xfe, 0xaa, 0x80, 0x94, 0xb6, 0x06, 0x08, 0x14, 0xf8, 0x1c, 0x83, 0x7e, 0x74, 0x40, 0xc5, 0x08, 0x5a, 0x0c, 0x4f, 0x5c, 0xd1, 0x84, 0x9d, 0xc4, 0xfd, 0xdb, 0x59, 0xde, 0xee, 0x79, 0x6e, 0x23, 0x4d, 0x95, 0xf2, 0x92, 0xd4, 0x98, 0x29, 0x6a, 0x5c, 0xeb, 0x02, 0xc1, 0x42, 0xf0, 0xf8, 0xf5, 0x4e, 0x64, 0x20, 0x7b, 0xa8, 0xe3, 0x31, 0xc4, 0xc0, 0x68, 0x09, 0x47, 0x8b, 0xd8, 0xb9, 0x78, 0xa0, 0xca, 0x4e, 0x4a, 0xbe, 0x69, 0x24, 0x2a, 0x4b, 0x37, 0x7b, 0x51, 0x03, 0x6b, 0x3a, 0x3f, 0x52, 0x8b, 0xb3, 0xd4, 0xd2, 0xad, 0x58, 0x4e, 0x93, 0xee, 0xcb, 0x5f, 0x6f, 0x0d, 0x31, 0x49, 0x48, 0xba, 0xc4, 0x3f, 0x9f, 0x12, 0xc9, 0x20, 0x3d, 0x11, 0x84, 0x07, 0x85, 0xb4, 0xf8, 0xf2, 0x38, 0x23, 0xac, 0x71, 0x00, 0x40, 0xe7, 0x7f, 0x8d, 0x46, 0x34, 0x82, 0x6a, 0x4e, 0xcf, 0xe0, 0x0e, 0x63, 0x5f, 0xba, 0x69, 0x9a, 0x47, 0x09, 0x10, 0x22, 0xfe, 0x4b, 0x48, 0xb7, 0x91, 0x75, 0x54, 0xcb, 0x93, 0x1e, 0xe4, 0x16, 0xeb, 0x53, 0xcf, 0x7b, 0xde, 0x36, 0x4d, 0xbf, 0xf6, 0xb1, 0xeb, 0xe6, 0x4a, 0xe9, 0x33, 0x3c, 0x8d, 0x69, 0xa2, 0x98, 0xbe, 0xa8, 0x7f, 0xa3, 0xab, 0x5f, 0xb6, 0x54, 0xe8, 0x4d, 0x96, 0xa9, 0xac, 0xf3, 0xb0, 0x5a, 0xcb, 0x1b, 0x7a, 0x36, 0x93, 0x24, 0x9b, 0xce, 0x58, 0x52, 0x80, 0x9f, 0x35, 0x0a, 0x5e, 0x2d, 0xbf, 0x74, 0x9b, 0x62, 0x26, 0x17, 0x9c, 0x91, 0x31, 0x29, 0x0b, 0xf3, 0x7f, 0xcd, 0xc3, 0x62, 0x8b, 0x68, 0xc7, 0x77, 0xf4, 0x7f, 0x0b, 0xfb, 0xc6, 0x59, 0xf5, 0x03, 0x66, 0x4b, 0xa6, 0x50, 0x9b, 0xd0, 0xef, 0xa5, 0xfc, 0x02, 0xb4, 0x60, 0x4d, 0x03, 0x4b, 0x61, 0x4f, 0xc5, 0x20, 0x07, 0x8b, 0x48, 0xb0, 0x31, 0xf5, 0xb6, 0x9c, 0xd1, 0xc9, 0xad, 0x77, 0x18, 0xdc, 0xb2, 0xc7, 0x0f, 0xbe, 0xe0, 0x46, 0x08, 0xde, 0xe0, 0x4b, 0xde, 0xb9, 0xb8, 0xb6, 0xc7, 0x16, 0xbe, 0x36, 0x69, 0x3f, 0x86, 0x68, 0x4b, 0x74, 0x81, 0x13, 0x89, 0x50, 0xc5, 0x6a, 0x7a, 0x02, 0xac, 0xc5, 0x48, 0xa5, 0x0e, 0x7d, 0x5d, 0x61, 0xe4, 0xcd, 0xd1, 0x66, 0xa0, 0x75, 0xc7, 0x05, 0x5e, 0xe8, 0x89, 0xb5, 0x63, 0x19, 0x23, 0xbb, 0x50, 0xb4, 0x90, 0xec, 0xc2, 0x75, 0x37, 0x3e, 0x75, 0xa6, 0x1b, 0x83, 0x25, 0x28, 0x00, 0x21, 0x4e, 0xc0, 0xd3, 0x3a, 0xcb, 0x9c, 0xea, 0xc0, 0x8f, 0xf7, 0x5f, 0xae, 0x51, 0x16, 0x46, 0x10, 0xaf, 0x02, 0x06, 0xee, 0xc0, 0xb6, 0x57, 0xd4, 0x0d, 0xac, 0x8c, 0xd8, 0xd7, 0xa0, 0xf3, 0x87, 0x6e, 0xc3, 0xe2, 0xcb, 0xe9, 0x4e, 0xd4, 0xa1, 0x7c, 0xfd, 0x76, 0x3b }; unsigned int CERT_1_DER_LEN = 1290; upki-1.0.0~beta.3/upki/ffi-example/upki-demo.c000066400000000000000000000016001523060067200210540ustar00rootroot00000000000000#include #include "demo-certs.h" #include "upki.h" int main() { upki_config *config = NULL; upki_result e = upki_config_new(NULL, &config); if (e != UPKI_OK) { fprintf(stderr, "cannot load upki configuration: %d\n", e); return 1; } // Get some certificates from somewhere. For demo purposes, we have some // sampled from rustls.dev. This is not a serious approach, but simplifies // this demo. upki_certificate_der certs[2] = { {.data = CERT_0_DER, .len = CERT_0_DER_LEN}, {.data = CERT_1_DER, .len = CERT_1_DER_LEN}, }; e = upki_check_revocation(config, certs, sizeof(certs) / sizeof(certs[0])); upki_config_free(config); switch (e) { case UPKI_REVOCATION_NOT_REVOKED: case UPKI_REVOCATION_NOT_COVERED: printf("revocation status: %d\n", e); return 0; default: printf("revocation error: %d\n", e); return 1; } } upki-1.0.0~beta.3/upki/src/000077500000000000000000000000001523060067200154135ustar00rootroot00000000000000upki-1.0.0~beta.3/upki/src/ffi.rs000066400000000000000000000251711523060067200165330ustar00rootroot00000000000000#![allow(non_camel_case_types)] use core::ffi::c_char; use std::ffi::CStr; use std::panic::catch_unwind; use std::path::Path; use std::slice; use rustls_pki_types::CertificateDer; use crate::revocation::{self, Index, RevocationCheckInput, RevocationStatus}; use crate::{Config, ConfigPath, Error}; /// Check the revocation status of a certificate. /// /// The `certificates` array should contain the end-entity certificate first, /// followed by any intermediate certificates needed to find the issuer. /// /// Returns a `upki_result` indicating success (with revocation status) or an error. /// /// # Safety /// /// - `config` must be a valid pointer returned by `upki_config_new`. /// - `certificates` must point to `certificates_len` `upki_certificate` values. /// - Each `upki_certificate` must have a valid `data` pointer to `len` bytes. #[unsafe(no_mangle)] pub unsafe extern "C" fn upki_check_revocation( config: *const upki_config, certificates: *const upki_certificate_der, certificates_len: usize, ) -> upki_result { catch_unwind(|| { if config.is_null() || certificates.is_null() { return upki_result::UPKI_ERR_NULL_POINTER; } let config = unsafe { &(*config).0 }; let certificates = unsafe { slice::from_raw_parts(certificates, certificates_len) }; let certs = certificates .iter() .map(|c| CertificateDer::from(unsafe { slice::from_raw_parts(c.data, c.len) })) .collect::>(); let input = match RevocationCheckInput::from_certificates(&certs) { Ok(input) => input, Err(err) => return Error::Revocation(err).into(), }; let mut index = match Index::from_cache(config) { Ok(index) => index, Err(err) => return Error::Revocation(err).into(), }; match index.check(&input) { Ok(status) => match status { RevocationStatus::NotCoveredByRevocationData => { upki_result::UPKI_REVOCATION_NOT_COVERED } RevocationStatus::CertainlyRevoked => upki_result::UPKI_REVOCATION_REVOKED, RevocationStatus::NotRevoked => upki_result::UPKI_REVOCATION_NOT_REVOKED, }, Err(err) => Error::Revocation(err).into(), } }) .unwrap_or(upki_result::UPKI_ERR_PANICKED) } /// Opaque type representing a `upki::Config`. pub struct upki_config(Config); /// Create a new `upki_config` by loading it from the file at `path`. /// /// If `path` is `NULL`, the file is found by searching for a configuration /// file in a series of places (depending on the platform.) This is /// exposed by the `upki` command-line tool: run `upki show-config-path` /// so see where the current configuration file is being found. /// /// On success, writes the config pointer to `out` and returns `UPKI_OK`. /// The caller is responsible for freeing the config with `upki_config_free`. /// /// # Safety /// /// - `out` must be a pointer to writable, properly-aligned storage for a pointer. /// Returns `UPKI_ERR_NULL_POINTER` if `out` is `NULL`. /// - `path` must be a valid pointer to a null-terminated UTF-8 string, or `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn upki_config_new( path: *const c_char, out: *mut *mut upki_config, ) -> upki_result { catch_unwind(|| { if out.is_null() { return upki_result::UPKI_ERR_NULL_POINTER; } let path = match path.is_null() { true => match ConfigPath::new(None) { Ok(path) => path, Err(e) => return e.into(), }, false => { let path = unsafe { CStr::from_ptr(path) }; let Ok(path) = path.to_str() else { return upki_result::UPKI_ERR_CONFIG_PATH; }; ConfigPath::Specified(Path::new(path).to_owned()) } }; match Config::from_file_or_user_default(&path) { Ok(config) => { unsafe { *out = Box::into_raw(Box::new(upki_config(config))) }; upki_result::UPKI_OK } Err(err) => err.into(), } }) .unwrap_or(upki_result::UPKI_ERR_PANICKED) } /// Free a `upki_config` created by `upki_config_new`. /// /// # Safety /// /// `config` must be a valid pointer returned by `upki_config_new`, /// or null (in which case this is a no-op). #[unsafe(no_mangle)] pub unsafe extern "C" fn upki_config_free(config: *mut upki_config) { if !config.is_null() { drop(unsafe { Box::from_raw(config) }); } } /// A DER-encoded certificate. #[repr(C)] pub struct upki_certificate_der { /// Pointer to the DER-encoded certificate data. pub data: *const u8, /// Length of the certificate data in bytes. pub len: usize, } /// Result type for upki C API functions. /// /// Values 0-15 indicate success (with specific status information). /// Values 16 and above indicate errors. #[repr(C)] pub enum upki_result { /// Operation succeeded. UPKI_OK = 0, /// The certificate is not covered by the revocation data. UPKI_REVOCATION_NOT_COVERED = 1, /// The certificate has been revoked. UPKI_REVOCATION_REVOKED = 2, /// The certificate is not revoked. UPKI_REVOCATION_NOT_REVOKED = 3, /// A null pointer was passed where a valid pointer was required. UPKI_ERR_NULL_POINTER = 16, /// The config path is not valid UTF-8. UPKI_ERR_CONFIG_PATH = 17, /// An unknown error variant was added to the library. UPKI_ERR_UNKNOWN = 18, /// An unexpected panic occurred in the library. UPKI_ERR_PANICKED = 19, // Errors from upki::Error /// Failed to decode configuration file. UPKI_ERR_CONFIG_DECODE = 32, /// Failed to read configuration file. UPKI_ERR_CONFIG_READ = 33, /// No cache directory could be found. UPKI_ERR_NO_CACHE_DIR = 34, /// No configuration directory could be found. UPKI_ERR_NO_CONFIG_DIR = 35, /// The user's home directory could not be determined. UPKI_ERR_NO_HOME_DIR = 36, // Errors from upki::revocation::Error /// Failed to create a directory. UPKI_ERR_REVOCATION_CREATE_DIR = 64, /// Failed to write a file. UPKI_ERR_REVOCATION_FILE_WRITE = 65, /// Failed to decode a file. UPKI_ERR_REVOCATION_FILE_DECODE = 66, /// Failed to read a file. UPKI_ERR_REVOCATION_FILE_READ = 67, /// A downloaded file did not match the expected hash. UPKI_ERR_REVOCATION_HASH_MISMATCH = 68, /// Failed to fetch a file over HTTP. UPKI_ERR_REVOCATION_HTTP_FETCH = 69, /// Invalid base64 encoding. UPKI_ERR_REVOCATION_INVALID_BASE64 = 70, /// The end-entity certificate was invalid. UPKI_ERR_REVOCATION_INVALID_END_ENTITY_CERT = 71, /// An intermediate certificate was invalid. UPKI_ERR_REVOCATION_INVALID_INTERMEDIATE_CERT = 72, /// A base64-decoded value did not have the expected length. UPKI_ERR_REVOCATION_INVALID_LENGTH = 73, /// Invalid SCT encoding. UPKI_ERR_REVOCATION_INVALID_SCT_ENCODING = 74, /// An SCT in the end-entity certificate could not be parsed. UPKI_ERR_REVOCATION_INVALID_SCT_IN_CERT = 75, /// A timestamp could not be parsed. UPKI_ERR_REVOCATION_INVALID_TIMESTAMP = 76, /// Failed to encode a manifest file. UPKI_ERR_REVOCATION_MANIFEST_ENCODE = 77, /// No issuer found for the end-entity certificate. UPKI_ERR_REVOCATION_NO_ISSUER = 78, /// Cache is outdated. UPKI_ERR_REVOCATION_OUTDATED = 79, /// Failed to remove a file. UPKI_ERR_REVOCATION_REMOVE_FILE = 80, /// Certificate chain must contain at least 2 certificates. UPKI_ERR_REVOCATION_TOO_FEW_CERTS = 81, } impl From for upki_result { fn from(err: Error) -> Self { match err { Error::ConfigError { .. } => Self::UPKI_ERR_CONFIG_DECODE, Error::FileRead { .. } => Self::UPKI_ERR_CONFIG_READ, Error::NoCacheDirectoryFound => Self::UPKI_ERR_NO_CACHE_DIR, Error::NoConfigDirectoryFound => Self::UPKI_ERR_NO_CONFIG_DIR, Error::NoValidHomeDirectory => Self::UPKI_ERR_NO_HOME_DIR, Error::Revocation(revocation::Error::CreateDirectory { .. }) => { Self::UPKI_ERR_REVOCATION_CREATE_DIR } Error::Revocation(revocation::Error::FileWrite { .. }) => { Self::UPKI_ERR_REVOCATION_FILE_WRITE } Error::Revocation(revocation::Error::FileDecode { .. }) => { Self::UPKI_ERR_REVOCATION_FILE_DECODE } Error::Revocation(revocation::Error::FileRead { .. }) => { Self::UPKI_ERR_REVOCATION_FILE_READ } Error::Revocation(revocation::Error::HashMismatch(_)) => { Self::UPKI_ERR_REVOCATION_HASH_MISMATCH } Error::Revocation(revocation::Error::HttpFetch { .. }) => { Self::UPKI_ERR_REVOCATION_HTTP_FETCH } Error::Revocation(revocation::Error::InvalidBase64 { .. }) => { Self::UPKI_ERR_REVOCATION_INVALID_BASE64 } Error::Revocation(revocation::Error::InvalidEndEntityCertificate(_)) => { Self::UPKI_ERR_REVOCATION_INVALID_END_ENTITY_CERT } Error::Revocation(revocation::Error::InvalidIntermediateCertificate { .. }) => { Self::UPKI_ERR_REVOCATION_INVALID_INTERMEDIATE_CERT } Error::Revocation(revocation::Error::InvalidLength { .. }) => { Self::UPKI_ERR_REVOCATION_INVALID_LENGTH } Error::Revocation(revocation::Error::InvalidSctEncoding) => { Self::UPKI_ERR_REVOCATION_INVALID_SCT_ENCODING } Error::Revocation(revocation::Error::InvalidSctInCertificate(_)) => { Self::UPKI_ERR_REVOCATION_INVALID_SCT_IN_CERT } Error::Revocation(revocation::Error::InvalidTimestamp { .. }) => { Self::UPKI_ERR_REVOCATION_INVALID_TIMESTAMP } Error::Revocation(revocation::Error::ManifestEncode { .. }) => { Self::UPKI_ERR_REVOCATION_MANIFEST_ENCODE } Error::Revocation(revocation::Error::NoIssuer) => Self::UPKI_ERR_REVOCATION_NO_ISSUER, Error::Revocation(revocation::Error::Outdated(_)) => Self::UPKI_ERR_REVOCATION_OUTDATED, Error::Revocation(revocation::Error::RemoveFile { .. }) => { Self::UPKI_ERR_REVOCATION_REMOVE_FILE } Error::Revocation(revocation::Error::TooFewCertificates) => { Self::UPKI_ERR_REVOCATION_TOO_FEW_CERTS } _ => Self::UPKI_ERR_UNKNOWN, } } } upki-1.0.0~beta.3/upki/src/lib.rs000066400000000000000000000177131523060067200165400ustar00rootroot00000000000000#![doc = include_str!("../README.md")] #![warn(missing_docs)] use core::error::Error as StdError; #[cfg(target_os = "windows")] use std::env; use std::path::{Path, PathBuf}; use std::{fmt, fs, io}; use directories::ProjectDirs; use serde::{Deserialize, Serialize}; pub(crate) mod sha256; /// Determining revocation status of publicly trusted certificates. pub mod revocation; use crate::revocation::RevocationConfig; /// Foreign function interface. #[cfg(feature = "capi")] pub mod ffi; /// `upki` configuration. #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "kebab-case", deny_unknown_fields)] pub struct Config { /// Where to store cache files. cache_dir: PathBuf, /// Configuration for crlite-style revocation. pub revocation: RevocationConfig, } impl Config { /// Load the configuration data from a file at `path`. /// /// If no file exists at `path`, a default configuration is returned. pub fn from_file_or_user_default(path: &ConfigPath) -> Result { match path { ConfigPath::Default(path) if path.exists() => Self::from_file(path), ConfigPath::Default(_) => Self::try_default(), ConfigPath::Specified(path) => Self::from_file(path), } } /// Load the configuration data from a file at `path`. pub fn from_file(path: &Path) -> Result { let config_content = fs::read_to_string(path).map_err(|error| Error::FileRead { error, path: path.to_owned(), })?; toml::from_str(&config_content).map_err(|error| Error::ConfigError { error: Box::new(error), path: path.to_owned(), }) } /// Return a sensible default configuration. pub fn try_default() -> Result { let user_cache = project_dirs()?.cache_dir().to_owned(); Ok(Self { cache_dir: match user_cache.exists() { true => user_cache, false => { let system_cache = platform::system_cache_dir()?; match system_cache.exists() { true => system_cache, false => user_cache, } } }, revocation: RevocationConfig::default(), }) } pub(crate) fn revocation_cache_dir(&self) -> PathBuf { self.cache_dir.join("revocation") } } /// How the path to a configuration file was decided upon. pub enum ConfigPath { /// The path was directly specified by a user. Specified(PathBuf), /// The path was determined automatically. Default(PathBuf), } impl ConfigPath { /// Return the path of a configuration file. /// /// If `specified` is supplied, this path is returned -- no searching is performed /// and this function does not return an error. /// /// This function prefers to return paths to existing files. If no files exist /// according to the (platform-specific) search logic, then a suggested location /// is returned where a configuration file can be created if desired. /// /// This function fails for platform-specific reasons, typically if `$HOME` is not /// set, or another XDG environment variable is malformed. pub fn new(specified: Option) -> Result { if let Some(f) = specified { return Ok(Self::Specified(f)); } // Search for an existing configuration file. // // The search order is: // // - user-specific files, following XDG // - a system-level file // // If no files are found, the user-specific file location is returned. let user = project_dirs()? .config_dir() .join(CONFIG_FILE); if user.exists() { return Ok(Self::Default(user)); } let system = platform::system_config_dir()?.join(CONFIG_FILE); if system.exists() { return Ok(Self::Default(system.to_owned())); } Ok(Self::Default(user)) } } impl AsRef for ConfigPath { fn as_ref(&self) -> &Path { match self { Self::Specified(path) => path.as_ref(), Self::Default(path) => path.as_ref(), } } } #[cfg(target_vendor = "apple")] mod platform { use super::*; pub(super) fn system_config_dir() -> Result { Ok(PathBuf::from("/Library/Application Support").join(PREFIX)) } pub(super) fn system_cache_dir() -> Result { Ok(PathBuf::from("/Library/Caches").join(BUNDLE_ID)) } } #[cfg(all(unix, not(target_vendor = "apple")))] mod platform { use super::*; pub(super) fn system_config_dir() -> Result { Ok(PathBuf::from("/etc").join(PREFIX)) } pub(super) fn system_cache_dir() -> Result { Ok(PathBuf::from("/var/cache").join(PREFIX)) } } #[cfg(target_os = "windows")] mod platform { use super::*; pub(super) fn system_config_dir() -> Result { Ok(match env::var_os("ProgramData") { Some(base) => PathBuf::from(base), None => PathBuf::from("C:\\ProgramData"), } .join(VENDOR) .join(PREFIX)) } pub(super) fn system_cache_dir() -> Result { Ok(match env::var_os("ProgramData") { Some(base) => PathBuf::from(base), None => PathBuf::from("C:\\ProgramData"), } .join(VENDOR) .join(PREFIX) .join("cache")) } } /// Errors for the upki library API. #[non_exhaustive] #[derive(Debug)] pub enum Error { /// Failed to decode configuration file at `path`. ConfigError { /// Underlying error. error: Box, /// Path to the configuration file. path: PathBuf, }, /// Failed to read configuration file at `path`. FileRead { /// Underlying error. error: io::Error, /// Path to the configuration file. path: PathBuf, }, /// No cache directory could be found. NoCacheDirectoryFound, /// No configuration directory could be found. NoConfigDirectoryFound, /// The user's home directory could not be determined. NoValidHomeDirectory, /// Error from the revocation API. Revocation(revocation::Error), } impl StdError for Error { fn source(&self) -> Option<&(dyn StdError + 'static)> { match self { Self::ConfigError { error, .. } => Some(error.as_ref()), Self::FileRead { error, .. } => Some(error), Self::NoCacheDirectoryFound | Self::NoConfigDirectoryFound | Self::NoValidHomeDirectory => None, Self::Revocation(err) => Some(err), } } } impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::ConfigError { path, .. } => { write!(f, "failed to parse config file at {}", path.display()) } Self::FileRead { path, .. } => { write!(f, "failed to read config file at {}", path.display()) } Self::NoCacheDirectoryFound => write!(f, "no cache directory could be found"), Self::NoConfigDirectoryFound => write!(f, "no configuration directory could be found"), Self::NoValidHomeDirectory => write!(f, "could not determine user's home directory"), Self::Revocation(_) => write!(f, "revocation error"), } } } impl From for Error { fn from(value: revocation::Error) -> Self { Self::Revocation(value) } } fn project_dirs() -> Result { ProjectDirs::from("dev", "rustls", PREFIX).ok_or(Error::NoValidHomeDirectory) } #[cfg(target_vendor = "apple")] const BUNDLE_ID: &str = "dev.rustls.upki"; #[cfg(target_os = "windows")] const VENDOR: &str = "rustls"; const PREFIX: &str = "upki"; const CONFIG_FILE: &str = "config.toml"; upki-1.0.0~beta.3/upki/src/revocation/000077500000000000000000000000001523060067200175645ustar00rootroot00000000000000upki-1.0.0~beta.3/upki/src/revocation/fetch.rs000066400000000000000000000317001523060067200212240ustar00rootroot00000000000000//! upki fetcher. //! //! This program synchronises a local directory with the crlite files contained on a //! remote server. There is a manifest file that gives the names, sizes and hashes of //! all valid files; this is fetched first. Then a plan is formed by comparing this against //! the local filesystem contents. Finally, the plan is executed. If that succeeds //! the remote server contents matches the local filesystem. use core::fmt; use core::time::Duration; use std::collections::HashSet; use std::env; #[cfg(target_family = "unix")] use std::fs::Permissions; use std::fs::{self, File}; use std::io::{self, Read, Write}; #[cfg(target_family = "unix")] use std::os::unix::fs::PermissionsExt; use std::path::{Path, PathBuf}; use std::process::ExitCode; use tracing::{debug, info}; use super::index::INDEX_BIN; use super::{Error, Index, Manifest, ManifestFile}; use crate::{Config, sha256}; /// Update the local revocation cache by fetching updates over the network. /// /// `dry_run` means this call fetches the new manifest, but does not fetch any /// required files; but the necessary files are printed to stdout. Therefore /// such a call is not completely "dry" -- perhaps "moist". pub async fn fetch(dry_run: bool, config: &Config) -> Result { let cache_dir = config.revocation_cache_dir(); info!( "fetching {} into {:?}...", &config.revocation.fetch_url, &cache_dir, ); let manifest_url = format!("{}{MANIFEST_JSON}", config.revocation.fetch_url); #[cfg(feature = "fetch")] let builder = reqwest::Client::builder().use_rustls_tls(); #[cfg(all(feature = "fetch-native-tls", not(feature = "fetch")))] let builder = reqwest::Client::builder().use_native_tls(); let client = builder .timeout(Duration::from_secs(REQUEST_TIMEOUT)) .user_agent(format!( "{}/{} ({})", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"), env!("CARGO_PKG_REPOSITORY") )) .build() .map_err(|error| Error::HttpFetch { error: Box::new(error), url: manifest_url.clone(), })?; let response = client .get(&manifest_url) .send() .await .map_err(|error| Error::HttpFetch { error: Box::new(error), url: manifest_url.clone(), })? .error_for_status() .map_err(|error| Error::HttpFetch { error: Box::new(error), url: manifest_url.clone(), })?; let manifest = response .json::() .await .map_err(|error| Error::FileDecode { error: Box::new(error), path: None, })?; manifest.introduce()?; let old_manifest = Manifest::from_config(config).ok(); let plan = Plan::construct( &manifest, &old_manifest, &config.revocation.fetch_url, &cache_dir, )?; if dry_run { println!( "{} steps required ({} bytes to download)", plan.steps.len(), plan.download_bytes() ); for step in plan.steps { println!("- {step}"); } return Ok(ExitCode::SUCCESS); } info!( "{} steps required ({} bytes to download).", plan.steps.len(), plan.download_bytes() ); for step in plan.steps { step.execute(&client).await?; } info!("success"); Ok(ExitCode::SUCCESS) } pub(crate) struct Plan { steps: Vec, } impl Plan { /// Form a plan of how to synchronize with the remote server. /// /// - `manifest` describes the contents of the remote server. /// - `old_manifest` is an alleged current manifest, whose files are left alone. /// - `remote_url` is the base URL. /// - `local` is the path into which files are downloaded. The caller ensures this exists. pub(crate) fn construct( manifest: &Manifest, old_manifest: &Option, remote_url: &str, local: &Path, ) -> Result { let mut steps = Vec::new(); // Collect unwanted files for deletion let mut unwanted_files = HashSet::new(); if local.exists() { let iter = fs::read_dir(local).map_err(|error| Error::CreateDirectory { error, path: local.to_owned(), })?; for entry in iter { let entry = match entry { Ok(e) => e, Err(error) => return Err(Error::FileRead { error, path: None }), }; let path = Path::new(&entry.file_name()).to_owned(); let name = path.to_string_lossy(); if name.ends_with(".filter") || name.ends_with(".delta") { unwanted_files.insert(path); } } } else { steps.push(PlanStep::CreateDir(local.to_owned())); } for file in &manifest.files { unwanted_files.remove(Path::new(&file.filename)); let path = local.join(&file.filename); match hash_file(&path) { Ok(digest) if digest.as_ref() == file.hash => continue, _ => {} } steps.push(PlanStep::download(file, remote_url, local)); } if let Some(old_manifest) = &old_manifest { for file in &old_manifest.files { unwanted_files.remove(Path::new(&file.filename)); } } steps.push(PlanStep::SaveIndex { manifest: manifest.clone(), local_dir: local.to_owned(), }); steps.push(PlanStep::SaveManifest { manifest: manifest.clone(), local_dir: local.to_owned(), }); for filename in unwanted_files { steps.push(PlanStep::Delete(local.join(filename))); } Ok(Self { steps }) } /// How many bytes will we download? pub(crate) fn download_bytes(&self) -> usize { self.steps .iter() .filter_map(|s| match s { PlanStep::Download { file, .. } => Some(file.size), _ => None, }) .sum() } } /// One step moving closer to local sync with the remote contents. enum PlanStep { CreateDir(PathBuf), /// Download `file` from `remote` to `local` Download { file: ManifestFile, /// URL. remote_url: String, /// Full path to output file. local: PathBuf, }, /// Delete the given single local file. Delete(PathBuf), /// Build and save the index from filter universe metadata. SaveIndex { manifest: Manifest, local_dir: PathBuf, }, /// Save the manifest structure SaveManifest { manifest: Manifest, local_dir: PathBuf, }, } impl PlanStep { async fn execute(self, client: &reqwest::Client) -> Result<(), Error> { match self { Self::CreateDir(path) => { fs::create_dir_all(&path).map_err(|error| Error::CreateDirectory { error, path })? } Self::Download { file, remote_url, local, } => { debug!("downloading {:?}", file); let response = client .get(&remote_url) .send() .await .map_err(|error| Error::HttpFetch { error: Box::new(error), url: remote_url.clone(), })? .error_for_status() .map_err(|error| Error::HttpFetch { error: Box::new(error), url: remote_url.clone(), })?; let bytes = response .bytes() .await .map_err(|error| Error::HttpFetch { error: Box::new(error), url: remote_url.clone(), })?; atomic_write(&local, &bytes).map_err(|error| Error::FileWrite { error, path: local.clone(), })?; match hash_file(&local) { Ok(digest) if digest.as_ref() == file.hash => {} Ok(_) => return Err(Error::HashMismatch(local)), Err(error) => { return Err(Error::FileRead { error, path: Some(local), }); } } debug!("download successful"); } Self::Delete(target) => { debug!("deleting unreferenced file {target:?}"); fs::remove_file(&target).map_err(|error| Error::RemoveFile { error, path: target, })?; } Self::SaveIndex { manifest, local_dir, } => { debug!("building index"); let Some(buf) = Index::write(&manifest, &local_dir) else { return Ok(()); }; #[cfg(target_family = "unix")] let temp = tempfile::Builder::new() .permissions(Permissions::from_mode(0o644)) .suffix(".new") .tempfile_in(&local_dir); #[cfg(not(target_family = "unix"))] let temp = tempfile::Builder::new() .suffix(".new") .tempfile_in(&local_dir); let mut local_temp = temp.map_err(|error| Error::FileWrite { error, path: local_dir.clone(), })?; local_temp .as_file_mut() .write_all(&buf) .map_err(|error| Error::FileWrite { error, path: local_temp.path().to_owned(), })?; let path = local_dir.join(INDEX_BIN); local_temp .persist(&path) .map_err(|error| Error::FileWrite { error: error.error, path, })?; } Self::SaveManifest { manifest, local_dir, } => { debug!("saving manifest"); let path = local_dir.join(MANIFEST_JSON); let data = serde_json::to_vec(&manifest).map_err(|error| Error::ManifestEncode { error: Box::new(error), path: path.clone(), })?; atomic_write(&path, &data).map_err(|error| Error::FileWrite { error, path })?; } } Ok(()) } fn download(file: &ManifestFile, remote_url: &str, local: &Path) -> Self { Self::Download { file: file.clone(), remote_url: format!("{remote_url}{}", file.filename), local: local.join(&file.filename), } } } impl fmt::Display for PlanStep { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::CreateDir(path) => write!(f, "create directory {path:?}"), Self::Download { file, remote_url, local, } => write!( f, "download {} bytes from {remote_url} to {local:?}", file.size ), Self::Delete(path) => write!(f, "delete stale file {path:?}"), Self::SaveIndex { local_dir, .. } => { write!(f, "build index from filters into {local_dir:?}") } Self::SaveManifest { local_dir, .. } => { write!(f, "save new manifest into {local_dir:?}") } } } } /// Atomically write `data` to `path` via a temporary file and rename. fn atomic_write(path: &Path, data: &[u8]) -> Result<(), io::Error> { let dir = path .parent() .expect("path must have parent"); #[cfg(target_family = "unix")] let temp = tempfile::Builder::new() .permissions(Permissions::from_mode(0o644)) .tempfile_in(dir); #[cfg(not(target_family = "unix"))] let temp = tempfile::Builder::new().tempfile_in(dir); let mut temp = temp?; temp.write_all(data)?; temp.persist(path) .map_err(|error| error.error)?; Ok(()) } fn hash_file(path: &Path) -> Result { let mut file = File::open(path)?; let mut hasher = sha256::Context::new(); let mut buffer = [0; 4096]; loop { let n = file.read(&mut buffer)?; if n == 0 { break; } hasher.update(&buffer[..n]); } Ok(hasher.finish()) } const MANIFEST_JSON: &str = "manifest.json"; const REQUEST_TIMEOUT: u64 = 30; upki-1.0.0~beta.3/upki/src/revocation/index.rs000066400000000000000000001266011523060067200212470ustar00rootroot00000000000000use core::cmp::Ordering; use core::{fmt, str}; #[cfg(feature = "__fetch")] use std::collections::BTreeMap; use std::fs::{self, File}; use std::io::{Read, Seek, SeekFrom}; #[cfg(feature = "__fetch")] use std::path::Path; use std::path::PathBuf; #[cfg(feature = "__fetch")] use clubcard_crlite::TimestampInterval; use clubcard_crlite::{CRLiteClubcard, CRLiteStatus, LogId, Timestamp}; #[cfg(feature = "__fetch")] use super::Manifest; use super::{Error, RevocationCheckInput, RevocationStatus}; use crate::Config; /// Binary-encoded index of universe metadata for all filters in a manifest. /// /// This allows the check path to identify which filter file covers a given certificate /// without loading every filter. Written atomically during fetch, this is the single /// source of truth for revocation checks. /// /// # Encoding /// /// All integers are big-endian. Filenames are fixed 32-byte slots, NULL-padded. /// /// ```text /// HEADER (first reads, 14 bytes): /// magic: [u8; 8] "upkiidx1" /// num_filenames: u16 /// num_log_ids: u32 /// /// TABLES (second read): /// Per filename: /// filename: [u8; 32] UTF-8, NULL-padded /// Per log_id (sorted lexicographically): /// log_id: [u8; 32] /// offset: u64 byte offset from file start /// num_entries: u16 /// /// ENTRY SECTIONS (seek + third read): /// Per entry: /// filter_index: u16 /// min_timestamp: u64 /// max_timestamp: u64 /// ``` /// /// Indexes with the legacy "upkiidx0" magic encode `num_filenames` and /// `filter_index` as `u8`. Both versions are read, but writing always produces /// "upkiidx1". /// /// This type stores a [`File`] for on-demand reading of entry sections. pub struct Index { cache_dir: PathBuf, num_filenames: usize, num_logs: usize, logs_offset: usize, /// Size of one entry section entry, determined by the index magic version. entry_size: usize, /// Contains the filename table followed by the log table. tables: Vec, file: File, } impl Index { /// Read the index header from the cache directory specified in `config`. /// /// Only the header (filename table and log-ID directory) is loaded into memory. /// Entry sections are read on demand during [`check`](Self::check) via seeking. pub fn from_cache(config: &Config) -> Result { let cache_dir = config.revocation_cache_dir(); let index_path = cache_dir.join(INDEX_BIN); let mut file = File::open(&index_path).map_err(|error| Error::FileRead { error, path: Some(index_path.clone()), })?; // Read 1: magic, determining the version-dependent header and entry sizes let mut magic = [0u8; 8]; file.read_exact(&mut magic) .map_err(|e| Error::IndexDecode(Box::new(e)))?; let (header_size, entry_size) = if magic == *INDEX_MAGIC_V1 { (HEADER_SIZE_V1, ENTRY_SIZE_V1) } else if magic == *INDEX_MAGIC_V0 { (HEADER_SIZE_V0, ENTRY_SIZE_V0) } else { return Err(Error::IndexDecode("invalid index magic".into())); }; // Read 2: num_filenames + num_log_ids let mut header = [0u8; HEADER_SIZE_V1 - 8]; let header = &mut header[..header_size - 8]; file.read_exact(header) .map_err(|e| Error::IndexDecode(Box::new(e)))?; let mut data = &*header; let num_filenames = match entry_size { ENTRY_SIZE_V0 => u8::read_be(&mut data)? as usize, _ => u16::read_be(&mut data)? as usize, }; let num_logs = u32::read_be(&mut data)? as usize; // Read 3: filename table + log table let logs_offset = num_filenames * FILENAME_SIZE; let tables_len = logs_offset + num_logs * LOG_DIR_ENTRY_SIZE; // A corrupt `num_log_ids` could demand an unreasonable sized allocation. Cap the table // allocation to the file's overall size. let file_len = file .metadata() .map_err(|error| Error::FileRead { error, path: Some(index_path), })? .len(); if (header_size + tables_len) as u64 > file_len { return Err(Error::IndexDecode("index tables truncated".into())); } let mut tables = vec![0u8; tables_len]; file.read_exact(&mut tables) .map_err(|e| Error::IndexDecode(Box::new(e)))?; Ok(Self { cache_dir, num_filenames, num_logs, logs_offset, entry_size, tables, file, }) } /// Build index bytes by reading filter files from `dir` and extracting universe metadata. /// /// Returns `None` if any filter file cannot be read or decoded. #[cfg(feature = "__fetch")] pub(super) fn write(manifest: &Manifest, dir: &Path) -> Option> { let mut by_log_id: BTreeMap> = BTreeMap::new(); for (filter_idx, filter) in manifest.files.iter().enumerate() { if filter.filename.len() > FILENAME_SIZE { tracing::warn!( "skipping index: filename {:?} exceeds {FILENAME_SIZE} bytes", filter.filename ); return None; } let path = dir.join(&filter.filename); let bytes = match fs::read(&path) { Ok(bytes) => bytes, Err(error) => { tracing::warn!("skipping index: cannot read {path:?}: {error}"); return None; } }; let clubcard = match CRLiteClubcard::from_bytes(&bytes) { Ok(c) => c, Err(error) => { tracing::warn!("skipping index: cannot decode {path:?}: {error:?}"); return None; } }; for (log_id, interval) in clubcard.universe().iter() { by_log_id .entry(*log_id) .or_default() .push((filter_idx as u16, *interval)); } } // Compute header size to determine entry section offsets let header_size = HEADER_SIZE_V1 + manifest.files.len() * FILENAME_SIZE + by_log_id.len() * LOG_DIR_ENTRY_SIZE; // Write header let mut buf = Vec::new(); buf.extend_from_slice(INDEX_MAGIC_V1); buf.extend_from_slice(&(manifest.files.len() as u16).to_be_bytes()); buf.extend_from_slice(&(by_log_id.len() as u32).to_be_bytes()); // Write filename table (fixed 32-byte slots, NULL-padded) for filter in &manifest.files { let filename = filter.filename.as_bytes(); let mut slot = [0u8; FILENAME_SIZE]; slot[..filename.len()].copy_from_slice(filename); buf.extend_from_slice(&slot); } // Pre-compute offsets for each log_id's entry section let mut current_offset = header_size; let mut dir_entries: Vec<(&LogId, u64, u16)> = Vec::new(); for (log_id, entries) in &by_log_id { dir_entries.push((log_id, current_offset as u64, entries.len() as u16)); current_offset += entries.len() * ENTRY_SIZE_V1; } // Write log_id directory for (log_id, offset, count) in &dir_entries { buf.extend_from_slice(&log_id.0); buf.extend_from_slice(&offset.to_be_bytes()); buf.extend_from_slice(&count.to_be_bytes()); } // Write entry sections for entries in by_log_id.values() { for (filter_idx, interval) in entries { buf.extend_from_slice(&filter_idx.to_be_bytes()); buf.extend_from_slice(&interval.low.0.to_be_bytes()); buf.extend_from_slice(&interval.high.0.to_be_bytes()); } } Some(buf) } /// Perform a revocation check using the index. /// /// Uses binary search over the log-ID directory to find relevant entries, then seeks into /// the index file to read only those entries. Loads matching filter files and queries /// them for the certificate's revocation status. Each distinct filter file is read and /// parsed at most once per check. pub fn check(&mut self, input: &RevocationCheckInput) -> Result { let key = input.key(); let dir_data = &self.tables[self.logs_offset..]; let mut maybe_good = false; let mut seen = vec![false; self.num_filenames]; 'timestamp: for sct in &input.sct_timestamps { // Binary search the sorted log_id directory (stride LOG_DIR_ENTRY_SIZE) let mut lo = 0; let mut hi = self.num_logs; let entry_offset = loop { if lo >= hi { continue 'timestamp; } let mid = lo + (hi - lo) / 2; let offset = mid * LOG_DIR_ENTRY_SIZE; let log_id = &dir_data[offset..offset + 32]; match log_id.cmp(sct.log_id.as_slice()) { Ordering::Less => lo = mid + 1, Ordering::Equal => break offset, Ordering::Greater => hi = mid, } }; let mut entry_data = &dir_data[entry_offset + 32..]; let offset = u64::read_be(&mut entry_data)?; let count = u16::read_be(&mut entry_data)?; self.file .seek(SeekFrom::Start(offset)) .map_err(|e| Error::IndexDecode(Box::new(e)))?; let mut buf = vec![0u8; count as usize * self.entry_size]; self.file .read_exact(&mut buf) .map_err(|e| Error::IndexDecode(Box::new(e)))?; let mut data = &buf[..]; for _ in 0..count { let filter_index = match self.entry_size { ENTRY_SIZE_V0 => u8::read_be(&mut data)? as usize, _ => u16::read_be(&mut data)? as usize, }; let min_ts = u64::read_be(&mut data)?; let max_ts = u64::read_be(&mut data)?; if min_ts > sct.timestamp || sct.timestamp > max_ts { continue; } // Errors on `filter_index >= num_filenames`, so the `seen` // indexing below is in range. let filename = self.filename(filter_index)?; // A filter is queried with every SCT timestamp, so consulting it // again for a later SCT cannot produce a different answer. if seen[filter_index] { continue; } seen[filter_index] = true; let path = self.cache_dir.join(filename); let bytes = match fs::read(&path) { Ok(bytes) => bytes, Err(error) => { return Err(Error::FileRead { error, path: Some(path), }); } }; let filter = CRLiteClubcard::from_bytes(&bytes).map_err(|error| Error::FileDecode { error: format!("cannot decode crlite filter: {error:?}").into(), path: Some(path), })?; match filter.contains( &key, input .sct_timestamps .iter() .map(|ct_ts| (LogId(ct_ts.log_id), Timestamp(ct_ts.timestamp))), ) { CRLiteStatus::Revoked => return Ok(RevocationStatus::CertainlyRevoked), CRLiteStatus::Good => { maybe_good = true; continue; } CRLiteStatus::NotEnrolled | CRLiteStatus::NotCovered => continue, } } } Ok(match maybe_good { true => RevocationStatus::NotRevoked, false => RevocationStatus::NotCoveredByRevocationData, }) } /// Look up the `i`-th filename in the fixed-size filename table. fn filename(&self, index: usize) -> Result<&str, Error> { if index >= self.num_filenames { return Err(Error::IndexDecode("filter index out of bounds".into())); } let start = index * FILENAME_SIZE; let slot = &self.tables[start..start + FILENAME_SIZE]; let end = slot .iter() .position(|&b| b == 0) .unwrap_or(FILENAME_SIZE); str::from_utf8(&slot[..end]).map_err(|e| Error::IndexDecode(Box::new(e))) } } impl fmt::Debug for Index { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let Self { cache_dir, num_filenames, num_logs, logs_offset, entry_size: _, tables: _, file: _, } = self; f.debug_struct("Index") .field("cache_dir", cache_dir) .field("filenames", num_filenames) .field("num_logs", num_logs) .field("logs_offset", logs_offset) .finish_non_exhaustive() } } impl FromBeBytes<8> for u64 { fn from_be_bytes(bytes: &[u8; 8]) -> Self { Self::from_be_bytes(*bytes) } } impl FromBeBytes<4> for u32 { fn from_be_bytes(bytes: &[u8; 4]) -> Self { Self::from_be_bytes(*bytes) } } impl FromBeBytes<2> for u16 { fn from_be_bytes(bytes: &[u8; 2]) -> Self { Self::from_be_bytes(*bytes) } } impl FromBeBytes<1> for u8 { fn from_be_bytes(bytes: &[u8; 1]) -> Self { bytes[0] } } trait FromBeBytes: Sized { fn read_be(data: &mut &[u8]) -> Result { match data.split_first_chunk::() { Some((chunk, rest)) => { *data = rest; Ok(Self::from_be_bytes(chunk)) } None => Err(Error::IndexDecode("unexpected end of index data".into())), } } fn from_be_bytes(bytes: &[u8; N]) -> Self; } const HEADER_SIZE_V1: usize = 8 + 2 + 4; const HEADER_SIZE_V0: usize = 8 + 1 + 4; const FILENAME_SIZE: usize = 32; const LOG_DIR_ENTRY_SIZE: usize = 32 + 8 + 2; const ENTRY_SIZE_V1: usize = 2 + 8 + 8; const ENTRY_SIZE_V0: usize = 1 + 8 + 8; pub(super) const INDEX_BIN: &str = "index.bin"; const INDEX_MAGIC_V1: &[u8; 8] = b"upkiidx1"; const INDEX_MAGIC_V0: &[u8; 8] = b"upkiidx0"; #[cfg(test)] mod tests { use core::error::Error as StdError; use std::collections::BTreeMap; use std::path::Path; use base64::Engine; use clubcard::builder::{ApproximateRibbon, ClubcardBuilder, ExactRibbon}; use clubcard_crlite::builder::CRLiteBuilderItem; use clubcard_crlite::{CRLiteClubcard, CRLiteCoverage, CRLiteQuery, Encoding}; use super::*; use crate::revocation::{CertSerial, CtTimestamp, IssuerSpkiHash, RevocationConfig}; #[test] fn check_empty_index() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); write_file(dir.path(), INDEX_BIN, &build_index(&[])); assert_eq!( Index::from_cache(&config) .unwrap() .check(&test_input()) .unwrap(), RevocationStatus::NotCoveredByRevocationData, ); } #[test] fn check_no_matching_log_id() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); // Input has log_id [0xbb; 32], index has [0xcc; 32] let data = build_index(&[("test.filter", &[([0xcc; 32], 500, 1500)])]); write_file(dir.path(), INDEX_BIN, &data); assert_eq!( Index::from_cache(&config) .unwrap() .check(&test_input()) .unwrap(), RevocationStatus::NotCoveredByRevocationData, ); } #[test] fn check_no_matching_timestamp_range() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); // Input has timestamp 1000, index range is 2000..3000 let data = build_index(&[("test.filter", &[([0xbb; 32], 2000, 3000)])]); write_file(dir.path(), INDEX_BIN, &data); assert_eq!( Index::from_cache(&config) .unwrap() .check(&test_input()) .unwrap(), RevocationStatus::NotCoveredByRevocationData, ); } #[test] fn invalid_magic() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); write_file(dir.path(), INDEX_BIN, b"wrongmag\x00\x00\x00\x00\x00"); let err = Index::from_cache(&config).unwrap_err(); assert!(matches!(err, Error::IndexDecode(_))); } #[test] fn truncated_after_magic() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); write_file(dir.path(), INDEX_BIN, INDEX_MAGIC_V1); let err = Index::from_cache(&config).unwrap_err(); assert!(matches!(err, Error::IndexDecode(_))); } #[test] fn truncated_before_magic() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); write_file(dir.path(), INDEX_BIN, b"upki"); let err = Index::from_cache(&config).unwrap_err(); assert!(matches!(err, Error::IndexDecode(_))); } // A valid header whose counts imply tables far larger than the file must be // rejected before the table allocation is made. #[test] fn oversized_table_counts() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); let mut data = INDEX_MAGIC_V1.to_vec(); data.extend_from_slice(&u16::MAX.to_be_bytes()); data.extend_from_slice(&u32::MAX.to_be_bytes()); write_file(dir.path(), INDEX_BIN, &data); let err = Index::from_cache(&config).unwrap_err(); assert!(matches!(err, Error::IndexDecode(_))); } #[test] fn missing_index() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); let err = Index::from_cache(&config).unwrap_err(); assert!(matches!(err, Error::FileRead { .. })); } #[test] fn check_single_filter_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); // The filter enrolls our issuer and revokes our serial for log [0xbb; 32]. let filter = build_filter([0xaa; 32], &[&[1, 2, 3]], &[([0xbb; 32], 0, 2000)]); write_file(dir.path(), "f0.filter", &filter); write_file( dir.path(), INDEX_BIN, &build_index(&[("f0.filter", &[([0xbb; 32], 0, 2000)])]), ); assert_eq!( Index::from_cache(&config)?.check(&test_input())?, RevocationStatus::CertainlyRevoked, ); Ok(()) } #[test] fn check_single_filter_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); // The filter enrolls our issuer but revokes a different serial, so our // serial is definitively not revoked. let filter = build_filter([0xaa; 32], &[&[9, 9, 9]], &[([0xbb; 32], 0, 2000)]); write_file(dir.path(), "f0.filter", &filter); write_file( dir.path(), INDEX_BIN, &build_index(&[("f0.filter", &[([0xbb; 32], 0, 2000)])]), ); assert_eq!( Index::from_cache(&config)?.check(&test_input())?, RevocationStatus::NotRevoked, ); Ok(()) } // The certificate has two SCTs. The filter covering the first does not enroll // our issuer, while the filter covering the second revokes it. Checking must // continue past the first (inconclusive) filter to reach the verdict. #[test] fn check_continues_past_not_enrolled_to_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 covers log_a but enrolls a different issuer -> NotEnrolled for us. let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); // f1 covers log_b and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // Same shape as above, but the second filter reports the certificate as not // revoked. That verdict must still be reached past the inconclusive first filter. #[test] fn check_continues_past_not_enrolled_to_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); // f1 enrolls our issuer but revokes a different serial -> not revoked. let f1 = build_filter([0xaa; 32], &[&[9, 9, 9]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::NotRevoked, ); Ok(()) } // Every covering filter is inconclusive (none enrolls our issuer), so the // certificate is reported as not covered. #[test] fn check_all_filters_not_enrolled() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); let f1 = build_filter([0xdd; 32], &[&[8, 8]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::NotCoveredByRevocationData, ); Ok(()) } // An earlier filter that revokes takes precedence: checking stops at the first // conclusive verdict without consulting (or even reading) later filters. Only // f0's file exists on disk; if the check tried to load f1 it would error. #[test] fn check_stops_at_first_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 covers log_a and revokes our serial. let f0 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // A `Good` verdict must not short-circuit the check: the first filter reports // the certificate as not revoked, but a later filter revokes it. Revocation // wins, so the overall verdict is `CertainlyRevoked`. #[test] fn check_continues_past_not_revoked_to_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 enrolls our issuer but revokes a different serial -> not revoked. let f0 = build_filter([0xaa; 32], &[&[9, 9, 9]], &[(log_a, 0, 2000)]); // f1 covers log_b and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // A single log_id can have more than one covering filter. The first does not // enroll our issuer, but the second (for the same log and timestamp) revokes // our serial. All covering filters for the log must be consulted, not just the // first one. #[test] fn check_multiple_filters_same_log_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let log_a = [0xb1; 32]; // f0 covers log_a but enrolls a different issuer -> NotEnrolled for us. let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); // f1 also covers log_a and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_a, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // Same shape as above, but the second covering filter for the log reports the // certificate as not revoked. Reaching that verdict past the inconclusive first // filter yields `NotRevoked` rather than `NotCoveredByRevocationData`. #[test] fn check_multiple_filters_same_log_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let log_a = [0xb1; 32]; let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); // f1 also covers log_a, enrolls our issuer, but revokes a different serial. let f1 = build_filter([0xaa; 32], &[&[9, 9, 9]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_a, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000)]))?, RevocationStatus::NotRevoked, ); Ok(()) } // A log has two covering filters whose timestamp ranges do not overlap. The // first entry's range does not contain the SCT timestamp, but the second's // does and revokes our serial. A non-matching timestamp range must skip only // that entry, not abandon the remaining entries for the same log. #[test] fn check_later_timestamp_entry_same_log_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let log_a = [0xb1; 32]; // f0 covers log_a for 2000..3000, which does not contain the SCT (1000). let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 2000, 3000)]); // f1 covers log_a for 0..2000, contains the SCT, and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 2000, 3000)]), ("f1.filter", &[(log_a, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // Same shape as above, but the timestamp-matching entry reports the certificate // as not revoked. That verdict must still be reached past the earlier entry // whose range does not cover the SCT. #[test] fn check_later_timestamp_entry_same_log_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let log_a = [0xb1; 32]; let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 2000, 3000)]); // f1 covers the SCT, enrolls our issuer, but revokes a different serial. let f1 = build_filter([0xaa; 32], &[&[9, 9, 9]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 2000, 3000)]), ("f1.filter", &[(log_a, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000)]))?, RevocationStatus::NotRevoked, ); Ok(()) } // The SCT timestamp falls in the range of a later entry only; an entry whose // range misses must not stop the scan before the covering entry is consulted. // The earlier entry's filter file is absent on disk, so the check would error // if it wrongly tried to load it. #[test] fn check_skips_non_matching_entry_without_loading_filter() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let log_a = [0xb1; 32]; // f1 covers the SCT and revokes our serial; only its file exists on disk. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_a, 0, 2000)]); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 2000, 3000)]), ("f1.filter", &[(log_a, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // One filter covers both SCT logs but does not enroll our issuer. Its second // encounter (for the second SCT) is skipped as already-queried, and that skip // must not prevent the second log's other covering filter from being consulted // and revoking. #[test] fn check_skips_queried_filter_but_not_later_filters() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 covers both logs but enrolls a different issuer -> NotEnrolled for us. let f0 = build_filter( [0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000), (log_b, 0, 2000)], ); // f1 covers log_b and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index(&[ ("f0.filter", &[(log_a, 0, 2000), (log_b, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // A single filter covers both SCT logs and answers conclusively "not revoked". // The verdict from its first (and only) query must survive the deduplicated // second encounter. #[test] fn check_single_filter_covering_multiple_scts_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 enrolls our issuer but revokes a different serial -> not revoked. let f0 = build_filter( [0xaa; 32], &[&[9, 9, 9]], &[(log_a, 0, 2000), (log_b, 0, 2000)], ); write_file(dir.path(), "f0.filter", &f0); write_file( dir.path(), INDEX_BIN, &build_index(&[("f0.filter", &[(log_a, 0, 2000), (log_b, 0, 2000)])]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::NotRevoked, ); Ok(()) } // Checking a legacy "upkiidx0" index for a revoked result. #[test] fn check_v0_index_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let (log_a, log_b) = ([0xb1; 32], [0xb2; 32]); // f0 covers log_a but enrolls a different issuer -> NotEnrolled for us. let f0 = build_filter([0xcc; 32], &[&[7, 7]], &[(log_a, 0, 2000)]); // f1 covers log_b and revokes our serial. let f1 = build_filter([0xaa; 32], &[&[1, 2, 3]], &[(log_b, 0, 2000)]); write_file(dir.path(), "f0.filter", &f0); write_file(dir.path(), "f1.filter", &f1); write_file( dir.path(), INDEX_BIN, &build_index_v0(&[ ("f0.filter", &[(log_a, 0, 2000)]), ("f1.filter", &[(log_b, 0, 2000)]), ]), ); assert_eq!( Index::from_cache(&config)?.check(&multi_sct_input(&[(log_a, 1000), (log_b, 1000)]))?, RevocationStatus::CertainlyRevoked, ); Ok(()) } // Checking a legacy "upkiidx0" index for a not revoked result. #[test] fn check_v0_index_not_revoked() -> Result<(), Box> { let dir = tempfile::tempdir()?; let config = test_config(dir.path()); let filter = build_filter([0xaa; 32], &[&[9, 9, 9]], &[([0xbb; 32], 0, 2000)]); write_file(dir.path(), "f0.filter", &filter); write_file( dir.path(), INDEX_BIN, &build_index_v0(&[("f0.filter", &[([0xbb; 32], 0, 2000)])]), ); assert_eq!( Index::from_cache(&config)?.check(&test_input())?, RevocationStatus::NotRevoked, ); Ok(()) } // Checking a legacy "upkiidx0" index that's empty should produce not covered. #[test] fn check_empty_v0_index() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); write_file(dir.path(), INDEX_BIN, &build_index_v0(&[])); assert_eq!( Index::from_cache(&config) .unwrap() .check(&test_input()) .unwrap(), RevocationStatus::NotCoveredByRevocationData, ); } // Checking a malformed filter that has a filter index beyond the filename table must err. #[test] fn check_filter_index_out_of_bounds() { let dir = tempfile::tempdir().unwrap(); let config = test_config(dir.path()); let mut data = build_index(&[("f0.filter", &[([0xbb; 32], 0, 2000)])]); // Overwrite the sole entry's filter_index (first two bytes of the entry // section, which build_index places at the end of the tables). let entry_offset = data.len() - ENTRY_SIZE_V1; data[entry_offset..entry_offset + 2].copy_from_slice(&500u16.to_be_bytes()); write_file(dir.path(), INDEX_BIN, &data); let err = Index::from_cache(&config) .unwrap() .check(&test_input()) .unwrap_err(); assert!(matches!(err, Error::IndexDecode(_))); } /// Build a test index with INDEX_MAGIC_V1 with u16 filter indexes. #[expect(clippy::type_complexity)] fn build_index(filters: &[(&str, &[([u8; 32], u64, u64)])]) -> Vec { build_index_with_magic(INDEX_MAGIC_V1, filters) } /// Build a test legacy INDEX_MAGIC_V0 index with u8 filter indexes. #[expect(clippy::type_complexity)] fn build_index_v0(filters: &[(&str, &[([u8; 32], u64, u64)])]) -> Vec { build_index_with_magic(INDEX_MAGIC_V0, filters) } /// Build a test index with the given magic header bytes. /// /// The data types used for `num_filenames` and the entry `filter_index` are /// determined by the magic bytes, using u8 for INDEX_MAGIC_V0, and u16 /// otherwise. #[expect(clippy::type_complexity)] fn build_index_with_magic( magic: &[u8; 8], filters: &[(&str, &[([u8; 32], u64, u64)])], ) -> Vec { let (base_size, entry_size) = match magic { INDEX_MAGIC_V0 => (HEADER_SIZE_V0, ENTRY_SIZE_V0), _ => (HEADER_SIZE_V1, ENTRY_SIZE_V1), }; // Aggregate by log_id using BTreeMap for sorted order let mut by_log_id: BTreeMap<[u8; 32], Vec<(u16, u64, u64)>> = BTreeMap::new(); for (filter_idx, (_, entries)) in filters.iter().enumerate() { for (log_id, min_ts, max_ts) in *entries { by_log_id .entry(*log_id) .or_default() .push((filter_idx as u16, *min_ts, *max_ts)); } } // Compute header size let header_size = base_size + filters.len() * FILENAME_SIZE + by_log_id.len() * LOG_DIR_ENTRY_SIZE; // Write header let mut buf = Vec::new(); buf.extend_from_slice(magic); match entry_size { ENTRY_SIZE_V0 => buf.push(filters.len() as u8), _ => buf.extend_from_slice(&(filters.len() as u16).to_be_bytes()), } buf.extend_from_slice(&(by_log_id.len() as u32).to_be_bytes()); // Write filename table (fixed 32-byte slots, NULL-padded) for (filename, _) in filters { let bytes = filename.as_bytes(); let mut slot = [0u8; FILENAME_SIZE]; slot[..bytes.len()].copy_from_slice(bytes); buf.extend_from_slice(&slot); } // Compute offsets and write directory let mut current_offset = header_size; let mut entry_counts: Vec = Vec::new(); for (log_id, entries) in &by_log_id { buf.extend_from_slice(log_id); buf.extend_from_slice(&(current_offset as u64).to_be_bytes()); buf.extend_from_slice(&(entries.len() as u16).to_be_bytes()); current_offset += entries.len() * entry_size; entry_counts.push(entries.len()); } // Write entry sections for entries in by_log_id.values() { for (filter_idx, min_ts, max_ts) in entries { match entry_size { ENTRY_SIZE_V0 => buf.push(*filter_idx as u8), _ => buf.extend_from_slice(&filter_idx.to_be_bytes()), } buf.extend_from_slice(&min_ts.to_be_bytes()); buf.extend_from_slice(&max_ts.to_be_bytes()); } } buf } /// Build a serialized CRLite filter that enrolls `issuer`, marks each serial in /// `revoked` as revoked, and covers each `(log_id, min_ts, max_ts)` interval. fn build_filter( issuer: [u8; 32], revoked: &[&[u8]], coverage: &[([u8; 32], u64, u64)], ) -> Vec { let issuer = IssuerSpkiHash(issuer); let universe_size = 1 << 8; let mut builder = ClubcardBuilder::new(); let mut approx = builder.new_approx_builder(&issuer.0); for serial in revoked { approx.insert(CRLiteBuilderItem::revoked(issuer, serial.to_vec())); } approx.set_universe_size(universe_size); builder.collect_approx_ribbons(vec![ApproximateRibbon::from(approx)]); let mut exact = builder.new_exact_builder(&issuer.0); for serial in revoked { exact.insert(CRLiteBuilderItem::revoked(issuer, serial.to_vec())); } // The exact filter needs the full universe; fill it out with non-revoked // serials that cannot collide with the (short) revoked serials above. for j in 0usize..universe_size { exact.insert(CRLiteBuilderItem::not_revoked( issuer, j.to_le_bytes().to_vec(), )); } builder.collect_exact_ribbons(vec![ExactRibbon::from(exact)]); let entries = coverage .iter() .map(|(log_id, min_ts, max_ts)| { format!( "{{\"LogID\":\"{}\",\"MaxTimestamp\":{max_ts},\"MinTimestamp\":{min_ts},\"MMD\":0,\"MinEntry\":0}}", base64::prelude::BASE64_STANDARD.encode(log_id), ) }) .collect::>() .join(","); let json = format!("[{entries}]"); let coverage = CRLiteCoverage::from_mozilla_ct_logs_json(json.as_bytes()); let clubcard = builder.build::>(coverage, ()); CRLiteClubcard::from(clubcard) .to_bytes(Encoding::V4) .unwrap() } fn multi_sct_input(scts: &[([u8; 32], u64)]) -> RevocationCheckInput { RevocationCheckInput::new( CertSerial(vec![1, 2, 3]), IssuerSpkiHash([0xaa; 32]), scts.iter() .map(|(log_id, timestamp)| CtTimestamp { log_id: *log_id, timestamp: *timestamp, }) .collect(), ) } fn test_config(dir: &Path) -> Config { Config { cache_dir: dir.to_owned(), revocation: RevocationConfig::default(), } } fn test_input() -> RevocationCheckInput { RevocationCheckInput::new( CertSerial(vec![1, 2, 3]), IssuerSpkiHash([0xaa; 32]), vec![CtTimestamp { log_id: [0xbb; 32], timestamp: 1000, }], ) } fn write_file(dir: &Path, name: &str, data: &[u8]) { let revocation_dir = dir.join("revocation"); fs::create_dir_all(&revocation_dir).unwrap(); fs::write(revocation_dir.join(name), data).unwrap(); } } upki-1.0.0~beta.3/upki/src/revocation/mod.rs000066400000000000000000000416541523060067200207230ustar00rootroot00000000000000use core::error::Error as StdError; use core::str::FromStr; use core::{fmt, str}; #[cfg(feature = "__fetch")] use std::fs::File; use std::io; #[cfg(feature = "__fetch")] use std::io::BufReader; use std::path::PathBuf; use std::process::ExitCode; use base64::Engine; use base64::prelude::BASE64_STANDARD; use chrono::{DateTime, Utc}; use clubcard_crlite::CRLiteKey; pub use clubcard_crlite::IssuerSpkiHash; use rustls_pki_types::{CertificateDer, TrustAnchor}; use serde::{Deserialize, Serialize}; use tracing::info; #[cfg(feature = "__fetch")] use crate::Config; use crate::sha256; #[cfg(feature = "__fetch")] mod fetch; #[cfg(feature = "__fetch")] use fetch::Plan; #[cfg(feature = "__fetch")] pub use fetch::fetch; mod index; pub use index::Index; /// The structure contained in a manifest.json #[derive(Clone, Debug, Deserialize, Serialize)] pub struct Manifest { /// When this file was generated. /// /// UNIX timestamp in seconds. pub generated_at: u64, /// Some human-readable text. pub comment: String, /// List of required files. #[serde(alias = "filters")] pub files: Vec, } impl Manifest { /// Load the revocation manifest from the cache directory specified in the configuration. #[cfg(feature = "__fetch")] pub fn from_config(config: &Config) -> Result { let mut file_name = config.revocation_cache_dir(); file_name.push("manifest.json"); let file = match File::open(&file_name) { Ok(f) => f, Err(error) => { return Err(Error::FileRead { error, path: Some(file_name), }); } }; serde_json::from_reader(BufReader::new(file)).map_err(|error| Error::FileDecode { error: Box::new(error), path: Some(file_name), }) } /// Verify the current contents of the cache against this manifest. /// /// This performs disk IO but does not perform network IO. #[cfg(feature = "__fetch")] pub fn verify(&self, config: &Config) -> Result { self.introduce()?; let plan = Plan::construct(self, &None, "https://.../", &config.revocation_cache_dir())?; match plan.download_bytes() { 0 => Ok(ExitCode::SUCCESS), bytes => Err(Error::Outdated(bytes)), } } /// Logs metadata fields in this manifest. pub fn introduce(&self) -> Result<(), Error> { let dt = match DateTime::::from_timestamp(self.generated_at as i64, 0) { Some(dt) => dt.to_rfc3339(), None => { return Err(Error::InvalidTimestamp { input: self.generated_at.to_string(), context: "manifest generated (in s)", }); } }; info!(comment = self.comment, date = dt, "parsed manifest"); Ok(()) } } /// Manifest data for a single crlite filter file. #[derive(Clone, Debug, Deserialize, Serialize)] pub struct ManifestFile { /// Relative filename. /// /// This is also the suggested local filename. pub filename: String, /// File size, indicative. Allows a fetcher to predict data usage. pub size: usize, /// SHA256 hash of file contents. #[serde(with = "hex::serde")] pub hash: Vec, } /// Input parameters for a revocation check. #[derive(Debug)] pub struct RevocationCheckInput { /// Big-endian bytes encoding of the end-entity certificate serial number. pub cert_serial: CertSerial, /// SHA256 hash of the `SubjectPublicKeyInfo` of the issuer of the end-entity certificate. pub issuer_spki_hash: IssuerSpkiHash, /// CT log IDs and inclusion timestamps present in the end-entity certificate. pub sct_timestamps: Vec, issuer_serial_hash: [u8; 32], } impl RevocationCheckInput { /// Construct a `RevocationCheckInput` from a sequence of DER-encoded certificates. /// /// The first element in `certificates` **must** be the end-entity certificate. The /// end-entity certificate's issuer **must** be present in the other certificates /// (but does not need to be in any specific position). /// /// Note this interface **only** checks the end-entity certificate for revocation. It does /// **not** check any of the certificates for validity: it assumes the caller has done any /// required checks before calling this interface (path building, naming validation, /// expiry checking, etc.). pub fn from_certificates(certificates: &[CertificateDer<'_>]) -> Result { let (end_entity, rest) = certificates .split_first() .ok_or(Error::TooFewCertificates)?; let end_entity = webpki::EndEntityCert::try_from(end_entity) .map_err(|error| Error::InvalidEndEntityCertificate(Box::new(error)))?; let issuer = find_issuer(end_entity.issuer(), rest.iter())?; let issuer_spki_hash = IssuerSpkiHash( sha256::Digest::from(&[webpki::spki_for_anchor(&issuer).as_ref()][..]).0, ); let mut sct_timestamps = vec![]; let iter = end_entity .sct_log_timestamps() .map_err(|e| Error::InvalidEndEntityCertificate(Box::new(e)))?; for ts in iter { let ts = ts.map_err(|e| Error::InvalidSctInCertificate(Box::new(e)))?; sct_timestamps.push(CtTimestamp { log_id: ts.log_id, timestamp: ts.timestamp_ms, }); } Ok(Self::new( CertSerial(end_entity.serial().to_vec()), issuer_spki_hash, sct_timestamps, )) } /// Construct a `RevocationCheckInput` from its constituent parts. pub fn new( cert_serial: CertSerial, issuer_spki_hash: IssuerSpkiHash, sct_timestamps: Vec, ) -> Self { let mut issuer_serial_context = sha256::Context::new(); issuer_serial_context.update(&issuer_spki_hash.0); issuer_serial_context.update(&cert_serial.0); let issuer_serial_hash = issuer_serial_context.finish().0; Self { cert_serial, issuer_spki_hash, sct_timestamps, issuer_serial_hash, } } fn key(&self) -> CRLiteKey<'_> { CRLiteKey::with_hash( &self.issuer_spki_hash, &self.cert_serial.0, self.issuer_serial_hash, ) } } /// A certificate serial number. #[derive(Clone, Debug)] pub struct CertSerial(pub Vec); impl FromStr for CertSerial { type Err = Error; fn from_str(value: &str) -> Result { match BASE64_STANDARD.decode(value) { Ok(bytes) => Ok(Self(bytes)), Err(e) => Err(Error::InvalidBase64 { error: Box::new(e), context: "certificate serial", }), } } } /// An issuance timestamp established in certificate transparency. #[derive(Clone, Debug)] pub struct CtTimestamp { /// CT log ID pub log_id: [u8; 32], /// Issuance timestamp pub timestamp: u64, } impl FromStr for CtTimestamp { type Err = Error; fn from_str(value: &str) -> Result { let Some((log_id, issuance_timestamp)) = value.split_once(":") else { return Err(Error::InvalidSctEncoding); }; Ok(Self { log_id: BASE64_STANDARD .decode(log_id) .map_err(|e| Error::InvalidBase64 { error: Box::new(e), context: "CT log ID", })? .try_into() .map_err(|wrong: Vec| Error::InvalidLength { expected: 32, actual: wrong.len(), context: "CT log ID", })?, timestamp: u64::from_str(issuance_timestamp).map_err(|_| Error::InvalidTimestamp { input: issuance_timestamp.to_string(), context: "CT timestamp (in ms)", })?, }) } } /// The successful outcome of a revocation check. /// /// Look at a value of this type to determine whether a certificate was revoked or not. #[derive(Debug, PartialEq)] #[must_use] pub enum RevocationStatus { /// We couldn't determine the revocation status. /// /// Most likely, this certificate is very new and is not covered by the current filter dataset. NotCoveredByRevocationData, /// This certificate has been revoked. CertainlyRevoked, /// This certificate was covered by revocation data, and it is not currently revoked. NotRevoked, } impl RevocationStatus { /// Convert this revocation status to an exit code for the CLI. /// /// Also print the status to stdout. pub fn to_cli(&self) -> ExitCode { println!("{self:?}"); match self { Self::NotRevoked | Self::NotCoveredByRevocationData => ExitCode::SUCCESS, Self::CertainlyRevoked => ExitCode::from(Self::EXIT_CODE_REVOCATION_REVOKED), } } const EXIT_CODE_REVOCATION_REVOKED: u8 = 2; } /// Details about crlite-style revocation. #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "kebab-case", deny_unknown_fields)] pub struct RevocationConfig { /// Where to fetch revocation data files. fetch_url: String, } impl Default for RevocationConfig { fn default() -> Self { Self { fetch_url: "https://upki.rustls.dev/revocation/".into(), } } } fn find_issuer<'a>( name: &[u8], candidates: impl Iterator>, ) -> Result, Error> { for (i, c) in candidates.enumerate() { // nb. do not copy this code. it is not correct to treat intermediate certificates // as trust anchors. let root = webpki::anchor_from_trusted_cert(c).map_err(|error| { Error::InvalidIntermediateCertificate { error: Box::new(error), index: i, } })?; if root.subject.as_ref() == name { return Ok(root); } } Err(Error::NoIssuer) } /// Errors for the revocation API. #[non_exhaustive] #[derive(Debug)] pub enum Error { /// Failed to create a directory. CreateDirectory { /// Underlying error. error: io::Error, /// Path to the directory being created. path: PathBuf, }, /// Failed to write a file. FileWrite { /// Underlying error. error: io::Error, /// Path to the file being written. path: PathBuf, }, /// Failed to decode a file. FileDecode { /// Underlying error. error: Box, /// Path to the file. path: Option, }, /// Failed to read a file. FileRead { /// Underlying error. error: io::Error, /// Path to the file. path: Option, }, /// A downloaded file did not match the expected hash. HashMismatch(PathBuf), /// Failed to decode the index file. IndexDecode(Box), /// Failed to fetch a file over HTTP. HttpFetch { /// Underlying error. error: Box, /// URL being accessed. url: String, }, /// Invalid base64 encoding. InvalidBase64 { /// Underlying error. error: Box, /// Context in which the base64 was being parsed. context: &'static str, }, /// The end-entity certificate was invalid and could not be parsed. InvalidEndEntityCertificate(Box), /// An intermediate certificate was invalid and could not be parsed. InvalidIntermediateCertificate { /// Underlying error. error: Box, /// Index of the intermediate certificate in the provided chain. index: usize, }, /// A base64-decoded value did not have the expected length. InvalidLength { /// Expected length. expected: usize, /// Actual length. actual: usize, /// Context in which the hash was being parsed. context: &'static str, }, /// No ':' found in [`CtTimestamp`] string representation. InvalidSctEncoding, /// An SCT in the end-entity certificate could not be parsed. InvalidSctInCertificate(Box), /// A timestamp could not be parsed. InvalidTimestamp { /// Input value that failed to parse as a timestamp. input: String, /// Context in which the timestamp was being parsed. context: &'static str, }, /// Failed to encode a manifest file. ManifestEncode { /// Underlying error. error: Box, /// Path to the manifest file. path: PathBuf, }, /// No issuer found for the end-entity certificate in the provided chain. NoIssuer, /// Number of bytes that need to be downloaded to update the local cache. Outdated(usize), /// Failed to remove a file. RemoveFile { /// Underlying error. error: io::Error, /// Path to the file being removed. path: PathBuf, }, /// Certificate chains must contain at least 2 certificates. TooFewCertificates, } impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::CreateDirectory { path, .. } => { write!(f, "cannot create directory {path:?}") } Self::FileWrite { path, .. } => write!(f, "cannot write file {path:?}"), Self::FileDecode { path, .. } => match path { Some(path) => write!(f, "cannot decode file {path:?}"), None => write!(f, "cannot decode file"), }, Self::FileRead { path, .. } => match path { Some(path) => write!(f, "cannot read file {path:?}"), None => write!(f, "cannot read file"), }, Self::HashMismatch(path) => write!(f, "hash mismatch for file {path:?}"), Self::IndexDecode(_) => write!(f, "cannot decode index file"), Self::HttpFetch { url, .. } => write!(f, "HTTP fetch error for URL {url}"), Self::InvalidBase64 { context, .. } => { write!(f, "invalid base64 for {context}") } Self::InvalidEndEntityCertificate(_) => { write!(f, "invalid end-entity certificate") } Self::InvalidIntermediateCertificate { index, .. } => { write!(f, "invalid intermediate certificate at index {index}") } Self::InvalidLength { expected, actual, context, } => write!( f, "invalid length for {context}: expected {expected}, got {actual}" ), Self::InvalidSctEncoding => write!(f, "invalid SCT encoding: no ':' found"), Self::InvalidSctInCertificate(_) => { write!(f, "invalid SCT in certificate") } Self::InvalidTimestamp { input, context } => { write!(f, "invalid timestamp for {context}: '{input}'") } Self::ManifestEncode { path, .. } => { write!(f, "cannot encode manifest file at {path:?}") } Self::NoIssuer => write!(f, "no issuer found for end-entity certificate"), Self::Outdated(bytes) => write!(f, "cache is outdated, {bytes} bytes need downloading"), Self::RemoveFile { path, .. } => write!(f, "cannot remove file {path:?}"), Self::TooFewCertificates => { write!(f, "certificate chain must contain at least 2 certificates") } } } } impl StdError for Error { fn source(&self) -> Option<&(dyn StdError + 'static)> { match self { Self::CreateDirectory { error, .. } => Some(error), Self::FileWrite { error, .. } => Some(error), Self::FileDecode { error, .. } => Some(&**error), Self::FileRead { error, .. } => Some(error), Self::HashMismatch(_) => None, Self::IndexDecode(error) => Some(&**error), Self::HttpFetch { error, .. } => Some(&**error), Self::InvalidBase64 { error, .. } => Some(&**error), Self::InvalidEndEntityCertificate(error) => Some(&**error), Self::InvalidIntermediateCertificate { error, .. } => Some(&**error), Self::InvalidLength { .. } => None, Self::InvalidSctEncoding => None, Self::InvalidSctInCertificate(error) => Some(&**error), Self::InvalidTimestamp { .. } => None, Self::ManifestEncode { error, .. } => Some(&**error), Self::NoIssuer => None, Self::Outdated(_) => None, Self::RemoveFile { error, .. } => Some(error), Self::TooFewCertificates => None, } } } upki-1.0.0~beta.3/upki/src/sha256.rs000066400000000000000000000260501523060067200167740ustar00rootroot00000000000000// Written for Graviola by Joe Birr-Pixton, 2024. // SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT-0 //! Self-contained, portable SHA256. //! //! This is described in [FIPS180](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf). /// A context for incremental computation of SHA256. #[derive(Clone)] pub(crate) struct Context { h: [u32; 8], blockwise: Blockwise<{ Self::BLOCK_SZ }>, nblocks: usize, } impl Context { /// Start a new SHA256 hash computation. pub(crate) const fn new() -> Self { Self { h: [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, ], blockwise: Blockwise::new(), nblocks: 0, } } /// Add `bytes` to the ongoing hash computation. pub(crate) fn update(&mut self, bytes: &[u8]) { if self.blockwise.used == 0 && (bytes.len() % Self::BLOCK_SZ) == 0 { self.update_blocks(bytes); return; } let bytes = self.blockwise.add_leading(bytes); if let Some(block) = self.blockwise.take() { self.update_blocks(&block); } let (whole_blocks, remainder) = { let whole_len = bytes.len() - (bytes.len() & (Self::BLOCK_SZ - 1)); (&bytes[..whole_len], &bytes[whole_len..]) }; self.update_blocks(whole_blocks); self.blockwise.add_trailing(remainder); } /// Complete the SHA256 computation, returning the hash output. pub(crate) fn finish(mut self) -> Digest { let bytes = self .nblocks .checked_mul(Self::BLOCK_SZ) .and_then(|bytes| bytes.checked_add(self.blockwise.used)) .unwrap(); let bits = bytes .checked_mul(8) .expect("excess data processed by hash function"); let last_blocks = self .blockwise .md_pad_with_length(&(bits as u64).to_be_bytes()); self.update_blocks(last_blocks.as_ref()); let mut r = [0u8; Self::OUTPUT_SZ]; for (out, state) in r.chunks_exact_mut(4).zip(self.h.iter()) { out.copy_from_slice(&state.to_be_bytes()); } Digest(r) } fn update_blocks(&mut self, blocks: &[u8]) { debug_assert!(blocks.len() % Self::BLOCK_SZ == 0); if !blocks.is_empty() { sha256_compress_blocks(&mut self.h, blocks); self.nblocks = self .nblocks .saturating_add(blocks.len() / Self::BLOCK_SZ); } } /// The internal block size of SHA256. const BLOCK_SZ: usize = 64; /// The output size of SHA256. const OUTPUT_SZ: usize = 32; } /// A computed hash. pub(crate) struct Digest(pub(crate) [u8; 32]); impl AsRef<[u8]> for Digest { fn as_ref(&self) -> &[u8] { &self.0 } } /// Compute a hash from a sequence of slices. impl From<&[&[u8]]> for Digest { fn from(slices: &[&[u8]]) -> Self { let mut ctx = Context::new(); for s in slices { ctx.update(s); } ctx.finish() } } // --- Intermediate buffering and padding #[derive(Clone)] struct Blockwise { buffer: [u8; N], used: usize, } impl Blockwise { const fn new() -> Self { Self { buffer: [0u8; N], used: 0, } } fn add_leading<'a>(&mut self, bytes: &'a [u8]) -> &'a [u8] { if self.used == 0 { return bytes; } let space = N - self.used; let take = core::cmp::min(bytes.len(), space); let (taken, returned) = bytes.split_at(take); self.buffer[self.used..self.used + take].copy_from_slice(taken); self.used += take; returned } fn take(&mut self) -> Option<[u8; N]> { if self.used == N { self.used = 0; Some(self.buffer) } else { None } } fn add_trailing(&mut self, trailing: &[u8]) { self.buffer[..trailing.len()].copy_from_slice(trailing); self.used += trailing.len(); } fn md_pad_with_length(&mut self, length_bits: &[u8]) -> FinalBlocks { let space = N - self.used; let required = 1 + length_bits.len(); if required > space { // two block case (not especially optimised) self.add_leading(&[0x80]); self.add_leading(&[0u8; N]); let first = self.take().unwrap(); let mut second = [0u8; N]; let (_, length) = second.split_at_mut(N - length_bits.len()); length.copy_from_slice(length_bits); FinalBlocks::Two([first, second]) } else { let (_used, trailer) = self.buffer.split_at_mut(self.used); let (padding, length) = trailer.split_at_mut(trailer.len() - length_bits.len()); let (delim, zeroes) = padding.split_at_mut(1); delim[0] = 0x80; zeroes.fill(0x00); length.copy_from_slice(length_bits); self.used = 0; FinalBlocks::One(self.buffer) } } } enum FinalBlocks { One([u8; N]), Two([[u8; N]; 2]), } impl AsRef<[u8]> for FinalBlocks { fn as_ref(&self) -> &[u8] { match self { Self::One(one) => &one[..], Self::Two(two) => two.as_flattened(), } } } // --- Compression function fn sha256_compress_blocks(state: &mut [u32; 8], blocks: &[u8]) { debug_assert!(blocks.len() % 64 == 0); for block in blocks.chunks_exact(64) { sha256_compress_block(state, block); } } fn sha256_compress_block(state: &mut [u32; 8], block: &[u8]) { let mut a = state[0]; let mut b = state[1]; let mut c = state[2]; let mut d = state[3]; let mut e = state[4]; let mut f = state[5]; let mut g = state[6]; let mut h = state[7]; // This is a 16-word window into the whole W array. let mut w: [u32; 16] = [0; 16]; for t in 0..64 { // For W[0..16] we process the input into W. // For W[16..64] we compute the next W value: // // W[t] = SSIG1(W[t - 2]) + W[t - 7] + SSIG0(W[t - 15]) + W[t - 16]; // // But all W indices are reduced mod 16 into our window. let w_t = if t < 16 { let w_t = u32::from_be_bytes( block[t * 4..(t + 1) * 4] .try_into() .unwrap(), ); w[t] = w_t; w_t } else { let w_t = ssig1(w[(t - 2) % 16]) .wrapping_add(w[(t - 7) % 16]) .wrapping_add(ssig0(w[(t - 15) % 16])) .wrapping_add(w[(t - 16) % 16]); w[t % 16] = w_t; w_t }; let t1 = h .wrapping_add(bsig1(e)) .wrapping_add(ch(e, f, g)) .wrapping_add(K[t]) .wrapping_add(w_t); let t2 = bsig0(a).wrapping_add(maj(a, b, c)); h = g; g = f; f = e; e = d.wrapping_add(t1); d = c; c = b; b = a; a = t1.wrapping_add(t2); } state[0] = state[0].wrapping_add(a); state[1] = state[1].wrapping_add(b); state[2] = state[2].wrapping_add(c); state[3] = state[3].wrapping_add(d); state[4] = state[4].wrapping_add(e); state[5] = state[5].wrapping_add(f); state[6] = state[6].wrapping_add(g); state[7] = state[7].wrapping_add(h); } fn ch(x: u32, y: u32, z: u32) -> u32 { (x & y) ^ (!x & z) } fn maj(x: u32, y: u32, z: u32) -> u32 { (x & y) ^ (x & z) ^ (y & z) } fn bsig0(x: u32) -> u32 { x.rotate_right(2) ^ x.rotate_right(13) ^ x.rotate_right(22) } fn bsig1(x: u32) -> u32 { x.rotate_right(6) ^ x.rotate_right(11) ^ x.rotate_right(25) } fn ssig0(x: u32) -> u32 { x.rotate_right(7) ^ x.rotate_right(18) ^ (x >> 3) } fn ssig1(x: u32) -> u32 { x.rotate_right(17) ^ x.rotate_right(19) ^ (x >> 10) } static K: [u32; 64] = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, ]; #[cfg(test)] mod tests { use super::*; #[test] fn test_vectors() { test( b"hello", b"\x2c\xf2\x4d\xba\x5f\xb0\xa3\x0e\x26\xe8\x3b\x2a\xc5\xb9\xe2\x9e\ \x1b\x16\x1e\x5c\x1f\xa7\x42\x5e\x73\x04\x33\x62\x93\x8b\x98\x24", ); test( b"", b"\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24\ \x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55", ); test( b"abc", b"\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23\ \xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad", ); test( b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", b"\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39\ \xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1", ); test( b"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn\ hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", b"\xcf\x5b\x16\xa7\x78\xaf\x83\x80\x03\x6c\xe5\x9e\x7b\x04\x92\x37\ \x0b\x24\x9b\x11\xe8\xf0\x7a\x51\xaf\xac\x45\x03\x7a\xfe\xe9\xd1", ); fn test(input: &[u8], expected: &[u8; 32]) { // one-shot assert_eq!(Digest::from(&[input][..]).0, *expected); // context let mut ctx = Context::new(); ctx.update(input); assert_eq!(ctx.finish().0, *expected); // incremental let mut ctx = Context::new(); for byte in input { ctx.update(&[*byte]); } assert_eq!(ctx.finish().0, *expected); } } #[test] fn sha256_all_lengths() { // see cifra `vector_length` and associated let mut outer = Context::new(); for len in 0..1024 { let mut inner = Context::new(); for _ in 0..len { inner.update(&[len as u8]); } outer.update(&inner.finish().0); } assert_eq!( outer.finish().as_ref(), b"\x55\x7b\xfd\xd5\xef\xda\xfd\x63\x06\x5e\xb7\x98\x87\xde\x86\xdb\ \x54\xc3\xfe\xdf\x7b\xcc\xcb\x97\x08\xfa\x87\xf0\x11\x87\x61\xdc" ); } } upki-1.0.0~beta.3/upki/tests/000077500000000000000000000000001523060067200157665ustar00rootroot00000000000000upki-1.0.0~beta.3/upki/tests/codegen.rs000066400000000000000000000014521523060067200177420ustar00rootroot00000000000000#![cfg(feature = "capi")] use std::path::PathBuf; use std::{env, fs}; use cbindgen::{Builder, Language}; #[test] fn generate_header() { let crate_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); let header = crate_dir.join("upki.h"); let old = fs::read_to_string(&header).unwrap(); Builder::new() .with_crate(&crate_dir) .with_language(Language::C) .with_include_guard("UPKI_H") .generate() .expect("unable to generate bindings") .write_to_file(&header); let new = fs::read_to_string(&header).unwrap(); similar_asserts::assert_eq!( old.replace('\r', ""), new.replace('\r', ""), "Generated header file has changed. Please review the changes and update the snapshot if they are expected." ); } upki-1.0.0~beta.3/upki/upki.h000066400000000000000000000124211523060067200157450ustar00rootroot00000000000000#ifndef UPKI_H #define UPKI_H #include #include #include #include /** * Result type for upki C API functions. * * Values 0-15 indicate success (with specific status information). * Values 16 and above indicate errors. */ typedef enum upki_result { /** * Operation succeeded. */ UPKI_OK = 0, /** * The certificate is not covered by the revocation data. */ UPKI_REVOCATION_NOT_COVERED = 1, /** * The certificate has been revoked. */ UPKI_REVOCATION_REVOKED = 2, /** * The certificate is not revoked. */ UPKI_REVOCATION_NOT_REVOKED = 3, /** * A null pointer was passed where a valid pointer was required. */ UPKI_ERR_NULL_POINTER = 16, /** * The config path is not valid UTF-8. */ UPKI_ERR_CONFIG_PATH = 17, /** * An unknown error variant was added to the library. */ UPKI_ERR_UNKNOWN = 18, /** * An unexpected panic occurred in the library. */ UPKI_ERR_PANICKED = 19, /** * Failed to decode configuration file. */ UPKI_ERR_CONFIG_DECODE = 32, /** * Failed to read configuration file. */ UPKI_ERR_CONFIG_READ = 33, /** * No cache directory could be found. */ UPKI_ERR_NO_CACHE_DIR = 34, /** * No configuration directory could be found. */ UPKI_ERR_NO_CONFIG_DIR = 35, /** * The user's home directory could not be determined. */ UPKI_ERR_NO_HOME_DIR = 36, /** * Failed to create a directory. */ UPKI_ERR_REVOCATION_CREATE_DIR = 64, /** * Failed to write a file. */ UPKI_ERR_REVOCATION_FILE_WRITE = 65, /** * Failed to decode a file. */ UPKI_ERR_REVOCATION_FILE_DECODE = 66, /** * Failed to read a file. */ UPKI_ERR_REVOCATION_FILE_READ = 67, /** * A downloaded file did not match the expected hash. */ UPKI_ERR_REVOCATION_HASH_MISMATCH = 68, /** * Failed to fetch a file over HTTP. */ UPKI_ERR_REVOCATION_HTTP_FETCH = 69, /** * Invalid base64 encoding. */ UPKI_ERR_REVOCATION_INVALID_BASE64 = 70, /** * The end-entity certificate was invalid. */ UPKI_ERR_REVOCATION_INVALID_END_ENTITY_CERT = 71, /** * An intermediate certificate was invalid. */ UPKI_ERR_REVOCATION_INVALID_INTERMEDIATE_CERT = 72, /** * A base64-decoded value did not have the expected length. */ UPKI_ERR_REVOCATION_INVALID_LENGTH = 73, /** * Invalid SCT encoding. */ UPKI_ERR_REVOCATION_INVALID_SCT_ENCODING = 74, /** * An SCT in the end-entity certificate could not be parsed. */ UPKI_ERR_REVOCATION_INVALID_SCT_IN_CERT = 75, /** * A timestamp could not be parsed. */ UPKI_ERR_REVOCATION_INVALID_TIMESTAMP = 76, /** * Failed to encode a manifest file. */ UPKI_ERR_REVOCATION_MANIFEST_ENCODE = 77, /** * No issuer found for the end-entity certificate. */ UPKI_ERR_REVOCATION_NO_ISSUER = 78, /** * Cache is outdated. */ UPKI_ERR_REVOCATION_OUTDATED = 79, /** * Failed to remove a file. */ UPKI_ERR_REVOCATION_REMOVE_FILE = 80, /** * Certificate chain must contain at least 2 certificates. */ UPKI_ERR_REVOCATION_TOO_FEW_CERTS = 81, } upki_result; /** * Opaque type representing a `upki::Config`. */ typedef struct upki_config upki_config; /** * A DER-encoded certificate. */ typedef struct upki_certificate_der { /** * Pointer to the DER-encoded certificate data. */ const uint8_t *data; /** * Length of the certificate data in bytes. */ uintptr_t len; } upki_certificate_der; /** * Check the revocation status of a certificate. * * The `certificates` array should contain the end-entity certificate first, * followed by any intermediate certificates needed to find the issuer. * * Returns a `upki_result` indicating success (with revocation status) or an error. * * # Safety * * - `config` must be a valid pointer returned by `upki_config_new`. * - `certificates` must point to `certificates_len` `upki_certificate` values. * - Each `upki_certificate` must have a valid `data` pointer to `len` bytes. */ enum upki_result upki_check_revocation(const struct upki_config *config, const struct upki_certificate_der *certificates, uintptr_t certificates_len); /** * Create a new `upki_config` by loading it from the file at `path`. * * If `path` is `NULL`, the file is found by searching for a configuration * file in a series of places (depending on the platform.) This is * exposed by the `upki` command-line tool: run `upki show-config-path` * so see where the current configuration file is being found. * * On success, writes the config pointer to `out` and returns `UPKI_OK`. * The caller is responsible for freeing the config with `upki_config_free`. * * # Safety * * - `out` must be a pointer to writable, properly-aligned storage for a pointer. * Returns `UPKI_ERR_NULL_POINTER` if `out` is `NULL`. * - `path` must be a valid pointer to a null-terminated UTF-8 string, or `NULL`. */ enum upki_result upki_config_new(const char *path, struct upki_config **out); /** * Free a `upki_config` created by `upki_config_new`. * * # Safety * * `config` must be a valid pointer returned by `upki_config_new`, * or null (in which case this is a no-op). */ void upki_config_free(struct upki_config *config); #endif /* UPKI_H */