diff options
Diffstat (limited to 'src/keyring.h')
| -rw-r--r-- | src/keyring.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/keyring.h b/src/keyring.h index 81d97fc..42cf992 100644 --- a/src/keyring.h +++ b/src/keyring.h @@ -42,9 +42,32 @@ enum class ResponseResult derivation_failed, decryption_failed, bad_curve_point, + hardware_fault, + invalid_pin, + hardware_lockout, + incompatible_arguments, +}; + +enum class KeyringStorageType +{ + invalid, + software, + hardware, +}; + +struct KeyringKey +{ + KeyringStorageType type = KeyringStorageType::invalid; + QByteArray id; + QByteArray public_key; + QByteArray protected_secret; + QString name; }; int keyring_initialize(void); -int generate_key(QStringView name, const QByteArray &password); +int keyring_hardware_available(void); +int generate_software_key(QStringView name, const QByteArray &password); +int generate_hardware_key(QStringView name, const QByteArray &pin); +KeyringKey acquire_keyring_key(QByteArrayView key_id); void delete_key(const QByteArray &key_id); -ResponseResult unlock_and_auth(QByteArrayView key_id, QByteArrayView password, QByteArrayView ephemeral_key, QByteArrayView username, AuthResponse &out); +ResponseResult unlock_and_auth(const KeyringKey &key, QByteArrayView password, QByteArrayView ephemeral_key, QByteArrayView username, AuthResponse &out); |
