about summary refs log tree commit diff
path: root/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.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/Extensions/XMatrixAuthorizationSchemeExtensions.cs
parentUpdate deps (diff)
downloadLibMatrix-dc58a7878faf1ee567e0f1239d8c8869502fd03d.tar.xz
Federation work
Diffstat (limited to 'LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs')
-rw-r--r--LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs b/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs

index 792264a..b520b1c 100644 --- a/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs +++ b/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs
@@ -4,13 +4,22 @@ using LibMatrix.Abstractions; namespace LibMatrix.Federation.Extensions; public static class XMatrixAuthorizationSchemeExtensions { - public static HttpRequestMessage ToSignedHttpRequestMessage(this XMatrixAuthorizationScheme.XMatrixRequestSignature requestSignature, VersionedHomeserverPrivateKey privateKey) { + public static HttpRequestMessage ToSignedHttpRequestMessage(this XMatrixAuthorizationScheme.XMatrixRequestSignature requestSignature, + VersionedHomeserverPrivateKey privateKey) { var signature = requestSignature.Sign(privateKey); var requestMessage = new HttpRequestMessage { Method = new HttpMethod(requestSignature.Method), RequestUri = new Uri(requestSignature.Uri, UriKind.Relative) }; + var headerValue = new XMatrixAuthorizationScheme.XMatrixAuthorizationHeader() { + Origin = requestSignature.OriginServerName, + Key = privateKey.KeyId, + Destination = requestSignature.DestinationServerName, + Signature = signature.Signatures[requestSignature.OriginServerName][privateKey.KeyId] + }.ToHeaderValue(); + requestMessage.Headers.Add("Authorization", headerValue); + if (requestSignature.Content != null) { requestMessage.Content = JsonContent.Create(requestSignature.Content); }