Android密钥库KeypairgeneratorsPec我在哪里获得X500 Principal



我正在构建一个密钥库,我将隐藏我的授权和刷新令牌。我在API 19中。查看KeypairgeneratorsPec的示例。大多数示例都使用虚拟证书(x500principal(。我没有用证书工作太多。我不确定我从哪里得到这个"主题"。这是签名APK的生成中使用的证书吗?IE https://developer.android.com/studio/publish/app-signing.html
还是我从ca之类的小组中获得证书?

说一旦我拥有这些数据,如何将其转换为x500?如何将数据映射到x500?

由于我的公司处理应用程序签名的方式,前者将是有问题的。我不确定我是否可以访问它。

遵循

KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(this)
                        .setAlias(k)
                        .setSubject(new X500Principal("CN=Sample Name, O=Android Authority"))
                        .setSerialNumber(BigInteger.ONE)
                        .setStartDate(start.getTime())
                        .setEndDate(end.getTime())
                        .build();
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");

签署您的.APK以在Google Play商店分发,并使用AndroidKeyStore加密敏感的用户数据是不同的。前者是在开发机上使用Java密钥商店(JK((即笔记本电脑或台式计算机(进行的,而另一个则在安装应用程序的手机上进行。

您无需获得X500 Principal的证书授权。您引用的示例代码是正确的,您只会用它来代替它,例如您的应用程序名称和组织:

new X500Principal("CN=StarWind, O=StarWindOrganization"); 

如果您想了解不同的缩写是什么意思,请参阅Wikipedia条目以进行轻型目录访问协议,例如," CN"的意思是"通用名称"one_answers" O"是指组织。您在此处提供的属性仅仅是形成一个唯一的条目,就像您在 com.starwind.myapp一样形成唯一的软件包名称。

如果您发现它令人困惑,则可以查看Scytale,它是Android钥匙店周围的包装器。即使您最终不使用库,那里的代码对于如何使用密钥库也很有用。

相关内容

最新更新