From f937901e54b7106388758a45e493c28733ed1caf Mon Sep 17 00:00:00 2001 From: Glenn Gore Date: Sun, 15 Sep 2024 21:05:16 +0800 Subject: [PATCH] * clarity: Added a note regarding serviceEndpoint Id's being a URI vs a IRI (SSI Crate limitation) * This changes serviceEndpoint.id from `#service` to `did:peer:#service` so that it passes Uri checks * fix: If more than a single service was specified, then this would crash due to `#service-n` not being a valid URI * Changed so that all serviceEndpoint Id's are `did:peer:#service` as the starting string * update: `tokio-tungstenite` crate updated from 0.23 to 0.24 --- CHANGELOG.md | 8 +++ Cargo.lock | 68 +++++++++---------- Cargo.toml | 4 +- .../did-peer/CHANGELOG | 2 + .../did-peer/{LICENCE-APACHE => LICENCE} | 0 .../did-peer/README.md | 5 ++ .../did-peer/src/lib.rs | 8 ++- 7 files changed, 58 insertions(+), 37 deletions(-) rename affinidi-did-resolver-methods/did-peer/{LICENCE-APACHE => LICENCE} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index f92c03d..6076e5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## Changelog history +### 15th September 2024 (release 0.1.9) + +* clarity: Added a note regarding serviceEndpoint Id's being a URI vs a IRI (SSI Crate limitation) + * This changes serviceEndpoint.id from `#service` to `did:peer:#service` so that it passes Uri checks +* fix: If more than a single service was specified, then this would crash due to `#service-n` not being a valid URI + * Changed so that all serviceEndpoint Id's are `did:peer:#service` as the starting string +* update: `tokio-tungstenite` crate updated from 0.23 to 0.24 + ### 9th September 2024 (release 0.1.5) * Renaming crate names diff --git a/Cargo.lock b/Cargo.lock index e6ff2cc..b3410b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ [[package]] name = "affinidi-did-resolver-cache-sdk" -version = "0.1.8" +version = "0.1.9" dependencies = [ "blake2", "clap 4.5.17", @@ -89,14 +89,14 @@ dependencies = [ "ssi", "thiserror", "tokio", - "tokio-tungstenite 0.23.1", + "tokio-tungstenite 0.24.0", "tracing", "tracing-subscriber", ] [[package]] name = "affinidi-did-resolver-cache-server" -version = "0.1.8" +version = "0.1.9" dependencies = [ "affinidi-did-resolver-cache-sdk", "axum", @@ -121,7 +121,7 @@ dependencies = [ [[package]] name = "affinidi-did-resolver-methods" -version = "0.1.8" +version = "0.1.9" [[package]] name = "ahash" @@ -236,9 +236,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "arc-swap" @@ -248,9 +248,9 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -473,9 +473,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.21.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5055edc4a9a1b2a917a818258cdfb86a535947feebd9981adc99667a062c6f85" +checksum = "234314bd569802ec87011d653d6815c6d7b9ffb969e9fee5b8b20ef860e8dce9" dependencies = [ "bindgen", "cc", @@ -559,7 +559,7 @@ dependencies = [ "hyper 1.4.1", "hyper-util", "pin-project-lite", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pemfile 2.1.3", "rustls-pki-types", "tokio", @@ -1666,7 +1666,7 @@ dependencies = [ [[package]] name = "did-peer" -version = "0.1.8" +version = "0.1.9" dependencies = [ "askar-crypto", "base64 0.22.1", @@ -2563,7 +2563,7 @@ dependencies = [ "http 1.1.0", "hyper 1.4.1", "hyper-util", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -2601,9 +2601,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" dependencies = [ "bytes", "futures-channel", @@ -3600,9 +3600,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" [[package]] name = "opaque-debug" @@ -4166,9 +4166,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" dependencies = [ "bitflags 2.6.0", ] @@ -4389,9 +4389,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.36" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f55e80d50763938498dd5ebb18647174e0c76dc38c5505294bb224624f30f36" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -4414,14 +4414,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "aws-lc-rs", "once_cell", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -4463,9 +4463,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "aws-lc-rs", "ring", @@ -5976,7 +5976,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", ] @@ -5995,16 +5995,16 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" dependencies = [ "futures-util", "log", "native-tls", "tokio", "tokio-native-tls", - "tungstenite 0.23.0", + "tungstenite 0.24.0", ] [[package]] @@ -6212,9 +6212,9 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" dependencies = [ "byteorder", "bytes", @@ -6255,9 +6255,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" diff --git a/Cargo.toml b/Cargo.toml index 58af78f..317380b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.1.8" +version = "0.1.9" edition = "2021" authors = ["Glenn Gore "] description = "Affinidi DID Resolver" @@ -47,7 +47,7 @@ tower-http = { version = "0.5", features = ["cors", "trace"] } # Cache Client (SDK) futures-util = "0.3" -tokio-tungstenite = { version = "0.23", features = ["native-tls"] } +tokio-tungstenite = { version = "0.24", features = ["native-tls"] } rayon = "1.10" num-format = "0.4.4" clap = { version = "4.5", features = ["derive"] } diff --git a/affinidi-did-resolver-methods/did-peer/CHANGELOG b/affinidi-did-resolver-methods/did-peer/CHANGELOG index 5e42e55..1c8265f 100644 --- a/affinidi-did-resolver-methods/did-peer/CHANGELOG +++ b/affinidi-did-resolver-methods/did-peer/CHANGELOG @@ -1,5 +1,7 @@ # Affinidi DID-Peer ChangeLog +## See affinidi-did_resolver CHANGELOG + ## Release 0.4.1 - 5th September 2024 - Added Purpose Codes for did:peer:2 diff --git a/affinidi-did-resolver-methods/did-peer/LICENCE-APACHE b/affinidi-did-resolver-methods/did-peer/LICENCE similarity index 100% rename from affinidi-did-resolver-methods/did-peer/LICENCE-APACHE rename to affinidi-did-resolver-methods/did-peer/LICENCE diff --git a/affinidi-did-resolver-methods/did-peer/README.md b/affinidi-did-resolver-methods/did-peer/README.md index 2879e36..f5faf23 100644 --- a/affinidi-did-resolver-methods/did-peer/README.md +++ b/affinidi-did-resolver-methods/did-peer/README.md @@ -2,6 +2,11 @@ Only supports did:peer numalgo 0,2 (did:peer:0, did:peer:2) +NOTE: + serviceEndpoint.id should be an IRI (e.g. `#service`). + Due to a limitation of the SSI Crate Document type, we must use a URI. + Instead of `#service` we resolve to `did:peer:#service` + ## Build a WebAssembly package **Prerequisite:** [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) diff --git a/affinidi-did-resolver-methods/did-peer/src/lib.rs b/affinidi-did-resolver-methods/did-peer/src/lib.rs index dae66ce..05deb70 100644 --- a/affinidi-did-resolver-methods/did-peer/src/lib.rs +++ b/affinidi-did-resolver-methods/did-peer/src/lib.rs @@ -148,6 +148,8 @@ impl From for Service { let id = if let Some(id) = service.id { UriBuf::new(id.into()).unwrap() } else { + // TODO: Should be #service + // SSI Crate expects a URI for the service ID UriBuf::new("did:peer:#service".into()).unwrap() }; @@ -454,8 +456,12 @@ impl DIDMethodResolver for DIDPeer { let mut service: Service = service.into(); if service_count > 0 { + // TODO: Should be #service-1, #service-2, etc + // SSI Crate expects a URI for the service ID service.id = UriBuf::new( - ["#service-", &service_count.to_string()].concat().into(), + ["did:peer:#service-", &service_count.to_string()] + .concat() + .into(), ) .unwrap(); }