(prk []byte)
| 26 | } |
| 27 | |
| 28 | func (s *SM2ECDH) SetPrivateKey(prk []byte) (err error) { |
| 29 | if len(prk) < PrivateKeySize { |
| 30 | return fmt.Errorf("private key too short: got %d bytes, need %d", len(prk), PrivateKeySize) |
| 31 | } |
| 32 | copy(s.PrivKey[:], prk[:PrivateKeySize]) |
| 33 | s.prvK, err = ecdh.P256().NewPrivateKey(prk) |
| 34 | if err != nil { |
| 35 | return err |
| 36 | } |
| 37 | copy(s.PubKey[:], s.prvK.PublicKey().Bytes()[1:1+PublicKeySize]) |
| 38 | s.PrivKeyBase64 = base64.StdEncoding.EncodeToString(s.PrivKey[:]) |
| 39 | s.PubKeyBase64 = base64.StdEncoding.EncodeToString(s.PubKey[:]) |
| 40 | s.BriefName = fmt.Sprintf("%s...%s", s.PubKeyBase64[0:4], s.PubKeyBase64[39:43]) |
| 41 | |
| 42 | return nil |
| 43 | } |
| 44 | |
| 45 | func (s *SM2ECDH) PrivateKey() []byte { |
| 46 | return s.PrivKey[:] |
no test coverage detected