diff --git a/go/build.go b/go/gmssl/build.go similarity index 100% rename from go/build.go rename to go/gmssl/build.go diff --git a/go/certificate.go b/go/gmssl/certificate.go similarity index 100% rename from go/certificate.go rename to go/gmssl/certificate.go diff --git a/go/cipher.go b/go/gmssl/cipher.go similarity index 100% rename from go/cipher.go rename to go/gmssl/cipher.go diff --git a/go/cms.go b/go/gmssl/cms.go similarity index 100% rename from go/cms.go rename to go/gmssl/cms.go diff --git a/go/digest.go b/go/gmssl/digest.go similarity index 100% rename from go/digest.go rename to go/gmssl/digest.go diff --git a/go/engine.go b/go/gmssl/engine.go similarity index 100% rename from go/engine.go rename to go/gmssl/engine.go diff --git a/go/ibc.go b/go/gmssl/ibc.go similarity index 100% rename from go/ibc.go rename to go/gmssl/ibc.go diff --git a/go/mac.go b/go/gmssl/mac.go similarity index 100% rename from go/mac.go rename to go/gmssl/mac.go diff --git a/go/ocsp.go b/go/gmssl/ocsp.go similarity index 100% rename from go/ocsp.go rename to go/gmssl/ocsp.go diff --git a/go/otp.go b/go/gmssl/otp.go similarity index 100% rename from go/otp.go rename to go/gmssl/otp.go diff --git a/go/pbkdf.go b/go/gmssl/pbkdf.go similarity index 100% rename from go/pbkdf.go rename to go/gmssl/pbkdf.go diff --git a/go/pkey.go b/go/gmssl/pkey.go similarity index 100% rename from go/pkey.go rename to go/gmssl/pkey.go diff --git a/go/rand.go b/go/gmssl/rand.go similarity index 100% rename from go/rand.go rename to go/gmssl/rand.go diff --git a/go/ssl.go b/go/gmssl/ssl.go similarity index 100% rename from go/ssl.go rename to go/gmssl/ssl.go diff --git a/go/version.go b/go/gmssl/version.go similarity index 100% rename from go/version.go rename to go/gmssl/version.go diff --git a/go/gmssltest.go b/go/gmssltest.go new file mode 100644 index 00000000..6a615a80 --- /dev/null +++ b/go/gmssltest.go @@ -0,0 +1,81 @@ +package main + +import ( + "gmssl" + "fmt" +) + +func main() { + + versions := gmssl.GetVersion() + for _, version := range versions { + fmt.Println(version) + } + + digests := gmssl.GetDigests(false) + for _, digest := range digests { + fmt.Println(digest) + } + + ciphers := gmssl.GetCiphers(false) + for _, cipher := range ciphers { + fmt.Println(cipher) + } + + macs := gmssl.GetMacs(false) + for _, mac := range macs { + fmt.Println(mac) + } + + sm3, err := gmssl.NewDigestContext("SM3", nil) + if err != nil { + } + + if err := sm3.Update([]byte("hello")); err != nil { + } + + if err := sm3.Update([]byte("world")); err != nil { + } + + sm3digest, err := sm3.Final() + if err != nil { + } + fmt.Printf("%x", sm3digest) + + + hmac_sm3, err := gmssl.NewMACContext("HMAC-SM3", nil, []byte("this is the key")) + if err != nil { + } + + if err := hmac_sm3.Update([]byte("hello")); err != nil { + } + + if err := hmac_sm3.Update([]byte("world")); err != nil { + } + + mactag, err := hmac_sm3.Final() + if err != nil { + } + fmt.Printf("%x", mactag) + + key := []byte("key") + iv := []byte("iv") + sms4, err := gmssl.NewCipherContext("SMS4", nil, key, iv, true) + if err != nil { + } + + ciphertext1, err := sms4.Update([]byte("hello")) + if err != nil { + } + + ciphertext2, err := sms4.Final() + if err != nil { + } + + ciphertext := make([]byte, 0, len(ciphertext1) + len(ciphertext2)) + ciphertext = append(ciphertext, ciphertext1...) + ciphertext = append(ciphertext, ciphertext2...) + fmt.Printf("%x", ciphertext) + +} +