/** * HMAC signature helpers for testing bot authentication * * Provides functions to create HMAC-SHA256 signatures for testing * bot-to-API authentication flows. * * @example * ```typescript * // Create a bot signature * const timestamp = Math.floor(Date.now() / 1000).toString(); * const signature = await createBotSignature( * timestamp, * 'user-discord-id', * 'username', * 'signing-secret' * ); * * // Use in request headers * const headers = { * 'X-Request-Signature': signature, * 'X-Request-Timestamp': timestamp, * 'X-User-Discord-ID': 'user-discord-id', * 'X-User-Discord-Name': 'username', * }; * ``` */ /** Default signing secret for tests (>= 32 bytes for FINDING-009 HMAC minimum) */ export declare const TEST_SIGNING_SECRET = "test-signing-secret-at-least-32-bytes!!!"; /** * Creates an HMAC-SHA256 signature for bot authentication * * The signature is created from: `${timestamp}:${userDiscordId}:${userName}` * * @param timestamp - Unix timestamp string * @param userDiscordId - Discord user ID * @param userName - Discord username * @param secret - Signing secret (defaults to TEST_SIGNING_SECRET) * @returns Hex-encoded HMAC-SHA256 signature */ export declare function createBotSignature(timestamp: string, userDiscordId: string, userName: string, secret?: string): Promise; /** * Creates a signature with the current timestamp * * @param userDiscordId - Discord user ID * @param userName - Discord username * @param secret - Signing secret (defaults to TEST_SIGNING_SECRET) * @returns Object with signature and timestamp */ export declare function createTimestampedSignature(userDiscordId: string, userName: string, secret?: string): Promise<{ signature: string; timestamp: string; }>; /** * Verifies an HMAC-SHA256 signature * * @param signature - The signature to verify (hex string) * @param timestamp - Unix timestamp string * @param userDiscordId - Discord user ID * @param userName - Discord username * @param secret - Signing secret * @returns True if signature is valid */ export declare function verifyBotSignature(signature: string, timestamp: string, userDiscordId: string, userName: string, secret?: string): Promise; //# sourceMappingURL=signature.d.ts.map