17 items
NAME ↑ SIZE MODIFIED PERMS ACTIONS
.. / Parent Directory
__pycache__ — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
asymmetric — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
ciphers — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
kdf — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
serialization — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
twofactor — dir
2026-06-04 04:18 · rwxr-xr-x
2026-06-04 04:18 rwxr-xr-x
__init__.py — 180 B
2021-12-14 21:49 · rw-r--r--
180 B 2021-12-14 21:49 rw-r--r--
_asymmetric.py — 485 B
2021-12-14 21:49 · rw-r--r--
485 B 2021-12-14 21:49 rw-r--r--
_cipheralgorithm.py — 1000 B
2021-12-14 21:49 · rw-r--r--
1000 B 2021-12-14 21:49 rw-r--r--
_serialization.py — 1.31 KB
2021-12-14 21:49 · rw-r--r--
1.31 KB 2021-12-14 21:49 rw-r--r--
cmac.py — 1.78 KB
2021-12-14 21:49 · rw-r--r--
1.78 KB 2021-12-14 21:49 rw-r--r--
constant_time.py — 387 B
2021-12-14 21:49 · rw-r--r--
387 B 2021-12-14 21:49 rw-r--r--
hashes.py — 5.82 KB
2021-12-14 21:49 · rw-r--r--
5.82 KB 2021-12-14 21:49 rw-r--r--
hmac.py — 1.98 KB
2021-12-14 21:49 · rw-r--r--
1.98 KB 2021-12-14 21:49 rw-r--r--
keywrap.py — 5.61 KB
2021-12-14 21:49 · rw-r--r--
5.61 KB 2021-12-14 21:49 rw-r--r--
padding.py — 6.04 KB
2021-12-14 21:49 · rw-r--r--
6.04 KB 2021-12-14 21:49 rw-r--r--
poly1305.py — 1.67 KB
2021-12-14 21:49 · rw-r--r--
1.67 KB 2021-12-14 21:49 rw-r--r--
ONLINE
primitives
17 items
02:06:52
TERMINAL FM
Edit
Preview
Download
Rename
Copy
Chmod
Delete
# 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. import typing from cryptography import utils from cryptography.exceptions import ( AlreadyFinalized, ) from cryptography.hazmat.primitives import hashes class HMAC(hashes.HashContext): def __init__( self, key: bytes, algorithm: hashes.HashAlgorithm, backend: typing.Any = None, ctx=None, ): if not isinstance(algorithm, hashes.HashAlgorithm): raise TypeError("Expected instance of hashes.HashAlgorithm.") self._algorithm = algorithm self._key = key if ctx is None: from cryptography.hazmat.backends.openssl.backend import ( backend as ossl, ) self._ctx = ossl.create_hmac_ctx(key, self.algorithm) else: self._ctx = ctx @property def algorithm(self) -> hashes.HashAlgorithm: return self._algorithm def update(self, data: bytes) -> None: if self._ctx is None: raise AlreadyFinalized("Context was already finalized.") utils._check_byteslike("data", data) self._ctx.update(data) def copy(self) -> "HMAC": if self._ctx is None: raise AlreadyFinalized("Context was already finalized.") return HMAC( self._key, self.algorithm, ctx=self._ctx.copy(), ) def finalize(self) -> bytes: if self._ctx is None: raise AlreadyFinalized("Context was already finalized.") digest = self._ctx.finalize() self._ctx = None return digest def verify(self, signature: bytes) -> None: utils._check_bytes("signature", signature) if self._ctx is None: raise AlreadyFinalized("Context was already finalized.") ctx, self._ctx = self._ctx, None ctx.verify(signature)