Changed buffer allocation and status codes

- Only functions meant strictly for en/decrypting dynamically allocate buffers for simplicity
- Signing and verification functions do not apply to the above
- Return codes changed to improve readability