ENCRYPT64
From Pickwiki
Jump to navigationJump to searchHomePage>>SourceCode>>BasicSource>>ENCRYPT64
Sample code using the ENCRYPT function in Universe (U2). Note that ENCRYPT will output base64 that contains non-printable characters; they must be stripped out before decrypting.
FUNCTION ENCRYPT64(TEXT)
*
EQU ALGORITHM$ TO "RC4"
EQU ACTION$ENCRYPT TO 1
EQU ACTION$ENCRYPT.BASE64 TO 2
EQU ACTION$DECRYPT TO 3
EQU ACTION$DECRYPT.BASE64 TO 4
EQU DATALOC$STRING TO 1
EQU DATALOC$FILE TO 2
EQU KEY$ TO "ABCDEFGHIJKLMNOP"
EQU KEYLOC$DATA TO 1
EQU KEYLOC$FILE TO 2
EQU KEYACTION$ACTUAL.KEY TO 1
EQU KEYACTION$DERIVE.KEY TO 2
EQU SALT$ TO ""
EQU IV$ TO ""
EQU RESULTLOC$STRING TO 1
EQU RESULTLOC$FILE TO 2
*
IF UNASSIGNED(TEXT) THEN
ABORTM "TEXT IS UNASSIGNED!"
END
IF TEXT = "" THEN
RETURN ("")
END
*
RESULT = ""
*
ERRCODE = ENCRYPT(ALGORITHM$, ACTION$ENCRYPT.BASE64,
(TEXT), DATALOC$STRING,
KEY$, KEYLOC$DATA, KEYACTION$ACTUAL.KEY,
SALT$, IV$,
RESULT, RESULTLOC$STRING)
*
IF ERRCODE THEN
ABORTM "ENCRYPT64: ERRCODE ":ERRCODE
END
*
* get rid of non-printable characters
*
RESULT = OCONV(RESULT, "MCP")
CONVERT "." TO "" IN RESULT
*
* return to caller
*
RETURN (RESULT)
END