Giter Club home page Giter Club logo

lpad_sm-dpplus_connector's Introduction

Local Profile Assistant for Device (LPAd) - LPAd SM-DP+ Connector

This project offers an implementation of the SGP22 Local Profile Assistant for Device (LPAd).

Allows communication with the SM-DP+ and implements the needed logic of ES9+ (LPA -- SMDP+) interface. It is also implemented all the logic for ES10x (LPA -- eUICC) interface. It is implemented in Java.


LPAd Truphone Projects

The current project is only one part of several other Truphone’s* projects that implement LPAd totally. The following diagram gives an overview of currently existing projects that relate to Truphone*’s* LPAd *implementation:

High level explanation of the several Truphone’s LPAd projects:

  • LPAd React-Native - UI for List Profiles, Download a Profile and Enable/Disable/Delete a Profile. It is implemented in React-Native.

  • LPAd React-Native/Android Bridge - Allows React-Native sub-project code to communicate with LPAd Android sub-project code. This implementation is specific for React-Native and Android/Java.

  • LPAd Android - Allows communication (through Android TelephonyManager) with the installed eUICC on the Device. It is also the Proxy to LPAd RSP Connector sub-project. Implemented in Android/Java

  • LPAd SM-DP+ Connector - This project. Allows communication with the SM-DP+ and implements the needed logic of ES9+ (LPA -- SMDP+) interface. It is also implemented all the logic for ES10x (LPA -- eUICC) interface. It is implemented in Java.


 

LPAd SM-DP+ Connector High Level Architecture

The following diagram depicts the project high level architecture:

 

Usage

Maven coordinates to import this lib into your project:

  • Gradle
com.truphone.lpad:lpad-sm-dp-plus-connector:1.0.4
  • Maven
<dependency>
  <groupId>com.truphone.lpad</groupId>
  <artifactId>lpad-sm-dp-plus-connector</artifactId>
  <version>1.0.4</version>
</dependency>

To start using this lib in your code, you'll only need to write the following lines:

  • Get EID
// Your ApduChannelImpl implementation
ApduChannelImpl apduChannel = new ApduChannelImpl(getApplicationContext());
LocalProfileAssistantImpl localProfileAssistant = new LocalProfileAssistantImpl(apduChannel, "<your-rsp-server-url>");
String eid = localProfileAssistant.getEID();
  • Allocate Profile
// Your ApduChannelImpl implementation
ApduChannelImpl apduChannel = new ApduChannelImpl(getApplicationContext());
LocalProfileAssistantImpl localProfileAssistant = new LocalProfileAssistantImpl(apduChannel, "<your-rsp-server-url>");
String acToken = localProfileAssistant.allocateProfile("268");


APDU Channel Simulator

This component implements the APDU Channel interface which can be used to create E2E tests dynamically without depending on a specific APDU Channel implementation.


Usage

Maven coordinates to import this lib into your project:

  • Gradle
com.truphone.lpad:apdu-channel-simulator:1.0.4
  • Maven
<dependency>
  <groupId>com.truphone.lpad</groupId>
  <artifactId>apdu-channel-simulator</artifactId>
  <version>1.0.4</version>
</dependency>

The modo-operandis is first of all define the expectation result for the operation you want to invoke, and then perform the invocation.

Examples:

  • TransmitAPDU
// initialization
LpadApduChannelSimulator lpadApduChannelSimulator = new LpadApduChannelSimulator(new MapPersistence(new HashMap()));

// first you need to define the expectation
lpadApduChannelSimulator.setTransmitAPDUExpectation("APDU_SUCCESS", "asdsdasd23123easd");

// then invoke the 'TransmitAPDU' operation which will return the value defined on the expectation
assertEquals("asdsdasd23123easd", lpadApduChannelSimulator.transmitAPDU("APDU_SUCCESS"));

lpad_sm-dpplus_connector's People

Contributors

frederico-palma avatar tiagosimao-truphone avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.