-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
consistent formatting #427
base: master
Are you sure you want to change the base?
Conversation
Не-не-не... Автогенерированные файлы про эллиптику лучше не трогать |
Скажите какие -- уберу. Может добавить форматирования в генератор? |
ecp_id_* |
Результаты пока скорее странные. |
Только если очень небольшую часть )
|
Странные замены навскидку: - static const char *gost_envnames[] =
- { "CRYPT_PARAMS", "GOST_PBE_HMAC", "GOST_PK_FORMAT" };
+ static const char *gost_envnames[] = {
+ "CRYPT_PARAMS", "GOST_PBE_HMAC", "GOST_PK_FORMAT"}; Уже писал в #426 - почему это отформатировалось так а следующее за ним эдак: - const uint8_t grasshopper_pi_inv[0x100] = {
- 0xA5, 0x2D, 0x32, 0x8F, 0x0E, 0x30, 0x38, 0xC0, // 00..07
- 0x54, 0xE6, 0x9E, 0x39, 0x55, 0x7E, 0x52, 0x91, // 08..0F
...
+ 0xA5, 0x2D, 0x32, 0x8F, 0x0E, 0x30, 0x38, 0xC0, // 00..07
+ 0x54, 0xE6, 0x9E, 0x39, 0x55, 0x7E, 0x52, 0x91, // 08..0F
...
- const uint8_t grasshopper_lvec[16] = {
- 0x94, 0x20, 0x85, 0x10, 0xC2, 0xC0, 0x01, 0xFB,
- 0x01, 0xC0, 0xC2, 0x10, 0x85, 0x20, 0x94, 0x01
- };
+ const uint8_t grasshopper_lvec[16] = {0x94,
+ 0x20,
+ 0x85, Иногда аргументы выровнены по краю открывающей скобки, а иногда нет: - return EVP_Cipher(ctx->actx, ctx->km, zero_iv,
- EVP_CIPHER_key_length(EVP_CIPHER_CTX_cipher(ctx->actx)) +
- EVP_CIPHER_CTX_block_size(ctx->cctx));
+ return EVP_Cipher(ctx->actx,
+ ctx->km,
+ zero_iv,
+ EVP_CIPHER_key_length(EVP_CIPHER_CTX_cipher(ctx->actx))
+ + EVP_CIPHER_CTX_block_size(ctx->cctx));
+ } - gost2012_hash_block((gost2012_hash_ctx *) EVP_MD_CTX_md_data(ctx), data,
- count);
+ gost2012_hash_block(
+ (gost2012_hash_ctx *)EVP_MD_CTX_md_data(ctx), data, count); - while (get_line
- (check_file, inhash, filename, verbose, &expected_hash_size)) {
+ while (get_line(
+ check_file, inhash, filename, verbose, &expected_hash_size)) { Вернуло одну проверку в предыдущею строку (видимо потому что она влезала в 80 символов) хотя все остальные в столбец: if ((ctx = OPENSSL_zalloc(sizeof(*ctx))) != NULL
&& (ctx->proverr_handle = proverr_new_handle(core, in)) != NULL
&& (ctx->libctx = OSSL_LIB_CTX_new()) != NULL
- && (ctx->e = ENGINE_new()) != NULL
- && populate_gost_engine(ctx->e)) {
+ && (ctx->e = ENGINE_new()) != NULL && populate_gost_engine(ctx->e)) {
ctx->core_handle = core; Не сказать, что это внезапное склеивание добавляет понятности, при этом в некоторых структурах, массивах и вызовах функций (как в примере с |
Тут не знаю, но думаю, что из-за комментариев.
Это
Это странное поведение.
Для аргументов |
f35e136
to
99c2e7a
Compare
До патча:
С патчем:
Решение не идеальное, но в правильном направлении. Лучше ничего нет, всё равно. Только если руками править все 8898 ошибкок формативания. |
gost_err* генерируются OpenSSL-ным скриптом. Собственно, их лучше перегенерировать, и если их формат не совпадают с форматированием по скрипту, то его оставить. Я с подозрением смотрю на getopt.h, но пока проще переформатировать, чем убивать. В остальном меня всё скорее устраивает. @vt-alt? |
@@ -0,0 +1,2 @@ | |||
cf83bf3cb9108370bef19284278152e14acb115a | |||
390d81c8b7247afe28c4316174d6fba2d617f25b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это надо будет поменять, когда окончательная редакция первого патча будет
"md_gost12_512", "gost2012_512", "A", | ||
"md_gost12_512", "gost2012_512", "B", | ||
"md_gost12_512", "gost2012_512", "C", | ||
"md_gost12_256", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот с этим что-то сделать можно?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
нет, насколько я понимаю. это инициализация массива. никаких опций по массивам нет. если в одну строку не влазит, то делает 1 элемент в 1й строке. Для javascript'a есть опция BreakArrays
, чтобы принудительно делать 1-в-1, а наоборот -- вообще ничего.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2975996 поправил все массивы и вызовы фунций
gost89.c
Outdated
{0X4, 0XA, 0X9, 0X2, 0XD, 0X8, 0X0, 0XE, 0X6, 0XB, 0X1, 0XC, 0X7, 0XF, | ||
0X5, 0X3} | ||
}; | ||
gost_subst_block GostR3411_94_TestParamSet = {{0X1, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
и с этим
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
аналогично. это инициализация массивов.
ASN1_IMP( | ||
GOST_KEY_TRANSPORT, key_agreement_info, | ||
GOST_KEY_AGREEMENT_INFO, | ||
0)} ASN1_NDEF_SEQUENCE_END(GOST_KEY_TRANSPORT) IMPLEMENT_ASN1_FUNCTIONS(GOST_KEY_TRANSPORT) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
И этот файл как-то странно выглядит
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Макросы вообще плохо форматируются. Тут только если убрать из списка форматирования и проверки.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Можно ещё /* clang-format off/on */
окружить те места, где не нравится
gost_ec_keyx.c
Outdated
8, | ||
ukm_source + 16, | ||
8, | ||
1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Туда же
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сейчас настройки для аргументов при вызове функции:
- или одна строка
- или перенос на строку и одна строка
- или 1 аргумент на строку.
Тут есть опция, чтобы паковать в допустимую ширину BinPackArguments
, можно поменять.
Я делал настройки по правилам OpenSSL. Там в пункте 2:
Don’t put multiple statements, or assignments, on a single line. ... ... The same applies to function headers with a long argument list. ...
gost_ec_keyx.c
Outdated
VKO_compute_key(key, | ||
EC_KEY_get0_public_key(EVP_PKEY_get0(peer_key)), | ||
(EC_KEY *)EVP_PKEY_get0(my_key), | ||
data->shared_ukm, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем три строки вместо одной?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вопрос не понял. В этом, конкретно, вызове вообще всё осталось как было.
test_ciphers.c
Outdated
printf(cBLUE "# Tests for %s [%s]" cNORM "\n", t->algname, standard); | ||
for (inplace = 0; inplace <= 1; inplace++) | ||
ret |= test_block(ciph, | ||
t->algname, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем по строчке на аргумент?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Форматирование вызова функции можно перенастроить
{ SN_magma_ctr, }, | ||
{ SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm, 256 / 8 }, | ||
{ 0 }, | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Так быть не должно. AlignArrayOfStructures:None
установлен.
test_digest.c
Outdated
}; | ||
|
||
static const char MAC_omac_acpkm1[] = { | ||
0xB5,0x36,0x7F,0x47,0xB6,0x2B,0x99,0x5E,0xEB,0x2A,0x64,0x8C,0x58,0x43,0x14,0x5E, | ||
0xB5, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Массив. Без поняния, что тут можно сделать.
test_digest.c
Outdated
}; | ||
|
||
static const char MAC_omac_acpkm2[] = { | ||
0xFB,0xB8,0xDC,0xEE,0x45,0xBE,0xA6,0x7C,0x35,0xF5,0x8C,0x57,0x00,0x89,0x8E,0x5D, | ||
0xFB, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Массив
test_gost2814789.c
Outdated
/* | ||
{/* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */ | ||
16, | ||
{0x74, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Зачем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Массив
Ад какой-то :( Можем мы это как-то приблизить к openssl-ному формату, или идти постепенно, для начала - с пробелами и табуляциями? |
Можно поменять для вызовов функций.
У |
Попробовал
|
Если какой-то скрипт будет заставлять человека менять форматирование на такое какое генерирует clang-fiormat, то как человек должен заранее понять, что в одном месте надо было писать аргументы пока влезут до 80го столбца, в другом вертикально по одному, а в третьем 6й и 7й из них склеить в одну строку, в одном месте надо сделать отступ от скобки, а другом от начала предыдущей строки? И это без учета, что теряется
В Linux clang-format не енфорсится,, а предлагается как утилита в помощь в форматировании. https://www.kernel.org/doc/html/latest/process/clang-format.html
Заменять кривое ручное форматирование, на кривое машинное как-то странно. Если мы теряем git blame, то хотя бы оно должно выглядеть хорошо. |
Только сейчас прочитал про |
новые пустые строчки остаются только. https://github.com/gost-engine/engine/blame/5e777b8b3de7f0eee09054f1ecd9cd0993ee4762/gost_eng.c |
Например, можно просто сделать
Там форсится И линукс, и опенссл проходят аудит кода в разных нерусских трёхбуквенных организациях, и им надо там каждую строчку каждого патча объяснять, поэтому там не будет такого PR, как этот. Но это же не достоинство, а как раз наоборот. |
Да и перед постом я грепнул, что clang-format упоминается только в документации (просмотрел её ещё раз) и в коде в строках типа |
Я нигде не утверждал, что |
Huge whitespace-only change.