OpenZWave Library
1.6.1914
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
src
command_classes
Security.h
Go to the documentation of this file.
1
//-----------------------------------------------------------------------------
2
//
3
// Security.h
4
//
5
// Implementation of the Z-Wave COMMAND_CLASS_Security
6
//
7
// Copyright (c) 2010 Mal Lansell <openzwave@lansell.org>
8
//
9
// SOFTWARE NOTICE AND LICENSE
10
//
11
// This file is part of OpenZWave.
12
//
13
// OpenZWave is free software: you can redistribute it and/or modify
14
// it under the terms of the GNU Lesser General Public License as published
15
// by the Free Software Foundation, either version 3 of the License,
16
// or (at your option) any later version.
17
//
18
// OpenZWave is distributed in the hope that it will be useful,
19
// but WITHOUT ANY WARRANTY; without even the implied warranty of
20
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
// GNU Lesser General Public License for more details.
22
//
23
// You should have received a copy of the GNU Lesser General Public License
24
// along with OpenZWave. If not, see <http://www.gnu.org/licenses/>.
25
//
26
//-----------------------------------------------------------------------------
27
28
#ifndef _Security_H
29
#define _Security_H
30
31
#include <ctime>
32
#include "aes/aescpp.h"
33
#include "
command_classes/CommandClass.h
"
34
35
namespace
OpenZWave
36
{
37
namespace
Internal
38
{
39
namespace
CC
40
{
41
42
enum
SecurityCmd
43
{
44
SecurityCmd_SupportedGet
= 0x02,
45
SecurityCmd_SupportedReport
= 0x03,
46
SecurityCmd_SchemeGet
= 0x04,
47
SecurityCmd_SchemeReport
= 0x05,
48
SecurityCmd_NetworkKeySet
= 0x06,
49
SecurityCmd_NetworkKeyVerify
= 0x07,
50
SecurityCmd_SchemeInherit
= 0x08,
51
SecurityCmd_NonceGet
= 0x40,
52
SecurityCmd_NonceReport
= 0x80,
53
SecurityCmd_MessageEncap
= 0x81,
54
SecurityCmd_MessageEncapNonceGet
= 0xc1
55
};
56
57
enum
SecurityScheme
58
{
59
SecurityScheme_Zero
= 0x00,
60
};
61
65
66
class
Security:
public
CommandClass
67
{
68
public
:
69
static
CommandClass
*
Create
(
uint32
const
_homeId,
uint8
const
_nodeId)
70
{
71
return
new
Security(_homeId, _nodeId);
72
}
73
virtual
~Security
();
74
75
static
uint8
const
StaticGetCommandClassId
()
76
{
77
return
0x98;
78
}
79
static
string
const
StaticGetCommandClassName
()
80
{
81
return
"COMMAND_CLASS_SECURITY"
;
82
}
83
bool
Init
(
uint32
const
_instance = 1);
84
bool
ExchangeNetworkKeys
();
85
// From CommandClass
86
bool
RequestState
(
uint32
const
_requestFlags,
uint8
const
_instance,
Driver::MsgQueue
const
_queue)
override
;
87
bool
RequestValue
(
uint32
const
_requestFlags,
uint16
const
_index,
uint8
const
_instance,
Driver::MsgQueue
const
_queue)
override
;
88
virtual
uint8
const
GetCommandClassId
()
const override
89
{
90
return
StaticGetCommandClassId
();
91
}
92
virtual
string
const
GetCommandClassName
()
const override
93
{
94
return
StaticGetCommandClassName
();
95
}
96
virtual
bool
HandleMsg
(
uint8
const
* _data,
uint32
const
_length,
uint32
const
_instance = 1)
override
;
97
void
SendMsg
(
Msg
* _msg);
98
99
protected
:
100
void
CreateVars
(
uint8
const
_instance)
override
;
101
102
private
:
103
Security(
uint32
const
_homeId,
uint8
const
_nodeId);
104
bool
HandleSupportedReport(
uint8
const
* _data,
uint32
const
_length,
uint32
const
_instance = 1);
105
106
bool
m_schemeagreed;
107
bool
m_secured[255];
108
109
};
110
}
// namespace CC
111
}
// namespace Internal
112
}
// namespace OpenZWave
113
114
#endif
115
CommandClass.h
uint16
unsigned short uint16
Definition
Defs.h:88
uint32
unsigned int uint32
Definition
Defs.h:91
uint8
unsigned char uint8
Definition
Defs.h:85
OpenZWave::Driver::MsgQueue
MsgQueue
Definition
Driver.h:660
OpenZWave::Internal::CC::CommandClass::CommandClass
CommandClass(uint32 const _homeId, uint8 const _nodeId)
Definition
CommandClass.cpp:62
OpenZWave::Internal::CC::CommandClass::CreateVars
void CreateVars()
Definition
CommandClass.cpp:841
OpenZWave::Internal::CC::Security::Create
static CommandClass * Create(uint32 const _homeId, uint8 const _nodeId)
Definition
Security.h:69
OpenZWave::Internal::CC::Security::HandleMsg
virtual bool HandleMsg(uint8 const *_data, uint32 const _length, uint32 const _instance=1) override
Definition
Security.cpp:141
OpenZWave::Internal::CC::Security::SendMsg
void SendMsg(Msg *_msg)
OpenZWave::Internal::CC::Security::~Security
virtual ~Security()
Definition
Security.cpp:62
OpenZWave::Internal::CC::Security::RequestValue
bool RequestValue(uint32 const _requestFlags, uint16 const _index, uint8 const _instance, Driver::MsgQueue const _queue) override
Definition
Security.cpp:121
OpenZWave::Internal::CC::Security::ExchangeNetworkKeys
bool ExchangeNetworkKeys()
Definition
Security.cpp:83
OpenZWave::Internal::CC::Security::GetCommandClassName
virtual string const GetCommandClassName() const override
Definition
Security.h:92
OpenZWave::Internal::CC::Security::StaticGetCommandClassName
static string const StaticGetCommandClassName()
Definition
Security.h:79
OpenZWave::Internal::CC::Security::Init
bool Init(uint32 const _instance=1)
Definition
Security.cpp:66
OpenZWave::Internal::CC::Security::GetCommandClassId
virtual uint8 const GetCommandClassId() const override
Definition
Security.h:88
OpenZWave::Internal::CC::Security::StaticGetCommandClassId
static uint8 const StaticGetCommandClassId()
Definition
Security.h:75
OpenZWave::Internal::CC::Security::RequestState
bool RequestState(uint32 const _requestFlags, uint8 const _instance, Driver::MsgQueue const _queue) override
Definition
Security.cpp:105
OpenZWave::Internal::Msg
Message object to be passed to and from devices on the Z-Wave network.
Definition
Msg.h:51
OpenZWave::Internal::CC
Definition
Alarm.cpp:54
OpenZWave::Internal::CC::SecurityCmd
SecurityCmd
Definition
Security.h:43
OpenZWave::Internal::CC::SecurityCmd_MessageEncap
@ SecurityCmd_MessageEncap
Definition
Security.h:53
OpenZWave::Internal::CC::SecurityCmd_SupportedGet
@ SecurityCmd_SupportedGet
Definition
Security.h:44
OpenZWave::Internal::CC::SecurityCmd_SchemeReport
@ SecurityCmd_SchemeReport
Definition
Security.h:47
OpenZWave::Internal::CC::SecurityCmd_SchemeInherit
@ SecurityCmd_SchemeInherit
Definition
Security.h:50
OpenZWave::Internal::CC::SecurityCmd_MessageEncapNonceGet
@ SecurityCmd_MessageEncapNonceGet
Definition
Security.h:54
OpenZWave::Internal::CC::SecurityCmd_NetworkKeySet
@ SecurityCmd_NetworkKeySet
Definition
Security.h:48
OpenZWave::Internal::CC::SecurityCmd_NonceReport
@ SecurityCmd_NonceReport
Definition
Security.h:52
OpenZWave::Internal::CC::SecurityCmd_NonceGet
@ SecurityCmd_NonceGet
Definition
Security.h:51
OpenZWave::Internal::CC::SecurityCmd_NetworkKeyVerify
@ SecurityCmd_NetworkKeyVerify
Definition
Security.h:49
OpenZWave::Internal::CC::SecurityCmd_SupportedReport
@ SecurityCmd_SupportedReport
Definition
Security.h:45
OpenZWave::Internal::CC::SecurityCmd_SchemeGet
@ SecurityCmd_SchemeGet
Definition
Security.h:46
OpenZWave::Internal::CC::SecurityScheme
SecurityScheme
Definition
Security.h:58
OpenZWave::Internal::CC::SecurityScheme_Zero
@ SecurityScheme_Zero
Definition
Security.h:59
OpenZWave::Internal
Definition
Bitfield.cpp:33
OpenZWave
Definition
Bitfield.cpp:31
Generated on
for OpenZWave Library by
1.17.0