Giter VIP home page Giter VIP logo

scop / portecle Goto Github PK

View Code? Open in Web Editor NEW
145.0 13.0 45.0 41.28 MB

User friendly GUI application for creating, managing and examining keystores, keys, certificates, certificate requests, certificate revocation lists and more

Home Page: http://portecle.sourceforge.net/

License: GNU General Public License v2.0

Java 99.93% Shell 0.07%
java security cryptography keystore certificate-files keypair help-wanted

portecle's Introduction

Portecle CI status Download

Portecle is a user friendly GUI application for creating, managing and examining keystores, keys, certificates, certificate requests, certificate revocation lists and more.

Currently, Portecle can be used to, for example:

  • Create, load, save, and convert keystores.
  • Generate DSA and RSA key pair entries with self-signed X.509 certificates.
  • Import X.509 certificate files as trusted certificates.
  • Import key pairs from PKCS #12 files.
  • Clone and change the password of key pair entries and keystores.
  • View the details of certificates contained within keystore entries, certificate files, and SSL/TLS connections.
  • Export keystore entries in a variety of formats.
  • Generate and view certification requests (CSRs).
  • Import Certificate Authority (CA) replies.
  • Change the password of key pair entries and keystores.
  • Delete, clone, and rename keystore entries.
  • View the details of certificate revocation list (CRL) files.

Getting up and running with Portecle is quick and easy. Everything you need to know is detailed below. Being written in Java, Portecle will run on any machine that has a suitable Java runtime environment installed.

You can access the online help of Portecle from within the Portecle GUI, or online at http://portecle.sourceforge.net/#docs

Installing

First, you'll need a suitable Java runtime environment installed. Java SE version 7 or later is required; see for example https://www.oracle.com/technetwork/java/index.html and https://openjdk.java.net/ for available versions and install instructions.

Apart from Java, the default binary distribution of Portecle contains everything you'll need to run it. The easiest way to install it is to unzip the binary distribution to a directory somewhere on your filesystem.

The binary distribution contains the Portecle jar file (portecle.jar) as well as Bouncy Castle provider and PKIX jars (bcprov.jar, bcpkix.jar) for Java SE 7. If you wish to run Portecle with a later Java version, or update the bundled Bouncy Castle jars for some other reason, simply download an update for your version of Java from https://www.bouncycastle.org/ and place the jars into the same directory as portecle.jar with the names bcprov.jar and bcpkix.jar, overwriting the existing one already there (if any). The binary distribution also contains icons for use with Portecle.

Portecle can additionally use the GNU Classpath (version 0.90 or later) security providers if they are installed. Support for GNU Keyring (GKR) keystores requires these providers. For more information about GNU Classpath, see https://www.gnu.org/software/classpath/

Depending on your Portecle usage patterns, the Bouncy Castle provider may require the JCE unlimited strength jurisdiction policy files installed to function properly. See "IMPORTANT NOTES" at https://www.bouncycastle.org/documentation.html. Failures related to lack of these policy files usually manifest themselves as errors loading keystores with an error message like "Unsupported keysize or algorithm parameters" or "Illegal key size" when trying to import keys.

The default way of running Portecle uses the java -jar method, which means that the Class-Path defined in portecle.jar's MANIFEST.MF will be used to locate all classes. You can also invoke Portecle by its "main" class, net.sf.portecle.FPortecle. This method allows you to use a Bouncy Castle provider jar elsewhere on your filesystem.

The following chapters contain examples how to run Portecle; all of the examples assume that the JRE/JDK bin directory has been added to your PATH environment variable.

Windows Command Line

Assuming you have an appropriate JRE/JDK installed and have placed the Portecle and Bouncy Castle provider JAR files into a directory c:\java you can run Portecle like so:

java -jar c:\java\portecle.jar

In most setups, if portecle.jar, bcprov.jar, and bcpkix.jar were installed as instructed above, Portecle can also be run by double-clicking portecle.jar in the Windows Explorer.

If you wish to manage the jar locations yourself, use Java's -cp option for that, and net.sf.portecle.FPortecle as the class to launch.

UNIX Command Line

Assuming you have an appropriate JRE/JDK installed and have placed the Portecle and Bouncy Castle provider jar files into a directory /usr/share/java you can run Portecle like so:

java -jar /usr/share/java/portecle.jar

If you wish to manage the jar locations yourself, use Java's -cp option for that, and net.sf.portecle.FPortecle as the class to launch.

Experimental Features

