Plain and simple, there is just more room to make a grave mistake.
Plain and simple, there is just more room to make a grave mistake.
If you're implementing an entire AEAD construction, like GCM or EAX, from scratch, then yes. Don't do that. You probably are safer composing CBC and HMAC than you would be writing your own EAX.
But if your library exports an EAX, using it is almost certainly a huge security win over DIY authenticated encryption, even if you can remember the order of operations properly.
GP is asking about mistakes that could happen on AES-GCM that won't happen with AES-CTR+HMAC.
I'm no crypto expert, but I'd say there are more opportunities of messing up with AES-CTR+HMAC like forgetting to MAC the IV.
Meanwhile PubNub is using a hard coded IV on every message in ECB and CBC modes :)
https://github.com/pubnub/javascript/blob/master/src/core/co...