cap解析 java_Java Card CAP组件分析——Header Component | 学步园

header_component {

u1 tag

u2 size

u4 magic // 必须为0xDECAFFE

u1 minor_version

u1 major_version

u1 flags // ACC_INT - 0x01; ACC_EXPORT - 0x02; ACC_APPLET - 0x04

package_info package

package_name_info package_name

}

其中CAP File Package Flags:

Flags

Value

ACC_INT

0×01

ACC_EXPORT

0×02

ACC_APPLET

0×04

package_info {

u1 minor_version

u1 major_version

u1 AID_length

u1 AID[AID_length]

}

1

2

3

4

package_name_info {

u1 name_length // 当包内没有定义任何remote interfaces或者remote classes的时候值可以为0

u1 name[name_length]

}

以 HelloWorld.cap 文件中的Header.cap中的信息为例:

0×01 | 0×00 0×13 | 0xDE 0xCA 0xFF 0xED | 0×01 | 0×02 | 0×04 |0×00 0×01 | 0×09 | 0xA0 0×00 0×00 0×00 0×62 0×03 0×01 0x0C 0×01

tag: 0×01 COMPONENT_Header

size: 0×13 = 19 除去tag和size后的大小

magic: 0xDECAFFED 用以标识Java卡CAP文件格式,若一个文件不是以0xDECAFFED开头则肯定不是JavaCard CAP文件,因为它不符合规范

minor_version: 0×01 次版本号

major_version: 0×02 主版本号, 该CAP文件格式的版本号是02.01;如果CAP文件的版本号超出了Java卡虚拟机所能够处理的有效范围,Java卡虚拟机将不会处理该CAP文件

flag: 0×04 包中没有用到int类型、CAP文件中没有Export组件、CAP文件中有Applet组件。

package_info:

minor_version: 0×00

major_version: 0×01

AID_length: 0×09

AID: 0xA0 0×00 0×00 0×00 0×62 0×03 0×01 0x0C 0×01

对应卡内installer:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值