Use 'secrets' module to generate secrets

Python 3.6+ has this
This commit is contained in:
YuviPanda
2021-03-29 16:00:35 +05:30
parent cebb1f3e22
commit 9f6467be05
3 changed files with 6 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ import json
import logging import logging
import os import os
import re import re
import secrets
import signal import signal
import socket import socket
import sys import sys
@@ -1458,7 +1459,7 @@ class JupyterHub(Application):
if not secret: if not secret:
secret_from = 'new' secret_from = 'new'
self.log.debug("Generating new %s", trait_name) self.log.debug("Generating new %s", trait_name)
secret = os.urandom(COOKIE_SECRET_BYTES) secret = secrets.token_bytes(COOKIE_SECRET_BYTES)
if secret_file and secret_from == 'new': if secret_file and secret_from == 'new':
# if we generated a new secret, store it in the secret_file # if we generated a new secret, store it in the secret_file

View File

@@ -13,6 +13,7 @@ import importlib
import json import json
import os import os
import random import random
import secrets
from datetime import datetime from datetime import datetime
from datetime import timezone from datetime import timezone
from textwrap import dedent from textwrap import dedent
@@ -243,7 +244,7 @@ class SingleUserNotebookAppMixin(Configurable):
cookie_secret = Bytes() cookie_secret = Bytes()
def _cookie_secret_default(self): def _cookie_secret_default(self):
return os.urandom(32) return secrets.token_bytes(32)
user = CUnicode().tag(config=True) user = CUnicode().tag(config=True)
group = CUnicode().tag(config=True) group = CUnicode().tag(config=True)

View File

@@ -8,6 +8,7 @@ import hashlib
import inspect import inspect
import os import os
import random import random
import secrets
import socket import socket
import ssl import ssl
import sys import sys
@@ -319,7 +320,7 @@ def hash_token(token, salt=8, rounds=16384, algorithm='sha512'):
""" """
h = hashlib.new(algorithm) h = hashlib.new(algorithm)
if isinstance(salt, int): if isinstance(salt, int):
salt = b2a_hex(os.urandom(salt)) salt = b2a_hex(secrets.token_bytes(salt))
if isinstance(salt, bytes): if isinstance(salt, bytes):
bsalt = salt bsalt = salt
salt = salt.decode('utf8') salt = salt.decode('utf8')