]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Make the linter happy
authorFrank Brehm <frank@brehm-online.com>
Fri, 11 Nov 2022 15:40:16 +0000 (16:40 +0100)
committerFrank Brehm <frank@brehm-online.com>
Fri, 11 Nov 2022 15:40:16 +0000 (16:40 +0100)
lib/pp_admintools/app/mk_ldap_passwd.py
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index bf34fa71ffd82458a1357e38857616afb78903d5..5e689e6925dcfa43fc1120133b153441da449924 100644 (file)
@@ -10,13 +10,10 @@ from __future__ import absolute_import
 
 # Standard modules
 import logging
-import os
-import getpass
 import sys
 
 # Own modules
 # from fb_tools.common import to_bool, is_sequence, pp
-from fb_tools.common import is_sequence
 from fb_tools.app import BaseApplication
 
 from .. import pp
@@ -25,14 +22,11 @@ from ..xlate import XLATOR
 
 from ..errors import PpAppError
 
-from .ldap import PasswordFileOptionAction
-
 from ..handler.ldap_password import WrongPwdSchemaError
 from ..handler.ldap_password import LdapPasswordHandler
-from ..handler.ldap_password import HAS_CRACKLIB
 from ..handler.ldap_password import WrongSaltError, WrongRoundsError
 
-__version__ = '0.1.1'
+__version__ = '0.1.2'
 LOG = logging.getLogger(__name__)
 
 _ = XLATOR.gettext
index 493910c61268a2855bb086946267339776642b09..2ec68089a87b11d75808115c25bf76bdf0b3a8e6 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-11-03 16:37+0100\n"
+"POT-Creation-Date: 2022-11-11 16:38+0100\n"
 "PO-Revision-Date: 2022-11-03 16:40+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
@@ -22,7 +22,8 @@ msgstr ""
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr "Generierung der BIND9-Konfigurationsdatei für Slave-Zonen."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/mk_ldap_passwd.py:95
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Options for {}"
 msgstr "Optionen für {}"
 
@@ -120,10 +121,10 @@ msgid "Executing: {}"
 msgstr "Führe aus: {}"
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
-#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
-#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:806 lib/pp_admintools/app/ldap.py:936
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1042
+#: lib/pp_admintools/app/ldap.py:1330 lib/pp_admintools/app/ldap.py:1364
+#: lib/pp_admintools/app/ldap.py:1398 lib/pp_admintools/app/ldap.py:1432
 msgid "Result:"
 msgstr "Ergebnis:"
 
@@ -292,17 +293,17 @@ msgid "The path {!r} must be an absolute path."
 msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
 
 #: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1445
+#: lib/pp_admintools/app/ldap.py:1446
 msgid "The file {!r} does not exists."
 msgstr "Die Datei {!r} existiert nicht."
 
 #: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1450
+#: lib/pp_admintools/app/ldap.py:1451
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr "Der angegebene Pfad {!r} existiert, ist aber keine reguläre Datei."
 
 #: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1455
+#: lib/pp_admintools/app/ldap.py:1456
 msgid "The given file {!r} is not readable."
 msgstr "Die angegebene Datei {} ist nicht lesbar."
 
@@ -327,7 +328,7 @@ msgid "Options fo LDAP connections"
 msgstr "Optionen für die LDAP-Verbindungen"
 
 #: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:244
-#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:492
 msgid "No"
 msgstr "Nein"
 
@@ -364,9 +365,9 @@ msgstr "Die Basis-DN, die als Ausgangspunt bei LDAP-Suchen verwendet werden soll
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr "Die Bind-DN, die zur Verbindung mit dem LDAP-Server verwendet werden soll. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
-#: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
-#: lib/pp_admintools/app/set_ldap_password.py:227
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/mk_ldap_passwd.py:140
+#: lib/pp_admintools/app/set_ldap_password.py:130 lib/pp_admintools/app/set_ldap_password.py:131
+#: lib/pp_admintools/app/set_ldap_password.py:148 lib/pp_admintools/app/set_ldap_password.py:151
 msgid "PASSWORD"
 msgstr "PASSWORT"
 
@@ -382,8 +383,8 @@ msgstr ""
 "Nachfrage nach dem Passwort für eine einfache LDAP-Authentifizierung. Dies wird anstelle der "
 "Angabe des Passwortes an der Kommandozeile verwendet."
 
-#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD_FILE"
 msgstr "PASSWORT_DATEI"
 
@@ -489,230 +490,230 @@ msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
 msgid "Finishing ..."
 msgstr "Beende …"
 
-#: lib/pp_admintools/app/ldap.py:749
+#: lib/pp_admintools/app/ldap.py:750
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:762
+#: lib/pp_admintools/app/ldap.py:763
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Trenne Bindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:769
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:792 lib/pp_admintools/app/ldap.py:831
 msgid "Result of searching for DNs of all entries:"
 msgstr "Ergebnis der Suche nach den DNs aller Einträge:"
 
-#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
-#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
-#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
-#: lib/pp_admintools/app/ldap.py:1326 lib/pp_admintools/app/ldap.py:1360
-#: lib/pp_admintools/app/ldap.py:1394 lib/pp_admintools/app/ldap.py:1428
+#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:835
+#: lib/pp_admintools/app/ldap.py:933 lib/pp_admintools/app/ldap.py:986
+#: lib/pp_admintools/app/ldap.py:1039 lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1361
+#: lib/pp_admintools/app/ldap.py:1395 lib/pp_admintools/app/ldap.py:1429
 msgid "Got a response entry:"
 msgstr "Erhaltener Antwort-Eintrag:"
 
-#: lib/pp_admintools/app/ldap.py:820
+#: lib/pp_admintools/app/ldap.py:821
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr "Hole DNs aller Einträge der LDAP-Instanz {i!r} unterhalb von {b!r}."
 
-#: lib/pp_admintools/app/ldap.py:856
+#: lib/pp_admintools/app/ldap.py:857
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Versuche den DN des Nutzer {user!r} auf der LDAP-Instanz {inst} zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:861
+#: lib/pp_admintools/app/ldap.py:862
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Versuche den DN des Nutzer {u!r} als Mailadresse zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:869
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Versuche den DN des Nutzer {u!r} als LDAP DN zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:875
+#: lib/pp_admintools/app/ldap.py:876
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als UID (POSIX Benutzername) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:885 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr "Leere Nutzername übergeben."
 
-#: lib/pp_admintools/app/ldap.py:887
+#: lib/pp_admintools/app/ldap.py:888
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als CN ({c}) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1314
-#: lib/pp_admintools/app/ldap.py:1348 lib/pp_admintools/app/ldap.py:1382
-#: lib/pp_admintools/app/ldap.py:1416
+#: lib/pp_admintools/app/ldap.py:918 lib/pp_admintools/app/ldap.py:971
+#: lib/pp_admintools/app/ldap.py:1024 lib/pp_admintools/app/ldap.py:1315
+#: lib/pp_admintools/app/ldap.py:1349 lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
 
-#: lib/pp_admintools/app/ldap.py:928
+#: lib/pp_admintools/app/ldap.py:929
 msgid "Result of searching for mail address {m!r}:"
 msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
 
