OMA通道-2

news2024/11/22 18:51:56

1 简介


本文档中指定的 API 使移动应用程序能够访问移动设备中的不同 SE,例如 SIM 或嵌入式 SE。 本规范提供了接口定义和 UML 图,以允许在各种移动平台和不同的编程语言中实现。 如果编程语言支持命名空间,则它应为 org.simalliance.openmobileapi,除非在平台绑定文档中明确更改。 对于过程接口,使用前缀“OMAPI_”代替

编者注:GlobalPlatform 打算在本规范的未来版本中拆分本文档,以便提供具有一组平台/语言绑定的高级功能 API 描述,作为解决围绕平台绑定出现的歧义的一种方法 在过去。 特别是,计划将现有的 TEE SE API 和用于访问 SE 的 WebAPI 将来成为 OMAPI 的平台绑定,并有一个新的单独文档描述广泛部署的 Java/Android 绑定。 本文档中的一些文本——尤其是在事件处理程序方面——旨在为这种拆分铺平道路。 本文无意在未来用于证明对已部署在市场上的 Open Mobile API 的平台绑定的向后不兼容更改的合理性。

2 Architecture
 

图 2-1 提供了 Open Mobile API 架构的概览。
该架构分为以下功能层:

• 当通过传输API 访问时,传输层为应用程序提供对SE 的一般访问。 传输层使用 APDU 与 SE 通信(详见第 4 节)。 在传输层之下是插件,它们在开放移动 API 的核心功能和用于与安全元素通信的低级机制之间提供接口抽象。

o Open Mobile API 与特定编程语言或软件平台的具体绑定可能会提供有关插件实现的特定指南。
o 每个 Reader 有一个插件实例。
o 某些插件可能会提供与相关安全元件的直接和无中介通信。 但是,其他插件可以通过中间子系统(例如调制解调器或 RIL)进行通信。
o 插件行为的某些方面可能超出了本文档的范围; 例如:错误处理、电源管理和恢复策略。 插件开发人员负责确保此类策略不会影响使用 Open Mobile API 的应用程序。
o 插件功能和行为将在第 7 节中进一步讨论。

• 服务层为SE 上的各种功能提供更抽象的接口。 它们可能比通用传输 API 更容易被应用程序开发人员使用。 一个示例可能是使用加密 API 的 sign() 函数并让加密 API 与 SE 交换所有 APDU 的电子邮件应用程序(而不是直接在电子邮件应用程序中处理所有必需的 APDU)

注意:本文档中的服务层已弃用

• 应用层代表使用开放移动API 的各种应用程序。

图 2-1 显示了在移动设备上实现 Open Mobile API 的可能架构。 由于给定设备上的 Open Mobile API 实现的各个方面依赖于 REE 和硬件,因此此体系结构的某些方面可能看起来因 REE 而异。 API 的描述使用抽象的面向对象的执行环境,支持聚合、异常处理、并发、回调和内部类。 针对不支持部分或全部这些功能的环境的映射提供了一些指导。 在图 2-1 中,我们展示了启用与安全元件连接的插件可以与托管 Open Mobile API 的执行环境以外的执行环境进行通信:

• 安全元件可以通过插件连接到传输API,该插件使用由REE 托管和控制的物理接口。 此类接口的示例包括 I2C、SPI 或由支持 CLF 的 REE 服务托管的 APDU 门。

• 安全元件(通常支持 UICC 功能)可以通过使用物理接口的插件连接到传输 API,例如 ISO/IEC 7816 中定义的接口,由调制解调器托管和控制。 在图中,无线电接口层为 REE 和调制解调器之间的通信提供代理。

 • 安全元件可以通过插件连接到传输API,该插件使用由TEE 拥有和控制的物理接口,例如I2C 或SPI。 所呈现的安排展示了一种允许使用 TEE 安全元件 API 规范 [TEE SE API] 的受信任应用程序和使用服务 API 或传输 API 的移动应用程序访问安全元件的方法。 请注意,在这种情况下,REE 应用程序还可以通过本身使用 TEE SE API(例如使用 TEE 客户端 API)的受信任应用程序与安全元件间接通信。 此类通信超出了本文档的范围。

来自 REE 或其他执行环境的安全元件连接的其他安排是有效的。 安全元件以多种形式存在,包括嵌入式安全元件、smartSD、智能 microSD、UICC、eUICC 和集成安全元件。 当我们在图 2-1 中提及安全元件时,我们指的是任何外形规格的符合 GlobalPlatform 标准的安全元件。 Transport API 包括一个访问控制执行器的实现。 结合连接的安全元素中的 ARA 小程序和/或 ARF,这使开放移动 API 能够使用 GlobalPlatform 安全元素访问控制规范 ([SEAC]) 来确保执行环境托管提供的安全级别 Access Control Enforcer,只有 SE 发行者或授权 SD 所有者授权的应用程序才能与 SE 上的小程序通信。

3 API Description
 

