From 0ad1b69fb0e11e909b49fbea3edbdaa4488ce676 Mon Sep 17 00:00:00 2001
From: mtu <maxence.tury@ssi.gouv.fr>
Date: Thu, 25 Feb 2016 09:56:56 +0100
Subject: [PATCH] Replace bin() with binrepr from scapy.utils (Python
2.5-friendly)
---
scapy/asn1/asn1.py | 6 +++---
scapy/asn1/ber.py | 4 ++--
scapy/asn1fields.py | 5 +++--
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/scapy/asn1/asn1.py b/scapy/asn1/asn1.py
index 1611d355..624a5e32 100644
--- a/scapy/asn1/asn1.py
+++ b/scapy/asn1/asn1.py
@@ -11,9 +11,9 @@ ASN.1 (Abstract Syntax Notation One)
import random
from datetime import datetime
from scapy.config import conf
-from scapy.error import Scapy_Exception,warning
+from scapy.error import Scapy_Exception, warning
from scapy.volatile import RandField
-from scapy.utils import Enum_metaclass, EnumElement
+from scapy.utils import Enum_metaclass, EnumElement, binrepr
class RandASN1Object(RandField):
def __init__(self, objlist=None):
@@ -263,7 +263,7 @@ class ASN1_BIT_STRING(ASN1_Object):
def __init__(self, val, readable=False):
if readable:
self.val_readable = val
- val = "".join(bin(ord(x))[2:].zfill(8) for x in val)
+ val = "".join(binrepr(ord(x)).zfill(8) for x in val)
self.unused_bits = 0
else:
if len(val) % 8 == 0:
diff --git a/scapy/asn1/ber.py b/scapy/asn1/ber.py
index ba431b4c..499cda61 100644
--- a/scapy/asn1/ber.py
+++ b/scapy/asn1/ber.py
@@ -10,7 +10,7 @@ Basic Encoding Rules (BER) for ASN.1
"""
from scapy.error import warning
-from scapy.utils import inet_aton,inet_ntoa
+from scapy.utils import binrepr,inet_aton,inet_ntoa
from asn1 import ASN1_Decoding_Error,ASN1_Encoding_Error,ASN1_BadTag_Decoding_Error,ASN1_Codecs,ASN1_Class_UNIVERSAL,ASN1_Error,ASN1_DECODING_ERROR,ASN1_BADTAG
##################
@@ -277,7 +277,7 @@ class BERcodec_BIT_STRING(BERcodec_Object):
unused_bits = ord(s[0])
if safe and unused_bits > 7:
raise BER_Decoding_Error("BERcodec_BIT_STRING: too many unused_bits advertised", remaining=s)
- s = "".join(bin(ord(x))[2:].zfill(8) for x in s[1:])
+ s = "".join(binrepr(ord(x)).zfill(8) for x in s[1:])
if unused_bits > 0:
s = s[:-unused_bits]
return cls.tag.asn1_object(s),t
diff --git a/scapy/asn1fields.py b/scapy/asn1fields.py
index 5cbaabd3..aed6087e 100644
--- a/scapy/asn1fields.py
+++ b/scapy/asn1fields.py
@@ -13,6 +13,7 @@ from asn1.ber import *
from asn1.mib import *
from volatile import *
from base_classes import BasePacket
+from utils import binrepr
FLEXIBLE_TAGS = False
@@ -199,7 +200,7 @@ class ASN1F_BIT_STRING(ASN1F_field):
def __init__(self, name, default, default_readable=True, context=None,
implicit_tag=None, explicit_tag=None):
if default is not None and default_readable:
- default = "".join(bin(ord(x))[2:].zfill(8) for x in default)
+ default = "".join(binrepr(ord(x)).zfill(8) for x in default)
ASN1F_field.__init__(self, name, default, context=context,
implicit_tag=implicit_tag,
explicit_tag=explicit_tag)
@@ -522,7 +523,7 @@ class ASN1F_BIT_STRING_ENCAPS(ASN1F_BIT_STRING):
s = ""
else:
s = str(x)
- s = "".join(bin(ord(x))[2:].zfill(8) for x in s)
+ s = "".join(binrepr(ord(x)).zfill(8) for x in s)
return ASN1F_BIT_STRING.i2m(self, pkt, s)
class ASN1F_FLAGS(ASN1F_BIT_STRING):
--
GitLab