Portecle releases may contain experimental features that are not enabled by default. These have known limitations or incomplete implementations that make them unsuitable for production use, but they may be valuable for early adopters. To enable these features, use -Dportecle.experimental=true in your Portecle invocation command line. See the file NEWS.txt for information about status of current experimental features.

Copyright and License

Copyright © 2004 Wayne Grant, 2004 Mark Majczyk, 2004-2019 Ville Skyttä

Portecle is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Portecle is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Portecle, see the file LICENSE.txt; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Contact

For contact information and issue tracking facilities, see Portecle's project pages at:

portecle's People

Contributors

lamchau avatar nitram509 avatar scop 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  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  avatar  avatar

portecle's Issues

MissingResourceException FileChooseFactor y.KeyStoreFiles.BKS_V1

Looks like the BKS_v1 integration still has some problems:

Exception in thread "AWT-EventQueue-0" java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key FileChooseFactor
y.KeyStoreFiles.BKS_V1

The file "resources.properties" misses the following line:

FileChooseFactory.KeyStoreFiles.BKS_V1=BKS Keystore Files ({0})

BTW: It looks like Exceptions are only visible on the console, in case the console is visible. It would be good to have an default exception handler that displays at least a small error dialog.

Reported by: jpstotz

Import CA reply bug

I found bug/problem in CA reply import (Portecle
version 1.0). When i had imported CA reply and had
tried to generate new certification request, i obtained
this exception

net.sf.portecle.crypto.CryptoException: Could not
generate a certification request.
net.sf.portecle.crypto.X509CertUtil.generatePKCS10CSR(Unknown
Source)
net.sf.portecle.FPortecle.generateCsrSelectedEntry(Unknown
Source)
net.sf.portecle.FPortecle.access$4600(Unknown Source)
net.sf.portecle.FPortecle$49.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

java.security.InvalidKeyException: Supplied key is not
a RSAPrivateKey instance
org.bouncycastle.jce.provider.JDKDigestSignature.engineInitSign(JDKDigestSignature.java:86)
java.security.Signature.initSign(Unknown Source)
org.bouncycastle.jce.PKCS10CertificationRequest.<init>(PKCS10CertificationRequest.java:235)
org.bouncycastle.jce.PKCS10CertificationRequest.<init>(PKCS10CertificationRequest.java:132)
net.sf.portecle.crypto.X509CertUtil.generatePKCS10CSR(Unknown
Source)

Thanks for looking at it!
net.sf.portecle.FPortecle.generateCsrSelectedEntry(Unknown
Source)
net.sf.portecle.FPortecle.access$4600(Unknown Source)
net.sf.portecle.FPortecle$49.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Reported by: dagi

cannot export keypair as pkcs12

java.security.UnrecoverableKeyException: Cannot recover key
sun.security.provider.KeyProtector.recover(KeyProtector.java:301)
sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:103)
java.security.KeyStore.getKey(KeyStore.java:731)
net.sf.portecle.FPortecle.exportPrivKeyCertChain(Unknown
Source)
net.sf.portecle.FPortecle.exportSelectedEntry(Unknown
Source)
net.sf.portecle.FPortecle.access$4400(Unknown Source)
net.sf.portecle.FPortecle$47.run(Unknown Source)
java.lang.Thread.run(Thread.java:595)

I was able to do a "Save Keystore As".
Unfortunately, I cannot give you the keystore for
testing since the private key is still in use, but this
keystore-report may give you some evidence on what type
of key we are dealing with:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE keystore PUBLIC "-//Portecle//DTD KeyStore
Report 1.0//EN"
"http://portecle.sourceforge.net/xml/keystore.dtd">
<keystore provider="SUN" type="JKS">
<entry alias="smtp.privasphere.com"
creation_date="Nov 24, 2004 9:08:15 AM" type="KeyPair">
<certificate>
<version>3</version>
<subject>EMAILADDRESS=[email protected],
CN=smtp.privasphere.com, OU=Secure Messaging,
O=PrivaSphere GmbH, L=Zurich, ST=ZH, C=CH</subject>
<issuer>EMAILADDRESS=[email protected],
OU=TC TrustCenter Class 3 CA, O=TC TrustCenter for
Security in Data Networks GmbH, L=Hamburg, ST=Hamburg,
C=DE</issuer>

<serial_number>36DF000000027FBC5193A605086F</serial_number>
<valid_from>Oct 14, 2004 12:55:28 PM</valid_from>
<valid_until>Nov 28, 2005 11:55:28 AM</valid_until>
<public_key_algorithm>RSA (1024
bits)</public_key_algorithm>

