Javacard 共享接口:lookupAID 返回 AID,但 getAppletShareableInterface 返回 null

2024-02-02

编辑2:发现错误。我尝试在构造函数中初始化 Shareable 对象。此时客户端的register方法还没有被调用,所以JCRE没有它的AID。虽然我的服务器的 getShareableInterfaceObject(AID clientaid, byte parameter) 方法不要求客户端的 AID 为 != null,但 JCRE 可能会这样做,因为它为我的客户端调用此方法。现在,当我处理第一个 APDU 时,我会初始化我的 Shareable 对象,并且它现在可以工作了。

顺便说一句,谢谢 owlstead 帮助我格式化我的帖子。绝对让它更容易阅读!


我是 Java Card 开发新手,无法理解Shareable接口来工作。

我有一个接口类,声明了我的客户端小程序想要使用的函数。我的服务器小程序实现了这个类。我的客户端小程序查找 AID 并尝试通过调用获取接口getAppletShareableInterface()。但这总是返回null.

我的服务器小程序getShareableInterface()仅由return this;,所以我猜问题出在其他地方。但我不知道在哪里。

我正在使用 JCWDE 并逐步执行代码,我看到我的服务器小程序调用寄存器,因此客户端小程序应该能够找到它。谁能给我一些指示,可能出了什么问题?

edit:

public interface IF extends Shareable {
    public void method();
}

public class Server extends Applet implements IF {
    public getShareableInterfaceObject {
        return this;
    }
}

public class Client extends Applet {

    private Client() {
        AID ServerAID = JCSystem.lookupAID(byteArrayAID, (short)0, (byte)byteArrayAID.length);
        interface = (IF)JCSystem.getAppletShareableInterfaceObject(ServerAID, (byte)0x00);
    }

    public void process(APDU apdu) {
        interface.method();
    }
}

LookupAID 返回正确的 AID,但 getAppletShareableInterfaceObject 返回 null,就好像服务器小程序不存在一样。


