Java Keystore - не может загрузить хранилище ключей, когда varbinary хранится как 0x - PullRequest
1 голос
/ 11 июля 2019

У меня есть хранилище ключей JKS, хранящееся в базе данных сервера Microsoft SQL.Он сохраняется как varbinary и сохраняется в формате (например) 0x539A" - a very long varbinary. The data was loaded using OPENROWSET (BULK 'location', SINGLE_BLOB).

Когда я делаю следующее в наборе результатов:

    InputStream is = new ByteArrayInputStream(keys);
    keyStore.load(is, ksPassword.toCharArray());

Iполучаю исключение:

  java.io.IOException: Invalid keystore format
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)
    at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)
    at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)
    at java.security.KeyStore.load(KeyStore.java:1445)

Я не уверен, как преобразовать поток байтов так, чтобы он выглядел примерно как `[B @ sdfsfs ', потому что так выглядит поток байтов для некоторых других ключей.У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 12 июля 2019

Я исправил проблему с помощью CONVERT(varbinary(max), '0x0EB882727A', 1) - она ​​была загружена правильно. Пароль был проблемой.

...