【发布时间】:2019-03-12 13:55:58
【问题描述】:
我正在尝试使用 KeyPairGenerator 函数生成 secp256k1 密钥对。我的功能看起来像
public fun generateSECP256K1Keypair():KeyPair{
Security.addProvider(org.bouncycastle.jce.provider.BouncyCastleProvider())
var keypairGen: KeyPairGenerator = KeyPairGenerator.getInstance("ECDSA","BC")
val spec:ECGenParameterSpec = ECGenParameterSpec("secp256k1")
keypairGen.initialize(spec, SecureRandom())
var keyPair:KeyPair= keypairGen.genKeyPair()
return keyPair;
}
我的 gradle 文件依赖如下所示
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'org.bouncycastle:bcprov-jdk15on:1.61'
}
当我尝试执行此功能时,我收到以下错误
Process: com.example.myapplication, PID: 6477
java.lang.RuntimeException: Unable to create service com.example.myapplication.service.Myservice: java.security.NoSuchAlgorithmException: no such algorithm: ECDSA for provider BC
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3201)
at android.app.ActivityThread.-wrap5(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:102)
如果我使用 SpongyCastle 而不是 BouncyCastle,它可以正常工作。但我不想在我的情况下使用 SpongyCastle 提供程序。
【问题讨论】:
-
您是否尝试使用此线程推荐的内容? stackoverflow.com/questions/18244630/…
标签: android kotlin bouncycastle spongycastle