Sehr geehrter Herr Professor Flatscher,

die Fehlermeldung entsteht beim ausführen des Programms im Anhang, Zeile 18 , beim Aufruf der zuvor beschriebenen Methode. Die Dateien sind erneut im Anhang und hier: 
SHA256Digest = bsf.import("org.bouncycastle.crypto.digests.SHA256Digest")

a = "TESTSTRING"
/* init */
sha256 = SHA256Digest~new
/* sha256~update(BsfRawBytes(a), 0, length(BsfRawBytes(a))) */
/* java erkennt die argumente bei der oberen ausführung als strings, deswegen invokestrict: */
sha256~bsf.invokeStrict("update",object, BsfRawBytes(a),integer, 0,integer, length((a)))
/* wird benötig zum erstellen des Bytearrays passender größe: */
digestsize = sha256~getDigestSize()


/* result = sha256~bsf.invokeStrict("doFinal",  ,integer, 1) */
array1 = bsf.createJavaArray("byte.class", digestsize)
/* ausgabe = sha256~doFinal(array1, 1) */
/* selbes problem: zweites argument wird als string erkannt, sollte integer sein */
ausgabe = sha256~bsf.invokeStrict("doFinal", Byte, array1, integer, 1)

::requires bsf.cls


Mit freundlichen Grüßen
Elias Haueis 



Von: Aj2021w <aj2021w-bounces@alice.wu.ac.at> im Auftrag von Rony G. Flatscher <Rony.Flatscher@wu.ac.at>
Gesendet: Samstag, 29. Jänner 2022 17:17
An: aj2021w@alice.wu.ac.at <aj2021w@alice.wu.ac.at>
Betreff: Re: [Aj2021w] Abschlussprojekt, Bitte um Hilfe
 

Liebe Gruppe,


bitte posten Sie die Rexx-Anweisungen und die *vollständige* Fehlerausgabe, die entsteht!


Wenn Sie nicht alle Informationen so exakt wie möglich mitteilen, kann man Ihnen nicht direkt helfen!


Mit freundlichem Gruß


Rony G. Flatscher





On 29.01.2022 16:54, Elias Haueis wrote:
Sehr geehrte Kolleginnen und Kollegen,

leider ist es uns bis jetzt noch nicht gelungen, unser Problem zu lösen und bitten daher um Hilfe: Im Anhang finden Sie einen Screenshot der Fehlermeldung, sowie eine .rxj Datei, welche das Problem veranschaulichen soll.

Die zu implementierende Klasse aus der BouncyCastle Library lautet "SHA256Digest"
org.bouncycastle.crypto.digests.SHA256Digest

Unserer Meinung nach entsteht das Problem folgendermaßen: Die Klasse besitzt die Methode "doFinal", als Parameter unter anderem ein leeres ByteArray (mit passender Größe!) bekommt. In dieses ByteArray werden die verarbeiteten Daten hineinkopiert. Dies ist in Java problemlos möglich, allerdings sind wir in oorexx bislang daran gescheitert. 
 
verwendete versionen: 
ooRexx: Open Object Rexx Version 5.0.0 r12342
BSF4ooRexx: bsf4ooRexx-v641-20211118-bin.jar
JAVA: openjdk version "17.0.1" 2021-10-19 LTS
BouncyCastle: bcprov-ext-jdk15on-170.jar

Wir sind für jegliche Hilfe dankbar! 
Mit freundlichen Grüßen 
Antonia und Elias 
 

-- 
--
__________________________________________________________________________________

Prof. Dr. Rony G. Flatscher
Department Wirtschaftsinformatik und Operations Management
Institut für Wirtschaftsinformatik und Gesellschaft
D2c 2.086
WU Wien
Welthandelsplatz 1
A-1020  Wien/Vienna, Austria/Europe

http://www.wu.ac.at
__________________________________________________________________________________