Почему библиотека клиента Java Службы управления ключами Google Cloud не поддерживает Android?
Документально подтверждено, что он не поддерживает Android. Зачем? Это только потому, что Android BouncyCastle
Реализация сокращена на функции и не поддерживает такие вещи, как KeyPairGenerator/ECDSA
(Алгоритм цифровой подписи эллиптической кривой)?
( Вот еще одна ссылка на это.)
Разве не достаточно просто использоватьSpongyCastle
вместо? Это только потому, что Google не поддерживает SpongyCastle
что его KMS
Java-клиент не поддерживает Android?
1 ответ
https://github.com/GoogleCloudPlatform/google-cloud-java/issues/1696 - наиболее авторитетное объяснение, которое я могу найти. Цитирую garrettjonesgoogle:
Мы не сделали какой-либо конкретной работы по обеспечению совместимости google-cloud-java с Android, и существует ряд известных проблем (как вы обнаружили). Первоклассная поддержка Android появится позже.
В настоящее время мы рекомендуем использовать собственный сервер (например, в App Engine), который выполняет вызовы в GCP, а ваше собственное приложение для Android выполняет вызовы на ваш сервер. Причина в том, что google-cloud-java поддерживает только аутентификацию 2LO (на основе учетной записи службы), а не аутентификацию 3LO (на основе учетной записи пользователя). Если вы делаете звонки из своего приложения для Android с аутентификацией 2LO, теоретически кто-то может украсть ваши учетные данные службы из вашего приложения и использовать их в своем собственном приложении. Это не проблема с 3LO, однако.