KeyPairGenerator gen = KeyPairGenerator.getInstance("DSA");
KeyPair pair1 = gen.generateKeyPair();
m1.publicKeyAndSign(pair1);
Map<Number640, Data> dataMap = new HashMap<Number640, Data>();
dataMap.put(new Number640(rnd), new Data(new byte[] { 3, 4, 5 }).signNow(pair1, factory));
dataMap.put(new Number640(rnd), new Data(new byte[] { 4, 5, 6, 7 }).signNow(pair1, factory));
dataMap.put(new Number640(rnd), new Data(new byte[] { 5, 6, 7, 8, 9 }).signNow(pair1, factory));
m1.setDataMap(new DataMap(dataMap));
NavigableMap<Number640, Collection<Number160>> keysMap = new TreeMap<Number640, Collection<Number160>>();
Set<Number160> set = new HashSet<Number160>(1);
set.add(new Number160(rnd));
keysMap.put(new Number640(rnd), set);
set = new HashSet<Number160>(2);
set.add(new Number160(rnd));
set.add(new Number160(rnd));
keysMap.put(new Number640(rnd), set);
set = new HashSet<Number160>(3);
set.add(new Number160(rnd));
set.add(new Number160(rnd));
set.add(new Number160(rnd));
keysMap.put(new Number640(rnd), set);
m1.keyMap640Keys(new KeyMap640Keys(keysMap));
Message m2 = encodeDecode(m1);
Assert.assertEquals(true, m2.publicKey(0) != null);
Assert.assertEquals(false, m2.dataMap(0) == null);