CERTivity® main features and advantages are briefly presented below and in more detail in its manual available for download.
- GUI Representation
The first purpose of CERTivity targets the representation of the security related items in a Tabbed Document Interface allowing for visualizing in parallel the following types of models: KeyStores, individual Certificates and Test Certificate Scenarios. The GUI representation is taking advantage of the natural approach of using an IDE style interface.
KeyStore’s entries are represented using a Tree Table structure, each entry and subentry being visualized in a Details Panel resembling the view of an e-mail client. As well, KeyStore’s entries take advantage of contextual menus or natural editing actions such as but not limited to delete, rename, expand, undo/redo. Many of these actions can also be used through Keyboard shortcuts. Navigation between KeyStore entries is enhanced by positioning based on the first character (case sensitive) of a KeyStore alias or by sorting the table columns.
Many of the application’s components expose Context Sensitive Help, the Table of Contents tree being synchronized with the current context. Status Bar is displaying useful information including if the KeyStore is case sensitive, or case aware. Quick Search feature at application, KeyStore and Options level allows for rapid localization of information and actions.
As the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files are sensitive to country import restrictions CERTivity is not allowed to bundle them, however for the entitled users CERTivity features a straight forward installation from the Oracle JDK website via an integrated JavaFX browser.
All the Java command line keytool actions and more other actions are available as described below through this rich and productive GUI.
- KeyStore Management
The application is able to work with a wide range of KeyStores types – JKS, JCEKS, PKCS #12, BKS, BKS-V1, UBER and Windows native ones. These cover the KeyStores required by the Android/Java tools for signing the Android applications (APK) for release and test validating the APK signature. CERTivity can as well help on managing X.509 DER certificates (.crt,.cer) and PKCS# 12 (.pfx) or BKS KeyStores to be used on the Android devices for applications requiring security levels such as SSL and VPN.
The following KeyStore operations, which cover (but are not limited to) the handling of Java SSL KeyStores and TrustStores, are supported:
- Create (generate) a new KeyStore;
- Open an existent KeyStore;
- Opening the CA TrustStore(s) of the JRE(s) discovered on the current system;
- Save a KeyStore;
- Copy and paste entries from one KeyStore to another;
- Copy to clipboard Certificates from Key Pair’s Certificates Chain;
- Change a KeyStore’s password;
- Change a Key Pair’s password;
- Password manager to avoid entering Key passwords each time;
- Emphasizing expired and about to expire Certificates or Key Pairs;
- Emphasizing Certificates and Key Pairs for which the key size is smaller than a value set by the user;
- Display trust status for Certificates in the KeyStore view;
- Convert to other KeyStore format;
- Delete KeyStore entry;
- Change KeyStore entry alias;
- Import Key Pairs from Key Pair files or from separate Private Key and one or more certificate files;
- Import trusted Certificates;
- Trust verification when importing certificates (with user confirmation when trust is not established);
- Add Certificate Extensions;
- Save Certificate Extensions as XML;
- Generate self signed Key Pairs (Private Key with corresponding Certificate) using RSA/DSA/EC/ECGOST3410;
- 80 parameters specifications for Elliptic Curve – EC (DSA), 5 parameters specifications for ECGOST3410;
- Generate new Key Pairs using the information from other already existing Key Pairs;
- Set a custom minimum key size limit for new RSA Key Pair generation;
- Select the country code from a list of available countries resulting a valid ISO country code when generating a Key Pair;
- Generate Secret Keys;
- Retrieve certificates from servers (e-mail server, web server etc.) – This is based on the underlying SSL/TLS protocols;
- Set SSL Connection Type (to be used when retrieving certificates);
- View RSA/DSA/EC/ECGOST3410 Private Key, Public Key, Certificate Chain details;
- Configurable KeyStore persistence on successive runs of the application.
- Certificates Operations
- Import Certificates/Certificates Chains into KeyStore either from files or from SSL connections;
- Open an existing Certificate as standalone (not part of a KeyStore);
- Display Certificate Details (having 11 Certificate Fingerprints types available);
- Display certificate trust status;
- Display multiple certificates including certificates chains;
- Obtain the revocation status from the signing CA through CRL;
- Use / test a certificate against a SSL connection (including plain upgradeable sockets) to an end-point and permitting raw TCP/IP level communication (similar to telnet/nc raw inspections); verbose handshaking information is also available;
- View Public Key details for the opened certificate;
- View PEM, ASN.1 representations;
- View Certificate Extensions;
- View ASN.1 representation for a Certificate Extension;
- Extend validity for a Key Pair entry.
- Sign and Verify
CERTivity aims to bridge the gap between keys management and digital signature functionality as well as offering a suitable introspection for developers interested in various investigations. CERTivity signs and verifies PDF, JAR and XML files with verbose details. CSR can be signed as well.
- Existent signature applications lack the in-depth key management and viceversa, existent key management applications lacks the signing and verification process or the verbose details. CERTivity interconnects these functionalities;
- The embedded signature certificate can be directly imported into the active KeyStore;
- Signing is a contextual action while you browse the KeyStores so you will take advantage of all the existent key management features described above;
- PDF digital signature and verification:
- Many existent PDF signature applications cover just the signature process, leaving the verification process to PDF readers or editors. CERTivity is offering a PDF signature verification process too, which can show you details that are not otherwise accessible, especially when you deal with the PDF specification;
- Each signature details can be inspected;
- All PDF standard SubFilter values are supported: adbe.pkcs7.sha1, adbe.pkcs7.detached and adbe.x509.rsa_sha1 as opposed to the general practice of supporting just adbe.pkcs7.detached;
- The name of the PDF signature handler (Filter) is Adobe.PPKLite;
- Multiple PDF signatures can be applied incrementally;
- XML digital signature and verification:
- All XML signature types are supported: enveloped, enveloping and detached;
- The XML signature is based on Java Specification Request JSR-105 which standardizes the XML Digital Signature APIs;
- JAR digital signature and verification:
- GUI alternative of the Java command line jarsigner tool, both for signing and verifying;
- Sign and verify the Android Application Package (APK) signature.
- Import/Export Options
- Retrieve and Export Certificates from multiple sources into multiple formats;
- Export Key Pairs, Certificates Chains, Private Keys, Public Keys;
- Some of the formats supported besides the KeyStores themselves are:
- X.509 Certificate Files;
- X.509 Certificate Files (PEM encrypted);
- PKCS #7 Certificate Files;
- PKCS #7 Certificate Files (PEM encrypted);
- PKI Path Certificate Files;
- PKCS #12 Key Pairs;
- PKCS #8 Key Pairs;
- OpenSSL Public Key;
- OpenSSL Public Key (PEM encrypted);
- PKCS #8 Private Key Files;
- PKCS #8 Private Key Files (PEM encoded);
- OpenSSL Private Key Files (PEM encoded);
- PKCS #10 for CSR;
- SPKAC for CSR;
- ASN and PEM for visualizing most of the items.
- TrustStores Management
- Set / Remove TrustStores at runtime without restarting the application;
- Configure Trust Path validation options at runtime without restarting the application.
- Certificate Authority functions
- Certificate Signing made easier using “Select as CA Issuer” and “Sign Certificate by <aliasForIssuer>” actions;
- Generate Certificate Signing Request (CSR) files;
- Sign Certificate Signing Request (CSR) files;
- Import CA Reply;
- Trust verification when Importing CA Reply (with user confirmation when trust is not established);
- Check PKI file type;
- Open Certificate Revocation Lists (CRL) from files or URLs;
- Open Certificate Signing Request (CSR) files;
- Certificate chain management: append and remove signer certificate (with Copy / Paste / Delete / Undo / Redo functionality included);
- By generating CSR files, signing CSR and importing CA reply the application can act as a testing purposes CA.
Being a Java application it runs anywhere an Oracle (Sun) JRE can run. Depending on the platforms, CERTivity comes bundled with JRE or standalone. Please check the download page for the suitable setup package.
Most of the operations are executed on separate threads, so that, for example, while generating a key or signing a PDF file one can perform other tasks as well.