Compare commits

..

2 Enmetoj

2 changed files with 9 additions and 8 deletions

View File

@ -1,5 +1,5 @@
(defsystem "activitypub-servist"
:depends-on ("alexandria" "clack" "dexador" "inferior-shell" "ironclad" "local-time" "purl" "str" "webtentacle" "yason")
:components ((:file "activitypub-servist")))
:components ((:file "src/activitypub-servist")))
;; (ql:quickload '(alexandria clack dexador inferior-shell ironclad local-time purl str webtentacle yason))

View File

@ -38,8 +38,8 @@
(".well-known/host-meta" . http-host-meta)))
(defvar *privkey* (alexandria:read-file-into-string #p"enc/privkey.pem"))
(defvar *pubkey* (alexandria:read-file-into-string #p"enc/pubkey.pem"))
(defvar *privkey* (alexandria:read-file-into-string #p"../enc/privkey.pem"))
(defvar *pubkey* (alexandria:read-file-into-string #p"../enc/pubkey.pem"))
@ -116,7 +116,7 @@ the plist in the docstring for its WEBTENTACLE:SERVER function."
type "application/activity+json")
(href ,profile
rel "self"
type "application/activity+json")
type "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"")
(template ,(str:concat "https://" (cdr userhost) "/ostatus_subscribe?acct={uri}")
rel "http://ostatus.org/schema/1.0/subscribe"))))))
@ -142,6 +142,7 @@ the plist in the docstring for its WEBTENTACLE:SERVER function."
(yason:with-output-to-string* ()
(yason:encode-alist
`(("@context" . ("https://www.w3.org/ns/activitystreams"
"https://w3id.org/security/v1"
"https://litepub.social/litepub/context.jsonld"))
("endpoints" . ,(alexandria:plist-hash-table (list "sharedInbox" "https://etc.xwx.moe/inbox")))
("url" . ,user-root)
@ -179,7 +180,7 @@ Mi ne estas knabino!!")
;; ————————————————————————————————————————
(defun note-json (from to text)
"The JSON of a user's actor."
(let* ((user-root (str:concat "https://etc.xwx.moe/u/" from))
(let* ((user-root from)
(yason:*symbol-encoder* 'yason:encode-symbol-as-lowercase))
(yason:with-output-to-string* ()
(yason:encode-alist
@ -473,11 +474,11 @@ returned values: An Ironclad private key, and an Ironclad public key."
(defun openssl-shell-sign-string (private-pem-string string)
"Use the OpenSSL binary on the host system to RSS-SHA256 sign a STRING with a
private key."
(alexandria:write-string-into-file private-pem-string #p"private.pem" :if-exists :overwrite)
(alexandria:write-string-into-file private-pem-string #p"/tmp/private.pem" :if-does-not-exist :create :if-exists :overwrite)
(apply #'str:concat
(inferior-shell:run/lines
`(inferior-shell:pipe
(printf ,string)
(openssl dgst -sha256 -sign private.pem -)
(openssl dgst -sha256 -sign /tmp/private.pem -)
(base64)))))