golang语法问题,RSA验签

在网上找了一段RSA加解密的代码,准备自己写一下试试效果,其中有一个验签的方法语法报错,报错内容是:Invalid type assertion: pubKey.(rsa.PublicKey)(non-interface type rsa.PublicKey on left),我看了很多帖子都是这样写的,我本地实际操作的时候就报错了,想请教各位golang的大神指点一下,我是写java的,golang不太熟悉,附图如下-- 

*号用空格隔开一下

刚刚试了一下没有效果呢,我把这个单独提出来写也没有作用


//验证

func RsaVerySignWithSha256(data, signData, keyBytes []byte) bool {

block, _ := pem.Decode(keyBytes)

if block == nil {

panic(errors.New("public key error"))

}

pubKey, err := x509.ParsePKIXPublicKey(block.Bytes)

if err != nil {

panic(err)

}

pub := pubKey.(*rsa.PublicKey)

hashed := sha256.Sum256(data)

err = rsa.VerifyPKCS1v15(pubKey.(*rsa.PublicKey), crypto.SHA256, hashed[:], signData)

if err != nil {

panic(err)

}

return true

}

//验证

func RsaVerySignWithSha256(data, signData, keyBytes []byte) bool {

block, _ := pem.Decode(keyBytes)

if block == nil {

panic(errors.New("public key error"))

}

pubKey, err := x509.ParsePKIXPublicKey(block.Bytes)

if err != nil {

panic(err)

}

pub := pubKey.(*rsa.PublicKey)

hashed := sha256.Sum256(data)

err = rsa.VerifyPKCS1v15(pubKey.(*rsa.PublicKey), crypto.SHA256, hashed[:], signData)

if err != nil {

panic(err)

}

return true

}

已找到问题点,此贴终结

func RsaVerySignWithSha256(data, signData, keyBytes []byte) bool {

block, _ := pem.Decode(keyBytes)

if block == nil {

panic(errors.New("public key error"))

}


pubKey, err := x509.ParsePKIXPublicKey(block.Bytes)

if err != nil {

panic(err)

}


hashed := sha256.Sum256(data)

err = rsa.VerifyPKCS1v15(pubKey.(*rsa.PublicKey), crypto.SHA256, hashed[:], signData)

if err != nil {

panic(err)

}


return true

}

keyBytes是传的rsa的公钥吗?pem格式的