我使用EC曲线生成密钥对
generator = KeyPairGenerator.GetInstance(KeyProperties.KeyAlgorithmEc, AndroidKeyStoreContants.AndroidKeyStore);
paramSpec = new KeyGenParameterSpec.Builder(
alias,
KeyStorePurpose.Sign | KeyStorePurpose.Verify)
.SetAlgorithmParameterSpec(new ECGenParameterSpec("secp256r1"))
.SetDigests(KeyProperties.DigestSha256)
.Build();
generator.Initialize(paramSpec);
var keyPair = generator.GenerateKeyPair();
这很好,当我想访问公钥keyPair.Public
时,问题就开始了。这给了我一个IPublicKey
接口。在java上,你只需将其转换为ECPublicKey
,而在Xamarin上你就是不能这样做。
我还注意到有一个缺少的成员 - 对我来说是一个重要的成员 - getW()
- 关于ECPublicKey
对java ECPublicKey
的xamarin表示。
我的问题是 - 如何访问 - 并将公钥转换为Xamarin中的ECPublicKey?我想访问X和Y坐标。
有没有办法添加这个缺失的声明?
答案 0 :(得分:0)
而不是转发到ECPublicKey
,而是将其投放到ECPublicKeySpec
。 IE,
var pubKeySpec = (Java.Security.Spec.ECPublicKeySpec)keyPair.Public;
var w = pubKeySpec.GetW();