The Sesame SDK allows you to integrate support for the Sesame Wireless Proximity Key with your iOS or OS X app for the (main) purpose of user authentication. The SDK takes care of the interaction with the Bluetooth LE hardware and provides you with notifications on the connection status and user proximity.
We offer a 30% discount to developers on our online store. Get in touch with us to receive a promotion code!
Full technical documentation and SDK itself can be found below:Documentation
And the SDK itself can be downloaded from Github:Sesame SDK / Github
The Sesame SDK provides a vareity of different features for your application. These include:
The scanning function lets you detect Sesame devices in the nearby area. You can query the signal strength of each device in the vincinity to identify which one you want to connect to. This is useful if you have multiple devices you are trying to setup simultaneously (pick the closest one) or if you are building an app that should react to the closest Sesame in proximity (for example, automatically login the closest user)
The Sesame SDK allows you to connect to any previously discovered Sesame. When you connect, you can choose whether to enable the "auto-reconnect" function or if its a one time connection. If auto-reconnection is enabled, the SDK will remember the device for you and try and maintain a connection whenever possible.
The SDK also lets you disconnect a Sesame at any point (cancelling the auto-reconnect option).
Pairing can be enabled after connection with any Sesame. This will encrypt the bluetooth connection to the device and stop it connecting to any other iDevices. Functionality is also included to clear the pairing information from the Sesame device. Note that removing the battery from Sesame will clear the pairing information on the hardware.
Signal strength gives you the quality of the connection between the Sesame and the iOS / OSX Device. This can be used roughly to estimate distance between the two devices (very very roughly - the full Sesame product does a lot more than just looking at signal strength for a good reason : ). In order to make this process as easy as possible, we provide signal strength as either:
This makes it a lot easier than working with negative RSSI values.
The Sesame SDK allows you to control the broadcast power of the Sesame at any stage after connection. This can be controlled to give Sesame a shorter or longer range dependent on the use case. For example, during setup you may want to select a shorter range while exchanging the "Challenge" key and then increase the range for further connections. The ranges you can set are:
Each Sesame has a unique ID contained within it. This is exposed through the SDK after connection. This allows you to use this identifier in other parts of your app.
The challenge is a way for you to access the hardware encryption chip built into the Sesame hardware. There are two stages of interaction with the challenge.
The first step is setting a Challenge key. This key is a 128bit random AES key that you set through the SDK. The SDK will remember this key in the Keychain and also set it on the Sesame hardware. Normally, you will only perform this operation once, but you may want to renew the challenge periodically for added security. Note that it is best if you turn down the broadcast power when going through this step for added security.
The second step of the Challenge is to send another 128bit phrase. This phrase is then encrypted by the Sesame hardware using AES and the key given in step 1. Sesame will then respond with the encrypted phrase. The SDK will also encrypt the phrase and check that both encrypted phrases match up.
If you require added security, performing Step 2 on each reconnection is recommended.