Starting up an Intel SGX Enclave from a Java application - java

Good evening, and thanks to everyone in advance.
I am currently working on My MsC Thesis, and for the proposed solution so far, I am to use an existing Java application (BFT-SMART, built with gradle version 7.3.3) and add it a layer of confidentiality using Intel SGX, with the objective of each replica containing its own Intel SGX enclave.
My problem however, is not being able to start an enclave from a Java application other than a given example.
The given example was all I found, and after some changes to its make File, I was able to successfully execute this simple Java application in Simulation Mode.
https://github.com/lishen-nt/sgx-language-adapter/
However, how do I adapt this to something different? The given code:
static {
System.loadLibrary("Sgx");
}
/* Initialize the enclave */
public native int jni_initialize_enclave();
Seems to only work with this given example, not working with other tests that I have personally been trying, with the project being unable to find said library. Is there a way to add Make File statements to a gradle build in order to link Intel SGX Libraries to the project?
Before considering adding Intel SGX to the aforementioned project, I was trying to build my own sample project to base myself off of, any tips on this?
I do apologize for the extremely ambiguous and open-ended question, I am just at a complete loss of where to begin looking for options or examples I could base myself off of.
Thanks for everyone's help!

Rather than trying this old alternative (updated 4 years ago), I would try something newer, such as Scone or SGX-LKL. I think it would be easier to get some help and get success with your project.

Related

Is every code based on Oracle working with OpenJDK?

I would like to know, how can I find the main differences between OracleJDK and OpenJDK. I still don´t get the whole difference between them if it comes to coding?
It is a university question, where I have to describe and evaluate, if the codes, which are shown in our lecture notes are capable of running when using OpenJDK.
In our lecture we are currently using Java JDK 8u112.
Topics in the lecture are for example: BufferedReader/Writer, FileReader, InputStream, ArrayList, Abstract class, Interfaces, JavaFX , JAvaFX for 2D, ...
Do you have an idea, how I can find out if the codes are working, without testing all of them on OpenJDK or without downloading and installing OpenJDK?
The only thing I found out yet is that there might be a difference in OpenJFX, and also in rastering.
Thank you very much.

How to make use of Java's Graph Class?

So this is definitely a simple problem most likely with a simple fix but I just cannot figure out the issue here.
I am trying to make use of Java's Graph class:
http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13403/javax/ide/util/Graph.html
however, I am unable to import javax.ide. There are many other packages/methods beginning with javax. that I am able to import as displayed in eclipse but javax.ide is not one of them:
I am, however, able to import java.util.AbstractCollection but my program still cannot resolve Graph to a type when I do this.
My guess is that the class is simply not in the library, I have tried updating my JDK but it doesn't seem to have changed anything. I apologize for my ignorance here, any help is much appreciated.
javax.ide.util is not part of the standard JDK. The link in the question takes you to an Oracle Fusion Middleware API subsection, which includes IDE API (JSR-198). You need to install additional libraries (probably Oracle Fusion Middleware) to get this package, but that would be an overkill to just get a graph library. It's better to evaluate your requirement and see what graph library suits your needs.

External Voronoi library "Mesh": What is Sketch and Processing?

Question
This might be a too specific quesion but I figured I'd give it a shot. If it doesn't belong here, I apologize.
I've been looking for an external library that generates a Voronoi Diagram with edges and Regions.
I've had a look at simplevoronoi but it doesn't calculate regions so I figuered I'd continue looking.
I found Mesh made by Lee Bryon and I've tried to use it just like any other external library but it does produce an exception at compile time
Exception in thread "main" java.lang.NoClassDefFoundError: processing/core/PApplet
at megamu.mesh.IntArray.add(IntArray.java:21)
at megamu.mesh.Voronoi.<init>(Voronoi.java:88)
On the website the install guide reads
Install
Download Mesh
Unzip into Processing's libraries folder
Sketch → Import Library → mesh
Now my questions are: What is Processing? What is Sketch? And will I be able to use this library in my project somehow or can someone recommend a different one?
Solution (kind of)
In the end I tried to use a library called Java Power Voronoi Diagram made by Arlind Nocaj.
Processing is an environment/language which is based on Java. You can find more information about it here: http://processing.org/
As far as getting that library working, it might be fairly simple to port it. Processing's syntax is nearly identical to Java's. You'll have to make proper Java classes for everything if that hasn't already been done.
you can quickly generate a voronoi diagram in Processing (Development Environment) using a library called toxi. Here is an example, https://github.com/hamzeen/voronoi_image
P.S. Processing is a tiny development environment specially for artists (yet not restricted to them) to quickly prototype their ideas with minimal code (java) & it's based on java applets.

