federation-api: Wrap ServerSigningKeys in Raw

Instances might contain extra fields that need to be taken into account
for signature verification.
This commit is contained in:
Jonas Platte 2022-02-18 11:44:29 +01:00
parent 6502e4e378
commit 2003948edb
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
3 changed files with 11 additions and 8 deletions

View File

@ -11,6 +11,7 @@ pub mod v2 {
use ruma_api::ruma_api;
use ruma_common::MilliSecondsSinceUnixEpoch;
use ruma_identifiers::ServerName;
use ruma_serde::Raw;
use crate::discovery::ServerSigningKeys;
@ -43,7 +44,7 @@ pub mod v2 {
response: {
/// The queried server's keys, signed by the notary server.
pub server_keys: Vec<ServerSigningKeys>,
pub server_keys: Vec<Raw<ServerSigningKeys>>,
}
}
@ -59,7 +60,7 @@ pub mod v2 {
impl Response {
/// Creates a new `Response` with the given keys.
pub fn new(server_keys: Vec<ServerSigningKeys>) -> Self {
pub fn new(server_keys: Vec<Raw<ServerSigningKeys>>) -> Self {
Self { server_keys }
}
}

View File

@ -13,6 +13,7 @@ pub mod v2 {
use ruma_api::ruma_api;
use ruma_common::MilliSecondsSinceUnixEpoch;
use ruma_identifiers::{ServerName, ServerSigningKeyId};
use ruma_serde::Raw;
use serde::{Deserialize, Serialize};
use crate::discovery::ServerSigningKeys;
@ -43,7 +44,7 @@ pub mod v2 {
response: {
/// The queried server's keys, signed by the notary server.
pub server_keys: Vec<ServerSigningKeys>,
pub server_keys: Vec<Raw<ServerSigningKeys>>,
}
}
@ -61,7 +62,7 @@ pub mod v2 {
impl Response {
/// Creates a new `Response` with the given keys.
pub fn new(server_keys: Vec<ServerSigningKeys>) -> Self {
pub fn new(server_keys: Vec<Raw<ServerSigningKeys>>) -> Self {
Self { server_keys }
}
}

View File

@ -11,6 +11,7 @@ pub mod v2 {
//! [spec]: https://spec.matrix.org/v1.2/server-server-api/#get_matrixkeyv2serverkeyid
use ruma_api::ruma_api;
use ruma_serde::Raw;
use crate::discovery::ServerSigningKeys;
@ -31,7 +32,7 @@ pub mod v2 {
response: {
/// Queried server key, signed by the notary server.
#[ruma_api(body)]
pub server_key: ServerSigningKeys,
pub server_key: Raw<ServerSigningKeys>,
}
}
@ -44,13 +45,13 @@ pub mod v2 {
impl Response {
/// Creates a new `Response` with the given server key.
pub fn new(server_key: ServerSigningKeys) -> Self {
pub fn new(server_key: Raw<ServerSigningKeys>) -> Self {
Self { server_key }
}
}
impl From<ServerSigningKeys> for Response {
fn from(server_key: ServerSigningKeys) -> Self {
impl From<Raw<ServerSigningKeys>> for Response {
fn from(server_key: Raw<ServerSigningKeys>) -> Self {
Self::new(server_key)
}
}