@@ -50,22 +50,21 @@ func TestAes256(t *testing.T) {
5050func TestEncryptOpts (t * testing.T ) {
5151 dir := t .TempDir ()
5252 path := filepath .Join (dir , "test" )
53- keyFile := filepath .Join (dir , "key" )
54- require .NoError (t , os .WriteFile (keyFile , genAesKey (), 0600 ))
53+ aesKey := genAesKey ()
5554
5655 tests := []struct {
57- method string
58- keyFile string
56+ method string
57+ key [] byte
5958 }{
60- {EncryptPlain , "" },
61- {"" , "" },
62- {EncryptAes , keyFile },
59+ {EncryptPlain , nil },
60+ {"" , nil },
61+ {EncryptAes , aesKey },
6362 }
6463 for i , test := range tests {
6564 // write
6665 file , err := os .OpenFile (path , os .O_CREATE | os .O_TRUNC | os .O_WRONLY , 0600 )
6766 require .NoError (t , err )
68- writer , err := newWriterWithEncryptOpts (file , test .method , test .keyFile )
67+ writer , err := newWriterWithEncryptOpts (file , test .method , test .key )
6968 require .NoError (t , err , "case %d" , i )
7069 n , err := writer .Write ([]byte ("test" ))
7170 require .NoError (t , err )
@@ -75,7 +74,7 @@ func TestEncryptOpts(t *testing.T) {
7574 // read
7675 file , err = os .OpenFile (path , os .O_RDONLY , 0600 )
7776 require .NoError (t , err )
78- reader , err := newReaderWithEncryptOpts (file , test .method , test .keyFile )
77+ reader , err := newReaderWithEncryptOpts (file , test .method , test .key )
7978 require .NoError (t , err )
8079 data := make ([]byte , 100 )
8180 n , err = io .ReadFull (reader , data )
@@ -85,32 +84,40 @@ func TestEncryptOpts(t *testing.T) {
8584 }
8685}
8786
88- func TestAes256Error (t * testing.T ) {
87+ func TestLoadKey (t * testing.T ) {
8988 dir := t .TempDir ()
90- path := filepath .Join (dir , "test" )
91- file , err := os .OpenFile (path , os .O_CREATE | os .O_TRUNC | os .O_WRONLY , 0600 )
92- require .NoError (t , err )
93- defer file .Close ()
89+ key := genAesKey ()
90+
9491 keyFile := filepath .Join (dir , "key" )
95- require .NoError (t , os .WriteFile (keyFile , genAesKey () , 0600 ))
92+ require .NoError (t , os .WriteFile (keyFile , key , 0600 ))
9693 invalidKeyFile := filepath .Join (dir , "invalid" )
9794 require .NoError (t , os .WriteFile (invalidKeyFile , []byte ("invalid" ), 0600 ))
9895 noKeyFile := filepath .Join (dir , "nonexist" )
96+ longKeyFile := filepath .Join (dir , "valid" )
97+ longKey := make ([]byte , 33 )
98+ copy (longKey , key )
99+ longKey [32 ] = '\n'
100+ require .NoError (t , os .WriteFile (longKeyFile , longKey , 0600 ))
99101
100102 tests := []struct {
101103 method string
102104 keyFile string
105+ err bool
103106 }{
104- {"unknown" , keyFile },
105- {EncryptAes , "" },
106- {EncryptAes , noKeyFile },
107- {EncryptAes , invalidKeyFile },
107+ {"unknown" , keyFile , true },
108+ {EncryptAes , "" , true },
109+ {EncryptAes , noKeyFile , true },
110+ {EncryptAes , invalidKeyFile , true },
111+ {EncryptAes , keyFile , false },
112+ {EncryptAes , longKeyFile , false },
108113 }
109114 for i , test := range tests {
110- _ , err = newWriterWithEncryptOpts (file , test .method , test .keyFile )
111- require .Error (t , err , "case %d" , i )
112- _ , err = newReaderWithEncryptOpts (file , test .method , test .keyFile )
113- require .Error (t , err , "case %d" , i )
115+ actual , err := LoadEncryptionKey (test .method , test .keyFile )
116+ if test .err {
117+ require .Error (t , err , "case %d" , i )
118+ } else {
119+ require .Equal (t , key , actual , "case %d" , i )
120+ }
114121 }
115122}
116123
0 commit comments