// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package rdpclient.ntlmssp; public interface NtlmConstants { /** * Attribute type: Indicates that this is the last AV_PAIR in the list. AvLen * MUST be 0. This type of information MUST be present in the AV pair list. */ public final static int MSV_AV_EOL = 0x0000; /** * Attribute type: The server's NetBIOS computer name. The name MUST be in * Unicode, and is not null-terminated. This type of information MUST be * present in the AV_pair list. */ public final static int MSV_AV_NETBIOS_COMPUTER_NAME = 0x0001; /** * Attribute type: The server's NetBIOS domain name. The name MUST be in * Unicode, and is not null-terminated. This type of information MUST be * present in the AV_pair list. */ public final static int MSV_AV_NETBIOS_DOMAIN_NAME = 0x0002; /** * Attribute type: The fully qualified domain name (FQDN (1)) of the computer. * The name MUST be in Unicode, and is not null-terminated. */ public final static int MSV_AV_DNS_COMPUTER_NAME = 0x0003; /** * Attribute type: The FQDN of the domain. The name MUST be in Unicode, and is * not null-terminated. */ public final static int MSV_AV_DNS_DOMAIN_NAME = 0x0004; /** * Attribute type: The FQDN of the forest. The name MUST be in Unicode, and is * not null-terminated. */ public final static int MSV_AV_DNS_TREE_NAME = 0x0005; /** * Attribute type: A 32-bit value indicating server or client configuration. * * <li>0x00000001: indicates to the client that the account authentication is * constrained. * * <li>0x00000002: indicates that the client is providing message integrity in * the MIC field (section 2.2.1.3) in the AUTHENTICATE_MESSAGE. * * <li>0x00000004: indicates that the client is providing a target SPN * generated from an untrusted source. **/ public final static int MSV_AV_FLAGS = 0x0006; public static final int MSV_AV_FLAGS_MESSAGE_INTEGRITY_CHECK = 0x00000002; /** * Attribute type: A FILETIME structure ([MS-DTYP] section 2.3.3) in * little-endian byte order that contains the server local time. */ public final static int MSV_AV_TIMESTAMP = 0x0007; /** * Attribute type: A Single_Host_Data (section 2.2.2.2) structure. The Value * field contains a platform-specific blob, as well as a MachineID created at * computer startup to identify the calling machine.<15> */ public final static int MSV_AV_SINGLE_HOST = 0x0008; /** * Attribute type: The SPN of the target server. The name MUST be in Unicode * and is not null-terminated.<16> */ public final static int MSV_AV_TARGET_NAME = 0x0009; /** * Attribute type: A channel bindings hash. The Value field contains an MD5 * hash ([RFC4121] section 4.1.1.2) of a gss_channel_bindings_struct * ([RFC2744] section 3.11). An all-zero value of the hash is used to indicate * absence of channel bindings. */ public final static int MSV_AV_CHANNEL_BINDINGS = 0x000A; /** * Signature of NTLMSSP blob. */ public static final String NTLMSSP = "NTLMSSP"; public static final String GSS_RDP_SERVICE_NAME = "TERMSRV"; /** * NTLM message type: NEGOTIATE. */ public static final int NEGOTIATE = 0x00000001; /** * NTLM message type: CHALLENGE. */ public static final int CHALLENGE = 0x00000002; /** * NTLM message type: NTLMSSP_AUTH. */ public static final int NTLMSSP_AUTH = 0x00000003; public static final String OID_SPNEGO = "1.3.6.1.5.5.2"; public static final String OID_KERBEROS5 = "1.2.840.113554.1.2.2"; public static final String OID_MSKERBEROS5 = "1.2.840.48018.1.2.2"; public static final String OID_KRB5USERTOUSER = "1.2.840.113554.1.2.2.3"; public static final String OID_NTLMSSP = "1.3.6.1.4.1.311.2.2.10"; /** * Magic constant used in calculation of Lan Manager response. */ public static final String LM_MAGIC = "KGS!@#$%"; /** * Magic constant used in generation of client signing key. */ public static final String CLIENT_SIGN_MAGIC = "session key to client-to-server signing key magic constant"; /** * Magic constant used in generation of client sealing key. */ public static final String CLIENT_SEAL_MAGIC = "session key to client-to-server sealing key magic constant"; public static final String SERVER_SIGN_MAGIC = "session key to server-to-client signing key magic constant"; public static final String SERVER_SEAL_MAGIC = "session key to server-to-client sealing key magic constant"; /** * In Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, * Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows * 8.1, and Windows Server 2012 R2, the maximum lifetime of challenge is 36 hours. */ public static final int CHALLENGE_MAX_LIFETIME = 36 * 60 * 60; }