Be strict about input in the GCMMessageCryptographer

The cryptographer used to be lenient about input, which was reflected by
a series of unit tests that passed in values that wouldn't match real
world input.

The GCMEncryptionProvider's job is to validate the received input,
whereas the GCMMessageCryptographer should assume it's correct.

This CL adds a bunch of DCHECKs, and updates the tests to make sure
valid values are passed in where expected.

BUG=679789

Review-Url: https://codereview.chromium.org/2708383002
Cr-Commit-Position: refs/heads/master@{#470284}
2 files changed