一般而言,本规范中描述的 API 定义了一个抽象接口,该接口使支持面向对象概念(例如异常或对象和实例)的软件平台能够访问 SE。 接口和数据类型不受特定软件平台或编程语言的约束。 相反,它们是通过可以相应地映射到相应平台表示的逻辑类型来定义的。 方法描述如下: <返回值类型> <方法名称> ( <parameter1 type> <parameter1 name> …) 可以定义本规范针对特定软件平台的具体绑定,例如: • The Open Mobile API – Android 绑定规范【Android Binding】定义了该规范在Android平台上的具体绑定。 • [TEE SE API] 定义了此规范在GlobalPlatform TEE 上的具体绑定。 以下类型用于描述返回值、参数和错误。 如果平台支持,错误可能会映射到异常。

3.1 Programming Language vs. ISO 7816-4 Language Conventions
 

本文档描述了一个 API,可用于实现涉及设备和 SE 的用例。 在本文档中,API 定义使用类似 Java 的语言约定。 与 SE 的交互使用 ISO/IEC 7816-4 [ISO 7816-4] 中的约定。 应特别注意以下约定:

• 使用“XX”或“xx”表示一个字节,表示为一对十六进制数字,其中每个 x 可以取以下值之一:“0”..“9”表示十进制值 0 到 9; ‘A’..‘F’代表十进制值 10 到 15; “X”表示 0 到 15 之间的任何十进制值。
• 为了保证到字节的明确映射,此语法只能用于偶数个十六进制数字(例如,'A34' 是非法的)。
• 一对直单引号内可以连接无限数量的字节。

3.5 Asynchronous Notifications
 

此规范定义了 API 以启用异步通知。 这些 API 捕获的基本行为是观察者模式的行为:
• 一种机制,观察者对象可以借此向某个主题对象注册或取消注册。
• 一种机制,通过该机制异步通知观察者对象某些主题对象的状态变化。
• 主体对象向观察者对象发起通知的机制。

在本文档中,异步通知是根据回调定义的。 虽然它们得到广泛支持,但它们不一定是某些系统上首选的异步通知机制,甚至可能不受此处定义的形式的支持。 在这种情况下,本规范与特定软件平台或编程语言的具体绑定可以提供观察者模式的等效替代实现。 一些例子包括:

• 单线程/协作多任务软件平台可以使用事件队列实现异步通知。
• 提供轻量级异步广播机制的平台可能优先使用这些机制而不是回调。
• 消息传递系统可能会通过发送包含所需内容的消息来实现异步通知

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

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

相关文章

Foxit PDF SDK OCR Add-on Library (C++, Windows)-Crk

OCR文档扫描--Crack version 使用Foxit PDF SDK OCR Add-on的光学字符识别&#xff08;OCR&#xff09;软件将扫描的文档转换为可搜索的文本PDF。专为扫描、归档和数字化而设计&#xff0c;我们的插件输出13种不同的文件格式&#xff0c;包括PDF和PDF/A。 在不投资数据输入人员…

Linux 禁用23端口

禁用23端口 前言 23端口是用于Telnet服务的默认端口。Telnet是一种早期的网络协议&#xff0c;允许用户使用一个远程终端连接到远程计算机上&#xff0c;以便在远程计算机上执行命令和操作。通过输入用于Telnet服务器的IP地址和端口号&#xff0c;用户可以在本地计算机上打开一…

【Java|golang】1090. 受标签影响的最大值---关联数组排序问题以及切片排序失败

我们有一个 n 项的集合。给出两个整数数组 values 和 labels &#xff0c;第 i 个元素的值和标签分别是 values[i] 和 labels[i]。还会给出两个整数 numWanted 和 useLimit 。 从 n 个元素中选择一个子集 s : 子集 s 的大小 小于或等于 numWanted 。 s 中 最多 有相同标签的 …

数据结构初阶--栈和队列OJ题

目录 前言有效的括号思路分析代码实现 用队列实现栈思路分析代码实现 用栈实现队列思路分析代码实现 设计循环队列思路分析代码实现 前言 本篇文章将对部分栈和队列综合运用题进行讲解&#xff0c;以对栈和队列有一个更深层次的理解。 有效的括号 先来看题 思路分析 这里…

优秀的流程图应该怎么设计呢?

优秀的流程图应该怎么绘制呢&#xff1f; 本文将带大家学习优秀流程图的绘制要点和技巧&#xff0c;以及讲解流程图与UML活动图、BPMN图之间的关系和区别。 1、认识流程图 流程图简单讲就是用图描述流程&#xff0c;这种流程可以是一种有先后顺序的操作组成&#xff0c;可以…

2024王道数据结构考研丨第六篇:查找、排序

到此&#xff0c;2024王道数据结构考研笔记专栏“基础知识”部分已更新完毕&#xff0c;其他内容持续更新中&#xff0c;欢迎 点此 订阅&#xff0c;共同交流学习… 文章目录 第七章 查找7.1查找表相关概念 第八章 排序8.1排序的基本概念8.2 插入排序8.2.1直接插入排序8.2.2折半…

使用Maven管理项目、导入依赖、测试打包项目、常用依赖

