diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 91a752d..ea0a840 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,9 +12,24 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install protoc on Ubuntu + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler + - name: Install protoc on Windows + if: matrix.os == 'windows-latest' + run: | + choco install protoc --version=3.20.0 + # You can change the version as needed + $env:PATH += ";C:\ProgramData\chocolatey\bin" + - name: Install protoc on macOS + if: matrix.os == 'macos-latest' + run: | + brew install protobuf - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 override: true - name: cargo fetch uses: actions-rs/cargo@v1 @@ -41,9 +56,13 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install protoc on Ubuntu + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 override: true - name: Add target run: rustup target add ${{ matrix.target }} @@ -61,9 +80,13 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install protoc on Ubuntu + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 override: true - name: cargo check uses: actions-rs/cargo@v1 @@ -72,20 +95,24 @@ jobs: args: --tests --examples --benches --all-features clippy: - name: Clippy (1.76) + name: Clippy (1.81) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Install protoc on Ubuntu + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 components: clippy override: true - name: Clippy check uses: actions-rs/clippy-check@v1 with: - name: Clippy (1.76) + name: Clippy (1.81) token: ${{ secrets.GITHUB_TOKEN }} args: --all-features --all-targets -- -D warnings @@ -95,9 +122,13 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Install protoc on Ubuntu + run: | + sudo apt-get update + sudo apt-get install -y protobuf-compiler - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 override: true - name: cargo fetch uses: actions-rs/cargo@v1 @@ -120,7 +151,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76 + toolchain: 1.81 components: rustfmt override: true - name: Check formatting diff --git a/README.md b/README.md index ede41a3..af1316b 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Plexi is a flexible auditor for [Key Transparency systems](https://blog.cloudfla | Environment | CLI Command | |:--------------------------------------------------------------|:----------------------| -| [Cargo](https://www.rust-lang.org/tools/install) (Rust 1.76+) | `cargo install plexi` | +| [Cargo](https://www.rust-lang.org/tools/install) (Rust 1.81+) | `cargo install plexi` | ## Usage diff --git a/plexi_cli/README.md b/plexi_cli/README.md deleted file mode 100644 index 4eb5401..0000000 --- a/plexi_cli/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Plexi - -![Plexi banner](../docs/assets/plexi_banner.png) - -Plexi is a flexible auditor for [Key Transparency systems](https://blog.cloudflare.com/key-transparency). - -## Tables of Content - -* [Features](#features) -* [Installation](#installation) -* [Usage](#usage) - * [Configure your auditor remote](#configure-your-auditor-remote) - * [List monitored Logs](#list-monitored-logs) - * [Audit a signature](#audit-a-signature) -* [Conduct](#conduct) -* [License](#license) - -## Features - -* Verify authenticity of a signature, to confirm it has been signed by a given public key -* Verify the validity of [facebook/akd](https://github.com/facebook/akd) proofs -* List Logs an Auditor monitors - -## Installation - -| Environment | CLI Command | -|:--------------------------------------------------------------|:----------------------| -| [Cargo](https://www.rust-lang.org/tools/install) (Rust 1.76+) | `cargo install plexi` | - -## Usage - -Use the `--help` option for more details about the commands and their options. - -```bash -plexi [OPTIONS] -``` - -### Configure your auditor remote - -`plexi` does not come with a default remote auditor, and you will need to choose your own. - -You can do so either by passing `--remote-url=` or setting the `PLEXI_REMOTE_URL` environment variable. - -A common remote is provided below: - -| Name | Remote | -|:-----------|:------------------------------------------------| -| Cloudflare | `https://plexi.key-transparency.cloudflare.com` | - -If you have deployed your own auditor, you can add a remote by filing a [GitHub issue](https://github.com/cloudflare/plexi/issues). - -### List monitored Logs - -An auditor monitors multiple Logs at once. To discover which Logs an auditor is monitoring, run the following: - -```shell -plexi ls --remote-url 'https://plexi.key-transparency.cloudflare.com' -whatsapp.key-transparency.v1 -``` - -### Audit a signature - -The Key Transparency Auditor vouches for Log validity by ensuring epoch uniqueness. and verifying the associated proof - -`plexi audit` provides information about a given epoch and its validity. It can perform a local audit to confirm the auditor behaviour. - -For instance, to verify WhatsApp Log auditted by Cloudflare Auditor, run the following: -```shell -> plexi audit --remote-url 'https://plexi.key-transparency.cloudflare.com' --namespace 'whatsapp.key-transparency.v1' --long -Namespace: whatsapp.key-transparency.v1 -Ciphersuite: ed25519(protobuf) -Timestamp: 2024-09-19T09:59:44Z -Epoch height: 476847 -Epoch digest: 9d217c91dc629d16a3b1379e8fd7c949c27b1b6038259e3918bd0da3cd6c34d1 -Signature: e4c83e3091ba8764752120bd7a726a28759d25a01f39d07131d6ba66a913d58d8f0f48f63bc7e037cc5ddd81dc76acc847dbf8d02b2f55251e6f2b1f00191902 -Verification: success -``` - -## Conduct - -Plexi and Cloudflare OpenSource generally follows the [Contributor Covenant Code of Conduct](https://github.com/cloudflare/.github/blob/26b37ca2ba7ab3d91050ead9f2c0e30674d3b91e/CODE_OF_CONDUCT.md). Violating the CoC could result in a warning or a ban to Plexi or any and all repositories in the Cloudflare organization. - -## License -This project is Licensed under [Apache License, Version 2.0](../LICENSE).