   
   // Instance to perform enc/dec.
   // Do encryption.
-  OTAESGCM::OTAES128GCMGeneric<> gen;
-  gen.gcmEncrypt(key, nonce, input, sizeof(input),
+  OTAESGCM::OTAES128GCMGenericWithWorkspace<> gen(workspace, sizeof(workspace));
+  gen.gcmEncryptPadded(key, nonce, input, sizeof(input),
                          aad, sizeof(aad), cipherText, tag);
   // Check some of the cipher text and tag.
 //            "0388DACE60B6A392F328C2B971B2FE78F795AAAB494B5923F7FD89FF948B  61 47 72 C7 92 9C D0 DD 68 1B D8 A3 7A 65 6F 33" :

  //testAESGCMNoKey();   // not currently implemented
  //testAESGCMNoIV();    // not currently implemented
  
  testAESGCMPadding();
  testAESGCMAll0();
  
  testAESGCMNoData();
  testAESGCMadataOnly();
  testAESGCMcdataOnly();
  testAESGCMAuthentication();
  testGCMVS0();
  testGCMVS1();
  testGCMVS1ViaFixed32BTextSize();

  // Announce successful loop completion and count.
  ++loopCount;

                      NULL, 0, tempTag, plainText));
  }

#if 0 // was not included for whatever reason
// Check that runs correctly with ADATA only
static void testAESGCMNoKey()
  {
  Serial.println("AESGCMNoKey");

  // First clear any data from other tests.
  W0::resetFields();
  // Inputs to encryption.
  
  uint8_t nonce[GCM_NONCE_LENGTH];
