一、            包含内容  
包含库程序mac.dll  mac.lib和“输入主密钥”程序,输入主密钥程序用来将银联的BMK加密存放在文件(key.txt)中。  
二、            接口说明  
1、产生MAC:  
int  iGenMAC(int  flag,  int  MAK_len,char  *MAK_ZMK,  int  MACdatalen,  char  *MACData,  char  *MAC);  
flag:0-单倍密钥MAC算法  
1-双倍密钥X9.9MAC算法  
2-双倍密钥X9.19MAC算法  
MAK_len:MAK_ZMK的长度,当flag=0时为16,其他为32  
MAK_ZMK:和银联交换的工作密钥  
MACdatalen:MAC计算数据长度  
MACData:输入MAC计算数据  
MAC:输出MAC值  
2、校验MAC  
int    iVerifyMAC(int  flag,  int  MAK_len,char  *MAK_ZMK,  int  MACdatalen,  char  *MACData,  char  *MAC);  
flag:0-单倍密钥MAC算法  
3-双倍密钥X9.9MAC算法  
4-双倍密钥X9.19MAC算法  
MAK_len:MAK_ZMK的长度,当flag=0时为16,其他为32  
MAK_ZMK:和银联交换的工作密钥  
MACdatalen:MAC计算数据长度  
MACData:输入MAC计算数据  
MAC:输入待校验MAC值  
以上是C语言的接口,恳求高手用delphi编写调用接口。小弟不胜感激!

解决方案 »

  1.   

    int  iGenMAC(int  flag,  int  MAK_len,char  *MAK_ZMK,  int  MACdatalen,  char  *MACData,  char  *MAC); function iGenMAC(flag,MAK_len:integer;MAK_ZMK:pchar;MACdatalen:integer;MACData:Pchar;MAC:Pchar):integer;stdcall;int    iVerifyMAC(int  flag,  int  MAK_len,char  *MAK_ZMK,  int  MACdatalen,  char  *MACData,  char  *MAC); function iVerifyMAC(flag, MAK_len:integer;MAK_ZMK:pchar;MACdatalen:integer;MACData:pchar;MAC:pchar):integer;stdcall;
      

  2.   

    100分还少???function iGenMAC(flag,MAK_len:Integer;MAK_ZMK:PChar;MACdatalen:Integer;MACData,MAC:PChar):Integer;
    function iVerifyMAC(flag,MAK_len:Integer;MAK_ZMK:PChar;MACdatalen:Integer;MACData,MAC:PChar):Integer;
    回答给楼主一样否?