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);
    }
}

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • arcgis10从初学到精通电子版_arcgis入门到精通

    arcgis10从初学到精通电子版_arcgis入门到精通本教程内容包括:ArcGIS平台简介、ArcGIS应用基础、空间数据的采集与组织、空间数据的转换与处理、空间数据的可视化表达、GIS空间分析导论、矢量数据的空间分析、栅格数据的空间分析、三维分析、地统计分析等。适用于高等学校GIS专业、测绘工程、国土测绘与规划等专业,大学本科研究ArcGIS实验教程:ArcGIS10.2手把手图文安装教程ArcGIS实验教程——实验一:ArcGIS软件的认识与使用ArcGIS实验教程——实验二:地理配准完整操作步骤ArcGIS实验教程——实验三:矢量数据采集与编辑

  • 明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」

    明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」按场景记忆是最高效的,这里给出的音标全部是英氏。跟你没有相关性的表达你也要记下来,不仅可以用在听力、阅读、写作,还因为在雅思口语PART3中可能会问一些分类讨论的话题,不仅仅只说自己的情况。

  • 趣味编程游戏_全脑开发训练100个游戏

    趣味编程游戏_全脑开发训练100个游戏在信息技术迅猛发展的时代,操纵计算机,与电脑对话的能力已经成了事实上的技能标配,也已经深深地融入了我们每个人的生活当中。游戏行业也不例外,近几年,随着全民编程的热潮,许多游戏厂商也纷纷把编程融入自己的游戏当中,甚至推出了许多专门为编程爱好者/编程学习者制作的编程解密游戏。今天要推荐的九个游戏,可谓风格各异,老少咸宜,不论你是对编程完全陌生的新手,还是硬核老鸟,一定能找到一款适合你的游戏。话…

  • 在小程序/mpvue中使用flyio发起网络请求「建议收藏」

    在小程序/mpvue中使用flyio发起网络请求「建议收藏」Fly.js一个基于Promise的、强大的、支持多种JavaScript运行时的http请求库.有了它,您可以使用一份http请求代码在浏览器、微信小程序、Weex、Node、ReactNative、快应用中都能正常运行。同时可以方便配合主流前端框架,最大可能的实现WriteOnceRunEverywhere。上一篇文章介绍了在快应用中使用flyio,本文主要介绍一下如何在…

  • Sqlite #1 命令行工具sqlite3

    Sqlite #1 命令行工具sqlite3

  • clion 2022.01.13激活码【中文破解版】「建议收藏」

    (clion 2022.01.13激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0HKLM1UCCY-eyJsaWNlbnNlSWQiOi…

发表回复

您的电子邮箱地址不会被公开。

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