src/main/java/cn/jiguang/common/utils/sm2/BCECUtil.java
public static byte[] convertECPrivateKeyToPKCS8(ECPrivateKeyParameters priKey,
        ECPublicKeyParameters pubKey) {
        ECDomainParameters domainParams = priKey.getParameters();
        ECParameterSpec spec = new ECParameterSpec(domainParams.getCurve(), domainParams.getG(),
            domainParams.getN(), domainParams.getH());
        BCECPublicKey publicKey = null;
        if (pubKey != null) {
            publicKey = new BCECPublicKey(ALGO_NAME_EC, pubKey, spec,
                BouncyCastleProvider.CONFIGURATION);
        }
        BCECPrivateKey privateKey = new BCECPrivateKey(ALGO_NAME_EC, priKey, publicKey,
            spec, BouncyCastleProvider.CONFIGURATION);
        return privateKey.getEncoded();
    }
public static byte[] convertECPrivateKeyToPKCS8(ECPrivateKeyParameters priKey,
        ECPublicKeyParameters pubKey) {
        ECDomainParameters domainParams = priKey.getParameters();
        ECParameterSpec spec = new ECParameterSpec(domainParams.getCurve(), domainParams.getG(),
            domainParams.getN(), domainParams.getH());
        BCECPublicKey publicKey = null;
        if (pubKey != null) {
            publicKey = new BCECPublicKey(ALGO_NAME_EC, pubKey, spec,
                BouncyCastleProvider.CONFIGURATION);
        }
        BCECPrivateKey privateKey = new BCECPrivateKey(ALGO_NAME_EC, priKey, publicKey,
            spec, BouncyCastleProvider.CONFIGURATION);
        return privateKey.getEncoded();
    }
public static byte [ ] convertECPrivateKeyToPKCS8 ( ECPrivateKeyParameters priKey , ECPublicKeyParameters pubKey ) { ECDomainParameters domainParams = priKey . getParameters ( ) ; ECParameterSpec spec = new ECParameterSpec ( domainParams . getCurve ( ) , domainParams . getG ( ) , domainParams . getN ( ) , domainParams . getH ( ) ) ; BCECPublicKey publicKey = null ; if ( pubKey != null ) { publicKey = new BCECPublicKey ( ALGO_NAME_EC , pubKey , spec , BouncyCastleProvider . CONFIGURATION ) ; } BCECPrivateKey privateKey = new BCECPrivateKey ( ALGO_NAME_EC , priKey , publicKey , spec , BouncyCastleProvider . CONFIGURATION ) ; return privateKey . getEncoded ( ) ; }
将ECC私钥转换为PKCS8标准的字节流

@param priKey
@param pubKey 可以为空，但是如果为空的话得到的结果OpenSSL可能解析不了
@return
将ECC私钥转换为PKCS8标准的字节流