diff --git a/pkcs8/pkcs8_norace_test.go b/pkcs8/pkcs8_norace_test.go index 9095998..bc32339 100644 --- a/pkcs8/pkcs8_norace_test.go +++ b/pkcs8/pkcs8_norace_test.go @@ -45,6 +45,28 @@ fYuup/MCEz2zpA== -----END ENCRYPTED SM9 SIGN PRIVATE KEY----- ` +const encryptedSM9EncMasterPrivateKey = `-----BEGIN ENCRYPTED SM9 ENC MASTER KEY----- +MIH2MGEGCSqGSIb3DQEFDTBUMDQGCSqGSIb3DQEFDDAnBBAjXv966WmKuBfUH1Bq +OMwUAgMBAAACARAwCwYJKoEcz1UBgxECMBwGCCqBHM9VAWgCBBAtVvud0awyXO1r +dz92Pn+9BIGQlAsGegoSrApDm+rbszu1wsUwAVbq+EtgkraBSZRqGYByBOSN9G9m +p0lZJ75/TJMqRunkUhAUorNzXkdy2nab1VRs+Y8lKzhw5Y7KLnjbRsoDEPcvluSW +UVHgVDiaGKLKlKWTdhRRzLnBOocE0LA3FnOH86eUFjGY87ss6vz8iD9JHHfap4yr +Yut8eao1nBSY +-----END ENCRYPTED SM9 ENC MASTER KEY----- +` + +const encryptedSM9EncPrivateKey = `-----BEGIN ENCRYPTED SM9 ENC PRIVATE KEY----- +MIIBVjBhBgkqhkiG9w0BBQ0wVDA0BgkqhkiG9w0BBQwwJwQQ7qFYth3lhEj9pHl4 +V0HeiwIDAQAAAgEQMAsGCSqBHM9VAYMRAjAcBggqgRzPVQFoAgQQvk8cAqLQcGr1 +LfRo8lz6TwSB8Ma6HVx/t1q+wbu+NLLzq1uok7zNBKM8Z9hFiqrY1pngZTtweVHP +w/r6inOU4rI9Eex6R7C4koT9cGYN4QBur3BHxTLPM7C4knldxxYHuA98MEGHMMcE +gJIcgZlrkdprvLSXqdKJ/Ee7Ut4SuJuMW/Ww0hTrOmnI0j4cRAaZAgEh9Lh9B5CK +tzO+xTcb9siTzgRDKxnsZB85c1pwzQ3LH1KNR7tsg1z/AW+Hab4+8WX7mIIlvmVM +zkRVx8ZgZCNo/MTFjw2qCNVsGrcj/xFm63p8eWoYGx6eXS6nr3IYRIDwR5F7CoNY +h1/9v+oJWBaPxQ== +-----END ENCRYPTED SM9 ENC PRIVATE KEY----- +` + func TestParseSM9PrivateKey(t *testing.T) { keyList := []testPrivateKey{ { @@ -53,6 +75,18 @@ func TestParseSM9PrivateKey(t *testing.T) { encrypted: encryptedSM9SignPrivateKey, password: "123456", }, + { + name: "encryptedSM9EncMasterPrivateKey", + clear: "", + encrypted: encryptedSM9EncMasterPrivateKey, + password: "123456", + }, + { + name: "encryptedSM9EncPrivateKey", + clear: "", + encrypted: encryptedSM9EncPrivateKey, + password: "123456", + }, } for i, key := range keyList { t.Run(key.name, func(t *testing.T) { diff --git a/sm9/sm9_key_test.go b/sm9/sm9_key_test.go index 1a36f53..982d283 100644 --- a/sm9/sm9_key_test.go +++ b/sm9/sm9_key_test.go @@ -267,4 +267,24 @@ func TestParseSM9SignMasterPublicKey(t *testing.T) { if err != nil { t.Fatal(err) } + if key.MasterPublicKey == nil { + t.Errorf("not expected nil") + } +} + +const sm9EncMasterPublicKeyFromGMSSL = `-----BEGIN SM9 ENC MASTER PUBLIC KEY----- +MEQDQgAEUWC+GS/3JrpMJqH/ZBItUDROFg62fmY4HuU0kHlnK/trA/GBX/P+MH0P +tYwoUdCETdYJwxiKXlI1jytVTuuT2Q== +-----END SM9 ENC MASTER PUBLIC KEY----- +` + +func TestParseSM9EncryptMasterPublicKey(t *testing.T) { + key := new(EncryptMasterPublicKey) + err := key.ParseFromPEM([]byte(sm9EncMasterPublicKeyFromGMSSL)) + if err != nil { + t.Fatal(err) + } + if key.MasterPublicKey == nil { + t.Errorf("not expected nil") + } }