Skip to content

Commit 3e99c2c

Browse files
committed
更新
1 parent 2d595da commit 3e99c2c

File tree

12 files changed

+139
-177
lines changed

12 files changed

+139
-177
lines changed

cryptobin/dsa/parse.go

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,9 @@ func (this DSA) ParsePKCS1PrivateKeyFromPEM(key []byte) (*dsa.PrivateKey, error)
2828
}
2929

3030
// Parse the key
31-
var parsedKey any
32-
if parsedKey, err = cryptobin_dsa.ParsePKCS1PrivateKey(block.Bytes); err != nil {
33-
return nil, err
34-
}
35-
3631
var pkey *dsa.PrivateKey
37-
var ok bool
38-
if pkey, ok = parsedKey.(*dsa.PrivateKey); !ok {
39-
return nil, ErrNotDSAPrivateKey
32+
if pkey, err = cryptobin_dsa.ParsePKCS1PrivateKey(block.Bytes); err != nil {
33+
return nil, err
4034
}
4135

4236
return pkey, nil
@@ -58,15 +52,9 @@ func (this DSA) ParsePKCS1PrivateKeyFromPEMWithPassword(key []byte, password str
5852
}
5953

6054
// Parse the key
61-
var parsedKey any
62-
if parsedKey, err = cryptobin_dsa.ParsePKCS1PrivateKey(blockDecrypted); err != nil {
63-
return nil, err
64-
}
65-
6655
var pkey *dsa.PrivateKey
67-
var ok bool
68-
if pkey, ok = parsedKey.(*dsa.PrivateKey); !ok {
69-
return nil, ErrNotDSAPrivateKey
56+
if pkey, err = cryptobin_dsa.ParsePKCS1PrivateKey(blockDecrypted); err != nil {
57+
return nil, err
7058
}
7159

7260
return pkey, nil
@@ -115,15 +103,9 @@ func (this DSA) ParsePKCS8PrivateKeyFromPEM(key []byte) (*dsa.PrivateKey, error)
115103
}
116104

117105
// Parse the key
118-
var parsedKey any
119-
if parsedKey, err = cryptobin_dsa.ParsePKCS8PrivateKey(block.Bytes); err != nil {
120-
return nil, err
121-
}
122-
123106
var pkey *dsa.PrivateKey
124-
var ok bool
125-
if pkey, ok = parsedKey.(*dsa.PrivateKey); !ok {
126-
return nil, ErrNotDSAPrivateKey
107+
if pkey, err = cryptobin_dsa.ParsePKCS8PrivateKey(block.Bytes); err != nil {
108+
return nil, err
127109
}
128110

129111
return pkey, nil
@@ -144,15 +126,9 @@ func (this DSA) ParsePKCS8PrivateKeyFromPEMWithPassword(key []byte, password str
144126
return nil, err
145127
}
146128

147-
var parsedKey any
148-
if parsedKey, err = cryptobin_dsa.ParsePKCS8PrivateKey(blockDecrypted); err != nil {
149-
return nil, err
150-
}
151-
152129
var pkey *dsa.PrivateKey
153-
var ok bool
154-
if pkey, ok = parsedKey.(*dsa.PrivateKey); !ok {
155-
return nil, ErrNotDSAPrivateKey
130+
if pkey, err = cryptobin_dsa.ParsePKCS8PrivateKey(blockDecrypted); err != nil {
131+
return nil, err
156132
}
157133

158134
return pkey, nil

cryptobin/ecdsa/create.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package ecdsa
33
import (
44
"errors"
55
"crypto/rand"
6-
"crypto/x509"
76
"encoding/pem"
87

98
"github.com/deatil/go-cryptobin/pkcs1"
109
"github.com/deatil/go-cryptobin/pkcs8"
10+
"github.com/deatil/go-cryptobin/pubkey/ecdsa"
1111
)
1212

1313
type (
@@ -50,7 +50,7 @@ func (this ECDSA) CreatePKCS1PrivateKey() ECDSA {
5050
return this.AppendError(err)
5151
}
5252

53-
privateKeyBytes, err := x509.MarshalECPrivateKey(this.privateKey)
53+
privateKeyBytes, err := ecdsa.MarshalECPrivateKey(this.privateKey)
5454
if err != nil {
5555
return this.AppendError(err)
5656
}
@@ -85,7 +85,7 @@ func (this ECDSA) CreatePKCS1PrivateKeyWithPassword(password string, opts ...str
8585
}
8686

8787
// 生成私钥
88-
privateKeyBytes, err := x509.MarshalECPrivateKey(this.privateKey)
88+
privateKeyBytes, err := ecdsa.MarshalECPrivateKey(this.privateKey)
8989
if err != nil {
9090
return this.AppendError(err)
9191
}
@@ -116,7 +116,7 @@ func (this ECDSA) CreatePKCS8PrivateKey() ECDSA {
116116
return this.AppendError(err)
117117
}
118118

119-
privateKeyBytes, err := x509.MarshalPKCS8PrivateKey(this.privateKey)
119+
privateKeyBytes, err := ecdsa.MarshalPrivateKey(this.privateKey)
120120
if err != nil {
121121
return this.AppendError(err)
122122
}
@@ -145,7 +145,7 @@ func (this ECDSA) CreatePKCS8PrivateKeyWithPassword(password string, opts ...any
145145
}
146146

147147
// 生成私钥
148-
privateKeyBytes, err := x509.MarshalPKCS8PrivateKey(this.privateKey)
148+
privateKeyBytes, err := ecdsa.MarshalPrivateKey(this.privateKey)
149149
if err != nil {
150150
return this.AppendError(err)
151151
}
@@ -176,7 +176,7 @@ func (this ECDSA) CreatePublicKey() ECDSA {
176176
return this.AppendError(err)
177177
}
178178

179-
publicKeyBytes, err := x509.MarshalPKIXPublicKey(this.publicKey)
179+
publicKeyBytes, err := ecdsa.MarshalPublicKey(this.publicKey)
180180
if err != nil {
181181
return this.AppendError(err)
182182
}

cryptobin/ecdsa/ecdsa_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@ import (
44
"testing"
55
"crypto/rand"
66

7+
"github.com/deatil/go-cryptobin/pubkey/ecdsa"
8+
"github.com/deatil/go-cryptobin/elliptic/secp256k1"
9+
710
cryptobin_test "github.com/deatil/go-cryptobin/tool/test"
811
)
912

13+
func init() {
14+
ecdsa.AddNamedCurve(secp256k1.S256(), secp256k1.OIDNamedCurveSecp256k1)
15+
}
16+
1017
var (
1118
prikeyRC2_40En = `
1219
-----BEGIN ENCRYPTED PRIVATE KEY-----
@@ -323,6 +330,28 @@ func Test_PrivateKey_Bytes(t *testing.T) {
323330
assertEqual(xk.GetPrivateKey(), obj.GetPrivateKey(), "PrivateKey_Bytes-xk")
324331
}
325332

333+
func Test_PrivateKey_Bytes_2(t *testing.T) {
334+
assertNoError := cryptobin_test.AssertNoErrorT(t)
335+
assertEqual := cryptobin_test.AssertEqualT(t)
336+
assertNotEmpty := cryptobin_test.AssertNotEmptyT(t)
337+
338+
obj := New().WithCurve(secp256k1.S256()).GenerateKey()
339+
340+
assertNoError(obj.Error(), "PrivateKeyD")
341+
342+
priv := obj.GetPrivateKey()
343+
344+
d := priv.D.Bytes()
345+
346+
assertNotEmpty(d, "PrivateKey_Bytes")
347+
348+
xk := New().WithCurve(secp256k1.S256()).FromPrivateKeyBytes(d)
349+
350+
assertNoError(xk.Error(), "PrivateKey_Bytes-xk")
351+
352+
assertEqual(xk.GetPrivateKey(), obj.GetPrivateKey(), "PrivateKey_Bytes-xk")
353+
}
354+
326355
var testPEMCiphers = []string{
327356
"DESCBC",
328357
"DESEDE3CBC",

cryptobin/ecdsa/parse.go

Lines changed: 8 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
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

1314
var (
@@ -18,24 +19,15 @@ var (
1819

1920
// 解析私钥
2021
func (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 {

cryptobin/ecgdsa/parse.go

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,9 @@ func (this ECGDSA) ParsePKCS1PrivateKeyFromPEM(key []byte) (*ecgdsa.PrivateKey,
2727
}
2828

2929
// Parse the key
30-
var parsedKey any
31-
if parsedKey, err = ecgdsa.ParseECPrivateKey(block.Bytes); err != nil {
32-
return nil, err
33-
}
34-
3530
var pkey *ecgdsa.PrivateKey
36-
var ok bool
37-
38-
if pkey, ok = parsedKey.(*ecgdsa.PrivateKey); !ok {
39-
return nil, ErrNotECPrivateKey
31+
if pkey, err = ecgdsa.ParseECPrivateKey(block.Bytes); err != nil {
32+
return nil, err
4033
}
4134

4235
return pkey, nil
@@ -58,16 +51,9 @@ func (this ECGDSA) ParsePKCS1PrivateKeyFromPEMWithPassword(key []byte, password
5851
}
5952

6053
// Parse the key
61-
var parsedKey any
62-
if parsedKey, err = ecgdsa.ParseECPrivateKey(blockDecrypted); err != nil {
63-
return nil, err
64-
}
65-
6654
var pkey *ecgdsa.PrivateKey
67-
var ok bool
68-
69-
if pkey, ok = parsedKey.(*ecgdsa.PrivateKey); !ok {
70-
return nil, ErrNotECPrivateKey
55+
if pkey, err = ecgdsa.ParseECPrivateKey(blockDecrypted); err != nil {
56+
return nil, err
7157
}
7258

7359
return pkey, nil
@@ -86,16 +72,9 @@ func (this ECGDSA) ParsePKCS8PrivateKeyFromPEM(key []byte) (*ecgdsa.PrivateKey,
8672
}
8773

8874
// Parse the key
89-
var parsedKey any
90-
if parsedKey, err = ecgdsa.ParsePrivateKey(block.Bytes); err != nil {
91-
return nil, err
92-
}
93-
9475
var pkey *ecgdsa.PrivateKey
95-
var ok bool
96-
97-
if pkey, ok = parsedKey.(*ecgdsa.PrivateKey); !ok {
98-
return nil, ErrNotECPrivateKey
76+
if pkey, err = ecgdsa.ParsePrivateKey(block.Bytes); err != nil {
77+
return nil, err
9978
}
10079

10180
return pkey, nil
@@ -116,16 +95,9 @@ func (this ECGDSA) ParsePKCS8PrivateKeyFromPEMWithPassword(key []byte, password
11695
return nil, err
11796
}
11897

119-
var parsedKey any
120-
if parsedKey, err = ecgdsa.ParsePrivateKey(blockDecrypted); err != nil {
121-
return nil, err
122-
}
123-
12498
var pkey *ecgdsa.PrivateKey
125-
var ok bool
126-
127-
if pkey, ok = parsedKey.(*ecgdsa.PrivateKey); !ok {
128-
return nil, ErrNotECPrivateKey
99+
if pkey, err = ecgdsa.ParsePrivateKey(blockDecrypted); err != nil {
100+
return nil, err
129101
}
130102

131103
return pkey, nil

0 commit comments

Comments
 (0)