pysap.SAPPSE module¶
- class pysap.SAPPSE.ASN1F_PSE_v2_ENC_CONT_SEQUENCE(*seq: Any, **kwargs: Any)[source]¶
Bases:
ASN1F_SEQUENCE- ASN1_tag = <ASN1Tag v2_ENC_CONT[160]>¶
- class pysap.SAPPSE.ASN1F_PSE_v4_ENC_CONT_SEQUENCE(*seq: Any, **kwargs: Any)[source]¶
Bases:
ASN1F_SEQUENCE- ASN1_tag = <ASN1Tag v4_ENC_CONT[163]>¶
- class pysap.SAPPSE.ASN1_Class_PSE[source]¶
Bases:
ASN1_Class_UNIVERSAL- ANY = <ASN1Tag ANY[0]>¶
- BIT_STRING = <ASN1Tag BIT_STRING[3]>¶
- BMP_STRING = <ASN1Tag BMP_STRING[30]>¶
- BOOLEAN = <ASN1Tag BOOLEAN[1]>¶
- CHAR_STRING = <ASN1Tag CHAR_STRING[29]>¶
- COUNTER32 = <ASN1Tag COUNTER32[65]>¶
- COUNTER64 = <ASN1Tag COUNTER64[70]>¶
- EMBEDDED_PDF = <ASN1Tag EMBEDDED_PDF[11]>¶
- ENUMERATED = <ASN1Tag ENUMERATED[10]>¶
- ERROR = <ASN1Tag ERROR[-3]>¶
- EXTERNAL = <ASN1Tag EXTERNAL[8]>¶
- GAUGE32 = <ASN1Tag GAUGE32[66]>¶
- GENERALIZED_TIME = <ASN1Tag GENERALIZED_TIME[24]>¶
- GENERAL_STRING = <ASN1Tag GENERAL_STRING[27]>¶
- GRAPHIC_STRING = <ASN1Tag GRAPHIC_STRING[25]>¶
- IA5_STRING = <ASN1Tag IA5_STRING[22]>¶
- INTEGER = <ASN1Tag INTEGER[2]>¶
- IPADDRESS = <ASN1Tag IPADDRESS[64]>¶
- ISO646_STRING = <ASN1Tag ISO646_STRING[26]>¶
- NONE = <ASN1Tag NONE[-1]>¶
- NULL = <ASN1Tag NULL[5]>¶
- NUMERIC_STRING = <ASN1Tag NUMERIC_STRING[18]>¶
- OBJECT_DESCRIPTOR = <ASN1Tag OBJECT_DESCRIPTOR[7]>¶
- OID = <ASN1Tag OID[6]>¶
- PRINTABLE_STRING = <ASN1Tag PRINTABLE_STRING[19]>¶
- RAW = <ASN1Tag RAW[-2]>¶
- REAL = <ASN1Tag REAL[9]>¶
- RELATIVE_OID = <ASN1Tag RELATIVE_OID[13]>¶
- SEQUENCE = <ASN1Tag SEQUENCE[48]>¶
- SET = <ASN1Tag SET[49]>¶
- STRING = <ASN1Tag STRING[4]>¶
- T61_STRING = <ASN1Tag T61_STRING[20]>¶
- TIME_TICKS = <ASN1Tag TIME_TICKS[67]>¶
- UNIVERSAL_STRING = <ASN1Tag UNIVERSAL_STRING[28]>¶
- UTC_TIME = <ASN1Tag UTC_TIME[23]>¶
- UTF8_STRING = <ASN1Tag UTF8_STRING[12]>¶
- VIDEOTEX_STRING = <ASN1Tag VIDEOTEX_STRING[21]>¶
- name = 'PSE'¶
- v2_ENC_CONT = <ASN1Tag v2_ENC_CONT[160]>¶
- v4_ENC_CONT = <ASN1Tag v4_ENC_CONT[163]>¶
- class pysap.SAPPSE.ASN1_PSE_v2_ENC_CONT_SEQUENCE(val: _K)[source]¶
Bases:
ASN1_SEQUENCE- tag = <ASN1Tag v2_ENC_CONT[160]>¶
- class pysap.SAPPSE.ASN1_PSE_v4_ENC_CONT_SEQUENCE(val: _K)[source]¶
Bases:
ASN1_SEQUENCE- tag = <ASN1Tag v4_ENC_CONT[163]>¶
- class pysap.SAPPSE.BERcodec_PSE_v2_ENC_CONT_SEQUENCE[source]¶
Bases:
BERcodec_SEQUENCE- tag = <ASN1Tag v2_ENC_CONT[160]>¶
- class pysap.SAPPSE.BERcodec_PSE_v4_ENC_CONT_SEQUENCE[source]¶
Bases:
BERcodec_SEQUENCE- tag = <ASN1Tag v4_ENC_CONT[163]>¶
- class pysap.SAPPSE.PKCS12_PBE1_Parameters(_pkt, /, *, salt=<ASN1_STRING['']>, iterations=0x800 <ASN1_INTEGER[2048]>)[source]¶
Bases:
ASN1_PacketPKCS12 PBE1 Parameters
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_INTEGER object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.PKCS12_PBE1_Parameters'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_INTEGER object>]¶
- class pysap.SAPPSE.PKCS5_Algorithm_Identifier(_pkt, /, *, alg_id=<ASN1_OID['.1.2.840.113549.1.12.1.3']>, parameters=<PKCS12_PBE1_Parameters |>)[source]¶
Bases:
ASN1_PacketPKCS5 Algorithm Identifier
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_OID object>, <scapy.asn1fields.ASN1F_optional object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.PKCS5_Algorithm_Identifier'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_OID object>, <scapy.asn1fields.ASN1F_CHOICE object>]¶
- class pysap.SAPPSE.PKCS5_Salt_Parameter(_pkt, /, *, salt=<ASN1_STRING['']>)[source]¶
Bases:
ASN1_PacketPKCS5 Salt Parameter
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <scapy.asn1fields.ASN1F_STRING object>¶
- aliastypes = [<class 'pysap.SAPPSE.PKCS5_Salt_Parameter'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_STRING object>]¶
- class pysap.SAPPSE.SAPPSEFile(_pkt, /, *, version=0x2 <ASN1_INTEGER[2]>, enc_cont=<SAPPSEv2_Enc_Cont algorithm_identifier=<PKCS5_Algorithm_Identifier parameters=<PKCS12_PBE1_Parameters |> |> |>)[source]¶
Bases:
ASN1_PacketSAP PSE definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_CHOICE object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSEFile'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- decrypt(pin)[source]¶
Decrypts a PSE file given a provided PIN. Calls the respective decryption function based on the PSE version.
- decrypt_lps(pin)[source]¶
Decrypts an LPS encrypted PSE file given a provided PIN.
- Parameters:
pin (string)
- Returns:
decrypted object
- Return type:
- Raises:
ValueError – if the provided PIN doesn’t match with the one used for encryption
NotImplementedError – if the algorithm specified is not supported
Exception – if the algorithm specified is not valid
- decrypt_non_lps(pin)[source]¶
Decrypts a non-LPS encrypted PSE file given a provided PIN. Implements PKCS12 PBE1 based encryption for v2 PSE files.
- Parameters:
pin (string)
- Returns:
decrypted object
- Return type:
- Raises:
ValueError – if the provided PIN doesn’t match with the one used for encryption
NotImplementedError – if the algorithm specified is not supported
Exception – if the algorithm specified is not valid
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_CHOICE object>]¶
- class pysap.SAPPSE.SAPPSE_Cont(_pkt, /, *, algorithm_identifier=<PKCS5_Algorithm_Identifier parameters=<PKCS12_PBE1_Parameters |> |>, timestamp=1970-01-01 00:00:00 UTC <ASN1_GENERALIZED_TIME['19700101000000Z']>, unknown1=0x1 <ASN1_INTEGER[1]>, pse_obj=<SAPPSE_Obj object_value=<SAPPSE_Obj_PKRoot ca=<X509_DirectoryName directoryName=[<X509_RDN rdn=[<X509_AttributeTypeAndValue |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['organizationName']> value=<ASN1_PRINTABLE_STRING['Scapy, Inc.']> |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['commonName']> value=<ASN1_PRINTABLE_STRING['Scapy Default Name']> |>] |>] |> new_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |> old_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |> |> |>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 Content definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_GENERALIZED_TIME object>, <scapy.asn1fields.ASN1F_INTEGER object>, <ASN1F_SET_OF pse_obj>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Cont'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_GENERALIZED_TIME object>, <scapy.asn1fields.ASN1F_INTEGER object>, <ASN1F_SET_OF pse_obj>]¶
- class pysap.SAPPSE.SAPPSE_Obj(_pkt, /, *, object_name=<ASN1_PRINTABLE_STRING['PKRoot']>, created=1970-01-01 00:00:00 UTC <ASN1_GENERALIZED_TIME['19700101000000Z']>, object_type=<ASN1_OID['.1.3.36.2.5.1']>, object_value=<SAPPSE_Obj_PKRoot ca=<X509_DirectoryName directoryName=[<X509_RDN rdn=[<X509_AttributeTypeAndValue |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['organizationName']> value=<ASN1_PRINTABLE_STRING['Scapy, Inc.']> |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['commonName']> value=<ASN1_PRINTABLE_STRING['Scapy Default Name']> |>] |>] |> new_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |> old_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |> |>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 Object definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_PRINTABLE_STRING object>, <scapy.asn1fields.ASN1F_GENERALIZED_TIME object>, <scapy.asn1fields.ASN1F_OID object>, <pysap.utils.fields.ASN1F_CHOICE_SAFE object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Obj'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_PRINTABLE_STRING object>, <scapy.asn1fields.ASN1F_GENERALIZED_TIME object>, <scapy.asn1fields.ASN1F_OID object>, <pysap.utils.fields.ASN1F_CHOICE_SAFE object>]¶
- class pysap.SAPPSE.SAPPSE_Obj_CertList(_pkt, /, *, certs=None)[source]¶
Bases:
ASN1_PacketSAP PSEv2 CertList, CSet, SignCSet, EncCSet Object definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SET_OF certs>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Obj_CertList'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<ASN1F_SET_OF certs>]¶
- class pysap.SAPPSE.SAPPSE_Obj_PKList(_pkt, /, *, version=0x0 <ASN1_INTEGER[0]>, serial_number=0x0 <ASN1_INTEGER[0]>, signature=<X509_AlgorithmIdentifier |>, issuer=<X509_DirectoryName directoryName=[<X509_RDN rdn=[<X509_AttributeTypeAndValue |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['organizationName']> value=<ASN1_PRINTABLE_STRING['Scapy, Inc.']> |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['commonName']> value=<ASN1_PRINTABLE_STRING['Scapy Default Name']> |>] |>] |>, validity=<X509_Validity |>, partner=<X509_DirectoryName directoryName=[<X509_RDN rdn=[<X509_AttributeTypeAndValue |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['organizationName']> value=<ASN1_PRINTABLE_STRING['Scapy, Inc.']> |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['commonName']> value=<ASN1_PRINTABLE_STRING['Scapy Default Name']> |>] |>] |>, verification_key=<X509_SubjectPublicKeyInfo |>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 PKList, EKList, PCAList Object definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_enum_INTEGER object>, <scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Obj_PKList'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_enum_INTEGER object>, <scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>]¶
- class pysap.SAPPSE.SAPPSE_Obj_PKRoot(_pkt, /, *, ca=<X509_DirectoryName directoryName=[<X509_RDN rdn=[<X509_AttributeTypeAndValue |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['organizationName']> value=<ASN1_PRINTABLE_STRING['Scapy, Inc.']> |>] |>, <X509_RDN rdn=[<X509_AttributeTypeAndValue type=<ASN1_OID['commonName']> value=<ASN1_PRINTABLE_STRING['Scapy Default Name']> |>] |>] |>, new_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |>, old_key=<SAPPSE_Root_Key public_key=<X509_SubjectPublicKeyInfo |> validity=<X509_Validity |> sign_alg_id=<X509_AlgorithmIdentifier |> |>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 PKRoot Object definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Obj_PKRoot'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>]¶
- class pysap.SAPPSE.SAPPSE_Root_Key(_pkt, /, *, version=0x0 <ASN1_INTEGER[0]>, serial_number=0x0 <ASN1_INTEGER[0]>, public_key=<X509_SubjectPublicKeyInfo |>, validity=<X509_Validity |>, sign_alg_id=<X509_AlgorithmIdentifier |>, sign_bit_string=<ASN1_BIT_STRING[]=b'' (0 unused bit)>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 Root Key definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_enum_INTEGER object>, <scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_BIT_STRING object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSE_Root_Key'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_enum_INTEGER object>, <scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_BIT_STRING object>]¶
- class pysap.SAPPSE.SAPPSEv2_Enc_Cont(_pkt, /, *, encrypted_pin=<ASN1_STRING['']>, algorithm_identifier=<PKCS5_Algorithm_Identifier parameters=<PKCS12_PBE1_Parameters |> |>, cipher_text=<ASN1_STRING['']>)[source]¶
Bases:
ASN1_PacketSAP PSEv2 Encrypted content definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_PSE_v2_ENC_CONT_SEQUENCE(<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSEv2_Enc_Cont'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>]¶
- class pysap.SAPPSE.SAPPSEv4_Enc_Cont(_pkt, /, *, unknown=0x1 <ASN1_INTEGER[1]>, algorithm_identifier=<PKCS5_Algorithm_Identifier parameters=<PKCS12_PBE1_Parameters |> |>, cipher_text=<ASN1_STRING['']>, encrypted_pin=<ASN1_STRING['']>)[source]¶
Bases:
ASN1_PacketSAP PSEv4 Encrypted content definition
- ASN1_codec = <ASN1Codec BER[1]>¶
- ASN1_root = <ASN1F_PSE_v4_ENC_CONT_SEQUENCE(<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_STRING object>)>¶
- aliastypes = [<class 'pysap.SAPPSE.SAPPSEv4_Enc_Cont'>, <class 'scapy.asn1packet.ASN1_Packet'>, <class 'scapy.packet.Packet'>]¶
- fields_desc: List[AnyField] = [<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_STRING object>]¶