public fun new()

in ktor-client/ktor-client-ios/darwin/src/io/ktor/client/engine/ios/certificates/PinnedCertificate.kt [71:102]


        public fun new(pattern: String, pin: String): PinnedCertificate {
            require(
                pattern.startsWith("*.") && pattern.indexOf("*", 1) == -1 ||
                    pattern.startsWith("**.") && pattern.indexOf("*", 2) == -1 ||
                    pattern.indexOf("*") == -1
            ) {
                "Unexpected pattern: $pattern"
            }
            val canonicalPattern = pattern.toLowerCase()
            return when {
                pin.startsWith(HASH_ALGORITHM_SHA_1) -> {
                    val hash = pin.substring(HASH_ALGORITHM_SHA_1.length)
                    PinnedCertificate(
                        pattern = canonicalPattern,
                        hashAlgorithm = HASH_ALGORITHM_SHA_1,
                        hash = hash
                    )
                }
                pin.startsWith(HASH_ALGORITHM_SHA_256) -> {
                    val hash = pin.substring(HASH_ALGORITHM_SHA_256.length)
                    PinnedCertificate(
                        pattern = canonicalPattern,
                        hashAlgorithm = HASH_ALGORITHM_SHA_256,
                        hash = hash
                    )
                }
                else -> throw IllegalArgumentException(
                    "Pins must start with '${HASH_ALGORITHM_SHA_256}' or " +
                        "'${HASH_ALGORITHM_SHA_1}': $pin"
                )
            }
        }