【发布时间】:2021-09-28 02:10:21
【问题描述】:
我目前正在使用 Nativescript-Vue 开发一个 Android 应用程序,我想在其中生成一个私钥来签署有效负载。
const KPGen = java.security.KeyPairGenerator;
const keyP = android.security.keystore.KeyProperties;
const kpg = KPGen.getInstance(keyP.KEY_ALGORITHM_EC, "AndroidKeyStore");
const builder = new android.security.keystore.KeyGenParameterSpec.Builder(
"key1", keyP.PURPOSE_SIGN)
.setAlgorithmParameterSpec(new java.security.spec.ECGenParameterSpec("secp256r1"))
.setDigests(keyP.DIGEST_SHA256)
kpg.initialize(builder.build());
const kp = kpg.generateKeyPair();
如果我保留.setDigests(keyP.DIGEST_SHA256),应用程序将抛出错误:
Error: java.lang.Exception: Failed resolving method setDigests on class android.security.keystore.KeyGenParameterSpec$Builder.
但是,如果我注释掉 .setDigests(keyP.DIGEST_SHA256) 行,那么当我尝试在签名上初始化签名时,我会得到一个 Error: java.security.InvalidKeyException: Keystore operation failed
const sig = java.security.Signature.getInstance('SHA256withECDSA');
sig.initSign(kp.getPrivate());
我不确定这两个问题是否相关,但有谁知道目前出了什么问题?
我正在关注以下示例:https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec
【问题讨论】:
标签: java android nativescript java-security