Exemple #1
1
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;
}
Exemple #2
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);
	}
    }
}
Exemple #3
0
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;
    }
}
Exemple #4
0
/**
 *
 * @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;
}
Exemple #6
0
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");
}