Source code for aiogoogle.auth.utils

__all__ = ["create_secret"]

import hashlib
import os
import datetime
import sys

from ..utils import _parse_isoformat


[docs]def create_secret(bytes_length=1024): # pragma: no cover # return hashlib.sha256(os.urandom(bytes_length << 3)).hexdigest() return hashlib.sha256(os.urandom(bytes_length)).hexdigest()
def _get_expires_at(expires_in): expires_at = datetime.datetime.utcnow() + datetime.timedelta(seconds=expires_in) # account for clock skew expires_at -= datetime.timedelta(seconds=120) return expires_at.isoformat() def _is_expired(expires_at): # Refresh in case there's no expires_at present if expires_at is None: return True if not isinstance(expires_at, datetime.datetime): # datetime.fromisoformat is 3.7+ if sys.version_info[1] <= 6: expires_at = _parse_isoformat(expires_at) else: expires_at = datetime.datetime.fromisoformat(expires_at) if datetime.datetime.utcnow() >= expires_at: return True else: return False