Не подтверждена Коммит d5d78721 создал по автору Aleksei Tirman's avatar Aleksei Tirman Зафиксировано автором GitHub
Просмотр файлов

KTOR-668 Add secure random providers for Windows (#3281)

владелец 931ccb34
......@@ -11,8 +11,11 @@ import java.security.*
private const val SHA1PRNG = "SHA1PRNG"
private val SECURE_RANDOM_PROVIDER_NAME: String =
System.getProperty("io.ktor.random.secure.random.provider") ?: "NativePRNGNonBlocking"
private val SECURE_RANDOM_PROVIDERS: List<String> = listOf(
"NativePRNGNonBlocking",
"WINDOWS-PRNG",
"DRBG"
)
private const val SECURE_RESEED_PERIOD = 30_000
......@@ -91,11 +94,16 @@ internal fun ensureNonceGeneratorRunning() {
}
private fun lookupSecureRandom(): SecureRandom {
val secure = getInstanceOrNull(SECURE_RANDOM_PROVIDER_NAME)
if (secure != null) return secure
System.getProperty("io.ktor.random.secure.random.provider")?.let { name ->
getInstanceOrNull(name)?.let { return it }
}
for (name in SECURE_RANDOM_PROVIDERS) {
getInstanceOrNull(name)?.let { return it }
}
LoggerFactory.getLogger("io.ktor.util.random")
.warn("$SECURE_RANDOM_PROVIDER_NAME is not found, fallback to default")
.warn("None of the ${SECURE_RANDOM_PROVIDERS.joinToString(separator = ", ")} found, fallback to default")
return getInstanceOrNull() ?: error("No SecureRandom implementation found")
}
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать