diff --git a/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt b/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt index 66fe13f..d9acca9 100644 --- a/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt +++ b/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt @@ -15,7 +15,13 @@ class SignatureBase() { val signatureBase = list.values.joinToString(postfix = "\n") { component -> "${component.componentIdentifier}: ${component.componentValue}\n" } - val signatureParams = listOfNotNull( + val signatureParams = "\"@signature-params\":" + generateSignatureParameterString(signatureParameter) + + return signatureBase + signatureParams + } + + fun generateSignatureParameterString(signatureParameter: SignatureParameter): String { + return listOfNotNull( list.keys.joinToString(" ", "(", ")"), signatureParameter.algorithm?.let { algorithm -> "alg=\"${algorithm.value}\"" }, signatureParameter.keyId?.let { keyId -> "keyid=\"$keyId\"" }, @@ -23,8 +29,6 @@ class SignatureBase() { signatureParameter.expires?.let { expires -> "expires=$expires" }, signatureParameter.nonce?.let { nonce -> "nonce=\"$nonce\"" }, signatureParameter.tag?.let { tag -> "tag=\"$tag\"" }, - ).joinToString(";", prefix = "\"@signature-params\": ") - - return signatureBase + signatureParams + ).joinToString(";") } }