Interfaces¶
Here is a list of interfaces (i.e. Parser s) implemented as defined in
the specification. When you are working with them, it might sometimes be helpful to check out the
result of their print() method. For example, calling this on a
BikeshedCertificate produces
--------------------Struct BikeshedCertificate (780)--------------------
--------------------Struct Assertion (109)--------------------
2 SubjectType tls(0)
34 SubjectInfo ..X.....z.X.Q.....(.1....y....]`
--------------------Vector ClaimList (73)--------------------
2 ClaimType dns(0)
--------------------Vector DNSNameList (21)--------------------
19 DNSName www.cloudflare.com
------------------End vector DNSNameList------------------
2 ClaimType ipv4(2)
--------------------Vector IPv4AddressList (10)--------------------
4 IPv4Address 1.0.0.1
4 IPv4Address 1.1.1.1
------------------End vector IPv4AddressList------------------
2 ClaimType ipv6(3)
--------------------Vector IPv6AddressList (34)--------------------
16 IPv6Address 2606:4700:4700::1001
16 IPv6Address 2606:4700:4700::1111
------------------End vector IPv6AddressList------------------
------------------End vector ClaimList------------------
------------------End struct Assertion------------------
--------------------Struct Proof (671)--------------------
--------------------Struct TrustAnchor (19)--------------------
2 ProofType merkle_tree_sha256(0)
--------------------Struct MerkleTreeTrustAnchor (17)--------------------
12 IssuerID test.issuer
4 UInt32 8
------------------End struct MerkleTreeTrustAnchor------------------
------------------End struct TrustAnchor------------------
--------------------Struct MerkleTreeProofSHA256 (652)--------------------
8 UInt64 25
--------------------Vector SHA256Vector (642)--------------------
32 Array SHA256Hash .......<-1.$..6..l......[......(
32 Array SHA256Hash 6.v.e......%`S..j.9PL#..~......u
32 Array SHA256Hash .`<.?3...ZH.+.t.hn..2......HN..Q
32 Array SHA256Hash ......A.*........JJ@9..4.o....e.
32 Array SHA256Hash ...$.sAV..Z..}((..`....~x.qRZ5.$
32 Array SHA256Hash 7..t.LL...Vy7.........r...@..6.@
32 Array SHA256Hash .B`.O.....a.g.C:D.KC+..Y5.#fx..A
32 Array SHA256Hash .x.X..q....cF"b....RG.S......N|W
32 Array SHA256Hash ..w.jP=(v.bT.l*.!....P......#=;3
32 Array SHA256Hash ..../N".c$.H;#.h&0..............
32 Array SHA256Hash TP..G.,.,.-.^".k..6qE..b.1..6..M
32 Array SHA256Hash ...F\{,f.n*_..W.......e.F.^."..v
32 Array SHA256Hash 53...y...rf.(",..[=[:...\l.....4
32 Array SHA256Hash .f.."".,.:q......=gj...^..../..4
32 Array SHA256Hash ..'/...Y.B)-.b(H@.+.=..G.._J*.R.
32 Array SHA256Hash &.V...(..l.?[.5...I[.z...!....Am
32 Array SHA256Hash 5.r2=.-..s}.b...........P_.|.5~F
32 Array SHA256Hash ....>...3t....~'..-..O..&.@..L.W
32 Array SHA256Hash .!..&$8..br%..............1.2...
32 Array SHA256Hash .L..0um.o..&$.u..Al.?.R.%..T..J.
------------------End vector SHA256Vector------------------
------------------End struct MerkleTreeProofSHA256------------------
------------------End struct Proof------------------
------------------End struct BikeshedCertificate------------------
The following interfaces are implemented
- class mtc.assertion.IPv4AddressList(*value: IPv4Address)[source]¶
Bases:
VectorImplemented according to section 4.2 of the specification
- data_type¶
alias of
IPv4Address
- class mtc.assertion.IPv6AddressList(*value: IPv6Address)[source]¶
Bases:
VectorImplemented according to section 4.2 of the specification
- data_type¶
alias of
IPv6Address
- class mtc.assertion.SubjectType(value: int)[source]¶
Bases:
EnumImplemented according to section 4 of the specification
- tls: SubjectType = <SubjectType 0>¶
- class mtc.assertion.DNSName(value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 4.1 of the specification
- class mtc.assertion.DNSNameList(*value: DNSNameList)[source]¶
Bases:
VectorImplemented according to section 4.1 of the specification
- class mtc.assertion.SubjectInfo(value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 4 of the specification
- class mtc.assertion.Claim(value:tuple[ClaimType, DNSNameList|IPv4AddressList|IPv6AddressList]))[source]¶
Bases:
VariantImplemented according to section 4 of the specification
- class mtc.assertion.ClaimList(value: bytes)[source]¶
Bases:
VectorImplemented according to section 4 of the specification
- class mtc.assertion.Assertion(*value: tuple[SubjectType, SubjectInfo, ClaimList])[source]¶
Bases:
StructImplemented according to section 4 of the specification
- subject_type: SubjectType¶
- subject_info: SubjectInfo¶
- class mtc.assertion.Assertions(*value: Assertion)[source]¶
Bases:
VectorImplemented according to section 5.4.2 of the specification
- class mtc.tree.Distinguisher(value: int)[source]¶
Bases:
EnumImplemented according to section 5.4.1 of the specification
- HashEmptyInput: Distinguisher = <Distinguisher 0>¶
- HashNodeInput: Distinguisher = <Distinguisher 1>¶
- HashAssertionInput: Distinguisher = <Distinguisher 2>¶
- class mtc.tree.SHA256Hash(*value: bytes)[source]¶
Bases:
ArrayImplemented according to section 5.4.1 of the specification
- class mtc.tree.IssuerID(*value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 5.4.2 of the specification
- class mtc.tree.HashHead(value: tuple[Distinguisher, IssuerID, UInt32])[source]¶
Bases:
ParserImplemented according to section 5.4.1 of the specification
- classmethod parse(stream: BufferedIOBase) Self[source]¶
- class mtc.tree.HashEmptyInput(*value: tuple[HashHead, UInt64, UInt8])[source]¶
Bases:
StructImplemented according to section 5.4.1 of the specification
- class mtc.tree.HashNodeInput(*value: tuple[HashHead, UInt64, UInt8, SHA256Hash, SHA256Hash])[source]¶
Bases:
StructImplemented according to section 5.4.1 of the specification
- left: SHA256Hash¶
- right: SHA256Hash¶
- class mtc.tree.HashAssertionInput(*value: tuple[HashHead, UInt64, Assertion])[source]¶
Bases:
StructImplemented according to section 5.4.1 of the specification
- class mtc.certificate.TreeHeads(value: list[SHA256Hash])[source]¶
Bases:
ParserImplemented according to section 5.4.2 of the specification
- classmethod parse(stream: BufferedIOBase) Self[source]¶
- class mtc.certificate.ValidityWindow(*value: tuple[UInt32, TreeHeads])[source]¶
Bases:
StructImplemented according to section 5.4.2 of the specification
- class mtc.certificate.ValidityWindowLabel(value: bytes = b'Merkle Tree Crts ValidityWindow\x00')[source]¶
Bases:
ParserImplemented according to section 5.4.2 of the specification
- classmethod parse(stream: BufferedIOBase) Self[source]¶
- class mtc.certificate.LabeledValidityWindow(*value: tuple[ValidityWindowLabel, IssuerID, ValidityWindow])[source]¶
Bases:
StructImplemented according to section 5.4.2 of the specification
- label: ValidityWindowLabel¶
- window: ValidityWindow¶
- class mtc.certificate.Signature(value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 5.4.2 of the specification
- class mtc.certificate.SignedValidityWindow(*value: tuple[ValidityWindow, Signature])[source]¶
Bases:
StructImplemented according to section 5.4.2 of the specification
- window: ValidityWindow¶
- class mtc.certificate.ProofType(value: int)[source]¶
Bases:
EnumImplemented according to section 5.4.3 of the specification
- class mtc.certificate.SHA256Vector(*value: tuple[SHA256Hash])[source]¶
Bases:
VectorImplemented according to section 5.4.3 of the specification
- data_type¶
alias of
SHA256Hash
- class mtc.certificate.TrustAnchorData(value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 5.4.3 of the specification
- class mtc.certificate.ProofData(value: bytes)[source]¶
Bases:
OpaqueVectorImplemented according to section 5.4.3 of the specification
- class mtc.certificate.MerkleTreeTrustAnchor(*value: tuple[IssuerID, UInt32])[source]¶
Bases:
StructImplemented according to section 5.4.3 of the specification
- class mtc.certificate.MerkleTreeProofSHA256(*value: tuple[UInt64, SHA256Vector])[source]¶
Bases:
StructImplemented according to section 5.4.3 of the specification
- path: SHA256Vector¶
- class mtc.certificate.TrustAnchor(*value: tuple[ProofType, TrustAnchorData | MerkleTreeTrustAnchor])[source]¶
Bases:
StructImplemented according to section 5.4.3 of the specification
- trust_anchor_data: TrustAnchorData | MerkleTreeTrustAnchor¶
- classmethod skip(stream: BufferedIOBase) None[source]¶
- class mtc.certificate.Proof(*value: tuple[TrustAnchor, ProofData | MerkleTreeProofSHA256])[source]¶
Bases:
StructImplemented according to section 5.4.3 of the specification
- trust_anchor: TrustAnchor¶
- proof_data: ProofData | MerkleTreeProofSHA256¶
- classmethod parse(stream: BufferedIOBase) Self[source]¶
- classmethod skip(stream: BufferedIOBase) None[source]¶