Okay, makes sense.

Out of curiosity, would it be too much of a security fax paux to have two constructors overloads, one that takes the byte[] secret directly (for EncryptingCookier to pass on) and then another overload that takes a (non-base 64) String secret that uses the old .getBytes, should to preserve backwards compatibility with the API?

Or, out of curiosity, what happens to old callers that were passing just some random "foobar" secret, that is now going to be Base64 decoded...I imagine it will invalidate their cookies, but it should still "work", right?