HCI-1

news2024/12/23 17:50:01

3.1 定义

就本文档而言,适用以下术语和定义: 嵌入式安全元件主机:在不可移动安全元件中实现的主机

门:主机内部运行的服务的入口点

主机:运行一项或多项服务的逻辑实体 主机控制器:还负责管理主机网络的主机

主机网络:两个或多个主机的网络管理主机(MH):负责解决 GlobalPlatform 卡中定义的不同主机提供的不同非接触式应用程序之间的冲突和互操作性问题的主机; 多个非接触式安全元件 - 管理实体 [12]

管道:来自不同主机的两个门之间的逻辑通信通道

注册表:与门相关的数据,存储为参数-值对的集合

服务:主机中相关原子功能的集合,用于管理目的或执行非接触式操作

4 人机交互架构

4.1 概述

有效的主机网络具有星形拓扑,其中一台或多台主机物理连接到主机控制器。 HCI 定义了主机之间的接口。 更具体地说,HCI 分为三个级别:

• 交换命令、响应和事件的门的集合; 和

• HCP 消息传递机制; • HCP 路由机制,可以在需要时选择性地对消息进行分段。

图 1 说明了可能的主机网络中的 HCP 堆栈。

 

注:为了清楚起见,仅显示了两个门。 特别是,主机控制器还具有通过 HCP 连接到其他主机的门。

为了正确运行,HCP 要求底层数据链路层具有以下属性:

• 数据链路层(例如SWP)应无错误,并且应尊重接收/发送数据的顺序。

• 数据链路层提供其自己的数据流控制。

• 数据链路层应传送上层数据包,直至达到数据链路层特定的最大尺寸。

• 数据链路层应向上层报告每个接收到的数据包的大小。

在本文档中,通用术语“主机”用于指代除主机控制器之外的任何逻辑主机(例如终端主机、UICC主机)。

主机控制器应使用动态分配的值范围为表 1 中未标识的任何主机分配主机标识符。只要没有修改,主机控制器应始终在不同会话中为给定主机分配相同的 HID 在设备的硬件配置中。 当主机控制器为主机使用动态分配的 HID 时,主机将能够在管道创建时(ADM_CREATE_PIPE 命令的应答中的源 HID)或在主机控制器管理门注册表中检索自己的 HID。

HID 值“02”适用于检测到的第一个 UICC,优先级为预发布 12 UICC。 其他 UICC(如果存在)将使用动态分配的 HID 值。

注意:主机控制器可以通过检查身份管理门中的 HCI_VERSION 或通过 UICC 在主机控制器管理门中设置 HOST_TYPE 来检测支持版本 12 或更高版本的 UICC。

如果有多个预发布的 12 UICC,则只有第一个会被分配 HID“02”,其他的将被动态分配。

4.3 门

门提供了在主机内运行的服务的入口点。 HCP 使来自不同主机的门能够交换消息。 有两种类型的门:

• 管理主机网络所需的管理门。

• 与主机网络管理无关的通用门。 HCI 核心中仅定义了这些门的通用方面。

门的类型由门标识符来标识。 门标识符在表 2 中列出,并且在主机范围内是唯一的(“10”到“FF”),或者它们的值引用每个主机的相同门类型(“00”到“0F”)

本文档中定义的主机特定门(包括 RFU 门)保留在本文档中使用。

以下规则适用于主机和门:

• 所有主机和主机控制器应有一个管理门(参见第7.1.1 条); 和

• 所有主机可以有一个链路管理门(参见第7.1.2 节),并且主机控制器应有一个链路管理门; 和

• 所有主机和主机控制器应有一个身份管理门(参见第7.1.3 条); 和

• 所有主机和主机控制器应有一个环路后门(参见第7.1.4 条); 和

• 所有主机和主机控制器都可以有一个或多个通用门(参见第7.2 节)。

4.4 管道

管道是两个门之间的逻辑通信通道。 有两种类型的管道:

• 始终可用的静态管道,即不需要创建且无法删除; 和

• 可以创建和删除的动态管道。

管道的状态要么是打开的,要么是关闭的。 如果主机断电并再次上电,该状态将保持持久。 如果主机暂时从主机网络中删除并且同时没有被不同的设备替换,它也应保持持久性。 动态管道创建后的状态和静态管道的初始状态应该是关闭的。

