Я пытаюсь зашифровать видеофайлы (файлы TS из потока HLS) для воспроизведения с помощью тега #EXT-X-KEY
. Для этого мне нужно указать URL-адрес для загрузки ключа, используемого для шифрования файлов.
При использовании GPG я могу зашифровать свои файлы, используя gpg --output 1.ts.enc --symmetric 1.ts
. Эта команда предложит мне ввести пароль. GPG должен внутренне преобразовать эту фразу-пароль в 16-байтовый ключ (возможно, с использованием PBKDF2)
Чтобы воспроизвести поток, мне нужно будет сделать этот ключ доступным по некоторому URL-адресу. Однако я не знаю, как получить доступ к этому 16-байтовому ключу. Есть ли команда GPG, такая как gpg --generate-key --symmetric
, которая позволит мне набрать мою фразу-пароль, и она выдаст 16 байтов?
Я также должен знать используемый вектор инициализации. Есть ли параметр командной строки, который я могу передать во время шифрования, чтобы передать свой собственный IV?
Приложение
Читая справочную страницу GPG, я обнаружил, что --s2k-mode 0
можно передать в GPG для используйте «простую фразу-пароль», что, как я предполагаю, означает, что введенная вами фраза-пароль используется в качестве ключа шифрования напрямую без какой-либо функции вывода ключа (возможно, добавление отступа, если ключ слишком короткий, или, возможно, усечение, если ключ слишком длинный - I не знаю)
Однако когда я использовал gpg --output 1.ts.enc --symmetric --s2k-mode 0 1.ts
для шифрования моего файла, выходной файл соответствовал побайтно с файлом, созданным, когда я не установил режим s2k. Кроме того, при расшифровке файла мне не нужно было указывать параметр --s2k-mode
, что говорит о том, что какая-либо стандартная функция вывода ключа обычно имела место