如何将创建的私钥存储到Security KeyStore Android中?

时间:2014-08-06 14:52:59

标签: android rsa keystore

我已经按照以下代码生成了存储在KeyStore中的密钥对

// generate a key pair
Context ctx = getContext();
Calendar notBefore = Calendar.getInstance()
Calendar notAfter = Calendar.getInstance();
notAfter.add(1, Calendar.YEAR);
KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(ctx)
            .setAlias("key1")
            .setSubject(
                    new X500Principal(String.format("CN=%s, OU=%s", alais,
                            ctx.getPackageName())))
            .setSerialNumber(BigInteger.ONE).setStartDate(notBefore.getTime())
            .setEndDate(notAfter.getTime()).build();

KeyPairGenerator kpGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
kpGenerator.initialize(spec);
KeyPair kp = kpGenerator.generateKeyPair();

通过这种方式,生成了我的密钥对并将其存储到Keystore中,但在调用此函数时:getPrivateKey.encoded(),它将返回一个空字节数组。

我的意愿是我想要正常生成,我可以获得PrivateKey和PublicKey Encode(这是我自己的目的)。然后我想将它们存储到KeyStore中以保密。

我试过这个:keyStore.setEntry(alias,privateKey,cert)但是由于错误的params可能会出现异常。我不明白我应该从哪个证书中获取证书? 我非常感谢你的评论

0 个答案:

没有答案