RDK-B
mso_mgmt_hal.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's LICENSE file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 /**
21 * @file mso_mgmt_hal.h
22 * @brief MSO Management HAL
23 *
24 * @description This header file gives the function call prototypes and structure definitions used for the RDK-Broadband
25 * hardware abstraction layer for MSO Management.
26 */
27 
28 #ifndef __MSO_MGMT_HAL_H__
29 #define __MSO_MGMT_HAL_H__
30 
31 /**********************************************************************
32  CONSTANT DEFINITIONS
33 **********************************************************************/
34 /**
35 * @defgroup msomgmt_hal MSO Management HAL
36 *
37 * This module provides the function call prototypes and structure definitions.
38 *
39 * @defgroup msomgmt_hal_types MSO Management HAL Data Types
40 * @ingroup msomgmt_hal
41 *
42 * @defgroup msomgmt_hal_apis MSO Management HAL APIs
43 * @ingroup msomgmt_hal
44 *
45 **/
46 
47 
48 /**
49  * @addtogroup msomgmt_hal_types
50  * @{
51  */
52 
53 #ifndef CHAR
54 #define CHAR char
55 #endif
56 
57 #ifndef UCHAR
58 #define UCHAR unsigned char
59 #endif
60 
61 #ifndef BOOLEAN
62 #define BOOLEAN unsigned char
63 #endif
64 
65 #ifndef INT
66 #define INT int
67 #endif
68 
69 #ifndef UINT
70 #define UINT unsigned int
71 #endif
72 
73 #ifndef ULONG
74 #define ULONG unsigned long
75 #endif
76 
77 #ifndef TRUE
78 #define TRUE 1
79 #endif
80 
81 #ifndef FALSE
82 #define FALSE 0
83 #endif
84 
85 #ifndef ENABLE
86 #define ENABLE 1
87 #endif
88 
89 #ifndef RETURN_OK
90 #define RETURN_OK 0
91 #endif
92 
93 #ifndef RETURN_ERR
94 #define RETURN_ERR -1
95 #endif
96 
97 typedef unsigned short uint16;
98 typedef unsigned long uint32;
99 typedef int boolean;
100 
101 #ifndef SEC_PER_YEAR
102 #define SEC_PER_YEAR 31536000
103 #endif
104 
105 #ifndef SIZE_arrisCmDevHttpClientSee
106 #define SIZE_arrisCmDevHttpClientSeed 8L
107 #endif
108 
109 #ifndef ERROR
110 #define ERROR -1
111 #endif
112 
113 /**********************************************************************
114  STRUCTURE DEFINITIONS
115 **********************************************************************/
116 
117 typedef enum
118 {
119  Invalid_PWD,
120  Good_PWD,
124 }
126 
127 /**
128  * @}
129  */
130 
131 /**
132  * @addtogroup msomgmt_hal_apis
133  * @{
134  */
135 
136 
137 /* mso_validatepwd() function */
138 /**
139 * @description Validate whether the password passed in matches the password of the day for mso user.
140 *
141 * @param pwd - Pointer to a buffer that was preallocated by the caller.
142 *
143 * @return The status of the operation.
144 * @retval mso_pwd_ret_status
145  Invalid_PWD,
146  Good_PWD,
147  Unique_PWD,
148  Expired_PWD,
149  TimeError
150 *
151 * @execution Synchronous.
152 * @sideeffect None.
153 */
155 
156 /* mso_set_pod_seed : */
157 /**
158 * @description Sets the PoD seed for mso password validation.
159 *
160 * @param
161 * CHAR* - PoD seed
162 *
163 * @return the status of the operation.
164 * @retval RETURN_OK if successful.
165 * @retval RETURN_ERR if any error is detected.
166 *
167 * @execution Synchronous.
168 * @sideeffect None.
169 *
170 * @note This function must not suspend and must not invoke any blocking system
171 * calls. It should probably just send a message to a driver event handler task.
172 * Newer Broadband Devices MUST decrypt the seed on demand when this HAL is called.
173 */
174 INT mso_set_pod_seed(char *);
175 
176 /* mso_get_pod_seed : */
177 /**
178 * @description Gets the PoD seed for mso password validation.
179 *
180 * @param
181 * CHAR* pSeed - a pointer to a buffer that was preallocated by the caller. This is where the output is written
182 *
183 * @return the status of the operation.
184 * @retval RETURN_OK if successful.
185 * @retval RETURN_ERR if any error is detected.
186 *
187 * @execution Synchronous.
188 * @sideeffect None.
189 *
190 * @note This function retrieves the decrypted seed set in the Config file
191 * and SNMP OID rdkbEncryptedClientSeed. pSeed for security reasons MUST be manually
192 * overwritten after use.
193 */
194 INT mso_get_pod_seed(char* pSeed);
195 
196 #endif
197 /**
198  * @}
199  */
200 
mso_pwd_ret_status
mso_pwd_ret_status
Definition: mso_mgmt_hal.h:117
mso_validatepwd
mso_pwd_ret_status mso_validatepwd(char *pwd)
Invalid_PWD
@ Invalid_PWD
Definition: mso_mgmt_hal.h:121
Good_PWD
@ Good_PWD
Definition: mso_mgmt_hal.h:122
Expired_PWD
@ Expired_PWD
Definition: mso_mgmt_hal.h:124
uint32
unsigned long uint32
Definition: mso_mgmt_hal.h:98
boolean
int boolean
Definition: mso_mgmt_hal.h:99
mso_set_pod_seed
int mso_set_pod_seed(char *)
mso_get_pod_seed
int mso_get_pod_seed(char *pSeed)
TimeError
@ TimeError
Definition: mso_mgmt_hal.h:125
INT
#define INT
Definition: mso_mgmt_hal.h:66
uint16
unsigned short uint16
Definition: mso_mgmt_hal.h:97
Unique_PWD
@ Unique_PWD
Definition: mso_mgmt_hal.h:123