管道标识符 PID 长 7 位。 PID 值在 HCP 数据包的标头中用作路由信息(参见第 5.1 节)。 对于静态管道,管道标识符是使用表 3 中定义的值预定义的。对于动态管道,管道标识符由主机控制器动态分配。

以下规则适用于闸门和管道:

• 静态管道始终将主机的门连接到主机控制器的门;

• 动态管道连接来自不同主机的两个门; 和

• 静态和动态管道连接到不同类型的闸门; 映射见表3; 和

• 动态管道标识符在主机网络中应是唯一的。

 

4.5 注册表

每个门都可以关联一个注册表模板,该模板定义了与该门相关的参数。 参数由一个字节组成的参数标识符来标识。 参数标识符在门范围内是唯一的。

对于本文档中定义的所有门,“00”到“EF”范围内的参数标识符被保留以在本文档中使用。 “F0”到“FF”范围内的参数标识符可用于专有目的。

为连接到门的每个管道创建一个新的注册表实例。 创建管道后,所有具有读写(RW)或只写(WO)访问权限的注册表参数应设置为其默认值。 只读(RO)参数应由管理注册表的实体设置为可能与默认值不同的适当值。

主机负责管理其关联的注册表。 注册表的持久性和参数的默认值应通过每个注册表描述来指示。

当删除管道时,其注册表实例也会被删除。

5 HCP

5.1 HCP数据包

使用数据链路层主机与主机控制器交换数据包。 数据包的格式定义如图3

数据包头中字段的解释应如下:

• CB 是链接位,除非使用消息分段,否则其值等于 1(参见第 5.3 节); 和

• PID 指定管道标识符。

主机控制器使用 PID 值将数据包转发到目标主机。 目的主机将数据包转发到目的网关。 使用这些机制,通过管道连接的任何两个门都可以交换消息。

主机控制器应验证管道标识符是否由参与管道创建的主机使用。

消息的大小是特定于应用程序的。 消息结构在第 5.2 节中描述。

 

5.2 HCP message structure
 

一条消息携带一条指令和可选数据,如图 4 中所定义。

消息头中各个字段的含义如下:
• TYPE 标识指令的类型; 和
• 指令标识指令。
定义了以下类型的指令:
• 命令(类型值0);
• 事件(类型值1); 和
• 对命令的响应(类型值2)。

类型值 3 是 RFU。 指令值进一步限定命令、事件或响应。 所有三种类型都可以携带数据。

对于说明,适用以下规则:

• 事件是在接受事件的门的范围内定义的。

• 命令是在接受命令的门范围内定义的。

• 响应是在其关联命令的范围内定义的。

除非另有说明,门仅在管道处于打开状态时接受管道上的命令或事件。 除非另有说明,当门在等待对管道上的先前命令的响应时,不得在管道上发送命令或事件。 即使在等待对先前发送的命令的响应时,门也应解释传入的事件和命令。

 

5.3 消息分片

当消息的大小大于底层数据链路层支持的大小时,应使用消息分段。 消息应根据以下规则进行分片:

• 所有消息片段都应具有数据包标头。

• 数据包标头中链接位的值等于 0,但具有最后分段消息的数据包除外,该值应为 1。

• 只有第一个消息片段应包含消息头。

图 5 说明了如何将一条消息拆分为两个片段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676289.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊 分布式系统 中的补偿机制设计问题

一、关于业务补偿机制 1、什么是业务补偿 2、业务补偿设计的实现方式 二、关于回滚 1、显示回滚 2、回滚的实现方式 三、关于重试 1、重试的使用场景 2、重试策略 3、重试时的注意事项 四、业务补偿机制的注意事项 1、ACID 还是 BASE 2、业务补偿设计的注意事项 我们知…

Langchain+本地大语言模型进行数据库操作的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Navicat Premium 16执行.sql语句中含有汉字乱码造成view和function创建后无法使用

Navicat Premium 16执行.sql语句中含有汉字乱码造成view和function创建后无法使用 如图,从这里选择sql时没法改sql。所以造成我昨天创建view和function时创建好的前面有感叹号没法用。打开一个fun看里面的汉字是问号。 所以要从这里打开: 1. ultraedit…

EMC学习笔记(十)特殊信号的EMC处理(二)

特殊信号的EMC处理(二) 1.对外接口的EMC设计标准电路1.1 DVI EMC设计标准电路1.2 HDMI接口EMC设计标准电路1.3 LVDS接口EMC设计标准电路1.4 PS2接口EMC设计标准电路1.5 RJ11 EMC设计标准电路1.6 SCART接口EMC设计标准电路1.7 s-video接口EMC设计标准电路…

