Group revamp (#261)
* Revamp `KeGroup` trait * Update dependencies * Fix `hash_to_scalar` using `OprfGroup` instead of `KeGroup` * Relax constraints on associated types of `KeGroup` * Improve `KeGroup` implementation on `Curve` * Improve `KeyExchange` trait * Fix new Clippy 1.59 warnings
This commit is contained in:
+16
-12
@@ -31,8 +31,8 @@ pub enum InternalError<T = Infallible> {
|
||||
},
|
||||
/// Could not decompress point.
|
||||
PointError,
|
||||
/// Computing the hash-to-curve function failed
|
||||
HashToCurveError,
|
||||
/// Size of input is empty or longer then [`u16::MAX`].
|
||||
HashToScalar,
|
||||
/// Computing HKDF failed while deriving subkeys
|
||||
HkdfError,
|
||||
/// Computing HMAC failed while supplying a secret key
|
||||
@@ -45,12 +45,10 @@ pub enum InternalError<T = Infallible> {
|
||||
/** This error occurs when attempting to open an envelope of the wrong
|
||||
type (base mode, custom identifier) */
|
||||
IncompatibleEnvelopeModeError,
|
||||
/// This error occurs when the inner envelope is malformed
|
||||
InvalidInnerEnvelopeError,
|
||||
/// Error from the OPRF evaluation
|
||||
OprfError(voprf::Error),
|
||||
/// Error encountered when attempting to produce a keypair
|
||||
InvalidKeypairError,
|
||||
/// Error from the OPRF evaluation
|
||||
OprfInternalError(voprf::InternalError),
|
||||
}
|
||||
|
||||
impl<T: Debug> Debug for InternalError<T> {
|
||||
@@ -69,7 +67,7 @@ impl<T: Debug> Debug for InternalError<T> {
|
||||
.field("actual_len", actual_len)
|
||||
.finish(),
|
||||
Self::PointError => f.debug_tuple("PointError").finish(),
|
||||
Self::HashToCurveError => f.debug_tuple("HashToCurveError").finish(),
|
||||
Self::HashToScalar => f.debug_tuple("HashToScalar").finish(),
|
||||
Self::HkdfError => f.debug_tuple("HkdfError").finish(),
|
||||
Self::HmacError => f.debug_tuple("HmacError").finish(),
|
||||
Self::SlowHashError => f.debug_tuple("SlowHashError").finish(),
|
||||
@@ -77,9 +75,10 @@ impl<T: Debug> Debug for InternalError<T> {
|
||||
Self::IncompatibleEnvelopeModeError => {
|
||||
f.debug_tuple("IncompatibleEnvelopeModeError").finish()
|
||||
}
|
||||
Self::InvalidInnerEnvelopeError => f.debug_tuple("InvalidInnerEnvelopeError").finish(),
|
||||
Self::OprfError(error) => f.debug_tuple("OprfError").field(error).finish(),
|
||||
Self::InvalidKeypairError => f.debug_tuple("InvalidKeypairError").finish(),
|
||||
Self::OprfInternalError(error) => {
|
||||
f.debug_tuple("OprfInternalError").field(error).finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -103,15 +102,14 @@ impl InternalError {
|
||||
actual_len,
|
||||
},
|
||||
Self::PointError => InternalError::PointError,
|
||||
Self::HashToCurveError => InternalError::HashToCurveError,
|
||||
Self::HashToScalar => InternalError::HashToScalar,
|
||||
Self::HkdfError => InternalError::HkdfError,
|
||||
Self::HmacError => InternalError::HmacError,
|
||||
Self::SlowHashError => InternalError::SlowHashError,
|
||||
Self::SealOpenHmacError => InternalError::SealOpenHmacError,
|
||||
Self::IncompatibleEnvelopeModeError => InternalError::IncompatibleEnvelopeModeError,
|
||||
Self::InvalidInnerEnvelopeError => InternalError::InvalidInnerEnvelopeError,
|
||||
Self::OprfError(error) => InternalError::OprfError(error),
|
||||
Self::InvalidKeypairError => InternalError::InvalidKeypairError,
|
||||
Self::OprfInternalError(error) => InternalError::OprfInternalError(error),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -128,6 +126,12 @@ impl From<voprf::Error> for ProtocolError {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<voprf::InternalError> for ProtocolError {
|
||||
fn from(voprf_error: voprf::InternalError) -> Self {
|
||||
Self::LibraryError(InternalError::OprfInternalError(voprf_error))
|
||||
}
|
||||
}
|
||||
|
||||
/// Represents an error in protocol handling
|
||||
#[derive(Clone, Copy, Display, Eq, Hash, Ord, PartialEq, PartialOrd)]
|
||||
pub enum ProtocolError<T = Infallible> {
|
||||
|
||||
Reference in New Issue
Block a user