Browse Source

securejson: decrypt should not modify src

When decrypting a source securejson byte array, should not
modify the source and now passes back a new dest byte array.
Daniel Lee 8 years ago
parent
commit
b1506a2b09
1 changed files with 3 additions and 2 deletions
  1. 3 2
      pkg/util/encryption.go

+ 3 - 2
pkg/util/encryption.go

@@ -27,12 +27,13 @@ func Decrypt(payload []byte, secret string) ([]byte, error) {
 	}
 	}
 	iv := payload[saltLength : saltLength+aes.BlockSize]
 	iv := payload[saltLength : saltLength+aes.BlockSize]
 	payload = payload[saltLength+aes.BlockSize:]
 	payload = payload[saltLength+aes.BlockSize:]
+	payloadDst := make([]byte, len(payload))
 
 
 	stream := cipher.NewCFBDecrypter(block, iv)
 	stream := cipher.NewCFBDecrypter(block, iv)
 
 
 	// XORKeyStream can work in-place if the two arguments are the same.
 	// XORKeyStream can work in-place if the two arguments are the same.
-	stream.XORKeyStream(payload, payload)
-	return payload, nil
+	stream.XORKeyStream(payloadDst, payload)
+	return payloadDst, nil
 }
 }
 
 
 func Encrypt(payload []byte, secret string) ([]byte, error) {
 func Encrypt(payload []byte, secret string) ([]byte, error) {