@@ -5,8 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper
55import com.google.protobuf.ByteString
66import io.grpc.Status
77import io.grpc.StatusRuntimeException
8- import org.bouncycastle.asn1.ASN1Primitive
9- import org.bouncycastle.asn1.x509.KeyUsage
108import org.cloudfoundry.credhub.ErrorMessages
119import org.cloudfoundry.credhub.auth.UserContextHolder
1210import org.cloudfoundry.credhub.constants.CredentialWriteMode.CONVERGE
@@ -31,15 +29,6 @@ import org.cloudfoundry.credhub.remote.grpc.SetResponse
3129import org.cloudfoundry.credhub.requests.BaseCredentialGenerateRequest
3230import org.cloudfoundry.credhub.requests.BaseCredentialSetRequest
3331import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters
34- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.CRL_SIGN
35- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.DATA_ENCIPHERMENT
36- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.DECIPHER_ONLY
37- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.DIGITAL_SIGNATURE
38- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.ENCIPHER_ONLY
39- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.KEY_AGREEMENT
40- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.KEY_CERT_SIGN
41- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.KEY_ENCIPHERMENT
42- import org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.Companion.NON_REPUDIATION
4332import org.cloudfoundry.credhub.requests.GenerationParameters
4433import org.cloudfoundry.credhub.requests.RsaGenerationParameters
4534import org.cloudfoundry.credhub.requests.SshGenerationParameters
@@ -50,7 +39,6 @@ import org.cloudfoundry.credhub.views.FindCredentialResult
5039import org.springframework.context.annotation.Profile
5140import org.springframework.stereotype.Service
5241import java.time.Instant
53- import java.util.Base64
5442import java.util.UUID
5543
5644@Service
@@ -626,13 +614,7 @@ class RemoteCredentialsHandler(
626614 generationRequestParameters.isCa = jsonNode[" is_ca" ].booleanValue()
627615 }
628616 if (jsonNode.hasNonNull(" key_usage" )) {
629- val keyUsage =
630- if (jsonNode[" key_usage" ].isObject) {
631- getKeyUsageFromRequest(jsonNode[" key_usage" ])
632- } else {
633- arrayOf(jsonNode[" key_usage" ].textValue())
634- }
635- generationRequestParameters.keyUsage = keyUsage
617+ generationRequestParameters.keyUsage = arrayOf(jsonNode[" key_usage" ].textValue())
636618 }
637619 if (jsonNode.hasNonNull(" extended_key_usage" )) {
638620 generationRequestParameters.extendedKeyUsage = arrayOf(jsonNode[" extended_key_usage" ].textValue())
@@ -698,31 +680,4 @@ class RemoteCredentialsHandler(
698680 }
699681 return RuntimeException (" Request failed with status code: ${e.status.code} " )
700682 }
701-
702- private fun getKeyUsageFromRequest (jsonNode : JsonNode ): Array <String > {
703- try {
704- val encodedNode = jsonNode.get(" encoded" )
705- if (encodedNode == null || encodedNode.isNull) {
706- // "encoded" field missing or null
707- return emptyArray()
708- }
709- val encodedBase64 = encodedNode.asText()
710- val encodedBytes = Base64 .getDecoder().decode(encodedBase64)
711- val asn1 = ASN1Primitive .fromByteArray(encodedBytes)
712- val keyUsage = KeyUsage .getInstance(asn1)
713- val usages = mutableListOf<String >()
714- if (keyUsage.hasUsages(KeyUsage .digitalSignature)) usages + = DIGITAL_SIGNATURE
715- if (keyUsage.hasUsages(KeyUsage .nonRepudiation)) usages + = NON_REPUDIATION
716- if (keyUsage.hasUsages(KeyUsage .keyEncipherment)) usages + = KEY_ENCIPHERMENT
717- if (keyUsage.hasUsages(KeyUsage .dataEncipherment)) usages + = DATA_ENCIPHERMENT
718- if (keyUsage.hasUsages(KeyUsage .keyAgreement)) usages + = KEY_AGREEMENT
719- if (keyUsage.hasUsages(KeyUsage .keyCertSign)) usages + = KEY_CERT_SIGN
720- if (keyUsage.hasUsages(KeyUsage .cRLSign)) usages + = CRL_SIGN
721- if (keyUsage.hasUsages(KeyUsage .encipherOnly)) usages + = ENCIPHER_ONLY
722- if (keyUsage.hasUsages(KeyUsage .decipherOnly)) usages + = DECIPHER_ONLY
723- return usages.toTypedArray()
724- } catch (e: Exception ) {
725- return emptyArray()
726- }
727- }
728683}
0 commit comments