On Fri, Apr 21, 2017 at 3:27 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote: > from passlib.hash import scram > hash = scram.encrypt(data['newPassword']) -- This function provide password for all the supported digest like [md5, sha-1, sha-256, sha-512]. Didn't work I have tried with all the passwords. > test = scram.extract_digest_info(hash, "sha-256") -- This function extract info for specified digest "sha-256". I have retrieve the password which was in hexadecimal. Didn't work as well. > > Now I am stuck here and no clue how to encrypt/decrypt the password for SCRAM authentication. Can someone guide me out here.
I have gone through this, but still facing issue to encrypt/change the database server password. In pgAdmin4 we have "Change Password" feature where user will enter the old and new password for the database server, now we will have to encrypt it (in Python) as per SCRAM standards and set it to the database.
To encode the password you already have entry from pg_authid table which won't be possible for non superuser to access that table. How we can get that value from pg_authid table or do we have any other solution to this.
For constructing the whole client-final-message, we need to calculate ClientSignature and ClientProof, which depend on the nonces, and is therefore different on every authentication exchange. How to calculate ClientSignature and ClientProof?
Can you please guide me here, how can we achieve that in python.