Example #1
0
def send_restart_request():
    #Generate Restart Request <STX>0R035<Init Msg><crc><ETX>
    my_packet = "0R035IN1RS " + time.strftime(
        "%m%d%Y %H%M%S") + " MGATE SIMULTR"
    print("Sending Restart Request...")
    print(my_packet)
    #Calculate CRC
    x = str(padded_hex(CRC16Kermit().calculate(my_packet), 4)).upper()
    x = x[2:]
    calc_crc = x[2:] + x[:2]
    #Send Bytes out over serial port
    ser.write(b'\x02')  #STX
    for i in range(0, len(my_packet)):
        ser.write(bytes(my_packet[i], 'utf_8'))
    for i in range(0, len(calc_crc)):
        ser.write(bytes(calc_crc[i], 'utf_8'))
    ser.write(b'\x03')  #ETX
Example #2
0
def send_restart_request():
    #Generate Restart Request <STX>0R035<Init Msg><crc><ETX>
    my_packet = "0R035IN1RS " + time.strftime(
        "%m%d%Y %H%M%S") + " MGATE SIMULTR"
    print("Sending Restart Request...")
    print(my_packet)
    #Calculate CRC
    x = str(padded_hex(CRC16Kermit().calculate(my_packet), 4)).upper()
    x = x[2:]
    calc_crc = x[2:] + x[:2]
    my_packet = my_packet + calc_crc
    b_array = bytearray()
    b_array.extend(my_packet)
    #Send Bytes out over serial port
    ser.write(b'\x02')  #STX
    ser.write(b_array)
    ser.write(b'\x03')  #ETX
Example #3
0
def send_transponder_message(ssn):
    #Generate Tag Data Message <STX><SSN>D113<Transp Msg><crc><ETX>
    i = random.randint(0, 4)
    #Randomly assign a tag to the message
    tag_msg = fake_tag_data_array[i]
    #Applying nMod8+1 to SSN per mGate ICD
    my_packet = str((int(ssn) % 8) + 1) + "D" + str(len(tag_msg)) + tag_msg
    print("Sending Transponder Message...")
    print(my_packet)
    #Calculate CRC
    x = str(padded_hex(CRC16Kermit().calculate(str(my_packet)), 4)).upper()
    x = x[2:]
    calc_crc = x[2:] + x[:2]
    my_packet = my_packet + calc_crc
    b_array = bytearray()
    b_array.extend(my_packet)
    #Send Bytes out over serial port
    ser.write(b'\x02')  #STX
    ser.write(b_array)
    ser.write(b'\x03')  #ETX
Example #4
0
     payload_length = payload_length + out.decode("utf-8")
     byte_array = byte_array + out.decode("utf-8")
     if pl_count == 3:
         #print("Payload Length: " + payload_length)
         my_state = "CRC"
 elif my_state == "CRC":
     crc_count = crc_count + 1
     crc = crc + out.decode("utf-8")
     crc_array = crc_array + out.decode("utf-8")
     if crc_count == 4:
         #print("Received CRC: " + crc)
         my_state = "WAIT_ETX_CRQ"
 elif my_state == "WAIT_ETX_CRQ":
     if out == b'\x03':
         #print("Received ETX - End of CRQ packet")
         x = str(padded_hex(CRC16Kermit().calculate(byte_array),
                            4)).upper()
         x = x[2:]
         calc_crc = x[2:] + x[:2]
         #print("Calculated CRC: " + calc_crc)
         if crc_array == calc_crc:
             #print("CRQ Packet CRC Correct")
             ser.write(b'\x02')
             ser.write(b'0')
             ser.write(b'0')
             ser.write(b'0')
             ser.write(b'0')
             ser.write(b'A')
             ser.write(b'0')
             ser.write(b'0')
             ser.write(b'0')
Example #5
0
from PyCRC.CRC16SICK import CRC16SICK
from PyCRC.CRC32 import CRC32
from PyCRC.CRCCCITT import CRCCCITT

