about summary refs log tree commit diff
path: root/LibMatrix.Federation/Extensions/XMatrixAuthorizationSchemeExtensions.cs
blob: 792264a74d18413a7e0337e8451320b1f427dcdb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.Net.Http.Json;
using LibMatrix.Abstractions;

namespace LibMatrix.Federation.Extensions;

public static class XMatrixAuthorizationSchemeExtensions {
    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)
        };

        if (requestSignature.Content != null) {
            requestMessage.Content = JsonContent.Create(requestSignature.Content);
        }

        return requestMessage;
    }
}