From 75073d0a8478441cc97a6efa10b566c5fb1dac81 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 17 Apr 2020 20:57:17 +0100 Subject: New upstream version 1.4.0 --- src/fido.h | 53 ++++++++++++++++++++--------------------------------- 1 file changed, 20 insertions(+), 33 deletions(-) (limited to 'src/fido.h') diff --git a/src/fido.h b/src/fido.h index f85a41a..e41de89 100644 --- a/src/fido.h +++ b/src/fido.h @@ -14,24 +14,6 @@ #include #include -typedef void *fido_dev_io_open_t(const char *); -typedef void fido_dev_io_close_t(void *); -typedef int fido_dev_io_read_t(void *, unsigned char *, size_t, int); -typedef int fido_dev_io_write_t(void *, const unsigned char *, size_t); - -typedef struct fido_dev_io { - fido_dev_io_open_t *open; - fido_dev_io_close_t *close; - fido_dev_io_read_t *read; - fido_dev_io_write_t *write; -} fido_dev_io_t; - -typedef enum { - FIDO_OPT_OMIT = 0, /* use authenticator's default */ - FIDO_OPT_FALSE, /* explicitly set option to false */ - FIDO_OPT_TRUE, /* explicitly set option to true */ -} fido_opt_t; - #ifdef _FIDO_INTERNAL #include #include @@ -39,28 +21,21 @@ typedef enum { #include "blob.h" #include "../openbsd-compat/openbsd-compat.h" #include "iso7816.h" -#include "types.h" #include "extern.h" #endif #include "fido/err.h" #include "fido/param.h" +#include "fido/types.h" -#ifndef _FIDO_INTERNAL -typedef struct fido_assert fido_assert_t; -typedef struct fido_cbor_info fido_cbor_info_t; -typedef struct fido_cred fido_cred_t; -typedef struct fido_dev fido_dev_t; -typedef struct fido_dev_info fido_dev_info_t; -typedef struct es256_pk es256_pk_t; -typedef struct es256_sk es256_sk_t; -typedef struct rs256_pk rs256_pk_t; -typedef struct eddsa_pk eddsa_pk_t; -#endif +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ fido_assert_t *fido_assert_new(void); fido_cred_t *fido_cred_new(void); fido_dev_t *fido_dev_new(void); +fido_dev_t *fido_dev_new_with_info(const fido_dev_info_t *); fido_dev_info_t *fido_dev_info_new(size_t); fido_cbor_info_t *fido_cbor_info_new(void); @@ -76,6 +51,7 @@ void fido_dev_info_free(fido_dev_info_t **, size_t); #define FIDO_DEBUG 0x01 void fido_init(int); +void fido_set_log_handler(fido_log_handler_t *); const unsigned char *fido_assert_authdata_ptr(const fido_assert_t *, size_t); const unsigned char *fido_assert_clientdata_hash_ptr(const fido_assert_t *); @@ -121,19 +97,23 @@ int fido_assert_set_clientdata_hash(fido_assert_t *, const unsigned char *, int fido_assert_set_count(fido_assert_t *, size_t); int fido_assert_set_extensions(fido_assert_t *, int); int fido_assert_set_hmac_salt(fido_assert_t *, const unsigned char *, size_t); -int fido_assert_set_options(fido_assert_t *, bool, bool) __attribute__((__deprecated__)); +int fido_assert_set_options(fido_assert_t *, bool, bool) + __attribute__((__deprecated__("use fido_assert_set_up/fido_assert_set_uv"))); int fido_assert_set_rp(fido_assert_t *, const char *); int fido_assert_set_up(fido_assert_t *, fido_opt_t); int fido_assert_set_uv(fido_assert_t *, fido_opt_t); int fido_assert_set_sig(fido_assert_t *, size_t, const unsigned char *, size_t); int fido_assert_verify(const fido_assert_t *, size_t, int, const void *); int fido_cred_exclude(fido_cred_t *, const unsigned char *, size_t); +int fido_cred_prot(const fido_cred_t *); int fido_cred_set_authdata(fido_cred_t *, const unsigned char *, size_t); int fido_cred_set_authdata_raw(fido_cred_t *, const unsigned char *, size_t); int fido_cred_set_clientdata_hash(fido_cred_t *, const unsigned char *, size_t); int fido_cred_set_extensions(fido_cred_t *, int); int fido_cred_set_fmt(fido_cred_t *, const char *); -int fido_cred_set_options(fido_cred_t *, bool, bool) __attribute__((__deprecated__)); +int fido_cred_set_options(fido_cred_t *, bool, bool) + __attribute__((__deprecated__("use fido_cred_set_rk/fido_cred_set_uv"))); +int fido_cred_set_prot(fido_cred_t *, int); int fido_cred_set_rk(fido_cred_t *, fido_opt_t); int fido_cred_set_rp(fido_cred_t *, const char *, const char *); int fido_cred_set_sig(fido_cred_t *, const unsigned char *, size_t); @@ -152,10 +132,12 @@ int fido_dev_get_cbor_info(fido_dev_t *, fido_cbor_info_t *); int fido_dev_get_retry_count(fido_dev_t *, int *); int fido_dev_info_manifest(fido_dev_info_t *, size_t, size_t *); int fido_dev_make_cred(fido_dev_t *, fido_cred_t *, const char *); +int fido_dev_open_with_info(fido_dev_t *); int fido_dev_open(fido_dev_t *, const char *); int fido_dev_reset(fido_dev_t *); int fido_dev_set_io_functions(fido_dev_t *, const fido_dev_io_t *); int fido_dev_set_pin(fido_dev_t *, const char *, const char *); +int fido_dev_set_transport_functions(fido_dev_t *, const fido_dev_transport_t *); size_t fido_assert_authdata_len(const fido_assert_t *, size_t); size_t fido_assert_clientdata_hash_len(const fido_assert_t *); @@ -178,7 +160,7 @@ size_t fido_cred_sig_len(const fido_cred_t *); size_t fido_cred_x5c_len(const fido_cred_t *); uint8_t fido_assert_flags(const fido_assert_t *, size_t); -uint32_t fido_assert_sigcount(const fido_assert_t *, size_t); +uint32_t fido_assert_sigcount(const fido_assert_t *, size_t); uint8_t fido_cred_flags(const fido_cred_t *); uint8_t fido_dev_protocol(const fido_dev_t *); uint8_t fido_dev_major(const fido_dev_t *); @@ -188,7 +170,12 @@ uint8_t fido_dev_flags(const fido_dev_t *); int16_t fido_dev_info_vendor(const fido_dev_info_t *); int16_t fido_dev_info_product(const fido_dev_info_t *); uint64_t fido_cbor_info_maxmsgsiz(const fido_cbor_info_t *); +uint64_t fido_cbor_info_fwversion(const fido_cbor_info_t *); bool fido_dev_is_fido2(const fido_dev_t *); +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + #endif /* !_FIDO_H */ -- cgit v1.2.3