Integration Options

The Open Source Secure Element (OSSE) is designed to be integrated into various systems and applications. This page outlines the different integration options available.

Hardware Integration

Standalone Module

The OSSE can be used as a standalone hardware security module (HSM) with the following interfaces:

  • USB connection (USB-C)
  • I2C for embedded systems
  • SPI for high-speed communication

Embedded Integration

For embedded applications, the OSSE can be integrated directly onto a PCB:

  • Reference design available for direct integration
  • Minimal external components required
  • Power requirements: 3.3V, < 100mA typical

Software Integration

Host Libraries

The OSSE provides host libraries for various platforms:

  • C/C++ library for low-level integration
  • Python bindings for rapid development
  • JavaScript/TypeScript for web applications

Example of using the C library:

#include "osse_lib.h"

int main() {
    osse_context_t ctx;
    osse_result_t result;
    
    // Initialize the OSSE
    result = osse_init(&ctx);
    if (result != OSSE_SUCCESS) {
        return -1;
    }
    
    // Generate a new key pair
    uint8_t public_key[32];
    result = osse_generate_keypair(ctx, "my_key", public_key);
    
    // Sign a message
    uint8_t message[] = "Hello, OSSE!";
    uint8_t signature[64];
    result = osse_sign(ctx, "my_key", message, sizeof(message), signature);
    
    // Clean up
    osse_deinit(ctx);
    
    return 0;
}

Web Integration

For web applications, the OSSE can be accessed via:

  • WebUSB API for direct browser access
  • WebAuthn/FIDO2 for authentication scenarios
  • REST API when using a host application

Example of WebUSB integration:

async function connectToOSSE() {
  try {
    const device = await navigator.usb.requestDevice({
      filters: [{ vendorId: 0x1234 }] // OSSE vendor ID
    });
    
    await device.open();
    await device.selectConfiguration(1);
    await device.claimInterface(0);
    
    console.log('Connected to OSSE device');
    return device;
  } catch (error) {
    console.error('Error connecting to OSSE:', error);
  }
}

Blockchain Integration

Note: Blockchain integration features are currently in beta.

Ethereum Support

The OSSE provides native support for Ethereum operations:

  • EIP-712 structured data signing
  • BIP-32/44/39 HD wallet derivation
  • Transaction signing and verification

Supply Chain Verification

The OSSE includes blockchain-based supply chain verification:

  • Each device has a unique attestation key
  • Manufacturing steps are recorded on-chain
  • End users can verify device authenticity

Integration Examples

Use Case Integration Method Key Features
Hardware Wallet Standalone USB Transaction signing, Key management
IoT Security Embedded (I2C/SPI) Secure boot, Attestation
Server HSM PCIe Card High throughput, Multiple key storage
Authentication WebAuthn/FIDO2 Passwordless login, Multi-factor auth

Getting Support

For integration support:

  1. Check the API Reference for detailed documentation
  2. Join our Developer Community
  3. Submit integration questions on GitHub Issues

Back to top

Copyright © 2023 Etherisc GmbH. Distributed under an open source license.