MCPcopy
hub / github.com/OpenNHP/opennhp / GenerateSM2ECDHKeypair

Function GenerateSM2ECDHKeypair

nhp/core/scheme/gmsm/gmsm.go:112–126  ·  view source on GitHub ↗

Generate SM2 public and private key pairs for ECDH.

()

Source from the content-addressed store, hash-verified

110
111// Generate SM2 public and private key pairs for ECDH.
112func GenerateSM2ECDHKeypair() (string, string) {
113 var err error
114 var pubKey [64]byte
115 var privKey [32]byte
116
117 pKey, err := ecdh.P256().GenerateKey(rand.Reader)
118 if err != nil {
119 return "", ""
120 }
121 copy(privKey[:32], pKey.Bytes()[:32]) // Private Key 32 bytes
122 copy(pubKey[:64], pKey.PublicKey().Bytes()[1:65]) // Public Key 64 bytes
123
124 return base64.StdEncoding.EncodeToString(pubKey[:]),
125 base64.StdEncoding.EncodeToString(privKey[:])
126}
127
128func Base64DecodeSM2ECDHPrivateKey(privStr string) (*ecdh.PrivateKey, error) {
129 privKeyBytes, err := base64.StdEncoding.DecodeString(privStr)

Callers

nothing calls this directly

Calls 2

BytesMethod · 0.65
PublicKeyMethod · 0.65

Tested by

no test coverage detected