Designing for Algorithm Abstraction

Microsoft Enterprise Library 5.0

DropDown image DropDownHover image Collapse image Expand image CollapseAll image ExpandAll image Copy image CopyHover image

With the Cryptography Application Block, developers can refer to the algorithm to be used by the various methods by using logical names, such as "hash provider" or "password encryption."

Design Implications

The abstraction of the algorithm by logical naming implies two things about the block's design:

  • API support for logical names
  • Dependency on the Enterprise Library Core

API Support for Logical Names

Each CryptographyManager method accepts a string containing a logical algorithm name. The object uses this logical name to locate the appropriate algorithm information within the configuration file.

Dependency on Configuration

Because algorithm information is in a configuration file, the Cryptography Application Block must be able to read configuration information. As a result, the CryptographyManager class requires the Enterprise Library Core and uses it to locate and read the necessary information from the configuration file.