summaryrefslogtreecommitdiff
path: root/post.rb
diff options
context:
space:
mode:
Diffstat (limited to 'post.rb')
-rw-r--r--post.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/post.rb b/post.rb
new file mode 100644
index 0000000..dc881b1
--- /dev/null
+++ b/post.rb
@@ -0,0 +1,12 @@
+require 'http'
+require 'openssl'
+
+document = File.read('create-hello-world.json')
+date = Time.now.utc.httpdate
+keypair = OpenSSL::PKey::RSA.new(File.read('private.pem'))
+signed_string = "(request-target): post /inbox\nhost: mastodon.social\ndate: #{date}"
+signature = Base64.strict_encode64(keypair.sign(OpenSSL::Digest::SHA256.new, signed_string))
+header = 'keyId="https://my-example.com/actor",headers="(request-target) host date",signature="' + signature + '"'
+
+HTTP.headers({ 'Host': 'mastodon.social', 'Date': date, 'Signature': header })
+ .post('https://mastodon.social/inbox', body: document)