aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--deliver.rb14
-rw-r--r--message14
-rw-r--r--private.pem27
3 files changed, 55 insertions, 0 deletions
diff --git a/deliver.rb b/deliver.rb
new file mode 100644
index 0000000..3a46051
--- /dev/null
+++ b/deliver.rb
@@ -0,0 +1,14 @@
+# https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/
+
+require 'http'
+require 'openssl'
+
+document = File.read('message')
+date = Time.now.utc.httpdate
+keypair = OpenSSL::PKey::RSA.new(File.read('private.pem'))
+signed_string = "(request-target): post /inbox\nhost: git.exozy.me\ndate: #{date}"
+signature = Base64.strict_encode64(keypair.sign(OpenSSL::Digest::SHA256.new, signed_string))
+header = 'keyId="https://test.exozy.me/api/v1/activitypub/user/test#main-key",headers="(request-target) host date",signature="' + signature + '"'
+
+HTTP.headers({ 'Host': 'mastodon.social', 'Date': date, 'Signature': header })
+ .post('https://git.exozy.me/api/v1/activitypub/user/Ta180m/inbox', body: document)
diff --git a/message b/message
new file mode 100644
index 0000000..773c43e
--- /dev/null
+++ b/message
@@ -0,0 +1,14 @@
+{
+ "@context": "https://www.w3.org/ns/activitystreams",
+ "type": "Note",
+ "attributedTo": "https://test.exozy.me/api/v1/activitypub/user/test",
+ "context": "https://git.exozy.me/Ta180m/Hello-world/issues/2",
+ "inReplyTo": "https://git.exozy.me/Ta180m/Hello-world/issues/2",
+ "mediaType": "text/html",
+ "content": "<p>Hello from test.exozy.me!</p>",
+ "source": {
+ "mediaType": "text/markdown; variant=Commonmark",
+ "content": "Hello from test.exozy.me!"
+ },
+ "published": "2019-11-06T20:49:05.604488Z"
+}
diff --git a/private.pem b/private.pem
new file mode 100644
index 0000000..578b7db
--- /dev/null
+++ b/private.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAsPQH/jssyJryAX9I065SZE69e5OIBW3q2nFjMBDlC+WStN2P
+uJqFznsEcEMq9Ge3pTQ3Rqj2SumyqngwYhN63SpFjeplgvL20ygNfd5c4sVwZicn
+aLAsjwcWS/7hF6ENW9Vhwk5yBYel7efxPaNY98XhPLVDYeX8ZfB8PKExC6V4h8d1
+iQqMnSw+/twy1/W69x3A4sZlsIisqmiY18haxyR4BblQuB0uwnlR6wpJFHkqX5Ci
+Q4/knRnxj0pDvaLL0fscBWnO7dP+9+HrHu2NM7GfZbRMQhjuoC6VQbg7iowbPdA0
+OEHR6rGpSVaBCHd44Y2Tbd06rAArVZinek9hAwIDAQABAoIBADY8ZaLHkl9eFmTd
+FX5EBN7Xv3375wn6+avAay1VUE7IK6Ih8qYbPn3d+KtL+wN0MraA/Zw7t1mYrXlQ
+Y0v8OoFFLpJj0H9FZt+rfA8jM4cSCvRUdeDBdrbT7kKWuXkblNOb4F3E22/Udsgn
+eipxQZiX3wRTbna4HhdEkV+n7DdsGnOis11u9dXXP5w6oN6biazO81chvR9iHd9l
+4eUFaPaZLH9PvOwx2kFmwuBRdkV8LNjWWldE21yvXAY4ZNG4zlm2eryuzY6XY54J
+ACaggLYn/p7nqHcR51Xy7S3l8TXV2s6hzVHZh83cta3FPu10hVsL2aHYRMjDgZhz
+YQtnW+ECgYEAxvOasW0zz1kpp+8uKkV5j3jwhpKo7uwCi+zIXj10iINFgNH0ZnkV
+z0IbFtr+EsWy+ktc1vUsaSwACVUUVLbWB7jWIlSWM5cCa3HS5t//HEJkPN7uuEwi
+o+/fIGHYWp2cWCfVkvJYFts4UU0AhZq3dwjMgqSUmPWH78eX6OB1PxECgYEA47GZ
+oU04SGNIwYHeOCuOBXvzfjcFIZ6k4JP604ar4u9VpErsTjPhUyYSmdfNOJOw6bQK
+xGQGvqZTdxytG4q1+lHY3zFV+whz+kCOAELzSuREsiffSrIeOmCnTZxaL9E0HZ30
+qoezzNWH2lS4aYhkqBee1niWH5PgkVoEppsSBtMCgYAHimwulWkFTufZSaOCTqfQ
+3FChiSWGCMP/8bWWfNXR5sfXnh2ZVLWS6XqFXz+KDpw+CGU4cIqCYfyOXf8rRtLN
+8B+NpY8b3XlmASZxQcQ1mf6aoAiES750YD8gxxSgOqEWZkweCbl1BFIaIsUGS1rw
+1BCMUxiew4+ncvU7CmbnQQKBgDnP3jIWaTP4AYEgeEvKw0ShNDHXxnXC0hozeHw8
+tWfpXNVaMKWqhouWHyLwqCq1VTYBgLpcq1m84XRc05cqoQntviLtY+dZPhlMSsHG
+Pf/F9atGdGuCzioEYHZUPJHnjFP4xyaFTiG0FcpZuHkTKHuFg87wzy01Xs+JC6VB
+ulIBAoGBALwTuLDSeSwU3xXo2xpG5zOygx7Gqzo94j1lvN/EjNPaqD+GKQuFPTOz
+CJ/sF0oCYwmT8q0mDIONX/MVvYy7H6SeK6zhogfEUPdIElLvoUoA/Z6tEtx/BHcF
+9XP+oR1/6XEzxLoCK8j0RgDXtvJNzctT4iITnzFBmLShnOFv0HQX
+-----END RSA PRIVATE KEY-----