summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/__about__.py2
-rw-r--r--src/cryptography/hazmat/backends/openssl/decode_asn1.py2
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/ec.py2
-rw-r--r--src/cryptography/x509/extensions.py157
-rw-r--r--src/cryptography/x509/general_name.py21
-rw-r--r--src/cryptography/x509/name.py2
-rw-r--r--src/rust/Cargo.lock74
-rw-r--r--src/rust/src/lib.rs2
8 files changed, 176 insertions, 86 deletions
diff --git a/src/cryptography/__about__.py b/src/cryptography/__about__.py
index 63adf6987..385d21957 100644
--- a/src/cryptography/__about__.py
+++ b/src/cryptography/__about__.py
@@ -21,7 +21,7 @@ __summary__ = (
)
__uri__ = "https://github.com/pyca/cryptography"
-__version__ = "3.4.4"
+__version__ = "3.4.5"
__author__ = "The Python Cryptographic Authority and individual contributors"
__email__ = "cryptography-dev@python.org"
diff --git a/src/cryptography/hazmat/backends/openssl/decode_asn1.py b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
index 96ba4cdbc..167acc078 100644
--- a/src/cryptography/hazmat/backends/openssl/decode_asn1.py
+++ b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
@@ -768,7 +768,7 @@ def _asn1_string_to_ascii(backend, asn1_string):
return _asn1_string_to_bytes(backend, asn1_string).decode("ascii")
-def _asn1_string_to_utf8(backend, asn1_string):
+def _asn1_string_to_utf8(backend, asn1_string) -> str:
buf = backend._ffi.new("unsigned char **")
res = backend._lib.ASN1_STRING_to_UTF8(buf, asn1_string)
if res == -1:
diff --git a/src/cryptography/hazmat/primitives/asymmetric/ec.py b/src/cryptography/hazmat/primitives/asymmetric/ec.py
index 6374305d8..56c5f9a02 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/ec.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/ec.py
@@ -176,7 +176,7 @@ class EllipticCurvePublicKey(metaclass=abc.ABCMeta):
self,
signature: bytes,
data: bytes,
- algorithm: EllipticCurveSignatureAlgorithm,
+ signature_algorithm: EllipticCurveSignatureAlgorithm,
) -> None:
"""
Verifies the signature of the data.
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py
index 9f3d8f62d..6cae016a1 100644
--- a/src/cryptography/x509/extensions.py
+++ b/src/cryptography/x509/extensions.py
@@ -17,6 +17,7 @@ from cryptography.hazmat._der import (
OBJECT_IDENTIFIER,
SEQUENCE,
)
+from cryptography.hazmat._types import _PUBLIC_KEY_TYPES
from cryptography.hazmat.primitives import constant_time, serialization
from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePublicKey
from cryptography.hazmat.primitives.asymmetric.rsa import RSAPublicKey
@@ -33,7 +34,7 @@ from cryptography.x509.oid import (
)
-def _key_identifier_from_public_key(public_key):
+def _key_identifier_from_public_key(public_key: _PUBLIC_KEY_TYPES) -> bytes:
if isinstance(public_key, RSAPublicKey):
data = public_key.public_bytes(
serialization.Encoding.DER,
@@ -54,7 +55,7 @@ def _key_identifier_from_public_key(public_key):
reader = DERReader(serialized)
with reader.read_single_element(SEQUENCE) as public_key_info:
algorithm = public_key_info.read_element(SEQUENCE)
- public_key = public_key_info.read_element(BIT_STRING)
+ public_key_data = public_key_info.read_element(BIT_STRING)
# Double-check the algorithm structure.
with algorithm:
@@ -65,10 +66,10 @@ def _key_identifier_from_public_key(public_key):
# BIT STRING contents begin with the number of padding bytes added. It
# must be zero for SubjectPublicKeyInfo structures.
- if public_key.read_byte() != 0:
+ if public_key_data.read_byte() != 0:
raise ValueError("Invalid public key encoding")
- data = public_key.data
+ data = public_key_data.data
return hashlib.sha1(data).digest()
@@ -110,14 +111,14 @@ class Extensions(object):
def __init__(self, extensions: typing.List["Extension"]):
self._extensions = extensions
- def get_extension_for_oid(self, oid):
+ def get_extension_for_oid(self, oid: ObjectIdentifier) -> "Extension":
for ext in self:
if ext.oid == oid:
return ext
raise ExtensionNotFound("No {} extension was found".format(oid), oid)
- def get_extension_for_class(self, extclass):
+ def get_extension_for_class(self, extclass) -> "Extension":
if extclass is UnrecognizedExtension:
raise TypeError(
"UnrecognizedExtension can't be used with "
@@ -142,7 +143,7 @@ class Extensions(object):
class CRLNumber(ExtensionType):
oid = ExtensionOID.CRL_NUMBER
- def __init__(self, crl_number):
+ def __init__(self, crl_number: int):
if not isinstance(crl_number, int):
raise TypeError("crl_number must be an integer")
@@ -171,9 +172,9 @@ class AuthorityKeyIdentifier(ExtensionType):
def __init__(
self,
- key_identifier,
- authority_cert_issuer,
- authority_cert_serial_number,
+ key_identifier: typing.Optional[bytes],
+ authority_cert_issuer: typing.Optional[typing.Iterable[GeneralName]],
+ authority_cert_serial_number: typing.Optional[int],
):
if (authority_cert_issuer is None) != (
authority_cert_serial_number is None
@@ -203,7 +204,9 @@ class AuthorityKeyIdentifier(ExtensionType):
self._authority_cert_serial_number = authority_cert_serial_number
@classmethod
- def from_issuer_public_key(cls, public_key):
+ def from_issuer_public_key(
+ cls, public_key: _PUBLIC_KEY_TYPES
+ ) -> "AuthorityKeyIdentifier":
digest = _key_identifier_from_public_key(public_key)
return cls(
key_identifier=digest,
@@ -212,7 +215,9 @@ class AuthorityKeyIdentifier(ExtensionType):
)
@classmethod
- def from_issuer_subject_key_identifier(cls, ski):
+ def from_issuer_subject_key_identifier(
+ cls, ski: "SubjectKeyIdentifier"
+ ) -> "AuthorityKeyIdentifier":
return cls(
key_identifier=ski.digest,
authority_cert_issuer=None,
@@ -260,11 +265,13 @@ class AuthorityKeyIdentifier(ExtensionType):
class SubjectKeyIdentifier(ExtensionType):
oid = ExtensionOID.SUBJECT_KEY_IDENTIFIER
- def __init__(self, digest):
+ def __init__(self, digest: bytes):
self._digest = digest
@classmethod
- def from_public_key(cls, public_key):
+ def from_public_key(
+ cls, public_key: _PUBLIC_KEY_TYPES
+ ) -> "SubjectKeyIdentifier":
return cls(_key_identifier_from_public_key(public_key))
digest = utils.read_only_property("_digest")
@@ -288,7 +295,7 @@ class SubjectKeyIdentifier(ExtensionType):
class AuthorityInformationAccess(ExtensionType):
oid = ExtensionOID.AUTHORITY_INFORMATION_ACCESS
- def __init__(self, descriptions):
+ def __init__(self, descriptions: typing.Iterable["AccessDescription"]):
descriptions = list(descriptions)
if not all(isinstance(x, AccessDescription) for x in descriptions):
raise TypeError(
@@ -319,7 +326,7 @@ class AuthorityInformationAccess(ExtensionType):
class SubjectInformationAccess(ExtensionType):
oid = ExtensionOID.SUBJECT_INFORMATION_ACCESS
- def __init__(self, descriptions):
+ def __init__(self, descriptions: typing.Iterable["AccessDescription"]):
descriptions = list(descriptions)
if not all(isinstance(x, AccessDescription) for x in descriptions):
raise TypeError(
@@ -348,7 +355,9 @@ class SubjectInformationAccess(ExtensionType):
class AccessDescription(object):
- def __init__(self, access_method, access_location):
+ def __init__(
+ self, access_method: ObjectIdentifier, access_location: GeneralName
+ ):
if not isinstance(access_method, ObjectIdentifier):
raise TypeError("access_method must be an ObjectIdentifier")
@@ -386,7 +395,7 @@ class AccessDescription(object):
class BasicConstraints(ExtensionType):
oid = ExtensionOID.BASIC_CONSTRAINTS
- def __init__(self, ca, path_length):
+ def __init__(self, ca: bool, path_length: typing.Optional[int]):
if not isinstance(ca, bool):
raise TypeError("ca must be a boolean value")
@@ -427,7 +436,7 @@ class BasicConstraints(ExtensionType):
class DeltaCRLIndicator(ExtensionType):
oid = ExtensionOID.DELTA_CRL_INDICATOR
- def __init__(self, crl_number):
+ def __init__(self, crl_number: int):
if not isinstance(crl_number, int):
raise TypeError("crl_number must be an integer")
@@ -454,7 +463,9 @@ class DeltaCRLIndicator(ExtensionType):
class CRLDistributionPoints(ExtensionType):
oid = ExtensionOID.CRL_DISTRIBUTION_POINTS
- def __init__(self, distribution_points):
+ def __init__(
+ self, distribution_points: typing.Iterable["DistributionPoint"]
+ ):
distribution_points = list(distribution_points)
if not all(
isinstance(x, DistributionPoint) for x in distribution_points
@@ -489,7 +500,9 @@ class CRLDistributionPoints(ExtensionType):
class FreshestCRL(ExtensionType):
oid = ExtensionOID.FRESHEST_CRL
- def __init__(self, distribution_points):
+ def __init__(
+ self, distribution_points: typing.Iterable["DistributionPoint"]
+ ):
distribution_points = list(distribution_points)
if not all(
isinstance(x, DistributionPoint) for x in distribution_points
@@ -522,7 +535,13 @@ class FreshestCRL(ExtensionType):
class DistributionPoint(object):
- def __init__(self, full_name, relative_name, reasons, crl_issuer):
+ def __init__(
+ self,
+ full_name: typing.Optional[typing.Iterable[GeneralName]],
+ relative_name: typing.Optional[RelativeDistinguishedName],
+ reasons: typing.Optional[typing.FrozenSet["ReasonFlags"]],
+ crl_issuer: typing.Optional[typing.Iterable[GeneralName]],
+ ):
if full_name and relative_name:
raise ValueError(
"You cannot provide both full_name and relative_name, at "
@@ -631,7 +650,11 @@ class ReasonFlags(Enum):
class PolicyConstraints(ExtensionType):
oid = ExtensionOID.POLICY_CONSTRAINTS
- def __init__(self, require_explicit_policy, inhibit_policy_mapping):
+ def __init__(
+ self,
+ require_explicit_policy: typing.Optional[int],
+ inhibit_policy_mapping: typing.Optional[int],
+ ):
if require_explicit_policy is not None and not isinstance(
require_explicit_policy, int
):
@@ -691,7 +714,7 @@ class PolicyConstraints(ExtensionType):
class CertificatePolicies(ExtensionType):
oid = ExtensionOID.CERTIFICATE_POLICIES
- def __init__(self, policies):
+ def __init__(self, policies: typing.Iterable["PolicyInformation"]):
policies = list(policies)
if not all(isinstance(x, PolicyInformation) for x in policies):
raise TypeError(
@@ -720,7 +743,13 @@ class CertificatePolicies(ExtensionType):
class PolicyInformation(object):
- def __init__(self, policy_identifier, policy_qualifiers):
+ def __init__(
+ self,
+ policy_identifier: ObjectIdentifier,
+ policy_qualifiers: typing.Optional[
+ typing.Iterable[typing.Union[str, "UserNotice"]]
+ ],
+ ):
if not isinstance(policy_identifier, ObjectIdentifier):
raise TypeError("policy_identifier must be an ObjectIdentifier")
@@ -769,7 +798,11 @@ class PolicyInformation(object):
class UserNotice(object):
- def __init__(self, notice_reference, explicit_text):
+ def __init__(
+ self,
+ notice_reference: typing.Optional["NoticeReference"],
+ explicit_text: typing.Optional[str],
+ ):
if notice_reference and not isinstance(
notice_reference, NoticeReference
):
@@ -806,7 +839,11 @@ class UserNotice(object):
class NoticeReference(object):
- def __init__(self, organization, notice_numbers):
+ def __init__(
+ self,
+ organization: typing.Optional[str],
+ notice_numbers: typing.Iterable[int],
+ ):
self._organization = organization
notice_numbers = list(notice_numbers)
if not all(isinstance(x, int) for x in notice_numbers):
@@ -842,7 +879,7 @@ class NoticeReference(object):
class ExtendedKeyUsage(ExtensionType):
oid = ExtensionOID.EXTENDED_KEY_USAGE
- def __init__(self, usages):
+ def __init__(self, usages: typing.Iterable[ObjectIdentifier]):
usages = list(usages)
if not all(isinstance(x, ObjectIdentifier) for x in usages):
raise TypeError(
@@ -910,7 +947,7 @@ class PrecertPoison(ExtensionType):
class TLSFeature(ExtensionType):
oid = ExtensionOID.TLS_FEATURE
- def __init__(self, features):
+ def __init__(self, features: typing.Iterable["TLSFeatureType"]):
features = list(features)
if (
not all(isinstance(x, TLSFeatureType) for x in features)
@@ -958,7 +995,7 @@ _TLS_FEATURE_TYPE_TO_ENUM = {x.value: x for x in TLSFeatureType}
class InhibitAnyPolicy(ExtensionType):
oid = ExtensionOID.INHIBIT_ANY_POLICY
- def __init__(self, skip_certs):
+ def __init__(self, skip_certs: int):
if not isinstance(skip_certs, int):
raise TypeError("skip_certs must be an integer")
@@ -990,15 +1027,15 @@ class KeyUsage(ExtensionType):
def __init__(
self,
- digital_signature,
- content_commitment,
- key_encipherment,
- data_encipherment,
- key_agreement,
- key_cert_sign,
- crl_sign,
- encipher_only,
- decipher_only,
+ digital_signature: bool,
+ content_commitment: bool,
+ key_encipherment: bool,
+ data_encipherment: bool,
+ key_agreement: bool,
+ key_cert_sign: bool,
+ crl_sign: bool,
+ encipher_only: bool,
+ decipher_only: bool,
):
if not key_agreement and (encipher_only or decipher_only):
raise ValueError(
@@ -1101,7 +1138,11 @@ class KeyUsage(ExtensionType):
class NameConstraints(ExtensionType):
oid = ExtensionOID.NAME_CONSTRAINTS
- def __init__(self, permitted_subtrees, excluded_subtrees):
+ def __init__(
+ self,
+ permitted_subtrees: typing.Optional[typing.Iterable[GeneralName]],
+ excluded_subtrees: typing.Optional[typing.Iterable[GeneralName]],
+ ):
if permitted_subtrees is not None:
permitted_subtrees = list(permitted_subtrees)
if not all(isinstance(x, GeneralName) for x in permitted_subtrees):
@@ -1180,7 +1221,9 @@ class NameConstraints(ExtensionType):
class Extension(object):
- def __init__(self, oid, critical, value):
+ def __init__(
+ self, oid: ObjectIdentifier, critical: bool, value: ExtensionType
+ ):
if not isinstance(oid, ObjectIdentifier):
raise TypeError(
"oid argument must be an ObjectIdentifier instance."
@@ -1221,7 +1264,7 @@ class Extension(object):
class GeneralNames(object):
- def __init__(self, general_names):
+ def __init__(self, general_names: typing.Iterable[GeneralName]):
general_names = list(general_names)
if not all(isinstance(x, GeneralName) for x in general_names):
raise TypeError(
@@ -1233,7 +1276,7 @@ class GeneralNames(object):
__len__, __iter__, __getitem__ = _make_sequence_methods("_general_names")
- def get_values_for_type(self, type):
+ def get_values_for_type(self, type: typing.Type[GeneralName]):
# Return the value of each GeneralName, except for OtherName instances
# which we return directly because it has two important properties not
# just one value.
@@ -1261,7 +1304,7 @@ class GeneralNames(object):
class SubjectAlternativeName(ExtensionType):
oid = ExtensionOID.SUBJECT_ALTERNATIVE_NAME
- def __init__(self, general_names):
+ def __init__(self, general_names: typing.Iterable[GeneralName]):
self._general_names = GeneralNames(general_names)
__len__, __iter__, __getitem__ = _make_sequence_methods("_general_names")
@@ -1288,7 +1331,7 @@ class SubjectAlternativeName(ExtensionType):
class IssuerAlternativeName(ExtensionType):
oid = ExtensionOID.ISSUER_ALTERNATIVE_NAME
- def __init__(self, general_names):
+ def __init__(self, general_names: typing.Iterable[GeneralName]):
self._general_names = GeneralNames(general_names)
__len__, __iter__, __getitem__ = _make_sequence_methods("_general_names")
@@ -1315,7 +1358,7 @@ class IssuerAlternativeName(ExtensionType):
class CertificateIssuer(ExtensionType):
oid = CRLEntryExtensionOID.CERTIFICATE_ISSUER
- def __init__(self, general_names):
+ def __init__(self, general_names: typing.Iterable[GeneralName]):
self._general_names = GeneralNames(general_names)
__len__, __iter__, __getitem__ = _make_sequence_methods("_general_names")
@@ -1342,7 +1385,7 @@ class CertificateIssuer(ExtensionType):
class CRLReason(ExtensionType):
oid = CRLEntryExtensionOID.CRL_REASON
- def __init__(self, reason):
+ def __init__(self, reason: ReasonFlags):
if not isinstance(reason, ReasonFlags):
raise TypeError("reason must be an element from ReasonFlags")
@@ -1369,7 +1412,7 @@ class CRLReason(ExtensionType):
class InvalidityDate(ExtensionType):
oid = CRLEntryExtensionOID.INVALIDITY_DATE
- def __init__(self, invalidity_date):
+ def __init__(self, invalidity_date: datetime.datetime):
if not isinstance(invalidity_date, datetime.datetime):
raise TypeError("invalidity_date must be a datetime.datetime")
@@ -1398,7 +1441,12 @@ class InvalidityDate(ExtensionType):
class PrecertificateSignedCertificateTimestamps(ExtensionType):
oid = ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS
- def __init__(self, signed_certificate_timestamps):
+ def __init__(
+ self,
+ signed_certificate_timestamps: typing.Iterable[
+ SignedCertificateTimestamp
+ ],
+ ):
signed_certificate_timestamps = list(signed_certificate_timestamps)
if not all(
isinstance(sct, SignedCertificateTimestamp)
@@ -1438,7 +1486,12 @@ class PrecertificateSignedCertificateTimestamps(ExtensionType):
class SignedCertificateTimestamps(ExtensionType):
oid = ExtensionOID.SIGNED_CERTIFICATE_TIMESTAMPS
- def __init__(self, signed_certificate_timestamps):
+ def __init__(
+ self,
+ signed_certificate_timestamps: typing.Iterable[
+ SignedCertificateTimestamp
+ ],
+ ):
signed_certificate_timestamps = list(signed_certificate_timestamps)
if not all(
isinstance(sct, SignedCertificateTimestamp)
@@ -1476,7 +1529,7 @@ class SignedCertificateTimestamps(ExtensionType):
class OCSPNonce(ExtensionType):
oid = OCSPExtensionOID.NONCE
- def __init__(self, nonce):
+ def __init__(self, nonce: bytes):
if not isinstance(nonce, bytes):
raise TypeError("nonce must be bytes")
@@ -1642,7 +1695,7 @@ class IssuingDistributionPoint(ExtensionType):
class UnrecognizedExtension(ExtensionType):
- def __init__(self, oid, value):
+ def __init__(self, oid: ObjectIdentifier, value: bytes):
if not isinstance(oid, ObjectIdentifier):
raise TypeError("oid must be an ObjectIdentifier")
self._oid = oid
diff --git a/src/cryptography/x509/general_name.py b/src/cryptography/x509/general_name.py
index 6683e9313..a83471e93 100644
--- a/src/cryptography/x509/general_name.py
+++ b/src/cryptography/x509/general_name.py
@@ -40,8 +40,7 @@ class GeneralName(metaclass=abc.ABCMeta):
"""
-@utils.register_interface(GeneralName)
-class RFC822Name(object):
+class RFC822Name(GeneralName):
def __init__(self, value: str):
if isinstance(value, str):
try:
@@ -87,8 +86,7 @@ class RFC822Name(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class DNSName(object):
+class DNSName(GeneralName):
def __init__(self, value: str):
if isinstance(value, str):
try:
@@ -128,8 +126,7 @@ class DNSName(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class UniformResourceIdentifier(object):
+class UniformResourceIdentifier(GeneralName):
def __init__(self, value: str):
if isinstance(value, str):
try:
@@ -169,8 +166,7 @@ class UniformResourceIdentifier(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class DirectoryName(object):
+class DirectoryName(GeneralName):
def __init__(self, value: Name):
if not isinstance(value, Name):
raise TypeError("value must be a Name")
@@ -195,8 +191,7 @@ class DirectoryName(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class RegisteredID(object):
+class RegisteredID(GeneralName):
def __init__(self, value: ObjectIdentifier):
if not isinstance(value, ObjectIdentifier):
raise TypeError("value must be an ObjectIdentifier")
@@ -221,8 +216,7 @@ class RegisteredID(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class IPAddress(object):
+class IPAddress(GeneralName):
def __init__(
self,
value: typing.Union[
@@ -267,8 +261,7 @@ class IPAddress(object):
return hash(self.value)
-@utils.register_interface(GeneralName)
-class OtherName(object):
+class OtherName(GeneralName):
def __init__(self, type_id: ObjectIdentifier, value: bytes):
if not isinstance(type_id, ObjectIdentifier):
raise TypeError("type_id must be an ObjectIdentifier")
diff --git a/src/cryptography/x509/name.py b/src/cryptography/x509/name.py
index c183160e0..a579aa219 100644
--- a/src/cryptography/x509/name.py
+++ b/src/cryptography/x509/name.py
@@ -216,7 +216,7 @@ class Name(object):
attr.rfc4514_string() for attr in reversed(self._attributes)
)
- def get_attributes_for_oid(self, oid) -> typing.Iterable[NameAttribute]:
+ def get_attributes_for_oid(self, oid) -> typing.List[NameAttribute]:
return [i for i in self if i.oid == oid]
@property
diff --git a/src/rust/Cargo.lock b/src/rust/Cargo.lock
index d4b90b8c4..afacd5a6e 100644
--- a/src/rust/Cargo.lock
+++ b/src/rust/Cargo.lock
@@ -1,6 +1,12 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -36,10 +42,24 @@ dependencies = [
[[package]]
name = "indoc"
-version = "1.0.3"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
+dependencies = [
+ "indoc-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "indoc-impl"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5a75aeaaef0ce18b58056d306c27b07436fbb34b8816c53094b76dd81803136"
+checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
"unindent",
]
@@ -102,9 +122,9 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272"
+checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
dependencies = [
"cfg-if",
"instant",
@@ -116,9 +136,28 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.4"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1"
+checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+dependencies = [
+ "paste-impl",
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "paste-impl"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+dependencies = [
+ "proc-macro-hack",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro2"
@@ -131,9 +170,9 @@ dependencies = [
[[package]]
name = "pyo3"
-version = "0.13.1"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00ca634cf3acd58a599b535ed6cb188223298977d471d146121792bfa23b754c"
+checksum = "4837b8e8e18a102c23f79d1e9a110b597ea3b684c95e874eb1ad88f8683109c3"
dependencies = [
"cfg-if",
"ctor",
@@ -148,9 +187,9 @@ dependencies = [
[[package]]
name = "pyo3-macros"
-version = "0.13.1"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "483ac516dbda6789a5b4be0271e7a31b9ad4ec8c0a5955050e8076f72bdbef8f"
+checksum = "a47f2c300ceec3e58064fd5f8f5b61230f2ffd64bde4970c81fdd0563a2db1bb"
dependencies = [
"pyo3-macros-backend",
"quote",
@@ -159,9 +198,9 @@ dependencies = [
[[package]]
name = "pyo3-macros-backend"
-version = "0.13.1"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15230cabcda008f03565ed8bac40f094cbb5ee1b46e6551f1ec3a0e922cf7df9"
+checksum = "87b097e5d84fcbe3e167f400fbedd657820a375b034c78bd852050749a575d66"
dependencies = [
"proc-macro2",
"quote",
@@ -170,18 +209,21 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.8"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
dependencies = [
"proc-macro2",
]
[[package]]
name = "redox_syscall"
-version = "0.1.57"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
+dependencies = [
+ "bitflags",
+]
[[package]]
name = "scopeguard"
diff --git a/src/rust/src/lib.rs b/src/rust/src/lib.rs
index f06ac5f02..1580ca4fc 100644
--- a/src/rust/src/lib.rs
+++ b/src/rust/src/lib.rs
@@ -3,6 +3,8 @@
// for complete details.
#[pyo3::prelude::pymodule]
+// False positive: https://github.com/rust-lang/rust-clippy/issues/6721
+#[allow(clippy::unnecessary_wraps)]
fn _rust(_py: pyo3::Python<'_>, _m: &pyo3::types::PyModule) -> pyo3::PyResult<()> {
Ok(())
}