about summary refs log tree commit diff
path: root/LibMatrix.Federation/XMatrixAuthorizationScheme.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-12-05 13:49:02 +0100
committerRory& <root@rory.gay>2025-12-05 13:49:02 +0100
commitdc58a7878faf1ee567e0f1239d8c8869502fd03d (patch)
tree0c82a8fbabd4e9f3d6df498e9c4753191ab11b1e /LibMatrix.Federation/XMatrixAuthorizationScheme.cs
parentUpdate deps (diff)
downloadLibMatrix-dc58a7878faf1ee567e0f1239d8c8869502fd03d.tar.xz
Federation work
Diffstat (limited to 'LibMatrix.Federation/XMatrixAuthorizationScheme.cs')
-rw-r--r--LibMatrix.Federation/XMatrixAuthorizationScheme.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/LibMatrix.Federation/XMatrixAuthorizationScheme.cs b/LibMatrix.Federation/XMatrixAuthorizationScheme.cs

index 45899b8..392cd93 100644 --- a/LibMatrix.Federation/XMatrixAuthorizationScheme.cs +++ b/LibMatrix.Federation/XMatrixAuthorizationScheme.cs
@@ -2,6 +2,8 @@ using System.Net.Http.Headers; using System.Text.Json.Nodes; using System.Text.Json.Serialization; using ArcaneLibs.Extensions; +using LibMatrix.Abstractions; +using LibMatrix.Responses.Federation; using Microsoft.Extensions.Primitives; namespace LibMatrix.Federation; @@ -48,6 +50,14 @@ public class XMatrixAuthorizationScheme { }; } + public static XMatrixAuthorizationHeader FromSignedObject(SignedObject<XMatrixRequestSignature> signedObj, VersionedHomeserverPrivateKey currentKey) => + new() { + Origin = signedObj.TypedContent.OriginServerName, + Destination = signedObj.TypedContent.DestinationServerName, + Signature = signedObj.Signatures[signedObj.TypedContent.OriginServerName][currentKey.KeyId], + Key = currentKey.KeyId + }; + public string ToHeaderValue() => $"{Scheme} origin=\"{Origin}\", destination=\"{Destination}\", key=\"{Key}\", sig=\"{Signature}\""; }