def _read_para_hip_cipher(self, code, cbit, clen, *, desc, length, version):
if clen % <NUM_LIT:2> != <NUM_LIT:0>:<EOL><INDENT>raise ProtocolError(f'<STR_LIT>')<EOL><DEDENT>_cpid = list()<EOL>for _ in range(clen // <NUM_LIT:2>):<EOL><INDENT>_cpid.append(_CIPHER_ID.get(self._read_unpack(<NUM_LIT:2>), '<STR_LIT>'))<EOL><DEDENT>hip_cipher = dict(<EOL>type=desc,<EOL>critical=cbit,<EOL>length=clen,<EOL>id=_cpid,<EOL>)<EOL>_plen = length - clen<EOL>if _plen:<EOL><INDENT>self._read_fileng(_plen)<EOL><DEDENT>return hip_cipher<EOL>
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