How to develop a microcontroller software in java with eclipse

I don't know if I've been looking at the wrong place but it seems the documentation for this is very limited on the Oracle website. (Even on google)
I'm working on a school project in which we have to make a software in java and embed it on a micro controler. The program is never actually going to be put on a microcontroller though, we just have to develop it.
I've been looking at the Java SE Embedded, ME Client and ME documentation for the better part of 2 hours now and I still have no idea where to start.
Here's what I need to do.
I would like to develop it in eclipse preferably because it's connected to our repository. (we could use netbeans if it's not possible with eclipse)
We need a way to load the software on a microcontroller. (like an eclipse plugin)
We need to be able to run the program on a UI that we will code to test it and to show our teacher that it works.
We almost had it going with the Java ME Embedded but there is no way to make a UI to test it.
If someone can give me a link to a tutorial or anything would be much appreciated.
Thank you
+++++++++
Edit
+++++++++
I need to specify that we can choose any microcontroller or any range of microcontroller.
Does this need to run directly on the micro or can there be an OS? If you are allowed to run an OS then take a look at the beagle board which has several JVMs available (See http://elinux.org/BeagleBoard#Java)
For a lower cost alternative, Raspberry Pi offers a JVM as well (See http://www.raspberrypi.org/archives/4920)
Both the boards I've listed above are well supported by the community so you should be able to find lots of information by utilizing your favorite search engine.
If you need to run java directly on the CPU, then it appears your options are more limited... A quick search turned up a company called ajile systems who make a CPU module which can directly process java bytecode.

Gupta/Centura to Java conversion

We are working with a client who wants to convert from Gupta/Centura to Java. Has anyone got any experience with a conversion project like that?
Thanks,
Steve
Concur with Clint below. Consider Centura ( now TeamDeveloper ) v6.1 ( TD.Net is No Longer Beta ) . Gives all the usual Win32 functionality and more, with open native connectivity to most dBMS ( avoiding ODBC) , but with the option to infuse very easily with .Net . Also allows a Centura app to be built as a Web Service, and also includes fab wizards to allow easy Web Service consumption. That way - there may be no need for conversion to Java, which sounds like a re-write rather than a straight conversion.
Consider WHY you want to convert to Java - as you may get much more ROI on converting to TD.Net v6.1 ! There is HEAPS of help doing this - on the user forum - check out Unify Centura User forums
Centura to Java I have not heard about but I do know there are conversions to the latest Centura version (6.0 and 6.1 in beta) which allow you to go to .NET and very easily integrate .NET.
See http://www.unify.com/Products/App_Dev/TeamDeveloper6.0/default.aspx for more information
While this does not answer your question perhaps it will aid you in any way.
My Company did migrate over the last year, our product to c#.net.
we used as far Gupta 3.1 and now we've got c#.net code, we did this with fecher.eu
but i do recommend to start over with the project because:
your Code will be cleaner (all the forbidden stuff they did in gupta will not be there)
you got a better architecture (your own)
you can migrate one tool(program) step by step...
i hope this helps you.
We migrated too using ice tea group tools, probably the same tools used by fecher.eu. In our case we started to rewrite but we had too much code and after almost 1 year of rewrite we only did 20% of the code and it was too risky to keep going. We were introducing a ton of new bugs too!
The automated conversion did the entire code set (3.5M SAL Lines) in 6 months and we released in 6 more months!
The generated code was not the perfect code that we all set out to write and dream of. But I can tell you that the code we write by hand wasn't that pretty either. ;)

Categories

Resources