JavaCard模拟器字节码

CAPRunner的Python项目详细描述


概述

caprunner是一个javacard字节码模拟器,它能够执行cap 文件夹。它还附带了一个方便的runcap.py绑定它们 一起让你发送一些apdu到cap文件(没有 需要智能卡)。

示例

以下脚本可以由runcap.py运行。它加载一个cap文件, 从文件中安装并实例化一个applet,发送两个apdu和 检查他们的状态字:

load: /path/to/helloworld.cap

install: 0a a0 00 00 00 62 03 01 0c 01 01 00 00 00 : 00

Select HelloWorld //aid/A000000062/03010C0101

==> 00 a4 04 00 0a a0 00 00 00 62 03 01 0c 01 01 7F
<== 00 A4 04 00 0A A0 00 00 00 62 03 01 0C 01 01 90 00

==> 80 B8 00 00 0C 0A
<== 80 B8 00 00 0C 90 00

示例取自javacard工具包,可以在samples/classic_applets/HelloWorld下找到。

依赖关系

为了编译cap文件,您需要一个工作的java 开发工具包和JavaCard开发工具包。

此项目还依赖于以下其他项目:

注意

如果小程序依赖于pythonplatform,则只需要pythonplatform。 在一些全局平台功能上,如安全消息传递。

安装

目前,您最好的机会是使用 Mercurial到本地目录:

$ hg clone https://bitbucket.org/benallard/caprunner/

这将在^{tt5}中创建存储库的副本$ 目录

为了使依赖关系正确,我建议您也克隆它们 存储库(第二个是可选的):

$ hg clone https://bitbucket.org/benallard/pythoncard/
$ hg clone https://bitbucket.org/benallard/pythonplatform/

最后,解析依赖项的最简单方法是copy (或link在unix上)在 caprunner目录:

  • ^来自pythoncard的{tt7}$、pythoncardpythoncardx。 目录
  • 和(optionnaly)org,来自pythonplatform目录。

开始

最后一步,您需要compile使用的导出文件 在将applet编译为json文件期间。这一步是 不需要在每次启动时读取每个导出文件。

这是通过以下命令行完成的:

$ genref.py --dump dump.json /path/to/export_files

这将生成一个名为dump.json的文件,其中包含 导出文件中的必要信息。第二条路 参数是包含 javacard开发工具包(例如api21_export_files目录 对于JavaCard2.1.2)。

caprunner希望调用生成的json文件 <JavaCard version>.json

最后,您应该能够启动runcap.py。默认情况下 将模拟JavaCard Classic 3.0.1,如果需要其他版本, 把它作为参数。例如:

$ ./runcap.py 2.1.2

从这里开始,runcap将等待您的订单。请参考 发送到documentation的订单格式 runcap

贡献

  • 如果某个问题困扰着你,那么issue tracker就是你最好的朋友 首先。
  • 如果你想帮助我改进这个项目,写更多的文档或者 增加功能性,对你来说最好的是让自己 在BitBucket上记帐,叉出repository并拉动 请求。很有可能我也接受每封邮件的修补程序。

RTFM!

documentationReadTheDocs每次提交后。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否可以创建一个正则表达式来查找与模式不匹配的字符串?   使用“debugUnreturnedConnectionStackTraces”进行java调试连接丢失   java如何在openLDAP中禁用/启用用户帐户?   java无法从jsoup api获取某些类   java无法从APK提取XML文件   如何在linux命令行中替换多个文件中的字符串   java学生班。如何根据单位输入打印成绩?   java有没有办法将Struts配置为绑定null而不是空字符串?   python使用OpenCV[Java]检测简单几何形状   java文件。isFile()和文件。isDirectory()返回false   java Fetch有条件地加入hibernate,还是将实体设计更改为子实体上的条件Fetch?   java lombok@Data generated setter是否对成员对象(如映射)执行深度复制?   java如何使JLabel从下一行开始   java Gradle依赖解决了配置文件的问题