This image consists of five cylinders that represent the following:
Application
Provider Framework
ProviderA: Message digest implementations SHA384 and SHA512
ProviderB: Message digest implementations SHA256 and SHA384
ProviderC: Message digest implementations SHA256 and SHA512
An arrow representing a call to MessageDigest.getInstance("SHA-256", "ProviderC") starts from the Application cylinder and passes through the following cylinders in the indicated order:
Provider Framework
ProviderC
Provider Framework
The arrow ends at the Application cylinder. The call to MessageDigest.getInstance("SHA-256", "ProviderC") has returned a SHA-256 message digest implementation from ProviderC.