Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 994143d

Browse files
The public encrypt-decrypt API are made boolean
1 parent 7cebd0b commit 994143d

File tree

3 files changed

+81
-12
lines changed

3 files changed

+81
-12
lines changed

‎App.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package main
2+
3+
import (
4+
"fes/fesserver"
5+
"fmt"
6+
)
7+
8+
func main() {
9+
fmt.Println("App starts from here...")
10+
11+
fesserver.Start()
12+
}

‎S_DES/DESEncryptor.go

Lines changed: 63 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ func (encryptor *DesEncryptor) writeEncryptionBufferToFile(encryptionBuffer *[][
8080
if os.IsNotExist(err) {
8181
_, ferr := os.Create(filename)
8282
if ferr != nil {
83-
log.Fatalln("Problem encrypting file", ferr)
83+
log.Println("Problem encrypting file", ferr, "File not found in the system")
84+
return
8485
}
8586
}
8687
// write byte array to buffer
@@ -122,15 +123,16 @@ func (encryptor *DesEncryptor) runEncryption(filename string) {
122123

123124
file, err := os.Open(filename)
124125
if err != nil {
125-
log.Fatalln("Problem encrypting file", err)
126+
log.Println("Problem encrypting file", err)
126127
return
127128
}
128129
defer file.Close()
129130

130131
// Create encryption file
131132
_, err = os.Create(encryptor.encryptionFilename)
132133
if err != nil {
133-
log.Fatalln("Problem encrypting file", err)
134+
log.Println("Problem encrypting file", err)
135+
return
134136
}
135137

136138
var buffer []byte
@@ -190,26 +192,58 @@ func (engine *DesEncryptor) runDecryption(filename string) {
190192
}
191193

192194
/**
193-
public File-encryption API
195+
public File-encryption API.
196+
@return: boolean value. True if encryption is successful and encrypted file
197+
is created successfully on the disk. Otherwise false is returned.
194198
*/
195-
func (encryptor *DesEncryptor) EncryptFile(filename string) {
199+
func (encryptor *DesEncryptor) EncryptFile(filename string) bool {
200+
log.Println("file for encryption:", filename)
196201
log.Println("File-Encryption procedure started...")
197202

198203
encryptor.filename = filename
199204
encryptor.encryptionFilename = filename + ".enc"
200-
// encryptor.cipher.Init("des_input.txt")
201205
encryptor.runEncryption(filename)
202206

207+
// Check whether a file of same size is created as the original
208+
// file on the disk.
209+
primaryFileStat, err := os.Stat(filename)
210+
if err != nil {
211+
log.Println("Encryption failure for file:", filename)
212+
return false
213+
}
214+
primaryFileSize := primaryFileStat.Size()
215+
216+
encryptedFileStat, err := os.Stat(encryptor.encryptionFilename)
217+
if err != nil {
218+
log.Println("Encryption failure for file:", encryptor.encryptionFilename)
219+
return false
220+
}
221+
encryptedFileSize := encryptedFileStat.Size()
222+
if encryptedFileSize != primaryFileSize {
223+
log.Println("Encryption Failure. Try again...")
224+
return false
225+
}
226+
227+
// File encryption is successful. Delete the primary file from disk.
228+
err = os.Remove(filename)
229+
if err != nil {
230+
log.Println("Encryption failure for file:", encryptor.encryptionFilename, err)
231+
return false
232+
}
233+
203234
log.Println("File-Encryption procedure complete...")
235+
return true
204236
}
205237

206238
/**
207-
Public Decryption API
239+
Public Decryption API.
240+
@return: boolean value. True if decryption is successful and decrypted file
241+
is created successfully on the disk. Otherwise false is returned.
208242
*/
209-
func (engine *DesEncryptor) DecryptFile(filename string) {
243+
func (engine *DesEncryptor) DecryptFile(filename string) bool{
210244
log.Println("Decryption procedure started...")
211245

212-
engine.decryptionFilename = "dec."+filename
246+
engine.decryptionFilename = filename
213247
engine.encryptionFilename = filename + ".enc"
214248
var err error
215249
engine.decryptionFileConnector, err = os.Create(engine.decryptionFilename)
@@ -224,7 +258,27 @@ func (engine *DesEncryptor) DecryptFile(filename string) {
224258
engine.runDecryption(filename)
225259
engine.decryptionFileConnector.Close()
226260

261+
// Delete the encrypted file and keep the decrypted(which is the primary file) file
262+
encryptedFileStat, err := os.Stat(engine.encryptionFilename)
263+
if err != nil {
264+
log.Println("decryption failure for file:", engine.decryptionFilename)
265+
return false
266+
}
267+
encryptedFileSize := encryptedFileStat.Size()
268+
269+
decryptedFileStat, err := os.Stat(engine.decryptionFilename)
270+
if err != nil {
271+
log.Println("decryption failure for file:", engine.decryptionFilename)
272+
return false
273+
}
274+
decryptedFileSize := decryptedFileStat.Size()
275+
if encryptedFileSize != decryptedFileSize {
276+
log.Println("Decryption failed! Try again")
277+
return false
278+
}
279+
227280
log.Println("Decryption procedure complete...")
281+
return true
228282
}
229283

230284
func (engine *DesEncryptor) Init(filename string) {

‎fesserver/server.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,12 @@ func encryptFile(w http.ResponseWriter, r *http.Request) {
4848
log.Println("No parameter 'filename' in the URL")
4949
}
5050
// var fesengine S_DES.DesEncryptor
51-
prop.Fesengine.EncryptFile(filename[0])
52-
response.Result = true
53-
response.Message = "file encrypted successfully"
51+
response.Result = prop.Fesengine.EncryptFile(filename[0])
52+
if response.Result {
53+
response.Message = "File encrypted successfully"
54+
} else {
55+
response.Message = "File encryption failed!"
56+
}
5457
// response.SetToSimpleJSON()
5558
WriteToResponseStream(w, response.SetToSimpleJSON(), "application/json")
5659
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /