crypto: Don't panic if the key id can't be parsed.
parent
181c2a92de
commit
d21e8213b5
|
@ -13,7 +13,7 @@
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use cjson::Error as CjsonError;
|
use cjson::Error as CjsonError;
|
||||||
use matrix_sdk_common::identifiers::{DeviceId, UserId};
|
use matrix_sdk_common::identifiers::{DeviceId, Error as IdentifierError, UserId};
|
||||||
use olm_rs::errors::{OlmGroupSessionError, OlmSessionError};
|
use olm_rs::errors::{OlmGroupSessionError, OlmSessionError};
|
||||||
use serde_json::Error as SerdeError;
|
use serde_json::Error as SerdeError;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
@ -120,6 +120,9 @@ pub enum SignatureError {
|
||||||
#[error("the signature used a unsupported algorithm")]
|
#[error("the signature used a unsupported algorithm")]
|
||||||
UnsupportedAlgorithm,
|
UnsupportedAlgorithm,
|
||||||
|
|
||||||
|
#[error("the key id of the signing key is invalid")]
|
||||||
|
InvalidKeyId(#[from] IdentifierError),
|
||||||
|
|
||||||
#[error("the signing key is missing from the object that signed the message")]
|
#[error("the signing key is missing from the object that signed the message")]
|
||||||
MissingSigningKey,
|
MissingSigningKey,
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ impl MasterPubkey {
|
||||||
|
|
||||||
verify_json(
|
verify_json(
|
||||||
&self.0.user_id,
|
&self.0.user_id,
|
||||||
&DeviceKeyId::try_from(key_id.as_str()).unwrap(),
|
&DeviceKeyId::try_from(key_id.as_str())?,
|
||||||
key,
|
key,
|
||||||
&mut to_value(subkey.cross_signing_key()).map_err(|_| SignatureError::NotAnObject)?,
|
&mut to_value(subkey.cross_signing_key()).map_err(|_| SignatureError::NotAnObject)?,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue