code: public byte[] unwrap(byte []inBuf, int off, int len, MessageProp prop)
          throws GSSException {
  
          checkContext();
  
          logger.debug("enter unwrap");
  
          byte [] token = null;
  
          /*
           * see if the token is a straight SSL packet or
           * one of ours made by wrap using get_mic
           */
          if (inBuf[off] == GSI_WRAP &&
              inBuf[off+1] == 3 &&
              inBuf[off+2] == 0) {
              throw new GSSException(GSSException.UNAVAILABLE);
  /*DEL
  
              int micLen = SSLUtil.toShort(inBuf[off+3], inBuf[off+4]);
              int msgLen = len - 5 - micLen;
  
              if (micLen > len-5 || msgLen < 0) {
                  throw new GSSException(GSSException.DEFECTIVE_TOKEN);
              }
  
              verifyMIC(inBuf, off+5, micLen,
                        inBuf, off+5+micLen, msgLen,
                        null);
  
              if (prop != null) {
                  prop.setPrivacy(false);
                  prop.setQOP(GSSConstants.GSI_BIG);
              }
  
              // extract the data
              token = new byte[msgLen];
              System.arraycopy(inBuf, off+5+micLen, token, 0, msgLen);
  */
  
          } else {
              token = unwrap(inBuf, off, len);
  
              if (prop != null) {
                  prop.setPrivacy(this.encryption);
                  prop.setQOP(0);
              }
          }
  
          logger.debug("exit unwrap");
          return token;
      }
docs: Unwraps a token generated by <code>wrap</code> method on the other side of the context.