<signature_algorithm>SHA1withRSA</signature_algorithm>

<md5_fingerprint>24:6D:D7:1E:52:16:7E:E1:F1:3C:29:72:F9:7A:6F:20</md5_fingerprint>

<sha1_fingerprint>FE:BF:37:20:D4:48:92:3A:FF:94:F0:00:BE:E3:80:D5:1A:F4:A3:AC</sha1_fingerprint>
</certificate>
</entry>
</keystore>

Reported by: ralfhauser

open system keystores at startup

Java 6 provides support for system keystores. For example on a windows machine you can access the keystores "Windows-MY" (the keystore of the current user) and "Windows-ROOT" (the keystore of the machine). Maybe there are some system keystores on other platforms supported already (or will be supported in future).

Portecle should open all available system keystores at startup.

Reported by: felxator

bc loads wrong JARs

Is it me, is it portecle or is it bouncy castle? I do not know.
Using portecle 1.7

I started portecle in through a BAT file setting the JAVA_HOME to C:\Program Files (x86)\Java\jre6
This is the place I patched JCE for string encryption ...
It starts up and shows C:\Program Files (x86)\Java\jre6\lib\security\cacaerts as CA key store
But when I monitored which JARs are accessed when opening up a PKCS#12 file using strong encryption it accesses the JARs from the system wide JAVA_HOME!

My startup "script" is:
set java_home=C:\Program Files (x86)\Java\jre6
set PATH=%PATH%;%JAVA_HOME%\bin
start javaw -jar portecle.jar

Reported by: claus-list

Exception while opening the file selection dialog

The following Exception is shown when I use the menu File->Open Keystore File. I use java 1.6. The problem occures also under windows as under Linux Ubuntu 10.10. The file chooser is not opened.

Exception in thread "Thread-3" java.lang.IndexOutOfBoundsException: Invalid index
at javax.swing.DefaultRowSorter.convertRowIndexToModel(Unknown Source)
at sun.swing.FilePane$SortableListModel.getElementAt(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getCellBounds(Unknown Source)
at javax.swing.JList.getCellBounds(Unknown Source)
at javax.swing.JList.ensureIndexIsVisible(Unknown Source)
at sun.swing.FilePane.ensureIndexIsVisible(Unknown Source)
at sun.swing.FilePane.doDirectoryChanged(Unknown Source)
at sun.swing.FilePane.propertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.awt.Component.firePropertyChange(Unknown Source)
at javax.swing.JFileChooser.setCurrentDirectory(Unknown Source)
at net.sf.portecle.FPortecle.openKeyStoreFile(FPortecle.java:1782)
at net.sf.portecle.FPortecle.access$4200(FPortecle.java:143)
at net.sf.portecle.FPortecle$OpenKeyStoreFileAction.act(FPortecle.java:6183)
at net.sf.portecle.FPortecle$AbstractAction$1.run(FPortecle.java:6558)
at java.lang.Thread.run(Unknown Source)

Reported by: gurumaker

Creating a jks container for Jira

Hi,
i created a jks container and imported a .CRT certificate.
after saving and implementing the jks container in Jira the Jira system gives following error message out:
Serve: Failed to initialize end point protection associated with ProtocolHandler
java.io.IOException: Alias Wildcard does not identify a key entry.
I have a Key File for the .Crt certificate.
Where can i import the keyhole with portecle or how can i implement the ssl certificate with protocol in Jira?

Best
Mike

Exception while Examining URLs

When trying to examine URLs I get some exceptions:

OS Info:
Mac OS X 10.6.8
Java:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)

examine google.com:443:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: md2WithRSAEncryption
at net.sf.portecle.crypto.SignatureType.<clinit>(SignatureType.java:44)
at net.sf.portecle.DViewCertificate.populateDialog(DViewCertificate.java:654)
at net.sf.portecle.DViewCertificate.initComponents(DViewCertificate.java:521)
at net.sf.portecle.DViewCertificate.<init>(DViewCertificate.java:166)
at net.sf.portecle.FPortecle.examineCertSSL(FPortecle.java:2468)
at net.sf.portecle.FPortecle.access$5000(FPortecle.java:150)
at net.sf.portecle.FPortecle$ExamineCertSSLAction.act(FPortecle.java:6437)
at net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6373)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6138)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

