123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- ///////////////////////////////////////////////////////////////////////////
- // Copyright (c) 2018 Intel Corporation. //
- // //
- // All rights reserved. This program and the accompanying materials //
- // are made available under the terms of the Eclipse Public License v1.0 //
- // which accompanies this distribution, and is available at //
- // http://www.eclipse.org/legal/epl-v10.html //
- // //
- // Contributors: //
- // Intel Corporation - initial implementation and documentation //
- ///////////////////////////////////////////////////////////////////////////
- package com.intel.sgx.handlers;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- //import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- //import java.security.KeyPair;
- //import java.security.KeyPairGenerator;
- //import java.security.NoSuchAlgorithmException;
- import org.eclipse.core.commands.ExecutionEvent;
- import org.eclipse.core.commands.ExecutionException;
- import org.eclipse.core.commands.IHandler;
- import org.eclipse.core.commands.IHandlerListener;
- import org.eclipse.core.resources.IProject;
- import org.eclipse.core.resources.IResource;
- import org.eclipse.core.runtime.CoreException;
- import org.eclipse.core.runtime.IPath;
- import org.eclipse.core.runtime.Path;
- import org.eclipse.jface.dialogs.InputDialog;
- import org.eclipse.jface.viewers.ISelection;
- import org.eclipse.jface.viewers.IStructuredSelection;
- import org.eclipse.swt.widgets.Shell;
- import org.eclipse.ui.PlatformUI;
- import org.eclipse.ui.handlers.HandlerUtil;
- //import org.bouncycastle.openssl.PEMWriter;
- import com.intel.sgx.Activator;
- import com.intel.sgx.dialogs.UpdateSignKeyDialog;
- public class UpdateSigningKey extends SGXHandler {
- public String sourceKeyFile = null;
- public String destinationKeyFile = null;
- public String projectPath = null;
- @Override
- protected Object executeSGXStuff() throws ErrorException, CancelException {
- UpdateSignKeyDialog dialog = new UpdateSignKeyDialog(shell, this);
- int result = dialog.open();
- if (result != InputDialog.OK) {
- cancel();
- }
-
- if(UpdateSignKeyDialog.regenerate == false)
- {
- IPath sourceFile = Path.fromOSString(sourceKeyFile);
- IPath destFile = Path.fromOSString(destinationKeyFile);
- copyFile(sourceFile.toFile(), destFile.toFile());
- refreshProject();
- info("Update Intel(R) SGX Enclave Signing Key","copied \n'" + sourceKeyFile + "' into \n'" + destFile + "'");
- } else {
- UpdateSignKeyDialog.regenerate = false;
- try {
- Process q;
- String opensslCmd = "openssl genrsa -out " + destinationKeyFile
- + " -3 3072";
- q = Runtime.getRuntime().exec(opensslCmd);
- BufferedReader stdInput = new BufferedReader(
- new InputStreamReader(q.getInputStream()));
- BufferedReader stdErr = new BufferedReader(
- new InputStreamReader(q.getErrorStream()));
- String s = null;
- while ((s = stdInput.readLine()) != null) {
- }
- while ((s = stdErr.readLine()) != null) {
- }
- project.refreshLocal(IResource.DEPTH_INFINITE, null);
- if (q.exitValue() == 0){
- info("Update Intel(R) SGX Enclave Signing Key","'"+destinationKeyFile+"'"+" was generated!");
- } else {
- quitWithError("Could not generate '"+destinationKeyFile+"'!!!");
- }
- } catch (IOException e) {
- Activator.log(e);
- e.printStackTrace();
- } catch (CoreException e) {
- Activator.log(e);
- e.printStackTrace();
- }
- }
- return null;
- }
- }
|