[mbedtls_mpi_mod_int] The results are not the same between config "MBEDTLS_HAVE_INT32" and "MBEDTLS_HAVE_INT64" #5053
Labels
bug
component-crypto
Crypto primitives and low-level interfaces
historical-reviewing
Currently reviewing (for legacy PR/issues)
size-m
Estimated task size: medium (~1w)
[Summary]
The result of mbedtls_mpi_mod_int are not the same ,
when config is "MBEDTLS_HAVE_INT32" or "MBEDTLS_HAVE_INT64".
[System information]
(1)branch:origin/mbedtls-2.16
commit:ccfc2bff6fbcf3c3650f4cf8af020c3015663039
[Expected behavior]
[script]
mbedtls_mpi_sint b[]={0x1d642e73,0x16c26e01,0x44d1f4be,0x60d8bdc6};
const char *strA[]={"bef17b28bb27781a3d0bffcb5845a8b0ac41c85eb42e7c86df06c9fcb4bb96d4b104913775bf76b4d252dbb8a72e107a68cdc49b0f1e90b13ddc23abe4e50def74041042f1ccf05b58ff669cfe0e990298505609380cdae826f01abb83ba2365c80a0dd8034a627e07a49c7055dee7f3502c5baa06c75d535b0e4405bfdd45f1b676797bdc8400db27f7a37470edc6bed6c9e3734e1e0a20d2290a5b7fa2e6d349fd868f47f65c798fe40c5055b8b64f3fab1934b94b9e0911028ad033b57e1e113bf75e8fee2d24f48103196e24baf30f0da67d28a4ce496262efb9cd4f30d18c4d82d45c2b44f201d7e14489f9c2e710b949bea2faa264d82a1cec6b28bbff1167cb2249db9e2702e619599b218f7e97038f166b6b6fa291b7b725433b9e2453b12b3106441b03b1d5c1f26329b81fd56697e0314806cab65c1f7593cfde25ad7058dbfffbcf1af36ff68155334519e4d186dd",
"b0653bc07feb13734bd6e0b7a2048f02ffac609a57fe4c8a77cacea7e9470153aadb9ff29b058f552ff8d46d9842f028737d0c9dc88dc901323b1d84ba483d41d1bcf4c0317b4cfaaf366efee40b13f166b45c69f33f19f43cc7df9b509ccbd61456cc52241dad0c9c8f9539175bba7df61bc54d9e7cb67e3ec2c0b0dc46738f6a2c623c6452a46d1231eca689772692f6bd32484d9d70923b64fe56553f04b9e36592c93358f53d52dfd81cb80129031d19638eacf5b3f14139f02e457c138ccdb2b9911760c799adc9970ea3c89ddc5e117a9ed364cae217a83ebdf40e979c506250205d528da483fa88220156ddbe0b32ffae8f5bf74f46f3ff275ac5a879871c877d16b46f9f4d3e5c5019e8bb3d62904cbd9548b08ca4b6e5f50579fce0c3a084bdd6bcdc66b357bbbac695dfc4e0cffcd7929236f9f42f9f4f224b0e0329cb06161020c87502e9a73e67ac21296d031ade8c3067ae51781f4305cfbf25b5e7f9106eb01b05eebe8d2e",
"50e223f180c5645be9686fd202c7ae8c588cf4b2635810bc24d72940d9c0e892a593fe9c23988c129ce03d8515a9fd77078e7cf80ae3b408613242f444deb88d23f8e53b3bcd36039c4b5445b11d8787b5e7cbe4cd7d621bed625fef7a0107002411b3ca08a808a31aeef08a245e31dd7ccab8df2d6b42fcfe3ab8bdfa7e94fd45430222f154f88d8ce4d4",
"a96a407f4ed7632fe021f35156c140b2d343d9ec918f69b590aa7156ee9318c0050429bf88750c6ff08068d10e1b9fccf026ed745a6e09720a230c3fc5d0a5ff1a8e85429ea81ec681635f44388657e366d875f6e5b501acdddd8b7bf9df5886ef7e0655908bb69da010535fcc8d7d8bed3f6586270486e12f75eb28b531996b57f442d24a420f5de355f0ffe843c6808d13f6b0154a9421ba3acacaa92b701f2f10cce0613477b78661691e568b76fe32e1746d81c29a904e00010bd9c5f05ac896f8b7a7e09c66ce350a2d4ce7c968f5e2ffe63a563beee5dc5b0edb0e8f0fc907f30b245eeff6c47152158bc282855f60cd"
};
mbedtls_mpi_init(&A);
for(int lp=0;lp<4;lp++)
{
printf("====== %d\n",lp);
TEST_EQ(mbedtls_mpi_read_string(&A,16,strA[lp]),0,ret);
if(0==ret)
{
TEST_EQ(mbedtls_mpi_mod_int(&r,&A,b[lp]),0,ret);
printf("0x%x\n",r);
}
}
mbedtls_mpi_free(&A);
result as bellow:
(1)MBEDTLS_HAVE_INT32
====== 0
0xcb79e9e
====== 1
0x935b12c
====== 2
0xf2afb58
====== 3
0x2486a307
(2)MBEDTLS_HAVE_INT64(the same as python)
====== 0
0x2e6af70
====== 1
0x5d88173
====== 2
0x1c62bdc2
====== 3
0x18c1c221
The text was updated successfully, but these errors were encountered: