forked from GmSSL/GmSSL-Go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
zuc_test.go
36 lines (29 loc) · 822 Bytes
/
zuc_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*
* Copyright 2014-2023 The GmSSL Project. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
package gmssl3
import (
"bytes"
"testing"
)
func TestZuc(t *testing.T) {
key, _ := RandBytes(ZucKeySize)
iv, _ := RandBytes(ZucIvSize)
plaintext, _ := RandBytes(20)
zuc, _ := NewZuc(key, iv)
ciphertext, _ := zuc.Update(plaintext)
ciphertext_last, _ := zuc.Finish()
ciphertext = append(ciphertext, ciphertext_last...)
zuc, _ = NewZuc(key, iv)
decrypted, _ := zuc.Update(ciphertext)
decrypted_last, _ := zuc.Finish()
decrypted = append(decrypted, decrypted_last...)
if bytes.Equal(decrypted, plaintext) != true {
t.Error("Test failure")
}
}