In [3]:
from pw_pkcrypto import encrypt, decrypt, derive_public_key, derive_secret_key
import os
pws = ['password01', 'password02', 'password03']
salts = [os.urandom(16) for _ in pws]
pk_dict = {i: derive_public_key(pw, sa)[1] for i, (pw, sa) in enumerate(zip(pws, salts))}
sk_dict = {i: derive_secret_key(pw, sa)[1] for i, (pw, sa) in enumerate(zip(pws, salts))}
msg = 'The secret message!'
c = encrypt(pk_dict, msg)
m1 = decrypt(dict([sk_dict.popitem()]), c)
m2 = decrypt(dict([sk_dict.popitem()]), c)
assert m1==m2
print m1