mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-03-07 09:50:50 +01:00
Added a ubus method `bbf.secure` which allows encoding/decoding of values using sha512 hash or with a RSA private/public key pair
114 lines
4.4 KiB
Markdown
114 lines
4.4 KiB
Markdown
# BBFDM configuration options and utilities
|
|
|
|
bbfdm provides few compile time configuration options and compile time help utility called [bbfdm.mk](./bbfdm.mk), this document aimed to explain the available usages and best practices.
|
|
|
|
## Compilation options
|
|
|
|
| Configuration option | Description | Default Value |
|
|
| ----------------------- | ------------- | ----------- |
|
|
| CONFIG_BBF_VENDOR_LIST | List of vendor extension directories | iopsys |
|
|
| CONFIG_BBF_VENDOR_PREFIX | Prefix for Vendor extension datamodel objects/parameters | X_IOPSYS_EU_ |
|
|
| CONFIG_BBF_TR143 | Enable/Add TR-143 Data Model Support | y |
|
|
| CONFIG_BBF_TR471 | Enable/Add TR-471 Data Model Support | y |
|
|
| CONFIG_BBF_MAX_OBJECT_INSTANCES | Maximum number of instances per object | 255 |
|
|
| BBF_OBFUSCATION_KEY | Hash used to encode/decode in `bbf.secure` object | 371d530c95a17d1ca223a29b7a6cdc97e1135c1e0959b51106cca91a0b148b5e42742d372a359760742803f2a44bd88fca67ccdcfaeed26d02ce3b6049cb1e04 |
|
|
|
|
|
|
#### BBF_OBFUSCATION_KEY
|
|
|
|
`bbfdm` provides an ubus object called `bbf.secure` to allow encoding/decoding the values, `bbf.secure` currently support following methods internally to encode/decode
|
|
|
|
- Encode/Decode using a predefined SHA512 Hash key
|
|
- Encode/Decode using a private/public RSA key pair
|
|
|
|
The `BBF_OBFUSCATION_KEY` compile time configuration option used to defined the SHA512 HASH, if this option is undefined, then it usages a default value as mention in the above table.
|
|
|
|
User must override this parameter with their own hash value, to generate a hash user can run below command and copy the hash value to this option.
|
|
|
|
ex: User wants to use 'Sup3rS3cur3Passw0rd' as passkey, then can get the SHA512 sum with
|
|
|
|
```bash
|
|
$ echo -n "Sup3rS3cur3Passw0rd" | sha512sum
|
|
371d530c95a17d1ca223a29b7a6cdc97e1135c1e0959b51106cca91a0b148b5e42742d372a359760742803f2a44bd88fca67ccdcfaeed26d02ce3b6049cb1e04 -
|
|
```
|
|
|
|
> Note: Additionally, user can install RSA private key in '/etc/bbfdm/certificates/private_key.pem' path, if private key is present `bbf.secure` shall use rsa private certificate for encrypt/decrypt function. In case of key not present in the pre-defined path, hash will be used for the same.
|
|
|
|
## Helper utility (bbfdm.mk)
|
|
|
|
bbfdm provides a helper utility [bbfdm.mk](./bbfdm.mk) to install datamodel plugins in bbfdm core or in microservice directory.
|
|
|
|
### Install datamodel DotSO/JSON plugin in bbfdm core
|
|
|
|
Utility to install the DotSO/JSON plugin in bbfdm core plugin path
|
|
|
|
```bash
|
|
# inputs:
|
|
# $1 => package install directory
|
|
# $2 => Plugin artifact
|
|
```
|
|
|
|
Example:
|
|
|
|
```make
|
|
define Package/$(PKG_NAME)/install
|
|
$(call BbfdmInstallPlugin,$(1),./files/etc/bbfdm/json/CWMPManagementServer.json)
|
|
endef
|
|
```
|
|
|
|
### Install datamodel DotSO/JSON plugin in bbfdm core with priority
|
|
|
|
Its now possible to overwrite/remove core datamodel with plugin, so, if some datamodel objects/parameters are present in more than one plugin, order in which they loaded into memory becomes crucial, this Utility help to configure a priority order in which they gets loaded in memory.
|
|
|
|
```bash
|
|
# inputs:
|
|
# $1 => package install directory
|
|
# $2 => Priority of the installed plugin
|
|
# $3 => Plugin artifact
|
|
```
|
|
|
|
Example:
|
|
```make
|
|
define Package/$(PKG_NAME)/install
|
|
$(call BbfdmInstallPluginWithPriority,$(1),01,$(PKG_BUILD_DIR)/bbf_plugin/bulkdata.json)
|
|
endef
|
|
```
|
|
|
|
> Note: Last loaded plugin gets the highest priority
|
|
|
|
### Install plugin into micro-service directory
|
|
|
|
Utility to install the plugin in datamodel microservice directory, ex. user wants to run a datamodel micro-service, it required to install the DotSO/JSON plugin into a non bbf core directory, this utility helps in installing the DotSO/JSON plugin in mentioned directory.
|
|
|
|
```bash
|
|
# inputs:
|
|
# $1 => package install directory with micro-service directory
|
|
# $2 => Plugin artifact
|
|
```
|
|
|
|
Example:
|
|
|
|
```make
|
|
define Package/$(PKG_NAME)/install
|
|
$(call BbfdmInstallPluginInMicroservice,$(1)/etc/bulkdata,$(PKG_BUILD_DIR)/bbf_plugin/bulkdata.json)
|
|
endef
|
|
```
|
|
|
|
### Install datamodel micro-service input file
|
|
|
|
Utility to install the datamodel plugin input file into the bbfdm micro-service directory, so that bbfdm auto start the datamodel micro-service before main bbfdm process.
|
|
|
|
```bash
|
|
# inputs:
|
|
# $1 => package install directory
|
|
# $2 => Microservice input.json path
|
|
```
|
|
|
|
Example:
|
|
|
|
```make
|
|
define Package/$(PKG_NAME)/install
|
|
$(call BbfdmInstallMicroServiceInputFile,$(1),./files/etc/bulkdata/input.json)
|
|
endef
|
|
```
|
|
|