added basic gcm support