LINUX.ORG.RU

История изменений

Исправление 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 в майн.