support python >= 3.6 only; update readme
This commit is contained in:
		
							
								
								
									
										37
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								README.md
									
									
									
									
									
								
							@ -6,11 +6,10 @@ The functionality is heavily inspired by [HSXKPasswd](https://github.com/bbussch
 | 
				
			|||||||
# Why
 | 
					# Why
 | 
				
			||||||
Because Randall Munroe says so.
 | 
					Because Randall Munroe says so.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
![alt text][xkcd]
 | 
					
 | 
				
			||||||
[xkcd]: http://imgs.xkcd.com/comics/password_strength.png
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Requirements
 | 
					# Requirements
 | 
				
			||||||
Python 2 or 3 as well as myspell-dictionaries for the language(s) you want to use.
 | 
					Python 3 as well as my-/hunspell-dictionaries for the language(s) you want to use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# What
 | 
					# What
 | 
				
			||||||
A password/passphrase generator. See below for some example usage.
 | 
					A password/passphrase generator. See below for some example usage.
 | 
				
			||||||
@ -21,25 +20,27 @@ $ sudo python3 setup.py install
 | 
				
			|||||||
...
 | 
					...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$ pwgen --help
 | 
					$ pwgen --help
 | 
				
			||||||
usage: pwgen [-h] [--generate-config] [--config-file CONFIG_FILE]
 | 
					usage: pwgen [-h] [--quiet] [--generate-config] [--config-file CONFIG_FILE] [--myspell-dir MYSPELL_DIR] [--encoding ENCODING]
 | 
				
			||||||
             [--myspell-dir MYSPELL_DIR] [--lang LANG]
 | 
					             [--unmunch-bin UNMUNCH_BIN] [--lang LANG] [--word-min-char WORD_MIN_CHAR] [--word-max-char WORD_MAX_CHAR] [--words WORDS]
 | 
				
			||||||
             [--word-min-char WORD_MIN_CHAR] [--word-max-char WORD_MAX_CHAR]
 | 
					             [--capitalize {true,false,random}] [--separators SEPARATORS] [--trailing-digits TRAILING_DIGITS]
 | 
				
			||||||
             [--words WORDS] [--capitalize {true,false,random}]
 | 
					             [--leading-digits LEADING_DIGITS] [--special-chars SPECIAL_CHARS] [--trailing-chars TRAILING_CHARS]
 | 
				
			||||||
             [--separators SEPARATORS] [--trailing-digits TRAILING_DIGITS]
 | 
					             [--leading-chars LEADING_CHARS] [--passwords PASSWORDS] [--max-length MAX_LENGTH]
 | 
				
			||||||
             [--leading-digits LEADING_DIGITS] [--special-chars SPECIAL_CHARS]
 | 
					 | 
				
			||||||
             [--trailing-chars TRAILING_CHARS] [--leading-chars LEADING_CHARS]
 | 
					 | 
				
			||||||
             [--passwords PASSWORDS] [--max-length MAX_LENGTH]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Generate passwords
 | 
					Generate passwords
 | 
				
			||||||
 | 
					
 | 
				
			||||||
optional arguments:
 | 
					optional arguments:
 | 
				
			||||||
  -h, --help            show this help message and exit
 | 
					  -h, --help            show this help message and exit
 | 
				
			||||||
 | 
					  --quiet, -q           Only echo the generated passwords.
 | 
				
			||||||
  --generate-config, -g
 | 
					  --generate-config, -g
 | 
				
			||||||
                        Generate configuration file and then exit
 | 
					                        Generate configuration file and then exit
 | 
				
			||||||
  --config-file CONFIG_FILE, -c CONFIG_FILE
 | 
					  --config-file CONFIG_FILE, -c CONFIG_FILE
 | 
				
			||||||
                        Configuration file to use
 | 
					                        Configuration file to use
 | 
				
			||||||
  --myspell-dir MYSPELL_DIR, -i MYSPELL_DIR
 | 
					  --myspell-dir MYSPELL_DIR, -i MYSPELL_DIR
 | 
				
			||||||
                        Directory containing myspell dictionaries
 | 
					                        Directory containing myspell dictionaries
 | 
				
			||||||
 | 
					  --encoding ENCODING, -e ENCODING
 | 
				
			||||||
 | 
					                        Character encoding of the directory
 | 
				
			||||||
 | 
					  --unmunch-bin UNMUNCH_BIN, -u UNMUNCH_BIN
 | 
				
			||||||
 | 
					                        Path to my/hunspell unmunch binary
 | 
				
			||||||
  --lang LANG, -l LANG  Dictionary language to use
 | 
					  --lang LANG, -l LANG  Dictionary language to use
 | 
				
			||||||
  --word-min-char WORD_MIN_CHAR, -m WORD_MIN_CHAR
 | 
					  --word-min-char WORD_MIN_CHAR, -m WORD_MIN_CHAR
 | 
				
			||||||
                        Minimum number of characters in a word
 | 
					                        Minimum number of characters in a word
 | 
				
			||||||
@ -58,17 +59,13 @@ optional arguments:
 | 
				
			|||||||
  --special-chars SPECIAL_CHARS, -S SPECIAL_CHARS
 | 
					  --special-chars SPECIAL_CHARS, -S SPECIAL_CHARS
 | 
				
			||||||
                        Possible characters to use as extra special characters
 | 
					                        Possible characters to use as extra special characters
 | 
				
			||||||
  --trailing-chars TRAILING_CHARS, -p TRAILING_CHARS
 | 
					  --trailing-chars TRAILING_CHARS, -p TRAILING_CHARS
 | 
				
			||||||
                        Number of special characters to add at the end of the
 | 
					                        Number of special characters to add at the end of the passphrase
 | 
				
			||||||
                        passphrase
 | 
					 | 
				
			||||||
  --leading-chars LEADING_CHARS, -P LEADING_CHARS
 | 
					  --leading-chars LEADING_CHARS, -P LEADING_CHARS
 | 
				
			||||||
                        Number of special characters to add at the start of
 | 
					                        Number of special characters to add at the start of the passphrase
 | 
				
			||||||
                        the passphrase
 | 
					 | 
				
			||||||
  --passwords PASSWORDS, -n PASSWORDS
 | 
					  --passwords PASSWORDS, -n PASSWORDS
 | 
				
			||||||
                        Number of passwords to generate
 | 
					                        Number of passwords to generate
 | 
				
			||||||
  --max-length MAX_LENGTH, -L MAX_LENGTH
 | 
					  --max-length MAX_LENGTH, -L MAX_LENGTH
 | 
				
			||||||
                        Maximum length of the generated passwords. Full-
 | 
					                        Maximum length of the generated passwords. Full-knowledge entropy calculation doesn't work when this is set.
 | 
				
			||||||
                        knowledge entropy calculation doesn't work when this
 | 
					 | 
				
			||||||
                        is set.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
$ pwgen -g --myspell-dir /usr/share/hunspell --lang sv_SE
 | 
					$ pwgen -g --myspell-dir /usr/share/hunspell --lang sv_SE
 | 
				
			||||||
Missing configuration file; generating a new at /home/user/.pwgen.cfg
 | 
					Missing configuration file; generating a new at /home/user/.pwgen.cfg
 | 
				
			||||||
@ -87,7 +84,3 @@ Blind entropy	Password
 | 
				
			|||||||
========================
 | 
					========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
# TODO
 | 
					 | 
				
			||||||
* documentation
 | 
					 | 
				
			||||||
* webservice
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,22 +1,13 @@
 | 
				
			|||||||
#!/usr/bin/python3
 | 
					#!/usr/bin/python3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import configparser
 | 
				
			||||||
 | 
					import locale
 | 
				
			||||||
import math
 | 
					import math
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import subprocess
 | 
					import subprocess
 | 
				
			||||||
import locale
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if sys.version_info[0] < 3:
 | 
					import secrets as random
 | 
				
			||||||
    import ConfigParser as configparser
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    import configparser
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if sys.version_info >= (3, 6):
 | 
					 | 
				
			||||||
    do_seed = False
 | 
					 | 
				
			||||||
    import secrets as random
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    do_seed = True
 | 
					 | 
				
			||||||
    import random
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DictReadError(Exception):
 | 
					class DictReadError(Exception):
 | 
				
			||||||
    pass
 | 
					    pass
 | 
				
			||||||
@ -161,8 +152,6 @@ def generate_passwords(conf):
 | 
				
			|||||||
    capitalize = conf.get('passwords', 'capitalize')
 | 
					    capitalize = conf.get('passwords', 'capitalize')
 | 
				
			||||||
    max_len = conf.getint('passwords', 'max_length')
 | 
					    max_len = conf.getint('passwords', 'max_length')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if do_seed:
 | 
					 | 
				
			||||||
        random.seed()
 | 
					 | 
				
			||||||
    res = {}
 | 
					    res = {}
 | 
				
			||||||
    dict_data = _read_dictionary(conf)
 | 
					    dict_data = _read_dictionary(conf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										9
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								setup.py
									
									
									
									
									
								
							@ -8,24 +8,23 @@ except ImportError:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import pwgen
 | 
					import pwgen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
version = '0.1'
 | 
					version = '1.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setup(
 | 
					setup(
 | 
				
			||||||
        name='pwgen',
 | 
					        name='pwgen',
 | 
				
			||||||
        version=str(version),
 | 
					        version=str(version),
 | 
				
			||||||
        description="Passphrase generator",
 | 
					        description="Passphrase generator",
 | 
				
			||||||
        author="Fredrik Eriksson",
 | 
					        author="Fredrik Eriksson",
 | 
				
			||||||
        author_email="pwgen@wb9.se",
 | 
					        author_email="feffe@fulh.ax",
 | 
				
			||||||
        url="https://github.com/fredrik-eriksson/pwgen",
 | 
					        url="https://gitea.fulh.ax/feffe/pwgen",
 | 
				
			||||||
        platforms=['any'],
 | 
					        platforms=['any'],
 | 
				
			||||||
        license='BSD',
 | 
					        license='BSD',
 | 
				
			||||||
        packages=['pwgen'],
 | 
					        packages=['pwgen'],
 | 
				
			||||||
        classifiers=[
 | 
					        classifiers=[
 | 
				
			||||||
            'Development Status :: 1 - Planning',
 | 
					            'Development Status :: 5 - Production/Stable'
 | 
				
			||||||
            'Environment :: Console',
 | 
					            'Environment :: Console',
 | 
				
			||||||
            'Intended Audience :: System Administrators',
 | 
					            'Intended Audience :: System Administrators',
 | 
				
			||||||
            'License :: OSI Approved :: BSD License',
 | 
					            'License :: OSI Approved :: BSD License',
 | 
				
			||||||
            'Programming Language :: Python :: 2',
 | 
					 | 
				
			||||||
            'Programming Language :: Python :: 3',
 | 
					            'Programming Language :: Python :: 3',
 | 
				
			||||||
            'Topic :: Utilities',
 | 
					            'Topic :: Utilities',
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user