diff options
author | Günther Deschner <gd@samba.org> | 2009-08-26 00:31:27 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-08-27 15:55:19 +0200 |
commit | a09b627ecc446e78aa293e9e8b79c12f75a6b74e (patch) | |
tree | dfcfe41f8e165532d4b6a4b917e65608a213c96b /source3/passdb | |
parent | 7c972d83d268a277501626122ab1c7cdddc0f4a3 (diff) | |
download | samba-a09b627ecc446e78aa293e9e8b79c12f75a6b74e.tar.gz samba-a09b627ecc446e78aa293e9e8b79c12f75a6b74e.tar.bz2 samba-a09b627ecc446e78aa293e9e8b79c12f75a6b74e.zip |
s3-schannel: add simple wrappers to fetch and store schannel auth info.
Guenther
Diffstat (limited to 'source3/passdb')
-rw-r--r-- | source3/passdb/secrets.c | 1 | ||||
-rw-r--r-- | source3/passdb/secrets_schannel.c | 68 |
2 files changed, 69 insertions, 0 deletions
diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index ee0dcaf42c..0a3871e620 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -24,6 +24,7 @@ #include "includes.h" #include "../libcli/auth/libcli_auth.h" + #undef DBGC_CLASS #define DBGC_CLASS DBGC_PASSDB diff --git a/source3/passdb/secrets_schannel.c b/source3/passdb/secrets_schannel.c new file mode 100644 index 0000000000..84a860ee6a --- /dev/null +++ b/source3/passdb/secrets_schannel.c @@ -0,0 +1,68 @@ +/* + Unix SMB/CIFS implementation. + Copyright (C) Guenther Deschner 2009 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "../libcli/auth/libcli_auth.h" +#include "../libcli/auth/schannel_state.h" + +/****************************************************************************** + Wrapper around schannel_fetch_session_key_tdb() + Note we must be root here. +*******************************************************************************/ + +NTSTATUS schannel_fetch_session_key(TALLOC_CTX *mem_ctx, + const char *computer_name, + struct netlogon_creds_CredentialState **pcreds) +{ + struct tdb_context *tdb; + NTSTATUS status; + + tdb = open_schannel_session_store(mem_ctx); + if (!tdb) { + return NT_STATUS_ACCESS_DENIED; + } + + status = schannel_fetch_session_key_tdb(tdb, mem_ctx, computer_name, pcreds); + + tdb_close(tdb); + + return status; +} + +/****************************************************************************** + Wrapper around schannel_store_session_key_tdb() + Note we must be root here. +*******************************************************************************/ + +NTSTATUS schannel_store_session_key(TALLOC_CTX *mem_ctx, + struct netlogon_creds_CredentialState *creds) +{ + struct tdb_context *tdb; + NTSTATUS status; + + tdb = open_schannel_session_store(mem_ctx); + if (!tdb) { + return NT_STATUS_ACCESS_DENIED; + } + + status = schannel_store_session_key_tdb(tdb, mem_ctx, creds); + + tdb_close(tdb); + + return status; +} |