examine pointhq.com:443:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class net.sf.portecle.crypto.SignatureType
at net.sf.portecle.DViewCertificate.populateDialog(DViewCertificate.java:654)
at net.sf.portecle.DViewCertificate.initComponents(DViewCertificate.java:521)
at net.sf.portecle.DViewCertificate.<init>(DViewCertificate.java:166)
at net.sf.portecle.FPortecle.examineCertSSL(FPortecle.java:2468)
at net.sf.portecle.FPortecle.access$5000(FPortecle.java:150)
at net.sf.portecle.FPortecle$ExamineCertSSLAction.act(FPortecle.java:6437)
at net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6373)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6138)
at java.awt.Container.processEvent(Container.java:2085)
at java.awt.Component.dispatchEventImpl(Component.java:4735)
at java.awt.Container.dispatchEventImpl(Container.java:2143)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4621)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
at java.awt.Container.dispatchEventImpl(Container.java:2129)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4565)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:638)
at java.awt.EventQueue$1.run(EventQueue.java:636)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:652)
at java.awt.EventQueue$2.run(EventQueue.java:650)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:649)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Reported by: matthiasbalke

IAIK Support

Hello,
I'm missing support of IAIK keystore type in Portecle. Is it possible to support this provider? I have implemented support of IAIK in Keytool GUI (precedor of Portecle). IAIK is not free provider but Portecle should support it (but library will not be part of Portecle).
Vasek

Reported by: vtregner

Allow to assign multiple certificates to a single private ke

many certificates can be issued on a single public key.

portecle makes a strong association of one public with
one private key.

When for example exporting to a pfx that association is
taken.

Attached an example where a second certificate with the
same modulus and exponent is present.

RFEs:
1) upon certificate import detect certificates with the
same public key
2) upon certificate import detect the corresponding
private key
3) allow establish a flexible 1:n relation between the
private key and its corresponding certificates

Reported by: ralfhauser

Cannot import chained cert from pkcs12 to .jks

If I import a chained certificate (eg root ->
intermediate -> private key) from a .pfx file the root
and intermediate certificates are not imported into
a .jks.

In older versions of portecle (0.9) this was possible,
version 1.1 no longer supports this.

How to reproduce:
1) get a .pfx containing a private key and a kopple of
certificates in the chain.
2) import private key.
3) Check the certificate details. It says Certificate
1 of 1.
In version 0.9 the result is Certificates 1 of 3. The
certificate chain is included in the keystore.

(I am using bountycastle 1.31.0 w/ portecle 1.1, jre
1.4.2_05)

Reported by: klaasjanelzinga

Please add support for bcfks keystore type

Currently a Bouncy Castle Fips keystore file (bcfks) can only be opened with keytool with all the required arguments to use bc-fips.jar, making such keytool command line is even more fastidious.

Please add support for bcfks in portecle!

Example typical keytool command line for bcfks:
keytool.exe -list -keystore servletcontainer.bcfks -storetype bcfks -providerpath "\lib\bc-fips-1.0.1.jar" -providername BCFIPS -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -storepass not-secure

The application doesn't work on 1.7.0-b222 OpenJDK, MacOS

java -jar portecle.jar
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:357)
at sun.lwawt.macosx.CImage$Creator.createFromImage(CImage.java:101)
at sun.lwawt.macosx.CPlatformWindow.getImageForTarget(CPlatformWindow.java:734)
at sun.lwawt.macosx.CPlatformWindow.updateIconImages(CPlatformWindow.java:541)
at sun.lwawt.LWWindowPeer.updateIconImages(LWWindowPeer.java:438)
at java.awt.Window.setIconImages(Window.java:705)
at java.awt.Window.setIconImage(Window.java:743)
at java.awt.Frame.setIconImage(Frame.java:553)
at javax.swing.JFrame.setIconImage(JFrame.java:656)
at net.sf.portecle.FPortecle.initComponents(FPortecle.java:402)
at net.sf.portecle.FPortecle.<init>(FPortecle.java:349)
at net.sf.portecle.FPortecle$CreateAndShowGui.run(FPortecle.java:6731)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:240)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:142)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:134)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

fajtl:~ dagi$ java -version
openjdk version "1.7.0-b222"
OpenJDK Runtime Environment (build 1.7.0-b222-20111220)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)

Reported by: *anonymous

Exception opening .ks

Hello,

