Skip to content

Commit a39e4a4

Browse files
committed
win_test.go: finish unit tests about encrypt and decrypt in TestWinRSA.
1 parent bd3ed54 commit a39e4a4

File tree

1 file changed

+61
-14
lines changed

1 file changed

+61
-14
lines changed

wincrypto/win_test.go

Lines changed: 61 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,23 @@ func TestWinAES(t *testing.T) {
4848
}
4949

5050
func TestWinRSA(t *testing.T) {
51-
t.Run("sign", func(t *testing.T) {
52-
key, err := os.ReadFile("testdata/privatekey.sign")
53-
require.NoError(t, err)
54-
55-
privateKey, err := ImportRSAPrivateKeyBlob(key)
56-
require.NoError(t, err)
51+
key, err := os.ReadFile("testdata/privatekey.sign")
52+
require.NoError(t, err)
53+
priKeySign, err := ImportRSAPrivateKeyBlob(key)
54+
require.NoError(t, err)
55+
pubKeySign := &priKeySign.PublicKey
56+
57+
key, err = os.ReadFile("testdata/privatekey.keyx")
58+
require.NoError(t, err)
59+
priKeyKeyx, err := ImportRSAPrivateKeyBlob(key)
60+
require.NoError(t, err)
61+
pubKeyKeyx := &priKeyKeyx.PublicKey
5762

63+
t.Run("sign", func(t *testing.T) {
5864
message := []byte{1, 2, 3, 4}
5965
digest := sha256.Sum256(message)
6066

61-
signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, digest[:])
67+
signature, err := rsa.SignPKCS1v15(rand.Reader, priKeySign, crypto.SHA256, digest[:])
6268
require.NoError(t, err)
6369
signature = reverseBytes(signature)
6470

@@ -67,12 +73,6 @@ func TestWinRSA(t *testing.T) {
6773
})
6874

6975
t.Run("verify", func(t *testing.T) {
70-
key, err := os.ReadFile("testdata/privatekey.sign")
71-
require.NoError(t, err)
72-
73-
privateKey, err := ImportRSAPrivateKeyBlob(key)
74-
require.NoError(t, err)
75-
7676
message := []byte{1, 2, 3, 4}
7777
digest := sha256.Sum256(message)
7878

@@ -112,15 +112,62 @@ func TestWinRSA(t *testing.T) {
112112
}
113113
signature = reverseBytes(signature)
114114

115-
err = rsa.VerifyPKCS1v15(&privateKey.PublicKey, crypto.SHA256, digest[:], signature)
115+
err = rsa.VerifyPKCS1v15(pubKeySign, crypto.SHA256, digest[:], signature)
116116
require.NoError(t, err)
117117
})
118118

119119
t.Run("encrypt", func(t *testing.T) {
120+
message := []byte{1, 2, 3, 4}
121+
122+
cipherData, err := rsa.EncryptPKCS1v15(rand.Reader, pubKeyKeyx, message)
123+
require.NoError(t, err)
124+
cipherData = reverseBytes(cipherData)
120125

126+
// this output will move to the test of Gleam-RT
127+
spew.Dump(cipherData)
121128
})
122129

123130
t.Run("decrypt", func(t *testing.T) {
131+
cipherData := []byte{
132+
0x90, 0x7C, 0x39, 0xA0, 0x21, 0xEB, 0x31, 0x7A,
133+
0x48, 0x0E, 0x83, 0x7F, 0xF3, 0x65, 0x04, 0xD4,
134+
0xD6, 0x8A, 0x63, 0xDC, 0xF4, 0x2B, 0xE2, 0xC4,
135+
0x85, 0xF9, 0x8C, 0x8A, 0xB0, 0x8A, 0xAF, 0xAD,
136+
0xF2, 0xFB, 0xB5, 0xCF, 0x8B, 0x19, 0x5A, 0x3F,
137+
0xA8, 0x18, 0xE8, 0xB2, 0xA5, 0x96, 0x02, 0x2E,
138+
0x60, 0x1D, 0x26, 0x92, 0xF8, 0x41, 0xB2, 0xCF,
139+
0xDC, 0x94, 0x39, 0x22, 0xDE, 0xD2, 0x05, 0x3A,
140+
0x8C, 0xED, 0x40, 0x99, 0x6A, 0x96, 0xEA, 0xB4,
141+
0x3F, 0x5C, 0xFB, 0xB7, 0xBA, 0xE3, 0x94, 0x98,
142+
0xBE, 0xDF, 0xE7, 0xAB, 0x70, 0xEA, 0x5D, 0x4E,
143+
0xC2, 0xC9, 0x62, 0xA9, 0x76, 0xDF, 0xC5, 0x42,
144+
0xB4, 0x7F, 0x7D, 0x34, 0x8E, 0xE9, 0xE3, 0xCD,
145+
0xA5, 0x28, 0x67, 0xD5, 0x9B, 0x0E, 0x1D, 0x8A,
146+
0x92, 0x6C, 0x90, 0x84, 0x51, 0x88, 0x7E, 0xC6,
147+
0xE4, 0xD0, 0xC9, 0x0B, 0xF8, 0x06, 0x47, 0x3D,
148+
0xE1, 0x96, 0x74, 0xA9, 0x40, 0x0D, 0xF8, 0xA6,
149+
0xA7, 0xD0, 0xD1, 0xDF, 0x97, 0x74, 0x3E, 0xB3,
150+
0xF7, 0xC7, 0x20, 0x82, 0x13, 0xCA, 0xE2, 0x81,
151+
0x3F, 0x6F, 0x03, 0x68, 0xDF, 0xAB, 0x29, 0x45,
152+
0xFA, 0xBC, 0xEC, 0x79, 0x66, 0x21, 0xED, 0x2A,
153+
0xA1, 0x64, 0xCC, 0x23, 0x8C, 0xB3, 0xFE, 0x51,
154+
0xCD, 0x65, 0xC6, 0xB6, 0xD1, 0xA9, 0xA6, 0xB8,
155+
0xC4, 0x9E, 0xD9, 0xBE, 0x5E, 0xCC, 0x47, 0x05,
156+
0xEE, 0xEF, 0x9B, 0xB1, 0xB4, 0xC4, 0x07, 0xC3,
157+
0x41, 0xDD, 0xF8, 0x56, 0x64, 0x8E, 0xC8, 0x94,
158+
0xFC, 0x97, 0xB8, 0x3B, 0xC6, 0xDE, 0x3D, 0xA5,
159+
0x99, 0x56, 0xA8, 0x63, 0x10, 0x60, 0x71, 0x44,
160+
0x94, 0xF0, 0x4E, 0xCB, 0x29, 0xDA, 0x67, 0x23,
161+
0x86, 0x52, 0xFF, 0x18, 0x81, 0x8E, 0x0B, 0x1B,
162+
0x45, 0x65, 0x66, 0x2A, 0xBE, 0x33, 0x94, 0x63,
163+
0x43, 0xD8, 0xB2, 0x14, 0xD3, 0xFE, 0x2C, 0x4F,
164+
}
165+
cipherData = reverseBytes(cipherData)
166+
167+
plainData, err := rsa.DecryptPKCS1v15(rand.Reader, priKeyKeyx, cipherData)
168+
require.NoError(t, err)
124169

170+
expected := []byte{1, 2, 3, 4}
171+
require.Equal(t, expected, plainData)
125172
})
126173
}

0 commit comments

Comments
 (0)