SECH_HMAC_TEST is a standard Executable ABAP Report available within your SAP system (depending on your version and release level). Below is the basic information available for this SAP report including which OBJECTS it interacts with such as TABLES, FUNCTION MODULES, INCLUDES ETC. Also check out the submitted Comments related to this SAP report or see any standard documentation available.
If you would like to execute this report or see the full code listing simply enter SECH_HMAC_TEST into the relevant SAP transactions such as SE38 or SE80
This report can be called from another progam/report simply by using the ABAP SUBMIT statement, see below for example ABAP code snipts of how to do this.
Selection Text: X_LEN = Length of Hex. Seq. (in Bytes)
Selection Text: X_KEYLEN = Length of Hex. Key (in Bytes)
Selection Text: X_KEYINP = Enter Key as Hex. Seq. (XStr.)
Selection Text: X_KEY = Key (as Hex. Sequence/XString)
Selection Text: X_INPUT = Enter Message as Hex. Seq.
Selection Text: X_DATA = Message (as Hexadecimal Seq.)
Selection Text: S_LEN = Length of Message (Characters)
Selection Text: S_KEYLEN = Length of Key (in Characters)
Selection Text: S_KEYINP = Enter Key as Text (String)
Selection Text: S_KEY = Key (as String Text)
Selection Text: S_INPUT = Enter Message as Text
Selection Text: S_DATA = Message (as Text)
Selection Text: SETKEY = Writing HMAC Key to SecStore
Selection Text: RSECTEST = Test Secure Storage (RSEC)
Selection Text: RECNUM = Record Number (01...99)
Selection Text: KEYMUEX = Key must already exist
Selection Text: HASH_ALG = Hash Algorithm Used
Selection Text: GETKEY = Reading HMAC Key from SecStore
Selection Text: GENRDKEY = Generate Key Automatically
Selection Text: DELKEY = Delet. HMAC Key from SecStore
Selection Text: CLINDEP = Client-Independent
Selection Text: CALCHMAC = Calculating HMAC
No INCLUDES are used within this REPORT code!
No SAP DATABASE tables are accessed within this REPORT code!
ENQUEUE_READ CALL FUNCTION 'ENQUEUE_READ' EXPORTING gname = 'SNTXXHMAC_KRNENQ' garg = '/HMAC_CLIENT/SECH_HMAC_TEST' TABLES enq = lt_enq EXCEPTIONS communication_failure = 1 system_failure = 2 OTHERS = 3. "#EC FB_RC
RS_LDAP_GENERIC_DYNPRO_GET CALL FUNCTION 'RS_LDAP_GENERIC_DYNPRO_GET' IMPORTING eo_container = lo_container EXCEPTIONS control_error = 1 OTHERS = 2.
RS_LDAP_GENERIC_DYNPRO CALL FUNCTION 'RS_LDAP_GENERIC_DYNPRO' EXPORTING io_container = lo_container ii_dynpro_interface = lo_handler.
SECSTORE_READ_ITEM CALL FUNCTION 'SECSTORE_READ_ITEM' EXPORTING ident = 'BC_INIT' IMPORTING data = loc_result data_len = loc_result_len EXCEPTIONS internal_error = 1 invalid_description = 2 invalid_auth = 3 OTHERS = 4.
SECSTORE_READ_ITEM * CALL FUNCTION 'SECSTORE_READ_ITEM' * EXPORTING * ident = rsecid * client_independent = clindep * IMPORTING * data = loc_result * data_len = loc_result_len * EXCEPTIONS * internal_error = 1 * invalid_description = 2 * invalid_auth = 3 * OTHERS = 4.
SECSTORE_DELETE_ITEM * CALL FUNCTION 'SECSTORE_DELETE_ITEM' * EXPORTING * ident = rsecid * client_independent = clindep * EXCEPTIONS * internal_error = 1 * invalid_description = 2 * invalid_auth = 3 * OTHERS = 4.
CALCULATE_HMAC_FOR_CHAR CALL FUNCTION 'CALCULATE_HMAC_FOR_CHAR' EXPORTING alg = hash_alg data = s_data length = s_len client_independent = clindep record_number = recnum key_must_exist = keymuex IMPORTING hmac = loc_hmac hmaclen = loc_hmaclen hmacx = loc_hmacx hmacxlen = loc_hmacxlen hmacbase64 = loc_hmacbase64 hmacbase64len = loc_hmacbase64len EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 unknown_alg = 16 malloc_error = 20 abap_caller_error = 24 base64_error = 28 calc_hmac_error = 32 rsec_record_not_found = 40 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 rng_error = 64 enqueue_set_failed = 68 enqueue_release_failed = 72 enqueue_internal_error = 76 OTHERS = 4.
CALCULATE_HMAC_FOR_RAW CALL FUNCTION 'CALCULATE_HMAC_FOR_RAW' EXPORTING alg = hash_alg data = loc_xstr_data length = x_len client_independent = clindep record_number = recnum key_must_exist = keymuex IMPORTING hmac = loc_hmac hmaclen = loc_hmaclen hmacx = loc_hmacx hmacxlen = loc_hmacxlen hmacbase64 = loc_hmacbase64 hmacbase64len = loc_hmacbase64len EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 unknown_alg = 16 malloc_error = 20 abap_caller_error = 24 base64_error = 28 calc_hmac_error = 32 rsec_record_not_found = 40 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 rng_error = 64 enqueue_set_failed = 68 enqueue_release_failed = 72 enqueue_internal_error = 76 OTHERS = 4.
SET_HMAC_KEY CALL FUNCTION 'SET_HMAC_KEY' EXPORTING generate_random_key = genrdkey alg = hash_alg keyxstr = loc_xstr_key keyxlen = x_keylen client_independent = clindep record_number = recnum EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 unknown_alg = 16 malloc_error = 20 abap_caller_error = 24 base64_error = 28 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 rng_error = 64 enqueue_set_failed = 68 enqueue_release_failed = 72 enqueue_internal_error = 76 OTHERS = 4.
SET_HMAC_KEY CALL FUNCTION 'SET_HMAC_KEY' EXPORTING generate_random_key = genrdkey alg = hash_alg keycstr = s_key keyclen = s_keylen client_independent = clindep record_number = recnum EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 unknown_alg = 16 malloc_error = 20 abap_caller_error = 24 base64_error = 28 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 rng_error = 64 enqueue_set_failed = 68 enqueue_release_failed = 72 enqueue_internal_error = 76 OTHERS = 4.
GET_HMAC_KEY CALL FUNCTION 'GET_HMAC_KEY' EXPORTING client_independent = clindep record_number = recnum IMPORTING keyxstr = loc_keyxstr keyxlen = loc_keyxlen * keycstr = loc_keycstr * keyclen = loc_keyclen EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 malloc_error = 20 abap_caller_error = 24 base64_error = 28 rsec_record_not_found = 40 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 OTHERS = 4.
DELETE_HMAC_KEY CALL FUNCTION 'DELETE_HMAC_KEY' EXPORTING client_independent = clindep record_number = recnum EXCEPTIONS internal_error = 1 param_missing = 8 param_length_error = 12 malloc_error = 20 abap_caller_error = 24 base64_error = 28 rsec_record_not_found = 40 rsec_record_access_denied = 48 rsec_secstore_access_denied = 52 rsec_error = 56 enqueue_set_failed = 68 enqueue_release_failed = 72 enqueue_internal_error = 76 OTHERS = 4.
STORE_RAW_HMAC_KEY * CALL FUNCTION 'STORE_RAW_HMAC_KEY' * EXPORTING * hmac_key_identifier = rsecid * raw_key = wa_testvector-key * raw_key_length = wa_testvector-keylen * rsec_insert_mode = insert_mode * rsec_acl_list = it_rsec * EXCEPTIONS * internal_error = 1 * invalid_description = 2 * invalid_auth = 3 * param_missing = 8 * param_length_error = 12 * malloc_error = 20 * abap_caller_error = 24 * base64_error = 28 * rsec_unknown_insert_mode = 36 * rsec_record_not_found = 40 * rsec_record_already_exists = 44 * rsec_record_access_denied = 48 * rsec_secstore_access_denied = 52 * rsec_error = 56 * OTHERS = 4.
CALCULATE_HMAC_FOR_RAW * CALL FUNCTION 'CALCULATE_HMAC_FOR_RAW' * EXPORTING * hmac_key_identifier = rsecid * alg = wa_testvector-hash_alg * data = wa_testvector-data * length = wa_testvector-datalen * IMPORTING * hmacx = wa_testvector-resulting_hmac * EXCEPTIONS * internal_error = 1 * invalid_description = 2 * invalid_auth = 3 * param_missing = 8 * param_length_error = 12 * unknown_alg = 16 * malloc_error = 20 * abap_caller_error = 24 * base64_error = 28 * calc_hmac_error = 32 * rsec_record_not_found = 40 * rsec_record_access_denied = 48 * rsec_secstore_access_denied = 52 * rsec_error = 56 * OTHERS = 4.
Although this basic information may have limited use it does provide an easy to find location to store any knowledge about this program/report.
SECH_HMAC_TEST - SECHHMACTEST SECH_HMAC_TEST - SECHHMACTEST SECATT_WBREGISTRY_UPDATE - eCATT: Register eCATT Tool in WBREGISTRY and WBTOOLTYPE SECATT_WBREGISTRY_UPDATE - eCATT: Register eCATT Tool in WBREGISTRY and WBTOOLTYPE SECATT_USAGE_INFO_UPDATE - Program SECATT_USAGE_INFO_UPDATE SECATT_USAGE_INFO_UPDATE - Program SECATT_USAGE_INFO_UPDATE