don't know if this is exactly a bug, anyway: I'm trying to open a keystore file (.ks) generated by a previous java version (probably 1.5 or earlier) in order to convert it into a .pfx certfile.
I select the keystore.ks on filechooser opened by pressing Ctrl-O, then the password prompt is shown but when I type the password (the right password...) an exception is thrown (I appendend to this message the details).
I know this is probably a keystore file problem because I imagine you tested your software with a lot of keystore files. Anyway I'm hoping you can help me to solve my problem.

Thanks in advance.
Giacomo Galletto

java.lang.ClassCastException: org.bouncycastle.asn1.DERSequence cannot be cast to org.bouncycastle.asn1.DERInteger
org.bouncycastle.asn1.pkcs.Pfx.<init>(Unknown Source)
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
java.security.KeyStore.load(Unknown Source)
net.sf.portecle.crypto.KeyStoreUtil.loadKeyStore(KeyStoreUtil.java:303)
net.sf.portecle.FPortecle.openKeyStoreFile(FPortecle.java:1929)
net.sf.portecle.FPortecle.openKeyStoreFile(FPortecle.java:1834)
net.sf.portecle.FPortecle.access$4200(FPortecle.java:150)
net.sf.portecle.FPortecle$OpenKeyStoreFileAction.act(FPortecle.java:6180)
net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$000(Unknown Source)
java.awt.EventQueue$1.run(Unknown Source)
java.awt.EventQueue$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$2.run(Unknown Source)
java.awt.EventQueue$2.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

Reported by: galletto

Italian Language

if it is possible to make italian tranlation

Reported by: salvrap

Ability to sign CSR

Currently I couldn't find a way to sign a CSR within portecle, it would be nice, if this would be possible. (Or did I missed something?)

Reported by: aldaris88

Doesn't work with Netbeans defalut keystore

Looks like a dead project. Bugs untouched for 7 years.

Well just in case:
portecle-1.7, Netbeans 7.2
I can open the Netbeans default keystore using
keytool -list -keystore ...builtin.ks
with a blank password, and it shows three certificates.

Portecle in contrast, shows a blank screen, no error message, on stderr or otherwise.
Just nothing.

Reported by: stevan_white

Portecle v1.4 & 1.5 - Import CA Reply

I am using OpenSSL to sign the certificate. Once the Root CA is imported and then I use the "Import CA Reply", it throws me the following errors.

"Could not establish trust for the CA reply. The import cannot proceed."

However the did the exact steps for v1.3. It works fine.

Reported by: longcdo

Painfully slow with X11 Forwarding

When I first stared using Portecle 1.4, it ran on a Linux server with no GUI installed. I had a Win XP box on the same LAN, and used Xming to do whatever I needed. It worked very well.

Now, however, my Win XP is not on the same LAN with the Linux. So I have to use X11 Forwarding in order to use an X server such as Xming or Xdeep32. And it is very slow and painful. Portecle takes minutes to respond to each mouse click--if it responds at all!

There are 2 other X clients that I use in this manner, and results vary. Cleo Lexicom is slow with Xming, but good with Xdeep32. Mendelson Open Source AS2 works well with Xming. Portecle is equally bad with both servers.

Reported by: neilparks1

Read only keystore

Would be nice to have a read only capability into a keystore for examination of certificates, etc, obviously no edit features would be enabled in such a mode of operation.

Reported by: pmotyka

BKS_V1 Keystore not detected as BKS_V1 Keystore

Steps to reproduce:

  • create a BKS_V1 keystore or create a BKS keystore and convert it to BKS_V1
  • inspect it with Keystore Report. It shows BKS_V1
  • Close Portecle.
  • Open the keystore again and inspect it with Keystore Report. It shows BKS (even though it actually is BKS_V1, as I could confirm by testing with an older Bouncycastle version).

Maybe there is a missing check of the STORE_VERSION.
Version 0 for BKS_V1, higher for BKS.

Reported by: redirion

Cannot import pkcs12 file into a jks keystore

I am trying to create a new keystore containing one
single keypair. I generated the keypair using openssl
to convert the client certificate and the client key
into pkcs12 format.
I then tryied to import the keypair using portecle and
get the error: net.sf.portecle.crypto.CryptoException:
Could not load keystore as type 'PKCS12'.

This is the stacktrace produced:
net.sf.portecle.crypto.KeyStoreUtil.loadKeyStore(Unknown
Source)
net.sf.portecle.FPortecle.importKeyPair(Unknown Source)
net.sf.portecle.FPortecle.access$7500(Unknown Source)
net.sf.portecle.FPortecle$76.run(Unknown Source)
java.lang.Thread.run(Thread.java:595)

