diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2018-11-13 07:46:57 -0500 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2018-11-13 07:46:57 -0500 |
commit | 0dc5e3cce5deeb05c507643dc6c36845a085684f (patch) | |
tree | a48967663e36396fb043b4a821d99380eb45fa37 /src | |
parent | b5d07b7f723ca101bbe4b78584df367c014eed96 (diff) | |
download | cryptography-0dc5e3cce5deeb05c507643dc6c36845a085684f.tar.gz cryptography-0dc5e3cce5deeb05c507643dc6c36845a085684f.tar.bz2 cryptography-0dc5e3cce5deeb05c507643dc6c36845a085684f.zip |
refactor x25519 keygen into evp_pkey_keygen (#4587)
this allows us to use the same code for ed25519, x448, and ed448
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/backend.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index 19734a54..d00f6133 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -2060,14 +2060,10 @@ class Backend(object): ) return _X25519PrivateKey(self, evp_pkey) - def x25519_generate_key(self): - evp_pkey_ctx = self._lib.EVP_PKEY_CTX_new_id( - self._lib.NID_X25519, self._ffi.NULL - ) + def _evp_pkey_keygen_gc(self, nid): + evp_pkey_ctx = self._lib.EVP_PKEY_CTX_new_id(nid, self._ffi.NULL) self.openssl_assert(evp_pkey_ctx != self._ffi.NULL) - evp_pkey_ctx = self._ffi.gc( - evp_pkey_ctx, self._lib.EVP_PKEY_CTX_free - ) + evp_pkey_ctx = self._ffi.gc(evp_pkey_ctx, self._lib.EVP_PKEY_CTX_free) res = self._lib.EVP_PKEY_keygen_init(evp_pkey_ctx) self.openssl_assert(res == 1) evp_ppkey = self._ffi.new("EVP_PKEY **") @@ -2075,6 +2071,10 @@ class Backend(object): self.openssl_assert(res == 1) self.openssl_assert(evp_ppkey[0] != self._ffi.NULL) evp_pkey = self._ffi.gc(evp_ppkey[0], self._lib.EVP_PKEY_free) + return evp_pkey + + def x25519_generate_key(self): + evp_pkey = self._evp_pkey_keygen_gc(self._lib.NID_X25519) return _X25519PrivateKey(self, evp_pkey) def x25519_supported(self): |