sskr/
error.rs

1use thiserror::Error;
2
3/// Errors that can occur when using the SSKR library.
4#[derive(Debug, Error)]
5pub enum Error {
6    #[error("When combining shares, the provided shares contained a duplicate member index")]
7    DuplicateMemberIndex,
8
9    #[error("Invalid group specification.")]
10    GroupSpecInvalid,
11
12    #[error("When creating a split spec, the group count is invalid")]
13    GroupCountInvalid,
14
15    #[error("SSKR group threshold is invalid")]
16    GroupThresholdInvalid,
17
18    #[error("SSKR member count is invalid")]
19    MemberCountInvalid,
20
21    #[error("SSKR member threshold is invalid")]
22    MemberThresholdInvalid,
23
24    #[error("SSKR shares did not contain enough groups")]
25    NotEnoughGroups,
26
27    #[error("SSKR secret is not of even length")]
28    SecretLengthNotEven,
29
30    #[error("SSKR secret is too long")]
31    SecretTooLong,
32
33    #[error("SSKR secret is too short")]
34    SecretTooShort,
35
36    #[error("SSKR shares did not contain enough serialized bytes")]
37    ShareLengthInvalid,
38
39    #[error("SSKR shares contained invalid reserved bits")]
40    ShareReservedBitsInvalid,
41
42    #[error("SSKR shares were empty")]
43    SharesEmpty,
44
45    #[error("SSKR shares were invalid")]
46    ShareSetInvalid,
47
48    #[error("SSKR Shamir error: {0}")]
49    ShamirError(#[from] bc_shamir::Error),
50}
51
52pub type Result<T> = std::result::Result<T, Error>;