java 解析国密SM2算法证书

首先说明用Java自带的解析x509证书类,是不能解析sm2算法的证书,运行会抛出异常。

用开源库bouncycastle可以解析、具体代码

private byte[] getCSPK(byte[] csCert)

{

InputStream inStream = new ByteArrayInputStream(csCert);

ASN1Sequence seq = null;

ASN1InputStream aIn;

try

{

aIn = new ASN1InputStream(inStream);

seq = (ASN1Sequence)aIn.readObject();

X509CertificateStructure cert = new X509CertificateStructure(seq);

cert.getVersion();

ASN1Primitive publicKey = cert.getSubjectPublicKeyInfo().getPublicKey();

byte[] encodedPublicKey = publicKey.getEncoded();

byte[] eP = new byte[64];

System.arraycopy(encodedPublicKey, 5, eP, 0, eP.length);

return eP;

}

catch (Exception e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

所需要的jar包:http://download.csdn.net/detail/a956959099/7631425

java 解析国密SM2算法证书

时间: 2024-10-27 18:09:39

java 解析国密SM2算法证书的相关文章

谈谈PBOC3.0中使用的国密SM2算法

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用password算法.本身是基于ECC椭圆曲线算法的.所以要讲sm2, 先要弄懂ECC. 全然理解ECC算法须要一定的数学功底.由于涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念. 这里不做过多的数学分析(主要是我自己也没有全然整明确). 想要深入了解ECC的我推荐网

PBOC3.0中使用的国密SM2算法详解

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/39780825 作者:小马 一 知识准备 SM2是国密局推出的一种他们自己说具有自主知识产权的非对称商用密码算法.本身是基于ECC椭圆曲线算法的,所以要讲sm2, 先要弄懂ECC. 完全理解ECC算法需要一定的数学功底,因为涉及到射影平面坐标系,齐次方程求解, 曲线的运算规则等概念.这里不做过多的数学分析(主要是我自己也没有完全整明白).想要深入了解ECC的我推荐网名为ZMWorm

推荐一款能支持国密SM2的浏览器——密信浏览器

密信浏览器( MeSince Browser )是基于Chromium开源项目开发的国密安全浏览器,支持国密算法和国密SSL证书,同时也支持国际算法及全球信任SSL证书:密信浏览器使用界面清新,干净.简洁.无广告,提供简洁.快速的浏览体验,满足国密安全合规需求.目前,密信浏览器支持Windows 32位和64位系统,未来将逐步推出Linux.Mac及移动端版本. 密信浏览器的主要特性 1.兼容国密标准和国际标准密信浏览器遵循国家标准<GM/T 0024-2014: SSL ×××技术规范>,支

国密SM3算法

一.关于sm3算法本身 1.分组,将需要加密的文件转为2进制,然后分组为512*K+448(K为任意整数,不够用一个"1"和多个"0"补齐),再加上64位的文件长度信息构成512*(K+1)的分组 2.迭代运算,这里有一个参数(256位)参与运算,初始值V(0)(文档中叫做IV),迭代一次之后得到V(1),后面依次迭代得到V(1).V(2).V(3)--V(K).V(K+1),V(K+1)也就是最终的杂凑值 二.sm3在芯片中的实际使用方法 芯片中有sm3函数的入口

2017-2018-2 20179204《网络攻防实践》第十三周学习总结 python实现国密算法

国密商用算法是指国密SM系列算法,包括基于椭圆曲线的非对称公钥密码SM2算法.密码杂凑SM3算法.分组密码SM4算法,还有只以IP核形式提供的非公开算法流程的对称密码SM1算法等. 第1节 SM2非对称密码算法原理 国密SM2算法是商用的ECC椭圆曲线公钥密码算法,其具有公钥加密.密钥交换以及数字签名的功能.椭圆曲线参数并没有给出推荐的曲线,曲线参数的产生需要利用一定的算法产生.但在实际使用中,国密局推荐使用素数域256 位椭圆曲线,其曲线方程为y^2= x^3+ax+b.参数如下: 其中p是大

国密算法SM2证书制作

国密算法sm2非对称算法椭圆曲线 原文:http://www.jonllen.cn/jonllen/work/162.aspx 前段时间将系统的RSA算法全部升级为SM2国密算法,密码机和UKey硬件设备大都同时支持RSA和SM2算法,只是应用系统的加解密签名验证需要修改,这个更改底层调用的加密动态库来,原来RSA用的对称加密算法DES(AES)和摘要MD5(SHA1)也相应改变,分别对应SM1.SM3算法,SM1算法基于硬件实现,SM2.SM3算法已公开. SM2签名验证算法 SM2签名同样也

嵌入式设备中支持国密算法的方法

如今国密系列算法的应用已不仅仅局限于金融和电信等领域,诸如车载设备,消费类电子设备等越来越多的产品开始要求有国密算法的支持.但是国密算法的开源资料和应用案例少之又少,如何快速高效的在自己的设备中加入国密算法已经成为众多开发者必须要面对的难题.现在为大家准备了一个系列文章,介绍嵌入式设备中移植国密算法的方法.简单来说,分为三种方法:1.移植Miracl库2.移植Openssl库3.使用加密芯片下面进行简介:1.移植Miracl库MIRACL(Multiprecision Integer and R

嵌入式设备中支持国密算法的方法(三)

本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法.同上一篇文章中介绍的miracl密码库相比,openssl库的应用更加广泛,资料支持度更好,但是代码体量要大于miracl库.需要再次说明的是,同miracl库一样,openssl的库也并不能直接提供国密算法的接口,我们是利用库中相应的API接口(如椭圆曲线等)来构建自己的国密算法,下面我们具体介绍移植的步骤.第一步 获取库作为应用广泛的开

gmssl国密总结

1.gmssl组成 分为加密和通信两部分 2.加密 主要指的是sm2 sm3 sm4加密算法,以及相关的加密组件 3.通信 指的是gmtls 按照一个 GM/T 0024-2014规范实现的,采用双证书,签名证书+加密证书 4.生成证书 可使用地址https://github.com/jntass/TASSL/tree/master/Tassl_demo/mk_tls_cert 下的SM2certgen.sh生成双证书. 注意:生成请求时指定的摘要算法 在用请求生成证书时并不生效,需要重新指定,