Working on GCM implementation, in separate branch.