这是我的输入模板:
headerValue ProfileElement ::= header : {
major-version 2,
minor-version 0,
profileType "GSMA Profile Package",
iccid '89019990001234567893'H,
eUICC-Mandatory-services {
usim NULL,
milenage NULL,
javacard NULL },
eUICC-Mandatory-GFSTEList {
-- see Note 1
id-MF,
id-USIM },
-- These SMS connectivity parameters may be freely changed
connectivityParameters 'A0090607#TON_NPI#DIALING_NUMBER'H }
我需要相同格式的输出文件,但是ICCID的新值将由JAVA代码动态生成
答案 0 :(得分:0)
您可以使用适用于java的jASN1库。将数据传递给它并获取解析的对象列表。之后,您可以更改iccid值。
答案 1 :(得分:0)
您是否还需要转换DER编码?如果是这样,我建议使用Nokalva OSS库在Java中创建对象层次结构,然后在DER中进行转换。
如果你不需要DER编码,我们有时会使用一个简单的技巧就是像在#TON_NPI中那样放置一个占位符,并用Java进行搜索/替换。
PS:当然如果您在ProfileHeader中更新ICCID,您还需要在MF下更新2FE2的内容(实际上更重要)
答案 2 :(得分:0)
您引用的是SIM联盟发布的嵌入式Create React App的ASN.1模块定义的一部分。
在一个文件中收集了从7.3节开始的所有ASN.1定义作为模块定义后,可以使用任何免费的或商业的Java ASN.1编译器进行编译。可以将为数据类型和ASN.1编译器的编码/解码运行时库生成的Java源代码嵌入到您的应用程序中,以为Profile Element生成ASN.1编码的字节流。
答案 3 :(得分:0)
如果您对商业(非免费)解决方案没有意见,Objective Systems 有一个名为 ASN2TXT 的工具,该工具将从您拥有的 ASN.1 执行转换Value Notation (AVN) 到 DER 和其他编码。它还可以执行反向转换,以便您可以从 DER 编码的配置文件包中获取 AVN。该工具可以从命令行运行(无需软件开发),也可以使用自己代码中的 .so/.dll 库。
对于 eSIM 配置文件生成,您可以先使用该工具将配置文件包模板从 AVN 转换为 XER,使用 XPath 个性化配置文件包,然后将 XER 表示转换为 DER 以上传到 SM-DP+。
>我不为 Objective Systems 工作 - 只是一个快乐的客户。