发现错误了。我尝试在构造函数中初始化 Shareable 对象。此时客户端的register方法还没有被调用,所以JCRE没有它的AID。虽然我的服务器的 getShareableInterfaceObject(AID clientaid, byte parameter) 方法不要求客户端的 AID 为 != null,但 JCRE 可能会这样做,因为它为我的客户端调用此方法。现在,当我处理第一个 APDU 时,我会初始化我的 Shareable 对象,并且它现在可以工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javacard 共享接口:lookupAID 返回 AID,但 getAppletShareableInterface 返回 null 的相关文章

  • 如何从 JavaScript 调用小程序中声明的方法

    我正在尝试做一个基本的Java小程序 https en wikipedia org wiki Java applet为他们打开客户计算机上的文件 我想通过 JavaScript 调用下面 Java 小程序中的 openFile 函数 imp
  • getline 和线程的问题

    我有一个在 2 个线程上工作的客户端 一是发送数据 二是接收数据 在发送数据时我有std getline std cin string 现在 在这个线程中 我有无限循环 如果第二个线程结束或用户输入 EXIT 命令 则一切都很好 期望当第二
  • 使用 Ruby 将 XML 请求发送到 Web 服务器

    恐怕我在通过网络服务器发布文档 例如 XML 方面没有太多经验 所以如果我对 HTTP 缺乏了解 我深表歉意 我在 ruby 应用程序中设置了一个基本的 Mongrel Web 服务器127 0 0 1 port 2000 服务器 我在同一
  • client-go:将 kubernetes json 文件解析为 k8s 结构

    我想解析 kubernetes 清单文件 json yaml 并能够将它们转换为 k8s 结构 以便稍后操作它们 我知道有 NewYAMLOrJSONDecoder Decode 函数 https github com kubernetes
  • ASP.NET Core MVC 中的客户端验证

    我在让客户端验证在 ASP NET Core MVC 中工作时遇到问题 我已经用谷歌搜索并应用了这里的示例 http www discuzfeed com code lotooslo mvc 6 client side validation
  • Java Applet 在 Safari 中沙箱化?

    自从升级到 Mavericks 后 如果从 Safari 使用 我们工作中的 Applet 就不再能够浏览文件 但在 Firefox 上仍然可以使用 Applet 处理文件上传 因此您可以想象这可能是一个问题 从 Safari 使用它时 我
  • 动态加载 Jar 并实例化已加载类的对象

    我尝试将 jar 动态加载到我的 Java 项目中 这是类加载器的代码 public class ClassLoad public static void main String args String filePath new Strin
  • 在读取文件之前检查文件是否已打开?

    我正在尝试制作一个小程序 它以非常频繁的间隔 每秒几次 读取本地文件系统 用户计算机 上的文件 然后通过 javascript 将文件的内容提供给网页 小程序需要读取的文件由用户计算机上的程序高频更新 我担心的是 如果小程序在文件更新过程中
  • Java 7 未签名小程序权限 1.7.0_45

    我们有一个需要某些权限的小程序 我们对其进行签名并授予所有权限 然而 在开发时我们使用未签名的小程序 我们在用户主目录中的 java policy 文件中设置所有权限 这在 1 7 0 45 或可能 40 中已停止工作 因为未签名的小程序不
  • Java Card 中的加密/解密输出 + 相应的 APDU

    我对 Java Card 的整个主题很陌生 并尝试查看一些代码示例以更好地理解 我在以下位置找到了 AES 使用示例甲骨文论坛 https community oracle com thread 1751988但以下部分有一些问题 priv
  • 强制小程序加载到同一个 JVM 实例中?

    我接管了一个旧 Web 应用程序的维护工作 该应用程序使用嵌入在同一网页中的多个小程序 这曾经工作得很好 但自从引入了下一代 Java 插件 1 6 0 10 后 不保证各个小程序能够加载到同一个 JVM 实例中 如果它们加载在不同的 JV
  • Javacard 中的 ECDSA 签名

    我正在 Javacard 中使用 ECDSA 实现签名代码 我的代码在异常部分输出 0x0003 NO SUCH ALGORITHM 这意味着该卡不支持该算法 我不明白这一点 因为我的供应商告诉我它支持 ECC 我的结论是 我不知道如何使用
  • Python3.3 HTML Client TypeError: 'str' 不支持缓冲区接口

    import socket Set up a TCP IP socket s socket socket socket AF INET socket SOCK STREAM Connect as client to a selected s
  • 如何使用 Scarlet 在 Android 上通过 WebSocket 进行连接?

    README md 中的代码 val scarletInstance Scarlet Builder webSocketFactory okHttpClient newWebSocketFactory GDAX URL addMessage
  • Elasticsearch TransportClient NetworkPlugin NoClassDefFoundError

    我期待将 Elasticsearch 集成到 Spring Boot Web 应用程序中 这是创建传输客户端的配置 Configuration public class ElasticsearchConfig private Transpo
  • ffmpeg 用于屏幕捕获?

    所以我有一个小程序来捕获屏幕和计算机麦克风的声音 然后屏幕截图被编码为 ScreenVideo2 声音被编码为 AAC 如何使用 ffmpeg 逐帧混合 然后将混合输出发送到 wowza 媒体服务器 如果用ffmpeg无法完成 您能提供一些
  • 我的小程序需要客户端访问资源的权限的策略文件位置在哪里?

    我发现我必须编写一个策略文件来授予我的小程序权限 但我真的很困惑 我想编写一个小程序 它是一个地图查看器 我需要在运行我的小程序的客户端上保存图像图块以在本地访问图块 以获得安全地查看地图的速度和时间 这对用户有利 因此 小程序需要授予读
  • 小程序打印;小程序放弃安全权限; Windows 7 和 Java 7

    使用 Java Liveconnect 能够通过浏览器中的小程序访问打印机 对于我添加的访问权限permission java lang RuntimePermission queuePrintJob in C Program Files
  • 使用 Jaxb 和 JDK 9 的小程序中的非法反射访问[重复]

    这个问题在这里已经有答案了 我有一个 Java 小程序 它提供了一个 GUI 来调用 Web 服务 它使用 Jaxb 解析 XML 数据并将其解组为对象 它可以在 Java 1 5 到 1 8 上正确运行 对于 Java 9 情况就不那么严
  • Java 7u51/7u55 带星号的清单变量

    我正在部署一个小程序 其中包含清单中的下一个变量 Manifest Version 2 0 Ant Version Apache Ant 1 8 2 Trusted Library true Permissions all permissi

