GCM Library with sample