From: qydysky Date: Thu, 4 Mar 2021 08:00:51 +0000 (+0800) Subject: KeyStatus X-Git-Tag: v0.4.9~2 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=b77432d87f9485ecce25e87387db398785d13d7f;p=part%2F.git KeyStatus --- diff --git a/crypto/Crypto.go b/crypto/Crypto.go index 36f715a..ce3de82 100644 --- a/crypto/Crypto.go +++ b/crypto/Crypto.go @@ -11,6 +11,11 @@ import ( "encoding/pem" ) +var ( + PublicKeyNoLoad = errors.New(`PublicKeyNoLoad`) + PrivateKeyNoLoad = errors.New(`PrivateKeyNoLoad`) +) + type Crypto struct { pubKey *rsa.PublicKey priKey *rsa.PrivateKey @@ -31,6 +36,16 @@ func FileLoad(path string) (data []byte, err error) { return } +func (t *Crypto) KeyStatus() (error) { + if t.pubKey == nil { + return PublicKeyNoLoad + } + if t.priKey == nil { + return PrivateKeyNoLoad + } + return nil +} + func (t *Crypto) GetPKIXPubKey(pubPEMData []byte) (err error) { block, _ := pem.Decode(pubPEMData) if block == nil || block.Type != "PUBLIC KEY" { diff --git a/crypto/Crypto_test.go b/crypto/Crypto_test.go index 8ebfd78..baf4086 100644 --- a/crypto/Crypto_test.go +++ b/crypto/Crypto_test.go @@ -4,14 +4,17 @@ import "testing" func Test(t *testing.T){ var k Crypto + if k.KeyStatus() != PublicKeyNoLoad {t.Error(`Keystatus not PublicKeyNoLoad`)} { d,_ := FileLoad(`public.pem`) k.GetPKIXPubKey(d) } + if k.KeyStatus() != PrivateKeyNoLoad {t.Error(`Keystatus not PrivateKeyNoLoad`)} { d,_ := FileLoad(`private.pem`) k.GetPKCS1PriKey(d) } + if k.KeyStatus() != nil {t.Error(`Keystatus not nil`)} if srcs,e := k.GetEncrypt([]byte(`1we23`));e != nil { t.Error(e) } else if des,e := k.GetDecrypt(srcs);e != nil {