История изменений
Исправление beastie, (текущая версия) :
Уфффф… это не Го. Это какой-то бред препода на стероидах.
Даже не знаю, где начать…
Начнём, хотя бы с того – убери все глобальные переменные.
Далее. Читать файл – это весело и так далее, но практичнее и проще их просто зашить – они не меняются так часто:
var sbox = [8][16]uint8{
{9, 6, 3, 2, 8, 11, 1, 7, 10, 4, 14, 15, 12, 0, 13, 5},
{3, 7, 14, 9, 8, 10, 15, 0, 5, 2, 6, 12, 11, 4, 13, 1},
{14, 4, 6, 2, 11, 3, 13, 8, 12, 15, 5, 10, 0, 7, 1, 9},
{14, 7, 10, 12, 13, 1, 3, 9, 0, 2, 11, 4, 15, 8, 5, 6},
{11, 5, 1, 9, 8, 13, 15, 0, 14, 4, 2, 3, 12, 7, 10, 6},
{3, 10, 13, 12, 1, 2, 0, 11, 7, 5, 9, 4, 8, 15, 14, 6},
{1, 13, 2, 9, 7, 10, 6, 0, 8, 12, 4, 5, 15, 3, 11, 14},
{11, 10, 15, 5, 0, 12, 14, 8, 6, 2, 3, 9, 1, 7, 13, 4},
}
Далее. Где тесты? Пример input/output хотя бы. Но лучше тесты.
Далее. Имплементируй интерфейс cipher.Block вместо printf в майн.
Далее пытаюсь вкурить что дальше …
Править – не переправить… глянь чтоли тут для начала https://github.com/martinlindhe/gogost/tree/master/gost28147 чтобы хотя бы понять, как делать правильно. А дальше уже под себя строй.
Исправление beastie, :
Уфффф… это не Го. Это какой-то бред препода на стероидах.
Даже не знаю, где начать…
Начнём, хотя бы с того – убери все глобальные переменные.
Далее. Читать файл – это весело и так далее, но практичнее и проще их просто зашить – они не меняются так часто:
var sbox = [8][16]uint8{
{9, 6, 3, 2, 8, 11, 1, 7, 10, 4, 14, 15, 12, 0, 13, 5},
{3, 7, 14, 9, 8, 10, 15, 0, 5, 2, 6, 12, 11, 4, 13, 1},
{14, 4, 6, 2, 11, 3, 13, 8, 12, 15, 5, 10, 0, 7, 1, 9},
{14, 7, 10, 12, 13, 1, 3, 9, 0, 2, 11, 4, 15, 8, 5, 6},
{11, 5, 1, 9, 8, 13, 15, 0, 14, 4, 2, 3, 12, 7, 10, 6},
{3, 10, 13, 12, 1, 2, 0, 11, 7, 5, 9, 4, 8, 15, 14, 6},
{1, 13, 2, 9, 7, 10, 6, 0, 8, 12, 4, 5, 15, 3, 11, 14},
{11, 10, 15, 5, 0, 12, 14, 8, 6, 2, 3, 9, 1, 7, 13, 4},
}
Далее. Где тесты? Пример input/output хотя бы. Но лучше тесте.
Далее. Имплементируй интерфейс cipher.Block вместо printf в майн.
Далее пытаюсь вкурить что дальше …
Исходная версия beastie, :
Уфффф… это не Го. Это какой-то бред препода стероидах.
Даже не знаю, где начать…
Начнём, хотя бы с того – убери все глобальные переменные.
Далее. Читать файл – это весело и так далее, но практичнее и проще их просто зашить – они не меняются так часто:
var sbox = [8][16]uint8{
{9, 6, 3, 2, 8, 11, 1, 7, 10, 4, 14, 15, 12, 0, 13, 5},
{3, 7, 14, 9, 8, 10, 15, 0, 5, 2, 6, 12, 11, 4, 13, 1},
{14, 4, 6, 2, 11, 3, 13, 8, 12, 15, 5, 10, 0, 7, 1, 9},
{14, 7, 10, 12, 13, 1, 3, 9, 0, 2, 11, 4, 15, 8, 5, 6},
{11, 5, 1, 9, 8, 13, 15, 0, 14, 4, 2, 3, 12, 7, 10, 6},
{3, 10, 13, 12, 1, 2, 0, 11, 7, 5, 9, 4, 8, 15, 14, 6},
{1, 13, 2, 9, 7, 10, 6, 0, 8, 12, 4, 5, 15, 3, 11, 14},
{11, 10, 15, 5, 0, 12, 14, 8, 6, 2, 3, 9, 1, 7, 13, 4},
}
Далее. Где тесты? Пример input/output хотя бы. Но лучше тесте.
Далее. Имплементируй интерфейс cipher.Block вместо printf в майн.