; ; ************************************************************************* ; * * ; * © Copyright 2013, Hewlett-Packard Development Company, L.P. * ; * * ; * Confidential computer software. Valid license from HP and/or * ; * its subsidiaries required for possession, use, or copying. * ; * * ; * Consistent with FAR 12.211 and 12.212, Commercial Computer Software, * ; * Computer Software Documentation, and Technical Data for Commercial * ; * Items are licensed to the U.S. Government under vendor's standard * ; * commercial license. * ; * * ; * Neither HP nor any of its subsidiaries shall be liable for technical * ; * or editorial errors or omissions contained herein. The information * ; * in this document is provided "as is" without warranty of any kind and * ; * is subject to change without notice. The warranties for HP products * ; * are set forth in the express limited warranty statements accompanying * ; * such products. Nothing herein should be construed as constituting an * ; * additional warranty. * ; * * ; ************************************************************************* ; ******************************************************************************************************************************** ; Created: 12-Mar-2013 10:27:09 by OpenVMS SDL EV3-3 ; Source: 13-JAN-2012 16:21:42 $1$DGA106:[ENCRYPT.SRC]ENCRYPT_DEF.SDL;1 ; ******************************************************************************************************************************** .MACRO $encrypt_DEF,$GBL $DEFINI encrypt_,$GBL ; ; Initialize context for encrypt/decrypt operations ; Accepts following arguments ; context : type - longword integer signed; access - write only; mechanism - by reference ; algorithm : type - char_string; access - read/write; mechanism - by descriptor ; key-type : type - longword logical unsigned; access - read only; mechanism - by reference ; key-name : type - char_string; access - read only; mechanism - by descriptor ; [ p1 ] : type - quadword[1] (DES), quadword[2] (AES); access - read only; mechanism - by reference ; .MACRO $encrypt_init_G ARGPTR .GLOBL encrypt$init CALLG ARGPTR,G^encrypt$init .ENDM $encrypt_init_G .MACRO $encrypt_initDEF $OFFDEF encrypt_init, .ENDM $encrypt_initDEF .MACRO $encrypt_init context=0,algorithm=0,key_type=0,key_descriptor=0,- extra_parameter $encrypt_initDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 1 $$NUMREQARGS = 4 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS context .ADDRESS algorithm .ADDRESS key_type .ADDRESS key_descriptor .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_init .MACRO $encrypt_init_S context,algorithm,key_type,key_descriptor,- extra_parameter .GLOBL encrypt$init $$NONESEEN = 1 $$T2 = 5 .IF B extra_parameter .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR extra_parameter .ENDC $PUSHADR key_descriptor,CONTEXT=Q $PUSHADR key_type $PUSHADR algorithm,CONTEXT=Q $PUSHADR context CALLS #$$T2,G^encrypt$init .ENDM $encrypt_init_S ; ; Perform encryption of next record of plaintext ; Accepts following arguments ; context : type - longword integer signed; access - write only; mechanism - by reference ; input : type - char_string; access - read only; mechanism - by descriptor ; output : type - char_string; access - write only; mechanism - by descriptor ; [output-length] : type - word integer; access - write only; mechanism - by reference ; [p1] : type - quadword[1] (DES), quadword[2] (AES); access - read only; mechanism - by reference ; .MACRO $encrypt_encrypt_G ARGPTR .GLOBL encrypt$encrypt CALLG ARGPTR,G^encrypt$encrypt .ENDM $encrypt_encrypt_G .MACRO $encrypt_encryptDEF $OFFDEF encrypt_encrypt, .ENDM $encrypt_encryptDEF .MACRO $encrypt_encrypt context=0,input=0,output=0,output_count,- extra_parameter $encrypt_encryptDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 2 $$NUMREQARGS = 3 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS context .ADDRESS input .ADDRESS output .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_encrypt .MACRO $encrypt_encrypt_S context,input,output,output_count,- extra_parameter .GLOBL encrypt$encrypt $$NONESEEN = 1 $$T2 = 5 .IF B extra_parameter .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR extra_parameter .ENDC .IF B output_count .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR output_count .ENDC $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q $PUSHADR context CALLS #$$T2,G^encrypt$encrypt .ENDM $encrypt_encrypt_S ; ; Perform decryption of next record of plaintext ; Accepts following arguments ; context : type - longword integer signed; access - write only; mechanism - by reference ; input : type - char_string; access - read only; mechanism - by descriptor ; output : type - char_string; access - write only; mechanism - by descriptor ; [output-length] : type - word integer; access - write only; mechanism - by reference ; [p1] : type - quadword[1] (DES), quadword[2] (AES); access - read only; mechanism - by reference ; .MACRO $encrypt_decrypt_G ARGPTR .GLOBL encrypt$decrypt CALLG ARGPTR,G^encrypt$decrypt .ENDM $encrypt_decrypt_G .MACRO $encrypt_decryptDEF $OFFDEF encrypt_decrypt, .ENDM $encrypt_decryptDEF .MACRO $encrypt_decrypt context=0,input=0,output=0,output_count,- extra_parameter $encrypt_decryptDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 2 $$NUMREQARGS = 3 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS context .ADDRESS input .ADDRESS output .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_decrypt .MACRO $encrypt_decrypt_S context,input,output,output_count,- extra_parameter .GLOBL encrypt$decrypt $$NONESEEN = 1 $$T2 = 5 .IF B extra_parameter .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR extra_parameter .ENDC .IF B output_count .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR output_count .ENDC $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q $PUSHADR context CALLS #$$T2,G^encrypt$decrypt .ENDM $encrypt_decrypt_S ; ; Disassociates the encryption context and releases it ; Accepts following arguments ; context : type - longword integer signed; access - read/write; mechanism - by reference ; .MACRO $encrypt_fini_G ARGPTR .GLOBL encrypt$fini CALLG ARGPTR,G^encrypt$fini .ENDM $encrypt_fini_G .MACRO $encrypt_finiDEF $OFFDEF encrypt_fini, .ENDM $encrypt_finiDEF .MACRO $encrypt_fini context=0,extra_parameter $encrypt_finiDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 1 $$NUMREQARGS = 1 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS context .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_fini .MACRO $encrypt_fini_S context,extra_parameter .GLOBL encrypt$fini $$NONESEEN = 1 $$T2 = 2 .IF B extra_parameter .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR extra_parameter .ENDC $PUSHADR context CALLS #$$T2,G^encrypt$fini .ENDM $encrypt_fini_S ; ; Gains access to the statistics maintained by the Encryption software ; Accepts following arguments ; context : type - longword; access - read only; mechanism - by reference ; code : type - longword; access - read only; mechanism - by reference ; destination : type - char_string; access - write only; mechanism - by descriptor ; return-length : type - longword; access - write only; mechanism - by reference ; .MACRO $encrypt_statistics_G ARGPTR .GLOBL encrypt$statistics CALLG ARGPTR,G^encrypt$statistics .ENDM $encrypt_statistics_G .MACRO $encrypt_statisticsDEF $OFFDEF encrypt_statistics, .ENDM $encrypt_statisticsDEF .MACRO $encrypt_statistics context=0,code=0,destination=0,- return_length=0 $encrypt_statisticsDEF .LONG 4 .ADDRESS context .ADDRESS code .ADDRESS destination .ADDRESS return_length .ENDM $encrypt_statistics .MACRO $encrypt_statistics_S context,code,destination,return_length .GLOBL encrypt$statistics $PUSHADR return_length $PUSHADR destination,CONTEXT=Q $PUSHADR code $PUSHADR context CALLS #4,G^encrypt$statistics .ENDM $encrypt_statistics_S ; ; Places a key definition into the process, group, job, or system key storage table ; Accepts following arguments ; key-name : type - char_string; access - read only; mechanism - by descriptor ; key-value : type - char_string; access - read only; mechanism - by descriptor ; key-flags : type - longword; access - read only; mechanism - by reference ; .MACRO $encrypt_define_key_G ARGPTR .GLOBL encrypt$define_key CALLG ARGPTR,G^encrypt$define_key .ENDM $encrypt_define_key_G .MACRO $encrypt_define_keyDEF $OFFDEF encrypt_define_key, .ENDM $encrypt_define_keyDEF .MACRO $encrypt_define_key key_name=0,key_value=0,key_flags=0,- key_protection $encrypt_define_keyDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 1 $$NUMREQARGS = 3 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS key_name .ADDRESS key_value .ADDRESS key_flags .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_define_key .MACRO $encrypt_define_key_S key_name,key_value,key_flags,- key_protection .GLOBL encrypt$define_key $$NONESEEN = 1 $$T2 = 4 .IF B key_protection .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR key_protection .ENDC $PUSHADR key_flags $PUSHADR key_value,CONTEXT=Q $PUSHADR key_name,CONTEXT=Q CALLS #$$T2,G^encrypt$define_key .ENDM $encrypt_define_key_S ; ; Deletes a key definition from a key storage table ; Accepts following arguments ; key-name : type - char_string; access - read only; mechanism - by descriptor ; key-flags : type - longword; access - read only; mechanism - by reference ; .MACRO $encrypt_delete_key_G ARGPTR .GLOBL encrypt$delete_key CALLG ARGPTR,G^encrypt$delete_key .ENDM $encrypt_delete_key_G .MACRO $encrypt_delete_keyDEF $OFFDEF encrypt_delete_key, .ENDM $encrypt_delete_keyDEF .MACRO $encrypt_delete_key key_name=0,key_flags=0 $encrypt_delete_keyDEF .LONG 2 .ADDRESS key_name .ADDRESS key_flags .ENDM $encrypt_delete_key .MACRO $encrypt_delete_key_S key_name,key_flags .GLOBL encrypt$delete_key $PUSHADR key_flags $PUSHADR key_name,CONTEXT=Q CALLS #2,G^encrypt$delete_key .ENDM $encrypt_delete_key_S ; ; Encrypts or decrypts data files ; Accepts following arguments ; input-file : type - char_string; access - read only; mechanism - by descriptor ; output-file : type - char_string; access - read only; mechanism - by descriptor ; key-name : type - char_string; access - read only; mechanism - by descriptor ; algorithm : type - char_string; access - read only; mechanism - by descriptor ; file-flags : type - longword; access - read only; mechanism - by reference ; [item-list] : type - item_list_3; access - read only; mechanism - by descriptor ; .MACRO $encrypt_encrypt_file_G ARGPTR .GLOBL encrypt$encrypt_file CALLG ARGPTR,G^encrypt$encrypt_file .ENDM $encrypt_encrypt_file_G .MACRO $encrypt_encrypt_fileDEF $OFFDEF encrypt_encrypt_file, .ENDM $encrypt_encrypt_fileDEF .MACRO $encrypt_encrypt_file input_file=0,output_file=0,- key_name=0,algorithm=0,file_flags=0,item_list $encrypt_encrypt_fileDEF $$PRESENT_FLAG = 0 $$SUPPLIED = 1 $$NUMREQARGS = 5 .IRP $$T2, .IF NB $$T2 $$PRESENT_FLAG = 1 .MEXIT .IFF $$SUPPLIED = $$SUPPLIED - 1 .ENDC .ENDR .IF EQUAL $$PRESENT_FLAG $$SUPPLIED = 0 .ENDC $$NUMARGS = $$NUMREQARGS + $$SUPPLIED .LONG $$NUMARGS .ADDRESS input_file .ADDRESS output_file .ADDRESS key_name .ADDRESS algorithm .ADDRESS file_flags .IRP $$T2, .IF EQUAL $$SUPPLIED .MEXIT .ENDC .IF NB $$T2 .ADDRESS $$T2 .IFF .LONG 0 .ENDC $$SUPPLIED = $$SUPPLIED - 1 .ENDR .ENDM $encrypt_encrypt_file .MACRO $encrypt_encrypt_file_S input_file,output_file,key_name,- algorithm,file_flags,item_list .GLOBL encrypt$encrypt_file $$NONESEEN = 1 $$T2 = 6 .IF B item_list .IF EQUAL $$NONESEEN PUSHL #0 .IFF $$T2 = $$T2 - 1 .ENDC .IFF $$NONESEEN = 0 $PUSHADR item_list .ENDC $PUSHADR file_flags $PUSHADR algorithm,CONTEXT=Q $PUSHADR key_name,CONTEXT=Q $PUSHADR output_file,CONTEXT=Q $PUSHADR input_file,CONTEXT=Q CALLS #$$T2,G^encrypt$encrypt_file .ENDM $encrypt_encrypt_file_S ; ; Encrypts a small amount of data in an encrypt stream ; Accepts following arguments ; input : type - char_string; access - read only; mechanism - by descriptor ; output : type - char_string; access - write only; mechanism - by descriptor ; key-name : type - char_string; access - read only; mechanism - by descriptor ; algorithm : type - char_string; access - read only; mechanism - by descriptor ; .MACRO $encrypt_encrypt_one_record_G ARGPTR .GLOBL encrypt$encrypt_one_record CALLG ARGPTR,G^encrypt$encrypt_one_record .ENDM $encrypt_encrypt_one_record_G .MACRO $encrypt_encrypt_one_recordDEF $OFFDEF encrypt_encrypt_one_record, .ENDM $encrypt_encrypt_one_recordDEF .MACRO $encrypt_encrypt_one_record input=0,output=0,key_name=0,- algorithm=0 $encrypt_encrypt_one_recordDEF .LONG 4 .ADDRESS input .ADDRESS output .ADDRESS key_name .ADDRESS algorithm .ENDM $encrypt_encrypt_one_record .MACRO $encrypt_encrypt_one_record_S input,output,key_name,- algorithm .GLOBL encrypt$encrypt_one_record $PUSHADR algorithm,CONTEXT=Q $PUSHADR key_name,CONTEXT=Q $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q CALLS #4,G^encrypt$encrypt_one_record .ENDM $encrypt_encrypt_one_record_S ; ; Decrypts a small amount of data on a decrypt stream ; Accepts following arguments ; input : type - char_string; access - read only; mechanism - by descriptor ; output : type - char_string; access - write only; mechanism - by descriptor ; key-name : type - char_string; access - read only; mechanism - by descriptor ; algorithm : type - char_string; access - read only; mechanism - by descriptor ; .MACRO $encrypt_decrypt_one_record_G ARGPTR .GLOBL encrypt$decrypt_one_record CALLG ARGPTR,G^encrypt$decrypt_one_record .ENDM $encrypt_decrypt_one_record_G .MACRO $encrypt_decrypt_one_recordDEF $OFFDEF encrypt_decrypt_one_record, .ENDM $encrypt_decrypt_one_recordDEF .MACRO $encrypt_decrypt_one_record input=0,output=0,key_name=0,- algorithm=0 $encrypt_decrypt_one_recordDEF .LONG 4 .ADDRESS input .ADDRESS output .ADDRESS key_name .ADDRESS algorithm .ENDM $encrypt_decrypt_one_record .MACRO $encrypt_decrypt_one_record_S input,output,key_name,- algorithm .GLOBL encrypt$decrypt_one_record $PUSHADR algorithm,CONTEXT=Q $PUSHADR key_name,CONTEXT=Q $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q CALLS #4,G^encrypt$decrypt_one_record .ENDM $encrypt_decrypt_one_record_S ; ; Generates a random key value ; Accepts following arguments ; algorithm-name : type - char_string; access - read only; mechanism - by descriptor ; key-length : type - word unsigned; access - read only; mechanism - by reference ; [factor-a] : type - char_string; access - read only; mechanism - by descriptor ; [factor-b] : type - char_string; access - read only; mechanism - by descriptor ; [factor-c] : type - char_string; access - read only; mechanism - by descriptor ; [key-buffer] : type - char_string; access - write; mechanism - by descriptor ; .MACRO $encrypt_generate_key_G ARGPTR .GLOBL encrypt$generate_key CALLG ARGPTR,G^encrypt$generate_key .ENDM $encrypt_generate_key_G .MACRO $encrypt_generate_keyDEF $OFFDEF encrypt_generate_key, .ENDM $encrypt_generate_keyDEF .MACRO $encrypt_generate_key algorithm=0,key_length=0,factor_a=0,- factor_b=0,factor_c=0,key_buffer=0 $encrypt_generate_keyDEF .LONG 6 .ADDRESS algorithm .ADDRESS key_length .ADDRESS factor_a .ADDRESS factor_b .ADDRESS factor_c .ADDRESS key_buffer .ENDM $encrypt_generate_key .MACRO $encrypt_generate_key_S algorithm,key_length,factor_a,- factor_b,factor_c,key_buffer .GLOBL encrypt$generate_key $PUSHADR key_buffer,CONTEXT=Q $PUSHADR factor_c,CONTEXT=Q $PUSHADR factor_b,CONTEXT=Q $PUSHADR factor_a,CONTEXT=Q $PUSHADR key_length $PUSHADR algorithm,CONTEXT=Q CALLS #6,G^encrypt$generate_key .ENDM $encrypt_generate_key_S ; ; Unsupported calls ; .MACRO $encrypt_init_asyn_G ARGPTR .GLOBL encrypt$init_asyn CALLG ARGPTR,G^encrypt$init_asyn .ENDM $encrypt_init_asyn_G .MACRO $encrypt_init_asynDEF $OFFDEF encrypt_init_asyn, .ENDM $encrypt_init_asynDEF .MACRO $encrypt_init_asyn efn=0,context=0,ast_address=0,- ast_parameter=0,status_block=0,item_list=0 $encrypt_init_asynDEF .LONG 6 .ADDRESS efn .ADDRESS context .ADDRESS ast_address .ADDRESS ast_parameter .ADDRESS status_block .ADDRESS item_list .ENDM $encrypt_init_asyn .MACRO $encrypt_init_asyn_S efn,context,ast_address,ast_parameter,- status_block,item_list .GLOBL encrypt$init_asyn $PUSHADR item_list $PUSHADR status_block,CONTEXT=Q $PUSHADR ast_parameter $PUSHADR ast_address $PUSHADR context $PUSHADR efn CALLS #6,G^encrypt$init_asyn .ENDM $encrypt_init_asyn_S .MACRO $encrypt_encrypt_asyn_G ARGPTR .GLOBL encrypt$encrypt_asyn CALLG ARGPTR,G^encrypt$encrypt_asyn .ENDM $encrypt_encrypt_asyn_G .MACRO $encrypt_encrypt_asynDEF $OFFDEF encrypt_encrypt_asyn, .ENDM $encrypt_encrypt_asynDEF .MACRO $encrypt_encrypt_asyn efn=0,context=0,input=0,output=0,- ast_address=0,ast_parameter=0,status_block=0,item_list=0 $encrypt_encrypt_asynDEF .LONG 8 .ADDRESS efn .ADDRESS context .ADDRESS input .ADDRESS output .ADDRESS ast_address .ADDRESS ast_parameter .ADDRESS status_block .ADDRESS item_list .ENDM $encrypt_encrypt_asyn .MACRO $encrypt_encrypt_asyn_S efn,context,input,output,- ast_address,ast_parameter,status_block,item_list .GLOBL encrypt$encrypt_asyn $PUSHADR item_list $PUSHADR status_block,CONTEXT=Q $PUSHADR ast_parameter $PUSHADR ast_address $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q $PUSHADR context $PUSHADR efn CALLS #8,G^encrypt$encrypt_asyn .ENDM $encrypt_encrypt_asyn_S .MACRO $encrypt_decrypt_asyn_G ARGPTR .GLOBL encrypt$decrypt_asyn CALLG ARGPTR,G^encrypt$decrypt_asyn .ENDM $encrypt_decrypt_asyn_G .MACRO $encrypt_decrypt_asynDEF $OFFDEF encrypt_decrypt_asyn, .ENDM $encrypt_decrypt_asynDEF .MACRO $encrypt_decrypt_asyn efn=0,context=0,input=0,output=0,- ast_address=0,ast_parameter=0,status_block=0,item_list=0 $encrypt_decrypt_asynDEF .LONG 8 .ADDRESS efn .ADDRESS context .ADDRESS input .ADDRESS output .ADDRESS ast_address .ADDRESS ast_parameter .ADDRESS status_block .ADDRESS item_list .ENDM $encrypt_decrypt_asyn .MACRO $encrypt_decrypt_asyn_S efn,context,input,output,- ast_address,ast_parameter,status_block,item_list .GLOBL encrypt$decrypt_asyn $PUSHADR item_list $PUSHADR status_block,CONTEXT=Q $PUSHADR ast_parameter $PUSHADR ast_address $PUSHADR output,CONTEXT=Q $PUSHADR input,CONTEXT=Q $PUSHADR context $PUSHADR efn CALLS #8,G^encrypt$decrypt_asyn .ENDM $encrypt_decrypt_asyn_S .MACRO $encrypt_fini_asyn_G ARGPTR .GLOBL encrypt$fini_asyn CALLG ARGPTR,G^encrypt$fini_asyn .ENDM $encrypt_fini_asyn_G .MACRO $encrypt_fini_asynDEF $OFFDEF encrypt_fini_asyn, .ENDM $encrypt_fini_asynDEF .MACRO $encrypt_fini_asyn efn=0,context=0,ast_address=0,- ast_parameter=0,status_block=0,item_list=0 $encrypt_fini_asynDEF .LONG 6 .ADDRESS efn .ADDRESS context .ADDRESS ast_address .ADDRESS ast_parameter .ADDRESS status_block .ADDRESS item_list .ENDM $encrypt_fini_asyn .MACRO $encrypt_fini_asyn_S efn,context,ast_address,ast_parameter,- status_block,item_list .GLOBL encrypt$fini_asyn $PUSHADR item_list $PUSHADR status_block,CONTEXT=Q $PUSHADR ast_parameter $PUSHADR ast_address $PUSHADR context $PUSHADR efn CALLS #6,G^encrypt$fini_asyn .ENDM $encrypt_fini_asyn_S .MACRO $encrypt_sync_asyn_G ARGPTR .GLOBL encrypt$sync_asyn CALLG ARGPTR,G^encrypt$sync_asyn .ENDM $encrypt_sync_asyn_G .MACRO $encrypt_sync_asynDEF $OFFDEF encrypt_sync_asyn, .ENDM $encrypt_sync_asynDEF .MACRO $encrypt_sync_asyn efn=0,context=0,status_block=0 $encrypt_sync_asynDEF .LONG 3 .ADDRESS efn .ADDRESS context .ADDRESS status_block .ENDM $encrypt_sync_asyn .MACRO $encrypt_sync_asyn_S efn,context,status_block .GLOBL encrypt$sync_asyn $PUSHADR status_block,CONTEXT=Q $PUSHADR context $PUSHADR efn CALLS #3,G^encrypt$sync_asyn .ENDM $encrypt_sync_asyn_S $DEFEND encrypt_,$GBL,DEF .ENDM