Fix issues with new key ID / signature types
This commit is contained in:
parent
1ceade7b61
commit
62135a9630
@ -84,7 +84,7 @@ pub fn room_version_id(input: TokenStream) -> TokenStream {
|
||||
#[proc_macro]
|
||||
pub fn server_signing_key_id(input: TokenStream) -> TokenStream {
|
||||
let Input { dollar_crate, id } = parse_macro_input!(input as Input);
|
||||
assert!(key_id::validate(&id.value()).is_ok(), "Invalid server_key_id");
|
||||
assert!(key_id::validate(&id.value()).is_ok(), "Invalid server_signing_key_id");
|
||||
|
||||
let output = quote! {
|
||||
<#dollar_crate::ServerSigningKeyId as ::std::convert::TryFrom<&str>>::try_from(#id).unwrap()
|
||||
|
@ -38,7 +38,7 @@ impl Display for Error {
|
||||
let message = match self {
|
||||
Error::EmptyRoomVersionId => "room version ID is empty",
|
||||
Error::InvalidCharacters => "localpart contains invalid characters",
|
||||
Error::InvalidKeyAlgorithm => "unknown key algorithm specified",
|
||||
Error::InvalidKeyAlgorithm => "invalid key algorithm specified",
|
||||
Error::InvalidKeyVersion => "key ID version contains invalid characters",
|
||||
Error::InvalidServerName => "server name is not a valid IP address or domain name",
|
||||
Error::MaximumLengthExceeded => "ID exceeds 255 bytes",
|
||||
|
@ -8,16 +8,22 @@ pub type EntitySignatures<K> = BTreeMap<SigningKeyId<K>, String>;
|
||||
/// Map of all signatures, grouped by entity
|
||||
///
|
||||
/// ```
|
||||
/// # use ruma_identifiers::{server_name, KeyId, Signatures, SigningKeyAlgorithm};
|
||||
/// let key_identifier = KeyId::from_parts(SigningKeyAlgorithm::Ed25519, "1");
|
||||
/// let mut signatures = Signatures::new();
|
||||
/// let server_name = server_name!("example.org");
|
||||
/// let signature = "YbJva03ihSj5mPk+CHMJKUKlCXCPFXjXOK6VqBnN9nA2evksQcTGn6hwQfrgRHIDDXO2le49x7jnWJHMJrJoBQ";
|
||||
/// signatures.add(server_name, key_identifier, signature);
|
||||
/// signatures.insert(server_name, key_identifier, signature.into());
|
||||
/// ```
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct Signatures<E: Ord, K>(BTreeMap<E, EntitySignatures<K>>);
|
||||
pub struct Signatures<E: Ord, K: ?Sized>(BTreeMap<E, EntitySignatures<K>>);
|
||||
|
||||
impl<E: Ord, K: ?Sized> Signatures<E, K> {
|
||||
/// Creates an empty signature map.
|
||||
pub fn new() -> Self {
|
||||
Self(BTreeMap::new())
|
||||
}
|
||||
|
||||
impl<E: Ord, K: Ord> Signatures<E, K> {
|
||||
/// Add a signature for the given server name and key identifier.
|
||||
///
|
||||
/// If there was already one, it is returned.
|
||||
|
@ -6,7 +6,7 @@ fn main() {
|
||||
let _ = ruma_identifiers::room_id!("!1234567890:matrix.org");
|
||||
let _ = ruma_identifiers::room_version_id!("1");
|
||||
let _ = ruma_identifiers::room_version_id!("1-custom");
|
||||
let _ = ruma_identifiers::server_key_id!("ed25519:Abc_1");
|
||||
let _ = ruma_identifiers::server_signing_key_id!("ed25519:Abc_1");
|
||||
let _ = ruma_identifiers::server_name!("myserver.fish");
|
||||
let _ = ruma_identifiers::user_id!("@user:ruma.io");
|
||||
}
|
||||
|
@ -1,11 +1,9 @@
|
||||
fn main() {
|
||||
let _ = ruma_identifiers::device_key_id!("ed2519:JLAFKJWSCS");
|
||||
let _ = ruma_identifiers::event_id!("39hvsi03hlne:example.com");
|
||||
let _ = ruma_identifiers::event_id!("acR1l0raoZnm60CBwAVgqbZqoO/mYU81xysh1u7XcJk");
|
||||
let _ = ruma_identifiers::room_alias_id!("alias:server.tld");
|
||||
let _ = ruma_identifiers::room_id!("1234567890:matrix.org");
|
||||
let _ = ruma_identifiers::room_version_id!("");
|
||||
let _ = ruma_identifiers::server_key_id!("ed219:Abc_1");
|
||||
let _ = ruma_identifiers::server_name!("");
|
||||
let _ = ruma_identifiers::user_id!("user:ruma.io");
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:2:13
|
||||
|
|
||||
2 | let _ = ruma_identifiers::device_key_id!("ed2519:JLAFKJWSCS");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
2 | let _ = ruma_identifiers::event_id!("39hvsi03hlne:example.com");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid device key id
|
||||
= help: message: Invalid event id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:3:13
|
||||
|
|
||||
3 | let _ = ruma_identifiers::event_id!("39hvsi03hlne:example.com");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
3 | let _ = ruma_identifiers::event_id!("acR1l0raoZnm60CBwAVgqbZqoO/mYU81xysh1u7XcJk");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid event id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
@ -19,62 +19,44 @@ error: proc macro panicked
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:4:13
|
||||
|
|
||||
4 | let _ = ruma_identifiers::event_id!("acR1l0raoZnm60CBwAVgqbZqoO/mYU81xysh1u7XcJk");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid event id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:5:13
|
||||
|
|
||||
5 | let _ = ruma_identifiers::room_alias_id!("alias:server.tld");
|
||||
4 | let _ = ruma_identifiers::room_alias_id!("alias:server.tld");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid room_alias_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:6:13
|
||||
--> $DIR/02-invalid-id-macros.rs:5:13
|
||||
|
|
||||
6 | let _ = ruma_identifiers::room_id!("1234567890:matrix.org");
|
||||
5 | let _ = ruma_identifiers::room_id!("1234567890:matrix.org");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid room_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:7:13
|
||||
--> $DIR/02-invalid-id-macros.rs:6:13
|
||||
|
|
||||
7 | let _ = ruma_identifiers::room_version_id!("");
|
||||
6 | let _ = ruma_identifiers::room_version_id!("");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid room_version_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:8:13
|
||||
--> $DIR/02-invalid-id-macros.rs:7:13
|
||||
|
|
||||
8 | let _ = ruma_identifiers::server_key_id!("ed219:Abc_1");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid server_key_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:9:13
|
||||
|
|
||||
9 | let _ = ruma_identifiers::server_name!("");
|
||||
7 | let _ = ruma_identifiers::server_name!("");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid server_name
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: proc macro panicked
|
||||
--> $DIR/02-invalid-id-macros.rs:10:13
|
||||
|
|
||||
10 | let _ = ruma_identifiers::user_id!("user:ruma.io");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid user_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
--> $DIR/02-invalid-id-macros.rs:8:13
|
||||
|
|
||||
8 | let _ = ruma_identifiers::user_id!("user:ruma.io");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: message: Invalid user_id
|
||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
Loading…
x
Reference in New Issue
Block a user