Skip to main content

Crate uselesskey_core_token_shape

Crate uselesskey_core_token_shape 

Source
Expand description

Token shape generation primitives for test fixtures.

Generates realistic-looking API keys, bearer tokens, and OAuth access tokens from deterministic seed material.

§Examples

use uselesskey_core_token_shape::{generate_token, TokenKind, authorization_scheme};
use uselesskey_core_seed::Seed;

let seed = Seed::new([42u8; 32]);

// Generate an API key (prefixed with `uk_test_`)
let api_key = generate_token("my-service", TokenKind::ApiKey, seed);
assert!(api_key.starts_with("uk_test_"));

// Generate a bearer token (base64url-encoded random bytes)
let bearer = generate_token("my-service", TokenKind::Bearer, seed);
assert_eq!(authorization_scheme(TokenKind::Bearer), "Bearer");

// Generate an OAuth access token (JWT-shaped: header.payload.signature)
let oauth = generate_token("my-service", TokenKind::OAuthAccessToken, seed);
assert_eq!(oauth.matches('.').count(), 2);

Enums§

TokenKind
Token shape kind. Specification for token fixture generation.

Constants§

API_KEY_PREFIX
Prefix used for API-key token fixtures.
API_KEY_RANDOM_LEN
Number of random base62 characters used in API-key fixtures.
BEARER_RANDOM_BYTES
Number of raw random bytes in opaque bearer tokens.
OAUTH_JTI_BYTES
Number of random bytes used for OAuth jti.
OAUTH_SIGNATURE_BYTES
Number of random bytes used for OAuth signature-like segment.

Functions§

authorization_scheme
Return HTTP authorization scheme for the token kind.
generate_api_key
Generate an API-key style token fixture (uk_test_<base62>).
generate_bearer_token
Generate an opaque bearer token fixture (base64url of 32 random bytes).
generate_oauth_access_token
Generate an OAuth access token fixture in JWT shape (header.payload.signature).
generate_token
Generate a token value for the provided shape kind.
random_base62
Generate a deterministic base62 string from the provided seed.