195 lines
8.7 KiB
Java
195 lines
8.7 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* com.tridium.crypto.core.cert.NKey
|
|
* com.tridium.crypto.core.cert.NPKCS10CertificationRequest
|
|
* com.tridium.crypto.core.cert.NX509Certificate
|
|
* com.tridium.crypto.core.util.FriendlyPemReader
|
|
* javax.baja.gx.BImage
|
|
* javax.baja.sys.BObject
|
|
* javax.baja.sys.Context
|
|
* javax.baja.sys.Sys
|
|
* javax.baja.sys.Type
|
|
* javax.baja.ui.BWidget
|
|
* javax.baja.ui.pane.BTextEditorPane
|
|
* javax.baja.ui.text.BTextEditor
|
|
* javax.baja.ui.wizard.BWizardHeader
|
|
* javax.baja.util.Lexicon
|
|
* javax.baja.workbench.CannotSaveException
|
|
* javax.baja.workbench.view.BWbView
|
|
* org.bouncycastle.cert.X509CertificateHolder
|
|
* org.bouncycastle.cert.jcajce.JcaX509CertificateConverter
|
|
* org.bouncycastle.jce.provider.BouncyCastleProvider
|
|
* org.bouncycastle.openssl.PEMDecryptorProvider
|
|
* org.bouncycastle.openssl.PEMEncryptedKeyPair
|
|
* org.bouncycastle.openssl.PEMKeyPair
|
|
* org.bouncycastle.openssl.PEMParser
|
|
* org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter
|
|
* org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder
|
|
* org.bouncycastle.pkcs.PKCS10CertificationRequest
|
|
* org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest
|
|
*/
|
|
package com.tridium.platcrypto.ui;
|
|
|
|
import com.tridium.crypto.core.cert.NKey;
|
|
import com.tridium.crypto.core.cert.NPKCS10CertificationRequest;
|
|
import com.tridium.crypto.core.cert.NX509Certificate;
|
|
import com.tridium.crypto.core.util.FriendlyPemReader;
|
|
import com.tridium.platcrypto.ui.PrivateKeyPasswordFinder;
|
|
import com.tridium.platcrypto.util.BPemFile;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.Reader;
|
|
import java.security.Key;
|
|
import java.security.KeyPair;
|
|
import java.security.Provider;
|
|
import java.security.cert.Certificate;
|
|
import java.security.cert.X509Certificate;
|
|
import javax.baja.gx.BImage;
|
|
import javax.baja.sys.BObject;
|
|
import javax.baja.sys.Context;
|
|
import javax.baja.sys.Sys;
|
|
import javax.baja.sys.Type;
|
|
import javax.baja.ui.BWidget;
|
|
import javax.baja.ui.pane.BTextEditorPane;
|
|
import javax.baja.ui.text.BTextEditor;
|
|
import javax.baja.ui.wizard.BWizardHeader;
|
|
import javax.baja.util.Lexicon;
|
|
import javax.baja.workbench.CannotSaveException;
|
|
import javax.baja.workbench.view.BWbView;
|
|
import org.bouncycastle.cert.X509CertificateHolder;
|
|
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
|
|
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
|
import org.bouncycastle.openssl.PEMDecryptorProvider;
|
|
import org.bouncycastle.openssl.PEMEncryptedKeyPair;
|
|
import org.bouncycastle.openssl.PEMKeyPair;
|
|
import org.bouncycastle.openssl.PEMParser;
|
|
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
|
|
import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder;
|
|
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
|
|
import org.bouncycastle.pkcs.jcajce.JcaPKCS10CertificationRequest;
|
|
|
|
/*
|
|
* Illegal identifiers - consider using --renameillegalidents true
|
|
*/
|
|
public class BPemFileView
|
|
extends BWbView {
|
|
public static final Type TYPE;
|
|
protected static Lexicon lex;
|
|
protected static BImage logo;
|
|
public BTextEditorPane pane;
|
|
public BTextEditor editor;
|
|
static /* synthetic */ Class class$com$tridium$platcrypto$ui$BPemFileView;
|
|
|
|
public Type getType() {
|
|
return TYPE;
|
|
}
|
|
|
|
protected BWidget buildHeader() {
|
|
return new BWizardHeader(logo, lex.getText("pem.file.viewer.title"));
|
|
}
|
|
|
|
protected void doLoadValue(BObject bObject, Context context) throws Exception {
|
|
super.doLoadValue(bObject, context);
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
BPemFile bPemFile = (BPemFile)bObject;
|
|
InputStream inputStream = bPemFile.getInputStream();
|
|
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
|
|
FriendlyPemReader friendlyPemReader = new FriendlyPemReader((Reader)inputStreamReader);
|
|
PEMParser pEMParser = new PEMParser((Reader)friendlyPemReader);
|
|
int n = 0;
|
|
while (n < 50) {
|
|
try {
|
|
NPKCS10CertificationRequest nPKCS10CertificationRequest;
|
|
Object object;
|
|
Object object2 = pEMParser.readObject();
|
|
if (object2 == null) break;
|
|
if (object2 instanceof X509Certificate) {
|
|
object = NX509Certificate.make((X509Certificate)((X509Certificate)object2));
|
|
stringBuffer.append(object.toString());
|
|
} else if (object2 instanceof X509CertificateHolder) {
|
|
object = new JcaX509CertificateConverter().getCertificate((X509CertificateHolder)object2);
|
|
stringBuffer.append(((Certificate)object).toString());
|
|
} else if (object2 instanceof PKCS10CertificationRequest) {
|
|
object = new JcaPKCS10CertificationRequest(((PKCS10CertificationRequest)object2).getEncoded());
|
|
nPKCS10CertificationRequest = NPKCS10CertificationRequest.make((JcaPKCS10CertificationRequest)object);
|
|
stringBuffer.append(nPKCS10CertificationRequest.toString());
|
|
} else if (object2 instanceof Key) {
|
|
stringBuffer.append(NKey.toString((Key)((Key)object2)));
|
|
} else if (object2 instanceof KeyPair) {
|
|
object = (KeyPair)object2;
|
|
stringBuffer.append(NKey.toString((Key)((KeyPair)object).getPrivate()));
|
|
stringBuffer.append(NKey.toString((Key)((KeyPair)object).getPublic()));
|
|
} else if (object2 instanceof PEMKeyPair) {
|
|
object = (PEMKeyPair)object2;
|
|
nPKCS10CertificationRequest = new JcaPEMKeyConverter().setProvider((Provider)new BouncyCastleProvider());
|
|
stringBuffer.append(NKey.toString((Key)nPKCS10CertificationRequest.getPrivateKey(object.getPrivateKeyInfo())));
|
|
stringBuffer.append(NKey.toString((Key)nPKCS10CertificationRequest.getPublicKey(object.getPublicKeyInfo())));
|
|
} else if (object2 instanceof PEMEncryptedKeyPair) {
|
|
object = new JcePEMDecryptorProviderBuilder().setProvider((Provider)new BouncyCastleProvider());
|
|
nPKCS10CertificationRequest = object.build(new PrivateKeyPasswordFinder((BWidget)this).getPassword());
|
|
JcaPEMKeyConverter jcaPEMKeyConverter = new JcaPEMKeyConverter().setProvider((Provider)new BouncyCastleProvider());
|
|
PEMKeyPair pEMKeyPair = ((PEMEncryptedKeyPair)object2).decryptKeyPair((PEMDecryptorProvider)nPKCS10CertificationRequest);
|
|
stringBuffer.append(NKey.toString((Key)jcaPEMKeyConverter.getPrivateKey(pEMKeyPair.getPrivateKeyInfo())));
|
|
stringBuffer.append(NKey.toString((Key)jcaPEMKeyConverter.getPublicKey(pEMKeyPair.getPublicKeyInfo())));
|
|
} else {
|
|
stringBuffer.append("unrecognized object: " + object2.getClass().getName() + '\n');
|
|
stringBuffer.append(object2.toString());
|
|
}
|
|
stringBuffer.append("\n");
|
|
}
|
|
catch (Exception exception) {
|
|
++n;
|
|
stringBuffer.append("error parsing object: " + exception.getLocalizedMessage()).append("\n");
|
|
}
|
|
}
|
|
try {
|
|
if (pEMParser != null) {
|
|
pEMParser.close();
|
|
}
|
|
}
|
|
catch (Exception exception) {}
|
|
this.editor.setEditable(false);
|
|
this.editor.setText(stringBuffer.toString());
|
|
}
|
|
|
|
protected BObject doSaveValue(BObject bObject, Context context) throws CannotSaveException, Exception {
|
|
return super.doSaveValue(bObject, context);
|
|
}
|
|
|
|
static /* synthetic */ Class class(String string, boolean bl) {
|
|
try {
|
|
Class<?> clazz = Class.forName(string);
|
|
if (!bl) {
|
|
clazz = clazz.getComponentType();
|
|
}
|
|
return clazz;
|
|
}
|
|
catch (ClassNotFoundException classNotFoundException) {
|
|
throw new NoClassDefFoundError(classNotFoundException.getMessage());
|
|
}
|
|
}
|
|
|
|
private final /* synthetic */ void this() {
|
|
this.pane = new BTextEditorPane("", 80, 40, true);
|
|
this.editor = this.pane.getEditor();
|
|
}
|
|
|
|
public BPemFileView() {
|
|
this.this();
|
|
this.setContent((BWidget)this.pane);
|
|
}
|
|
|
|
static {
|
|
Class clazz = class$com$tridium$platcrypto$ui$BPemFileView;
|
|
if (clazz == null) {
|
|
clazz = class$com$tridium$platcrypto$ui$BPemFileView = BPemFileView.class("[Lcom.tridium.platcrypto.ui.BPemFileView;", false);
|
|
}
|
|
TYPE = Sys.loadType((Class)clazz);
|
|
lex = Lexicon.make((String)"platCrypto");
|
|
logo = BImage.make((String)lex.get("cert.x32.icon", "module://crypto/icons/x32/cert.png"));
|
|
}
|
|
}
|
|
|