sm

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	N, P, B  *big.Int
	Gnx, Gny *big.Int
)

Functions

func CBCDecrypt

func CBCDecrypt(key, iv, cipherText []byte) ([]byte, error)

func CBCEncrypt

func CBCEncrypt(key, iv, plainText []byte) ([]byte, error)

func CheckKey added in v0.1.1

func CheckKey(p *PublicKey) bool

func CheckScalar added in v0.1.1

func CheckScalar(p *PrivateKey) bool

func Decrypt added in v0.1.1

func Decrypt(p *PrivateKey, encryptedText []byte) ([]byte, error)

func Encrypt added in v0.1.1

func Encrypt(p *PublicKey, plainText []byte) ([]byte, error)

func PrivateKeyToPem added in v0.1.0

func PrivateKeyToPem(priv *PrivateKey) ([]byte, error)

func PublicKeyToPem added in v0.1.0

func PublicKeyToPem(pub *PublicKey) ([]byte, error)

func SetupKeyFactory

func SetupKeyFactory(f KeyFactory)

func Sign added in v0.1.1

func Sign(random io.Reader, p *PrivateKey, message []byte) ([64]byte, error)

func Sm3Sum

func Sm3Sum(bts []byte) [32]byte

func Verify added in v0.1.1

func Verify(p *PublicKey, message []byte, sig [64]byte) bool

Types

type KeyFactory

type KeyFactory interface {
	// sm2
	Sm2Sign(random io.Reader, p *PrivateKey, message []byte) (signature [64]byte, err error)
	Sm2Verify(pub *PublicKey, message []byte, signature [64]byte) bool
	Sm2Encrypt(random io.Reader, pub *PublicKey, msg []byte) ([]byte, error)
	Sm2Decrypt(p *PrivateKey, encryptedText []byte) (plainText []byte, err error)

	// sm3
	Sm3Sum(message []byte) (digest [32]byte)

	// sm4
	Sm4CBCEncrypt(key, iv, plainText []byte) ([]byte, error)
	Sm4CBCDecrypt(key, iv, cipherText []byte) ([]byte, error)
}

type PrivateKey

type PrivateKey struct {
	D *big.Int
	// contains filtered or unexported fields
}

func AddPrivate added in v0.1.1

func AddPrivate(p, p1 *PrivateKey) (*PrivateKey, error)

func DeterministicHashDerive added in v0.1.2

func DeterministicHashDerive(p *PublicKey) *PrivateKey

func NewPrivateKey added in v0.0.3

func NewPrivateKey(rand io.Reader) *PrivateKey

func PrivateKeyFromBytes

func PrivateKeyFromBytes(key *[33]byte) (*PrivateKey, error)

func PrivateKeyFromInteger added in v0.0.8

func PrivateKeyFromInteger(d *big.Int) (*PrivateKey, error)

func PrivateKeyFromPem added in v0.1.0

func PrivateKeyFromPem(pemBts []byte) (*PrivateKey, error)

func ScalarHash added in v0.1.1

func ScalarHash(p *PublicKey, outputIndex uint64) *PrivateKey

func (*PrivateKey) Bytes

func (p *PrivateKey) Bytes() [33]byte

func (*PrivateKey) PublicKey

func (p *PrivateKey) PublicKey() *PublicKey

func (*PrivateKey) String

func (p *PrivateKey) String() string

type PublicKey

type PublicKey struct {
	X, Y *big.Int
	// contains filtered or unexported fields
}

func AddPublic added in v0.1.1

func AddPublic(p, p1 *PublicKey) (*PublicKey, error)

func PublicKeyFromBytes

func PublicKeyFromBytes(key *[33]byte) (*PublicKey, error)

func PublicKeyFromPem added in v0.1.0

func PublicKeyFromPem(pemBts []byte) (*PublicKey, error)

func ScalarMult added in v0.1.1

func ScalarMult(p *PrivateKey, pub *PublicKey) (*PublicKey, error)

func SubPublic added in v0.1.2

func SubPublic(p, p1 *PublicKey) (*PublicKey, error)

func (*PublicKey) Bytes

func (p *PublicKey) Bytes() [33]byte

func (*PublicKey) String

func (p *PublicKey) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL