Вычисление хеш-значения SHA3 с использованием bouncycastle - `ошибка: не удается найти символ` - PullRequest
0 голосов
/ 30 января 2019

Я взял пример отсюда: bouncycastle_example

Это второй ответ, а не тот, который принят!

И он отлично работает в Java 8 и Java 11хотя последний не поддерживается, как указано в maven central.

Теперь мой собственный проект скопировал ту же строку, что и в примере, и выдает сообщение об ошибке, указанное в заголовке.

НаличиеПринимая пример, я удивляюсь, почему точно такой же код не работает в моем проекте ...

//Klassenattribute (transient):
//transient BigInteger message;
transient byte[] message;

transient SHA3.DigestSHA3 digestSHA3 = new SHA3.Digest512();


//Konstruktor:
public Signature_Path (byte[] message) {//Done: BigInteger message 
//Klassenattribute initialisieren:
path= new Vector<Node>();

//Klassenattribute initialisieren (GEHEIM):
sk = new Secret_Key ();
std_rnd = new Random (); //Zufallszahlgenerator

//Klassenattribute initialisieren (privat):
k = 0;//Bitlaenge der Zufallszahlen p, q 
//Klassenattribute initialisieren (transient):
byte[] digest = digestSHA3.digest(message.getBytes());
this.message = digest;

}

Я рассчитываю вычислить переменную digest методом надувного замка digestSHA3.digest.

Я получаю маркер компилятора, последний недоступен.

UPDATE_20190212: скомпилирован с java8 и java11 и получил то же самое сообщение об ошибке.

Это из моего pom.xml:

<dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk15on</artifactId>
           <version>1.60</version>
</dependency>

1 Ответ

0 голосов
/ 13 февраля 2019

Несмотря на то, что маркер компилятора находится за пределами круглых скобок, выражением-нарушителем является не digestSHA3.digest, а message.getBytes().message уже является byte[], поэтому удаление .getBytes() решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...