gpt4 book ai didi

java - Android 注册安全提供者

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:34 24 4
gpt4 key购买 nike

我想了解 java 安全提供程序如何在 android 中工作。我想强制所有对 Cipher.getInstance() 的调用返回一个以海绵城堡作为提供者的密码。我运气不好。

以下代码返回提供者为“AndroidKeyStoreBCWorkaround version 1.0”的密码,但我希望提供者为 SpongyCaSTLe。

我想这样做的原因是,我有一个多次调用 javax.crypto.Cipher.getInstance() 的库。我希望所有这些调用都转到海绵城堡,而不必重新编写库以明确指定“SC”作为提供者。

public class MainActivity extends Activity
{
static
{
Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
Security.removeProvider("BC");
}

@Override
protected void onCreate(Bundle savedInstanceState)
{
try
{
//this returns provider = "AndroidKeyStoreBCWorkaround version 1.0"
javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("AES/CTR/NoPadding");
//this works
// cipher = javax.crypto.Cipher.getInstance("AES/CTR/NoPadding", "SC");
}
catch(Exception e)
{
}
}
}

最佳答案

您只需要编写另一个调用 javax.crypto.Cipher.getInstance 并将“SC”变量传递给它的类。您应该能够在不对原始库进行任何更改的情况下执行此操作,并且可以在与您提供的代码相同的文件中执行此操作。虽然这个答案看起来过于简单,但您的问题可能还有其他方面?无论如何,这就是答案。

关于java - Android 注册安全提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com