资源简介
Android SM2、SM3、SM4 算法支持 Service Provider 及证书制作软件包
国密算法 JCAJCE Service Provider,适应版本 Android 4.2.2~7.0
支持 SM2 的 KeyFactory、KeyPairGenerator、Cipher、Signature、X.509 CertificateFactory 接口
支持 SM3 的 MessageDigest 接口、SM3withSM2 混合算法
支持 SM4 的 Cipher、KeyFactory、KeyGenerator、SecretKey 接口、相关算法 CMAC-SM4、Poly1305-SM4
增加 java.security.PublicKey 的子类 SM2PublicKey
增加 java.security.PrivateKey 的子类 SM2PrivateKey
全功能支持 SM3withSM2 算法的 X.509 证书结构体解释与密码运算
支持 BKS、PKCS#12 KeyStore
生成、解释、验算 X.509v1/v3 证书,签名算法支持 SM3withSM2、主流 RSA、DSA、ECDSA....
生成、解释、验算 PKCS#10 证书申请,签名算法支持 SM3withSM2、主流 RSA、DSA、ECDSA....
*** 无须打包 BouncyCastle 支持库,体积小、节约内存 ***
请参阅 testSM.java、testCERT.java
文件列表:
1、AndroidSM.jar -- SM2、SM3、SM4 算法/证书支持的 JCA/JCE Service Provider 类库
2、AndroidCRT.jar -- X.509 数字证书/PKCS#10 证书申请相关类库
3、bc422.jar -- BouncyCastle 加密库,Android 4.2.2 内置版本(由真机导出dex文件转换而得,仅用于编译时选用,勿打包到apk文件中)
4、testSM.java -- SM2、SM3、SM4 算法相关类引用范例
5、testCERT.java -- X.509 数字证书/PKCS#10 证书申请相关类引用范例
6、readme.txt -- 本文
因条件及精力限制,各类、方法的实现未经严格彻底的测试,不宜用于商业用途软件的开发。
如欲将本开发包发布、上传、拷贝、共享等,务必保持其内容完整性(包括本文)
如有需要帮助或者索取源码,请联系 suntongo@qq.com, suntongo@hotmail.com

代码片段和文件信息
package org.suntongo.cert;
import android.util.base64;
import com.android.org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.ExtendedKeyUsage;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.KeyUsage;
import org.bouncycastle.cert.CertException;
import org.bouncycastle.cert.CertIOException;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.operator.ContentSigner;
import org.bouncycastle.operator.ContentSignerBuilder;
import org.bouncycastle.operator.ContentVerifierProvider;
import org.bouncycastle.operator.OperatorCreationException;
import org.bouncycastle.operator.X509CertificateConverter;
import org.bouncycastle.pkcs10.PKCS10CertificationRequest;
import org.bouncycastle.pkcs10.PKCSException;
import org.suntongo.cert.NameBuilder.RDN;
import org.suntongo.gm.provider.SMProvider;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.Security;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Date;
import javax.security.auth.x500.X500Principal;
/**
* testCERT
*/
public class testCERT {
public static void addProvider() {
Provider prvdr = Security.getProvider(“SM“);
if (prvdr == null) {
prvdr = new SMProvider();
Security.addProvider(prvdr);
}
}
private static KeyPair genSM2KeyPair() throws NoSuchAlgorithmException {
KeyPairGenerator kpg;
try { kpg = KeyPairGenerator.getInstance(“SM2“);}
catch (NoSuchAlgorithmException e) {
addProvider();
kpg = KeyPairGenerator.getInstance(“SM2“);
}
/* You can also initialize the generator with a random source if needed. */
//kpg.initialize(256 new SecureRandom());
return kpg.generateKeyPair();
}
public static String testCRT1() throws NoSuchAlgorithmException
OperatorCreationException CertificateException CertException {
StringBuilder sb = new StringBuilder();
SecureRandom apRandom = new SecureRandom();
NameBuilder nb = new NameBuilder(RDN.INSTANCE);
nb.addRDN(RDN.CN “Suntongo“);
nb.addRDN(RDN.E “suntongo@qq.com“);
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(“RSA“);
keyPairGenerator.initialize(1024);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
X500Principal me = nb.toName();
B
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 91063 2016-08-13 11:57 AndroidCRT.jar
文件 108993 2016-08-13 11:59 AndroidSM.jar
文件 1007256 2016-07-16 06:25 bc422.jar
文件 1508 2016-08-13 12:03 readme.txt
文件 9041 2016-08-13 11:41 testCERT.java
文件 9845 2016-08-13 11:42 testSM.java
- 上一篇:java j2ee 课程设计报告
- 下一篇:文件管理器 Android文件管理器
相关资源
- AndroidStudio版直连sqlserver
- android带百分比进度条的文件上传,使
- 美食天下项目Android版源码和Web版源码
- Android之自定义ToggleButton使用
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
- 单机搭建Android(解决Network is unreach
评论
共有 条评论