1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

r1010: make the dcesrv_crypto code a bit more generic...

fix type 'cyrpto' -> 'crypto'

metze
This commit is contained in:
Stefan Metzmacher 2004-06-04 12:32:37 +00:00 committed by Gerald (Jerry) Carter
parent 49d545a820
commit 90f4777dfc
3 changed files with 22 additions and 26 deletions

View File

@ -94,7 +94,7 @@ struct dcesrv_handle {
void (*destroy)(struct dcesrv_connection *, struct dcesrv_handle *);
};
struct dcesrv_cyrpto_ops {
struct dcesrv_crypto_ops {
const char *name;
uint8 auth_type;
NTSTATUS (*start)(struct dcesrv_auth *auth);
@ -116,7 +116,7 @@ struct dcesrv_auth {
struct dcerpc_auth *auth_info;
struct {
void *private_data;
const struct dcesrv_cyrpto_ops *ops;
const struct dcesrv_crypto_ops *ops;
} crypto_ctx;
};

View File

@ -34,8 +34,6 @@
NTSTATUS dcesrv_crypto_select_type(struct dcesrv_connection *dce_conn,
struct dcesrv_auth *auth)
{
NTSTATUS status;
if (auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_INTEGRITY &&
auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_PRIVACY) {
DEBUG(2,("auth_level %d not supported in dcesrv auth\n",
@ -58,24 +56,13 @@ NTSTATUS dcesrv_crypto_select_type(struct dcesrv_connection *dce_conn,
* maybe a dcesrv_crypto_find_backend_by_type() whould be better here
* to make thinks more generic
*/
switch (auth->auth_info->auth_type) {
/* case DCERPC_AUTH_TYPE_SCHANNEL:
status = dcesrv_crypto_schannel_get_ops(dce_conn, auth);
break;
*/
case DCERPC_AUTH_TYPE_NTLMSSP:
status = dcesrv_crypto_ntlmssp_get_ops(dce_conn, auth);
break;
default:
auth->crypto_ctx.ops = dcesrv_crypto_backend_bytype(auth->auth_info->auth_type);
if (auth->crypto_ctx.ops == NULL) {
DEBUG(2,("dcesrv auth_type %d not supported\n", auth->auth_info->auth_type));
return NT_STATUS_INVALID_PARAMETER;
}
DEBUG(4,("dcesrv_crypto_startup: %s\n", nt_errstr(status)));
return status;
return NT_STATUS_OK;
}
/*
@ -139,3 +126,17 @@ void dcesrv_crypto_end(struct dcesrv_auth *auth)
{
auth->crypto_ctx.ops->end(auth);
}
const struct dcesrv_crypto_ops *dcesrv_crypto_backend_bytype(uint8_t auth_type)
{
switch (auth_type) {
#if 0
case DCERPC_AUTH_TYPE_SCHANNEL:
return dcesrv_crypto_schannel_get_ops();
#endif
case DCERPC_AUTH_TYPE_NTLMSSP:
return dcesrv_crypto_ntlmssp_get_ops();
}
return NULL;
}

View File

@ -113,7 +113,7 @@ static void dcesrv_crypto_ntlmssp_end(struct dcesrv_auth *auth)
return;
}
static const struct dcesrv_cyrpto_ops dcesrv_crypto_ntlmssp_ops = {
static const struct dcesrv_crypto_ops dcesrv_crypto_ntlmssp_ops = {
.name = "ntlmssp",
.auth_type = DCERPC_AUTH_TYPE_NTLMSSP,
.start = dcesrv_crypto_ntlmssp_start,
@ -128,12 +128,7 @@ static const struct dcesrv_cyrpto_ops dcesrv_crypto_ntlmssp_ops = {
/*
startup the cryptographic side of an authenticated dcerpc server
*/
NTSTATUS dcesrv_crypto_ntlmssp_get_ops(struct dcesrv_connection *dce_conn,
struct dcesrv_auth *auth)
const struct dcesrv_crypto_ops *dcesrv_crypto_ntlmssp_get_ops(void)
{
NTSTATUS status = NT_STATUS_OK;
auth->crypto_ctx.ops = &dcesrv_crypto_ntlmssp_ops;
return status;
return &dcesrv_crypto_ntlmssp_ops;
}