现在的位置: 首页 > 综合 > 正文

0.1.3.3版的测试脚本小例

2014年02月07日 ⁄ 综合 ⁄ 共 3961字 ⁄ 字号 评论关闭

 

clear

 

set mac_length = 4

 

auto_response on

//===================================================================================

//                         交易流程正确性_复合交易流程

//===================================================================================

 

reset

 

call create_filesystem

 

reset

 

//-----------------------------------------交易测试

//---------------电子存折数据

//电子存折余额

set iedbal=00000000

 

//电子存折联机交易序号(用于修改透支限额、圈存、圈提)

set wedljjyxh=0000

 

//电子存折脱机交易序号(消费、取现)

set wedtjjyxh=0000

 

//电子存折透支限额(3字节)

set iedlimit=000000

 

//---------------电子钱包数据

//电子钱包余额

set iepbal=00000000

 

//电子钱包联机交易序号(用于修改透支限额、圈存)

set wepljjyxh=0000

 

//电子钱包脱机交易序号(消费)

set weptjjyxh=0000

 

//电子钱包透支限额(3字节,总是0)

set ieplimit=000000

 

//----------------交易中MAC1、MAC2、TAC变量定义

//$updatetac: 修改透支限额的TAC

 

//$edloadtac: 电子存折圈存的TAC

 

//$eploadtac: 电子钱包圈存的TAC

 

//$unloadmac3: 圈提的MAC3

 

//$edpmac2: 电子存折消费的MAC2

//$edptac: 电子存折消费的TAC

 

//$eppmac2: 电子钱包消费的MAC2

//$epptac: 电子钱包消费的TAC

 

//$edcashmac2: 取现的MAC2

//$edcashtac: 取现的TAC

 

 

//===============================================================================

//                         读DIR文件

//===============================================================================

00 a4 04 00 0E 31 50 41 59 2E 53 59 53 2E 4444 46 30 31

//if sw != 6F 15 84 0E 31 50 41 59 2E 53 5953 2E 44 44 46 30 31 A5 03 88 01 01 90 00

if sw != 9000

       pause

endif

 

//读第1条记录

00 b2 01 0c 13

if sw != 9000

       pause

endif

set tmp

if $tmp != 61 11 4F 09 A0 00 00 00 03 86 98 07 01 5004 50 42 4F 43

       pause

endif

 

//读第2条记录

00 b2 02 0c 13

if sw != 9000

       pause

endif

set tmp

if $tmp != 61 11 4F 09 A0 00 00 00 03 86 98 07 02 5004 50 42 4F 43

       pause

endif

 

//读第3条记录(不存在)

00 b2 03 0c 13

if sw != 6a 83

       pause

endif

 

//选不存在的文件,返回6a82

00 a4 04 00 09 A0 00 00 00 03 86 98 07 13

if sw != 6a 82

       pause

endif

 

 

//===============================================================================

//                         选择文件

//===============================================================================

00 a4 04 00 0E 31 50 41 59 2E 53 59 53 2E 4444 46 30 31

if sw != 9000

       pause

endif

set tmp

if $tmp != 6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 4444 46 30 31 A5 03 88 01 01

       pause

endif

 

00 a4 04 00 09 A0 00 00 00 03 86 98 07 02

if sw != 9000

       pause

endif

set tmp

if $tmp != 6F 11 84 09 A0 00 00 00 03 86 98 07 02 A504 9F 08 01 02

       pause

endif

 

//===============================================================================

//                         临时锁定应用

//===============================================================================

00 20 00 00 02 11 11

if sw != 63 c2

       pause

endif

 

00 20 00 00 02 11 11

if sw != 63 c1

       pause

endif

 

00 20 00 00 02 11 11

if sw != 63 c0

       pause

endif

 

00 20 00 00 02 11 11

if sw != 69 83

       pause

endif

 

 

//应用未锁定,不能应用解锁

//解锁应用无效

00 84 00 00 04

if sw != 9000

       pause

endif

set myrand

 

set rcmd=84 18 00 00 04

set tmp = fixed80( $rcmd )

set mymac = des_3des_mac( $myrand, $tmp, $damk )

84 18 00 00 ( $mymac )

if sw != 6985

       pause

endif

 

//未取随机数

84 1E 00 00 04 01 02 03 04

if sw != 6984

       pause

endif

 

//MAC不正确

00 84 00 00 04

if sw != 9000

       pause

endif

 

84 1E 00 00 04 01 02 03 04

 

//临时锁定应用

00 84 00 00 04

if sw != 9000

       pause

endif

set myrand

set rcmd=84 1e 00 00 04

set tmp = fixed80( $rcmd )

set mymac = des_3des_mac( $myrand, $tmp, $damk )

84 1e 00 00 ( $mymac )

if sw != 9000

       pause

endif

 

//---临时锁定应用后,相关命令执行无效

//选择当前应用无效,但T=1和非接返回FCI和6a81

00 a4 04 00 09 A0 00 00 00 03 86 98 07 02

if sw != 6a81

       pause

endif

set tmp

set len = datalen( $tmp )

if $len == 0000

       00 c000 00 13

       set tmp

endif

if $tmp !=  6F 11 84 09 A0 00 00 00 03 86 98 0702 A5 04 9F 08 01 02

       pause

endif

 

//PIN解锁无效

00 84 00 00 04

if sw != 9000

       pause

endif

set myrand

set rand

 

set tmp = 3des_encode_ecb( $pin, $dpuk )

set cipherkey = $dpuk

des_3des_mac 84 24 00 00 < $tmp >

if sw != 69 85

       pause

endif

 

//PIN重装无效

set newpin=112233445566

set cnewpinlen=@strlen($newpin)

set cp3=$cnewpinlen      4

//计算MAC

set myrand=0000000000000000

set tmp1 = mid( $drpk, 0, 8 )

set tmp2 = mid( $drpk, 8, 8 )

set drpsesk= xor( $tmp1, $tmp2 )

set tmp = fixed80( $newpin )

set mac= des_des_mac( $myrand, $tmp, $drpsesk )

80 5e 00 00 ( $newpin $mac )

if sw != 69 85

       pause

endif

 

//修改二进制文件无效

00 84 00 00 04

if sw != 9000

       pause

endif

set rand

 

//50h个字节

set old= random( 80 )             // 10进制80个

set cipherkey = $damk

des_3des_mac 04 d6 97 00     < $old >

if sw != 69 85

       pause

endif

 

00a40000020009

if sw != 6985

       pause

endif

 

//APPEND RECORD无效

00 84 00 00 04

if sw != 9000

       pause

endif

set rand

 

//50h个字节

set old= random( 80 )             // 80个

des_3des_mac 04 dc 00 03     < $old >

if sw != 69 85

       pause

抱歉!评论已关闭.