pfx证书获取私钥「建议收藏」

pfx证书获取私钥「建议收藏」publicclassKeyUtil{publicKeyUtil(){}publicstaticPrivateKeygetPrivateKeyFromPFX(InputStreaminputStream,StringpfxFilePwd)throwsPKIException{PKCS12pkcs12=newP…

大家好,又见面了,我是你们的朋友全栈君。


public class KeyUtil {
    public KeyUtil() {
    }

    public static PrivateKey getPrivateKeyFromPFX(InputStream inputStream, String pfxFilePwd) throws PKIException {
        PKCS12 pkcs12 = new PKCS12();
        pkcs12.load(inputStream);
        pkcs12.decrypt(pfxFilePwd.toCharArray());
        return pkcs12.getPrivateKey();
    }

    public static PrivateKey getPrivateKeyFromPFX(String pfxFilePath, String pfxFilePwd) throws PKIException {
        PKCS12 pkcs12 = new PKCS12();
        pkcs12.load(pfxFilePath);
        pkcs12.decrypt(pfxFilePwd.toCharArray());
        return pkcs12.getPrivateKey();
    }

    public static PrivateKey getPrivateKeyFromPFX(byte[] pfxFileData, String pfxFilePwd) throws PKIException {
        PKCS12 pkcs12 = new PKCS12();
        pkcs12.load(pfxFileData);
        pkcs12.decrypt(pfxFilePwd.toCharArray());
        return pkcs12.getPrivateKey();
    }

    public static SM2PrivateKey getPrivateKeyFromSM2(String sm2FilePath, String sm2FilePwd) throws PKIException {
        ASN1InputStream ais = null;
        FileInputStream fis = null;

        SM2PrivateKey var8;
        try {
            fis = new FileInputStream(sm2FilePath);
            byte[] data = new byte[fis.available()];
            fis.read(data);
            fis.close();
            boolean isB64 = ASN1Parser.isBase64Compatability(data);
            if (isB64) {
                data = Base64.decode(data);
            }

            ByteArrayInputStream bis = new ByteArrayInputStream(data);
            ais = new ASN1InputStream(bis);
            PKCS12_SM2 sm2Pfx = PKCS12_SM2.getInstance(ais.readObject());
            var8 = sm2Pfx.getPrivateKey(sm2FilePwd);
        } catch (Exception var20) {
            throw new PKIException(var20.getMessage());
        } finally {
            try {
                fis.close();
            } catch (IOException var19) {
                var19.printStackTrace();
            }

            if (ais != null) {
                try {
                    ais.close();
                } catch (IOException var18) {
                    throw new PKIException(var18.getMessage());
                }
            }

        }

        return var8;
    }

    public static SM2PrivateKey getPrivateKeyFromSM2(InputStream inputStream, String sm2FilePwd) throws PKIException {
        ASN1InputStream ais = null;

        SM2PrivateKey var7;
        try {
            byte[] data = new byte[inputStream.available()];
            inputStream.read(data);
            boolean isB64 = ASN1Parser.isBase64Compatability(data);
            if (isB64) {
                data = Base64.decode(data);
            }

            ByteArrayInputStream bis = new ByteArrayInputStream(data);
            ais = new ASN1InputStream(bis);
            PKCS12_SM2 object = PKCS12_SM2.getInstance(ais.readObject());
            var7 = object.getPrivateKey(sm2FilePwd);
        } catch (Exception var19) {
            throw new PKIException(var19.getMessage());
        } finally {
            try {
                inputStream.close();
            } catch (IOException var18) {
                var18.printStackTrace();
            }

            if (ais != null) {
                try {
                    ais.close();
                } catch (IOException var17) {
                    throw new PKIException(var17.getMessage());
                }
            }

        }

        return var7;
    }

    public static SM2PrivateKey getPrivateKeyFromSM2(byte[] sm2FileData, String sm2FilePwd) throws PKIException {
        ASN1InputStream ais = null;

        SM2PrivateKey var6;
        try {
            boolean isB64 = ASN1Parser.isBase64Compatability(sm2FileData);
            if (isB64) {
                sm2FileData = Base64.decode(sm2FileData);
            }

            ByteArrayInputStream bis = new ByteArrayInputStream(sm2FileData);
            ais = new ASN1InputStream(bis);
            PKCS12_SM2 object = PKCS12_SM2.getInstance(ais.readObject());
            var6 = object.getPrivateKey(sm2FilePwd);
        } catch (Exception var15) {
            throw new PKIException(var15.getMessage());
        } finally {
            if (ais != null) {
                try {
                    ais.close();
                } catch (IOException var14) {
                    throw new PKIException(var14.getMessage());
                }
            }

        }

        return var6;
    }

    public static PrivateKey getPrivateKeyFromJKS(String jksFilePath, String jksFilePwd, String alias) throws PKIException {
        try {
            KeyStore ks = InitKeyStore.initJKSKeyStore(jksFilePath, jksFilePwd);
            char[] password = jksFilePwd.toCharArray();
            return (PrivateKey)ks.getKey(alias, password);
        } catch (Exception var5) {
            throw new PKIException(var5.getMessage());
        }
    }

    public static PrivateKey getPrivateKeyFromJKS(InputStream is, String jksFilePwd, String alias) throws PKIException {
        try {
            KeyStore ks = InitKeyStore.initJKSKeyStore(is, jksFilePwd);
            char[] password = jksFilePwd.toCharArray();
            return (PrivateKey)ks.getKey(alias, password);
        } catch (Exception var5) {
            throw new PKIException(var5.getMessage());
        }
    }

    public static KeyPair generateKeyPair(Mechanism mechanism, int keyLength, Session session) throws PKIException {
        if ("SM2".equals(mechanism.getMechanismType()) && 256 != keyLength) {
            throw new PKIException("key length must be 256 bits for SM2");
        } else {
            return session.generateKeyPair(mechanism, keyLength);
        }
    }

    public static Key generateKey(Mechanism keyType, Session session) throws PKIException {
        return session.generateKey(keyType);
    }

    public static Key generateKey(Mechanism keyType, byte[] keyData, Session session) throws PKIException {
        return session.generateKey(keyType, keyData);
    }

    public static SM2PublicKey getSM2PublicKey(byte[] pubX, byte[] pubY) {
        return new SM2PublicKey(pubX, pubY);
    }

    public static SM2PrivateKey getSM2PrivateKey(byte[] da, byte[] pubX, byte[] pubY) {
        return new SM2PrivateKey(da, pubX, pubY);
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145038.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++;继承和多态概念补充…….

    C++;继承和多态概念补充…….一 继承和多态 类之间的继承 基类 父类 成员变量 描述类的属性成员函数 功能派生类 子类 体现出与基类的不同继承 基类与派生类之间访问权限 1 public 继承 基类里面的公有成员变量被继承后在派生类中也是公有的 可以在类外被访问 基类里面的保护成员变量被继承后在派生类中可以被访问 在派生类中

    2025年6月27日
    3
  • JavaScript高级知识总结(高级篇)[通俗易懂]

    JavaScript高级知识总结(高级篇)[通俗易懂]目录一、深入基础1.1数据类型1.分类:2.判断:3.undefined与null的区别?4.严格区别变量类型与数据类型?1.2数据变量与内存1.什么是数据?2.什么是内存?3.什么是变量?4.内存,数据,变量三者之间的关系5.vara=xxx;a内存中到底保存的是什么?6.关于引用变量的赋值问题:7.在js调用函数时传递变量参数时,是值传递还是引用传递?8.js引擎如何管理内存1.3对象1.什么是对象?2.为什么用对象?

    2025年7月16日
    4
  • Mac安装pycharm,绑定anaconda3[通俗易懂]

    Mac安装pycharm,绑定anaconda3[通俗易懂]1、首先安装anaconda3(当然使用3啦,除非给自己找麻烦装2)进入官网,https://www.anaconda.com/distribution/,选择系统和版本、下载,傻瓜式安装,结束后,控制台输入:conda–version,输出版本号,表示安装成功。2、安装pycharm进入官网,https://www.jetbrains.com/pycharm/download/…

    2022年8月28日
    7
  • pig询问top k,每个返回hour和ad_network_id最大的两个记录(SUBSTRING,order,COUNT_STAR,limit)

    pig询问top k,每个返回hour和ad_network_id最大的两个记录(SUBSTRING,order,COUNT_STAR,limit)

    2022年1月2日
    39
  • 经典算法–约瑟夫环问题的三种解法

    经典算法–约瑟夫环问题的三种解法约瑟夫环问题,这是一个很经典算法,处理的关键是:伪链表问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)在数据结构与算法书上,这个是用链表解决的。我感觉链表使用起来很麻烦,并且这个用链表处理起来也不是最佳的。我画了一个图用来理解:有如下问题需要首先考虑:1、“圈…

    2022年6月4日
    38
  • 禁止Ubuntu开机进入guest session

    禁止Ubuntu开机进入guest session禁止Ubuntu开机进入guest session

    2022年4月23日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号