Skip to content

Blockchain-CN/keygen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keygen

Asymmetric encryption algorithm impliment. 使用rsa生成公钥和私钥,使用私钥进行信息签名,公钥验证结果

// RSASSA-PKCS1-V1_5-SIGN from RSA PKCS#1 v1.5.
func SignPKCS1v15(rand io.Reader, priv *PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error)

// VerifyPKCS1v15 verifies an RSA PKCS#1 v1.5 signature.
func VerifyPKCS1v15(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error

rsa生成算法

原生rsa "crypto/rsa"

函数功能

用户注册函数

在keypool目录下注册一个${user}文件夹,并在其中生成公钥、私钥

func GenRsaKey(bits int, user string) error

// 使用
GenRsaKey(bits, "路达")

获取密钥md5

通过用户获得用户目录,并根据目录,获取其中文件的密钥md5,公钥私钥都可以

func GetUserPath(user string) string
func GetKeyMd5(p string) (s string, err error)

// 使用
pbKeyPath := path.Join(GetUserPath("路达"), "public.pem")
pb, err:= GetKeyMd5(pbKeyPath)

用户数据签名

根据用户名/或者直接输入私钥进行数据签名

func Signature(user string, data []byte) (pb, c string, err error) 
func Signature2(pv string, data []byte) (c string, err error) 

// 使用1
pb, ciphertext, err := Signature("路达", []byte("向优格特转账1000000"))
// 使用2
pv, err:= GetKeyMd5(path.Join(GetUserPath("路达"), "private.pem"))
pb, err:= GetKeyMd5(path.Join(GetUserPath("路达"), "public.pem"))
ciphertext, err := Signature2(pv, []byte("向优格特转账1000000"))

用户数据验证

根据用户id(公钥)进行${签名}到${传输数据}的验证

func Verify(pb, c string, data []byte) error

// 使用
err := Verify(pb, ciphertext, []byte("向优格特转账1000000"))

About

非对称密钥生成

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages