public void start() { startTime = System.currentTimeMillis(); }
public long stop() { return System.currentTimeMillis() - startTime; }
public String update_token(String req_array) { System.out.println("Update"); String jsonarry = new String(""); try { JSONParser parser = new JSONParser(); Object obj = parser.parse(req_array); JSONObject jsonObject = (JSONObject) obj; String id = (String) jsonObject.get("id"); String hash_id = (String) jsonObject.get("hash_id"); String sig_id = (String) jsonObject.get("sig_id"); String date_id = (String) jsonObject.get("date_id"); String owner_id = (String) jsonObject.get("owner_id"); String owner_rating = (String) jsonObject.get("owner_rating"); String currency = (String) jsonObject.get("currency"); String custom_template = (String) jsonObject.get("custom_template"); String custom_1 = (String) jsonObject.get("custom_1"); String custom_2 = (String) jsonObject.get("custom_2"); String custom_3 = (String) jsonObject.get("custom_3"); String item_errors = (String) jsonObject.get("item_errors"); String item_date_listed = (String) jsonObject.get("item_date_listed"); String item_date_listed_day = (String) jsonObject.get("item_date_listed_da"); String item_date_listed_int = (String) jsonObject.get("item_date_listed_int"); String item_hits = (String) jsonObject.get("item_hits"); String item_confirm_code = (String) jsonObject.get("item_confirm_code"); String item_confirmed = (String) jsonObject.get("item_confirmed"); String item_cost = (String) jsonObject.get("item_cost"); String item_description = (String) jsonObject.get("item_description"); String item_id = (String) jsonObject.get("item_id"); String item_price = (String) jsonObject.get("item_price"); String item_weight = (String) jsonObject.get("item_weight"); String item_listing_id = (String) jsonObject.get("item_listing_id"); String item_notes = (String) jsonObject.get("item_notes"); String item_package_d = (String) jsonObject.get("item_package_d"); String item_package_l = (String) jsonObject.get("item_package_l"); String item_package_w = (String) jsonObject.get("item_package_w"); String item_part_number = (String) jsonObject.get("item_part_number"); String item_title = (String) jsonObject.get("item_title"); String item_title_url = (String) jsonObject.get("item_title"); String item_type = (String) jsonObject.get("item_type"); String item_search_1 = (String) jsonObject.get("item_search_1"); String item_search_2 = (String) jsonObject.get("item_search_2"); String item_search_3 = (String) jsonObject.get("item_search_3"); String item_site_id = (String) jsonObject.get("item_site_id"); String item_site_url = (String) jsonObject.get("item_site_url"); String item_picture_1 = (String) jsonObject.get("item_picture_1"); String item_total_on_hand = (String) jsonObject.get("item_total_on_hand"); String sale_payment_address = (String) jsonObject.get("sale_payment_address"); String sale_payment_type = (String) jsonObject.get("sale_payment_type"); String sale_fees = (String) jsonObject.get("sale_fees"); String sale_id = (String) jsonObject.get("sale_id"); String sale_seller_id = (String) jsonObject.get("sale_seller_id"); String sale_status = (String) jsonObject.get("sale_status"); String sale_tax = (String) jsonObject.get("sale_tax"); String sale_shipping_company = (String) jsonObject.get("sale_shipping_company"); String sale_shipping_in = (String) jsonObject.get("sale_shipping_in"); String sale_shipping_out = (String) jsonObject.get("sale_shipping_out"); String sale_source_of_sale = (String) jsonObject.get("sale_source_of_sale"); String sale_total_sale_amount = (String) jsonObject.get("sale_total_sale_amount"); String sale_tracking_number = (String) jsonObject.get("sale_tracking_number"); String sale_transaction_id = (String) jsonObject.get("sale_transaction_id"); String sale_transaction_info = (String) jsonObject.get("sale_transaction_info"); String seller_address_1 = (String) jsonObject.get("seller_address_1"); String seller_address_2 = (String) jsonObject.get("seller_address_2"); String seller_address_city = (String) jsonObject.get("seller_address_city"); String seller_address_state = (String) jsonObject.get("seller_address_state"); String seller_address_zip = (String) jsonObject.get("seller_address_zip"); String seller_address_country = (String) jsonObject.get("seller_address_country"); String seller_id = (String) jsonObject.get("seller_id"); String seller_ip = (String) jsonObject.get("seller_ip"); String seller_email = (String) jsonObject.get("seller_email"); String seller_first_name = (String) jsonObject.get("seller_first_name"); String seller_last_name = (String) jsonObject.get("seller_last_name"); String seller_notes = (String) jsonObject.get("seller_notes"); String seller_phone = (String) jsonObject.get("seller_phone"); String seller_logo = (String) jsonObject.get("seller_logo"); String seller_url = (String) jsonObject.get("seller_url"); try { if (currency.length() < 1) {} } catch (Exception e) { currency = new String("1"); } try { if (custom_template.length() < 1) {} } catch (Exception e) { custom_template = new String("2"); } try { if (custom_1.length() < 1) {} } catch (Exception e) { custom_1 = new String("3"); } try { if (custom_2.length() < 1) {} } catch (Exception e) { custom_2 = new String("4"); } try { if (custom_3.length() < 1) {} } catch (Exception e) { custom_3 = new String("5"); } try { if (item_errors.length() < 1) {} } catch (Exception e) { item_errors = new String("6"); } try { if (item_date_listed.length() < 1) {} } catch (Exception e) { item_date_listed = new String("7"); } try { if (item_date_listed_day.length() < 1) {} } catch (Exception e) { item_date_listed_day = new String("8"); } try { if (item_date_listed_int.length() < 1) {} } catch (Exception e) { item_date_listed_int = new String("9"); } try { if (item_hits.length() < 1) {} } catch (Exception e) { item_hits = new String("10"); } try { if (item_confirm_code.length() < 1) {} } catch (Exception e) { item_confirm_code = new String("11"); } try { if (item_confirmed.length() < 1) {} } catch (Exception e) { item_confirmed = new String("12"); } try { if (item_cost.length() < 1) {} } catch (Exception e) { item_cost = new String("13"); } try { if (item_description.length() < 1) {} } catch (Exception e) { item_description = new String("14"); } try { if (item_id.length() < 1) {} } catch (Exception e) { item_id = new String("15"); } try { if (item_price.length() < 1) {} } catch (Exception e) { item_price = new String("16"); } try { if (item_weight.length() < 1) {} } catch (Exception e) { item_weight = new String("17"); } try { if (item_notes.length() < 1) {} } catch (Exception e) { item_notes = new String("18"); } try { if (item_package_d.length() < 1) {} } catch (Exception e) { item_package_d = new String("19"); } try { if (item_package_l.length() < 1) {} } catch (Exception e) { item_package_l = new String("20"); } try { if (item_package_w.length() < 1) {} } catch (Exception e) { item_package_w = new String("21"); } try { if (item_part_number.length() < 1) {} } catch (Exception e) { item_part_number = new String("22"); } try { if (item_title.length() < 1) {} } catch (Exception e) { item_title = new String("23"); } try { if (item_title_url.length() < 1) {} } catch (Exception e) { item_title_url = new String("24"); } try { if (item_type.length() < 1) {} } catch (Exception e) { item_type = new String("25"); } try { if (item_search_1.length() < 1) {} } catch (Exception e) { item_search_1 = new String("26"); } try { if (item_search_2.length() < 1) {} } catch (Exception e) { item_search_2 = new String("27"); } try { if (item_search_3.length() < 1) {} } catch (Exception e) { item_search_3 = new String("28"); } try { if (item_site_url.length() < 1) {} } catch (Exception e) { item_site_url = new String("29"); } try { if (item_picture_1.length() < 1) {} } catch (Exception e) { item_picture_1 = new String("30"); } try { if (item_total_on_hand.length() < 1) {} } catch (Exception e) { item_total_on_hand = new String("31"); } String tokenx[] = new String[network.listing_size]; if (Integer.parseInt(id) >= network.base_int && Integer.parseInt(id) <= (network.hard_token_limit + network.base_int)) { krypton_database_get_token2 getxt = new krypton_database_get_token2(); tokenx = getxt.get_token(id); // update the noose tokenx[3] = Long.toString(System.currentTimeMillis()); tokenx[4] = network.settingsx[5]; tokenx[6] = currency; tokenx[7] = custom_template; tokenx[8] = custom_1; tokenx[9] = custom_2; tokenx[10] = custom_3; tokenx[11] = item_errors; tokenx[12] = item_date_listed; tokenx[13] = item_date_listed_day; tokenx[14] = item_date_listed_int; tokenx[15] = item_hits; tokenx[16] = item_confirm_code; tokenx[17] = item_confirmed; tokenx[18] = item_cost; tokenx[19] = item_description; tokenx[20] = item_id; tokenx[21] = item_price; tokenx[22] = item_weight; tokenx[24] = item_notes; tokenx[25] = item_package_d; tokenx[26] = item_package_l; tokenx[27] = item_package_w; tokenx[28] = item_part_number; tokenx[29] = item_title; tokenx[30] = item_title_url; tokenx[31] = item_type; tokenx[32] = item_search_1; tokenx[33] = item_search_2; tokenx[34] = item_search_3; tokenx[36] = item_site_url; tokenx[37] = item_picture_1; tokenx[38] = item_total_on_hand; // to help with search tokenx[30] = tokenx[29].toLowerCase(); // base 58 if (update_state.equals("set_edit_block")) { tokenx[60] = network.base58_id; } else if (update_state.equals("set_transfer_block")) { tokenx[60] = seller_id; } // seller info tokenx[63] = network.settingsx[11]; // name tokenx[64] = network.settingsx[12]; // last tokenx[54] = network.settingsx[13]; // address tokenx[55] = network.settingsx[14]; // address2 tokenx[56] = network.settingsx[15]; // city tokenx[57] = network.settingsx[16]; // state tokenx[58] = network.settingsx[17]; // zip tokenx[59] = network.settingsx[18]; // country tokenx[39] = network.settingsx[19]; // btc tokenx[62] = network.settingsx[20]; // email tokenx[66] = network.settingsx[21]; // phone tokenx[68] = network.settingsx[22]; // website // sign try { String build_hash = new String(""); build_hash = tokenx[0]; for (int loop = 3; loop < tokenx.length; loop++) { build_hash = build_hash + tokenx[loop]; // save everything else } // ************************************************* String hashx = new String(build_hash); byte[] sha256_1x = MessageDigest.getInstance("SHA-256").digest(hashx.getBytes()); System.out.println(Base64.toBase64String(sha256_1x)); tokenx[1] = Base64.toBase64String(sha256_1x); byte[] message = Base64.toBase64String(sha256_1x).getBytes("UTF8"); byte[] clear = Base64.decode(network.settingsx[4]); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(clear); KeyFactory fact = KeyFactory.getInstance("RSA"); PrivateKey priv = fact.generatePrivate(keySpec); Arrays.fill(clear, (byte) 0); Signature sigx = Signature.getInstance("SHA1WithRSA"); // MD5WithRSA sigx.initSign(priv); sigx.update(message); byte[] signatureBytesx = sigx.sign(); // System.out.println("Public: " + Base64.toBase64String(pub.getEncoded())); System.out.println("Singature: " + Base64.toBase64String(signatureBytesx)); String signxx = Base64.toBase64String(signatureBytesx); tokenx[2] = signxx; byte[] keyxb3 = Base64.decode(tokenx[4]); X509EncodedKeySpec keySpecx3 = new X509EncodedKeySpec(keyxb3); KeyFactory factx3 = KeyFactory.getInstance("RSA"); PublicKey pubx3 = factx3.generatePublic(keySpecx3); Arrays.fill(keyxb3, (byte) 0); Signature sigpk3 = Signature.getInstance("SHA1WithRSA"); // MD5WithRSA byte[] messagex3 = Base64.toBase64String(sha256_1x).getBytes("UTF8"); byte[] signatureBytesx3 = Base64.decode(signxx); sigpk3.initVerify(pubx3); sigpk3.update(messagex3); boolean testsx = sigpk3.verify(signatureBytesx3); System.out.println("testsx " + testsx); if (testsx) { statex = "1"; jsonarry = "Updated"; } // ******** else { statex = "0"; jsonarry = "Update error. Information did not pass signature test."; } // ** if (update_state.equals("set_edit_block")) { network.icon.displayMessage( "Krypton", "Token updated ID (" + tokenx[0] + ")", TrayIcon.MessageType.INFO); } else if (update_state.equals("set_transfer_block")) { network.icon.displayMessage( "Krypton", "Token transfer ID (" + tokenx[0] + ")", TrayIcon.MessageType.INFO); } // send the update tokenx_buffer = tokenx; toolkit = Toolkit.getDefaultToolkit(); xtimerx = new Timer(); xtimerx.schedule(new RemindTask_send_update(), 0); // send the update } catch (Exception e) { e.printStackTrace(); } } // if else { System.out.println("Update item error cannot find item."); statex = "0"; jsonarry = "Update item error cannot find item."; } } catch (Exception e) { e.printStackTrace(); statex = "0"; jsonarry = "Error"; } // ***************** return jsonarry; } // *****************