Пример #1
0
 def i2m(self, pkt, x):
     if x is None:
         s = b""
     else:
         s = raw(x)
         if hash(type(x)) in self.pktchoices:
             imp, exp = self.pktchoices[hash(type(x))]
             s = BER_tagging_enc(s, implicit_tag=imp, explicit_tag=exp)
     return BER_tagging_enc(s, explicit_tag=self.explicit_tag)
Пример #2
0
 def i2m(self, pkt, x):
     if x is None:
         s = b""
     else:
         s = raw(x)
     return BER_tagging_enc(s,
                            implicit_tag=self.implicit_tag,
                            explicit_tag=self.explicit_tag)
Пример #3
0
 def i2m(self, pkt, x):
     # type: (ASN1_Packet, Union[bytes, _I, _A]) -> bytes
     if x is None:
         return b""
     if isinstance(x, ASN1_Object):
         if (self.ASN1_tag == ASN1_Class_UNIVERSAL.ANY or
             x.tag == ASN1_Class_UNIVERSAL.RAW or
             x.tag == ASN1_Class_UNIVERSAL.ERROR or
            self.ASN1_tag == x.tag):
             s = x.enc(pkt.ASN1_codec)
         else:
             raise ASN1_Error("Encoding Error: got %r instead of an %r for field [%s]" % (x, self.ASN1_tag, self.name))  # noqa: E501
     else:
         s = self.ASN1_tag.get_codec(pkt.ASN1_codec).enc(x)
     return BER_tagging_enc(s, implicit_tag=self.implicit_tag,
                            explicit_tag=self.explicit_tag)
Пример #4
0
 def i2m(self,
         pkt,  # type: ASN1_Packet
         x  # type: Union[bytes, ASN1_Packet, None, ASN1_Object[Optional[ASN1_Packet]]]  # noqa: E501
         ):
     # type: (...) -> bytes
     if x is None:
         s = b""
     elif isinstance(x, bytes):
         s = x
     elif isinstance(x, ASN1_Object):
         if x.val:
             s = raw(x.val)
         else:
             s = b""
     else:
         s = raw(x)
     return BER_tagging_enc(s, implicit_tag=self.implicit_tag,
                            explicit_tag=self.explicit_tag)