password
Represents a Password value.
dataformat: password
MYFIELD:
(...)
dataformat: password
dataformat_ext: "store|hash minlen:8 maxlen:64 complexity:3"
(...)dataformat_ext
Optional dataformat_ext can be a string of multiple options:
- hash: Password is stored as a one-way sha256 salted hash in DB ; default
- store: Password is stored as a reversible symmetric hmac/salted sha256 multi iteration string
- minlen:INT: minimun password length check at creation time (default 8)
- maxlen:INT: maximum password length check at creation time (default 64)
- compleixty:INT: number of complexify factors (lower, upper, digit, other) at creation time (default 3)
Multivalue
Multi-value not is supported.
Encyption and use case
A master cipher key is defined in the .env system file at setup time. If you lose this key, you won’t be able to decrypt sotred (store) passwords.
- hash : hash mode is useful to check a provided password against the stored value
- store: store mode is useful to retrieve clear value (e.g to call an external API)
Examples
cavctl
$ ./cavctl/bin/cavctl schema --schema test
"my_pass1": {
"displayname": "Password field (Hash)",
"description": "Type a password",
"is_enabled": true,
"dataformat": "password",
"dataformat_ext": "hash",
"order": 330,
"page": "password",
"cardinal_min": 0,
"cardinal_max": 1,
"default_value": ""
},
"my_pass2": {
"displayname": "Password field (Store)",
"description": "Type a password",
"is_enabled": true,
"dataformat": "password",
"dataformat_ext": "store",
"order": 331,
"page": "password",
"cardinal_min": 0,
"cardinal_max": 1,
"default_value": ""
}
$ ./cavctl/bin/cavctl instance --schema test --id 48
"my_pass1": "$sha256$fa187d0409ac95af77a0b1e(...)2dee4f8a4a674ed$",
"my_pass2": "IQQWAw1LQdtJ65XoSHFaOu8SDw=="
Schema Definition
- classname: _schema
keyname: person
my_pass:
displayname: Password field
description: 'Type a password (minlen:4 maxlen:8 complexity:4)'
dataformat: password
dataformat_ext: 'hash minlen:4 maxlen:8 complexity:4'Instance Example
- classname: person
keyname: john_smith
name: "John Smith"
my_pass: "$sha256$fa187d0409ac95af77a0b1ee8d9(...)53ea4e551658a72db38abb2dee4f8a4a674ed$"
- classname: _apikey
keyname: key1
displayname: API key1
secret: "$sha256$3146ac549c20d3dd58c(...))9222f2ce1655abaad9$"
description: API Key
ip_filter: '*'
acl: "role:role_api567"