-
decrypt & encrypt (RC4)
Hab da mal wieder ein Problem
wir wollen/müssen Daten nach dem RC4 (Ron's Cipher 4) auf der AS400 verschlüssen/entschlüsseln!
hab auch schon mal Mr. "google" gefragt und dann folgendes Programm gefunden!
PHP-Code:
H DFTACTGRP(*NO) BNDDIR('QC2LE') option(*SRCSTMT: *NODEBUGIO)
D pstring s 20A
D encrypt s 1A
D key s 16A varying inz('CrypTEDkEy')
D InpString s 21
D OutString s Like(InpString)
D RC4_Controls ds
D funct_id 2A
D datalen 5U 0
D operation 1A
D reserved 11A
D p_key_ctx *
D key_ctx ds
D stream 256A
D len 5U 0
D reserved2 6A
D cipher PR extproc('_CIPHER')
D receiver *
D control 32A
D source *
D p_recv s *
D p_src s *
C *Entry PList
C Parm pstring
C Parm encrypt
* The following will store a null-terminating byte
* at the end of InpString as required by the C API _CIPHER.
C Eval %str(%addr(InpString) :
C %len(%trim(pstring)) + 1) = pstring
* The following will encrypt or decrypt "InpString" using the RC4
* algorithm with the secret key "key", and place the result
* into "OutString"
C Eval key_ctx = *ALLx'00'
C Eval stream = *ALLx'00'
C Eval reserved2= *ALLx'00'
C Eval %subst(stream:1:%len(key)) = key
C Eval len = %len(key)
C Eval RC4_Controls = *ALLx'00'
C Eval funct_id = x'0013'
C Eval datalen = %size(InpString)
C Select
C When encrypt = 'E'
C Eval operation = x'00'
C When encrypt = 'D'
C Eval operation = x'01'
C EndSl
C Eval reserved = *ALLx'00'
C Eval p_key_ctx = %addr(key_ctx)
C Eval p_recv = %addr(OutString)
C Eval p_src = %addr(InpString)
C CallP cipher( p_recv: RC4_Controls: p_src)
C Seton LR
Dieses Pgm. soll ab V5.2 laufen (wir haben V5.3)
Umwandeln funkt auch prima, nur wenn ich das Programm aufrufe/debuge, dann bekomme ich bei:
PHP-Code:
C CallP cipher( p_recv: RC4_Controls: p_src)
folgende Fehlermeldung:
Die angeforderte Funktion ist ungültig oder nicht verfügbar auf der Maschine
cipher bzw. _cipher soll angeblich ein API sein !!!!
Hat jemand Erfahrung damit o. kann mir jemand weiterhelfen was ich falsch mache, bzw. wo ich dieses API herbekomme!
-
a) du musst den Kryptografie-Support installieren
b) es gibt dann CMD's und einfache API's:
http://publib.boulder.ibm.com/infoce...s/catcrypt.htm
-
CIPHER ist eine MI Instruktion, auf die in ILE Programmen über den MI Build-In _CIPHER zugegriffen werden kann. Unter V5R1 kann man über CIPHER nach dem DEA, TDEA, RC4 bzw. dem AES Algorithmus Daten verschlüsseln. Ab V5R2 kann man nach Installation der folgenden PTF`s die von Fürchau beschriebenen API`s verwenden.
PHP-Code:
SI10060 - Common Cryptographic APIs
SI10105 - Common Cryptographic API includes
MF31101 - Common Cryptographic API fix
Ab V5R3 sind diese API`s Bestandteil der Basisinstallation und damit immer verfügbar.
Voraussetzung für eine Verschlüsselung nach DEA, TDEA, RC4 bzw. AES ist immer die zusätzliche Installation des folgenden Lizenzprogrammes und zwar für alle V5RX Releases.
PHP-Code:
5722-AC3 -- Cryptographic Access Provider 128-bit for AS/400
Das Programm ist leider ein wenig unsauber programmiert, da man über die MI Instruktion MATMATR ermitteln kann, ob eine Verlüsselung nach RC4 auf der Maschine überhaupt möglich ist. Und wenn nicht möglich, dann hätte man eine Meldung bringen müssen und _CIPHER erst gar nicht aufrufen. Aber was solls.
Frank Hildebrandt
-
habe heute die:
5722-AC3 -- Cryptographic Access Provider 128-bit for AS/400
und
5722-AC4 -- Cryptographic Access Provider 128-bit for AS/400
a) reicht es wenn ich nur "5722-AC3" installiere, oder müssen beide installiert werden?
b) wo liegt eingentlich der Unterschied zwischen beiden?
-
AC4 ist mir völlig unbekannt. Es läßt sich auch nichts an Informationen finden. Ich würde AC3 installieren. Das wird bestimmt laufen. Steht denn auf der CD wirklich 5722-AC4 drauf?
Frank Hildebrandt
-
ups sorry, sollte eigentlich so heißen:
5722-AC3 -- Cryptographic Access Provider 128-bit for AS/400
und
5722-CE3 -- Client Encryp 128) for AS/400
????
-
ups sorry, sollte eigentlich so heißen:
5722-AC3 -- Cryptographic Access Provider 128-bit for AS/400
und
5722-CE3 -- Client Encryp 128 for AS/400
????
-
Auf der AS/400 installierst Du das AC3. Das CE3 ist für den PC. Das brauchst Du aber nur dann auf einem PC zu installieren, wenn Du auf diesem PC Client Access mit der Funktion 'Operations Console' nutzen willst. Für das, was Du mit Deiner ursprünglichen Frage bewirken willst reicht AC3.
Frank Hildebrandt
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks