adding cryptography implementation