(password, salt=None, i=10000, keylen=64)
| 58 | |
| 59 | |
| 60 | def pbkdf2(password, salt=None, i=10000, keylen=64): |
| 61 | if salt is None: |
| 62 | salt = OpenSSL.rand(8) |
| 63 | p_password = OpenSSL.malloc(password, len(password)) |
| 64 | p_salt = OpenSSL.malloc(salt, len(salt)) |
| 65 | output = OpenSSL.malloc(0, keylen) |
| 66 | OpenSSL.PKCS5_PBKDF2_HMAC(p_password, len(password), p_salt, |
| 67 | len(p_salt), i, OpenSSL.EVP_sha256(), |
| 68 | keylen, output) |
| 69 | return salt, output.raw |