📄 unit_pubfunc.pas
字号:
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加消费取现密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddLoadKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $01 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加圈存密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddUnloadKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $03 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加圈提密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddTACKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $02 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加TAC密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddApplicationKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $05 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加应用维护密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddPinUnlockKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $06 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加PIN解锁密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddPinReloadKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $07 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加PIN重装密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function AddOverdrawKey: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $1d ;
send_buf[3]:= $80 ;
send_buf[4]:= $d4 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $18 ;
send_buf[8]:= $01 ;
send_buf[9]:= $01 ;
send_buf[10]:= $00 ;
send_buf[11]:= $04 ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $f0 ;
send_buf[15]:= $33 ;
send_buf[16]:= $31 ;
send_buf[17]:= $32 ;
send_buf[18]:= $33 ;
send_buf[19]:= $34 ;
send_buf[20]:= $35 ;
send_buf[21]:= $36 ;
send_buf[22]:= $37 ;
send_buf[23]:= $38 ;
send_buf[24]:= $31 ;
send_buf[25]:= $32 ;
send_buf[26]:= $33 ;
send_buf[27]:= $34 ;
send_buf[28]:= $35 ;
send_buf[29]:= $36 ;
send_buf[30]:= $37 ;
send_buf[31]:= $38 ;
send_buf[32]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -