Из моих предыдущих вопросов / темы, начиная с части 1, и продолжения части 2, следуя моему руководству, поскольку мои файлы / данные, которые я собираю, являются двоичными по своей природе, я использовал следующие команды openssl, где я начал с моего секрета перед мастером, полученного из:
openssl rsautl -in cpre.key -inkey key.pem -decrypt -out spre.key
Это создало мой секретный файл pre master 48-байтового сервера spre.key (я думаю, что это правильно) и в десятичном виде для (просмотр с использованием bed) как:
003 003 203 048 063 215 047 196 221 221 221 014 019 072 011 100 217 080 111 073 217 026 234 082 022 217 232 025 096 063 115 080 016 094 015 170 148 126 092 118 109 228 246 149 208 195 044 220 220
Hex: 0303CB303FD72FC4DDDDDD0E13480B64D9506F49D91AEA5216D9E819603F7350105E0FAA947E5C766DE4F695D0C32CDC
И конкатенируя буквальный "главный секрет" + client.random + server.random, я создал mseed.key и снова просмотрел с кроватью так же, как и десятичный, который я создал:
109 097 115 116 101 114 032 115 101 099 114 101 116 173 212 147 215 014 129 225 102 157 027 001 125 167 097 014 085 064 025 114 025 024 248 096 254 044 235 151 130 033 151 015 133 251 114 232 095 213 076 194 057 175 106 225 088 206 069 187 050 168 031 217 080 198 061 180 043
Hex: 6D617374657220736563726574ADD493D70E81E1669D1B017DA7610E554019721918F860FE2CEB978221970F85FB72E85FD54CC239AF6AE158CEFF54AE158CE45BB32A81FD950C63DB42B
всего 69 байтов
Затем я соединил это, и, поскольку мне сообщили, что данные находятся в двоичных файлах, я использовал следующее для генерации главного секрета и ключей.
openssl dgst -sha256 -hmac spre.key <mseed.key -binary >a1
openssl dgst -sha256 -hmac spre.key <a1 -binary >a2
openssl dgst -sha256 -hmac spre.key <a2 -binary >a3
openssl dgst -sha256 -hmac spre.key <a3 -binary >a4
Это создало 4 32-байтовых файла.
затем создаем ключи с помощью:
cat a1 mseed.key | openssl dgst -sha256 -hmac spre.key -binary >k1
cat a2 mseed.key | openssl dgst -sha256 -hmac spre.key -binary >k2
cat a3 mseed.key | openssl dgst -sha256 -hmac spre.key -binary >k3
cat 42 mseed.key | openssl dgst -sha256 -hmac spre.key -binary >k4
Это создало 4 32-байтовых файла.
Следуя приведенным мной примерам и читая RFC, насколько я понимаю, главный ключ на этом этапе - это первые 48 байтов a1+a2, это правильно или я что-то упустил? Так как я на самом деле не могу увидеть, что PRF master_secret возвращает или делает, я думаю, что из командной строки, как описано выше, я получу главный секрет. Спасибо Дэвид