1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
//! # Chaum-Pedersen Zero-Knowledge Interactive Proof Authentication Protocol
//!
//! This crate provides a comprehensive implementation of the Chaum-Pedersen zero-knowledge interactive proof authentication scheme.
//! It is designed to facilitate secure and private authentication processes by leveraging the principles of zero-knowledge proofs.
//! This scheme allows a prover to convince a verifier that they know a secret without revealing the secret itself.
//!
//! ## Overview
//!
//! The Chaum-Pedersen authentication protocol is a zero-knowledge proof mechanism that enhances security in authentication processes.
//! This crate offers a robust and efficient implementation of this protocol, suitable for scenarios where privacy and security are paramount.
//!
//! The primary components of this crate include:
//!
//! - **Server**: Provides the server-side functionality necessary for the Chaum-Pedersen authentication.
//! It includes the logic to handle authentication requests and validate proofs without ever knowing the client's secret.
//!
//! - **Client**: Implements the client-side logic for generating and sending zero-knowledge proofs to the server.
//! It ensures that the client's secret is never exposed during the authentication process.
//!
//! - **gRPC Integration**: The crate uses gRPC for communication between the client and the server.
//! This provides a robust, efficient, and language-agnostic way to handle remote procedure calls.
//!
//! ## Modules
//!
//! - `chaum_pedersen`: Core module that implements the Chaum-Pedersen zero-knowledge proof algorithm.
//! It contains the cryptographic primitives and logic for both the prover (client) and verifier (server).
//!
//! - `client`: Contains the implementation of the client-side logic for the authentication process.
//! It provides functions to generate zero-knowledge proofs and communicate with the server via gRPC.
//!
//! - `cmdutil`: Utility module that aids in command-line operations and parameter handling.
//! It simplifies the process of parsing command-line arguments and configuring the client or server.
//!
//! - `conversion`: Offers functionality to convert between different data types and formats.
//! This module is essential for handling cryptographic operations and data serialization/deserialization.
//!
//! - `rand`: Provides utilities for secure random number generation, which is a critical component in cryptographic operations.
//!
//! - `service`: Contains the gRPC service definitions and implementations.
//! It defines the remote procedure calls and their respective request and response structures.
//!
//! - `repository`: An internal module that may contain data storage and retrieval logic, potentially for managing user data or cryptographic keys.
//!
//! ## Usage
//!
//! This crate can be integrated into applications that require secure authentication mechanisms.
//! By leveraging the Chaum-Pedersen protocol, it offers a high degree of privacy and security, ensuring that sensitive information remains confidential.
//!
//! ## Dependencies
//!
//! This crate relies on various cryptographic libraries and gRPC for its functionality.
//! Ensure that all dependencies are properly installed and configured for seamless operation.
//!
//! ## Contributing
//!
//! Contributions are welcome. Please refer to the `CONTRIBUTING.md` file for guidelines on how to contribute to this project.
//!
//! ## License
//!
//! This project is licensed under the [MIT License](LICENSE).
/// Implements the Chaum-Pedersen zero-knowledge proof protocol.
pub mod chaum_pedersen;
/// Handles client-side operations and interactions.
pub mod client;
/// Utilities for command line argument parsing and handling.
pub mod cmdutil;
/// Functions for type conversions and data formatting.
pub mod conversion;
/// Cryptographically secure random number generation utilities.
pub mod rand;
/// Core services and business logic implementation.
pub mod service;
/// Data storage and retrieval mechanisms.
mod repository;