SteamGuard-CLI の使い方と内部構造

Linux 向けのコマンドラインツールで、Steam の二要素認証コード生成や取引承認を管理できます。ソースコードは以下から入手可能です:
https://gitcode.com/gh_mirrors/st/steamguard-cli

ディレクトリ構成と役割

steamguard-cli/
├── Cargo.toml          # プロジェクト設定(Rust)
├── README.md           # 基本説明・使用方法
├── src/                # ソースコード本体
│   ├── main.rs         # アプリケーションエントリーポイント
│   ├── interface/      # CLI コマンド処理
│   │   └── handler.rs
│   ├── platform/       # Steam API 関連機能
│   │   ├── core.rs
│   │   ├── token_gen.rs
│   │   └── approval.rs
│   └── security/       # 暗号化・復号処理
│       ├── vault.rs
│       └── cipher.rs
└── target/             # ビルド出力先
  • Cargo.toml:依存ライブラリやプロジェクトメタデータを定義。
  • README.md:インストール手順や基本的な操作ガイドを記載。
  • src/main.rs:アプリ起動時に最初に実行されるメインルーチン。
  • interface/handler.rs:ユーザー入力を解析し、対応する処理を呼び出す。
  • platform/:Steam サーバーとの通信や認証コード生成を担当。
  • security/:秘密鍵やセッションデータの暗号化・復号を実装。

エントリーポイントの動作

src/main.rs は次のように構成されています:

fn main() {
    let args = parse_arguments();

    match args.action {
        Action::CreateToken => produce_2fa_code(),
        Action::ApproveDeal => handle_confirmation(),
        _ => println!("Unknown command"),
    }
}
  • parse_arguments():ユーザーが入力したコマンドラインオプションを解釈。
  • Action::CreateToken:二要素認証用の時限コードを生成。
  • Action::ApproveDeal:保留中の取引を承認または拒否。

設定ファイルの内容

Cargo.toml には以下のような情報が含まれます:

[package]
name = "steamguard-cli"
version = "0.14.2"
edition = "2021"

[dependencies]
clap = "4.0"
serde = { version = "1.0", features = ["derive"] }
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1.0", features = ["full"] }

[features]
default = []
headless = []
  • [package]:プロジェクト名、バージョン、使用する Rust エディションを指定。
  • [dependencies]:外部ライブラリ(例: clap で CLI 解析、reqwest で HTTP 通信)。
  • [features]:オプション機能(例: GUI 不要モード)を条件付きで有効化。

タグ: rust Steam CLI 2FA opensource

6月28日 16:24 投稿