version 1.6, 2019/12/30 09:24:45 |
version 1.7, 2020/01/06 02:00:46 |
|
|
}; |
}; |
|
|
struct sk_resident_key { |
struct sk_resident_key { |
uint8_t alg; |
uint32_t alg; |
size_t slot; |
size_t slot; |
char *application; |
char *application; |
struct sk_enroll_response key; |
struct sk_enroll_response key; |
}; |
}; |
|
|
#define SSH_SK_VERSION_MAJOR 0x00030000 /* current API version */ |
struct sk_option { |
|
char *name; |
|
char *value; |
|
uint8_t required; |
|
}; |
|
|
|
#define SSH_SK_VERSION_MAJOR 0x00040000 /* current API version */ |
#define SSH_SK_VERSION_MAJOR_MASK 0xffff0000 |
#define SSH_SK_VERSION_MAJOR_MASK 0xffff0000 |
|
|
/* Return the version of the middleware API */ |
/* Return the version of the middleware API */ |
uint32_t sk_api_version(void); |
uint32_t sk_api_version(void); |
|
|
/* Enroll a U2F key (private key generation) */ |
/* Enroll a U2F key (private key generation) */ |
int sk_enroll(int alg, const uint8_t *challenge, size_t challenge_len, |
int sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, |
const char *application, uint8_t flags, const char *pin, |
const char *application, uint8_t flags, const char *pin, |
struct sk_enroll_response **enroll_response); |
struct sk_option **options, struct sk_enroll_response **enroll_response); |
|
|
/* Sign a challenge */ |
/* Sign a challenge */ |
int sk_sign(int alg, const uint8_t *message, size_t message_len, |
int sk_sign(uint32_t alg, const uint8_t *message, size_t message_len, |
const char *application, const uint8_t *key_handle, size_t key_handle_len, |
const char *application, const uint8_t *key_handle, size_t key_handle_len, |
uint8_t flags, const char *pin, struct sk_sign_response **sign_response); |
uint8_t flags, const char *pin, struct sk_option **options, |
|
struct sk_sign_response **sign_response); |
|
|
/* Enumerate all resident keys */ |
/* Enumerate all resident keys */ |
int sk_load_resident_keys(const char *pin, |
int sk_load_resident_keys(const char *pin, struct sk_option **options, |
struct sk_resident_key ***rks, size_t *nrks); |
struct sk_resident_key ***rks, size_t *nrks); |
|
|
#endif /* _SK_API_H */ |
#endif /* _SK_API_H */ |