Hi, Eric, I just realized that you are the same Eric Hughes who wrote the 
cypherpunk's manifesto. (Anyone who hasn't read it yet, browse over to 
http://www.activism.net/cypherpunk/manifesto.html.)

To avoid breaking compilation of existing code, I ended up implementing a 
suggestion from Russell Robinson (through private email), where the "Weak" 
namespace is automatically imported into the main "CryptoPP" namespace by a 
"using" directive along with a #warning if you #include one of the header 
files containing a weak algorithm. Both the using directive and the #warning 
can be disabled by defining the CRYPTOPP_ENABLE_NAMESPACE_WEAK macro to 1. 
This way, the Crypto++ user will be informed that he's using a weak 
algorithm, but won't be faced with a situation where his code suddenly stops 
compiling.

For algorithms found to be weak in the future, I think what I will do is to 
have namespaces Weak1, Weak2, Weak3, etc, one for each Crypto++ release. 
Then these will be imported into either the main namespace or the "Weak" 
namespace, depending on how CRYPTOPP_ENABLE_NAMESPACE_WEAK is defined. For 
example, defining CRYPTOPP_ENABLE_NAMESPACE_WEAK as 2 will cause Weak3 to be 
imported into the main namespace along with a warning, while Weak1 and Weak2 
will be imported into the "Weak" namespace.

Does this solution seem good enough?

I also decided to give up the "Deprecated" namespace since that seems like 
more work than it's worth once I started doing it.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to