Bouncy Castle Cryptography Library 1.87

org.bouncycastle.crypto.params
Interface SM9EncUserKeyParametersGenerator

All Known Implementing Classes:
SM9EncMasterPrivateKeyParameters

public interface SM9EncUserKeyParametersGenerator

A master key capable of the KGC user-key extraction for an identity-based encryption-family scheme: deriving a user's private key from the user's identity and the private-key generation function identifier hid the KGC chose (GM/T 0044.3/0044.4-2016 for SM9, where one encryption master key serves key exchange, KEM and public-key encryption).

The hid is what separates the functions a KGC offers. Usage warning: a key derived here should be used for the KEM or for public-key encryption, but not for both; a KGC offering both functions publishes a separate hid for each, as it does for the key exchange.

See Also:
SM9SigUserKeyParametersGenerator

Method Summary
 SM9EncPrivateKeyParameters generateUserKey(byte[] identity, byte hid)
          Derive the private key of the user identified by under the given hid, a deterministic KGC operation - the same master key, identity and hid always yield the same user key.
 

Method Detail

generateUserKey

public SM9EncPrivateKeyParameters generateUserKey(byte[] identity,
                                                  byte hid)
Derive the private key of the user identified by under the given hid, a deterministic KGC operation - the same master key, identity and hid always yield the same user key.

Parameters:
identity - the user's identity.
hid - the private-key generation function identifier the KGC chose for the encryption function, SM9EncMasterPrivateKeyParameters.HID. SM9EncMasterPrivateKeyParameters.HID_EXCHANGE names the key exchange's own function and is refused here - a key derived under it is that identity's exchange key, which the two usages are kept apart to stop a KEM or decryption key from also being. A KGC offering both the KEM and public-key encryption publishes a further value of its own for one of them, so that no identity's key serves both.
Returns:
the user's private key.

Bouncy Castle Cryptography Library 1.87