identity-service-api: Add public key retrieval endpoint
This commit is contained in:
parent
ddaaca1ec4
commit
134b64af81
@ -1,3 +1,4 @@
|
||||
//! Endpoints to retrieve, update, and validate keys with an identity server.
|
||||
|
||||
pub mod check_public_key_validity;
|
||||
pub mod get_public_key;
|
||||
|
3
ruma-identity-service-api/src/keys/get_public_key.rs
Normal file
3
ruma-identity-service-api/src/keys/get_public_key.rs
Normal file
@ -0,0 +1,3 @@
|
||||
//! Endpoint to retrieve the public key for a key ID.
|
||||
|
||||
pub mod v2;
|
40
ruma-identity-service-api/src/keys/get_public_key/v2.rs
Normal file
40
ruma-identity-service-api/src/keys/get_public_key/v2.rs
Normal file
@ -0,0 +1,40 @@
|
||||
//! [GET /_matrix/identity/v2/pubkey/{keyId}](https://matrix.org/docs/spec/identity_service/r0.3.0#get-matrix-identity-v2-pubkey-keyid)
|
||||
|
||||
use ruma_api::ruma_api;
|
||||
use ruma_identifiers::ServerSigningKeyId;
|
||||
|
||||
ruma_api! {
|
||||
metadata: {
|
||||
description: "Get the public key for the given key ID.",
|
||||
method: GET,
|
||||
name: "get_public_key",
|
||||
path: "/_matrix/identity/v2/pubkey/:key_id",
|
||||
rate_limited: false,
|
||||
authentication: None,
|
||||
}
|
||||
|
||||
request: {
|
||||
/// The ID of the key.
|
||||
#[ruma_api(path)]
|
||||
pub key_id: ServerSigningKeyId,
|
||||
}
|
||||
|
||||
response: {
|
||||
/// Unpadded Base64 encoded public key.
|
||||
pub public_key: String,
|
||||
}
|
||||
}
|
||||
|
||||
impl Request {
|
||||
/// Create a `Request` with the given key_id.
|
||||
pub fn new(key_id: ServerSigningKeyId) -> Self {
|
||||
Self { key_id }
|
||||
}
|
||||
}
|
||||
|
||||
impl Response {
|
||||
/// Create a `Response` with the given base64-encoded (unpadded) public key.
|
||||
pub fn new(public_key: String) -> Self {
|
||||
Self { public_key }
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user