1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

libcli/smb: add smb1cli_session_set_session_key()

metze
This commit is contained in:
Stefan Metzmacher 2012-08-01 08:53:30 +02:00
parent 9b9ef92701
commit c3cb672d38
2 changed files with 36 additions and 0 deletions

View File

@ -148,6 +148,7 @@ struct smbXcli_session {
struct {
uint16_t session_id;
DATA_BLOB application_key;
} smb1;
struct smb2cli_session *smb2;
@ -4304,6 +4305,39 @@ void smb1cli_session_set_id(struct smbXcli_session *session,
session->smb1.session_id = session_id;
}
NTSTATUS smb1cli_session_set_session_key(struct smbXcli_session *session,
const DATA_BLOB _session_key)
{
struct smbXcli_conn *conn = session->conn;
uint8_t session_key[16];
if (conn == NULL) {
return NT_STATUS_INVALID_PARAMETER_MIX;
}
if (session->smb1.application_key.length != 0) {
return NT_STATUS_INVALID_PARAMETER_MIX;
}
if (_session_key.length == 0) {
return NT_STATUS_OK;
}
ZERO_STRUCT(session_key);
memcpy(session_key, _session_key.data,
MIN(_session_key.length, sizeof(session_key)));
session->smb1.application_key = data_blob_talloc(session,
session_key,
sizeof(session_key));
ZERO_STRUCT(session_key);
if (session->smb1.application_key.data == NULL) {
return NT_STATUS_NO_MEMORY;
}
return NT_STATUS_OK;
}
uint8_t smb2cli_session_security_mode(struct smbXcli_session *session)
{
struct smbXcli_conn *conn = session->conn;

View File

@ -251,6 +251,8 @@ struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx,
uint16_t smb1cli_session_current_id(struct smbXcli_session* session);
void smb1cli_session_set_id(struct smbXcli_session* session,
uint16_t session_id);
NTSTATUS smb1cli_session_set_session_key(struct smbXcli_session *session,
const DATA_BLOB _session_key);
uint8_t smb2cli_session_security_mode(struct smbXcli_session *session);
uint64_t smb2cli_session_current_id(struct smbXcli_session *session);
uint16_t smb2cli_session_get_flags(struct smbXcli_session *session);