fix(web/panettone): Don't add extra padding when already padded
Because of math being upsetting, we were adding 4 padding characters to an already-properly-padded base64 string, which broke tazjin. This also breaks this function out into panettone.util, and adds a test for it. Change-Id: I7bc8a440ad9d0917272dd9f2e341081ea14693da Reviewed-on: https://cl.tvl.fyi/c/depot/+/5782 Autosubmit: grfn <grfn@gws.fyi> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
b39ca017c0
commit
1fbed8e317
5 changed files with 20 additions and 8 deletions
|
|
@ -5,3 +5,11 @@
|
|||
(when-let ((str (uiop:getenvp var)))
|
||||
(try-parse-integer str))
|
||||
default))
|
||||
|
||||
(defun add-missing-base64-padding (s)
|
||||
"Add any missing padding characters to the (un-padded) base64 string `S', such
|
||||
that it can be successfully decoded by the `BASE64' package"
|
||||
;; I apologize
|
||||
(let* ((needed-padding (mod (length s) 4))
|
||||
(pad-chars (if (zerop needed-padding) 0 (- 4 needed-padding))))
|
||||
(format nil "~A~v@{~A~:*~}" s pad-chars "=")))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue