Esempio n. 1
0
Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.

Portions Copyright (c) 2004-2007 Open Source Applications Foundation.
Author: Heikki Toivonen
"""

from M2Crypto import BIO, Err, RSA, m2, util
if util.py27plus:
    from typing import AnyStr, Optional, Callable  # noqa


class EVPError(Exception):
    pass

m2.evp_init(EVPError)


def pbkdf2(password, salt, iter, keylen):
    # type: (bytes, bytes, int, int) -> bytes
    """
    Derive a key from password using PBKDF2 algorithm specified in RFC 2898.

    @param password: Derive the key from this password.
    @param salt:     Salt.
    @param iter:     Number of iterations to perform.
    @param keylen:   Length of key to produce.
    @return:         Key.
    """
    return m2.pkcs5_pbkdf2_hmac_sha1(password, salt, iter, keylen)
Esempio n. 2
0
"""M2Crypto wrapper for OpenSSL EVP API.

Copyright (c) 1999-2004 Ng Pheng Siong. All rights reserved.

Portions Copyright (c) 2004-2007 Open Source Applications Foundation.
Author: Heikki Toivonen
"""

from M2Crypto import BIO, Err, RSA, m2, util


class EVPError(Exception):
    pass

m2.evp_init(EVPError)


def pbkdf2(password, salt, iter, keylen):
    """
    Derive a key from password using PBKDF2 algorithm specified in RFC 2898.

    @param password: Derive the key from this password.
    @type password:  str
    @param salt:     Salt.
    @type salt:      str
    @param iter:     Number of iterations to perform.
    @type iter:      int
    @param keylen:   Length of key to produce.
    @type keylen:    int
    @return:         Key.