如何从C#中的Java Uber密钥库中提取私钥?

问题描述 投票:0回答:1

我有以下代码从Java和“充气城堡”库编写的“ UBER”密钥存储中提取许可证密钥。

KeyStore store = KeyStore.getInstance(BaseLicenseFactory.UBER, provider);
store.load(inputStream, password);
Enumeration<?> aliases = store.aliases();
Map<String, BaseLicense> licenses = new LinkedHashMap<>();
while (aliases.hasMoreElements()){
...
}
...

但是我现在想做的是提取相同的许可证,但是现在使用C#。我正在尝试利用“充气城堡”,但我还没有找到一种方法。有没有办法可以做到这一点?

java c# cryptography bouncycastle keystore
1个回答
0
投票

我不知道我是否真的知道您要做什么,但是如果您只想将这段代码从Java转换为C#,则应该执行以下操作:

KeyStore store = KeyStore.getInstance(BaseLicenseFactory.UBER, provider);
store.load(inputStream, password);
var aliases = store.aliases();
Dictionary<string, BaseLicense> licenses = store.aliases.ToDictionary(key => store.key, value => store.value);

请注意,您不应按原样复制/粘贴这段代码,因为它有一些假设:

  • 假设您有一个具有KeyStoregetInstanceload方法的aliases类。
  • 假定您具有BaseLicenseFactory值的UBER类或枚举
  • 假定您具有BaseLicense
  • [假定您要将aliases的结果转换为C#词典(应该与Java Maps类似(如果不相同)),并且aliases中的每个对象都具有一个可以用作键的字符串属性,以及一个可以用作值的BaseLicense属性。
  • 它具有来自函数或作为参数的某种类型的provider
  • 它具有来自函数或作为参数的某种类型的inputStream

[不幸的是,这是我所能做的最好的事情,不知道上面描述的那些元素如何。如果您需要更多帮助,请考虑发布您在函数中使用的所有类和值]

© www.soinside.com 2019 - 2024. All rights reserved.