Skip to content

Commit

Permalink
change approach to EVP_PKEY_size and add changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
reaperhulk committed Jul 20, 2017
1 parent 36f8d81 commit 0be1eee
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 7 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.rst
Expand Up @@ -27,6 +27,8 @@ Changes:

- Fixed a bug causing ``Context.set_default_verify_paths()`` to not work with cryptography ``manylinux1`` wheels on Python 3.x.
`#665 <https://github.com/pyca/pyopenssl/pull/665>`_
- Fixed a crash with (EC)DSA signatures in some cases.
`#670 <https://github.com/pyca/pyopenssl/pull/670>`_


----
Expand Down
10 changes: 3 additions & 7 deletions src/OpenSSL/crypto.py
Expand Up @@ -2801,13 +2801,9 @@ def sign(pkey, data, digest):
_lib.EVP_SignInit(md_ctx, digest_obj)
_lib.EVP_SignUpdate(md_ctx, data, len(data))

# obtain the length of the signature.
signature_length = _ffi.new("unsigned int[]", 1)
len_result = _lib.EVP_SignFinal(
md_ctx, _ffi.NULL, signature_length, pkey._pkey)
_openssl_assert(len_result == 1)

signature_buffer = _ffi.new("unsigned char[]", signature_length[0])
length = _lib.EVP_PKEY_size(pkey._pkey)
signature_buffer = _ffi.new("unsigned char[]", length)
signature_length = _ffi.new("unsigned int *")
final_result = _lib.EVP_SignFinal(
md_ctx, signature_buffer, signature_length, pkey._pkey)
_openssl_assert(final_result == 1)
Expand Down

0 comments on commit 0be1eee

Please sign in to comment.