on 08-21-2022 3:04 PM
Dear SAP,
I wrote the below code to encrypt a .txt file into .gpg file.
OPEN DATASET v_dsnam5 FOR INPUT IN TEXT MODE ENCODING DEFAULT.
* IGNORING CONVERSION ERRORS.
* v_msgv5 = v_dsnam5.
* IF sy-subrc GT 0.
* PERFORM set_bapireturn TABLES i_return
* USING c_error 'ZZFN' '302'
* v_msgv5 '' '' '' .
* ENDIF.
CHECK v_error IS INITIAL.
** WO/NW operations/activities data (excluding status)
data : lv_data TYPE string,
lv_str TYPE string.
data lv_key3 type string.
loop at i_wo_nw1 into lv_str.
if lv_data is INITIAL.
lv_data = lv_str.
else.
lv_data = |{ lv_data }{ cl_abap_char_utilities=>newline }{ lv_str }|.
endif.
endloop.
DATA:
lv_key TYPE xstring,
lv_key1 type string,
lt_key3 type table of c.
types: begin of str,
lv_st type string,
END OF str.
data wa_key type str.
data lv_key2 type xstring.
*lv_key = cl_sec_sxml_writer=>generate_key( algorithm = cl_sec_sxml_writer=>co_aes256_algorithm ).
*
*lv_key2 = cl_bcs_convert=>XSTRING_TO_STRING( IV_XSTR = lv_key ).
DO.
READ DATASET v_dsnam5 into lv_key1.
." in character mode.
lv_key3 = |{ lv_key3 }{ lv_key1 }|.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDDO. .
DATA:
lv_data_xstr TYPE xstring,
lv_msg TYPE xstring.
data lv_iv type xstring.
lv_data_xstr = cl_bcs_convert=>string_to_xstring( iv_string = lv_data ).
CALL FUNCTION 'SCMS_BASE64_DECODE_STR'
EXPORTING
INPUT = lv_key3
* UNESCAPE = 'X'
IMPORTING
OUTPUT = lv_key2
EXCEPTIONS
FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
* lv_key2 = lv_key3.
CALL METHOD CL_SEC_SXML_WRITER=>ENCRYPT
EXPORTING
PLAINTEXT = lv_data_xstr
KEY = lv_key2
ALGORITHM = CL_SEC_SXML_WRITER=>CO_AES256_ALGORITHM
IMPORTING
CIPHERTEXT = lv_msg.
DATA:
lv_str2 TYPE string.
*
data file_content type string.
call function 'SCMS_BASE64_ENCODE_STR'
exporting
input = lv_msg
importing
output = lv_str2.
DATA conv TYPE REF TO cl_abap_conv_in_ce.
data :lv_str4 type string,
lv_str5 type string.
lv_str4 = '-----BEGIN PGP MESSAGE-----'.
*lv_str2 = lv_msg.
lv_str5 = '-----END PGP MESSAGE-----' .
*CONCATENATE lv_str4 lv_str2 lv_str5 into lv_str2 SEPARATED BY CL_ABAP_CHAR_UTILITIES=>CR_LF.
data lt_str type table of string.
CALL FUNCTION 'CONVERT_STRING_TO_TABLE'
EXPORTING
i_string = lv_str2
i_tabline_length = 132
* I_UNICODE = 'X'
TABLES
et_table = lt_str.
TRANSFER lv_str4 TO v_dsnam1.
LOOP AT lt_str into lv_str2.
TRANSFER lv_str2 TO v_dsnam1.
ENDLOOP.
TRANSFER lv_str5 TO v_dsnam1.
But after all this codee, I get a message in PI that this is not a valid PGP message,.
Please advise.
Thanks,
Ushasri,
User | Count |
---|---|
78 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.