/* * Checkup routine */ int mbedtls_dhm_self_test( int verbose ) { int ret; mbedtls_dhm_context dhm; mbedtls_dhm_init( &dhm ); if( verbose != 0 ) mbedtls_printf( " DHM parameter load: " ); if( ( ret = mbedtls_dhm_parse_dhm( &dhm, (const unsigned char *) mbedtls_test_dhm_params, mbedtls_test_dhm_params_len ) ) != 0 ) { if( verbose != 0 ) mbedtls_printf( "failed\n" ); ret = 1; goto exit; } if( verbose != 0 ) mbedtls_printf( "passed\n\n" ); exit: mbedtls_dhm_free( &dhm ); return( ret ); }
int DHMContext::parseDHM(State & state, mbedtls_dhm_context * context){ Stack * stack = state.stack; if (stack->is<LUA_TSTRING>(1)){ std::string str = stack->toLString(1); const unsigned char * input = reinterpret_cast<const unsigned char*>(str.c_str()); stack->push<int>(mbedtls_dhm_parse_dhm(context, input, str.length())); return 1; } return 0; }
/* * Load and parse DHM parameters */ int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ) { int ret; size_t n; unsigned char *buf; if( ( ret = load_file( path, &buf, &n ) ) != 0 ) return( ret ); ret = mbedtls_dhm_parse_dhm( dhm, buf, n ); mbedtls_zeroize( buf, n ); mbedtls_free( buf ); return( ret ); }
void set(const std::string& dhstr) { // Last parameter is buffer size, must include the terminating null int ret = mbedtls_dhm_parse_dhm(get(), reinterpret_cast<const unsigned char*>(dhstr.c_str()), dhstr.size()+1); ThrowOnError(ret, "Unable to import DH params"); }