java.io.IOException: exception decrypting data -
java.security.InvalidKeyException: Illegal key size
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.decryptData(JDKPKCS12KeyStore.java:637)
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(JDKPKCS12KeyStore.java:895)
java.security.KeyStore.load(KeyStore.java:1150)
net.sf.portecle.crypto.KeyStoreUtil.loadKeyStore(Unknown
Source)
net.sf.portecle.FPortecle.importKeyPair(Unknown Source)
net.sf.portecle.FPortecle.access$7500(Unknown Source)
net.sf.portecle.FPortecle$76.run(Unknown Source)
java.lang.Thread.run(Thread.java:595)

I am using portecle v1.1 under gentoo 2.6.14-r4 with
original sun jdk installed.

Reported by: c3lph1sh

Import Key Pair

So here's my problem:

I have a key pair (a .p12 file) with a signature algorithm SHA-256 and I can successfully import to Portecle. But when I export it, I want to convert this signature algorithm to SHA1.

It will be possible to apply this feature/improvement in the next versions of portecle?
It would help a lot my work.

My suggestion is:
Show a combo box "Signature algorithm" with the choices in the "Export Keystore Entry" window, when you are exporting a key pair.

Thanks

Reported by: hameneses

support for multiple keystores

Portecle should allow to open multiple keystores simultanously whereas each keystore could be displayed in a separate tab.

This could allow features like copying a key/certificate from a p12-file to a java keystore and similar tasks.

Reported by: felxator

Import CA reply bug

I found bug/problem in CA reply import (Portecle
version 1.0). When i had imported CA reply and had
tried to generate new certification request, i obtained
this exception

net.sf.portecle.crypto.CryptoException: Could not
generate a certification request.
net.sf.portecle.crypto.X509CertUtil.generatePKCS10CSR(Unknown
Source)
net.sf.portecle.FPortecle.generateCsrSelectedEntry(Unknown
Source)
net.sf.portecle.FPortecle.access$4600(Unknown Source)
net.sf.portecle.FPortecle$49.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

java.security.InvalidKeyException: Supplied key is not
a RSAPrivateKey instance
org.bouncycastle.jce.provider.JDKDigestSignature.engineInitSign(JDKDigestSignature.java:86)
java.security.Signature.initSign(Unknown Source)
org.bouncycastle.jce.PKCS10CertificationRequest.<init>(PKCS10CertificationRequest.java:235)
org.bouncycastle.jce.PKCS10CertificationRequest.<init>(PKCS10CertificationRequest.java:132)
net.sf.portecle.crypto.X509CertUtil.generatePKCS10CSR(Unknown
Source)

Thanks for looking at it!
net.sf.portecle.FPortecle.generateCsrSelectedEntry(Unknown
Source)
net.sf.portecle.FPortecle.access$4600(Unknown Source)
net.sf.portecle.FPortecle$49.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Reported by: dagi

Using Portelce with a proxy in a corporate environment

We have tried in our company to use Portecle to get the certificate chain to an external server (marketplace.atlassian.com) to avoid errors in reaching that server (see the Atlassian Knowledge Base Entry for details. This article references the tool Portecle (on page Connecting to SSL service).

We have tried to use Portecle, but failed. We think that the need to use a proxy is the reason for that. We tried different variations, but none of them worked:

  • Defining the proxy as environment variable: set HTTP_PROXY=<our_proxy:8080>
  • Defining the proxy as Java start parameter: java -Dhttp.proxyHost=<our_proxy> -Dhttp.proxyPort=8080 -jar portecle.jar
  • Using the proxy as start parameter like: java -jar portecle.jar <our_proxy>:8080

So we have 2 questions here:

  • Is it possible to use Portecle inside a corporate environment, so that we can use a proxy at all?
  • If yes, what is the way to define that proxy so that Portecle will use it?

Reported by: malie84

extensions needed for AS2

When I generate a "key pair" using portecle, the resulting certificate is not suitable for use in an AS2 application because there is no option to create it with "key usage extensions".

An AS2 certificate needs:

(quote)

Key Usage: digitalSignature
keyEncipherment

(end quote)

Portecle can import keys containing extensions, and can display them in the various screens that show the contents of a certificate. So it ought to be able to generate them also.

Reported by: neilparks1

Add expire columns to main view

i have several certificate in a wallet and one feature i miss is a quick way to see when will the certificate expire (or if they are already expired) without having to click on each certificate. A simple column with the expire date would be perfect.
A column for fingerprint and for the subject would even better, so one could see duplicate certs (both different versions or exactly the same certificate)

Thanks for portecle! :)