if __name__ == "__main__":
    # for hex strings use bytearray to transform to a bytes sequence
    # bytearray.fromhex('056405c00001000c') -> b'\x05d\x05\xc0\x00\x01\x00\x0c'

    # HEXADECIMAL EXAMPLE
    target = b'\x05d\x05\xc0\x00\x01\x00\x0c'

    # DECIMAL EXAMPLE
    target = '12341234'

    print("The results for {} are".format(target))
    print("{:20s} {:10X}".format('CRC-CCITT(XModem)',
                                 CRCCCITT().calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0xFFFF)',
                                 CRCCCITT(version="FFFF").calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0x1D0F)',
                                 CRCCCITT(version="1D0F").calculate(target)))
    print("{:10s} {:20X}".format('CRC-16', CRC16().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Modbus)',
                                 CRC16(modbus_flag=True).calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (SICK)',
                                 CRC16SICK().calculate(target)))
    print("{:20s} {:10X}".format('CRC-DNP', CRC16DNP().calculate(target)))
    print("{:20s} {:10X}".format('CRC-32', CRC32().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Kermit)',
                                 CRC16Kermit().calculate(target)))
Example #6
0
 def setUp(self):
     self.crc = CRC16Kermit()
Example #7
0
    print("The results for {} are".format(target))
    print("{:20s} {:10X}".format('CRC-CCITT(XModem)',
                                 CRCCCITT().calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0xFFFF)',
                                 CRCCCITT(version="FFFF").calculate(target)))
    print("{:20s} {:10x}".format('CRC-CCITT(0x1D0F)',
                                 CRCCCITT(version="1D0F").calculate(target)))
    print("{:20s} {:10X}".format('CRC-DNP', CRC16DNP().calculate(target)))
    print("{:20s} {:10X}".format('CRC-32', CRC32().calculate(target)))
    print("{:10s} {:20X}".format('CRC-16', CRC16().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Modbus)',
                                 CRC16(modbus_flag=True).calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (SICK)',
                                 CRC16SICK().calculate(target)))
    print("{:20s} {:10X}".format('CRC-16 (Kermit)',
                                 CRC16Kermit().calculate(target)))

    tests = [
        {
            'val': '$TEA',
            'Csum': 'A4B9'
        },
        {
            'val': '$TEA,027,028,025,000,',
            'Csum': 'D79C'
        },
        {
            'val': '$PRA',
            'Csum': '95F7'
        },
        {
Example #8
0
                 link_state = 0
 elif my_state == "CRC":
     crc_count = crc_count + 1
     crc_array = crc_array + rx_byte.decode("utf-8")
     #Terminator field is a 16 bit CCITT CRC (Kermit) and has length of 4 bytes
     if crc_count == 4:
         if link_state == 0:
             my_state = "WAIT_ETX_RC"
         else:
             my_state = "WAIT_ETX_ACK"
         start_time = time.time()
 elif my_state == "WAIT_ETX_RC":
     if rx_byte == b'\x03':
         #Got ETX so let's calculate CRC and compare it to terminator field
         x = str(
             padded_hex(CRC16Kermit().calculate(str(byte_array)),
                        4)).upper()
         x = x[2:]
         calc_crc = x[2:] + x[:2]
         if calc_crc == crc_array:
             link_state = 1
             print("Received Restart Confirmation...")
             print(byte_array)
             print("Link Established!")
             time.sleep(1)
             main_ssn = 0
             send_transponder_message(main_ssn)
             my_state = "GET_ACK"
 elif my_state == "WAIT_ETX_ACK":
     if rx_byte == b'\x03':
         #Got ETX so let's calculate CRC and compare it to terminator field
Example #9
0
                    help='use to compare with given crc')
args = parser.parse_args()

if __name__ == "__main__":
    data = args.data_to_generate_crc

    if args.crc_type == 'crc16':
        calculated_crc = CRC16().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16dnp':
        calculated_crc = CRC16DNP().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16kermit':
        calculated_crc = CRC16Kermit().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc16sick':
        calculated_crc = CRC16SICK().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crc32':
        calculated_crc = CRC32().calculate(data)
        print("CRC : ", calculated_crc)

    elif args.crc_type == 'crcccitt':
        calculated_crc = CRCCCITT().calculate(data)
        print("CRC : ", calculated_crc)

    if args.compare:
Example #10
0
 def calc(input):
     return CRC16Kermit().calculate(input)
Example #11
0
 def calc(data):
     return CRC16Kermit().calculate(data)
Example #12
0
    :return: 加密后的结果
    """
    tmp_time = 1
    m = hashlib.md5()
    m.update(plaintext)
    while tmp_time < time:
        # print m.hexdigest()
        m.update(m.hexdigest())
        tmp_time += 1
    return m.hexdigest()


if __name__ == "__main__":
    for soft_name in sys.argv[1].split(','):
        print("apk name:%s" % soft_name)
        with open(soft_name, "rb") as f:
            data = f.read()
            print("%s length = %s" % (soft_name, len(data)))
            print("md5:%s\n" % md5(data))
            print("md5_hash:%s\n" % hex(CRC32().calculate(md5(data))))
            crc32 = CRC32().calculate(data)
            crc32_hex = hex(CRC32().calculate(data))
            crc32_hex2 = hex(CRC32().calculate(crc32))
            print("crc32:{ten}, {hex}, {hex2}\n".format(ten = crc32, hex=crc32_hex, hex2=crc32_hex2))
            print("CRC16:%s\n" % CRC16().calculate(data))
            print("CRC16DNP:%s\n" % CRC16DNP().calculate(data))
            print("CRC16Kermit:%s\n" % CRC16Kermit().calculate(data))
            print("CRC16SICK:%s\n" % CRC16SICK().calculate(data))
            print("CRCCCITT:%s\n" % CRCCCITT().calculate(data))
    input()
Example #13
0
print("%.3fMHz" % radio.MHz)

radio.PaSelect = 0  # check schematic of your board, is RFO or PABOOST connected?
print("PaSelect:%u" % radio.PaSelect)
lora.SpreadingFactor = 8
print("SpreadingFactor:%u" % lora.SpreadingFactor)

input = '123456789'
#print(CRCCCITT().calculate(input))
c = CRCCCITT().calculate(input)  # CRC-CCITT (Xmodem)
print "CCITT :%x " % c
c = CRC16().calculate(input)  # CRC-16
print "CRC16 :%x " % c
c = CRC16DNP().calculate(input)  # CRC-DNP
print "CRC16DNP :%x " % c
c = CRC16Kermit().calculate(input)  # CRC-CCITT (Kermit)
print "CRC16Kermit:%x " % c
c = CRC16SICK().calculate(input)  # CRC-16 (Sick)
print "CRC16SICK:%x " % c

buf = [ord(ch) for ch in input]
print "tx buf:",
print buf
stringForCRC = array.array('B', buf).tostring()
print "tx stringForCRC :",
print stringForCRC
c = CRCCCITT().calculate(stringForCRC)  # CRC-CCITT (Xmodem)
print "tx CCITT :%x (buf)" % c
print "c-type:",
print type(c)
buf.append(c >> 8)
Example #14
0
from PyCRC.CRC16 import CRC16
from PyCRC.CRC16DNP import CRC16DNP
from PyCRC.CRC16SICK import CRC16SICK
from PyCRC.CRC16Kermit import CRC16Kermit
from PyCRC.CRC32 import CRC32
from PyCRC.CRCCCITT import CRCCCITT

import zlib
import crc16

crc_table = dict()
crc_table["crc16"] = (CRC16().calculate, dict())
crc_table["crc16dnp"] = (CRC16DNP().calculate, dict())
crc_table["crc16sick"] = (CRC16SICK().calculate, dict())
crc_table["crc16kermit"] = (CRC16Kermit().calculate, dict())
crc_table["crc16xmodem"] = (crc16.crc16xmodem, dict())
crc_table["adler32"] = (zlib.adler32, dict())
crc_table["crc32"] = (zlib.crc32, dict())

import fileinput
for line in fileinput.input():
    line = line.rstrip()
    for crc_type in crc_table:
        crc = crc_table[crc_type][0](line)
        if (crc in crc_table[crc_type][1]):
            crc_table[crc_type][1][crc] += 1
        else:
            crc_table[crc_type][1][crc] = 0
import operator
for crc_type in crc_table:
    print crc_type