2 Unix SMB/CIFS implementation.
5 Copyright (C) Stefan Metzmacher 2009
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef _LIBCLI_SMB_SMB2_SIGNING_H_
22 #define _LIBCLI_SMB_SMB2_SIGNING_H_
24 #include <gnutls/gnutls.h>
25 #include <gnutls/crypto.h>
29 struct smb2_signing_key {
30 gnutls_hmac_hd_t hmac_hnd;
34 int smb2_signing_key_destructor(struct smb2_signing_key *key);
36 bool smb2_signing_key_valid(const struct smb2_signing_key *key);
38 NTSTATUS smb2_signing_sign_pdu(struct smb2_signing_key *signing_key,
39 enum protocol_types protocol,
43 NTSTATUS smb2_signing_check_pdu(DATA_BLOB signing_key,
44 enum protocol_types protocol,
45 const struct iovec *vector,
48 void smb2_key_derivation(const uint8_t *KI, size_t KI_len,
49 const uint8_t *Label, size_t Label_len,
50 const uint8_t *Context, size_t Context_len,
53 NTSTATUS smb2_signing_encrypt_pdu(DATA_BLOB encryption_key,
57 NTSTATUS smb2_signing_decrypt_pdu(DATA_BLOB decryption_key,
62 #endif /* _LIBCLI_SMB_SMB2_SIGNING_H_ */