使用Maven管理项目 文章目录 使用Maven管理项目Maven项目结构Maven依赖导入Maven依赖作用域Maven可选依赖Maven排除依赖Maven继承关系Maven常用命令Maven测试项目Maven打包项目 Maven 翻译为"专家"、“内行”&#xff0c;是 Apache 下的一个纯 Java 开发的开源项目。…

hive函数03

自定义函数 Hive 自带了一些函数&#xff0c;比如&#xff1a;max/min等&#xff0c;但是数量有限&#xff0c;自己可以通过自定义UDF来方便的扩展。 在企业中处理数据的时候&#xff0c;对于敏感数据往往需要进行脱敏处理。比如手机号。我们常见的处理方式是将手机号中间4位…

MySQL表设计原则

前言 这里简单整理一些常用的数据库表设计原则以及常用字段的使用范围。 表的设计准则 1、命名规范 表名、字段名必须使用小写字母或者数字&#xff0c;禁止使用数字开头&#xff0c;禁止使用拼音&#xff0c;并且一般不使用英文缩写。主键索引名为 pk_字段名&#xff1b;唯…

SSL/TLS认证握手过程

一: SSL/TLS介绍 什么是SSL,什么是TLS呢&#xff1f;官话说SSL是安全套接层(secure sockets layer)&#xff0c;TLS是SSL的继任者&#xff0c;叫传输层安全(transport layer security)。说白点&#xff0c;就是在明文的上层和TCP层之间加上一层加密&#xff0c;这样就保证上层信…

ACP(MaxCompute篇)-MaxCompute开发工具

创建MaxCompute项目 第一种创建项目方式 1.知道MaxCompute服务。 2.创建项目。 3.创建成功。 第二种创建项目的方式 1.进入DataWorks控制台。 2.创建工作空间。 3.创建的类型。 4.创建计算方式。 5.自定义选择。 6.创建成功。 MaxCompute开发工具简介 Odpscmd 安装配置 下…

java boot项目认识一下三种格式的配置文件

之前我们在 application.properties 中写了很多配置 但boot并不是只有这种配置方式 boot提供了三种配置方式给我们 话不多说 直接上代码 我们先将 resources下的 application.properties给他干掉 然后在下面创建一个 application.yml 在下面编写代码如下 server:port: 81这…

Hystrix底层核心原理

1、Hystrix资源隔离技术 hystrix github 官方文档&#xff1a;Home Netflix/Hystrix Wiki GitHub hystrix可以完成隔离、限流、熔断、降级这些常用保护功能。 hystrix的隔离分为线程池隔离和信号量隔离 1.1、信号量隔离 信号量隔离就是hystrix的限流功能。虽然名字叫隔离…

企业应该如何选择一个靠谱的软件测试供应商?

人们的生活越来越离不开软件产品&#xff0c;随着选择越多&#xff0c;产品质量愈发重要&#xff0c;因此企业选择一个靠谱的软件测试供应商是一项关键任务&#xff0c;因为测试结果将直接影响到产品的质量、用户的体验和公司的声誉。以下是一些选择靠谱的软件测试供应商的技巧…

C++常用的支持中文的GUI库Qt 6之二:项目的结构、资源文件的使用

C常用的支持中文的GUI库Qt 6之二&#xff1a;项目的结构、资源文件的使用 上一篇Qt 6的下载、安装与简单使用https://mp.csdn.net/mp_blog/creation/editor/130730203&#xff0c;本文介绍Qt 6的项目的结构、资源文件的使用与发布。 基础 这一部分&#xff0c;初学时不明白是…

交通 | 考虑网络效应的共享出行差异化定价

封面图来源&#xff1a; https://www.pexels.com/zh-cn/photo/210182/ 编者按&#xff1a; 本文考虑了单程式共享汽车的定价问题&#xff0c;在考虑顾客需求网络效应以及实现影响的场景下&#xff0c;根据空间以及时间确定汽车租赁的单价以实现系统利润最大化。 1.引言 在过…

【C++】unordered_map unordered_set 练习题

文章目录 unordered系列关联式容器unordered_mapunordered_map的文档介绍unordered_map的构造接口使用: unordered_multimapunorder_map&&unorder_multimap对比:unordered_setunordered_set的文档介绍unordered_set的构造接口使用 unordered_multisetOJ练习961.在长度2…

( 回溯算法) 27. 移除元素 ——【Leetcode每日一题】

❓27. 移除元素 难度&#xff1a;简单 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以…

ip地址段分解与合并

1、为什么要分解和合并ip地址段 无他&#xff0c;工作需要嘛&#xff0c;谁没事去划分ip地址段 优点&#xff1a;可以节省大量的时间&#xff0c;减少算错的可能性 2、工具下载 下载链接&#xff1a; https://github.com/zhanhb/cidr-merger github在国内使用不太友好&#…

14、IIC主机控制--引脚软件模拟

时序图&#xff1a; 软件基于STM32 HAL库 IIC–定时器精确延时 软件用涉及到使用定时器做精确延时&#xff0c;可以参考我的文章–“CubeMx 定时器高精度延时” 延时使用的文件&#xff1a; tim.c /*********************************************************************…