Skip to content

Commit 8cd13dd

Browse files
committed
[airos] draft for key derivation in user converter
1 parent ce3a927 commit 8cd13dd

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

netjsonconfig/backends/airos/converters.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -590,20 +590,26 @@ def to_intermediate(self):
590590

591591

592592
class Users(AirOSConverter):
593-
netjson_key = 'general'
593+
netjson_key = 'user'
594+
595+
def key_derivation(self):
596+
from hashlib import pbkdf2_hmac
597+
import binascii
598+
original = get_copy(self.netjson, self.netjson_key, {})
599+
key_derivation = pbkdf2_hmac('md5', original['password'], original['salt']),
600+
return '$1${salt}${derivation}'.format(salt=original['salt'], derivation=binascii.hexify(key_derivation))
594601

595602
def to_intermediate(self):
596603
result = []
597-
604+
original = get_copy(self.netjson, self.netjson_key, {})
598605
result.append({
599-
'status': 'disabled',
606+
'status': 'enabled',
600607
})
601-
602608
result.append([
603609
{
604-
'name': 'root',
605-
'password': 'changeme',
606-
'status': 'disabled',
610+
'name': original.get('name'),
611+
'password': self.key_derivation(),
612+
'status': 'enabled',
607613
},
608614
])
609615

0 commit comments

Comments
 (0)