feat: 署名を生成できるように
This commit is contained in:
parent
c8e437fcb1
commit
cff083af1b
|
@ -0,0 +1,14 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.PrivateKey
|
||||||
|
import java.security.Signature
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class EcdsaP256Sha256SignatureSigner : SignatureSigner {
|
||||||
|
override fun sign(byteArray: ByteArray, privateKey: PrivateKey): String {
|
||||||
|
val signature = Signature.getInstance("SHA256withECDSA")
|
||||||
|
signature.initSign(privateKey)
|
||||||
|
signature.update(byteArray)
|
||||||
|
return Base64.getEncoder().encodeToString(signature.sign())
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import dev.usbharu.httpsignature.common.HttpRequest
|
||||||
|
import java.security.PrivateKey
|
||||||
|
|
||||||
|
class HttpMessageSignatureSigner {
|
||||||
|
fun sign(httpRequest: HttpRequest,privateKey: PrivateKey)
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.PrivateKey
|
||||||
|
|
||||||
|
data class Material(
|
||||||
|
val signatureBase: SignatureBase,
|
||||||
|
val privateKey: PrivateKey,
|
||||||
|
val label: String
|
||||||
|
)
|
|
@ -0,0 +1,7 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.spec.MGF1ParameterSpec
|
||||||
|
import java.security.spec.PSSParameterSpec
|
||||||
|
|
||||||
|
class RsaPssSha512SignatureSigner(salt: Int = 64) :
|
||||||
|
RsaPssSignatureSigner(PSSParameterSpec("SHA-512", "MGF1", MGF1ParameterSpec.SHA512, salt, 1))
|
|
@ -0,0 +1,16 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.PrivateKey
|
||||||
|
import java.security.Signature
|
||||||
|
import java.security.spec.PSSParameterSpec
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
open class RsaPssSignatureSigner(private val pssParameterSpec: PSSParameterSpec) : SignatureSigner {
|
||||||
|
override fun sign(byteArray: ByteArray, privateKey: PrivateKey): String {
|
||||||
|
val signature = Signature.getInstance("RSASSA-PSS")
|
||||||
|
signature.setParameter(pssParameterSpec)
|
||||||
|
signature.initSign(privateKey)
|
||||||
|
signature.update(byteArray)
|
||||||
|
return Base64.getEncoder().encodeToString(signature.sign())
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.PrivateKey
|
||||||
|
import java.security.Signature
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RSASSA-PKCS1-v1.5
|
||||||
|
*/
|
||||||
|
|
||||||
|
class RsaV1_5Sha256SignatureSigner : SignatureSigner {
|
||||||
|
override fun sign(byteArray: ByteArray, privateKey: PrivateKey): String {
|
||||||
|
val signature = Signature.getInstance("SHA256withRSA")
|
||||||
|
signature.initSign(privateKey)
|
||||||
|
signature.update(byteArray)
|
||||||
|
val bytes = signature.sign()
|
||||||
|
|
||||||
|
return Base64.getEncoder().encodeToString(bytes)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package dev.usbharu.httpsignature.v2
|
||||||
|
|
||||||
|
import java.security.PrivateKey
|
||||||
|
|
||||||
|
interface SignatureSigner {
|
||||||
|
fun sign(byteArray: ByteArray,privateKey: PrivateKey): String
|
||||||
|
}
|
Loading…
Reference in New Issue