コード例 #1
0
ファイル: mac802154.py プロジェクト: yanchdh/openthread
    def _parse_aux_sec_header(self, data):
        security_control, frame_counter = struct.unpack("<BL", data.read(5))

        security_level = security_control & 0x07
        key_id_mode = (security_control & 0x18) >> 3

        if key_id_mode == 0:
            key_id = data.read(9)
        elif key_id_mode == 1:
            key_id = data.read(1)
        elif key_id_mode == 2:
            key_id = data.read(5)
        else:
            key_source = None
            key_index = None

        return AuxiliarySecurityHeader(key_id_mode, security_level, frame_counter, key_id, big_endian=False)
コード例 #2
0
ファイル: mac802154.py プロジェクト: zhanglongxia/openthread
    def _parse_aux_sec_header(self, data):
        security_control, frame_counter = struct.unpack("<BL", data.read(5))

        security_level = security_control & 0x07
        key_id_mode = (security_control & 0x18) >> 3

        if key_id_mode == 0:
            raise KeyIdMode0Exception
        elif key_id_mode == 1:
            key_id = data.read(1)
        elif key_id_mode == 2:
            key_id = data.read(5)
        elif key_id_mode == 3:
            key_id = data.read(9)
        else:
            pass

        return AuxiliarySecurityHeader(
            key_id_mode,
            security_level,
            frame_counter,
            key_id,
            big_endian=False,
        )