MCPcopy Index your code
hub / github.com/secdev/scapy / X509_AlgorithmIdentifier

Class X509_AlgorithmIdentifier

scapy/layers/x509.py:917–990  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

915# Public key wrapper #
916
917class X509_AlgorithmIdentifier(ASN1_Packet):
918 ASN1_codec = ASN1_Codecs.BER
919 ASN1_root = ASN1F_SEQUENCE(
920 ASN1F_OID("algorithm", "1.2.840.113549.1.1.11"),
921 MultipleTypeField(
922 [
923 (
924 # RFC4055:
925 # "The correct encoding is to omit the parameters field"
926 # "All implementations MUST accept both NULL and absent
927 # parameters as legal and equivalent encodings."
928
929 # RFC8017:
930 # "should generally be omitted, but if present, it shall have a
931 # value of type NULL."
932 ASN1F_optional(ASN1F_NULL("parameters", None)),
933 lambda pkt: (
934 pkt.algorithm.val[:19] == "1.2.840.113549.1.1." or
935 pkt.algorithm.val[:21] == "2.16.840.1.101.3.4.2." or
936 pkt.algorithm.val[:11] == "1.3.14.3.2."
937 )
938 ),
939 (
940 # RFC5758:
941 # "the encoding MUST omit the parameters field"
942
943 # RFC8410:
944 # "For all of the OIDs, the parameters MUST be absent."
945 ASN1F_omit("parameters", None),
946 lambda pkt: (
947 pkt.algorithm.val[:16] == "1.2.840.10045.4." or
948 pkt.algorithm.val in ["1.3.101.112", "1.3.101.113"]
949 )
950 ),
951 # RFC5480
952 (
953 ASN1F_PACKET(
954 "parameters",
955 ECParameters(),
956 ECParameters,
957 ),
958 lambda pkt: pkt.algorithm.val == "1.2.840.10045.2.1",
959 ),
960 # RFC3279
961 (
962 ASN1F_PACKET(
963 "parameters",
964 DomainParameters(),
965 DomainParameters,
966 ),
967 lambda pkt: pkt.algorithm.val == "1.2.840.10046.2.1",
968 ),
969 # PKCS#3
970 (
971 ASN1F_PACKET(
972 "parameters",
973 DHParameter(),
974 DHParameter,

Callers 15

gen_alike_chainMethod · 0.90
PAChecksum2Class · 0.90
as_reqMethod · 0.90
signMethod · 0.90
__init__Method · 0.85
X509_TBSCertificateClass · 0.85
__init__Method · 0.85
X509_TBSCertListClass · 0.85
__init__Method · 0.85
CMS_SignerInfoClass · 0.85

Calls 11

ASN1F_SEQUENCEClass · 0.90
ASN1F_OIDClass · 0.90
MultipleTypeFieldClass · 0.90
ASN1F_optionalClass · 0.90
ASN1F_NULLClass · 0.90
ASN1F_omitClass · 0.90
ASN1F_PACKETClass · 0.90
ASN1F_STRINGClass · 0.90
ECParametersClass · 0.85
DomainParametersClass · 0.85
DHParameterClass · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…