2016-06-02 23 views
0

Ich habe versucht, die Methode prettyIn aus der Python-Bibliothek pyasn1.type.univ.BitString zu verwenden.pyasn1.error.PyAsn1Error: Unbekannte Bit-ID

Diese Methode nimmt eine Zeichenfolge, aber was ich gebe, in der interaktiven Python-Shell löst die Ausnahme pyasn1.error.PyAsn1Error: Unknown bit identifier. Ich suchte nach dieser Methode den Quellcode auf Google nach oben, und hier ist das, was ich gefunden habe:

def prettyIn(self, value): 
    r = [] 
    if not value: 
     return() 
    elif isinstance(value, str): 
     if value[0] == '\'': 
      if value[-2:] == '\'B': 
       for v in value[1:-2]: 
        if v == '0': 
         r.append(0) 
        elif v == '1': 
         r.append(1) 
        else: 
         raise error.PyAsn1Error(
          'Non-binary BIT STRING initializer %s' % (v,) 
          ) 
       return tuple(r) 
      elif value[-2:] == '\'H': 
       for v in value[1:-2]: 
        i = 4 
        v = int(v, 16) 
        while i: 
         i = i - 1 
         r.append((v>>i)&0x01) 
       return tuple(r) 
      else: 
       raise error.PyAsn1Error(
        'Bad BIT STRING value notation %s' % value 
        )     
     else: 
      for i in value.split(','): 
       j = self.__namedValues.getValue(i) 
       if j is None: 
        # THIS IS THE PROBLEMATIC LINE 
        raise error.PyAsn1Error(
         'Unknown bit identifier \'%s\'' % i 
         ) 
       if j >= len(r): 
        r.extend([0]*(j-len(r)+1)) 
       r[j] = 1 
      return tuple(r) 
    elif isinstance(value, (tuple, list)): 
     r = tuple(value) 
     for b in r: 
      if b and b != 1: 
       raise error.PyAsn1Error(
        'Non-binary BitString initializer \'%s\'' % (r,) 
        ) 
     return r 
    elif isinstance(value, BitString): 
     return tuple(value) 
    else: 
     raise error.PyAsn1Error(
      'Bad BitString initializer type \'%s\'' % (value,) 
      ) 

Hat jemand eine Ahnung, welche Art von String dieser Methode in nimmt? Diese Methode wird in einem Programm verwendet, das ich debuggen muss und kann nicht geändert werden.

Dank Ihrer Hilfe

Drummmer Kubuntu

Antwort

-1

sah nur diese Frage, wie ich auf sie gerade arbeite, kann ich Ihnen sagen.

http://transit.iut2.upmf-grenoble.fr/doc/python-pyasn1/pyasn1-tutorial.html#1.1.6

BIT STRING :: = '1010111011110001010110101101101 0110101010000111101010111111110'B Signaturbitmusters STRING :: =' AF01330CD932093392100B39FF00DE0'H

was bedeutet, univ.BitString (" 'AF01330CD932093392100B39FF00DE0' H ")

+0

Was bedeutet diese Antwort? Löst es das Problem, das OP hat? – luk2302

+0

Ich denke, er fragte, welche Art von Zeichenfolge univ.BitString dauert, gab ich ihm ein Beispiel und einen Link, wo ich diese Informationen gefunden. – NoOne