comparison cutils/genpwd.py @ 232:7ac8a2537bc9

Implement the urlsafe base64 character repertoire
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 07 Feb 2025 13:38:06 +0100
parents 6d8443878a00
children 5f4c81313be7
comparison
equal deleted inserted replaced
231:6d8443878a00 232:7ac8a2537bc9
41 " length within a character repertoire", 41 " length within a character repertoire",
42 fromfile_prefix_chars='@') 42 fromfile_prefix_chars='@')
43 aparser.add_argument( 43 aparser.add_argument(
44 "--repertoire", "--type", "-t", 44 "--repertoire", "--type", "-t",
45 choices=("web", "web-safe", "web-safe2", 45 choices=("web", "web-safe", "web-safe2",
46 "base64", "base32", "ascii85", ), 46 "base64", "urlsafe-base64", "urlsafe", "base32", "ascii85", ),
47 default="web-safe2", 47 default="web-safe2",
48 help="Select the character repertoire. Default: web-safe2") 48 help="Select the character repertoire. Default: web-safe2")
49 aparser.add_argument( 49 aparser.add_argument(
50 "--version", "-v", action="version", 50 "--version", "-v", action="version",
51 version="%s (rv:%s)" % (__version__, __revision__)) 51 version="%s (rv:%s)" % (__version__, __revision__))
62 elif opts.repertoire == "web-safe2": 62 elif opts.repertoire == "web-safe2":
63 pwd = gen_web(opts.req_length, WEB_SAFE2_CHARS) 63 pwd = gen_web(opts.req_length, WEB_SAFE2_CHARS)
64 elif opts.repertoire == "base64": 64 elif opts.repertoire == "base64":
65 encoder = base64.b64encode 65 encoder = base64.b64encode
66 pwd = gen_bin(opts.req_length, encoder) 66 pwd = gen_bin(opts.req_length, encoder)
67 elif opts.repertoire in ("urlsafe-base64", "urlsafe"):
68 encoder = base64.urlsafe_b64encode
69 pwd = gen_bin(opts.req_length, encoder)
67 elif opts.repertoire == "base32": 70 elif opts.repertoire == "base32":
68 encoder = base64.b32encode 71 encoder = base64.b32encode
69 pwd = gen_bin(opts.req_length, encoder) 72 pwd = gen_bin(opts.req_length, encoder)
70 elif opts.repertoire == "ascii85": 73 elif opts.repertoire == "ascii85":
71 encoder = base64.a85encode 74 encoder = base64.a85encode