Я использую API Google Directory через учетную запись службы, и я получил ключ при создании учетной записи службы.Как преобразовать содержимое pkcs12 в кодировке Base64 в java.security.PrivateKey?
Google поддерживает два различных способа использовать это как вынимая ключ как java.io.File
или java.security.PrivateKey
и для РоС, я использовал первый способ, который, создавая GoogleCredential
объект с помощью java.io.File
,
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(serviceAccountId)
.setServiceAccountScopes(Arrays.asList(DirectoryScopes.ADMIN_DIRECTORY_USER))
.setServiceAccountUser(serviceAccountUser)
.setServiceAccountPrivateKeyFromP12File(serviceAccountPrivateKeyFile)
.build();
Это работает, как ожидалось но в моем фактическом использовании я не могу полагаться на файловую систему, поэтому я не могу использовать первый метод. Поэтому я хотел реализовать фактический прецедент, используя второй способ, который использует java.security.PrivateKey
и будет выглядеть следующим, когда это будет сделано.
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(serviceAccountId)
.setServiceAccountScopes(Arrays.asList(DirectoryScopes.ADMIN_DIRECTORY_USER))
.setServiceAccountUser(serviceAccountUser)
.setServiceAccountPrivateKey(serviceAccountPrivateKey)
.build();
Im мой случай использования, мне нужно сделать это возможно загрузить секретный ключ и сохранить его в базе данных с кодировкой Base64. Теперь мне нужно передать это содержимое pkcs12
и создать объект Googlecredential
. Для этого я думаю, что второй вариант наиболее подходит, но не смог найти какой-либо пример для создания java.security.PrivateKey из кодированного содержимого base64 загруженного ключа.
Возможно ли создать java.security.PrivateKey
объект из базы64 закодированный контент pkcs12
ключ?
Или есть какой-либо другой способ для достижения моего удобства?
Заранее спасибо
DArray