From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A95594223E for ; Sat, 18 Dec 2021 00:36:51 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B149768AEDE; Sat, 18 Dec 2021 02:36:48 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (unknown [40.92.73.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A66068A609 for ; Sat, 18 Dec 2021 02:36:41 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dH3MrnTSJWGBDs/xyyPC/5CtsshezH9Or3J6qWobtjWiRdWIFRqteQARzK3ZFk785XXC6KTTn1xKCbyVWsx5kdLG3ahXtRoW5gRNAZyFJoFAm5lYJdMJaquFXD8VcO2T/YcDNclM9thHPFN9V4cnuThB1eNrBA5GUBxSntxwOpQ73N/FDltYEo/hLxEIRNqyyLlTTtiF3uJqDPLfl1MBY/9YGqhpawysuzXZrwMqLsbSWBWJINyvcVsLRLN8Fszy05cyZha5qbfTta/i8h6bivLczxfMdgirz8fCZNZek/w2WfihabCjNDUJBFxrA6Rd4MQ+7JdFi78utonG665mwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QFagFcRfZNgMPPE6hpWrEusOLrQ5SqzED/Fd+n4+gtQ=; b=EcN5rbPQBhz4qaJsRC0vQItfTlLF+bjK8skiM4ax99beTBfV10YjL12an0CDexoMPqobTpCbdO4Qj9htEt6RCs2GJG37lAJDc+WHTjGZviH2AL23uWFmgBm/7oAyJ5yet/YUeUdFItP/wX1fypnAUQDYw2tYEb7qlRnrrCPVfytI7Uh8pcfBpCr7A+ayNTiSnTCc4MzH3rO3ZlY34rnwZScPQTVubViYaGVWq6SnUGnftThlbXce3u14Ow2asHm2BjcwNF+bi//mKc5BPGVJQSNj+JNCvfWRhbvLlcbmXh6ov3gRVo73JKB4MuC65Y+cqYDuNe3IY61m8BxTFDy+Cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QFagFcRfZNgMPPE6hpWrEusOLrQ5SqzED/Fd+n4+gtQ=; b=uUz+Ns9pAQFv4hXDgXyY94M63dawfNfjEO1GHhXaUf4Ve1Otb025RhD2yc4tXV/s2S9ntHbEwrHVxxhwDzunhUnNM00hQyD1BrfOUP3GKL0/YGr0PVqyN+zQm4TTcyg3LzXs10H6SR5ASwj0uQSgooHmpdhgdZJu4AyRTXVKB0hf4RUffi8uDi6jauVieru3e0Ki2Y1tw+WsEZyqpk7MWtSSKFyjPgpjoTtBMwgI2WGeCbZA3UlzTsu5rPGKogSGfE84DNIojQs/5zXTyM66DPMinoEE2xrMWoS8ALe9em94AuAT4IpXIEOwemN1KRbtblBCt9MTnq1ERfGMUV++og== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4456.eurprd03.prod.outlook.com (2603:10a6:20b:8::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.16; Sat, 18 Dec 2021 00:36:30 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4801.017; Sat, 18 Dec 2021 00:36:29 +0000 Message-ID: Date: Sat, 18 Dec 2021 01:36:27 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20210809012620.3147-1-ffmpeg@kirmayer.eu> From: Andreas Rheinhardt In-Reply-To: <20210809012620.3147-1-ffmpeg@kirmayer.eu> X-TMN: [fHjt9evhO2CXV9NbXJNd3FA4N/Bo7Gvg] X-ClientProxiedBy: AM0PR06CA0142.eurprd06.prod.outlook.com (2603:10a6:208:ab::47) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <463dc40f-6228-cabd-4c4c-a0997dccd8c5@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1dd56113-547f-4aff-771f-08d9c1be6ded X-MS-TrafficTypeDiagnostic: AM6PR03MB4456:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pMsjPowjyRi4ezo/5wE7iqxoLDFPQBJi1kdY0ptVY4BXjkE3qB7oYSwTzWfAWpU3zUGcSH7Hww8SYjffmuu8xM15fFiUDAYRVOSHscE928I7FSTQBq70ClfJlHhsvDoaIT1AGVU74/OrCDccnyiILwtsAcpNvCadKAr0w/Kw0RC3k6erBdzdhHqyVZ/M3IaE53CQHnRfO2FfiVG2I3uJx2AoTFEXtfXowBytE9C98AIYMq5GX0sX83dMj8S9Xt16gQKRq8ACS3nZCJVzmDIl6LrgMp56nAHiUDpAg0mcVXE4npy2gzmB+5FZursruMFAMZl4q0heyrGrD0yD/9qAtgVH8xA95HLwOjmVBESQcLDNGn7S4i1QcPq9McCUcwgveySn8wqLtvweFXVRAA3gFJ03OwNY5O38ZuyQR2ZWid2uIXFyJTpJyd/tFMZFOXcmO2k0ItRzVde08mqT1BGAQZLs4sHVvmxBK49X5E91Wwc5CNU9M05iZH+GnPZ1OF9ngwu/nAyHIcV6X0/yCdPq9pw8l5/gM5rMDSqMFdc0MnbXYmXilnud21mFPrS2hliT0elRkTsUXN5djjGyEN4CAg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WjYwNnloWHNEeXpacjZKMG43RVNSam9rVkk5ZTIyYlZWQ3R2QzhJRC9hQXNK?= =?utf-8?B?bUVxREpEZDl2RE03UGY0WFpnSU95S2paK3BGNU8zRmM0N25HbVdCd3VQSkNq?= =?utf-8?B?MFNzeGlYd2wvY20vTXZlaldqdjdiS3RKZUZmY0N2VWhjYUxScGMwblZhUVFJ?= =?utf-8?B?KzRqYVJNVEtIRUgySmQ5Rjh5TTZqNGw5bHkxdHBCcyt3Qi9zdTBnOXRybzRP?= =?utf-8?B?djc0S3FOeEswU0lLSGtGcGlwcVk0RitFMk9td3pONS83VHB1a21GM0JBQmR0?= =?utf-8?B?Ny8zSkR1Y0lYL3cyQjBXSmlacFRLd2l6TzJyMEphbS85N3diZ2lxdEt4MkJi?= =?utf-8?B?OEphTk8rRjl6N21sRmIzdEk3TnVKVGplbW5OYWhnWGR4Q2tnZVNqUjI0S054?= =?utf-8?B?a3J3eDhKTEI2cmlEMGRVMW1LQ1ZyRWI0NFJyMWVGb2hzdmVXa0ZmT1V5cGx6?= =?utf-8?B?MTgrWXQyRkV4ZWRMdk03UW9wcWpmNDRaZHQzOU1VQ3dhTjFPd0kxWTJySTha?= =?utf-8?B?TXA3a2pWQUlxeXdDNWMwcDBNSmtTY0dhclRuZ29nNTBHQm1CV2g5bGExWUxE?= =?utf-8?B?YjQ5cWdWcU51RC9tZ0QwQUwzb2dSQmdKaUFnY2ozSUxjZ3hqS2tpZHpyNG9L?= =?utf-8?B?TmJuY3owTG04dXk2OGkyNmcxb3RXZTd4eGlhSHlNemx4a2RPeElrWUE4MFpS?= =?utf-8?B?MHN4djFwSnpRSVFNUElDL1hhdEVXeFpDSzZmczZsOWx4dnZ0dFpBamRMY1Fo?= =?utf-8?B?TVhvMmQ1QmFaMFhyZEpKTW1PeUhocEpUTWVUYVB4d01oNFcyUU1LUy9BNGdq?= =?utf-8?B?UkUxMEc5Ymt2K2lETE1WTkNzME5DRDZhdUx6N1dxWmVNWjFsemU3TkllUU5H?= =?utf-8?B?ZGRsU0F3allESWpYV1BUUzBESHlQSm15TjduM0FmdEM3UENFdjQreW5ZZE92?= =?utf-8?B?cmVuZE5Uc21YUWR6cWZEWWkxNDRmd0RhSW5OQ3NjWkVNMXBSNzdDU2h3WXF3?= =?utf-8?B?WGxXUUU0TWtKcmRROVgwM1F2NjJla1F3T2ZxM0RiS1Uwbjk2a1NNUGswTXlJ?= =?utf-8?B?djN4cGpLM2k1R2t4Qk5oc2ZXeFRpSHhNWDZaVC9IajhYakFRcWlMRzI3Q1k1?= =?utf-8?B?bnhNdWw3KzdjNGM0VkFBNUhZUHBlbGJZOHYvd1BuVnhoTGxremlHZ0RyVjF4?= =?utf-8?B?VkRnWUtQK21jQWFhN1pyS2xBb3NvMDFka0pQS29wVUg2dWUybmYxbXl6U1Vt?= =?utf-8?B?ZU5WTXpJbFIzU0FNNEwzOUhRckFDOGNDVTVDazE2WUtTK2JUQT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dd56113-547f-4aff-771f-08d9c1be6ded X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2021 00:36:29.3290 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB4456 Subject: Re: [FFmpeg-devel] [PATCH] avutil/twofish: Fixed decryption X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Sebastian Kirmayer: > The previous implementation swapped the two halves of the plaintext. The > existing tests only decrypted data with a plaintext of all zeroes, which is > not affected by swapping the halves. Tests which detect the old buggy behavior > have been added. > > Signed-off-by: Sebastian Kirmayer > --- > libavutil/tests/twofish.c | 15 ++++++++++++--- > libavutil/twofish.c | 8 ++++---- > 2 files changed, 16 insertions(+), 7 deletions(-) > > diff --git a/libavutil/tests/twofish.c b/libavutil/tests/twofish.c > index 74e0926e..7e8b1292 100644 > --- a/libavutil/tests/twofish.c > +++ b/libavutil/tests/twofish.c > @@ -39,7 +39,7 @@ int main(int argc, char *argv[]) > }; > uint8_t temp[32], iv[16], rpt[32] = {0}; > const int kbits[3] = {128, 192, 256}; > - int i, j, err = 0; > + int i, j, k, err = 0; > struct AVTWOFISH *cs; > cs = av_twofish_alloc(); > if (!cs) > @@ -70,10 +70,19 @@ int main(int argc, char *argv[]) > memcpy(Key+16,Key,(kbits[j]-128) >> 3); > memcpy(Key,rpt,16); > memcpy(rpt,temp,16); > + av_twofish_crypt(cs, temp, temp, 1, NULL, 1); > + for (k = 0; k < 16; k++) { > + // Need to compare to Key here, because the plaintext comes > + // from rpt but was moved over to Key. > + if (Key[k] != temp[k]) { > + av_log(NULL, AV_LOG_ERROR, "%d %02x %02x\n", k, Key[k], temp[k]); > + err = 1; > + } > + } > } > for (i = 0; i < 16; i++) { > - if (rct[3 + j][i] != temp[i]) { > - av_log(NULL, AV_LOG_ERROR, "%d %02x %02x\n", i, rct[3 + j][i], temp[i]); > + if (rct[3 + j][i] != rpt[i]) { > + av_log(NULL, AV_LOG_ERROR, "%d %02x %02x\n", i, rct[3 + j][i], rpt[i]); > err = 1; > } > } > diff --git a/libavutil/twofish.c b/libavutil/twofish.c > index d84fa4f3..649b4bc4 100644 > --- a/libavutil/twofish.c > +++ b/libavutil/twofish.c > @@ -260,10 +260,10 @@ static void twofish_decrypt(AVTWOFISH *cs, uint8_t *dst, const uint8_t *src, uin > P[3] ^= AV_RL32(iv + 12); > memcpy(iv, src, 16); > } > - AV_WL32(dst, P[2]); > - AV_WL32(dst + 4, P[3]); > - AV_WL32(dst + 8, P[0]); > - AV_WL32(dst + 12, P[1]); > + AV_WL32(dst, P[0]); > + AV_WL32(dst + 4, P[1]); > + AV_WL32(dst + 8, P[2]); > + AV_WL32(dst + 12, P[3]); > } > > av_cold int av_twofish_init(AVTWOFISH *cs, const uint8_t *key, int key_bits) > Confirmed the bug through testing with more interesting data than the current test does. Will apply this on Sunday unless there are objections. Thanks. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".