对于ECPublicKey,xamarin与java文档的区别

时间:2018-02-22 06:28:15

标签: java android xamarin xamarin.android ecdsa

在andorid xamarin项目中的

我使用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

java ECPublicKey

我的问题是 - 如何访问 - 并将公钥转换为Xamarin中的ECPublicKey?我想访问X和Y坐标。

有没有办法添加这个缺失的声明?

1 个答案:

答案 0 :(得分:0)

而不是转发到ECPublicKey,而是将其投放到ECPublicKeySpec。 IE,

var pubKeySpec = (Java.Security.Spec.ECPublicKeySpec)keyPair.Public;
var w = pubKeySpec.GetW();