@Test public void test3() { String reg = "Chinese Eyes"; char[] password = "******".toCharArray(); RSAKeyContents contents = CryptoFactory.INSTANCE.generateKeys(password); RSAKeyForPublication fp = contents.cloneForPublication(); JSONFormatter builder = new JSONFormatter(reg); builder.add(contents); builder.add(fp); StringWriter writer = new StringWriter(); builder.format(writer); String out = writer.toString(); System.err.println(out); StringReader r = new StringReader(out); JSONReader reader = new JSONReader(r); KeyMaterials km = reader.parse(); Assert.assertEquals(2, km.keys().size()); CryptoKeyWrapper wrapper = km.keys().get(0); boolean ok = wrapper.unlock(new Password(password)); if (ok) { contents = (RSAKeyContents) wrapper.getKeyContents(); System.err.println(contents.toString()); } }
@Test public void test0() { CryptoContact contact = new CryptoContact(); contact.add("GivenName.0", "David"); contact.add("GivenName.1", "Richard"); contact.add("FamilyName.0", "Smith"); contact.add("Address.0", "1714 Roberts Ct."); contact.add("City", "Madison"); contact.add("State", "Wisconsin"); contact.add("PostalCode", "53711"); contact.add("CountryCode", "US"); MapData ld = new MapData(); ld.put("Copyright", "\u00A9 2014, David R. Smith. All Rights Reserved"); ld.put("License", "http://www.apache.org/licenses/LICENSE-2.0.txt"); ListData rd = new ListData(); rd.addURL("http://buttermilk.googlecode.com/svn/trunk/buttermilk-core/data/test0.json"); RSAKeyContents contents = CryptoFactory.INSTANCE.generateKeys(); MapIterator iter = new RSAKeyContentsIterator(contents); MapIterator iter2 = new ContactContentsIterator(contact); MapIterator iter3 = new MapDataContentsIterator(ld); ListDataContentsIterator remoteIter = new ListDataContentsIterator(rd); RSASignatureBuilder sigBuilder = new RSASignatureBuilder("Chinese Eyes", contents); while (iter.hasNext()) { String label = iter.next(); sigBuilder.update(label, iter.get(label)); } while (iter2.hasNext()) { String label = iter2.next(); sigBuilder.update(label, iter2.get(label)); } while (iter3.hasNext()) { String label = iter3.next(); sigBuilder.update(label, iter3.get(label)); } // a bit more complex - the List iterator outputs a list resolved into MapData while (remoteIter.hasNext()) { List<MapData> list = remoteIter.nextData(); for (MapData data : list) { MapIterator inner = new MapDataContentsIterator(data); while (inner.hasNext()) { String label = inner.next(); sigBuilder.update(label, inner.get(label)); } } } CryptoSignature sig = sigBuilder.build(); JSONFormatter builder = new JSONFormatter("Chinese Eyes"); builder.add(contact).add(contents).add(sig).add(ld).add(rd); StringWriter writer = new StringWriter(); builder.format(writer); String output = writer.toString(); Assert.assertTrue(output != null); }