mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-19 19:42:19 +02:00
Add some error types
This commit is contained in:
parent
be36d0f44c
commit
0a1c92eaac
35
src/error.rs
35
src/error.rs
@ -8,6 +8,7 @@ pub type Result<T> = std::result::Result<T, SignalProtocolError>;
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum SignalProtocolError {
|
||||
InvalidArgument(String),
|
||||
InvalidState(&'static str, String),
|
||||
|
||||
ProtobufDecodingError(prost::DecodeError),
|
||||
ProtobufEncodingError(prost::EncodeError),
|
||||
@ -26,6 +27,16 @@ pub enum SignalProtocolError {
|
||||
BadKeyLength(KeyType, usize),
|
||||
MismatchedKeyTypes(KeyType, KeyType),
|
||||
MismatchedSignatureLengthForKey(KeyType, usize),
|
||||
|
||||
InvalidPreKeyId,
|
||||
InvalidSignedPreKeyId,
|
||||
|
||||
InvalidRootKeyLength(usize),
|
||||
InvalidChainKeyLength(usize),
|
||||
|
||||
InvalidCipherKeyLength(usize),
|
||||
InvalidMacKeyLength(usize),
|
||||
InvalidCipherNonceLength(usize),
|
||||
}
|
||||
|
||||
impl Error for SignalProtocolError {
|
||||
@ -66,6 +77,9 @@ impl fmt::Display for SignalProtocolError {
|
||||
SignalProtocolError::InvalidArgument(ref s) => {
|
||||
write!(f, "invalid argument: {}", s)
|
||||
}
|
||||
SignalProtocolError::InvalidState(ref func, ref s) => {
|
||||
write!(f, "invalid state for call to {} to succeed: {}", func, s)
|
||||
}
|
||||
SignalProtocolError::CiphertextMessageTooShort(size) => {
|
||||
write!(f, "ciphertext serialized bytes were too short <{}>", size)
|
||||
}
|
||||
@ -99,6 +113,27 @@ impl fmt::Display for SignalProtocolError {
|
||||
SignalProtocolError::MismatchedSignatureLengthForKey(t, l) => {
|
||||
write!(f, "signature length <{}> does not match expected for key with type <{}>", l, t)
|
||||
}
|
||||
SignalProtocolError::InvalidPreKeyId => {
|
||||
write!(f, "invalid prekey identifier")
|
||||
}
|
||||
SignalProtocolError::InvalidSignedPreKeyId => {
|
||||
write!(f, "invalid signed prekey identifier")
|
||||
}
|
||||
SignalProtocolError::InvalidChainKeyLength(l) => {
|
||||
write!(f, "invalid chain key length <{}>", l)
|
||||
}
|
||||
SignalProtocolError::InvalidRootKeyLength(l) => {
|
||||
write!(f, "invalid root key length <{}>", l)
|
||||
}
|
||||
SignalProtocolError::InvalidCipherKeyLength(l) => {
|
||||
write!(f, "invalid cipher key length <{}>", l)
|
||||
}
|
||||
SignalProtocolError::InvalidMacKeyLength(l) => {
|
||||
write!(f, "invalid MAC key length <{}>", l)
|
||||
}
|
||||
SignalProtocolError::InvalidCipherNonceLength(l) => {
|
||||
write!(f, "invalid cipher nonce length <{}>", l)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user