随机推荐

  • 如何通过 CSS 和 Javascript 切换多个隐藏字段的显示?

    我想知道如何通过下拉选项切换多个 HTML 字段的显示 假设我有一个包含 3 个选项的下拉菜单 分支机构 区域和部门 如果我选择 分支机构 我希望其下方显示 3 个字段 分支机构编号 站点编号 ID 编号 我对 JavaScript 的了解
  • C# SSL WebSocket 客户端中有 .net 4.0 吗?

    我想知道目前是否有关于这个主题的任何内容 我找到了各种例子EG 4 5 system net websockets websocket http msdn microsoft com en us library system net web
  • 从地图容器中查找大于用户指定值的第一个值

    我有一个地图容器 如何使用 find if 返回第一个大于用户指定搜索值的值 如下所示 std map
  • 如何获取重定向的 URL

    我有一个 URL 当我尝试在浏览器中打开它时 它将重定向到另一个 URL 并显示内容 我想要该内容 但我没有收到重定向的 URL 所以 我无法显示数据 我怎样才能以编程方式做到这一点 例如我有的网址 http www windpoweren
  • 从相同源代码生成的两个DLL文件有什么区别

    我的所有代码都受源代码控制 因此我 100 确定源代码没有更改 但是 如果我构建 C DLL 两次 它们的内容会略有不同 我可以通过构建然后再次构建来 100 重现问题 这似乎根本不会影响程序 但是像 MSIMSP 这样用于从两个 MSI
  • 是否可以在mysql语句中运行apriori关联规则?

    数据库 Transacation Items List T1 butter T1 jam T2 butter T3 bread T3 ice cream T4 butter T4 jam 在上表中 是否可以在mysql语句中运行aprior
  • Crypto++ AES 解密如何?

    那里几乎没有关于 crypto 的菜鸟指南 或者无论如何我都没有找到 我想要做的是解密使用另一个 AES 加密器生成的 uchar 数组 我该从哪里开始呢 我已经建立了图书馆并链接了盛大的图书馆 我是否需要设置任何内容 或者只是在数组上调用
  • 如何在 C# 中生成 JSON Web 密钥 (JWK)

    我需要使用 C 生成 JSON Web Key jwk 如图所示 我已经阅读了几篇文章 但也有其他语言 例如 Java 的实现 并且有第三方库 Nimbus JOSE JWT 库等 您能帮我用 C 生成 JSON Web Key 吗 e A
  • 如何在骆驼单元测试中模拟多个组件?

    我正在使用CamelTestSupport在骆驼版本 2 13 1 中 我想做这样的事情来模拟两个不同的组件 Override public String isMockEndpoints return activemq exec 我不能只是
  • 在Python中重写OptionParser的add_option函数

    我写了一个子类Option and OptionParser在 optparse 中 我正在重写add optionOptionParser 中的函数使其解析新关键字 以下是我的代码 from optparse import Option
  • java读取动态网页内容

    我需要帮助阅读网页内容 目前我正在使用以下方法来读取内容 BufferedReader in new BufferedReader new InputStreamReader page openStream String inputLine
  • 任务仅在 Spark 中的一个执行器上运行[重复]

    这个问题在这里已经有答案了 我正在使用 Java 在 Spark 中运行以下代码 Code 测试 java package com sample import org apache spark SparkConf import org ap
  • 获取字符串的字节长度

    AS3中有没有一种简单的方法来获取字符串的字节长度 String length 在许多情况下都有效 但如果遇到多字节 unicode 字符就会中断 在这种特殊情况下 我需要知道这一点 以便我可以在通过 TCP 套接字发送的消息前加上消息长度
  • 通过 vb.net 应用程序登录 Facebook

    我计划创建一个 vb net 应用程序 该应用程序将与用户的 Facebook 帐户同步 我想创建一个应用程序 允许用户登录其帐户 获取通知 好友请求 查看 回复 创建消息以及他们希望通过此 vb net 应用程序从 facebook 获取
  • 错误 1064 (42000) 未能授予权限

    我按照说明向 Rails 授予数据库权限 我使用了以下代码 GRANT ALL PRIVILEGES ON demo proejcts development TO rails user localhost IDENTIFIED BY PA
  • 在功能文件中使用空手道配置参数

    空手道标头示例 https github com intuit karate blob master karate demo src test java demo headers headers feature不显示如何访问除baseUrl
  • Gatsby 开发失败:错误:找不到模块“gatsby-cli/lib/reporter”

    在终端中执行 gatsbydevelop 命令时 不断从 gatsby cli 收到错误 已删除节点模块并使用 npm 重新安装 尝试将 Gatsby Cli 安装为单独的模块 但这只会导致更多 gatsby cli 错误 Gatsby c
  • Math.Pow 计算不正确

    我在使用 C 时遇到问题 准确地说是 Math pow 如果我尝试计算 15 14 则会得到 29192926025390624 但如果我用 Wolfram Alpha 计算它 我会得到 29192926025390625 正如您所看到的
  • 无法将 System.String 转换为 System.Uri

    我正在使用 Web 客户端类从互联网 实际上是 Flickr 下载文件 只要我使用 这就可以正常工作 WebClient DownloadData string 但是这会锁定 UI 因为它不是异步的 然而当我尝试时WebClient Dow
  • Javacard 共享接口:lookupAID 返回 AID,但 getAppletShareableInterface 返回 null

    编辑2 发现错误 我尝试在构造函数中初始化 Shareable 对象 此时客户端的register方法还没有被调用 所以JCRE没有它的AID 虽然我的服务器的 getShareableInterfaceObject AID clienta