OMA通道-2
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 捕获的基本行为是观察者模式的行为:
• 一种机制,观察者对象可以借此向某个主题对象注册或取消注册。
• 一种机制,通过该机制异步通知观察者对象某些主题对象的状态变化。
• 主体对象向观察者对象发起通知的机制。
在本文档中,异步通知是根据回调定义的。 虽然它们得到广泛支持,但它们不一定是某些系统上首选的异步通知机制,甚至可能不受此处定义的形式的支持。 在这种情况下,本规范与特定软件平台或编程语言的具体绑定可以提供观察者模式的等效替代实现。 一些例子包括:
• 单线程/协作多任务软件平台可以使用事件队列实现异步通知。
• 提供轻量级异步广播机制的平台可能优先使用这些机制而不是回调。
• 消息传递系统可能会通过发送包含所需内容的消息来实现异步通知
相关文章:

OMA通道-2
1 简介 本文档中指定的 API 使移动应用程序能够访问移动设备中的不同 SE,例如 SIM 或嵌入式 SE。 本规范提供了接口定义和 UML 图,以允许在各种移动平台和不同的编程语言中实现。 如果编程语言支持命名空间,则它应为 org.simalliance.openmob…...

SAP 用CO13冲销工序报工,但是没有产生货物移动(TCODE:CO1P 、 SE38 :CORUPROC,CORUAFWP)
前言 通常情况下,对PPO做GI或GR的时候,出现的异常可以在COGI中间被列出;在这些数据进入COGI之前,系统会把这些数据记录在CO1P中;换句话说,系统有时会出现DB的更新延时,当延时发生的时候…...

