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.
Это надо будет поменять, когда окончательная редакция первого патча будет
| "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.
Вот с этим что-то сделать можно?
There was a problem hiding this comment.
нет, насколько я понимаю. это инициализация массива. никаких опций по массивам нет. если в одну строку не влазит, то делает 1 элемент в 1й строке. Для javascript'a есть опция BreakArrays, чтобы принудительно делать 1-в-1, а наоборот -- вообще ничего.
There was a problem hiding this comment.
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.
аналогично. это инициализация массивов.
| 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.
И этот файл как-то странно выглядит
There was a problem hiding this comment.
Макросы вообще плохо форматируются. Тут только если убрать из списка форматирования и проверки.
There was a problem hiding this comment.
Можно ещё /* clang-format off/on */ окружить те места, где не нравится
gost_ec_keyx.c
Outdated
| 8, | ||
| ukm_source + 16, | ||
| 8, | ||
| 1) |
There was a problem hiding this comment.
Сейчас настройки для аргументов при вызове функции:
- или одна строка
- или перенос на строку и одна строка
- или 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.
Зачем три строки вместо одной?
There was a problem hiding this comment.
Вопрос не понял. В этом, конкретно, вызове вообще всё осталось как было.
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.
Зачем по строчке на аргумент?
There was a problem hiding this comment.
Форматирование вызова функции можно перенастроить
| { SN_magma_ctr, }, | ||
| { SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm, 256 / 8 }, | ||
| { 0 }, | ||
| { |
There was a problem hiding this comment.
Так быть не должно. 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.
Массив. Без поняния, что тут можно сделать.
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, |
test_gost2814789.c
Outdated
| /* | ||
| {/* Calculated by libcapi10, CryptoPro CSP 3.6R2, Mac OSX */ | ||
| 16, | ||
| {0x74, |
|
Ад какой-то :( Можем мы это как-то приблизить к 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.