Skip to content
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

[mbedtls_mpi_mod_int] The results are not the same between config "MBEDTLS_HAVE_INT32" and "MBEDTLS_HAVE_INT64" #5053

Open
qingqing202110 opened this issue Oct 11, 2021 · 1 comment
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)

Comments

@qingqing202110
Copy link

[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

@qingqing202110
Copy link
Author

config as bellow:

vi include/mbedtls/config.h

#if defined(MBEDTLS_HAVE_INT32)
#undef MBEDTLS_HAVE_INT32
#endif
#if defined(MBEDTLS_HAVE_INT64)
#undef MBEDTLS_HAVE_INT64
#endif
#if defined(MBEDTLS_USER_CONFIG_FILE)
#include MBEDTLS_USER_CONFIG_FILE
#endif
#undef MBEDTLS_AESNI_C
#undef MBEDTLS_PADLOCK_C
#undef MBEDTLS_HAVE_AS

#define MBEDTLS_HAVE_INT32 or #define MBEDTLS_HAVE_INT64

@yanesca yanesca added bug component-crypto Crypto primitives and low-level interfaces Product Backlog size-m Estimated task size: medium (~1w) labels Oct 12, 2021
@tom-cosgrove-arm tom-cosgrove-arm added the historical-reviewing Currently reviewing (for legacy PR/issues) label Feb 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
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)
Projects
None yet
Development

No branches or pull requests

5 participants