# Security Configuration: Further Development

This document describes how further features could be added to the security configuration.

Author: Michal Svec <msvec@suse.cz>

### Contents:

- Adding a New Dialog Element
- Adding a New Encryption Cipher
- Adding a New Security Level
- Adding a New Widget Type

## Adding a New Dialog Element

### Security.ycp:

- update map Settings
- update map Locations
- implement custom parts in functions Read and Write if required

### levels.ycp:

- update default values in all security levels in map Levels

### widgets.ycp:

- add a widget definition to map WIDGETS

### dialogs.ycp:

- place widget into the correct dialog (function settings2widget)
- get a dialog result value (function widget2settings)

### helps.ycp:

- add a help text to the correct dialog to map HELPS

### Update testsuite:

- testsuite/*.ycp
- make check

## Adding a New Encryption Cipher

### Security.ycp:

- add (pam) idetifier to list Ciphers
- add cipher maximum password length to list PasswordMaxLengths

### widgets.ycp:

- update list of ciphers in map WIDGETS["PASSWORD_ENCRYPTION", "Options"]

### helps.ycp:

- update help text in map HELPS["password"], parts 4/8 and 5/8

## Adding a New Security Level

### levels.ycp:

- add a level identifier to map LevelsNames
- add default values of all variables for the new level to map Levels

## Adding a New Widget Type

### routines.ycp:

- add new widget creation to function settings2widget
- if required, add return type conversion to function widget2settings