8.2.34 | Linux | www-data (uid:33)
👁 View: x448.py
📁 /snap/core22/2437/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/x448.py
# This file is dual licensed under the terms of the Apache License, Version # 2.0, and the BSD License. See the LICENSE file in the root of this repository # for complete details. from cryptography.hazmat.backends.openssl.utils import _evp_pkey_derive from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric.x448 import ( X448PrivateKey, X448PublicKey, ) _X448_KEY_SIZE = 56 class _X448PublicKey(X448PublicKey): def __init__(self, backend, evp_pkey): self._backend = backend self._evp_pkey = evp_pkey def public_bytes( self, encoding: serialization.Encoding, format: serialization.PublicFormat, ) -> bytes: if ( encoding is serialization.Encoding.Raw or format is serialization.PublicFormat.Raw ): if ( encoding is not serialization.Encoding.Raw or format is not serialization.PublicFormat.Raw ): raise ValueError( "When using Raw both encoding and format must be Raw" ) return self._raw_public_bytes() return self._backend._public_key_bytes( encoding, format, self, self._evp_pkey, None ) def _raw_public_bytes(self) -> bytes: buf = self._backend._ffi.new("unsigned char []", _X448_KEY_SIZE) buflen = self._backend._ffi.new("size_t *", _X448_KEY_SIZE) res = self._backend._lib.EVP_PKEY_get_raw_public_key( self._evp_pkey, buf, buflen ) self._backend.openssl_assert(res == 1) self._backend.openssl_assert(buflen[0] == _X448_KEY_SIZE) return self._backend._ffi.buffer(buf, _X448_KEY_SIZE)[:] class _X448PrivateKey(X448PrivateKey): def __init__(self, backend, evp_pkey): self._backend = backend self._evp_pkey = evp_pkey def public_key(self) -> X448PublicKey: buf = self._backend._ffi.new("unsigned char []", _X448_KEY_SIZE) buflen = self._backend._ffi.new("size_t *", _X448_KEY_SIZE) res = self._backend._lib.EVP_PKEY_get_raw_public_key( self._evp_pkey, buf, buflen ) self._backend.openssl_assert(res == 1) self._backend.openssl_assert(buflen[0] == _X448_KEY_SIZE) return self._backend.x448_load_public_bytes(buf) def exchange(self, peer_public_key: X448PublicKey) -> bytes: if not isinstance(peer_public_key, X448PublicKey): raise TypeError("peer_public_key must be X448PublicKey.") return _evp_pkey_derive(self._backend, self._evp_pkey, peer_public_key) def private_bytes( self, encoding: serialization.Encoding, format: serialization.PrivateFormat, encryption_algorithm: serialization.KeySerializationEncryption, ) -> bytes: if ( encoding is serialization.Encoding.Raw or format is serialization.PublicFormat.Raw ): if ( format is not serialization.PrivateFormat.Raw or encoding is not serialization.Encoding.Raw or not isinstance( encryption_algorithm, serialization.NoEncryption ) ): raise ValueError( "When using Raw both encoding and format must be Raw " "and encryption_algorithm must be NoEncryption()" ) return self._raw_private_bytes() return self._backend._private_key_bytes( encoding, format, encryption_algorithm, self, self._evp_pkey, None ) def _raw_private_bytes(self) -> bytes: buf = self._backend._ffi.new("unsigned char []", _X448_KEY_SIZE) buflen = self._backend._ffi.new("size_t *", _X448_KEY_SIZE) res = self._backend._lib.EVP_PKEY_get_raw_private_key( self._evp_pkey, buf, buflen ) self._backend.openssl_assert(res == 1) self._backend.openssl_assert(buflen[0] == _X448_KEY_SIZE) return self._backend._ffi.buffer(buf, _X448_KEY_SIZE)[:]
← Back
💻 Terminal
📤 Upload
📂
Click or Drag & Drop
📁 /snap/core22/2437/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl
NameSizePermModifiedActions
📁 __pycache__/-07552026-04-10 04:19🗑 Delete
__init__.py271B06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
aead.py5.6K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
backend.py103.8K06442026-03-14 12:22👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ciphers.py9K06442026-03-14 12:22👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cmac.py2.8K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
decode_asn1.py31.5K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
dh.py10.9K06442026-03-14 12:22👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
dsa.py10.4K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ec.py14.1K06442026-03-14 12:22👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ed25519.py5.7K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ed448.py5.6K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
encode_asn1.py23.4K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
hashes.py3K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
hmac.py2.9K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ocsp.py14.3K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
poly1305.py2.3K06442026-03-14 12:22👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
rsa.py20.4K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utils.py2.2K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
x25519.py4.5K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
x448.py4K06442021-08-24 17:02👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
x509.py22.3K06442021-08-24 17:17👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del