cancel
Showing results for 
Search instead for 
Did you mean: 

Not valid pgp message

Usharsree_7999
Participant
0 Kudos

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,

Accepted Solutions (0)

Answers (0)