mod ciphertext;
mod combined_public_keys;
mod dercryption;
mod encryption_parameters;
pub use ciphertext::Ciphertext;
use ciphertext::CiphertextError;
pub use combined_public_keys::combine_public_keys;
use combined_public_keys::CombinePublicKeysError;
use dercryption::DecryptionError;
pub use dercryption::{verify_decryptions, VerifyDecryptionsResult};
use encryption_parameters::EncryptionParameterError;
pub use encryption_parameters::{EncryptionParameterDomainError, EncryptionParameters};
use thiserror::Error;
#[derive(Error, Debug)]
#[error(transparent)]
pub struct ElgamalError(#[from] ElgamalErrorRepr);
#[derive(Error, Debug)]
enum ElgamalErrorRepr {
#[error(transparent)]
EncryptionParameter(#[from] EncryptionParameterError),
#[error(transparent)]
Ciphertext(#[from] CiphertextError),
#[error(transparent)]
Decryption(#[from] DecryptionError),
#[error(transparent)]
CombinePublicKey(#[from] CombinePublicKeysError),
}