Como usar o chrome.storage em uma extensão do Google Chrome usando o valor de uma variável como o nome da chave?

Estou tentando usar o armazenamento de sincronização / armazenamento local do chrome (chrome.storage) para uma extensão, para armazenar entradas de dados, para várias entradas diferentes. Eu não consigo descobrir a sintaxe correta para isso. Eu só quero simplesmente armazenar as informações como seqüências de caracteres. Eu procurei e não consigo encontrar nada ainda que funcione.

Isso é o que funciona para mim no momento usando a técnica normal localStorage:

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

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

Isso funciona e me permite definir a chave de uma variável existente. Como posso fazer isso usando chrome.storage.local.set? Eu tenho tentado isso sem nenhum sucesso:

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);});});

Qualquer ajuda é muito apreciada. Obrigado!

----- ATUALIZE ABAIXO -----

Obrigado pela explicação com o código. Espero que ajude mais alguém. Parece haver pouca informação disponível sobre isso! Sua resposta me ajudou a pensar nisso:

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]);
});