基于形式化精化的Java Card原生API认证
1. 模型与方法概述
在Java Card开发中,为了验证原生函数是否符合其规范,采用了基于精化的方法,使用了三个中间模型:FSP模型、HLD模型和LLD模型。FSP模型基于非正式规范描述函数的预期输入和输出;HLD模型在抽象的JCVM上定义函数算法;LLD模型在具体的JCVM实现上对算法进行精化。
下面是一个LLD模型中 export 方法的定义:
Definition cvm export (args: list cvm word) (cin: cvm state): cvm state :=
match args with
| fst ::
⇒let obj := cvm word2address fst in
try1 hdr := cvm get object header cin obj in
try1 selapp := cvm selected applet cin in
IF (fivma test jcre context (selected applet context selapp))||
(fivma test obj same owner (selected applet context selapp)
(cvm object status hdr))
THEN
cvm frame push (cvm set remote object header cin obj true) szero
ELSE
cvm frame push
(cvm frame push cin (address2cvm word SecurityExcept
超级会员免费看
订阅专栏 解锁全文

2943

被折叠的 条评论
为什么被折叠?



