diff --git a/go/gmssl/pkey.go b/go/gmssl/pkey.go index ded184c9..04f5da73 100644 --- a/go/gmssl/pkey.go +++ b/go/gmssl/pkey.go @@ -667,7 +667,7 @@ type PrivateKey struct { pkey *C.EVP_PKEY } -func GeneratePrivateKey(alg string, args map[string]string, eng *Engine) (*PrivateKey, error) { +func GeneratePrivateKey(alg string, args [][2]string, eng *Engine) (*PrivateKey, error) { calg := C.CString(alg) defer C.free(unsafe.Pointer(calg)) @@ -688,7 +688,9 @@ func GeneratePrivateKey(alg string, args map[string]string, eng *Engine) (*Priva if 1 != C.EVP_PKEY_paramgen_init(ctx) { return nil, GetErrors() } - for name, value := range args { + for _, arg := range args { + name := arg[0] + value := arg[1] cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) cvalue := C.CString(value) @@ -712,7 +714,9 @@ func GeneratePrivateKey(alg string, args map[string]string, eng *Engine) (*Priva return nil, GetErrors() } - for name, value := range args { + for _, arg := range args { + name := arg[0] + value := arg[1] cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) cvalue := C.CString(value) diff --git a/go/gmssltest/gmssltest.go b/go/gmssltest/gmssltest.go index 1a7953e1..bfbd2738 100644 --- a/go/gmssltest/gmssltest.go +++ b/go/gmssltest/gmssltest.go @@ -149,9 +149,9 @@ func main() { fmt.Println() /* private key */ - rsa_args := map[string]string { - "rsa_keygen_bits": "2048", - "rsa_keygen_pubexp" : "65537", + rsa_args := [][2]string{ + {"rsa_keygen_bits", "2048"}, + {"rsa_keygen_pubexp", "65537"}, } rsa, err := gmssl.GeneratePrivateKey("RSA", rsa_args, nil) @@ -175,9 +175,9 @@ func main() { fmt.Println() /* SM2 key pair operations */ - sm2keygenargs := map[string]string { - "ec_paramgen_curve": "sm2p256v1", - "ec_param_enc": "named_curve", + sm2keygenargs := [][2]string{ + {"ec_paramgen_curve", "sm2p256v1"}, + {"ec_param_enc", "named_curve"}, } sm2sk, _ := gmssl.GeneratePrivateKey("EC", sm2keygenargs, nil) sm2sktxt, _ := sm2sk.GetText()