Size: a a a

2021 February 08

YS

Yury Shabalin in Android Guards
А есть запись общения?)
источник

YS

Yury Shabalin in Android Guards
Или ссылка не поменялась?)
источник

R

Rtem in Android Guards
Yury Shabalin
А есть запись общения?)
Ссылка менялась. Постом выше есть видос. Щас еще давай залью ссылки на подкаст-площадки
источник

NK

ID:0 in Android Guards
Сам выпуск, в котором обсуждали эту статью уже доступен на различных подкаст площадках.

Google Podcasts - https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy80YjMyODkxYy9wb2RjYXN0L3Jzcw==

Apple Podcasts - https://podcasts.apple.com/us/podcast/android-guards-community-podcast/id1552280775

Или поищите в своем плеере подкастов, возможно есть уже и там.
источник

YS

Yury Shabalin in Android Guards
Супер)
источник

YS

Yury Shabalin in Android Guards
спасибо!
источник

R

Rtem in Android Guards
источник

Д

Дима in Android Guards
Вопрос по biometrics. Почему, если я вызываю biometricsManager.authenticate(promptInfo) при этом не передавая никакой CryptoObject, но в AuthenticationResult мне приходит not null CryptoObject.
Хотя в доках написано что это мол тот, который я передал в authenticate. Выходит что в случае с null он системой генерится?
источник
2021 February 09

R

Rtem in Android Guards
Дима
Вопрос по biometrics. Почему, если я вызываю biometricsManager.authenticate(promptInfo) при этом не передавая никакой CryptoObject, но в AuthenticationResult мне приходит not null CryptoObject.
Хотя в доках написано что это мол тот, который я передал в authenticate. Выходит что в случае с null он системой генерится?
Да, туда должен приходить именно тот, который ты передал. А тебе прямо реальный объект приходит? оО
источник

Д

Дима in Android Guards
Rtem
Да, туда должен приходить именно тот, который ты передал. А тебе прямо реальный объект приходит? оО
Ага. Более того, я у него даже вызываю cryptoObject.cipher.doFinal(...), и он шифрует без выбрасывания исключений. Интересно откуда он берётся. Это Android 10. И на эмуляторе и на девайсе пробовал, одинаково.
источник

R

Rtem in Android Guards
Хм.. Может быть я что-то не знаю =) А скинь код, у нас одинаковый NDA 😄
источник

R

Rtem in Android Guards
В личку)
источник

Д

Дима in Android Guards
Ок, доберусь до него, скину!))
источник

Д

Дима in Android Guards
Я решил попробовать воспроизвести это прямо в твоей репо с примером имплементации: https://github.com/Fi5t/authenticate-me.
Поначалу реально приходил null, как я не обновлял либы или менял параметры authenticate.

Но я потерпел сокрушительный успех в воспроизведении, когда добавил всего одну строку:
источник

Д

Дима in Android Guards
если её добавить, то начинает сразу приходить не-null CryptoObject в onAuthenticationSucceeded, даже если мы его не слали в BiometricPrompt.authenticate()
источник

Д

Дима in Android Guards
ну и дальше ещё порылся в недрах Jetpack Biometric и нашёл окончательный кусок паззла :)
источник

R

Rtem in Android Guards
Дима
ну и дальше ещё порылся в недрах Jetpack Biometric и нашёл окончательный кусок паззла :)
Когда ты испольуешь Strong, там врубается 3й класс биометрической аутентификации. Для него cryptoobject является обязательным. Но я не знал, что они прямо его сами генерят
источник

Д

Дима in Android Guards
ага! дошло! И ещё вычитал что типа authenticate без параметров использует 2й класс, а authenticate с параметром cryptoObject врубает 3й класс. Но если мы явно указываем вот этот STRONG и при этом не передаём cryptoObject в authenticate, то он пытается фейкать cryptoObject, чтобы  тем самым врубить 3й класс, как мы и просили. Правда, почему-то хак этот он делает только для API < 30, а почему он не нужен на 30 и что будет на API 30 — неясно)
источник

R

Rtem in Android Guards
Дима
ага! дошло! И ещё вычитал что типа authenticate без параметров использует 2й класс, а authenticate с параметром cryptoObject врубает 3й класс. Но если мы явно указываем вот этот STRONG и при этом не передаём cryptoObject в authenticate, то он пытается фейкать cryptoObject, чтобы  тем самым врубить 3й класс, как мы и просили. Правда, почему-то хак этот он делает только для API < 30, а почему он не нужен на 30 и что будет на API 30 — неясно)
То, что он пытается фейкать это плохое решение, как по мне. Оно очень неявное и непонятно зачем это нужно если пользоваться этим все равно невозможно нормально. Лучше бы сделали контракт и выкидывали крэш при указании STRONG без явного CryptoObject.
источник

R

Rtem in Android Guards
Понабирают ото "разработчиков класса А", которые кроме деревьев на доске ничего вертеть не умеют )
источник