123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810 |
- #ifndef _H_MS_PROV_API_
- #define _H_MS_PROV_API_
- #include "MS_brr_api.h"
- #define PROV_ROLE_DEVICE 0x01
- #define PROV_ROLE_PROVISIONER 0x02
- #define PROV_BRR_ADV 0x01
- #define PROV_BRR_GATT 0x02
- #define PROV_PDU_TYPE_INVITE 0x00
- #define PROV_PDU_TYPE_CAPAB 0x01
- #define PROV_PDU_TYPE_START 0x02
- #define PROV_PDU_TYPE_PUBKEY 0x03
- #define PROV_PDU_TYPE_INPUT_CMPLT 0x04
- #define PROV_PDU_TYPE_CONF 0x05
- #define PROV_PDU_TYPE_RAND 0x06
- #define PROV_PDU_TYPE_DATA 0x07
- #define PROV_PDU_TYPE_COMPLETE 0x08
- #define PROV_PDU_TYPE_FAILED 0x09
- #define PROV_ALGO_EC_FIPS_P256 0x00
- #define PROV_PUBKEY_NO_OOB 0x00
- #define PROV_PUBKEY_OOB 0x01
- #define PROV_AUTH_OOB_NONE 0x00
- #define PROV_AUTH_OOB_STATIC 0x01
- #define PROV_AUTH_OOB_OUTPUT 0x02
- #define PROV_AUTH_OOB_INPUT 0x03
- #define PROV_OOOB_ACTION_BLINK 0x00
- #define PROV_OOOB_ACTION_BEEP 0x01
- #define PROV_OOOB_ACTION_VIBRATE 0x02
- #define PROV_OOOB_ACTION_NUMERIC 0x03
- #define PROV_OOOB_ACTION_ALPHANUMERIC 0x04
- #define PROV_IOOB_ACTION_PUSH 0x00
- #define PROV_IOOB_ACTION_TWIST 0x01
- #define PROV_IOOB_ACTION_NUMERIC 0x02
- #define PROV_IOOB_ACTION_ALPHANUMERIC 0x03
- #define PROV_MASK_ALGO_EC_FIPS_P256 (1 << 0)
- #define PROV_MASK_PUBKEY_OOBINFO (1 << 0)
- #define PROV_MASK_STATIC_OOBINFO (1 << 0)
- #define PROV_MASK_OOOB_ACTION_BLINK (1 << 0)
- #define PROV_MASK_OOOB_ACTION_BEEP (1 << 1)
- #define PROV_MASK_OOOB_ACTION_VIBRATE (1 << 2)
- #define PROV_MASK_OOOB_ACTION_NUMERIC (1 << 3)
- #define PROV_MASK_OOOB_ACTION_ALPHANUMERIC (1 << 4)
- #define PROV_MASK_IOOB_ACTION_PUSH (1 << 0)
- #define PROV_MASK_IOOB_ACTION_TWIST (1 << 1)
- #define PROV_MASK_IOOB_ACTION_NUMERIC (1 << 2)
- #define PROV_MASK_IOOB_ACTION_ALPHANUMERIC (1 << 3)
- #define PROV_PCF_NUM_FRGMNTS 0x00
- #define PROV_PCF_CTRL_MSG 0x01
- #define PROV_PCF_CONTINU_FRGMNT 0x02
- #define PROV_PCF_TX_SPECIFIC 0x03
- #define PROV_PB_ADV_OPEN_REQ 0x00
- #define PROV_PB_ADV_OPEN_CNF 0x01
- #define PROV_PB_ADV_CLOSE_IND 0x02
- #define PROV_PB_GATT_OPEN_IND 0xF1
- #define PROV_PB_GATT_CLOSE_IND 0xF0
- #define PROV_ERR_PROHIBITED 0x00
- #define PROV_ERR_INVALID_PDU 0x01
- #define PROV_ERR_INVALID_FORMAT 0x02
- #define PROV_ERR_UNEXPECTED_PDU 0x03
- #define PROV_ERR_CONFIRMATION_FAILED 0x04
- #define PROV_ERR_OUT_OF_RESOURCES 0x05
- #define PROV_ERR_DECRYPTION_FAILED 0x06
- #define PROV_ERR_UNEXPECTED_ERROR 0x07
- #define PROV_ERR_CANNOT_ASSIGN_ADDRESS 0x08
- #define PROV_CLOSE_REASON_SUCCESS 0x00
- #define PROV_CLOSE_REASON_TIMEOUT 0x01
- #define PROV_CLOSE_REASON_FAIL 0x02
- #define PROV_KEY_NETKEY_SIZE 16
- #define PROV_OOB_VALUE_SIZE 16
- #define PROV_URI_HASH_SIZE 4
- #define PROV_OOB_TYPE_OTHER (1 << 0)
- #define PROV_OOB_TYPE_URI (1 << 1)
- #define PROV_OOB_TYPE_2DMRC (1 << 2)
- #define PROV_OOB_TYPE_BARCODE (1 << 3)
- #define PROV_OOB_TYPE_NFC (1 << 4)
- #define PROV_OOB_TYPE_NUMBER (1 << 5)
- #define PROV_OOB_TYPE_STRING (1 << 6)
- #define PROV_OOB_TYPE_ONBOX (1 << 11)
- #define PROV_OOB_TYPE_INSIDEBOX (1 << 12)
- #define PROV_OOB_TYPE_ONPIECEOFPAPER (1 << 13)
- #define PROV_OOB_TYPE_INSIDEMANUAL (1 << 14)
- #define PROV_OOB_TYPE_ONDEVICE (1 << 15)
- #define PROV_HANDLE_INVALID 0xFF
- #define PROV_EVT_UNPROVISIONED_BEACON 0x01
- #define PROV_EVT_PROVISIONING_SETUP 0x02
- #define PROV_EVT_OOB_DISPLAY 0x03
- #define PROV_EVT_OOB_ENTRY 0x04
- #define PROV_EVT_DEVINPUT_COMPLETE 0x05
- #define PROV_EVT_PROVDATA_INFO_REQ 0x06
- #define PROV_EVT_PROVDATA_INFO 0x07
- #define PROV_EVT_PROVISIONING_COMPLETE 0x08
- typedef UCHAR PROV_ROLE;
- typedef UCHAR PROV_BRR;
- typedef UCHAR PROV_HANDLE;
- typedef struct _PROV_DEVICE_S
- {
-
- UCHAR uuid[MS_DEVICE_UUID_SIZE];
-
- UINT16 oob;
-
- MS_BUFFER * uri;
- } PROV_DEVICE_S;
- typedef struct _PROV_OOB_TYPE_S
- {
-
- UINT16 action;
-
- UCHAR size;
- } PROV_OOB_TYPE_S;
- typedef struct _PROV_CAPABILITIES_S
- {
-
- UCHAR num_elements;
-
- UINT16 supp_algorithms;
-
- UCHAR supp_pubkey;
-
- UCHAR supp_soob;
-
- PROV_OOB_TYPE_S ooob;
-
- PROV_OOB_TYPE_S ioob;
- } PROV_CAPABILITIES_S;
- typedef struct _PROV_METHOD_S
- {
-
- UCHAR algorithm;
-
- UCHAR pubkey;
-
- UCHAR auth;
-
- PROV_OOB_TYPE_S oob;
- } PROV_METHOD_S;
- typedef struct _PROV_DATA_S
- {
-
- UCHAR netkey[PROV_KEY_NETKEY_SIZE];
-
- UINT16 keyid;
-
- UCHAR flags;
-
- UINT32 ivindex;
-
- UINT16 uaddr;
- } PROV_DATA_S;
- typedef API_RESULT (* PROV_UI_NOTIFY_CB)
- (
- PROV_HANDLE * phandle,
- UCHAR event_type,
- API_RESULT event_result,
- void * event_data,
- UINT16 event_datalen
- );
- #define MS_prov_setup_device_pbadv(pdev, tmo, phdl) \
- MS_prov_setup (PROV_ROLE_DEVICE, PROV_BRR_ADV, (pdev), (tmo), (phdl))
- #define MS_prov_setup_provisioner_pbadv(tmo, phdl) \
- MS_prov_setup (PROV_ROLE_PROVISIONER, PROV_BRR_ADV, NULL, (tmo), (phdl))
- #define MS_prov_setup_device_pbgatt(pdev, tmo, phdl) \
- MS_prov_setup (PROV_ROLE_DEVICE, PROV_BRR_GATT, (pdev), (tmo), (phdl))
- #define MS_prov_setup_provisioner_pbgatt(tmo, phdl) \
- MS_prov_setup (PROV_ROLE_PROVISIONER, PROV_BRR_GATT, NULL, (tmo), (phdl))
- #define MS_prov_start(phandle, pmethod) \
- MS_prov_send_pdu ((phandle), PROV_PDU_TYPE_START, (pmethod), sizeof(PROV_METHOD_S))
- #define MS_prov_input_authval(phandle, pauth, size) \
- MS_prov_send_pdu ((phandle), PROV_PDU_TYPE_INPUT_CMPLT, (pauth), (size))
- #define MS_prov_data(phandle, pdata) \
- MS_prov_send_pdu ((phandle), PROV_PDU_TYPE_DATA, (pdata), sizeof (PROV_DATA_S))
- #ifdef __cplusplus
- extern "C" {
- #endif
- API_RESULT MS_prov_register
- (
- PROV_CAPABILITIES_S * pcapab,
- PROV_UI_NOTIFY_CB cb
- );
- API_RESULT MS_prov_stop_interleave_timer
- (
- void
- );
- API_RESULT MS_prov_setup
- (
- PROV_ROLE role,
- PROV_BRR bearer,
- PROV_DEVICE_S * pdevice,
- UINT16 gatt_timeout,
- UINT16 adv_timeout
- );
- API_RESULT MS_prov_bind
- (
- PROV_BRR bearer,
- PROV_DEVICE_S * pdevice,
- UCHAR attention,
- PROV_HANDLE * phandle
- );
- API_RESULT MS_prov_send_pdu
- (
- PROV_HANDLE * phandle,
- UCHAR pdu,
- void * pdata,
- UINT16 datalen
- );
- API_RESULT MS_prov_set_authval
- (
- PROV_HANDLE * phandle,
- void * pdata,
- UINT16 datalen
- );
- API_RESULT MS_prov_abort
- (
- PROV_HANDLE * phandle,
- UCHAR reason
- );
- API_RESULT MS_prov_get_local_public_key
- (
- UCHAR * public_key
- );
- #ifdef __cplusplus
- };
- #endif
- #endif
|