fix
This commit is contained in:
@@ -67,7 +67,8 @@ public class CommonCertUtils extends GMBaseUtil {
|
||||
}
|
||||
|
||||
public static PKCS10CertificationRequest createCSR(X500Name subject, BCECPublicKey pubKey, PrivateKey priKey) throws OperatorCreationException {
|
||||
PKCS10CertificationRequestBuilder csrBuilder = new JcaPKCS10CertificationRequestBuilder(subject, pubKey);
|
||||
SM2PublicKey sm2SubPub = new SM2PublicKey(pubKey.getAlgorithm(), pubKey);
|
||||
PKCS10CertificationRequestBuilder csrBuilder = new JcaPKCS10CertificationRequestBuilder(subject, sm2SubPub);
|
||||
ContentSigner signerBuilder = new JcaContentSignerBuilder("SM3withSM2")
|
||||
.setProvider(BouncyCastleProvider.PROVIDER_NAME).build(priKey);
|
||||
return csrBuilder.build(signerBuilder);
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.sunyard.chsm.utils.gm.cert;
|
||||
|
||||
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
|
||||
import org.bouncycastle.asn1.ASN1OctetString;
|
||||
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
|
||||
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
|
||||
import org.bouncycastle.asn1.x9.X9ECPoint;
|
||||
import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;
|
||||
import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey;
|
||||
import org.bouncycastle.jcajce.provider.asymmetric.util.KeyUtil;
|
||||
|
||||
public class SM2PublicKey extends BCECPublicKey {
|
||||
public static final ASN1ObjectIdentifier ID_SM2_PUBKEY_PARAM = new ASN1ObjectIdentifier("1.2.156.10197.1.301");
|
||||
|
||||
private boolean withCompression;
|
||||
|
||||
public SM2PublicKey(BCECPublicKey key) {
|
||||
super(key.getAlgorithm(), key);
|
||||
this.withCompression = false;
|
||||
}
|
||||
|
||||
public SM2PublicKey(String algorithm, BCECPublicKey key) {
|
||||
super(algorithm, key);
|
||||
this.withCompression = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] getEncoded() {
|
||||
ASN1OctetString p = ASN1OctetString.getInstance(
|
||||
new X9ECPoint(getQ(), withCompression).toASN1Primitive());
|
||||
|
||||
// stored curve is null if ImplicitlyCa
|
||||
SubjectPublicKeyInfo info = new SubjectPublicKeyInfo(
|
||||
new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, ID_SM2_PUBKEY_PARAM),
|
||||
p.getOctets());
|
||||
|
||||
return KeyUtil.getEncodedSubjectPublicKeyInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPointFormat(String style) {
|
||||
withCompression = !("UNCOMPRESSED".equalsIgnoreCase(style));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user