mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
r1010: make the dcesrv_crypto code a bit more generic...
fix type 'cyrpto' -> 'crypto' metze
This commit is contained in:
parent
49d545a820
commit
90f4777dfc
@ -94,7 +94,7 @@ struct dcesrv_handle {
|
|||||||
void (*destroy)(struct dcesrv_connection *, struct dcesrv_handle *);
|
void (*destroy)(struct dcesrv_connection *, struct dcesrv_handle *);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dcesrv_cyrpto_ops {
|
struct dcesrv_crypto_ops {
|
||||||
const char *name;
|
const char *name;
|
||||||
uint8 auth_type;
|
uint8 auth_type;
|
||||||
NTSTATUS (*start)(struct dcesrv_auth *auth);
|
NTSTATUS (*start)(struct dcesrv_auth *auth);
|
||||||
@ -116,7 +116,7 @@ struct dcesrv_auth {
|
|||||||
struct dcerpc_auth *auth_info;
|
struct dcerpc_auth *auth_info;
|
||||||
struct {
|
struct {
|
||||||
void *private_data;
|
void *private_data;
|
||||||
const struct dcesrv_cyrpto_ops *ops;
|
const struct dcesrv_crypto_ops *ops;
|
||||||
} crypto_ctx;
|
} crypto_ctx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,8 +34,6 @@
|
|||||||
NTSTATUS dcesrv_crypto_select_type(struct dcesrv_connection *dce_conn,
|
NTSTATUS dcesrv_crypto_select_type(struct dcesrv_connection *dce_conn,
|
||||||
struct dcesrv_auth *auth)
|
struct dcesrv_auth *auth)
|
||||||
{
|
{
|
||||||
NTSTATUS status;
|
|
||||||
|
|
||||||
if (auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_INTEGRITY &&
|
if (auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_INTEGRITY &&
|
||||||
auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_PRIVACY) {
|
auth->auth_info->auth_level != DCERPC_AUTH_LEVEL_PRIVACY) {
|
||||||
DEBUG(2,("auth_level %d not supported in dcesrv auth\n",
|
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
|
* maybe a dcesrv_crypto_find_backend_by_type() whould be better here
|
||||||
* to make thinks more generic
|
* to make thinks more generic
|
||||||
*/
|
*/
|
||||||
switch (auth->auth_info->auth_type) {
|
auth->crypto_ctx.ops = dcesrv_crypto_backend_bytype(auth->auth_info->auth_type);
|
||||||
|
if (auth->crypto_ctx.ops == NULL) {
|
||||||
/* 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:
|
|
||||||
DEBUG(2,("dcesrv auth_type %d not supported\n", auth->auth_info->auth_type));
|
DEBUG(2,("dcesrv auth_type %d not supported\n", auth->auth_info->auth_type));
|
||||||
return NT_STATUS_INVALID_PARAMETER;
|
return NT_STATUS_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEBUG(4,("dcesrv_crypto_startup: %s\n", nt_errstr(status)));
|
return NT_STATUS_OK;
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -139,3 +126,17 @@ void dcesrv_crypto_end(struct dcesrv_auth *auth)
|
|||||||
{
|
{
|
||||||
auth->crypto_ctx.ops->end(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;
|
||||||
|
}
|
||||||
|
@ -113,7 +113,7 @@ static void dcesrv_crypto_ntlmssp_end(struct dcesrv_auth *auth)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dcesrv_cyrpto_ops dcesrv_crypto_ntlmssp_ops = {
|
static const struct dcesrv_crypto_ops dcesrv_crypto_ntlmssp_ops = {
|
||||||
.name = "ntlmssp",
|
.name = "ntlmssp",
|
||||||
.auth_type = DCERPC_AUTH_TYPE_NTLMSSP,
|
.auth_type = DCERPC_AUTH_TYPE_NTLMSSP,
|
||||||
.start = dcesrv_crypto_ntlmssp_start,
|
.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
|
startup the cryptographic side of an authenticated dcerpc server
|
||||||
*/
|
*/
|
||||||
NTSTATUS dcesrv_crypto_ntlmssp_get_ops(struct dcesrv_connection *dce_conn,
|
const struct dcesrv_crypto_ops *dcesrv_crypto_ntlmssp_get_ops(void)
|
||||||
struct dcesrv_auth *auth)
|
|
||||||
{
|
{
|
||||||
NTSTATUS status = NT_STATUS_OK;
|
return &dcesrv_crypto_ntlmssp_ops;
|
||||||
|
|
||||||
auth->crypto_ctx.ops = &dcesrv_crypto_ntlmssp_ops;
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user