MCPcopy Create free account
hub / github.com/GmSSL/GmSSL-Go / main

Function main

examples/examples.go:7–212  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5)
6
7func main() {
8 fmt.Printf("GmSSL-Go Version: %s\n", gmssl.GmSSLGoVersion)
9 fmt.Printf("GmSSL Library Version: %s\n", gmssl.GetGmSSLLibraryVersion())
10
11 key, _ := gmssl.RandBytes(16)
12 fmt.Printf("RandBytes(32) : %x\n", key)
13
14 fmt.Printf("Sm3DigestSize : %d\n", gmssl.Sm3DigestSize)
15
16 sm3 := gmssl.NewSm3()
17 sm3.Update([]byte("abc"))
18 dgst := sm3.Digest()
19 fmt.Printf("Sm3('abc') : %x\n", dgst)
20
21 fmt.Printf("Sm3HmacMinKeySize = %d\n", gmssl.Sm3HmacMinKeySize)
22 fmt.Printf("Sm3HmacMaxKeySize = %d\n", gmssl.Sm3HmacMaxKeySize)
23 fmt.Printf("Sm3HmacSize = %d\n", gmssl.Sm3HmacSize)
24
25 hmac, _ := gmssl.NewSm3Hmac(key)
26 hmac.Update([]byte("abc"))
27 mac := hmac.GenerateMac()
28 fmt.Printf("Sm3Hmac('abc') : %x\n", mac)
29
30 fmt.Printf("Sm3Pbkdf2MinIter = %d\n", gmssl.Sm3Pbkdf2MinIter)
31 fmt.Printf("Sm3Pbkdf2MaxIter = %d\n", gmssl.Sm3Pbkdf2MaxIter)
32 fmt.Printf("Sm3Pbkdf2MaxSaltSize = %d\n", gmssl.Sm3Pbkdf2MaxSaltSize)
33 fmt.Printf("Sm3Pbkdf2DefaultSaltSize = %d\n", gmssl.Sm3Pbkdf2DefaultSaltSize)
34 fmt.Printf("Sm3Pbkdf2MaxKeySize = %d\n", gmssl.Sm3Pbkdf2MaxKeySize)
35
36 salt, _ := gmssl.RandBytes(gmssl.Sm3Pbkdf2DefaultSaltSize)
37 kdf_key, _ := gmssl.Sm3Pbkdf2("Password", salt, gmssl.Sm3Pbkdf2MinIter, gmssl.Sm3HmacMinKeySize)
38 fmt.Printf("Sm3Pbkdf2('Password') : %x\n", kdf_key)
39
40 fmt.Printf("Sm4KeySize = %d\n", gmssl.Sm4KeySize)
41 fmt.Printf("Sm4BlockSize = %d\n", gmssl.Sm4BlockSize)
42
43 block, _ := gmssl.RandBytes(gmssl.Sm4BlockSize)
44 sm4_enc, _ := gmssl.NewSm4(key, true)
45 cblock, _ := sm4_enc.Encrypt(block)
46 fmt.Printf("SM4 Plaintext : %x\n", block)
47 fmt.Printf("SM4 Ciphertext: %x\n", cblock)
48
49 sm4_dec, _ := gmssl.NewSm4(key, false)
50 dblock, _ := sm4_dec.Encrypt(cblock)
51 fmt.Printf("SM4 Decrypted : %x\n", dblock)
52
53 fmt.Printf("Sm4CbcIvSize = %d\n", gmssl.Sm4CbcIvSize)
54 iv, _ := gmssl.RandBytes(gmssl.Sm4CbcIvSize)
55
56 sm4_cbc_enc, _ := gmssl.NewSm4Cbc(key, iv, true)
57 cbc_ciphertext, _ := sm4_cbc_enc.Update([]byte("abc"))
58 cbc_ciphertext_last, _ := sm4_cbc_enc.Finish()
59 cbc_ciphertext = append(cbc_ciphertext, cbc_ciphertext_last...)
60 fmt.Printf("ciphertext = %x\n", cbc_ciphertext)
61 sm4_cbc_dec, _ := gmssl.NewSm4Cbc(key, iv, false)
62 cbc_plaintext, _ := sm4_cbc_dec.Update(cbc_ciphertext)
63 cbc_plaintext_last, _ := sm4_cbc_dec.Finish()
64 cbc_plaintext = append(cbc_plaintext, cbc_plaintext_last...)

Callers

nothing calls this directly

Calls 15

UpdateMethod · 0.95
DigestMethod · 0.95
UpdateMethod · 0.95
GenerateMacMethod · 0.95
EncryptMethod · 0.95
UpdateMethod · 0.95
FinishMethod · 0.95
UpdateMethod · 0.95
FinishMethod · 0.95
UpdateMethod · 0.95
FinishMethod · 0.95
UpdateMethod · 0.95

Tested by

no test coverage detected