/// <summary>
 /// Compute RC4HMAC.
 /// </summary>
 /// <param name="key">The key to do RC4HMAC.</param>
 /// <param name="macContent">The content to do HMAC.</param>
 /// <param name="data">The data to be computed.</param>
 /// <param name="isExport">True for EncryptionType.RC4_HMAC_EXP, false for EncryptionType.RC4_HMAC.</param>
 /// <returns>The computed result.</returns>
 public static byte[] RC4HMAC(byte[] key, byte[] macContent, byte[] data, bool isExport)
 {
     byte[] Kseq = null;
     if (isExport)   // EncryptionType.RC4_HMAC_EXP
     {
         // Kseq = HMAC(Kss, "fortybits", (int32)0);
         Kseq = KerberosUtility.HMAC(key, KerberosConstValue.FORTY_BITS, 0);
         // memset(Kseq+7, 0xab, 9)
         for (int i = 0; i < 9; ++i)
         {
             Kseq[i + 7] = 0xab;
         }
     }
     else            // EncryptionType.RC4_HMAC
     {
         Kseq = KerberosUtility.HMAC(key, 0);
     }
     Kseq = HMAC(Kseq, macContent);
     return(KerberosUtility.RC4(Kseq, data));
 }