Reported by: higuita

Allow to export a private key as PEM as well

sometimes, one needs a private key in PEM and
converting .pfx files is not feasible for users who are
having difficulties with anything other than GUIs

Reported by: ralfhauser

extension for a simple certification authority

Portecle already has lots of capabilities required for a simple certification authority:

* creating/import of keys and certificates
* generate certification requests
* import CA replies

It would be useful extension, if Portecle could establish a simple self contained certification authority by providing tasks like:

* sign certification requests
* generate a CRL

Reported by: felxator

Cannot save pkcs12 keystore when launched from Webstart

System Windows 7. Launch Portecle via Webstart. Then create new PKCS#12 keystore, generate keypair and save. Exception is thrown:

net.sf.portecle.crypto.CryptoException: Could not save keystore.
net.sf.portecle.crypto.KeyStoreUtil.saveKeyStore(KeyStoreUtil.java:397)
net.sf.portecle.FPortecle.saveKeyStoreAs(FPortecle.java:2203)
net.sf.portecle.FPortecle.saveKeyStore(FPortecle.java:2082)
net.sf.portecle.FPortecle$SaveKeyStoreAction.act(FPortecle.java:6148)
net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.AbstractButton.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

java.io.IOException: exception encrypting data - java.lang.SecurityException: JCE cannot authenticate the provider BC
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.wrapKey(Unknown Source)
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineStore(Unknown Source)
java.security.KeyStore.store(Unknown Source)
net.sf.portecle.crypto.KeyStoreUtil.saveKeyStore(KeyStoreUtil.java:393)
net.sf.portecle.FPortecle.saveKeyStoreAs(FPortecle.java:2203)
net.sf.portecle.FPortecle.saveKeyStore(FPortecle.java:2082)
net.sf.portecle.FPortecle$SaveKeyStoreAction.act(FPortecle.java:6148)
net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.AbstractButton.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

Reported by: *anonymous

enable Drag & Drop

It should be possible to drag & drop a keystore file to the portecle application. The keystore file should be opened and displayed then.

Reported by: felxator

Exception opening .ks

Hello,

don't know if this is exactly a bug, anyway: I'm trying to open a keystore file (.ks) generated by a previous java version (probably 1.5 or earlier) in order to convert it into a .pfx certfile.
I select the keystore.ks on filechooser opened by pressing Ctrl-O, then the password prompt is shown but when I type the password (the right password...) an exception is thrown (I appendend to this message the details).
I know this is probably a keystore file problem because I imagine you tested your software with a lot of keystore files. Anyway I'm hoping you can help me to solve my problem.

Thanks in advance.
Giacomo Galletto

java.lang.ClassCastException: org.bouncycastle.asn1.DERSequence cannot be cast to org.bouncycastle.asn1.DERInteger
org.bouncycastle.asn1.pkcs.Pfx.<init>(Unknown Source)
org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
java.security.KeyStore.load(Unknown Source)
net.sf.portecle.crypto.KeyStoreUtil.loadKeyStore(KeyStoreUtil.java:303)
net.sf.portecle.FPortecle.openKeyStoreFile(FPortecle.java:1929)
net.sf.portecle.FPortecle.openKeyStoreFile(FPortecle.java:1834)
net.sf.portecle.FPortecle.access$4200(FPortecle.java:150)
net.sf.portecle.FPortecle$OpenKeyStoreFileAction.act(FPortecle.java:6180)
net.sf.portecle.FPortecle$AbstractAction.actionPerformed(FPortecle.java:6551)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEventImpl(Unknown Source)
java.awt.EventQueue.access$000(Unknown Source)
java.awt.EventQueue$1.run(Unknown Source)
java.awt.EventQueue$1.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue$2.run(Unknown Source)
java.awt.EventQueue$2.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

Reported by: galletto

Certificate request should use the original values, not the CA ones

I generated a key pair, generate the certificate request and got the CA reply (COMODO).
After i imported the CA reply, the certificate fields changes to "CN=(certficate name) OU=GGSSL Domain SSL, OU=Domain Control Validated" because the CA enforce this info.

Now, i want to renew the certificate, reusing the same key, but i can not, because the Generate certificate request uses those fields instead of the original. When i try to submit the CRS, the site complains that several fields are "wrong", forcing me to always recreate a keypair.

So please allow one to choose what certificate fields to use, the original ones or the CA enforced ones.

