'Decode a complete INTEGER DER element, and re-initializes this
object with it.
@param derEle       A complete INTEGER DER element. It must start with a DER
INTEGER tag.
@param noLeftOvers  Indicate whether it is acceptable to complete the
parsing of the DER element and find that not all
bytes in derEle have been used.
@return             Index of the first unused byte in the given DER element.
Raises a ValueError exception if the DER element is not a
valid non-negative INTEGER.
Raises an IndexError exception if the DER element is too short.'

def decode(self, derEle, noLeftOvers=0):

    tlvLength = DerObject.decode(self, derEle, noLeftOvers)
    if (self.typeTag != self.typeTags['INTEGER']):
        raise ValueError('Not    a    DER    INTEGER.')
    if (bord(self.payload[0]) > 127):
        raise ValueError('Negative    INTEGER.')
    self.value = bytes_to_long(self.payload)
    return tlvLength
