У меня есть функция, которая создает большие целочисленные значения. Я хочу использовать эти значения в качестве записей секретных ключей в Keystore. Я хочу знать, есть ли способ добавить эти значения Big-integer в качестве секретных ключей к хранилищу ключей. Я пытался отличить отличное целочисленное значение к секретному ключу, но у него появляется ошибка, из-за которой большое целое не может быть применено к секретному ключу. вот лучшее, что я получил до сих пор.Как передать предопределенное значение в качестве секретной клавиши в хранилище ключей
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
char[] password = "ps".toByteArray();
ks.load(null, password);
....
BigInteger sect=getsect();
javax.crypto.SecretKey mySecretKey=(SecretKey)sect;
KeyStore.SecretKeyEntry skEntry =
new KeyStore.SecretKeyEntry(mySecretKey);
ks.setEntry("secretKeyAlias", skEntry,
new KeyStore.PasswordProtection(password));
Поскольку это не работает, я не знаю, как добавить значение, которое я желаю в качестве секретной клавиши в хранилище ключей. ниже сообщение об ошибке я получаю
java.math.BigInteger cannot be cast to javax.crypto.SecretKey
Благодарю вас за ваш ответ, однако, хотя я избавился от ошибки кастинга, появилась новая ошибка: нельзя хранить не-личные ключи, хотя я специально храню секретную клавишу. – eskoba
вставить журнал ошибок –
error: java.security.KeyStoreException: не может хранить не-частные ключи // это происходит, когда я пытаюсь установитьEntry() хранилища ключей на этот код ks.setEntry ("secretKeyAlias", skEntry, new KeyStore.PasswordProtection (пароль)); – eskoba