oncall-engine/engine/apps/auth_token/tests/test_crypto.py

24 lines
702 B
Python
Raw Permalink Normal View History

import binascii
from hmac import compare_digest
from apps.auth_token.crypto import (
generate_plugin_token_string,
generate_plugin_token_string_and_salt,
hash_token_string,
)
def test_plugin_token_round_trip():
stack_id = 100
org_id = 100
hex_token, hex_salt = generate_plugin_token_string_and_salt(stack_id, org_id)
hex_signature = hash_token_string(hex_token)
raw_salt = binascii.unhexlify(hex_salt)
hex_recreated_token = generate_plugin_token_string(raw_salt, stack_id, org_id)
hex_recreated_signature = hash_token_string(hex_recreated_token)
assert hex_token == hex_recreated_token
assert compare_digest(hex_signature, hex_recreated_signature)