信息收集-服务器信息
服务器上面可以运行大量的系统服务和第三方应用服务,如果操作系统或者第三方软件没有及时升级打补丁,攻击者就有可能直接通过服务器上运行的服务进行攻击。 服务器需要收集的信息包含三个方面: 操作系统信息等识别waf(Web应用程…...

连续签到积分兑换试用流量主小程序开发
每日签到积分兑换试用流量主小程序开发 打卡兑奖小程序。用户签到活得积分。积分可以兑换商品。观看激励视频广告可以积分翻倍。 用户可以参加试用商品活动参加试用需要提交信息。可以通过分享方式直接获取试用资格。 以下是流量主小程序的功能列表: 广告位管理&a…...

C语言—自定义类型(结构体、枚举、联合)
自定义类型 结构体结构体的声明特殊的声明结构的自引用结构体变量的定义和初始化结构体内存对齐修改默认对齐数offsetof宏 结构体传参 位段位段的定义(声明)位段的内存分配位段的跨平台问题位段的应用 枚举枚举类型的定义及使用枚举的优点 联合ÿ…...

Node.js博客项目开发思路笔记
博客项目介绍 1. 目标 开发一个博客系统,具备博客基本功能只开发 server 端,不关心前端 2. 需求 首页、作者页、博客详情页登陆页管理中心、新建页、编辑页 3. 技术方案 数据如何存储 博客 idtitlecontentcreatetimeauthor1标题 1内容 11111112z…...
python 之 shutil 文件的复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压
一、shutil shutil 模块于文件和文件集合的高级操作,包括:复制、删除、移动文件以及目录,并支持文件的归档、压缩和解压等 二、使用例子 复制文件及权限 shutil.copy(src, dst)复制文件及权限;src 和 dst 文件路径。dst 文件名或…...

jface
JFace 是建立在 SWT 之上的 UI 部件,它是 SWT 的扩展并能和SWT交互。 ApplicationWindow和Action org.eclipse.jface.window.ApplicationWindow; JFace为了简化窗口的设计特别设计了类,比如ApplicationWindow这一个类,它里面包含了六个默认…...

六级备考28天|CET-6|听力第一讲|基本做题步骤与方法|13:30~14:30
目录 1. 重点词汇 proofread / ˈpruːfriːd / v.校对,校阅 autonomous adj.独立的 obsession n. 喜好 ample …...

系统设计 - 设计一个速率限制器
实施速率限制器的位置主要取决于我们的应用程序、技术栈、技术团队等因素。通常有三个位置可供选择:客户端、服务器端或中间件。 客户端是不可靠的地方来执行速率限制,因为恶意行为者可以轻易伪造客户端请求。 比将速率限制器放在服务器端更好的方法是使…...

[技术分享]Android平台实时音视频录像模块设计之道
实现背景 录像有什么难的?无非就是数据过来,编码保存mp4而已,这可能是好多开发者在做录像模块的时候的思考输出。是的,确实不难,但是做好,或者和其他模块有非常好的逻辑配合,确实不容易。 好多…...
JDKMissionControl官方用户指南--人工翻译
1. JMC8新增功能 暂时用不到,暂略 2. JDK Mission Control是什么 JMC是一组高级工具,用于管理、监视、分析Java应用程序并排除其故障。JMC能够对代码性能、内存和延迟等领域进行高效而详细的数据分析,而不会引入通常与分析和监控工具相关的…...

MySql-高级(分库分表问题简析) 学习笔记
文章目录 1. 为什么要分库分表?2. 用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?3. 你们具体是如何对数据库如何进行垂直拆分或水平拆分的?4. 分库分表时,数据迁移方案5. 如何设计可以动态扩容缩容…...

【5.20】五、安全测试——安全测试工具
目录 5.4 常见的安全测试工具 1. Web漏洞扫描工具——AppScan 2. 端口扫描工具——Nmap 3. 抓包工具——Fiddler 4. Web渗透测试工具——Metasploit 小提示:Kali Linux 5.4 常见的安全测试工具 安全测试是一个非常复杂的过程,测试所使用到的工具也…...
【13900k】i9 核显升级驱动
这里写自定义目录标题 官方的助手不能用显卡控制中心提示最新的更新搜索显卡 intel uhd graphics 770 手动下载安装自定义音频为啥也要卸载?新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片…...
使用Python将绿色转换为红色、红色转换为蓝色的图像处理
使用Python将绿色转换为红色、红色转换为蓝色的图像处理 在图像处理中,我们经常需要对图像进行颜色转换和修改。本篇博客介绍了如何使用Python的Pillow库来读取一个文件夹中的所有图像,并将其中的绿色转换为红色,红色转换为蓝色。我们还展示…...

Web2与Web3开发的不同之处
Web2是引入交互功能的第二代互联网,也是我们今天所熟悉的。随着Web的不断发展,第三代互联网,也被称为Web3,正处于积极开发中。Web3引入了在区块链上运行的去中心化和无需许可的系统。但是Web2和Web3开发之间有什么区别呢ÿ…...
递增数组的判断【python实现】
有时候需要对某一组数组的数据进行判断是否 递增 的场景,比如我在开发一些体育动作场景下,某些肢体动作是需要持续朝着垂直方向向上变化,那么z轴的值是会累增的。同理,逆向考虑,递减就是它的对立面。 下面是查找总结到…...
在自定义数据上训练 YOLOv8 实例分割
图像分割是一个核心视觉问题,可以为大量用例提供解决方案。从医学成像到分析流量,它具有巨大的潜力。实例分割,即对象检测+分割,甚至更强大,因为它允许我们在单个管道中检测和分割对象。为此,Ultralytics YOLOv8 模型提供了一个简单的管道。在本文中,我们将对自定义数据…...
洛谷密钥被破解:加密安全面临新挑战
密钥管理是加密系统中非常重要的一环,它涉及到密钥的生成、存储、分发、管理和销毁等多个方面。在密码学中,密钥是保护数据隐私和安全性的核心因素之一,因此,确保密钥的安全和保密性显得尤为重要。在2016年举办的 CQOI 数论竞赛中…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...