Crate sda_protocol [] [src]

This crate describes the common interface of SDA, including the resources, methods, and message format exposed by an SDA service.

As such it is lightweight crate referenced by most of the other (Rust) crates.

It takes a resource-oriented REST approach whenever possible, influenced by the Google API Design Guide.

Reexports

pub use helpers::*;

Modules

byte_arrays

Typed binary arrays of specific sizes.

helpers

Various helper traits, structs, methods, and macros.

Structs

Agent

Fundamental description of agents in the system, i.e. participants, clerks, recipients, and admins.

AgentId

Unique agent identifier.

Aggregation

Description of an aggregation.

AggregationId

Unique aggregation identifier.

AggregationStatus

Current status of an aggregation.

ClerkCandidate

Suggested clerk for a given aggregation.

ClerkingJob

Partial aggregation job to be performed by a clerk.

ClerkingJobId

Unique job identifier.

ClerkingResult

Result of a partial aggregation job performed by a clerk.

Committee

Description of committee elected for an aggregation.

EncryptionKeyId

Unique encryption key identifier.

Participation

Description of a participant's input to an aggregation.

ParticipationId

Unique participation identifier.

Pong

Return message given by the ping service call.

Profile

Extended profile of an agent, providing information intended for increasing trust such as name and social handles.

SdaError

The Error type.

Snapshot

Captures a subset of the current participations to an agggregation in order to create a consistent set of clerkable shares.

SnapshotId

Unique snapshot identifier.

SnapshotResult

Result of an aggregation snapshot, including output, ready for reconstruction.

SnapshotStatus

Current status of a snapshot.

VerificationKeyId

Unique verification key identifier.

Enums

AdditiveEncryptionScheme

Supported additive encryption schemes and their parameters.

Encryption

Encryption (or ciphertext).

EncryptionKey

Encryption key (aka public key).

LinearMaskingScheme

Supported masking schemes and their parameters.

LinearSecretSharingScheme

Supported secret sharing schemes and their parameters.

SdaErrorKind

The kind of an error.

Signature

Signature.

SigningKey

Signing key for signatures.

VerificationKey

Verification key for signatures.

Traits

SdaAgentService

Methods used mainly for discovering and maintaining agents and their identities.

SdaAggregationService

Methods used mainly for discovering aggregation objects.

SdaBaseService

Basic methods for all SDA services.

SdaClerkingService

Methods used for clerking in particular.

SdaParticipationService

Methods used for participation in particular.

SdaRecipientService

Methods used by the recipient in particular.

SdaResultExt

Additional methods for Result, for easy interaction with this crate.

SdaService

Combined SDA services.

Type Definitions

LabelledVerificationKey

Verification key and its associated id.

SdaResult

Convenient wrapper around std::Result.

SignedEncryptionKey

Encryption key with its associated, signed by the owner of the corresponding keypair.