Java card
Victor _Lv
个人微信公众号:维特小站(VictorSite)
展开
-
Javacard Applet运行必经步骤
Javacard Applet运行必经步骤: 命令作用 JCOPPython测试工具(1)卡片复位(ATR) /card reset(2)设置密钥 set-keyinit-update(3)外部认证 external-authentification(4)非必须: delete掉相应AID的package和Applet(若有的话)(原创 2016-07-26 23:21:47 · 1639 阅读 · 0 评论 -
javacard软件架构
(1)最底层是硬件(芯片),然后会提供硬件的接口(底层驱动)。(2)网上是卡片的操作系统,是定制的微型操作系统,不是你想的Linux。(3)操作系统网上才是虚拟机,也就是说虚拟机必须依赖于操作系统!虚拟机不是操作系统!!(4)虚拟机网上是java卡框架和API接口。(5)最顶层就是Applet。中间也可以有其他的一些层级,比如虚拟机和Applet之间还可以有个Apple原创 2016-07-12 22:01:19 · 1384 阅读 · 0 评论 -
Javacard DES/AES/RSA/Hash/Sinature算法API使用示例
前面一篇DES算法API使用示例代码写得比较渣,特别是在部门里的老前辈帮我看了下代码风格之后深感如此。本篇介绍本人写的一个国际算法(区别于国密算法SM2/SM3这些)API调用的示例applet:话不多说,直接先上代码,后面再补充解释下,代码上也有我附带的较为详细的注释。(1)Des API调用文件-Des.java:package helloWorld;import j原创 2016-07-26 23:01:30 · 5854 阅读 · 6 评论 -
javacard DES算法API使用示例
很多时候我们并不需要自己去实现一个较为复杂的算法,而只需要知道怎么去调用现有的实现。API调用,在C/C++是用include+函数的形式,java其实也无非就是import+类(方法、变量)的形式,其他语言的也差不多,例如web里面的前端框架,所谓框架其实就是一堆别人已经写好的代码,你拿去用,然后继续在上面填充自己的代码,说到底其实就是代码复用。而在java这里,因为以.class文件的形式封装原创 2016-07-17 19:51:38 · 6971 阅读 · 0 评论 -
2017年3月15日留言 ——关于Java卡Applet系列csdn博文
貌似有不少人在看我写的几篇关于java卡applet的博文,也收到了一些评论指正博文错误,或者私信叫我发代码文件过去。在此需要说明的是,java卡applet的这几篇博文是自己在初学java卡applet的时候写的,当时菜鸟一枚(虽然现在也还是菜鸟),未免会有些疏漏,仅供参考,希望大家在看的时候别太当权威,如果博文中有错误也请谅解。另外关于叫我发代码的,因为有些代码文件中的部分代码并非是我写的,怕原创 2017-03-15 17:12:54 · 867 阅读 · 0 评论 -
将你的一言一行公布到互联网上之前应三思
今天无意中发现自己的某些博文被更多的“黑”网站不注明转载地就copy过去了,或者说是被爬虫过去了,听说其实csdn博文基本上点字数的都会被一大堆爬虫爬,所以我猜只有很少阅读量的那些博文估计就是被爬虫爬出来的。一些“黑”网站就靠这爬取csdn或者博客园等等的一些原创内容网站的优质原创内容然后直接抄袭过去,赖以为生。而在对于搜索引擎搜索结果(SEO),这类黑网站往往比你本身的博文出处例如csdn更排到原创 2017-05-15 15:46:15 · 797 阅读 · 5 评论 -
电子钱包的消费——java card开发第五篇
先来看看流程图:会发现与圈存的流程大致差不多,只不过有一个很大的差别就是mac值的生成,与圈存不同的是,消费流程中终端首先给卡片发送消费初始化命令,卡片收到命令之后并不会产生mac1的值,而只是产生一个伪随机数返回给终端,然后终端收到返回数据之后,再用这个伪随机数去产生过程密钥,进而产生mac1值,然后将这个mac1的值附带在消费命令中发给卡片,卡片收到之后,验证mac1并产生原创 2016-04-13 15:56:12 · 9134 阅读 · 0 评论 -
电子钱包的圈存——java card开发第四篇
隔了好久没更新了,前一篇创建好了文件系统,那现在就可以实现使用电子钱包了,这篇首先讲电子钱包的圈存,其实就是存款进去的意思。首先看一个灰常重要的流程图:首先,终端(连着主机,他们的另一边是卡片)给卡片发送圈存初始化命令,命令格式如下表: 卡片收到这个初始化命令之后,首先是根据密钥标识符找出相应的圈存密钥,并做一系列的判断(比如没找到或者啥的),反映到代码就是根据判断抛出异常原创 2016-04-12 23:20:02 · 8536 阅读 · 0 评论 -
写入文件和读取文件信息—Java Card开发第三篇
上一篇介绍了如何创建文件,本篇介绍如何将密钥或者持卡人信息等写入相应的文件去,以及如何从文件中读取应用或者持卡人的信息。原创 2016-04-02 23:09:41 · 3818 阅读 · 0 评论 -
文件系统创建—Java Card开发第二篇
首先要知道Java card里面的文件系统结构,也就是有哪些文件:包括四大类文件,应用基本文件——也就是发卡方官方的一些信息,然后是持卡人个人信息的文件,再就是EP(电子钱包)文件,以及最重要的密钥文件。并且密钥文件必须先于其他三个文件之前创建,因为没密码你弄啥操作不科学呀。几大文件反应到代码中就是几大数据结构:理解了文件系统之后原创 2016-04-02 14:07:01 · 5294 阅读 · 7 评论 -
获取缓冲区内容与将缓冲区内容返回—Java card开发第一篇
任务描述:先上代码,然后再解析:package test;//import HelloWorld;import javacard.framework.APDU;import javacard.framework.Applet;import javacard.framework.ISO7816;import javacard.framework.ISOExcept原创 2016-03-31 19:32:50 · 4437 阅读 · 1 评论 -
Javacard的内部认证和外部认证
本篇讲讲Javacard的双向验证:简单地讲,内部认证是卡片产生密文,外部机器验证(机具验证CPU卡),而外部认证是卡片外部的机器(如终端)产生密文,卡片验证(CPU卡验证机具)。CPU卡外部认证步骤简略分析:(1)卡产生8 bytes的随机数发给机具,并临时保存一份在卡内。(2)机具将收到的随机数,对其用密钥加密,得到8 bytes的密文,发给卡。(3)卡自己也用同样原创 2016-07-26 23:16:23 · 2831 阅读 · 0 评论 -
MF、DF、EF文件
“SIM卡里的所有文件按树来组织:主文件MF(Master File)——每一块SIM卡只有一个唯一的主文件, 其他所有文件都是它的子孙, 主文件只有文件头,里面存放着整个SIM卡的控制和管理信息专用文件DF(Dedicated File)——也是只有一个文件头, 里面存放着整个目录的管理控制信息, 专用文件相当于一个目录的根.基本文件EF(Elementary File)——既有文件原创 2016-07-17 17:44:16 · 5220 阅读 · 0 评论 -
Applet执行流程
本篇简单地以JCOP Shell工具为例讲讲Applet执行流程。无论是JCOP Shell工具,抑或是其他的执行Applet的工具,遵循的都是一套规范,要执行Applet,都要做好那几个工作(包括外部认证、下载cap文件到卡片、安装Applet、选定AID等操作),最终转换成APDU指令(也就是那一堆十六进制的字节)都是一样的,卡片可不管你用啥工具发,只要发给我的APDU指令遵循规范格式就行原创 2016-07-17 20:06:24 · 2197 阅读 · 0 评论 -
Java card 小 demo -- 电子钱包应用
个人 JavaCard 系列博文涉及到的 demo 代码:Java card 小 demo – 电子钱包应用两年多以前的代码,不知道找出来的还是不是以前的工程,我上传到github上了:[][https://github.com/Victor-Lv/Wallet/blob/master/purse.zip]仅供参考,当年菜鸟写的程序,如有疏漏请包涵。...原创 2018-09-19 11:14:41 · 1201 阅读 · 0 评论