diff options
Diffstat (limited to 'SWIG/_evp.i')
-rw-r--r-- | SWIG/_evp.i | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/SWIG/_evp.i b/SWIG/_evp.i index c4a0d8a..758f11b 100644 --- a/SWIG/_evp.i +++ b/SWIG/_evp.i @@ -234,22 +234,20 @@ PyObject *pkcs5_pbkdf2_hmac_sha1(PyObject *pass, int iter, int keylen) { unsigned char *key; - unsigned char *saltbuf; - char *passbuf; + const void *saltbuf; + const void *passbuf; PyObject *ret; int passlen = 0, saltlen = 0; - if (m2_PyObject_AsReadBufferInt(pass, (const void **)&passbuf, - &passlen) == -1) + if (m2_PyObject_AsReadBufferInt(pass, &passbuf, &passlen) == -1) return NULL; - if (m2_PyObject_AsReadBufferInt(salt, (const void **)&saltbuf, - &saltlen) == -1) + if (m2_PyObject_AsReadBufferInt(salt, &saltbuf, &saltlen) == -1) return NULL; key = PyMem_Malloc(keylen); if (key == NULL) return PyErr_NoMemory(); - PKCS5_PBKDF2_HMAC_SHA1(passbuf, passlen, saltbuf, saltlen, iter, + PKCS5_PBKDF2_HMAC_SHA1((const char *)passbuf, passlen, (const unsigned char *)saltbuf, saltlen, iter, keylen, key); ret = PyBytes_FromStringAndSize((char*)key, keylen); OPENSSL_cleanse(key, keylen); @@ -275,10 +273,10 @@ int digest_update(EVP_MD_CTX *ctx, PyObject *blob) { const void *buf; Py_ssize_t len; - if (PyObject_AsReadBuffer(blob, &buf, &len) == -1) + if (m2_PyObject_AsReadBuffer(blob, &buf, &len) == -1) return -1; - return EVP_DigestUpdate(ctx, buf, len); + return EVP_DigestUpdate(ctx, buf, (size_t)len); } PyObject *digest_final(EVP_MD_CTX *ctx) { @@ -334,10 +332,10 @@ PyObject *hmac_update(HMAC_CTX *ctx, PyObject *blob) { const void *buf; Py_ssize_t len; - if (PyObject_AsReadBuffer(blob, &buf, &len) == -1) + if (m2_PyObject_AsReadBuffer(blob, &buf, &len) == -1) return NULL; - if (!HMAC_Update(ctx, buf, len)) { + if (!HMAC_Update(ctx, (const unsigned char *)buf, (size_t)len)) { PyErr_SetString(_evp_err, "HMAC_Update failed"); return NULL; } @@ -374,14 +372,14 @@ PyObject *hmac(PyObject *key, PyObject *data, const EVP_MD *md) { PyObject *ret; if ((m2_PyObject_AsReadBufferInt(key, &kbuf, &klen) == -1) - || (PyObject_AsReadBuffer(data, &dbuf, &dlen) == -1)) + || (m2_PyObject_AsReadBuffer(data, &dbuf, &dlen) == -1)) return NULL; if (!(blob = PyMem_Malloc(EVP_MAX_MD_SIZE))) { PyErr_SetString(PyExc_MemoryError, "hmac"); return NULL; } - HMAC(md, kbuf, klen, dbuf, dlen, blob, &blen); + HMAC(md, kbuf, klen, (const unsigned char *)dbuf, (size_t)dlen, (unsigned char *)blob, &blen); blob = PyMem_Realloc(blob, blen); ret = PyBytes_FromStringAndSize(blob, blen); @@ -416,7 +414,7 @@ PyObject *bytes_to_key(const EVP_CIPHER *cipher, EVP_MD *md, PyObject *ret; if ((m2_PyObject_AsReadBufferInt(data, &dbuf, &dlen) == -1) - || (PyObject_AsReadBuffer(salt, &sbuf, &slen) == -1)) + || (m2_PyObject_AsReadBuffer(salt, &sbuf, &slen) == -1)) return NULL; assert((slen == 8) || (slen == 0)); @@ -434,17 +432,14 @@ PyObject *cipher_init(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, const void *kbuf, *ibuf; Py_ssize_t klen, ilen; - if (cipher == Py_None) - cipher = NULL; - if (key == Py_None) kbuf = NULL; - else if (PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) + else if (m2_PyObject_AsReadBuffer(key, &kbuf, &klen) == -1) return NULL; if (iv == Py_None) ibuf = NULL; - else if (PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1) + else if (m2_PyObject_AsReadBuffer(iv, &ibuf, &ilen) == -1) return NULL; if (!EVP_CipherInit(ctx, cipher, (unsigned char *)kbuf, @@ -503,12 +498,12 @@ PyObject *cipher_final(EVP_CIPHER_CTX *ctx) { PyObject *sign_update(EVP_MD_CTX *ctx, PyObject *blob) { const void *buf; - Py_ssize_t len; + int len; - if (PyObject_AsReadBuffer(blob, &buf, &len) == -1) + if (m2_PyObject_AsReadBufferInt(blob, &buf, &len) == -1) return NULL; - if (!EVP_SignUpdate(ctx, buf, len)) { + if (!EVP_SignUpdate(ctx, buf, (Py_ssize_t)len)) { m2_PyErr_Msg(_evp_err); return NULL; } @@ -542,22 +537,22 @@ PyObject *sign_final(EVP_MD_CTX *ctx, EVP_PKEY *pkey) { int verify_update(EVP_MD_CTX *ctx, PyObject *blob) { const void *buf; - Py_ssize_t len; + int len; - if (PyObject_AsReadBuffer(blob, &buf, &len) == -1) + if (m2_PyObject_AsReadBufferInt(blob, &buf, &len) == -1) return -1; - return EVP_VerifyUpdate(ctx, buf, len); + return EVP_VerifyUpdate(ctx, buf, (Py_ssize_t)len); } int verify_final(EVP_MD_CTX *ctx, PyObject *blob, EVP_PKEY *pkey) { - unsigned char *kbuf; + const void *kbuf; int len = 0; - if (m2_PyObject_AsReadBufferInt(blob, (const void **)&kbuf, &len) == -1) + if (m2_PyObject_AsReadBufferInt(blob, &kbuf, &len) == -1) return -1; - return EVP_VerifyFinal(ctx, kbuf, len, pkey); + return EVP_VerifyFinal(ctx, (const unsigned char *)kbuf, len, pkey); } int digest_sign_init(EVP_MD_CTX *ctx, EVP_PKEY *pkey) { |