static { BAD_GLOBALS.add("db"); BAD_GLOBALS.add("local"); BAD_GLOBALS.add("core"); BAD_GLOBALS.add("args"); // TODO: should we get rid of this BAD_GLOBALS.add("obj"); // TODO: get rid of this }
/** * Makes a name distinct from other names which have already been used, adds it to the list, and * returns it. * * @param name Suggested name, may not be unique * @param nameList Collection of names already used * @param suggester Base for name when input name is null * @return Unique name */ public static String uniquify(String name, Set<String> nameList, Suggester suggester) { if (name != null) { if (nameList.add(name)) { return name; } } final String originalName = name; for (int j = 0; ; j++) { name = suggester.apply(originalName, j, nameList.size()); if (nameList.add(name)) { return name; } } }
// // ONE TIME ADD WARRANTS // // private static void oneTimeAddWarrants() { String jsonString = ""; try { jsonString = readFile("./json/warrants.json", StandardCharsets.UTF_8); } catch (IOException e) { System.out.println(e); } try { JSONObject rootObject = new JSONObject(jsonString); // Parse the JSON to a JSONObject JSONArray rows = rootObject.getJSONArray("stuff"); // Get all JSONArray rows // System.out.println("row lengths: " + rows.length()); set2 = new HashSet<>(); for (int j = 0; j < rows.length(); j++) { // Iterate each element in the elements array JSONObject element = rows.getJSONObject(j); // Get the element object String defendant = element.getString("Defendant"); String strarr[] = defendant.split(" "); String temp = strarr[1]; int len = strarr[0].length(); strarr[0] = strarr[0].substring(0, len - 1); strarr[1] = strarr[0]; strarr[0] = temp; String firstLast = strarr[0] + strarr[1]; firstLast = firstLast.toLowerCase(); set2.add(firstLast); // System.out.println(firstLast); int zipCode = 0; Boolean isZipCodeNull = element.isNull("ZIP Code"); if (!isZipCodeNull) zipCode = element.getInt("ZIP Code"); String dob = element.getString("Date of Birth"); String caseNumber = element.getString("Case Number"); String firstLastDOB = firstLast + dob; // pick a ssn from list String ssn = ssnList.get(ssnCounter); ssnCounter--; ssnHashMap.put(firstLast, ssn); // compute salt final Random ran = new SecureRandom(); byte[] salt = new byte[32]; ran.nextBytes(salt); String saltString = Base64.encodeBase64String(salt); // System.out.println("saltstring: " + saltString); saltHashMap.put(firstLast, saltString); // compute ripemd160 hash of ssn + salt String saltPlusSsn = saltString + ssn; // System.out.println("salt plus ssn: " + saltPlusSsn); String resultingHash = ""; try { byte[] r = saltPlusSsn.getBytes("US-ASCII"); RIPEMD160Digest d = new RIPEMD160Digest(); d.update(r, 0, r.length); byte[] o = new byte[d.getDigestSize()]; d.doFinal(o, 0); ByteArrayOutputStream baos = new ByteArrayOutputStream(40); Hex.encode(o, baos); resultingHash = new String(baos.toByteArray(), StandardCharsets.UTF_8); hashedssnHashMap.put(firstLast, resultingHash); } catch (UnsupportedEncodingException e) { System.out.println(e); } catch (IOException i) { System.out.println(i); } // compareNames(); Map<String, AttributeValue> item = newWarrantItem( firstLast, firstLastDOB, resultingHash, defendant, zipCode, dob, caseNumber); PutItemRequest putItemRequest = new PutItemRequest("warrants-table", item); PutItemResult putItemResult = dynamoDB.putItem(putItemRequest); } } catch (JSONException e) { // JSON Parsing error e.printStackTrace(); } }
// // ONE TIME ADD CITATIONS // // private static void oneTimeAddCitations() { String jsonString = ""; try { jsonString = readFile("./json/citations.json", StandardCharsets.UTF_8); } catch (IOException e) { System.out.println(e); } try { JSONObject rootObject = new JSONObject(jsonString); // Parse the JSON to a JSONObject JSONArray rows = rootObject.getJSONArray("stuff"); // Get all JSONArray rows System.out.println("row lengths: " + rows.length()); set1 = new HashSet<>(); for (int j = 0; j < rows.length(); j++) { // Iterate each element in the elements array JSONObject element = rows.getJSONObject(j); // Get the element object int id = element.getInt("id"); int citationNumber = element.getInt("citation_number"); String citationDate = " "; Boolean isCitationDateNull = element.isNull("citation_date"); if (!isCitationDateNull) citationDate = element.getString("citation_date"); String firstName = element.getString("first_name"); String lastName = element.getString("last_name"); String firstLastName = firstName + lastName; firstLastName = firstLastName.toLowerCase(); set1.add(firstLastName); // System.out.println(firstLastName); String dob = " "; Boolean isDobNull = element.isNull("date_of_birth"); if (!isDobNull) { dob = element.getString("date_of_birth"); dob = (dob.split(" "))[0]; } // pick a ssn from list String ssn = ssnList.get(ssnCounter); ssnCounter--; ssnHashMap.put(firstLastName, ssn); System.out.println(firstLastName + " " + ssn); // compute salt final Random ran = new SecureRandom(); byte[] salt = new byte[32]; ran.nextBytes(salt); String saltString = Base64.encodeBase64String(salt); // System.out.println("saltstring: " + saltString); saltHashMap.put(firstLastName, saltString); // compute ripemd160 hash of ssn + salt String saltPlusSsn = saltString + ssn; // System.out.println("salt plus ssn: " + saltPlusSsn); String resultingHash = ""; try { byte[] r = saltPlusSsn.getBytes("US-ASCII"); RIPEMD160Digest d = new RIPEMD160Digest(); d.update(r, 0, r.length); byte[] o = new byte[d.getDigestSize()]; d.doFinal(o, 0); ByteArrayOutputStream baos = new ByteArrayOutputStream(40); Hex.encode(o, baos); resultingHash = new String(baos.toByteArray(), StandardCharsets.UTF_8); hashedssnHashMap.put(firstLastName, resultingHash); } catch (UnsupportedEncodingException e) { System.out.println(e); } catch (IOException i) { System.out.println(i); } String fldob = firstLastName + dob; String da = " "; Boolean isDaNull = element.isNull("defendant_address"); if (!isDaNull) da = element.getString("defendant_address"); String dc = " "; Boolean isDcNull = element.isNull("defendant_city"); if (!isDcNull) dc = element.getString("defendant_city"); String ds = " "; Boolean isDsNull = element.isNull("defendant_state"); if (!isDsNull) ds = element.getString("defendant_state"); String dln = " "; Boolean isDlnNull = element.isNull("drivers_license_number"); if (!isDlnNull) dln = element.getString("drivers_license_number"); String cd = " "; Boolean isCdNull = element.isNull("court_date"); if (!isCdNull) cd = element.getString("court_date"); String cl = " "; Boolean isClNull = element.isNull("court_location"); if (!isClNull) cl = element.getString("court_location"); String ca = " "; Boolean isCaNull = element.isNull("court_address"); if (!isCaNull) ca = element.getString("court_address"); /* Map<String, AttributeValue> item = newCitationItem(citationNumber, citationDate, firstName, lastName, firstLastName, dob, fldob, resultingHash, da, dc, ds, dln, cd, cl, ca); PutItemRequest putItemRequest = new PutItemRequest("citations-table", item); PutItemResult putItemResult = dynamoDB.putItem(putItemRequest); */ } } catch (JSONException e) { // JSON Parsing error e.printStackTrace(); } }