五个步骤,助你优雅的写好 Controller 层代码!

Controller 层逻辑 普通写法 优化思路 Controller 层逻辑 MVC架构下,我们的web工程结构会分为三层,自下而上是dao层,service层和controller层。controller层为控制层,主要处理外部请求,调用service层。 一般情况下…

6.23黄金是否会跌破1900?多单被套怎么办?

近期有哪些消息面影响黄金走势?今日黄金多空该如何研判? ​黄金消息面解析:周四(6月22日)美市尾盘,现货黄金收报1910美元/盎司,下跌20美元或0.1%,日内最高触及1934.95美元/盎司&…

C++ 面向对象(1)——类 对象

C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量&a…

Studio One6中文版多少钱?有哪些新功能

Studio One6中文版现在有三个版本,免费版,Artist,Pro版本。下载后是免费版,免费版没有时间限制,但是功能受限。三个版本都支持win/mac系统,而且同时支持5台设备使用,还可以换机使用。 三个版本…

Spring Cloud Day2 Nacos配置管理、Feign远程调用与Gateway服务网关

SpringCloud实用篇02 0.学习目标 1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我…

关闭 MAC 的 Microsoft AutoUpdate 自动更新

不是我说,这玩意儿看着是真不爽!!而且每天都要弹出来搞事情!!! 我宣布:今天就要永久关闭 MAC 的 Microsoft AutoUpdate 自动更新!! 像我一样的朋友请举手!&am…

Linux学习[17]bash学习深入3---万用字符特殊符号---数据流重导向

文章目录 前言1. 万用字符2. 特殊字符3. 数据流重导向3.1标准输出3.2 标准输入 总结 前言 这篇博客是对之前在查找的时候涉及到的一些通配符(bash里面就是万用字符)的整理。这个为后面管线相关打一个基础。 1. 万用字符 这里整理了一个表格,后面配上相关实例。 符…

定制化你的应用外观:gradio的自定义主题功能

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Axure教程——多项选择器

本文介绍利用Axure里的中继器和动态面板制作一个多选下拉列表 一、效果 预览地址:https://frh0rc.axshare.com 二、功能 1、点击下拉框可以弹出选项,点击选项可以选中选项2、用户可以取消选中 三、制作 1、制作下拉框 拖入一个矩形组件,命名为“下拉框…

C++——指针空值

在良好的C/C编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现不可预料的错误,比如未初始化的指针。如果一个指针没有合法的指向,我们基本都是按照如下方式对其进行初始化: void TestPtr() {int*…

python---案例分析(2)

例5: 使用python生成一个二维码 结果就会显示一个二维码!拿出手机扫描二维码就可以看到make中填写的内容! 例6: 操作excel 使用python计算平均分的情况 首先在自己的pycharm上安装xlrd 必须是上述版本的 安装成功版本后,import一下即可使用 以下是计算100班的平均分 例6: …

后端开发通用

1、前后端开发 项目基于前后端分离的架构进行开发,前后端分离架构总体上包括前端和服务端,通常是多人协作开发 对于后端java工程师 把精力放在设计模式,springspringmvc,linux,mysql事务隔离与锁机制,mongo…

typescript找不到模块‘vue‘ ‘vue-router‘

import { createRouter, createWebHashHistory, createWebHistory } from vue-router 提示:找不到模块“vue-router”。你的意思是要将 "moduleResolution" 选项设置为 "node",还是要将别名添加到 "paths" 选项中?ts(27…

Python基础篇(五):函数的定义和调用

Python基础篇(四):基本数据类型的学习和示例 函数的定义和调用 前言1. Python 函数示例2. 自定义函数2.1 函数语法2.2 函数示例2.3 函数调用 3.内置函数3.1 数学函数3.2 类型转换函数3.3 序列操作函数3.4 输入输出函数3.5 文件操作函数3.6 迭代函数3.7 集合操作函数…

C#期末考试总结:

考点1:内插字符串$(使用方法:$"........{变量名}.....",作用:可读性增强,本身个也是一个字符串,可以作为一个变量赋值,有利于字符串的生成 考点2:强类型语言 考点3&…

【Unity之IMGUI】—自定义常用控件的封装(即拿即用)

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…