(Full disclosure: I am the author of Cryptography for Visual Basic.)
Cryptography for Visual Basic, by Richard Bondi
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.*
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
Comprehensive: covers more CryptoAPI functions than the Base Cryptography Functions
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.