mirror of
https://github.com/emmansun/gmsm.git
synced 2025-04-27 12:46:18 +08:00
smx509: 兼容OpenSSL3不一致的公钥算法OID
This commit is contained in:
parent
3166f5e06b
commit
7ab7bb6aca
@ -497,6 +497,8 @@ func getPublicKeyAlgorithmFromOID(oid asn1.ObjectIdentifier) PublicKeyAlgorithm
|
|||||||
return DSA
|
return DSA
|
||||||
case oid.Equal(oidPublicKeyECDSA):
|
case oid.Equal(oidPublicKeyECDSA):
|
||||||
return ECDSA
|
return ECDSA
|
||||||
|
case oid.Equal(oidPublicKeySM2):
|
||||||
|
return ECDSA
|
||||||
case oid.Equal(oidPublicKeyEd25519):
|
case oid.Equal(oidPublicKeyEd25519):
|
||||||
return Ed25519
|
return Ed25519
|
||||||
}
|
}
|
||||||
|
@ -129,6 +129,22 @@ BQADSAAwRQIhAIp7/3vva+ZxFePKdqkzdGoVyGsfGHhiLLQeKrCZQ2Q5AiAmMOdf
|
|||||||
0f0b8CilrVWdi8pfZyO6RqYfnpcJ638l7KHfNA==
|
0f0b8CilrVWdi8pfZyO6RqYfnpcJ638l7KHfNA==
|
||||||
-----END CERTIFICATE-----`
|
-----END CERTIFICATE-----`
|
||||||
|
|
||||||
|
const openSSL3Certificate = `
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICGzCCAcCgAwIBAgIUZ2YpsJJVNcwfjCHBEz8otQDEpUEwCgYIKoEcz1UBg3Uw
|
||||||
|
YjELMAkGA1UEBhMCSU4xEjAQBgNVBAgMCUJlbmdhbHVydTENMAsGA1UEBwwEQ2l0
|
||||||
|
eTEQMA4GA1UECgwHU29tZU9yZzENMAsGA1UECwwEVGVzdDEPMA0GA1UEAwwGUm9v
|
||||||
|
dENBMB4XDTI0MDgyNzAyMzQ1NloXDTM0MDgyNTAyMzQ1NlowYjELMAkGA1UEBhMC
|
||||||
|
SU4xEjAQBgNVBAgMCUJlbmdhbHVydTENMAsGA1UEBwwEQ2l0eTEQMA4GA1UECgwH
|
||||||
|
U29tZU9yZzENMAsGA1UECwwEVGVzdDEPMA0GA1UEAwwGUm9vdENBMFowFAYIKoEc
|
||||||
|
z1UBgi0GCCqBHM9VAYItA0IABC8HaH8+WYCtUk06wAFfzR09nnOlQOJ2oORwD25m
|
||||||
|
S55CdJv+Svzji0nSeSWtXBzo9y4Q6EKLDpOSQbKYeswVDoejUzBRMB0GA1UdDgQW
|
||||||
|
BBRSGm5/62dcOw8vkiG8YGoZMf6UIzAfBgNVHSMEGDAWgBRSGm5/62dcOw8vkiG8
|
||||||
|
YGoZMf6UIzAPBgNVHRMBAf8EBTADAQH/MAoGCCqBHM9VAYN1A0kAMEYCIQDC4s3P
|
||||||
|
wAKTEz+410/odAO30Wzam895L31T1MQ0EaBYtQIhALbw1l4lcun4RTVWYQN5A2r2
|
||||||
|
Cm2A1bCQaLWY1jsQTBpf
|
||||||
|
-----END CERTIFICATE-----`
|
||||||
|
|
||||||
func Test_ParseCertificate(t *testing.T) {
|
func Test_ParseCertificate(t *testing.T) {
|
||||||
cert, err := ParseCertificatePEM([]byte(sm2Certificate))
|
cert, err := ParseCertificatePEM([]byte(sm2Certificate))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -138,6 +154,20 @@ func Test_ParseCertificate(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
cert, err = ParseCertificatePEM([]byte(openSSL3Certificate))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if cert.PublicKeyAlgorithm != x509.ECDSA {
|
||||||
|
t.Fatal("should be ECDSA")
|
||||||
|
}
|
||||||
|
if cert.SignatureAlgorithm != SM2WithSM3 {
|
||||||
|
t.Fatal("should be SM2WithSM3")
|
||||||
|
}
|
||||||
|
_, err = json.Marshal(cert)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateSM2CertificateRequest(t *testing.T) {
|
func TestCreateSM2CertificateRequest(t *testing.T) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user