Key Store Provider Map
Sterling B2B Integrator has the keystore type that is unique across cryptographic service providers; it is able to define a mapping between keystore types and providers required for implementing the keystore object itself, signature algorithms, and key transport algorithms.
The key and key information abstraction object contains this information with a reference to a com.sterlingcommerce.security.PrivateKeyInfo.
This allows Sterling B2B Integrator to use a combination of keys on HSMs and in software stores in the database at the same time without additional configuration beyond the initial loading of the key or key information into the database. To Sterling B2B Integrator, the keys all look the same, regardless of where they are stored.
Mapping is implemented as a property called KeyStoreProviderMap in security.properties. It consists of a set of entries delimited by semi colons (;). Each entry has six elements delimited by commas and follow this format:
KeyStoreType, KeyStoreProvider, DoesAliasMatter, SignatureProvider,
EncryptionProvider, KeyOnHSM
The elements are described in the following table:
Element | Description | Additional Information |
---|---|---|
KeyStoreType | The string type of the keystore | |
KeyStoreProvider | The name of the cryptographic service provider that implements the keystore | |
DoesAliasMatter | Whether the alias of keys must be unique for this keystore type | This can be either true or false. Keys have to have unique aliases in the case where there is only one keystore per device. |
SignatureProvider | The name of the cryptographic service provider to use to create signatures using keys from the keystore | |
EncryptionProvider | The name of the cryptographic service provider to use when decrypting information using keys in the keystore | This is mostly for RSA key transport operations |
KeyOnHSM | Whether the keystore is on an HSM |
The string null is an acceptable value and will be treated as though no provider has been specified. An entry must have at least two values. If an entry contains less than six values, the values will be assigned from left to right to the keystore provider, whether the alias matters when storing the key, signature provider, encryption provider, and whether the key is on an HSM for the KeyStore type. The others will be treated as nulls and no specific provider will be requested for operations with keys of that type.
nCipher = PKCS11IMPLKS,SunPKCS11-B2Bi,true,SunPKCS11-B2Bi,SunPKCS11-B2Bi,true