88
99 "github.com/deatil/go-cryptobin/pkcs1"
1010 "github.com/deatil/go-cryptobin/pkcs8"
11+ pubkey_ecdsa "github.com/deatil/go-cryptobin/pubkey/ecdsa"
1112)
1213
1314var (
@@ -18,24 +19,15 @@ var (
1819
1920// 解析私钥
2021func (this ECDSA ) ParsePKCS1PrivateKeyFromPEM (key []byte ) (* ecdsa.PrivateKey , error ) {
21- var err error
22-
2322 // Parse PEM block
2423 var block * pem.Block
2524 if block , _ = pem .Decode (key ); block == nil {
2625 return nil , ErrKeyMustBePEMEncoded
2726 }
2827
2928 // Parse the key
30- var parsedKey any
31- if parsedKey , err = x509 .ParseECPrivateKey (block .Bytes ); err != nil {
32- return nil , err
33- }
34-
35- var pkey * ecdsa.PrivateKey
36- var ok bool
37-
38- if pkey , ok = parsedKey .(* ecdsa.PrivateKey ); ! ok {
29+ pkey , err := pubkey_ecdsa .ParseECPrivateKey (block .Bytes )
30+ if err != nil {
3931 return nil , ErrNotECPrivateKey
4032 }
4133
@@ -58,15 +50,8 @@ func (this ECDSA) ParsePKCS1PrivateKeyFromPEMWithPassword(key []byte, password s
5850 }
5951
6052 // Parse the key
61- var parsedKey any
62- if parsedKey , err = x509 .ParseECPrivateKey (blockDecrypted ); err != nil {
63- return nil , err
64- }
65-
6653 var pkey * ecdsa.PrivateKey
67- var ok bool
68-
69- if pkey , ok = parsedKey .(* ecdsa.PrivateKey ); ! ok {
54+ if pkey , err = pubkey_ecdsa .ParseECPrivateKey (blockDecrypted ); err != nil {
7055 return nil , ErrNotECPrivateKey
7156 }
7257
@@ -86,15 +71,8 @@ func (this ECDSA) ParsePKCS8PrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, er
8671 }
8772
8873 // Parse the key
89- var parsedKey any
90- if parsedKey , err = x509 .ParsePKCS8PrivateKey (block .Bytes ); err != nil {
91- return nil , err
92- }
93-
9474 var pkey * ecdsa.PrivateKey
95- var ok bool
96-
97- if pkey , ok = parsedKey .(* ecdsa.PrivateKey ); ! ok {
75+ if pkey , err = pubkey_ecdsa .ParsePrivateKey (block .Bytes ); err != nil {
9876 return nil , ErrNotECPrivateKey
9977 }
10078
@@ -116,16 +94,9 @@ func (this ECDSA) ParsePKCS8PrivateKeyFromPEMWithPassword(key []byte, password s
11694 return nil , err
11795 }
11896
119- var parsedKey any
120- if parsedKey , err = x509 .ParsePKCS8PrivateKey (blockDecrypted ); err != nil {
121- return nil , err
122- }
123-
12497 var pkey * ecdsa.PrivateKey
125- var ok bool
126-
127- if pkey , ok = parsedKey .(* ecdsa.PrivateKey ); ! ok {
128- return nil , ErrNotECPrivateKey
98+ if pkey , err = pubkey_ecdsa .ParsePrivateKey (blockDecrypted ); err != nil {
99+ return nil , err
129100 }
130101
131102 return pkey , nil
@@ -145,7 +116,7 @@ func (this ECDSA) ParsePublicKeyFromPEM(key []byte) (*ecdsa.PublicKey, error) {
145116
146117 // Parse the key
147118 var parsedKey any
148- if parsedKey , err = x509 . ParsePKIXPublicKey (block .Bytes ); err != nil {
119+ if parsedKey , err = pubkey_ecdsa . ParsePublicKey (block .Bytes ); err != nil {
149120 if cert , err := x509 .ParseCertificate (block .Bytes ); err == nil {
150121 parsedKey = cert .PublicKey
151122 } else {
0 commit comments