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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详细说明Ipad1 4.3.5的越狱过程

    详细说明Ipad1 4.3.5的越狱过程前言,使用Ipad很久了,但是都是老实巴交的使用APPLE提供的功能,没有使用很多的软件,因为要收费,只是看一看pdf和视频。但是时间长了,感觉不新鲜了,看了很久越狱的好处和弊端,心里痒痒的。最好终于手痒痒了,开始动手了。但是开始不顺利,我一直是跟着升级固件,最后升级到4.3.1

    2026年1月28日
    3
  • SpringBoot的启动流程_springboot启动卡住了

    SpringBoot的启动流程_springboot启动卡住了SpringMVC请求流程详解SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。(一)整体流程每一个SpringBoot程序都有一个主入口,这个主入口就是main方法,而main方法中都会调用SpringBootApplication.run方法,一个快速了解SpringBootApplication启动过程的好方法就是在run方法中打一个断点,然后通过Debug的模式启动工程,逐步跟踪了解Sprin

    2022年8月21日
    6
  • org.bson.codecs.configuration.CodecConfigurationException

    org.bson.codecs.configuration.CodecConfigurationException

    2021年6月15日
    83
  • C++代码算法题:(5).最长回文子串

    C++代码算法题:(5).最长回文子串题目及要求:给你一个字符串s,找到s中最长的回文子串。提示:1<=s.length<=1000s仅由数字和英文字母(大写和/或小写)组成原创代码:classSolution{public:stringlongestPalindrome(strings){intbegin=0;//每个当前子串的开头intend=0;//每个当前子串的末尾intvalue=0;//判断条件使用。条

    2022年6月10日
    32
  • 究竟什么是Java虚拟机(JVM)?

    究竟什么是Java虚拟机(JVM)?我们都知道,在Windows上,软件包后缀有exe,而苹果的MacOSX系统上没有安装exe。类似地,MacOSX系统上的软件安装包是dmg后缀,不能安装在Windows系统上。为什么不能安装不同系统上的软件,因为操作系统的底层实现是不同的。对于Windows系统,exe后缀的软件代码被编译成能被Windows系统识别的机器代码。对于MacOSX系统,最后将DMG后缀的软件代码编译为M…

    2022年7月8日
    19
  • Levels – 虚幻引擎场景制作「建议收藏」

    Levels – 虚幻引擎场景制作「建议收藏」个人制作的一个UE4场景,虚幻引擎4相关,3D场景制作相关,LA工作流程相关;文档所附视频展示:https://zhuanlan.zhihu.com/p/56903372

    2022年6月22日
    33

发表回复

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

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