def _read_para_hip_cipher(self, code, cbit, clen, *, desc, length, version):
        """Read HIP HIP_CIPHER parameter.

        Structure of HIP HIP_CIPHER parameter [RFC 7401]:
             0                   1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Type              |             Length            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |          Cipher ID #1         |          Cipher ID #2         |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |          Cipher ID #n         |             Padding           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                    Description
              0           0     hip_cipher.type         Parameter Type
              1          15     hip_cipher.critical     Critical Bit
              2          16     hip_cipher.length       Length of Contents
              4          32     hip_cipher.id           Cipher ID
                                ............
              ?           ?     -                       Padding

        """
        if clen % 2 != 0:
            raise ProtocolError(f'HIPv{version}: [Parano {code}] invalid format')

        _cpid = list()
        for _ in range(clen // 2):
            _cpid.append(_CIPHER_ID.get(self._read_unpack(2), 'Unassigned'))

        hip_cipher = dict(
            type=desc,
            critical=cbit,
            length=clen,
            id=_cpid,
        )

        _plen = length - clen
        if _plen:
            self._read_fileng(_plen)

        return hip_cipher
Read HIP HIP_CIPHER parameter.

        Structure of HIP HIP_CIPHER parameter [RFC 7401]:
             0                   1                   2                   3
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |             Type              |             Length            |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |          Cipher ID #1         |          Cipher ID #2         |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |          Cipher ID #n         |             Padding           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                    Description
              0           0     hip_cipher.type         Parameter Type
              1          15     hip_cipher.critical     Critical Bit
              2          16     hip_cipher.length       Length of Contents
              4          32     hip_cipher.id           Cipher ID
                                ............
              ?           ?     -                       Padding