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:
- Check the API Reference for detailed documentation
- Join our Developer Community
- Submit integration questions on GitHub Issues