Be-Bound

The Be-Bound Developer Hub

Welcome to the Be-Bound developer hub. You'll find comprehensive guides and documentation to help you start working with Be-Bound as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Integration With E2EE (optional)

This article explains the basic steps to send/receive E2EE Messages. We will focus on how to use the Be-Bound Server SDK, not the security part (e.g. encryption, signature, etc.).

Be-Bound `Server SDK`

This SDK is provided by the Be-Bound company, and is only required if you need the End-to-End Encryption (E2EE) feature. Please contact us if you are interested.

For the below examples, we will use the following manifest.xml file content:

<beapp xmlns="https://be-bound.com/v7/Manifest"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://be-bound.com/v7/Manifest">
    <messages>
        <message name="message_demo">
            <boolean name="message_bool"/>
            <integer name="message_integer"/>
        </message>
    </messages>
</beapp>

Be-Bound Server SDK Overview

Be-Bound Server SDK is a command line tool, which include the BitBuffer technology, and whose objective is to encode your data (JSON) into a BitBuffer payload (i.e. binary compressed data payload), and vice versa. More information on BitBuffer can be found here.

Command line options

Usage:

  • besdk [command]

Available Commands:

  • decode: Decode a BitBuffer message to JSON. Mandatory arguments: [message] [Bitbuffer bytes hex encoded]
  • encode: Encode a JSON message to BitBuffer. Mandatory arguments: [message] [json payload]
  • help: Help about any command

Flags:

  • -h, --help help for besdk
  • -m, --manifest string BeApp Manifest XML (required)
  • -v, --verbose output the error on stdout instead of stderr

How to encode a Json into a BitBuffer payload (hex string format) ?

> besdk encode message_demo '{"message_bool":true,"message_integer":1234567}' -m manifest.xml

80096b4380

How to decode a BitBuffer payload (hex string format) into a Json ?

> besdk decode message_demo 80096b4380 -m manifest.xml

{"message_bool":true,"message_integer":1234567}

Sending an E2EE Message (server side)

Please find below the steps that are required to send an E2EE Message (from your Server to your mobile or IoT App):

  • You convert your message (JSON object) into a BitBuffer data payload (hex string) using Be-Bound Server SDK.
  • You apply a security method (the same you will use on the mobile app) to the BitBuffer binary payload (after conversion from hex string) to encrypt and/or sign your data.
  • You can now send the secured binary payload within the body of the HTTP Post Request (including the right HTTP headers as discussed here, especially the Content-Type metadata).

Detailed example (bash script):

# encode your json message to a BitBuffer binary payload
> PAYLOAD=$(./besdk encode message_demo '{"message_bool":true,"message_integer":1234567}' -m manifest.xml | xxd -r -p)

# for example, encrypt the payload using the AES256 symmetric algorithm
> PAYLOAD_ENC=$(echo $PAYLOAD | openssl enc -e -aes-256-cbc)

# send the content of $PAYLOAD_ENC in the body of a HTTP Post request...

Receiving an E2EE Message (server side)

Please find below the steps that are required to receive an E2EE Message (from your mobile or IoT App):

  • You first need to extract the Content-Type header to check if the received message is signed and/or encrypted.
  • You apply the same security methods as in your mobile app to decrypt and/or verify your message.
  • The Server SDK can then decode your message (based on the hex string value) into a Json object, which can be processed by your application.

Detailed example (bash script):

# extract the HTTP Post request body
PAYLOAD_ENC=...

# decrypt the received data payload
PAYLOAD_DEC=$(echo $PAYLOAD_ENC | openssl enc -d -aes-256-cbc | xxd -p)

# decode the BitBuffer binary payload into a json message
JSON=$(besdk decode message_demo $PAYLOAD_DEC -m manifest.xml)

Integration With E2EE (optional)


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.