<filename>nonebot/adapters/ding/utils.py
import hmac
import base64
import hashlib

from nonebot.utils import logger_wrapper

log = logger_wrapper("DING")


def calc_hmac_base64(timestamp: str, secret: str):
    secret_enc = secret.encode("utf-8")
    string_to_sign = "{}\n{}".format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode("utf-8")
    hmac_code = hmac.new(
        secret_enc, string_to_sign_enc, digestmod=hashlib.sha256
    ).digest()
    return base64.b64encode(hmac_code)
