예제 #1
0
  /**
   * Intialise a packet at the Secure layer
   *
   * @param flags Encryption flags
   * @param length Length of packet
   * @return Intialised packet
   * @throws RdesktopException
   */
  public RdpPacket_Localised init(int flags, int length) throws RdesktopException {
    int headerlength = 0;
    RdpPacket_Localised buffer;

    if (!this.licenceIssued) headerlength = ((flags & SEC_ENCRYPT) != 0) ? 12 : 4;
    else headerlength = ((flags & SEC_ENCRYPT) != 0) ? 12 : 0;

    buffer = McsLayer.init(length + headerlength);
    buffer.pushLayer(RdpPacket.SECURE_HEADER, headerlength);
    // buffer.setHeader(RdpPacket_Localised.SECURE_HEADER);
    // buffer.incrementPosition(headerlength);
    // buffer.setStart(buffer.getPosition());
    return buffer;
  }