Implementation for sym & asym encryption algorithms + tests