int main() { uint8_t a_pub[ECC_BYTES+1]; uint8_t a_pri[ECC_BYTES]; uint8_t b_pub[ECC_BYTES+1]; uint8_t b_pri[ECC_BYTES]; uint8_t a_secret[ECC_BYTES]; uint8_t b_secret[ECC_BYTES]; uint8_t p_signature[ECC_BYTES*2]; uint8_t a_hash[SHA256_BLOCK_SIZE]; uint8_t b_hash[SHA256_BLOCK_SIZE]; SHA256_CTX ctx; int errid = 0; int i=0; /* print ECC_CURVE parameter */ print_parameter(ECC_CURVE); /* make key */ errid = ecc_make_key(a_pub,a_pri); if(errid != 1){ printf("[ecc_make _key] error!!!"); return -1; } printf("A key pair generation completed...\n"); errid = ecc_make_key(b_pub,b_pri); if(errid != 1){ printf("[ecc_make _key] error!!!"); return -1; } printf("B key pair generation completed...\n"); /* compute shared secret */ errid = ecdh_shared_secret(b_pub,a_pri,a_secret); if(errid != 1){ printf("[ecdh_sharedS_secret]error!!!"); return -1; } printf("A shared_secret generation completed...\n"); errid = ecdh_shared_secret(a_pub,b_pri,b_secret); if(errid != 1){ printf("[ecdh_sharedS_secret]error!!!"); return -1; } printf("B shared_secret generation completed...\n"); hash_sha256(a_secret,a_hash); if(errid != 1){ printf("[hash_sha256]error!!!"); return -1; } printf("A shared_secret hash completed...\n"); hash_sha256(b_secret,b_hash); if(errid != 1){ printf("[hash_sha256]error!!!"); return -1; } printf("B shared_secret hash completed...\n"); /* sign */ errid = ecdsa_sign(a_pri,a_hash,p_signature); if(errid != 1){ printf("[ecdsa_sign]error!!!"); return -1; } /* verify */ errid = ecdsa_verify(a_pub,a_hash,p_signature); if(errid != 1){ printf("[ecdsa_verify]error!!!"); return -1; }else{ printf("success \n"); } errid = ecdsa_sign(b_pri,b_hash,p_signature); if(errid != 1){ printf("[ecdsa_sign]error!!!"); return -1; } /* verify */ errid = ecdsa_verify(b_pub,b_hash,p_signature); if(errid != 1){ printf("[ecdsa_verify]error!!!"); return -1; }else{ printf("success \n"); } return 0; }
static void show_parameters(int mode, char **names) { HTABLE_INFO **list; HTABLE_INFO **ht; char **namep; char *value; /* * Show all parameters. */ if (*names == 0) { list = htable_list(param_table); qsort((char *) list, param_table->used, sizeof(*list), comp_names); for (ht = list; *ht; ht++) print_parameter(mode, ht[0]->value); myfree((char *) list); return; } /* * Show named parameters. */ for (namep = names; *namep; namep++) { if ((value = htable_find(param_table, *namep)) == 0) { msg_warn("%s: unknown parameter", *namep); } else { print_parameter(mode, value); } } }
int main() { std::string sentence = "北韩 是 与 澳洲 有 邦交 的 少数 国家 之一"; std::vector<std::string> vec; std::vector<rule_tree*> tree_vec; std::vector<hypothesis*> hypo_vec; configuration* config = configuration::get_instance(); model* system_model = config->get_model(); lexer lex; std::vector<std::shared_ptr<const trellis_path>> path_list; std::vector<const std::string*> output_vec; load_parameter(); print_parameter(); load_model(); string_split(sentence, " ", vec); lex.set_handler(create_unknow_word_rule); lex.set_input(vec); lex.process(); tree_vec.push_back(lex.get_rule_tree()); tree_vec.push_back(system_model->get_rule_tree(0)); tree_vec.push_back(system_model->get_rule_tree(1)); parser translator(&tree_vec); translator.parse(lex.get_output()); translator.get_all_hypothesis(hypo_vec); /* for (unsigned int i = 0; i < hypo_vec.size(); i++) { std::cout << i << " ||| "; print_hypothesis(hypo_vec[i]); //hypothesis_track(hypo_vec[i]); }*/ translator.get_nbest(1000, &path_list, true); for (unsigned int i = 0; i < path_list.size(); i++) { auto& path = path_list[i]; output_vec.clear(); path->output(&output_vec); std::cout << i << " ||| "; for (unsigned int i = 0; i < output_vec.size(); i++) { std::cout << *output_vec[i] << " "; } auto score_vec = path->get_score_vector(); std::cout << " ||| "; for (unsigned int i = 0; i < score_vec->size(); i++) { std::cout << score_vec->at(i) << " "; } std::cout << " ||| " << path->get_total_score(); std::cout << " ||| " << path->get_heuristic_score(); std::cout << std::endl; } }
/** * * @ingroup shell * @ displays hardware stats of the pi * @return OK for success, SYSERR for syntax error */ shellcmd xsh_pistat(int nargs, char *args[]) { printf("pistat:\r\n"); print_parameter("firmware", MBX_TAG_GET_FIRMWARE, 1); print_parameter("board model", MBX_TAG_GET_BOARD_MODEL, 1); print_parameter("board rev", MBX_TAG_GET_BOARD_REVISION, 1); print_parameter("mac address", MBX_TAG_GET_MAC_ADDRESS, 2); print_parameter("board serial", MBX_TAG_GET_BOARD_SERIAL, 2); print_parameter("arm mem", MBX_TAG_GET_ARM_MEMORY, 2); print_parameter("vc mem", MBX_TAG_GET_VC_MEMORY, 2); return OK; }
void moses_translate(int argc, char** argv) { configuration* config = configuration::get_instance(); parameter* param = config->get_parameter(); load_moses_options(argc, argv); config->load_parameter(); config->load_weight(); load_moses_model(); if (param->get_integer_parameter("show_weights")) { show_weights(); std::exit(0); } print_parameter(); load_model_from_file(); translate(); std::cerr << "translation complete" << std::endl; }
void parse_parameters( int argc, char **argv, cmd_parameters_t params) { int i; cmd_parameter_t **it, *s; cmd_parameter_t search_term; s = &search_term; printf("Parsing for %d required and %d optional parameters.\n", params.n_req, params.n_opt); if((params.n_req == 0) && (params.n_opt == 0)) //nothing to parse return; if(params.n_req > 0) qsort(params.required, params.n_req, sizeof(cmd_parameter_t *), (__compar_fn_t)cmd_parameter_t_cmp); if(params.n_opt > 0) qsort(params.optional, params.n_opt, sizeof(cmd_parameter_t *), (__compar_fn_t)cmd_parameter_t_cmp); while(argc > 0) { search_term.parameter = *argv; it = bsearch(&s, params.required, params.n_req, sizeof(cmd_parameter_t *), (__compar_fn_t)cmd_parameter_t_cmp); if(it == NULL) it = bsearch(&s, params.optional, params.n_opt, sizeof(cmd_parameter_t *), (__compar_fn_t)cmd_parameter_t_cmp); if(it != NULL) { switch((*it)->type) { case ARG_TYPE_INT: *((*it)->value.i) = atoi(*(++argv)); (*it)->is_set = 1; argc--; break; case ARG_TYPE_FLOAT: *((*it)->value.f) = atof(*(++argv)); (*it)->is_set = 1; argc--; break; case ARG_TYPE_STRING: *((*it)->value.c) = *(++argv); (*it)->is_set = 1; argc--; break; case ARG_TYPE_NONE: (*it)->is_set = 1; break; } } else { printf("Unknown parameter '%s'\n", *argv); exit(23); } argv++; argc--; } for(i=0;i<params.n_req;i++) if(!params.required[i]->is_set) { printf("Required parameter '%s' missing.\n", params.required[i]->parameter); exit(-1); } else { print_parameter(params.required[i]); } for(i=0;i<params.n_opt;i++) if(params.optional[i]->is_set) print_parameter(params.optional[i]); printf("\n"); }