*šSGS Le 06/02/2004 MD5 €* *‚----------------------------------------------------------------------€* *‚Paramètres €* *‚Chaine à crypter 255A €* *‚Clé MD5 32A (16 octets représentation ALPHA) €* *‚Clé MD5 16A €* *‚----------------------------------------------------------------------€* H DFTACTGRP(*NO) ACTGRP('QILE') BNDDIR('QC2LE') DCipher PR EXTPROC('_CIPHER') D * VALUE D * VALUE D * VALUE DConvert PR EXTPROC('_XLATEB') D * VALUE D * VALUE D 10u 0 VALUE Dcvthc PR EXTPROC('cvthc') D 1 D 1 D 10i 0 VALUE *‚----------------------------------------------------------------------€* DControls DS D Function 5i 0 inz(5) D HashAlg 1 inz(x'00') D Sequence 1 inz(x'00') D DataLngth 10i 0 inz(15) D Unused 8 inz(*LOVAL) D HashCtxPtr * inz(%addr(HashWorkArea)) DHashWorkArea S 96 inz(*LOVAL) DMsg S 255 DReceiverHex S 16 DReceiverPtr S * inz(%addr(ReceiverHex)) DReceiverChr S 32 DSourcePtr S * inz(%addr(Msg)) DStartMap s 256 DTo819 s 256 DCCSID1 s 10i 0 inz(37) DST1 s 10i 0 inz(0) DL1 s 10i 0 inz(%size(StartMap)) DCCSID2 s 10i 0 inz(819) DST2 s 10i 0 inz(0) DGCCASN s 10i 0 inz(0) DL2 s 10i 0 inz(%size(To819)) DL3 s 10i 0 DL4 s 10i 0 DFB s 12 DPMSG s 255 DPCLE32 s 32 DPCLE16 s 16 D ds D x 5i 0 D LowX 2 2 *‚----------------------------------------------------------------------€* C *ENTRY PLIST C PARM PMSG C PARM PCLE32 C PARM PCLE16 C eval Msg = PMSG C eval DataLngth = %len(%trimr(Msg)) D* Get all single byte ebcdic hex values C 0 do 255 x C eval %subst(StartMap:x+1:1) = LowX C enddo C*šConversion EBCDIC => ASCII C call 'QTQCVRT' C parm CCSID1 C parm ST1 C parm StartMap C parm L1 C parm CCSID2 C parm ST2 C parm GCCASN C parm L2 C parm To819 C parm L3 C parm L4 C parm FB C*šConversion C callp Convert( %addr(Msg) C :%addr(To819) C :%size(Msg)) *šAppel MD5 C callp Cipher( %addr(ReceiverPtr) C :%addr(Controls) C :%addr(SourcePtr)) C*šConvertion HEXA => Characters de ReceiverHex vers ReceiverChr C callp cvthc( ReceiverChr C :ReceiverHex C :%size(ReceiverChr)) C eval PCLE32 = ReceiverChr C eval PCLE16 = ReceiverHex C eval *INLR = '1' *‚----------------------------------------------------------------------€*