From d8d94d0aec63be55b01f181241f3f48fe8563878 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Mon, 29 Dec 2025 23:28:49 +0800 Subject: [PATCH] :bug: Fix signature in AP again... --- .../ActivityPub/ActivityPubDeliveryService.cs | 2 +- DysonNetwork.Sphere/ActivityPub/ActivityPubKeyService.cs | 6 +++--- .../ActivityPub/ActivityPubSignatureService.cs | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/DysonNetwork.Sphere/ActivityPub/ActivityPubDeliveryService.cs b/DysonNetwork.Sphere/ActivityPub/ActivityPubDeliveryService.cs index ed7650a..d761658 100644 --- a/DysonNetwork.Sphere/ActivityPub/ActivityPubDeliveryService.cs +++ b/DysonNetwork.Sphere/ActivityPub/ActivityPubDeliveryService.cs @@ -234,7 +234,7 @@ public class ActivityPubDeliveryService( var request = new HttpRequestMessage(HttpMethod.Post, inboxUrl); request.Content = new StringContent(json, Encoding.UTF8, "application/activity+json"); - request.Headers.Date = DateTimeOffset.UtcNow; + request.Headers.Date = DateTimeOffset.UtcNow.ToString("r"); var bodyBytes = Encoding.UTF8.GetBytes(json); using var sha256 = SHA256.Create(); diff --git a/DysonNetwork.Sphere/ActivityPub/ActivityPubKeyService.cs b/DysonNetwork.Sphere/ActivityPub/ActivityPubKeyService.cs index f41d5a2..4a7f131 100644 --- a/DysonNetwork.Sphere/ActivityPub/ActivityPubKeyService.cs +++ b/DysonNetwork.Sphere/ActivityPub/ActivityPubKeyService.cs @@ -55,9 +55,9 @@ public class ActivityPubKeyService(ILogger logger) private static string ConvertToPem(byte[] keyData, string keyType) { var sb = new StringBuilder(); - sb.AppendLine($"-----BEGIN {keyType}-----"); - sb.AppendLine(Convert.ToBase64String(keyData)); - sb.AppendLine($"-----END {keyType}-----"); + sb.Append($"-----BEGIN {keyType}-----\n"); + sb.Append(Convert.ToBase64String(keyData) + "\n"); + sb.Append($"-----END {keyType}-----"); return sb.ToString(); } diff --git a/DysonNetwork.Sphere/ActivityPub/ActivityPubSignatureService.cs b/DysonNetwork.Sphere/ActivityPub/ActivityPubSignatureService.cs index 78c8da5..ba18b42 100644 --- a/DysonNetwork.Sphere/ActivityPub/ActivityPubSignatureService.cs +++ b/DysonNetwork.Sphere/ActivityPub/ActivityPubSignatureService.cs @@ -15,6 +15,7 @@ public class ActivityPubSignatureService( IConfiguration configuration ) { + private const string RequestTarget = "(request-target)"; private string Domain => configuration["ActivityPub:Domain"] ?? "localhost"; public bool VerifyIncomingRequest(HttpContext context, out string? actorUri) @@ -209,7 +210,7 @@ public class ActivityPubSignatureService( foreach (var header in headers) { if (sb.Length > 0) - sb.AppendLine(); + sb.Append("\n"); sb.Append(header.ToLower()); sb.Append(": "); @@ -243,7 +244,7 @@ public class ActivityPubSignatureService( foreach (var header in headers) { if (sb.Length > 0) - sb.AppendLine(); + sb.Append("\n"); sb.Append(header.ToLower()); sb.Append(": ");