Reported by: higuita

customizable columns

The user should be allowed to select the displayed information of each certificate by choosing the columns in the main window.

By clicking on the headline of a column the certificates should be ordered according to this column.

This allows displaying all certificates ordered by serial number and other useful tasks.

Reported by: felxator

Unable to save a .bcfks file with 60 entries or more

Try to save a .bcfks file with 60 entries or more will run into the following error:
java.lang.IllegalStateException: CCM packet too large for choice of q
Attached a bcfks file (with password changeit) with 59 entries, import any cert into and try to save, and you'll run into the exception. The file size becomes 0 byte at that point.
trustcerts-59 .zip
Or you can try with one that has 107 entries.
trustcerts-107.zip

allow to import certificate chains

e.g. if an intermediary certificate is not the trust-store of a browser, tomcat may not just serve the leaf but must serve the entire chain.

for this to happen, it looks as if
Ralf Hauser@Acer_Ralf:/<3>RALFHA~1/Desktop> $JAVA_HOME/bin/keytool -list -keystore www.ks -v
Enter keystore password: importkey

Keystore type: jks
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: importkey
Creation date: Nov 16, 2006
Entry type: keyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=www.privasphere.com, OU=Secure Messaging, O=PrivaSphere AG, L=Zuerich, ST=ZH, C=CH
Issuer: CN=QV Schweiz ICA, OU=Issuing Certificate Authority, O=QuoVadis Trustlink Schweiz AG, C=CH
Serial number: 21e3
Valid from: Wed Oct 25 11:35:12 CEST 2006 until: Sat Oct 25 11:35:12 CEST 2008
Certificate fingerprints:
MD5: 30:10:0A:E5:91:35:47:36:AB:A2:45:08:55:19:4A:5F
SHA1: 7B:4B:19:30:B6:FB:E2:71:D5:2E:42:DF:FA:43:2D:9C:FD:03:CD:98
Certificate[2]:
Owner: CN=QV Schweiz ICA, OU=Issuing Certificate Authority, O=QuoVadis Trustlink Schweiz AG, C=CH
Issuer: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
Serial number: 421fcec0
Valid from: Wed Mar 15 22:06:52 CET 2006 until: Tue Mar 15 22:06:52 CET 2016
Certificate fingerprints:
MD5: C5:59:4C:76:54:6C:A5:EA:2C:31:6F:61:D0:7C:12:39
SHA1: 67:EC:CD:0A:90:2E:86:8D:70:00:87:2E:A1:FD:79:C1:6B:CF:1F:AB
Certificate[3]:
Owner: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
Issuer: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
Serial number: 3ab6508b
Valid from: Mon Mar 19 19:33:33 CET 2001 until: Wed Mar 17 19:33:33 CET 2021
Certificate fingerprints:
MD5: 27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24
SHA1: DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9

is needed.

At least with root certificates that are not part of jre/lib/security/cacerts, it is tricky insert a chain under one alias.

It is with the windows cermgr possible to export a certificate chain into a p7b file, but the same error as attached appears and with the keytool command-line tool, you get
keytool error: java.lang.Exception: Input not an X.509 certificate

Reported by: ralfhauser

adding profiles for certificates

In order to make Portecle foolproof the creation process for new certificates should allow the selection of predefined profiles and do some consistency checks in order to ensure that the certificate contains the necessary information/attributes for particular purposes like:

* E-Mail signing/encrypting
* server certificate (e.g. for HTTPS)
* certificate for time stamping authorities
* certificate for EFS
* etc.

Reported by: felxator

JFileChooser bug crashes JVM

It is possible that the entire JVM crashes just after
closing a JFileChooser (regardless of the action
taken). Unfortunately there does not seem to be an easy
workaround for this problem. I've tested it in the
latest Java 1.5, as well as a Java 1.4 virtual machine.
The bug is not present in the new 1.6.0 RC release
(2006-01-05). The bug does *not* occur in the code of
Portecle itself (since portecle itself does not use JNI
or exec calls outside the browser handling, it should
not be able to crash the JVM).

This bug might be related:
http://bugs.sun.com/bugdatabase/view\_bug.do?bug\_id=6225432

Reported by: mbodewes

Import CA Reply Fails

I have successully
1, Generated Key Pair
2. Generated CSR
3, Received crt files from GoDaddy
4. First imported root certificate
5. Tried to import CA reply from main certificate and I get error saying the public key of CA reply does not match the public key of the key entry.
Any help would be appreciated. Thanks.

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.