diff options
author | amw <none@none> | 2007-10-25 16:34:29 -0700 |
---|---|---|
committer | amw <none@none> | 2007-10-25 16:34:29 -0700 |
commit | da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0 (patch) | |
tree | 65be91fb78a6a66183197595333f2e8aafb4640a /usr/src/uts/common/smbsrv/netrauth.h | |
parent | e845e33dd0d1aea22db7edaa8c7d43955d24609b (diff) | |
download | illumos-joyent-da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0.tar.gz |
PSARC/2007/218 caller_context_t in all VOPs
PSARC/2007/227 VFS Feature Registration and ACL on Create
PSARC/2007/244 ZFS Case-insensitive support
PSARC/2007/315 Extensible Attribute Interfaces
PSARC/2007/394 ls(1) new command line options '-/' and '-%': CIFS system attributes support
PSARC/2007/403 Modified Access Checks for CIFS
PSARC/2007/410 Add system attribute support to chmod(1)
PSARC/2007/432 CIFS system attributes support for cp(1), pack(1), unpack(1), compress(1) and uncompress(1)
PSARC/2007/444 Rescind SETTABLE Attribute
PSARC/2007/459 CIFS system attributes support for cpio(1), pax(1), tar(1)
PSARC/2007/546 Update utilities to match CIFS system attributes changes.
PSARC/2007/560 ZFS sharesmb property
4890717 want append-only files
6417428 Case-insensitive file system name lookup to support CIFS
6417435 DOS attributes and additional timestamps to support for CIFS
6417442 File system quarantined and modified attributes to support an integrated Anti-Virus service
6417453 FS boolean property for rejecting/allowing invalid UTF-8 sequences in file names
6473733 RFE: Need support for open-deny modes
6473755 RFE: Need ability to reconcile oplock and delegation conflicts
6494624 sharemgr needs to support CIFS shares better
6546705 All vnode operations need to pass caller_context_t
6546706 Need VOP_SETATTR/VOP_GETATTR to support new, optional attributes
6546893 Solaris system attribute support
6550962 ZFS ACL inheritance needs to be enhanced to support Automatic Inheritance
6553589 RFE: VFS Feature Registration facility
6553770 RFE: ZFS support for ACL-on-CREATE (PSARC 2007/227)
6565581 ls(1) should support file system attributes proposed in PSARC/2007/315
6566784 NTFS streams are not copied along with the files.
6576205 cp(1), pack(1) and compress(1) should support file system attributes proposed in PSARC/2007/315
6578875 RFE: kernel interfaces for nbmand need improvement
6578883 RFE: VOP_SHRLOCK needs additional access types
6578885 chmod(1) should support file system attributes proposed in PSARC/2007/315
6578886 RFE: disallow nbmand state to change on remount
6583349 ACL parser needs to support audit/alarm ACE types
6590347 tar(1) should support filesystem attributes proposed in PSARC/2007/315
6597357 *tar* xv@ doesn't show the hidden directory even though it is restored
6597360 *tar* should re-init xattr info if openat() fails during extraction of and extended attribute
6597368 *tar* cannot restore hard linked extended attributes
6597374 *tar* doesn't display "x " when hard linked attributes are restored
6597375 *tar* extended attribute header off by one
6614861 *cpio* incorrectly archives extended system attributes with -@
6614896 *pax* incorrectly archives extended system attributes with -@
6615225 *tar* incorrectly archives extended system attributes with -@
6617183 CIFS Service - PSARC 2006/715
Diffstat (limited to 'usr/src/uts/common/smbsrv/netrauth.h')
-rw-r--r-- | usr/src/uts/common/smbsrv/netrauth.h | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/usr/src/uts/common/smbsrv/netrauth.h b/usr/src/uts/common/smbsrv/netrauth.h new file mode 100644 index 0000000000..075bbba2d2 --- /dev/null +++ b/usr/src/uts/common/smbsrv/netrauth.h @@ -0,0 +1,162 @@ +/* + * CDDL HEADER START + * + * The contents of this file are subject to the terms of the + * Common Development and Distribution License (the "License"). + * You may not use this file except in compliance with the License. + * + * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE + * or http://www.opensolaris.org/os/licensing. + * See the License for the specific language governing permissions + * and limitations under the License. + * + * When distributing Covered Code, include this CDDL HEADER in each + * file and include the License file at usr/src/OPENSOLARIS.LICENSE. + * If applicable, add the following below this CDDL HEADER, with the + * fields enclosed by brackets "[]" replaced with your own identifying + * information: Portions Copyright [yyyy] [name of copyright owner] + * + * CDDL HEADER END + */ +/* + * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#ifndef _SMBSRV_NETRAUTH_H +#define _SMBSRV_NETRAUTH_H + +#pragma ident "%Z%%M% %I% %E% SMI" + + +/* + * Interface definitions for the NETR remote authentication and logon + * services. + */ + +#include <sys/types.h> +#include <smbsrv/wintypes.h> +#include <smbsrv/mlsvc.h> + +#ifndef _KERNEL +#include <syslog.h> +#endif /* _KERNEL */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * See also netlogon.ndl. + */ +#define NETR_WKSTA_TRUST_ACCOUNT_TYPE 0x02 +#define NETR_DOMAIN_TRUST_ACCOUNT_TYPE 0x04 + +/* + * Negotiation flags for challenge/response authentication. + * The extra flag (0x40000000) was added in SP4. + */ +#define NETR_NEGOTIATE_FLAGS 0x000001FF +#define NETR_NEGOTIATE_SP4_FLAG 0x40000000 + +#define NETR_SESSION_KEY_SZ 8 +#define NETR_CRED_DATA_SZ 8 +#define NETR_OWF_PASSWORD_SZ 16 + + +/* + * SAM logon levels: interactive and network. + */ +#define NETR_INTERACTIVE_LOGON 0x01 +#define NETR_NETWORK_LOGON 0x02 + + +/* + * SAM logon validation levels. + */ +#define NETR_VALIDATION_LEVEL3 0x03 + + +/* + * This is a duplicate of the netr_credential + * from netlogon.ndl. + */ +typedef struct netr_cred { + BYTE data[NETR_CRED_DATA_SZ]; +} netr_cred_t; + + + +#define NETR_FLG_NULL 0x00000001 +#define NETR_FLG_VALID 0x00000001 +#define NETR_FLG_INIT 0x00000002 + + +typedef struct netr_info { + DWORD flags; + char server[MLSVC_DOMAIN_NAME_MAX * 2]; + char hostname[MLSVC_DOMAIN_NAME_MAX * 2]; + netr_cred_t client_challenge; + netr_cred_t server_challenge; + netr_cred_t client_credential; + netr_cred_t server_credential; + BYTE session_key[NETR_SESSION_KEY_SZ]; + BYTE password[MLSVC_MACHINE_ACCT_PASSWD_MAX]; + time_t timestamp; +} netr_info_t; + +/* + * netr_client_t flags + * + * NETR_CFLG_ANON Anonymous connection + * NETR_CFLG_LOCAL Local user + * NETR_CFLG_DOMAIN Domain user + */ +#define NETR_CFLG_ANON 0x01 +#define NETR_CFLG_LOCAL 0x02 +#define NETR_CFLG_DOMAIN 0x04 + + +typedef struct netr_client { + uint16_t logon_level; + char *username; + char *domain; + char *workstation; + uint32_t ipaddr; + struct { + uint32_t challenge_key_len; + uint8_t *challenge_key_val; + } challenge_key; + struct { + uint32_t nt_password_len; + uint8_t *nt_password_val; + } nt_password; + struct { + uint32_t lm_password_len; + uint8_t *lm_password_val; + } lm_password; + uint32_t logon_id; + int native_os; + int native_lm; + uint32_t local_ipaddr; + uint16_t local_port; + uint32_t flags; +} netr_client_t; + + +/* + * NETLOGON private interface. + */ +int netr_gen_session_key(netr_info_t *netr_info); + +int netr_gen_credentials(BYTE *session_key, netr_cred_t *challenge, + DWORD timestamp, netr_cred_t *out_cred); + + +#define NETR_A2H(c) (isdigit(c)) ? ((c) - '0') : ((c) - 'A' + 10) + +#ifdef __cplusplus +} +#endif + +#endif /* _SMBSRV_NETRAUTH_H */ |