Открыть боковую панель
Aurora OS
Kotlin Multiplatform
Libraries
ktor
Коммиты
d5d78721
Не подтверждена
Коммит
d5d78721
создал
Дек 01, 2022
по автору
Aleksei Tirman
Зафиксировано автором
GitHub
Дек 01, 2022
Просмотр файлов
KTOR-668 Add secure random providers for Windows (#3281)
владелец
931ccb34
Изменения
1
Скрыть пробелы
Построчно
Рядом
ktor-utils/jvm/src/io/ktor/util/Nonce.kt
Просмотр файла @
d5d78721
...
...
@@ -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_PROVIDER
S.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.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать