91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 974KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2022-08-27
  • 語言: Java
  • 標簽: Android??SM2??SM3??SM??

資源簡介

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

評論

共有 條評論