-#: lib/pp_admintools/app/ldap.py:939
+#: lib/pp_admintools/app/ldap.py:940
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der Mailadresse {m!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:981
+#: lib/pp_admintools/app/ldap.py:982
 msgid "Result of searching for uid {u!r}:"
 msgstr "Ergebnis der Suche nach UID {u!r}:"
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:993
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der UID {u!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1034
+#: lib/pp_admintools/app/ldap.py:1035
 msgid "Result of searching for CN {cn!r}:"
 msgstr "Ergebnis der Suche nach CN {cn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1045
+#: lib/pp_admintools/app/ldap.py:1046
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit dem CN {cn!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1063 lib/pp_admintools/app/set_ldap_password.py:411
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr "Ein Nutzer mit dem DN {dn!r} wurde nicht in {uri} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1081
 msgid "ObjectClasses of {dn!r}:"
 msgstr "ObjectClasses von {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1090
+#: lib/pp_admintools/app/ldap.py:1091
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr "Der Eintrag {dn!r} in {uri} scheint kein Nutzerkonto zu sein."
 
-#: lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1113
 msgid "Searching DN {dn!r} in {uri}."
 msgstr "Suche DN {dn!r} in {uri}."
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1123
 msgid "Result of searching for DN {dn!r}:"
 msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1130
+#: lib/pp_admintools/app/ldap.py:1131
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr "Ein Eintrag bit dem DN {dn!r} wurde nicht in {uri} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1175
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Erstelle Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1181
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Simulation mode - entry will not be created."
 msgstr "Simulationsmodus - der Eintrag wird nicht erstellt."
 
-#: lib/pp_admintools/app/ldap.py:1188
+#: lib/pp_admintools/app/ldap.py:1189
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1203
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Creation status: {!r}."
 msgstr "Erstellungsstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1205
+#: lib/pp_admintools/app/ldap.py:1206
 msgid "Result of creating:"
 msgstr "Ergebnis der Erstellung:"
 
-#: lib/pp_admintools/app/ldap.py:1208
+#: lib/pp_admintools/app/ldap.py:1209
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1215
 msgid "Creation successful."
 msgstr "Die Erstellung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1225
+#: lib/pp_admintools/app/ldap.py:1226
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr "Wende Änderungen in {uri} an DN {dn!r} an:"
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Simulation mode - changes are not applied."
 msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
 
-#: lib/pp_admintools/app/ldap.py:1236
+#: lib/pp_admintools/app/ldap.py:1237
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1238 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1239 lib/pp_admintools/app/ldap.py:1258
 #: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
 #: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
-#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
 msgid "Changes:"
 msgstr "Änderungen:"
 
-#: lib/pp_admintools/app/ldap.py:1250
+#: lib/pp_admintools/app/ldap.py:1251
 msgid "Modification status: {!r}."
 msgstr "Änderungsstatus: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1252
+#: lib/pp_admintools/app/ldap.py:1253
 msgid "Result of modifying:"
 msgstr "Ergebnis der Änderung:"
 
-#: lib/pp_admintools/app/ldap.py:1255
+#: lib/pp_admintools/app/ldap.py:1256
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1260
+#: lib/pp_admintools/app/ldap.py:1261
 msgid "Modification successful."
 msgstr "Die Änderung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1270
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1276
 msgid "Simulation mode - deletion will not be executed."
 msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
 
-#: lib/pp_admintools/app/ldap.py:1281
+#: lib/pp_admintools/app/ldap.py:1282
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1286
+#: lib/pp_admintools/app/ldap.py:1287
 msgid "Deletion status: {!r}."
 msgstr "Löschstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1288
+#: lib/pp_admintools/app/ldap.py:1289
 msgid "Result of deletion:"
 msgstr "Ergebnis der Löschung:"
 
-#: lib/pp_admintools/app/ldap.py:1291
+#: lib/pp_admintools/app/ldap.py:1292
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1296
 msgid "Deletion successful."
 msgstr "Die Löschung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1442
+#: lib/pp_admintools/app/ldap.py:1443
 msgid "Reading password file {!r} ..."
 msgstr "Lese Passwortdatei {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1473
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Could not detect RDN from DN {!r}."
 msgstr "Konnte RDN nich aus {!r} ermitteln."
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1478
 msgid "Found RDN attribute {!r}."
 msgstr "Fand RDN-Attribut {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "RDN attribute {!r} will not be touched."
 msgstr "Das RDN-Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1489 lib/pp_admintools/app/ldap.py:1508
-#: lib/pp_admintools/app/ldap.py:1573
+#: lib/pp_admintools/app/ldap.py:1490 lib/pp_admintools/app/ldap.py:1509
+#: lib/pp_admintools/app/ldap.py:1574
 msgid "Attribute {!r} will not be touched."
 msgstr "Das Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1542
+#: lib/pp_admintools/app/ldap.py:1543
 msgid "Values to add to attribute {!r}:"
 msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
 
-#: lib/pp_admintools/app/ldap.py:1546
+#: lib/pp_admintools/app/ldap.py:1547
 msgid "Values to removed from attribute {!r}:"
 msgstr "Werte, die von Attribut {!r} gelöscht werden."
 
@@ -834,7 +835,7 @@ msgstr ""
 "angegeben, und wenn sie auf Null gesetzt werden, erfolgt kein Warten nach dem Schreiben. "
 "(Vorgabe: {:.1f})"
 
-#: lib/pp_admintools/app/mirror_ldap.py:132
+#: lib/pp_admintools/app/mirror_ldap.py:132 lib/pp_admintools/app/mk_ldap_passwd.py:130
 msgid "NUMBER"
 msgstr "ANZAHL"
 
@@ -896,7 +897,7 @@ msgstr ""
 "[{yes}/{no}]?"
 
 #: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/remove_ldap_user.py:280
-#: lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/set_ldap_password.py:492
 msgid "yes"
 msgstr "ja"
 
@@ -1124,6 +1125,68 @@ msgstr[1] "Es wurden {no} Gruppeneinträge in die Ziel-LDAP-Instanz gespiegelt."
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr "Es wurden keine Gruppeneinträge in die Ziel-LDAP-Instanz gespiegelt."
 
+#: lib/pp_admintools/app/mk_ldap_passwd.py:66
+msgid "Encrypting the password with a defined password schema."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:108
+#, fuzzy
+msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
+msgstr ""
+"Das Schema (die Hashing-Methode), das zum Hashen des neuen Passwortes verwendet wird. Es ist "
+"möglich, hier den Wert {val_list!r} anzugeben, dann werden alle verfügbaren Schemen aufgelistet."
+" Vorgabe: {default!r}."
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:113
+msgid "TYPE"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
+msgid "Like {}"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:124 lib/pp_admintools/app/set_ldap_password.py:207
+msgid ""
+"A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
+"a salt."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:131 lib/pp_admintools/app/set_ldap_password.py:214
+msgid ""
+"The number of calculation rounds to use on hashing the password. Caution: not all hashing "
+"schemes are supporting calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:136
+msgid ""
+"The password to hash. If not given and no file desriptor was given, then the password will be "
+"requested on TTY."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:187
+#, fuzzy
+msgid "Got no password by {}."
+msgstr "Passwort für {!r} wird nicht gesetzt."
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:190
+#, fuzzy
+msgid "Password:"
+msgstr "Passwort-Wiederholung:"
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:191 lib/pp_admintools/app/set_ldap_password.py:307
+#: lib/pp_admintools/app/set_ldap_password.py:327
+msgid "Repeat password:"
+msgstr "Passwort-Wiederholung:"
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:205
+#, fuzzy
+msgid "Encrypting password with hashing schema '{schema}' ..."
+msgstr "Setze das Passwort von '{dn}' mit dem Hashing-Schema '{schema}'."
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:212 lib/pp_admintools/app/set_ldap_password.py:481
+msgid "Used schema: {!r}."
+msgstr "Verwendetes Schama : {!r}."
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr "Die Konfiguration ist nicht verfügbar."
@@ -1252,8 +1315,8 @@ msgstr "Deaktivieren der Nutzer anstatt Löschung."
 msgid "Removing the user from LDAP."
 msgstr "Löschen der übergebenen Nutzer im LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:275
-#: lib/pp_admintools/app/set_ldap_password.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/set_ldap_password.py:203
 msgid "USER"
 msgstr "NUTZER"
 
@@ -1332,15 +1395,15 @@ msgstr "Löschen [{yes}/{no}]?"
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Ermitteln der DNs des Nutzers {!r} zum Löschen …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:533
+#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:434
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr "Habe DN {dn!r} für den Nutzer {user!r} in der LDAP-Instanz {inst} ermittelt."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:538
+#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:439
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr "Fand {nr} Einträge für den Nutzer {u!r} in der LDAP-Instanz {i}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:453
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr "Der Nutzer {user!r} wurde nicht in der LDAP-Instanz {inst} gefunden."
 
@@ -1380,7 +1443,7 @@ msgstr "Der Nutzer {dn!r} wurde erfolgreich von {inst} gelöscht."
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Aktualisiere die Nutzerinformationenn für {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:612
+#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:519
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr "{c} beim Deaktivieren des Nutzers {dn!r}: {e}"
 
@@ -1418,29 +1481,7 @@ msgstr "Lösche Nutzer {uid!r} aus allen sudo-Gruppen in {inst}."
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr "Keine sudo-Gruppenmitgliedschaften von {uid!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:106
-msgid "The ancient and notorious 3 DES crypt method."
-msgstr "Die antike und berüchtigte 3 DES Verschlüsselungsmethode."
-
-#: lib/pp_admintools/app/set_ldap_password.py:107 lib/pp_admintools/app/set_ldap_password.py:110
-msgid "Pure {} hashing method."
-msgstr "Reine {}-hashing Methode."
-
-#: lib/pp_admintools/app/set_ldap_password.py:108 lib/pp_admintools/app/set_ldap_password.py:111
-#: lib/pp_admintools/app/set_ldap_password.py:113 lib/pp_admintools/app/set_ldap_password.py:115
-msgid "A {} based hashing algorithm."
-msgstr "Ein {}-basierter Hashing-Algorithmus"
-
-#: lib/pp_admintools/app/set_ldap_password.py:109 lib/pp_admintools/app/set_ldap_password.py:112
-#: lib/pp_admintools/app/set_ldap_password.py:114 lib/pp_admintools/app/set_ldap_password.py:116
-msgid "Salted {} hashing method."
-msgstr "Gesalzene {}-hashing Methode."
-
-#: lib/pp_admintools/app/set_ldap_password.py:117
-msgid "A hashing method derived from {} with additional computing rounds."
-msgstr "Eine von {} abgeleitete Hashing-Methode mit zusätzlichen Berechnungsrunden."
-
-#: lib/pp_admintools/app/set_ldap_password.py:163
+#: lib/pp_admintools/app/set_ldap_password.py:90
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
@@ -1448,11 +1489,11 @@ msgstr ""
 "Ändern des Passwortes des angegebenen Nutzers. Wenn kein Nutzer angegeben wird, versucht {app} "
 "den Namen des am Terminal angemeldeten Nutzers zu verwenden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:207
+#: lib/pp_admintools/app/set_ldap_password.py:131
 msgid "Use {} as the current user password."
 msgstr "Verwende {} als das aktuelle Nutzerpasswort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:212
+#: lib/pp_admintools/app/set_ldap_password.py:136
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
@@ -1460,19 +1501,19 @@ msgstr ""
 "Nachfrage nach dem aktuellen Passwort des Nutzers. Das wird anstelle der Angabe des Passortes in"
 " der Kommandozeile verwendet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "Use contents of {} as the current user password."
 msgstr "Verwende den Inhalt von {} als das aktuelle Nutzerpasswort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:225
+#: lib/pp_admintools/app/set_ldap_password.py:149
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr "Verwende {} als das neue Nutzerpasswort. Wenn nicht angegeben, wird danach gefragt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:233
+#: lib/pp_admintools/app/set_ldap_password.py:157
 msgid "Do not check the quality of the new password with the {} library."
 msgstr "Keine Überprüfung der Qualität des neuen Passwortes mit der {}-Bibliothek."
 
-#: lib/pp_admintools/app/set_ldap_password.py:247
+#: lib/pp_admintools/app/set_ldap_password.py:172
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
@@ -1481,17 +1522,17 @@ msgstr ""
 "möglich, hier den Wert {val_list!r} anzugeben, dann werden alle verfügbaren Schemen aufgelistet."
 " Vorgabe: {default!r}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:252
+#: lib/pp_admintools/app/set_ldap_password.py:177
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 "Wenn kein Admin-Account verwendet wird, dann wird das Passwort ausschließlich mit dem Vorgabe-"
 "Schema gehasht."
 
-#: lib/pp_admintools/app/set_ldap_password.py:257
+#: lib/pp_admintools/app/set_ldap_password.py:182
 msgid "SCHEMA"
 msgstr "SCHEMA"
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:186
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
@@ -1500,11 +1541,11 @@ msgstr ""
 "seine Uid (der alphanumerische POSIX-Nutzername), als seine Mailadresse oder als seine LDAP-DN "
 "angegeben werden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:191
 msgid "If not given, then your current user name {!r} will be used."
 msgstr "Wenn nicht angegeben, dann wird der aktuelle Nutzername {!r} verwendet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:269
+#: lib/pp_admintools/app/set_ldap_password.py:194
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
@@ -1512,87 +1553,55 @@ msgstr ""
 "Wenn eine LDAP-Instanz verwendet wird, die nur Leserechte oder keinen Admin-Zugriff hat, dann "
 "muss irgendwie das neue Passwort des Nutzer zum Ändern angegeben werden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:322
+#: lib/pp_admintools/app/set_ldap_password.py:263
 msgid "Could not detect your current login name."
 msgstr "Konnte den aktuellen Anmeldenamen nicht ermitteln."
 
-#: lib/pp_admintools/app/set_ldap_password.py:327
+#: lib/pp_admintools/app/set_ldap_password.py:268
 msgid "The user {!r} will never be managed by LDAP."
 msgstr "Der Nutzer {!r} wird niemals nimmer nicht von LDAP gemanagt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:363
-msgid "Usable Hashing schemes:"
-msgstr "Verfügbare Hashing-Schemen:"
-
-#: lib/pp_admintools/app/set_ldap_password.py:372
-msgid "This schema cannot be used for authentication on a current freeradius server."
-msgstr ""
-"Dieses Schema kann nicht zur Authentifizierung an einem aktuellen Freeradius-Server verwendet "
-"werden."
-
-#: lib/pp_admintools/app/set_ldap_password.py:376
-msgid "This is the default schema."
-msgstr "Das ist das Vorgabe-Schema."
-
-#: lib/pp_admintools/app/set_ldap_password.py:391
+#: lib/pp_admintools/app/set_ldap_password.py:302
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr "Verwende LDAP-Instanz {inst!r} - {url}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:395
+#: lib/pp_admintools/app/set_ldap_password.py:306
 msgid "Current password of user {!r}:"
 msgstr "Aktuelles Passwort des Nutzers {!r}:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:396 lib/pp_admintools/app/set_ldap_password.py:416
-msgid "Repeat password:"
-msgstr "Passwort-Wiederholung:"
-
-#: lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/set_ldap_password.py:320
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr "Nicht-Admin-Nutzer müssen das Vorgabeschema {!r} für das Hashen des Passwortes verwenden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:415
+#: lib/pp_admintools/app/set_ldap_password.py:326
 msgid "New password of user {!r}:"
 msgstr "Neues Passwort für Nutzer {!r}:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:422
+#: lib/pp_admintools/app/set_ldap_password.py:332
 msgid "Checking the quality of the new password was disabled."
 msgstr "Die Überprüfung der Qualität des neuen Passwortes wurde deaktiviert."
 
-#: lib/pp_admintools/app/set_ldap_password.py:425
-msgid "Testing quality of new password ..."
-msgstr "Teste Qualität des neuen Passwortes …"
-
-#: lib/pp_admintools/app/set_ldap_password.py:429
-msgid "Quality of the new password is not sufficient:"
-msgstr "Die Qualität des neuen Passwortes ist nicht ausreichend:"
-
-#: lib/pp_admintools/app/set_ldap_password.py:434
-msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
-msgstr ""
-"Kann die Qualität des neuen Passwortes nicht überprüfen, da das Pythod-Modul {!r} nicht "
-"installiert ist."
-
-#: lib/pp_admintools/app/set_ldap_password.py:461
+#: lib/pp_admintools/app/set_ldap_password.py:362
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr "Trenne Verbindung des Nutzers zu LDAP-Server {} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:472
+#: lib/pp_admintools/app/set_ldap_password.py:373
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr "Teste eine Anmeldung am LDAP-Server {url} als aktueller Nutzer {dn!r} mit Passwort …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:385
 msgid "Successful connected as {dn!r} to {url}."
 msgstr "Erfolgreich als {dn!r} an {url} angemeldet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:490
+#: lib/pp_admintools/app/set_ldap_password.py:391
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr "Nutzer {dn!r} konnte nicht an {url} angemeldet werden: {e}"
 
-#: lib/pp_admintools/app/set_ldap_password.py:501
+#: lib/pp_admintools/app/set_ldap_password.py:402
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr "Versuche den aktuellen Passwort-Hash des Nutzers {!r} zu holen …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:540
+#: lib/pp_admintools/app/set_ldap_password.py:441
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
@@ -1600,43 +1609,35 @@ msgstr ""
 "Bitte einen anderen Nutzernamen oder den richtigen DN aus der folgenden Liste als Parameter für "
 "dieses Skript als Nutzername angeben:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:557
+#: lib/pp_admintools/app/set_ldap_password.py:458
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr "Ändern des Passwortes des Nutzers {dn!r} in der LDAP-Instanz {inst}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:564
-msgid "Setting password of {dn!r} with hashing schema {schema!r}."
-msgstr "Setze das Passwort von {dn!r} mit dem Hashing-Schema {schema!r}."
-
-#: lib/pp_admintools/app/set_ldap_password.py:566
+#: lib/pp_admintools/app/set_ldap_password.py:465
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr "Setze das Passwort von '{dn}' mit dem Hashing-Schema '{schema}'."
 
-#: lib/pp_admintools/app/set_ldap_password.py:571
+#: lib/pp_admintools/app/set_ldap_password.py:471
 msgid "Current password hash: '{}'."
 msgstr "Aktueller Passwort-Hash: '{}'"
 
-#: lib/pp_admintools/app/set_ldap_password.py:574
+#: lib/pp_admintools/app/set_ldap_password.py:474
 msgid "The user '{}' has currently no password."
 msgstr "Der Nutzer '{}' hat aktuell kein Passwort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:578
-msgid "Used schema: {!r}."
-msgstr "Verwendetes Schama : {!r}."
-
-#: lib/pp_admintools/app/set_ldap_password.py:580
+#: lib/pp_admintools/app/set_ldap_password.py:487
 msgid "New password hash: '{}'."
 msgstr "Neuer Passwort-Hash: '{}'."
 
-#: lib/pp_admintools/app/set_ldap_password.py:584
+#: lib/pp_admintools/app/set_ldap_password.py:491
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr "Neues Passwort setzen [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/set_ldap_password.py:590
+#: lib/pp_admintools/app/set_ldap_password.py:497
 msgid "Do not setting password for {!r}."
 msgstr "Passwort für {!r} wird nicht gesetzt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:606
+#: lib/pp_admintools/app/set_ldap_password.py:513
 msgid "Setting password ..."
 msgstr "Setze Passwort …"
 
@@ -1891,6 +1892,99 @@ msgstr "Suche nach API-Schlüssel für PowerDNS-Instanz {!r} …"
 msgid "Found API key of PDNS instance {inst!r}: {key!r}."
 msgstr "Fand API-Schlüssel für PowerDNS-Instanz {inst!r}: {key!r}."
 
+#: lib/pp_admintools/handler/ldap_password.py:56
+#, fuzzy
+msgid "Encryption schema {!r} inot found."
+msgstr "Der Ziel-Eintrag {!r} wurde nicht gefunden."
+
+#: lib/pp_admintools/handler/ldap_password.py:108
+msgid "The ancient and notorious 3 DES crypt method."
+msgstr "Die antike und berüchtigte 3 DES Verschlüsselungsmethode."
+
+#: lib/pp_admintools/handler/ldap_password.py:109 lib/pp_admintools/handler/ldap_password.py:112
+msgid "Pure {} hashing method."
+msgstr "Reine {}-hashing Methode."
+
+#: lib/pp_admintools/handler/ldap_password.py:110 lib/pp_admintools/handler/ldap_password.py:113
+#: lib/pp_admintools/handler/ldap_password.py:115 lib/pp_admintools/handler/ldap_password.py:117
+msgid "A {} based hashing algorithm."
+msgstr "Ein {}-basierter Hashing-Algorithmus"
+
+#: lib/pp_admintools/handler/ldap_password.py:111 lib/pp_admintools/handler/ldap_password.py:114
+#: lib/pp_admintools/handler/ldap_password.py:116 lib/pp_admintools/handler/ldap_password.py:118
+msgid "Salted {} hashing method."
+msgstr "Gesalzene {}-hashing Methode."
+
+#: lib/pp_admintools/handler/ldap_password.py:119
+msgid "A hashing method derived from {} with additional computing rounds."
+msgstr "Eine von {} abgeleitete Hashing-Methode mit zusätzlichen Berechnungsrunden."
+
+#: lib/pp_admintools/handler/ldap_password.py:240
+#, fuzzy
+msgid "Invalid schema {!r} given for update."
+msgstr "Ungültige Instanz {!r} angegeben."
+
+#: lib/pp_admintools/handler/ldap_password.py:277
+msgid "Usable Hashing schemes:"
+msgstr "Verfügbare Hashing-Schemen:"
+
+#: lib/pp_admintools/handler/ldap_password.py:286
+msgid "This schema cannot be used for authentication on a current freeradius server."
+msgstr ""
+"Dieses Schema kann nicht zur Authentifizierung an einem aktuellen Freeradius-Server verwendet "
+"werden."
+
+#: lib/pp_admintools/handler/ldap_password.py:290
+msgid "This is the default schema."
+msgstr "Das ist das Vorgabe-Schema."
+
+#: lib/pp_admintools/handler/ldap_password.py:334
+msgid "The password schema {!r} does not support a password salt."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:338
+msgid "The password salt must be at least by {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:342
+msgid "The password salt may have a length of maximum {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:352
+#, fuzzy
+msgid "Found invalid character {!r} in password salt."
+msgstr "Ungültige {what} {addr!r} in der Konfiguration gefunden."
+
+#: lib/pp_admintools/handler/ldap_password.py:365
+msgid "The password schema {!r} does not support calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:371
+msgid "Wrong value {v!r} for calculation rounds: {e}"
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:375
+msgid "The value for the calculation rounds has to be at least {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:380
+msgid "The value for the calculation rounds has to at most {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:413
+msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
+msgstr ""
+"Kann die Qualität des neuen Passwortes nicht überprüfen, da das Pythod-Modul {!r} nicht "
+"installiert ist."
+
+#: lib/pp_admintools/handler/ldap_password.py:419
+msgid "Testing quality of new password ..."
+msgstr "Teste Qualität des neuen Passwortes …"
+
+#: lib/pp_admintools/handler/ldap_password.py:423
+msgid "Quality of the new password is not sufficient:"
+msgstr "Die Qualität des neuen Passwortes ist nicht ausreichend:"
+
 #: lib/pp_admintools/xlate.py:97
 msgid "Module directory: {!r}"
 msgstr "Modul-Verzeichnis: {!r}"
index eeb585443aa9904d33b870afcd6c035f372c77d6..b7c299e447f0f1868c15c52f674392f5b3da38c0 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-11-03 16:37+0100\n"
+"POT-Creation-Date: 2022-11-11 16:38+0100\n"
 "PO-Revision-Date: 2022-11-03 16:45+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
@@ -22,7 +22,8 @@ msgstr ""
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/mk_ldap_passwd.py:95
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Options for {}"
 msgstr ""
 
@@ -118,10 +119,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
-#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
-#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:806 lib/pp_admintools/app/ldap.py:936
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1042
+#: lib/pp_admintools/app/ldap.py:1330 lib/pp_admintools/app/ldap.py:1364
+#: lib/pp_admintools/app/ldap.py:1398 lib/pp_admintools/app/ldap.py:1432
 msgid "Result:"
 msgstr ""
 
@@ -288,17 +289,17 @@ msgid "The path {!r} must be an absolute path."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1445
+#: lib/pp_admintools/app/ldap.py:1446
 msgid "The file {!r} does not exists."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1450
+#: lib/pp_admintools/app/ldap.py:1451
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1455
+#: lib/pp_admintools/app/ldap.py:1456
 msgid "The given file {!r} is not readable."
 msgstr ""
 
@@ -323,7 +324,7 @@ msgid "Options fo LDAP connections"
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:244
-#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:492
 msgid "No"
 msgstr ""
 
@@ -360,9 +361,9 @@ msgstr ""
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
-#: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
-#: lib/pp_admintools/app/set_ldap_password.py:227
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/mk_ldap_passwd.py:140
+#: lib/pp_admintools/app/set_ldap_password.py:130 lib/pp_admintools/app/set_ldap_password.py:131
+#: lib/pp_admintools/app/set_ldap_password.py:148 lib/pp_admintools/app/set_ldap_password.py:151
 msgid "PASSWORD"
 msgstr ""
 
@@ -376,8 +377,8 @@ msgid ""
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD_FILE"
 msgstr ""
 
@@ -477,230 +478,230 @@ msgstr "Connecting to LDAP server {url} as {dn!r} …"
 msgid "Finishing ..."
 msgstr "Finishing …"
 
-#: lib/pp_admintools/app/ldap.py:749
+#: lib/pp_admintools/app/ldap.py:750
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Disconnecting from all remaining LDAP instances …"
 
-#: lib/pp_admintools/app/ldap.py:762
+#: lib/pp_admintools/app/ldap.py:763
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Unbinding from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:769
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Disconnecting from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:792 lib/pp_admintools/app/ldap.py:831
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
-#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
-#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
-#: lib/pp_admintools/app/ldap.py:1326 lib/pp_admintools/app/ldap.py:1360
-#: lib/pp_admintools/app/ldap.py:1394 lib/pp_admintools/app/ldap.py:1428
+#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:835
+#: lib/pp_admintools/app/ldap.py:933 lib/pp_admintools/app/ldap.py:986
+#: lib/pp_admintools/app/ldap.py:1039 lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1361
+#: lib/pp_admintools/app/ldap.py:1395 lib/pp_admintools/app/ldap.py:1429
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:820
+#: lib/pp_admintools/app/ldap.py:821
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:856
+#: lib/pp_admintools/app/ldap.py:857
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Trying to evaluate DN of user {user!r} in LDAP instance {inst} …"
 
-#: lib/pp_admintools/app/ldap.py:861
+#: lib/pp_admintools/app/ldap.py:862
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Trying to evaluate DN of user {u!r} as a mail address …"
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:869
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Trying to evaluate DN of user {u!r} as a LDAP DN …"
 
-#: lib/pp_admintools/app/ldap.py:875
+#: lib/pp_admintools/app/ldap.py:876
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a UID (Posix user name) …"
 
-#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:885 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:887
+#: lib/pp_admintools/app/ldap.py:888
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a CN ({c}) …"
 
-#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1314
-#: lib/pp_admintools/app/ldap.py:1348 lib/pp_admintools/app/ldap.py:1382
-#: lib/pp_admintools/app/ldap.py:1416
+#: lib/pp_admintools/app/ldap.py:918 lib/pp_admintools/app/ldap.py:971
+#: lib/pp_admintools/app/ldap.py:1024 lib/pp_admintools/app/ldap.py:1315
+#: lib/pp_admintools/app/ldap.py:1349 lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:928
+#: lib/pp_admintools/app/ldap.py:929
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:939
+#: lib/pp_admintools/app/ldap.py:940
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:981
+#: lib/pp_admintools/app/ldap.py:982
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:993
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1034
+#: lib/pp_admintools/app/ldap.py:1035
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1045
+#: lib/pp_admintools/app/ldap.py:1046
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1063 lib/pp_admintools/app/set_ldap_password.py:411
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1081
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1090
+#: lib/pp_admintools/app/ldap.py:1091
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1113
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1123
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1130
+#: lib/pp_admintools/app/ldap.py:1131
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1175
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Creating entry {dn!r} on {uri}:"
 
-#: lib/pp_admintools/app/ldap.py:1181
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1188
+#: lib/pp_admintools/app/ldap.py:1189
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1203
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1205
+#: lib/pp_admintools/app/ldap.py:1206
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1208
+#: lib/pp_admintools/app/ldap.py:1209
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1215
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1225
+#: lib/pp_admintools/app/ldap.py:1226
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1236
+#: lib/pp_admintools/app/ldap.py:1237
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1238 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1239 lib/pp_admintools/app/ldap.py:1258
 #: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
 #: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
-#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1250
+#: lib/pp_admintools/app/ldap.py:1251
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1252
+#: lib/pp_admintools/app/ldap.py:1253
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1255
+#: lib/pp_admintools/app/ldap.py:1256
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1260
+#: lib/pp_admintools/app/ldap.py:1261
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1270
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Deleting LDAP entry {dn!r} on {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1276
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1281
+#: lib/pp_admintools/app/ldap.py:1282
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1286
+#: lib/pp_admintools/app/ldap.py:1287
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1288
+#: lib/pp_admintools/app/ldap.py:1289
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1291
+#: lib/pp_admintools/app/ldap.py:1292
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1296
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1442
+#: lib/pp_admintools/app/ldap.py:1443
 msgid "Reading password file {!r} ..."
 msgstr "Reading password file {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1473
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1478
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1489 lib/pp_admintools/app/ldap.py:1508
-#: lib/pp_admintools/app/ldap.py:1573
+#: lib/pp_admintools/app/ldap.py:1490 lib/pp_admintools/app/ldap.py:1509
+#: lib/pp_admintools/app/ldap.py:1574
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1542
+#: lib/pp_admintools/app/ldap.py:1543
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1546
+#: lib/pp_admintools/app/ldap.py:1547
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
@@ -808,7 +809,7 @@ msgid ""
 "zero, there is no waiting after a write. (default: {:.1f})"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:132
+#: lib/pp_admintools/app/mirror_ldap.py:132 lib/pp_admintools/app/mk_ldap_passwd.py:130
 msgid "NUMBER"
 msgstr ""
 
@@ -864,7 +865,7 @@ msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({t
 msgstr "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
 
 #: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/remove_ldap_user.py:280
-#: lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/set_ldap_password.py:492
 msgid "yes"
 msgstr ""
 
@@ -1090,6 +1091,63 @@ msgstr[1] ""
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
+#: lib/pp_admintools/app/mk_ldap_passwd.py:66
+msgid "Encrypting the password with a defined password schema."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:108
+msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:113
+msgid "TYPE"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
+msgid "Like {}"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:124 lib/pp_admintools/app/set_ldap_password.py:207
+msgid ""
+"A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
+"a salt."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:131 lib/pp_admintools/app/set_ldap_password.py:214
+msgid ""
+"The number of calculation rounds to use on hashing the password. Caution: not all hashing "
+"schemes are supporting calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:136
+msgid ""
+"The password to hash. If not given and no file desriptor was given, then the password will be "
+"requested on TTY."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:187
+#, fuzzy
+msgid "Got no password by {}."
+msgstr "Setting password …"
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:190
+msgid "Password:"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:191 lib/pp_admintools/app/set_ldap_password.py:307
+#: lib/pp_admintools/app/set_ldap_password.py:327
+msgid "Repeat password:"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:205
+#, fuzzy
+msgid "Encrypting password with hashing schema '{schema}' ..."
+msgstr "Setting password of '{dn}' with hashing schema '{schema}' …"
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:212 lib/pp_admintools/app/set_ldap_password.py:481
+msgid "Used schema: {!r}."
+msgstr ""
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr ""
@@ -1214,8 +1272,8 @@ msgstr ""
 msgid "Removing the user from LDAP."
 msgstr "Removing the user from LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:275
-#: lib/pp_admintools/app/set_ldap_password.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/set_ldap_password.py:203
 msgid "USER"
 msgstr ""
 
@@ -1290,15 +1348,15 @@ msgstr ""
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Evaluating DNs of the user {!r} to remove …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:533
+#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:434
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:538
+#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:439
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:453
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
@@ -1338,7 +1396,7 @@ msgstr ""
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Updating user info for {dn!r} on {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:612
+#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:519
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
@@ -1376,205 +1434,147 @@ msgstr ""
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:106
-msgid "The ancient and notorious 3 DES crypt method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:107 lib/pp_admintools/app/set_ldap_password.py:110
-msgid "Pure {} hashing method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:108 lib/pp_admintools/app/set_ldap_password.py:111
-#: lib/pp_admintools/app/set_ldap_password.py:113 lib/pp_admintools/app/set_ldap_password.py:115
-msgid "A {} based hashing algorithm."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:109 lib/pp_admintools/app/set_ldap_password.py:112
-#: lib/pp_admintools/app/set_ldap_password.py:114 lib/pp_admintools/app/set_ldap_password.py:116
-msgid "Salted {} hashing method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:117
-msgid "A hashing method derived from {} with additional computing rounds."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:163
+#: lib/pp_admintools/app/set_ldap_password.py:90
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:207
+#: lib/pp_admintools/app/set_ldap_password.py:131
 msgid "Use {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:212
+#: lib/pp_admintools/app/set_ldap_password.py:136
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "Use contents of {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:225
+#: lib/pp_admintools/app/set_ldap_password.py:149
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:233
+#: lib/pp_admintools/app/set_ldap_password.py:157
 msgid "Do not check the quality of the new password with the {} library."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:247
+#: lib/pp_admintools/app/set_ldap_password.py:172
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:252
+#: lib/pp_admintools/app/set_ldap_password.py:177
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:257
+#: lib/pp_admintools/app/set_ldap_password.py:182
 msgid "SCHEMA"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:186
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:191
 msgid "If not given, then your current user name {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:269
+#: lib/pp_admintools/app/set_ldap_password.py:194
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:322
+#: lib/pp_admintools/app/set_ldap_password.py:263
 msgid "Could not detect your current login name."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:327
+#: lib/pp_admintools/app/set_ldap_password.py:268
 msgid "The user {!r} will never be managed by LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:363
-msgid "Usable Hashing schemes:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:372
-msgid "This schema cannot be used for authentication on a current freeradius server."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:376
-msgid "This is the default schema."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:391
+#: lib/pp_admintools/app/set_ldap_password.py:302
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr "Using LDAP instance {inst!r} - {url}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:395
+#: lib/pp_admintools/app/set_ldap_password.py:306
 msgid "Current password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:396 lib/pp_admintools/app/set_ldap_password.py:416
-msgid "Repeat password:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/set_ldap_password.py:320
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:415
+#: lib/pp_admintools/app/set_ldap_password.py:326
 msgid "New password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:422
+#: lib/pp_admintools/app/set_ldap_password.py:332
 msgid "Checking the quality of the new password was disabled."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:425
-msgid "Testing quality of new password ..."
-msgstr "Testing quality of new password …"
-
-#: lib/pp_admintools/app/set_ldap_password.py:429
-msgid "Quality of the new password is not sufficient:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:434
-msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:461
+#: lib/pp_admintools/app/set_ldap_password.py:362
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr "Unbinding user connection from LDAP server {} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:472
+#: lib/pp_admintools/app/set_ldap_password.py:373
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr "Testing connect to LDAP-Server {url} with current user {dn!r} and password …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:385
 msgid "Successful connected as {dn!r} to {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:490
+#: lib/pp_admintools/app/set_ldap_password.py:391
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:501
+#: lib/pp_admintools/app/set_ldap_password.py:402
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr "Trying to get current password hash of user {!r} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:540
+#: lib/pp_admintools/app/set_ldap_password.py:441
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:557
+#: lib/pp_admintools/app/set_ldap_password.py:458
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr "Changing the password of user {dn!r} in LDAP instance {inst}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:564
-msgid "Setting password of {dn!r} with hashing schema {schema!r}."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:566
+#: lib/pp_admintools/app/set_ldap_password.py:465
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr "Setting password of '{dn}' with hashing schema '{schema}' …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:571
+#: lib/pp_admintools/app/set_ldap_password.py:471
 msgid "Current password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:574
+#: lib/pp_admintools/app/set_ldap_password.py:474
 msgid "The user '{}' has currently no password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:578
-msgid "Used schema: {!r}."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:580
+#: lib/pp_admintools/app/set_ldap_password.py:487
 msgid "New password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:584
+#: lib/pp_admintools/app/set_ldap_password.py:491
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:590
+#: lib/pp_admintools/app/set_ldap_password.py:497
 msgid "Do not setting password for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:606
+#: lib/pp_admintools/app/set_ldap_password.py:513
 msgid "Setting password ..."
 msgstr "Setting password …"
 
@@ -1829,6 +1829,92 @@ msgstr "Searching for API key of PDNS instance {!r} …"
 msgid "Found API key of PDNS instance {inst!r}: {key!r}."
 msgstr ""
 
+#: lib/pp_admintools/handler/ldap_password.py:56
+msgid "Encryption schema {!r} inot found."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:108
+msgid "The ancient and notorious 3 DES crypt method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:109 lib/pp_admintools/handler/ldap_password.py:112
+msgid "Pure {} hashing method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:110 lib/pp_admintools/handler/ldap_password.py:113
+#: lib/pp_admintools/handler/ldap_password.py:115 lib/pp_admintools/handler/ldap_password.py:117
+msgid "A {} based hashing algorithm."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:111 lib/pp_admintools/handler/ldap_password.py:114
+#: lib/pp_admintools/handler/ldap_password.py:116 lib/pp_admintools/handler/ldap_password.py:118
+msgid "Salted {} hashing method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:119
+msgid "A hashing method derived from {} with additional computing rounds."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:240
+msgid "Invalid schema {!r} given for update."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:277
+msgid "Usable Hashing schemes:"
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:286
+msgid "This schema cannot be used for authentication on a current freeradius server."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:290
+msgid "This is the default schema."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:334
+msgid "The password schema {!r} does not support a password salt."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:338
+msgid "The password salt must be at least by {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:342
+msgid "The password salt may have a length of maximum {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:352
+msgid "Found invalid character {!r} in password salt."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:365
+msgid "The password schema {!r} does not support calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:371
+msgid "Wrong value {v!r} for calculation rounds: {e}"
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:375
+msgid "The value for the calculation rounds has to be at least {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:380
+msgid "The value for the calculation rounds has to at most {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:413
+msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:419
+msgid "Testing quality of new password ..."
+msgstr "Testing quality of new password …"
+
+#: lib/pp_admintools/handler/ldap_password.py:423
+msgid "Quality of the new password is not sufficient:"
+msgstr ""
+
 #: lib/pp_admintools/xlate.py:97
 msgid "Module directory: {!r}"
 msgstr ""
index 4cc8603a0d80183505a609acdc2126e01053154d..a0360e29b65811c3ac9e754b102ecc71a01acb7e 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-11-03 16:37+0100\n"
+"POT-Creation-Date: 2022-11-11 16:38+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <frank.brehm@pixelpark.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -21,7 +21,8 @@ msgstr ""
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/dns_deploy_zones.py:262 lib/pp_admintools/app/mk_ldap_passwd.py:95
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Options for {}"
 msgstr ""
 
@@ -117,10 +118,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
-#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
-#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:806 lib/pp_admintools/app/ldap.py:936
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1042
+#: lib/pp_admintools/app/ldap.py:1330 lib/pp_admintools/app/ldap.py:1364
+#: lib/pp_admintools/app/ldap.py:1398 lib/pp_admintools/app/ldap.py:1432
 msgid "Result:"
 msgstr ""
 
@@ -287,17 +288,17 @@ msgid "The path {!r} must be an absolute path."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1445
+#: lib/pp_admintools/app/ldap.py:1446
 msgid "The file {!r} does not exists."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1450
+#: lib/pp_admintools/app/ldap.py:1451
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1455
+#: lib/pp_admintools/app/ldap.py:1456
 msgid "The given file {!r} is not readable."
 msgstr ""
 
@@ -322,7 +323,7 @@ msgid "Options fo LDAP connections"
 msgstr ""
 
 #: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:244
-#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:492
 msgid "No"
 msgstr ""
 
@@ -359,9 +360,9 @@ msgstr ""
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
-#: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
-#: lib/pp_admintools/app/set_ldap_password.py:227
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/mk_ldap_passwd.py:140
+#: lib/pp_admintools/app/set_ldap_password.py:130 lib/pp_admintools/app/set_ldap_password.py:131
+#: lib/pp_admintools/app/set_ldap_password.py:148 lib/pp_admintools/app/set_ldap_password.py:151
 msgid "PASSWORD"
 msgstr ""
 
@@ -375,8 +376,8 @@ msgid ""
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD_FILE"
 msgstr ""
 
@@ -476,230 +477,230 @@ msgstr ""
 msgid "Finishing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:749
+#: lib/pp_admintools/app/ldap.py:750
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:762
+#: lib/pp_admintools/app/ldap.py:763
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:769
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:792 lib/pp_admintools/app/ldap.py:831
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
-#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
-#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
-#: lib/pp_admintools/app/ldap.py:1326 lib/pp_admintools/app/ldap.py:1360
-#: lib/pp_admintools/app/ldap.py:1394 lib/pp_admintools/app/ldap.py:1428
+#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:835
+#: lib/pp_admintools/app/ldap.py:933 lib/pp_admintools/app/ldap.py:986
+#: lib/pp_admintools/app/ldap.py:1039 lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1361
+#: lib/pp_admintools/app/ldap.py:1395 lib/pp_admintools/app/ldap.py:1429
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:820
+#: lib/pp_admintools/app/ldap.py:821
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:856
+#: lib/pp_admintools/app/ldap.py:857
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:861
+#: lib/pp_admintools/app/ldap.py:862
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:869
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:875
+#: lib/pp_admintools/app/ldap.py:876
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:885 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:887
+#: lib/pp_admintools/app/ldap.py:888
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1314
-#: lib/pp_admintools/app/ldap.py:1348 lib/pp_admintools/app/ldap.py:1382
-#: lib/pp_admintools/app/ldap.py:1416
+#: lib/pp_admintools/app/ldap.py:918 lib/pp_admintools/app/ldap.py:971
+#: lib/pp_admintools/app/ldap.py:1024 lib/pp_admintools/app/ldap.py:1315
+#: lib/pp_admintools/app/ldap.py:1349 lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:928
+#: lib/pp_admintools/app/ldap.py:929
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:939
+#: lib/pp_admintools/app/ldap.py:940
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:981
+#: lib/pp_admintools/app/ldap.py:982
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:993
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1034
+#: lib/pp_admintools/app/ldap.py:1035
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1045
+#: lib/pp_admintools/app/ldap.py:1046
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1063 lib/pp_admintools/app/set_ldap_password.py:411
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1081
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1090
+#: lib/pp_admintools/app/ldap.py:1091
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1113
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1123
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1130
+#: lib/pp_admintools/app/ldap.py:1131
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1175
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1181
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1188
+#: lib/pp_admintools/app/ldap.py:1189
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1203
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1205
+#: lib/pp_admintools/app/ldap.py:1206
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1208
+#: lib/pp_admintools/app/ldap.py:1209
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1215
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1225
+#: lib/pp_admintools/app/ldap.py:1226
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1236
+#: lib/pp_admintools/app/ldap.py:1237
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1238 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1239 lib/pp_admintools/app/ldap.py:1258
 #: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
 #: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
-#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1250
+#: lib/pp_admintools/app/ldap.py:1251
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1252
+#: lib/pp_admintools/app/ldap.py:1253
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1255
+#: lib/pp_admintools/app/ldap.py:1256
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1260
+#: lib/pp_admintools/app/ldap.py:1261
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1270
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1276
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1281
+#: lib/pp_admintools/app/ldap.py:1282
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1286
+#: lib/pp_admintools/app/ldap.py:1287
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1288
+#: lib/pp_admintools/app/ldap.py:1289
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1291
+#: lib/pp_admintools/app/ldap.py:1292
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1296
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1442
+#: lib/pp_admintools/app/ldap.py:1443
 msgid "Reading password file {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1473
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1478
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1489 lib/pp_admintools/app/ldap.py:1508
-#: lib/pp_admintools/app/ldap.py:1573
+#: lib/pp_admintools/app/ldap.py:1490 lib/pp_admintools/app/ldap.py:1509
+#: lib/pp_admintools/app/ldap.py:1574
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1542
+#: lib/pp_admintools/app/ldap.py:1543
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1546
+#: lib/pp_admintools/app/ldap.py:1547
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
@@ -807,7 +808,7 @@ msgid ""
 "zero, there is no waiting after a write. (default: {:.1f})"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:132
+#: lib/pp_admintools/app/mirror_ldap.py:132 lib/pp_admintools/app/mk_ldap_passwd.py:130
 msgid "NUMBER"
 msgstr ""
 
@@ -863,7 +864,7 @@ msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({t
 msgstr ""
 
 #: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/remove_ldap_user.py:280
-#: lib/pp_admintools/app/set_ldap_password.py:585
+#: lib/pp_admintools/app/set_ldap_password.py:492
 msgid "yes"
 msgstr ""
 
@@ -1089,6 +1090,61 @@ msgstr[1] ""
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
+#: lib/pp_admintools/app/mk_ldap_passwd.py:66
+msgid "Encrypting the password with a defined password schema."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:108
+msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:113
+msgid "TYPE"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
+msgid "Like {}"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:124 lib/pp_admintools/app/set_ldap_password.py:207
+msgid ""
+"A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
+"a salt."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:131 lib/pp_admintools/app/set_ldap_password.py:214
+msgid ""
+"The number of calculation rounds to use on hashing the password. Caution: not all hashing "
+"schemes are supporting calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:136
+msgid ""
+"The password to hash. If not given and no file desriptor was given, then the password will be "
+"requested on TTY."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:187
+msgid "Got no password by {}."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:190
+msgid "Password:"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:191 lib/pp_admintools/app/set_ldap_password.py:307
+#: lib/pp_admintools/app/set_ldap_password.py:327
+msgid "Repeat password:"
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:205
+msgid "Encrypting password with hashing schema '{schema}' ..."
+msgstr ""
+
+#: lib/pp_admintools/app/mk_ldap_passwd.py:212 lib/pp_admintools/app/set_ldap_password.py:481
+msgid "Used schema: {!r}."
+msgstr ""
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr ""
@@ -1213,8 +1269,8 @@ msgstr ""
 msgid "Removing the user from LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:275
-#: lib/pp_admintools/app/set_ldap_password.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:200
+#: lib/pp_admintools/app/set_ldap_password.py:203
 msgid "USER"
 msgstr ""
 
@@ -1289,15 +1345,15 @@ msgstr ""
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:533
+#: lib/pp_admintools/app/remove_ldap_user.py:300 lib/pp_admintools/app/set_ldap_password.py:434
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:538
+#: lib/pp_admintools/app/remove_ldap_user.py:307 lib/pp_admintools/app/set_ldap_password.py:439
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:319 lib/pp_admintools/app/set_ldap_password.py:453
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
@@ -1337,7 +1393,7 @@ msgstr ""
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:612
+#: lib/pp_admintools/app/remove_ldap_user.py:415 lib/pp_admintools/app/set_ldap_password.py:519
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
@@ -1375,205 +1431,147 @@ msgstr ""
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:106
-msgid "The ancient and notorious 3 DES crypt method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:107 lib/pp_admintools/app/set_ldap_password.py:110
-msgid "Pure {} hashing method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:108 lib/pp_admintools/app/set_ldap_password.py:111
-#: lib/pp_admintools/app/set_ldap_password.py:113 lib/pp_admintools/app/set_ldap_password.py:115
-msgid "A {} based hashing algorithm."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:109 lib/pp_admintools/app/set_ldap_password.py:112
-#: lib/pp_admintools/app/set_ldap_password.py:114 lib/pp_admintools/app/set_ldap_password.py:116
-msgid "Salted {} hashing method."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:117
-msgid "A hashing method derived from {} with additional computing rounds."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:163
+#: lib/pp_admintools/app/set_ldap_password.py:90
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:207
+#: lib/pp_admintools/app/set_ldap_password.py:131
 msgid "Use {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:212
+#: lib/pp_admintools/app/set_ldap_password.py:136
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:220
+#: lib/pp_admintools/app/set_ldap_password.py:144
 msgid "Use contents of {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:225
+#: lib/pp_admintools/app/set_ldap_password.py:149
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:233
+#: lib/pp_admintools/app/set_ldap_password.py:157
 msgid "Do not check the quality of the new password with the {} library."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:247
+#: lib/pp_admintools/app/set_ldap_password.py:172
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:252
+#: lib/pp_admintools/app/set_ldap_password.py:177
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:257
+#: lib/pp_admintools/app/set_ldap_password.py:182
 msgid "SCHEMA"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:186
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:191
 msgid "If not given, then your current user name {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:269
+#: lib/pp_admintools/app/set_ldap_password.py:194
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:322
+#: lib/pp_admintools/app/set_ldap_password.py:263
 msgid "Could not detect your current login name."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:327
+#: lib/pp_admintools/app/set_ldap_password.py:268
 msgid "The user {!r} will never be managed by LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:363
-msgid "Usable Hashing schemes:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:372
-msgid "This schema cannot be used for authentication on a current freeradius server."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:376
-msgid "This is the default schema."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:391
+#: lib/pp_admintools/app/set_ldap_password.py:302
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:395
+#: lib/pp_admintools/app/set_ldap_password.py:306
 msgid "Current password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:396 lib/pp_admintools/app/set_ldap_password.py:416
-msgid "Repeat password:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/set_ldap_password.py:320
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:415
+#: lib/pp_admintools/app/set_ldap_password.py:326
 msgid "New password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:422
+#: lib/pp_admintools/app/set_ldap_password.py:332
 msgid "Checking the quality of the new password was disabled."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:425
-msgid "Testing quality of new password ..."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:429
-msgid "Quality of the new password is not sufficient:"
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:434
-msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:461
+#: lib/pp_admintools/app/set_ldap_password.py:362
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:472
+#: lib/pp_admintools/app/set_ldap_password.py:373
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:385
 msgid "Successful connected as {dn!r} to {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:490
+#: lib/pp_admintools/app/set_ldap_password.py:391
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:501
+#: lib/pp_admintools/app/set_ldap_password.py:402
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:540
+#: lib/pp_admintools/app/set_ldap_password.py:441
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:557
+#: lib/pp_admintools/app/set_ldap_password.py:458
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:564
-msgid "Setting password of {dn!r} with hashing schema {schema!r}."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:566
+#: lib/pp_admintools/app/set_ldap_password.py:465
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:571
+#: lib/pp_admintools/app/set_ldap_password.py:471
 msgid "Current password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:574
+#: lib/pp_admintools/app/set_ldap_password.py:474
 msgid "The user '{}' has currently no password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:578
-msgid "Used schema: {!r}."
-msgstr ""
-
-#: lib/pp_admintools/app/set_ldap_password.py:580
+#: lib/pp_admintools/app/set_ldap_password.py:487
 msgid "New password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:584
+#: lib/pp_admintools/app/set_ldap_password.py:491
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:590
+#: lib/pp_admintools/app/set_ldap_password.py:497
 msgid "Do not setting password for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:606
+#: lib/pp_admintools/app/set_ldap_password.py:513
 msgid "Setting password ..."
 msgstr ""
 
@@ -1828,6 +1826,92 @@ msgstr ""
 msgid "Found API key of PDNS instance {inst!r}: {key!r}."
 msgstr ""
 
+#: lib/pp_admintools/handler/ldap_password.py:56
+msgid "Encryption schema {!r} inot found."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:108
+msgid "The ancient and notorious 3 DES crypt method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:109 lib/pp_admintools/handler/ldap_password.py:112
+msgid "Pure {} hashing method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:110 lib/pp_admintools/handler/ldap_password.py:113
+#: lib/pp_admintools/handler/ldap_password.py:115 lib/pp_admintools/handler/ldap_password.py:117
+msgid "A {} based hashing algorithm."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:111 lib/pp_admintools/handler/ldap_password.py:114
+#: lib/pp_admintools/handler/ldap_password.py:116 lib/pp_admintools/handler/ldap_password.py:118
+msgid "Salted {} hashing method."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:119
+msgid "A hashing method derived from {} with additional computing rounds."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:240
+msgid "Invalid schema {!r} given for update."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:277
+msgid "Usable Hashing schemes:"
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:286
+msgid "This schema cannot be used for authentication on a current freeradius server."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:290
+msgid "This is the default schema."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:334
+msgid "The password schema {!r} does not support a password salt."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:338
+msgid "The password salt must be at least by {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:342
+msgid "The password salt may have a length of maximum {} characters."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:352
+msgid "Found invalid character {!r} in password salt."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:365
+msgid "The password schema {!r} does not support calculation rounds."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:371
+msgid "Wrong value {v!r} for calculation rounds: {e}"
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:375
+msgid "The value for the calculation rounds has to be at least {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:380
+msgid "The value for the calculation rounds has to at most {}."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:413
+msgid "Cannot testing the quality of the new password, because the Python module {!r} is not installed."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:419
+msgid "Testing quality of new password ..."
+msgstr ""
+
+#: lib/pp_admintools/handler/ldap_password.py:423
+msgid "Quality of the new password is not sufficient:"
+msgstr ""
+
 #: lib/pp_admintools/xlate.py:97
 msgid "Module directory: {!r}"
 msgstr ""