Discuss this help topic in SecureBlackbox Forum

General notes

Please check What's New in this version.

All editions

PKIBlackbox package has been split to basic and advanced parts. Basic part is included in all packages of SecureBlackbox as BaseBlackbox. Advanced part (PKIBlackbox itself) requires a separate license. It's also included into SecureBlackbox Standard and Professional packages.

The following functionality has been moved to PKIBlackbox (advanced):

  • PKCS#11 support
  • X.509 certificate generation
  • PKCS#10 (Certificate Requests, CSR)
  • Creation of CRLs (Certificate Revocation Lists)
  • TSP (Timestamping Protocol) server component
  • OCSP (Online Certificate Status Protocol) server component
  • MS Authenticode component

.NET Edition

SecureBlackbox.PKI.dll has been brought back to the distribution. This assembly includes the above listed functionality. Please update the reference list of your projects and installation packages.

VCL Edition

In SecureBlackbox 7.0 we have brought back PKIBBox package with the above listed functionality.

ActiveX Edition

The above listed PKIBlackbox functions are located in BaseBBox.dll, but their use requires a separate license.

Upgrading your project from SecureBlackbox 6 to SecureBlackbox 7 (ActiveX edition)

SecureBlackbox 7 (ActiveX edition) introduces certain changes to the components' declarations. The changes are caused by the need of making it possible for two or more different versions of SecureBlackbox installed on the same machine to work together without conflicts. Shouldn't the declarations have been updated, any SBB6-based product deployed to a client's machine after deployment of your SBB7-based product would override your installation of SBB, leading to incorrect work of your product. However, as SBB7 declarations are completely new and independent from the earlier versions, you may feel confident about the integrity of your product.

1. Changes: summary

The following changes have been introduced:
  1. The names of the libraries have been changed from SomeBBox6.dll to SomeBBox7.dll.
  2. Version numbers and UUIDs of the libraries have been changed. The table below shows the differences between SBB6 and SBB7 properties of the libraries:
  3. All the UUIDs of the coclasses (components and controls) have been changed. New values for the UUIDs can be obtained from the corresponding type libraries.
  4. A number of new, updated, interfaces have been introduced. New interfaces that extend the functionality of existing components are named ISomeComponentX7 and are derived from the existing ISomeComponentX interfaces. The existing interfaces (ISomeComponentX) have been kept intact, minimizing the changes you have to introduce to your code.

We will use "SomeBBox6" and "SomeBBox7" names as substitutions for the real names of all SecureBlackbox libraries. I.e., the phrase "replace all entries of SomeBBox6.dll with SomeBBox7.dll" actually means "replace BaseBBox6.dll, SSLBBoxCli6.dll, SSLBBoxSrv6.dll, SSHBBoxCli6.dll, SFTPBBoxCli6.dll, PGPBBox6.dll with BaseBBox7.dll, SSLBBoxCli7.dll, SSLBBoxSrv7.dll, SSHBBoxCli7.dll, SFTPBBoxCli7.dll, PGPBBox7.dll accordingly".

2. I am using Visual Basic 6. What should I change in my project?

Visual Basic uses IDispatch interface when dealing with COM components. This means that it accesses components, along with their properties and methods, using their names and not the exact declarations. That's why the only thing that you have to change in most cases is the parameters of the library being referenced. Just do the following for each .vbp, .frm, .cls and .bas file of your project:

  1. Open it with some text editor (e.g. Notepad).
  2. Update each line containing an "Object" declaration:
    Object = "{C6970C0F-33F7-4EB0-87B2-DF006F6E7CD3}#6.0#0"; "BaseBBox6.dll"
    with
    Object = "{E91A8458-BB00-4B54-8C22-CF338094F081}#7.0#0"; "BaseBBox7.dll"
    Perform the update for all the lines referencing SecureBlackbox DLLs (BaseBBox6.dll, SSLBBoxCli6.dll, SSLBBoxSrv6.dll, SSHBBoxCli6.dll, SSHBBoxSrv6.dll, PGPBBox6.dll). Use the UUID values from the table above.
  3. Perform a global search-and-replace of "SomeBBox6" substring with the corresponding "SomeBBox7" one.
The above steps are enough for most of the VB6 projects.

3. What do I have to change in my C++ project?

The exact changes depend on the method in which COM objects are used in your project. Anyway, all the changes to be introduced to your project are actually a reflection of the changes in the declarations of SBB coclasses and libraries. In particular, the following should be done:

  1. Replace the references to SomeBBox6.h and SomeBBox6_i.c files with the corresponding references to SomeBBox7.h and SomeBBox7_i.c.
  2. Replace the parameters of #import directive from SomeBBox6.dll to SomeBBox7.dll.
  3. Replace SBB6 UUIDs passed to CoCreateInstance() calls with the corresponding SBB7 UUIDs. This step should not be done if your code takes UUID values from SomeBBox6.h and SomeBBox6_i.c files, as the updated SomeBBox7.h and SomeBBox7_i.c files do already contain new UUIDs.

Please feel free to contact us if you are having problems upgrading your project to SBB7.

 

Discuss this help topic in SecureBlackbox Forum