Android 生成PKCS12並導入證書

Android 生成PKCS12並導入證書

引入三方jar包

// 這個是加解密相關的包
implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.62'
// 主要用到這個
implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.62'

上回寫到生成pkcs10證書傳到後臺,這篇主要寫將簽名後的證書導入到PKCS12中去

   // 生成KeyPair
    public static KeyPair generateKeyPair() throws NoSuchAlgorithmException {
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(2048);
        return keyPairGenerator.genKeyPair();

    }

 // 合成p12證書
    public static void storeP12(PrivateKey pri, String p7, String p12Path, String p12Password) throws Exception {

        CertificateFactory factory = CertificateFactory.getInstance("X509");
        //初始化證書鏈
        X509Certificate p7X509 = (X509Certificate) factory.generateCertificate(new ByteArrayInputStream(p7.getBytes()));
        Certificate[] chain = new Certificate[]{p7X509};
        // 生成一個空的p12證書
        KeyStore ks = KeyStore.getInstance("PKCS12", "BC");
        ks.load(null, null);
        // 將服務器返回的證書導入到p12中去
        ks.setKeyEntry("client", pri, p12Password.toCharArray(), chain);
        // 加密保存p12證書
        FileOutputStream fOut = new FileOutputStream(p12Path);
        ks.store(fOut, p12Password.toCharArray());
    }

代碼收錄

https://github.com/ddssingsong/AnyTool

cipher模塊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章