- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了运行 Android 应用程序时观察到的异常 - 当我将下面的代码作为 JUnit 运行时,它不会发生。
java.security.NoSuchAlgorithmException: ECDSA KeyPairGenerator not available
at java.security.KeyPairGenerator.getInstance(KeyPairGenerator.java:225)
at com.mhamdaoui.smartcardreader.CryptoUtils$Companion.getMerchantEphemeralPublicKey(CryptoUtils.kt:48)
at com.mhamdaoui.smartcardreader.MainActivity.onTagDiscovered(MainActivity.kt:80)
at android.nfc.NfcActivityManager.onTagDiscovered(NfcActivityManager.java:603)
at android.nfc.IAppCallback$Stub.onTransact(IAppCallback.java:83)
at android.os.Binder.execTransact(Binder.java:573)
代码:
Security.addProvider(BouncyCastleProvider())
val generator = KeyPairGenerator.getInstance("ECDSA")
val ecSpec = ECNamedCurveTable.getParameterSpec("secp256r1")
generator.initialize(ecSpec)
val keyPair = generator.generateKeyPair()
val publicKey = keyPair.public as ECPublicKey
return publicKey.q.getEncoded(true)
如何解决这个问题?
更新
当我在测试中创建 JUnit 时(我使用的是 Android Studio):
@Test
fun compressedGeneratorTest() {
Security.addProvider(BouncyCastleProvider())
val generator = KeyPairGenerator.getInstance("ECDSA")
val ecSpec = ECNamedCurveTable.getParameterSpec("secp256r1")
generator.initialize(ecSpec)
val keyPair = generator.generateKeyPair()
val publicKey = keyPair.public as ECPublicKey
val encoded = publicKey.q.getEncoded(true)
assert(true)
}
一切正常。如何在应用程序运行时解决此问题?
最佳答案
问题是无法在 Android 上使用 BounceyCaSTLe - 而是使用 SpongyCaSTLe:
implementation 'com.madgag.spongycastle:prov:1.54.0.0'
implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
然后使用 BouncyCaSTLeProvider 实例初始化提供程序,如下所示:
Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider())
关于java - ECDSA KeyPairGenerator 不可用(但在 JUnit 中有效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53654418/
我正在尝试创建一个使用 RSA 来加密消息的小型消息系统,但由于某种原因,代码无法识别 KeyPairGenerator 类,所以我一开始就卡住了。到目前为止,我的代码是: public class
我的 java 代码有问题。我正在尝试加密文件。但是,当我运行我的 java 代码时,我得到“java.security.InvalidKeyException: Invalid AES key le
询问 KeyPairGenerator.initialize() 方法需要一个 SecureRandom 实例,它的初始化成本很高。 Java Doc 没有提到它是线程安全的。我能找到的就是a com
我使用 KeyPairGenerator 生成 RSA key 对,我注意到它始终生成完全匹配的 key ,而不是应有的随 secret 钥?也许有人知道为什么会这样? 我的代码现在看起来像这样: p
当测试我在 Eclipse 上使用 JUnit 创建的 Java 类时,我收到一条错误消息,告诉我:“源附件不包含文件 KeyPairGenerator.java 的源代码”。我刚刚安装了 Java
我有一个生成公钥+私钥对的客户端(安卓设备)。它将公钥发送到服务器,服务器应使用公钥加密一些数据并将其返回,以便客户端稍后可以使用私钥对其进行解密。我的 PHP 代码记录了一条警告,指出我提供的公钥无
专家, 是否可以使用Android KeyPairGenerator 类在不同设备上生成相同的 key 对?例如,通过覆盖 SecureRandom 类来生成相同的共享 key 。 非常感谢任何指导。
当我使用 keytool 生成带有 ECC 的 key 时,我得到了这个错误: Error keytool: java.security.NoSuchAlgorithmException: EC Ke
我有一些 Java 代码,当我运行函数 KeyPairGenerator.genKayPair() 时,它会运行 40 秒或更长时间。如何改变这种状况?如果我跑 openssl req -x509 -
我正在用 Java 创建一个加密安全的 IM 应用程序。第一步(建立连接后)是交换公钥(RSA-4096),以便对方可以创建对称 key (AES-256),用对方的公钥对其进行加密,通过连接发送,其
我正在尝试使用java.security获取java中RSA加密的私钥和公钥。无论我在哪里谷歌,我总是收到同样的错误,说NoSuchAlgorithException。 class secret {
我曾尝试使用 EdDSA 算法,以便使用 jar eddsa 0.3.0 生成 key 。但是,当我尝试执行 KeyPairGenerator.getInstance("Ed25519"); 时,我得
基本上,我有一个 RNG 向数据库提供随机数,我想在生成 key 对时使用这些随机数。 据我所知,到目前为止,您可以初始化提供随机源(SecureRandom 对象)的 KeyPairGenerato
这是我的程序以图像形式执行的流程。我认为这些图像是仅次于视频的最能充分描述我的问题的东西。 这里没有发生任何异常情况。控制位于 while 循环,并且 keyPair 为空。 即使 keyPairGe
我正在制作一个为用户生成 key 对的应用程序。但是在每个设备中, key 都是相同的。这是我的代码: public KeyPair generateKeys() { KeyPair keyP
我遇到了运行 Android 应用程序时观察到的异常 - 当我将下面的代码作为 JUnit 运行时,它不会发生。 java.security.NoSuchAlgorithmException: ECD
首先,我试图就安全问题提出这个问题——我得到了一些赞成票,但似乎已经一周没有答案了。我知道这是与 openssl 相关的,但是它源于使用 java KeyPairGenerator 对象,所以我觉得它
我想使用 Edwards 曲线“Curve41417”( safecurves ) 来生成 key 对。 现在我已将其转换为 Weierstrass 格式并尝试了以下源代码: public class
我们已经看到以下异常的大量涌入,并且仅适用于 Android 7.1.1 (API 25)。 7.1.1 中有什么改变导致失败吗? java.security.ProviderException: F
我正在使用 java.security.KeyPairGenerator 生成 RSA key 对,然后尝试通过 Jsch(0.1.49) 中提供的 KeyPair 类加载私钥。代码: public
我是一名优秀的程序员,十分优秀!