// Copyright 2026 Osmium Sorcerer // SPDX-License-Identifier: MIT #ifndef SOF_AO2CLIENT_TPM_TPM_H #define SOF_AO2CLIENT_TPM_TPM_H #include #include typedef enum { STKB_SUCCESS, STKB_ERROR, STKB_TPM_UNAVAILABLE, STKB_BAD_PIN, STKB_AUTH_FAILURE, STKB_LOCKOUT, } stkb_rc; typedef struct { const uint8_t *pin; size_t pin_len; const wchar_t *key_name; } stkb_user_input; stkb_rc tpm2_init(void); stkb_rc tpm2_keygen(uint8_t *out_pub, uint8_t *out_buffer, size_t buffer_size, size_t *written, stkb_user_input input); stkb_rc tpm2_compute_ss(uint8_t *ss, const uint8_t *blob, size_t blob_len, const uint8_t *pk, stkb_user_input input); #endif /* SOF_AO2CLIENT_TPM_TPM_H */