package org.ggp.base.util.crypto; import org.ggp.base.util.crypto.BaseCryptography.EncodedKeyPair; import org.junit.Assert; import org.junit.Test; import external.JSON.JSONException; import external.JSON.JSONObject; /** * Unit tests for the SignableJSON class, which provides an easy way * for code to sign JSON objects using PK/SK pairs, and check whether * a particular object has been signed. * * @author Sam */ public class SignableJSONTest extends Assert { @Test public void testSimpleSigning() throws JSONException { EncodedKeyPair p = BaseCryptography.generateKeys(); JSONObject x = new JSONObject("{3:{7:9,c:4,2:5,a:6},1:2,2:3,moves:14,states:21,alpha:'beta'}"); assertFalse(SignableJSON.isSignedJSON(x)); SignableJSON.signJSON(x, p.thePublicKey, p.thePrivateKey); assertTrue(SignableJSON.isSignedJSON(x)); assertTrue(SignableJSON.verifySignedJSON(x)); JSONObject x2 = new JSONObject(x.toString().replace(",", ", ").replace("{", "{ ").replace("}", "} ")); assertTrue(SignableJSON.isSignedJSON(x2)); assertTrue(SignableJSON.verifySignedJSON(x2)); JSONObject x3 = new JSONObject("{1:2,2:3,3:4}"); assertFalse(SignableJSON.isSignedJSON(x3)); } }