summaryrefslogtreecommitdiffstats
path: root/scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-03-21 16:03:47 +0200
committerimarom <imarom@cisco.com>2016-03-21 16:03:47 +0200
commitb89efa188810bf95a9d245e69e2961b5721c3b0f (patch)
tree454273ac6c4ae972ebb8a2c86b893296970b4fa9 /scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py
parentf72c6df9d2e9998ae1f3529d729ab7930b35785a (diff)
scapy python 2/3
Diffstat (limited to 'scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py')
-rw-r--r--scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py108
1 files changed, 108 insertions, 0 deletions
diff --git a/scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py b/scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py
new file mode 100644
index 00000000..18aaa5e3
--- /dev/null
+++ b/scripts/external_libs/scapy-2.3.1/python3/scapy/layers/x509.py
@@ -0,0 +1,108 @@
+## This file is part of Scapy
+## See http://www.secdev.org/projects/scapy for more informations
+## Copyright (C) Philippe Biondi <phil@secdev.org>
+## This program is published under a GPLv2 license
+
+"""
+X.509 certificates.
+"""
+
+from scapy.asn1packet import *
+from scapy.asn1fields import *
+
+##########
+## X509 ##
+##########
+
+######[ ASN1 class ]######
+
+class ASN1_Class_X509(ASN1_Class_UNIVERSAL):
+ name="X509"
+ CONT0 = 0xa0
+ CONT1 = 0xa1
+ CONT2 = 0xa2
+ CONT3 = 0xa3
+
+class ASN1_X509_CONT0(ASN1_SEQUENCE):
+ tag = ASN1_Class_X509.CONT0
+
+class ASN1_X509_CONT1(ASN1_SEQUENCE):
+ tag = ASN1_Class_X509.CONT1
+
+class ASN1_X509_CONT2(ASN1_SEQUENCE):
+ tag = ASN1_Class_X509.CONT2
+
+class ASN1_X509_CONT3(ASN1_SEQUENCE):
+ tag = ASN1_Class_X509.CONT3
+
+######[ BER codecs ]#######
+
+class BERcodec_X509_CONT0(BERcodec_SEQUENCE):
+ tag = ASN1_Class_X509.CONT0
+
+class BERcodec_X509_CONT1(BERcodec_SEQUENCE):
+ tag = ASN1_Class_X509.CONT1
+
+class BERcodec_X509_CONT2(BERcodec_SEQUENCE):
+ tag = ASN1_Class_X509.CONT2
+
+class BERcodec_X509_CONT3(BERcodec_SEQUENCE):
+ tag = ASN1_Class_X509.CONT3
+
+######[ ASN1 fields ]######
+
+class ASN1F_X509_CONT0(ASN1F_SEQUENCE):
+ ASN1_tag = ASN1_Class_X509.CONT0
+
+class ASN1F_X509_CONT1(ASN1F_SEQUENCE):
+ ASN1_tag = ASN1_Class_X509.CONT1
+
+class ASN1F_X509_CONT2(ASN1F_SEQUENCE):
+ ASN1_tag = ASN1_Class_X509.CONT2
+
+class ASN1F_X509_CONT3(ASN1F_SEQUENCE):
+ ASN1_tag = ASN1_Class_X509.CONT3
+
+######[ X509 packets ]######
+
+class X509RDN(ASN1_Packet):
+ ASN1_codec = ASN1_Codecs.BER
+ ASN1_root = ASN1F_SET(
+ ASN1F_SEQUENCE( ASN1F_OID("oid","2.5.4.6"),
+ ASN1F_PRINTABLE_STRING("value","")
+ )
+ )
+
+class X509v3Ext(ASN1_Packet):
+ ASN1_codec = ASN1_Codecs.BER
+ ASN1_root = ASN1F_field("val",ASN1_NULL(0))
+
+
+class X509Cert(ASN1_Packet):
+ ASN1_codec = ASN1_Codecs.BER
+ ASN1_root = ASN1F_SEQUENCE(
+ ASN1F_SEQUENCE(
+ ASN1F_optionnal(ASN1F_X509_CONT0(ASN1F_INTEGER("version",3))),
+ ASN1F_INTEGER("sn",1),
+ ASN1F_SEQUENCE(ASN1F_OID("sign_algo","1.2.840.113549.1.1.5"),
+ ASN1F_field("sa_value",ASN1_NULL(0))),
+ ASN1F_SEQUENCE_OF("issuer",[],X509RDN),
+ ASN1F_SEQUENCE(ASN1F_UTC_TIME("not_before",ZuluTime(-600)), # ten minutes ago
+ ASN1F_UTC_TIME("not_after",ZuluTime(+86400))), # for 24h
+ ASN1F_SEQUENCE_OF("subject",[],X509RDN),
+ ASN1F_SEQUENCE(
+ ASN1F_SEQUENCE(ASN1F_OID("pubkey_algo","1.2.840.113549.1.1.1"),
+ ASN1F_field("pk_value",ASN1_NULL(0))),
+ ASN1F_BIT_STRING("pubkey","")
+ ),
+ ASN1F_optionnal(ASN1F_X509_CONT3(ASN1F_SEQUENCE_OF("x509v3ext",[],X509v3Ext))),
+
+ ),
+ ASN1F_SEQUENCE(ASN1F_OID("sign_algo2","1.2.840.113549.1.1.5"),
+ ASN1F_field("sa2_value",ASN1_NULL(0))),
+ ASN1F_BIT_STRING("signature","")
+ )
+
+
+
+