# Method GSSAPI.Context()->wrap()

Method wrap

  `string wrap(string message, void|int encrypt, void|int qop)`

Description

  Calculates a MIC (message integrity checksum) for the given message, and returns it together with the message, which is optionally encrypted. The returned value can be verified and (if applicable) decrypted by the receiver using unwrap or some other `GSS_Unwrap` wrapper.

  This wraps `GSS_Wrap` according to RFC 2743 section 2.3.3.

  This function requires that the context is established, or that the early per-message protection service is available (c.f. GSSAPI.PROT_READY_FLAG. If not, a GSSAPI.MissingServicesError is thrown (but the context is not closed).

Parameter `message`

  The message to be wrapped. It may be of zero length.

Parameter `encrypt`

  Set to nonzero to request that the message is encrypted. Otherwise only a MIC is calculated and the returned value contains the unencrypted message.

  If this is set and the confidentiality service (c.f. GSSAPI.CONF_FLAG) is required then the returned value is always encrypted. Otherwise it might not be encrypted anyway, and a call to last_confidential will tell if it is or not.

Parameter `qop`

  The quality of protection. This is a mechanism-specific value that lets the user direct how the underlying mechanism calculates the MIC. See RFC 2743, section 1.2.4.

  Zero or left out means use the default method.

Note

  This function sets the value returned by last_confidential.

See also

  wrap_size_limit