version 2.5: encrpt testcases passed, still needs work on decrypt function.