in google-kms-signer-cli/src/main/kotlin/org/jetbrains/zip/signer/GoogleCloudSignatureProvider.kt [25:39]
override fun sign(dataToSign: ByteArray): ByteArray {
KeyManagementServiceClient.create().use { client ->
val keyName = CryptoKeyVersionName.of(projectId, locationId, keyRingId, keyId, keyVersion)
val digestByteString = ByteString.copyFrom(digester.digest(dataToSign))
val digest = Digest.newBuilder().apply {
when (signatureAlgorithm.contentDigestAlgorithm) {
ContentDigestAlgorithm.CHUNKED_SHA256 -> this.sha256 = digestByteString
ContentDigestAlgorithm.CHUNKED_SHA384 -> this.sha384 = digestByteString
ContentDigestAlgorithm.CHUNKED_SHA512 -> this.sha512 = digestByteString
}
}.build()
val response = client.asymmetricSign(keyName, digest)
return response.signature.toByteArray()
}
}