투케이2K

209. (kotlin/코틀린) [유틸 파일] certificate_Base64_To_X509 : base64 문자열을 X509Certificate 인증서로 변경 실시 본문

Kotlin

209. (kotlin/코틀린) [유틸 파일] certificate_Base64_To_X509 : base64 문자열을 X509Certificate 인증서로 변경 실시

투케이2K 2023. 1. 29. 13:51

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // ----------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] certificate_Base64_To_X509 : base64 문자열을 X509 인증서로 변경
        // ----------------------------------------------------------------------------------
        fun certificate_Base64_To_X509(data: String): X509Certificate? {

            /**
             * // -----------------------------------------
             * [certificate_Base64_To_X509 메소드 설명]
             * // -----------------------------------------
             * 1. certificate_Base64_To_X509 : base64 문자열을 X509 인증서로 변경
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             * C_App.certificate_Base64_To_X509(base64 String)
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 : X509Certificate
             * // -----------------------------------------
             */


            // [리턴 값 선언]
            var returnData: X509Certificate? = null


            // [로직 처리 실시]
            try {
                if (C_Util.stringNotNull(data) === true && data.contains("BEGIN CERTIFICATE") == true && data.contains("END CERTIFICATE") == true) {

                    // [base64 데이터를 다시 인증서로 변경]
                    var certData = data
                    certData = certData.replace("-----BEGIN CERTIFICATE-----".toRegex(), "")
                    certData = certData.replace("-----END CERTIFICATE-----".toRegex(), "")
                    certData = certData.replace(" ".toRegex(), "")

                    val encodedCert = Base64.decode(certData, Base64.DEFAULT)
                    val inputStream = ByteArrayInputStream(encodedCert)
                    val certFactory = CertificateFactory.getInstance("X.509")

                    // [리턴 변수에 삽입]
                    returnData = certFactory.generateCertificate(inputStream) as X509Certificate

                    // [스트림 닫기]
                    inputStream.close()
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            ///*
            S_Log.ltd("================================================")
            S_Log.cnt("[" + ACTIVITY_NAME + " >> " + C_Util.getNowMethod(1) + " :: base64 문자열을 X509 인증서로 변경]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[INPUT :: $data]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("[RETURN :: " + returnData.toString() + "]")
            S_Log.lbd("================================================")
            // */


            // [리턴 반환 실시]
            return returnData
        }
 

[결과 출력]

 

 

반응형
Comments