@johnyb Think it would be more clear to add the callback where the dMessagBuffer is filled:

```
case 'dframe-armored-message':
        try {
          var message = model.readMessage(msg.data);
          // password or unlocked key in cache?
          var cache = pwdCache.get(message.primkeyid, message.keyid);
          if (!cache) {
            // add message in buffer
            dMessageBuffer[id] = message;
>>>         dMessageBuffer[id].callback = decryptMessage;
```