Skip to content

Commit 0dc5e3c

Browse files
reaperhulkalex
authored andcommitted
refactor x25519 keygen into evp_pkey_keygen (#4587)
this allows us to use the same code for ed25519, x448, and ed448
1 parent b5d07b7 commit 0dc5e3c

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

  • src/cryptography/hazmat/backends/openssl

src/cryptography/hazmat/backends/openssl/backend.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2060,21 +2060,21 @@ def x25519_load_private_bytes(self, data):
20602060
)
20612061
return _X25519PrivateKey(self, evp_pkey)
20622062

2063-
def x25519_generate_key(self):
2064-
evp_pkey_ctx = self._lib.EVP_PKEY_CTX_new_id(
2065-
self._lib.NID_X25519, self._ffi.NULL
2066-
)
2063+
def _evp_pkey_keygen_gc(self, nid):
2064+
evp_pkey_ctx = self._lib.EVP_PKEY_CTX_new_id(nid, self._ffi.NULL)
20672065
self.openssl_assert(evp_pkey_ctx != self._ffi.NULL)
2068-
evp_pkey_ctx = self._ffi.gc(
2069-
evp_pkey_ctx, self._lib.EVP_PKEY_CTX_free
2070-
)
2066+
evp_pkey_ctx = self._ffi.gc(evp_pkey_ctx, self._lib.EVP_PKEY_CTX_free)
20712067
res = self._lib.EVP_PKEY_keygen_init(evp_pkey_ctx)
20722068
self.openssl_assert(res == 1)
20732069
evp_ppkey = self._ffi.new("EVP_PKEY **")
20742070
res = self._lib.EVP_PKEY_keygen(evp_pkey_ctx, evp_ppkey)
20752071
self.openssl_assert(res == 1)
20762072
self.openssl_assert(evp_ppkey[0] != self._ffi.NULL)
20772073
evp_pkey = self._ffi.gc(evp_ppkey[0], self._lib.EVP_PKEY_free)
2074+
return evp_pkey
2075+
2076+
def x25519_generate_key(self):
2077+
evp_pkey = self._evp_pkey_keygen_gc(self._lib.NID_X25519)
20782078
return _X25519PrivateKey(self, evp_pkey)
20792079

20802080
def x25519_supported(self):

0 commit comments

Comments
 (0)