syntarq-cli 0.1.0

Command-line interface for Syntarq identity management
//! Info command - Shows information about Syntarq

use crate::ui;
use anyhow::Result;

/// Run the info command to show system information
pub async fn run() -> Result<()> {
    ui::header("📊 Syntarq Information");

    ui::section("Version");
    ui::kv_pair("syntarq-core", syntarq_core::VERSION);
    ui::kv_pair("syntarq-cli", env!("CARGO_PKG_VERSION"));

    ui::section("Cryptography");
    ui::info("  AES-256-GCM - Symmetric Encryption");
    ui::info("  ChaCha20-Poly1305 - Symmetric Encryption");
    ui::info("  Argon2id - Password Hashing");
    ui::info("  Ed25519 - Digital Signatures");
    ui::info("  X25519 - Key Exchange");
    ui::info("  SHA-256 - Hashing");
    ui::info("  BLAKE3 - Hashing");

    #[cfg(feature = "post-quantum")]
    {
        ui::section("Post-Quantum Cryptography");
        ui::success("Enabled");
        ui::info("  Kyber-1024 - Key Encapsulation");
        ui::info("  Dilithium5 - Digital Signatures");
    }

    #[cfg(not(feature = "post-quantum"))]
    {
        ui::section("Post-Quantum Cryptography");
        ui::dimmed("  Not enabled (compile with --features post-quantum)");
    }

    ui::section("Features");
    #[cfg(feature = "sqlite")]
    ui::success("  SQLite Storage: Enabled");
    #[cfg(not(feature = "sqlite"))]
    ui::dimmed("  SQLite Storage: Disabled");

    #[cfg(feature = "networking")]
    ui::success("  Networking: Enabled");
    #[cfg(not(feature = "networking"))]
    ui::dimmed("  Networking: Disabled");

    ui::section("Services");
    use syntarq_core::identity::ServiceType;
    for service in ServiceType::all() {
        ui::info(&format!("  {} - {}", service, service.as_str()));
    }

    ui::separator();
    ui::info("For more information, visit: https://github.com/syntarq");

    Ok(())
}