From 42a3f6c880a65a1043df41b196a23c791abafd3a Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Tue, 9 Apr 2024 11:48:53 -0400 Subject: [PATCH] Use the right public key representation for push subscriptions --- .../Preferences/Notifications/PushInstanceSettingsView.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Tusker/Screens/Preferences/Notifications/PushInstanceSettingsView.swift b/Tusker/Screens/Preferences/Notifications/PushInstanceSettingsView.swift index 6eddea60..cc0aa6e5 100644 --- a/Tusker/Screens/Preferences/Notifications/PushInstanceSettingsView.swift +++ b/Tusker/Screens/Preferences/Notifications/PushInstanceSettingsView.swift @@ -67,7 +67,10 @@ struct PushInstanceSettingsView: View { let subscription = try await PushManager.shared.createSubscription(account: account) let req = Pachyderm.PushSubscription.create( endpoint: pushProxyRegistration.endpoint, - publicKey: subscription.secretKey.publicKey.rawRepresentation, + // mastodon docs just say "Base64 encoded string of a public key from a ECDH keypair using the prime256v1 curve." + // other apps use SecKeyCopyExternalRepresentation which is documented to use X9.63 for elliptic curve keys + // and that seems to work + publicKey: subscription.secretKey.publicKey.x963Representation, authSecret: subscription.authSecret, alerts: .init(subscription.alerts), policy: .init(subscription.policy)