Git Product home page Git Product 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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lpad_sm-dpplus_connector's Issues

unable to fire up the modem on Pixel

Hello,

I am able to get the LPAD connector working.
So, now I am working to get an implementation of the APDUChannel running, and I am unable to find out how to get it to work. The Modem class seems like the class to be used, but I am unable to instantiate it properly, and therefore APDU transmission is failing over it.

I am guessing the real problem to be solved first it to get the modem started up on my rooted phone. From the documentation, there should be a LPAd-Android repo that could be used to do it, but I am unable to find it. Is it possible for you to help me?

Thanks,
Anirban

maven package not fount

Hi,I'm trying to run it,but a package not found;it is not in maven center repository.
import com.truphone.rsp.dto.asn1.rspdefinitions.GetEuiccChallengeResponse;

Gradle Import Not Working

I am trying to import LPAd_SM-DPPlus_Connector using gradle in Android Studio

dependencies {
compile 'com.truphone.lpad:lpad-sm-dp-plus-connector:1.0.3'
}

I am getting the following error

ERROR: Failed to resolve: com.truphone.lpad:lpad-sm-dp-plus-connector:1.0.3

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.