¿Cómo usar chrome.storage en una extensión de Chrome usando el valor de una variable como el nombre de la clave?

Estoy intentando usar el almacenamiento local / sincronizado de chrome (chrome.storage) para una extensión, para almacenar entradas de datos, para muchas entradas diferentes. Parece que no puedo averiguar la sintaxis correcta para ello. Solo quiero almacenar la información como cadenas. He buscado y todavía no puedo encontrar nada que funcione.

Esto es lo que me funciona en este momento utilizando la técnica de almacenamiento local normal:

var imageName = "Red Cat 5";
var myDescription = "A nice kitty";

localStorage.setItem (imageName, myDescription);
console.log(localStorage[imageName]);

Esto funciona y me permite establecer la clave de una variable existente. ¿Cómo puedo hacerlo usando chrome.storage.local.set? He estado intentando esto sin ningún éxito:

var imageName = "Red Cat 5";
var myDescription = "A nice kitty";

chrome.storage.local.set({imageName: myDescription}, function()
{console.log('success?');});

chrome.storage.local.set({imageName: myDescription}, function()
{chrome.storage.local.get(imageName, function(r){console.log(r.imageName);});});

Cualquier ayuda es muy apreciada. ¡Gracias!

----- ACTUALIZACIÓN ABAJO -----

Gracias por la explicación con el código. Espero que ayude a alguien más. Parece que hay poca información disponible para hacer esto! Tu respuesta me ayudó a llegar a esto:

var nameOne = "al";
var nameTwo = "bob";
var nameThree = "carl";
var nameFour = "dan";

var dataObj = {};

dataObj[nameOne] = nameTwo;
dataObj[nameThree] = nameFour;

storage.set(dataObj);

storage.get(dataObj, function(result)
{
console.log(result[nameOne]);
console.log(result[nameThree]);
});

Respuestas a la pregunta(2)

Su respuesta a la pregunta