summaryrefslogtreecommitdiff
path: root/libpiano/src
diff options
context:
space:
mode:
Diffstat (limited to 'libpiano/src')
-rw-r--r--libpiano/src/crypt.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libpiano/src/crypt.c b/libpiano/src/crypt.c
index d898205..67e2467 100644
--- a/libpiano/src/crypt.c
+++ b/libpiano/src/crypt.c
@@ -43,9 +43,9 @@ THE SOFTWARE.
#define INITIAL_SHIFT 28
#define SHIFT_DEC 4
unsigned char *PianoDecryptString (const unsigned char *strInput) {
- /* hex-decode => strlen/2 */
- unsigned char *strDecrypted = calloc (strlen ((char *) strInput)/2+1, sizeof (*strDecrypted));
- uint32_t *iDecrypt = (uint32_t *) strDecrypted;
+ /* hex-decode => strlen/2 + null-byte */
+ uint32_t *iDecrypt = calloc (strlen ((char *) strInput)/2/sizeof (*iDecrypt)+1, sizeof (*iDecrypt));
+ unsigned char *strDecrypted = (unsigned char *) iDecrypt;
unsigned char shift = INITIAL_SHIFT;
unsigned char intsDecoded = 0;
unsigned char j;
@@ -112,15 +112,17 @@ unsigned char *PianoDecryptString (const unsigned char *strInput) {
* @return encrypted, hex-encoded string
*/
unsigned char *PianoEncryptString (const unsigned char *strInput) {
- size_t strInputN = strlen ((char *) strInput);
+ const size_t strInputN = strlen ((char *) strInput);
/* num of 64-bit blocks, rounded to next block */
size_t blockN = strInputN / 8 + 1;
- uint32_t *blockInput = calloc (blockN*2, sizeof (*blockInput)), *blockPtr = blockInput;
+ uint32_t *blockInput = calloc (blockN*2, sizeof (*blockInput));
+ uint32_t *blockPtr = blockInput;
/* encryption blocks */
uint32_t f, lrExchange;
register uint32_t l, r;
/* output string */
- unsigned char *strHex = calloc (blockN*8*2 + 1, sizeof (*strHex)), *hexPtr = strHex;
+ unsigned char *strHex = calloc (blockN*8*2 + 1, sizeof (*strHex));
+ unsigned char *hexPtr = strHex;
const char *hexmap = "0123456789abcdef";
size_t i;