summaryrefslogtreecommitdiff
path: root/libcli/smb
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2019-03-04 16:53:39 +0100
committerAndrew Bartlett <abartlet@samba.org>2019-04-30 23:18:28 +0000
commit11e3552c9f0ee3c64408c083794c310d3d2c5640 (patch)
treef64c7bebf6e0c932a3139cb4f8ebe80f9196c496 /libcli/smb
parent604c0b2620a46f39d1d1d5cda2498d82c6bf8621 (diff)
downloadsamba-11e3552c9f0ee3c64408c083794c310d3d2c5640.tar.gz
libcli:smb: Introduce a structure for the smb2_singing_key
This also adds a new function to validate the structure. Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'libcli/smb')
-rw-r--r--libcli/smb/smb2_signing.c13
-rw-r--r--libcli/smb/smb2_signing.h10
2 files changed, 23 insertions, 0 deletions
diff --git a/libcli/smb/smb2_signing.c b/libcli/smb/smb2_signing.c
index 11168170a5b..c2a86b850e0 100644
--- a/libcli/smb/smb2_signing.c
+++ b/libcli/smb/smb2_signing.c
@@ -27,6 +27,19 @@
#include <gnutls/gnutls.h>
#include <gnutls/crypto.h>
+bool smb2_signing_key_valid(const struct smb2_signing_key *key)
+{
+ if (key == NULL) {
+ return false;
+ }
+
+ if (key->blob.length == 0 || key->blob.data == NULL) {
+ return false;
+ }
+
+ return true;
+}
+
NTSTATUS smb2_signing_sign_pdu(DATA_BLOB signing_key,
enum protocol_types protocol,
struct iovec *vector,
diff --git a/libcli/smb/smb2_signing.h b/libcli/smb/smb2_signing.h
index 107af5bac1e..668e48ae124 100644
--- a/libcli/smb/smb2_signing.h
+++ b/libcli/smb/smb2_signing.h
@@ -21,8 +21,18 @@
#ifndef _LIBCLI_SMB_SMB2_SIGNING_H_
#define _LIBCLI_SMB_SMB2_SIGNING_H_
+#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
+
struct iovec;
+struct smb2_signing_key {
+ gnutls_hmac_hd_t hmac_hnd;
+ DATA_BLOB blob;
+};
+
+bool smb2_signing_key_valid(const struct smb2_signing_key *key);
+
NTSTATUS smb2_signing_sign_pdu(DATA_BLOB signing_key,
enum protocol_types protocol,
struct iovec *vector,