1*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: tiny x_size 2*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 3*62c56f98SSadaf Ebrahimi 4*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit, x_size=3 5*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":3:"5":0 6*62c56f98SSadaf Ebrahimi 7*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit, x_size=2 8*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":2:"5":0 9*62c56f98SSadaf Ebrahimi 10*62c56f98SSadaf Ebrahimi## Repeat this test case and a few similar ones several times. The RNG state 11*62c56f98SSadaf Ebrahimi## changes, so we get to exercise the code with a few different values. 12*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit #1 13*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":1:"5":0 14*62c56f98SSadaf Ebrahimi 15*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit #2 16*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":1:"5":0 17*62c56f98SSadaf Ebrahimi 18*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit #3 19*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":1:"5":0 20*62c56f98SSadaf Ebrahimi 21*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit #4 22*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":1:"5":0 23*62c56f98SSadaf Ebrahimi 24*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 5-bit #5 25*62c56f98SSadaf Ebrahimidhm_do_dhm:"17":1:"5":0 26*62c56f98SSadaf Ebrahimi 27*62c56f98SSadaf Ebrahimi## This is x_size = P_size + 1. Arguably x_size > P_size makes no sense, 28*62c56f98SSadaf Ebrahimi## but it's the current undocumented behavior to treat it the same as when 29*62c56f98SSadaf Ebrahimi## x_size = P_size. If this behavior changes in the future, change the expected 30*62c56f98SSadaf Ebrahimi## return status from 0 to MBEDTLS_ERR_DHM_BAD_INPUT_DATA. 31*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=14 32*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":14:"1e32158a35e34d7b619657d6":0 33*62c56f98SSadaf Ebrahimi 34*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit #1 35*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0 36*62c56f98SSadaf Ebrahimi 37*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit #2 38*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0 39*62c56f98SSadaf Ebrahimi 40*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit #3 41*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0 42*62c56f98SSadaf Ebrahimi 43*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit #4 44*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0 45*62c56f98SSadaf Ebrahimi 46*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit #5 47*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0 48*62c56f98SSadaf Ebrahimi 49*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=12 50*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":12:"1e32158a35e34d7b619657d6":0 51*62c56f98SSadaf Ebrahimi 52*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=11 53*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":11:"1e32158a35e34d7b619657d6":0 54*62c56f98SSadaf Ebrahimi 55*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=1 #1 56*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 57*62c56f98SSadaf Ebrahimi 58*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=1 #2 59*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 60*62c56f98SSadaf Ebrahimi 61*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=1 #3 62*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 63*62c56f98SSadaf Ebrahimi 64*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=1 #4 65*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 66*62c56f98SSadaf Ebrahimi 67*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 97-bit, x_size=1 #5 68*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0 69*62c56f98SSadaf Ebrahimi 70*62c56f98SSadaf EbrahimiDiffie-Hellman full exchange: 286-bit 71*62c56f98SSadaf Ebrahimidhm_do_dhm:"301abc09a57b66a953bfcc206a32e9ab56724084e4b47635779ca35fee79ce1060cb4117":36:"15aa1039b4dd361ed1b5b88e52f2919d0cbcb15adbe5fc290dab13b34e7":0 72*62c56f98SSadaf Ebrahimi 73*62c56f98SSadaf EbrahimiDiffie-Hellman small modulus 74*62c56f98SSadaf Ebrahimidhm_do_dhm:"3":1:"5":MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA 75*62c56f98SSadaf Ebrahimi 76*62c56f98SSadaf EbrahimiDiffie-Hellman zero modulus 77*62c56f98SSadaf Ebrahimidhm_do_dhm:"0":1:"5":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 78*62c56f98SSadaf Ebrahimi 79*62c56f98SSadaf EbrahimiDiffie-Hellman with G=0 80*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"0":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 81*62c56f98SSadaf Ebrahimi 82*62c56f98SSadaf EbrahimiDiffie-Hellman with G=1 83*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 84*62c56f98SSadaf Ebrahimi 85*62c56f98SSadaf EbrahimiDiffie-Hellman with G=-1 86*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"-1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 87*62c56f98SSadaf Ebrahimi 88*62c56f98SSadaf EbrahimiDiffie-Hellman with G=P-1 89*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d6":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 90*62c56f98SSadaf Ebrahimi 91*62c56f98SSadaf EbrahimiDiffie-Hellman with G=P-2 92*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d5":0 93*62c56f98SSadaf Ebrahimi 94*62c56f98SSadaf EbrahimiDiffie-Hellman with G=P 95*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d7":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 96*62c56f98SSadaf Ebrahimi 97*62c56f98SSadaf EbrahimiDiffie-Hellman with G=P+1 98*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d8":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 99*62c56f98SSadaf Ebrahimi 100*62c56f98SSadaf EbrahimiDiffie-Hellman with G=P+2 101*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d9":0 102*62c56f98SSadaf Ebrahimi 103*62c56f98SSadaf EbrahimiDiffie-Hellman: x_size < 0 104*62c56f98SSadaf Ebrahimidhm_do_dhm:"12df4d7689dff4c99d9ae57d7":-1:"1e32158a35e34d7b619657d6":MBEDTLS_ERR_DHM_BAD_INPUT_DATA 105*62c56f98SSadaf Ebrahimi 106*62c56f98SSadaf EbrahimiDiffie-Hellman MPI_MAX_SIZE modulus 107*62c56f98SSadaf Ebrahimidhm_make_public:MBEDTLS_MPI_MAX_SIZE:"5":0 108*62c56f98SSadaf Ebrahimi 109*62c56f98SSadaf EbrahimiDiffie-Hellman MPI_MAX_SIZE + 1 modulus 110*62c56f98SSadaf Ebrahimidhm_make_public:MBEDTLS_MPI_MAX_SIZE + 1:"5":MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA 111*62c56f98SSadaf Ebrahimi 112*62c56f98SSadaf EbrahimiDH load parameters from PEM file (1024-bit, g=2) 113*62c56f98SSadaf Ebrahimidepends_on:MBEDTLS_PEM_PARSE_C 114*62c56f98SSadaf Ebrahimidhm_file:"data_files/dhparams.pem":"9e35f430443a09904f3a39a979797d070df53378e79c2438bef4e761f3c714553328589b041c809be1d6c6b5f1fc9f47d3a25443188253a992a56818b37ba9de5a40d362e56eff0be5417474c125c199272c8fe41dea733df6f662c92ae76556e755d10c64e6a50968f67fc6ea73d0dca8569be2ba204e23580d8bca2f4975b3":"02":128 115*62c56f98SSadaf Ebrahimi 116*62c56f98SSadaf EbrahimiDH load parameters from PEM file (2048-bit, large g, privateValueLength) 117*62c56f98SSadaf Ebrahimidepends_on:MBEDTLS_PEM_PARSE_C 118*62c56f98SSadaf Ebrahimidhm_file:"data_files/dh.optlen.pem":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256 119*62c56f98SSadaf Ebrahimi 120*62c56f98SSadaf EbrahimiDH load parameters from DER file (2048-bit, large g, privateValueLength) 121*62c56f98SSadaf Ebrahimidhm_file:"data_files/dh.optlen.der":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256 122*62c56f98SSadaf Ebrahimi 123*62c56f98SSadaf EbrahimiDiffie-Hellman selftest 124*62c56f98SSadaf Ebrahimidhm_selftest: 125