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