public bool DALCreatSession() { #if AMULET // When compiled for Amulet the Jhi.DisableDllValidation flag is set to true // in order to load the JHI.dll without DLL verification. // This is done because the JHI.dll is not in the regular JHI installation folder, // and therefore will not be found by the JhiSharp.dll. // After disabling the .dll validation, the JHI.dll will be loaded using the Windows search path // and not by the JhiSharp.dll (see http://msdn.microsoft.com/en-us/library/7d83bc18(v=vs.100).aspx for // details on the search path that is used by Windows to locate a DLL) // In this case the JHI.dll will be loaded from the $(OutDir) folder (bin\Amulet by default), // which is the directory where the executable module for the current process is located. // The JHI.dll was placed in the bin\Amulet folder during project build. Jhi.DisableDllValidation = true; #endif jhi = Jhi.Instance; // This is the path to the Intel Intel(R) DAL Trusted Application .dalp file that was created by the Intel(R) DAL Eclipse plug-in. string appletPath = "C:/Users/User/eclipse/java-2019-12/eclipse\\EH_Project_Dal\\bin\\EH_Project_Dal.dalp"; // Install the Trusted Application //Console.WriteLine("Installing the applet."); //JHI_SESSION_INFO info; //appletID = "5d6664a0-5e65-4016-9e8c-17e8fa75f894"; // This is the path to the Intel Intel(R) DAL Trusted Application .dalp file that was created by the Intel(R) DAL Eclipse plug-in. //appletPath = "C:/Users/User/eclipse/java-2019-12/eclipse\\Targil3\\bin\\Targil3.dalp"; //uint count; //jhi.Uninstall(appletID); //jhi.GetSessionInfo(session, out info); //jhi.GetSessionsCount(appletID, out count); try { jhi.Install(appletID, appletPath); } catch (Exception e) { System.Console.WriteLine(e.Message.ToString()); } // Start a session with the Trusted Application byte[] initBuffer = new byte[] { }; // Data to send to the applet onInit function // Console.WriteLine("Opening a session."); jhi.CreateSession(appletID, JHI_SESSION_FLAGS.None, initBuffer, out session); // Send and Receive data to/from the Trusted Application byte[] sendBuff = UTF32Encoding.UTF8.GetBytes("Hello"); // A message to send to the TA byte[] recvBuff = new byte[2000]; // A buffer to hold the output data from the TA int responseCode; // The return value that the TA provides using the IntelApplet.setResponseCode method int cmdId = 1; // The ID of the command to be performed by the TA // Console.WriteLine("Performing send and receive operation."); jhi.SendAndRecv2(session, cmdId, sendBuff, ref recvBuff, out responseCode); //Console.Out.WriteLine("Response buffer is " + UTF32Encoding.UTF8.GetString(recvBuff)); return(true); }
public static bool test() { try { Jhi.DisableDllValidation = true; //JHI_VERSION_INFO VersionInfo = new JHI_VERSION_INFO(); //jhi.GetVersionInfo(out VersionInfo); //Console.WriteLine(VersionInfo.fw_version); if (JhiServiceController.CheckJhiStatus(System.ServiceProcess.ServiceControllerStatus.Running)) { Console.WriteLine("JHI Status = " + JhiServiceController.GetJhiStatus()); Console.WriteLine("Stopping service..."); if (JhiServiceController.StopJhiService()) { Console.WriteLine("Success!"); } else { Console.WriteLine("Failed to stop service!"); return(false); } } Console.WriteLine("JHI Status = " + JhiServiceController.GetJhiStatus()); Console.WriteLine("Starting service..."); if (JhiServiceController.StartJhiService()) { Console.WriteLine("Success!"); } else { Console.WriteLine("Failed to start service!"); return(false); } Console.WriteLine("JHI Status = " + JhiServiceController.GetJhiStatus()); if (!JhiServiceController.CheckJhiStatus(System.ServiceProcess.ServiceControllerStatus.Running)) { Console.WriteLine("JHI isn't running"); return(false); } Console.WriteLine("Attempting to init... "); jhi = Jhi.Instance; Console.WriteLine("Init succeeded."); } catch (JhiException e) { Console.WriteLine(e.Message); return(false); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.InnerException); return(false); } return(true); }
static void Main(string[] args) { #if AMULET // When compiled for Amulet the Jhi.DisableDllValidation flag is set to true // in order to load the JHI.dll without DLL verification. // This is done because the JHI.dll is not in the regular JHI installation folder, // and therefore will not be found by the JhiSharp.dll. // After disabling the .dll validation, the JHI.dll will be loaded using the Windows search path // and not by the JhiSharp.dll (see http://msdn.microsoft.com/en-us/library/7d83bc18(v=vs.100).aspx for // details on the search path that is used by Windows to locate a DLL) // In this case the JHI.dll will be loaded from the $(OutDir) folder (bin\Amulet by default), // which is the directory where the executable module for the current process is located. // The JHI.dll was placed in the bin\Amulet folder during project build. Jhi.DisableDllValidation = true; #endif Jhi jhi = Jhi.Instance; JhiSession session; SecureStorage secureStorage = new SecureStorage("C:\\Users\\" + Environment.UserName + "\\source\\repos\\DAL-SecureStorage\\encryptedFiles"); // This is the UUID of this Trusted Application (TA). //The UUID is the same value as the applet.id field in the Intel(R) DAL Trusted Application manifest. string appletID = "64146226-a01b-4bec-a6cc-6056cee6f093"; // This is the path to the Intel Intel(R) DAL Trusted Application .dalp file that was created by the Intel(R) DAL Eclipse plug-in. string appletPath = "C:\\Users\\" + Environment.UserName + "\\source\\repos\\DAL-SecureStorage\\applet\\Notes\\bin\\Notes.dalp"; //string appletPath = "C:\\Users\\frankela\\source\\repos\\DAL-SecureStorage\\applet\\Notes\\bin\\Notes.dalp"; // Install the Trusted Application Console.WriteLine("Installing the applet."); try { jhi.Install(appletID, appletPath); } catch (Intel.Dal.JhiException) { appletPath = "C:\\Users\\" + Environment.UserName + "\\source\\repos\\DAL-SecureStorage\\applet\\Notes\\bin\\Notes-debug.dalp"; jhi.Install(appletID, appletPath); } // Start a session with the Trusted Application byte[] initBuffer = new byte[] { }; // Data to send to the applet onInit function Console.WriteLine("Opening a session."); jhi.CreateSession(appletID, JHI_SESSION_FLAGS.None, initBuffer, out session); int readCMD = 0, writeCMD = 1, seyHiCMD = 2; byte[] sendBuff = new byte[200]; byte[] recvBuff = new byte[200]; // A buffer to hold the output data from the TA int responseCode; #region Hi //secureStorage.SendAndRecv2(session, seyHiCMD, sendBuff, ref recvBuff, out responseCode); //Console.WriteLine(recvBuff); #endregion secureStorage.deleteFiles(secureStorage.ExistFiles.ToArray <uint>()); #region readWrite_testCase // write to file 42 "Hello" sendBuff = new byte[16]; recvBuff = new byte[250]; // A buffer to hold the output data from the TA byte[] hello = UTF32Encoding.UTF8.GetBytes("Hello world!"); UintToByteArray(42).CopyTo(sendBuff, 0); hello.CopyTo(sendBuff, 4); secureStorage.SendAndRecv2(session, writeCMD, sendBuff, ref recvBuff, out responseCode, true); // read from file 42, check that it is "Hello". recvBuff = new byte[250]; sendBuff = UintToByteArray(42); secureStorage.SendAndRecv2(session, readCMD, sendBuff, ref recvBuff, out responseCode, true, 42); // check if they are equals. Debug.Assert(recvBuff.SequenceEqual(hello)); #endregion #region The Original Example //// Send and Receive data to/from the Trusted Application //byte[] sendBuff = UTF32Encoding.UTF8.GetBytes("Hello"); // A message to send to the TA //byte[] recvBuff = new byte[6]; // A buffer to hold the output data from the TA //int responseCode; // The return value that the TA provides using the IntelApplet.setResponseCode method //int cmdId = 1; // The ID of the command to be performed by the TA //Console.WriteLine("Performing send and receive operation."); //jhi.SendAndRecv2(session, cmdId, sendBuff, ref recvBuff, out responseCode); //Console.Out.WriteLine("Response buffer is " + UTF32Encoding.UTF8.GetString(recvBuff)); #endregion // Close the session Console.WriteLine("Closing the session."); jhi.CloseSession(session); //Uninstall the Trusted Application Console.WriteLine("Uninstalling the applet."); jhi.Uninstall(appletID); Console.WriteLine("Press Enter to finish."); Console.Read(); }
public static bool init() { Jhi.DisableDllValidation = true; jhi = Jhi.Instance; return(true); }