Использование библиотек JavaScript и nacl, чтобы получить суть GitHub и вернуть расшифрованный контент. Все методы nacl принимают и возвращают массивы UINT8, поэтому стоит отметить, что ключ также является массивом UINT8 из 32 случайных байтов.
server.get('/fetchmessagefromself:id', (req, res) => {
// TODO: Retrieve and decrypt the secret gist corresponding to the given ID
const id = req.query.id;
github.gists.get({ id })
.then((response) => {
const gist = response.data;
const file = Object.keys(gist.files);
const box = gist.files[file].content;
const nonce = nacl.util.decodeBase64(box.slice(-32));
const ciphertext = nacl.util.decodeBase64(box.slice(0, -32));
const text = nacl.secretbox.open(ciphertext, nonce, key);
res.send(nacl.util.encodeUTF8(text));
})
.catch((err) => {
res.json(err);
});
});
После использования отдельного метода для создания зашифрованной сущности в моей учетной записи GitHub, вышеуказанный метод работает в первый раз и успешно извлекает расшифрованную сущность, но после перезапуска сервера метод возвращает только пустой объект. Я не могу понять, почему.