func (k *gmsm4PrivateKey) PublicKey() (bccsp.Key, error) {
	return nil, errors.New("Cannot call this method on a symmetric key")
}
PublicKey returns the corresponding public key part of an asymmetric public/private key pair.
This method returns an error in symmetric key schemes.
package gm
import (
	"crypto/sha256"
	"errors"
	"github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/bccsp"
)
type gmsm4PrivateKey struct {
	privKey    []byte
	exportable bool
}
func (k *gmsm4PrivateKey) Bytes() (raw []byte, err error) {
	if k.exportable {
		return k.privKey, nil
	}
	return nil, errors.New("Not supported")
}
func (k *gmsm4PrivateKey) SKI() (ski []byte) {
	hash := sha256.New()
	hash.Write([]byte{0x01})
	hash.Write(k.privKey)
	return hash.Sum(nil)
}
func (k *gmsm4PrivateKey) Symmetric() bool {
	return true
}
func (k *gmsm4PrivateKey) Private() bool {
	return true
}