странно то что все равно получается что ошибка целостности ЭП ОВ
@Test
public void getPrivate() throws UnrecoverableEntryException, NoSuchAlgorithmException, KeyStoreException, NoSuchProviderException, IOException, CertificateException {
Sign sign = new Sign();
Gost3411Hash g = new Gost3411Hash();
assertNotEquals(null, sign.getPrivate());
System.out.print(g.h_Base64rfc2045(sign.getPrivate().getEncoded()));
}
И в этом случае тест проходит если закомментировать последнюю строчку т/е/ приватный ключ не нулл но почему при выводе его хеша на консоль кидает эксепшн
java.lang.NullPointerException
at java.security.MessageDigest.update(MessageDigest.java:335)
at crypto.Gost3411Hash.hash_byte(Gost3411Hash.java:59)
at crypto.Gost3411Hash.h_Base64rfc2045(Gost3411Hash.java:73)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Это особенность jcp что она не отдает закрытый ключ или как?
Сама реализация хеша и вывода на консоль построена на баунси кастле
public byte[] hash_byte(byte[] data) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance( "GOST3411" );
md.update( data );
byte[] digest = md.digest();
return digest;
}
public String base64(byte[] input){
return new sun.misc.BASE64Encoder().encode(input);
}
public String h_Base64rfc2045(String data) throws NoSuchAlgorithmException {
return base64(hash_byte(data));
}
public String h_Base64rfc2045(byte[] data) throws NoSuchAlgorithmException {
return base64(hash_byte(data));
}
Я всетаки не пойму ключ приватный я извклекаю или нет? Он как бы не нул но попытка посчитать хеш и вывести его в виде базе64 дает нулл пойнтер эксепшен
Отредактировано пользователем 25 июня 2018 г. 15:33:00(UTC)
| Причина: Не указана