(Full disclosure: I am the author of Cryptography for Visual Basic.)
Cryptography for Visual Basic, by Richard Bondi
Strengths
Thorough introduction to cryptography and the Microsoft CryptoAPI in the first two chapters.
Comes with easy to use COM wrappers for the CryptoAPI Base Cryptography Functions.
Calls to the CryptoAPI are made with Byte arrays rather than Strings, addressing support for Unicode languages like Chinese.*
Weaknesses
Does not cover CryptoAPI certificate functions.
CD does not include enough examples for all chapters. (I’ve added these on this Web site.)
Does not cover as much of the CryptoAPI as Chapman.
Developing Secure Applications for Visual Basic, by Davis Chapman
Strengths
Comprehensive: covers more CryptoAPI functions than the Base Cryptography Functions
Weaknesses
Includes many code examples, but no general use COM wrappers for the CryptoAPI.
Cryptography and the CryptoAPI’s design are introduced in small doses over many chapters.
* Bondi’s API declarations use the Byte datatype, Chapman’s the String. When making API calls, Visual Basic removes every other byte from Strings, which makes it difficult (but not impossible) to pass Unicode unless you use Bytes. For a good discussion of this problem, see Chapter 6 of
Win32 API Programming with Visual Basic by Steven Roman, published by O’Reilly and Associates. Chapter 6 is available online.