circuitmatter.crypto ==================== .. py:module:: circuitmatter.crypto Attributes ---------- .. autoapisummary:: circuitmatter.crypto.SYMMETRIC_KEY_LENGTH_BITS circuitmatter.crypto.SYMMETRIC_KEY_LENGTH_BYTES circuitmatter.crypto.AEAD_MIC_LENGTH_BITS circuitmatter.crypto.AEAD_MIC_LENGTH_BYTES circuitmatter.crypto.AEAD_NONCE_LENGTH_BYTES circuitmatter.crypto.GROUP_SIZE_BITS circuitmatter.crypto.GROUP_SIZE_BYTES circuitmatter.crypto.PUBLIC_KEY_SIZE_BYTES circuitmatter.crypto.HASH_LEN_BITS circuitmatter.crypto.HASH_LEN_BYTES circuitmatter.crypto.HASH_BLOCK_LEN_BYTES circuitmatter.crypto.CERTIFICATE_SIZE Classes ------- .. autoapisummary:: circuitmatter.crypto.DNAttribute circuitmatter.crypto.BasicContraints circuitmatter.crypto.Extensions circuitmatter.crypto.SignatureAlgorithm circuitmatter.crypto.PublicKeyAlgorithm circuitmatter.crypto.EllipticCurveId circuitmatter.crypto.MatterCertificate Functions --------- .. autoapisummary:: circuitmatter.crypto.Hash circuitmatter.crypto.HMAC circuitmatter.crypto.HKDF_Extract circuitmatter.crypto.HKDF_Expand circuitmatter.crypto.KDF circuitmatter.crypto.ECDH Module Contents --------------- .. py:data:: SYMMETRIC_KEY_LENGTH_BITS :value: 128 .. py:data:: SYMMETRIC_KEY_LENGTH_BYTES :value: 16 .. py:data:: AEAD_MIC_LENGTH_BITS :value: 128 .. py:data:: AEAD_MIC_LENGTH_BYTES :value: 16 .. py:data:: AEAD_NONCE_LENGTH_BYTES :value: 13 .. py:data:: GROUP_SIZE_BITS :value: 256 .. py:data:: GROUP_SIZE_BYTES :value: 32 .. py:data:: PUBLIC_KEY_SIZE_BYTES .. py:data:: HASH_LEN_BITS :value: 256 .. py:data:: HASH_LEN_BYTES :value: 32 .. py:data:: HASH_BLOCK_LEN_BYTES :value: 64 .. py:data:: CERTIFICATE_SIZE :value: 400 .. py:class:: DNAttribute Bases: :py:obj:`circuitmatter.tlv.List` .. py:attribute:: common_name .. py:attribute:: surname .. py:attribute:: serial_num .. py:attribute:: country_name .. py:attribute:: locality_name .. py:attribute:: state_or_province_name .. py:attribute:: org_name .. py:attribute:: org_unit_name .. py:attribute:: title .. py:attribute:: name .. py:attribute:: given_name .. py:attribute:: initials .. py:attribute:: gen_qualifier .. py:attribute:: dn_qualifier .. py:attribute:: pseudonym .. py:attribute:: domain_component .. py:attribute:: matter_node_id .. py:attribute:: matter_firmware_signing_id .. py:attribute:: matter_icac_id .. py:attribute:: matter_rcac_id .. py:attribute:: matter_fabric_id .. py:attribute:: matter_noc_cat .. py:attribute:: common_name_ps .. py:attribute:: surname_ps .. py:attribute:: serial_num_ps .. py:attribute:: country_name_ps .. py:attribute:: locality_name_ps .. py:attribute:: state_or_province_name_ps .. py:attribute:: org_name_ps .. py:attribute:: org_unit_name_ps .. py:attribute:: title_ps .. py:attribute:: name_ps .. py:attribute:: given_name_ps .. py:attribute:: initials_ps .. py:attribute:: gen_qualifier_ps .. py:attribute:: dn_qualifier_ps .. py:attribute:: pseudonym_ps .. py:attribute:: items :value: [] .. py:attribute:: values .. py:method:: __iter__() .. py:method:: __str__() .. py:method:: encode() -> memoryview .. py:method:: encode_into(buffer: bytearray, offset: int = 0) -> int .. py:method:: from_value(value) :classmethod: .. py:method:: set_value(tag, value) .. py:method:: delete_value(tag) .. py:method:: copy() .. py:method:: max_length() :classmethod: .. py:class:: BasicContraints Bases: :py:obj:`circuitmatter.tlv.Structure` .. py:attribute:: is_ca .. py:attribute:: path_len_constraint .. py:method:: __str__() .. py:method:: encode() -> memoryview .. py:method:: encode_into(buffer: bytearray, offset: int = 0) -> int .. py:method:: decode(buffer: memoryview, offset=0) -> Structure :classmethod: .. py:method:: decode_member(control_octet, buffer, offset=0, depth=0) -> tuple[dict, int] :classmethod: .. py:method:: construct_containers() .. py:method:: from_value(value) :classmethod: .. py:attribute:: values .. py:method:: max_length() :classmethod: .. py:method:: set_value(tag, value) .. py:method:: delete_value(tag) .. py:class:: Extensions Bases: :py:obj:`circuitmatter.tlv.List` .. py:attribute:: basic_cnstr .. py:attribute:: key_usage .. py:attribute:: extended_key_usage .. py:attribute:: subject_key_id .. py:attribute:: authority_key_id .. py:attribute:: future_extension .. py:attribute:: items :value: [] .. py:attribute:: values .. py:method:: __iter__() .. py:method:: __str__() .. py:method:: encode() -> memoryview .. py:method:: encode_into(buffer: bytearray, offset: int = 0) -> int .. py:method:: from_value(value) :classmethod: .. py:method:: set_value(tag, value) .. py:method:: delete_value(tag) .. py:method:: copy() .. py:method:: max_length() :classmethod: .. py:class:: SignatureAlgorithm Bases: :py:obj:`enum.IntEnum` Enum where members are also (and must be) ints .. py:attribute:: ECDSA_WITH_SHA256 :value: 1 .. py:class:: PublicKeyAlgorithm Bases: :py:obj:`enum.IntEnum` Enum where members are also (and must be) ints .. py:attribute:: EC_PUB_KEY :value: 1 .. py:class:: EllipticCurveId Bases: :py:obj:`enum.IntEnum` Enum where members are also (and must be) ints .. py:attribute:: PRIME256V1 :value: 1 .. py:class:: MatterCertificate Bases: :py:obj:`circuitmatter.tlv.Structure` .. py:attribute:: serial_num .. py:attribute:: sig_algo .. py:attribute:: issuer .. py:attribute:: not_before .. py:attribute:: not_after .. py:attribute:: subject .. py:attribute:: pub_key_algo .. py:attribute:: ec_curve_id .. py:attribute:: ec_pub_key .. py:attribute:: extensions .. py:attribute:: signature .. py:method:: __str__() .. py:method:: encode() -> memoryview .. py:method:: encode_into(buffer: bytearray, offset: int = 0) -> int .. py:method:: decode(buffer: memoryview, offset=0) -> Structure :classmethod: .. py:method:: decode_member(control_octet, buffer, offset=0, depth=0) -> tuple[dict, int] :classmethod: .. py:method:: construct_containers() .. py:method:: from_value(value) :classmethod: .. py:attribute:: values .. py:method:: max_length() :classmethod: .. py:method:: set_value(tag, value) .. py:method:: delete_value(tag) .. py:function:: Hash(*message) -> bytes .. py:function:: HMAC(key, message) -> bytes .. py:function:: HKDF_Extract(salt, input_key) -> bytes .. py:function:: HKDF_Expand(prk, info, length) -> bytes .. py:function:: KDF(input_key, salt, info, length) .. py:function:: ECDH(private_key: ecdsa.keys.SigningKey, public_key: bytes) -> bytes