pysap.SAPPSE module

class pysap.SAPPSE.ASN1F_PSE_v2_ENC_CONT_SEQUENCE(*seq, **kwargs)[source]

Bases: scapy.asn1fields.ASN1F_SEQUENCE

ASN1_tag = <ASN1Tag v2_ENC_CONT[160]>
class pysap.SAPPSE.ASN1F_PSE_v4_ENC_CONT_SEQUENCE(*seq, **kwargs)[source]

Bases: scapy.asn1fields.ASN1F_SEQUENCE

ASN1_tag = <ASN1Tag v4_ENC_CONT[163]>
class pysap.SAPPSE.ASN1_Class_PSE[source]

Bases: scapy.asn1.asn1.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]>
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)[source]

Bases: scapy.asn1.asn1.ASN1_SEQUENCE

tag = <ASN1Tag v2_ENC_CONT[160]>
class pysap.SAPPSE.ASN1_PSE_v4_ENC_CONT_SEQUENCE(val)[source]

Bases: scapy.asn1.asn1.ASN1_SEQUENCE

tag = <ASN1Tag v4_ENC_CONT[163]>
class pysap.SAPPSE.BERcodec_PSE_v2_ENC_CONT_SEQUENCE[source]

Bases: scapy.asn1.ber.BERcodec_SEQUENCE

tag = <ASN1Tag v2_ENC_CONT[160]>
class pysap.SAPPSE.BERcodec_PSE_v4_ENC_CONT_SEQUENCE[source]

Bases: scapy.asn1.ber.BERcodec_SEQUENCE

tag = <ASN1Tag v4_ENC_CONT[163]>
class pysap.SAPPSE.PKCS12_PBE1_Parameters(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

PKCS12 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 = [<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_INTEGER object>]
class pysap.SAPPSE.PKCS5_Algorithm_Identifier(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

PKCS5 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 = [<scapy.asn1fields.ASN1F_OID object>, <scapy.asn1fields.ASN1F_CHOICE object>]
class pysap.SAPPSE.PKCS5_Salt_Parameter(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

PKCS5 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 = [<scapy.asn1fields.ASN1F_STRING object>]
class pysap.SAPPSE.SAPPSEFile(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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:

SAPPSE_Cont

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:

SAPPSE_Cont

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 = [<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_CHOICE object>]
class pysap.SAPPSE.SAPPSE_Cont(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<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='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<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='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<ASN1F_SET_OF certs>]
class pysap.SAPPSE.SAPPSE_Obj_PKList(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<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='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_PACKET object>]
class pysap.SAPPSE.SAPPSE_Root_Key(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<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='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>]
class pysap.SAPPSE.SAPPSEv4_Enc_Cont(_pkt='', post_transform=None, _internal=0, _underlayer=None, **fields)[source]

Bases: scapy.asn1packet.ASN1_Packet

SAP 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 = [<scapy.asn1fields.ASN1F_INTEGER object>, <scapy.asn1fields.ASN1F_PACKET object>, <scapy.asn1fields.ASN1F_STRING object>, <scapy.asn1fields.ASN1F_STRING object>]